<?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>72852</bug_id>
          
          <creation_ts>2011-11-20 21:48:50 -0800</creation_ts>
          <short_desc>Scroll position is lost after hide/show element</short_desc>
          <delta_ts>2015-07-16 07:33:24 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Naveen Bobbili">naveenbobbili</reporter>
          <assigned_to name="Rakesh">rakeshchaitan</assigned_to>
          <cc>7raivis</cc>
    
    <cc>ap</cc>
    
    <cc>bdakin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>jaz777</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>morrita</cc>
    
    <cc>qghc36</cc>
    
    <cc>rakeshchaitan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>506697</commentid>
    <comment_count>0</comment_count>
      <attachid>116027</attachid>
    <who name="Naveen Bobbili">naveenbobbili</who>
    <bug_when>2011-11-20 21:48:50 -0800</bug_when>
    <thetext>Created attachment 116027
Scroll Bug

What steps will reproduce the problem?
1. add element with active vertical scroll (big div inside small div)
2. scroll to any position
3. hide element (set style.display=&apos;none&apos;)
4. show element (set style.display=&apos;block&apos;)

What is the expected result?
 scroll position was not changed

What happens instead?
 scroll position is reset

Use attached html to reproduce.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507424</commentid>
    <comment_count>1</comment_count>
    <who name="Naveen Bobbili">qghc36</who>
    <bug_when>2011-11-21 23:40:12 -0800</bug_when>
    <thetext>To achieve this we need to maintain the old scroll position. As renderer and the associated layer gets dropped after hide operation, where can we maintain the old scroll position?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508966</commentid>
    <comment_count>2</comment_count>
      <attachid>116563</attachid>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2011-11-24 22:39:55 -0800</bug_when>
    <thetext>Created attachment 116563
Proposed patch

We maintain a map of node and scroll point in Page(similar to ScrollableAreaSet). When the RenderLayer is getting dropped (for example display none), we store the location with node. When the same node get a renderer, we set scrolloffset to previous value stored.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508983</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-11-24 23:11:11 -0800</bug_when>
    <thetext>What if the element gets moved to another page while hidden?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509119</commentid>
    <comment_count>4</comment_count>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2011-11-25 05:44:46 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; What if the element gets moved to another page while hidden?
In this case I think it should be rendered to the default scroll position than the stored prev. position as I guess it would be altogether another DOM itself(I may be wrong, please correct me if so).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509220</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-11-25 11:13:01 -0800</bug_when>
    <thetext>One not so great thing that would happen in this case is that m_scrollableNodeMap will have abandoned data for the node.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509343</commentid>
    <comment_count>6</comment_count>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2011-11-26 02:07:40 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; One not so great thing that would happen in this case is that m_scrollableNodeMap will have abandoned data for the node.

Yes, you are right, I think we need to remove the data when node is detached but with this any style change will lead to losing the scroll position. What do you  suggest, we can maintain scroll position till the time node is detached?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509755</commentid>
    <comment_count>7</comment_count>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2011-11-28 05:06:36 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; One not so great thing that would happen in this case is that m_scrollableNodeMap will have abandoned data for the node.

After some debugging, I think following two approaches are possible: 

1. Instead of page, document should hold this map(ScrollableNodePoint). We can remove the reference of Node in node&apos;s destructor.

2. Have a raredata to hold the scroll position in the node itself which can be directly used.

In both the approaches, to handle the case of node being moved to another page, we can reset the scroll position in setDocument() of Node.

Please let me know your thoughts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509969</commentid>
    <comment_count>8</comment_count>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2011-11-28 11:03:24 -0800</bug_when>
    <thetext>Just for information, this issue works fine on IE and Firefox for display:none and visibility:hidden as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509971</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-11-28 11:06:45 -0800</bug_when>
    <thetext>I&apos;m not sure that it&apos;s appropriate to store the scroll position across a display:none change. Authors should use visibility:hidden if they want the scroll position to be remembered.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509986</commentid>
    <comment_count>10</comment_count>
      <attachid>116563</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-11-28 11:15:10 -0800</bug_when>
    <thetext>Comment on attachment 116563
Proposed patch

There&apos;s no guarantee that the style will be the same after the display:none -&gt; display:block change, so the point may be just wrong. For example, imagine that all the rows got taller.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510014</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-11-28 11:32:01 -0800</bug_when>
    <thetext>&gt; I&apos;m not sure that it&apos;s appropriate to store the scroll position across a display:none change

I was also unsure, but if it works in both IE and Firefox, maybe we should comply. Also, there is quite a number of complaints in &lt;http://code.google.com/p/chromium/issues/detail?id=36428&gt;, which Rakesh pointed me to on IRC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510512</commentid>
    <comment_count>12</comment_count>
      <attachid>116900</attachid>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2011-11-28 22:41:39 -0800</bug_when>
    <thetext>Created attachment 116900
Test case if height/rows are increased.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510515</commentid>
    <comment_count>13</comment_count>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2011-11-28 22:46:15 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 116563 [details])
&gt; There&apos;s no guarantee that the style will be the same after the display:none -&gt; display:block change, so the point may be just wrong. For example, imagine that all the rows got taller.

For this case, both IE and firefox restore to the old position even though height is increased as long as the stored position + height is less than the scrollable height.

This can be verified in the new test case attached. May be we can have this behavior to match other browsers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510611</commentid>
    <comment_count>14</comment_count>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2011-11-29 01:54:12 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #10)
&gt; &gt; (From update of attachment 116563 [details] [details])
&gt; &gt; There&apos;s no guarantee that the style will be the same after the display:none -&gt; display:block change, so the point may be just wrong. For example, imagine that all the rows got taller.
&gt; 
&gt; For this case, both IE and firefox restore to the old position even though height is increased as long as the stored position + height is less than the scrollable height.
&gt; 
&gt; This can be verified in the new test case attached. May be we can have this behavior to match other browsers.

Also this change of row height does apply for an visibility:hidden also, it does not restore to the previous position but a changed scroll position when it was hidden after scrolling to end of scrollable area and height is increased and  visibility:visible is applied.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511667</commentid>
    <comment_count>15</comment_count>
      <attachid>117176</attachid>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2011-11-30 05:44:45 -0800</bug_when>
    <thetext>Created attachment 117176
Proposed patch

As the scrollable node can be removed from current DOM, now removing the stored scroll position when the node is getting deleted or moving to a new document. Maintaining the ScrollableNodePosition map in Document. We can as well store the position in Node rareData but will increase the size of Node</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512359</commentid>
    <comment_count>16</comment_count>
      <attachid>117176</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-30 19:34:47 -0800</bug_when>
    <thetext>Comment on attachment 117176
Proposed patch

Attachment 117176 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10712547

New failing tests:
fast/layers/inline-dirty-z-order-lists.html
fast/flexbox/line-clamp-crash.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512543</commentid>
    <comment_count>17</comment_count>
      <attachid>117355</attachid>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2011-11-30 23:54:34 -0800</bug_when>
    <thetext>Created attachment 117355
Updated patch

I think the tree was red and was getting failures on this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512595</commentid>
    <comment_count>18</comment_count>
      <attachid>117355</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-01 00:58:25 -0800</bug_when>
    <thetext>Comment on attachment 117355
Updated patch

Attachment 117355 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10704559

New failing tests:
fast/layers/inline-dirty-z-order-lists.html
fast/flexbox/line-clamp-crash.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513483</commentid>
    <comment_count>19</comment_count>
      <attachid>117355</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-12-01 22:16:42 -0800</bug_when>
    <thetext>Comment on attachment 117355
Updated patch

- How about &lt;iframe&gt; ? In general, scroll relate change should have tests which cover both overflowed-div and iframe.
- Is it possible to use Element instead of Node? it would be clarify the intention.
- Is RenderLayer::scrollToOffset() really right timing to do it? My naive thought is that we can just save/restore it on the construction/destruction of the layer or the scrollbar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513684</commentid>
    <comment_count>20</comment_count>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2011-12-02 05:00:18 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 117355 [details])
&gt; - How about &lt;iframe&gt; ? In general, scroll relate change should have tests which cover both overflowed-div and iframe.

Yes, will cover iframe test case too.

&gt; - Is it possible to use Element instead of Node? it would be clarify the intention.

Element is fine.

&gt; - Is RenderLayer::scrollToOffset() really right timing to do it? My naive thought is that we can just save/restore it on the construction/destruction of the layer or the scrollbar.

Seems the correct place to me (I may be wrong) as the ScrollableArea::scrollToOffsetWithoutAnimation() gets called from here which set the scrolloffset.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515097</commentid>
    <comment_count>21</comment_count>
      <attachid>117883</attachid>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2011-12-05 08:20:12 -0800</bug_when>
    <thetext>Created attachment 117883
Updated patch

Using element to store the scroll position.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515813</commentid>
    <comment_count>22</comment_count>
      <attachid>117883</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-12-06 04:46:15 -0800</bug_when>
    <thetext>Comment on attachment 117883
Updated patch

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

&gt; Source/WebCore/dom/Element.cpp:2035
&gt; +    return ensureRareData()-&gt;scrollableElement();

Please be conservative about instantiating ElementRareData object. you can check its existence using hasRareData().

&gt; Source/WebCore/dom/Element.cpp:2040
&gt; +    return ensureRareData()-&gt;scrolledPosition();

Same as above.

&gt; Source/WebCore/dom/Element.cpp:2050
&gt; +    ensureRareData()-&gt;setScrollPosition(IntPoint());

Same as above.

&gt; Source/WebCore/dom/Element.h:369
&gt; +    IntPoint scrolledPosition();

The method should be const

&gt; Source/WebCore/dom/Element.h:370
&gt; +    void setScrollPosition(IntPoint);

The parameter should be a const reference.

&gt; Source/WebCore/dom/ElementRareData.h:55
&gt; +    IntPoint scrollPosition;

Please follow the naming convention.
Having this in ElementRareData seems good idea for me.

&gt; Source/WebCore/dom/ElementRareData.h:57
&gt; +    inline IntPoint scrolledPosition() { return scrollPosition; }

Should return const reference. the method should be const too.

&gt; Source/WebCore/dom/ElementRareData.h:58
&gt; +    inline void setScrollPosition(IntPoint point) { scrollPosition = point; } 

the paramter should be const.

&gt; Source/WebCore/dom/Node.cpp:461
&gt; +        if (toElement(this)-&gt;scrollableElement())

You can do this check inside resetScrollPosition().

&gt; Source/WebCore/rendering/RenderLayer.cpp:1382
&gt; +            element-&gt;resetScrollPosition();

This reset should happen outside the if (box) clause.

&gt; LayoutTests/ChangeLog:10
&gt; +

Could you add another test case that verify the style recalculation invalidate the scroll postion cache?
(That is for covering the change on RenderLayer::styleChanged())</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515815</commentid>
    <comment_count>23</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-12-06 04:48:14 -0800</bug_when>
    <thetext>&gt; &gt; - Is RenderLayer::scrollToOffset() really right timing to do it? My naive thought is that we can just save/restore it on the construction/destruction of the layer or the scrollbar.
&gt; 
&gt; Seems the correct place to me (I may be wrong) as the ScrollableArea::scrollToOffsetWithoutAnimation() gets called from here which set the scrolloffset.
It&apos;s called really often from many places.
I guess there are more natural place to do it.
For example, RenderLayer::updateScrollInfoAfterLayout() is possible candidate.

Anyway you&apos;d better to ask an expert like smfr@. you can catch him at IRC, I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516038</commentid>
    <comment_count>24</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-12-06 10:51:50 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; &gt; &gt; - Is RenderLayer::scrollToOffset() really right timing to do it? My naive thought is that we can just save/restore it on the construction/destruction of the layer or the scrollbar.
&gt; &gt; 
&gt; &gt; Seems the correct place to me (I may be wrong) as the ScrollableArea::scrollToOffsetWithoutAnimation() gets called from here which set the scrolloffset.
&gt; It&apos;s called really often from many places.
&gt; I guess there are more natural place to do it.
&gt; For example, RenderLayer::updateScrollInfoAfterLayout() is possible candidate.

That&apos;s probably OK, but does that get called after the user scrolls?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516429</commentid>
    <comment_count>25</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-12-06 18:29:48 -0800</bug_when>
    <thetext>&gt; &gt; It&apos;s called really often from many places.
&gt; &gt; I guess there are more natural place to do it.
&gt; &gt; For example, RenderLayer::updateScrollInfoAfterLayout() is possible candidate.
&gt; 
&gt; That&apos;s probably OK, but does that get called after the user scrolls?
No.
In my understanding, restoring the position from associated element isn&apos;t required after the user scrolls.
It has to happen just after the element becomes visible.

For me, calling scrollTo() looks more straightforward than hooking it.
But I&apos;m not so confident. I agree that hooking scrollTo() will work
because it&apos;s a gateway of the scrolls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516501</commentid>
    <comment_count>26</comment_count>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2011-12-06 22:13:03 -0800</bug_when>
    <thetext>(In reply to comment #24)
&gt; &gt; For example, RenderLayer::updateScrollInfoAfterLayout() is possible candidate.
&gt; 
&gt; That&apos;s probably OK, but does that get called after the user scrolls?

Yes, RenderLayer::updateScrollInfoAfterLayout looks better. It does not get called when user scrolls but only when layout occurs.

(In reply to comment #25)
&gt; No.
&gt; In my understanding, restoring the position from associated element isn&apos;t required after the user scrolls.
&gt; It has to happen just after the element becomes visible.

If we hook in at RenderLayer::updateScrollInfoAfterLayout which is called on layout then I think we are restoring as soon as the element becomes visible.

&gt; 
&gt; For me, calling scrollTo() looks more straightforward than hooking it.
&gt; But I&apos;m not so confident. I agree that hooking scrollTo() will work
&gt; because it&apos;s a gateway of the scrolls.

updateScrollInfoAfterLayout does call scrollTo() internally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516534</commentid>
    <comment_count>27</comment_count>
      <attachid>118183</attachid>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2011-12-07 01:18:24 -0800</bug_when>
    <thetext>Created attachment 118183
Updated patch

Changes as per review comments and calling restoring the scroll position in RenderLayer::updateScrollInfoAfterLayout(). Updated test case to include test for overflow style change also.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516663</commentid>
    <comment_count>28</comment_count>
      <attachid>118183</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-12-07 08:50:16 -0800</bug_when>
    <thetext>Comment on attachment 118183
Updated patch

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

You really need more testing for us to see that you won&apos;t break scrolling after resetting your visibility.

&gt; Source/WebCore/dom/Element.cpp:2035
&gt; +    return hasRareData() ? rareData()-&gt;scrollableElement() : false;

It should be:

return hasRareData() &amp;&amp; rareData()-&gt;scrollableElement();

&gt; Source/WebCore/dom/Element.cpp:2045
&gt; +    ElementRareData* data = hasRareData() ? rareData() : ensureRareData();

No need for checking hasRareData here. Just do:

ensureRareData()-&gt;setScrollPosition(point);

&gt; Source/WebCore/dom/Element.cpp:2052
&gt; +        rareData()-&gt;setScrollPosition(IntPoint());

The whole logic is flawed. If you set up scrolledPosition() once, you will always reset the scrollOffset in updateScrollInfoAfterLayout to something (IntPoint() if you have called reset in the meantime) thus overriding a scroll offset set by JS or the user. This is not covered by your tests unfortunately.

&gt; Source/WebCore/dom/Node.cpp:461
&gt; +        toElement(this)-&gt;resetScrollPosition();

There is nothing that warranties that |this| is an Element AFAICT. This will crash pretty badly if you move a node from one Document to another one.

&gt; Source/WebCore/rendering/RenderLayer.cpp:2275
&gt; +    }

It really looks like an overkill to check for that at every layout. I would feel better if we restored it in the constructor of RenderLayer as to reset the scrollOffset once.

&gt; Source/WebCore/rendering/RenderLayer.cpp:4297
&gt; +        toElement(m_renderer-&gt;node())-&gt;resetScrollPosition();

Again what guarantees our node to be an Element?

&gt; LayoutTests/fast/overflow/scroll-div-hide-show-expected.txt:19
&gt; +FAIL e.scrollTop should be 100. Was 0.

This is failing, you need to mention why and we *need* a bug tracking this failure at some point as it will go unnoticed in our tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517210</commentid>
    <comment_count>29</comment_count>
      <attachid>118183</attachid>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2011-12-07 23:20:57 -0800</bug_when>
    <thetext>Comment on attachment 118183
Updated patch


&gt; return hasRareData() &amp;&amp; rareData()-&gt;scrollableElement();

Agreed.

&gt; No need for checking hasRareData here. Just do:
&gt; 
&gt; ensureRareData()-&gt;setScrollPosition(point);

Agreed.

&gt;&gt; Source/WebCore/dom/Element.cpp:2052
&gt;&gt; +        rareData()-&gt;setScrollPosition(IntPoint());
&gt; 
&gt; The whole logic is flawed. If you set up scrolledPosition() once, you will always reset the scrollOffset in updateScrollInfoAfterLayout to something (IntPoint() if you have called reset in the meantime) thus overriding a scroll offset set by JS or the user. This is not covered by your tests unfortunately.

I did not get &quot;(IntPoint() if you have called reset in the meantime) thus overriding a scroll offset set by JS or the user&quot;. We want to reset the scrolloffset once we have restored as we will store a new position if user scrolls to new offset and then layer is dropped due to display:none. May be you meant some thing else.

&gt;&gt; Source/WebCore/dom/Node.cpp:461
&gt;&gt; +        toElement(this)-&gt;resetScrollPosition();
&gt; 
&gt; There is nothing that warranties that |this| is an Element AFAICT. This will crash pretty badly if you move a node from one Document to another one.

Yes, a check is needed here.

&gt;&gt; Source/WebCore/rendering/RenderLayer.cpp:2275
&gt;&gt; +    }
&gt; 
&gt; It really looks like an overkill to check for that at every layout. I would feel better if we restored it in the constructor of RenderLayer as to reset the scrollOffset once.

Will set scrolloffset in constructor.

&gt;&gt; Source/WebCore/rendering/RenderLayer.cpp:4297
&gt;&gt; +        toElement(m_renderer-&gt;node())-&gt;resetScrollPosition();
&gt; 
&gt; Again what guarantees our node to be an Element?

Will add a check.

&gt;&gt; LayoutTests/fast/overflow/scroll-div-hide-show-expected.txt:19
&gt;&gt; +FAIL e.scrollTop should be 100. Was 0.
&gt; 
&gt; This is failing, you need to mention why and we *need* a bug tracking this failure at some point as it will go unnoticed in our tree.

My mistake, expected.txt got generated on wrong build, I compiled for gtk and ran new-run-webkit-tests for chromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517217</commentid>
    <comment_count>30</comment_count>
      <attachid>118338</attachid>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2011-12-07 23:44:03 -0800</bug_when>
    <thetext>Created attachment 118338
Updated patch

Changes as per review comments and restore scrolloffset in constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517614</commentid>
    <comment_count>31</comment_count>
      <attachid>118183</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-12-08 11:39:35 -0800</bug_when>
    <thetext>Comment on attachment 118183
Updated patch

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

&gt;&gt;&gt; Source/WebCore/dom/Element.cpp:2052
&gt;&gt;&gt; +        rareData()-&gt;setScrollPosition(IntPoint());
&gt;&gt; 
&gt;&gt; The whole logic is flawed. If you set up scrolledPosition() once, you will always reset the scrollOffset in updateScrollInfoAfterLayout to something (IntPoint() if you have called reset in the meantime) thus overriding a scroll offset set by JS or the user. This is not covered by your tests unfortunately.
&gt; 
&gt; I did not get &quot;(IntPoint() if you have called reset in the meantime) thus overriding a scroll offset set by JS or the user&quot;. We want to reset the scrolloffset once we have restored as we will store a new position if user scrolls to new offset and then layer is dropped due to display:none. May be you meant some thing else.

Looking again, I missed a bit - that you checked scrolledPosition against IntPoint() in scrollableElement() before resetting m_scrollOffset - and the logic was fine. My bad.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517629</commentid>
    <comment_count>32</comment_count>
      <attachid>118338</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-12-08 11:50:52 -0800</bug_when>
    <thetext>Comment on attachment 118338
Updated patch

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

You *really* need more testing here. Each review brings up some bugs in the implementation that are not caught by any test. It would be neat to come up with some new test case covering the pointed bug but at least *more* testing would give reviewers some confidence that this works outside a very basic example (which is your current test case). Here is some ideas:

* toggling several times visibility should work. Changing the value in between should also work. Make sure m_scrollOffset.x() != m_scrollOffset.y() as this would fine flipping issues.
* look at the different code path and come with a test case (example: the Node::setDocument change is not tested AFAICT, RenderLayer::styleChanged too).
* use some non default writing modes and direction in a test.
* vary your scroll origin (see RenderLayer::computeScrollDimensions to see what impacts it).

&gt; Source/WebCore/ChangeLog:8
&gt; +        Maintain the scroll position of overflow element when the scrollable renderlayer is being dropped,

overflowing element?

s/renderlayer/RenderLayer/

dropped -&gt; destroyed?

&gt; Source/WebCore/ChangeLog:9
&gt; +        which can be used to restore the scroll position if same node is again added to render tree

node -&gt; element

added to *the* render tree

&gt; Source/WebCore/ChangeLog:19
&gt; +        Helper functions for accessing scroll position from rare data.

It would help readability if you added an empty line between the different groups covered by a single comment.

&gt; Source/WebCore/dom/Element.cpp:2040
&gt; +    return hasRareData() ? rareData()-&gt;scrolledPosition() : IntPoint();

Looking at the rest of the code, it is not fine to call scrolledPosition if we don&apos;t have some rareData. If that&apos;s the case, then this should just be:

ASSERT(hasRareData());
return rareData()-&gt;scrolledPosition();

&gt; Source/WebCore/dom/Element.h:370
&gt; +    void setScrollPosition(const IntPoint&amp; = IntPoint());

Please remove the default argument, it is confusing and a source of badness in this case.

&gt; Source/WebCore/dom/ElementRareData.h:56
&gt; +    inline bool scrollableElement() { return (m_scrolledPosition != IntPoint()); }

You can use IntPoint::zero() for the comparison here.

&gt; Source/WebCore/dom/ElementRareData.h:58
&gt; +    inline void setScrollPosition(const IntPoint&amp; point) { m_scrolledPosition = point; } 

You don&apos;t have to use the |inline| keyword in the previous functions. Any function defined in a header is automatically inlined by the compiler.

&gt; Source/WebCore/rendering/RenderLayer.cpp:201
&gt; +            m_scrollOffset = toSize(element-&gt;scrolledPosition());

I think this will break if scrollOrigin() is different from (0, 0) (and any non-English combinaison of writing mode and directions). You are saving scrollPosition() into your rare data field which included the scrollOrigin() *and* m_scrollOffset. However you restore everything into m_scrollOffset. This means that now scrollPosition will include scrollOrigin() twice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518304</commentid>
    <comment_count>33</comment_count>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2011-12-09 09:46:23 -0800</bug_when>
    <thetext>&gt; * look at the different code path and come with a test case (example: the Node::setDocument change is not tested AFAICT, RenderLayer::styleChanged too).

Will add a test for Node::setDocument change. I think change in RenderLayer::styleChanged is not required as even if overflow is not there then setting a scrolloffset does not have any effect.

&gt; * use some non default writing modes and direction in a test.
&gt; * vary your scroll origin (see RenderLayer::computeScrollDimensions to see what impacts it).
&gt; 

Yes, with change in direction will change scrollOrigin also. Will add that test too.

&gt; &gt; Source/WebCore/ChangeLog:19
&gt; &gt; +        Helper functions for accessing scroll position from rare data.
&gt; 
&gt; It would help readability if you added an empty line between the different groups covered by a single comment.

I am ok to add empty line but I haven&apos;t seen that in ChangeLog&apos;s so is that fine?

&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:201
&gt; &gt; +            m_scrollOffset = toSize(element-&gt;scrolledPosition());
&gt; 
&gt; I think this will break if scrollOrigin() is different from (0, 0) (and any non-English combinaison of writing mode and directions). You are saving scrollPosition() into your rare data field which included the scrollOrigin() *and* m_scrollOffset. However you restore everything into m_scrollOffset. This means that now scrollPosition will include scrollOrigin() twice.

I think saving m_scrollOffset instead of scrollPosition() will solve this issue. Scrolling to appropriate point wrt to origin will be taken care in scrollTo(), what do you think? Also renaming the functions as setScrolledOffset if we are saving scrollOffset will be good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518364</commentid>
    <comment_count>34</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-12-09 11:41:53 -0800</bug_when>
    <thetext>(In reply to comment #33)
&gt; I think change in RenderLayer::styleChanged is not required as even if overflow is not there then setting a scrolloffset does not have any effect.

Good catch, I thought it may be needed in case your style makes you not scrollable anymore. As we save / restore on layer&apos;s creation / deletion, it shouldn&apos;t be needed.

&gt; &gt; &gt; Source/WebCore/ChangeLog:19
&gt; &gt; &gt; +        Helper functions for accessing scroll position from rare data.
&gt; &gt; 
&gt; &gt; It would help readability if you added an empty line between the different groups covered by a single comment.
&gt; 
&gt; I am ok to add empty line but I haven&apos;t seen that in ChangeLog&apos;s so is that fine?

Look at other people&apos;s ChangeLog entries, most people don&apos;t feel the details like you do. Among those who do, they usually add some empty lines for readability. ChangeLog entries vary wildly by people so there is not a lot of official rules as to what to put in it and how to present it.

&gt; &gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:201
&gt; &gt; &gt; +            m_scrollOffset = toSize(element-&gt;scrolledPosition());
&gt; &gt; 
&gt; &gt; I think this will break if scrollOrigin() is different from (0, 0) (and any non-English combinaison of writing mode and directions). You are saving scrollPosition() into your rare data field which included the scrollOrigin() *and* m_scrollOffset. However you restore everything into m_scrollOffset. This means that now scrollPosition will include scrollOrigin() twice.
&gt; 
&gt; I think saving m_scrollOffset instead of scrollPosition() will solve this issue. Scrolling to appropriate point wrt to origin will be taken care in scrollTo(), what do you think? 

I would think so, hoping that computeScrollDimensions reset all the other m_*scroll* members to the original dimensions. Note that this is an optimistic approach: if any of those changes, it&apos;s potentially game over. I think this trade-off is fine for a first step.

&gt; Also renaming the functions as setScrolledOffset if we are saving scrollOffset will be good.

I don&apos;t think I follow this renaming. Seeing the change would make me see what you mean.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518814</commentid>
    <comment_count>35</comment_count>
      <attachid>118694</attachid>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2011-12-10 11:37:24 -0800</bug_when>
    <thetext>Created attachment 118694
Updated patch

More test coverage and suggested changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519257</commentid>
    <comment_count>36</comment_count>
      <attachid>118694</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-12-12 09:06:07 -0800</bug_when>
    <thetext>Comment on attachment 118694
Updated patch

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

More comments / questions / nits but you have the hang of it and I think the next patch should be good to land.

&gt; Source/WebCore/ChangeLog:8
&gt; +        Maintain the scroll position of overflowing element when the scrollable RenderLayer is being destroyed,

s/is being destroyed/is destroyed/ (I am not a native English speaker but the &apos;being&apos; seems unnecessary)

&gt; Source/WebCore/dom/Element.cpp:2050
&gt; +    ASSERT(hasRareData());

Looking further, it looks like it is bad to scrolledPosition if scrollableElement() is false. Thus the ASSERT could be:

ASSERT(scrollableElement());

which covers and broadens the existing ASSERT.

&gt; Source/WebCore/dom/ElementRareData.h:58
&gt; +    bool scrollableElement() { return (m_scrolledPosition != IntPoint::zero()); }
&gt; +    IntPoint scrolledPosition() const { return m_scrolledPosition; }
&gt; +    void setScrollPosition(const IntPoint&amp; point) { m_scrolledPosition = point; } 

It looks like all those functions should just be removed and inlined in the only user Element.

&gt; Source/WebCore/dom/Node.cpp:463
&gt; +            toElement(this)-&gt;resetScrollPosition();

I don&apos;t see that exercised in your test, am I missing something?

&gt; Source/WebCore/rendering/RenderLayer.cpp:201
&gt; +            m_scrollOffset = toSize(element-&gt;scrolledPosition());

Could you put a comment here about your approach being optimistic when storing only the scrolled position? (it would be really better would be to enforce this an ASSERT but a FIXME will do)

&gt; LayoutTests/fast/overflow/scroll-div-hide-show.html:43
&gt; +e.scrollTop = 50;
&gt; +e.scrollLeft = 50;

Nit: Those 2 values should be different.

&gt; LayoutTests/fast/overflow/scroll-div-hide-show.html:129
&gt; +debug(&quot;Scrolling to 50,150&quot;);

Nit: Space after the comma.

&gt; LayoutTests/fast/overflow/scroll-div-hide-show.html:151
&gt; +debug(&quot;Scrolling Iframe to (50,50)&quot;);
&gt; +frame.contentWindow.scrollTo(50,50);

Nit: Those 2 values should be different. Also space after the comma.

&gt; LayoutTests/fast/overflow/scroll-div-hide-show.html:168
&gt; +debug(&quot;Scrolling div to (50,50)&quot;);
&gt; +e.scrollTop = 50;
&gt; +e.scrollLeft = 50;

Nit: Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519366</commentid>
    <comment_count>37</comment_count>
      <attachid>118694</attachid>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2011-12-12 11:54:29 -0800</bug_when>
    <thetext>Comment on attachment 118694
Updated patch

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

&gt;&gt; Source/WebCore/dom/ElementRareData.h:58
&gt;&gt; +    void setScrollPosition(const IntPoint&amp; point) { m_scrolledPosition = point; } 
&gt; 
&gt; It looks like all those functions should just be removed and inlined in the only user Element.

I think we may have to include ElementRareData.h in Element.h to make these inline. Better we can have these defined in Element.cpp.

&gt;&gt; Source/WebCore/dom/Node.cpp:463
&gt;&gt; +            toElement(this)-&gt;resetScrollPosition();
&gt; 
&gt; I don&apos;t see that exercised in your test, am I missing something?

Test for this is added, it has following comments: &quot;Testing scroll offset getting reset when moved to other document&quot;

&gt;&gt; LayoutTests/fast/overflow/scroll-div-hide-show.html:43
&gt;&gt; +e.scrollLeft = 50;
&gt; 
&gt; Nit: Those 2 values should be different.

It is one of the test with same values, the other tests below have different values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519401</commentid>
    <comment_count>38</comment_count>
      <attachid>118694</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-12-12 13:13:11 -0800</bug_when>
    <thetext>Comment on attachment 118694
Updated patch

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

&gt;&gt;&gt; Source/WebCore/dom/ElementRareData.h:58
&gt;&gt;&gt; +    void setScrollPosition(const IntPoint&amp; point) { m_scrolledPosition = point; } 
&gt;&gt; 
&gt;&gt; It looks like all those functions should just be removed and inlined in the only user Element.
&gt; 
&gt; I think we may have to include ElementRareData.h in Element.h to make these inline. Better we can have these defined in Element.cpp.

I was following this exact line of thoughts. It looks like we don&apos;t define any function on ElementRareData and the previous functions can easily be implemented in Element.cpp without losing some abstraction.

&gt;&gt;&gt; Source/WebCore/dom/Node.cpp:463
&gt;&gt;&gt; +            toElement(this)-&gt;resetScrollPosition();
&gt;&gt; 
&gt;&gt; I don&apos;t see that exercised in your test, am I missing something?
&gt; 
&gt; Test for this is added, it has following comments: &quot;Testing scroll offset getting reset when moved to other document&quot;

OK, sorry I missed it.

&gt;&gt;&gt; LayoutTests/fast/overflow/scroll-div-hide-show.html:43
&gt;&gt;&gt; +e.scrollLeft = 50;
&gt;&gt; 
&gt;&gt; Nit: Those 2 values should be different.
&gt; 
&gt; It is one of the test with same values, the other tests below have different values.

FYI nits can usually be ignored. They just represents comments the reviewer does not feel strongly about (in this case, I am fine with the test case having the same values).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519877</commentid>
    <comment_count>39</comment_count>
      <attachid>118957</attachid>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2011-12-12 22:58:30 -0800</bug_when>
    <thetext>Created attachment 118957
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520089</commentid>
    <comment_count>40</comment_count>
      <attachid>118957</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-12-13 08:33:14 -0800</bug_when>
    <thetext>Comment on attachment 118957
Updated patch

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

&gt; Source/WebCore/dom/Element.cpp:2035
&gt; +    return hasRareData() &amp;&amp; (rareData()-&gt;m_scrolledPosition != IntPoint::zero());

Extra parenthesis here.

&gt; Source/WebCore/rendering/RenderLayer.cpp:202
&gt; +            // We save and restore only the scrollOffset as the other scroll
&gt; +            // values are recalulated.

That comment is good. I would also like to see one about us being optimistic somewhere as the recalculated values may not match the old ones and thus scrollOffset would be wrong (for example, would need to be clamped). Here is an updated comment:

// We save and restore only the scrollOffset as the other scroll values are recalulated.
// FIXME: We are assuming those scroll values did not change. If they do, our cached scrollOffset may be wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520265</commentid>
    <comment_count>41</comment_count>
      <attachid>119057</attachid>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2011-12-13 12:04:09 -0800</bug_when>
    <thetext>Created attachment 119057
Updated patch

Made necessary changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520880</commentid>
    <comment_count>42</comment_count>
      <attachid>119057</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-12-14 05:49:01 -0800</bug_when>
    <thetext>Comment on attachment 119057
Updated patch

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

&gt; LayoutTests/ChangeLog:9
&gt; +        Maintain the scroll position of overflowing element when the scrollable RenderLayer is destroyed,
&gt; +        which can be used to restore the scroll position if the same element is again added to the render tree. 

Damn super close: this should be in the WebCore ChangeLog as it is pretty much useless in the LayoutTest one. I also really think this should be moved before landing :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521021</commentid>
    <comment_count>43</comment_count>
      <attachid>119240</attachid>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2011-12-14 10:08:32 -0800</bug_when>
    <thetext>Created attachment 119240
Updated patch

modified ChangeLogs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521024</commentid>
    <comment_count>44</comment_count>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2011-12-14 10:15:18 -0800</bug_when>
    <thetext>
&gt; Damn super close: this should be in the WebCore ChangeLog as it is pretty much useless in the LayoutTest one. I also really think this should be moved before landing :(

How did I miss it :(. Uploaded a new patch.

Thanks for your suggestions and taking time to review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521473</commentid>
    <comment_count>45</comment_count>
      <attachid>119240</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-12-14 16:53:28 -0800</bug_when>
    <thetext>Comment on attachment 119240
Updated patch

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

&gt; Source/WebCore/dom/Element.cpp:2045
&gt; +    return hasRareData() &amp;&amp; rareData()-&gt;m_scrolledPosition != IntPoint::zero();

This does not answer the question of whether an element is scrollable. It answers the question of whether is is scrolled, which is not the same thing.

&gt; Source/WebCore/dom/Element.cpp:2052
&gt; +IntPoint Element::scrolledPosition() const
&gt; +{
&gt; +    ASSERT(scrollableElement());
&gt; +    return rareData()-&gt;m_scrolledPosition;
&gt; +}

This seems wrong. Should just return IntPoint::zero() if there is no rare data.

&gt; Source/WebCore/dom/Element.cpp:2056
&gt; +    ensureRareData()-&gt;m_scrolledPosition = point;

This should not create new rare data if called with a zero point on an object that doesn’t already have rare data.

&gt; Source/WebCore/dom/Element.cpp:2062
&gt; +    if (scrollableElement())
&gt; +        rareData()-&gt;m_scrolledPosition = IntPoint();

This should just check hasRareData(). No reason to check the position before resetting it to zero.

In fact, I think it should just call setScrollPosition(IntPoint::zero()) rather than having its own logic.

&gt; Source/WebCore/dom/Element.h:367
&gt; +    bool scrollableElement() const;

A function named “scrollable element” would return an element, not an answer to the question “is this scrollable”. I suggest just dropping this function.

&gt; Source/WebCore/dom/Element.h:368
&gt; +    IntPoint scrolledPosition() const;

It doesn’t make sense to call the getter “scrolled position” and then setter “scroll position”. Please choose one term and stick to it.

I think it’s misleading to store something called the “scroll position” that is only accurate when an element has no renderer. Any code that got at this to try to ask what the current scroll position of an element was would get a bad result. If the use of the data is so specific, then I suggest we make the name specific as well. Maybe “saved layer scroll position” is a good name.

&gt; Source/WebCore/dom/Node.cpp:464
&gt; +
&gt; +        if (isElementNode())
&gt; +            toElement(this)-&gt;resetScrollPosition();
&gt; +

This is too low level for code like this and there is no need to put Element-specific code into Node here. There is already a virtual function called willMoveToNewOwnerDocument, and if this is needed, this code can go there.

But I don’t understand why moving to a new document is a time to do this. Is that really right? Why would adoptNode be the one thing that would cause us to reset the scroll position when moving a node from one part of the document to another would not?

&gt; Source/WebCore/rendering/RenderLayer.cpp:200
&gt; +        if (element-&gt;scrollableElement()) {

This if is unnecessary. It should be save to save off a zero scroll offset and then reset the scroll offset to zero.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521810</commentid>
    <comment_count>46</comment_count>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2011-12-15 04:01:21 -0800</bug_when>
    <thetext>
&gt; &gt; Source/WebCore/dom/Element.cpp:2045
&gt; &gt; +    return hasRareData() &amp;&amp; rareData()-&gt;m_scrolledPosition != IntPoint::zero();
&gt; 
&gt; This does not answer the question of whether an element is scrollable. It answers the question of whether is is scrolled, which is not the same thing.

Yes, you are right, &quot;scrolled&quot; would be better.

&gt; 
&gt; &gt; Source/WebCore/dom/Element.cpp:2052
&gt; &gt; +IntPoint Element::scrolledPosition() const
&gt; &gt; +{
&gt; &gt; +    ASSERT(scrollableElement());
&gt; &gt; +    return rareData()-&gt;m_scrolledPosition;
&gt; &gt; +}
&gt; 
&gt; This seems wrong. Should just return IntPoint::zero() if there is no rare data.

Thinking was that this function should not get called if the scrolled position has not been cached.

&gt; 
&gt; &gt; Source/WebCore/dom/Element.cpp:2056
&gt; &gt; +    ensureRareData()-&gt;m_scrolledPosition = point;
&gt; 
&gt; This should not create new rare data if called with a zero point on an object that doesn’t already have rare data.

Yes, we should return if called with zero point.

&gt; 
&gt; &gt; Source/WebCore/dom/Element.cpp:2062
&gt; &gt; +    if (scrollableElement())
&gt; &gt; +        rareData()-&gt;m_scrolledPosition = IntPoint();
&gt; 
&gt; This should just check hasRareData(). No reason to check the position before resetting it to zero.

Wanted to reset only if some non zero point has been cached. Otherwise we will be resetting to zero every time which too is fine but can be avoided.

&gt; 
&gt; In fact, I think it should just call setScrollPosition(IntPoint::zero()) rather than having its own logic.

Yes. 

&gt; &gt; Source/WebCore/dom/Element.h:367
&gt; &gt; +    bool scrollableElement() const;
&gt; 
&gt; A function named “scrollable element” would return an element, not an answer to the question “is this scrollable”. I suggest just dropping this function.
&gt; 
&gt; &gt; Source/WebCore/dom/Element.h:368
&gt; &gt; +    IntPoint scrolledPosition() const;
&gt; 
&gt; It doesn’t make sense to call the getter “scrolled position” and then setter “scroll position”. Please choose one term and stick to it.
&gt; 
&gt; I think it’s misleading to store something called the “scroll position” that is only accurate when an element has no renderer. Any code that got at this to try to ask what the current scroll position of an element was would get a bad result. If the use of the data is so specific, then I suggest we make the name specific as well. Maybe “saved layer scroll position” is a good name.

Agreed, it should be in the lines of saveLayerScrollPosition.

&gt; 
&gt; &gt; Source/WebCore/dom/Node.cpp:464
&gt; &gt; +
&gt; &gt; +        if (isElementNode())
&gt; &gt; +            toElement(this)-&gt;resetScrollPosition();
&gt; &gt; +
&gt; 
&gt; This is too low level for code like this and there is no need to put Element-specific code into Node here. There is already a virtual function called willMoveToNewOwnerDocument, and if this is needed, this code can go there.
&gt; 
&gt; But I don’t understand why moving to a new document is a time to do this. Is that really right? Why would adoptNode be the one thing that would cause us to reset the scroll position when moving a node from one part of the document to another would not?

Can Element::removedFromDocument be the place for resetting?

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:200
&gt; &gt; +        if (element-&gt;scrollableElement()) {
&gt; 
&gt; This if is unnecessary. It should be save to save off a zero scroll offset and then reset the scroll offset to zero.

Yes, if the previous suggested changes are taken then this will not be necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523790</commentid>
    <comment_count>47</comment_count>
      <attachid>119833</attachid>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2011-12-19 00:48:31 -0800</bug_when>
    <thetext>Created attachment 119833
Updated patch

Modified function names and handling the case of scrollable layer moved to different location in the same page. Updated the test for the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524060</commentid>
    <comment_count>48</comment_count>
      <attachid>119833</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-12-19 11:28:38 -0800</bug_when>
    <thetext>Comment on attachment 119833
Updated patch

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

&gt; Source/WebCore/dom/Element.cpp:950
&gt; +    resetsavedLayerScrolledPosition();

This should just be:

    saveLayerScrolledPosition(IntPoint::zero());

To me, this is still a bit suspect. I don’t understand why removal from the document is the key moment to reset this state. Does testing with other browsers confirm they follow that rule?

&gt; Source/WebCore/dom/Element.cpp:2043
&gt; +    if (point == IntPoint::zero())
&gt; +        return;

This is incorrect for overwriting stored scroll position with zero. Instead it should read:

    if (point == IntPoint::zero() &amp;&amp; !hasRareData())

&gt; Source/WebCore/dom/Element.cpp:2051
&gt; +void Element::resetsavedLayerScrolledPosition()
&gt; +{
&gt; +    if (hasRareData())
&gt; +        rareData()-&gt;m_scrolledPosition = IntPoint::zero();
&gt; +}

Please delete this poorly named and unneeded function.

&gt; Source/WebCore/dom/Element.h:369
&gt; +    IntPoint savedLayerScrolledPosition() const;
&gt; +    void saveLayerScrolledPosition(const IntPoint&amp;);

I don’t think “scrolled position” is as good as “scroll position”. I think a more traditional “set” naming here would be slightly better:

    IntPoint savedLayerScrollPosition() const;
    void setSavedLayerScrollPosition(const IntPoint&amp;);

Another option is to do something closer to what RenderLayer actually needs:

    IntSize savedLayerScrollOffset() const;
    void setSavedLayerScrollOffset(const IntSize&amp;);

Either would be OK.

&gt; Source/WebCore/dom/Element.h:370
&gt; +    void resetsavedLayerScrolledPosition();

The s in “saved” should be capitalized, but it would be better to just delete this function.

&gt; Source/WebCore/dom/ElementRareData.h:55
&gt; +    IntPoint m_scrolledPosition;

This should be named:

    IntPoint m_savedLayerScrollPosition;

Or:

    IntSize m_savedLayerScrollOffset;

&gt; Source/WebCore/rendering/RenderLayer.cpp:200
&gt; +        // We save and restore only the scrollOffset as the other scroll
&gt; +        // values are recalulated.

Would read better on a single line.

&gt; Source/WebCore/rendering/RenderLayer.cpp:1396
&gt; -    
&gt; +

Remove this unneeded whitespace change. For one thing, it will cause a merge conflict that otherwise would not occur.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524495</commentid>
    <comment_count>49</comment_count>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2011-12-20 02:03:44 -0800</bug_when>
    <thetext>(In reply to comment #48)
Thanks for reviewing this.

&gt; This should just be:
&gt; 
&gt;     saveLayerScrolledPosition(IntPoint::zero());
&gt; 
&gt; To me, this is still a bit suspect. I don’t understand why removal from the document is the key moment to reset this state. Does testing with other browsers confirm they follow that rule?

Firefox and IE does reset the scroll position when moved within document or to other document. Opera does only when element is moved to other document.

&gt; This is incorrect for overwriting stored scroll position with zero. Instead it should read:
&gt; 
&gt;     if (point == IntPoint::zero() &amp;&amp; !hasRareData())
&gt; 
Agreed.

&gt;     IntSize savedLayerScrollOffset() const;
&gt;     void setSavedLayerScrollOffset(const IntSize&amp;);
&gt; 
&gt; Either would be OK.

&gt; This should be named:
&gt; 
&gt;     IntPoint m_savedLayerScrollPosition;
&gt; 
&gt; Or:
&gt; 
&gt;     IntSize m_savedLayerScrollOffset;
&gt; 

Using scroll offset looks better.

&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:200
&gt; &gt; +        // We save and restore only the scrollOffset as the other scroll
&gt; &gt; +        // values are recalulated.
&gt; 
&gt; Would read better on a single line.

Ok.

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:1396
&gt; &gt; -    
&gt; &gt; +
&gt; 
&gt; Remove this unneeded whitespace change. For one thing, it will cause a merge conflict that otherwise would not occur.

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524598</commentid>
    <comment_count>50</comment_count>
      <attachid>120026</attachid>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2011-12-20 07:14:15 -0800</bug_when>
    <thetext>Created attachment 120026
Updated patch

Changes as per comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527903</commentid>
    <comment_count>51</comment_count>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2011-12-29 06:08:08 -0800</bug_when>
    <thetext>(In reply to comment #50)
&gt; Created an attachment (id=120026) [details]
&gt; Updated patch
&gt; 
&gt; Changes as per comments

Darin, can you please have a look at this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579100</commentid>
    <comment_count>52</comment_count>
      <attachid>120026</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-03-14 20:55:29 -0700</bug_when>
    <thetext>Comment on attachment 120026
Updated patch

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

Unfortunately Darin didn&apos;t comment on the latest patch and it fell off my radar. The patch has unfortunately rotten and would need to be rebaselined on ToT.

&gt; Source/WebCore/ChangeLog:12
&gt; +        Resetting the saved scroll offset if node is moved to other location in same document or other document.

Darin asked about that in his latest review. Does it match the other browsers here?

&gt; Source/WebCore/rendering/RenderLayer.cpp:199
&gt; +        // We save and restore only the scrollOffset as the other scroll values are recalulated.

recalculated</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583046</commentid>
    <comment_count>53</comment_count>
      <attachid>132823</attachid>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2012-03-20 07:20:39 -0700</bug_when>
    <thetext>Created attachment 132823
patch_rebaselined_tot

Updated patch on tot with typo fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583052</commentid>
    <comment_count>54</comment_count>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2012-03-20 07:29:18 -0700</bug_when>
    <thetext>(In reply to comment #52)
&gt; (From update of attachment 120026 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=120026&amp;action=review
&gt; 
&gt; Unfortunately Darin didn&apos;t comment on the latest patch and it fell off my radar. The patch has unfortunately rotten and would need to be rebaselined on ToT.
&gt; 

Thanks for having a look.

&gt; &gt; Source/WebCore/ChangeLog:12
&gt; &gt; +        Resetting the saved scroll offset if node is moved to other location in same document or other document.
&gt; 
&gt; Darin asked about that in his latest review. Does it match the other browsers here?

Yes, other browsers do reset, I mentioned about that in my comment. Was something else expected?

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:199
&gt; &gt; +        // We save and restore only the scrollOffset as the other scroll values are recalulated.
&gt; 
&gt; recalculated

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588825</commentid>
    <comment_count>55</comment_count>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2012-03-27 06:36:52 -0700</bug_when>
    <thetext>Julien, can you please review this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589275</commentid>
    <comment_count>56</comment_count>
      <attachid>132823</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-03-27 14:19:26 -0700</bug_when>
    <thetext>Comment on attachment 132823
patch_rebaselined_tot

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

(In reply to comment #55)
&gt; Julien, can you please review this patch.

Sorry, the patch slipped through my emails. I redid the testing and found quite different supports (using the attached test case):
* IE9 doesn&apos;t support resetting the scroll offset.
* Opera doesn&apos;t clear the scroll position when moved between documents or inside the same document.
* FF matches our implementation.

It seems like a desirable change but I would like the ChangeLog updated to underline that we are chosing to match Firefox here.

&gt; Source/WebCore/rendering/RenderLayer.cpp:221
&gt; +    Node* node = m_renderer-&gt;node();
&gt; +    if (node &amp;&amp; node-&gt;isElementNode())
&gt; +        toElement(node)-&gt;setSavedLayerScrollOffset(m_scrollOffset);

This should be guarded by !m_renderer-&gt;documentBeingDestroyed() as we don&apos;t want to allocate extra rare data on document destruction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589825</commentid>
    <comment_count>57</comment_count>
      <attachid>134258</attachid>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2012-03-28 03:54:01 -0700</bug_when>
    <thetext>Created attachment 134258
Updated patch

Modified changelogs to specify behaviour similar to Firefox, Added documentBeingDestroyed check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591620</commentid>
    <comment_count>58</comment_count>
      <attachid>134258</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-03-29 15:16:01 -0700</bug_when>
    <thetext>Comment on attachment 134258
Updated patch

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

Very close but the ChangeLog really doesn&apos;t cut it.

&gt; Source/WebCore/ChangeLog:7
&gt; +        Maintain the scrolled position of overflowing element when the scrollable RenderLayer is destroyed,
&gt; +        which can be used to restore the scroll position if the same element is again added to the render tree.

Explaining where you store the offset would be neat (in the ElementRareData as we don&apos;t expect this to happen a lot).

&gt; Source/WebCore/ChangeLog:8
&gt; +        We are matching Firefox&apos;s behaviour.

This would definitely use more context here as this doesn&apos;t give much. For example, what&apos;s the difference with the other browsers? Think of someone watching the commit at home who doesn&apos;t know the gory details.

&gt; Source/WebCore/ChangeLog:16
&gt; +        Resetting the saved scroll offset if node is moved to other location in same document or other document.

We usually prefer ChangeLog to be written in good English. Here it feels weird even to my foreigner&apos;s ear due to missing some words. A better writing would be:

Reset the saved scroll offset if the node is moved to another location in the same document or another one.

&gt; Source/WebCore/ChangeLog:21
&gt; +        Helper functions for accessing layer scroll offset from rare data.

Add helper functions to access the layer scroll offset from the element&apos;s rare data.

&gt; Source/WebCore/ChangeLog:25
&gt; +        Maintain the scroll offset.

Add the scroll offset book-keeping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592102</commentid>
    <comment_count>59</comment_count>
      <attachid>134793</attachid>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2012-03-30 05:51:47 -0700</bug_when>
    <thetext>Created attachment 134793
Updated patch

Addressing review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592104</commentid>
    <comment_count>60</comment_count>
      <attachid>134794</attachid>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2012-03-30 05:55:17 -0700</bug_when>
    <thetext>Created attachment 134794
Test moving of element

Test for element moving element with same document and another one. Works with IE too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592106</commentid>
    <comment_count>61</comment_count>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2012-03-30 05:59:41 -0700</bug_when>
    <thetext>(In reply to comment #56)
&gt; (From update of attachment 132823 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=132823&amp;action=review
&gt; 
&gt; (In reply to comment #55)
&gt; &gt; Julien, can you please review this patch.
&gt; 
&gt; Sorry, the patch slipped through my emails. I redid the testing and found quite different supports (using the attached test case):
&gt; * IE9 doesn&apos;t support resetting the scroll offset.

It does, I think some timing issues in IE when the layout test is run. I tested with &quot;Test moving of element &quot; uploaded and it resets in both the cases.

&gt; * Opera doesn&apos;t clear the scroll position when moved between documents or inside the same document.
Opera reset when moved to another document.


(In reply to comment #58)
&gt; (From update of attachment 134258 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=134258&amp;action=review

Thanks for r+

&gt; 
&gt; Very close but the ChangeLog really doesn&apos;t cut it.
Modified with your inputs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593570</commentid>
    <comment_count>62</comment_count>
      <attachid>134793</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-04-02 10:17:46 -0700</bug_when>
    <thetext>Comment on attachment 134793
Updated patch

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

I will fix the ChangeLog this time as it will be faster.

&gt; Source/WebCore/ChangeLog:8
&gt; +        RenderLayer is destroyed, which can be used to restore the scroll position if the same element is 
&gt; +        again added to the render tree.

That&apos;s not exact: a RenderObject can lose its RenderLayer without being removed from the tree. The example is toggling overflow: hidden to overflow: visible (as in your test).

&gt; Source/WebCore/ChangeLog:10
&gt; +        Webkit behaviour will be same as Firefox and IE. It differs from Opera in a way that Opera does 

Web*K*it.

&gt; Source/WebCore/ChangeLog:34
&gt; +        Storing the scroll offset if document is not being destroyed.

Normally we want the ChangeLog to be consistent. So here it should be:

Store the scroll offset if *the* document is not being destroyed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593574</commentid>
    <comment_count>63</comment_count>
      <attachid>135127</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-04-02 10:28:52 -0700</bug_when>
    <thetext>Created attachment 135127
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593697</commentid>
    <comment_count>64</comment_count>
      <attachid>135127</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-02 12:38:14 -0700</bug_when>
    <thetext>Comment on attachment 135127
Patch for landing

Clearing flags on attachment: 135127

Committed r112919: &lt;http://trac.webkit.org/changeset/112919&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593698</commentid>
    <comment_count>65</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-02 12:38:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594214</commentid>
    <comment_count>66</comment_count>
    <who name="Rakesh">rakeshchaitan</who>
    <bug_when>2012-04-02 22:47:07 -0700</bug_when>
    <thetext>(In reply to comment #62)

Thanks for your inputs and efforts for landing this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649356</commentid>
    <comment_count>67</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-06-14 11:57:09 -0700</bug_when>
    <thetext>This caused bug 89114.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>116027</attachid>
            <date>2011-11-20 21:48:50 -0800</date>
            <delta_ts>2011-11-20 21:48:50 -0800</delta_ts>
            <desc>Scroll Bug</desc>
            <filename>scroll-bug.html</filename>
            <type>text/html</type>
            <size>595</size>
            <attacher name="Naveen Bobbili">naveenbobbili</attacher>
            
              <data encoding="base64">PGh0bWw+DQo8aGVhZD4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCglmdW5jdGlv
biBoaWRlU2hvdygpew0KCQl2YXIgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluIik7
DQoJCWUuc3R5bGUuZGlzcGxheSA9IChlLnN0eWxlLmRpc3BsYXkgPT0gJ2Jsb2NrJykgPyAnbm9u
ZScgOiAnYmxvY2snOw0KCX0NCjwvc2NyaXB0Pg0KPC9oZWFkPg0KPGJvZHk+DQo8aW5wdXQgdHlw
ZT0iYnV0dG9uIiBvbmNsaWNrPSJoaWRlU2hvdygpOyIgdmFsdWU9IkhJREUvU0hPVyIvPg0KPGRp
diBzdHlsZT0iaGVpZ2h0OjEwMHB4OyBvdmVyZmxvdzogc2Nyb2xsOyBkaXNwbGF5OiBibG9jazsi
IGlkPSJtYWluIj4NCgk8ZGl2Pg0KCQlsaW5lIDEgPGJyLz4NCgkJbGluZSAyIDxici8+DQoJCWxp
bmUgMyA8YnIvPg0KCQlsaW5lIDQgPGJyLz4NCgkJbGluZSA1IDxici8+DQoJCWxpbmUgNiA8YnIv
Pg0KCQlsaW5lIDcgPGJyLz4NCgkJbGluZSA4IDxici8+DQoJCWxpbmUgOSA8YnIvPg0KCQlsaW5l
IDEwIDxici8+DQoJCWxpbmUgMTEgPGJyLz4NCgkJbGluZSAxMiA8YnIvPg0KCTwvZGl2Pg0KPC9k
aXY+DQoNCg0KPC9ib2R5Pg0KPC9odG1sPg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116563</attachid>
            <date>2011-11-24 22:39:55 -0800</date>
            <delta_ts>2011-11-30 05:44:25 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-72852-20111125120348.patch</filename>
            <type>text/plain</type>
            <size>8307</size>
            <attacher name="Rakesh">rakeshchaitan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMTE0NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDExLTExLTI0ICBSYWtlc2gg
S04gIDxyYWtlc2gua25AbW90b3JvbGEuY29tPgorCisgICAgICAgIFNjcm9sbCBwb3NpdGlvbiBp
cyBsb3N0IGFmdGVyIGhpZGUvc2hvdyBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjg1MgorCisgICAgICAgIE1haW50YWluIHRoZSBzY3Jv
bGwgcG9zaXRpb24gb2Ygb3ZlcmZsb3cgZWxlbWVudCB3aGVuIHRoZSBzY3JvbGxhYmxlIHJlbmRl
cmxheWVyIGlzIGJlaW5nIGRyb3BwZWQsCisgICAgICAgIHdoaWNoIGNhbiBiZSB1c2VkIHRvIHJl
c3RvcmUgdGhlIHNjcm9sbCBwb3NpdGlvbiBpZiBzYW1lIG5vZGUgaXMgYWdhaW4gYWRkZWQgdG8g
cmVuZGVyIHRyZWUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdDogZmFzdC9vdmVyZmxvdy9zY3JvbGwtZGl2LWhpZGUtc2hvdy5odG1sCisKKyAg
ICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6YWRkU2Nyb2xs
YWJsZU5vZGVQb2ludCk6CisgICAgICAgIEhlbHBlciBmdW5jdGlvbiBmb3IgSGFzaG1hcCBvZiBz
Y3JvbGxhYmxlIG5vZGUgYW5kIHNjcm9sbCBwb3NpdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2U6OnJlbW92ZVNjcm9sbGFibGVOb2RlUG9pbnQpOgorICAgICAgICBEaXR0bworICAgICAgICAo
V2ViQ29yZTo6UGFnZTo6Y29udGFpbnNTY3JvbGxhYmxlTm9kZVBvaW50KToKKyAgICAgICAgRGl0
dG8KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmdldFNjcm9sbGFibGVOb2RlUG9pbnQpOgorICAg
ICAgICBEaXR0bworICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICBEaXR0bworICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllcjo6flJlbmRlckxheWVyKToKKyAgICAgICAgQWRkIGFuIHNjcm9sbGFibGUgbGF5ZXJzIHNj
cm9sbCBwb3NpdGlvbiBpbnRvIG1hcAorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNj
cm9sbFRvT2Zmc2V0KToKKyAgICAgICAgSWYgdGhlIG5vZGUgb2YgUmVuZGVyZXIgYXNzb2NpYXRl
ZCB3aXRoIHRoaXMgbGF5ZXIgaXMgcHJlc2VudCBpbiB0aGUgbWFwLAorICAgICAgICBzZXQgdGhl
IHNjcm9sbG9mZnNldCB0byB0aGUgcHJldmlvdXMgc2Nyb2xsIHBvc2l0aW9uIG1haW50YWluZWQg
aW4gdGhlIG1hcC4KKwogMjAxMS0xMS0yNCAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBbQ01ha2VdIEJ1aWxkIGZpeCBmb3IgTk9UIEVOQUJMRV9XRUJf
U09DS0VUUy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAkocmV2aXNpb24gMTAwODkzKQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAyMyw2ICsxMDIz
LDM1IEBAIGJvb2wgUGFnZTo6Y29udGFpbnNTY3JvbGxhYmxlQXJlYShTY3JvbGwKICAgICByZXR1
cm4gbV9zY3JvbGxhYmxlQXJlYVNldC0+Y29udGFpbnMoc2Nyb2xsYWJsZUFyZWEpOwogfQogCit2
b2lkIFBhZ2U6OmFkZFNjcm9sbGFibGVOb2RlUG9pbnQoTm9kZSogbm9kZSwgSW50UG9pbnQgcG9p
bnQpCit7CisgICAgaWYgKCFtX3Njcm9sbGFibGVOb2RlTWFwKQorICAgICAgICBtX3Njcm9sbGFi
bGVOb2RlTWFwID0gYWRvcHRQdHIobmV3IFNjcm9sbGFibGVOb2RlU2Nyb2xsUG9pbnRNYXApOwor
ICAgIG1fc2Nyb2xsYWJsZU5vZGVNYXAtPmFkZChub2RlLCBwb2ludCk7Cit9CisKK3ZvaWQgUGFn
ZTo6cmVtb3ZlU2Nyb2xsYWJsZU5vZGVQb2ludChOb2RlKiBub2RlKQoreworICAgIGlmICghbV9z
Y3JvbGxhYmxlTm9kZU1hcCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fc2Nyb2xsYWJsZU5vZGVN
YXAtPnJlbW92ZShub2RlKTsKK30KKworYm9vbCBQYWdlOjpjb250YWluc1Njcm9sbGFibGVOb2Rl
UG9pbnQoTm9kZSogbm9kZSkgY29uc3QKK3sKKyAgICBpZiAoIW1fc2Nyb2xsYWJsZU5vZGVNYXAp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gbV9zY3JvbGxhYmxlTm9kZU1hcC0+
Y29udGFpbnMobm9kZSk7Cit9CisKK0ludFBvaW50IFBhZ2U6OmdldFNjcm9sbGFibGVOb2RlUG9p
bnQoTm9kZSogbm9kZSkgY29uc3QKK3sKKyAgICBpZiAoIW1fc2Nyb2xsYWJsZU5vZGVNYXApCisg
ICAgICAgIHJldHVybiBJbnRQb2ludCgpOworCisgICAgcmV0dXJuIG1fc2Nyb2xsYWJsZU5vZGVN
YXAtPmdldChub2RlKTsKK30KKwogI2lmICFBU1NFUlRfRElTQUJMRUQKIHZvaWQgUGFnZTo6Y2hl
Y2tGcmFtZUNvdW50Q29uc2lzdGVuY3koKSBjb25zdAogewpJbmRleDogU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgJKHJl
dmlzaW9uIDEwMDg5MykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNs
dWRlICJWaWV3cG9ydEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZS5oPgogCkBAIC0zMTUsNiArMzE2LDEyIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgYm9vbCBjb250YWluc1Njcm9sbGFibGVBcmVhKFNjcm9sbGFibGVBcmVh
KikgY29uc3Q7CiAgICAgICAgIGNvbnN0IFNjcm9sbGFibGVBcmVhU2V0KiBzY3JvbGxhYmxlQXJl
YVNldCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWFTZXQuZ2V0KCk7IH0KIAorICAg
ICAgICB0eXBlZGVmIEhhc2hNYXA8Tm9kZSosIEludFBvaW50PiBTY3JvbGxhYmxlTm9kZVNjcm9s
bFBvaW50TWFwOworICAgICAgICB2b2lkIGFkZFNjcm9sbGFibGVOb2RlUG9pbnQoTm9kZSosIElu
dFBvaW50KTsKKyAgICAgICAgSW50UG9pbnQgZ2V0U2Nyb2xsYWJsZU5vZGVQb2ludChOb2RlKikg
Y29uc3Q7CisgICAgICAgIHZvaWQgcmVtb3ZlU2Nyb2xsYWJsZU5vZGVQb2ludChOb2RlKik7Cisg
ICAgICAgIGJvb2wgY29udGFpbnNTY3JvbGxhYmxlTm9kZVBvaW50KE5vZGUqKSBjb25zdDsKKwog
ICAgICAgICAvLyBEb24ndCBhbGxvdyBtb3JlIHRoYW4gYSBjZXJ0YWluIG51bWJlciBvZiBmcmFt
ZXMgaW4gYSBwYWdlLgogICAgICAgICAvLyBUaGlzIHNlZW1zIGxpa2UgYSByZWFzb25hYmxlIHVw
cGVyIGJvdW5kLCBhbmQgb3RoZXJ3aXNlIG11dHVhbGx5CiAgICAgICAgIC8vIHJlY3Vyc2l2ZSBm
cmFtZXNldCBwYWdlcyBjYW4gcXVpY2tseSBicmluZyB0aGUgcHJvZ3JhbSB0byBpdHMga25lZXMK
QEAgLTQzMiw2ICs0MzksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgT3duUHRy
PFNjcm9sbGFibGVBcmVhU2V0PiBtX3Njcm9sbGFibGVBcmVhU2V0OwogCisgICAgICAgIE93blB0
cjxTY3JvbGxhYmxlTm9kZVNjcm9sbFBvaW50TWFwPiBtX3Njcm9sbGFibGVOb2RlTWFwOworCiAg
ICAgICAgIGJvb2wgbV9pc0VkaXRhYmxlOwogCiAjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9B
UEkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJKHJldmlz
aW9uIDEwMDg5MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIwMiw4ICsyMDIsMTAgQEAgUmVuZGVyTGF5ZXI6On5SZW5kZXJM
YXllcigpCiAgICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPnJlc2l6ZUxheWVyRGVz
dHJveWVkKCk7CiAgICAgfQogCi0gICAgaWYgKG1fc2Nyb2xsYWJsZUFyZWFQYWdlKQorICAgIGlm
IChtX3Njcm9sbGFibGVBcmVhUGFnZSkgewogICAgICAgICBtX3Njcm9sbGFibGVBcmVhUGFnZS0+
cmVtb3ZlU2Nyb2xsYWJsZUFyZWEodGhpcyk7CisgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWFQYWdl
LT5hZGRTY3JvbGxhYmxlTm9kZVBvaW50KG1fcmVuZGVyZXItPm5vZGUoKSwgc2Nyb2xsUG9zaXRp
b24oKSk7CisgICAgfQogCiAgICAgZGVzdHJveVNjcm9sbGJhcihIb3Jpem9udGFsU2Nyb2xsYmFy
KTsKICAgICBkZXN0cm95U2Nyb2xsYmFyKFZlcnRpY2FsU2Nyb2xsYmFyKTsKQEAgLTEzNjgsNyAr
MTM3MCwxMyBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxCeVJlY3Vyc2l2ZWx5KExhCiAKIHZv
aWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0KExheW91dFVuaXQgeCwgTGF5b3V0VW5pdCB5
LCBTY3JvbGxPZmZzZXRDbGFtcGluZyBjbGFtcCkKIHsKLSAgICBpZiAoY2xhbXAgPT0gU2Nyb2xs
T2Zmc2V0Q2xhbXBlZCkgeworICAgIE5vZGUqIG5vZGUgPSByZW5kZXJlcigpLT5ub2RlKCk7Cisg
ICAgaWYgKG5vZGUgJiYgbV9zY3JvbGxhYmxlQXJlYVBhZ2UgJiYgbV9zY3JvbGxhYmxlQXJlYVBh
Z2UtPmNvbnRhaW5zU2Nyb2xsYWJsZU5vZGVQb2ludChub2RlKSkgeworICAgICAgICBJbnRQb2lu
dCBwb2ludCA9IG1fc2Nyb2xsYWJsZUFyZWFQYWdlLT5nZXRTY3JvbGxhYmxlTm9kZVBvaW50KG5v
ZGUpOworICAgICAgICB4ID0gcG9pbnQueCgpOworICAgICAgICB5ID0gcG9pbnQueSgpOworICAg
ICAgICBtX3Njcm9sbGFibGVBcmVhUGFnZS0+cmVtb3ZlU2Nyb2xsYWJsZU5vZGVQb2ludChub2Rl
KTsKKyAgICB9IGVsc2UgaWYgKGNsYW1wID09IFNjcm9sbE9mZnNldENsYW1wZWQpIHsKICAgICAg
ICAgUmVuZGVyQm94KiBib3ggPSByZW5kZXJCb3goKTsKICAgICAgICAgaWYgKCFib3gpCiAgICAg
ICAgICAgICByZXR1cm47CkBAIC0xMzc5LDcgKzEzODcsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpz
Y3JvbGxUb09mZnNldChMYXlvdXRVCiAgICAgICAgIHggPSBtaW4obWF4PExheW91dFVuaXQ+KHgs
IDApLCBtYXhYKTsKICAgICAgICAgeSA9IG1pbihtYXg8TGF5b3V0VW5pdD4oeSwgMCksIG1heFkp
OwogICAgIH0KLSAgICAKKwogICAgIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhv
dXRBbmltYXRpb24oTGF5b3V0UG9pbnQoeCwgeSkpOwogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAx
MDExNDcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxNiBAQAorMjAxMS0xMS0yNCAgUmFrZXNoIEtOICA8cmFrZXNoLmtuQG1vdG9yb2xhLmNvbT4K
KworICAgICAgICBTY3JvbGwgcG9zaXRpb24gaXMgbG9zdCBhZnRlciBoaWRlL3Nob3cgZWxlbWVu
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4NTIK
KworICAgICAgICBNYWludGFpbiB0aGUgc2Nyb2xsIHBvc2l0aW9uIG9mIG92ZXJmbG93IGVsZW1l
bnQgd2hlbiB0aGUgc2Nyb2xsYWJsZSByZW5kZXJsYXllciBpcyBiZWluZyBkcm9wcGVkLAorICAg
ICAgICB3aGljaCBjYW4gYmUgdXNlZCB0byByZXN0b3JlIHRoZSBzY3JvbGwgcG9zaXRpb24gaWYg
c2FtZSBub2RlIGlzIGFnYWluIGFkZGVkIHRvIHJlbmRlciB0cmVlLgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9vdmVyZmxvdy9zY3JvbGwt
ZGl2LWhpZGUtc2hvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvb3ZlcmZs
b3cvc2Nyb2xsLWRpdi1oaWRlLXNob3cuaHRtbDogQWRkZWQuCisKIDIwMTEtMTEtMjQgIEFya28g
U2FoYSAgPGFya29AbW90b3JvbGEuY29tPgogCiAgICAgICAgIE1pY3JvZGF0YTogU3VwcG9ydCBm
b3IgcHJvcGVydGllcyBhdHRyaWJ1dGUuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93
L3Njcm9sbC1kaXYtaGlkZS1zaG93LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L292ZXJmbG93L3Njcm9sbC1kaXYtaGlkZS1zaG93LWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNo
b3ctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIyIEBACitTY3JvbGxlZCBw
b3NpdGlvbiBzaG91bGQgYmUgcmVzdG9yZWQgd2hlbiB0aGUgZGl2IGlzIGhpZGRlbiBhbmQgc2hv
d24gYWdhaW4KKworbGluZSAxIAorbGluZSAyIAorbGluZSAzIAorbGluZSA0IAorbGluZSA1IAor
bGluZSA2IAorbGluZSA3IAorbGluZSA4IAorbGluZSA5IAorbGluZSAxMCAKK2xpbmUgMTEgCits
aW5lIDEyIAorRGl2J3MgZGlzcGxheSBpcyBub25lIG5vdworUEFTUyBlLnNjcm9sbFRvcCBpcyAw
CitEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluCitQQVNTIGUuc2Nyb2xsVG9wIGlzIDEwMAor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNob3cuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9sbC1kaXYtaGlkZS1zaG93
Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9sbC1k
aXYtaGlkZS1zaG93Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQg
c3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cD5TY3JvbGxlZCBwb3NpdGlvbiBzaG91bGQgYmUgcmVzdG9yZWQgd2hlbiB0aGUg
ZGl2IGlzIGhpZGRlbiBhbmQgc2hvd24gYWdhaW48L3A+Cis8ZGl2IHN0eWxlPSJoZWlnaHQ6MTAw
cHg7IG92ZXJmbG93OiBzY3JvbGw7IGRpc3BsYXk6IGJsb2NrOyIgaWQ9Im1haW4iPgorICAgIGxp
bmUgMSA8YnIvPgorICAgIGxpbmUgMiA8YnIvPgorICAgIGxpbmUgMyA8YnIvPgorICAgIGxpbmUg
NCA8YnIvPgorICAgIGxpbmUgNSA8YnIvPgorICAgIGxpbmUgNiA8YnIvPgorICAgIGxpbmUgNyA8
YnIvPgorICAgIGxpbmUgOCA8YnIvPgorICAgIGxpbmUgOSA8YnIvPgorICAgIGxpbmUgMTAgPGJy
Lz4KKyAgICBsaW5lIDExIDxici8+CisgICAgbGluZSAxMiA8YnIvPgorPC9kaXY+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJtYWluIik7CitpZiAoZS5zdHlsZS5kaXNwbGF5ID09ICdibG9jaycpCisgICAgZS5zY3Jv
bGxUb3AgPSAxMDA7CitlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CitkZWJ1ZygiRGl2J3MgZGlz
cGxheSBpcyBub25lIG5vdyIpOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzAnKTsKKworZS5z
dHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFn
YWluIik7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMTAwJyk7CisKK3N1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>116900</attachid>
            <date>2011-11-28 22:41:39 -0800</date>
            <delta_ts>2011-11-28 22:41:39 -0800</delta_ts>
            <desc>Test case if height/rows are increased.</desc>
            <filename>div-hide.html</filename>
            <type>text/html</type>
            <size>1096</size>
            <attacher name="Rakesh">rakeshchaitan</attacher>
            
              <data encoding="base64">CjxodG1sPgoKPGhlYWQ+Cgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgogICAgZnVu
Y3Rpb24gaGlkZVNob3coKSB7CiAgICAgICAgdmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgibWFpbiIpOwogICAgICAgIGUuc3R5bGUuZGlzcGxheSA9IChlLnN0eWxlLmRpc3BsYXkgPT0g
J2Jsb2NrJykgPyAnbm9uZScgOiAnYmxvY2snOwogICAgfQoKICAgIGZ1bmN0aW9uIGNoYW5nZUhl
aWdodCgpIHsKICAgICAgICB2YXIgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluIik7
CiAgICAgICAgZS5zdHlsZS5oZWlnaHQgPScxNTBweCc7CiAgICB9CgogICAgZnVuY3Rpb24gYWRk
Um93cygpIHsKICAgICAgICB2YXIgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluIik7
CiAgICAgICAgZS5pbm5lckhUTUwgKz0gIiAgICBsaW5lIDEzIDxici8+IGxpbmUgMTQgPGJyLz4g
bGluZSAxNSA8YnIvPiAgbGluZSAxNiA8YnIvPiAgbGluZSAxNyA8YnIvPiI7CiAgICB9Cgo8L3Nj
cmlwdD4KCjwvaGVhZD4KCjxib2R5PgoKPGlucHV0IHR5cGU9ImJ1dHRvbiIgb25jbGljaz0iaGlk
ZVNob3coKTsiIHZhbHVlPSJISURFL1NIT1ciLz4KPGlucHV0IHR5cGU9ImJ1dHRvbiIgb25jbGlj
az0iY2hhbmdlSGVpZ2h0KCk7IiB2YWx1ZT0iY2hhbmdlIGhlaWdodCIvPgo8aW5wdXQgdHlwZT0i
YnV0dG9uIiBvbmNsaWNrPSJhZGRSb3dzKCk7IiB2YWx1ZT0iQWRkIHJvd3MiLz4KPGRpdiBzdHls
ZT0iaGVpZ2h0OjEwMHB4OyBvdmVyZmxvdzogc2Nyb2xsOyBkaXNwbGF5OiBibG9jazsiIGlkPSJt
YWluIj4KCiAgICAgICAgbGluZSAxIDxici8+CgogICAgICAgIGxpbmUgMiA8YnIvPgoKICAgICAg
ICBsaW5lIDMgPGJyLz4KCiAgICAgICAgbGluZSA0IDxici8+CgogICAgICAgIGxpbmUgNSA8YnIv
PgoKICAgICAgICBsaW5lIDYgPGJyLz4KCiAgICAgICAgbGluZSA3IDxici8+CgogICAgICAgIGxp
bmUgOCA8YnIvPgoKICAgICAgICBsaW5lIDkgPGJyLz4KCiAgICAgICAgbGluZSAxMCA8YnIvPgoK
ICAgICAgICBsaW5lIDExIDxici8+CgogICAgICAgIGxpbmUgMTIgPGJyLz4KCjwvZGl2Pgo8L2Jv
ZHk+Cgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117176</attachid>
            <date>2011-11-30 05:44:45 -0800</date>
            <delta_ts>2011-11-30 23:54:23 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-72852-20111130190847.patch</filename>
            <type>text/plain</type>
            <size>10811</size>
            <attacher name="Rakesh">rakeshchaitan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMTQ5NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDExLTExLTMwICBSYWtlc2gg
S04gIDxyYWtlc2gua25AbW90b3JvbGEuY29tPgorCisgICAgICAgIFNjcm9sbCBwb3NpdGlvbiBp
cyBsb3N0IGFmdGVyIGhpZGUvc2hvdyBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjg1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1haW50YWluIHRoZSBzY3JvbGwgcG9zaXRpb24gb2Ygb3Zl
cmZsb3cgZWxlbWVudCB3aGVuIHRoZSBzY3JvbGxhYmxlIHJlbmRlcmxheWVyIGlzIGJlaW5nIGRy
b3BwZWQsCisgICAgICAgIHdoaWNoIGNhbiBiZSB1c2VkIHRvIHJlc3RvcmUgdGhlIHNjcm9sbCBw
b3NpdGlvbiBpZiBzYW1lIG5vZGUgaXMgYWdhaW4gYWRkZWQgdG8gcmVuZGVyIHRyZWUuIAorCisg
ICAgICAgIFRlc3Q6IGZhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNob3cuaHRtbAorCisg
ICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojph
ZGRTY3JvbGxhYmxlTm9kZVBvaW50KToKKyAgICAgICAgSGVscGVyIGZ1bmN0aW9uIGZvciBIYXNo
bWFwIG9mIHNjcm9sbGFibGUgbm9kZSBhbmQgc2Nyb2xsIHBvc2l0aW9uLgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OnJlbW92ZVNjcm9sbGFibGVOb2RlUG9pbnQpOgorICAgICAgICBEaXR0
bworICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNvbnRhaW5zU2Nyb2xsYWJsZU5vZGVQb2lu
dCk6CisgICAgICAgIERpdHRvCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Z2V0U2Nyb2xs
YWJsZU5vZGVQb2ludCk6CisgICAgICAgIERpdHRvCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6
CisgICAgICAgIEFkZCBhIG5ldyBtZW1iZXIgbV9zY3JvbGxhYmxlTm9kZU1hcC4KKyAgICAgICAg
KiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjp+Tm9kZSk6CisgICAgICAg
IFJlbW92aW5nIHRoZSByZWZlcmVuY2Ugb2YgdGhpcyBOb2RlIGZyb20gdGhlIE1hcC4KKyAgICAg
ICAgKFdlYkNvcmU6Ok5vZGU6OnNldERvY3VtZW50KToKKyAgICAgICAgUmVtb3ZpbmcgdGhlIHJl
ZmVyZW5jZSBvZiB0aGlzIE5vZGUgZnJvbSB0aGUgTWFwLgorICAgICAgICAqIGRvbS9Ob2RlLmg6
CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjppc1Njcm9sbGFibGVOb2RlKToKKyAgICAgICAgSGVs
cGVyIGZ1bmN0aW9uIGZvciBTY3JvbGxhYmxlIGZsYWcKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6
OnNldFNjcm9sbGFibGVOb2RlKToKKyAgICAgICAgSGVscGVyIGZ1bmN0aW9uIGZvciBTY3JvbGxh
YmxlIGZsYWcKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXI6On5SZW5kZXJMYXllcik6CisgICAgICAgIEFkZCBhbiBzY3Jv
bGxhYmxlIGxheWVycyBzY3JvbGwgcG9zaXRpb24gaW50byBtYXAKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldCk6CisgICAgICAgIElmIHRoZSBub2RlIG9mIFJl
bmRlcmVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGxheWVyIGlzIHByZXNlbnQgaW4gdGhlIG1hcCwK
KyAgICAgICAgc2V0IHRoZSBzY3JvbGxvZmZzZXQgdG8gdGhlIHByZXZpb3VzIHNjcm9sbCBwb3Np
dGlvbiBtYWludGFpbmVkIGluIHRoZSBtYXAuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6c3R5bGVDaGFuZ2VkKToKKyAgICAgICAgUmVtb3ZlIHRoZSBzdG9yZWQgbG9jYXRpb24gb2Yg
dGhlIE5vZGUgaWYgY2hhbmdlZCBzdHlsZSBkb2VzIG5vdCBoYXZlIG92ZXJmbG93LgorCiAyMDEx
LTExLTMwICBNaWNoYWVsIE5vcmRtYW4gIDxtaWNoYWVsbkBnb29nbGUuY28+CiAKICAgICAgICAg
W2Nocm9taXVtXSBXZWJTUUxEYXRhYmFzZSBjb3VsZCB1c2Ugc29tZSBiZXR0ZXIgZXJyb3IgcmVw
b3J0aW5nLgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAxMDEzNTQpCisr
KyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MTUz
LDYgKzUxNTMsMzcgQEAgRG9jdW1lbnRMb2FkZXIqIERvY3VtZW50Ojpsb2FkZXIoKSBjb25zdAog
ICAgIHJldHVybiBsb2FkZXI7CiB9CiAKK3ZvaWQgRG9jdW1lbnQ6OmFkZFNjcm9sbGFibGVOb2Rl
UG9pbnQoTm9kZSogbm9kZSwgSW50UG9pbnQgcG9pbnQpCit7CisgICAgaWYgKCFtX3Njcm9sbGFi
bGVOb2RlTWFwKQorICAgICAgICBtX3Njcm9sbGFibGVOb2RlTWFwID0gYWRvcHRQdHIobmV3IFNj
cm9sbGFibGVOb2RlU2Nyb2xsUG9pbnRNYXApOworICAgIG1fc2Nyb2xsYWJsZU5vZGVNYXAtPmFk
ZChub2RlLCBwb2ludCk7CisgICAgbm9kZS0+c2V0U2Nyb2xsYWJsZU5vZGUoKTsKK30KKwordm9p
ZCBEb2N1bWVudDo6cmVtb3ZlU2Nyb2xsYWJsZU5vZGVQb2ludChOb2RlKiBub2RlKQoreworICAg
IGlmICghbV9zY3JvbGxhYmxlTm9kZU1hcCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fc2Nyb2xs
YWJsZU5vZGVNYXAtPnJlbW92ZShub2RlKTsKKyAgICBub2RlLT5zZXRTY3JvbGxhYmxlTm9kZShm
YWxzZSk7Cit9CisKK2Jvb2wgRG9jdW1lbnQ6OmNvbnRhaW5zU2Nyb2xsYWJsZU5vZGVQb2ludChO
b2RlKiBub2RlKSBjb25zdAoreworICAgIGlmICghbV9zY3JvbGxhYmxlTm9kZU1hcCkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBtX3Njcm9sbGFibGVOb2RlTWFwLT5jb250YWlu
cyhub2RlKTsKK30KKworSW50UG9pbnQgRG9jdW1lbnQ6OmdldFNjcm9sbGFibGVOb2RlUG9pbnQo
Tm9kZSogbm9kZSkgY29uc3QKK3sKKyAgICBpZiAoIW1fc2Nyb2xsYWJsZU5vZGVNYXApCisgICAg
ICAgIHJldHVybiBJbnRQb2ludCgpOworCisgICAgcmV0dXJuIG1fc2Nyb2xsYWJsZU5vZGVNYXAt
PmdldChub2RlKTsKK30KKwogI2lmIEVOQUJMRShNSUNST0RBVEEpCiBQYXNzUmVmUHRyPE5vZGVM
aXN0PiBEb2N1bWVudDo6Z2V0SXRlbXMoY29uc3QgU3RyaW5nJiB0eXBlTmFtZXMpCiB7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNpb24gMTAxMzU0KQorKysgU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTExMjQsNiArMTEyNCwxMiBAQCBwdWJs
aWM6CiAgICAgCiAgICAgYm9vbCBpc0luRG9jdW1lbnRXcml0ZSgpIHsgcmV0dXJuIG1fd3JpdGVS
ZWN1cnNpb25EZXB0aCA+IDA7IH0KIAorICAgIHR5cGVkZWYgSGFzaE1hcDxOb2RlKiwgSW50UG9p
bnQ+IFNjcm9sbGFibGVOb2RlU2Nyb2xsUG9pbnRNYXA7CisgICAgdm9pZCBhZGRTY3JvbGxhYmxl
Tm9kZVBvaW50KE5vZGUqLCBJbnRQb2ludCk7CisgICAgSW50UG9pbnQgZ2V0U2Nyb2xsYWJsZU5v
ZGVQb2ludChOb2RlKikgY29uc3Q7CisgICAgdm9pZCByZW1vdmVTY3JvbGxhYmxlTm9kZVBvaW50
KE5vZGUqKTsKKyAgICBib29sIGNvbnRhaW5zU2Nyb2xsYWJsZU5vZGVQb2ludChOb2RlKikgY29u
c3Q7CisKIHByb3RlY3RlZDoKICAgICBEb2N1bWVudChGcmFtZSosIGNvbnN0IEtVUkwmLCBib29s
IGlzWEhUTUwsIGJvb2wgaXNIVE1MKTsKIApAQCAtMTQzMCw2ICsxNDM2LDggQEAgcHJpdmF0ZToK
ICAgICAKICAgICB1bnNpZ25lZCBtX3doZWVsRXZlbnRIYW5kbGVyQ291bnQ7CiAKKyAgICBPd25Q
dHI8U2Nyb2xsYWJsZU5vZGVTY3JvbGxQb2ludE1hcD4gbV9zY3JvbGxhYmxlTm9kZU1hcDsKKwog
I2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKICAgICBPd25QdHI8U2NyaXB0ZWRB
bmltYXRpb25Db250cm9sbGVyPiBtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjsKICNlbmRp
ZgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAkocmV2aXNpb24gMTAxMzU0KQorKysgU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MTIsOCArNDEyLDEyIEBAIE5vZGU6
On5Ob2RlKCkKICAgICBpZiAobV9uZXh0KQogICAgICAgICBtX25leHQtPnNldFByZXZpb3VzU2li
bGluZygwKTsKIAotICAgIGlmIChtX2RvY3VtZW50KQorICAgIGlmIChtX2RvY3VtZW50KSB7Cisg
ICAgICAgIGlmIChpc1Njcm9sbGFibGVOb2RlKCkpCisgICAgICAgICAgICBtX2RvY3VtZW50LT5y
ZW1vdmVTY3JvbGxhYmxlTm9kZVBvaW50KHRoaXMpOworCiAgICAgICAgIG1fZG9jdW1lbnQtPmd1
YXJkRGVyZWYoKTsKKyAgICB9CiB9CiAKICNpZmRlZiBOREVCVUcKQEAgLTQ1Nyw2ICs0NjEsMTAg
QEAgdm9pZCBOb2RlOjpzZXREb2N1bWVudChEb2N1bWVudCogZG9jdW1lbgogCiAgICAgaWYgKG1f
ZG9jdW1lbnQpIHsKICAgICAgICAgbV9kb2N1bWVudC0+bW92ZU5vZGVJdGVyYXRvcnNUb05ld0Rv
Y3VtZW50KHRoaXMsIGRvY3VtZW50KTsKKworICAgICAgICBpZiAoaXNTY3JvbGxhYmxlTm9kZSgp
KQorICAgICAgICAgICAgbV9kb2N1bWVudC0+cmVtb3ZlU2Nyb2xsYWJsZU5vZGVQb2ludCh0aGlz
KTsKKwogICAgICAgICBtX2RvY3VtZW50LT5ndWFyZERlcmVmKCk7CiAgICAgfQogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmgJKHJldmlzaW9uIDEwMTM1NCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTYwOSw2ICs2MDksOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBub3Rp
ZnlNdXRhdGlvbk9ic2VydmVyc05vZGVXaWxsRGV0YWNoKCk7CiAjZW5kaWYgLy8gRU5BQkxFKE1V
VEFUSU9OX09CU0VSVkVSUykKIAorICAgIGJvb2wgaXNTY3JvbGxhYmxlTm9kZSgpIHsgcmV0dXJu
IGdldEZsYWcoSXNTY3JvbGxhYmxlTm9kZUZsYWcpOyB9CisgICAgdm9pZCBzZXRTY3JvbGxhYmxl
Tm9kZShib29sIHMgPSB0cnVlKSB7IHNldEZsYWcocywgSXNTY3JvbGxhYmxlTm9kZUZsYWcpOyB9
CisKIHByaXZhdGU6CiAgICAgZW51bSBOb2RlRmxhZ3MgewogICAgICAgICBJc1RleHRGbGFnID0g
MSwKQEAgLTY0OCw2ICs2NTEsOCBAQCBwcml2YXRlOgogICAgICAgICBIYXNDdXN0b21XaWxsT3JE
aWRSZWNhbGNTdHlsZUZsYWcgPSAxIDw8IDI4LAogICAgICAgICBIYXNDdXN0b21TdHlsZUZvclJl
bmRlcmVyRmxhZyA9IDEgPDwgMjksCiAKKyAgICAgICAgSXNTY3JvbGxhYmxlTm9kZUZsYWcgPSAx
IDw8IDMwLAorCiAjaWYgRU5BQkxFKFNWRykKICAgICAgICAgRGVmYXVsdE5vZGVGbGFncyA9IElz
UGFyc2luZ0NoaWxkcmVuRmluaXNoZWRGbGFnIHwgSXNTdHlsZUF0dHJpYnV0ZVZhbGlkRmxhZyB8
IEFyZVNWR0F0dHJpYnV0ZXNWYWxpZEZsYWcKICNlbHNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAJKHJldmlzaW9uIDEwMTM1NCkKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMiw5ICsy
MDIsMTIgQEAgUmVuZGVyTGF5ZXI6On5SZW5kZXJMYXllcigpCiAgICAgICAgICAgICBmcmFtZS0+
ZXZlbnRIYW5kbGVyKCktPnJlc2l6ZUxheWVyRGVzdHJveWVkKCk7CiAgICAgfQogCi0gICAgaWYg
KG1fc2Nyb2xsYWJsZUFyZWFQYWdlKQorICAgIGlmIChtX3Njcm9sbGFibGVBcmVhUGFnZSkgewog
ICAgICAgICBtX3Njcm9sbGFibGVBcmVhUGFnZS0+cmVtb3ZlU2Nyb2xsYWJsZUFyZWEodGhpcyk7
CiAKKyAgICAgICAgcmVuZGVyZXIoKS0+ZG9jdW1lbnQoKS0+YWRkU2Nyb2xsYWJsZU5vZGVQb2lu
dChtX3JlbmRlcmVyLT5ub2RlKCksIHNjcm9sbFBvc2l0aW9uKCkpOworICAgIH0KKwogICAgIGRl
c3Ryb3lTY3JvbGxiYXIoSG9yaXpvbnRhbFNjcm9sbGJhcik7CiAgICAgZGVzdHJveVNjcm9sbGJh
cihWZXJ0aWNhbFNjcm9sbGJhcik7CiAKQEAgLTEzNjgsOCArMTM3MSwxNSBAQCB2b2lkIFJlbmRl
ckxheWVyOjpzY3JvbGxCeVJlY3Vyc2l2ZWx5KExhCiAKIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9s
bFRvT2Zmc2V0KExheW91dFVuaXQgeCwgTGF5b3V0VW5pdCB5LCBTY3JvbGxPZmZzZXRDbGFtcGlu
ZyBjbGFtcCkKIHsKLSAgICBpZiAoY2xhbXAgPT0gU2Nyb2xsT2Zmc2V0Q2xhbXBlZCkgewotICAg
ICAgICBSZW5kZXJCb3gqIGJveCA9IHJlbmRlckJveCgpOworICAgIE5vZGUqIG5vZGUgPSByZW5k
ZXJlcigpLT5ub2RlKCk7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gcmVuZGVyZXIoKS0+ZG9j
dW1lbnQoKTsKKyAgICBSZW5kZXJCb3gqIGJveCA9IHJlbmRlckJveCgpOworICAgIGlmIChib3gg
JiYgbm9kZSAmJiBkb2N1bWVudCAmJiBkb2N1bWVudC0+Y29udGFpbnNTY3JvbGxhYmxlTm9kZVBv
aW50KG5vZGUpKSB7CisgICAgICAgIEludFBvaW50IHBvaW50ID0gZG9jdW1lbnQtPmdldFNjcm9s
bGFibGVOb2RlUG9pbnQobm9kZSk7CisgICAgICAgIHggPSAocG9pbnQueCgpICsgYm94LT5jbGll
bnRXaWR0aCgpKSA+IHNjcm9sbFdpZHRoKCkgPyBzY3JvbGxXaWR0aCgpIC0gYm94LT5jbGllbnRX
aWR0aCgpIDogcG9pbnQueCgpOworICAgICAgICB5ID0gKHBvaW50LnkoKSArIGJveC0+Y2xpZW50
SGVpZ2h0KCkpID4gc2Nyb2xsSGVpZ2h0KCkgPyBzY3JvbGxIZWlnaHQoKSAtIGJveC0+Y2xpZW50
SGVpZ2h0KCkgOiBwb2ludC55KCk7CisgICAgICAgIGRvY3VtZW50LT5yZW1vdmVTY3JvbGxhYmxl
Tm9kZVBvaW50KG5vZGUpOworICAgIH0gZWxzZSBpZiAoY2xhbXAgPT0gU2Nyb2xsT2Zmc2V0Q2xh
bXBlZCkgewogICAgICAgICBpZiAoIWJveCkKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTM3
OSw3ICsxMzg5LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9PZmZzZXQoTGF5b3V0VQog
ICAgICAgICB4ID0gbWluKG1heDxMYXlvdXRVbml0Pih4LCAwKSwgbWF4WCk7CiAgICAgICAgIHkg
PSBtaW4obWF4PExheW91dFVuaXQ+KHksIDApLCBtYXhZKTsKICAgICB9Ci0gICAgCisKICAgICBT
Y3JvbGxhYmxlQXJlYTo6c2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKExheW91dFBvaW50
KHgsIHkpKTsKIH0KIApAQCAtNDI3OCw2ICs0Mjg4LDEwIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnN0
eWxlQ2hhbmdlZChTdHlsZURpZmYKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAobV9zY3JvbGxh
YmxlQXJlYVBhZ2UpIHsKICAgICAgICAgbV9zY3JvbGxhYmxlQXJlYVBhZ2UtPnJlbW92ZVNjcm9s
bGFibGVBcmVhKHRoaXMpOworCisgICAgICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSByZW5k
ZXJlcigpLT5kb2N1bWVudCgpKQorICAgICAgICAgICAgZG9jdW1lbnQtPnJlbW92ZVNjcm9sbGFi
bGVOb2RlUG9pbnQocmVuZGVyZXIoKS0+bm9kZSgpKTsKKwogICAgICAgICBtX3Njcm9sbGFibGVB
cmVhUGFnZSA9IDA7CiAgICAgfQogICAgIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTAxNDk0KQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MTEtMTEtMzAgIFJha2VzaCBLTiAgPHJha2VzaC5rbkBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAg
U2Nyb2xsIHBvc2l0aW9uIGlzIGxvc3QgYWZ0ZXIgaGlkZS9zaG93IGVsZW1lbnQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyODUyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFpbnRhaW4gdGhlIHNjcm9s
bCBwb3NpdGlvbiBvZiBvdmVyZmxvdyBlbGVtZW50IHdoZW4gdGhlIHNjcm9sbGFibGUgcmVuZGVy
bGF5ZXIgaXMgYmVpbmcgZHJvcHBlZCwKKyAgICAgICAgd2hpY2ggY2FuIGJlIHVzZWQgdG8gcmVz
dG9yZSB0aGUgc2Nyb2xsIHBvc2l0aW9uIGlmIHNhbWUgbm9kZSBpcyBhZ2FpbiBhZGRlZCB0byBy
ZW5kZXIgdHJlZS4gCisKKyAgICAgICAgKiBmYXN0L292ZXJmbG93L3Njcm9sbC1kaXYtaGlkZS1z
aG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9vdmVyZmxvdy9zY3JvbGwt
ZGl2LWhpZGUtc2hvdy5odG1sOiBBZGRlZC4KKwogMjAxMS0xMS0zMCAgQmFsYXpzIEtlbGVtZW4g
IDxrYmFsYXpzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBYMTEgcGx1Z2lucyBuZWVkIHRv
IGJlIHJld29ya2VkIGZvciBRdDUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Ny
b2xsLWRpdi1oaWRlLXNob3ctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNob3ctZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9zY3JvbGwtZGl2LWhpZGUtc2hvdy1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjIgQEAKK1Njcm9sbGVkIHBvc2l0
aW9uIHNob3VsZCBiZSByZXN0b3JlZCB3aGVuIHRoZSBkaXYgaXMgaGlkZGVuIGFuZCBzaG93biBh
Z2FpbgorCitsaW5lIDEgCitsaW5lIDIgCitsaW5lIDMgCitsaW5lIDQgCitsaW5lIDUgCitsaW5l
IDYgCitsaW5lIDcgCitsaW5lIDggCitsaW5lIDkgCitsaW5lIDEwIAorbGluZSAxMSAKK2xpbmUg
MTIgCitEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93CitQQVNTIGUuc2Nyb2xsVG9wIGlzIDAKK0Rp
didzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4KK1BBU1MgZS5zY3JvbGxUb3AgaXMgMTAwCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9zY3JvbGwtZGl2LWhpZGUtc2hvdy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNob3cuaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1o
aWRlLXNob3cuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9
Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxwPlNjcm9sbGVkIHBvc2l0aW9uIHNob3VsZCBiZSByZXN0b3JlZCB3aGVuIHRoZSBkaXYg
aXMgaGlkZGVuIGFuZCBzaG93biBhZ2FpbjwvcD4KKzxkaXYgc3R5bGU9ImhlaWdodDoxMDBweDsg
b3ZlcmZsb3c6IHNjcm9sbDsgZGlzcGxheTogYmxvY2s7IiBpZD0ibWFpbiI+CisgICAgbGluZSAx
IDxici8+CisgICAgbGluZSAyIDxici8+CisgICAgbGluZSAzIDxici8+CisgICAgbGluZSA0IDxi
ci8+CisgICAgbGluZSA1IDxici8+CisgICAgbGluZSA2IDxici8+CisgICAgbGluZSA3IDxici8+
CisgICAgbGluZSA4IDxici8+CisgICAgbGluZSA5IDxici8+CisgICAgbGluZSAxMCA8YnIvPgor
ICAgIGxpbmUgMTEgPGJyLz4KKyAgICBsaW5lIDEyIDxici8+Cis8L2Rpdj4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
Im1haW4iKTsKK2lmIChlLnN0eWxlLmRpc3BsYXkgPT0gJ2Jsb2NrJykKKyAgICBlLnNjcm9sbFRv
cCA9IDEwMDsKK2Uuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKK2RlYnVnKCJEaXYncyBkaXNwbGF5
IGlzIG5vbmUgbm93Iik7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMCcpOworCitlLnN0eWxl
LmRpc3BsYXkgPSAnYmxvY2snOworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4i
KTsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcxMDAnKTsKKworc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117355</attachid>
            <date>2011-11-30 23:54:34 -0800</date>
            <delta_ts>2011-12-05 08:18:33 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-72852-20111201131833.patch</filename>
            <type>text/plain</type>
            <size>10818</size>
            <attacher name="Rakesh">rakeshchaitan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMTYyNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDExLTExLTMwICBSYWtlc2gg
S04gIDxyYWtlc2gua25AbW90b3JvbGEuY29tPgorCisgICAgICAgIFNjcm9sbCBwb3NpdGlvbiBp
cyBsb3N0IGFmdGVyIGhpZGUvc2hvdyBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjg1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1haW50YWluIHRoZSBzY3JvbGwgcG9zaXRpb24gb2Ygb3Zl
cmZsb3cgZWxlbWVudCB3aGVuIHRoZSBzY3JvbGxhYmxlIHJlbmRlcmxheWVyIGlzIGJlaW5nIGRy
b3BwZWQsCisgICAgICAgIHdoaWNoIGNhbiBiZSB1c2VkIHRvIHJlc3RvcmUgdGhlIHNjcm9sbCBw
b3NpdGlvbiBpZiBzYW1lIG5vZGUgaXMgYWdhaW4gYWRkZWQgdG8gcmVuZGVyIHRyZWUuCisKKyAg
ICAgICAgVGVzdDogZmFzdC9vdmVyZmxvdy9zY3JvbGwtZGl2LWhpZGUtc2hvdy5odG1sCisKKyAg
ICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFk
ZFNjcm9sbGFibGVOb2RlUG9pbnQpOgorICAgICAgICBIZWxwZXIgZnVuY3Rpb24gZm9yIEhhc2ht
YXAgb2Ygc2Nyb2xsYWJsZSBub2RlIGFuZCBzY3JvbGwgcG9zaXRpb24uCisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6cmVtb3ZlU2Nyb2xsYWJsZU5vZGVQb2ludCk6CisgICAgICAgIERpdHRv
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y29udGFpbnNTY3JvbGxhYmxlTm9kZVBvaW50
KToKKyAgICAgICAgRGl0dG8KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpnZXRTY3JvbGxh
YmxlTm9kZVBvaW50KToKKyAgICAgICAgRGl0dG8KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoK
KyAgICAgICAgQWRkIGEgbmV3IG1lbWJlciBtX3Njcm9sbGFibGVOb2RlTWFwLgorICAgICAgICAq
IGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6On5Ob2RlKToKKyAgICAgICAg
UmVtb3ZpbmcgdGhlIHJlZmVyZW5jZSBvZiB0aGlzIE5vZGUgZnJvbSB0aGUgTWFwLgorICAgICAg
ICAoV2ViQ29yZTo6Tm9kZTo6c2V0RG9jdW1lbnQpOgorICAgICAgICBSZW1vdmluZyB0aGUgcmVm
ZXJlbmNlIG9mIHRoaXMgTm9kZSBmcm9tIHRoZSBNYXAuCisgICAgICAgICogZG9tL05vZGUuaDoK
KyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmlzU2Nyb2xsYWJsZU5vZGUpOgorICAgICAgICBIZWxw
ZXIgZnVuY3Rpb24gZm9yIFNjcm9sbGFibGUgZmxhZworICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6
c2V0U2Nyb2xsYWJsZU5vZGUpOgorICAgICAgICBIZWxwZXIgZnVuY3Rpb24gZm9yIFNjcm9sbGFi
bGUgZmxhZworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6flJlbmRlckxheWVyKToKKyAgICAgICAgQWRkIGFuIHNjcm9s
bGFibGUgbGF5ZXJzIHNjcm9sbCBwb3NpdGlvbiBpbnRvIG1hcAorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0KToKKyAgICAgICAgSWYgdGhlIG5vZGUgb2YgUmVu
ZGVyZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbGF5ZXIgaXMgcHJlc2VudCBpbiB0aGUgbWFwLAor
ICAgICAgICBzZXQgdGhlIHNjcm9sbG9mZnNldCB0byB0aGUgcHJldmlvdXMgc2Nyb2xsIHBvc2l0
aW9uIG1haW50YWluZWQgaW4gdGhlIG1hcC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
OjpzdHlsZUNoYW5nZWQpOgorICAgICAgICBSZW1vdmUgdGhlIHN0b3JlZCBsb2NhdGlvbiBvZiB0
aGUgTm9kZSBpZiBjaGFuZ2VkIHN0eWxlIGRvZXMgbm90IGhhdmUgb3ZlcmZsb3cuCisKIDIwMTEt
MTEtMzAgIExlbyBZYW5nICA8bGVvLnlhbmdAdG9yY2htb2JpbGUuY29tLmNuPgogCiAgICAgICAg
IFVwc3RyZWFtIHBsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrU3RhdGVOb3RpZmll
ckJsYWNrQmVycnkuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDEw
MTYxMykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTUxNTMsNiArNTE1MywzNyBAQCBEb2N1bWVudExvYWRlciogRG9jdW1lbnQ6OmxvYWRlcigp
IGNvbnN0CiAgICAgcmV0dXJuIGxvYWRlcjsKIH0KIAordm9pZCBEb2N1bWVudDo6YWRkU2Nyb2xs
YWJsZU5vZGVQb2ludChOb2RlKiBub2RlLCBJbnRQb2ludCBwb2ludCkKK3sKKyAgICBpZiAoIW1f
c2Nyb2xsYWJsZU5vZGVNYXApCisgICAgICAgIG1fc2Nyb2xsYWJsZU5vZGVNYXAgPSBhZG9wdFB0
cihuZXcgU2Nyb2xsYWJsZU5vZGVTY3JvbGxQb2ludE1hcCk7CisgICAgbV9zY3JvbGxhYmxlTm9k
ZU1hcC0+YWRkKG5vZGUsIHBvaW50KTsKKyAgICBub2RlLT5zZXRTY3JvbGxhYmxlTm9kZSgpOwor
fQorCit2b2lkIERvY3VtZW50OjpyZW1vdmVTY3JvbGxhYmxlTm9kZVBvaW50KE5vZGUqIG5vZGUp
Cit7CisgICAgaWYgKCFtX3Njcm9sbGFibGVOb2RlTWFwKQorICAgICAgICByZXR1cm47CisgICAg
bV9zY3JvbGxhYmxlTm9kZU1hcC0+cmVtb3ZlKG5vZGUpOworICAgIG5vZGUtPnNldFNjcm9sbGFi
bGVOb2RlKGZhbHNlKTsKK30KKworYm9vbCBEb2N1bWVudDo6Y29udGFpbnNTY3JvbGxhYmxlTm9k
ZVBvaW50KE5vZGUqIG5vZGUpIGNvbnN0Cit7CisgICAgaWYgKCFtX3Njcm9sbGFibGVOb2RlTWFw
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIG1fc2Nyb2xsYWJsZU5vZGVNYXAt
PmNvbnRhaW5zKG5vZGUpOworfQorCitJbnRQb2ludCBEb2N1bWVudDo6Z2V0U2Nyb2xsYWJsZU5v
ZGVQb2ludChOb2RlKiBub2RlKSBjb25zdAoreworICAgIGlmICghbV9zY3JvbGxhYmxlTm9kZU1h
cCkKKyAgICAgICAgcmV0dXJuIEludFBvaW50KCk7CisKKyAgICByZXR1cm4gbV9zY3JvbGxhYmxl
Tm9kZU1hcC0+Z2V0KG5vZGUpOworfQorCiAjaWYgRU5BQkxFKE1JQ1JPREFUQSkKIFBhc3NSZWZQ
dHI8Tm9kZUxpc3Q+IERvY3VtZW50OjpnZXRJdGVtcyhjb25zdCBTdHJpbmcmIHR5cGVOYW1lcykK
IHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCShyZXZpc2lvbiAxMDE2MTMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTEyNCw2ICsxMTI0LDEy
IEBAIHB1YmxpYzoKICAgICAKICAgICBib29sIGlzSW5Eb2N1bWVudFdyaXRlKCkgeyByZXR1cm4g
bV93cml0ZVJlY3Vyc2lvbkRlcHRoID4gMDsgfQogCisgICAgdHlwZWRlZiBIYXNoTWFwPE5vZGUq
LCBJbnRQb2ludD4gU2Nyb2xsYWJsZU5vZGVTY3JvbGxQb2ludE1hcDsKKyAgICB2b2lkIGFkZFNj
cm9sbGFibGVOb2RlUG9pbnQoTm9kZSosIEludFBvaW50KTsKKyAgICBJbnRQb2ludCBnZXRTY3Jv
bGxhYmxlTm9kZVBvaW50KE5vZGUqKSBjb25zdDsKKyAgICB2b2lkIHJlbW92ZVNjcm9sbGFibGVO
b2RlUG9pbnQoTm9kZSopOworICAgIGJvb2wgY29udGFpbnNTY3JvbGxhYmxlTm9kZVBvaW50KE5v
ZGUqKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIERvY3VtZW50KEZyYW1lKiwgY29uc3QgS1VS
TCYsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpOwogCkBAIC0xNDMwLDYgKzE0MzYsOCBAQCBw
cml2YXRlOgogICAgIAogICAgIHVuc2lnbmVkIG1fd2hlZWxFdmVudEhhbmRsZXJDb3VudDsKIAor
ICAgIE93blB0cjxTY3JvbGxhYmxlTm9kZVNjcm9sbFBvaW50TWFwPiBtX3Njcm9sbGFibGVOb2Rl
TWFwOworCiAjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQogICAgIE93blB0cjxT
Y3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI+IG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVy
OwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCShyZXZpc2lvbiAxMDE2MTMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxMiw4ICs0MTIsMTIg
QEAgTm9kZTo6fk5vZGUoKQogICAgIGlmIChtX25leHQpCiAgICAgICAgIG1fbmV4dC0+c2V0UHJl
dmlvdXNTaWJsaW5nKDApOwogCi0gICAgaWYgKG1fZG9jdW1lbnQpCisgICAgaWYgKG1fZG9jdW1l
bnQpIHsKKyAgICAgICAgaWYgKGlzU2Nyb2xsYWJsZU5vZGUoKSkKKyAgICAgICAgICAgIG1fZG9j
dW1lbnQtPnJlbW92ZVNjcm9sbGFibGVOb2RlUG9pbnQodGhpcyk7CisKICAgICAgICAgbV9kb2N1
bWVudC0+Z3VhcmREZXJlZigpOworICAgIH0KIH0KIAogI2lmZGVmIE5ERUJVRwpAQCAtNDU3LDYg
KzQ2MSwxMCBAQCB2b2lkIE5vZGU6OnNldERvY3VtZW50KERvY3VtZW50KiBkb2N1bWVuCiAKICAg
ICBpZiAobV9kb2N1bWVudCkgewogICAgICAgICBtX2RvY3VtZW50LT5tb3ZlTm9kZUl0ZXJhdG9y
c1RvTmV3RG9jdW1lbnQodGhpcywgZG9jdW1lbnQpOworCisgICAgICAgIGlmIChpc1Njcm9sbGFi
bGVOb2RlKCkpCisgICAgICAgICAgICBtX2RvY3VtZW50LT5yZW1vdmVTY3JvbGxhYmxlTm9kZVBv
aW50KHRoaXMpOworCiAgICAgICAgIG1fZG9jdW1lbnQtPmd1YXJkRGVyZWYoKTsKICAgICB9CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuaAkocmV2aXNpb24gMTAxNjEzKQorKysgU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtNjA5LDYgKzYwOSw5IEBAIHB1YmxpYzoKICAgICB2
b2lkIG5vdGlmeU11dGF0aW9uT2JzZXJ2ZXJzTm9kZVdpbGxEZXRhY2goKTsKICNlbmRpZiAvLyBF
TkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQogCisgICAgYm9vbCBpc1Njcm9sbGFibGVOb2RlKCkg
eyByZXR1cm4gZ2V0RmxhZyhJc1Njcm9sbGFibGVOb2RlRmxhZyk7IH0KKyAgICB2b2lkIHNldFNj
cm9sbGFibGVOb2RlKGJvb2wgcyA9IHRydWUpIHsgc2V0RmxhZyhzLCBJc1Njcm9sbGFibGVOb2Rl
RmxhZyk7IH0KKwogcHJpdmF0ZToKICAgICBlbnVtIE5vZGVGbGFncyB7CiAgICAgICAgIElzVGV4
dEZsYWcgPSAxLApAQCAtNjQ4LDYgKzY1MSw4IEBAIHByaXZhdGU6CiAgICAgICAgIEhhc0N1c3Rv
bVdpbGxPckRpZFJlY2FsY1N0eWxlRmxhZyA9IDEgPDwgMjgsCiAgICAgICAgIEhhc0N1c3RvbVN0
eWxlRm9yUmVuZGVyZXJGbGFnID0gMSA8PCAyOSwKIAorICAgICAgICBJc1Njcm9sbGFibGVOb2Rl
RmxhZyA9IDEgPDwgMzAsCisKICNpZiBFTkFCTEUoU1ZHKQogICAgICAgICBEZWZhdWx0Tm9kZUZs
YWdzID0gSXNQYXJzaW5nQ2hpbGRyZW5GaW5pc2hlZEZsYWcgfCBJc1N0eWxlQXR0cmlidXRlVmFs
aWRGbGFnIHwgQXJlU1ZHQXR0cmlidXRlc1ZhbGlkRmxhZwogI2Vsc2UKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkocmV2aXNpb24gMTAxNjEzKQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjAyLDkgKzIwMiwxMiBAQCBSZW5kZXJMYXllcjo6flJlbmRlckxheWVyKCkKICAgICAgICAgICAg
IGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+cmVzaXplTGF5ZXJEZXN0cm95ZWQoKTsKICAgICB9CiAK
LSAgICBpZiAobV9zY3JvbGxhYmxlQXJlYVBhZ2UpCisgICAgaWYgKG1fc2Nyb2xsYWJsZUFyZWFQ
YWdlKSB7CiAgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWFQYWdlLT5yZW1vdmVTY3JvbGxhYmxlQXJl
YSh0aGlzKTsKIAorICAgICAgICByZW5kZXJlcigpLT5kb2N1bWVudCgpLT5hZGRTY3JvbGxhYmxl
Tm9kZVBvaW50KG1fcmVuZGVyZXItPm5vZGUoKSwgc2Nyb2xsUG9zaXRpb24oKSk7CisgICAgfQor
CiAgICAgZGVzdHJveVNjcm9sbGJhcihIb3Jpem9udGFsU2Nyb2xsYmFyKTsKICAgICBkZXN0cm95
U2Nyb2xsYmFyKFZlcnRpY2FsU2Nyb2xsYmFyKTsKIApAQCAtMTM2OCw4ICsxMzcxLDE1IEBAIHZv
aWQgUmVuZGVyTGF5ZXI6OnNjcm9sbEJ5UmVjdXJzaXZlbHkoTGEKIAogdm9pZCBSZW5kZXJMYXll
cjo6c2Nyb2xsVG9PZmZzZXQoTGF5b3V0VW5pdCB4LCBMYXlvdXRVbml0IHksIFNjcm9sbE9mZnNl
dENsYW1waW5nIGNsYW1wKQogewotICAgIGlmIChjbGFtcCA9PSBTY3JvbGxPZmZzZXRDbGFtcGVk
KSB7Ci0gICAgICAgIFJlbmRlckJveCogYm94ID0gcmVuZGVyQm94KCk7CisgICAgTm9kZSogbm9k
ZSA9IHJlbmRlcmVyKCktPm5vZGUoKTsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSByZW5kZXJl
cigpLT5kb2N1bWVudCgpOworICAgIFJlbmRlckJveCogYm94ID0gcmVuZGVyQm94KCk7CisgICAg
aWYgKGJveCAmJiBub2RlICYmIGRvY3VtZW50ICYmIGRvY3VtZW50LT5jb250YWluc1Njcm9sbGFi
bGVOb2RlUG9pbnQobm9kZSkpIHsKKyAgICAgICAgSW50UG9pbnQgcG9pbnQgPSBkb2N1bWVudC0+
Z2V0U2Nyb2xsYWJsZU5vZGVQb2ludChub2RlKTsKKyAgICAgICAgeCA9IChwb2ludC54KCkgKyBi
b3gtPmNsaWVudFdpZHRoKCkpID4gc2Nyb2xsV2lkdGgoKSA/IHNjcm9sbFdpZHRoKCkgLSBib3gt
PmNsaWVudFdpZHRoKCkgOiBwb2ludC54KCk7CisgICAgICAgIHkgPSAocG9pbnQueSgpICsgYm94
LT5jbGllbnRIZWlnaHQoKSkgPiBzY3JvbGxIZWlnaHQoKSA/IHNjcm9sbEhlaWdodCgpIC0gYm94
LT5jbGllbnRIZWlnaHQoKSA6IHBvaW50LnkoKTsKKyAgICAgICAgZG9jdW1lbnQtPnJlbW92ZVNj
cm9sbGFibGVOb2RlUG9pbnQobm9kZSk7CisgICAgfSBlbHNlIGlmIChjbGFtcCA9PSBTY3JvbGxP
ZmZzZXRDbGFtcGVkKSB7CiAgICAgICAgIGlmICghYm94KQogICAgICAgICAgICAgcmV0dXJuOwog
CkBAIC0xMzc5LDcgKzEzODksNyBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldChM
YXlvdXRVCiAgICAgICAgIHggPSBtaW4obWF4PExheW91dFVuaXQ+KHgsIDApLCBtYXhYKTsKICAg
ICAgICAgeSA9IG1pbihtYXg8TGF5b3V0VW5pdD4oeSwgMCksIG1heFkpOwogICAgIH0KLSAgICAK
KwogICAgIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oTGF5
b3V0UG9pbnQoeCwgeSkpOwogfQogCkBAIC00Mjc4LDYgKzQyODgsMTAgQEAgdm9pZCBSZW5kZXJM
YXllcjo6c3R5bGVDaGFuZ2VkKFN0eWxlRGlmZgogICAgICAgICB9CiAgICAgfSBlbHNlIGlmICht
X3Njcm9sbGFibGVBcmVhUGFnZSkgewogICAgICAgICBtX3Njcm9sbGFibGVBcmVhUGFnZS0+cmVt
b3ZlU2Nyb2xsYWJsZUFyZWEodGhpcyk7CisKKyAgICAgICAgaWYgKERvY3VtZW50KiBkb2N1bWVu
dCA9IHJlbmRlcmVyKCktPmRvY3VtZW50KCkpCisgICAgICAgICAgICBkb2N1bWVudC0+cmVtb3Zl
U2Nyb2xsYWJsZU5vZGVQb2ludChyZW5kZXJlcigpLT5ub2RlKCkpOworCiAgICAgICAgIG1fc2Ny
b2xsYWJsZUFyZWFQYWdlID0gMDsKICAgICB9CiAgICAgCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDE2
MjUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NiBAQAorMjAxMS0xMS0zMCAgUmFrZXNoIEtOICA8cmFrZXNoLmtuQG1vdG9yb2xhLmNvbT4KKwor
ICAgICAgICBTY3JvbGwgcG9zaXRpb24gaXMgbG9zdCBhZnRlciBoaWRlL3Nob3cgZWxlbWVudAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4NTIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWludGFpbiB0
aGUgc2Nyb2xsIHBvc2l0aW9uIG9mIG92ZXJmbG93IGVsZW1lbnQgd2hlbiB0aGUgc2Nyb2xsYWJs
ZSByZW5kZXJsYXllciBpcyBiZWluZyBkcm9wcGVkLAorICAgICAgICB3aGljaCBjYW4gYmUgdXNl
ZCB0byByZXN0b3JlIHRoZSBzY3JvbGwgcG9zaXRpb24gaWYgc2FtZSBub2RlIGlzIGFnYWluIGFk
ZGVkIHRvIHJlbmRlciB0cmVlLgorCisgICAgICAgICogZmFzdC9vdmVyZmxvdy9zY3JvbGwtZGl2
LWhpZGUtc2hvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvb3ZlcmZsb3cv
c2Nyb2xsLWRpdi1oaWRlLXNob3cuaHRtbDogQWRkZWQuCisKIDIwMTEtMTEtMzAgIEhheWF0byBJ
dG8gIDxoYXlhdG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIENocm9taXVt
IHJlYmFzZWxpbmVzIGZvciBzdmcgdGVzdHMuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L292ZXJm
bG93L3Njcm9sbC1kaXYtaGlkZS1zaG93LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9sbC1kaXYtaGlkZS1zaG93LWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRl
LXNob3ctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIyIEBACitTY3JvbGxl
ZCBwb3NpdGlvbiBzaG91bGQgYmUgcmVzdG9yZWQgd2hlbiB0aGUgZGl2IGlzIGhpZGRlbiBhbmQg
c2hvd24gYWdhaW4KKworbGluZSAxIAorbGluZSAyIAorbGluZSAzIAorbGluZSA0IAorbGluZSA1
IAorbGluZSA2IAorbGluZSA3IAorbGluZSA4IAorbGluZSA5IAorbGluZSAxMCAKK2xpbmUgMTEg
CitsaW5lIDEyIAorRGl2J3MgZGlzcGxheSBpcyBub25lIG5vdworUEFTUyBlLnNjcm9sbFRvcCBp
cyAwCitEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluCitQQVNTIGUuc2Nyb2xsVG9wIGlzIDEw
MAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNob3cuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9sbC1kaXYtaGlkZS1z
aG93Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9s
bC1kaXYtaGlkZS1zaG93Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3Jp
cHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cD5TY3JvbGxlZCBwb3NpdGlvbiBzaG91bGQgYmUgcmVzdG9yZWQgd2hlbiB0
aGUgZGl2IGlzIGhpZGRlbiBhbmQgc2hvd24gYWdhaW48L3A+Cis8ZGl2IHN0eWxlPSJoZWlnaHQ6
MTAwcHg7IG92ZXJmbG93OiBzY3JvbGw7IGRpc3BsYXk6IGJsb2NrOyIgaWQ9Im1haW4iPgorICAg
IGxpbmUgMSA8YnIvPgorICAgIGxpbmUgMiA8YnIvPgorICAgIGxpbmUgMyA8YnIvPgorICAgIGxp
bmUgNCA8YnIvPgorICAgIGxpbmUgNSA8YnIvPgorICAgIGxpbmUgNiA8YnIvPgorICAgIGxpbmUg
NyA8YnIvPgorICAgIGxpbmUgOCA8YnIvPgorICAgIGxpbmUgOSA8YnIvPgorICAgIGxpbmUgMTAg
PGJyLz4KKyAgICBsaW5lIDExIDxici8+CisgICAgbGluZSAxMiA8YnIvPgorPC9kaXY+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJtYWluIik7CitpZiAoZS5zdHlsZS5kaXNwbGF5ID09ICdibG9jaycpCisgICAgZS5z
Y3JvbGxUb3AgPSAxMDA7CitlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CitkZWJ1ZygiRGl2J3Mg
ZGlzcGxheSBpcyBub25lIG5vdyIpOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzAnKTsKKwor
ZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIGJsb2Nr
IGFnYWluIik7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMTAwJyk7CisKK3N1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117883</attachid>
            <date>2011-12-05 08:20:12 -0800</date>
            <delta_ts>2011-12-07 01:16:49 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-72852-20111205214355.patch</filename>
            <type>text/plain</type>
            <size>10311</size>
            <attacher name="Rakesh">rakeshchaitan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjAwMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDExLTEyLTA1ICBSYWtlc2gg
S04gIDxyYWtlc2gua25AbW90b3JvbGEuY29tPgorCisgICAgICAgIFNjcm9sbCBwb3NpdGlvbiBp
cyBsb3N0IGFmdGVyIGhpZGUvc2hvdyBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjg1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1haW50YWluIHRoZSBzY3JvbGwgcG9zaXRpb24gb2Ygb3Zl
cmZsb3cgZWxlbWVudCB3aGVuIHRoZSBzY3JvbGxhYmxlIHJlbmRlcmxheWVyIGlzIGJlaW5nIGRy
b3BwZWQsCisgICAgICAgIHdoaWNoIGNhbiBiZSB1c2VkIHRvIHJlc3RvcmUgdGhlIHNjcm9sbCBw
b3NpdGlvbiBpZiBzYW1lIG5vZGUgaXMgYWdhaW4gYWRkZWQgdG8gcmVuZGVyIHRyZWUuCisKKyAg
ICAgICAgVGVzdDogZmFzdC9vdmVyZmxvdy9zY3JvbGwtZGl2LWhpZGUtc2hvdy5odG1sCisKKyAg
ICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzY3Jv
bGxhYmxlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxlZFBvc2l0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldFNjcm9sbFBvc2l0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJlc2V0U2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAq
IGRvbS9FbGVtZW50Lmg6CisgICAgICAgIEhlbHBlciBmdW5jdGlvbnMgZm9yIGFjY2Vzc2luZyBz
Y3JvbGwgcG9zaXRpb24gZnJvbSByYXJlIGRhdGEuCisgICAgICAgICogZG9tL0VsZW1lbnRSYXJl
RGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJhcmVEYXRhOjpzY3JvbGxhYmxlRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UmFyZURhdGE6OnNjcm9sbGVkUG9zaXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJhcmVEYXRhOjpzZXRTY3JvbGxQb3NpdGlv
bik6CisgICAgICAgIEhlbHBlciBmdW5jdGlvbnMgZm9yIG1haW50YWluaW5nIHNjcm9sbCBwb3Np
dGlvbi4KKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpz
ZXREb2N1bWVudCk6CisgICAgICAgIFJlc2V0dGluZyB0aGUgc2Nyb2xsIHBvc2l0aW9uIGlmIG5v
ZGUgaXMgbW92ZWQgdG8gb3RoZXIgZG9jdW1lbnQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp+UmVuZGVyTGF5ZXIp
OgorICAgICAgICBTdG9yaW5nIHRoZSBzY3JvbGwgcG9zaXRpb24uCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9PZmZzZXQpOgorICAgICAgICBTZXR0aW5nIHRoZSBzY3Jv
bGwgcG9zaXRpb24gaWYgaGFzIGJlZW4gc3RvcmVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnN0eWxlQ2hhbmdlZCk6CisgICAgICAgIFJlc2V0dGluZyB0aGUgc2Nyb2xsIHBvc2l0
aW9uIGlmIHN0eWxlIGhhcyBjaGFuZ2VkLCBpdHMgbm8gbW9yZSBzY3JvbGxhYmxlLgorCiAyMDEx
LTEyLTA1ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAg
IE91dC1vZi1iYW5kIHRleHQgdHJhY2tzIG1heSBvbmx5IGxvYWQgZnJvbSBzYW1lIG9yaWdpbiBh
cyB0aGUgbWVkaWEgZWxlbWVudCdzIERvY3VtZW50J3Mgb3JpZ2luCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCShyZXZpc2lvbiAxMDE3NDEpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMzAsNiArMjAzMCwyNiBAQCBQYXNzUmVmUHRyPFdl
YktpdEFuaW1hdGlvbkxpc3Q+IEVsZW1lbnQ6CiAgICAgcmV0dXJuIGFuaW1Db250cm9sbGVyLT5h
bmltYXRpb25zRm9yUmVuZGVyZXIocmVuZGVyZXIoKSk7CiB9CiAKK2Jvb2wgRWxlbWVudDo6c2Ny
b2xsYWJsZUVsZW1lbnQoKQoreworICAgIHJldHVybiBlbnN1cmVSYXJlRGF0YSgpLT5zY3JvbGxh
YmxlRWxlbWVudCgpOworfQorCitJbnRQb2ludCBFbGVtZW50OjpzY3JvbGxlZFBvc2l0aW9uKCkK
K3sKKyAgICByZXR1cm4gZW5zdXJlUmFyZURhdGEoKS0+c2Nyb2xsZWRQb3NpdGlvbigpOworfQor
Cit2b2lkIEVsZW1lbnQ6OnNldFNjcm9sbFBvc2l0aW9uKEludFBvaW50IHBvaW50ID0gSW50UG9p
bnQoKSkKK3sKKyAgICBlbnN1cmVSYXJlRGF0YSgpLT5zZXRTY3JvbGxQb3NpdGlvbihwb2ludCk7
Cit9CisKK3ZvaWQgRWxlbWVudDo6cmVzZXRTY3JvbGxQb3NpdGlvbigpCit7CisgICAgZW5zdXJl
UmFyZURhdGEoKS0+c2V0U2Nyb2xsUG9zaXRpb24oSW50UG9pbnQoKSk7Cit9CisKICNpZm5kZWYg
TkRFQlVHCiBib29sIEVsZW1lbnQ6OmZhc3RBdHRyaWJ1dGVMb29rdXBBbGxvd2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0CiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgJKHJldmlz
aW9uIDEwMTc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM2NCw2ICszNjQsMTEgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8V2ViS2l0QW5p
bWF0aW9uTGlzdD4gd2Via2l0R2V0QW5pbWF0aW9ucygpIGNvbnN0OwogICAgIAogICAgIFBhc3NS
ZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yUmVuZGVyZXIoKTsKKyAKKyAgICBib29sIHNjcm9s
bGFibGVFbGVtZW50KCk7CisgICAgSW50UG9pbnQgc2Nyb2xsZWRQb3NpdGlvbigpOworICAgIHZv
aWQgc2V0U2Nyb2xsUG9zaXRpb24oSW50UG9pbnQpOworICAgIHZvaWQgcmVzZXRTY3JvbGxQb3Np
dGlvbigpOwogCiBwcm90ZWN0ZWQ6CiAgICAgRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIENvbnN0cnVjdGlvblR5cGUgdHlwZSkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgJKHJldmlzaW9uIDEwMTc0MSkKKysrIFNv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNTIs
NiArNTIsMTEgQEAgcHVibGljOgogCiAgICAgYm9vbCBtX3N0eWxlQWZmZWN0ZWRCeUVtcHR5Owog
CisgICAgSW50UG9pbnQgc2Nyb2xsUG9zaXRpb247CisgICAgaW5saW5lIGJvb2wgc2Nyb2xsYWJs
ZUVsZW1lbnQoKSB7IHJldHVybiAoc2Nyb2xsUG9zaXRpb24gIT0gSW50UG9pbnQoKSk7IH0KKyAg
ICBpbmxpbmUgSW50UG9pbnQgc2Nyb2xsZWRQb3NpdGlvbigpIHsgcmV0dXJuIHNjcm9sbFBvc2l0
aW9uOyB9CisgICAgaW5saW5lIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oSW50UG9pbnQgcG9pbnQp
IHsgc2Nyb2xsUG9zaXRpb24gPSBwb2ludDsgfSAKKwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQ
SSkKICAgICBib29sIG1fY29udGFpbnNGdWxsU2NyZWVuRWxlbWVudDsKICNlbmRpZgpJbmRleDog
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcAkocmV2aXNpb24gMTAxNzQxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NTcsNiArNDU3LDEwIEBAIHZvaWQgTm9kZTo6c2V0
RG9jdW1lbnQoRG9jdW1lbnQqIGRvY3VtZW4KIAogICAgIGlmIChtX2RvY3VtZW50KSB7CiAgICAg
ICAgIG1fZG9jdW1lbnQtPm1vdmVOb2RlSXRlcmF0b3JzVG9OZXdEb2N1bWVudCh0aGlzLCBkb2N1
bWVudCk7CisKKyAgICAgICAgaWYgKHRvRWxlbWVudCh0aGlzKS0+c2Nyb2xsYWJsZUVsZW1lbnQo
KSkKKyAgICAgICAgICAgIHRvRWxlbWVudCh0aGlzKS0+cmVzZXRTY3JvbGxQb3NpdGlvbigpOwor
CiAgICAgICAgIG1fZG9jdW1lbnQtPmd1YXJkRGVyZWYoKTsKICAgICB9CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkocmV2aXNpb24gMTAxNzQxKQorKysg
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjAyLDkgKzIwMiwxMyBAQCBSZW5kZXJMYXllcjo6flJlbmRlckxheWVyKCkKICAgICAgICAg
ICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+cmVzaXplTGF5ZXJEZXN0cm95ZWQoKTsKICAgICB9
CiAKLSAgICBpZiAobV9zY3JvbGxhYmxlQXJlYVBhZ2UpCisgICAgaWYgKG1fc2Nyb2xsYWJsZUFy
ZWFQYWdlKSB7CiAgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWFQYWdlLT5yZW1vdmVTY3JvbGxhYmxl
QXJlYSh0aGlzKTsKIAorICAgICAgICBpZiAoRWxlbWVudCogZWxlbWVudCA9IHRvRWxlbWVudCht
X3JlbmRlcmVyLT5ub2RlKCkpKQorICAgICAgICAgICAgZWxlbWVudC0+c2V0U2Nyb2xsUG9zaXRp
b24oc2Nyb2xsUG9zaXRpb24oKSk7CisgICAgfQorCiAgICAgZGVzdHJveVNjcm9sbGJhcihIb3Jp
em9udGFsU2Nyb2xsYmFyKTsKICAgICBkZXN0cm95U2Nyb2xsYmFyKFZlcnRpY2FsU2Nyb2xsYmFy
KTsKIApAQCAtMTM2OCw4ICsxMzcyLDE2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbEJ5UmVj
dXJzaXZlbHkoTGEKIAogdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9PZmZzZXQoTGF5b3V0VW5p
dCB4LCBMYXlvdXRVbml0IHksIFNjcm9sbE9mZnNldENsYW1waW5nIGNsYW1wKQogewotICAgIGlm
IChjbGFtcCA9PSBTY3JvbGxPZmZzZXRDbGFtcGVkKSB7Ci0gICAgICAgIFJlbmRlckJveCogYm94
ID0gcmVuZGVyQm94KCk7CisgICAgRWxlbWVudCogZWxlbWVudCA9IHRvRWxlbWVudChtX3JlbmRl
cmVyLT5ub2RlKCkpOworICAgIFJlbmRlckJveCogYm94ID0gcmVuZGVyQm94KCk7CisgICAgaWYg
KGVsZW1lbnQgJiYgZWxlbWVudC0+c2Nyb2xsYWJsZUVsZW1lbnQoKSkgeworICAgICAgICBpZiAo
Ym94KSB7CisgICAgICAgICAgICBJbnRQb2ludCBwb2ludCA9IGVsZW1lbnQtPnNjcm9sbGVkUG9z
aXRpb24oKTsKKyAgICAgICAgICAgIHggPSAocG9pbnQueCgpICsgYm94LT5jbGllbnRXaWR0aCgp
KSA+IHNjcm9sbFdpZHRoKCkgPyBzY3JvbGxXaWR0aCgpIC0gYm94LT5jbGllbnRXaWR0aCgpIDog
cG9pbnQueCgpOworICAgICAgICAgICAgeSA9IChwb2ludC55KCkgKyBib3gtPmNsaWVudEhlaWdo
dCgpKSA+IHNjcm9sbEhlaWdodCgpID8gc2Nyb2xsSGVpZ2h0KCkgLSBib3gtPmNsaWVudEhlaWdo
dCgpIDogcG9pbnQueSgpOworICAgICAgICAgICAgZWxlbWVudC0+cmVzZXRTY3JvbGxQb3NpdGlv
bigpOworICAgICAgICB9CisgICAgfSBlbHNlIGlmIChjbGFtcCA9PSBTY3JvbGxPZmZzZXRDbGFt
cGVkKSB7CiAgICAgICAgIGlmICghYm94KQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0xMzc5
LDcgKzEzOTEsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldChMYXlvdXRVCiAg
ICAgICAgIHggPSBtaW4obWF4PExheW91dFVuaXQ+KHgsIDApLCBtYXhYKTsKICAgICAgICAgeSA9
IG1pbihtYXg8TGF5b3V0VW5pdD4oeSwgMCksIG1heFkpOwogICAgIH0KLSAgICAKKwogICAgIFNj
cm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oTGF5b3V0UG9pbnQo
eCwgeSkpOwogfQogCkBAIC00MjgzLDYgKzQyOTUsOSBAQCB2b2lkIFJlbmRlckxheWVyOjpzdHls
ZUNoYW5nZWQoU3R5bGVEaWZmCiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKG1fc2Nyb2xsYWJs
ZUFyZWFQYWdlKSB7CiAgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWFQYWdlLT5yZW1vdmVTY3JvbGxh
YmxlQXJlYSh0aGlzKTsKKworICAgICAgICB0b0VsZW1lbnQobV9yZW5kZXJlci0+bm9kZSgpKS0+
cmVzZXRTY3JvbGxQb3NpdGlvbigpOworCiAgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWFQYWdlID0g
MDsKICAgICB9CiAgICAgCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDIwMDEpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0xMi0wNSAg
UmFrZXNoIEtOICA8cmFrZXNoLmtuQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBTY3JvbGwgcG9z
aXRpb24gaXMgbG9zdCBhZnRlciBoaWRlL3Nob3cgZWxlbWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4NTIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWludGFpbiB0aGUgc2Nyb2xsIHBvc2l0aW9u
IG9mIG92ZXJmbG93IGVsZW1lbnQgd2hlbiB0aGUgc2Nyb2xsYWJsZSByZW5kZXJsYXllciBpcyBi
ZWluZyBkcm9wcGVkLAorICAgICAgICB3aGljaCBjYW4gYmUgdXNlZCB0byByZXN0b3JlIHRoZSBz
Y3JvbGwgcG9zaXRpb24gaWYgc2FtZSBub2RlIGlzIGFnYWluIGFkZGVkIHRvIHJlbmRlciB0cmVl
LgorCisgICAgICAgICogZmFzdC9vdmVyZmxvdy9zY3JvbGwtZGl2LWhpZGUtc2hvdy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNo
b3cuaHRtbDogQWRkZWQuCisKIDIwMTEtMTItMDUgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgT3V0LW9mLWJhbmQgdGV4dCB0cmFja3MgbWF5IG9ubHkg
bG9hZCBmcm9tIHNhbWUgb3JpZ2luIGFzIHRoZSBtZWRpYSBlbGVtZW50J3MgRG9jdW1lbnQncyBv
cmlnaW4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNo
b3ctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cv
c2Nyb2xsLWRpdi1oaWRlLXNob3ctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9vdmVyZmxvdy9zY3JvbGwtZGl2LWhpZGUtc2hvdy1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMjggQEAKK1Njcm9sbGVkIHBvc2l0aW9uIHNob3VsZCBiZSBy
ZXN0b3JlZCB3aGVuIHRoZSBkaXYgaXMgaGlkZGVuIGFuZCBzaG93biBhZ2FpbgorCitsaW5lIDEg
CitsaW5lIDIgCitsaW5lIDMgCitsaW5lIDQgCitsaW5lIDUgCitsaW5lIDYgCitsaW5lIDcgCits
aW5lIDggCitsaW5lIDkgCitsaW5lIDEwIAorbGluZSAxMSAKK2xpbmUgMTIgCisKK0RpdidzIGRp
c3BsYXkgaXMgbm9uZSBub3cKK1BBU1MgZS5zY3JvbGxUb3AgaXMgMAorRGl2J3MgZGlzcGxheSBp
cyBibG9jayBhZ2FpbgorUEFTUyBlLnNjcm9sbFRvcCBpcyAxMDAKK3Njcm9sbGluZyBJZnJhbWUg
dG8gKDUwLDUwKQorSWZyYW1lJ3MgZGlzcGxheSBpcyBub25lIG5vdworSWZyYW1lJ3MgZGlzcGxh
eSBpcyBibG9jayBhZ2FpbgorUEFTUyBmcmFtZS5jb250ZW50V2luZG93LnBhZ2VZT2Zmc2V0IGlz
IDUwCitQQVNTIGZyYW1lLmNvbnRlbnRXaW5kb3cucGFnZVhPZmZzZXQgaXMgNTAKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L292ZXJmbG93L3Njcm9sbC1kaXYtaGlkZS1zaG93Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9zY3JvbGwtZGl2LWhpZGUtc2hvdy5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9zY3JvbGwtZGl2LWhpZGUt
c2hvdy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYzIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0iLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHA+U2Nyb2xsZWQgcG9zaXRpb24gc2hvdWxkIGJlIHJlc3RvcmVkIHdoZW4gdGhlIGRpdiBpcyBo
aWRkZW4gYW5kIHNob3duIGFnYWluPC9wPgorPGRpdiBzdHlsZT0iaGVpZ2h0OjEwMHB4OyBvdmVy
Zmxvdzogc2Nyb2xsOyBkaXNwbGF5OiBibG9jazsiIGlkPSJtYWluIj4KKyAgICBsaW5lIDEgPGJy
Lz4KKyAgICBsaW5lIDIgPGJyLz4KKyAgICBsaW5lIDMgPGJyLz4KKyAgICBsaW5lIDQgPGJyLz4K
KyAgICBsaW5lIDUgPGJyLz4KKyAgICBsaW5lIDYgPGJyLz4KKyAgICBsaW5lIDcgPGJyLz4KKyAg
ICBsaW5lIDggPGJyLz4KKyAgICBsaW5lIDkgPGJyLz4KKyAgICBsaW5lIDEwIDxici8+CisgICAg
bGluZSAxMSA8YnIvPgorICAgIGxpbmUgMTIgPGJyLz4KKzwvZGl2PgorCis8aWZyYW1lIGlkPSJm
cmFtZSIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7IHdpZHRoOjQwMHB4OyBoZWlnaHQ6IDQwMHB4OyI+
PC9pZnJhbWU+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluIik7CitpZiAoZS5zdHlsZS5kaXNwbGF5ID09ICdi
bG9jaycpCisgICAgZS5zY3JvbGxUb3AgPSAxMDA7CitlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7
CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBub25lIG5vdyIpOworc2hvdWxkQmUoJ2Uuc2Nyb2xs
VG9wJywgJzAnKTsKKworZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK2RlYnVnKCJEaXYncyBk
aXNwbGF5IGlzIGJsb2NrIGFnYWluIik7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMTAwJyk7
CisKK3ZhciBmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcmFtZScpOwordmFyIGRv
YyA9IGZyYW1lLmNvbnRlbnREb2N1bWVudC5vcGVuKCk7Citkb2Mud3JpdGUoIjxkaXYgc3R5bGU9
J3dpZHRoOjEwMHB4OyBoZWlnaHQ6MTAwcHg7IGJhY2tncm91bmQ6eWVsbG93Oyc+PC9kaXY+Iik7
Citkb2MuY2xvc2UoKTsKK2ZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LnN0eWxlLndpZHRoID0g
IjIwMDBweCI7CitmcmFtZS5jb250ZW50RG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHQgPSAiMjAw
MHB4IjsKKworaWYgKGZyYW1lLnN0eWxlLmRpc3BsYXkgPT0gJ2Jsb2NrJykgeworICAgIGRlYnVn
KCJzY3JvbGxpbmcgSWZyYW1lIHRvICg1MCw1MCkiKTsKKyAgICBmcmFtZS5jb250ZW50V2luZG93
LnNjcm9sbFRvKDUwLDUwKTsKK30KKworZnJhbWUuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKK2Rl
YnVnKCJJZnJhbWUncyBkaXNwbGF5IGlzIG5vbmUgbm93Iik7CisKK2ZyYW1lLnN0eWxlLmRpc3Bs
YXkgPSAnYmxvY2snOworZGVidWcoIklmcmFtZSdzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4iKTsK
Kworc2hvdWxkQmUoJ2ZyYW1lLmNvbnRlbnRXaW5kb3cucGFnZVlPZmZzZXQnLCAnNTAnKTsKK3No
b3VsZEJlKCdmcmFtZS5jb250ZW50V2luZG93LnBhZ2VYT2Zmc2V0JywgJzUwJyk7CisKK3N1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118183</attachid>
            <date>2011-12-07 01:18:24 -0800</date>
            <delta_ts>2011-12-08 11:39:35 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-72852-20111207144201.patch</filename>
            <type>text/plain</type>
            <size>10884</size>
            <attacher name="Rakesh">rakeshchaitan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjIyNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDExLTEyLTA3ICBSYWtlc2gg
S04gIDxyYWtlc2gua25AbW90b3JvbGEuY29tPgorCisgICAgICAgIFNjcm9sbCBwb3NpdGlvbiBp
cyBsb3N0IGFmdGVyIGhpZGUvc2hvdyBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjg1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1haW50YWluIHRoZSBzY3JvbGwgcG9zaXRpb24gb2Ygb3Zl
cmZsb3cgZWxlbWVudCB3aGVuIHRoZSBzY3JvbGxhYmxlIHJlbmRlcmxheWVyIGlzIGJlaW5nIGRy
b3BwZWQsCisgICAgICAgIHdoaWNoIGNhbiBiZSB1c2VkIHRvIHJlc3RvcmUgdGhlIHNjcm9sbCBw
b3NpdGlvbiBpZiBzYW1lIG5vZGUgaXMgYWdhaW4gYWRkZWQgdG8gcmVuZGVyIHRyZWUKKworICAg
ICAgICBUZXN0OiBmYXN0L292ZXJmbG93L3Njcm9sbC1kaXYtaGlkZS1zaG93Lmh0bWwKKworICAg
ICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNjcm9s
bGFibGVFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNjcm9sbGVkUG9zaXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0U2Nyb2xsUG9zaXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVzZXRTY3JvbGxQb3NpdGlvbik6CisgICAgICAgICog
ZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgSGVscGVyIGZ1bmN0aW9ucyBmb3IgYWNjZXNzaW5nIHNj
cm9sbCBwb3NpdGlvbiBmcm9tIHJhcmUgZGF0YS4KKyAgICAgICAgKiBkb20vRWxlbWVudFJhcmVE
YXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UmFyZURhdGE6OnNjcm9sbGFibGVFbGVt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6c2Nyb2xsZWRQb3NpdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UmFyZURhdGE6OnNldFNjcm9sbFBvc2l0aW9u
KToKKyAgICAgICAgSGVscGVyIGZ1bmN0aW9ucyBmb3IgbWFpbnRhaW5pbmcgc2Nyb2xsIHBvc2l0
aW9uLgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnNl
dERvY3VtZW50KToKKyAgICAgICAgUmVzZXR0aW5nIHRoZSBzY3JvbGwgcG9zaXRpb24gaWYgbm9k
ZSBpcyBtb3ZlZCB0byBvdGhlciBkb2N1bWVudC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6On5SZW5kZXJMYXllcik6
CisgICAgICAgIFN0b3JpbmcgdGhlIHNjcm9sbCBwb3NpdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldCk6CisgICAgICAgIFdoaXRlIHNwYWNlIHJlbW92
ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlU2Nyb2xsSW5mb0FmdGVy
TGF5b3V0KToKKyAgICAgICAgU2V0dGluZyB0aGUgc2Nyb2xsIHBvc2l0aW9uIGlmIGl0IGhhcyBi
ZWVuIHN0b3JlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzdHlsZUNoYW5nZWQp
OgorICAgICAgICBSZXNldHRpbmcgdGhlIHNjcm9sbCBwb3NpdGlvbiBpZiBzdHlsZSBoYXMgY2hh
bmdlZCwgaXRzIG5vIG1vcmUgc2Nyb2xsYWJsZS4KKwogMjAxMS0xMi0wNyAgUnlvc3VrZSBOaXdh
ICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBUeXBpbmdDb21tYW5kIGR1cGxpY2F0ZXMg
Y29kZSB0byBvYnRhaW4gdGhlIGxhc3QgdHlwaW5nIGNvbW1hbmQKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAJKHJldmlzaW9uIDEwMTc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAzMCw2ICsyMDMwLDI4IEBAIFBhc3NSZWZQdHI8V2Vi
S2l0QW5pbWF0aW9uTGlzdD4gRWxlbWVudDoKICAgICByZXR1cm4gYW5pbUNvbnRyb2xsZXItPmFu
aW1hdGlvbnNGb3JSZW5kZXJlcihyZW5kZXJlcigpKTsKIH0KIAorYm9vbCBFbGVtZW50OjpzY3Jv
bGxhYmxlRWxlbWVudCgpCit7CisgICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgPyByYXJlRGF0YSgp
LT5zY3JvbGxhYmxlRWxlbWVudCgpIDogZmFsc2U7Cit9CisKK0ludFBvaW50IEVsZW1lbnQ6OnNj
cm9sbGVkUG9zaXRpb24oKSBjb25zdAoreworICAgIHJldHVybiBoYXNSYXJlRGF0YSgpID8gcmFy
ZURhdGEoKS0+c2Nyb2xsZWRQb3NpdGlvbigpIDogSW50UG9pbnQoKTsKK30KKwordm9pZCBFbGVt
ZW50OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYgcG9pbnQpCit7CisgICAgRWxl
bWVudFJhcmVEYXRhKiBkYXRhID0gaGFzUmFyZURhdGEoKSA/IHJhcmVEYXRhKCkgOiBlbnN1cmVS
YXJlRGF0YSgpOworICAgIGRhdGEtPnNldFNjcm9sbFBvc2l0aW9uKHBvaW50KTsKK30KKwordm9p
ZCBFbGVtZW50OjpyZXNldFNjcm9sbFBvc2l0aW9uKCkKK3sKKyAgICBpZiAoc2Nyb2xsYWJsZUVs
ZW1lbnQoKSkKKyAgICAgICAgcmFyZURhdGEoKS0+c2V0U2Nyb2xsUG9zaXRpb24oSW50UG9pbnQo
KSk7Cit9CisKICNpZm5kZWYgTkRFQlVHCiBib29sIEVsZW1lbnQ6OmZhc3RBdHRyaWJ1dGVMb29r
dXBBbGxvd2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0CiB7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmgJKHJldmlzaW9uIDEwMTc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2NCw2ICszNjQsMTEgQEAgcHVibGljOgogICAgIFBh
c3NSZWZQdHI8V2ViS2l0QW5pbWF0aW9uTGlzdD4gd2Via2l0R2V0QW5pbWF0aW9ucygpIGNvbnN0
OwogICAgIAogICAgIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yUmVuZGVyZXIoKTsK
KyAKKyAgICBib29sIHNjcm9sbGFibGVFbGVtZW50KCk7CisgICAgSW50UG9pbnQgc2Nyb2xsZWRQ
b3NpdGlvbigpIGNvbnN0OworICAgIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgSW50UG9p
bnQmID0gSW50UG9pbnQoKSk7CisgICAgdm9pZCByZXNldFNjcm9sbFBvc2l0aW9uKCk7CiAKIHBy
b3RlY3RlZDoKICAgICBFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50KiBkb2N1bWVudCwgQ29uc3RydWN0aW9uVHlwZSB0eXBlKQpJbmRleDogU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50UmFyZURhdGEuaAkocmV2aXNpb24gMTAxNzQxKQorKysgU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnRSYXJlRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1MiwxMSBAQCBw
dWJsaWM6CiAKICAgICBib29sIG1fc3R5bGVBZmZlY3RlZEJ5RW1wdHk7CiAKKyAgICBJbnRQb2lu
dCBtX3Njcm9sbGVkUG9zaXRpb247CisgICAgaW5saW5lIGJvb2wgc2Nyb2xsYWJsZUVsZW1lbnQo
KSB7IHJldHVybiAobV9zY3JvbGxlZFBvc2l0aW9uICE9IEludFBvaW50KCkpOyB9CisgICAgaW5s
aW5lIEludFBvaW50IHNjcm9sbGVkUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGVk
UG9zaXRpb247IH0KKyAgICBpbmxpbmUgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQ
b2ludCYgcG9pbnQpIHsgbV9zY3JvbGxlZFBvc2l0aW9uID0gcG9pbnQ7IH0gCisKICNpZiBFTkFC
TEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgYm9vbCBtX2NvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnQ7
CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJKHJldmlzaW9uIDEwMTc0MSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDU3LDYgKzQ1Nyw5IEBA
IHZvaWQgTm9kZTo6c2V0RG9jdW1lbnQoRG9jdW1lbnQqIGRvY3VtZW4KIAogICAgIGlmIChtX2Rv
Y3VtZW50KSB7CiAgICAgICAgIG1fZG9jdW1lbnQtPm1vdmVOb2RlSXRlcmF0b3JzVG9OZXdEb2N1
bWVudCh0aGlzLCBkb2N1bWVudCk7CisKKyAgICAgICAgdG9FbGVtZW50KHRoaXMpLT5yZXNldFNj
cm9sbFBvc2l0aW9uKCk7CisKICAgICAgICAgbV9kb2N1bWVudC0+Z3VhcmREZXJlZigpOwogICAg
IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCShyZXZp
c2lvbiAxMDE3NDEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yMDIsOSArMjAyLDEzIEBAIFJlbmRlckxheWVyOjp+UmVuZGVy
TGF5ZXIoKQogICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5yZXNpemVMYXllckRl
c3Ryb3llZCgpOwogICAgIH0KIAotICAgIGlmIChtX3Njcm9sbGFibGVBcmVhUGFnZSkKKyAgICBp
ZiAobV9zY3JvbGxhYmxlQXJlYVBhZ2UpIHsKICAgICAgICAgbV9zY3JvbGxhYmxlQXJlYVBhZ2Ut
PnJlbW92ZVNjcm9sbGFibGVBcmVhKHRoaXMpOwogCisgICAgICAgIGlmIChFbGVtZW50KiBlbGVt
ZW50ID0gdG9FbGVtZW50KG1fcmVuZGVyZXItPm5vZGUoKSkpCisgICAgICAgICAgICBlbGVtZW50
LT5zZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbigpKTsKKyAgICB9CisKICAgICBkZXN0
cm95U2Nyb2xsYmFyKEhvcml6b250YWxTY3JvbGxiYXIpOwogICAgIGRlc3Ryb3lTY3JvbGxiYXIo
VmVydGljYWxTY3JvbGxiYXIpOwogCkBAIC0xMzc5LDcgKzEzODMsNyBAQCB2b2lkIFJlbmRlckxh
eWVyOjpzY3JvbGxUb09mZnNldChMYXlvdXRVCiAgICAgICAgIHggPSBtaW4obWF4PExheW91dFVu
aXQ+KHgsIDApLCBtYXhYKTsKICAgICAgICAgeSA9IG1pbihtYXg8TGF5b3V0VW5pdD4oeSwgMCks
IG1heFkpOwogICAgIH0KLSAgICAKKwogICAgIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNl
dFdpdGhvdXRBbmltYXRpb24oTGF5b3V0UG9pbnQoeCwgeSkpOwogfQogCkBAIC0yMjY0LDYgKzIy
NjgsMTIgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlU2Nyb2xsSW5mb0FmdGVyTAogICAgIGJv
b2wgaG9yaXpvbnRhbE92ZXJmbG93LCB2ZXJ0aWNhbE92ZXJmbG93OwogICAgIGNvbXB1dGVTY3Jv
bGxEaW1lbnNpb25zKCZob3Jpem9udGFsT3ZlcmZsb3csICZ2ZXJ0aWNhbE92ZXJmbG93KTsKIAor
ICAgIEVsZW1lbnQqIGVsZW1lbnQgPSB0b0VsZW1lbnQobV9yZW5kZXJlci0+bm9kZSgpKTsKKyAg
ICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LT5zY3JvbGxhYmxlRWxlbWVudCgpKSB7CisgICAgICAg
IG1fc2Nyb2xsT2Zmc2V0ID0gdG9TaXplKGVsZW1lbnQtPnNjcm9sbGVkUG9zaXRpb24oKSk7Cisg
ICAgICAgIGVsZW1lbnQtPnJlc2V0U2Nyb2xsUG9zaXRpb24oKTsKKyAgICB9CisKICAgICBpZiAo
Ym94LT5zdHlsZSgpLT5vdmVyZmxvd1goKSAhPSBPTUFSUVVFRSkgewogICAgICAgICAvLyBMYXlv
dXQgbWF5IGNhdXNlIHVzIHRvIGJlIGluIGFuIGludmFsaWQgc2Nyb2xsIHBvc2l0aW9uLiAgSW4g
dGhpcyBjYXNlIHdlIG5lZWQKICAgICAgICAgLy8gdG8gcHVsbCBvdXIgc2Nyb2xsIG9mZnNldHMg
YmFjayB0byB0aGUgbWF4IChvciBwdXNoIHRoZW0gdXAgdG8gdGhlIG1pbikuCkBAIC00MjgzLDYg
KzQyOTMsOSBAQCB2b2lkIFJlbmRlckxheWVyOjpzdHlsZUNoYW5nZWQoU3R5bGVEaWZmCiAgICAg
ICAgIH0KICAgICB9IGVsc2UgaWYgKG1fc2Nyb2xsYWJsZUFyZWFQYWdlKSB7CiAgICAgICAgIG1f
c2Nyb2xsYWJsZUFyZWFQYWdlLT5yZW1vdmVTY3JvbGxhYmxlQXJlYSh0aGlzKTsKKworICAgICAg
ICB0b0VsZW1lbnQobV9yZW5kZXJlci0+bm9kZSgpKS0+cmVzZXRTY3JvbGxQb3NpdGlvbigpOwor
CiAgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWFQYWdlID0gMDsKICAgICB9CiAgICAgCkluZGV4OiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxMDIyMjUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0xMi0wNyAgUmFrZXNoIEtOICA8cmFrZXNoLmtuQG1v
dG9yb2xhLmNvbT4KKworICAgICAgICBTY3JvbGwgcG9zaXRpb24gaXMgbG9zdCBhZnRlciBoaWRl
L3Nob3cgZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzI4NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBNYWludGFpbiB0aGUgc2Nyb2xsIHBvc2l0aW9uIG9mIG92ZXJmbG93IGVsZW1lbnQgd2hl
biB0aGUgc2Nyb2xsYWJsZSByZW5kZXJsYXllciBpcyBiZWluZyBkcm9wcGVkLAorICAgICAgICB3
aGljaCBjYW4gYmUgdXNlZCB0byByZXN0b3JlIHRoZSBzY3JvbGwgcG9zaXRpb24gaWYgc2FtZSBu
b2RlIGlzIGFnYWluIGFkZGVkIHRvIHJlbmRlciB0cmVlLiAKKworICAgICAgICAqIGZhc3Qvb3Zl
cmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNob3ctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L292ZXJmbG93L3Njcm9sbC1kaXYtaGlkZS1zaG93Lmh0bWw6IEFkZGVkLgorCiAyMDEx
LTEyLTA3ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBi
YWNrIGEgZmlsZSBhY2NpZGVudGFsbHkgcmVtb3ZlZCBpbiByMTAyMjEwLgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9vdmVyZmxvdy9zY3JvbGwtZGl2LWhpZGUtc2hvdy1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9zY3JvbGwtZGl2LWhpZGUtc2hv
dy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93
L3Njcm9sbC1kaXYtaGlkZS1zaG93LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwzNiBAQAorU2Nyb2xsZWQgcG9zaXRpb24gc2hvdWxkIGJlIHJlc3RvcmVkIHdoZW4gdGhlIGRp
diBpcyBoaWRkZW4gYW5kIHNob3duIGFnYWluCisKK2xpbmUgMSAKK2xpbmUgMiAKK2xpbmUgMyAK
K2xpbmUgNCAKK2xpbmUgNSAKK2xpbmUgNiAKK2xpbmUgNyAKK2xpbmUgOCAKK2xpbmUgOSAKK2xp
bmUgMTAgCitsaW5lIDExIAorbGluZSAxMiAKKworRGl2J3MgZGlzcGxheSBpcyBub25lIG5vdwor
UEFTUyBlLnNjcm9sbFRvcCBpcyAwCitEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluCitGQUlM
IGUuc2Nyb2xsVG9wIHNob3VsZCBiZSAxMDAuIFdhcyAwLgorc2Nyb2xsaW5nIElmcmFtZSB0byAo
NTAsNTApCisKK1Rlc3QgaWZyYW1lIHNjcm9sbGluZworSWZyYW1lJ3MgZGlzcGxheSBpcyBub25l
IG5vdworSWZyYW1lJ3MgZGlzcGxheSBpcyBibG9jayBhZ2FpbgorUEFTUyBmcmFtZS5jb250ZW50
V2luZG93LnBhZ2VZT2Zmc2V0IGlzIDUwCitQQVNTIGZyYW1lLmNvbnRlbnRXaW5kb3cucGFnZVhP
ZmZzZXQgaXMgNTAKKworVGVzdCB0aGF0IGFmdGVyIGNoYW5nZSBpbiBzY3JvbGwgcHJvcGVydHks
IHRoZSBzY3JvbGwgcG9zaXRpb24gaXMgcmVzZXQKK0RpdidzIGRpc3BsYXkgaXMgbm9uZSBub3cK
K2NoYW5naW5nIHRoZSBvdmVyZmxvdyBwcm9wZXJ0eSBvZiB0aGUgZGl2IHRvIHZpc2libGUKK0Rp
didzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4KK1BBU1MgZS5zY3JvbGxUb3AgaXMgMAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNob3cuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9sbC1kaXYtaGlkZS1zaG93Lmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9sbC1kaXYtaGlk
ZS1zaG93Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzUgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8cD5TY3JvbGxlZCBwb3NpdGlvbiBzaG91bGQgYmUgcmVzdG9yZWQgd2hlbiB0aGUgZGl2IGlz
IGhpZGRlbiBhbmQgc2hvd24gYWdhaW48L3A+Cis8ZGl2IHN0eWxlPSJoZWlnaHQ6MTAwcHg7IG92
ZXJmbG93OiBzY3JvbGw7IGRpc3BsYXk6IGJsb2NrOyIgaWQ9Im1haW4iPgorICAgIGxpbmUgMSA8
YnIvPgorICAgIGxpbmUgMiA8YnIvPgorICAgIGxpbmUgMyA8YnIvPgorICAgIGxpbmUgNCA8YnIv
PgorICAgIGxpbmUgNSA8YnIvPgorICAgIGxpbmUgNiA8YnIvPgorICAgIGxpbmUgNyA8YnIvPgor
ICAgIGxpbmUgOCA8YnIvPgorICAgIGxpbmUgOSA8YnIvPgorICAgIGxpbmUgMTAgPGJyLz4KKyAg
ICBsaW5lIDExIDxici8+CisgICAgbGluZSAxMiA8YnIvPgorPC9kaXY+CisKKzxpZnJhbWUgaWQ9
ImZyYW1lIiBzdHlsZT0iZGlzcGxheTpibG9jazsgd2lkdGg6NDAwcHg7IGhlaWdodDogNDAwcHg7
Ij48L2lmcmFtZT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBlID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4iKTsKK2lmIChlLnN0eWxlLmRpc3BsYXkgPT0g
J2Jsb2NrJykKKyAgICBlLnNjcm9sbFRvcCA9IDEwMDsKK2Uuc3R5bGUuZGlzcGxheSA9ICdub25l
JzsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93Iik7CitzaG91bGRCZSgnZS5zY3Jv
bGxUb3AnLCAnMCcpOworCitlLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOworZGVidWcoIkRpdidz
IGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4iKTsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcxMDAn
KTsKKwordmFyIGZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZyYW1lJyk7Cit2YXIg
ZG9jID0gZnJhbWUuY29udGVudERvY3VtZW50Lm9wZW4oKTsKK2RvYy53cml0ZSgiPGRpdiBzdHls
ZT0nd2lkdGg6MTAwcHg7IGhlaWdodDoxMDBweDsgYmFja2dyb3VuZDp5ZWxsb3c7Jz48L2Rpdj4i
KTsKK2RvYy5jbG9zZSgpOworZnJhbWUuY29udGVudERvY3VtZW50LmJvZHkuc3R5bGUud2lkdGgg
PSAiMjAwMHB4IjsKK2ZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LnN0eWxlLmhlaWdodCA9ICIy
MDAwcHgiOworCitpZiAoZnJhbWUuc3R5bGUuZGlzcGxheSA9PSAnYmxvY2snKSB7CisgICAgZGVi
dWcoInNjcm9sbGluZyBJZnJhbWUgdG8gKDUwLDUwKSIpOworICAgIGZyYW1lLmNvbnRlbnRXaW5k
b3cuc2Nyb2xsVG8oNTAsNTApOworfQorCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCBpZnJhbWUg
c2Nyb2xsaW5nIik7CitmcmFtZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworZGVidWcoIklmcmFt
ZSdzIGRpc3BsYXkgaXMgbm9uZSBub3ciKTsKKworZnJhbWUuc3R5bGUuZGlzcGxheSA9ICdibG9j
ayc7CitkZWJ1ZygiSWZyYW1lJ3MgZGlzcGxheSBpcyBibG9jayBhZ2FpbiIpOworCitzaG91bGRC
ZSgnZnJhbWUuY29udGVudFdpbmRvdy5wYWdlWU9mZnNldCcsICc1MCcpOworc2hvdWxkQmUoJ2Zy
YW1lLmNvbnRlbnRXaW5kb3cucGFnZVhPZmZzZXQnLCAnNTAnKTsKKworZGVidWcoIiIpOworZGVi
dWcoIlRlc3QgdGhhdCBhZnRlciBjaGFuZ2UgaW4gc2Nyb2xsIHByb3BlcnR5LCB0aGUgc2Nyb2xs
IHBvc2l0aW9uIGlzIHJlc2V0Iik7CitlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CitkZWJ1Zygi
RGl2J3MgZGlzcGxheSBpcyBub25lIG5vdyIpOworZGVidWcoImNoYW5naW5nIHRoZSBvdmVyZmxv
dyBwcm9wZXJ0eSBvZiB0aGUgZGl2IHRvIHZpc2libGUiKTsKK2Uuc3R5bGUub3ZlcmZsb3cgPSAi
dmlzaWJsZSI7CitlLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOworZGVidWcoIkRpdidzIGRpc3Bs
YXkgaXMgYmxvY2sgYWdhaW4iKTsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7CisKK3N1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118338</attachid>
            <date>2011-12-07 23:44:03 -0800</date>
            <delta_ts>2011-12-10 11:36:46 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-72852-20111208130737.patch</filename>
            <type>text/plain</type>
            <size>10797</size>
            <attacher name="Rakesh">rakeshchaitan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjMxOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDExLTEyLTA3ICBSYWtlc2gg
S04gIDxyYWtlc2gua25AbW90b3JvbGEuY29tPgorCisgICAgICAgIFNjcm9sbCBwb3NpdGlvbiBp
cyBsb3N0IGFmdGVyIGhpZGUvc2hvdyBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjg1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1haW50YWluIHRoZSBzY3JvbGwgcG9zaXRpb24gb2Ygb3Zl
cmZsb3cgZWxlbWVudCB3aGVuIHRoZSBzY3JvbGxhYmxlIHJlbmRlcmxheWVyIGlzIGJlaW5nIGRy
b3BwZWQsCisgICAgICAgIHdoaWNoIGNhbiBiZSB1c2VkIHRvIHJlc3RvcmUgdGhlIHNjcm9sbCBw
b3NpdGlvbiBpZiBzYW1lIG5vZGUgaXMgYWdhaW4gYWRkZWQgdG8gcmVuZGVyIHRyZWUKKworICAg
ICAgICBUZXN0OiBmYXN0L292ZXJmbG93L3Njcm9sbC1kaXYtaGlkZS1zaG93Lmh0bWwKKworICAg
ICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNjcm9s
bGFibGVFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNjcm9sbGVkUG9zaXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0U2Nyb2xsUG9zaXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVzZXRTY3JvbGxQb3NpdGlvbik6CisgICAgICAgICog
ZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgSGVscGVyIGZ1bmN0aW9ucyBmb3IgYWNjZXNzaW5nIHNj
cm9sbCBwb3NpdGlvbiBmcm9tIHJhcmUgZGF0YS4KKyAgICAgICAgKiBkb20vRWxlbWVudFJhcmVE
YXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UmFyZURhdGE6OnNjcm9sbGFibGVFbGVt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6c2Nyb2xsZWRQb3NpdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UmFyZURhdGE6OnNldFNjcm9sbFBvc2l0aW9u
KToKKyAgICAgICAgSGVscGVyIGZ1bmN0aW9ucyBmb3IgbWFpbnRhaW5pbmcgc2Nyb2xsIHBvc2l0
aW9uLgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnNl
dERvY3VtZW50KToKKyAgICAgICAgUmVzZXR0aW5nIHRoZSBzY3JvbGwgcG9zaXRpb24gaWYgbm9k
ZSBpcyBtb3ZlZCB0byBvdGhlciBkb2N1bWVudC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OlJlbmRlckxheWVyKToK
KyAgICAgICAgUmVzdG9yaW5nIHRoZSBzY3JvbGwgcG9zaXRpb24gaWYgaXQgd2FzIHN0b3JlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp+UmVuZGVyTGF5ZXIpOgorICAgICAgICBT
dG9yaW5nIHRoZSBzY3JvbGwgcG9zaXRpb24uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6c2Nyb2xsVG9PZmZzZXQpOgorICAgICAgICBXaGl0ZSBzcGFjZSByZW1vdmVkLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnN0eWxlQ2hhbmdlZCk6CisgICAgICAgIFJlc2V0dGlu
ZyB0aGUgc2Nyb2xsIHBvc2l0aW9uIGlmIHN0eWxlIGhhcyBjaGFuZ2VkLCBpdHMgbm8gbW9yZSBz
Y3JvbGxhYmxlLgorCiAyMDExLTEyLTA3ICBEbWl0cnkgTG9tb3YgIDxkc2xvbW92QGdvb2dsZS5j
b20+CiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0
MDM4CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxMDE3NDEpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMzAsNiArMjAz
MCwyNyBAQCBQYXNzUmVmUHRyPFdlYktpdEFuaW1hdGlvbkxpc3Q+IEVsZW1lbnQ6CiAgICAgcmV0
dXJuIGFuaW1Db250cm9sbGVyLT5hbmltYXRpb25zRm9yUmVuZGVyZXIocmVuZGVyZXIoKSk7CiB9
CiAKK2Jvb2wgRWxlbWVudDo6c2Nyb2xsYWJsZUVsZW1lbnQoKQoreworICAgIHJldHVybiBoYXNS
YXJlRGF0YSgpICYmIHJhcmVEYXRhKCktPnNjcm9sbGFibGVFbGVtZW50KCk7Cit9CisKK0ludFBv
aW50IEVsZW1lbnQ6OnNjcm9sbGVkUG9zaXRpb24oKSBjb25zdAoreworICAgIHJldHVybiBoYXNS
YXJlRGF0YSgpID8gcmFyZURhdGEoKS0+c2Nyb2xsZWRQb3NpdGlvbigpIDogSW50UG9pbnQoKTsK
K30KKwordm9pZCBFbGVtZW50OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYgcG9p
bnQpCit7CisgICAgZW5zdXJlUmFyZURhdGEoKS0+c2V0U2Nyb2xsUG9zaXRpb24ocG9pbnQpOwor
fQorCit2b2lkIEVsZW1lbnQ6OnJlc2V0U2Nyb2xsUG9zaXRpb24oKQoreworICAgIGlmIChzY3Jv
bGxhYmxlRWxlbWVudCgpKQorICAgICAgICByYXJlRGF0YSgpLT5zZXRTY3JvbGxQb3NpdGlvbihJ
bnRQb2ludCgpKTsKK30KKwogI2lmbmRlZiBOREVCVUcKIGJvb2wgRWxlbWVudDo6ZmFzdEF0dHJp
YnV0ZUxvb2t1cEFsbG93ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKIHsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuaAkocmV2aXNpb24gMTAxNzQxKQorKysgU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzY0LDYgKzM2NCwxMSBAQCBwdWJsaWM6
CiAgICAgUGFzc1JlZlB0cjxXZWJLaXRBbmltYXRpb25MaXN0PiB3ZWJraXRHZXRBbmltYXRpb25z
KCkgY29uc3Q7CiAgICAgCiAgICAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JSZW5k
ZXJlcigpOworIAorICAgIGJvb2wgc2Nyb2xsYWJsZUVsZW1lbnQoKTsKKyAgICBJbnRQb2ludCBz
Y3JvbGxlZFBvc2l0aW9uKCkgY29uc3Q7CisgICAgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25z
dCBJbnRQb2ludCYgPSBJbnRQb2ludCgpKTsKKyAgICB2b2lkIHJlc2V0U2Nyb2xsUG9zaXRpb24o
KTsKIAogcHJvdGVjdGVkOgogICAgIEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBDb25zdHJ1Y3Rpb25UeXBlIHR5cGUpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCShyZXZpc2lvbiAxMDE3NDEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUy
LDExIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgbV9zdHlsZUFmZmVjdGVkQnlFbXB0eTsKIAorICAg
IEludFBvaW50IG1fc2Nyb2xsZWRQb3NpdGlvbjsKKyAgICBpbmxpbmUgYm9vbCBzY3JvbGxhYmxl
RWxlbWVudCgpIHsgcmV0dXJuIChtX3Njcm9sbGVkUG9zaXRpb24gIT0gSW50UG9pbnQoKSk7IH0K
KyAgICBpbmxpbmUgSW50UG9pbnQgc2Nyb2xsZWRQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1f
c2Nyb2xsZWRQb3NpdGlvbjsgfQorICAgIGlubGluZSB2b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNv
bnN0IEludFBvaW50JiBwb2ludCkgeyBtX3Njcm9sbGVkUG9zaXRpb24gPSBwb2ludDsgfSAKKwog
I2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBib29sIG1fY29udGFpbnNGdWxsU2NyZWVu
RWxlbWVudDsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAkocmV2aXNpb24gMTAxNzQxKQor
KysgU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NTcsNiAr
NDU3LDEwIEBAIHZvaWQgTm9kZTo6c2V0RG9jdW1lbnQoRG9jdW1lbnQqIGRvY3VtZW4KIAogICAg
IGlmIChtX2RvY3VtZW50KSB7CiAgICAgICAgIG1fZG9jdW1lbnQtPm1vdmVOb2RlSXRlcmF0b3Jz
VG9OZXdEb2N1bWVudCh0aGlzLCBkb2N1bWVudCk7CisKKyAgICAgICAgaWYgKGlzRWxlbWVudE5v
ZGUoKSkKKyAgICAgICAgICAgIHRvRWxlbWVudCh0aGlzKS0+cmVzZXRTY3JvbGxQb3NpdGlvbigp
OworCiAgICAgICAgIG1fZG9jdW1lbnQtPmd1YXJkRGVyZWYoKTsKICAgICB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkocmV2aXNpb24gMTAxNzQxKQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTkzLDYgKzE5MywxNSBAQCBSZW5kZXJMYXllcjo6UmVuZGVyTGF5ZXIoUmVuZGVyQm94
TW9kZWxPCiAgICAgICAgIG1fdmlzaWJsZUNvbnRlbnRTdGF0dXNEaXJ0eSA9IGZhbHNlOwogICAg
ICAgICBtX2hhc1Zpc2libGVDb250ZW50ID0gcmVuZGVyZXItPnN0eWxlKCktPnZpc2liaWxpdHko
KSA9PSBWSVNJQkxFOwogICAgIH0KKworICAgIE5vZGUqIG5vZGUgPSByZW5kZXJlci0+bm9kZSgp
OworICAgIGlmIChub2RlICYmIG5vZGUtPmlzRWxlbWVudE5vZGUoKSkgeworICAgICAgICBFbGVt
ZW50KiBlbGVtZW50ID0gdG9FbGVtZW50KG5vZGUpOworICAgICAgICBpZiAoZWxlbWVudC0+c2Ny
b2xsYWJsZUVsZW1lbnQoKSkgeworICAgICAgICAgICAgbV9zY3JvbGxPZmZzZXQgPSB0b1NpemUo
ZWxlbWVudC0+c2Nyb2xsZWRQb3NpdGlvbigpKTsKKyAgICAgICAgICAgIGVsZW1lbnQtPnJlc2V0
U2Nyb2xsUG9zaXRpb24oKTsKKyAgICAgICAgfQorICAgIH0KIH0KIAogUmVuZGVyTGF5ZXI6On5S
ZW5kZXJMYXllcigpCkBAIC0yMDIsOSArMjExLDE0IEBAIFJlbmRlckxheWVyOjp+UmVuZGVyTGF5
ZXIoKQogICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5yZXNpemVMYXllckRlc3Ry
b3llZCgpOwogICAgIH0KIAotICAgIGlmIChtX3Njcm9sbGFibGVBcmVhUGFnZSkKKyAgICBpZiAo
bV9zY3JvbGxhYmxlQXJlYVBhZ2UpIHsKICAgICAgICAgbV9zY3JvbGxhYmxlQXJlYVBhZ2UtPnJl
bW92ZVNjcm9sbGFibGVBcmVhKHRoaXMpOwogCisgICAgICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRl
cmVyLT5ub2RlKCk7CisgICAgICAgIGlmIChub2RlICYmIG5vZGUtPmlzRWxlbWVudE5vZGUoKSkK
KyAgICAgICAgICAgIHRvRWxlbWVudChub2RlKS0+c2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9z
aXRpb24oKSk7CisgICAgfQorCiAgICAgZGVzdHJveVNjcm9sbGJhcihIb3Jpem9udGFsU2Nyb2xs
YmFyKTsKICAgICBkZXN0cm95U2Nyb2xsYmFyKFZlcnRpY2FsU2Nyb2xsYmFyKTsKIApAQCAtMTM3
OSw3ICsxMzkzLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9PZmZzZXQoTGF5b3V0VQog
ICAgICAgICB4ID0gbWluKG1heDxMYXlvdXRVbml0Pih4LCAwKSwgbWF4WCk7CiAgICAgICAgIHkg
PSBtaW4obWF4PExheW91dFVuaXQ+KHksIDApLCBtYXhZKTsKICAgICB9Ci0gICAgCisKICAgICBT
Y3JvbGxhYmxlQXJlYTo6c2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKExheW91dFBvaW50
KHgsIHkpKTsKIH0KIApAQCAtNDI4Myw2ICs0Mjk3LDExIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnN0
eWxlQ2hhbmdlZChTdHlsZURpZmYKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAobV9zY3JvbGxh
YmxlQXJlYVBhZ2UpIHsKICAgICAgICAgbV9zY3JvbGxhYmxlQXJlYVBhZ2UtPnJlbW92ZVNjcm9s
bGFibGVBcmVhKHRoaXMpOworCisgICAgICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2Rl
KCk7CisgICAgICAgIGlmIChub2RlICYmIG5vZGUtPmlzRWxlbWVudE5vZGUoKSkKKyAgICAgICAg
ICAgIHRvRWxlbWVudChub2RlKS0+cmVzZXRTY3JvbGxQb3NpdGlvbigpOworCiAgICAgICAgIG1f
c2Nyb2xsYWJsZUFyZWFQYWdlID0gMDsKICAgICB9CiAgICAgCkluZGV4OiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAx
MDIzMTkpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxNiBAQAorMjAxMS0xMi0wNyAgUmFrZXNoIEtOICA8cmFrZXNoLmtuQG1vdG9yb2xhLmNvbT4K
KworICAgICAgICBTY3JvbGwgcG9zaXRpb24gaXMgbG9zdCBhZnRlciBoaWRlL3Nob3cgZWxlbWVu
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4NTIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWludGFp
biB0aGUgc2Nyb2xsIHBvc2l0aW9uIG9mIG92ZXJmbG93IGVsZW1lbnQgd2hlbiB0aGUgc2Nyb2xs
YWJsZSByZW5kZXJsYXllciBpcyBiZWluZyBkcm9wcGVkLAorICAgICAgICB3aGljaCBjYW4gYmUg
dXNlZCB0byByZXN0b3JlIHRoZSBzY3JvbGwgcG9zaXRpb24gaWYgc2FtZSBub2RlIGlzIGFnYWlu
IGFkZGVkIHRvIHJlbmRlciB0cmVlCisKKyAgICAgICAgKiBmYXN0L292ZXJmbG93L3Njcm9sbC1k
aXYtaGlkZS1zaG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9vdmVyZmxv
dy9zY3JvbGwtZGl2LWhpZGUtc2hvdy5odG1sOiBBZGRlZC4KKwogMjAxMS0xMi0wNyAgRG1pdHJ5
IExvbW92ICA8ZHNsb21vdkBnb29nbGUuY29tPgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDAzOApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9vdmVy
Zmxvdy9zY3JvbGwtZGl2LWhpZGUtc2hvdy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9zY3JvbGwtZGl2LWhpZGUtc2hvdy1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9sbC1kaXYtaGlk
ZS1zaG93LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNiBAQAorU2Nyb2xs
ZWQgcG9zaXRpb24gc2hvdWxkIGJlIHJlc3RvcmVkIHdoZW4gdGhlIGRpdiBpcyBoaWRkZW4gYW5k
IHNob3duIGFnYWluCisKK2xpbmUgMSAKK2xpbmUgMiAKK2xpbmUgMyAKK2xpbmUgNCAKK2xpbmUg
NSAKK2xpbmUgNiAKK2xpbmUgNyAKK2xpbmUgOCAKK2xpbmUgOSAKK2xpbmUgMTAgCitsaW5lIDEx
IAorbGluZSAxMiAKKworRGl2J3MgZGlzcGxheSBpcyBub25lIG5vdworUEFTUyBlLnNjcm9sbFRv
cCBpcyAwCitEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluCitQQVNTIGUuc2Nyb2xsVG9wIGlz
IDEwMAorc2Nyb2xsaW5nIElmcmFtZSB0byAoNTAsNTApCisKK1Rlc3QgaWZyYW1lIHNjcm9sbGlu
ZworSWZyYW1lJ3MgZGlzcGxheSBpcyBub25lIG5vdworSWZyYW1lJ3MgZGlzcGxheSBpcyBibG9j
ayBhZ2FpbgorUEFTUyBmcmFtZS5jb250ZW50V2luZG93LnBhZ2VZT2Zmc2V0IGlzIDUwCitQQVNT
IGZyYW1lLmNvbnRlbnRXaW5kb3cucGFnZVhPZmZzZXQgaXMgNTAKKworVGVzdCB0aGF0IGFmdGVy
IGNoYW5nZSBpbiBzY3JvbGwgcHJvcGVydHksIHRoZSBzY3JvbGwgcG9zaXRpb24gaXMgcmVzZXQK
K0RpdidzIGRpc3BsYXkgaXMgbm9uZSBub3cKK2NoYW5naW5nIHRoZSBvdmVyZmxvdyBwcm9wZXJ0
eSBvZiB0aGUgZGl2IHRvIHZpc2libGUKK0RpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4KK1BB
U1MgZS5zY3JvbGxUb3AgaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRp
di1oaWRlLXNob3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93
L3Njcm9sbC1kaXYtaGlkZS1zaG93Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L292ZXJmbG93L3Njcm9sbC1kaXYtaGlkZS1zaG93Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5TY3JvbGxlZCBwb3NpdGlvbiBzaG91bGQg
YmUgcmVzdG9yZWQgd2hlbiB0aGUgZGl2IGlzIGhpZGRlbiBhbmQgc2hvd24gYWdhaW48L3A+Cis8
ZGl2IHN0eWxlPSJoZWlnaHQ6MTAwcHg7IG92ZXJmbG93OiBzY3JvbGw7IGRpc3BsYXk6IGJsb2Nr
OyIgaWQ9Im1haW4iPgorICAgIGxpbmUgMSA8YnIvPgorICAgIGxpbmUgMiA8YnIvPgorICAgIGxp
bmUgMyA8YnIvPgorICAgIGxpbmUgNCA8YnIvPgorICAgIGxpbmUgNSA8YnIvPgorICAgIGxpbmUg
NiA8YnIvPgorICAgIGxpbmUgNyA8YnIvPgorICAgIGxpbmUgOCA8YnIvPgorICAgIGxpbmUgOSA8
YnIvPgorICAgIGxpbmUgMTAgPGJyLz4KKyAgICBsaW5lIDExIDxici8+CisgICAgbGluZSAxMiA8
YnIvPgorPC9kaXY+CisKKzxpZnJhbWUgaWQ9ImZyYW1lIiBzdHlsZT0iZGlzcGxheTpibG9jazsg
d2lkdGg6NDAwcHg7IGhlaWdodDogNDAwcHg7Ij48L2lmcmFtZT4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdD4KK3ZhciBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4i
KTsKK2lmIChlLnN0eWxlLmRpc3BsYXkgPT0gJ2Jsb2NrJykKKyAgICBlLnNjcm9sbFRvcCA9IDEw
MDsKK2Uuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIG5v
bmUgbm93Iik7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMCcpOworCitlLnN0eWxlLmRpc3Bs
YXkgPSAnYmxvY2snOworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4iKTsKK3No
b3VsZEJlKCdlLnNjcm9sbFRvcCcsICcxMDAnKTsKKwordmFyIGZyYW1lID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2ZyYW1lJyk7Cit2YXIgZG9jID0gZnJhbWUuY29udGVudERvY3VtZW50Lm9w
ZW4oKTsKK2RvYy53cml0ZSgiPGRpdiBzdHlsZT0nd2lkdGg6MTAwcHg7IGhlaWdodDoxMDBweDsg
YmFja2dyb3VuZDp5ZWxsb3c7Jz48L2Rpdj4iKTsKK2RvYy5jbG9zZSgpOworZnJhbWUuY29udGVu
dERvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMjAwMHB4IjsKK2ZyYW1lLmNvbnRlbnREb2N1
bWVudC5ib2R5LnN0eWxlLmhlaWdodCA9ICIyMDAwcHgiOworCitpZiAoZnJhbWUuc3R5bGUuZGlz
cGxheSA9PSAnYmxvY2snKSB7CisgICAgZGVidWcoInNjcm9sbGluZyBJZnJhbWUgdG8gKDUwLDUw
KSIpOworICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cuc2Nyb2xsVG8oNTAsNTApOworfQorCitkZWJ1
ZygiIik7CitkZWJ1ZygiVGVzdCBpZnJhbWUgc2Nyb2xsaW5nIik7CitmcmFtZS5zdHlsZS5kaXNw
bGF5ID0gJ25vbmUnOworZGVidWcoIklmcmFtZSdzIGRpc3BsYXkgaXMgbm9uZSBub3ciKTsKKwor
ZnJhbWUuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CitkZWJ1ZygiSWZyYW1lJ3MgZGlzcGxheSBp
cyBibG9jayBhZ2FpbiIpOworCitzaG91bGRCZSgnZnJhbWUuY29udGVudFdpbmRvdy5wYWdlWU9m
ZnNldCcsICc1MCcpOworc2hvdWxkQmUoJ2ZyYW1lLmNvbnRlbnRXaW5kb3cucGFnZVhPZmZzZXQn
LCAnNTAnKTsKKworZGVidWcoIiIpOworZGVidWcoIlRlc3QgdGhhdCBhZnRlciBjaGFuZ2UgaW4g
c2Nyb2xsIHByb3BlcnR5LCB0aGUgc2Nyb2xsIHBvc2l0aW9uIGlzIHJlc2V0Iik7CitlLnN0eWxl
LmRpc3BsYXkgPSAnbm9uZSc7CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBub25lIG5vdyIpOwor
ZGVidWcoImNoYW5naW5nIHRoZSBvdmVyZmxvdyBwcm9wZXJ0eSBvZiB0aGUgZGl2IHRvIHZpc2li
bGUiKTsKK2Uuc3R5bGUub3ZlcmZsb3cgPSAidmlzaWJsZSI7CitlLnN0eWxlLmRpc3BsYXkgPSAn
YmxvY2snOworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4iKTsKK3Nob3VsZEJl
KCdlLnNjcm9sbFRvcCcsICcwJyk7CisKK3N1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118694</attachid>
            <date>2011-12-10 11:37:24 -0800</date>
            <delta_ts>2011-12-12 22:58:17 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-72852-20111211010707.patch</filename>
            <type>text/plain</type>
            <size>16100</size>
            <attacher name="Rakesh">rakeshchaitan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjUyMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDExLTEyLTEwICBSYWtlc2gg
S04gIDxyYWtlc2gua25AbW90b3JvbGEuY29tPgorCisgICAgICAgIFNjcm9sbCBwb3NpdGlvbiBp
cyBsb3N0IGFmdGVyIGhpZGUvc2hvdyBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjg1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1haW50YWluIHRoZSBzY3JvbGwgcG9zaXRpb24gb2Ygb3Zl
cmZsb3dpbmcgZWxlbWVudCB3aGVuIHRoZSBzY3JvbGxhYmxlIFJlbmRlckxheWVyIGlzIGJlaW5n
IGRlc3Ryb3llZCwKKyAgICAgICAgd2hpY2ggY2FuIGJlIHVzZWQgdG8gcmVzdG9yZSB0aGUgc2Ny
b2xsIHBvc2l0aW9uIGlmIHRoZSBzYW1lIGVsZW1lbnQgaXMgYWdhaW4gYWRkZWQgdG8gdGhlIHJl
bmRlciB0cmVlLgorCisgICAgICAgIFRlc3Q6IGZhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRl
LXNob3cuaHRtbAorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RWxlbWVudDo6c2Nyb2xsYWJsZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVu
dDo6c2Nyb2xsZWRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzZXRTY3Jv
bGxQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpyZXNldFNjcm9sbFBvc2l0
aW9uKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICBIZWxwZXIgZnVuY3Rpb25z
IGZvciBhY2Nlc3Npbmcgc2Nyb2xsIHBvc2l0aW9uIGZyb20gcmFyZSBkYXRhLgorCisgICAgICAg
ICogZG9tL0VsZW1lbnRSYXJlRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJhcmVE
YXRhOjpzY3JvbGxhYmxlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UmFyZURh
dGE6OnNjcm9sbGVkUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJhcmVEYXRh
OjpzZXRTY3JvbGxQb3NpdGlvbik6CisgICAgICAgIEhlbHBlciBmdW5jdGlvbnMgZm9yIG1haW50
YWluaW5nIHNjcm9sbCBwb3NpdGlvbi4KKworICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok5vZGU6OnNldERvY3VtZW50KToKKyAgICAgICAgUmVzZXR0aW5nIHRoZSBz
Y3JvbGwgcG9zaXRpb24gaWYgbm9kZSBpcyBtb3ZlZCB0byBvdGhlciBkb2N1bWVudC4KKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OlJlbmRlckxheWVyKToKKyAgICAgICAgUmVzdG9yaW5nIHRoZSBzY3JvbGwgcG9zaXRp
b24gaWYgaXQgd2FzIHN0b3JlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp+UmVu
ZGVyTGF5ZXIpOgorICAgICAgICBTdG9yaW5nIHRoZSBzY3JvbGwgcG9zaXRpb24uCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9PZmZzZXQpOgorICAgICAgICBXaGl0ZSBz
cGFjZSByZW1vdmVkLgorCiAyMDExLTEyLTEwICAgQXJrbyBTYWhhICA8YXJrb0Btb3Rvcm9sYS5j
b20+CiAKICAgICAgICAgTWljcm9kYXRhOiBGaXggY29tcGlsYXRpb24gZXJyb3IgaW4gTUlDUk9E
QVRBIGVuYWJsZWQgYnVpbGQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCShyZXZpc2lvbiAx
MDIxNTEpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTIwNDAsNiArMjA0MCwyOCBAQCBQYXNzUmVmUHRyPFdlYktpdEFuaW1hdGlvbkxpc3Q+IEVs
ZW1lbnQ6CiAgICAgcmV0dXJuIGFuaW1Db250cm9sbGVyLT5hbmltYXRpb25zRm9yUmVuZGVyZXIo
cmVuZGVyZXIoKSk7CiB9CiAKK2Jvb2wgRWxlbWVudDo6c2Nyb2xsYWJsZUVsZW1lbnQoKQorewor
ICAgIHJldHVybiBoYXNSYXJlRGF0YSgpICYmIHJhcmVEYXRhKCktPnNjcm9sbGFibGVFbGVtZW50
KCk7Cit9CisKK0ludFBvaW50IEVsZW1lbnQ6OnNjcm9sbGVkUG9zaXRpb24oKSBjb25zdAorewor
ICAgIEFTU0VSVChoYXNSYXJlRGF0YSgpKTsKKyAgICByZXR1cm4gcmFyZURhdGEoKS0+c2Nyb2xs
ZWRQb3NpdGlvbigpOworfQorCit2b2lkIEVsZW1lbnQ6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0
IEludFBvaW50JiBwb2ludCkKK3sKKyAgICBlbnN1cmVSYXJlRGF0YSgpLT5zZXRTY3JvbGxQb3Np
dGlvbihwb2ludCk7Cit9CisKK3ZvaWQgRWxlbWVudDo6cmVzZXRTY3JvbGxQb3NpdGlvbigpCit7
CisgICAgaWYgKHNjcm9sbGFibGVFbGVtZW50KCkpCisgICAgICAgIHJhcmVEYXRhKCktPnNldFNj
cm9sbFBvc2l0aW9uKEludFBvaW50KCkpOworfQorCiAjaWZuZGVmIE5ERUJVRwogYm9vbCBFbGVt
ZW50OjpmYXN0QXR0cmlidXRlTG9va3VwQWxsb3dlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
KSBjb25zdAogewpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCShyZXZpc2lvbiAxMDIxNTEpCisrKyBT
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNjMsNiArMzYz
LDExIEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPFdlYktpdEFuaW1hdGlvbkxpc3Q+IHdlYmtp
dEdldEFuaW1hdGlvbnMoKSBjb25zdDsKICAgICAKICAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxl
PiBzdHlsZUZvclJlbmRlcmVyKCk7CisgCisgICAgYm9vbCBzY3JvbGxhYmxlRWxlbWVudCgpOwor
ICAgIEludFBvaW50IHNjcm9sbGVkUG9zaXRpb24oKSBjb25zdDsKKyAgICB2b2lkIHNldFNjcm9s
bFBvc2l0aW9uKGNvbnN0IEludFBvaW50Jik7CisgICAgdm9pZCByZXNldFNjcm9sbFBvc2l0aW9u
KCk7CiAKIHByb3RlY3RlZDoKICAgICBFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50KiBkb2N1bWVudCwgQ29uc3RydWN0aW9uVHlwZSB0eXBlKQpJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAkocmV2aXNpb24gMTAyMTUxKQorKysgU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1
MiwxMSBAQCBwdWJsaWM6CiAKICAgICBib29sIG1fc3R5bGVBZmZlY3RlZEJ5RW1wdHk7CiAKKyAg
ICBJbnRQb2ludCBtX3Njcm9sbGVkUG9zaXRpb247CisgICAgYm9vbCBzY3JvbGxhYmxlRWxlbWVu
dCgpIHsgcmV0dXJuIChtX3Njcm9sbGVkUG9zaXRpb24gIT0gSW50UG9pbnQ6Onplcm8oKSk7IH0K
KyAgICBJbnRQb2ludCBzY3JvbGxlZFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxl
ZFBvc2l0aW9uOyB9CisgICAgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYg
cG9pbnQpIHsgbV9zY3JvbGxlZFBvc2l0aW9uID0gcG9pbnQ7IH0gCisKICNpZiBFTkFCTEUoRlVM
TFNDUkVFTl9BUEkpCiAgICAgYm9vbCBtX2NvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnQ7CiAjZW5k
aWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJKHJldmlzaW9uIDEwMjE1MSkKKysrIFNvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDU4LDYgKzQ1OCwxMCBAQCB2b2lk
IE5vZGU6OnNldERvY3VtZW50KERvY3VtZW50KiBkb2N1bWVuCiAKICAgICBpZiAobV9kb2N1bWVu
dCkgewogICAgICAgICBtX2RvY3VtZW50LT5tb3ZlTm9kZUl0ZXJhdG9yc1RvTmV3RG9jdW1lbnQo
dGhpcywgZG9jdW1lbnQpOworCisgICAgICAgIGlmIChpc0VsZW1lbnROb2RlKCkpCisgICAgICAg
ICAgICB0b0VsZW1lbnQodGhpcyktPnJlc2V0U2Nyb2xsUG9zaXRpb24oKTsKKwogICAgICAgICBt
X2RvY3VtZW50LT5ndWFyZERlcmVmKCk7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAJKHJldmlzaW9uIDEwMjE1MSkKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5Myw2ICsx
OTMsMTUgQEAgUmVuZGVyTGF5ZXI6OlJlbmRlckxheWVyKFJlbmRlckJveE1vZGVsTwogICAgICAg
ICBtX3Zpc2libGVDb250ZW50U3RhdHVzRGlydHkgPSBmYWxzZTsKICAgICAgICAgbV9oYXNWaXNp
YmxlQ29udGVudCA9IHJlbmRlcmVyLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgPT0gVklTSUJMRTsK
ICAgICB9CisKKyAgICBOb2RlKiBub2RlID0gcmVuZGVyZXItPm5vZGUoKTsKKyAgICBpZiAobm9k
ZSAmJiBub2RlLT5pc0VsZW1lbnROb2RlKCkpIHsKKyAgICAgICAgRWxlbWVudCogZWxlbWVudCA9
IHRvRWxlbWVudChub2RlKTsKKyAgICAgICAgaWYgKGVsZW1lbnQtPnNjcm9sbGFibGVFbGVtZW50
KCkpIHsKKyAgICAgICAgICAgIG1fc2Nyb2xsT2Zmc2V0ID0gdG9TaXplKGVsZW1lbnQtPnNjcm9s
bGVkUG9zaXRpb24oKSk7CisgICAgICAgICAgICBlbGVtZW50LT5yZXNldFNjcm9sbFBvc2l0aW9u
KCk7CisgICAgICAgIH0KKyAgICB9CiB9CiAKIFJlbmRlckxheWVyOjp+UmVuZGVyTGF5ZXIoKQpA
QCAtMjAyLDkgKzIxMSwxNCBAQCBSZW5kZXJMYXllcjo6flJlbmRlckxheWVyKCkKICAgICAgICAg
ICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+cmVzaXplTGF5ZXJEZXN0cm95ZWQoKTsKICAgICB9
CiAKLSAgICBpZiAobV9zY3JvbGxhYmxlQXJlYVBhZ2UpCisgICAgaWYgKG1fc2Nyb2xsYWJsZUFy
ZWFQYWdlKSB7CiAgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWFQYWdlLT5yZW1vdmVTY3JvbGxhYmxl
QXJlYSh0aGlzKTsKIAorICAgICAgICBOb2RlKiBub2RlID0gbV9yZW5kZXJlci0+bm9kZSgpOwor
ICAgICAgICBpZiAobm9kZSAmJiBub2RlLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgICAgICB0
b0VsZW1lbnQobm9kZSktPnNldFNjcm9sbFBvc2l0aW9uKHRvUG9pbnQobV9zY3JvbGxPZmZzZXQp
KTsKKyAgICB9CisKICAgICBkZXN0cm95U2Nyb2xsYmFyKEhvcml6b250YWxTY3JvbGxiYXIpOwog
ICAgIGRlc3Ryb3lTY3JvbGxiYXIoVmVydGljYWxTY3JvbGxiYXIpOwogCkBAIC0xMzc5LDcgKzEz
OTMsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldChMYXlvdXRVCiAgICAgICAg
IHggPSBtaW4obWF4PExheW91dFVuaXQ+KHgsIDApLCBtYXhYKTsKICAgICAgICAgeSA9IG1pbiht
YXg8TGF5b3V0VW5pdD4oeSwgMCksIG1heFkpOwogICAgIH0KLSAgICAKKwogICAgIFNjcm9sbGFi
bGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oTGF5b3V0UG9pbnQoeCwgeSkp
OwogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDI1MjMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0xMi0xMCAgUmFrZXNoIEtO
ICA8cmFrZXNoLmtuQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBTY3JvbGwgcG9zaXRpb24gaXMg
bG9zdCBhZnRlciBoaWRlL3Nob3cgZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBNYWludGFpbiB0aGUgc2Nyb2xsIHBvc2l0aW9uIG9mIG92ZXJm
bG93aW5nIGVsZW1lbnQgd2hlbiB0aGUgc2Nyb2xsYWJsZSBSZW5kZXJMYXllciBpcyBiZWluZyBk
ZXN0cm95ZWQsCisgICAgICAgIHdoaWNoIGNhbiBiZSB1c2VkIHRvIHJlc3RvcmUgdGhlIHNjcm9s
bCBwb3NpdGlvbiBpZiB0aGUgc2FtZSBlbGVtZW50IGlzIGFnYWluIGFkZGVkIHRvIHRoZSByZW5k
ZXIgdHJlZS4KKworICAgICAgICAqIGZhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNob3ct
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L292ZXJmbG93L3Njcm9sbC1kaXYt
aGlkZS1zaG93Lmh0bWw6IEFkZGVkLgorCiAyMDExLTEyLTA5ICAgQXJrbyBTYWhhICA8YXJrb0Bt
b3Rvcm9sYS5jb20+CiAKICAgICAgICAgTmFtZU5vZGVMaXN0Q2FjaGUgc2hvdWxkIGJlIGludmFs
aWRhdGVkIHdoZW4gbmFtZSBhdHRyaWJ1dGUgY2hhbmdlcy9tb2RpZmllZC4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNob3ctZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNo
b3ctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxv
dy9zY3JvbGwtZGl2LWhpZGUtc2hvdy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNzMgQEAKK1Njcm9sbGVkIHBvc2l0aW9uIHNob3VsZCBiZSByZXN0b3JlZCB3aGVuIHRoZSBk
aXYgaXMgaGlkZGVuIGFuZCBzaG93biBhZ2FpbgorCisKK1Njcm9sbGluZyB0byAwLCAxMDAKK0Rp
didzIGRpc3BsYXkgaXMgbm9uZSBub3cKK1BBU1MgZS5zY3JvbGxUb3AgaXMgMAorRGl2J3MgZGlz
cGxheSBpcyBibG9jayBhZ2FpbgorUEFTUyBlLnNjcm9sbFRvcCBpcyAxMDAKKworVGVzdCB0aGF0
IGFmdGVyIGNoYW5naW5nIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gZGlmZmVyZW50IHZhbHVlcyB0
aGUgc2Nyb2xsIHBvc2l0aW9uIGlzIHJlc3RvcmVkCitTY3JvbGxpbmcgdG8gNTAsIDUwCitEaXYn
cyBkaXNwbGF5IGlzIG5vbmUgbm93CitQQVNTIGUuc2Nyb2xsVG9wIGlzIDAKK1BBU1MgZS5zY3Jv
bGxMZWZ0IGlzIDAKK0RpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4KK1BBU1MgZS5zY3JvbGxU
b3AgaXMgNTAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDUwCitTY3JvbGxpbmcgdG8gMzAsIDEwCitE
aXYncyBkaXNwbGF5IGlzIG5vbmUgbm93CitQQVNTIGUuc2Nyb2xsVG9wIGlzIDAKK1BBU1MgZS5z
Y3JvbGxMZWZ0IGlzIDAKK0RpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4KK1BBU1MgZS5zY3Jv
bGxUb3AgaXMgMTAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDMwCitTY3JvbGxpbmcgdG8gMTAwLCAw
CitEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93CitQQVNTIGUuc2Nyb2xsVG9wIGlzIDAKK1BBU1Mg
ZS5zY3JvbGxMZWZ0IGlzIDAKK0RpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4KK1BBU1MgZS5z
Y3JvbGxUb3AgaXMgMAorUEFTUyBlLnNjcm9sbExlZnQgaXMgMTAwCisKK1Rlc3RpbmcgdGhhdCBz
Y3JvbGwgcG9zaXRpb24gaXMgcmVzdG9yZWQgd2hlbiBoZWlnaHQgYW5kIHdpZHRoIG9mIHNjcm9s
bGluZyBhcmVhIGlzIGNoYW5nZWQKK1Njcm9sbGluZyB0byAzNSwgNzUKK0RpdidzIGRpc3BsYXkg
aXMgbm9uZSBub3cKK1BBU1MgZS5zY3JvbGxUb3AgaXMgMAorUEFTUyBlLnNjcm9sbExlZnQgaXMg
MAorRGl2J3MgZGlzcGxheSBpcyBibG9jayBhZ2FpbgorUEFTUyBlLnNjcm9sbFRvcCBpcyA3NQor
UEFTUyBlLnNjcm9sbExlZnQgaXMgMzUKK0FkZGluZyBzb21lIG1vcmUgdGV4dCB0byBkaXYKK1Nj
cm9sbGluZyB0byAxMjUsIDEwMAorRGl2J3MgZGlzcGxheSBpcyBub25lIG5vdworUEFTUyBlLnNj
cm9sbFRvcCBpcyAwCitQQVNTIGUuc2Nyb2xsTGVmdCBpcyAwCitEaXYncyBkaXNwbGF5IGlzIGJs
b2NrIGFnYWluCitQQVNTIGUuc2Nyb2xsVG9wIGlzIDEwMAorUEFTUyBlLnNjcm9sbExlZnQgaXMg
MTI1CisKK1Rlc3RpbmcgdGhhdCBzY3JvbGwgcG9zaXRpb24gaXMgcmVzdG9yZWQgZm9yIFJUTCB0
ZXh0cworU2Nyb2xsaW5nIHRvIDUwLDE1MAorRGl2J3MgZGlzcGxheSBpcyBub25lIG5vdworUEFT
UyBlLnNjcm9sbFRvcCBpcyAwCitQQVNTIGUuc2Nyb2xsTGVmdCBpcyAwCitEaXYncyBkaXNwbGF5
IGlzIGJsb2NrIGFnYWluCitQQVNTIGUuc2Nyb2xsVG9wIGlzIDE1MAorUEFTUyBlLnNjcm9sbExl
ZnQgaXMgNTAKKworVGVzdCBpZnJhbWUgc2Nyb2xsaW5nCitTY3JvbGxpbmcgSWZyYW1lIHRvICg1
MCw1MCkKK0lmcmFtZSdzIGRpc3BsYXkgaXMgbm9uZSBub3cKK0lmcmFtZSdzIGRpc3BsYXkgaXMg
YmxvY2sgYWdhaW4KK1BBU1MgZnJhbWUuY29udGVudFdpbmRvdy5wYWdlWU9mZnNldCBpcyA1MAor
UEFTUyBmcmFtZS5jb250ZW50V2luZG93LnBhZ2VYT2Zmc2V0IGlzIDUwCisKK1Rlc3Rpbmcgc2Ny
b2xsIG9mZnNldCBnZXR0aW5nIHJlc2V0IHdoZW4gbW92ZWQgdG8gb3RoZXIgZG9jdW1lbnQKK1Nj
cm9sbGluZyBkaXYgdG8gKDUwLDUwKQorUEFTUyBlLnNjcm9sbFRvcCBpcyAwCitQQVNTIGUuc2Ny
b2xsTGVmdCBpcyAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9zY3JvbGwtZGl2LWhpZGUt
c2hvdy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xs
LWRpdi1oaWRlLXNob3cuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qvb3Zl
cmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNob3cuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwx
NzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5TY3JvbGxlZCBwb3NpdGlvbiBzaG91bGQgYmUgcmVz
dG9yZWQgd2hlbiB0aGUgZGl2IGlzIGhpZGRlbiBhbmQgc2hvd24gYWdhaW48L3A+Cis8ZGl2IHN0
eWxlPSJoZWlnaHQ6MTAwcHg7IHdpZHRoOjEwMHB4OyBvdmVyZmxvdzogc2Nyb2xsOyBkaXNwbGF5
OiBibG9jazsiIGlkPSJtYWluIj4KKzxwcmUgaWQ9InByZUlkIj4KK2xpbmUgMSB3aXRoIHNvbWUg
dGV4dCB3aGljaCBoYXMgdG8gYmUgc2Nyb2xsIHRvIGJlIHZpc2libGUKK2xpbmUgMiB3aXRoIHNv
bWUgdGV4dCB3aGljaCBoYXMgdG8gYmUgc2Nyb2xsIHRvIGJlIHZpc2libGUKK2xpbmUgMyB3aXRo
IHNvbWUgdGV4dCB3aGljaCBoYXMgdG8gYmUgc2Nyb2xsIHRvIGJlIHZpc2libGUKK2xpbmUgNCB3
aXRoIHNvbWUgdGV4dCB3aGljaCBoYXMgdG8gYmUgc2Nyb2xsIHRvIGJlIHZpc2libGUKK2xpbmUg
NSB3aXRoIHNvbWUgdGV4dCB3aGljaCBoYXMgdG8gYmUgc2Nyb2xsIHRvIGJlIHZpc2libGUKK2xp
bmUgNiB3aXRoIHNvbWUgdGV4dCB3aGljaCBoYXMgdG8gYmUgc2Nyb2xsIHRvIGJlIHZpc2libGUK
K2xpbmUgNyB3aXRoIHNvbWUgdGV4dCB3aGljaCBoYXMgdG8gYmUgc2Nyb2xsIHRvIGJlIHZpc2li
bGUKK2xpbmUgOCB3aXRoIHNvbWUgdGV4dCB3aGljaCBoYXMgdG8gYmUgc2Nyb2xsIHRvIGJlIHZp
c2libGUKK2xpbmUgOSB3aXRoIHNvbWUgdGV4dCB3aGljaCBoYXMgdG8gYmUgc2Nyb2xsIHRvIGJl
IHZpc2libGUKK2xpbmUgMTAgd2l0aCBzb21lIHRleHQgd2hpY2ggaGFzIHRvIGJlIHNjcm9sbCB0
byBiZSB2aXNpYmxlCitsaW5lIDExIHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3Jv
bGwgdG8gYmUgdmlzaWJsZQorbGluZSAxMiB3aXRoIHNvbWUgdGV4dCB3aGljaCBoYXMgdG8gYmUg
c2Nyb2xsIHRvIGJlIHZpc2libGUKKzwvcHJlPgorPC9kaXY+CisKKzxpZnJhbWUgaWQ9ImZyYW1l
IiBzdHlsZT0iZGlzcGxheTpibG9jazsgd2lkdGg6NDAwcHg7IGhlaWdodDogNDAwcHg7Ij48L2lm
cmFtZT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBlID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4iKTsKK2RlYnVnKCJTY3JvbGxpbmcgdG8gMCwgMTAwIik7
CitlLnNjcm9sbFRvcCA9IDEwMDsKK2Uuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKK2RlYnVnKCJE
aXYncyBkaXNwbGF5IGlzIG5vbmUgbm93Iik7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMCcp
OworZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIGJs
b2NrIGFnYWluIik7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMTAwJyk7CisKK2RlYnVnKCIi
KTsKK2RlYnVnKCJUZXN0IHRoYXQgYWZ0ZXIgY2hhbmdpbmcgdGhlIHNjcm9sbCBwb3NpdGlvbiB0
byBkaWZmZXJlbnQgdmFsdWVzIHRoZSBzY3JvbGwgcG9zaXRpb24gaXMgcmVzdG9yZWQiKTsKK2Rl
YnVnKCJTY3JvbGxpbmcgdG8gNTAsIDUwIik7CitlLnNjcm9sbFRvcCA9IDUwOworZS5zY3JvbGxM
ZWZ0ID0gNTA7CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBub25lIG5vdyIpOworZS5zdHlsZS5k
aXNwbGF5ID0gJ25vbmUnOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzAnKTsKK3Nob3VsZEJl
KCdlLnNjcm9sbExlZnQnLCAnMCcpOworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdh
aW4iKTsKK2Uuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CitzaG91bGRCZSgnZS5zY3JvbGxUb3An
LCAnNTAnKTsKK3Nob3VsZEJlKCdlLnNjcm9sbExlZnQnLCAnNTAnKTsKKworZGVidWcoIlNjcm9s
bGluZyB0byAzMCwgMTAiKTsKK2Uuc2Nyb2xsVG9wID0gMTA7CitlLnNjcm9sbExlZnQgPSAzMDsK
K2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93Iik7CitlLnN0eWxlLmRpc3BsYXkgPSAn
bm9uZSc7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMCcpOworc2hvdWxkQmUoJ2Uuc2Nyb2xs
TGVmdCcsICcwJyk7CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBibG9jayBhZ2FpbiIpOworZS5z
dHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcxMCcpOwor
c2hvdWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICczMCcpOworCitkZWJ1ZygiU2Nyb2xsaW5nIHRvIDEw
MCwgMCIpOworZS5zY3JvbGxUb3AgPSAwOworZS5zY3JvbGxMZWZ0ID0gMTAwOworZGVidWcoIkRp
didzIGRpc3BsYXkgaXMgbm9uZSBub3ciKTsKK2Uuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKK3No
b3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7CitzaG91bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzAn
KTsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluIik7CitlLnN0eWxlLmRpc3Bs
YXkgPSAnYmxvY2snOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzAnKTsKK3Nob3VsZEJlKCdl
LnNjcm9sbExlZnQnLCAnMTAwJyk7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0aW5nIHRoYXQg
c2Nyb2xsIHBvc2l0aW9uIGlzIHJlc3RvcmVkIHdoZW4gaGVpZ2h0IGFuZCB3aWR0aCBvZiBzY3Jv
bGxpbmcgYXJlYSBpcyBjaGFuZ2VkIik7CitlLnN0eWxlLmhlaWdodCA9IGUuc2Nyb2xsSGVpZ2h0
ICsgNTA7CitlLnN0eWxlLndpZHRoID0gZS5zY3JvbGxXaWR0aCArIDUwOworZGVidWcoIlNjcm9s
bGluZyB0byAzNSwgNzUiKTsKK2Uuc2Nyb2xsVG9wID0gNzU7CitlLnNjcm9sbExlZnQgPSAzNTsK
K2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93Iik7CitlLnN0eWxlLmRpc3BsYXkgPSAn
bm9uZSc7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMCcpOworc2hvdWxkQmUoJ2Uuc2Nyb2xs
TGVmdCcsICcwJyk7CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBibG9jayBhZ2FpbiIpOworZS5z
dHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICc3NScpOwor
c2hvdWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICczNScpOworZGVidWcoIkFkZGluZyBzb21lIG1vcmUg
dGV4dCB0byBkaXYiKTsKK2UuaW5uZXJIVE1MICs9ICJsaW5lIDEzIDxici8+IGxpbmUgMTQgPGJy
Lz4gbGluZSAxNSA8YnIvPiAgbGluZSAxNiA8YnIvPiAgbGluZSAxNyA8YnIvPiI7CitkZWJ1Zygi
U2Nyb2xsaW5nIHRvIDEyNSwgMTAwIik7CitlLnNjcm9sbFRvcCA9IDEwMDsKK2Uuc2Nyb2xsTGVm
dCA9IDEyNTsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93Iik7CitlLnN0eWxlLmRp
c3BsYXkgPSAnbm9uZSc7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMCcpOworc2hvdWxkQmUo
J2Uuc2Nyb2xsTGVmdCcsICcwJyk7CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBibG9jayBhZ2Fp
biIpOworZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcs
ICcxMDAnKTsKK3Nob3VsZEJlKCdlLnNjcm9sbExlZnQnLCAnMTI1Jyk7CisKK3ZhciBkaXZDb250
ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByZUlkIikuaW5uZXJIVE1MOworCitkZWJ1
ZygiIik7CitkZWJ1ZygiVGVzdGluZyB0aGF0IHNjcm9sbCBwb3NpdGlvbiBpcyByZXN0b3JlZCBm
b3IgUlRMIHRleHRzIik7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJlSWQiKS5pbm5lckhU
TUwgPSAi2YXZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZ
hdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfYsdit2KjZi9inXAorICAgIFxu2KjZ
i9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit
2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wKKyAgICBcbtio2YvYp9mF2LHYrdio2YvYp9mF
2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2Kdc
CisgICAgXG7YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3Y
qNmL2KfYsdit2KjZi9inXAorICAgIFxu2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZ
hdix2K3YqNmL2KfYsdit2KjZi9inXAorICAgIFxu2YXZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZ
hdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL
2KfYsdit2KjZi9inXAorICAgIFxu2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit
2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wKKyAg
ICBcbtio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvY
p9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3Y
qNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfYsdit2KjZi9inXAorICAgIFxu2YXZhdix2K3Y
qNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix
2K3YqNmL2KfZhdix2K3YqNmL2KfYsdit2KjZi9inXAorICAgIFxu2KjZi9in2YXYsdit2KjZi9in
2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZ
i9in2LHYrdio2YvYp1wKKyAgICBcbtio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHY
rdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7YqNmL2KfZ
hdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL
2KfZhdix2K3YqNmL2KfYsdit2KjZi9inXAorICAgIFxu2KjZi9in2YXYsdit2KjZi9in2YXYsdit
2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wKKyAgICBcbtio2YvYp9mF2LHYrdio2YvYp9mF
2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2Kdc
CisgICAgXG7YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3Y
qNmL2KfZhdix2K3YqNmL2KfYsdit2KjZi9inIjsKKworZS5kaXI9InJ0bCI7CisKK2RlYnVnKCJT
Y3JvbGxpbmcgdG8gNTAsMTUwIik7CitlLnNjcm9sbFRvcCA9IDE1MDsKK2Uuc2Nyb2xsTGVmdCA9
IDUwOworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgbm9uZSBub3ciKTsKK2Uuc3R5bGUuZGlzcGxh
eSA9ICdub25lJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7CitzaG91bGRCZSgnZS5z
Y3JvbGxMZWZ0JywgJzAnKTsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluIik7
CitlLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzE1
MCcpOworc2hvdWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICc1MCcpOworCitkZWJ1ZygiIik7CitkZWJ1
ZygiVGVzdCBpZnJhbWUgc2Nyb2xsaW5nIik7Cit2YXIgZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZnJhbWUnKTsKK3ZhciBkb2MgPSBmcmFtZS5jb250ZW50RG9jdW1lbnQub3Blbigp
OworZG9jLndyaXRlKCI8ZGl2IHN0eWxlPSd3aWR0aDoxMDBweDsgaGVpZ2h0OjEwMHB4OyBiYWNr
Z3JvdW5kOnllbGxvdzsnPjwvZGl2PiIpOworZG9jLmNsb3NlKCk7CitmcmFtZS5jb250ZW50RG9j
dW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgiOworZnJhbWUuY29udGVudERvY3VtZW50
LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBweCI7CisKK2RlYnVnKCJTY3JvbGxpbmcgSWZyYW1l
IHRvICg1MCw1MCkiKTsKK2ZyYW1lLmNvbnRlbnRXaW5kb3cuc2Nyb2xsVG8oNTAsNTApOworCitm
cmFtZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworZGVidWcoIklmcmFtZSdzIGRpc3BsYXkgaXMg
bm9uZSBub3ciKTsKKworZnJhbWUuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CitkZWJ1ZygiSWZy
YW1lJ3MgZGlzcGxheSBpcyBibG9jayBhZ2FpbiIpOworCitzaG91bGRCZSgnZnJhbWUuY29udGVu
dFdpbmRvdy5wYWdlWU9mZnNldCcsICc1MCcpOworc2hvdWxkQmUoJ2ZyYW1lLmNvbnRlbnRXaW5k
b3cucGFnZVhPZmZzZXQnLCAnNTAnKTsKKworZGVidWcoIiIpOworZGVidWcoIlRlc3Rpbmcgc2Ny
b2xsIG9mZnNldCBnZXR0aW5nIHJlc2V0IHdoZW4gbW92ZWQgdG8gb3RoZXIgZG9jdW1lbnQiKTsK
K2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcmVJZCIpLmlubmVySFRNTCA9IGRpdkNvbnRlbnQ7
CitlLmRpcj0ibHRyIjsKK2RlYnVnKCJTY3JvbGxpbmcgZGl2IHRvICg1MCw1MCkiKTsKK2Uuc2Ny
b2xsVG9wID0gNTA7CitlLnNjcm9sbExlZnQgPSA1MDsKK2Uuc3R5bGUuZGlzcGxheSA9ICdub25l
JzsKK2ZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpOworZS5zdHlsZS5k
aXNwbGF5ID0gJ2Jsb2NrJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7CitzaG91bGRC
ZSgnZS5zY3JvbGxMZWZ0JywgJzAnKTsKKworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118957</attachid>
            <date>2011-12-12 22:58:30 -0800</date>
            <delta_ts>2011-12-13 12:02:37 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-72852-20111213122146.patch</filename>
            <type>text/plain</type>
            <size>15784</size>
            <attacher name="Rakesh">rakeshchaitan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjY1OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDExLTEyLTEyICBSYWtlc2gg
S04gIDxyYWtlc2gua25AbW90b3JvbGEuY29tPgorCisgICAgICAgIFNjcm9sbCBwb3NpdGlvbiBp
cyBsb3N0IGFmdGVyIGhpZGUvc2hvdyBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjg1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1haW50YWluIHRoZSBzY3JvbGwgcG9zaXRpb24gb2Ygb3Zl
cmZsb3dpbmcgZWxlbWVudCB3aGVuIHRoZSBzY3JvbGxhYmxlIFJlbmRlckxheWVyIGlzIGRlc3Ry
b3llZCwKKyAgICAgICAgd2hpY2ggY2FuIGJlIHVzZWQgdG8gcmVzdG9yZSB0aGUgc2Nyb2xsIHBv
c2l0aW9uIGlmIHRoZSBzYW1lIGVsZW1lbnQgaXMgYWdhaW4gYWRkZWQgdG8gdGhlIHJlbmRlciB0
cmVlLiAKKworICAgICAgICBUZXN0OiBmYXN0L292ZXJmbG93L3Njcm9sbC1kaXYtaGlkZS1zaG93
Lmh0bWwKKworICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnQ6OnNjcm9sbGFibGVFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNj
cm9sbGVkUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0U2Nyb2xsUG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVzZXRTY3JvbGxQb3NpdGlvbik6
CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgSGVscGVyIGZ1bmN0aW9ucyBmb3Ig
YWNjZXNzaW5nIHNjcm9sbCBwb3NpdGlvbiBmcm9tIHJhcmUgZGF0YS4KKworICAgICAgICAqIGRv
bS9FbGVtZW50UmFyZURhdGEuaDoKKyAgICAgICAgTWFpbnRhaW4gdGhlIHNjcm9sbGVkIHBvc2l0
aW9uLgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnNl
dERvY3VtZW50KToKKyAgICAgICAgUmVzZXR0aW5nIHRoZSBzY3JvbGwgcG9zaXRpb24gaWYgbm9k
ZSBpcyBtb3ZlZCB0byBvdGhlciBkb2N1bWVudC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OlJlbmRlckxheWVyKToK
KyAgICAgICAgUmVzdG9yaW5nIHRoZSBzY3JvbGwgcG9zaXRpb24gaWYgaXQgd2FzIHN0b3JlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp+UmVuZGVyTGF5ZXIpOgorICAgICAgICBT
dG9yaW5nIHRoZSBzY3JvbGwgcG9zaXRpb24uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6c2Nyb2xsVG9PZmZzZXQpOgorICAgICAgICBXaGl0ZSBzcGFjZSByZW1vdmVkLgorCiAyMDEx
LTEyLTEyICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByMTAyNjU2LgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAko
cmV2aXNpb24gMTAxNzQxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMDMwLDYgKzIwMzAsMjggQEAgUGFzc1JlZlB0cjxXZWJLaXRBbmltYXRp
b25MaXN0PiBFbGVtZW50OgogICAgIHJldHVybiBhbmltQ29udHJvbGxlci0+YW5pbWF0aW9uc0Zv
clJlbmRlcmVyKHJlbmRlcmVyKCkpOwogfQogCitib29sIEVsZW1lbnQ6OnNjcm9sbGFibGVFbGVt
ZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gaGFzUmFyZURhdGEoKSAmJiAocmFyZURhdGEoKS0+
bV9zY3JvbGxlZFBvc2l0aW9uICE9IEludFBvaW50Ojp6ZXJvKCkpOworfQorCitJbnRQb2ludCBF
bGVtZW50OjpzY3JvbGxlZFBvc2l0aW9uKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoc2Nyb2xsYWJs
ZUVsZW1lbnQoKSk7CisgICAgcmV0dXJuIHJhcmVEYXRhKCktPm1fc2Nyb2xsZWRQb3NpdGlvbjsK
K30KKwordm9pZCBFbGVtZW50OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYgcG9p
bnQpCit7CisgICAgZW5zdXJlUmFyZURhdGEoKS0+bV9zY3JvbGxlZFBvc2l0aW9uID0gcG9pbnQ7
Cit9CisKK3ZvaWQgRWxlbWVudDo6cmVzZXRTY3JvbGxQb3NpdGlvbigpCit7CisgICAgaWYgKHNj
cm9sbGFibGVFbGVtZW50KCkpCisgICAgICAgIHJhcmVEYXRhKCktPm1fc2Nyb2xsZWRQb3NpdGlv
biA9IEludFBvaW50KCk7Cit9CisKICNpZm5kZWYgTkRFQlVHCiBib29sIEVsZW1lbnQ6OmZhc3RB
dHRyaWJ1dGVMb29rdXBBbGxvd2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0CiB7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgJKHJldmlzaW9uIDEwMTc0MSkKKysrIFNvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2NCw2ICszNjQsMTEgQEAgcHVi
bGljOgogICAgIFBhc3NSZWZQdHI8V2ViS2l0QW5pbWF0aW9uTGlzdD4gd2Via2l0R2V0QW5pbWF0
aW9ucygpIGNvbnN0OwogICAgIAogICAgIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9y
UmVuZGVyZXIoKTsKKyAKKyAgICBib29sIHNjcm9sbGFibGVFbGVtZW50KCkgY29uc3Q7CisgICAg
SW50UG9pbnQgc2Nyb2xsZWRQb3NpdGlvbigpIGNvbnN0OworICAgIHZvaWQgc2V0U2Nyb2xsUG9z
aXRpb24oY29uc3QgSW50UG9pbnQmKTsKKyAgICB2b2lkIHJlc2V0U2Nyb2xsUG9zaXRpb24oKTsK
IAogcHJvdGVjdGVkOgogICAgIEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQqIGRvY3VtZW50LCBDb25zdHJ1Y3Rpb25UeXBlIHR5cGUpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCShyZXZpc2lvbiAxMDE3NDEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDgg
QEAgcHVibGljOgogCiAgICAgYm9vbCBtX3N0eWxlQWZmZWN0ZWRCeUVtcHR5OwogCisgICAgSW50
UG9pbnQgbV9zY3JvbGxlZFBvc2l0aW9uOworCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQog
ICAgIGJvb2wgbV9jb250YWluc0Z1bGxTY3JlZW5FbGVtZW50OwogI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuY3BwCShyZXZpc2lvbiAxMDE3NDEpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1Nyw2ICs0NTcsMTAgQEAgdm9pZCBOb2RlOjpzZXREb2N1
bWVudChEb2N1bWVudCogZG9jdW1lbgogCiAgICAgaWYgKG1fZG9jdW1lbnQpIHsKICAgICAgICAg
bV9kb2N1bWVudC0+bW92ZU5vZGVJdGVyYXRvcnNUb05ld0RvY3VtZW50KHRoaXMsIGRvY3VtZW50
KTsKKworICAgICAgICBpZiAoaXNFbGVtZW50Tm9kZSgpKQorICAgICAgICAgICAgdG9FbGVtZW50
KHRoaXMpLT5yZXNldFNjcm9sbFBvc2l0aW9uKCk7CisKICAgICAgICAgbV9kb2N1bWVudC0+Z3Vh
cmREZXJlZigpOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCShyZXZpc2lvbiAxMDE3NDEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTMsNiArMTkzLDE3IEBAIFJlbmRl
ckxheWVyOjpSZW5kZXJMYXllcihSZW5kZXJCb3hNb2RlbE8KICAgICAgICAgbV92aXNpYmxlQ29u
dGVudFN0YXR1c0RpcnR5ID0gZmFsc2U7CiAgICAgICAgIG1faGFzVmlzaWJsZUNvbnRlbnQgPSBy
ZW5kZXJlci0+c3R5bGUoKS0+dmlzaWJpbGl0eSgpID09IFZJU0lCTEU7CiAgICAgfQorCisgICAg
Tm9kZSogbm9kZSA9IHJlbmRlcmVyLT5ub2RlKCk7CisgICAgaWYgKG5vZGUgJiYgbm9kZS0+aXNF
bGVtZW50Tm9kZSgpKSB7CisgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSB0b0VsZW1lbnQobm9k
ZSk7CisgICAgICAgIGlmIChlbGVtZW50LT5zY3JvbGxhYmxlRWxlbWVudCgpKSB7CisgICAgICAg
ICAgICAvLyBXZSBzYXZlIGFuZCByZXN0b3JlIG9ubHkgdGhlIHNjcm9sbE9mZnNldCBhcyB0aGUg
b3RoZXIgc2Nyb2xsCisgICAgICAgICAgICAvLyB2YWx1ZXMgYXJlIHJlY2FsdWxhdGVkLgorICAg
ICAgICAgICAgbV9zY3JvbGxPZmZzZXQgPSB0b1NpemUoZWxlbWVudC0+c2Nyb2xsZWRQb3NpdGlv
bigpKTsKKyAgICAgICAgICAgIGVsZW1lbnQtPnJlc2V0U2Nyb2xsUG9zaXRpb24oKTsKKyAgICAg
ICAgfQorICAgIH0KIH0KIAogUmVuZGVyTGF5ZXI6On5SZW5kZXJMYXllcigpCkBAIC0yMDIsOSAr
MjEzLDE0IEBAIFJlbmRlckxheWVyOjp+UmVuZGVyTGF5ZXIoKQogICAgICAgICAgICAgZnJhbWUt
PmV2ZW50SGFuZGxlcigpLT5yZXNpemVMYXllckRlc3Ryb3llZCgpOwogICAgIH0KIAotICAgIGlm
IChtX3Njcm9sbGFibGVBcmVhUGFnZSkKKyAgICBpZiAobV9zY3JvbGxhYmxlQXJlYVBhZ2UpIHsK
ICAgICAgICAgbV9zY3JvbGxhYmxlQXJlYVBhZ2UtPnJlbW92ZVNjcm9sbGFibGVBcmVhKHRoaXMp
OwogCisgICAgICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7CisgICAgICAgIGlm
IChub2RlICYmIG5vZGUtPmlzRWxlbWVudE5vZGUoKSkKKyAgICAgICAgICAgIHRvRWxlbWVudChu
b2RlKS0+c2V0U2Nyb2xsUG9zaXRpb24odG9Qb2ludChtX3Njcm9sbE9mZnNldCkpOworICAgIH0K
KwogICAgIGRlc3Ryb3lTY3JvbGxiYXIoSG9yaXpvbnRhbFNjcm9sbGJhcik7CiAgICAgZGVzdHJv
eVNjcm9sbGJhcihWZXJ0aWNhbFNjcm9sbGJhcik7CiAKQEAgLTEzNzksNyArMTM5NSw3IEBAIHZv
aWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0KExheW91dFUKICAgICAgICAgeCA9IG1pbiht
YXg8TGF5b3V0VW5pdD4oeCwgMCksIG1heFgpOwogICAgICAgICB5ID0gbWluKG1heDxMYXlvdXRV
bml0Pih5LCAwKSwgbWF4WSk7CiAgICAgfQotICAgIAorCiAgICAgU2Nyb2xsYWJsZUFyZWE6OnNj
cm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihMYXlvdXRQb2ludCh4LCB5KSk7CiB9CiAKSW5k
ZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDEwMjY1OCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDExLTEyLTEyICBSYWtlc2ggS04gIDxyYWtlc2gu
a25AbW90b3JvbGEuY29tPgorCisgICAgICAgIFNjcm9sbCBwb3NpdGlvbiBpcyBsb3N0IGFmdGVy
IGhpZGUvc2hvdyBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03Mjg1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1haW50YWluIHRoZSBzY3JvbGwgcG9zaXRpb24gb2Ygb3ZlcmZsb3dpbmcgZWxl
bWVudCB3aGVuIHRoZSBzY3JvbGxhYmxlIFJlbmRlckxheWVyIGlzIGRlc3Ryb3llZCwKKyAgICAg
ICAgd2hpY2ggY2FuIGJlIHVzZWQgdG8gcmVzdG9yZSB0aGUgc2Nyb2xsIHBvc2l0aW9uIGlmIHRo
ZSBzYW1lIGVsZW1lbnQgaXMgYWdhaW4gYWRkZWQgdG8gdGhlIHJlbmRlciB0cmVlLiAKKworICAg
ICAgICAqIGZhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNob3ctZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L292ZXJmbG93L3Njcm9sbC1kaXYtaGlkZS1zaG93Lmh0bWw6
IEFkZGVkLgorCiAyMDExLTEyLTEyICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkIENocm9taXVtIHRlc3QgZXhwZWN0YXRpb25zIHVwZGF0ZS4g
QWN0dWFsbHkgc2tpcApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9zY3JvbGwtZGl2
LWhpZGUtc2hvdy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9v
dmVyZmxvdy9zY3JvbGwtZGl2LWhpZGUtc2hvdy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9sbC1kaXYtaGlkZS1zaG93LWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MyBAQAorU2Nyb2xsZWQgcG9zaXRpb24gc2hv
dWxkIGJlIHJlc3RvcmVkIHdoZW4gdGhlIGRpdiBpcyBoaWRkZW4gYW5kIHNob3duIGFnYWluCisK
KworU2Nyb2xsaW5nIHRvIDAsIDc1CitEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93CitQQVNTIGUu
c2Nyb2xsVG9wIGlzIDAKK0RpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4KK1BBU1MgZS5zY3Jv
bGxUb3AgaXMgNzUKKworVGVzdCB0aGF0IGFmdGVyIGNoYW5naW5nIHRoZSBzY3JvbGwgcG9zaXRp
b24gdG8gZGlmZmVyZW50IHZhbHVlcyB0aGUgc2Nyb2xsIHBvc2l0aW9uIGlzIHJlc3RvcmVkCitT
Y3JvbGxpbmcgdG8gNTAsIDUwCitEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93CitQQVNTIGUuc2Ny
b2xsVG9wIGlzIDAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDAKK0RpdidzIGRpc3BsYXkgaXMgYmxv
Y2sgYWdhaW4KK1BBU1MgZS5zY3JvbGxUb3AgaXMgNTAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDUw
CitTY3JvbGxpbmcgdG8gMzAsIDEwCitEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93CitQQVNTIGUu
c2Nyb2xsVG9wIGlzIDAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDAKK0RpdidzIGRpc3BsYXkgaXMg
YmxvY2sgYWdhaW4KK1BBU1MgZS5zY3JvbGxUb3AgaXMgMTAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlz
IDMwCitTY3JvbGxpbmcgdG8gMTAwLCAwCitEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93CitQQVNT
IGUuc2Nyb2xsVG9wIGlzIDAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDAKK0RpdidzIGRpc3BsYXkg
aXMgYmxvY2sgYWdhaW4KK1BBU1MgZS5zY3JvbGxUb3AgaXMgMAorUEFTUyBlLnNjcm9sbExlZnQg
aXMgMTAwCisKK1Rlc3RpbmcgdGhhdCBzY3JvbGwgcG9zaXRpb24gaXMgcmVzdG9yZWQgd2hlbiBo
ZWlnaHQgYW5kIHdpZHRoIG9mIHNjcm9sbGluZyBhcmVhIGlzIGNoYW5nZWQKK1Njcm9sbGluZyB0
byAzNSwgNzUKK0RpdidzIGRpc3BsYXkgaXMgbm9uZSBub3cKK1BBU1MgZS5zY3JvbGxUb3AgaXMg
MAorUEFTUyBlLnNjcm9sbExlZnQgaXMgMAorRGl2J3MgZGlzcGxheSBpcyBibG9jayBhZ2Fpbgor
UEFTUyBlLnNjcm9sbFRvcCBpcyA3NQorUEFTUyBlLnNjcm9sbExlZnQgaXMgMzUKK0FkZGluZyBz
b21lIG1vcmUgdGV4dCB0byBkaXYKK1Njcm9sbGluZyB0byAxMjUsIDEwMAorRGl2J3MgZGlzcGxh
eSBpcyBub25lIG5vdworUEFTUyBlLnNjcm9sbFRvcCBpcyAwCitQQVNTIGUuc2Nyb2xsTGVmdCBp
cyAwCitEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluCitQQVNTIGUuc2Nyb2xsVG9wIGlzIDEw
MAorUEFTUyBlLnNjcm9sbExlZnQgaXMgMTI1CisKK1Rlc3RpbmcgdGhhdCBzY3JvbGwgcG9zaXRp
b24gaXMgcmVzdG9yZWQgZm9yIFJUTCB0ZXh0cworU2Nyb2xsaW5nIHRvIDUwLCAxNTAKK0Rpdidz
IGRpc3BsYXkgaXMgbm9uZSBub3cKK1BBU1MgZS5zY3JvbGxUb3AgaXMgMAorUEFTUyBlLnNjcm9s
bExlZnQgaXMgMAorRGl2J3MgZGlzcGxheSBpcyBibG9jayBhZ2FpbgorUEFTUyBlLnNjcm9sbFRv
cCBpcyAxNTAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDUwCisKK1Rlc3QgaWZyYW1lIHNjcm9sbGlu
ZworU2Nyb2xsaW5nIElmcmFtZSB0byAoNTAsIDc1KQorSWZyYW1lJ3MgZGlzcGxheSBpcyBub25l
IG5vdworSWZyYW1lJ3MgZGlzcGxheSBpcyBibG9jayBhZ2FpbgorUEFTUyBmcmFtZS5jb250ZW50
V2luZG93LnBhZ2VZT2Zmc2V0IGlzIDc1CitQQVNTIGZyYW1lLmNvbnRlbnRXaW5kb3cucGFnZVhP
ZmZzZXQgaXMgNTAKKworVGVzdGluZyBzY3JvbGwgb2Zmc2V0IGdldHRpbmcgcmVzZXQgd2hlbiBt
b3ZlZCB0byBvdGhlciBkb2N1bWVudAorU2Nyb2xsaW5nIGRpdiB0byAoNTAsIDc1KQorUEFTUyBl
LnNjcm9sbFRvcCBpcyAwCitQQVNTIGUuc2Nyb2xsTGVmdCBpcyAwCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9vdmVyZmxvdy9zY3JvbGwtZGl2LWhpZGUtc2hvdy5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNob3cuaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNob3cuaHRt
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5TY3Jv
bGxlZCBwb3NpdGlvbiBzaG91bGQgYmUgcmVzdG9yZWQgd2hlbiB0aGUgZGl2IGlzIGhpZGRlbiBh
bmQgc2hvd24gYWdhaW48L3A+Cis8ZGl2IHN0eWxlPSJoZWlnaHQ6MTAwcHg7IHdpZHRoOjEwMHB4
OyBvdmVyZmxvdzogc2Nyb2xsOyBkaXNwbGF5OiBibG9jazsiIGlkPSJtYWluIj4KKzxwcmUgaWQ9
InByZUlkIj4KK2xpbmUgMSB3aXRoIHNvbWUgdGV4dCB3aGljaCBoYXMgdG8gYmUgc2Nyb2xsIHRv
IGJlIHZpc2libGUKK2xpbmUgMiB3aXRoIHNvbWUgdGV4dCB3aGljaCBoYXMgdG8gYmUgc2Nyb2xs
IHRvIGJlIHZpc2libGUKK2xpbmUgMyB3aXRoIHNvbWUgdGV4dCB3aGljaCBoYXMgdG8gYmUgc2Ny
b2xsIHRvIGJlIHZpc2libGUKK2xpbmUgNCB3aXRoIHNvbWUgdGV4dCB3aGljaCBoYXMgdG8gYmUg
c2Nyb2xsIHRvIGJlIHZpc2libGUKK2xpbmUgNSB3aXRoIHNvbWUgdGV4dCB3aGljaCBoYXMgdG8g
YmUgc2Nyb2xsIHRvIGJlIHZpc2libGUKK2xpbmUgNiB3aXRoIHNvbWUgdGV4dCB3aGljaCBoYXMg
dG8gYmUgc2Nyb2xsIHRvIGJlIHZpc2libGUKK2xpbmUgNyB3aXRoIHNvbWUgdGV4dCB3aGljaCBo
YXMgdG8gYmUgc2Nyb2xsIHRvIGJlIHZpc2libGUKK2xpbmUgOCB3aXRoIHNvbWUgdGV4dCB3aGlj
aCBoYXMgdG8gYmUgc2Nyb2xsIHRvIGJlIHZpc2libGUKK2xpbmUgOSB3aXRoIHNvbWUgdGV4dCB3
aGljaCBoYXMgdG8gYmUgc2Nyb2xsIHRvIGJlIHZpc2libGUKK2xpbmUgMTAgd2l0aCBzb21lIHRl
eHQgd2hpY2ggaGFzIHRvIGJlIHNjcm9sbCB0byBiZSB2aXNpYmxlCitsaW5lIDExIHdpdGggc29t
ZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwgdG8gYmUgdmlzaWJsZQorbGluZSAxMiB3aXRo
IHNvbWUgdGV4dCB3aGljaCBoYXMgdG8gYmUgc2Nyb2xsIHRvIGJlIHZpc2libGUKKzwvcHJlPgor
PC9kaXY+CisKKzxpZnJhbWUgaWQ9ImZyYW1lIiBzdHlsZT0iZGlzcGxheTpibG9jazsgd2lkdGg6
NDAwcHg7IGhlaWdodDogNDAwcHg7Ij48L2lmcmFtZT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPHNjcmlwdD4KK3ZhciBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4iKTsKK2Rl
YnVnKCJTY3JvbGxpbmcgdG8gMCwgNzUiKTsKK2Uuc2Nyb2xsVG9wID0gNzU7CitlLnN0eWxlLmRp
c3BsYXkgPSAnbm9uZSc7CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBub25lIG5vdyIpOworc2hv
dWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzAnKTsKK2Uuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7Citk
ZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBibG9jayBhZ2FpbiIpOworc2hvdWxkQmUoJ2Uuc2Nyb2xs
VG9wJywgJzc1Jyk7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IHRoYXQgYWZ0ZXIgY2hhbmdp
bmcgdGhlIHNjcm9sbCBwb3NpdGlvbiB0byBkaWZmZXJlbnQgdmFsdWVzIHRoZSBzY3JvbGwgcG9z
aXRpb24gaXMgcmVzdG9yZWQiKTsKK2RlYnVnKCJTY3JvbGxpbmcgdG8gNTAsIDUwIik7CitlLnNj
cm9sbFRvcCA9IDUwOworZS5zY3JvbGxMZWZ0ID0gNTA7CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBp
cyBub25lIG5vdyIpOworZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworc2hvdWxkQmUoJ2Uuc2Ny
b2xsVG9wJywgJzAnKTsKK3Nob3VsZEJlKCdlLnNjcm9sbExlZnQnLCAnMCcpOworZGVidWcoIkRp
didzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4iKTsKK2Uuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7
CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnNTAnKTsKK3Nob3VsZEJlKCdlLnNjcm9sbExlZnQn
LCAnNTAnKTsKKworZGVidWcoIlNjcm9sbGluZyB0byAzMCwgMTAiKTsKK2Uuc2Nyb2xsVG9wID0g
MTA7CitlLnNjcm9sbExlZnQgPSAzMDsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93
Iik7CitlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAn
MCcpOworc2hvdWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICcwJyk7CitkZWJ1ZygiRGl2J3MgZGlzcGxh
eSBpcyBibG9jayBhZ2FpbiIpOworZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK3Nob3VsZEJl
KCdlLnNjcm9sbFRvcCcsICcxMCcpOworc2hvdWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICczMCcpOwor
CitkZWJ1ZygiU2Nyb2xsaW5nIHRvIDEwMCwgMCIpOworZS5zY3JvbGxUb3AgPSAwOworZS5zY3Jv
bGxMZWZ0ID0gMTAwOworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgbm9uZSBub3ciKTsKK2Uuc3R5
bGUuZGlzcGxheSA9ICdub25lJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7CitzaG91
bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzAnKTsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIGJsb2Nr
IGFnYWluIik7CitlLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOworc2hvdWxkQmUoJ2Uuc2Nyb2xs
VG9wJywgJzAnKTsKK3Nob3VsZEJlKCdlLnNjcm9sbExlZnQnLCAnMTAwJyk7CisKK2RlYnVnKCIi
KTsKK2RlYnVnKCJUZXN0aW5nIHRoYXQgc2Nyb2xsIHBvc2l0aW9uIGlzIHJlc3RvcmVkIHdoZW4g
aGVpZ2h0IGFuZCB3aWR0aCBvZiBzY3JvbGxpbmcgYXJlYSBpcyBjaGFuZ2VkIik7CitlLnN0eWxl
LmhlaWdodCA9IGUuc2Nyb2xsSGVpZ2h0ICsgNTA7CitlLnN0eWxlLndpZHRoID0gZS5zY3JvbGxX
aWR0aCArIDUwOworZGVidWcoIlNjcm9sbGluZyB0byAzNSwgNzUiKTsKK2Uuc2Nyb2xsVG9wID0g
NzU7CitlLnNjcm9sbExlZnQgPSAzNTsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93
Iik7CitlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAn
MCcpOworc2hvdWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICcwJyk7CitkZWJ1ZygiRGl2J3MgZGlzcGxh
eSBpcyBibG9jayBhZ2FpbiIpOworZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK3Nob3VsZEJl
KCdlLnNjcm9sbFRvcCcsICc3NScpOworc2hvdWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICczNScpOwor
ZGVidWcoIkFkZGluZyBzb21lIG1vcmUgdGV4dCB0byBkaXYiKTsKK2UuaW5uZXJIVE1MICs9ICJs
aW5lIDEzIDxici8+IGxpbmUgMTQgPGJyLz4gbGluZSAxNSA8YnIvPiBsaW5lIDE2IDxici8+IGxp
bmUgMTcgPGJyLz4iOworZGVidWcoIlNjcm9sbGluZyB0byAxMjUsIDEwMCIpOworZS5zY3JvbGxU
b3AgPSAxMDA7CitlLnNjcm9sbExlZnQgPSAxMjU7CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBu
b25lIG5vdyIpOworZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworc2hvdWxkQmUoJ2Uuc2Nyb2xs
VG9wJywgJzAnKTsKK3Nob3VsZEJlKCdlLnNjcm9sbExlZnQnLCAnMCcpOworZGVidWcoIkRpdidz
IGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4iKTsKK2Uuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7Citz
aG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMTAwJyk7CitzaG91bGRCZSgnZS5zY3JvbGxMZWZ0Jywg
JzEyNScpOworCit2YXIgZGl2Q29udGVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcmVJ
ZCIpLmlubmVySFRNTDsKKworZGVidWcoIiIpOworZGVidWcoIlRlc3RpbmcgdGhhdCBzY3JvbGwg
cG9zaXRpb24gaXMgcmVzdG9yZWQgZm9yIFJUTCB0ZXh0cyIpOworZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInByZUlkIikuaW5uZXJIVE1MID0gItmF2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXY
sdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in
2LHYrdio2YvYp1wKKyAgICBcbtio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio
2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAg
XG7YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZ
hdix2K3YqNmL2KfYsdit2KjZi9inXAorICAgIFxu2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZ
i9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wKKyAgICBcbtit2KjZi9in2YXY
sdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wKKyAgICBcbtmF2YXY
sdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in
2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wKKyAgICBcbtio2YvYp9mF2LHYrdio
2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHY
rdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZ
hdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfYsdit2KjZi9inXAorICAgIFxu2KjZ
i9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio
2YvYp1wKKyAgICBcbtmF2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit
2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wKKyAg
ICBcbtio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvY
p9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7YqNmL2KfZhdix2K3Y
qNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfYsdit
2KjZi9inXAorICAgIFxu2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in
2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wKKyAgICBcbtio
2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAg
XG7YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZ
hdix2K3YqNmL2KfYsdit2KjZi9inXAorICAgIFxu2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZ
i9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYpyI7CisKK2Uu
ZGlyPSJydGwiOworCitkZWJ1ZygiU2Nyb2xsaW5nIHRvIDUwLCAxNTAiKTsKK2Uuc2Nyb2xsVG9w
ID0gMTUwOworZS5zY3JvbGxMZWZ0ID0gNTA7CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBub25l
IG5vdyIpOworZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9w
JywgJzAnKTsKK3Nob3VsZEJlKCdlLnNjcm9sbExlZnQnLCAnMCcpOworZGVidWcoIkRpdidzIGRp
c3BsYXkgaXMgYmxvY2sgYWdhaW4iKTsKK2Uuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CitzaG91
bGRCZSgnZS5zY3JvbGxUb3AnLCAnMTUwJyk7CitzaG91bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzUw
Jyk7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IGlmcmFtZSBzY3JvbGxpbmciKTsKK3ZhciBm
cmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcmFtZScpOwordmFyIGRvYyA9IGZyYW1l
LmNvbnRlbnREb2N1bWVudC5vcGVuKCk7Citkb2Mud3JpdGUoIjxkaXYgc3R5bGU9J3dpZHRoOjEw
MHB4OyBoZWlnaHQ6MTAwcHg7IGJhY2tncm91bmQ6eWVsbG93Oyc+PC9kaXY+Iik7Citkb2MuY2xv
c2UoKTsKK2ZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LnN0eWxlLndpZHRoID0gIjIwMDBweCI7
CitmcmFtZS5jb250ZW50RG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHQgPSAiMjAwMHB4IjsKKwor
ZGVidWcoIlNjcm9sbGluZyBJZnJhbWUgdG8gKDUwLCA3NSkiKTsKK2ZyYW1lLmNvbnRlbnRXaW5k
b3cuc2Nyb2xsVG8oNTAsIDc1KTsKKworZnJhbWUuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKK2Rl
YnVnKCJJZnJhbWUncyBkaXNwbGF5IGlzIG5vbmUgbm93Iik7CisKK2ZyYW1lLnN0eWxlLmRpc3Bs
YXkgPSAnYmxvY2snOworZGVidWcoIklmcmFtZSdzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4iKTsK
Kworc2hvdWxkQmUoJ2ZyYW1lLmNvbnRlbnRXaW5kb3cucGFnZVlPZmZzZXQnLCAnNzUnKTsKK3No
b3VsZEJlKCdmcmFtZS5jb250ZW50V2luZG93LnBhZ2VYT2Zmc2V0JywgJzUwJyk7CisKK2RlYnVn
KCIiKTsKK2RlYnVnKCJUZXN0aW5nIHNjcm9sbCBvZmZzZXQgZ2V0dGluZyByZXNldCB3aGVuIG1v
dmVkIHRvIG90aGVyIGRvY3VtZW50Iik7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJlSWQi
KS5pbm5lckhUTUwgPSBkaXZDb250ZW50OworZS5kaXI9Imx0ciI7CitkZWJ1ZygiU2Nyb2xsaW5n
IGRpdiB0byAoNTAsIDc1KSIpOworZS5zY3JvbGxUb3AgPSA3NTsKK2Uuc2Nyb2xsTGVmdCA9IDUw
OworZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworZnJhbWUuY29udGVudERvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoZSk7CitlLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOworc2hvdWxkQmUoJ2Uu
c2Nyb2xsVG9wJywgJzAnKTsKK3Nob3VsZEJlKCdlLnNjcm9sbExlZnQnLCAnMCcpOworCitzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119057</attachid>
            <date>2011-12-13 12:04:09 -0800</date>
            <delta_ts>2011-12-14 10:08:21 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-72852-20111214013347.patch</filename>
            <type>text/plain</type>
            <size>15694</size>
            <attacher name="Rakesh">rakeshchaitan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjY5MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDExLTEyLTEzICBSYWtlc2gg
S04gIDxyYWtlc2gua25AbW90b3JvbGEuY29tPgorCisgICAgICAgIFNjcm9sbCBwb3NpdGlvbiBp
cyBsb3N0IGFmdGVyIGhpZGUvc2hvdyBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjg1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRl
LXNob3cuaHRtbAorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RWxlbWVudDo6c2Nyb2xsYWJsZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVu
dDo6c2Nyb2xsZWRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzZXRTY3Jv
bGxQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpyZXNldFNjcm9sbFBvc2l0
aW9uKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICBIZWxwZXIgZnVuY3Rpb25z
IGZvciBhY2Nlc3Npbmcgc2Nyb2xsIHBvc2l0aW9uIGZyb20gcmFyZSBkYXRhLgorCisgICAgICAg
ICogZG9tL0VsZW1lbnRSYXJlRGF0YS5oOgorICAgICAgICBNYWludGFpbiB0aGUgc2Nyb2xsZWQg
cG9zaXRpb24uCisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9k
ZTo6c2V0RG9jdW1lbnQpOgorICAgICAgICBSZXNldHRpbmcgdGhlIHNjcm9sbCBwb3NpdGlvbiBp
ZiBub2RlIGlzIG1vdmVkIHRvIG90aGVyIGRvY3VtZW50LgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6UmVuZGVyTGF5
ZXIpOgorICAgICAgICBSZXN0b3JpbmcgdGhlIHNjcm9sbCBwb3NpdGlvbiBpZiBpdCB3YXMgc3Rv
cmVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6On5SZW5kZXJMYXllcik6CisgICAg
ICAgIFN0b3JpbmcgdGhlIHNjcm9sbCBwb3NpdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjpzY3JvbGxUb09mZnNldCk6CisgICAgICAgIFdoaXRlIHNwYWNlIHJlbW92ZWQuCisK
IDIwMTEtMTItMTMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAg
IDxodHRwOi8vd2Via2l0Lm9yZy9iLzc0NDIwPiBEaXNhYmxlIGRlcHJlY2F0aW9uIHdhcm5pbmdz
IGFyb3VuZCBtb3JlIGNvZGUgd2hlcmUgd2UgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCShy
ZXZpc2lvbiAxMDIxNTEpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIwNDAsNiArMjA0MCwyOCBAQCBQYXNzUmVmUHRyPFdlYktpdEFuaW1hdGlv
bkxpc3Q+IEVsZW1lbnQ6CiAgICAgcmV0dXJuIGFuaW1Db250cm9sbGVyLT5hbmltYXRpb25zRm9y
UmVuZGVyZXIocmVuZGVyZXIoKSk7CiB9CiAKK2Jvb2wgRWxlbWVudDo6c2Nyb2xsYWJsZUVsZW1l
bnQoKSBjb25zdAoreworICAgIHJldHVybiBoYXNSYXJlRGF0YSgpICYmIHJhcmVEYXRhKCktPm1f
c2Nyb2xsZWRQb3NpdGlvbiAhPSBJbnRQb2ludDo6emVybygpOworfQorCitJbnRQb2ludCBFbGVt
ZW50OjpzY3JvbGxlZFBvc2l0aW9uKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoc2Nyb2xsYWJsZUVs
ZW1lbnQoKSk7CisgICAgcmV0dXJuIHJhcmVEYXRhKCktPm1fc2Nyb2xsZWRQb3NpdGlvbjsKK30K
Kwordm9pZCBFbGVtZW50OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYgcG9pbnQp
Cit7CisgICAgZW5zdXJlUmFyZURhdGEoKS0+bV9zY3JvbGxlZFBvc2l0aW9uID0gcG9pbnQ7Cit9
CisKK3ZvaWQgRWxlbWVudDo6cmVzZXRTY3JvbGxQb3NpdGlvbigpCit7CisgICAgaWYgKHNjcm9s
bGFibGVFbGVtZW50KCkpCisgICAgICAgIHJhcmVEYXRhKCktPm1fc2Nyb2xsZWRQb3NpdGlvbiA9
IEludFBvaW50KCk7Cit9CisKICNpZm5kZWYgTkRFQlVHCiBib29sIEVsZW1lbnQ6OmZhc3RBdHRy
aWJ1dGVMb29rdXBBbGxvd2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0CiB7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmgJKHJldmlzaW9uIDEwMjE1MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2Myw2ICszNjMsMTEgQEAgcHVibGlj
OgogICAgIFBhc3NSZWZQdHI8V2ViS2l0QW5pbWF0aW9uTGlzdD4gd2Via2l0R2V0QW5pbWF0aW9u
cygpIGNvbnN0OwogICAgIAogICAgIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yUmVu
ZGVyZXIoKTsKKyAKKyAgICBib29sIHNjcm9sbGFibGVFbGVtZW50KCkgY29uc3Q7CisgICAgSW50
UG9pbnQgc2Nyb2xsZWRQb3NpdGlvbigpIGNvbnN0OworICAgIHZvaWQgc2V0U2Nyb2xsUG9zaXRp
b24oY29uc3QgSW50UG9pbnQmKTsKKyAgICB2b2lkIHJlc2V0U2Nyb2xsUG9zaXRpb24oKTsKIAog
cHJvdGVjdGVkOgogICAgIEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQqIGRvY3VtZW50LCBDb25zdHJ1Y3Rpb25UeXBlIHR5cGUpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnRSYXJlRGF0YS5oCShyZXZpc2lvbiAxMDIxNTEpCisrKyBTb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudFJhcmVEYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDggQEAg
cHVibGljOgogCiAgICAgYm9vbCBtX3N0eWxlQWZmZWN0ZWRCeUVtcHR5OwogCisgICAgSW50UG9p
bnQgbV9zY3JvbGxlZFBvc2l0aW9uOworCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAg
IGJvb2wgbV9jb250YWluc0Z1bGxTY3JlZW5FbGVtZW50OwogI2VuZGlmCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCShyZXZpc2lvbiAxMDIxNTEpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ1OCw2ICs0NTgsMTAgQEAgdm9pZCBOb2RlOjpzZXREb2N1bWVu
dChEb2N1bWVudCogZG9jdW1lbgogCiAgICAgaWYgKG1fZG9jdW1lbnQpIHsKICAgICAgICAgbV9k
b2N1bWVudC0+bW92ZU5vZGVJdGVyYXRvcnNUb05ld0RvY3VtZW50KHRoaXMsIGRvY3VtZW50KTsK
KworICAgICAgICBpZiAoaXNFbGVtZW50Tm9kZSgpKQorICAgICAgICAgICAgdG9FbGVtZW50KHRo
aXMpLT5yZXNldFNjcm9sbFBvc2l0aW9uKCk7CisKICAgICAgICAgbV9kb2N1bWVudC0+Z3VhcmRE
ZXJlZigpOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCShyZXZpc2lvbiAxMDIxNTEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTMsNiArMTkzLDE3IEBAIFJlbmRlckxh
eWVyOjpSZW5kZXJMYXllcihSZW5kZXJCb3hNb2RlbE8KICAgICAgICAgbV92aXNpYmxlQ29udGVu
dFN0YXR1c0RpcnR5ID0gZmFsc2U7CiAgICAgICAgIG1faGFzVmlzaWJsZUNvbnRlbnQgPSByZW5k
ZXJlci0+c3R5bGUoKS0+dmlzaWJpbGl0eSgpID09IFZJU0lCTEU7CiAgICAgfQorCisgICAgTm9k
ZSogbm9kZSA9IHJlbmRlcmVyLT5ub2RlKCk7CisgICAgaWYgKG5vZGUgJiYgbm9kZS0+aXNFbGVt
ZW50Tm9kZSgpKSB7CisgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSB0b0VsZW1lbnQobm9kZSk7
CisgICAgICAgIGlmIChlbGVtZW50LT5zY3JvbGxhYmxlRWxlbWVudCgpKSB7CisgICAgICAgICAg
ICAvLyBXZSBzYXZlIGFuZCByZXN0b3JlIG9ubHkgdGhlIHNjcm9sbE9mZnNldCBhcyB0aGUgb3Ro
ZXIgc2Nyb2xsIHZhbHVlcyBhcmUgcmVjYWx1bGF0ZWQuCisgICAgICAgICAgICAvLyBGSVhNRTog
V2UgYXJlIGFzc3VtaW5nIHRob3NlIHNjcm9sbCB2YWx1ZXMgZGlkIG5vdCBjaGFuZ2UuIElmIHRo
ZXkgZG8sIG91ciBjYWNoZWQgc2Nyb2xsT2Zmc2V0IG1heSBiZSB3cm9uZy4KKyAgICAgICAgICAg
IG1fc2Nyb2xsT2Zmc2V0ID0gdG9TaXplKGVsZW1lbnQtPnNjcm9sbGVkUG9zaXRpb24oKSk7Cisg
ICAgICAgICAgICBlbGVtZW50LT5yZXNldFNjcm9sbFBvc2l0aW9uKCk7CisgICAgICAgIH0KKyAg
ICB9CiB9CiAKIFJlbmRlckxheWVyOjp+UmVuZGVyTGF5ZXIoKQpAQCAtMjAyLDkgKzIxMywxNCBA
QCBSZW5kZXJMYXllcjo6flJlbmRlckxheWVyKCkKICAgICAgICAgICAgIGZyYW1lLT5ldmVudEhh
bmRsZXIoKS0+cmVzaXplTGF5ZXJEZXN0cm95ZWQoKTsKICAgICB9CiAKLSAgICBpZiAobV9zY3Jv
bGxhYmxlQXJlYVBhZ2UpCisgICAgaWYgKG1fc2Nyb2xsYWJsZUFyZWFQYWdlKSB7CiAgICAgICAg
IG1fc2Nyb2xsYWJsZUFyZWFQYWdlLT5yZW1vdmVTY3JvbGxhYmxlQXJlYSh0aGlzKTsKIAorICAg
ICAgICBOb2RlKiBub2RlID0gbV9yZW5kZXJlci0+bm9kZSgpOworICAgICAgICBpZiAobm9kZSAm
JiBub2RlLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgICAgICB0b0VsZW1lbnQobm9kZSktPnNl
dFNjcm9sbFBvc2l0aW9uKHRvUG9pbnQobV9zY3JvbGxPZmZzZXQpKTsKKyAgICB9CisKICAgICBk
ZXN0cm95U2Nyb2xsYmFyKEhvcml6b250YWxTY3JvbGxiYXIpOwogICAgIGRlc3Ryb3lTY3JvbGxi
YXIoVmVydGljYWxTY3JvbGxiYXIpOwogCkBAIC0xMzc5LDcgKzEzOTUsNyBAQCB2b2lkIFJlbmRl
ckxheWVyOjpzY3JvbGxUb09mZnNldChMYXlvdXRVCiAgICAgICAgIHggPSBtaW4obWF4PExheW91
dFVuaXQ+KHgsIDApLCBtYXhYKTsKICAgICAgICAgeSA9IG1pbihtYXg8TGF5b3V0VW5pdD4oeSwg
MCksIG1heFkpOwogICAgIH0KLSAgICAKKwogICAgIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09m
ZnNldFdpdGhvdXRBbmltYXRpb24oTGF5b3V0UG9pbnQoeCwgeSkpOwogfQogCkluZGV4OiBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAxMDI2OTEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxNiBAQAorMjAxMS0xMi0xMyAgUmFrZXNoIEtOICA8cmFrZXNoLmtuQG1vdG9y
b2xhLmNvbT4KKworICAgICAgICBTY3JvbGwgcG9zaXRpb24gaXMgbG9zdCBhZnRlciBoaWRlL3No
b3cgZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzI4NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNYWludGFpbiB0aGUgc2Nyb2xsIHBvc2l0aW9uIG9mIG92ZXJmbG93aW5nIGVsZW1lbnQgd2hl
biB0aGUgc2Nyb2xsYWJsZSBSZW5kZXJMYXllciBpcyBkZXN0cm95ZWQsCisgICAgICAgIHdoaWNo
IGNhbiBiZSB1c2VkIHRvIHJlc3RvcmUgdGhlIHNjcm9sbCBwb3NpdGlvbiBpZiB0aGUgc2FtZSBl
bGVtZW50IGlzIGFnYWluIGFkZGVkIHRvIHRoZSByZW5kZXIgdHJlZS4gCisKKyAgICAgICAgKiBm
YXN0L292ZXJmbG93L3Njcm9sbC1kaXYtaGlkZS1zaG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9vdmVyZmxvdy9zY3JvbGwtZGl2LWhpZGUtc2hvdy5odG1sOiBBZGRlZC4K
KwogMjAxMS0xMi0xMiAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgQ1NTIDIuMSBmYWlsdXJlOiBlb2YtMDAyLmh0bSBmYWlscwpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9vdmVyZmxvdy9zY3JvbGwtZGl2LWhpZGUtc2hvdy1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9zY3JvbGwtZGl2LWhpZGUtc2hvdy1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9s
bC1kaXYtaGlkZS1zaG93LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MyBA
QAorU2Nyb2xsZWQgcG9zaXRpb24gc2hvdWxkIGJlIHJlc3RvcmVkIHdoZW4gdGhlIGRpdiBpcyBo
aWRkZW4gYW5kIHNob3duIGFnYWluCisKKworU2Nyb2xsaW5nIHRvIDAsIDc1CitEaXYncyBkaXNw
bGF5IGlzIG5vbmUgbm93CitQQVNTIGUuc2Nyb2xsVG9wIGlzIDAKK0RpdidzIGRpc3BsYXkgaXMg
YmxvY2sgYWdhaW4KK1BBU1MgZS5zY3JvbGxUb3AgaXMgNzUKKworVGVzdCB0aGF0IGFmdGVyIGNo
YW5naW5nIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gZGlmZmVyZW50IHZhbHVlcyB0aGUgc2Nyb2xs
IHBvc2l0aW9uIGlzIHJlc3RvcmVkCitTY3JvbGxpbmcgdG8gNTAsIDUwCitEaXYncyBkaXNwbGF5
IGlzIG5vbmUgbm93CitQQVNTIGUuc2Nyb2xsVG9wIGlzIDAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlz
IDAKK0RpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4KK1BBU1MgZS5zY3JvbGxUb3AgaXMgNTAK
K1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDUwCitTY3JvbGxpbmcgdG8gMzAsIDEwCitEaXYncyBkaXNw
bGF5IGlzIG5vbmUgbm93CitQQVNTIGUuc2Nyb2xsVG9wIGlzIDAKK1BBU1MgZS5zY3JvbGxMZWZ0
IGlzIDAKK0RpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4KK1BBU1MgZS5zY3JvbGxUb3AgaXMg
MTAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDMwCitTY3JvbGxpbmcgdG8gMTAwLCAwCitEaXYncyBk
aXNwbGF5IGlzIG5vbmUgbm93CitQQVNTIGUuc2Nyb2xsVG9wIGlzIDAKK1BBU1MgZS5zY3JvbGxM
ZWZ0IGlzIDAKK0RpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4KK1BBU1MgZS5zY3JvbGxUb3Ag
aXMgMAorUEFTUyBlLnNjcm9sbExlZnQgaXMgMTAwCisKK1Rlc3RpbmcgdGhhdCBzY3JvbGwgcG9z
aXRpb24gaXMgcmVzdG9yZWQgd2hlbiBoZWlnaHQgYW5kIHdpZHRoIG9mIHNjcm9sbGluZyBhcmVh
IGlzIGNoYW5nZWQKK1Njcm9sbGluZyB0byAzNSwgNzUKK0RpdidzIGRpc3BsYXkgaXMgbm9uZSBu
b3cKK1BBU1MgZS5zY3JvbGxUb3AgaXMgMAorUEFTUyBlLnNjcm9sbExlZnQgaXMgMAorRGl2J3Mg
ZGlzcGxheSBpcyBibG9jayBhZ2FpbgorUEFTUyBlLnNjcm9sbFRvcCBpcyA3NQorUEFTUyBlLnNj
cm9sbExlZnQgaXMgMzUKK0FkZGluZyBzb21lIG1vcmUgdGV4dCB0byBkaXYKK1Njcm9sbGluZyB0
byAxMjUsIDEwMAorRGl2J3MgZGlzcGxheSBpcyBub25lIG5vdworUEFTUyBlLnNjcm9sbFRvcCBp
cyAwCitQQVNTIGUuc2Nyb2xsTGVmdCBpcyAwCitEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWlu
CitQQVNTIGUuc2Nyb2xsVG9wIGlzIDEwMAorUEFTUyBlLnNjcm9sbExlZnQgaXMgMTI1CisKK1Rl
c3RpbmcgdGhhdCBzY3JvbGwgcG9zaXRpb24gaXMgcmVzdG9yZWQgZm9yIFJUTCB0ZXh0cworU2Ny
b2xsaW5nIHRvIDUwLCAxNTAKK0RpdidzIGRpc3BsYXkgaXMgbm9uZSBub3cKK1BBU1MgZS5zY3Jv
bGxUb3AgaXMgMAorUEFTUyBlLnNjcm9sbExlZnQgaXMgMAorRGl2J3MgZGlzcGxheSBpcyBibG9j
ayBhZ2FpbgorUEFTUyBlLnNjcm9sbFRvcCBpcyAxNTAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDUw
CisKK1Rlc3QgaWZyYW1lIHNjcm9sbGluZworU2Nyb2xsaW5nIElmcmFtZSB0byAoNTAsIDc1KQor
SWZyYW1lJ3MgZGlzcGxheSBpcyBub25lIG5vdworSWZyYW1lJ3MgZGlzcGxheSBpcyBibG9jayBh
Z2FpbgorUEFTUyBmcmFtZS5jb250ZW50V2luZG93LnBhZ2VZT2Zmc2V0IGlzIDc1CitQQVNTIGZy
YW1lLmNvbnRlbnRXaW5kb3cucGFnZVhPZmZzZXQgaXMgNTAKKworVGVzdGluZyBzY3JvbGwgb2Zm
c2V0IGdldHRpbmcgcmVzZXQgd2hlbiBtb3ZlZCB0byBvdGhlciBkb2N1bWVudAorU2Nyb2xsaW5n
IGRpdiB0byAoNTAsIDc1KQorUEFTUyBlLnNjcm9sbFRvcCBpcyAwCitQQVNTIGUuc2Nyb2xsTGVm
dCBpcyAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9zY3JvbGwtZGl2LWhpZGUtc2hvdy5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1o
aWRlLXNob3cuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cv
c2Nyb2xsLWRpdi1oaWRlLXNob3cuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNzkgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
KzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cD5TY3JvbGxlZCBwb3NpdGlvbiBzaG91bGQgYmUgcmVzdG9yZWQg
d2hlbiB0aGUgZGl2IGlzIGhpZGRlbiBhbmQgc2hvd24gYWdhaW48L3A+Cis8ZGl2IHN0eWxlPSJo
ZWlnaHQ6MTAwcHg7IHdpZHRoOjEwMHB4OyBvdmVyZmxvdzogc2Nyb2xsOyBkaXNwbGF5OiBibG9j
azsiIGlkPSJtYWluIj4KKzxwcmUgaWQ9InByZUlkIj4KK2xpbmUgMSB3aXRoIHNvbWUgdGV4dCB3
aGljaCBoYXMgdG8gYmUgc2Nyb2xsIHRvIGJlIHZpc2libGUKK2xpbmUgMiB3aXRoIHNvbWUgdGV4
dCB3aGljaCBoYXMgdG8gYmUgc2Nyb2xsIHRvIGJlIHZpc2libGUKK2xpbmUgMyB3aXRoIHNvbWUg
dGV4dCB3aGljaCBoYXMgdG8gYmUgc2Nyb2xsIHRvIGJlIHZpc2libGUKK2xpbmUgNCB3aXRoIHNv
bWUgdGV4dCB3aGljaCBoYXMgdG8gYmUgc2Nyb2xsIHRvIGJlIHZpc2libGUKK2xpbmUgNSB3aXRo
IHNvbWUgdGV4dCB3aGljaCBoYXMgdG8gYmUgc2Nyb2xsIHRvIGJlIHZpc2libGUKK2xpbmUgNiB3
aXRoIHNvbWUgdGV4dCB3aGljaCBoYXMgdG8gYmUgc2Nyb2xsIHRvIGJlIHZpc2libGUKK2xpbmUg
NyB3aXRoIHNvbWUgdGV4dCB3aGljaCBoYXMgdG8gYmUgc2Nyb2xsIHRvIGJlIHZpc2libGUKK2xp
bmUgOCB3aXRoIHNvbWUgdGV4dCB3aGljaCBoYXMgdG8gYmUgc2Nyb2xsIHRvIGJlIHZpc2libGUK
K2xpbmUgOSB3aXRoIHNvbWUgdGV4dCB3aGljaCBoYXMgdG8gYmUgc2Nyb2xsIHRvIGJlIHZpc2li
bGUKK2xpbmUgMTAgd2l0aCBzb21lIHRleHQgd2hpY2ggaGFzIHRvIGJlIHNjcm9sbCB0byBiZSB2
aXNpYmxlCitsaW5lIDExIHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwgdG8g
YmUgdmlzaWJsZQorbGluZSAxMiB3aXRoIHNvbWUgdGV4dCB3aGljaCBoYXMgdG8gYmUgc2Nyb2xs
IHRvIGJlIHZpc2libGUKKzwvcHJlPgorPC9kaXY+CisKKzxpZnJhbWUgaWQ9ImZyYW1lIiBzdHls
ZT0iZGlzcGxheTpibG9jazsgd2lkdGg6NDAwcHg7IGhlaWdodDogNDAwcHg7Ij48L2lmcmFtZT4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBlID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoIm1haW4iKTsKK2RlYnVnKCJTY3JvbGxpbmcgdG8gMCwgNzUiKTsKK2Uuc2Ny
b2xsVG9wID0gNzU7CitlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CitkZWJ1ZygiRGl2J3MgZGlz
cGxheSBpcyBub25lIG5vdyIpOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzAnKTsKK2Uuc3R5
bGUuZGlzcGxheSA9ICdibG9jayc7CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBibG9jayBhZ2Fp
biIpOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzc1Jyk7CisKK2RlYnVnKCIiKTsKK2RlYnVn
KCJUZXN0IHRoYXQgYWZ0ZXIgY2hhbmdpbmcgdGhlIHNjcm9sbCBwb3NpdGlvbiB0byBkaWZmZXJl
bnQgdmFsdWVzIHRoZSBzY3JvbGwgcG9zaXRpb24gaXMgcmVzdG9yZWQiKTsKK2RlYnVnKCJTY3Jv
bGxpbmcgdG8gNTAsIDUwIik7CitlLnNjcm9sbFRvcCA9IDUwOworZS5zY3JvbGxMZWZ0ID0gNTA7
CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBub25lIG5vdyIpOworZS5zdHlsZS5kaXNwbGF5ID0g
J25vbmUnOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzAnKTsKK3Nob3VsZEJlKCdlLnNjcm9s
bExlZnQnLCAnMCcpOworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4iKTsKK2Uu
c3R5bGUuZGlzcGxheSA9ICdibG9jayc7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnNTAnKTsK
K3Nob3VsZEJlKCdlLnNjcm9sbExlZnQnLCAnNTAnKTsKKworZGVidWcoIlNjcm9sbGluZyB0byAz
MCwgMTAiKTsKK2Uuc2Nyb2xsVG9wID0gMTA7CitlLnNjcm9sbExlZnQgPSAzMDsKK2RlYnVnKCJE
aXYncyBkaXNwbGF5IGlzIG5vbmUgbm93Iik7CitlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7Citz
aG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMCcpOworc2hvdWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICcw
Jyk7CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBibG9jayBhZ2FpbiIpOworZS5zdHlsZS5kaXNw
bGF5ID0gJ2Jsb2NrJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcxMCcpOworc2hvdWxkQmUo
J2Uuc2Nyb2xsTGVmdCcsICczMCcpOworCitkZWJ1ZygiU2Nyb2xsaW5nIHRvIDEwMCwgMCIpOwor
ZS5zY3JvbGxUb3AgPSAwOworZS5zY3JvbGxMZWZ0ID0gMTAwOworZGVidWcoIkRpdidzIGRpc3Bs
YXkgaXMgbm9uZSBub3ciKTsKK2Uuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKK3Nob3VsZEJlKCdl
LnNjcm9sbFRvcCcsICcwJyk7CitzaG91bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzAnKTsKK2RlYnVn
KCJEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluIik7CitlLnN0eWxlLmRpc3BsYXkgPSAnYmxv
Y2snOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzAnKTsKK3Nob3VsZEJlKCdlLnNjcm9sbExl
ZnQnLCAnMTAwJyk7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0aW5nIHRoYXQgc2Nyb2xsIHBv
c2l0aW9uIGlzIHJlc3RvcmVkIHdoZW4gaGVpZ2h0IGFuZCB3aWR0aCBvZiBzY3JvbGxpbmcgYXJl
YSBpcyBjaGFuZ2VkIik7CitlLnN0eWxlLmhlaWdodCA9IGUuc2Nyb2xsSGVpZ2h0ICsgNTA7Citl
LnN0eWxlLndpZHRoID0gZS5zY3JvbGxXaWR0aCArIDUwOworZGVidWcoIlNjcm9sbGluZyB0byAz
NSwgNzUiKTsKK2Uuc2Nyb2xsVG9wID0gNzU7CitlLnNjcm9sbExlZnQgPSAzNTsKK2RlYnVnKCJE
aXYncyBkaXNwbGF5IGlzIG5vbmUgbm93Iik7CitlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7Citz
aG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMCcpOworc2hvdWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICcw
Jyk7CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBibG9jayBhZ2FpbiIpOworZS5zdHlsZS5kaXNw
bGF5ID0gJ2Jsb2NrJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICc3NScpOworc2hvdWxkQmUo
J2Uuc2Nyb2xsTGVmdCcsICczNScpOworZGVidWcoIkFkZGluZyBzb21lIG1vcmUgdGV4dCB0byBk
aXYiKTsKK2UuaW5uZXJIVE1MICs9ICJsaW5lIDEzIDxici8+IGxpbmUgMTQgPGJyLz4gbGluZSAx
NSA8YnIvPiBsaW5lIDE2IDxici8+IGxpbmUgMTcgPGJyLz4iOworZGVidWcoIlNjcm9sbGluZyB0
byAxMjUsIDEwMCIpOworZS5zY3JvbGxUb3AgPSAxMDA7CitlLnNjcm9sbExlZnQgPSAxMjU7Citk
ZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBub25lIG5vdyIpOworZS5zdHlsZS5kaXNwbGF5ID0gJ25v
bmUnOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzAnKTsKK3Nob3VsZEJlKCdlLnNjcm9sbExl
ZnQnLCAnMCcpOworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4iKTsKK2Uuc3R5
bGUuZGlzcGxheSA9ICdibG9jayc7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMTAwJyk7Citz
aG91bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzEyNScpOworCit2YXIgZGl2Q29udGVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJwcmVJZCIpLmlubmVySFRNTDsKKworZGVidWcoIiIpOworZGVi
dWcoIlRlc3RpbmcgdGhhdCBzY3JvbGwgcG9zaXRpb24gaXMgcmVzdG9yZWQgZm9yIFJUTCB0ZXh0
cyIpOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByZUlkIikuaW5uZXJIVE1MID0gItmF2YXY
sdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in
2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wKKyAgICBcbtio2YvYp9mF2LHYrdio
2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHY
rdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZ
hdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfYsdit2KjZi9inXAorICAgIFxu2KjZ
i9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio
2YvYp1wKKyAgICBcbtit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in
2LHYrdio2YvYp1wKKyAgICBcbtmF2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in
2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvY
p1wKKyAgICBcbtio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHY
rdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7YqNmL2KfZ
hdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL
2KfYsdit2KjZi9inXAorICAgIFxu2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit
2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wKKyAgICBcbtmF2YXYsdit2KjZi9in2YXYsdit
2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXY
sdit2KjZi9in2LHYrdio2YvYp1wKKyAgICBcbtio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvY
p9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL
2KdcCisgICAgXG7YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix
2K3YqNmL2KfZhdix2K3YqNmL2KfYsdit2KjZi9inXAorICAgIFxu2KjZi9in2YXYsdit2KjZi9in
2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZ
i9in2LHYrdio2YvYp1wKKyAgICBcbtio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHY
rdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZ
hdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfYsdit2KjZi9inXAorICAgIFxu2KjZ
i9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit
2KjZi9in2LHYrdio2YvYpyI7CisKK2UuZGlyPSJydGwiOworCitkZWJ1ZygiU2Nyb2xsaW5nIHRv
IDUwLCAxNTAiKTsKK2Uuc2Nyb2xsVG9wID0gMTUwOworZS5zY3JvbGxMZWZ0ID0gNTA7CitkZWJ1
ZygiRGl2J3MgZGlzcGxheSBpcyBub25lIG5vdyIpOworZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUn
Oworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzAnKTsKK3Nob3VsZEJlKCdlLnNjcm9sbExlZnQn
LCAnMCcpOworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4iKTsKK2Uuc3R5bGUu
ZGlzcGxheSA9ICdibG9jayc7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMTUwJyk7CitzaG91
bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzUwJyk7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IGlm
cmFtZSBzY3JvbGxpbmciKTsKK3ZhciBmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdm
cmFtZScpOwordmFyIGRvYyA9IGZyYW1lLmNvbnRlbnREb2N1bWVudC5vcGVuKCk7Citkb2Mud3Jp
dGUoIjxkaXYgc3R5bGU9J3dpZHRoOjEwMHB4OyBoZWlnaHQ6MTAwcHg7IGJhY2tncm91bmQ6eWVs
bG93Oyc+PC9kaXY+Iik7Citkb2MuY2xvc2UoKTsKK2ZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5
LnN0eWxlLndpZHRoID0gIjIwMDBweCI7CitmcmFtZS5jb250ZW50RG9jdW1lbnQuYm9keS5zdHls
ZS5oZWlnaHQgPSAiMjAwMHB4IjsKKworZGVidWcoIlNjcm9sbGluZyBJZnJhbWUgdG8gKDUwLCA3
NSkiKTsKK2ZyYW1lLmNvbnRlbnRXaW5kb3cuc2Nyb2xsVG8oNTAsIDc1KTsKKworZnJhbWUuc3R5
bGUuZGlzcGxheSA9ICdub25lJzsKK2RlYnVnKCJJZnJhbWUncyBkaXNwbGF5IGlzIG5vbmUgbm93
Iik7CisKK2ZyYW1lLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOworZGVidWcoIklmcmFtZSdzIGRp
c3BsYXkgaXMgYmxvY2sgYWdhaW4iKTsKKworc2hvdWxkQmUoJ2ZyYW1lLmNvbnRlbnRXaW5kb3cu
cGFnZVlPZmZzZXQnLCAnNzUnKTsKK3Nob3VsZEJlKCdmcmFtZS5jb250ZW50V2luZG93LnBhZ2VY
T2Zmc2V0JywgJzUwJyk7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0aW5nIHNjcm9sbCBvZmZz
ZXQgZ2V0dGluZyByZXNldCB3aGVuIG1vdmVkIHRvIG90aGVyIGRvY3VtZW50Iik7Citkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicHJlSWQiKS5pbm5lckhUTUwgPSBkaXZDb250ZW50OworZS5kaXI9
Imx0ciI7CitkZWJ1ZygiU2Nyb2xsaW5nIGRpdiB0byAoNTAsIDc1KSIpOworZS5zY3JvbGxUb3Ag
PSA3NTsKK2Uuc2Nyb2xsTGVmdCA9IDUwOworZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworZnJh
bWUuY29udGVudERvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSk7CitlLnN0eWxlLmRpc3BsYXkg
PSAnYmxvY2snOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzAnKTsKK3Nob3VsZEJlKCdlLnNj
cm9sbExlZnQnLCAnMCcpOworCitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119240</attachid>
            <date>2011-12-14 10:08:32 -0800</date>
            <delta_ts>2011-12-19 00:48:17 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-72852-20111214233827.patch</filename>
            <type>text/plain</type>
            <size>15704</size>
            <attacher name="Rakesh">rakeshchaitan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjc5MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDExLTEyLTE0ICBSYWtlc2gg
S04gIDxyYWtlc2gua25AbW90b3JvbGEuY29tPgorCisgICAgICAgIFNjcm9sbCBwb3NpdGlvbiBp
cyBsb3N0IGFmdGVyIGhpZGUvc2hvdyBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjg1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRl
LXNob3cuaHRtbAorCisgICAgICAgIE1haW50YWluIHRoZSBzY3JvbGwgcG9zaXRpb24gb2Ygb3Zl
cmZsb3dpbmcgZWxlbWVudCB3aGVuIHRoZSBzY3JvbGxhYmxlIFJlbmRlckxheWVyIGlzIGRlc3Ry
b3llZCwKKyAgICAgICAgd2hpY2ggY2FuIGJlIHVzZWQgdG8gcmVzdG9yZSB0aGUgc2Nyb2xsIHBv
c2l0aW9uIGlmIHRoZSBzYW1lIGVsZW1lbnQgaXMgYWdhaW4gYWRkZWQgdG8gdGhlIHJlbmRlciB0
cmVlLiAKKworICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnQ6OnNjcm9sbGFibGVFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNj
cm9sbGVkUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0U2Nyb2xsUG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVzZXRTY3JvbGxQb3NpdGlvbik6
CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgSGVscGVyIGZ1bmN0aW9ucyBmb3Ig
YWNjZXNzaW5nIHNjcm9sbCBwb3NpdGlvbiBmcm9tIHJhcmUgZGF0YS4KKworICAgICAgICAqIGRv
bS9FbGVtZW50UmFyZURhdGEuaDoKKyAgICAgICAgTWFpbnRhaW4gdGhlIHNjcm9sbGVkIHBvc2l0
aW9uLgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnNl
dERvY3VtZW50KToKKyAgICAgICAgUmVzZXR0aW5nIHRoZSBzY3JvbGwgcG9zaXRpb24gaWYgbm9k
ZSBpcyBtb3ZlZCB0byBvdGhlciBkb2N1bWVudC4gCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpSZW5kZXJMYXllcik6
CisgICAgICAgIFJlc3RvcmluZyB0aGUgc2Nyb2xsIHBvc2l0aW9uIGlmIGl0IHdhcyBzdG9yZWQu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6flJlbmRlckxheWVyKToKKyAgICAgICAg
U3RvcmluZyB0aGUgc2Nyb2xsIHBvc2l0aW9uLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXI6OnNjcm9sbFRvT2Zmc2V0KToKKyAgICAgICAgV2hpdGUgc3BhY2UgcmVtb3ZlZC4KKwogMjAx
MS0xMi0xNCAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBEYXRhYmFzZVRhYmxlVmlldyBzaG91bGQgZXNjYXBlIHRhYmxlIG5h
bWUuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxMDIxNTEpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNDAsNiArMjA0
MCwyOCBAQCBQYXNzUmVmUHRyPFdlYktpdEFuaW1hdGlvbkxpc3Q+IEVsZW1lbnQ6CiAgICAgcmV0
dXJuIGFuaW1Db250cm9sbGVyLT5hbmltYXRpb25zRm9yUmVuZGVyZXIocmVuZGVyZXIoKSk7CiB9
CiAKK2Jvb2wgRWxlbWVudDo6c2Nyb2xsYWJsZUVsZW1lbnQoKSBjb25zdAoreworICAgIHJldHVy
biBoYXNSYXJlRGF0YSgpICYmIHJhcmVEYXRhKCktPm1fc2Nyb2xsZWRQb3NpdGlvbiAhPSBJbnRQ
b2ludDo6emVybygpOworfQorCitJbnRQb2ludCBFbGVtZW50OjpzY3JvbGxlZFBvc2l0aW9uKCkg
Y29uc3QKK3sKKyAgICBBU1NFUlQoc2Nyb2xsYWJsZUVsZW1lbnQoKSk7CisgICAgcmV0dXJuIHJh
cmVEYXRhKCktPm1fc2Nyb2xsZWRQb3NpdGlvbjsKK30KKwordm9pZCBFbGVtZW50OjpzZXRTY3Jv
bGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYgcG9pbnQpCit7CisgICAgZW5zdXJlUmFyZURhdGEo
KS0+bV9zY3JvbGxlZFBvc2l0aW9uID0gcG9pbnQ7Cit9CisKK3ZvaWQgRWxlbWVudDo6cmVzZXRT
Y3JvbGxQb3NpdGlvbigpCit7CisgICAgaWYgKHNjcm9sbGFibGVFbGVtZW50KCkpCisgICAgICAg
IHJhcmVEYXRhKCktPm1fc2Nyb2xsZWRQb3NpdGlvbiA9IEludFBvaW50KCk7Cit9CisKICNpZm5k
ZWYgTkRFQlVHCiBib29sIEVsZW1lbnQ6OmZhc3RBdHRyaWJ1dGVMb29rdXBBbGxvd2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0CiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgJKHJl
dmlzaW9uIDEwMjE1MSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM2Myw2ICszNjMsMTEgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8V2ViS2l0
QW5pbWF0aW9uTGlzdD4gd2Via2l0R2V0QW5pbWF0aW9ucygpIGNvbnN0OwogICAgIAogICAgIFBh
c3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yUmVuZGVyZXIoKTsKKyAKKyAgICBib29sIHNj
cm9sbGFibGVFbGVtZW50KCkgY29uc3Q7CisgICAgSW50UG9pbnQgc2Nyb2xsZWRQb3NpdGlvbigp
IGNvbnN0OworICAgIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgSW50UG9pbnQmKTsKKyAg
ICB2b2lkIHJlc2V0U2Nyb2xsUG9zaXRpb24oKTsKIAogcHJvdGVjdGVkOgogICAgIEVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBDb25zdHJ1
Y3Rpb25UeXBlIHR5cGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRh
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCShy
ZXZpc2lvbiAxMDIxNTEpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDggQEAgcHVibGljOgogCiAgICAgYm9vbCBtX3N0
eWxlQWZmZWN0ZWRCeUVtcHR5OwogCisgICAgSW50UG9pbnQgbV9zY3JvbGxlZFBvc2l0aW9uOwor
CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIGJvb2wgbV9jb250YWluc0Z1bGxTY3Jl
ZW5FbGVtZW50OwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCShyZXZpc2lvbiAxMDIxNTEp
CisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1OCw2
ICs0NTgsMTAgQEAgdm9pZCBOb2RlOjpzZXREb2N1bWVudChEb2N1bWVudCogZG9jdW1lbgogCiAg
ICAgaWYgKG1fZG9jdW1lbnQpIHsKICAgICAgICAgbV9kb2N1bWVudC0+bW92ZU5vZGVJdGVyYXRv
cnNUb05ld0RvY3VtZW50KHRoaXMsIGRvY3VtZW50KTsKKworICAgICAgICBpZiAoaXNFbGVtZW50
Tm9kZSgpKQorICAgICAgICAgICAgdG9FbGVtZW50KHRoaXMpLT5yZXNldFNjcm9sbFBvc2l0aW9u
KCk7CisKICAgICAgICAgbV9kb2N1bWVudC0+Z3VhcmREZXJlZigpOwogICAgIH0KIApJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCShyZXZpc2lvbiAxMDIxNTEp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xOTMsNiArMTkzLDE3IEBAIFJlbmRlckxheWVyOjpSZW5kZXJMYXllcihSZW5kZXJC
b3hNb2RlbE8KICAgICAgICAgbV92aXNpYmxlQ29udGVudFN0YXR1c0RpcnR5ID0gZmFsc2U7CiAg
ICAgICAgIG1faGFzVmlzaWJsZUNvbnRlbnQgPSByZW5kZXJlci0+c3R5bGUoKS0+dmlzaWJpbGl0
eSgpID09IFZJU0lCTEU7CiAgICAgfQorCisgICAgTm9kZSogbm9kZSA9IHJlbmRlcmVyLT5ub2Rl
KCk7CisgICAgaWYgKG5vZGUgJiYgbm9kZS0+aXNFbGVtZW50Tm9kZSgpKSB7CisgICAgICAgIEVs
ZW1lbnQqIGVsZW1lbnQgPSB0b0VsZW1lbnQobm9kZSk7CisgICAgICAgIGlmIChlbGVtZW50LT5z
Y3JvbGxhYmxlRWxlbWVudCgpKSB7CisgICAgICAgICAgICAvLyBXZSBzYXZlIGFuZCByZXN0b3Jl
IG9ubHkgdGhlIHNjcm9sbE9mZnNldCBhcyB0aGUgb3RoZXIgc2Nyb2xsIHZhbHVlcyBhcmUgcmVj
YWx1bGF0ZWQuCisgICAgICAgICAgICAvLyBGSVhNRTogV2UgYXJlIGFzc3VtaW5nIHRob3NlIHNj
cm9sbCB2YWx1ZXMgZGlkIG5vdCBjaGFuZ2UuIElmIHRoZXkgZG8sIG91ciBjYWNoZWQgc2Nyb2xs
T2Zmc2V0IG1heSBiZSB3cm9uZy4KKyAgICAgICAgICAgIG1fc2Nyb2xsT2Zmc2V0ID0gdG9TaXpl
KGVsZW1lbnQtPnNjcm9sbGVkUG9zaXRpb24oKSk7CisgICAgICAgICAgICBlbGVtZW50LT5yZXNl
dFNjcm9sbFBvc2l0aW9uKCk7CisgICAgICAgIH0KKyAgICB9CiB9CiAKIFJlbmRlckxheWVyOjp+
UmVuZGVyTGF5ZXIoKQpAQCAtMjAyLDkgKzIxMywxNCBAQCBSZW5kZXJMYXllcjo6flJlbmRlckxh
eWVyKCkKICAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+cmVzaXplTGF5ZXJEZXN0
cm95ZWQoKTsKICAgICB9CiAKLSAgICBpZiAobV9zY3JvbGxhYmxlQXJlYVBhZ2UpCisgICAgaWYg
KG1fc2Nyb2xsYWJsZUFyZWFQYWdlKSB7CiAgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWFQYWdlLT5y
ZW1vdmVTY3JvbGxhYmxlQXJlYSh0aGlzKTsKIAorICAgICAgICBOb2RlKiBub2RlID0gbV9yZW5k
ZXJlci0+bm9kZSgpOworICAgICAgICBpZiAobm9kZSAmJiBub2RlLT5pc0VsZW1lbnROb2RlKCkp
CisgICAgICAgICAgICB0b0VsZW1lbnQobm9kZSktPnNldFNjcm9sbFBvc2l0aW9uKHRvUG9pbnQo
bV9zY3JvbGxPZmZzZXQpKTsKKyAgICB9CisKICAgICBkZXN0cm95U2Nyb2xsYmFyKEhvcml6b250
YWxTY3JvbGxiYXIpOwogICAgIGRlc3Ryb3lTY3JvbGxiYXIoVmVydGljYWxTY3JvbGxiYXIpOwog
CkBAIC0xMzc5LDcgKzEzOTUsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldChM
YXlvdXRVCiAgICAgICAgIHggPSBtaW4obWF4PExheW91dFVuaXQ+KHgsIDApLCBtYXhYKTsKICAg
ICAgICAgeSA9IG1pbihtYXg8TGF5b3V0VW5pdD4oeSwgMCksIG1heFkpOwogICAgIH0KLSAgICAK
KwogICAgIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oTGF5
b3V0UG9pbnQoeCwgeSkpOwogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDI3OTMpCisrKyBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0x
Mi0xNCAgUmFrZXNoIEtOICA8cmFrZXNoLmtuQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBTY3Jv
bGwgcG9zaXRpb24gaXMgbG9zdCBhZnRlciBoaWRlL3Nob3cgZWxlbWVudAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4NTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qvb3ZlcmZsb3cvc2Nyb2xs
LWRpdi1oaWRlLXNob3ctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L292ZXJm
bG93L3Njcm9sbC1kaXYtaGlkZS1zaG93Lmh0bWw6IEFkZGVkLgorCiAyMDExLTEyLTE0ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IERhdGFiYXNlVGFibGVWaWV3IHNob3VsZCBlc2NhcGUgdGFibGUgbmFtZS4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNob3ctZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRl
LXNob3ctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9vdmVy
Zmxvdy9zY3JvbGwtZGl2LWhpZGUtc2hvdy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNzMgQEAKK1Njcm9sbGVkIHBvc2l0aW9uIHNob3VsZCBiZSByZXN0b3JlZCB3aGVuIHRo
ZSBkaXYgaXMgaGlkZGVuIGFuZCBzaG93biBhZ2FpbgorCisKK1Njcm9sbGluZyB0byAwLCA3NQor
RGl2J3MgZGlzcGxheSBpcyBub25lIG5vdworUEFTUyBlLnNjcm9sbFRvcCBpcyAwCitEaXYncyBk
aXNwbGF5IGlzIGJsb2NrIGFnYWluCitQQVNTIGUuc2Nyb2xsVG9wIGlzIDc1CisKK1Rlc3QgdGhh
dCBhZnRlciBjaGFuZ2luZyB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIGRpZmZlcmVudCB2YWx1ZXMg
dGhlIHNjcm9sbCBwb3NpdGlvbiBpcyByZXN0b3JlZAorU2Nyb2xsaW5nIHRvIDUwLCA1MAorRGl2
J3MgZGlzcGxheSBpcyBub25lIG5vdworUEFTUyBlLnNjcm9sbFRvcCBpcyAwCitQQVNTIGUuc2Ny
b2xsTGVmdCBpcyAwCitEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluCitQQVNTIGUuc2Nyb2xs
VG9wIGlzIDUwCitQQVNTIGUuc2Nyb2xsTGVmdCBpcyA1MAorU2Nyb2xsaW5nIHRvIDMwLCAxMAor
RGl2J3MgZGlzcGxheSBpcyBub25lIG5vdworUEFTUyBlLnNjcm9sbFRvcCBpcyAwCitQQVNTIGUu
c2Nyb2xsTGVmdCBpcyAwCitEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluCitQQVNTIGUuc2Ny
b2xsVG9wIGlzIDEwCitQQVNTIGUuc2Nyb2xsTGVmdCBpcyAzMAorU2Nyb2xsaW5nIHRvIDEwMCwg
MAorRGl2J3MgZGlzcGxheSBpcyBub25lIG5vdworUEFTUyBlLnNjcm9sbFRvcCBpcyAwCitQQVNT
IGUuc2Nyb2xsTGVmdCBpcyAwCitEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluCitQQVNTIGUu
c2Nyb2xsVG9wIGlzIDAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDEwMAorCitUZXN0aW5nIHRoYXQg
c2Nyb2xsIHBvc2l0aW9uIGlzIHJlc3RvcmVkIHdoZW4gaGVpZ2h0IGFuZCB3aWR0aCBvZiBzY3Jv
bGxpbmcgYXJlYSBpcyBjaGFuZ2VkCitTY3JvbGxpbmcgdG8gMzUsIDc1CitEaXYncyBkaXNwbGF5
IGlzIG5vbmUgbm93CitQQVNTIGUuc2Nyb2xsVG9wIGlzIDAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlz
IDAKK0RpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4KK1BBU1MgZS5zY3JvbGxUb3AgaXMgNzUK
K1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDM1CitBZGRpbmcgc29tZSBtb3JlIHRleHQgdG8gZGl2CitT
Y3JvbGxpbmcgdG8gMTI1LCAxMDAKK0RpdidzIGRpc3BsYXkgaXMgbm9uZSBub3cKK1BBU1MgZS5z
Y3JvbGxUb3AgaXMgMAorUEFTUyBlLnNjcm9sbExlZnQgaXMgMAorRGl2J3MgZGlzcGxheSBpcyBi
bG9jayBhZ2FpbgorUEFTUyBlLnNjcm9sbFRvcCBpcyAxMDAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlz
IDEyNQorCitUZXN0aW5nIHRoYXQgc2Nyb2xsIHBvc2l0aW9uIGlzIHJlc3RvcmVkIGZvciBSVEwg
dGV4dHMKK1Njcm9sbGluZyB0byA1MCwgMTUwCitEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93CitQ
QVNTIGUuc2Nyb2xsVG9wIGlzIDAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDAKK0RpdidzIGRpc3Bs
YXkgaXMgYmxvY2sgYWdhaW4KK1BBU1MgZS5zY3JvbGxUb3AgaXMgMTUwCitQQVNTIGUuc2Nyb2xs
TGVmdCBpcyA1MAorCitUZXN0IGlmcmFtZSBzY3JvbGxpbmcKK1Njcm9sbGluZyBJZnJhbWUgdG8g
KDUwLCA3NSkKK0lmcmFtZSdzIGRpc3BsYXkgaXMgbm9uZSBub3cKK0lmcmFtZSdzIGRpc3BsYXkg
aXMgYmxvY2sgYWdhaW4KK1BBU1MgZnJhbWUuY29udGVudFdpbmRvdy5wYWdlWU9mZnNldCBpcyA3
NQorUEFTUyBmcmFtZS5jb250ZW50V2luZG93LnBhZ2VYT2Zmc2V0IGlzIDUwCisKK1Rlc3Rpbmcg
c2Nyb2xsIG9mZnNldCBnZXR0aW5nIHJlc2V0IHdoZW4gbW92ZWQgdG8gb3RoZXIgZG9jdW1lbnQK
K1Njcm9sbGluZyBkaXYgdG8gKDUwLCA3NSkKK1BBU1MgZS5zY3JvbGxUb3AgaXMgMAorUEFTUyBl
LnNjcm9sbExlZnQgaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1o
aWRlLXNob3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Nj
cm9sbC1kaXYtaGlkZS1zaG93Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L292ZXJmbG93L3Njcm9sbC1kaXYtaGlkZS1zaG93Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMTc5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+U2Nyb2xsZWQgcG9zaXRpb24gc2hvdWxkIGJl
IHJlc3RvcmVkIHdoZW4gdGhlIGRpdiBpcyBoaWRkZW4gYW5kIHNob3duIGFnYWluPC9wPgorPGRp
diBzdHlsZT0iaGVpZ2h0OjEwMHB4OyB3aWR0aDoxMDBweDsgb3ZlcmZsb3c6IHNjcm9sbDsgZGlz
cGxheTogYmxvY2s7IiBpZD0ibWFpbiI+Cis8cHJlIGlkPSJwcmVJZCI+CitsaW5lIDEgd2l0aCBz
b21lIHRleHQgd2hpY2ggaGFzIHRvIGJlIHNjcm9sbCB0byBiZSB2aXNpYmxlCitsaW5lIDIgd2l0
aCBzb21lIHRleHQgd2hpY2ggaGFzIHRvIGJlIHNjcm9sbCB0byBiZSB2aXNpYmxlCitsaW5lIDMg
d2l0aCBzb21lIHRleHQgd2hpY2ggaGFzIHRvIGJlIHNjcm9sbCB0byBiZSB2aXNpYmxlCitsaW5l
IDQgd2l0aCBzb21lIHRleHQgd2hpY2ggaGFzIHRvIGJlIHNjcm9sbCB0byBiZSB2aXNpYmxlCits
aW5lIDUgd2l0aCBzb21lIHRleHQgd2hpY2ggaGFzIHRvIGJlIHNjcm9sbCB0byBiZSB2aXNpYmxl
CitsaW5lIDYgd2l0aCBzb21lIHRleHQgd2hpY2ggaGFzIHRvIGJlIHNjcm9sbCB0byBiZSB2aXNp
YmxlCitsaW5lIDcgd2l0aCBzb21lIHRleHQgd2hpY2ggaGFzIHRvIGJlIHNjcm9sbCB0byBiZSB2
aXNpYmxlCitsaW5lIDggd2l0aCBzb21lIHRleHQgd2hpY2ggaGFzIHRvIGJlIHNjcm9sbCB0byBi
ZSB2aXNpYmxlCitsaW5lIDkgd2l0aCBzb21lIHRleHQgd2hpY2ggaGFzIHRvIGJlIHNjcm9sbCB0
byBiZSB2aXNpYmxlCitsaW5lIDEwIHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3Jv
bGwgdG8gYmUgdmlzaWJsZQorbGluZSAxMSB3aXRoIHNvbWUgdGV4dCB3aGljaCBoYXMgdG8gYmUg
c2Nyb2xsIHRvIGJlIHZpc2libGUKK2xpbmUgMTIgd2l0aCBzb21lIHRleHQgd2hpY2ggaGFzIHRv
IGJlIHNjcm9sbCB0byBiZSB2aXNpYmxlCis8L3ByZT4KKzwvZGl2PgorCis8aWZyYW1lIGlkPSJm
cmFtZSIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7IHdpZHRoOjQwMHB4OyBoZWlnaHQ6IDQwMHB4OyI+
PC9pZnJhbWU+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluIik7CitkZWJ1ZygiU2Nyb2xsaW5nIHRvIDAsIDc1
Iik7CitlLnNjcm9sbFRvcCA9IDc1OworZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworZGVidWco
IkRpdidzIGRpc3BsYXkgaXMgbm9uZSBub3ciKTsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcw
Jyk7CitlLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMg
YmxvY2sgYWdhaW4iKTsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICc3NScpOworCitkZWJ1Zygi
Iik7CitkZWJ1ZygiVGVzdCB0aGF0IGFmdGVyIGNoYW5naW5nIHRoZSBzY3JvbGwgcG9zaXRpb24g
dG8gZGlmZmVyZW50IHZhbHVlcyB0aGUgc2Nyb2xsIHBvc2l0aW9uIGlzIHJlc3RvcmVkIik7Citk
ZWJ1ZygiU2Nyb2xsaW5nIHRvIDUwLCA1MCIpOworZS5zY3JvbGxUb3AgPSA1MDsKK2Uuc2Nyb2xs
TGVmdCA9IDUwOworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgbm9uZSBub3ciKTsKK2Uuc3R5bGUu
ZGlzcGxheSA9ICdub25lJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7CitzaG91bGRC
ZSgnZS5zY3JvbGxMZWZ0JywgJzAnKTsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFn
YWluIik7CitlLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9w
JywgJzUwJyk7CitzaG91bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzUwJyk7CisKK2RlYnVnKCJTY3Jv
bGxpbmcgdG8gMzAsIDEwIik7CitlLnNjcm9sbFRvcCA9IDEwOworZS5zY3JvbGxMZWZ0ID0gMzA7
CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBub25lIG5vdyIpOworZS5zdHlsZS5kaXNwbGF5ID0g
J25vbmUnOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzAnKTsKK3Nob3VsZEJlKCdlLnNjcm9s
bExlZnQnLCAnMCcpOworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4iKTsKK2Uu
c3R5bGUuZGlzcGxheSA9ICdibG9jayc7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMTAnKTsK
K3Nob3VsZEJlKCdlLnNjcm9sbExlZnQnLCAnMzAnKTsKKworZGVidWcoIlNjcm9sbGluZyB0byAx
MDAsIDAiKTsKK2Uuc2Nyb2xsVG9wID0gMDsKK2Uuc2Nyb2xsTGVmdCA9IDEwMDsKK2RlYnVnKCJE
aXYncyBkaXNwbGF5IGlzIG5vbmUgbm93Iik7CitlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7Citz
aG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMCcpOworc2hvdWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICcw
Jyk7CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBibG9jayBhZ2FpbiIpOworZS5zdHlsZS5kaXNw
bGF5ID0gJ2Jsb2NrJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7CitzaG91bGRCZSgn
ZS5zY3JvbGxMZWZ0JywgJzEwMCcpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdGluZyB0aGF0
IHNjcm9sbCBwb3NpdGlvbiBpcyByZXN0b3JlZCB3aGVuIGhlaWdodCBhbmQgd2lkdGggb2Ygc2Ny
b2xsaW5nIGFyZWEgaXMgY2hhbmdlZCIpOworZS5zdHlsZS5oZWlnaHQgPSBlLnNjcm9sbEhlaWdo
dCArIDUwOworZS5zdHlsZS53aWR0aCA9IGUuc2Nyb2xsV2lkdGggKyA1MDsKK2RlYnVnKCJTY3Jv
bGxpbmcgdG8gMzUsIDc1Iik7CitlLnNjcm9sbFRvcCA9IDc1OworZS5zY3JvbGxMZWZ0ID0gMzU7
CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBub25lIG5vdyIpOworZS5zdHlsZS5kaXNwbGF5ID0g
J25vbmUnOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzAnKTsKK3Nob3VsZEJlKCdlLnNjcm9s
bExlZnQnLCAnMCcpOworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4iKTsKK2Uu
c3R5bGUuZGlzcGxheSA9ICdibG9jayc7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnNzUnKTsK
K3Nob3VsZEJlKCdlLnNjcm9sbExlZnQnLCAnMzUnKTsKK2RlYnVnKCJBZGRpbmcgc29tZSBtb3Jl
IHRleHQgdG8gZGl2Iik7CitlLmlubmVySFRNTCArPSAibGluZSAxMyA8YnIvPiBsaW5lIDE0IDxi
ci8+IGxpbmUgMTUgPGJyLz4gbGluZSAxNiA8YnIvPiBsaW5lIDE3IDxici8+IjsKK2RlYnVnKCJT
Y3JvbGxpbmcgdG8gMTI1LCAxMDAiKTsKK2Uuc2Nyb2xsVG9wID0gMTAwOworZS5zY3JvbGxMZWZ0
ID0gMTI1OworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgbm9uZSBub3ciKTsKK2Uuc3R5bGUuZGlz
cGxheSA9ICdub25lJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7CitzaG91bGRCZSgn
ZS5zY3JvbGxMZWZ0JywgJzAnKTsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWlu
Iik7CitlLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywg
JzEwMCcpOworc2hvdWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICcxMjUnKTsKKwordmFyIGRpdkNvbnRl
bnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJlSWQiKS5pbm5lckhUTUw7CisKK2RlYnVn
KCIiKTsKK2RlYnVnKCJUZXN0aW5nIHRoYXQgc2Nyb2xsIHBvc2l0aW9uIGlzIHJlc3RvcmVkIGZv
ciBSVEwgdGV4dHMiKTsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcmVJZCIpLmlubmVySFRN
TCA9ICLZhdmF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF
2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7YqNmL
2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3Y
qNmL2KfZhdix2K3YqNmL2KfYsdit2KjZi9inXAorICAgIFxu2KjZi9in2YXYsdit2KjZi9in2YXY
sdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wK
KyAgICBcbtio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio
2YvYp9ix2K3YqNmL2KdcCisgICAgXG7Yrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF
2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7ZhdmF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF
2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvY
p9ix2K3YqNmL2KdcCisgICAgXG7YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3Y
qNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfYsdit2KjZi9inXAorICAg
IFxu2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in
2YXYsdit2KjZi9in2LHYrdio2YvYp1wKKyAgICBcbtio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio
2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7ZhdmF2LHYrdio
2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHY
rdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7YqNmL2KfZhdix2K3YqNmL2KfZ
hdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL
2KfYsdit2KjZi9inXAorICAgIFxu2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit
2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wKKyAgICBcbtio2YvYp9mF
2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvY
p9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3Y
qNmL2KfZhdix2K3YqNmL2KfYsdit2KjZi9inXAorICAgIFxu2KjZi9in2YXYsdit2KjZi9in2YXY
sdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wK
KyAgICBcbtio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio
2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KciOworCitlLmRpcj0icnRsIjsKKworZGVidWcoIlNj
cm9sbGluZyB0byA1MCwgMTUwIik7CitlLnNjcm9sbFRvcCA9IDE1MDsKK2Uuc2Nyb2xsTGVmdCA9
IDUwOworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgbm9uZSBub3ciKTsKK2Uuc3R5bGUuZGlzcGxh
eSA9ICdub25lJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7CitzaG91bGRCZSgnZS5z
Y3JvbGxMZWZ0JywgJzAnKTsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluIik7
CitlLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzE1
MCcpOworc2hvdWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICc1MCcpOworCitkZWJ1ZygiIik7CitkZWJ1
ZygiVGVzdCBpZnJhbWUgc2Nyb2xsaW5nIik7Cit2YXIgZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZnJhbWUnKTsKK3ZhciBkb2MgPSBmcmFtZS5jb250ZW50RG9jdW1lbnQub3Blbigp
OworZG9jLndyaXRlKCI8ZGl2IHN0eWxlPSd3aWR0aDoxMDBweDsgaGVpZ2h0OjEwMHB4OyBiYWNr
Z3JvdW5kOnllbGxvdzsnPjwvZGl2PiIpOworZG9jLmNsb3NlKCk7CitmcmFtZS5jb250ZW50RG9j
dW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgiOworZnJhbWUuY29udGVudERvY3VtZW50
LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBweCI7CisKK2RlYnVnKCJTY3JvbGxpbmcgSWZyYW1l
IHRvICg1MCwgNzUpIik7CitmcmFtZS5jb250ZW50V2luZG93LnNjcm9sbFRvKDUwLCA3NSk7CisK
K2ZyYW1lLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CitkZWJ1ZygiSWZyYW1lJ3MgZGlzcGxheSBp
cyBub25lIG5vdyIpOworCitmcmFtZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK2RlYnVnKCJJ
ZnJhbWUncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluIik7CisKK3Nob3VsZEJlKCdmcmFtZS5jb250
ZW50V2luZG93LnBhZ2VZT2Zmc2V0JywgJzc1Jyk7CitzaG91bGRCZSgnZnJhbWUuY29udGVudFdp
bmRvdy5wYWdlWE9mZnNldCcsICc1MCcpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdGluZyBz
Y3JvbGwgb2Zmc2V0IGdldHRpbmcgcmVzZXQgd2hlbiBtb3ZlZCB0byBvdGhlciBkb2N1bWVudCIp
OworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByZUlkIikuaW5uZXJIVE1MID0gZGl2Q29udGVu
dDsKK2UuZGlyPSJsdHIiOworZGVidWcoIlNjcm9sbGluZyBkaXYgdG8gKDUwLCA3NSkiKTsKK2Uu
c2Nyb2xsVG9wID0gNzU7CitlLnNjcm9sbExlZnQgPSA1MDsKK2Uuc3R5bGUuZGlzcGxheSA9ICdu
b25lJzsKK2ZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpOworZS5zdHls
ZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7CitzaG91
bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzAnKTsKKworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
Kzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119833</attachid>
            <date>2011-12-19 00:48:31 -0800</date>
            <delta_ts>2011-12-20 07:13:59 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-72852-20111219141126.patch</filename>
            <type>text/plain</type>
            <size>15868</size>
            <attacher name="Rakesh">rakeshchaitan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMzIyMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDExLTEyLTE5ICBSYWtlc2gg
S04gIDxyYWtlc2gua25AbW90b3JvbGEuY29tPgorCisgICAgICAgIFNjcm9sbCBwb3NpdGlvbiBp
cyBsb3N0IGFmdGVyIGhpZGUvc2hvdyBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjg1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRl
LXNob3cuaHRtbAorCisgICAgICAgIE1haW50YWluIHRoZSBzY3JvbGxlZCBwb3NpdGlvbiBvZiBv
dmVyZmxvd2luZyBlbGVtZW50IHdoZW4gdGhlIHNjcm9sbGFibGUgUmVuZGVyTGF5ZXIgaXMgZGVz
dHJveWVkLAorICAgICAgICB3aGljaCBjYW4gYmUgdXNlZCB0byByZXN0b3JlIHRoZSBzY3JvbGwg
cG9zaXRpb24gaWYgdGhlIHNhbWUgZWxlbWVudCBpcyBhZ2FpbiBhZGRlZCB0byB0aGUgcmVuZGVy
IHRyZWUuCisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50OjpyZW1vdmVkRnJvbURvY3VtZW50KToKKyAgICAgICAgUmVzZXR0aW5nIHRoZSBzY3Jv
bGwgcG9zaXRpb24gaWYgbm9kZSBpcyBtb3ZlZCB0byBvdGhlciBsb2NhdGlvbiBpbiBzYW1lIGRv
Y3VtZW50CisgICAgICAgIG9yIG90aGVyIGRvY3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6RWxl
bWVudDo6c2F2ZWRMYXllclNjcm9sbGVkUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RWxl
bWVudDo6c2F2ZUxheWVyU2Nyb2xsZWRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjpyZXNldHNhdmVkTGF5ZXJTY3JvbGxlZFBvc2l0aW9uKToKKyAgICAgICAgKiBkb20vRWxl
bWVudC5oOgorICAgICAgICBIZWxwZXIgZnVuY3Rpb25zIGZvciBhY2Nlc3NpbmcgbGF5ZXIgc2Ny
b2xsZWQgcG9zaXRpb24gZnJvbSByYXJlIGRhdGEuCisKKyAgICAgICAgKiBkb20vRWxlbWVudFJh
cmVEYXRhLmg6CisgICAgICAgIE1haW50YWluIHRoZSBzY3JvbGxlZCBwb3NpdGlvbi4KKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OlJlbmRlckxheWVyKToKKyAgICAgICAgUmVzdG9yaW5nIHRoZSBzY3JvbGxlZCBwb3Np
dGlvbiBpZiBpdCB3YXMgc3RvcmVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6On5S
ZW5kZXJMYXllcik6CisgICAgICAgIFN0b3JpbmcgdGhlIHNjcm9sbGVkIHBvc2l0aW9uLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0KToKKyAgICAgICAgV2hp
dGUgc3BhY2UgcmVtb3ZlZC4KKwogMjAxMS0xMi0xOSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFRoZSBIVE1MIHBhcnNlciBkb2Vzbid0IGVuZm9yY2UgdGhlICJO
b2FoJ3MgQXJrIGNvbmRpdGlvbiIgZnJvbSB0aGUgSFRNTDUgc3BlYwpJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAkocmV2aXNpb24gMTAxNzQxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NDcsNiArOTQ3LDggQEAgdm9pZCBFbGVtZW50Ojpp
bnNlcnRlZEludG9Eb2N1bWVudCgpCiAKIHZvaWQgRWxlbWVudDo6cmVtb3ZlZEZyb21Eb2N1bWVu
dCgpCiB7CisgICAgcmVzZXRzYXZlZExheWVyU2Nyb2xsZWRQb3NpdGlvbigpOworCiAgICAgaWYg
KGhhc0lEKCkpIHsKICAgICAgICAgaWYgKG1fYXR0cmlidXRlTWFwKSB7CiAgICAgICAgICAgICBB
dHRyaWJ1dGUqIGlkSXRlbSA9IG1fYXR0cmlidXRlTWFwLT5nZXRBdHRyaWJ1dGVJdGVtKGRvY3Vt
ZW50KCktPmlkQXR0cmlidXRlTmFtZSgpKTsKQEAgLTIwMzAsNiArMjAzMiwyNCBAQCBQYXNzUmVm
UHRyPFdlYktpdEFuaW1hdGlvbkxpc3Q+IEVsZW1lbnQ6CiAgICAgcmV0dXJuIGFuaW1Db250cm9s
bGVyLT5hbmltYXRpb25zRm9yUmVuZGVyZXIocmVuZGVyZXIoKSk7CiB9CiAKK0ludFBvaW50IEVs
ZW1lbnQ6OnNhdmVkTGF5ZXJTY3JvbGxlZFBvc2l0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
aGFzUmFyZURhdGEoKSA/IHJhcmVEYXRhKCktPm1fc2Nyb2xsZWRQb3NpdGlvbiA6IEludFBvaW50
Ojp6ZXJvKCk7Cit9CisKK3ZvaWQgRWxlbWVudDo6c2F2ZUxheWVyU2Nyb2xsZWRQb3NpdGlvbihj
b25zdCBJbnRQb2ludCYgcG9pbnQpCit7CisgICAgaWYgKHBvaW50ID09IEludFBvaW50Ojp6ZXJv
KCkpCisgICAgICAgIHJldHVybjsKKyAgICBlbnN1cmVSYXJlRGF0YSgpLT5tX3Njcm9sbGVkUG9z
aXRpb24gPSBwb2ludDsKK30KKwordm9pZCBFbGVtZW50OjpyZXNldHNhdmVkTGF5ZXJTY3JvbGxl
ZFBvc2l0aW9uKCkKK3sKKyAgICBpZiAoaGFzUmFyZURhdGEoKSkKKyAgICAgICAgcmFyZURhdGEo
KS0+bV9zY3JvbGxlZFBvc2l0aW9uID0gSW50UG9pbnQ6Onplcm8oKTsKK30KKwogI2lmbmRlZiBO
REVCVUcKIGJvb2wgRWxlbWVudDo6ZmFzdEF0dHJpYnV0ZUxvb2t1cEFsbG93ZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAkocmV2aXNp
b24gMTAxNzQxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMzY0LDYgKzM2NCwxMCBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxXZWJLaXRBbmlt
YXRpb25MaXN0PiB3ZWJraXRHZXRBbmltYXRpb25zKCkgY29uc3Q7CiAgICAgCiAgICAgUGFzc1Jl
ZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JSZW5kZXJlcigpOworIAorICAgIEludFBvaW50IHNh
dmVkTGF5ZXJTY3JvbGxlZFBvc2l0aW9uKCkgY29uc3Q7CisgICAgdm9pZCBzYXZlTGF5ZXJTY3Jv
bGxlZFBvc2l0aW9uKGNvbnN0IEludFBvaW50Jik7CisgICAgdm9pZCByZXNldHNhdmVkTGF5ZXJT
Y3JvbGxlZFBvc2l0aW9uKCk7CiAKIHByb3RlY3RlZDoKICAgICBFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCwgQ29uc3RydWN0aW9uVHlwZSB0
eXBlKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAkocmV2aXNpb24gMTAx
NzQxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCSh3b3JraW5nIGNv
cHkpCkBAIC01Miw2ICs1Miw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgbV9zdHlsZUFmZmVjdGVk
QnlFbXB0eTsKIAorICAgIEludFBvaW50IG1fc2Nyb2xsZWRQb3NpdGlvbjsKKwogI2lmIEVOQUJM
RShGVUxMU0NSRUVOX0FQSSkKICAgICBib29sIG1fY29udGFpbnNGdWxsU2NyZWVuRWxlbWVudDsK
ICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCShy
ZXZpc2lvbiAxMDE3NDEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTMsNiArMTkzLDE1IEBAIFJlbmRlckxheWVyOjpSZW5k
ZXJMYXllcihSZW5kZXJCb3hNb2RlbE8KICAgICAgICAgbV92aXNpYmxlQ29udGVudFN0YXR1c0Rp
cnR5ID0gZmFsc2U7CiAgICAgICAgIG1faGFzVmlzaWJsZUNvbnRlbnQgPSByZW5kZXJlci0+c3R5
bGUoKS0+dmlzaWJpbGl0eSgpID09IFZJU0lCTEU7CiAgICAgfQorCisgICAgTm9kZSogbm9kZSA9
IHJlbmRlcmVyLT5ub2RlKCk7CisgICAgaWYgKG5vZGUgJiYgbm9kZS0+aXNFbGVtZW50Tm9kZSgp
KSB7CisgICAgICAgIC8vIFdlIHNhdmUgYW5kIHJlc3RvcmUgb25seSB0aGUgc2Nyb2xsT2Zmc2V0
IGFzIHRoZSBvdGhlciBzY3JvbGwKKyAgICAgICAgLy8gdmFsdWVzIGFyZSByZWNhbHVsYXRlZC4K
KyAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IHRvRWxlbWVudChub2RlKTsKKyAgICAgICAgbV9z
Y3JvbGxPZmZzZXQgPSB0b1NpemUoZWxlbWVudC0+c2F2ZWRMYXllclNjcm9sbGVkUG9zaXRpb24o
KSk7CisgICAgICAgIGVsZW1lbnQtPnJlc2V0c2F2ZWRMYXllclNjcm9sbGVkUG9zaXRpb24oKTsK
KyAgICB9CiB9CiAKIFJlbmRlckxheWVyOjp+UmVuZGVyTGF5ZXIoKQpAQCAtMjAyLDkgKzIxMSwx
NCBAQCBSZW5kZXJMYXllcjo6flJlbmRlckxheWVyKCkKICAgICAgICAgICAgIGZyYW1lLT5ldmVu
dEhhbmRsZXIoKS0+cmVzaXplTGF5ZXJEZXN0cm95ZWQoKTsKICAgICB9CiAKLSAgICBpZiAobV9z
Y3JvbGxhYmxlQXJlYVBhZ2UpCisgICAgaWYgKG1fc2Nyb2xsYWJsZUFyZWFQYWdlKSB7CiAgICAg
ICAgIG1fc2Nyb2xsYWJsZUFyZWFQYWdlLT5yZW1vdmVTY3JvbGxhYmxlQXJlYSh0aGlzKTsKIAor
ICAgICAgICBOb2RlKiBub2RlID0gbV9yZW5kZXJlci0+bm9kZSgpOworICAgICAgICBpZiAobm9k
ZSAmJiBub2RlLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgICAgICB0b0VsZW1lbnQobm9kZSkt
PnNhdmVMYXllclNjcm9sbGVkUG9zaXRpb24odG9Qb2ludChtX3Njcm9sbE9mZnNldCkpOworICAg
IH0KKwogICAgIGRlc3Ryb3lTY3JvbGxiYXIoSG9yaXpvbnRhbFNjcm9sbGJhcik7CiAgICAgZGVz
dHJveVNjcm9sbGJhcihWZXJ0aWNhbFNjcm9sbGJhcik7CiAKQEAgLTEzNzksNyArMTM5Myw3IEBA
IHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0KExheW91dFUKICAgICAgICAgeCA9IG1p
bihtYXg8TGF5b3V0VW5pdD4oeCwgMCksIG1heFgpOwogICAgICAgICB5ID0gbWluKG1heDxMYXlv
dXRVbml0Pih5LCAwKSwgbWF4WSk7CiAgICAgfQotICAgIAorCiAgICAgU2Nyb2xsYWJsZUFyZWE6
OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihMYXlvdXRQb2ludCh4LCB5KSk7CiB9CiAK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEwMzIyMykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDExLTEyLTE5ICBSYWtlc2ggS04gIDxyYWtl
c2gua25AbW90b3JvbGEuY29tPgorCisgICAgICAgIFNjcm9sbCBwb3NpdGlvbiBpcyBsb3N0IGFm
dGVyIGhpZGUvc2hvdyBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03Mjg1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogZmFzdC9vdmVyZmxvdy9zY3JvbGwtZGl2LWhpZGUtc2hvdy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNo
b3cuaHRtbDogQWRkZWQuCisKIDIwMTEtMTItMTkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0
Lm9yZz4KIAogICAgICAgICBUaGUgSFRNTCBwYXJzZXIgZG9lc24ndCBlbmZvcmNlIHRoZSAiTm9h
aCdzIEFyayBjb25kaXRpb24iIGZyb20gdGhlIEhUTUw1IHNwZWMKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNob3ctZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNob3ctZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9zY3Jv
bGwtZGl2LWhpZGUtc2hvdy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzgg
QEAKK1Njcm9sbGVkIHBvc2l0aW9uIHNob3VsZCBiZSByZXN0b3JlZCB3aGVuIHRoZSBkaXYgaXMg
aGlkZGVuIGFuZCBzaG93biBhZ2FpbgorCitEaXYgd2lsbCBiZSBtb3ZlZCBoZXJlLgorCitTY3Jv
bGxpbmcgdG8gMCwgNzUKK0RpdidzIGRpc3BsYXkgaXMgbm9uZSBub3cKK1BBU1MgZS5zY3JvbGxU
b3AgaXMgMAorRGl2J3MgZGlzcGxheSBpcyBibG9jayBhZ2FpbgorUEFTUyBlLnNjcm9sbFRvcCBp
cyA3NQorCitUZXN0IHRoYXQgYWZ0ZXIgY2hhbmdpbmcgdGhlIHNjcm9sbCBwb3NpdGlvbiB0byBk
aWZmZXJlbnQgdmFsdWVzIHRoZSBzY3JvbGwgcG9zaXRpb24gaXMgcmVzdG9yZWQKK1Njcm9sbGlu
ZyB0byA1MCwgNTAKK0RpdidzIGRpc3BsYXkgaXMgbm9uZSBub3cKK1BBU1MgZS5zY3JvbGxUb3Ag
aXMgMAorUEFTUyBlLnNjcm9sbExlZnQgaXMgMAorRGl2J3MgZGlzcGxheSBpcyBibG9jayBhZ2Fp
bgorUEFTUyBlLnNjcm9sbFRvcCBpcyA1MAorUEFTUyBlLnNjcm9sbExlZnQgaXMgNTAKK1Njcm9s
bGluZyB0byAzMCwgMTAKK0RpdidzIGRpc3BsYXkgaXMgbm9uZSBub3cKK1BBU1MgZS5zY3JvbGxU
b3AgaXMgMAorUEFTUyBlLnNjcm9sbExlZnQgaXMgMAorRGl2J3MgZGlzcGxheSBpcyBibG9jayBh
Z2FpbgorUEFTUyBlLnNjcm9sbFRvcCBpcyAxMAorUEFTUyBlLnNjcm9sbExlZnQgaXMgMzAKK1Nj
cm9sbGluZyB0byAxMDAsIDAKK0RpdidzIGRpc3BsYXkgaXMgbm9uZSBub3cKK1BBU1MgZS5zY3Jv
bGxUb3AgaXMgMAorUEFTUyBlLnNjcm9sbExlZnQgaXMgMAorRGl2J3MgZGlzcGxheSBpcyBibG9j
ayBhZ2FpbgorUEFTUyBlLnNjcm9sbFRvcCBpcyAwCitQQVNTIGUuc2Nyb2xsTGVmdCBpcyAxMDAK
KworVGVzdGluZyB0aGF0IHNjcm9sbCBwb3NpdGlvbiBpcyByZXN0b3JlZCB3aGVuIGhlaWdodCBh
bmQgd2lkdGggb2Ygc2Nyb2xsaW5nIGFyZWEgaXMgY2hhbmdlZAorU2Nyb2xsaW5nIHRvIDM1LCA3
NQorRGl2J3MgZGlzcGxheSBpcyBub25lIG5vdworUEFTUyBlLnNjcm9sbFRvcCBpcyAwCitQQVNT
IGUuc2Nyb2xsTGVmdCBpcyAwCitEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluCitQQVNTIGUu
c2Nyb2xsVG9wIGlzIDc1CitQQVNTIGUuc2Nyb2xsTGVmdCBpcyAzNQorQWRkaW5nIHNvbWUgbW9y
ZSB0ZXh0IHRvIGRpdgorU2Nyb2xsaW5nIHRvIDEyNSwgMTAwCitEaXYncyBkaXNwbGF5IGlzIG5v
bmUgbm93CitQQVNTIGUuc2Nyb2xsVG9wIGlzIDAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDAKK0Rp
didzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4KK1BBU1MgZS5zY3JvbGxUb3AgaXMgMTAwCitQQVNT
IGUuc2Nyb2xsTGVmdCBpcyAxMjUKKworVGVzdCB0aGF0IHNjcm9sbCBwb3NpdGlvbiBpcyByZXNl
dCB3aGVuIHRoZSBub2RlIGlzIG1vdmVkIHRvIGRpZmZlcmVudCBsb2NhdGlvbiBpbiB0aGUgZG9j
dW1lbnQKK1BBU1MgZS5zY3JvbGxUb3AgaXMgMAorUEFTUyBlLnNjcm9sbExlZnQgaXMgMAorCitU
ZXN0aW5nIHRoYXQgc2Nyb2xsIHBvc2l0aW9uIGlzIHJlc3RvcmVkIGZvciBSVEwgdGV4dHMKK1Nj
cm9sbGluZyB0byA1MCwgMTUwCitEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93CitQQVNTIGUuc2Ny
b2xsVG9wIGlzIDAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDAKK0RpdidzIGRpc3BsYXkgaXMgYmxv
Y2sgYWdhaW4KK1BBU1MgZS5zY3JvbGxUb3AgaXMgMTUwCitQQVNTIGUuc2Nyb2xsTGVmdCBpcyA1
MAorCitUZXN0IGlmcmFtZSBzY3JvbGxpbmcKK1Njcm9sbGluZyBJZnJhbWUgdG8gKDUwLCA3NSkK
K0lmcmFtZSdzIGRpc3BsYXkgaXMgbm9uZSBub3cKK0lmcmFtZSdzIGRpc3BsYXkgaXMgYmxvY2sg
YWdhaW4KK1BBU1MgZnJhbWUuY29udGVudFdpbmRvdy5wYWdlWU9mZnNldCBpcyA3NQorUEFTUyBm
cmFtZS5jb250ZW50V2luZG93LnBhZ2VYT2Zmc2V0IGlzIDUwCisKK1Rlc3Rpbmcgc2Nyb2xsIG9m
ZnNldCBnZXR0aW5nIHJlc2V0IHdoZW4gbW92ZWQgdG8gb3RoZXIgZG9jdW1lbnQKK1Njcm9sbGlu
ZyBkaXYgdG8gKDUwLCA3NSkKK1BBU1MgZS5zY3JvbGxUb3AgaXMgMAorUEFTUyBlLnNjcm9sbExl
ZnQgaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNob3cu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9sbC1kaXYt
aGlkZS1zaG93Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93
L3Njcm9sbC1kaXYtaGlkZS1zaG93Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkxIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHA+U2Nyb2xsZWQgcG9zaXRpb24gc2hvdWxkIGJlIHJlc3RvcmVk
IHdoZW4gdGhlIGRpdiBpcyBoaWRkZW4gYW5kIHNob3duIGFnYWluPC9wPgorPGRpdiBzdHlsZT0i
aGVpZ2h0OjEwMHB4OyB3aWR0aDoxMDBweDsgb3ZlcmZsb3c6IHNjcm9sbDsgZGlzcGxheTogYmxv
Y2s7IiBpZD0ibWFpbiI+Cis8cHJlIGlkPSJwcmVJZCI+CitsaW5lIDEgd2l0aCBzb21lIHRleHQg
d2hpY2ggaGFzIHRvIGJlIHNjcm9sbCB0byBiZSB2aXNpYmxlCitsaW5lIDIgd2l0aCBzb21lIHRl
eHQgd2hpY2ggaGFzIHRvIGJlIHNjcm9sbCB0byBiZSB2aXNpYmxlCitsaW5lIDMgd2l0aCBzb21l
IHRleHQgd2hpY2ggaGFzIHRvIGJlIHNjcm9sbCB0byBiZSB2aXNpYmxlCitsaW5lIDQgd2l0aCBz
b21lIHRleHQgd2hpY2ggaGFzIHRvIGJlIHNjcm9sbCB0byBiZSB2aXNpYmxlCitsaW5lIDUgd2l0
aCBzb21lIHRleHQgd2hpY2ggaGFzIHRvIGJlIHNjcm9sbCB0byBiZSB2aXNpYmxlCitsaW5lIDYg
d2l0aCBzb21lIHRleHQgd2hpY2ggaGFzIHRvIGJlIHNjcm9sbCB0byBiZSB2aXNpYmxlCitsaW5l
IDcgd2l0aCBzb21lIHRleHQgd2hpY2ggaGFzIHRvIGJlIHNjcm9sbCB0byBiZSB2aXNpYmxlCits
aW5lIDggd2l0aCBzb21lIHRleHQgd2hpY2ggaGFzIHRvIGJlIHNjcm9sbCB0byBiZSB2aXNpYmxl
CitsaW5lIDkgd2l0aCBzb21lIHRleHQgd2hpY2ggaGFzIHRvIGJlIHNjcm9sbCB0byBiZSB2aXNp
YmxlCitsaW5lIDEwIHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwgdG8gYmUg
dmlzaWJsZQorbGluZSAxMSB3aXRoIHNvbWUgdGV4dCB3aGljaCBoYXMgdG8gYmUgc2Nyb2xsIHRv
IGJlIHZpc2libGUKK2xpbmUgMTIgd2l0aCBzb21lIHRleHQgd2hpY2ggaGFzIHRvIGJlIHNjcm9s
bCB0byBiZSB2aXNpYmxlCis8L3ByZT4KKzwvZGl2PgorCis8ZGl2IGlkPSJzZWNvbmQiPgorRGl2
IHdpbGwgYmUgbW92ZWQgaGVyZS4KKzwvZGl2PgorCis8aWZyYW1lIGlkPSJmcmFtZSIgc3R5bGU9
ImRpc3BsYXk6YmxvY2s7IHdpZHRoOjQwMHB4OyBoZWlnaHQ6IDQwMHB4OyI+PC9pZnJhbWU+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJtYWluIik7CitkZWJ1ZygiU2Nyb2xsaW5nIHRvIDAsIDc1Iik7CitlLnNjcm9s
bFRvcCA9IDc1OworZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworZGVidWcoIkRpdidzIGRpc3Bs
YXkgaXMgbm9uZSBub3ciKTsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7CitlLnN0eWxl
LmRpc3BsYXkgPSAnYmxvY2snOworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4i
KTsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICc3NScpOworCitkZWJ1ZygiIik7CitkZWJ1Zygi
VGVzdCB0aGF0IGFmdGVyIGNoYW5naW5nIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gZGlmZmVyZW50
IHZhbHVlcyB0aGUgc2Nyb2xsIHBvc2l0aW9uIGlzIHJlc3RvcmVkIik7CitkZWJ1ZygiU2Nyb2xs
aW5nIHRvIDUwLCA1MCIpOworZS5zY3JvbGxUb3AgPSA1MDsKK2Uuc2Nyb2xsTGVmdCA9IDUwOwor
ZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgbm9uZSBub3ciKTsKK2Uuc3R5bGUuZGlzcGxheSA9ICdu
b25lJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7CitzaG91bGRCZSgnZS5zY3JvbGxM
ZWZ0JywgJzAnKTsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluIik7CitlLnN0
eWxlLmRpc3BsYXkgPSAnYmxvY2snOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzUwJyk7Citz
aG91bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzUwJyk7CisKK2RlYnVnKCJTY3JvbGxpbmcgdG8gMzAs
IDEwIik7CitlLnNjcm9sbFRvcCA9IDEwOworZS5zY3JvbGxMZWZ0ID0gMzA7CitkZWJ1ZygiRGl2
J3MgZGlzcGxheSBpcyBub25lIG5vdyIpOworZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworc2hv
dWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzAnKTsKK3Nob3VsZEJlKCdlLnNjcm9sbExlZnQnLCAnMCcp
OworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4iKTsKK2Uuc3R5bGUuZGlzcGxh
eSA9ICdibG9jayc7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMTAnKTsKK3Nob3VsZEJlKCdl
LnNjcm9sbExlZnQnLCAnMzAnKTsKKworZGVidWcoIlNjcm9sbGluZyB0byAxMDAsIDAiKTsKK2Uu
c2Nyb2xsVG9wID0gMDsKK2Uuc2Nyb2xsTGVmdCA9IDEwMDsKK2RlYnVnKCJEaXYncyBkaXNwbGF5
IGlzIG5vbmUgbm93Iik7CitlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CitzaG91bGRCZSgnZS5z
Y3JvbGxUb3AnLCAnMCcpOworc2hvdWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICcwJyk7CitkZWJ1Zygi
RGl2J3MgZGlzcGxheSBpcyBibG9jayBhZ2FpbiIpOworZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2Nr
JzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7CitzaG91bGRCZSgnZS5zY3JvbGxMZWZ0
JywgJzEwMCcpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdGluZyB0aGF0IHNjcm9sbCBwb3Np
dGlvbiBpcyByZXN0b3JlZCB3aGVuIGhlaWdodCBhbmQgd2lkdGggb2Ygc2Nyb2xsaW5nIGFyZWEg
aXMgY2hhbmdlZCIpOworZS5zdHlsZS5oZWlnaHQgPSBlLnNjcm9sbEhlaWdodCArIDUwOworZS5z
dHlsZS53aWR0aCA9IGUuc2Nyb2xsV2lkdGggKyA1MDsKK2RlYnVnKCJTY3JvbGxpbmcgdG8gMzUs
IDc1Iik7CitlLnNjcm9sbFRvcCA9IDc1OworZS5zY3JvbGxMZWZ0ID0gMzU7CitkZWJ1ZygiRGl2
J3MgZGlzcGxheSBpcyBub25lIG5vdyIpOworZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworc2hv
dWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzAnKTsKK3Nob3VsZEJlKCdlLnNjcm9sbExlZnQnLCAnMCcp
OworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4iKTsKK2Uuc3R5bGUuZGlzcGxh
eSA9ICdibG9jayc7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnNzUnKTsKK3Nob3VsZEJlKCdl
LnNjcm9sbExlZnQnLCAnMzUnKTsKK2RlYnVnKCJBZGRpbmcgc29tZSBtb3JlIHRleHQgdG8gZGl2
Iik7CitlLmlubmVySFRNTCArPSAibGluZSAxMyA8YnIvPiBsaW5lIDE0IDxici8+IGxpbmUgMTUg
PGJyLz4gbGluZSAxNiA8YnIvPiBsaW5lIDE3IDxici8+IjsKK2RlYnVnKCJTY3JvbGxpbmcgdG8g
MTI1LCAxMDAiKTsKK2Uuc2Nyb2xsVG9wID0gMTAwOworZS5zY3JvbGxMZWZ0ID0gMTI1OworZGVi
dWcoIkRpdidzIGRpc3BsYXkgaXMgbm9uZSBub3ciKTsKK2Uuc3R5bGUuZGlzcGxheSA9ICdub25l
JzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7CitzaG91bGRCZSgnZS5zY3JvbGxMZWZ0
JywgJzAnKTsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluIik7CitlLnN0eWxl
LmRpc3BsYXkgPSAnYmxvY2snOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzEwMCcpOworc2hv
dWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICcxMjUnKTsKKworZGVidWcoIiIpOworZGVidWcoIlRlc3Qg
dGhhdCBzY3JvbGwgcG9zaXRpb24gaXMgcmVzZXQgd2hlbiB0aGUgbm9kZSBpcyBtb3ZlZCB0byBk
aWZmZXJlbnQgbG9jYXRpb24gaW4gdGhlIGRvY3VtZW50Iik7CitlLnN0eWxlLmRpc3BsYXkgPSAn
bm9uZSc7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vjb25kIikuYXBwZW5kQ2hpbGQoZSk7
CitlLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzAn
KTsKK3Nob3VsZEJlKCdlLnNjcm9sbExlZnQnLCAnMCcpOworCit2YXIgZGl2Q29udGVudCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcmVJZCIpLmlubmVySFRNTDsKKworZGVidWcoIiIpOwor
ZGVidWcoIlRlc3RpbmcgdGhhdCBzY3JvbGwgcG9zaXRpb24gaXMgcmVzdG9yZWQgZm9yIFJUTCB0
ZXh0cyIpOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByZUlkIikuaW5uZXJIVE1MID0gItmF
2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZ
i9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wKKyAgICBcbtio2YvYp9mF2LHY
rdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF
2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL
2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfYsdit2KjZi9inXAorICAgIFxu
2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHY
rdio2YvYp1wKKyAgICBcbtit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZ
i9in2LHYrdio2YvYp1wKKyAgICBcbtmF2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZ
i9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio
2YvYp1wKKyAgICBcbtio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF
2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7YqNmL
2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3Y
qNmL2KfYsdit2KjZi9inXAorICAgIFxu2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXY
sdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wKKyAgICBcbtmF2YXYsdit2KjZi9in2YXY
sdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in
2YXYsdit2KjZi9in2LHYrdio2YvYp1wKKyAgICBcbtio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio
2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3Y
qNmL2KdcCisgICAgXG7YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZ
hdix2K3YqNmL2KfZhdix2K3YqNmL2KfYsdit2KjZi9inXAorICAgIFxu2KjZi9in2YXYsdit2KjZ
i9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit
2KjZi9in2LHYrdio2YvYp1wKKyAgICBcbtio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF
2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL
2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfYsdit2KjZi9inXAorICAgIFxu
2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXY
sdit2KjZi9in2LHYrdio2YvYpyI7CisKK2UuZGlyPSJydGwiOworCitkZWJ1ZygiU2Nyb2xsaW5n
IHRvIDUwLCAxNTAiKTsKK2Uuc2Nyb2xsVG9wID0gMTUwOworZS5zY3JvbGxMZWZ0ID0gNTA7Citk
ZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBub25lIG5vdyIpOworZS5zdHlsZS5kaXNwbGF5ID0gJ25v
bmUnOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzAnKTsKK3Nob3VsZEJlKCdlLnNjcm9sbExl
ZnQnLCAnMCcpOworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4iKTsKK2Uuc3R5
bGUuZGlzcGxheSA9ICdibG9jayc7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMTUwJyk7Citz
aG91bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzUwJyk7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0
IGlmcmFtZSBzY3JvbGxpbmciKTsKK3ZhciBmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdmcmFtZScpOwordmFyIGRvYyA9IGZyYW1lLmNvbnRlbnREb2N1bWVudC5vcGVuKCk7Citkb2Mu
d3JpdGUoIjxkaXYgc3R5bGU9J3dpZHRoOjEwMHB4OyBoZWlnaHQ6MTAwcHg7IGJhY2tncm91bmQ6
eWVsbG93Oyc+PC9kaXY+Iik7Citkb2MuY2xvc2UoKTsKK2ZyYW1lLmNvbnRlbnREb2N1bWVudC5i
b2R5LnN0eWxlLndpZHRoID0gIjIwMDBweCI7CitmcmFtZS5jb250ZW50RG9jdW1lbnQuYm9keS5z
dHlsZS5oZWlnaHQgPSAiMjAwMHB4IjsKKworZGVidWcoIlNjcm9sbGluZyBJZnJhbWUgdG8gKDUw
LCA3NSkiKTsKK2ZyYW1lLmNvbnRlbnRXaW5kb3cuc2Nyb2xsVG8oNTAsIDc1KTsKKworZnJhbWUu
c3R5bGUuZGlzcGxheSA9ICdub25lJzsKK2RlYnVnKCJJZnJhbWUncyBkaXNwbGF5IGlzIG5vbmUg
bm93Iik7CisKK2ZyYW1lLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOworZGVidWcoIklmcmFtZSdz
IGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4iKTsKKworc2hvdWxkQmUoJ2ZyYW1lLmNvbnRlbnRXaW5k
b3cucGFnZVlPZmZzZXQnLCAnNzUnKTsKK3Nob3VsZEJlKCdmcmFtZS5jb250ZW50V2luZG93LnBh
Z2VYT2Zmc2V0JywgJzUwJyk7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0aW5nIHNjcm9sbCBv
ZmZzZXQgZ2V0dGluZyByZXNldCB3aGVuIG1vdmVkIHRvIG90aGVyIGRvY3VtZW50Iik7Citkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicHJlSWQiKS5pbm5lckhUTUwgPSBkaXZDb250ZW50OworZS5k
aXI9Imx0ciI7CitkZWJ1ZygiU2Nyb2xsaW5nIGRpdiB0byAoNTAsIDc1KSIpOworZS5zY3JvbGxU
b3AgPSA3NTsKK2Uuc2Nyb2xsTGVmdCA9IDUwOworZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwor
ZnJhbWUuY29udGVudERvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSk7CitlLnN0eWxlLmRpc3Bs
YXkgPSAnYmxvY2snOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzAnKTsKK3Nob3VsZEJlKCdl
LnNjcm9sbExlZnQnLCAnMCcpOworCitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120026</attachid>
            <date>2011-12-20 07:14:15 -0800</date>
            <delta_ts>2012-03-20 07:20:30 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-72852-20111220203705.patch</filename>
            <type>text/plain</type>
            <size>15034</size>
            <attacher name="Rakesh">rakeshchaitan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMzMyNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDExLTEyLTIwICBSYWtlc2gg
S04gIDxyYWtlc2gua25AbW90b3JvbGEuY29tPgorCisgICAgICAgIFNjcm9sbCBwb3NpdGlvbiBp
cyBsb3N0IGFmdGVyIGhpZGUvc2hvdyBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjg1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRl
LXNob3cuaHRtbAorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RWxlbWVudDo6cmVtb3ZlZEZyb21Eb2N1bWVudCk6CisgICAgICAgIFJlc2V0dGluZyB0aGUg
c2F2ZWQgc2Nyb2xsIG9mZnNldCBpZiBub2RlIGlzIG1vdmVkIHRvIG90aGVyIGxvY2F0aW9uIGlu
IHNhbWUgZG9jdW1lbnQgb3Igb3RoZXIgZG9jdW1lbnQuCisKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnQ6OnNhdmVkTGF5ZXJTY3JvbGxPZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVu
dDo6c2V0U2F2ZWRMYXllclNjcm9sbE9mZnNldCk6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoK
KyAgICAgICAgSGVscGVyIGZ1bmN0aW9ucyBmb3IgYWNjZXNzaW5nIGxheWVyIHNjcm9sbCBvZmZz
ZXQgZnJvbSByYXJlIGRhdGEuCisKKyAgICAgICAgKiBkb20vRWxlbWVudFJhcmVEYXRhLmg6Cisg
ICAgICAgIE1haW50YWluIHRoZSBzY3JvbGwgb2Zmc2V0LgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6UmVuZGVyTGF5
ZXIpOgorICAgICAgICBSZXN0b3JpbmcgdGhlIHNjcm9sbCBvZmZzZXQuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMYXllcjo6flJlbmRlckxheWVyKToKKyAgICAgICAgU3RvcmluZyB0aGUgc2Ny
b2xsIG9mZnNldC4KKwogMjAxMS0xMi0yMCAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZWdyZXNzaW9uKDk5MjEyKTogdGFibGUgcm93cyBnZXQg
aW5jb3JyZWN0IGhlaWdodCBhZnRlciBjaGFuZ2luZyBzb21lIGNlbGxzJyBoZWlnaHQKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAJKHJldmlzaW9uIDEwMTc0MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTQ3LDYgKzk0Nyw4IEBAIHZvaWQg
RWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKQogCiB2b2lkIEVsZW1lbnQ6OnJlbW92ZWRG
cm9tRG9jdW1lbnQoKQogeworICAgIHNldFNhdmVkTGF5ZXJTY3JvbGxPZmZzZXQoSW50U2l6ZSgp
KTsKKwogICAgIGlmIChoYXNJRCgpKSB7CiAgICAgICAgIGlmIChtX2F0dHJpYnV0ZU1hcCkgewog
ICAgICAgICAgICAgQXR0cmlidXRlKiBpZEl0ZW0gPSBtX2F0dHJpYnV0ZU1hcC0+Z2V0QXR0cmli
dXRlSXRlbShkb2N1bWVudCgpLT5pZEF0dHJpYnV0ZU5hbWUoKSk7CkBAIC0yMDMwLDYgKzIwMzIs
MTggQEAgUGFzc1JlZlB0cjxXZWJLaXRBbmltYXRpb25MaXN0PiBFbGVtZW50OgogICAgIHJldHVy
biBhbmltQ29udHJvbGxlci0+YW5pbWF0aW9uc0ZvclJlbmRlcmVyKHJlbmRlcmVyKCkpOwogfQog
CitJbnRTaXplIEVsZW1lbnQ6OnNhdmVkTGF5ZXJTY3JvbGxPZmZzZXQoKSBjb25zdAoreworICAg
IHJldHVybiBoYXNSYXJlRGF0YSgpID8gcmFyZURhdGEoKS0+bV9zYXZlZExheWVyU2Nyb2xsT2Zm
c2V0IDogSW50U2l6ZSgpOworfQorCit2b2lkIEVsZW1lbnQ6OnNldFNhdmVkTGF5ZXJTY3JvbGxP
ZmZzZXQoY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBpZiAoc2l6ZS5pc1plcm8oKSAmJiAh
aGFzUmFyZURhdGEoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGVuc3VyZVJhcmVEYXRhKCktPm1f
c2F2ZWRMYXllclNjcm9sbE9mZnNldCA9IHNpemU7Cit9CisKICNpZm5kZWYgTkRFQlVHCiBib29s
IEVsZW1lbnQ6OmZhc3RBdHRyaWJ1dGVMb29rdXBBbGxvd2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUpIGNvbnN0CiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgJKHJldmlzaW9uIDEwMTc0MSkK
KysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2NCw2
ICszNjQsOSBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxXZWJLaXRBbmltYXRpb25MaXN0PiB3
ZWJraXRHZXRBbmltYXRpb25zKCkgY29uc3Q7CiAgICAgCiAgICAgUGFzc1JlZlB0cjxSZW5kZXJT
dHlsZT4gc3R5bGVGb3JSZW5kZXJlcigpOworIAorICAgIEludFNpemUgc2F2ZWRMYXllclNjcm9s
bE9mZnNldCgpIGNvbnN0OworICAgIHZvaWQgc2V0U2F2ZWRMYXllclNjcm9sbE9mZnNldChjb25z
dCBJbnRTaXplJik7CiAKIHByb3RlY3RlZDoKICAgICBFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCwgQ29uc3RydWN0aW9uVHlwZSB0eXBlKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAkocmV2aXNpb24gMTAxNzQxKQor
KysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBA
IC01Miw2ICs1Miw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgbV9zdHlsZUFmZmVjdGVkQnlFbXB0
eTsKIAorICAgIEludFNpemUgbV9zYXZlZExheWVyU2Nyb2xsT2Zmc2V0OworCiAjaWYgRU5BQkxF
KEZVTExTQ1JFRU5fQVBJKQogICAgIGJvb2wgbV9jb250YWluc0Z1bGxTY3JlZW5FbGVtZW50Owog
I2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJKHJl
dmlzaW9uIDEwMTc0MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE5Myw2ICsxOTMsMTQgQEAgUmVuZGVyTGF5ZXI6OlJlbmRl
ckxheWVyKFJlbmRlckJveE1vZGVsTwogICAgICAgICBtX3Zpc2libGVDb250ZW50U3RhdHVzRGly
dHkgPSBmYWxzZTsKICAgICAgICAgbV9oYXNWaXNpYmxlQ29udGVudCA9IHJlbmRlcmVyLT5zdHls
ZSgpLT52aXNpYmlsaXR5KCkgPT0gVklTSUJMRTsKICAgICB9CisKKyAgICBOb2RlKiBub2RlID0g
cmVuZGVyZXItPm5vZGUoKTsKKyAgICBpZiAobm9kZSAmJiBub2RlLT5pc0VsZW1lbnROb2RlKCkp
IHsKKyAgICAgICAgLy8gV2Ugc2F2ZSBhbmQgcmVzdG9yZSBvbmx5IHRoZSBzY3JvbGxPZmZzZXQg
YXMgdGhlIG90aGVyIHNjcm9sbCB2YWx1ZXMgYXJlIHJlY2FsdWxhdGVkLgorICAgICAgICBFbGVt
ZW50KiBlbGVtZW50ID0gdG9FbGVtZW50KG5vZGUpOworICAgICAgICBtX3Njcm9sbE9mZnNldCA9
IGVsZW1lbnQtPnNhdmVkTGF5ZXJTY3JvbGxPZmZzZXQoKTsKKyAgICAgICAgZWxlbWVudC0+c2V0
U2F2ZWRMYXllclNjcm9sbE9mZnNldChJbnRTaXplKCkpOworICAgIH0KIH0KIAogUmVuZGVyTGF5
ZXI6On5SZW5kZXJMYXllcigpCkBAIC0yMDIsOSArMjEwLDE0IEBAIFJlbmRlckxheWVyOjp+UmVu
ZGVyTGF5ZXIoKQogICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5yZXNpemVMYXll
ckRlc3Ryb3llZCgpOwogICAgIH0KIAotICAgIGlmIChtX3Njcm9sbGFibGVBcmVhUGFnZSkKKyAg
ICBpZiAobV9zY3JvbGxhYmxlQXJlYVBhZ2UpIHsKICAgICAgICAgbV9zY3JvbGxhYmxlQXJlYVBh
Z2UtPnJlbW92ZVNjcm9sbGFibGVBcmVhKHRoaXMpOwogCisgICAgICAgIE5vZGUqIG5vZGUgPSBt
X3JlbmRlcmVyLT5ub2RlKCk7CisgICAgICAgIGlmIChub2RlICYmIG5vZGUtPmlzRWxlbWVudE5v
ZGUoKSkKKyAgICAgICAgICAgIHRvRWxlbWVudChub2RlKS0+c2V0U2F2ZWRMYXllclNjcm9sbE9m
ZnNldChtX3Njcm9sbE9mZnNldCk7CisgICAgfQorCiAgICAgZGVzdHJveVNjcm9sbGJhcihIb3Jp
em9udGFsU2Nyb2xsYmFyKTsKICAgICBkZXN0cm95U2Nyb2xsYmFyKFZlcnRpY2FsU2Nyb2xsYmFy
KTsKIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTAzMzI3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTItMjAgIFJha2VzaCBLTiAg
PHJha2VzaC5rbkBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgU2Nyb2xsIHBvc2l0aW9uIGlzIGxv
c3QgYWZ0ZXIgaGlkZS9zaG93IGVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTcyODUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBmYXN0L292ZXJmbG93L3Njcm9sbC1kaXYtaGlkZS1zaG93LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9vdmVyZmxvdy9zY3JvbGwtZGl2LWhp
ZGUtc2hvdy5odG1sOiBBZGRlZC4KKwogMjAxMS0xMi0yMCAgSnVsaWVuIENoYWZmcmFpeCAgPGpj
aGFmZnJhaXhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZWdyZXNzaW9uKDk5MjEyKTogdGFibGUg
cm93cyBnZXQgaW5jb3JyZWN0IGhlaWdodCBhZnRlciBjaGFuZ2luZyBzb21lIGNlbGxzJyBoZWln
aHQKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNob3ct
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Ny
b2xsLWRpdi1oaWRlLXNob3ctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9vdmVyZmxvdy9zY3JvbGwtZGl2LWhpZGUtc2hvdy1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNzggQEAKK1Njcm9sbGVkIHBvc2l0aW9uIHNob3VsZCBiZSByZXN0
b3JlZCB3aGVuIHRoZSBkaXYgaXMgaGlkZGVuIGFuZCBzaG93biBhZ2FpbgorCitEaXYgd2lsbCBi
ZSBtb3ZlZCBoZXJlLgorCitTY3JvbGxpbmcgdG8gMCwgNzUKK0RpdidzIGRpc3BsYXkgaXMgbm9u
ZSBub3cKK1BBU1MgZS5zY3JvbGxUb3AgaXMgMAorRGl2J3MgZGlzcGxheSBpcyBibG9jayBhZ2Fp
bgorUEFTUyBlLnNjcm9sbFRvcCBpcyA3NQorCitUZXN0IHRoYXQgYWZ0ZXIgY2hhbmdpbmcgdGhl
IHNjcm9sbCBwb3NpdGlvbiB0byBkaWZmZXJlbnQgdmFsdWVzIHRoZSBzY3JvbGwgcG9zaXRpb24g
aXMgcmVzdG9yZWQKK1Njcm9sbGluZyB0byA1MCwgNTAKK0RpdidzIGRpc3BsYXkgaXMgbm9uZSBu
b3cKK1BBU1MgZS5zY3JvbGxUb3AgaXMgMAorUEFTUyBlLnNjcm9sbExlZnQgaXMgMAorRGl2J3Mg
ZGlzcGxheSBpcyBibG9jayBhZ2FpbgorUEFTUyBlLnNjcm9sbFRvcCBpcyA1MAorUEFTUyBlLnNj
cm9sbExlZnQgaXMgNTAKK1Njcm9sbGluZyB0byAzMCwgMTAKK0RpdidzIGRpc3BsYXkgaXMgbm9u
ZSBub3cKK1BBU1MgZS5zY3JvbGxUb3AgaXMgMAorUEFTUyBlLnNjcm9sbExlZnQgaXMgMAorRGl2
J3MgZGlzcGxheSBpcyBibG9jayBhZ2FpbgorUEFTUyBlLnNjcm9sbFRvcCBpcyAxMAorUEFTUyBl
LnNjcm9sbExlZnQgaXMgMzAKK1Njcm9sbGluZyB0byAxMDAsIDAKK0RpdidzIGRpc3BsYXkgaXMg
bm9uZSBub3cKK1BBU1MgZS5zY3JvbGxUb3AgaXMgMAorUEFTUyBlLnNjcm9sbExlZnQgaXMgMAor
RGl2J3MgZGlzcGxheSBpcyBibG9jayBhZ2FpbgorUEFTUyBlLnNjcm9sbFRvcCBpcyAwCitQQVNT
IGUuc2Nyb2xsTGVmdCBpcyAxMDAKKworVGVzdGluZyB0aGF0IHNjcm9sbCBwb3NpdGlvbiBpcyBy
ZXN0b3JlZCB3aGVuIGhlaWdodCBhbmQgd2lkdGggb2Ygc2Nyb2xsaW5nIGFyZWEgaXMgY2hhbmdl
ZAorU2Nyb2xsaW5nIHRvIDM1LCA3NQorRGl2J3MgZGlzcGxheSBpcyBub25lIG5vdworUEFTUyBl
LnNjcm9sbFRvcCBpcyAwCitQQVNTIGUuc2Nyb2xsTGVmdCBpcyAwCitEaXYncyBkaXNwbGF5IGlz
IGJsb2NrIGFnYWluCitQQVNTIGUuc2Nyb2xsVG9wIGlzIDc1CitQQVNTIGUuc2Nyb2xsTGVmdCBp
cyAzNQorQWRkaW5nIHNvbWUgbW9yZSB0ZXh0IHRvIGRpdgorU2Nyb2xsaW5nIHRvIDEyNSwgMTAw
CitEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93CitQQVNTIGUuc2Nyb2xsVG9wIGlzIDAKK1BBU1Mg
ZS5zY3JvbGxMZWZ0IGlzIDAKK0RpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4KK1BBU1MgZS5z
Y3JvbGxUb3AgaXMgMTAwCitQQVNTIGUuc2Nyb2xsTGVmdCBpcyAxMjUKKworVGVzdCB0aGF0IHNj
cm9sbCBwb3NpdGlvbiBpcyByZXNldCB3aGVuIHRoZSBub2RlIGlzIG1vdmVkIHRvIGRpZmZlcmVu
dCBsb2NhdGlvbiBpbiB0aGUgZG9jdW1lbnQKK1BBU1MgZS5zY3JvbGxUb3AgaXMgMAorUEFTUyBl
LnNjcm9sbExlZnQgaXMgMAorCitUZXN0aW5nIHRoYXQgc2Nyb2xsIHBvc2l0aW9uIGlzIHJlc3Rv
cmVkIGZvciBSVEwgdGV4dHMKK1Njcm9sbGluZyB0byA1MCwgMTUwCitEaXYncyBkaXNwbGF5IGlz
IG5vbmUgbm93CitQQVNTIGUuc2Nyb2xsVG9wIGlzIDAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDAK
K0RpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4KK1BBU1MgZS5zY3JvbGxUb3AgaXMgMTUwCitQ
QVNTIGUuc2Nyb2xsTGVmdCBpcyA1MAorCitUZXN0IGlmcmFtZSBzY3JvbGxpbmcKK1Njcm9sbGlu
ZyBJZnJhbWUgdG8gKDUwLCA3NSkKK0lmcmFtZSdzIGRpc3BsYXkgaXMgbm9uZSBub3cKK0lmcmFt
ZSdzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4KK1BBU1MgZnJhbWUuY29udGVudFdpbmRvdy5wYWdl
WU9mZnNldCBpcyA3NQorUEFTUyBmcmFtZS5jb250ZW50V2luZG93LnBhZ2VYT2Zmc2V0IGlzIDUw
CisKK1Rlc3Rpbmcgc2Nyb2xsIG9mZnNldCBnZXR0aW5nIHJlc2V0IHdoZW4gbW92ZWQgdG8gb3Ro
ZXIgZG9jdW1lbnQKK1Njcm9sbGluZyBkaXYgdG8gKDUwLCA3NSkKK1BBU1MgZS5zY3JvbGxUb3Ag
aXMgMAorUEFTUyBlLnNjcm9sbExlZnQgaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cv
c2Nyb2xsLWRpdi1oaWRlLXNob3cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L292ZXJmbG93L3Njcm9sbC1kaXYtaGlkZS1zaG93Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9sbC1kaXYtaGlkZS1zaG93Lmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTkxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+U2Nyb2xsZWQgcG9zaXRp
b24gc2hvdWxkIGJlIHJlc3RvcmVkIHdoZW4gdGhlIGRpdiBpcyBoaWRkZW4gYW5kIHNob3duIGFn
YWluPC9wPgorPGRpdiBzdHlsZT0iaGVpZ2h0OjEwMHB4OyB3aWR0aDoxMDBweDsgb3ZlcmZsb3c6
IHNjcm9sbDsgZGlzcGxheTogYmxvY2s7IiBpZD0ibWFpbiI+Cis8cHJlIGlkPSJwcmVJZCI+Cits
aW5lIDEgd2l0aCBzb21lIHRleHQgd2hpY2ggaGFzIHRvIGJlIHNjcm9sbCB0byBiZSB2aXNpYmxl
CitsaW5lIDIgd2l0aCBzb21lIHRleHQgd2hpY2ggaGFzIHRvIGJlIHNjcm9sbCB0byBiZSB2aXNp
YmxlCitsaW5lIDMgd2l0aCBzb21lIHRleHQgd2hpY2ggaGFzIHRvIGJlIHNjcm9sbCB0byBiZSB2
aXNpYmxlCitsaW5lIDQgd2l0aCBzb21lIHRleHQgd2hpY2ggaGFzIHRvIGJlIHNjcm9sbCB0byBi
ZSB2aXNpYmxlCitsaW5lIDUgd2l0aCBzb21lIHRleHQgd2hpY2ggaGFzIHRvIGJlIHNjcm9sbCB0
byBiZSB2aXNpYmxlCitsaW5lIDYgd2l0aCBzb21lIHRleHQgd2hpY2ggaGFzIHRvIGJlIHNjcm9s
bCB0byBiZSB2aXNpYmxlCitsaW5lIDcgd2l0aCBzb21lIHRleHQgd2hpY2ggaGFzIHRvIGJlIHNj
cm9sbCB0byBiZSB2aXNpYmxlCitsaW5lIDggd2l0aCBzb21lIHRleHQgd2hpY2ggaGFzIHRvIGJl
IHNjcm9sbCB0byBiZSB2aXNpYmxlCitsaW5lIDkgd2l0aCBzb21lIHRleHQgd2hpY2ggaGFzIHRv
IGJlIHNjcm9sbCB0byBiZSB2aXNpYmxlCitsaW5lIDEwIHdpdGggc29tZSB0ZXh0IHdoaWNoIGhh
cyB0byBiZSBzY3JvbGwgdG8gYmUgdmlzaWJsZQorbGluZSAxMSB3aXRoIHNvbWUgdGV4dCB3aGlj
aCBoYXMgdG8gYmUgc2Nyb2xsIHRvIGJlIHZpc2libGUKK2xpbmUgMTIgd2l0aCBzb21lIHRleHQg
d2hpY2ggaGFzIHRvIGJlIHNjcm9sbCB0byBiZSB2aXNpYmxlCis8L3ByZT4KKzwvZGl2PgorCis8
ZGl2IGlkPSJzZWNvbmQiPgorRGl2IHdpbGwgYmUgbW92ZWQgaGVyZS4KKzwvZGl2PgorCis8aWZy
YW1lIGlkPSJmcmFtZSIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7IHdpZHRoOjQwMHB4OyBoZWlnaHQ6
IDQwMHB4OyI+PC9pZnJhbWU+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2
YXIgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluIik7CitkZWJ1ZygiU2Nyb2xsaW5n
IHRvIDAsIDc1Iik7CitlLnNjcm9sbFRvcCA9IDc1OworZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUn
OworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgbm9uZSBub3ciKTsKK3Nob3VsZEJlKCdlLnNjcm9s
bFRvcCcsICcwJyk7CitlLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOworZGVidWcoIkRpdidzIGRp
c3BsYXkgaXMgYmxvY2sgYWdhaW4iKTsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICc3NScpOwor
CitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCB0aGF0IGFmdGVyIGNoYW5naW5nIHRoZSBzY3JvbGwg
cG9zaXRpb24gdG8gZGlmZmVyZW50IHZhbHVlcyB0aGUgc2Nyb2xsIHBvc2l0aW9uIGlzIHJlc3Rv
cmVkIik7CitkZWJ1ZygiU2Nyb2xsaW5nIHRvIDUwLCA1MCIpOworZS5zY3JvbGxUb3AgPSA1MDsK
K2Uuc2Nyb2xsTGVmdCA9IDUwOworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgbm9uZSBub3ciKTsK
K2Uuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7
CitzaG91bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzAnKTsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlz
IGJsb2NrIGFnYWluIik7CitlLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOworc2hvdWxkQmUoJ2Uu
c2Nyb2xsVG9wJywgJzUwJyk7CitzaG91bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzUwJyk7CisKK2Rl
YnVnKCJTY3JvbGxpbmcgdG8gMzAsIDEwIik7CitlLnNjcm9sbFRvcCA9IDEwOworZS5zY3JvbGxM
ZWZ0ID0gMzA7CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBub25lIG5vdyIpOworZS5zdHlsZS5k
aXNwbGF5ID0gJ25vbmUnOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzAnKTsKK3Nob3VsZEJl
KCdlLnNjcm9sbExlZnQnLCAnMCcpOworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdh
aW4iKTsKK2Uuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CitzaG91bGRCZSgnZS5zY3JvbGxUb3An
LCAnMTAnKTsKK3Nob3VsZEJlKCdlLnNjcm9sbExlZnQnLCAnMzAnKTsKKworZGVidWcoIlNjcm9s
bGluZyB0byAxMDAsIDAiKTsKK2Uuc2Nyb2xsVG9wID0gMDsKK2Uuc2Nyb2xsTGVmdCA9IDEwMDsK
K2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93Iik7CitlLnN0eWxlLmRpc3BsYXkgPSAn
bm9uZSc7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMCcpOworc2hvdWxkQmUoJ2Uuc2Nyb2xs
TGVmdCcsICcwJyk7CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBibG9jayBhZ2FpbiIpOworZS5z
dHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7Citz
aG91bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzEwMCcpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVz
dGluZyB0aGF0IHNjcm9sbCBwb3NpdGlvbiBpcyByZXN0b3JlZCB3aGVuIGhlaWdodCBhbmQgd2lk
dGggb2Ygc2Nyb2xsaW5nIGFyZWEgaXMgY2hhbmdlZCIpOworZS5zdHlsZS5oZWlnaHQgPSBlLnNj
cm9sbEhlaWdodCArIDUwOworZS5zdHlsZS53aWR0aCA9IGUuc2Nyb2xsV2lkdGggKyA1MDsKK2Rl
YnVnKCJTY3JvbGxpbmcgdG8gMzUsIDc1Iik7CitlLnNjcm9sbFRvcCA9IDc1OworZS5zY3JvbGxM
ZWZ0ID0gMzU7CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBub25lIG5vdyIpOworZS5zdHlsZS5k
aXNwbGF5ID0gJ25vbmUnOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzAnKTsKK3Nob3VsZEJl
KCdlLnNjcm9sbExlZnQnLCAnMCcpOworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdh
aW4iKTsKK2Uuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CitzaG91bGRCZSgnZS5zY3JvbGxUb3An
LCAnNzUnKTsKK3Nob3VsZEJlKCdlLnNjcm9sbExlZnQnLCAnMzUnKTsKK2RlYnVnKCJBZGRpbmcg
c29tZSBtb3JlIHRleHQgdG8gZGl2Iik7CitlLmlubmVySFRNTCArPSAibGluZSAxMyA8YnIvPiBs
aW5lIDE0IDxici8+IGxpbmUgMTUgPGJyLz4gbGluZSAxNiA8YnIvPiBsaW5lIDE3IDxici8+IjsK
K2RlYnVnKCJTY3JvbGxpbmcgdG8gMTI1LCAxMDAiKTsKK2Uuc2Nyb2xsVG9wID0gMTAwOworZS5z
Y3JvbGxMZWZ0ID0gMTI1OworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgbm9uZSBub3ciKTsKK2Uu
c3R5bGUuZGlzcGxheSA9ICdub25lJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7Citz
aG91bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzAnKTsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIGJs
b2NrIGFnYWluIik7CitlLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOworc2hvdWxkQmUoJ2Uuc2Ny
b2xsVG9wJywgJzEwMCcpOworc2hvdWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICcxMjUnKTsKKworZGVi
dWcoIiIpOworZGVidWcoIlRlc3QgdGhhdCBzY3JvbGwgcG9zaXRpb24gaXMgcmVzZXQgd2hlbiB0
aGUgbm9kZSBpcyBtb3ZlZCB0byBkaWZmZXJlbnQgbG9jYXRpb24gaW4gdGhlIGRvY3VtZW50Iik7
CitlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vj
b25kIikuYXBwZW5kQ2hpbGQoZSk7CitlLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOworc2hvdWxk
QmUoJ2Uuc2Nyb2xsVG9wJywgJzAnKTsKK3Nob3VsZEJlKCdlLnNjcm9sbExlZnQnLCAnMCcpOwor
Cit2YXIgZGl2Q29udGVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcmVJZCIpLmlubmVy
SFRNTDsKKworZGVidWcoIiIpOworZGVidWcoIlRlc3RpbmcgdGhhdCBzY3JvbGwgcG9zaXRpb24g
aXMgcmVzdG9yZWQgZm9yIFJUTCB0ZXh0cyIpOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBy
ZUlkIikuaW5uZXJIVE1MID0gItmF2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in
2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvY
p1wKKyAgICBcbtio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHY
rdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7YqNmL2KfZ
hdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL
2KfYsdit2KjZi9inXAorICAgIFxu2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit
2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wKKyAgICBcbtit2KjZi9in2YXYsdit2KjZi9in
2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wKKyAgICBcbtmF2YXYsdit2KjZi9in
2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZ
i9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wKKyAgICBcbtio2YvYp9mF2LHYrdio2YvYp9mF2LHY
rdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix
2K3YqNmL2KdcCisgICAgXG7YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL
2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfYsdit2KjZi9inXAorICAgIFxu2KjZi9in2YXYsdit
2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wKKyAg
ICBcbtmF2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXY
sdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wKKyAgICBcbtio2YvY
p9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio
2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7YqNmL2KfZhdix2K3YqNmL2KfZhdix
2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfYsdit2KjZi9inXAor
ICAgIFxu2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZ
i9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wKKyAgICBcbtio2YvYp9mF2LHY
rdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7YqNmL2KfZ
hdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL
2KfYsdit2KjZi9inXAorICAgIFxu2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit
2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYpyI7CisKK2UuZGlyPSJydGwi
OworCitkZWJ1ZygiU2Nyb2xsaW5nIHRvIDUwLCAxNTAiKTsKK2Uuc2Nyb2xsVG9wID0gMTUwOwor
ZS5zY3JvbGxMZWZ0ID0gNTA7CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBub25lIG5vdyIpOwor
ZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzAnKTsK
K3Nob3VsZEJlKCdlLnNjcm9sbExlZnQnLCAnMCcpOworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMg
YmxvY2sgYWdhaW4iKTsKK2Uuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CitzaG91bGRCZSgnZS5z
Y3JvbGxUb3AnLCAnMTUwJyk7CitzaG91bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzUwJyk7CisKK2Rl
YnVnKCIiKTsKK2RlYnVnKCJUZXN0IGlmcmFtZSBzY3JvbGxpbmciKTsKK3ZhciBmcmFtZSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcmFtZScpOwordmFyIGRvYyA9IGZyYW1lLmNvbnRlbnRE
b2N1bWVudC5vcGVuKCk7Citkb2Mud3JpdGUoIjxkaXYgc3R5bGU9J3dpZHRoOjEwMHB4OyBoZWln
aHQ6MTAwcHg7IGJhY2tncm91bmQ6eWVsbG93Oyc+PC9kaXY+Iik7Citkb2MuY2xvc2UoKTsKK2Zy
YW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LnN0eWxlLndpZHRoID0gIjIwMDBweCI7CitmcmFtZS5j
b250ZW50RG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHQgPSAiMjAwMHB4IjsKKworZGVidWcoIlNj
cm9sbGluZyBJZnJhbWUgdG8gKDUwLCA3NSkiKTsKK2ZyYW1lLmNvbnRlbnRXaW5kb3cuc2Nyb2xs
VG8oNTAsIDc1KTsKKworZnJhbWUuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKK2RlYnVnKCJJZnJh
bWUncyBkaXNwbGF5IGlzIG5vbmUgbm93Iik7CisKK2ZyYW1lLnN0eWxlLmRpc3BsYXkgPSAnYmxv
Y2snOworZGVidWcoIklmcmFtZSdzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4iKTsKKworc2hvdWxk
QmUoJ2ZyYW1lLmNvbnRlbnRXaW5kb3cucGFnZVlPZmZzZXQnLCAnNzUnKTsKK3Nob3VsZEJlKCdm
cmFtZS5jb250ZW50V2luZG93LnBhZ2VYT2Zmc2V0JywgJzUwJyk7CisKK2RlYnVnKCIiKTsKK2Rl
YnVnKCJUZXN0aW5nIHNjcm9sbCBvZmZzZXQgZ2V0dGluZyByZXNldCB3aGVuIG1vdmVkIHRvIG90
aGVyIGRvY3VtZW50Iik7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJlSWQiKS5pbm5lckhU
TUwgPSBkaXZDb250ZW50OworZS5kaXI9Imx0ciI7CitkZWJ1ZygiU2Nyb2xsaW5nIGRpdiB0byAo
NTAsIDc1KSIpOworZS5zY3JvbGxUb3AgPSA3NTsKK2Uuc2Nyb2xsTGVmdCA9IDUwOworZS5zdHls
ZS5kaXNwbGF5ID0gJ25vbmUnOworZnJhbWUuY29udGVudERvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoZSk7CitlLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9w
JywgJzAnKTsKK3Nob3VsZEJlKCdlLnNjcm9sbExlZnQnLCAnMCcpOworCitzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132823</attachid>
            <date>2012-03-20 07:20:39 -0700</date>
            <delta_ts>2012-03-28 03:53:49 -0700</delta_ts>
            <desc>patch_rebaselined_tot</desc>
            <filename>bug-72852-20120320194914.patch</filename>
            <type>text/plain</type>
            <size>14741</size>
            <attacher name="Rakesh">rakeshchaitan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMTM4OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDEyLTAzLTIwICBSYWtlc2gg
S04gIDxyYWtlc2gua25AbW90b3JvbGEuY29tPgorCisgICAgICAgIFNjcm9sbCBwb3NpdGlvbiBp
cyBsb3N0IGFmdGVyIGhpZGUvc2hvdyBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjg1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRl
LXNob3cuaHRtbAorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RWxlbWVudDo6cmVtb3ZlZEZyb21Eb2N1bWVudCk6CisgICAgICAgIFJlc2V0dGluZyB0aGUg
c2F2ZWQgc2Nyb2xsIG9mZnNldCBpZiBub2RlIGlzIG1vdmVkIHRvIG90aGVyIGxvY2F0aW9uIGlu
IHNhbWUgZG9jdW1lbnQgb3Igb3RoZXIgZG9jdW1lbnQuCisKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2F2ZWRMYXllclNjcm9sbE9mZnNldCk6CisgICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50OjpzZXRTYXZlZExheWVyU2Nyb2xsT2Zmc2V0KToKKyAgICAg
ICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICBIZWxwZXIgZnVuY3Rpb25zIGZvciBhY2Nlc3Np
bmcgbGF5ZXIgc2Nyb2xsIG9mZnNldCBmcm9tIHJhcmUgZGF0YS4KKworICAgICAgICAqIGRvbS9F
bGVtZW50UmFyZURhdGEuaDoKKyAgICAgICAgKEVsZW1lbnRSYXJlRGF0YSk6CisgICAgICAgIE1h
aW50YWluIHRoZSBzY3JvbGwgb2Zmc2V0LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6UmVuZGVyTGF5ZXIpOgorICAg
ICAgICBSZXN0b3JpbmcgdGhlIHNjcm9sbCBvZmZzZXQuCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllcjo6flJlbmRlckxheWVyKToKKyAgICAgICAgU3RvcmluZyB0aGUgc2Nyb2xsIG9mZnNl
dC4KKwogMjAxMi0wMy0xNSAgUGF2ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBzdXBwb3J0IGlubGluZSBzb3VyY2UgbWFwcy4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHJldmlzaW9uIDExMDgzMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTAzLDYgKzkwMyw4IEBA
IHZvaWQgRWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKQogCiB2b2lkIEVsZW1lbnQ6OnJl
bW92ZWRGcm9tRG9jdW1lbnQoKQogeworICAgIHNldFNhdmVkTGF5ZXJTY3JvbGxPZmZzZXQoSW50
U2l6ZSgpKTsKKwogICAgIGlmIChtX2F0dHJpYnV0ZURhdGEpIHsKICAgICAgICAgaWYgKGhhc0lE
KCkpIHsKICAgICAgICAgICAgIEF0dHJpYnV0ZSogaWRJdGVtID0gZ2V0QXR0cmlidXRlSXRlbShk
b2N1bWVudCgpLT5pZEF0dHJpYnV0ZU5hbWUoKSk7CkBAIC0yMDU3LDQgKzIwNTksMTYgQEAgSFRN
TENvbGxlY3Rpb24qIEVsZW1lbnQ6OmVuc3VyZUNhY2hlZEhUTQogICAgIHJldHVybiBlbnN1cmVS
YXJlRGF0YSgpLT5lbnN1cmVDYWNoZWRIVE1MQ29sbGVjdGlvbih0aGlzLCB0eXBlKTsKIH0KIAor
SW50U2l6ZSBFbGVtZW50OjpzYXZlZExheWVyU2Nyb2xsT2Zmc2V0KCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gaGFzUmFyZURhdGEoKSA/IHJhcmVEYXRhKCktPm1fc2F2ZWRMYXllclNjcm9sbE9mZnNl
dCA6IEludFNpemUoKTsKK30KKwordm9pZCBFbGVtZW50OjpzZXRTYXZlZExheWVyU2Nyb2xsT2Zm
c2V0KGNvbnN0IEludFNpemUmIHNpemUpCit7CisgICAgaWYgKHNpemUuaXNaZXJvKCkgJiYgIWhh
c1JhcmVEYXRhKCkpCisgICAgICAgIHJldHVybjsKKyAgICBlbnN1cmVSYXJlRGF0YSgpLT5tX3Nh
dmVkTGF5ZXJTY3JvbGxPZmZzZXQgPSBzaXplOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgJKHJldmlzaW9uIDExMDgzMCkKKysrIFNvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM5Niw2ICszOTYsOSBAQCBwdWJs
aWM6CiAgICAgYm9vbCBoYXNJRCgpIGNvbnN0OwogICAgIGJvb2wgaGFzQ2xhc3MoKSBjb25zdDsK
IAorICAgIEludFNpemUgc2F2ZWRMYXllclNjcm9sbE9mZnNldCgpIGNvbnN0OworICAgIHZvaWQg
c2V0U2F2ZWRMYXllclNjcm9sbE9mZnNldChjb25zdCBJbnRTaXplJik7CisKIHByb3RlY3RlZDoK
ICAgICBFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1
bWVudCwgQ29uc3RydWN0aW9uVHlwZSB0eXBlKQogICAgICAgICA6IENvbnRhaW5lck5vZGUoZG9j
dW1lbnQsIHR5cGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCShyZXZp
c2lvbiAxMTA4MzApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgJKHdv
cmtpbmcgY29weSkKQEAgLTc0LDYgKzc0LDggQEAgcHVibGljOgogCiAgICAgYm9vbCBtX3N0eWxl
QWZmZWN0ZWRCeUVtcHR5OwogCisgICAgSW50U2l6ZSBtX3NhdmVkTGF5ZXJTY3JvbGxPZmZzZXQ7
CisKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgYm9vbCBtX2NvbnRhaW5zRnVsbFNj
cmVlbkVsZW1lbnQ7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcAkocmV2aXNpb24gMTEwODMwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk0LDYgKzE5NCwxNCBAQCBSZW5k
ZXJMYXllcjo6UmVuZGVyTGF5ZXIoUmVuZGVyQm94TW9kZWxPCiAgICAgICAgIG1fdmlzaWJsZUNv
bnRlbnRTdGF0dXNEaXJ0eSA9IGZhbHNlOwogICAgICAgICBtX2hhc1Zpc2libGVDb250ZW50ID0g
cmVuZGVyZXItPnN0eWxlKCktPnZpc2liaWxpdHkoKSA9PSBWSVNJQkxFOwogICAgIH0KKworICAg
IE5vZGUqIG5vZGUgPSByZW5kZXJlci0+bm9kZSgpOworICAgIGlmIChub2RlICYmIG5vZGUtPmlz
RWxlbWVudE5vZGUoKSkgeworICAgICAgICAvLyBXZSBzYXZlIGFuZCByZXN0b3JlIG9ubHkgdGhl
IHNjcm9sbE9mZnNldCBhcyB0aGUgb3RoZXIgc2Nyb2xsIHZhbHVlcyBhcmUgcmVjYWxjdWxhdGVk
LgorICAgICAgICBFbGVtZW50KiBlbGVtZW50ID0gdG9FbGVtZW50KG5vZGUpOworICAgICAgICBt
X3Njcm9sbE9mZnNldCA9IGVsZW1lbnQtPnNhdmVkTGF5ZXJTY3JvbGxPZmZzZXQoKTsKKyAgICAg
ICAgZWxlbWVudC0+c2V0U2F2ZWRMYXllclNjcm9sbE9mZnNldChJbnRTaXplKCkpOworICAgIH0K
IH0KIAogUmVuZGVyTGF5ZXI6On5SZW5kZXJMYXllcigpCkBAIC0yMDgsNiArMjE2LDEwIEBAIFJl
bmRlckxheWVyOjp+UmVuZGVyTGF5ZXIoKQogICAgICAgICAgICAgZnJhbWVWaWV3LT5yZW1vdmVT
Y3JvbGxhYmxlQXJlYSh0aGlzKTsKICAgICB9CiAKKyAgICBOb2RlKiBub2RlID0gbV9yZW5kZXJl
ci0+bm9kZSgpOworICAgIGlmIChub2RlICYmIG5vZGUtPmlzRWxlbWVudE5vZGUoKSkKKyAgICAg
ICAgdG9FbGVtZW50KG5vZGUpLT5zZXRTYXZlZExheWVyU2Nyb2xsT2Zmc2V0KG1fc2Nyb2xsT2Zm
c2V0KTsKKwogICAgIGRlc3Ryb3lTY3JvbGxiYXIoSG9yaXpvbnRhbFNjcm9sbGJhcik7CiAgICAg
ZGVzdHJveVNjcm9sbGJhcihWZXJ0aWNhbFNjcm9sbGJhcik7CiAKSW5kZXg6IExheW91dFRlc3Rz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDExMTM4OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDEzIEBACisyMDEyLTAzLTIwICBSYWtlc2ggS04gIDxyYWtlc2gua25AbW90b3JvbGEuY29t
PgorCisgICAgICAgIFNjcm9sbCBwb3NpdGlvbiBpcyBsb3N0IGFmdGVyIGhpZGUvc2hvdyBlbGVt
ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjg1
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFz
dC9vdmVyZmxvdy9zY3JvbGwtZGl2LWhpZGUtc2hvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNob3cuaHRtbDogQWRkZWQuCisK
IDIwMTItMDMtMTUgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgV2ViIEluc3BlY3Rvcjogc3VwcG9ydCBpbmxpbmUgc291cmNlIG1hcHMuCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9sbC1kaXYtaGlkZS1zaG93LWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9sbC1kaXYt
aGlkZS1zaG93LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
b3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNob3ctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDc4IEBACitTY3JvbGxlZCBwb3NpdGlvbiBzaG91bGQgYmUgcmVzdG9yZWQgd2hl
biB0aGUgZGl2IGlzIGhpZGRlbiBhbmQgc2hvd24gYWdhaW4KKworRGl2IHdpbGwgYmUgbW92ZWQg
aGVyZS4KKworU2Nyb2xsaW5nIHRvIDAsIDc1CitEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93CitQ
QVNTIGUuc2Nyb2xsVG9wIGlzIDAKK0RpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4KK1BBU1Mg
ZS5zY3JvbGxUb3AgaXMgNzUKKworVGVzdCB0aGF0IGFmdGVyIGNoYW5naW5nIHRoZSBzY3JvbGwg
cG9zaXRpb24gdG8gZGlmZmVyZW50IHZhbHVlcyB0aGUgc2Nyb2xsIHBvc2l0aW9uIGlzIHJlc3Rv
cmVkCitTY3JvbGxpbmcgdG8gNTAsIDUwCitEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93CitQQVNT
IGUuc2Nyb2xsVG9wIGlzIDAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDAKK0RpdidzIGRpc3BsYXkg
aXMgYmxvY2sgYWdhaW4KK1BBU1MgZS5zY3JvbGxUb3AgaXMgNTAKK1BBU1MgZS5zY3JvbGxMZWZ0
IGlzIDUwCitTY3JvbGxpbmcgdG8gMzAsIDEwCitEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93CitQ
QVNTIGUuc2Nyb2xsVG9wIGlzIDAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDAKK0RpdidzIGRpc3Bs
YXkgaXMgYmxvY2sgYWdhaW4KK1BBU1MgZS5zY3JvbGxUb3AgaXMgMTAKK1BBU1MgZS5zY3JvbGxM
ZWZ0IGlzIDMwCitTY3JvbGxpbmcgdG8gMTAwLCAwCitEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93
CitQQVNTIGUuc2Nyb2xsVG9wIGlzIDAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDAKK0RpdidzIGRp
c3BsYXkgaXMgYmxvY2sgYWdhaW4KK1BBU1MgZS5zY3JvbGxUb3AgaXMgMAorUEFTUyBlLnNjcm9s
bExlZnQgaXMgMTAwCisKK1Rlc3RpbmcgdGhhdCBzY3JvbGwgcG9zaXRpb24gaXMgcmVzdG9yZWQg
d2hlbiBoZWlnaHQgYW5kIHdpZHRoIG9mIHNjcm9sbGluZyBhcmVhIGlzIGNoYW5nZWQKK1Njcm9s
bGluZyB0byAzNSwgNzUKK0RpdidzIGRpc3BsYXkgaXMgbm9uZSBub3cKK1BBU1MgZS5zY3JvbGxU
b3AgaXMgMAorUEFTUyBlLnNjcm9sbExlZnQgaXMgMAorRGl2J3MgZGlzcGxheSBpcyBibG9jayBh
Z2FpbgorUEFTUyBlLnNjcm9sbFRvcCBpcyA3NQorUEFTUyBlLnNjcm9sbExlZnQgaXMgMzUKK0Fk
ZGluZyBzb21lIG1vcmUgdGV4dCB0byBkaXYKK1Njcm9sbGluZyB0byAxMjUsIDEwMAorRGl2J3Mg
ZGlzcGxheSBpcyBub25lIG5vdworUEFTUyBlLnNjcm9sbFRvcCBpcyAwCitQQVNTIGUuc2Nyb2xs
TGVmdCBpcyAwCitEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluCitQQVNTIGUuc2Nyb2xsVG9w
IGlzIDEwMAorUEFTUyBlLnNjcm9sbExlZnQgaXMgMTI1CisKK1Rlc3QgdGhhdCBzY3JvbGwgcG9z
aXRpb24gaXMgcmVzZXQgd2hlbiB0aGUgbm9kZSBpcyBtb3ZlZCB0byBkaWZmZXJlbnQgbG9jYXRp
b24gaW4gdGhlIGRvY3VtZW50CitQQVNTIGUuc2Nyb2xsVG9wIGlzIDAKK1BBU1MgZS5zY3JvbGxM
ZWZ0IGlzIDAKKworVGVzdGluZyB0aGF0IHNjcm9sbCBwb3NpdGlvbiBpcyByZXN0b3JlZCBmb3Ig
UlRMIHRleHRzCitTY3JvbGxpbmcgdG8gNTAsIDE1MAorRGl2J3MgZGlzcGxheSBpcyBub25lIG5v
dworUEFTUyBlLnNjcm9sbFRvcCBpcyAwCitQQVNTIGUuc2Nyb2xsTGVmdCBpcyAwCitEaXYncyBk
aXNwbGF5IGlzIGJsb2NrIGFnYWluCitQQVNTIGUuc2Nyb2xsVG9wIGlzIDE1MAorUEFTUyBlLnNj
cm9sbExlZnQgaXMgNTAKKworVGVzdCBpZnJhbWUgc2Nyb2xsaW5nCitTY3JvbGxpbmcgSWZyYW1l
IHRvICg1MCwgNzUpCitJZnJhbWUncyBkaXNwbGF5IGlzIG5vbmUgbm93CitJZnJhbWUncyBkaXNw
bGF5IGlzIGJsb2NrIGFnYWluCitQQVNTIGZyYW1lLmNvbnRlbnRXaW5kb3cucGFnZVlPZmZzZXQg
aXMgNzUKK1BBU1MgZnJhbWUuY29udGVudFdpbmRvdy5wYWdlWE9mZnNldCBpcyA1MAorCitUZXN0
aW5nIHNjcm9sbCBvZmZzZXQgZ2V0dGluZyByZXNldCB3aGVuIG1vdmVkIHRvIG90aGVyIGRvY3Vt
ZW50CitTY3JvbGxpbmcgZGl2IHRvICg1MCwgNzUpCitQQVNTIGUuc2Nyb2xsVG9wIGlzIDAKK1BB
U1MgZS5zY3JvbGxMZWZ0IGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9sbC1k
aXYtaGlkZS1zaG93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxv
dy9zY3JvbGwtZGl2LWhpZGUtc2hvdy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9vdmVyZmxvdy9zY3JvbGwtZGl2LWhpZGUtc2hvdy5odG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDE5MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hh
cnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlNjcm9sbGVkIHBvc2l0aW9uIHNob3Vs
ZCBiZSByZXN0b3JlZCB3aGVuIHRoZSBkaXYgaXMgaGlkZGVuIGFuZCBzaG93biBhZ2FpbjwvcD4K
KzxkaXYgc3R5bGU9ImhlaWdodDoxMDBweDsgd2lkdGg6MTAwcHg7IG92ZXJmbG93OiBzY3JvbGw7
IGRpc3BsYXk6IGJsb2NrOyIgaWQ9Im1haW4iPgorPHByZSBpZD0icHJlSWQiPgorbGluZSAxIHdp
dGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwgdG8gYmUgdmlzaWJsZQorbGluZSAy
IHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwgdG8gYmUgdmlzaWJsZQorbGlu
ZSAzIHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwgdG8gYmUgdmlzaWJsZQor
bGluZSA0IHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwgdG8gYmUgdmlzaWJs
ZQorbGluZSA1IHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwgdG8gYmUgdmlz
aWJsZQorbGluZSA2IHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwgdG8gYmUg
dmlzaWJsZQorbGluZSA3IHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwgdG8g
YmUgdmlzaWJsZQorbGluZSA4IHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwg
dG8gYmUgdmlzaWJsZQorbGluZSA5IHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3Jv
bGwgdG8gYmUgdmlzaWJsZQorbGluZSAxMCB3aXRoIHNvbWUgdGV4dCB3aGljaCBoYXMgdG8gYmUg
c2Nyb2xsIHRvIGJlIHZpc2libGUKK2xpbmUgMTEgd2l0aCBzb21lIHRleHQgd2hpY2ggaGFzIHRv
IGJlIHNjcm9sbCB0byBiZSB2aXNpYmxlCitsaW5lIDEyIHdpdGggc29tZSB0ZXh0IHdoaWNoIGhh
cyB0byBiZSBzY3JvbGwgdG8gYmUgdmlzaWJsZQorPC9wcmU+Cis8L2Rpdj4KKworPGRpdiBpZD0i
c2Vjb25kIj4KK0RpdiB3aWxsIGJlIG1vdmVkIGhlcmUuCis8L2Rpdj4KKworPGlmcmFtZSBpZD0i
ZnJhbWUiIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyB3aWR0aDo0MDBweDsgaGVpZ2h0OiA0MDBweDsi
PjwvaWZyYW1lPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIGUgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbiIpOworZGVidWcoIlNjcm9sbGluZyB0byAwLCA3
NSIpOworZS5zY3JvbGxUb3AgPSA3NTsKK2Uuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKK2RlYnVn
KCJEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93Iik7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAn
MCcpOworZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlz
IGJsb2NrIGFnYWluIik7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnNzUnKTsKKworZGVidWco
IiIpOworZGVidWcoIlRlc3QgdGhhdCBhZnRlciBjaGFuZ2luZyB0aGUgc2Nyb2xsIHBvc2l0aW9u
IHRvIGRpZmZlcmVudCB2YWx1ZXMgdGhlIHNjcm9sbCBwb3NpdGlvbiBpcyByZXN0b3JlZCIpOwor
ZGVidWcoIlNjcm9sbGluZyB0byA1MCwgNTAiKTsKK2Uuc2Nyb2xsVG9wID0gNTA7CitlLnNjcm9s
bExlZnQgPSA1MDsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93Iik7CitlLnN0eWxl
LmRpc3BsYXkgPSAnbm9uZSc7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMCcpOworc2hvdWxk
QmUoJ2Uuc2Nyb2xsTGVmdCcsICcwJyk7CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBibG9jayBh
Z2FpbiIpOworZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRv
cCcsICc1MCcpOworc2hvdWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICc1MCcpOworCitkZWJ1ZygiU2Ny
b2xsaW5nIHRvIDMwLCAxMCIpOworZS5zY3JvbGxUb3AgPSAxMDsKK2Uuc2Nyb2xsTGVmdCA9IDMw
OworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgbm9uZSBub3ciKTsKK2Uuc3R5bGUuZGlzcGxheSA9
ICdub25lJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7CitzaG91bGRCZSgnZS5zY3Jv
bGxMZWZ0JywgJzAnKTsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluIik7Citl
LnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzEwJyk7
CitzaG91bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzMwJyk7CisKK2RlYnVnKCJTY3JvbGxpbmcgdG8g
MTAwLCAwIik7CitlLnNjcm9sbFRvcCA9IDA7CitlLnNjcm9sbExlZnQgPSAxMDA7CitkZWJ1Zygi
RGl2J3MgZGlzcGxheSBpcyBub25lIG5vdyIpOworZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwor
c2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzAnKTsKK3Nob3VsZEJlKCdlLnNjcm9sbExlZnQnLCAn
MCcpOworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4iKTsKK2Uuc3R5bGUuZGlz
cGxheSA9ICdibG9jayc7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMCcpOworc2hvdWxkQmUo
J2Uuc2Nyb2xsTGVmdCcsICcxMDAnKTsKKworZGVidWcoIiIpOworZGVidWcoIlRlc3RpbmcgdGhh
dCBzY3JvbGwgcG9zaXRpb24gaXMgcmVzdG9yZWQgd2hlbiBoZWlnaHQgYW5kIHdpZHRoIG9mIHNj
cm9sbGluZyBhcmVhIGlzIGNoYW5nZWQiKTsKK2Uuc3R5bGUuaGVpZ2h0ID0gZS5zY3JvbGxIZWln
aHQgKyA1MDsKK2Uuc3R5bGUud2lkdGggPSBlLnNjcm9sbFdpZHRoICsgNTA7CitkZWJ1ZygiU2Ny
b2xsaW5nIHRvIDM1LCA3NSIpOworZS5zY3JvbGxUb3AgPSA3NTsKK2Uuc2Nyb2xsTGVmdCA9IDM1
OworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgbm9uZSBub3ciKTsKK2Uuc3R5bGUuZGlzcGxheSA9
ICdub25lJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7CitzaG91bGRCZSgnZS5zY3Jv
bGxMZWZ0JywgJzAnKTsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluIik7Citl
LnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzc1Jyk7
CitzaG91bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzM1Jyk7CitkZWJ1ZygiQWRkaW5nIHNvbWUgbW9y
ZSB0ZXh0IHRvIGRpdiIpOworZS5pbm5lckhUTUwgKz0gImxpbmUgMTMgPGJyLz4gbGluZSAxNCA8
YnIvPiBsaW5lIDE1IDxici8+IGxpbmUgMTYgPGJyLz4gbGluZSAxNyA8YnIvPiI7CitkZWJ1Zygi
U2Nyb2xsaW5nIHRvIDEyNSwgMTAwIik7CitlLnNjcm9sbFRvcCA9IDEwMDsKK2Uuc2Nyb2xsTGVm
dCA9IDEyNTsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93Iik7CitlLnN0eWxlLmRp
c3BsYXkgPSAnbm9uZSc7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMCcpOworc2hvdWxkQmUo
J2Uuc2Nyb2xsTGVmdCcsICcwJyk7CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBibG9jayBhZ2Fp
biIpOworZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcs
ICcxMDAnKTsKK3Nob3VsZEJlKCdlLnNjcm9sbExlZnQnLCAnMTI1Jyk7CisKK2RlYnVnKCIiKTsK
K2RlYnVnKCJUZXN0IHRoYXQgc2Nyb2xsIHBvc2l0aW9uIGlzIHJlc2V0IHdoZW4gdGhlIG5vZGUg
aXMgbW92ZWQgdG8gZGlmZmVyZW50IGxvY2F0aW9uIGluIHRoZSBkb2N1bWVudCIpOworZS5zdHls
ZS5kaXNwbGF5ID0gJ25vbmUnOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlY29uZCIpLmFw
cGVuZENoaWxkKGUpOworZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK3Nob3VsZEJlKCdlLnNj
cm9sbFRvcCcsICcwJyk7CitzaG91bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzAnKTsKKwordmFyIGRp
dkNvbnRlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJlSWQiKS5pbm5lckhUTUw7CisK
K2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0aW5nIHRoYXQgc2Nyb2xsIHBvc2l0aW9uIGlzIHJlc3Rv
cmVkIGZvciBSVEwgdGV4dHMiKTsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcmVJZCIpLmlu
bmVySFRNTCA9ICLZhdmF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio
2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAg
XG7YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZ
hdix2K3YqNmL2KfZhdix2K3YqNmL2KfYsdit2KjZi9inXAorICAgIFxu2KjZi9in2YXYsdit2KjZ
i9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio
2YvYp1wKKyAgICBcbtio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF
2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7Yrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio
2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7ZhdmF2LHYrdio2YvYp9mF2LHYrdio
2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHY
rdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZ
hdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfYsdit2KjZi9in
XAorICAgIFxu2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit
2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wKKyAgICBcbtio2YvYp9mF2LHYrdio2YvYp9mF
2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7ZhdmF
2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvY
p9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7YqNmL2KfZhdix2K3Y
qNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix
2K3YqNmL2KfYsdit2KjZi9inXAorICAgIFxu2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in
2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wKKyAgICBcbtio
2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHY
rdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7YqNmL2KfZhdix2K3YqNmL2KfZ
hdix2K3YqNmL2KfZhdix2K3YqNmL2KfYsdit2KjZi9inXAorICAgIFxu2KjZi9in2YXYsdit2KjZ
i9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio
2YvYp1wKKyAgICBcbtio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF
2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KciOworCitlLmRpcj0icnRsIjsKKworZGVi
dWcoIlNjcm9sbGluZyB0byA1MCwgMTUwIik7CitlLnNjcm9sbFRvcCA9IDE1MDsKK2Uuc2Nyb2xs
TGVmdCA9IDUwOworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgbm9uZSBub3ciKTsKK2Uuc3R5bGUu
ZGlzcGxheSA9ICdub25lJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7CitzaG91bGRC
ZSgnZS5zY3JvbGxMZWZ0JywgJzAnKTsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFn
YWluIik7CitlLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9w
JywgJzE1MCcpOworc2hvdWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICc1MCcpOworCitkZWJ1ZygiIik7
CitkZWJ1ZygiVGVzdCBpZnJhbWUgc2Nyb2xsaW5nIik7Cit2YXIgZnJhbWUgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnZnJhbWUnKTsKK3ZhciBkb2MgPSBmcmFtZS5jb250ZW50RG9jdW1lbnQu
b3BlbigpOworZG9jLndyaXRlKCI8ZGl2IHN0eWxlPSd3aWR0aDoxMDBweDsgaGVpZ2h0OjEwMHB4
OyBiYWNrZ3JvdW5kOnllbGxvdzsnPjwvZGl2PiIpOworZG9jLmNsb3NlKCk7CitmcmFtZS5jb250
ZW50RG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgiOworZnJhbWUuY29udGVudERv
Y3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBweCI7CisKK2RlYnVnKCJTY3JvbGxpbmcg
SWZyYW1lIHRvICg1MCwgNzUpIik7CitmcmFtZS5jb250ZW50V2luZG93LnNjcm9sbFRvKDUwLCA3
NSk7CisKK2ZyYW1lLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CitkZWJ1ZygiSWZyYW1lJ3MgZGlz
cGxheSBpcyBub25lIG5vdyIpOworCitmcmFtZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK2Rl
YnVnKCJJZnJhbWUncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluIik7CisKK3Nob3VsZEJlKCdmcmFt
ZS5jb250ZW50V2luZG93LnBhZ2VZT2Zmc2V0JywgJzc1Jyk7CitzaG91bGRCZSgnZnJhbWUuY29u
dGVudFdpbmRvdy5wYWdlWE9mZnNldCcsICc1MCcpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVz
dGluZyBzY3JvbGwgb2Zmc2V0IGdldHRpbmcgcmVzZXQgd2hlbiBtb3ZlZCB0byBvdGhlciBkb2N1
bWVudCIpOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByZUlkIikuaW5uZXJIVE1MID0gZGl2
Q29udGVudDsKK2UuZGlyPSJsdHIiOworZGVidWcoIlNjcm9sbGluZyBkaXYgdG8gKDUwLCA3NSki
KTsKK2Uuc2Nyb2xsVG9wID0gNzU7CitlLnNjcm9sbExlZnQgPSA1MDsKK2Uuc3R5bGUuZGlzcGxh
eSA9ICdub25lJzsKK2ZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpOwor
ZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7
CitzaG91bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzAnKTsKKworc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134258</attachid>
            <date>2012-03-28 03:54:01 -0700</date>
            <delta_ts>2012-03-30 05:51:38 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-72852-20120328162208.patch</filename>
            <type>text/plain</type>
            <size>15146</size>
            <attacher name="Rakesh">rakeshchaitan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMjM4MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDEyLTAzLTI4ICBSYWtlc2gg
S04gIDxyYWtlc2gua25AbW90b3JvbGEuY29tPgorCisgICAgICAgIFNjcm9sbCBwb3NpdGlvbiBp
cyBsb3N0IGFmdGVyIGhpZGUvc2hvdyBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjg1MgorCisgICAgICAgIE1haW50YWluIHRoZSBzY3Jv
bGxlZCBwb3NpdGlvbiBvZiBvdmVyZmxvd2luZyBlbGVtZW50IHdoZW4gdGhlIHNjcm9sbGFibGUg
UmVuZGVyTGF5ZXIgaXMgZGVzdHJveWVkLAorICAgICAgICB3aGljaCBjYW4gYmUgdXNlZCB0byBy
ZXN0b3JlIHRoZSBzY3JvbGwgcG9zaXRpb24gaWYgdGhlIHNhbWUgZWxlbWVudCBpcyBhZ2FpbiBh
ZGRlZCB0byB0aGUgcmVuZGVyIHRyZWUuCisgICAgICAgIFdlIGFyZSBtYXRjaGluZyBGaXJlZm94
J3MgYmVoYXZpb3VyLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRlc3Q6IGZhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNob3cuaHRtbAorCisg
ICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVt
b3ZlZEZyb21Eb2N1bWVudCk6CisgICAgICAgIFJlc2V0dGluZyB0aGUgc2F2ZWQgc2Nyb2xsIG9m
ZnNldCBpZiBub2RlIGlzIG1vdmVkIHRvIG90aGVyIGxvY2F0aW9uIGluIHNhbWUgZG9jdW1lbnQg
b3Igb3RoZXIgZG9jdW1lbnQuCisKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNhdmVkTGF5
ZXJTY3JvbGxPZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0U2F2ZWRMYXll
clNjcm9sbE9mZnNldCk6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgSGVscGVy
IGZ1bmN0aW9ucyBmb3IgYWNjZXNzaW5nIGxheWVyIHNjcm9sbCBvZmZzZXQgZnJvbSByYXJlIGRh
dGEuCisKKyAgICAgICAgKiBkb20vRWxlbWVudFJhcmVEYXRhLmg6CisgICAgICAgIChFbGVtZW50
UmFyZURhdGEpOgorICAgICAgICBNYWludGFpbiB0aGUgc2Nyb2xsIG9mZnNldC4KKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXI6OlJlbmRlckxheWVyKToKKyAgICAgICAgUmVzdG9yaW5nIHRoZSBzY3JvbGwgb2Zmc2V0Lgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6On5SZW5kZXJMYXllcik6CisgICAgICAgIFN0
b3JpbmcgdGhlIHNjcm9sbCBvZmZzZXQgaWYgZG9jdW1lbnQgaXMgbm90IGJlaW5nIGRlc3Ryb3ll
ZC4KKwogMjAxMi0wMy0yOCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSRUdSRVNTSU9OOiBTdGFjayBvdmVyZmxvdyBvbiB0
aGUgcGFnZSB3aXRoID4gMTAwa2xvYwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAkocmV2aXNp
b24gMTEwODMwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC05MDMsNiArOTAzLDggQEAgdm9pZCBFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVu
dCgpCiAKIHZvaWQgRWxlbWVudDo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpCiB7CisgICAgc2V0U2F2
ZWRMYXllclNjcm9sbE9mZnNldChJbnRTaXplKCkpOworCiAgICAgaWYgKG1fYXR0cmlidXRlRGF0
YSkgewogICAgICAgICBpZiAoaGFzSUQoKSkgewogICAgICAgICAgICAgQXR0cmlidXRlKiBpZEl0
ZW0gPSBnZXRBdHRyaWJ1dGVJdGVtKGRvY3VtZW50KCktPmlkQXR0cmlidXRlTmFtZSgpKTsKQEAg
LTIwNTcsNCArMjA1OSwxNiBAQCBIVE1MQ29sbGVjdGlvbiogRWxlbWVudDo6ZW5zdXJlQ2FjaGVk
SFRNCiAgICAgcmV0dXJuIGVuc3VyZVJhcmVEYXRhKCktPmVuc3VyZUNhY2hlZEhUTUxDb2xsZWN0
aW9uKHRoaXMsIHR5cGUpOwogfQogCitJbnRTaXplIEVsZW1lbnQ6OnNhdmVkTGF5ZXJTY3JvbGxP
ZmZzZXQoKSBjb25zdAoreworICAgIHJldHVybiBoYXNSYXJlRGF0YSgpID8gcmFyZURhdGEoKS0+
bV9zYXZlZExheWVyU2Nyb2xsT2Zmc2V0IDogSW50U2l6ZSgpOworfQorCit2b2lkIEVsZW1lbnQ6
OnNldFNhdmVkTGF5ZXJTY3JvbGxPZmZzZXQoY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBp
ZiAoc2l6ZS5pc1plcm8oKSAmJiAhaGFzUmFyZURhdGEoKSkKKyAgICAgICAgcmV0dXJuOworICAg
IGVuc3VyZVJhcmVEYXRhKCktPm1fc2F2ZWRMYXllclNjcm9sbE9mZnNldCA9IHNpemU7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAkocmV2aXNpb24g
MTEwODMwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMzk2LDYgKzM5Niw5IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0lEKCkgY29uc3Q7CiAgICAg
Ym9vbCBoYXNDbGFzcygpIGNvbnN0OwogCisgICAgSW50U2l6ZSBzYXZlZExheWVyU2Nyb2xsT2Zm
c2V0KCkgY29uc3Q7CisgICAgdm9pZCBzZXRTYXZlZExheWVyU2Nyb2xsT2Zmc2V0KGNvbnN0IElu
dFNpemUmKTsKKwogcHJvdGVjdGVkOgogICAgIEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBDb25zdHJ1Y3Rpb25UeXBlIHR5cGUpCiAgICAg
ICAgIDogQ29udGFpbmVyTm9kZShkb2N1bWVudCwgdHlwZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50UmFyZURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudFJhcmVEYXRhLmgJKHJldmlzaW9uIDExMDgzMCkKKysrIFNvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50UmFyZURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNzQsNiArNzQsOCBAQCBwdWJs
aWM6CiAKICAgICBib29sIG1fc3R5bGVBZmZlY3RlZEJ5RW1wdHk7CiAKKyAgICBJbnRTaXplIG1f
c2F2ZWRMYXllclNjcm9sbE9mZnNldDsKKwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAg
ICBib29sIG1fY29udGFpbnNGdWxsU2NyZWVuRWxlbWVudDsKICNlbmRpZgpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCShyZXZpc2lvbiAxMTA4MzApCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xOTQsNiArMTk0LDE0IEBAIFJlbmRlckxheWVyOjpSZW5kZXJMYXllcihSZW5kZXJCb3hNb2Rl
bE8KICAgICAgICAgbV92aXNpYmxlQ29udGVudFN0YXR1c0RpcnR5ID0gZmFsc2U7CiAgICAgICAg
IG1faGFzVmlzaWJsZUNvbnRlbnQgPSByZW5kZXJlci0+c3R5bGUoKS0+dmlzaWJpbGl0eSgpID09
IFZJU0lCTEU7CiAgICAgfQorCisgICAgTm9kZSogbm9kZSA9IHJlbmRlcmVyLT5ub2RlKCk7Cisg
ICAgaWYgKG5vZGUgJiYgbm9kZS0+aXNFbGVtZW50Tm9kZSgpKSB7CisgICAgICAgIC8vIFdlIHNh
dmUgYW5kIHJlc3RvcmUgb25seSB0aGUgc2Nyb2xsT2Zmc2V0IGFzIHRoZSBvdGhlciBzY3JvbGwg
dmFsdWVzIGFyZSByZWNhbGN1bGF0ZWQuCisgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSB0b0Vs
ZW1lbnQobm9kZSk7CisgICAgICAgIG1fc2Nyb2xsT2Zmc2V0ID0gZWxlbWVudC0+c2F2ZWRMYXll
clNjcm9sbE9mZnNldCgpOworICAgICAgICBlbGVtZW50LT5zZXRTYXZlZExheWVyU2Nyb2xsT2Zm
c2V0KEludFNpemUoKSk7CisgICAgfQogfQogCiBSZW5kZXJMYXllcjo6flJlbmRlckxheWVyKCkK
QEAgLTIwOCw2ICsyMTYsMTIgQEAgUmVuZGVyTGF5ZXI6On5SZW5kZXJMYXllcigpCiAgICAgICAg
ICAgICBmcmFtZVZpZXctPnJlbW92ZVNjcm9sbGFibGVBcmVhKHRoaXMpOwogICAgIH0KIAorICAg
IGlmICghbV9yZW5kZXJlci0+ZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKSB7CisgICAgICAgIE5v
ZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7CisgICAgICAgIGlmIChub2RlICYmIG5vZGUt
PmlzRWxlbWVudE5vZGUoKSkKKyAgICAgICAgICAgIHRvRWxlbWVudChub2RlKS0+c2V0U2F2ZWRM
YXllclNjcm9sbE9mZnNldChtX3Njcm9sbE9mZnNldCk7CisgICAgfQorCiAgICAgZGVzdHJveVNj
cm9sbGJhcihIb3Jpem9udGFsU2Nyb2xsYmFyKTsKICAgICBkZXN0cm95U2Nyb2xsYmFyKFZlcnRp
Y2FsU2Nyb2xsYmFyKTsKIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTEyMzgxKQorKysgTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDMtMjgg
IFJha2VzaCBLTiAgPHJha2VzaC5rbkBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgU2Nyb2xsIHBv
c2l0aW9uIGlzIGxvc3QgYWZ0ZXIgaGlkZS9zaG93IGVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyODUyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L292ZXJmbG93L3Njcm9sbC1kaXYt
aGlkZS1zaG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9vdmVyZmxvdy9z
Y3JvbGwtZGl2LWhpZGUtc2hvdy5odG1sOiBBZGRlZC4KKwogMjAxMi0wMy0yOCAgUGF2ZWwgUG9k
aXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9y
OiBicmVha3BvaW50cyBhcmUgbm90IHNob3duIGluIHNpZGViYXIgcGFuZSBhZnRlciByZWxvYWQu
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9sbC1kaXYtaGlkZS1zaG93LWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9s
bC1kaXYtaGlkZS1zaG93LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNob3ctZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDc4IEBACitTY3JvbGxlZCBwb3NpdGlvbiBzaG91bGQgYmUgcmVzdG9y
ZWQgd2hlbiB0aGUgZGl2IGlzIGhpZGRlbiBhbmQgc2hvd24gYWdhaW4KKworRGl2IHdpbGwgYmUg
bW92ZWQgaGVyZS4KKworU2Nyb2xsaW5nIHRvIDAsIDc1CitEaXYncyBkaXNwbGF5IGlzIG5vbmUg
bm93CitQQVNTIGUuc2Nyb2xsVG9wIGlzIDAKK0RpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4K
K1BBU1MgZS5zY3JvbGxUb3AgaXMgNzUKKworVGVzdCB0aGF0IGFmdGVyIGNoYW5naW5nIHRoZSBz
Y3JvbGwgcG9zaXRpb24gdG8gZGlmZmVyZW50IHZhbHVlcyB0aGUgc2Nyb2xsIHBvc2l0aW9uIGlz
IHJlc3RvcmVkCitTY3JvbGxpbmcgdG8gNTAsIDUwCitEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93
CitQQVNTIGUuc2Nyb2xsVG9wIGlzIDAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDAKK0RpdidzIGRp
c3BsYXkgaXMgYmxvY2sgYWdhaW4KK1BBU1MgZS5zY3JvbGxUb3AgaXMgNTAKK1BBU1MgZS5zY3Jv
bGxMZWZ0IGlzIDUwCitTY3JvbGxpbmcgdG8gMzAsIDEwCitEaXYncyBkaXNwbGF5IGlzIG5vbmUg
bm93CitQQVNTIGUuc2Nyb2xsVG9wIGlzIDAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDAKK0Rpdidz
IGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4KK1BBU1MgZS5zY3JvbGxUb3AgaXMgMTAKK1BBU1MgZS5z
Y3JvbGxMZWZ0IGlzIDMwCitTY3JvbGxpbmcgdG8gMTAwLCAwCitEaXYncyBkaXNwbGF5IGlzIG5v
bmUgbm93CitQQVNTIGUuc2Nyb2xsVG9wIGlzIDAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDAKK0Rp
didzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4KK1BBU1MgZS5zY3JvbGxUb3AgaXMgMAorUEFTUyBl
LnNjcm9sbExlZnQgaXMgMTAwCisKK1Rlc3RpbmcgdGhhdCBzY3JvbGwgcG9zaXRpb24gaXMgcmVz
dG9yZWQgd2hlbiBoZWlnaHQgYW5kIHdpZHRoIG9mIHNjcm9sbGluZyBhcmVhIGlzIGNoYW5nZWQK
K1Njcm9sbGluZyB0byAzNSwgNzUKK0RpdidzIGRpc3BsYXkgaXMgbm9uZSBub3cKK1BBU1MgZS5z
Y3JvbGxUb3AgaXMgMAorUEFTUyBlLnNjcm9sbExlZnQgaXMgMAorRGl2J3MgZGlzcGxheSBpcyBi
bG9jayBhZ2FpbgorUEFTUyBlLnNjcm9sbFRvcCBpcyA3NQorUEFTUyBlLnNjcm9sbExlZnQgaXMg
MzUKK0FkZGluZyBzb21lIG1vcmUgdGV4dCB0byBkaXYKK1Njcm9sbGluZyB0byAxMjUsIDEwMAor
RGl2J3MgZGlzcGxheSBpcyBub25lIG5vdworUEFTUyBlLnNjcm9sbFRvcCBpcyAwCitQQVNTIGUu
c2Nyb2xsTGVmdCBpcyAwCitEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluCitQQVNTIGUuc2Ny
b2xsVG9wIGlzIDEwMAorUEFTUyBlLnNjcm9sbExlZnQgaXMgMTI1CisKK1Rlc3QgdGhhdCBzY3Jv
bGwgcG9zaXRpb24gaXMgcmVzZXQgd2hlbiB0aGUgbm9kZSBpcyBtb3ZlZCB0byBkaWZmZXJlbnQg
bG9jYXRpb24gaW4gdGhlIGRvY3VtZW50CitQQVNTIGUuc2Nyb2xsVG9wIGlzIDAKK1BBU1MgZS5z
Y3JvbGxMZWZ0IGlzIDAKKworVGVzdGluZyB0aGF0IHNjcm9sbCBwb3NpdGlvbiBpcyByZXN0b3Jl
ZCBmb3IgUlRMIHRleHRzCitTY3JvbGxpbmcgdG8gNTAsIDE1MAorRGl2J3MgZGlzcGxheSBpcyBu
b25lIG5vdworUEFTUyBlLnNjcm9sbFRvcCBpcyAwCitQQVNTIGUuc2Nyb2xsTGVmdCBpcyAwCitE
aXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluCitQQVNTIGUuc2Nyb2xsVG9wIGlzIDE1MAorUEFT
UyBlLnNjcm9sbExlZnQgaXMgNTAKKworVGVzdCBpZnJhbWUgc2Nyb2xsaW5nCitTY3JvbGxpbmcg
SWZyYW1lIHRvICg1MCwgNzUpCitJZnJhbWUncyBkaXNwbGF5IGlzIG5vbmUgbm93CitJZnJhbWUn
cyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluCitQQVNTIGZyYW1lLmNvbnRlbnRXaW5kb3cucGFnZVlP
ZmZzZXQgaXMgNzUKK1BBU1MgZnJhbWUuY29udGVudFdpbmRvdy5wYWdlWE9mZnNldCBpcyA1MAor
CitUZXN0aW5nIHNjcm9sbCBvZmZzZXQgZ2V0dGluZyByZXNldCB3aGVuIG1vdmVkIHRvIG90aGVy
IGRvY3VtZW50CitTY3JvbGxpbmcgZGl2IHRvICg1MCwgNzUpCitQQVNTIGUuc2Nyb2xsVG9wIGlz
IDAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Nj
cm9sbC1kaXYtaGlkZS1zaG93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9v
dmVyZmxvdy9zY3JvbGwtZGl2LWhpZGUtc2hvdy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9vdmVyZmxvdy9zY3JvbGwtZGl2LWhpZGUtc2hvdy5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDE5MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlNjcm9sbGVkIHBvc2l0aW9u
IHNob3VsZCBiZSByZXN0b3JlZCB3aGVuIHRoZSBkaXYgaXMgaGlkZGVuIGFuZCBzaG93biBhZ2Fp
bjwvcD4KKzxkaXYgc3R5bGU9ImhlaWdodDoxMDBweDsgd2lkdGg6MTAwcHg7IG92ZXJmbG93OiBz
Y3JvbGw7IGRpc3BsYXk6IGJsb2NrOyIgaWQ9Im1haW4iPgorPHByZSBpZD0icHJlSWQiPgorbGlu
ZSAxIHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwgdG8gYmUgdmlzaWJsZQor
bGluZSAyIHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwgdG8gYmUgdmlzaWJs
ZQorbGluZSAzIHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwgdG8gYmUgdmlz
aWJsZQorbGluZSA0IHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwgdG8gYmUg
dmlzaWJsZQorbGluZSA1IHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwgdG8g
YmUgdmlzaWJsZQorbGluZSA2IHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwg
dG8gYmUgdmlzaWJsZQorbGluZSA3IHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3Jv
bGwgdG8gYmUgdmlzaWJsZQorbGluZSA4IHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBz
Y3JvbGwgdG8gYmUgdmlzaWJsZQorbGluZSA5IHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBi
ZSBzY3JvbGwgdG8gYmUgdmlzaWJsZQorbGluZSAxMCB3aXRoIHNvbWUgdGV4dCB3aGljaCBoYXMg
dG8gYmUgc2Nyb2xsIHRvIGJlIHZpc2libGUKK2xpbmUgMTEgd2l0aCBzb21lIHRleHQgd2hpY2gg
aGFzIHRvIGJlIHNjcm9sbCB0byBiZSB2aXNpYmxlCitsaW5lIDEyIHdpdGggc29tZSB0ZXh0IHdo
aWNoIGhhcyB0byBiZSBzY3JvbGwgdG8gYmUgdmlzaWJsZQorPC9wcmU+Cis8L2Rpdj4KKworPGRp
diBpZD0ic2Vjb25kIj4KK0RpdiB3aWxsIGJlIG1vdmVkIGhlcmUuCis8L2Rpdj4KKworPGlmcmFt
ZSBpZD0iZnJhbWUiIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyB3aWR0aDo0MDBweDsgaGVpZ2h0OiA0
MDBweDsiPjwvaWZyYW1lPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgordmFy
IGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbiIpOworZGVidWcoIlNjcm9sbGluZyB0
byAwLCA3NSIpOworZS5zY3JvbGxUb3AgPSA3NTsKK2Uuc3R5bGUuZGlzcGxheSA9ICdub25lJzsK
K2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93Iik7CitzaG91bGRCZSgnZS5zY3JvbGxU
b3AnLCAnMCcpOworZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK2RlYnVnKCJEaXYncyBkaXNw
bGF5IGlzIGJsb2NrIGFnYWluIik7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnNzUnKTsKKwor
ZGVidWcoIiIpOworZGVidWcoIlRlc3QgdGhhdCBhZnRlciBjaGFuZ2luZyB0aGUgc2Nyb2xsIHBv
c2l0aW9uIHRvIGRpZmZlcmVudCB2YWx1ZXMgdGhlIHNjcm9sbCBwb3NpdGlvbiBpcyByZXN0b3Jl
ZCIpOworZGVidWcoIlNjcm9sbGluZyB0byA1MCwgNTAiKTsKK2Uuc2Nyb2xsVG9wID0gNTA7Citl
LnNjcm9sbExlZnQgPSA1MDsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93Iik7Citl
LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMCcpOwor
c2hvdWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICcwJyk7CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBi
bG9jayBhZ2FpbiIpOworZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK3Nob3VsZEJlKCdlLnNj
cm9sbFRvcCcsICc1MCcpOworc2hvdWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICc1MCcpOworCitkZWJ1
ZygiU2Nyb2xsaW5nIHRvIDMwLCAxMCIpOworZS5zY3JvbGxUb3AgPSAxMDsKK2Uuc2Nyb2xsTGVm
dCA9IDMwOworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgbm9uZSBub3ciKTsKK2Uuc3R5bGUuZGlz
cGxheSA9ICdub25lJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7CitzaG91bGRCZSgn
ZS5zY3JvbGxMZWZ0JywgJzAnKTsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWlu
Iik7CitlLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywg
JzEwJyk7CitzaG91bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzMwJyk7CisKK2RlYnVnKCJTY3JvbGxp
bmcgdG8gMTAwLCAwIik7CitlLnNjcm9sbFRvcCA9IDA7CitlLnNjcm9sbExlZnQgPSAxMDA7Citk
ZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBub25lIG5vdyIpOworZS5zdHlsZS5kaXNwbGF5ID0gJ25v
bmUnOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzAnKTsKK3Nob3VsZEJlKCdlLnNjcm9sbExl
ZnQnLCAnMCcpOworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4iKTsKK2Uuc3R5
bGUuZGlzcGxheSA9ICdibG9jayc7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMCcpOworc2hv
dWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICcxMDAnKTsKKworZGVidWcoIiIpOworZGVidWcoIlRlc3Rp
bmcgdGhhdCBzY3JvbGwgcG9zaXRpb24gaXMgcmVzdG9yZWQgd2hlbiBoZWlnaHQgYW5kIHdpZHRo
IG9mIHNjcm9sbGluZyBhcmVhIGlzIGNoYW5nZWQiKTsKK2Uuc3R5bGUuaGVpZ2h0ID0gZS5zY3Jv
bGxIZWlnaHQgKyA1MDsKK2Uuc3R5bGUud2lkdGggPSBlLnNjcm9sbFdpZHRoICsgNTA7CitkZWJ1
ZygiU2Nyb2xsaW5nIHRvIDM1LCA3NSIpOworZS5zY3JvbGxUb3AgPSA3NTsKK2Uuc2Nyb2xsTGVm
dCA9IDM1OworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgbm9uZSBub3ciKTsKK2Uuc3R5bGUuZGlz
cGxheSA9ICdub25lJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7CitzaG91bGRCZSgn
ZS5zY3JvbGxMZWZ0JywgJzAnKTsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWlu
Iik7CitlLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywg
Jzc1Jyk7CitzaG91bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzM1Jyk7CitkZWJ1ZygiQWRkaW5nIHNv
bWUgbW9yZSB0ZXh0IHRvIGRpdiIpOworZS5pbm5lckhUTUwgKz0gImxpbmUgMTMgPGJyLz4gbGlu
ZSAxNCA8YnIvPiBsaW5lIDE1IDxici8+IGxpbmUgMTYgPGJyLz4gbGluZSAxNyA8YnIvPiI7Citk
ZWJ1ZygiU2Nyb2xsaW5nIHRvIDEyNSwgMTAwIik7CitlLnNjcm9sbFRvcCA9IDEwMDsKK2Uuc2Ny
b2xsTGVmdCA9IDEyNTsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93Iik7CitlLnN0
eWxlLmRpc3BsYXkgPSAnbm9uZSc7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMCcpOworc2hv
dWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICcwJyk7CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBibG9j
ayBhZ2FpbiIpOworZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK3Nob3VsZEJlKCdlLnNjcm9s
bFRvcCcsICcxMDAnKTsKK3Nob3VsZEJlKCdlLnNjcm9sbExlZnQnLCAnMTI1Jyk7CisKK2RlYnVn
KCIiKTsKK2RlYnVnKCJUZXN0IHRoYXQgc2Nyb2xsIHBvc2l0aW9uIGlzIHJlc2V0IHdoZW4gdGhl
IG5vZGUgaXMgbW92ZWQgdG8gZGlmZmVyZW50IGxvY2F0aW9uIGluIHRoZSBkb2N1bWVudCIpOwor
ZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlY29u
ZCIpLmFwcGVuZENoaWxkKGUpOworZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK3Nob3VsZEJl
KCdlLnNjcm9sbFRvcCcsICcwJyk7CitzaG91bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzAnKTsKKwor
dmFyIGRpdkNvbnRlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJlSWQiKS5pbm5lckhU
TUw7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0aW5nIHRoYXQgc2Nyb2xsIHBvc2l0aW9uIGlz
IHJlc3RvcmVkIGZvciBSVEwgdGV4dHMiKTsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcmVJ
ZCIpLmlubmVySFRNTCA9ICLZhdmF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF
2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2Kdc
CisgICAgXG7YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3Y
qNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfYsdit2KjZi9inXAorICAgIFxu2KjZi9in2YXY
sdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in
2LHYrdio2YvYp1wKKyAgICBcbtio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio
2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7Yrdio2YvYp9mF2LHYrdio2YvYp9mF
2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7ZhdmF2LHYrdio2YvYp9mF
2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvY
p9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3Y
qNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfYsdit
2KjZi9inXAorICAgIFxu2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in
2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wKKyAgICBcbtio2YvYp9mF2LHYrdio
2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAg
XG7ZhdmF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHY
rdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7YqNmL2KfZ
hdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL
2KfZhdix2K3YqNmL2KfYsdit2KjZi9inXAorICAgIFxu2KjZi9in2YXYsdit2KjZi9in2YXYsdit
2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wKKyAg
ICBcbtio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvY
p9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7YqNmL2KfZhdix2K3Y
qNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfYsdit2KjZi9inXAorICAgIFxu2KjZi9in2YXY
sdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in
2LHYrdio2YvYp1wKKyAgICBcbtio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio
2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KciOworCitlLmRpcj0icnRsIjsK
KworZGVidWcoIlNjcm9sbGluZyB0byA1MCwgMTUwIik7CitlLnNjcm9sbFRvcCA9IDE1MDsKK2Uu
c2Nyb2xsTGVmdCA9IDUwOworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgbm9uZSBub3ciKTsKK2Uu
c3R5bGUuZGlzcGxheSA9ICdub25lJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7Citz
aG91bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzAnKTsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIGJs
b2NrIGFnYWluIik7CitlLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOworc2hvdWxkQmUoJ2Uuc2Ny
b2xsVG9wJywgJzE1MCcpOworc2hvdWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICc1MCcpOworCitkZWJ1
ZygiIik7CitkZWJ1ZygiVGVzdCBpZnJhbWUgc2Nyb2xsaW5nIik7Cit2YXIgZnJhbWUgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZnJhbWUnKTsKK3ZhciBkb2MgPSBmcmFtZS5jb250ZW50RG9j
dW1lbnQub3BlbigpOworZG9jLndyaXRlKCI8ZGl2IHN0eWxlPSd3aWR0aDoxMDBweDsgaGVpZ2h0
OjEwMHB4OyBiYWNrZ3JvdW5kOnllbGxvdzsnPjwvZGl2PiIpOworZG9jLmNsb3NlKCk7CitmcmFt
ZS5jb250ZW50RG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgiOworZnJhbWUuY29u
dGVudERvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBweCI7CisKK2RlYnVnKCJTY3Jv
bGxpbmcgSWZyYW1lIHRvICg1MCwgNzUpIik7CitmcmFtZS5jb250ZW50V2luZG93LnNjcm9sbFRv
KDUwLCA3NSk7CisKK2ZyYW1lLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CitkZWJ1ZygiSWZyYW1l
J3MgZGlzcGxheSBpcyBub25lIG5vdyIpOworCitmcmFtZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2Nr
JzsKK2RlYnVnKCJJZnJhbWUncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluIik7CisKK3Nob3VsZEJl
KCdmcmFtZS5jb250ZW50V2luZG93LnBhZ2VZT2Zmc2V0JywgJzc1Jyk7CitzaG91bGRCZSgnZnJh
bWUuY29udGVudFdpbmRvdy5wYWdlWE9mZnNldCcsICc1MCcpOworCitkZWJ1ZygiIik7CitkZWJ1
ZygiVGVzdGluZyBzY3JvbGwgb2Zmc2V0IGdldHRpbmcgcmVzZXQgd2hlbiBtb3ZlZCB0byBvdGhl
ciBkb2N1bWVudCIpOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByZUlkIikuaW5uZXJIVE1M
ID0gZGl2Q29udGVudDsKK2UuZGlyPSJsdHIiOworZGVidWcoIlNjcm9sbGluZyBkaXYgdG8gKDUw
LCA3NSkiKTsKK2Uuc2Nyb2xsVG9wID0gNzU7CitlLnNjcm9sbExlZnQgPSA1MDsKK2Uuc3R5bGUu
ZGlzcGxheSA9ICdub25lJzsKK2ZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KGUpOworZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcs
ICcwJyk7CitzaG91bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzAnKTsKKworc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134793</attachid>
            <date>2012-03-30 05:51:47 -0700</date>
            <delta_ts>2012-04-02 10:28:46 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-72852-20120330181947.patch</filename>
            <type>text/plain</type>
            <size>15461</size>
            <attacher name="Rakesh">rakeshchaitan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMjY1NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDEyLTAzLTMwICBSYWtlc2gg
S04gIDxyYWtlc2gua25AbW90b3JvbGEuY29tPgorCisgICAgICAgIFNjcm9sbCBwb3NpdGlvbiBp
cyBsb3N0IGFmdGVyIGhpZGUvc2hvdyBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjg1MgorCisgICAgICAgIE1haW50YWluIHRoZSBzY3Jv
bGxlZCBwb3NpdGlvbiBvZiBvdmVyZmxvd2luZyBlbGVtZW50IGluIHRoZSBFbGVtZW50UmFyZURh
dGEgd2hlbiB0aGUgc2Nyb2xsYWJsZSAKKyAgICAgICAgUmVuZGVyTGF5ZXIgaXMgZGVzdHJveWVk
LCB3aGljaCBjYW4gYmUgdXNlZCB0byByZXN0b3JlIHRoZSBzY3JvbGwgcG9zaXRpb24gaWYgdGhl
IHNhbWUgZWxlbWVudCBpcyAKKyAgICAgICAgYWdhaW4gYWRkZWQgdG8gdGhlIHJlbmRlciB0cmVl
LgorCisgICAgICAgIFdlYmtpdCBiZWhhdmlvdXIgd2lsbCBiZSBzYW1lIGFzIEZpcmVmb3ggYW5k
IElFLiBJdCBkaWZmZXJzIGZyb20gT3BlcmEgaW4gYSB3YXkgdGhhdCBPcGVyYSBkb2VzIAorICAg
ICAgICBub3QgcmVzZXQgdGhlIHNjcm9sbGVkIHBvc2l0aW9uIHdoZW4gZWxlbWVudCBpcyBtb3Zl
ZCB0byBhbm90aGVyIGxvY2F0aW9uIGluIHRoZSBzYW1lIGRvY3VtZW50LiAKKyAgICAgICAgQnV0
IGluIE9wZXJhIGFsc28gc2Nyb2xsZWQgcG9zaXRpb24gaXMgcmVzZXQgd2hlbiBlbGVtZW50IGlz
IG1vdmVkIHRvIGFub3RoZXIgZG9jdW1lbnQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9vdmVyZmxvdy9zY3JvbGwtZGl2LWhpZGUt
c2hvdy5odG1sCisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50OjpyZW1vdmVkRnJvbURvY3VtZW50KToKKyAgICAgICAgUmVzZXQgdGhlIHNhdmVk
IHNjcm9sbCBvZmZzZXQgaWYgdGhlIG5vZGUgaXMgbW92ZWQgdG8gYW5vdGhlciBsb2NhdGlvbiBp
biB0aGUgc2FtZSBkb2N1bWVudCBvciBhbm90aGVyIG9uZS4KKworICAgICAgICAoV2ViQ29yZTo6
RWxlbWVudDo6c2F2ZWRMYXllclNjcm9sbE9mZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjpzZXRTYXZlZExheWVyU2Nyb2xsT2Zmc2V0KToKKyAgICAgICAgKiBkb20vRWxlbWVudC5o
OgorICAgICAgICBBZGQgaGVscGVyIGZ1bmN0aW9ucyB0byBhY2Nlc3MgdGhlIGxheWVyIHNjcm9s
bCBvZmZzZXQgZnJvbSB0aGUgZWxlbWVudCdzIHJhcmUgZGF0YS4KKworICAgICAgICAqIGRvbS9F
bGVtZW50UmFyZURhdGEuaDoKKyAgICAgICAgKEVsZW1lbnRSYXJlRGF0YSk6CisgICAgICAgIEFk
ZCB0aGUgc2Nyb2xsIG9mZnNldCBib29rLWtlZXBpbmcuCisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpSZW5kZXJMYXll
cik6CisgICAgICAgIFJlc3RvcmluZyB0aGUgc2Nyb2xsIG9mZnNldC4KKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyOjp+UmVuZGVyTGF5ZXIpOgorICAgICAgICBTdG9yaW5nIHRoZSBzY3Jv
bGwgb2Zmc2V0IGlmIGRvY3VtZW50IGlzIG5vdCBiZWluZyBkZXN0cm95ZWQuCisKIDIwMTItMDMt
MzAgIFZpbmVldCBDaGF1ZGhhcnkgIDxyZ2Y3NDhAbW90b3JvbGEuY29tPgogCiAgICAgICAgIElE
TFBhcnNlci5wbSBzaG91bGQgYmUgYWJsZSB0byBwYXJzZSBzZXF1ZW5jZTxUPiBhcyBtZXRob2Qg
YXJndW1lbnQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxMTA4MzApCisr
KyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkwMyw2
ICs5MDMsOCBAQCB2b2lkIEVsZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtZW50KCkKIAogdm9pZCBF
bGVtZW50OjpyZW1vdmVkRnJvbURvY3VtZW50KCkKIHsKKyAgICBzZXRTYXZlZExheWVyU2Nyb2xs
T2Zmc2V0KEludFNpemUoKSk7CisKICAgICBpZiAobV9hdHRyaWJ1dGVEYXRhKSB7CiAgICAgICAg
IGlmIChoYXNJRCgpKSB7CiAgICAgICAgICAgICBBdHRyaWJ1dGUqIGlkSXRlbSA9IGdldEF0dHJp
YnV0ZUl0ZW0oZG9jdW1lbnQoKS0+aWRBdHRyaWJ1dGVOYW1lKCkpOwpAQCAtMjA1Nyw0ICsyMDU5
LDE2IEBAIEhUTUxDb2xsZWN0aW9uKiBFbGVtZW50OjplbnN1cmVDYWNoZWRIVE0KICAgICByZXR1
cm4gZW5zdXJlUmFyZURhdGEoKS0+ZW5zdXJlQ2FjaGVkSFRNTENvbGxlY3Rpb24odGhpcywgdHlw
ZSk7CiB9CiAKK0ludFNpemUgRWxlbWVudDo6c2F2ZWRMYXllclNjcm9sbE9mZnNldCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgPyByYXJlRGF0YSgpLT5tX3NhdmVkTGF5ZXJT
Y3JvbGxPZmZzZXQgOiBJbnRTaXplKCk7Cit9CisKK3ZvaWQgRWxlbWVudDo6c2V0U2F2ZWRMYXll
clNjcm9sbE9mZnNldChjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIGlmIChzaXplLmlzWmVy
bygpICYmICFoYXNSYXJlRGF0YSgpKQorICAgICAgICByZXR1cm47CisgICAgZW5zdXJlUmFyZURh
dGEoKS0+bV9zYXZlZExheWVyU2Nyb2xsT2Zmc2V0ID0gc2l6ZTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCShyZXZpc2lvbiAxMTA4MzApCisrKyBT
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOTYsNiArMzk2
LDkgQEAgcHVibGljOgogICAgIGJvb2wgaGFzSUQoKSBjb25zdDsKICAgICBib29sIGhhc0NsYXNz
KCkgY29uc3Q7CiAKKyAgICBJbnRTaXplIHNhdmVkTGF5ZXJTY3JvbGxPZmZzZXQoKSBjb25zdDsK
KyAgICB2b2lkIHNldFNhdmVkTGF5ZXJTY3JvbGxPZmZzZXQoY29uc3QgSW50U2l6ZSYpOworCiBw
cm90ZWN0ZWQ6CiAgICAgRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCogZG9jdW1lbnQsIENvbnN0cnVjdGlvblR5cGUgdHlwZSkKICAgICAgICAgOiBDb250YWlu
ZXJOb2RlKGRvY3VtZW50LCB0eXBlKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRS
YXJlRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURh
dGEuaAkocmV2aXNpb24gMTEwODMwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJl
RGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC03NCw2ICs3NCw4IEBAIHB1YmxpYzoKIAogICAgIGJv
b2wgbV9zdHlsZUFmZmVjdGVkQnlFbXB0eTsKIAorICAgIEludFNpemUgbV9zYXZlZExheWVyU2Ny
b2xsT2Zmc2V0OworCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIGJvb2wgbV9jb250
YWluc0Z1bGxTY3JlZW5FbGVtZW50OwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAJKHJldmlzaW9uIDExMDgzMCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5NCw2ICsxOTQs
MTQgQEAgUmVuZGVyTGF5ZXI6OlJlbmRlckxheWVyKFJlbmRlckJveE1vZGVsTwogICAgICAgICBt
X3Zpc2libGVDb250ZW50U3RhdHVzRGlydHkgPSBmYWxzZTsKICAgICAgICAgbV9oYXNWaXNpYmxl
Q29udGVudCA9IHJlbmRlcmVyLT5zdHlsZSgpLT52aXNpYmlsaXR5KCkgPT0gVklTSUJMRTsKICAg
ICB9CisKKyAgICBOb2RlKiBub2RlID0gcmVuZGVyZXItPm5vZGUoKTsKKyAgICBpZiAobm9kZSAm
JiBub2RlLT5pc0VsZW1lbnROb2RlKCkpIHsKKyAgICAgICAgLy8gV2Ugc2F2ZSBhbmQgcmVzdG9y
ZSBvbmx5IHRoZSBzY3JvbGxPZmZzZXQgYXMgdGhlIG90aGVyIHNjcm9sbCB2YWx1ZXMgYXJlIHJl
Y2FsY3VsYXRlZC4KKyAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IHRvRWxlbWVudChub2RlKTsK
KyAgICAgICAgbV9zY3JvbGxPZmZzZXQgPSBlbGVtZW50LT5zYXZlZExheWVyU2Nyb2xsT2Zmc2V0
KCk7CisgICAgICAgIGVsZW1lbnQtPnNldFNhdmVkTGF5ZXJTY3JvbGxPZmZzZXQoSW50U2l6ZSgp
KTsKKyAgICB9CiB9CiAKIFJlbmRlckxheWVyOjp+UmVuZGVyTGF5ZXIoKQpAQCAtMjA4LDYgKzIx
NiwxMiBAQCBSZW5kZXJMYXllcjo6flJlbmRlckxheWVyKCkKICAgICAgICAgICAgIGZyYW1lVmll
dy0+cmVtb3ZlU2Nyb2xsYWJsZUFyZWEodGhpcyk7CiAgICAgfQogCisgICAgaWYgKCFtX3JlbmRl
cmVyLT5kb2N1bWVudEJlaW5nRGVzdHJveWVkKCkpIHsKKyAgICAgICAgTm9kZSogbm9kZSA9IG1f
cmVuZGVyZXItPm5vZGUoKTsKKyAgICAgICAgaWYgKG5vZGUgJiYgbm9kZS0+aXNFbGVtZW50Tm9k
ZSgpKQorICAgICAgICAgICAgdG9FbGVtZW50KG5vZGUpLT5zZXRTYXZlZExheWVyU2Nyb2xsT2Zm
c2V0KG1fc2Nyb2xsT2Zmc2V0KTsKKyAgICB9CisKICAgICBkZXN0cm95U2Nyb2xsYmFyKEhvcml6
b250YWxTY3JvbGxiYXIpOwogICAgIGRlc3Ryb3lTY3JvbGxiYXIoVmVydGljYWxTY3JvbGxiYXIp
OwogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTI2NTQpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMy0zMCAgUmFrZXNoIEtOICA8
cmFrZXNoLmtuQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBTY3JvbGwgcG9zaXRpb24gaXMgbG9z
dCBhZnRlciBoaWRlL3Nob3cgZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzI4NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGZhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNob3ctZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L292ZXJmbG93L3Njcm9sbC1kaXYtaGlk
ZS1zaG93Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTAzLTMwICBQYXZlbCBGZWxkbWFuICA8cGZlbGRt
YW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGVkaXRpbmcgcmVzZXRz
IGxpbmUtZW5kaW5nIG9mIHRoZSB3aG9sZSBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L292
ZXJmbG93L3Njcm9sbC1kaXYtaGlkZS1zaG93LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9sbC1kaXYtaGlkZS1zaG93LWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1o
aWRlLXNob3ctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc4IEBACitTY3Jv
bGxlZCBwb3NpdGlvbiBzaG91bGQgYmUgcmVzdG9yZWQgd2hlbiB0aGUgZGl2IGlzIGhpZGRlbiBh
bmQgc2hvd24gYWdhaW4KKworRGl2IHdpbGwgYmUgbW92ZWQgaGVyZS4KKworU2Nyb2xsaW5nIHRv
IDAsIDc1CitEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93CitQQVNTIGUuc2Nyb2xsVG9wIGlzIDAK
K0RpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4KK1BBU1MgZS5zY3JvbGxUb3AgaXMgNzUKKwor
VGVzdCB0aGF0IGFmdGVyIGNoYW5naW5nIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gZGlmZmVyZW50
IHZhbHVlcyB0aGUgc2Nyb2xsIHBvc2l0aW9uIGlzIHJlc3RvcmVkCitTY3JvbGxpbmcgdG8gNTAs
IDUwCitEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93CitQQVNTIGUuc2Nyb2xsVG9wIGlzIDAKK1BB
U1MgZS5zY3JvbGxMZWZ0IGlzIDAKK0RpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4KK1BBU1Mg
ZS5zY3JvbGxUb3AgaXMgNTAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDUwCitTY3JvbGxpbmcgdG8g
MzAsIDEwCitEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93CitQQVNTIGUuc2Nyb2xsVG9wIGlzIDAK
K1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDAKK0RpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4KK1BB
U1MgZS5zY3JvbGxUb3AgaXMgMTAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDMwCitTY3JvbGxpbmcg
dG8gMTAwLCAwCitEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93CitQQVNTIGUuc2Nyb2xsVG9wIGlz
IDAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDAKK0RpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4K
K1BBU1MgZS5zY3JvbGxUb3AgaXMgMAorUEFTUyBlLnNjcm9sbExlZnQgaXMgMTAwCisKK1Rlc3Rp
bmcgdGhhdCBzY3JvbGwgcG9zaXRpb24gaXMgcmVzdG9yZWQgd2hlbiBoZWlnaHQgYW5kIHdpZHRo
IG9mIHNjcm9sbGluZyBhcmVhIGlzIGNoYW5nZWQKK1Njcm9sbGluZyB0byAzNSwgNzUKK0Rpdidz
IGRpc3BsYXkgaXMgbm9uZSBub3cKK1BBU1MgZS5zY3JvbGxUb3AgaXMgMAorUEFTUyBlLnNjcm9s
bExlZnQgaXMgMAorRGl2J3MgZGlzcGxheSBpcyBibG9jayBhZ2FpbgorUEFTUyBlLnNjcm9sbFRv
cCBpcyA3NQorUEFTUyBlLnNjcm9sbExlZnQgaXMgMzUKK0FkZGluZyBzb21lIG1vcmUgdGV4dCB0
byBkaXYKK1Njcm9sbGluZyB0byAxMjUsIDEwMAorRGl2J3MgZGlzcGxheSBpcyBub25lIG5vdwor
UEFTUyBlLnNjcm9sbFRvcCBpcyAwCitQQVNTIGUuc2Nyb2xsTGVmdCBpcyAwCitEaXYncyBkaXNw
bGF5IGlzIGJsb2NrIGFnYWluCitQQVNTIGUuc2Nyb2xsVG9wIGlzIDEwMAorUEFTUyBlLnNjcm9s
bExlZnQgaXMgMTI1CisKK1Rlc3QgdGhhdCBzY3JvbGwgcG9zaXRpb24gaXMgcmVzZXQgd2hlbiB0
aGUgbm9kZSBpcyBtb3ZlZCB0byBkaWZmZXJlbnQgbG9jYXRpb24gaW4gdGhlIGRvY3VtZW50CitQ
QVNTIGUuc2Nyb2xsVG9wIGlzIDAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDAKKworVGVzdGluZyB0
aGF0IHNjcm9sbCBwb3NpdGlvbiBpcyByZXN0b3JlZCBmb3IgUlRMIHRleHRzCitTY3JvbGxpbmcg
dG8gNTAsIDE1MAorRGl2J3MgZGlzcGxheSBpcyBub25lIG5vdworUEFTUyBlLnNjcm9sbFRvcCBp
cyAwCitQQVNTIGUuc2Nyb2xsTGVmdCBpcyAwCitEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWlu
CitQQVNTIGUuc2Nyb2xsVG9wIGlzIDE1MAorUEFTUyBlLnNjcm9sbExlZnQgaXMgNTAKKworVGVz
dCBpZnJhbWUgc2Nyb2xsaW5nCitTY3JvbGxpbmcgSWZyYW1lIHRvICg1MCwgNzUpCitJZnJhbWUn
cyBkaXNwbGF5IGlzIG5vbmUgbm93CitJZnJhbWUncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluCitQ
QVNTIGZyYW1lLmNvbnRlbnRXaW5kb3cucGFnZVlPZmZzZXQgaXMgNzUKK1BBU1MgZnJhbWUuY29u
dGVudFdpbmRvdy5wYWdlWE9mZnNldCBpcyA1MAorCitUZXN0aW5nIHNjcm9sbCBvZmZzZXQgZ2V0
dGluZyByZXNldCB3aGVuIG1vdmVkIHRvIG90aGVyIGRvY3VtZW50CitTY3JvbGxpbmcgZGl2IHRv
ICg1MCwgNzUpCitQQVNTIGUuc2Nyb2xsVG9wIGlzIDAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDAK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9sbC1kaXYtaGlkZS1zaG93Lmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9zY3JvbGwtZGl2LWhpZGUtc2hv
dy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxvdy9zY3JvbGwt
ZGl2LWhpZGUtc2hvdy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5MSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxwPlNjcm9sbGVkIHBvc2l0aW9uIHNob3VsZCBiZSByZXN0b3JlZCB3aGVuIHRo
ZSBkaXYgaXMgaGlkZGVuIGFuZCBzaG93biBhZ2FpbjwvcD4KKzxkaXYgc3R5bGU9ImhlaWdodDox
MDBweDsgd2lkdGg6MTAwcHg7IG92ZXJmbG93OiBzY3JvbGw7IGRpc3BsYXk6IGJsb2NrOyIgaWQ9
Im1haW4iPgorPHByZSBpZD0icHJlSWQiPgorbGluZSAxIHdpdGggc29tZSB0ZXh0IHdoaWNoIGhh
cyB0byBiZSBzY3JvbGwgdG8gYmUgdmlzaWJsZQorbGluZSAyIHdpdGggc29tZSB0ZXh0IHdoaWNo
IGhhcyB0byBiZSBzY3JvbGwgdG8gYmUgdmlzaWJsZQorbGluZSAzIHdpdGggc29tZSB0ZXh0IHdo
aWNoIGhhcyB0byBiZSBzY3JvbGwgdG8gYmUgdmlzaWJsZQorbGluZSA0IHdpdGggc29tZSB0ZXh0
IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwgdG8gYmUgdmlzaWJsZQorbGluZSA1IHdpdGggc29tZSB0
ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwgdG8gYmUgdmlzaWJsZQorbGluZSA2IHdpdGggc29t
ZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwgdG8gYmUgdmlzaWJsZQorbGluZSA3IHdpdGgg
c29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwgdG8gYmUgdmlzaWJsZQorbGluZSA4IHdp
dGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwgdG8gYmUgdmlzaWJsZQorbGluZSA5
IHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwgdG8gYmUgdmlzaWJsZQorbGlu
ZSAxMCB3aXRoIHNvbWUgdGV4dCB3aGljaCBoYXMgdG8gYmUgc2Nyb2xsIHRvIGJlIHZpc2libGUK
K2xpbmUgMTEgd2l0aCBzb21lIHRleHQgd2hpY2ggaGFzIHRvIGJlIHNjcm9sbCB0byBiZSB2aXNp
YmxlCitsaW5lIDEyIHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwgdG8gYmUg
dmlzaWJsZQorPC9wcmU+Cis8L2Rpdj4KKworPGRpdiBpZD0ic2Vjb25kIj4KK0RpdiB3aWxsIGJl
IG1vdmVkIGhlcmUuCis8L2Rpdj4KKworPGlmcmFtZSBpZD0iZnJhbWUiIHN0eWxlPSJkaXNwbGF5
OmJsb2NrOyB3aWR0aDo0MDBweDsgaGVpZ2h0OiA0MDBweDsiPjwvaWZyYW1lPgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgibWFpbiIpOworZGVidWcoIlNjcm9sbGluZyB0byAwLCA3NSIpOworZS5zY3JvbGxUb3AgPSA3
NTsKK2Uuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIG5v
bmUgbm93Iik7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMCcpOworZS5zdHlsZS5kaXNwbGF5
ID0gJ2Jsb2NrJzsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluIik7CitzaG91
bGRCZSgnZS5zY3JvbGxUb3AnLCAnNzUnKTsKKworZGVidWcoIiIpOworZGVidWcoIlRlc3QgdGhh
dCBhZnRlciBjaGFuZ2luZyB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIGRpZmZlcmVudCB2YWx1ZXMg
dGhlIHNjcm9sbCBwb3NpdGlvbiBpcyByZXN0b3JlZCIpOworZGVidWcoIlNjcm9sbGluZyB0byA1
MCwgNTAiKTsKK2Uuc2Nyb2xsVG9wID0gNTA7CitlLnNjcm9sbExlZnQgPSA1MDsKK2RlYnVnKCJE
aXYncyBkaXNwbGF5IGlzIG5vbmUgbm93Iik7CitlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7Citz
aG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMCcpOworc2hvdWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICcw
Jyk7CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBibG9jayBhZ2FpbiIpOworZS5zdHlsZS5kaXNw
bGF5ID0gJ2Jsb2NrJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICc1MCcpOworc2hvdWxkQmUo
J2Uuc2Nyb2xsTGVmdCcsICc1MCcpOworCitkZWJ1ZygiU2Nyb2xsaW5nIHRvIDMwLCAxMCIpOwor
ZS5zY3JvbGxUb3AgPSAxMDsKK2Uuc2Nyb2xsTGVmdCA9IDMwOworZGVidWcoIkRpdidzIGRpc3Bs
YXkgaXMgbm9uZSBub3ciKTsKK2Uuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKK3Nob3VsZEJlKCdl
LnNjcm9sbFRvcCcsICcwJyk7CitzaG91bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzAnKTsKK2RlYnVn
KCJEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluIik7CitlLnN0eWxlLmRpc3BsYXkgPSAnYmxv
Y2snOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzEwJyk7CitzaG91bGRCZSgnZS5zY3JvbGxM
ZWZ0JywgJzMwJyk7CisKK2RlYnVnKCJTY3JvbGxpbmcgdG8gMTAwLCAwIik7CitlLnNjcm9sbFRv
cCA9IDA7CitlLnNjcm9sbExlZnQgPSAxMDA7CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBub25l
IG5vdyIpOworZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9w
JywgJzAnKTsKK3Nob3VsZEJlKCdlLnNjcm9sbExlZnQnLCAnMCcpOworZGVidWcoIkRpdidzIGRp
c3BsYXkgaXMgYmxvY2sgYWdhaW4iKTsKK2Uuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CitzaG91
bGRCZSgnZS5zY3JvbGxUb3AnLCAnMCcpOworc2hvdWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICcxMDAn
KTsKKworZGVidWcoIiIpOworZGVidWcoIlRlc3RpbmcgdGhhdCBzY3JvbGwgcG9zaXRpb24gaXMg
cmVzdG9yZWQgd2hlbiBoZWlnaHQgYW5kIHdpZHRoIG9mIHNjcm9sbGluZyBhcmVhIGlzIGNoYW5n
ZWQiKTsKK2Uuc3R5bGUuaGVpZ2h0ID0gZS5zY3JvbGxIZWlnaHQgKyA1MDsKK2Uuc3R5bGUud2lk
dGggPSBlLnNjcm9sbFdpZHRoICsgNTA7CitkZWJ1ZygiU2Nyb2xsaW5nIHRvIDM1LCA3NSIpOwor
ZS5zY3JvbGxUb3AgPSA3NTsKK2Uuc2Nyb2xsTGVmdCA9IDM1OworZGVidWcoIkRpdidzIGRpc3Bs
YXkgaXMgbm9uZSBub3ciKTsKK2Uuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKK3Nob3VsZEJlKCdl
LnNjcm9sbFRvcCcsICcwJyk7CitzaG91bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzAnKTsKK2RlYnVn
KCJEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluIik7CitlLnN0eWxlLmRpc3BsYXkgPSAnYmxv
Y2snOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzc1Jyk7CitzaG91bGRCZSgnZS5zY3JvbGxM
ZWZ0JywgJzM1Jyk7CitkZWJ1ZygiQWRkaW5nIHNvbWUgbW9yZSB0ZXh0IHRvIGRpdiIpOworZS5p
bm5lckhUTUwgKz0gImxpbmUgMTMgPGJyLz4gbGluZSAxNCA8YnIvPiBsaW5lIDE1IDxici8+IGxp
bmUgMTYgPGJyLz4gbGluZSAxNyA8YnIvPiI7CitkZWJ1ZygiU2Nyb2xsaW5nIHRvIDEyNSwgMTAw
Iik7CitlLnNjcm9sbFRvcCA9IDEwMDsKK2Uuc2Nyb2xsTGVmdCA9IDEyNTsKK2RlYnVnKCJEaXYn
cyBkaXNwbGF5IGlzIG5vbmUgbm93Iik7CitlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CitzaG91
bGRCZSgnZS5zY3JvbGxUb3AnLCAnMCcpOworc2hvdWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICcwJyk7
CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBibG9jayBhZ2FpbiIpOworZS5zdHlsZS5kaXNwbGF5
ID0gJ2Jsb2NrJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcxMDAnKTsKK3Nob3VsZEJlKCdl
LnNjcm9sbExlZnQnLCAnMTI1Jyk7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IHRoYXQgc2Ny
b2xsIHBvc2l0aW9uIGlzIHJlc2V0IHdoZW4gdGhlIG5vZGUgaXMgbW92ZWQgdG8gZGlmZmVyZW50
IGxvY2F0aW9uIGluIHRoZSBkb2N1bWVudCIpOworZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwor
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlY29uZCIpLmFwcGVuZENoaWxkKGUpOworZS5zdHls
ZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7CitzaG91
bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzAnKTsKKwordmFyIGRpdkNvbnRlbnQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicHJlSWQiKS5pbm5lckhUTUw7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJU
ZXN0aW5nIHRoYXQgc2Nyb2xsIHBvc2l0aW9uIGlzIHJlc3RvcmVkIGZvciBSVEwgdGV4dHMiKTsK
K2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcmVJZCIpLmlubmVySFRNTCA9ICLZhdmF2LHYrdio
2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHY
rdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7YqNmL2KfZhdix2K3YqNmL2KfZ
hdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL
2KfYsdit2KjZi9inXAorICAgIFxu2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit
2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wKKyAgICBcbtio2YvYp9mF
2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2Kdc
CisgICAgXG7Yrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3Y
qNmL2KdcCisgICAgXG7ZhdmF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHY
rdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisg
ICAgXG7YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL
2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfYsdit2KjZi9inXAorICAgIFxu2KjZi9in2YXYsdit
2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHY
rdio2YvYp1wKKyAgICBcbtio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvY
p9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7ZhdmF2LHYrdio2YvYp9mF2LHYrdio2YvY
p9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio
2YvYp9ix2K3YqNmL2KdcCisgICAgXG7YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix
2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfYsdit2KjZi9inXAor
ICAgIFxu2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZ
i9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wKKyAgICBcbtio2YvYp9mF2LHYrdio2YvYp9mF2LHY
rdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix
2K3YqNmL2KdcCisgICAgXG7YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL
2KfYsdit2KjZi9inXAorICAgIFxu2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit
2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wKKyAgICBcbtio2YvYp9mF
2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvY
p9ix2K3YqNmL2KciOworCitlLmRpcj0icnRsIjsKKworZGVidWcoIlNjcm9sbGluZyB0byA1MCwg
MTUwIik7CitlLnNjcm9sbFRvcCA9IDE1MDsKK2Uuc2Nyb2xsTGVmdCA9IDUwOworZGVidWcoIkRp
didzIGRpc3BsYXkgaXMgbm9uZSBub3ciKTsKK2Uuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKK3No
b3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7CitzaG91bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzAn
KTsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluIik7CitlLnN0eWxlLmRpc3Bs
YXkgPSAnYmxvY2snOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzE1MCcpOworc2hvdWxkQmUo
J2Uuc2Nyb2xsTGVmdCcsICc1MCcpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCBpZnJhbWUg
c2Nyb2xsaW5nIik7Cit2YXIgZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZnJhbWUn
KTsKK3ZhciBkb2MgPSBmcmFtZS5jb250ZW50RG9jdW1lbnQub3BlbigpOworZG9jLndyaXRlKCI8
ZGl2IHN0eWxlPSd3aWR0aDoxMDBweDsgaGVpZ2h0OjEwMHB4OyBiYWNrZ3JvdW5kOnllbGxvdzsn
PjwvZGl2PiIpOworZG9jLmNsb3NlKCk7CitmcmFtZS5jb250ZW50RG9jdW1lbnQuYm9keS5zdHls
ZS53aWR0aCA9ICIyMDAwcHgiOworZnJhbWUuY29udGVudERvY3VtZW50LmJvZHkuc3R5bGUuaGVp
Z2h0ID0gIjIwMDBweCI7CisKK2RlYnVnKCJTY3JvbGxpbmcgSWZyYW1lIHRvICg1MCwgNzUpIik7
CitmcmFtZS5jb250ZW50V2luZG93LnNjcm9sbFRvKDUwLCA3NSk7CisKK2ZyYW1lLnN0eWxlLmRp
c3BsYXkgPSAnbm9uZSc7CitkZWJ1ZygiSWZyYW1lJ3MgZGlzcGxheSBpcyBub25lIG5vdyIpOwor
CitmcmFtZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK2RlYnVnKCJJZnJhbWUncyBkaXNwbGF5
IGlzIGJsb2NrIGFnYWluIik7CisKK3Nob3VsZEJlKCdmcmFtZS5jb250ZW50V2luZG93LnBhZ2VZ
T2Zmc2V0JywgJzc1Jyk7CitzaG91bGRCZSgnZnJhbWUuY29udGVudFdpbmRvdy5wYWdlWE9mZnNl
dCcsICc1MCcpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdGluZyBzY3JvbGwgb2Zmc2V0IGdl
dHRpbmcgcmVzZXQgd2hlbiBtb3ZlZCB0byBvdGhlciBkb2N1bWVudCIpOworZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInByZUlkIikuaW5uZXJIVE1MID0gZGl2Q29udGVudDsKK2UuZGlyPSJsdHIi
OworZGVidWcoIlNjcm9sbGluZyBkaXYgdG8gKDUwLCA3NSkiKTsKK2Uuc2Nyb2xsVG9wID0gNzU7
CitlLnNjcm9sbExlZnQgPSA1MDsKK2Uuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKK2ZyYW1lLmNv
bnRlbnREb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpOworZS5zdHlsZS5kaXNwbGF5ID0gJ2Js
b2NrJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7CitzaG91bGRCZSgnZS5zY3JvbGxM
ZWZ0JywgJzAnKTsKKworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>134794</attachid>
            <date>2012-03-30 05:55:17 -0700</date>
            <delta_ts>2012-03-30 05:55:17 -0700</delta_ts>
            <desc>Test moving of element</desc>
            <filename>scroll_div.html</filename>
            <type>text/html</type>
            <size>1537</size>
            <attacher name="Rakesh">rakeshchaitan</attacher>
            
              <data encoding="base64">CjxodG1sPgoKPGhlYWQ+Cgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgogICAgZnVu
Y3Rpb24gaGlkZVNob3coKSB7CiAgICAgICAgdmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgibWFpbiIpOwogICAgICAgIGUuc3R5bGUuZGlzcGxheSA9IChlLnN0eWxlLmRpc3BsYXkgPT0g
J2Jsb2NrJykgPyAnbm9uZScgOiAnYmxvY2snOwogICAgfQoKICAgIGZ1bmN0aW9uIG1vdmVJbkRv
YygpIHsKICAgICAgICB2YXIgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluIik7CgkJ
ZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwoJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWNv
bmQiKS5hcHBlbmRDaGlsZChlKTsKCQllLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwogICAgfQoK
ICAgIGZ1bmN0aW9uIG1vdmVUb0lmcmFtZSgpIHsKCQl2YXIgZSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJtYWluIik7CgkJdmFyIGZyYW1lID0gd2luZG93LmZyYW1lc1swXTsKCQl2YXIgZG9j
ID0gZnJhbWUuZG9jdW1lbnQub3BlbigpOwoJCWRvYy53cml0ZSgiPGRpdiBzdHlsZT0nd2lkdGg6
MTAwcHg7IGhlaWdodDoxMDBweDsgYmFja2dyb3VuZDp5ZWxsb3c7Jz48L2Rpdj4iKTsKCQlkb2Mu
Y2xvc2UoKTsKCQlmcmFtZS5kb2N1bWVudC5ib2R5LnN0eWxlLndpZHRoID0gIjIwMDBweCI7CgkJ
ZnJhbWUuZG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHQgPSAiMjAwMHB4IjsKCQlmcmFtZS5kb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpOwoJCWUuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7Cgl9
Cgo8L3NjcmlwdD4KCjwvaGVhZD4KCjxib2R5PgoKPGlucHV0IHR5cGU9ImJ1dHRvbiIgb25jbGlj
az0iaGlkZVNob3coKTsiIHZhbHVlPSJISURFL1NIT1ciLz4KPGlucHV0IHR5cGU9ImJ1dHRvbiIg
b25jbGljaz0ibW92ZUluRG9jKCk7IiB2YWx1ZT0ibW92ZSBpbiBkb2N1bWVudCIvPgo8aW5wdXQg
dHlwZT0iYnV0dG9uIiBvbmNsaWNrPSJtb3ZlVG9JZnJhbWUoKTsiIHZhbHVlPSJtb3ZlIHRvIG90
aGVyIGRvY3VtZW50Ii8+CjxkaXYgc3R5bGU9ImhlaWdodDoxMDBweDsgb3ZlcmZsb3c6IHNjcm9s
bDsgZGlzcGxheTogYmxvY2s7IiBpZD0ibWFpbiI+CgogICAgICAgIGxpbmUgMSA8YnIvPgoKICAg
ICAgICBsaW5lIDIgPGJyLz4KCiAgICAgICAgbGluZSAzIDxici8+CgogICAgICAgIGxpbmUgNCA8
YnIvPgoKICAgICAgICBsaW5lIDUgPGJyLz4KCiAgICAgICAgbGluZSA2IDxici8+CgogICAgICAg
IGxpbmUgNyA8YnIvPgoKICAgICAgICBsaW5lIDggPGJyLz4KCiAgICAgICAgbGluZSA5IDxici8+
CgogICAgICAgIGxpbmUgMTAgPGJyLz4KCiAgICAgICAgbGluZSAxMSA8YnIvPgoKICAgICAgICBs
aW5lIDEyIDxici8+Cgo8L2Rpdj4KPGRpdiBpZD0ic2Vjb25kIj4KRGl2IHdpbGwgYmUgbW92ZWQg
aGVyZS4KPC9kaXY+Cgo8aWZyYW1lIGlkPSJmcmFtZSIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7IHdp
ZHRoOjQwMHB4OyBoZWlnaHQ6IDQwMHB4OyI+PC9pZnJhbWU+CjwvYm9keT4KCjwvaHRtbD4KCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135127</attachid>
            <date>2012-04-02 10:28:52 -0700</date>
            <delta_ts>2012-04-02 12:38:14 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-72852-20120402102851.patch</filename>
            <type>text/plain</type>
            <size>15833</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyOTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjU1MjYyYTkyNmQ4NmZk
MGQxZDYyODEzZGQ0MmM2MmEzNjQ1YjM0Mi4uMGQ3NzBmNWJlYzc1MDVlNGI3ZTQ5NjE2ZmJjMjRi
YTU5NjM0ZTU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA0LTAyICBSYWtl
c2ggS04gIDxyYWtlc2gua25AbW90b3JvbGEuY29tPgorCisgICAgICAgIFNjcm9sbCBwb3NpdGlv
biBpcyBsb3N0IGFmdGVyIGhpZGUvc2hvdyBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjg1MgorCisgICAgICAgIE1haW50YWluIHRoZSBz
Y3JvbGwgcG9zaXRpb24gb2YgYW4gb3ZlcmZsb3dpbmcgZWxlbWVudCBpbiB0aGUgRWxlbWVudFJh
cmVEYXRhIHdoZW4gdGhlIHNjcm9sbGFibGUgCisgICAgICAgIFJlbmRlckxheWVyIGlzIGRlc3Ry
b3llZCwgd2hpY2ggY2FuIGJlIHVzZWQgdG8gcmVzdG9yZSB0aGUgc2Nyb2xsIHBvc2l0aW9uIGlm
IHRoZSBzYW1lIGVsZW1lbnQgZ2V0cworICAgICAgICBiYWNrIGEgUmVuZGVyTGF5ZXIuCisKKyAg
ICAgICAgV2ViS2l0IGJlaGF2aW91ciB3aWxsIGJlIHRoZSBzYW1lIGFzIEZpcmVmb3ggYW5kIElF
LiBJdCBkaWZmZXJzIGZyb20gT3BlcmEgYXMgaXQgZG9lcyBub3QgcmVzZXQgdGhlCisgICAgICAg
IHNjcm9sbCBwb3NpdGlvbiB3aGVuIGFuIGVsZW1lbnQgaXMgbW92ZWQgdG8gYW5vdGhlciBsb2Nh
dGlvbiBpbiB0aGUgc2FtZSBkb2N1bWVudC4gSG93ZXZlciBPcGVyYSByZXNldHMKKyAgICAgICAg
dGhlIHNjcm9sbCBwb3NpdGlvbiBmb3IgZWxlbWVudHMgbW92ZWQgdG8gYW5vdGhlciBkb2N1bWVu
dCwgd2hpY2ggbWF0Y2hlcyBvdGhlciBicm93c2Vycy4KKworICAgICAgICBSZXZpZXdlZCBieSBK
dWxpZW4gQ2hhZmZyYWl4LgorCisgICAgICAgIFRlc3Q6IGZhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRp
di1oaWRlLXNob3cuaHRtbAorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudDo6cmVtb3ZlZEZyb21Eb2N1bWVudCk6CisgICAgICAgIFJlc2V0IHRo
ZSBzYXZlZCBzY3JvbGwgb2Zmc2V0IGlmIHRoZSBub2RlIGlzIG1vdmVkIHRvIGFub3RoZXIgbG9j
YXRpb24gaW4gdGhlIHNhbWUgZG9jdW1lbnQgb3IgYW5vdGhlciBvbmUuCisKKyAgICAgICAgKFdl
YkNvcmU6OkVsZW1lbnQ6OnNhdmVkTGF5ZXJTY3JvbGxPZmZzZXQpOgorICAgICAgICAoV2ViQ29y
ZTo6RWxlbWVudDo6c2V0U2F2ZWRMYXllclNjcm9sbE9mZnNldCk6CisgICAgICAgICogZG9tL0Vs
ZW1lbnQuaDoKKyAgICAgICAgQWRkIGhlbHBlciBmdW5jdGlvbnMgdG8gYWNjZXNzIHRoZSBsYXll
ciBzY3JvbGwgb2Zmc2V0IGZyb20gdGhlIGVsZW1lbnQncyByYXJlIGRhdGEuCisKKyAgICAgICAg
KiBkb20vRWxlbWVudFJhcmVEYXRhLmg6CisgICAgICAgIChFbGVtZW50UmFyZURhdGEpOgorICAg
ICAgICBBZGQgdGhlIHNjcm9sbCBvZmZzZXQgYm9vay1rZWVwaW5nLgorCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpS
ZW5kZXJMYXllcik6CisgICAgICAgIFJlc3RvcmUgdGhlIHNjcm9sbCBvZmZzZXQuCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6flJlbmRlckxheWVyKToKKyAgICAgICAgU3RvcmUgdGhl
IHNjcm9sbCBvZmZzZXQgaWYgZG9jdW1lbnQgaXMgbm90IGJlaW5nIGRlc3Ryb3llZC4KKwogMjAx
Mi0wNC0wMiAgQW1pIEZpc2NobWFuICA8ZmlzY2htYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFN1cHByZXNzIEhUTUxNZWRpYUVsZW1lbnQncyB0ZXh0IHRyYWNrIGNvZGUgd2hlbiAhd2Via2l0
VmlkZW9UcmFja0VuYWJsZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGNhMmE3ZTAyNTM4
ZWVmMDQ3ZmI4ZGY5N2QxMzE4MjY1NWI3MDM3ZTMuLmRhNTcwYmE3MTU5ODU2M2YyYWE5NjIyMzRk
ZmQxMThhYmRjYzQzMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTkwMyw2ICs5MDMsOCBA
QCB2b2lkIEVsZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtZW50KCkKIAogdm9pZCBFbGVtZW50Ojpy
ZW1vdmVkRnJvbURvY3VtZW50KCkKIHsKKyAgICBzZXRTYXZlZExheWVyU2Nyb2xsT2Zmc2V0KElu
dFNpemUoKSk7CisKICAgICBpZiAobV9hdHRyaWJ1dGVEYXRhKSB7CiAgICAgICAgIGlmIChoYXNJ
RCgpKSB7CiAgICAgICAgICAgICBBdHRyaWJ1dGUqIGlkSXRlbSA9IGdldEF0dHJpYnV0ZUl0ZW0o
ZG9jdW1lbnQoKS0+aWRBdHRyaWJ1dGVOYW1lKCkpOwpAQCAtMjA2Niw0ICsyMDY4LDE2IEBAIEhU
TUxDb2xsZWN0aW9uKiBFbGVtZW50OjplbnN1cmVDYWNoZWRIVE1MQ29sbGVjdGlvbihDb2xsZWN0
aW9uVHlwZSB0eXBlKQogICAgIHJldHVybiBlbnN1cmVSYXJlRGF0YSgpLT5lbnN1cmVDYWNoZWRI
VE1MQ29sbGVjdGlvbih0aGlzLCB0eXBlKTsKIH0KIAorSW50U2l6ZSBFbGVtZW50OjpzYXZlZExh
eWVyU2Nyb2xsT2Zmc2V0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gaGFzUmFyZURhdGEoKSA/IHJh
cmVEYXRhKCktPm1fc2F2ZWRMYXllclNjcm9sbE9mZnNldCA6IEludFNpemUoKTsKK30KKwordm9p
ZCBFbGVtZW50OjpzZXRTYXZlZExheWVyU2Nyb2xsT2Zmc2V0KGNvbnN0IEludFNpemUmIHNpemUp
Cit7CisgICAgaWYgKHNpemUuaXNaZXJvKCkgJiYgIWhhc1JhcmVEYXRhKCkpCisgICAgICAgIHJl
dHVybjsKKyAgICBlbnN1cmVSYXJlRGF0YSgpLT5tX3NhdmVkTGF5ZXJTY3JvbGxPZmZzZXQgPSBz
aXplOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCA2
OWM3ZThkNTNjZjMzOWQ2MmE4N2FhMjU5ZmY2ZTY5ZDk0OGIyODU5Li5iZTI2NTQ3ZDMxOTUxMmI1
M2FlZGZlYjNhZjkwMGMyNGQzZjc0ZmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTQwMiw2ICs0
MDIsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNJRCgpIGNvbnN0OwogICAgIGJvb2wgaGFzQ2xh
c3MoKSBjb25zdDsKIAorICAgIEludFNpemUgc2F2ZWRMYXllclNjcm9sbE9mZnNldCgpIGNvbnN0
OworICAgIHZvaWQgc2V0U2F2ZWRMYXllclNjcm9sbE9mZnNldChjb25zdCBJbnRTaXplJik7CisK
IHByb3RlY3RlZDoKICAgICBFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50KiBkb2N1bWVudCwgQ29uc3RydWN0aW9uVHlwZSB0eXBlKQogICAgICAgICA6IENvbnRh
aW5lck5vZGUoZG9jdW1lbnQsIHR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudFJhcmVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgK
aW5kZXggZmE1MjVkMzdjMTU4MmZkNGYyM2NkZDdiOWM0NTM3MTMwMGM0ODFlNi4uMzI1NDc0YmUw
YTU5Y2JlMzdiOGExNzZmNWUzZTVmMDZlNGQwZDdhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
UmFyZURhdGEuaApAQCAtNzQsNiArNzQsOCBAQCBwdWJsaWM6CiAKICAgICBib29sIG1fc3R5bGVB
ZmZlY3RlZEJ5RW1wdHk7CiAKKyAgICBJbnRTaXplIG1fc2F2ZWRMYXllclNjcm9sbE9mZnNldDsK
KwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBib29sIG1fY29udGFpbnNGdWxsU2Ny
ZWVuRWxlbWVudDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5j
cHAKaW5kZXggMTYxN2MwNGYyYTFkOWE3ZmJkNGU5NTgyNmU2MmVlMGE2OTc0ODg0MS4uYzU1NzEz
NWM4MjBmMGJkMmE2MzUzYjRkMjE4YmE4MTEyNGQyYzRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0xOTQsNiArMTk0LDE0IEBAIFJlbmRlckxheWVyOjpS
ZW5kZXJMYXllcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVuZGVyZXIpCiAgICAgICAgIG1fdmlz
aWJsZUNvbnRlbnRTdGF0dXNEaXJ0eSA9IGZhbHNlOwogICAgICAgICBtX2hhc1Zpc2libGVDb250
ZW50ID0gcmVuZGVyZXItPnN0eWxlKCktPnZpc2liaWxpdHkoKSA9PSBWSVNJQkxFOwogICAgIH0K
KworICAgIE5vZGUqIG5vZGUgPSByZW5kZXJlci0+bm9kZSgpOworICAgIGlmIChub2RlICYmIG5v
ZGUtPmlzRWxlbWVudE5vZGUoKSkgeworICAgICAgICAvLyBXZSBzYXZlIGFuZCByZXN0b3JlIG9u
bHkgdGhlIHNjcm9sbE9mZnNldCBhcyB0aGUgb3RoZXIgc2Nyb2xsIHZhbHVlcyBhcmUgcmVjYWxj
dWxhdGVkLgorICAgICAgICBFbGVtZW50KiBlbGVtZW50ID0gdG9FbGVtZW50KG5vZGUpOworICAg
ICAgICBtX3Njcm9sbE9mZnNldCA9IGVsZW1lbnQtPnNhdmVkTGF5ZXJTY3JvbGxPZmZzZXQoKTsK
KyAgICAgICAgZWxlbWVudC0+c2V0U2F2ZWRMYXllclNjcm9sbE9mZnNldChJbnRTaXplKCkpOwor
ICAgIH0KIH0KIAogUmVuZGVyTGF5ZXI6On5SZW5kZXJMYXllcigpCkBAIC0yMDgsNiArMjE2LDEy
IEBAIFJlbmRlckxheWVyOjp+UmVuZGVyTGF5ZXIoKQogICAgICAgICAgICAgZnJhbWVWaWV3LT5y
ZW1vdmVTY3JvbGxhYmxlQXJlYSh0aGlzKTsKICAgICB9CiAKKyAgICBpZiAoIW1fcmVuZGVyZXIt
PmRvY3VtZW50QmVpbmdEZXN0cm95ZWQoKSkgeworICAgICAgICBOb2RlKiBub2RlID0gbV9yZW5k
ZXJlci0+bm9kZSgpOworICAgICAgICBpZiAobm9kZSAmJiBub2RlLT5pc0VsZW1lbnROb2RlKCkp
CisgICAgICAgICAgICB0b0VsZW1lbnQobm9kZSktPnNldFNhdmVkTGF5ZXJTY3JvbGxPZmZzZXQo
bV9zY3JvbGxPZmZzZXQpOworICAgIH0KKwogICAgIGRlc3Ryb3lTY3JvbGxiYXIoSG9yaXpvbnRh
bFNjcm9sbGJhcik7CiAgICAgZGVzdHJveVNjcm9sbGJhcihWZXJ0aWNhbFNjcm9sbGJhcik7CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3OTBjMWQxNjE1ZGY2ZmFiNTMxZDg2N2FjN2QxMzk5NWFmZjcyN2Q2Li4yYmQ1ZGI4
Yjk4OTg1MDZjOGZkMjA0OTc3YjRmZGFiZjIwZGZlZmYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTItMDQtMDIgIFJha2VzaCBLTiAgPHJha2VzaC5rbkBtb3Rvcm9sYS5jb20+CisKKyAgICAg
ICAgU2Nyb2xsIHBvc2l0aW9uIGlzIGxvc3QgYWZ0ZXIgaGlkZS9zaG93IGVsZW1lbnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyODUyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgSnVsaWVuIENoYWZmcmFpeC4KKworICAgICAgICAqIGZhc3Qvb3ZlcmZs
b3cvc2Nyb2xsLWRpdi1oaWRlLXNob3ctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L292ZXJmbG93L3Njcm9sbC1kaXYtaGlkZS1zaG93Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTA0
LTAyICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFJl
bmFtaW5nIHBhcmFtZXRlcnMgZm9yIHBvc2l0aW9uaW5nIGEgdHJhY2sgY3VlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9sbC1kaXYtaGlkZS1zaG93LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNob3ctZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmNDg5NDViZWMxYjU2MmI4NWRmNmQ5YmNjMDU1ZGY4NWQy
OTc2MjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9s
bC1kaXYtaGlkZS1zaG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDc4IEBACitTY3JvbGxlZCBw
b3NpdGlvbiBzaG91bGQgYmUgcmVzdG9yZWQgd2hlbiB0aGUgZGl2IGlzIGhpZGRlbiBhbmQgc2hv
d24gYWdhaW4KKworRGl2IHdpbGwgYmUgbW92ZWQgaGVyZS4KKworU2Nyb2xsaW5nIHRvIDAsIDc1
CitEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93CitQQVNTIGUuc2Nyb2xsVG9wIGlzIDAKK0Rpdidz
IGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4KK1BBU1MgZS5zY3JvbGxUb3AgaXMgNzUKKworVGVzdCB0
aGF0IGFmdGVyIGNoYW5naW5nIHRoZSBzY3JvbGwgcG9zaXRpb24gdG8gZGlmZmVyZW50IHZhbHVl
cyB0aGUgc2Nyb2xsIHBvc2l0aW9uIGlzIHJlc3RvcmVkCitTY3JvbGxpbmcgdG8gNTAsIDUwCitE
aXYncyBkaXNwbGF5IGlzIG5vbmUgbm93CitQQVNTIGUuc2Nyb2xsVG9wIGlzIDAKK1BBU1MgZS5z
Y3JvbGxMZWZ0IGlzIDAKK0RpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4KK1BBU1MgZS5zY3Jv
bGxUb3AgaXMgNTAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDUwCitTY3JvbGxpbmcgdG8gMzAsIDEw
CitEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93CitQQVNTIGUuc2Nyb2xsVG9wIGlzIDAKK1BBU1Mg
ZS5zY3JvbGxMZWZ0IGlzIDAKK0RpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4KK1BBU1MgZS5z
Y3JvbGxUb3AgaXMgMTAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDMwCitTY3JvbGxpbmcgdG8gMTAw
LCAwCitEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93CitQQVNTIGUuc2Nyb2xsVG9wIGlzIDAKK1BB
U1MgZS5zY3JvbGxMZWZ0IGlzIDAKK0RpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4KK1BBU1Mg
ZS5zY3JvbGxUb3AgaXMgMAorUEFTUyBlLnNjcm9sbExlZnQgaXMgMTAwCisKK1Rlc3RpbmcgdGhh
dCBzY3JvbGwgcG9zaXRpb24gaXMgcmVzdG9yZWQgd2hlbiBoZWlnaHQgYW5kIHdpZHRoIG9mIHNj
cm9sbGluZyBhcmVhIGlzIGNoYW5nZWQKK1Njcm9sbGluZyB0byAzNSwgNzUKK0RpdidzIGRpc3Bs
YXkgaXMgbm9uZSBub3cKK1BBU1MgZS5zY3JvbGxUb3AgaXMgMAorUEFTUyBlLnNjcm9sbExlZnQg
aXMgMAorRGl2J3MgZGlzcGxheSBpcyBibG9jayBhZ2FpbgorUEFTUyBlLnNjcm9sbFRvcCBpcyA3
NQorUEFTUyBlLnNjcm9sbExlZnQgaXMgMzUKK0FkZGluZyBzb21lIG1vcmUgdGV4dCB0byBkaXYK
K1Njcm9sbGluZyB0byAxMjUsIDEwMAorRGl2J3MgZGlzcGxheSBpcyBub25lIG5vdworUEFTUyBl
LnNjcm9sbFRvcCBpcyAwCitQQVNTIGUuc2Nyb2xsTGVmdCBpcyAwCitEaXYncyBkaXNwbGF5IGlz
IGJsb2NrIGFnYWluCitQQVNTIGUuc2Nyb2xsVG9wIGlzIDEwMAorUEFTUyBlLnNjcm9sbExlZnQg
aXMgMTI1CisKK1Rlc3QgdGhhdCBzY3JvbGwgcG9zaXRpb24gaXMgcmVzZXQgd2hlbiB0aGUgbm9k
ZSBpcyBtb3ZlZCB0byBkaWZmZXJlbnQgbG9jYXRpb24gaW4gdGhlIGRvY3VtZW50CitQQVNTIGUu
c2Nyb2xsVG9wIGlzIDAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDAKKworVGVzdGluZyB0aGF0IHNj
cm9sbCBwb3NpdGlvbiBpcyByZXN0b3JlZCBmb3IgUlRMIHRleHRzCitTY3JvbGxpbmcgdG8gNTAs
IDE1MAorRGl2J3MgZGlzcGxheSBpcyBub25lIG5vdworUEFTUyBlLnNjcm9sbFRvcCBpcyAwCitQ
QVNTIGUuc2Nyb2xsTGVmdCBpcyAwCitEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluCitQQVNT
IGUuc2Nyb2xsVG9wIGlzIDE1MAorUEFTUyBlLnNjcm9sbExlZnQgaXMgNTAKKworVGVzdCBpZnJh
bWUgc2Nyb2xsaW5nCitTY3JvbGxpbmcgSWZyYW1lIHRvICg1MCwgNzUpCitJZnJhbWUncyBkaXNw
bGF5IGlzIG5vbmUgbm93CitJZnJhbWUncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluCitQQVNTIGZy
YW1lLmNvbnRlbnRXaW5kb3cucGFnZVlPZmZzZXQgaXMgNzUKK1BBU1MgZnJhbWUuY29udGVudFdp
bmRvdy5wYWdlWE9mZnNldCBpcyA1MAorCitUZXN0aW5nIHNjcm9sbCBvZmZzZXQgZ2V0dGluZyBy
ZXNldCB3aGVuIG1vdmVkIHRvIG90aGVyIGRvY3VtZW50CitTY3JvbGxpbmcgZGl2IHRvICg1MCwg
NzUpCitQQVNTIGUuc2Nyb2xsVG9wIGlzIDAKK1BBU1MgZS5zY3JvbGxMZWZ0IGlzIDAKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9sbC1kaXYtaGlkZS1zaG93Lmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L292ZXJmbG93L3Njcm9sbC1kaXYtaGlkZS1zaG93Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNTRkNmE2NGFmMjk5NDRjMjdiNGM3MzA0Yjg2MWUyYmJjM2YzZGE5YgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cvc2Nyb2xsLWRpdi1oaWRlLXNob3cu
aHRtbApAQCAtMCwwICsxLDE5MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlNjcm9sbGVkIHBvc2l0
aW9uIHNob3VsZCBiZSByZXN0b3JlZCB3aGVuIHRoZSBkaXYgaXMgaGlkZGVuIGFuZCBzaG93biBh
Z2FpbjwvcD4KKzxkaXYgc3R5bGU9ImhlaWdodDoxMDBweDsgd2lkdGg6MTAwcHg7IG92ZXJmbG93
OiBzY3JvbGw7IGRpc3BsYXk6IGJsb2NrOyIgaWQ9Im1haW4iPgorPHByZSBpZD0icHJlSWQiPgor
bGluZSAxIHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwgdG8gYmUgdmlzaWJs
ZQorbGluZSAyIHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwgdG8gYmUgdmlz
aWJsZQorbGluZSAzIHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwgdG8gYmUg
dmlzaWJsZQorbGluZSA0IHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwgdG8g
YmUgdmlzaWJsZQorbGluZSA1IHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwg
dG8gYmUgdmlzaWJsZQorbGluZSA2IHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBzY3Jv
bGwgdG8gYmUgdmlzaWJsZQorbGluZSA3IHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBiZSBz
Y3JvbGwgdG8gYmUgdmlzaWJsZQorbGluZSA4IHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0byBi
ZSBzY3JvbGwgdG8gYmUgdmlzaWJsZQorbGluZSA5IHdpdGggc29tZSB0ZXh0IHdoaWNoIGhhcyB0
byBiZSBzY3JvbGwgdG8gYmUgdmlzaWJsZQorbGluZSAxMCB3aXRoIHNvbWUgdGV4dCB3aGljaCBo
YXMgdG8gYmUgc2Nyb2xsIHRvIGJlIHZpc2libGUKK2xpbmUgMTEgd2l0aCBzb21lIHRleHQgd2hp
Y2ggaGFzIHRvIGJlIHNjcm9sbCB0byBiZSB2aXNpYmxlCitsaW5lIDEyIHdpdGggc29tZSB0ZXh0
IHdoaWNoIGhhcyB0byBiZSBzY3JvbGwgdG8gYmUgdmlzaWJsZQorPC9wcmU+Cis8L2Rpdj4KKwor
PGRpdiBpZD0ic2Vjb25kIj4KK0RpdiB3aWxsIGJlIG1vdmVkIGhlcmUuCis8L2Rpdj4KKworPGlm
cmFtZSBpZD0iZnJhbWUiIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyB3aWR0aDo0MDBweDsgaGVpZ2h0
OiA0MDBweDsiPjwvaWZyYW1lPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgor
dmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbiIpOworZGVidWcoIlNjcm9sbGlu
ZyB0byAwLCA3NSIpOworZS5zY3JvbGxUb3AgPSA3NTsKK2Uuc3R5bGUuZGlzcGxheSA9ICdub25l
JzsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93Iik7CitzaG91bGRCZSgnZS5zY3Jv
bGxUb3AnLCAnMCcpOworZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK2RlYnVnKCJEaXYncyBk
aXNwbGF5IGlzIGJsb2NrIGFnYWluIik7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnNzUnKTsK
KworZGVidWcoIiIpOworZGVidWcoIlRlc3QgdGhhdCBhZnRlciBjaGFuZ2luZyB0aGUgc2Nyb2xs
IHBvc2l0aW9uIHRvIGRpZmZlcmVudCB2YWx1ZXMgdGhlIHNjcm9sbCBwb3NpdGlvbiBpcyByZXN0
b3JlZCIpOworZGVidWcoIlNjcm9sbGluZyB0byA1MCwgNTAiKTsKK2Uuc2Nyb2xsVG9wID0gNTA7
CitlLnNjcm9sbExlZnQgPSA1MDsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93Iik7
CitlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMCcp
Oworc2hvdWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICcwJyk7CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBp
cyBibG9jayBhZ2FpbiIpOworZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK3Nob3VsZEJlKCdl
LnNjcm9sbFRvcCcsICc1MCcpOworc2hvdWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICc1MCcpOworCitk
ZWJ1ZygiU2Nyb2xsaW5nIHRvIDMwLCAxMCIpOworZS5zY3JvbGxUb3AgPSAxMDsKK2Uuc2Nyb2xs
TGVmdCA9IDMwOworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgbm9uZSBub3ciKTsKK2Uuc3R5bGUu
ZGlzcGxheSA9ICdub25lJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7CitzaG91bGRC
ZSgnZS5zY3JvbGxMZWZ0JywgJzAnKTsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFn
YWluIik7CitlLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9w
JywgJzEwJyk7CitzaG91bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzMwJyk7CisKK2RlYnVnKCJTY3Jv
bGxpbmcgdG8gMTAwLCAwIik7CitlLnNjcm9sbFRvcCA9IDA7CitlLnNjcm9sbExlZnQgPSAxMDA7
CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBub25lIG5vdyIpOworZS5zdHlsZS5kaXNwbGF5ID0g
J25vbmUnOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9wJywgJzAnKTsKK3Nob3VsZEJlKCdlLnNjcm9s
bExlZnQnLCAnMCcpOworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgYmxvY2sgYWdhaW4iKTsKK2Uu
c3R5bGUuZGlzcGxheSA9ICdibG9jayc7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMCcpOwor
c2hvdWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICcxMDAnKTsKKworZGVidWcoIiIpOworZGVidWcoIlRl
c3RpbmcgdGhhdCBzY3JvbGwgcG9zaXRpb24gaXMgcmVzdG9yZWQgd2hlbiBoZWlnaHQgYW5kIHdp
ZHRoIG9mIHNjcm9sbGluZyBhcmVhIGlzIGNoYW5nZWQiKTsKK2Uuc3R5bGUuaGVpZ2h0ID0gZS5z
Y3JvbGxIZWlnaHQgKyA1MDsKK2Uuc3R5bGUud2lkdGggPSBlLnNjcm9sbFdpZHRoICsgNTA7Citk
ZWJ1ZygiU2Nyb2xsaW5nIHRvIDM1LCA3NSIpOworZS5zY3JvbGxUb3AgPSA3NTsKK2Uuc2Nyb2xs
TGVmdCA9IDM1OworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgbm9uZSBub3ciKTsKK2Uuc3R5bGUu
ZGlzcGxheSA9ICdub25lJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7CitzaG91bGRC
ZSgnZS5zY3JvbGxMZWZ0JywgJzAnKTsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIGJsb2NrIGFn
YWluIik7CitlLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOworc2hvdWxkQmUoJ2Uuc2Nyb2xsVG9w
JywgJzc1Jyk7CitzaG91bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzM1Jyk7CitkZWJ1ZygiQWRkaW5n
IHNvbWUgbW9yZSB0ZXh0IHRvIGRpdiIpOworZS5pbm5lckhUTUwgKz0gImxpbmUgMTMgPGJyLz4g
bGluZSAxNCA8YnIvPiBsaW5lIDE1IDxici8+IGxpbmUgMTYgPGJyLz4gbGluZSAxNyA8YnIvPiI7
CitkZWJ1ZygiU2Nyb2xsaW5nIHRvIDEyNSwgMTAwIik7CitlLnNjcm9sbFRvcCA9IDEwMDsKK2Uu
c2Nyb2xsTGVmdCA9IDEyNTsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlzIG5vbmUgbm93Iik7Citl
LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CitzaG91bGRCZSgnZS5zY3JvbGxUb3AnLCAnMCcpOwor
c2hvdWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICcwJyk7CitkZWJ1ZygiRGl2J3MgZGlzcGxheSBpcyBi
bG9jayBhZ2FpbiIpOworZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK3Nob3VsZEJlKCdlLnNj
cm9sbFRvcCcsICcxMDAnKTsKK3Nob3VsZEJlKCdlLnNjcm9sbExlZnQnLCAnMTI1Jyk7CisKK2Rl
YnVnKCIiKTsKK2RlYnVnKCJUZXN0IHRoYXQgc2Nyb2xsIHBvc2l0aW9uIGlzIHJlc2V0IHdoZW4g
dGhlIG5vZGUgaXMgbW92ZWQgdG8gZGlmZmVyZW50IGxvY2F0aW9uIGluIHRoZSBkb2N1bWVudCIp
OworZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNl
Y29uZCIpLmFwcGVuZENoaWxkKGUpOworZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK3Nob3Vs
ZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7CitzaG91bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzAnKTsK
KwordmFyIGRpdkNvbnRlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJlSWQiKS5pbm5l
ckhUTUw7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0aW5nIHRoYXQgc2Nyb2xsIHBvc2l0aW9u
IGlzIHJlc3RvcmVkIGZvciBSVEwgdGV4dHMiKTsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJw
cmVJZCIpLmlubmVySFRNTCA9ICLZhdmF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvY
p9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL
2KdcCisgICAgXG7YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix
2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfYsdit2KjZi9inXAorICAgIFxu2KjZi9in
2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZ
i9in2LHYrdio2YvYp1wKKyAgICBcbtio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHY
rdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7Yrdio2YvYp9mF2LHYrdio2YvY
p9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7ZhdmF2LHYrdio2YvY
p9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio
2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7YqNmL2KfZhdix2K3YqNmL2KfZhdix
2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfY
sdit2KjZi9inXAorICAgIFxu2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZ
i9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wKKyAgICBcbtio2YvYp9mF2LHY
rdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisg
ICAgXG7ZhdmF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF
2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7YqNmL
2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3Y
qNmL2KfZhdix2K3YqNmL2KfYsdit2KjZi9inXAorICAgIFxu2KjZi9in2YXYsdit2KjZi9in2YXY
sdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2LHYrdio2YvYp1wK
KyAgICBcbtio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio
2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KdcCisgICAgXG7YqNmL2KfZhdix
2K3YqNmL2KfZhdix2K3YqNmL2KfZhdix2K3YqNmL2KfYsdit2KjZi9inXAorICAgIFxu2KjZi9in
2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZi9in2YXYsdit2KjZ
i9in2LHYrdio2YvYp1wKKyAgICBcbtio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9mF2LHY
rdio2YvYp9mF2LHYrdio2YvYp9mF2LHYrdio2YvYp9ix2K3YqNmL2KciOworCitlLmRpcj0icnRs
IjsKKworZGVidWcoIlNjcm9sbGluZyB0byA1MCwgMTUwIik7CitlLnNjcm9sbFRvcCA9IDE1MDsK
K2Uuc2Nyb2xsTGVmdCA9IDUwOworZGVidWcoIkRpdidzIGRpc3BsYXkgaXMgbm9uZSBub3ciKTsK
K2Uuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRvcCcsICcwJyk7
CitzaG91bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzAnKTsKK2RlYnVnKCJEaXYncyBkaXNwbGF5IGlz
IGJsb2NrIGFnYWluIik7CitlLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOworc2hvdWxkQmUoJ2Uu
c2Nyb2xsVG9wJywgJzE1MCcpOworc2hvdWxkQmUoJ2Uuc2Nyb2xsTGVmdCcsICc1MCcpOworCitk
ZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCBpZnJhbWUgc2Nyb2xsaW5nIik7Cit2YXIgZnJhbWUgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZnJhbWUnKTsKK3ZhciBkb2MgPSBmcmFtZS5jb250ZW50
RG9jdW1lbnQub3BlbigpOworZG9jLndyaXRlKCI8ZGl2IHN0eWxlPSd3aWR0aDoxMDBweDsgaGVp
Z2h0OjEwMHB4OyBiYWNrZ3JvdW5kOnllbGxvdzsnPjwvZGl2PiIpOworZG9jLmNsb3NlKCk7Citm
cmFtZS5jb250ZW50RG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgiOworZnJhbWUu
Y29udGVudERvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBweCI7CisKK2RlYnVnKCJT
Y3JvbGxpbmcgSWZyYW1lIHRvICg1MCwgNzUpIik7CitmcmFtZS5jb250ZW50V2luZG93LnNjcm9s
bFRvKDUwLCA3NSk7CisKK2ZyYW1lLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CitkZWJ1ZygiSWZy
YW1lJ3MgZGlzcGxheSBpcyBub25lIG5vdyIpOworCitmcmFtZS5zdHlsZS5kaXNwbGF5ID0gJ2Js
b2NrJzsKK2RlYnVnKCJJZnJhbWUncyBkaXNwbGF5IGlzIGJsb2NrIGFnYWluIik7CisKK3Nob3Vs
ZEJlKCdmcmFtZS5jb250ZW50V2luZG93LnBhZ2VZT2Zmc2V0JywgJzc1Jyk7CitzaG91bGRCZSgn
ZnJhbWUuY29udGVudFdpbmRvdy5wYWdlWE9mZnNldCcsICc1MCcpOworCitkZWJ1ZygiIik7Citk
ZWJ1ZygiVGVzdGluZyBzY3JvbGwgb2Zmc2V0IGdldHRpbmcgcmVzZXQgd2hlbiBtb3ZlZCB0byBv
dGhlciBkb2N1bWVudCIpOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByZUlkIikuaW5uZXJI
VE1MID0gZGl2Q29udGVudDsKK2UuZGlyPSJsdHIiOworZGVidWcoIlNjcm9sbGluZyBkaXYgdG8g
KDUwLCA3NSkiKTsKK2Uuc2Nyb2xsVG9wID0gNzU7CitlLnNjcm9sbExlZnQgPSA1MDsKK2Uuc3R5
bGUuZGlzcGxheSA9ICdub25lJzsKK2ZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGUpOworZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKK3Nob3VsZEJlKCdlLnNjcm9sbFRv
cCcsICcwJyk7CitzaG91bGRCZSgnZS5zY3JvbGxMZWZ0JywgJzAnKTsKKworc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>