<?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>150934</bug_id>
          
          <creation_ts>2015-11-05 08:12:12 -0800</creation_ts>
          <short_desc>[Streams API] Shield implementation from mangling then and catch promise methods</short_desc>
          <delta_ts>2019-09-26 07:42:01 -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>New Bugs</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Xabier Rodríguez Calvar">calvaris</reporter>
          <assigned_to name="Xabier Rodríguez Calvar">calvaris</assigned_to>
          <cc>ailsaalanaa</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>youennf</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1139624</commentid>
    <comment_count>0</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-11-05 08:12:12 -0800</bug_when>
    <thetext>[Streams API] Shield implementation from mangling then and catch promise methods</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139625</commentid>
    <comment_count>1</comment_count>
      <attachid>264866</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-11-05 08:19:27 -0800</bug_when>
    <thetext>Created attachment 264866
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139926</commentid>
    <comment_count>2</comment_count>
      <attachid>264931</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-11-06 02:59:59 -0800</bug_when>
    <thetext>Created attachment 264931
Patch

Added another test for Object.setPrototypeOf. The test was already working before but it might be interesting to keep it just in case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1139952</commentid>
    <comment_count>3</comment_count>
      <attachid>264931</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-11-06 06:19:02 -0800</bug_when>
    <thetext>Comment on attachment 264931
Patch

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

&gt; LayoutTests/streams/streams-promises.html:60
&gt; +        Object.setPrototypeOf(promise, { then: function() { assert_unreached(&quot;streams should not use this promise then method&quot;); } });

I am surprised the test is working before the patch.
Can you try:  Object.setPrototypeOf(promise, { constructor: Promise, then: ... });
It may be the case that Promise.resolve is wrapping the &quot;promise&quot; object because its constructor is not Promise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1140316</commentid>
    <comment_count>4</comment_count>
      <attachid>264931</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-11-09 03:09:24 -0800</bug_when>
    <thetext>Comment on attachment 264931
Patch

Additional comments.

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

&gt; LayoutTests/streams/streams-promises.html:65
&gt; +}, &apos;Streams implementation is not affected if an attempt to replace promise prototype is made&apos;);

The two tests have the same name.
Might be good to precise it here.

&gt; LayoutTests/streams/streams-promises.html:87
&gt; +        rs.tee();

Are we sure closed.catch is actually triggered?
We should probably beef up the test here so that we ensure this in some way.

&gt; LayoutTests/streams/streams-promises.html:101
&gt; +}, &apos;Streams implementation is not affected if promise then method is replaced&apos;);

Same name as above test.
May be good to precise it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1140327</commentid>
    <comment_count>5</comment_count>
      <attachid>265040</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-11-09 04:14:51 -0800</bug_when>
    <thetext>Created attachment 265040
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1140338</commentid>
    <comment_count>6</comment_count>
      <attachid>265040</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-11-09 05:24:22 -0800</bug_when>
    <thetext>Comment on attachment 265040
Patch

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

r=me

Test names look much better to me. Some small suggestions below.

&gt; LayoutTests/streams/streams-promises-expected.txt:5
&gt; +PASS Streams and promises: attempt to replace Promise prototype 

Not sure we should keep this test

&gt; LayoutTests/streams/streams-promises-expected.txt:6
&gt; +FAIL Streams and promises: replace a single promise prototype undefined is not a function

replace prototype of a Promise object

&gt; LayoutTests/streams/streams-promises-expected.txt:7
&gt; +PASS Streams and promises: replace then prototype method 

replace then function in Promise prototype

&gt; LayoutTests/streams/streams-promises-expected.txt:8
&gt; +PASS Streams and promises: replace catch prototype method 

replace catch function in Promise prototype

&gt; LayoutTests/streams/streams-promises-expected.txt:9
&gt; +PASS Streams and promises: replace then method in a single promise 

replace then function in Promise object
Also, should we have a test for &quot;replace catch function in Promise object&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1140355</commentid>
    <comment_count>7</comment_count>
      <attachid>265046</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-11-09 07:14:37 -0800</bug_when>
    <thetext>Created attachment 265046
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1140357</commentid>
    <comment_count>8</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-11-09 07:19:23 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; LayoutTests/streams/streams-promises-expected.txt:5
&gt; &gt; +PASS Streams and promises: attempt to replace Promise prototype 
&gt; 
&gt; Not sure we should keep this test

Me neither, removed.

 
&gt; replace prototype of a Promise object
&gt; 
&gt; replace then function in Promise prototype
&gt; 
&gt; replace catch function in Promise prototype
&gt; 
&gt; replace then function in Promise object

Changed all this names too, used method instead of function to be more OO.

&gt; Also, should we have a test for &quot;replace catch function in Promise object&quot;?

Currently we don&apos;t need it because the only place were we use catch is in tee, with a promise that never leaves the code so currently there is not way to test it either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1140368</commentid>
    <comment_count>9</comment_count>
      <attachid>265046</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-09 08:12:36 -0800</bug_when>
    <thetext>Comment on attachment 265046
Patch for landing

Clearing flags on attachment: 265046

Committed r192157: &lt;http://trac.webkit.org/changeset/192157&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1140369</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-09 08:12:41 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264866</attachid>
            <date>2015-11-05 08:19:27 -0800</date>
            <delta_ts>2015-11-06 02:59:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-150934-20151105171828.patch</filename>
            <type>text/plain</type>
            <size>14105</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyMDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
