<?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>143752</bug_id>
          
          <creation_ts>2015-04-15 03:43:39 -0700</creation_ts>
          <short_desc>[Streams API] Implement ReadableStreamController constructor</short_desc>
          <delta_ts>2015-05-31 04:29:49 -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>WebCore 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>
          <dependson>143608</dependson>
          <blocked>138967</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1085436</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-04-15 03:43:39 -0700</bug_when>
    <thetext>ReadableStreamController should not be visible but its constructor can be retrieved from ReadableStreamController object prototype.
This constructor should throw exception.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085437</commentid>
    <comment_count>1</comment_count>
      <attachid>250783</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-04-15 03:51:55 -0700</bug_when>
    <thetext>Created attachment 250783
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086320</commentid>
    <comment_count>2</comment_count>
      <attachid>251024</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-04-17 08:13:02 -0700</bug_when>
    <thetext>Created attachment 251024
Improving test coverage</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087309</commentid>
    <comment_count>3</comment_count>
      <attachid>251024</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-04-21 20:45:26 -0700</bug_when>
    <thetext>Comment on attachment 251024
Improving test coverage

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

Any way to change the bindings to support Custom constructor function instead?

&gt; Source/WebCore/bindings/js/JSReadableStreamControllerCustom.cpp:127
&gt; +        constructor = JSReadableStreamControllerConstructor::create(exec-&gt;vm(), JSReadableStreamControllerConstructor::createStructure(exec-&gt;vm(), globalObject, globalObject-&gt;objectPrototype()), globalObject);

Couldn&apos;t you just use JSFunction::create()?

Why subclass DOMConstructorObject here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089477</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-04-28 05:59:49 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 251024 [details]
&gt; Improving test coverage
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=251024&amp;action=review
&gt; 
&gt; Any way to change the bindings to support Custom constructor function
&gt; instead?

That is certainly doable, but:
- WebIDL spec is not allowing to put Constructor and NoInterfaceObject .
Since CustomConstructor is semantically equivalent to Constructor, that would 
- It might be better to agree on how the code looks like and then generate it automatically
- Is it a case that happens often enough to add it into the binding generator?
- I am no expert in the bindings (althouhgh I&apos;d like to have some time to study it).

&gt; 
&gt; &gt; Source/WebCore/bindings/js/JSReadableStreamControllerCustom.cpp:127
&gt; &gt; +        constructor = JSReadableStreamControllerConstructor::create(exec-&gt;vm(), JSReadableStreamControllerConstructor::createStructure(exec-&gt;vm(), globalObject, globalObject-&gt;objectPrototype()), globalObject);
&gt; 
&gt; Couldn&apos;t you just use JSFunction::create()?

I wrote the code the way it is so that the class name would be settable.
A call to toString would get &quot;[object ReadableStreamControllerConstructor]&quot; which seems to align with ReadableStreamController objects.

Going the function way, we would get &quot;function() {}&quot;.

I guess that in most case, this does not change anything, so I am fine either way. 

&gt; Why subclass DOMConstructorObject here?

This is just closer to currently binding generated code.
We could go with DOMConstructorObject parent class or above I guess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097944</commentid>
    <comment_count>5</comment_count>
      <attachid>253860</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-05-28 13:48:32 -0700</bug_when>
    <thetext>Created attachment 253860
Using CustomConstructor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097952</commentid>
    <comment_count>6</comment_count>
      <attachid>253860</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-05-28 14:17:12 -0700</bug_when>
    <thetext>Comment on attachment 253860
Using CustomConstructor

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

&gt; LayoutTests/streams/readable-stream.html:42
&gt; +            assert_equals(propDesc.writable, false, &apos;method should be writable&apos;);

Some typos I forgot after copy/pasting the code here: rename &apos;method&apos; to &apos;property&apos;, &apos;writable&apos; to &apos;not writable&apos; and &apos;enumerable&apos; to &apos;not enumerable&apos;
I plan to fix that when landing patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098394</commentid>
    <comment_count>7</comment_count>
      <attachid>253976</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-05-31 03:36:05 -0700</bug_when>
    <thetext>Created attachment 253976
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098396</commentid>
    <comment_count>8</comment_count>
      <attachid>253976</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-31 04:29:45 -0700</bug_when>
    <thetext>Comment on attachment 253976
Patch for landing

Clearing flags on attachment: 253976

Committed r185039: &lt;http://trac.webkit.org/changeset/185039&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098397</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-31 04:29:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250783</attachid>
            <date>2015-04-15 03:51:55 -0700</date>
            <delta_ts>2015-04-17 08:12:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143752-20150415125058.patch</filename>
            <type>text/plain</type>
            <size>10966</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyNzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzAzZDgwNDRiYzNjYmZk
