<?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>158021</bug_id>
          
          <creation_ts>2016-05-24 04:18:47 -0700</creation_ts>
          <short_desc>[css-grid] Simplify grid track sizes parsing</short_desc>
          <delta_ts>2016-05-25 07:43:44 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>WebKit 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>BlinkMergeCandidate</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>158064</dependson>
          <blocked>60731</blocked>
    
    <blocked>158063</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Manuel Rego Casasnovas">rego</reporter>
          <assigned_to name="Manuel Rego Casasnovas">rego</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>jfernandez</cc>
    
    <cc>rego</cc>
    
    <cc>svillar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1195808</commentid>
    <comment_count>0</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2016-05-24 04:18:47 -0700</bug_when>
    <thetext>This is a port from a Blink patch:
https://codereview.chromium.org/1998033003/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195814</commentid>
    <comment_count>1</comment_count>
      <attachid>279644</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2016-05-24 04:36:14 -0700</bug_when>
    <thetext>Created attachment 279644
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196238</commentid>
    <comment_count>2</comment_count>
      <attachid>279644</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2016-05-25 00:47:57 -0700</bug_when>
    <thetext>Comment on attachment 279644
Patch

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

&gt; Source/WebCore/css/CSSParser.cpp:5823
&gt; +    const CSSPrimitiveValue&amp; primitiveValue = value.isPrimitiveValue()

I think we could use here auto&amp; as it&apos;s pretty clear from the right side that we have a CSSPrimitiveValue.

&gt; Source/WebCore/css/CSSParser.cpp:5830
&gt;      return true;

Perhaps adding and ASSERT just before the return here?

&gt; Source/WebCore/css/CSSParser.cpp:5867
&gt; +                allTracksAreFixedSized = isGridTrackFixedSized(*value);

What about

allTracksAreFixedSized = allTracksAreFixedSized &amp;&amp; isGridTrackFixedSized(*value);

&gt; Source/WebCore/css/CSSParser.cpp:5925
&gt; +            allTracksAreFixedSized = isGridTrackFixedSized(*trackSize);

Ditto.

&gt; Source/WebCore/css/CSSParser.cpp:5995
&gt;          return CSSValuePool::singleton().createIdentifierValue(value.id);

You should remove the braces as there is only one instruction in the if block.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196242</commentid>
    <comment_count>3</comment_count>
      <attachid>279748</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2016-05-25 01:50:49 -0700</bug_when>
    <thetext>Created attachment 279748
=Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196243</commentid>
    <comment_count>4</comment_count>
      <attachid>279644</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2016-05-25 01:51:27 -0700</bug_when>
    <thetext>Comment on attachment 279644
Patch

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

Thanks for the quick review!

&gt;&gt; Source/WebCore/css/CSSParser.cpp:5823
&gt;&gt; +    const CSSPrimitiveValue&amp; primitiveValue = value.isPrimitiveValue()
&gt; 
&gt; I think we could use here auto&amp; as it&apos;s pretty clear from the right side that we have a CSSPrimitiveValue.

Done.

&gt;&gt; Source/WebCore/css/CSSParser.cpp:5830
&gt;&gt;      return true;
&gt; 
&gt; Perhaps adding and ASSERT just before the return here?

Yeah, I&apos;ll add it.

&gt;&gt; Source/WebCore/css/CSSParser.cpp:5867
&gt;&gt; +                allTracksAreFixedSized = isGridTrackFixedSized(*value);
&gt; 
&gt; What about
&gt; 
&gt; allTracksAreFixedSized = allTracksAreFixedSized &amp;&amp; isGridTrackFixedSized(*value);

In that case, even when allTracksAreFixedSized is FALSE, we&apos;ll be calling isGridTrackFixedSized() over and over.
With the current code, once allTracksAreFixedSized is FALSE, we don&apos;t call isGridTrackFixedSized() anymore.

&gt;&gt; Source/WebCore/css/CSSParser.cpp:5925
&gt;&gt; +            allTracksAreFixedSized = isGridTrackFixedSized(*trackSize);
&gt; 
&gt; Ditto.

Ditto. :-)

&gt;&gt; Source/WebCore/css/CSSParser.cpp:5995
&gt;&gt;          return CSSValuePool::singleton().createIdentifierValue(value.id);
&gt; 
&gt; You should remove the braces as there is only one instruction in the if block.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196251</commentid>
    <comment_count>5</comment_count>
      <attachid>279748</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-25 02:21:29 -0700</bug_when>
    <thetext>Comment on attachment 279748
=Patch for landing

Clearing flags on attachment: 279748

Committed r201373: &lt;http://trac.webkit.org/changeset/201373&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196252</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-25 02:21:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196271</commentid>
    <comment_count>7</comment_count>
      <attachid>279748</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-05-25 03:52:57 -0700</bug_when>
    <thetext>Comment on attachment 279748
=Patch for landing

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

&gt; Source/WebCore/css/CSSParser.cpp:5822
&gt; +    ASSERT(value.isPrimitiveValue() || (value.isFunctionValue() &amp;&amp; downcast&lt;CSSFunctionValue&gt;(value).arguments()));

After this landed, we are hitting this assertion in isGridTrackFixedSized in parseGridTrackList in multiple tests. Because of that we will probably need to roll this change out.

The problem is that parseGridTrackList calls parseGridBreadth, which can return a numeric value. Then this function incorrectly asserts that it’s not a numeric value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196283</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-25 04:13:12 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 158064</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196311</commentid>
    <comment_count>9</comment_count>
      <attachid>279762</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2016-05-25 06:12:30 -0700</bug_when>
    <thetext>Created attachment 279762
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196312</commentid>
    <comment_count>10</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2016-05-25 06:13:03 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=279748&amp;action=review

&gt; Source/WebCore/css/CSSParser.cpp:5830
&gt; +    ASSERT(primitiveValue.isLength());

We were actually hitting this ASSERT, as it&apos;s not enough to check that the CSSPrimitiveValue is length,
it doesn&apos;t include percentages or calc().

I&apos;ve modified it to check the 3 cases and now the tests are passing in debug here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196317</commentid>
    <comment_count>11</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2016-05-25 06:33:55 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 279644 [details]
&gt; &gt;&gt; Source/WebCore/css/CSSParser.cpp:5867
&gt; &gt;&gt; +                allTracksAreFixedSized = isGridTrackFixedSized(*value);
&gt; &gt; 
&gt; &gt; What about
&gt; &gt; 
&gt; &gt; allTracksAreFixedSized = allTracksAreFixedSized &amp;&amp; isGridTrackFixedSized(*value);
&gt; 
&gt; In that case, even when allTracksAreFixedSized is FALSE, we&apos;ll be calling
&gt; isGridTrackFixedSized() over and over.
&gt; With the current code, once allTracksAreFixedSized is FALSE, we don&apos;t call
&gt; isGridTrackFixedSized() anymore.

The &amp;&amp; operator in C++ shortcircuits meaning that the second part won&apos;t be evaluated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196324</commentid>
    <comment_count>12</comment_count>
      <attachid>279767</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2016-05-25 07:11:43 -0700</bug_when>
    <thetext>Created attachment 279767
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196333</commentid>
    <comment_count>13</comment_count>
      <attachid>279767</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-25 07:43:40 -0700</bug_when>
    <thetext>Comment on attachment 279767
Patch

Clearing flags on attachment: 279767

Committed r201382: &lt;http://trac.webkit.org/changeset/201382&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196334</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-25 07:43:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279644</attachid>
            <date>2016-05-24 04:36:14 -0700</date>
            <delta_ts>2016-05-25 01:51:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158021-20160524133719.patch</filename>
            <type>text/plain</type>
            <size>11040</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxMzI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGJhY2I0ZTZjZTM4OWE1