ZjIyMmNhNDFkZWY5MTZmMWRiNjQwZDZiYmRlZjBlNzY1ODVhOTg5Li4yYmQ2ODYyZmUyZjI5ZTNj
OGQwNmM0MGZkMjMzNDY5YzM4MGFmZjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwyMCBAQAogMjAxNS0xMS0wNSAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJp
c0BpZ2FsaWEuY29tPgogCisgICAgICAgIFtTdHJlYW1zIEFQSV0gU2hpZWxkIGltcGxlbWVudGF0
aW9uIGZyb20gbWFuZ2xpbmcgdGhlbiBhbmQgY2F0Y2ggcHJvbWlzZSBtZXRob2RzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTA5MzQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW5jZSB0aGUgcHJvdG90
eXBlIGlzIG5vdCBkZWxldGFibGUgYW5kIHJlYWRvbmx5IHdlIG9ubHkgaGF2ZSB0byBjYXJlIGFi
b3V0IGVuc3VyaW5nIHRoYXQgaXQgaGFzIHRoZSByaWdodAorICAgICAgICBAdGhlbiBhbmQgQGNh
dGNoIGludGVybmFsIG1ldGhvZHMuCisKKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZVByb3Rv
dHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9taXNlUHJvdG90eXBlLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNQcm9taXNlUHJvdG90eXBlOjphZGRPd25JbnRlcm5hbFNsb3RzKTogQWRkZWQg
dG8gY3JlYXRlIHRoZSBwcm9wZXIgQHRoZW4gYW5kIEBjYXRjaCBpbnRlcm5hbCBzbG90cy4KKyAg
ICAgICAgKEpTQzo6SlNQcm9taXNlUHJvdG90eXBlOjpjcmVhdGUpOiBDYWxsIGFkZE93bkludGVy
bmFsU2xvdHMuCisKKzIwMTUtMTEtMDUgIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFy
aXNAaWdhbGlhLmNvbT4KKwogICAgICAgICBbU3RyZWFtcyBBUEldIFNoaWVsZCBpbXBsZW1lbnRh
dGlvbiBmcm9tIHVzZXIgbWFuZ2xpbmcgUHJvbWlzZS5yZWplY3QgYW5kIHJlc29sdmUgbWV0aG9k
cwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwODk1
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBjNWI2M2RjNTljYjM5YmNkYjQwYWU4YzQ1M2ViODQxYzU0OTljZTRk
Li5hZTZjMjQzMjVjYjk3Y2JhZmFkYjc0Yzk5ZjlkZjhlYWU5MDg2ZGYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsMjkgQEAKIDIwMTUtMTEtMDUgIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2Fs
dmFyaXNAaWdhbGlhLmNvbT4KIAorICAgICAgICBbU3RyZWFtcyBBUEldIFNoaWVsZCBpbXBsZW1l
bnRhdGlvbiBmcm9tIG1hbmdsaW5nIHRoZW4gYW5kIGNhdGNoIHByb21pc2UgbWV0aG9kcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwOTM0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVG8gZW5zdXJlIHRo
ZW4gYW5kIGNhdGNoIHJ1biBzbW9vdGhseSBpbnNpZGUgc3RyZWFtcyBjb2RlLiB3ZSBvbmx5IGhh
dmUgdG8gY2FsbCB0aGUgaW50ZXJhbCBAdGhlbiBhbmQgQGNhdGNoCisgICAgICAgIG1ldGhvZHMu
CisKKyAgICAgICAgVGVzdDogc3RyZWFtcy9zdHJlYW1zLXByb21pc2VzLmh0bWwuCisKKyAgICAg
ICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanM6CisgICAgICAgIChpbml0aWFs
aXplUmVhZGFibGVTdHJlYW0pOgorICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0
cmVhbUludGVybmFscy5qczoKKyAgICAgICAgKHRlZVJlYWRhYmxlU3RyZWFtKToKKyAgICAgICAg
KHRlZVJlYWRhYmxlU3RyZWFtUHVsbEZ1bmN0aW9uKToKKyAgICAgICAgKGNhbmNlbFJlYWRhYmxl
U3RyZWFtKToKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW0uanM6Cisg
ICAgICAgIChpbml0aWFsaXplV3JpdGFibGVTdHJlYW0pOgorICAgICAgICAoYWJvcnQpOgorICAg
ICAgICAqIE1vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbUludGVybmFscy5qczoKKyAgICAg
ICAgKGNhbGxPclNjaGVkdWxlV3JpdGFibGVTdHJlYW1BZHZhbmNlUXVldWUpOgorCisyMDE1LTEx
LTA1ICBYYWJpZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKICAg
ICAgICAgW1N0cmVhbXMgQVBJXSBTaGllbGQgaW1wbGVtZW50YXRpb24gZnJvbSB1c2VyIG1hbmds
aW5nIFByb21pc2UucmVqZWN0IGFuZCByZXNvbHZlIG1ldGhvZHMKICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDg5NQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VQcm90b3R5cGUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlUHJvdG90eXBlLmNwcAppbmRleCAxYmM1
YTExNjlmODUyNDEyNGI4MGIwN2ZlZmNjYjQ0MmNhNGRhNDUwLi41YzdlYjVhMmUxYmIyNDQ0NTYy
NWI4NDkyYmIwNzZkM2FmNjc2YmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Byb21pc2VQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTUHJvbWlzZVByb3RvdHlwZS5jcHAKQEAgLTI2LDEwICsyNiwxMiBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTUHJvbWlzZVByb3RvdHlwZS5oIgogCisjaW5j
bHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVkZSAiRXJyb3IuaCIKICNpbmNsdWRlICJKU0NC
dWlsdGlucy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlND
ZWxsSW5saW5lcy5oIgorI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0dsb2Jh
bE9iamVjdC5oIgogI2luY2x1ZGUgIkpTUHJvbWlzZS5oIgogI2luY2x1ZGUgIk1pY3JvdGFzay5o
IgpAQCAtNTgsNiArNjAsNyBAQCBKU1Byb21pc2VQcm90b3R5cGUqIEpTUHJvbWlzZVByb3RvdHlw
ZTo6Y3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cgogewogICAgIEpTUHJv
bWlzZVByb3RvdHlwZSogb2JqZWN0ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8SlNQcm9t
aXNlUHJvdG90eXBlPih2bS5oZWFwKSkgSlNQcm9taXNlUHJvdG90eXBlKHZtLCBzdHJ1Y3R1cmUp
OwogICAgIG9iamVjdC0+ZmluaXNoQ3JlYXRpb24odm0sIHN0cnVjdHVyZSk7CisgICAgb2JqZWN0
LT5hZGRPd25JbnRlcm5hbFNsb3RzKHZtLCBzdHJ1Y3R1cmUtPmdsb2JhbE9iamVjdCgpKTsKICAg
ICByZXR1cm4gb2JqZWN0OwogfQogCkBAIC03Nyw2ICs4MCwxMiBAQCB2b2lkIEpTUHJvbWlzZVBy
b3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBTdHJ1Y3R1cmUqKQogICAgIHB1dERpcmVj
dFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT50b1N0cmluZ1RhZ1N5bWJv
bCwganNTdHJpbmcoJnZtLCAiUHJvbWlzZSIpLCBEb250RW51bSB8IFJlYWRPbmx5KTsKIH0KIAor
dm9pZCBKU1Byb21pc2VQcm90b3R5cGU6OmFkZE93bkludGVybmFsU2xvdHMoVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OKHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnRoZW5Qcml2YXRlTmFtZSgpLCBwcm9taXNl
UHJvdG90eXBlVGhlbkNvZGVHZW5lcmF0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KTsKKyAgICBKU0NfQlVJTFRJTl9GVU5DVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGlu
TmFtZXMoKS5jYXRjaFByaXZhdGVOYW1lKCksIHByb21pc2VQcm90b3R5cGVDYXRjaENvZGVHZW5l
cmF0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKK30KKwogYm9vbCBKU1By
b21pc2VQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVj
U3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xv
dCkKIHsKICAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PEJhc2U+KGV4ZWMsIHByb21p
c2VQcm90b3R5cGVUYWJsZSwganNDYXN0PEpTUHJvbWlzZVByb3RvdHlwZSo+KG9iamVjdCksIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1Byb21pc2VQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTUHJvbWlzZVByb3RvdHlwZS5oCmluZGV4IGE2MjQxOTIyY2QzYzAwMTBjY2M5MGYyZjk1NTcz
MzA1ZGFkNWYzZWEuLjMxMjhkMzBmZjM5MGU4OWYwNTAwNDg3NGZmMDExNjQ1NmRjYTc5YWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZVByb3RvdHlw
ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZVByb3RvdHlw
ZS5oCkBAIC00NSw2ICs0NSw5IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKFZNJiwgU3RydWN0dXJlKik7CiAgICAgSlNQcm9taXNlUHJvdG90eXBlKFZNJiwg
U3RydWN0dXJlKik7CisKK3ByaXZhdGU6CisgICAgdm9pZCBhZGRPd25JbnRlcm5hbFNsb3RzKFZN
JiwgSlNHbG9iYWxPYmplY3QqKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzCmluZGV4IDY4NmIz
NTY1Yzk3NjIxYzVkMGU5N2M4ZWVmNTgwODhlY2M4Yzg5NjAuLjc2YjVjNjcwNDQyMWM1NTZlZmFk
ZWViZTMzYzEyYjZjYTJiNzk0OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0
cmVhbXMvUmVhZGFibGVTdHJlYW0uanMKQEAgLTU2LDcgKzU2LDcgQEAgZnVuY3Rpb24gaW5pdGlh
bGl6ZVJlYWRhYmxlU3RyZWFtKHVuZGVybHlpbmdTb3VyY2UsIHN0cmF0ZWd5KQogCiAgICAgdmFy
IHJlc3VsdCA9IEBpbnZva2VPck5vb3AodW5kZXJseWluZ1NvdXJjZSwgInN0YXJ0IiwgW3RoaXMu
QGNvbnRyb2xsZXJdKTsKICAgICB2YXIgX3RoaXMgPSB0aGlzOwotICAgIEBQcm9taXNlLkByZXNv
bHZlKHJlc3VsdCkudGhlbihmdW5jdGlvbigpIHsKKyAgICBAUHJvbWlzZS5AcmVzb2x2ZShyZXN1
bHQpLkB0aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICBfdGhpcy5Ac3RhcnRlZCA9IHRydWU7CiAg
ICAgICAgIEByZXF1ZXN0UmVhZGFibGVTdHJlYW1QdWxsKF90aGlzKTsKICAgICB9LCBmdW5jdGlv
bihlcnJvcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1Jl
YWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1z
L1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzCmluZGV4IDAwMGMwYTZkMmVhNTMxNTk0ZmU2MjQ5
YWRlYzU5ZWJiOWZlZmI4ZTYuLjkxYzU5MWI4MGU3MmQwOTUwY2ViNDY3NjQ2ZGQ2OTg2OGIzZWQw
NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0
cmVhbUludGVybmFscy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVh
ZGFibGVTdHJlYW1JbnRlcm5hbHMuanMKQEAgLTEwNiw3ICsxMDYsNyBAQCBmdW5jdGlvbiB0ZWVS
ZWFkYWJsZVN0cmVhbShzdHJlYW0sIHNob3VsZENsb25lKQogICAgIGxldCBicmFuY2gxID0gbmV3
IFJlYWRhYmxlU3RyZWFtKHVuZGVybHlpbmdTb3VyY2UxKTsKICAgICBsZXQgYnJhbmNoMiA9IG5l
dyBSZWFkYWJsZVN0cmVhbSh1bmRlcmx5aW5nU291cmNlMik7CiAKLSAgICByZWFkZXIuY2xvc2Vk
LmNhdGNoKGZ1bmN0aW9uKGUpIHsKKyAgICByZWFkZXIuY2xvc2VkLkBjYXRjaChmdW5jdGlvbihl
KSB7CiAgICAgICAgIGlmICh0ZWVTdGF0ZS5jbG9zZWRPckVycm9yZWQpCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIEBlcnJvclJlYWRhYmxlU3RyZWFtKGJyYW5jaDEsIGUpOwpAQCAtMTI0
LDcgKzEyNCw3IEBAIGZ1bmN0aW9uIHRlZVJlYWRhYmxlU3RyZWFtKHN0cmVhbSwgc2hvdWxkQ2xv
bmUpCiBmdW5jdGlvbiB0ZWVSZWFkYWJsZVN0cmVhbVB1bGxGdW5jdGlvbih0ZWVTdGF0ZSwgcmVh
ZGVyLCBzaG91bGRDbG9uZSkKIHsKICAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHJl
YWRlci5yZWFkKCkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgcmVhZGVyLnJlYWQo
KS5AdGhlbihmdW5jdGlvbihyZXN1bHQpIHsKICAgICAgICAgICAgIGlmIChyZXN1bHQuZG9uZSAm
JiAhdGVlU3RhdGUuY2xvc2VkT3JFcnJvcmVkKSB7CiAgICAgICAgICAgICAgICAgQGNsb3NlUmVh
ZGFibGVTdHJlYW0odGVlU3RhdGUuYnJhbmNoMSk7CiAgICAgICAgICAgICAgICAgQGNsb3NlUmVh
ZGFibGVTdHJlYW0odGVlU3RhdGUuYnJhbmNoMik7CkBAIC0yMzcsNyArMjM3LDcgQEAgZnVuY3Rp
b24gcmVxdWVzdFJlYWRhYmxlU3RyZWFtUHVsbChzdHJlYW0pCiAgICAgc3RyZWFtLkBwdWxsaW5n
ID0gdHJ1ZTsKIAogICAgIHZhciBwcm9taXNlID0gQHByb21pc2VJbnZva2VPck5vb3Aoc3RyZWFt
LkB1bmRlcmx5aW5nU291cmNlLCAicHVsbCIsIFtzdHJlYW0uQGNvbnRyb2xsZXJdKTsKLSAgICBw
cm9taXNlLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgcHJvbWlzZS5AdGhlbihmdW5jdGlvbigpIHsK
ICAgICAgICAgc3RyZWFtLkBwdWxsaW5nID0gZmFsc2U7CiAgICAgICAgIGlmIChzdHJlYW0uQHB1
bGxBZ2FpbikgewogICAgICAgICAgICAgc3RyZWFtLkBwdWxsQWdhaW4gPSBmYWxzZTsKQEAgLTI4
MCw3ICsyODAsNyBAQCBmdW5jdGlvbiBjYW5jZWxSZWFkYWJsZVN0cmVhbShzdHJlYW0sIHJlYXNv
bikKICAgICAgICAgcmV0dXJuIEBQcm9taXNlLkByZWplY3Qoc3RyZWFtLkBzdG9yZWRFcnJvcik7
CiAgICAgc3RyZWFtLkBxdWV1ZSA9IEBuZXdRdWV1ZSgpOwogICAgIEBmaW5pc2hDbG9zaW5nUmVh
ZGFibGVTdHJlYW0oc3RyZWFtKTsKLSAgICByZXR1cm4gQHByb21pc2VJbnZva2VPck5vb3Aoc3Ry
ZWFtLkB1bmRlcmx5aW5nU291cmNlLCAiY2FuY2VsIiwgW3JlYXNvbl0pLnRoZW4oZnVuY3Rpb24o
KSB7IH0pOworICAgIHJldHVybiBAcHJvbWlzZUludm9rZU9yTm9vcChzdHJlYW0uQHVuZGVybHlp
bmdTb3VyY2UsICJjYW5jZWwiLCBbcmVhc29uXSkuQHRoZW4oZnVuY3Rpb24oKSB7IH0pOwogfQog
CiBmdW5jdGlvbiBmaW5pc2hDbG9zaW5nUmVhZGFibGVTdHJlYW0oc3RyZWFtKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtLmpzIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtLmpzCmluZGV4IGFkOWQx
MTAyMTJlNWFkZDFjY2MyMWVlNjBjZmM1YzJlMWViNDhkMGMuLmU1ZTQwMGY4MzhmZWUzNGZhMmRk
ZmNmYWRiYjczYmI1ZDQ1NmRjNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3RyZWFtcy9Xcml0YWJsZVN0cmVhbS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0
cmVhbXMvV3JpdGFibGVTdHJlYW0uanMKQEAgLTU3LDcgKzU3LDcgQEAgZnVuY3Rpb24gaW5pdGlh
bGl6ZVdyaXRhYmxlU3RyZWFtKHVuZGVybHlpbmdTaW5rLCBzdHJhdGVneSkKICAgICB2YXIgc3Rh
cnRSZXN1bHQgPSBAaW52b2tlT3JOb29wKHVuZGVybHlpbmdTaW5rLCAic3RhcnQiLCBbZXJyb3Jd
KTsKICAgICB0aGlzLkBzdGFydGVkUHJvbWlzZSA9IEBQcm9taXNlLkByZXNvbHZlKHN0YXJ0UmVz
dWx0KTsKICAgICB2YXIgX3RoaXMgPSB0aGlzOwotICAgIHRoaXMuQHN0YXJ0ZWRQcm9taXNlLnRo
ZW4oZnVuY3Rpb24oKSB7CisgICAgdGhpcy5Ac3RhcnRlZFByb21pc2UuQHRoZW4oZnVuY3Rpb24o
KSB7CiAgICAgICAgIF90aGlzLkBzdGFydGVkID0gdHJ1ZTsKICAgICAgICAgX3RoaXMuQHN0YXJ0
ZWRQcm9taXNlID0gdW5kZWZpbmVkOwogICAgIH0sIGVycm9yKTsKQEAgLTgyLDcgKzgyLDcgQEAg
ZnVuY3Rpb24gYWJvcnQocmVhc29uKQogCiAgICAgY29uc3Qgc2lua0Fib3J0UHJvbWlzZSA9IEBw
cm9taXNlSW52b2tlT3JGYWxsYmFja09yTm9vcCh0aGlzLkB1bmRlcmx5aW5nU2luaywgImFib3J0
IiwgW3JlYXNvbl0sICJjbG9zZSIsIFtdKTsKIAotICAgIHJldHVybiBzaW5rQWJvcnRQcm9taXNl
LnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiB1bmRlZmluZWQ7IH0pOworICAgIHJldHVybiBzaW5r
QWJvcnRQcm9taXNlLkB0aGVuKGZ1bmN0aW9uKCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9KTsKIH0K
IAogZnVuY3Rpb24gY2xvc2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
dHJlYW1zL1dyaXRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzCmluZGV4IDNjZGY5MmI2Nzk2MTYx
NzI1Y2RmNGQ1MGM0YTc0NDM5YWUxNmFkNDcuLmFlMDc2NzJhYWFlYjBiN2U3NjAyNWRkOGRlZjIx
YmFlZmJmZjI2MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9X
cml0YWJsZVN0cmVhbUludGVybmFscy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0
cmVhbXMvV3JpdGFibGVTdHJlYW1JbnRlcm5hbHMuanMKQEAgLTc3LDcgKzc3LDcgQEAgZnVuY3Rp
b24gZXJyb3JXcml0YWJsZVN0cmVhbShlKQogZnVuY3Rpb24gY2FsbE9yU2NoZWR1bGVXcml0YWJs
ZVN0cmVhbUFkdmFuY2VRdWV1ZShzdHJlYW0pCiB7CiAgICAgaWYgKCFzdHJlYW0uQHN0YXJ0ZWQp
Ci0gICAgICAgIHN0cmVhbS5Ac3RhcnRlZFByb21pc2UudGhlbihmdW5jdGlvbigpIHsgQHdyaXRh
YmxlU3RyZWFtQWR2YW5jZVF1ZXVlKHN0cmVhbSk7IH0pOworICAgICAgICBzdHJlYW0uQHN0YXJ0
ZWRQcm9taXNlLkB0aGVuKGZ1bmN0aW9uKCkgeyBAd3JpdGFibGVTdHJlYW1BZHZhbmNlUXVldWUo
c3RyZWFtKTsgfSk7CiAgICAgZWxzZQogICAgICAgICBAd3JpdGFibGVTdHJlYW1BZHZhbmNlUXVl
dWUoc3RyZWFtKTsKIApAQCAtMTAxLDcgKzEwMSw3IEBAIGZ1bmN0aW9uIHdyaXRhYmxlU3RyZWFt
QWR2YW5jZVF1ZXVlKHN0cmVhbSkKICAgICB9CiAKICAgICBzdHJlYW0uQHdyaXRpbmcgPSB0cnVl
OwotICAgIEBwcm9taXNlSW52b2tlT3JOb29wKHN0cmVhbS5AdW5kZXJseWluZ1NpbmssICJ3cml0
ZSIsIFt3cml0ZVJlY29yZC5jaHVua10pLnRoZW4oCisgICAgQHByb21pc2VJbnZva2VPck5vb3Ao
c3RyZWFtLkB1bmRlcmx5aW5nU2luaywgIndyaXRlIiwgW3dyaXRlUmVjb3JkLmNodW5rXSkuQHRo
ZW4oCiAgICAgICAgIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgaWYgKHN0cmVhbS5Ac3RhdGUg
PT09IEBzdHJlYW1FcnJvcmVkKQogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTEyMyw3ICsx
MjMsNyBAQCBmdW5jdGlvbiBjbG9zZVdyaXRhYmxlU3RyZWFtKHN0cmVhbSkKIHsKICAgICAvLyBG
SVhNRQogICAgIC8vIGFzc2VydChzdHJlYW0uQHN0YXRlID09PSBAc3RyZWFtQ2xvc2luZyk7Ci0g
ICAgQHByb21pc2VJbnZva2VPck5vb3Aoc3RyZWFtLkB1bmRlcmx5aW5nU2luaywgImNsb3NlIiku
dGhlbigKKyAgICBAcHJvbWlzZUludm9rZU9yTm9vcChzdHJlYW0uQHVuZGVybHlpbmdTaW5rLCAi
Y2xvc2UiKS5AdGhlbigKICAgICAgICAgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBpZiAoc3Ry
ZWFtLkBzdGF0ZSA9PT0gQHN0cmVhbUVycm9yZWQpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDJkNDU5N2E5MWQyM2IxYWFkZmIwOTA0ZGM4Y2RhYzg2MjMxOTVhMmQuLjM0ZGYxYmE1
YTZjMWZjYTg4NWZjNjQ2ZjdhMTAxZmQ3M2FlZjM1NmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNSBAQAog
MjAxNS0xMS0wNSAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJpc0BpZ2FsaWEuY29t
PgogCisgICAgICAgIFtTdHJlYW1zIEFQSV0gU2hpZWxkIGltcGxlbWVudGF0aW9uIGZyb20gbWFu
Z2xpbmcgdGhlbiBhbmQgY2F0Y2ggcHJvbWlzZSBtZXRob2RzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTA5MzQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVhbXMvc3RyZWFtcy1wcm9taXNlcy5o
dG1sOiBBZGRlZCB0ZXN0cyBmcm9tIGFib3V0IHRoZW4gYW5kIGNhdGNoIG1ldGhvZHMuCisgICAg
ICAgICogc3RyZWFtcy9zdHJlYW1zLXByb21pc2VzLWV4cGVjdGVkLnR4dDogQWRkZWQgZXhwZWN0
YXRpb25zLgorCisyMDE1LTExLTA1ICBYYWJpZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlz
QGlnYWxpYS5jb20+CisKICAgICAgICAgW1N0cmVhbXMgQVBJXSBTaGllbGQgaW1wbGVtZW50YXRp
b24gZnJvbSB1c2VyIG1hbmdsaW5nIFByb21pc2UucmVqZWN0IGFuZCByZXNvbHZlIG1ldGhvZHMK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDg5NQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3N0cmVhbXMtcHJvbWlzZXMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9zdHJlYW1zLXByb21pc2VzLWV4cGVjdGVkLnR4
dAppbmRleCAyMDRhYWVhMjQ4Y2JmNmYxNTZkYzkwYjhiZDViMmFiYWQ4MTZiNDBkLi4zNGQzM2Zm
OGIyZDVjNjc3ZDU0NjM2MGU3OTdlYTUyNjhlNDE3NTM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9zdHJlYW1zL3N0cmVhbXMtcHJvbWlzZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3N0cmVhbXMvc3RyZWFtcy1wcm9taXNlcy1leHBlY3RlZC50eHQKQEAgLTIsNCArMiw4IEBACiBQ
QVNTIFN0cmVhbXMgaW1wbGVtZW50YXRpb24gaXMgbm90IGFmZmVjdGVkIGlmIFByb21pc2UgY29u
c3RydWN0b3IgaXMgcmVwbGFjZWQgCiBQQVNTIFN0cmVhbXMgaW1wbGVtZW50YXRpb24gaXMgbm90
IGFmZmVjdGVkIGlmIFByb21pc2UucmVzb2x2ZSBpcyByZXBsYWNlZCAKIFBBU1MgU3RyZWFtcyBp
bXBsZW1lbnRhdGlvbiBpcyBub3QgYWZmZWN0ZWQgaWYgUHJvbWlzZS5yZWplY3QgaXMgcmVwbGFj
ZWQgCitQQVNTIFN0cmVhbXMgaW1wbGVtZW50YXRpb24gaXMgbm90IGFmZmVjdGVkIGlmIFByb21p
c2UucHJvdG90eXBlIGlzIHJlcGxhY2VkIAorUEFTUyBTdHJlYW1zIGltcGxlbWVudGF0aW9uIGlz
IG5vdCBhZmZlY3RlZCBpZiBQcm9taXNlLnByb3RvdHlwZS50aGVuIGlzIHJlcGxhY2VkIAorUEFT
UyBTdHJlYW1zIGltcGxlbWVudGF0aW9uIGlzIG5vdCBhZmZlY3RlZCBpZiBQcm9taXNlLnByb3Rv
dHlwZS5jYXRjaCBpcyByZXBsYWNlZCAKK1BBU1MgU3RyZWFtcyBpbXBsZW1lbnRhdGlvbiBpcyBu
b3QgYWZmZWN0ZWQgaWYgcHJvbWlzZSB0aGVuIG1ldGhvZCBpcyByZXBsYWNlZCAKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9zdHJlYW1zLXByb21pc2VzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9zdHJlYW1zL3N0cmVhbXMtcHJvbWlzZXMuaHRtbAppbmRleCBlNTU5YjFiMjE1YWU4ODEx
NDVhZTBlZjBhNDNhOWIwMjBkMjQ3YmEwLi40ZmQ5ODAwNzczZWEyN2Y2MThjNjk2MjAyNDk0OGM0
ZjlmMGQzYmM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3N0cmVhbXMtcHJvbWlz
ZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3N0cmVhbXMtcHJvbWlzZXMuaHRtbApA
QCAtNDEsNCArNDEsNTMgQEAgdGVzdChmdW5jdGlvbigpIHsKICAgICAgICAgUHJvbWlzZS5yZWpl
Y3QgPSBQcm9taXNlUmVqZWN0QmFja3VwOwogICAgIH0KIH0sICdTdHJlYW1zIGltcGxlbWVudGF0
aW9uIGlzIG5vdCBhZmZlY3RlZCBpZiBQcm9taXNlLnJlamVjdCBpcyByZXBsYWNlZCcpOworCit0
ZXN0KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IFByb21pc2VQcm90b3R5cGVCYWNrdXAgPSBQcm9t
aXNlLnByb3RvdHlwZTsKKworICAgIHRyeSB7CisgICAgICAgIFByb21pc2UucHJvdG90eXBlID0g
eyB9OworCisgICAgICAgIG5ldyBSZWFkYWJsZVN0cmVhbSgpOworICAgICAgICBuZXcgV3JpdGFi
bGVTdHJlYW0oKTsKKyAgICB9IGZpbmFsbHkgeworICAgICAgICBQcm9taXNlLnByb3RvdHlwZSA9
IFByb21pc2VQcm90b3R5cGVCYWNrdXA7CisgICAgfQorfSwgJ1N0cmVhbXMgaW1wbGVtZW50YXRp
b24gaXMgbm90IGFmZmVjdGVkIGlmIFByb21pc2UucHJvdG90eXBlIGlzIHJlcGxhY2VkJyk7CisK
K3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgUHJvbWlzZVRoZW5CYWNrdXAgPSBQcm9taXNl
LnByb3RvdHlwZS50aGVuOworCisgICAgdHJ5IHsKKyAgICAgICAgUHJvbWlzZS5wcm90b3R5cGUu
dGhlbiA9IGZ1bmN0aW9uKCkgeyBhc3NlcnRfdW5yZWFjaGVkKCJzdHJlYW1zIHNob3VsZCBub3Qg
dXNlIHRoaXMgUHJvbWlzZS5wcm90b3R5cGUudGhlbiBtZXRob2QiKTsgfTsKKworICAgICAgICBu
ZXcgUmVhZGFibGVTdHJlYW0oKTsKKyAgICAgICAgbmV3IFdyaXRhYmxlU3RyZWFtKCk7CisgICAg
fSBmaW5hbGx5IHsKKyAgICAgICAgUHJvbWlzZS5wcm90b3R5cGUudGhlbiA9IFByb21pc2VUaGVu
QmFja3VwOworICAgIH0KK30sICdTdHJlYW1zIGltcGxlbWVudGF0aW9uIGlzIG5vdCBhZmZlY3Rl
ZCBpZiBQcm9taXNlLnByb3RvdHlwZS50aGVuIGlzIHJlcGxhY2VkJyk7CisKK3Rlc3QoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgUHJvbWlzZUNhdGNoQmFja3VwID0gUHJvbWlzZS5wcm90b3R5cGUu
Y2F0Y2g7CisKKyAgICB0cnkgeworICAgICAgICBQcm9taXNlLnByb3RvdHlwZS5jYXRjaCA9IGZ1
bmN0aW9uKCkgeyBhc3NlcnRfdW5yZWFjaGVkKCJzdHJlYW1zIHNob3VsZCBub3QgdXNlIHRoaXMg
UHJvbWlzZS5wcm90b3R5cGUuY2F0Y2ggbWV0aG9kIik7IH07CisKKyAgICAgICAgY29uc3QgcnMg
PSBuZXcgUmVhZGFibGVTdHJlYW0oKTsKKyAgICAgICAgcnMudGVlKCk7CisgICAgfSBmaW5hbGx5
IHsKKyAgICAgICAgUHJvbWlzZS5wcm90b3R5cGUuY2F0Y2ggPSBQcm9taXNlQ2F0Y2hCYWNrdXA7
CisgICAgfQorfSwgJ1N0cmVhbXMgaW1wbGVtZW50YXRpb24gaXMgbm90IGFmZmVjdGVkIGlmIFBy
b21pc2UucHJvdG90eXBlLmNhdGNoIGlzIHJlcGxhY2VkJyk7CisKK3Rlc3QoZnVuY3Rpb24oKSB7
CisgICAgZnVuY3Rpb24gY3JlYXRlTWFuZ2xlZFByb21pc2UoKSB7CisgICAgICAgIGNvbnN0IHBy
b21pc2UgPSBQcm9taXNlLnJlc29sdmUoKTsKKyAgICAgICAgcHJvbWlzZS50aGVuID0gZnVuY3Rp
b24oKSB7IGFzc2VydF91bnJlYWNoZWQoInN0cmVhbXMgc2hvdWxkIG5vdCB1c2UgdGhpcyBwcm9t
aXNlIHRoZW4gbWV0aG9kIik7IH07CisgICAgICAgIHJldHVybiBwcm9taXNlOworICAgIH0KKyAg
ICBuZXcgUmVhZGFibGVTdHJlYW0oeyBzdGFydDogZnVuY3Rpb24oKSB7IHJldHVybiBjcmVhdGVN
YW5nbGVkUHJvbWlzZSgpOyB9IH0pCisgICAgbmV3IFdyaXRhYmxlU3RyZWFtKHsgc3RhcnQ6IGZ1
bmN0aW9uKCkgeyByZXR1cm4gY3JlYXRlTWFuZ2xlZFByb21pc2UoKTsgfSB9KQorfSwgJ1N0cmVh
bXMgaW1wbGVtZW50YXRpb24gaXMgbm90IGFmZmVjdGVkIGlmIHByb21pc2UgdGhlbiBtZXRob2Qg
aXMgcmVwbGFjZWQnKTsKIDwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264931</attachid>
            <date>2015-11-06 02:59:59 -0800</date>
            <delta_ts>2015-11-09 04:14:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-150934-20151106115859.patch</filename>
            <type>text/plain</type>
            <size>14743</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyMDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
