<?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>141776</bug_id>
          
          <creation_ts>2015-02-18 16:04:27 -0800</creation_ts>
          <short_desc>Horizontal and vertical lines are clipped completely if clip-path is included in the tag but the referenced element is defined later</short_desc>
          <delta_ts>2015-02-25 17:46:53 -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>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>jonlee</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>zalan</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1070261</commentid>
    <comment_count>0</comment_count>
      <attachid>246854</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-02-18 16:04:27 -0800</bug_when>
    <thetext>Created attachment 246854
test case

Open the attached test case. It has different lines which are drawn using &lt;line&gt; and &lt;path&gt; elements. All the lines are clipped to a circle &lt;clipPath&gt; which is defined later.

Results: Only the horizontal and vertical lines which are defined before defining the clipPath elements are clipped completely. If the page is repainted (through zooming for example), these missing lines are drawn as expected.

The reason for this bug is the following.

-- RenderSVGResourceClipper::resourceBoundingBox() returns the clipping box of the &lt;clipPath&gt; element for the referencing element. (the &lt;line&gt; or the &lt;path&gt; in the test case)
-- If the &lt;clipPath&gt; is defined after it is referenced, RenderSVGResourceClipper::resourceBoundingBox() will see that selfNeedsLayout() is true so it will return object.objectBoundingBox().
-- For the case of horizontal and vertical line, the object.objectBoundingBox() height and width is zero. This means the clipping rectangle is just empty rectangle in this case.
-- Later when the base class RenderSVGResourceContainer::layout() runs the layout for the &lt;clipPath&gt;, it figures out it might need to notify its clients.
-- But it checks (everHadLayout() &amp;&amp; selfNeedsLayout()) before doing so.
-- Because it is the first time we run the layout for this &lt;clipPath&gt;, everHadLayout() returns false and end up not calling RenderSVGRoot::addResourceForClientInvalidation()
-- Therefore the horizontal and vertical lines are completely clipped since their last clipping boxes were empty rectangles.

One interesting thing to notice is if the line is neither horizontal nor vertical, its bonding box is not an empty rectangle. In this case, no clipping is applied to this line not even the &lt;clipPath&gt;. The same thing can happen if more than a line is put a group such that their bounding box is not empty rectangle.