NDczZTA5NjIzN2Y4YmI2NjZhNWEwMzkxZC4uMmVjODY2NWIyOTVmMjg2OWYzNzI2ZjFlM2ZiYmZj
OWJjMjliNTYxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ0IEBACiAyMDE2LTA1LTI0ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCisgICAgICAgIFtjc3MtZ3Jp
ZF0gU2ltcGxpZnkgZ3JpZCB0cmFjayBzaXplcyBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgwMjEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcmV2aW91c2x5IG9uY2Ugd2Ugc2F3IGFuIGF1
dG8tcmVwZWF0IGZ1bmN0aW9uLAorICAgICAgICB3ZSBwYXNzZWQgdGhlICJGaXhlZFNpemVPbmx5
IiByZXN0cmljdGlvbiB0byB0aGUgcmVzdCBvZiBtZXRob2RzLgorICAgICAgICBUaGF0IHdheSB3
ZSB3ZXJlIHN1cmUgdGhhdCBhbGwgdGhlIHRyYWNrcyBhZnRlciB0aGUgYXV0by1yZXBlYXQKKyAg
ICAgICAgaGFkIGZpeGVkIHNpemVzLgorICAgICAgICBCdXQgd2UgbmVlZGVkIHRvIGNhbGwgYWxs
VHJhY2tzQXJlRml4ZWRTaXplZCgpIHRvIGJlIHN1cmUgdGhhdAorICAgICAgICB0aGUgdHJhY2tz
IGJlZm9yZSB0aGUgYXV0by1yZXBlYXQgaGFkIGZpeGVkIHNpemVzIHRvby4KKworICAgICAgICBO
b3cgd2UncmUgaW50cm9kdWNpbmcgYSBuZXcgYm9vbGVhbiB8YWxsVHJhY2tzQXJlRml4ZWRTaXpl
ZHwsCisgICAgICAgIHRvIGNoZWNrIGluIGFkdmFuY2UgaWYgdGhlIGRlY2xhcmF0aW9uIGNvbnRh
aW5zIGFueSB0cmFjayBub3QgZml4ZWQuCisgICAgICAgIElmIHRoYXQncyB0aGUgY2FzZSBhbmQg
d2UgZm91bmQgYW4gYXV0by1yZXBlYXQgbWV0aG9kLAorICAgICAgICB3ZSBjb25zaWRlciBpdCBp
bnZhbGlkLgorICAgICAgICBXaXRoIHRoaXMgYXBwcm9hY2ggd2UgYXZvaWQgdGhlIGxvb3AgdG8g
dmVyaWZ5CisgICAgICAgIHRoYXQgYWxsIHRoZSB0cmFja3MgKGJlZm9yZSBhbmQgYWZ0ZXIgdGhl
IGF1dG8tcmVwZWF0KSBhcmUgZml4ZWQuCisgICAgICAgIEl0IGFsc28gYWxsb3dzIHVzIHRvIHNp
bXBsaWZ5IHRoZSBjb2RlIGFuZCBhdm9pZCBwYXNzaW5nCisgICAgICAgIHRoZSByZXN0cmljdGlv
biB0byBhbGwgdGhlIG1ldGhvZHMgcGFyc2luZyB0aGUgdHJhY2sgc2l6ZS4KKworICAgICAgICBO
byBuZXcgdGVzdHMsIG5vIGNoYW5nZSBvZiBiZWhhdmlvci4KKworICAgICAgICAqIGNzcy9DU1NQ
YXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNHcmlkVHJhY2tGaXhlZFNpemVkKTogTmV3
IG1ldGhvZCB0byBjaGVjayBpZiBhIGdyaWQgdHJhY2sKKyAgICAgICAgc2l6ZSBpcyBmaXhlZCBv
ciBub3QgKGJhc2VkIG9uIG9sZCBhbGxUcmFja3NBcmVGaXhlZFNpemVkKCkpLgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUdyaWRUcmFja0xpc3QpOiBBZGQgbmV3IGJvb2xlYW4g
dG8gZGV0ZWN0CisgICAgICAgIGlmIGFueSB0cmFjayBoYXMgbm90IGEgZml4ZWQgc2l6ZS4KKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VHcmlkVHJhY2tSZXBlYXRGdW5jdGlvbik6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUdyaWRUcmFja1NpemUp
OiBSZW1vdmUgdXNhZ2Ugb2YKKyAgICAgICAgVHJhY2tTaXplUmVzdHJpY3Rpb24gZW51bS4KKyAg
ICAgICAgQ2hlY2sgaGVyZSBpZiB8bWluVHJhY2tCcmVhZHRofCBpcyBhIGZsZXhpYmxlIHNpemUu
CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlR3JpZEJyZWFkdGgpOiBSZW1vdmUg
dXNhZ2Ugb2YKKyAgICAgICAgVHJhY2tTaXplUmVzdHJpY3Rpb24gZW51bS4KKyAgICAgICAgKFdl
YkNvcmU6OmFsbFRyYWNrc0FyZUZpeGVkU2l6ZWQpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy9D
U1NQYXJzZXIuaDogUmVtb3ZlIFRyYWNrU2l6ZVJlc3RyaWN0aW9uIGVudW0gYW5kIHVwZGF0ZSBo
ZWFkZXJzLgorCisyMDE2LTA1LTI0ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2Fs
aWEuY29tPgorCiAgICAgICAgIFtjc3MtZ3JpZF0gRml4IGJlaGF2aW9yIG9mIGZsZXhpYmxlIHRy
YWNrIGJyZWFkdGhzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTc4MzQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCAwMjVmMTdkNmI0ZWY3
ZTExNWRlZGRjMDAzZmZmOGQ0ZWU5NDlkNTEwLi4yMzJiODU1MGZiZGQxNmVjNTI4YjI3MTcyZjhk
NzVjZDUyOWI0N2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNTgxNywyNSArNTgx
NywxNiBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VHcmlkTGluZU5hbWVzKENTU1BhcnNlclZhbHVl
TGlzdCYgaW5wdXRMaXN0LCBDU1NWYWx1ZUxpc3QmCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0
YXRpYyBib29sIGFsbFRyYWNrc0FyZUZpeGVkU2l6ZWQoQ1NTVmFsdWVMaXN0JiB2YWx1ZUxpc3Qp
CitzdGF0aWMgYm9vbCBpc0dyaWRUcmFja0ZpeGVkU2l6ZWQoY29uc3QgQ1NTVmFsdWUmIHZhbHVl
KQogewotICAgIGZvciAoYXV0byYgdmFsdWUgOiB2YWx1ZUxpc3QpIHsKLSAgICAgICAgaWYgKGlz
PENTU0dyaWRMaW5lTmFtZXNWYWx1ZT4odmFsdWUpKQotICAgICAgICAgICAgY29udGludWU7Ci0g
ICAgICAgIC8vIFRoZSBhdXRvLXJlcGVhdCB2YWx1ZSBob2xkcyBhIDxmaXhlZC1zaXplPiA9IDxm
aXhlZC1icmVhZHRoPiB8IG1pbm1heCggPGZpeGVkLWJyZWFkdGg+LCA8dHJhY2stYnJlYWR0aD4g
KQotICAgICAgICBpZiAoaXM8Q1NTR3JpZEF1dG9SZXBlYXRWYWx1ZT4odmFsdWUpKSB7Ci0gICAg
ICAgICAgICBpZiAoIWFsbFRyYWNrc0FyZUZpeGVkU2l6ZWQoZG93bmNhc3Q8Q1NTVmFsdWVMaXN0
Pih2YWx1ZS5nZXQoKSkpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
ICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIEFTU0VSVCh2YWx1ZS0+aXNQcmltaXRp
dmVWYWx1ZSgpIHx8ICh2YWx1ZS0+aXNGdW5jdGlvblZhbHVlKCkgJiYgZG93bmNhc3Q8Q1NTRnVu
Y3Rpb25WYWx1ZT4odmFsdWUuZ2V0KCkpLmFyZ3VtZW50cygpKSk7Ci0gICAgICAgIGNvbnN0IENT
U1ByaW1pdGl2ZVZhbHVlJiBwcmltaXRpdmVWYWx1ZSA9IHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVl
KCkKLSAgICAgICAgICAgID8gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlLmdldCgp
KQotICAgICAgICAgICAgOiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKmRvd25jYXN0PENT
U0Z1bmN0aW9uVmFsdWU+KHZhbHVlLmdldCgpKS5hcmd1bWVudHMoKS0+aXRlbSgwKSk7Ci0gICAg
ICAgIENTU1ZhbHVlSUQgdmFsdWVJRCA9IHByaW1pdGl2ZVZhbHVlLmdldFZhbHVlSUQoKTsKLSAg
ICAgICAgaWYgKHZhbHVlSUQgPT0gQ1NTVmFsdWVXZWJraXRNaW5Db250ZW50IHx8IHZhbHVlSUQg
PT0gQ1NTVmFsdWVXZWJraXRNYXhDb250ZW50IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8
IHByaW1pdGl2ZVZhbHVlLmlzRmxleCgpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IH0KKyAgICBBU1NFUlQodmFsdWUuaXNQcmltaXRpdmVWYWx1ZSgpIHx8ICh2YWx1ZS5pc0Z1bmN0
aW9uVmFsdWUoKSAmJiBkb3duY2FzdDxDU1NGdW5jdGlvblZhbHVlPih2YWx1ZSkuYXJndW1lbnRz
KCkpKTsKKyAgICBjb25zdCBDU1NQcmltaXRpdmVWYWx1ZSYgcHJpbWl0aXZlVmFsdWUgPSB2YWx1
ZS5pc1ByaW1pdGl2ZVZhbHVlKCkKKyAgICAgICAgPyBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1
ZT4odmFsdWUpCisgICAgICAgIDogZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCpkb3duY2Fz
dDxDU1NGdW5jdGlvblZhbHVlPih2YWx1ZSkuYXJndW1lbnRzKCktPml0ZW0oMCkpOworICAgIENT
U1ZhbHVlSUQgdmFsdWVJRCA9IHByaW1pdGl2ZVZhbHVlLmdldFZhbHVlSUQoKTsKKyAgICBpZiAo
dmFsdWVJRCA9PSBDU1NWYWx1ZVdlYmtpdE1pbkNvbnRlbnQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1
ZVdlYmtpdE1heENvbnRlbnQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUF1dG8gfHwgcHJpbWl0aXZl
VmFsdWUuaXNGbGV4KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHJldHVybiB0cnVl
OwogfQogCkBAIC01ODU3LDI0ICs1ODQ4LDMwIEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2Vy
OjpwYXJzZUdyaWRUcmFja0xpc3QoKQogCiAgICAgYm9vbCBzZWVuVHJhY2tTaXplT3JSZXBlYXRG
dW5jdGlvbiA9IGZhbHNlOwogICAgIGJvb2wgc2VlbkF1dG9SZXBlYXQgPSBmYWxzZTsKKyAgICBi
b29sIGFsbFRyYWNrc0FyZUZpeGVkU2l6ZWQgPSB0cnVlOwogICAgIHdoaWxlIChDU1NQYXJzZXJW
YWx1ZSogY3VycmVudFZhbHVlID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQoKSkgewogICAgICAgICBp
ZiAoaXNGb3J3YXJkU2xhc2hPcGVyYXRvcigqY3VycmVudFZhbHVlKSkKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBpZiAoY3VycmVudFZhbHVlLT51bml0ID09IENTU1BhcnNlclZhbHVlOjpG
dW5jdGlvbiAmJiBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShjdXJyZW50VmFsdWUtPmZ1
bmN0aW9uLT5uYW1lLCAicmVwZWF0KCIpKSB7CiAgICAgICAgICAgICBib29sIGlzQXV0b1JlcGVh
dDsKLSAgICAgICAgICAgIGlmICghcGFyc2VHcmlkVHJhY2tSZXBlYXRGdW5jdGlvbih2YWx1ZXMs
IGlzQXV0b1JlcGVhdCkpCisgICAgICAgICAgICBpZiAoIXBhcnNlR3JpZFRyYWNrUmVwZWF0RnVu
Y3Rpb24odmFsdWVzLCBpc0F1dG9SZXBlYXQsIGFsbFRyYWNrc0FyZUZpeGVkU2l6ZWQpKQogICAg
ICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICAgICAgaWYgKGlzQXV0b1JlcGVh
dCAmJiBzZWVuQXV0b1JlcGVhdCkKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICAgICAgICAgIHNlZW5BdXRvUmVwZWF0ID0gc2VlbkF1dG9SZXBlYXQgfHwgaXNBdXRvUmVwZWF0
OwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSA9
IHBhcnNlR3JpZFRyYWNrU2l6ZSgqbV92YWx1ZUxpc3QsIHNlZW5BdXRvUmVwZWF0ID8gRml4ZWRT
aXplT25seSA6IEFsbG93QWxsKTsKKyAgICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZT4gdmFsdWUg
PSBwYXJzZUdyaWRUcmFja1NpemUoKm1fdmFsdWVMaXN0KTsKICAgICAgICAgICAgIGlmICghdmFs
dWUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICBpZiAoYWxs
VHJhY2tzQXJlRml4ZWRTaXplZCkKKyAgICAgICAgICAgICAgICBhbGxUcmFja3NBcmVGaXhlZFNp
emVkID0gaXNHcmlkVHJhY2tGaXhlZFNpemVkKCp2YWx1ZSk7CiAgICAgICAgICAgICB2YWx1ZXMt
PmFwcGVuZCh2YWx1ZS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgfQogICAgICAgICBzZWVu
VHJhY2tTaXplT3JSZXBlYXRGdW5jdGlvbiA9IHRydWU7CiAKKyAgICAgICAgaWYgKHNlZW5BdXRv
UmVwZWF0ICYmICFhbGxUcmFja3NBcmVGaXhlZFNpemVkKQorICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisKICAgICAgICAgLy8gVGhpcyB3aWxsIGhhbmRsZSB0aGUgdHJhaWxpbmcgPGN1c3Rv
bS1pZGVudD4qIGluIHRoZSBncmFtbWFyLgogICAgICAgICB2YWx1ZSA9IG1fdmFsdWVMaXN0LT5j
dXJyZW50KCk7CiAgICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS0+dW5pdCA9PSBDU1NQYXJzZXJW
YWx1ZTo6VmFsdWVMaXN0KQpAQCAtNTg4NCwxNSArNTg4MSwxMCBAQCBSZWZQdHI8Q1NTVmFsdWU+
IENTU1BhcnNlcjo6cGFyc2VHcmlkVHJhY2tMaXN0KCkKICAgICBpZiAoIXNlZW5UcmFja1NpemVP
clJlcGVhdEZ1bmN0aW9uKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIC8vIDxhdXRv
LXJlcGVhdD4gcmVxdWlyZXMgZGVmaW5pdGUgbWluaW11bSB0cmFjayBzaXplcyBpbiBvcmRlciB0
byBjb21wdXRlIHRoZSBudW1iZXIgb2YgcmVwZXRpdGlvbnMuCi0gICAgLy8gVGhlIGFib3ZlIHdo
aWxlIGxvb3AgZGV0ZWN0cyB0aG9zZSBhcHBlYXJhbmNlcyBhZnRlciB0aGUgPGF1dG8tcmVwZWF0
PiBidXQgbm90IHRoZSBvbmVzIGJlZm9yZS4KLSAgICBpZiAoc2VlbkF1dG9SZXBlYXQgJiYgIWFs
bFRyYWNrc0FyZUZpeGVkU2l6ZWQodmFsdWVzKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0K
ICAgICByZXR1cm4gV1RGTW92ZSh2YWx1ZXMpOwogfQogCi1ib29sIENTU1BhcnNlcjo6cGFyc2VH
cmlkVHJhY2tSZXBlYXRGdW5jdGlvbihDU1NWYWx1ZUxpc3QmIGxpc3QsIGJvb2wmIGlzQXV0b1Jl
cGVhdCkKK2Jvb2wgQ1NTUGFyc2VyOjpwYXJzZUdyaWRUcmFja1JlcGVhdEZ1bmN0aW9uKENTU1Zh
bHVlTGlzdCYgbGlzdCwgYm9vbCYgaXNBdXRvUmVwZWF0LCBib29sJiBhbGxUcmFja3NBcmVGaXhl
ZFNpemVkKQogewogICAgIEFTU0VSVChpc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkpOwogCkBAIC01
OTIyLDE0ICs1OTE0LDE1IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUdyaWRUcmFja1JlcGVhdEZ1
bmN0aW9uKENTU1ZhbHVlTGlzdCYgbGlzdCwgYm9vbCYgaXNBdXRvUmVwCiAgICAgICAgIHBhcnNl
R3JpZExpbmVOYW1lcygqYXJndW1lbnRzLCByZXBlYXRlZFZhbHVlcyk7CiAKICAgICB1bnNpZ25l
ZCBudW1iZXJPZlRyYWNrcyA9IDA7Ci0gICAgVHJhY2tTaXplUmVzdHJpY3Rpb24gcmVzdHJpY3Rp
b24gPSBpc0F1dG9SZXBlYXQgPyBGaXhlZFNpemVPbmx5IDogQWxsb3dBbGw7CiAgICAgd2hpbGUg
KGFyZ3VtZW50cy0+Y3VycmVudCgpKSB7CiAgICAgICAgIGlmIChpc0F1dG9SZXBlYXQgJiYgbnVt
YmVyT2ZUcmFja3MpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgUmVmUHRy
PENTU1ZhbHVlPiB0cmFja1NpemUgPSBwYXJzZUdyaWRUcmFja1NpemUoKmFyZ3VtZW50cywgcmVz
dHJpY3Rpb24pOworICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+IHRyYWNrU2l6ZSA9IHBhcnNlR3Jp
ZFRyYWNrU2l6ZSgqYXJndW1lbnRzKTsKICAgICAgICAgaWYgKCF0cmFja1NpemUpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChhbGxUcmFja3NBcmVGaXhlZFNpemVkKQor
ICAgICAgICAgICAgYWxsVHJhY2tzQXJlRml4ZWRTaXplZCA9IGlzR3JpZFRyYWNrRml4ZWRTaXpl
ZCgqdHJhY2tTaXplKTsKIAogICAgICAgICByZXBlYXRlZFZhbHVlcy0+YXBwZW5kKHRyYWNrU2l6
ZS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgKytudW1iZXJPZlRyYWNrczsKQEAgLTU5NjEs
NyArNTk1NCw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUdyaWRUcmFja1JlcGVhdEZ1bmN0aW9u
KENTU1ZhbHVlTGlzdCYgbGlzdCwgYm9vbCYgaXNBdXRvUmVwCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLVJlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUdyaWRUcmFja1NpemUoQ1NTUGFy
c2VyVmFsdWVMaXN0JiBpbnB1dExpc3QsIFRyYWNrU2l6ZVJlc3RyaWN0aW9uIHJlc3RyaWN0aW9u
KQorUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNrU2l6ZShDU1NQYXJz
ZXJWYWx1ZUxpc3QmIGlucHV0TGlzdCkKIHsKICAgICBBU1NFUlQoaXNDU1NHcmlkTGF5b3V0RW5h
YmxlZCgpKTsKIApAQCAtNTk3Nyw5ICs1OTcwLDggQEAgUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJz
ZXI6OnBhcnNlR3JpZFRyYWNrU2l6ZShDU1NQYXJzZXJWYWx1ZUxpc3QmIGlucHV0TGlzdCwgVHIK
ICAgICAgICAgaWYgKCFhcmd1bWVudHMgfHwgYXJndW1lbnRzLT5zaXplKCkgIT0gMyB8fCAhaXND
b21tYShhcmd1bWVudHMtPnZhbHVlQXQoMSkpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKLSAgICAgICAgVHJhY2tTaXplUmVzdHJpY3Rpb24gbWluVHJhY2tCcmVhZHRoUmVzdHJpY3Rp
b24gPSByZXN0cmljdGlvbiA9PSBBbGxvd0FsbCA/IEluZmxleGlibGVTaXplT25seSA6IHJlc3Ry
aWN0aW9uOwotICAgICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG1pblRyYWNrQnJlYWR0
aCA9IHBhcnNlR3JpZEJyZWFkdGgoKmFyZ3VtZW50cy0+dmFsdWVBdCgwKSwgbWluVHJhY2tCcmVh
ZHRoUmVzdHJpY3Rpb24pOwotICAgICAgICBpZiAoIW1pblRyYWNrQnJlYWR0aCkKKyAgICAgICAg
UmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBtaW5UcmFja0JyZWFkdGggPSBwYXJzZUdyaWRCcmVh
ZHRoKCphcmd1bWVudHMtPnZhbHVlQXQoMCkpOworICAgICAgICBpZiAoIW1pblRyYWNrQnJlYWR0
aCB8fCBtaW5UcmFja0JyZWFkdGgtPmlzRmxleCgpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKICAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBtYXhUcmFja0JyZWFkdGgg
PSBwYXJzZUdyaWRCcmVhZHRoKCphcmd1bWVudHMtPnZhbHVlQXQoMikpOwpAQCAtNTk5MiwyMyAr
NTk4NCwxOCBAQCBSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VHcmlkVHJhY2tTaXpl
KENTU1BhcnNlclZhbHVlTGlzdCYgaW5wdXRMaXN0LCBUcgogICAgICAgICByZXR1cm4gQ1NTRnVu
Y3Rpb25WYWx1ZTo6Y3JlYXRlKCJtaW5tYXgoIiwgV1RGTW92ZShwYXJzZWRBcmd1bWVudHMpKTsK
ICAgICB9CiAKLSAgICByZXR1cm4gcGFyc2VHcmlkQnJlYWR0aChjdXJyZW50VmFsdWUsIHJlc3Ry
aWN0aW9uKTsKKyAgICByZXR1cm4gcGFyc2VHcmlkQnJlYWR0aChjdXJyZW50VmFsdWUpOwogfQog
Ci1SZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VHcmlkQnJlYWR0aChD
U1NQYXJzZXJWYWx1ZSYgdmFsdWUsIFRyYWNrU2l6ZVJlc3RyaWN0aW9uIHJlc3RyaWN0aW9uKQor
UmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlR3JpZEJyZWFkdGgoQ1NT
UGFyc2VyVmFsdWUmIHZhbHVlKQogewogICAgIEFTU0VSVChpc0NTU0dyaWRMYXlvdXRFbmFibGVk
KCkpOwogCiAgICAgaWYgKHZhbHVlLmlkID09IENTU1ZhbHVlV2Via2l0TWluQ29udGVudCB8fCB2
YWx1ZS5pZCA9PSBDU1NWYWx1ZVdlYmtpdE1heENvbnRlbnQgfHwgdmFsdWUuaWQgPT0gQ1NTVmFs
dWVBdXRvKSB7Ci0gICAgICAgIGlmIChyZXN0cmljdGlvbiA9PSBGaXhlZFNpemVPbmx5KQotICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNp
bmdsZXRvbigpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZSh2YWx1ZS5pZCk7CiAgICAgfQogCiAgICAg
aWYgKHZhbHVlLnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19GUikgewotICAgICAgICBp
ZiAocmVzdHJpY3Rpb24gPT0gRml4ZWRTaXplT25seSB8fCByZXN0cmljdGlvbiA9PSBJbmZsZXhp
YmxlU2l6ZU9ubHkpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQogICAgICAgICBkb3Vi
bGUgZmxleFZhbHVlID0gdmFsdWUuZlZhbHVlOwogCiAgICAgICAgIC8vIEZyYWN0aW9uYWwgdW5p
dCBpcyBhIG5vbi1uZWdhdGl2ZSBkaW1lbnNpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKaW5kZXgg
Njk0MjI2ZWRkYmIzYTZkOGY2NDFlYWZkMzM1ZjAyMjYwZDk4MTI3Yy4uMzBhZGE4NTFlYzk1Yjkz
NTdiMWEyNGViODMzNWM1Y2EyNjIwYjJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaApAQCAtMjM5
LDEwICsyMzksOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBwYXJzZUdyaWRHYXBTaG9ydGhhbmQoYm9v
bCBpbXBvcnRhbnQpOwogICAgIGJvb2wgcGFyc2VTaW5nbGVHcmlkQXJlYUxvbmdoYW5kKFJlZlB0
cjxDU1NWYWx1ZT4mKTsKICAgICBSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlR3JpZFRyYWNrTGlzdCgp
OwotICAgIGJvb2wgcGFyc2VHcmlkVHJhY2tSZXBlYXRGdW5jdGlvbihDU1NWYWx1ZUxpc3QmLCBi
b29sJiBpc0F1dG9SZXBlYXQpOwotICAgIGVudW0gVHJhY2tTaXplUmVzdHJpY3Rpb24geyBGaXhl
ZFNpemVPbmx5LCBJbmZsZXhpYmxlU2l6ZU9ubHksIEFsbG93QWxsIH07Ci0gICAgUmVmUHRyPENT
U1ZhbHVlPiBwYXJzZUdyaWRUcmFja1NpemUoQ1NTUGFyc2VyVmFsdWVMaXN0JiBpbnB1dExpc3Qs
IFRyYWNrU2l6ZVJlc3RyaWN0aW9uID0gQWxsb3dBbGwpOwotICAgIFJlZlB0cjxDU1NQcmltaXRp
dmVWYWx1ZT4gcGFyc2VHcmlkQnJlYWR0aChDU1NQYXJzZXJWYWx1ZSYsIFRyYWNrU2l6ZVJlc3Ry
aWN0aW9uID0gQWxsb3dBbGwpOworICAgIGJvb2wgcGFyc2VHcmlkVHJhY2tSZXBlYXRGdW5jdGlv
bihDU1NWYWx1ZUxpc3QmLCBib29sJiBpc0F1dG9SZXBlYXQsIGJvb2wmIGFsbFRyYWNrc0FyZUZp
eGVkU2l6ZWQpOworICAgIFJlZlB0cjxDU1NWYWx1ZT4gcGFyc2VHcmlkVHJhY2tTaXplKENTU1Bh
cnNlclZhbHVlTGlzdCYgaW5wdXRMaXN0KTsKKyAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+
IHBhcnNlR3JpZEJyZWFkdGgoQ1NTUGFyc2VyVmFsdWUmKTsKICAgICBib29sIHBhcnNlR3JpZFRl
bXBsYXRlQXJlYXNSb3coTmFtZWRHcmlkQXJlYU1hcCYsIGNvbnN0IHVuc2lnbmVkLCB1bnNpZ25l
ZCYpOwogICAgIFJlZlB0cjxDU1NWYWx1ZT4gcGFyc2VHcmlkVGVtcGxhdGVBcmVhcygpOwogICAg
IGJvb2wgcGFyc2VHcmlkTGluZU5hbWVzKENTU1BhcnNlclZhbHVlTGlzdCYsIENTU1ZhbHVlTGlz
dCYsIENTU0dyaWRMaW5lTmFtZXNWYWx1ZSogPSBudWxscHRyKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279748</attachid>
            <date>2016-05-25 01:50:49 -0700</date>
            <delta_ts>2016-05-25 06:12:24 -0700</delta_ts>
            <desc>=Patch for landing</desc>
            <filename>bug-158021-20160525105155.patch</filename>
            <type>text/plain</type>
            <size>11187</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxMzI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGJhY2I0ZTZjZTM4OWE1