MzFhOWIwMzNlNWI5NWMxNjhiNzkzNDhjYi4uNTgwYjg1NWY2ZmEwYzMwYjQ1NTMyNjU4YWRiMjk1
ZmI3Mzk0OGRlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE1LTA0LTEwICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4gYW5kIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KKworICAgICAgICBbU3RyZWFtcyBBUEld
IEltcGxlbWVudCBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIgY29uc3RydWN0b3IKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Mzc1MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyBkeW5hbWljYWxs
eSB0byBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIgcHJvdG90eXBlIGEgY29uc3RydWN0b3IgcHJv
cGVydHkuCisgICAgICAgIFRoZSBjb25zdHJ1Y3RvciBhbHdheXMgdGhyb3dzIGV4ZXB0aW9ucy4K
KworICAgICAgICBDb3ZlcmVkIGJ5IHJlYmFzZWQgdGVzdHMuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlckN1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjb25zdHJ1Y3RKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlcik6IENvbnN0cnVjdG9yIHRo
cm93aW5nIGV4Y2VwdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkpTUmVhZGFibGVTdHJlYW1Db250
cm9sbGVyQ29uc3RydWN0b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1JlYWRhYmxl
U3RyZWFtQ29udHJvbGxlckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAo
V2ViQ29yZTo6SlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJDb25zdHJ1Y3Rvcjo6SlNSZWFkYWJs
ZVN0cmVhbUNvbnRyb2xsZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1JlYWRh
YmxlU3RyZWFtQ29udHJvbGxlckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlckNvbnN0cnVjdG9yOjpnZXRDb25z
dHJ1Y3REYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUpTUmVhZGFibGVTdHJlYW1Db250
cm9sbGVyKTogSGVscGVyIHJvdXRpbmVyIHRvIGNyZWF0ZSBhIFJlYWRhYmxlU3RyZWFtQ29udHJv
bGxlciB3aXRoIHRoZSBjb25zdHJ1Y3RvciBwcm9wZXJ0eSBpbiBpdHMgcHJvdG90eXBlLgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtSlNTb3VyY2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVhZGFibGVTdHJlYW1KU1NvdXJjZTo6c3RhcnQpOgorCiAyMDE1LTA0LTE0ICBQ
ZXIgQXJuZSBWb2xsYW4gIDxwZWF2b0BvdXRsb29rLmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9d
IFVucmV2aWV3ZWQgYnVpbGQgZml4IGFmdGVyIHIxODI3MDcuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlckN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlckN1
c3RvbS5jcHAKaW5kZXggZGUxNjEwODIzMmRkMjI4ZDg5YTJhNmM2NTM1MWY2NzQ3NTkyMGZiMS4u
NWE5OTJiNDgwNzZmMThhMjA3N2RiMDEwZWViYWFiNDQ2ZmE2YTVlMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJDdXN0b20u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1Db250
cm9sbGVyQ3VzdG9tLmNwcApAQCAtNjYsNiArNjYsNzAgQEAgSlNWYWx1ZSBKU1JlYWRhYmxlU3Ry
ZWFtQ29udHJvbGxlcjo6ZXJyb3IoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwogfQogCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTUmVh
ZGFibGVTdHJlYW1Db250cm9sbGVyKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICByZXR1cm4gdGhy
b3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlJlYWRh
YmxlU3RyZWFtQ29udHJvbGxlciBjb25zdHJ1Y3RvciBzaG91bGQgb25seSBiZSBjYWxsZWQgYnkg
UmVhZGFibGVTdHJlYW0iKSkpOworfQorCitjbGFzcyBKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxl
ckNvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVjdG9yT2JqZWN0IHsKK3ByaXZhdGU6Cisg
ICAgSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJDb25zdHJ1Y3RvcihKU0M6OlN0cnVjdHVyZSos
IEpTRE9NR2xvYmFsT2JqZWN0Kik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwg
SlNET01HbG9iYWxPYmplY3QqKTsKKworcHVibGljOgorICAgIHR5cGVkZWYgRE9NQ29uc3RydWN0
b3JPYmplY3QgQmFzZTsKKyAgICBzdGF0aWMgSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJDb25z
dHJ1Y3RvciogY3JlYXRlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQorICAgIHsKKyAgICAgICAgSlNSZWFkYWJs
ZVN0cmVhbUNvbnRyb2xsZXJDb25zdHJ1Y3RvciogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFs
bG9jYXRlQ2VsbDxKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlckNvbnN0cnVjdG9yPih2bS5oZWFw
KSkgSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJDb25zdHJ1Y3RvcihzdHJ1Y3R1cmUsIGdsb2Jh
bE9iamVjdCk7CisgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCk7
CisgICAgICAgIHJldHVybiBwdHI7CisgICAgfQorCisgICAgREVDTEFSRV9JTkZPOworICAgIHN0
YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBKU0M6OkpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCisgICAg
eworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIGluZm8oKSk7CisgICAgfQorICAgIHN0YXRpYyBKU0M6OkNvbnN0cnVjdFR5cGUgZ2V0Q29u
c3RydWN0RGF0YShKU0M6OkpTQ2VsbCosIEpTQzo6Q29uc3RydWN0RGF0YSYpOworfTsKKworY29u
c3QgQ2xhc3NJbmZvIEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQ29uc3RydWN0b3I6OnNfaW5m
byA9IHsgIlJlYWRhYmxlU3RyZWFtQ29uc3RydWN0b3IiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQ29uc3RydWN0b3IpIH07
CisKK0pTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQ29uc3RydWN0b3I6OkpTUmVhZGFibGVTdHJl
YW1Db250cm9sbGVyQ29uc3RydWN0b3IoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QpCisgICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdChzdHJ1Y3R1
cmUsIGdsb2JhbE9iamVjdCkKK3sKK30KKwordm9pZCBKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxl
ckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOworICAgIEFTU0VS
VChpbmhlcml0cyhpbmZvKCkpKTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMt
PnByb3RvdHlwZSwgSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXI6OmdldFByb3RvdHlwZSh2bSwg
Z2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKKyAgICBwdXREaXJlY3Qodm0s
IHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFJlYWRPbmx5IHwgRG9udERl
bGV0ZSB8IERvbnRFbnVtKTsKK30KKworQ29uc3RydWN0VHlwZSBKU1JlYWRhYmxlU3RyZWFtQ29u
dHJvbGxlckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERh
dGEmIGNvbnN0cnVjdERhdGEpCit7CisgICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24g
PSBjb25zdHJ1Y3RKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlcjsKKyAgICByZXR1cm4gQ29uc3Ry
dWN0VHlwZUhvc3Q7Cit9CisKK0pTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyKiBjcmVhdGVKU1Jl
YWRhYmxlU3RyZWFtQ29udHJvbGxlcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFJlYWRhYmxlSlNTdHJlYW0mIHN0cmVhbSkKK3sKKyAgICBSZWY8UmVh
ZGFibGVTdHJlYW1Db250cm9sbGVyPiBjb250cm9sbGVyID0gUmVhZGFibGVTdHJlYW1Db250cm9s
bGVyOjpjcmVhdGUoc3RyZWFtKTsKKyAgICBKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlcioganND
b250cm9sbGVyID0ganNEeW5hbWljQ2FzdDxKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlcio+KHRv
SlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBjb250cm9sbGVyKSk7CisgICAgSlNPYmplY3QqIHByb3Rv
dHlwZSA9IGpzQ29udHJvbGxlci0+Z2V0UHJvdG90eXBlKGV4ZWMtPnZtKCksIGdsb2JhbE9iamVj
dCk7CisgICAgQVNTRVJUKHByb3RvdHlwZSk7CisKKyAgICBJZGVudGlmaWVyIGlkID0gSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyhleGVjLCAiY29uc3RydWN0b3IiKTsKKyAgICBKU1ZhbHVlIGNvbnN0
cnVjdG9yID0gcHJvdG90eXBlLT5nZXQoZXhlYywgaWQpOworICAgIGlmICghanNEeW5hbWljQ2Fz
dDxKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlckNvbnN0cnVjdG9yKj4oY29uc3RydWN0b3IpKSB7
CisgICAgICAgIGNvbnN0cnVjdG9yID0gSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJDb25zdHJ1
Y3Rvcjo6Y3JlYXRlKGV4ZWMtPnZtKCksIEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQ29uc3Ry
dWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT52bSgpLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9i
amVjdC0+b2JqZWN0UHJvdG90eXBlKCkpLCBnbG9iYWxPYmplY3QpOworICAgICAgICBwcm90b3R5
cGUtPnB1dERpcmVjdChleGVjLT52bSgpLCBpZCwgY29uc3RydWN0b3IsIERvbnREZWxldGUgfCBS
ZWFkT25seSk7CisgICAgfQorICAgIHJldHVybiBqc0NvbnRyb2xsZXI7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9SZWFkYWJsZVN0cmVhbUpTU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1JlYWRhYmxlU3RyZWFtSlNTb3VyY2UuY3BwCmluZGV4IGZjZDNjYTBkZTI0OTMxNTFi
ZTAyMjFhNzM1NDc2NzEyNjczYmYyOTUuLjM4MWUzYTQ3YWJjOTJjN2ViOGUxZmI3MDA3MWNiNzdi
YWZiZGFmOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxl
U3RyZWFtSlNTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRh
YmxlU3RyZWFtSlNTb3VyY2UuY3BwCkBAIC05NiwxMiArOTYsMTQgQEAgc3RhdGljIHZvaWQgc3Rh
cnRSZWFkYWJsZVN0cmVhbUFzeW5jKFJlYWRhYmxlU3RyZWFtJiByZWFkYWJsZVN0cmVhbSkKICAg
ICB9KTsKIH0KIAorLy8gRnVuY3Rpb24gaW1wbGVtZW50ZWQgaW4gSlNSZWFkYWJsZVN0cmVhbUNv
bnRyb2xsZXJDdXN0b20uY3BwCitKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlciogY3JlYXRlSlNS
ZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIoRXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBS
ZWFkYWJsZUpTU3RyZWFtJik7CisKIHZvaWQgUmVhZGFibGVTdHJlYW1KU1NvdXJjZTo6c3RhcnQo
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTUmVhZGFibGVTdHJlYW0qIHJlYWRhYmxlU3RyZWFtKQog
ewogICAgIEpTTG9ja0hvbGRlciBsb2NrKGV4ZWMpOwogCi0gICAgUmVmPFJlYWRhYmxlU3RyZWFt
Q29udHJvbGxlcj4gY29udHJvbGxlciA9IFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlcjo6Y3JlYXRl
KHN0YXRpY19jYXN0PFJlYWRhYmxlSlNTdHJlYW0mPihyZWFkYWJsZVN0cmVhbS0+aW1wbCgpKSk7
Ci0gICAgbV9jb250cm9sbGVyLnNldChleGVjLT52bSgpLCBqc0R5bmFtaWNDYXN0PEpTUmVhZGFi
bGVTdHJlYW1Db250cm9sbGVyKj4odG9KUyhleGVjLCByZWFkYWJsZVN0cmVhbS0+Z2xvYmFsT2Jq
ZWN0KCksIGNvbnRyb2xsZXIpKSk7CisgICAgbV9jb250cm9sbGVyLnNldChleGVjLT52bSgpLCBj
cmVhdGVKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlcihleGVjLCByZWFkYWJsZVN0cmVhbS0+Z2xv
YmFsT2JqZWN0KCksIHN0YXRpY19jYXN0PFJlYWRhYmxlSlNTdHJlYW0mPihyZWFkYWJsZVN0cmVh
bS0+aW1wbCgpKSkpOwogCiAgICAgSlNWYWx1ZSBzdGFydEZ1bmN0aW9uID0gZ2V0UHJvcGVydHlG
cm9tT2JqZWN0KGV4ZWMsIG1fc291cmNlLmdldCgpLCAic3RhcnQiKTsKICAgICBpZiAoIXN0YXJ0
RnVuY3Rpb24uaXNGdW5jdGlvbigpKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMWQzYzNmNTRiYzI2N2Q0YmNmZTY0ODli
NDc5ZTQxYmI1ZTE1NzkwNC4uNGU4ZjllYzMzMzI2ODYzZjc3YWM5NjJhMTUzYTY2MzNhMTVlNjZm
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE1LTA0LTEwICBYYWJpZXIgUm9kcmlndWV6IENh
bHZhciA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4gYW5kIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFi
bGV0QGNyZi5jYW5vbi5mcj4KKworICAgICAgICBbU3RyZWFtcyBBUEldIEltcGxlbWVudCBSZWFk
YWJsZVN0cmVhbUNvbnRyb2xsZXIgY29uc3RydWN0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Mzc1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0uaHRtbDog
QWRkaW5nIGNvbnN0cnVjdG9yIGNoZWNrLgorICAgICAgICAqIHN0cmVhbXMvcmVmZXJlbmNlLWlt
cGxlbWVudGF0aW9uL2JyYW5kLWNoZWNrcy1leHBlY3RlZC50eHQ6CisKIDIwMTUtMDQtMTQgIE1h
cmNvcyBDaGF2YXJyw61hIFRlaWplaXJvICA8Y2hhdmFycmlhMTk5MUBnbWFpbC5jb20+CiAKICAg
ICAgICAgW0dUS10gR2FyZGVuaW5nIDE0dGggQXByaWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLmh0bWwgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRh
YmxlLXN0cmVhbS5odG1sCmluZGV4IDlmMjA1YmFkMWY1ZDYzYWY0OWVhYmViYTI1NTQ5OTVkNjcw
ZGIxMDkuLmVlMjA0ODNmZWVmZmI0OWRjNGI1MTA4YWQ5M2QyZTlmOWI2ZTg2NmEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0uaHRtbApAQCAtMTUsMTQgKzE1LDEzIEBAIHRl
c3QoZnVuY3Rpb24oKQogICAgICAgICBzdGFydDogZnVuY3Rpb24oY29udHJvbGxlcikgewogICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyh0aGlzLCBzb3VyY2UsICdzb3VyY2UgaXMgdGhpcyBkdXJp
bmcgc3RhcnQnKTsKIAotICAgICAgICAgICAgLy8gRklYTUU6IHdlIHNob3VsZCBhZGQgY29uc3Ry
dWN0b3IgYXQgc29tZSBwb2ludC4KLSAgICAgICAgICAgIHZhciBtZXRob2RzID0gWyAnY2xvc2Un
LCAnZW5xdWV1ZScsICdlcnJvcicgXTsKKyAgICAgICAgICAgIHZhciBtZXRob2RzID0gWyAnY2xv
c2UnLCAnY29uc3RydWN0b3InLCAnZW5xdWV1ZScsICdlcnJvcicgXTsKICAgICAgICAgICAgIHZh
ciBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihjb250cm9sbGVyKTsKIAogICAgICAgICAg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhPYmplY3Qu
Z2V0UHJvdG90eXBlT2YoY29udHJvbGxlcikpLnNvcnQoKSwgbWV0aG9kcywKICAgICAgICAgICAg
ICAgICAgICAgICAgICd0aGUgY29udHJvbGxlciBzaG91bGQgaGF2ZSB0aGUgcmlnaHQgbWV0aG9k
cycpOwogCi0gICAgICAgICAgICBmb3IgKHZhciBtIG9mIG1ldGhvZHMpIHsKKyAgICAgICAgICAg
IGZvciAodmFyIG0gb2YgWyAnY2xvc2UnLCAnZW5xdWV1ZScsICdlcnJvcicgXSkgewogICAgICAg
ICAgICAgICAgIHZhciBtZXRob2RQcm9wZXJ0aWVzID0gWyAnbGVuZ3RoJywgJ25hbWUnIF07CiAg
ICAgICAgICAgICAgICAgdmFyIHByb3BEZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihwcm90bywgbSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhwcm9wRGVzYy5l
bnVtZXJhYmxlLCB0cnVlLCAnbWV0aG9kIHNob3VsZCBiZSBlbnVtZXJhYmxlJyk7CkBAIC0zNSw3
ICszNCw3IEBAIHRlc3QoZnVuY3Rpb24oKQogICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb250
cm9sbGVyLmNsb3NlLmxlbmd0aCwgMCwgJ2Nsb3NlIHNob3VsZCBoYXZlIG5vIHBhcmFtZXRlcnMn
KTsKICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY29udHJvbGxlci5lbnF1ZXVlLmxlbmd0aCwg
MSwgJ2VucXVldWUgc2hvdWxkIGhhdmUgMSBwYXJhbWV0ZXInKTsKICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoY29udHJvbGxlci5lcnJvci5sZW5ndGgsIDEsICdlcnJvciBzaG91bGQgaGF2ZSAx
IHBhcmFtZXRlcicpOwotICAgICAgICAgICAgLy9hc3NlcnRfZXF1YWxzKGNvbnRyb2xsZXIuY29u
c3RydWN0b3IubGVuZ3RoLCAxLCAnY29uc3RydWN0b3Igc2hvdWxkIGhhdmUgMSBwYXJhbWV0ZXJz
Jyk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvbnRyb2xsZXIuY29uc3RydWN0b3IubGVu
Z3RoLCAxLCAnY29uc3RydWN0b3Igc2hvdWxkIGhhdmUgMSBwYXJhbWV0ZXJzJyk7CiAKICAgICAg
ICAgICAgIGlzU3RhcnRDYWxsZWQgPSB0cnVlOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9icmFuZC1jaGVja3MtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24v
YnJhbmQtY2hlY2tzLWV4cGVjdGVkLnR4dAppbmRleCAzM2ZhMTRiYjhiYmFkYmQ2YzQ4YWYyZDIw
NzAwNzU1Y2MxZTBhZjkxLi5lNWU3ZjNmMzNiOWMyNGJlYjMzYjVjYWJjNzI2NDE1MjNmNTljN2Jh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlv
bi9icmFuZC1jaGVja3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVm
ZXJlbmNlLWltcGxlbWVudGF0aW9uL2JyYW5kLWNoZWNrcy1leHBlY3RlZC50eHQKQEAgLTYsOCAr
Niw4IEBAIEZBSUwgUmVhZGFibGVTdHJlYW1SZWFkZXIucHJvdG90eXBlLmNsb3NlZCBlbmZvcmNl
cyBhIGJyYW5kIGNoZWNrIHVuZGVmaW5lZCBpcyBuCiBGQUlMIFJlYWRhYmxlU3RyZWFtUmVhZGVy
LnByb3RvdHlwZS5jYW5jZWwgZW5mb3JjZXMgYSBicmFuZCBjaGVjayBDYW4gb25seSBjYWxsIFJl
YWRhYmxlU3RyZWFtUmVhZGVyLmNhbmNlbCBvbiBpbnN0YW5jZXMgb2YgUmVhZGFibGVTdHJlYW1S
ZWFkZXIKIEZBSUwgUmVhZGFibGVTdHJlYW1SZWFkZXIucHJvdG90eXBlLnJlYWQgZW5mb3JjZXMg
YSBicmFuZCBjaGVjayBDYW4gb25seSBjYWxsIFJlYWRhYmxlU3RyZWFtUmVhZGVyLnJlYWQgb24g
aW5zdGFuY2VzIG9mIFJlYWRhYmxlU3RyZWFtUmVhZGVyCiBQQVNTIFJlYWRhYmxlU3RyZWFtUmVh
ZGVyLnByb3RvdHlwZS5yZWxlYXNlTG9jayBlbmZvcmNlcyBhIGJyYW5kIGNoZWNrIAotRkFJTCBS
ZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIgZW5mb3JjZXMgYSBicmFuZCBjaGVjayBvbiBpdHMgYXJn
dW1lbnQgYXNzZXJ0X3Rocm93czogQ29uc3RydWN0aW5nIGEgUmVhZGFibGVTdHJlYW1Db250cm9s
bGVyIHNob3VsZCB0aHJvdyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBuZXcgUmVhZGFibGVTdHJl
YW1Db250cm9sbGVyKGZha2VSZWFkYWJsZVN0Li4uIiBkaWQgbm90IHRocm93Ci1GQUlMIFJlYWRh
YmxlU3RyZWFtQ29udHJvbGxlciBjYW4ndCBiZSBnaXZlbiBhIGZ1bGx5LWNvbnN0cnVjdGVkIFJl
YWRhYmxlU3RyZWFtIGFzc2VydF90aHJvd3M6IENvbnN0cnVjdGluZyBhIFJlYWRhYmxlU3RyZWFt
Q29udHJvbGxlciBzaG91bGQgdGhyb3cgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgbmV3IFJlYWRh
YmxlU3RyZWFtQ29udHJvbGxlcihyZWFsUmVhZGFibGVTdC4uLiIgZGlkIG5vdCB0aHJvdworUEFT
UyBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIgZW5mb3JjZXMgYSBicmFuZCBjaGVjayBvbiBpdHMg
YXJndW1lbnQgCitQQVNTIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciBjYW4ndCBiZSBnaXZlbiBh
IGZ1bGx5LWNvbnN0cnVjdGVkIFJlYWRhYmxlU3RyZWFtIAogUEFTUyBSZWFkYWJsZVN0cmVhbUNv
bnRyb2xsZXIucHJvdG90eXBlLmNsb3NlIGVuZm9yY2VzIGEgYnJhbmQgY2hlY2sgCiBQQVNTIFJl
YWRhYmxlU3RyZWFtQ29udHJvbGxlci5wcm90b3R5cGUuZW5xdWV1ZSBlbmZvcmNlcyBhIGJyYW5k
IGNoZWNrIAogUEFTUyBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIucHJvdG90eXBlLmVycm9yIGVu
Zm9yY2VzIGEgYnJhbmQgY2hlY2sgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251024</attachid>
            <date>2015-04-17 08:13:02 -0700</date>
            <delta_ts>2015-05-28 13:48:26 -0700</delta_ts>
            <desc>Improving test coverage</desc>
            <filename>bug-143752-20150417171201.patch</filename>
            <type>text/plain</type>
            <size>11757</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyNzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzAzZDgwNDRiYzNjYmZk
MzFhOWIwMzNlNWI5NWMxNjhiNzkzNDhjYi4uNTgwYjg1NWY2ZmEwYzMwYjQ1NTMyNjU4YWRiMjk1
ZmI3Mzk0OGRlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE1LTA0LTEwICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4gYW5kIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KKworICAgICAgICBbU3RyZWFtcyBBUEld
IEltcGxlbWVudCBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIgY29uc3RydWN0b3IKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Mzc1MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyBkeW5hbWljYWxs
eSB0byBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIgcHJvdG90eXBlIGEgY29uc3RydWN0b3IgcHJv
cGVydHkuCisgICAgICAgIFRoZSBjb25zdHJ1Y3RvciBhbHdheXMgdGhyb3dzIGV4ZXB0aW9ucy4K
KworICAgICAgICBDb3ZlcmVkIGJ5IHJlYmFzZWQgdGVzdHMuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlckN1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjb25zdHJ1Y3RKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlcik6IENvbnN0cnVjdG9yIHRo
cm93aW5nIGV4Y2VwdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkpTUmVhZGFibGVTdHJlYW1Db250
cm9sbGVyQ29uc3RydWN0b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1JlYWRhYmxl
U3RyZWFtQ29udHJvbGxlckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAo
V2ViQ29yZTo6SlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJDb25zdHJ1Y3Rvcjo6SlNSZWFkYWJs
ZVN0cmVhbUNvbnRyb2xsZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1JlYWRh
YmxlU3RyZWFtQ29udHJvbGxlckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlckNvbnN0cnVjdG9yOjpnZXRDb25z
dHJ1Y3REYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUpTUmVhZGFibGVTdHJlYW1Db250
cm9sbGVyKTogSGVscGVyIHJvdXRpbmVyIHRvIGNyZWF0ZSBhIFJlYWRhYmxlU3RyZWFtQ29udHJv
bGxlciB3aXRoIHRoZSBjb25zdHJ1Y3RvciBwcm9wZXJ0eSBpbiBpdHMgcHJvdG90eXBlLgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtSlNTb3VyY2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVhZGFibGVTdHJlYW1KU1NvdXJjZTo6c3RhcnQpOgorCiAyMDE1LTA0LTE0ICBQ
ZXIgQXJuZSBWb2xsYW4gIDxwZWF2b0BvdXRsb29rLmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9d
IFVucmV2aWV3ZWQgYnVpbGQgZml4IGFmdGVyIHIxODI3MDcuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlckN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlckN1
c3RvbS5jcHAKaW5kZXggZGUxNjEwODIzMmRkMjI4ZDg5YTJhNmM2NTM1MWY2NzQ3NTkyMGZiMS4u
NWE5OTJiNDgwNzZmMThhMjA3N2RiMDEwZWViYWFiNDQ2ZmE2YTVlMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJDdXN0b20u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1Db250
cm9sbGVyQ3VzdG9tLmNwcApAQCAtNjYsNiArNjYsNzAgQEAgSlNWYWx1ZSBKU1JlYWRhYmxlU3Ry
ZWFtQ29udHJvbGxlcjo6ZXJyb3IoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwogfQogCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTUmVh
ZGFibGVTdHJlYW1Db250cm9sbGVyKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICByZXR1cm4gdGhy
b3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlJlYWRh
YmxlU3RyZWFtQ29udHJvbGxlciBjb25zdHJ1Y3RvciBzaG91bGQgb25seSBiZSBjYWxsZWQgYnkg
UmVhZGFibGVTdHJlYW0iKSkpOworfQorCitjbGFzcyBKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxl
ckNvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVjdG9yT2JqZWN0IHsKK3ByaXZhdGU6Cisg
ICAgSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJDb25zdHJ1Y3RvcihKU0M6OlN0cnVjdHVyZSos
IEpTRE9NR2xvYmFsT2JqZWN0Kik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwg
SlNET01HbG9iYWxPYmplY3QqKTsKKworcHVibGljOgorICAgIHR5cGVkZWYgRE9NQ29uc3RydWN0
b3JPYmplY3QgQmFzZTsKKyAgICBzdGF0aWMgSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJDb25z
dHJ1Y3RvciogY3JlYXRlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQorICAgIHsKKyAgICAgICAgSlNSZWFkYWJs
ZVN0cmVhbUNvbnRyb2xsZXJDb25zdHJ1Y3RvciogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFs
bG9jYXRlQ2VsbDxKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlckNvbnN0cnVjdG9yPih2bS5oZWFw
KSkgSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJDb25zdHJ1Y3RvcihzdHJ1Y3R1cmUsIGdsb2Jh
bE9iamVjdCk7CisgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCk7
CisgICAgICAgIHJldHVybiBwdHI7CisgICAgfQorCisgICAgREVDTEFSRV9JTkZPOworICAgIHN0
YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBKU0M6OkpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCisgICAg
eworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIGluZm8oKSk7CisgICAgfQorICAgIHN0YXRpYyBKU0M6OkNvbnN0cnVjdFR5cGUgZ2V0Q29u
c3RydWN0RGF0YShKU0M6OkpTQ2VsbCosIEpTQzo6Q29uc3RydWN0RGF0YSYpOworfTsKKworY29u
c3QgQ2xhc3NJbmZvIEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQ29uc3RydWN0b3I6OnNfaW5m
byA9IHsgIlJlYWRhYmxlU3RyZWFtQ29uc3RydWN0b3IiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQ29uc3RydWN0b3IpIH07
CisKK0pTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQ29uc3RydWN0b3I6OkpTUmVhZGFibGVTdHJl
YW1Db250cm9sbGVyQ29uc3RydWN0b3IoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QpCisgICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdChzdHJ1Y3R1
cmUsIGdsb2JhbE9iamVjdCkKK3sKK30KKwordm9pZCBKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxl
ckNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOworICAgIEFTU0VS
VChpbmhlcml0cyhpbmZvKCkpKTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMt
PnByb3RvdHlwZSwgSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXI6OmdldFByb3RvdHlwZSh2bSwg
Z2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKKyAgICBwdXREaXJlY3Qodm0s
IHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIFJlYWRPbmx5IHwgRG9udERl
bGV0ZSB8IERvbnRFbnVtKTsKK30KKworQ29uc3RydWN0VHlwZSBKU1JlYWRhYmxlU3RyZWFtQ29u
dHJvbGxlckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERh
dGEmIGNvbnN0cnVjdERhdGEpCit7CisgICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24g
PSBjb25zdHJ1Y3RKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlcjsKKyAgICByZXR1cm4gQ29uc3Ry
dWN0VHlwZUhvc3Q7Cit9CisKK0pTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyKiBjcmVhdGVKU1Jl
YWRhYmxlU3RyZWFtQ29udHJvbGxlcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFJlYWRhYmxlSlNTdHJlYW0mIHN0cmVhbSkKK3sKKyAgICBSZWY8UmVh
ZGFibGVTdHJlYW1Db250cm9sbGVyPiBjb250cm9sbGVyID0gUmVhZGFibGVTdHJlYW1Db250cm9s
bGVyOjpjcmVhdGUoc3RyZWFtKTsKKyAgICBKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlcioganND
b250cm9sbGVyID0ganNEeW5hbWljQ2FzdDxKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlcio+KHRv
SlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBjb250cm9sbGVyKSk7CisgICAgSlNPYmplY3QqIHByb3Rv
dHlwZSA9IGpzQ29udHJvbGxlci0+Z2V0UHJvdG90eXBlKGV4ZWMtPnZtKCksIGdsb2JhbE9iamVj
dCk7CisgICAgQVNTRVJUKHByb3RvdHlwZSk7CisKKyAgICBJZGVudGlmaWVyIGlkID0gSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyhleGVjLCAiY29uc3RydWN0b3IiKTsKKyAgICBKU1ZhbHVlIGNvbnN0
cnVjdG9yID0gcHJvdG90eXBlLT5nZXQoZXhlYywgaWQpOworICAgIGlmICghanNEeW5hbWljQ2Fz
dDxKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlckNvbnN0cnVjdG9yKj4oY29uc3RydWN0b3IpKSB7
CisgICAgICAgIGNvbnN0cnVjdG9yID0gSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJDb25zdHJ1
Y3Rvcjo6Y3JlYXRlKGV4ZWMtPnZtKCksIEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQ29uc3Ry
dWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT52bSgpLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9i
amVjdC0+b2JqZWN0UHJvdG90eXBlKCkpLCBnbG9iYWxPYmplY3QpOworICAgICAgICBwcm90b3R5
cGUtPnB1dERpcmVjdChleGVjLT52bSgpLCBpZCwgY29uc3RydWN0b3IsIERvbnREZWxldGUgfCBS
ZWFkT25seSk7CisgICAgfQorICAgIHJldHVybiBqc0NvbnRyb2xsZXI7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9SZWFkYWJsZVN0cmVhbUpTU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1JlYWRhYmxlU3RyZWFtSlNTb3VyY2UuY3BwCmluZGV4IGZjZDNjYTBkZTI0OTMxNTFi
ZTAyMjFhNzM1NDc2NzEyNjczYmYyOTUuLjM4MWUzYTQ3YWJjOTJjN2ViOGUxZmI3MDA3MWNiNzdi
YWZiZGFmOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxl
U3RyZWFtSlNTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRh
YmxlU3RyZWFtSlNTb3VyY2UuY3BwCkBAIC05NiwxMiArOTYsMTQgQEAgc3RhdGljIHZvaWQgc3Rh
cnRSZWFkYWJsZVN0cmVhbUFzeW5jKFJlYWRhYmxlU3RyZWFtJiByZWFkYWJsZVN0cmVhbSkKICAg
ICB9KTsKIH0KIAorLy8gRnVuY3Rpb24gaW1wbGVtZW50ZWQgaW4gSlNSZWFkYWJsZVN0cmVhbUNv
bnRyb2xsZXJDdXN0b20uY3BwCitKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlciogY3JlYXRlSlNS
ZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIoRXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBS
ZWFkYWJsZUpTU3RyZWFtJik7CisKIHZvaWQgUmVhZGFibGVTdHJlYW1KU1NvdXJjZTo6c3RhcnQo
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTUmVhZGFibGVTdHJlYW0qIHJlYWRhYmxlU3RyZWFtKQog
ewogICAgIEpTTG9ja0hvbGRlciBsb2NrKGV4ZWMpOwogCi0gICAgUmVmPFJlYWRhYmxlU3RyZWFt
Q29udHJvbGxlcj4gY29udHJvbGxlciA9IFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlcjo6Y3JlYXRl
KHN0YXRpY19jYXN0PFJlYWRhYmxlSlNTdHJlYW0mPihyZWFkYWJsZVN0cmVhbS0+aW1wbCgpKSk7
Ci0gICAgbV9jb250cm9sbGVyLnNldChleGVjLT52bSgpLCBqc0R5bmFtaWNDYXN0PEpTUmVhZGFi
bGVTdHJlYW1Db250cm9sbGVyKj4odG9KUyhleGVjLCByZWFkYWJsZVN0cmVhbS0+Z2xvYmFsT2Jq
ZWN0KCksIGNvbnRyb2xsZXIpKSk7CisgICAgbV9jb250cm9sbGVyLnNldChleGVjLT52bSgpLCBj
cmVhdGVKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlcihleGVjLCByZWFkYWJsZVN0cmVhbS0+Z2xv
YmFsT2JqZWN0KCksIHN0YXRpY19jYXN0PFJlYWRhYmxlSlNTdHJlYW0mPihyZWFkYWJsZVN0cmVh
bS0+aW1wbCgpKSkpOwogCiAgICAgSlNWYWx1ZSBzdGFydEZ1bmN0aW9uID0gZ2V0UHJvcGVydHlG
cm9tT2JqZWN0KGV4ZWMsIG1fc291cmNlLmdldCgpLCAic3RhcnQiKTsKICAgICBpZiAoIXN0YXJ0
RnVuY3Rpb24uaXNGdW5jdGlvbigpKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMWQzYzNmNTRiYzI2N2Q0YmNmZTY0ODli
NDc5ZTQxYmI1ZTE1NzkwNC4uNGU4ZjllYzMzMzI2ODYzZjc3YWM5NjJhMTUzYTY2MzNhMTVlNjZm
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE1LTA0LTEwICBYYWJpZXIgUm9kcmlndWV6IENh
bHZhciA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4gYW5kIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFi
bGV0QGNyZi5jYW5vbi5mcj4KKworICAgICAgICBbU3RyZWFtcyBBUEldIEltcGxlbWVudCBSZWFk
YWJsZVN0cmVhbUNvbnRyb2xsZXIgY29uc3RydWN0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Mzc1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0uaHRtbDog
QWRkaW5nIGNvbnN0cnVjdG9yIGNoZWNrLgorICAgICAgICAqIHN0cmVhbXMvcmVmZXJlbmNlLWlt
cGxlbWVudGF0aW9uL2JyYW5kLWNoZWNrcy1leHBlY3RlZC50eHQ6CisKIDIwMTUtMDQtMTQgIE1h
cmNvcyBDaGF2YXJyw61hIFRlaWplaXJvICA8Y2hhdmFycmlhMTk5MUBnbWFpbC5jb20+CiAKICAg
ICAgICAgW0dUS10gR2FyZGVuaW5nIDE0dGggQXByaWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLmh0bWwgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRh
YmxlLXN0cmVhbS5odG1sCmluZGV4IDlmMjA1YmFkMWY1ZDYzYWY0OWVhYmViYTI1NTQ5OTVkNjcw
ZGIxMDkuLjUyZTIxYjU4ZTlhY2I4NWM0MjkwNGY4MTJlYWViYThiMTQ5YzI0OTAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0uaHRtbApAQCAtMTUsMTQgKzE1LDEzIEBAIHRl
c3QoZnVuY3Rpb24oKQogICAgICAgICBzdGFydDogZnVuY3Rpb24oY29udHJvbGxlcikgewogICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyh0aGlzLCBzb3VyY2UsICdzb3VyY2UgaXMgdGhpcyBkdXJp
bmcgc3RhcnQnKTsKIAotICAgICAgICAgICAgLy8gRklYTUU6IHdlIHNob3VsZCBhZGQgY29uc3Ry
dWN0b3IgYXQgc29tZSBwb2ludC4KLSAgICAgICAgICAgIHZhciBtZXRob2RzID0gWyAnY2xvc2Un
LCAnZW5xdWV1ZScsICdlcnJvcicgXTsKKyAgICAgICAgICAgIHZhciBtZXRob2RzID0gWyAnY2xv
c2UnLCAnY29uc3RydWN0b3InLCAnZW5xdWV1ZScsICdlcnJvcicgXTsKICAgICAgICAgICAgIHZh
ciBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihjb250cm9sbGVyKTsKIAogICAgICAgICAg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhPYmplY3Qu
Z2V0UHJvdG90eXBlT2YoY29udHJvbGxlcikpLnNvcnQoKSwgbWV0aG9kcywKICAgICAgICAgICAg
ICAgICAgICAgICAgICd0aGUgY29udHJvbGxlciBzaG91bGQgaGF2ZSB0aGUgcmlnaHQgbWV0aG9k
cycpOwogCi0gICAgICAgICAgICBmb3IgKHZhciBtIG9mIG1ldGhvZHMpIHsKKyAgICAgICAgICAg
IGZvciAodmFyIG0gb2YgWyAnY2xvc2UnLCAnZW5xdWV1ZScsICdlcnJvcicgXSkgewogICAgICAg
ICAgICAgICAgIHZhciBtZXRob2RQcm9wZXJ0aWVzID0gWyAnbGVuZ3RoJywgJ25hbWUnIF07CiAg
ICAgICAgICAgICAgICAgdmFyIHByb3BEZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihwcm90bywgbSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhwcm9wRGVzYy5l
bnVtZXJhYmxlLCB0cnVlLCAnbWV0aG9kIHNob3VsZCBiZSBlbnVtZXJhYmxlJyk7CkBAIC0zNSwx
MiArMzQsMTcgQEAgdGVzdChmdW5jdGlvbigpCiAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNv
bnRyb2xsZXIuY2xvc2UubGVuZ3RoLCAwLCAnY2xvc2Ugc2hvdWxkIGhhdmUgbm8gcGFyYW1ldGVy
cycpOwogICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb250cm9sbGVyLmVucXVldWUubGVuZ3Ro
LCAxLCAnZW5xdWV1ZSBzaG91bGQgaGF2ZSAxIHBhcmFtZXRlcicpOwogICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhjb250cm9sbGVyLmVycm9yLmxlbmd0aCwgMSwgJ2Vycm9yIHNob3VsZCBoYXZl
IDEgcGFyYW1ldGVyJyk7Ci0gICAgICAgICAgICAvL2Fzc2VydF9lcXVhbHMoY29udHJvbGxlci5j
b25zdHJ1Y3Rvci5sZW5ndGgsIDEsICdjb25zdHJ1Y3RvciBzaG91bGQgaGF2ZSAxIHBhcmFtZXRl
cnMnKTsKLQorICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb250cm9sbGVyLmNvbnN0cnVjdG9y
Lmxlbmd0aCwgMSwgJ2NvbnN0cnVjdG9yIHNob3VsZCBoYXZlIDEgcGFyYW1ldGVycycpOworCisg
ICAgICAgICAgICBhc3NlcnRfdHJ1ZShPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE9i
amVjdC5nZXRQcm90b3R5cGVPZihjb250cm9sbGVyKSwgImNvbnN0cnVjdG9yIikuZW51bWVyYWJs
ZSk7CisgICAgICAgICAgICBhc3NlcnRfZmFsc2UoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihPYmplY3QuZ2V0UHJvdG90eXBlT2YoY29udHJvbGxlciksICJjb25zdHJ1Y3RvciIpLndy
aXRhYmxlKTsKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZShPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKE9iamVjdC5nZXRQcm90b3R5cGVPZihjb250cm9sbGVyKSwgImNvbnN0cnVjdG9y
IikuY29uZmlndXJhYmxlKTsKKyAgICAgICAgICAgIGFzc2VydF9mYWxzZShPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKE9iamVjdC5nZXRQcm90b3R5cGVPZihjb250cm9sbGVyKSwgImNv
bnN0cnVjdG9yIikuaGFzT3duUHJvcGVydHkoInNldCIpKTsKKyAgICAgICAgICAgIGFzc2VydF9m
YWxzZShPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE9iamVjdC5nZXRQcm90b3R5cGVP
Zihjb250cm9sbGVyKSwgImNvbnN0cnVjdG9yIikuaGFzT3duUHJvcGVydHkoInNldCIpKTsKKyAK
ICAgICAgICAgICAgIGlzU3RhcnRDYWxsZWQgPSB0cnVlOwogICAgICAgICB9CiAgICAgfTsKLQog
ICAgIHZhciBycyA9IG5ldyBSZWFkYWJsZVN0cmVhbShzb3VyY2UpOwogICAgIGFzc2VydF90cnVl
KGlzU3RhcnRDYWxsZWQpOwogfSwgJ1JlYWRhYmxlU3RyZWFtIHN0YXJ0IHNob3VsZCBiZSBjYWxs
ZWQgd2l0aCB0aGUgcHJvcGVyIHBhcmFtZXRlcnMnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2JyYW5kLWNoZWNrcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9icmFuZC1j
aGVja3MtZXhwZWN0ZWQudHh0CmluZGV4IDMzZmExNGJiOGJiYWRiZDZjNDhhZjJkMjA3MDA3NTVj
YzFlMGFmOTEuLmU1ZTdmM2YzM2I5YzI0YmViMzNiNWNhYmM3MjY0MTUyM2Y1OWM3YmEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2JyYW5k
LWNoZWNrcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2Ut
aW1wbGVtZW50YXRpb24vYnJhbmQtY2hlY2tzLWV4cGVjdGVkLnR4dApAQCAtNiw4ICs2LDggQEAg
RkFJTCBSZWFkYWJsZVN0cmVhbVJlYWRlci5wcm90b3R5cGUuY2xvc2VkIGVuZm9yY2VzIGEgYnJh
bmQgY2hlY2sgdW5kZWZpbmVkIGlzIG4KIEZBSUwgUmVhZGFibGVTdHJlYW1SZWFkZXIucHJvdG90
eXBlLmNhbmNlbCBlbmZvcmNlcyBhIGJyYW5kIGNoZWNrIENhbiBvbmx5IGNhbGwgUmVhZGFibGVT
dHJlYW1SZWFkZXIuY2FuY2VsIG9uIGluc3RhbmNlcyBvZiBSZWFkYWJsZVN0cmVhbVJlYWRlcgog
RkFJTCBSZWFkYWJsZVN0cmVhbVJlYWRlci5wcm90b3R5cGUucmVhZCBlbmZvcmNlcyBhIGJyYW5k
IGNoZWNrIENhbiBvbmx5IGNhbGwgUmVhZGFibGVTdHJlYW1SZWFkZXIucmVhZCBvbiBpbnN0YW5j
ZXMgb2YgUmVhZGFibGVTdHJlYW1SZWFkZXIKIFBBU1MgUmVhZGFibGVTdHJlYW1SZWFkZXIucHJv
dG90eXBlLnJlbGVhc2VMb2NrIGVuZm9yY2VzIGEgYnJhbmQgY2hlY2sgCi1GQUlMIFJlYWRhYmxl
U3RyZWFtQ29udHJvbGxlciBlbmZvcmNlcyBhIGJyYW5kIGNoZWNrIG9uIGl0cyBhcmd1bWVudCBh
c3NlcnRfdGhyb3dzOiBDb25zdHJ1Y3RpbmcgYSBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIgc2hv
dWxkIHRocm93IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IG5ldyBSZWFkYWJsZVN0cmVhbUNvbnRy
b2xsZXIoZmFrZVJlYWRhYmxlU3QuLi4iIGRpZCBub3QgdGhyb3cKLUZBSUwgUmVhZGFibGVTdHJl
YW1Db250cm9sbGVyIGNhbid0IGJlIGdpdmVuIGEgZnVsbHktY29uc3RydWN0ZWQgUmVhZGFibGVT
dHJlYW0gYXNzZXJ0X3Rocm93czogQ29uc3RydWN0aW5nIGEgUmVhZGFibGVTdHJlYW1Db250cm9s
bGVyIHNob3VsZCB0aHJvdyBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBuZXcgUmVhZGFibGVTdHJl
YW1Db250cm9sbGVyKHJlYWxSZWFkYWJsZVN0Li4uIiBkaWQgbm90IHRocm93CitQQVNTIFJlYWRh
YmxlU3RyZWFtQ29udHJvbGxlciBlbmZvcmNlcyBhIGJyYW5kIGNoZWNrIG9uIGl0cyBhcmd1bWVu
dCAKK1BBU1MgUmVhZGFibGVTdHJlYW1Db250cm9sbGVyIGNhbid0IGJlIGdpdmVuIGEgZnVsbHkt
Y29uc3RydWN0ZWQgUmVhZGFibGVTdHJlYW0gCiBQQVNTIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxl
ci5wcm90b3R5cGUuY2xvc2UgZW5mb3JjZXMgYSBicmFuZCBjaGVjayAKIFBBU1MgUmVhZGFibGVT
dHJlYW1Db250cm9sbGVyLnByb3RvdHlwZS5lbnF1ZXVlIGVuZm9yY2VzIGEgYnJhbmQgY2hlY2sg
CiBQQVNTIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5wcm90b3R5cGUuZXJyb3IgZW5mb3JjZXMg
YSBicmFuZCBjaGVjayAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253860</attachid>
            <date>2015-05-28 13:48:32 -0700</date>
            <delta_ts>2015-05-31 03:35:59 -0700</delta_ts>
            <desc>Using CustomConstructor</desc>
            <filename>bug-143752-20150528224814.patch</filename>
            <type>text/plain</type>
            <size>6832</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0ODU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWRlOTQ2MDMxOWQ1Y2Rm
