From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?euc-kr?B?udqw5rnO?= Subject: [review] OMAP2 USB device DMA support Date: Fri, 10 Nov 2006 05:18:10 +0000 (GMT) Message-ID: <31432157.389061163135914340.JavaMail.weblogic@ep_ml21> Reply-To: kyungmin.park@samsung.com Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0033068863==" Return-path: Content-return: prohibited MIME-version: 1.0 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-omap-open-source-bounces@linux.omap.com Errors-To: linux-omap-open-source-bounces@linux.omap.com To: linux-omap-open-source@linux.omap.com List-Id: linux-omap@vger.kernel.org --===============0033068863== Content-return: prohibited Content-type: text/plain; charset=euc-kr Content-transfer-encoding: base64 SGksDQoNCkkgbmVlZCB0byBoZWxwIHdpdGggVVNCIGRldmljZSBETUEuDQoNCkFmdGVyIHNvbWUg d29yaywgSSBjYW4gdXNlIERNQSB3aXRoIG1pbm9yIHByb2JsZW0uDQoNCkFmdGVyIGxvYWRpbmcg Z19maWxlX3N0cm9hZ2UsIEkgZ290IG1lc3NhZ2VzIGJlbG93Lg0KSXQgb25seSBkaXNwbGF5cyBv bmNlLCBhZnRlciBkZXRlY3Rpb24gaXQgd29ya3Mgd2VsbC4NCg0KU28gSSB0aGluayB3ZSBoYXZl IGEgcHJvYmxlbSB3aXRoIHByb3RvY29sIHdpdGggd2luZG93cy4NCkluIGZhY3QsIEkgZG9uJ3Qg a25vdyBmaWxlIHN0b3JhZ2UgcHJvdG9jb2wgd2l0aCB3aW5kb3dzLg0KDQpEbyB5b3UgaGF2ZSBh bnkgaWRlYT8NCg0KQW55IGNvbW1lbnRzIGFyZSB3ZWxjb21lLg0KDQpUaGFuayB5b3UsDQpLeXVu Z21pbiBQYXJrDQoNClAuUy4sIEkgYWxzbyBhdHRhY2hlZCB0aGUgdXNiIGRtYSBwYXRjaC4NCg0K LyAjIGluc21vZCAvdXNiL2dfZmlsZV9zdG9yYWdlLmtvLTIuNi4xOSBmaWxlPS9kZXYvc3RsNg0K VXNpbmcgL3VzYi9nX2ZpbGVfc3RvcmFnZS5rby0yLjYuMTkNCmdfZmlsZV9zdG9yYWdlIGdhZGdl dDogRmlsZS1iYWNrZWQgU3RvcmFnZSBHYWRnZXQsIHZlcnNpb246IDI4IE5vdmVtYmVyIDIwMDUN CmdfZmlsZV9zdG9yYWdlIGdhZGdldDogTnVtYmVyIG9mIExVTnM9MQ0KZ19maWxlX3N0b3JhZ2Ug Z2FkZ2V0LWx1bjA6IHJvPTAsIGZpbGU6IC9kZXYvc3RsNg0KLyAjIHVkYzogVVNCIHJlc2V0IGRv bmUsIGdhZGdldCBnX2ZpbGVfc3RvcmFnZQ0KdWRjOiBVU0IgcmVzZXQgZG9uZSwgZ2FkZ2V0IGdf ZmlsZV9zdG9yYWdlDQpnX2ZpbGVfc3RvcmFnZSBnYWRnZXQ6IGZ1bGwgc3BlZWQgY29uZmlnICMx DQpnX2ZpbGVfc3RvcmFnZSBnYWRnZXQ6IGVycm9yIGluIHN1Ym1pc3Npb246IGVwMm91dC1idWxr IC0tPiAtOTANCnVkYzogVVNCIHJlc2V0IGRvbmUsIGdhZGdldCBnX2ZpbGVfc3RvcmFnZQ0KdWRj OiBVU0IgcmVzZXQgZG9uZSwgZ2FkZ2V0IGdfZmlsZV9zdG9yYWdlDQpnX2ZpbGVfc3RvcmFnZSBn YWRnZXQ6IGZ1bGwgc3BlZWQgY29uZmlnICMxDQpnX2ZpbGVfc3RvcmFnZSBnYWRnZXQ6IGVycm9y IGluIHN1Ym1pc3Npb246IGVwMm91dC1idWxrIC0tPiAtOTANCnVkYzogVVNCIHJlc2V0IGRvbmUs IGdhZGdldCBnX2ZpbGVfc3RvcmFnZQ0KdWRjOiBVU0IgcmVzZXQgZG9uZSwgZ2FkZ2V0IGdfZmls ZV9zdG9yYWdlDQpnX2ZpbGVfc3RvcmFnZSBnYWRnZXQ6IGZ1bGwgc3BlZWQgY29uZmlnICMxDQpn X2ZpbGVfc3RvcmFnZSBnYWRnZXQ6IGVycm9yIGluIHN1Ym1pc3Npb246IGVwMm91dC1idWxrIC0t PiAtOTANCnVkYzogVVNCIHJlc2V0IGRvbmUsIGdhZGdldCBnX2ZpbGVfc3RvcmFnZQ0KdWRjOiBV U0IgcmVzZXQgZG9uZSwgZ2FkZ2V0IGdfZmlsZV9zdG9yYWdlDQpnX2ZpbGVfc3RvcmFnZSBnYWRn ZXQ6IGZ1bGwgc3BlZWQgY29uZmlnICMxDQpnX2ZpbGVfc3RvcmFnZSBnYWRnZXQ6IGVycm9yIGlu IHN1Ym1pc3Npb246IGVwMm91dC1idWxrIC0tPiAtOTANCnVkYzogVVNCIHJlc2V0IGRvbmUsIGdh ZGdldCBnX2ZpbGVfc3RvcmFnZQ0KdWRjOiBVU0IgcmVzZXQgZG9uZSwgZ2FkZ2V0IGdfZmlsZV9z dG9yYWdlDQpnX2ZpbGVfc3RvcmFnZSBnYWRnZXQ6IGZ1bGwgc3BlZWQgY29uZmlnICMxDQpnX2Zp bGVfc3RvcmFnZSBnYWRnZXQ6IGVycm9yIGluIHN1Ym1pc3Npb246IGVwMm91dC1idWxrIC0tPiAt OTANCnVkYzogVVNCIHJlc2V0IGRvbmUsIGdhZGdldCBnX2ZpbGVfc3RvcmFnZQ0KdWRjOiBVU0Ig cmVzZXQgZG9uZSwgZ2FkZ2V0IGdfZmlsZV9zdG9yYWdlDQpnX2ZpbGVfc3RvcmFnZSBnYWRnZXQ6 IGZ1bGwgc3BlZWQgY29uZmlnICMxDQpnX2ZpbGVfc3RvcmFnZSBnYWRnZXQ6IGVycm9yIGluIHN1 Ym1pc3Npb246IGVwMm91dC1idWxrIC0tPiAtOTANCnVkYzogVVNCIHJlc2V0IGRvbmUsIGdhZGdl dCBnX2ZpbGVfc3RvcmFnZQ0KdWRjOiBVU0IgcmVzZXQgZG9uZSwgZ2FkZ2V0IGdfZmlsZV9zdG9y YWdlDQpnX2ZpbGVfc3RvcmFnZSBnYWRnZXQ6IGZ1bGwgc3BlZWQgY29uZmlnICMxDQpnX2ZpbGVf c3RvcmFnZSBnYWRnZXQ6IGVycm9yIGluIHN1Ym1pc3Npb246IGVwMm91dC1idWxrIC0tPiAtOTAN CnVkYzogVVNCIHJlc2V0IGRvbmUsIGdhZGdldCBnX2ZpbGVfc3RvcmFnZQ0KdWRjOiBVU0IgcmVz ZXQgZG9uZSwgZ2FkZ2V0IGdfZmlsZV9zdG9yYWdlDQpnX2ZpbGVfc3RvcmFnZSBnYWRnZXQ6IGZ1 bGwgc3BlZWQgY29uZmlnICMxDQpnX2ZpbGVfc3RvcmFnZSBnYWRnZXQ6IGVycm9yIGluIHN1Ym1p c3Npb246IGVwMm91dC1idWxrIC0tPiAtOTANCnVkYzogVVNCIHJlc2V0IGRvbmUsIGdhZGdldCBn X2ZpbGVfc3RvcmFnZQ0KdWRjOiBVU0IgcmVzZXQgZG9uZSwgZ2FkZ2V0IGdfZmlsZV9zdG9yYWdl DQpnX2ZpbGVfc3RvcmFnZSBnYWRnZXQ6IGZ1bGwgc3BlZWQgY29uZmlnICMxDQpnX2ZpbGVfc3Rv cmFnZSBnYWRnZXQ6IGVycm9yIGluIHN1Ym1pc3Npb246IGVwMm91dC1idWxrIC0tPiAtOTANCnVk YzogVVNCIHJlc2V0IGRvbmUsIGdhZGdldCBnX2ZpbGVfc3RvcmFnZQ0KdWRjOiBVU0IgcmVzZXQg ZG9uZSwgZ2FkZ2V0IGdfZmlsZV9zdG9yYWdlDQpnX2ZpbGVfc3RvcmFnZSBnYWRnZXQ6IGZ1bGwg c3BlZWQgY29uZmlnICMxDQpnX2ZpbGVfc3RvcmFnZSBnYWRnZXQ6IGVycm9yIGluIHN1Ym1pc3Np b246IGVwMm91dC1idWxrIC0tPiAtOTANCnVkYzogVVNCIHJlc2V0IGRvbmUsIGdhZGdldCBnX2Zp bGVfc3RvcmFnZQ0KdWRjOiBVU0IgcmVzZXQgZG9uZSwgZ2FkZ2V0IGdfZmlsZV9zdG9yYWdlDQpn X2ZpbGVfc3RvcmFnZSBnYWRnZXQ6IGZ1bGwgc3BlZWQgY29uZmlnICMxDQoNCi0tDQoNCg0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9vbWFwX3VkYy5jIGIvZHJpdmVycy91c2IvZ2Fk Z2V0L29tYXBfdWRjLmMNCmluZGV4IDMxZGYwMmUuLjVjYjMxOTggMTAwNjQ0DQotLS0gYS9kcml2 ZXJzL3VzYi9nYWRnZXQvb21hcF91ZGMuYw0KKysrIGIvZHJpdmVycy91c2IvZ2FkZ2V0L29tYXBf dWRjLmMNCkBAIC02Myw3ICs2Myw3IEBADQogDQogLyogRklYTUU6IE9NQVAyIGN1cnJlbnRseSBo YXMgc29tZSBwcm9ibGVtIGluIERNQSBtb2RlICovDQogI2lmZGVmIENPTkZJR19BUkNIX09NQVAy DQotI3VuZGVmIFVTRV9ETUENCisvLyN1bmRlZiBVU0VfRE1BDQogI2VuZGlmDQogDQogLyogSVNP IHRvbyAqLw0KQEAgLTc0LDYgKzc0LDcgQEANCiANCiAjZGVmaW5lCURNQV9BRERSX0lOVkFMSUQJ KH4oZG1hX2FkZHJfdCkwKQ0KIA0KKyNkZWZpbmUgT01BUDJfRE1BX0NIKGNoKQkoKChjaCkgLSAx KSA8PCAxKQ0KIA0KIC8qDQogICogVGhlIE9NQVAgVURDIG5lZWRzIF92ZXJ5XyBlYXJseSBlbmRw b2ludCBzZXR1cDogIGJlZm9yZSBlbmFibGluZyB0aGUNCkBAIC02MjAsMjAgKzYyMSwyNSBAQCBz dGF0aWMgdm9pZCBuZXh0X2luX2RtYShzdHJ1Y3Qgb21hcF9lcCAqDQogCWNvbnN0IGludAlzeW5j X21vZGUgPSBjcHVfaXNfb21hcDE1eHgoKQ0KIAkJCQk/IE9NQVBfRE1BX1NZTkNfRlJBTUUNCiAJ CQkJOiBPTUFQX0RNQV9TWU5DX0VMRU1FTlQ7DQorCWludAkJZG1hX3RyaWdnZXIgPSAwOw0KKw0K KwlpZiAoY3B1X2lzX29tYXAyNHh4KCkpDQorCQlkbWFfdHJpZ2dlciA9IE9NQVAyNFhYX0RNQV9V U0JfVzJGQ19UWDAgKyBPTUFQMl9ETUFfQ0goZXAtPmRtYV9jaGFubmVsKTsNCiANCiAJLyogbWVh c3VyZSBsZW5ndGggaW4gZWl0aGVyIGJ5dGVzIG9yIHBhY2tldHMgKi8NCiAJaWYgKChjcHVfaXNf b21hcDE2eHgoKSAmJiBsZW5ndGggPD0gVURDX1RYTl9UU0MpDQorCQkJfHwgKGNwdV9pc19vbWFw MjR4eCgpICYmIGxlbmd0aCA8PSBlcC0+bWF4cGFja2V0KQ0KIAkJCXx8IChjcHVfaXNfb21hcDE1 eHgoKSAmJiBsZW5ndGggPCBlcC0+bWF4cGFja2V0KSkgew0KIAkJdHhkbWFfY3RybCA9IFVEQ19U WE5fRU9UIHwgbGVuZ3RoOw0KIAkJb21hcF9zZXRfZG1hX3RyYW5zZmVyX3BhcmFtcyhlcC0+bGNo LCBPTUFQX0RNQV9EQVRBX1RZUEVfUzgsDQotCQkJCWxlbmd0aCwgMSwgc3luY19tb2RlLCAwLCAw KTsNCisJCQkJbGVuZ3RoLCAxLCBzeW5jX21vZGUsIGRtYV90cmlnZ2VyLCAwKTsNCiAJfSBlbHNl IHsNCiAJCWxlbmd0aCA9IG1pbihsZW5ndGggLyBlcC0+bWF4cGFja2V0LA0KIAkJCQkodW5zaWdu ZWQpIFVEQ19UWE5fVFNDICsgMSk7DQogCQl0eGRtYV9jdHJsID0gbGVuZ3RoOw0KIAkJb21hcF9z ZXRfZG1hX3RyYW5zZmVyX3BhcmFtcyhlcC0+bGNoLCBPTUFQX0RNQV9EQVRBX1RZUEVfUzE2LA0K IAkJCQllcC0+ZXAubWF4cGFja2V0ID4+IDEsIGxlbmd0aCwgc3luY19tb2RlLA0KLQkJCQkwLCAw KTsNCisJCQkJZG1hX3RyaWdnZXIsIDApOw0KIAkJbGVuZ3RoICo9IGVwLT5tYXhwYWNrZXQ7DQog CX0NCiAJb21hcF9zZXRfZG1hX3NyY19wYXJhbXMoZXAtPmxjaCwgT01BUF9ETUFfUE9SVF9FTUlG RiwNCkBAIC02NzIsMTEgKzY3OCwxNSBAQCBzdGF0aWMgdm9pZCBmaW5pc2hfaW5fZG1hKHN0cnVj dCBvbWFwX2VwDQogc3RhdGljIHZvaWQgbmV4dF9vdXRfZG1hKHN0cnVjdCBvbWFwX2VwICplcCwg c3RydWN0IG9tYXBfcmVxICpyZXEpDQogew0KIAl1bnNpZ25lZCBwYWNrZXRzOw0KKwlpbnQgZG1h X3RyaWdnZXIgPSAwOw0KIA0KIAkvKiBOT1RFOiAgd2UgZmlsdGVyZWQgb3V0ICJzaG9ydCByZWFk cyIgYmVmb3JlLCBzbyB3ZSBrbm93DQogCSAqIHRoZSBidWZmZXIgaGFzIG9ubHkgd2hvbGUgbnVt YmVycyBvZiBwYWNrZXRzLg0KIAkgKi8NCiANCisJaWYgKGNwdV9pc19vbWFwMjR4eCgpKQ0KKwkJ ZG1hX3RyaWdnZXIgPSBPTUFQMjRYWF9ETUFfVVNCX1cyRkNfUlgwICsgT01BUDJfRE1BX0NIKGVw LT5kbWFfY2hhbm5lbCk7DQorDQogCS8qIHNldCB1cCB0aGlzIERNQSB0cmFuc2ZlciwgZW5hYmxl IHRoZSBmaWZvLCBzdGFydCAqLw0KIAlwYWNrZXRzID0gKHJlcS0+cmVxLmxlbmd0aCAtIHJlcS0+ cmVxLmFjdHVhbCkgLyBlcC0+ZXAubWF4cGFja2V0Ow0KIAlwYWNrZXRzID0gbWluKHBhY2tldHMs ICh1bnNpZ25lZClVRENfUlhOX1RDICsgMSk7DQpAQCAtNjg0LDcgKzY5NCw3IEBAIHN0YXRpYyB2 b2lkIG5leHRfb3V0X2RtYShzdHJ1Y3Qgb21hcF9lcCANCiAJb21hcF9zZXRfZG1hX3RyYW5zZmVy X3BhcmFtcyhlcC0+bGNoLCBPTUFQX0RNQV9EQVRBX1RZUEVfUzE2LA0KIAkJCWVwLT5lcC5tYXhw YWNrZXQgPj4gMSwgcGFja2V0cywNCiAJCQlPTUFQX0RNQV9TWU5DX0VMRU1FTlQsDQotCQkJMCwg MCk7DQorCQkJZG1hX3RyaWdnZXIsIDApOw0KIAlvbWFwX3NldF9kbWFfZGVzdF9wYXJhbXMoZXAt PmxjaCwgT01BUF9ETUFfUE9SVF9FTUlGRiwNCiAJCU9NQVBfRE1BX0FNT0RFX1BPU1RfSU5DLCBy ZXEtPnJlcS5kbWEgKyByZXEtPnJlcS5hY3R1YWwsDQogCQkwLCAwKTsNCkBAIC03OTIsNiArODAy LDcgQEAgc3RhdGljIHZvaWQgZG1hX2NoYW5uZWxfY2xhaW0oc3RydWN0IG9tYQ0KIHsNCiAJdTE2 CXJlZzsNCiAJaW50CXN0YXR1cywgcmVzdGFydCwgaXNfaW47DQorCWludAlkbWFfY2hhbm5lbDsN CiANCiAJaXNfaW4gPSBlcC0+YkVuZHBvaW50QWRkcmVzcyAmIFVTQl9ESVJfSU47DQogCWlmIChp c19pbikNCkBAIC04MTgsMTEgKzgyOSwxNSBAQCBzdGF0aWMgdm9pZCBkbWFfY2hhbm5lbF9jbGFp bShzdHJ1Y3Qgb21hDQogCWVwLT5kbWFfY2hhbm5lbCA9IGNoYW5uZWw7DQogDQogCWlmIChpc19p bikgew0KLQkJc3RhdHVzID0gb21hcF9yZXF1ZXN0X2RtYShPTUFQX0RNQV9VU0JfVzJGQ19UWDAg LSAxICsgY2hhbm5lbCwNCisJCWlmIChjcHVfaXNfb21hcDI0eHgoKSkNCisJCQlkbWFfY2hhbm5l bCA9IE9NQVAyNFhYX0RNQV9VU0JfVzJGQ19UWDAgKyBPTUFQMl9ETUFfQ0goY2hhbm5lbCk7DQor CQllbHNlDQorCQkJZG1hX2NoYW5uZWwgPSBPTUFQX0RNQV9VU0JfVzJGQ19UWDAgLSAxICsgY2hh bm5lbDsNCisJCXN0YXR1cyA9IG9tYXBfcmVxdWVzdF9kbWEoZG1hX2NoYW5uZWwsDQogCQkJZXAt PmVwLm5hbWUsIGRtYV9lcnJvciwgZXAsICZlcC0+bGNoKTsNCiAJCWlmIChzdGF0dXMgPT0gMCkg ew0KIAkJCVVEQ19UWERNQV9DRkdfUkVHID0gcmVnOw0KLQkJCS8qIEVNSUZGICovDQorCQkJLyog RU1JRkYgb3IgU0RSQyovDQogCQkJb21hcF9zZXRfZG1hX3NyY19idXJzdF9tb2RlKGVwLT5sY2gs DQogCQkJCQkJT01BUF9ETUFfREFUQV9CVVJTVF80KTsNCiAJCQlvbWFwX3NldF9kbWFfc3JjX2Rh dGFfcGFjayhlcC0+bGNoLCAxKTsNCkBAIC04MzQsNyArODQ5LDExIEBAIHN0YXRpYyB2b2lkIGRt YV9jaGFubmVsX2NsYWltKHN0cnVjdCBvbWENCiAJCQkJMCwgMCk7DQogCQl9DQogCX0gZWxzZSB7 DQotCQlzdGF0dXMgPSBvbWFwX3JlcXVlc3RfZG1hKE9NQVBfRE1BX1VTQl9XMkZDX1JYMCAtIDEg KyBjaGFubmVsLA0KKwkJaWYgKGNwdV9pc19vbWFwMjR4eCgpKQ0KKwkJCWRtYV9jaGFubmVsID0g T01BUDI0WFhfRE1BX1VTQl9XMkZDX1JYMCArIE9NQVAyX0RNQV9DSChjaGFubmVsKTsNCisJCWVs c2UNCisJCQlkbWFfY2hhbm5lbCA9IE9NQVBfRE1BX1VTQl9XMkZDX1JYMCAtIDEgKyBjaGFubmVs Ow0KKwkJc3RhdHVzID0gb21hcF9yZXF1ZXN0X2RtYShkbWFfY2hhbm5lbCwNCiAJCQllcC0+ZXAu bmFtZSwgZG1hX2Vycm9yLCBlcCwgJmVwLT5sY2gpOw0KIAkJaWYgKHN0YXR1cyA9PSAwKSB7DQog CQkJVURDX1JYRE1BX0NGR19SRUcgPSByZWc7DQpAQCAtODQ0LDcgKzg2Myw3IEBAIHN0YXRpYyB2 b2lkIGRtYV9jaGFubmVsX2NsYWltKHN0cnVjdCBvbWENCiAJCQkJT01BUF9ETUFfQU1PREVfQ09O U1RBTlQsDQogCQkJCSh1bnNpZ25lZCBsb25nKSBpb192MnAoKHUzMikmVURDX0RBVEFfRE1BX1JF RyksDQogCQkJCTAsIDApOw0KLQkJCS8qIEVNSUZGICovDQorCQkJLyogRU1JRkYgb3IgU0RSQyAq Lw0KIAkJCW9tYXBfc2V0X2RtYV9kZXN0X2J1cnN0X21vZGUoZXAtPmxjaCwNCiAJCQkJCQlPTUFQ X0RNQV9EQVRBX0JVUlNUXzQpOw0KIAkJCW9tYXBfc2V0X2RtYV9kZXN0X2RhdGFfcGFjayhlcC0+ bGNoLCAxKTsNCkBAIC04NTcsNyArODc2LDcgQEAgc3RhdGljIHZvaWQgZG1hX2NoYW5uZWxfY2xh aW0oc3RydWN0IG9tYQ0KIAkJb21hcF9kaXNhYmxlX2RtYV9pcnEoZXAtPmxjaCwgT01BUF9ETUFf QkxPQ0tfSVJRKTsNCiANCiAJCS8qIGNoYW5uZWwgdHlwZSBQOiBodyBzeW5jaCAoZmlmbykgKi8N Ci0JCWlmICghY3B1X2lzX29tYXAxNXh4KCkpDQorCQlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkg JiYgIWNwdV9pc19vbWFwMTV4eCgpKQ0KIAkJCU9NQVAxX0RNQV9MQ0hfQ1RSTF9SRUcoZXAtPmxj aCkgPSAyOw0KIAl9DQogDQpAQCAtMjU3OSw3ICsyNTk4LDcgQEAgb21hcF9lcF9zZXR1cChjaGFy ICpuYW1lLCB1OCBhZGRyLCB1OCB0eQ0KIAkJICogKGZvciBtb3JlIHJlbGlhYmxlIGJlaGF2aW9y KQ0KIAkJICovDQogCQlpZiAoKCF1c2VfZG1hICYmIChhZGRyICYgVVNCX0RJUl9JTikpDQotCQkJ CXx8IG1hY2hpbmVfaXNfb21hcF9hcG9sbG9uKCkNCisJCQkJfHwgKCF1c2VfZG1hICYmIG1hY2hp bmVfaXNfb21hcF9hcG9sbG9uKCkpDQogCQkJCXx8IGNwdV9pc19vbWFwMTV4eCgpKQ0KIAkJCWRi dWYgPSAwOw0KIA0KDQo= --===============0033068863== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline --===============0033068863==--