NDczZTA5NjIzN2Y4YmI2NjZhNWEwMzkxZC4uMTY0NzdiY2VjN2JlNmY4OGU4YTA4Y2UwMWM5ZjI4
M2QzM2EzODMxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ0IEBACiAyMDE2LTA1LTI0ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCisgICAgICAgIFtjc3MtZ3Jp
ZF0gU2ltcGxpZnkgZ3JpZCB0cmFjayBzaXplcyBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgwMjEKKworICAgICAgICBSZXZpZXdlZCBi
eSBTZXJnaW8gVmlsbGFyIFNlbmluLgorCisgICAgICAgIFByZXZpb3VzbHkgb25jZSB3ZSBzYXcg
YW4gYXV0by1yZXBlYXQgZnVuY3Rpb24sCisgICAgICAgIHdlIHBhc3NlZCB0aGUgIkZpeGVkU2l6
ZU9ubHkiIHJlc3RyaWN0aW9uIHRvIHRoZSByZXN0IG9mIG1ldGhvZHMuCisgICAgICAgIFRoYXQg
d2F5IHdlIHdlcmUgc3VyZSB0aGF0IGFsbCB0aGUgdHJhY2tzIGFmdGVyIHRoZSBhdXRvLXJlcGVh
dAorICAgICAgICBoYWQgZml4ZWQgc2l6ZXMuCisgICAgICAgIEJ1dCB3ZSBuZWVkZWQgdG8gY2Fs
bCBhbGxUcmFja3NBcmVGaXhlZFNpemVkKCkgdG8gYmUgc3VyZSB0aGF0CisgICAgICAgIHRoZSB0
cmFja3MgYmVmb3JlIHRoZSBhdXRvLXJlcGVhdCBoYWQgZml4ZWQgc2l6ZXMgdG9vLgorCisgICAg
ICAgIE5vdyB3ZSdyZSBpbnRyb2R1Y2luZyBhIG5ldyBib29sZWFuIHxhbGxUcmFja3NBcmVGaXhl
ZFNpemVkfCwKKyAgICAgICAgdG8gY2hlY2sgaW4gYWR2YW5jZSBpZiB0aGUgZGVjbGFyYXRpb24g
Y29udGFpbnMgYW55IHRyYWNrIG5vdCBmaXhlZC4KKyAgICAgICAgSWYgdGhhdCdzIHRoZSBjYXNl
IGFuZCB3ZSBmb3VuZCBhbiBhdXRvLXJlcGVhdCBtZXRob2QsCisgICAgICAgIHdlIGNvbnNpZGVy
IGl0IGludmFsaWQuCisgICAgICAgIFdpdGggdGhpcyBhcHByb2FjaCB3ZSBhdm9pZCB0aGUgbG9v
cCB0byB2ZXJpZnkKKyAgICAgICAgdGhhdCBhbGwgdGhlIHRyYWNrcyAoYmVmb3JlIGFuZCBhZnRl
ciB0aGUgYXV0by1yZXBlYXQpIGFyZSBmaXhlZC4KKyAgICAgICAgSXQgYWxzbyBhbGxvd3MgdXMg
dG8gc2ltcGxpZnkgdGhlIGNvZGUgYW5kIGF2b2lkIHBhc3NpbmcKKyAgICAgICAgdGhlIHJlc3Ry
aWN0aW9uIHRvIGFsbCB0aGUgbWV0aG9kcyBwYXJzaW5nIHRoZSB0cmFjayBzaXplLgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cywgbm8gY2hhbmdlIG9mIGJlaGF2aW9yLgorCisgICAgICAgICogY3Nz
L0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc0dyaWRUcmFja0ZpeGVkU2l6ZWQp
OiBOZXcgbWV0aG9kIHRvIGNoZWNrIGlmIGEgZ3JpZCB0cmFjaworICAgICAgICBzaXplIGlzIGZp
eGVkIG9yIG5vdCAoYmFzZWQgb24gb2xkIGFsbFRyYWNrc0FyZUZpeGVkU2l6ZWQoKSkuCisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNrTGlzdCk6IEFkZCBuZXcgYm9v
bGVhbiB0byBkZXRlY3QKKyAgICAgICAgaWYgYW55IHRyYWNrIGhhcyBub3QgYSBmaXhlZCBzaXpl
LgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUdyaWRUcmFja1JlcGVhdEZ1bmN0
aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNr
U2l6ZSk6IFJlbW92ZSB1c2FnZSBvZgorICAgICAgICBUcmFja1NpemVSZXN0cmljdGlvbiBlbnVt
LgorICAgICAgICBDaGVjayBoZXJlIGlmIHxtaW5UcmFja0JyZWFkdGh8IGlzIGEgZmxleGlibGUg
c2l6ZS4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VHcmlkQnJlYWR0aCk6IFJl
bW92ZSB1c2FnZSBvZgorICAgICAgICBUcmFja1NpemVSZXN0cmljdGlvbiBlbnVtLgorICAgICAg
ICAoV2ViQ29yZTo6YWxsVHJhY2tzQXJlRml4ZWRTaXplZCk6IERlbGV0ZWQuCisgICAgICAgICog
Y3NzL0NTU1BhcnNlci5oOiBSZW1vdmUgVHJhY2tTaXplUmVzdHJpY3Rpb24gZW51bSBhbmQgdXBk
YXRlIGhlYWRlcnMuCisKKzIwMTYtMDUtMjQgIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdv
QGlnYWxpYS5jb20+CisKICAgICAgICAgW2Nzcy1ncmlkXSBGaXggYmVoYXZpb3Igb2YgZmxleGli
bGUgdHJhY2sgYnJlYWR0aHMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1NzgzNAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDAyNWYxN2Q2
YjRlZjdlMTE1ZGVkZGMwMDNmZmY4ZDRlZTk0OWQ1MTAuLmI1NzZmZDAyMjI2YzM1OGQyMGM1YjU5
ZjFkODlkYTZhZDA1MTc1NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC01ODE3LDI1
ICs1ODE3LDE3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUdyaWRMaW5lTmFtZXMoQ1NTUGFyc2Vy
VmFsdWVMaXN0JiBpbnB1dExpc3QsIENTU1ZhbHVlTGlzdCYKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotc3RhdGljIGJvb2wgYWxsVHJhY2tzQXJlRml4ZWRTaXplZChDU1NWYWx1ZUxpc3QmIHZhbHVl
TGlzdCkKK3N0YXRpYyBib29sIGlzR3JpZFRyYWNrRml4ZWRTaXplZChjb25zdCBDU1NWYWx1ZSYg
dmFsdWUpCiB7Ci0gICAgZm9yIChhdXRvJiB2YWx1ZSA6IHZhbHVlTGlzdCkgewotICAgICAgICBp
ZiAoaXM8Q1NTR3JpZExpbmVOYW1lc1ZhbHVlPih2YWx1ZSkpCi0gICAgICAgICAgICBjb250aW51
ZTsKLSAgICAgICAgLy8gVGhlIGF1dG8tcmVwZWF0IHZhbHVlIGhvbGRzIGEgPGZpeGVkLXNpemU+
ID0gPGZpeGVkLWJyZWFkdGg+IHwgbWlubWF4KCA8Zml4ZWQtYnJlYWR0aD4sIDx0cmFjay1icmVh
ZHRoPiApCi0gICAgICAgIGlmIChpczxDU1NHcmlkQXV0b1JlcGVhdFZhbHVlPih2YWx1ZSkpIHsK
LSAgICAgICAgICAgIGlmICghYWxsVHJhY2tzQXJlRml4ZWRTaXplZChkb3duY2FzdDxDU1NWYWx1
ZUxpc3Q+KHZhbHVlLmdldCgpKSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLSAgICAgICAgQVNTRVJUKHZhbHVlLT5pc1By
aW1pdGl2ZVZhbHVlKCkgfHwgKHZhbHVlLT5pc0Z1bmN0aW9uVmFsdWUoKSAmJiBkb3duY2FzdDxD
U1NGdW5jdGlvblZhbHVlPih2YWx1ZS5nZXQoKSkuYXJndW1lbnRzKCkpKTsKLSAgICAgICAgY29u
c3QgQ1NTUHJpbWl0aXZlVmFsdWUmIHByaW1pdGl2ZVZhbHVlID0gdmFsdWUtPmlzUHJpbWl0aXZl
VmFsdWUoKQotICAgICAgICAgICAgPyBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUu
Z2V0KCkpCi0gICAgICAgICAgICA6IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqZG93bmNh
c3Q8Q1NTRnVuY3Rpb25WYWx1ZT4odmFsdWUuZ2V0KCkpLmFyZ3VtZW50cygpLT5pdGVtKDApKTsK
LSAgICAgICAgQ1NTVmFsdWVJRCB2YWx1ZUlEID0gcHJpbWl0aXZlVmFsdWUuZ2V0VmFsdWVJRCgp
OwotICAgICAgICBpZiAodmFsdWVJRCA9PSBDU1NWYWx1ZVdlYmtpdE1pbkNvbnRlbnQgfHwgdmFs
dWVJRCA9PSBDU1NWYWx1ZVdlYmtpdE1heENvbnRlbnQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUF1
dG8gfHwgcHJpbWl0aXZlVmFsdWUuaXNGbGV4KCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgfQorICAgIEFTU0VSVCh2YWx1ZS5pc1ByaW1pdGl2ZVZhbHVlKCkgfHwgKHZhbHVlLmlz
RnVuY3Rpb25WYWx1ZSgpICYmIGRvd25jYXN0PENTU0Z1bmN0aW9uVmFsdWU+KHZhbHVlKS5hcmd1
bWVudHMoKSkpOworICAgIGNvbnN0IGF1dG8mIHByaW1pdGl2ZVZhbHVlID0gdmFsdWUuaXNQcmlt
aXRpdmVWYWx1ZSgpCisgICAgICAgID8gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVl
KQorICAgICAgICA6IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqZG93bmNhc3Q8Q1NTRnVu
Y3Rpb25WYWx1ZT4odmFsdWUpLmFyZ3VtZW50cygpLT5pdGVtKDApKTsKKyAgICBDU1NWYWx1ZUlE
IHZhbHVlSUQgPSBwcmltaXRpdmVWYWx1ZS5nZXRWYWx1ZUlEKCk7CisgICAgaWYgKHZhbHVlSUQg
PT0gQ1NTVmFsdWVXZWJraXRNaW5Db250ZW50IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVXZWJraXRN
YXhDb250ZW50IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8IHByaW1pdGl2ZVZhbHVlLmlz
RmxleCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBBU1NFUlQocHJpbWl0aXZlVmFs
dWUuaXNMZW5ndGgoKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTU4NTcsMjQgKzU4NDks
MzAgQEAgUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNrTGlzdCgpCiAK
ICAgICBib29sIHNlZW5UcmFja1NpemVPclJlcGVhdEZ1bmN0aW9uID0gZmFsc2U7CiAgICAgYm9v
bCBzZWVuQXV0b1JlcGVhdCA9IGZhbHNlOworICAgIGJvb2wgYWxsVHJhY2tzQXJlRml4ZWRTaXpl
ZCA9IHRydWU7CiAgICAgd2hpbGUgKENTU1BhcnNlclZhbHVlKiBjdXJyZW50VmFsdWUgPSBtX3Zh
bHVlTGlzdC0+Y3VycmVudCgpKSB7CiAgICAgICAgIGlmIChpc0ZvcndhcmRTbGFzaE9wZXJhdG9y
KCpjdXJyZW50VmFsdWUpKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGlmIChjdXJyZW50
VmFsdWUtPnVuaXQgPT0gQ1NTUGFyc2VyVmFsdWU6OkZ1bmN0aW9uICYmIGVxdWFsTGV0dGVyc0ln
bm9yaW5nQVNDSUlDYXNlKGN1cnJlbnRWYWx1ZS0+ZnVuY3Rpb24tPm5hbWUsICJyZXBlYXQoIikp
IHsKICAgICAgICAgICAgIGJvb2wgaXNBdXRvUmVwZWF0OwotICAgICAgICAgICAgaWYgKCFwYXJz
ZUdyaWRUcmFja1JlcGVhdEZ1bmN0aW9uKHZhbHVlcywgaXNBdXRvUmVwZWF0KSkKKyAgICAgICAg
ICAgIGlmICghcGFyc2VHcmlkVHJhY2tSZXBlYXRGdW5jdGlvbih2YWx1ZXMsIGlzQXV0b1JlcGVh
dCwgYWxsVHJhY2tzQXJlRml4ZWRTaXplZCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgICAgICAgICBpZiAoaXNBdXRvUmVwZWF0ICYmIHNlZW5BdXRvUmVwZWF0KQogICAg
ICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICAgICAgc2VlbkF1dG9SZXBlYXQg
PSBzZWVuQXV0b1JlcGVhdCB8fCBpc0F1dG9SZXBlYXQ7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlID0gcGFyc2VHcmlkVHJhY2tTaXplKCptX3Zh
bHVlTGlzdCwgc2VlbkF1dG9SZXBlYXQgPyBGaXhlZFNpemVPbmx5IDogQWxsb3dBbGwpOworICAg
ICAgICAgICAgUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSA9IHBhcnNlR3JpZFRyYWNrU2l6ZSgqbV92
YWx1ZUxpc3QpOwogICAgICAgICAgICAgaWYgKCF2YWx1ZSkKICAgICAgICAgICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICAgICAgICAgIGlmIChhbGxUcmFja3NBcmVGaXhlZFNpemVkKQorICAg
ICAgICAgICAgICAgIGFsbFRyYWNrc0FyZUZpeGVkU2l6ZWQgPSBpc0dyaWRUcmFja0ZpeGVkU2l6
ZWQoKnZhbHVlKTsKICAgICAgICAgICAgIHZhbHVlcy0+YXBwZW5kKHZhbHVlLnJlbGVhc2VOb25O
dWxsKCkpOwogICAgICAgICB9CiAgICAgICAgIHNlZW5UcmFja1NpemVPclJlcGVhdEZ1bmN0aW9u
ID0gdHJ1ZTsKIAorICAgICAgICBpZiAoc2VlbkF1dG9SZXBlYXQgJiYgIWFsbFRyYWNrc0FyZUZp
eGVkU2l6ZWQpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwogICAgICAgICAvLyBUaGlz
IHdpbGwgaGFuZGxlIHRoZSB0cmFpbGluZyA8Y3VzdG9tLWlkZW50PiogaW4gdGhlIGdyYW1tYXIu
CiAgICAgICAgIHZhbHVlID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQoKTsKICAgICAgICAgaWYgKHZh
bHVlICYmIHZhbHVlLT51bml0ID09IENTU1BhcnNlclZhbHVlOjpWYWx1ZUxpc3QpCkBAIC01ODg0
LDE1ICs1ODgyLDEwIEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUdyaWRUcmFj
a0xpc3QoKQogICAgIGlmICghc2VlblRyYWNrU2l6ZU9yUmVwZWF0RnVuY3Rpb24pCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogCi0gICAgLy8gPGF1dG8tcmVwZWF0PiByZXF1aXJlcyBkZWZpbml0
ZSBtaW5pbXVtIHRyYWNrIHNpemVzIGluIG9yZGVyIHRvIGNvbXB1dGUgdGhlIG51bWJlciBvZiBy
ZXBldGl0aW9ucy4KLSAgICAvLyBUaGUgYWJvdmUgd2hpbGUgbG9vcCBkZXRlY3RzIHRob3NlIGFw
cGVhcmFuY2VzIGFmdGVyIHRoZSA8YXV0by1yZXBlYXQ+IGJ1dCBub3QgdGhlIG9uZXMgYmVmb3Jl
LgotICAgIGlmIChzZWVuQXV0b1JlcGVhdCAmJiAhYWxsVHJhY2tzQXJlRml4ZWRTaXplZCh2YWx1
ZXMpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQogICAgIHJldHVybiBXVEZNb3ZlKHZhbHVl
cyk7CiB9CiAKLWJvb2wgQ1NTUGFyc2VyOjpwYXJzZUdyaWRUcmFja1JlcGVhdEZ1bmN0aW9uKENT
U1ZhbHVlTGlzdCYgbGlzdCwgYm9vbCYgaXNBdXRvUmVwZWF0KQorYm9vbCBDU1NQYXJzZXI6OnBh
cnNlR3JpZFRyYWNrUmVwZWF0RnVuY3Rpb24oQ1NTVmFsdWVMaXN0JiBsaXN0LCBib29sJiBpc0F1
dG9SZXBlYXQsIGJvb2wmIGFsbFRyYWNrc0FyZUZpeGVkU2l6ZWQpCiB7CiAgICAgQVNTRVJUKGlz
Q1NTR3JpZExheW91dEVuYWJsZWQoKSk7CiAKQEAgLTU5MjIsMTQgKzU5MTUsMTUgQEAgYm9vbCBD
U1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNrUmVwZWF0RnVuY3Rpb24oQ1NTVmFsdWVMaXN0JiBsaXN0
LCBib29sJiBpc0F1dG9SZXAKICAgICAgICAgcGFyc2VHcmlkTGluZU5hbWVzKCphcmd1bWVudHMs
IHJlcGVhdGVkVmFsdWVzKTsKIAogICAgIHVuc2lnbmVkIG51bWJlck9mVHJhY2tzID0gMDsKLSAg
ICBUcmFja1NpemVSZXN0cmljdGlvbiByZXN0cmljdGlvbiA9IGlzQXV0b1JlcGVhdCA/IEZpeGVk
U2l6ZU9ubHkgOiBBbGxvd0FsbDsKICAgICB3aGlsZSAoYXJndW1lbnRzLT5jdXJyZW50KCkpIHsK
ICAgICAgICAgaWYgKGlzQXV0b1JlcGVhdCAmJiBudW1iZXJPZlRyYWNrcykKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+IHRyYWNrU2l6ZSA9IHBh
cnNlR3JpZFRyYWNrU2l6ZSgqYXJndW1lbnRzLCByZXN0cmljdGlvbik7CisgICAgICAgIFJlZlB0
cjxDU1NWYWx1ZT4gdHJhY2tTaXplID0gcGFyc2VHcmlkVHJhY2tTaXplKCphcmd1bWVudHMpOwog
ICAgICAgICBpZiAoIXRyYWNrU2l6ZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgaWYgKGFsbFRyYWNrc0FyZUZpeGVkU2l6ZWQpCisgICAgICAgICAgICBhbGxUcmFja3NBcmVG
aXhlZFNpemVkID0gaXNHcmlkVHJhY2tGaXhlZFNpemVkKCp0cmFja1NpemUpOwogCiAgICAgICAg
IHJlcGVhdGVkVmFsdWVzLT5hcHBlbmQodHJhY2tTaXplLnJlbGVhc2VOb25OdWxsKCkpOwogICAg
ICAgICArK251bWJlck9mVHJhY2tzOwpAQCAtNTk2MSw3ICs1OTU1LDcgQEAgYm9vbCBDU1NQYXJz
ZXI6OnBhcnNlR3JpZFRyYWNrUmVwZWF0RnVuY3Rpb24oQ1NTVmFsdWVMaXN0JiBsaXN0LCBib29s
JiBpc0F1dG9SZXAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUmVmUHRyPENTU1ZhbHVlPiBDU1NQ
YXJzZXI6OnBhcnNlR3JpZFRyYWNrU2l6ZShDU1NQYXJzZXJWYWx1ZUxpc3QmIGlucHV0TGlzdCwg
VHJhY2tTaXplUmVzdHJpY3Rpb24gcmVzdHJpY3Rpb24pCitSZWZQdHI8Q1NTVmFsdWU+IENTU1Bh
cnNlcjo6cGFyc2VHcmlkVHJhY2tTaXplKENTU1BhcnNlclZhbHVlTGlzdCYgaW5wdXRMaXN0KQog
ewogICAgIEFTU0VSVChpc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkpOwogCkBAIC01OTc3LDkgKzU5
NzEsOCBAQCBSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VHcmlkVHJhY2tTaXplKENT
U1BhcnNlclZhbHVlTGlzdCYgaW5wdXRMaXN0LCBUcgogICAgICAgICBpZiAoIWFyZ3VtZW50cyB8
fCBhcmd1bWVudHMtPnNpemUoKSAhPSAzIHx8ICFpc0NvbW1hKGFyZ3VtZW50cy0+dmFsdWVBdCgx
KSkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICBUcmFja1NpemVSZXN0
cmljdGlvbiBtaW5UcmFja0JyZWFkdGhSZXN0cmljdGlvbiA9IHJlc3RyaWN0aW9uID09IEFsbG93
QWxsID8gSW5mbGV4aWJsZVNpemVPbmx5IDogcmVzdHJpY3Rpb247Ci0gICAgICAgIFJlZlB0cjxD
U1NQcmltaXRpdmVWYWx1ZT4gbWluVHJhY2tCcmVhZHRoID0gcGFyc2VHcmlkQnJlYWR0aCgqYXJn
dW1lbnRzLT52YWx1ZUF0KDApLCBtaW5UcmFja0JyZWFkdGhSZXN0cmljdGlvbik7Ci0gICAgICAg
IGlmICghbWluVHJhY2tCcmVhZHRoKQorICAgICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+
IG1pblRyYWNrQnJlYWR0aCA9IHBhcnNlR3JpZEJyZWFkdGgoKmFyZ3VtZW50cy0+dmFsdWVBdCgw
KSk7CisgICAgICAgIGlmICghbWluVHJhY2tCcmVhZHRoIHx8IG1pblRyYWNrQnJlYWR0aC0+aXNG
bGV4KCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgICAgICBSZWZQdHI8Q1NT
UHJpbWl0aXZlVmFsdWU+IG1heFRyYWNrQnJlYWR0aCA9IHBhcnNlR3JpZEJyZWFkdGgoKmFyZ3Vt
ZW50cy0+dmFsdWVBdCgyKSk7CkBAIC01OTkyLDIzICs1OTg1LDE3IEBAIFJlZlB0cjxDU1NWYWx1
ZT4gQ1NTUGFyc2VyOjpwYXJzZUdyaWRUcmFja1NpemUoQ1NTUGFyc2VyVmFsdWVMaXN0JiBpbnB1
dExpc3QsIFRyCiAgICAgICAgIHJldHVybiBDU1NGdW5jdGlvblZhbHVlOjpjcmVhdGUoIm1pbm1h
eCgiLCBXVEZNb3ZlKHBhcnNlZEFyZ3VtZW50cykpOwogICAgIH0KIAotICAgIHJldHVybiBwYXJz
ZUdyaWRCcmVhZHRoKGN1cnJlbnRWYWx1ZSwgcmVzdHJpY3Rpb24pOworICAgIHJldHVybiBwYXJz
ZUdyaWRCcmVhZHRoKGN1cnJlbnRWYWx1ZSk7CiB9CiAKLVJlZlB0cjxDU1NQcmltaXRpdmVWYWx1
ZT4gQ1NTUGFyc2VyOjpwYXJzZUdyaWRCcmVhZHRoKENTU1BhcnNlclZhbHVlJiB2YWx1ZSwgVHJh
Y2tTaXplUmVzdHJpY3Rpb24gcmVzdHJpY3Rpb24pCitSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+
IENTU1BhcnNlcjo6cGFyc2VHcmlkQnJlYWR0aChDU1NQYXJzZXJWYWx1ZSYgdmFsdWUpCiB7CiAg
ICAgQVNTRVJUKGlzQ1NTR3JpZExheW91dEVuYWJsZWQoKSk7CiAKLSAgICBpZiAodmFsdWUuaWQg
PT0gQ1NTVmFsdWVXZWJraXRNaW5Db250ZW50IHx8IHZhbHVlLmlkID09IENTU1ZhbHVlV2Via2l0
TWF4Q29udGVudCB8fCB2YWx1ZS5pZCA9PSBDU1NWYWx1ZUF1dG8pIHsKLSAgICAgICAgaWYgKHJl
c3RyaWN0aW9uID09IEZpeGVkU2l6ZU9ubHkpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICBpZiAodmFsdWUuaWQgPT0gQ1NTVmFsdWVXZWJraXRNaW5Db250ZW50IHx8IHZhbHVlLmlk
ID09IENTU1ZhbHVlV2Via2l0TWF4Q29udGVudCB8fCB2YWx1ZS5pZCA9PSBDU1NWYWx1ZUF1dG8p
CiAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUlkZW50aWZp
ZXJWYWx1ZSh2YWx1ZS5pZCk7Ci0gICAgfQogCiAgICAgaWYgKHZhbHVlLnVuaXQgPT0gQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU19GUikgewotICAgICAgICBpZiAocmVzdHJpY3Rpb24gPT0gRml4ZWRT
aXplT25seSB8fCByZXN0cmljdGlvbiA9PSBJbmZsZXhpYmxlU2l6ZU9ubHkpCi0gICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLQogICAgICAgICBkb3VibGUgZmxleFZhbHVlID0gdmFsdWUuZlZh
bHVlOwogCiAgICAgICAgIC8vIEZyYWN0aW9uYWwgdW5pdCBpcyBhIG5vbi1uZWdhdGl2ZSBkaW1l
bnNpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKaW5kZXggNjk0MjI2ZWRkYmIzYTZkOGY2NDFlYWZk
MzM1ZjAyMjYwZDk4MTI3Yy4uMzBhZGE4NTFlYzk1YjkzNTdiMWEyNGViODMzNWM1Y2EyNjIwYjJk
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaApAQCAtMjM5LDEwICsyMzksOSBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBwYXJzZUdyaWRHYXBTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpOwogICAgIGJvb2wg
cGFyc2VTaW5nbGVHcmlkQXJlYUxvbmdoYW5kKFJlZlB0cjxDU1NWYWx1ZT4mKTsKICAgICBSZWZQ
dHI8Q1NTVmFsdWU+IHBhcnNlR3JpZFRyYWNrTGlzdCgpOwotICAgIGJvb2wgcGFyc2VHcmlkVHJh
Y2tSZXBlYXRGdW5jdGlvbihDU1NWYWx1ZUxpc3QmLCBib29sJiBpc0F1dG9SZXBlYXQpOwotICAg
IGVudW0gVHJhY2tTaXplUmVzdHJpY3Rpb24geyBGaXhlZFNpemVPbmx5LCBJbmZsZXhpYmxlU2l6
ZU9ubHksIEFsbG93QWxsIH07Ci0gICAgUmVmUHRyPENTU1ZhbHVlPiBwYXJzZUdyaWRUcmFja1Np
emUoQ1NTUGFyc2VyVmFsdWVMaXN0JiBpbnB1dExpc3QsIFRyYWNrU2l6ZVJlc3RyaWN0aW9uID0g
QWxsb3dBbGwpOwotICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VHcmlkQnJlYWR0
aChDU1NQYXJzZXJWYWx1ZSYsIFRyYWNrU2l6ZVJlc3RyaWN0aW9uID0gQWxsb3dBbGwpOworICAg
IGJvb2wgcGFyc2VHcmlkVHJhY2tSZXBlYXRGdW5jdGlvbihDU1NWYWx1ZUxpc3QmLCBib29sJiBp
c0F1dG9SZXBlYXQsIGJvb2wmIGFsbFRyYWNrc0FyZUZpeGVkU2l6ZWQpOworICAgIFJlZlB0cjxD
U1NWYWx1ZT4gcGFyc2VHcmlkVHJhY2tTaXplKENTU1BhcnNlclZhbHVlTGlzdCYgaW5wdXRMaXN0
KTsKKyAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHBhcnNlR3JpZEJyZWFkdGgoQ1NTUGFy
c2VyVmFsdWUmKTsKICAgICBib29sIHBhcnNlR3JpZFRlbXBsYXRlQXJlYXNSb3coTmFtZWRHcmlk
QXJlYU1hcCYsIGNvbnN0IHVuc2lnbmVkLCB1bnNpZ25lZCYpOwogICAgIFJlZlB0cjxDU1NWYWx1
ZT4gcGFyc2VHcmlkVGVtcGxhdGVBcmVhcygpOwogICAgIGJvb2wgcGFyc2VHcmlkTGluZU5hbWVz
KENTU1BhcnNlclZhbHVlTGlzdCYsIENTU1ZhbHVlTGlzdCYsIENTU0dyaWRMaW5lTmFtZXNWYWx1
ZSogPSBudWxscHRyKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279762</attachid>
            <date>2016-05-25 06:12:30 -0700</date>
            <delta_ts>2016-05-25 07:11:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158021-20160525151337.patch</filename>
            <type>text/plain</type>
            <size>11183</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxMzczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGIyZDkxZTJjNWNlOTli
MzExMjQ3YzYxOGFmMzkyYmViZDJiYTM4Yi4uZWMxZjQ4MTFkYmY2YjY5ZDVjNzIwNzA1NTc2MDhj
ZmExZmUyYzg4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE2LTA1LTI1ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtjc3MtZ3Jp
ZF0gU2ltcGxpZnkgZ3JpZCB0cmFjayBzaXplcyBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgwMjEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcmV2aW91c2x5IG9uY2Ugd2Ugc2F3IGFuIGF1
dG8tcmVwZWF0IGZ1bmN0aW9uLAorICAgICAgICB3ZSBwYXNzZWQgdGhlICJGaXhlZFNpemVPbmx5
IiByZXN0cmljdGlvbiB0byB0aGUgcmVzdCBvZiBtZXRob2RzLgorICAgICAgICBUaGF0IHdheSB3
ZSB3ZXJlIHN1cmUgdGhhdCBhbGwgdGhlIHRyYWNrcyBhZnRlciB0aGUgYXV0by1yZXBlYXQKKyAg
ICAgICAgaGFkIGZpeGVkIHNpemVzLgorICAgICAgICBCdXQgd2UgbmVlZGVkIHRvIGNhbGwgYWxs
VHJhY2tzQXJlRml4ZWRTaXplZCgpIHRvIGJlIHN1cmUgdGhhdAorICAgICAgICB0aGUgdHJhY2tz
IGJlZm9yZSB0aGUgYXV0by1yZXBlYXQgaGFkIGZpeGVkIHNpemVzIHRvby4KKworICAgICAgICBO
b3cgd2UncmUgaW50cm9kdWNpbmcgYSBuZXcgYm9vbGVhbiB8YWxsVHJhY2tzQXJlRml4ZWRTaXpl
ZHwsCisgICAgICAgIHRvIGNoZWNrIGluIGFkdmFuY2UgaWYgdGhlIGRlY2xhcmF0aW9uIGNvbnRh
aW5zIGFueSB0cmFjayBub3QgZml4ZWQuCisgICAgICAgIElmIHRoYXQncyB0aGUgY2FzZSBhbmQg
d2UgZm91bmQgYW4gYXV0by1yZXBlYXQgbWV0aG9kLAorICAgICAgICB3ZSBjb25zaWRlciBpdCBp
bnZhbGlkLgorICAgICAgICBXaXRoIHRoaXMgYXBwcm9hY2ggd2UgYXZvaWQgdGhlIGxvb3AgdG8g
dmVyaWZ5CisgICAgICAgIHRoYXQgYWxsIHRoZSB0cmFja3MgKGJlZm9yZSBhbmQgYWZ0ZXIgdGhl
IGF1dG8tcmVwZWF0KSBhcmUgZml4ZWQuCisgICAgICAgIEl0IGFsc28gYWxsb3dzIHVzIHRvIHNp
bXBsaWZ5IHRoZSBjb2RlIGFuZCBhdm9pZCBwYXNzaW5nCisgICAgICAgIHRoZSByZXN0cmljdGlv
biB0byBhbGwgdGhlIG1ldGhvZHMgcGFyc2luZyB0aGUgdHJhY2sgc2l6ZS4KKworICAgICAgICBO
byBuZXcgdGVzdHMsIG5vIGNoYW5nZSBvZiBiZWhhdmlvci4KKworICAgICAgICAqIGNzcy9DU1NQ
YXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNHcmlkVHJhY2tGaXhlZFNpemVkKTogTmV3
IG1ldGhvZCB0byBjaGVjayBpZiBhIGdyaWQgdHJhY2sKKyAgICAgICAgc2l6ZSBpcyBmaXhlZCBv
ciBub3QgKGJhc2VkIG9uIG9sZCBhbGxUcmFja3NBcmVGaXhlZFNpemVkKCkpLgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUdyaWRUcmFja0xpc3QpOiBBZGQgbmV3IGJvb2xlYW4g
dG8gZGV0ZWN0CisgICAgICAgIGlmIGFueSB0cmFjayBoYXMgbm90IGEgZml4ZWQgc2l6ZS4KKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VHcmlkVHJhY2tSZXBlYXRGdW5jdGlvbik6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUdyaWRUcmFja1NpemUp
OiBSZW1vdmUgdXNhZ2Ugb2YKKyAgICAgICAgVHJhY2tTaXplUmVzdHJpY3Rpb24gZW51bS4KKyAg
ICAgICAgQ2hlY2sgaGVyZSBpZiB8bWluVHJhY2tCcmVhZHRofCBpcyBhIGZsZXhpYmxlIHNpemUu
CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlR3JpZEJyZWFkdGgpOiBSZW1vdmUg
dXNhZ2Ugb2YKKyAgICAgICAgVHJhY2tTaXplUmVzdHJpY3Rpb24gZW51bS4KKyAgICAgICAgKFdl
YkNvcmU6OmFsbFRyYWNrc0FyZUZpeGVkU2l6ZWQpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy9D
U1NQYXJzZXIuaDogUmVtb3ZlIFRyYWNrU2l6ZVJlc3RyaWN0aW9uIGVudW0gYW5kIHVwZGF0ZSBo
ZWFkZXJzLgorCiAyMDE2LTA1LTI1ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtjc3MtZ3JpZF0gUmVmYWN0b3IgcG9wdWxhdGVHcmlkUG9zaXRp
b25zKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggMDI1ZjE3ZDZiNGVmN2UxMTVkZWRk
YzAwM2ZmZjhkNGVlOTQ5ZDUxMC4uZTBjNmYzMzUyNTlhMGVmNzBlOTU4NjVhNzM3M2M3MzcwOTM1
ZjQ0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTU4MTcsMjUgKzU4MTcsMTcgQEAg
Ym9vbCBDU1NQYXJzZXI6OnBhcnNlR3JpZExpbmVOYW1lcyhDU1NQYXJzZXJWYWx1ZUxpc3QmIGlu
cHV0TGlzdCwgQ1NTVmFsdWVMaXN0JgogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9v
bCBhbGxUcmFja3NBcmVGaXhlZFNpemVkKENTU1ZhbHVlTGlzdCYgdmFsdWVMaXN0KQorc3RhdGlj
IGJvb2wgaXNHcmlkVHJhY2tGaXhlZFNpemVkKGNvbnN0IENTU1ZhbHVlJiB2YWx1ZSkKIHsKLSAg
ICBmb3IgKGF1dG8mIHZhbHVlIDogdmFsdWVMaXN0KSB7Ci0gICAgICAgIGlmIChpczxDU1NHcmlk
TGluZU5hbWVzVmFsdWU+KHZhbHVlKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAv
LyBUaGUgYXV0by1yZXBlYXQgdmFsdWUgaG9sZHMgYSA8Zml4ZWQtc2l6ZT4gPSA8Zml4ZWQtYnJl
YWR0aD4gfCBtaW5tYXgoIDxmaXhlZC1icmVhZHRoPiwgPHRyYWNrLWJyZWFkdGg+ICkKLSAgICAg
ICAgaWYgKGlzPENTU0dyaWRBdXRvUmVwZWF0VmFsdWU+KHZhbHVlKSkgewotICAgICAgICAgICAg
aWYgKCFhbGxUcmFja3NBcmVGaXhlZFNpemVkKGRvd25jYXN0PENTU1ZhbHVlTGlzdD4odmFsdWUu
Z2V0KCkpKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgfQotICAgICAgICBBU1NFUlQodmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUo
KSB8fCAodmFsdWUtPmlzRnVuY3Rpb25WYWx1ZSgpICYmIGRvd25jYXN0PENTU0Z1bmN0aW9uVmFs
dWU+KHZhbHVlLmdldCgpKS5hcmd1bWVudHMoKSkpOwotICAgICAgICBjb25zdCBDU1NQcmltaXRp
dmVWYWx1ZSYgcHJpbWl0aXZlVmFsdWUgPSB2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpCi0gICAg
ICAgICAgICA/IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZS5nZXQoKSkKLSAgICAg
ICAgICAgIDogZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCpkb3duY2FzdDxDU1NGdW5jdGlv
blZhbHVlPih2YWx1ZS5nZXQoKSkuYXJndW1lbnRzKCktPml0ZW0oMCkpOwotICAgICAgICBDU1NW
YWx1ZUlEIHZhbHVlSUQgPSBwcmltaXRpdmVWYWx1ZS5nZXRWYWx1ZUlEKCk7Ci0gICAgICAgIGlm
ICh2YWx1ZUlEID09IENTU1ZhbHVlV2Via2l0TWluQ29udGVudCB8fCB2YWx1ZUlEID09IENTU1Zh
bHVlV2Via2l0TWF4Q29udGVudCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQXV0byB8fCBwcmltaXRp
dmVWYWx1ZS5pc0ZsZXgoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9CisgICAg
QVNTRVJUKHZhbHVlLmlzUHJpbWl0aXZlVmFsdWUoKSB8fCAodmFsdWUuaXNGdW5jdGlvblZhbHVl
KCkgJiYgZG93bmNhc3Q8Q1NTRnVuY3Rpb25WYWx1ZT4odmFsdWUpLmFyZ3VtZW50cygpKSk7Cisg
ICAgY29uc3QgYXV0byYgcHJpbWl0aXZlVmFsdWUgPSB2YWx1ZS5pc1ByaW1pdGl2ZVZhbHVlKCkK
KyAgICAgICAgPyBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpCisgICAgICAgIDog
ZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCpkb3duY2FzdDxDU1NGdW5jdGlvblZhbHVlPih2
YWx1ZSkuYXJndW1lbnRzKCktPml0ZW0oMCkpOworICAgIENTU1ZhbHVlSUQgdmFsdWVJRCA9IHBy
aW1pdGl2ZVZhbHVlLmdldFZhbHVlSUQoKTsKKyAgICBpZiAodmFsdWVJRCA9PSBDU1NWYWx1ZVdl
YmtpdE1pbkNvbnRlbnQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVdlYmtpdE1heENvbnRlbnQgfHwg
dmFsdWVJRCA9PSBDU1NWYWx1ZUF1dG8gfHwgcHJpbWl0aXZlVmFsdWUuaXNGbGV4KCkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIEFTU0VSVChwcmltaXRpdmVWYWx1ZS5pc0xlbmd0aCgp
IHx8IHByaW1pdGl2ZVZhbHVlLmlzUGVyY2VudGFnZSgpIHx8IHByaW1pdGl2ZVZhbHVlLmlzQ2Fs
Y3VsYXRlZCgpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNTg1NywyNCArNTg0OSwzMCBA
QCBSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VHcmlkVHJhY2tMaXN0KCkKIAogICAg
IGJvb2wgc2VlblRyYWNrU2l6ZU9yUmVwZWF0RnVuY3Rpb24gPSBmYWxzZTsKICAgICBib29sIHNl
ZW5BdXRvUmVwZWF0ID0gZmFsc2U7CisgICAgYm9vbCBhbGxUcmFja3NBcmVGaXhlZFNpemVkID0g
dHJ1ZTsKICAgICB3aGlsZSAoQ1NTUGFyc2VyVmFsdWUqIGN1cnJlbnRWYWx1ZSA9IG1fdmFsdWVM
aXN0LT5jdXJyZW50KCkpIHsKICAgICAgICAgaWYgKGlzRm9yd2FyZFNsYXNoT3BlcmF0b3IoKmN1
cnJlbnRWYWx1ZSkpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgaWYgKGN1cnJlbnRWYWx1
ZS0+dW5pdCA9PSBDU1NQYXJzZXJWYWx1ZTo6RnVuY3Rpb24gJiYgZXF1YWxMZXR0ZXJzSWdub3Jp
bmdBU0NJSUNhc2UoY3VycmVudFZhbHVlLT5mdW5jdGlvbi0+bmFtZSwgInJlcGVhdCgiKSkgewog
ICAgICAgICAgICAgYm9vbCBpc0F1dG9SZXBlYXQ7Ci0gICAgICAgICAgICBpZiAoIXBhcnNlR3Jp
ZFRyYWNrUmVwZWF0RnVuY3Rpb24odmFsdWVzLCBpc0F1dG9SZXBlYXQpKQorICAgICAgICAgICAg
aWYgKCFwYXJzZUdyaWRUcmFja1JlcGVhdEZ1bmN0aW9uKHZhbHVlcywgaXNBdXRvUmVwZWF0LCBh
bGxUcmFja3NBcmVGaXhlZFNpemVkKSkKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICAgICAgICAgIGlmIChpc0F1dG9SZXBlYXQgJiYgc2VlbkF1dG9SZXBlYXQpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgICAgICBzZWVuQXV0b1JlcGVhdCA9IHNl
ZW5BdXRvUmVwZWF0IHx8IGlzQXV0b1JlcGVhdDsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIFJlZlB0cjxDU1NWYWx1ZT4gdmFsdWUgPSBwYXJzZUdyaWRUcmFja1NpemUoKm1fdmFsdWVM
aXN0LCBzZWVuQXV0b1JlcGVhdCA/IEZpeGVkU2l6ZU9ubHkgOiBBbGxvd0FsbCk7CisgICAgICAg
ICAgICBSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlID0gcGFyc2VHcmlkVHJhY2tTaXplKCptX3ZhbHVl
TGlzdCk7CiAgICAgICAgICAgICBpZiAoIXZhbHVlKQogICAgICAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgICAgICAgICAgaWYgKGFsbFRyYWNrc0FyZUZpeGVkU2l6ZWQpCisgICAgICAg
ICAgICAgICAgYWxsVHJhY2tzQXJlRml4ZWRTaXplZCA9IGlzR3JpZFRyYWNrRml4ZWRTaXplZCgq
dmFsdWUpOwogICAgICAgICAgICAgdmFsdWVzLT5hcHBlbmQodmFsdWUucmVsZWFzZU5vbk51bGwo
KSk7CiAgICAgICAgIH0KICAgICAgICAgc2VlblRyYWNrU2l6ZU9yUmVwZWF0RnVuY3Rpb24gPSB0
cnVlOwogCisgICAgICAgIGlmIChzZWVuQXV0b1JlcGVhdCAmJiAhYWxsVHJhY2tzQXJlRml4ZWRT
aXplZCkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworCiAgICAgICAgIC8vIFRoaXMgd2ls
bCBoYW5kbGUgdGhlIHRyYWlsaW5nIDxjdXN0b20taWRlbnQ+KiBpbiB0aGUgZ3JhbW1hci4KICAg
ICAgICAgdmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOwogICAgICAgICBpZiAodmFsdWUg
JiYgdmFsdWUtPnVuaXQgPT0gQ1NTUGFyc2VyVmFsdWU6OlZhbHVlTGlzdCkKQEAgLTU4ODQsMTUg
KzU4ODIsMTAgQEAgUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNrTGlz
dCgpCiAgICAgaWYgKCFzZWVuVHJhY2tTaXplT3JSZXBlYXRGdW5jdGlvbikKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKLSAgICAvLyA8YXV0by1yZXBlYXQ+IHJlcXVpcmVzIGRlZmluaXRlIG1p
bmltdW0gdHJhY2sgc2l6ZXMgaW4gb3JkZXIgdG8gY29tcHV0ZSB0aGUgbnVtYmVyIG9mIHJlcGV0
aXRpb25zLgotICAgIC8vIFRoZSBhYm92ZSB3aGlsZSBsb29wIGRldGVjdHMgdGhvc2UgYXBwZWFy
YW5jZXMgYWZ0ZXIgdGhlIDxhdXRvLXJlcGVhdD4gYnV0IG5vdCB0aGUgb25lcyBiZWZvcmUuCi0g
ICAgaWYgKHNlZW5BdXRvUmVwZWF0ICYmICFhbGxUcmFja3NBcmVGaXhlZFNpemVkKHZhbHVlcykp
Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotCiAgICAgcmV0dXJuIFdURk1vdmUodmFsdWVzKTsK
IH0KIAotYm9vbCBDU1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNrUmVwZWF0RnVuY3Rpb24oQ1NTVmFs
dWVMaXN0JiBsaXN0LCBib29sJiBpc0F1dG9SZXBlYXQpCitib29sIENTU1BhcnNlcjo6cGFyc2VH
cmlkVHJhY2tSZXBlYXRGdW5jdGlvbihDU1NWYWx1ZUxpc3QmIGxpc3QsIGJvb2wmIGlzQXV0b1Jl
cGVhdCwgYm9vbCYgYWxsVHJhY2tzQXJlRml4ZWRTaXplZCkKIHsKICAgICBBU1NFUlQoaXNDU1NH
cmlkTGF5b3V0RW5hYmxlZCgpKTsKIApAQCAtNTkyMiwxNCArNTkxNSwxNSBAQCBib29sIENTU1Bh
cnNlcjo6cGFyc2VHcmlkVHJhY2tSZXBlYXRGdW5jdGlvbihDU1NWYWx1ZUxpc3QmIGxpc3QsIGJv
b2wmIGlzQXV0b1JlcAogICAgICAgICBwYXJzZUdyaWRMaW5lTmFtZXMoKmFyZ3VtZW50cywgcmVw
ZWF0ZWRWYWx1ZXMpOwogCiAgICAgdW5zaWduZWQgbnVtYmVyT2ZUcmFja3MgPSAwOwotICAgIFRy
YWNrU2l6ZVJlc3RyaWN0aW9uIHJlc3RyaWN0aW9uID0gaXNBdXRvUmVwZWF0ID8gRml4ZWRTaXpl
T25seSA6IEFsbG93QWxsOwogICAgIHdoaWxlIChhcmd1bWVudHMtPmN1cnJlbnQoKSkgewogICAg
ICAgICBpZiAoaXNBdXRvUmVwZWF0ICYmIG51bWJlck9mVHJhY2tzKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgICAgIFJlZlB0cjxDU1NWYWx1ZT4gdHJhY2tTaXplID0gcGFyc2VH
cmlkVHJhY2tTaXplKCphcmd1bWVudHMsIHJlc3RyaWN0aW9uKTsKKyAgICAgICAgUmVmUHRyPENT
U1ZhbHVlPiB0cmFja1NpemUgPSBwYXJzZUdyaWRUcmFja1NpemUoKmFyZ3VtZW50cyk7CiAgICAg
ICAgIGlmICghdHJhY2tTaXplKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBp
ZiAoYWxsVHJhY2tzQXJlRml4ZWRTaXplZCkKKyAgICAgICAgICAgIGFsbFRyYWNrc0FyZUZpeGVk
U2l6ZWQgPSBpc0dyaWRUcmFja0ZpeGVkU2l6ZWQoKnRyYWNrU2l6ZSk7CiAKICAgICAgICAgcmVw
ZWF0ZWRWYWx1ZXMtPmFwcGVuZCh0cmFja1NpemUucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAg
ICsrbnVtYmVyT2ZUcmFja3M7CkBAIC01OTYxLDcgKzU5NTUsNyBAQCBib29sIENTU1BhcnNlcjo6
cGFyc2VHcmlkVHJhY2tSZXBlYXRGdW5jdGlvbihDU1NWYWx1ZUxpc3QmIGxpc3QsIGJvb2wmIGlz
QXV0b1JlcAogICAgIHJldHVybiB0cnVlOwogfQogCi1SZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNl
cjo6cGFyc2VHcmlkVHJhY2tTaXplKENTU1BhcnNlclZhbHVlTGlzdCYgaW5wdXRMaXN0LCBUcmFj
a1NpemVSZXN0cmljdGlvbiByZXN0cmljdGlvbikKK1JlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2Vy
OjpwYXJzZUdyaWRUcmFja1NpemUoQ1NTUGFyc2VyVmFsdWVMaXN0JiBpbnB1dExpc3QpCiB7CiAg
ICAgQVNTRVJUKGlzQ1NTR3JpZExheW91dEVuYWJsZWQoKSk7CiAKQEAgLTU5NzcsOSArNTk3MSw4
IEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUdyaWRUcmFja1NpemUoQ1NTUGFy
c2VyVmFsdWVMaXN0JiBpbnB1dExpc3QsIFRyCiAgICAgICAgIGlmICghYXJndW1lbnRzIHx8IGFy
Z3VtZW50cy0+c2l6ZSgpICE9IDMgfHwgIWlzQ29tbWEoYXJndW1lbnRzLT52YWx1ZUF0KDEpKSkK
ICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgICAgIFRyYWNrU2l6ZVJlc3RyaWN0
aW9uIG1pblRyYWNrQnJlYWR0aFJlc3RyaWN0aW9uID0gcmVzdHJpY3Rpb24gPT0gQWxsb3dBbGwg
PyBJbmZsZXhpYmxlU2l6ZU9ubHkgOiByZXN0cmljdGlvbjsKLSAgICAgICAgUmVmUHRyPENTU1By
aW1pdGl2ZVZhbHVlPiBtaW5UcmFja0JyZWFkdGggPSBwYXJzZUdyaWRCcmVhZHRoKCphcmd1bWVu
dHMtPnZhbHVlQXQoMCksIG1pblRyYWNrQnJlYWR0aFJlc3RyaWN0aW9uKTsKLSAgICAgICAgaWYg
KCFtaW5UcmFja0JyZWFkdGgpCisgICAgICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gbWlu
VHJhY2tCcmVhZHRoID0gcGFyc2VHcmlkQnJlYWR0aCgqYXJndW1lbnRzLT52YWx1ZUF0KDApKTsK
KyAgICAgICAgaWYgKCFtaW5UcmFja0JyZWFkdGggfHwgbWluVHJhY2tCcmVhZHRoLT5pc0ZsZXgo
KSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgICAgIFJlZlB0cjxDU1NQcmlt
aXRpdmVWYWx1ZT4gbWF4VHJhY2tCcmVhZHRoID0gcGFyc2VHcmlkQnJlYWR0aCgqYXJndW1lbnRz
LT52YWx1ZUF0KDIpKTsKQEAgLTU5OTIsMjMgKzU5ODUsMTcgQEAgUmVmUHRyPENTU1ZhbHVlPiBD
U1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNrU2l6ZShDU1NQYXJzZXJWYWx1ZUxpc3QmIGlucHV0TGlz
dCwgVHIKICAgICAgICAgcmV0dXJuIENTU0Z1bmN0aW9uVmFsdWU6OmNyZWF0ZSgibWlubWF4KCIs
IFdURk1vdmUocGFyc2VkQXJndW1lbnRzKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIHBhcnNlR3Jp
ZEJyZWFkdGgoY3VycmVudFZhbHVlLCByZXN0cmljdGlvbik7CisgICAgcmV0dXJuIHBhcnNlR3Jp
ZEJyZWFkdGgoY3VycmVudFZhbHVlKTsKIH0KIAotUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBD
U1NQYXJzZXI6OnBhcnNlR3JpZEJyZWFkdGgoQ1NTUGFyc2VyVmFsdWUmIHZhbHVlLCBUcmFja1Np
emVSZXN0cmljdGlvbiByZXN0cmljdGlvbikKK1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gQ1NT
UGFyc2VyOjpwYXJzZUdyaWRCcmVhZHRoKENTU1BhcnNlclZhbHVlJiB2YWx1ZSkKIHsKICAgICBB
U1NFUlQoaXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpKTsKIAotICAgIGlmICh2YWx1ZS5pZCA9PSBD
U1NWYWx1ZVdlYmtpdE1pbkNvbnRlbnQgfHwgdmFsdWUuaWQgPT0gQ1NTVmFsdWVXZWJraXRNYXhD
b250ZW50IHx8IHZhbHVlLmlkID09IENTU1ZhbHVlQXV0bykgewotICAgICAgICBpZiAocmVzdHJp
Y3Rpb24gPT0gRml4ZWRTaXplT25seSkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IGlmICh2YWx1ZS5pZCA9PSBDU1NWYWx1ZVdlYmtpdE1pbkNvbnRlbnQgfHwgdmFsdWUuaWQgPT0g
Q1NTVmFsdWVXZWJraXRNYXhDb250ZW50IHx8IHZhbHVlLmlkID09IENTU1ZhbHVlQXV0bykKICAg
ICAgICAgcmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlSWRlbnRpZmllclZh
bHVlKHZhbHVlLmlkKTsKLSAgICB9CiAKICAgICBpZiAodmFsdWUudW5pdCA9PSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTX0ZSKSB7Ci0gICAgICAgIGlmIChyZXN0cmljdGlvbiA9PSBGaXhlZFNpemVP
bmx5IHx8IHJlc3RyaWN0aW9uID09IEluZmxleGlibGVTaXplT25seSkKLSAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOwotCiAgICAgICAgIGRvdWJsZSBmbGV4VmFsdWUgPSB2YWx1ZS5mVmFsdWU7
CiAKICAgICAgICAgLy8gRnJhY3Rpb25hbCB1bml0IGlzIGEgbm9uLW5lZ2F0aXZlIGRpbWVuc2lv
bi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCA2OTQyMjZlZGRiYjNhNmQ4ZjY0MWVhZmQzMzVm
MDIyNjBkOTgxMjdjLi4zMGFkYTg1MWVjOTViOTM1N2IxYTI0ZWI4MzM1YzVjYTI2MjBiMmQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1BhcnNlci5oCkBAIC0yMzksMTAgKzIzOSw5IEBAIHB1YmxpYzoKICAgICBi
b29sIHBhcnNlR3JpZEdhcFNob3J0aGFuZChib29sIGltcG9ydGFudCk7CiAgICAgYm9vbCBwYXJz
ZVNpbmdsZUdyaWRBcmVhTG9uZ2hhbmQoUmVmUHRyPENTU1ZhbHVlPiYpOwogICAgIFJlZlB0cjxD
U1NWYWx1ZT4gcGFyc2VHcmlkVHJhY2tMaXN0KCk7Ci0gICAgYm9vbCBwYXJzZUdyaWRUcmFja1Jl
cGVhdEZ1bmN0aW9uKENTU1ZhbHVlTGlzdCYsIGJvb2wmIGlzQXV0b1JlcGVhdCk7Ci0gICAgZW51
bSBUcmFja1NpemVSZXN0cmljdGlvbiB7IEZpeGVkU2l6ZU9ubHksIEluZmxleGlibGVTaXplT25s
eSwgQWxsb3dBbGwgfTsKLSAgICBSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlR3JpZFRyYWNrU2l6ZShD
U1NQYXJzZXJWYWx1ZUxpc3QmIGlucHV0TGlzdCwgVHJhY2tTaXplUmVzdHJpY3Rpb24gPSBBbGxv
d0FsbCk7Ci0gICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwYXJzZUdyaWRCcmVhZHRoKENT
U1BhcnNlclZhbHVlJiwgVHJhY2tTaXplUmVzdHJpY3Rpb24gPSBBbGxvd0FsbCk7CisgICAgYm9v
bCBwYXJzZUdyaWRUcmFja1JlcGVhdEZ1bmN0aW9uKENTU1ZhbHVlTGlzdCYsIGJvb2wmIGlzQXV0
b1JlcGVhdCwgYm9vbCYgYWxsVHJhY2tzQXJlRml4ZWRTaXplZCk7CisgICAgUmVmUHRyPENTU1Zh
bHVlPiBwYXJzZUdyaWRUcmFja1NpemUoQ1NTUGFyc2VyVmFsdWVMaXN0JiBpbnB1dExpc3QpOwor
ICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VHcmlkQnJlYWR0aChDU1NQYXJzZXJW
YWx1ZSYpOwogICAgIGJvb2wgcGFyc2VHcmlkVGVtcGxhdGVBcmVhc1JvdyhOYW1lZEdyaWRBcmVh
TWFwJiwgY29uc3QgdW5zaWduZWQsIHVuc2lnbmVkJik7CiAgICAgUmVmUHRyPENTU1ZhbHVlPiBw
YXJzZUdyaWRUZW1wbGF0ZUFyZWFzKCk7CiAgICAgYm9vbCBwYXJzZUdyaWRMaW5lTmFtZXMoQ1NT
UGFyc2VyVmFsdWVMaXN0JiwgQ1NTVmFsdWVMaXN0JiwgQ1NTR3JpZExpbmVOYW1lc1ZhbHVlKiA9
IG51bGxwdHIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279767</attachid>
            <date>2016-05-25 07:11:43 -0700</date>
            <delta_ts>2016-05-25 07:43:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158021-20160525161250.patch</filename>
            <type>text/plain</type>
            <size>11158</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxMzczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGIyZDkxZTJjNWNlOTli
