<?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>63365</bug_id>
          
          <creation_ts>2011-06-24 16:52:26 -0700</creation_ts>
          <short_desc>ASSERTs in RenderInline::layout()</short_desc>
          <delta_ts>2012-05-23 16:16:35 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>82634</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Rob Buis">rwlbuis</assigned_to>
          <cc>aestes</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>schenney</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>427241</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-06-24 16:52:26 -0700</bug_when>
    <thetext>Steps to repro:

1. Open the attached SVG in a debug build of a WebKit browser.

Expected result: Nothing is drawn.
Actual result: Crash due to an assertion.

&lt;rdar://problem/7403871&gt;

Diagnosis:

There are a variety of text elements which are laid out by their (expected) parents. If their parent is something else instead, they fall back on RenderInline, which isn&apos;t too happy about this.

What&apos;s the right fix? Technically this is invalid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427242</commentid>
    <comment_count>1</comment_count>
      <attachid>98563</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-06-24 16:53:13 -0700</bug_when>
    <thetext>Created attachment 98563
repro</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427326</commentid>
    <comment_count>2</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-06-24 23:35:46 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; Steps to repro:
&gt; 
&gt; 1. Open the attached SVG in a debug build of a WebKit browser.
&gt; 
&gt; Expected result: Nothing is drawn.
&gt; Actual result: Crash due to an assertion.
&gt; 
&gt; &lt;rdar://problem/7403871&gt;
&gt; 
&gt; Diagnosis:
&gt; 
&gt; There are a variety of text elements which are laid out by their (expected) parents. If their parent is something else instead, they fall back on RenderInline, which isn&apos;t too happy about this.
&gt; 
&gt; What&apos;s the right fix? Technically this is invalid.

Good catch. We had a similar problem before:
&lt;text&gt; &lt;circle&gt; .... Arbitary children as &lt;text&gt; elements caused crashes. We&apos;ve fixed that by only allowing a specific subset of rendererers to be children of &lt;text&gt;.
bool SVGTextElement::childShouldCreateRenderer(Node* child) const
{
    if (child-&gt;isTextNode()
        || child-&gt;hasTagName(SVGNames::aTag)
#if ENABLE(SVG_FONTS)
        || child-&gt;hasTagName(SVGNames::altGlyphTag)
#endif
        || child-&gt;hasTagName(SVGNames::textPathTag)
        || child-&gt;hasTagName(SVGNames::trefTag)
        || child-&gt;hasTagName(SVGNames::tspanTag))
        return true;

    return false;
}

This function handles the aformentioned &quot;only-allow-specific-children-for-&lt;text&gt;&quot;.
We need a similar method, to avoid creating renderers for &lt;textPath&gt;/&lt;tref&gt;/... when it&apos;s parent is not &lt;text&gt;: that&apos;s done by reimplementing rendererIsNeeded():

Looking closer through the SVGTSpan/TRef/TextPath/.. elements we already did that:

bool SVGTSpanElement::rendererIsNeeded(const NodeRenderingContext&amp; context)
{
    if (parentNode()
        &amp;&amp; (parentNode()-&gt;hasTagName(SVGNames::aTag)
#if ENABLE(SVG_FONTS)
            || parentNode()-&gt;hasTagName(SVGNames::altGlyphTag)
#endif
            || parentNode()-&gt;hasTagName(SVGNames::textTag)
            || parentNode()-&gt;hasTagName(SVGNames::textPathTag)
            || parentNode()-&gt;hasTagName(SVGNames::tspanTag)))
        return StyledElement::rendererIsNeeded(context);

    return false;
}

See SVGTextPathElement:
bool SVGTextPathElement::rendererIsNeeded(const NodeRenderingContext&amp; context)
{
    if (parentNode()
        &amp;&amp; (parentNode()-&gt;hasTagName(SVGNames::aTag)
            || parentNode()-&gt;hasTagName(SVGNames::textTag)))
        return StyledElement::rendererIsNeeded(context);

    return false;
}

We explicitely allow &lt;a&gt; to be a parent of &lt;textPath&gt;. Is this not correct? Is this supposed to work? What does Opera say?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428070</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-06-27 10:29:09 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; We explicitely allow &lt;a&gt; to be a parent of &lt;textPath&gt;. Is this not correct? Is this supposed to work? What does Opera say?

That&apos;s interesting! I don&apos;t *think* that&apos;s correct, it would appear that Opera does not render &lt;textPath&gt; when it&apos;s a child of &lt;a&gt;.  This also isn&apos;t the only case of hitting this/similar bug (&lt;tspan&gt; inside &lt;g&gt; is another case I&apos;ve seen, which opera also doesn&apos;t render).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629207</commentid>
    <comment_count>4</comment_count>
      <attachid>143052</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-05-21 09:46:36 -0700</bug_when>
    <thetext>Created attachment 143052
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629242</commentid>
    <comment_count>5</comment_count>
      <attachid>143052</attachid>
    <who name="Stephen Chenney">schenney</who>
    <bug_when>2012-05-21 10:30:19 -0700</bug_when>
    <thetext>Comment on attachment 143052
Patch

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

Yeah! I&apos;m all for patches that enforce the content model. We&apos;ve seen security problems with this in the recent past.

Does this cover all of the places where we may need to prevent text content child elements from appearing? Given that they are only allowed as children of other text content child elements, or of a text element, would it not be clearer to add a SVG-wide childShouldCreateRenderer that prevents text content child elements, and then override it for the allowed cases?

&gt; Source/WebCore/svg/SVGDefsElement.h:46
&gt; +    virtual bool childShouldCreateRenderer(const NodeRenderingContext&amp;) const;

Add OVERRIDE

&gt; Source/WebCore/svg/SVGGElement.h:54
&gt; +    virtual bool childShouldCreateRenderer(const NodeRenderingContext&amp;) const;

Add OVERRIDE

&gt; Source/WebCore/svg/SVGSVGElement.h:147
&gt; +    virtual bool childShouldCreateRenderer(const NodeRenderingContext&amp;) const;

Add OVERRIDE

&gt; Source/WebCore/svg/SVGSymbolElement.h:51
&gt; +    virtual bool childShouldCreateRenderer(const NodeRenderingContext&amp;) const;

