On Tue, 2015-09-15 at 22:18 -0500, Wang Dongsheng-B40534 wrote:
Hi Scott,
quoted
-----Original Message-----
From: Wang Dongsheng-B40534
Sent: Wednesday, September 16, 2015 10:44 AM
To: Wood Scott-B07421; Tang Yuantian-B29983
Cc: devicetree@vger.kernel.org; linuxppc-dev@lists.ozlabs.org;
robh+dt@kernel.org; linux-arm-kernel@lists.infradead.org; Wang Huan-
B18965; Jin
Zhengxiong-R64188; Zhao Chenhui-B35336
Subject: RE: [PATCH v2 1/2] fsl: Add binding for RCPM
quoted
-----Original Message-----
From: Wood Scott-B07421
Sent: Wednesday, September 16, 2015 10:38 AM
To: Tang Yuantian-B29983
Cc: Wang Dongsheng-B40534; devicetree@vger.kernel.org; linuxppc-
dev@lists.ozlabs.org; robh+dt@kernel.org;
linux-arm-kernel@lists.infradead.org;
Wang Huan-B18965; Jin Zhengxiong-R64188; Zhao Chenhui-B35336
Subject: Re: [PATCH v2 1/2] fsl: Add binding for RCPM
On Tue, 2015-09-15 at 21:35 -0500, Tang Yuantian-B29983 wrote:
quoted
quoted
-----Original Message-----
From: Wood Scott-B07421
Sent: Wednesday, September 16, 2015 10:32 AM
To: Wang Dongsheng-B40534 <redacted>
Cc: devicetree@vger.kernel.org; linuxppc-dev@lists.ozlabs.org;
robh+dt@kernel.org; linux-arm-kernel@lists.infradead.org; Wang
robh+Huan-
B18965 [off-list ref]; Jin Zhengxiong-R64188
[off-list ref]; Zhao Chenhui-B35336
[off-list ref]; Tang Yuantian-B29983
[off-list ref]
Subject: Re: [PATCH v2 1/2] fsl: Add binding for RCPM
On Tue, 2015-09-15 at 21:30 -0500, Wang Dongsheng-B40534 wrote:
quoted
Hi Scott,
quoted
-----Original Message-----
From: Wood Scott-B07421
Sent: Wednesday, September 16, 2015 10:19 AM
To: Wang Dongsheng-B40534
Cc: devicetree@vger.kernel.org; linuxppc-dev@lists.ozlabs.org;
robh+dt@kernel.org; linux-arm-kernel@lists.infradead.org; Wang
robh+Huan-
B18965; Jin
Zhengxiong-R64188; Zhao Chenhui-B35336; Tang Yuantian-B29983
Subject: Re: [PATCH v2 1/2] fsl: Add binding for RCPM
On Tue, 2015-09-15 at 21:15 -0500, Wang Dongsheng-B40534 wrote:
quoted
Hi Scott,
quoted
-----Original Message-----
From: Wood Scott-B07421
Sent: Wednesday, September 16, 2015 7:57 AM
To: Wang Dongsheng-B40534
Cc: devicetree@vger.kernel.org;
linuxppc-dev@lists.ozlabs.org;
robh+dt@kernel.org; linux-arm-kernel@lists.infradead.org;
robh+Wang
robh+Huan-
B18965; Jin
Zhengxiong-R64188; Zhao Chenhui-B35336; Tang
Yuantian-B29983
Subject: Re: [PATCH v2 1/2] fsl: Add binding for RCPM
On Tue, 2015-09-15 at 16:55 +0800, Dongsheng Wang wrote:
quoted
+* Freescale RCPM Wakeup Source Device Tree Bindings
+-------------------------------------------
+Required rcpm-wakeup property should be added to a
+device node if the
device
+can be used as a wakeup source.
+
+ - rcpm-wakeup: The value of the property consists of 3
cells.
+ The
first
cell
+ is a pointer to the rcpm node, the second cell is
+ the bit mask
that
+ should be set in IPPDEXPCR0, and the last cell is
+ for
IPPDEXPCR1.
+ Note: If the platform has no IPPDEXPCR1 register,
+ put a zero
here.
What if a future platform has more than two of these
registers?
Those registers are only used for wakeup device, we have a
lot of available bit for feature. For example, In LS1021a
platform only 7bits has used in the registers, and 57bits is
reserved.
quoted
quoted
quoted
quoted
quoted
Still, it'd be better to for the rcpm node to advertise the
number of cells it expects.
For the foreseeable future it should be enough to use, even if
not enough to use in the future at that time we can update the
binding.
That's the whole point. Device tree is stable ABI. Updating it
later to not be fixed to two cells would be a lot harder than
getting it right from the beginning. Putting the number of cells
in the phandle target is a standard device tree idiom.
I agree with you. But what's the point a SOC has more than 64 wakeup
source?
I don't know. Hardware people do strange things sometimes. They
might not want to reuse bits they once used for something on some
other chip, or they might have some encoding scheme in mind that
results in the bits not being packed as tightly as possible, or there
may be some big array of similar devices...
What's the point of skipping this part of the phandle-plus-arguments
idiom?
Fine, I will add a property in rcpm node to describe the number of
register.
How about the following modify? If okay for you I will fix in next version.
Required properites:
- reg : Offset and length of the register set of RCPM block.
+ - fsl,rcpm-wakeup-cell-num : The number of cell in rcpm-wakeup property.
rcpm: global-utilities@e2000{
compatible = "fsl,t4240-rcpm", "fsl,qoriq-rcpm-2.0";
reg = <0xe2000 0x1000>;
+ fsl,rcpm-wakeup-cell-num = <2>;
};
OK, though "fsl,#rcpm-wakeup-cells" would be more idiomatic.
Also s/number of cell/number of cells/
-Scott
DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogV29vZCBTY290dC1CMDc0
MjENCj4gU2VudDogV2VkbmVzZGF5LCBTZXB0ZW1iZXIgMTYsIDIwMTUgMTI6MTQgUE0NCj4gVG86
IFdhbmcgRG9uZ3NoZW5nLUI0MDUzNA0KPiBDYzogVGFuZyBZdWFudGlhbi1CMjk5ODM7IGRldmlj
ZXRyZWVAdmdlci5rZXJuZWwub3JnOyBsaW51eHBwYy0NCj4gZGV2QGxpc3RzLm96bGFicy5vcmc7
IHJvYmgrZHRAa2VybmVsLm9yZzsgbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3Jn
Ow0KPiBXYW5nIEh1YW4tQjE4OTY1OyBKaW4gWmhlbmd4aW9uZy1SNjQxODg7IFpoYW8gQ2hlbmh1
aS1CMzUzMzYNCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2MiAxLzJdIGZzbDogQWRkIGJpbmRpbmcg
Zm9yIFJDUE0NCj4gDQo+IE9uIFR1ZSwgMjAxNS0wOS0xNSBhdCAyMjoxOCAtMDUwMCwgV2FuZyBE
b25nc2hlbmctQjQwNTM0IHdyb3RlOg0KPiA+IEhpIFNjb3R0LA0KPiA+DQo+ID4gPiAtLS0tLU9y
aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogV2FuZyBEb25nc2hlbmctQjQwNTM0DQo+
ID4gPiBTZW50OiBXZWRuZXNkYXksIFNlcHRlbWJlciAxNiwgMjAxNSAxMDo0NCBBTQ0KPiA+ID4g
VG86IFdvb2QgU2NvdHQtQjA3NDIxOyBUYW5nIFl1YW50aWFuLUIyOTk4Mw0KPiA+ID4gQ2M6IGRl
dmljZXRyZWVAdmdlci5rZXJuZWwub3JnOyBsaW51eHBwYy1kZXZAbGlzdHMub3psYWJzLm9yZzsN
Cj4gPiA+IHJvYmgrZHRAa2VybmVsLm9yZzsgbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRl
YWQub3JnOyBXYW5nIEh1YW4tDQo+ID4gPiBCMTg5NjU7IEppbg0KPiA+ID4gWmhlbmd4aW9uZy1S
NjQxODg7IFpoYW8gQ2hlbmh1aS1CMzUzMzYNCj4gPiA+IFN1YmplY3Q6IFJFOiBbUEFUQ0ggdjIg
MS8yXSBmc2w6IEFkZCBiaW5kaW5nIGZvciBSQ1BNDQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4g
PiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+IEZyb206IFdvb2QgU2NvdHQt
QjA3NDIxDQo+ID4gPiA+IFNlbnQ6IFdlZG5lc2RheSwgU2VwdGVtYmVyIDE2LCAyMDE1IDEwOjM4
IEFNDQo+ID4gPiA+IFRvOiBUYW5nIFl1YW50aWFuLUIyOTk4Mw0KPiA+ID4gPiBDYzogV2FuZyBE
b25nc2hlbmctQjQwNTM0OyBkZXZpY2V0cmVlQHZnZXIua2VybmVsLm9yZzsgbGludXhwcGMtDQo+
ID4gPiA+IGRldkBsaXN0cy5vemxhYnMub3JnOyByb2JoK2R0QGtlcm5lbC5vcmc7DQo+ID4gPiA+
IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZzsNCj4gPiA+ID4gV2FuZyBIdWFu
LUIxODk2NTsgSmluIFpoZW5neGlvbmctUjY0MTg4OyBaaGFvIENoZW5odWktQjM1MzM2DQo+ID4g
PiA+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjIgMS8yXSBmc2w6IEFkZCBiaW5kaW5nIGZvciBSQ1BN
DQo+ID4gPiA+DQo+ID4gPiA+IE9uIFR1ZSwgMjAxNS0wOS0xNSBhdCAyMTozNSAtMDUwMCwgVGFu
ZyBZdWFudGlhbi1CMjk5ODMgd3JvdGU6DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IC0tLS0tT3Jp
Z2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gPiBGcm9tOiBXb29kIFNjb3R0LUIwNzQyMQ0K
PiA+ID4gPiA+ID4gU2VudDogV2VkbmVzZGF5LCBTZXB0ZW1iZXIgMTYsIDIwMTUgMTA6MzIgQU0N
Cj4gPiA+ID4gPiA+IFRvOiBXYW5nIERvbmdzaGVuZy1CNDA1MzQgPERvbmdzaGVuZy5XYW5nQGZy
ZWVzY2FsZS5jb20+DQo+ID4gPiA+ID4gPiBDYzogZGV2aWNldHJlZUB2Z2VyLmtlcm5lbC5vcmc7
IGxpbnV4cHBjLWRldkBsaXN0cy5vemxhYnMub3JnOw0KPiA+ID4gPiA+ID4gcm9iaCtkdEBrZXJu
ZWwub3JnOyBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmc7IFdhbmcNCj4gPiA+
ID4gPiA+IHJvYmgrSHVhbi0NCj4gPiA+ID4gPiA+IEIxODk2NSA8YWxpc29uLndhbmdAZnJlZXNj
YWxlLmNvbT47IEppbiBaaGVuZ3hpb25nLVI2NDE4OA0KPiA+ID4gPiA+ID4gPEphc29uLkppbkBm
cmVlc2NhbGUuY29tPjsgWmhhbyBDaGVuaHVpLUIzNTMzNg0KPiA+ID4gPiA+ID4gPGNoZW5odWku
emhhb0BmcmVlc2NhbGUuY29tPjsgVGFuZyBZdWFudGlhbi1CMjk5ODMNCj4gPiA+ID4gPiA+IDxZ
dWFudGlhbi5UYW5nQGZyZWVzY2FsZS5jb20+DQo+ID4gPiA+ID4gPiBTdWJqZWN0OiBSZTogW1BB
VENIIHYyIDEvMl0gZnNsOiBBZGQgYmluZGluZyBmb3IgUkNQTQ0KPiA+ID4gPiA+ID4NCj4gPiA+
ID4gPiA+IE9uIFR1ZSwgMjAxNS0wOS0xNSBhdCAyMTozMCAtMDUwMCwgV2FuZyBEb25nc2hlbmct
QjQwNTM0IHdyb3RlOg0KPiA+ID4gPiA+ID4gPiBIaSBTY290dCwNCj4gPiA+ID4gPiA+ID4NCj4g
PiA+ID4gPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+ID4gPiA+
IEZyb206IFdvb2QgU2NvdHQtQjA3NDIxDQo+ID4gPiA+ID4gPiA+ID4gU2VudDogV2VkbmVzZGF5
LCBTZXB0ZW1iZXIgMTYsIDIwMTUgMTA6MTkgQU0NCj4gPiA+ID4gPiA+ID4gPiBUbzogV2FuZyBE
b25nc2hlbmctQjQwNTM0DQo+ID4gPiA+ID4gPiA+ID4gQ2M6IGRldmljZXRyZWVAdmdlci5rZXJu
ZWwub3JnOw0KPiA+ID4gPiA+ID4gPiA+IGxpbnV4cHBjLWRldkBsaXN0cy5vemxhYnMub3JnOw0K
PiA+ID4gPiA+ID4gPiA+IHJvYmgrZHRAa2VybmVsLm9yZzsgbGludXgtYXJtLWtlcm5lbEBsaXN0
cy5pbmZyYWRlYWQub3JnOw0KPiA+ID4gPiA+ID4gPiA+IHJvYmgrV2FuZw0KPiA+ID4gPiA+ID4g
PiA+IHJvYmgrSHVhbi0NCj4gPiA+ID4gPiA+ID4gPiBCMTg5NjU7IEppbg0KPiA+ID4gPiA+ID4g
PiA+IFpoZW5neGlvbmctUjY0MTg4OyBaaGFvIENoZW5odWktQjM1MzM2OyBUYW5nDQo+ID4gPiA+
ID4gPiA+ID4gWXVhbnRpYW4tQjI5OTgzDQo+ID4gPiA+ID4gPiA+ID4gU3ViamVjdDogUmU6IFtQ
QVRDSCB2MiAxLzJdIGZzbDogQWRkIGJpbmRpbmcgZm9yIFJDUE0NCj4gPiA+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+ID4gPiA+IE9uIFR1ZSwgMjAxNS0wOS0xNSBhdCAyMToxNSAtMDUwMCwgV2FuZyBE
b25nc2hlbmctQjQwNTM0IHdyb3RlOg0KPiA+ID4gPiA+ID4gPiA+ID4gSGkgU2NvdHQsDQo+ID4g
PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut
LS0tLQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiBGcm9tOiBXb29kIFNjb3R0LUIwNzQyMQ0KPiA+ID4g
PiA+ID4gPiA+ID4gPiBTZW50OiBXZWRuZXNkYXksIFNlcHRlbWJlciAxNiwgMjAxNSA3OjU3IEFN
DQo+ID4gPiA+ID4gPiA+ID4gPiA+IFRvOiBXYW5nIERvbmdzaGVuZy1CNDA1MzQNCj4gPiA+ID4g
PiA+ID4gPiA+ID4gQ2M6IGRldmljZXRyZWVAdmdlci5rZXJuZWwub3JnOw0KPiA+ID4gPiA+ID4g
PiA+ID4gPiBsaW51eHBwYy1kZXZAbGlzdHMub3psYWJzLm9yZzsNCj4gPiA+ID4gPiA+ID4gPiA+
ID4gcm9iaCtkdEBrZXJuZWwub3JnOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiByb2JoK2xpbnV4LWFy
bS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZzsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gcm9iaCtX
YW5nDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHJvYmgrSHVhbi0NCj4gPiA+ID4gPiA+ID4gPiA+ID4g
QjE4OTY1OyBKaW4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gWmhlbmd4aW9uZy1SNjQxODg7IFpoYW8g
Q2hlbmh1aS1CMzUzMzY7IFRhbmcNCj4gPiA+ID4gPiA+ID4gPiA+ID4gWXVhbnRpYW4tQjI5OTgz
DQo+ID4gPiA+ID4gPiA+ID4gPiA+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjIgMS8yXSBmc2w6IEFk
ZCBiaW5kaW5nIGZvciBSQ1BNDQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
PiA+IE9uIFR1ZSwgMjAxNS0wOS0xNSBhdCAxNjo1NSArMDgwMCwgRG9uZ3NoZW5nIFdhbmcgd3Jv
dGU6DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKyogRnJlZXNjYWxlIFJDUE0gV2FrZXVwIFNvdXJj
ZSBEZXZpY2UgVHJlZSBCaW5kaW5ncw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICstLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g
K1JlcXVpcmVkIHJjcG0td2FrZXVwIHByb3BlcnR5IHNob3VsZCBiZSBhZGRlZCB0byBhDQo+ID4g
PiA+ID4gPiA+ID4gPiA+ID4gK2RldmljZSBub2RlIGlmIHRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4g
PiA+IGRldmljZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICtjYW4gYmUgdXNlZCBhcyBhIHdha2V1
cCBzb3VyY2UuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+
ICsgIC0gcmNwbS13YWtldXA6IFRoZSB2YWx1ZSBvZiB0aGUgcHJvcGVydHkgY29uc2lzdHMNCj4g
PiA+ID4gPiA+ID4gPiA+ID4gPiArIG9mIDMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBjZWxscy4N
Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArIFRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGZpcnN0
DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gY2VsbA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAg
IGlzIGEgcG9pbnRlciB0byB0aGUgcmNwbSBub2RlLCB0aGUgc2Vjb25kIGNlbGwNCj4gPiA+ID4g
PiA+ID4gPiA+ID4gPiArIGlzIHRoZSBiaXQgbWFzaw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHRo
YXQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICBzaG91bGQgYmUgc2V0IGluIElQUERFWFBD
UjAsIGFuZCB0aGUgbGFzdCBjZWxsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKyBpcyBmb3INCj4g
PiA+ID4gPiA+ID4gPiA+ID4gPiBJUFBERVhQQ1IxLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsg
ICAgIE5vdGU6IElmIHRoZSBwbGF0Zm9ybSBoYXMgbm8gSVBQREVYUENSMQ0KPiA+ID4gPiA+ID4g
PiA+ID4gPiA+ICsgcmVnaXN0ZXIsIHB1dCBhIHplcm8NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBo
ZXJlLg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBXaGF0IGlmIGEg
ZnV0dXJlIHBsYXRmb3JtIGhhcyBtb3JlIHRoYW4gdHdvIG9mIHRoZXNlDQo+ID4gPiA+ID4gPiA+
ID4gPiA+IHJlZ2lzdGVycz8NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBU
aG9zZSByZWdpc3RlcnMgYXJlIG9ubHkgdXNlZCBmb3Igd2FrZXVwIGRldmljZSwgd2UgaGF2ZQ0K
PiA+ID4gPiA+ID4gPiA+ID4gYSBsb3Qgb2YgYXZhaWxhYmxlIGJpdCBmb3IgZmVhdHVyZS4gRm9y
IGV4YW1wbGUsIEluDQo+ID4gPiA+ID4gPiA+ID4gPiBMUzEwMjFhIHBsYXRmb3JtIG9ubHkgN2Jp
dHMgaGFzIHVzZWQgaW4gdGhlIHJlZ2lzdGVycywNCj4gPiA+ID4gPiA+ID4gPiA+IGFuZCA1N2Jp
dHMgaXMNCj4gPiA+IHJlc2VydmVkLg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g
U3RpbGwsIGl0J2QgYmUgYmV0dGVyIHRvIGZvciB0aGUgcmNwbSBub2RlIHRvIGFkdmVydGlzZQ0K
PiA+ID4gPiA+ID4gPiA+IHRoZSBudW1iZXIgb2YgY2VsbHMgaXQgZXhwZWN0cy4NCj4gPiA+ID4g
PiA+ID4NCj4gPiA+ID4gPiA+ID4gRm9yIHRoZSBmb3Jlc2VlYWJsZSBmdXR1cmUgaXQgc2hvdWxk
IGJlIGVub3VnaCB0byB1c2UsIGV2ZW4NCj4gPiA+ID4gPiA+ID4gaWYgbm90IGVub3VnaCB0byB1
c2UgaW4gdGhlIGZ1dHVyZSBhdCB0aGF0IHRpbWUgd2UgY2FuDQo+ID4gPiA+ID4gPiA+IHVwZGF0
ZSB0aGUgYmluZGluZy4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBUaGF0J3MgdGhlIHdob2xl
IHBvaW50LiAgRGV2aWNlIHRyZWUgaXMgc3RhYmxlIEFCSS4gIFVwZGF0aW5nDQo+ID4gPiA+ID4g
PiBpdCBsYXRlciB0byBub3QgYmUgZml4ZWQgdG8gdHdvIGNlbGxzIHdvdWxkIGJlIGEgbG90IGhh
cmRlcg0KPiA+ID4gPiA+ID4gdGhhbiBnZXR0aW5nIGl0IHJpZ2h0IGZyb20gdGhlIGJlZ2lubmlu
Zy4gIFB1dHRpbmcgdGhlIG51bWJlcg0KPiA+ID4gPiA+ID4gb2YgY2VsbHMgaW4gdGhlIHBoYW5k
bGUgdGFyZ2V0IGlzIGEgc3RhbmRhcmQgZGV2aWNlIHRyZWUgaWRpb20uDQo+ID4gPiA+ID4gPg0K
PiA+ID4gPiA+IEkgYWdyZWUgd2l0aCB5b3UuIEJ1dCB3aGF0J3MgdGhlIHBvaW50IGEgU09DIGhh
cyBtb3JlIHRoYW4gNjQNCj4gPiA+ID4gPiB3YWtldXAgc291cmNlPw0KPiA+ID4gPg0KPiA+ID4g
PiBJIGRvbid0IGtub3cuICBIYXJkd2FyZSBwZW9wbGUgZG8gc3RyYW5nZSB0aGluZ3Mgc29tZXRp
bWVzLiAgVGhleQ0KPiA+ID4gPiBtaWdodCBub3Qgd2FudCB0byByZXVzZSBiaXRzIHRoZXkgb25j
ZSB1c2VkIGZvciBzb21ldGhpbmcgb24gc29tZQ0KPiA+ID4gPiBvdGhlciBjaGlwLCBvciB0aGV5
IG1pZ2h0IGhhdmUgc29tZSBlbmNvZGluZyBzY2hlbWUgaW4gbWluZCB0aGF0DQo+ID4gPiA+IHJl
c3VsdHMgaW4gdGhlIGJpdHMgbm90IGJlaW5nIHBhY2tlZCBhcyB0aWdodGx5IGFzIHBvc3NpYmxl
LCBvcg0KPiA+ID4gPiB0aGVyZSBtYXkgYmUgc29tZSBiaWcgYXJyYXkgb2Ygc2ltaWxhciBkZXZp
Y2VzLi4uDQo+ID4gPiA+DQo+ID4gPiA+IFdoYXQncyB0aGUgcG9pbnQgb2Ygc2tpcHBpbmcgdGhp
cyBwYXJ0IG9mIHRoZQ0KPiA+ID4gPiBwaGFuZGxlLXBsdXMtYXJndW1lbnRzIGlkaW9tPw0KPiA+
ID4NCj4gPiA+IEZpbmUsIEkgd2lsbCBhZGQgYSBwcm9wZXJ0eSBpbiByY3BtIG5vZGUgdG8gZGVz
Y3JpYmUgdGhlIG51bWJlciBvZg0KPiA+ID4gcmVnaXN0ZXIuDQo+ID4gPg0KPiA+DQo+ID4gSG93
IGFib3V0IHRoZSBmb2xsb3dpbmcgbW9kaWZ5PyBJZiBva2F5IGZvciB5b3UgSSB3aWxsIGZpeCBp
biBuZXh0IHZlcnNpb24uDQo+ID4NCj4gPiBSZXF1aXJlZCBwcm9wZXJpdGVzOg0KPiA+ICAgIC0g
cmVnIDogT2Zmc2V0IGFuZCBsZW5ndGggb2YgdGhlIHJlZ2lzdGVyIHNldCBvZiBSQ1BNIGJsb2Nr
Lg0KPiA+ICsgIC0gZnNsLHJjcG0td2FrZXVwLWNlbGwtbnVtIDogVGhlIG51bWJlciBvZiBjZWxs
IGluIHJjcG0td2FrZXVwIHByb3BlcnR5Lg0KPiA+DQo+ID4gICAgICAgICByY3BtOiAgZ2xvYmFs
LXV0aWxpdGllc0BlMjAwMHsNCj4gPiAgICAgICAgICAgICAgICAgY29tcGF0aWJsZSA9ICJmc2ws
dDQyNDAtcmNwbSIsICJmc2wscW9yaXEtcmNwbS0yLjAiOw0KPiA+ICAgICAgICAgICAgICAgICBy
ZWcgPSA8MHhlMjAwMCAweDEwMDA+Ow0KPiA+ICsgICAgICAgICAgICAgICBmc2wscmNwbS13YWtl
dXAtY2VsbC1udW0gPSA8Mj47DQo+ID4gICAgICAgICB9Ow0KPiANCj4gT0ssIHRob3VnaCAiZnNs
LCNyY3BtLXdha2V1cC1jZWxscyIgd291bGQgYmUgbW9yZSBpZGlvbWF0aWMuDQoNCk9LLCB0aGFu
a3MuIFdpbGwgZml4IGl0IGluIG5leHQgdmVyc2lvbi4NCg0KUmVnYXJkcywNCi1Eb25nc2hlbmcN
Cg==