YjIxZjdhZjhmMzM3YTI4ODdkZmU3OTYyOWNkMWNlNmY3MGI4YzZlLi4wNDUzNzE3MDZmZTJjYTY2
YzY4NmE4ZjljNTRiMzI5OTFkNzNiZDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxNS0xMS0wNiAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJp
c0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtTdHJlYW1zIEFQSV0gU2hpZWxkIGltcGxlbWVudGF0
aW9uIGZyb20gbWFuZ2xpbmcgdGhlbiBhbmQgY2F0Y2ggcHJvbWlzZSBtZXRob2RzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTA5MzQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW5jZSB0aGUgcHJvdG90
eXBlIGlzIG5vdCBkZWxldGFibGUgYW5kIHJlYWRvbmx5IHdlIG9ubHkgaGF2ZSB0byBjYXJlIGFi
b3V0IGVuc3VyaW5nIHRoYXQgaXQgaGFzIHRoZSByaWdodAorICAgICAgICBAdGhlbiBhbmQgQGNh
dGNoIGludGVybmFsIG1ldGhvZHMuCisKKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZVByb3Rv
dHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9taXNlUHJvdG90eXBlLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNQcm9taXNlUHJvdG90eXBlOjphZGRPd25JbnRlcm5hbFNsb3RzKTogQWRkZWQg
dG8gY3JlYXRlIHRoZSBwcm9wZXIgQHRoZW4gYW5kIEBjYXRjaCBpbnRlcm5hbCBzbG90cy4KKyAg
ICAgICAgKEpTQzo6SlNQcm9taXNlUHJvdG90eXBlOjpjcmVhdGUpOiBDYWxsIGFkZE93bkludGVy
bmFsU2xvdHMuCisKIDIwMTUtMTEtMDUgIE5pa29zIEFuZHJvbmlrb3MgIDxuaWtvcy5hbmRyb25p
a29zLXdlYmtpdEBjaXNyYS5jYW5vbi5jb20uYXU+CiAKICAgICAgICAgQWRkIHJ1bnRpbWUgYW5k
IGNvbXBpbGUgdGltZSBmbGFncyBmb3IgZW5hYmxpbmcgV2ViIEFuaW1hdGlvbnMgQVBJIGFuZCBt
b2RlbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA0NGE2NzgyMGYyYzU3M2ZkOGI0ZTRiZGFjMzk4OWUxOTRlZDVj
ZGU1Li4wYWM2MzhkY2U2ODQ0OGNiMmNiNjI0ZjY5NDdhNDY3YWYyYTRlM2M5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjcgQEAKKzIwMTUtMTEtMDYgIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8
Y2FsdmFyaXNAaWdhbGlhLmNvbT4KKworICAgICAgICBbU3RyZWFtcyBBUEldIFNoaWVsZCBpbXBs
ZW1lbnRhdGlvbiBmcm9tIG1hbmdsaW5nIHRoZW4gYW5kIGNhdGNoIHByb21pc2UgbWV0aG9kcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwOTM0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVG8gZW5zdXJl
IHRoZW4gYW5kIGNhdGNoIHJ1biBzbW9vdGhseSBpbnNpZGUgc3RyZWFtcyBjb2RlLiB3ZSBvbmx5
IGhhdmUgdG8gY2FsbCB0aGUgaW50ZXJhbCBAdGhlbiBhbmQgQGNhdGNoCisgICAgICAgIG1ldGhv
ZHMuCisKKyAgICAgICAgVGVzdDogc3RyZWFtcy9zdHJlYW1zLXByb21pc2VzLmh0bWwuCisKKyAg
ICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanM6CisgICAgICAgIChpbml0
aWFsaXplUmVhZGFibGVTdHJlYW0pOgorICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJs
ZVN0cmVhbUludGVybmFscy5qczoKKyAgICAgICAgKHRlZVJlYWRhYmxlU3RyZWFtKToKKyAgICAg
ICAgKHRlZVJlYWRhYmxlU3RyZWFtUHVsbEZ1bmN0aW9uKToKKyAgICAgICAgKGNhbmNlbFJlYWRh
YmxlU3RyZWFtKToKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW0uanM6
CisgICAgICAgIChpbml0aWFsaXplV3JpdGFibGVTdHJlYW0pOgorICAgICAgICAoYWJvcnQpOgor
ICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbUludGVybmFscy5qczoKKyAg
ICAgICAgKGNhbGxPclNjaGVkdWxlV3JpdGFibGVTdHJlYW1BZHZhbmNlUXVldWUpOgorCiAyMDE1
LTExLTA1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbR1N0cmVhbWVyXSBVc2UgUnVuTG9vcDo6VGltZXIgaW5zdGVhZCBvZiBHTWFpbkxvb3BT
b3VyY2UgaW4gdmlkZW8gc2luawpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNQcm9taXNlUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTUHJvbWlzZVByb3RvdHlwZS5jcHAKaW5kZXggMWJjNWExMTY5Zjg1MjQxMjRiODBiMDdm
ZWZjY2I0NDJjYTRkYTQ1MC4uNWM3ZWI1YTJlMWJiMjQ0NDU2MjViODQ5MmJiMDc2ZDNhZjY3NmJi
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlUHJv
dG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VQ
cm90b3R5cGUuY3BwCkBAIC0yNiwxMCArMjYsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJKU1Byb21pc2VQcm90b3R5cGUuaCIKIAorI2luY2x1ZGUgIkJ1aWx0aW5OYW1lcy5o
IgogI2luY2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiSlNDQnVpbHRpbnMuaCIKICNpbmNsdWRl
ICJKU0NKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTQ2VsbElubGluZXMuaCIKKyNpbmNs
dWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRl
ICJKU1Byb21pc2UuaCIKICNpbmNsdWRlICJNaWNyb3Rhc2suaCIKQEAgLTU4LDYgKzYwLDcgQEAg
SlNQcm9taXNlUHJvdG90eXBlKiBKU1Byb21pc2VQcm90b3R5cGU6OmNyZWF0ZShWTSYgdm0sIEpT
R2xvYmFsT2JqZWN0KiwgU3RydWN0dXIKIHsKICAgICBKU1Byb21pc2VQcm90b3R5cGUqIG9iamVj
dCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEpTUHJvbWlzZVByb3RvdHlwZT4odm0uaGVh
cCkpIEpTUHJvbWlzZVByb3RvdHlwZSh2bSwgc3RydWN0dXJlKTsKICAgICBvYmplY3QtPmZpbmlz
aENyZWF0aW9uKHZtLCBzdHJ1Y3R1cmUpOworICAgIG9iamVjdC0+YWRkT3duSW50ZXJuYWxTbG90
cyh2bSwgc3RydWN0dXJlLT5nbG9iYWxPYmplY3QoKSk7CiAgICAgcmV0dXJuIG9iamVjdDsKIH0K
IApAQCAtNzcsNiArODAsMTIgQEAgdm9pZCBKU1Byb21pc2VQcm90b3R5cGU6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSwgU3RydWN0dXJlKikKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2
bSwgdm0ucHJvcGVydHlOYW1lcy0+dG9TdHJpbmdUYWdTeW1ib2wsIGpzU3RyaW5nKCZ2bSwgIlBy
b21pc2UiKSwgRG9udEVudW0gfCBSZWFkT25seSk7CiB9CiAKK3ZvaWQgSlNQcm9taXNlUHJvdG90
eXBlOjphZGRPd25JbnRlcm5hbFNsb3RzKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCkKK3sKKyAgICBKU0NfQlVJTFRJTl9GVU5DVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS50aGVuUHJpdmF0ZU5hbWUoKSwgcHJvbWlzZVByb3RvdHlwZVRoZW5Db2RlR2Vu
ZXJhdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7CisgICAgSlNDX0JVSUxU
SU5fRlVOQ1RJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuY2F0Y2hQcml2YXRl
TmFtZSgpLCBwcm9taXNlUHJvdG90eXBlQ2F0Y2hDb2RlR2VuZXJhdG9yLCBEb250RW51bSB8IERv
bnREZWxldGUgfCBSZWFkT25seSk7Cit9CisKIGJvb2wgSlNQcm9taXNlUHJvdG90eXBlOjpnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0
eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdl
dFN0YXRpY0Z1bmN0aW9uU2xvdDxCYXNlPihleGVjLCBwcm9taXNlUHJvdG90eXBlVGFibGUsIGpz
Q2FzdDxKU1Byb21pc2VQcm90b3R5cGUqPihvYmplY3QpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlUHJvdG90
eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VQcm90b3R5cGUu
aAppbmRleCBhNjI0MTkyMmNkM2MwMDEwY2NjOTBmMmY5NTU3MzMwNWRhZDVmM2VhLi4zMTI4ZDMw
ZmYzOTBlODlmMDUwMDQ4NzRmZjAxMTY0NTZkY2E3OWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VQcm90b3R5cGUuaApAQCAtNDUsNiArNDUsOSBA
QCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIFN0cnVj
dHVyZSopOwogICAgIEpTUHJvbWlzZVByb3RvdHlwZShWTSYsIFN0cnVjdHVyZSopOworCitwcml2
YXRlOgorICAgIHZvaWQgYWRkT3duSW50ZXJuYWxTbG90cyhWTSYsIEpTR2xvYmFsT2JqZWN0Kik7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5qcwppbmRleCA2ODZiMzU2NWM5NzYyMWM1ZDBlOTdjOGVl
ZjU4MDg4ZWNjOGM4OTYwLi43NmI1YzY3MDQ0MjFjNTU2ZWZhZGVlYmUzM2MxMmI2Y2EyYjc5NDkw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJl
YW0uanMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFt
LmpzCkBAIC01Niw3ICs1Niw3IEBAIGZ1bmN0aW9uIGluaXRpYWxpemVSZWFkYWJsZVN0cmVhbSh1
bmRlcmx5aW5nU291cmNlLCBzdHJhdGVneSkKIAogICAgIHZhciByZXN1bHQgPSBAaW52b2tlT3JO
b29wKHVuZGVybHlpbmdTb3VyY2UsICJzdGFydCIsIFt0aGlzLkBjb250cm9sbGVyXSk7CiAgICAg
dmFyIF90aGlzID0gdGhpczsKLSAgICBAUHJvbWlzZS5AcmVzb2x2ZShyZXN1bHQpLnRoZW4oZnVu
Y3Rpb24oKSB7CisgICAgQFByb21pc2UuQHJlc29sdmUocmVzdWx0KS5AdGhlbihmdW5jdGlvbigp
IHsKICAgICAgICAgX3RoaXMuQHN0YXJ0ZWQgPSB0cnVlOwogICAgICAgICBAcmVxdWVzdFJlYWRh
YmxlU3RyZWFtUHVsbChfdGhpcyk7CiAgICAgfSwgZnVuY3Rpb24oZXJyb3IpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUludGVybmFs
cy5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUludGVy
bmFscy5qcwppbmRleCAwMDBjMGE2ZDJlYTUzMTU5NGZlNjI0OWFkZWM1OWViYjlmZWZiOGU2Li45
MWM1OTFiODBlNzJkMDk1MGNlYjQ2NzY0NmRkNjk4NjhiM2VkMDc1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1JbnRlcm5hbHMuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxz
LmpzCkBAIC0xMDYsNyArMTA2LDcgQEAgZnVuY3Rpb24gdGVlUmVhZGFibGVTdHJlYW0oc3RyZWFt
LCBzaG91bGRDbG9uZSkKICAgICBsZXQgYnJhbmNoMSA9IG5ldyBSZWFkYWJsZVN0cmVhbSh1bmRl
cmx5aW5nU291cmNlMSk7CiAgICAgbGV0IGJyYW5jaDIgPSBuZXcgUmVhZGFibGVTdHJlYW0odW5k
ZXJseWluZ1NvdXJjZTIpOwogCi0gICAgcmVhZGVyLmNsb3NlZC5jYXRjaChmdW5jdGlvbihlKSB7
CisgICAgcmVhZGVyLmNsb3NlZC5AY2F0Y2goZnVuY3Rpb24oZSkgewogICAgICAgICBpZiAodGVl
U3RhdGUuY2xvc2VkT3JFcnJvcmVkKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBAZXJy
b3JSZWFkYWJsZVN0cmVhbShicmFuY2gxLCBlKTsKQEAgLTEyNCw3ICsxMjQsNyBAQCBmdW5jdGlv
biB0ZWVSZWFkYWJsZVN0cmVhbShzdHJlYW0sIHNob3VsZENsb25lKQogZnVuY3Rpb24gdGVlUmVh
ZGFibGVTdHJlYW1QdWxsRnVuY3Rpb24odGVlU3RhdGUsIHJlYWRlciwgc2hvdWxkQ2xvbmUpCiB7
CiAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICByZWFkZXIucmVhZCgpLnRoZW4oZnVu
Y3Rpb24ocmVzdWx0KSB7CisgICAgICAgIHJlYWRlci5yZWFkKCkuQHRoZW4oZnVuY3Rpb24ocmVz
dWx0KSB7CiAgICAgICAgICAgICBpZiAocmVzdWx0LmRvbmUgJiYgIXRlZVN0YXRlLmNsb3NlZE9y
RXJyb3JlZCkgewogICAgICAgICAgICAgICAgIEBjbG9zZVJlYWRhYmxlU3RyZWFtKHRlZVN0YXRl
LmJyYW5jaDEpOwogICAgICAgICAgICAgICAgIEBjbG9zZVJlYWRhYmxlU3RyZWFtKHRlZVN0YXRl
LmJyYW5jaDIpOwpAQCAtMjM3LDcgKzIzNyw3IEBAIGZ1bmN0aW9uIHJlcXVlc3RSZWFkYWJsZVN0
cmVhbVB1bGwoc3RyZWFtKQogICAgIHN0cmVhbS5AcHVsbGluZyA9IHRydWU7CiAKICAgICB2YXIg
cHJvbWlzZSA9IEBwcm9taXNlSW52b2tlT3JOb29wKHN0cmVhbS5AdW5kZXJseWluZ1NvdXJjZSwg
InB1bGwiLCBbc3RyZWFtLkBjb250cm9sbGVyXSk7Ci0gICAgcHJvbWlzZS50aGVuKGZ1bmN0aW9u
KCkgeworICAgIHByb21pc2UuQHRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgIHN0cmVhbS5AcHVs
bGluZyA9IGZhbHNlOwogICAgICAgICBpZiAoc3RyZWFtLkBwdWxsQWdhaW4pIHsKICAgICAgICAg
ICAgIHN0cmVhbS5AcHVsbEFnYWluID0gZmFsc2U7CkBAIC0yODAsNyArMjgwLDcgQEAgZnVuY3Rp
b24gY2FuY2VsUmVhZGFibGVTdHJlYW0oc3RyZWFtLCByZWFzb24pCiAgICAgICAgIHJldHVybiBA
UHJvbWlzZS5AcmVqZWN0KHN0cmVhbS5Ac3RvcmVkRXJyb3IpOwogICAgIHN0cmVhbS5AcXVldWUg
PSBAbmV3UXVldWUoKTsKICAgICBAZmluaXNoQ2xvc2luZ1JlYWRhYmxlU3RyZWFtKHN0cmVhbSk7
Ci0gICAgcmV0dXJuIEBwcm9taXNlSW52b2tlT3JOb29wKHN0cmVhbS5AdW5kZXJseWluZ1NvdXJj
ZSwgImNhbmNlbCIsIFtyZWFzb25dKS50aGVuKGZ1bmN0aW9uKCkgeyB9KTsKKyAgICByZXR1cm4g
QHByb21pc2VJbnZva2VPck5vb3Aoc3RyZWFtLkB1bmRlcmx5aW5nU291cmNlLCAiY2FuY2VsIiwg
W3JlYXNvbl0pLkB0aGVuKGZ1bmN0aW9uKCkgeyB9KTsKIH0KIAogZnVuY3Rpb24gZmluaXNoQ2xv
c2luZ1JlYWRhYmxlU3RyZWFtKHN0cmVhbSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbS5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3RyZWFtcy9Xcml0YWJsZVN0cmVhbS5qcwppbmRleCBhZDlkMTEwMjEyZTVhZGQxY2NjMjFlZTYw
Y2ZjNWMyZTFlYjQ4ZDBjLi5lNWU0MDBmODM4ZmVlMzRmYTJkZGZjZmFkYmI3M2JiNWQ0NTZkYzQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJl
YW0uanMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFt
LmpzCkBAIC01Nyw3ICs1Nyw3IEBAIGZ1bmN0aW9uIGluaXRpYWxpemVXcml0YWJsZVN0cmVhbSh1
bmRlcmx5aW5nU2luaywgc3RyYXRlZ3kpCiAgICAgdmFyIHN0YXJ0UmVzdWx0ID0gQGludm9rZU9y
Tm9vcCh1bmRlcmx5aW5nU2luaywgInN0YXJ0IiwgW2Vycm9yXSk7CiAgICAgdGhpcy5Ac3RhcnRl
ZFByb21pc2UgPSBAUHJvbWlzZS5AcmVzb2x2ZShzdGFydFJlc3VsdCk7CiAgICAgdmFyIF90aGlz
ID0gdGhpczsKLSAgICB0aGlzLkBzdGFydGVkUHJvbWlzZS50aGVuKGZ1bmN0aW9uKCkgeworICAg
IHRoaXMuQHN0YXJ0ZWRQcm9taXNlLkB0aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICBfdGhpcy5A
c3RhcnRlZCA9IHRydWU7CiAgICAgICAgIF90aGlzLkBzdGFydGVkUHJvbWlzZSA9IHVuZGVmaW5l
ZDsKICAgICB9LCBlcnJvcik7CkBAIC04Miw3ICs4Miw3IEBAIGZ1bmN0aW9uIGFib3J0KHJlYXNv
bikKIAogICAgIGNvbnN0IHNpbmtBYm9ydFByb21pc2UgPSBAcHJvbWlzZUludm9rZU9yRmFsbGJh
Y2tPck5vb3AodGhpcy5AdW5kZXJseWluZ1NpbmssICJhYm9ydCIsIFtyZWFzb25dLCAiY2xvc2Ui
LCBbXSk7CiAKLSAgICByZXR1cm4gc2lua0Fib3J0UHJvbWlzZS50aGVuKGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gdW5kZWZpbmVkOyB9KTsKKyAgICByZXR1cm4gc2lua0Fib3J0UHJvbWlzZS5AdGhlbihm
dW5jdGlvbigpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfSk7CiB9CiAKIGZ1bmN0aW9uIGNsb3NlKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVh
bUludGVybmFscy5qcyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0
cmVhbUludGVybmFscy5qcwppbmRleCAzY2RmOTJiNjc5NjE2MTcyNWNkZjRkNTBjNGE3NDQzOWFl
MTZhZDQ3Li5hZTA3NjcyYWFhZWIwYjdlNzYwMjVkZDhkZWYyMWJhZWZiZmYyNjI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW1JbnRlcm5h
bHMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFt
SW50ZXJuYWxzLmpzCkBAIC03Nyw3ICs3Nyw3IEBAIGZ1bmN0aW9uIGVycm9yV3JpdGFibGVTdHJl
YW0oZSkKIGZ1bmN0aW9uIGNhbGxPclNjaGVkdWxlV3JpdGFibGVTdHJlYW1BZHZhbmNlUXVldWUo
c3RyZWFtKQogewogICAgIGlmICghc3RyZWFtLkBzdGFydGVkKQotICAgICAgICBzdHJlYW0uQHN0
YXJ0ZWRQcm9taXNlLnRoZW4oZnVuY3Rpb24oKSB7IEB3cml0YWJsZVN0cmVhbUFkdmFuY2VRdWV1
ZShzdHJlYW0pOyB9KTsKKyAgICAgICAgc3RyZWFtLkBzdGFydGVkUHJvbWlzZS5AdGhlbihmdW5j
dGlvbigpIHsgQHdyaXRhYmxlU3RyZWFtQWR2YW5jZVF1ZXVlKHN0cmVhbSk7IH0pOwogICAgIGVs
c2UKICAgICAgICAgQHdyaXRhYmxlU3RyZWFtQWR2YW5jZVF1ZXVlKHN0cmVhbSk7CiAKQEAgLTEw
MSw3ICsxMDEsNyBAQCBmdW5jdGlvbiB3cml0YWJsZVN0cmVhbUFkdmFuY2VRdWV1ZShzdHJlYW0p
CiAgICAgfQogCiAgICAgc3RyZWFtLkB3cml0aW5nID0gdHJ1ZTsKLSAgICBAcHJvbWlzZUludm9r
ZU9yTm9vcChzdHJlYW0uQHVuZGVybHlpbmdTaW5rLCAid3JpdGUiLCBbd3JpdGVSZWNvcmQuY2h1
bmtdKS50aGVuKAorICAgIEBwcm9taXNlSW52b2tlT3JOb29wKHN0cmVhbS5AdW5kZXJseWluZ1Np
bmssICJ3cml0ZSIsIFt3cml0ZVJlY29yZC5jaHVua10pLkB0aGVuKAogICAgICAgICBmdW5jdGlv
bigpIHsKICAgICAgICAgICAgIGlmIChzdHJlYW0uQHN0YXRlID09PSBAc3RyZWFtRXJyb3JlZCkK
ICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0xMjMsNyArMTIzLDcgQEAgZnVuY3Rpb24gY2xv
c2VXcml0YWJsZVN0cmVhbShzdHJlYW0pCiB7CiAgICAgLy8gRklYTUUKICAgICAvLyBhc3NlcnQo
c3RyZWFtLkBzdGF0ZSA9PT0gQHN0cmVhbUNsb3NpbmcpOwotICAgIEBwcm9taXNlSW52b2tlT3JO
b29wKHN0cmVhbS5AdW5kZXJseWluZ1NpbmssICJjbG9zZSIpLnRoZW4oCisgICAgQHByb21pc2VJ
bnZva2VPck5vb3Aoc3RyZWFtLkB1bmRlcmx5aW5nU2luaywgImNsb3NlIikuQHRoZW4oCiAgICAg
ICAgIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgaWYgKHN0cmVhbS5Ac3RhdGUgPT09IEBzdHJl
YW1FcnJvcmVkKQogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhZDA4NmRlZGNjZjk5
ZDUxMTBiY2E4MTYzY2Y1MzJiMGVjYmQwNDJmLi45ZmFkZDk5YjI2NzVjY2U0YmI5NTU0Y2NiNDhh
ZjNhZGE5OGQ3NDZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTUtMTEtMDYgIFhhYmllciBS
b2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4KKworICAgICAgICBbU3RyZWFt
cyBBUEldIFNoaWVsZCBpbXBsZW1lbnRhdGlvbiBmcm9tIG1hbmdsaW5nIHRoZW4gYW5kIGNhdGNo
IHByb21pc2UgbWV0aG9kcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTUwOTM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBzdHJlYW1zL3N0cmVhbXMtcHJvbWlzZXMuaHRtbDogQWRkZWQgdGVzdHMgZnJv
bSBhYm91dCB0aGVuIGFuZCBjYXRjaCBtZXRob2RzLgorICAgICAgICAqIHN0cmVhbXMvc3RyZWFt
cy1wcm9taXNlcy1leHBlY3RlZC50eHQ6IEFkZGVkIGV4cGVjdGF0aW9ucy4KKwogMjAxNS0xMS0w
NSAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdtYWlsLmNvbT4KIAogICAgICAgICBM
YXlvdXQgVGVzdCBqcy9pbnRsLWNvbGxhdG9yLmh0bWwgaXMgY3Jhc2hpbmcgb24gd2luIDcgZGVi
dWcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0cmVhbXMvc3RyZWFtcy1wcm9taXNlcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3N0cmVhbXMtcHJvbWlzZXMtZXhwZWN0ZWQu
dHh0CmluZGV4IDIwNGFhZWEyNDhjYmY2ZjE1NmRjOTBiOGJkNWIyYWJhZDgxNmI0MGQuLmU0NDk5
MzFiNDMwNDkwNjA3ZWM2ODE0OWRiODgyNDljYTAxYWM3ZmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N0cmVhbXMvc3RyZWFtcy1wcm9taXNlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvc3RyZWFtcy9zdHJlYW1zLXByb21pc2VzLWV4cGVjdGVkLnR4dApAQCAtMiw0ICsyLDkgQEAK
IFBBU1MgU3RyZWFtcyBpbXBsZW1lbnRhdGlvbiBpcyBub3QgYWZmZWN0ZWQgaWYgUHJvbWlzZSBj
b25zdHJ1Y3RvciBpcyByZXBsYWNlZCAKIFBBU1MgU3RyZWFtcyBpbXBsZW1lbnRhdGlvbiBpcyBu
b3QgYWZmZWN0ZWQgaWYgUHJvbWlzZS5yZXNvbHZlIGlzIHJlcGxhY2VkIAogUEFTUyBTdHJlYW1z
IGltcGxlbWVudGF0aW9uIGlzIG5vdCBhZmZlY3RlZCBpZiBQcm9taXNlLnJlamVjdCBpcyByZXBs
YWNlZCAKK1BBU1MgU3RyZWFtcyBpbXBsZW1lbnRhdGlvbiBpcyBub3QgYWZmZWN0ZWQgaWYgYW4g
YXR0ZW1wdCB0byByZXBsYWNlIFByb21pc2UucHJvdG90eXBlIGlzIG1hZGUgCitQQVNTIFN0cmVh
bXMgaW1wbGVtZW50YXRpb24gaXMgbm90IGFmZmVjdGVkIGlmIGFuIGF0dGVtcHQgdG8gcmVwbGFj
ZSBwcm9taXNlIHByb3RvdHlwZSBpcyBtYWRlIAorUEFTUyBTdHJlYW1zIGltcGxlbWVudGF0aW9u
IGlzIG5vdCBhZmZlY3RlZCBpZiBQcm9taXNlLnByb3RvdHlwZS50aGVuIGlzIHJlcGxhY2VkIAor
UEFTUyBTdHJlYW1zIGltcGxlbWVudGF0aW9uIGlzIG5vdCBhZmZlY3RlZCBpZiBQcm9taXNlLnBy
b3RvdHlwZS5jYXRjaCBpcyByZXBsYWNlZCAKK1BBU1MgU3RyZWFtcyBpbXBsZW1lbnRhdGlvbiBp
cyBub3QgYWZmZWN0ZWQgaWYgcHJvbWlzZSB0aGVuIG1ldGhvZCBpcyByZXBsYWNlZCAKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9zdHJlYW1zLXByb21pc2VzLmh0bWwgYi9MYXlv
dXRUZXN0cy9zdHJlYW1zL3N0cmVhbXMtcHJvbWlzZXMuaHRtbAppbmRleCBlNTU5YjFiMjE1YWU4
ODExNDVhZTBlZjBhNDNhOWIwMjBkMjQ3YmEwLi5jZjhhYzE2N2I2ZmM4NTE1ZWQ4MmZhYzY4Yzlm
ZTNiYzMyNmRkOTU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3N0cmVhbXMtcHJv
bWlzZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3N0cmVhbXMtcHJvbWlzZXMuaHRt
bApAQCAtMiw3ICsyLDYgQEAKIDxzY3JpcHQgc3JjPScuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMnPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Jy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyc+PC9zY3JpcHQ+CiA8c2NyaXB0PgotCiB0ZXN0KGZ1bmN0aW9uKCkgewogICAgIGNvbnN0
IFByb21pc2VCYWNrdXAgPSBQcm9taXNlOwogCkBAIC00MSw0ICs0MCw2MyBAQCB0ZXN0KGZ1bmN0
aW9uKCkgewogICAgICAgICBQcm9taXNlLnJlamVjdCA9IFByb21pc2VSZWplY3RCYWNrdXA7CiAg
ICAgfQogfSwgJ1N0cmVhbXMgaW1wbGVtZW50YXRpb24gaXMgbm90IGFmZmVjdGVkIGlmIFByb21p
c2UucmVqZWN0IGlzIHJlcGxhY2VkJyk7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
UHJvbWlzZVByb3RvdHlwZUJhY2t1cCA9IFByb21pc2UucHJvdG90eXBlOworCisgICAgdHJ5IHsK
KyAgICAgICAgUHJvbWlzZS5wcm90b3R5cGUgPSB7IH07CisKKyAgICAgICAgbmV3IFJlYWRhYmxl
U3RyZWFtKCk7CisgICAgICAgIG5ldyBXcml0YWJsZVN0cmVhbSgpOworICAgIH0gZmluYWxseSB7
CisgICAgICAgIFByb21pc2UucHJvdG90eXBlID0gUHJvbWlzZVByb3RvdHlwZUJhY2t1cDsKKyAg
ICB9Cit9LCAnU3RyZWFtcyBpbXBsZW1lbnRhdGlvbiBpcyBub3QgYWZmZWN0ZWQgaWYgYW4gYXR0
ZW1wdCB0byByZXBsYWNlIFByb21pc2UucHJvdG90eXBlIGlzIG1hZGUnKTsKKwordGVzdChmdW5j
dGlvbigpIHsKKyAgICBmdW5jdGlvbiBjcmVhdGVNYW5nbGVkUHJvbWlzZSgpIHsKKyAgICAgICAg
Y29uc3QgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSgpOworICAgICAgICBPYmplY3Quc2V0UHJv
dG90eXBlT2YocHJvbWlzZSwgeyB0aGVuOiBmdW5jdGlvbigpIHsgYXNzZXJ0X3VucmVhY2hlZCgi
c3RyZWFtcyBzaG91bGQgbm90IHVzZSB0aGlzIHByb21pc2UgdGhlbiBtZXRob2QiKTsgfSB9KTsK
KyAgICAgICAgcmV0dXJuIHByb21pc2U7CisgICAgfQorICAgIG5ldyBSZWFkYWJsZVN0cmVhbSh7
IHN0YXJ0OiBmdW5jdGlvbigpIHsgcmV0dXJuIGNyZWF0ZU1hbmdsZWRQcm9taXNlKCk7IH0gfSkK
KyAgICBuZXcgV3JpdGFibGVTdHJlYW0oeyBzdGFydDogZnVuY3Rpb24oKSB7IHJldHVybiBjcmVh
dGVNYW5nbGVkUHJvbWlzZSgpOyB9IH0pCit9LCAnU3RyZWFtcyBpbXBsZW1lbnRhdGlvbiBpcyBu
b3QgYWZmZWN0ZWQgaWYgYW4gYXR0ZW1wdCB0byByZXBsYWNlIHByb21pc2UgcHJvdG90eXBlIGlz
IG1hZGUnKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICBjb25zdCBQcm9taXNlVGhlbkJhY2t1
cCA9IFByb21pc2UucHJvdG90eXBlLnRoZW47CisKKyAgICB0cnkgeworICAgICAgICBQcm9taXNl
LnByb3RvdHlwZS50aGVuID0gZnVuY3Rpb24oKSB7IGFzc2VydF91bnJlYWNoZWQoInN0cmVhbXMg
c2hvdWxkIG5vdCB1c2UgdGhpcyBQcm9taXNlLnByb3RvdHlwZS50aGVuIG1ldGhvZCIpOyB9Owor
CisgICAgICAgIG5ldyBSZWFkYWJsZVN0cmVhbSgpOworICAgICAgICBuZXcgV3JpdGFibGVTdHJl
YW0oKTsKKyAgICB9IGZpbmFsbHkgeworICAgICAgICBQcm9taXNlLnByb3RvdHlwZS50aGVuID0g
UHJvbWlzZVRoZW5CYWNrdXA7CisgICAgfQorfSwgJ1N0cmVhbXMgaW1wbGVtZW50YXRpb24gaXMg
bm90IGFmZmVjdGVkIGlmIFByb21pc2UucHJvdG90eXBlLnRoZW4gaXMgcmVwbGFjZWQnKTsKKwor
dGVzdChmdW5jdGlvbigpIHsKKyAgICBjb25zdCBQcm9taXNlQ2F0Y2hCYWNrdXAgPSBQcm9taXNl
LnByb3RvdHlwZS5jYXRjaDsKKworICAgIHRyeSB7CisgICAgICAgIFByb21pc2UucHJvdG90eXBl
LmNhdGNoID0gZnVuY3Rpb24oKSB7IGFzc2VydF91bnJlYWNoZWQoInN0cmVhbXMgc2hvdWxkIG5v
dCB1c2UgdGhpcyBQcm9taXNlLnByb3RvdHlwZS5jYXRjaCBtZXRob2QiKTsgfTsKKworICAgICAg
ICBjb25zdCBycyA9IG5ldyBSZWFkYWJsZVN0cmVhbSgpOworICAgICAgICBycy50ZWUoKTsKKyAg
ICB9IGZpbmFsbHkgeworICAgICAgICBQcm9taXNlLnByb3RvdHlwZS5jYXRjaCA9IFByb21pc2VD
YXRjaEJhY2t1cDsKKyAgICB9Cit9LCAnU3RyZWFtcyBpbXBsZW1lbnRhdGlvbiBpcyBub3QgYWZm
ZWN0ZWQgaWYgUHJvbWlzZS5wcm90b3R5cGUuY2F0Y2ggaXMgcmVwbGFjZWQnKTsKKwordGVzdChm
dW5jdGlvbigpIHsKKyAgICBmdW5jdGlvbiBjcmVhdGVNYW5nbGVkUHJvbWlzZSgpIHsKKyAgICAg
ICAgY29uc3QgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSgpOworICAgICAgICBwcm9taXNlLnRo
ZW4gPSBmdW5jdGlvbigpIHsgYXNzZXJ0X3VucmVhY2hlZCgic3RyZWFtcyBzaG91bGQgbm90IHVz
ZSB0aGlzIHByb21pc2UgdGhlbiBtZXRob2QiKTsgfTsKKyAgICAgICAgcmV0dXJuIHByb21pc2U7
CisgICAgfQorICAgIG5ldyBSZWFkYWJsZVN0cmVhbSh7IHN0YXJ0OiBmdW5jdGlvbigpIHsgcmV0
dXJuIGNyZWF0ZU1hbmdsZWRQcm9taXNlKCk7IH0gfSkKKyAgICBuZXcgV3JpdGFibGVTdHJlYW0o
eyBzdGFydDogZnVuY3Rpb24oKSB7IHJldHVybiBjcmVhdGVNYW5nbGVkUHJvbWlzZSgpOyB9IH0p
Cit9LCAnU3RyZWFtcyBpbXBsZW1lbnRhdGlvbiBpcyBub3QgYWZmZWN0ZWQgaWYgcHJvbWlzZSB0
aGVuIG1ldGhvZCBpcyByZXBsYWNlZCcpOwogPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265040</attachid>
            <date>2015-11-09 04:14:51 -0800</date>
            <delta_ts>2015-11-09 07:14:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-150934-20151109131447.patch</filename>
            <type>text/plain</type>
            <size>15489</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyMTQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZTZjMWQ1YmU5ZjMxMTRiMzZlZmZlMzNmZjlkMjc0NDE1MmJiMmY3Li5mZGZjYWYyZjM2YzU4ODc5