Add OVERRIDE

&gt; Source/WebCore/svg/SVGUseElement.h:73
&gt; +    virtual bool childShouldCreateRenderer(const NodeRenderingContext&amp;) const;

Add OVERRIDE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629298</commentid>
    <comment_count>6</comment_count>
      <attachid>143064</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-05-21 11:27:44 -0700</bug_when>
    <thetext>Created attachment 143064
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629299</commentid>
    <comment_count>7</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-05-21 11:29:00 -0700</bug_when>
    <thetext>Hi Stephen,

(In reply to comment #5)
&gt; (From update of attachment 143052 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=143052&amp;action=review
&gt; 
&gt; Yeah! I&apos;m all for patches that enforce the content model. We&apos;ve seen security problems with this in the recent past.
&gt; 
&gt; Does this cover all of the places where we may need to prevent text content child elements from appearing? Given that they are only allowed as children of other text content child elements, or of a text element, would it not be clearer to add a SVG-wide childShouldCreateRenderer that prevents text content child elements, and then override it for the allowed cases?

Yes, I think you are right, I tried to implement this in my latest patch. It also makes it a much simpler patch, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629984</commentid>
    <comment_count>8</comment_count>
      <attachid>143064</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-05-21 23:38:55 -0700</bug_when>
    <thetext>Comment on attachment 143064
Patch

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

r=me.

&gt; Source/WebCore/svg/SVGElement.cpp:499
&gt; +        if (childContext.node()-&gt;hasTagName(SVGNames::textPathTag)

We might want to think about adding a static HashSet&lt;QName&gt; of allowed tags here, and check against that.
childShouldCreateRenderer() is used quite often. Not sure if its worth it though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630549</commentid>
    <comment_count>9</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-05-22 11:08:28 -0700</bug_when>
    <thetext>Hi Niko,

(In reply to comment #8)
&gt; (From update of attachment 143064 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=143064&amp;action=review
&gt; 
&gt; r=me.
&gt; 
&gt; &gt; Source/WebCore/svg/SVGElement.cpp:499
&gt; &gt; +        if (childContext.node()-&gt;hasTagName(SVGNames::textPathTag)
&gt; 
&gt; We might want to think about adding a static HashSet&lt;QName&gt; of allowed tags here, and check against that.
&gt; childShouldCreateRenderer() is used quite often. Not sure if its worth it though.

I think it is a good idea, I added that before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630551</commentid>
    <comment_count>10</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-05-22 11:10:05 -0700</bug_when>
    <thetext>Committed r118002: &lt;http://trac.webkit.org/changeset/118002&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630643</commentid>
    <comment_count>11</comment_count>
    <who name="Stephen Chenney">schenney</who>
    <bug_when>2012-05-22 12:10:39 -0700</bug_when>
    <thetext>*** Bug 82634 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632159</commentid>
    <comment_count>12</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2012-05-23 16:16:35 -0700</bug_when>
    <thetext>What (if any) is the symptom of this bug in release builds?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>98563</attachid>
            <date>2011-06-24 16:53:13 -0700</date>
            <delta_ts>2011-06-24 16:53:13 -0700</delta_ts>
            <desc>repro</desc>
            <filename>RenderInline-layout.svg</filename>
            <type>image/svg+xml</type>
            <size>220</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">PHN2ZzpzdmcgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxp
bms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPHN2ZzphIHhsaW5rOmhyZWY9
Imh0dHA6Ly93d3cud2Via2l0Lm9yZyI+CiAgICAgICAgPHN2Zzp0ZXh0UGF0aCB4bGluazpocmVm
PSIjcGF0aDEiPjwvc3ZnOnRleHRQYXRoPgogICAgPC9zdmc6YT4KPC9zdmc6c3ZnPg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143052</attachid>
            <date>2012-05-21 09:46:36 -0700</date>
            <delta_ts>2012-05-21 11:27:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63365-20120521124625.patch</filename>
            <type>text/plain</type>
            <size>13814</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3NzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTM3NjliMzYxNGU4ZmIx
ZmI3MzgzMTkyOWY5NjZhZjBjZjliN2E2NC4uNTA0YjM5NmJmY2RkYzM0ZmZkMzliM2JiM2E0N2I4
MzdkMDM2MWIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTA1LTIxICBSb2Ig
QnVpcyAgPHJidWlzQHJpbS5jb20+CisKKyAgICAgICAgQVNTRVJUcyBpbiBSZW5kZXJJbmxpbmU6
OmxheW91dCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02MzM2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IERvIG5vdCBhbGxvdyBjcmVhdGlvbiBvZiByZW5kZXJlcnMgZm9yIHRleHQgY29udGVudCBjaGls
ZHJlbiBpbiBzdHJ1Y3R1cmFsIGVsZW1lbnRzLgorICAgICAgICBUaGlzIGFsc28gZml4ZXMgdGhl
IDxhPjx0ZXh0UGF0aDwvYT4gY2FzZSBiZWNhdXNlIG9mIHRoaXM6CisgICAgICAgIGh0dHA6Ly93
d3cudzMub3JnLzIwMDMvMDEvUkVDLVNWRzExLTIwMDMwMTE0LWVycmF0YSNsaW5raW5nLXRleHQt
ZW52aXJvbm1lbnQKKworICAgICAgICBUZXN0OiBzdmcvY3VzdG9tL2Rpc2FsbG93ZWQtdGV4dC1j
b250ZW50LXJlbmRlcmluZy5zdmcKKworICAgICAgICAqIHN2Zy9TVkdEZWZzRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdEZWZzRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5k
ZXJlcik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBzdmcvU1ZHRGVmc0VsZW1lbnQu
aDoKKyAgICAgICAgKFNWR0RlZnNFbGVtZW50KToKKyAgICAgICAgKiBzdmcvU1ZHR0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHR0VsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVu
ZGVyZXIpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogc3ZnL1NWR0dFbGVtZW50Lmg6
CisgICAgICAgIChTVkdHRWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR1NWR0VsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5k
ZXJlcik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5o
OgorICAgICAgICAoU1ZHU1ZHRWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR1N5bWJvbEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3ltYm9sRWxlbWVudDo6Y2hpbGRTaG91bGRD
cmVhdGVSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBzdmcvU1ZHU3lt
Ym9sRWxlbWVudC5oOgorICAgICAgICAoU1ZHU3ltYm9sRWxlbWVudCk6CisgICAgICAgICogc3Zn
L1NWR1VzZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6Y2hp
bGRTaG91bGRDcmVhdGVSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBz
dmcvU1ZHVXNlRWxlbWVudC5oOgorICAgICAgICAoU1ZHVXNlRWxlbWVudCk6CisKIDIwMTItMDUt
MjEgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBbcmVmYWN0b3JpbmddIHByb21vdGUgZmlsbC9ib3JkZXIgY29sb3JzIHVzZWQg
YnkgdGltZWxpbmUncyBmcmFtZSBvdmVydmlldyB0byBUaW1lbGluZUNhdGVnb3J5CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0RlZnNFbGVtZW50LmNwcAppbmRleCBkZGI0NmZjNWNiNTA0NTBmZTc4ZDkyZDZi
NTgxNDA5MmEzMzk3NWJiLi5mZmU4ZmQwZGM5Yjg3YTA3MmEwZmIwM2RiMmZlNjdmZDVjNmI1YWMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5jcHAKQEAgLTIzLDYgKzIzLDcgQEAK
ICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIlNWR0RlZnNFbGVtZW50LmgiCiAKKyNpbmNsdWRl
ICJOb2RlUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclNWR0hpZGRlbkNvbnRh
aW5lci5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAKQEAgLTU5LDYgKzYwLDE5IEBAIFJlbmRl
ck9iamVjdCogU1ZHRGVmc0VsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVu
YSwgUmVuZGVyU3R5bGUqKQogICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJTVkdIaWRkZW5D
b250YWluZXIodGhpcyk7CiB9CiAKK2Jvb2wgU1ZHRGVmc0VsZW1lbnQ6OmNoaWxkU2hvdWxkQ3Jl
YXRlUmVuZGVyZXIoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmIGNoaWxkQ29udGV4dCkgY29u
c3QKK3sKKyAgICBpZiAoY2hpbGRDb250ZXh0Lm5vZGUoKS0+aGFzVGFnTmFtZShTVkdOYW1lczo6
dGV4dFBhdGhUYWcpCisjaWYgRU5BQkxFKFNWR19GT05UUykKKyAgICAgICAgfHwgY2hpbGRDb250
ZXh0Lm5vZGUoKS0+aGFzVGFnTmFtZShTVkdOYW1lczo6YWx0R2x5cGhUYWcpCisjZW5kaWYKKyAg
ICAgICAgfHwgY2hpbGRDb250ZXh0Lm5vZGUoKS0+aGFzVGFnTmFtZShTVkdOYW1lczo6dHJlZlRh
ZykKKyAgICAgICAgfHwgY2hpbGRDb250ZXh0Lm5vZGUoKS0+aGFzVGFnTmFtZShTVkdOYW1lczo6
dHNwYW5UYWcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gU1ZHRWxlbWVu
dDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjaGlsZENvbnRleHQpOworfQorCiB9CiAKICNl
bmRpZiAvLyBFTkFCTEUoU1ZHKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Rl
ZnNFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuaAppbmRleCAy
MmNjMGU5NGVhMDUwNjg2MGQ4ZDVhMjYwY2E0ZmE1ZjAwOGRlZTViLi5lZTE5ODJhMDM0YjA1M2Rj
MGMxZTRjZDM5ZGQ5OWU3Y2E2ODExZTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRGVmc0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQu
aApAQCAtNDMsNiArNDMsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkg
Y29uc3Q7CiAKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVy
QXJlbmEqLCBSZW5kZXJTdHlsZSopOworICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0
ZVJlbmRlcmVyKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JikgY29uc3Q7CiAKICAgICBCRUdJ
Tl9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHRGVmc0VsZW1lbnQpCiAgICAgICAgIERF
Q0xBUkVfQU5JTUFURURfQk9PTEVBTihFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5jcHAKaW5kZXggMzBi
YmE1MzgwZmY3MDRhNWY1YTczZDg3N2ZjNzZkYjI1ZDY3N2Q5MS4uZTY4OTQwMWY0NWNhZDQxYTFi
NzQxMzAzOWJlMzA5YTRkNGJmNWZmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0dFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuY3BwCkBA
IC0yMyw2ICsyMyw3IEBACiAjaWYgRU5BQkxFKFNWRykKICNpbmNsdWRlICJTVkdHRWxlbWVudC5o
IgogCisjaW5jbHVkZSAiTm9kZVJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJT
VkdIaWRkZW5Db250YWluZXIuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZS5oIgogI2lu
Y2x1ZGUgIlJlbmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuaCIKQEAgLTExNSw2ICsxMTYs
MTkgQEAgYm9vbCBTVkdHRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVy
aW5nQ29udGV4dCYpCiAgICAgcmV0dXJuIHBhcmVudE9ySG9zdEVsZW1lbnQoKSAmJiBwYXJlbnRP
ckhvc3RFbGVtZW50KCktPmlzU1ZHRWxlbWVudCgpOwogfQogCitib29sIFNWR0dFbGVtZW50Ojpj
aGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JiBjaGls
ZENvbnRleHQpIGNvbnN0Cit7CisgICAgaWYgKGNoaWxkQ29udGV4dC5ub2RlKCktPmhhc1RhZ05h
bWUoU1ZHTmFtZXM6OnRleHRQYXRoVGFnKQorI2lmIEVOQUJMRShTVkdfRk9OVFMpCisgICAgICAg
IHx8IGNoaWxkQ29udGV4dC5ub2RlKCktPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmFsdEdseXBoVGFn
KQorI2VuZGlmCisgICAgICAgIHx8IGNoaWxkQ29udGV4dC5ub2RlKCktPmhhc1RhZ05hbWUoU1ZH
TmFtZXM6OnRyZWZUYWcpCisgICAgICAgIHx8IGNoaWxkQ29udGV4dC5ub2RlKCktPmhhc1RhZ05h
bWUoU1ZHTmFtZXM6OnRzcGFuVGFnKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0
dXJuIFNWR0VsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY2hpbGRDb250ZXh0KTsK
K30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWRykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdHRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmgK
aW5kZXggMWY0ZGRkYTU1NmZkNjVmY2Q3YWRhM2MyNjc0NWVlZmMyNTkxODRiZS4uZjNhNGJiNjI1
MTJhYTM1OWQyMWE0OTI4YzFjYmQ4ZDEzNTIyNjg2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0dFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50
LmgKQEAgLTUxLDYgKzUxLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJik7CiAKICAgICB2aXJ0dWFsIGJvb2wgcmVu
ZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpOworICAgIHZpcnR1YWwg
Ym9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0
JikgY29uc3Q7CiAKICAgICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHR0Vs
ZW1lbnQpCiAgICAgICAgIERFQ0xBUkVfQU5JTUFURURfQk9PTEVBTihFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NW
R0VsZW1lbnQuY3BwCmluZGV4IDhlMGYyMTBmZjczMWM5ODg4MmVmMDdjNmFlYjNjYjRiMjBmZGQ4
NGEuLjFiNDkxMmRjYWNmODc1MWI5MWUyMzZkOWUyZDVkYTg3OWY3N2JjYTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJGcmFt
ZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
KyNpbmNsdWRlICJOb2RlUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVj
dC5oIgogI2luY2x1ZGUgIlJlbmRlclBhcnQuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJj
ZS5oIgpAQCAtNDc4LDYgKzQ3OSwxOSBAQCBSZW5kZXJPYmplY3QqIFNWR1NWR0VsZW1lbnQ6OmNy
ZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqKQogICAgIHJldHVy
biBuZXcgKGFyZW5hKSBSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lcih0aGlzKTsKIH0KIAorYm9v
bCBTVkdTVkdFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGVSZW5k
ZXJpbmdDb250ZXh0JiBjaGlsZENvbnRleHQpIGNvbnN0Cit7CisgICAgaWYgKGNoaWxkQ29udGV4
dC5ub2RlKCktPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnRleHRQYXRoVGFnKQorI2lmIEVOQUJMRShT
VkdfRk9OVFMpCisgICAgICAgIHx8IGNoaWxkQ29udGV4dC5ub2RlKCktPmhhc1RhZ05hbWUoU1ZH
TmFtZXM6OmFsdEdseXBoVGFnKQorI2VuZGlmCisgICAgICAgIHx8IGNoaWxkQ29udGV4dC5ub2Rl
KCktPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnRyZWZUYWcpCisgICAgICAgIHx8IGNoaWxkQ29udGV4
dC5ub2RlKCktPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnRzcGFuVGFnKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgcmV0dXJuIFNWR0VsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVy
ZXIoY2hpbGRDb250ZXh0KTsKK30KKwogTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVz
dCBTVkdTVkdFbGVtZW50OjppbnNlcnRlZEludG8oTm9kZSogcm9vdFBhcmVudCkKIHsKICAgICBp
ZiAocm9vdFBhcmVudC0+aW5Eb2N1bWVudCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1NWR0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgK
aW5kZXggNmVhZDc4YmQyODQwZDU4OTg2MTk2NjVmOGQyY2EyMmIxYzhjN2M0My4uYjQwOGJmMmU4
ZDZkNGE5M2FmODEyZDNkNDEzNjAxNTRjNzA5MWUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxl
bWVudC5oCkBAIC0xNDQsNiArMTQ0LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgYm9vbCBy
ZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0KSB7IHJl
dHVybiBTdHlsZWRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnRleHQpOyB9CiAgICAgdmly
dHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5
bGUqKTsKKyAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBO
b2RlUmVuZGVyaW5nQ29udGV4dCYpIGNvbnN0OwogCiAgICAgdmlydHVhbCBJbnNlcnRpb25Ob3Rp
ZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhOb2RlKikgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIHJlbW92ZWRGcm9tKE5vZGUqKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
eW1ib2xFbGVtZW50LmNwcAppbmRleCA5YzJmNjg2MzliN2Y4MGRlMWRiZGM1NDc2OTQwNDJmYTU0
ODFiY2Q5Li4zNTIzZmUyYTI0NTQ3YmUwNTRmZGUxN2FlYTliZThjMzlhZDZmMjhkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuY3BwCkBAIC0yMyw2ICsyMyw3IEBACiAjaWYg
RU5BQkxFKFNWRykKICNpbmNsdWRlICJTVkdTeW1ib2xFbGVtZW50LmgiCiAKKyNpbmNsdWRlICJO
b2RlUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclNWR0hpZGRlbkNvbnRhaW5l
ci5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnRJbnN0YW5jZS5oIgogI2luY2x1ZGUgIlNWR0ZpdFRv
Vmlld0JveC5oIgpAQCAtMTA2LDYgKzEwNywxOSBAQCBSZW5kZXJPYmplY3QqIFNWR1N5bWJvbEVs
ZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqKQog
ICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIodGhpcyk7CiB9
CiAKK2Jvb2wgU1ZHU3ltYm9sRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25z
dCBOb2RlUmVuZGVyaW5nQ29udGV4dCYgY2hpbGRDb250ZXh0KSBjb25zdAoreworICAgIGlmIChj
aGlsZENvbnRleHQubm9kZSgpLT5oYXNUYWdOYW1lKFNWR05hbWVzOjp0ZXh0UGF0aFRhZykKKyNp
ZiBFTkFCTEUoU1ZHX0ZPTlRTKQorICAgICAgICB8fCBjaGlsZENvbnRleHQubm9kZSgpLT5oYXNU
YWdOYW1lKFNWR05hbWVzOjphbHRHbHlwaFRhZykKKyNlbmRpZgorICAgICAgICB8fCBjaGlsZENv
bnRleHQubm9kZSgpLT5oYXNUYWdOYW1lKFNWR05hbWVzOjp0cmVmVGFnKQorICAgICAgICB8fCBj
aGlsZENvbnRleHQubm9kZSgpLT5oYXNUYWdOYW1lKFNWR05hbWVzOjp0c3BhblRhZykpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBTVkdFbGVtZW50OjpjaGlsZFNob3VsZENy
ZWF0ZVJlbmRlcmVyKGNoaWxkQ29udGV4dCk7Cit9CisKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShT
VkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaAppbmRleCAxZWJjZjg2ZmEwZmM5
YjUwMmQwZjVlZjBmZTFkYWNmMzkzY2JhZTBlLi4yN2M0Mzk4ZDZkOWE4YTVkODg1NGQ3YjhmZWE0
Mjk1NDg3OWQ4ZmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgKQEAgLTQ4
LDYgKzQ4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29u
c3QgQXR0cmlidXRlJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNo
YW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBj
cmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7CisgICAgdmlydHVhbCBi
b29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQm
KSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29u
c3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAppbmRleCAyNGYxYjNlZDkyYzI2
MGM5Zjc3MDkwYTY4YmM0ZmY0YzBjYThjMTA3Li4xZDQ5YTVmNTRiMGRiODcwNmUxZDZmMzExN2M2
MDVlYTU0M2ViOWQwIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCkBAIC0zNSw2
ICszNSw3IEBACiAjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIkhUTUxOYW1l
cy5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIk5vZGVSZW5kZXJp
bmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIuaCIKICNpbmNs
dWRlICJSZW5kZXJTVkdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1RyYW5zZm9ybWFi
bGVDb250YWluZXIuaCIKQEAgLTUzNiw2ICs1MzcsMTkgQEAgUmVuZGVyT2JqZWN0KiBTVkdVc2VF
bGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikK
ICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lcih0
aGlzKTsKIH0KIAorYm9vbCBTVkdVc2VFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVy
KGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JiBjaGlsZENvbnRleHQpIGNvbnN0Cit7CisgICAg
aWYgKGNoaWxkQ29udGV4dC5ub2RlKCktPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnRleHRQYXRoVGFn
KQorI2lmIEVOQUJMRShTVkdfRk9OVFMpCisgICAgICAgIHx8IGNoaWxkQ29udGV4dC5ub2RlKCkt
Pmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmFsdEdseXBoVGFnKQorI2VuZGlmCisgICAgICAgIHx8IGNo
aWxkQ29udGV4dC5ub2RlKCktPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnRyZWZUYWcpCisgICAgICAg
IHx8IGNoaWxkQ29udGV4dC5ub2RlKCktPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnRzcGFuVGFnKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIFNWR0VsZW1lbnQ6OmNoaWxkU2hv
dWxkQ3JlYXRlUmVuZGVyZXIoY2hpbGRDb250ZXh0KTsKK30KKwogc3RhdGljIGJvb2wgaXNEaXJl
Y3RSZWZlcmVuY2UoY29uc3QgTm9kZSogbm9kZSkKIHsKICAgICByZXR1cm4gbm9kZS0+aGFzVGFn
TmFtZShTVkdOYW1lczo6cGF0aFRhZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdVc2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCmluZGV4
IGU0MmI2MWRhZTQ0MTBiMjFjYmZjYWNkOTM0MGM4MzA2NWFlMjExZjUuLmQxMDk3M2YzNjk3YjQ0
NmE3YmQwOTI4OGRhYTlmYmNhMzVjNGVmY2IgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdVc2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQu
aApAQCAtNzAsNiArNzAsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVjYWxj
U3R5bGUoU3R5bGVDaGFuZ2UpOwogCiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJl
bmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKKyAgICB2aXJ0dWFsIGJvb2wgY2hp
bGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpIGNvbnN0
OwogICAgIHZpcnR1YWwgdm9pZCB0b0NsaXBQYXRoKFBhdGgmKTsKIAogICAgIHZvaWQgY2xlYXJS
ZXNvdXJjZVJlZmVyZW5jZXMoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzZmExYmIxZjY1ZjcyMGRkMjE2YTUwNWMyNGZj
ZWJlZDdmN2UzZjU3Li5mZTQ4OTVlNmE4YTFlODM2OWExNjkyYzJiN2YxYTkxNjlhMWU2YjQ3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDUtMjEgIFJvYiBCdWlzICA8cmJ1aXNAcmltLmNv
bT4KKworICAgICAgICBBU1NFUlRzIGluIFJlbmRlcklubGluZTo6bGF5b3V0KCkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYzMzY1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCB0ZXh0IGNvbnRlbnQg
ZWxlbWVudCBjaGlsZHJlbiBpbnNpZGUgc3RydWN0dXJhbCBlbGVtZW50cy4KKworICAgICAgICAq
IHN2Zy9jdXN0b20vZGlzYWxsb3dlZC10ZXh0LWNvbnRlbnQtcmVuZGVyaW5nLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9kaXNhbGxvd2VkLXRleHQtY29udGVudC1y
ZW5kZXJpbmcuc3ZnOiBBZGRlZC4KKwogMjAxMi0wNS0yMSAgSWx5YSBUaWtob25vdnNreSAgPGxv
aXNsb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogaW50cm9kdWNlIGEg
aGVscGVyIGZvciBIZWFwU25hcHNob3QgcG9zdC1wcm9jZXNzaW5nIHRlc3RzLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9kaXNhbGxvd2VkLXRleHQtY29udGVudC1yZW5kZXJp
bmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9kaXNhbGxvd2VkLXRleHQt
Y29udGVudC1yZW5kZXJpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlZjIyZTlhNDMxYWQw
MjcyNzEzYjcxZmRjODc5NDAxNmM4ZWYxMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9zdmcvY3VzdG9tL2Rpc2FsbG93ZWQtdGV4dC1jb250ZW50LXJlbmRlcmluZy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSBAQAorUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3Rv
bS9kaXNhbGxvd2VkLXRleHQtY29udGVudC1yZW5kZXJpbmcuc3ZnIGIvTGF5b3V0VGVzdHMvc3Zn
L2N1c3RvbS9kaXNhbGxvd2VkLXRleHQtY29udGVudC1yZW5kZXJpbmcuc3ZnCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljc0ODVhMGI5Mzk3M2UxMmIxNWFkZjkyZWFjNjQwNDNhZmFiOTQ0YjAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2Rpc2FsbG93ZWQtdGV4dC1jb250ZW50LXJlbmRl
cmluZy5zdmcKQEAgLTAsMCArMSw2MyBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KKyAg
PHNjcmlwdD4gPCFbQ0RBVEFbCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgXV0+PC9zY3JpcHQ+
CisKKyAgPGEgeGxpbms6aHJlZj0iaHR0cDovL3d3dy53ZWJraXQub3JnIj4KKyAgICA8dGV4dFBh
dGggeGxpbms6aHJlZj0iI3BhdGgxIj48L3RleHRQYXRoPgorICAgIDx0c3Bhbi8+CisgICAgPHRy
ZWYvPgorICAgIDxhbHRHbHlwaC8+CisgIDwvYT4KKyAgPHN2Zz4KKyAgICA8YSB4bGluazpocmVm
PSJodHRwOi8vd3d3LndlYmtpdC5vcmciPgorICAgICAgPHRleHRQYXRoIHhsaW5rOmhyZWY9IiNw
YXRoMSI+PC90ZXh0UGF0aD4KKyAgICAgIDx0c3Bhbi8+CisgICAgICA8dHJlZi8+CisgICAgICA8
YWx0R2x5cGgvPgorICAgIDwvYT4KKyAgPC9zdmc+CisgIDxnPgorICAgIDxhIHhsaW5rOmhyZWY9
Imh0dHA6Ly93d3cud2Via2l0Lm9yZyI+CisgICAgICA8dGV4dFBhdGggeGxpbms6aHJlZj0iI3Bh
dGgxIj48L3RleHRQYXRoPgorICAgICAgPHRzcGFuLz4KKyAgICAgIDx0cmVmLz4KKyAgICAgIDxh
bHRHbHlwaC8+CisgICAgPC9hPgorICA8L2c+CisgIDxkZWZzPgorICAgIDxhIHhsaW5rOmhyZWY9
Imh0dHA6Ly93d3cud2Via2l0Lm9yZyI+CisgICAgICA8dGV4dFBhdGggeGxpbms6aHJlZj0iI3Bh
dGgxIj48L3RleHRQYXRoPgorICAgICAgPHRzcGFuLz4KKyAgICAgIDx0cmVmLz4KKyAgICAgIDxh
bHRHbHlwaC8+CisgICAgPC9hPgorICA8L2RlZnM+CisgIDxzeW1ib2w+CisgICAgPGEgeGxpbms6
aHJlZj0iaHR0cDovL3d3dy53ZWJraXQub3JnIj4KKyAgICAgIDx0ZXh0UGF0aCB4bGluazpocmVm
PSIjcGF0aDEiPjwvdGV4dFBhdGg+CisgICAgICA8dHNwYW4vPgorICAgICAgPHRyZWYvPgorICAg
ICAgPGFsdEdseXBoLz4KKyAgICA8L2E+CisgIDwvc3ltYm9sPgorICA8dXNlPgorICAgIDxhIHhs
aW5rOmhyZWY9Imh0dHA6Ly93d3cud2Via2l0Lm9yZyI+CisgICAgICA8dGV4dFBhdGggeGxpbms6
aHJlZj0iI3BhdGgxIj48L3RleHRQYXRoPgorICAgICAgPHRzcGFuLz4KKyAgICAgIDx0cmVmLz4K
KyAgICAgIDxhbHRHbHlwaC8+CisgICAgPC9hPgorICA8L3VzZT4KKyAgPHN3aXRjaD4KKyAgICA8
YSB4bGluazpocmVmPSJodHRwOi8vd3d3LndlYmtpdC5vcmciPgorICAgICAgPHRleHRQYXRoIHhs
aW5rOmhyZWY9IiNwYXRoMSI+PC90ZXh0UGF0aD4KKyAgICAgIDx0c3Bhbi8+CisgICAgICA8dHJl
Zi8+CisgICAgICA8YWx0R2x5cGgvPgorICAgIDwvYT4KKyAgPC9zd2l0Y2g+CisKKyAgPHRleHQ+
UEFTUzwvdGV4dD4KKzwvc3ZnPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143064</attachid>
            <date>2012-05-21 11:27:44 -0700</date>
            <delta_ts>2012-05-21 23:38:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63365-20120521142733.patch</filename>
            <type>text/plain</type>
            <size>6358</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3NzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTM3NjliMzYxNGU4ZmIx
ZmI3MzgzMTkyOWY5NjZhZjBjZjliN2E2NC4uMzdlZTMwYzZiY2Y2ZmUxY2E2MGZlZTliOTU0MGU1
NmUyNjg5NGVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA1LTIxICBSb2Ig
QnVpcyAgPHJidWlzQHJpbS5jb20+CisKKyAgICAgICAgQVNTRVJUcyBpbiBSZW5kZXJJbmxpbmU6
OmxheW91dCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02MzM2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IERvIG5vdCBhbGxvdyBjcmVhdGlvbiBvZiByZW5kZXJlcnMgZm9yIHRleHQgY29udGVudCBjaGls
ZHJlbiBpbiBlbGVtZW50cyBieSBkZWZhdWx0LiAKKyAgICAgICAgU3ViY2xhc3NlcyBsaWtlIFNW
R1RleHRFbGVtZW50IG92ZXJyaWRlIHRoaXMgYmVoYXZpb3IuCisgICAgICAgIFRoaXMgYWxzbyBm
aXhlcyB0aGUgPGE+PHRleHRQYXRoPC9hPiBjYXNlIGJlY2F1c2UgdGhlIDxhPiBwYXJlbnQgZGVj
aWRlcyB0byBhbGxvdyA8dGV4dFBhdGg+IG9yIG5vdDoKKyAgICAgICAgaHR0cDovL3d3dy53My5v
cmcvMjAwMy8wMS9SRUMtU1ZHMTEtMjAwMzAxMTQtZXJyYXRhI2xpbmtpbmctdGV4dC1lbnZpcm9u
bWVudAorCisgICAgICAgIFRlc3Q6IHN2Zy9jdXN0b20vZGlzYWxsb3dlZC10ZXh0LWNvbnRlbnQt
cmVuZGVyaW5nLnN2ZworCisgICAgICAgICogc3ZnL1NWR0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcik6CisgICAgICAg
ICogc3ZnL1NWR0VsZW1lbnQuaDoKKyAgICAgICAgKFNWR0VsZW1lbnQpOgorCiAyMDEyLTA1LTIx
ICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIElu
c3BlY3RvcjogW3JlZmFjdG9yaW5nXSBwcm9tb3RlIGZpbGwvYm9yZGVyIGNvbG9ycyB1c2VkIGJ5
IHRpbWVsaW5lJ3MgZnJhbWUgb3ZlcnZpZXcgdG8gVGltZWxpbmVDYXRlZ29yeQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0VsZW1lbnQuY3BwCmluZGV4IDFkMzUxZDlhNTZhOWUyMTJjOGJlM2QwOTZjNjRhMzIxOTI4
NGM5YjYuLmIxY2VmODI3NjM4MDc0MDIxZGJjYjA3YzFkMTQ0M2E2NmViNGI0YjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRWxlbWVudC5jcHAKQEAgLTQ5NSw4ICs0OTUsMTcgQEAgdm9pZCBTVkdFbGVtZW50
OjpmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKQogCiBib29sIFNWR0VsZW1lbnQ6OmNoaWxkU2hvdWxk
Q3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmIGNoaWxkQ29udGV4dCkg
Y29uc3QKIHsKLSAgICBpZiAoY2hpbGRDb250ZXh0Lm5vZGUoKS0+aXNTVkdFbGVtZW50KCkpCisg
ICAgaWYgKGNoaWxkQ29udGV4dC5ub2RlKCktPmlzU1ZHRWxlbWVudCgpKSB7CisgICAgICAgIGlm
IChjaGlsZENvbnRleHQubm9kZSgpLT5oYXNUYWdOYW1lKFNWR05hbWVzOjp0ZXh0UGF0aFRhZykK
KyNpZiBFTkFCTEUoU1ZHX0ZPTlRTKQorICAgICAgICAgICAgfHwgY2hpbGRDb250ZXh0Lm5vZGUo
KS0+aGFzVGFnTmFtZShTVkdOYW1lczo6YWx0R2x5cGhUYWcpCisjZW5kaWYKKyAgICAgICAgICAg
IHx8IGNoaWxkQ29udGV4dC5ub2RlKCktPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnRyZWZUYWcpCisg
ICAgICAgICAgICB8fCBjaGlsZENvbnRleHQubm9kZSgpLT5oYXNUYWdOYW1lKFNWR05hbWVzOjp0
c3BhblRhZykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PFNWR0VsZW1lbnQqPihjaGlsZENvbnRleHQubm9kZSgpKS0+aXNWYWxpZCgpOwor
ICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCmluZGV4
IDA4NWZjMTljMWRkZDU5OTE2YjZlYjFlYjJjZTkwODQ5NjU0NDJhZDcuLmJiNjUwMDQyOWVmYjAw
YjcxYjM3YjFiNjhjMTA0ZTcwNDEzZjNmMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaApAQCAt
MTIzLDcgKzEyMyw3IEBAIHByb3RlY3RlZDoKIAogICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hQYXJz
aW5nQ2hpbGRyZW4oKTsKICAgICB2aXJ0dWFsIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBB
dHRyaWJ1dGUmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVS
ZW5kZXJlcihjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpIGNvbnN0OworICAgIHZpcnR1YWwg
Ym9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0
JikgY29uc3QgT1ZFUlJJREU7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tKE5v
ZGUqKSBPVkVSUklERTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNmYTFiYjFmNjVmNzIwZGQyMTZhNTA1YzI0ZmNlYmVk
N2Y3ZTNmNTcuLmUwODdmNzAwZGEzNzJjYjhkOTA2MzIyYTkxZDdlOGE1ODk1YzZiYWMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNS0yMSAgUm9iIEJ1aXMgIDxyYnVpc0ByaW0uY29tPgor
CisgICAgICAgIEFTU0VSVHMgaW4gUmVuZGVySW5saW5lOjpsYXlvdXQoKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMzNjUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IHRleHQgY29udGVudCBlbGVt
ZW50IGNoaWxkcmVuIGluc2lkZSBlbGVtZW50cy4KKworICAgICAgICAqIHN2Zy9jdXN0b20vZGlz
YWxsb3dlZC10ZXh0LWNvbnRlbnQtcmVuZGVyaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogc3ZnL2N1c3RvbS9kaXNhbGxvd2VkLXRleHQtY29udGVudC1yZW5kZXJpbmcuc3ZnOiBB
ZGRlZC4KKwogMjAxMi0wNS0yMSAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogaW50cm9kdWNlIGEgaGVscGVyIGZvciBIZWFw
U25hcHNob3QgcG9zdC1wcm9jZXNzaW5nIHRlc3RzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3ZnL2N1c3RvbS9kaXNhbGxvd2VkLXRleHQtY29udGVudC1yZW5kZXJpbmctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9kaXNhbGxvd2VkLXRleHQtY29udGVudC1yZW5kZXJp
bmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlZjIyZTlhNDMxYWQwMjcyNzEzYjcxZmRjODc5
NDAxNmM4ZWYxMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2Rp
c2FsbG93ZWQtdGV4dC1jb250ZW50LXJlbmRlcmluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBA
QAorUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9kaXNhbGxvd2VkLXRl
eHQtY29udGVudC1yZW5kZXJpbmcuc3ZnIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9kaXNhbGxv
d2VkLXRleHQtY29udGVudC1yZW5kZXJpbmcuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjMzM2NGU4NDZkODlk
YTA2ODAxMTExNTBhMmQyMDRhNjEyZDJmNjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9zdmcvY3VzdG9tL2Rpc2FsbG93ZWQtdGV4dC1jb250ZW50LXJlbmRlcmluZy5zdmcKQEAgLTAs
MCArMSw5NSBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5z
OnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KKyAgPHNjcmlwdD4gPCFbQ0RB
VEFbCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgXV0+PC9zY3JpcHQ+CisKKyAgPGEgeGxpbms6
aHJlZj0iaHR0cDovL3d3dy53ZWJraXQub3JnIj4KKyAgICA8dGV4dFBhdGggeGxpbms6aHJlZj0i
I3BhdGgxIj48L3RleHRQYXRoPgorICAgIDx0c3Bhbi8+CisgICAgPHRyZWYvPgorICAgIDxhbHRH
bHlwaC8+CisgIDwvYT4KKyAgPHN2Zz4KKyAgICA8YSB4bGluazpocmVmPSJodHRwOi8vd3d3Lndl
YmtpdC5vcmciPgorICAgICAgPHRleHRQYXRoIHhsaW5rOmhyZWY9IiNwYXRoMSI+PC90ZXh0UGF0
aD4KKyAgICAgIDx0c3Bhbi8+CisgICAgICA8dHJlZi8+CisgICAgICA8YWx0R2x5cGgvPgorICAg
IDwvYT4KKyAgPC9zdmc+CisgIDxnPgorICAgIDxhIHhsaW5rOmhyZWY9Imh0dHA6Ly93d3cud2Vi
a2l0Lm9yZyI+CisgICAgICA8dGV4dFBhdGggeGxpbms6aHJlZj0iI3BhdGgxIj48L3RleHRQYXRo
PgorICAgICAgPHRzcGFuLz4KKyAgICAgIDx0cmVmLz4KKyAgICAgIDxhbHRHbHlwaC8+CisgICAg
PC9hPgorICA8L2c+CisgIDxkZWZzPgorICAgIDxhIHhsaW5rOmhyZWY9Imh0dHA6Ly93d3cud2Vi
a2l0Lm9yZyI+CisgICAgICA8dGV4dFBhdGggeGxpbms6aHJlZj0iI3BhdGgxIj48L3RleHRQYXRo
PgorICAgICAgPHRzcGFuLz4KKyAgICAgIDx0cmVmLz4KKyAgICAgIDxhbHRHbHlwaC8+CisgICAg
PC9hPgorICA8L2RlZnM+CisgIDxzeW1ib2w+CisgICAgPGEgeGxpbms6aHJlZj0iaHR0cDovL3d3
dy53ZWJraXQub3JnIj4KKyAgICAgIDx0ZXh0UGF0aCB4bGluazpocmVmPSIjcGF0aDEiPjwvdGV4
dFBhdGg+CisgICAgICA8dHNwYW4vPgorICAgICAgPHRyZWYvPgorICAgICAgPGFsdEdseXBoLz4K
KyAgICA8L2E+CisgIDwvc3ltYm9sPgorICA8dXNlPgorICAgIDxhIHhsaW5rOmhyZWY9Imh0dHA6
Ly93d3cud2Via2l0Lm9yZyI+CisgICAgICA8dGV4dFBhdGggeGxpbms6aHJlZj0iI3BhdGgxIj48
L3RleHRQYXRoPgorICAgICAgPHRzcGFuLz4KKyAgICAgIDx0cmVmLz4KKyAgICAgIDxhbHRHbHlw
aC8+CisgICAgPC9hPgorICA8L3VzZT4KKyAgPHN3aXRjaD4KKyAgICA8YSB4bGluazpocmVmPSJo
dHRwOi8vd3d3LndlYmtpdC5vcmciPgorICAgICAgPHRleHRQYXRoIHhsaW5rOmhyZWY9IiNwYXRo
MSI+PC90ZXh0UGF0aD4KKyAgICAgIDx0c3Bhbi8+CisgICAgICA8dHJlZi8+CisgICAgICA8YWx0
R2x5cGgvPgorICAgIDwvYT4KKyAgPC9zd2l0Y2g+CisgIDxmaWx0ZXI+CisgICAgPGEgeGxpbms6
aHJlZj0iaHR0cDovL3d3dy53ZWJraXQub3JnIj4KKyAgICAgIDx0ZXh0UGF0aCB4bGluazpocmVm
PSIjcGF0aDEiPjwvdGV4dFBhdGg+CisgICAgICA8dHNwYW4vPgorICAgICAgPHRyZWYvPgorICAg
ICAgPGFsdEdseXBoLz4KKyAgICA8L2E+CisgIDwvZmlsdGVyPgorICA8bWFya2VyPgorICAgIDxh
IHhsaW5rOmhyZWY9Imh0dHA6Ly93d3cud2Via2l0Lm9yZyI+CisgICAgICA8dGV4dFBhdGggeGxp
bms6aHJlZj0iI3BhdGgxIj48L3RleHRQYXRoPgorICAgICAgPHRzcGFuLz4KKyAgICAgIDx0cmVm
Lz4KKyAgICAgIDxhbHRHbHlwaC8+CisgICAgPC9hPgorICA8L21hcmtlcj4KKyAgPG1hc2s+Cisg
ICAgPGEgeGxpbms6aHJlZj0iaHR0cDovL3d3dy53ZWJraXQub3JnIj4KKyAgICAgIDx0ZXh0UGF0
aCB4bGluazpocmVmPSIjcGF0aDEiPjwvdGV4dFBhdGg+CisgICAgICA8dHNwYW4vPgorICAgICAg
PHRyZWYvPgorICAgICAgPGFsdEdseXBoLz4KKyAgICA8L2E+CisgIDwvbWFzaz4KKyAgPHBhdHRl
cm4+CisgICAgPGEgeGxpbms6aHJlZj0iaHR0cDovL3d3dy53ZWJraXQub3JnIj4KKyAgICAgIDx0
ZXh0UGF0aCB4bGluazpocmVmPSIjcGF0aDEiPjwvdGV4dFBhdGg+CisgICAgICA8dHNwYW4vPgor
ICAgICAgPHRyZWYvPgorICAgICAgPGFsdEdseXBoLz4KKyAgICA8L2E+CisgIDwvcGF0dGVybj4K
KworICA8dGV4dD5QQVNTPC90ZXh0PgorPC9zdmc+Cg==
</data>
<flag name="review"
          id="149540"
          type_id="1"
          status="+"
          setter="zimmermann"
    />
          </attachment>
      

    </bug>

</bugzilla>