ZTg4MTgwZjllOGVkMTEzNThmMWFlNDMxNy4uZGUyYzdmZWEzMWYzNzUzMzA4NjljNTUwMDkyYTRk
ODA4MTM0NTQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTA1LTI4ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+IGFuZCBZb3Vlbm4gRmFi
bGV0IDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KKworICAgICAgICBbU3RyZWFtcyBBUEld
IEltcGxlbWVudCBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIgY29uc3RydWN0b3IKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Mzc1MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgcmViYXNl
ZCB0ZXN0IGFuZCBleHBlY3RhdGlvbi4KKworICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFk
YWJsZVN0cmVhbUNvbnRyb2xsZXIuaWRsOiBBZGRpbmcgQ3VzdG9tQ29uc3RydWN0b3IuCisgICAg
ICAgICogYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0SlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIpOiBU
aHJvd3MgYW4gZXhjZXB0aW9uIHdoZW5ldmVyIGNhbGxlZC4KKwogMjAxNS0wNS0yNyAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgogCiAgICAgICAgIE1lZGlhRGV2
aWNlcy5nZXRVc2VyTWVkaWEgc2hvdWxkIHJlamVjdCBwcm9taXNlIGluc3RlYWQgb2YgdGhyb3dp
bmcgZXhjZXB0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1z
L1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0
cmVhbXMvUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmlkbAppbmRleCA1NzY3YzRiOTUxZTUxYmFh
NGMxZThhNTM5NmUxNDY5ZDljZjczYWZiLi43YTk2YTBlMGY5NWVlY2YwODZkYzMxMTI5ZTA2ZTVj
MGMzNmNhYWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVh
ZGFibGVTdHJlYW1Db250cm9sbGVyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0
cmVhbXMvUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmlkbApAQCAtMjksNiArMjksNyBAQAogCiBb
CiAgICAgQ29uZGl0aW9uYWw9U1RSRUFNU19BUEksCisgICAgQ3VzdG9tQ29uc3RydWN0b3IsCiAg
ICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKICAgICBOb0ludGVyZmFjZU9iamVjdAogXSBp
bnRlcmZhY2UgUmVhZGFibGVTdHJlYW1Db250cm9sbGVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQ3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyQ3Vz
dG9tLmNwcAppbmRleCA0YjVkNzg4YWRjNDZmNjNlZDhkNTg3MjJhZTU4ZTZmZjAyMjMyMTcyLi5k
OTFkMzNiMjViYzEwZTM4NWRiNDNjNjQyZGQxOTQyOGM5ZmFkODc1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlckN1c3RvbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbUNvbnRy
b2xsZXJDdXN0b20uY3BwCkBAIC02Niw2ICs2NiwxMSBAQCBKU1ZhbHVlIEpTUmVhZGFibGVTdHJl
YW1Db250cm9sbGVyOjplcnJvcihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CiB9CiAKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNSZWFk
YWJsZVN0cmVhbUNvbnRyb2xsZXIoRXhlY1N0YXRlKiBleGVjKQoreworICAgIHJldHVybiB0aHJv
d1ZNRXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiUmVhZGFi
bGVTdHJlYW1Db250cm9sbGVyIGNvbnN0cnVjdG9yIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVj
dGx5IikpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBi
MmVlNTg2ZDRlNWVhMTE1YzM2YmFjNDcwNDNlM2U5ZmM0ODQxOWY2Li45NzA3Mzg0NzAzNDMwNGM2
OGRhZTM5NWQ4NTlmMGYzYTVhMGFjZjcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTUtMDUt
MjggIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4gYW5kIFlv
dWVubiBGYWJsZXQgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgorCisgICAgICAgIFtTdHJl
YW1zIEFQSV0gSW1wbGVtZW50IFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciBjb25zdHJ1Y3Rvcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQzNzUyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlYW1z
L3JlYWRhYmxlLXN0cmVhbS5odG1sOiBjaGVja2luZyBjb250cm9sbGVyIGNvbnN0cnVjdG9yLgor
ICAgICAgICAqIHN0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2JyYW5kLWNoZWNrcy1l
eHBlY3RlZC50eHQ6CisKIDIwMTUtMDUtMjcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0
QGNyZi5jYW5vbi5mcj4KIAogICAgICAgICBNZWRpYURldmljZXMuZ2V0VXNlck1lZGlhIHNob3Vs
ZCByZWplY3QgcHJvbWlzZSBpbnN0ZWFkIG9mIHRocm93aW5nIGV4Y2VwdGlvbnMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLmh0bWwgYi9MYXlvdXRUZXN0
cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS5odG1sCmluZGV4IDQ0ZTg2NTE3OWE4YzNkNjBlNjYy
MTA1MDI3YjJhYTNiZTBjYmMwNzMuLjc0MWVmODg5MzZlODM1MWRkNWZkYmY5NzYwYmNkNjNhYWJl
MTdhZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0uaHRtbApAQCAtMTYs
MTMgKzE2LDEzIEBAIHRlc3QoZnVuY3Rpb24oKQogICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh0
aGlzLCBzb3VyY2UsICdzb3VyY2UgaXMgdGhpcyBkdXJpbmcgc3RhcnQnKTsKIAogICAgICAgICAg
ICAgLy8gRklYTUU6IFdlIHNob3VsZCBhZGQgY29uc3RydWN0b3IgYXQgc29tZSBwb2ludC4KLSAg
ICAgICAgICAgIHZhciBtZXRob2RzID0gWyAnY2xvc2UnLCAnZW5xdWV1ZScsICdlcnJvcicgXTsK
KyAgICAgICAgICAgIHZhciBtZXRob2RzID0gWyAnY2xvc2UnLCAnY29uc3RydWN0b3InLCAnZW5x
dWV1ZScsICdlcnJvcicgXTsKICAgICAgICAgICAgIHZhciBwcm90byA9IE9iamVjdC5nZXRQcm90
b3R5cGVPZihjb250cm9sbGVyKTsKIAogICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhP
YmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhPYmplY3QuZ2V0UHJvdG90eXBlT2YoY29udHJvbGxl
cikpLnNvcnQoKSwgbWV0aG9kcywKICAgICAgICAgICAgICAgICAgICAgICAgICd0aGUgY29udHJv
bGxlciBzaG91bGQgaGF2ZSB0aGUgcmlnaHQgbWV0aG9kcycpOwogCi0gICAgICAgICAgICBmb3Ig
KHZhciBtIG9mIG1ldGhvZHMpIHsKKyAgICAgICAgICAgIGZvciAodmFyIG0gb2YgWyAnY2xvc2Un
LCAnZW5xdWV1ZScsICdlcnJvcicgXSkgewogICAgICAgICAgICAgICAgIHZhciBtZXRob2RQcm9w
ZXJ0aWVzID0gWyAnbGVuZ3RoJywgJ25hbWUnIF07CiAgICAgICAgICAgICAgICAgdmFyIHByb3BE
ZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwcm90bywgbSk7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhwcm9wRGVzYy5lbnVtZXJhYmxlLCB0cnVlLCAnbWV0aG9k
IHNob3VsZCBiZSBlbnVtZXJhYmxlJyk7CkBAIC0zNSw3ICszNSwxMiBAQCB0ZXN0KGZ1bmN0aW9u
KCkKICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY29udHJvbGxlci5jbG9zZS5sZW5ndGgsIDAs
ICdjbG9zZSBzaG91bGQgaGF2ZSBubyBwYXJhbWV0ZXJzJyk7CiAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGNvbnRyb2xsZXIuZW5xdWV1ZS5sZW5ndGgsIDEsICdlbnF1ZXVlIHNob3VsZCBoYXZl
IDEgcGFyYW1ldGVyJyk7CiAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvbnRyb2xsZXIuZXJy
b3IubGVuZ3RoLCAxLCAnZXJyb3Igc2hvdWxkIGhhdmUgMSBwYXJhbWV0ZXInKTsKLSAgICAgICAg
ICAgIC8vYXNzZXJ0X2VxdWFscyhjb250cm9sbGVyLmNvbnN0cnVjdG9yLmxlbmd0aCwgMSwgJ2Nv
bnN0cnVjdG9yIHNob3VsZCBoYXZlIDEgcGFyYW1ldGVycycpOworCisgICAgICAgICAgICB2YXIg
cHJvcERlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHByb3RvLCAnY29uc3Ry
dWN0b3InKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocHJvcERlc2MuZW51bWVyYWJsZSwg
ZmFsc2UsICdtZXRob2Qgc2hvdWxkIGJlIGVudW1lcmFibGUnKTsKKyAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMocHJvcERlc2MuY29uZmlndXJhYmxlLCB0cnVlLCAnbWV0aG9kIHNob3VsZCBiZSBj
b25maWd1cmFibGUnKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocHJvcERlc2Mud3JpdGFi
bGUsIGZhbHNlLCAnbWV0aG9kIHNob3VsZCBiZSB3cml0YWJsZScpOworICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyh0eXBlb2YgY29udHJvbGxlci5jb25zdHJ1Y3RvciwgJ29iamVjdCcsICdzaG91
bGQgYmUgYW4gb2JqZWN0Jyk7CiAKICAgICAgICAgICAgIGlzU3RhcnRDYWxsZWQgPSB0cnVlOwog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBs
ZW1lbnRhdGlvbi9icmFuZC1jaGVja3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RyZWFt
cy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYnJhbmQtY2hlY2tzLWV4cGVjdGVkLnR4dAppbmRl
eCAzM2ZhMTRiYjhiYmFkYmQ2YzQ4YWYyZDIwNzAwNzU1Y2MxZTBhZjkxLi5lNWU3ZjNmMzNiOWMy
NGJlYjMzYjVjYWJjNzI2NDE1MjNmNTljN2JhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdHJl
YW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9icmFuZC1jaGVja3MtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2JyYW5kLWNo
ZWNrcy1leHBlY3RlZC50eHQKQEAgLTYsOCArNiw4IEBAIEZBSUwgUmVhZGFibGVTdHJlYW1SZWFk
ZXIucHJvdG90eXBlLmNsb3NlZCBlbmZvcmNlcyBhIGJyYW5kIGNoZWNrIHVuZGVmaW5lZCBpcyBu
CiBGQUlMIFJlYWRhYmxlU3RyZWFtUmVhZGVyLnByb3RvdHlwZS5jYW5jZWwgZW5mb3JjZXMgYSBi
cmFuZCBjaGVjayBDYW4gb25seSBjYWxsIFJlYWRhYmxlU3RyZWFtUmVhZGVyLmNhbmNlbCBvbiBp
bnN0YW5jZXMgb2YgUmVhZGFibGVTdHJlYW1SZWFkZXIKIEZBSUwgUmVhZGFibGVTdHJlYW1SZWFk
ZXIucHJvdG90eXBlLnJlYWQgZW5mb3JjZXMgYSBicmFuZCBjaGVjayBDYW4gb25seSBjYWxsIFJl
YWRhYmxlU3RyZWFtUmVhZGVyLnJlYWQgb24gaW5zdGFuY2VzIG9mIFJlYWRhYmxlU3RyZWFtUmVh
ZGVyCiBQQVNTIFJlYWRhYmxlU3RyZWFtUmVhZGVyLnByb3RvdHlwZS5yZWxlYXNlTG9jayBlbmZv
cmNlcyBhIGJyYW5kIGNoZWNrIAotRkFJTCBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIgZW5mb3Jj
ZXMgYSBicmFuZCBjaGVjayBvbiBpdHMgYXJndW1lbnQgYXNzZXJ0X3Rocm93czogQ29uc3RydWN0
aW5nIGEgUmVhZGFibGVTdHJlYW1Db250cm9sbGVyIHNob3VsZCB0aHJvdyBmdW5jdGlvbiAiZnVu
Y3Rpb24gKCkgeyBuZXcgUmVhZGFibGVTdHJlYW1Db250cm9sbGVyKGZha2VSZWFkYWJsZVN0Li4u
IiBkaWQgbm90IHRocm93Ci1GQUlMIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciBjYW4ndCBiZSBn
aXZlbiBhIGZ1bGx5LWNvbnN0cnVjdGVkIFJlYWRhYmxlU3RyZWFtIGFzc2VydF90aHJvd3M6IENv
bnN0cnVjdGluZyBhIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciBzaG91bGQgdGhyb3cgZnVuY3Rp
b24gImZ1bmN0aW9uICgpIHsgbmV3IFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlcihyZWFsUmVhZGFi
bGVTdC4uLiIgZGlkIG5vdCB0aHJvdworUEFTUyBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIgZW5m
b3JjZXMgYSBicmFuZCBjaGVjayBvbiBpdHMgYXJndW1lbnQgCitQQVNTIFJlYWRhYmxlU3RyZWFt
Q29udHJvbGxlciBjYW4ndCBiZSBnaXZlbiBhIGZ1bGx5LWNvbnN0cnVjdGVkIFJlYWRhYmxlU3Ry
ZWFtIAogUEFTUyBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIucHJvdG90eXBlLmNsb3NlIGVuZm9y
Y2VzIGEgYnJhbmQgY2hlY2sgCiBQQVNTIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5wcm90b3R5
cGUuZW5xdWV1ZSBlbmZvcmNlcyBhIGJyYW5kIGNoZWNrIAogUEFTUyBSZWFkYWJsZVN0cmVhbUNv
bnRyb2xsZXIucHJvdG90eXBlLmVycm9yIGVuZm9yY2VzIGEgYnJhbmQgY2hlY2sgCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253976</attachid>
            <date>2015-05-31 03:36:05 -0700</date>
            <delta_ts>2015-05-31 04:29:45 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-143752-20150531123543.patch</filename>
            <type>text/plain</type>
            <size>6781</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTg4MzA4MWNhNTEzMGE3