The fix can be the following:
-- We can keep track of the &lt;clipPath&gt; which is referenced before it is defined by adding the RendererObject to the m_clipper in RenderSVGResourceClipper::resourceBoundingBox().
-- In RenderSVGResourceClipper::applyClippingToContext() we need to ensure the RendererElement is in m_clipper if it does not exist.
-- In RenderSVGResourceContainer::layout() we need to use a new virtual function: selfNeedsClientInvalidation() which controls when we need to add the &lt;clipPath&gt; object for clientInvalidation.
-- In the base class we implement selfNeedsClientInvalidation() as it was before: (everHadLayout() &amp;&amp; selfNeedsLayout())
-- In the derived class we implement selfNeedsClientInvalidation() the same as the base but we add the clause: ((m_clipper.size() &amp;&amp; selfNeedsLayout())</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070262</commentid>
    <comment_count>1</comment_count>
      <attachid>246855</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-02-18 16:05:32 -0800</bug_when>
    <thetext>Created attachment 246855
test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070291</commentid>
    <comment_count>2</comment_count>
      <attachid>246862</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-02-18 17:31:23 -0800</bug_when>
    <thetext>Created attachment 246862
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072152</commentid>
    <comment_count>3</comment_count>
      <attachid>246862</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-02-25 15:05:35 -0800</bug_when>
    <thetext>Comment on attachment 246862
Patch

Clearing flags on attachment: 246862

Committed r180643: &lt;http://trac.webkit.org/changeset/180643&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072153</commentid>
    <comment_count>4</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-02-25 15:05:38 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072159</commentid>
    <comment_count>5</comment_count>
      <attachid>246862</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-02-25 15:22:57 -0800</bug_when>
    <thetext>Comment on attachment 246862
Patch

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

&gt; Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp:260
&gt; +ClipperData* RenderSVGResourceClipper::addRendererToClipper(const RenderObject&amp; object)

The pointer this returns is always non-null. This function should return a reference instead of a pointer.

&gt; Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp:264
&gt; +    if (!m_clipper.contains(&amp;object))
&gt; +        m_clipper.set(&amp;object, std::make_unique&lt;ClipperData&gt;());
&gt; +    return m_clipper.get(&amp;object);

This code does double hash table lookups. You just moved it, but the performance problem can be fixed, like this:

    auto&amp; slot = m_clipper.add(&amp;object, nullptr).iterator-&gt;value;
    if (!slot)
        slot = std::make_unique&lt;ClipperData&gt;();
    return slot.get();

That will only do a single hash table lookup. In the future we might invent even cleaner ways to write this.

We could also consider making this a HashMap&lt;const RenderObject*, ClipperData&gt; instead. If we did that, then the code would be even simpler:

    return m_clipper.add(&amp;object, ClipperData()).iterator-&gt;value;

The map would be larger, because each slot would have an entire ClipperData object. And rehashing would be slower, but we would avoid the overhead of an additional memory block for every slot that is in use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072224</commentid>
    <comment_count>6</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-02-25 17:46:53 -0800</bug_when>
    <thetext>I logged https://bugs.webkit.org/show_bug.cgi?id=142032 to track Darin&apos;s comments.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>246854</attachid>
            <date>2015-02-18 16:04:27 -0800</date>
            <delta_ts>2015-02-18 16:05:06 -0800</delta_ts>
            <desc>test case</desc>
            <filename>clip-path-line-use-before-defined.svg</filename>
            <type>image/svg+xml</type>
            <size>846</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+CiAgPGRl
ZnM+CiAgICA8c3R5bGU+CiAgICAgIGxpbmUsIHBhdGggewogICAgICAgIGZpbGw6IG5vbmU7CiAg
ICAgICAgc3Ryb2tlOiBibHVlOwogICAgICAgIHN0cm9rZS13aWR0aDogMzsKICAgICAgICBzdHJv
a2UtbGluZWNhcDogc3F1YXJlOwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvZGVmcz4KICAKICA8
cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJsaW1lIi8+
CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0ieWVs
bG93IiBjbGlwLXBhdGg9InVybCgjY2xpcC1jaXJjbGUpIi8+CgogIDwhLS0gcmlnaHQgYW5kIGJv
dHRvbSBsaW5lcyAtLT4KICA8ZyBjbGlwLXBhdGg9InVybCgjY2xpcC1jaXJjbGUpIj4KICAgIDxw
YXRoIGQ9Ik0zMCAxMjUgTDE3MCAxMjUiLz4KICAgIDxsaW5lIHgxPSIxMjUiIHkxPSIzMCIgeDI9
IjEyNSIgeTI9IjE3MCIvPgogIDwvZz4KICAKICA8ZGVmcz4KICAgIDxjbGlwUGF0aCBpZD0iY2xp
cC1jaXJjbGUiPgogICAgICA8Y2lyY2xlIGN4PSI1MCUiIGN5PSI1MCUiIHI9IjUwJSIgY2xpcC1w
YXRoPSJ1cmwoI2NsaXAtc21hbGwtY2lyY2xlKSIvPgogICAgPC9jbGlwUGF0aD4KICAgIDxjbGlw
UGF0aCBpZD0iY2xpcC1zbWFsbC1jaXJjbGUiPgogICAgICA8Y2lyY2xlIGN4PSI1MCUiIGN5PSI1
MCUiIHI9IjI1JSIvPgogICAgPC9jbGlwUGF0aD4KICA8L2RlZnM+Cgo8L3N2Zz4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>246855</attachid>
            <date>2015-02-18 16:05:32 -0800</date>
            <delta_ts>2015-02-18 16:05:32 -0800</delta_ts>
            <desc>test case</desc>
            <filename>clip-path-line-use-before-defined.svg</filename>
            <type>image/svg+xml</type>
            <size>1332</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+CiAgPGRl
ZnM+CiAgICA8c3R5bGU+CiAgICAgIGxpbmUsIHBhdGggewogICAgICAgIGZpbGw6IG5vbmU7CiAg
ICAgICAgc3Ryb2tlOiBibHVlOwogICAgICAgIHN0cm9rZS13aWR0aDogMzsKICAgICAgICBzdHJv
a2UtbGluZWNhcDogc3F1YXJlOwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvZGVmcz4KICAKICA8
cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJsaW1lIi8+
CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0ieWVs
bG93IiBjbGlwLXBhdGg9InVybCgjY2xpcC1jaXJjbGUpIi8+CgogIDwhLS0gZGlhZ29uYWwgbGlu
ZXMgLS0+CiAgPHBhdGggZD0iTTMwIDMwIEwxNzAgMTcwIiBjbGlwLXBhdGg9InVybCgjY2xpcC1j
aXJjbGUpIi8+CiAgPGxpbmUgeDE9IjE3MCIgeTE9IjMwIiB4Mj0iMzAiIHkyPSIxNzAiIGNsaXAt
cGF0aD0idXJsKCNjbGlwLWNpcmNsZSkiLz4KICAKICA8IS0tIHRvcCBhbmQgbGVmdCBsaW5lcyAt
LT4KICA8cGF0aCBkPSJNMzAgNzUgTDE3MCA3NSIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xl
KSIvPgogIDxsaW5lIHgxPSI3NSIgeTE9IjMwIiB4Mj0iNzUiIHkyPSIxNzAiIGNsaXAtcGF0aD0i
dXJsKCNjbGlwLWNpcmNsZSkiLz4KCiAgPCEtLSByaWdodCBhbmQgYm90dG9tIGxpbmVzIC0tPgog
IDxnIGNsaXAtcGF0aD0idXJsKCNjbGlwLWNpcmNsZSkiPgogICAgPHBhdGggZD0iTTMwIDEyNSBM
MTcwIDEyNSIvPgogICAgPGxpbmUgeDE9IjEyNSIgeTE9IjMwIiB4Mj0iMTI1IiB5Mj0iMTcwIi8+
CiAgPC9nPgogIAogIDxkZWZzPgogICAgPGNsaXBQYXRoIGlkPSJjbGlwLWNpcmNsZSI+CiAgICAg
IDxjaXJjbGUgY3g9IjUwJSIgY3k9IjUwJSIgcj0iNTAlIiBjbGlwLXBhdGg9InVybCgjY2xpcC1z
bWFsbC1jaXJjbGUpIi8+CiAgICA8L2NsaXBQYXRoPgogICAgPGNsaXBQYXRoIGlkPSJjbGlwLXNt
YWxsLWNpcmNsZSI+CiAgICAgIDxjaXJjbGUgY3g9IjUwJSIgY3k9IjUwJSIgcj0iMjUlIi8+CiAg
ICA8L2NsaXBQYXRoPgogIDwvZGVmcz4KCiAgPCEtLSBjZW50ZXIgbGluZXMgLS0+CiAgPHBhdGgg
ZD0iTTMwIDEwMCBMMTcwIDEwMCIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xlKSIvPgogIDxs
aW5lIHgxPSIxMDAiIHkxPSIzMCIgeDI9IjEwMCIgeTI9IjE3MCIgY2xpcC1wYXRoPSJ1cmwoI2Ns
aXAtY2lyY2xlKSIvPgo8L3N2Zz4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246862</attachid>
            <date>2015-02-18 17:31:23 -0800</date>
            <delta_ts>2015-02-25 15:05:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141776-20150218173115.patch</filename>
            <type>text/plain</type>
            <size>12325</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MDMyOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDE1LTAyLTE4ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgSG9yaXpvbnRh
bCBhbmQgdmVydGljYWwgbGluZXMgYXJlIGNsaXBwZWQgY29tcGxldGVseSBpZiBjbGlwLXBhdGgg
aXMgaW5jbHVkZWQgaW4gdGhlIHRhZyBidXQgdGhlIHJlZmVyZW5jZWQgZWxlbWVudCBpcyBkZWZp
bmVkIGxhdGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQxNzc2LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3RzOiBzdmcvY2xpcC1wYXRoL2NsaXAtcGF0aC1saW5lLXVzZS1iZWZvcmUtZGVmaW5l
ZC1leHBlY3RlZC5zdmcKKyAgICAgICAgICAgICAgIHN2Zy9jbGlwLXBhdGgvY2xpcC1wYXRoLWxp
bmUtdXNlLWJlZm9yZS1kZWZpbmVkLnN2ZworCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSZXNvdXJjZUNsaXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVz
b3VyY2VDbGlwcGVyOjphcHBseUNsaXBwaW5nVG9Db250ZXh0KTogRW5zdXJlIHRoZSByZW5kZXJl
cgorICAgICAgICBpcyBhZGRlZCB0byBtX2NsaXBwZXIgaWYgaXQgZG9lcyBub3QgZXhpc3QuIFRo
ZSBzYW1lIHJlbmRlcmVyIG1pZ2h0IGhhdmUgYmVlbiAKKyAgICAgICAgYWRkZWQgdG8gbV9jbGlw
cGVyIGluIHJlc291cmNlQm91bmRpbmdCb3goKS4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXI6OmFkZFJlbmRlcmVyVG9DbGlwcGVyKTogQWRkIHRo
ZSByZW5kZXJlciB0bworICAgICAgICBtX2NsaXBwZXIgaWYgaXQgZG9lcyBub3QgZXhpc3QuIFJl
dHVybiB0aGUgYXNzb2NpYXRlZCBDbGlwcGVyRGF0YS4KKyAgICAgICAgCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXI6OnJlc291cmNlQm91bmRpbmdCb3gpOiBJZiB0
aGUgY2xpcHBlciBpcworICAgICAgICByZWZlcmVuY2VkIGJlZm9yZSBpdCBpcyBkZWZpbmVkLCBh
ZGQgdGhlIHJlbmRlcmVyIHRvIG1fY2xpcHBlci4gV2hpbGUgZG9pbmcgdGhlCisgICAgICAgIGxh
eW91dCgpIGZvciB0aGUgY2xpcHBlciwgd2UgY2FuIGNoZWNrIGlmIG1fY2xpcHBlciBoYXMgdmFs
dWVzIG9yIG5vdC4gSWYgaXQgZG9lcworICAgICAgICBoYXZlLCB3ZSBhcmUgZ29pbmcgdG8gbWFy
ayB0aGUgY2xpcHBlciBmb3IgY2xpZW50IGludmFsaWRhdGlvbiB3aGljaCBpcyBkb25lIGJ5Cisg
ICAgICAgIHRoZSBTVkcgcm9vdC4KKyAgICAgICAgCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlQ29udGFpbmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNv
dXJjZUNvbnRhaW5lcjo6c2VsZk5lZWRzQ2xpZW50SW52YWxpZGF0aW9uKTogRGVmaW5lIGEgCisg
ICAgICAgIG5ldyBmdW5jdGlvbiBzZWxmTmVlZHNDbGllbnRJbnZhbGlkYXRpb24oKSB3aGljaCBj
b250cm9scyBtYXJraW5nIHRoZSBjbGlwcGVyIAorICAgICAgICBmb3IgY2xpZW50IGludmFsaWRh
dGlvbi4gSW4gUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLCBvdmVycmlkZSBpdCBzbyBpdCBjaGVj
a3MKKyAgICAgICAgbV9jbGlwcGVyIHRvIGZvcmNlIGNsaWVudHMgdmFsaWRhdGlvbiBldmVuIGlm
IGl0IHRoZSBmaXJzdCB0aW1lIHdlIGRvIGxheW91dAorICAgICAgICBmb3IgdGhpcyBjbGlwcGVy
LgorCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lcjo6bGF5b3V0
KTogQ2FsbCB0aGUgdmlydHVhbCBmdW5jdGlvbgorICAgICAgICBzZWxmTmVlZHNDbGllbnRJbnZh
bGlkYXRpb24oKSB0byBjaGVjayB3aGV0aGVyIHdlIG5lZWQgdG8gbWFyayB0aGUgY2xpcHBlciBm
b3IKKyAgICAgICAgY2xpZW50IGludmFsaWRhdGlvbi4KKyAgICAgICAgCisgICAgICAgICogc3Zn
L1NWR0VsZW1lbnQuY3BwOiBEZWxldGUgdW5uZWVkZWQgaGVhZGVyIGZpbGUuCisKIDIwMTUtMDIt
MTggIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9O
KHIxNzQ3NjEpIERhbmdsaW5nIHNwYW5uZXIgcG9pbnRlciBpbiBSZW5kZXJNdWx0aUNvbHVtblNw
YW5uZXJQbGFjZWhvbGRlci4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5jcHAJKHJldmlzaW9uIDE4MDI3
MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlw
cGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMwLDE4ICsxMzAsMTQgQEAgYm9vbCBSZW5kZXJT
VkdSZXNvdXJjZUNsaXBwZXI6OnBhdGhPbmx5QwogYm9vbCBSZW5kZXJTVkdSZXNvdXJjZUNsaXBw
ZXI6OmFwcGx5Q2xpcHBpbmdUb0NvbnRleHQoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIsIGNvbnN0
IEZsb2F0UmVjdCYgb2JqZWN0Qm91bmRpbmdCb3gsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBGbG9hdFJlY3QmIHJlcGFpbnRSZWN0
LCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQpCiB7Ci0gICAgYm9vbCBtaXNzaW5nQ2xpcHBlckRh
dGEgPSAhbV9jbGlwcGVyLmNvbnRhaW5zKCZyZW5kZXJlcik7Ci0gICAgaWYgKG1pc3NpbmdDbGlw
cGVyRGF0YSkKLSAgICAgICAgbV9jbGlwcGVyLnNldCgmcmVuZGVyZXIsIHN0ZDo6bWFrZV91bmlx
dWU8Q2xpcHBlckRhdGE+KCkpOworICAgIENsaXBwZXJEYXRhKiBjbGlwcGVyRGF0YSA9IGFkZFJl
bmRlcmVyVG9DbGlwcGVyKHJlbmRlcmVyKTsKKyAgICBBU1NFUlQoY2xpcHBlckRhdGEpOworICAg
IGJvb2wgc2hvdWxkQ3JlYXRlQ2xpcERhdGEgPSAhY2xpcHBlckRhdGEtPmNsaXBNYXNrSW1hZ2U7
CiAKLSAgICBib29sIHNob3VsZENyZWF0ZUNsaXBEYXRhID0gZmFsc2U7CiAgICAgQWZmaW5lVHJh
bnNmb3JtIGFuaW1hdGVkTG9jYWxUcmFuc2Zvcm0gPSBjbGlwUGF0aEVsZW1lbnQoKS5hbmltYXRl
ZExvY2FsVHJhbnNmb3JtKCk7Ci0gICAgQ2xpcHBlckRhdGEqIGNsaXBwZXJEYXRhID0gbV9jbGlw
cGVyLmdldCgmcmVuZGVyZXIpOwotICAgIGlmICghY2xpcHBlckRhdGEtPmNsaXBNYXNrSW1hZ2Up
IHsKLSAgICAgICAgaWYgKHBhdGhPbmx5Q2xpcHBpbmcoY29udGV4dCwgYW5pbWF0ZWRMb2NhbFRy
YW5zZm9ybSwgb2JqZWN0Qm91bmRpbmdCb3gpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgICAgIHNob3VsZENyZWF0ZUNsaXBEYXRhID0gdHJ1ZTsKLSAgICB9CisKKyAgICBpZiAoc2hv
dWxkQ3JlYXRlQ2xpcERhdGEgJiYgcGF0aE9ubHlDbGlwcGluZyhjb250ZXh0LCBhbmltYXRlZExv
Y2FsVHJhbnNmb3JtLCBvYmplY3RCb3VuZGluZ0JveCkpCisgICAgICAgIHJldHVybiB0cnVlOwog
CiAgICAgQWZmaW5lVHJhbnNmb3JtIGFic29sdXRlVHJhbnNmb3JtOwogICAgIFNWR1JlbmRlcmlu
Z0NvbnRleHQ6OmNhbGN1bGF0ZVRyYW5zZm9ybWF0aW9uVG9PdXRlcm1vc3RDb29yZGluYXRlU3lz
dGVtKHJlbmRlcmVyLCBhYnNvbHV0ZVRyYW5zZm9ybSk7CkBAIC0xNzcsNyArMTczLDcgQEAgYm9v
bCBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXI6OmFwcGx5Q2xpcAogICAgIGlmICghY2xpcHBlckRh
dGEtPmNsaXBNYXNrSW1hZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFNWR1JlbmRl
cmluZ0NvbnRleHQ6OmNsaXBUb0ltYWdlQnVmZmVyKGNvbnRleHQsIGFic29sdXRlVHJhbnNmb3Jt
LCByZXBhaW50UmVjdCwgY2xpcHBlckRhdGEtPmNsaXBNYXNrSW1hZ2UsIG1pc3NpbmdDbGlwcGVy
RGF0YSk7CisgICAgU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y2xpcFRvSW1hZ2VCdWZmZXIoY29udGV4
dCwgYWJzb2x1dGVUcmFuc2Zvcm0sIHJlcGFpbnRSZWN0LCBjbGlwcGVyRGF0YS0+Y2xpcE1hc2tJ
bWFnZSwgc2hvdWxkQ3JlYXRlQ2xpcERhdGEpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0y
NjEsNiArMjU3LDEzIEBAIHZvaWQgUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyOjpjYWxjdWxhdGUK
ICAgICBtX2NsaXBCb3VuZGFyaWVzID0gY2xpcFBhdGhFbGVtZW50KCkuYW5pbWF0ZWRMb2NhbFRy
YW5zZm9ybSgpLm1hcFJlY3QobV9jbGlwQm91bmRhcmllcyk7CiB9CiAKK0NsaXBwZXJEYXRhKiBS
ZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXI6OmFkZFJlbmRlcmVyVG9DbGlwcGVyKGNvbnN0IFJlbmRl
ck9iamVjdCYgb2JqZWN0KQoreworICAgIGlmICghbV9jbGlwcGVyLmNvbnRhaW5zKCZvYmplY3Qp
KQorICAgICAgICBtX2NsaXBwZXIuc2V0KCZvYmplY3QsIHN0ZDo6bWFrZV91bmlxdWU8Q2xpcHBl
ckRhdGE+KCkpOworICAgIHJldHVybiBtX2NsaXBwZXIuZ2V0KCZvYmplY3QpOworfQorCiBib29s
IFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcjo6aGl0VGVzdENsaXBDb250ZW50KGNvbnN0IEZsb2F0
UmVjdCYgb2JqZWN0Qm91bmRpbmdCb3gsIGNvbnN0IEZsb2F0UG9pbnQmIG5vZGVBdFBvaW50KQog
ewogICAgIEZsb2F0UG9pbnQgcG9pbnQgPSBub2RlQXRQb2ludDsKQEAgLTI5NCw4ICsyOTcsMTAg
QEAgYm9vbCBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXI6OmhpdFRlc3RDbAogRmxvYXRSZWN0IFJl
bmRlclNWR1Jlc291cmNlQ2xpcHBlcjo6cmVzb3VyY2VCb3VuZGluZ0JveChjb25zdCBSZW5kZXJP
YmplY3QmIG9iamVjdCkKIHsKICAgICAvLyBSZXNvdXJjZSB3YXMgbm90IGxheW91dGVkIHlldC4g
R2l2ZSBiYWNrIHRoZSBib3VuZGluZ0JveCBvZiB0aGUgb2JqZWN0LgotICAgIGlmIChzZWxmTmVl
ZHNMYXlvdXQoKSkKKyAgICBpZiAoc2VsZk5lZWRzTGF5b3V0KCkpIHsKKyAgICAgICAgYWRkUmVu
ZGVyZXJUb0NsaXBwZXIob2JqZWN0KTsKICAgICAgICAgcmV0dXJuIG9iamVjdC5vYmplY3RCb3Vu
ZGluZ0JveCgpOworICAgIH0KICAgICAKICAgICBpZiAobV9jbGlwQm91bmRhcmllcy5pc0VtcHR5
KCkpCiAgICAgICAgIGNhbGN1bGF0ZUNsaXBDb250ZW50UmVwYWludFJlY3QoKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJj
ZUNsaXBwZXIuaAkocmV2aXNpb24gMTgwMjczKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjAsNiAr
NjAsOSBAQCBwdWJsaWM6CiAKICAgICBTVkdVbml0VHlwZXM6OlNWR1VuaXRUeXBlIGNsaXBQYXRo
VW5pdHMoKSBjb25zdCB7IHJldHVybiBjbGlwUGF0aEVsZW1lbnQoKS5jbGlwUGF0aFVuaXRzKCk7
IH0KIAorcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgYm9vbCBzZWxmTmVlZHNDbGllbnRJbnZhbGlk
YXRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAoZXZlckhhZExheW91dCgpIHx8IG1fY2xp
cHBlci5zaXplKCkpICYmIHNlbGZOZWVkc0xheW91dCgpOyB9CisKIHByaXZhdGU6CiAgICAgdm9p
ZCBlbGVtZW50KCkgY29uc3QgPSBkZWxldGU7CiAKQEAgLTY4LDkgKzcxLDEwIEBAIHByaXZhdGU6
CiAgICAgYm9vbCBwYXRoT25seUNsaXBwaW5nKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UmVjdCYpOwogICAgIGJvb2wgZHJhd0NvbnRlbnRJbnRv
TWFza0ltYWdlKENsaXBwZXJEYXRhKiwgY29uc3QgRmxvYXRSZWN0JiBvYmplY3RCb3VuZGluZ0Jv
eCk7CiAgICAgdm9pZCBjYWxjdWxhdGVDbGlwQ29udGVudFJlcGFpbnRSZWN0KCk7CisgICAgQ2xp
cHBlckRhdGEqIGFkZFJlbmRlcmVyVG9DbGlwcGVyKGNvbnN0IFJlbmRlck9iamVjdCYpOwogCiAg
ICAgRmxvYXRSZWN0IG1fY2xpcEJvdW5kYXJpZXM7Ci0gICAgSGFzaE1hcDxSZW5kZXJPYmplY3Qq
LCBzdGQ6OnVuaXF1ZV9wdHI8Q2xpcHBlckRhdGE+PiBtX2NsaXBwZXI7CisgICAgSGFzaE1hcDxj
b25zdCBSZW5kZXJPYmplY3QqLCBzdGQ6OnVuaXF1ZV9wdHI8Q2xpcHBlckRhdGE+PiBtX2NsaXBw
ZXI7CiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jlc291cmNlQ29udGFpbmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyLmNwcAkocmV2aXNpb24gMTgwMjcz
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRh
aW5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyLDcgKzUyLDcgQEAgdm9pZCBSZW5kZXJTVkdS
ZXNvdXJjZUNvbnRhaW5lcjo6bGF5b3V0KAogewogICAgIFN0YWNrU3RhdHM6OkxheW91dENoZWNr
UG9pbnQgbGF5b3V0Q2hlY2tQb2ludDsKICAgICAvLyBJbnZhbGlkYXRlIGFsbCByZXNvdXJjZXMg
aWYgb3VyIGxheW91dCBjaGFuZ2VkLgotICAgIGlmIChldmVySGFkTGF5b3V0KCkgJiYgc2VsZk5l
ZWRzTGF5b3V0KCkpCisgICAgaWYgKHNlbGZOZWVkc0NsaWVudEludmFsaWRhdGlvbigpKQogICAg
ICAgICBSZW5kZXJTVkdSb290OjphZGRSZXNvdXJjZUZvckNsaWVudEludmFsaWRhdGlvbih0aGlz
KTsKIAogICAgIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lcjo6bGF5b3V0KCk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJj
ZUNvbnRhaW5lci5oCShyZXZpc2lvbiAxODAyNzMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1
LDYgKzU1LDggQEAgcHJvdGVjdGVkOgogICAgIH07CiAKICAgICAvLyBVc2VkIGZyb20gdGhlIGlu
dmFsaWRhdGVDbGllbnQvaW52YWxpZGF0ZUNsaWVudHMgbWV0aG9kcyBmcm9tIGNsYXNzZXMsIGlu
aGVyaXRpbmcgZnJvbSB1cy4KKyAgICB2aXJ0dWFsIGJvb2wgc2VsZk5lZWRzQ2xpZW50SW52YWxp
ZGF0aW9uKCkgY29uc3QgeyByZXR1cm4gZXZlckhhZExheW91dCgpICYmIHNlbGZOZWVkc0xheW91
dCgpOyB9CisKICAgICB2b2lkIG1hcmtBbGxDbGllbnRzRm9ySW52YWxpZGF0aW9uKEludmFsaWRh
dGlvbk1vZGUpOwogICAgIHZvaWQgbWFya0FsbENsaWVudExheWVyc0ZvckludmFsaWRhdGlvbigp
OwogICAgIHZvaWQgbWFya0NsaWVudEZvckludmFsaWRhdGlvbihSZW5kZXJPYmplY3QmLCBJbnZh
bGlkYXRpb25Nb2RlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAJKHJldmlzaW9u
IDE4MDI3MykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzksNyArMzksNiBAQAogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNp
bmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZS5oIgot
I2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5oIgogI2luY2x1ZGUgIlJlbmRlclNW
R1Jlc291cmNlRmlsdGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIuaCIK
ICNpbmNsdWRlICJTVkdDdXJzb3JFbGVtZW50LmgiCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODAzMjMp
CisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBA
QAorMjAxNS0wMi0xOCAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29t
PgorCisgICAgICAgIEhvcml6b250YWwgYW5kIHZlcnRpY2FsIGxpbmVzIGFyZSBjbGlwcGVkIGNv
bXBsZXRlbHkgaWYgY2xpcC1wYXRoIGlzIGluY2x1ZGVkIGluIHRoZSB0YWcgYnV0IHRoZSByZWZl
cmVuY2VkIGVsZW1lbnQgaXMgZGVmaW5lZCBsYXRlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTc3Ni4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIE5ldyB0ZXN0IGNhc2VzIGZvciBTVkcg
bGluZXMgd2hpY2ggYXJlIGNsaXBwZWQgdG8gYSA8Y2xpcFBhdGg+LiBUaGUgPGNsaXBQYXRoPgor
ICAgICAgICBpcyByZWZlcmVuY2VkIGJlZm9yZSBpdCBpcyBkZWZpbmVkLgorCisgICAgICAgICog
c3ZnL2NsaXAtcGF0aC9jbGlwLXBhdGgtbGluZS11c2UtYmVmb3JlLWRlZmluZWQtZXhwZWN0ZWQu
c3ZnOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY2xpcC1wYXRoL2NsaXAtcGF0aC1saW5lLXVzZS1i
ZWZvcmUtZGVmaW5lZC5zdmc6IEFkZGVkLgorCiAyMDE1LTAyLTE4ICBNeWxlcyBDLiBNYXhmaWVs
ZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGV4cGVjdGVkIHJlc3Vs
dCBvZiBmYXN0L2Zvcm1zL3RleHQtY29udHJvbC1pbnRyaW5zaWMtd2lkdGhzLmh0bWwgYWZ0ZXIg
cjE3Nzc3NApJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2NsaXAtcGF0aC9jbGlwLXBhdGgtbGluZS11
c2UtYmVmb3JlLWRlZmluZWQtZXhwZWN0ZWQuc3ZnCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3N2Zy9jbGlwLXBhdGgvY2xpcC1wYXRoLWxpbmUtdXNlLWJlZm9yZS1kZWZpbmVkLWV4cGVjdGVk
LnN2ZwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9jbGlwLXBhdGgvY2xpcC1wYXRo
LWxpbmUtdXNlLWJlZm9yZS1kZWZpbmVkLWV4cGVjdGVkLnN2Zwkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDMzIEBACis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1s
bnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSIyMDAiIGhlaWdo
dD0iMjAwIj4KKyAgPGRlZnM+CisgICAgPHN0eWxlPgorICAgICAgbGluZSwgcGF0aCB7CisgICAg
ICAgIHN0cm9rZTogYmxhY2s7CisgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8Y2xpcFBhdGgg
aWQ9ImNsaXAtY2lyY2xlIj4KKyAgICAgICAgPGNpcmNsZSBjeD0iNTAlIiBjeT0iNTAlIiByPSIy
NSUiLz4KKyAgICA8L2NsaXBQYXRoPgorICA8L2RlZnM+CisgIAorICA8cmVjdCB4PSIwIiB5PSIw
IiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJsaW1lIi8+CisgIDxyZWN0IHg9IjAi
IHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9IndoaXRlIiBjbGlwLXBhdGg9
InVybCgjY2xpcC1jaXJjbGUpIi8+CisKKyAgPCEtLSBkaWFnb25hbCAtLT4KKyAgPGxpbmUgeDE9
IjE3MCIgeTE9IjMwIiB4Mj0iMzAiIHkyPSIxNzAiIGNsaXAtcGF0aD0idXJsKCNjbGlwLWNpcmNs
ZSkiLz4KKyAgCisgIDwhLS0gdG9wIGFuZCBsZWZ0IGxpbmVzIC0tPgorICA8cGF0aCBkPSJNMzAg
NzUgTDE3MCA3NSIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xlKSIvPgorICA8bGluZSB4MT0i
NzUiIHkxPSIzMCIgeDI9Ijc1IiB5Mj0iMTcwIiBjbGlwLXBhdGg9InVybCgjY2xpcC1jaXJjbGUp
Ii8+CisKKyAgPCEtLSByaWdodCBhbmQgYm90dG9tIGxpbmVzIC0tPgorICA8ZyBjbGlwLXBhdGg9
InVybCgjY2xpcC1jaXJjbGUpIj4KKyAgICA8cGF0aCBkPSJNMzAgMTI1IEwxNzAgMTI1Ii8+Cisg
ICAgPGxpbmUgeDE9IjEyNSIgeTE9IjMwIiB4Mj0iMTI1IiB5Mj0iMTcwIi8+CisgIDwvZz4KKyAg
CisgIDwhLS0gY2VudGVyIGxpbmVzIC0tPgorICA8cGF0aCBkPSJNMzAgMTAwIEwxNzAgMTAwIiBj
bGlwLXBhdGg9InVybCgjY2xpcC1jaXJjbGUpIi8+CisgIDxsaW5lIHgxPSIxMDAiIHkxPSIzMCIg
eDI9IjEwMCIgeTI9IjE3MCIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xlKSIvPgorICAKKzwv
c3ZnPgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2NsaXAtcGF0aC9jbGlwLXBhdGgtbGluZS11c2Ut
YmVmb3JlLWRlZmluZWQuc3ZnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jbGlwLXBh
dGgvY2xpcC1wYXRoLWxpbmUtdXNlLWJlZm9yZS1kZWZpbmVkLnN2ZwkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL3N2Zy9jbGlwLXBhdGgvY2xpcC1wYXRoLWxpbmUtdXNlLWJlZm9yZS1kZWZp
bmVkLnN2Zwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM4IEBACis8c3ZnIHhtbG5zPSJodHRw
Oi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5
OTkveGxpbmsiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIj4KKyAgPGRlZnM+CisgICAgPHN0eWxl
PgorICAgICAgbGluZSwgcGF0aCB7CisgICAgICAgIHN0cm9rZTogYmxhY2s7CisgICAgICB9Cisg
ICAgPC9zdHlsZT4KKyAgPC9kZWZzPgorICAKKyAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEw
MCUiIGhlaWdodD0iMTAwJSIgZmlsbD0ibGltZSIvPgorICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJ3aGl0ZSIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAt
Y2lyY2xlKSIvPgorCisgIDwhLS0gZGlhZ29uYWwgLS0+CisgIDxsaW5lIHgxPSIxNzAiIHkxPSIz
MCIgeDI9IjMwIiB5Mj0iMTcwIiBjbGlwLXBhdGg9InVybCgjY2xpcC1jaXJjbGUpIi8+CisgIAor
ICA8IS0tIHRvcCBhbmQgbGVmdCBsaW5lcyAtLT4KKyAgPHBhdGggZD0iTTMwIDc1IEwxNzAgNzUi
IGNsaXAtcGF0aD0idXJsKCNjbGlwLWNpcmNsZSkiLz4KKyAgPGxpbmUgeDE9Ijc1IiB5MT0iMzAi
IHgyPSI3NSIgeTI9IjE3MCIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xlKSIvPgorCisgIDwh
LS0gYm90dG9tIGFuZCByaWdodCBsaW5lcyAtLT4KKyAgPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAt
Y2lyY2xlKSI+CisgICAgPHBhdGggZD0iTTMwIDEyNSBMMTcwIDEyNSIvPgorICAgIDxsaW5lIHgx
PSIxMjUiIHkxPSIzMCIgeDI9IjEyNSIgeTI9IjE3MCIvPgorICA8L2c+CisgIAorICA8ZGVmcz4K
KyAgICA8Y2xpcFBhdGggaWQ9ImNsaXAtY2lyY2xlIj4KKyAgICAgIDxjaXJjbGUgY3g9IjUwJSIg
Y3k9IjUwJSIgcj0iNTAlIiBjbGlwLXBhdGg9InVybCgjY2xpcC1zbWFsbC1jaXJjbGUpIi8+Cisg
ICAgPC9jbGlwUGF0aD4KKyAgICA8Y2xpcFBhdGggaWQ9ImNsaXAtc21hbGwtY2lyY2xlIj4KKyAg
ICAgIDxjaXJjbGUgY3g9IjUwJSIgY3k9IjUwJSIgcj0iMjUlIi8+CisgICAgPC9jbGlwUGF0aD4K
KyAgPC9kZWZzPgorCisgIDwhLS0gY2VudGVyIGxpbmVzIC0tPgorICA8cGF0aCBkPSJNMzAgMTAw
IEwxNzAgMTAwIiBjbGlwLXBhdGg9InVybCgjY2xpcC1jaXJjbGUpIi8+CisgIDxsaW5lIHgxPSIx
MDAiIHkxPSIzMCIgeDI9IjEwMCIgeTI9IjE3MCIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xl
KSIvPgorPC9zdmc+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>