ZGZmZTA4ZWE0ZDJhZmExYmQ5Mzc2ZDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxNS0xMS0wOSAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJp
c0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtTdHJlYW1zIEFQSV0gU2hpZWxkIGltcGxlbWVudGF0
aW9uIGZyb20gbWFuZ2xpbmcgdGhlbiBhbmQgY2F0Y2ggcHJvbWlzZSBtZXRob2RzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTA5MzQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW5jZSB0aGUgcHJvdG90
eXBlIGlzIG5vdCBkZWxldGFibGUgYW5kIHJlYWRvbmx5IHdlIG9ubHkgaGF2ZSB0byBjYXJlIGFi
b3V0IGVuc3VyaW5nIHRoYXQgaXQgaGFzIHRoZSByaWdodAorICAgICAgICBAdGhlbiBhbmQgQGNh
dGNoIGludGVybmFsIG1ldGhvZHMuCisKKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZVByb3Rv
dHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9taXNlUHJvdG90eXBlLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNQcm9taXNlUHJvdG90eXBlOjphZGRPd25JbnRlcm5hbFNsb3RzKTogQWRkZWQg
dG8gY3JlYXRlIHRoZSBwcm9wZXIgQHRoZW4gYW5kIEBjYXRjaCBpbnRlcm5hbCBzbG90cy4KKyAg
ICAgICAgKEpTQzo6SlNQcm9taXNlUHJvdG90eXBlOjpjcmVhdGUpOiBDYWxsIGFkZE93bkludGVy
bmFsU2xvdHMuCisKIDIwMTUtMTEtMDggIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CiAKICAgICAgICAgW0VTNl0gTWluaW1pemUgRVM2X0NMQVNTX1NZTlRBWCBpZmRlZnMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkNGNlODQ0ZGU1NGFiYTBmOGE2YTNhMDMwZDlmZjZlNDEzYmRlNjA4Li4z
ZGIwMzU4MjI2OGQ1ODAyNGFkZmIzZDdjNWM5MDRiZDYzNWEwZDViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjggQEAKKzIwMTUtMTEtMDkgIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFy
aXNAaWdhbGlhLmNvbT4KKworICAgICAgICBbU3RyZWFtcyBBUEldIFNoaWVsZCBpbXBsZW1lbnRh
dGlvbiBmcm9tIG1hbmdsaW5nIHRoZW4gYW5kIGNhdGNoIHByb21pc2UgbWV0aG9kcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwOTM0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBhIGZpcnN0
IHN0ZXAgdG8gZ2V0IHN0cmVhbXMgY29kZSBzaGllbGRlZCBmcm9tIHVzZXIgcmVwbGFjaW5nIHRo
ZSB0aGVuIGFuZCBjYXRjaCBtZXRob2RzIGluIG91cgorICAgICAgICBwcm9taXNlcy4gV2UgdXNl
IG5ld2x5IGludHJvZHVjZWQgQHRoZW4gYW5kIEBjYXRjaCBwcm90b3R5cGUgaW50ZXJuYWwgc2xv
dHMgYW5kIHRoYXQgc2hvdWxkIHNvbHZlIGEgbG90IG9mIHVzZQorICAgICAgICBjYXNlcy4KKwor
ICAgICAgICBUZXN0OiBzdHJlYW1zL3N0cmVhbXMtcHJvbWlzZXMuaHRtbC4KKworICAgICAgICAq
IE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbS5qczoKKyAgICAgICAgKGluaXRpYWxpemVS
ZWFkYWJsZVN0cmVhbSk6CisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFt
SW50ZXJuYWxzLmpzOgorICAgICAgICAodGVlUmVhZGFibGVTdHJlYW0pOgorICAgICAgICAodGVl
UmVhZGFibGVTdHJlYW1QdWxsRnVuY3Rpb24pOgorICAgICAgICAoY2FuY2VsUmVhZGFibGVTdHJl
YW0pOgorICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbS5qczoKKyAgICAg
ICAgKGluaXRpYWxpemVXcml0YWJsZVN0cmVhbSk6CisgICAgICAgIChhYm9ydCk6CisgICAgICAg
ICogTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtSW50ZXJuYWxzLmpzOgorICAgICAgICAo
Y2FsbE9yU2NoZWR1bGVXcml0YWJsZVN0cmVhbUFkdmFuY2VRdWV1ZSk6CisKIDIwMTUtMTEtMDgg
IEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtFRkxd
IEFkZCBVc2VyQWdlbnRFRmwuY3BwfGgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTUHJvbWlzZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Byb21pc2VQcm90b3R5cGUuY3BwCmluZGV4IDFiYzVhMTE2OWY4NTI0MTI0Yjgw
YjA3ZmVmY2NiNDQyY2E0ZGE0NTAuLjVjN2ViNWEyZTFiYjI0NDQ1NjI1Yjg0OTJiYjA3NmQzYWY2
NzZiYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlz
ZVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9t
aXNlUHJvdG90eXBlLmNwcApAQCAtMjYsMTAgKzI2LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiSlNQcm9taXNlUHJvdG90eXBlLmgiCiAKKyNpbmNsdWRlICJCdWlsdGluTmFt
ZXMuaCIKICNpbmNsdWRlICJFcnJvci5oIgogI2luY2x1ZGUgIkpTQ0J1aWx0aW5zLmgiCiAjaW5j
bHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJKU0NlbGxJbmxpbmVzLmgiCisj
aW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5j
bHVkZSAiSlNQcm9taXNlLmgiCiAjaW5jbHVkZSAiTWljcm90YXNrLmgiCkBAIC01OCw2ICs2MCw3
IEBAIEpTUHJvbWlzZVByb3RvdHlwZSogSlNQcm9taXNlUHJvdG90eXBlOjpjcmVhdGUoVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyCiB7CiAgICAgSlNQcm9taXNlUHJvdG90eXBlKiBv
YmplY3QgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxKU1Byb21pc2VQcm90b3R5cGU+KHZt
LmhlYXApKSBKU1Byb21pc2VQcm90b3R5cGUodm0sIHN0cnVjdHVyZSk7CiAgICAgb2JqZWN0LT5m
aW5pc2hDcmVhdGlvbih2bSwgc3RydWN0dXJlKTsKKyAgICBvYmplY3QtPmFkZE93bkludGVybmFs
U2xvdHModm0sIHN0cnVjdHVyZS0+Z2xvYmFsT2JqZWN0KCkpOwogICAgIHJldHVybiBvYmplY3Q7
CiB9CiAKQEAgLTc3LDYgKzgwLDEyIEBAIHZvaWQgSlNQcm9taXNlUHJvdG90eXBlOjpmaW5pc2hD
cmVhdGlvbihWTSYgdm0sIFN0cnVjdHVyZSopCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRp
b24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnRvU3RyaW5nVGFnU3ltYm9sLCBqc1N0cmluZygmdm0s
ICJQcm9taXNlIiksIERvbnRFbnVtIHwgUmVhZE9ubHkpOwogfQogCit2b2lkIEpTUHJvbWlzZVBy
b3RvdHlwZTo6YWRkT3duSW50ZXJuYWxTbG90cyhWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpCit7CisgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT04odm0ucHJvcGVydHlOYW1lcy0+
YnVpbHRpbk5hbWVzKCkudGhlblByaXZhdGVOYW1lKCksIHByb21pc2VQcm90b3R5cGVUaGVuQ29k
ZUdlbmVyYXRvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworICAgIEpTQ19C
VUlMVElOX0ZVTkNUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmNhdGNoUHJp
dmF0ZU5hbWUoKSwgcHJvbWlzZVByb3RvdHlwZUNhdGNoQ29kZUdlbmVyYXRvciwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOworfQorCiBib29sIEpTUHJvbWlzZVByb3RvdHlwZTo6
Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJv
cGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVy
biBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8QmFzZT4oZXhlYywgcHJvbWlzZVByb3RvdHlwZVRhYmxl
LCBqc0Nhc3Q8SlNQcm9taXNlUHJvdG90eXBlKj4ob2JqZWN0KSwgcHJvcGVydHlOYW1lLCBzbG90
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZVBy
b3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlUHJvdG90
eXBlLmgKaW5kZXggYTYyNDE5MjJjZDNjMDAxMGNjYzkwZjJmOTU1NzMzMDVkYWQ1ZjNlYS4uMzEy
OGQzMGZmMzkwZTg5ZjA1MDA0ODc0ZmYwMTE2NDU2ZGNhNzlhYiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlUHJvdG90eXBlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlUHJvdG90eXBlLmgKQEAgLTQ1LDYgKzQ1
LDkgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBT
dHJ1Y3R1cmUqKTsKICAgICBKU1Byb21pc2VQcm90b3R5cGUoVk0mLCBTdHJ1Y3R1cmUqKTsKKwor
cHJpdmF0ZToKKyAgICB2b2lkIGFkZE93bkludGVybmFsU2xvdHMoVk0mLCBKU0dsb2JhbE9iamVj
dCopOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanMKaW5kZXggNjg2YjM1NjVjOTc2MjFjNWQwZTk3
YzhlZWY1ODA4OGVjYzhjODk2MC4uNzZiNWM2NzA0NDIxYzU1NmVmYWRlZWJlMzNjMTJiNmNhMmI3
OTQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0
cmVhbS5qcwpAQCAtNTYsNyArNTYsNyBAQCBmdW5jdGlvbiBpbml0aWFsaXplUmVhZGFibGVTdHJl
YW0odW5kZXJseWluZ1NvdXJjZSwgc3RyYXRlZ3kpCiAKICAgICB2YXIgcmVzdWx0ID0gQGludm9r
ZU9yTm9vcCh1bmRlcmx5aW5nU291cmNlLCAic3RhcnQiLCBbdGhpcy5AY29udHJvbGxlcl0pOwog
ICAgIHZhciBfdGhpcyA9IHRoaXM7Ci0gICAgQFByb21pc2UuQHJlc29sdmUocmVzdWx0KS50aGVu
KGZ1bmN0aW9uKCkgeworICAgIEBQcm9taXNlLkByZXNvbHZlKHJlc3VsdCkuQHRoZW4oZnVuY3Rp
b24oKSB7CiAgICAgICAgIF90aGlzLkBzdGFydGVkID0gdHJ1ZTsKICAgICAgICAgQHJlcXVlc3RS
ZWFkYWJsZVN0cmVhbVB1bGwoX3RoaXMpOwogICAgIH0sIGZ1bmN0aW9uKGVycm9yKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1JbnRl
cm5hbHMuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1J
bnRlcm5hbHMuanMKaW5kZXggYzQzNDFlZDAzYTg2NDFmNzM2MDQ4YmVlYTBkNTY0YmIxMzk5ZTEx
Zi4uNzg4MTAwMWFiOGQ3ZDI3ZDJiNTY1NWJkZmY3ZjQyZDk5ODMxZDY2ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJuYWxzLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUludGVy
bmFscy5qcwpAQCAtMTA2LDcgKzEwNiw3IEBAIGZ1bmN0aW9uIHRlZVJlYWRhYmxlU3RyZWFtKHN0
cmVhbSwgc2hvdWxkQ2xvbmUpCiAgICAgbGV0IGJyYW5jaDEgPSBuZXcgUmVhZGFibGVTdHJlYW0o
dW5kZXJseWluZ1NvdXJjZTEpOwogICAgIGxldCBicmFuY2gyID0gbmV3IFJlYWRhYmxlU3RyZWFt
KHVuZGVybHlpbmdTb3VyY2UyKTsKIAotICAgIHJlYWRlci5jbG9zZWQuY2F0Y2goZnVuY3Rpb24o
ZSkgeworICAgIHJlYWRlci5jbG9zZWQuQGNhdGNoKGZ1bmN0aW9uKGUpIHsKICAgICAgICAgaWYg
KHRlZVN0YXRlLmNsb3NlZE9yRXJyb3JlZCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
QGVycm9yUmVhZGFibGVTdHJlYW0oYnJhbmNoMSwgZSk7CkBAIC0xMjQsNyArMTI0LDcgQEAgZnVu
Y3Rpb24gdGVlUmVhZGFibGVTdHJlYW0oc3RyZWFtLCBzaG91bGRDbG9uZSkKIGZ1bmN0aW9uIHRl
ZVJlYWRhYmxlU3RyZWFtUHVsbEZ1bmN0aW9uKHRlZVN0YXRlLCByZWFkZXIsIHNob3VsZENsb25l
KQogewogICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgICAgcmVhZGVyLnJlYWQoKS50aGVu
KGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICByZWFkZXIucmVhZCgpLkB0aGVuKGZ1bmN0aW9u
KHJlc3VsdCkgewogICAgICAgICAgICAgaWYgKHJlc3VsdC5kb25lICYmICF0ZWVTdGF0ZS5jbG9z
ZWRPckVycm9yZWQpIHsKICAgICAgICAgICAgICAgICBAY2xvc2VSZWFkYWJsZVN0cmVhbSh0ZWVT
dGF0ZS5icmFuY2gxKTsKICAgICAgICAgICAgICAgICBAY2xvc2VSZWFkYWJsZVN0cmVhbSh0ZWVT
dGF0ZS5icmFuY2gyKTsKQEAgLTIzNyw3ICsyMzcsNyBAQCBmdW5jdGlvbiByZXF1ZXN0UmVhZGFi
bGVTdHJlYW1QdWxsKHN0cmVhbSkKICAgICBzdHJlYW0uQHB1bGxpbmcgPSB0cnVlOwogCiAgICAg
dmFyIHByb21pc2UgPSBAcHJvbWlzZUludm9rZU9yTm9vcChzdHJlYW0uQHVuZGVybHlpbmdTb3Vy
Y2UsICJwdWxsIiwgW3N0cmVhbS5AY29udHJvbGxlcl0pOwotICAgIHByb21pc2UudGhlbihmdW5j
dGlvbigpIHsKKyAgICBwcm9taXNlLkB0aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICBzdHJlYW0u
QHB1bGxpbmcgPSBmYWxzZTsKICAgICAgICAgaWYgKHN0cmVhbS5AcHVsbEFnYWluKSB7CiAgICAg
ICAgICAgICBzdHJlYW0uQHB1bGxBZ2FpbiA9IGZhbHNlOwpAQCAtMjgwLDcgKzI4MCw3IEBAIGZ1
bmN0aW9uIGNhbmNlbFJlYWRhYmxlU3RyZWFtKHN0cmVhbSwgcmVhc29uKQogICAgICAgICByZXR1
cm4gQFByb21pc2UuQHJlamVjdChzdHJlYW0uQHN0b3JlZEVycm9yKTsKICAgICBzdHJlYW0uQHF1
ZXVlID0gQG5ld1F1ZXVlKCk7CiAgICAgQGZpbmlzaENsb3NpbmdSZWFkYWJsZVN0cmVhbShzdHJl
YW0pOwotICAgIHJldHVybiBAcHJvbWlzZUludm9rZU9yTm9vcChzdHJlYW0uQHVuZGVybHlpbmdT
b3VyY2UsICJjYW5jZWwiLCBbcmVhc29uXSkudGhlbihmdW5jdGlvbigpIHsgfSk7CisgICAgcmV0
dXJuIEBwcm9taXNlSW52b2tlT3JOb29wKHN0cmVhbS5AdW5kZXJseWluZ1NvdXJjZSwgImNhbmNl
bCIsIFtyZWFzb25dKS5AdGhlbihmdW5jdGlvbigpIHsgfSk7CiB9CiAKIGZ1bmN0aW9uIGZpbmlz
aENsb3NpbmdSZWFkYWJsZVN0cmVhbShzdHJlYW0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW0uanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW0uanMKaW5kZXggYWQ5ZDExMDIxMmU1YWRkMWNjYzIx
ZWU2MGNmYzVjMmUxZWI0OGQwYy4uZTVlNDAwZjgzOGZlZTM0ZmEyZGRmY2ZhZGJiNzNiYjVkNDU2
ZGM0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxl
U3RyZWFtLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0
cmVhbS5qcwpAQCAtNTcsNyArNTcsNyBAQCBmdW5jdGlvbiBpbml0aWFsaXplV3JpdGFibGVTdHJl
YW0odW5kZXJseWluZ1NpbmssIHN0cmF0ZWd5KQogICAgIHZhciBzdGFydFJlc3VsdCA9IEBpbnZv
a2VPck5vb3AodW5kZXJseWluZ1NpbmssICJzdGFydCIsIFtlcnJvcl0pOwogICAgIHRoaXMuQHN0
YXJ0ZWRQcm9taXNlID0gQFByb21pc2UuQHJlc29sdmUoc3RhcnRSZXN1bHQpOwogICAgIHZhciBf
dGhpcyA9IHRoaXM7Ci0gICAgdGhpcy5Ac3RhcnRlZFByb21pc2UudGhlbihmdW5jdGlvbigpIHsK
KyAgICB0aGlzLkBzdGFydGVkUHJvbWlzZS5AdGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgX3Ro
aXMuQHN0YXJ0ZWQgPSB0cnVlOwogICAgICAgICBfdGhpcy5Ac3RhcnRlZFByb21pc2UgPSB1bmRl
ZmluZWQ7CiAgICAgfSwgZXJyb3IpOwpAQCAtODIsNyArODIsNyBAQCBmdW5jdGlvbiBhYm9ydChy
ZWFzb24pCiAKICAgICBjb25zdCBzaW5rQWJvcnRQcm9taXNlID0gQHByb21pc2VJbnZva2VPckZh
bGxiYWNrT3JOb29wKHRoaXMuQHVuZGVybHlpbmdTaW5rLCAiYWJvcnQiLCBbcmVhc29uXSwgImNs
b3NlIiwgW10pOwogCi0gICAgcmV0dXJuIHNpbmtBYm9ydFByb21pc2UudGhlbihmdW5jdGlvbigp
IHsgcmV0dXJuIHVuZGVmaW5lZDsgfSk7CisgICAgcmV0dXJuIHNpbmtBYm9ydFByb21pc2UuQHRo
ZW4oZnVuY3Rpb24oKSB7IHJldHVybiB1bmRlZmluZWQ7IH0pOwogfQogCiBmdW5jdGlvbiBjbG9z
ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVT
dHJlYW1JbnRlcm5hbHMuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvV3JpdGFi
bGVTdHJlYW1JbnRlcm5hbHMuanMKaW5kZXggNWZlMzczMjYxOGU0M2UxOTQyMTBkNzNlZWYyYzJm
ZGRkNDRlNzQ3OS4uOTg1OGRlNjQzMTUyYTgzYThlYmVjNTIxZGVmMTdmZWM2Y2Q5MDM1ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtSW50
ZXJuYWxzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0
cmVhbUludGVybmFscy5qcwpAQCAtNzcsNyArNzcsNyBAQCBmdW5jdGlvbiBlcnJvcldyaXRhYmxl
U3RyZWFtKGUpCiBmdW5jdGlvbiBjYWxsT3JTY2hlZHVsZVdyaXRhYmxlU3RyZWFtQWR2YW5jZVF1
ZXVlKHN0cmVhbSkKIHsKICAgICBpZiAoIXN0cmVhbS5Ac3RhcnRlZCkKLSAgICAgICAgc3RyZWFt
LkBzdGFydGVkUHJvbWlzZS50aGVuKGZ1bmN0aW9uKCkgeyBAd3JpdGFibGVTdHJlYW1BZHZhbmNl
UXVldWUoc3RyZWFtKTsgfSk7CisgICAgICAgIHN0cmVhbS5Ac3RhcnRlZFByb21pc2UuQHRoZW4o
ZnVuY3Rpb24oKSB7IEB3cml0YWJsZVN0cmVhbUFkdmFuY2VRdWV1ZShzdHJlYW0pOyB9KTsKICAg
ICBlbHNlCiAgICAgICAgIEB3cml0YWJsZVN0cmVhbUFkdmFuY2VRdWV1ZShzdHJlYW0pOwogCkBA
IC0xMDEsNyArMTAxLDcgQEAgZnVuY3Rpb24gd3JpdGFibGVTdHJlYW1BZHZhbmNlUXVldWUoc3Ry
ZWFtKQogICAgIH0KIAogICAgIHN0cmVhbS5Ad3JpdGluZyA9IHRydWU7Ci0gICAgQHByb21pc2VJ
bnZva2VPck5vb3Aoc3RyZWFtLkB1bmRlcmx5aW5nU2luaywgIndyaXRlIiwgW3dyaXRlUmVjb3Jk
LmNodW5rXSkudGhlbigKKyAgICBAcHJvbWlzZUludm9rZU9yTm9vcChzdHJlYW0uQHVuZGVybHlp
bmdTaW5rLCAid3JpdGUiLCBbd3JpdGVSZWNvcmQuY2h1bmtdKS5AdGhlbigKICAgICAgICAgZnVu
Y3Rpb24oKSB7CiAgICAgICAgICAgICBpZiAoc3RyZWFtLkBzdGF0ZSA9PT0gQHN0cmVhbUVycm9y
ZWQpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTIzLDcgKzEyMyw3IEBAIGZ1bmN0aW9u
IGNsb3NlV3JpdGFibGVTdHJlYW0oc3RyZWFtKQogewogICAgIC8vIEZJWE1FCiAgICAgLy8gYXNz
ZXJ0KHN0cmVhbS5Ac3RhdGUgPT09IEBzdHJlYW1DbG9zaW5nKTsKLSAgICBAcHJvbWlzZUludm9r
ZU9yTm9vcChzdHJlYW0uQHVuZGVybHlpbmdTaW5rLCAiY2xvc2UiKS50aGVuKAorICAgIEBwcm9t
aXNlSW52b2tlT3JOb29wKHN0cmVhbS5AdW5kZXJseWluZ1NpbmssICJjbG9zZSIpLkB0aGVuKAog
ICAgICAgICBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGlmIChzdHJlYW0uQHN0YXRlID09PSBA
c3RyZWFtRXJyb3JlZCkKICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjk2YzU4N2Jl
MDMxNzg5MjdkYThlNTgwNjBjNTdhMDM4NjMyNjIxMi4uNzlhZTY4NDJmMDg4ODU2ZDBlNzYxOTAx
NjQ2Y2QwM2EwNGRiYmE3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE2IEBACiAyMDE1LTExLTA5ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CiAKKyAgICAgICAgW1N0
cmVhbXMgQVBJXSBTaGllbGQgaW1wbGVtZW50YXRpb24gZnJvbSBtYW5nbGluZyB0aGVuIGFuZCBj
YXRjaCBwcm9taXNlIG1ldGhvZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1MDkzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogc3RyZWFtcy9zdHJlYW1zLXByb21pc2VzLmh0bWw6IEFkZGVkIHRlc3Rz
IGZyb20gYWJvdXQgcmVwbGFjaW5nCisgICAgICAgIHRoZSBwcm90b3R5cGUsIHRoZW4gYW5kIGNh
dGNoIG1ldGhvZHMuIFJlbmFtZWQgYWxsIHRlc3RzIGFzIHdlbGwuCisgICAgICAgICogc3RyZWFt
cy9zdHJlYW1zLXByb21pc2VzLWV4cGVjdGVkLnR4dDogQWRkZWQgZXhwZWN0YXRpb25zLgorCisy
MDE1LTExLTA5ICBYYWJpZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+
CisKICAgICAgICAgVW5yZXZpZXdlZC4KIAogICAgICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhw
ZWN0YXRpb25zOiBNYXJrZWQgMTUwOTc2IGFzIGR1cCBvZiAxNDc5MzMuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdHJlYW1zL3N0cmVhbXMtcHJvbWlzZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvc3RyZWFtcy9zdHJlYW1zLXByb21pc2VzLWV4cGVjdGVkLnR4dAppbmRleCAyMDRhYWVh
MjQ4Y2JmNmYxNTZkYzkwYjhiZDViMmFiYWQ4MTZiNDBkLi5kMGYxYjM1ZTUzMWZmZjVhZTc4N2My
NzUwOTc3NGRiZGY0NTllNWM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3N0cmVh
bXMtcHJvbWlzZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0cmVhbXMvc3RyZWFt
cy1wcm9taXNlcy1leHBlY3RlZC50eHQKQEAgLTEsNSArMSwxMCBAQAogCi1QQVNTIFN0cmVhbXMg
aW1wbGVtZW50YXRpb24gaXMgbm90IGFmZmVjdGVkIGlmIFByb21pc2UgY29uc3RydWN0b3IgaXMg
cmVwbGFjZWQgCi1QQVNTIFN0cmVhbXMgaW1wbGVtZW50YXRpb24gaXMgbm90IGFmZmVjdGVkIGlm
IFByb21pc2UucmVzb2x2ZSBpcyByZXBsYWNlZCAKLVBBU1MgU3RyZWFtcyBpbXBsZW1lbnRhdGlv
biBpcyBub3QgYWZmZWN0ZWQgaWYgUHJvbWlzZS5yZWplY3QgaXMgcmVwbGFjZWQgCitQQVNTIFN0
cmVhbXMgYW5kIHByb21pc2VzOiByZXBsYWNlIFByb21pc2UgY29uc3RydWN0b3IgCitQQVNTIFN0
cmVhbXMgYW5kIHByb21pc2VzOiByZXBsYWNlIFByb21pc2UucmVzb2x2ZSAKK1BBU1MgU3RyZWFt
cyBhbmQgcHJvbWlzZXM6IHJlcGxhY2UgUHJvbWlzZS5yZWplY3QgCitQQVNTIFN0cmVhbXMgYW5k
IHByb21pc2VzOiBhdHRlbXB0IHRvIHJlcGxhY2UgUHJvbWlzZSBwcm90b3R5cGUgCitGQUlMIFN0
cmVhbXMgYW5kIHByb21pc2VzOiByZXBsYWNlIGEgc2luZ2xlIHByb21pc2UgcHJvdG90eXBlIHVu
ZGVmaW5lZCBpcyBub3QgYSBmdW5jdGlvbgorUEFTUyBTdHJlYW1zIGFuZCBwcm9taXNlczogcmVw
bGFjZSB0aGVuIHByb3RvdHlwZSBtZXRob2QgCitQQVNTIFN0cmVhbXMgYW5kIHByb21pc2VzOiBy
ZXBsYWNlIGNhdGNoIHByb3RvdHlwZSBtZXRob2QgCitQQVNTIFN0cmVhbXMgYW5kIHByb21pc2Vz
OiByZXBsYWNlIHRoZW4gbWV0aG9kIGluIGEgc2luZ2xlIHByb21pc2UgCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0cmVhbXMvc3RyZWFtcy1wcm9taXNlcy5odG1sIGIvTGF5b3V0VGVzdHMv
c3RyZWFtcy9zdHJlYW1zLXByb21pc2VzLmh0bWwKaW5kZXggZTU1OWIxYjIxNWFlODgxMTQ1YWUw
ZWYwYTQzYTliMDIwZDI0N2JhMC4uM2RmYWNiMjFmYzUxOGY2MzE5ZmU1OGY2OTJhMDUzMGFlY2Q0
NWMxMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9zdHJlYW1zLXByb21pc2VzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9zdHJlYW1zLXByb21pc2VzLmh0bWwKQEAgLTIs
NyArMiw2IEBACiA8c2NyaXB0IHNyYz0nLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzJz48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPScuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMnPjwv
c2NyaXB0PgogPHNjcmlwdD4KLQogdGVzdChmdW5jdGlvbigpIHsKICAgICBjb25zdCBQcm9taXNl
QmFja3VwID0gUHJvbWlzZTsKIApAQCAtMTQsNyArMTMsNyBAQCB0ZXN0KGZ1bmN0aW9uKCkgewog
ICAgIH0gZmluYWxseSB7CiAgICAgICAgIFByb21pc2UgPSBQcm9taXNlQmFja3VwOwogICAgIH0K
LX0sICdTdHJlYW1zIGltcGxlbWVudGF0aW9uIGlzIG5vdCBhZmZlY3RlZCBpZiBQcm9taXNlIGNv
bnN0cnVjdG9yIGlzIHJlcGxhY2VkJyk7Cit9LCAnU3RyZWFtcyBhbmQgcHJvbWlzZXM6IHJlcGxh
Y2UgUHJvbWlzZSBjb25zdHJ1Y3RvcicpOwogCiB0ZXN0KGZ1bmN0aW9uKCkgewogICAgIGNvbnN0
IFByb21pc2VSZXNvbHZlQmFja3VwID0gUHJvbWlzZS5yZXNvbHZlOwpAQCAtMjcsNyArMjYsNyBA
QCB0ZXN0KGZ1bmN0aW9uKCkgewogICAgIH0gZmluYWxseSB7CiAgICAgICAgIFByb21pc2UucmVz
b2x2ZSA9IFByb21pc2VSZXNvbHZlQmFja3VwOwogICAgIH0KLX0sICdTdHJlYW1zIGltcGxlbWVu
dGF0aW9uIGlzIG5vdCBhZmZlY3RlZCBpZiBQcm9taXNlLnJlc29sdmUgaXMgcmVwbGFjZWQnKTsK
K30sICdTdHJlYW1zIGFuZCBwcm9taXNlczogcmVwbGFjZSBQcm9taXNlLnJlc29sdmUnKTsKIAog
dGVzdChmdW5jdGlvbigpIHsKICAgICBjb25zdCBQcm9taXNlUmVqZWN0QmFja3VwID0gUHJvbWlz
ZS5yZWplY3Q7CkBAIC00MCw1ICszOSw2NCBAQCB0ZXN0KGZ1bmN0aW9uKCkgewogICAgIH0gZmlu
YWxseSB7CiAgICAgICAgIFByb21pc2UucmVqZWN0ID0gUHJvbWlzZVJlamVjdEJhY2t1cDsKICAg
ICB9Ci19LCAnU3RyZWFtcyBpbXBsZW1lbnRhdGlvbiBpcyBub3QgYWZmZWN0ZWQgaWYgUHJvbWlz
ZS5yZWplY3QgaXMgcmVwbGFjZWQnKTsKK30sICdTdHJlYW1zIGFuZCBwcm9taXNlczogcmVwbGFj
ZSBQcm9taXNlLnJlamVjdCcpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IFByb21p
c2VQcm90b3R5cGVCYWNrdXAgPSBQcm9taXNlLnByb3RvdHlwZTsKKworICAgIHRyeSB7CisgICAg
ICAgIFByb21pc2UucHJvdG90eXBlID0geyB9OworCisgICAgICAgIG5ldyBSZWFkYWJsZVN0cmVh
bSgpOworICAgICAgICBuZXcgV3JpdGFibGVTdHJlYW0oKTsKKyAgICB9IGZpbmFsbHkgeworICAg
ICAgICBQcm9taXNlLnByb3RvdHlwZSA9IFByb21pc2VQcm90b3R5cGVCYWNrdXA7CisgICAgfQor
fSwgJ1N0cmVhbXMgYW5kIHByb21pc2VzOiBhdHRlbXB0IHRvIHJlcGxhY2UgUHJvbWlzZSBwcm90
b3R5cGUnKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICBmdW5jdGlvbiBjcmVhdGVNYW5nbGVk
UHJvbWlzZSgpIHsKKyAgICAgICAgY29uc3QgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSgpOwor
ICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YocHJvbWlzZSwgeyBjb25zdHJ1Y3RvcjogUHJv
bWlzZSwgdGhlbjogZnVuY3Rpb24oKSB7IGFzc2VydF91bnJlYWNoZWQoInN0cmVhbXMgc2hvdWxk
IG5vdCB1c2UgdGhpcyBwcm9taXNlIHRoZW4gbWV0aG9kIik7IH0gfSk7CisgICAgICAgIHJldHVy
biBwcm9taXNlOworICAgIH0KKyAgICBuZXcgUmVhZGFibGVTdHJlYW0oeyBzdGFydDogZnVuY3Rp
b24oKSB7IHJldHVybiBjcmVhdGVNYW5nbGVkUHJvbWlzZSgpOyB9IH0pCisgICAgbmV3IFdyaXRh
YmxlU3RyZWFtKHsgc3RhcnQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gY3JlYXRlTWFuZ2xlZFByb21p
c2UoKTsgfSB9KQorfSwgJ1N0cmVhbXMgYW5kIHByb21pc2VzOiByZXBsYWNlIGEgc2luZ2xlIHBy
b21pc2UgcHJvdG90eXBlJyk7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgUHJvbWlz
ZVRoZW5CYWNrdXAgPSBQcm9taXNlLnByb3RvdHlwZS50aGVuOworCisgICAgdHJ5IHsKKyAgICAg
ICAgUHJvbWlzZS5wcm90b3R5cGUudGhlbiA9IGZ1bmN0aW9uKCkgeyBhc3NlcnRfdW5yZWFjaGVk
KCJzdHJlYW1zIHNob3VsZCBub3QgdXNlIHRoaXMgUHJvbWlzZS5wcm90b3R5cGUudGhlbiBtZXRo
b2QiKTsgfTsKKworICAgICAgICBuZXcgUmVhZGFibGVTdHJlYW0oKTsKKyAgICAgICAgbmV3IFdy
aXRhYmxlU3RyZWFtKCk7CisgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgUHJvbWlzZS5wcm90b3R5
cGUudGhlbiA9IFByb21pc2VUaGVuQmFja3VwOworICAgIH0KK30sICdTdHJlYW1zIGFuZCBwcm9t
aXNlczogcmVwbGFjZSB0aGVuIHByb3RvdHlwZSBtZXRob2QnKTsKKwordGVzdChmdW5jdGlvbigp
IHsKKyAgICBjb25zdCBQcm9taXNlQ2F0Y2hCYWNrdXAgPSBQcm9taXNlLnByb3RvdHlwZS5jYXRj
aDsKKworICAgIHRyeSB7CisgICAgICAgIFByb21pc2UucHJvdG90eXBlLmNhdGNoID0gZnVuY3Rp
b24oKSB7IGFzc2VydF91bnJlYWNoZWQoInN0cmVhbXMgc2hvdWxkIG5vdCB1c2UgdGhpcyBQcm9t
aXNlLnByb3RvdHlwZS5jYXRjaCBtZXRob2QiKTsgfTsKKworICAgICAgICBjb25zdCBycyA9IG5l
dyBSZWFkYWJsZVN0cmVhbSgpOworICAgICAgICBycy50ZWUoKTsKKyAgICB9IGZpbmFsbHkgewor
ICAgICAgICBQcm9taXNlLnByb3RvdHlwZS5jYXRjaCA9IFByb21pc2VDYXRjaEJhY2t1cDsKKyAg
ICB9Cit9LCAnU3RyZWFtcyBhbmQgcHJvbWlzZXM6IHJlcGxhY2UgY2F0Y2ggcHJvdG90eXBlIG1l
dGhvZCcpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIGZ1bmN0aW9uIGNyZWF0ZU1hbmdsZWRQ
cm9taXNlKCkgeworICAgICAgICBjb25zdCBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKCk7Cisg
ICAgICAgIHByb21pc2UudGhlbiA9IGZ1bmN0aW9uKCkgeyBhc3NlcnRfdW5yZWFjaGVkKCJzdHJl
YW1zIHNob3VsZCBub3QgdXNlIHRoaXMgcHJvbWlzZSB0aGVuIG1ldGhvZCIpOyB9OworICAgICAg
ICByZXR1cm4gcHJvbWlzZTsKKyAgICB9CisgICAgbmV3IFJlYWRhYmxlU3RyZWFtKHsgc3RhcnQ6
IGZ1bmN0aW9uKCkgeyByZXR1cm4gY3JlYXRlTWFuZ2xlZFByb21pc2UoKTsgfSB9KQorICAgIG5l
dyBXcml0YWJsZVN0cmVhbSh7IHN0YXJ0OiBmdW5jdGlvbigpIHsgcmV0dXJuIGNyZWF0ZU1hbmds
ZWRQcm9taXNlKCk7IH0gfSkKK30sICdTdHJlYW1zIGFuZCBwcm9taXNlczogcmVwbGFjZSB0aGVu
IG1ldGhvZCBpbiBhIHNpbmdsZSBwcm9taXNlJyk7CiA8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265046</attachid>
            <date>2015-11-09 07:14:37 -0800</date>
            <delta_ts>2015-11-09 08:12:36 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-150934-20151109161433.patch</filename>
            <type>text/plain</type>
            <size>15134</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyMTQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZTZjMWQ1YmU5ZjMxMTRiMzZlZmZlMzNmZjlkMjc0NDE1MmJiMmY3Li5kMDU4MGQxNzliYTk4NDUz
