From owner-acpi-jp@jp.FreeBSD.org Sat Jan 10 04:00:12 2004
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) id i09J0C710752;
	Sat, 10 Jan 2004 04:00:12 +0900 (JST)
	(envelope-from owner-acpi-jp@jp.FreeBSD.org)
Received: from root.org (root.org [67.118.192.226])
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) with SMTP/inet id i09J0AC10731
	for <acpi-jp@jp.freebsd.org>; Sat, 10 Jan 2004 04:00:11 +0900 (JST)
	(envelope-from nate@root.org)
Received: (qmail 40994 invoked by uid 1000); 9 Jan 2004 19:00:05 -0000
From: Nate Lawson <nate@root.org>
To: acpi-jp@jp.FreeBSD.org
Message-ID: <20040109105850.K40983@root.org>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="0-312821283-1073674805=:40983"
Reply-To: acpi-jp@jp.FreeBSD.org
Precedence: list
Date: Fri, 9 Jan 2004 11:00:05 -0800
X-Sequence: acpi-jp 2983
Subject: [acpi-jp 2983] Revised Toshiba driver
Sender: owner-acpi-jp@jp.FreeBSD.org
X-Originator: nate@root.org
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+031216

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--0-312821283-1073674805=:40983
Content-Type: TEXT/PLAIN; charset=US-ASCII

Please test this and let me know if you find any bugs.  Especially test
things like the video output (TV/external monitory) since I'm not sure
it's legal to have all 3 outputs active at once.

-Nate

--0-312821283-1073674805=:40983
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="tosh.diff"
Content-Transfer-Encoding: BASE64
Content-ID: <20040109110005.C40983@root.org>
Content-Description: 
Content-Disposition: attachment; filename="tosh.diff"

