<?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>144387</bug_id>
          
          <creation_ts>2015-04-29 06:02:33 -0700</creation_ts>
          <short_desc>[Streams API] Refactor ReadableJSStream and ReadableStreamJSSource</short_desc>
          <delta_ts>2015-05-04 06:31:40 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1089975</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-04-29 06:02:33 -0700</bug_when>
    <thetext>ReadableJSStream, ReadableJSStreamReader and ReadableStreamJSSource are all in Source/WebCore/bindings/js/ReadableStreamJSSource.h
This should be split in ReadableJSStream.h/.cpp (containing stream and related reader class definition) and ReadableJSStreamSoure.h/.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1090035</commentid>
    <comment_count>1</comment_count>
      <attachid>251959</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-04-29 09:41:50 -0700</bug_when>
    <thetext>Created attachment 251959
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1090040</commentid>
    <comment_count>2</comment_count>
      <attachid>251960</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-04-29 09:55:58 -0700</bug_when>
    <thetext>Created attachment 251960
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1090082</commentid>
    <comment_count>3</comment_count>
      <attachid>251960</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-04-29 11:17:39 -0700</bug_when>
    <thetext>Comment on attachment 251960
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        [Streams API] Refactor ReadableJSStream and ReadableStreamJSSource

This is the first step of the refactoring.
Second step would be to move ReadableStreamJSSource as ReadableJSStream::Source and rename ReadableStreamJSSource.h/.cpp as ReadableJSStream.h/.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1090958</commentid>
    <comment_count>4</comment_count>
      <attachid>251960</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-05-01 16:27:49 -0700</bug_when>
    <thetext>Comment on attachment 251960
Patch

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

&gt; Source/WebCore/bindings/js/JSReadableStreamCustom.cpp:82
&gt; +    RefPtr&lt;ReadableJSStream&gt; readableStream = ReadableJSStream::create(exec, *jsConstructor-&gt;scriptExecutionContext());

Should put this in a Ref. Not sure why it’s a RefPtr if it can’t be null.

&gt; Source/WebCore/bindings/js/JSReadableStreamCustom.cpp:83
&gt; +    return JSValue::encode(toJS(exec, jsCast&lt;JSDOMGlobalObject*&gt;(exec-&gt;callee()-&gt;globalObject()), readableStream.releaseNonNull()));

Should be WTF::move(readableStream), not readableStream.releaseNonNull();

&gt; Source/WebCore/bindings/js/ReadableStreamJSSource.cpp:107
&gt; +    return jsDynamicCast&lt;JSDOMGlobalObject*&gt;(m_source.get()-&gt;globalObject());

Not sure you need the .get() here. Does m_source-&gt;globalObject() work?

&gt; Source/WebCore/bindings/js/ReadableStreamJSSource.cpp:152
&gt; +    RefPtr&lt;Reader&gt; reader = Reader::create(*this);
&gt;      return reader.releaseNonNull();

Should be written as a 1-liner. Surprised that Reader::create returns a RefPtr and not a Ref if it can’t return null.

&gt; Source/WebCore/bindings/js/ReadableStreamJSSource.cpp:168
&gt; +    auto readableStreamReader = adoptRef(*new Reader(stream));
&gt;      return readableStreamReader;

Should be a 1-liner. No need for a local variable.

&gt; Source/WebCore/bindings/js/ReadableStreamJSSource.h:53
&gt; +    void start(JSC::ExecState*, ReadableJSStream&amp;);

Note that ExecState&amp; is better than ExecState* too. Best to use it in functions we are modifying.

&gt; Source/WebCore/bindings/js/ReadableStreamJSSource.h:66
&gt; +    static Ref&lt;ReadableJSStream&gt; create(JSC::ExecState*, ScriptExecutionContext&amp;);

Should be ExecState&amp;.

&gt; Source/WebCore/bindings/js/ReadableStreamJSSource.h:78
&gt; +    class Reader: public ReadableStreamReader {
&gt; +    public:
&gt; +        static Ref&lt;Reader&gt; create(ReadableJSStream&amp;);
&gt; +    private:
&gt; +        Reader(ReadableJSStream&amp;);
&gt; +    };

This class should not be indented.

The constructor should be marked explicit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091344</commentid>
    <comment_count>5</comment_count>
      <attachid>252303</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-05-04 03:40:23 -0700</bug_when>
    <thetext>Created attachment 252303
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091345</commentid>
    <comment_count>6</comment_count>
      <attachid>252303</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-05-04 03:48:51 -0700</bug_when>
    <thetext>Comment on attachment 252303
Patch for landing

Waiting for ews to finish testing 144455 patch before cq+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091348</commentid>
    <comment_count>7</comment_count>
      <attachid>252303</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-05-04 03:59:16 -0700</bug_when>
    <thetext>Comment on attachment 252303
Patch for landing

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

&gt; Source/WebCore/ChangeLog:1
&gt; +2015-05-03  Youenn Fablet  &lt;youenn.fablet@crf.canon.fr&gt;

Di you forget me again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091357</commentid>
    <comment_count>8</comment_count>
      <attachid>252306</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-05-04 05:36:23 -0700</bug_when>
    <thetext>Created attachment 252306
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091358</commentid>
    <comment_count>9</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-05-04 05:40:10 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 251960 [details]
&gt; Patch
&gt; 

Thanks for the review.
I changed the patch accordingly...

&gt; &gt; Source/WebCore/bindings/js/ReadableStreamJSSource.h:78
&gt; &gt; +    class Reader: public ReadableStreamReader {
&gt; &gt; +    public:
&gt; &gt; +        static Ref&lt;Reader&gt; create(ReadableJSStream&amp;);
&gt; &gt; +    private:
&gt; &gt; +        Reader(ReadableJSStream&amp;);
&gt; &gt; +    };
&gt; 
&gt; This class should not be indented.

... except for that one.
It seems odd to not indent it as it is now inside ReadableJSStream definition.
I can change the indentation in the next refactoring patch (ReadableJSStreamSource -&gt; ReadableJSStream::Source) if that is the preferred style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091362</commentid>
    <comment_count>10</comment_count>
      <attachid>252306</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-04 06:31:37 -0700</bug_when>
    <thetext>Comment on attachment 252306
Patch for landing

Clearing flags on attachment: 252306

Committed r183744: &lt;http://trac.webkit.org/changeset/183744&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091363</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-04 06:31:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251959</attachid>
            <date>2015-04-29 09:41:50 -0700</date>
            <delta_ts>2015-04-29 09:55:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144387-20150429184036.patch</filename>
            <type>text/plain</type>
            <size>9302</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzNTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2VhMDIyMjAyYmY4OGQx
