From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from atlrel2.hp.com (atlrel2.hp.com [156.153.255.202]) by dsl2.external.hp.com (Postfix) with ESMTP id 175C2482A for ; Wed, 4 Apr 2001 10:57:49 -0600 (MDT) From: Bjorn Helgaas To: rbradetich@uswest.net, Ryan Bradetich , parisc-linux@lists.parisc-linux.org Subject: Re: [parisc-linux] [PATCH] PDC cleanup and encapsulation Date: Wed, 4 Apr 2001 09:57:25 -0700 Content-Type: Multipart/Mixed; charset="us-ascii"; boundary="------------Boundary-00=_PR1A3TL1EFSHDQCUCEMZ" References: <20010403180344.A6792@beavis.ybsoft.com> In-Reply-To: <20010403180344.A6792@beavis.ybsoft.com> MIME-Version: 1.0 Message-Id: <0104041057250C.19560@eeyore.fc.hp.com> List-ID: --------------Boundary-00=_PR1A3TL1EFSHDQCUCEMZ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8bit Looks good to me. A couple minor questions/comments, more for my edification than anything else: - pdc.h contains a commented-out struct pdc_iodc. The comment suggests possible issues with using it with 64-bit firmware, but I think the fear is unfounded. There are several places that use pdc_iodc_read(), but they all seem to define their own equivalent of struct pdc_iodc. I'm not sure why they don't use struct pdc_iodc. Also, include/asm-parisc/hardware.h contains #defines for the IODC_TYPE field (HPHW_NPROC, etc); should these be defined alongside struct pdc_iodc? - What are the guidelines for #ifdef __LP64__ vs CONFIG_PA20? You replaced __LP64__ with CONFIG_PA20 in some places but not others and I'm not clear on the difference. - In firmware.c, the "yes 'int', not 'long' -- IODC I/O is always 32-bit stuff" comment moved from pdc.h seems obsolete, or at least, I can't figure out what the 'int' refers to. I'd remove the "This means Cxxx boxes can't run wide kernels right now." comment, since CONFIG_PDC_NARROW addresses that issue. I attached a diff that fixes a few typos. Bjorn --------------Boundary-00=_PR1A3TL1EFSHDQCUCEMZ Content-Type: text/english; name="spell" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="spell" ZGlmZiAtdXJOIGxpbnV4L2FyY2gvcGFyaXNjL2tlcm5lbC9maXJtd2FyZS5jIGxpbnV4LndpcC9h cmNoL3BhcmlzYy9rZXJuZWwvZmlybXdhcmUuYwotLS0gbGludXgvYXJjaC9wYXJpc2Mva2VybmVs L2Zpcm13YXJlLmMJV2VkIEFwciAgNCAxMDozNTo1OCAyMDAxCisrKyBsaW51eC53aXAvYXJjaC9w YXJpc2Mva2VybmVsL2Zpcm13YXJlLmMJV2VkIEFwciAgNCAxMDo0OTowOSAyMDAxCkBAIC0xMiw3 ICsxMiw3IEBACiAgKgkgLSB0aGUgbmFtZSBvZiB0aGUgcGRjIHdyYXBwZXIgc2hvdWxkIG1hdGNo IG9uZSBvZiB0aGUgbWFjcm9zCiAgKgkgICB1c2VkIGZvciB0aGUgZmlyc3QgdHdvIGFyZ3VtZW50 cwogICoJIC0gZG9uJ3QgdXNlIGNhcHMgZm9yIHJhbmRvbSBwYXJ0cyBvZiB0aGUgbmFtZQotICoJ IC0gdXNlIEFTU0VSVF9BTElHTiB0byBlbnN1cmUgdGhlIGFsaWdtZW50IG9mIHRoZSBhcmd1bWVu dHMgaXMKKyAqCSAtIHVzZSBBU1NFUlRfQUxJR04gdG8gZW5zdXJlIHRoZSBhbGlnbm1lbnQgb2Yg dGhlIGFyZ3VtZW50cyBpcwogICoJICAgY29ycmVjdAogICoJIC0gdXNlIF9fcGEoKSB0byBjb252 ZXJ0IHZpcnR1YWwgKGtlcm5lbCkgcG9pbnRlcnMgdG8gcGh5c2ljYWwKICAqCSAgIG9uZXMuCkBA IC0xMDYsNyArMTA2LDcgQEAKICAqIGNvbnZlcnRfdG9fd2lkZSAtIENvbnZlcnQgdGhlIHJldHVy biBidWZmZXIgYWRkcmVzc2VzIGludG8ga2VybmVsIGFkZHJlc3Nlcy4KICAqIEBhZGRyZXNzOiBU aGUgcmV0dXJuIGJ1ZmZlciBmcm9tIFBEQy4KICAqCi0gKiBUaGlzIGZ1Y250aW9uIGlzIHVzZWQg dG8gY29udmVydCB0aGUgcmV0dXJuIGJ1ZmZlciBhZGRyZXNzZXMgcmV0cmlldmUgZnJvbSBQREMK KyAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBjb252ZXJ0IHRoZSByZXR1cm4gYnVmZmVyIGFk ZHJlc3NlcyByZXRyaWV2ZWQgZnJvbSBQREMKICAqIGludG8ga2VybmVsIGFkZHJlc3NlcyB3aGVu IHRoZSBQREMgYWRkcmVzcyBzaXplIGFuZCBrZXJuZWwgYWRkcmVzcyBzaXplIGFyZQogICogZGlm ZmVyZW50LgogICovCkBAIC0xMjEsNyArMTIxLDcgQEAKIH0KIAogLyoqCi0gKiBwZGNfYWRkX3Zh bGlkIC0gVmVyaWZ5IGFkZHJlc3MgY2FuIGJlIGFjY2Vzc2VzZCB3aXRob3V0IGNhdXNpbmcgYSBI UE1DLgorICogcGRjX2FkZF92YWxpZCAtIFZlcmlmeSBhZGRyZXNzIGNhbiBiZSBhY2Nlc3NlZCB3 aXRob3V0IGNhdXNpbmcgYSBIUE1DLgogICogQGFkZHJlc3M6IEFkZHJlc3MgdG8gYmUgdmVyaWZp ZWQuCiAgKgogICogVGhpcyBQREMgY2FsbCBhdHRlbXB0cyB0byByZWFkIGZyb20gdGhlIHNwZWNp ZmllZCBhZGRyZXNzIGFuZCB2ZXJpZnkKQEAgLTM0MCw3ICszNDAsNyBAQAogICAgICAgICBpbnQg cmV0dmFsOwogCiAgICAgICAgIHNwaW5fbG9ja19pcnEoJnBkY19sb2NrKTsKLSAgICAgICAgcGRj X3Jlc3VsdFswXSA9IDA7IC8qIHByZXNldCB6ZXJvIChjYWxsIG1heSBub3QgYmUgaW1wbGltZW50 ZWQhKSAqLworICAgICAgICBwZGNfcmVzdWx0WzBdID0gMDsgLyogcHJlc2V0IHplcm8gKGNhbGwg bWF5IG5vdCBiZSBpbXBsZW1lbnRlZCEpICovCiAgICAgICAgIHJldHZhbCA9IG1lbV9wZGNfY2Fs bChQRENfTU9ERUwsIFBEQ19NT0RFTF9DUFVfSUQsIF9fcGEocGRjX3Jlc3VsdCksIDApOwogICAg ICAgICBjb252ZXJ0X3RvX3dpZGUocGRjX3Jlc3VsdCk7CiAgICAgICAgICpjcHVfaWQgPSBwZGNf cmVzdWx0WzBdOwpAQCAtNzMwLDcgKzczMCw3IEBACiAgKiBAcl9hZGRyOiBUaGUgcmV0dXJuIGJ1 ZmZlci4KICAqIEBjZWxsX251bTogVGhlIHRhcmdldCBjZWxsLgogICoKLSAqIFRoaXMgUERDIGZ1 bmN0aW4gcmV0dXJucyB0aGUgYWN0dWFsIGludGVycnVwdCB0YWJsZSBmb3IgdGhlIHNwZWNpZmll ZCBjZWxsLgorICogVGhpcyBQREMgZnVuY3Rpb24gcmV0dXJucyB0aGUgYWN0dWFsIGludGVycnVw dCB0YWJsZSBmb3IgdGhlIHNwZWNpZmllZCBjZWxsLgogICovCiBpbnQgcGRjX3BhdF9nZXRfaXJ0 KHZvaWQgKnJfYWRkciwgdW5zaWduZWQgbG9uZyBjZWxsX251bSkKIHsKZGlmZiAtdXJOIGxpbnV4 L2RyaXZlcnMvbmV0L2xhc2lfODI1OTYuYyBsaW51eC53aXAvZHJpdmVycy9uZXQvbGFzaV84MjU5 Ni5jCi0tLSBsaW51eC9kcml2ZXJzL25ldC9sYXNpXzgyNTk2LmMJV2VkIEFwciAgNCAxMDozNTo1 OCAyMDAxCisrKyBsaW51eC53aXAvZHJpdmVycy9uZXQvbGFzaV84MjU5Ni5jCVdlZCBBcHIgIDQg MTA6NDE6NDIgMjAwMQpAQCAtMTE3Miw3ICsxMTcyLDcgQEAKIAlpZiAocGRjX2xhbl9zdGF0aW9u X2lkKCAoY2hhciopJmV0aF9hZGRyLCAodm9pZCopZGV2LT5iYXNlX2FkZHIpKSB7CiAJICAgIGZv cihpPTA7aTw2O2krKykKIAkJZXRoX2FkZHJbaV0gPSBnc2NfcmVhZGIoTEFOX1BST01fQUREUitp KTsKLQkgICAgcHJpbnRrKCI4MjU5Ni5jOiBNQUMgb2YgSFA3MDAgTEFOIGJsaW5kZWx5IHJlYWQg ZnJvbSB0aGUgcHJvbSFcbiIpOworCSAgICBwcmludGsoIjgyNTk2LmM6IE1BQyBvZiBIUDcwMCBM QU4gYmxpbmRseSByZWFkIGZyb20gdGhlIHByb20hXG4iKTsKIAl9CiAKIAlkZXYtPm1lbV9zdGFy dCA9IChpbnQpcGNpX2FsbG9jX2NvbnNpc3RlbnQoIE5VTEwsIApkaWZmIC11ck4gbGludXgvaW5j bHVkZS9hc20tcGFyaXNjL3BkYy5oIGxpbnV4LndpcC9pbmNsdWRlL2FzbS1wYXJpc2MvcGRjLmgK LS0tIGxpbnV4L2luY2x1ZGUvYXNtLXBhcmlzYy9wZGMuaAlXZWQgQXByICA0IDEwOjM1OjU4IDIw MDEKKysrIGxpbnV4LndpcC9pbmNsdWRlL2FzbS1wYXJpc2MvcGRjLmgJV2VkIEFwciAgNCAxMDo0 NjozNyAyMDAxCkBAIC0xMiw3ICsxMiw3IEBACiAjZGVmaW5lIFBEQ19DSEFTU0lTX0RJU1AJMAkv KiB1cGRhdGUgY2hhc3NpcyBkaXNwbGF5CSovCiAjZGVmaW5lIFBEQ19DSEFTU0lTX1dBUk4JMQkv KiByZXR1cm4gY2hhc3NpcyB3YXJuaW5ncwkqLwogI2RlZmluZSBQRENfQ0hBU1NJU19ESVNQV0FS TgkyCS8qIHVwZGF0ZSZyZXR1cm4gY2hhc3NpcyBzdGF0dXMgKi8KLSNkZWZpbmUgUERDX1JFVFVS Tl9DSEFTU0lTX0lORk8gMTI4CS8qIEhWRVJTSU9OIGRlcGVuZGVuZDogcmV0dXJuIGNoYXNzaXMg TEVEL0xDRCBpbmZvICAqLworI2RlZmluZSBQRENfUkVUVVJOX0NIQVNTSVNfSU5GTyAxMjgJLyog SFZFUlNJT04gZGVwZW5kZW50OiByZXR1cm4gY2hhc3NpcyBMRUQvTENEIGluZm8gICovCiAKICNk ZWZpbmUgUERDX1BJTSAgICAgICAgIDMgICAgICAgICAgICAgICAvKiBHZXQgUElNIGRhdGEgICAg ICAgICAgICAgICAgICovCiAjZGVmaW5lIFBEQ19QSU1fSFBNQyAgICAgICAgICAgIDAgICAgICAg LyogVHJhbnNmZXIgSFBNQyBkYXRhICAgICAgICAgICAqLwpAQCAtMTI2LDggKzEyNiw4IEBACiAj ZGVmaW5lIFBEQ19SRVFfRVJSXzEgICAgICAgMiAgLyogU2VlIGFib3ZlICovCiAjZGVmaW5lIFBE Q19SRVFfRVJSXzAgICAgICAgMSAgLyogQ2FsbCB3b3VsZCBnZW5lcmF0ZSBhIHJlcXVlc3RvciBl cnJvciAqLwogI2RlZmluZSBQRENfT0sJICAgICAgMCAgLyogQ2FsbCBjb21wbGV0ZWQgc3VjY2Vz c2Z1bGx5ICovCi0jZGVmaW5lIFBEQ19CQURfUFJPQwkgICAtMSAgLyogQ2FsbGVkIG5vbi1leGlz dGFudCBwcm9jZWR1cmUgKi8KLSNkZWZpbmUgUERDX0JBRF9PUFRJT04gICAgIC0yICAvKiBDYWxs ZWQgd2l0aCBub24tZXhpc3RhbnQgb3B0aW9uICovCisjZGVmaW5lIFBEQ19CQURfUFJPQwkgICAt MSAgLyogQ2FsbGVkIG5vbi1leGlzdGVudCBwcm9jZWR1cmUgKi8KKyNkZWZpbmUgUERDX0JBRF9P UFRJT04gICAgIC0yICAvKiBDYWxsZWQgd2l0aCBub24tZXhpc3RlbnQgb3B0aW9uICovCiAjZGVm aW5lIFBEQ19FUlJPUgkgIC0zICAvKiBDYWxsIGNvdWxkIG5vdCBjb21wbGV0ZSB3aXRob3V0IGFu IGVycm9yICovCiAjZGVmaW5lIFBEQ19JTlZBTElEX0FSRyAgIC0xMCAgLyogQ2FsbGVkIHdpdGgg YW4gaW52YWxpZCBhcmd1bWVudCAqLwogI2RlZmluZSBQRENfQlVTX1BPV19XQVJOICAtMTIgIC8q IENhbGwgY291bGQgbm90IGNvbXBsZXRlIGluIGFsbG93ZWQgcG93ZXIgYnVkZ2V0ICovCkBAIC0x MzgsNyArMTM4LDcgQEAKIAogI2RlZmluZSBQRENfUkVUX09LICAgICAgIDBMCS8qIENhbGwgY29t cGxldGVkIHN1Y2Nlc3NmdWxseSAqLwogI2RlZmluZSBQRENfUkVUX05FX1BST0MgLTFMCS8qIE5v bi1leGlzdGVudCBwcm9jZWR1cmUgKi8KLSNkZWZpbmUgUERDX1JFVF9ORV9PUFQgIC0yTAkvKiBu b24tZXhpc3RhbnQgb3B0aW9uIC0gYXJnMSAqLworI2RlZmluZSBQRENfUkVUX05FX09QVCAgLTJM CS8qIG5vbi1leGlzdGVudCBvcHRpb24gLSBhcmcxICovCiAjZGVmaW5lIFBEQ19SRVRfTkVfTU9E ICAtNUwJLyogTW9kdWxlIG5vdCBmb3VuZCAqLwogI2RlZmluZSBQRENfUkVUX05FX0NFTExfTU9E IC03TAkvKiBDZWxsIG1vZHVsZSBub3QgZm91bmQgKi8KICNkZWZpbmUgUERDX1JFVF9JTlZfQVJH CS0xMEwJLyogSW52YWxpZCBhcmd1bWVudCAqLwpAQCAtMTUxLDcgKzE1MSw3IEBACiAjZGVmaW5l IFBEQ19BRERfVkFMSURfUkVRX0VSUl8xICAgICAgIDIgIC8qIFNlZSBhYm92ZSAqLwogI2RlZmlu ZSBQRENfQUREX1ZBTElEX1JFUV9FUlJfMCAgICAgICAxICAvKiBDYWxsIHdvdWxkIGdlbmVyYXRl IGEgcmVxdWVzdG9yIGVycm9yICovCiAjZGVmaW5lIFBEQ19BRERfVkFMSURfT0sJICAgICAgMCAg LyogQ2FsbCBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5ICovCi0jZGVmaW5lIFBEQ19BRERfVkFMSURf QkFEX09QVElPTiAgICAgLTIgIC8qIENhbGxlZCB3aXRoIG5vbi1leGlzdGFudCBvcHRpb24gKi8K KyNkZWZpbmUgUERDX0FERF9WQUxJRF9CQURfT1BUSU9OICAgICAtMiAgLyogQ2FsbGVkIHdpdGgg bm9uLWV4aXN0ZW50IG9wdGlvbiAqLwogI2RlZmluZSBQRENfQUREX1ZBTElEX0VSUk9SCSAgLTMg IC8qIENhbGwgY291bGQgbm90IGNvbXBsZXRlIHdpdGhvdXQgYW4gZXJyb3IgKi8KICNkZWZpbmUg UERDX0FERF9WQUxJRF9JTlZBTElEX0FSRyAgIC0xMCAgLyogQ2FsbGVkIHdpdGggYW4gaW52YWxp ZCBhcmd1bWVudCAqLwogI2RlZmluZSBQRENfQUREX1ZBTElEX0JVU19QT1dfV0FSTiAgLTEyICAv KiBDYWxsIGNvdWxkIG5vdCBjb21wbGV0ZSBpbiBhbGxvd2VkIHBvd2VyIGJ1ZGdldCAqLwpAQCAt MTgxLDcgKzE4MSw3IEBACiAjaWZkZWYgX19MUDY0X18KIC8qIFBEQyBQQVQgQ0VMTCAqLwogI2Rl ZmluZSBQRENfUEFUX0NFTEwgICAgICAgICAgIAk2NEwgICAvKiBJbnRlcmZhY2UgZm9yIGdhaW5p bmcgYW5kIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIG1hbmlw dWxhdGluIGcgY2VsbCBzdGF0ZSB3aXRoaW4gUEQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKiBtYW5pcHVsYXRpbmcgY2VsbCBzdGF0ZSB3aXRoaW4gUEQgKi8K ICNkZWZpbmUgUERDX1BBVF9DRUxMX0dFVF9OVU1CRVIgICAgMEwgICAvKiBSZXR1cm4gQ2VsbCBu dW1iZXIgKi8KICNkZWZpbmUgUERDX1BBVF9DRUxMX0dFVF9JTkZPICAgICAgMUwgICAvKiBSZXR1 cm5zIGluZm8gYWJvdXQgQ2VsbCAqLwogI2RlZmluZSBQRENfUEFUX0NFTExfTU9EVUxFICAgICAg ICAyTCAgIC8qIFJldHVybnMgaW5mbyBhYm91dCBNb2R1bGUgKi8KQEAgLTE5NSw3ICsxOTUsNyBA QAogI2RlZmluZSBQRENfUEFUX0NFTExfR0VUX1JFTU9URV9QREhfU1ogMTZMIC8qIFJldHVybiBS ZW1vdGUgUERIIEJ1ZmZlciBTaXplICovCiAjZGVmaW5lIFBEQ19QQVRfQ0VMTF9HRVRfUkVNT1RF X1BESCAxN0wgLyogUmVhZCBSZW1vdGUgUERIIEJ1ZmZlciAqLwogI2RlZmluZSBQRENfUEFUX0NF TExfR0VUX0RCR19JTkZPICAgMTI4TCAgLyogUmV0dXJuIERCRyBCdWZmZXIgSW5mbyAqLwotI2Rl ZmluZSBQRENfUEFUX0NFTExfQ0hBTkdFX0FMSUFTICAgMTI5TCAgLyogQ2hhbmdlIE5vbi1FcXVp dmFsZW50IEFsaWFzIENoYWNraW5nICovCisjZGVmaW5lIFBEQ19QQVRfQ0VMTF9DSEFOR0VfQUxJ QVMgICAxMjlMICAvKiBDaGFuZ2UgTm9uLUVxdWl2YWxlbnQgQWxpYXMgQ2hlY2tpbmcgKi8KIAog LyoKICoqIEFyZyB0byBQRENfUEFUX0NFTExfTU9EVUxFIG1lbWFkZHJbNF0KQEAgLTIyMiw3ICsy MjIsNyBAQAogI2RlZmluZSBQQVRfR01NSU8gICAgICAgICAgIDIgICAgICAgICAvKiA+IDRHIE1N SU8gU3BhY2UgKi8KICNkZWZpbmUgUEFUX05QSU9QICAgICAgICAgICAzICAgICAgICAgLyogTm9u IFBvc3RhYmxlIEkvTyBQb3J0IFNwYWNlICovCiAjZGVmaW5lIFBBVF9QSU9QICAgICAgICAgICAg NCAgICAgICAgIC8qIFBvc3RhYmxlIEkvTyBQb3J0IFNwYWNlICovCi0jZGVmaW5lIFBBVF9BSFBB ICAgICAgICAgICAgNSAgICAgICAgIC8qIEFkZGlvbmFsIEhQQSBTcGFjZSAqLworI2RlZmluZSBQ QVRfQUhQQSAgICAgICAgICAgIDUgICAgICAgICAvKiBBZGRpdGlvbmFsIEhQQSBTcGFjZSAqLwog I2RlZmluZSBQQVRfVUZPICAgICAgICAgICAgIDYgICAgICAgICAvKiBIUEEgU3BhY2UgKFVGTyBm b3IgTWFyaXBvc2EpICovCiAjZGVmaW5lIFBBVF9HTklQICAgICAgICAgICAgNyAgICAgICAgIC8q IEdOSSBSZXNlcnZlZCBTcGFjZSAqLwogCkBAIC0yNjYsNyArMjY2LDcgQEAKIAkJCQkgICAgICAg KiogTW9uYXJjaCBQcm9jZXNzb3IgKi8KICNkZWZpbmUgUERDX1BBVF9IUE1DX1JFTkRFWl9DUFUg ICAgIDBMIC8qIGdvIGludG8gc3BpbiBsb29wICovCiAjZGVmaW5lIFBEQ19QQVRfSFBNQ19TRVRf UEFSQU1TICAgICAxTCAvKiBBbGxvd3MgT1MgdG8gc3BlY2lmeSBpbnRyIHdoaWNoIFBEQyAKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHdpbGwgdXNlIHRvIGludGVy dXB0IE9TIGR1cmluZyBtYWNoaW5lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKiB3aWxsIHVzZSB0byBpbnRlcnJ1cHQgT1MgZHVyaW5nIG1hY2hpbmUKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGNoZWNrIHJlbmRlenZvdXMgKi8KIAog LyogcGFyYW1ldGVycyBmb3IgUERDX1BBVF9IUE1DX1NFVF9QQVJBTVM6ICovCkBAIC00MDAsNyAr NDAwLDcgQEAKICNpZmRlZiBfX0xQNjRfXwogCQljY19wYWRXOjMyLAogI2VuZGlmCi0JCWNjX2Fs aWFzOjQsCS8qIGFsaWFzIGJvdW5kYXJpZXMgZm9yIHZpcnR1YWwgYWRyZXNzZXMgICAqLworCQlj Y19hbGlhczo0LAkvKiBhbGlhcyBib3VuZGFyaWVzIGZvciB2aXJ0dWFsIGFkZHJlc3NlcyAgICov CiAJCWNjX2Jsb2NrOiA0LAkvKiB0byBkZXRlcm1pbmUgbW9zdCBlZmZpY2llbnQgc3RyaWRlICov CiAJCWNjX2xpbmUJOiAzLAkvKiBtYXhpbXVtIGFtb3VudCB3cml0dGVuIGJhY2sgYXMgYSByZXN1 bHQgb2Ygc3RvcmUgKG11bHRpcGxlIG9mIDE2IGJ5dGVzKSAqLwogCQljY19wYWQwIDogMiwJLyog cmVzZXJ2ZWQgKi8K --------------Boundary-00=_PR1A3TL1EFSHDQCUCEMZ--