<?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>93170</bug_id>
          
          <creation_ts>2012-08-03 18:22:13 -0700</creation_ts>
          <short_desc>Inline continuations create :after generated content on style recalcs</short_desc>
          <delta_ts>2012-10-05 14:54: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>Layout and Rendering</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>HasReduction</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Elliott Sprehn">esprehn</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>inferno</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>lcouto87</cc>
    
    <cc>mitz</cc>
    
    <cc>tasak</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>687312</commentid>
    <comment_count>0</comment_count>
      <attachid>156496</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-08-03 18:22:13 -0700</bug_when>
    <thetext>Created attachment 156496
Reduction

Given &lt;span&gt;&lt;div&gt;&lt;/div&gt;&lt;/span&gt; with :after content  on span a style recalc will cause the insertion of the content into the continuations in the div.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687313</commentid>
    <comment_count>1</comment_count>
      <attachid>156497</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-08-03 18:22:41 -0700</bug_when>
    <thetext>Created attachment 156497
Counter badness</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687320</commentid>
    <comment_count>2</comment_count>
      <attachid>156499</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-08-03 18:33:25 -0700</bug_when>
    <thetext>Created attachment 156499
Merge continuation multiple :after

This show badness where the :after content from the continuation chain is merged back into the original element since we assume the continuation isn&apos;t needed anymore, but since the content is duplication you end up with :after anonymous blocks in places where they shouldn&apos;t be (in the middle of the RenderObjectChildList).

I can&apos;t figure out a way to make this crash yet, but having generated :after anonymous blocks in the middle of the children, and having more than one of them, seems like a recipe for disaster.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687354</commentid>
    <comment_count>3</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-08-03 19:46:03 -0700</bug_when>
    <thetext>can you paste the rendertree before and after the style recalc. this is really interesting and i think i might have an idea about what is going wrong. I remember sometime back i discovered a bug in this area. anyway, lets discuss this in person.