OTg5ZmYzM2UxY2JlMjM5YzkwNzY5MGEzNi4uOWRlNDY1NDM2OTZhODNkZGE4OGE5OGM5YThkODkw
M2ZlNTg2ZDlmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE1LTA0LTI5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgW1N0cmVh
bXMgQVBJXSBSZWZhY3RvciBSZWFkYWJsZUpTU3RyZWFtIGFuZCBSZWFkYWJsZVN0cmVhbUpTU291
cmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQz
ODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWRl
IFJlYWRhYmxlU3RyZWFtUmVhZGVyIGEgcHJpdmF0ZSBjbGFzcyBvZiBSZWFkYWJsZUpTU3RyZWFt
LgorICAgICAgICBTaW1wbGlmaWVkIFJlYWRhYmxlSlNTdHJlYW0gY29uc3RydWN0aW9uIHNvIHRo
YXQgYmluZGluZyBjb25zdHJ1Y3RvciBkb2VzIG5vdCBuZWVkIHRvIGtub3cgYWJvdXQgUmVhZGFi
bGVTdHJlYW1KU1NvdXJjZS4gCisKKyAgICAgICAgTm8gZnVuY3Rpb25hbCBjaGFuZ2UsIGV4aXN0
aW5nIHRlc3RzIGNvdmVyIHRoZSBjaGFuZ2VzLgorCisgICAgICAgICogTW9kdWxlcy9zdHJlYW1z
L1JlYWRhYmxlU3RyZWFtLmg6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbTo6c291
cmNlKTogQWRkZWQgdG8gaW1wbGVtZW50IGpzU291cmNlKCksIG5lZWRlZCBieSBSZWFkYWJsZUpT
U3RyZWFtLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1DdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0SlNSZWFkYWJsZVN0cmVhbSk6IFNpbXBsaWZp
ZWQgdG8gbm90IGhhdmUgdG8gaGFuZGxlIHNvdXJjZSBjcmVhdGlvbi4KKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9SZWFkYWJsZVN0cmVhbUpTU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWRhYmxlU3RyZWFtSlNTb3VyY2U6Omdsb2JhbE9iamVjdCk6IEhlbHBlciBmdW5jdGlvbiB0byBi
ZSB1c2VkIGluIG90aGVyIGZ1dHVyZSBtZXRob2RzLgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFi
bGVTdHJlYW1KU1NvdXJjZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVKU1N0
cmVhbTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlSlNTdHJlYW06OmNyZWF0
ZVJlYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZUpTU3RyZWFtOjpqc1NvdXJjZSk6
CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZUpTU3RyZWFtOjpSZWFkZXI6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZUpTU3RyZWFtOjpSZWFkZXI6OlJlYWRlcik6CisgICAg
ICAgICogYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5oOgorCiAyMDE1LTA0LTI5
ICBIeXVuZ3dvb2sgTGVlICA8aHl1bmd3b29rLmxlZUBuYXZlcmNvcnAuY29tPgogCiAgICAgICAg
IEZpeCBjcmFzaCBpbiBXZWJDb3JlOjpMb2dpY2FsU2VsZWN0aW9uT2Zmc2V0Q2FjaGVzOjpDb250
YWluaW5nQmxvY2tJbmZvOjpzZXRCbG9jaygpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaAppbmRleCA1YjU3MjdiZGU4YmNhZjdmNWEzYmJkMjg3
MTU0ZjUwNTUzZjY4MjAyLi4yZTU4ODhkNDU2YTk1MzUzNTI4MDE0OWE4YzJhYzczOWQwZTM2ZGI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJl
YW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0u
aApAQCAtNzAsNiArNzAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydCgpOwogICAgIHZvaWQg
Y2hhbmdlU3RhdGVUb0Nsb3NlZCgpOwogCisgICAgUmVhZGFibGVTdHJlYW1Tb3VyY2UmIHNvdXJj
ZSgpIHsgcmV0dXJuIG1fc291cmNlLmdldCgpOyB9CisKIHByb3RlY3RlZDoKICAgICBSZWFkYWJs
ZVN0cmVhbShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPFJlYWRhYmxlU3RyZWFtU291cmNl
PiYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJs
ZVN0cmVhbUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxl
U3RyZWFtQ3VzdG9tLmNwcAppbmRleCBkOGIwNjgxMTYzZjcxNGMxYTJiNjNlNjVmMTY5ZWE5ZGEw
OGU2NWQ0Li4wM2IyYjA2MzQzOTMxNzNhMTE5MGFiY2FkZGVjYmY5MWUxYWIzY2MwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ3VzdG9tLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ3VzdG9t
LmNwcApAQCAtNzgsMTggKzc4LDkgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
dHJ1Y3RKU1JlYWRhYmxlU3RyZWFtKEV4ZWNTdGF0ZSogZXhlYykKIAogICAgIERPTUNvbnN0cnVj
dG9yT2JqZWN0KiBqc0NvbnN0cnVjdG9yID0ganNDYXN0PERPTUNvbnN0cnVjdG9yT2JqZWN0Kj4o
ZXhlYy0+Y2FsbGVlKCkpOwogICAgIEFTU0VSVChqc0NvbnN0cnVjdG9yKTsKLSAgICBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0ID0ganNDb25zdHJ1Y3Rvci0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogCi0gICAgUmVmPFJlYWRhYmxlU3RyZWFtSlNTb3Vy
Y2U+IHNvdXJjZSA9IFJlYWRhYmxlU3RyZWFtSlNTb3VyY2U6OmNyZWF0ZShleGVjKTsKLSAgICBS
ZWZQdHI8UmVhZGFibGVTdHJlYW0+IHJlYWRhYmxlU3RyZWFtID0gUmVhZGFibGVKU1N0cmVhbTo6
Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBSZWY8UmVhZGFibGVTdHJlYW1KU1NvdXJj
ZT4oc291cmNlLmdldCgpKSk7Ci0KLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBleGVjLT5jYWxsZWUoKS0+Z2xvYmFsT2JqZWN0KCk7
Ci0gICAgSlNSZWFkYWJsZVN0cmVhbSoganNSZWFkYWJsZVN0cmVhbSA9IEpTUmVhZGFibGVTdHJl
YW06OmNyZWF0ZShKU1JlYWRhYmxlU3RyZWFtOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9i
amVjdCwgSlNSZWFkYWJsZVN0cmVhbTo6Y3JlYXRlUHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3Qp
KSwganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSwgcmVhZGFibGVTdHJl
YW0ucmVsZWFzZU5vbk51bGwoKSk7Ci0KLSAgICBzb3VyY2UtPnN0YXJ0KGV4ZWMsIGpzUmVhZGFi
bGVTdHJlYW0pOwotCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1JlYWRhYmxlU3RyZWFt
KTsKKyAgICBSZWZQdHI8UmVhZGFibGVKU1N0cmVhbT4gcmVhZGFibGVTdHJlYW0gPSBSZWFkYWJs
ZUpTU3RyZWFtOjpjcmVhdGUoZXhlYywgKmpzQ29uc3RydWN0b3ItPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0b0pTKGV4ZWMsIGpzQ2FzdDxK
U0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmNhbGxlZSgpLT5nbG9iYWxPYmplY3QoKSksIHJlYWRh
YmxlU3RyZWFtLnJlbGVhc2VOb25OdWxsKCkpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW1K
U1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbUpT
U291cmNlLmNwcAppbmRleCA0NTMyMWUyN2I4OGExZTFjYmY1MGY0ZjRhNmQ1NTRhMjkyYmZhNGQw
Li5lYzdiOGIwM2VmYjY3MDdjYTRkMTY5Y2Q4ZjJkODcxMWFjMTk1YTBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbUpTU291cmNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbUpTU291cmNlLmNwcApA
QCAtMTA1LDE4ICsxMDUsMjMgQEAgc3RhdGljIHZvaWQgc3RhcnRSZWFkYWJsZVN0cmVhbUFzeW5j
KFJlYWRhYmxlU3RyZWFtJiByZWFkYWJsZVN0cmVhbSkKIC8vIEZ1bmN0aW9uIGltcGxlbWVudGVk
IGluIEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQ3VzdG9tLmNwcC4KIEpTUmVhZGFibGVTdHJl
YW1Db250cm9sbGVyKiBjcmVhdGVKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlcihFeGVjU3RhdGUq
LCBKU0RPTUdsb2JhbE9iamVjdCosIFJlYWRhYmxlSlNTdHJlYW0mKTsKIAotdm9pZCBSZWFkYWJs
ZVN0cmVhbUpTU291cmNlOjpzdGFydChKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNSZWFkYWJsZVN0
cmVhbSogcmVhZGFibGVTdHJlYW0pCitKU0RPTUdsb2JhbE9iamVjdCogUmVhZGFibGVTdHJlYW1K
U1NvdXJjZTo6Z2xvYmFsT2JqZWN0KCkKK3sKKyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU0RP
TUdsb2JhbE9iamVjdCo+KG1fc291cmNlLmdldCgpLT5nbG9iYWxPYmplY3QoKSk7Cit9CisKK3Zv
aWQgUmVhZGFibGVTdHJlYW1KU1NvdXJjZTo6c3RhcnQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFJl
YWRhYmxlSlNTdHJlYW0mIHJlYWRhYmxlU3RyZWFtKQogewogICAgIEpTTG9ja0hvbGRlciBsb2Nr
KGV4ZWMpOwogCi0gICAgbV9jb250cm9sbGVyLnNldChleGVjLT52bSgpLCBjcmVhdGVKU1JlYWRh
YmxlU3RyZWFtQ29udHJvbGxlcihleGVjLCByZWFkYWJsZVN0cmVhbS0+Z2xvYmFsT2JqZWN0KCks
IHN0YXRpY19jYXN0PFJlYWRhYmxlSlNTdHJlYW0mPihyZWFkYWJsZVN0cmVhbS0+aW1wbCgpKSkp
OworICAgIG1fY29udHJvbGxlci5zZXQoZXhlYy0+dm0oKSwgY3JlYXRlSlNSZWFkYWJsZVN0cmVh
bUNvbnRyb2xsZXIoZXhlYywgZ2xvYmFsT2JqZWN0KCksIHJlYWRhYmxlU3RyZWFtKSk7CiAKICAg
ICBKU1ZhbHVlIHN0YXJ0RnVuY3Rpb24gPSBnZXRQcm9wZXJ0eUZyb21PYmplY3QoZXhlYywgbV9z
b3VyY2UuZ2V0KCksICJzdGFydCIpOwogICAgIGlmICghc3RhcnRGdW5jdGlvbi5pc0Z1bmN0aW9u
KCkpIHsKICAgICAgICAgaWYgKCFzdGFydEZ1bmN0aW9uLmlzVW5kZWZpbmVkKCkpCiAgICAgICAg
ICAgICB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJh
bCgiUmVhZGFibGVTdHJlYW0gY29uc3RydWN0b3Igb2JqZWN0IHN0YXJ0IHByb3BlcnR5IHNob3Vs
ZCBiZSBhIGZ1bmN0aW9uLiIpKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHN0YXJ0UmVh
ZGFibGVTdHJlYW1Bc3luYyhyZWFkYWJsZVN0cmVhbS0+aW1wbCgpKTsKKyAgICAgICAgICAgIHN0
YXJ0UmVhZGFibGVTdHJlYW1Bc3luYyhyZWFkYWJsZVN0cmVhbSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKQEAgLTEzMiwxOCArMTM3LDIwIEBAIHZvaWQgUmVhZGFibGVTdHJlYW1KU1NvdXJj
ZTo6c3RhcnQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTUmVhZGFibGVTdHJlYW0qIHJlYWRhCiAg
ICAgfQogCiAgICAgLy8gRklYTUU6IEltcGxlbWVudCBoYW5kbGluZyBwcm9taXNlIGFzIHJlc3Vs
dCBvZiBjYWxsaW5nIHN0YXJ0IGZ1bmN0aW9uLgotICAgIHN0YXJ0UmVhZGFibGVTdHJlYW1Bc3lu
YyhyZWFkYWJsZVN0cmVhbS0+aW1wbCgpKTsKKyAgICBzdGFydFJlYWRhYmxlU3RyZWFtQXN5bmMo
cmVhZGFibGVTdHJlYW0pOwogfQogCi1SZWY8UmVhZGFibGVKU1N0cmVhbT4gUmVhZGFibGVKU1N0
cmVhbTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQsIFJlZjxSZWFkYWJsZVN0cmVhbUpTU291cmNlPiYmIHNvdXJjZSkKK1JlZjxSZWFkYWJsZUpT
U3RyZWFtPiBSZWFkYWJsZUpTU3RyZWFtOjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQogewotICAgIGF1dG8gcmVh
ZGFibGVTdHJlYW0gPSBhZG9wdFJlZigqbmV3IFJlYWRhYmxlSlNTdHJlYW0oc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCwgV1RGOjptb3ZlKHNvdXJjZSkpKTsKKyAgICBSZWY8UmVhZGFibGVTdHJlYW1K
U1NvdXJjZT4gc291cmNlID0gUmVhZGFibGVTdHJlYW1KU1NvdXJjZTo6Y3JlYXRlKGV4ZWMpOwor
ICAgIFJlZjxSZWFkYWJsZUpTU3RyZWFtPiByZWFkYWJsZVN0cmVhbSA9IGFkb3B0UmVmKCpuZXcg
UmVhZGFibGVKU1N0cmVhbShzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBXVEY6Om1vdmUoc291cmNl
KSkpOworICAgIHJlYWRhYmxlU3RyZWFtLT5qc1NvdXJjZSgpLnN0YXJ0KGV4ZWMsIHJlYWRhYmxl
U3RyZWFtLmdldCgpKTsKICAgICByZXR1cm4gcmVhZGFibGVTdHJlYW07CiB9CiAKIFJlZjxSZWFk
YWJsZVN0cmVhbVJlYWRlcj4gUmVhZGFibGVKU1N0cmVhbTo6Y3JlYXRlUmVhZGVyKCkKIHsKLSAg
ICBSZWZQdHI8UmVhZGFibGVTdHJlYW1SZWFkZXI+IHJlYWRlciA9IFJlYWRhYmxlSlNTdHJlYW1S
ZWFkZXI6OmNyZWF0ZSgqdGhpcyk7CisgICAgUmVmUHRyPFJlYWRlcj4gcmVhZGVyID0gUmVhZGVy
OjpjcmVhdGUoKnRoaXMpOwogICAgIHJldHVybiByZWFkZXIucmVsZWFzZU5vbk51bGwoKTsKIH0K
IApAQCAtMTUyLDEzICsxNTksMTggQEAgUmVhZGFibGVKU1N0cmVhbTo6UmVhZGFibGVKU1N0cmVh
bShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXgKIHsKIH0KIAot
UmVmPFJlYWRhYmxlSlNTdHJlYW1SZWFkZXI+IFJlYWRhYmxlSlNTdHJlYW1SZWFkZXI6OmNyZWF0
ZShSZWFkYWJsZUpTU3RyZWFtJiBzdHJlYW0pCitSZWFkYWJsZVN0cmVhbUpTU291cmNlJiBSZWFk
YWJsZUpTU3RyZWFtOjpqc1NvdXJjZSgpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlYWRh
YmxlU3RyZWFtSlNTb3VyY2UmPihzb3VyY2UoKSk7Cit9CisKK1JlZjxSZWFkYWJsZUpTU3RyZWFt
OjpSZWFkZXI+IFJlYWRhYmxlSlNTdHJlYW06OlJlYWRlcjo6Y3JlYXRlKFJlYWRhYmxlSlNTdHJl
YW0mIHN0cmVhbSkKIHsKLSAgICBhdXRvIHJlYWRhYmxlU3RyZWFtUmVhZGVyID0gYWRvcHRSZWYo
Km5ldyBSZWFkYWJsZUpTU3RyZWFtUmVhZGVyKHN0cmVhbSkpOworICAgIGF1dG8gcmVhZGFibGVT
dHJlYW1SZWFkZXIgPSBhZG9wdFJlZigqbmV3IFJlYWRlcihzdHJlYW0pKTsKICAgICByZXR1cm4g
cmVhZGFibGVTdHJlYW1SZWFkZXI7CiB9CiAKLVJlYWRhYmxlSlNTdHJlYW1SZWFkZXI6OlJlYWRh
YmxlSlNTdHJlYW1SZWFkZXIoUmVhZGFibGVKU1N0cmVhbSYgcmVhZGFibGVTdHJlYW0pCitSZWFk
YWJsZUpTU3RyZWFtOjpSZWFkZXI6OlJlYWRlcihSZWFkYWJsZUpTU3RyZWFtJiByZWFkYWJsZVN0
cmVhbSkKICAgICA6IFJlYWRhYmxlU3RyZWFtUmVhZGVyKHJlYWRhYmxlU3RyZWFtKQogewogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW1KU1Nv
dXJjZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW1KU1NvdXJj
ZS5oCmluZGV4IDIyM2IyNzc2M2UxMWJlN2RhZDQwNDdkMTZjMjVjYWI3MzU0NGZiYzYuLjI1YmFm
MmMwZDhiZjQ3NGYxZDhiMzNjMDQ0ZmFiYjgzOTQ4MGFiM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtSlNTb3VyY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbUpTU291cmNlLmgKQEAgLTQ0LDE0ICs0
NCwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEpTUmVhZGFibGVTdHJlYW07
Ci0KIGNsYXNzIFJlYWRhYmxlU3RyZWFtSlNTb3VyY2U6IHB1YmxpYyBSZWFkYWJsZVN0cmVhbVNv
dXJjZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxSZWFkYWJsZVN0cmVhbUpTU291cmNlPiBj
cmVhdGUoSlNDOjpFeGVjU3RhdGUqKTsKICAgICB+UmVhZGFibGVTdHJlYW1KU1NvdXJjZSgpOwog
Ci0gICAgdm9pZCBzdGFydChKU0M6OkV4ZWNTdGF0ZSosIEpTUmVhZGFibGVTdHJlYW0qKTsKKyAg
ICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KCk7CisgICAgdm9pZCBzdGFydChKU0M6
OkV4ZWNTdGF0ZSosIFJlYWRhYmxlSlNTdHJlYW0mKTsKIAogcHJpdmF0ZToKICAgICBSZWFkYWJs
ZVN0cmVhbUpTU291cmNlKEpTQzo6RXhlY1N0YXRlKik7CkBAIC02NCwxNyArNjMsMjAgQEAgcHJp
dmF0ZToKIAogY2xhc3MgUmVhZGFibGVKU1N0cmVhbTogcHVibGljIFJlYWRhYmxlU3RyZWFtIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFJlYWRhYmxlSlNTdHJlYW0+IGNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiwgUmVmPFJlYWRhYmxlU3RyZWFtSlNTb3VyY2U+JiYpOworICAgIHN0
YXRpYyBSZWY8UmVhZGFibGVKU1N0cmVhbT4gY3JlYXRlKEpTQzo6RXhlY1N0YXRlKiwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYpOwogICAgIHZpcnR1YWwgUmVmPFJlYWRhYmxlU3RyZWFtUmVhZGVy
PiBjcmVhdGVSZWFkZXIoKSBvdmVycmlkZTsKKyAgICBSZWFkYWJsZVN0cmVhbUpTU291cmNlJiBq
c1NvdXJjZSgpOworCiBwcml2YXRlOgogICAgIFJlYWRhYmxlSlNTdHJlYW0oU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYsIFJlZjxSZWFkYWJsZVN0cmVhbUpTU291cmNlPiYmKTsKLX07CiAKLWNsYXNz
IFJlYWRhYmxlSlNTdHJlYW1SZWFkZXI6IHB1YmxpYyBSZWFkYWJsZVN0cmVhbVJlYWRlciB7Ci1w
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSZWFkYWJsZUpTU3RyZWFtUmVhZGVyPiBjcmVhdGUoUmVh
ZGFibGVKU1N0cmVhbSYpOwotcHJpdmF0ZToKLSAgICBSZWFkYWJsZUpTU3RyZWFtUmVhZGVyKFJl
YWRhYmxlSlNTdHJlYW0mKTsKKyAgICBjbGFzcyBSZWFkZXI6IHB1YmxpYyBSZWFkYWJsZVN0cmVh
bVJlYWRlciB7CisgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUmVmPFJlYWRlcj4gY3JlYXRl
KFJlYWRhYmxlSlNTdHJlYW0mKTsKKyAgICBwcml2YXRlOgorICAgICAgICBSZWFkZXIoUmVhZGFi
bGVKU1N0cmVhbSYpOworICAgIH07CisKIH07CiAKIHZvaWQgc2V0SW50ZXJuYWxTbG90VG9PYmpl
Y3QoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHJpdmF0ZU5hbWUmLCBKU0M6
OkpTVmFsdWUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251960</attachid>
            <date>2015-04-29 09:55:58 -0700</date>
            <delta_ts>2015-05-04 03:40:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144387-20150429185445.patch</filename>
            <type>text/plain</type>
            <size>9354</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzNTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2VhMDIyMjAyYmY4OGQx
