<?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>106792</bug_id>
          
          <creation_ts>2013-01-14 07:03:01 -0800</creation_ts>
          <short_desc>Text Autosizing: don&apos;t autosize headers with multiple inline links.</short_desc>
          <delta_ts>2013-01-18 12:28:09 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>106929</dependson>
          <blocked>84186</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter>timvolodine</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>johnme</cc>
    
    <cc>kenneth</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>timvolodine</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>806332</commentid>
    <comment_count>0</comment_count>
    <who name="">timvolodine</who>
    <bug_when>2013-01-14 07:03:01 -0800</bug_when>
    <thetext>Don&apos;t autosize headers with multiple inline links</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806335</commentid>
    <comment_count>1</comment_count>
      <attachid>182571</attachid>
    <who name="">timvolodine</who>
    <bug_when>2013-01-14 07:08:30 -0800</bug_when>
    <thetext>Created attachment 182571
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806518</commentid>
    <comment_count>2</comment_count>
      <attachid>182571</attachid>
    <who name="John Mellor">johnme</who>
    <bug_when>2013-01-14 12:23:16 -0800</bug_when>
    <thetext>Comment on attachment 182571
Patch

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

Looks pretty good. Commented on the tree traversal and some nits.

&gt; Source/WebCore/rendering/TextAutosizer.cpp:298
&gt; +bool TextAutosizer::isHeaderWithLinks(const RenderObject* container)

Nit: I&apos;m not sure &quot;header&quot; is a good term for these. They can also occur in the footer for example. How about &quot;isRowOfLinks&quot;?

&gt; Source/WebCore/rendering/TextAutosizer.cpp:302
&gt; +    //  2. it should contain at least 2 inline link elements

Nit: I think s/link/&lt;a&gt;/ would be clearer.

&gt; Source/WebCore/rendering/TextAutosizer.cpp:303
&gt; +    //  3. it should contain only inline or text elements unless they are children

Nit: I don&apos;t think you need &quot;or text elements&quot;, as text implicitly acts inline.

&gt; Source/WebCore/rendering/TextAutosizer.cpp:306
&gt; +    int numLinks = 0;

Nit: WebKit doesn&apos;t like abbreviations. Perhaps &quot;linkCount&quot;?

&gt; Source/WebCore/rendering/TextAutosizer.cpp:319
&gt; +                const String valueWithoutWhitespaces = currentNode-&gt;nodeValue().stripWhiteSpace();

Rather than going via Node, could you not just do toRenderText(current)-&gt;text()-&gt;stripWhiteSpace()-&gt;length() ?

&gt; Source/WebCore/rendering/TextAutosizer.cpp:335
&gt; +            if (!isHeaderWithLinksCandidate(child, stayWithin, linkCount))

I&apos;m hesitant to add another complicated recursive tree traversal to this file.

It seems that what you need is almost exactly the same as nextInPreOrderSkippingDescendantsOfContainers, except that you want to be able to completely skip some arbitrary subtrees of the traversal, which isn&apos;t currently possible/practical. This sounds like something that could be useful elsewhere.

How about you rename nextInPreOrderSkippingDescendantsOfContainers to nextInPreOrder, and add a new SkipMode parameter, which is an enum that can either be SkipDescendantsOfContainers or SkipAllDescendants? Then you&apos;d be able to do something like:

int numLinks = 0;
RenderObject* descendant = nextInPreOrder(SkipDescendantsOfContainers, container, container);
while (descendant) {
    ...
    if (isLink) {
        numLinks++;
        descendant = nextInPreOrder(SkipAllDescendants, descendant, container);
    }
    else
        descendant = nextInPreOrder(SkipDescendantsOfContainers, descendant, container);
}

&gt; LayoutTests/fast/text-autosizing/header-links-autosizing-expected.html:31
&gt; +&lt;/div&gt;

This &lt;/div&gt; doesn&apos;t have a matching &lt;div&gt;. Perhaps you didn&apos;t mean to include the earlier &lt;/div&gt;?

&gt; LayoutTests/fast/text-autosizing/header-links-autosizing.html:31
&gt; +&lt;a href=&quot;&quot;&gt;These&lt;/a&gt;

Test looks good (apart from the &lt;/div&gt;). Could you also include a 2nd test which covers the &lt;li style=&quot;display: inline&quot;&gt;&lt;a&gt;...&lt;/a&gt;&lt;/li&gt; case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808303</commentid>
    <comment_count>3</comment_count>
      <attachid>182571</attachid>
    <who name="">timvolodine</who>
    <bug_when>2013-01-16 05:37:57 -0800</bug_when>
    <thetext>Comment on attachment 182571
Patch

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

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:298
&gt;&gt; +bool TextAutosizer::isHeaderWithLinks(const RenderObject* container)
&gt; 
&gt; Nit: I&apos;m not sure &quot;header&quot; is a good term for these. They can also occur in the footer for example. How about &quot;isRowOfLinks&quot;?

done

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:302
&gt;&gt; +    //  2. it should contain at least 2 inline link elements
&gt; 
&gt; Nit: I think s/link/&lt;a&gt;/ would be clearer.

done

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:303
&gt;&gt; +    //  3. it should contain only inline or text elements unless they are children
&gt; 
&gt; Nit: I don&apos;t think you need &quot;or text elements&quot;, as text implicitly acts inline.

now using RenderText and RenderInline to be more specific

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:306
&gt;&gt; +    int numLinks = 0;
&gt; 
&gt; Nit: WebKit doesn&apos;t like abbreviations. Perhaps &quot;linkCount&quot;?

done

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:319
&gt;&gt; +                const String valueWithoutWhitespaces = currentNode-&gt;nodeValue().stripWhiteSpace();
&gt; 
&gt; Rather than going via Node, could you not just do toRenderText(current)-&gt;text()-&gt;stripWhiteSpace()-&gt;length() ?

done

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:335
&gt;&gt; +            if (!isHeaderWithLinksCandidate(child, stayWithin, linkCount))
&gt; 
&gt; I&apos;m hesitant to add another complicated recursive tree traversal to this file.
&gt; 
&gt; It seems that what you need is almost exactly the same as nextInPreOrderSkippingDescendantsOfContainers, except that you want to be able to completely skip some arbitrary subtrees of the traversal, which isn&apos;t currently possible/practical. This sounds like something that could be useful elsewhere.
&gt; 
&gt; How about you rename nextInPreOrderSkippingDescendantsOfContainers to nextInPreOrder, and add a new SkipMode parameter, which is an enum that can either be SkipDescendantsOfContainers or SkipAllDescendants? Then you&apos;d be able to do something like:
&gt; 
&gt; int numLinks = 0;
&gt; RenderObject* descendant = nextInPreOrder(SkipDescendantsOfContainers, container, container);
&gt; while (descendant) {
&gt;     ...
&gt;     if (isLink) {
&gt;         numLinks++;
&gt;         descendant = nextInPreOrder(SkipAllDescendants, descendant, container);
&gt;     }
&gt;     else
&gt;         descendant = nextInPreOrder(SkipDescendantsOfContainers, descendant, container);
&gt; }

done

&gt;&gt; LayoutTests/fast/text-autosizing/header-links-autosizing-expected.html:31
&gt;&gt; +&lt;/div&gt;
&gt; 
&gt; This &lt;/div&gt; doesn&apos;t have a matching &lt;div&gt;. Perhaps you didn&apos;t mean to include the earlier &lt;/div&gt;?

done

&gt;&gt; LayoutTests/fast/text-autosizing/header-links-autosizing.html:31
&gt;&gt; +&lt;a href=&quot;&quot;&gt;These&lt;/a&gt;
&gt; 
&gt; Test looks good (apart from the &lt;/div&gt;). Could you also include a 2nd test which covers the &lt;li style=&quot;display: inline&quot;&gt;&lt;a&gt;...&lt;/a&gt;&lt;/li&gt; case?

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808307</commentid>
    <comment_count>4</comment_count>
      <attachid>182968</attachid>
    <who name="">timvolodine</who>
    <bug_when>2013-01-16 05:49:01 -0800</bug_when>
    <thetext>Created attachment 182968
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808340</commentid>
    <comment_count>5</comment_count>
      <attachid>182968</attachid>
    <who name="John Mellor">johnme</who>
    <bug_when>2013-01-16 06:41:59 -0800</bug_when>
    <thetext>Comment on attachment 182968
Patch

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

Looks good. Some nits.

&gt; Source/WebCore/rendering/TextAutosizer.cpp:309
&gt; +    // A &quot;header with links&quot; is a container for which holds:

s/header with/row of/

&gt; Source/WebCore/rendering/TextAutosizer.cpp:312
&gt; +    //  3. it should contain only RenderInline or RenderText elements unless they are children

It&apos;s confusing to mention RenderInline here, as you can get elements that are inline but aren&apos;t RenderInline (such as RenderApplet, RenderListMarker, RenderRubyRun and RenderTableCol). I&apos;d recommend doing s/RenderInline or RenderText/inline/ (whether or not you remove isText below).

&gt; Source/WebCore/rendering/TextAutosizer.cpp:321
&gt; +            if (!renderer-&gt;isText() &amp;&amp; !renderer-&gt;isInline())

Do you actually need the |!renderer-&gt;isText() &amp;&amp;| part? Unless I missed something I think isInline should return true for RenderText elements (or at least for RenderText elements with inline parents, which should be all you encounter here anytime it actually is a row of links).

&gt; Source/WebCore/rendering/TextAutosizer.cpp:324
&gt; +        const Node* rendererNode = renderer-&gt;node();

Nit: probably sufficient to call this just |node|, but I don&apos;t really mind...

&gt; Source/WebCore/rendering/TextAutosizer.cpp:329
&gt; +        renderer = (isLink || isAutosizingContainer(renderer)) ?

You can probably simplify this condition using nextInPreOrderSkippingDescendantsOfContainers, e.g.:

renderer = isLink ? renderer-&gt;nextInPreOrderAfterChildren(container) : nextInPreOrderSkippingDescendantsOfContainers(renderer, container);

Or even:

if (node &amp;&amp; node-&gt;isElementNode() &amp;&amp; toElement(node)-&gt;tagQName() == aTag) {
    linkCount++;
    // Skip traversing descendants of the &lt;a&gt;.
    renderer = renderer-&gt;nextInPreOrderAfterChildren(container);
} else
    renderer = nextInPreOrderSkippingDescendantsOfContainers(renderer, container);

&gt; LayoutTests/fast/text-autosizing/header-li-links-autosizing-expected.html:38
&gt; +    whereas the inline links in the header above and the accompanying time stamp

s/and the accompanying time stamp//

&gt; LayoutTests/fast/text-autosizing/header-li-links-autosizing.html:26
&gt; +&lt;div&gt;

Nit: this &lt;div&gt; is redundant (it&apos;s fine for the &lt;ul&gt; to be a direct child of the body).

&gt; LayoutTests/fast/text-autosizing/header-links-autosizing-expected.html:18
&gt; +    &lt;span style=&quot;float: right&quot;&gt;

It&apos;s a little confusing having this timestamp here, because the test ends up testing that the time stamp doesn&apos;t get autosized, but the reason for that happening is different to the reason for the links not getting autosized. Instead, how about something like this:

&lt;div&gt;
    &lt;a&gt;...&lt;/a&gt;
    &amp;gt;
    &lt;a&gt;...&lt;/a&gt;
    &amp;gt;
    &lt;a&gt;...&lt;/a&gt;
    &amp;gt;
    &lt;a&gt;...&lt;/a&gt;
    &amp;gt;
    &lt;a&gt;...&lt;/a&gt;
    &lt;div&gt;
        [A bunch of text that should be autosized].
    &lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
    [Some more text that should be autosized].
&lt;/div&gt;

That way you clearly test the fact that descendant containers are ignored.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808384</commentid>
    <comment_count>6</comment_count>
      <attachid>182968</attachid>
    <who name="">timvolodine</who>
    <bug_when>2013-01-16 08:20:16 -0800</bug_when>
    <thetext>Comment on attachment 182968
Patch

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

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:309
&gt;&gt; +    // A &quot;header with links&quot; is a container for which holds:
&gt; 
&gt; s/header with/row of/

done

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:312
&gt;&gt; +    //  3. it should contain only RenderInline or RenderText elements unless they are children
&gt; 
&gt; It&apos;s confusing to mention RenderInline here, as you can get elements that are inline but aren&apos;t RenderInline (such as RenderApplet, RenderListMarker, RenderRubyRun and RenderTableCol). I&apos;d recommend doing s/RenderInline or RenderText/inline/ (whether or not you remove isText below).

done

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:321
&gt;&gt; +            if (!renderer-&gt;isText() &amp;&amp; !renderer-&gt;isInline())
&gt; 
&gt; Do you actually need the |!renderer-&gt;isText() &amp;&amp;| part? Unless I missed something I think isInline should return true for RenderText elements (or at least for RenderText elements with inline parents, which should be all you encounter here anytime it actually is a row of links).

look like you are right :), removed !isText &amp;&amp; test

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:324
&gt;&gt; +        const Node* rendererNode = renderer-&gt;node();
&gt; 
&gt; Nit: probably sufficient to call this just |node|, but I don&apos;t really mind...

done

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:329
&gt;&gt; +        renderer = (isLink || isAutosizingContainer(renderer)) ?
&gt; 
&gt; You can probably simplify this condition using nextInPreOrderSkippingDescendantsOfContainers, e.g.:
&gt; 
&gt; renderer = isLink ? renderer-&gt;nextInPreOrderAfterChildren(container) : nextInPreOrderSkippingDescendantsOfContainers(renderer, container);
&gt; 
&gt; Or even:
&gt; 
&gt; if (node &amp;&amp; node-&gt;isElementNode() &amp;&amp; toElement(node)-&gt;tagQName() == aTag) {
&gt;     linkCount++;
&gt;     // Skip traversing descendants of the &lt;a&gt;.
&gt;     renderer = renderer-&gt;nextInPreOrderAfterChildren(container);
&gt; } else
&gt;     renderer = nextInPreOrderSkippingDescendantsOfContainers(renderer, container);

done

&gt;&gt; LayoutTests/fast/text-autosizing/header-li-links-autosizing-expected.html:38
&gt;&gt; +    whereas the inline links in the header above and the accompanying time stamp
&gt; 
&gt; s/and the accompanying time stamp//

done

&gt;&gt; LayoutTests/fast/text-autosizing/header-li-links-autosizing.html:26
&gt;&gt; +&lt;div&gt;
&gt; 
&gt; Nit: this &lt;div&gt; is redundant (it&apos;s fine for the &lt;ul&gt; to be a direct child of the body).

done

&gt;&gt; LayoutTests/fast/text-autosizing/header-links-autosizing-expected.html:18
&gt;&gt; +    &lt;span style=&quot;float: right&quot;&gt;
&gt; 
&gt; It&apos;s a little confusing having this timestamp here, because the test ends up testing that the time stamp doesn&apos;t get autosized, but the reason for that happening is different to the reason for the links not getting autosized. Instead, how about something like this:
&gt; 
&gt; &lt;div&gt;
&gt;     &lt;a&gt;...&lt;/a&gt;
&gt;     &amp;gt;
&gt;     &lt;a&gt;...&lt;/a&gt;
&gt;     &amp;gt;
&gt;     &lt;a&gt;...&lt;/a&gt;
&gt;     &amp;gt;
&gt;     &lt;a&gt;...&lt;/a&gt;
&gt;     &amp;gt;
&gt;     &lt;a&gt;...&lt;/a&gt;
&gt;     &lt;div&gt;
&gt;         [A bunch of text that should be autosized].
&gt;     &lt;/div&gt;
&gt; &lt;/div&gt;
&gt; &lt;div&gt;
&gt;     [Some more text that should be autosized].
&gt; &lt;/div&gt;
&gt; 
&gt; That way you clearly test the fact that descendant containers are ignored.

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808386</commentid>
    <comment_count>7</comment_count>
      <attachid>182987</attachid>
    <who name="">timvolodine</who>
    <bug_when>2013-01-16 08:25:54 -0800</bug_when>
    <thetext>Created attachment 182987
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808408</commentid>
    <comment_count>8</comment_count>
      <attachid>182987</attachid>
    <who name="John Mellor">johnme</who>
    <bug_when>2013-01-16 08:56:05 -0800</bug_when>
    <thetext>Comment on attachment 182987
Patch

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

Getting close! Final nits.

&gt; Source/WebCore/ChangeLog:4
&gt; +        This patch includes code for detecting rows of links typically seen

Nit: please put this description after the Reviewed by line, instead of between the bug title and bug url.

&gt; Source/WebCore/rendering/TextAutosizer.cpp:311
&gt; +    //  2. it should contain at least 2 inline &lt;a&gt; elements

s/&lt;a&gt; elements/links/ for consistency with the fact that we&apos;re now explicitly checking for links instead of &lt;a&gt; elements (see below).