void RenderInline::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle)
{
    RenderBoxModelObject::styleDidChange(diff, oldStyle);

    // Ensure that all of the split inlines pick up the new style. We
    // only do this if we&apos;re an inline, since we don&apos;t want to propagate
    // a block&apos;s style to the other inlines.
    // e.g., &lt;font&gt;foo &lt;h4&gt;goo&lt;/h4&gt; moo&lt;/font&gt;.  The &lt;font&gt; inlines before
    // and after the block share the same style, but the block doesn&apos;t
    // need to pass its style on to anyone else.
    RenderStyle* newStyle = style();
    RenderInline* continuation = inlineElementContinuation();
    for (RenderInline* currCont = continuation; currCont; currCont = currCont-&gt;inlineElementContinuation()) {
        RenderBoxModelObject* nextCont = currCont-&gt;continuation();
        currCont-&gt;setContinuation(0);
        currCont-&gt;setStyle(newStyle);
        currCont-&gt;setContinuation(nextCont);
    }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687356</commentid>
    <comment_count>4</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-08-03 19:48:21 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; Created an attachment (id=156496) [details]
&gt; Reduction
&gt; 
&gt; Given &lt;span&gt;&lt;div&gt;&lt;/div&gt;&lt;/span&gt; with :after content  on span a style recalc will cause the insertion of the content into the continuations in the div.

the initial rendertree should be like

RenderBlock(anonymous)
   RenderInline (span)
RenderBlock(anonymous)
   RenderBlock (div)
RenderBlock(anonymous)
  RenderInline(span)
     RenderWhatever (for :after content)

After the style recalc where does the badness happen ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731284</commentid>
    <comment_count>5</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-09-29 23:56:58 -0700</bug_when>
    <thetext>*** Bug 93707 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731555</commentid>
    <comment_count>6</comment_count>
      <attachid>166444</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-10-01 04:04:55 -0700</bug_when>
    <thetext>Created attachment 166444
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731563</commentid>
    <comment_count>7</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-10-01 04:16:10 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #0)
&gt; &gt; Created an attachment (id=156496) [details] [details]
&gt; &gt; Reduction
&gt; &gt; 
&gt; &gt; Given &lt;span&gt;&lt;div&gt;&lt;/div&gt;&lt;/span&gt; with :after content  on span a style recalc will cause the insertion of the content into the continuations in the div.
&gt; 
&gt; the initial rendertree should be like
&gt; 
&gt; RenderBlock(anonymous)
&gt;    RenderInline (span)
&gt; RenderBlock(anonymous)
&gt;    RenderBlock (div)
&gt; RenderBlock(anonymous)
&gt;   RenderInline(span)
&gt;      RenderWhatever (for :after content)
&gt; 
&gt; After the style recalc where does the badness happen ?

I ran DumpRenderTree for the following html :
&lt;style&gt;
    span {
        display: inline;
    }
    span:before {
        content: &quot;A&quot;;
    }
    span:after {
        content: &quot;B&quot;;
    }
&lt;/style&gt;
&lt;span&gt;
  &lt;div&gt;&lt;/div&gt;
  &lt;div&gt;&lt;/div&gt;
&lt;/span&gt;

Since &quot;:before&quot; and &quot;:after&quot; exist, the result looks like:

  RenderBlock {HTML} at (0,0) size 800x600
    RenderBody {BODY} at (8,8) size 784x584
      RenderBlock (anonymous) at (0,0) size 784x20
        RenderInline {SPAN} at (0,0) size 11x19
          RenderInline (generated) at (0,0) size 11x19
            RenderText at (0,0) size 11x19
              text run at (0,0) width 11: &quot;A&quot;
          RenderText {#text} at (0,0) size 0x0
      RenderBlock (anonymous) at (0,20) size 784x0
        RenderBlock {DIV} at (0,0) size 784x0
      RenderBlock (anonymous) at (0,20) size 784x0
        RenderInline {SPAN} at (0,0) size 0x0
      RenderBlock (anonymous) at (0,20) size 784x0
        RenderBlock {DIV} at (0,0) size 784x0
      RenderBlock (anonymous) at (0,20) size 784x20
        RenderInline {SPAN} at (0,0) size 11x19
          RenderInline (generated) at (0,0) size 11x19
            RenderText at (0,0) size 11x19
              text run at (0,0) width 11: &quot;B&quot;

So there are 3 RenderInline{SPAN}, because two DIVs were inserted into inline {SPAN}. 
(Each DIV splits the last RenderInline{SPAN} into two RenderInline{SPAN}s by using RenderBlock (anonymous). If &lt;style&gt; has neither :BEFORE nor :AFTER, the &quot;split&quot; doesn&apos;t occur.)

When RenderInline::styleDidChange is invoked, because of setContinuation(0), there is no way to know whether the given continuation is last one or not. So...

 RenderBlock {HTML} at (0,0) size 800x600
    RenderBody {BODY} at (8,8) size 784x584
      RenderBlock (anonymous) at (0,0) size 784x20
        RenderInline {SPAN} at (0,0) size 11x19
          RenderInline (generated) at (0,0) size 11x19
            RenderText at (0,0) size 11x19
              text run at (0,0) width 11: &quot;A&quot;
          RenderText {#text} at (0,0) size 0x0
      RenderBlock (anonymous) at (0,20) size 784x0
        RenderBlock {DIV} at (0,0) size 784x0
      RenderBlock (anonymous) at (0,20) size 784x0
        RenderInline {SPAN} at (0,0) size 0x0
+          RenderInline (generated) at (0,0) size 11x19
+            RenderText at (0,0) size 11x19
+              text run at (0,0) width 11: &quot;B&quot;
      RenderBlock (anonymous) at (0,20) size 784x0
        RenderBlock {DIV} at (0,0) size 784x0
      RenderBlock (anonymous) at (0,20) size 784x20
        RenderInline {SPAN} at (0,0) size 11x19
          RenderInline (generated) at (0,0) size 11x19
            RenderText at (0,0) size 11x19
              text run at (0,0) width 11: &quot;B&quot;

Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731698</commentid>
    <comment_count>8</comment_count>
      <attachid>166444</attachid>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-10-01 08:08:45 -0700</bug_when>
    <thetext>Comment on attachment 166444
Patch

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

&gt; Source/WebCore/rendering/RenderInline.cpp:176
&gt; +        if (hasPseudoAfter &amp;&amp; !currCont-&gt;inlineElementContinuation())

These two lines are unneeded i think since you update :before, :after content later.

197 if (!isAnonymous() &amp;&amp; document()-&gt;styleSheetCollection()-&gt;usesBeforeAfterRules()) {
198        children()-&gt;updateBeforeAfterContent(this, BEFORE);
199        children()-&gt;updateBeforeAfterContent(this, AFTER);
200    }

&gt; Source/WebCore/rendering/RenderInline.cpp:182
&gt; +    if (hasPseudoAfter)

I don&apos;t like the setting/unsetting :after style hack. Also, i don&apos;t think we want to create :before content here. So, it should be better to have like a global bool in RenderObjectChildList and then use it to bail out in RenderObjectChildList::updateBeforeAfterContent. Then you can set/unset it here with a TemporaryChange around the for loop. Basically the gist is we shouldn&apos;t be updating our :before, :after while we are inside the for loop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732260</commentid>
    <comment_count>9</comment_count>
      <attachid>166603</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-10-01 21:46:27 -0700</bug_when>
    <thetext>Created attachment 166603
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732261</commentid>
    <comment_count>10</comment_count>
      <attachid>166444</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-10-01 21:50:13 -0700</bug_when>
    <thetext>Comment on attachment 166444
Patch

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

Thank you for reviewing.

&gt;&gt; Source/WebCore/rendering/RenderInline.cpp:176
&gt;&gt; +        if (hasPseudoAfter &amp;&amp; !currCont-&gt;inlineElementContinuation())
&gt; 
&gt; These two lines are unneeded i think since you update :before, :after content later.
&gt; 
&gt; 197 if (!isAnonymous() &amp;&amp; document()-&gt;styleSheetCollection()-&gt;usesBeforeAfterRules()) {
&gt; 198        children()-&gt;updateBeforeAfterContent(this, BEFORE);
&gt; 199        children()-&gt;updateBeforeAfterContent(this, AFTER);
&gt; 200    }

I see.
This is my mistake.

&gt;&gt; Source/WebCore/rendering/RenderInline.cpp:182
&gt;&gt; +    if (hasPseudoAfter)
&gt; 
&gt; I don&apos;t like the setting/unsetting :after style hack. Also, i don&apos;t think we want to create :before content here. So, it should be better to have like a global bool in RenderObjectChildList and then use it to bail out in RenderObjectChildList::updateBeforeAfterContent. Then you can set/unset it here with a TemporaryChange around the for loop. Basically the gist is we shouldn&apos;t be updating our :before, :after while we are inside the for loop.

I see.
I added a new static method, i.e. enableUpdateBeforeAfterContent to class RenderObjectChildList to control creating :before / :after content.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732266</commentid>
    <comment_count>11</comment_count>
      <attachid>166603</attachid>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-10-01 22:05:46 -0700</bug_when>
    <thetext>Comment on attachment 166603
Patch

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

One more round.

&gt; Source/WebCore/rendering/RenderInline.cpp:169
&gt; +    bool updateEnabled = RenderObjectChildList::enableUpdateBeforeAfterContent(false);

you can use TemporaryChange to scope this easily. see comment below.

&gt; Source/WebCore/rendering/RenderObjectChildList.cpp:443
&gt; +    if (!m_enableUpdateBeforeAfterContent)

Why so late return ? Why not after the line &quot; if (owner-&gt;style()-&gt;styleType() == BEFORE || owner-&gt;style()-&gt;styleType() == AFTER)&quot;

&gt; Source/WebCore/rendering/RenderObjectChildList.h:59
&gt; +    static bool enableUpdateBeforeAfterContent(bool enable)

You don&apos;t need this. Just use TemporaryChange.h, see http://code.google.com/codesearch#OAMlx_jo-ck/src/third_party/WebKit/Tools/TestWebKitAPI/Tests/WTF/TemporaryChange.cpp&amp;exact_package=chromium&amp;q=%22TemporaryChange%3Cbool%22&amp;type=cs&amp;l=36. Make m_enableUpdateBeforeAfterContent a global static that could be manipulated by  RenderInline::styleDidChange.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732304</commentid>
    <comment_count>12</comment_count>
      <attachid>166612</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-10-01 23:16:06 -0700</bug_when>
    <thetext>Created attachment 166612
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732389</commentid>
    <comment_count>13</comment_count>
      <attachid>166633</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-10-02 01:02:43 -0700</bug_when>
    <thetext>Created attachment 166633
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732399</commentid>
    <comment_count>14</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-10-02 01:09:15 -0700</bug_when>
    <thetext>I&apos;m sorry. I said wrong things.
I looked at my old patch for bug 93707 again and found that we need to enable updating :after content during curr-&gt;setStyle.
To show why we need, I added one more layout test to this patch. The test updates className to apply / not to apply :after to inline elements. If we disable updating :after content in curr-&gt;setStyle, no generated renderer for :after content is created.

Best regards,
Takashi Sakamoto

(In reply to comment #11)
&gt; (From update of attachment 166603 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=166603&amp;action=review
&gt; 
&gt; One more round.
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderInline.cpp:169
&gt; &gt; +    bool updateEnabled = RenderObjectChildList::enableUpdateBeforeAfterContent(false);
&gt; 
&gt; you can use TemporaryChange to scope this easily. see comment below.
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderObjectChildList.cpp:443
&gt; &gt; +    if (!m_enableUpdateBeforeAfterContent)
&gt; 
&gt; Why so late return ? Why not after the line &quot; if (owner-&gt;style()-&gt;styleType() == BEFORE || owner-&gt;style()-&gt;styleType() == AFTER)&quot;
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderObjectChildList.h:59
&gt; &gt; +    static bool enableUpdateBeforeAfterContent(bool enable)
&gt; 
&gt; You don&apos;t need this. Just use TemporaryChange.h, see http://code.google.com/codesearch#OAMlx_jo-ck/src/third_party/WebKit/Tools/TestWebKitAPI/Tests/WTF/TemporaryChange.cpp&amp;exact_package=chromium&amp;q=%22TemporaryChange%3Cbool%22&amp;type=cs&amp;l=36. Make m_enableUpdateBeforeAfterContent a global static that could be manipulated by  RenderInline::styleDidChange.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732406</commentid>
    <comment_count>15</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-10-02 01:11:33 -0700</bug_when>
    <thetext>I forgot to say about :before content.

The reason why we don&apos;t need to do anything for :before content in RenderInline::styleDidChange is that it is easy to know whether the given render object is the top renderer of continuation list.
Just compare renderer with renderer-&gt;node()-&gt;renderer(). This is not affected by setContinuation(0).

Best regards,
Takashi Sakamoto

(In reply to comment #14)
&gt; I&apos;m sorry. I said wrong things.
&gt; I looked at my old patch for bug 93707 again and found that we need to enable updating :after content during curr-&gt;setStyle.
&gt; To show why we need, I added one more layout test to this patch. The test updates className to apply / not to apply :after to inline elements. If we disable updating :after content in curr-&gt;setStyle, no generated renderer for :after content is created.
&gt; 
&gt; Best regards,
&gt; Takashi Sakamoto
&gt; 
&gt; (In reply to comment #11)
&gt; &gt; (From update of attachment 166603 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=166603&amp;action=review
&gt; &gt; 
&gt; &gt; One more round.
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/rendering/RenderInline.cpp:169
&gt; &gt; &gt; +    bool updateEnabled = RenderObjectChildList::enableUpdateBeforeAfterContent(false);
&gt; &gt; 
&gt; &gt; you can use TemporaryChange to scope this easily. see comment below.
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/rendering/RenderObjectChildList.cpp:443
&gt; &gt; &gt; +    if (!m_enableUpdateBeforeAfterContent)
&gt; &gt; 
&gt; &gt; Why so late return ? Why not after the line &quot; if (owner-&gt;style()-&gt;styleType() == BEFORE || owner-&gt;style()-&gt;styleType() == AFTER)&quot;
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/rendering/RenderObjectChildList.h:59
&gt; &gt; &gt; +    static bool enableUpdateBeforeAfterContent(bool enable)
&gt; &gt; 
&gt; &gt; You don&apos;t need this. Just use TemporaryChange.h, see http://code.google.com/codesearch#OAMlx_jo-ck/src/third_party/WebKit/Tools/TestWebKitAPI/Tests/WTF/TemporaryChange.cpp&amp;exact_package=chromium&amp;q=%22TemporaryChange%3Cbool%22&amp;type=cs&amp;l=36. Make m_enableUpdateBeforeAfterContent a global static that could be manipulated by  RenderInline::styleDidChange.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732429</commentid>
    <comment_count>16</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-10-02 01:55:08 -0700</bug_when>
    <thetext>I wrote the document to explain this patch:

https://docs.google.com/document/d/1YsXo7dAs7EOdckXy27Z8b9KlydT1p5SZH0fARudkFoI/edit


(In reply to comment #15)
&gt; I forgot to say about :before content.
&gt; 
&gt; The reason why we don&apos;t need to do anything for :before content in RenderInline::styleDidChange is that it is easy to know whether the given render object is the top renderer of continuation list.
&gt; Just compare renderer with renderer-&gt;node()-&gt;renderer(). This is not affected by setContinuation(0).
&gt; 
&gt; Best regards,
&gt; Takashi Sakamoto
&gt; 
&gt; (In reply to comment #14)
&gt; &gt; I&apos;m sorry. I said wrong things.
&gt; &gt; I looked at my old patch for bug 93707 again and found that we need to enable updating :after content during curr-&gt;setStyle.
&gt; &gt; To show why we need, I added one more layout test to this patch. The test updates className to apply / not to apply :after to inline elements. If we disable updating :after content in curr-&gt;setStyle, no generated renderer for :after content is created.
&gt; &gt; 
&gt; &gt; Best regards,
&gt; &gt; Takashi Sakamoto
&gt; &gt; 
&gt; &gt; (In reply to comment #11)
&gt; &gt; &gt; (From update of attachment 166603 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=166603&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; One more round.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/rendering/RenderInline.cpp:169
&gt; &gt; &gt; &gt; +    bool updateEnabled = RenderObjectChildList::enableUpdateBeforeAfterContent(false);
&gt; &gt; &gt; 
&gt; &gt; &gt; you can use TemporaryChange to scope this easily. see comment below.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/rendering/RenderObjectChildList.cpp:443
&gt; &gt; &gt; &gt; +    if (!m_enableUpdateBeforeAfterContent)
&gt; &gt; &gt; 
&gt; &gt; &gt; Why so late return ? Why not after the line &quot; if (owner-&gt;style()-&gt;styleType() == BEFORE || owner-&gt;style()-&gt;styleType() == AFTER)&quot;
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/rendering/RenderObjectChildList.h:59
&gt; &gt; &gt; &gt; +    static bool enableUpdateBeforeAfterContent(bool enable)
&gt; &gt; &gt; 
&gt; &gt; &gt; You don&apos;t need this. Just use TemporaryChange.h, see http://code.google.com/codesearch#OAMlx_jo-ck/src/third_party/WebKit/Tools/TestWebKitAPI/Tests/WTF/TemporaryChange.cpp&amp;exact_package=chromium&amp;q=%22TemporaryChange%3Cbool%22&amp;type=cs&amp;l=36. Make m_enableUpdateBeforeAfterContent a global static that could be manipulated by  RenderInline::styleDidChange.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732687</commentid>
    <comment_count>17</comment_count>
      <attachid>166633</attachid>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-10-02 09:04:01 -0700</bug_when>
    <thetext>Comment on attachment 166633
Patch

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

&gt; Source/WebCore/rendering/RenderInline.cpp:177
&gt; +            RenderObjectChildList::m_enableUpdateAfterContent = !nextTarget;

You don&apos;t need lines 176 and 177. As i said in last comment, you are explicitly updating :before, :after content later in function, so it will place it correctly at end.

nextTarget = currCont-&gt;inlineElementContinuation();
RenderObjectChildList::m_enableUpdateAfterContent = !nextTarget;

&gt; Source/WebCore/rendering/RenderObjectChildList.cpp:379
&gt; +    if (type == AFTER &amp;&amp; !m_enableUpdateAfterContent)

You don&apos;t need to just check AFTER, make it generic and rename m_enableUpdateAfterContent to s_enableUpdateBeforeAfterContent. For :before content, you will bail early here instead of wasting time and going till &quot; if (newContentWanted &amp;&amp; type == BEFORE &amp;&amp; owner-&gt;isElementContinuation())&quot;

&gt; Source/WebCore/rendering/RenderObjectChildList.h:64
&gt; +    static bool m_enableUpdateAfterContent;

rename to s_enableUpdateBeforeAfterContent. we s_ for statics.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732690</commentid>
    <comment_count>18</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-10-02 09:08:13 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; I forgot to say about :before content.
&gt; 
&gt; The reason why we don&apos;t need to do anything for :before content in RenderInline::styleDidChange is that it is easy to know whether the given render object is the top renderer of continuation list.
&gt; Just compare renderer with renderer-&gt;node()-&gt;renderer(). This is not affected by setContinuation(0).

Yeah i know it will bail out on &quot;if (newContentWanted &amp;&amp; type == BEFORE &amp;&amp; owner-&gt;isElementContinuation())&quot;, but we will waste on every continuation calculating before content, when we could bail out early.
switch (type) {
    case BEFORE:
        child = beforePseudoElementRenderer(owner);
        break;

&gt; 
&gt; Best regards,
&gt; Takashi Sakamoto
&gt; 
&gt; (In reply to comment #14)
&gt; &gt; I&apos;m sorry. I said wrong things.
&gt; &gt; I looked at my old patch for bug 93707 again and found that we need to enable updating :after content during curr-&gt;setStyle.
&gt; &gt; To show why we need, I added one more layout test to this patch. The test updates className to apply / not to apply :after to inline elements. If we disable updating :after content in curr-&gt;setStyle, no generated renderer for :after content is created.
&gt; &gt; 
&gt; &gt; Best regards,
&gt; &gt; Takashi Sakamoto
&gt; &gt; 
&gt; &gt; (In reply to comment #11)
&gt; &gt; &gt; (From update of attachment 166603 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=166603&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; One more round.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/rendering/RenderInline.cpp:169
&gt; &gt; &gt; &gt; +    bool updateEnabled = RenderObjectChildList::enableUpdateBeforeAfterContent(false);
&gt; &gt; &gt; 
&gt; &gt; &gt; you can use TemporaryChange to scope this easily. see comment below.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/rendering/RenderObjectChildList.cpp:443
&gt; &gt; &gt; &gt; +    if (!m_enableUpdateBeforeAfterContent)
&gt; &gt; &gt; 
&gt; &gt; &gt; Why so late return ? Why not after the line &quot; if (owner-&gt;style()-&gt;styleType() == BEFORE || owner-&gt;style()-&gt;styleType() == AFTER)&quot;
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/rendering/RenderObjectChildList.h:59
&gt; &gt; &gt; &gt; +    static bool enableUpdateBeforeAfterContent(bool enable)
&gt; &gt; &gt; 
&gt; &gt; &gt; You don&apos;t need this. Just use TemporaryChange.h, see http://code.google.com/codesearch#OAMlx_jo-ck/src/third_party/WebKit/Tools/TestWebKitAPI/Tests/WTF/TemporaryChange.cpp&amp;exact_package=chromium&amp;q=%22TemporaryChange%3Cbool%22&amp;type=cs&amp;l=36. Make m_enableUpdateBeforeAfterContent a global static that could be manipulated by  RenderInline::styleDidChange.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733372</commentid>
    <comment_count>19</comment_count>
      <attachid>166809</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-10-02 23:04:39 -0700</bug_when>
    <thetext>Created attachment 166809
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733375</commentid>
    <comment_count>20</comment_count>
      <attachid>166633</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-10-02 23:05:48 -0700</bug_when>
    <thetext>Comment on attachment 166633
Patch

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

Thank you for reviewing.

&gt;&gt; Source/WebCore/rendering/RenderInline.cpp:177
&gt;&gt; +            RenderObjectChildList::m_enableUpdateAfterContent = !nextTarget;
&gt; 
&gt; You don&apos;t need lines 176 and 177. As i said in last comment, you are explicitly updating :before, :after content later in function, so it will place it correctly at end.
&gt; 
&gt; nextTarget = currCont-&gt;inlineElementContinuation();
&gt; RenderObjectChildList::m_enableUpdateAfterContent = !nextTarget;

Firstly I think so. However I found that I need lines 176 and 177. Talking about the first continuation (= node()-&gt;renderer()), I agree that we don&apos;t need.
However talking about the rest of the continuation list, this RenderInline::styleDidChange is invoked via line 180&apos;s currCont-&gt;setStyle(newStyle). 
In such case,  later updating :before and :after content cannot see whether the RenderInline instance is the last node of continuation list. 

I think, currently there is no way to directly invoke RenderInline::styleDidChange for the second, the third continuation ...

&gt;&gt; Source/WebCore/rendering/RenderObjectChildList.cpp:379
&gt;&gt; +    if (type == AFTER &amp;&amp; !m_enableUpdateAfterContent)
&gt; 
&gt; You don&apos;t need to just check AFTER, make it generic and rename m_enableUpdateAfterContent to s_enableUpdateBeforeAfterContent. For :before content, you will bail early here instead of wasting time and going till &quot; if (newContentWanted &amp;&amp; type == BEFORE &amp;&amp; owner-&gt;isElementContinuation())&quot;

I see. 
I added the flag to just enable/disable updating :after content, but lines 175-182 in RenderInline.cpp, we don&apos;t need to update :BEFORE. Because the continuations updated in line 175-182 cannot have :before content style.
Done.

&gt;&gt; Source/WebCore/rendering/RenderObjectChildList.h:64
&gt;&gt; +    static bool m_enableUpdateAfterContent;
&gt; 
&gt; rename to s_enableUpdateBeforeAfterContent. we s_ for statics.

Thanks.
Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733396</commentid>
    <comment_count>21</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-10-02 23:42:49 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (From update of attachment 166633 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=166633&amp;action=review
&gt; 
&gt; Thank you for reviewing.
&gt; 
&gt; &gt;&gt; Source/WebCore/rendering/RenderInline.cpp:177
&gt; &gt;&gt; +            RenderObjectChildList::m_enableUpdateAfterContent = !nextTarget;
&gt; &gt; 
&gt; &gt; You don&apos;t need lines 176 and 177. As i said in last comment, you are explicitly updating :before, :after content later in function, so it will place it correctly at end.
&gt; &gt; 
&gt; &gt; nextTarget = currCont-&gt;inlineElementContinuation();
&gt; &gt; RenderObjectChildList::m_enableUpdateAfterContent = !nextTarget;
&gt; 
&gt; Firstly I think so. However I found that I need lines 176 and 177. Talking about the first continuation (= node()-&gt;renderer()), I agree that we don&apos;t need.
&gt; However talking about the rest of the continuation list, this RenderInline::styleDidChange is invoked via line 180&apos;s currCont-&gt;setStyle(newStyle). 
&gt; In such case,  later updating :before and :after content cannot see whether the RenderInline instance is the last node of continuation list. 
&gt; 
&gt; I think, currently there is no way to directly invoke RenderInline::styleDidChange for the second, the third continuation ...

Yes, you are right, we need to enable it for the last continuation in the chain to update :after content. Yeah upload another patch for the variable name change nit and adding comment.

&gt; 
&gt; &gt;&gt; Source/WebCore/rendering/RenderObjectChildList.cpp:379
&gt; &gt;&gt; +    if (type == AFTER &amp;&amp; !m_enableUpdateAfterContent)
&gt; &gt; 
&gt; &gt; You don&apos;t need to just check AFTER, make it generic and rename m_enableUpdateAfterContent to s_enableUpdateBeforeAfterContent. For :before content, you will bail early here instead of wasting time and going till &quot; if (newContentWanted &amp;&amp; type == BEFORE &amp;&amp; owner-&gt;isElementContinuation())&quot;
&gt; 
&gt; I see. 
&gt; I added the flag to just enable/disable updating :after content, but lines 175-182 in RenderInline.cpp, we don&apos;t need to update :BEFORE. Because the continuations updated in line 175-182 cannot have :before content style.
&gt; Done.

Exactly we know in the loop, we won&apos;t be updating :before content, so no need to waste time.

&gt; 
&gt; &gt;&gt; Source/WebCore/rendering/RenderObjectChildList.h:64
&gt; &gt;&gt; +    static bool m_enableUpdateAfterContent;
&gt; &gt; 
&gt; &gt; rename to s_enableUpdateBeforeAfterContent. we s_ for statics.
&gt; 
&gt; Thanks.
&gt; Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733397</commentid>
    <comment_count>22</comment_count>
      <attachid>166815</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-10-02 23:49:13 -0700</bug_when>
    <thetext>Created attachment 166815
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733401</commentid>
    <comment_count>23</comment_count>
      <attachid>166809</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-10-03 00:11:54 -0700</bug_when>
    <thetext>Comment on attachment 166809
Patch

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

&gt; Source/WebCore/rendering/RenderInline.cpp:177
&gt; +            RenderObjectChildList::s_enableUpdateBeforeAfterContent = !nextTarget;

This naming isn&apos;t clear. It&apos;s not a target of anything and that naming is confusing in the DOM/Rendering area. Could we use next and current instead?

&gt; Source/WebCore/rendering/RenderInline.cpp:181
&gt; +            currCont-&gt;setContinuation(nextCont);

Is it ever possible that nextCont is not null, but nextTarget is (meaning nextCont is not isInline())? Looking at the code it doesn&apos;t seem like you could have a continuation chain that ends in a non-inline one here which means you could simplify this loop a bunch.

Try adding ASSERT(!current-&gt;continuation() || current-&gt;inlineElementContinuation()); to this loop and running the tests.

&gt; LayoutTests/fast/css-generated-content/after-with-inline-continuation.html:45
&gt; +&lt;!-- If test passes, you should see A A A B B B. --&gt;

Same, this should be inline like the original test.

&gt; LayoutTests/fast/css-generated-content/dynamic-apply-after-for-inline.html:23
&gt; +        ul.className = &apos;&apos;;

Replace all this with ul.classList.toggle(&apos;closed&apos;)

&gt; LayoutTests/fast/css-generated-content/dynamic-apply-after-for-inline.html:45
&gt; +&lt;!-- If test passes, only 1 &apos;before&apos; and 1 &apos;after&apos; are shown. --&gt;

Can you put this text inline instead of in a comment?

&lt;p&gt;....&lt;/p&gt; It&apos;s much easier to tell what&apos;s supposed to be going on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733706</commentid>
    <comment_count>24</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-10-03 08:03:41 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (From update of attachment 166809 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=166809&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderInline.cpp:177
&gt; &gt; +            RenderObjectChildList::s_enableUpdateBeforeAfterContent = !nextTarget;
&gt; 
&gt; This naming isn&apos;t clear. It&apos;s not a target of anything and that naming is confusing in the DOM/Rendering area. Could we use next and current instead?

He fixed that in last patch. i had told him informally over chat.

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderInline.cpp:181
&gt; &gt; +            currCont-&gt;setContinuation(nextCont);
&gt; 
&gt; Is it ever possible that nextCont is not null, but nextTarget is (meaning nextCont is not isInline())? Looking at the code it doesn&apos;t seem like you could have a continuation chain that ends in a non-inline one here which means you could simplify this loop a bunch.
&gt; 
&gt; Try adding ASSERT(!current-&gt;continuation() || current-&gt;inlineElementContinuation()); to this loop and running the tests.

We cannot have non-inline as the last continuation. These continuations are created for the blocks inside inline case [Blocks inside Inline Flows in https://www.webkit.org/blog/115/webcore-rendering-ii-blocks-and-inlines/]. Also, i did thought about simplifying the loop but it does not look straightforward, we need to jump to every next inline element continuation [so it will skip over the block inside inline and also update styles of the inline continuation], whereas the nextCont is always the next continuation which can be the block inside inline or the inline continuation. What was your idea on the simplification ?

&gt; 
&gt; &gt; LayoutTests/fast/css-generated-content/after-with-inline-continuation.html:45
&gt; &gt; +&lt;!-- If test passes, you should see A A A B B B. --&gt;
&gt; 

Thanks for the layout test suggestions.

&gt; Same, this should be inline like the original test.
&gt; 
&gt; &gt; LayoutTests/fast/css-generated-content/dynamic-apply-after-for-inline.html:23
&gt; &gt; +        ul.className = &apos;&apos;;
&gt; 
&gt; Replace all this with ul.classList.toggle(&apos;closed&apos;)
&gt; 
&gt; &gt; LayoutTests/fast/css-generated-content/dynamic-apply-after-for-inline.html:45
&gt; &gt; +&lt;!-- If test passes, only 1 &apos;before&apos; and 1 &apos;after&apos; are shown. --&gt;
&gt; 
&gt; Can you put this text inline instead of in a comment?
&gt; 
&gt; &lt;p&gt;....&lt;/p&gt; It&apos;s much easier to tell what&apos;s supposed to be going on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735960</commentid>
    <comment_count>25</comment_count>
      <attachid>166815</attachid>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-10-05 14:31:57 -0700</bug_when>
    <thetext>Comment on attachment 166815
Patch

Don&apos;t think we should hold on the patch based on the layout test suggestions. The other question i did seem to answer. So, this one going to cq+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735990</commentid>
    <comment_count>26</comment_count>
      <attachid>166815</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-05 14:54:12 -0700</bug_when>
    <thetext>Comment on attachment 166815
Patch

Clearing flags on attachment: 166815

Committed r130555: &lt;http://trac.webkit.org/changeset/130555&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735991</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-05 14:54:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>156496</attachid>
            <date>2012-08-03 18:22:13 -0700</date>
            <delta_ts>2012-08-03 18:22:13 -0700</delta_ts>
            <desc>Reduction</desc>
            <filename>Reduction.html</filename>
            <type>text/html</type>
            <size>1019</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">PCFkb2N0eXBlIGh0bWw+Cgo8c3R5bGU+CiAgICBzcGFuIHsKICAgICAgICAvKiBNdXN0IGJlIGlu
bGluZSB0byBjYXVzZSBhIGNvbnRpbnVhdGlvbiBjaGFpbiAqLwogICAgICAgIGRpc3BsYXk6IGlu
bGluZTsKICAgIH0KCiAgICBzcGFuOmJlZm9yZSwKICAgIHNwYW46YWZ0ZXIgewogICAgICAgIC8q
IE5vdCByZXF1aXJlZWQgZm9yIHRoZSB0ZXN0LCBqdXN0IG1ha2VzIGl0IGVhc2llciB0byBzZWUg
d2hhdCdzIGdvaW5nIG9uICovCiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAg
IHBhZGRpbmc6IDVweDsKICAgICAgICBtYXJnaW46IDVweDsKICAgICAgICBib3JkZXI6IDFweCBz
b2xpZCByZWQ7CiAgICB9CgogICAgc3BhbjpiZWZvcmUgewogICAgICAgIGNvbnRlbnQ6ICJBIjsK
ICAgIH0KCiAgICBzcGFuOmFmdGVyIHsKICAgICAgICAvKiBUaGlzIGNvbnRlbnQgd2lsbCBnZXQg
aW5jb3JyZWN0bHkgcmVwZWF0ZWQgaW4gdGhlIGNvbnRpbnVhdGlvbiAqLwogICAgICAgIGNvbnRl
bnQ6ICJCIjsKICAgIH0KPC9zdHlsZT4KCjxwPllvdSBzaG91bGQgc2VlIEEgQSBBIEIgQiBCPC9w
PgoKPHNwYW4+CiAgICA8c3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICAgICAgPGRpdj48L2Rp
dj4KICAgICAgICAgICAgPGRpdj48L2Rpdj4KICAgICAgICAgICAgPGRpdj48L2Rpdj4KICAgICAg
ICAgICAgPGRpdj48L2Rpdj4KICAgICAgICAgICAgPGRpdj48L2Rpdj4KICAgICAgICAgICAgPGRp
dj48L2Rpdj4KICAgICAgICAgICAgPGRpdj48L2Rpdj4KICAgICAgICA8L3NwYW4+CiAgICA8L3Nw
YW4+Cjwvc3Bhbj4KCjxzY3JpcHQ+CiAgICBvbmxvYWQgPSBmdW5jdGlvbigpIHsKICAgICAgICBz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAvLyBDYXVzZSBhIHN0eWxlIHJlY2Fs
Yy4KICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignc3BhbicpLnN0eWxlLmZvbnRG
YW1pbHkgPSAnQXJpYWwnOwogICAgICAgIH0sIDEwKTsKICAgIH07Cjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>156497</attachid>
            <date>2012-08-03 18:22:41 -0700</date>
            <delta_ts>2012-08-03 18:22:41 -0700</delta_ts>
            <desc>Counter badness</desc>
            <filename>Counters.html</filename>
            <type>text/html</type>
            <size>1054</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">PCFkb2N0eXBlIGh0bWw+Cgo8c3R5bGU+CiAgICBzcGFuIHsKICAgICAgICAvKiBNdXN0IGJlIGlu
bGluZSB0byBjYXVzZSBhIGNvbnRpbnVhdGlvbiBjaGFpbiAqLwogICAgICAgIGRpc3BsYXk6IGlu
bGluZTsKICAgIH0KCiAgICBzcGFuOmJlZm9yZSwKICAgIHNwYW46YWZ0ZXIgewogICAgICAgIGRp
c3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBwYWRkaW5nOiA1cHg7CiAgICAgICAgbWFyZ2lu
OiA1cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmVkOwogICAgfQoKICAgIHNwYW46YmVm
b3JlIHsKICAgICAgICBjb250ZW50OiBjb3VudGVyKGkpOwogICAgICAgIGNvdW50ZXItaW5jcmVt
ZW50OiBpOwogICAgfQoKICAgIHNwYW46YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6IGNvdW50ZXIo
aSk7CiAgICAgICAgY291bnRlci1pbmNyZW1lbnQ6IGkgLTE7CiAgICB9Cjwvc3R5bGU+Cgo8ZGl2
PgogICAgPHNwYW4+CiAgICAgICAgPHNwYW4+PGRpdj48c3Bhbj48L3NwYW4+PC9kaXY+PC9zcGFu
PgogICAgICAgIDxzcGFuPgogICAgICAgICAgICA8c3Bhbj4KICAgICAgICAgICAgICAgIDxkaXY+
PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2PjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdj48
L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXY+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2Pjwv
ZGl2PgogICAgICAgICAgICAgICAgPGRpdj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXY+PC9k
aXY+CiAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICA8L3NwYW4+CiAgICAgICAgPHNwYW4+PGRp
dj48c3Bhbj48L3NwYW4+PC9kaXY+PC9zcGFuPgogICAgPC9zcGFuPgo8L2Rpdj4KCjxzY3JpcHQ+
CiAgICBvbmxvYWQgPSBmdW5jdGlvbigpIHsKICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
ewogICAgICAgICAgICAvLyBDYXVzZSBhIHN0eWxlIHJlY2FsYy4KICAgICAgICAgICAgZG9jdW1l
bnQucXVlcnlTZWxlY3RvcignZGl2Jykuc3R5bGUuZm9udEZhbWlseSA9ICdBcmlhbCc7CiAgICAg
ICAgfSwgMTApOwogICAgfTsKPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>156499</attachid>
            <date>2012-08-03 18:33:25 -0700</date>
            <delta_ts>2012-08-03 18:33:25 -0700</delta_ts>
            <desc>Merge continuation multiple :after</desc>
            <filename>Counters 2.html</filename>
            <type>text/html</type>
            <size>1214</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">PCFkb2N0eXBlIGh0bWw+Cgo8c3R5bGU+CiAgICBzcGFuIHsKICAgICAgICAvKiBNdXN0IGJlIGlu
bGluZSB0byBjYXVzZSBhIGNvbnRpbnVhdGlvbiBjaGFpbiAqLwogICAgICAgIGRpc3BsYXk6IGlu
bGluZTsKICAgIH0KCiAgICBzcGFuOmJlZm9yZSwKICAgIHNwYW46YWZ0ZXIgewogICAgICAgIGRp
c3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICBwYWRkaW5nOiA1cHg7CiAgICAgICAgbWFyZ2lu
OiA1cHg7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmVkOwogICAgfQoKICAgIHNwYW46YmVm
b3JlIHsKICAgICAgICBjb250ZW50OiBjb3VudGVyKGkpOwogICAgICAgIGNvdW50ZXItaW5jcmVt
ZW50OiBpOwogICAgfQoKICAgIHNwYW46YWZ0ZXIgewogICAgICAgIGNvbnRlbnQ6IGNvdW50ZXIo
aSk7CiAgICAgICAgY291bnRlci1pbmNyZW1lbnQ6IGkgLTE7CiAgICB9Cjwvc3R5bGU+Cgo8ZGl2
PgogICAgPHNwYW4gaWQ9IngiPgogICAgICAgIDxzcGFuPjxkaXY+PHNwYW4+PC9zcGFuPjwvZGl2
Pjwvc3Bhbj4KICAgICAgICA8c3Bhbj4KICAgICAgICAgICAgPHNwYW4+CiAgICAgICAgICAgICAg
ICA8ZGl2PjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdj48L2Rpdj4KICAgICAgICAgICAgICAg
IDxkaXY+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2PjwvZGl2PgogICAgICAgICAgICAgICAg
PGRpdj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXY+PC9kaXY+CiAgICAgICAgICAgICAgICA8
ZGl2PjwvZGl2PgogICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgPC9zcGFuPgogICAgICAgIDxz
cGFuPjxkaXY+PHNwYW4+PC9zcGFuPjwvZGl2Pjwvc3Bhbj4KICAgIDwvc3Bhbj4KPC9kaXY+Cgo8
c2NyaXB0PgogICAgb25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgICAgc2V0VGltZW91dChmdW5j
dGlvbigpIHsKICAgICAgICAgICAgLy8gQ2F1c2UgYSBzdHlsZSByZWNhbGMuCiAgICAgICAgICAg
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdicpLnN0eWxlLmZvbnRGYW1pbHkgPSAnQXJpYWwn
OwogICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgZG9j
dW1lbnQucXVlcnlTZWxlY3RvcignI3gnKS5pbm5lckhUTUwgPSBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yKCcjeCcpLmlubmVySFRNTDsKICAgICAgICAgICAgfSwgMTApOwogICAgICAgIH0sIDEwKTsK
ICAgIH07Cjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166444</attachid>
            <date>2012-10-01 04:04:55 -0700</date>
            <delta_ts>2012-10-01 21:50:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93170-20121001200408.patch</filename>
            <type>text/plain</type>
            <size>9290</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWY2ZjQ1MjBmNDkzOGE5
MjRkMzVkNWFmOTQ2MWUyZDk4YWRhYWY0Zi4uN2VhMjNmOTljMjg5NzRmYmVkNmFhMWQ4YzQzYzNl
OWUyNTA4ZjUyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTEwLTAxICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbmxpbmUgY29udGlu
dWF0aW9ucyBjcmVhdGUgOmFmdGVyIGdlbmVyYXRlZCBjb250ZW50IG9uIHN0eWxlIHJlY2FsY3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzMTcwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGJ1ZyBp
cyBjYXVzZWQgYnkgUmVuZGVySW5saW5lOjpzdHlsZURpZENoYW5nZSdzIHNldENvbnRpbnVhdGlv
bigwKS4KKyAgICAgICAgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0IHVzZXMgY29udGludWF0aW9uIHRv
IGtub3cgd2hldGhlciB0aGUgZ2l2ZW4gcmVuZGVyZXIKKyAgICAgICAgc2hvdWxkIGhhdmUgQUZU
RVIgcmVuZGVyIG9iamVjdCBvciBub3QuIEhvd2V2ZXIsIHNldENvbnRpbnVhdGlvbigwKSBtYWtl
cworICAgICAgICBSZW5kZXJPYmplY3RDaGlsZExpc3QgdG8gbWlzdW5kZXJzdGFuZCB0aGF0IGFs
bCBjb250aW51YXRpb25zIGFyZSBsYXN0CisgICAgICAgIGNvbnRpbnVhdGlvbi4gVG8gYXZvaWQg
dGhlIG1pc3VuZGVyc3RhbmRpbmcsIHVuc2V0IGhhc1BzZXVkb1N0eWxlJ3MgQUZURVIKKyAgICAg
ICAgZmxhZyBmb3Igbm90LWxhc3QgY29udGludWF0aW9ucy4KKworICAgICAgICBUZXN0OiBmYXN0
L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9hZnRlci13aXRoLWlubGluZS1jb250aW51YXRpb24uaHRt
bAorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJJbmxpbmU6OnN0eWxlRGlkQ2hhbmdlKToKKyAgICAgICAgU2luY2Ugc2V0Q29u
dGludWF0aW9uKDApIG1ha2VzIGl0IGRpZmZpY3VsdCB0byBrbm93IHdoZXRoZXIgdGhlIGNvbnRp
bnVhdGlvbgorICAgICAgICBpcyBsYXN0IG9uZSBvciBub3QsIG1vZGlmaWVkIHRvIHVzZSB1bnNl
dEhhc1BzZXVkb1N0eWxlIHRvIGRpc2FibGUgQUZURVIgc3R5bGUKKyAgICAgICAgZm9yIGNvbnRp
bnVhdGlvbnMgZXhjZXB0IGxhc3Qgb25lLgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6dW5zZXRIYXNQc2V1
ZG9TdHlsZSk6CisgICAgICAgIFJlc2V0IHRoZSBzcGVjaWZpZWQgcHNldWRvIHN0eWxlIGJpdC4K
KyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgQWRkZWQg
b25lIG5ldyBpbnRlcmZhY2UgdG8gdW5zZXQgaGFzUHNldWRvU3R5bGUgZmxhZy4KKwogMjAxMi0w
OS0zMCAgQW5kcmVhcyBLbGluZyAgPGtsaW5nQHdlYmtpdC5vcmc+CiAKICAgICAgICAgU3BsaXQg
RXZlbnRUYXJnZXREYXRhIG91dCBvZiBOb2RlUmFyZURhdGEgdG8gcmVkdWNlIG1lbW9yeSB1c2Uu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCmluZGV4IDIzOWFiYTM3
MDA4ZTEwN2Y2YmM0OTJlYzVjMzQwYjkyMGIxZmJiZWMuLmE2ZDE1Mjg1MjQxZDI1OWYxODYxOGUy
MzRlNDc0ZjQ4ZDA1NDVjMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJJbmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxp
bmUuY3BwCkBAIC0xNjYsMTMgKzE2NiwyMSBAQCB2b2lkIFJlbmRlcklubGluZTo6c3R5bGVEaWRD
aGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdAogICAg
IC8vIGFuZCBhZnRlciB0aGUgYmxvY2sgc2hhcmUgdGhlIHNhbWUgc3R5bGUsIGJ1dCB0aGUgYmxv
Y2sgZG9lc24ndAogICAgIC8vIG5lZWQgdG8gcGFzcyBpdHMgc3R5bGUgb24gdG8gYW55b25lIGVs
c2UuCiAgICAgUmVuZGVyU3R5bGUqIG5ld1N0eWxlID0gc3R5bGUoKTsKKyAgICBib29sIGhhc1Bz
ZXVkb0FmdGVyID0gbmV3U3R5bGUtPmhhc1BzZXVkb1N0eWxlKEFGVEVSKTsKKyAgICBpZiAoaGFz
UHNldWRvQWZ0ZXIpCisgICAgICAgIG5ld1N0eWxlLT51bnNldEhhc1BzZXVkb1N0eWxlKEFGVEVS
KTsKKwogICAgIFJlbmRlcklubGluZSogY29udGludWF0aW9uID0gaW5saW5lRWxlbWVudENvbnRp
bnVhdGlvbigpOwogICAgIGZvciAoUmVuZGVySW5saW5lKiBjdXJyQ29udCA9IGNvbnRpbnVhdGlv
bjsgY3VyckNvbnQ7IGN1cnJDb250ID0gY3VyckNvbnQtPmlubGluZUVsZW1lbnRDb250aW51YXRp
b24oKSkgewogICAgICAgICBSZW5kZXJCb3hNb2RlbE9iamVjdCogbmV4dENvbnQgPSBjdXJyQ29u
dC0+Y29udGludWF0aW9uKCk7CisgICAgICAgIGlmIChoYXNQc2V1ZG9BZnRlciAmJiAhY3VyckNv
bnQtPmlubGluZUVsZW1lbnRDb250aW51YXRpb24oKSkKKyAgICAgICAgICAgIG5ld1N0eWxlLT5z
ZXRIYXNQc2V1ZG9TdHlsZShBRlRFUik7CiAgICAgICAgIGN1cnJDb250LT5zZXRDb250aW51YXRp
b24oMCk7CiAgICAgICAgIGN1cnJDb250LT5zZXRTdHlsZShuZXdTdHlsZSk7CiAgICAgICAgIGN1
cnJDb250LT5zZXRDb250aW51YXRpb24obmV4dENvbnQpOwogICAgIH0KKyAgICBpZiAoaGFzUHNl
dWRvQWZ0ZXIpCisgICAgICAgIG5ld1N0eWxlLT5zZXRIYXNQc2V1ZG9TdHlsZShBRlRFUik7CiAK
ICAgICAvLyBJZiBhbiBpbmxpbmUncyBpbi1mbG93IHBvc2l0aW9uaW5nIGhhcyBjaGFuZ2VkIHRo
ZW4gYW55IGRlc2NlbmRhbnQgYmxvY2tzIHdpbGwgbmVlZCB0byBjaGFuZ2UgdGhlaXIgaW4tZmxv
dyBwb3NpdGlvbmluZyBhY2NvcmRpbmdseS4KICAgICAvLyBEbyB0aGlzIGJ5IHVwZGF0aW5nIHRo
ZSBwb3NpdGlvbiBvZiB0aGUgZGVzY2VuZGFudCBibG9ja3MnIGNvbnRhaW5pbmcgYW5vbnltb3Vz
IGJsb2NrcyAtIHRoZXJlIG1heSBiZSBtb3JlIHRoYW4gb25lLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggNzdmNWNmZGIzY2Y2ZGMxY2Rl
YmM3ZTUzOGU2NDgzMGRkMmFlMDUxZC4uZmUzNTU1MGI3MTY0NTdjOWE4MzA5ZDQ3NjVmMzllYWIw
MTA5YzNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuY3BwCkBAIC0yNjAsNiArMjYwLDEzIEBAIHZvaWQgUmVuZGVyU3R5bGU6OnNldEhhc1BzZXVk
b1N0eWxlKFBzZXVkb0lkIHBzZXVkbykKICAgICBub25pbmhlcml0ZWRfZmxhZ3MuX3BzZXVkb0Jp
dHMgfD0gcHNldWRvQml0KHBzZXVkbyk7CiB9CiAKK3ZvaWQgUmVuZGVyU3R5bGU6OnVuc2V0SGFz
UHNldWRvU3R5bGUoUHNldWRvSWQgcHNldWRvKQoreworICAgIEFTU0VSVChwc2V1ZG8gPiBOT1BT
RVVETyk7CisgICAgQVNTRVJUKHBzZXVkbyA8IEZJUlNUX0lOVEVSTkFMX1BTRVVET0lEKTsKKyAg
ICBub25pbmhlcml0ZWRfZmxhZ3MuX3BzZXVkb0JpdHMgJj0gfnBzZXVkb0JpdChwc2V1ZG8pOwor
fQorCiBSZW5kZXJTdHlsZSogUmVuZGVyU3R5bGU6OmdldENhY2hlZFBzZXVkb1N0eWxlKFBzZXVk
b0lkIHBpZCkgY29uc3QKIHsKICAgICBpZiAoIW1fY2FjaGVkUHNldWRvU3R5bGVzIHx8ICFtX2Nh
Y2hlZFBzZXVkb1N0eWxlcy0+c2l6ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaAppbmRleCA5OTcwODM4ZjdhZjEyYjM3ZTIyYzkyZTk2MGJhMzdkMTZi
NTY0NjkyLi5kZTZmM2ZjMjE4ODUwNThmZWViMDUyZGFjNWZlMzAxMjUyZWIyOGZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtNDg2LDYgKzQ4
Niw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0FueVB1YmxpY1BzZXVkb1N0eWxlcygpIGNvbnN0
OwogICAgIGJvb2wgaGFzUHNldWRvU3R5bGUoUHNldWRvSWQgcHNldWRvKSBjb25zdDsKICAgICB2
b2lkIHNldEhhc1BzZXVkb1N0eWxlKFBzZXVkb0lkIHBzZXVkbyk7CisgICAgdm9pZCB1bnNldEhh
c1BzZXVkb1N0eWxlKFBzZXVkb0lkKTsKIAogICAgIC8vIGF0dHJpYnV0ZSBnZXR0ZXIgbWV0aG9k
cwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggOGMzNTlkYjQ0N2M0ZTRiNGNmNTIwYjNkNTA4OTVlMTA5YjY5YjkyOC4uMTVj
ZjQxOThhMDVkYTVjNTM5NTIyZWM0ZWU4NzkzZDk4ZWE4ODJmMiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDEyLTEwLTAxICBUYWthc2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKwor
ICAgICAgICBJbmxpbmUgY29udGludWF0aW9ucyBjcmVhdGUgOmFmdGVyIGdlbmVyYXRlZCBjb250
ZW50IG9uIHN0eWxlIHJlY2FsY3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTkzMTcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBmYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9hZnRlci13aXRoLWlubGlu
ZS1jb250aW51YXRpb24tZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3Mt
Z2VuZXJhdGVkLWNvbnRlbnQvYWZ0ZXItd2l0aC1pbmxpbmUtY29udGludWF0aW9uLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9hY2lkMy1leHBlY3RlZC50eHQ6CisgICAg
ICAgIFRoZSBhY2lkMy1leHBlY3RlZC50eHQgaGFzIHRoZSBkdXBsaWNhdGUgUmVuZGVyQmxvY2sg
KHBvc2l0aW9uZWQpLgorICAgICAgICBUd28gJ2xheWVyIGF0KDYzOCwgMTgpIHNpemUgMjB4MjAs
IC4uLiB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyMDogIlgiJyBleGlzdC4KKyAgICAgICAgU28g
ZGlkIHJlc2V0LXJlc3VsdHMgZm9yIGFjaWQzLWV4cGVjdGVkLnR4dC4KKwogMjAxMi0wOS0zMCAg
S2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBS
ZWJhc2VsaW5lIGZvciBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQgc2hvdWxkIHVzZSBMb2Nh
bGl6ZXIgZnVuY3Rpb25zLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJh
dGVkLWNvbnRlbnQvYWZ0ZXItd2l0aC1pbmxpbmUtY29udGludWF0aW9uLWV4cGVjdGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9hZnRlci13aXRoLWlubGlu
ZS1jb250aW51YXRpb24tZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Y2U5MDViZDY0MTQwNDI4
ZGMxNTM3NzFmNjk1OThlOTVjMTY5MGU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvYWZ0ZXItd2l0aC1pbmxpbmUtY29udGludWF0aW9u
LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aGVhZD4K
KzxzdHlsZT4KKyAgICBzcGFuIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lOworICAgIH0KKyAg
ICAuYmxvY2sgeworICAgICAgICBmb250LWZhbWlseTogQXJpYWw7CisgICAgICAgIGRpc3BsYXk6
IGlubGluZS1ibG9jazsKKyAgICAgICAgcGFkZGluZzogNXB4OworICAgICAgICBtYXJnaW46IDVw
eDsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmVkOworICAgIH0KKzwvc3R5bGU+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxkaXYgY2xhc3M9ImJsb2NrIj5BPC9kaXY+Cis8c3Bhbj4KKyAgPGRpdiBj
bGFzcz0iYmxvY2siPkE8L2Rpdj4KKyAgICA8c3Bhbj4KKyAgICAgIDxkaXYgY2xhc3M9ImJsb2Nr
Ij5BPC9kaXY+CisgICAgICAgIDxzcGFuPgorICAgICAgICAgICAgPGRpdj48L2Rpdj4KKyAgICAg
ICAgICAgIDxkaXY+PC9kaXY+CisgICAgICAgICAgICA8ZGl2PjwvZGl2PgorICAgICAgICAgICAg
PGRpdj48L2Rpdj4KKyAgICAgICAgICAgIDxkaXY+PC9kaXY+CisgICAgICAgICAgICA8ZGl2Pjwv
ZGl2PgorICAgICAgICAgICAgPGRpdj48L2Rpdj4KKyAgICAgICAgPC9zcGFuPgorCTxkaXYgY2xh
c3M9ImJsb2NrIj5CPC9kaXY+CisgICAgPC9zcGFuPgorICAgIDxkaXYgY2xhc3M9ImJsb2NrIj5C
PC9kaXY+Cis8L3NwYW4+Cis8ZGl2IGNsYXNzPSJibG9jayI+QjwvZGl2PgorPC9ib2R5PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvYWZ0ZXItd2l0
aC1pbmxpbmUtY29udGludWF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0
ZWQtY29udGVudC9hZnRlci13aXRoLWlubGluZS1jb250aW51YXRpb24uaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mYWFkNzJkMjk0Mzc1ZjA5N2FjNTI5MjVhMTU1NGNiYjdjMjE0ZGIxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvYWZ0ZXItd2l0aC1p
bmxpbmUtY29udGludWF0aW9uLmh0bWwKQEAgLTAsMCArMSw2MCBAQAorPCFkb2N0eXBlIGh0bWw+
Cis8aGVhZD4KKzxzdHlsZT4KKyAgICBzcGFuIHsKKyAgICAgICAgLyogTXVzdCBiZSBpbmxpbmUg
dG8gY2F1c2UgYSBjb250aW51YXRpb24gY2hhaW4gKi8KKyAgICAgICAgZGlzcGxheTogaW5saW5l
OworICAgIH0KKworICAgIHNwYW46YmVmb3JlLAorICAgIHNwYW46YWZ0ZXIgeworICAgICAgICAv
KiBOb3QgcmVxdWlyZWVkIGZvciB0aGUgdGVzdCwganVzdCBtYWtlcyBpdCBlYXNpZXIgdG8gc2Vl
IHdoYXQncyBnb2luZyBvbiAqLworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAg
ICAgIHBhZGRpbmc6IDVweDsKKyAgICAgICAgbWFyZ2luOiA1cHg7CisgICAgICAgIGJvcmRlcjog
MXB4IHNvbGlkIHJlZDsKKyAgICB9CisKKyAgICBzcGFuOmJlZm9yZSB7CisgICAgICAgIGNvbnRl
bnQ6ICJBIjsKKyAgICB9CisKKyAgICBzcGFuOmFmdGVyIHsKKyAgICAgICAgLyogVGhpcyBjb250
ZW50IHdpbGwgZ2V0IGluY29ycmVjdGx5IHJlcGVhdGVkIGluIHRoZSBjb250aW51YXRpb24gKi8K
KyAgICAgICAgY29udGVudDogIkIiOworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8c2NyaXB0
PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OworCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgLy8gQ2F1c2UgYSBzdHlsZSByZWNhbGMuCisgICAgICAgICAgICBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCdzcGFuJykuc3R5bGUuZm9udEZhbWlseSA9ICdBcmlhbCc7Cisg
ICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIDEwKTsKKyAgICB9OworPC9zY3JpcHQ+CisK
Kzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKworPCEtLSBbYnVnIDkzMTcwXSBodHRwOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTM3MCAtLT4KKzwhLS0gSWYgdGVzdCBwYXNz
ZXMsIHlvdSBzaG91bGQgc2VlIEEgQSBBIEIgQiBCLiAtLT4KKworPHNwYW4+CisgICAgPHNwYW4+
CisgICAgICAgIDxzcGFuPgorICAgICAgICAgICAgPGRpdj48L2Rpdj4KKyAgICAgICAgICAgIDxk
aXY+PC9kaXY+CisgICAgICAgICAgICA8ZGl2PjwvZGl2PgorICAgICAgICAgICAgPGRpdj48L2Rp
dj4KKyAgICAgICAgICAgIDxkaXY+PC9kaXY+CisgICAgICAgICAgICA8ZGl2PjwvZGl2PgorICAg
ICAgICAgICAgPGRpdj48L2Rpdj4KKyAgICAgICAgPC9zcGFuPgorICAgIDwvc3Bhbj4KKzwvc3Bh
bj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9hY2lk
My1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvYWNpZDMtZXhwZWN0
ZWQudHh0CmluZGV4IDVjMDNlZmFkYjE1MTg3NDY5MDQ4NmFmNDI5MTAzNzA3NjdlZWIzY2UuLjM1
MjRkYmZlYWEwOWQ3NTZjN2M0Y2VmNjc4ZmYzMTM3YzVmY2IxM2UgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9hY2lkMy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9taXNjL2FjaWQzLWV4cGVjdGVkLnR4dApAQCAtMjE2LDEwICsyMTYsNiBA
QCBsYXllciBhdCAoMjAsMjApIHNpemUgNjQ0eDQzMwogICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDEzMSwzOSkgd2lkdGggMTY4OiAidGhpcyByZWZlcmVuY2UgcmVuZGVyaW5nIgogICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDI5OSwzOSkgc2l6ZSA0eDE3CiAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDI5OSwzOSkgd2lkdGggNDogIi4iCi1sYXllciBhdCAoNjM4LDE4KSBzaXplIDIweDIw
Ci0gIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSBhdCAoNjM4LDE4KSBzaXplIDIweDIwIFtjb2xv
cj0jRkZGRkZGXSBbYmdjb2xvcj0jRkYwMEZGXQotICAgIFJlbmRlclRleHQgYXQgKDAsMCkgc2l6
ZSAyMHgyMAotICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjA6ICJYIgogbGF5ZXIgYXQg
KDEzMCw4NCkgc2l6ZSAzMDB4MTUwCiAgIFJlbmRlckVtYmVkZGVkT2JqZWN0IHtPQkpFQ1R9IGF0
ICgxMzAsODQpIHNpemUgMzAweDE1MAogICAgIGxheWVyIGF0ICgwLDApIHNpemUgMzAweDE1MAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166603</attachid>
            <date>2012-10-01 21:46:27 -0700</date>
            <delta_ts>2012-10-01 23:15:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93170-20121002134540.patch</filename>
            <type>text/plain</type>
            <size>10328</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzg4ZDY4Nzc4NjgzNmRk
NmNjMWY3NDE2MWFlOGNjNmRjYzVjOTQ5My4uZWYyOGJkNWQ0Y2NhMDJmYjc5NzRmMjNlOWI0ODc5
MGUxOTg2Yzk0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTEwLTAxICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbmxpbmUgY29udGlu
dWF0aW9ucyBjcmVhdGUgOmFmdGVyIGdlbmVyYXRlZCBjb250ZW50IG9uIHN0eWxlIHJlY2FsY3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzMTcwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGJ1ZyBp
cyBjYXVzZWQgYnkgUmVuZGVySW5saW5lOjpzdHlsZURpZENoYW5nZSdzIHNldENvbnRpbnVhdGlv
bigwKS4KKyAgICAgICAgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0IHVzZXMgY29udGludWF0aW9uIHRv
IGtub3cgd2hldGhlciB0aGUgZ2l2ZW4KKyAgICAgICAgcmVuZGVyZXIgc2hvdWxkIGhhdmUgQUZU
RVIgcmVuZGVyIG9iamVjdCBvciBub3QuCisgICAgICAgIEhvd2V2ZXIsIHNldENvbnRpbnVhdGlv
bigwKSBtYWtlcyBSZW5kZXJPYmplY3RDaGlsZExpc3QgdG8KKyAgICAgICAgbWlzdW5kZXJzdGFu
ZCB0aGF0IGFsbCBjb250aW51YXRpb25zIGFyZSBsYXN0IGNvbnRpbnVhdGlvbi4KKyAgICAgICAg
VG8gYXZvaWQgdGhlIG1pc3VuZGVyc3RhbmRpbmcsIGFkZGVkIGEgbmV3IGZsYWcgdG8gY2xhc3MK
KyAgICAgICAgUmVuZGVyT2JlamN0Q2hpbGRMaXN0IHRvIGVuYWJsZS9kaXNhYmxlIHVwZGF0ZUJl
Zm9yZUFmdGVyQ29udGVudC4KKworICAgICAgICBUZXN0OiBmYXN0L2Nzcy1nZW5lcmF0ZWQtY29u
dGVudC9hZnRlci13aXRoLWlubGluZS1jb250aW51YXRpb24uaHRtbAorCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlcklubGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6
OnN0eWxlRGlkQ2hhbmdlKToKKyAgICAgICAgRGlzYWJsZSB1cGF0ZUJlZm9yZUFmdGVyQ29udGVu
dCBkdXJpbmcgc2V0U3R5bGUuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxk
TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9i
amVjdENoaWxkTGlzdDo6dXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50KToKKyAgICAgICAgSWYgdXBk
YXRlQmVmb3JlQWZ0ZXJDb250ZW50IGlzIGRpc2FibGVkLCBkb24ndCBjcmVhdGUgYW55IHJlbmRl
cmVyCisgICAgICAgIGZvciA6YmVmb3JlIG9yIDphZnRlci4gSG93ZXZlciwgaWYgdGhlcmUgZXhp
c3RzIGFueSByZW5kZXJlciBmb3IKKyAgICAgICAgOmJlZm9yZSBvciA6YWZ0ZXIsIHVwZGF0ZSBp
dHMgc3R5bGUuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5oOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Q2hpbGRMaXN0OjplbmFibGVVcGRhdGVCZWZv
cmVBZnRlckNvbnRlbnQpOgorICAgICAgICBBZGRlZCBhIG5ldyBtZXRob2QgZm9yIGNoYW5naW5n
IGEgZW5hYmxlVXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50IGZsYWcKKyAgICAgICAgdmFsdWUuCisg
ICAgICAgIChSZW5kZXJPYmplY3RDaGlsZExpc3QpOgorCiAyMDEyLTEwLTAxICBLZWlzaGkgSGF0
dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbmFtZSBDYWxlbmRhclBpY2tl
ckVsZW1lbnQgdG8gUGlja2VySW5kaWNhdG9yRWxlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW5saW5lLmNwcAppbmRleCBmZTk2MTc2MTQzZGY1ODZmOThiOTcyMGEzNTJlNzNm
MDdlMGRkMTFhLi4xOTU0ODQ0Y2Q5N2MzZDgxNTMzNjg3NmZjM2YyMGQwOTc1NGJiZjYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcApAQCAtMTY2LDYgKzE2Niw3
IEBAIHZvaWQgUmVuZGVySW5saW5lOjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlm
ZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0CiAgICAgLy8gYW5kIGFmdGVyIHRoZSBibG9jayBz
aGFyZSB0aGUgc2FtZSBzdHlsZSwgYnV0IHRoZSBibG9jayBkb2Vzbid0CiAgICAgLy8gbmVlZCB0
byBwYXNzIGl0cyBzdHlsZSBvbiB0byBhbnlvbmUgZWxzZS4KICAgICBSZW5kZXJTdHlsZSogbmV3
U3R5bGUgPSBzdHlsZSgpOworICAgIGJvb2wgdXBkYXRlRW5hYmxlZCA9IFJlbmRlck9iamVjdENo
aWxkTGlzdDo6ZW5hYmxlVXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50KGZhbHNlKTsKICAgICBSZW5k
ZXJJbmxpbmUqIGNvbnRpbnVhdGlvbiA9IGlubGluZUVsZW1lbnRDb250aW51YXRpb24oKTsKICAg
ICBmb3IgKFJlbmRlcklubGluZSogY3VyckNvbnQgPSBjb250aW51YXRpb247IGN1cnJDb250OyBj
dXJyQ29udCA9IGN1cnJDb250LT5pbmxpbmVFbGVtZW50Q29udGludWF0aW9uKCkpIHsKICAgICAg
ICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIG5leHRDb250ID0gY3VyckNvbnQtPmNvbnRpbnVhdGlv
bigpOwpAQCAtMTczLDYgKzE3NCw3IEBAIHZvaWQgUmVuZGVySW5saW5lOjpzdHlsZURpZENoYW5n
ZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0CiAgICAgICAg
IGN1cnJDb250LT5zZXRTdHlsZShuZXdTdHlsZSk7CiAgICAgICAgIGN1cnJDb250LT5zZXRDb250
aW51YXRpb24obmV4dENvbnQpOwogICAgIH0KKyAgICBSZW5kZXJPYmplY3RDaGlsZExpc3Q6OmVu
YWJsZVVwZGF0ZUJlZm9yZUFmdGVyQ29udGVudCh1cGRhdGVFbmFibGVkKTsKIAogICAgIC8vIElm
IGFuIGlubGluZSdzIGluLWZsb3cgcG9zaXRpb25pbmcgaGFzIGNoYW5nZWQgdGhlbiBhbnkgZGVz
Y2VuZGFudCBibG9ja3Mgd2lsbCBuZWVkIHRvIGNoYW5nZSB0aGVpciBpbi1mbG93IHBvc2l0aW9u
aW5nIGFjY29yZGluZ2x5LgogICAgIC8vIERvIHRoaXMgYnkgdXBkYXRpbmcgdGhlIHBvc2l0aW9u
IG9mIHRoZSBkZXNjZW5kYW50IGJsb2NrcycgY29udGFpbmluZyBhbm9ueW1vdXMgYmxvY2tzIC0g
dGhlcmUgbWF5IGJlIG1vcmUgdGhhbiBvbmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwCmluZGV4IGMzYjRkNDgzMTZlZTc1YjZiMTQ4
YTEzNGM2MTJhNDc0NDA4NDgwNDguLjUyZmEzY2Q0ZGVhZDdmNDMzN2NkODI5MzVkMzY1ZTlmOTZk
NzlhZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RD
aGlsZExpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RD
aGlsZExpc3QuY3BwCkBAIC00NSw2ICs0NSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
Ym9vbCBSZW5kZXJPYmplY3RDaGlsZExpc3Q6Om1fZW5hYmxlVXBkYXRlQmVmb3JlQWZ0ZXJDb250
ZW50ID0gdHJ1ZTsKKwogdm9pZCBSZW5kZXJPYmplY3RDaGlsZExpc3Q6OmRlc3Ryb3lMZWZ0b3Zl
ckNoaWxkcmVuKCkKIHsKICAgICB3aGlsZSAoZmlyc3RDaGlsZCgpKSB7CkBAIC00MzgsNiArNDQw
LDggQEAgdm9pZCBSZW5kZXJPYmplY3RDaGlsZExpc3Q6OnVwZGF0ZUJlZm9yZUFmdGVyQ29udGVu
dChSZW5kZXJPYmplY3QqIG93bmVyLCBQc2V1ZG8KICAgICAgICAgdXBkYXRlQmVmb3JlQWZ0ZXJT
dHlsZShjaGlsZCwgdHlwZSwgcHNldWRvRWxlbWVudFN0eWxlKTsKICAgICAgICAgcmV0dXJuOyAv
LyBXZSd2ZSB1cGRhdGVkIHRoZSBnZW5lcmF0ZWQgY29udGVudC4gVGhhdCdzIGFsbCB3ZSBuZWVk
ZWQgdG8gZG8uCiAgICAgfQorICAgIGlmICghbV9lbmFibGVVcGRhdGVCZWZvcmVBZnRlckNvbnRl
bnQpCisgICAgICAgIHJldHVybjsKICAgICAKICAgICBSZW5kZXJPYmplY3QqIGluc2VydEJlZm9y
ZSA9ICh0eXBlID09IEJFRk9SRSkgPyBvd25lci0+dmlydHVhbENoaWxkcmVuKCktPmZpcnN0Q2hp
bGQoKSA6IDA7CiAgICAgaWYgKGluc2VydEJlZm9yZSAmJiBpbnNlcnRCZWZvcmUtPmlzQW5vbnlt
b3VzQmxvY2soKSAmJiBpbnNlcnRCZWZvcmUtPmNoaWxkcmVuSW5saW5lKCkgJiYgIWluc2VydEJl
Zm9yZS0+aXNFbXB0eSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0Q2hpbGRMaXN0LmgKaW5kZXggNjNiNzMzZGUwM2FjMzExNGM1NzFkNWU4NGE2NjY1ZTZl
MWQxYjViNC4uMzU4YjkwYjE0OTkyMDkyZDVmMTBjMGY1ZWMzZjlmZDU0M2E0MTU3NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuaApAQCAt
NTYsNiArNTYsMTMgQEAgcHVibGljOgogICAgIHZvaWQgYXBwZW5kQ2hpbGROb2RlKFJlbmRlck9i
amVjdCogb3duZXIsIFJlbmRlck9iamVjdCosIGJvb2wgbm90aWZ5UmVuZGVyZXIgPSB0cnVlKTsK
ICAgICB2b2lkIGluc2VydENoaWxkTm9kZShSZW5kZXJPYmplY3QqIG93bmVyLCBSZW5kZXJPYmpl
Y3QqIGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZSwgYm9vbCBub3RpZnlSZW5kZXJlciA9IHRy
dWUpOwogCisgICAgc3RhdGljIGJvb2wgZW5hYmxlVXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50KGJv
b2wgZW5hYmxlKQorICAgIHsKKyAgICAgICAgYm9vbCBvbGRWYWx1ZSA9IG1fZW5hYmxlVXBkYXRl
QmVmb3JlQWZ0ZXJDb250ZW50OworICAgICAgICBtX2VuYWJsZVVwZGF0ZUJlZm9yZUFmdGVyQ29u
dGVudCA9IGVuYWJsZTsKKyAgICAgICAgcmV0dXJuIG9sZFZhbHVlOworICAgIH0KKwogICAgIHZv
aWQgdXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50KFJlbmRlck9iamVjdCogb3duZXIsIFBzZXVkb0lk
IHR5cGUsIGNvbnN0IFJlbmRlck9iamVjdCogc3R5bGVkT2JqZWN0ID0gMCk7CiAgICAgUmVuZGVy
T2JqZWN0KiBiZWZvcmVQc2V1ZG9FbGVtZW50UmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBv
d25lcikgY29uc3Q7CiAgICAgUmVuZGVyT2JqZWN0KiBhZnRlclBzZXVkb0VsZW1lbnRSZW5kZXJl
cihjb25zdCBSZW5kZXJPYmplY3QqIG93bmVyKSBjb25zdDsKQEAgLTY1LDYgKzcyLDcgQEAgcHJp
dmF0ZToKIAogICAgIFJlbmRlck9iamVjdCogbV9maXJzdENoaWxkOwogICAgIFJlbmRlck9iamVj
dCogbV9sYXN0Q2hpbGQ7CisgICAgc3RhdGljIGJvb2wgbV9lbmFibGVVcGRhdGVCZWZvcmVBZnRl
ckNvbnRlbnQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjYxNzk1OTA5
MDU4ZGJiMWJmZjRiZWU4ODczNWM3ZTYxM2U3YjI2My4uNmMzMjdmYzkwYjc1ZThjOWUyMjEzNzA0
MTMxOTU0ZmIwN2YzNjIwYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTEwLTAxICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbmxpbmUgY29udGlu
dWF0aW9ucyBjcmVhdGUgOmFmdGVyIGdlbmVyYXRlZCBjb250ZW50IG9uIHN0eWxlIHJlY2FsY3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzMTcwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Nz
cy1nZW5lcmF0ZWQtY29udGVudC9hZnRlci13aXRoLWlubGluZS1jb250aW51YXRpb24tZXhwZWN0
ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvYWZ0
ZXItd2l0aC1pbmxpbmUtY29udGludWF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvbWlzYy9hY2lkMy1leHBlY3RlZC50eHQ6CisgICAgICAgIFRoZSBhY2lkMy1leHBlY3Rl
ZC50eHQgaGFzIHRoZSBkdXBsaWNhdGUgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpLgorICAgICAg
ICBUd28gJ2xheWVyIGF0KDYzOCwgMTgpIHNpemUgMjB4MjAsIC4uLiB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCAyMDogIlgiJyBleGlzdC4KKyAgICAgICAgU28gZGlkIHJlc2V0LXJlc3VsdHMgZm9y
IGFjaWQzLWV4cGVjdGVkLnR4dC4KKwogMjAxMi0xMC0wMSAgWW9zaGlmdW1pIElub3VlICA8eW9z
aW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZGluZyBhcHBlYXJhbmNlIHRlc3RzIGZvciBt
dWx0aXBsZSBmaWVsZHMgd2VlayBpbnB1dCBVSQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvYWZ0ZXItd2l0aC1pbmxpbmUtY29udGludWF0aW9uLWV4
cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9hZnRl
ci13aXRoLWlubGluZS1jb250aW51YXRpb24tZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Y2U5
MDViZDY0MTQwNDI4ZGMxNTM3NzFmNjk1OThlOTVjMTY5MGU1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvYWZ0ZXItd2l0aC1pbmxpbmUt
Y29udGludWF0aW9uLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFkb2N0eXBlIGh0
bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyAgICBzcGFuIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5l
OworICAgIH0KKyAgICAuYmxvY2sgeworICAgICAgICBmb250LWZhbWlseTogQXJpYWw7CisgICAg
ICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgcGFkZGluZzogNXB4OworICAgICAg
ICBtYXJnaW46IDVweDsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmVkOworICAgIH0KKzwv
c3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgY2xhc3M9ImJsb2NrIj5BPC9kaXY+Cis8c3Bh
bj4KKyAgPGRpdiBjbGFzcz0iYmxvY2siPkE8L2Rpdj4KKyAgICA8c3Bhbj4KKyAgICAgIDxkaXYg
Y2xhc3M9ImJsb2NrIj5BPC9kaXY+CisgICAgICAgIDxzcGFuPgorICAgICAgICAgICAgPGRpdj48
L2Rpdj4KKyAgICAgICAgICAgIDxkaXY+PC9kaXY+CisgICAgICAgICAgICA8ZGl2PjwvZGl2Pgor
ICAgICAgICAgICAgPGRpdj48L2Rpdj4KKyAgICAgICAgICAgIDxkaXY+PC9kaXY+CisgICAgICAg
ICAgICA8ZGl2PjwvZGl2PgorICAgICAgICAgICAgPGRpdj48L2Rpdj4KKyAgICAgICAgPC9zcGFu
PgorCTxkaXYgY2xhc3M9ImJsb2NrIj5CPC9kaXY+CisgICAgPC9zcGFuPgorICAgIDxkaXYgY2xh
c3M9ImJsb2NrIj5CPC9kaXY+Cis8L3NwYW4+Cis8ZGl2IGNsYXNzPSJibG9jayI+QjwvZGl2Pgor
PC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRl
bnQvYWZ0ZXItd2l0aC1pbmxpbmUtY29udGludWF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9hZnRlci13aXRoLWlubGluZS1jb250aW51YXRpb24uaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mYWFkNzJkMjk0Mzc1ZjA5N2FjNTI5MjVhMTU1NGNiYjdjMjE0ZGIxCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQv
YWZ0ZXItd2l0aC1pbmxpbmUtY29udGludWF0aW9uLmh0bWwKQEAgLTAsMCArMSw2MCBAQAorPCFk
b2N0eXBlIGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyAgICBzcGFuIHsKKyAgICAgICAgLyogTXVz
dCBiZSBpbmxpbmUgdG8gY2F1c2UgYSBjb250aW51YXRpb24gY2hhaW4gKi8KKyAgICAgICAgZGlz
cGxheTogaW5saW5lOworICAgIH0KKworICAgIHNwYW46YmVmb3JlLAorICAgIHNwYW46YWZ0ZXIg
eworICAgICAgICAvKiBOb3QgcmVxdWlyZWVkIGZvciB0aGUgdGVzdCwganVzdCBtYWtlcyBpdCBl
YXNpZXIgdG8gc2VlIHdoYXQncyBnb2luZyBvbiAqLworICAgICAgICBkaXNwbGF5OiBpbmxpbmUt
YmxvY2s7CisgICAgICAgIHBhZGRpbmc6IDVweDsKKyAgICAgICAgbWFyZ2luOiA1cHg7CisgICAg
ICAgIGJvcmRlcjogMXB4IHNvbGlkIHJlZDsKKyAgICB9CisKKyAgICBzcGFuOmJlZm9yZSB7Cisg
ICAgICAgIGNvbnRlbnQ6ICJBIjsKKyAgICB9CisKKyAgICBzcGFuOmFmdGVyIHsKKyAgICAgICAg
LyogVGhpcyBjb250ZW50IHdpbGwgZ2V0IGluY29ycmVjdGx5IHJlcGVhdGVkIGluIHRoZSBjb250
aW51YXRpb24gKi8KKyAgICAgICAgY29udGVudDogIkIiOworICAgIH0KKzwvc3R5bGU+Cis8L2hl
YWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOworCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBzZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgLy8gQ2F1c2UgYSBzdHlsZSByZWNhbGMuCisgICAg
ICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdzcGFuJykuc3R5bGUuZm9udEZhbWlseSA9
ICdBcmlhbCc7CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIDEwKTsKKyAgICB9Owor
PC9zY3JpcHQ+CisKKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKworPCEtLSBbYnVnIDkzMTcw
XSBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTM3MCAtLT4KKzwhLS0g
SWYgdGVzdCBwYXNzZXMsIHlvdSBzaG91bGQgc2VlIEEgQSBBIEIgQiBCLiAtLT4KKworPHNwYW4+
CisgICAgPHNwYW4+CisgICAgICAgIDxzcGFuPgorICAgICAgICAgICAgPGRpdj48L2Rpdj4KKyAg
ICAgICAgICAgIDxkaXY+PC9kaXY+CisgICAgICAgICAgICA8ZGl2PjwvZGl2PgorICAgICAgICAg
ICAgPGRpdj48L2Rpdj4KKyAgICAgICAgICAgIDxkaXY+PC9kaXY+CisgICAgICAgICAgICA8ZGl2
PjwvZGl2PgorICAgICAgICAgICAgPGRpdj48L2Rpdj4KKyAgICAgICAgPC9zcGFuPgorICAgIDwv
c3Bhbj4KKzwvc3Bhbj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWlzYy9hY2lkMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mv
YWNpZDMtZXhwZWN0ZWQudHh0CmluZGV4IDVjMDNlZmFkYjE1MTg3NDY5MDQ4NmFmNDI5MTAzNzA3
NjdlZWIzY2UuLjM1MjRkYmZlYWEwOWQ3NTZjN2M0Y2VmNjc4ZmYzMTM3YzVmY2IxM2UgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9hY2lkMy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2FjaWQzLWV4cGVjdGVkLnR4dApAQCAtMjE2
LDEwICsyMTYsNiBAQCBsYXllciBhdCAoMjAsMjApIHNpemUgNjQ0eDQzMwogICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDEzMSwzOSkgd2lkdGggMTY4OiAidGhpcyByZWZlcmVuY2UgcmVuZGVyaW5n
IgogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDI5OSwzOSkgc2l6ZSA0eDE3CiAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDI5OSwzOSkgd2lkdGggNDogIi4iCi1sYXllciBhdCAoNjM4LDE4
KSBzaXplIDIweDIwCi0gIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSBhdCAoNjM4LDE4KSBzaXpl
IDIweDIwIFtjb2xvcj0jRkZGRkZGXSBbYmdjb2xvcj0jRkYwMEZGXQotICAgIFJlbmRlclRleHQg
YXQgKDAsMCkgc2l6ZSAyMHgyMAotICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjA6ICJY
IgogbGF5ZXIgYXQgKDEzMCw4NCkgc2l6ZSAzMDB4MTUwCiAgIFJlbmRlckVtYmVkZGVkT2JqZWN0
IHtPQkpFQ1R9IGF0ICgxMzAsODQpIHNpemUgMzAweDE1MAogICAgIGxheWVyIGF0ICgwLDApIHNp
emUgMzAweDE1MAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166612</attachid>
            <date>2012-10-01 23:16:06 -0700</date>
            <delta_ts>2012-10-02 01:02:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93170-20121002151518.patch</filename>
            <type>text/plain</type>
            <size>10156</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzg4ZDY4Nzc4NjgzNmRk
NmNjMWY3NDE2MWFlOGNjNmRjYzVjOTQ5My4uY2E1YTBiNWZlYzZiNGQyMWVmMjUyZGJjMzhlNjYz
ODA1NGE1N2Y3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTEwLTAxICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbmxpbmUgY29udGlu
dWF0aW9ucyBjcmVhdGUgOmFmdGVyIGdlbmVyYXRlZCBjb250ZW50IG9uIHN0eWxlIHJlY2FsY3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzMTcwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGJ1ZyBp
cyBjYXVzZWQgYnkgUmVuZGVySW5saW5lOjpzdHlsZURpZENoYW5nZSdzIHNldENvbnRpbnVhdGlv
bigwKS4KKyAgICAgICAgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0IHVzZXMgY29udGludWF0aW9uIHRv
IGtub3cgd2hldGhlciB0aGUgZ2l2ZW4KKyAgICAgICAgcmVuZGVyZXIgc2hvdWxkIGhhdmUgQUZU
RVIgcmVuZGVyIG9iamVjdCBvciBub3QuCisgICAgICAgIEhvd2V2ZXIsIHNldENvbnRpbnVhdGlv
bigwKSBtYWtlcyBSZW5kZXJPYmplY3RDaGlsZExpc3QgdG8KKyAgICAgICAgbWlzdW5kZXJzdGFu
ZCB0aGF0IGFsbCBjb250aW51YXRpb25zIGFyZSBsYXN0IGNvbnRpbnVhdGlvbi4KKyAgICAgICAg
VG8gYXZvaWQgdGhlIG1pc3VuZGVyc3RhbmRpbmcsIGFkZGVkIGEgbmV3IGZsYWcgdG8gY2xhc3MK
KyAgICAgICAgUmVuZGVyT2JlamN0Q2hpbGRMaXN0IHRvIGVuYWJsZS9kaXNhYmxlIGNyZWF0aW5n
IGEgbmV3IHJlbmRlcmVyIGZvcgorICAgICAgICA6YmVmb3JlIG9yIDphZnRlciBjb250ZW50Lgor
CisgICAgICAgIFRlc3Q6IGZhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2FmdGVyLXdpdGgtaW5s
aW5lLWNvbnRpbnVhdGlvbi5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5l
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcklubGluZTo6c3R5bGVEaWRDaGFuZ2UpOgor
ICAgICAgICBEaXNhYmxlIGNyZWF0aW5nIGEgbmV3IHJlbmRlcmVyIGZvciA6YmVmb3JlIG9yIDph
ZnRlciBjb250ZW50CisgICAgICAgIGR1cmluZyBzZXRTdHlsZS4gSG93ZXZlciB1cGRhdGVCZWZv
cmVBZnRlclN0eWxlIGlzIHN0aWxsIHJlcXVpcmVkLAorICAgICAgICBiZWNhdXNlIHdlIG5lZWQg
dG8gdXBkYXRlIHN0eWxlcyBvZiBnZW5lcmF0ZWQgcmVuZGVyb2JqZWN0cy4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Q2hpbGRMaXN0Ojp1cGRhdGVCZWZvcmVBZnRl
ckNvbnRlbnQpOgorICAgICAgICBJZiBjcmVhdGVCZWZvcmVBZnRlclJlbmRlcmVyIGlzIGRpc2Fi
bGVkLCBtb2RpZnkgbm90IHRvIGNyZWF0ZSBhIG5ldworICAgICAgICByZW5kZXJlciBmb3IgOmJl
Zm9yZSBhbmQgOmFmdGVyLiBIb3dldmVyLCBpZiBhIG5ldyByZW5kZXJlciBoYXMgYmVlbgorICAg
ICAgICBhbHJlYWR5IGdlbmVyYXRlZCwgdXBkYXRlIHRoZSByZW5kZXJlcidzIHN0eWxlLgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuaDoKKyAgICAgICAgKFJlbmRl
ck9iamVjdENoaWxkTGlzdCk6CisgICAgICAgIEFkZGVkIHB1YmxpYyBzdGF0aWMgbWVtYmVyIHZh
cmlhYmxlLCBtX2VuYWJsZUNyZWF0ZUJlZm9yZUFmdGVyUmVuZGVyZXIuCisKIDIwMTItMTAtMDEg
IEtlaXNoaSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVuYW1lIENh
bGVuZGFyUGlja2VyRWxlbWVudCB0byBQaWNrZXJJbmRpY2F0b3JFbGVtZW50CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCmluZGV4IGZlOTYxNzYxNDNkZjU4NmY5OGI5
NzIwYTM1MmU3M2YwN2UwZGQxMWEuLmQ0MGZmNzBiY2RkOWQ3MDg1MjNiZDYwNzYwYTA5Yjk5ZTZk
MTI4YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCkBAIC00
MCw2ICs0MCw4IEBACiAjaW5jbHVkZSAiVHJhbnNmb3JtU3RhdGUuaCIKICNpbmNsdWRlICJWaXNp
YmxlUG9zaXRpb24uaCIKIAorI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KKwogI2lm
IEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkgfHwgRU5BQkxFKFdJREdFVF9SRUdJT04pCiAjaW5j
bHVkZSAiRnJhbWUuaCIKICNlbmRpZgpAQCAtMTY3LDExICsxNjksMTQgQEAgdm9pZCBSZW5kZXJJ
bmxpbmU6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJT
dHlsZSogb2xkU3QKICAgICAvLyBuZWVkIHRvIHBhc3MgaXRzIHN0eWxlIG9uIHRvIGFueW9uZSBl
bHNlLgogICAgIFJlbmRlclN0eWxlKiBuZXdTdHlsZSA9IHN0eWxlKCk7CiAgICAgUmVuZGVySW5s
aW5lKiBjb250aW51YXRpb24gPSBpbmxpbmVFbGVtZW50Q29udGludWF0aW9uKCk7Ci0gICAgZm9y
IChSZW5kZXJJbmxpbmUqIGN1cnJDb250ID0gY29udGludWF0aW9uOyBjdXJyQ29udDsgY3VyckNv
bnQgPSBjdXJyQ29udC0+aW5saW5lRWxlbWVudENvbnRpbnVhdGlvbigpKSB7Ci0gICAgICAgIFJl
bmRlckJveE1vZGVsT2JqZWN0KiBuZXh0Q29udCA9IGN1cnJDb250LT5jb250aW51YXRpb24oKTsK
LSAgICAgICAgY3VyckNvbnQtPnNldENvbnRpbnVhdGlvbigwKTsKLSAgICAgICAgY3VyckNvbnQt
PnNldFN0eWxlKG5ld1N0eWxlKTsKLSAgICAgICAgY3VyckNvbnQtPnNldENvbnRpbnVhdGlvbihu
ZXh0Q29udCk7CisgICAgeworICAgICAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gY3JlYXRpb25F
bmFibGVkKFJlbmRlck9iamVjdENoaWxkTGlzdDo6bV9lbmFibGVDcmVhdGVCZWZvcmVBZnRlclJl
bmRlcmVyLCBmYWxzZSk7CisgICAgICAgIGZvciAoUmVuZGVySW5saW5lKiBjdXJyQ29udCA9IGNv
bnRpbnVhdGlvbjsgY3VyckNvbnQ7IGN1cnJDb250ID0gY3VyckNvbnQtPmlubGluZUVsZW1lbnRD
b250aW51YXRpb24oKSkgeworICAgICAgICAgICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIG5leHRD
b250ID0gY3VyckNvbnQtPmNvbnRpbnVhdGlvbigpOworICAgICAgICAgICAgY3VyckNvbnQtPnNl
dENvbnRpbnVhdGlvbigwKTsKKyAgICAgICAgICAgIGN1cnJDb250LT5zZXRTdHlsZShuZXdTdHls
ZSk7CisgICAgICAgICAgICBjdXJyQ29udC0+c2V0Q29udGludWF0aW9uKG5leHRDb250KTsKKyAg
ICAgICAgfQogICAgIH0KIAogICAgIC8vIElmIGFuIGlubGluZSdzIGluLWZsb3cgcG9zaXRpb25p
bmcgaGFzIGNoYW5nZWQgdGhlbiBhbnkgZGVzY2VuZGFudCBibG9ja3Mgd2lsbCBuZWVkIHRvIGNo
YW5nZSB0aGVpciBpbi1mbG93IHBvc2l0aW9uaW5nIGFjY29yZGluZ2x5LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcAppbmRleCBjM2I0
ZDQ4MzE2ZWU3NWI2YjE0OGExMzRjNjEyYTQ3NDQwODQ4MDQ4Li44ZmZiMTYyNWJjY2Y4NzQ2NjNh
NjVmMGYyM2Q5ZDEzZjEzZDViYjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcApAQCAtNDUsNiArNDUsOCBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK2Jvb2wgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0OjptX2VuYWJsZUNyZWF0
ZUJlZm9yZUFmdGVyUmVuZGVyZXIgPSB0cnVlOworCiB2b2lkIFJlbmRlck9iamVjdENoaWxkTGlz
dDo6ZGVzdHJveUxlZnRvdmVyQ2hpbGRyZW4oKQogewogICAgIHdoaWxlIChmaXJzdENoaWxkKCkp
IHsKQEAgLTQzOCw2ICs0NDAsOCBAQCB2b2lkIFJlbmRlck9iamVjdENoaWxkTGlzdDo6dXBkYXRl
QmVmb3JlQWZ0ZXJDb250ZW50KFJlbmRlck9iamVjdCogb3duZXIsIFBzZXVkbwogICAgICAgICB1
cGRhdGVCZWZvcmVBZnRlclN0eWxlKGNoaWxkLCB0eXBlLCBwc2V1ZG9FbGVtZW50U3R5bGUpOwog
ICAgICAgICByZXR1cm47IC8vIFdlJ3ZlIHVwZGF0ZWQgdGhlIGdlbmVyYXRlZCBjb250ZW50LiBU
aGF0J3MgYWxsIHdlIG5lZWRlZCB0byBkby4KICAgICB9CisgICAgaWYgKCFtX2VuYWJsZUNyZWF0
ZUJlZm9yZUFmdGVyUmVuZGVyZXIpCisgICAgICAgIHJldHVybjsKICAgICAKICAgICBSZW5kZXJP
YmplY3QqIGluc2VydEJlZm9yZSA9ICh0eXBlID09IEJFRk9SRSkgPyBvd25lci0+dmlydHVhbENo
aWxkcmVuKCktPmZpcnN0Q2hpbGQoKSA6IDA7CiAgICAgaWYgKGluc2VydEJlZm9yZSAmJiBpbnNl
cnRCZWZvcmUtPmlzQW5vbnltb3VzQmxvY2soKSAmJiBpbnNlcnRCZWZvcmUtPmNoaWxkcmVuSW5s
aW5lKCkgJiYgIWluc2VydEJlZm9yZS0+aXNFbXB0eSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmgKaW5kZXggNjNiNzMzZGUwM2FjMzEx
NGM1NzFkNWU4NGE2NjY1ZTZlMWQxYjViNC4uNTE5MmNmYTkzODU1ZjA4ZWM2MWMxNTZkZjdiYjIy
OTNiNTAyNDA5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdENoaWxkTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3RDaGlsZExpc3QuaApAQCAtNjAsNiArNjAsOSBAQCBwdWJsaWM6CiAgICAgUmVuZGVyT2JqZWN0
KiBiZWZvcmVQc2V1ZG9FbGVtZW50UmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBvd25lcikg
Y29uc3Q7CiAgICAgUmVuZGVyT2JqZWN0KiBhZnRlclBzZXVkb0VsZW1lbnRSZW5kZXJlcihjb25z
dCBSZW5kZXJPYmplY3QqIG93bmVyKSBjb25zdDsKIAorcHVibGljOgorICAgIHN0YXRpYyBib29s
IG1fZW5hYmxlQ3JlYXRlQmVmb3JlQWZ0ZXJSZW5kZXJlcjsKKwogcHJpdmF0ZToKICAgICB2b2lk
IHVwZGF0ZUJlZm9yZUFmdGVyU3R5bGUoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUHNldWRvSWQgdHlw
ZSwgUmVuZGVyU3R5bGUqIHBzZXVkb0VsZW1lbnRTdHlsZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2NjE3OTU5MDkw
NThkYmIxYmZmNGJlZTg4NzM1YzdlNjEzZTdiMjYzLi5iNGRiNzg5MGU1MzhmMzNiZTc3ODRjOTMw
MzZkNmJiZjU3NGVkNGY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMTAtMDEgIFRha2Fz
aGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgorCisgICAgICAgIElubGluZSBjb250aW51
YXRpb25zIGNyZWF0ZSA6YWZ0ZXIgZ2VuZXJhdGVkIGNvbnRlbnQgb24gc3R5bGUgcmVjYWxjcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTMxNzAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvY3Nz
LWdlbmVyYXRlZC1jb250ZW50L2FmdGVyLXdpdGgtaW5saW5lLWNvbnRpbnVhdGlvbi1leHBlY3Rl
ZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9hZnRl
ci13aXRoLWlubGluZS1jb250aW51YXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9taXNjL2FjaWQzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgVGhlIGFjaWQzLWV4cGVjdGVk
LnR4dCBoYXMgdGhlIGR1cGxpY2F0ZSBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkuCisgICAgICAg
IFR3byAnbGF5ZXIgYXQoNjM4LCAxOCkgc2l6ZSAyMHgyMCwgLi4uIHRleHQgcnVuIGF0ICgwLDAp
IHdpZHRoIDIwOiAiWCInCisgICAgICAgIGV4aXN0LiBTbyBkaWQgcmVzZXQtcmVzdWx0cyBmb3Ig
YWNpZDMtZXhwZWN0ZWQudHh0LgorCiAyMDEyLTEwLTAxICBZb3NoaWZ1bWkgSW5vdWUgIDx5b3Np
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkaW5nIGFwcGVhcmFuY2UgdGVzdHMgZm9yIG11
bHRpcGxlIGZpZWxkcyB3ZWVrIGlucHV0IFVJCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9hZnRlci13aXRoLWlubGluZS1jb250aW51YXRpb24tZXhw
ZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2FmdGVy
LXdpdGgtaW5saW5lLWNvbnRpbnVhdGlvbi1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjZTkw
NWJkNjQxNDA0MjhkYzE1Mzc3MWY2OTU5OGU5NWMxNjkwZTUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9hZnRlci13aXRoLWlubGluZS1j
b250aW51YXRpb24tZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDM2IEBACis8IWRvY3R5cGUgaHRt
bD4KKzxoZWFkPgorPHN0eWxlPgorICAgIHNwYW4geworICAgICAgICBkaXNwbGF5OiBpbmxpbmU7
CisgICAgfQorICAgIC5ibG9jayB7CisgICAgICAgIGZvbnQtZmFtaWx5OiBBcmlhbDsKKyAgICAg
ICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBwYWRkaW5nOiA1cHg7CisgICAgICAg
IG1hcmdpbjogNXB4OworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZWQ7CisgICAgfQorPC9z
dHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBjbGFzcz0iYmxvY2siPkE8L2Rpdj4KKzxzcGFu
PgorICA8ZGl2IGNsYXNzPSJibG9jayI+QTwvZGl2PgorICAgIDxzcGFuPgorICAgICAgPGRpdiBj
bGFzcz0iYmxvY2siPkE8L2Rpdj4KKyAgICAgICAgPHNwYW4+CisgICAgICAgICAgICA8ZGl2Pjwv
ZGl2PgorICAgICAgICAgICAgPGRpdj48L2Rpdj4KKyAgICAgICAgICAgIDxkaXY+PC9kaXY+Cisg
ICAgICAgICAgICA8ZGl2PjwvZGl2PgorICAgICAgICAgICAgPGRpdj48L2Rpdj4KKyAgICAgICAg
ICAgIDxkaXY+PC9kaXY+CisgICAgICAgICAgICA8ZGl2PjwvZGl2PgorICAgICAgICA8L3NwYW4+
CisJPGRpdiBjbGFzcz0iYmxvY2siPkI8L2Rpdj4KKyAgICA8L3NwYW4+CisgICAgPGRpdiBjbGFz
cz0iYmxvY2siPkI8L2Rpdj4KKzwvc3Bhbj4KKzxkaXYgY2xhc3M9ImJsb2NrIj5CPC9kaXY+Cis8
L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVu
dC9hZnRlci13aXRoLWlubGluZS1jb250aW51YXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzLWdlbmVyYXRlZC1jb250ZW50L2FmdGVyLXdpdGgtaW5saW5lLWNvbnRpbnVhdGlvbi5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZhYWQ3MmQyOTQzNzVmMDk3YWM1MjkyNWExNTU0Y2JiN2MyMTRkYjEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9h
ZnRlci13aXRoLWlubGluZS1jb250aW51YXRpb24uaHRtbApAQCAtMCwwICsxLDYwIEBACis8IWRv
Y3R5cGUgaHRtbD4KKzxoZWFkPgorPHN0eWxlPgorICAgIHNwYW4geworICAgICAgICAvKiBNdXN0
IGJlIGlubGluZSB0byBjYXVzZSBhIGNvbnRpbnVhdGlvbiBjaGFpbiAqLworICAgICAgICBkaXNw
bGF5OiBpbmxpbmU7CisgICAgfQorCisgICAgc3BhbjpiZWZvcmUsCisgICAgc3BhbjphZnRlciB7
CisgICAgICAgIC8qIE5vdCByZXF1aXJlZWQgZm9yIHRoZSB0ZXN0LCBqdXN0IG1ha2VzIGl0IGVh
c2llciB0byBzZWUgd2hhdCdzIGdvaW5nIG9uICovCisgICAgICAgIGRpc3BsYXk6IGlubGluZS1i
bG9jazsKKyAgICAgICAgcGFkZGluZzogNXB4OworICAgICAgICBtYXJnaW46IDVweDsKKyAgICAg
ICAgYm9yZGVyOiAxcHggc29saWQgcmVkOworICAgIH0KKworICAgIHNwYW46YmVmb3JlIHsKKyAg
ICAgICAgY29udGVudDogIkEiOworICAgIH0KKworICAgIHNwYW46YWZ0ZXIgeworICAgICAgICAv
KiBUaGlzIGNvbnRlbnQgd2lsbCBnZXQgaW5jb3JyZWN0bHkgcmVwZWF0ZWQgaW4gdGhlIGNvbnRp
bnVhdGlvbiAqLworICAgICAgICBjb250ZW50OiAiQiI7CisgICAgfQorPC9zdHlsZT4KKzwvaGVh
ZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CisKK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAvLyBDYXVzZSBhIHN0eWxlIHJlY2FsYy4KKyAgICAg
ICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3NwYW4nKS5zdHlsZS5mb250RmFtaWx5ID0g
J0FyaWFsJzsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgMTApOworICAgIH07Cis8
L3NjcmlwdD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorCis8IS0tIFtidWcgOTMxNzBd
IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMzcwIC0tPgorPCEtLSBJ
ZiB0ZXN0IHBhc3NlcywgeW91IHNob3VsZCBzZWUgQSBBIEEgQiBCIEIuIC0tPgorCis8c3Bhbj4K
KyAgICA8c3Bhbj4KKyAgICAgICAgPHNwYW4+CisgICAgICAgICAgICA8ZGl2PjwvZGl2PgorICAg
ICAgICAgICAgPGRpdj48L2Rpdj4KKyAgICAgICAgICAgIDxkaXY+PC9kaXY+CisgICAgICAgICAg
ICA8ZGl2PjwvZGl2PgorICAgICAgICAgICAgPGRpdj48L2Rpdj4KKyAgICAgICAgICAgIDxkaXY+
PC9kaXY+CisgICAgICAgICAgICA8ZGl2PjwvZGl2PgorICAgICAgICA8L3NwYW4+CisgICAgPC9z
cGFuPgorPC9zcGFuPgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9taXNjL2FjaWQzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9h
Y2lkMy1leHBlY3RlZC50eHQKaW5kZXggNWMwM2VmYWRiMTUxODc0NjkwNDg2YWY0MjkxMDM3MDc2
N2VlYjNjZS4uMzUyNGRiZmVhYTA5ZDc1NmM3YzRjZWY2NzhmZjMxMzdjNWZjYjEzZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2FjaWQzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvYWNpZDMtZXhwZWN0ZWQudHh0CkBAIC0yMTYs
MTAgKzIxNiw2IEBAIGxheWVyIGF0ICgyMCwyMCkgc2l6ZSA2NDR4NDMzCiAgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMTMxLDM5KSB3aWR0aCAxNjg6ICJ0aGlzIHJlZmVyZW5jZSByZW5kZXJpbmci
CiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjk5LDM5KSBzaXplIDR4MTcKICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMjk5LDM5KSB3aWR0aCA0OiAiLiIKLWxheWVyIGF0ICg2MzgsMTgp
IHNpemUgMjB4MjAKLSAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIGF0ICg2MzgsMTgpIHNpemUg
MjB4MjAgW2NvbG9yPSNGRkZGRkZdIFtiZ2NvbG9yPSNGRjAwRkZdCi0gICAgUmVuZGVyVGV4dCBh
dCAoMCwwKSBzaXplIDIweDIwCi0gICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyMDogIlgi
CiBsYXllciBhdCAoMTMwLDg0KSBzaXplIDMwMHgxNTAKICAgUmVuZGVyRW1iZWRkZWRPYmplY3Qg
e09CSkVDVH0gYXQgKDEzMCw4NCkgc2l6ZSAzMDB4MTUwCiAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6
ZSAzMDB4MTUwCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166633</attachid>
            <date>2012-10-02 01:02:43 -0700</date>
            <delta_ts>2012-10-02 23:05:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93170-20121002170156.patch</filename>
            <type>text/plain</type>
            <size>12190</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzg4ZDY4Nzc4NjgzNmRk
NmNjMWY3NDE2MWFlOGNjNmRjYzVjOTQ5My4uYWJkZmU5ZDFiNWViNDg3MDc2NDVhOTMzMjRmMTMy
NjMzZmI1YzViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTEwLTAyICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbmxpbmUgY29udGlu
dWF0aW9ucyBjcmVhdGUgOmFmdGVyIGdlbmVyYXRlZCBjb250ZW50IG9uIHN0eWxlIHJlY2FsY3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzMTcwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGJ1ZyBp
cyBjYXVzZWQgYnkgUmVuZGVySW5saW5lOjpzdHlsZURpZENoYW5nZSdzIHNldENvbnRpbnVhdGlv
bigwKS4KKyAgICAgICAgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0IHVzZXMgY29udGludWF0aW9uIHRv
IGtub3cgd2hldGhlciB0aGUgZ2l2ZW4KKyAgICAgICAgcmVuZGVyZXIgc2hvdWxkIGhhdmUgQUZU
RVIgcmVuZGVyIG9iamVjdCBvciBub3QuCisgICAgICAgIEhvd2V2ZXIsIHNldENvbnRpbnVhdGlv
bigwKSBtYWtlcyBSZW5kZXJPYmplY3RDaGlsZExpc3QgdG8KKyAgICAgICAgbWlzdW5kZXJzdGFu
ZCB0aGF0IGFsbCBjb250aW51YXRpb25zIGFyZSBsYXN0IGNvbnRpbnVhdGlvbi4KKyAgICAgICAg
VG8gYXZvaWQgdGhlIG1pc3VuZGVyc3RhbmRpbmcsIGFkZGVkIGEgbmV3IGZsYWcgdG8gY2xhc3MK
KyAgICAgICAgUmVuZGVyT2JlamN0Q2hpbGRMaXN0IHRvIGVuYWJsZS9kaXNhYmxlIHVwZGF0aW5n
IDphZnRlciBjb250ZW50LgorCisgICAgICAgIFRlc3RzOiBmYXN0L2Nzcy1nZW5lcmF0ZWQtY29u
dGVudC9hZnRlci13aXRoLWlubGluZS1jb250aW51YXRpb24uaHRtbAorICAgICAgICAgICAgICAg
ZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvZHluYW1pYy1hcHBseS1hZnRlci1mb3ItaW5saW5l
Lmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVySW5saW5lOjpzdHlsZURpZENoYW5nZSk6CisgICAgICAgIERpc2FibGUg
dXBhdGluZyA6YWZ0ZXIgY29udGVudCBpZiBjdXJyQ29udCBpcyBub3QgdGhlIGxhc3QgcmVuZGVy
ZXIgb2YKKyAgICAgICAgY29udGludWF0aW9uIGxpc3QuCisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlck9iamVjdENoaWxkTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdENoaWxkTGlzdDo6dXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50KToK
KyAgICAgICAgSWYgdXBkYXRpbmcgOmFmdGVyIGNvbnRlbnQgaXMgZGlzYWJsZWQgYW5kIHRoZSB1
cGRhdGUgdHlwZSBpcyBBRlRFUiwKKyAgICAgICAgcXVpY2tseSBleGl0IHVwZGF0ZUJlZm9yZUFm
dGVyQ29udGVudC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0Lmg6
CisgICAgICAgIChSZW5kZXJPYmplY3RDaGlsZExpc3QpOgorICAgICAgICBBZGRlZCBhIG5ldyBm
bGFnIG1fZW5hYmxlVXBkYXRlQWZ0ZXJDb250ZW50IHRvIGVuYWJsZS9kaXNhYmxlIHVwZGF0aW5n
CisgICAgICAgIDphZnRlciBjb250ZW50LgorCiAyMDEyLTEwLTAxICBLZWlzaGkgSGF0dG9yaSAg
PGtlaXNoaUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbmFtZSBDYWxlbmRhclBpY2tlckVsZW1l
bnQgdG8gUGlja2VySW5kaWNhdG9yRWxlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW5saW5lLmNwcAppbmRleCBmZTk2MTc2MTQzZGY1ODZmOThiOTcyMGEzNTJlNzNmMDdlMGRk
MTFhLi44NjhhNWUzNTJiZThhNzA4MGU1MTRhYTllYmM3NzZjYWI4OWZjOTdjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcApAQCAtNDAsNiArNDAsOCBAQAogI2lu
Y2x1ZGUgIlRyYW5zZm9ybVN0YXRlLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVBvc2l0aW9uLmgiCiAK
KyNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CisKICNpZiBFTkFCTEUoREFTSEJPQVJE
X1NVUFBPUlQpIHx8IEVOQUJMRShXSURHRVRfUkVHSU9OKQogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
ZW5kaWYKQEAgLTE2NywxMSArMTY5LDE3IEBAIHZvaWQgUmVuZGVySW5saW5lOjpzdHlsZURpZENo
YW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0CiAgICAg
Ly8gbmVlZCB0byBwYXNzIGl0cyBzdHlsZSBvbiB0byBhbnlvbmUgZWxzZS4KICAgICBSZW5kZXJT
dHlsZSogbmV3U3R5bGUgPSBzdHlsZSgpOwogICAgIFJlbmRlcklubGluZSogY29udGludWF0aW9u
ID0gaW5saW5lRWxlbWVudENvbnRpbnVhdGlvbigpOwotICAgIGZvciAoUmVuZGVySW5saW5lKiBj
dXJyQ29udCA9IGNvbnRpbnVhdGlvbjsgY3VyckNvbnQ7IGN1cnJDb250ID0gY3VyckNvbnQtPmlu
bGluZUVsZW1lbnRDb250aW51YXRpb24oKSkgewotICAgICAgICBSZW5kZXJCb3hNb2RlbE9iamVj
dCogbmV4dENvbnQgPSBjdXJyQ29udC0+Y29udGludWF0aW9uKCk7Ci0gICAgICAgIGN1cnJDb250
LT5zZXRDb250aW51YXRpb24oMCk7Ci0gICAgICAgIGN1cnJDb250LT5zZXRTdHlsZShuZXdTdHls
ZSk7Ci0gICAgICAgIGN1cnJDb250LT5zZXRDb250aW51YXRpb24obmV4dENvbnQpOworICAgIHsK
KyAgICAgICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGVuYWJsZUFmdGVyKFJlbmRlck9iamVjdENo
aWxkTGlzdDo6bV9lbmFibGVVcGRhdGVBZnRlckNvbnRlbnQsIGZhbHNlKTsKKyAgICAgICAgUmVu
ZGVySW5saW5lKiBuZXh0VGFyZ2V0ID0gMDsKKyAgICAgICAgZm9yIChSZW5kZXJJbmxpbmUqIGN1
cnJDb250ID0gY29udGludWF0aW9uOyBjdXJyQ29udDsgY3VyckNvbnQgPSBuZXh0VGFyZ2V0KSB7
CisgICAgICAgICAgICBuZXh0VGFyZ2V0ID0gY3VyckNvbnQtPmlubGluZUVsZW1lbnRDb250aW51
YXRpb24oKTsKKyAgICAgICAgICAgIFJlbmRlck9iamVjdENoaWxkTGlzdDo6bV9lbmFibGVVcGRh
dGVBZnRlckNvbnRlbnQgPSAhbmV4dFRhcmdldDsKKyAgICAgICAgICAgIFJlbmRlckJveE1vZGVs
T2JqZWN0KiBuZXh0Q29udCA9IGN1cnJDb250LT5jb250aW51YXRpb24oKTsKKyAgICAgICAgICAg
IGN1cnJDb250LT5zZXRDb250aW51YXRpb24oMCk7CisgICAgICAgICAgICBjdXJyQ29udC0+c2V0
U3R5bGUobmV3U3R5bGUpOworICAgICAgICAgICAgY3VyckNvbnQtPnNldENvbnRpbnVhdGlvbihu
ZXh0Q29udCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICAvLyBJZiBhbiBpbmxpbmUncyBpbi1m
bG93IHBvc2l0aW9uaW5nIGhhcyBjaGFuZ2VkIHRoZW4gYW55IGRlc2NlbmRhbnQgYmxvY2tzIHdp
bGwgbmVlZCB0byBjaGFuZ2UgdGhlaXIgaW4tZmxvdyBwb3NpdGlvbmluZyBhY2NvcmRpbmdseS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExp
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5j
cHAKaW5kZXggYzNiNGQ0ODMxNmVlNzViNmIxNDhhMTM0YzYxMmE0NzQ0MDg0ODA0OC4uOTIwYmFh
NTYxNjExNjA5NDQ4YjIzNDkzMGU2M2U2NDRkOGFiNTkxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAKQEAgLTQ1LDYgKzQ1LDgg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitib29sIFJlbmRlck9iamVjdENoaWxkTGlzdDo6
bV9lbmFibGVVcGRhdGVBZnRlckNvbnRlbnQgPSB0cnVlOworCiB2b2lkIFJlbmRlck9iamVjdENo
aWxkTGlzdDo6ZGVzdHJveUxlZnRvdmVyQ2hpbGRyZW4oKQogewogICAgIHdoaWxlIChmaXJzdENo
aWxkKCkpIHsKQEAgLTM3NCw2ICszNzYsOCBAQCB2b2lkIFJlbmRlck9iamVjdENoaWxkTGlzdDo6
dXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50KFJlbmRlck9iamVjdCogb3duZXIsIFBzZXVkbwogICAg
IC8vIEluIENTUzIsIGJlZm9yZS9hZnRlciBwc2V1ZG8tY29udGVudCBjYW5ub3QgbmVzdC4gIENo
ZWNrIHRoaXMgZmlyc3QuCiAgICAgaWYgKG93bmVyLT5zdHlsZSgpLT5zdHlsZVR5cGUoKSA9PSBC
RUZPUkUgfHwgb3duZXItPnN0eWxlKCktPnN0eWxlVHlwZSgpID09IEFGVEVSKQogICAgICAgICBy
ZXR1cm47CisgICAgaWYgKHR5cGUgPT0gQUZURVIgJiYgIW1fZW5hYmxlVXBkYXRlQWZ0ZXJDb250
ZW50KQorICAgICAgICByZXR1cm47CiAgICAgCiAgICAgaWYgKCFzdHlsZWRPYmplY3QpCiAgICAg
ICAgIHN0eWxlZE9iamVjdCA9IG93bmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdENoaWxkTGlzdC5oCmluZGV4IDYzYjczM2RlMDNhYzMxMTRjNTcxZDVlODRh
NjY2NWU2ZTFkMWI1YjQuLjgxYzMxMjYxNTlhNmNjOGRlOGZkNTY2NTE2Y2YzMzc2YTg5OTRjMGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExp
c3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0
LmgKQEAgLTYwLDYgKzYwLDkgQEAgcHVibGljOgogICAgIFJlbmRlck9iamVjdCogYmVmb3JlUHNl
dWRvRWxlbWVudFJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCogb3duZXIpIGNvbnN0OwogICAg
IFJlbmRlck9iamVjdCogYWZ0ZXJQc2V1ZG9FbGVtZW50UmVuZGVyZXIoY29uc3QgUmVuZGVyT2Jq
ZWN0KiBvd25lcikgY29uc3Q7CiAKK3B1YmxpYzoKKyAgICBzdGF0aWMgYm9vbCBtX2VuYWJsZVVw
ZGF0ZUFmdGVyQ29udGVudDsKKwogcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUJlZm9yZUFmdGVy
U3R5bGUoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUHNldWRvSWQgdHlwZSwgUmVuZGVyU3R5bGUqIHBz
ZXVkb0VsZW1lbnRTdHlsZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2NjE3OTU5MDkwNThkYmIxYmZmNGJlZTg4NzM1
YzdlNjEzZTdiMjYzLi43MTgwNjUwYTNkNTUzODkyMGQ5NTBjYjFjMGNkNjBiYWVhNGFjNjBmIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMTAtMDIgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNh
a0Bnb29nbGUuY29tPgorCisgICAgICAgIElubGluZSBjb250aW51YXRpb25zIGNyZWF0ZSA6YWZ0
ZXIgZ2VuZXJhdGVkIGNvbnRlbnQgb24gc3R5bGUgcmVjYWxjcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTMxNzAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50
L2FmdGVyLXdpdGgtaW5saW5lLWNvbnRpbnVhdGlvbi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9hZnRlci13aXRoLWlubGluZS1jb250
aW51YXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRl
bnQvZHluYW1pYy1hcHBseS1hZnRlci1mb3ItaW5saW5lLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2R5bmFtaWMtYXBwbHktYWZ0ZXIt
Zm9yLWlubGluZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2MvYWNpZDMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICBUaGUgYWNpZDMtZXhwZWN0ZWQudHh0IGhhcyB0aGUgZHVw
bGljYXRlIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKS4KKyAgICAgICAgVHdvICdsYXllciBhdCg2
MzgsIDE4KSBzaXplIDIweDIwLCAuLi4gdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjA6ICJYIicK
KyAgICAgICAgZXhpc3QuIFNvIGRpZCByZXNldC1yZXN1bHRzIGZvciBhY2lkMy1leHBlY3RlZC50
eHQuCisKIDIwMTItMTAtMDEgIFlvc2hpZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBBZGRpbmcgYXBwZWFyYW5jZSB0ZXN0cyBmb3IgbXVsdGlwbGUgZmllbGRzIHdl
ZWsgaW5wdXQgVUkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1j
b250ZW50L2FmdGVyLXdpdGgtaW5saW5lLWNvbnRpbnVhdGlvbi1leHBlY3RlZC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvYWZ0ZXItd2l0aC1pbmxpbmUtY29u
dGludWF0aW9uLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGNlOTA1YmQ2NDE0MDQyOGRjMTUz
NzcxZjY5NTk4ZTk1YzE2OTBlNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzLWdlbmVyYXRlZC1jb250ZW50L2FmdGVyLXdpdGgtaW5saW5lLWNvbnRpbnVhdGlvbi1leHBl
Y3RlZC5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhZG9jdHlwZSBodG1sPgorPGhlYWQ+Cis8c3R5
bGU+CisgICAgc3BhbiB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZTsKKyAgICB9CisgICAgLmJs
b2NrIHsKKyAgICAgICAgZm9udC1mYW1pbHk6IEFyaWFsOworICAgICAgICBkaXNwbGF5OiBpbmxp
bmUtYmxvY2s7CisgICAgICAgIHBhZGRpbmc6IDVweDsKKyAgICAgICAgbWFyZ2luOiA1cHg7Cisg
ICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJlZDsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgor
PGJvZHk+Cis8ZGl2IGNsYXNzPSJibG9jayI+QTwvZGl2PgorPHNwYW4+CisgIDxkaXYgY2xhc3M9
ImJsb2NrIj5BPC9kaXY+CisgICAgPHNwYW4+CisgICAgICA8ZGl2IGNsYXNzPSJibG9jayI+QTwv
ZGl2PgorICAgICAgICA8c3Bhbj4KKyAgICAgICAgICAgIDxkaXY+PC9kaXY+CisgICAgICAgICAg
ICA8ZGl2PjwvZGl2PgorICAgICAgICAgICAgPGRpdj48L2Rpdj4KKyAgICAgICAgICAgIDxkaXY+
PC9kaXY+CisgICAgICAgICAgICA8ZGl2PjwvZGl2PgorICAgICAgICAgICAgPGRpdj48L2Rpdj4K
KyAgICAgICAgICAgIDxkaXY+PC9kaXY+CisgICAgICAgIDwvc3Bhbj4KKwk8ZGl2IGNsYXNzPSJi
bG9jayI+QjwvZGl2PgorICAgIDwvc3Bhbj4KKyAgICA8ZGl2IGNsYXNzPSJibG9jayI+QjwvZGl2
PgorPC9zcGFuPgorPGRpdiBjbGFzcz0iYmxvY2siPkI8L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2FmdGVyLXdpdGgtaW5s
aW5lLWNvbnRpbnVhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNv
bnRlbnQvYWZ0ZXItd2l0aC1pbmxpbmUtY29udGludWF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmFh
ZDcyZDI5NDM3NWYwOTdhYzUyOTI1YTE1NTRjYmI3YzIxNGRiMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2FmdGVyLXdpdGgtaW5saW5l
LWNvbnRpbnVhdGlvbi5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzwhZG9jdHlwZSBodG1sPgorPGhl
YWQ+Cis8c3R5bGU+CisgICAgc3BhbiB7CisgICAgICAgIC8qIE11c3QgYmUgaW5saW5lIHRvIGNh
dXNlIGEgY29udGludWF0aW9uIGNoYWluICovCisgICAgICAgIGRpc3BsYXk6IGlubGluZTsKKyAg
ICB9CisKKyAgICBzcGFuOmJlZm9yZSwKKyAgICBzcGFuOmFmdGVyIHsKKyAgICAgICAgLyogTm90
IHJlcXVpcmVlZCBmb3IgdGhlIHRlc3QsIGp1c3QgbWFrZXMgaXQgZWFzaWVyIHRvIHNlZSB3aGF0
J3MgZ29pbmcgb24gKi8KKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBw
YWRkaW5nOiA1cHg7CisgICAgICAgIG1hcmdpbjogNXB4OworICAgICAgICBib3JkZXI6IDFweCBz
b2xpZCByZWQ7CisgICAgfQorCisgICAgc3BhbjpiZWZvcmUgeworICAgICAgICBjb250ZW50OiAi
QSI7CisgICAgfQorCisgICAgc3BhbjphZnRlciB7CisgICAgICAgIC8qIFRoaXMgY29udGVudCB3
aWxsIGdldCBpbmNvcnJlY3RseSByZXBlYXRlZCBpbiB0aGUgY29udGludWF0aW9uICovCisgICAg
ICAgIGNvbnRlbnQ6ICJCIjsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPHNjcmlwdD4KK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKwor
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIC8vIENhdXNlIGEgc3R5bGUgcmVjYWxjLgorICAgICAgICAgICAgZG9jdW1lbnQu
cXVlcnlTZWxlY3Rvcignc3BhbicpLnN0eWxlLmZvbnRGYW1pbHkgPSAnQXJpYWwnOworICAgICAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworICAgICAgICB9LCAxMCk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSI+CisKKzwhLS0gW2J1ZyA5MzE3MF0gaHR0cDovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTEzNzAgLS0+Cis8IS0tIElmIHRlc3QgcGFzc2VzLCB5
b3Ugc2hvdWxkIHNlZSBBIEEgQSBCIEIgQi4gLS0+CisKKzxzcGFuPgorICAgIDxzcGFuPgorICAg
ICAgICA8c3Bhbj4KKyAgICAgICAgICAgIDxkaXY+PC9kaXY+CisgICAgICAgICAgICA8ZGl2Pjwv
ZGl2PgorICAgICAgICAgICAgPGRpdj48L2Rpdj4KKyAgICAgICAgICAgIDxkaXY+PC9kaXY+Cisg
ICAgICAgICAgICA8ZGl2PjwvZGl2PgorICAgICAgICAgICAgPGRpdj48L2Rpdj4KKyAgICAgICAg
ICAgIDxkaXY+PC9kaXY+CisgICAgICAgIDwvc3Bhbj4KKyAgICA8L3NwYW4+Cis8L3NwYW4+Cis8
L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVu
dC9keW5hbWljLWFwcGx5LWFmdGVyLWZvci1pbmxpbmUtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2R5bmFtaWMtYXBwbHktYWZ0ZXItZm9yLWlu
bGluZS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhYWYwYWVmYThlMGM4OTJjM2FkYmIxYmYz
MDcyMjZkOTkyNzNiMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1n
ZW5lcmF0ZWQtY29udGVudC9keW5hbWljLWFwcGx5LWFmdGVyLWZvci1pbmxpbmUtZXhwZWN0ZWQu
aHRtbApAQCAtMCwwICsxLDE5IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c3R5bGU+Cit1bCB7CisgICAgZGlzcGxheTppbmxpbmU7Cit9Cit1bDo6YmVmb3JlIHsKKyAgICBj
b250ZW50OiAnYmVmb3JlJzsKK30KK3VsOjphZnRlciB7CisgICAgY29udGVudDogJ2FmdGVyJzsK
K30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzx1bD48bGk+MTwvbGk+PGxpPjI8L2xpPjxs
aT4zPC9saT48L3VsPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvZHluYW1pYy1hcHBseS1hZnRlci1mb3ItaW5saW5l
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9keW5hbWljLWFw
cGx5LWFmdGVyLWZvci1pbmxpbmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OGI1ZmVmMTI5NGY3ZWYxYjAx
MGE3MGRjMGE1Y2M3ZGMzOWMzZmY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvZHluYW1pYy1hcHBseS1hZnRlci1mb3ItaW5saW5lLmh0
bWwKQEAgLTAsMCArMSw0OCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0
eWxlPgordWwgeworICBkaXNwbGF5OmlubGluZTsKK30KK3VsLmNsb3NlZCAqIHsKKyAgZGlzcGxh
eTpub25lOworfQordWw6OmJlZm9yZSB7CisgIGNvbnRlbnQ6ICdiZWZvcmUnOworfQordWw6OmFm
dGVyIHsKKyAgY29udGVudDogJ2FmdGVyJzsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorZnVuY3Rp
b24gdG9nZ2xlKHVsKSB7CisgICAgaWYgKHVsLmNsYXNzTmFtZSAhPT0gJ2Nsb3NlZCcpIHsKKyAg
ICAgICAgdWwuY2xhc3NOYW1lID0gJ2Nsb3NlZCc7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdWwu
Y2xhc3NOYW1lID0gJyc7CisgICAgfQorICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKK30K
KworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICB2YXIgYnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRvZ2dsZSIpOworICAgIHZhciB1bCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwoJ3VsJylbMF07CisgICAgdG9nZ2xlKHVsKTsKKyAgICB0b2dnbGUodWwpOworICAgIHRvZ2ds
ZSh1bCk7CisgICAgdG9nZ2xlKHVsKTsKKyAgICB0b2dnbGUodWwpOworICAgIHRvZ2dsZSh1bCk7
CisgICAgdG9nZ2xlKHVsKTsKKyAgICB0b2dnbGUodWwpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8IS0tIFtidWcgOTMxNzBdIGh0dHA6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMzcwIC0tPgorPCEtLSBEeW5hbWljYWxseSBh
cHBseSAvIG5vdCBhcHBseSA6YWZ0ZXIgdG8gaW5saW5lIGVsZW1lbnRzLiAtLT4KKzwhLS0gSWYg
dGVzdCBwYXNzZXMsIG9ubHkgMSAnYmVmb3JlJyBhbmQgMSAnYWZ0ZXInIGFyZSBzaG93bi4gLS0+
CisgIDx1bD48bGk+MTwvbGk+PGxpPjI8L2xpPjxsaT4zPC9saT48L3VsPgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2FjaWQzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9hY2lkMy1leHBlY3RlZC50eHQK
aW5kZXggNWMwM2VmYWRiMTUxODc0NjkwNDg2YWY0MjkxMDM3MDc2N2VlYjNjZS4uMzUyNGRiZmVh
YTA5ZDc1NmM3YzRjZWY2NzhmZjMxMzdjNWZjYjEzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9taXNjL2FjaWQzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21pc2MvYWNpZDMtZXhwZWN0ZWQudHh0CkBAIC0yMTYsMTAgKzIxNiw2IEBAIGxheWVy
IGF0ICgyMCwyMCkgc2l6ZSA2NDR4NDMzCiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTMxLDM5
KSB3aWR0aCAxNjg6ICJ0aGlzIHJlZmVyZW5jZSByZW5kZXJpbmciCiAgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMjk5LDM5KSBzaXplIDR4MTcKICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
Mjk5LDM5KSB3aWR0aCA0OiAiLiIKLWxheWVyIGF0ICg2MzgsMTgpIHNpemUgMjB4MjAKLSAgUmVu
ZGVyQmxvY2sgKHBvc2l0aW9uZWQpIGF0ICg2MzgsMTgpIHNpemUgMjB4MjAgW2NvbG9yPSNGRkZG
RkZdIFtiZ2NvbG9yPSNGRjAwRkZdCi0gICAgUmVuZGVyVGV4dCBhdCAoMCwwKSBzaXplIDIweDIw
Ci0gICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyMDogIlgiCiBsYXllciBhdCAoMTMwLDg0
KSBzaXplIDMwMHgxNTAKICAgUmVuZGVyRW1iZWRkZWRPYmplY3Qge09CSkVDVH0gYXQgKDEzMCw4
NCkgc2l6ZSAzMDB4MTUwCiAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzMDB4MTUwCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166809</attachid>
            <date>2012-10-02 23:04:39 -0700</date>
            <delta_ts>2012-10-03 00:11:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93170-20121003150351.patch</filename>
            <type>text/plain</type>
            <size>12490</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMjQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzY3YmEzOWM1NDZiMGYw
ZDJmNjA2OGZiMWYxYjQyMTc3ODBlZDNlNy4uMzg4NzIyMTdlYWQ1NGM1ZjEwYzkyM2U1ZDYxNDVm
YTcyY2QwOTg1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTEwLTAyICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbmxpbmUgY29udGlu
dWF0aW9ucyBjcmVhdGUgOmFmdGVyIGdlbmVyYXRlZCBjb250ZW50IG9uIHN0eWxlIHJlY2FsY3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzMTcwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQWJoaXNoZWsgQXJ5YS4KKworICAgICAgICBUaGUgYnVnIGlz
IGNhdXNlZCBieSBSZW5kZXJJbmxpbmU6OnN0eWxlRGlkQ2hhbmdlJ3Mgc2V0Q29udGludWF0aW9u
KDApLgorICAgICAgICBSZW5kZXJPYmplY3RDaGlsZExpc3QgdXNlcyBjb250aW51YXRpb24gdG8g
a25vdyB3aGV0aGVyIHRoZSBnaXZlbgorICAgICAgICByZW5kZXJlciBzaG91bGQgaGF2ZSBBRlRF
UiByZW5kZXIgb2JqZWN0IG9yIG5vdC4KKyAgICAgICAgSG93ZXZlciwgc2V0Q29udGludWF0aW9u
KDApIG1ha2VzIFJlbmRlck9iamVjdENoaWxkTGlzdCB0bworICAgICAgICBtaXN1bmRlcnN0YW5k
IHRoYXQgYWxsIGNvbnRpbnVhdGlvbnMgYXJlIGxhc3QgY29udGludWF0aW9uLgorICAgICAgICBU
byBhdm9pZCB0aGUgbWlzdW5kZXJzdGFuZGluZywgYWRkZWQgYSBuZXcgZmxhZyB0byBjbGFzcwor
ICAgICAgICBSZW5kZXJPYmVqY3RDaGlsZExpc3QgdG8gZW5hYmxlL2Rpc2FibGUgdXBkYXRpbmcg
OmFmdGVyIGNvbnRlbnQgKGFuZAorICAgICAgICBhbHNvIDpiZWZvcmUgY29udGVudCkuCisKKyAg
ICAgICAgVGVzdHM6IGZhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2FmdGVyLXdpdGgtaW5saW5l
LWNvbnRpbnVhdGlvbi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy1nZW5lcmF0ZWQtY29u
dGVudC9keW5hbWljLWFwcGx5LWFmdGVyLWZvci1pbmxpbmUuaHRtbAorCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlcklubGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6
OnN0eWxlRGlkQ2hhbmdlKToKKyAgICAgICAgRGlzYWJsZSB1cGF0aW5nIDphZnRlciBjb250ZW50
IGZvciBjb250aW51YXRpb25zIHdoaWNoIGFyZSBub3QKKyAgICAgICAgdGhlIGxhc3Qgb25lIGR1
cmluZyBzZXRTdHlsZSBqdXN0IGFmdGVyIHNldENvbnRpbnVhdGlvbigwKS4KKyAgICAgICAgVGhl
IHNldFN0eWxlIGludm9rZXMgUmVuZGVySW5saW5lOjpzdHlsZURpZENoYW5nZSBhbmQgYWxzbyBp
bnZva2VzCisgICAgICAgIHVwZGF0ZUJlZm9yZUFmdGVyQ29udGVudCB2aWEgdGhlIHN0eWxlRGlk
Q2hhbmdlLiBUaGlzIG1lYW5zLAorICAgICAgICB0aGUgbGFzdCBjb250aW51YXRpb24ncyB1cGRh
dGVCZWZvcmVBZnRlckNvbnRlbnQgaXMgYWxzbyBpbnZva2VkCisgICAgICAgIGFmdGVyIHNldENv
bnRpbnVhdGlvbigwKS4gV2UgaGF2ZSB0byB1cGRhdGUgOmFmdGVyIGZvciB0aGUgbGFzdAorICAg
ICAgICBjb250aW51YXRpb24uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxk
TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9i
amVjdENoaWxkTGlzdDo6dXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50KToKKyAgICAgICAgSWYgc191
cGRhdGVCZWZvcmVBZnRlckNvbnRlbnQgaXMgZmFsc2UsIHF1aWNrbHkgZXhpdAorICAgICAgICB1
cGRhdGVCZWZvcmVBZnRlckNvbnRlbnQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVj
dENoaWxkTGlzdC5oOgorICAgICAgICAoUmVuZGVyT2JqZWN0Q2hpbGRMaXN0KToKKyAgICAgICAg
QWRkZWQgYSBuZXcgZmxhZyBzX2VuYWJsZVVwZGF0ZUJlZm9yZUFmdGVyQ29udGVudCB0byBlbmFi
bGUvZGlzYWJsZQorICAgICAgICB1cGRhdGluZyA6YmVmb3JlIG9yIDphZnRlciBjb250ZW50Lgor
CiAyMDEyLTEwLTAyICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBbTWFjXVtDaHJvbWl1bS1NYWNdIEltcGxlbWVudCBMb2NhbGVNYWM6OmRhdGVGb3JtYXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKaW5kZXggZmU5NjE3NjE0M2Rm
NTg2Zjk4Yjk3MjBhMzUyZTczZjA3ZTBkZDExYS4uZGEzMzJlNmE5ZjkxNjhkZjRiZTcxMTc1MWRh
NTE2M2QyNGY1YTUyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cklubGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5j
cHAKQEAgLTQwLDYgKzQwLDggQEAKICNpbmNsdWRlICJUcmFuc2Zvcm1TdGF0ZS5oIgogI2luY2x1
ZGUgIlZpc2libGVQb3NpdGlvbi5oIgogCisjaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5o
PgorCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKSB8fCBFTkFCTEUoV0lER0VUX1JFR0lP
TikKICNpbmNsdWRlICJGcmFtZS5oIgogI2VuZGlmCkBAIC0xNjcsMTEgKzE2OSwxNyBAQCB2b2lk
IFJlbmRlcklubGluZTo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0
IFJlbmRlclN0eWxlKiBvbGRTdAogICAgIC8vIG5lZWQgdG8gcGFzcyBpdHMgc3R5bGUgb24gdG8g
YW55b25lIGVsc2UuCiAgICAgUmVuZGVyU3R5bGUqIG5ld1N0eWxlID0gc3R5bGUoKTsKICAgICBS
ZW5kZXJJbmxpbmUqIGNvbnRpbnVhdGlvbiA9IGlubGluZUVsZW1lbnRDb250aW51YXRpb24oKTsK
LSAgICBmb3IgKFJlbmRlcklubGluZSogY3VyckNvbnQgPSBjb250aW51YXRpb247IGN1cnJDb250
OyBjdXJyQ29udCA9IGN1cnJDb250LT5pbmxpbmVFbGVtZW50Q29udGludWF0aW9uKCkpIHsKLSAg
ICAgICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIG5leHRDb250ID0gY3VyckNvbnQtPmNvbnRpbnVh
dGlvbigpOwotICAgICAgICBjdXJyQ29udC0+c2V0Q29udGludWF0aW9uKDApOwotICAgICAgICBj
dXJyQ29udC0+c2V0U3R5bGUobmV3U3R5bGUpOwotICAgICAgICBjdXJyQ29udC0+c2V0Q29udGlu
dWF0aW9uKG5leHRDb250KTsKKyAgICB7CisgICAgICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBl
bmFibGVBZnRlcihSZW5kZXJPYmplY3RDaGlsZExpc3Q6OnNfZW5hYmxlVXBkYXRlQmVmb3JlQWZ0
ZXJDb250ZW50LCBmYWxzZSk7CisgICAgICAgIFJlbmRlcklubGluZSogbmV4dFRhcmdldCA9IDA7
CisgICAgICAgIGZvciAoUmVuZGVySW5saW5lKiBjdXJyQ29udCA9IGNvbnRpbnVhdGlvbjsgY3Vy
ckNvbnQ7IGN1cnJDb250ID0gbmV4dFRhcmdldCkgeworICAgICAgICAgICAgbmV4dFRhcmdldCA9
IGN1cnJDb250LT5pbmxpbmVFbGVtZW50Q29udGludWF0aW9uKCk7CisgICAgICAgICAgICBSZW5k
ZXJPYmplY3RDaGlsZExpc3Q6OnNfZW5hYmxlVXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50ID0gIW5l
eHRUYXJnZXQ7CisgICAgICAgICAgICBSZW5kZXJCb3hNb2RlbE9iamVjdCogbmV4dENvbnQgPSBj
dXJyQ29udC0+Y29udGludWF0aW9uKCk7CisgICAgICAgICAgICBjdXJyQ29udC0+c2V0Q29udGlu
dWF0aW9uKDApOworICAgICAgICAgICAgY3VyckNvbnQtPnNldFN0eWxlKG5ld1N0eWxlKTsKKyAg
ICAgICAgICAgIGN1cnJDb250LT5zZXRDb250aW51YXRpb24obmV4dENvbnQpOworICAgICAgICB9
CiAgICAgfQogCiAgICAgLy8gSWYgYW4gaW5saW5lJ3MgaW4tZmxvdyBwb3NpdGlvbmluZyBoYXMg
Y2hhbmdlZCB0aGVuIGFueSBkZXNjZW5kYW50IGJsb2NrcyB3aWxsIG5lZWQgdG8gY2hhbmdlIHRo
ZWlyIGluLWZsb3cgcG9zaXRpb25pbmcgYWNjb3JkaW5nbHkuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwCmluZGV4IGMzYjRkNDgzMTZl
ZTc1YjZiMTQ4YTEzNGM2MTJhNDc0NDA4NDgwNDguLmZlYzEwYzFlZDVhMzA4OTFlZDAxOWVmZTUz
OGFhNmMxNDcwMDY2MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3RDaGlsZExpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3RDaGlsZExpc3QuY3BwCkBAIC00NSw2ICs0NSw4IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorYm9vbCBSZW5kZXJPYmplY3RDaGlsZExpc3Q6OnNfZW5hYmxlVXBkYXRlQmVmb3Jl
QWZ0ZXJDb250ZW50ID0gdHJ1ZTsKKwogdm9pZCBSZW5kZXJPYmplY3RDaGlsZExpc3Q6OmRlc3Ry
b3lMZWZ0b3ZlckNoaWxkcmVuKCkKIHsKICAgICB3aGlsZSAoZmlyc3RDaGlsZCgpKSB7CkBAIC0z
NzQsNiArMzc2LDggQEAgdm9pZCBSZW5kZXJPYmplY3RDaGlsZExpc3Q6OnVwZGF0ZUJlZm9yZUFm
dGVyQ29udGVudChSZW5kZXJPYmplY3QqIG93bmVyLCBQc2V1ZG8KICAgICAvLyBJbiBDU1MyLCBi
ZWZvcmUvYWZ0ZXIgcHNldWRvLWNvbnRlbnQgY2Fubm90IG5lc3QuICBDaGVjayB0aGlzIGZpcnN0
LgogICAgIGlmIChvd25lci0+c3R5bGUoKS0+c3R5bGVUeXBlKCkgPT0gQkVGT1JFIHx8IG93bmVy
LT5zdHlsZSgpLT5zdHlsZVR5cGUoKSA9PSBBRlRFUikKICAgICAgICAgcmV0dXJuOworICAgIGlm
ICghc19lbmFibGVVcGRhdGVCZWZvcmVBZnRlckNvbnRlbnQpCisgICAgICAgIHJldHVybjsKICAg
ICAKICAgICBpZiAoIXN0eWxlZE9iamVjdCkKICAgICAgICAgc3R5bGVkT2JqZWN0ID0gb3duZXI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRM
aXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmgK
aW5kZXggNjNiNzMzZGUwM2FjMzExNGM1NzFkNWU4NGE2NjY1ZTZlMWQxYjViNC4uM2Y2MDZkYjhk
MzY4YzIwNmYyYTM5MTMwMjNjODNkMTZkY2U4Y2YyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuaApAQCAtNjAsNiArNjAsOSBAQCBwdWJs
aWM6CiAgICAgUmVuZGVyT2JqZWN0KiBiZWZvcmVQc2V1ZG9FbGVtZW50UmVuZGVyZXIoY29uc3Qg
UmVuZGVyT2JqZWN0KiBvd25lcikgY29uc3Q7CiAgICAgUmVuZGVyT2JqZWN0KiBhZnRlclBzZXVk
b0VsZW1lbnRSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QqIG93bmVyKSBjb25zdDsKIAorcHVi
bGljOgorICAgIHN0YXRpYyBib29sIHNfZW5hYmxlVXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50Owor
CiBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlQmVmb3JlQWZ0ZXJTdHlsZShSZW5kZXJPYmplY3Qq
IGNoaWxkLCBQc2V1ZG9JZCB0eXBlLCBSZW5kZXJTdHlsZSogcHNldWRvRWxlbWVudFN0eWxlKTsK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IGJjNGQ2ZjBlYzc2NWM5ZGRlZWYxMDI5ZWFjMDNhZGE1YWMyZTgxZTIuLjlhYTA5
YTY3MzM4NGU1NzIzYzQ0NzM3YmEwZmMxMzJiZWJiYjJlMTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEgKzEsMTcgQEAK
KzIwMTItMTAtMDIgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgorCisgICAg
ICAgIElubGluZSBjb250aW51YXRpb25zIGNyZWF0ZSA6YWZ0ZXIgZ2VuZXJhdGVkIGNvbnRlbnQg
b24gc3R5bGUgcmVjYWxjcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTMxNzAKKworICAgICAgICBSZXZpZXdlZCBieSBBYmhpc2hlayBBcnlhLgorCisg
ICAgICAgICogZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvYWZ0ZXItd2l0aC1pbmxpbmUtY29u
dGludWF0aW9uLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzLWdlbmVy
YXRlZC1jb250ZW50L2FmdGVyLXdpdGgtaW5saW5lLWNvbnRpbnVhdGlvbi5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9keW5hbWljLWFwcGx5LWFmdGVy
LWZvci1pbmxpbmUtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MtZ2Vu
ZXJhdGVkLWNvbnRlbnQvZHluYW1pYy1hcHBseS1hZnRlci1mb3ItaW5saW5lLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9hY2lkMy1leHBlY3RlZC50eHQ6CisgICAgICAg
IFRoZSBhY2lkMy1leHBlY3RlZC50eHQgaGFzIHRoZSBkdXBsaWNhdGUgUmVuZGVyQmxvY2sgKHBv
c2l0aW9uZWQpLgorICAgICAgICBUd28gJ2xheWVyIGF0KDYzOCwgMTgpIHNpemUgMjB4MjAsIC4u
LiB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyMDogIlgiJworICAgICAgICBleGlzdC4gU28gZGlk
IHJlc2V0LXJlc3VsdHMgZm9yIGFjaWQzLWV4cGVjdGVkLnR4dC4KKwogPT0gUm9sbGVkIG92ZXIg
dG8gQ2hhbmdlTG9nLTIwMTItMTAtMDIgPT0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzLWdlbmVyYXRlZC1jb250ZW50L2FmdGVyLXdpdGgtaW5saW5lLWNvbnRpbnVhdGlvbi1leHBl
Y3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvYWZ0ZXIt
d2l0aC1pbmxpbmUtY29udGludWF0aW9uLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGNlOTA1
YmQ2NDE0MDQyOGRjMTUzNzcxZjY5NTk4ZTk1YzE2OTBlNQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2FmdGVyLXdpdGgtaW5saW5lLWNv
bnRpbnVhdGlvbi1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhZG9jdHlwZSBodG1s
PgorPGhlYWQ+Cis8c3R5bGU+CisgICAgc3BhbiB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZTsK
KyAgICB9CisgICAgLmJsb2NrIHsKKyAgICAgICAgZm9udC1mYW1pbHk6IEFyaWFsOworICAgICAg
ICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIHBhZGRpbmc6IDVweDsKKyAgICAgICAg
bWFyZ2luOiA1cHg7CisgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJlZDsKKyAgICB9Cis8L3N0
eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGNsYXNzPSJibG9jayI+QTwvZGl2PgorPHNwYW4+
CisgIDxkaXYgY2xhc3M9ImJsb2NrIj5BPC9kaXY+CisgICAgPHNwYW4+CisgICAgICA8ZGl2IGNs
YXNzPSJibG9jayI+QTwvZGl2PgorICAgICAgICA8c3Bhbj4KKyAgICAgICAgICAgIDxkaXY+PC9k
aXY+CisgICAgICAgICAgICA8ZGl2PjwvZGl2PgorICAgICAgICAgICAgPGRpdj48L2Rpdj4KKyAg
ICAgICAgICAgIDxkaXY+PC9kaXY+CisgICAgICAgICAgICA8ZGl2PjwvZGl2PgorICAgICAgICAg
ICAgPGRpdj48L2Rpdj4KKyAgICAgICAgICAgIDxkaXY+PC9kaXY+CisgICAgICAgIDwvc3Bhbj4K
Kwk8ZGl2IGNsYXNzPSJibG9jayI+QjwvZGl2PgorICAgIDwvc3Bhbj4KKyAgICA8ZGl2IGNsYXNz
PSJibG9jayI+QjwvZGl2PgorPC9zcGFuPgorPGRpdiBjbGFzcz0iYmxvY2siPkI8L2Rpdj4KKzwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50
L2FmdGVyLXdpdGgtaW5saW5lLWNvbnRpbnVhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MtZ2VuZXJhdGVkLWNvbnRlbnQvYWZ0ZXItd2l0aC1pbmxpbmUtY29udGludWF0aW9uLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZmFhZDcyZDI5NDM3NWYwOTdhYzUyOTI1YTE1NTRjYmI3YzIxNGRiMQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2Fm
dGVyLXdpdGgtaW5saW5lLWNvbnRpbnVhdGlvbi5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzwhZG9j
dHlwZSBodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisgICAgc3BhbiB7CisgICAgICAgIC8qIE11c3Qg
YmUgaW5saW5lIHRvIGNhdXNlIGEgY29udGludWF0aW9uIGNoYWluICovCisgICAgICAgIGRpc3Bs
YXk6IGlubGluZTsKKyAgICB9CisKKyAgICBzcGFuOmJlZm9yZSwKKyAgICBzcGFuOmFmdGVyIHsK
KyAgICAgICAgLyogTm90IHJlcXVpcmVlZCBmb3IgdGhlIHRlc3QsIGp1c3QgbWFrZXMgaXQgZWFz
aWVyIHRvIHNlZSB3aGF0J3MgZ29pbmcgb24gKi8KKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJs
b2NrOworICAgICAgICBwYWRkaW5nOiA1cHg7CisgICAgICAgIG1hcmdpbjogNXB4OworICAgICAg
ICBib3JkZXI6IDFweCBzb2xpZCByZWQ7CisgICAgfQorCisgICAgc3BhbjpiZWZvcmUgeworICAg
ICAgICBjb250ZW50OiAiQSI7CisgICAgfQorCisgICAgc3BhbjphZnRlciB7CisgICAgICAgIC8q
IFRoaXMgY29udGVudCB3aWxsIGdldCBpbmNvcnJlY3RseSByZXBlYXRlZCBpbiB0aGUgY29udGlu
dWF0aW9uICovCisgICAgICAgIGNvbnRlbnQ6ICJCIjsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFk
PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgc2V0VGltZW91dChm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgIC8vIENhdXNlIGEgc3R5bGUgcmVjYWxjLgorICAgICAg
ICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignc3BhbicpLnN0eWxlLmZvbnRGYW1pbHkgPSAn
QXJpYWwnOworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9LCAxMCk7CisgICAgfTsKKzwv
c2NyaXB0PgorCis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisKKzwhLS0gW2J1ZyA5MzE3MF0g
aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTEzNzAgLS0+Cis8IS0tIElm
IHRlc3QgcGFzc2VzLCB5b3Ugc2hvdWxkIHNlZSBBIEEgQSBCIEIgQi4gLS0+CisKKzxzcGFuPgor
ICAgIDxzcGFuPgorICAgICAgICA8c3Bhbj4KKyAgICAgICAgICAgIDxkaXY+PC9kaXY+CisgICAg
ICAgICAgICA8ZGl2PjwvZGl2PgorICAgICAgICAgICAgPGRpdj48L2Rpdj4KKyAgICAgICAgICAg
IDxkaXY+PC9kaXY+CisgICAgICAgICAgICA8ZGl2PjwvZGl2PgorICAgICAgICAgICAgPGRpdj48
L2Rpdj4KKyAgICAgICAgICAgIDxkaXY+PC9kaXY+CisgICAgICAgIDwvc3Bhbj4KKyAgICA8L3Nw
YW4+Cis8L3NwYW4+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1n
ZW5lcmF0ZWQtY29udGVudC9keW5hbWljLWFwcGx5LWFmdGVyLWZvci1pbmxpbmUtZXhwZWN0ZWQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2R5bmFtaWMtYXBw
bHktYWZ0ZXItZm9yLWlubGluZS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhYWYwYWVmYThl
MGM4OTJjM2FkYmIxYmYzMDcyMjZkOTkyNzNiMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9keW5hbWljLWFwcGx5LWFmdGVyLWZvci1p
bmxpbmUtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE5IEBACis8IWRvY3R5cGUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c3R5bGU+Cit1bCB7CisgICAgZGlzcGxheTppbmxpbmU7Cit9Cit1bDo6
YmVmb3JlIHsKKyAgICBjb250ZW50OiAnYmVmb3JlJzsKK30KK3VsOjphZnRlciB7CisgICAgY29u
dGVudDogJ2FmdGVyJzsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzx1bD48bGk+MTwv
bGk+PGxpPjI8L2xpPjxsaT4zPC9saT48L3VsPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvZHluYW1pYy1hcHBseS1h
ZnRlci1mb3ItaW5saW5lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29u
dGVudC9keW5hbWljLWFwcGx5LWFmdGVyLWZvci1pbmxpbmUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OGI1
ZmVmMTI5NGY3ZWYxYjAxMGE3MGRjMGE1Y2M3ZGMzOWMzZmY1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvZHluYW1pYy1hcHBseS1hZnRl
ci1mb3ItaW5saW5lLmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHN0eWxlPgordWwgeworICBkaXNwbGF5OmlubGluZTsKK30KK3VsLmNsb3Nl
ZCAqIHsKKyAgZGlzcGxheTpub25lOworfQordWw6OmJlZm9yZSB7CisgIGNvbnRlbnQ6ICdiZWZv
cmUnOworfQordWw6OmFmdGVyIHsKKyAgY29udGVudDogJ2FmdGVyJzsKK30KKzwvc3R5bGU+Cis8
c2NyaXB0PgorZnVuY3Rpb24gdG9nZ2xlKHVsKSB7CisgICAgaWYgKHVsLmNsYXNzTmFtZSAhPT0g
J2Nsb3NlZCcpIHsKKyAgICAgICAgdWwuY2xhc3NOYW1lID0gJ2Nsb3NlZCc7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgdWwuY2xhc3NOYW1lID0gJyc7CisgICAgfQorICAgIGRvY3VtZW50LmJvZHku
b2Zmc2V0TGVmdDsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICB2YXIgYnV0dG9uID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZ2dsZSIpOworICAgIHZhciB1bCA9IGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoJ3VsJylbMF07CisgICAgdG9nZ2xlKHVsKTsKKyAgICB0b2dnbGUo
dWwpOworICAgIHRvZ2dsZSh1bCk7CisgICAgdG9nZ2xlKHVsKTsKKyAgICB0b2dnbGUodWwpOwor
ICAgIHRvZ2dsZSh1bCk7CisgICAgdG9nZ2xlKHVsKTsKKyAgICB0b2dnbGUodWwpOworfQorPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8IS0tIFtidWcgOTMx
NzBdIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMzcwIC0tPgorPCEt
LSBEeW5hbWljYWxseSBhcHBseSAvIG5vdCBhcHBseSA6YWZ0ZXIgdG8gaW5saW5lIGVsZW1lbnRz
LiAtLT4KKzwhLS0gSWYgdGVzdCBwYXNzZXMsIG9ubHkgMSAnYmVmb3JlJyBhbmQgMSAnYWZ0ZXIn
IGFyZSBzaG93bi4gLS0+CisgIDx1bD48bGk+MTwvbGk+PGxpPjI8L2xpPjxsaT4zPC9saT48L3Vs
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
aXNjL2FjaWQzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9hY2lk
My1leHBlY3RlZC50eHQKaW5kZXggNWMwM2VmYWRiMTUxODc0NjkwNDg2YWY0MjkxMDM3MDc2N2Vl
YjNjZS4uMzUyNGRiZmVhYTA5ZDc1NmM3YzRjZWY2NzhmZjMxMzdjNWZjYjEzZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2FjaWQzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvYWNpZDMtZXhwZWN0ZWQudHh0CkBAIC0yMTYsMTAg
KzIxNiw2IEBAIGxheWVyIGF0ICgyMCwyMCkgc2l6ZSA2NDR4NDMzCiAgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMTMxLDM5KSB3aWR0aCAxNjg6ICJ0aGlzIHJlZmVyZW5jZSByZW5kZXJpbmciCiAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjk5LDM5KSBzaXplIDR4MTcKICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMjk5LDM5KSB3aWR0aCA0OiAiLiIKLWxheWVyIGF0ICg2MzgsMTgpIHNp
emUgMjB4MjAKLSAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIGF0ICg2MzgsMTgpIHNpemUgMjB4
MjAgW2NvbG9yPSNGRkZGRkZdIFtiZ2NvbG9yPSNGRjAwRkZdCi0gICAgUmVuZGVyVGV4dCBhdCAo
MCwwKSBzaXplIDIweDIwCi0gICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyMDogIlgiCiBs
YXllciBhdCAoMTMwLDg0KSBzaXplIDMwMHgxNTAKICAgUmVuZGVyRW1iZWRkZWRPYmplY3Qge09C
SkVDVH0gYXQgKDEzMCw4NCkgc2l6ZSAzMDB4MTUwCiAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAz
MDB4MTUwCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166815</attachid>
            <date>2012-10-02 23:49:13 -0700</date>
            <delta_ts>2012-10-05 14:54:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93170-20121003154825.patch</filename>
            <type>text/plain</type>
            <size>12625</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMjQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzY3YmEzOWM1NDZiMGYw
ZDJmNjA2OGZiMWYxYjQyMTc3ODBlZDNlNy4uZmM1NzIyZGY4NDQ3MGJkZmM4MjVjMTYwY2RmN2Iy
NmQ5NmM3NGI5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTEwLTAyICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbmxpbmUgY29udGlu
dWF0aW9ucyBjcmVhdGUgOmFmdGVyIGdlbmVyYXRlZCBjb250ZW50IG9uIHN0eWxlIHJlY2FsY3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzMTcwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGJ1ZyBp
cyBjYXVzZWQgYnkgUmVuZGVySW5saW5lOjpzdHlsZURpZENoYW5nZSdzIHNldENvbnRpbnVhdGlv
bigwKS4KKyAgICAgICAgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0IHVzZXMgY29udGludWF0aW9uIHRv
IGtub3cgd2hldGhlciB0aGUgZ2l2ZW4KKyAgICAgICAgcmVuZGVyZXIgc2hvdWxkIGhhdmUgQUZU
RVIgcmVuZGVyIG9iamVjdCBvciBub3QuCisgICAgICAgIEhvd2V2ZXIsIHNldENvbnRpbnVhdGlv
bigwKSBtYWtlcyBSZW5kZXJPYmplY3RDaGlsZExpc3QgdG8KKyAgICAgICAgbWlzdW5kZXJzdGFu
ZCB0aGF0IGFsbCBjb250aW51YXRpb25zIGFyZSBsYXN0IGNvbnRpbnVhdGlvbi4KKyAgICAgICAg
VG8gYXZvaWQgdGhlIG1pc3VuZGVyc3RhbmRpbmcsIGFkZGVkIGEgbmV3IGZsYWcgdG8gY2xhc3MK
KyAgICAgICAgUmVuZGVyT2JlamN0Q2hpbGRMaXN0IHRvIGVuYWJsZS9kaXNhYmxlIHVwZGF0aW5n
IDphZnRlciBjb250ZW50IChhbmQKKyAgICAgICAgYWxzbyA6YmVmb3JlIGNvbnRlbnQpLgorCisg
ICAgICAgIFRlc3RzOiBmYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9hZnRlci13aXRoLWlubGlu
ZS1jb250aW51YXRpb24uaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MtZ2VuZXJhdGVkLWNv
bnRlbnQvZHluYW1pYy1hcHBseS1hZnRlci1mb3ItaW5saW5lLmh0bWwKKworICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5l
OjpzdHlsZURpZENoYW5nZSk6CisgICAgICAgIERpc2FibGUgdXBhdGluZyA6YWZ0ZXIgY29udGVu
dCBmb3IgY29udGludWF0aW9ucyB3aGljaCBhcmUgbm90CisgICAgICAgIHRoZSBsYXN0IG9uZSBk
dXJpbmcgc2V0U3R5bGUganVzdCBhZnRlciBzZXRDb250aW51YXRpb24oMCkuCisgICAgICAgIFRo
ZSBzZXRTdHlsZSBpbnZva2VzIFJlbmRlcklubGluZTo6c3R5bGVEaWRDaGFuZ2UgYW5kIGFsc28g
aW52b2tlcworICAgICAgICB1cGRhdGVCZWZvcmVBZnRlckNvbnRlbnQgdmlhIHRoZSBzdHlsZURp
ZENoYW5nZS4gVGhpcyBtZWFucywKKyAgICAgICAgdGhlIGxhc3QgY29udGludWF0aW9uJ3MgdXBk
YXRlQmVmb3JlQWZ0ZXJDb250ZW50IGlzIGFsc28gaW52b2tlZAorICAgICAgICBhZnRlciBzZXRD
b250aW51YXRpb24oMCkuIFdlIGhhdmUgdG8gdXBkYXRlIDphZnRlciBmb3IgdGhlIGxhc3QKKyAg
ICAgICAgY29udGludWF0aW9uLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3RDaGls
ZExpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJP
YmplY3RDaGlsZExpc3Q6OnVwZGF0ZUJlZm9yZUFmdGVyQ29udGVudCk6CisgICAgICAgIElmIHNf
dXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50IGlzIGZhbHNlLCBxdWlja2x5IGV4aXQKKyAgICAgICAg
dXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmpl
Y3RDaGlsZExpc3QuaDoKKyAgICAgICAgKFJlbmRlck9iamVjdENoaWxkTGlzdCk6CisgICAgICAg
IEFkZGVkIGEgbmV3IGZsYWcgc19lbmFibGVVcGRhdGVCZWZvcmVBZnRlckNvbnRlbnQgdG8gZW5h
YmxlL2Rpc2FibGUKKyAgICAgICAgdXBkYXRpbmcgOmJlZm9yZSBvciA6YWZ0ZXIgY29udGVudC4K
KwogMjAxMi0xMC0wMiAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW01hY11bQ2hyb21pdW0tTWFjXSBJbXBsZW1lbnQgTG9jYWxlTWFjOjpkYXRlRm9ybWF0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCmluZGV4IGZlOTYxNzYxNDNk
ZjU4NmY5OGI5NzIwYTM1MmU3M2YwN2UwZGQxMWEuLmEzODQwOWFhYTgxZjk1MGM4NTkwNjM3OThi
ZDgxN2ZiNmZiNWY2MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJJbmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUu
Y3BwCkBAIC00MCw2ICs0MCw4IEBACiAjaW5jbHVkZSAiVHJhbnNmb3JtU3RhdGUuaCIKICNpbmNs
dWRlICJWaXNpYmxlUG9zaXRpb24uaCIKIAorI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2Uu
aD4KKwogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkgfHwgRU5BQkxFKFdJREdFVF9SRUdJ
T04pCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNlbmRpZgpAQCAtMTY3LDExICsxNjksMTggQEAgdm9p
ZCBSZW5kZXJJbmxpbmU6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25z
dCBSZW5kZXJTdHlsZSogb2xkU3QKICAgICAvLyBuZWVkIHRvIHBhc3MgaXRzIHN0eWxlIG9uIHRv
IGFueW9uZSBlbHNlLgogICAgIFJlbmRlclN0eWxlKiBuZXdTdHlsZSA9IHN0eWxlKCk7CiAgICAg
UmVuZGVySW5saW5lKiBjb250aW51YXRpb24gPSBpbmxpbmVFbGVtZW50Q29udGludWF0aW9uKCk7
Ci0gICAgZm9yIChSZW5kZXJJbmxpbmUqIGN1cnJDb250ID0gY29udGludWF0aW9uOyBjdXJyQ29u
dDsgY3VyckNvbnQgPSBjdXJyQ29udC0+aW5saW5lRWxlbWVudENvbnRpbnVhdGlvbigpKSB7Ci0g
ICAgICAgIFJlbmRlckJveE1vZGVsT2JqZWN0KiBuZXh0Q29udCA9IGN1cnJDb250LT5jb250aW51
YXRpb24oKTsKLSAgICAgICAgY3VyckNvbnQtPnNldENvbnRpbnVhdGlvbigwKTsKLSAgICAgICAg
Y3VyckNvbnQtPnNldFN0eWxlKG5ld1N0eWxlKTsKLSAgICAgICAgY3VyckNvbnQtPnNldENvbnRp
bnVhdGlvbihuZXh0Q29udCk7CisgICAgeworICAgICAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4g
ZW5hYmxlQWZ0ZXIoUmVuZGVyT2JqZWN0Q2hpbGRMaXN0OjpzX2VuYWJsZVVwZGF0ZUJlZm9yZUFm
dGVyQ29udGVudCwgZmFsc2UpOworICAgICAgICBSZW5kZXJJbmxpbmUqIG5leHRJbmxpbmVFbGVt
ZW50Q29udCA9IDA7CisgICAgICAgIGZvciAoUmVuZGVySW5saW5lKiBjdXJyQ29udCA9IGNvbnRp
bnVhdGlvbjsgY3VyckNvbnQ7IGN1cnJDb250ID0gbmV4dElubGluZUVsZW1lbnRDb250KSB7Cisg
ICAgICAgICAgICBuZXh0SW5saW5lRWxlbWVudENvbnQgPSBjdXJyQ29udC0+aW5saW5lRWxlbWVu
dENvbnRpbnVhdGlvbigpOworICAgICAgICAgICAgLy8gV2UgbmVlZCB0byB1cGRhdGUgOmFmdGVy
IGNvbnRlbnQgZm9yIHRoZSBsYXN0IGNvbnRpbnVhdGlvbiBpbiB0aGUgY2hhaW4uCisgICAgICAg
ICAgICBSZW5kZXJPYmplY3RDaGlsZExpc3Q6OnNfZW5hYmxlVXBkYXRlQmVmb3JlQWZ0ZXJDb250
ZW50ID0gIW5leHRJbmxpbmVFbGVtZW50Q29udDsKKyAgICAgICAgICAgIFJlbmRlckJveE1vZGVs
T2JqZWN0KiBuZXh0Q29udCA9IGN1cnJDb250LT5jb250aW51YXRpb24oKTsKKyAgICAgICAgICAg
IGN1cnJDb250LT5zZXRDb250aW51YXRpb24oMCk7CisgICAgICAgICAgICBjdXJyQ29udC0+c2V0
U3R5bGUobmV3U3R5bGUpOworICAgICAgICAgICAgY3VyckNvbnQtPnNldENvbnRpbnVhdGlvbihu
ZXh0Q29udCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICAvLyBJZiBhbiBpbmxpbmUncyBpbi1m
bG93IHBvc2l0aW9uaW5nIGhhcyBjaGFuZ2VkIHRoZW4gYW55IGRlc2NlbmRhbnQgYmxvY2tzIHdp
bGwgbmVlZCB0byBjaGFuZ2UgdGhlaXIgaW4tZmxvdyBwb3NpdGlvbmluZyBhY2NvcmRpbmdseS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExp
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5j
cHAKaW5kZXggYzNiNGQ0ODMxNmVlNzViNmIxNDhhMTM0YzYxMmE0NzQ0MDg0ODA0OC4uZmVjMTBj
MWVkNWEzMDg5MWVkMDE5ZWZlNTM4YWE2YzE0NzAwNjYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAKQEAgLTQ1LDYgKzQ1LDgg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitib29sIFJlbmRlck9iamVjdENoaWxkTGlzdDo6
c19lbmFibGVVcGRhdGVCZWZvcmVBZnRlckNvbnRlbnQgPSB0cnVlOworCiB2b2lkIFJlbmRlck9i
amVjdENoaWxkTGlzdDo6ZGVzdHJveUxlZnRvdmVyQ2hpbGRyZW4oKQogewogICAgIHdoaWxlIChm
aXJzdENoaWxkKCkpIHsKQEAgLTM3NCw2ICszNzYsOCBAQCB2b2lkIFJlbmRlck9iamVjdENoaWxk
TGlzdDo6dXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50KFJlbmRlck9iamVjdCogb3duZXIsIFBzZXVk
bwogICAgIC8vIEluIENTUzIsIGJlZm9yZS9hZnRlciBwc2V1ZG8tY29udGVudCBjYW5ub3QgbmVz
dC4gIENoZWNrIHRoaXMgZmlyc3QuCiAgICAgaWYgKG93bmVyLT5zdHlsZSgpLT5zdHlsZVR5cGUo
KSA9PSBCRUZPUkUgfHwgb3duZXItPnN0eWxlKCktPnN0eWxlVHlwZSgpID09IEFGVEVSKQogICAg
ICAgICByZXR1cm47CisgICAgaWYgKCFzX2VuYWJsZVVwZGF0ZUJlZm9yZUFmdGVyQ29udGVudCkK
KyAgICAgICAgcmV0dXJuOwogICAgIAogICAgIGlmICghc3R5bGVkT2JqZWN0KQogICAgICAgICBz
dHlsZWRPYmplY3QgPSBvd25lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3RDaGlsZExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3RDaGlsZExpc3QuaAppbmRleCA2M2I3MzNkZTAzYWMzMTE0YzU3MWQ1ZTg0YTY2NjVl
NmUxZDFiNWI0Li4zZjYwNmRiOGQzNjhjMjA2ZjJhMzkxMzAyM2M4M2QxNmRjZThjZjJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5oCkBA
IC02MCw2ICs2MCw5IEBAIHB1YmxpYzoKICAgICBSZW5kZXJPYmplY3QqIGJlZm9yZVBzZXVkb0Vs
ZW1lbnRSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QqIG93bmVyKSBjb25zdDsKICAgICBSZW5k
ZXJPYmplY3QqIGFmdGVyUHNldWRvRWxlbWVudFJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCog
b3duZXIpIGNvbnN0OwogCitwdWJsaWM6CisgICAgc3RhdGljIGJvb2wgc19lbmFibGVVcGRhdGVC
ZWZvcmVBZnRlckNvbnRlbnQ7CisKIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVCZWZvcmVBZnRl
clN0eWxlKFJlbmRlck9iamVjdCogY2hpbGQsIFBzZXVkb0lkIHR5cGUsIFJlbmRlclN0eWxlKiBw
c2V1ZG9FbGVtZW50U3R5bGUpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYmM0ZDZmMGVjNzY1YzlkZGVlZjEwMjllYWMw
M2FkYTVhYzJlODFlMi4uZjc2YWFhMDI3Yzg3ZmUyNWY2MTM5ZjIzMzkyNTRiMzdmNGRiMjMzOCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSArMSwxNyBAQAorMjAxMi0xMC0wMiAgVGFrYXNoaSBTYWthbW90byAgPHRhc2Fr
QGdvb2dsZS5jb20+CisKKyAgICAgICAgSW5saW5lIGNvbnRpbnVhdGlvbnMgY3JlYXRlIDphZnRl
ciBnZW5lcmF0ZWQgY29udGVudCBvbiBzdHlsZSByZWNhbGNzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzE3MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQv
YWZ0ZXItd2l0aC1pbmxpbmUtY29udGludWF0aW9uLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2FmdGVyLXdpdGgtaW5saW5lLWNvbnRp
bnVhdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVu
dC9keW5hbWljLWFwcGx5LWFmdGVyLWZvci1pbmxpbmUtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvZHluYW1pYy1hcHBseS1hZnRlci1m
b3ItaW5saW5lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9hY2lkMy1l
eHBlY3RlZC50eHQ6CisgICAgICAgIFRoZSBhY2lkMy1leHBlY3RlZC50eHQgaGFzIHRoZSBkdXBs
aWNhdGUgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpLgorICAgICAgICBUd28gJ2xheWVyIGF0KDYz
OCwgMTgpIHNpemUgMjB4MjAsIC4uLiB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyMDogIlgiJwor
ICAgICAgICBleGlzdC4gU28gZGlkIHJlc2V0LXJlc3VsdHMgZm9yIGFjaWQzLWV4cGVjdGVkLnR4
dC4KKwogPT0gUm9sbGVkIG92ZXIgdG8gQ2hhbmdlTG9nLTIwMTItMTAtMDIgPT0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2FmdGVyLXdpdGgtaW5s
aW5lLWNvbnRpbnVhdGlvbi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2Vu
ZXJhdGVkLWNvbnRlbnQvYWZ0ZXItd2l0aC1pbmxpbmUtY29udGludWF0aW9uLWV4cGVjdGVkLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNGNlOTA1YmQ2NDE0MDQyOGRjMTUzNzcxZjY5NTk4ZTk1YzE2OTBlNQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50
L2FmdGVyLXdpdGgtaW5saW5lLWNvbnRpbnVhdGlvbi1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEs
MzYgQEAKKzwhZG9jdHlwZSBodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisgICAgc3BhbiB7CisgICAg
ICAgIGRpc3BsYXk6IGlubGluZTsKKyAgICB9CisgICAgLmJsb2NrIHsKKyAgICAgICAgZm9udC1m
YW1pbHk6IEFyaWFsOworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIHBh
ZGRpbmc6IDVweDsKKyAgICAgICAgbWFyZ2luOiA1cHg7CisgICAgICAgIGJvcmRlcjogMXB4IHNv
bGlkIHJlZDsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGNsYXNzPSJi
bG9jayI+QTwvZGl2PgorPHNwYW4+CisgIDxkaXYgY2xhc3M9ImJsb2NrIj5BPC9kaXY+CisgICAg
PHNwYW4+CisgICAgICA8ZGl2IGNsYXNzPSJibG9jayI+QTwvZGl2PgorICAgICAgICA8c3Bhbj4K
KyAgICAgICAgICAgIDxkaXY+PC9kaXY+CisgICAgICAgICAgICA8ZGl2PjwvZGl2PgorICAgICAg
ICAgICAgPGRpdj48L2Rpdj4KKyAgICAgICAgICAgIDxkaXY+PC9kaXY+CisgICAgICAgICAgICA8
ZGl2PjwvZGl2PgorICAgICAgICAgICAgPGRpdj48L2Rpdj4KKyAgICAgICAgICAgIDxkaXY+PC9k
aXY+CisgICAgICAgIDwvc3Bhbj4KKwk8ZGl2IGNsYXNzPSJibG9jayI+QjwvZGl2PgorICAgIDwv
c3Bhbj4KKyAgICA8ZGl2IGNsYXNzPSJibG9jayI+QjwvZGl2PgorPC9zcGFuPgorPGRpdiBjbGFz
cz0iYmxvY2siPkI8L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzLWdlbmVyYXRlZC1jb250ZW50L2FmdGVyLXdpdGgtaW5saW5lLWNvbnRpbnVhdGlvbi5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvYWZ0ZXItd2l0aC1pbmxp
bmUtY29udGludWF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmFhZDcyZDI5NDM3NWYwOTdhYzUyOTI1
YTE1NTRjYmI3YzIxNGRiMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
LWdlbmVyYXRlZC1jb250ZW50L2FmdGVyLXdpdGgtaW5saW5lLWNvbnRpbnVhdGlvbi5odG1sCkBA
IC0wLDAgKzEsNjAgQEAKKzwhZG9jdHlwZSBodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisgICAgc3Bh
biB7CisgICAgICAgIC8qIE11c3QgYmUgaW5saW5lIHRvIGNhdXNlIGEgY29udGludWF0aW9uIGNo
YWluICovCisgICAgICAgIGRpc3BsYXk6IGlubGluZTsKKyAgICB9CisKKyAgICBzcGFuOmJlZm9y
ZSwKKyAgICBzcGFuOmFmdGVyIHsKKyAgICAgICAgLyogTm90IHJlcXVpcmVlZCBmb3IgdGhlIHRl
c3QsIGp1c3QgbWFrZXMgaXQgZWFzaWVyIHRvIHNlZSB3aGF0J3MgZ29pbmcgb24gKi8KKyAgICAg
ICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBwYWRkaW5nOiA1cHg7CisgICAgICAg
IG1hcmdpbjogNXB4OworICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZWQ7CisgICAgfQorCisg
ICAgc3BhbjpiZWZvcmUgeworICAgICAgICBjb250ZW50OiAiQSI7CisgICAgfQorCisgICAgc3Bh
bjphZnRlciB7CisgICAgICAgIC8qIFRoaXMgY29udGVudCB3aWxsIGdldCBpbmNvcnJlY3RseSBy
ZXBlYXRlZCBpbiB0aGUgY29udGludWF0aW9uICovCisgICAgICAgIGNvbnRlbnQ6ICJCIjsKKyAg
ICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworZnVuY3Rpb24gcnVuVGVzdCgpIHsK
KyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIC8vIENhdXNlIGEg
c3R5bGUgcmVjYWxjLgorICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignc3Bhbicp
LnN0eWxlLmZvbnRGYW1pbHkgPSAnQXJpYWwnOworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICB9LCAxMCk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
CisKKzwhLS0gW2J1ZyA5MzE3MF0gaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTEzNzAgLS0+Cis8IS0tIElmIHRlc3QgcGFzc2VzLCB5b3Ugc2hvdWxkIHNlZSBBIEEgQSBC
IEIgQi4gLS0+CisKKzxzcGFuPgorICAgIDxzcGFuPgorICAgICAgICA8c3Bhbj4KKyAgICAgICAg
ICAgIDxkaXY+PC9kaXY+CisgICAgICAgICAgICA8ZGl2PjwvZGl2PgorICAgICAgICAgICAgPGRp
dj48L2Rpdj4KKyAgICAgICAgICAgIDxkaXY+PC9kaXY+CisgICAgICAgICAgICA8ZGl2PjwvZGl2
PgorICAgICAgICAgICAgPGRpdj48L2Rpdj4KKyAgICAgICAgICAgIDxkaXY+PC9kaXY+CisgICAg
ICAgIDwvc3Bhbj4KKyAgICA8L3NwYW4+Cis8L3NwYW4+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9keW5hbWljLWFwcGx5LWFmdGVy
LWZvci1pbmxpbmUtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdlbmVyYXRl
ZC1jb250ZW50L2R5bmFtaWMtYXBwbHktYWZ0ZXItZm9yLWlubGluZS1leHBlY3RlZC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjdhYWYwYWVmYThlMGM4OTJjM2FkYmIxYmYzMDcyMjZkOTkyNzNiMmYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9keW5h
bWljLWFwcGx5LWFmdGVyLWZvci1pbmxpbmUtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE5IEBA
Cis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Cit1bCB7CisgICAgZGlz
cGxheTppbmxpbmU7Cit9Cit1bDo6YmVmb3JlIHsKKyAgICBjb250ZW50OiAnYmVmb3JlJzsKK30K
K3VsOjphZnRlciB7CisgICAgY29udGVudDogJ2FmdGVyJzsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+
Cis8Ym9keT4KKzx1bD48bGk+MTwvbGk+PGxpPjI8L2xpPjxsaT4zPC9saT48L3VsPgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNv
bnRlbnQvZHluYW1pYy1hcHBseS1hZnRlci1mb3ItaW5saW5lLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9keW5hbWljLWFwcGx5LWFmdGVyLWZvci1pbmxpbmUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43OGI1ZmVmMTI5NGY3ZWYxYjAxMGE3MGRjMGE1Y2M3ZGMzOWMzZmY1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRl
bnQvZHluYW1pYy1hcHBseS1hZnRlci1mb3ItaW5saW5lLmh0bWwKQEAgLTAsMCArMSw0OCBAQAor
PCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgordWwgeworICBkaXNwbGF5
OmlubGluZTsKK30KK3VsLmNsb3NlZCAqIHsKKyAgZGlzcGxheTpub25lOworfQordWw6OmJlZm9y
ZSB7CisgIGNvbnRlbnQ6ICdiZWZvcmUnOworfQordWw6OmFmdGVyIHsKKyAgY29udGVudDogJ2Fm
dGVyJzsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorZnVuY3Rpb24gdG9nZ2xlKHVsKSB7CisgICAg
aWYgKHVsLmNsYXNzTmFtZSAhPT0gJ2Nsb3NlZCcpIHsKKyAgICAgICAgdWwuY2xhc3NOYW1lID0g
J2Nsb3NlZCc7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdWwuY2xhc3NOYW1lID0gJyc7CisgICAg
fQorICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgp
IHsKKyAgICB2YXIgYnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZ2dsZSIpOwor
ICAgIHZhciB1bCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3VsJylbMF07CisgICAgdG9n
Z2xlKHVsKTsKKyAgICB0b2dnbGUodWwpOworICAgIHRvZ2dsZSh1bCk7CisgICAgdG9nZ2xlKHVs
KTsKKyAgICB0b2dnbGUodWwpOworICAgIHRvZ2dsZSh1bCk7CisgICAgdG9nZ2xlKHVsKTsKKyAg
ICB0b2dnbGUodWwpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Cis8IS0tIFtidWcgOTMxNzBdIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTkxMzcwIC0tPgorPCEtLSBEeW5hbWljYWxseSBhcHBseSAvIG5vdCBhcHBseSA6YWZ0
ZXIgdG8gaW5saW5lIGVsZW1lbnRzLiAtLT4KKzwhLS0gSWYgdGVzdCBwYXNzZXMsIG9ubHkgMSAn
YmVmb3JlJyBhbmQgMSAnYWZ0ZXInIGFyZSBzaG93bi4gLS0+CisgIDx1bD48bGk+MTwvbGk+PGxp
PjI8L2xpPjxsaT4zPC9saT48L3VsPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2FjaWQzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWlzYy9hY2lkMy1leHBlY3RlZC50eHQKaW5kZXggNWMwM2VmYWRiMTUxODc0
NjkwNDg2YWY0MjkxMDM3MDc2N2VlYjNjZS4uMzUyNGRiZmVhYTA5ZDc1NmM3YzRjZWY2NzhmZjMx
MzdjNWZjYjEzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2FjaWQz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvYWNpZDMtZXhw
ZWN0ZWQudHh0CkBAIC0yMTYsMTAgKzIxNiw2IEBAIGxheWVyIGF0ICgyMCwyMCkgc2l6ZSA2NDR4
NDMzCiAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTMxLDM5KSB3aWR0aCAxNjg6ICJ0aGlzIHJl
ZmVyZW5jZSByZW5kZXJpbmciCiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjk5LDM5
KSBzaXplIDR4MTcKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjk5LDM5KSB3aWR0aCA0OiAiLiIK
LWxheWVyIGF0ICg2MzgsMTgpIHNpemUgMjB4MjAKLSAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQp
IGF0ICg2MzgsMTgpIHNpemUgMjB4MjAgW2NvbG9yPSNGRkZGRkZdIFtiZ2NvbG9yPSNGRjAwRkZd
Ci0gICAgUmVuZGVyVGV4dCBhdCAoMCwwKSBzaXplIDIweDIwCi0gICAgICB0ZXh0IHJ1biBhdCAo
MCwwKSB3aWR0aCAyMDogIlgiCiBsYXllciBhdCAoMTMwLDg0KSBzaXplIDMwMHgxNTAKICAgUmVu
ZGVyRW1iZWRkZWRPYmplY3Qge09CSkVDVH0gYXQgKDEzMCw4NCkgc2l6ZSAzMDB4MTUwCiAgICAg
bGF5ZXIgYXQgKDAsMCkgc2l6ZSAzMDB4MTUwCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>