OTg5ZmYzM2UxY2JlMjM5YzkwNzY5MGEzNi4uOWRlNDY1NDM2OTZhODNkZGE4OGE5OGM5YThkODkw
M2ZlNTg2ZDlmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE1LTA0LTI5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgW1N0cmVh
bXMgQVBJXSBSZWZhY3RvciBSZWFkYWJsZUpTU3RyZWFtIGFuZCBSZWFkYWJsZVN0cmVhbUpTU291
cmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQz
ODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWRl
IFJlYWRhYmxlU3RyZWFtUmVhZGVyIGEgcHJpdmF0ZSBjbGFzcyBvZiBSZWFkYWJsZUpTU3RyZWFt
LgorICAgICAgICBTaW1wbGlmaWVkIFJlYWRhYmxlSlNTdHJlYW0gY29uc3RydWN0aW9uIHNvIHRo
YXQgYmluZGluZyBjb25zdHJ1Y3RvciBkb2VzIG5vdCBuZWVkIHRvIGtub3cgYWJvdXQgUmVhZGFi
bGVTdHJlYW1KU1NvdXJjZS4gCisKKyAgICAgICAgTm8gZnVuY3Rpb25hbCBjaGFuZ2UsIGV4aXN0
aW5nIHRlc3RzIGNvdmVyIHRoZSBjaGFuZ2VzLgorCisgICAgICAgICogTW9kdWxlcy9zdHJlYW1z
L1JlYWRhYmxlU3RyZWFtLmg6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbTo6c291
cmNlKTogQWRkZWQgdG8gaW1wbGVtZW50IGpzU291cmNlKCksIG5lZWRlZCBieSBSZWFkYWJsZUpT
U3RyZWFtLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1DdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0SlNSZWFkYWJsZVN0cmVhbSk6IFNpbXBsaWZp
ZWQgdG8gbm90IGhhdmUgdG8gaGFuZGxlIHNvdXJjZSBjcmVhdGlvbi4KKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9SZWFkYWJsZVN0cmVhbUpTU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWRhYmxlU3RyZWFtSlNTb3VyY2U6Omdsb2JhbE9iamVjdCk6IEhlbHBlciBmdW5jdGlvbiB0byBi
ZSB1c2VkIGluIG90aGVyIGZ1dHVyZSBtZXRob2RzLgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFi
bGVTdHJlYW1KU1NvdXJjZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVKU1N0
cmVhbTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlSlNTdHJlYW06OmNyZWF0
ZVJlYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZUpTU3RyZWFtOjpqc1NvdXJjZSk6
CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZUpTU3RyZWFtOjpSZWFkZXI6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZUpTU3RyZWFtOjpSZWFkZXI6OlJlYWRlcik6CisgICAg
ICAgICogYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5oOgorCiAyMDE1LTA0LTI5
ICBIeXVuZ3dvb2sgTGVlICA8aHl1bmd3b29rLmxlZUBuYXZlcmNvcnAuY29tPgogCiAgICAgICAg
IEZpeCBjcmFzaCBpbiBXZWJDb3JlOjpMb2dpY2FsU2VsZWN0aW9uT2Zmc2V0Q2FjaGVzOjpDb250
YWluaW5nQmxvY2tJbmZvOjpzZXRCbG9jaygpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaAppbmRleCA1YjU3MjdiZGU4YmNhZjdmNWEzYmJkMjg3
MTU0ZjUwNTUzZjY4MjAyLi4yZTU4ODhkNDU2YTk1MzUzNTI4MDE0OWE4YzJhYzczOWQwZTM2ZGI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJl
YW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0u
aApAQCAtNzAsNiArNzAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydCgpOwogICAgIHZvaWQg
Y2hhbmdlU3RhdGVUb0Nsb3NlZCgpOwogCisgICAgUmVhZGFibGVTdHJlYW1Tb3VyY2UmIHNvdXJj
ZSgpIHsgcmV0dXJuIG1fc291cmNlLmdldCgpOyB9CisKIHByb3RlY3RlZDoKICAgICBSZWFkYWJs
ZVN0cmVhbShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPFJlYWRhYmxlU3RyZWFtU291cmNl
PiYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJs
ZVN0cmVhbUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxl
U3RyZWFtQ3VzdG9tLmNwcAppbmRleCBkOGIwNjgxMTYzZjcxNGMxYTJiNjNlNjVmMTY5ZWE5ZGEw
OGU2NWQ0Li4wM2IyYjA2MzQzOTMxNzNhMTE5MGFiY2FkZGVjYmY5MWUxYWIzY2MwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ3VzdG9tLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ3VzdG9t
LmNwcApAQCAtNzgsMTggKzc4LDkgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
dHJ1Y3RKU1JlYWRhYmxlU3RyZWFtKEV4ZWNTdGF0ZSogZXhlYykKIAogICAgIERPTUNvbnN0cnVj
dG9yT2JqZWN0KiBqc0NvbnN0cnVjdG9yID0ganNDYXN0PERPTUNvbnN0cnVjdG9yT2JqZWN0Kj4o
ZXhlYy0+Y2FsbGVlKCkpOwogICAgIEFTU0VSVChqc0NvbnN0cnVjdG9yKTsKLSAgICBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0ID0ganNDb25zdHJ1Y3Rvci0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogCi0gICAgUmVmPFJlYWRhYmxlU3RyZWFtSlNTb3Vy
Y2U+IHNvdXJjZSA9IFJlYWRhYmxlU3RyZWFtSlNTb3VyY2U6OmNyZWF0ZShleGVjKTsKLSAgICBS
ZWZQdHI8UmVhZGFibGVTdHJlYW0+IHJlYWRhYmxlU3RyZWFtID0gUmVhZGFibGVKU1N0cmVhbTo6
Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBSZWY8UmVhZGFibGVTdHJlYW1KU1NvdXJj
ZT4oc291cmNlLmdldCgpKSk7Ci0KLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBleGVjLT5jYWxsZWUoKS0+Z2xvYmFsT2JqZWN0KCk7
Ci0gICAgSlNSZWFkYWJsZVN0cmVhbSoganNSZWFkYWJsZVN0cmVhbSA9IEpTUmVhZGFibGVTdHJl
YW06OmNyZWF0ZShKU1JlYWRhYmxlU3RyZWFtOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9i
amVjdCwgSlNSZWFkYWJsZVN0cmVhbTo6Y3JlYXRlUHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3Qp
KSwganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSwgcmVhZGFibGVTdHJl
YW0ucmVsZWFzZU5vbk51bGwoKSk7Ci0KLSAgICBzb3VyY2UtPnN0YXJ0KGV4ZWMsIGpzUmVhZGFi
bGVTdHJlYW0pOwotCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1JlYWRhYmxlU3RyZWFt
KTsKKyAgICBSZWZQdHI8UmVhZGFibGVKU1N0cmVhbT4gcmVhZGFibGVTdHJlYW0gPSBSZWFkYWJs
ZUpTU3RyZWFtOjpjcmVhdGUoZXhlYywgKmpzQ29uc3RydWN0b3ItPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0b0pTKGV4ZWMsIGpzQ2FzdDxK
U0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmNhbGxlZSgpLT5nbG9iYWxPYmplY3QoKSksIHJlYWRh
YmxlU3RyZWFtLnJlbGVhc2VOb25OdWxsKCkpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW1K
U1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbUpT
U291cmNlLmNwcAppbmRleCAwNTIyOGY3OTU4YzJlNzkwNjdiNzVmNmRkM2NiMzc2ZjQxOTkxZGM3
Li5lMzVjZGM2YWYzYzU5Njk5Yjc3YmRiMzllM2Y3YTBmZWYyNTUxMWU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbUpTU291cmNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbUpTU291cmNlLmNwcApA
QCAtMTAyLDE5ICsxMDIsMjQgQEAgc3RhdGljIHZvaWQgc3RhcnRSZWFkYWJsZVN0cmVhbUFzeW5j
KFJlYWRhYmxlU3RyZWFtJiByZWFkYWJsZVN0cmVhbSkKICAgICB9KTsKIH0KIAotdm9pZCBSZWFk
YWJsZVN0cmVhbUpTU291cmNlOjpzdGFydChKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNSZWFkYWJs
ZVN0cmVhbSogcmVhZGFibGVTdHJlYW0pCitKU0RPTUdsb2JhbE9iamVjdCogUmVhZGFibGVTdHJl
YW1KU1NvdXJjZTo6Z2xvYmFsT2JqZWN0KCkKK3sKKyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxK
U0RPTUdsb2JhbE9iamVjdCo+KG1fc291cmNlLmdldCgpLT5nbG9iYWxPYmplY3QoKSk7Cit9CisK
K3ZvaWQgUmVhZGFibGVTdHJlYW1KU1NvdXJjZTo6c3RhcnQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMs
IFJlYWRhYmxlSlNTdHJlYW0mIHJlYWRhYmxlU3RyZWFtKQogewogICAgIEpTTG9ja0hvbGRlciBs
b2NrKGV4ZWMpOwogCi0gICAgUmVmPFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlcj4gY29udHJvbGxl
ciA9IFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlcjo6Y3JlYXRlKHN0YXRpY19jYXN0PFJlYWRhYmxl
SlNTdHJlYW0mPihyZWFkYWJsZVN0cmVhbS0+aW1wbCgpKSk7Ci0gICAgbV9jb250cm9sbGVyLnNl
dChleGVjLT52bSgpLCBqc0R5bmFtaWNDYXN0PEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyKj4o
dG9KUyhleGVjLCByZWFkYWJsZVN0cmVhbS0+Z2xvYmFsT2JqZWN0KCksIGNvbnRyb2xsZXIpKSk7
CisgICAgUmVmPFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlcj4gY29udHJvbGxlciA9IFJlYWRhYmxl
U3RyZWFtQ29udHJvbGxlcjo6Y3JlYXRlKHJlYWRhYmxlU3RyZWFtKTsKKyAgICBtX2NvbnRyb2xs
ZXIuc2V0KGV4ZWMtPnZtKCksIGpzRHluYW1pY0Nhc3Q8SlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xs
ZXIqPih0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCgpLCBjb250cm9sbGVyKSkpOwogCiAgICAgSlNW
YWx1ZSBzdGFydEZ1bmN0aW9uID0gZ2V0UHJvcGVydHlGcm9tT2JqZWN0KGV4ZWMsIG1fc291cmNl
LmdldCgpLCAic3RhcnQiKTsKICAgICBpZiAoIXN0YXJ0RnVuY3Rpb24uaXNGdW5jdGlvbigpKSB7
CiAgICAgICAgIGlmICghc3RhcnRGdW5jdGlvbi5pc1VuZGVmaW5lZCgpKQogICAgICAgICAgICAg
dGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlJl
YWRhYmxlU3RyZWFtIGNvbnN0cnVjdG9yIG9iamVjdCBzdGFydCBwcm9wZXJ0eSBzaG91bGQgYmUg
YSBmdW5jdGlvbi4iKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBzdGFydFJlYWRhYmxl
U3RyZWFtQXN5bmMocmVhZGFibGVTdHJlYW0tPmltcGwoKSk7CisgICAgICAgICAgICBzdGFydFJl
YWRhYmxlU3RyZWFtQXN5bmMocmVhZGFibGVTdHJlYW0pOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC0xMzAsMTggKzEzNSwyMCBAQCB2b2lkIFJlYWRhYmxlU3RyZWFtSlNTb3VyY2U6OnN0
YXJ0KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU1JlYWRhYmxlU3RyZWFtKiByZWFkYQogICAgIH0K
IAogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgaGFuZGxpbmcgcHJvbWlzZSBhcyByZXN1bHQgb2Yg
Y2FsbGluZyBzdGFydCBmdW5jdGlvbi4KLSAgICBzdGFydFJlYWRhYmxlU3RyZWFtQXN5bmMocmVh
ZGFibGVTdHJlYW0tPmltcGwoKSk7CisgICAgc3RhcnRSZWFkYWJsZVN0cmVhbUFzeW5jKHJlYWRh
YmxlU3RyZWFtKTsKIH0KIAotUmVmPFJlYWRhYmxlSlNTdHJlYW0+IFJlYWRhYmxlSlNTdHJlYW06
OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBS
ZWY8UmVhZGFibGVTdHJlYW1KU1NvdXJjZT4mJiBzb3VyY2UpCitSZWY8UmVhZGFibGVKU1N0cmVh
bT4gUmVhZGFibGVKU1N0cmVhbTo6Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKIHsKLSAgICBhdXRvIHJlYWRhYmxl
U3RyZWFtID0gYWRvcHRSZWYoKm5ldyBSZWFkYWJsZUpTU3RyZWFtKHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQsIFdURjo6bW92ZShzb3VyY2UpKSk7CisgICAgUmVmPFJlYWRhYmxlU3RyZWFtSlNTb3Vy
Y2U+IHNvdXJjZSA9IFJlYWRhYmxlU3RyZWFtSlNTb3VyY2U6OmNyZWF0ZShleGVjKTsKKyAgICBS
ZWY8UmVhZGFibGVKU1N0cmVhbT4gcmVhZGFibGVTdHJlYW0gPSBhZG9wdFJlZigqbmV3IFJlYWRh
YmxlSlNTdHJlYW0oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgV1RGOjptb3ZlKHNvdXJjZSkpKTsK
KyAgICByZWFkYWJsZVN0cmVhbS0+anNTb3VyY2UoKS5zdGFydChleGVjLCByZWFkYWJsZVN0cmVh
bS5nZXQoKSk7CiAgICAgcmV0dXJuIHJlYWRhYmxlU3RyZWFtOwogfQogCiBSZWY8UmVhZGFibGVT
dHJlYW1SZWFkZXI+IFJlYWRhYmxlSlNTdHJlYW06OmNyZWF0ZVJlYWRlcigpCiB7Ci0gICAgUmVm
UHRyPFJlYWRhYmxlU3RyZWFtUmVhZGVyPiByZWFkZXIgPSBSZWFkYWJsZUpTU3RyZWFtUmVhZGVy
OjpjcmVhdGUoKnRoaXMpOworICAgIFJlZlB0cjxSZWFkZXI+IHJlYWRlciA9IFJlYWRlcjo6Y3Jl
YXRlKCp0aGlzKTsKICAgICByZXR1cm4gcmVhZGVyLnJlbGVhc2VOb25OdWxsKCk7CiB9CiAKQEAg
LTE1MCwxMyArMTU3LDE4IEBAIFJlYWRhYmxlSlNTdHJlYW06OlJlYWRhYmxlSlNTdHJlYW0oU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4CiB7CiB9CiAKLVJlZjxS
ZWFkYWJsZUpTU3RyZWFtUmVhZGVyPiBSZWFkYWJsZUpTU3RyZWFtUmVhZGVyOjpjcmVhdGUoUmVh
ZGFibGVKU1N0cmVhbSYgc3RyZWFtKQorUmVhZGFibGVTdHJlYW1KU1NvdXJjZSYgUmVhZGFibGVK
U1N0cmVhbTo6anNTb3VyY2UoKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZWFkYWJsZVN0
cmVhbUpTU291cmNlJj4oc291cmNlKCkpOworfQorCitSZWY8UmVhZGFibGVKU1N0cmVhbTo6UmVh
ZGVyPiBSZWFkYWJsZUpTU3RyZWFtOjpSZWFkZXI6OmNyZWF0ZShSZWFkYWJsZUpTU3RyZWFtJiBz
dHJlYW0pCiB7Ci0gICAgYXV0byByZWFkYWJsZVN0cmVhbVJlYWRlciA9IGFkb3B0UmVmKCpuZXcg
UmVhZGFibGVKU1N0cmVhbVJlYWRlcihzdHJlYW0pKTsKKyAgICBhdXRvIHJlYWRhYmxlU3RyZWFt
UmVhZGVyID0gYWRvcHRSZWYoKm5ldyBSZWFkZXIoc3RyZWFtKSk7CiAgICAgcmV0dXJuIHJlYWRh
YmxlU3RyZWFtUmVhZGVyOwogfQogCi1SZWFkYWJsZUpTU3RyZWFtUmVhZGVyOjpSZWFkYWJsZUpT
U3RyZWFtUmVhZGVyKFJlYWRhYmxlSlNTdHJlYW0mIHJlYWRhYmxlU3RyZWFtKQorUmVhZGFibGVK
U1N0cmVhbTo6UmVhZGVyOjpSZWFkZXIoUmVhZGFibGVKU1N0cmVhbSYgcmVhZGFibGVTdHJlYW0p
CiAgICAgOiBSZWFkYWJsZVN0cmVhbVJlYWRlcihyZWFkYWJsZVN0cmVhbSkKIHsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtSlNTb3VyY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtSlNTb3VyY2UuaApp
bmRleCAyMjNiMjc3NjNlMTFiZTdkYWQ0MDQ3ZDE2YzI1Y2FiNzM1NDRmYmM2Li4yNWJhZjJjMGQ4
YmY0NzRmMWQ4YjMzYzA0NGZhYmI4Mzk0ODBhYjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbUpTU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5oCkBAIC00NCwxNCArNDQsMTMg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBKU1JlYWRhYmxlU3RyZWFtOwotCiBj
bGFzcyBSZWFkYWJsZVN0cmVhbUpTU291cmNlOiBwdWJsaWMgUmVhZGFibGVTdHJlYW1Tb3VyY2Ug
ewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8UmVhZGFibGVTdHJlYW1KU1NvdXJjZT4gY3JlYXRl
KEpTQzo6RXhlY1N0YXRlKik7CiAgICAgflJlYWRhYmxlU3RyZWFtSlNTb3VyY2UoKTsKIAotICAg
IHZvaWQgc3RhcnQoSlNDOjpFeGVjU3RhdGUqLCBKU1JlYWRhYmxlU3RyZWFtKik7CisgICAgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCgpOworICAgIHZvaWQgc3RhcnQoSlNDOjpFeGVj
U3RhdGUqLCBSZWFkYWJsZUpTU3RyZWFtJik7CiAKIHByaXZhdGU6CiAgICAgUmVhZGFibGVTdHJl
YW1KU1NvdXJjZShKU0M6OkV4ZWNTdGF0ZSopOwpAQCAtNjQsMTcgKzYzLDIwIEBAIHByaXZhdGU6
CiAKIGNsYXNzIFJlYWRhYmxlSlNTdHJlYW06IHB1YmxpYyBSZWFkYWJsZVN0cmVhbSB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxSZWFkYWJsZUpTU3RyZWFtPiBjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYsIFJlZjxSZWFkYWJsZVN0cmVhbUpTU291cmNlPiYmKTsKKyAgICBzdGF0aWMg
UmVmPFJlYWRhYmxlSlNTdHJlYW0+IGNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSosIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmKTsKICAgICB2aXJ0dWFsIFJlZjxSZWFkYWJsZVN0cmVhbVJlYWRlcj4gY3Jl
YXRlUmVhZGVyKCkgb3ZlcnJpZGU7CisgICAgUmVhZGFibGVTdHJlYW1KU1NvdXJjZSYganNTb3Vy
Y2UoKTsKKwogcHJpdmF0ZToKICAgICBSZWFkYWJsZUpTU3RyZWFtKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBSZWY8UmVhZGFibGVTdHJlYW1KU1NvdXJjZT4mJik7Ci19OwogCi1jbGFzcyBSZWFk
YWJsZUpTU3RyZWFtUmVhZGVyOiBwdWJsaWMgUmVhZGFibGVTdHJlYW1SZWFkZXIgewotcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8UmVhZGFibGVKU1N0cmVhbVJlYWRlcj4gY3JlYXRlKFJlYWRhYmxl
SlNTdHJlYW0mKTsKLXByaXZhdGU6Ci0gICAgUmVhZGFibGVKU1N0cmVhbVJlYWRlcihSZWFkYWJs
ZUpTU3RyZWFtJik7CisgICAgY2xhc3MgUmVhZGVyOiBwdWJsaWMgUmVhZGFibGVTdHJlYW1SZWFk
ZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFJlZjxSZWFkZXI+IGNyZWF0ZShSZWFk
YWJsZUpTU3RyZWFtJik7CisgICAgcHJpdmF0ZToKKyAgICAgICAgUmVhZGVyKFJlYWRhYmxlSlNT
dHJlYW0mKTsKKyAgICB9OworCiB9OwogCiB2b2lkIHNldEludGVybmFsU2xvdFRvT2JqZWN0KEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByaXZhdGVOYW1lJiwgSlNDOjpKU1Zh
bHVlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252303</attachid>
            <date>2015-05-04 03:40:23 -0700</date>
            <delta_ts>2015-05-04 05:36:16 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-144387-20150504123908.patch</filename>
            <type>text/plain</type>
            <size>9937</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzNzM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjZmOTk3YmFjZjUwMWMw