MzExMjQ3YzYxOGFmMzkyYmViZDJiYTM4Yi4uNmVjYmZlYzg1MmNkYWIzOWY3YmMxYWZhM2EzZDll
ZTU3MmU5NTZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE2LTA1LTI1ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtjc3MtZ3Jp
ZF0gU2ltcGxpZnkgZ3JpZCB0cmFjayBzaXplcyBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgwMjEKKworICAgICAgICBSZXZpZXdlZCBi
eSBTZXJnaW8gVmlsbGFyIFNlbmluLgorCisgICAgICAgIFByZXZpb3VzbHkgb25jZSB3ZSBzYXcg
YW4gYXV0by1yZXBlYXQgZnVuY3Rpb24sCisgICAgICAgIHdlIHBhc3NlZCB0aGUgIkZpeGVkU2l6
ZU9ubHkiIHJlc3RyaWN0aW9uIHRvIHRoZSByZXN0IG9mIG1ldGhvZHMuCisgICAgICAgIFRoYXQg
d2F5IHdlIHdlcmUgc3VyZSB0aGF0IGFsbCB0aGUgdHJhY2tzIGFmdGVyIHRoZSBhdXRvLXJlcGVh
dAorICAgICAgICBoYWQgZml4ZWQgc2l6ZXMuCisgICAgICAgIEJ1dCB3ZSBuZWVkZWQgdG8gY2Fs
bCBhbGxUcmFja3NBcmVGaXhlZFNpemVkKCkgdG8gYmUgc3VyZSB0aGF0CisgICAgICAgIHRoZSB0
cmFja3MgYmVmb3JlIHRoZSBhdXRvLXJlcGVhdCBoYWQgZml4ZWQgc2l6ZXMgdG9vLgorCisgICAg
ICAgIE5vdyB3ZSdyZSBpbnRyb2R1Y2luZyBhIG5ldyBib29sZWFuIHxhbGxUcmFja3NBcmVGaXhl
ZFNpemVkfCwKKyAgICAgICAgdG8gY2hlY2sgaW4gYWR2YW5jZSBpZiB0aGUgZGVjbGFyYXRpb24g
Y29udGFpbnMgYW55IHRyYWNrIG5vdCBmaXhlZC4KKyAgICAgICAgSWYgdGhhdCdzIHRoZSBjYXNl
IGFuZCB3ZSBmb3VuZCBhbiBhdXRvLXJlcGVhdCBtZXRob2QsCisgICAgICAgIHdlIGNvbnNpZGVy
IGl0IGludmFsaWQuCisgICAgICAgIFdpdGggdGhpcyBhcHByb2FjaCB3ZSBhdm9pZCB0aGUgbG9v
cCB0byB2ZXJpZnkKKyAgICAgICAgdGhhdCBhbGwgdGhlIHRyYWNrcyAoYmVmb3JlIGFuZCBhZnRl
ciB0aGUgYXV0by1yZXBlYXQpIGFyZSBmaXhlZC4KKyAgICAgICAgSXQgYWxzbyBhbGxvd3MgdXMg
dG8gc2ltcGxpZnkgdGhlIGNvZGUgYW5kIGF2b2lkIHBhc3NpbmcKKyAgICAgICAgdGhlIHJlc3Ry
aWN0aW9uIHRvIGFsbCB0aGUgbWV0aG9kcyBwYXJzaW5nIHRoZSB0cmFjayBzaXplLgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cywgbm8gY2hhbmdlIG9mIGJlaGF2aW9yLgorCisgICAgICAgICogY3Nz
L0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc0dyaWRUcmFja0ZpeGVkU2l6ZWQp
OiBOZXcgbWV0aG9kIHRvIGNoZWNrIGlmIGEgZ3JpZCB0cmFjaworICAgICAgICBzaXplIGlzIGZp
eGVkIG9yIG5vdCAoYmFzZWQgb24gb2xkIGFsbFRyYWNrc0FyZUZpeGVkU2l6ZWQoKSkuCisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNrTGlzdCk6IEFkZCBuZXcgYm9v
bGVhbiB0byBkZXRlY3QKKyAgICAgICAgaWYgYW55IHRyYWNrIGhhcyBub3QgYSBmaXhlZCBzaXpl
LgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUdyaWRUcmFja1JlcGVhdEZ1bmN0
aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNr
U2l6ZSk6IFJlbW92ZSB1c2FnZSBvZgorICAgICAgICBUcmFja1NpemVSZXN0cmljdGlvbiBlbnVt
LgorICAgICAgICBDaGVjayBoZXJlIGlmIHxtaW5UcmFja0JyZWFkdGh8IGlzIGEgZmxleGlibGUg
c2l6ZS4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VHcmlkQnJlYWR0aCk6IFJl
bW92ZSB1c2FnZSBvZgorICAgICAgICBUcmFja1NpemVSZXN0cmljdGlvbiBlbnVtLgorICAgICAg
ICAoV2ViQ29yZTo6YWxsVHJhY2tzQXJlRml4ZWRTaXplZCk6IERlbGV0ZWQuCisgICAgICAgICog
Y3NzL0NTU1BhcnNlci5oOiBSZW1vdmUgVHJhY2tTaXplUmVzdHJpY3Rpb24gZW51bSBhbmQgdXBk
YXRlIGhlYWRlcnMuCisKIDIwMTYtMDUtMjUgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFy
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW2Nzcy1ncmlkXSBSZWZhY3RvciBwb3B1bGF0ZUdyaWRQ
b3NpdGlvbnMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCAwMjVmMTdkNmI0ZWY3ZTEx
NWRlZGRjMDAzZmZmOGQ0ZWU5NDlkNTEwLi4yMmExMzE1MWNiOGQ2ODAzZTRhNDVjMDU0ODIyZjQw
OTNiZDA5OGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNTgxNywyNSArNTgxNywx
NyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VHcmlkTGluZU5hbWVzKENTU1BhcnNlclZhbHVlTGlz
dCYgaW5wdXRMaXN0LCBDU1NWYWx1ZUxpc3QmCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRp
YyBib29sIGFsbFRyYWNrc0FyZUZpeGVkU2l6ZWQoQ1NTVmFsdWVMaXN0JiB2YWx1ZUxpc3QpCitz
dGF0aWMgYm9vbCBpc0dyaWRUcmFja0ZpeGVkU2l6ZWQoY29uc3QgQ1NTVmFsdWUmIHZhbHVlKQog
ewotICAgIGZvciAoYXV0byYgdmFsdWUgOiB2YWx1ZUxpc3QpIHsKLSAgICAgICAgaWYgKGlzPENT
U0dyaWRMaW5lTmFtZXNWYWx1ZT4odmFsdWUpKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAg
ICAgIC8vIFRoZSBhdXRvLXJlcGVhdCB2YWx1ZSBob2xkcyBhIDxmaXhlZC1zaXplPiA9IDxmaXhl
ZC1icmVhZHRoPiB8IG1pbm1heCggPGZpeGVkLWJyZWFkdGg+LCA8dHJhY2stYnJlYWR0aD4gKQot
ICAgICAgICBpZiAoaXM8Q1NTR3JpZEF1dG9SZXBlYXRWYWx1ZT4odmFsdWUpKSB7Ci0gICAgICAg
ICAgICBpZiAoIWFsbFRyYWNrc0FyZUZpeGVkU2l6ZWQoZG93bmNhc3Q8Q1NTVmFsdWVMaXN0Pih2
YWx1ZS5nZXQoKSkpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAg
IGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIEFTU0VSVCh2YWx1ZS0+aXNQcmltaXRpdmVW
YWx1ZSgpIHx8ICh2YWx1ZS0+aXNGdW5jdGlvblZhbHVlKCkgJiYgZG93bmNhc3Q8Q1NTRnVuY3Rp
b25WYWx1ZT4odmFsdWUuZ2V0KCkpLmFyZ3VtZW50cygpKSk7Ci0gICAgICAgIGNvbnN0IENTU1By
aW1pdGl2ZVZhbHVlJiBwcmltaXRpdmVWYWx1ZSA9IHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkK
LSAgICAgICAgICAgID8gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlLmdldCgpKQot
ICAgICAgICAgICAgOiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKmRvd25jYXN0PENTU0Z1
bmN0aW9uVmFsdWU+KHZhbHVlLmdldCgpKS5hcmd1bWVudHMoKS0+aXRlbSgwKSk7Ci0gICAgICAg
IENTU1ZhbHVlSUQgdmFsdWVJRCA9IHByaW1pdGl2ZVZhbHVlLmdldFZhbHVlSUQoKTsKLSAgICAg
ICAgaWYgKHZhbHVlSUQgPT0gQ1NTVmFsdWVXZWJraXRNaW5Db250ZW50IHx8IHZhbHVlSUQgPT0g
Q1NTVmFsdWVXZWJraXRNYXhDb250ZW50IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8IHBy
aW1pdGl2ZVZhbHVlLmlzRmxleCgpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0K
KyAgICBBU1NFUlQodmFsdWUuaXNQcmltaXRpdmVWYWx1ZSgpIHx8ICh2YWx1ZS5pc0Z1bmN0aW9u
VmFsdWUoKSAmJiBkb3duY2FzdDxDU1NGdW5jdGlvblZhbHVlPih2YWx1ZSkuYXJndW1lbnRzKCkp
KTsKKyAgICBjb25zdCBhdXRvJiBwcmltaXRpdmVWYWx1ZSA9IHZhbHVlLmlzUHJpbWl0aXZlVmFs
dWUoKQorICAgICAgICA/IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSkKKyAgICAg
ICAgOiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKmRvd25jYXN0PENTU0Z1bmN0aW9uVmFs
dWU+KHZhbHVlKS5hcmd1bWVudHMoKS0+aXRlbSgwKSk7CisgICAgQ1NTVmFsdWVJRCB2YWx1ZUlE
ID0gcHJpbWl0aXZlVmFsdWUuZ2V0VmFsdWVJRCgpOworICAgIGlmICh2YWx1ZUlEID09IENTU1Zh
bHVlV2Via2l0TWluQ29udGVudCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlV2Via2l0TWF4Q29udGVu
dCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQXV0byB8fCBwcmltaXRpdmVWYWx1ZS5pc0ZsZXgoKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQVNTRVJUKHByaW1pdGl2ZVZhbHVlLmlzTGVu
Z3RoKCkgfHwgcHJpbWl0aXZlVmFsdWUuaXNQZXJjZW50YWdlKCkgfHwgcHJpbWl0aXZlVmFsdWUu
aXNDYWxjdWxhdGVkKCkpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC01ODU3LDI0ICs1ODQ5
LDMwIEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUdyaWRUcmFja0xpc3QoKQog
CiAgICAgYm9vbCBzZWVuVHJhY2tTaXplT3JSZXBlYXRGdW5jdGlvbiA9IGZhbHNlOwogICAgIGJv
b2wgc2VlbkF1dG9SZXBlYXQgPSBmYWxzZTsKKyAgICBib29sIGFsbFRyYWNrc0FyZUZpeGVkU2l6
ZWQgPSB0cnVlOwogICAgIHdoaWxlIChDU1NQYXJzZXJWYWx1ZSogY3VycmVudFZhbHVlID0gbV92
YWx1ZUxpc3QtPmN1cnJlbnQoKSkgewogICAgICAgICBpZiAoaXNGb3J3YXJkU2xhc2hPcGVyYXRv
cigqY3VycmVudFZhbHVlKSkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBpZiAoY3VycmVu
dFZhbHVlLT51bml0ID09IENTU1BhcnNlclZhbHVlOjpGdW5jdGlvbiAmJiBlcXVhbExldHRlcnNJ
Z25vcmluZ0FTQ0lJQ2FzZShjdXJyZW50VmFsdWUtPmZ1bmN0aW9uLT5uYW1lLCAicmVwZWF0KCIp
KSB7CiAgICAgICAgICAgICBib29sIGlzQXV0b1JlcGVhdDsKLSAgICAgICAgICAgIGlmICghcGFy
c2VHcmlkVHJhY2tSZXBlYXRGdW5jdGlvbih2YWx1ZXMsIGlzQXV0b1JlcGVhdCkpCisgICAgICAg
ICAgICBpZiAoIXBhcnNlR3JpZFRyYWNrUmVwZWF0RnVuY3Rpb24odmFsdWVzLCBpc0F1dG9SZXBl
YXQsIGFsbFRyYWNrc0FyZUZpeGVkU2l6ZWQpKQogICAgICAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgICAgICAgICAgaWYgKGlzQXV0b1JlcGVhdCAmJiBzZWVuQXV0b1JlcGVhdCkKICAg
ICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgICAgIHNlZW5BdXRvUmVwZWF0
ID0gc2VlbkF1dG9SZXBlYXQgfHwgaXNBdXRvUmVwZWF0OwogICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSA9IHBhcnNlR3JpZFRyYWNrU2l6ZSgqbV92
YWx1ZUxpc3QsIHNlZW5BdXRvUmVwZWF0ID8gRml4ZWRTaXplT25seSA6IEFsbG93QWxsKTsKKyAg
ICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZT4gdmFsdWUgPSBwYXJzZUdyaWRUcmFja1NpemUoKm1f
dmFsdWVMaXN0KTsKICAgICAgICAgICAgIGlmICghdmFsdWUpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisKKyAgICAgICAgICAgIGFsbFRyYWNrc0FyZUZpeGVkU2l6ZWQgPSBhbGxU
cmFja3NBcmVGaXhlZFNpemVkICYmIGlzR3JpZFRyYWNrRml4ZWRTaXplZCgqdmFsdWUpOwogICAg
ICAgICAgICAgdmFsdWVzLT5hcHBlbmQodmFsdWUucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAg
IH0KICAgICAgICAgc2VlblRyYWNrU2l6ZU9yUmVwZWF0RnVuY3Rpb24gPSB0cnVlOwogCisgICAg
ICAgIGlmIChzZWVuQXV0b1JlcGVhdCAmJiAhYWxsVHJhY2tzQXJlRml4ZWRTaXplZCkKKyAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOworCiAgICAgICAgIC8vIFRoaXMgd2lsbCBoYW5kbGUgdGhl
IHRyYWlsaW5nIDxjdXN0b20taWRlbnQ+KiBpbiB0aGUgZ3JhbW1hci4KICAgICAgICAgdmFsdWUg
PSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOwogICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUtPnVu
aXQgPT0gQ1NTUGFyc2VyVmFsdWU6OlZhbHVlTGlzdCkKQEAgLTU4ODQsMTUgKzU4ODIsMTAgQEAg
UmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNrTGlzdCgpCiAgICAgaWYg
KCFzZWVuVHJhY2tTaXplT3JSZXBlYXRGdW5jdGlvbikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKLSAgICAvLyA8YXV0by1yZXBlYXQ+IHJlcXVpcmVzIGRlZmluaXRlIG1pbmltdW0gdHJhY2sg
c2l6ZXMgaW4gb3JkZXIgdG8gY29tcHV0ZSB0aGUgbnVtYmVyIG9mIHJlcGV0aXRpb25zLgotICAg
IC8vIFRoZSBhYm92ZSB3aGlsZSBsb29wIGRldGVjdHMgdGhvc2UgYXBwZWFyYW5jZXMgYWZ0ZXIg
dGhlIDxhdXRvLXJlcGVhdD4gYnV0IG5vdCB0aGUgb25lcyBiZWZvcmUuCi0gICAgaWYgKHNlZW5B
dXRvUmVwZWF0ICYmICFhbGxUcmFja3NBcmVGaXhlZFNpemVkKHZhbHVlcykpCi0gICAgICAgIHJl
dHVybiBudWxscHRyOwotCiAgICAgcmV0dXJuIFdURk1vdmUodmFsdWVzKTsKIH0KIAotYm9vbCBD
U1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNrUmVwZWF0RnVuY3Rpb24oQ1NTVmFsdWVMaXN0JiBsaXN0
LCBib29sJiBpc0F1dG9SZXBlYXQpCitib29sIENTU1BhcnNlcjo6cGFyc2VHcmlkVHJhY2tSZXBl
YXRGdW5jdGlvbihDU1NWYWx1ZUxpc3QmIGxpc3QsIGJvb2wmIGlzQXV0b1JlcGVhdCwgYm9vbCYg
YWxsVHJhY2tzQXJlRml4ZWRTaXplZCkKIHsKICAgICBBU1NFUlQoaXNDU1NHcmlkTGF5b3V0RW5h
YmxlZCgpKTsKIApAQCAtNTkyMiwxNSArNTkxNSwxNSBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VH
cmlkVHJhY2tSZXBlYXRGdW5jdGlvbihDU1NWYWx1ZUxpc3QmIGxpc3QsIGJvb2wmIGlzQXV0b1Jl
cAogICAgICAgICBwYXJzZUdyaWRMaW5lTmFtZXMoKmFyZ3VtZW50cywgcmVwZWF0ZWRWYWx1ZXMp
OwogCiAgICAgdW5zaWduZWQgbnVtYmVyT2ZUcmFja3MgPSAwOwotICAgIFRyYWNrU2l6ZVJlc3Ry
aWN0aW9uIHJlc3RyaWN0aW9uID0gaXNBdXRvUmVwZWF0ID8gRml4ZWRTaXplT25seSA6IEFsbG93
QWxsOwogICAgIHdoaWxlIChhcmd1bWVudHMtPmN1cnJlbnQoKSkgewogICAgICAgICBpZiAoaXNB
dXRvUmVwZWF0ICYmIG51bWJlck9mVHJhY2tzKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgICAgIFJlZlB0cjxDU1NWYWx1ZT4gdHJhY2tTaXplID0gcGFyc2VHcmlkVHJhY2tTaXpl
KCphcmd1bWVudHMsIHJlc3RyaWN0aW9uKTsKKyAgICAgICAgUmVmUHRyPENTU1ZhbHVlPiB0cmFj
a1NpemUgPSBwYXJzZUdyaWRUcmFja1NpemUoKmFyZ3VtZW50cyk7CiAgICAgICAgIGlmICghdHJh
Y2tTaXplKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgICAgIGFsbFRyYWNrc0Fy
ZUZpeGVkU2l6ZWQgPSBhbGxUcmFja3NBcmVGaXhlZFNpemVkICYmIGlzR3JpZFRyYWNrRml4ZWRT
aXplZCgqdHJhY2tTaXplKTsKICAgICAgICAgcmVwZWF0ZWRWYWx1ZXMtPmFwcGVuZCh0cmFja1Np
emUucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAgICsrbnVtYmVyT2ZUcmFja3M7CiAKQEAgLTU5
NjEsNyArNTk1NCw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUdyaWRUcmFja1JlcGVhdEZ1bmN0
aW9uKENTU1ZhbHVlTGlzdCYgbGlzdCwgYm9vbCYgaXNBdXRvUmVwCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLVJlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUdyaWRUcmFja1NpemUoQ1NT
UGFyc2VyVmFsdWVMaXN0JiBpbnB1dExpc3QsIFRyYWNrU2l6ZVJlc3RyaWN0aW9uIHJlc3RyaWN0
aW9uKQorUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNrU2l6ZShDU1NQ
YXJzZXJWYWx1ZUxpc3QmIGlucHV0TGlzdCkKIHsKICAgICBBU1NFUlQoaXNDU1NHcmlkTGF5b3V0
RW5hYmxlZCgpKTsKIApAQCAtNTk3Nyw5ICs1OTcwLDggQEAgUmVmUHRyPENTU1ZhbHVlPiBDU1NQ
YXJzZXI6OnBhcnNlR3JpZFRyYWNrU2l6ZShDU1NQYXJzZXJWYWx1ZUxpc3QmIGlucHV0TGlzdCwg
VHIKICAgICAgICAgaWYgKCFhcmd1bWVudHMgfHwgYXJndW1lbnRzLT5zaXplKCkgIT0gMyB8fCAh
aXNDb21tYShhcmd1bWVudHMtPnZhbHVlQXQoMSkpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKLSAgICAgICAgVHJhY2tTaXplUmVzdHJpY3Rpb24gbWluVHJhY2tCcmVhZHRoUmVzdHJp
Y3Rpb24gPSByZXN0cmljdGlvbiA9PSBBbGxvd0FsbCA/IEluZmxleGlibGVTaXplT25seSA6IHJl
c3RyaWN0aW9uOwotICAgICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG1pblRyYWNrQnJl
YWR0aCA9IHBhcnNlR3JpZEJyZWFkdGgoKmFyZ3VtZW50cy0+dmFsdWVBdCgwKSwgbWluVHJhY2tC
cmVhZHRoUmVzdHJpY3Rpb24pOwotICAgICAgICBpZiAoIW1pblRyYWNrQnJlYWR0aCkKKyAgICAg
ICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBtaW5UcmFja0JyZWFkdGggPSBwYXJzZUdyaWRC
cmVhZHRoKCphcmd1bWVudHMtPnZhbHVlQXQoMCkpOworICAgICAgICBpZiAoIW1pblRyYWNrQnJl
YWR0aCB8fCBtaW5UcmFja0JyZWFkdGgtPmlzRmxleCgpKQogICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKICAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBtYXhUcmFja0JyZWFk
dGggPSBwYXJzZUdyaWRCcmVhZHRoKCphcmd1bWVudHMtPnZhbHVlQXQoMikpOwpAQCAtNTk5Miwy
MyArNTk4NCwxNyBAQCBSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VHcmlkVHJhY2tT
aXplKENTU1BhcnNlclZhbHVlTGlzdCYgaW5wdXRMaXN0LCBUcgogICAgICAgICByZXR1cm4gQ1NT
RnVuY3Rpb25WYWx1ZTo6Y3JlYXRlKCJtaW5tYXgoIiwgV1RGTW92ZShwYXJzZWRBcmd1bWVudHMp
KTsKICAgICB9CiAKLSAgICByZXR1cm4gcGFyc2VHcmlkQnJlYWR0aChjdXJyZW50VmFsdWUsIHJl
c3RyaWN0aW9uKTsKKyAgICByZXR1cm4gcGFyc2VHcmlkQnJlYWR0aChjdXJyZW50VmFsdWUpOwog
fQogCi1SZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VHcmlkQnJlYWR0
aChDU1NQYXJzZXJWYWx1ZSYgdmFsdWUsIFRyYWNrU2l6ZVJlc3RyaWN0aW9uIHJlc3RyaWN0aW9u
KQorUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlR3JpZEJyZWFkdGgo
Q1NTUGFyc2VyVmFsdWUmIHZhbHVlKQogewogICAgIEFTU0VSVChpc0NTU0dyaWRMYXlvdXRFbmFi
bGVkKCkpOwogCi0gICAgaWYgKHZhbHVlLmlkID09IENTU1ZhbHVlV2Via2l0TWluQ29udGVudCB8
fCB2YWx1ZS5pZCA9PSBDU1NWYWx1ZVdlYmtpdE1heENvbnRlbnQgfHwgdmFsdWUuaWQgPT0gQ1NT
VmFsdWVBdXRvKSB7Ci0gICAgICAgIGlmIChyZXN0cmljdGlvbiA9PSBGaXhlZFNpemVPbmx5KQot
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKHZhbHVlLmlkID09IENTU1ZhbHVl
V2Via2l0TWluQ29udGVudCB8fCB2YWx1ZS5pZCA9PSBDU1NWYWx1ZVdlYmtpdE1heENvbnRlbnQg
fHwgdmFsdWUuaWQgPT0gQ1NTVmFsdWVBdXRvKQogICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29s
OjpzaW5nbGV0b24oKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUodmFsdWUuaWQpOwotICAgIH0KIAog
ICAgIGlmICh2YWx1ZS51bml0ID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRlIpIHsKLSAgICAg
ICAgaWYgKHJlc3RyaWN0aW9uID09IEZpeGVkU2l6ZU9ubHkgfHwgcmVzdHJpY3Rpb24gPT0gSW5m
bGV4aWJsZVNpemVPbmx5KQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KICAgICAgICAg
ZG91YmxlIGZsZXhWYWx1ZSA9IHZhbHVlLmZWYWx1ZTsKIAogICAgICAgICAvLyBGcmFjdGlvbmFs
IHVuaXQgaXMgYSBub24tbmVnYXRpdmUgZGltZW5zaW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1BhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmlu
ZGV4IDY5NDIyNmVkZGJiM2E2ZDhmNjQxZWFmZDMzNWYwMjI2MGQ5ODEyN2MuLjMwYWRhODUxZWM5
NWI5MzU3YjFhMjRlYjgzMzVjNWNhMjYyMGIyZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAg
LTIzOSwxMCArMjM5LDkgQEAgcHVibGljOgogICAgIGJvb2wgcGFyc2VHcmlkR2FwU2hvcnRoYW5k
KGJvb2wgaW1wb3J0YW50KTsKICAgICBib29sIHBhcnNlU2luZ2xlR3JpZEFyZWFMb25naGFuZChS
ZWZQdHI8Q1NTVmFsdWU+Jik7CiAgICAgUmVmUHRyPENTU1ZhbHVlPiBwYXJzZUdyaWRUcmFja0xp
c3QoKTsKLSAgICBib29sIHBhcnNlR3JpZFRyYWNrUmVwZWF0RnVuY3Rpb24oQ1NTVmFsdWVMaXN0
JiwgYm9vbCYgaXNBdXRvUmVwZWF0KTsKLSAgICBlbnVtIFRyYWNrU2l6ZVJlc3RyaWN0aW9uIHsg
Rml4ZWRTaXplT25seSwgSW5mbGV4aWJsZVNpemVPbmx5LCBBbGxvd0FsbCB9OwotICAgIFJlZlB0
cjxDU1NWYWx1ZT4gcGFyc2VHcmlkVHJhY2tTaXplKENTU1BhcnNlclZhbHVlTGlzdCYgaW5wdXRM
aXN0LCBUcmFja1NpemVSZXN0cmljdGlvbiA9IEFsbG93QWxsKTsKLSAgICBSZWZQdHI8Q1NTUHJp
bWl0aXZlVmFsdWU+IHBhcnNlR3JpZEJyZWFkdGgoQ1NTUGFyc2VyVmFsdWUmLCBUcmFja1NpemVS
ZXN0cmljdGlvbiA9IEFsbG93QWxsKTsKKyAgICBib29sIHBhcnNlR3JpZFRyYWNrUmVwZWF0RnVu
Y3Rpb24oQ1NTVmFsdWVMaXN0JiwgYm9vbCYgaXNBdXRvUmVwZWF0LCBib29sJiBhbGxUcmFja3NB
cmVGaXhlZFNpemVkKTsKKyAgICBSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlR3JpZFRyYWNrU2l6ZShD
U1NQYXJzZXJWYWx1ZUxpc3QmIGlucHV0TGlzdCk7CisgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZh
bHVlPiBwYXJzZUdyaWRCcmVhZHRoKENTU1BhcnNlclZhbHVlJik7CiAgICAgYm9vbCBwYXJzZUdy
aWRUZW1wbGF0ZUFyZWFzUm93KE5hbWVkR3JpZEFyZWFNYXAmLCBjb25zdCB1bnNpZ25lZCwgdW5z
aWduZWQmKTsKICAgICBSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlR3JpZFRlbXBsYXRlQXJlYXMoKTsK
ICAgICBib29sIHBhcnNlR3JpZExpbmVOYW1lcyhDU1NQYXJzZXJWYWx1ZUxpc3QmLCBDU1NWYWx1
ZUxpc3QmLCBDU1NHcmlkTGluZU5hbWVzVmFsdWUqID0gbnVsbHB0cik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>