NzcwMzdlMTMzNzk1Nzk1MzZjNjc1M2JkNi4uYTVjZjgzOTAwYzU5YTY1OTQxZTA2MTlmNjQ4NWIx
NDA5ZDgzYWE0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTA1LTMwICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+IGFuZCBZb3Vlbm4gRmFi
bGV0IDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KKworICAgICAgICBbU3RyZWFtcyBBUEld
IEltcGxlbWVudCBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIgY29uc3RydWN0b3IKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Mzc1MgorCisgICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIENvdmVyZWQgYnkgcmViYXNlZCB0
ZXN0IGFuZCBleHBlY3RhdGlvbi4KKworICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJs
ZVN0cmVhbUNvbnRyb2xsZXIuaWRsOiBBZGRpbmcgQ3VzdG9tQ29uc3RydWN0b3IuCisgICAgICAg
ICogYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXJDdXN0b20uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y29uc3RydWN0SlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIpOiBUaHJv
d3MgYW4gZXhjZXB0aW9uIHdoZW5ldmVyIGNhbGxlZC4KKwogMjAxNS0wNS0yOSAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFtDb250ZW50IEV4
dGVuc2lvbnNdIERlY3JlYXNlIG1heE5GQVNpemUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5pZGwKaW5kZXgg
NTc2N2M0Yjk1MWU1MWJhYTRjMWU4YTUzOTZlMTQ2OWQ5Y2Y3M2FmYi4uN2E5NmEwZTBmOTVlZWNm
MDg2ZGMzMTEyOWUwNmU1YzBjMzZjYWFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5pZGwKQEAgLTI5
LDYgKzI5LDcgQEAKIAogWwogICAgIENvbmRpdGlvbmFsPVNUUkVBTVNfQVBJLAorICAgIEN1c3Rv
bUNvbnN0cnVjdG9yLAogICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCiAgICAgTm9JbnRl
cmZhY2VPYmplY3QKIF0gaW50ZXJmYWNlIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3RyZWFtQ29udHJv
bGxlckN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlYWRhYmxlU3Ry
ZWFtQ29udHJvbGxlckN1c3RvbS5jcHAKaW5kZXggNGI1ZDc4OGFkYzQ2ZjYzZWQ4ZDU4NzIyYWU1
OGU2ZmYwMjIzMjE3Mi4uZDkxZDMzYjI1YmMxMGUzODVkYjQzYzY0MmRkMTk0MjhjOWZhZDg3NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbUNv
bnRyb2xsZXJDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmVh
ZGFibGVTdHJlYW1Db250cm9sbGVyQ3VzdG9tLmNwcApAQCAtNjYsNiArNjYsMTEgQEAgSlNWYWx1
ZSBKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlcjo6ZXJyb3IoRXhlY1N0YXRlKiBleGVjKQogICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNvbnN0cnVjdEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyKEV4ZWNTdGF0ZSogZXhlYykKK3sK
KyAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCBBU0NJ
SUxpdGVyYWwoIlJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciBjb25zdHJ1Y3RvciBzaG91bGQgbm90
IGJlIGNhbGxlZCBkaXJlY3RseSIpKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggM2FhODMyNzdmODBjZmNjODc3NjcwYzhlNTBmNmFiNjYwOGY3YzY5NC4u
MjgyMWRkNmEyY2ExNDZiYzFkZGU0ZTE5NTQxNmFhNTM2ZDVmMTM1OCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDE1LTA1LTMwICBYYWJpZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGln
YWxpYS5jb20+IGFuZCBZb3Vlbm4gRmFibGV0IDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4K
KworICAgICAgICBbU3RyZWFtcyBBUEldIEltcGxlbWVudCBSZWFkYWJsZVN0cmVhbUNvbnRyb2xs
ZXIgY29uc3RydWN0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0Mzc1MgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAg
ICAgICogc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0uaHRtbDogY2hlY2tpbmcgY29udHJvbGxlciBj
b25zdHJ1Y3Rvci4KKyAgICAgICAgKiBzdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9i
cmFuZC1jaGVja3MtZXhwZWN0ZWQudHh0OgorCiAyMDE1LTA1LTI4ICBGaWxpcCBQaXpsbyAgPGZw
aXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgTm9uLXNwZWN1bGF0aXZlIEJyYW5jaCBzaG91bGQg
YmUgZmFzdCBpbiB0aGUgRlRMCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRh
YmxlLXN0cmVhbS5odG1sIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW0uaHRt
bAppbmRleCA0NGU4NjUxNzlhOGMzZDYwZTY2MjEwNTAyN2IyYWEzYmUwY2JjMDczLi43MGQ1NTdj
NjczMzFhYTVhNWU1Y2EzZTY1OWY2MTRkZTU3YWVlODM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0cmVhbXMv
cmVhZGFibGUtc3RyZWFtLmh0bWwKQEAgLTE2LDEzICsxNiwxMyBAQCB0ZXN0KGZ1bmN0aW9uKCkK
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHModGhpcywgc291cmNlLCAnc291cmNlIGlzIHRoaXMg
ZHVyaW5nIHN0YXJ0Jyk7CiAKICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYWRkIGNv
bnN0cnVjdG9yIGF0IHNvbWUgcG9pbnQuCi0gICAgICAgICAgICB2YXIgbWV0aG9kcyA9IFsgJ2Ns
b3NlJywgJ2VucXVldWUnLCAnZXJyb3InIF07CisgICAgICAgICAgICB2YXIgbWV0aG9kcyA9IFsg
J2Nsb3NlJywgJ2NvbnN0cnVjdG9yJywgJ2VucXVldWUnLCAnZXJyb3InIF07CiAgICAgICAgICAg
ICB2YXIgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoY29udHJvbGxlcik7CiAKICAgICAg
ICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoT2Jq
ZWN0LmdldFByb3RvdHlwZU9mKGNvbnRyb2xsZXIpKS5zb3J0KCksIG1ldGhvZHMsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAndGhlIGNvbnRyb2xsZXIgc2hvdWxkIGhhdmUgdGhlIHJpZ2h0IG1l
dGhvZHMnKTsKIAotICAgICAgICAgICAgZm9yICh2YXIgbSBvZiBtZXRob2RzKSB7CisgICAgICAg
ICAgICBmb3IgKHZhciBtIG9mIFsgJ2Nsb3NlJywgJ2VucXVldWUnLCAnZXJyb3InIF0pIHsKICAg
ICAgICAgICAgICAgICB2YXIgbWV0aG9kUHJvcGVydGllcyA9IFsgJ2xlbmd0aCcsICduYW1lJyBd
OwogICAgICAgICAgICAgICAgIHZhciBwcm9wRGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IocHJvdG8sIG0pOwogICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocHJvcERl
c2MuZW51bWVyYWJsZSwgdHJ1ZSwgJ21ldGhvZCBzaG91bGQgYmUgZW51bWVyYWJsZScpOwpAQCAt
MzUsNyArMzUsMTIgQEAgdGVzdChmdW5jdGlvbigpCiAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGNvbnRyb2xsZXIuY2xvc2UubGVuZ3RoLCAwLCAnY2xvc2Ugc2hvdWxkIGhhdmUgbm8gcGFyYW1l
dGVycycpOwogICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb250cm9sbGVyLmVucXVldWUubGVu
Z3RoLCAxLCAnZW5xdWV1ZSBzaG91bGQgaGF2ZSAxIHBhcmFtZXRlcicpOwogICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhjb250cm9sbGVyLmVycm9yLmxlbmd0aCwgMSwgJ2Vycm9yIHNob3VsZCBo
YXZlIDEgcGFyYW1ldGVyJyk7Ci0gICAgICAgICAgICAvL2Fzc2VydF9lcXVhbHMoY29udHJvbGxl
ci5jb25zdHJ1Y3Rvci5sZW5ndGgsIDEsICdjb25zdHJ1Y3RvciBzaG91bGQgaGF2ZSAxIHBhcmFt
ZXRlcnMnKTsKKworICAgICAgICAgICAgdmFyIHByb3BEZXNjID0gT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihwcm90bywgJ2NvbnN0cnVjdG9yJyk7CisgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHByb3BEZXNjLmVudW1lcmFibGUsIGZhbHNlLCAnY29uc3RydWN0b3Igc2hvdWxkIG5v
dCBiZSBlbnVtZXJhYmxlJyk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHByb3BEZXNjLmNv
bmZpZ3VyYWJsZSwgdHJ1ZSwgJ2NvbnN0cnVjdG9yIHNob3VsZCBiZSBjb25maWd1cmFibGUnKTsK
KyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocHJvcERlc2Mud3JpdGFibGUsIGZhbHNlLCAnY29u
c3RydWN0b3Igc2hvdWxkIG5vdCBiZSB3cml0YWJsZScpOworICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyh0eXBlb2YgY29udHJvbGxlci5jb25zdHJ1Y3RvciwgJ29iamVjdCcsICdjb25zdHJ1Y3Rv
ciBzaG91bGQgYmUgYW4gb2JqZWN0Jyk7CiAKICAgICAgICAgICAgIGlzU3RhcnRDYWxsZWQgPSB0
cnVlOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5j
ZS1pbXBsZW1lbnRhdGlvbi9icmFuZC1jaGVja3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
c3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYnJhbmQtY2hlY2tzLWV4cGVjdGVkLnR4
dAppbmRleCAzM2ZhMTRiYjhiYmFkYmQ2YzQ4YWYyZDIwNzAwNzU1Y2MxZTBhZjkxLi5lNWU3ZjNm
MzNiOWMyNGJlYjMzYjVjYWJjNzI2NDE1MjNmNTljN2JhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9icmFuZC1jaGVja3MtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2Jy
YW5kLWNoZWNrcy1leHBlY3RlZC50eHQKQEAgLTYsOCArNiw4IEBAIEZBSUwgUmVhZGFibGVTdHJl
YW1SZWFkZXIucHJvdG90eXBlLmNsb3NlZCBlbmZvcmNlcyBhIGJyYW5kIGNoZWNrIHVuZGVmaW5l
ZCBpcyBuCiBGQUlMIFJlYWRhYmxlU3RyZWFtUmVhZGVyLnByb3RvdHlwZS5jYW5jZWwgZW5mb3Jj
ZXMgYSBicmFuZCBjaGVjayBDYW4gb25seSBjYWxsIFJlYWRhYmxlU3RyZWFtUmVhZGVyLmNhbmNl
bCBvbiBpbnN0YW5jZXMgb2YgUmVhZGFibGVTdHJlYW1SZWFkZXIKIEZBSUwgUmVhZGFibGVTdHJl
YW1SZWFkZXIucHJvdG90eXBlLnJlYWQgZW5mb3JjZXMgYSBicmFuZCBjaGVjayBDYW4gb25seSBj
YWxsIFJlYWRhYmxlU3RyZWFtUmVhZGVyLnJlYWQgb24gaW5zdGFuY2VzIG9mIFJlYWRhYmxlU3Ry
ZWFtUmVhZGVyCiBQQVNTIFJlYWRhYmxlU3RyZWFtUmVhZGVyLnByb3RvdHlwZS5yZWxlYXNlTG9j
ayBlbmZvcmNlcyBhIGJyYW5kIGNoZWNrIAotRkFJTCBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIg
ZW5mb3JjZXMgYSBicmFuZCBjaGVjayBvbiBpdHMgYXJndW1lbnQgYXNzZXJ0X3Rocm93czogQ29u
c3RydWN0aW5nIGEgUmVhZGFibGVTdHJlYW1Db250cm9sbGVyIHNob3VsZCB0aHJvdyBmdW5jdGlv
biAiZnVuY3Rpb24gKCkgeyBuZXcgUmVhZGFibGVTdHJlYW1Db250cm9sbGVyKGZha2VSZWFkYWJs
ZVN0Li4uIiBkaWQgbm90IHRocm93Ci1GQUlMIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciBjYW4n
dCBiZSBnaXZlbiBhIGZ1bGx5LWNvbnN0cnVjdGVkIFJlYWRhYmxlU3RyZWFtIGFzc2VydF90aHJv
d3M6IENvbnN0cnVjdGluZyBhIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciBzaG91bGQgdGhyb3cg
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgbmV3IFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlcihyZWFs
UmVhZGFibGVTdC4uLiIgZGlkIG5vdCB0aHJvdworUEFTUyBSZWFkYWJsZVN0cmVhbUNvbnRyb2xs
ZXIgZW5mb3JjZXMgYSBicmFuZCBjaGVjayBvbiBpdHMgYXJndW1lbnQgCitQQVNTIFJlYWRhYmxl
U3RyZWFtQ29udHJvbGxlciBjYW4ndCBiZSBnaXZlbiBhIGZ1bGx5LWNvbnN0cnVjdGVkIFJlYWRh
YmxlU3RyZWFtIAogUEFTUyBSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIucHJvdG90eXBlLmNsb3Nl
IGVuZm9yY2VzIGEgYnJhbmQgY2hlY2sgCiBQQVNTIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5w
cm90b3R5cGUuZW5xdWV1ZSBlbmZvcmNlcyBhIGJyYW5kIGNoZWNrIAogUEFTUyBSZWFkYWJsZVN0
cmVhbUNvbnRyb2xsZXIucHJvdG90eXBlLmVycm9yIGVuZm9yY2VzIGEgYnJhbmQgY2hlY2sgCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>