YjgwNjVhMTM4Mjg5ODgwNWJkYzUwMmY2NC4uMTJjYmRhNzQ2ZTQyZjJkMTYwNmFhOTkzNmNhYTZh
NGQ2NzBjMjZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE1LTA1LTAzICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgW1N0cmVh
bXMgQVBJXSBSZWZhY3RvciBSZWFkYWJsZUpTU3RyZWFtIGFuZCBSZWFkYWJsZVN0cmVhbUpTU291
cmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQz
ODcKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBNYWRlIFJl
YWRhYmxlU3RyZWFtUmVhZGVyIGEgcHJpdmF0ZSBjbGFzcyBvZiBSZWFkYWJsZUpTU3RyZWFtLgor
ICAgICAgICBTaW1wbGlmaWVkIFJlYWRhYmxlSlNTdHJlYW0gY29uc3RydWN0aW9uIHNvIHRoYXQg
YmluZGluZyBjb25zdHJ1Y3RvciBkb2VzIG5vdCBuZWVkIHRvIGtub3cgYWJvdXQgUmVhZGFibGVT
dHJlYW1KU1NvdXJjZS4gCisKKyAgICAgICAgTm8gZnVuY3Rpb25hbCBjaGFuZ2UsIGV4aXN0aW5n
IHRlc3RzIGNvdmVyIHRoZSBjaGFuZ2VzLgorCisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1Jl
YWRhYmxlU3RyZWFtLmg6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbTo6c291cmNl
KTogQWRkZWQgdG8gaW1wbGVtZW50IGpzU291cmNlKCksIG5lZWRlZCBieSBSZWFkYWJsZUpTU3Ry
ZWFtLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1DdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0SlNSZWFkYWJsZVN0cmVhbSk6IFNpbXBsaWZpZWQg
dG8gbm90IGhhdmUgdG8gaGFuZGxlIHNvdXJjZSBjcmVhdGlvbi4KKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9SZWFkYWJsZVN0cmVhbUpTU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRh
YmxlU3RyZWFtSlNTb3VyY2U6Omdsb2JhbE9iamVjdCk6IEhlbHBlciBmdW5jdGlvbiB0byBiZSB1
c2VkIGluIG90aGVyIGZ1dHVyZSBtZXRob2RzLgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVT
dHJlYW1KU1NvdXJjZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVKU1N0cmVh
bTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlSlNTdHJlYW06OmNyZWF0ZVJl
YWRlcik6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZUpTU3RyZWFtOjpqc1NvdXJjZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZUpTU3RyZWFtOjpSZWFkZXI6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZWFkYWJsZUpTU3RyZWFtOjpSZWFkZXI6OlJlYWRlcik6CisgICAgICAg
ICogYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5oOgorCiAyMDE1LTA1LTAzICBH
eXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBQdXJnZSBQ
YXNzUmVmUHRyIGluIFdlYkNvcmUvaHRtbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0
cmVhbXMvUmVhZGFibGVTdHJlYW0uaAppbmRleCA1YjU3MjdiZGU4YmNhZjdmNWEzYmJkMjg3MTU0
ZjUwNTUzZjY4MjAyLi4yZTU4ODhkNDU2YTk1MzUzNTI4MDE0OWE4YzJhYzczOWQwZTM2ZGI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaApA
QCAtNzAsNiArNzAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydCgpOwogICAgIHZvaWQgY2hh
bmdlU3RhdGVUb0Nsb3NlZCgpOwogCisgICAgUmVhZGFibGVTdHJlYW1Tb3VyY2UmIHNvdXJjZSgp
IHsgcmV0dXJuIG1fc291cmNlLmdldCgpOyB9CisKIHByb3RlY3RlZDoKICAgICBSZWFkYWJsZVN0
cmVhbShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPFJlYWRhYmxlU3RyZWFtU291cmNlPiYm
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0
cmVhbUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3Ry
ZWFtQ3VzdG9tLmNwcAppbmRleCBkOGIwNjgxMTYzZjcxNGMxYTJiNjNlNjVmMTY5ZWE5ZGEwOGU2
NWQ0Li4xMWEwMTUzOTRiNGFmZmE4MGE3Y2I3NTNiNzBjNWU5OTMzN2I2MDNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ3VzdG9tLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ3VzdG9tLmNw
cApAQCAtNzgsMTggKzc4LDkgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1
Y3RKU1JlYWRhYmxlU3RyZWFtKEV4ZWNTdGF0ZSogZXhlYykKIAogICAgIERPTUNvbnN0cnVjdG9y
T2JqZWN0KiBqc0NvbnN0cnVjdG9yID0ganNDYXN0PERPTUNvbnN0cnVjdG9yT2JqZWN0Kj4oZXhl
Yy0+Y2FsbGVlKCkpOwogICAgIEFTU0VSVChqc0NvbnN0cnVjdG9yKTsKLSAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0ID0ganNDb25zdHJ1Y3Rvci0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpOwogCi0gICAgUmVmPFJlYWRhYmxlU3RyZWFtSlNTb3VyY2U+
IHNvdXJjZSA9IFJlYWRhYmxlU3RyZWFtSlNTb3VyY2U6OmNyZWF0ZShleGVjKTsKLSAgICBSZWZQ
dHI8UmVhZGFibGVTdHJlYW0+IHJlYWRhYmxlU3RyZWFtID0gUmVhZGFibGVKU1N0cmVhbTo6Y3Jl
YXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBSZWY8UmVhZGFibGVTdHJlYW1KU1NvdXJjZT4o
c291cmNlLmdldCgpKSk7Ci0KLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QgPSBleGVjLT5jYWxsZWUoKS0+Z2xvYmFsT2JqZWN0KCk7Ci0g
ICAgSlNSZWFkYWJsZVN0cmVhbSoganNSZWFkYWJsZVN0cmVhbSA9IEpTUmVhZGFibGVTdHJlYW06
OmNyZWF0ZShKU1JlYWRhYmxlU3RyZWFtOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVj
dCwgSlNSZWFkYWJsZVN0cmVhbTo6Y3JlYXRlUHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3QpKSwg
anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSwgcmVhZGFibGVTdHJlYW0u
cmVsZWFzZU5vbk51bGwoKSk7Ci0KLSAgICBzb3VyY2UtPnN0YXJ0KGV4ZWMsIGpzUmVhZGFibGVT
dHJlYW0pOwotCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1JlYWRhYmxlU3RyZWFtKTsK
KyAgICBSZWY8UmVhZGFibGVKU1N0cmVhbT4gcmVhZGFibGVTdHJlYW0gPSBSZWFkYWJsZUpTU3Ry
ZWFtOjpjcmVhdGUoKmV4ZWMsICpqc0NvbnN0cnVjdG9yLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodG9KUyhleGVjLCBqc0Nhc3Q8SlNET01H
bG9iYWxPYmplY3QqPihleGVjLT5jYWxsZWUoKS0+Z2xvYmFsT2JqZWN0KCkpLCBXVEY6Om1vdmUo
cmVhZGFibGVTdHJlYW0pKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtSlNTb3VyY2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5jcHAK
aW5kZXggMDUyMjhmNzk1OGMyZTc5MDY3Yjc1ZjZkZDNjYjM3NmY0MTk5MWRjNy4uMjIyMGVjZDEz
MWNhMjI0MWZiMTEwOGEyYzU5ZDk5ZDI4YjRhOGMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5jcHAKQEAgLTEwMiwxOSAr
MTAyLDI0IEBAIHN0YXRpYyB2b2lkIHN0YXJ0UmVhZGFibGVTdHJlYW1Bc3luYyhSZWFkYWJsZVN0
cmVhbSYgcmVhZGFibGVTdHJlYW0pCiAgICAgfSk7CiB9CiAKLXZvaWQgUmVhZGFibGVTdHJlYW1K
U1NvdXJjZTo6c3RhcnQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTUmVhZGFibGVTdHJlYW0qIHJl
YWRhYmxlU3RyZWFtKQorSlNET01HbG9iYWxPYmplY3QqIFJlYWRhYmxlU3RyZWFtSlNTb3VyY2U6
Omdsb2JhbE9iamVjdCgpCiB7Ci0gICAgSlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7CisgICAgcmV0
dXJuIGpzRHluYW1pY0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihtX3NvdXJjZS0+Z2xvYmFsT2Jq
ZWN0KCkpOworfQorCit2b2lkIFJlYWRhYmxlU3RyZWFtSlNTb3VyY2U6OnN0YXJ0KEV4ZWNTdGF0
ZSYgZXhlYywgUmVhZGFibGVKU1N0cmVhbSYgcmVhZGFibGVTdHJlYW0pCit7CisgICAgSlNMb2Nr
SG9sZGVyIGxvY2soJmV4ZWMpOwogCi0gICAgUmVmPFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlcj4g
Y29udHJvbGxlciA9IFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlcjo6Y3JlYXRlKHN0YXRpY19jYXN0
PFJlYWRhYmxlSlNTdHJlYW0mPihyZWFkYWJsZVN0cmVhbS0+aW1wbCgpKSk7Ci0gICAgbV9jb250
cm9sbGVyLnNldChleGVjLT52bSgpLCBqc0R5bmFtaWNDYXN0PEpTUmVhZGFibGVTdHJlYW1Db250
cm9sbGVyKj4odG9KUyhleGVjLCByZWFkYWJsZVN0cmVhbS0+Z2xvYmFsT2JqZWN0KCksIGNvbnRy
b2xsZXIpKSk7CisgICAgUmVmPFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlcj4gY29udHJvbGxlciA9
IFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlcjo6Y3JlYXRlKHJlYWRhYmxlU3RyZWFtKTsKKyAgICBt
X2NvbnRyb2xsZXIuc2V0KGV4ZWMudm0oKSwganNEeW5hbWljQ2FzdDxKU1JlYWRhYmxlU3RyZWFt
Q29udHJvbGxlcio+KHRvSlMoJmV4ZWMsIGdsb2JhbE9iamVjdCgpLCBjb250cm9sbGVyKSkpOwog
Ci0gICAgSlNWYWx1ZSBzdGFydEZ1bmN0aW9uID0gZ2V0UHJvcGVydHlGcm9tT2JqZWN0KGV4ZWMs
IG1fc291cmNlLmdldCgpLCAic3RhcnQiKTsKKyAgICBKU1ZhbHVlIHN0YXJ0RnVuY3Rpb24gPSBn
ZXRQcm9wZXJ0eUZyb21PYmplY3QoJmV4ZWMsIG1fc291cmNlLmdldCgpLCAic3RhcnQiKTsKICAg
ICBpZiAoIXN0YXJ0RnVuY3Rpb24uaXNGdW5jdGlvbigpKSB7CiAgICAgICAgIGlmICghc3RhcnRG
dW5jdGlvbi5pc1VuZGVmaW5lZCgpKQotICAgICAgICAgICAgdGhyb3dWTUVycm9yKGV4ZWMsIGNy
ZWF0ZVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlJlYWRhYmxlU3RyZWFtIGNvbnN0cnVj
dG9yIG9iamVjdCBzdGFydCBwcm9wZXJ0eSBzaG91bGQgYmUgYSBmdW5jdGlvbi4iKSkpOworICAg
ICAgICAgICAgdGhyb3dWTUVycm9yKCZleGVjLCBjcmVhdGVUeXBlRXJyb3IoJmV4ZWMsIEFTQ0lJ
TGl0ZXJhbCgiUmVhZGFibGVTdHJlYW0gY29uc3RydWN0b3Igb2JqZWN0IHN0YXJ0IHByb3BlcnR5
IHNob3VsZCBiZSBhIGZ1bmN0aW9uLiIpKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHN0
YXJ0UmVhZGFibGVTdHJlYW1Bc3luYyhyZWFkYWJsZVN0cmVhbS0+aW1wbCgpKTsKKyAgICAgICAg
ICAgIHN0YXJ0UmVhZGFibGVTdHJlYW1Bc3luYyhyZWFkYWJsZVN0cmVhbSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKQEAgLTEyMiwyNyArMTI3LDI4IEBAIHZvaWQgUmVhZGFibGVTdHJlYW1K
U1NvdXJjZTo6c3RhcnQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTUmVhZGFibGVTdHJlYW0qIHJl
YWRhCiAgICAgYXJndW1lbnRzLmFwcGVuZChtX2NvbnRyb2xsZXIuZ2V0KCkpOwogCiAgICAgSlNW
YWx1ZSBleGNlcHRpb247Ci0gICAgY2FsbEZ1bmN0aW9uKGV4ZWMsIHN0YXJ0RnVuY3Rpb24sIG1f
c291cmNlLmdldCgpLCBhcmd1bWVudHMsICZleGNlcHRpb24pOworICAgIGNhbGxGdW5jdGlvbigm
ZXhlYywgc3RhcnRGdW5jdGlvbiwgbV9zb3VyY2UuZ2V0KCksIGFyZ3VtZW50cywgJmV4Y2VwdGlv
bik7CiAKICAgICBpZiAoZXhjZXB0aW9uKSB7Ci0gICAgICAgIHRocm93Vk1FcnJvcihleGVjLCBl
eGNlcHRpb24pOworICAgICAgICB0aHJvd1ZNRXJyb3IoJmV4ZWMsIGV4Y2VwdGlvbik7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGhhbmRsaW5nIHBy
b21pc2UgYXMgcmVzdWx0IG9mIGNhbGxpbmcgc3RhcnQgZnVuY3Rpb24uCi0gICAgc3RhcnRSZWFk
YWJsZVN0cmVhbUFzeW5jKHJlYWRhYmxlU3RyZWFtLT5pbXBsKCkpOworICAgIHN0YXJ0UmVhZGFi
bGVTdHJlYW1Bc3luYyhyZWFkYWJsZVN0cmVhbSk7CiB9CiAKLVJlZjxSZWFkYWJsZUpTU3RyZWFt
PiBSZWFkYWJsZUpTU3RyZWFtOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCwgUmVmPFJlYWRhYmxlU3RyZWFtSlNTb3VyY2U+JiYgc291cmNlKQor
UmVmPFJlYWRhYmxlSlNTdHJlYW0+IFJlYWRhYmxlSlNTdHJlYW06OmNyZWF0ZShFeGVjU3RhdGUm
IGV4ZWMsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCiB7
Ci0gICAgYXV0byByZWFkYWJsZVN0cmVhbSA9IGFkb3B0UmVmKCpuZXcgUmVhZGFibGVKU1N0cmVh
bShzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBXVEY6Om1vdmUoc291cmNlKSkpOworICAgIFJlZjxS
ZWFkYWJsZVN0cmVhbUpTU291cmNlPiBzb3VyY2UgPSBSZWFkYWJsZVN0cmVhbUpTU291cmNlOjpj
cmVhdGUoJmV4ZWMpOworICAgIFJlZjxSZWFkYWJsZUpTU3RyZWFtPiByZWFkYWJsZVN0cmVhbSA9
IGFkb3B0UmVmKCpuZXcgUmVhZGFibGVKU1N0cmVhbShzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBX
VEY6Om1vdmUoc291cmNlKSkpOworICAgIHJlYWRhYmxlU3RyZWFtLT5qc1NvdXJjZSgpLnN0YXJ0
KGV4ZWMsIHJlYWRhYmxlU3RyZWFtLmdldCgpKTsKICAgICByZXR1cm4gcmVhZGFibGVTdHJlYW07
CiB9CiAKIFJlZjxSZWFkYWJsZVN0cmVhbVJlYWRlcj4gUmVhZGFibGVKU1N0cmVhbTo6Y3JlYXRl
UmVhZGVyKCkKIHsKLSAgICBSZWZQdHI8UmVhZGFibGVTdHJlYW1SZWFkZXI+IHJlYWRlciA9IFJl
YWRhYmxlSlNTdHJlYW1SZWFkZXI6OmNyZWF0ZSgqdGhpcyk7Ci0gICAgcmV0dXJuIHJlYWRlci5y
ZWxlYXNlTm9uTnVsbCgpOworICAgIHJldHVybiBSZWFkZXI6OmNyZWF0ZSgqdGhpcyk7CiB9CiAK
IFJlYWRhYmxlSlNTdHJlYW06OlJlYWRhYmxlSlNTdHJlYW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgUmVmPFJlYWRhYmxlU3RyZWFtSlNTb3VyY2U+JiYg
c291cmNlKQpAQCAtMTUwLDEzICsxNTYsMTcgQEAgUmVhZGFibGVKU1N0cmVhbTo6UmVhZGFibGVK
U1N0cmVhbShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXgKIHsK
IH0KIAotUmVmPFJlYWRhYmxlSlNTdHJlYW1SZWFkZXI+IFJlYWRhYmxlSlNTdHJlYW1SZWFkZXI6
OmNyZWF0ZShSZWFkYWJsZUpTU3RyZWFtJiBzdHJlYW0pCitSZWFkYWJsZVN0cmVhbUpTU291cmNl
JiBSZWFkYWJsZUpTU3RyZWFtOjpqc1NvdXJjZSgpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0
PFJlYWRhYmxlU3RyZWFtSlNTb3VyY2UmPihzb3VyY2UoKSk7Cit9CisKK1JlZjxSZWFkYWJsZUpT
U3RyZWFtOjpSZWFkZXI+IFJlYWRhYmxlSlNTdHJlYW06OlJlYWRlcjo6Y3JlYXRlKFJlYWRhYmxl
SlNTdHJlYW0mIHN0cmVhbSkKIHsKLSAgICBhdXRvIHJlYWRhYmxlU3RyZWFtUmVhZGVyID0gYWRv
cHRSZWYoKm5ldyBSZWFkYWJsZUpTU3RyZWFtUmVhZGVyKHN0cmVhbSkpOwotICAgIHJldHVybiBy
ZWFkYWJsZVN0cmVhbVJlYWRlcjsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZWFkZXIoc3Ry
ZWFtKSk7CiB9CiAKLVJlYWRhYmxlSlNTdHJlYW1SZWFkZXI6OlJlYWRhYmxlSlNTdHJlYW1SZWFk
ZXIoUmVhZGFibGVKU1N0cmVhbSYgcmVhZGFibGVTdHJlYW0pCitSZWFkYWJsZUpTU3RyZWFtOjpS
ZWFkZXI6OlJlYWRlcihSZWFkYWJsZUpTU3RyZWFtJiByZWFkYWJsZVN0cmVhbSkKICAgICA6IFJl
YWRhYmxlU3RyZWFtUmVhZGVyKHJlYWRhYmxlU3RyZWFtKQogewogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5oCmluZGV4IDIyM2Iy
Nzc2M2UxMWJlN2RhZDQwNDdkMTZjMjVjYWI3MzU0NGZiYzYuLjc1YzNkNDgwMGQzOGRmNTM0NjMx
NmI5ZGY1N2YzMGNkZWE2NmVkZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1JlYWRhYmxlU3RyZWFtSlNTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9SZWFkYWJsZVN0cmVhbUpTU291cmNlLmgKQEAgLTQ0LDE0ICs0NCwxMyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEpTUmVhZGFibGVTdHJlYW07Ci0KIGNsYXNzIFJlYWRh
YmxlU3RyZWFtSlNTb3VyY2U6IHB1YmxpYyBSZWFkYWJsZVN0cmVhbVNvdXJjZSB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFJlZjxSZWFkYWJsZVN0cmVhbUpTU291cmNlPiBjcmVhdGUoSlNDOjpFeGVj
U3RhdGUqKTsKICAgICB+UmVhZGFibGVTdHJlYW1KU1NvdXJjZSgpOwogCi0gICAgdm9pZCBzdGFy
dChKU0M6OkV4ZWNTdGF0ZSosIEpTUmVhZGFibGVTdHJlYW0qKTsKKyAgICBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0KCk7CisgICAgdm9pZCBzdGFydChKU0M6OkV4ZWNTdGF0ZSYsIFJl
YWRhYmxlSlNTdHJlYW0mKTsKIAogcHJpdmF0ZToKICAgICBSZWFkYWJsZVN0cmVhbUpTU291cmNl
KEpTQzo6RXhlY1N0YXRlKik7CkBAIC02NCwxNyArNjMsMjAgQEAgcHJpdmF0ZToKIAogY2xhc3Mg
UmVhZGFibGVKU1N0cmVhbTogcHVibGljIFJlYWRhYmxlU3RyZWFtIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPFJlYWRhYmxlSlNTdHJlYW0+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgUmVmPFJlYWRhYmxlU3RyZWFtSlNTb3VyY2U+JiYpOworICAgIHN0YXRpYyBSZWY8UmVhZGFi
bGVKU1N0cmVhbT4gY3JlYXRlKEpTQzo6RXhlY1N0YXRlJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYpOwogICAgIHZpcnR1YWwgUmVmPFJlYWRhYmxlU3RyZWFtUmVhZGVyPiBjcmVhdGVSZWFkZXIo
KSBvdmVycmlkZTsKKyAgICBSZWFkYWJsZVN0cmVhbUpTU291cmNlJiBqc1NvdXJjZSgpOworCiBw
cml2YXRlOgogICAgIFJlYWRhYmxlSlNTdHJlYW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJl
ZjxSZWFkYWJsZVN0cmVhbUpTU291cmNlPiYmKTsKLX07CiAKLWNsYXNzIFJlYWRhYmxlSlNTdHJl
YW1SZWFkZXI6IHB1YmxpYyBSZWFkYWJsZVN0cmVhbVJlYWRlciB7CitjbGFzcyBSZWFkZXI6IHB1
YmxpYyBSZWFkYWJsZVN0cmVhbVJlYWRlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSZWFk
YWJsZUpTU3RyZWFtUmVhZGVyPiBjcmVhdGUoUmVhZGFibGVKU1N0cmVhbSYpOworICAgIHN0YXRp
YyBSZWY8UmVhZGVyPiBjcmVhdGUoUmVhZGFibGVKU1N0cmVhbSYpOwogcHJpdmF0ZToKLSAgICBS
ZWFkYWJsZUpTU3RyZWFtUmVhZGVyKFJlYWRhYmxlSlNTdHJlYW0mKTsKKyAgICBleHBsaWNpdCBS
ZWFkZXIoUmVhZGFibGVKU1N0cmVhbSYpOworfTsKKwogfTsKIAogdm9pZCBzZXRJbnRlcm5hbFNs
b3RUb09iamVjdChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpQcml2YXRlTmFt
ZSYsIEpTQzo6SlNWYWx1ZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252306</attachid>
            <date>2015-05-04 05:36:23 -0700</date>
            <delta_ts>2015-05-04 06:31:37 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-144387-20150504143508.patch</filename>
            <type>text/plain</type>
            <size>10029</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzNzM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjZmOTk3YmFjZjUwMWMw