NmIzYmY0YTNkM2I0MDM5N2EyNGEyMGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxNS0xMS0wOSAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJp
c0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtTdHJlYW1zIEFQSV0gU2hpZWxkIGltcGxlbWVudGF0
aW9uIGZyb20gbWFuZ2xpbmcgdGhlbiBhbmQgY2F0Y2ggcHJvbWlzZSBtZXRob2RzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTA5MzQKKworICAgICAg
ICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIFNpbmNlIHRoZSBwcm90b3R5
cGUgaXMgbm90IGRlbGV0YWJsZSBhbmQgcmVhZG9ubHkgd2Ugb25seSBoYXZlIHRvIGNhcmUgYWJv
dXQgZW5zdXJpbmcgdGhhdCBpdCBoYXMgdGhlIHJpZ2h0CisgICAgICAgIEB0aGVuIGFuZCBAY2F0
Y2ggaW50ZXJuYWwgbWV0aG9kcy4KKworICAgICAgICAqIHJ1bnRpbWUvSlNQcm9taXNlUHJvdG90
eXBlLmg6CisgICAgICAgICogcnVudGltZS9KU1Byb21pc2VQcm90b3R5cGUuY3BwOgorICAgICAg
ICAoSlNDOjpKU1Byb21pc2VQcm90b3R5cGU6OmFkZE93bkludGVybmFsU2xvdHMpOiBBZGRlZCB0
byBjcmVhdGUgdGhlIHByb3BlciBAdGhlbiBhbmQgQGNhdGNoIGludGVybmFsIHNsb3RzLgorICAg
ICAgICAoSlNDOjpKU1Byb21pc2VQcm90b3R5cGU6OmNyZWF0ZSk6IENhbGwgYWRkT3duSW50ZXJu
YWxTbG90cy4KKwogMjAxNS0xMS0wOCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAogICAgICAgICBbRVM2XSBNaW5pbWl6ZSBFUzZfQ0xBU1NfU1lOVEFYIGlmZGVmcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGQ0Y2U4NDRkZTU0YWJhMGY4YTZhM2EwMzBkOWZmNmU0MTNiZGU2MDguLjM5
ODczZTA3Mzg5YzU4Nzk3ZmE4ZDNmZGVhNTFiYzY1NThkZWY5MjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAxNS0xMS0wOSAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJp
c0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtTdHJlYW1zIEFQSV0gU2hpZWxkIGltcGxlbWVudGF0
aW9uIGZyb20gbWFuZ2xpbmcgdGhlbiBhbmQgY2F0Y2ggcHJvbWlzZSBtZXRob2RzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTA5MzQKKworICAgICAg
ICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIFRoaXMgaXMgYSBmaXJzdCBz
dGVwIHRvIGdldCBzdHJlYW1zIGNvZGUgc2hpZWxkZWQgZnJvbSB1c2VyIHJlcGxhY2luZyB0aGUg
dGhlbiBhbmQgY2F0Y2ggbWV0aG9kcyBpbiBvdXIKKyAgICAgICAgcHJvbWlzZXMuIFdlIHVzZSBu
ZXdseSBpbnRyb2R1Y2VkIEB0aGVuIGFuZCBAY2F0Y2ggcHJvdG90eXBlIGludGVybmFsIHNsb3Rz
IGFuZCB0aGF0IHNob3VsZCBzb2x2ZSBhIGxvdCBvZiB1c2UKKyAgICAgICAgY2FzZXMuCisKKyAg
ICAgICAgVGVzdDogc3RyZWFtcy9zdHJlYW1zLXByb21pc2VzLmh0bWwuCisKKyAgICAgICAgKiBN
b2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uanM6CisgICAgICAgIChpbml0aWFsaXplUmVh
ZGFibGVTdHJlYW0pOgorICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUlu
dGVybmFscy5qczoKKyAgICAgICAgKHRlZVJlYWRhYmxlU3RyZWFtKToKKyAgICAgICAgKHRlZVJl
YWRhYmxlU3RyZWFtUHVsbEZ1bmN0aW9uKToKKyAgICAgICAgKGNhbmNlbFJlYWRhYmxlU3RyZWFt
KToKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW0uanM6CisgICAgICAg
IChpbml0aWFsaXplV3JpdGFibGVTdHJlYW0pOgorICAgICAgICAoYWJvcnQpOgorICAgICAgICAq
IE1vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbUludGVybmFscy5qczoKKyAgICAgICAgKGNh
bGxPclNjaGVkdWxlV3JpdGFibGVTdHJlYW1BZHZhbmNlUXVldWUpOgorCiAyMDE1LTExLTA4ICBH
eXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbRUZMXSBB
ZGQgVXNlckFnZW50RUZsLmNwcHxoCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Byb21pc2VQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNQcm9taXNlUHJvdG90eXBlLmNwcAppbmRleCAxYmM1YTExNjlmODUyNDEyNGI4MGIw
N2ZlZmNjYjQ0MmNhNGRhNDUwLi41YzdlYjVhMmUxYmIyNDQ0NTYyNWI4NDkyYmIwNzZkM2FmNjc2
YmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VQ
cm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlz
ZVByb3RvdHlwZS5jcHAKQEAgLTI2LDEwICsyNiwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkpTUHJvbWlzZVByb3RvdHlwZS5oIgogCisjaW5jbHVkZSAiQnVpbHRpbk5hbWVz
LmgiCiAjaW5jbHVkZSAiRXJyb3IuaCIKICNpbmNsdWRlICJKU0NCdWlsdGlucy5oIgogI2luY2x1
ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNDZWxsSW5saW5lcy5oIgorI2lu
Y2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1
ZGUgIkpTUHJvbWlzZS5oIgogI2luY2x1ZGUgIk1pY3JvdGFzay5oIgpAQCAtNTgsNiArNjAsNyBA
QCBKU1Byb21pc2VQcm90b3R5cGUqIEpTUHJvbWlzZVByb3RvdHlwZTo6Y3JlYXRlKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cgogewogICAgIEpTUHJvbWlzZVByb3RvdHlwZSogb2Jq
ZWN0ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8SlNQcm9taXNlUHJvdG90eXBlPih2bS5o
ZWFwKSkgSlNQcm9taXNlUHJvdG90eXBlKHZtLCBzdHJ1Y3R1cmUpOwogICAgIG9iamVjdC0+Zmlu
aXNoQ3JlYXRpb24odm0sIHN0cnVjdHVyZSk7CisgICAgb2JqZWN0LT5hZGRPd25JbnRlcm5hbFNs
b3RzKHZtLCBzdHJ1Y3R1cmUtPmdsb2JhbE9iamVjdCgpKTsKICAgICByZXR1cm4gb2JqZWN0Owog
fQogCkBAIC03Nyw2ICs4MCwxMiBAQCB2b2lkIEpTUHJvbWlzZVByb3RvdHlwZTo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtLCBTdHJ1Y3R1cmUqKQogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9u
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT50b1N0cmluZ1RhZ1N5bWJvbCwganNTdHJpbmcoJnZtLCAi
UHJvbWlzZSIpLCBEb250RW51bSB8IFJlYWRPbmx5KTsKIH0KIAordm9pZCBKU1Byb21pc2VQcm90
b3R5cGU6OmFkZE93bkludGVybmFsU2xvdHMoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KQoreworICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1
aWx0aW5OYW1lcygpLnRoZW5Qcml2YXRlTmFtZSgpLCBwcm9taXNlUHJvdG90eXBlVGhlbkNvZGVH
ZW5lcmF0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKKyAgICBKU0NfQlVJ
TFRJTl9GVU5DVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5jYXRjaFByaXZh
dGVOYW1lKCksIHByb21pc2VQcm90b3R5cGVDYXRjaENvZGVHZW5lcmF0b3IsIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKK30KKwogYm9vbCBKU1Byb21pc2VQcm90b3R5cGU6Omdl
dE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4g
Z2V0U3RhdGljRnVuY3Rpb25TbG90PEJhc2U+KGV4ZWMsIHByb21pc2VQcm90b3R5cGVUYWJsZSwg
anNDYXN0PEpTUHJvbWlzZVByb3RvdHlwZSo+KG9iamVjdCksIHByb3BlcnR5TmFtZSwgc2xvdCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2VQcm90
b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZVByb3RvdHlw
ZS5oCmluZGV4IGE2MjQxOTIyY2QzYzAwMTBjY2M5MGYyZjk1NTczMzA1ZGFkNWYzZWEuLjMxMjhk
MzBmZjM5MGU4OWYwNTAwNDg3NGZmMDExNjQ1NmRjYTc5YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZVByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZVByb3RvdHlwZS5oCkBAIC00NSw2ICs0NSw5
IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgU3Ry
dWN0dXJlKik7CiAgICAgSlNQcm9taXNlUHJvdG90eXBlKFZNJiwgU3RydWN0dXJlKik7CisKK3By
aXZhdGU6CisgICAgdm9pZCBhZGRPd25JbnRlcm5hbFNsb3RzKFZNJiwgSlNHbG9iYWxPYmplY3Qq
KTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmpzCmluZGV4IDY4NmIzNTY1Yzk3NjIxYzVkMGU5N2M4
ZWVmNTgwODhlY2M4Yzg5NjAuLjc2YjVjNjcwNDQyMWM1NTZlZmFkZWViZTMzYzEyYjZjYTJiNzk0
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0
cmVhbS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJl
YW0uanMKQEAgLTU2LDcgKzU2LDcgQEAgZnVuY3Rpb24gaW5pdGlhbGl6ZVJlYWRhYmxlU3RyZWFt
KHVuZGVybHlpbmdTb3VyY2UsIHN0cmF0ZWd5KQogCiAgICAgdmFyIHJlc3VsdCA9IEBpbnZva2VP
ck5vb3AodW5kZXJseWluZ1NvdXJjZSwgInN0YXJ0IiwgW3RoaXMuQGNvbnRyb2xsZXJdKTsKICAg
ICB2YXIgX3RoaXMgPSB0aGlzOwotICAgIEBQcm9taXNlLkByZXNvbHZlKHJlc3VsdCkudGhlbihm
dW5jdGlvbigpIHsKKyAgICBAUHJvbWlzZS5AcmVzb2x2ZShyZXN1bHQpLkB0aGVuKGZ1bmN0aW9u
KCkgewogICAgICAgICBfdGhpcy5Ac3RhcnRlZCA9IHRydWU7CiAgICAgICAgIEByZXF1ZXN0UmVh
ZGFibGVTdHJlYW1QdWxsKF90aGlzKTsKICAgICB9LCBmdW5jdGlvbihlcnJvcikgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50ZXJu
YWxzLmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtSW50
ZXJuYWxzLmpzCmluZGV4IGM0MzQxZWQwM2E4NjQxZjczNjA0OGJlZWEwZDU2NGJiMTM5OWUxMWYu
Ljc4ODEwMDFhYjhkN2QyN2QyYjU2NTViZGZmN2Y0MmQ5OTgzMWQ2NmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUludGVybmFscy5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1JbnRlcm5h
bHMuanMKQEAgLTEwNiw3ICsxMDYsNyBAQCBmdW5jdGlvbiB0ZWVSZWFkYWJsZVN0cmVhbShzdHJl
YW0sIHNob3VsZENsb25lKQogICAgIGxldCBicmFuY2gxID0gbmV3IFJlYWRhYmxlU3RyZWFtKHVu
ZGVybHlpbmdTb3VyY2UxKTsKICAgICBsZXQgYnJhbmNoMiA9IG5ldyBSZWFkYWJsZVN0cmVhbSh1
bmRlcmx5aW5nU291cmNlMik7CiAKLSAgICByZWFkZXIuY2xvc2VkLmNhdGNoKGZ1bmN0aW9uKGUp
IHsKKyAgICByZWFkZXIuY2xvc2VkLkBjYXRjaChmdW5jdGlvbihlKSB7CiAgICAgICAgIGlmICh0
ZWVTdGF0ZS5jbG9zZWRPckVycm9yZWQpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIEBl
cnJvclJlYWRhYmxlU3RyZWFtKGJyYW5jaDEsIGUpOwpAQCAtMTI0LDcgKzEyNCw3IEBAIGZ1bmN0
aW9uIHRlZVJlYWRhYmxlU3RyZWFtKHN0cmVhbSwgc2hvdWxkQ2xvbmUpCiBmdW5jdGlvbiB0ZWVS
ZWFkYWJsZVN0cmVhbVB1bGxGdW5jdGlvbih0ZWVTdGF0ZSwgcmVhZGVyLCBzaG91bGRDbG9uZSkK
IHsKICAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHJlYWRlci5yZWFkKCkudGhlbihm
dW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgcmVhZGVyLnJlYWQoKS5AdGhlbihmdW5jdGlvbihy
ZXN1bHQpIHsKICAgICAgICAgICAgIGlmIChyZXN1bHQuZG9uZSAmJiAhdGVlU3RhdGUuY2xvc2Vk
T3JFcnJvcmVkKSB7CiAgICAgICAgICAgICAgICAgQGNsb3NlUmVhZGFibGVTdHJlYW0odGVlU3Rh
dGUuYnJhbmNoMSk7CiAgICAgICAgICAgICAgICAgQGNsb3NlUmVhZGFibGVTdHJlYW0odGVlU3Rh
dGUuYnJhbmNoMik7CkBAIC0yMzcsNyArMjM3LDcgQEAgZnVuY3Rpb24gcmVxdWVzdFJlYWRhYmxl
U3RyZWFtUHVsbChzdHJlYW0pCiAgICAgc3RyZWFtLkBwdWxsaW5nID0gdHJ1ZTsKIAogICAgIHZh
ciBwcm9taXNlID0gQHByb21pc2VJbnZva2VPck5vb3Aoc3RyZWFtLkB1bmRlcmx5aW5nU291cmNl
LCAicHVsbCIsIFtzdHJlYW0uQGNvbnRyb2xsZXJdKTsKLSAgICBwcm9taXNlLnRoZW4oZnVuY3Rp
b24oKSB7CisgICAgcHJvbWlzZS5AdGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgc3RyZWFtLkBw
dWxsaW5nID0gZmFsc2U7CiAgICAgICAgIGlmIChzdHJlYW0uQHB1bGxBZ2FpbikgewogICAgICAg
ICAgICAgc3RyZWFtLkBwdWxsQWdhaW4gPSBmYWxzZTsKQEAgLTI4MCw3ICsyODAsNyBAQCBmdW5j
dGlvbiBjYW5jZWxSZWFkYWJsZVN0cmVhbShzdHJlYW0sIHJlYXNvbikKICAgICAgICAgcmV0dXJu
IEBQcm9taXNlLkByZWplY3Qoc3RyZWFtLkBzdG9yZWRFcnJvcik7CiAgICAgc3RyZWFtLkBxdWV1
ZSA9IEBuZXdRdWV1ZSgpOwogICAgIEBmaW5pc2hDbG9zaW5nUmVhZGFibGVTdHJlYW0oc3RyZWFt
KTsKLSAgICByZXR1cm4gQHByb21pc2VJbnZva2VPck5vb3Aoc3RyZWFtLkB1bmRlcmx5aW5nU291
cmNlLCAiY2FuY2VsIiwgW3JlYXNvbl0pLnRoZW4oZnVuY3Rpb24oKSB7IH0pOworICAgIHJldHVy
biBAcHJvbWlzZUludm9rZU9yTm9vcChzdHJlYW0uQHVuZGVybHlpbmdTb3VyY2UsICJjYW5jZWwi
LCBbcmVhc29uXSkuQHRoZW4oZnVuY3Rpb24oKSB7IH0pOwogfQogCiBmdW5jdGlvbiBmaW5pc2hD
bG9zaW5nUmVhZGFibGVTdHJlYW0oc3RyZWFtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtLmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtLmpzCmluZGV4IGFkOWQxMTAyMTJlNWFkZDFjY2MyMWVl
NjBjZmM1YzJlMWViNDhkMGMuLmU1ZTQwMGY4MzhmZWUzNGZhMmRkZmNmYWRiYjczYmI1ZDQ1NmRj
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0
cmVhbS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJl
YW0uanMKQEAgLTU3LDcgKzU3LDcgQEAgZnVuY3Rpb24gaW5pdGlhbGl6ZVdyaXRhYmxlU3RyZWFt
KHVuZGVybHlpbmdTaW5rLCBzdHJhdGVneSkKICAgICB2YXIgc3RhcnRSZXN1bHQgPSBAaW52b2tl
T3JOb29wKHVuZGVybHlpbmdTaW5rLCAic3RhcnQiLCBbZXJyb3JdKTsKICAgICB0aGlzLkBzdGFy
dGVkUHJvbWlzZSA9IEBQcm9taXNlLkByZXNvbHZlKHN0YXJ0UmVzdWx0KTsKICAgICB2YXIgX3Ro
aXMgPSB0aGlzOwotICAgIHRoaXMuQHN0YXJ0ZWRQcm9taXNlLnRoZW4oZnVuY3Rpb24oKSB7Cisg
ICAgdGhpcy5Ac3RhcnRlZFByb21pc2UuQHRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgIF90aGlz
LkBzdGFydGVkID0gdHJ1ZTsKICAgICAgICAgX3RoaXMuQHN0YXJ0ZWRQcm9taXNlID0gdW5kZWZp
bmVkOwogICAgIH0sIGVycm9yKTsKQEAgLTgyLDcgKzgyLDcgQEAgZnVuY3Rpb24gYWJvcnQocmVh
c29uKQogCiAgICAgY29uc3Qgc2lua0Fib3J0UHJvbWlzZSA9IEBwcm9taXNlSW52b2tlT3JGYWxs
YmFja09yTm9vcCh0aGlzLkB1bmRlcmx5aW5nU2luaywgImFib3J0IiwgW3JlYXNvbl0sICJjbG9z
ZSIsIFtdKTsKIAotICAgIHJldHVybiBzaW5rQWJvcnRQcm9taXNlLnRoZW4oZnVuY3Rpb24oKSB7
IHJldHVybiB1bmRlZmluZWQ7IH0pOworICAgIHJldHVybiBzaW5rQWJvcnRQcm9taXNlLkB0aGVu
KGZ1bmN0aW9uKCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9KTsKIH0KIAogZnVuY3Rpb24gY2xvc2Uo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3Ry
ZWFtSW50ZXJuYWxzLmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxl
U3RyZWFtSW50ZXJuYWxzLmpzCmluZGV4IDVmZTM3MzI2MThlNDNlMTk0MjEwZDczZWVmMmMyZmRk
ZDQ0ZTc0NzkuLjk4NThkZTY0MzE1MmE4M2E4ZWJlYzUyMWRlZjE3ZmVjNmNkOTAzNWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbUludGVy
bmFscy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJl
YW1JbnRlcm5hbHMuanMKQEAgLTc3LDcgKzc3LDcgQEAgZnVuY3Rpb24gZXJyb3JXcml0YWJsZVN0
cmVhbShlKQogZnVuY3Rpb24gY2FsbE9yU2NoZWR1bGVXcml0YWJsZVN0cmVhbUFkdmFuY2VRdWV1
ZShzdHJlYW0pCiB7CiAgICAgaWYgKCFzdHJlYW0uQHN0YXJ0ZWQpCi0gICAgICAgIHN0cmVhbS5A
c3RhcnRlZFByb21pc2UudGhlbihmdW5jdGlvbigpIHsgQHdyaXRhYmxlU3RyZWFtQWR2YW5jZVF1
ZXVlKHN0cmVhbSk7IH0pOworICAgICAgICBzdHJlYW0uQHN0YXJ0ZWRQcm9taXNlLkB0aGVuKGZ1
bmN0aW9uKCkgeyBAd3JpdGFibGVTdHJlYW1BZHZhbmNlUXVldWUoc3RyZWFtKTsgfSk7CiAgICAg
ZWxzZQogICAgICAgICBAd3JpdGFibGVTdHJlYW1BZHZhbmNlUXVldWUoc3RyZWFtKTsKIApAQCAt
MTAxLDcgKzEwMSw3IEBAIGZ1bmN0aW9uIHdyaXRhYmxlU3RyZWFtQWR2YW5jZVF1ZXVlKHN0cmVh
bSkKICAgICB9CiAKICAgICBzdHJlYW0uQHdyaXRpbmcgPSB0cnVlOwotICAgIEBwcm9taXNlSW52
b2tlT3JOb29wKHN0cmVhbS5AdW5kZXJseWluZ1NpbmssICJ3cml0ZSIsIFt3cml0ZVJlY29yZC5j
aHVua10pLnRoZW4oCisgICAgQHByb21pc2VJbnZva2VPck5vb3Aoc3RyZWFtLkB1bmRlcmx5aW5n
U2luaywgIndyaXRlIiwgW3dyaXRlUmVjb3JkLmNodW5rXSkuQHRoZW4oCiAgICAgICAgIGZ1bmN0
aW9uKCkgewogICAgICAgICAgICAgaWYgKHN0cmVhbS5Ac3RhdGUgPT09IEBzdHJlYW1FcnJvcmVk
KQogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTEyMyw3ICsxMjMsNyBAQCBmdW5jdGlvbiBj
bG9zZVdyaXRhYmxlU3RyZWFtKHN0cmVhbSkKIHsKICAgICAvLyBGSVhNRQogICAgIC8vIGFzc2Vy
dChzdHJlYW0uQHN0YXRlID09PSBAc3RyZWFtQ2xvc2luZyk7Ci0gICAgQHByb21pc2VJbnZva2VP
ck5vb3Aoc3RyZWFtLkB1bmRlcmx5aW5nU2luaywgImNsb3NlIikudGhlbigKKyAgICBAcHJvbWlz
ZUludm9rZU9yTm9vcChzdHJlYW0uQHVuZGVybHlpbmdTaW5rLCAiY2xvc2UiKS5AdGhlbigKICAg
ICAgICAgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBpZiAoc3RyZWFtLkBzdGF0ZSA9PT0gQHN0
cmVhbUVycm9yZWQpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY5NmM1ODdiZTAz
MTc4OTI3ZGE4ZTU4MDYwYzU3YTAzODYzMjYyMTIuLmVkODg5ZGQzNTVhZDRmMzExNTU4N2JiMzhi
NjE0MWY2MThlYTQ2NzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNiBAQAogMjAxNS0xMS0wOSAgWGFiaWVy
IFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJpc0BpZ2FsaWEuY29tPgogCisgICAgICAgIFtTdHJl
YW1zIEFQSV0gU2hpZWxkIGltcGxlbWVudGF0aW9uIGZyb20gbWFuZ2xpbmcgdGhlbiBhbmQgY2F0
Y2ggcHJvbWlzZSBtZXRob2RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTA5MzQKKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0Lgor
CisgICAgICAgICogc3RyZWFtcy9zdHJlYW1zLXByb21pc2VzLmh0bWw6IEFkZGVkIHRlc3RzIGZy
b20gYWJvdXQgcmVwbGFjaW5nCisgICAgICAgIHRoZSBwcm90b3R5cGUsIHRoZW4gYW5kIGNhdGNo
IG1ldGhvZHMuIFJlbmFtZWQgYWxsIHRlc3RzIGFzIHdlbGwuCisgICAgICAgICogc3RyZWFtcy9z
dHJlYW1zLXByb21pc2VzLWV4cGVjdGVkLnR4dDogQWRkZWQgZXhwZWN0YXRpb25zLgorCisyMDE1
LTExLTA5ICBYYWJpZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisK
ICAgICAgICAgVW5yZXZpZXdlZC4KIAogICAgICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0
YXRpb25zOiBNYXJrZWQgMTUwOTc2IGFzIGR1cCBvZiAxNDc5MzMuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdHJlYW1zL3N0cmVhbXMtcHJvbWlzZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3RyZWFtcy9zdHJlYW1zLXByb21pc2VzLWV4cGVjdGVkLnR4dAppbmRleCAyMDRhYWVhMjQ4
Y2JmNmYxNTZkYzkwYjhiZDViMmFiYWQ4MTZiNDBkLi5mM2ZjZTQ4NGQyZWQ1ZDhmOTNkYTcwNTVh
NWU1YTVjMTJlYmYzNGJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3N0cmVhbXMt
cHJvbWlzZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0cmVhbXMvc3RyZWFtcy1w
cm9taXNlcy1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw5IEBACiAKLVBBU1MgU3RyZWFtcyBpbXBs
ZW1lbnRhdGlvbiBpcyBub3QgYWZmZWN0ZWQgaWYgUHJvbWlzZSBjb25zdHJ1Y3RvciBpcyByZXBs
YWNlZCAKLVBBU1MgU3RyZWFtcyBpbXBsZW1lbnRhdGlvbiBpcyBub3QgYWZmZWN0ZWQgaWYgUHJv
bWlzZS5yZXNvbHZlIGlzIHJlcGxhY2VkIAotUEFTUyBTdHJlYW1zIGltcGxlbWVudGF0aW9uIGlz
IG5vdCBhZmZlY3RlZCBpZiBQcm9taXNlLnJlamVjdCBpcyByZXBsYWNlZCAKK1BBU1MgU3RyZWFt
cyBhbmQgcHJvbWlzZXM6IHJlcGxhY2UgUHJvbWlzZSBjb25zdHJ1Y3RvciAKK1BBU1MgU3RyZWFt
cyBhbmQgcHJvbWlzZXM6IHJlcGxhY2UgUHJvbWlzZS5yZXNvbHZlIAorUEFTUyBTdHJlYW1zIGFu
ZCBwcm9taXNlczogcmVwbGFjZSBQcm9taXNlLnJlamVjdCAKK0ZBSUwgU3RyZWFtcyBhbmQgcHJv
bWlzZXM6IHJlcGxhY2UgcHJvdG90eXBlIG9mIGEgcHJvbWlzZSBvYmplY3QgdW5kZWZpbmVkIGlz
IG5vdCBhIGZ1bmN0aW9uCitQQVNTIFN0cmVhbXMgYW5kIHByb21pc2VzOiByZXBsYWNlIHRoZW4g
bWV0aG9kIGluIFByb21pc2UgcHJvdG90eXBlIAorUEFTUyBTdHJlYW1zIGFuZCBwcm9taXNlczog
cmVwbGFjZSBjYXRjaCBtZXRob2QgaW4gUHJvbWlzZSBwcm90b3R5cGUgCitQQVNTIFN0cmVhbXMg
YW5kIHByb21pc2VzOiByZXBsYWNlIHRoZW4gbWV0aG9kIGluIHByb21pc2Ugb2JqZWN0IAogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3N0cmVhbXMtcHJvbWlzZXMuaHRtbCBiL0xh
eW91dFRlc3RzL3N0cmVhbXMvc3RyZWFtcy1wcm9taXNlcy5odG1sCmluZGV4IGU1NTliMWIyMTVh
ZTg4MTE0NWFlMGVmMGE0M2E5YjAyMGQyNDdiYTAuLjFhYWM0NmE4NjM3NjJjNjA0MTYzNDhmNTlm
MjQwMzQxOWQyM2Y2NzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0cmVhbXMvc3RyZWFtcy1w
cm9taXNlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0cmVhbXMvc3RyZWFtcy1wcm9taXNlcy5o
dG1sCkBAIC0yLDcgKzIsNiBAQAogPHNjcmlwdCBzcmM9Jy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyc+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0nLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzJz48L3NjcmlwdD4KIDxzY3JpcHQ+Ci0KIHRlc3QoZnVuY3Rpb24oKSB7CiAgICAgY29u
c3QgUHJvbWlzZUJhY2t1cCA9IFByb21pc2U7CiAKQEAgLTE0LDcgKzEzLDcgQEAgdGVzdChmdW5j
dGlvbigpIHsKICAgICB9IGZpbmFsbHkgewogICAgICAgICBQcm9taXNlID0gUHJvbWlzZUJhY2t1
cDsKICAgICB9Ci19LCAnU3RyZWFtcyBpbXBsZW1lbnRhdGlvbiBpcyBub3QgYWZmZWN0ZWQgaWYg
UHJvbWlzZSBjb25zdHJ1Y3RvciBpcyByZXBsYWNlZCcpOworfSwgJ1N0cmVhbXMgYW5kIHByb21p
c2VzOiByZXBsYWNlIFByb21pc2UgY29uc3RydWN0b3InKTsKIAogdGVzdChmdW5jdGlvbigpIHsK
ICAgICBjb25zdCBQcm9taXNlUmVzb2x2ZUJhY2t1cCA9IFByb21pc2UucmVzb2x2ZTsKQEAgLTI3
LDcgKzI2LDcgQEAgdGVzdChmdW5jdGlvbigpIHsKICAgICB9IGZpbmFsbHkgewogICAgICAgICBQ
cm9taXNlLnJlc29sdmUgPSBQcm9taXNlUmVzb2x2ZUJhY2t1cDsKICAgICB9Ci19LCAnU3RyZWFt
cyBpbXBsZW1lbnRhdGlvbiBpcyBub3QgYWZmZWN0ZWQgaWYgUHJvbWlzZS5yZXNvbHZlIGlzIHJl
cGxhY2VkJyk7Cit9LCAnU3RyZWFtcyBhbmQgcHJvbWlzZXM6IHJlcGxhY2UgUHJvbWlzZS5yZXNv
bHZlJyk7CiAKIHRlc3QoZnVuY3Rpb24oKSB7CiAgICAgY29uc3QgUHJvbWlzZVJlamVjdEJhY2t1
cCA9IFByb21pc2UucmVqZWN0OwpAQCAtNDAsNSArMzksNTEgQEAgdGVzdChmdW5jdGlvbigpIHsK
ICAgICB9IGZpbmFsbHkgewogICAgICAgICBQcm9taXNlLnJlamVjdCA9IFByb21pc2VSZWplY3RC
YWNrdXA7CiAgICAgfQotfSwgJ1N0cmVhbXMgaW1wbGVtZW50YXRpb24gaXMgbm90IGFmZmVjdGVk
IGlmIFByb21pc2UucmVqZWN0IGlzIHJlcGxhY2VkJyk7Cit9LCAnU3RyZWFtcyBhbmQgcHJvbWlz
ZXM6IHJlcGxhY2UgUHJvbWlzZS5yZWplY3QnKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICBm
dW5jdGlvbiBjcmVhdGVNYW5nbGVkUHJvbWlzZSgpIHsKKyAgICAgICAgY29uc3QgcHJvbWlzZSA9
IFByb21pc2UucmVzb2x2ZSgpOworICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YocHJvbWlz
ZSwgeyBjb25zdHJ1Y3RvcjogUHJvbWlzZSwgdGhlbjogZnVuY3Rpb24oKSB7IGFzc2VydF91bnJl
YWNoZWQoInN0cmVhbXMgc2hvdWxkIG5vdCB1c2UgdGhpcyBwcm9taXNlIHRoZW4gbWV0aG9kIik7
IH0gfSk7CisgICAgICAgIHJldHVybiBwcm9taXNlOworICAgIH0KKyAgICBuZXcgUmVhZGFibGVT
dHJlYW0oeyBzdGFydDogZnVuY3Rpb24oKSB7IHJldHVybiBjcmVhdGVNYW5nbGVkUHJvbWlzZSgp
OyB9IH0pCisgICAgbmV3IFdyaXRhYmxlU3RyZWFtKHsgc3RhcnQ6IGZ1bmN0aW9uKCkgeyByZXR1
cm4gY3JlYXRlTWFuZ2xlZFByb21pc2UoKTsgfSB9KQorfSwgJ1N0cmVhbXMgYW5kIHByb21pc2Vz
OiByZXBsYWNlIHByb3RvdHlwZSBvZiBhIHByb21pc2Ugb2JqZWN0Jyk7CisKK3Rlc3QoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgUHJvbWlzZVRoZW5CYWNrdXAgPSBQcm9taXNlLnByb3RvdHlwZS50
aGVuOworCisgICAgdHJ5IHsKKyAgICAgICAgUHJvbWlzZS5wcm90b3R5cGUudGhlbiA9IGZ1bmN0
aW9uKCkgeyBhc3NlcnRfdW5yZWFjaGVkKCJzdHJlYW1zIHNob3VsZCBub3QgdXNlIHRoaXMgUHJv
bWlzZS5wcm90b3R5cGUudGhlbiBtZXRob2QiKTsgfTsKKworICAgICAgICBuZXcgUmVhZGFibGVT
dHJlYW0oKTsKKyAgICAgICAgbmV3IFdyaXRhYmxlU3RyZWFtKCk7CisgICAgfSBmaW5hbGx5IHsK
KyAgICAgICAgUHJvbWlzZS5wcm90b3R5cGUudGhlbiA9IFByb21pc2VUaGVuQmFja3VwOworICAg
IH0KK30sICdTdHJlYW1zIGFuZCBwcm9taXNlczogcmVwbGFjZSB0aGVuIG1ldGhvZCBpbiBQcm9t
aXNlIHByb3RvdHlwZScpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IFByb21pc2VD
YXRjaEJhY2t1cCA9IFByb21pc2UucHJvdG90eXBlLmNhdGNoOworCisgICAgdHJ5IHsKKyAgICAg
ICAgUHJvbWlzZS5wcm90b3R5cGUuY2F0Y2ggPSBmdW5jdGlvbigpIHsgYXNzZXJ0X3VucmVhY2hl
ZCgic3RyZWFtcyBzaG91bGQgbm90IHVzZSB0aGlzIFByb21pc2UucHJvdG90eXBlLmNhdGNoIG1l
dGhvZCIpOyB9OworCisgICAgICAgIGNvbnN0IHJzID0gbmV3IFJlYWRhYmxlU3RyZWFtKCk7Cisg
ICAgICAgIHJzLnRlZSgpOworICAgIH0gZmluYWxseSB7CisgICAgICAgIFByb21pc2UucHJvdG90
eXBlLmNhdGNoID0gUHJvbWlzZUNhdGNoQmFja3VwOworICAgIH0KK30sICdTdHJlYW1zIGFuZCBw
cm9taXNlczogcmVwbGFjZSBjYXRjaCBtZXRob2QgaW4gUHJvbWlzZSBwcm90b3R5cGUnKTsKKwor
dGVzdChmdW5jdGlvbigpIHsKKyAgICBmdW5jdGlvbiBjcmVhdGVNYW5nbGVkUHJvbWlzZSgpIHsK
KyAgICAgICAgY29uc3QgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSgpOworICAgICAgICBwcm9t
aXNlLnRoZW4gPSBmdW5jdGlvbigpIHsgYXNzZXJ0X3VucmVhY2hlZCgic3RyZWFtcyBzaG91bGQg
bm90IHVzZSB0aGlzIHByb21pc2UgdGhlbiBtZXRob2QiKTsgfTsKKyAgICAgICAgcmV0dXJuIHBy
b21pc2U7CisgICAgfQorICAgIG5ldyBSZWFkYWJsZVN0cmVhbSh7IHN0YXJ0OiBmdW5jdGlvbigp
IHsgcmV0dXJuIGNyZWF0ZU1hbmdsZWRQcm9taXNlKCk7IH0gfSkKKyAgICBuZXcgV3JpdGFibGVT
dHJlYW0oeyBzdGFydDogZnVuY3Rpb24oKSB7IHJldHVybiBjcmVhdGVNYW5nbGVkUHJvbWlzZSgp
OyB9IH0pCit9LCAnU3RyZWFtcyBhbmQgcHJvbWlzZXM6IHJlcGxhY2UgdGhlbiBtZXRob2QgaW4g
cHJvbWlzZSBvYmplY3QnKTsKIDwvc2NyaXB0Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>