From glaubitz@physik.fu-berlin.de Mon Feb 01 23:19:14 2010 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nc4bw-0004lC-K6>; Mon, 01 Feb 2010 23:19:12 +0100 Received: from mx.physik.fu-berlin.de ([160.45.64.218]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nc4bw-00045Y-Hw>; Mon, 01 Feb 2010 23:19:12 +0100 Received: from z6.physik.fu-berlin.de ([160.45.66.66]) by mx.physik.fu-berlin.de with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1Nc4bw-00006O-Ch for linux-minidisc@lists.fu-berlin.de; Mon, 01 Feb 2010 23:19:12 +0100 Received: from glaubitz by z6.physik.fu-berlin.de with local (Exim 4.71 #1 (Debian)) id 1Nc4bw-0001Tm-BQ for ; Mon, 01 Feb 2010 23:19:12 +0100 Date: Mon, 1 Feb 2010 23:19:12 +0100 To: linux-minidisc@lists.fu-berlin.de Message-ID: <20100201221912.GA5629@physik.fu-berlin.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) From: Adrian Glaubitz X-Originating-IP: 160.45.64.218 X-purgate: clean X-purgate-ID: 151147::1265062752-00000DDD-4BADAEEA/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000286, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Dschibuti.ZEDAT.FU-Berlin.DE X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=ALL_TRUSTED Subject: [linux-minidisc] New Ubuntu packages X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Feb 2010 22:19:14 -0000 Hi, I just created new Ubuntu packages based on git 20100201. Changes include a new set of icons made by Anja Diesing. The packages can be found on my launchpad repository: Adrian From glaubitz@physik.fu-berlin.de Tue Feb 02 01:42:39 2010 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nc6qk-0000Pi-MH>; Tue, 02 Feb 2010 01:42:38 +0100 Received: from mx.physik.fu-berlin.de ([160.45.64.218]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nc6qk-0001MF-Jy>; Tue, 02 Feb 2010 01:42:38 +0100 Received: from z6.physik.fu-berlin.de ([160.45.66.66]) by mx.physik.fu-berlin.de with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1Nc6qk-0000Ul-GS for linux-minidisc@lists.fu-berlin.de; Tue, 02 Feb 2010 01:42:38 +0100 Received: from glaubitz by z6.physik.fu-berlin.de with local (Exim 4.71 #1 (Debian)) id 1Nc6qk-0002vE-E3 for ; Tue, 02 Feb 2010 01:42:38 +0100 Date: Tue, 02 Feb 2010 01:42:38 +0100 Message-Id: To: linux-minidisc@lists.fu-berlin.de Content-Type: text/plain; charset=utf-8 X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: f3eb6510b0b8171b1e2bb70a9d2862bf621af85b X-Git-Newrev: 2ab7ae3bf30e923a1a9f274956ad067b7ce2523e From: Adrian Glaubitz X-Originating-IP: 160.45.64.218 X-purgate: clean X-purgate-ID: 151147::1265071358-00000DDD-1348126B/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Benin.ZEDAT.FU-Berlin.DE X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=ALL_TRUSTED Subject: [linux-minidisc] [commit] Linux utilities to deal with Sony Minidisc Walkmen branch, master, updated. 2ab7ae3bf30e923a1a9f274956ad067b7ce2523e X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Feb 2010 00:42:40 -0000 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Linux utilities to deal with Sony Minidisc Walkmen". The branch, master has been updated via 2ab7ae3bf30e923a1a9f274956ad067b7ce2523e (commit) from f3eb6510b0b8171b1e2bb70a9d2862bf621af85b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 2ab7ae3bf30e923a1a9f274956ad067b7ce2523e Author: Adrian Glaubitz Date: Tue Feb 2 01:41:40 2010 +0100 Set program icon to proper qhimdtransfer_24.png (was: download_to_md.png). ----------------------------------------------------------------------- Summary of changes: qhimdtransfer/icons.qrc | 1 + qhimdtransfer/qhimdmainwindow.ui | 2 +- 2 files changed, 2 insertions(+), 1 deletions(-) hooks/post-receive -- Linux utilities to deal with Sony Minidisc Walkmen From glaubitz@physik.fu-berlin.de Tue Feb 02 02:13:09 2010 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nc7KG-0001JL-Gj>; Tue, 02 Feb 2010 02:13:08 +0100 Received: from mx.physik.fu-berlin.de ([160.45.64.218]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nc7KG-0006Rt-Es>; Tue, 02 Feb 2010 02:13:08 +0100 Received: from z6.physik.fu-berlin.de ([160.45.66.66]) by mx.physik.fu-berlin.de with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1Nc7KG-0000ZD-AT for linux-minidisc@lists.fu-berlin.de; Tue, 02 Feb 2010 02:13:08 +0100 Received: from glaubitz by z6.physik.fu-berlin.de with local (Exim 4.71 #1 (Debian)) id 1Nc7KG-0003PO-7y for ; Tue, 02 Feb 2010 02:13:08 +0100 Date: Tue, 02 Feb 2010 02:13:08 +0100 Message-Id: To: linux-minidisc@lists.fu-berlin.de Content-Type: text/plain; charset=utf-8 X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 2ab7ae3bf30e923a1a9f274956ad067b7ce2523e X-Git-Newrev: 94dab5bff3cad2de8cee57aefbc940396edde17f From: Adrian Glaubitz X-Originating-IP: 160.45.64.218 X-purgate: clean X-purgate-ID: 151147::1265073188-00000DDD-7D4EDEAB/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Benin.ZEDAT.FU-Berlin.DE X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=ALL_TRUSTED Subject: [linux-minidisc] [commit] Linux utilities to deal with Sony Minidisc Walkmen branch, master, updated. 94dab5bff3cad2de8cee57aefbc940396edde17f X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Feb 2010 01:13:09 -0000 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Linux utilities to deal with Sony Minidisc Walkmen". The branch, master has been updated via 94dab5bff3cad2de8cee57aefbc940396edde17f (commit) from 2ab7ae3bf30e923a1a9f274956ad067b7ce2523e (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 94dab5bff3cad2de8cee57aefbc940396edde17f Author: Adrian Glaubitz Date: Tue Feb 2 02:11:28 2010 +0100 Updated all translations by running lupdate. Also fixed minor syntax error in Finnish translation, marked translations as finished. Also for Norwegian (bokmÃ¥l). ----------------------------------------------------------------------- Summary of changes: qhimdtransfer/qhimdtransfer_ar.ts | 6 +- qhimdtransfer/qhimdtransfer_de.ts | 6 +- qhimdtransfer/qhimdtransfer_el.ts | 6 +- qhimdtransfer/qhimdtransfer_fi.ts | 136 +++++++++++++++++------------------- qhimdtransfer/qhimdtransfer_fr.ts | 6 +- qhimdtransfer/qhimdtransfer_it.ts | 4 +- qhimdtransfer/qhimdtransfer_ja.ts | 10 +--- qhimdtransfer/qhimdtransfer_nb.ts | 84 +++++++++++----------- qhimdtransfer/qhimdtransfer_pl.ts | 4 +- qhimdtransfer/qhimdtransfer_pt.ts | 6 +- qhimdtransfer/qhimdtransfer_ru.ts | 6 +- qhimdtransfer/qhimdtransfer_sv.ts | 8 -- 12 files changed, 129 insertions(+), 153 deletions(-) hooks/post-receive -- Linux utilities to deal with Sony Minidisc Walkmen From glaubitz@physik.fu-berlin.de Tue Feb 02 14:11:42 2010 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1NcIXc-0006cb-Bd>; Tue, 02 Feb 2010 14:11:40 +0100 Received: from mx.physik.fu-berlin.de ([160.45.64.218]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1NcIXc-0000LY-9F>; Tue, 02 Feb 2010 14:11:40 +0100 Received: from z6.physik.fu-berlin.de ([160.45.66.66]) by mx.physik.fu-berlin.de with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1NcIXc-0003jd-48 for linux-minidisc@lists.fu-berlin.de; Tue, 02 Feb 2010 14:11:40 +0100 Received: from glaubitz by z6.physik.fu-berlin.de with local (Exim 4.71 #1 (Debian)) id 1NcIXc-0001oz-2p for ; Tue, 02 Feb 2010 14:11:40 +0100 Date: Tue, 2 Feb 2010 14:11:40 +0100 To: linux-minidisc@lists.fu-berlin.de Message-ID: <20100202131139.GA5851@physik.fu-berlin.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) From: Adrian Glaubitz X-Originating-IP: 160.45.64.218 X-purgate: clean X-purgate-ID: 151147::1265116300-00000DDD-D2BA591D/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000736, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Dschibuti.ZEDAT.FU-Berlin.DE X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=ALL_TRUSTED Subject: [linux-minidisc] FAQ in the Wiki X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Feb 2010 13:11:42 -0000 Hi, since alot of people keep on asking recurring questions I have setup an FAQ in the wiki so people can look up the answers there. I have written down several questions on my way to the uni (thats what laptops are really useful for ;)) but haven't answered any of them yet. The FAQ can be found here: Any suggestions for additional questions? I will answer the questions within the next days. Adrian From glaubitz@physik.fu-berlin.de Tue Feb 02 23:09:37 2010 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1NcQwC-0007U2-Me>; Tue, 02 Feb 2010 23:09:36 +0100 Received: from mx.physik.fu-berlin.de ([160.45.64.218]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1NcQwC-0002hs-Ka>; Tue, 02 Feb 2010 23:09:36 +0100 Received: from z6.physik.fu-berlin.de ([160.45.66.66]) by mx.physik.fu-berlin.de with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1NcQwC-0005sR-GG for linux-minidisc@lists.fu-berlin.de; Tue, 02 Feb 2010 23:09:36 +0100 Received: from glaubitz by z6.physik.fu-berlin.de with local (Exim 4.71 #1 (Debian)) id 1NcQwC-0001OS-Er for ; Tue, 02 Feb 2010 23:09:36 +0100 Date: Tue, 2 Feb 2010 23:09:36 +0100 To: linux-minidisc@lists.fu-berlin.de Message-ID: <20100202220936.GB4961@physik.fu-berlin.de> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.5.20 (2009-06-14) From: Adrian Glaubitz X-Originating-IP: 160.45.64.218 X-purgate: clean X-purgate-ID: 151147::1265148576-00000DDD-60513E26/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.009153, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Botsuana.ZEDAT.FU-Berlin.DE X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=ALL_TRUSTED Subject: [linux-minidisc] Updated version for MacOS-X (Intel) X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Feb 2010 22:09:37 -0000 Hi, I have updated qhimdtransfer for MacOSX 10.6.x (Intel). It was built on MacOSX 10.6.2 with an up-to-date installation of Macports. New features since the last release include: - Updated some icons in the GUI - Included Greek translation - Updated Norwegian (bokmål) and Finnish translation - Minor bug fixes It can be downloaded here: The PPC version will follow later, I don't have access to my Mac Mini G4 at the moment, but the update will be provided soon. Adrian From mkarcher@physik.fu-berlin.de Sat Feb 06 01:32:32 2010 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1NdYb9-0001wZ-Oa>; Sat, 06 Feb 2010 01:32:31 +0100 Received: from mx.physik.fu-berlin.de ([160.45.64.218]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1NdYb9-0003Ns-Mk>; Sat, 06 Feb 2010 01:32:31 +0100 Received: from z6.physik.fu-berlin.de ([160.45.66.66]) by mx.physik.fu-berlin.de with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1NdYb9-00035L-Gq for linux-minidisc@lists.fu-berlin.de; Sat, 06 Feb 2010 01:32:31 +0100 Received: from mkarcher by z6.physik.fu-berlin.de with local (Exim 4.71 #1 (Debian)) id 1NdYb8-00048W-3b for ; Sat, 06 Feb 2010 01:32:31 +0100 Date: Sat, 06 Feb 2010 01:32:30 +0100 Message-Id: To: linux-minidisc@lists.fu-berlin.de Content-Type: text/plain; charset=utf-8 X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 94dab5bff3cad2de8cee57aefbc940396edde17f X-Git-Newrev: a5894acac2b77bf1e2ab2a64f274a46dd75a7018 From: Michael Karcher X-Originating-IP: 160.45.64.218 X-purgate: clean X-purgate-ID: 151147::1265416351-00000DDD-FE555EA6/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Burundi.ZEDAT.FU-Berlin.DE X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=ALL_TRUSTED X-Mailman-Approved-At: Sat, 06 Feb 2010 01:41:27 +0100 Subject: [linux-minidisc] [commit] Linux utilities to deal with Sony Minidisc Walkmen branch, master, updated. a5894acac2b77bf1e2ab2a64f274a46dd75a7018 X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 06 Feb 2010 00:32:32 -0000 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Linux utilities to deal with Sony Minidisc Walkmen". The branch, master has been updated via a5894acac2b77bf1e2ab2a64f274a46dd75a7018 (commit) via 308dae7d83fd0f984651529903559108d5e6a2e0 (commit) via a3827e762553dff90f54b2b7a8fb6ed880c05b19 (commit) from 94dab5bff3cad2de8cee57aefbc940396edde17f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit a5894acac2b77bf1e2ab2a64f274a46dd75a7018 Author: Michael Karcher Date: Sat Feb 6 01:32:05 2010 +0100 rename himdtest -> himddump also in .gitignore commit 308dae7d83fd0f984651529903559108d5e6a2e0 Author: Michael Karcher Date: Sat Feb 6 01:29:53 2010 +0100 Add hole searching Add code that searches for unallocated holes between audio data fragments. While Sony Hi-MD software usually doesn't leave holes in that file, as it cuts empty fragments on FAT basis, this software will do if it run on filesystem level access layer (the only method implemented yet) commit a3827e762553dff90f54b2b7a8fb6ed880c05b19 Author: Michael Karcher Date: Sat Feb 6 01:22:18 2010 +0100 Fix limits of himd_get_fragment_info ----------------------------------------------------------------------- Summary of changes: himddump/.gitignore | 2 +- himddump/himddump.c | 16 ++++++++++++ libhimd/frag.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++ libhimd/himd.h | 13 ++++++++++ libhimd/libhimd.pro | 2 +- libhimd/trackindex.c | 4 +- 6 files changed, 99 insertions(+), 4 deletions(-) create mode 100644 libhimd/frag.c hooks/post-receive -- Linux utilities to deal with Sony Minidisc Walkmen From manner.moe@gmx.de Mon Feb 08 19:07:36 2010 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1NeY1H-0000Px-Ou>; Mon, 08 Feb 2010 19:07:35 +0100 Received: from mail.gmx.net ([213.165.64.20]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with smtp (envelope-from ) id <1NeY1E-0004zk-Ue>; Mon, 08 Feb 2010 19:07:35 +0100 Received: (qmail invoked by alias); 08 Feb 2010 18:06:50 -0000 Received: from p5B3EA155.dip0.t-ipconnect.de (EHLO MyHost) [91.62.161.85] by mail.gmx.net (mp015) with SMTP; 08 Feb 2010 19:06:50 +0100 X-Authenticated: #17747474 X-Provags-ID: V01U2FsdGVkX18Bl0FeYT0B3zGsFDK2BwFzKJ+ucPNap1fDQK+nek 4ISHMX2XPZXMHr Date: Mon, 8 Feb 2010 19:06:59 +0100 Message-ID: From: manner.moe@gmx.de To: linux-minidisc@lists.fu-berlin.de Content-Type: multipart/mixed; boundary="=_gcmail5" MIME-Version: 1.0 X-Mailer: GcMail 5.0.0.0(RG6) http://www.gcmail.de X-Y-GMX-Trusted: 0 X-FuHaFi: 0.80000000000000004 X-Originating-IP: 213.165.64.20 X-ZEDAT-Hint: A X-purgate: clean X-purgate-ID: 151147::1265652455-00000DDD-D0C8BF7C/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000022, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Botsuana.ZEDAT.FU-Berlin.DE X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=NO_REAL_NAME,SPF_HELO_PASS, SPF_PASS Subject: [linux-minidisc] firmware tests on MZ-RH1 X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list Reply-To: manner.moe@gmx.de List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Feb 2010 18:07:36 -0000 This is a multi-part message in MIME format --=_gcmail5 Content-Type: multipart/alternative; boundary="=_gcmail5_alt" --=_gcmail5_alt Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 8bit Hi, I´ve made some test on my MZ-RH1 and I reached to extract 32kb of binary data from the firmware or CMOS. More information in rh1_fw_notes.ods. greetings mannermoe --=_gcmail5_alt-- --=_gcmail5 Content-Type: application/octet-stream; name="rh1_fw.dmp" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="rh1_fw.dmp" iICf5QCQmOWEoJ/lAKCa5QEAGuMEAAAaAwkZ449WABoCBRnjdlYAGgMAAOoBCRnjcAAAGgIFGeMa AAAaAQwZ42AB4BoBBBnjCgAACjCQGOUCCBnjAwAAGjiAn+UAgJjlNJCf5QCAieUwgJ/lAJDY5eCQ ieMAkMjlBPBe4glJrCAIcOogCHAIIAhiACAARwAAMAIAA8wPgAAAAwEDdAOAAABQAAMAEIADhIGf 5QCQmOUBkIniAJCI5Xihn+UAgNrlAgAY4ygAABoAgNrlgICI4wCAyuVgkZ/lAICZ5QAAWONKAAAK AoxI4gCAieUAAFjjJwAACjyhn+UCjKDjEICK5QiAmuUCDFjjMIGfBQKcoAMsgZ8VAJCgEwiQiuUA kNrlAZCJ4wCQyuUEkJrlFKGf5QEAGeMEgIoVAICKBYCAoOMIgIrlDICa5QGAiOMCgMjjDICK5fCg n+UAgJrlAoWI4wGJyOMAgIrlBPBe4tyAn+UAkJjlAZCJ4gCQiOXIoJ/lAICa5QKFyOMBiYjjAICK 5QTwXuK4gJ/lAJCY5QGQieIAkIjlrICf5QCQmOUBkIniAJCI5Xygn+UCjKDjEICK5QiAmuUCDFjj ApygAwCQoBMIkIrlAJDa5QGQieMAkMrlZKCf5QCAmuUChcjjAYmI4wCAiuUE8F7iXICf5QCQmOUB kIniAJCI5Sign+Wt///qMKCf5QCAmuUChcjjAYnI4wCAiuU0kJ/lIICg4wCAieUE8F7i0A+AAABw gAPgD4AAAHiAAwB6gAMAMIADQAIAA9QPgADcD4AA5A+AANgPgAAEUwADCLQPAP8AAAAAAAAAAAAA AEsAAAAOAAAA/wAAAAAAAAABAAAA/////wAAAAAAAAAAAAAAAP8AAAD/AAAAgf4AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAADUx0ifHs0VFFVUgBAQJCAAAAAAH8AAAMAAgAAAAAAAAAAAAAAAAAA P7g/uD+4Bz4HXAAAAf8AAAAAAAAAAAAAGzIUAAAAAAAAAAAAAAAAAGIglR8AAAAAAAAAAAEBAKag AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAgAAAQAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAP8AAAAAAwOg AN+KQMDjslWAiKQo8YiOQwABC2YAPzMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQAeAAAA AAAAAAAAAAAAAAAAAAAAGgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAMAAAA9AEAAAAAAAAAAAAAAwABAAAAAAAAAAAA AAAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAABICAQYBQwAA AAAAAAAAAAAAAAADAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAABAAAAAAAwcBAAABAAABAwAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAEAAAAAEAAAAgESBgFDAAAAAAAAAAAAAAAAAAAA AAAABQAAAAUAAAADAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEwAAAAAAAAAAAAAAAAAAAAAwGyEA AAATAAAAAAADAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAQAAAED9AD09AAAAAP//EAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAlkSWREAAAAAAAwD/ AAAAAAAAAAAAAAQAAQMAAgIAAwEAAAAAAv4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEBAAAAAAAA AAAA+gAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAIAAPOuDSEwDwAAABJjAACPAAAAAAAAAEAAAAARIABjAAATMPMt3C6b ukCDBDbIAJJBAFiQAED/AAAQAAAAAAAAAAAAAAAEAAAAkwCgALBAwAAAAAAAAAAAAAAAAAAAAAAC AAAZBwAAIAIAADMwAABAAAAAUA0AAGCAAABwgAAAgAAAAKAAAADIj5AADQCAAAAAAAAAAAAAAAAA AIkMBBGB8JkDpL+nJROPYBwAAAAAAAAAAAAAAAAA8wQAAAAAAAAAL+NjWQAAAAAAAAAAAAAAAAAA AAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPkAAPkAAAAAAAAAAAAAAAAAAAAAAgIAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD09AAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAICAgICAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAQAAAAEAABAQEQAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAADU////sv///4L///9C////7v7//4b+//8G/v//bP3//7b8///g +///NgAAAE4AAABqAAAAigAAAK8AAADYAAAABQEAADYBAABsAQAApQEAAPb////0////8v////D/ ///u////7P///+r////o////5v///+T///8NAAAAFAAAABwAAAAlAAAAMAAAADwAAABJAAAAWAAA AGgAAAB5AAAA7P///+j////k////4P///9z////Y////1P///9D////M////yP///1IGAAAAAAAA 3AUAAAAAAAAAAAAAAAAAAAAAAAAQAEAAIEAgQCCAQAAgAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAAAAAAAAO4AAAAAAAABAQAAAwAAADAA AAABAAIATgEAALAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAMQExMDAAAAAAAA AAAAAACGDwAAAAAAAAAAAAAAAAAAAAAdJQAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAJEAcQEAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAQAAEA AAAAAQCCAQUAFwAAAAAArAAAAAAAAAAAAAAAeAAAACwBAAAAAFkBAAAAAAAAAADhAAAAAAAAAAAA AAAAAAAAAAAAAABAAAAABBAAOAAAAACQkABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ABQAAAAAAAAAAAAAAAAAAAECAQAAAgAAAAAAAAAAAAAAAAAzMAAAAAD//wAAAAAAAAAAAAAAAAAA BQAAAAAAAAD/AAAAAAAAAAAAAAFoFgAAARUAAIERAADOFwEVzhcBFTQSzhC0AKAAegCgAAAAAAAd AAoAAAAKAAoAAAMCAAMBAEAkADggACA4AAgMAAcCEAEaDQEFUisBAcjMADIgDAYAAAAAAAAAAPVV AJcAAAAACQAAAAAAAAAAAAE/AwoAAAAAAAAAAAD/AAAAAAAA/x8AAP8fAAD/HyhmAAAAACUBBAAA ABAAAAAFAQBPAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAfwAAAAEAIhSXuUVmQ1RGublZJjJ2AAIj CgAlAZgDlgMAAAkLFBQAAAAADA4AAAAAAAAJCxETAAAJCwAAAAAAAA8REhQTFRYDBgAAAwAaARoB DAAUFDhASEgAAAoKGDhQeAAAIDAoIAAAAAAoODhAAAAAAAAAAABISAAAAAAAAFB4AABkehEAAAN1 BAQBAAAEAB4eQMwAAAAAIAAAUJUAABQAAAAAAwAACwsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAHuMBTOsCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAAAAAAA AAAAAAAAAABSLgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwOgAQEl EgEAAgAAAEBMBYYCAAEBAgMBEgEAAgAAAEBMBYcCAAEBAgMBAIAAATMAAABTT05ZICAgIEhpLU1E IFdBTEtNQU4gICAxMDAwSGktTUQgICDweIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAA QAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoLFA0AAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgEKAQAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAUFAAAAAAAAAAAAAAABHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQE BAQEBAQEBAQEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWZXIgMS4wOTAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAkJFcjAxMjAwMAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWMS4wOTAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA BgAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAChgAyNzJG MzMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBARUVFRUVFRUVFRUAAAAAAAAAAAAA AAAAAAAAAAEAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQFBQUEBAUFBQQEBQQFBAQIAgEADQYA AgEFAwACAAQGAgEBAQICAgEBAgICAgICAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA BwD8/Pz88v389fz8/QcA/AMD/f/////+////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEE BAEABAQBAQAABAQBCgAAAAAAAAAAAAAAAAAAAAAAAQABAAEGBwYHBgcGBwYHBgAAAAAAAAAAAAAA AAAAAAAABggAAAYIAAAAAAYIAAAAAAAAAAAAAAAAAQAACgAAAAAAAAABOEAAAAAAAAAAAAALAAAA AAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAEABAAAAAEAAAAAAAAAAAAAAAAAAAATAAAADAAAAAAEAAMAAAAAAAAAAAAAAAAAAAAAQCqAAEAq gAAAAAAAAAAAAAEBAACELoAAAAAAAAMAAAC0LoAAeWoAAAWAAABAKoAAQCqAAAAAAAAAAAAAAgEA ADwygAAAAAAAAAAAAAAAAABseQIAABAAALwpgAC8KYAAAAAAAAAAAAADAQAAKDWAAP////8CAAAA rDEAAgAAEAAHgAAA6CmAAOgpgAAAAAAAAAAAAAQBAAA8NoAA3/9h/wIAAABwNoAANgAQAAiAAAAU KoAAFCqAAAAAAAAAAAAABQEAAGA6gAD/////AgAAAJA6gAB9ahAACYAAAJApgACQKYAAAAAAAAAA AAAGAQAAVDaAAAAAAAACAAAAcDaAAEwGAgAIEAAAbCqAAGwqgACYKoAAmCqAAAcBAABIPIAAP/4P wAIAAAB4PIAAhTAQAAsgAACYKoAAmCqAAGwqgABsKoAACAEAAKg+gAD+/xIAAgAAANg+gACRXxAA DSAAAMQqgADEKoAAAAAAAAAAAAAJAQAA+ECAAP////8CAAAAKEGAAAxiEAAOIAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcK4AAHCuAAAAAAAAAAAAACwMAAGBF gAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAgAAAAAAAAAAAAAAAAAAAbCqAAIwrgABAKoAAQCqAAAAAAAAcK4AAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA SAAAAAAAAAAAAABsKoAAQAAAAAAAAAAAAAAAmCqAAAAACADEKoAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAgAAAFN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3Rr IVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGsh U3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFT dGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0 ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3Rr IVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGsh U3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFT dGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0 ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3Rr IVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVwugABTdGshZC6AADMAACAAAAAA xVeBAAMAAAAAABAAAQAAAGQpgAD/////wqwAAFN0ayFTdGshICyAAFN0ayFkLoAADwkKAOW3BAAA AAAAtC6AAFN0ayFTdGshICx4AAN0ayFkLoAA0woKAKgHgAAZuAQA/////wEAAAAAAAAAiKgMAJVd BABwqAwABAAAAAQAAABbsAoACAAAAAQAAAAAAAAAcKgMADCtDACYJ4AAcKgMAP////8BAAAAla4K ABQAAAAAAQAAqAeAAAAAAADMTwwAmCeAAPU8BABTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGsh U3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFT dGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0 ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3Rr IVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGsh U3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFT dGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0 ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3Rr IVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGsh U3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayGl WwMAAAAAAAAAAABTdGshU3RrIVN0ayEAAAAAAAAAAAAAAAABAAAAU3RrIQEAAACIMYAABAAAAAMA AAAEAAAAAQAAAJwxgAAJAAAAAwAAAAkAAAC2U4AAa1CAAAEAAACR7QkAAQAAAEJFcjAxMjAwMAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAUJFAAAAAMwjgAAAAAAA AAAAAAAAAAAGAAAALCSAAMwjgAACAAAAAgAAAJvdAgACAAAACjMAApZAAAAtowIAd0gDAAAAAAAz AAAgAAAAAMVXgQBrKoAAAAAAAAIAAACQKYAAu/////y6AABTdGshU3RrISwvgABTdGshlFmAAA0O CgBwBYAAU3RrIVN0ayFgBYAA+9cCAAAAAAAAdGsh2HUBAAAAayE0AAAAU3RrIVN0ayFTdGshU3Rr IVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGsh U3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFT dGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0 ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3Rr IVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGsh U3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFT dGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0 ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3Rr IVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGsh U3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFT dGshU3RrIVN0ayEzAAAgAAAAAMVXgQACAAAAAAAQAAAAABC8KYAAMwAAIAAAAADFV4EAAgAAAAAA EAD/////vCmAAP////9PsAAAU3RrIVN0ayGIMoAAU3RrIQAAAAAPCQoA4w0CAAAAAACsMQACBwAA AP////8CAAAAQDIAAiAyAAJTdGshAAAAAOMNAgD/////U3RrIVN0ayFTdGshgaIBAFN0ayFTdGsh U3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFT dGshAAAAALwIgACfKQUA/////wAAAAAAAAAAAAAAADMAACAAAAAAxVeBAGwqgACYKoAAMwAAIAAA AADFV4EAbCqAAJApgAACAAAAQCqAALv///+rpgAAB3RrIVN0ayEAAAAAAAAAAKN0BQDHAAAAMwAA IAAAAADFV4EAbCqAAJApgAAEAAAAQCqAALv///+xWYEAi78AAAAAAABwNoAAAwAAAP////8DAAAA oC8AAv////8AAAAAQ7UAAAAAAAD/////oC8AAtvJAAAQAAAA0C8AAsHBAACXIwEAAAAAAN//Yf9T dGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0 ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3Rr IVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGsh U3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFT dGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0 ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3Rr IVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGsh U3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFT dGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0 ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3Rr IVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGsh U3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFT dGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0 ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3Rr IVN0ayFTdGshMwAAIAAAAADFV4EAbCqAAJApgAABAAAAFCqAALv///9lqgAAU3RrIVN0ayGMNoAA 5CiAAKVeBgATAACAQAAAAAsAAAATAACAAAAAAAEAAAABAAAA3QAAAAAAAAAYCIAAAAAAAAAAAAAA AAAAHASAADMAACAAAAAAxVeBAAIAAAAAABAA/////xQqgAD/////wY0AAFN0ayFTdGshjDaAAFN0 ayFTdGshDwkKAAdFAgAAAAAAkDqAAAkAAAD/////AgAAAIwEgAAAAAAAmASAABwEgAAHRQIA//// /wAAAACkGYAAdSkCAFN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGsh U3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFT dGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0 ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3Rr IVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGsh U3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFT dGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshMwAAIAAAAADFV4EAAgAAAAAA EAA//g/AbCqAAJABAACLlwAAU3RrIVN0ayGwOoAAU3RrIVN0ayEPCQoAAykIAAAAAAB4PIAACwAA AD/+D8ACAAAAAAAAAOA0AAJTdGshMDUAAgMpCACQAQAAU3RrIVN0ayFTdGshU3RrIVN0ayFTdGsh U3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFT dGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0 ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3Rr IVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGsh U3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFT dGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0 ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3Rr IVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGsh U3RrIVN0ayFTdGshU3RrIVN0ayEzAAAgAAAAAMVXgQACAAAAAAAQAP7/EgCYKoAACgACAFS3AABT dGshU3RrIZA8gABTdGshU3RrIQ8JCgAhFgkAAAAIANg+gAANAAAA/v8SAAIAAAD0cAwAU3RrIfRw DAB8cQwAIRYJAAoAAAAAAAAAU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3Rr IVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGsh U3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFT dGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0 ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3Rr IVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGsh U3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFT dGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayHoPoAAU3RrIfxAgAAzAAAgAAAAAMVX gQACAAAAAAAQAP/////EKoAAU3RrIVN0ayHoPoAAU3RrIfxAgAB1BwoAMwAAIAAAAADFV4EAAgAA AAAAEAD/////xCqAAP////8t4AAAU3RrIVN0ayHoPoAAU3RrIfxAgAAPCQoAGbAAAAAAAAAoQYAA DgAAAP////8CAAAAhEYAAuA6AAIoOwACzDwAAhmwAAD/////AgAAAFN0ayFTdGshU3RrIVN0ayFT dGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0 ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3Rr IVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGsh U3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFT dGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0 ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3Rr IVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGsh U3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFT dGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0 ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3Rr IVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGsh U3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFT dGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0 ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3Rr IVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGsh U3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFT dGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayGVCAoAEwAAIAAAAAATAAAguFmBAAIA AAB9AACAfSuAAAAAAAAzAAAgU3RrIVN0ayFK/wkAMwAAAGRFgAARAAAAfQAAgAIAAAAIGoAAyASA AFwAAAATAACgU3RrIVN0ayHAQoAAU3RrIVN0ayFI3wkAAAAAAFN0ayFTdGshU3RrIVN0ayFTdGsh U3RrIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAwMTEzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAATRGQUUzMwAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAGAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAQEwMTEzAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAIB NTNCQjMzAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAAKAAAADAbEwAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMcoAAAAMBsTAoYANTdFMTAwEwAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAoxygAAAAwGxMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADH KAAAADAbEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMcoAAAAMBsTAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxygAAAAwGxMCAAAAOAAwAAATAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAADHKAAAADAbEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAMcoAAAAMBsTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxygAAAAwGxMA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADHKAAAADAbEwAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMcoAAAAMBsTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAxygAAAAAMBsTAoY1OTk5MDATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADHKAAA ADAbEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMcoAAAAMBsTAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxygAAAAwGxMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAMcoAAAAMBsTAAAAADVBNDkwMBMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AMcoAAAAMBsTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxygAAAAwGxMAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADHKAAAADAbEwAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAMcoAAAAMBsTAoYANUFGOTAwEwAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA0lN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshEwAAoFN0ayFTdGshwEKAAFN0 ayFTdGshSN8JAFN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3Rr IVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGsh U3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshU3RrIVN0ayFT dGshU3RrIVN0ayFTdGshU3RrIVN0ayFTdGshAQAAADhcgAAGAAAAAwAAAAYAAAC2U4AAa1CAAAEA AACR7QkAAQAAADVDM0IzMwAAAAAAAAAAAAAAAAAA02kDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAACATVDNzEwMAAAAAAAAAAAAAAAAAAAAAAAAAYAoFOAAHNsAwA0PQACAQAAAKovAAIGAAAA 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 --=_gcmail5 Content-Type: application/octet-stream; name="rh1_fw_notes.ods" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="rh1_fw_notes.ods" UEsDBBQAAAgAAFKPSDyFbDmKLgAAAC4AAAAIAAAAbWltZXR5cGVhcHBsaWNhdGlvbi92bmQub2Fz aXMub3BlbmRvY3VtZW50LnNwcmVhZHNoZWV0UEsDBBQAAAgAAFKPSDwAAAAAAAAAAAAAAAAaAAAA Q29uZmlndXJhdGlvbnMyL3N0YXR1c2Jhci9QSwMEFAAICAgAUo9IPAAAAAAAAAAAAAAAACcAAABD b25maWd1cmF0aW9uczIvYWNjZWxlcmF0b3IvY3VycmVudC54bWwDAFBLBwgAAAAAAgAAAAAAAABQ SwMEFAAACAAAUo9IPAAAAAAAAAAAAAAAABgAAABDb25maWd1cmF0aW9uczIvZmxvYXRlci9QSwME FAAACAAAUo9IPAAAAAAAAAAAAAAAABoAAABDb25maWd1cmF0aW9uczIvcG9wdXBtZW51L1BLAwQU AAAIAABSj0g8AAAAAAAAAAAAAAAAHAAAAENvbmZpZ3VyYXRpb25zMi9wcm9ncmVzc2Jhci9QSwME FAAACAAAUo9IPAAAAAAAAAAAAAAAABgAAABDb25maWd1cmF0aW9uczIvbWVudWJhci9QSwMEFAAA CAAAUo9IPAAAAAAAAAAAAAAAABgAAABDb25maWd1cmF0aW9uczIvdG9vbGJhci9QSwMEFAAACAAA Uo9IPAAAAAAAAAAAAAAAAB8AAABDb25maWd1cmF0aW9uczIvaW1hZ2VzL0JpdG1hcHMvUEsDBBQA CAgIAFKPSDwAAAAAAAAAAAAAAAALAAAAY29udGVudC54bWztXe9u2zgS/35PQfiARYqLbEv+n22y yF+02CZdNGn37r4saImyiUiiQNJxvNgP9w73Kn2CPso9yZGULMuJ5dC2ojiOiiaxySFnOPPjcIYS pfe/3PseuEOUYRIcVsxqvQJQYBMHB4PDytebC6Nb+eXob++J62IbHTjEHvko4IZNAi7+AtE6YAdR 7WFlRIMDAhlmBwH0ETvg9gEJUTBtdZCmPlC8ohLGJ552c0Wcbs3RPddtLGnn2sK+PmdFnG7tUDjW bSxphVLTzV2i2/ieeYZLhNb9EHL8QIp7Dwe3h5Uh5+FBrTYej6vjRpXQQc3s9Xo1VZsIbCd04Yh6 isqxa8hDkhmrmVWzNqX1EYe68knatEjByO8jqq0ayOEjq4YUMUEihiuBqddRus0cvu4G2ui6G2So 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 OnhtbG5zOm9mZmljZToxLjAiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hs aW5rIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOm1l dGE9InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6bWV0YToxLjAiIHhtbG5z Om9vbz0iaHR0cDovL29wZW5vZmZpY2Uub3JnLzIwMDQvb2ZmaWNlIiBvZmZpY2U6dmVyc2lvbj0i MS4yIj48b2ZmaWNlOm1ldGE+PG1ldGE6Y3JlYXRpb24tZGF0ZT4yMDEwLTAyLTA3VDIyOjA4OjU0 LjI1PC9tZXRhOmNyZWF0aW9uLWRhdGU+PGRjOmRhdGU+MjAxMC0wMi0wOFQxODo1ODozNy42MTwv ZGM6ZGF0ZT48bWV0YTplZGl0aW5nLWR1cmF0aW9uPlBUMDBINTlNNTJTPC9tZXRhOmVkaXRpbmct ZHVyYXRpb24+PG1ldGE6ZWRpdGluZy1jeWNsZXM+MzwvbWV0YTplZGl0aW5nLWN5Y2xlcz48bWV0 YTpnZW5lcmF0b3I+T3Blbk9mZmljZS5vcmcvMy4xJFdpbjMyIE9wZW5PZmZpY2Uub3JnX3Byb2pl Y3QvMzEwbTE5JEJ1aWxkLTk0MjA8L21ldGE6Z2VuZXJhdG9yPjxtZXRhOmRvY3VtZW50LXN0YXRp c3RpYyBtZXRhOnRhYmxlLWNvdW50PSIzIiBtZXRhOmNlbGwtY291bnQ9IjEzNCIgbWV0YTpvYmpl Y3QtY291bnQ9IjAiLz48L29mZmljZTptZXRhPjwvb2ZmaWNlOmRvY3VtZW50LW1ldGE+UEsDBBQA CAgIAFKPSDwAAAAAAAAAAAAAAAAYAAAAVGh1bWJuYWlscy90aHVtYm5haWwucG5nlVd5OBRa/9ct JS43UZIIQ7KlyJbtYhjKGmFMRo2xzcJVDFkjhTFmUiGyZYiaQTMG2ZpbWYaxDY1lhBa7kYyMi5jX /d3nuc/7/P543/uef875nHOe85zv9/P9nu/npLk4gcRFj4sKCQmJ29sBL+/2TUJCe4RE9u+OFhcO BAkJHbphD7R0j8pfyh+T4GpIAAMvrQrozYElRDtGRw5Vaf42siW8fG/7r3f7jaboCYKd7V+U5P9Y rpZXnNI+jRnYjy2gJcLU0MUj9nL/H/JPrsz2FdEFs4RI02d9+TX4aeO+wiy+mHsccSSBMR58GSVT +Kp21XUWaaAVw1k56MI9Gdgmsujjzjb9YrzUq0RnNvMiewq/d/BYFwHoy9yT7VKN0tgIJ5Oi2pTU jc0qxwTaBRzdpq7Sr/pMtjx2OwX3+dsFF7kVsqvbM2vQquEz7UydXBNnYew2MYg4KcEQO5Y7hLtV 9D0DJjg78R72Y5upqWbIGr9UmBN5blEiu0HOhWthhefksg/poGfy15tmZHhmbuW5Fzx5uwsf5xvU NwyvZmxI+hbdyBdtc+L8Snlo4MItFZc2Cd77H+DW/mLCt17zhaZ3xLd6KG0MfPaH23TBT9SMkHb+ mvp6UsBkfjF6//M/GmtHQKVzxLjHjAAhZKAj7blyDet3TqwWWulJNjE887epdYcn/gaZwOASeUeW cbpfK9RybG8jwhNXS5cej8yzDz3IuYTMAtA9f+Ta1Cy2GAtNR1EC5YSXGGoXYp5dXazvcqrQ8pAt DOVssPDN1zxp62GwHICzvwQ2Vf24WeU8yD1E5bHdvom2vIIQ+EsUIjIpCKu+eoWZjdLmz3ks6d92 +DL9HIctlK/Uah2+CIZuzK0zBEHRd2mUWevwSCudD5VtTq/fLDS1uv1ldYDpucn4JJ3NhtqRIlS/ 4QUxdcDm4Gb4duBeYzrwzEaINv/JEUsF5LbXJb+sLHU1SMq5jFNG2hafY9oNSx3my6+UM+rJy4Ah BFsSRk8dul65Otcl2pgc5HO+Ys51bGiDEVl5FZ3l1z58rmX4a97J0RugT5C1VwkWttzTRzLNrn9R b2IH2+r7sgN1FO5rX0rXY+jic9uBuAzpDBzL/RT1+tPR/gFFTIurFuSMbl50Ei4WzwsgVKqLXhZU tkHFPRTpNok4nEWqeDhC2cTELzJCdpRvywTia15Ddyn8XMN80Qn5B9z/Bfu9uaPlMiTCmwehu0MZ 30PfIObdplamD0HmnvECTFFOU/4UJbvqLQVWzT1MNZBmzH6aNiZdzT0VnX1iFHs06w7KN53rvaQq rInO6Mu+NEnTJftVQu0aK7bxR2JUOEE5Du8/jVI7bg6XRyqMt/htSLPlhXvu0Bz9Dd2EQ+8bWXE5 qUmigzWyaRjb76c1Uc3B65rTwSeUMKFVc/JIjG1mzFgzGfIinxdlgqKJaXCw9w6hna2XlJfqP+Ov O5bBGxjvO1anRShIeD25c7L/u91oprNHLsPUgOpKIaWJrahqnKTkrOgvMikwtYgAT7OJYt1jrn9a H6OnIdgT7zOhUQRJ3V6S2DmuuUioKgPsRMWbsQI7sOPe9v1DDS3sPTp2paMUFGiPbKstfBDy6Vgf EfltSCMtoCP9pCLzd9ctyBptobiWRYHR72uKuarFFBT6hIJypsiqDAfwaVewrK9pQrPqWxTEO1Ko Z5ixDGh9/XkIW6x/SlkiFHwWMtFlWiND8Fz3dZDXXyEUgVLHn6zf2qBaPryo6OfwcOnHaecrcNc4 qjm+Y+L2tQ3UKBUF/yG7Kq+EyQiSN5BqZhQ+BGAjx4bMzQTNTcnT5YGGyARp57pmxBMi+ul2xzEC 4chWTtQWZkfFmT19sGng1N/8K7IuvKwT/a1oeIBQR9O/SS30a8OTiyZn4dFLsTa47NRaXfXvs8Ye XBnv/rlNYLKg9FvAUJ19AaAVelDj1pv7KyaIwcO/ST//Hg9AGltxs4ofyLT32h6t7a818Cx/lcCU hNX/ekcu6LjKbbiwUfPvrtKlSkgjD660ROYJTYyVinSM1Gue4KO9hfKY9JaVR2RpfZdKkQpuAGge WKiRX+mnCg2L8+hCr7wnyrgPlGR7H/AKJgcteFXl9EZLnLC/Y65MskEHKtSuFZ4GEn+/AY7sTn/k l6XZB4kw3b1xNsP/eKtTWTf38LNWsXj/XrAykOsVrBFBookPBHLknVa3RSiedy5OhD3aP6/lrDXw VcOy5S55jMubl9p7p5m461xaYiUEGr7IHoDPvMqjE31CezM4wL7gQTkmHQXmMBDTGbHWmTKdaNDq l93IY2S2yzW02A4NeM1n6rKoenRAMNEkV7+NMmBzEynWU2435ToGWIoNI4+YXC6wIr9McRBLEP+3 ROzAtmwu7/TwaPqBOnMAwXllkn12ApsP9p/V9ia3X7U7B76Uur5+mpFUOlySCE3ut94Eg1PqzpQE PXcbQl81lkUHySwEOde10IqWHlY4VtI6yDWQ4kTRUkv/zdP0o2tM7JrMHlWSdiGVUFrDK6af1KfG ENnijc9I0zUlN0nJt6+6X/nEZDmK1cHjbMrPsQ3qu/Jb/iAcamI/hib3XZqdtrQNa5XJtcg7DPYP ZlmTTiwb8fSQHTz1F34G8g/WZ/7MPeVYj+Qq5fzuoFODAcx4GPaTfCDrjEer+YNeRODyH16US/33 4mq4PkzLjTwLdKuTSJtTneqW2pYXZfmQe+Pq+GTg0KPpBt9Vj63Arj9jrmlfFk3fH5nmApF/4O9+ x3hA4nJC6YTdWM/VOVfj9XViG/TgtQ8dw7MQy7LcNb/zoQEFHIjEGkrpJzynbCAwqHA3yWJcgk9d ewDOZlI1HushQ6/szuH322klRos/d5TTALi634vobVxUnL6SZMz7gL3mdKrnRaIN82byiH5/Q4XD E3Gu163+3hXbGfJJQ/Y1p/AQU8L+m818IEfULOX7GAWWAxdetR0tf1SPLd8OAWCs/ovY+Ofwly9L wztLrXxYdbObqt/W+U+KoVwqtCWFMzThuXoX8wHKlfErv/V5eCLxWEsyI7otj79jsxynPTq8qLRs RKYl+k9Gpz1Q9ZiycWWk507dPbImzrtoRdoBpZqtQtu2TBFNPKc3jF5yHHLKBtXJMom29lY5Cy5c 55/P7ZVKgFtvzm9gdp1Qo8zCS8pB1Wx2im8BTIhmwXIUdZCTtqDbxqdt4UnFuO5rBSXMFMa4cNBW yf0sK+hWnHddCaQlIjHIv3PZDgzNlS3KvHmk+XUaT/E1WgcTSuMPMDN/tl8cxQ943ZxlQMOrvAVz RsgDG9oI59JQ3e1To1BucvFftZkJ33GIf/PVfreUhdp8mueVnIdysNU1azVDzElF73iylnSQP3Cj 7uiWHc1dVe4nny5sdh1ZyPbRkLdr2o/3A3hNjTz50DZQDbHAmhctY0w1UKj08N8K6E4oM7PlHiFL vDxzNHRUUvsXsEH3zEOA/yPB5vf9wq0e7YKm5jlD2nhNCX0xtnmE5SQ76H+hZmBFLz56upJX9hP1 uwYoLhwOvVL+pfUMSCFc4piwLrV+Uot1QnDQ18NX2hUCEvibNrFX/XIh6WaiGkDx0NE0fCbN7nfA ohqiHgHalGJr5/Uh/Z/6AzvsxjpNIekFsSm+ZB786T+PEBn3yK78hZQOCXP8rntIFBIhE9GU7BE5 E+QWwvC6IlPNbTKtxpUzcRh9s7YhWI57XUTwLLkXhOrEfweeYFs3nW2n6m+xnFR7QH0HqqHQMTtf spjj0KAGc9GEFAfnEFvjlTRfbD8rk01Yb31IuftHsJlnVYE1yLJaXCtBUq6QwNZlzX6UVC4iSG0h XMJw8y1fwLr1O+RlvagSfi9YJi0i//lDh5j8EeLznxF7j7i/b9CDEWx77UwZ59s05bYdn9TBmTVc b7d8XMZWFJICIFZktSPOGmMVi7IzGCcXYwyqcyRWSAP4CguoeWkBNYKPCtHGWOn+FRh7u3vZRdS1 ad3Jj3YUYgJiYuF9tQhmpk/+wc7mD54NtXak8uO7uK+b7y9cNcEPZAQ380pDvY2DfgNu9UCirXOm +3kkc5B5UNwzbedokmlWOgJJmfQSzEi6Ks67SHam71nrIDmrGIUvHXe8U+cIZx4/dl9/DVGgXHfU hArnG7BvpwQcqOwTVWr2wbMjWR91v7wbgtEr9v3mEf7YwKpT/baBFWRW2yS1zxVM8tqefCd24qk5 PJYD5UK/7RF3ULQUV3mVuKMQ4dQ+iUNXO2Vuv+izMylZs9nqhcVQpJKs/plc/xOavwkZG8asRuqP pY+PWda85eN6yhXS4ho/+M4mYJfa4s+Z78Wjrg9iNoB9bhCMnoxco9Kb1b6xBmmzAwobi+jq9C7r wnfrmBstbyRhBIPLUWNvtfp7e77mU+oGn46xSniHTPRMEl+U5Bg0rzqHJY8E1iGe3tK+7rmvOsun Vs9tvZ5rsQTokoSth9DtoOjSTlQGCaNCldem+ow+SHGIdNmyG+tDlUE6+TBCXVklB+o5enhm4x6q nPm+7LNz+2RX2Ey94cjf2f7fza36xu454BP1Yrtepol/1ejG1+HYYDfrbJ16UscQ7KQh4EMH6+Yn b4Wln25ZR6UW+TXqpHVxpuFoJxYvxoRSWLG8S9J9Qk/XuFGhC201VJSp2dF4m64chQzPQRvvPBMH Tki8ZJuH6vDB8bV3Zr66V/uBwmKvl/fZYd6l+n/piUbr8F21aiBfJvblhoAjK90ejw54XUdSkETo DD/FIcxj40UiqqHJnG5wN5Mx73dKJ5pSfQ1J8Y0ST0K1bbHrKBUfuNlNhp0opRN00Jio2Zbm/2L7 X/CENr+79/FKVPsOA4f+U6hVoeWYqfHtO2Q07+ddpTrm8hKmlxwoWHxS1nSDPKJ6Y0tB+W23JoDs 2Ob7QWs86yhsGNqneJfsqOcShuf7G2ejeeag9HHOTi2CCaG1oNoNwH0smBo8+e+vsXKuBY0OTWN5 lOjG92z6qktRbsUFoFy5wrR7Cm2+4JnYvX05p0XqS1CLIwjQeaPZDWPOsxExhi0B+mZ9rQwUOuWj Gt0jgYDUad+QDFp7OqJmCS3q6BC+4Q59OituYCi9tU/3cbj+K1zJxTcCmIbUxmcfHOnMQLe8Th7B c7lQOkZS5T5NI6o26eI1dBZd1qTQN1v+fAWI8rDoW7pY0b+/iS0ixy0rgZse70QWLFy4wv0iC1IF pnsBFSqOBknRs7eYdC1c8WERnSRsKUBwT/L9L4dtXHZ1xkbn/2236a8Y97S9aeuijuEBjlmqTlnu nnlPsIcgFzPy/ExyjtBus7dxAlZZXUv6F1BLBwibip/yfw8AAKsQAABQSwMEFAAICAgAUo9IPAAA AAAAAAAAAAAAAAwAAABzZXR0aW5ncy54bWztWVtz2joQfj+/gvE7MRCaBk9wh5Cm4TSnzWCSc9o3 YS+giaz1SDKE/vojY9xJjR1cXx7a5onB0n673pW+vfji3ZPPWmsQkiIfGt2TjtEC7qJH+XJo3M+u 2+fGO/uvC1wsqAuWh27oA1dtCUrpLbKlxbm04uWhEQpuIZFUWpz4IC3lWhgAT8Ss57utnbL4yROj /HForJQKLNPcbDYnm9MTFEuzOxgMzN1qstVFvqDLoqri3c9VIeJ3RZFAbMxOWa/T6Zvxf6O1N/KZ a3qGnfgheX37Yq8g/mlTBX7km9b+cWTa0NAqrTWFzXevGVlyP8o8UEnnDEYCyAwDI1lU20AvUq4M u/+me2EewvwU9C0sVBZ2r/fmvDL4v9RTqyz0bu/svFMZ/gbocpVt/aDfHxTFb/skaFPuwRN4aV2w yQ7VTkYfMrEtYjFsJl7KTKmEPgeGHS0WjuJOawSasnNGtEeOGXogAoxBt8BBHIdCorhDSZW+B/9l xrNcLH9E/pKFfFbymNygoN+QK8KcgFH1D3qQjsAKhVZQ9hiCUNRtCj1lfeKhLAfVYX8D+CNX0TXs 0KeEL3Pc0ysHntibR14lbU5gp3m0UhE3h8Yrol6iUuhnsuDbcshfEf2Zhqn1SEegD4SFadSYPzpl nUCWEFHoi+h5HJLx8Dmv5y3vCLjoDdhRcw73JxxcmSNcgYzNicjNt723FaL2JxyFY+DOCjeRgktd djzeCYiKuRT+HJEB4Ya9IExCeTVfQeDOfpmnQImwAv4nVE1BfxA0XefUgByhjpGhSEEzjC6RLiVP dbF6VkNcG/DKDZHa9NDnU9zcAPF0L9GIEmcFoDSfNIA+kZ9DpfsvcLb+HJl0IJ0ba1HicBLMcEqk gnSg67hZMfBE7tuHxjRMQep45xfKnbL0lobPrJarwjvh3KNrKmuu8w/As40ve3Ri+NETlc6WuyuB nH6DEkRUsh7Yt47ZG3TDX3xEED8IBYkC/DOzgte88ZvljVvKH+8DjyjI7y1PX1PSa0p6TUm/dUo6 pmkUKhwT5oZMU0X98He6UdXv8Un/ye5hzcIY+o6G6fHHnEg4619STsS2CNQoCNj2XoK4IorU8bb5 o99rFHPqecDHKyKIqyKWrDoIviV8GZLDWVhhV44xjDSVln8gghKe5sri8pewpFynpvJv8J57L8of KcGa9L/tlbwkL0bFvnpfckD7q8fqaLl81K/JzRujHwiQEUvXPouayI8g+EhqX9+F3FUhyRiE1zLa IWt4iD8lfuZjhrKJhB+XjNcC/Rn4QTM5YcSYrn0jUv8b52PCXWAN1L9IvKkuTpGz9MWqw08TebX/ SuzoQ5afmF9QkdvsmQdfiM28b+f2/1BLBwjSeIFt/gMAAH0fAABQSwMEFAAICAgAUo9IPAAAAAAA AAAAAAAAABUAAABNRVRBLUlORi9tYW5pZmVzdC54bWy1lUFuwyAQRfc5hcXeps2qsuJEaqWeID3A BI8dJAyIGaLk9sWRkrhtVDWV2YGF3/uMPbDaHAdTHDCQdrYRz9WTKNAq12rbN+Jj+16+iM16sRrA 6g6J68ugSO9Zuk4bEYOtHZCm2sKAVLOqnUfbOhUHtFx/XV+PpvWiuIE7bbBMC8OpuMmw1VDyyWMj wHujFXDKKQ+2rc6uaqqoyAeElvaILG6QyeaWk8ddNKb0wPtGSCEfinKf8uZsp/sYzhFpKYmBI+0g 5MGDUmgwTV2QKoYwFiDVOLsri6AzDhgzwb3z0acfJGbCB9cHpHxfeoyeDc7OmWxwPUCPJF81D+Ap q+NB9vfThKIdu6eKulJTwd8yPChnPLIce/UuPPn5f838O5f4ZJBmxw7IMNvBs93HYWdBG5J8GVbe 9nPD5y0sMqfr8lralfxxW64/AVBLBwhBVPtDSQEAAGgHAABQSwECFAAUAAAIAABSj0g8hWw5ii4A AAAuAAAACAAAAAAAAAAAAAAAAAAAAAAAbWltZXR5cGVQSwECFAAUAAAIAABSj0g8AAAAAAAAAAAA AAAAGgAAAAAAAAAAAAAAAABUAAAAQ29uZmlndXJhdGlvbnMyL3N0YXR1c2Jhci9QSwECFAAUAAgI CABSj0g8AAAAAAIAAAAAAAAAJwAAAAAAAAAAAAAAAACMAAAAQ29uZmlndXJhdGlvbnMyL2FjY2Vs ZXJhdG9yL2N1cnJlbnQueG1sUEsBAhQAFAAACAAAUo9IPAAAAAAAAAAAAAAAABgAAAAAAAAAAAAA AAAA4wAAAENvbmZpZ3VyYXRpb25zMi9mbG9hdGVyL1BLAQIUABQAAAgAAFKPSDwAAAAAAAAAAAAA AAAaAAAAAAAAAAAAAAAAABkBAABDb25maWd1cmF0aW9uczIvcG9wdXBtZW51L1BLAQIUABQAAAgA AFKPSDwAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAFEBAABDb25maWd1cmF0aW9uczIvcHJvZ3Jl c3NiYXIvUEsBAhQAFAAACAAAUo9IPAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAiwEAAENvbmZp Z3VyYXRpb25zMi9tZW51YmFyL1BLAQIUABQAAAgAAFKPSDwAAAAAAAAAAAAAAAAYAAAAAAAAAAAA AAAAAMEBAABDb25maWd1cmF0aW9uczIvdG9vbGJhci9QSwECFAAUAAAIAABSj0g8AAAAAAAAAAAA AAAAHwAAAAAAAAAAAAAAAAD3AQAAQ29uZmlndXJhdGlvbnMyL2ltYWdlcy9CaXRtYXBzL1BLAQIU ABQACAgIAFKPSDxn98ftdAwAAEegAAALAAAAAAAAAAAAAAAAADQCAABjb250ZW50LnhtbFBLAQIU ABQACAgIAFKPSDyMGaDLtwUAAG4ZAAAKAAAAAAAAAAAAAAAAAOEOAABzdHlsZXMueG1sUEsBAhQA FAAACAAAUo9IPAkOUhMQAwAAEAMAAAgAAAAAAAAAAAAAAAAA0BQAAG1ldGEueG1sUEsBAhQAFAAI CAgAUo9IPJuKn/J/DwAAqxAAABgAAAAAAAAAAAAAAAAABhgAAFRodW1ibmFpbHMvdGh1bWJuYWls LnBuZ1BLAQIUABQACAgIAFKPSDzSeIFt/gMAAH0fAAAMAAAAAAAAAAAAAAAAAMsnAABzZXR0aW5n cy54bWxQSwECFAAUAAgICABSj0g8QVT7Q0kBAABoBwAAFQAAAAAAAAAAAAAAAAADLAAATUVUQS1J TkYvbWFuaWZlc3QueG1sUEsFBgAAAAAPAA8A7gMAAI8tAAAAAA== --=_gcmail5-- From glaubitz@physik.fu-berlin.de Tue Feb 09 23:06:36 2010 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1NeyE7-0001sQ-GY>; Tue, 09 Feb 2010 23:06:35 +0100 Received: from mx.physik.fu-berlin.de ([160.45.64.218]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1NeyE7-0007IV-Ei>; Tue, 09 Feb 2010 23:06:35 +0100 Received: from z6.physik.fu-berlin.de ([160.45.66.66]) by mx.physik.fu-berlin.de with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1NeyE7-00060e-AF for linux-minidisc@lists.fu-berlin.de; Tue, 09 Feb 2010 23:06:35 +0100 Received: from glaubitz by z6.physik.fu-berlin.de with local (Exim 4.71 #1 (Debian)) id 1NeyE7-0002re-86 for ; Tue, 09 Feb 2010 23:06:35 +0100 Date: Tue, 9 Feb 2010 23:06:35 +0100 To: linux-minidisc@lists.fu-berlin.de Message-ID: <20100209220635.GA10910@physik.fu-berlin.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) From: Adrian Glaubitz X-Originating-IP: 160.45.64.218 X-purgate: clean X-purgate-ID: 151147::1265753195-00000DDD-521B612C/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.061543, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Burundi.ZEDAT.FU-Berlin.DE X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=ALL_TRUSTED Subject: [linux-minidisc] Updated QHiMDTransfer for MacOS/PPC X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Feb 2010 22:06:36 -0000 Hi, I just built and uploaded a recent version of QHiMDTransfer for MacOS/PPC. It was built on MacOS 10.5.8 (Leopard) with an up-to-date version of Macports and its ports. It should run on MacOS 10.5 and later. Changes are: - Update to git 20100209 Adrian From glaubitz@physik.fu-berlin.de Tue Feb 09 23:09:56 2010 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1NeyHL-0001y0-9d>; Tue, 09 Feb 2010 23:09:55 +0100 Received: from mx.physik.fu-berlin.de ([160.45.64.218]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1NeyHL-0007oE-7k>; Tue, 09 Feb 2010 23:09:55 +0100 Received: from z6.physik.fu-berlin.de ([160.45.66.66]) by mx.physik.fu-berlin.de with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1NeyHL-000617-3W for linux-minidisc@lists.fu-berlin.de; Tue, 09 Feb 2010 23:09:55 +0100 Received: from glaubitz by z6.physik.fu-berlin.de with local (Exim 4.71 #1 (Debian)) id 1NeyHL-0002tS-22 for ; Tue, 09 Feb 2010 23:09:55 +0100 Date: Tue, 9 Feb 2010 23:09:55 +0100 To: linux-minidisc@lists.fu-berlin.de Message-ID: <20100209220954.GB10910@physik.fu-berlin.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) From: Adrian Glaubitz X-Originating-IP: 160.45.64.218 X-purgate: clean X-purgate-ID: 151147::1265753395-00000DDD-2A7A4135/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000008, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Burundi.ZEDAT.FU-Berlin.DE X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=ALL_TRUSTED Subject: [linux-minidisc] New wiki page for developers X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Feb 2010 22:09:56 -0000 Hi, I have written a small howto which explains how to write and submit patches for linux-minidisc with the help of git. I got inspired by the very educational and entertaining talk by Greg Kroah-Hartman at FOSDEM conference where he explained how to write and submit patches to the Linux kernel. The page can be found here and will hopefully a good starter for new developers: Adrian From glaubitz@physik.fu-berlin.de Tue Feb 09 23:11:51 2010 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1NeyJC-00021o-5U>; Tue, 09 Feb 2010 23:11:50 +0100 Received: from mx.physik.fu-berlin.de ([160.45.64.218]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1NeyJC-0008Bk-3O>; Tue, 09 Feb 2010 23:11:50 +0100 Received: from z6.physik.fu-berlin.de ([160.45.66.66]) by mx.physik.fu-berlin.de with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1NeyJB-00061W-V6 for linux-minidisc@lists.fu-berlin.de; Tue, 09 Feb 2010 23:11:50 +0100 Received: from glaubitz by z6.physik.fu-berlin.de with local (Exim 4.71 #1 (Debian)) id 1NeyJB-0002wm-Te for ; Tue, 09 Feb 2010 23:11:49 +0100 Date: Tue, 9 Feb 2010 23:11:49 +0100 To: linux-minidisc@lists.fu-berlin.de Message-ID: <20100209221149.GC10910@physik.fu-berlin.de> References: <20100209220635.GA10910@physik.fu-berlin.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100209220635.GA10910@physik.fu-berlin.de> User-Agent: Mutt/1.5.20 (2009-06-14) From: Adrian Glaubitz X-Originating-IP: 160.45.64.218 X-purgate: clean X-purgate-ID: 151147::1265753510-00000DDD-35FB48DC/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.231572, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Benin.ZEDAT.FU-Berlin.DE X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=ALL_TRUSTED Subject: Re: [linux-minidisc] Updated QHiMDTransfer for MacOS/PPC X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Feb 2010 22:11:51 -0000 On Tue, Feb 09, 2010 at 11:06:35PM +0100, Adrian Glaubitz wrote: > Hi, > > I just built and uploaded a recent version of QHiMDTransfer for > MacOS/PPC. It was built on MacOS 10.5.8 (Leopard) with an up-to-date > version of Macports and its ports. It should run on MacOS 10.5 and > later. Forgot the download link, sorry. It can be fetched here: Adrian From plr.vincent@gmail.com Thu Feb 11 22:47:30 2010 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nfgsj-0004qf-7U>; Thu, 11 Feb 2010 22:47:29 +0100 Received: from mail-ew0-f227.google.com ([209.85.219.227]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nfgsj-0001Ct-3q>; Thu, 11 Feb 2010 22:47:29 +0100 Received: by ewy27 with SMTP id 27so1899500ewy.38 for ; Thu, 11 Feb 2010 13:47:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:in-reply-to :references:from:date:subject:to:mime-version:content-type:x-length :x-uid; bh=ZiW0zjSIuBVYUp/pbPM+NYAGtUcqrMsfe6RHtaZ8S+Q=; b=N2ILJGX/v+LVqFKEYJ8kzHU2DlnOhXzqDU+mXQXPZlKIsnjSSFiw8qlTwPQJ+EWGnN 86ox8mS0wZ8X86mjG8deRNm+5Plq6G+LCbHNesnIoZr9O8iTY22Q3uVuQdDvrLzWkSUA 8+i6iHvLo/5v5E9T/yaQ/wSemGFgwGN7SiyfA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:in-reply-to:references:from:date:subject:to:mime-version :content-type:x-length:x-uid; b=iamfOBhmA7OFiuS/mB0mIqxH0+WeC/6DO7Mgg9KYF68IYSLN40vQhiI2OqPuY4sOP0 RMHJqNUvVK/l4+9shtC17irEE9SARimDBgCt0CHwFcH5rny6/aBBeBSc6sA98PW8zXcB OTP1GuYfT69LEsUMyu3fC2z7dgIA79Sc2gojY= Received: by 10.213.67.205 with SMTP id s13mr23897ebi.1.1265924847918; Thu, 11 Feb 2010 13:47:27 -0800 (PST) Received: from x2.localnet (ALille-154-1-20-82.w86-196.abo.wanadoo.fr [86.196.11.82]) by mx.google.com with ESMTPS id 13sm1833059ewy.1.2010.02.11.13.47.27 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 11 Feb 2010 13:47:27 -0800 (PST) Message-Id: <53482e08bc392a2a2672b35d4d211544a3a7d38f.1265924723.git.plr.vincent@gmail.com> In-Reply-To: <0fe2075adf9fe998f5e64b1a5803fef2bbed5d00.1265924723.git.plr.vincent@gmail.com> References: <0fe2075adf9fe998f5e64b1a5803fef2bbed5d00.1265924723.git.plr.vincent@gmail.com> From: Vincent Pelletier To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------1.6.6.1" X-Length: 1971 X-UID: 72666 X-Originating-IP: 209.85.219.227 X-ZEDAT-Hint: A X-purgate: clean X-purgate-ID: 151147::1265924849-00000DDD-7B181BE1/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.018303, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Dschibuti.ZEDAT.FU-Berlin.DE X-Spam-Level: xx X-Spam-Status: No, score=2.5 required=5.0 tests=DATE_IN_PAST_96_XX, DNS_FROM_RFC_POST,FORGED_RCVD_HELO,RCVD_BY_IP,SPF_HELO_PASS,SPF_PASS Subject: [linux-minidisc] [PATCH 05/14] Replace tabulations by spaces. X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Date: Thu, 11 Feb 2010 21:47:30 -0000 X-Original-Date: Wed, 27 Jan 2010 20:01:15 +0100 X-List-Received-Date: Thu, 11 Feb 2010 21:47:30 -0000 This is a multi-part message in MIME format. --------------1.6.6.1 Content-Type: text/plain; charset=UTF-8; format=fixed Content-Transfer-Encoding: 8bit --- netmd/usb1.py | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) --------------1.6.6.1 Content-Type: text/x-patch; name="0005-Replace-tabulations-by-spaces.patch" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="0005-Replace-tabulations-by-spaces.patch" diff --git a/netmd/usb1.py b/netmd/usb1.py index 34731b3..c5d9f77 100644 --- a/netmd/usb1.py +++ b/netmd/usb1.py @@ -197,15 +197,15 @@ class USBDeviceHandle(object): return result def fillControlSetup(self, string_buffer, request_type, request, value, - index, length): + index, length): libusb1.libusb_fill_control_setup(string_buffer, request_type, - request, value, index, length) + request, value, index, length) def fillControlTransfer(self, transfer, setup, callback, user_data, timeout): libusb1.libusb_fill_control_transfer(transfer, self.handle, setup, libusb1.libusb_transfer_cb_fn_p(callback), user_data, - timeout) + timeout) def getControlTransfer(self, setup, callback, user_data=None, timeout=0): result = self._getTransfer() --------------1.6.6.1-- From plr.vincent@gmail.com Thu Feb 11 22:47:30 2010 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nfgsj-0004qh-Ae>; Thu, 11 Feb 2010 22:47:29 +0100 Received: from mail-ew0-f227.google.com ([209.85.219.227]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nfgsj-0001Cv-7T>; Thu, 11 Feb 2010 22:47:29 +0100 Received: by ewy27 with SMTP id 27so1899511ewy.38 for ; Thu, 11 Feb 2010 13:47:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:in-reply-to :references:from:date:subject:to:mime-version:content-type:x-length :x-uid; bh=vAPA4j/qkf6wDUSofpztddlbTfqOEyxb3bAF0NTf/BU=; b=cnkQ1L57hix0a39rEDM1bs0akcsztCYMO9bisRmly8uhXNTsV4MQkfEOtK3ED0/lja goKlnGbzUJzIosGGR4a1+5ZASi9iYTKIFmJKfI2h50ItpynnvW1nOxxyGxHS5Vj+K9EI O0PdE0eQddoWNevi1X9IZzL1D2klnan2A5798= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:in-reply-to:references:from:date:subject:to:mime-version :content-type:x-length:x-uid; b=bzE2cU2eQrlTt58METrUzD++QHRtEGhhW8AAY+4egcOpMtkY0+6U7WCOE3LI4zpv6U RvKz4JzaDnfxRzRF7MK7ktTqE3q6IRcB6zCJ5153PJJTvcDPYFy2qrxrs9dFWAvaP/c1 SFnB3TNe1UtbJNPlJXyByq7nOMcWFx2yI8XmQ= Received: by 10.213.1.24 with SMTP id 24mr373978ebd.57.1265924848502; Thu, 11 Feb 2010 13:47:28 -0800 (PST) Received: from x2.localnet (ALille-154-1-20-82.w86-196.abo.wanadoo.fr [86.196.11.82]) by mx.google.com with ESMTPS id 13sm1833059ewy.1.2010.02.11.13.47.28 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 11 Feb 2010 13:47:28 -0800 (PST) Message-Id: <4807cd2d54134a6375d1305634ed371a5232014e.1265924723.git.plr.vincent@gmail.com> In-Reply-To: <0fe2075adf9fe998f5e64b1a5803fef2bbed5d00.1265924723.git.plr.vincent@gmail.com> References: <0fe2075adf9fe998f5e64b1a5803fef2bbed5d00.1265924723.git.plr.vincent@gmail.com> From: Vincent Pelletier To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------1.6.6.1" X-Length: 3679 X-UID: 72663 X-Originating-IP: 209.85.219.227 X-ZEDAT-Hint: A X-purgate: clean X-purgate-ID: 151147::1265924849-00000DDD-58DD882E/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.279146, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Gabun.ZEDAT.FU-Berlin.DE X-Spam-Level: xx X-Spam-Status: No, score=2.5 required=5.0 tests=DATE_IN_PAST_96_XX, DNS_FROM_RFC_POST,FORGED_RCVD_HELO,RCVD_BY_IP,SPF_HELO_PASS,SPF_PASS Subject: [linux-minidisc] [PATCH 02/14] Make transfer "buffer" field a c_void_p type. X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Date: Thu, 11 Feb 2010 21:47:30 -0000 X-Original-Date: Tue, 26 Jan 2010 21:12:26 +0100 X-List-Received-Date: Thu, 11 Feb 2010 21:47:30 -0000 This is a multi-part message in MIME format. --------------1.6.6.1 Content-Type: text/plain; charset=UTF-8; format=fixed Content-Transfer-Encoding: 8bit This fields contains binary data, and ctypes' c_char_type stops reading when encountering NULL byte. --- netmd/libusb1.py | 11 ++++++----- 1 files changed, 6 insertions(+), 5 deletions(-) --------------1.6.6.1 Content-Type: text/x-patch; name="0002-Make-transfer-buffer-field-a-c_void_p-type.patch" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="0002-Make-transfer-buffer-field-a-c_void_p-type.patch" diff --git a/netmd/libusb1.py b/netmd/libusb1.py index 6796860..4aae1ad 100644 --- a/netmd/libusb1.py +++ b/netmd/libusb1.py @@ -466,7 +466,7 @@ libusb_transfer._fields_ = [('dev_handle', libusb_device_handle_p), ('actual_length', c_int), ('callback', libusb_transfer_cb_fn_p), ('user_data', py_object), - ('buffer', c_char_p), + ('buffer', c_void_p), ('num_iso_packets', c_int), ('iso_packet_desc', libusb_iso_packet_descriptor_p) ] @@ -609,9 +609,9 @@ def libusb_control_transfer_get_data(transfer): def libusb_control_transfer_get_setup(transfer): return cast(transfer, libusb_control_setup_p) -def libusb_fill_control_setup(buffer, bmRequestType, bRequest, wValue, wIndex, +def libusb_fill_control_setup(setup_p, bmRequestType, bRequest, wValue, wIndex, wLength): - setup = cast(buffer, libusb_control_setup_p).contents + setup = cast(setup_p, libusb_control_setup_p).contents setup.bmRequestType = bmRequestType setup.bRequest = bRequest setup.wValue = libusb_cpu_to_le16(wValue) @@ -644,6 +644,7 @@ def libusb_fill_control_transfer(transfer_p, dev_handle, buffer, callback, setup = cast(buffer, libusb_control_setup_p).contents transfer.length = LIBUSB_CONTROL_SETUP_SIZE + \ libusb_le16_to_cpu(setup.wLength) + transfer.buffer = cast(buffer, c_void_p) transfer.user_data = user_data transfer.callback = callback @@ -654,7 +655,7 @@ def libusb_fill_bulk_transfer(transfer_p, dev_handle, endpoint, buffer, length, transfer.endpoint = endpoint transfer.type = LIBUSB_TRANSFER_TYPE_BULK transfer.timeout = timeout - transfer.buffer = buffer + transfer.buffer = cast(buffer, c_void_p) transfer.length = length transfer.user_data = user_data transfer.callback = callback @@ -666,7 +667,7 @@ def libusb_fill_interrupt_transfer(transfer_p, dev_handle, endpoint, buffer, transfer.endpoint = endpoint transfer.type = LIBUSB_TRANSFER_TYPE_INTERRUPT transfer.timeout = timeout - transfer.buffer = buffer + transfer.buffer = cast(buffer, c_void_p) transfer.length = length transfer.user_data = user_data transfer.callback = callback --------------1.6.6.1-- From plr.vincent@gmail.com Thu Feb 11 22:47:30 2010 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nfgsj-0004qg-87>; Thu, 11 Feb 2010 22:47:29 +0100 Received: from mail-ew0-f227.google.com ([209.85.219.227]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nfgsj-0001Cu-3w>; Thu, 11 Feb 2010 22:47:29 +0100 Received: by ewy27 with SMTP id 27so1899505ewy.38 for ; Thu, 11 Feb 2010 13:47:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:in-reply-to :references:from:date:subject:to:mime-version:content-type:x-length :x-uid; bh=HW06Rv3q4MC32F1kYPNU5Lu2yxK2Bylcuf7E7KYstvA=; b=KjdyIVHnhR2JkRi+P9OAQMeLhojjmvQ+jXfsARs06CQVWpse/8GvQPC/F3WSNNO4IZ 6G7VhPTPm9l7NfkFmdYm2XaVqCCXtmEuNsvl5ebzzIqWUF1plOcmFrCGZ/iSKNHEQWe7 rY9NDuo1ESqSgJa+oU9GOJpYVXsjz+AvHrCfs= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:in-reply-to:references:from:date:subject:to:mime-version :content-type:x-length:x-uid; b=q+Hv6VtWF7ZpP9vgy1li6b5ehgMbmB0rS5erJ518H6vBwKrfz8UbJ2tN9J4OZipXai JGPm/RUIzewkK6eLexFN46Lt5HB/0/YtpSmYGzwUIR6yw1AthuW4UVki+Ga12uZmbSI1 yxFiC+ScPn9F0nmC5aGfCy4eDFrdHVxr3ag74= Received: by 10.213.97.78 with SMTP id k14mr423732ebn.24.1265924847293; Thu, 11 Feb 2010 13:47:27 -0800 (PST) Received: from x2.localnet (ALille-154-1-20-82.w86-196.abo.wanadoo.fr [86.196.11.82]) by mx.google.com with ESMTPS id 13sm1833059ewy.1.2010.02.11.13.47.26 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 11 Feb 2010 13:47:27 -0800 (PST) Message-Id: <23fc40c049511929a2489bacda60649bf24183fc.1265924723.git.plr.vincent@gmail.com> In-Reply-To: <0fe2075adf9fe998f5e64b1a5803fef2bbed5d00.1265924723.git.plr.vincent@gmail.com> References: <0fe2075adf9fe998f5e64b1a5803fef2bbed5d00.1265924723.git.plr.vincent@gmail.com> From: Vincent Pelletier To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------1.6.6.1" X-Length: 6132 X-UID: 72665 X-Originating-IP: 209.85.219.227 X-ZEDAT-Hint: A X-purgate: clean X-purgate-ID: 151147::1265924849-00000DDD-AF3A737D/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.001286, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Algerien.ZEDAT.FU-Berlin.DE X-Spam-Level: xx X-Spam-Status: No, score=2.5 required=5.0 tests=DATE_IN_PAST_96_XX, DNS_FROM_RFC_POST,FORGED_RCVD_HELO,RCVD_BY_IP,SPF_HELO_PASS,SPF_PASS Subject: [linux-minidisc] [PATCH 04/14] Implement asynchronous transfers. X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Date: Thu, 11 Feb 2010 21:47:30 -0000 X-Original-Date: Tue, 26 Jan 2010 21:15:55 +0100 X-List-Received-Date: Thu, 11 Feb 2010 21:47:30 -0000 This is a multi-part message in MIME format. --------------1.6.6.1 Content-Type: text/plain; charset=UTF-8; format=fixed Content-Transfer-Encoding: 8bit --- netmd/usb1.py | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 105 insertions(+), 1 deletions(-) --------------1.6.6.1 Content-Type: text/x-patch; name="0004-Implement-asynchronous-transfers.patch" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="0004-Implement-asynchronous-transfers.patch" diff --git a/netmd/usb1.py b/netmd/usb1.py index d22f52a..34731b3 100644 --- a/netmd/usb1.py +++ b/netmd/usb1.py @@ -1,6 +1,6 @@ # pyusb compatibility layer for libus-1.0 import libusb1 -from ctypes import byref, create_string_buffer, c_int +from ctypes import byref, create_string_buffer, c_int, sizeof, POINTER from cStringIO import StringIO __all__ = ['LibUSBContext'] @@ -162,6 +162,72 @@ class USBDeviceHandle(object): transferred = self._interruptTransfer(endpoint, data, length, timeout) return data.raw[:transferred] + def _getTransfer(self, iso_packets=0): + result = libusb1.libusb_alloc_transfer(iso_packets) + if not result: + raise libusb1.USBError, 'Unable to get a transfer object' + return result + + def fillBulkTransfer(self, transfer, endpoint, string_buffer, + callback, user_data, timeout): + libusb1.libusb_fill_bulk_transfer(transfer, self.handle, + endpoint, string_buffer, sizeof(string_buffer), + libusb1.libusb_transfer_cb_fn_p(callback), user_data, + timeout) + + def getBulkTransfer(self, endpoint, string_buffer, callback, + user_data=None, timeout=0): + result = self._getTransfer() + self.fillBulkTransfer(result, endpoint, string_buffer, callback, + user_data, timeout) + return result + + def fillInterruptTransfer(self, transfer, endpoint, string_buffer, + callback, user_data, timeout): + libusb1.libusb_fill_interrupt_transfer(transfer, self.handle, + endpoint, string_buffer, sizeof(string_buffer), + libusb1.libusb_transfer_cb_fn_p(callback), user_data, + timeout) + + def getInterruptTransfer(self, endpoint, string_buffer, callback, + user_data=None, timeout=0): + result = self._getTransfer() + self.fillInterruptTransfer(result, endpoint, string_buffer, + callback, user_data, timeout) + return result + + def fillControlSetup(self, string_buffer, request_type, request, value, + index, length): + libusb1.libusb_fill_control_setup(string_buffer, request_type, + request, value, index, length) + + def fillControlTransfer(self, transfer, setup, callback, + user_data, timeout): + libusb1.libusb_fill_control_transfer(transfer, self.handle, + setup, libusb1.libusb_transfer_cb_fn_p(callback), user_data, + timeout) + + def getControlTransfer(self, setup, callback, user_data=None, timeout=0): + result = self._getTransfer() + self.fillControlTransfer(result, setup, callback, user_data, timeout) + return result + + def fillISOTransfer(self, *args, **kw): + raise NotImplementedError + + def getISOTransfer(self, *args, **kw): + raise NotImplementedError + + def submitTransfer(self, transfer): + result = libusb1.libusb_submit_transfer(transfer) + if result: + raise libusb1.USBError, result + + def cancelTransfer(self, transfer): + result = libusb1.libusb_cancel_transfer(transfer) + if result: + raise libusb1.USBError, result + class USBDevice(object): configuration_descriptor_list = None @@ -347,3 +413,41 @@ class LibUSBContext(object): result = None return result + def getPollFDList(self): + pollfd_p_p = libusb1.libusb_get_pollfds(self.context_p) + result = [] + append = result.append + fd_index = 0 + while pollfd_p_p[fd_index]: + append((pollfd_p_p[fd_index].contents.fd, + pollfd_p_p[fd_index].contents.events)) + fd_index += 1 + return result + + def handleEvents(self): + result = libusb1.libusb_handle_events(self.context_p) + if result: + raise libusb1.USBError, result + + def handleEventsTimeout(self, tv=None): + assert tv is None, 'tv parameter is not supported yet' + tv = libusb1.timeval(0, 0) + result = libusb1.libusb_handle_events_timeout(self.context_p, byref(tv)) + if result: + raise libusb1.USBError, result + + def setPollFDNotifiers(self, added_cb=None, removed_cb=None, user_data=None): + if added_cb is None: + added_cb = POINTER(None) + else: + added_cb = libusb1.libusb_pollfd_added_cb_p(added_cb) + if removed_cb is None: + removed_cb = POINTER(None) + else: + removed_cb = libusb1.libusb_pollfd_removed_cb_p(removed_cb) + libusb1.libusb_set_pollfd_notifiers(self.context_p, added_cb, + removed_cb, user_data) + + def getNextTimeout(self): + return libusb1.libusb_get_next_timeout(self.context_p, None) + --------------1.6.6.1-- From plr.vincent@gmail.com Thu Feb 11 22:47:30 2010 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nfgsk-0004rI-2C>; Thu, 11 Feb 2010 22:47:30 +0100 Received: from mail-ew0-f227.google.com ([209.85.219.227]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nfgsj-0001Ct-V9>; Thu, 11 Feb 2010 22:47:30 +0100 Received: by mail-ew0-f227.google.com with SMTP id 27so1899500ewy.38 for ; Thu, 11 Feb 2010 13:47:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:in-reply-to :references:from:date:subject:to:mime-version:content-type:x-length :x-uid; bh=z/VQ75dm4vguebFS/AVX65HoMzhd6Pzs0Rn+FN/B7i8=; b=OynM9upjrSeaMgs0mYXzofQIaJzlqL2z1HOyb3D7lO8QC6DQUUl/c7laBth+VdmDvA QgTZ0bzT24e0ehy+qrkzNhtCfzBv//VOpYES4mV93nSyR2uy7RDeMhJzk44tBszSRcja eXCwA0npKpLHjxXWLFUwXivOIMHuZe5l1Q1/I= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:in-reply-to:references:from:date:subject:to:mime-version :content-type:x-length:x-uid; b=Do2JxP4+DZ/kiCo9pPndIR3x2mjEX7/Y/pRpZ1EzvhS0mBxYkN9gawWNxyWupp44fp Tyb7yujgocviTCtFiDXiI7UF4RQZgz3kZr6dEO+CHJ1lVE8hjf5HtzS0jHIl+5yMqbti B+kfGH1AbLS6f1bwgqmukEAL6gxR/6Ahdgc30= Received: by 10.213.103.134 with SMTP id k6mr1174728ebo.2.1265924849441; Thu, 11 Feb 2010 13:47:29 -0800 (PST) Received: from x2.localnet (ALille-154-1-20-82.w86-196.abo.wanadoo.fr [86.196.11.82]) by mx.google.com with ESMTPS id 13sm1833059ewy.1.2010.02.11.13.47.28 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 11 Feb 2010 13:47:29 -0800 (PST) Message-Id: <20df766680d58228d85e086715f5ba571e62adaa.1265924723.git.plr.vincent@gmail.com> In-Reply-To: <0fe2075adf9fe998f5e64b1a5803fef2bbed5d00.1265924723.git.plr.vincent@gmail.com> References: <0fe2075adf9fe998f5e64b1a5803fef2bbed5d00.1265924723.git.plr.vincent@gmail.com> From: Vincent Pelletier Date: Thu, 11 Feb 2010 22:20:07 +0100 To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------1.6.6.1" X-Length: 2956 X-UID: 72672 X-Originating-IP: 209.85.219.227 X-ZEDAT-Hint: A X-purgate: clean X-purgate-ID: 151147::1265924850-00000DDD-A2C36094/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.017660, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Burundi.ZEDAT.FU-Berlin.DE X-Spam-Level: x X-Spam-Status: No, score=1.4 required=5.0 tests=DNS_FROM_RFC_POST, FORGED_RCVD_HELO,RCVD_BY_IP,SPF_HELO_PASS,SPF_PASS Subject: [linux-minidisc] [PATCH 11/14] Remove duplicate code. X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Feb 2010 21:47:31 -0000 This is a multi-part message in MIME format. --------------1.6.6.1 Content-Type: text/plain; charset=UTF-8; format=fixed Content-Transfer-Encoding: 8bit As this code is earlier in the file than redefinition, it's never used. --- netmd/upload.py | 36 ------------------------------------ 1 files changed, 0 insertions(+), 36 deletions(-) --------------1.6.6.1 Content-Type: text/x-patch; name="0011-Remove-duplicate-code.patch" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="0011-Remove-duplicate-code.patch" diff --git a/netmd/upload.py b/netmd/upload.py index 134d728..14f11b1 100755 --- a/netmd/upload.py +++ b/netmd/upload.py @@ -12,42 +12,6 @@ UPLOAD_FORMAT_LP2 = 0x82 UPLOAD_FORMAT_SP_MONO = 0x84 UPLOAD_FORMAT_SP_STEREO = 0x86 -# LP2/LP4 is always stereo on minidisc. -def formatWavHeader(formatbyte, length): - if format == UPLOAD_FORMAT_LP4: - bytesperframe = 96 - jointstereo = 1 - elif format == UPLOAD_FORMAT_LP2: - bytesperframe = 192 - jointstereo = 0 - else: - raise ValueError, 'unexpected format byte %02x' % format - bytespersecond = bytesperframe * 512 / 44100 - return pack("<4sI4s" # "RIFF" header - "<4sIHHIIHH" # "fmt " chunk - standard part - ") id <1Nfgsk-0004rh-GZ>; Thu, 11 Feb 2010 22:47:30 +0100 Received: from mail-ew0-f227.google.com ([209.85.219.227]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nfgsk-0001Cu-DF>; Thu, 11 Feb 2010 22:47:30 +0100 Received: by mail-ew0-f227.google.com with SMTP id 27so1899505ewy.38 for ; Thu, 11 Feb 2010 13:47:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:in-reply-to :references:from:date:subject:to:mime-version:content-type:x-length :x-uid; bh=L1l9qhNUPLOcGSFTb/7AATsolYOzeY7rXTZJtg/M5Vo=; b=qDdFI0M3U6Cehf56QaEzrkLx1VRG5/P0N6NODDKvizzDWXdQ3Ux5Jr6yiFXTOA/ysu FiovlfCZZ/WEBUsaj60HA4IY737CDzZrTSPKbK+uUHhEG6DCb4A9sInMKxTdPJbbmB7k TWu9d/uUHGch22JMvsmDL7EmAwN3alkaLh4Uo= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:in-reply-to:references:from:date:subject:to:mime-version :content-type:x-length:x-uid; b=b2VXjpufgYaU889d1S/PTp9ybc/otVPDl8/3lvMdK8sxuuI/FcKfMi9X6p3uvp9TUU HfBT78qEEYy89OmZgugOs0Lrh7yc3aOvNbiMsPB50poYtVk3wvXqBJLGF6gurgfcfUe3 W8y7cLC0TxgbtBlMGtorhXyVyRiFbLX8qFqYs= Received: by 10.213.42.205 with SMTP id t13mr1130440ebe.4.1265924849947; Thu, 11 Feb 2010 13:47:29 -0800 (PST) Received: from x2.localnet (ALille-154-1-20-82.w86-196.abo.wanadoo.fr [86.196.11.82]) by mx.google.com with ESMTPS id 13sm1833059ewy.1.2010.02.11.13.47.29 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 11 Feb 2010 13:47:29 -0800 (PST) Message-Id: <34a34c5674f73d6f51dbd5e7d5ccf00843cc69f7.1265924723.git.plr.vincent@gmail.com> In-Reply-To: <0fe2075adf9fe998f5e64b1a5803fef2bbed5d00.1265924723.git.plr.vincent@gmail.com> References: <0fe2075adf9fe998f5e64b1a5803fef2bbed5d00.1265924723.git.plr.vincent@gmail.com> From: Vincent Pelletier Date: Thu, 11 Feb 2010 22:35:39 +0100 To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------1.6.6.1" X-Length: 2344 X-UID: 72675 X-Originating-IP: 209.85.219.227 X-ZEDAT-Hint: A X-purgate: clean X-purgate-ID: 151147::1265924850-00000DDD-B230D478/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.351222, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Dschibuti.ZEDAT.FU-Berlin.DE X-Spam-Level: x X-Spam-Status: No, score=1.4 required=5.0 tests=DNS_FROM_RFC_POST, FORGED_RCVD_HELO,RCVD_BY_IP,SPF_HELO_PASS,SPF_PASS Subject: [linux-minidisc] [PATCH 14/14] There is no need to use %r for (thought-to-be) ASCII title. X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Feb 2010 21:47:31 -0000 This is a multi-part message in MIME format. --------------1.6.6.1 Content-Type: text/plain; charset=UTF-8; format=fixed Content-Transfer-Encoding: 8bit Note: those titles seems to just be one of 2 alternatives, and were found to contain shift-jis in some homemade MDs. --- netmd/lsmd.py | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) --------------1.6.6.1 Content-Type: text/x-patch; name="0014-There-is-no-need-to-use-r-for-thought-to-be-ASCII-ti.patch" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="0014-There-is-no-need-to-use-r-for-thought-to-be-ASCII-ti.patch" diff --git a/netmd/lsmd.py b/netmd/lsmd.py index cb5c02a..065be99 100755 --- a/netmd/lsmd.py +++ b/netmd/lsmd.py @@ -38,7 +38,7 @@ def listMD(md): * 512 + time_tuple[3] flags = reprDiscFlags(md_iface.getDiscFlags()) - print 'Disk (%s) %r %s' % ( + print 'Disk (%s) %s %s' % ( ', '.join(flags), md_iface.getDiscTitle(), md_iface.getDiscTitle(True).decode('shift_jis_2004')) disc_used, disc_total, disc_left = md_iface.getDiscCapacity() @@ -60,7 +60,7 @@ def listMD(md): hour, minute, second, sample = md_iface.getTrackLength(real_track) codec, channel_count = md_iface.getTrackEncoding(real_track) flags = md_iface.getTrackFlags(real_track) - print '%s%03i: %02i:%02i:%02i+%03i %s %s %s %r %s' % (prefix, + print '%s%03i: %02i:%02i:%02i+%03i %s %s %s %s %s' % (prefix, track, hour, minute, second, sample, codec_name_dict[codec], channel_count_dict[channel_count], flag_dict[flags], md_iface.getTrackTitle(real_track), --------------1.6.6.1-- From plr.vincent@gmail.com Thu Feb 11 22:47:33 2010 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nfgsm-0004sn-KR>; Thu, 11 Feb 2010 22:47:32 +0100 Received: from mail-ew0-f227.google.com ([209.85.219.227]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nfgsm-0001Ct-Gj>; Thu, 11 Feb 2010 22:47:32 +0100 Received: by mail-ew0-f227.google.com with SMTP id 27so1899500ewy.38 for ; Thu, 11 Feb 2010 13:47:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:in-reply-to :references:from:date:subject:to:mime-version:content-type:x-length :x-uid; bh=QKOqrgpgtHMXc3GAw//EQE1Ov5W7pJ/l74PC8+4uMRU=; b=HtYtbnBo9PjKEATFcw7KBjK/k92F/sjBlxZnTqsIxDVAgTwO4jiA25TbMlRVST/6fG lGyeDW5nSeKnbLlvf8rAo+FYcqEceHOX/B8GT//hQNTkflZfIMZ1M/sAEGgyQyEOr4hF bDx75gxfTSfQNvicYFuP1xoYGHv2+dGiYaZKU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:in-reply-to:references:from:date:subject:to:mime-version :content-type:x-length:x-uid; b=F9HzhiZs6pAtY7lAF15bKi7TjKjM1uP3545MiFDqVvg+zfvDleHMNC0/H/Nj3Gvdx1 hT0G5e0/n3JLycpar+3PX4i+KC4fr1pUUs8p8vUET8YrFMdJGAk2Ljmani1ebS1uHr2u DExVhmgPhqZssrTKrxpzke1F5VJXYrKjnaz3Y= Received: by 10.213.109.73 with SMTP id i9mr383067ebp.52.1265924852307; Thu, 11 Feb 2010 13:47:32 -0800 (PST) Received: from x2.localnet (ALille-154-1-20-82.w86-196.abo.wanadoo.fr [86.196.11.82]) by mx.google.com with ESMTPS id 13sm1833059ewy.1.2010.02.11.13.47.31 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 11 Feb 2010 13:47:31 -0800 (PST) Message-Id: In-Reply-To: <0fe2075adf9fe998f5e64b1a5803fef2bbed5d00.1265924723.git.plr.vincent@gmail.com> References: <0fe2075adf9fe998f5e64b1a5803fef2bbed5d00.1265924723.git.plr.vincent@gmail.com> From: Vincent Pelletier To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------1.6.6.1" X-Length: 3139 X-UID: 72667 X-Originating-IP: 209.85.219.227 X-ZEDAT-Hint: A X-purgate: clean X-purgate-ID: 151147::1265924852-00000DDD-CFD43871/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.267526, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Algerien.ZEDAT.FU-Berlin.DE X-Spam-Level: xx X-Spam-Status: No, score=2.5 required=5.0 tests=DATE_IN_PAST_96_XX, DNS_FROM_RFC_POST,FORGED_RCVD_HELO,RCVD_BY_IP,SPF_HELO_PASS,SPF_PASS Subject: [linux-minidisc] [PATCH 06/14] Fix segfaults at interpreter exit. X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Date: Thu, 11 Feb 2010 21:47:33 -0000 X-Original-Date: Wed, 27 Jan 2010 20:34:07 +0100 X-List-Received-Date: Thu, 11 Feb 2010 21:47:33 -0000 This is a multi-part message in MIME format. --------------1.6.6.1 Content-Type: text/plain; charset=UTF-8; format=fixed Content-Transfer-Encoding: 8bit --- netmd/usb1.py | 14 +++++++++----- 1 files changed, 9 insertions(+), 5 deletions(-) --------------1.6.6.1 Content-Type: text/x-patch; name="0006-Fix-segfaults-at-interpreter-exit.patch" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="0006-Fix-segfaults-at-interpreter-exit.patch" diff --git a/netmd/usb1.py b/netmd/usb1.py index c5d9f77..925adfc 100644 --- a/netmd/usb1.py +++ b/netmd/usb1.py @@ -11,7 +11,10 @@ STRING_LENGTH = 256 class USBDeviceHandle(object): handle = None - def __init__(self, handle): + def __init__(self, context, handle): + # XXX Context parameter is just here as a hint for garbage collector: + # It must collect USBDeviceHandle instance before their LibUSBContext. + self.context = context self.handle = handle def __del__(self): @@ -232,7 +235,8 @@ class USBDevice(object): configuration_descriptor_list = None - def __init__(self, device_p): + def __init__(self, context, device_p): + self.context = context libusb1.libusb_ref_device(device_p) self.device_p = device_p # Fetch device descriptor @@ -373,7 +377,7 @@ class USBDevice(object): result = libusb1.libusb_open(self.device_p, byref(handle)) if result: raise libusb1.USBError, result - return USBDeviceHandle(handle) + return USBDeviceHandle(self.context, handle) class LibUSBContext(object): @@ -399,7 +403,7 @@ class LibUSBContext(object): device_p_p = libusb1.libusb_device_p_p() device_list_len = libusb1.libusb_get_device_list(self.context_p, byref(device_p_p)) - result = [USBDevice(x) for x in device_p_p[:device_list_len]] + result = [USBDevice(self, x) for x in device_p_p[:device_list_len]] # XXX: causes problems, why ? #libusb1.libusb_free_device_list(device_p_p, 1) return result @@ -408,7 +412,7 @@ class LibUSBContext(object): handle_p = libusb1.libusb_open_device_with_vid_pid(self.context_p, vendor_id, product_id) if handle_p: - result = USBDeviceHandle(handle_p) + result = USBDeviceHandle(self, handle_p) else: result = None return result --------------1.6.6.1-- From plr.vincent@gmail.com Thu Feb 11 22:47:35 2010 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nfgso-0004tN-0M>; Thu, 11 Feb 2010 22:47:34 +0100 Received: from mail-ew0-f227.google.com ([209.85.219.227]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nfgsn-0001Cu-TI>; Thu, 11 Feb 2010 22:47:33 +0100 Received: by mail-ew0-f227.google.com with SMTP id 27so1899505ewy.38 for ; Thu, 11 Feb 2010 13:47:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:from:date:subject :to:mime-version:content-type:x-length:x-uid; bh=XmN1brRHQxXuu1t91dPq1DAyUtZZUr0UZ3MjHFGMacM=; b=Wx5RaiJLOZS/thtDX9tsDsabPnBw9QzetlQUiukzSM/oop7i7kcGmODSNIIrr/rKt/ 8yNzgN8cbgIHHBKa0jz0utIF4Jb4L88vCtFkZYfItTUfLtcJWWoan3U4HJXdyfpvrrDY M+dSVyNkZEgkpn2Ckju/LKHR694Hi9tnHMK6c= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:from:date:subject:to:mime-version:content-type:x-length :x-uid; b=b2i/yeGQL+3YAaoviUQmsUyCfBhJG4mJmSn8lQp6KHcoV3JdINDjMrrmlEQipu8dXg CWTayrex+zxp5erVutOgxWayNgqf8eQuou8/vMtOo2NaWMH8AoU1KSr8vx9lJLlJnxcG wBr+dX/GZ1/sjcCPsyT1dutBf4XO8PlwSEHd0= Received: by 10.213.97.4 with SMTP id j4mr1194922ebn.9.1265924853171; Thu, 11 Feb 2010 13:47:33 -0800 (PST) Received: from x2.localnet (ALille-154-1-20-82.w86-196.abo.wanadoo.fr [86.196.11.82]) by mx.google.com with ESMTPS id 13sm1833059ewy.1.2010.02.11.13.47.32 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 11 Feb 2010 13:47:32 -0800 (PST) Message-Id: <0fe2075adf9fe998f5e64b1a5803fef2bbed5d00.1265924723.git.plr.vincent@gmail.com> From: Vincent Pelletier To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------1.6.6.1" X-Length: 3474 X-UID: 72662 X-Originating-IP: 209.85.219.227 X-ZEDAT-Hint: A X-purgate: clean X-purgate-ID: 151147::1265924854-00000DDD-B843A1D9/0-0/0-0 X-Bogosity: Unsure, tests=bogofilter, spamicity=0.461598, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Botsuana.ZEDAT.FU-Berlin.DE X-Spam-Level: xxxx X-Spam-Status: No, score=4.0 required=5.0 tests=DATE_IN_PAST_96_XX, DNS_FROM_RFC_POST,FORGED_RCVD_HELO,FU_BOGO_UNSURE,RCVD_BY_IP, SPF_HELO_PASS,SPF_PASS Subject: [linux-minidisc] [PATCH 01/14] Make some function accepting opaque data pointer accept a py_object. X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Date: Thu, 11 Feb 2010 21:47:35 -0000 X-Original-Date: Tue, 26 Jan 2010 21:10:57 +0100 X-List-Received-Date: Thu, 11 Feb 2010 21:47:35 -0000 This is a multi-part message in MIME format. --------------1.6.6.1 Content-Type: text/plain; charset=UTF-8; format=fixed Content-Transfer-Encoding: 8bit This makes them easily usable in python. --- netmd/libusb1.py | 11 +++++------ 1 files changed, 5 insertions(+), 6 deletions(-) --------------1.6.6.1 Content-Type: text/x-patch; name="0001-Make-some-function-accepting-opaque-data-pointer-acc.patch" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="0001-Make-some-function-accepting-opaque-data-pointer-acc.patch" diff --git a/netmd/libusb1.py b/netmd/libusb1.py index 4aae1ad..6796860 100644 --- a/netmd/libusb1.py +++ b/netmd/libusb1.py @@ -466,7 +466,7 @@ libusb_transfer._fields_ = [('dev_handle', libusb_device_handle_p), ('actual_length', c_int), ('callback', libusb_transfer_cb_fn_p), ('user_data', py_object), - ('buffer', c_void_p), + ('buffer', c_char_p), ('num_iso_packets', c_int), ('iso_packet_desc', libusb_iso_packet_descriptor_p) ] @@ -609,9 +609,9 @@ def libusb_control_transfer_get_data(transfer): def libusb_control_transfer_get_setup(transfer): return cast(transfer, libusb_control_setup_p) -def libusb_fill_control_setup(setup_p, bmRequestType, bRequest, wValue, wIndex, +def libusb_fill_control_setup(buffer, bmRequestType, bRequest, wValue, wIndex, wLength): - setup = cast(setup_p, libusb_control_setup_p).contents + setup = cast(buffer, libusb_control_setup_p).contents setup.bmRequestType = bmRequestType setup.bRequest = bRequest setup.wValue = libusb_cpu_to_le16(wValue) @@ -644,7 +644,6 @@ def libusb_fill_control_transfer(transfer_p, dev_handle, buffer, callback, setup = cast(buffer, libusb_control_setup_p).contents transfer.length = LIBUSB_CONTROL_SETUP_SIZE + \ libusb_le16_to_cpu(setup.wLength) - transfer.buffer = cast(buffer, c_void_p) transfer.user_data = user_data transfer.callback = callback @@ -655,7 +654,7 @@ def libusb_fill_bulk_transfer(transfer_p, dev_handle, endpoint, buffer, length, transfer.endpoint = endpoint transfer.type = LIBUSB_TRANSFER_TYPE_BULK transfer.timeout = timeout - transfer.buffer = cast(buffer, c_void_p) + transfer.buffer = buffer transfer.length = length transfer.user_data = user_data transfer.callback = callback @@ -667,7 +666,7 @@ def libusb_fill_interrupt_transfer(transfer_p, dev_handle, endpoint, buffer, transfer.endpoint = endpoint transfer.type = LIBUSB_TRANSFER_TYPE_INTERRUPT transfer.timeout = timeout - transfer.buffer = cast(buffer, c_void_p) + transfer.buffer = buffer transfer.length = length transfer.user_data = user_data transfer.callback = callback --------------1.6.6.1-- From plr.vincent@gmail.com Thu Feb 11 22:47:35 2010 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nfgso-0004te-IV>; Thu, 11 Feb 2010 22:47:34 +0100 Received: from mail-ew0-f179.google.com ([209.85.219.179]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nfgso-0001EF-EY>; Thu, 11 Feb 2010 22:47:34 +0100 Received: by ewy27 with SMTP id 27so1096056ewy.18 for ; Thu, 11 Feb 2010 13:47:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:in-reply-to :references:from:date:subject:to:mime-version:content-type:x-length :x-uid; bh=Dqp2kK4G/d+8OH23rO06s+e3lG7IVeMsKlbe9M2t0G0=; b=Lblfjz+qSJmAWlQe8LA0i1GRD9ywKIfg3ihrjBfAf5tDUYbIfNOBqsEOC/TgPlWWjv WGkwZ3oR0O7YrEnAiPlJrWRCr5TutMtTm8g5fD5pH0pt0gXO35ZvXj6NS+SdnSC0urhy hCgkRBHhAk9y/SzaoiBbcVUjQ7LD+q65KERvM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:in-reply-to:references:from:date:subject:to:mime-version :content-type:x-length:x-uid; b=viy0hUSVunEMX7PV2+CYtHflrF0Hs1aXaDWKeVY1EV+RMx93bzI2VP8I/VG/KVtm5b amDKyipOIZh3z0Pe4PcKEDEvIU/eSsNmEusS0wyN2eQ8KvhIULXgbZTTxPqXhzXdzLd2 EbtYPJUA9ZmwrW2mSUjy9KgqnkQvXz37M0B0Q= Received: by 10.213.15.14 with SMTP id i14mr360389eba.83.1265924853787; Thu, 11 Feb 2010 13:47:33 -0800 (PST) Received: from x2.localnet (ALille-154-1-20-82.w86-196.abo.wanadoo.fr [86.196.11.82]) by mx.google.com with ESMTPS id 13sm1833059ewy.1.2010.02.11.13.47.33 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 11 Feb 2010 13:47:33 -0800 (PST) Message-Id: <7e1423d6a8cdd9a6bb8daebaaa9241847af11625.1265924723.git.plr.vincent@gmail.com> In-Reply-To: <0fe2075adf9fe998f5e64b1a5803fef2bbed5d00.1265924723.git.plr.vincent@gmail.com> References: <0fe2075adf9fe998f5e64b1a5803fef2bbed5d00.1265924723.git.plr.vincent@gmail.com> From: Vincent Pelletier To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------1.6.6.1" X-Length: 5665 X-UID: 72668 X-Originating-IP: 209.85.219.179 X-ZEDAT-Hint: A X-purgate: clean X-purgate-ID: 151147::1265924854-00000DDD-CFE18552/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.277314, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Algerien.ZEDAT.FU-Berlin.DE X-Spam-Level: xx X-Spam-Status: No, score=2.5 required=5.0 tests=DATE_IN_PAST_96_XX, DNS_FROM_RFC_POST,FORGED_RCVD_HELO,RCVD_BY_IP,SPF_HELO_PASS,SPF_PASS Subject: [linux-minidisc] [PATCH 07/14] Add helper classes for asynchronous reads. X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Date: Thu, 11 Feb 2010 21:47:35 -0000 X-Original-Date: Wed, 27 Jan 2010 22:10:27 +0100 X-List-Received-Date: Thu, 11 Feb 2010 21:47:35 -0000 This is a multi-part message in MIME format. --------------1.6.6.1 Content-Type: text/plain; charset=UTF-8; format=fixed Content-Transfer-Encoding: 8bit --- netmd/usb1.py | 123 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 123 insertions(+), 0 deletions(-) --------------1.6.6.1 Content-Type: text/x-patch; name="0007-Add-helper-classes-for-asynchronous-reads.patch" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="0007-Add-helper-classes-for-asynchronous-reads.patch" diff --git a/netmd/usb1.py b/netmd/usb1.py index 925adfc..cd0711b 100644 --- a/netmd/usb1.py +++ b/netmd/usb1.py @@ -8,6 +8,129 @@ __all__ = ['LibUSBContext'] # Default string length STRING_LENGTH = 256 +EVENT_CALLBACK_SET = frozenset(( + libusb1.LIBUSB_TRANSFER_COMPLETED, + libusb1.LIBUSB_TRANSFER_ERROR, + libusb1.LIBUSB_TRANSFER_TIMED_OUT, + libusb1.LIBUSB_TRANSFER_CANCELLED, + libusb1.LIBUSB_TRANSFER_STALL, + libusb1.LIBUSB_TRANSFER_NO_DEVICE, + libusb1.LIBUSB_TRANSFER_OVERFLOW, +)) + +DEFAULT_ASYNC_TRANSFER_ERROR_CALLBACK = lambda x, y: False + +class USBAsyncReaderBase(object): + _handle = None + _submited = False + + def __init__(self, handle, endpoint, size, user_data=None, timeout=0): + data = create_string_buffer(size) + self._data = data + self._transfer = self._getTransfer( + handle, + endpoint, + data, + self._callbackDispatcher, + user_data, + timeout, + ) + # XXX: set _handle *after* _transfer, so __del__ doesn't get an + # exception if called during constructor execution. + self._handle = handle + self._event_callback_dict = {} + self._errorCallback = DEFAULT_ASYNC_TRANSFER_ERROR_CALLBACK + + def submit(self): + self._submited = True + self._handle.submitTransfer(self._transfer) + + def cancel(self): + self._handle.cancelTransfer(self._transfer) + self._submited = False + + def setEventCallback(self, event, callback): + if event not in EVENT_CALLBACK_SET: + raise ValueError, 'Unknown event %r.' % (event, ) + self._event_callback_dict[event] = callback + + def setDefaultCallback(self, callback): + self._errorCallback = callback + + def getEventCallback(self, event, default=None): + return self._event_callback_dict.get(event, default) + + def _callbackDispatcher(self, transfer_p): + transfer = self._transfer.contents #transfer_p.contents + if self.getEventCallback(transfer.status, self._errorCallback)( + transfer, self._data): + self.submit() + else: + self._submited = False + + def isSubmited(self): + return self._submited + + def __del__(self): + if self._handle is not None: + try: + self.cancel() + except libusb1.USBError, exception: + if exception.value != libusb1.LIBUSB_ERROR_NOT_FOUND: + raise + +class USBAsyncBulkReader(USBAsyncReaderBase): + def _getTransfer(self, handle, *args, **kw): + return handle.getBulkTransfer(*args, **kw) + +class USBAsyncInterruptReader(USBAsyncReaderBase): + def _getTransfer(self, handle, *args, **kw): + return handle.getInterruptTransfer(*args, **kw) + +class USBPoller(object): + def __init__(self, context, poller): + self.context = context + self.poller = poller + fd_set = set() + self.fd_set = fd_set + context.setPollFDNotifiers(self._registerFD, self._unregisterFD) + for fd, events in context.getPollFDList(): + self._registerFD(fd, events) + + def poll(self, timeout=None): + fd_set = self.fd_set + next_usb_timeout = self.context.getNextTimeout() + if next_usb_timeout == 0: + next_usb_timeout = None + if timeout is None: + usb_timeout = next_usb_timeout + else: + usb_timeout = min(next_usb_timeout or timeout, timeout) + event_list = self.poller.poll(usb_timeout) + event_list_len = len(event_list) + if event_list_len: + result = [(x, y) for x, y in event_list if x not in fd_set] + if len(result) != event_list_len: + self.context.handleEventsTimeout() + else: + result = event_list + self.context.handleEventsTimeout() + return result + + def register(self, fd, events): + self.poller.register(fd, events) + + def unregister(self, fd): + self.poller.unregister(fd) + + def _registerFD(self, fd, events, user_data=None): + self.fd_set.add(fd) + self.register(fd, events) + + def _unregisterFD(self, fd, user_data=None): + self.unregister(fd) + self.sd_set.discard(fd) + class USBDeviceHandle(object): handle = None --------------1.6.6.1-- From plr.vincent@gmail.com Thu Feb 11 22:47:36 2010 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nfgso-0004uC-Su>; Thu, 11 Feb 2010 22:47:34 +0100 Received: from mail-ew0-f227.google.com ([209.85.219.227]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nfgso-0001Cv-Op>; Thu, 11 Feb 2010 22:47:34 +0100 Received: by mail-ew0-f227.google.com with SMTP id 27so1899511ewy.38 for ; Thu, 11 Feb 2010 13:47:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:in-reply-to :references:from:date:subject:to:mime-version:content-type:x-length :x-uid; bh=MOBIwo2OcaJBWTsWetaeK6lWyVCXEqOamd6quolgn2w=; b=fCFjr4GNwAoY/0cXCCWLIxq+dnHhYRch0T1FP5BpbLLhxAulY9kRd96QhSfFQVKOIQ Ons7EUQroBWavh98+0xF2pArTKhazEHFYrVyFqh5A6xAnWQCesG9GUXY/J0IjuAwwZ3Y y8XGAhEljVDrmiaqonQ/aCoIC2i0jhiJvUWtA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:in-reply-to:references:from:date:subject:to:mime-version :content-type:x-length:x-uid; b=EuYbZ4texlKY/JrtYHY7p18QEnqbifHTbZevUjeK2eCY/CGkvZxCvzF1PsxfD4snlj emokREhS3g+DAsfQk5R11x3PS2NGPAUJY5GoGhC2zjrX1R45bClmz9EKeH/SCL0z2mBv 594a3iEz8M8meAOpCSrt3VMe58HseDnB2zssQ= Received: by 10.213.97.25 with SMTP id j25mr1170489ebn.12.1265924854608; Thu, 11 Feb 2010 13:47:34 -0800 (PST) Received: from x2.localnet (ALille-154-1-20-82.w86-196.abo.wanadoo.fr [86.196.11.82]) by mx.google.com with ESMTPS id 13sm1833059ewy.1.2010.02.11.13.47.34 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 11 Feb 2010 13:47:34 -0800 (PST) Message-Id: <16f9654b9e0860d8f283538233089121925f3011.1265924723.git.plr.vincent@gmail.com> In-Reply-To: <0fe2075adf9fe998f5e64b1a5803fef2bbed5d00.1265924723.git.plr.vincent@gmail.com> References: <0fe2075adf9fe998f5e64b1a5803fef2bbed5d00.1265924723.git.plr.vincent@gmail.com> From: Vincent Pelletier To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------1.6.6.1" X-Length: 12382 X-UID: 72664 X-Originating-IP: 209.85.219.227 X-ZEDAT-Hint: A X-purgate: clean X-purgate-ID: 151147::1265924854-00000DDD-0D718E4E/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.002103, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Botsuana.ZEDAT.FU-Berlin.DE X-Spam-Level: xx X-Spam-Status: No, score=2.5 required=5.0 tests=DATE_IN_PAST_96_XX, DNS_FROM_RFC_POST,FORGED_RCVD_HELO,RCVD_BY_IP,SPF_HELO_PASS,SPF_PASS Subject: [linux-minidisc] [PATCH 03/14] Export methods to release resources. X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Date: Thu, 11 Feb 2010 21:47:36 -0000 X-Original-Date: Tue, 26 Jan 2010 21:14:07 +0100 X-List-Received-Date: Thu, 11 Feb 2010 21:47:36 -0000 This is a multi-part message in MIME format. --------------1.6.6.1 Content-Type: text/plain; charset=UTF-8; format=fixed Content-Transfer-Encoding: 8bit This allows user to work-around race conditions in interpreter shutdown, where context might be freed before handle - for example. --- netmd/usb1.py | 243 ++------------------------------------------------------- 1 files changed, 6 insertions(+), 237 deletions(-) --------------1.6.6.1 Content-Type: text/x-patch; name="0003-Export-methods-to-release-resources.patch" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="0003-Export-methods-to-release-resources.patch" diff --git a/netmd/usb1.py b/netmd/usb1.py index cd0711b..d22f52a 100644 --- a/netmd/usb1.py +++ b/netmd/usb1.py @@ -1,6 +1,6 @@ # pyusb compatibility layer for libus-1.0 import libusb1 -from ctypes import byref, create_string_buffer, c_int, sizeof, POINTER +from ctypes import byref, create_string_buffer, c_int from cStringIO import StringIO __all__ = ['LibUSBContext'] @@ -8,136 +8,10 @@ __all__ = ['LibUSBContext'] # Default string length STRING_LENGTH = 256 -EVENT_CALLBACK_SET = frozenset(( - libusb1.LIBUSB_TRANSFER_COMPLETED, - libusb1.LIBUSB_TRANSFER_ERROR, - libusb1.LIBUSB_TRANSFER_TIMED_OUT, - libusb1.LIBUSB_TRANSFER_CANCELLED, - libusb1.LIBUSB_TRANSFER_STALL, - libusb1.LIBUSB_TRANSFER_NO_DEVICE, - libusb1.LIBUSB_TRANSFER_OVERFLOW, -)) - -DEFAULT_ASYNC_TRANSFER_ERROR_CALLBACK = lambda x, y: False - -class USBAsyncReaderBase(object): - _handle = None - _submited = False - - def __init__(self, handle, endpoint, size, user_data=None, timeout=0): - data = create_string_buffer(size) - self._data = data - self._transfer = self._getTransfer( - handle, - endpoint, - data, - self._callbackDispatcher, - user_data, - timeout, - ) - # XXX: set _handle *after* _transfer, so __del__ doesn't get an - # exception if called during constructor execution. - self._handle = handle - self._event_callback_dict = {} - self._errorCallback = DEFAULT_ASYNC_TRANSFER_ERROR_CALLBACK - - def submit(self): - self._submited = True - self._handle.submitTransfer(self._transfer) - - def cancel(self): - self._handle.cancelTransfer(self._transfer) - self._submited = False - - def setEventCallback(self, event, callback): - if event not in EVENT_CALLBACK_SET: - raise ValueError, 'Unknown event %r.' % (event, ) - self._event_callback_dict[event] = callback - - def setDefaultCallback(self, callback): - self._errorCallback = callback - - def getEventCallback(self, event, default=None): - return self._event_callback_dict.get(event, default) - - def _callbackDispatcher(self, transfer_p): - transfer = self._transfer.contents #transfer_p.contents - if self.getEventCallback(transfer.status, self._errorCallback)( - transfer, self._data): - self.submit() - else: - self._submited = False - - def isSubmited(self): - return self._submited - - def __del__(self): - if self._handle is not None: - try: - self.cancel() - except libusb1.USBError, exception: - if exception.value != libusb1.LIBUSB_ERROR_NOT_FOUND: - raise - -class USBAsyncBulkReader(USBAsyncReaderBase): - def _getTransfer(self, handle, *args, **kw): - return handle.getBulkTransfer(*args, **kw) - -class USBAsyncInterruptReader(USBAsyncReaderBase): - def _getTransfer(self, handle, *args, **kw): - return handle.getInterruptTransfer(*args, **kw) - -class USBPoller(object): - def __init__(self, context, poller): - self.context = context - self.poller = poller - fd_set = set() - self.fd_set = fd_set - context.setPollFDNotifiers(self._registerFD, self._unregisterFD) - for fd, events in context.getPollFDList(): - self._registerFD(fd, events) - - def poll(self, timeout=None): - fd_set = self.fd_set - next_usb_timeout = self.context.getNextTimeout() - if next_usb_timeout == 0: - next_usb_timeout = None - if timeout is None: - usb_timeout = next_usb_timeout - else: - usb_timeout = min(next_usb_timeout or timeout, timeout) - event_list = self.poller.poll(usb_timeout) - event_list_len = len(event_list) - if event_list_len: - result = [(x, y) for x, y in event_list if x not in fd_set] - if len(result) != event_list_len: - self.context.handleEventsTimeout() - else: - result = event_list - self.context.handleEventsTimeout() - return result - - def register(self, fd, events): - self.poller.register(fd, events) - - def unregister(self, fd): - self.poller.unregister(fd) - - def _registerFD(self, fd, events, user_data=None): - self.fd_set.add(fd) - self.register(fd, events) - - def _unregisterFD(self, fd, user_data=None): - self.unregister(fd) - self.sd_set.discard(fd) - class USBDeviceHandle(object): handle = None - def __init__(self, context, handle): - # XXX Context parameter is just here as a hint for garbage collector: - # It must collect USBDeviceHandle instance before their LibUSBContext. - self.context = context + def __init__(self, handle): self.handle = handle def __del__(self): @@ -288,78 +162,11 @@ class USBDeviceHandle(object): transferred = self._interruptTransfer(endpoint, data, length, timeout) return data.raw[:transferred] - def _getTransfer(self, iso_packets=0): - result = libusb1.libusb_alloc_transfer(iso_packets) - if not result: - raise libusb1.USBError, 'Unable to get a transfer object' - return result - - def fillBulkTransfer(self, transfer, endpoint, string_buffer, - callback, user_data, timeout): - libusb1.libusb_fill_bulk_transfer(transfer, self.handle, - endpoint, string_buffer, sizeof(string_buffer), - libusb1.libusb_transfer_cb_fn_p(callback), user_data, - timeout) - - def getBulkTransfer(self, endpoint, string_buffer, callback, - user_data=None, timeout=0): - result = self._getTransfer() - self.fillBulkTransfer(result, endpoint, string_buffer, callback, - user_data, timeout) - return result - - def fillInterruptTransfer(self, transfer, endpoint, string_buffer, - callback, user_data, timeout): - libusb1.libusb_fill_interrupt_transfer(transfer, self.handle, - endpoint, string_buffer, sizeof(string_buffer), - libusb1.libusb_transfer_cb_fn_p(callback), user_data, - timeout) - - def getInterruptTransfer(self, endpoint, string_buffer, callback, - user_data=None, timeout=0): - result = self._getTransfer() - self.fillInterruptTransfer(result, endpoint, string_buffer, - callback, user_data, timeout) - return result - - def fillControlSetup(self, string_buffer, request_type, request, value, - index, length): - libusb1.libusb_fill_control_setup(string_buffer, request_type, - request, value, index, length) - - def fillControlTransfer(self, transfer, setup, callback, - user_data, timeout): - libusb1.libusb_fill_control_transfer(transfer, self.handle, - setup, libusb1.libusb_transfer_cb_fn_p(callback), user_data, - timeout) - - def getControlTransfer(self, setup, callback, user_data=None, timeout=0): - result = self._getTransfer() - self.fillControlTransfer(result, setup, callback, user_data, timeout) - return result - - def fillISOTransfer(self, *args, **kw): - raise NotImplementedError - - def getISOTransfer(self, *args, **kw): - raise NotImplementedError - - def submitTransfer(self, transfer): - result = libusb1.libusb_submit_transfer(transfer) - if result: - raise libusb1.USBError, result - - def cancelTransfer(self, transfer): - result = libusb1.libusb_cancel_transfer(transfer) - if result: - raise libusb1.USBError, result - class USBDevice(object): configuration_descriptor_list = None - def __init__(self, context, device_p): - self.context = context + def __init__(self, device_p): libusb1.libusb_ref_device(device_p) self.device_p = device_p # Fetch device descriptor @@ -500,7 +307,7 @@ class USBDevice(object): result = libusb1.libusb_open(self.device_p, byref(handle)) if result: raise libusb1.USBError, result - return USBDeviceHandle(self.context, handle) + return USBDeviceHandle(handle) class LibUSBContext(object): @@ -526,7 +333,7 @@ class LibUSBContext(object): device_p_p = libusb1.libusb_device_p_p() device_list_len = libusb1.libusb_get_device_list(self.context_p, byref(device_p_p)) - result = [USBDevice(self, x) for x in device_p_p[:device_list_len]] + result = [USBDevice(x) for x in device_p_p[:device_list_len]] # XXX: causes problems, why ? #libusb1.libusb_free_device_list(device_p_p, 1) return result @@ -535,46 +342,8 @@ class LibUSBContext(object): handle_p = libusb1.libusb_open_device_with_vid_pid(self.context_p, vendor_id, product_id) if handle_p: - result = USBDeviceHandle(self, handle_p) + result = USBDeviceHandle(handle_p) else: result = None return result - def getPollFDList(self): - pollfd_p_p = libusb1.libusb_get_pollfds(self.context_p) - result = [] - append = result.append - fd_index = 0 - while pollfd_p_p[fd_index]: - append((pollfd_p_p[fd_index].contents.fd, - pollfd_p_p[fd_index].contents.events)) - fd_index += 1 - return result - - def handleEvents(self): - result = libusb1.libusb_handle_events(self.context_p) - if result: - raise libusb1.USBError, result - - def handleEventsTimeout(self, tv=None): - assert tv is None, 'tv parameter is not supported yet' - tv = libusb1.timeval(0, 0) - result = libusb1.libusb_handle_events_timeout(self.context_p, byref(tv)) - if result: - raise libusb1.USBError, result - - def setPollFDNotifiers(self, added_cb=None, removed_cb=None, user_data=None): - if added_cb is None: - added_cb = POINTER(None) - else: - added_cb = libusb1.libusb_pollfd_added_cb_p(added_cb) - if removed_cb is None: - removed_cb = POINTER(None) - else: - removed_cb = libusb1.libusb_pollfd_removed_cb_p(removed_cb) - libusb1.libusb_set_pollfd_notifiers(self.context_p, added_cb, - removed_cb, user_data) - - def getNextTimeout(self): - return libusb1.libusb_get_next_timeout(self.context_p, None) - --------------1.6.6.1-- From plr.vincent@gmail.com Thu Feb 11 22:47:36 2010 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nfgsp-0004uZ-Je>; Thu, 11 Feb 2010 22:47:35 +0100 Received: from mail-ew0-f227.google.com ([209.85.219.227]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nfgsp-0001Ct-GC>; Thu, 11 Feb 2010 22:47:35 +0100 Received: by mail-ew0-f227.google.com with SMTP id 27so1899500ewy.38 for ; Thu, 11 Feb 2010 13:47:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:in-reply-to :references:from:date:subject:to:mime-version:content-type:x-length :x-uid; bh=9Liczzh+TUdUPnjxA5qQCFrJK2ZFsLANAfYfDMWWRwo=; b=WjMq03avm0+K8RiVgR8u6FvnctFWG0ec46dX1hAuXHeyUah2FzXFgh74V0yQvR20KL 4jZHOn/cuB2wmRZ+d6a+wp2oOc5A/BILUJY3VxGsC5ztsqwfE+3gZhoDzqW+M0ulI16N pMcEe1LGk+mQ4/acIWLj6g4Bn701SZaFb5aCo= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:in-reply-to:references:from:date:subject:to:mime-version :content-type:x-length:x-uid; b=Z3mcHPOefqC7qlYX7mLKErsSR889ULD+ob1gu6SREkc+RX9H5gSvfD4dJayHbPWmvH OKPlPutI6nBHPLXLTFLn6G2znA5th60vrADlA0AHu2zxBwTjzAuyoL1smQ7yWtnrwOYz NqlsVjntjpY8P5MZfXNv4Y568bFIoyfJDgfWI= Received: by 10.213.97.88 with SMTP id k24mr356599ebn.86.1265924855316; Thu, 11 Feb 2010 13:47:35 -0800 (PST) Received: from x2.localnet (ALille-154-1-20-82.w86-196.abo.wanadoo.fr [86.196.11.82]) by mx.google.com with ESMTPS id 13sm1833059ewy.1.2010.02.11.13.47.34 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 11 Feb 2010 13:47:35 -0800 (PST) Message-Id: In-Reply-To: <0fe2075adf9fe998f5e64b1a5803fef2bbed5d00.1265924723.git.plr.vincent@gmail.com> References: <0fe2075adf9fe998f5e64b1a5803fef2bbed5d00.1265924723.git.plr.vincent@gmail.com> From: Vincent Pelletier Date: Thu, 11 Feb 2010 22:22:33 +0100 To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------1.6.6.1" X-Length: 1829 X-UID: 72673 X-Originating-IP: 209.85.219.227 X-ZEDAT-Hint: A X-purgate: clean X-purgate-ID: 151147::1265924855-00000DDD-85A94823/0-0/0-0 X-Bogosity: Unsure, tests=bogofilter, spamicity=0.497811, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Benin.ZEDAT.FU-Berlin.DE X-Spam-Level: xx X-Spam-Status: No, score=2.9 required=5.0 tests=DNS_FROM_RFC_POST, FORGED_RCVD_HELO,FU_BOGO_UNSURE,RCVD_BY_IP,SPF_HELO_PASS,SPF_PASS Subject: [linux-minidisc] [PATCH 12/14] Fix error path. X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Feb 2010 21:47:36 -0000 This is a multi-part message in MIME format. --------------1.6.6.1 Content-Type: text/plain; charset=UTF-8; format=fixed Content-Transfer-Encoding: 8bit There is no "format" property on self. % right operand must be a tuple. --- netmd/upload.py | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) --------------1.6.6.1 Content-Type: text/x-patch; name="0012-Fix-error-path.patch" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="0012-Fix-error-path.patch" diff --git a/netmd/upload.py b/netmd/upload.py index 14f11b1..db3c3b7 100755 --- a/netmd/upload.py +++ b/netmd/upload.py @@ -77,7 +77,7 @@ class aeaUploadEvents(libnetmd.defaultUploadEvents): if not ((format == UPLOAD_FORMAT_SP_STEREO and self.channels == 2) or \ (format == UPLOAD_FORMAT_SP_MONO and self.channels == 1)): raise ValueError, 'Unexpected format byte %02x for %d channels' % \ - self.format, self.channels + (format, self.channels) self.stream.write(formatAeaHeader(name = self.name, soundgroups=frames, channels=self.channels)) libnetmd.defaultUploadEvents.trackinfo(self, frames, bytes, format) --------------1.6.6.1-- From plr.vincent@gmail.com Thu Feb 11 22:47:38 2010 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nfgsr-0004vW-De>; Thu, 11 Feb 2010 22:47:37 +0100 Received: from ey-out-2122.google.com ([74.125.78.25]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nfgsr-0001Ds-A2>; Thu, 11 Feb 2010 22:47:37 +0100 Received: by ey-out-2122.google.com with SMTP id d26so446593eyd.3 for ; Thu, 11 Feb 2010 13:47:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:in-reply-to :references:from:date:subject:to:mime-version:content-type:x-length :x-uid; bh=aLv5PGGoY1yjRGlgigPUv+rZXjS//QUxsZ9IOcyy0MU=; b=TvBOypdKTWBqkgd9ZrQsK1GTk1XvZZSMQfhjEF6z4hHUOEsFaHLojmOZOhOtYJ8fun bHnvh9uPOKtHuZ0PlhFkwgdw8GjqhJwZNjcgcB4jsUYDhyugqB6nN5TbdNXh1v+YqFVQ T2EfSwyrq6i5ddyk6rzl4zip05JcEI7HOk0Ow= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:in-reply-to:references:from:date:subject:to:mime-version :content-type:x-length:x-uid; b=ZpXNvHiHmJLkFZqVqgI/8fUZ8RXy/BrFMwS/iQx9PEqmWKbfaXRSXBxtauDeHvNj24 OQTLPrVrE0KDJnnjeXUjcgvd8Fd/VjIMHyssC4BbfwZM0ryzKsU6kERkgYXSXeNVoFg6 03k1s6WgtxnDN9lm2xXIR9BSDGD1fu9DVCI8c= Received: by 10.213.109.149 with SMTP id j21mr424079ebp.41.1265924856751; Thu, 11 Feb 2010 13:47:36 -0800 (PST) Received: from x2.localnet (ALille-154-1-20-82.w86-196.abo.wanadoo.fr [86.196.11.82]) by mx.google.com with ESMTPS id 13sm1833059ewy.1.2010.02.11.13.47.36 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 11 Feb 2010 13:47:36 -0800 (PST) Message-Id: In-Reply-To: <0fe2075adf9fe998f5e64b1a5803fef2bbed5d00.1265924723.git.plr.vincent@gmail.com> References: <0fe2075adf9fe998f5e64b1a5803fef2bbed5d00.1265924723.git.plr.vincent@gmail.com> From: Vincent Pelletier Date: Thu, 11 Feb 2010 22:38:01 +0100 To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------1.6.6.1" X-Length: 2178 X-UID: 72674 X-Originating-IP: 74.125.78.25 X-ZEDAT-Hint: A X-purgate: clean X-purgate-ID: 151147::1265924857-00000DDD-A47CE4BD/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.137579, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Algerien.ZEDAT.FU-Berlin.DE X-Spam-Level: x X-Spam-Status: No, score=1.4 required=5.0 tests=DNS_FROM_RFC_POST, FORGED_RCVD_HELO,RCVD_BY_IP,SPF_HELO_PASS,SPF_PASS Subject: [linux-minidisc] [PATCH 13/14] shift_jis_2004 is a superset of shift_jis, and seems to be required. X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Feb 2010 21:47:38 -0000 This is a multi-part message in MIME format. --------------1.6.6.1 Content-Type: text/plain; charset=UTF-8; format=fixed Content-Transfer-Encoding: 8bit --- netmd/lsmd.py | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) --------------1.6.6.1 Content-Type: text/x-patch; name="0013-shift_jis_2004-is-a-superset-of-shift_jis-and-seems-.patch" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="0013-shift_jis_2004-is-a-superset-of-shift_jis-and-seems-.patch" diff --git a/netmd/lsmd.py b/netmd/lsmd.py index c7821b4..cb5c02a 100755 --- a/netmd/lsmd.py +++ b/netmd/lsmd.py @@ -40,7 +40,7 @@ def listMD(md): flags = reprDiscFlags(md_iface.getDiscFlags()) print 'Disk (%s) %r %s' % ( ', '.join(flags), md_iface.getDiscTitle(), - md_iface.getDiscTitle(True).decode('shift_jis')) + md_iface.getDiscTitle(True).decode('shift_jis_2004')) disc_used, disc_total, disc_left = md_iface.getDiscCapacity() disc_total = timeToFrames(disc_total) disc_left = timeToFrames(disc_left) @@ -64,7 +64,7 @@ def listMD(md): track, hour, minute, second, sample, codec_name_dict[codec], channel_count_dict[channel_count], flag_dict[flags], md_iface.getTrackTitle(real_track), - md_iface.getTrackTitle(real_track, True).decode('shift_jis')) + md_iface.getTrackTitle(real_track, True).decode('shift_jis_2004')) if __name__ == '__main__': from optparse import OptionParser --------------1.6.6.1-- From glaubitz@physik.fu-berlin.de Thu Feb 11 23:17:39 2010 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1NfhLu-0005nO-HM>; Thu, 11 Feb 2010 23:17:38 +0100 Received: from mx.physik.fu-berlin.de ([160.45.64.218]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1NfhLu-0006QO-FL>; Thu, 11 Feb 2010 23:17:38 +0100 Received: from z6.physik.fu-berlin.de ([160.45.66.66]) by mx.physik.fu-berlin.de with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1NfhLu-00080w-9n for linux-minidisc@lists.fu-berlin.de; Thu, 11 Feb 2010 23:17:38 +0100 Received: from glaubitz by z6.physik.fu-berlin.de with local (Exim 4.71 #1 (Debian)) id 1NfhLu-0000P0-4A for ; Thu, 11 Feb 2010 23:17:38 +0100 Date: Thu, 11 Feb 2010 23:17:38 +0100 Message-Id: To: linux-minidisc@lists.fu-berlin.de Content-Type: text/plain; charset=utf-8 X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: a5894acac2b77bf1e2ab2a64f274a46dd75a7018 X-Git-Newrev: 9fddd1e677a90942f75e75b955d419463911f0f7 From: Adrian Glaubitz X-Originating-IP: 160.45.64.218 X-purgate: clean X-purgate-ID: 151147::1265926658-00000DDD-94018667/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000138, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Burundi.ZEDAT.FU-Berlin.DE X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=ALL_TRUSTED Subject: [linux-minidisc] [commit] Linux utilities to deal with Sony Minidisc Walkmen branch, master, updated. 9fddd1e677a90942f75e75b955d419463911f0f7 X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Feb 2010 22:17:39 -0000 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Linux utilities to deal with Sony Minidisc Walkmen". The branch, master has been updated via 9fddd1e677a90942f75e75b955d419463911f0f7 (commit) from a5894acac2b77bf1e2ab2a64f274a46dd75a7018 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 9fddd1e677a90942f75e75b955d419463911f0f7 Author: Vincent Pelletier Date: Thu Feb 11 23:12:56 2010 +0100 Patch series for NetMDPython: * [PATCH 01/14] Make some function accepting opaque data pointer accept a py_object. * [PATCH 02/14] Make transfer "buffer" field a c_void_p type. * [PATCH 03/14] Export methods to release resources. * [PATCH 04/14] Implement asynchronous transfers. * [PATCH 05/14] Replace tabulations by spaces. * [PATCH 06/14] Fix segfaults at interpreter exit. * [PATCH 07/14] Add helper classes for asynchronous reads. * [PATCH 08/14] Put group name in return value, rather than its computed index. * [PATCH 09/14] Generate an extra group containing all tracks which are in no group. * [PATCH 10/14] Make lsmd display track groups. * [PATCH 11/14] Remove duplicate code. * [PATCH 12/14] Fix error path. * [PATCH 13/14] shift_jis_2004 is a superset of shift_jis, and seems to be required. * [PATCH 14/14] There is no need to use %r for (thought-to-be) ASCII title. ----------------------------------------------------------------------- Summary of changes: netmd/lsmd.py | 8 ++++---- netmd/upload.py | 38 +------------------------------------- 2 files changed, 5 insertions(+), 41 deletions(-) hooks/post-receive -- Linux utilities to deal with Sony Minidisc Walkmen From glaubitz@physik.fu-berlin.de Sat Feb 13 22:46:03 2010 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1NgPoP-0005a8-IS>; Sat, 13 Feb 2010 22:46:01 +0100 Received: from mx.physik.fu-berlin.de ([160.45.64.218]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1NgPoP-0002h8-GR>; Sat, 13 Feb 2010 22:46:01 +0100 Received: from z6.physik.fu-berlin.de ([160.45.66.66]) by mx.physik.fu-berlin.de with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1NgPoP-0005Ft-Ai for linux-minidisc@lists.fu-berlin.de; Sat, 13 Feb 2010 22:46:01 +0100 Received: from glaubitz by z6.physik.fu-berlin.de with local (Exim 4.71 #1 (Debian)) id 1NgPoP-0001A1-9M for ; Sat, 13 Feb 2010 22:46:01 +0100 Date: Sat, 13 Feb 2010 22:46:01 +0100 To: linux-minidisc@lists.fu-berlin.de Message-ID: <20100213214601.GA4308@physik.fu-berlin.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) From: Adrian Glaubitz X-Originating-IP: 160.45.64.218 X-purgate: clean X-purgate-ID: 151147::1266097561-00000DDD-331D08C6/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000078, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Algerien.ZEDAT.FU-Berlin.DE X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=ALL_TRUSTED Subject: [linux-minidisc] Upload to mentors.debian.net X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Feb 2010 21:46:03 -0000 Hi, I have made the first upload to mentors.debian.net today. This is a repository service, where non-Debian-developers can upload their packages to and hope that some nice Debian developer will be so kind to adopt them. Once they do, the packages goes into Debian unstable and will finally spread over the whole world of Debian and Debian-based systems. I already contacted Marcus Brinkmann and hope he can help us since he once told me he is a Debian developer. Otherwise I also know another friend who could help uploading. Anyway, you'll find the upload to mentors here: Cross your fingers. Adrian From plr.vincent@gmail.com Sun Feb 14 12:01:46 2010 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1NgcET-00039X-Lb>; Sun, 14 Feb 2010 12:01:45 +0100 Received: from mail-ew0-f227.google.com ([209.85.219.227]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1NgcET-0000Dx-Ih>; Sun, 14 Feb 2010 12:01:45 +0100 Received: by ewy27 with SMTP id 27so4325868ewy.38 for ; Sun, 14 Feb 2010 03:01:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:to:subject:date :user-agent:references:in-reply-to:mime-version:content-type :content-transfer-encoding:message-id; bh=7GREjVHBpJrezqsd6g1N0fSYBWYrdRras6TO160cuzY=; b=aY2RRYM/KfhAFK1M1Dg23coy38uwrKUPUjJ4+kpuP0qnPmGQ9EtqlQwrw0V+4qODk+ AbJtr9FAONy1wBWBtrPcRucWqfwMw1qYCdFQjln8fthsuHbrDQJr7shPLiiXA2N5dxav PDD8UShJ3uKIqpT9S6hiK2745MJKMO27t3xtQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:subject:date:user-agent:references:in-reply-to:mime-version :content-type:content-transfer-encoding:message-id; b=Nszg7lcFWmiyChUjRe2bxeDkKFoqX97DqtkZOgBAEx//5OR/U4tZAnxtrZLaMoHzGn oWjnAI3L2Cj5Lg4jKTE8jg5AKnW26L4f4JjtJEOVbUlllt0GrhdMyD40vquvZN7Cl0bQ yZIcdUoetyFw2TLdJlNQS141bcI5k3HwWuX28= Received: by 10.213.100.203 with SMTP id z11mr1667158ebn.43.1266145304905; Sun, 14 Feb 2010 03:01:44 -0800 (PST) Received: from x2.localnet (ALille-154-1-54-187.w86-198.abo.wanadoo.fr [86.198.221.187]) by mx.google.com with ESMTPS id 15sm3648523ewy.4.2010.02.14.03.01.42 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sun, 14 Feb 2010 03:01:43 -0800 (PST) From: Vincent Pelletier To: linux-minidisc@lists.fu-berlin.de Date: Sun, 14 Feb 2010 12:01:49 +0100 User-Agent: KMail/1.12.4 (Linux/2.6.32-trunk-amd64; KDE/4.3.4; x86_64; ; ) References: In-Reply-To: MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-15" Content-Transfer-Encoding: quoted-printable Message-Id: <201002141201.49740.plr.vincent@gmail.com> X-Originating-IP: 209.85.219.227 X-purgate: clean X-purgate-ID: 151147::1266145305-00000DDD-AF6CF97A/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.026824, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Gabun.ZEDAT.FU-Berlin.DE X-Spam-Level: x X-Spam-Status: No, score=1.4 required=5.0 tests=DNS_FROM_RFC_POST, FORGED_RCVD_HELO,RCVD_BY_IP,SPF_HELO_PASS,SPF_PASS Subject: Re: [linux-minidisc] firmware tests on MZ-RH1 X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 14 Feb 2010 11:01:46 -0000 Le lundi 08 f=E9vrier 2010 19:06:59, manner.moe@gmx.de a =E9crit : > More information in rh1_fw_notes.ods. 0x1242 and 0x1254 are USB descriptors (left in file order: little endian): 0x1242 bLength: 12 bDescriptorType: 01 bcdUSB: 00 02 bDeviceClass: 00 bDeviceSubClass: 00 bDeviceProtocol: 00 bMaxPacketSize0: 40 idVendor: 4c 05 idProduct: 86 02 bcdDevice: 00 01 iManufacturer: 01 iProduct: 02 iSerialNumber: 03 bNumConfigurations: 01 0x1254 bLength: 12 bDescriptorType: 01 bcdUSB: 00 02 bDeviceClass: 00 bDeviceSubClass: 00 bDeviceProtocol: 00 bMaxPacketSize0: 40 idVendor: 4c 05 idProduct: 87 02 bcdDevice: 00 01 iManufacturer: 01 iProduct: 02 iSerialNumber: 03 bNumConfigurations: 01 =2D-=20 Vincent Pelletier From glaubitz@physik.fu-berlin.de Tue Feb 16 00:34:50 2010 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1NhASn-0000Uh-GK>; Tue, 16 Feb 2010 00:34:49 +0100 Received: from mx.physik.fu-berlin.de ([160.45.64.218]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1NhASn-0002pB-Df>; Tue, 16 Feb 2010 00:34:49 +0100 Received: from z6.physik.fu-berlin.de ([160.45.66.66]) by mx.physik.fu-berlin.de with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1NhASn-0002rH-9C for linux-minidisc@lists.fu-berlin.de; Tue, 16 Feb 2010 00:34:49 +0100 Received: from glaubitz by z6.physik.fu-berlin.de with local (Exim 4.71 #1 (Debian)) id 1NhASn-0005Ie-7q for ; Tue, 16 Feb 2010 00:34:49 +0100 Date: Tue, 16 Feb 2010 00:34:49 +0100 To: linux-minidisc@lists.fu-berlin.de Message-ID: <20100215233449.GA20191@physik.fu-berlin.de> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="+HP7ph2BbKc20aGI" Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) From: Adrian Glaubitz X-Originating-IP: 160.45.64.218 X-ZEDAT-Hint: A X-purgate: clean X-purgate-ID: 151147::1266276889-00000DDD-8BBCBB59/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000013, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Algerien.ZEDAT.FU-Berlin.DE X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=ALL_TRUSTED Subject: [linux-minidisc] PythonNetMD and MacOS X X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Feb 2010 23:34:50 -0000 --+HP7ph2BbKc20aGI Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi, today I received an email from a user who had trouble using the NetMD Python scripts on MacOS X. He received the following error message: $ ./upload.py Traceback (most recent call last): File "./upload.py", line 3, in import usb1 File "/Users/henningautzen/linux-minidisc/netmd/usb1.py", line 2, in import libusb1 File "/Users/henningautzen/linux-minidisc/netmd/libusb1.py", line 54, in libusb = cdll.LoadLibrary('libusb-1.0.so.0') File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/ctypes/__init__.py", line 423, in LoadLibrary return self._dlltype(name) File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/ctypes/__init__.py", line 345, in __init__ self._handle = _dlopen(self._name, mode) OSError: dlopen(libusb-1.0.so.0, 6): image not found $ The problem is obvious, the script cannot find the shared libusb library even though it has been installed. The library is located in a different location when installed with Macports, namely: /opt/local/lib/libusb-1.0.dylib I created a temporary patch for the user to fix his problem (patch attached). We need, however, a proper patch to fix that. Adrian --+HP7ph2BbKc20aGI Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="correct_path_libusb_macos.patch" --- libusb1.py 2010-02-11 23:12:27.000000000 +0100 +++ libusb1.py.new 2010-02-16 00:19:11.000000000 +0100 @@ -51,7 +51,7 @@ ('tv_usec', c_long)] timeval_p = POINTER(timeval) -libusb = cdll.LoadLibrary('libusb-1.0.so.0') +libusb = cdll.LoadLibrary('/opt/local/lib/libusb-1.0.dylib') # libusb.h def bswap16(x): --+HP7ph2BbKc20aGI-- From Michael.Karcher@fu-berlin.de Tue Feb 16 02:08:52 2010 Received: from outpost1.zedat.fu-berlin.de ([130.133.4.66]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1NhBvn-00039r-C7>; Tue, 16 Feb 2010 02:08:51 +0100 Received: from inpost2.zedat.fu-berlin.de ([130.133.4.69]) by outpost1.zedat.fu-berlin.de (Exim 4.69) with esmtp (envelope-from ) id <1NhBvn-0006xk-9w>; Tue, 16 Feb 2010 02:08:51 +0100 Received: from i577b645e.versanet.de ([87.123.100.94] helo=[192.168.0.24]) by inpost2.zedat.fu-berlin.de (Exim 4.69) with esmtpsa (envelope-from ) id <1NhBvn-0002yM-5D>; Tue, 16 Feb 2010 02:08:51 +0100 From: Michael Karcher To: Adrian Glaubitz In-Reply-To: <20100215233449.GA20191@physik.fu-berlin.de> References: <20100215233449.GA20191@physik.fu-berlin.de> Content-Type: multipart/signed; micalg="pgp-sha1"; protocol="application/pgp-signature"; boundary="=-SqXFx4xBLO5Js75uF/VF" Date: Tue, 16 Feb 2010 02:08:19 +0100 Message-Id: <1266282499.5629.27.camel@aquila> Mime-Version: 1.0 X-Mailer: Evolution 2.26.3 X-Originating-IP: 87.123.100.94 X-purgate: clean X-purgate-ID: 151147::1266282531-00000DDD-1177A344/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.003593, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Benin.ZEDAT.FU-Berlin.DE X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=ALL_TRUSTED X-Mailman-Approved-At: Tue, 16 Feb 2010 10:57:34 +0100 Cc: linux-minidisc@lists.fu-berlin.de Subject: Re: [linux-minidisc] PythonNetMD and MacOS X X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Feb 2010 01:08:52 -0000 --=-SqXFx4xBLO5Js75uF/VF Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Am Dienstag, den 16.02.2010, 00:34 +0100 schrieb Adrian Glaubitz: > The problem is obvious, the script cannot find the shared libusb > library even though it has been installed. The library is located in a > different location when installed with Macports, namely: >=20 > /opt/local/lib/libusb-1.0.dylib The proper solution uses ctypes.util.find_library, here is a dump from Linux and one from MacOS: mkarcher@aquila:~$ python Python 2.5.4 (r254:67916, Nov 19 2009, 22:14:20)=20 [GCC 4.3.4] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from ctypes.util import * >>> print find_library("usb-1.0") libusb-1.0.so.0 >>>=20 minimac2:~ zedv$ python Python 2.6.4 (r264:75706, Feb 4 2010, 14:41:35)=20 [GCC 4.2.1 (Apple Inc. build 5646) (dot 1)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> from ctypes.util import * >>> print find_library("usb-1.0") /opt/local/lib/libusb-1.0.dylib >>> Regards, Michael Karcher --=-SqXFx4xBLO5Js75uF/VF Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Dies ist ein digital signierter Nachrichtenteil -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) iEYEABECAAYFAkt57/MACgkQzhek2R7EicoU3gCbBTZrGqv0cWXdxlA5Doen9/t8 AFMAoIXMco9MI6jZ/pEKdn63mFqg3Yfa =+Vo3 -----END PGP SIGNATURE----- --=-SqXFx4xBLO5Js75uF/VF-- From plr.vincent@gmail.com Thu Feb 18 21:21:43 2010 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1NiCsY-0000Un-7d>; Thu, 18 Feb 2010 21:21:42 +0100 Received: from mail-ew0-f217.google.com ([209.85.219.217]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1NiCsY-0008VF-4g>; Thu, 18 Feb 2010 21:21:42 +0100 Received: by ewy9 with SMTP id 9so1685850ewy.15 for ; Thu, 18 Feb 2010 12:21:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:to:subject:date :user-agent:references:in-reply-to:mime-version:content-type :content-transfer-encoding:message-id; bh=mGEJUwYrayI8t30IPXp8BfaeL1RT3WIrDSJyPQ+peAU=; b=cNsZz8uFlU5jNbxWEGj7jq6eGFfyyENrSLvcryIkIhz/b12HJnq0enbifHLp6y77c0 Ty9EM8DEEW0mCimZwlPTpxjmbpKEdUlSrLQpghHxJA7UpfLpCTojutZelGBB5EUn3vQ1 Var4Lii7pHKf/WYMz7stGMcm98YKhlWDrLc9Q= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:subject:date:user-agent:references:in-reply-to:mime-version :content-type:content-transfer-encoding:message-id; b=WzNTutcNu7nuQsmtO1GIQh3z4BXEidC0X4amDV1WfGqSVknIzwsezf1J++X047lYYJ k4WQ5It7eBmGWc2Y2bYOsnRueaO7NrOGBaoXB4Rw2HckznYsk6fXmqjGJ5af80DVSxDO kRdI0Yhu3puh/T4JDW7X44UR2kS/BLsGiuHlY= Received: by 10.213.68.129 with SMTP id v1mr47924ebi.15.1266524500155; Thu, 18 Feb 2010 12:21:40 -0800 (PST) Received: from x2.localnet (ALille-154-1-54-187.w86-198.abo.wanadoo.fr [86.198.221.187]) by mx.google.com with ESMTPS id 15sm6840569ewy.8.2010.02.18.12.21.37 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 18 Feb 2010 12:21:37 -0800 (PST) From: Vincent Pelletier To: linux-minidisc@lists.fu-berlin.de Date: Thu, 18 Feb 2010 21:21:50 +0100 User-Agent: KMail/1.12.4 (Linux/2.6.32-trunk-amd64; KDE/4.3.4; x86_64; ; ) References: <20100215233449.GA20191@physik.fu-berlin.de> <1266282499.5629.27.camel@aquila> In-Reply-To: <1266282499.5629.27.camel@aquila> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-15" Content-Transfer-Encoding: quoted-printable Message-Id: <201002182121.51246.plr.vincent@gmail.com> X-Originating-IP: 209.85.219.217 X-purgate: clean X-purgate-ID: 151147::1266524502-00000DDD-7A5C5627/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.004228, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Botsuana.ZEDAT.FU-Berlin.DE X-Spam-Level: x X-Spam-Status: No, score=1.4 required=5.0 tests=DNS_FROM_RFC_POST, FORGED_RCVD_HELO,RCVD_BY_IP,SPF_HELO_PASS,SPF_PASS Subject: Re: [linux-minidisc] PythonNetMD and MacOS X X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Feb 2010 20:21:44 -0000 Le mardi 16 f=E9vrier 2010 02:08:19, Michael Karcher a =E9crit : > The proper solution uses ctypes.util.find_library, here is a dump from > Linux and one from MacOS: Thanks for searching, I've been trying to install OSX on a virtual machine = for=20 some time now... But couldn't succeed: my ppc laptop is probably dead, and = I=20 cannot make qemu to get past openfirmware yet, nor pearpc to start instalat= ion=20 dvd. =2D-=20 Vincent Pelletier From glaubitz@physik.fu-berlin.de Thu Feb 18 22:22:02 2010 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1NiDov-0002NG-Pw>; Thu, 18 Feb 2010 22:22:01 +0100 Received: from mx.physik.fu-berlin.de ([160.45.64.218]) by relay1.zedat.fu-berlin.de (Exim 4.69) with esmtp (envelope-from ) id <1NiDov-0005Qd-Nu>; Thu, 18 Feb 2010 22:22:01 +0100 Received: from z6.physik.fu-berlin.de ([160.45.66.66]) by mx.physik.fu-berlin.de with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1NiDov-0005Jr-Jh; Thu, 18 Feb 2010 22:22:01 +0100 Received: from glaubitz by z6.physik.fu-berlin.de with local (Exim 4.71 #1 (Debian)) id 1NiDov-0007YY-Hy; Thu, 18 Feb 2010 22:22:01 +0100 Date: Thu, 18 Feb 2010 22:22:01 +0100 To: Vincent Pelletier Message-ID: <20100218212201.GA28938@physik.fu-berlin.de> References: <20100215233449.GA20191@physik.fu-berlin.de> <1266282499.5629.27.camel@aquila> <201002182121.51246.plr.vincent@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <201002182121.51246.plr.vincent@gmail.com> User-Agent: Mutt/1.5.20 (2009-06-14) From: Adrian Glaubitz X-Originating-IP: 160.45.64.218 X-purgate: clean X-purgate-ID: 151147::1266528121-00000DDD-EAB6B14A/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000001, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Algerien.ZEDAT.FU-Berlin.DE X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=ALL_TRUSTED Cc: linux-minidisc@lists.fu-berlin.de Subject: Re: [linux-minidisc] PythonNetMD and MacOS X X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Feb 2010 21:22:03 -0000 Hi, On Thu, Feb 18, 2010 at 09:21:50PM +0100, Vincent Pelletier wrote: > Le mardi 16 février 2010 02:08:19, Michael Karcher a écrit : > > The proper solution uses ctypes.util.find_library, here is a dump from > > Linux and one from MacOS: > > Thanks for searching, I've been trying to install OSX on a virtual machine for > some time now... But couldn't succeed: my ppc laptop is probably dead, and I > cannot make qemu to get past openfirmware yet, nor pearpc to start instalation > dvd. That'll be tricky. You're pretty out of luck when you don't have a real Mac. But anyway, it would be just nice if you could fix the bug the way Michael proposed. Unfortunately, I don't know any Python. I would fix it myself then :/. Or, maybe, I can create you an SSH account on one of the Macs at my uni, would that be helpful? I'm in Geneva/CERN until Saturday, so not really much time for the project ;). But after the weekend. Adrian From mkarcher@physik.fu-berlin.de Fri Feb 26 16:44:03 2010 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nl2ME-0004j3-DI>; Fri, 26 Feb 2010 16:44:02 +0100 Received: from mx.physik.fu-berlin.de ([160.45.64.218]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nl2ME-0006Pv-BM>; Fri, 26 Feb 2010 16:44:02 +0100 Received: from z6.physik.fu-berlin.de ([160.45.66.66]) by mx.physik.fu-berlin.de with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1Nl2ME-00019i-73 for linux-minidisc@lists.fu-berlin.de; Fri, 26 Feb 2010 16:44:02 +0100 Received: from mkarcher by z6.physik.fu-berlin.de with local (Exim 4.71 #1 (Debian)) id 1Nl2ME-0007qe-3X for ; Fri, 26 Feb 2010 16:44:02 +0100 Date: Fri, 26 Feb 2010 16:44:02 +0100 Message-Id: To: linux-minidisc@lists.fu-berlin.de Content-Type: text/plain; charset=utf-8 X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 9fddd1e677a90942f75e75b955d419463911f0f7 X-Git-Newrev: e5002e40129b7f5e3146638efd9a6b7aae6c8dd9 From: Michael Karcher X-Originating-IP: 160.45.64.218 X-purgate: clean X-purgate-ID: 151147::1267199042-00000DDD-43B288BA/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Gabun.ZEDAT.FU-Berlin.DE X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=ALL_TRUSTED Subject: [linux-minidisc] [commit] Linux utilities to deal with Sony Minidisc Walkmen branch, master, updated. e5002e40129b7f5e3146638efd9a6b7aae6c8dd9 X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Feb 2010 15:44:03 -0000 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Linux utilities to deal with Sony Minidisc Walkmen". The branch, master has been updated via e5002e40129b7f5e3146638efd9a6b7aae6c8dd9 (commit) from 9fddd1e677a90942f75e75b955d419463911f0f7 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit e5002e40129b7f5e3146638efd9a6b7aae6c8dd9 Author: Michael Karcher Date: Fri Feb 26 16:43:52 2010 +0100 Add install target on Unix ----------------------------------------------------------------------- Summary of changes: himddump/himddump.pro | 5 +++++ qhimdtransfer/qhimdtransfer.pro | 19 +++++++++++++++---- qhimdtransfer/translate.pri | 20 ++++++++++++++++++++ 3 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 qhimdtransfer/translate.pri hooks/post-receive -- Linux utilities to deal with Sony Minidisc Walkmen From mkarcher@physik.fu-berlin.de Fri Feb 26 19:51:34 2010 Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) by list1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nl5Hh-0001hf-Iy>; Fri, 26 Feb 2010 19:51:33 +0100 Received: from mx.physik.fu-berlin.de ([160.45.64.218]) by relay1.zedat.fu-berlin.de (Exim 4.69) for linux-minidisc@lists.fu-berlin.de with esmtp (envelope-from ) id <1Nl5Hh-0008Aw-Gq>; Fri, 26 Feb 2010 19:51:33 +0100 Received: from z6.physik.fu-berlin.de ([160.45.66.66]) by mx.physik.fu-berlin.de with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1Nl5Hh-0002HL-BP for linux-minidisc@lists.fu-berlin.de; Fri, 26 Feb 2010 19:51:33 +0100 Received: from mkarcher by z6.physik.fu-berlin.de with local (Exim 4.71 #1 (Debian)) id 1Nl5Hh-0004MX-8x for ; Fri, 26 Feb 2010 19:51:33 +0100 Date: Fri, 26 Feb 2010 19:51:33 +0100 Message-Id: To: linux-minidisc@lists.fu-berlin.de Content-Type: text/plain; charset=utf-8 X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: e5002e40129b7f5e3146638efd9a6b7aae6c8dd9 X-Git-Newrev: f57e29ed9fe964cc95e19cb908c4932bb3fd94af From: Michael Karcher X-Originating-IP: 160.45.64.218 X-purgate: clean X-purgate-ID: 151147::1267210293-00000DDD-2B7F1D0C/0-0/0-0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.1.6 X-Spam-Flag: NO X-Spam-Checker-Version: SpamAssassin 3.0.4 on Algerien.ZEDAT.FU-Berlin.DE X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=ALL_TRUSTED Subject: [linux-minidisc] [commit] Linux utilities to deal with Sony Minidisc Walkmen branch, master, updated. f57e29ed9fe964cc95e19cb908c4932bb3fd94af X-BeenThere: linux-minidisc@lists.fu-berlin.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: Mailing list for the linux-minidisc project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Feb 2010 18:51:34 -0000 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Linux utilities to deal with Sony Minidisc Walkmen". The branch, master has been updated via f57e29ed9fe964cc95e19cb908c4932bb3fd94af (commit) from e5002e40129b7f5e3146638efd9a6b7aae6c8dd9 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit f57e29ed9fe964cc95e19cb908c4932bb3fd94af Author: Michael Karcher Date: Fri Feb 26 19:49:18 2010 +0100 Install translations on MacOS X ----------------------------------------------------------------------- Summary of changes: .gitignore | 3 +++ qhimdtransfer/qhimdtransfer.pro | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletions(-) hooks/post-receive -- Linux utilities to deal with Sony Minidisc Walkmen