YjgwNjVhMTM4Mjg5ODgwNWJkYzUwMmY2NC4uN2Q4MTRiNTU2MzUzYTcyMmFhZTE1N2E3OWIxNzkz
MTVlM2UzZjBlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE1LTA1LTA0ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+IGFuZCBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgW1N0cmVhbXMgQVBJ
XSBSZWZhY3RvciBSZWFkYWJsZUpTU3RyZWFtIGFuZCBSZWFkYWJsZVN0cmVhbUpTU291cmNlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQzODcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBNYWRlIFJlYWRhYmxl
U3RyZWFtUmVhZGVyIGEgcHJpdmF0ZSBjbGFzcyBvZiBSZWFkYWJsZUpTU3RyZWFtLgorICAgICAg
ICBTaW1wbGlmaWVkIFJlYWRhYmxlSlNTdHJlYW0gY29uc3RydWN0aW9uIHNvIHRoYXQgYmluZGlu
ZyBjb25zdHJ1Y3RvciBkb2VzIG5vdCBuZWVkIHRvIGtub3cgYWJvdXQgUmVhZGFibGVTdHJlYW1K
U1NvdXJjZS4gCisKKyAgICAgICAgTm8gZnVuY3Rpb25hbCBjaGFuZ2UsIGV4aXN0aW5nIHRlc3Rz
IGNvdmVyIHRoZSBjaGFuZ2VzLgorCisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxl
U3RyZWFtLmg6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbTo6c291cmNlKTogQWRk
ZWQgdG8gaW1wbGVtZW50IGpzU291cmNlKCksIG5lZWRlZCBieSBSZWFkYWJsZUpTU3RyZWFtLgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1DdXN0b20uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Y29uc3RydWN0SlNSZWFkYWJsZVN0cmVhbSk6IFNpbXBsaWZpZWQgdG8gbm90
IGhhdmUgdG8gaGFuZGxlIHNvdXJjZSBjcmVhdGlvbi4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9S
ZWFkYWJsZVN0cmVhbUpTU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlU3Ry
ZWFtSlNTb3VyY2U6Omdsb2JhbE9iamVjdCk6IEhlbHBlciBmdW5jdGlvbiB0byBiZSB1c2VkIGlu
IG90aGVyIGZ1dHVyZSBtZXRob2RzLgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW1K
U1NvdXJjZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVKU1N0cmVhbTo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlSlNTdHJlYW06OmNyZWF0ZVJlYWRlcik6
CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZUpTU3RyZWFtOjpqc1NvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZWFkYWJsZUpTU3RyZWFtOjpSZWFkZXI6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZWFkYWJsZUpTU3RyZWFtOjpSZWFkZXI6OlJlYWRlcik6CisgICAgICAgICogYmlu
ZGluZ3MvanMvUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5oOgorCiAyMDE1LTA1LTAzICBHeXV5b3Vu
ZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBQdXJnZSBQYXNzUmVm
UHRyIGluIFdlYkNvcmUvaHRtbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
dHJlYW1zL1JlYWRhYmxlU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW0uaAppbmRleCA1YjU3MjdiZGU4YmNhZjdmNWEzYmJkMjg3MTU0ZjUwNTUz
ZjY4MjAyLi4yZTU4ODhkNDU2YTk1MzUzNTI4MDE0OWE4YzJhYzczOWQwZTM2ZGI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW0uaApAQCAtNzAs
NiArNzAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydCgpOwogICAgIHZvaWQgY2hhbmdlU3Rh
dGVUb0Nsb3NlZCgpOwogCisgICAgUmVhZGFibGVTdHJlYW1Tb3VyY2UmIHNvdXJjZSgpIHsgcmV0
dXJuIG1fc291cmNlLmdldCgpOyB9CisKIHByb3RlY3RlZDoKICAgICBSZWFkYWJsZVN0cmVhbShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPFJlYWRhYmxlU3RyZWFtU291cmNlPiYmKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbUN1
c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ3Vz
dG9tLmNwcAppbmRleCBkOGIwNjgxMTYzZjcxNGMxYTJiNjNlNjVmMTY5ZWE5ZGEwOGU2NWQ0Li4x
MWEwMTUzOTRiNGFmZmE4MGE3Y2I3NTNiNzBjNWU5OTMzN2I2MDNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ3VzdG9tLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ3VzdG9tLmNwcApAQCAt
NzgsMTggKzc4LDkgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1Jl
YWRhYmxlU3RyZWFtKEV4ZWNTdGF0ZSogZXhlYykKIAogICAgIERPTUNvbnN0cnVjdG9yT2JqZWN0
KiBqc0NvbnN0cnVjdG9yID0ganNDYXN0PERPTUNvbnN0cnVjdG9yT2JqZWN0Kj4oZXhlYy0+Y2Fs
bGVlKCkpOwogICAgIEFTU0VSVChqc0NvbnN0cnVjdG9yKTsKLSAgICBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0ID0ganNDb25zdHJ1Y3Rvci0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpOwogCi0gICAgUmVmPFJlYWRhYmxlU3RyZWFtSlNTb3VyY2U+IHNvdXJj
ZSA9IFJlYWRhYmxlU3RyZWFtSlNTb3VyY2U6OmNyZWF0ZShleGVjKTsKLSAgICBSZWZQdHI8UmVh
ZGFibGVTdHJlYW0+IHJlYWRhYmxlU3RyZWFtID0gUmVhZGFibGVKU1N0cmVhbTo6Y3JlYXRlKCpz
Y3JpcHRFeGVjdXRpb25Db250ZXh0LCBSZWY8UmVhZGFibGVTdHJlYW1KU1NvdXJjZT4oc291cmNl
LmdldCgpKSk7Ci0KLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QgPSBleGVjLT5jYWxsZWUoKS0+Z2xvYmFsT2JqZWN0KCk7Ci0gICAgSlNS
ZWFkYWJsZVN0cmVhbSoganNSZWFkYWJsZVN0cmVhbSA9IEpTUmVhZGFibGVTdHJlYW06OmNyZWF0
ZShKU1JlYWRhYmxlU3RyZWFtOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgSlNS
ZWFkYWJsZVN0cmVhbTo6Y3JlYXRlUHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3QpKSwganNDYXN0
PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSwgcmVhZGFibGVTdHJlYW0ucmVsZWFz
ZU5vbk51bGwoKSk7Ci0KLSAgICBzb3VyY2UtPnN0YXJ0KGV4ZWMsIGpzUmVhZGFibGVTdHJlYW0p
OwotCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1JlYWRhYmxlU3RyZWFtKTsKKyAgICBS
ZWY8UmVhZGFibGVKU1N0cmVhbT4gcmVhZGFibGVTdHJlYW0gPSBSZWFkYWJsZUpTU3RyZWFtOjpj
cmVhdGUoKmV4ZWMsICpqc0NvbnN0cnVjdG9yLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodG9KUyhleGVjLCBqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPihleGVjLT5jYWxsZWUoKS0+Z2xvYmFsT2JqZWN0KCkpLCBXVEY6Om1vdmUocmVhZGFi
bGVTdHJlYW0pKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtSlNTb3VyY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5jcHAKaW5kZXgg
MDUyMjhmNzk1OGMyZTc5MDY3Yjc1ZjZkZDNjYjM3NmY0MTk5MWRjNy4uMjIyMGVjZDEzMWNhMjI0
MWZiMTEwOGEyYzU5ZDk5ZDI4YjRhOGMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5jcHAKQEAgLTEwMiwxOSArMTAyLDI0
IEBAIHN0YXRpYyB2b2lkIHN0YXJ0UmVhZGFibGVTdHJlYW1Bc3luYyhSZWFkYWJsZVN0cmVhbSYg
cmVhZGFibGVTdHJlYW0pCiAgICAgfSk7CiB9CiAKLXZvaWQgUmVhZGFibGVTdHJlYW1KU1NvdXJj
ZTo6c3RhcnQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTUmVhZGFibGVTdHJlYW0qIHJlYWRhYmxl
U3RyZWFtKQorSlNET01HbG9iYWxPYmplY3QqIFJlYWRhYmxlU3RyZWFtSlNTb3VyY2U6Omdsb2Jh
bE9iamVjdCgpCiB7Ci0gICAgSlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7CisgICAgcmV0dXJuIGpz
RHluYW1pY0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihtX3NvdXJjZS0+Z2xvYmFsT2JqZWN0KCkp
OworfQorCit2b2lkIFJlYWRhYmxlU3RyZWFtSlNTb3VyY2U6OnN0YXJ0KEV4ZWNTdGF0ZSYgZXhl
YywgUmVhZGFibGVKU1N0cmVhbSYgcmVhZGFibGVTdHJlYW0pCit7CisgICAgSlNMb2NrSG9sZGVy
IGxvY2soJmV4ZWMpOwogCi0gICAgUmVmPFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlcj4gY29udHJv
bGxlciA9IFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlcjo6Y3JlYXRlKHN0YXRpY19jYXN0PFJlYWRh
YmxlSlNTdHJlYW0mPihyZWFkYWJsZVN0cmVhbS0+aW1wbCgpKSk7Ci0gICAgbV9jb250cm9sbGVy
LnNldChleGVjLT52bSgpLCBqc0R5bmFtaWNDYXN0PEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVy
Kj4odG9KUyhleGVjLCByZWFkYWJsZVN0cmVhbS0+Z2xvYmFsT2JqZWN0KCksIGNvbnRyb2xsZXIp
KSk7CisgICAgUmVmPFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlcj4gY29udHJvbGxlciA9IFJlYWRh
YmxlU3RyZWFtQ29udHJvbGxlcjo6Y3JlYXRlKHJlYWRhYmxlU3RyZWFtKTsKKyAgICBtX2NvbnRy
b2xsZXIuc2V0KGV4ZWMudm0oKSwganNEeW5hbWljQ2FzdDxKU1JlYWRhYmxlU3RyZWFtQ29udHJv
bGxlcio+KHRvSlMoJmV4ZWMsIGdsb2JhbE9iamVjdCgpLCBjb250cm9sbGVyKSkpOwogCi0gICAg
SlNWYWx1ZSBzdGFydEZ1bmN0aW9uID0gZ2V0UHJvcGVydHlGcm9tT2JqZWN0KGV4ZWMsIG1fc291
cmNlLmdldCgpLCAic3RhcnQiKTsKKyAgICBKU1ZhbHVlIHN0YXJ0RnVuY3Rpb24gPSBnZXRQcm9w
ZXJ0eUZyb21PYmplY3QoJmV4ZWMsIG1fc291cmNlLmdldCgpLCAic3RhcnQiKTsKICAgICBpZiAo
IXN0YXJ0RnVuY3Rpb24uaXNGdW5jdGlvbigpKSB7CiAgICAgICAgIGlmICghc3RhcnRGdW5jdGlv
bi5pc1VuZGVmaW5lZCgpKQotICAgICAgICAgICAgdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVR5
cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlJlYWRhYmxlU3RyZWFtIGNvbnN0cnVjdG9yIG9i
amVjdCBzdGFydCBwcm9wZXJ0eSBzaG91bGQgYmUgYSBmdW5jdGlvbi4iKSkpOworICAgICAgICAg
ICAgdGhyb3dWTUVycm9yKCZleGVjLCBjcmVhdGVUeXBlRXJyb3IoJmV4ZWMsIEFTQ0lJTGl0ZXJh
bCgiUmVhZGFibGVTdHJlYW0gY29uc3RydWN0b3Igb2JqZWN0IHN0YXJ0IHByb3BlcnR5IHNob3Vs
ZCBiZSBhIGZ1bmN0aW9uLiIpKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHN0YXJ0UmVh
ZGFibGVTdHJlYW1Bc3luYyhyZWFkYWJsZVN0cmVhbS0+aW1wbCgpKTsKKyAgICAgICAgICAgIHN0
YXJ0UmVhZGFibGVTdHJlYW1Bc3luYyhyZWFkYWJsZVN0cmVhbSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKQEAgLTEyMiwyNyArMTI3LDI4IEBAIHZvaWQgUmVhZGFibGVTdHJlYW1KU1NvdXJj
ZTo6c3RhcnQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTUmVhZGFibGVTdHJlYW0qIHJlYWRhCiAg
ICAgYXJndW1lbnRzLmFwcGVuZChtX2NvbnRyb2xsZXIuZ2V0KCkpOwogCiAgICAgSlNWYWx1ZSBl
eGNlcHRpb247Ci0gICAgY2FsbEZ1bmN0aW9uKGV4ZWMsIHN0YXJ0RnVuY3Rpb24sIG1fc291cmNl
LmdldCgpLCBhcmd1bWVudHMsICZleGNlcHRpb24pOworICAgIGNhbGxGdW5jdGlvbigmZXhlYywg
c3RhcnRGdW5jdGlvbiwgbV9zb3VyY2UuZ2V0KCksIGFyZ3VtZW50cywgJmV4Y2VwdGlvbik7CiAK
ICAgICBpZiAoZXhjZXB0aW9uKSB7Ci0gICAgICAgIHRocm93Vk1FcnJvcihleGVjLCBleGNlcHRp
b24pOworICAgICAgICB0aHJvd1ZNRXJyb3IoJmV4ZWMsIGV4Y2VwdGlvbik7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGhhbmRsaW5nIHByb21pc2Ug
YXMgcmVzdWx0IG9mIGNhbGxpbmcgc3RhcnQgZnVuY3Rpb24uCi0gICAgc3RhcnRSZWFkYWJsZVN0
cmVhbUFzeW5jKHJlYWRhYmxlU3RyZWFtLT5pbXBsKCkpOworICAgIHN0YXJ0UmVhZGFibGVTdHJl
YW1Bc3luYyhyZWFkYWJsZVN0cmVhbSk7CiB9CiAKLVJlZjxSZWFkYWJsZUpTU3RyZWFtPiBSZWFk
YWJsZUpTU3RyZWFtOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCwgUmVmPFJlYWRhYmxlU3RyZWFtSlNTb3VyY2U+JiYgc291cmNlKQorUmVmPFJl
YWRhYmxlSlNTdHJlYW0+IFJlYWRhYmxlSlNTdHJlYW06OmNyZWF0ZShFeGVjU3RhdGUmIGV4ZWMs
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCiB7Ci0gICAg
YXV0byByZWFkYWJsZVN0cmVhbSA9IGFkb3B0UmVmKCpuZXcgUmVhZGFibGVKU1N0cmVhbShzY3Jp
cHRFeGVjdXRpb25Db250ZXh0LCBXVEY6Om1vdmUoc291cmNlKSkpOworICAgIFJlZjxSZWFkYWJs
ZVN0cmVhbUpTU291cmNlPiBzb3VyY2UgPSBSZWFkYWJsZVN0cmVhbUpTU291cmNlOjpjcmVhdGUo
JmV4ZWMpOworICAgIFJlZjxSZWFkYWJsZUpTU3RyZWFtPiByZWFkYWJsZVN0cmVhbSA9IGFkb3B0
UmVmKCpuZXcgUmVhZGFibGVKU1N0cmVhbShzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBXVEY6Om1v
dmUoc291cmNlKSkpOworICAgIHJlYWRhYmxlU3RyZWFtLT5qc1NvdXJjZSgpLnN0YXJ0KGV4ZWMs
IHJlYWRhYmxlU3RyZWFtLmdldCgpKTsKICAgICByZXR1cm4gcmVhZGFibGVTdHJlYW07CiB9CiAK
IFJlZjxSZWFkYWJsZVN0cmVhbVJlYWRlcj4gUmVhZGFibGVKU1N0cmVhbTo6Y3JlYXRlUmVhZGVy
KCkKIHsKLSAgICBSZWZQdHI8UmVhZGFibGVTdHJlYW1SZWFkZXI+IHJlYWRlciA9IFJlYWRhYmxl
SlNTdHJlYW1SZWFkZXI6OmNyZWF0ZSgqdGhpcyk7Ci0gICAgcmV0dXJuIHJlYWRlci5yZWxlYXNl
Tm9uTnVsbCgpOworICAgIHJldHVybiBSZWFkZXI6OmNyZWF0ZSgqdGhpcyk7CiB9CiAKIFJlYWRh
YmxlSlNTdHJlYW06OlJlYWRhYmxlSlNTdHJlYW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCwgUmVmPFJlYWRhYmxlU3RyZWFtSlNTb3VyY2U+JiYgc291cmNl
KQpAQCAtMTUwLDEzICsxNTYsMTcgQEAgUmVhZGFibGVKU1N0cmVhbTo6UmVhZGFibGVKU1N0cmVh
bShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXgKIHsKIH0KIAot
UmVmPFJlYWRhYmxlSlNTdHJlYW1SZWFkZXI+IFJlYWRhYmxlSlNTdHJlYW1SZWFkZXI6OmNyZWF0
ZShSZWFkYWJsZUpTU3RyZWFtJiBzdHJlYW0pCitSZWFkYWJsZVN0cmVhbUpTU291cmNlJiBSZWFk
YWJsZUpTU3RyZWFtOjpqc1NvdXJjZSgpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlYWRh
YmxlU3RyZWFtSlNTb3VyY2UmPihzb3VyY2UoKSk7Cit9CisKK1JlZjxSZWFkYWJsZUpTU3RyZWFt
OjpSZWFkZXI+IFJlYWRhYmxlSlNTdHJlYW06OlJlYWRlcjo6Y3JlYXRlKFJlYWRhYmxlSlNTdHJl
YW0mIHN0cmVhbSkKIHsKLSAgICBhdXRvIHJlYWRhYmxlU3RyZWFtUmVhZGVyID0gYWRvcHRSZWYo
Km5ldyBSZWFkYWJsZUpTU3RyZWFtUmVhZGVyKHN0cmVhbSkpOwotICAgIHJldHVybiByZWFkYWJs
ZVN0cmVhbVJlYWRlcjsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZWFkZXIoc3RyZWFtKSk7
CiB9CiAKLVJlYWRhYmxlSlNTdHJlYW1SZWFkZXI6OlJlYWRhYmxlSlNTdHJlYW1SZWFkZXIoUmVh
ZGFibGVKU1N0cmVhbSYgcmVhZGFibGVTdHJlYW0pCitSZWFkYWJsZUpTU3RyZWFtOjpSZWFkZXI6
OlJlYWRlcihSZWFkYWJsZUpTU3RyZWFtJiByZWFkYWJsZVN0cmVhbSkKICAgICA6IFJlYWRhYmxl
U3RyZWFtUmVhZGVyKHJlYWRhYmxlU3RyZWFtKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW1KU1NvdXJjZS5oCmluZGV4IDIyM2IyNzc2M2Ux
MWJlN2RhZDQwNDdkMTZjMjVjYWI3MzU0NGZiYzYuLjEzMWQ0MTFiNDhmZTIwZGYzYWVjNzk3MTNl
ZDFiMDJmOTBjN2VlODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Jl
YWRhYmxlU3RyZWFtSlNTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9S
ZWFkYWJsZVN0cmVhbUpTU291cmNlLmgKQEAgLTQ0LDE0ICs0NCwxMyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWNsYXNzIEpTUmVhZGFibGVTdHJlYW07Ci0KIGNsYXNzIFJlYWRhYmxlU3Ry
ZWFtSlNTb3VyY2U6IHB1YmxpYyBSZWFkYWJsZVN0cmVhbVNvdXJjZSB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZjxSZWFkYWJsZVN0cmVhbUpTU291cmNlPiBjcmVhdGUoSlNDOjpFeGVjU3RhdGUq
KTsKICAgICB+UmVhZGFibGVTdHJlYW1KU1NvdXJjZSgpOwogCi0gICAgdm9pZCBzdGFydChKU0M6
OkV4ZWNTdGF0ZSosIEpTUmVhZGFibGVTdHJlYW0qKTsKKyAgICBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KCk7CisgICAgdm9pZCBzdGFydChKU0M6OkV4ZWNTdGF0ZSYsIFJlYWRhYmxl
SlNTdHJlYW0mKTsKIAogcHJpdmF0ZToKICAgICBSZWFkYWJsZVN0cmVhbUpTU291cmNlKEpTQzo6
RXhlY1N0YXRlKik7CkBAIC02NCwxNyArNjMsMTkgQEAgcHJpdmF0ZToKIAogY2xhc3MgUmVhZGFi
bGVKU1N0cmVhbTogcHVibGljIFJlYWRhYmxlU3RyZWFtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPFJlYWRhYmxlSlNTdHJlYW0+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVm
PFJlYWRhYmxlU3RyZWFtSlNTb3VyY2U+JiYpOworICAgIHN0YXRpYyBSZWY8UmVhZGFibGVKU1N0
cmVhbT4gY3JlYXRlKEpTQzo6RXhlY1N0YXRlJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwog
ICAgIHZpcnR1YWwgUmVmPFJlYWRhYmxlU3RyZWFtUmVhZGVyPiBjcmVhdGVSZWFkZXIoKSBvdmVy
cmlkZTsKKyAgICBSZWFkYWJsZVN0cmVhbUpTU291cmNlJiBqc1NvdXJjZSgpOworCiBwcml2YXRl
OgogICAgIFJlYWRhYmxlSlNTdHJlYW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJlZjxSZWFk
YWJsZVN0cmVhbUpTU291cmNlPiYmKTsKLX07CiAKLWNsYXNzIFJlYWRhYmxlSlNTdHJlYW1SZWFk
ZXI6IHB1YmxpYyBSZWFkYWJsZVN0cmVhbVJlYWRlciB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxSZWFkYWJsZUpTU3RyZWFtUmVhZGVyPiBjcmVhdGUoUmVhZGFibGVKU1N0cmVhbSYpOwotcHJp
dmF0ZToKLSAgICBSZWFkYWJsZUpTU3RyZWFtUmVhZGVyKFJlYWRhYmxlSlNTdHJlYW0mKTsKKyAg
ICBjbGFzcyBSZWFkZXI6IHB1YmxpYyBSZWFkYWJsZVN0cmVhbVJlYWRlciB7CisgICAgcHVibGlj
OgorICAgICAgICBzdGF0aWMgUmVmPFJlYWRlcj4gY3JlYXRlKFJlYWRhYmxlSlNTdHJlYW0mKTsK
KyAgICBwcml2YXRlOgorICAgICAgICBleHBsaWNpdCBSZWFkZXIoUmVhZGFibGVKU1N0cmVhbSYp
OworICAgIH07CiB9OwogCiB2b2lkIHNldEludGVybmFsU2xvdFRvT2JqZWN0KEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByaXZhdGVOYW1lJiwgSlNDOjpKU1ZhbHVlKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>