<?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>142032</bug_id>
          
          <creation_ts>2015-02-25 17:45:03 -0800</creation_ts>
          <short_desc>Cleanup RenderSVGResourceClipper class.</short_desc>
          <delta_ts>2015-02-26 10:41:12 -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>InRadar</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>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1072222</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-02-25 17:45:03 -0800</bug_when>
    <thetext>This bug to address Darin&apos;s comment in https://bugs.webkit.org/show_bug.cgi?id=141776#c5.

Comment on attachment 246862 [details]
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>1072238</commentid>
    <comment_count>1</comment_count>
      <attachid>247379</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-02-25 18:07:50 -0800</bug_when>
    <thetext>Created attachment 247379
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072241</commentid>
    <comment_count>2</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-02-25 18:14:01 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; This bug to address Darin&apos;s comment in
&gt; https://bugs.webkit.org/show_bug.cgi?id=141776#c5.
&gt; 
&gt; Comment on attachment 246862 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=246862&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp:260
&gt; &gt; +ClipperData* RenderSVGResourceClipper::addRendererToClipper(const RenderObject&amp; object)
&gt; 
&gt; The pointer this returns is always non-null. This function should return a
&gt; reference instead of a pointer.
&gt; 

Done.

&gt; &gt; Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp:264
&gt; &gt; +    if (!m_clipper.contains(&amp;object))
&gt; &gt; +        m_clipper.set(&amp;object, std::make_unique&lt;ClipperData&gt;());
&gt; &gt; +    return m_clipper.get(&amp;object);
&gt; 
&gt; This code does double hash table lookups. You just moved it, but the
&gt; performance problem can be fixed, like this:
&gt; 
&gt;     auto&amp; slot = m_clipper.add(&amp;object, nullptr).iterator-&gt;value;
&gt;     if (!slot)
&gt;         slot = std::make_unique&lt;ClipperData&gt;();
&gt;     return slot.get();
&gt; 
&gt; That will only do a single hash table lookup. In the future we might invent
&gt; even cleaner ways to write this.
&gt; 
&gt; We could also consider making this a HashMap&lt;const RenderObject*,
&gt; ClipperData&gt; instead. If we did that, then the code would be even simpler:
&gt; 
&gt;     return m_clipper.add(&amp;object, ClipperData()).iterator-&gt;value;
&gt; 
&gt; The map would be larger, because each slot would have an entire ClipperData
&gt; object. And rehashing would be slower, but we would avoid the overhead of an
&gt; additional memory block for every slot that is in use.

Thanks for the advice. This change looks much better and cleaner than the code I modified. I changed the type of m_clipper to be as you suggested. ClipperData is a structure which only one item of type std::unique_ptr&lt;&gt;. So sizeof(ClipperData) is 8 and sizeof(ClipperData*) is also 8. So I think the map size will be the same with this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072248</commentid>
    <comment_count>3</comment_count>
      <attachid>247385</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-02-25 18:28:34 -0800</bug_when>
    <thetext>Created attachment 247385
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072263</commentid>
    <comment_count>4</comment_count>
      <attachid>247385</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-02-25 19:13:00 -0800</bug_when>
    <thetext>Comment on attachment 247385
Patch

Looks like this doesn’t compile on Windows. It seems that Windows is having trouble because it is compiling the assignment operator for ClipperData rather than a move operator. We might be able to fix this using std::unique_ptr&lt;ImageBuffer&gt; directly or as a typedef instead of wrapping it in a class.

Also, we don’t need to use WTF_MAKE_FAST_ALLOCATED in the ClipperData struct any more since we are not allocating it as a separate object on the heap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072388</commentid>
    <comment_count>5</comment_count>
      <attachid>247427</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-02-26 09:09:20 -0800</bug_when>
    <thetext>Created attachment 247427
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072407</commentid>
    <comment_count>6</comment_count>
      <attachid>247429</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-02-26 09:48:31 -0800</bug_when>
    <thetext>Created attachment 247429
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072431</commentid>
    <comment_count>7</comment_count>
      <attachid>247429</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-26 10:37:47 -0800</bug_when>
    <thetext>Comment on attachment 247429
Patch

Clearing flags on attachment: 247429

Committed r180685: &lt;http://trac.webkit.org/changeset/180685&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072432</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-26 10:37:50 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072433</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-02-26 10:41:12 -0800</bug_when>
    <thetext>&lt;rdar://problem/19971911&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247379</attachid>
            <date>2015-02-25 18:07:50 -0800</date>
            <delta_ts>2015-02-25 18:28:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142032-20150225180737.patch</filename>
            <type>text/plain</type>
            <size>13324</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MDY1MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDE1LTAyLTI1ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW51cCBS
ZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIgY2xhc3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDIwMzIuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBUaGlzIGlzIGEgZm9sbG93IHVwIGZvciBy
MTgwNjQzOiA8aHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTgwNjQzPi4KKyAgICAg
ICAgSXQgaW5jbHVkZXMgY2xlYW51cCBmb3IgUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyIGNsYXNz
LgorCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyOjphcHBseUNsaXBw
aW5nVG9Db250ZXh0KTogQ2hhbmdlIHRoZSAKKyAgICAgICAgdHlwZSBvZiB0aGUgdmFyaWFibGUg
Y2xpcHBlckRhdGEgZnJvbSBiZWluZyBDbGlwcGVyRGF0YSogdG8gYmUgQ2xpcHBlckRhdGEmLgor
ICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcjo6ZHJh
d0NvbnRlbnRJbnRvTWFza0ltYWdlKTogQ2hhbmdlIHRoZQorICAgICAgICB0eXBlIG9mIHRoZSBw
YXJhbWV0ZXIgY2xpcHBlckRhdGEgZnJvbSBiZWluZyBDbGlwcGVyRGF0YSogdG8gYmUgCisgICAg
ICAgIGNvbnN0IENsaXBwZXJEYXRhJi4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTVkdSZXNvdXJjZUNsaXBwZXI6OmFkZFJlbmRlcmVyVG9DbGlwcGVyKTogSW5zdGVhZCBvZiBk
b2luZworICAgICAgICBkb3VibGUgaGFzaCB0YWJsZSBsb29rdXBzIGJ5IGNhbGxpbmcgSGFzaE1h
cDo6Y29udGFpbnMoKSBhbmQgdGhlbiBIYXNoTWFwOjpnZXQoKSwKKyAgICAgICAgd2UgY2FuIHVz
ZSBIYXNoTWFwOjphZGQoKSBpbnN0ZWFkLgorICAgICAgICAKKyAgICAgICAgKiByZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5oOiBDaGFuZ2UgbV9jbGlwcGVyIHRvIGJlIG9m
IHR5cGUKKyAgICAgICAgSGFzaE1hcDxjb25zdCBSZW5kZXJPYmplY3QqLCBDbGlwcGVyRGF0YT4g
dG8gbWFrZSBhZGRSZW5kZXJlclRvQ2xpcHBlcigpIHNpbXBsZXIuCisKIDIwMTUtMDItMjUgIEd5
dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBSZW1vdmUg
dW5uZWNlc3NhcnkgRGF0YWJhc2VGb29UYXNrOjpjcmVhdGUKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5j
cHAJKHJldmlzaW9uIDE4MDY0MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMwLDkgKzEzMCw4
IEBAIGJvb2wgUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyOjpwYXRoT25seUMKIGJvb2wgUmVuZGVy
U1ZHUmVzb3VyY2VDbGlwcGVyOjphcHBseUNsaXBwaW5nVG9Db250ZXh0KFJlbmRlckVsZW1lbnQm
IHJlbmRlcmVyLCBjb25zdCBGbG9hdFJlY3QmIG9iamVjdEJvdW5kaW5nQm94LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRmxvYXRS
ZWN0JiByZXBhaW50UmVjdCwgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0KQogewotICAgIENsaXBw
ZXJEYXRhKiBjbGlwcGVyRGF0YSA9IGFkZFJlbmRlcmVyVG9DbGlwcGVyKHJlbmRlcmVyKTsKLSAg
ICBBU1NFUlQoY2xpcHBlckRhdGEpOwotICAgIGJvb2wgc2hvdWxkQ3JlYXRlQ2xpcERhdGEgPSAh
Y2xpcHBlckRhdGEtPmNsaXBNYXNrSW1hZ2U7CisgICAgQ2xpcHBlckRhdGEmIGNsaXBwZXJEYXRh
ID0gYWRkUmVuZGVyZXJUb0NsaXBwZXIocmVuZGVyZXIpOworICAgIGJvb2wgc2hvdWxkQ3JlYXRl
Q2xpcERhdGEgPSAhY2xpcHBlckRhdGEuY2xpcE1hc2tJbWFnZTsKIAogICAgIEFmZmluZVRyYW5z
Zm9ybSBhbmltYXRlZExvY2FsVHJhbnNmb3JtID0gY2xpcFBhdGhFbGVtZW50KCkuYW5pbWF0ZWRM
b2NhbFRyYW5zZm9ybSgpOwogCkBAIC0xNDMsMTAgKzE0MiwxMCBAQCBib29sIFJlbmRlclNWR1Jl
c291cmNlQ2xpcHBlcjo6YXBwbHlDbGlwCiAgICAgU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y2FsY3Vs
YXRlVHJhbnNmb3JtYXRpb25Ub091dGVybW9zdENvb3JkaW5hdGVTeXN0ZW0ocmVuZGVyZXIsIGFi
c29sdXRlVHJhbnNmb3JtKTsKIAogICAgIGlmIChzaG91bGRDcmVhdGVDbGlwRGF0YSAmJiAhcmVw
YWludFJlY3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGlmICghU1ZHUmVuZGVyaW5nQ29udGV4dDo6
Y3JlYXRlSW1hZ2VCdWZmZXIocmVwYWludFJlY3QsIGFic29sdXRlVHJhbnNmb3JtLCBjbGlwcGVy
RGF0YS0+Y2xpcE1hc2tJbWFnZSwgQ29sb3JTcGFjZURldmljZVJHQiwgVW5hY2NlbGVyYXRlZCkp
CisgICAgICAgIGlmICghU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlSW1hZ2VCdWZmZXIocmVw
YWludFJlY3QsIGFic29sdXRlVHJhbnNmb3JtLCBjbGlwcGVyRGF0YS5jbGlwTWFza0ltYWdlLCBD
b2xvclNwYWNlRGV2aWNlUkdCLCBVbmFjY2VsZXJhdGVkKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgICAgICBHcmFwaGljc0NvbnRleHQqIG1hc2tDb250ZXh0ID0gY2xpcHBlckRh
dGEtPmNsaXBNYXNrSW1hZ2UtPmNvbnRleHQoKTsKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0KiBt
YXNrQ29udGV4dCA9IGNsaXBwZXJEYXRhLmNsaXBNYXNrSW1hZ2UtPmNvbnRleHQoKTsKICAgICAg
ICAgQVNTRVJUKG1hc2tDb250ZXh0KTsKIAogICAgICAgICBtYXNrQ29udGV4dC0+Y29uY2F0Q1RN
KGFuaW1hdGVkTG9jYWxUcmFuc2Zvcm0pOwpAQCAtMTY3LDIyICsxNjYsMjEgQEAgYm9vbCBSZW5k
ZXJTVkdSZXNvdXJjZUNsaXBwZXI6OmFwcGx5Q2xpcAogICAgICAgICAgICAgc3VjY2VlZGVkID0g
ZHJhd0NvbnRlbnRJbnRvTWFza0ltYWdlKGNsaXBwZXJEYXRhLCBvYmplY3RCb3VuZGluZ0JveCk7
CiAKICAgICAgICAgaWYgKCFzdWNjZWVkZWQpCi0gICAgICAgICAgICBjbGlwcGVyRGF0YS0+Y2xp
cE1hc2tJbWFnZS5yZXNldCgpOworICAgICAgICAgICAgY2xpcHBlckRhdGEuY2xpcE1hc2tJbWFn
ZS5yZXNldCgpOwogICAgIH0KIAotICAgIGlmICghY2xpcHBlckRhdGEtPmNsaXBNYXNrSW1hZ2Up
CisgICAgaWYgKCFjbGlwcGVyRGF0YS5jbGlwTWFza0ltYWdlKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICBTVkdSZW5kZXJpbmdDb250ZXh0OjpjbGlwVG9JbWFnZUJ1ZmZlcihjb250ZXh0
LCBhYnNvbHV0ZVRyYW5zZm9ybSwgcmVwYWludFJlY3QsIGNsaXBwZXJEYXRhLT5jbGlwTWFza0lt
YWdlLCBzaG91bGRDcmVhdGVDbGlwRGF0YSk7CisgICAgU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y2xp
cFRvSW1hZ2VCdWZmZXIoY29udGV4dCwgYWJzb2x1dGVUcmFuc2Zvcm0sIHJlcGFpbnRSZWN0LCBj
bGlwcGVyRGF0YS5jbGlwTWFza0ltYWdlLCBzaG91bGRDcmVhdGVDbGlwRGF0YSk7CiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLWJvb2wgUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyOjpkcmF3Q29udGVu
dEludG9NYXNrSW1hZ2UoQ2xpcHBlckRhdGEqIGNsaXBwZXJEYXRhLCBjb25zdCBGbG9hdFJlY3Qm
IG9iamVjdEJvdW5kaW5nQm94KQorYm9vbCBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXI6OmRyYXdD
b250ZW50SW50b01hc2tJbWFnZShjb25zdCBDbGlwcGVyRGF0YSYgY2xpcHBlckRhdGEsIGNvbnN0
IEZsb2F0UmVjdCYgb2JqZWN0Qm91bmRpbmdCb3gpCiB7Ci0gICAgQVNTRVJUKGNsaXBwZXJEYXRh
KTsKLSAgICBBU1NFUlQoY2xpcHBlckRhdGEtPmNsaXBNYXNrSW1hZ2UpOworICAgIEFTU0VSVChj
bGlwcGVyRGF0YS5jbGlwTWFza0ltYWdlKTsKIAotICAgIEdyYXBoaWNzQ29udGV4dCogbWFza0Nv
bnRleHQgPSBjbGlwcGVyRGF0YS0+Y2xpcE1hc2tJbWFnZS0+Y29udGV4dCgpOworICAgIEdyYXBo
aWNzQ29udGV4dCogbWFza0NvbnRleHQgPSBjbGlwcGVyRGF0YS5jbGlwTWFza0ltYWdlLT5jb250
ZXh0KCk7CiAgICAgQVNTRVJUKG1hc2tDb250ZXh0KTsKIAogICAgIEFmZmluZVRyYW5zZm9ybSBt
YXNrQ29udGVudFRyYW5zZm9ybWF0aW9uOwpAQCAtMjMzLDcgKzIzMSw3IEBAIGJvb2wgUmVuZGVy
U1ZHUmVzb3VyY2VDbGlwcGVyOjpkcmF3Q29udGUKICAgICAgICAgLy8gSW4gdGhlIGNhc2Ugb2Yg
YSA8dXNlPiBlbGVtZW50LCB3ZSBvYnRhaW5lZCBpdHMgcmVuZGVyZXJlIGFib3ZlLCB0byByZXRy
aWV2ZSBpdHMgY2xpcFJ1bGUuCiAgICAgICAgIC8vIFdlIGhhdmUgdG8gcGFzcyB0aGUgPHVzZT4g
cmVuZGVyZXIgaXRzZWxmIHRvIHJlbmRlclN1YnRyZWVUb0ltYWdlQnVmZmVyKCkgdG8gYXBwbHkg
aXQncyB4L3kvdHJhbnNmb3JtL2V0Yy4gdmFsdWVzIHdoZW4gcmVuZGVyaW5nLgogICAgICAgICAv
LyBTbyBpZiBpc1VzZUVsZW1lbnQgaXMgdHJ1ZSwgcmVmZXRjaCB0aGUgY2hpbGROb2RlLT5yZW5k
ZXJlcigpLCBhcyByZW5kZXJlciBnb3Qgb3ZlcnJpZGVuIGFib3ZlLgotICAgICAgICBTVkdSZW5k
ZXJpbmdDb250ZXh0OjpyZW5kZXJTdWJ0cmVlVG9JbWFnZUJ1ZmZlcihjbGlwcGVyRGF0YS0+Y2xp
cE1hc2tJbWFnZS5nZXQoKSwgaXNVc2VFbGVtZW50ID8gKmNoaWxkLnJlbmRlcmVyKCkgOiAqcmVu
ZGVyZXIsIG1hc2tDb250ZW50VHJhbnNmb3JtYXRpb24pOworICAgICAgICBTVkdSZW5kZXJpbmdD
b250ZXh0OjpyZW5kZXJTdWJ0cmVlVG9JbWFnZUJ1ZmZlcihjbGlwcGVyRGF0YS5jbGlwTWFza0lt
YWdlLmdldCgpLCBpc1VzZUVsZW1lbnQgPyAqY2hpbGQucmVuZGVyZXIoKSA6ICpyZW5kZXJlciwg
bWFza0NvbnRlbnRUcmFuc2Zvcm1hdGlvbik7CiAgICAgfQogCiAgICAgdmlldygpLmZyYW1lVmll
dygpLnNldFBhaW50QmVoYXZpb3Iob2xkQmVoYXZpb3IpOwpAQCAtMjU3LDExICsyNTUsOSBAQCB2
b2lkIFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcjo6Y2FsY3VsYXRlCiAgICAgbV9jbGlwQm91bmRh
cmllcyA9IGNsaXBQYXRoRWxlbWVudCgpLmFuaW1hdGVkTG9jYWxUcmFuc2Zvcm0oKS5tYXBSZWN0
KG1fY2xpcEJvdW5kYXJpZXMpOwogfQogCi1DbGlwcGVyRGF0YSogUmVuZGVyU1ZHUmVzb3VyY2VD
bGlwcGVyOjphZGRSZW5kZXJlclRvQ2xpcHBlcihjb25zdCBSZW5kZXJPYmplY3QmIG9iamVjdCkK
K0NsaXBwZXJEYXRhJiBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXI6OmFkZFJlbmRlcmVyVG9DbGlw
cGVyKGNvbnN0IFJlbmRlck9iamVjdCYgb2JqZWN0KQogewotICAgIGlmICghbV9jbGlwcGVyLmNv
bnRhaW5zKCZvYmplY3QpKQotICAgICAgICBtX2NsaXBwZXIuc2V0KCZvYmplY3QsIHN0ZDo6bWFr
ZV91bmlxdWU8Q2xpcHBlckRhdGE+KCkpOwotICAgIHJldHVybiBtX2NsaXBwZXIuZ2V0KCZvYmpl
Y3QpOworICAgIHJldHVybiBtX2NsaXBwZXIuYWRkKCZvYmplY3QsIENsaXBwZXJEYXRhKCkpLml0
ZXJhdG9yLT52YWx1ZTsKIH0KIAogYm9vbCBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXI6OmhpdFRl
c3RDbGlwQ29udGVudChjb25zdCBGbG9hdFJlY3QmIG9iamVjdEJvdW5kaW5nQm94LCBjb25zdCBG
bG9hdFBvaW50JiBub2RlQXRQb2ludCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuaAkocmV2aXNpb24gMTgw
NjQzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNs
aXBwZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjksMTIgKzY5LDEyIEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
IlJlbmRlclNWR1Jlc291cmNlQ2xpcHBlciI7IH0KIAogICAgIGJvb2wgcGF0aE9ubHlDbGlwcGlu
ZyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFJl
Y3QmKTsKLSAgICBib29sIGRyYXdDb250ZW50SW50b01hc2tJbWFnZShDbGlwcGVyRGF0YSosIGNv
bnN0IEZsb2F0UmVjdCYgb2JqZWN0Qm91bmRpbmdCb3gpOworICAgIGJvb2wgZHJhd0NvbnRlbnRJ
bnRvTWFza0ltYWdlKGNvbnN0IENsaXBwZXJEYXRhJiwgY29uc3QgRmxvYXRSZWN0JiBvYmplY3RC
b3VuZGluZ0JveCk7CiAgICAgdm9pZCBjYWxjdWxhdGVDbGlwQ29udGVudFJlcGFpbnRSZWN0KCk7
Ci0gICAgQ2xpcHBlckRhdGEqIGFkZFJlbmRlcmVyVG9DbGlwcGVyKGNvbnN0IFJlbmRlck9iamVj
dCYpOworICAgIENsaXBwZXJEYXRhJiBhZGRSZW5kZXJlclRvQ2xpcHBlcihjb25zdCBSZW5kZXJP
YmplY3QmKTsKIAogICAgIEZsb2F0UmVjdCBtX2NsaXBCb3VuZGFyaWVzOwotICAgIEhhc2hNYXA8
Y29uc3QgUmVuZGVyT2JqZWN0Kiwgc3RkOjp1bmlxdWVfcHRyPENsaXBwZXJEYXRhPj4gbV9jbGlw
cGVyOworICAgIEhhc2hNYXA8Y29uc3QgUmVuZGVyT2JqZWN0KiwgQ2xpcHBlckRhdGE+IG1fY2xp
cHBlcjsKIH07CiAKIH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MDY1MSkKKysrIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE1LTAyLTI1ICBT
YWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xl
YW51cCBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIgY2xhc3MuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDIwMzIuCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdmcvY2xpcC1wYXRoL2NsaXAtcGF0aC1s
aW5lLXVzZS1iZWZvcmUtZGVmaW5lZC1leHBlY3RlZC5zdmc6CisgICAgICAgICogc3ZnL2NsaXAt
cGF0aC9jbGlwLXBhdGgtbGluZS11c2UtYmVmb3JlLWRlZmluZWQuc3ZnOiBTaW1wbGlmeSB0aGUg
dGVzdAorICAgICAgICBhbmQgbWFrZSBzZXBhcmF0ZSBkcmF3aW5ncyBmb3IgZGlmZmVyZW50IGNh
c2VzLgorCiAyMDE1LTAyLTI1ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgog
CiAgICAgICAgIFtXaW5dIFNraXAgdGltaW5nLW91dCB0ZXN0IGFmdGVyIHIxODA2NDYuCkluZGV4
OiBMYXlvdXRUZXN0cy9zdmcvY2xpcC1wYXRoL2NsaXAtcGF0aC1saW5lLXVzZS1iZWZvcmUtZGVm
aW5lZC1leHBlY3RlZC5zdmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2NsaXAtcGF0
aC9jbGlwLXBhdGgtbGluZS11c2UtYmVmb3JlLWRlZmluZWQtZXhwZWN0ZWQuc3ZnCShyZXZpc2lv
biAxODA2NDMpCisrKyBMYXlvdXRUZXN0cy9zdmcvY2xpcC1wYXRoL2NsaXAtcGF0aC1saW5lLXVz
ZS1iZWZvcmUtZGVmaW5lZC1leHBlY3RlZC5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTEsMzMgKzEs
NDUgQEAKLTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGlu
az0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAi
PgorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwMCIgaGVpZ2h0PSIyMDAwIj4K
ICAgPGRlZnM+CiAgICAgPHN0eWxlPgogICAgICAgbGluZSwgcGF0aCB7CiAgICAgICAgIHN0cm9r
ZTogYmxhY2s7CisgICAgICAgIHN0cm9rZS13aWR0aDogMzsKICAgICAgIH0KICAgICA8L3N0eWxl
PgogICAgIDxjbGlwUGF0aCBpZD0iY2xpcC1jaXJjbGUiPgotICAgICAgICA8Y2lyY2xlIGN4PSI1
MCUiIGN5PSI1MCUiIHI9IjI1JSIvPgorICAgICAgPGNpcmNsZSBjeD0iNzUiIGN5PSI3NSIgcj0i
NTAiLz4KICAgICA8L2NsaXBQYXRoPgorICAgIDxnIGlkPSJjaXJjbGUtaW4tcmVjdCI+CisgICAg
ICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjE1MCIgZmlsbD0ibGltZSIv
PgorICAgICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjE1MCIgaGVpZ2h0PSIxNTAiIGZpbGw9
IndoaXRlIiBjbGlwLXBhdGg9InVybCgjY2xpcC1jaXJjbGUpIi8+CisgICAgPC9nPgogICA8L2Rl
ZnM+Ci0gIAotICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBm
aWxsPSJsaW1lIi8+Ci0gIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEw
MCUiIGZpbGw9IndoaXRlIiBjbGlwLXBhdGg9InVybCgjY2xpcC1jaXJjbGUpIi8+CiAKLSAgPCEt
LSBkaWFnb25hbCAtLT4KLSAgPGxpbmUgeDE9IjE3MCIgeTE9IjMwIiB4Mj0iMzAiIHkyPSIxNzAi
IGNsaXAtcGF0aD0idXJsKCNjbGlwLWNpcmNsZSkiLz4KKyAgPHVzZSB4bGluazpocmVmPSIjY2ly
Y2xlLWluLXJlY3QiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEwLCAxMCkiPgorICAgIDxnIGNsaXAt
cGF0aD0idXJsKCNjbGlwLWNpcmNsZSkiPgorICAgICAgPCEtLSBjZW50ZXIgbGluZXMgLS0+Cisg
ICAgICA8cGF0aCBkPSJNMCA3NSBMMTUwIDc1Ii8+CisgICAgICA8bGluZSB4MT0iNzUiIHkxPSIw
IiB4Mj0iNzUiIHkyPSIxNTAiLz4KKyAgICA8L2c+CisgIDwvdXNlPgogICAKLSAgPCEtLSB0b3Ag
YW5kIGxlZnQgbGluZXMgLS0+Ci0gIDxwYXRoIGQ9Ik0zMCA3NSBMMTcwIDc1IiBjbGlwLXBhdGg9
InVybCgjY2xpcC1jaXJjbGUpIi8+Ci0gIDxsaW5lIHgxPSI3NSIgeTE9IjMwIiB4Mj0iNzUiIHky
PSIxNzAiIGNsaXAtcGF0aD0idXJsKCNjbGlwLWNpcmNsZSkiLz4KKyAgPHVzZSB4bGluazpocmVm
PSIjY2lyY2xlLWluLXJlY3QiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE3MCwgMTApIj4KKyAgICA8
ZyBjbGlwLXBhdGg9InVybCgjY2xpcC1jaXJjbGUpIj4KKyAgICAgIDwhLS0gZGlhZ29uYWwgbGlu
ZXMgLS0+CisgICAgICA8cGF0aCBkPSJNMCAwIEwxNTAgMTUwIi8+CisgICAgICA8bGluZSB4MT0i
MCIgeTE9IjE1MCIgeDI9IjE1MCIgeTI9IjAiLz4KKyAgICA8L2c+CisgIDwvdXNlPgogCi0gIDwh
LS0gcmlnaHQgYW5kIGJvdHRvbSBsaW5lcyAtLT4KLSAgPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAt
Y2lyY2xlKSI+Ci0gICAgPHBhdGggZD0iTTMwIDEyNSBMMTcwIDEyNSIvPgotICAgIDxsaW5lIHgx
PSIxMjUiIHkxPSIzMCIgeDI9IjEyNSIgeTI9IjE3MCIvPgotICA8L2c+Ci0gIAotICA8IS0tIGNl
bnRlciBsaW5lcyAtLT4KLSAgPHBhdGggZD0iTTMwIDEwMCBMMTcwIDEwMCIgY2xpcC1wYXRoPSJ1
cmwoI2NsaXAtY2lyY2xlKSIvPgotICA8bGluZSB4MT0iMTAwIiB5MT0iMzAiIHgyPSIxMDAiIHky
PSIxNzAiIGNsaXAtcGF0aD0idXJsKCNjbGlwLWNpcmNsZSkiLz4KLSAgCisgIDwhLS0gZGlhZ29u
YWxzIC0tPgorICA8dXNlIHhsaW5rOmhyZWY9IiNjaXJjbGUtaW4tcmVjdCIgdHJhbnNmb3JtPSJ0
cmFuc2xhdGUoMzMwLCAxMCkiPgorICAgIDxnIGNsaXAtcGF0aD0idXJsKCNjbGlwLWNpcmNsZSki
PgorICAgICAgPCEtLSB0b3AgYW5kIGxlZnQgbGluZXMgLS0+CisgICAgICA8cGF0aCBkPSJNMCA1
MCBMMTUwIDUwIi8+CisgICAgICA8bGluZSB4MT0iNTAiIHkxPSIwIiB4Mj0iNTAiIHkyPSIxNTAi
Lz4KKyAgICAgIDwhLS0gYm90dG9tIGFuZCByaWdodCBsaW5lcyAtLT4KKyAgICAgIDxwYXRoIGQ9
Ik0wIDEwMCBMMTUwIDEwMCIvPgorICAgICAgPGxpbmUgeDE9IjEwMCIgeTE9IjAiIHgyPSIxMDAi
IHkyPSIxNTAiLz4KKyAgICA8L2c+CisgIDwvdXNlPgogPC9zdmc+CkluZGV4OiBMYXlvdXRUZXN0
cy9zdmcvY2xpcC1wYXRoL2NsaXAtcGF0aC1saW5lLXVzZS1iZWZvcmUtZGVmaW5lZC5zdmcKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2NsaXAtcGF0aC9jbGlwLXBhdGgtbGluZS11c2Ut
YmVmb3JlLWRlZmluZWQuc3ZnCShyZXZpc2lvbiAxODA2NDMpCisrKyBMYXlvdXRUZXN0cy9zdmcv
Y2xpcC1wYXRoL2NsaXAtcGF0aC1saW5lLXVzZS1iZWZvcmUtZGVmaW5lZC5zdmcJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMzggKzEsNDYgQEAKLTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIw
MDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9
IjIwMCIgaGVpZ2h0PSIyMDAiPgorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z
dmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAw
MCIgaGVpZ2h0PSIyMDAwIj4KICAgPGRlZnM+CiAgICAgPHN0eWxlPgogICAgICAgbGluZSwgcGF0
aCB7CiAgICAgICAgIHN0cm9rZTogYmxhY2s7CisgICAgICAgIHN0cm9rZS13aWR0aDogMzsKICAg
ICAgIH0KICAgICA8L3N0eWxlPgorICAgIDxnIGlkPSJjaXJjbGUtaW4tcmVjdCI+CisgICAgICA8
cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjE1MCIgZmlsbD0ibGltZSIvPgor
ICAgICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjE1MCIgaGVpZ2h0PSIxNTAiIGZpbGw9Indo
aXRlIiBjbGlwLXBhdGg9InVybCgjY2xpcC1jaXJjbGUpIi8+CisgICAgPC9nPgogICA8L2RlZnM+
Ci0gIAotICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxs
PSJsaW1lIi8+Ci0gIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUi
IGZpbGw9IndoaXRlIiBjbGlwLXBhdGg9InVybCgjY2xpcC1jaXJjbGUpIi8+CiAKLSAgPCEtLSBk
aWFnb25hbCAtLT4KLSAgPGxpbmUgeDE9IjE3MCIgeTE9IjMwIiB4Mj0iMzAiIHkyPSIxNzAiIGNs
aXAtcGF0aD0idXJsKCNjbGlwLWNpcmNsZSkiLz4KKyAgPHVzZSB4bGluazpocmVmPSIjY2lyY2xl
LWluLXJlY3QiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEwLCAxMCkiPgorICAgIDwhLS0gY2VudGVy
IGxpbmVzIC0tPgorICAgIDxwYXRoIGQ9Ik0wIDc1IEwxNTAgNzUiIGNsaXAtcGF0aD0idXJsKCNj
bGlwLWNpcmNsZSkiLz4KKyAgICA8bGluZSB4MT0iNzUiIHkxPSIwIiB4Mj0iNzUiIHkyPSIxNTAi
IGNsaXAtcGF0aD0idXJsKCNjbGlwLWNpcmNsZSkiLz4KKyAgPC91c2U+CiAgIAotICA8IS0tIHRv
cCBhbmQgbGVmdCBsaW5lcyAtLT4KLSAgPHBhdGggZD0iTTMwIDc1IEwxNzAgNzUiIGNsaXAtcGF0
aD0idXJsKCNjbGlwLWNpcmNsZSkiLz4KLSAgPGxpbmUgeDE9Ijc1IiB5MT0iMzAiIHgyPSI3NSIg
eTI9IjE3MCIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xlKSIvPgorICA8dXNlIHhsaW5rOmhy
ZWY9IiNjaXJjbGUtaW4tcmVjdCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTcwLCAxMCkiPgorICAg
IDwhLS0gZGlhZ29uYWwgbGluZXMgLS0+CisgICAgPHBhdGggZD0iTTAgMCBMMTUwIDE1MCIgY2xp
cC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xlKSIvPgorICAgIDxsaW5lIHgxPSIwIiB5MT0iMTUwIiB4
Mj0iMTUwIiB5Mj0iMCIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xlKSIvPgorICA8L3VzZT4K
IAotICA8IS0tIGJvdHRvbSBhbmQgcmlnaHQgbGluZXMgLS0+Ci0gIDxnIGNsaXAtcGF0aD0idXJs
KCNjbGlwLWNpcmNsZSkiPgotICAgIDxwYXRoIGQ9Ik0zMCAxMjUgTDE3MCAxMjUiLz4KLSAgICA8
bGluZSB4MT0iMTI1IiB5MT0iMzAiIHgyPSIxMjUiIHkyPSIxNzAiLz4KLSAgPC9nPgorICA8dXNl
IHhsaW5rOmhyZWY9IiNjaXJjbGUtaW4tcmVjdCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzMwLCAx
MCkiPgorICAgIDwhLS0gdG9wIGFuZCBsZWZ0IGxpbmVzIC0tPgorICAgIDxwYXRoIGQ9Ik0wIDUw
IEwxNTAgNTAiIGNsaXAtcGF0aD0idXJsKCNjbGlwLWNpcmNsZSkiLz4KKyAgICA8bGluZSB4MT0i
NTAiIHkxPSIwIiB4Mj0iNTAiIHkyPSIxNTAiIGNsaXAtcGF0aD0idXJsKCNjbGlwLWNpcmNsZSki
Lz4KKyAgICA8ZyBjbGlwLXBhdGg9InVybCgjY2xpcC1jaXJjbGUpIj4KKyAgICAgIDwhLS0gYm90
dG9tIGFuZCByaWdodCBsaW5lcyAtLT4KKyAgICAgIDxwYXRoIGQ9Ik0wIDEwMCBMMTUwIDEwMCIv
PgorICAgICAgPGxpbmUgeDE9IjEwMCIgeTE9IjAiIHgyPSIxMDAiIHkyPSIxNTAiLz4KKyAgICA8
L2c+CisgIDwvdXNlPgogICAKICAgPGRlZnM+CiAgICAgPGNsaXBQYXRoIGlkPSJjbGlwLWNpcmNs
ZSI+Ci0gICAgICA8Y2lyY2xlIGN4PSI1MCUiIGN5PSI1MCUiIHI9IjUwJSIgY2xpcC1wYXRoPSJ1
cmwoI2NsaXAtc21hbGwtY2lyY2xlKSIvPgorICAgICAgPGNpcmNsZSBjeD0iNzUiIGN5PSI3NSIg
cj0iNzUiIGNsaXAtcGF0aD0idXJsKCNjbGlwLXNtYWxsLWNpcmNsZSkiLz4KICAgICA8L2NsaXBQ
YXRoPgogICAgIDxjbGlwUGF0aCBpZD0iY2xpcC1zbWFsbC1jaXJjbGUiPgotICAgICAgPGNpcmNs
ZSBjeD0iNTAlIiBjeT0iNTAlIiByPSIyNSUiLz4KKyAgICAgIDxjaXJjbGUgY3g9Ijc1IiBjeT0i
NzUiIHI9IjUwIi8+CiAgICAgPC9jbGlwUGF0aD4KICAgPC9kZWZzPgotCi0gIDwhLS0gY2VudGVy
IGxpbmVzIC0tPgotICA8cGF0aCBkPSJNMzAgMTAwIEwxNzAgMTAwIiBjbGlwLXBhdGg9InVybCgj
Y2xpcC1jaXJjbGUpIi8+Ci0gIDxsaW5lIHgxPSIxMDAiIHkxPSIzMCIgeDI9IjEwMCIgeTI9IjE3
MCIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xlKSIvPgogPC9zdmc+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247385</attachid>
            <date>2015-02-25 18:28:34 -0800</date>
            <delta_ts>2015-02-26 09:09:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142032-20150225182821.patch</filename>
            <type>text/plain</type>
            <size>13270</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MDY1MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDE1LTAyLTI1ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW51cCBS
ZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIgY2xhc3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDIwMzIuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBUaGlzIGlzIGEgZm9sbG93IHVwIGZvciBy
MTgwNjQzOiA8aHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTgwNjQzPi4KKyAgICAg
ICAgSXQgaW5jbHVkZXMgY2xlYW51cCBmb3IgUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyIGNsYXNz
LgorCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyOjphcHBseUNsaXBw
aW5nVG9Db250ZXh0KTogQ2hhbmdlIHRoZSAKKyAgICAgICAgdHlwZSBvZiB0aGUgdmFyaWFibGUg
Y2xpcHBlckRhdGEgZnJvbSBiZWluZyBDbGlwcGVyRGF0YSogdG8gYmUgQ2xpcHBlckRhdGEmLgor
ICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcjo6ZHJh
d0NvbnRlbnRJbnRvTWFza0ltYWdlKTogQ2hhbmdlIHRoZQorICAgICAgICB0eXBlIG9mIHRoZSBw
YXJhbWV0ZXIgY2xpcHBlckRhdGEgZnJvbSBiZWluZyBDbGlwcGVyRGF0YSogdG8gYmUgCisgICAg
ICAgIGNvbnN0IENsaXBwZXJEYXRhJi4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTVkdSZXNvdXJjZUNsaXBwZXI6OmFkZFJlbmRlcmVyVG9DbGlwcGVyKTogSW5zdGVhZCBvZiBk
b2luZworICAgICAgICBkb3VibGUgaGFzaCB0YWJsZSBsb29rdXBzIGJ5IGNhbGxpbmcgSGFzaE1h
cDo6Y29udGFpbnMoKSBhbmQgdGhlbiBIYXNoTWFwOjpnZXQoKSwKKyAgICAgICAgd2UgY2FuIHVz
ZSBIYXNoTWFwOjphZGQoKSBpbnN0ZWFkLgorICAgICAgICAKKyAgICAgICAgKiByZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5oOiBDaGFuZ2UgbV9jbGlwcGVyIHRvIGJlIG9m
IHR5cGUKKyAgICAgICAgSGFzaE1hcDxjb25zdCBSZW5kZXJPYmplY3QqLCBDbGlwcGVyRGF0YT4g
dG8gbWFrZSBhZGRSZW5kZXJlclRvQ2xpcHBlcigpIHNpbXBsZXIuCisKIDIwMTUtMDItMjUgIEd5
dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBSZW1vdmUg
dW5uZWNlc3NhcnkgRGF0YWJhc2VGb29UYXNrOjpjcmVhdGUKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5j
cHAJKHJldmlzaW9uIDE4MDY0MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMwLDkgKzEzMCw4
IEBAIGJvb2wgUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyOjpwYXRoT25seUMKIGJvb2wgUmVuZGVy
U1ZHUmVzb3VyY2VDbGlwcGVyOjphcHBseUNsaXBwaW5nVG9Db250ZXh0KFJlbmRlckVsZW1lbnQm
IHJlbmRlcmVyLCBjb25zdCBGbG9hdFJlY3QmIG9iamVjdEJvdW5kaW5nQm94LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRmxvYXRS
ZWN0JiByZXBhaW50UmVjdCwgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0KQogewotICAgIENsaXBw
ZXJEYXRhKiBjbGlwcGVyRGF0YSA9IGFkZFJlbmRlcmVyVG9DbGlwcGVyKHJlbmRlcmVyKTsKLSAg
ICBBU1NFUlQoY2xpcHBlckRhdGEpOwotICAgIGJvb2wgc2hvdWxkQ3JlYXRlQ2xpcERhdGEgPSAh
Y2xpcHBlckRhdGEtPmNsaXBNYXNrSW1hZ2U7CisgICAgQ2xpcHBlckRhdGEmIGNsaXBwZXJEYXRh
ID0gYWRkUmVuZGVyZXJUb0NsaXBwZXIocmVuZGVyZXIpOworICAgIGJvb2wgc2hvdWxkQ3JlYXRl
Q2xpcERhdGEgPSAhY2xpcHBlckRhdGEuY2xpcE1hc2tJbWFnZTsKIAogICAgIEFmZmluZVRyYW5z
Zm9ybSBhbmltYXRlZExvY2FsVHJhbnNmb3JtID0gY2xpcFBhdGhFbGVtZW50KCkuYW5pbWF0ZWRM
b2NhbFRyYW5zZm9ybSgpOwogCkBAIC0xNDMsMTAgKzE0MiwxMCBAQCBib29sIFJlbmRlclNWR1Jl
c291cmNlQ2xpcHBlcjo6YXBwbHlDbGlwCiAgICAgU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y2FsY3Vs
YXRlVHJhbnNmb3JtYXRpb25Ub091dGVybW9zdENvb3JkaW5hdGVTeXN0ZW0ocmVuZGVyZXIsIGFi
c29sdXRlVHJhbnNmb3JtKTsKIAogICAgIGlmIChzaG91bGRDcmVhdGVDbGlwRGF0YSAmJiAhcmVw
YWludFJlY3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGlmICghU1ZHUmVuZGVyaW5nQ29udGV4dDo6
Y3JlYXRlSW1hZ2VCdWZmZXIocmVwYWludFJlY3QsIGFic29sdXRlVHJhbnNmb3JtLCBjbGlwcGVy
RGF0YS0+Y2xpcE1hc2tJbWFnZSwgQ29sb3JTcGFjZURldmljZVJHQiwgVW5hY2NlbGVyYXRlZCkp
CisgICAgICAgIGlmICghU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlSW1hZ2VCdWZmZXIocmVw
YWludFJlY3QsIGFic29sdXRlVHJhbnNmb3JtLCBjbGlwcGVyRGF0YS5jbGlwTWFza0ltYWdlLCBD
b2xvclNwYWNlRGV2aWNlUkdCLCBVbmFjY2VsZXJhdGVkKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgICAgICBHcmFwaGljc0NvbnRleHQqIG1hc2tDb250ZXh0ID0gY2xpcHBlckRh
dGEtPmNsaXBNYXNrSW1hZ2UtPmNvbnRleHQoKTsKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0KiBt
YXNrQ29udGV4dCA9IGNsaXBwZXJEYXRhLmNsaXBNYXNrSW1hZ2UtPmNvbnRleHQoKTsKICAgICAg
ICAgQVNTRVJUKG1hc2tDb250ZXh0KTsKIAogICAgICAgICBtYXNrQ29udGV4dC0+Y29uY2F0Q1RN
KGFuaW1hdGVkTG9jYWxUcmFuc2Zvcm0pOwpAQCAtMTY3LDIyICsxNjYsMjEgQEAgYm9vbCBSZW5k
ZXJTVkdSZXNvdXJjZUNsaXBwZXI6OmFwcGx5Q2xpcAogICAgICAgICAgICAgc3VjY2VlZGVkID0g
ZHJhd0NvbnRlbnRJbnRvTWFza0ltYWdlKGNsaXBwZXJEYXRhLCBvYmplY3RCb3VuZGluZ0JveCk7
CiAKICAgICAgICAgaWYgKCFzdWNjZWVkZWQpCi0gICAgICAgICAgICBjbGlwcGVyRGF0YS0+Y2xp
cE1hc2tJbWFnZS5yZXNldCgpOworICAgICAgICAgICAgY2xpcHBlckRhdGEuY2xpcE1hc2tJbWFn
ZS5yZXNldCgpOwogICAgIH0KIAotICAgIGlmICghY2xpcHBlckRhdGEtPmNsaXBNYXNrSW1hZ2Up
CisgICAgaWYgKCFjbGlwcGVyRGF0YS5jbGlwTWFza0ltYWdlKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICBTVkdSZW5kZXJpbmdDb250ZXh0OjpjbGlwVG9JbWFnZUJ1ZmZlcihjb250ZXh0
LCBhYnNvbHV0ZVRyYW5zZm9ybSwgcmVwYWludFJlY3QsIGNsaXBwZXJEYXRhLT5jbGlwTWFza0lt
YWdlLCBzaG91bGRDcmVhdGVDbGlwRGF0YSk7CisgICAgU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y2xp
cFRvSW1hZ2VCdWZmZXIoY29udGV4dCwgYWJzb2x1dGVUcmFuc2Zvcm0sIHJlcGFpbnRSZWN0LCBj
bGlwcGVyRGF0YS5jbGlwTWFza0ltYWdlLCBzaG91bGRDcmVhdGVDbGlwRGF0YSk7CiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLWJvb2wgUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyOjpkcmF3Q29udGVu
dEludG9NYXNrSW1hZ2UoQ2xpcHBlckRhdGEqIGNsaXBwZXJEYXRhLCBjb25zdCBGbG9hdFJlY3Qm
IG9iamVjdEJvdW5kaW5nQm94KQorYm9vbCBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXI6OmRyYXdD
b250ZW50SW50b01hc2tJbWFnZShjb25zdCBDbGlwcGVyRGF0YSYgY2xpcHBlckRhdGEsIGNvbnN0
IEZsb2F0UmVjdCYgb2JqZWN0Qm91bmRpbmdCb3gpCiB7Ci0gICAgQVNTRVJUKGNsaXBwZXJEYXRh
KTsKLSAgICBBU1NFUlQoY2xpcHBlckRhdGEtPmNsaXBNYXNrSW1hZ2UpOworICAgIEFTU0VSVChj
bGlwcGVyRGF0YS5jbGlwTWFza0ltYWdlKTsKIAotICAgIEdyYXBoaWNzQ29udGV4dCogbWFza0Nv
bnRleHQgPSBjbGlwcGVyRGF0YS0+Y2xpcE1hc2tJbWFnZS0+Y29udGV4dCgpOworICAgIEdyYXBo
aWNzQ29udGV4dCogbWFza0NvbnRleHQgPSBjbGlwcGVyRGF0YS5jbGlwTWFza0ltYWdlLT5jb250
ZXh0KCk7CiAgICAgQVNTRVJUKG1hc2tDb250ZXh0KTsKIAogICAgIEFmZmluZVRyYW5zZm9ybSBt
YXNrQ29udGVudFRyYW5zZm9ybWF0aW9uOwpAQCAtMjMzLDcgKzIzMSw3IEBAIGJvb2wgUmVuZGVy
U1ZHUmVzb3VyY2VDbGlwcGVyOjpkcmF3Q29udGUKICAgICAgICAgLy8gSW4gdGhlIGNhc2Ugb2Yg
YSA8dXNlPiBlbGVtZW50LCB3ZSBvYnRhaW5lZCBpdHMgcmVuZGVyZXJlIGFib3ZlLCB0byByZXRy
aWV2ZSBpdHMgY2xpcFJ1bGUuCiAgICAgICAgIC8vIFdlIGhhdmUgdG8gcGFzcyB0aGUgPHVzZT4g
cmVuZGVyZXIgaXRzZWxmIHRvIHJlbmRlclN1YnRyZWVUb0ltYWdlQnVmZmVyKCkgdG8gYXBwbHkg
aXQncyB4L3kvdHJhbnNmb3JtL2V0Yy4gdmFsdWVzIHdoZW4gcmVuZGVyaW5nLgogICAgICAgICAv
LyBTbyBpZiBpc1VzZUVsZW1lbnQgaXMgdHJ1ZSwgcmVmZXRjaCB0aGUgY2hpbGROb2RlLT5yZW5k
ZXJlcigpLCBhcyByZW5kZXJlciBnb3Qgb3ZlcnJpZGVuIGFib3ZlLgotICAgICAgICBTVkdSZW5k
ZXJpbmdDb250ZXh0OjpyZW5kZXJTdWJ0cmVlVG9JbWFnZUJ1ZmZlcihjbGlwcGVyRGF0YS0+Y2xp
cE1hc2tJbWFnZS5nZXQoKSwgaXNVc2VFbGVtZW50ID8gKmNoaWxkLnJlbmRlcmVyKCkgOiAqcmVu
ZGVyZXIsIG1hc2tDb250ZW50VHJhbnNmb3JtYXRpb24pOworICAgICAgICBTVkdSZW5kZXJpbmdD
b250ZXh0OjpyZW5kZXJTdWJ0cmVlVG9JbWFnZUJ1ZmZlcihjbGlwcGVyRGF0YS5jbGlwTWFza0lt
YWdlLmdldCgpLCBpc1VzZUVsZW1lbnQgPyAqY2hpbGQucmVuZGVyZXIoKSA6ICpyZW5kZXJlciwg
bWFza0NvbnRlbnRUcmFuc2Zvcm1hdGlvbik7CiAgICAgfQogCiAgICAgdmlldygpLmZyYW1lVmll
dygpLnNldFBhaW50QmVoYXZpb3Iob2xkQmVoYXZpb3IpOwpAQCAtMjU3LDExICsyNTUsOSBAQCB2
b2lkIFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcjo6Y2FsY3VsYXRlCiAgICAgbV9jbGlwQm91bmRh
cmllcyA9IGNsaXBQYXRoRWxlbWVudCgpLmFuaW1hdGVkTG9jYWxUcmFuc2Zvcm0oKS5tYXBSZWN0
KG1fY2xpcEJvdW5kYXJpZXMpOwogfQogCi1DbGlwcGVyRGF0YSogUmVuZGVyU1ZHUmVzb3VyY2VD
bGlwcGVyOjphZGRSZW5kZXJlclRvQ2xpcHBlcihjb25zdCBSZW5kZXJPYmplY3QmIG9iamVjdCkK
K0NsaXBwZXJEYXRhJiBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXI6OmFkZFJlbmRlcmVyVG9DbGlw
cGVyKGNvbnN0IFJlbmRlck9iamVjdCYgb2JqZWN0KQogewotICAgIGlmICghbV9jbGlwcGVyLmNv
bnRhaW5zKCZvYmplY3QpKQotICAgICAgICBtX2NsaXBwZXIuc2V0KCZvYmplY3QsIHN0ZDo6bWFr
ZV91bmlxdWU8Q2xpcHBlckRhdGE+KCkpOwotICAgIHJldHVybiBtX2NsaXBwZXIuZ2V0KCZvYmpl
Y3QpOworICAgIHJldHVybiBtX2NsaXBwZXIuYWRkKCZvYmplY3QsIENsaXBwZXJEYXRhKCkpLml0
ZXJhdG9yLT52YWx1ZTsKIH0KIAogYm9vbCBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXI6OmhpdFRl
c3RDbGlwQ29udGVudChjb25zdCBGbG9hdFJlY3QmIG9iamVjdEJvdW5kaW5nQm94LCBjb25zdCBG
bG9hdFBvaW50JiBub2RlQXRQb2ludCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuaAkocmV2aXNpb24gMTgw
NjQzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNs
aXBwZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjksMTIgKzY5LDEyIEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
IlJlbmRlclNWR1Jlc291cmNlQ2xpcHBlciI7IH0KIAogICAgIGJvb2wgcGF0aE9ubHlDbGlwcGlu
ZyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFJl
Y3QmKTsKLSAgICBib29sIGRyYXdDb250ZW50SW50b01hc2tJbWFnZShDbGlwcGVyRGF0YSosIGNv
bnN0IEZsb2F0UmVjdCYgb2JqZWN0Qm91bmRpbmdCb3gpOworICAgIGJvb2wgZHJhd0NvbnRlbnRJ
bnRvTWFza0ltYWdlKGNvbnN0IENsaXBwZXJEYXRhJiwgY29uc3QgRmxvYXRSZWN0JiBvYmplY3RC
b3VuZGluZ0JveCk7CiAgICAgdm9pZCBjYWxjdWxhdGVDbGlwQ29udGVudFJlcGFpbnRSZWN0KCk7
Ci0gICAgQ2xpcHBlckRhdGEqIGFkZFJlbmRlcmVyVG9DbGlwcGVyKGNvbnN0IFJlbmRlck9iamVj
dCYpOworICAgIENsaXBwZXJEYXRhJiBhZGRSZW5kZXJlclRvQ2xpcHBlcihjb25zdCBSZW5kZXJP
YmplY3QmKTsKIAogICAgIEZsb2F0UmVjdCBtX2NsaXBCb3VuZGFyaWVzOwotICAgIEhhc2hNYXA8
Y29uc3QgUmVuZGVyT2JqZWN0Kiwgc3RkOjp1bmlxdWVfcHRyPENsaXBwZXJEYXRhPj4gbV9jbGlw
cGVyOworICAgIEhhc2hNYXA8Y29uc3QgUmVuZGVyT2JqZWN0KiwgQ2xpcHBlckRhdGE+IG1fY2xp
cHBlcjsKIH07CiAKIH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MDY1MSkKKysrIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE1LTAyLTI1ICBT
YWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xl
YW51cCBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIgY2xhc3MuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDIwMzIuCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdmcvY2xpcC1wYXRoL2NsaXAtcGF0aC1s
aW5lLXVzZS1iZWZvcmUtZGVmaW5lZC1leHBlY3RlZC5zdmc6CisgICAgICAgICogc3ZnL2NsaXAt
cGF0aC9jbGlwLXBhdGgtbGluZS11c2UtYmVmb3JlLWRlZmluZWQuc3ZnOiBTaW1wbGlmeSB0aGUg
dGVzdAorICAgICAgICBhbmQgbWFrZSBzZXBhcmF0ZSBkcmF3aW5ncyBmb3IgZGlmZmVyZW50IGNh
c2VzLgorCiAyMDE1LTAyLTI1ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgog
CiAgICAgICAgIFtXaW5dIFNraXAgdGltaW5nLW91dCB0ZXN0IGFmdGVyIHIxODA2NDYuCkluZGV4
OiBMYXlvdXRUZXN0cy9zdmcvY2xpcC1wYXRoL2NsaXAtcGF0aC1saW5lLXVzZS1iZWZvcmUtZGVm
aW5lZC1leHBlY3RlZC5zdmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2NsaXAtcGF0
aC9jbGlwLXBhdGgtbGluZS11c2UtYmVmb3JlLWRlZmluZWQtZXhwZWN0ZWQuc3ZnCShyZXZpc2lv
biAxODA2NDMpCisrKyBMYXlvdXRUZXN0cy9zdmcvY2xpcC1wYXRoL2NsaXAtcGF0aC1saW5lLXVz
ZS1iZWZvcmUtZGVmaW5lZC1leHBlY3RlZC5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTEsMzMgKzEs
NDUgQEAKLTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGlu
az0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAi
PgorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KICAgPGRlZnM+CiAgICAgPHN0eWxlPgogICAg
ICAgbGluZSwgcGF0aCB7CiAgICAgICAgIHN0cm9rZTogYmxhY2s7CisgICAgICAgIHN0cm9rZS13
aWR0aDogMzsKICAgICAgIH0KICAgICA8L3N0eWxlPgogICAgIDxjbGlwUGF0aCBpZD0iY2xpcC1j
aXJjbGUiPgotICAgICAgICA8Y2lyY2xlIGN4PSI1MCUiIGN5PSI1MCUiIHI9IjI1JSIvPgorICAg
ICAgPGNpcmNsZSBjeD0iNzUiIGN5PSI3NSIgcj0iNTAiLz4KICAgICA8L2NsaXBQYXRoPgorICAg
IDxnIGlkPSJjaXJjbGUtaW4tcmVjdCI+CisgICAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0i
MTUwIiBoZWlnaHQ9IjE1MCIgZmlsbD0ibGltZSIvPgorICAgICAgPHJlY3QgeD0iMCIgeT0iMCIg
d2lkdGg9IjE1MCIgaGVpZ2h0PSIxNTAiIGZpbGw9IndoaXRlIiBjbGlwLXBhdGg9InVybCgjY2xp
cC1jaXJjbGUpIi8+CisgICAgPC9nPgogICA8L2RlZnM+Ci0gIAotICA8cmVjdCB4PSIwIiB5PSIw
IiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJsaW1lIi8+Ci0gIDxyZWN0IHg9IjAi
IHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9IndoaXRlIiBjbGlwLXBhdGg9
InVybCgjY2xpcC1jaXJjbGUpIi8+CiAKLSAgPCEtLSBkaWFnb25hbCAtLT4KLSAgPGxpbmUgeDE9
IjE3MCIgeTE9IjMwIiB4Mj0iMzAiIHkyPSIxNzAiIGNsaXAtcGF0aD0idXJsKCNjbGlwLWNpcmNs
ZSkiLz4KKyAgPHVzZSB4bGluazpocmVmPSIjY2lyY2xlLWluLXJlY3QiIHRyYW5zZm9ybT0idHJh
bnNsYXRlKDEwLCAxMCkiPgorICAgIDxnIGNsaXAtcGF0aD0idXJsKCNjbGlwLWNpcmNsZSkiPgor
ICAgICAgPCEtLSBjZW50ZXIgbGluZXMgLS0+CisgICAgICA8cGF0aCBkPSJNMCA3NSBMMTUwIDc1
Ii8+CisgICAgICA8bGluZSB4MT0iNzUiIHkxPSIwIiB4Mj0iNzUiIHkyPSIxNTAiLz4KKyAgICA8
L2c+CisgIDwvdXNlPgogICAKLSAgPCEtLSB0b3AgYW5kIGxlZnQgbGluZXMgLS0+Ci0gIDxwYXRo
IGQ9Ik0zMCA3NSBMMTcwIDc1IiBjbGlwLXBhdGg9InVybCgjY2xpcC1jaXJjbGUpIi8+Ci0gIDxs
aW5lIHgxPSI3NSIgeTE9IjMwIiB4Mj0iNzUiIHkyPSIxNzAiIGNsaXAtcGF0aD0idXJsKCNjbGlw
LWNpcmNsZSkiLz4KKyAgPHVzZSB4bGluazpocmVmPSIjY2lyY2xlLWluLXJlY3QiIHRyYW5zZm9y
bT0idHJhbnNsYXRlKDE3MCwgMTApIj4KKyAgICA8ZyBjbGlwLXBhdGg9InVybCgjY2xpcC1jaXJj
bGUpIj4KKyAgICAgIDwhLS0gZGlhZ29uYWwgbGluZXMgLS0+CisgICAgICA8cGF0aCBkPSJNMCAw
IEwxNTAgMTUwIi8+CisgICAgICA8bGluZSB4MT0iMCIgeTE9IjE1MCIgeDI9IjE1MCIgeTI9IjAi
Lz4KKyAgICA8L2c+CisgIDwvdXNlPgogCi0gIDwhLS0gcmlnaHQgYW5kIGJvdHRvbSBsaW5lcyAt
LT4KLSAgPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xlKSI+Ci0gICAgPHBhdGggZD0iTTMw
IDEyNSBMMTcwIDEyNSIvPgotICAgIDxsaW5lIHgxPSIxMjUiIHkxPSIzMCIgeDI9IjEyNSIgeTI9
IjE3MCIvPgotICA8L2c+Ci0gIAotICA8IS0tIGNlbnRlciBsaW5lcyAtLT4KLSAgPHBhdGggZD0i
TTMwIDEwMCBMMTcwIDEwMCIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xlKSIvPgotICA8bGlu
ZSB4MT0iMTAwIiB5MT0iMzAiIHgyPSIxMDAiIHkyPSIxNzAiIGNsaXAtcGF0aD0idXJsKCNjbGlw
LWNpcmNsZSkiLz4KLSAgCisgIDwhLS0gZGlhZ29uYWxzIC0tPgorICA8dXNlIHhsaW5rOmhyZWY9
IiNjaXJjbGUtaW4tcmVjdCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzMwLCAxMCkiPgorICAgIDxn
IGNsaXAtcGF0aD0idXJsKCNjbGlwLWNpcmNsZSkiPgorICAgICAgPCEtLSB0b3AgYW5kIGxlZnQg
bGluZXMgLS0+CisgICAgICA8cGF0aCBkPSJNMCA1MCBMMTUwIDUwIi8+CisgICAgICA8bGluZSB4
MT0iNTAiIHkxPSIwIiB4Mj0iNTAiIHkyPSIxNTAiLz4KKyAgICAgIDwhLS0gYm90dG9tIGFuZCBy
aWdodCBsaW5lcyAtLT4KKyAgICAgIDxwYXRoIGQ9Ik0wIDEwMCBMMTUwIDEwMCIvPgorICAgICAg
PGxpbmUgeDE9IjEwMCIgeTE9IjAiIHgyPSIxMDAiIHkyPSIxNTAiLz4KKyAgICA8L2c+CisgIDwv
dXNlPgogPC9zdmc+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY2xpcC1wYXRoL2NsaXAtcGF0aC1s
aW5lLXVzZS1iZWZvcmUtZGVmaW5lZC5zdmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3Zn
L2NsaXAtcGF0aC9jbGlwLXBhdGgtbGluZS11c2UtYmVmb3JlLWRlZmluZWQuc3ZnCShyZXZpc2lv
biAxODA2NDMpCisrKyBMYXlvdXRUZXN0cy9zdmcvY2xpcC1wYXRoL2NsaXAtcGF0aC1saW5lLXVz
ZS1iZWZvcmUtZGVmaW5lZC5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTEsMzggKzEsNDYgQEAKLTxz
dmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDov
L3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiPgorPHN2ZyB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hsaW5rIj4KICAgPGRlZnM+CiAgICAgPHN0eWxlPgogICAgICAgbGluZSwg
cGF0aCB7CiAgICAgICAgIHN0cm9rZTogYmxhY2s7CisgICAgICAgIHN0cm9rZS13aWR0aDogMzsK
ICAgICAgIH0KICAgICA8L3N0eWxlPgorICAgIDxnIGlkPSJjaXJjbGUtaW4tcmVjdCI+CisgICAg
ICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjE1MCIgZmlsbD0ibGltZSIv
PgorICAgICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjE1MCIgaGVpZ2h0PSIxNTAiIGZpbGw9
IndoaXRlIiBjbGlwLXBhdGg9InVybCgjY2xpcC1jaXJjbGUpIi8+CisgICAgPC9nPgogICA8L2Rl
ZnM+Ci0gIAotICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBm
aWxsPSJsaW1lIi8+Ci0gIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEw
MCUiIGZpbGw9IndoaXRlIiBjbGlwLXBhdGg9InVybCgjY2xpcC1jaXJjbGUpIi8+CiAKLSAgPCEt
LSBkaWFnb25hbCAtLT4KLSAgPGxpbmUgeDE9IjE3MCIgeTE9IjMwIiB4Mj0iMzAiIHkyPSIxNzAi
IGNsaXAtcGF0aD0idXJsKCNjbGlwLWNpcmNsZSkiLz4KKyAgPHVzZSB4bGluazpocmVmPSIjY2ly
Y2xlLWluLXJlY3QiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEwLCAxMCkiPgorICAgIDwhLS0gY2Vu
dGVyIGxpbmVzIC0tPgorICAgIDxwYXRoIGQ9Ik0wIDc1IEwxNTAgNzUiIGNsaXAtcGF0aD0idXJs
KCNjbGlwLWNpcmNsZSkiLz4KKyAgICA8bGluZSB4MT0iNzUiIHkxPSIwIiB4Mj0iNzUiIHkyPSIx
NTAiIGNsaXAtcGF0aD0idXJsKCNjbGlwLWNpcmNsZSkiLz4KKyAgPC91c2U+CiAgIAotICA8IS0t
IHRvcCBhbmQgbGVmdCBsaW5lcyAtLT4KLSAgPHBhdGggZD0iTTMwIDc1IEwxNzAgNzUiIGNsaXAt
cGF0aD0idXJsKCNjbGlwLWNpcmNsZSkiLz4KLSAgPGxpbmUgeDE9Ijc1IiB5MT0iMzAiIHgyPSI3
NSIgeTI9IjE3MCIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xlKSIvPgorICA8dXNlIHhsaW5r
OmhyZWY9IiNjaXJjbGUtaW4tcmVjdCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTcwLCAxMCkiPgor
ICAgIDwhLS0gZGlhZ29uYWwgbGluZXMgLS0+CisgICAgPHBhdGggZD0iTTAgMCBMMTUwIDE1MCIg
Y2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xlKSIvPgorICAgIDxsaW5lIHgxPSIwIiB5MT0iMTUw
IiB4Mj0iMTUwIiB5Mj0iMCIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xlKSIvPgorICA8L3Vz
ZT4KIAotICA8IS0tIGJvdHRvbSBhbmQgcmlnaHQgbGluZXMgLS0+Ci0gIDxnIGNsaXAtcGF0aD0i
dXJsKCNjbGlwLWNpcmNsZSkiPgotICAgIDxwYXRoIGQ9Ik0zMCAxMjUgTDE3MCAxMjUiLz4KLSAg
ICA8bGluZSB4MT0iMTI1IiB5MT0iMzAiIHgyPSIxMjUiIHkyPSIxNzAiLz4KLSAgPC9nPgorICA8
dXNlIHhsaW5rOmhyZWY9IiNjaXJjbGUtaW4tcmVjdCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzMw
LCAxMCkiPgorICAgIDwhLS0gdG9wIGFuZCBsZWZ0IGxpbmVzIC0tPgorICAgIDxwYXRoIGQ9Ik0w
IDUwIEwxNTAgNTAiIGNsaXAtcGF0aD0idXJsKCNjbGlwLWNpcmNsZSkiLz4KKyAgICA8bGluZSB4
MT0iNTAiIHkxPSIwIiB4Mj0iNTAiIHkyPSIxNTAiIGNsaXAtcGF0aD0idXJsKCNjbGlwLWNpcmNs
ZSkiLz4KKyAgICA8ZyBjbGlwLXBhdGg9InVybCgjY2xpcC1jaXJjbGUpIj4KKyAgICAgIDwhLS0g
Ym90dG9tIGFuZCByaWdodCBsaW5lcyAtLT4KKyAgICAgIDxwYXRoIGQ9Ik0wIDEwMCBMMTUwIDEw
MCIvPgorICAgICAgPGxpbmUgeDE9IjEwMCIgeTE9IjAiIHgyPSIxMDAiIHkyPSIxNTAiLz4KKyAg
ICA8L2c+CisgIDwvdXNlPgogICAKICAgPGRlZnM+CiAgICAgPGNsaXBQYXRoIGlkPSJjbGlwLWNp
cmNsZSI+Ci0gICAgICA8Y2lyY2xlIGN4PSI1MCUiIGN5PSI1MCUiIHI9IjUwJSIgY2xpcC1wYXRo
PSJ1cmwoI2NsaXAtc21hbGwtY2lyY2xlKSIvPgorICAgICAgPGNpcmNsZSBjeD0iNzUiIGN5PSI3
NSIgcj0iNzUiIGNsaXAtcGF0aD0idXJsKCNjbGlwLXNtYWxsLWNpcmNsZSkiLz4KICAgICA8L2Ns
aXBQYXRoPgogICAgIDxjbGlwUGF0aCBpZD0iY2xpcC1zbWFsbC1jaXJjbGUiPgotICAgICAgPGNp
cmNsZSBjeD0iNTAlIiBjeT0iNTAlIiByPSIyNSUiLz4KKyAgICAgIDxjaXJjbGUgY3g9Ijc1IiBj
eT0iNzUiIHI9IjUwIi8+CiAgICAgPC9jbGlwUGF0aD4KICAgPC9kZWZzPgotCi0gIDwhLS0gY2Vu
dGVyIGxpbmVzIC0tPgotICA8cGF0aCBkPSJNMzAgMTAwIEwxNzAgMTAwIiBjbGlwLXBhdGg9InVy
bCgjY2xpcC1jaXJjbGUpIi8+Ci0gIDxsaW5lIHgxPSIxMDAiIHkxPSIzMCIgeDI9IjEwMCIgeTI9
IjE3MCIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xlKSIvPgogPC9zdmc+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247427</attachid>
            <date>2015-02-26 09:09:20 -0800</date>
            <delta_ts>2015-02-26 09:48:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142032-20150226090906.patch</filename>
            <type>text/plain</type>
            <size>14296</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MDY1MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDE1LTAyLTI1ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW51cCBS
ZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIgY2xhc3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDIwMzIuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCisgICAgICAgIAorICAgICAgICBUaGlzIGlzIGEgZm9sbG93IHVwIGZvciByMTgw
NjQzOiA8aHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTgwNjQzPi4KKyAgICAgICAg
SXQgaW5jbHVkZXMgY2xlYW51cCBmb3IgUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyIGNsYXNzLgor
CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyOjphcHBseUNsaXBwaW5n
VG9Db250ZXh0KTogQ2hhbmdlIHRoZSAKKyAgICAgICAgdHlwZSBvZiB0aGUgdmFyaWFibGUgY2xp
cHBlckRhdGEgZnJvbSBiZWluZyBDbGlwcGVyRGF0YSogdG8gYmUgQ2xpcHBlckRhdGEmLgorICAg
ICAgICAKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcjo6ZHJhd0Nv
bnRlbnRJbnRvTWFza0ltYWdlKTogQ2hhbmdlIHRoZQorICAgICAgICB0eXBlIG9mIHRoZSBwYXJh
bWV0ZXIgY2xpcHBlckRhdGEgZnJvbSBiZWluZyBDbGlwcGVyRGF0YSogdG8gYmUgCisgICAgICAg
IGNvbnN0IENsaXBwZXJEYXRhJi4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
VkdSZXNvdXJjZUNsaXBwZXI6OmFkZFJlbmRlcmVyVG9DbGlwcGVyKTogSW5zdGVhZCBvZiBkb2lu
ZworICAgICAgICBkb3VibGUgaGFzaCB0YWJsZSBsb29rdXBzIGJ5IGNhbGxpbmcgSGFzaE1hcDo6
Y29udGFpbnMoKSBhbmQgdGhlbiBIYXNoTWFwOjpnZXQoKSwKKyAgICAgICAgd2UgY2FuIHVzZSBI
YXNoTWFwOjphZGQoKSBpbnN0ZWFkLgorICAgICAgICAKKyAgICAgICAgKiByZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5oOiBDaGFuZ2UgbV9jbGlwcGVyIHRvIGJlIG9mIHR5
cGUKKyAgICAgICAgSGFzaE1hcDxjb25zdCBSZW5kZXJPYmplY3QqLCBDbGlwcGVyRGF0YT4gdG8g
bWFrZSBhZGRSZW5kZXJlclRvQ2xpcHBlcigpIHNpbXBsZXIuCisKIDIwMTUtMDItMjUgIEd5dXlv
dW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBSZW1vdmUgdW5u
ZWNlc3NhcnkgRGF0YWJhc2VGb29UYXNrOjpjcmVhdGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5jcHAJ
KHJldmlzaW9uIDE4MDY0MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUmVzb3VyY2VDbGlwcGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMwLDIzICsxMzAsMjIg
QEAgYm9vbCBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXI6OnBhdGhPbmx5QwogYm9vbCBSZW5kZXJT
VkdSZXNvdXJjZUNsaXBwZXI6OmFwcGx5Q2xpcHBpbmdUb0NvbnRleHQoUmVuZGVyRWxlbWVudCYg
cmVuZGVyZXIsIGNvbnN0IEZsb2F0UmVjdCYgb2JqZWN0Qm91bmRpbmdCb3gsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBGbG9hdFJl
Y3QmIHJlcGFpbnRSZWN0LCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQpCiB7Ci0gICAgQ2xpcHBl
ckRhdGEqIGNsaXBwZXJEYXRhID0gYWRkUmVuZGVyZXJUb0NsaXBwZXIocmVuZGVyZXIpOwotICAg
IEFTU0VSVChjbGlwcGVyRGF0YSk7Ci0gICAgYm9vbCBzaG91bGRDcmVhdGVDbGlwRGF0YSA9ICFj
bGlwcGVyRGF0YS0+Y2xpcE1hc2tJbWFnZTsKKyAgICBDbGlwcGVyTWFza0ltYWdlJiBjbGlwcGVy
TWFza0ltYWdlID0gYWRkUmVuZGVyZXJUb0NsaXBwZXIocmVuZGVyZXIpOworICAgIGJvb2wgc2hv
dWxkQ3JlYXRlQ2xpcHBlck1hc2tJbWFnZSA9ICFjbGlwcGVyTWFza0ltYWdlOwogCiAgICAgQWZm
aW5lVHJhbnNmb3JtIGFuaW1hdGVkTG9jYWxUcmFuc2Zvcm0gPSBjbGlwUGF0aEVsZW1lbnQoKS5h
bmltYXRlZExvY2FsVHJhbnNmb3JtKCk7CiAKLSAgICBpZiAoc2hvdWxkQ3JlYXRlQ2xpcERhdGEg
JiYgcGF0aE9ubHlDbGlwcGluZyhjb250ZXh0LCBhbmltYXRlZExvY2FsVHJhbnNmb3JtLCBvYmpl
Y3RCb3VuZGluZ0JveCkpCisgICAgaWYgKHNob3VsZENyZWF0ZUNsaXBwZXJNYXNrSW1hZ2UgJiYg
cGF0aE9ubHlDbGlwcGluZyhjb250ZXh0LCBhbmltYXRlZExvY2FsVHJhbnNmb3JtLCBvYmplY3RC
b3VuZGluZ0JveCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgQWZmaW5lVHJhbnNmb3Jt
IGFic29sdXRlVHJhbnNmb3JtOwogICAgIFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNhbGN1bGF0ZVRy
YW5zZm9ybWF0aW9uVG9PdXRlcm1vc3RDb29yZGluYXRlU3lzdGVtKHJlbmRlcmVyLCBhYnNvbHV0
ZVRyYW5zZm9ybSk7CiAKLSAgICBpZiAoc2hvdWxkQ3JlYXRlQ2xpcERhdGEgJiYgIXJlcGFpbnRS
ZWN0LmlzRW1wdHkoKSkgewotICAgICAgICBpZiAoIVNWR1JlbmRlcmluZ0NvbnRleHQ6OmNyZWF0
ZUltYWdlQnVmZmVyKHJlcGFpbnRSZWN0LCBhYnNvbHV0ZVRyYW5zZm9ybSwgY2xpcHBlckRhdGEt
PmNsaXBNYXNrSW1hZ2UsIENvbG9yU3BhY2VEZXZpY2VSR0IsIFVuYWNjZWxlcmF0ZWQpKQorICAg
IGlmIChzaG91bGRDcmVhdGVDbGlwcGVyTWFza0ltYWdlICYmICFyZXBhaW50UmVjdC5pc0VtcHR5
KCkpIHsKKyAgICAgICAgaWYgKCFTVkdSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVJbWFnZUJ1ZmZl
cihyZXBhaW50UmVjdCwgYWJzb2x1dGVUcmFuc2Zvcm0sIGNsaXBwZXJNYXNrSW1hZ2UsIENvbG9y
U3BhY2VEZXZpY2VSR0IsIFVuYWNjZWxlcmF0ZWQpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgICAgIEdyYXBoaWNzQ29udGV4dCogbWFza0NvbnRleHQgPSBjbGlwcGVyRGF0YS0+
Y2xpcE1hc2tJbWFnZS0+Y29udGV4dCgpOworICAgICAgICBHcmFwaGljc0NvbnRleHQqIG1hc2tD
b250ZXh0ID0gY2xpcHBlck1hc2tJbWFnZS0+Y29udGV4dCgpOwogICAgICAgICBBU1NFUlQobWFz
a0NvbnRleHQpOwogCiAgICAgICAgIG1hc2tDb250ZXh0LT5jb25jYXRDVE0oYW5pbWF0ZWRMb2Nh
bFRyYW5zZm9ybSk7CkBAIC0xNjEsMjggKzE2MCwyNyBAQCBib29sIFJlbmRlclNWR1Jlc291cmNl
Q2xpcHBlcjo6YXBwbHlDbGlwCiAgICAgICAgICAgICBpZiAoIWNsaXBwZXItPmFwcGx5Q2xpcHBp
bmdUb0NvbnRleHQoKnRoaXMsIG9iamVjdEJvdW5kaW5nQm94LCByZXBhaW50UmVjdCwgbWFza0Nv
bnRleHQpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICAgICAgc3Vj
Y2VlZGVkID0gZHJhd0NvbnRlbnRJbnRvTWFza0ltYWdlKGNsaXBwZXJEYXRhLCBvYmplY3RCb3Vu
ZGluZ0JveCk7CisgICAgICAgICAgICBzdWNjZWVkZWQgPSBkcmF3Q29udGVudEludG9NYXNrSW1h
Z2UoY2xpcHBlck1hc2tJbWFnZSwgb2JqZWN0Qm91bmRpbmdCb3gpOwogICAgICAgICAgICAgLy8g
VGhlIGNvbnRleHQgcmVzdG9yZSBhcHBsaWVzIHRoZSBjbGlwcGluZyBvbiBub24tQ0cgcGxhdGZv
cm1zLgogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHN1Y2NlZWRlZCA9IGRyYXdDb250ZW50
SW50b01hc2tJbWFnZShjbGlwcGVyRGF0YSwgb2JqZWN0Qm91bmRpbmdCb3gpOworICAgICAgICAg
ICAgc3VjY2VlZGVkID0gZHJhd0NvbnRlbnRJbnRvTWFza0ltYWdlKGNsaXBwZXJNYXNrSW1hZ2Us
IG9iamVjdEJvdW5kaW5nQm94KTsKIAogICAgICAgICBpZiAoIXN1Y2NlZWRlZCkKLSAgICAgICAg
ICAgIGNsaXBwZXJEYXRhLT5jbGlwTWFza0ltYWdlLnJlc2V0KCk7CisgICAgICAgICAgICBjbGlw
cGVyTWFza0ltYWdlLnJlc2V0KCk7CiAgICAgfQogCi0gICAgaWYgKCFjbGlwcGVyRGF0YS0+Y2xp
cE1hc2tJbWFnZSkKKyAgICBpZiAoIWNsaXBwZXJNYXNrSW1hZ2UpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNsaXBUb0ltYWdlQnVmZmVyKGNvbnRl
eHQsIGFic29sdXRlVHJhbnNmb3JtLCByZXBhaW50UmVjdCwgY2xpcHBlckRhdGEtPmNsaXBNYXNr
SW1hZ2UsIHNob3VsZENyZWF0ZUNsaXBEYXRhKTsKKyAgICBTVkdSZW5kZXJpbmdDb250ZXh0Ojpj
bGlwVG9JbWFnZUJ1ZmZlcihjb250ZXh0LCBhYnNvbHV0ZVRyYW5zZm9ybSwgcmVwYWludFJlY3Qs
IGNsaXBwZXJNYXNrSW1hZ2UsIHNob3VsZENyZWF0ZUNsaXBwZXJNYXNrSW1hZ2UpOwogICAgIHJl
dHVybiB0cnVlOwogfQogCi1ib29sIFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcjo6ZHJhd0NvbnRl
bnRJbnRvTWFza0ltYWdlKENsaXBwZXJEYXRhKiBjbGlwcGVyRGF0YSwgY29uc3QgRmxvYXRSZWN0
JiBvYmplY3RCb3VuZGluZ0JveCkKK2Jvb2wgUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyOjpkcmF3
Q29udGVudEludG9NYXNrSW1hZ2UoY29uc3QgQ2xpcHBlck1hc2tJbWFnZSYgY2xpcHBlck1hc2tJ
bWFnZSwgY29uc3QgRmxvYXRSZWN0JiBvYmplY3RCb3VuZGluZ0JveCkKIHsKLSAgICBBU1NFUlQo
Y2xpcHBlckRhdGEpOwotICAgIEFTU0VSVChjbGlwcGVyRGF0YS0+Y2xpcE1hc2tJbWFnZSk7Cisg
ICAgQVNTRVJUKGNsaXBwZXJNYXNrSW1hZ2UpOwogCi0gICAgR3JhcGhpY3NDb250ZXh0KiBtYXNr
Q29udGV4dCA9IGNsaXBwZXJEYXRhLT5jbGlwTWFza0ltYWdlLT5jb250ZXh0KCk7CisgICAgR3Jh
cGhpY3NDb250ZXh0KiBtYXNrQ29udGV4dCA9IGNsaXBwZXJNYXNrSW1hZ2UtPmNvbnRleHQoKTsK
ICAgICBBU1NFUlQobWFza0NvbnRleHQpOwogCiAgICAgQWZmaW5lVHJhbnNmb3JtIG1hc2tDb250
ZW50VHJhbnNmb3JtYXRpb247CkBAIC0yMzMsNyArMjMxLDcgQEAgYm9vbCBSZW5kZXJTVkdSZXNv
dXJjZUNsaXBwZXI6OmRyYXdDb250ZQogICAgICAgICAvLyBJbiB0aGUgY2FzZSBvZiBhIDx1c2U+
IGVsZW1lbnQsIHdlIG9idGFpbmVkIGl0cyByZW5kZXJlcmUgYWJvdmUsIHRvIHJldHJpZXZlIGl0
cyBjbGlwUnVsZS4KICAgICAgICAgLy8gV2UgaGF2ZSB0byBwYXNzIHRoZSA8dXNlPiByZW5kZXJl
ciBpdHNlbGYgdG8gcmVuZGVyU3VidHJlZVRvSW1hZ2VCdWZmZXIoKSB0byBhcHBseSBpdCdzIHgv
eS90cmFuc2Zvcm0vZXRjLiB2YWx1ZXMgd2hlbiByZW5kZXJpbmcuCiAgICAgICAgIC8vIFNvIGlm
IGlzVXNlRWxlbWVudCBpcyB0cnVlLCByZWZldGNoIHRoZSBjaGlsZE5vZGUtPnJlbmRlcmVyKCks
IGFzIHJlbmRlcmVyIGdvdCBvdmVycmlkZW4gYWJvdmUuCi0gICAgICAgIFNWR1JlbmRlcmluZ0Nv
bnRleHQ6OnJlbmRlclN1YnRyZWVUb0ltYWdlQnVmZmVyKGNsaXBwZXJEYXRhLT5jbGlwTWFza0lt
YWdlLmdldCgpLCBpc1VzZUVsZW1lbnQgPyAqY2hpbGQucmVuZGVyZXIoKSA6ICpyZW5kZXJlciwg
bWFza0NvbnRlbnRUcmFuc2Zvcm1hdGlvbik7CisgICAgICAgIFNWR1JlbmRlcmluZ0NvbnRleHQ6
OnJlbmRlclN1YnRyZWVUb0ltYWdlQnVmZmVyKGNsaXBwZXJNYXNrSW1hZ2UuZ2V0KCksIGlzVXNl
RWxlbWVudCA/ICpjaGlsZC5yZW5kZXJlcigpIDogKnJlbmRlcmVyLCBtYXNrQ29udGVudFRyYW5z
Zm9ybWF0aW9uKTsKICAgICB9CiAKICAgICB2aWV3KCkuZnJhbWVWaWV3KCkuc2V0UGFpbnRCZWhh
dmlvcihvbGRCZWhhdmlvcik7CkBAIC0yNTcsMTEgKzI1NSw5IEBAIHZvaWQgUmVuZGVyU1ZHUmVz
b3VyY2VDbGlwcGVyOjpjYWxjdWxhdGUKICAgICBtX2NsaXBCb3VuZGFyaWVzID0gY2xpcFBhdGhF
bGVtZW50KCkuYW5pbWF0ZWRMb2NhbFRyYW5zZm9ybSgpLm1hcFJlY3QobV9jbGlwQm91bmRhcmll
cyk7CiB9CiAKLUNsaXBwZXJEYXRhKiBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXI6OmFkZFJlbmRl
cmVyVG9DbGlwcGVyKGNvbnN0IFJlbmRlck9iamVjdCYgb2JqZWN0KQorQ2xpcHBlck1hc2tJbWFn
ZSYgUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyOjphZGRSZW5kZXJlclRvQ2xpcHBlcihjb25zdCBS
ZW5kZXJPYmplY3QmIG9iamVjdCkKIHsKLSAgICBpZiAoIW1fY2xpcHBlci5jb250YWlucygmb2Jq
ZWN0KSkKLSAgICAgICAgbV9jbGlwcGVyLnNldCgmb2JqZWN0LCBzdGQ6Om1ha2VfdW5pcXVlPENs
aXBwZXJEYXRhPigpKTsKLSAgICByZXR1cm4gbV9jbGlwcGVyLmdldCgmb2JqZWN0KTsKKyAgICBy
ZXR1cm4gbV9jbGlwcGVyLmFkZCgmb2JqZWN0LCBDbGlwcGVyTWFza0ltYWdlKCkpLml0ZXJhdG9y
LT52YWx1ZTsKIH0KIAogYm9vbCBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXI6OmhpdFRlc3RDbGlw
Q29udGVudChjb25zdCBGbG9hdFJlY3QmIG9iamVjdEJvdW5kaW5nQm94LCBjb25zdCBGbG9hdFBv
aW50JiBub2RlQXRQb2ludCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuaAkocmV2aXNpb24gMTgwNjQzKQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtMzEsMTEgKzMxLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1zdHJ1Y3QgQ2xpcHBlckRhdGEgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwot
cHVibGljOgotICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gY2xpcE1hc2tJbWFnZTsK
LX07Cit0eXBlZGVmIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gQ2xpcHBlck1hc2tJbWFn
ZTsKIAogY2xhc3MgUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyIGZpbmFsIDogcHVibGljIFJlbmRl
clNWR1Jlc291cmNlQ29udGFpbmVyIHsKIHB1YmxpYzoKQEAgLTY5LDEyICs2NSwxMiBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuICJSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIiOyB9CiAKICAgICBib29sIHBhdGhP
bmx5Q2xpcHBpbmcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29u
c3QgRmxvYXRSZWN0Jik7Ci0gICAgYm9vbCBkcmF3Q29udGVudEludG9NYXNrSW1hZ2UoQ2xpcHBl
ckRhdGEqLCBjb25zdCBGbG9hdFJlY3QmIG9iamVjdEJvdW5kaW5nQm94KTsKKyAgICBib29sIGRy
YXdDb250ZW50SW50b01hc2tJbWFnZShjb25zdCBDbGlwcGVyTWFza0ltYWdlJiwgY29uc3QgRmxv
YXRSZWN0JiBvYmplY3RCb3VuZGluZ0JveCk7CiAgICAgdm9pZCBjYWxjdWxhdGVDbGlwQ29udGVu
dFJlcGFpbnRSZWN0KCk7Ci0gICAgQ2xpcHBlckRhdGEqIGFkZFJlbmRlcmVyVG9DbGlwcGVyKGNv
bnN0IFJlbmRlck9iamVjdCYpOworICAgIENsaXBwZXJNYXNrSW1hZ2UmIGFkZFJlbmRlcmVyVG9D
bGlwcGVyKGNvbnN0IFJlbmRlck9iamVjdCYpOwogCiAgICAgRmxvYXRSZWN0IG1fY2xpcEJvdW5k
YXJpZXM7Ci0gICAgSGFzaE1hcDxjb25zdCBSZW5kZXJPYmplY3QqLCBzdGQ6OnVuaXF1ZV9wdHI8
Q2xpcHBlckRhdGE+PiBtX2NsaXBwZXI7CisgICAgSGFzaE1hcDxjb25zdCBSZW5kZXJPYmplY3Qq
LCBDbGlwcGVyTWFza0ltYWdlPiBtX2NsaXBwZXI7CiB9OwogCiB9CkluZGV4OiBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lv
biAxODA2NTEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxNCBAQAorMjAxNS0wMi0yNSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FA
YXBwbGUuY29tPgorCisgICAgICAgIENsZWFudXAgUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyIGNs
YXNzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQy
MDMyLgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogc3Zn
L2NsaXAtcGF0aC9jbGlwLXBhdGgtbGluZS11c2UtYmVmb3JlLWRlZmluZWQtZXhwZWN0ZWQuc3Zn
OgorICAgICAgICAqIHN2Zy9jbGlwLXBhdGgvY2xpcC1wYXRoLWxpbmUtdXNlLWJlZm9yZS1kZWZp
bmVkLnN2ZzogU2ltcGxpZnkgdGhlIHRlc3QKKyAgICAgICAgYW5kIG1ha2Ugc2VwYXJhdGUgZHJh
d2luZ3MgZm9yIGRpZmZlcmVudCBjYXNlcy4KKwogMjAxNS0wMi0yNSAgQnJlbnQgRnVsZ2hhbSAg
PGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBTa2lwIHRpbWluZy1vdXQgdGVz
dCBhZnRlciByMTgwNjQ2LgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2NsaXAtcGF0aC9jbGlwLXBh
dGgtbGluZS11c2UtYmVmb3JlLWRlZmluZWQtZXhwZWN0ZWQuc3ZnCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N2Zy9jbGlwLXBhdGgvY2xpcC1wYXRoLWxpbmUtdXNlLWJlZm9yZS1kZWZpbmVk
LWV4cGVjdGVkLnN2ZwkocmV2aXNpb24gMTgwNjQzKQorKysgTGF5b3V0VGVzdHMvc3ZnL2NsaXAt
cGF0aC9jbGlwLXBhdGgtbGluZS11c2UtYmVmb3JlLWRlZmluZWQtZXhwZWN0ZWQuc3ZnCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMzICsxLDQ0IEBACi08c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9y
Zy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdp
ZHRoPSIyMDAiIGhlaWdodD0iMjAwIj4KKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIw
MDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgIDxk
ZWZzPgogICAgIDxzdHlsZT4KICAgICAgIGxpbmUsIHBhdGggewogICAgICAgICBzdHJva2U6IGJs
YWNrOworICAgICAgICBzdHJva2Utd2lkdGg6IDM7CiAgICAgICB9CiAgICAgPC9zdHlsZT4KICAg
ICA8Y2xpcFBhdGggaWQ9ImNsaXAtY2lyY2xlIj4KLSAgICAgICAgPGNpcmNsZSBjeD0iNTAlIiBj
eT0iNTAlIiByPSIyNSUiLz4KKyAgICAgIDxjaXJjbGUgY3g9Ijc1IiBjeT0iNzUiIHI9IjUwIi8+
CiAgICAgPC9jbGlwUGF0aD4KKyAgICA8ZyBpZD0iY2lyY2xlLWluLXJlY3QiPgorICAgICAgPHJl
Y3QgeD0iMCIgeT0iMCIgd2lkdGg9IjE1MCIgaGVpZ2h0PSIxNTAiIGZpbGw9ImxpbWUiLz4KKyAg
ICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxNTAiIGhlaWdodD0iMTUwIiBmaWxsPSJ3aGl0
ZSIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xlKSIvPgorICAgIDwvZz4KICAgPC9kZWZzPgot
ICAKLSAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0i
bGltZSIvPgotICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBm
aWxsPSJ3aGl0ZSIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xlKSIvPgogCi0gIDwhLS0gZGlh
Z29uYWwgLS0+Ci0gIDxsaW5lIHgxPSIxNzAiIHkxPSIzMCIgeDI9IjMwIiB5Mj0iMTcwIiBjbGlw
LXBhdGg9InVybCgjY2xpcC1jaXJjbGUpIi8+CisgIDx1c2UgeGxpbms6aHJlZj0iI2NpcmNsZS1p
bi1yZWN0IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMCwgMTApIj4KKyAgICA8ZyBjbGlwLXBhdGg9
InVybCgjY2xpcC1jaXJjbGUpIj4KKyAgICAgIDwhLS0gY2VudGVyIGxpbmVzIC0tPgorICAgICAg
PHBhdGggZD0iTTAgNzUgTDE1MCA3NSIvPgorICAgICAgPGxpbmUgeDE9Ijc1IiB5MT0iMCIgeDI9
Ijc1IiB5Mj0iMTUwIi8+CisgICAgPC9nPgorICA8L3VzZT4KICAgCi0gIDwhLS0gdG9wIGFuZCBs
ZWZ0IGxpbmVzIC0tPgotICA8cGF0aCBkPSJNMzAgNzUgTDE3MCA3NSIgY2xpcC1wYXRoPSJ1cmwo
I2NsaXAtY2lyY2xlKSIvPgotICA8bGluZSB4MT0iNzUiIHkxPSIzMCIgeDI9Ijc1IiB5Mj0iMTcw
IiBjbGlwLXBhdGg9InVybCgjY2xpcC1jaXJjbGUpIi8+CisgIDx1c2UgeGxpbms6aHJlZj0iI2Np
cmNsZS1pbi1yZWN0IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNzAsIDEwKSI+CisgICAgPGcgY2xp
cC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xlKSI+CisgICAgICA8IS0tIGRpYWdvbmFsIGxpbmVzIC0t
PgorICAgICAgPHBhdGggZD0iTTAgMCBMMTUwIDE1MCIvPgorICAgICAgPGxpbmUgeDE9IjAiIHkx
PSIxNTAiIHgyPSIxNTAiIHkyPSIwIi8+CisgICAgPC9nPgorICA8L3VzZT4KIAotICA8IS0tIHJp
Z2h0IGFuZCBib3R0b20gbGluZXMgLS0+Ci0gIDxnIGNsaXAtcGF0aD0idXJsKCNjbGlwLWNpcmNs
ZSkiPgotICAgIDxwYXRoIGQ9Ik0zMCAxMjUgTDE3MCAxMjUiLz4KLSAgICA8bGluZSB4MT0iMTI1
IiB5MT0iMzAiIHgyPSIxMjUiIHkyPSIxNzAiLz4KLSAgPC9nPgotICAKLSAgPCEtLSBjZW50ZXIg
bGluZXMgLS0+Ci0gIDxwYXRoIGQ9Ik0zMCAxMDAgTDE3MCAxMDAiIGNsaXAtcGF0aD0idXJsKCNj
bGlwLWNpcmNsZSkiLz4KLSAgPGxpbmUgeDE9IjEwMCIgeTE9IjMwIiB4Mj0iMTAwIiB5Mj0iMTcw
IiBjbGlwLXBhdGg9InVybCgjY2xpcC1jaXJjbGUpIi8+Ci0gIAorICA8dXNlIHhsaW5rOmhyZWY9
IiNjaXJjbGUtaW4tcmVjdCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzMwLCAxMCkiPgorICAgIDxn
IGNsaXAtcGF0aD0idXJsKCNjbGlwLWNpcmNsZSkiPgorICAgICAgPCEtLSB0b3AgYW5kIGxlZnQg
bGluZXMgLS0+CisgICAgICA8cGF0aCBkPSJNMCA1MCBMMTUwIDUwIi8+CisgICAgICA8bGluZSB4
MT0iNTAiIHkxPSIwIiB4Mj0iNTAiIHkyPSIxNTAiLz4KKyAgICAgIDwhLS0gYm90dG9tIGFuZCBy
aWdodCBsaW5lcyAtLT4KKyAgICAgIDxwYXRoIGQ9Ik0wIDEwMCBMMTUwIDEwMCIvPgorICAgICAg
PGxpbmUgeDE9IjEwMCIgeTE9IjAiIHgyPSIxMDAiIHkyPSIxNTAiLz4KKyAgICA8L2c+CisgIDwv
dXNlPgogPC9zdmc+CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY2xpcC1wYXRoL2NsaXAtcGF0aC1s
aW5lLXVzZS1iZWZvcmUtZGVmaW5lZC5zdmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3Zn
L2NsaXAtcGF0aC9jbGlwLXBhdGgtbGluZS11c2UtYmVmb3JlLWRlZmluZWQuc3ZnCShyZXZpc2lv
biAxODA2NDMpCisrKyBMYXlvdXRUZXN0cy9zdmcvY2xpcC1wYXRoL2NsaXAtcGF0aC1saW5lLXVz
ZS1iZWZvcmUtZGVmaW5lZC5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTEsMzggKzEsNDYgQEAKLTxz
dmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDov
L3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiPgorPHN2ZyB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hsaW5rIj4KICAgPGRlZnM+CiAgICAgPHN0eWxlPgogICAgICAgbGluZSwg
cGF0aCB7CiAgICAgICAgIHN0cm9rZTogYmxhY2s7CisgICAgICAgIHN0cm9rZS13aWR0aDogMzsK
ICAgICAgIH0KICAgICA8L3N0eWxlPgorICAgIDxnIGlkPSJjaXJjbGUtaW4tcmVjdCI+CisgICAg
ICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjE1MCIgZmlsbD0ibGltZSIv
PgorICAgICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjE1MCIgaGVpZ2h0PSIxNTAiIGZpbGw9
IndoaXRlIiBjbGlwLXBhdGg9InVybCgjY2xpcC1jaXJjbGUpIi8+CisgICAgPC9nPgogICA8L2Rl
ZnM+Ci0gIAotICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBm
aWxsPSJsaW1lIi8+Ci0gIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEw
MCUiIGZpbGw9IndoaXRlIiBjbGlwLXBhdGg9InVybCgjY2xpcC1jaXJjbGUpIi8+CiAKLSAgPCEt
LSBkaWFnb25hbCAtLT4KLSAgPGxpbmUgeDE9IjE3MCIgeTE9IjMwIiB4Mj0iMzAiIHkyPSIxNzAi
IGNsaXAtcGF0aD0idXJsKCNjbGlwLWNpcmNsZSkiLz4KKyAgPHVzZSB4bGluazpocmVmPSIjY2ly
Y2xlLWluLXJlY3QiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEwLCAxMCkiPgorICAgIDwhLS0gY2Vu
dGVyIGxpbmVzIC0tPgorICAgIDxwYXRoIGQ9Ik0wIDc1IEwxNTAgNzUiIGNsaXAtcGF0aD0idXJs
KCNjbGlwLWNpcmNsZSkiLz4KKyAgICA8bGluZSB4MT0iNzUiIHkxPSIwIiB4Mj0iNzUiIHkyPSIx
NTAiIGNsaXAtcGF0aD0idXJsKCNjbGlwLWNpcmNsZSkiLz4KKyAgPC91c2U+CiAgIAotICA8IS0t
IHRvcCBhbmQgbGVmdCBsaW5lcyAtLT4KLSAgPHBhdGggZD0iTTMwIDc1IEwxNzAgNzUiIGNsaXAt
cGF0aD0idXJsKCNjbGlwLWNpcmNsZSkiLz4KLSAgPGxpbmUgeDE9Ijc1IiB5MT0iMzAiIHgyPSI3
NSIgeTI9IjE3MCIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xlKSIvPgorICA8dXNlIHhsaW5r
OmhyZWY9IiNjaXJjbGUtaW4tcmVjdCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTcwLCAxMCkiPgor
ICAgIDwhLS0gZGlhZ29uYWwgbGluZXMgLS0+CisgICAgPHBhdGggZD0iTTAgMCBMMTUwIDE1MCIg
Y2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xlKSIvPgorICAgIDxsaW5lIHgxPSIwIiB5MT0iMTUw
IiB4Mj0iMTUwIiB5Mj0iMCIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xlKSIvPgorICA8L3Vz
ZT4KIAotICA8IS0tIGJvdHRvbSBhbmQgcmlnaHQgbGluZXMgLS0+Ci0gIDxnIGNsaXAtcGF0aD0i
dXJsKCNjbGlwLWNpcmNsZSkiPgotICAgIDxwYXRoIGQ9Ik0zMCAxMjUgTDE3MCAxMjUiLz4KLSAg
ICA8bGluZSB4MT0iMTI1IiB5MT0iMzAiIHgyPSIxMjUiIHkyPSIxNzAiLz4KLSAgPC9nPgorICA8
dXNlIHhsaW5rOmhyZWY9IiNjaXJjbGUtaW4tcmVjdCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzMw
LCAxMCkiPgorICAgIDwhLS0gdG9wIGFuZCBsZWZ0IGxpbmVzIC0tPgorICAgIDxwYXRoIGQ9Ik0w
IDUwIEwxNTAgNTAiIGNsaXAtcGF0aD0idXJsKCNjbGlwLWNpcmNsZSkiLz4KKyAgICA8bGluZSB4
MT0iNTAiIHkxPSIwIiB4Mj0iNTAiIHkyPSIxNTAiIGNsaXAtcGF0aD0idXJsKCNjbGlwLWNpcmNs
ZSkiLz4KKyAgICA8ZyBjbGlwLXBhdGg9InVybCgjY2xpcC1jaXJjbGUpIj4KKyAgICAgIDwhLS0g
Ym90dG9tIGFuZCByaWdodCBsaW5lcyAtLT4KKyAgICAgIDxwYXRoIGQ9Ik0wIDEwMCBMMTUwIDEw
MCIvPgorICAgICAgPGxpbmUgeDE9IjEwMCIgeTE9IjAiIHgyPSIxMDAiIHkyPSIxNTAiLz4KKyAg
ICA8L2c+CisgIDwvdXNlPgogICAKICAgPGRlZnM+CiAgICAgPGNsaXBQYXRoIGlkPSJjbGlwLWNp
cmNsZSI+Ci0gICAgICA8Y2lyY2xlIGN4PSI1MCUiIGN5PSI1MCUiIHI9IjUwJSIgY2xpcC1wYXRo
PSJ1cmwoI2NsaXAtc21hbGwtY2lyY2xlKSIvPgorICAgICAgPGNpcmNsZSBjeD0iNzUiIGN5PSI3
NSIgcj0iNzUiIGNsaXAtcGF0aD0idXJsKCNjbGlwLXNtYWxsLWNpcmNsZSkiLz4KICAgICA8L2Ns
aXBQYXRoPgogICAgIDxjbGlwUGF0aCBpZD0iY2xpcC1zbWFsbC1jaXJjbGUiPgotICAgICAgPGNp
cmNsZSBjeD0iNTAlIiBjeT0iNTAlIiByPSIyNSUiLz4KKyAgICAgIDxjaXJjbGUgY3g9Ijc1IiBj
eT0iNzUiIHI9IjUwIi8+CiAgICAgPC9jbGlwUGF0aD4KICAgPC9kZWZzPgotCi0gIDwhLS0gY2Vu
dGVyIGxpbmVzIC0tPgotICA8cGF0aCBkPSJNMzAgMTAwIEwxNzAgMTAwIiBjbGlwLXBhdGg9InVy
bCgjY2xpcC1jaXJjbGUpIi8+Ci0gIDxsaW5lIHgxPSIxMDAiIHkxPSIzMCIgeDI9IjEwMCIgeTI9
IjE3MCIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xlKSIvPgogPC9zdmc+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247429</attachid>
            <date>2015-02-26 09:48:31 -0800</date>
            <delta_ts>2015-02-26 10:37:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142032-20150226094817.patch</filename>
            <type>text/plain</type>
            <size>14268</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MDY1MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDE1LTAyLTI1ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW51cCBS
ZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIgY2xhc3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDIwMzIuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCisgICAgICAgIAorICAgICAgICBUaGlzIGlzIGEgZm9sbG93IHVwIGZvciByMTgw
NjQzOiA8aHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTgwNjQzPi4KKyAgICAgICAg
SXQgaW5jbHVkZXMgY2xlYW51cCBmb3IgUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyIGNsYXNzLgor
CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyOjphcHBseUNsaXBwaW5n
VG9Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcjo6
ZHJhd0NvbnRlbnRJbnRvTWFza0ltYWdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlQ2xpcHBlci5oOiBDaGFuZ2UgQ2xpcHBlckRhdGEgdG8gYmUgYQorICAgICAg
ICB0eXBlZGVmIGluc3RlYWQgb2YgYSBjbGFzcyBhbmQgcmVuYW1lIGl0IHRvIENsaXBwZXJNYXNr
SW1hZ2UuIFRoZSBwdXJwb3NlCisgICAgICAgIG9mIGhhdmluZyBpdCBhIGNsYXNzIGV2ZW4gdGhv
dWdoIGl0IGluY2x1ZGVzIG9ubHkgb25lIG1lbWJlciB3YXMgYmVjYXVzZQorICAgICAgICB3ZSB3
YW50ZWQgaXQgdG8gYmUgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQuIFdlIGRvIG5vdCBuZWVkIHRv
IGFsbG9jYXRlIGl0CisgICAgICAgIGFzIGEgc2VwYXJhdGUgb2JqZWN0IG9uIHRoZSBoZWFwIGFu
eW1vcmUuCisgICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VDbGlw
cGVyOjphZGRSZW5kZXJlclRvQ2xpcHBlcik6IEluc3RlYWQgb2YgZG9pbmcKKyAgICAgICAgZG91
YmxlIGhhc2ggdGFibGUgbG9va3VwcyBieSBjYWxsaW5nIEhhc2hNYXA6OmNvbnRhaW5zKCkgYW5k
IHRoZW4gSGFzaE1hcDo6Z2V0KCksCisgICAgICAgIHdlIGNhbiB1c2UgSGFzaE1hcDo6YWRkKCkg
aW5zdGVhZC4KKwogMjAxNS0wMi0yNSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1
bmcuY29tPgogCiAgICAgICAgIFJlbW92ZSB1bm5lY2Vzc2FyeSBEYXRhYmFzZUZvb1Rhc2s6OmNy
ZWF0ZQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJj
ZUNsaXBwZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmNwcAkocmV2aXNpb24gMTgwNjQzKQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMzAsMjMgKzEzMCwyMiBAQCBib29sIFJlbmRlclNWR1Jlc291cmNlQ2xp
cHBlcjo6cGF0aE9ubHlDCiBib29sIFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcjo6YXBwbHlDbGlw
cGluZ1RvQ29udGV4dChSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgY29uc3QgRmxvYXRSZWN0JiBv
YmplY3RCb3VuZGluZ0JveCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IEZsb2F0UmVjdCYgcmVwYWludFJlY3QsIEdyYXBoaWNzQ29u
dGV4dCogY29udGV4dCkKIHsKLSAgICBDbGlwcGVyRGF0YSogY2xpcHBlckRhdGEgPSBhZGRSZW5k
ZXJlclRvQ2xpcHBlcihyZW5kZXJlcik7Ci0gICAgQVNTRVJUKGNsaXBwZXJEYXRhKTsKLSAgICBi
b29sIHNob3VsZENyZWF0ZUNsaXBEYXRhID0gIWNsaXBwZXJEYXRhLT5jbGlwTWFza0ltYWdlOwor
ICAgIENsaXBwZXJNYXNrSW1hZ2UmIGNsaXBwZXJNYXNrSW1hZ2UgPSBhZGRSZW5kZXJlclRvQ2xp
cHBlcihyZW5kZXJlcik7CisgICAgYm9vbCBzaG91bGRDcmVhdGVDbGlwcGVyTWFza0ltYWdlID0g
IWNsaXBwZXJNYXNrSW1hZ2U7CiAKICAgICBBZmZpbmVUcmFuc2Zvcm0gYW5pbWF0ZWRMb2NhbFRy
YW5zZm9ybSA9IGNsaXBQYXRoRWxlbWVudCgpLmFuaW1hdGVkTG9jYWxUcmFuc2Zvcm0oKTsKIAot
ICAgIGlmIChzaG91bGRDcmVhdGVDbGlwRGF0YSAmJiBwYXRoT25seUNsaXBwaW5nKGNvbnRleHQs
IGFuaW1hdGVkTG9jYWxUcmFuc2Zvcm0sIG9iamVjdEJvdW5kaW5nQm94KSkKKyAgICBpZiAoc2hv
dWxkQ3JlYXRlQ2xpcHBlck1hc2tJbWFnZSAmJiBwYXRoT25seUNsaXBwaW5nKGNvbnRleHQsIGFu
aW1hdGVkTG9jYWxUcmFuc2Zvcm0sIG9iamVjdEJvdW5kaW5nQm94KSkKICAgICAgICAgcmV0dXJu
IHRydWU7CiAKICAgICBBZmZpbmVUcmFuc2Zvcm0gYWJzb2x1dGVUcmFuc2Zvcm07CiAgICAgU1ZH
UmVuZGVyaW5nQ29udGV4dDo6Y2FsY3VsYXRlVHJhbnNmb3JtYXRpb25Ub091dGVybW9zdENvb3Jk
aW5hdGVTeXN0ZW0ocmVuZGVyZXIsIGFic29sdXRlVHJhbnNmb3JtKTsKIAotICAgIGlmIChzaG91
bGRDcmVhdGVDbGlwRGF0YSAmJiAhcmVwYWludFJlY3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGlm
ICghU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlSW1hZ2VCdWZmZXIocmVwYWludFJlY3QsIGFi
c29sdXRlVHJhbnNmb3JtLCBjbGlwcGVyRGF0YS0+Y2xpcE1hc2tJbWFnZSwgQ29sb3JTcGFjZURl
dmljZVJHQiwgVW5hY2NlbGVyYXRlZCkpCisgICAgaWYgKHNob3VsZENyZWF0ZUNsaXBwZXJNYXNr
SW1hZ2UgJiYgIXJlcGFpbnRSZWN0LmlzRW1wdHkoKSkgeworICAgICAgICBpZiAoIVNWR1JlbmRl
cmluZ0NvbnRleHQ6OmNyZWF0ZUltYWdlQnVmZmVyKHJlcGFpbnRSZWN0LCBhYnNvbHV0ZVRyYW5z
Zm9ybSwgY2xpcHBlck1hc2tJbWFnZSwgQ29sb3JTcGFjZURldmljZVJHQiwgVW5hY2NlbGVyYXRl
ZCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgR3JhcGhpY3NDb250ZXh0
KiBtYXNrQ29udGV4dCA9IGNsaXBwZXJEYXRhLT5jbGlwTWFza0ltYWdlLT5jb250ZXh0KCk7Cisg
ICAgICAgIEdyYXBoaWNzQ29udGV4dCogbWFza0NvbnRleHQgPSBjbGlwcGVyTWFza0ltYWdlLT5j
b250ZXh0KCk7CiAgICAgICAgIEFTU0VSVChtYXNrQ29udGV4dCk7CiAKICAgICAgICAgbWFza0Nv
bnRleHQtPmNvbmNhdENUTShhbmltYXRlZExvY2FsVHJhbnNmb3JtKTsKQEAgLTE2MSwyOCArMTYw
LDI3IEBAIGJvb2wgUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyOjphcHBseUNsaXAKICAgICAgICAg
ICAgIGlmICghY2xpcHBlci0+YXBwbHlDbGlwcGluZ1RvQ29udGV4dCgqdGhpcywgb2JqZWN0Qm91
bmRpbmdCb3gsIHJlcGFpbnRSZWN0LCBtYXNrQ29udGV4dCkpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgICAgICAgICBzdWNjZWVkZWQgPSBkcmF3Q29udGVudEludG9NYXNr
SW1hZ2UoY2xpcHBlckRhdGEsIG9iamVjdEJvdW5kaW5nQm94KTsKKyAgICAgICAgICAgIHN1Y2Nl
ZWRlZCA9IGRyYXdDb250ZW50SW50b01hc2tJbWFnZShjbGlwcGVyTWFza0ltYWdlLCBvYmplY3RC
b3VuZGluZ0JveCk7CiAgICAgICAgICAgICAvLyBUaGUgY29udGV4dCByZXN0b3JlIGFwcGxpZXMg
dGhlIGNsaXBwaW5nIG9uIG5vbi1DRyBwbGF0Zm9ybXMuCiAgICAgICAgIH0gZWxzZQotICAgICAg
ICAgICAgc3VjY2VlZGVkID0gZHJhd0NvbnRlbnRJbnRvTWFza0ltYWdlKGNsaXBwZXJEYXRhLCBv
YmplY3RCb3VuZGluZ0JveCk7CisgICAgICAgICAgICBzdWNjZWVkZWQgPSBkcmF3Q29udGVudElu
dG9NYXNrSW1hZ2UoY2xpcHBlck1hc2tJbWFnZSwgb2JqZWN0Qm91bmRpbmdCb3gpOwogCiAgICAg
ICAgIGlmICghc3VjY2VlZGVkKQotICAgICAgICAgICAgY2xpcHBlckRhdGEtPmNsaXBNYXNrSW1h
Z2UucmVzZXQoKTsKKyAgICAgICAgICAgIGNsaXBwZXJNYXNrSW1hZ2UucmVzZXQoKTsKICAgICB9
CiAKLSAgICBpZiAoIWNsaXBwZXJEYXRhLT5jbGlwTWFza0ltYWdlKQorICAgIGlmICghY2xpcHBl
ck1hc2tJbWFnZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgU1ZHUmVuZGVyaW5nQ29u
dGV4dDo6Y2xpcFRvSW1hZ2VCdWZmZXIoY29udGV4dCwgYWJzb2x1dGVUcmFuc2Zvcm0sIHJlcGFp
bnRSZWN0LCBjbGlwcGVyRGF0YS0+Y2xpcE1hc2tJbWFnZSwgc2hvdWxkQ3JlYXRlQ2xpcERhdGEp
OworICAgIFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNsaXBUb0ltYWdlQnVmZmVyKGNvbnRleHQsIGFi
c29sdXRlVHJhbnNmb3JtLCByZXBhaW50UmVjdCwgY2xpcHBlck1hc2tJbWFnZSwgc2hvdWxkQ3Jl
YXRlQ2xpcHBlck1hc2tJbWFnZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgUmVuZGVy
U1ZHUmVzb3VyY2VDbGlwcGVyOjpkcmF3Q29udGVudEludG9NYXNrSW1hZ2UoQ2xpcHBlckRhdGEq
IGNsaXBwZXJEYXRhLCBjb25zdCBGbG9hdFJlY3QmIG9iamVjdEJvdW5kaW5nQm94KQorYm9vbCBS
ZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXI6OmRyYXdDb250ZW50SW50b01hc2tJbWFnZShjb25zdCBD
bGlwcGVyTWFza0ltYWdlJiBjbGlwcGVyTWFza0ltYWdlLCBjb25zdCBGbG9hdFJlY3QmIG9iamVj
dEJvdW5kaW5nQm94KQogewotICAgIEFTU0VSVChjbGlwcGVyRGF0YSk7Ci0gICAgQVNTRVJUKGNs
aXBwZXJEYXRhLT5jbGlwTWFza0ltYWdlKTsKKyAgICBBU1NFUlQoY2xpcHBlck1hc2tJbWFnZSk7
CiAKLSAgICBHcmFwaGljc0NvbnRleHQqIG1hc2tDb250ZXh0ID0gY2xpcHBlckRhdGEtPmNsaXBN
YXNrSW1hZ2UtPmNvbnRleHQoKTsKKyAgICBHcmFwaGljc0NvbnRleHQqIG1hc2tDb250ZXh0ID0g
Y2xpcHBlck1hc2tJbWFnZS0+Y29udGV4dCgpOwogICAgIEFTU0VSVChtYXNrQ29udGV4dCk7CiAK
ICAgICBBZmZpbmVUcmFuc2Zvcm0gbWFza0NvbnRlbnRUcmFuc2Zvcm1hdGlvbjsKQEAgLTIzMyw3
ICsyMzEsNyBAQCBib29sIFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcjo6ZHJhd0NvbnRlCiAgICAg
ICAgIC8vIEluIHRoZSBjYXNlIG9mIGEgPHVzZT4gZWxlbWVudCwgd2Ugb2J0YWluZWQgaXRzIHJl
bmRlcmVyZSBhYm92ZSwgdG8gcmV0cmlldmUgaXRzIGNsaXBSdWxlLgogICAgICAgICAvLyBXZSBo
YXZlIHRvIHBhc3MgdGhlIDx1c2U+IHJlbmRlcmVyIGl0c2VsZiB0byByZW5kZXJTdWJ0cmVlVG9J
bWFnZUJ1ZmZlcigpIHRvIGFwcGx5IGl0J3MgeC95L3RyYW5zZm9ybS9ldGMuIHZhbHVlcyB3aGVu
IHJlbmRlcmluZy4KICAgICAgICAgLy8gU28gaWYgaXNVc2VFbGVtZW50IGlzIHRydWUsIHJlZmV0
Y2ggdGhlIGNoaWxkTm9kZS0+cmVuZGVyZXIoKSwgYXMgcmVuZGVyZXIgZ290IG92ZXJyaWRlbiBh
Ym92ZS4KLSAgICAgICAgU1ZHUmVuZGVyaW5nQ29udGV4dDo6cmVuZGVyU3VidHJlZVRvSW1hZ2VC
dWZmZXIoY2xpcHBlckRhdGEtPmNsaXBNYXNrSW1hZ2UuZ2V0KCksIGlzVXNlRWxlbWVudCA/ICpj
aGlsZC5yZW5kZXJlcigpIDogKnJlbmRlcmVyLCBtYXNrQ29udGVudFRyYW5zZm9ybWF0aW9uKTsK
KyAgICAgICAgU1ZHUmVuZGVyaW5nQ29udGV4dDo6cmVuZGVyU3VidHJlZVRvSW1hZ2VCdWZmZXIo
Y2xpcHBlck1hc2tJbWFnZS5nZXQoKSwgaXNVc2VFbGVtZW50ID8gKmNoaWxkLnJlbmRlcmVyKCkg
OiAqcmVuZGVyZXIsIG1hc2tDb250ZW50VHJhbnNmb3JtYXRpb24pOwogICAgIH0KIAogICAgIHZp
ZXcoKS5mcmFtZVZpZXcoKS5zZXRQYWludEJlaGF2aW9yKG9sZEJlaGF2aW9yKTsKQEAgLTI1Nywx
MSArMjU1LDkgQEAgdm9pZCBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXI6OmNhbGN1bGF0ZQogICAg
IG1fY2xpcEJvdW5kYXJpZXMgPSBjbGlwUGF0aEVsZW1lbnQoKS5hbmltYXRlZExvY2FsVHJhbnNm
b3JtKCkubWFwUmVjdChtX2NsaXBCb3VuZGFyaWVzKTsKIH0KIAotQ2xpcHBlckRhdGEqIFJlbmRl
clNWR1Jlc291cmNlQ2xpcHBlcjo6YWRkUmVuZGVyZXJUb0NsaXBwZXIoY29uc3QgUmVuZGVyT2Jq
ZWN0JiBvYmplY3QpCitDbGlwcGVyTWFza0ltYWdlJiBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXI6
OmFkZFJlbmRlcmVyVG9DbGlwcGVyKGNvbnN0IFJlbmRlck9iamVjdCYgb2JqZWN0KQogewotICAg
IGlmICghbV9jbGlwcGVyLmNvbnRhaW5zKCZvYmplY3QpKQotICAgICAgICBtX2NsaXBwZXIuc2V0
KCZvYmplY3QsIHN0ZDo6bWFrZV91bmlxdWU8Q2xpcHBlckRhdGE+KCkpOwotICAgIHJldHVybiBt
X2NsaXBwZXIuZ2V0KCZvYmplY3QpOworICAgIHJldHVybiBtX2NsaXBwZXIuYWRkKCZvYmplY3Qs
IENsaXBwZXJNYXNrSW1hZ2UoKSkuaXRlcmF0b3ItPnZhbHVlOwogfQogCiBib29sIFJlbmRlclNW
R1Jlc291cmNlQ2xpcHBlcjo6aGl0VGVzdENsaXBDb250ZW50KGNvbnN0IEZsb2F0UmVjdCYgb2Jq
ZWN0Qm91bmRpbmdCb3gsIGNvbnN0IEZsb2F0UG9pbnQmIG5vZGVBdFBvaW50KQpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNl
Q2xpcHBlci5oCShyZXZpc2lvbiAxODA2NDMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxMSAr
MzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBDbGlwcGVyRGF0YSB7Ci0g
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgc3RkOjp1bmlxdWVfcHRy
PEltYWdlQnVmZmVyPiBjbGlwTWFza0ltYWdlOwotfTsKK3R5cGVkZWYgc3RkOjp1bmlxdWVfcHRy
PEltYWdlQnVmZmVyPiBDbGlwcGVyTWFza0ltYWdlOwogCiBjbGFzcyBSZW5kZXJTVkdSZXNvdXJj
ZUNsaXBwZXIgZmluYWwgOiBwdWJsaWMgUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIgewogcHVi
bGljOgpAQCAtNjksMTIgKzY1LDEyIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBjb25zdCBjaGFy
KiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJlbmRlclNWR1Jlc291cmNl
Q2xpcHBlciI7IH0KIAogICAgIGJvb2wgcGF0aE9ubHlDbGlwcGluZyhHcmFwaGljc0NvbnRleHQq
LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFJlY3QmKTsKLSAgICBib29sIGRy
YXdDb250ZW50SW50b01hc2tJbWFnZShDbGlwcGVyRGF0YSosIGNvbnN0IEZsb2F0UmVjdCYgb2Jq
ZWN0Qm91bmRpbmdCb3gpOworICAgIGJvb2wgZHJhd0NvbnRlbnRJbnRvTWFza0ltYWdlKGNvbnN0
IENsaXBwZXJNYXNrSW1hZ2UmLCBjb25zdCBGbG9hdFJlY3QmIG9iamVjdEJvdW5kaW5nQm94KTsK
ICAgICB2b2lkIGNhbGN1bGF0ZUNsaXBDb250ZW50UmVwYWludFJlY3QoKTsKLSAgICBDbGlwcGVy
RGF0YSogYWRkUmVuZGVyZXJUb0NsaXBwZXIoY29uc3QgUmVuZGVyT2JqZWN0Jik7CisgICAgQ2xp
cHBlck1hc2tJbWFnZSYgYWRkUmVuZGVyZXJUb0NsaXBwZXIoY29uc3QgUmVuZGVyT2JqZWN0Jik7
CiAKICAgICBGbG9hdFJlY3QgbV9jbGlwQm91bmRhcmllczsKLSAgICBIYXNoTWFwPGNvbnN0IFJl
bmRlck9iamVjdCosIHN0ZDo6dW5pcXVlX3B0cjxDbGlwcGVyRGF0YT4+IG1fY2xpcHBlcjsKKyAg
ICBIYXNoTWFwPGNvbnN0IFJlbmRlck9iamVjdCosIENsaXBwZXJNYXNrSW1hZ2U+IG1fY2xpcHBl
cjsKIH07CiAKIH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MDY1MSkKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE1LTAyLTI1ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW51
cCBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIgY2xhc3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDIwMzIuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBzdmcvY2xpcC1wYXRoL2NsaXAtcGF0aC1saW5lLXVz
ZS1iZWZvcmUtZGVmaW5lZC1leHBlY3RlZC5zdmc6CisgICAgICAgICogc3ZnL2NsaXAtcGF0aC9j
bGlwLXBhdGgtbGluZS11c2UtYmVmb3JlLWRlZmluZWQuc3ZnOiBTaW1wbGlmeSB0aGUgdGVzdAor
ICAgICAgICBhbmQgbWFrZSBzZXBhcmF0ZSBkcmF3aW5ncyBmb3IgZGlmZmVyZW50IGNhc2VzLgor
CiAyMDE1LTAyLTI1ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtXaW5dIFNraXAgdGltaW5nLW91dCB0ZXN0IGFmdGVyIHIxODA2NDYuCkluZGV4OiBMYXlv
dXRUZXN0cy9zdmcvY2xpcC1wYXRoL2NsaXAtcGF0aC1saW5lLXVzZS1iZWZvcmUtZGVmaW5lZC1l
eHBlY3RlZC5zdmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2NsaXAtcGF0aC9jbGlw
LXBhdGgtbGluZS11c2UtYmVmb3JlLWRlZmluZWQtZXhwZWN0ZWQuc3ZnCShyZXZpc2lvbiAxODA2
NDMpCisrKyBMYXlvdXRUZXN0cy9zdmcvY2xpcC1wYXRoL2NsaXAtcGF0aC1saW5lLXVzZS1iZWZv
cmUtZGVmaW5lZC1leHBlY3RlZC5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTEsMzMgKzEsNDQgQEAK
LTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0
cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiPgorPHN2
ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KICAgPGRlZnM+CiAgICAgPHN0eWxlPgogICAgICAgbGlu
ZSwgcGF0aCB7CiAgICAgICAgIHN0cm9rZTogYmxhY2s7CisgICAgICAgIHN0cm9rZS13aWR0aDog
MzsKICAgICAgIH0KICAgICA8L3N0eWxlPgogICAgIDxjbGlwUGF0aCBpZD0iY2xpcC1jaXJjbGUi
PgotICAgICAgICA8Y2lyY2xlIGN4PSI1MCUiIGN5PSI1MCUiIHI9IjI1JSIvPgorICAgICAgPGNp
cmNsZSBjeD0iNzUiIGN5PSI3NSIgcj0iNTAiLz4KICAgICA8L2NsaXBQYXRoPgorICAgIDxnIGlk
PSJjaXJjbGUtaW4tcmVjdCI+CisgICAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTUwIiBo
ZWlnaHQ9IjE1MCIgZmlsbD0ibGltZSIvPgorICAgICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9
IjE1MCIgaGVpZ2h0PSIxNTAiIGZpbGw9IndoaXRlIiBjbGlwLXBhdGg9InVybCgjY2xpcC1jaXJj
bGUpIi8+CisgICAgPC9nPgogICA8L2RlZnM+Ci0gIAotICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJsaW1lIi8+Ci0gIDxyZWN0IHg9IjAiIHk9IjAi
IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9IndoaXRlIiBjbGlwLXBhdGg9InVybCgj
Y2xpcC1jaXJjbGUpIi8+CiAKLSAgPCEtLSBkaWFnb25hbCAtLT4KLSAgPGxpbmUgeDE9IjE3MCIg
eTE9IjMwIiB4Mj0iMzAiIHkyPSIxNzAiIGNsaXAtcGF0aD0idXJsKCNjbGlwLWNpcmNsZSkiLz4K
KyAgPHVzZSB4bGluazpocmVmPSIjY2lyY2xlLWluLXJlY3QiIHRyYW5zZm9ybT0idHJhbnNsYXRl
KDEwLCAxMCkiPgorICAgIDxnIGNsaXAtcGF0aD0idXJsKCNjbGlwLWNpcmNsZSkiPgorICAgICAg
PCEtLSBjZW50ZXIgbGluZXMgLS0+CisgICAgICA8cGF0aCBkPSJNMCA3NSBMMTUwIDc1Ii8+Cisg
ICAgICA8bGluZSB4MT0iNzUiIHkxPSIwIiB4Mj0iNzUiIHkyPSIxNTAiLz4KKyAgICA8L2c+Cisg
IDwvdXNlPgogICAKLSAgPCEtLSB0b3AgYW5kIGxlZnQgbGluZXMgLS0+Ci0gIDxwYXRoIGQ9Ik0z
MCA3NSBMMTcwIDc1IiBjbGlwLXBhdGg9InVybCgjY2xpcC1jaXJjbGUpIi8+Ci0gIDxsaW5lIHgx
PSI3NSIgeTE9IjMwIiB4Mj0iNzUiIHkyPSIxNzAiIGNsaXAtcGF0aD0idXJsKCNjbGlwLWNpcmNs
ZSkiLz4KKyAgPHVzZSB4bGluazpocmVmPSIjY2lyY2xlLWluLXJlY3QiIHRyYW5zZm9ybT0idHJh
bnNsYXRlKDE3MCwgMTApIj4KKyAgICA8ZyBjbGlwLXBhdGg9InVybCgjY2xpcC1jaXJjbGUpIj4K
KyAgICAgIDwhLS0gZGlhZ29uYWwgbGluZXMgLS0+CisgICAgICA8cGF0aCBkPSJNMCAwIEwxNTAg
MTUwIi8+CisgICAgICA8bGluZSB4MT0iMCIgeTE9IjE1MCIgeDI9IjE1MCIgeTI9IjAiLz4KKyAg
ICA8L2c+CisgIDwvdXNlPgogCi0gIDwhLS0gcmlnaHQgYW5kIGJvdHRvbSBsaW5lcyAtLT4KLSAg
PGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xlKSI+Ci0gICAgPHBhdGggZD0iTTMwIDEyNSBM
MTcwIDEyNSIvPgotICAgIDxsaW5lIHgxPSIxMjUiIHkxPSIzMCIgeDI9IjEyNSIgeTI9IjE3MCIv
PgotICA8L2c+Ci0gIAotICA8IS0tIGNlbnRlciBsaW5lcyAtLT4KLSAgPHBhdGggZD0iTTMwIDEw
MCBMMTcwIDEwMCIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xlKSIvPgotICA8bGluZSB4MT0i
MTAwIiB5MT0iMzAiIHgyPSIxMDAiIHkyPSIxNzAiIGNsaXAtcGF0aD0idXJsKCNjbGlwLWNpcmNs
ZSkiLz4KLSAgCisgIDx1c2UgeGxpbms6aHJlZj0iI2NpcmNsZS1pbi1yZWN0IiB0cmFuc2Zvcm09
InRyYW5zbGF0ZSgzMzAsIDEwKSI+CisgICAgPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xl
KSI+CisgICAgICA8IS0tIHRvcCBhbmQgbGVmdCBsaW5lcyAtLT4KKyAgICAgIDxwYXRoIGQ9Ik0w
IDUwIEwxNTAgNTAiLz4KKyAgICAgIDxsaW5lIHgxPSI1MCIgeTE9IjAiIHgyPSI1MCIgeTI9IjE1
MCIvPgorICAgICAgPCEtLSBib3R0b20gYW5kIHJpZ2h0IGxpbmVzIC0tPgorICAgICAgPHBhdGgg
ZD0iTTAgMTAwIEwxNTAgMTAwIi8+CisgICAgICA8bGluZSB4MT0iMTAwIiB5MT0iMCIgeDI9IjEw
MCIgeTI9IjE1MCIvPgorICAgIDwvZz4KKyAgPC91c2U+CiA8L3N2Zz4KSW5kZXg6IExheW91dFRl
c3RzL3N2Zy9jbGlwLXBhdGgvY2xpcC1wYXRoLWxpbmUtdXNlLWJlZm9yZS1kZWZpbmVkLnN2Zwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY2xpcC1wYXRoL2NsaXAtcGF0aC1saW5lLXVz
ZS1iZWZvcmUtZGVmaW5lZC5zdmcJKHJldmlzaW9uIDE4MDY0MykKKysrIExheW91dFRlc3RzL3N2
Zy9jbGlwLXBhdGgvY2xpcC1wYXRoLWxpbmUtdXNlLWJlZm9yZS1kZWZpbmVkLnN2Zwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzOCArMSw0NiBAQAotPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0
aD0iMjAwIiBoZWlnaHQ9IjIwMCI+Cis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAw
L3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICA8ZGVm
cz4KICAgICA8c3R5bGU+CiAgICAgICBsaW5lLCBwYXRoIHsKICAgICAgICAgc3Ryb2tlOiBibGFj
azsKKyAgICAgICAgc3Ryb2tlLXdpZHRoOiAzOwogICAgICAgfQogICAgIDwvc3R5bGU+CisgICAg
PGcgaWQ9ImNpcmNsZS1pbi1yZWN0Ij4KKyAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIx
NTAiIGhlaWdodD0iMTUwIiBmaWxsPSJsaW1lIi8+CisgICAgICA8cmVjdCB4PSIwIiB5PSIwIiB3
aWR0aD0iMTUwIiBoZWlnaHQ9IjE1MCIgZmlsbD0id2hpdGUiIGNsaXAtcGF0aD0idXJsKCNjbGlw
LWNpcmNsZSkiLz4KKyAgICA8L2c+CiAgIDwvZGVmcz4KLSAgCi0gIDxyZWN0IHg9IjAiIHk9IjAi
IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9ImxpbWUiLz4KLSAgPHJlY3QgeD0iMCIg
eT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0id2hpdGUiIGNsaXAtcGF0aD0i
dXJsKCNjbGlwLWNpcmNsZSkiLz4KIAotICA8IS0tIGRpYWdvbmFsIC0tPgotICA8bGluZSB4MT0i
MTcwIiB5MT0iMzAiIHgyPSIzMCIgeTI9IjE3MCIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xl
KSIvPgorICA8dXNlIHhsaW5rOmhyZWY9IiNjaXJjbGUtaW4tcmVjdCIgdHJhbnNmb3JtPSJ0cmFu
c2xhdGUoMTAsIDEwKSI+CisgICAgPCEtLSBjZW50ZXIgbGluZXMgLS0+CisgICAgPHBhdGggZD0i
TTAgNzUgTDE1MCA3NSIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xlKSIvPgorICAgIDxsaW5l
IHgxPSI3NSIgeTE9IjAiIHgyPSI3NSIgeTI9IjE1MCIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2ly
Y2xlKSIvPgorICA8L3VzZT4KICAgCi0gIDwhLS0gdG9wIGFuZCBsZWZ0IGxpbmVzIC0tPgotICA8
cGF0aCBkPSJNMzAgNzUgTDE3MCA3NSIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xlKSIvPgot
ICA8bGluZSB4MT0iNzUiIHkxPSIzMCIgeDI9Ijc1IiB5Mj0iMTcwIiBjbGlwLXBhdGg9InVybCgj
Y2xpcC1jaXJjbGUpIi8+CisgIDx1c2UgeGxpbms6aHJlZj0iI2NpcmNsZS1pbi1yZWN0IiB0cmFu
c2Zvcm09InRyYW5zbGF0ZSgxNzAsIDEwKSI+CisgICAgPCEtLSBkaWFnb25hbCBsaW5lcyAtLT4K
KyAgICA8cGF0aCBkPSJNMCAwIEwxNTAgMTUwIiBjbGlwLXBhdGg9InVybCgjY2xpcC1jaXJjbGUp
Ii8+CisgICAgPGxpbmUgeDE9IjAiIHkxPSIxNTAiIHgyPSIxNTAiIHkyPSIwIiBjbGlwLXBhdGg9
InVybCgjY2xpcC1jaXJjbGUpIi8+CisgIDwvdXNlPgogCi0gIDwhLS0gYm90dG9tIGFuZCByaWdo
dCBsaW5lcyAtLT4KLSAgPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xlKSI+Ci0gICAgPHBh
dGggZD0iTTMwIDEyNSBMMTcwIDEyNSIvPgotICAgIDxsaW5lIHgxPSIxMjUiIHkxPSIzMCIgeDI9
IjEyNSIgeTI9IjE3MCIvPgotICA8L2c+CisgIDx1c2UgeGxpbms6aHJlZj0iI2NpcmNsZS1pbi1y
ZWN0IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMzAsIDEwKSI+CisgICAgPCEtLSB0b3AgYW5kIGxl
ZnQgbGluZXMgLS0+CisgICAgPHBhdGggZD0iTTAgNTAgTDE1MCA1MCIgY2xpcC1wYXRoPSJ1cmwo
I2NsaXAtY2lyY2xlKSIvPgorICAgIDxsaW5lIHgxPSI1MCIgeTE9IjAiIHgyPSI1MCIgeTI9IjE1
MCIgY2xpcC1wYXRoPSJ1cmwoI2NsaXAtY2lyY2xlKSIvPgorICAgIDxnIGNsaXAtcGF0aD0idXJs
KCNjbGlwLWNpcmNsZSkiPgorICAgICAgPCEtLSBib3R0b20gYW5kIHJpZ2h0IGxpbmVzIC0tPgor
ICAgICAgPHBhdGggZD0iTTAgMTAwIEwxNTAgMTAwIi8+CisgICAgICA8bGluZSB4MT0iMTAwIiB5
MT0iMCIgeDI9IjEwMCIgeTI9IjE1MCIvPgorICAgIDwvZz4KKyAgPC91c2U+CiAgIAogICA8ZGVm
cz4KICAgICA8Y2xpcFBhdGggaWQ9ImNsaXAtY2lyY2xlIj4KLSAgICAgIDxjaXJjbGUgY3g9IjUw
JSIgY3k9IjUwJSIgcj0iNTAlIiBjbGlwLXBhdGg9InVybCgjY2xpcC1zbWFsbC1jaXJjbGUpIi8+
CisgICAgICA8Y2lyY2xlIGN4PSI3NSIgY3k9Ijc1IiByPSI3NSIgY2xpcC1wYXRoPSJ1cmwoI2Ns
aXAtc21hbGwtY2lyY2xlKSIvPgogICAgIDwvY2xpcFBhdGg+CiAgICAgPGNsaXBQYXRoIGlkPSJj
bGlwLXNtYWxsLWNpcmNsZSI+Ci0gICAgICA8Y2lyY2xlIGN4PSI1MCUiIGN5PSI1MCUiIHI9IjI1
JSIvPgorICAgICAgPGNpcmNsZSBjeD0iNzUiIGN5PSI3NSIgcj0iNTAiLz4KICAgICA8L2NsaXBQ
YXRoPgogICA8L2RlZnM+Ci0KLSAgPCEtLSBjZW50ZXIgbGluZXMgLS0+Ci0gIDxwYXRoIGQ9Ik0z
MCAxMDAgTDE3MCAxMDAiIGNsaXAtcGF0aD0idXJsKCNjbGlwLWNpcmNsZSkiLz4KLSAgPGxpbmUg
eDE9IjEwMCIgeTE9IjMwIiB4Mj0iMTAwIiB5Mj0iMTcwIiBjbGlwLXBhdGg9InVybCgjY2xpcC1j
aXJjbGUpIi8+CiA8L3N2Zz4K
</data>

          </attachment>
      

    </bug>

</bugzilla>