SW5kZXg6IHN5cy9pMzg2L2FjcGljYS9hY3BpX3Rvc2hpYmEuYw0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IHN5cy9pMzg2L2FjcGljYS9h
Y3BpX3Rvc2hpYmEuYw0KZGlmZiAtTiBzeXMvaTM4Ni9hY3BpY2EvYWNwaV90
b3NoaWJhLmMNCi0tLSAvZGV2L251bGwJMSBKYW4gMTk3MCAwMDowMDowMCAt
MDAwMA0KKysrIHN5cy9pMzg2L2FjcGljYS9hY3BpX3Rvc2hpYmEuYwk5IEph
biAyMDA0IDE4OjU1OjU4IC0wMDAwDQpAQCAtMCwwICsxLDQ3OSBAQA0KKy8q
LQ0KKyAqIENvcHlyaWdodCAoYykgMjAwMyBIaXJveXVraSBBaXp1IDxhaXp1
QG5hdmkub3JnPg0KKyAqIENvcHlyaWdodCAoYykgMjAwMyBOYXRlIExhd3Nv
biAoU0RHKQ0KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQorICoNCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQNCisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMNCisgKiBhcmUgbWV0Og0KKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0DQorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQ0KKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uDQorICoNCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgQU5EIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5EDQorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
DQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UNCisgKiBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRQ0KKyAqIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMDQorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMN
CisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikNCisgKiBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVA0KKyAqIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkNCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GDQorICog
U1VDSCBEQU1BR0UuDQorICoNCisgKi8NCisNCisjaW5jbHVkZSA8c3lzL2Nk
ZWZzLmg+DQorX19GQlNESUQoIiRGcmVlQlNEJCIpOw0KKw0KKyNpbmNsdWRl
ICJvcHRfYWNwaS5oIg0KKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4NCisjaW5j
bHVkZSA8c3lzL2tlcm5lbC5oPg0KKyNpbmNsdWRlIDxzeXMvYnVzLmg+DQor
DQorI2luY2x1ZGUgImFjcGkuaCINCisjaW5jbHVkZSA8ZGV2L2FjcGljYS9h
Y3BpdmFyLmg+DQorDQorI2RlZmluZSBfQ09NUE9ORU5UICAgICAgQUNQSV9U
T1NISUJBDQorQUNQSV9NT0RVTEVfTkFNRSgiVE9TSElCQSIpDQorDQorLyoN
CisgKiBUb3NoaWJhIEhDSSBpbnRlcmZhY2UgZGVmaW5pdGlvbnMNCisgKg0K
KyAqIEhDSSBpcyBUb3NoaWJhJ3MgIkhhcmR3YXJlIENvbnRyb2wgSW50ZXJm
YWNlIiB3aGljaCBpcyBzdXBwb3NlZCB0bw0KKyAqIGJlIHVuaWZvcm0gYWNy
b3NzIGFsbCB0aGVpciBtb2RlbHMuICBJZGVhbGx5IHdlIHdvdWxkIGp1c3Qg
Y2FsbA0KKyAqIGRlZGljYXRlZCBBQ1BJIG1ldGhvZHMgaW5zdGVhZCBvZiB1
c2luZyB0aGlzIHByaW1pdGl2ZSBpbnRlcmZhY2UuDQorICogSG93ZXZlciwg
dGhlIEFDUEkgbWV0aG9kcyBzZWVtIHRvIGJlIGluY29tcGxldGUgaW4gc29t
ZSBhcmVhcyAoZm9yDQorICogZXhhbXBsZSB0aGV5IGFsbG93IHNldHRpbmcs
IGJ1dCBub3QgcmVhZGluZywgdGhlIExDRCBicmlnaHRuZXNzDQorICogdmFs
dWUpLCBzbyB0aGlzIGlzIHN0aWxsIHVzZWZ1bC4NCisgKi8NCisNCisjZGVm
aW5lIE1FVEhPRF9IQ0kJCSJHSENJIg0KKyNkZWZpbmUgTUVUSE9EX0hDSV9F
TkFCTEUJIkVOQUIiDQorDQorLyogT3BlcmF0aW9ucyAqLw0KKyNkZWZpbmUg
SENJX1NFVAkJCQkweEZGMDANCisjZGVmaW5lIEhDSV9HRVQJCQkJMHhGRTAw
DQorDQorLyogUmV0dXJuIGNvZGVzICovDQorI2RlZmluZSBIQ0lfU1VDQ0VT
UwkJCTB4MDAwMA0KKyNkZWZpbmUgSENJX0ZBSUxVUkUJCQkweDEwMDANCisj
ZGVmaW5lIEhDSV9OT1RfU1VQUE9SVEVECQkweDgwMDANCisjZGVmaW5lIEhD
SV9FTVBUWQkJCTB4OEMwMA0KKw0KKy8qIEZ1bmN0aW9ucyAqLw0KKyNkZWZp
bmUgSENJX1JFR19MQ0RfQkFDS0xJR0hUCQkweDAwMDINCisjZGVmaW5lIEhD
SV9SRUdfRkFOCQkJMHgwMDA0DQorI2RlZmluZSBIQ0lfUkVHX1NZU1RFTV9F
VkVOVAkJMHgwMDE2DQorI2RlZmluZSBIQ0lfUkVHX1ZJREVPX09VVFBVVAkJ
MHgwMDFDDQorI2RlZmluZSBIQ0lfUkVHX0hPVEtFWV9FVkVOVAkJMHgwMDFF
DQorI2RlZmluZSBIQ0lfUkVHX0xDRF9CUklHSFRORVNTCQkweDAwMkENCisj
ZGVmaW5lIEhDSV9SRUdfQ1BVX1NQRUVECQkweDAwMzINCisNCisvKiBGaWVs
ZCBkZWZpbml0aW9ucyAqLw0KKyNkZWZpbmUgSENJX0xDRF9CUklHSFRORVNT
X0JJVFMJCTMNCisjZGVmaW5lIEhDSV9MQ0RfQlJJR0hUTkVTU19TSElGVAko
MTYgLSBIQ0lfTENEX0JSSUdIVE5FU1NfQklUUykNCisjZGVmaW5lIEhDSV9M
Q0RfQlJJR0hUTkVTU19MRVZFTFMJKDEgPDwgSENJX0xDRF9CUklHSFRORVNT
X0JJVFMpDQorI2RlZmluZSBIQ0lfVklERU9fT1VUUFVUX0ZMQUcJCTB4MDEw
MA0KKyNkZWZpbmUgSENJX1ZJREVPX09VVFBVVF9MQ0QJCTB4MQ0KKyNkZWZp
bmUgSENJX1ZJREVPX09VVFBVVF9DUlQJCTB4Mg0KKyNkZWZpbmUgSENJX1ZJ
REVPX09VVFBVVF9UVgkJMHg0DQorI2RlZmluZSBIQ0lfQ1BVX1NQRUVEX0JJ
VFMJCTMNCisjZGVmaW5lIEhDSV9DUFVfU1BFRURfU0hJRlQJCSgxNiAtIEhD
SV9DUFVfU1BFRURfQklUUykNCisjZGVmaW5lIEhDSV9DUFVfU1BFRURfTEVW
RUxTCQkoMSA8PCBIQ0lfQ1BVX1NQRUVEX0JJVFMpDQorDQorLyogS2V5IHBy
ZXNzL3JlbGVhc2UgZXZlbnRzLiAqLw0KKyNkZWZpbmUgRk5fRjFfUFJFU1MJ
MHgwMTNCDQorI2RlZmluZSBGTl9GMV9SRUxFQVNFCTB4MDFCQg0KKyNkZWZp
bmUgRk5fRjJfUFJFU1MJMHgwMTNDDQorI2RlZmluZSBGTl9GMl9SRUxFQVNF
CTB4MDFCQw0KKyNkZWZpbmUgRk5fRjNfUFJFU1MJMHgwMTNEDQorI2RlZmlu
ZSBGTl9GM19SRUxFQVNFCTB4MDFCRA0KKyNkZWZpbmUgRk5fRjRfUFJFU1MJ
MHgwMTNFDQorI2RlZmluZSBGTl9GNF9SRUxFQVNFCTB4MDFCRQ0KKyNkZWZp
bmUgRk5fRjVfUFJFU1MJMHgwMTNGDQorI2RlZmluZSBGTl9GNV9SRUxFQVNF
CTB4MDFCRg0KKyNkZWZpbmUgRk5fRjZfUFJFU1MJMHgwMTQwDQorI2RlZmlu
ZSBGTl9GNl9SRUxFQVNFCTB4MDFDMA0KKyNkZWZpbmUgRk5fRjdfUFJFU1MJ
MHgwMTQxDQorI2RlZmluZSBGTl9GN19SRUxFQVNFCTB4MDFDMQ0KKyNkZWZp
bmUgRk5fRjhfUFJFU1MJMHgwMTQyDQorI2RlZmluZSBGTl9GOF9SRUxFQVNF
CTB4MDFDMg0KKyNkZWZpbmUgRk5fRjlfUFJFU1MJMHgwMTQzDQorI2RlZmlu
ZSBGTl9GOV9SRUxFQVNFCTB4MDFDMw0KKyNkZWZpbmUgRk5fQlNfUFJFU1MJ
MHgwMTBFDQorI2RlZmluZSBGTl9CU19SRUxFQVNFCTB4MDE4RQ0KKyNkZWZp
bmUgRk5fRVNDX1BSRVNTCTB4MDEwMQ0KKyNkZWZpbmUgRk5fRVNDX1JFTEVB
U0UJMHgwMTgxDQorI2RlZmluZSBGTl9LTkpfUFJFU1MJMHgwMTI5DQorI2Rl
ZmluZSBGTl9LTkpfUkVMRUFTRQkweDAxQTkNCisNCisvKiBIQ0kgcmVnaXN0
ZXIgZGVmaW5pdGlvbnMuICovDQorI2RlZmluZSBIQ0lfV09SRFMJNgkJLyog
TnVtYmVyIG9mIHJlZ2lzdGVycyAqLw0KKyNkZWZpbmUgSENJX1JFR19BWAkw
CQkvKiBPcGVyYXRpb24sIHRoZW4gcmV0dXJuIHZhbHVlICovDQorI2RlZmlu
ZSBIQ0lfUkVHX0JYCTEJCS8qIEZ1bmN0aW9uICovDQorI2RlZmluZSBIQ0lf
UkVHX0NYCTIJCS8qIEFyZ3VtZW50IChpbiBvciBvdXQpICovDQorI2RlZmlu
ZSBIQ0lfUkVHX0RYCTMJCS8qIFVudXNlZD8gKi8NCisjZGVmaW5lIEhDSV9S
RUdfU0kJNAkJLyogVW51c2VkPyAqLw0KKyNkZWZpbmUgSENJX1JFR19ESQk1
CQkvKiBVbnVzZWQ/ICovDQorDQorc3RydWN0IGFjcGlfdG9zaGliYV9zb2Z0
YyB7DQorCWRldmljZV90CWRldjsNCisJQUNQSV9IQU5ETEUJaGFuZGxlOw0K
KwlzdHJ1Y3QJCXN5c2N0bF9jdHhfbGlzdCBzeXNjdGxfY3R4Ow0KKwlzdHJ1
Y3QJCXN5c2N0bF9vaWQgKnN5c2N0bF90cmVlOw0KK307DQorDQorLyogUHJv
dG90eXBlIGZvciBIQ0kgZnVuY3Rpb25zIGZvciBnZXR0aW5nL3NldHRpbmcg
YSB2YWx1ZS4gKi8NCit0eXBlZGVmIGludAloY2lfZm5fdChBQ1BJX0hBTkRM
RSwgaW50LCBVSU5UMzIgKik7DQorDQorc3RhdGljIGludAlhY3BpX3Rvc2hp
YmFfcHJvYmUoZGV2aWNlX3QgZGV2KTsNCitzdGF0aWMgaW50CWFjcGlfdG9z
aGliYV9hdHRhY2goZGV2aWNlX3QgZGV2KTsNCitzdGF0aWMgaW50CWFjcGlf
dG9zaGliYV9kZXRhY2goZGV2aWNlX3QgZGV2KTsNCitzdGF0aWMgaW50CWFj
cGlfdG9zaGliYV9zeXNjdGwoU1lTQ1RMX0hBTkRMRVJfQVJHUyk7DQorc3Rh
dGljIGhjaV9mbl90CWhjaV9mb3JjZV9mYW47DQorc3RhdGljIGhjaV9mbl90
CWhjaV92aWRlb19vdXRwdXQ7DQorc3RhdGljIGhjaV9mbl90CWhjaV9sY2Rf
YnJpZ2h0bmVzczsNCitzdGF0aWMgaGNpX2ZuX3QJaGNpX2xjZF9iYWNrbGln
aHQ7DQorc3RhdGljIGhjaV9mbl90CWhjaV9jcHVfc3BlZWQ7DQorc3RhdGlj
IGludAloY2lfY2FsbChBQ1BJX0hBTkRMRSBoLCBpbnQgb3AsIGludCBmdW5j
dGlvbiwgVUlOVDMyICphcmcpOw0KK3N0YXRpYyB2b2lkCWhjaV9rZXlfYWN0
aW9uKEFDUElfSEFORExFIGgsIFVJTlQzMiBrZXkpOw0KK3N0YXRpYyB2b2lk
CWFjcGlfdG9zaGliYV9ub3RpZnkoQUNQSV9IQU5ETEUgaCwgVUlOVDMyIG5v
dGlmeSwNCisJCQkJICAgIHZvaWQgKmNvbnRleHQpOw0KKw0KKy8qIFRhYmxl
IG9mIHN5c2N0bCBuYW1lcyBhbmQgSENJIGZ1bmN0aW9ucyB0byBjYWxsLiAq
Lw0KK3N0YXRpYyBzdHJ1Y3Qgew0KKwljaGFyCQkqbmFtZTsNCisJaGNpX2Zu
X3QJKmhhbmRsZXI7DQorfSBzeXNjdGxfdGFibGVbXSA9IHsNCisJLyogbmFt
ZSwJCWhhbmRsZXIgKi8NCisJeyJmb3JjZV9mYW4iLAkJaGNpX2ZvcmNlX2Zh
bn0sDQorCXsiY3B1X3NwZWVkIiwJCWhjaV9jcHVfc3BlZWR9LA0KKwl7InZp
ZGVvX291dHB1dCIsCWhjaV92aWRlb19vdXRwdXR9LA0KKwl7ImxjZF9iYWNr
bGlnaHQiLAloY2lfbGNkX2JhY2tsaWdodH0sDQorCXsibGNkX2JyaWdodG5l
c3MiLAloY2lfbGNkX2JyaWdodG5lc3N9LA0KKwl7TlVMTCwgTlVMTH0NCit9
Ow0KKw0KK3N0YXRpYyBkZXZpY2VfbWV0aG9kX3QgYWNwaV90b3NoaWJhX21l
dGhvZHNbXSA9IHsNCisJREVWTUVUSE9EKGRldmljZV9wcm9iZSwJCWFjcGlf
dG9zaGliYV9wcm9iZSksDQorCURFVk1FVEhPRChkZXZpY2VfYXR0YWNoLAlh
Y3BpX3Rvc2hpYmFfYXR0YWNoKSwNCisJREVWTUVUSE9EKGRldmljZV9kZXRh
Y2gsCWFjcGlfdG9zaGliYV9kZXRhY2gpLA0KKw0KKwl7MCwgMH0NCit9Ow0K
Kw0KK3N0YXRpYyBkcml2ZXJfdCBhY3BpX3Rvc2hpYmFfZHJpdmVyID0gew0K
KwkiYWNwaV90b3NoaWJhIiwNCisJYWNwaV90b3NoaWJhX21ldGhvZHMsDQor
CXNpemVvZihzdHJ1Y3QgYWNwaV90b3NoaWJhX3NvZnRjKSwNCit9Ow0KKw0K
K3N0YXRpYyBkZXZjbGFzc190IGFjcGlfdG9zaGliYV9kZXZjbGFzczsNCitE
UklWRVJfTU9EVUxFKGFjcGlfdG9zaGliYSwgYWNwaSwgYWNwaV90b3NoaWJh
X2RyaXZlciwgYWNwaV90b3NoaWJhX2RldmNsYXNzLA0KKwkgICAgICAwLCAw
KTsNCitNT0RVTEVfREVQRU5EKGFjcGlfdG9zaGliYSwgYWNwaSwgMTAwLCAx
MDAsIDEwMCk7DQorDQorc3RhdGljIGludAllbmFibGVfZm5fa2V5cyA9IDE7
DQorVFVOQUJMRV9JTlQoImh3LmFjcGkudG9zaGliYS5lbmFibGVfZm5fa2V5
cyIsICZlbmFibGVfZm5fa2V5cyk7DQorDQorLyoNCisgKiBISUQgICAgICBN
b2RlbA0KKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0NCisgKiBUT1M2MjAwICBMaWJyZXR0byBMIFNlcmllcw0KKyAqICAgICAg
ICAgIER5bmFib29rIFNhdGVsbGl0ZSAyNDU1DQorICogICAgICAgICAgRHlu
YWJvb2sgU1MgMzUwMA0KKyAqIFRPUzYyMDcgIER5bmFib29rIFNTMjExMCBT
ZXJpZXMNCisgKi8NCitzdGF0aWMgaW50DQorYWNwaV90b3NoaWJhX3Byb2Jl
KGRldmljZV90IGRldikNCit7DQorCWludCByZXQgPSBFTlhJTzsNCisNCisJ
aWYgKCFhY3BpX2Rpc2FibGVkKCJ0b3NoaWJhIikgJiYNCisJICAgIGFjcGlf
Z2V0X3R5cGUoZGV2KSA9PSBBQ1BJX1RZUEVfREVWSUNFICYmDQorCSAgICBk
ZXZpY2VfZ2V0X3VuaXQoZGV2KSA9PSAwICYmDQorCSAgICAoYWNwaV9NYXRj
aEhpZChkZXYsICJUT1M2MjAwIikgfHwNCisJICAgICBhY3BpX01hdGNoSGlk
KGRldiwgIlRPUzYyMDciKSkpIHsNCisJCWRldmljZV9zZXRfZGVzYyhkZXYs
ICJUb3NoaWJhIEV4dHJhIEhDSSIpOw0KKwkJcmV0ID0gMDsNCisJfQ0KKw0K
KwlyZXR1cm4gKHJldCk7DQorfQ0KKw0KK3N0YXRpYyBpbnQNCithY3BpX3Rv
c2hpYmFfYXR0YWNoKGRldmljZV90IGRldikNCit7DQorCXN0cnVjdAkJYWNw
aV90b3NoaWJhX3NvZnRjICpzYzsNCisJc3RydWN0CQlhY3BpX3NvZnRjICph
Y3BpX3NjOw0KKwlBQ1BJX1NUQVRVUwlzdGF0dXM7DQorCWludAkJaTsNCisN
CisJQUNQSV9GVU5DVElPTl9UUkFDRSgoY2hhciAqKSh1aW50cHRyX3QpX19m
dW5jX18pOw0KKw0KKwlzYyA9IGRldmljZV9nZXRfc29mdGMoZGV2KTsNCisJ
c2MtPmRldiA9IGRldjsNCisJc2MtPmhhbmRsZSA9IGFjcGlfZ2V0X2hhbmRs
ZShkZXYpOw0KKw0KKwlhY3BpX3NjID0gYWNwaV9kZXZpY2VfZ2V0X3BhcmVu
dF9zb2Z0YyhkZXYpOw0KKwlzeXNjdGxfY3R4X2luaXQoJnNjLT5zeXNjdGxf
Y3R4KTsNCisJc2MtPnN5c2N0bF90cmVlID0gU1lTQ1RMX0FERF9OT0RFKCZz
Yy0+c3lzY3RsX2N0eCwNCisJICAgIFNZU0NUTF9DSElMRFJFTihhY3BpX3Nj
LT5hY3BpX3N5c2N0bF90cmVlKSwgT0lEX0FVVE8sDQorCSAgICAidG9zaGli
YSIsIENUTEZMQUdfUkQsIDAsICIiKTsNCisNCisJZm9yIChpID0gMDsgc3lz
Y3RsX3RhYmxlW2ldLm5hbWUgIT0gTlVMTDsgaSsrKSB7DQorCQlTWVNDVExf
QUREX1BST0MoJnNjLT5zeXNjdGxfY3R4LA0KKwkJICAgIFNZU0NUTF9DSElM
RFJFTihzYy0+c3lzY3RsX3RyZWUpLCBPSURfQVVUTywNCisJCSAgICBzeXNj
dGxfdGFibGVbaV0ubmFtZSwNCisJCSAgICBDVExUWVBFX0lOVCB8IENUTEZM
QUdfUlcgfCBDVExGTEFHX0FOWUJPRFksDQorCQkgICAgc2MsIGksIGFjcGlf
dG9zaGliYV9zeXNjdGwsICJJIiwgIiIpOw0KKwl9DQorDQorCWlmIChlbmFi
bGVfZm5fa2V5cyAhPSAwKSB7DQorCQlzdGF0dXMgPSBBY3BpRXZhbHVhdGVP
YmplY3Qoc2MtPmhhbmRsZSwgTUVUSE9EX0hDSV9FTkFCTEUsDQorCQkJCQkg
ICAgTlVMTCwgTlVMTCk7DQorCQlpZiAoQUNQSV9GQUlMVVJFKHN0YXR1cykp
IHsNCisJCQlkZXZpY2VfcHJpbnRmKGRldiwgImVuYWJsZSBGTiBrZXlzIGZh
aWxlZFxuIik7DQorCQkJc3lzY3RsX2N0eF9mcmVlKCZzYy0+c3lzY3RsX2N0
eCk7DQorCQkJcmV0dXJuIChFTlhJTyk7DQorCQl9DQorCQlBY3BpSW5zdGFs
bE5vdGlmeUhhbmRsZXIoc2MtPmhhbmRsZSwgQUNQSV9ERVZJQ0VfTk9USUZZ
LA0KKwkJCQkJIGFjcGlfdG9zaGliYV9ub3RpZnksIHNjKTsNCisJfQ0KKw0K
KwlyZXR1cm4gKDApOw0KK30NCisNCitzdGF0aWMgaW50DQorYWNwaV90b3No
aWJhX2RldGFjaChkZXZpY2VfdCBkZXYpDQorew0KKwlzdHJ1Y3QJCWFjcGlf
dG9zaGliYV9zb2Z0YyAqc2M7DQorDQorCUFDUElfRlVOQ1RJT05fVFJBQ0Uo
KGNoYXIgKikodWludHB0cl90KV9fZnVuY19fKTsNCisNCisJc2MgPSBkZXZp
Y2VfZ2V0X3NvZnRjKGRldik7DQorCUFjcGlSZW1vdmVOb3RpZnlIYW5kbGVy
KHNjLT5oYW5kbGUsIEFDUElfREVWSUNFX05PVElGWSwNCisJCQkJYWNwaV90
b3NoaWJhX25vdGlmeSk7DQorCXN5c2N0bF9jdHhfZnJlZSgmc2MtPnN5c2N0
bF9jdHgpOw0KKw0KKwlyZXR1cm4gKDApOw0KK30NCisNCitzdGF0aWMgaW50
DQorYWNwaV90b3NoaWJhX3N5c2N0bChTWVNDVExfSEFORExFUl9BUkdTKQ0K
K3sNCisJc3RydWN0CQlhY3BpX3Rvc2hpYmFfc29mdGMgKnNjOw0KKwlVSU5U
MzIJCWFyZzsNCisJaW50CQlmdW5jdGlvbiwgZXJyb3IgPSAwOw0KKwloY2lf
Zm5fdAkqaGFuZGxlcjsNCisNCisJc2MgPSAoc3RydWN0IGFjcGlfdG9zaGli
YV9zb2Z0YyAqKW9pZHAtPm9pZF9hcmcxOw0KKwlmdW5jdGlvbiA9IG9pZHAt
Pm9pZF9hcmcyOw0KKwloYW5kbGVyID0gc3lzY3RsX3RhYmxlW2Z1bmN0aW9u
XS5oYW5kbGVyOw0KKw0KKwkvKiBHZXQgdGhlIGN1cnJlbnQgdmFsdWUgZnJv
bSB0aGUgYXBwcm9wcmlhdGUgZnVuY3Rpb24uICovDQorCWVycm9yID0gaGFu
ZGxlcihzYy0+aGFuZGxlLCBIQ0lfR0VULCAmYXJnKTsNCisJaWYgKGVycm9y
ICE9IDApDQorCQlyZXR1cm4gKGVycm9yKTsNCisNCisJLyogU2VuZCB0aGUg
Y3VycmVudCB2YWx1ZSB0byB0aGUgdXNlciBhbmQgcmV0dXJuIGlmIG5vIG5l
dyB2YWx1ZS4gKi8NCisJZXJyb3IgPSBzeXNjdGxfaGFuZGxlX2ludChvaWRw
LCAmYXJnLCAwLCByZXEpOw0KKwlpZiAoZXJyb3IgIT0gMCB8fCByZXEtPm5l
d3B0ciA9PSBOVUxMKQ0KKwkJcmV0dXJuIChlcnJvcik7DQorDQorCS8qIFNl
dCB0aGUgbmV3IHZhbHVlIHZpYSB0aGUgYXBwcm9wcmlhdGUgZnVuY3Rpb24u
ICovDQorCWVycm9yID0gaGFuZGxlcihzYy0+aGFuZGxlLCBIQ0lfU0VULCAm
YXJnKTsNCisNCisJcmV0dXJuIChlcnJvcik7DQorfQ0KKw0KK3N0YXRpYyBp
bnQNCitoY2lfZm9yY2VfZmFuKEFDUElfSEFORExFIGgsIGludCBvcCwgVUlO
VDMyICpzdGF0ZSkNCit7DQorCWludAkJcmV0Ow0KKw0KKwlpZiAoKnN0YXRl
IDwgMCB8fCAqc3RhdGUgPiAxKQ0KKwkJcmV0dXJuIChFSU5WQUwpOw0KKwlp
ZiAob3AgPT0gSENJX1NFVCkNCisJCSpzdGF0ZSA8PD0gNzsNCisJcmV0ID0g
aGNpX2NhbGwoaCwgb3AsIEhDSV9SRUdfRkFOLCBzdGF0ZSk7DQorCWlmIChy
ZXQgPT0gMCAmJiBvcCA9PSBIQ0lfR0VUKQ0KKwkJKnN0YXRlID4+PSA3Ow0K
KwlyZXR1cm4gKHJldCk7DQorfQ0KKw0KK3N0YXRpYyBpbnQNCitoY2lfdmlk
ZW9fb3V0cHV0KEFDUElfSEFORExFIGgsIGludCBvcCwgVUlOVDMyICp2aWRl
b19vdXRwdXQpDQorew0KKwlpbnQJCXJldDsNCisNCisJaWYgKCp2aWRlb19v
dXRwdXQgPCAwIHx8ICp2aWRlb19vdXRwdXQgPiA3KQ0KKwkJcmV0dXJuIChF
SU5WQUwpOw0KKwlpZiAob3AgPT0gSENJX1NFVCkNCisJCSp2aWRlb19vdXRw
dXQgfD0gSENJX1ZJREVPX09VVFBVVF9GTEFHOw0KKwlyZXQgPSBoY2lfY2Fs
bChoLCBvcCwgSENJX1JFR19WSURFT19PVVRQVVQsIHZpZGVvX291dHB1dCk7
DQorCWlmIChyZXQgPT0gMCAmJiBvcCA9PSBIQ0lfR0VUKQ0KKwkJKnZpZGVv
X291dHB1dCAmPSAweGZmOw0KKwlyZXR1cm4gKHJldCk7DQorfQ0KKw0KK3N0
YXRpYyBpbnQNCitoY2lfbGNkX2JyaWdodG5lc3MoQUNQSV9IQU5ETEUgaCwg
aW50IG9wLCBVSU5UMzIgKmJyaWdodG5lc3MpDQorew0KKwlpbnQJCXJldDsN
CisNCisJaWYgKCpicmlnaHRuZXNzIDwgMCB8fCAqYnJpZ2h0bmVzcyA+IDcp
DQorCQlyZXR1cm4gKEVJTlZBTCk7DQorCWlmIChvcCA9PSBIQ0lfU0VUKQ0K
KwkJKmJyaWdodG5lc3MgPDw9IEhDSV9MQ0RfQlJJR0hUTkVTU19TSElGVDsN
CisJcmV0ID0gaGNpX2NhbGwoaCwgb3AsIEhDSV9SRUdfTENEX0JSSUdIVE5F
U1MsIGJyaWdodG5lc3MpOw0KKwlpZiAocmV0ID09IDAgJiYgb3AgPT0gSENJ
X0dFVCkNCisJCSpicmlnaHRuZXNzID4+PSBIQ0lfTENEX0JSSUdIVE5FU1Nf
U0hJRlQ7DQorCXJldHVybiAocmV0KTsNCit9DQorDQorc3RhdGljIGludA0K
K2hjaV9sY2RfYmFja2xpZ2h0KEFDUElfSEFORExFIGgsIGludCBvcCwgVUlO
VDMyICpiYWNrbGlnaHQpDQorew0KKwlpZiAoKmJhY2tsaWdodCA8IDAgfHwg
KmJhY2tsaWdodCA+IDEpDQorCQlyZXR1cm4gKEVJTlZBTCk7DQorCXJldHVy
biAoaGNpX2NhbGwoaCwgb3AsIEhDSV9SRUdfTENEX0JBQ0tMSUdIVCwgYmFj
a2xpZ2h0KSk7DQorfQ0KKw0KK3N0YXRpYyBpbnQNCitoY2lfY3B1X3NwZWVk
KEFDUElfSEFORExFIGgsIGludCBvcCwgVUlOVDMyICpzcGVlZCkNCit7DQor
CWludAkJcmV0Ow0KKw0KKwlpZiAoKnNwZWVkIDwgMCB8fCAqc3BlZWQgPj0g
SENJX0NQVV9TUEVFRF9MRVZFTFMpDQorCQlyZXR1cm4gKEVJTlZBTCk7DQor
CWlmIChvcCA9PSBIQ0lfU0VUKQ0KKwkJKnNwZWVkIDw8PSBIQ0lfQ1BVX1NQ
RUVEX1NISUZUOw0KKwlyZXQgPSBoY2lfY2FsbChoLCBvcCwgSENJX1JFR19D
UFVfU1BFRUQsIHNwZWVkKTsNCisJaWYgKHJldCA9PSAwICYmIG9wID09IEhD
SV9HRVQpDQorCQkqc3BlZWQgPj49IEhDSV9DUFVfU1BFRURfU0hJRlQ7DQor
CXJldHVybiAocmV0KTsNCit9DQorDQorc3RhdGljIGludA0KK2hjaV9jYWxs
KEFDUElfSEFORExFIGgsIGludCBvcCwgaW50IGZ1bmN0aW9uLCBVSU5UMzIg
KmFyZykNCit7DQorCUFDUElfT0JKRUNUX0xJU1QgYXJnczsNCisJQUNQSV9C
VUZGRVIJcmVzdWx0czsNCisJQUNQSV9PQkpFQ1QJb2JqW0hDSV9XT1JEU107
DQorCUFDUElfT0JKRUNUCSpyZXM7DQorCWludAkJc3RhdHVzLCBpLCByZXQ7
DQorDQorCXN0YXR1cyA9IEVOWElPOw0KKw0KKwlmb3IgKGkgPSAwOyBpIDwg
SENJX1dPUkRTOyBpKyspIHsNCisJCW9ialtpXS5UeXBlID0gQUNQSV9UWVBF
X0lOVEVHRVI7DQorCQlvYmpbaV0uSW50ZWdlci5WYWx1ZSA9IDA7DQorCX0N
CisJb2JqW0hDSV9SRUdfQVhdLkludGVnZXIuVmFsdWUgPSBvcDsNCisJb2Jq
W0hDSV9SRUdfQlhdLkludGVnZXIuVmFsdWUgPSBmdW5jdGlvbjsNCisJaWYg
KG9wID09IEhDSV9TRVQpDQorCQlvYmpbSENJX1JFR19DWF0uSW50ZWdlci5W
YWx1ZSA9ICphcmc7DQorDQorCWFyZ3MuQ291bnQgPSBIQ0lfV09SRFM7DQor
CWFyZ3MuUG9pbnRlciA9IG9iajsNCisJcmVzdWx0cy5Qb2ludGVyID0gTlVM
TDsNCisJcmVzdWx0cy5MZW5ndGggPSBBQ1BJX0FMTE9DQVRFX0JVRkZFUjsN
CisJaWYgKEFDUElfRkFJTFVSRShBY3BpRXZhbHVhdGVPYmplY3QoaCwgTUVU
SE9EX0hDSSwgJmFyZ3MsICZyZXN1bHRzKSkpDQorCQlnb3RvIGVuZDsNCisJ
cmVzID0gKEFDUElfT0JKRUNUICopcmVzdWx0cy5Qb2ludGVyOw0KKwlpZiAo
IUFDUElfUEtHX1ZBTElEKHJlcywgSENJX1dPUkRTKSkgew0KKwkJcHJpbnRm
KCJ0b3NoaWJhOiBpbnZhbGlkIHBhY2thZ2UhXG4iKTsNCisJCXJldHVybiAo
RU5YSU8pOw0KKwl9DQorDQorCWFjcGlfUGtnSW50MzIocmVzLCBIQ0lfUkVH
X0FYLCAmcmV0KTsNCisJaWYgKHJldCA9PSBIQ0lfU1VDQ0VTUykgew0KKwkJ
aWYgKG9wID09IEhDSV9HRVQpDQorCQkJYWNwaV9Qa2dJbnQzMihyZXMsIEhD
SV9SRUdfQ1gsIGFyZyk7DQorCQlzdGF0dXMgPSAwOw0KKwl9IGVsc2UgaWYg
KGZ1bmN0aW9uID09IEhDSV9SRUdfU1lTVEVNX0VWRU5UICYmIG9wID09IEhD
SV9HRVQgJiYNCisJICAgIHJldCA9PSBIQ0lfTk9UX1NVUFBPUlRFRCkgew0K
KwkJLyoNCisJCSAqIFNvbWV0aW1lcyBzeXN0ZW0gZXZlbnRzIGFyZSBkaXNh
YmxlZCB3aXRob3V0IHVzIHJlcXVlc3RpbmcNCisJCSAqIGl0LiAgVGhpcyB3
b3JrYXJvdW5kIGF0dGVtcHRzIHRvIHJlLWVuYWJsZSB0aGVtLg0KKwkJICov
DQorCQkgaSA9IDE7DQorCQkgaGNpX2NhbGwoaCwgSENJX1NFVCwgSENJX1JF
R19TWVNURU1fRVZFTlQsICZpKTsNCisJfQ0KKw0KK2VuZDoNCisJaWYgKHJl
c3VsdHMuUG9pbnRlciAhPSBOVUxMKQ0KKwkJQWNwaU9zRnJlZShyZXN1bHRz
LlBvaW50ZXIpOw0KKw0KKwlyZXR1cm4gKHN0YXR1cyk7DQorfQ0KKw0KKy8q
DQorICogUGVyZm9ybSBhIGZldyBhY3Rpb25zIGJhc2VkIG9uIHRoZSBrZXlw
cmVzcy4gIFVzZXJzIGNhbiBleHRlbmQgdGhpcw0KKyAqIGZ1bmN0aW9uYWxp
dHkgYnkgcmVhZGluZyB0aGUga2V5c3Ryb2tlcyB3ZSBzZW5kIHRvIGRldmQo
OCkuDQorICovDQorc3RhdGljIHZvaWQNCitoY2lfa2V5X2FjdGlvbihBQ1BJ
X0hBTkRMRSBoLCBVSU5UMzIga2V5KQ0KK3sNCisJVUlOVDMyCQlhcmc7DQor
DQorCXN3aXRjaCAoa2V5KSB7DQorCWNhc2UgRk5fRjZfUkVMRUFTRToNCisJ
CS8qIERlY3JlYXNlIExDRCBicmlnaHRuZXNzLiAqLw0KKwkJaGNpX2xjZF9i
cmlnaHRuZXNzKGgsIEhDSV9HRVQsICZhcmcpOw0KKwkJaWYgKGFyZy0tID09
IDApDQorCQkJYXJnID0gMDsNCisJCWVsc2UNCisJCQloY2lfbGNkX2JyaWdo
dG5lc3MoaCwgSENJX1NFVCwgJmFyZyk7DQorCQlicmVhazsNCisJY2FzZSBG
Tl9GN19SRUxFQVNFOg0KKwkJLyogSW5jcmVhc2UgTENEIGJyaWdodG5lc3Mu
ICovDQorCQloY2lfbGNkX2JyaWdodG5lc3MoaCwgSENJX0dFVCwgJmFyZyk7
DQorCQlpZiAoYXJnKysgPT0gNykNCisJCQlhcmcgPSA3Ow0KKwkJZWxzZQ0K
KwkJCWhjaV9sY2RfYnJpZ2h0bmVzcyhoLCBIQ0lfU0VULCAmYXJnKTsNCisJ
CWJyZWFrOw0KKwljYXNlIEZOX0Y1X1JFTEVBU0U6DQorCQkvKiBDeWNsZSB0
aHJvdWdoIHZpZGVvIG91dHB1dHMuICovDQorCQloY2lfdmlkZW9fb3V0cHV0
KGgsIEhDSV9HRVQsICZhcmcpOw0KKwkJYXJnID0gKGFyZyArIDEpICUgNzsN
CisJCWhjaV92aWRlb19vdXRwdXQoaCwgSENJX1NFVCwgJmFyZyk7DQorCQli
cmVhazsNCisJY2FzZSBGTl9GOF9SRUxFQVNFOg0KKwkJLyogVG9nZ2xlIExD
RCBiYWNrbGlnaHQuICovDQorCQloY2lfbGNkX2JhY2tsaWdodChoLCBIQ0lf
R0VULCAmYXJnKTsNCisJCWFyZyA9IChhcmcgIT0gMCkgPyAwIDogMTsNCisJ
CWhjaV9sY2RfYmFja2xpZ2h0KGgsIEhDSV9TRVQsICZhcmcpOw0KKwkJYnJl
YWs7DQorCWNhc2UgRk5fRVNDX1JFTEVBU0U6DQorCQkvKiBUb2dnbGUgZm9y
Y2luZyBmYW4gb24uICovDQorCQloY2lfZm9yY2VfZmFuKGgsIEhDSV9HRVQs
ICZhcmcpOw0KKwkJYXJnID0gKGFyZyAhPSAwKSA/IDAgOiAxOw0KKwkJaGNp
X2ZvcmNlX2ZhbihoLCBIQ0lfU0VULCAmYXJnKTsNCisJCWJyZWFrOw0KKwl9
DQorfQ0KKw0KK3N0YXRpYyB2b2lkDQorYWNwaV90b3NoaWJhX25vdGlmeShB
Q1BJX0hBTkRMRSBoLCBVSU5UMzIgbm90aWZ5LCB2b2lkICpjb250ZXh0KQ0K
K3sNCisJc3RydWN0CQlhY3BpX3Rvc2hpYmFfc29mdGMgKnNjOw0KKwlVSU5U
MzIJCWtleTsNCisNCisJc2MgPSAoc3RydWN0IGFjcGlfdG9zaGliYV9zb2Z0
YyAqKWNvbnRleHQ7DQorDQorCWlmIChub3RpZnkgPT0gMHg4MCkgew0KKwkJ
d2hpbGUgKGhjaV9jYWxsKGgsIEhDSV9HRVQsIEhDSV9SRUdfU1lTVEVNX0VW
RU5ULCAma2V5KSA9PSAwKSB7DQorCQkJaGNpX2tleV9hY3Rpb24oaCwga2V5
KTsNCisJCQlhY3BpX1VzZXJOb3RpZnkoIlRPU0hJQkEiLCBoLCAodWludDhf
dClrZXkpOw0KKwkJfQ0KKwl9IGVsc2Ugew0KKwkJZGV2aWNlX3ByaW50Zihz
Yy0+ZGV2LCAidW5rbm93biBub3RpZnk6IDB4JXhcbiIsIG5vdGlmeSk7DQor
CX0NCit9DQpJbmRleDogc3lzL21vZHVsZXMvYWNwaS9hY3BpX3Rvc2hpYmEv
TWFrZWZpbGUNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiBz
eXMvbW9kdWxlcy9hY3BpL2FjcGlfdG9zaGliYS9NYWtlZmlsZQ0KZGlmZiAt
TiBzeXMvbW9kdWxlcy9hY3BpL2FjcGlfdG9zaGliYS9NYWtlZmlsZQ0KLS0t
IC9kZXYvbnVsbAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwDQorKysgc3lz
L21vZHVsZXMvYWNwaS9hY3BpX3Rvc2hpYmEvTWFrZWZpbGUJMjAgRGVjIDIw
MDMgMDM6MDc6MTggLTAwMDANCkBAIC0wLDAgKzEsOSBAQA0KKyMgJEZyZWVC
U0QkDQorDQorLlBBVEg6CQkkey5DVVJESVJ9Ly4uLy4uLy4uL2kzODYvYWNw
aWNhDQorDQorS01PRD0JCWFjcGlfdG9zaGliYQ0KK0NGTEFHUys9CS1JJHsu
Q1VSRElSfS8uLi8uLi8uLi9jb250cmliL2Rldi9hY3BpY2ENCitTUkNTPQkJ
YWNwaV90b3NoaWJhLmMgb3B0X2FjcGkuaCBkZXZpY2VfaWYuaCBidXNfaWYu
aA0KKw0KKy5pbmNsdWRlIDxic2Qua21vZC5taz4NCkluZGV4OiBzeXMvY29u
Zi9maWxlcy5pMzg2DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmls
ZTogL2hvbWUvbmN2cy9zcmMvc3lzL2NvbmYvZmlsZXMuaTM4Nix2DQpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuNDYwDQpkaWZmIC11IC1yMS40NjAgZmlsZXMu
aTM4Ng0KLS0tIHN5cy9jb25mL2ZpbGVzLmkzODYJMTEgRGVjIDIwMDMgMjI6
MzQ6MzYgLTAwMDAJMS40NjANCisrKyBzeXMvY29uZi9maWxlcy5pMzg2CTMw
IERlYyAyMDAzIDE4OjI2OjQ1IC0wMDAwDQpAQCAtMTY4LDYgKzE2OCw3IEBA
DQogZ2VvbS9nZW9tX21icl9lbmMuYwkJc3RhbmRhcmQNCiBpMzg2L2FjcGlj
YS9Pc2RFbnZpcm9ubWVudC5jCW9wdGlvbmFsCWFjcGkNCiBpMzg2L2FjcGlj
YS9hY3BpX21hY2hkZXAuYwlvcHRpb25hbAlhY3BpDQoraTM4Ni9hY3BpY2Ev
YWNwaV90b3NoaWJhLmMJb3B0aW9uYWwJYWNwaV90b3NoaWJhIGFjcGkNCiBp
Mzg2L2FjcGljYS9hY3BpX3dha2V1cC5jCW9wdGlvbmFsCWFjcGkNCiBhY3Bp
X3dha2Vjb2RlLmgJCQlvcHRpb25hbAlhY3BpCQkJXA0KIAlkZXBlbmRlbmN5
IAkiJFMvaTM4Ni9hY3BpY2EvYWNwaV93YWtlY29kZS5TIgkJXA0KSW5kZXg6
IHN5cy9pMzg2L2NvbmYvTk9URVMNCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
ClJDUyBmaWxlOiAvaG9tZS9uY3ZzL3NyYy9zeXMvaTM4Ni9jb25mL05PVEVT
LHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMTExDQpkaWZmIC11IC1yMS4x
MTExIE5PVEVTDQotLS0gc3lzL2kzODYvY29uZi9OT1RFUwkzMCBEZWMgMjAw
MyAwNzoyODo1NCAtMDAwMAkxLjExMTENCisrKyBzeXMvaTM4Ni9jb25mL05P
VEVTCTMwIERlYyAyMDAzIDE4OjI3OjI5IC0wMDAwDQpAQCAtNDM5LDYgKzQz
OSwxMCBAQA0KICMhb3B0aW9ucyAJQUNQSV9OT19TRU1BUEhPUkVTDQogIyFv
cHRpb25zIAlBQ1BJQ0FfUEVEQU5USUMNCiANCisjIEFDUEkgVG9zaGliYSBF
eHRyYXMgKExDRCBiYWNrbGlnaHQvYnJpZ2h0bmVzcywgdmlkZW8gb3V0cHV0
LCBldGMuKQ0KKyMNCitkZXZpY2UJCWFjcGlfdG9zaGliYQ0KKw0KICMgRFJN
IG9wdGlvbnM6DQogIyBtZ2Fkcm06ICAgIEFHUCBNYXRyb3ggRzIwMCwgRzQw
MCwgRzQ1MCwgRzU1MA0KICMgcjEyOGRybTogICBBVEkgUmFnZSAxMjgNCg==

--0-312821283-1073674805=:40983--