&gt; Source/WebCore/rendering/TextAutosizer.cpp:325
&gt; +        if (node &amp;&amp; node-&gt;isElementNode() &amp;&amp; (toElement(node)-&gt;tagQName() == aTag)) {

Now I think about it, technically just looking for &lt;a&gt; elements isn&apos;t quite ideal, as that&apos;ll include anchors (i.e. &lt;a&gt; elements with a name attribute but no href attribute, used purely as targets of a #fragment url). Instead you can use renderer-&gt;style()-&gt;isLink() which is also shorter :)

&gt; Source/WebCore/rendering/TextAutosizer.cpp:327
&gt; +            // Skip traversing descendants of the &lt;a&gt; element

s/&lt;a&gt; element/link./ for consistency with the fact that we&apos;re now explicitly checking for links instead of &lt;a&gt; elements.

&gt; LayoutTests/fast/text-autosizing/header-links-autosizing-expected.html:35
&gt; +    whereas the inline links in the header above should be rendered at their default size.

Would be nice to explain why, e.g. s/should be/should be detected as a row of links and hence/ (similarly in other test). It might also be clearer to move this explanation to the paragraph above, to avoid any confusion and clarify that the paragraph above isn&apos;t expected to be rendered at default size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808481</commentid>
    <comment_count>9</comment_count>
      <attachid>182987</attachid>
    <who name="">timvolodine</who>
    <bug_when>2013-01-16 10:07:03 -0800</bug_when>
    <thetext>Comment on attachment 182987
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:4
&gt;&gt; +        This patch includes code for detecting rows of links typically seen
&gt; 
&gt; Nit: please put this description after the Reviewed by line, instead of between the bug title and bug url.

done

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:311
&gt;&gt; +    //  2. it should contain at least 2 inline &lt;a&gt; elements
&gt; 
&gt; s/&lt;a&gt; elements/links/ for consistency with the fact that we&apos;re now explicitly checking for links instead of &lt;a&gt; elements (see below).

done

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:325
&gt;&gt; +        if (node &amp;&amp; node-&gt;isElementNode() &amp;&amp; (toElement(node)-&gt;tagQName() == aTag)) {
&gt; 
&gt; Now I think about it, technically just looking for &lt;a&gt; elements isn&apos;t quite ideal, as that&apos;ll include anchors (i.e. &lt;a&gt; elements with a name attribute but no href attribute, used purely as targets of a #fragment url). Instead you can use renderer-&gt;style()-&gt;isLink() which is also shorter :)

ack, done.

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:327
&gt;&gt; +            // Skip traversing descendants of the &lt;a&gt; element
&gt; 
&gt; s/&lt;a&gt; element/link./ for consistency with the fact that we&apos;re now explicitly checking for links instead of &lt;a&gt; elements.

done

&gt;&gt; LayoutTests/fast/text-autosizing/header-links-autosizing-expected.html:35
&gt;&gt; +    whereas the inline links in the header above should be rendered at their default size.
&gt; 
&gt; Would be nice to explain why, e.g. s/should be/should be detected as a row of links and hence/ (similarly in other test). It might also be clearer to move this explanation to the paragraph above, to avoid any confusion and clarify that the paragraph above isn&apos;t expected to be rendered at default size.

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808490</commentid>
    <comment_count>10</comment_count>
      <attachid>183004</attachid>
    <who name="">timvolodine</who>
    <bug_when>2013-01-16 10:12:01 -0800</bug_when>
    <thetext>Created attachment 183004
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808493</commentid>
    <comment_count>11</comment_count>
      <attachid>183004</attachid>
    <who name="John Mellor">johnme</who>
    <bug_when>2013-01-16 10:17:53 -0800</bug_when>
    <thetext>Comment on attachment 183004
Patch

Looks good to me. Kenneth/Julien, what do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808554</commentid>
    <comment_count>12</comment_count>
      <attachid>183004</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-01-16 11:18:22 -0800</bug_when>
    <thetext>Comment on attachment 183004
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        This patch includes code for detecting rows of links typically seen
&gt; +        in headers or footers of webpages. Such rows of links should not be
&gt; +        autosized.

But the code would detect them everywhere on the page right

&gt; Source/WebCore/rendering/TextAutosizer.cpp:281
&gt; +    if (containerIsRowOfLinks(container))

IsCollectionOfLinks? what about oclumns of links? why is that not a problem?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810690</commentid>
    <comment_count>13</comment_count>
      <attachid>183004</attachid>
    <who name="">timvolodine</who>
    <bug_when>2013-01-18 09:13:56 -0800</bug_when>
    <thetext>Comment on attachment 183004
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:10
&gt;&gt; +        autosized.
&gt; 
&gt; But the code would detect them everywhere on the page right

yes, and that makes it non-trivial to detect those problematic headers so to speak

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:281
&gt;&gt; +    if (containerIsRowOfLinks(container))
&gt; 
&gt; IsCollectionOfLinks? what about oclumns of links? why is that not a problem?

It&apos;s more specific than just a collection of links. More like a &apos;row&apos; of links, because we generally don&apos;t want to autosize *any* occurrence of collections of links, only the ones that are header-like, because if they are autosized they get wrapped and look really ugly.
I will upload a new patch shortly which will be more restrictive about what to call a row of links (i.e. a &apos;header&apos;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810693</commentid>
    <comment_count>14</comment_count>
      <attachid>183479</attachid>
    <who name="">timvolodine</who>
    <bug_when>2013-01-18 09:15:03 -0800</bug_when>
    <thetext>Created attachment 183479
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810698</commentid>
    <comment_count>15</comment_count>
    <who name="">timvolodine</who>
    <bug_when>2013-01-18 09:16:46 -0800</bug_when>
    <thetext>A new patch with a more specific definition of what to call a row of links (aka header). We ran a global diff and this fixes most of the &apos;broken&apos; websites.
(also added a font-size specific test)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810703</commentid>
    <comment_count>16</comment_count>
      <attachid>183479</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-01-18 09:20:28 -0800</bug_when>
    <thetext>Comment on attachment 183479
Patch

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

&gt; Source/WebCore/rendering/TextAutosizer.cpp:310
&gt; +    //  1. it should not contain non-link text elements longer than 3 characters

it would be nice to know where these heuristics come from, like mention it in the changelog

&gt; Source/WebCore/rendering/TextAutosizer.cpp:312
&gt; +    //  2. it should contain at least 3 inline links, and all the links should
&gt; +    //     have the same specified font size

2. it should consist of min. 3 inline links using the same specified font size.

&gt; Source/WebCore/rendering/TextAutosizer.cpp:335
&gt; +            else
&gt; +                if (matchingFontSize != renderer-&gt;style()-&gt;specifiedFontSize())
&gt; +                    return false;
&gt; +

This else needs braces according to style as it is spanning multiple actual code lines, not logical ones</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810729</commentid>
    <comment_count>17</comment_count>
      <attachid>183479</attachid>
    <who name="">timvolodine</who>
    <bug_when>2013-01-18 09:43:58 -0800</bug_when>
    <thetext>Comment on attachment 183479
Patch

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

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:310
&gt;&gt; +    //  1. it should not contain non-link text elements longer than 3 characters
&gt; 
&gt; it would be nice to know where these heuristics come from, like mention it in the changelog

done

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:312
&gt;&gt; +    //     have the same specified font size
&gt; 
&gt; 2. it should consist of min. 3 inline links using the same specified font size.

I guess this formulation could be confusing as it can be interpreted as: contain minimum 3 links of same font size, i.e. 3 links of size 16px and 1 of size 20px would still be ok.

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:335
&gt;&gt; +
&gt; 
&gt; This else needs braces according to style as it is spanning multiple actual code lines, not logical ones

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810802</commentid>
    <comment_count>18</comment_count>
      <attachid>183500</attachid>
    <who name="">timvolodine</who>
    <bug_when>2013-01-18 10:34:24 -0800</bug_when>
    <thetext>Created attachment 183500
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810814</commentid>
    <comment_count>19</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-01-18 10:43:28 -0800</bug_when>
    <thetext>You cannot add r+ yourself, you need to add the reviewer in the files directly and just request cq</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810826</commentid>
    <comment_count>20</comment_count>
      <attachid>183503</attachid>
    <who name="">timvolodine</who>
    <bug_when>2013-01-18 10:48:45 -0800</bug_when>
    <thetext>Created attachment 183503
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810896</commentid>
    <comment_count>21</comment_count>
      <attachid>183503</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-01-18 11:41:23 -0800</bug_when>
    <thetext>Comment on attachment 183503
Patch

just set r as empty in the future if the reviewer field is filled in</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810928</commentid>
    <comment_count>22</comment_count>
      <attachid>183503</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-18 12:28:04 -0800</bug_when>
    <thetext>Comment on attachment 183503
Patch

Clearing flags on attachment: 183503

Committed r140193: &lt;http://trac.webkit.org/changeset/140193&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810929</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-18 12:28:09 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182571</attachid>
            <date>2013-01-14 07:08:30 -0800</date>
            <delta_ts>2013-01-16 05:48:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106792-20130114150530.patch</filename>
            <type>text/plain</type>
            <size>8576</size>
            <attacher>timvolodine</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5MzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDlkZmFiMTdjODc4ZGE2
YzFkMDZhY2Y3MTQ5NTM4ZTgzMzI0YWQxYS4uNGMzMjFiYzIwMmFkM2Y0NDEwNmE4M2VlZjhiOThk
YWNmYWY1MWU4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAxLTE0ICBUaW0g
Vm9sb2RpbmUgIDx0aW12b2xvZGluZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQXZvaWQgYXV0
b3NpemluZyBoZWFkZXJzIGNvbnNpc3Rpbmcgb2YgbXVsdGlwbGUgaW5saW5lIGxpbmtzIHBvc3Np
Ymx5IHNlcGFyYXRlZCBieSBhCisgICAgICAgIGNoYXJhY3RlciBvciBhIHZlcnkgc2hvcnQgdGV4
dHVhbCBzdHJpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDY3OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0OiBmYXN0L3RleHQtYXV0b3NpemluZy9oZWFkZXItbGlua3MtYXV0b3NpemluZy5o
dG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0QXV0b3NpemVyOjpjb250YWluZXJTaG91bGRCZUF1dG9zaXplZCk6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0QXV0b3NpemVyOjppc0hlYWRlcldpdGhMaW5rcyk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OmlzSGVhZGVyV2l0
aExpbmtzQ2FuZGlkYXRlKToKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dEF1dG9zaXplci5oOgor
CiAyMDEzLTAxLTEwICBSb2JlcnQgUGhpbGxpcHMgIDxyb2JlcnRwaGlsbGlwc0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgU2VyaWFsaXphdGlvbiBvZiBHcmFkaWVudHMgZmFpbHMgd2hlbiBQbGF0
Zm9ybUNvbnRleHRTa2lhIGlzIG5vdCBiaXRtYXAgYmFja2VkCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvVGV4dEF1dG9zaXplci5jcHAKaW5kZXggOTdlMmQxODRkODJiOGVmMDI2YTFkOGYwNjg2
Yzg2ZDk2NzFkNDRmZC4uMjlkODU1ODA4ODI4MmZiMjg4NGRjNjM0OGE0YWUxNzZlZjZjMWE3OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcApAQCAtMjY5LDYg
KzI2OSw5IEBAIGJvb2wgVGV4dEF1dG9zaXplcjo6Y29udGFpbmVyU2hvdWxkQmVBdXRvc2l6ZWQo
Y29uc3QgUmVuZGVyQmxvY2sqIGNvbnRhaW5lcikKICAgICBpZiAoY29udGFpbmVyQ29udGFpbnNP
bmVPZlRhZ3MoY29udGFpbmVyLCBmb3JtSW5wdXRUYWdzKCkpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKKyAgICBpZiAoaXNIZWFkZXJXaXRoTGlua3MoY29udGFpbmVyKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCiAgICAgLy8gRG9uJ3QgYXV0b3NpemUgYmxvY2stbGV2ZWwgdGV4dCB0aGF0
IGNhbid0IHdyYXAgKGFzIGl0J3MgbGlrZWx5IHRvCiAgICAgLy8gZXhwYW5kIHNpZGV3YXlzIGFu
ZCBicmVhayB0aGUgcGFnZSdzIGxheW91dCkuCiAgICAgaWYgKCFjb250YWluZXItPnN0eWxlKCkt
PmF1dG9XcmFwKCkpCkBAIC0yOTIsNiArMjk1LDUwIEBAIGJvb2wgVGV4dEF1dG9zaXplcjo6Y29u
dGFpbmVyQ29udGFpbnNPbmVPZlRhZ3MoY29uc3QgUmVuZGVyQmxvY2sqIGNvbnRhaW5lciwgY29u
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIFRleHRBdXRvc2l6ZXI6OmlzSGVhZGVyV2l0
aExpbmtzKGNvbnN0IFJlbmRlck9iamVjdCogY29udGFpbmVyKQoreworICAgIC8vIEEgImhlYWRl
ciB3aXRoIGxpbmtzIiBpcyBhIGNvbnRhaW5lciBmb3Igd2hpY2ggaG9sZHM6CisgICAgLy8gIDEu
IGl0IHNob3VsZCBub3QgY29udGFpbiBub24tbGluayB0ZXh0IGVsZW1lbnRzIGxvbmdlciB0aGFu
IDMgY2hhcmFjdGVycworICAgIC8vICAyLiBpdCBzaG91bGQgY29udGFpbiBhdCBsZWFzdCAyIGlu
bGluZSBsaW5rIGVsZW1lbnRzCisgICAgLy8gIDMuIGl0IHNob3VsZCBjb250YWluIG9ubHkgaW5s
aW5lIG9yIHRleHQgZWxlbWVudHMgdW5sZXNzIHRoZXkgYXJlIGNoaWxkcmVuCisgICAgLy8gICAg
IG9mIGxpbmsgZWxlbWVudHMgb3Igb3RoZXIgKHN1Yi0pY29udGFpbmVycy4KKworICAgIGludCBu
dW1MaW5rcyA9IDA7CisgICAgYm9vbCBpc0NhbmRpZGF0ZSA9IGlzSGVhZGVyV2l0aExpbmtzQ2Fu
ZGlkYXRlKGNvbnRhaW5lciwgY29udGFpbmVyLCBudW1MaW5rcyk7CisgICAgaWYgKGlzQ2FuZGlk
YXRlICYmIG51bUxpbmtzID49IDIpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBm
YWxzZTsKK30KKworYm9vbCBUZXh0QXV0b3NpemVyOjppc0hlYWRlcldpdGhMaW5rc0NhbmRpZGF0
ZShjb25zdCBSZW5kZXJPYmplY3QqIGN1cnJlbnQsIGNvbnN0IFJlbmRlck9iamVjdCogc3RheVdp
dGhpbiwgaW50JiBsaW5rQ291bnQpCit7CisgICAgaWYgKGN1cnJlbnQgIT0gc3RheVdpdGhpbikg
eworICAgICAgICBpZiAoY3VycmVudC0+aXNUZXh0KCkpIHsKKyAgICAgICAgICAgIGNvbnN0IE5v
ZGUqIGN1cnJlbnROb2RlID0gY3VycmVudC0+bm9kZSgpOworICAgICAgICAgICAgaWYgKGN1cnJl
bnROb2RlICYmICFjdXJyZW50Tm9kZS0+bm9kZVZhbHVlKCkuaXNOdWxsKCkpIHsKKyAgICAgICAg
ICAgICAgICBjb25zdCBTdHJpbmcgdmFsdWVXaXRob3V0V2hpdGVzcGFjZXMgPSBjdXJyZW50Tm9k
ZS0+bm9kZVZhbHVlKCkuc3RyaXBXaGl0ZVNwYWNlKCk7CisgICAgICAgICAgICAgICAgaWYgKHZh
bHVlV2l0aG91dFdoaXRlc3BhY2VzLmxlbmd0aCgpID4gMykKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghY3Vy
cmVudC0+aXNUZXh0KCkgJiYgIWN1cnJlbnQtPmlzSW5saW5lKCkpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorCisgICAgZm9yIChSZW5kZXJPYmplY3QqIGNoaWxkID0gY3VycmVu
dC0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewor
ICAgICAgICBjb25zdCBOb2RlKiBjaGlsZE5vZGUgPSBjaGlsZC0+bm9kZSgpOworICAgICAgICBi
b29sIGlzTGluayA9IGNoaWxkTm9kZSAmJiBjaGlsZE5vZGUtPmlzRWxlbWVudE5vZGUoKSAmJiAo
dG9FbGVtZW50KGNoaWxkTm9kZSktPnRhZ1FOYW1lKCkgPT0gYVRhZyk7CisgICAgICAgIGlmIChp
c0xpbmspCisgICAgICAgICAgICBsaW5rQ291bnQrKzsKKworICAgICAgICBpZiAoIWlzTGluayAm
JiAhaXNBdXRvc2l6aW5nQ29udGFpbmVyKGNoaWxkKSkKKyAgICAgICAgICAgIGlmICghaXNIZWFk
ZXJXaXRoTGlua3NDYW5kaWRhdGUoY2hpbGQsIHN0YXlXaXRoaW4sIGxpbmtDb3VudCkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQor
CiBib29sIFRleHRBdXRvc2l6ZXI6OmNvbnRlbnRIZWlnaHRJc0NvbnN0cmFpbmVkKGNvbnN0IFJl
bmRlckJsb2NrKiBjb250YWluZXIpCiB7CiAgICAgLy8gRklYTUU6IFByb3BhZ2F0ZSBjb25zdHJh
aW5lZG5lc3MgZG93biB0aGUgdHJlZSwgdG8gYXZvaWQgaW5lZmZpY2llbnRseSB3YWxraW5nIGJh
Y2sgdXAgZnJvbSBlYWNoIGJveC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9UZXh0QXV0b3NpemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXpl
ci5oCmluZGV4IDE2OGEyODViOTU4YTk0OGU4OGFiNjAwZTBiMTczZDA5NTgyMjk0NjAuLmZiMDYy
MjMxNGU4YzFmZThhNDAwM2JjZTY3NDdhNTRjNWMwMTczYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1RleHRBdXRvc2l6ZXIuaApAQCAtNzQsNiArNzQsOSBAQCBwcml2YXRlOgogICAgIHN0
YXRpYyBib29sIGNvbnRlbnRIZWlnaHRJc0NvbnN0cmFpbmVkKGNvbnN0IFJlbmRlckJsb2NrKiBj
b250YWluZXIpOwogICAgIHN0YXRpYyBib29sIGNsdXN0ZXJTaG91bGRCZUF1dG9zaXplZChjb25z
dCBSZW5kZXJCbG9jayogYmxvY2tDb250YWluaW5nQWxsVGV4dCwgZmxvYXQgYmxvY2tXaWR0aCk7
CiAgICAgc3RhdGljIHZvaWQgbWVhc3VyZURlc2NlbmRhbnRUZXh0V2lkdGgoY29uc3QgUmVuZGVy
QmxvY2sqIGNvbnRhaW5lciwgY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrQ29udGFpbmluZ0FsbFRl
eHQsIGZsb2F0IG1pblRleHRXaWR0aCwgZmxvYXQmIHRleHRXaWR0aCk7CisgICAgc3RhdGljIGJv
b2wgaXNIZWFkZXJXaXRoTGlua3MoY29uc3QgUmVuZGVyT2JqZWN0KiBjb250YWluZXIpOworICAg
IHN0YXRpYyBib29sIGlzSGVhZGVyV2l0aExpbmtzQ2FuZGlkYXRlKGNvbnN0IFJlbmRlck9iamVj
dCogY3VycmVudCwgY29uc3QgUmVuZGVyT2JqZWN0KiBzdGF5V2l0aGluLCBpbnQmIGxpbmtDb3Vu
dCk7CisKIAogICAgIC8vIFVzZSB0byB0cmF2ZXJzZSB0aGUgdHJlZSBvZiBkZXNjZW5kYW50cywg
ZXhjbHVkaW5nIGRlc2NlbmRhbnRzIG9mIGNvbnRhaW5lcnMgKGJ1dCByZXR1cm5pbmcgdGhlIGNv
bnRhaW5lcnMgdGhlbXNlbHZlcykuCiAgICAgc3RhdGljIFJlbmRlck9iamVjdCogbmV4dEluUHJl
T3JkZXJTa2lwcGluZ0Rlc2NlbmRhbnRzT2ZDb250YWluZXJzKGNvbnN0IFJlbmRlck9iamVjdCos
IGNvbnN0IFJlbmRlck9iamVjdCogc3RheVdpdGhpbik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNWMwMzY2MzNkYmQzYWY5
OTg4NDc1OWFkNDEwZmUyNzdhN2EwOThkMS4uMTBmYTFmMmY3Mzk2MjFlNjY5NDRjODE3MDcwYzI4
MDYzYjQ0NTU4NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEzLTAxLTE0ICBUaW0gVm9sb2Rp
bmUgIDx0aW12b2xvZGluZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRG9uJ3QgYXV0b3NpemUg
aGVhZGVycyB3aXRoIG11bHRpcGxlIGlubGluZSBsaW5rcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2NzkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L3RleHQtYXV0b3NpemluZy9oZWFkZXIt
bGlua3MtYXV0b3NpemluZy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Rl
eHQtYXV0b3NpemluZy9oZWFkZXItbGlua3MtYXV0b3NpemluZy5odG1sOiBBZGRlZC4KKwogMjAx
My0wMS0xMCAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFRoZSAib3V0bGluZS1vZmZzZXQiIHByb3BlcnR5IGlzIG5vdCBmb3VuZCBpbiB0aGUgY29t
cHV0ZWQgc3R5bGUgcHJvcGVydHkgbGlzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90
ZXh0LWF1dG9zaXppbmcvaGVhZGVyLWxpbmtzLWF1dG9zaXppbmctZXhwZWN0ZWQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saW5rcy1hdXRvc2l6aW5nLWV4
cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2QxMmQ1MDM4YWFmYTY5M2QxMTU5M2I3NTc1MjcxYzc4
ZWI0Y2JlMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6
aW5nL2hlYWRlci1saW5rcy1hdXRvc2l6aW5nLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw0MCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBzdHlsZT0iZm9udC1zaXplOiAxNnB4Ij4KKzxoZWFk
PgorCis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ODAwIj4KKzxzdHlsZT4K
KyAgYm9keSB7CisgICAgd2lkdGg6IDgwMHB4OworICAgIG1hcmdpbjogMDsKKyAgICBvdmVyZmxv
dy15OiBoaWRkZW47CisgIH0KKzwvc3R5bGU+CisKKzwvaGVhZD4KKzxib2R5PgorCis8ZGl2Pgor
PHNwYW4gc3R5bGU9ImZsb2F0OiByaWdodCI+CitGcmksIDExIEphbiAxODozMzoyMworPC9zcGFu
PgorPC9kaXY+Cis8YSBocmVmPSIiPlRoZXNlPC9hPgorJmd0OworPGEgaHJlZj0iIj5MaW5rczwv
YT4KKyZndDsKKzxhIGhyZWY9IiI+U2hvdWxkPC9hPgorJmd0OworPGEgaHJlZj0iIj5Ob3QgYmU8
L2E+CismZ3Q7Cis8YSBocmVmPSIiPkF1dG9zaXplZDwvYT4KKzwvZGl2PgorPGRpdiBzdHlsZT0i
Zm9udC1zaXplOiAyLjVyZW0iPgorICAgIFRoaXMgcGFyYWdyYXBoIHNob3VsZCBiZSBhdXRvc2l6
ZWQgdG8gNDBweCBjb21wdXRlZCBmb250LXNpemUgKDE2ICogODAwLzMyMCksCisgICAgd2hlcmVh
cyB0aGUgaW5saW5lIGxpbmtzIGluIHRoZSBoZWFkZXIgYWJvdmUgYW5kIHRoZSBhY2NvbXBhbnlp
bmcgdGltZSBzdGFtcAorICAgIHNob3VsZCBiZSByZW5kZXJlZCBhdCB0aGVpciBkZWZhdWx0IHNp
emUuCisgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2lj
aW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvcgorICAgIGluY2lkaWR1bnQgdXQgbGFib3Jl
IGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuCis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saW5rcy1hdXRv
c2l6aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9oZWFkZXItbGlu
a3MtYXV0b3NpemluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3ZGY1YmFlOTk4MTNmZjkxM2E4MjY4NWY3
OTk3MzZhNTFjYTEzMGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQt
YXV0b3NpemluZy9oZWFkZXItbGlua3MtYXV0b3NpemluZy5odG1sCkBAIC0wLDAgKzEsNDkgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWwgc3R5bGU9ImZvbnQtc2l6ZTogMTZweCI+Cis8aGVhZD4K
KworPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPTgwMCI+Cis8c3R5bGU+Cisg
IGJvZHkgeworICAgIHdpZHRoOiA4MDBweDsKKyAgICBtYXJnaW46IDA7CisgICAgb3ZlcmZsb3ct
eTogaGlkZGVuOworICB9Cis8L3N0eWxlPgorCis8c2NyaXB0PgoraWYgKHdpbmRvdy5pbnRlcm5h
bHMpIHsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFRleHRBdXRvc2l6aW5nRW5h
YmxlZCh0cnVlKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFRleHRBdXRvc2l6
aW5nV2luZG93U2l6ZU92ZXJyaWRlKDMyMCwgNDgwKTsKK30gZWxzZSBpZiAod2luZG93LmNvbnNv
bGUgJiYgY29uc29sZS53YXJuKSB7CisgICAgY29uc29sZS53YXJuKCJUaGlzIHRlc3QgZGVwZW5k
cyBvbiB0aGUgVGV4dCBBdXRvc2l6aW5nIHNldHRpbmcgYmVpbmcgdHJ1ZSwgc28gcnVuIGl0IGlu
IER1bXBSZW5kZXJUcmVlLCBvciBtYW51YWxseSBlbmFibGUgVGV4dCBBdXRvc2l6aW5nLCBhbmQg
ZWl0aGVyIHVzZSBhIG1vYmlsZSBkZXZpY2Ugd2l0aCAzMjBweCBkZXZpY2Utd2lkdGggKGxpa2Ug
TmV4dXMgUyBvciBpUGhvbmUpLCBvciBkZWZpbmUgSEFDS19GT1JDRV9URVhUX0FVVE9TSVpJTkdf
T05fREVTS1RPUC4iKTsKK30KKzwvc2NyaXB0PgorCis8L2hlYWQ+Cis8Ym9keT4KKworPGRpdj4K
KzxzcGFuIHN0eWxlPSJmbG9hdDogcmlnaHQiPgorRnJpLCAxMSBKYW4gMTg6MzM6MjMKKzwvc3Bh
bj4KKzwvZGl2PgorPGEgaHJlZj0iIj5UaGVzZTwvYT4KKyZndDsKKzxhIGhyZWY9IiI+TGlua3M8
L2E+CismZ3Q7Cis8YSBocmVmPSIiPlNob3VsZDwvYT4KKyZndDsKKzxhIGhyZWY9IiI+Tm90IGJl
PC9hPgorJmd0OworPGEgaHJlZj0iIj5BdXRvc2l6ZWQ8L2E+Cis8L2Rpdj4KKzxkaXY+CisgICAg
VGhpcyBwYXJhZ3JhcGggc2hvdWxkIGJlIGF1dG9zaXplZCB0byA0MHB4IGNvbXB1dGVkIGZvbnQt
c2l6ZSAoMTYgKiA4MDAvMzIwKSwKKyAgICB3aGVyZWFzIHRoZSBpbmxpbmUgbGlua3MgaW4gdGhl
IGhlYWRlciBhYm92ZSBhbmQgdGhlIGFjY29tcGFueWluZyB0aW1lIHN0YW1wCisgICAgc2hvdWxk
IGJlIHJlbmRlcmVkIGF0IHRoZWlyIGRlZmF1bHQgc2l6ZS4KKyAgICBMb3JlbSBpcHN1bSBkb2xv
ciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2Qg
dGVtcG9yCisgICAgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4K
KzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182968</attachid>
            <date>2013-01-16 05:49:01 -0800</date>
            <delta_ts>2013-01-16 08:25:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106792-20130116134602.patch</filename>
            <type>text/plain</type>
            <size>11634</size>
            <attacher>timvolodine</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5ODM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTE1ZDllZjQyOThmZjgw
MWY5NzA3NWQ4YTgzMjMzODNmY2NjZDA5YS4uMWI2NmU0YjNiMDE2Mzg0MmQyMTdhYTNkMjlkNjQ1
ZTUwNDUwNzlhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEzLTAxLTE2ICBUaW0g
Vm9sb2RpbmUgIDx0aW12b2xvZGluZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGV4dCBBdXRv
c2l6aW5nOiBkb24ndCBhdXRvc2l6ZSBoZWFkZXJzIHdpdGggbXVsdGlwbGUgaW5saW5lIGxpbmtz
LgorICAgICAgICBUaGlzIHBhdGNoIGluY2x1ZGVzIGNvZGUgZm9yIGRldGVjdGluZyByb3dzIG9m
IGxpbmtzIHR5cGljYWxseSBzZWVuCisgICAgICAgIGluIGhlYWRlcnMgb3IgZm9vdGVycyBvZiB3
ZWJwYWdlcy4gU3VjaCByb3dzIG9mIGxpbmtzIHNob3VsZCBub3QgYmUKKyAgICAgICAgYXV0b3Np
emVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2
NzkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dHM6IGZhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saS1saW5rcy1hdXRvc2l6aW5nLmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saW5rcy1hdXRvc2l6
aW5nLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OmNvbnRhaW5lclNob3VsZEJlQXV0b3NpemVkKToK
KyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OmNvbnRhaW5lcklzUm93T2ZMaW5rcyk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dEF1dG9zaXplci5o
OgorCiAyMDEzLTAxLTE1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIEdUSysgYW5kIFF0IGJ1aWxkIGZpeCBhZnRlciByMTM5ODMzLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwCmluZGV4IGNkMWI1ZmFmMzg5ODZkMmMyNGU2Zjhk
NmQ0YjE2NGFlYWMwY2Q5YmIuLjNjZjViZjFmZDQzYzBiN2UzYzhlZTIyNzZmZDEzOGEwNjExMDUw
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHAKQEAgLTI3
OCw2ICsyNzgsOSBAQCBib29sIFRleHRBdXRvc2l6ZXI6OmNvbnRhaW5lclNob3VsZEJlQXV0b3Np
emVkKGNvbnN0IFJlbmRlckJsb2NrKiBjb250YWluZXIpCiAgICAgaWYgKGNvbnRhaW5lckNvbnRh
aW5zT25lT2ZUYWdzKGNvbnRhaW5lciwgZm9ybUlucHV0VGFncygpKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCisgICAgaWYgKGNvbnRhaW5lcklzUm93T2ZMaW5rcyhjb250YWluZXIpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKICAgICAvLyBEb24ndCBhdXRvc2l6ZSBibG9jay1sZXZlbCB0
ZXh0IHRoYXQgY2FuJ3Qgd3JhcCAoYXMgaXQncyBsaWtlbHkgdG8KICAgICAvLyBleHBhbmQgc2lk
ZXdheXMgYW5kIGJyZWFrIHRoZSBwYWdlJ3MgbGF5b3V0KS4KICAgICBpZiAoIWNvbnRhaW5lci0+
c3R5bGUoKS0+YXV0b1dyYXAoKSkKQEAgLTMwMSw2ICszMDQsMzUgQEAgYm9vbCBUZXh0QXV0b3Np
emVyOjpjb250YWluZXJDb250YWluc09uZU9mVGFncyhjb25zdCBSZW5kZXJCbG9jayogY29udGFp
bmVyLCBjb24KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgVGV4dEF1dG9zaXplcjo6Y29u
dGFpbmVySXNSb3dPZkxpbmtzKGNvbnN0IFJlbmRlck9iamVjdCogY29udGFpbmVyKQoreworICAg
IC8vIEEgImhlYWRlciB3aXRoIGxpbmtzIiBpcyBhIGNvbnRhaW5lciBmb3Igd2hpY2ggaG9sZHM6
CisgICAgLy8gIDEuIGl0IHNob3VsZCBub3QgY29udGFpbiBub24tbGluayB0ZXh0IGVsZW1lbnRz
IGxvbmdlciB0aGFuIDMgY2hhcmFjdGVycworICAgIC8vICAyLiBpdCBzaG91bGQgY29udGFpbiBh
dCBsZWFzdCAyIGlubGluZSA8YT4gZWxlbWVudHMKKyAgICAvLyAgMy4gaXQgc2hvdWxkIGNvbnRh
aW4gb25seSBSZW5kZXJJbmxpbmUgb3IgUmVuZGVyVGV4dCBlbGVtZW50cyB1bmxlc3MgdGhleSBh
cmUgY2hpbGRyZW4KKyAgICAvLyAgICAgb2YgbGluayBlbGVtZW50cyBvciBvdGhlciAoc3ViLSlj
b250YWluZXJzLgorICAgIGludCBsaW5rQ291bnQgPSAwOworICAgIFJlbmRlck9iamVjdCogcmVu
ZGVyZXIgPSBjb250YWluZXItPm5leHRJblByZU9yZGVyKGNvbnRhaW5lcik7CisKKyAgICB3aGls
ZSAocmVuZGVyZXIpIHsKKyAgICAgICAgaWYgKCFpc0F1dG9zaXppbmdDb250YWluZXIocmVuZGVy
ZXIpKSB7CisgICAgICAgICAgICBpZiAocmVuZGVyZXItPmlzVGV4dCgpICYmIHRvUmVuZGVyVGV4
dChyZW5kZXJlciktPnRleHQoKS0+c3RyaXBXaGl0ZVNwYWNlKCktPmxlbmd0aCgpID4gMykKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoIXJlbmRlcmVyLT5p
c1RleHQoKSAmJiAhcmVuZGVyZXItPmlzSW5saW5lKCkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGNvbnN0IE5vZGUqIHJlbmRlcmVyTm9kZSA9IHJl
bmRlcmVyLT5ub2RlKCk7CisgICAgICAgIGJvb2wgaXNMaW5rID0gcmVuZGVyZXJOb2RlICYmIHJl
bmRlcmVyTm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmICh0b0VsZW1lbnQocmVuZGVyZXJOb2RlKS0+
dGFnUU5hbWUoKSA9PSBhVGFnKTsKKyAgICAgICAgaWYgKGlzTGluaykKKyAgICAgICAgICAgIGxp
bmtDb3VudCsrOworCisgICAgICAgIHJlbmRlcmVyID0gKGlzTGluayB8fCBpc0F1dG9zaXppbmdD
b250YWluZXIocmVuZGVyZXIpKSA/CisgICAgICAgICAgICByZW5kZXJlci0+bmV4dEluUHJlT3Jk
ZXJBZnRlckNoaWxkcmVuKGNvbnRhaW5lcikgOiByZW5kZXJlci0+bmV4dEluUHJlT3JkZXIoY29u
dGFpbmVyKTsKKyAgICB9CisKKyAgICByZXR1cm4gKGxpbmtDb3VudCA+PSAyKTsKK30KKwogYm9v
bCBUZXh0QXV0b3NpemVyOjpjb250ZW50SGVpZ2h0SXNDb25zdHJhaW5lZChjb25zdCBSZW5kZXJC
bG9jayogY29udGFpbmVyKQogewogICAgIC8vIEZJWE1FOiBQcm9wYWdhdGUgY29uc3RyYWluZWRu
ZXNzIGRvd24gdGhlIHRyZWUsIHRvIGF2b2lkIGluZWZmaWNpZW50bHkgd2Fsa2luZyBiYWNrIHVw
IGZyb20gZWFjaCBib3guCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4
dEF1dG9zaXplci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuaApp
bmRleCAxNjhhMjg1Yjk1OGE5NDhlODhhYjYwMGUwYjE3M2QwOTU4MjI5NDYwLi5lMWMyMmFlYjlk
YjNiYzk5YzhiNzNlMWIwNjg5YzRmNmExNzA2Y2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9UZXh0QXV0b3NpemVyLmgKQEAgLTcxLDYgKzcxLDcgQEAgcHJpdmF0ZToKIAogICAgIHN0YXRp
YyBib29sIGNvbnRhaW5lclNob3VsZEJlQXV0b3NpemVkKGNvbnN0IFJlbmRlckJsb2NrKiBjb250
YWluZXIpOwogICAgIHN0YXRpYyBib29sIGNvbnRhaW5lckNvbnRhaW5zT25lT2ZUYWdzKGNvbnN0
IFJlbmRlckJsb2NrKiBjbHVzdGVyLCBjb25zdCBWZWN0b3I8UXVhbGlmaWVkTmFtZT4mIHRhZ3Mp
OworICAgIHN0YXRpYyBib29sIGNvbnRhaW5lcklzUm93T2ZMaW5rcyhjb25zdCBSZW5kZXJPYmpl
Y3QqIGNvbnRhaW5lcik7CiAgICAgc3RhdGljIGJvb2wgY29udGVudEhlaWdodElzQ29uc3RyYWlu
ZWQoY29uc3QgUmVuZGVyQmxvY2sqIGNvbnRhaW5lcik7CiAgICAgc3RhdGljIGJvb2wgY2x1c3Rl
clNob3VsZEJlQXV0b3NpemVkKGNvbnN0IFJlbmRlckJsb2NrKiBibG9ja0NvbnRhaW5pbmdBbGxU
ZXh0LCBmbG9hdCBibG9ja1dpZHRoKTsKICAgICBzdGF0aWMgdm9pZCBtZWFzdXJlRGVzY2VuZGFu
dFRleHRXaWR0aChjb25zdCBSZW5kZXJCbG9jayogY29udGFpbmVyLCBjb25zdCBSZW5kZXJCbG9j
ayogYmxvY2tDb250YWluaW5nQWxsVGV4dCwgZmxvYXQgbWluVGV4dFdpZHRoLCBmbG9hdCYgdGV4
dFdpZHRoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBmYjQ4NmEzY2UyZTc5YTQ1MmE3OWY1MWUxYzU0YjE3MDE0NDBmOWYz
Li4yMWM5ZjNiMTYxY2MxODMyZDcyNGExZjJmMTM2YmI1ZjQzMjVkMzZhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTMtMDEtMTYgIFRpbSBWb2xvZGluZSAgPHRpbXZvbG9kaW5lQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBUZXh0IEF1dG9zaXppbmc6IGRvbid0IGF1dG9zaXplIGhlYWRlcnMg
d2l0aCBtdWx0aXBsZSBpbmxpbmUgbGlua3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY3OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saS1saW5r
cy1hdXRvc2l6aW5nLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4dC1h
dXRvc2l6aW5nL2hlYWRlci1saS1saW5rcy1hdXRvc2l6aW5nLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saW5rcy1hdXRvc2l6aW5nLWV4cGVjdGVk
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saW5r
cy1hdXRvc2l6aW5nLmh0bWw6IEFkZGVkLgorCiAyMDEzLTAxLTE1ICBUYWIgQXRraW5zICA8amFj
a2FsbWFnZUBnbWFpbC5jb20+CiAKICAgICAgICAgVXBkYXRlIENTUzMgZ3JhZGllbnQgc3VwcG9y
dCB0byB0aGUgbGF0ZXN0IHNwZWMgdmVyc2lvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC90ZXh0LWF1dG9zaXppbmcvaGVhZGVyLWxpLWxpbmtzLWF1dG9zaXppbmctZXhwZWN0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saS1saW5rcy1hdXRv
c2l6aW5nLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmFhZDY0YjdhYzEzM2M1NjQxZjMzYmFl
MjFmZDk3ODkxZmI1MzY4MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4
dC1hdXRvc2l6aW5nL2hlYWRlci1saS1saW5rcy1hdXRvc2l6aW5nLWV4cGVjdGVkLmh0bWwKQEAg
LTAsMCArMSw0NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBzdHlsZT0iZm9udC1zaXplOiAx
NnB4Ij4KKzxoZWFkPgorCis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ODAw
Ij4KKzxzdHlsZT4KKyAgYm9keSB7CisgICAgd2lkdGg6IDgwMHB4OworICAgIG1hcmdpbjogMDsK
KyAgICBvdmVyZmxvdy15OiBoaWRkZW47CisgIH0KKzwvc3R5bGU+CisKKzwvaGVhZD4KKzxib2R5
PgorCis8ZGl2PgorICAgIDx1bD4KKyAgICAgICAgPGxpIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+
CisgICAgICAgICAgICA8YSBocmVmPSIiPlRoZXNlPC9hPgorICAgICAgICA8L2xpPgorICAgICAg
ICA8bGkgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4KKyAgICAgICAgICAgIDxhIGhyZWY9IiI+TGlu
a3M8L2E+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaSBzdHlsZT0iZGlzcGxheTppbmxpbmUi
PgorICAgICAgICAgICAgPGEgaHJlZj0iIj5TaG91bGQ8L2E+CisgICAgICAgIDwvbGk+CisgICAg
ICAgIDxsaSBzdHlsZT0iZGlzcGxheTppbmxpbmUiPgorICAgICAgICAgICAgPGEgaHJlZj0iIj5O
b3QgYmU8L2E+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaSBzdHlsZT0iZGlzcGxheTppbmxp
bmUiPgorICAgICAgICAgICAgPGEgaHJlZj0iIj5BdXRvc2l6ZWQ8L2E+CisgICAgICAgIDwvbGk+
CisgICAgPC91bD4KKzwvZGl2PgorPGRpdiBzdHlsZT0iZm9udC1zaXplOiAyLjVyZW0iPgorICAg
IFRoaXMgcGFyYWdyYXBoIHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gNDBweCBjb21wdXRlZCBmb250
LXNpemUgKDE2ICogODAwLzMyMCksCisgICAgd2hlcmVhcyB0aGUgaW5saW5lIGxpbmtzIGluIHRo
ZSBoZWFkZXIgYWJvdmUgYW5kIHRoZSBhY2NvbXBhbnlpbmcgdGltZSBzdGFtcAorICAgIHNob3Vs
ZCBiZSByZW5kZXJlZCBhdCB0aGVpciBkZWZhdWx0IHNpemUuCisgICAgTG9yZW0gaXBzdW0gZG9s
b3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9k
IHRlbXBvcgorICAgIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEu
Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
dGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saS1saW5rcy1hdXRvc2l6aW5nLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9oZWFkZXItbGktbGlua3MtYXV0b3NpemluZy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmM4ODk2YzY0ZDQyMWE2YWViNTc3ZGQ2YzMxNWJhZjg2OWYzYjNlOTEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9oZWFkZXIt
bGktbGlua3MtYXV0b3NpemluZy5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWwgc3R5bGU9ImZvbnQtc2l6ZTogMTZweCI+Cis8aGVhZD4KKworPG1ldGEgbmFtZT0i
dmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPTgwMCI+Cis8c3R5bGU+CisgIGJvZHkgeworICAgIHdp
ZHRoOiA4MDBweDsKKyAgICBtYXJnaW46IDA7CisgICAgb3ZlcmZsb3cteTogaGlkZGVuOworICB9
Cis8L3N0eWxlPgorCis8c2NyaXB0PgoraWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICB3aW5k
b3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFRleHRBdXRvc2l6aW5nRW5hYmxlZCh0cnVlKTsKKyAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92
ZXJyaWRlKDMyMCwgNDgwKTsKK30gZWxzZSBpZiAod2luZG93LmNvbnNvbGUgJiYgY29uc29sZS53
YXJuKSB7CisgICAgY29uc29sZS53YXJuKCJUaGlzIHRlc3QgZGVwZW5kcyBvbiB0aGUgVGV4dCBB
dXRvc2l6aW5nIHNldHRpbmcgYmVpbmcgdHJ1ZSwgc28gcnVuIGl0IGluIER1bXBSZW5kZXJUcmVl
LCBvciBtYW51YWxseSBlbmFibGUgVGV4dCBBdXRvc2l6aW5nLCBhbmQgZWl0aGVyIHVzZSBhIG1v
YmlsZSBkZXZpY2Ugd2l0aCAzMjBweCBkZXZpY2Utd2lkdGggKGxpa2UgTmV4dXMgUyBvciBpUGhv
bmUpLCBvciBkZWZpbmUgSEFDS19GT1JDRV9URVhUX0FVVE9TSVpJTkdfT05fREVTS1RPUC4iKTsK
K30KKzwvc2NyaXB0PgorCis8L2hlYWQ+Cis8Ym9keT4KKworPGRpdj4KKyAgICA8dWw+CisgICAg
ICAgIDxsaSBzdHlsZT0iZGlzcGxheTppbmxpbmUiPgorICAgICAgICAgICAgPGEgaHJlZj0iIj5U
aGVzZTwvYT4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpIHN0eWxlPSJkaXNwbGF5OmlubGlu
ZSI+CisgICAgICAgICAgICA8YSBocmVmPSIiPkxpbmtzPC9hPgorICAgICAgICA8L2xpPgorICAg
ICAgICA8bGkgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4KKyAgICAgICAgICAgIDxhIGhyZWY9IiI+
U2hvdWxkPC9hPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGkgc3R5bGU9ImRpc3BsYXk6aW5s
aW5lIj4KKyAgICAgICAgICAgIDxhIGhyZWY9IiI+Tm90IGJlPC9hPgorICAgICAgICA8L2xpPgor
ICAgICAgICA8bGkgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4KKyAgICAgICAgICAgIDxhIGhyZWY9
IiI+QXV0b3NpemVkPC9hPgorICAgICAgICA8L2xpPgorICAgIDwvdWw+Cis8L2Rpdj4KKzxkaXY+
CisgICAgVGhpcyBwYXJhZ3JhcGggc2hvdWxkIGJlIGF1dG9zaXplZCB0byA0MHB4IGNvbXB1dGVk
IGZvbnQtc2l6ZSAoMTYgKiA4MDAvMzIwKSwKKyAgICB3aGVyZWFzIHRoZSBpbmxpbmUgbGlua3Mg
aW4gdGhlIGhlYWRlciBhYm92ZSBhbmQgdGhlIGFjY29tcGFueWluZyB0aW1lIHN0YW1wCisgICAg
c2hvdWxkIGJlIHJlbmRlcmVkIGF0IHRoZWlyIGRlZmF1bHQgc2l6ZS4KKyAgICBMb3JlbSBpcHN1
bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVp
dXNtb2QgdGVtcG9yCisgICAgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFs
aXF1YS4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC90ZXh0LWF1dG9zaXppbmcvaGVhZGVyLWxpbmtzLWF1dG9zaXppbmctZXhwZWN0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saW5rcy1hdXRvc2l6
aW5nLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTcwZTYxODAyYzE5ZTg0YzA3MDBjMTNmMTgz
MjMyNjRmOTNlZjM1OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1h
dXRvc2l6aW5nL2hlYWRlci1saW5rcy1hdXRvc2l6aW5nLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCAr
MSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBzdHlsZT0iZm9udC1zaXplOiAxNnB4Ij4K
KzxoZWFkPgorCis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ODAwIj4KKzxz
dHlsZT4KKyAgYm9keSB7CisgICAgd2lkdGg6IDgwMHB4OworICAgIG1hcmdpbjogMDsKKyAgICBv
dmVyZmxvdy15OiBoaWRkZW47CisgIH0KKzwvc3R5bGU+CisKKzwvaGVhZD4KKzxib2R5PgorCis8
ZGl2PgorICAgIDxzcGFuIHN0eWxlPSJmbG9hdDogcmlnaHQiPgorICAgICAgICBGcmksIDExIEph
biAxODozMzoyMworICAgIDwvc3Bhbj4KKyAgICA8YSBocmVmPSIiPlRoZXNlPC9hPgorICAgICZn
dDsKKyAgICA8YSBocmVmPSIiPkxpbmtzPC9hPgorICAgICZndDsKKyAgICA8YSBocmVmPSIiPlNo
b3VsZDwvYT4KKyAgICAmZ3Q7CisgICAgPGEgaHJlZj0iIj5Ob3QgYmU8L2E+CisgICAgJmd0Owor
ICAgIDxhIGhyZWY9IiI+QXV0b3NpemVkPC9hPgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJmb250LXNp
emU6IDIuNXJlbSI+CisgICAgVGhpcyBwYXJhZ3JhcGggc2hvdWxkIGJlIGF1dG9zaXplZCB0byA0
MHB4IGNvbXB1dGVkIGZvbnQtc2l6ZSAoMTYgKiA4MDAvMzIwKSwKKyAgICB3aGVyZWFzIHRoZSBp
bmxpbmUgbGlua3MgaW4gdGhlIGhlYWRlciBhYm92ZSBhbmQgdGhlIGFjY29tcGFueWluZyB0aW1l
IHN0YW1wCisgICAgc2hvdWxkIGJlIHJlbmRlcmVkIGF0IHRoZWlyIGRlZmF1bHQgc2l6ZS4KKyAg
ICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxp
dCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yCisgICAgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9s
b3JlIG1hZ25hIGFsaXF1YS4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvaGVhZGVyLWxpbmtzLWF1dG9zaXppbmcu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saW5rcy1hdXRv
c2l6aW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTc4ZmRkMGIzYzE4ZWUzMDY3YjAxZjYwNWM5YWQ2NzQz
NjlmM2FkNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6
aW5nL2hlYWRlci1saW5rcy1hdXRvc2l6aW5nLmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbCBzdHlsZT0iZm9udC1zaXplOiAxNnB4Ij4KKzxoZWFkPgorCis8bWV0
YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ODAwIj4KKzxzdHlsZT4KKyAgYm9keSB7
CisgICAgd2lkdGg6IDgwMHB4OworICAgIG1hcmdpbjogMDsKKyAgICBvdmVyZmxvdy15OiBoaWRk
ZW47CisgIH0KKzwvc3R5bGU+CisKKzxzY3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykgewor
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0VGV4dEF1dG9zaXppbmdFbmFibGVkKHRy
dWUpOworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0VGV4dEF1dG9zaXppbmdXaW5k
b3dTaXplT3ZlcnJpZGUoMzIwLCA0ODApOworfSBlbHNlIGlmICh3aW5kb3cuY29uc29sZSAmJiBj
b25zb2xlLndhcm4pIHsKKyAgICBjb25zb2xlLndhcm4oIlRoaXMgdGVzdCBkZXBlbmRzIG9uIHRo
ZSBUZXh0IEF1dG9zaXppbmcgc2V0dGluZyBiZWluZyB0cnVlLCBzbyBydW4gaXQgaW4gRHVtcFJl
bmRlclRyZWUsIG9yIG1hbnVhbGx5IGVuYWJsZSBUZXh0IEF1dG9zaXppbmcsIGFuZCBlaXRoZXIg
dXNlIGEgbW9iaWxlIGRldmljZSB3aXRoIDMyMHB4IGRldmljZS13aWR0aCAobGlrZSBOZXh1cyBT
IG9yIGlQaG9uZSksIG9yIGRlZmluZSBIQUNLX0ZPUkNFX1RFWFRfQVVUT1NJWklOR19PTl9ERVNL
VE9QLiIpOworfQorPC9zY3JpcHQ+CisKKzwvaGVhZD4KKzxib2R5PgorCis8ZGl2PgorICAgIDxz
cGFuIHN0eWxlPSJmbG9hdDogcmlnaHQiPgorICAgICAgICBGcmksIDExIEphbiAxODozMzoyMwor
ICAgIDwvc3Bhbj4KKyAgICA8YSBocmVmPSIiPlRoZXNlPC9hPgorICAgICZndDsKKyAgICA8YSBo
cmVmPSIiPkxpbmtzPC9hPgorICAgICZndDsKKyAgICA8YSBocmVmPSIiPlNob3VsZDwvYT4KKyAg
ICAmZ3Q7CisgICAgPGEgaHJlZj0iIj5Ob3QgYmU8L2E+CisgICAgJmd0OworICAgIDxhIGhyZWY9
IiI+QXV0b3NpemVkPC9hPgorPC9kaXY+Cis8ZGl2PgorICAgIFRoaXMgcGFyYWdyYXBoIHNob3Vs
ZCBiZSBhdXRvc2l6ZWQgdG8gNDBweCBjb21wdXRlZCBmb250LXNpemUgKDE2ICogODAwLzMyMCks
CisgICAgd2hlcmVhcyB0aGUgaW5saW5lIGxpbmtzIGluIHRoZSBoZWFkZXIgYWJvdmUgYW5kIHRo
ZSBhY2NvbXBhbnlpbmcgdGltZSBzdGFtcAorICAgIHNob3VsZCBiZSByZW5kZXJlZCBhdCB0aGVp
ciBkZWZhdWx0IHNpemUuCisgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3Rl
dHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvcgorICAgIGluY2lkaWR1
bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuCis8L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182987</attachid>
            <date>2013-01-16 08:25:54 -0800</date>
            <delta_ts>2013-01-16 10:11:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106792-20130116162256.patch</filename>
            <type>text/plain</type>
            <size>11638</size>
            <attacher>timvolodine</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5ODM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTE1ZDllZjQyOThmZjgw
MWY5NzA3NWQ4YTgzMjMzODNmY2NjZDA5YS4uMWI2NmU0YjNiMDE2Mzg0MmQyMTdhYTNkMjlkNjQ1
ZTUwNDUwNzlhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEzLTAxLTE2ICBUaW0g
Vm9sb2RpbmUgIDx0aW12b2xvZGluZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGV4dCBBdXRv
c2l6aW5nOiBkb24ndCBhdXRvc2l6ZSBoZWFkZXJzIHdpdGggbXVsdGlwbGUgaW5saW5lIGxpbmtz
LgorICAgICAgICBUaGlzIHBhdGNoIGluY2x1ZGVzIGNvZGUgZm9yIGRldGVjdGluZyByb3dzIG9m
IGxpbmtzIHR5cGljYWxseSBzZWVuCisgICAgICAgIGluIGhlYWRlcnMgb3IgZm9vdGVycyBvZiB3
ZWJwYWdlcy4gU3VjaCByb3dzIG9mIGxpbmtzIHNob3VsZCBub3QgYmUKKyAgICAgICAgYXV0b3Np
emVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2
NzkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dHM6IGZhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saS1saW5rcy1hdXRvc2l6aW5nLmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saW5rcy1hdXRvc2l6
aW5nLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OmNvbnRhaW5lclNob3VsZEJlQXV0b3NpemVkKToK
KyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OmNvbnRhaW5lcklzUm93T2ZMaW5rcyk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dEF1dG9zaXplci5o
OgorCiAyMDEzLTAxLTE1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIEdUSysgYW5kIFF0IGJ1aWxkIGZpeCBhZnRlciByMTM5ODMzLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwCmluZGV4IGNkMWI1ZmFmMzg5ODZkMmMyNGU2Zjhk
NmQ0YjE2NGFlYWMwY2Q5YmIuLjY5MTNmYTBlMWRlMDMzZWIyZDVmMjdiN2IxZTgwZjA0ZDY2ZmJi
YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHAKQEAgLTI3
OCw2ICsyNzgsOSBAQCBib29sIFRleHRBdXRvc2l6ZXI6OmNvbnRhaW5lclNob3VsZEJlQXV0b3Np
emVkKGNvbnN0IFJlbmRlckJsb2NrKiBjb250YWluZXIpCiAgICAgaWYgKGNvbnRhaW5lckNvbnRh
aW5zT25lT2ZUYWdzKGNvbnRhaW5lciwgZm9ybUlucHV0VGFncygpKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCisgICAgaWYgKGNvbnRhaW5lcklzUm93T2ZMaW5rcyhjb250YWluZXIpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKICAgICAvLyBEb24ndCBhdXRvc2l6ZSBibG9jay1sZXZlbCB0
ZXh0IHRoYXQgY2FuJ3Qgd3JhcCAoYXMgaXQncyBsaWtlbHkgdG8KICAgICAvLyBleHBhbmQgc2lk
ZXdheXMgYW5kIGJyZWFrIHRoZSBwYWdlJ3MgbGF5b3V0KS4KICAgICBpZiAoIWNvbnRhaW5lci0+
c3R5bGUoKS0+YXV0b1dyYXAoKSkKQEAgLTMwMSw2ICszMDQsMzUgQEAgYm9vbCBUZXh0QXV0b3Np
emVyOjpjb250YWluZXJDb250YWluc09uZU9mVGFncyhjb25zdCBSZW5kZXJCbG9jayogY29udGFp
bmVyLCBjb24KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgVGV4dEF1dG9zaXplcjo6Y29u
dGFpbmVySXNSb3dPZkxpbmtzKGNvbnN0IFJlbmRlck9iamVjdCogY29udGFpbmVyKQoreworICAg
IC8vIEEgInJvdyBvZiBsaW5rcyIgaXMgYSBjb250YWluZXIgZm9yIHdoaWNoIGhvbGRzOgorICAg
IC8vICAxLiBpdCBzaG91bGQgbm90IGNvbnRhaW4gbm9uLWxpbmsgdGV4dCBlbGVtZW50cyBsb25n
ZXIgdGhhbiAzIGNoYXJhY3RlcnMKKyAgICAvLyAgMi4gaXQgc2hvdWxkIGNvbnRhaW4gYXQgbGVh
c3QgMiBpbmxpbmUgPGE+IGVsZW1lbnRzCisgICAgLy8gIDMuIGl0IHNob3VsZCBjb250YWluIG9u
bHkgaW5saW5lIGVsZW1lbnRzIHVubGVzcyB0aGV5IGFyZSBjb250YWluZXJzLAorICAgIC8vICAg
ICBjaGlsZHJlbiBvZiA8YT4gZWxlbWVudHMgb3IgY2hpbGRyZW4gb2Ygc3ViLWNvbnRhaW5lcnMu
CisgICAgaW50IGxpbmtDb3VudCA9IDA7CisgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGNv
bnRhaW5lci0+bmV4dEluUHJlT3JkZXIoY29udGFpbmVyKTsKKworICAgIHdoaWxlIChyZW5kZXJl
cikgeworICAgICAgICBpZiAoIWlzQXV0b3NpemluZ0NvbnRhaW5lcihyZW5kZXJlcikpIHsKKyAg
ICAgICAgICAgIGlmIChyZW5kZXJlci0+aXNUZXh0KCkgJiYgdG9SZW5kZXJUZXh0KHJlbmRlcmVy
KS0+dGV4dCgpLT5zdHJpcFdoaXRlU3BhY2UoKS0+bGVuZ3RoKCkgPiAzKQorICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmICghcmVuZGVyZXItPmlzSW5saW5lKCkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGNvbnN0
IE5vZGUqIG5vZGUgPSByZW5kZXJlci0+bm9kZSgpOworICAgICAgICBpZiAobm9kZSAmJiBub2Rl
LT5pc0VsZW1lbnROb2RlKCkgJiYgKHRvRWxlbWVudChub2RlKS0+dGFnUU5hbWUoKSA9PSBhVGFn
KSkgeworICAgICAgICAgICAgbGlua0NvdW50Kys7CisgICAgICAgICAgICAvLyBTa2lwIHRyYXZl
cnNpbmcgZGVzY2VuZGFudHMgb2YgdGhlIDxhPiBlbGVtZW50CisgICAgICAgICAgICByZW5kZXJl
ciA9IHJlbmRlcmVyLT5uZXh0SW5QcmVPcmRlckFmdGVyQ2hpbGRyZW4oY29udGFpbmVyKTsKKyAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICByZW5kZXJlciA9IG5leHRJblByZU9yZGVyU2tpcHBp
bmdEZXNjZW5kYW50c09mQ29udGFpbmVycyhyZW5kZXJlciwgY29udGFpbmVyKTsKKyAgICB9CisK
KyAgICByZXR1cm4gKGxpbmtDb3VudCA+PSAyKTsKK30KKwogYm9vbCBUZXh0QXV0b3NpemVyOjpj
b250ZW50SGVpZ2h0SXNDb25zdHJhaW5lZChjb25zdCBSZW5kZXJCbG9jayogY29udGFpbmVyKQog
ewogICAgIC8vIEZJWE1FOiBQcm9wYWdhdGUgY29uc3RyYWluZWRuZXNzIGRvd24gdGhlIHRyZWUs
IHRvIGF2b2lkIGluZWZmaWNpZW50bHkgd2Fsa2luZyBiYWNrIHVwIGZyb20gZWFjaCBib3guCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuaAppbmRleCAxNjhhMjg1Yjk1OGE5
NDhlODhhYjYwMGUwYjE3M2QwOTU4MjI5NDYwLi5lMWMyMmFlYjlkYjNiYzk5YzhiNzNlMWIwNjg5
YzRmNmExNzA2Y2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1
dG9zaXplci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmgK
QEAgLTcxLDYgKzcxLDcgQEAgcHJpdmF0ZToKIAogICAgIHN0YXRpYyBib29sIGNvbnRhaW5lclNo
b3VsZEJlQXV0b3NpemVkKGNvbnN0IFJlbmRlckJsb2NrKiBjb250YWluZXIpOwogICAgIHN0YXRp
YyBib29sIGNvbnRhaW5lckNvbnRhaW5zT25lT2ZUYWdzKGNvbnN0IFJlbmRlckJsb2NrKiBjbHVz
dGVyLCBjb25zdCBWZWN0b3I8UXVhbGlmaWVkTmFtZT4mIHRhZ3MpOworICAgIHN0YXRpYyBib29s
IGNvbnRhaW5lcklzUm93T2ZMaW5rcyhjb25zdCBSZW5kZXJPYmplY3QqIGNvbnRhaW5lcik7CiAg
ICAgc3RhdGljIGJvb2wgY29udGVudEhlaWdodElzQ29uc3RyYWluZWQoY29uc3QgUmVuZGVyQmxv
Y2sqIGNvbnRhaW5lcik7CiAgICAgc3RhdGljIGJvb2wgY2x1c3RlclNob3VsZEJlQXV0b3NpemVk
KGNvbnN0IFJlbmRlckJsb2NrKiBibG9ja0NvbnRhaW5pbmdBbGxUZXh0LCBmbG9hdCBibG9ja1dp
ZHRoKTsKICAgICBzdGF0aWMgdm9pZCBtZWFzdXJlRGVzY2VuZGFudFRleHRXaWR0aChjb25zdCBS
ZW5kZXJCbG9jayogY29udGFpbmVyLCBjb25zdCBSZW5kZXJCbG9jayogYmxvY2tDb250YWluaW5n
QWxsVGV4dCwgZmxvYXQgbWluVGV4dFdpZHRoLCBmbG9hdCYgdGV4dFdpZHRoKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBm
YjQ4NmEzY2UyZTc5YTQ1MmE3OWY1MWUxYzU0YjE3MDE0NDBmOWYzLi4yMWM5ZjNiMTYxY2MxODMy
ZDcyNGExZjJmMTM2YmI1ZjQzMjVkMzZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDEt
MTYgIFRpbSBWb2xvZGluZSAgPHRpbXZvbG9kaW5lQGNocm9taXVtLm9yZz4KKworICAgICAgICBU
ZXh0IEF1dG9zaXppbmc6IGRvbid0IGF1dG9zaXplIGhlYWRlcnMgd2l0aCBtdWx0aXBsZSBpbmxp
bmUgbGlua3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDY3OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saS1saW5rcy1hdXRvc2l6aW5nLWV4cGVj
dGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1s
aS1saW5rcy1hdXRvc2l6aW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4dC1hdXRv
c2l6aW5nL2hlYWRlci1saW5rcy1hdXRvc2l6aW5nLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saW5rcy1hdXRvc2l6aW5nLmh0bWw6
IEFkZGVkLgorCiAyMDEzLTAxLTE1ICBUYWIgQXRraW5zICA8amFja2FsbWFnZUBnbWFpbC5jb20+
CiAKICAgICAgICAgVXBkYXRlIENTUzMgZ3JhZGllbnQgc3VwcG9ydCB0byB0aGUgbGF0ZXN0IHNw
ZWMgdmVyc2lvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcv
aGVhZGVyLWxpLWxpbmtzLWF1dG9zaXppbmctZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saS1saW5rcy1hdXRvc2l6aW5nLWV4cGVjdGVkLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNmQ0Y2E4ZjIyYzY0YjA4NzRlOGFhYjRlNDg1YzBhODllZjQ2Yjg3Nwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRl
ci1saS1saW5rcy1hdXRvc2l6aW5nLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbCBzdHlsZT0iZm9udC1zaXplOiAxNnB4Ij4KKzxoZWFkPgorCis8
bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ODAwIj4KKzxzdHlsZT4KKyAgYm9k
eSB7CisgICAgd2lkdGg6IDgwMHB4OworICAgIG1hcmdpbjogMDsKKyAgICBvdmVyZmxvdy15OiBo
aWRkZW47CisgIH0KKzwvc3R5bGU+CisKKzwvaGVhZD4KKzxib2R5PgorCis8dWw+CisgICAgPGxp
IHN0eWxlPSJkaXNwbGF5OmlubGluZSI+CisgICAgICAgIDxhIGhyZWY9IiI+VGhlc2U8L2E+Cisg
ICAgPC9saT4KKyAgICA8bGkgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4KKyAgICAgICAgPGEgaHJl
Zj0iIj5MaW5rczwvYT4KKyAgICA8L2xpPgorICAgIDxsaSBzdHlsZT0iZGlzcGxheTppbmxpbmUi
PgorICAgICAgICA8YSBocmVmPSIiPlNob3VsZDwvYT4KKyAgICA8L2xpPgorICAgIDxsaSBzdHls
ZT0iZGlzcGxheTppbmxpbmUiPgorICAgICAgICA8YSBocmVmPSIiPk5vdCBiZTwvYT4KKyAgICA8
L2xpPgorICAgIDxsaSBzdHlsZT0iZGlzcGxheTppbmxpbmUiPgorICAgICAgICA8YSBocmVmPSIi
PkF1dG9zaXplZDwvYT4KKyAgICA8L2xpPgorPC91bD4KKzxkaXYgc3R5bGU9ImZvbnQtc2l6ZTog
Mi41cmVtIj4KKyAgICBUaGlzIHBhcmFncmFwaCBzaG91bGQgYmUgYXV0b3NpemVkIHRvIDQwcHgg
Y29tcHV0ZWQgZm9udC1zaXplICgxNiAqIDgwMC8zMjApLAorICAgIHdoZXJlYXMgdGhlIGlubGlu
ZSBsaW5rcyBpbiB0aGUgaGVhZGVyIGFib3ZlIHNob3VsZCBiZSByZW5kZXJlZCBhdCB0aGVpciBk
ZWZhdWx0IHNpemUuCisgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVy
IGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvcgorICAgIGluY2lkaWR1bnQg
dXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuCis8L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1s
aS1saW5rcy1hdXRvc2l6aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3Npemlu
Zy9oZWFkZXItbGktbGlua3MtYXV0b3NpemluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjZmM0NDhjMTI1
YzZiMTA4NTk0YjhlNTNiYzZlNWY0NmFkNWIzZWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9oZWFkZXItbGktbGlua3MtYXV0b3NpemluZy5odG1s
CkBAIC0wLDAgKzEsNTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgc3R5bGU9ImZvbnQtc2l6
ZTogMTZweCI+Cis8aGVhZD4KKworPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRo
PTgwMCI+Cis8c3R5bGU+CisgIGJvZHkgeworICAgIHdpZHRoOiA4MDBweDsKKyAgICBtYXJnaW46
IDA7CisgICAgb3ZlcmZsb3cteTogaGlkZGVuOworICB9Cis8L3N0eWxlPgorCis8c2NyaXB0Pgor
aWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFRleHRBdXRvc2l6aW5nRW5hYmxlZCh0cnVlKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRp
bmdzLnNldFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKDMyMCwgNDgwKTsKK30gZWxz
ZSBpZiAod2luZG93LmNvbnNvbGUgJiYgY29uc29sZS53YXJuKSB7CisgICAgY29uc29sZS53YXJu
KCJUaGlzIHRlc3QgZGVwZW5kcyBvbiB0aGUgVGV4dCBBdXRvc2l6aW5nIHNldHRpbmcgYmVpbmcg
dHJ1ZSwgc28gcnVuIGl0IGluIER1bXBSZW5kZXJUcmVlLCBvciBtYW51YWxseSBlbmFibGUgVGV4
dCBBdXRvc2l6aW5nLCBhbmQgZWl0aGVyIHVzZSBhIG1vYmlsZSBkZXZpY2Ugd2l0aCAzMjBweCBk
ZXZpY2Utd2lkdGggKGxpa2UgTmV4dXMgUyBvciBpUGhvbmUpLCBvciBkZWZpbmUgSEFDS19GT1JD
RV9URVhUX0FVVE9TSVpJTkdfT05fREVTS1RPUC4iKTsKK30KKzwvc2NyaXB0PgorCis8L2hlYWQ+
Cis8Ym9keT4KKworPHVsPgorICAgIDxsaSBzdHlsZT0iZGlzcGxheTppbmxpbmUiPgorICAgICAg
ICA8YSBocmVmPSIiPlRoZXNlPC9hPgorICAgIDwvbGk+CisgICAgPGxpIHN0eWxlPSJkaXNwbGF5
OmlubGluZSI+CisgICAgICAgIDxhIGhyZWY9IiI+TGlua3M8L2E+CisgICAgPC9saT4KKyAgICA8
bGkgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4KKyAgICAgICAgPGEgaHJlZj0iIj5TaG91bGQ8L2E+
CisgICAgPC9saT4KKyAgICA8bGkgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4KKyAgICAgICAgPGEg
aHJlZj0iIj5Ob3QgYmU8L2E+CisgICAgPC9saT4KKyAgICA8bGkgc3R5bGU9ImRpc3BsYXk6aW5s
aW5lIj4KKyAgICAgICAgPGEgaHJlZj0iIj5BdXRvc2l6ZWQ8L2E+CisgICAgPC9saT4KKzwvdWw+
Cis8ZGl2PgorICAgIFRoaXMgcGFyYWdyYXBoIHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gNDBweCBj
b21wdXRlZCBmb250LXNpemUgKDE2ICogODAwLzMyMCksCisgICAgd2hlcmVhcyB0aGUgaW5saW5l
IGxpbmtzIGluIHRoZSBoZWFkZXIgYWJvdmUgc2hvdWxkIGJlIHJlbmRlcmVkIGF0IHRoZWlyIGRl
ZmF1bHQgc2l6ZS4KKyAgICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIg
YWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yCisgICAgaW5jaWRpZHVudCB1
dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvaGVhZGVyLWxp
bmtzLWF1dG9zaXppbmctZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRv
c2l6aW5nL2hlYWRlci1saW5rcy1hdXRvc2l6aW5nLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDg5YmIyMDdhODkyMmExNzk1MGRjYTYxNTkxOTMxMjVjNjA3YzQ5YgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saW5rcy1hdXRvc2l6
aW5nLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bCBzdHlsZT0iZm9udC1zaXplOiAxNnB4Ij4KKzxoZWFkPgorCis8bWV0YSBuYW1lPSJ2aWV3cG9y
dCIgY29udGVudD0id2lkdGg9ODAwIj4KKzxzdHlsZT4KKyAgYm9keSB7CisgICAgd2lkdGg6IDgw
MHB4OworICAgIG1hcmdpbjogMDsKKyAgICBvdmVyZmxvdy15OiBoaWRkZW47CisgIH0KKzwvc3R5
bGU+CisKKzwvaGVhZD4KKzxib2R5PgorCis8ZGl2PgorICAgIDxhIGhyZWY9IiI+VGhlc2U8L2E+
CisgICAgJmd0OworICAgIDxhIGhyZWY9IiI+TGlua3M8L2E+CisgICAgJmd0OworICAgIDxhIGhy
ZWY9IiI+U2hvdWxkPC9hPgorICAgICZndDsKKyAgICA8YSBocmVmPSIiPk5vdCBiZTwvYT4KKyAg
ICAmZ3Q7CisgICAgPGEgaHJlZj0iIj5BdXRvc2l6ZWQ8L2E+CisgICAgPGRpdiBzdHlsZT0iZm9u
dC1zaXplOiAyLjVyZW0iPgorICAgICAgICBUaGUgdGV4dCBpbiB0aGlzIHBhcmFncmFwaCBzaG91
bGQgYmUgYXV0b3NpemVkIHRvIDQwcHguCisgICAgICAgIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBh
bWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LAorICAgICAgICBzZWQgZG8gZWl1c21v
ZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4KKyAg
ICA8L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0iZm9udC1zaXplOiAyLjVyZW0iPgorICAgIFRo
aXMgcGFyYWdyYXBoIHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gNDBweCBjb21wdXRlZCBmb250LXNp
emUgKDE2ICogODAwLzMyMCksCisgICAgd2hlcmVhcyB0aGUgaW5saW5lIGxpbmtzIGluIHRoZSBo
ZWFkZXIgYWJvdmUgc2hvdWxkIGJlIHJlbmRlcmVkIGF0IHRoZWlyIGRlZmF1bHQgc2l6ZS4KKyAg
ICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxp
dCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yCisgICAgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9s
b3JlIG1hZ25hIGFsaXF1YS4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvaGVhZGVyLWxpbmtzLWF1dG9zaXppbmcu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saW5rcy1hdXRv
c2l6aW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzlmZmE0M2FlMTUxMmIwMmQyZmM0MzczYjM4MTU1OTdl
MTdiOWEzMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6
aW5nL2hlYWRlci1saW5rcy1hdXRvc2l6aW5nLmh0bWwKQEAgLTAsMCArMSw0OSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbCBzdHlsZT0iZm9udC1zaXplOiAxNnB4Ij4KKzxoZWFkPgorCis8bWV0
YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ODAwIj4KKzxzdHlsZT4KKyAgYm9keSB7
CisgICAgd2lkdGg6IDgwMHB4OworICAgIG1hcmdpbjogMDsKKyAgICBvdmVyZmxvdy15OiBoaWRk
ZW47CisgIH0KKzwvc3R5bGU+CisKKzxzY3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykgewor
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0VGV4dEF1dG9zaXppbmdFbmFibGVkKHRy
dWUpOworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0VGV4dEF1dG9zaXppbmdXaW5k
b3dTaXplT3ZlcnJpZGUoMzIwLCA0ODApOworfSBlbHNlIGlmICh3aW5kb3cuY29uc29sZSAmJiBj
b25zb2xlLndhcm4pIHsKKyAgICBjb25zb2xlLndhcm4oIlRoaXMgdGVzdCBkZXBlbmRzIG9uIHRo
ZSBUZXh0IEF1dG9zaXppbmcgc2V0dGluZyBiZWluZyB0cnVlLCBzbyBydW4gaXQgaW4gRHVtcFJl
bmRlclRyZWUsIG9yIG1hbnVhbGx5IGVuYWJsZSBUZXh0IEF1dG9zaXppbmcsIGFuZCBlaXRoZXIg
dXNlIGEgbW9iaWxlIGRldmljZSB3aXRoIDMyMHB4IGRldmljZS13aWR0aCAobGlrZSBOZXh1cyBT
IG9yIGlQaG9uZSksIG9yIGRlZmluZSBIQUNLX0ZPUkNFX1RFWFRfQVVUT1NJWklOR19PTl9ERVNL
VE9QLiIpOworfQorPC9zY3JpcHQ+CisKKzwvaGVhZD4KKzxib2R5PgorCis8ZGl2PgorICAgIDxh
IGhyZWY9IiI+VGhlc2U8L2E+CisgICAgJmd0OworICAgIDxhIGhyZWY9IiI+TGlua3M8L2E+Cisg
ICAgJmd0OworICAgIDxhIGhyZWY9IiI+U2hvdWxkPC9hPgorICAgICZndDsKKyAgICA8YSBocmVm
PSIiPk5vdCBiZTwvYT4KKyAgICAmZ3Q7CisgICAgPGEgaHJlZj0iIj5BdXRvc2l6ZWQ8L2E+Cisg
ICAgPGRpdj4KKyAgICAgICAgVGhlIHRleHQgaW4gdGhpcyBwYXJhZ3JhcGggc2hvdWxkIGJlIGF1
dG9zaXplZCB0byA0MHB4LgorICAgICAgICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29u
c2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwKKyAgICAgICAgc2VkIGRvIGVpdXNtb2QgdGVtcG9y
IGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuCisgICAgPC9kaXY+
Cis8L2Rpdj4KKzxkaXY+CisgICAgVGhpcyBwYXJhZ3JhcGggc2hvdWxkIGJlIGF1dG9zaXplZCB0
byA0MHB4IGNvbXB1dGVkIGZvbnQtc2l6ZSAoMTYgKiA4MDAvMzIwKSwKKyAgICB3aGVyZWFzIHRo
ZSBpbmxpbmUgbGlua3MgaW4gdGhlIGhlYWRlciBhYm92ZSBzaG91bGQgYmUgcmVuZGVyZWQgYXQg
dGhlaXIgZGVmYXVsdCBzaXplLgorICAgIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25z
ZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IKKyAgICBpbmNp
ZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLgorPC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183004</attachid>
            <date>2013-01-16 10:12:01 -0800</date>
            <delta_ts>2013-01-18 09:14:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106792-20130116180902.patch</filename>
            <type>text/plain</type>
            <size>11481</size>
            <attacher>timvolodine</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5ODM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTE1ZDllZjQyOThmZjgw
MWY5NzA3NWQ4YTgzMjMzODNmY2NjZDA5YS4uNTYzZGY5ZGIyMDc2ZDQ1NzQ0NDRmNjAxZjBkZjA1
ODIyZDZhZWE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEzLTAxLTE2ICBUaW0g
Vm9sb2RpbmUgIDx0aW12b2xvZGluZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGV4dCBBdXRv
c2l6aW5nOiBkb24ndCBhdXRvc2l6ZSBoZWFkZXJzIHdpdGggbXVsdGlwbGUgaW5saW5lIGxpbmtz
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2Nzky
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBpbmNsdWRlcyBjb2RlIGZvciBkZXRlY3Rpbmcgcm93cyBvZiBsaW5rcyB0eXBpY2FsbHkg
c2VlbgorICAgICAgICBpbiBoZWFkZXJzIG9yIGZvb3RlcnMgb2Ygd2VicGFnZXMuIFN1Y2ggcm93
cyBvZiBsaW5rcyBzaG91bGQgbm90IGJlCisgICAgICAgIGF1dG9zaXplZC4KKworICAgICAgICBU
ZXN0czogZmFzdC90ZXh0LWF1dG9zaXppbmcvaGVhZGVyLWxpLWxpbmtzLWF1dG9zaXppbmcuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC90ZXh0LWF1dG9zaXppbmcvaGVhZGVyLWxpbmtzLWF1dG9z
aXppbmcuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dEF1dG9zaXplcjo6Y29udGFpbmVyU2hvdWxkQmVBdXRvc2l6ZWQp
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9zaXplcjo6Y29udGFpbmVySXNSb3dPZkxpbmtz
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9UZXh0QXV0b3NpemVy
Lmg6CisKIDIwMTMtMDEtMTUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgR1RLKyBhbmQgUXQgYnVpbGQgZml4IGFmdGVyIHIxMzk4MzMuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHAKaW5kZXggY2QxYjVmYWYzODk4NmQyYzI0ZTZm
OGQ2ZDRiMTY0YWVhYzBjZDliYi4uZGQwNGU4MzdhNTY1YjFlOTAzMTA2NzkyYTU2NDU1ZjkzYjhi
MzczZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcApAQCAt
Mjc4LDYgKzI3OCw5IEBAIGJvb2wgVGV4dEF1dG9zaXplcjo6Y29udGFpbmVyU2hvdWxkQmVBdXRv
c2l6ZWQoY29uc3QgUmVuZGVyQmxvY2sqIGNvbnRhaW5lcikKICAgICBpZiAoY29udGFpbmVyQ29u
dGFpbnNPbmVPZlRhZ3MoY29udGFpbmVyLCBmb3JtSW5wdXRUYWdzKCkpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKKyAgICBpZiAoY29udGFpbmVySXNSb3dPZkxpbmtzKGNvbnRhaW5lcikpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIC8vIERvbid0IGF1dG9zaXplIGJsb2NrLWxldmVs
IHRleHQgdGhhdCBjYW4ndCB3cmFwIChhcyBpdCdzIGxpa2VseSB0bwogICAgIC8vIGV4cGFuZCBz
aWRld2F5cyBhbmQgYnJlYWsgdGhlIHBhZ2UncyBsYXlvdXQpLgogICAgIGlmICghY29udGFpbmVy
LT5zdHlsZSgpLT5hdXRvV3JhcCgpKQpAQCAtMzAxLDYgKzMwNCwzNCBAQCBib29sIFRleHRBdXRv
c2l6ZXI6OmNvbnRhaW5lckNvbnRhaW5zT25lT2ZUYWdzKGNvbnN0IFJlbmRlckJsb2NrKiBjb250
YWluZXIsIGNvbgogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBUZXh0QXV0b3NpemVyOjpj
b250YWluZXJJc1Jvd09mTGlua3MoY29uc3QgUmVuZGVyT2JqZWN0KiBjb250YWluZXIpCit7Cisg
ICAgLy8gQSAicm93IG9mIGxpbmtzIiBpcyBhIGNvbnRhaW5lciBmb3Igd2hpY2ggaG9sZHM6Cisg
ICAgLy8gIDEuIGl0IHNob3VsZCBub3QgY29udGFpbiBub24tbGluayB0ZXh0IGVsZW1lbnRzIGxv
bmdlciB0aGFuIDMgY2hhcmFjdGVycworICAgIC8vICAyLiBpdCBzaG91bGQgY29udGFpbiBhdCBs
ZWFzdCAyIGlubGluZSBsaW5rcworICAgIC8vICAzLiBpdCBzaG91bGQgY29udGFpbiBvbmx5IGlu
bGluZSBlbGVtZW50cyB1bmxlc3MgdGhleSBhcmUgY29udGFpbmVycywKKyAgICAvLyAgICAgY2hp
bGRyZW4gb2YgbGluayBlbGVtZW50cyBvciBjaGlsZHJlbiBvZiBzdWItY29udGFpbmVycy4KKyAg
ICBpbnQgbGlua0NvdW50ID0gMDsKKyAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gY29udGFp
bmVyLT5uZXh0SW5QcmVPcmRlcihjb250YWluZXIpOworCisgICAgd2hpbGUgKHJlbmRlcmVyKSB7
CisgICAgICAgIGlmICghaXNBdXRvc2l6aW5nQ29udGFpbmVyKHJlbmRlcmVyKSkgeworICAgICAg
ICAgICAgaWYgKHJlbmRlcmVyLT5pc1RleHQoKSAmJiB0b1JlbmRlclRleHQocmVuZGVyZXIpLT50
ZXh0KCktPnN0cmlwV2hpdGVTcGFjZSgpLT5sZW5ndGgoKSA+IDMpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICAgICAgaWYgKCFyZW5kZXJlci0+aXNJbmxpbmUoKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlbmRl
cmVyLT5zdHlsZSgpLT5pc0xpbmsoKSkgeworICAgICAgICAgICAgbGlua0NvdW50Kys7CisgICAg
ICAgICAgICAvLyBTa2lwIHRyYXZlcnNpbmcgZGVzY2VuZGFudHMgb2YgdGhlIGxpbmsuCisgICAg
ICAgICAgICByZW5kZXJlciA9IHJlbmRlcmVyLT5uZXh0SW5QcmVPcmRlckFmdGVyQ2hpbGRyZW4o
Y29udGFpbmVyKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICByZW5kZXJlciA9IG5leHRJ
blByZU9yZGVyU2tpcHBpbmdEZXNjZW5kYW50c09mQ29udGFpbmVycyhyZW5kZXJlciwgY29udGFp
bmVyKTsKKyAgICB9CisKKyAgICByZXR1cm4gKGxpbmtDb3VudCA+PSAyKTsKK30KKwogYm9vbCBU
ZXh0QXV0b3NpemVyOjpjb250ZW50SGVpZ2h0SXNDb25zdHJhaW5lZChjb25zdCBSZW5kZXJCbG9j
ayogY29udGFpbmVyKQogewogICAgIC8vIEZJWE1FOiBQcm9wYWdhdGUgY29uc3RyYWluZWRuZXNz
IGRvd24gdGhlIHRyZWUsIHRvIGF2b2lkIGluZWZmaWNpZW50bHkgd2Fsa2luZyBiYWNrIHVwIGZy
b20gZWFjaCBib3guCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1
dG9zaXplci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuaAppbmRl
eCAxNjhhMjg1Yjk1OGE5NDhlODhhYjYwMGUwYjE3M2QwOTU4MjI5NDYwLi5lMWMyMmFlYjlkYjNi
Yzk5YzhiNzNlMWIwNjg5YzRmNmExNzA2Y2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvVGV4dEF1dG9zaXplci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9U
ZXh0QXV0b3NpemVyLmgKQEAgLTcxLDYgKzcxLDcgQEAgcHJpdmF0ZToKIAogICAgIHN0YXRpYyBi
b29sIGNvbnRhaW5lclNob3VsZEJlQXV0b3NpemVkKGNvbnN0IFJlbmRlckJsb2NrKiBjb250YWlu
ZXIpOwogICAgIHN0YXRpYyBib29sIGNvbnRhaW5lckNvbnRhaW5zT25lT2ZUYWdzKGNvbnN0IFJl
bmRlckJsb2NrKiBjbHVzdGVyLCBjb25zdCBWZWN0b3I8UXVhbGlmaWVkTmFtZT4mIHRhZ3MpOwor
ICAgIHN0YXRpYyBib29sIGNvbnRhaW5lcklzUm93T2ZMaW5rcyhjb25zdCBSZW5kZXJPYmplY3Qq
IGNvbnRhaW5lcik7CiAgICAgc3RhdGljIGJvb2wgY29udGVudEhlaWdodElzQ29uc3RyYWluZWQo
Y29uc3QgUmVuZGVyQmxvY2sqIGNvbnRhaW5lcik7CiAgICAgc3RhdGljIGJvb2wgY2x1c3RlclNo
b3VsZEJlQXV0b3NpemVkKGNvbnN0IFJlbmRlckJsb2NrKiBibG9ja0NvbnRhaW5pbmdBbGxUZXh0
LCBmbG9hdCBibG9ja1dpZHRoKTsKICAgICBzdGF0aWMgdm9pZCBtZWFzdXJlRGVzY2VuZGFudFRl
eHRXaWR0aChjb25zdCBSZW5kZXJCbG9jayogY29udGFpbmVyLCBjb25zdCBSZW5kZXJCbG9jayog
YmxvY2tDb250YWluaW5nQWxsVGV4dCwgZmxvYXQgbWluVGV4dFdpZHRoLCBmbG9hdCYgdGV4dFdp
ZHRoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCBmYjQ4NmEzY2UyZTc5YTQ1MmE3OWY1MWUxYzU0YjE3MDE0NDBmOWYzLi4y
MWM5ZjNiMTYxY2MxODMyZDcyNGExZjJmMTM2YmI1ZjQzMjVkMzZhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTMtMDEtMTYgIFRpbSBWb2xvZGluZSAgPHRpbXZvbG9kaW5lQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBUZXh0IEF1dG9zaXppbmc6IGRvbid0IGF1dG9zaXplIGhlYWRlcnMgd2l0
aCBtdWx0aXBsZSBpbmxpbmUgbGlua3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDY3OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saS1saW5rcy1h
dXRvc2l6aW5nLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4dC1hdXRv
c2l6aW5nL2hlYWRlci1saS1saW5rcy1hdXRvc2l6aW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saW5rcy1hdXRvc2l6aW5nLWV4cGVjdGVkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saW5rcy1h
dXRvc2l6aW5nLmh0bWw6IEFkZGVkLgorCiAyMDEzLTAxLTE1ICBUYWIgQXRraW5zICA8amFja2Fs
bWFnZUBnbWFpbC5jb20+CiAKICAgICAgICAgVXBkYXRlIENTUzMgZ3JhZGllbnQgc3VwcG9ydCB0
byB0aGUgbGF0ZXN0IHNwZWMgdmVyc2lvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90
ZXh0LWF1dG9zaXppbmcvaGVhZGVyLWxpLWxpbmtzLWF1dG9zaXppbmctZXhwZWN0ZWQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saS1saW5rcy1hdXRvc2l6
aW5nLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTI0OTRiZTI4MDhiNmZmMWJkMGFkYTZjZTRi
NTZmOTRkMzhkMDY0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1h
dXRvc2l6aW5nL2hlYWRlci1saS1saW5rcy1hdXRvc2l6aW5nLWV4cGVjdGVkLmh0bWwKQEAgLTAs
MCArMSw0MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBzdHlsZT0iZm9udC1zaXplOiAxNnB4
Ij4KKzxoZWFkPgorCis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ODAwIj4K
KzxzdHlsZT4KKyAgYm9keSB7CisgICAgd2lkdGg6IDgwMHB4OworICAgIG1hcmdpbjogMDsKKyAg
ICBvdmVyZmxvdy15OiBoaWRkZW47CisgIH0KKzwvc3R5bGU+CisKKzwvaGVhZD4KKzxib2R5Pgor
Cis8dWw+CisgICAgPGxpIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+CisgICAgICAgIDxhIGhyZWY9
IiI+VGhlc2U8L2E+CisgICAgPC9saT4KKyAgICA8bGkgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4K
KyAgICAgICAgPGEgaHJlZj0iIj5MaW5rczwvYT4KKyAgICA8L2xpPgorICAgIDxsaSBzdHlsZT0i
ZGlzcGxheTppbmxpbmUiPgorICAgICAgICA8YSBocmVmPSIiPlNob3VsZDwvYT4KKyAgICA8L2xp
PgorICAgIDxsaSBzdHlsZT0iZGlzcGxheTppbmxpbmUiPgorICAgICAgICA8YSBocmVmPSIiPk5v
dCBiZTwvYT4KKyAgICA8L2xpPgorICAgIDxsaSBzdHlsZT0iZGlzcGxheTppbmxpbmUiPgorICAg
ICAgICA8YSBocmVmPSIiPkF1dG9zaXplZDwvYT4KKyAgICA8L2xpPgorPC91bD4KKzxkaXYgc3R5
bGU9ImZvbnQtc2l6ZTogMi41cmVtIj4KKyAgICBUaGlzIHBhcmFncmFwaCBzaG91bGQgYmUgYXV0
b3NpemVkIHRvIDQwcHggY29tcHV0ZWQgZm9udC1zaXplICgxNiAqIDgwMC8zMjApLAorICAgIHdo
ZXJlYXMgdGhlIGlubGluZSBsaW5rcyBpbiB0aGUgaGVhZGVyIGFib3ZlIHNob3VsZCBiZSBkZXRl
Y3RlZCBhcyBhIHJvdyBvZiBsaW5rcworICAgIGFuZCBoZW5jZSByZW5kZXJlZCBhdCB0aGVpciBk
ZWZhdWx0IHNpemUuCisgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVy
IGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvcgorICAgIGluY2lkaWR1bnQg
dXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuCis8L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1s
aS1saW5rcy1hdXRvc2l6aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3Npemlu
Zy9oZWFkZXItbGktbGlua3MtYXV0b3NpemluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiYTkzNDAwNmJh
ZmMyNmJhYTlhOGIwMjljYjQxZjQ1ZTlmODgyZGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9oZWFkZXItbGktbGlua3MtYXV0b3NpemluZy5odG1s
CkBAIC0wLDAgKzEsNTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgc3R5bGU9ImZvbnQtc2l6
ZTogMTZweCI+Cis8aGVhZD4KKworPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRo
PTgwMCI+Cis8c3R5bGU+CisgIGJvZHkgeworICAgIHdpZHRoOiA4MDBweDsKKyAgICBtYXJnaW46
IDA7CisgICAgb3ZlcmZsb3cteTogaGlkZGVuOworICB9Cis8L3N0eWxlPgorCis8c2NyaXB0Pgor
aWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFRleHRBdXRvc2l6aW5nRW5hYmxlZCh0cnVlKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRp
bmdzLnNldFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKDMyMCwgNDgwKTsKK30gZWxz
ZSBpZiAod2luZG93LmNvbnNvbGUgJiYgY29uc29sZS53YXJuKSB7CisgICAgY29uc29sZS53YXJu
KCJUaGlzIHRlc3QgZGVwZW5kcyBvbiB0aGUgVGV4dCBBdXRvc2l6aW5nIHNldHRpbmcgYmVpbmcg
dHJ1ZSwgc28gcnVuIGl0IGluIER1bXBSZW5kZXJUcmVlLCBvciBtYW51YWxseSBlbmFibGUgVGV4
dCBBdXRvc2l6aW5nLCBhbmQgZWl0aGVyIHVzZSBhIG1vYmlsZSBkZXZpY2Ugd2l0aCAzMjBweCBk
ZXZpY2Utd2lkdGggKGxpa2UgTmV4dXMgUyBvciBpUGhvbmUpLCBvciBkZWZpbmUgSEFDS19GT1JD
RV9URVhUX0FVVE9TSVpJTkdfT05fREVTS1RPUC4iKTsKK30KKzwvc2NyaXB0PgorCis8L2hlYWQ+
Cis8Ym9keT4KKworPHVsPgorICAgIDxsaSBzdHlsZT0iZGlzcGxheTppbmxpbmUiPgorICAgICAg
ICA8YSBocmVmPSIiPlRoZXNlPC9hPgorICAgIDwvbGk+CisgICAgPGxpIHN0eWxlPSJkaXNwbGF5
OmlubGluZSI+CisgICAgICAgIDxhIGhyZWY9IiI+TGlua3M8L2E+CisgICAgPC9saT4KKyAgICA8
bGkgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4KKyAgICAgICAgPGEgaHJlZj0iIj5TaG91bGQ8L2E+
CisgICAgPC9saT4KKyAgICA8bGkgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4KKyAgICAgICAgPGEg
aHJlZj0iIj5Ob3QgYmU8L2E+CisgICAgPC9saT4KKyAgICA8bGkgc3R5bGU9ImRpc3BsYXk6aW5s
aW5lIj4KKyAgICAgICAgPGEgaHJlZj0iIj5BdXRvc2l6ZWQ8L2E+CisgICAgPC9saT4KKzwvdWw+
Cis8ZGl2PgorICAgIFRoaXMgcGFyYWdyYXBoIHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gNDBweCBj
b21wdXRlZCBmb250LXNpemUgKDE2ICogODAwLzMyMCksCisgICAgd2hlcmVhcyB0aGUgaW5saW5l
IGxpbmtzIGluIHRoZSBoZWFkZXIgYWJvdmUgc2hvdWxkIGJlIGRldGVjdGVkIGFzIGEgcm93IG9m
IGxpbmtzCisgICAgYW5kIGhlbmNlIHJlbmRlcmVkIGF0IHRoZWlyIGRlZmF1bHQgc2l6ZS4KKyAg
ICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxp
dCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yCisgICAgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9s
b3JlIG1hZ25hIGFsaXF1YS4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvaGVhZGVyLWxpbmtzLWF1dG9zaXppbmct
ZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1s
aW5rcy1hdXRvc2l6aW5nLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzdmNTcwYmJiMjYyNjY5
OTczODgzOGZjYTcxZmQ4MjA3N2VhNWYzNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saW5rcy1hdXRvc2l6aW5nLWV4cGVjdGVkLmh0
bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBzdHlsZT0iZm9udC1z
aXplOiAxNnB4Ij4KKzxoZWFkPgorCis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lk
dGg9ODAwIj4KKzxzdHlsZT4KKyAgYm9keSB7CisgICAgd2lkdGg6IDgwMHB4OworICAgIG1hcmdp
bjogMDsKKyAgICBvdmVyZmxvdy15OiBoaWRkZW47CisgIH0KKzwvc3R5bGU+CisKKzwvaGVhZD4K
Kzxib2R5PgorCis8ZGl2PgorICAgIDxhIGhyZWY9IiI+VGhlc2U8L2E+CisgICAgJmd0OworICAg
IDxhIGhyZWY9IiI+TGlua3M8L2E+CisgICAgJmd0OworICAgIDxhIGhyZWY9IiI+U2hvdWxkPC9h
PgorICAgICZndDsKKyAgICA8YSBocmVmPSIiPk5vdCBiZTwvYT4KKyAgICAmZ3Q7CisgICAgPGEg
aHJlZj0iIj5BdXRvc2l6ZWQ8L2E+CisgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOiAyLjVyZW0i
PgorICAgICAgICBUaGlzIHBhcmFncmFwaCBzaG91bGQgYmUgYXV0b3NpemVkIHRvIDQwcHggY29t
cHV0ZWQgZm9udC1zaXplICgxNiAqIDgwMC8zMjApLAorICAgICAgICB3aGVyZWFzIHRoZSBpbmxp
bmUgbGlua3MgaW4gdGhlIGhlYWRlciBhYm92ZSBzaG91bGQgYmUgZGV0ZWN0ZWQgYXMgYSByb3cg
b2YgbGlua3MKKyAgICAgICAgYW5kIGhlbmNlIHJlbmRlcmVkIGF0IHRoZWlyIGRlZmF1bHQgc2l6
ZS4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0iZm9udC1zaXplOiAyLjVyZW0iPgor
ICAgIFRoaXMgcGFyYWdyYXBoIHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gNDBweCBjb21wdXRlZCBm
b250LXNpemUgKDE2ICogODAwLzMyMCkuCisgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQs
IGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvcgorICAg
IGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuCis8L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6
aW5nL2hlYWRlci1saW5rcy1hdXRvc2l6aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQt
YXV0b3NpemluZy9oZWFkZXItbGlua3MtYXV0b3NpemluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyNjJm
OGNhNjFjY2RiOWM5YzQxMDVhYjVlNjk1NDA0OGQyMzk1MGIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9oZWFkZXItbGlua3MtYXV0b3NpemluZy5o
dG1sCkBAIC0wLDAgKzEsNDggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgc3R5bGU9ImZvbnQt
c2l6ZTogMTZweCI+Cis8aGVhZD4KKworPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9Indp
ZHRoPTgwMCI+Cis8c3R5bGU+CisgIGJvZHkgeworICAgIHdpZHRoOiA4MDBweDsKKyAgICBtYXJn
aW46IDA7CisgICAgb3ZlcmZsb3cteTogaGlkZGVuOworICB9Cis8L3N0eWxlPgorCis8c2NyaXB0
PgoraWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdz
LnNldFRleHRBdXRvc2l6aW5nRW5hYmxlZCh0cnVlKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNl
dHRpbmdzLnNldFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKDMyMCwgNDgwKTsKK30g
ZWxzZSBpZiAod2luZG93LmNvbnNvbGUgJiYgY29uc29sZS53YXJuKSB7CisgICAgY29uc29sZS53
YXJuKCJUaGlzIHRlc3QgZGVwZW5kcyBvbiB0aGUgVGV4dCBBdXRvc2l6aW5nIHNldHRpbmcgYmVp
bmcgdHJ1ZSwgc28gcnVuIGl0IGluIER1bXBSZW5kZXJUcmVlLCBvciBtYW51YWxseSBlbmFibGUg
VGV4dCBBdXRvc2l6aW5nLCBhbmQgZWl0aGVyIHVzZSBhIG1vYmlsZSBkZXZpY2Ugd2l0aCAzMjBw
eCBkZXZpY2Utd2lkdGggKGxpa2UgTmV4dXMgUyBvciBpUGhvbmUpLCBvciBkZWZpbmUgSEFDS19G
T1JDRV9URVhUX0FVVE9TSVpJTkdfT05fREVTS1RPUC4iKTsKK30KKzwvc2NyaXB0PgorCis8L2hl
YWQ+Cis8Ym9keT4KKworPGRpdj4KKyAgICA8YSBocmVmPSIiPlRoZXNlPC9hPgorICAgICZndDsK
KyAgICA8YSBocmVmPSIiPkxpbmtzPC9hPgorICAgICZndDsKKyAgICA8YSBocmVmPSIiPlNob3Vs
ZDwvYT4KKyAgICAmZ3Q7CisgICAgPGEgaHJlZj0iIj5Ob3QgYmU8L2E+CisgICAgJmd0OworICAg
IDxhIGhyZWY9IiI+QXV0b3NpemVkPC9hPgorICAgIDxkaXY+CisgICAgICAgIFRoaXMgcGFyYWdy
YXBoIHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gNDBweCBjb21wdXRlZCBmb250LXNpemUgKDE2ICog
ODAwLzMyMCksCisgICAgICAgIHdoZXJlYXMgdGhlIGlubGluZSBsaW5rcyBpbiB0aGUgaGVhZGVy
IGFib3ZlIHNob3VsZCBiZSBkZXRlY3RlZCBhcyBhIHJvdyBvZiBsaW5rcworICAgICAgICBhbmQg
aGVuY2UgcmVuZGVyZWQgYXQgdGhlaXIgZGVmYXVsdCBzaXplLgorICAgIDwvZGl2PgorPC9kaXY+
Cis8ZGl2PgorICAgIFRoaXMgcGFyYWdyYXBoIHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gNDBweCBj
b21wdXRlZCBmb250LXNpemUgKDE2ICogODAwLzMyMCkuCisgICAgTG9yZW0gaXBzdW0gZG9sb3Ig
c2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRl
bXBvcgorICAgIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuCis8
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183479</attachid>
            <date>2013-01-18 09:15:03 -0800</date>
            <delta_ts>2013-01-18 10:34:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106792-20130118171201.patch</filename>
            <type>text/plain</type>
            <size>15077</size>
            <attacher>timvolodine</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5ODM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTE1ZDllZjQyOThmZjgw
MWY5NzA3NWQ4YTgzMjMzODNmY2NjZDA5YS4uYzI2MzVhMjZjNDVkZDE4YjkwOWM0YWI3YzYxMGRj
ZjIzZTZiODcyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEzLTAxLTE4ICBUaW0g
Vm9sb2RpbmUgIDx0aW12b2xvZGluZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGV4dCBBdXRv
c2l6aW5nOiBkb24ndCBhdXRvc2l6ZSBoZWFkZXJzIHdpdGggbXVsdGlwbGUgaW5saW5lIGxpbmtz
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2Nzky
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBpbmNsdWRlcyBjb2RlIGZvciBkZXRlY3Rpbmcgcm93cyBvZiBsaW5rcyB0eXBpY2FsbHkg
c2VlbgorICAgICAgICBpbiBoZWFkZXJzIG9yIGZvb3RlcnMgb2Ygd2VicGFnZXMuIFN1Y2ggcm93
cyBvZiBsaW5rcyBzaG91bGQgbm90IGJlCisgICAgICAgIGF1dG9zaXplZC4KKworICAgICAgICBU
ZXN0czogZmFzdC90ZXh0LWF1dG9zaXppbmcvaGVhZGVyLWxpLWxpbmtzLWF1dG9zaXppbmcuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC90ZXh0LWF1dG9zaXppbmcvaGVhZGVyLWxpbmtzLWF1dG9z
aXppbmctZGlmZmVyZW50LWZvbnRzaXplLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvdGV4dC1h
dXRvc2l6aW5nL2hlYWRlci1saW5rcy1hdXRvc2l6aW5nLmh0bWwKKworICAgICAgICAqIHJlbmRl
cmluZy9UZXh0QXV0b3NpemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6
OmNvbnRhaW5lclNob3VsZEJlQXV0b3NpemVkKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRv
c2l6ZXI6OmNvbnRhaW5lcklzUm93T2ZMaW5rcyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvVGV4dEF1dG9zaXplci5oOgorCiAyMDEzLTAxLTE1ICBSeW9zdWtlIE5p
d2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEdUSysgYW5kIFF0IGJ1aWxkIGZpeCBh
ZnRlciByMTM5ODMzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRB
dXRvc2l6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3Bw
CmluZGV4IGNkMWI1ZmFmMzg5ODZkMmMyNGU2ZjhkNmQ0YjE2NGFlYWMwY2Q5YmIuLjkyNTZhNDdi
NzM5YzAxMDgxZWExZjUxZTEyNWNhNjZiMDExNTMwMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvVGV4dEF1dG9zaXplci5jcHAKQEAgLTI3OCw2ICsyNzgsOSBAQCBib29sIFRleHRBdXRv
c2l6ZXI6OmNvbnRhaW5lclNob3VsZEJlQXV0b3NpemVkKGNvbnN0IFJlbmRlckJsb2NrKiBjb250
YWluZXIpCiAgICAgaWYgKGNvbnRhaW5lckNvbnRhaW5zT25lT2ZUYWdzKGNvbnRhaW5lciwgZm9y
bUlucHV0VGFncygpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKGNvbnRhaW5l
cklzUm93T2ZMaW5rcyhjb250YWluZXIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICAv
LyBEb24ndCBhdXRvc2l6ZSBibG9jay1sZXZlbCB0ZXh0IHRoYXQgY2FuJ3Qgd3JhcCAoYXMgaXQn
cyBsaWtlbHkgdG8KICAgICAvLyBleHBhbmQgc2lkZXdheXMgYW5kIGJyZWFrIHRoZSBwYWdlJ3Mg
bGF5b3V0KS4KICAgICBpZiAoIWNvbnRhaW5lci0+c3R5bGUoKS0+YXV0b1dyYXAoKSkKQEAgLTMw
MSw2ICszMDQsNDUgQEAgYm9vbCBUZXh0QXV0b3NpemVyOjpjb250YWluZXJDb250YWluc09uZU9m
VGFncyhjb25zdCBSZW5kZXJCbG9jayogY29udGFpbmVyLCBjb24KICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKK2Jvb2wgVGV4dEF1dG9zaXplcjo6Y29udGFpbmVySXNSb3dPZkxpbmtzKGNvbnN0IFJl
bmRlck9iamVjdCogY29udGFpbmVyKQoreworICAgIC8vIEEgInJvdyBvZiBsaW5rcyIgaXMgYSBj
b250YWluZXIgZm9yIHdoaWNoIGhvbGRzOgorICAgIC8vICAxLiBpdCBzaG91bGQgbm90IGNvbnRh
aW4gbm9uLWxpbmsgdGV4dCBlbGVtZW50cyBsb25nZXIgdGhhbiAzIGNoYXJhY3RlcnMKKyAgICAv
LyAgMi4gaXQgc2hvdWxkIGNvbnRhaW4gYXQgbGVhc3QgMyBpbmxpbmUgbGlua3MsIGFuZCBhbGwg
dGhlIGxpbmtzIHNob3VsZAorICAgIC8vICAgICBoYXZlIHRoZSBzYW1lIHNwZWNpZmllZCBmb250
IHNpemUKKyAgICAvLyAgMy4gaXQgc2hvdWxkIG5vdCBjb250YWluIDxicj4gZWxlbWVudHMKKyAg
ICAvLyAgNC4gaXQgc2hvdWxkIGNvbnRhaW4gb25seSBpbmxpbmUgZWxlbWVudHMgdW5sZXNzIHRo
ZXkgYXJlIGNvbnRhaW5lcnMsCisgICAgLy8gICAgIGNoaWxkcmVuIG9mIGxpbmsgZWxlbWVudHMg
b3IgY2hpbGRyZW4gb2Ygc3ViLWNvbnRhaW5lcnMuCisgICAgaW50IGxpbmtDb3VudCA9IDA7Cisg
ICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGNvbnRhaW5lci0+bmV4dEluUHJlT3JkZXIoY29u
dGFpbmVyKTsKKyAgICBmbG9hdCBtYXRjaGluZ0ZvbnRTaXplID0gLTE7CisKKyAgICB3aGlsZSAo
cmVuZGVyZXIpIHsKKyAgICAgICAgaWYgKCFpc0F1dG9zaXppbmdDb250YWluZXIocmVuZGVyZXIp
KSB7CisgICAgICAgICAgICBpZiAocmVuZGVyZXItPmlzVGV4dCgpICYmIHRvUmVuZGVyVGV4dChy
ZW5kZXJlciktPnRleHQoKS0+c3RyaXBXaGl0ZVNwYWNlKCktPmxlbmd0aCgpID4gMykKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoIXJlbmRlcmVyLT5pc0lu
bGluZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmIChy
ZW5kZXJlci0+aXNCUigpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
fQorICAgICAgICBpZiAocmVuZGVyZXItPnN0eWxlKCktPmlzTGluaygpKSB7CisgICAgICAgICAg
ICBpZiAobWF0Y2hpbmdGb250U2l6ZSA8IDApCisgICAgICAgICAgICAgICAgbWF0Y2hpbmdGb250
U2l6ZSA9IHJlbmRlcmVyLT5zdHlsZSgpLT5zcGVjaWZpZWRGb250U2l6ZSgpOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIGlmIChtYXRjaGluZ0ZvbnRTaXplICE9IHJlbmRlcmVy
LT5zdHlsZSgpLT5zcGVjaWZpZWRGb250U2l6ZSgpKQorICAgICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICAgICAgICAgIGxpbmtDb3VudCsrOworICAgICAgICAgICAgLy8gU2tp
cCB0cmF2ZXJzaW5nIGRlc2NlbmRhbnRzIG9mIHRoZSBsaW5rLgorICAgICAgICAgICAgcmVuZGVy
ZXIgPSByZW5kZXJlci0+bmV4dEluUHJlT3JkZXJBZnRlckNoaWxkcmVuKGNvbnRhaW5lcik7Cisg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgcmVuZGVyZXIgPSBuZXh0SW5QcmVPcmRlclNraXBw
aW5nRGVzY2VuZGFudHNPZkNvbnRhaW5lcnMocmVuZGVyZXIsIGNvbnRhaW5lcik7CisgICAgfQor
CisgICAgcmV0dXJuIChsaW5rQ291bnQgPj0gMyk7Cit9CisKIGJvb2wgVGV4dEF1dG9zaXplcjo6
Y29udGVudEhlaWdodElzQ29uc3RyYWluZWQoY29uc3QgUmVuZGVyQmxvY2sqIGNvbnRhaW5lcikK
IHsKICAgICAvLyBGSVhNRTogUHJvcGFnYXRlIGNvbnN0cmFpbmVkbmVzcyBkb3duIHRoZSB0cmVl
LCB0byBhdm9pZCBpbmVmZmljaWVudGx5IHdhbGtpbmcgYmFjayB1cCBmcm9tIGVhY2ggYm94Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmgKaW5kZXggMTY4YTI4NWI5NThh
OTQ4ZTg4YWI2MDBlMGIxNzNkMDk1ODIyOTQ2MC4uZTFjMjJhZWI5ZGIzYmM5OWM4YjczZTFiMDY4
OWM0ZjZhMTcwNmNmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRB
dXRvc2l6ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5o
CkBAIC03MSw2ICs3MSw3IEBAIHByaXZhdGU6CiAKICAgICBzdGF0aWMgYm9vbCBjb250YWluZXJT
aG91bGRCZUF1dG9zaXplZChjb25zdCBSZW5kZXJCbG9jayogY29udGFpbmVyKTsKICAgICBzdGF0
aWMgYm9vbCBjb250YWluZXJDb250YWluc09uZU9mVGFncyhjb25zdCBSZW5kZXJCbG9jayogY2x1
c3RlciwgY29uc3QgVmVjdG9yPFF1YWxpZmllZE5hbWU+JiB0YWdzKTsKKyAgICBzdGF0aWMgYm9v
bCBjb250YWluZXJJc1Jvd09mTGlua3MoY29uc3QgUmVuZGVyT2JqZWN0KiBjb250YWluZXIpOwog
ICAgIHN0YXRpYyBib29sIGNvbnRlbnRIZWlnaHRJc0NvbnN0cmFpbmVkKGNvbnN0IFJlbmRlckJs
b2NrKiBjb250YWluZXIpOwogICAgIHN0YXRpYyBib29sIGNsdXN0ZXJTaG91bGRCZUF1dG9zaXpl
ZChjb25zdCBSZW5kZXJCbG9jayogYmxvY2tDb250YWluaW5nQWxsVGV4dCwgZmxvYXQgYmxvY2tX
aWR0aCk7CiAgICAgc3RhdGljIHZvaWQgbWVhc3VyZURlc2NlbmRhbnRUZXh0V2lkdGgoY29uc3Qg
UmVuZGVyQmxvY2sqIGNvbnRhaW5lciwgY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrQ29udGFpbmlu
Z0FsbFRleHQsIGZsb2F0IG1pblRleHRXaWR0aCwgZmxvYXQmIHRleHRXaWR0aCk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
ZmI0ODZhM2NlMmU3OWE0NTJhNzlmNTFlMWM1NGIxNzAxNDQwZjlmMy4uNTgyZDYxZmE2NmQyZjM5
NjdmOTFmNzA1MmRiMzNlNDY4ZGUxY2ZlNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEzLTAx
LTE4ICBUaW0gVm9sb2RpbmUgIDx0aW12b2xvZGluZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
VGV4dCBBdXRvc2l6aW5nOiBkb24ndCBhdXRvc2l6ZSBoZWFkZXJzIHdpdGggbXVsdGlwbGUgaW5s
aW5lIGxpbmtzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA2NzkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBmYXN0L3RleHQtYXV0b3NpemluZy9oZWFkZXItbGktbGlua3MtYXV0b3NpemluZy1leHBl
Y3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3RleHQtYXV0b3NpemluZy9oZWFkZXIt
bGktbGlua3MtYXV0b3NpemluZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3RleHQtYXV0
b3NpemluZy9oZWFkZXItbGlua3MtYXV0b3NpemluZy1kaWZmZXJlbnQtZm9udHNpemUtZXhwZWN0
ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC90ZXh0LWF1dG9zaXppbmcvaGVhZGVyLWxp
bmtzLWF1dG9zaXppbmctZGlmZmVyZW50LWZvbnRzaXplLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saW5rcy1hdXRvc2l6aW5nLWV4cGVjdGVkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saW5rcy1h
dXRvc2l6aW5nLmh0bWw6IEFkZGVkLgorCiAyMDEzLTAxLTE1ICBUYWIgQXRraW5zICA8amFja2Fs
bWFnZUBnbWFpbC5jb20+CiAKICAgICAgICAgVXBkYXRlIENTUzMgZ3JhZGllbnQgc3VwcG9ydCB0
byB0aGUgbGF0ZXN0IHNwZWMgdmVyc2lvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90
ZXh0LWF1dG9zaXppbmcvaGVhZGVyLWxpLWxpbmtzLWF1dG9zaXppbmctZXhwZWN0ZWQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saS1saW5rcy1hdXRvc2l6
aW5nLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTI0OTRiZTI4MDhiNmZmMWJkMGFkYTZjZTRi
NTZmOTRkMzhkMDY0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1h
dXRvc2l6aW5nL2hlYWRlci1saS1saW5rcy1hdXRvc2l6aW5nLWV4cGVjdGVkLmh0bWwKQEAgLTAs
MCArMSw0MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBzdHlsZT0iZm9udC1zaXplOiAxNnB4
Ij4KKzxoZWFkPgorCis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ODAwIj4K
KzxzdHlsZT4KKyAgYm9keSB7CisgICAgd2lkdGg6IDgwMHB4OworICAgIG1hcmdpbjogMDsKKyAg
ICBvdmVyZmxvdy15OiBoaWRkZW47CisgIH0KKzwvc3R5bGU+CisKKzwvaGVhZD4KKzxib2R5Pgor
Cis8dWw+CisgICAgPGxpIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+CisgICAgICAgIDxhIGhyZWY9
IiI+VGhlc2U8L2E+CisgICAgPC9saT4KKyAgICA8bGkgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4K
KyAgICAgICAgPGEgaHJlZj0iIj5MaW5rczwvYT4KKyAgICA8L2xpPgorICAgIDxsaSBzdHlsZT0i
ZGlzcGxheTppbmxpbmUiPgorICAgICAgICA8YSBocmVmPSIiPlNob3VsZDwvYT4KKyAgICA8L2xp
PgorICAgIDxsaSBzdHlsZT0iZGlzcGxheTppbmxpbmUiPgorICAgICAgICA8YSBocmVmPSIiPk5v
dCBiZTwvYT4KKyAgICA8L2xpPgorICAgIDxsaSBzdHlsZT0iZGlzcGxheTppbmxpbmUiPgorICAg
ICAgICA8YSBocmVmPSIiPkF1dG9zaXplZDwvYT4KKyAgICA8L2xpPgorPC91bD4KKzxkaXYgc3R5
bGU9ImZvbnQtc2l6ZTogMi41cmVtIj4KKyAgICBUaGlzIHBhcmFncmFwaCBzaG91bGQgYmUgYXV0
b3NpemVkIHRvIDQwcHggY29tcHV0ZWQgZm9udC1zaXplICgxNiAqIDgwMC8zMjApLAorICAgIHdo
ZXJlYXMgdGhlIGlubGluZSBsaW5rcyBpbiB0aGUgaGVhZGVyIGFib3ZlIHNob3VsZCBiZSBkZXRl
Y3RlZCBhcyBhIHJvdyBvZiBsaW5rcworICAgIGFuZCBoZW5jZSByZW5kZXJlZCBhdCB0aGVpciBk
ZWZhdWx0IHNpemUuCisgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVy
IGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvcgorICAgIGluY2lkaWR1bnQg
dXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuCis8L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1s
aS1saW5rcy1hdXRvc2l6aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3Npemlu
Zy9oZWFkZXItbGktbGlua3MtYXV0b3NpemluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiYTkzNDAwNmJh
ZmMyNmJhYTlhOGIwMjljYjQxZjQ1ZTlmODgyZGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9oZWFkZXItbGktbGlua3MtYXV0b3NpemluZy5odG1s
CkBAIC0wLDAgKzEsNTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgc3R5bGU9ImZvbnQtc2l6
ZTogMTZweCI+Cis8aGVhZD4KKworPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRo
PTgwMCI+Cis8c3R5bGU+CisgIGJvZHkgeworICAgIHdpZHRoOiA4MDBweDsKKyAgICBtYXJnaW46
IDA7CisgICAgb3ZlcmZsb3cteTogaGlkZGVuOworICB9Cis8L3N0eWxlPgorCis8c2NyaXB0Pgor
aWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFRleHRBdXRvc2l6aW5nRW5hYmxlZCh0cnVlKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRp
bmdzLnNldFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKDMyMCwgNDgwKTsKK30gZWxz
ZSBpZiAod2luZG93LmNvbnNvbGUgJiYgY29uc29sZS53YXJuKSB7CisgICAgY29uc29sZS53YXJu
KCJUaGlzIHRlc3QgZGVwZW5kcyBvbiB0aGUgVGV4dCBBdXRvc2l6aW5nIHNldHRpbmcgYmVpbmcg
dHJ1ZSwgc28gcnVuIGl0IGluIER1bXBSZW5kZXJUcmVlLCBvciBtYW51YWxseSBlbmFibGUgVGV4
dCBBdXRvc2l6aW5nLCBhbmQgZWl0aGVyIHVzZSBhIG1vYmlsZSBkZXZpY2Ugd2l0aCAzMjBweCBk
ZXZpY2Utd2lkdGggKGxpa2UgTmV4dXMgUyBvciBpUGhvbmUpLCBvciBkZWZpbmUgSEFDS19GT1JD
RV9URVhUX0FVVE9TSVpJTkdfT05fREVTS1RPUC4iKTsKK30KKzwvc2NyaXB0PgorCis8L2hlYWQ+
Cis8Ym9keT4KKworPHVsPgorICAgIDxsaSBzdHlsZT0iZGlzcGxheTppbmxpbmUiPgorICAgICAg
ICA8YSBocmVmPSIiPlRoZXNlPC9hPgorICAgIDwvbGk+CisgICAgPGxpIHN0eWxlPSJkaXNwbGF5
OmlubGluZSI+CisgICAgICAgIDxhIGhyZWY9IiI+TGlua3M8L2E+CisgICAgPC9saT4KKyAgICA8
bGkgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4KKyAgICAgICAgPGEgaHJlZj0iIj5TaG91bGQ8L2E+
CisgICAgPC9saT4KKyAgICA8bGkgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4KKyAgICAgICAgPGEg
aHJlZj0iIj5Ob3QgYmU8L2E+CisgICAgPC9saT4KKyAgICA8bGkgc3R5bGU9ImRpc3BsYXk6aW5s
aW5lIj4KKyAgICAgICAgPGEgaHJlZj0iIj5BdXRvc2l6ZWQ8L2E+CisgICAgPC9saT4KKzwvdWw+
Cis8ZGl2PgorICAgIFRoaXMgcGFyYWdyYXBoIHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gNDBweCBj
b21wdXRlZCBmb250LXNpemUgKDE2ICogODAwLzMyMCksCisgICAgd2hlcmVhcyB0aGUgaW5saW5l
IGxpbmtzIGluIHRoZSBoZWFkZXIgYWJvdmUgc2hvdWxkIGJlIGRldGVjdGVkIGFzIGEgcm93IG9m
IGxpbmtzCisgICAgYW5kIGhlbmNlIHJlbmRlcmVkIGF0IHRoZWlyIGRlZmF1bHQgc2l6ZS4KKyAg
ICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxp
dCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yCisgICAgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9s
b3JlIG1hZ25hIGFsaXF1YS4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvaGVhZGVyLWxpbmtzLWF1dG9zaXppbmct
ZGlmZmVyZW50LWZvbnRzaXplLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQt
YXV0b3NpemluZy9oZWFkZXItbGlua3MtYXV0b3NpemluZy1kaWZmZXJlbnQtZm9udHNpemUtZXhw
ZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWFmODcxMjNiMDkxY2MyZDJlY2ZjMTU0ZGQ1Yjc4NjUz
MGM1ZmJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXpp
bmcvaGVhZGVyLWxpbmtzLWF1dG9zaXppbmctZGlmZmVyZW50LWZvbnRzaXplLWV4cGVjdGVkLmh0
bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBzdHlsZT0iZm9udC1z
aXplOiAxNnB4Ij4KKzxoZWFkPgorCis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lk
dGg9ODAwIj4KKzxzdHlsZT4KKyAgYm9keSB7CisgICAgd2lkdGg6IDgwMHB4OworICAgIG1hcmdp
bjogMDsKKyAgICBvdmVyZmxvdy15OiBoaWRkZW47CisgIH0KKzwvc3R5bGU+CisKKzwvaGVhZD4K
Kzxib2R5PgorCis8ZGl2IHN0eWxlPSJmb250LXNpemU6IDIuNXJlbSI+CisgICAgPGEgaHJlZj0i
Ij5UaGVzZTwvYT4KKyAgICAmZ3Q7CisgICAgPGEgaHJlZj0iIiBzdHlsZT0iZm9udC1zaXplOiA0
NHB4Ij5MaW5rczwvYT4KKyAgICAmZ3Q7CisgICAgPGEgaHJlZj0iIj5TaG91bGQ8L2E+CisgICAg
Jmd0OworICAgIDxhIGhyZWY9IiI+QmU8L2E+CisgICAgJmd0OworICAgIDxhIGhyZWY9IiI+QXV0
b3NpemVkPC9hPgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJmb250LXNpemU6IDIuNXJlbSI+CisgICAg
VGhpcyBwYXJhZ3JhcGggc2hvdWxkIGJlIGF1dG9zaXplZCB0byA0MHB4IGNvbXB1dGVkIGZvbnQt
c2l6ZSAoMTYgKiA4MDAvMzIwKSwKKyAgICBhbmQgdGhlIGlubGluZSBsaW5rcyBhYm92ZSBzaG91
bGQgbm90IGJlIGRldGVjdGVkIGFzIGEgcm93IG9mIGxpbmtzIGJlY2F1c2UgdGhlCisgICAgbGlu
a3MgaGF2ZSBkaWZmZXJlbnQgZm9udCBzaXplcywgYW5kIGhlbmNlIHRoZXkgc2hvdWxkIGJlIHJl
bmRlcmVkIGF0IHRoZWlyIGRlZmF1bHQgc2l6ZS4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvaGVhZGVyLWxpbmtz
LWF1dG9zaXppbmctZGlmZmVyZW50LWZvbnRzaXplLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Rl
eHQtYXV0b3NpemluZy9oZWFkZXItbGlua3MtYXV0b3NpemluZy1kaWZmZXJlbnQtZm9udHNpemUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lMDEyMzcwYjA0YjU0OTdjOTg0YjVkNjY5MDkyMDMwNGUwNjM0YmFi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvaGVh
ZGVyLWxpbmtzLWF1dG9zaXppbmctZGlmZmVyZW50LWZvbnRzaXplLmh0bWwKQEAgLTAsMCArMSw0
MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBzdHlsZT0iZm9udC1zaXplOiAxNnB4Ij4KKzxo
ZWFkPgorCis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ODAwIj4KKzxzdHls
ZT4KKyAgYm9keSB7CisgICAgd2lkdGg6IDgwMHB4OworICAgIG1hcmdpbjogMDsKKyAgICBvdmVy
Zmxvdy15OiBoaWRkZW47CisgIH0KKzwvc3R5bGU+CisKKzxzY3JpcHQ+CitpZiAod2luZG93Lmlu
dGVybmFscykgeworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0VGV4dEF1dG9zaXpp
bmdFbmFibGVkKHRydWUpOworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0VGV4dEF1
dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGUoMzIwLCA0ODApOworfSBlbHNlIGlmICh3aW5kb3cu
Y29uc29sZSAmJiBjb25zb2xlLndhcm4pIHsKKyAgICBjb25zb2xlLndhcm4oIlRoaXMgdGVzdCBk
ZXBlbmRzIG9uIHRoZSBUZXh0IEF1dG9zaXppbmcgc2V0dGluZyBiZWluZyB0cnVlLCBzbyBydW4g
aXQgaW4gRHVtcFJlbmRlclRyZWUsIG9yIG1hbnVhbGx5IGVuYWJsZSBUZXh0IEF1dG9zaXppbmcs
IGFuZCBlaXRoZXIgdXNlIGEgbW9iaWxlIGRldmljZSB3aXRoIDMyMHB4IGRldmljZS13aWR0aCAo
bGlrZSBOZXh1cyBTIG9yIGlQaG9uZSksIG9yIGRlZmluZSBIQUNLX0ZPUkNFX1RFWFRfQVVUT1NJ
WklOR19PTl9ERVNLVE9QLiIpOworfQorPC9zY3JpcHQ+CisKKzwvaGVhZD4KKzxib2R5PgorCis8
ZGl2PgorICAgIDxhIGhyZWY9IiI+VGhlc2U8L2E+CisgICAgJmd0OworICAgIDxhIGhyZWY9IiIg
c3R5bGU9ImZvbnQtc2l6ZTogMjRweCI+TGlua3M8L2E+CisgICAgJmd0OworICAgIDxhIGhyZWY9
IiI+U2hvdWxkPC9hPgorICAgICZndDsKKyAgICA8YSBocmVmPSIiPkJlPC9hPgorICAgICZndDsK
KyAgICA8YSBocmVmPSIiPkF1dG9zaXplZDwvYT4KKzwvZGl2PgorPGRpdj4KKyAgICBUaGlzIHBh
cmFncmFwaCBzaG91bGQgYmUgYXV0b3NpemVkIHRvIDQwcHggY29tcHV0ZWQgZm9udC1zaXplICgx
NiAqIDgwMC8zMjApLAorICAgIGFuZCB0aGUgaW5saW5lIGxpbmtzIGFib3ZlIHNob3VsZCBub3Qg
YmUgZGV0ZWN0ZWQgYXMgYSByb3cgb2YgbGlua3MgYmVjYXVzZSB0aGUKKyAgICBsaW5rcyBoYXZl
IGRpZmZlcmVudCBmb250IHNpemVzLCBhbmQgaGVuY2UgdGhleSBzaG91bGQgYmUgcmVuZGVyZWQg
YXQgdGhlaXIgZGVmYXVsdCBzaXplLgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9oZWFkZXItbGlua3MtYXV0b3Np
emluZy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvaGVh
ZGVyLWxpbmtzLWF1dG9zaXppbmctZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zN2Y1NzBiYmIy
NjI2Njk5NzM4ODM4ZmNhNzFmZDgyMDc3ZWE1ZjM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvaGVhZGVyLWxpbmtzLWF1dG9zaXppbmctZXhwZWN0
ZWQuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIHN0eWxlPSJm
b250LXNpemU6IDE2cHgiPgorPGhlYWQ+CisKKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50
PSJ3aWR0aD04MDAiPgorPHN0eWxlPgorICBib2R5IHsKKyAgICB3aWR0aDogODAwcHg7CisgICAg
bWFyZ2luOiAwOworICAgIG92ZXJmbG93LXk6IGhpZGRlbjsKKyAgfQorPC9zdHlsZT4KKworPC9o
ZWFkPgorPGJvZHk+CisKKzxkaXY+CisgICAgPGEgaHJlZj0iIj5UaGVzZTwvYT4KKyAgICAmZ3Q7
CisgICAgPGEgaHJlZj0iIj5MaW5rczwvYT4KKyAgICAmZ3Q7CisgICAgPGEgaHJlZj0iIj5TaG91
bGQ8L2E+CisgICAgJmd0OworICAgIDxhIGhyZWY9IiI+Tm90IGJlPC9hPgorICAgICZndDsKKyAg
ICA8YSBocmVmPSIiPkF1dG9zaXplZDwvYT4KKyAgICA8ZGl2IHN0eWxlPSJmb250LXNpemU6IDIu
NXJlbSI+CisgICAgICAgIFRoaXMgcGFyYWdyYXBoIHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gNDBw
eCBjb21wdXRlZCBmb250LXNpemUgKDE2ICogODAwLzMyMCksCisgICAgICAgIHdoZXJlYXMgdGhl
IGlubGluZSBsaW5rcyBpbiB0aGUgaGVhZGVyIGFib3ZlIHNob3VsZCBiZSBkZXRlY3RlZCBhcyBh
IHJvdyBvZiBsaW5rcworICAgICAgICBhbmQgaGVuY2UgcmVuZGVyZWQgYXQgdGhlaXIgZGVmYXVs
dCBzaXplLgorICAgIDwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJmb250LXNpemU6IDIuNXJl
bSI+CisgICAgVGhpcyBwYXJhZ3JhcGggc2hvdWxkIGJlIGF1dG9zaXplZCB0byA0MHB4IGNvbXB1
dGVkIGZvbnQtc2l6ZSAoMTYgKiA4MDAvMzIwKS4KKyAgICBMb3JlbSBpcHN1bSBkb2xvciBzaXQg
YW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9y
CisgICAgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4KKzwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1
dG9zaXppbmcvaGVhZGVyLWxpbmtzLWF1dG9zaXppbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
dGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saW5rcy1hdXRvc2l6aW5nLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjI2MmY4Y2E2MWNjZGI5YzljNDEwNWFiNWU2OTU0MDQ4ZDIzOTUwYgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saW5rcy1hdXRvc2l6
aW5nLmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBzdHlsZT0i
Zm9udC1zaXplOiAxNnB4Ij4KKzxoZWFkPgorCis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVu
dD0id2lkdGg9ODAwIj4KKzxzdHlsZT4KKyAgYm9keSB7CisgICAgd2lkdGg6IDgwMHB4OworICAg
IG1hcmdpbjogMDsKKyAgICBvdmVyZmxvdy15OiBoaWRkZW47CisgIH0KKzwvc3R5bGU+CisKKzxz
Y3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykgeworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
dGluZ3Muc2V0VGV4dEF1dG9zaXppbmdFbmFibGVkKHRydWUpOworICAgIHdpbmRvdy5pbnRlcm5h
bHMuc2V0dGluZ3Muc2V0VGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGUoMzIwLCA0ODAp
OworfSBlbHNlIGlmICh3aW5kb3cuY29uc29sZSAmJiBjb25zb2xlLndhcm4pIHsKKyAgICBjb25z
b2xlLndhcm4oIlRoaXMgdGVzdCBkZXBlbmRzIG9uIHRoZSBUZXh0IEF1dG9zaXppbmcgc2V0dGlu
ZyBiZWluZyB0cnVlLCBzbyBydW4gaXQgaW4gRHVtcFJlbmRlclRyZWUsIG9yIG1hbnVhbGx5IGVu
YWJsZSBUZXh0IEF1dG9zaXppbmcsIGFuZCBlaXRoZXIgdXNlIGEgbW9iaWxlIGRldmljZSB3aXRo
IDMyMHB4IGRldmljZS13aWR0aCAobGlrZSBOZXh1cyBTIG9yIGlQaG9uZSksIG9yIGRlZmluZSBI
QUNLX0ZPUkNFX1RFWFRfQVVUT1NJWklOR19PTl9ERVNLVE9QLiIpOworfQorPC9zY3JpcHQ+CisK
KzwvaGVhZD4KKzxib2R5PgorCis8ZGl2PgorICAgIDxhIGhyZWY9IiI+VGhlc2U8L2E+CisgICAg
Jmd0OworICAgIDxhIGhyZWY9IiI+TGlua3M8L2E+CisgICAgJmd0OworICAgIDxhIGhyZWY9IiI+
U2hvdWxkPC9hPgorICAgICZndDsKKyAgICA8YSBocmVmPSIiPk5vdCBiZTwvYT4KKyAgICAmZ3Q7
CisgICAgPGEgaHJlZj0iIj5BdXRvc2l6ZWQ8L2E+CisgICAgPGRpdj4KKyAgICAgICAgVGhpcyBw
YXJhZ3JhcGggc2hvdWxkIGJlIGF1dG9zaXplZCB0byA0MHB4IGNvbXB1dGVkIGZvbnQtc2l6ZSAo
MTYgKiA4MDAvMzIwKSwKKyAgICAgICAgd2hlcmVhcyB0aGUgaW5saW5lIGxpbmtzIGluIHRoZSBo
ZWFkZXIgYWJvdmUgc2hvdWxkIGJlIGRldGVjdGVkIGFzIGEgcm93IG9mIGxpbmtzCisgICAgICAg
IGFuZCBoZW5jZSByZW5kZXJlZCBhdCB0aGVpciBkZWZhdWx0IHNpemUuCisgICAgPC9kaXY+Cis8
L2Rpdj4KKzxkaXY+CisgICAgVGhpcyBwYXJhZ3JhcGggc2hvdWxkIGJlIGF1dG9zaXplZCB0byA0
MHB4IGNvbXB1dGVkIGZvbnQtc2l6ZSAoMTYgKiA4MDAvMzIwKS4KKyAgICBMb3JlbSBpcHN1bSBk
b2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNt
b2QgdGVtcG9yCisgICAgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1
YS4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183500</attachid>
            <date>2013-01-18 10:34:24 -0800</date>
            <delta_ts>2013-01-18 10:48:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106792-20130118183122.patch</filename>
            <type>text/plain</type>
            <size>15472</size>
            <attacher>timvolodine</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5ODM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTE1ZDllZjQyOThmZjgw
MWY5NzA3NWQ4YTgzMjMzODNmY2NjZDA5YS4uZjc0ZDA1ODQ0YjllZjRiNWRlNWRkZTc5N2JmZDNi
Y2Q2ZDQwZGZlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTAxLTE4ICBUaW0g
Vm9sb2RpbmUgIDx0aW12b2xvZGluZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGV4dCBBdXRv
c2l6aW5nOiBkb24ndCBhdXRvc2l6ZSBoZWFkZXJzIHdpdGggbXVsdGlwbGUgaW5saW5lIGxpbmtz
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2Nzky
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBpbmNsdWRlcyBjb2RlIGZvciBkZXRlY3Rpbmcgcm93cyBvZiBsaW5rcyB0eXBpY2FsbHkg
c2VlbgorICAgICAgICBpbiBoZWFkZXJzIG9yIGZvb3RlcnMgb2Ygd2VicGFnZXMuIFN1Y2ggcm93
cyBvZiBsaW5rcyBzaG91bGQgbm90IGJlCisgICAgICAgIGF1dG9zaXplZC4KKworICAgICAgICBU
aGUgaGV1cmlzdGljcyB0byBkZXRlY3Qgc3VjaCByb3dzIG9mIGxpbmtzIGFyZSBiYXNlZCBvbiB0
aGUgYXBwZWFyYW5jZQorICAgICAgICBvZiBoZWFkZXJzIGluIG1vc3Qgd2Vic2l0ZXM6IGkuZS4g
bGlua3MgYXJlIGlubGluZSwgdGhlcmUgYXJlIGF0IGxlYXN0IHRocmVlCisgICAgICAgIG9mIHRo
ZW0sIHRoZXkgc2hvdWxkIGhhdmUgdGhlIHNhbWUgZm9udCBzaXplIHdpdGggcG9zc2libHkgb25s
eSBzaG9ydCB0ZXh0dWFsCisgICAgICAgIHNlcGFyYXRvcnMgYmV0d2VlbiB0aGVtIChtYXggMyBj
aGFyYWN0ZXJzKSBhbmQgdGhlcmUgc2hvdWxkIGJlIG5vIGxpbmUgYnJlYWtzCisgICAgICAgIChp
LmUuIDxicj4gZWxlbWVudHMpIGJldHdlZW4gdGhlbS4KKworICAgICAgICBUZXN0czogZmFzdC90
ZXh0LWF1dG9zaXppbmcvaGVhZGVyLWxpLWxpbmtzLWF1dG9zaXppbmcuaHRtbAorICAgICAgICAg
ICAgICAgZmFzdC90ZXh0LWF1dG9zaXppbmcvaGVhZGVyLWxpbmtzLWF1dG9zaXppbmctZGlmZmVy
ZW50LWZvbnRzaXplLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvdGV4dC1hdXRvc2l6aW5nL2hl
YWRlci1saW5rcy1hdXRvc2l6aW5nLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9UZXh0QXV0
b3NpemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OmNvbnRhaW5lclNo
b3VsZEJlQXV0b3NpemVkKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OmNvbnRh
aW5lcklzUm93T2ZMaW5rcyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJp
bmcvVGV4dEF1dG9zaXplci5oOgorCiAyMDEzLTAxLTE1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3
ZWJraXQub3JnPgogCiAgICAgICAgIEdUSysgYW5kIFF0IGJ1aWxkIGZpeCBhZnRlciByMTM5ODMz
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwCmluZGV4IGNkMWI1
ZmFmMzg5ODZkMmMyNGU2ZjhkNmQ0YjE2NGFlYWMwY2Q5YmIuLmIxOGI3MDJiNTFiMmQxZmMwOTg4
ZTNlZWQzOGI2MmUzYWJkNTM0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9UZXh0QXV0b3NpemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1
dG9zaXplci5jcHAKQEAgLTI3OCw2ICsyNzgsOSBAQCBib29sIFRleHRBdXRvc2l6ZXI6OmNvbnRh
aW5lclNob3VsZEJlQXV0b3NpemVkKGNvbnN0IFJlbmRlckJsb2NrKiBjb250YWluZXIpCiAgICAg
aWYgKGNvbnRhaW5lckNvbnRhaW5zT25lT2ZUYWdzKGNvbnRhaW5lciwgZm9ybUlucHV0VGFncygp
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKGNvbnRhaW5lcklzUm93T2ZMaW5r
cyhjb250YWluZXIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICAvLyBEb24ndCBhdXRv
c2l6ZSBibG9jay1sZXZlbCB0ZXh0IHRoYXQgY2FuJ3Qgd3JhcCAoYXMgaXQncyBsaWtlbHkgdG8K
ICAgICAvLyBleHBhbmQgc2lkZXdheXMgYW5kIGJyZWFrIHRoZSBwYWdlJ3MgbGF5b3V0KS4KICAg
ICBpZiAoIWNvbnRhaW5lci0+c3R5bGUoKS0+YXV0b1dyYXAoKSkKQEAgLTMwMSw2ICszMDQsNDYg
QEAgYm9vbCBUZXh0QXV0b3NpemVyOjpjb250YWluZXJDb250YWluc09uZU9mVGFncyhjb25zdCBS
ZW5kZXJCbG9jayogY29udGFpbmVyLCBjb24KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wg
VGV4dEF1dG9zaXplcjo6Y29udGFpbmVySXNSb3dPZkxpbmtzKGNvbnN0IFJlbmRlck9iamVjdCog
Y29udGFpbmVyKQoreworICAgIC8vIEEgInJvdyBvZiBsaW5rcyIgaXMgYSBjb250YWluZXIgZm9y
IHdoaWNoIGhvbGRzOgorICAgIC8vICAxLiBpdCBzaG91bGQgbm90IGNvbnRhaW4gbm9uLWxpbmsg
dGV4dCBlbGVtZW50cyBsb25nZXIgdGhhbiAzIGNoYXJhY3RlcnMKKyAgICAvLyAgMi4gaXQgc2hv
dWxkIGNvbnRhaW4gbWluLiAzIGlubGluZSBsaW5rcyBhbmQgYWxsIGxpbmtzIHNob3VsZAorICAg
IC8vICAgICBoYXZlIHRoZSBzYW1lIHNwZWNpZmllZCBmb250IHNpemUKKyAgICAvLyAgMy4gaXQg
c2hvdWxkIG5vdCBjb250YWluIDxicj4gZWxlbWVudHMKKyAgICAvLyAgNC4gaXQgc2hvdWxkIGNv
bnRhaW4gb25seSBpbmxpbmUgZWxlbWVudHMgdW5sZXNzIHRoZXkgYXJlIGNvbnRhaW5lcnMsCisg
ICAgLy8gICAgIGNoaWxkcmVuIG9mIGxpbmsgZWxlbWVudHMgb3IgY2hpbGRyZW4gb2Ygc3ViLWNv
bnRhaW5lcnMuCisgICAgaW50IGxpbmtDb3VudCA9IDA7CisgICAgUmVuZGVyT2JqZWN0KiByZW5k
ZXJlciA9IGNvbnRhaW5lci0+bmV4dEluUHJlT3JkZXIoY29udGFpbmVyKTsKKyAgICBmbG9hdCBt
YXRjaGluZ0ZvbnRTaXplID0gLTE7CisKKyAgICB3aGlsZSAocmVuZGVyZXIpIHsKKyAgICAgICAg
aWYgKCFpc0F1dG9zaXppbmdDb250YWluZXIocmVuZGVyZXIpKSB7CisgICAgICAgICAgICBpZiAo
cmVuZGVyZXItPmlzVGV4dCgpICYmIHRvUmVuZGVyVGV4dChyZW5kZXJlciktPnRleHQoKS0+c3Ry
aXBXaGl0ZVNwYWNlKCktPmxlbmd0aCgpID4gMykKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgICAgICBpZiAoIXJlbmRlcmVyLT5pc0lubGluZSgpKQorICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmIChyZW5kZXJlci0+aXNCUigpKQorICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVuZGVy
ZXItPnN0eWxlKCktPmlzTGluaygpKSB7CisgICAgICAgICAgICBpZiAobWF0Y2hpbmdGb250U2l6
ZSA8IDApCisgICAgICAgICAgICAgICAgbWF0Y2hpbmdGb250U2l6ZSA9IHJlbmRlcmVyLT5zdHls
ZSgpLT5zcGVjaWZpZWRGb250U2l6ZSgpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAg
ICAgICAgaWYgKG1hdGNoaW5nRm9udFNpemUgIT0gcmVuZGVyZXItPnN0eWxlKCktPnNwZWNpZmll
ZEZvbnRTaXplKCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgbGlua0NvdW50Kys7CisgICAgICAgICAgICAvLyBTa2lwIHRy
YXZlcnNpbmcgZGVzY2VuZGFudHMgb2YgdGhlIGxpbmsuCisgICAgICAgICAgICByZW5kZXJlciA9
IHJlbmRlcmVyLT5uZXh0SW5QcmVPcmRlckFmdGVyQ2hpbGRyZW4oY29udGFpbmVyKTsKKyAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICByZW5kZXJlciA9IG5leHRJblByZU9yZGVyU2tpcHBpbmdE
ZXNjZW5kYW50c09mQ29udGFpbmVycyhyZW5kZXJlciwgY29udGFpbmVyKTsKKyAgICB9CisKKyAg
ICByZXR1cm4gKGxpbmtDb3VudCA+PSAzKTsKK30KKwogYm9vbCBUZXh0QXV0b3NpemVyOjpjb250
ZW50SGVpZ2h0SXNDb25zdHJhaW5lZChjb25zdCBSZW5kZXJCbG9jayogY29udGFpbmVyKQogewog
ICAgIC8vIEZJWE1FOiBQcm9wYWdhdGUgY29uc3RyYWluZWRuZXNzIGRvd24gdGhlIHRyZWUsIHRv
IGF2b2lkIGluZWZmaWNpZW50bHkgd2Fsa2luZyBiYWNrIHVwIGZyb20gZWFjaCBib3guCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuaAppbmRleCAxNjhhMjg1Yjk1OGE5NDhl
ODhhYjYwMGUwYjE3M2QwOTU4MjI5NDYwLi5lMWMyMmFlYjlkYjNiYzk5YzhiNzNlMWIwNjg5YzRm
NmExNzA2Y2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9z
aXplci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmgKQEAg
LTcxLDYgKzcxLDcgQEAgcHJpdmF0ZToKIAogICAgIHN0YXRpYyBib29sIGNvbnRhaW5lclNob3Vs
ZEJlQXV0b3NpemVkKGNvbnN0IFJlbmRlckJsb2NrKiBjb250YWluZXIpOwogICAgIHN0YXRpYyBi
b29sIGNvbnRhaW5lckNvbnRhaW5zT25lT2ZUYWdzKGNvbnN0IFJlbmRlckJsb2NrKiBjbHVzdGVy
LCBjb25zdCBWZWN0b3I8UXVhbGlmaWVkTmFtZT4mIHRhZ3MpOworICAgIHN0YXRpYyBib29sIGNv
bnRhaW5lcklzUm93T2ZMaW5rcyhjb25zdCBSZW5kZXJPYmplY3QqIGNvbnRhaW5lcik7CiAgICAg
c3RhdGljIGJvb2wgY29udGVudEhlaWdodElzQ29uc3RyYWluZWQoY29uc3QgUmVuZGVyQmxvY2sq
IGNvbnRhaW5lcik7CiAgICAgc3RhdGljIGJvb2wgY2x1c3RlclNob3VsZEJlQXV0b3NpemVkKGNv
bnN0IFJlbmRlckJsb2NrKiBibG9ja0NvbnRhaW5pbmdBbGxUZXh0LCBmbG9hdCBibG9ja1dpZHRo
KTsKICAgICBzdGF0aWMgdm9pZCBtZWFzdXJlRGVzY2VuZGFudFRleHRXaWR0aChjb25zdCBSZW5k
ZXJCbG9jayogY29udGFpbmVyLCBjb25zdCBSZW5kZXJCbG9jayogYmxvY2tDb250YWluaW5nQWxs
VGV4dCwgZmxvYXQgbWluVGV4dFdpZHRoLCBmbG9hdCYgdGV4dFdpZHRoKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmYjQ4
NmEzY2UyZTc5YTQ1MmE3OWY1MWUxYzU0YjE3MDE0NDBmOWYzLi41ODJkNjFmYTY2ZDJmMzk2N2Y5
MWY3MDUyZGIzM2U0NjhkZTFjZmU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDEtMTgg
IFRpbSBWb2xvZGluZSAgPHRpbXZvbG9kaW5lQGNocm9taXVtLm9yZz4KKworICAgICAgICBUZXh0
IEF1dG9zaXppbmc6IGRvbid0IGF1dG9zaXplIGhlYWRlcnMgd2l0aCBtdWx0aXBsZSBpbmxpbmUg
bGlua3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDY3OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGZhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saS1saW5rcy1hdXRvc2l6aW5nLWV4cGVjdGVk
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saS1s
aW5rcy1hdXRvc2l6aW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4dC1hdXRvc2l6
aW5nL2hlYWRlci1saW5rcy1hdXRvc2l6aW5nLWRpZmZlcmVudC1mb250c2l6ZS1leHBlY3RlZC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3RleHQtYXV0b3NpemluZy9oZWFkZXItbGlua3Mt
YXV0b3NpemluZy1kaWZmZXJlbnQtZm9udHNpemUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC90ZXh0LWF1dG9zaXppbmcvaGVhZGVyLWxpbmtzLWF1dG9zaXppbmctZXhwZWN0ZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC90ZXh0LWF1dG9zaXppbmcvaGVhZGVyLWxpbmtzLWF1dG9z
aXppbmcuaHRtbDogQWRkZWQuCisKIDIwMTMtMDEtMTUgIFRhYiBBdGtpbnMgIDxqYWNrYWxtYWdl
QGdtYWlsLmNvbT4KIAogICAgICAgICBVcGRhdGUgQ1NTMyBncmFkaWVudCBzdXBwb3J0IHRvIHRo
ZSBsYXRlc3Qgc3BlYyB2ZXJzaW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQt
YXV0b3NpemluZy9oZWFkZXItbGktbGlua3MtYXV0b3NpemluZy1leHBlY3RlZC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvaGVhZGVyLWxpLWxpbmtzLWF1dG9zaXppbmct
ZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMjQ5NGJlMjgwOGI2ZmYxYmQwYWRhNmNlNGI1NmY5
NGQzOGQwNjRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9z
aXppbmcvaGVhZGVyLWxpLWxpbmtzLWF1dG9zaXppbmctZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsx
LDQyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIHN0eWxlPSJmb250LXNpemU6IDE2cHgiPgor
PGhlYWQ+CisKKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD04MDAiPgorPHN0
eWxlPgorICBib2R5IHsKKyAgICB3aWR0aDogODAwcHg7CisgICAgbWFyZ2luOiAwOworICAgIG92
ZXJmbG93LXk6IGhpZGRlbjsKKyAgfQorPC9zdHlsZT4KKworPC9oZWFkPgorPGJvZHk+CisKKzx1
bD4KKyAgICA8bGkgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4KKyAgICAgICAgPGEgaHJlZj0iIj5U
aGVzZTwvYT4KKyAgICA8L2xpPgorICAgIDxsaSBzdHlsZT0iZGlzcGxheTppbmxpbmUiPgorICAg
ICAgICA8YSBocmVmPSIiPkxpbmtzPC9hPgorICAgIDwvbGk+CisgICAgPGxpIHN0eWxlPSJkaXNw
bGF5OmlubGluZSI+CisgICAgICAgIDxhIGhyZWY9IiI+U2hvdWxkPC9hPgorICAgIDwvbGk+Cisg
ICAgPGxpIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+CisgICAgICAgIDxhIGhyZWY9IiI+Tm90IGJl
PC9hPgorICAgIDwvbGk+CisgICAgPGxpIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+CisgICAgICAg
IDxhIGhyZWY9IiI+QXV0b3NpemVkPC9hPgorICAgIDwvbGk+Cis8L3VsPgorPGRpdiBzdHlsZT0i
Zm9udC1zaXplOiAyLjVyZW0iPgorICAgIFRoaXMgcGFyYWdyYXBoIHNob3VsZCBiZSBhdXRvc2l6
ZWQgdG8gNDBweCBjb21wdXRlZCBmb250LXNpemUgKDE2ICogODAwLzMyMCksCisgICAgd2hlcmVh
cyB0aGUgaW5saW5lIGxpbmtzIGluIHRoZSBoZWFkZXIgYWJvdmUgc2hvdWxkIGJlIGRldGVjdGVk
IGFzIGEgcm93IG9mIGxpbmtzCisgICAgYW5kIGhlbmNlIHJlbmRlcmVkIGF0IHRoZWlyIGRlZmF1
bHQgc2l6ZS4KKyAgICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRp
cGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yCisgICAgaW5jaWRpZHVudCB1dCBs
YWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvaGVhZGVyLWxpLWxp
bmtzLWF1dG9zaXppbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2hl
YWRlci1saS1saW5rcy1hdXRvc2l6aW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWJhOTM0MDA2YmFmYzI2
YmFhOWE4YjAyOWNiNDFmNDVlOWY4ODJkZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saS1saW5rcy1hdXRvc2l6aW5nLmh0bWwKQEAg
LTAsMCArMSw1MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBzdHlsZT0iZm9udC1zaXplOiAx
NnB4Ij4KKzxoZWFkPgorCis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ODAw
Ij4KKzxzdHlsZT4KKyAgYm9keSB7CisgICAgd2lkdGg6IDgwMHB4OworICAgIG1hcmdpbjogMDsK
KyAgICBvdmVyZmxvdy15OiBoaWRkZW47CisgIH0KKzwvc3R5bGU+CisKKzxzY3JpcHQ+CitpZiAo
d2luZG93LmludGVybmFscykgeworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0VGV4
dEF1dG9zaXppbmdFbmFibGVkKHRydWUpOworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0VGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGUoMzIwLCA0ODApOworfSBlbHNlIGlm
ICh3aW5kb3cuY29uc29sZSAmJiBjb25zb2xlLndhcm4pIHsKKyAgICBjb25zb2xlLndhcm4oIlRo
aXMgdGVzdCBkZXBlbmRzIG9uIHRoZSBUZXh0IEF1dG9zaXppbmcgc2V0dGluZyBiZWluZyB0cnVl
LCBzbyBydW4gaXQgaW4gRHVtcFJlbmRlclRyZWUsIG9yIG1hbnVhbGx5IGVuYWJsZSBUZXh0IEF1
dG9zaXppbmcsIGFuZCBlaXRoZXIgdXNlIGEgbW9iaWxlIGRldmljZSB3aXRoIDMyMHB4IGRldmlj
ZS13aWR0aCAobGlrZSBOZXh1cyBTIG9yIGlQaG9uZSksIG9yIGRlZmluZSBIQUNLX0ZPUkNFX1RF
WFRfQVVUT1NJWklOR19PTl9ERVNLVE9QLiIpOworfQorPC9zY3JpcHQ+CisKKzwvaGVhZD4KKzxi
b2R5PgorCis8dWw+CisgICAgPGxpIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+CisgICAgICAgIDxh
IGhyZWY9IiI+VGhlc2U8L2E+CisgICAgPC9saT4KKyAgICA8bGkgc3R5bGU9ImRpc3BsYXk6aW5s
aW5lIj4KKyAgICAgICAgPGEgaHJlZj0iIj5MaW5rczwvYT4KKyAgICA8L2xpPgorICAgIDxsaSBz
dHlsZT0iZGlzcGxheTppbmxpbmUiPgorICAgICAgICA8YSBocmVmPSIiPlNob3VsZDwvYT4KKyAg
ICA8L2xpPgorICAgIDxsaSBzdHlsZT0iZGlzcGxheTppbmxpbmUiPgorICAgICAgICA8YSBocmVm
PSIiPk5vdCBiZTwvYT4KKyAgICA8L2xpPgorICAgIDxsaSBzdHlsZT0iZGlzcGxheTppbmxpbmUi
PgorICAgICAgICA8YSBocmVmPSIiPkF1dG9zaXplZDwvYT4KKyAgICA8L2xpPgorPC91bD4KKzxk
aXY+CisgICAgVGhpcyBwYXJhZ3JhcGggc2hvdWxkIGJlIGF1dG9zaXplZCB0byA0MHB4IGNvbXB1
dGVkIGZvbnQtc2l6ZSAoMTYgKiA4MDAvMzIwKSwKKyAgICB3aGVyZWFzIHRoZSBpbmxpbmUgbGlu
a3MgaW4gdGhlIGhlYWRlciBhYm92ZSBzaG91bGQgYmUgZGV0ZWN0ZWQgYXMgYSByb3cgb2YgbGlu
a3MKKyAgICBhbmQgaGVuY2UgcmVuZGVyZWQgYXQgdGhlaXIgZGVmYXVsdCBzaXplLgorICAgIExv
cmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBz
ZWQgZG8gZWl1c21vZCB0ZW1wb3IKKyAgICBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUg
bWFnbmEgYWxpcXVhLgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9oZWFkZXItbGlua3MtYXV0b3NpemluZy1kaWZm
ZXJlbnQtZm9udHNpemUtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRv
c2l6aW5nL2hlYWRlci1saW5rcy1hdXRvc2l6aW5nLWRpZmZlcmVudC1mb250c2l6ZS1leHBlY3Rl
ZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmJhYWY4NzEyM2IwOTFjYzJkMmVjZmMxNTRkZDViNzg2NTMwYzVm
YmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9o
ZWFkZXItbGlua3MtYXV0b3NpemluZy1kaWZmZXJlbnQtZm9udHNpemUtZXhwZWN0ZWQuaHRtbApA
QCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIHN0eWxlPSJmb250LXNpemU6
IDE2cHgiPgorPGhlYWQ+CisKKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD04
MDAiPgorPHN0eWxlPgorICBib2R5IHsKKyAgICB3aWR0aDogODAwcHg7CisgICAgbWFyZ2luOiAw
OworICAgIG92ZXJmbG93LXk6IGhpZGRlbjsKKyAgfQorPC9zdHlsZT4KKworPC9oZWFkPgorPGJv
ZHk+CisKKzxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMi41cmVtIj4KKyAgICA8YSBocmVmPSIiPlRo
ZXNlPC9hPgorICAgICZndDsKKyAgICA8YSBocmVmPSIiIHN0eWxlPSJmb250LXNpemU6IDQ0cHgi
PkxpbmtzPC9hPgorICAgICZndDsKKyAgICA8YSBocmVmPSIiPlNob3VsZDwvYT4KKyAgICAmZ3Q7
CisgICAgPGEgaHJlZj0iIj5CZTwvYT4KKyAgICAmZ3Q7CisgICAgPGEgaHJlZj0iIj5BdXRvc2l6
ZWQ8L2E+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMi41cmVtIj4KKyAgICBUaGlz
IHBhcmFncmFwaCBzaG91bGQgYmUgYXV0b3NpemVkIHRvIDQwcHggY29tcHV0ZWQgZm9udC1zaXpl
ICgxNiAqIDgwMC8zMjApLAorICAgIGFuZCB0aGUgaW5saW5lIGxpbmtzIGFib3ZlIHNob3VsZCBu
b3QgYmUgZGV0ZWN0ZWQgYXMgYSByb3cgb2YgbGlua3MgYmVjYXVzZSB0aGUKKyAgICBsaW5rcyBo
YXZlIGRpZmZlcmVudCBmb250IHNpemVzLCBhbmQgaGVuY2UgdGhleSBzaG91bGQgYmUgcmVuZGVy
ZWQgYXQgdGhlaXIgZGVmYXVsdCBzaXplLgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9oZWFkZXItbGlua3MtYXV0
b3NpemluZy1kaWZmZXJlbnQtZm9udHNpemUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1h
dXRvc2l6aW5nL2hlYWRlci1saW5rcy1hdXRvc2l6aW5nLWRpZmZlcmVudC1mb250c2l6ZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmUwMTIzNzBiMDRiNTQ5N2M5ODRiNWQ2NjkwOTIwMzA0ZTA2MzRiYWIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9oZWFkZXIt
bGlua3MtYXV0b3NpemluZy1kaWZmZXJlbnQtZm9udHNpemUuaHRtbApAQCAtMCwwICsxLDQzIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIHN0eWxlPSJmb250LXNpemU6IDE2cHgiPgorPGhlYWQ+
CisKKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD04MDAiPgorPHN0eWxlPgor
ICBib2R5IHsKKyAgICB3aWR0aDogODAwcHg7CisgICAgbWFyZ2luOiAwOworICAgIG92ZXJmbG93
LXk6IGhpZGRlbjsKKyAgfQorPC9zdHlsZT4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cuaW50ZXJu
YWxzKSB7CisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRUZXh0QXV0b3NpemluZ0Vu
YWJsZWQodHJ1ZSk7CisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRUZXh0QXV0b3Np
emluZ1dpbmRvd1NpemVPdmVycmlkZSgzMjAsIDQ4MCk7Cit9IGVsc2UgaWYgKHdpbmRvdy5jb25z
b2xlICYmIGNvbnNvbGUud2FybikgeworICAgIGNvbnNvbGUud2FybigiVGhpcyB0ZXN0IGRlcGVu
ZHMgb24gdGhlIFRleHQgQXV0b3NpemluZyBzZXR0aW5nIGJlaW5nIHRydWUsIHNvIHJ1biBpdCBp
biBEdW1wUmVuZGVyVHJlZSwgb3IgbWFudWFsbHkgZW5hYmxlIFRleHQgQXV0b3NpemluZywgYW5k
IGVpdGhlciB1c2UgYSBtb2JpbGUgZGV2aWNlIHdpdGggMzIwcHggZGV2aWNlLXdpZHRoIChsaWtl
IE5leHVzIFMgb3IgaVBob25lKSwgb3IgZGVmaW5lIEhBQ0tfRk9SQ0VfVEVYVF9BVVRPU0laSU5H
X09OX0RFU0tUT1AuIik7Cit9Cis8L3NjcmlwdD4KKworPC9oZWFkPgorPGJvZHk+CisKKzxkaXY+
CisgICAgPGEgaHJlZj0iIj5UaGVzZTwvYT4KKyAgICAmZ3Q7CisgICAgPGEgaHJlZj0iIiBzdHls
ZT0iZm9udC1zaXplOiAyNHB4Ij5MaW5rczwvYT4KKyAgICAmZ3Q7CisgICAgPGEgaHJlZj0iIj5T
aG91bGQ8L2E+CisgICAgJmd0OworICAgIDxhIGhyZWY9IiI+QmU8L2E+CisgICAgJmd0OworICAg
IDxhIGhyZWY9IiI+QXV0b3NpemVkPC9hPgorPC9kaXY+Cis8ZGl2PgorICAgIFRoaXMgcGFyYWdy
YXBoIHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gNDBweCBjb21wdXRlZCBmb250LXNpemUgKDE2ICog
ODAwLzMyMCksCisgICAgYW5kIHRoZSBpbmxpbmUgbGlua3MgYWJvdmUgc2hvdWxkIG5vdCBiZSBk
ZXRlY3RlZCBhcyBhIHJvdyBvZiBsaW5rcyBiZWNhdXNlIHRoZQorICAgIGxpbmtzIGhhdmUgZGlm
ZmVyZW50IGZvbnQgc2l6ZXMsIGFuZCBoZW5jZSB0aGV5IHNob3VsZCBiZSByZW5kZXJlZCBhdCB0
aGVpciBkZWZhdWx0IHNpemUuCis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saW5rcy1hdXRvc2l6aW5n
LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9oZWFkZXIt
bGlua3MtYXV0b3NpemluZy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3ZjU3MGJiYjI2MjY2
OTk3Mzg4MzhmY2E3MWZkODIwNzdlYTVmMzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3RleHQtYXV0b3NpemluZy9oZWFkZXItbGlua3MtYXV0b3NpemluZy1leHBlY3RlZC5o
dG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgc3R5bGU9ImZvbnQt
c2l6ZTogMTZweCI+Cis8aGVhZD4KKworPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9Indp
ZHRoPTgwMCI+Cis8c3R5bGU+CisgIGJvZHkgeworICAgIHdpZHRoOiA4MDBweDsKKyAgICBtYXJn
aW46IDA7CisgICAgb3ZlcmZsb3cteTogaGlkZGVuOworICB9Cis8L3N0eWxlPgorCis8L2hlYWQ+
Cis8Ym9keT4KKworPGRpdj4KKyAgICA8YSBocmVmPSIiPlRoZXNlPC9hPgorICAgICZndDsKKyAg
ICA8YSBocmVmPSIiPkxpbmtzPC9hPgorICAgICZndDsKKyAgICA8YSBocmVmPSIiPlNob3VsZDwv
YT4KKyAgICAmZ3Q7CisgICAgPGEgaHJlZj0iIj5Ob3QgYmU8L2E+CisgICAgJmd0OworICAgIDxh
IGhyZWY9IiI+QXV0b3NpemVkPC9hPgorICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMi41cmVt
Ij4KKyAgICAgICAgVGhpcyBwYXJhZ3JhcGggc2hvdWxkIGJlIGF1dG9zaXplZCB0byA0MHB4IGNv
bXB1dGVkIGZvbnQtc2l6ZSAoMTYgKiA4MDAvMzIwKSwKKyAgICAgICAgd2hlcmVhcyB0aGUgaW5s
aW5lIGxpbmtzIGluIHRoZSBoZWFkZXIgYWJvdmUgc2hvdWxkIGJlIGRldGVjdGVkIGFzIGEgcm93
IG9mIGxpbmtzCisgICAgICAgIGFuZCBoZW5jZSByZW5kZXJlZCBhdCB0aGVpciBkZWZhdWx0IHNp
emUuCisgICAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMi41cmVtIj4K
KyAgICBUaGlzIHBhcmFncmFwaCBzaG91bGQgYmUgYXV0b3NpemVkIHRvIDQwcHggY29tcHV0ZWQg
Zm9udC1zaXplICgxNiAqIDgwMC8zMjApLgorICAgIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0
LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IKKyAg
ICBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLgorPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3Np
emluZy9oZWFkZXItbGlua3MtYXV0b3NpemluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
LWF1dG9zaXppbmcvaGVhZGVyLWxpbmtzLWF1dG9zaXppbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMjYy
ZjhjYTYxY2NkYjljOWM0MTA1YWI1ZTY5NTQwNDhkMjM5NTBiCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvaGVhZGVyLWxpbmtzLWF1dG9zaXppbmcu
aHRtbApAQCAtMCwwICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIHN0eWxlPSJmb250
LXNpemU6IDE2cHgiPgorPGhlYWQ+CisKKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3
aWR0aD04MDAiPgorPHN0eWxlPgorICBib2R5IHsKKyAgICB3aWR0aDogODAwcHg7CisgICAgbWFy
Z2luOiAwOworICAgIG92ZXJmbG93LXk6IGhpZGRlbjsKKyAgfQorPC9zdHlsZT4KKworPHNjcmlw
dD4KK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5n
cy5zZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQodHJ1ZSk7CisgICAgd2luZG93LmludGVybmFscy5z
ZXR0aW5ncy5zZXRUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZSgzMjAsIDQ4MCk7Cit9
IGVsc2UgaWYgKHdpbmRvdy5jb25zb2xlICYmIGNvbnNvbGUud2FybikgeworICAgIGNvbnNvbGUu
d2FybigiVGhpcyB0ZXN0IGRlcGVuZHMgb24gdGhlIFRleHQgQXV0b3NpemluZyBzZXR0aW5nIGJl
aW5nIHRydWUsIHNvIHJ1biBpdCBpbiBEdW1wUmVuZGVyVHJlZSwgb3IgbWFudWFsbHkgZW5hYmxl
IFRleHQgQXV0b3NpemluZywgYW5kIGVpdGhlciB1c2UgYSBtb2JpbGUgZGV2aWNlIHdpdGggMzIw
cHggZGV2aWNlLXdpZHRoIChsaWtlIE5leHVzIFMgb3IgaVBob25lKSwgb3IgZGVmaW5lIEhBQ0tf
Rk9SQ0VfVEVYVF9BVVRPU0laSU5HX09OX0RFU0tUT1AuIik7Cit9Cis8L3NjcmlwdD4KKworPC9o
ZWFkPgorPGJvZHk+CisKKzxkaXY+CisgICAgPGEgaHJlZj0iIj5UaGVzZTwvYT4KKyAgICAmZ3Q7
CisgICAgPGEgaHJlZj0iIj5MaW5rczwvYT4KKyAgICAmZ3Q7CisgICAgPGEgaHJlZj0iIj5TaG91
bGQ8L2E+CisgICAgJmd0OworICAgIDxhIGhyZWY9IiI+Tm90IGJlPC9hPgorICAgICZndDsKKyAg
ICA8YSBocmVmPSIiPkF1dG9zaXplZDwvYT4KKyAgICA8ZGl2PgorICAgICAgICBUaGlzIHBhcmFn
cmFwaCBzaG91bGQgYmUgYXV0b3NpemVkIHRvIDQwcHggY29tcHV0ZWQgZm9udC1zaXplICgxNiAq
IDgwMC8zMjApLAorICAgICAgICB3aGVyZWFzIHRoZSBpbmxpbmUgbGlua3MgaW4gdGhlIGhlYWRl
ciBhYm92ZSBzaG91bGQgYmUgZGV0ZWN0ZWQgYXMgYSByb3cgb2YgbGlua3MKKyAgICAgICAgYW5k
IGhlbmNlIHJlbmRlcmVkIGF0IHRoZWlyIGRlZmF1bHQgc2l6ZS4KKyAgICA8L2Rpdj4KKzwvZGl2
PgorPGRpdj4KKyAgICBUaGlzIHBhcmFncmFwaCBzaG91bGQgYmUgYXV0b3NpemVkIHRvIDQwcHgg
Y29tcHV0ZWQgZm9udC1zaXplICgxNiAqIDgwMC8zMjApLgorICAgIExvcmVtIGlwc3VtIGRvbG9y
IHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0
ZW1wb3IKKyAgICBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLgor
PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183503</attachid>
            <date>2013-01-18 10:48:45 -0800</date>
            <delta_ts>2013-01-18 12:28:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106792-20130118184543.patch</filename>
            <type>text/plain</type>
            <size>15496</size>
            <attacher>timvolodine</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5ODM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTE1ZDllZjQyOThmZjgw
MWY5NzA3NWQ4YTgzMjMzODNmY2NjZDA5YS4uYTU2ZjdmYmFiNTQ1MGI0YjRlMGJiODVhODYwYWNm
OWE1ZDc3Y2VmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTAxLTE4ICBUaW0g
Vm9sb2RpbmUgIDx0aW12b2xvZGluZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGV4dCBBdXRv
c2l6aW5nOiBkb24ndCBhdXRvc2l6ZSBoZWFkZXJzIHdpdGggbXVsdGlwbGUgaW5saW5lIGxpbmtz
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2Nzky
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBpbmNsdWRlcyBjb2RlIGZvciBkZXRlY3Rpbmcgcm93cyBvZiBsaW5r
cyB0eXBpY2FsbHkgc2VlbgorICAgICAgICBpbiBoZWFkZXJzIG9yIGZvb3RlcnMgb2Ygd2VicGFn
ZXMuIFN1Y2ggcm93cyBvZiBsaW5rcyBzaG91bGQgbm90IGJlCisgICAgICAgIGF1dG9zaXplZC4K
KworICAgICAgICBUaGUgaGV1cmlzdGljcyB0byBkZXRlY3Qgc3VjaCByb3dzIG9mIGxpbmtzIGFy
ZSBiYXNlZCBvbiB0aGUgYXBwZWFyYW5jZQorICAgICAgICBvZiBoZWFkZXJzIGluIG1vc3Qgd2Vi
c2l0ZXM6IGkuZS4gbGlua3MgYXJlIGlubGluZSwgdGhlcmUgYXJlIGF0IGxlYXN0IHRocmVlCisg
ICAgICAgIG9mIHRoZW0sIHRoZXkgc2hvdWxkIGhhdmUgdGhlIHNhbWUgZm9udCBzaXplIHdpdGgg
cG9zc2libHkgb25seSBzaG9ydCB0ZXh0dWFsCisgICAgICAgIHNlcGFyYXRvcnMgYmV0d2VlbiB0
aGVtIChtYXggMyBjaGFyYWN0ZXJzKSBhbmQgdGhlcmUgc2hvdWxkIGJlIG5vIGxpbmUgYnJlYWtz
CisgICAgICAgIChpLmUuIDxicj4gZWxlbWVudHMpIGJldHdlZW4gdGhlbS4KKworICAgICAgICBU
ZXN0czogZmFzdC90ZXh0LWF1dG9zaXppbmcvaGVhZGVyLWxpLWxpbmtzLWF1dG9zaXppbmcuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC90ZXh0LWF1dG9zaXppbmcvaGVhZGVyLWxpbmtzLWF1dG9z
aXppbmctZGlmZmVyZW50LWZvbnRzaXplLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvdGV4dC1h
dXRvc2l6aW5nL2hlYWRlci1saW5rcy1hdXRvc2l6aW5nLmh0bWwKKworICAgICAgICAqIHJlbmRl
cmluZy9UZXh0QXV0b3NpemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6
OmNvbnRhaW5lclNob3VsZEJlQXV0b3NpemVkKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRv
c2l6ZXI6OmNvbnRhaW5lcklzUm93T2ZMaW5rcyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvVGV4dEF1dG9zaXplci5oOgorCiAyMDEzLTAxLTE1ICBSeW9zdWtlIE5p
d2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEdUSysgYW5kIFF0IGJ1aWxkIGZpeCBh
ZnRlciByMTM5ODMzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRB
dXRvc2l6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3Bw
CmluZGV4IGNkMWI1ZmFmMzg5ODZkMmMyNGU2ZjhkNmQ0YjE2NGFlYWMwY2Q5YmIuLmIxOGI3MDJi
NTFiMmQxZmMwOTg4ZTNlZWQzOGI2MmUzYWJkNTM0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvVGV4dEF1dG9zaXplci5jcHAKQEAgLTI3OCw2ICsyNzgsOSBAQCBib29sIFRleHRBdXRv
c2l6ZXI6OmNvbnRhaW5lclNob3VsZEJlQXV0b3NpemVkKGNvbnN0IFJlbmRlckJsb2NrKiBjb250
YWluZXIpCiAgICAgaWYgKGNvbnRhaW5lckNvbnRhaW5zT25lT2ZUYWdzKGNvbnRhaW5lciwgZm9y
bUlucHV0VGFncygpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKGNvbnRhaW5l
cklzUm93T2ZMaW5rcyhjb250YWluZXIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICAv
LyBEb24ndCBhdXRvc2l6ZSBibG9jay1sZXZlbCB0ZXh0IHRoYXQgY2FuJ3Qgd3JhcCAoYXMgaXQn
cyBsaWtlbHkgdG8KICAgICAvLyBleHBhbmQgc2lkZXdheXMgYW5kIGJyZWFrIHRoZSBwYWdlJ3Mg
bGF5b3V0KS4KICAgICBpZiAoIWNvbnRhaW5lci0+c3R5bGUoKS0+YXV0b1dyYXAoKSkKQEAgLTMw
MSw2ICszMDQsNDYgQEAgYm9vbCBUZXh0QXV0b3NpemVyOjpjb250YWluZXJDb250YWluc09uZU9m
VGFncyhjb25zdCBSZW5kZXJCbG9jayogY29udGFpbmVyLCBjb24KICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKK2Jvb2wgVGV4dEF1dG9zaXplcjo6Y29udGFpbmVySXNSb3dPZkxpbmtzKGNvbnN0IFJl
bmRlck9iamVjdCogY29udGFpbmVyKQoreworICAgIC8vIEEgInJvdyBvZiBsaW5rcyIgaXMgYSBj
b250YWluZXIgZm9yIHdoaWNoIGhvbGRzOgorICAgIC8vICAxLiBpdCBzaG91bGQgbm90IGNvbnRh
aW4gbm9uLWxpbmsgdGV4dCBlbGVtZW50cyBsb25nZXIgdGhhbiAzIGNoYXJhY3RlcnMKKyAgICAv
LyAgMi4gaXQgc2hvdWxkIGNvbnRhaW4gbWluLiAzIGlubGluZSBsaW5rcyBhbmQgYWxsIGxpbmtz
IHNob3VsZAorICAgIC8vICAgICBoYXZlIHRoZSBzYW1lIHNwZWNpZmllZCBmb250IHNpemUKKyAg
ICAvLyAgMy4gaXQgc2hvdWxkIG5vdCBjb250YWluIDxicj4gZWxlbWVudHMKKyAgICAvLyAgNC4g
aXQgc2hvdWxkIGNvbnRhaW4gb25seSBpbmxpbmUgZWxlbWVudHMgdW5sZXNzIHRoZXkgYXJlIGNv
bnRhaW5lcnMsCisgICAgLy8gICAgIGNoaWxkcmVuIG9mIGxpbmsgZWxlbWVudHMgb3IgY2hpbGRy
ZW4gb2Ygc3ViLWNvbnRhaW5lcnMuCisgICAgaW50IGxpbmtDb3VudCA9IDA7CisgICAgUmVuZGVy
T2JqZWN0KiByZW5kZXJlciA9IGNvbnRhaW5lci0+bmV4dEluUHJlT3JkZXIoY29udGFpbmVyKTsK
KyAgICBmbG9hdCBtYXRjaGluZ0ZvbnRTaXplID0gLTE7CisKKyAgICB3aGlsZSAocmVuZGVyZXIp
IHsKKyAgICAgICAgaWYgKCFpc0F1dG9zaXppbmdDb250YWluZXIocmVuZGVyZXIpKSB7CisgICAg
ICAgICAgICBpZiAocmVuZGVyZXItPmlzVGV4dCgpICYmIHRvUmVuZGVyVGV4dChyZW5kZXJlcikt
PnRleHQoKS0+c3RyaXBXaGl0ZVNwYWNlKCktPmxlbmd0aCgpID4gMykKKyAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoIXJlbmRlcmVyLT5pc0lubGluZSgpKQor
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmIChyZW5kZXJlci0+
aXNCUigpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAg
ICBpZiAocmVuZGVyZXItPnN0eWxlKCktPmlzTGluaygpKSB7CisgICAgICAgICAgICBpZiAobWF0
Y2hpbmdGb250U2l6ZSA8IDApCisgICAgICAgICAgICAgICAgbWF0Y2hpbmdGb250U2l6ZSA9IHJl
bmRlcmVyLT5zdHlsZSgpLT5zcGVjaWZpZWRGb250U2l6ZSgpOworICAgICAgICAgICAgZWxzZSB7
CisgICAgICAgICAgICAgICAgaWYgKG1hdGNoaW5nRm9udFNpemUgIT0gcmVuZGVyZXItPnN0eWxl
KCktPnNwZWNpZmllZEZvbnRTaXplKCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGlua0NvdW50Kys7CisgICAgICAgICAg
ICAvLyBTa2lwIHRyYXZlcnNpbmcgZGVzY2VuZGFudHMgb2YgdGhlIGxpbmsuCisgICAgICAgICAg
ICByZW5kZXJlciA9IHJlbmRlcmVyLT5uZXh0SW5QcmVPcmRlckFmdGVyQ2hpbGRyZW4oY29udGFp
bmVyKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICByZW5kZXJlciA9IG5leHRJblByZU9y
ZGVyU2tpcHBpbmdEZXNjZW5kYW50c09mQ29udGFpbmVycyhyZW5kZXJlciwgY29udGFpbmVyKTsK
KyAgICB9CisKKyAgICByZXR1cm4gKGxpbmtDb3VudCA+PSAzKTsKK30KKwogYm9vbCBUZXh0QXV0
b3NpemVyOjpjb250ZW50SGVpZ2h0SXNDb25zdHJhaW5lZChjb25zdCBSZW5kZXJCbG9jayogY29u
dGFpbmVyKQogewogICAgIC8vIEZJWE1FOiBQcm9wYWdhdGUgY29uc3RyYWluZWRuZXNzIGRvd24g
dGhlIHRyZWUsIHRvIGF2b2lkIGluZWZmaWNpZW50bHkgd2Fsa2luZyBiYWNrIHVwIGZyb20gZWFj
aCBib3guCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXpl
ci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuaAppbmRleCAxNjhh
Mjg1Yjk1OGE5NDhlODhhYjYwMGUwYjE3M2QwOTU4MjI5NDYwLi5lMWMyMmFlYjlkYjNiYzk5Yzhi
NzNlMWIwNjg5YzRmNmExNzA2Y2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvVGV4dEF1dG9zaXplci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0
b3NpemVyLmgKQEAgLTcxLDYgKzcxLDcgQEAgcHJpdmF0ZToKIAogICAgIHN0YXRpYyBib29sIGNv
bnRhaW5lclNob3VsZEJlQXV0b3NpemVkKGNvbnN0IFJlbmRlckJsb2NrKiBjb250YWluZXIpOwog
ICAgIHN0YXRpYyBib29sIGNvbnRhaW5lckNvbnRhaW5zT25lT2ZUYWdzKGNvbnN0IFJlbmRlckJs
b2NrKiBjbHVzdGVyLCBjb25zdCBWZWN0b3I8UXVhbGlmaWVkTmFtZT4mIHRhZ3MpOworICAgIHN0
YXRpYyBib29sIGNvbnRhaW5lcklzUm93T2ZMaW5rcyhjb25zdCBSZW5kZXJPYmplY3QqIGNvbnRh
aW5lcik7CiAgICAgc3RhdGljIGJvb2wgY29udGVudEhlaWdodElzQ29uc3RyYWluZWQoY29uc3Qg
UmVuZGVyQmxvY2sqIGNvbnRhaW5lcik7CiAgICAgc3RhdGljIGJvb2wgY2x1c3RlclNob3VsZEJl
QXV0b3NpemVkKGNvbnN0IFJlbmRlckJsb2NrKiBibG9ja0NvbnRhaW5pbmdBbGxUZXh0LCBmbG9h
dCBibG9ja1dpZHRoKTsKICAgICBzdGF0aWMgdm9pZCBtZWFzdXJlRGVzY2VuZGFudFRleHRXaWR0
aChjb25zdCBSZW5kZXJCbG9jayogY29udGFpbmVyLCBjb25zdCBSZW5kZXJCbG9jayogYmxvY2tD
b250YWluaW5nQWxsVGV4dCwgZmxvYXQgbWluVGV4dFdpZHRoLCBmbG9hdCYgdGV4dFdpZHRoKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmYjQ4NmEzY2UyZTc5YTQ1MmE3OWY1MWUxYzU0YjE3MDE0NDBmOWYzLi5kMWYyNDE0
MTgwOGRiZWRjYmQyYjAyNDY4ZTJlZWQxMTVlMTRiOGI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTMtMDEtMTggIFRpbSBWb2xvZGluZSAgPHRpbXZvbG9kaW5lQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBUZXh0IEF1dG9zaXppbmc6IGRvbid0IGF1dG9zaXplIGhlYWRlcnMgd2l0aCBtdWx0
aXBsZSBpbmxpbmUgbGlua3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDY3OTIKKworICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENo
cmlzdGlhbnNlbi4KKworICAgICAgICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saS1s
aW5rcy1hdXRvc2l6aW5nLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4
dC1hdXRvc2l6aW5nL2hlYWRlci1saS1saW5rcy1hdXRvc2l6aW5nLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saW5rcy1hdXRvc2l6aW5nLWRpZmZl
cmVudC1mb250c2l6ZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3RleHQt
YXV0b3NpemluZy9oZWFkZXItbGlua3MtYXV0b3NpemluZy1kaWZmZXJlbnQtZm9udHNpemUuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC90ZXh0LWF1dG9zaXppbmcvaGVhZGVyLWxpbmtzLWF1
dG9zaXppbmctZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC90ZXh0LWF1dG9z
aXppbmcvaGVhZGVyLWxpbmtzLWF1dG9zaXppbmcuaHRtbDogQWRkZWQuCisKIDIwMTMtMDEtMTUg
IFRhYiBBdGtpbnMgIDxqYWNrYWxtYWdlQGdtYWlsLmNvbT4KIAogICAgICAgICBVcGRhdGUgQ1NT
MyBncmFkaWVudCBzdXBwb3J0IHRvIHRoZSBsYXRlc3Qgc3BlYyB2ZXJzaW9uCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9oZWFkZXItbGktbGlua3MtYXV0b3Np
emluZy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvaGVh
ZGVyLWxpLWxpbmtzLWF1dG9zaXppbmctZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMjQ5NGJl
MjgwOGI2ZmYxYmQwYWRhNmNlNGI1NmY5NGQzOGQwNjRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvaGVhZGVyLWxpLWxpbmtzLWF1dG9zaXppbmct
ZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDQyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIHN0
eWxlPSJmb250LXNpemU6IDE2cHgiPgorPGhlYWQ+CisKKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBj
b250ZW50PSJ3aWR0aD04MDAiPgorPHN0eWxlPgorICBib2R5IHsKKyAgICB3aWR0aDogODAwcHg7
CisgICAgbWFyZ2luOiAwOworICAgIG92ZXJmbG93LXk6IGhpZGRlbjsKKyAgfQorPC9zdHlsZT4K
KworPC9oZWFkPgorPGJvZHk+CisKKzx1bD4KKyAgICA8bGkgc3R5bGU9ImRpc3BsYXk6aW5saW5l
Ij4KKyAgICAgICAgPGEgaHJlZj0iIj5UaGVzZTwvYT4KKyAgICA8L2xpPgorICAgIDxsaSBzdHls
ZT0iZGlzcGxheTppbmxpbmUiPgorICAgICAgICA8YSBocmVmPSIiPkxpbmtzPC9hPgorICAgIDwv
bGk+CisgICAgPGxpIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+CisgICAgICAgIDxhIGhyZWY9IiI+
U2hvdWxkPC9hPgorICAgIDwvbGk+CisgICAgPGxpIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+Cisg
ICAgICAgIDxhIGhyZWY9IiI+Tm90IGJlPC9hPgorICAgIDwvbGk+CisgICAgPGxpIHN0eWxlPSJk
aXNwbGF5OmlubGluZSI+CisgICAgICAgIDxhIGhyZWY9IiI+QXV0b3NpemVkPC9hPgorICAgIDwv
bGk+Cis8L3VsPgorPGRpdiBzdHlsZT0iZm9udC1zaXplOiAyLjVyZW0iPgorICAgIFRoaXMgcGFy
YWdyYXBoIHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gNDBweCBjb21wdXRlZCBmb250LXNpemUgKDE2
ICogODAwLzMyMCksCisgICAgd2hlcmVhcyB0aGUgaW5saW5lIGxpbmtzIGluIHRoZSBoZWFkZXIg
YWJvdmUgc2hvdWxkIGJlIGRldGVjdGVkIGFzIGEgcm93IG9mIGxpbmtzCisgICAgYW5kIGhlbmNl
IHJlbmRlcmVkIGF0IHRoZWlyIGRlZmF1bHQgc2l6ZS4KKyAgICBMb3JlbSBpcHN1bSBkb2xvciBz
aXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVt
cG9yCisgICAgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4KKzwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
LWF1dG9zaXppbmcvaGVhZGVyLWxpLWxpbmtzLWF1dG9zaXppbmcuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saS1saW5rcy1hdXRvc2l6aW5nLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMWJhOTM0MDA2YmFmYzI2YmFhOWE4YjAyOWNiNDFmNDVlOWY4ODJkZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saS1s
aW5rcy1hdXRvc2l6aW5nLmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbCBzdHlsZT0iZm9udC1zaXplOiAxNnB4Ij4KKzxoZWFkPgorCis8bWV0YSBuYW1lPSJ2aWV3
cG9ydCIgY29udGVudD0id2lkdGg9ODAwIj4KKzxzdHlsZT4KKyAgYm9keSB7CisgICAgd2lkdGg6
IDgwMHB4OworICAgIG1hcmdpbjogMDsKKyAgICBvdmVyZmxvdy15OiBoaWRkZW47CisgIH0KKzwv
c3R5bGU+CisKKzxzY3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykgeworICAgIHdpbmRvdy5p
bnRlcm5hbHMuc2V0dGluZ3Muc2V0VGV4dEF1dG9zaXppbmdFbmFibGVkKHRydWUpOworICAgIHdp
bmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0VGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJp
ZGUoMzIwLCA0ODApOworfSBlbHNlIGlmICh3aW5kb3cuY29uc29sZSAmJiBjb25zb2xlLndhcm4p
IHsKKyAgICBjb25zb2xlLndhcm4oIlRoaXMgdGVzdCBkZXBlbmRzIG9uIHRoZSBUZXh0IEF1dG9z
aXppbmcgc2V0dGluZyBiZWluZyB0cnVlLCBzbyBydW4gaXQgaW4gRHVtcFJlbmRlclRyZWUsIG9y
IG1hbnVhbGx5IGVuYWJsZSBUZXh0IEF1dG9zaXppbmcsIGFuZCBlaXRoZXIgdXNlIGEgbW9iaWxl
IGRldmljZSB3aXRoIDMyMHB4IGRldmljZS13aWR0aCAobGlrZSBOZXh1cyBTIG9yIGlQaG9uZSks
IG9yIGRlZmluZSBIQUNLX0ZPUkNFX1RFWFRfQVVUT1NJWklOR19PTl9ERVNLVE9QLiIpOworfQor
PC9zY3JpcHQ+CisKKzwvaGVhZD4KKzxib2R5PgorCis8dWw+CisgICAgPGxpIHN0eWxlPSJkaXNw
bGF5OmlubGluZSI+CisgICAgICAgIDxhIGhyZWY9IiI+VGhlc2U8L2E+CisgICAgPC9saT4KKyAg
ICA8bGkgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4KKyAgICAgICAgPGEgaHJlZj0iIj5MaW5rczwv
YT4KKyAgICA8L2xpPgorICAgIDxsaSBzdHlsZT0iZGlzcGxheTppbmxpbmUiPgorICAgICAgICA8
YSBocmVmPSIiPlNob3VsZDwvYT4KKyAgICA8L2xpPgorICAgIDxsaSBzdHlsZT0iZGlzcGxheTpp
bmxpbmUiPgorICAgICAgICA8YSBocmVmPSIiPk5vdCBiZTwvYT4KKyAgICA8L2xpPgorICAgIDxs
aSBzdHlsZT0iZGlzcGxheTppbmxpbmUiPgorICAgICAgICA8YSBocmVmPSIiPkF1dG9zaXplZDwv
YT4KKyAgICA8L2xpPgorPC91bD4KKzxkaXY+CisgICAgVGhpcyBwYXJhZ3JhcGggc2hvdWxkIGJl
IGF1dG9zaXplZCB0byA0MHB4IGNvbXB1dGVkIGZvbnQtc2l6ZSAoMTYgKiA4MDAvMzIwKSwKKyAg
ICB3aGVyZWFzIHRoZSBpbmxpbmUgbGlua3MgaW4gdGhlIGhlYWRlciBhYm92ZSBzaG91bGQgYmUg
ZGV0ZWN0ZWQgYXMgYSByb3cgb2YgbGlua3MKKyAgICBhbmQgaGVuY2UgcmVuZGVyZWQgYXQgdGhl
aXIgZGVmYXVsdCBzaXplLgorICAgIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0
ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IKKyAgICBpbmNpZGlk
dW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLgorPC9kaXY+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9oZWFk
ZXItbGlua3MtYXV0b3NpemluZy1kaWZmZXJlbnQtZm9udHNpemUtZXhwZWN0ZWQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saW5rcy1hdXRvc2l6aW5nLWRp
ZmZlcmVudC1mb250c2l6ZS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhYWY4NzEyM2IwOTFj
YzJkMmVjZmMxNTRkZDViNzg2NTMwYzVmYmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3RleHQtYXV0b3NpemluZy9oZWFkZXItbGlua3MtYXV0b3NpemluZy1kaWZmZXJlbnQt
Zm9udHNpemUtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sIHN0eWxlPSJmb250LXNpemU6IDE2cHgiPgorPGhlYWQ+CisKKzxtZXRhIG5hbWU9InZp
ZXdwb3J0IiBjb250ZW50PSJ3aWR0aD04MDAiPgorPHN0eWxlPgorICBib2R5IHsKKyAgICB3aWR0
aDogODAwcHg7CisgICAgbWFyZ2luOiAwOworICAgIG92ZXJmbG93LXk6IGhpZGRlbjsKKyAgfQor
PC9zdHlsZT4KKworPC9oZWFkPgorPGJvZHk+CisKKzxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMi41
cmVtIj4KKyAgICA8YSBocmVmPSIiPlRoZXNlPC9hPgorICAgICZndDsKKyAgICA8YSBocmVmPSIi
IHN0eWxlPSJmb250LXNpemU6IDQ0cHgiPkxpbmtzPC9hPgorICAgICZndDsKKyAgICA8YSBocmVm
PSIiPlNob3VsZDwvYT4KKyAgICAmZ3Q7CisgICAgPGEgaHJlZj0iIj5CZTwvYT4KKyAgICAmZ3Q7
CisgICAgPGEgaHJlZj0iIj5BdXRvc2l6ZWQ8L2E+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9ImZvbnQt
c2l6ZTogMi41cmVtIj4KKyAgICBUaGlzIHBhcmFncmFwaCBzaG91bGQgYmUgYXV0b3NpemVkIHRv
IDQwcHggY29tcHV0ZWQgZm9udC1zaXplICgxNiAqIDgwMC8zMjApLAorICAgIGFuZCB0aGUgaW5s
aW5lIGxpbmtzIGFib3ZlIHNob3VsZCBub3QgYmUgZGV0ZWN0ZWQgYXMgYSByb3cgb2YgbGlua3Mg
YmVjYXVzZSB0aGUKKyAgICBsaW5rcyBoYXZlIGRpZmZlcmVudCBmb250IHNpemVzLCBhbmQgaGVu
Y2UgdGhleSBzaG91bGQgYmUgcmVuZGVyZWQgYXQgdGhlaXIgZGVmYXVsdCBzaXplLgorPC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0
b3NpemluZy9oZWFkZXItbGlua3MtYXV0b3NpemluZy1kaWZmZXJlbnQtZm9udHNpemUuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2hlYWRlci1saW5rcy1hdXRvc2l6aW5n
LWRpZmZlcmVudC1mb250c2l6ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwMTIzNzBiMDRiNTQ5N2M5ODRi
NWQ2NjkwOTIwMzA0ZTA2MzRiYWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3RleHQtYXV0b3NpemluZy9oZWFkZXItbGlua3MtYXV0b3NpemluZy1kaWZmZXJlbnQtZm9udHNp
emUuaHRtbApAQCAtMCwwICsxLDQzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIHN0eWxlPSJm
b250LXNpemU6IDE2cHgiPgorPGhlYWQ+CisKKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50
PSJ3aWR0aD04MDAiPgorPHN0eWxlPgorICBib2R5IHsKKyAgICB3aWR0aDogODAwcHg7CisgICAg
bWFyZ2luOiAwOworICAgIG92ZXJmbG93LXk6IGhpZGRlbjsKKyAgfQorPC9zdHlsZT4KKworPHNj
cmlwdD4KK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgd2luZG93LmludGVybmFscy5zZXR0
aW5ncy5zZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQodHJ1ZSk7CisgICAgd2luZG93LmludGVybmFs
cy5zZXR0aW5ncy5zZXRUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZSgzMjAsIDQ4MCk7
Cit9IGVsc2UgaWYgKHdpbmRvdy5jb25zb2xlICYmIGNvbnNvbGUud2FybikgeworICAgIGNvbnNv
bGUud2FybigiVGhpcyB0ZXN0IGRlcGVuZHMgb24gdGhlIFRleHQgQXV0b3NpemluZyBzZXR0aW5n
IGJlaW5nIHRydWUsIHNvIHJ1biBpdCBpbiBEdW1wUmVuZGVyVHJlZSwgb3IgbWFudWFsbHkgZW5h
YmxlIFRleHQgQXV0b3NpemluZywgYW5kIGVpdGhlciB1c2UgYSBtb2JpbGUgZGV2aWNlIHdpdGgg
MzIwcHggZGV2aWNlLXdpZHRoIChsaWtlIE5leHVzIFMgb3IgaVBob25lKSwgb3IgZGVmaW5lIEhB
Q0tfRk9SQ0VfVEVYVF9BVVRPU0laSU5HX09OX0RFU0tUT1AuIik7Cit9Cis8L3NjcmlwdD4KKwor
PC9oZWFkPgorPGJvZHk+CisKKzxkaXY+CisgICAgPGEgaHJlZj0iIj5UaGVzZTwvYT4KKyAgICAm
Z3Q7CisgICAgPGEgaHJlZj0iIiBzdHlsZT0iZm9udC1zaXplOiAyNHB4Ij5MaW5rczwvYT4KKyAg
ICAmZ3Q7CisgICAgPGEgaHJlZj0iIj5TaG91bGQ8L2E+CisgICAgJmd0OworICAgIDxhIGhyZWY9
IiI+QmU8L2E+CisgICAgJmd0OworICAgIDxhIGhyZWY9IiI+QXV0b3NpemVkPC9hPgorPC9kaXY+
Cis8ZGl2PgorICAgIFRoaXMgcGFyYWdyYXBoIHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gNDBweCBj
b21wdXRlZCBmb250LXNpemUgKDE2ICogODAwLzMyMCksCisgICAgYW5kIHRoZSBpbmxpbmUgbGlu
a3MgYWJvdmUgc2hvdWxkIG5vdCBiZSBkZXRlY3RlZCBhcyBhIHJvdyBvZiBsaW5rcyBiZWNhdXNl
IHRoZQorICAgIGxpbmtzIGhhdmUgZGlmZmVyZW50IGZvbnQgc2l6ZXMsIGFuZCBoZW5jZSB0aGV5
IHNob3VsZCBiZSByZW5kZXJlZCBhdCB0aGVpciBkZWZhdWx0IHNpemUuCis8L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5n
L2hlYWRlci1saW5rcy1hdXRvc2l6aW5nLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3RleHQtYXV0b3NpemluZy9oZWFkZXItbGlua3MtYXV0b3NpemluZy1leHBlY3RlZC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjM3ZjU3MGJiYjI2MjY2OTk3Mzg4MzhmY2E3MWZkODIwNzdlYTVmMzQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9oZWFkZXItbGlu
a3MtYXV0b3NpemluZy1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWwgc3R5bGU9ImZvbnQtc2l6ZTogMTZweCI+Cis8aGVhZD4KKworPG1ldGEgbmFt
ZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPTgwMCI+Cis8c3R5bGU+CisgIGJvZHkgeworICAg
IHdpZHRoOiA4MDBweDsKKyAgICBtYXJnaW46IDA7CisgICAgb3ZlcmZsb3cteTogaGlkZGVuOwor
ICB9Cis8L3N0eWxlPgorCis8L2hlYWQ+Cis8Ym9keT4KKworPGRpdj4KKyAgICA8YSBocmVmPSIi
PlRoZXNlPC9hPgorICAgICZndDsKKyAgICA8YSBocmVmPSIiPkxpbmtzPC9hPgorICAgICZndDsK
KyAgICA8YSBocmVmPSIiPlNob3VsZDwvYT4KKyAgICAmZ3Q7CisgICAgPGEgaHJlZj0iIj5Ob3Qg
YmU8L2E+CisgICAgJmd0OworICAgIDxhIGhyZWY9IiI+QXV0b3NpemVkPC9hPgorICAgIDxkaXYg
c3R5bGU9ImZvbnQtc2l6ZTogMi41cmVtIj4KKyAgICAgICAgVGhpcyBwYXJhZ3JhcGggc2hvdWxk
IGJlIGF1dG9zaXplZCB0byA0MHB4IGNvbXB1dGVkIGZvbnQtc2l6ZSAoMTYgKiA4MDAvMzIwKSwK
KyAgICAgICAgd2hlcmVhcyB0aGUgaW5saW5lIGxpbmtzIGluIHRoZSBoZWFkZXIgYWJvdmUgc2hv
dWxkIGJlIGRldGVjdGVkIGFzIGEgcm93IG9mIGxpbmtzCisgICAgICAgIGFuZCBoZW5jZSByZW5k
ZXJlZCBhdCB0aGVpciBkZWZhdWx0IHNpemUuCisgICAgPC9kaXY+Cis8L2Rpdj4KKzxkaXYgc3R5
bGU9ImZvbnQtc2l6ZTogMi41cmVtIj4KKyAgICBUaGlzIHBhcmFncmFwaCBzaG91bGQgYmUgYXV0
b3NpemVkIHRvIDQwcHggY29tcHV0ZWQgZm9udC1zaXplICgxNiAqIDgwMC8zMjApLgorICAgIExv
cmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBz
ZWQgZG8gZWl1c21vZCB0ZW1wb3IKKyAgICBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUg
bWFnbmEgYWxpcXVhLgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9oZWFkZXItbGlua3MtYXV0b3NpemluZy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvaGVhZGVyLWxpbmtzLWF1dG9zaXpp
bmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yMjYyZjhjYTYxY2NkYjljOWM0MTA1YWI1ZTY5NTQwNDhkMjM5
NTBiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcv
aGVhZGVyLWxpbmtzLWF1dG9zaXppbmcuaHRtbApAQCAtMCwwICsxLDQ4IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sIHN0eWxlPSJmb250LXNpemU6IDE2cHgiPgorPGhlYWQ+CisKKzxtZXRhIG5h
bWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD04MDAiPgorPHN0eWxlPgorICBib2R5IHsKKyAg
ICB3aWR0aDogODAwcHg7CisgICAgbWFyZ2luOiAwOworICAgIG92ZXJmbG93LXk6IGhpZGRlbjsK
KyAgfQorPC9zdHlsZT4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAg
d2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQodHJ1ZSk7
CisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRUZXh0QXV0b3NpemluZ1dpbmRvd1Np
emVPdmVycmlkZSgzMjAsIDQ4MCk7Cit9IGVsc2UgaWYgKHdpbmRvdy5jb25zb2xlICYmIGNvbnNv
bGUud2FybikgeworICAgIGNvbnNvbGUud2FybigiVGhpcyB0ZXN0IGRlcGVuZHMgb24gdGhlIFRl
eHQgQXV0b3NpemluZyBzZXR0aW5nIGJlaW5nIHRydWUsIHNvIHJ1biBpdCBpbiBEdW1wUmVuZGVy
VHJlZSwgb3IgbWFudWFsbHkgZW5hYmxlIFRleHQgQXV0b3NpemluZywgYW5kIGVpdGhlciB1c2Ug
YSBtb2JpbGUgZGV2aWNlIHdpdGggMzIwcHggZGV2aWNlLXdpZHRoIChsaWtlIE5leHVzIFMgb3Ig
aVBob25lKSwgb3IgZGVmaW5lIEhBQ0tfRk9SQ0VfVEVYVF9BVVRPU0laSU5HX09OX0RFU0tUT1Au
Iik7Cit9Cis8L3NjcmlwdD4KKworPC9oZWFkPgorPGJvZHk+CisKKzxkaXY+CisgICAgPGEgaHJl
Zj0iIj5UaGVzZTwvYT4KKyAgICAmZ3Q7CisgICAgPGEgaHJlZj0iIj5MaW5rczwvYT4KKyAgICAm
Z3Q7CisgICAgPGEgaHJlZj0iIj5TaG91bGQ8L2E+CisgICAgJmd0OworICAgIDxhIGhyZWY9IiI+
Tm90IGJlPC9hPgorICAgICZndDsKKyAgICA8YSBocmVmPSIiPkF1dG9zaXplZDwvYT4KKyAgICA8
ZGl2PgorICAgICAgICBUaGlzIHBhcmFncmFwaCBzaG91bGQgYmUgYXV0b3NpemVkIHRvIDQwcHgg
Y29tcHV0ZWQgZm9udC1zaXplICgxNiAqIDgwMC8zMjApLAorICAgICAgICB3aGVyZWFzIHRoZSBp
bmxpbmUgbGlua3MgaW4gdGhlIGhlYWRlciBhYm92ZSBzaG91bGQgYmUgZGV0ZWN0ZWQgYXMgYSBy
b3cgb2YgbGlua3MKKyAgICAgICAgYW5kIGhlbmNlIHJlbmRlcmVkIGF0IHRoZWlyIGRlZmF1bHQg
c2l6ZS4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPGRpdj4KKyAgICBUaGlzIHBhcmFncmFwaCBzaG91
bGQgYmUgYXV0b3NpemVkIHRvIDQwcHggY29tcHV0ZWQgZm9udC1zaXplICgxNiAqIDgwMC8zMjAp
LgorICAgIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2lu
ZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IKKyAgICBpbmNpZGlkdW50IHV0IGxhYm9yZSBl
dCBkb2xvcmUgbWFnbmEgYWxpcXVhLgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>