--_003_4E84EFB64040405philpemmeuk_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi guys, A couple of days ago I was digging through a box of old satellite TV=20 spares, and found a Sky Navigator remote. For those of you unfamiliar=20 with this -- it's the remote control for the first-generation Sky+=20 satellite receiver/DVR boxes. It has the usual Sky DVR button layout on=20 the top, and a hidden keyboard underneath (open the front of the remote=20 and it becomes visible). Naturally I thought this would make a good remote for my PVR, when mated=20 with a homebrew IR-to-USBHID pod. At the moment I'm using a Kodenshi=20 infrared receiver module, which I obtained several years ago from Mike=20 Harrison (see http://www.electricstuff.co.uk/forsale.html and search for=20 "Kodenshi"). The PIC26043SM is a similar part for which data is=20 available (search uk.farnell.com); the datasheet link on electricstuff=20 returns a 404 error. The remote uses the Philips RC-6 protocol, in Mode 6A, using a short=20 address byte (which appears to be set to zero...?!) RC6 uses Biphase (Manchester) coding at the physical level. I figured=20 the best way to decode this would be to use the RB0 edge interrupt=20 (flipping the edge polarity on every interrupt) to catch the edges, then=20 use TIMER0 to measure the time between each edge. This is then divided=20 by 444us, and used to decide how many bits to shift into a shift=20 register (with the state decided by the current edge polarity of INT0).=20 Afterwards, the shift register is decoded into individual bits. ISR looks like this: if RBIF: RBIF =3D 0 INTEDG0 =3D !INTEDG0 Save the current TMR0 value Clear TMR0 to zero NumberOfBits =3D TMR0_Saved_Value / Ticks_Per_Halfbit for NumberOfBits do: ShiftReg =3D ShiftReg << 1 if INTEDG0 then ShiftReg =3D ShiftReg + 1 I've attached the full source code (written in JAL) -- the ISR is a=20 fairly simple finite-state machine clocked by the RB0 interrupt. It=20 shouldn't be hard to understand and I'm willing to explain sections of=20 code -- so feel free to ask questions. The problem I have is that while this will correctly decode some bit=20 streams (the SELECT, UP and LEFT buttons for instance), others will not=20 decode at all (SKY button, TV GUIDE, etc.) The mark-space ratio I'm seeing on the output of the IR module also=20 seems to be extremely asymmetric. I'm seeing 'active' (IR on) times of=20 ~497us, and 'inactive' times of about 350us. This is a difference of=20 150us, or nearly 30%. Is this normal for IR remotes? If so, how would you deal with this type of asymmetry and improve the=20 decoder? At this point I'm absolutely stuck -- I managed to get an RC-5 decoder=20 working at the beginning of the week (using a Hauppauge PVR remote) but=20 RC-6 is eluding me. Thanks, --=20 Phil. piclist@philpem.me.uk http://www.philpem.me.uk/ --_003_4E84EFB64040405philpemmeuk_ Content-Type: text/plain; name="Copy of pic18_rc6.jal" Content-Description: Copy of pic18_rc6.jal Content-Disposition: attachment; filename="Copy of pic18_rc6.jal"; size=14192; creation-date="Thu, 29 Sep 2011 15:27:59 GMT"; modification-date="Thu, 29 Sep 2011 15:27:59 GMT" Content-Transfer-Encoding: base64 LS0gUkM2IFJlbW90ZSBDb250cm9sIENvZGUgRGVjb2Rlcg0KLS0gKEMpIDIwMTEgUGhpbCBQZW1i ZXJ0b24gPHBoaWxwZW1AcGhpbHBlbS5tZS51az4NCi0tDQotLSBzdGFydGVkICAyMTowNSAyMDEx LVNFUC0yNiwgc3RvcHBlZCAwMTowMCAyMDExLVNFUC0yNw0KLS0gZmluaXNoZWQgPz86Pz8NCg0K LS0gZGVmaW5lIHRhcmdldCBkZXZpY2UNCmluY2x1ZGUgMThmMTMyMA0KDQotLSBkZWZpbmUgY2xv Y2sgb3NjaWxsYXRvciBmcmVxdWVuY3kNCnByYWdtYSB0YXJnZXQgY2xvY2sgMTJfMDAwXzAwMA0K DQotLSBzZXQgY29uZmlndXJhdGlvbg0KcHJhZ21hIHRhcmdldCBPU0MgSFMNCnByYWdtYSB0YXJn ZXQgV0RUIERJU0FCTEVEDQpwcmFnbWEgdGFyZ2V0IE1DTFIgRVhURVJOQUwNCnByYWdtYSB0YXJn ZXQgTFZQIERJU0FCTEVEDQpwcmFnbWEgdGFyZ2V0IEZDTUVOIERJU0FCTEVEDQoNCi0tIHBpbmRl ZnMNCmFsaWFzCW5JUgkJCQlpcyBwaW5fQjANCmFsaWFzCW5JUl9kaXIJCQlpcyBwaW5fQjBfZGly ZWN0aW9uDQoNCg0KLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi0tIFNFVFVQIENPTlNUQU5UUw0KLS0g LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCg0KLS0gVGltZXIwIHByZXNjYWxlcg0KY29uc3QgYml0CXRpbWVy X3ByZXNjYWxlcl9lbmFibGVkCT0gb24NCmNvbnN0IGJ5dGUJdGltZXJfcHJlc2NhbGVyX3NldHRp bmcJPSA1DQppZiB0aW1lcl9wcmVzY2FsZXJfZW5hYmxlZCB0aGVuDQoJY29uc3QgZHdvcmQgdGlt ZXJfcHJlc2NhbGVyX3ZhbHVlID0gMiA8PCB0aW1lcl9wcmVzY2FsZXJfc2V0dGluZw0KZWxzZQ0K CWNvbnN0IGR3b3JkIHRpbWVyX3ByZXNjYWxlcl92YWx1ZSA9IDENCmVuZCBpZg0KDQotLSBSQzYg dGltaW5nIHNwZWNzIC0tIGFsbCB0aW1lcyBpbiBtaWNyb3NlY29uZHMNCi0tIExlYWRlciBwdWxz ZQ0KY29uc3Qgd29yZCByYzZfYml0CQkJCQk9IDg4OQkJCQktLSA4ODkgdXMgZm9yIGEgc3RhbmRh cmQgUkM2IGRhdGEgYml0DQpjb25zdCB3b3JkIHJjNl9oYWxmX2JpdAkJCQk9IHJjNl9iaXQgLyAy CQktLSA0NDQgdXMgZm9yIGFuIFJDNiBoYWxmLWJpdA0KY29uc3Qgd29yZCByYzZfdG9nZ2xlX2Jp dAkJCT0gcmM2X2JpdCAqIDIJCS0tIDE3NzggdXMgZm9yIHRoZSB0b2dnbGUgYml0ICh3aGljaCBp cyBkb3VibGUgbGVuZ3RoKQ0KY29uc3Qgd29yZCByYzZfbGVhZGVyX2FjdGl2ZQkJPSByYzZfYml0 ICogMwkJLS0gMjY2NyB1cyBmb3IgdGhlIGFjdGl2ZSBwYXJ0IG9mIHRoZSBsZWFkZXINCmNvbnN0 IHdvcmQgcmM2X2xlYWRlcl9pbmFjdGl2ZQkJPSByYzZfYml0CQkJLS0gODg5IHVzIGZvciB0aGUg aW5hY3RpdmUgcGFydCBvZiB0aGUgbGVhZGVyDQoNCi0tIFJDNiB0aW1pbmcgdmFsdWVzIC0tIHRo ZSBudW1iZXJzIGFib3ZlLCBjb252ZXJ0ZWQgdG8gdGltZXIgY291bnRzDQpjb25zdCBieXRlIHRf cmM2X2xlYWRlcl9hY3RpdmVfbG8JPSAocmM2X2xlYWRlcl9hY3RpdmUgLSAocmM2X2xlYWRlcl9h Y3RpdmUgLyAxMCkpIC8gKHRpbWVyX3ByZXNjYWxlcl92YWx1ZSoxMDAwMDAwIC8gKHRhcmdldF9j bG9jayAvIDQpKQ0KY29uc3QgYnl0ZSB0X3JjNl9sZWFkZXJfYWN0aXZlX2hpCT0gKHJjNl9sZWFk ZXJfYWN0aXZlICsgKHJjNl9sZWFkZXJfYWN0aXZlIC8gOSkpIC8gKHRpbWVyX3ByZXNjYWxlcl92 YWx1ZSoxMDAwMDAwIC8gKHRhcmdldF9jbG9jayAvIDQpKQ0KY29uc3QgYnl0ZSB0X3JjNl9sZWFk ZXJfaW5hY3RpdmVfbG8JPSAocmM2X2xlYWRlcl9pbmFjdGl2ZSAtIChyYzZfbGVhZGVyX2luYWN0 aXZlIC8gMykpIC8gKHRpbWVyX3ByZXNjYWxlcl92YWx1ZSoxMDAwMDAwIC8gKHRhcmdldF9jbG9j ayAvIDQpKQ0KY29uc3QgYnl0ZSB0X3JjNl9sZWFkZXJfaW5hY3RpdmVfaGkJPSAocmM2X2xlYWRl cl9pbmFjdGl2ZSArIChyYzZfbGVhZGVyX2luYWN0aXZlIC8gMTApKSAvICh0aW1lcl9wcmVzY2Fs ZXJfdmFsdWUqMTAwMDAwMCAvICh0YXJnZXRfY2xvY2sgLyA0KSkNCmNvbnN0IGJ5dGUgdF9yYzZf aGFsZl9iaXQJCQk9IDMwMCAvICh0aW1lcl9wcmVzY2FsZXJfdmFsdWUqMTAwMDAwMCAvICh0YXJn ZXRfY2xvY2sgLyA0KSkNCg0KLS0gZG8gYSBsaXR0bGUgc2FuaXR5IGNoZWNraW5nIG9uIHRoZSB0 aW1lciB2YWx1ZXMNCi0tIGJhc2ljYWxseSBtYWtlIHN1cmUgd2UgY2FuIG1lYXN1cmUgdGhlIGxv bmdlc3QgcG9zc2libGUgbGVhZGVyIHB1bHNlIHVzaW5nIHRoZSA4LWJpdCBUSU1FUjANCmlmICgy NTVfMDAwXzAwMCAvICgodGFyZ2V0X2Nsb2NrIC8gNCkgLyB0aW1lcl9wcmVzY2FsZXJfdmFsdWUp KSA8IChyYzZfbGVhZGVyX2FjdGl2ZSArIChyYzZfbGVhZGVyX2FjdGl2ZSAvIDUpKSB0aGVuDQoJ cHJhZ21hIGVycm9yIC0tIEVSUk9SOiBUaW1lciBvdmVyZmxvd2luZyB0b28gZmFzdDsgY2hlY2sg cHJlc2NhbGVyIHNldHRpbmdzDQplbmQgaWYNCg0KLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi0tIEdM T0JBTCBWQVJJQUJMRVMNCi0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCi0tIFNldCB3aGVuIHRoZSBJ U1IgcmVjZWl2ZXMgYSBjb21wbGV0ZSwgdmFsaWQgUkM2IGZyYW1lDQp2YXIgYml0CQlyY19yZWNl aXZlX2NvbXBsZXRlCQk9IGZhbHNlDQoNCi0tIC0tLS0tLS0tLS0tLS0tLS0NCi0tICBSQzYgZnJh bWUgZGF0YQ0KLS0gLS0tLS0tLS0tLS0tLS0tLQ0KLS0gVG9nZ2xlICh0cmFpbGVyKSBiaXQNCnZh ciBiaXQJCXJjNl90b2dnbGUNCi0tIE1vZGUgYml0cw0KdmFyIGJpdCozCXJjNl9tb2RlDQotLSBU YXJnZXQgYWRkcmVzcw0KdmFyIHdvcmQJcmM2X2FkZHJlc3MNCi0tIENvbW1hbmQNCnZhciB3b3Jk CXJjNl9jb21tYW5kDQoNCi0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQotLSBGVU5DVElPTlMNCi0tIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQoNCnByb2NlZHVyZSBkZWJ1ZydwdXQoYnl0ZSBpbiB2YWwpIGlzDQoJ cHJhZ21hIGlubGluZQ0KDQoJUE9SVEJfbG93ID0gKHZhbCA8PCAxKSAmIDB4MEUNCglQT1JUQl9o aWdoID0gKHZhbCA+PiAzKSAmIDB4MDMNCmVuZCBwcm9jZWR1cmUNCg0KcHJvY2VkdXJlIGRlYnVn X2J5dGUoYnl0ZSBpbiB2YWwpIGlzDQoJZGVidWcgPSAodmFsID4+IDQpDQoJZGVidWcgPSAodmFs ID4+IDQpICsgMHgxMA0KCV91c2VjX2RlbGF5KDEwKQ0KCWRlYnVnID0gKHZhbCA+PiA0KQ0KCWRl YnVnID0gMA0KCWRlYnVnID0gKHZhbCAmIDB4MGYpDQoJZGVidWcgPSAodmFsICYgMHgwZikgKyAw eDEwDQoJX3VzZWNfZGVsYXkoMTApDQoJZGVidWcgPSAodmFsICYgMHgwZikNCglkZWJ1ZyA9IDAN CmVuZCBwcm9jZWR1cmUNCg0KcHJvY2VkdXJlIGRlYnVnX3dvcmQod29yZCBpbiB2YWwpIGlzDQoJ ZGVidWdfYnl0ZShieXRlKHZhbCA+PiA4KSkNCglkZWJ1Z19ieXRlKGJ5dGUodmFsICYgMHhmZikp DQplbmQgcHJvY2VkdXJlDQoNCg0KLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi0tIElOVEVSUlVQVCBI QU5ETEVSUw0KLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KLS0gaW50ZXJydXB0IHBvbGFyaXRpZXMN CmNvbnN0IGJpdCBJUF9BQ1QgID0gb2ZmCQktLSBpbmFjdGl2ZSAtPiBhY3RpdmUNCmNvbnN0IGJp dCBJUF9OQUNUID0gb24JCS0tIGFjdGl2ZSAtPiBpbmFjdGl2ZQ0KDQotLSBJU1Igc3RhdGVzDQpj b25zdCBieXRlCVNUX1dBSVRfTEVBREVSX1NUQVJUCT0gMAkJLS0gd2FpdCBmb3Igc3RhcnQgb2Yg bGVhZGVyDQpjb25zdCBieXRlCVNUX1dBSVRfTEVBREVSX01JRAkJPSAxCQktLSB3YWl0IGZvciBs ZWFkZXIgbWlkcG9pbnQNCmNvbnN0IGJ5dGUJU1RfV0FJVF9MRUFERVJfRU5ECQk9IDIJCS0tIHdh aXQgZm9yIGVuZCBvZiBsZWFkZXINCmNvbnN0IGJ5dGUJU1RfU0hJRlRfSU5fSEVBREVSCQk9IDMJ CS0tIHNoaWZ0IGluIHRoZSBwYWNrZXQgaGVhZGVyDQpjb25zdCBieXRlCVNUX1NISUZUX0lOX0FE RFJFU1MJCT0gNAkJLS0gc2hpZnQgaW4gdGhlIHBhY2tldCBhZGRyZXNzDQpjb25zdCBieXRlCVNU X1NISUZUX0lOX0NPTU1BTkQJCT0gNQkJLS0gc2hpZnQgaW4gdGhlIGNvbW1hbmQgYnl0ZQ0KY29u c3QgYnl0ZQlTVF9FUlJPUgkJCQk9IDI1NA0KY29uc3QgYnl0ZQlTVF9IQUxUCQkJCQk9IDI1NQkt LSBzdG9wIGRlYWQgLS0gREVCVUcgT05MWSENCg0KLS0gSVNSIC0tIEN1cnJlbnQgSVNSIHN0YXRl DQp2YXIgYnl0ZQlpc3Jfc3RhdGUJCQkJPSBTVF9XQUlUX0xFQURFUl9TVEFSVA0KDQotLSBJU1Ig LS0gTGVuZ3RoIG9mIGxlYWRlciBwdWxzZSBhY3RpdmUgcGFydA0KdmFyIGJ5dGUJaXNyX2xwX2Fj dF9sZW4NCg0KLS0gSVNSIC0tIGN1cnJlbnQgdGltaW5nIHZhbHVlDQp2YXIgYnl0ZQlpc3JfdHZh bA0KDQotLSBJU1IgLS0gR2VuZXJpYyBjb3VudGVyIHJlZ2lzdGVyDQp2YXIgYnl0ZQlpc3JfY291 bnRlcg0KDQotLSBJU1IgLS0gSGFsZmJpdCBzaGlmdCByZWdpc3Rlcg0KdmFyCWR3b3JkCWlzcl9o Yl9zaGlmdA0KdmFyCWJ5dGUJaXNyX2hiX2NvdW50DQp2YXIJYml0CQlpc3JfaGJfYml0DQoNCi0t IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLS0gIElOVEVSUlVQVCBTRVJWSUNFIFJPVVRJ TkUNCi0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQotLSBJU1Igc3VwcG9ydCBmdW5j dGlvbiAtLSBzaGlmdCBpbiBhIHNlcmllcyBvZiBkYXRhIGJpdHMgYmFzZWQgb24gdGhlIHRpbWlu Zw0KLS0gdmFsdWUgYW5kIGJpdCBzdGF0ZQ0KcHJvY2VkdXJlIGlzcl9zaGlmdF9pbl9pbmxpbmUg aXMNCglwcmFnbWEgaW5saW5lDQoNCgktLSBEaXZpZGUgdGhlIHRpbWluZyB2YWx1ZSBieSB0aGUg dGltZSBmb3IgYSBzaW5nbGUgaGFsZi1iaXQgYW5kIHJvdW5kIHVwDQoJZm9yIChpc3JfdHZhbCAr ICh0X3JjNl9oYWxmX2JpdCAvIDIpKSAvIHRfcmM2X2hhbGZfYml0IGxvb3ANCgkJLS0gU2hpZnQg Yml0IGludG8gdGhlIFNSDQoJCWlzcl9oYl9zaGlmdCA9IGlzcl9oYl9zaGlmdCA8PCAxDQoJCWlm IGlzcl9oYl9iaXQgdGhlbg0KCQkJaXNyX2hiX3NoaWZ0ID0gaXNyX2hiX3NoaWZ0IHwgMQ0KCQll bmQgaWYNCg0KCQktLSBJbmNyZW1lbnQgImJpdHMgaW4gU1IiIGNvdW50ZXINCgkJaXNyX2hiX2Nv dW50ID0gaXNyX2hiX2NvdW50ICsgMQ0KCWVuZCBsb29wDQplbmQgcHJvY2VkdXJlDQoNCg0KLS0g VGhlIGludGVycnVwdCBzZXJ2aWNlIHJvdXRpbmUgcHJvcGVyDQpwcm9jZWR1cmUgaXNyIGlzDQoJ cHJhZ21hIGludGVycnVwdA0KDQoJaWYgSU5UQ09OX0lOVDBJRiB0aGVuDQoJCS0tIHJlc2V0IGlu dGVycnVwdCBmbGFnDQoJCUlOVENPTl9JTlQwSUYgPSAwDQoNCgkJLS0gc3RvcmUgYW5kIHJlc2V0 IHRpbWVyIHZhbHVlDQoJCWlzcl90dmFsID0gVE1SMEwNCgkJVE1SMEwgPSAwDQoNCgkJLS0gdHJp Z2dlciBvbiBvdGhlciBzaWduYWwgZWRnZSBuZXh0IHRpbWUgYXJvdW5kDQoJCUlOVENPTjJfSU5U RURHMCA9ICFJTlRDT04yX0lOVEVERzANCgkJaXNyX2hiX2JpdCA9ICFpc3JfaGJfYml0DQoNCgkJ Y2FzZSBpc3Jfc3RhdGUgb2YNCgkJCVNUX1dBSVRfTEVBREVSX1NUQVJUOiBibG9jaw0KCQkJCS0t IFdlJ3ZlIGp1c3QgaGl0IHRoZSBsZWFkaW5nIGVkZ2Ugb2YgdGhlIGxlYWRlciBwdWxzZS4NCg0K CQkJCS0tIFRPRE86IGlmIGEgcHJldmlvdXMgZnJhbWUgaGFzbid0IGJlZW4gaGFuZGxlZCwgZHJv cCB0aGlzIG9uZSBhbmQgZ28gdG8gSE9MRE9GRg0KCQkJCS0tIGlmICFyY19yZWNlaXZlX2NvbXBs ZXRlZCB0aGVuIC4uLg0KDQoJCQkJLS0gS2ljayBvZmYgdGltZXIwDQoJCQkJVE1SMEwgPSAwDQoJ CQkJVDBDT05fVE1SME9OID0gb24NCg0KCQkJCS0tIENsZWFyIHRoZSBwcmV2aW91cyByZWNlaXZl ZCBmcmFtZQ0KLS0gRklYTUUJCQkJcmNfZnJhbWUgPSAwDQoNCgkJCQktLSBub3cgd2FpdCBmb3Ig dGhlIGVuZCBvZiB0aGUgJ2xvbmcnIHBhcnQgb2YgdGhlIGxlYWRlciBwdWxzZQ0KCQkJCWlzcl9z dGF0ZSA9IFNUX1dBSVRfTEVBREVSX01JRA0KCQkJZW5kIGJsb2NrDQoNCgkJCVNUX1dBSVRfTEVB REVSX01JRDogYmxvY2sNCgkJCQktLSBIaXQgdGhlIEFDVC0+SU5BQ1QgZWRnZSBpbiB0aGUgbWlk ZGxlIG9mIHRoZSBsZWFkZXIgcHVsc2UuDQoJCQkJLS0gU2F2ZSB0aGUgTFAgaGlnaCBsZW5ndGgN CgkJCQlpc3JfbHBfYWN0X2xlbiA9IGlzcl90dmFsDQoNCgkJCQktLSB3YWl0IGZvciB0aGUgZW5k IG9mIHRoZSAnc2hvcnQnIHBhcnQgb2YgdGhlIGxlYWRlciBwdWxzZQ0KCQkJCWlzcl9zdGF0ZSA9 IFNUX1dBSVRfTEVBREVSX0VORA0KCQkJZW5kIGJsb2NrDQoNCgkJCVNUX1dBSVRfTEVBREVSX0VO RDogYmxvY2sNCgkJCQktLSBIaXQgdGhlIElOQUNULT5BQ1QgZWRnZSBhdCB0aGUgZW5kIG9mIHRo ZSBsZWFkZXIgcHVsc2UuDQoJCQkJLS0gU2VlIGlmIHRoZSB0aW1pbmcgbGVuZ3RocyB3ZXJlIHNh bmUNCgkJCQlpZgkoaXNyX2xwX2FjdF9sZW4gPiB0X3JjNl9sZWFkZXJfYWN0aXZlX2xvKSAgICAm DQoJCQkJCShpc3JfbHBfYWN0X2xlbiA8IHRfcmM2X2xlYWRlcl9hY3RpdmVfaGkpICAgICYNCgkJ CQkJKGlzcl90dmFsID4gdF9yYzZfbGVhZGVyX2luYWN0aXZlX2xvKSAmDQoJCQkJCShpc3JfdHZh bCA8IHRfcmM2X2xlYWRlcl9pbmFjdGl2ZV9oaSkNCgkJCQl0aGVuDQoJCQkJCS0tIFRpbWluZyBs ZW5ndGhzIGxvb2sgc2FuZSwgc3RhcnQgcmVjZWl2aW5nIGJpdHMNCg0KCQkJCQktLSBGaXJzdCBi aXQgaXMgdGhlIHN0YXJ0IGJpdCAtLSBhICcxJywgQmlwaGFzZSBjb2RlZCBhcyAnMTAnLg0KCQkJ CQktLSBUaGUgSVNSIGZsaXBzIHRoaXMgKGxvb2sgdXAhKSwgc28gc2V0IHRoZSAnbmV4dCBiaXQg c3RhdGUnIHRvIEZBTFNFLg0KCQkJCQlpc3JfaGJfYml0ID0gZmFsc2UNCg0KCQkJCQktLSBDbGVh ciBzaGlmdCByZWdpc3Rlcg0KCQkJCQlpc3JfaGJfc2hpZnQgPSAwCQktLSBGSVhNRTogcHJvYmFi bHkgcmVkdW5kYW50LCBidXQgaGVscHMgZGVidWdnaW5nDQoJCQkJCWlzcl9oYl9jb3VudCA9IDAN Cg0KCQkJCQktLSBDbG9jayBpbiB0aGUgaGVhZGVyDQoJCQkJCWlzcl9zdGF0ZSA9IFNUX1NISUZU X0lOX0hFQURFUg0KCQkJCWVsc2UNCgkJCQkJLS0gVE9ETzogRklYTUU6IGdvIHRvIGhvbGRvZmYg aW5zdGVhZCBvZiBoYWx0aW5nDQoJCQkJCVQwQ09OX1RNUjBPTiA9IG9mZg0KCQkJCQlpc3Jfc3Rh dGUgPSBTVF9FUlJPUg0KCQkJCQlyY19yZWNlaXZlX2NvbXBsZXRlID0gdHJ1ZQ0KCQkJCWVuZCBp Zg0KCQkJZW5kIGJsb2NrDQoNCgkJCVNUX1NISUZUX0lOX0hFQURFUjogYmxvY2sNCgkJCQktLSBD b252ZXJ0IHRoZSB0aW1pbmcgdmFsdWUgaW50byBhIHNlcmllcyBvZiBkYXRhIGJpdHMNCgkJCQlp c3Jfc2hpZnRfaW5faW5saW5lKCkNCg0KCQkJCS0tIEhhdmUgd2UgZ290IHRoZSBlbnRpcmUgaGVh ZGVyIChhbmQgdGhlIGZpcnN0IGFkZHJlc3MgYml0KSB5ZXQ/DQoJCQkJaWYgaXNyX2hiX2NvdW50 ID49IDE0IHRoZW4NCgkJCQkJLS0gWWVzLiBEZWNvZGUgaXQuDQoJCQkJCS0tIEEgdmFsaWQgaGVh ZGVyIHdpbGwgY29udGFpbjoNCgkJCQkJLS0gICB0aGUgc3RhcnQgYml0IChhbHdheXMgMSkNCgkJ CQkJLS0gICB0aHJlZSBtb2RlIGJpdHMgKDAwMCA9IE1vZGUgMCwgMTEwID0gTW9kZSA2KQ0KCQkJ CQktLSAgIGEgZG91YmxlLWxlbmd0aCB0cmFpbGVyIGJpdA0KDQoJCQkJCS0tIFRocm93IGF3YXkg dGhlIGZpcnN0IGFkZHJlc3MgYml0IGFuZCBhbnkgZXh0cmEgYml0cw0KCQkJCQktLSB3aGljaCBk ZWNpZGVkIHRvIGNvbWUgYWxvbmcgZm9yIHRoZSByaWRlDQoJCQkJCXZhciB3b3JkIHRlbXAgPSB3 b3JkKChpc3JfaGJfc2hpZnQgPj4gKGlzcl9oYl9jb3VudCAtIDEyKSkgJiAoKDE8PDEyKS0xKSkN CgkJCQkJaXNyX2hiX2NvdW50ID0gaXNyX2hiX2NvdW50IC0gMTINCg0KCQkJCQktLSBNYWtlIHN1 cmUgdGhlIHRyYWlsZXIgYml0IGlzIHZhbGlkDQoJCQkJCWlmICgodGVtcCAmIDB4MEYpICE9IDBi MTEwMCkgJiAoKHRlbXAgJiAweDBGKSAhPSAwYjAwMTEpIHRoZW4NCgkJCQkJCS0tIFRyYWlsZXIg Yml0IGludmFsaWQsIGZhaWwgW1RPRE86IEZJWE1FXQ0KCQkJCQkJaXNyX3N0YXRlID0gU1RfRVJS T1INCgkJCQkJCXJldHVybg0KCQkJCQllbHNlDQoJCQkJCQktLSBUcmFpbGVyIGJpdCB2YWxpZCwg Y2Fycnkgb24NCgkJCQkJCXJjNl90b2dnbGUgPSAoKHRlbXAgJiAweDBmKSA9PSAwYjExMDApDQoJ CQkJCWVuZCBpZg0KDQoJCQkJCS0tIENoZWNrIHRoZSBzdGFydCBiaXQNCgkJCQkJaWYgKHRlbXAg JiAwYjExXzAwXzAwXzAwXzAwMDApICE9IDBiMTBfMDBfMDBfMDBfMDAwMCB0aGVuDQoJCQkJCQkt LSBTdGFydCBiaXQgaW52YWxpZCwgZmFpbCBbVE9ETzogRklYTUVdDQoJCQkJCQlpc3Jfc3RhdGUg PSBTVF9FUlJPUg0KCQkJCQkJcmV0dXJuDQoJCQkJCWVuZCBpZg0KDQoJCQkJCS0tIE1vZGUgYml0 IHZhbGlkYXRpb24NCgkJCQkJdmFyIGJpdCoyIG1vZGUyIGF0IHRlbXA6OA0KCQkJCQl2YXIgYml0 KjIgbW9kZTEgYXQgdGVtcDo2DQoJCQkJCXZhciBiaXQqMiBtb2RlMCBhdCB0ZW1wOjQNCgkJCQkJ aWYJKG1vZGUwID09IDBiMTEpIHwgKG1vZGUwID09IDBiMDApIHwNCgkJCQkJCShtb2RlMSA9PSAw YjExKSB8IChtb2RlMSA9PSAwYjAwKSB8DQoJCQkJCQkobW9kZTIgPT0gMGIxMSkgfCAobW9kZTIg PT0gMGIwMCkNCgkJCQkJdGhlbg0KCQkJCQkJLS0gU3R1Y2sgbW9kZSBiaXRzLiBCYWlsIG91dCEg W1RPRE86IEZJWE1FXQ0KCQkJCQkJaXNyX3N0YXRlID0gU1RfRVJST1INCgkJCQkJCXJldHVybg0K CQkJCQllbmQgaWYNCg0KCQkJCQktLSBEZWNvZGUgYW5kIHZhbGlkYXRlIHRoZSBtb2RlIGJpdHMN CgkJCQkJcmM2X21vZGUgPQkoKG1vZGUwICYgMGIxMCkgPj4gMSkgKw0KCQkJCQkJCQkoKG1vZGUx ICYgMGIxMCkgPj4gMCkgKw0KCQkJCQkJCQkoKG1vZGUyICYgMGIxMCkgPDwgMSkNCg0KCQkJCQlp ZiAocmM2X21vZGUgIT0gMGIwMDApICYgKHJjNl9tb2RlICE9IDBiMTEwKSB0aGVuDQoJCQkJCQkt LSBXZSBvbmx5IHN1cHBvcnQgUkM2IE1vZGUgMCBhbmQgTW9kZSA2DQoJCQkJCQlpc3Jfc3RhdGUg PSBTVF9FUlJPUg0KCQkJCQkJcmV0dXJuDQoJCQkJCWVuZCBpZg0KDQoJCQkJCS0tIElmIHRoaXMg aXMgTW9kZSBaZXJvIG9yIE1vZGUgNkEgd2l0aCBhIHNob3J0IGFkZHJlc3MsIHdlDQoJCQkJCS0t IGhhdmUgOCBiaXRzIHRvIGNsb2NrIGluLiBNb2RlIDZBIExvbmcgcGFja2V0cyBoYXZlIGENCgkJ CQkJLS0gMTYtYml0IGFkZHJlc3MuDQoJCQkJCXRlbXAgPSB3b3JkKChpc3JfaGJfc2hpZnQgPj4g KGlzcl9oYl9jb3VudCAtIDIpKSAmIDBiMTEpDQoJCQkJCWlmIChyYzZfbW9kZSA9PSAweDA2KSAm ICh0ZW1wID09IDBiMTApIHRoZW4NCgkJCQkJCS0tIE1vZGUgMDYsIGZpcnN0IGFkZHJlc3MgYml0 IGlzIGEgMS4gTG9uZyBBZGRyZXNzLg0KCQkJCQkJaXNyX2NvdW50ZXIgPSAxNioyDQoJCQkJCWVs c2UNCgkJCQkJCS0tIEFueSBvdGhlciBtb2RlIC0tIDggYml0IGFkZHJlc3MNCgkJCQkJCWlzcl9j b3VudGVyID0gOCoyDQoJCQkJCWVuZCBpZg0KDQoJCQkJCS0tIE5vdGUgdGhhdCB3ZSBkb24ndCBk ZWNyZW1lbnQgaXNyX2hiX2NvdW50IGFmdGVyIHNuaWZmaW5nDQoJCQkJCS0tIHRoZSBmaXJzdCBh ZGRyZXNzIGJpdC4gVGhpcyBsZWF2ZXMgaXQgaW4gdGhlIHNoaWZ0DQoJCQkJCS0tIHJlZ2lzdGVy IGZvciBTVF9TSElGVF9JTl9BRERSRVNTIHRvIGhhbmRsZS4NCg0KCQkJCQktLSBBbGwgdGhlIHNh bml0eSBjaGVja3MgcGFzc2VkLiBTaGlmdCBpbiB0aGUgYWRkcmVzcyBiaXRzLg0KCQkJCQlpc3Jf c3RhdGUgPSBTVF9TSElGVF9JTl9BRERSRVNTDQoJCQkJZW5kIGlmDQoJCQllbmQgYmxvY2sNCg0K CQkJU1RfU0hJRlRfSU5fQUREUkVTUzogYmxvY2sNCgkJCQktLSBDb252ZXJ0IHRoZSB0aW1pbmcg dmFsdWUgaW50byBhIHNlcmllcyBvZiBkYXRhIGJpdHMNCgkJCQlpc3Jfc2hpZnRfaW5faW5saW5l KCkNCg0KCQkJCS0tIEhhdmUgd2UgZ290IHRoZSBlbnRpcmUgaGVhZGVyIChhbmQgdGhlIGZpcnN0 IGFkZHJlc3MgYml0KSB5ZXQ/DQoJCQkJaWYgaXNyX2hiX2NvdW50ID49IGlzcl9jb3VudGVyIHRo ZW4NCgkJCQkJdmFyIHdvcmQgdGVtcCA9IHdvcmQoKGlzcl9oYl9zaGlmdCA+PiAoaXNyX2hiX2Nv dW50IC0gaXNyX2NvdW50ZXIpKSAmICgoZHdvcmQoMSk8PGlzcl9jb3VudGVyKS0xKSkNCgkJCQkJ aXNyX2hiX2NvdW50ID0gaXNyX2hiX2NvdW50IC0gaXNyX2NvdW50ZXINCg0KCQkJCQktLSBTdGFy dCBkZWNvZGluZyB0aGUgYWRkcmVzcw0KCQkJCQlyYzZfYWRkcmVzcyA9IDANCgkJCQkJZm9yIGlz cl9jb3VudGVyLzIgbG9vcA0KCQkJCQkJdmFyIGJpdCoyIGsgYXQgdGVtcDowDQoNCgkJCQkJCWlm IChrID09IDB4MDMpIHwgKGsgPT0gMHgwMCkgdGhlbg0KCQkJCQkJCS0tIDAwIG9yIDExIGlzIGEg Y29kaW5nIHZpb2xhdGlvbg0KCQkJCQkJCS0tIEZJWE1FDQoJCQkJCQkJaXNyX3N0YXRlID0gU1Rf RVJST1INCgkJCQkJCQlyZXR1cm4NCgkJCQkJCWVsc2lmIGsgPT0gMHgwMSB0aGVuDQoJCQkJCQkJ LS0gMDEgPSBSQzYgYmlwaGFzZSAnMCcNCgkJCQkJCQlyYzZfYWRkcmVzcyA9IHJjNl9hZGRyZXNz ID4+IDENCgkJCQkJCWVsc2UNCgkJCQkJCQktLSAxMCA9IFJDNiBiaXBoYXNlICcxJw0KCQkJCQkJ CXJjNl9hZGRyZXNzID0gKHJjNl9hZGRyZXNzID4+IDEpICsgMHg4MDAwDQoJCQkJCQllbmQgaWYN Cg0KCQkJCQkJdGVtcCA9IHRlbXAgPj4gMg0KCQkJCQllbmQgbG9vcA0KDQoJCQkJCS0tIHNoaWZ0 IHRoZSBhZGRyZXNzIGludG8gaXRzIHByb3BlciBob21lDQoJCQkJCXJjNl9hZGRyZXNzID0gcmM2 X2FkZHJlc3MgPj4gKDE2IC0gKGlzcl9jb3VudGVyLzIpKQ0KDQoJCQkJCS0tIFlheSwgd2UgaGF2 ZSBhbiBSQzYgYWRkcmVzcy4gTm93IHNoaWZ0IGluIHRoZSBsYXN0IGRhdGENCgkJCQkJLS0gYmxv Y2suLi4gdGhlIDgtYml0IFJDNiBjb21tYW5kIQ0KCQkJCQlpc3Jfc3RhdGUgPSBTVF9TSElGVF9J Tl9DT01NQU5EDQoJCQkJZW5kIGlmDQoJCQllbmQgYmxvY2sNCg0KCQkJU1RfU0hJRlRfSU5fQ09N TUFORDogYmxvY2sNCgkJCQktLSBDb252ZXJ0IHRoZSB0aW1pbmcgdmFsdWUgaW50byBhIHNlcmll cyBvZiBkYXRhIGJpdHMNCgkJCQlpc3Jfc2hpZnRfaW5faW5saW5lKCkNCg0KY29uc3QgYnl0ZSBj bWRsZW4gPSAyNA0KDQoJCQkJLS0gSGF2ZSB3ZSBnb3QgYWxsIHRoZSBjb21tYW5kIGJpdHMgeWV0 Pw0KCQkJCWlmIGlzcl9oYl9jb3VudCA+PSBjbWRsZW4gdGhlbg0KCQkJCQl2YXIgZHdvcmQgdGVt cCA9IChpc3JfaGJfc2hpZnQgPj4gKGlzcl9oYl9jb3VudCAtIGNtZGxlbikpICYgKChkd29yZCgx KTw8Y21kbGVuKS0xKQ0KDQoJCQkJCS0tIFN0YXJ0IGRlY29kaW5nIHRoZSBhZGRyZXNzDQoJCQkJ CXJjNl9jb21tYW5kID0gMA0KCQkJCQlmb3IgY21kbGVuLzIgbG9vcA0KCQkJCQkJdmFyIGJpdCoy IGsgYXQgdGVtcDowDQoNCgkJCQkJCWlmIChrID09IDB4MDMpIHwgKGsgPT0gMHgwMCkgdGhlbg0K CQkJCQkJCS0tIDAwIG9yIDExIGlzIGEgY29kaW5nIHZpb2xhdGlvbg0KCQkJCQkJCS0tIEZJWE1F DQoJCQkJCQkJaXNyX3N0YXRlID0gU1RfRVJST1INCgkJCQkJCQlyZXR1cm4NCgkJCQkJCWVsc2lm IGsgPT0gMHgwMSB0aGVuDQoJCQkJCQkJLS0gMDEgPSBSQzYgYmlwaGFzZSAnMCcNCgkJCQkJCQly YzZfY29tbWFuZCA9IHJjNl9jb21tYW5kID4+IDENCgkJCQkJCWVsc2UNCgkJCQkJCQktLSAxMCA9 IFJDNiBiaXBoYXNlICcxJw0KCQkJCQkJCXJjNl9jb21tYW5kID0gKHJjNl9jb21tYW5kID4+IDEp ICsgKHdvcmQoMSkgPDwgKChjbWRsZW4vMiktMSkpDQoJCQkJCQllbmQgaWYNCg0KCQkJCQkJdGVt cCA9IHRlbXAgPj4gMg0KCQkJCQllbmQgbG9vcA0KDQoJCQkJCS0tIFdlJ3ZlIGNvbXBsZXRlbHkg ZGVjb2RlZCBhbiBSQzYgZnJhbWUuIExldCdzIGdpdmUNCgkJCQkJLS0gb3Vyc2VsdmVzIGEgcGF0 IG9uIHRoZSBiYWNrLCByb2xsIHRoZSBkcnVtcyBhbmQNCgkJCQkJLS0gZXhpdCwgc3RhZ2UgbGVm dC4NCgkJCQkJVDBDT05fVE1SME9OID0gb2ZmDQoJCQkJCWlzcl9zdGF0ZSA9IFNUX0hBTFQNCgkJ CQkJcmNfcmVjZWl2ZV9jb21wbGV0ZSA9IHRydWUNCgkJCQllbmQgaWYNCgkJCWVuZCBibG9jaw0K DQoJCQlTVF9FUlJPUjogYmxvY2sNCgkJCQlkZWJ1Z193b3JkKDB4REVBRCkNCgkJCQlpc3Jfc3Rh dGUgPSBTVF9IQUxUDQoJCQkJcmNfcmVjZWl2ZV9jb21wbGV0ZSA9IHRydWUNCgkJCWVuZCBibG9j aw0KCQllbmQgY2FzZQ0KCWVuZCBpZg0KZW5kIHByb2NlZHVyZQ0KDQoNCi0tIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQotLSBNQUlOIENPREUNCi0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCi0tIHNldCB1cCBw aW5zDQpQT1JUQSA9IDANClBPUlRCID0gMA0KZW5hYmxlX2RpZ2l0YWxfaW8oKQ0KUE9SVEJfZGly ZWN0aW9uID0gQUxMX09VVFBVVA0KcGluX0IwX2RpcmVjdGlvbiA9IGlucHV0DQpQT1JUQV9kaXJl Y3Rpb24gPSBBTExfT1VUUFVUDQoNCi0tIHNldCB1cCB0aW1lciAwDQpUMENPTiA9IDAJCQkJCQkJ LS0gY2xlYXIgdGltZXIgY29udHJvbCByZWdpc3Rlcg0KLS0gU2V0IFByZXNjYWxlciBBc3NpZ25t ZW50LiBQU0E9MSBhc3NpZ25zIHByZXNjYWxlciB0byBUTVIwLiBQU0E9MCBieXBhc3NlcyBpdC4N ClQwQ09OX1BTQSA9ICF0aW1lcl9wcmVzY2FsZXJfZW5hYmxlZA0KVDBDT05fVDBQUyA9IHRpbWVy X3ByZXNjYWxlcl9zZXR0aW5nDQpUTVIwTCA9IDAJCQkJCQkJLS0gY2xlYXIgdGltZXIgdmFsdWUN Cg0KLS0gc2V0IHVwIGludGVycnVwdHMgLS0gUkIwIGludGVycnVwdCwgSC0+TCBlZGdlDQpJTlRD T04yX0lOVEVERzAgPSBJUF9BQ1QJCQktLSBJTlQwIG9uIGFjdGl2ZS1nb2luZyBlZGdlDQpJTlRD T05fSU5UMElGID0gMAkJCQkJLS0gY2xlYXIgSU5UMCBpbnRlcnJ1cHQgZmxhZw0KSU5UQ09OX0lO VDBJRSA9IDEJCQkJCS0tIElOVDAgaW50ZXJydXB0IG9uDQpJTlRDT05fR0lFID0gMQkJCQkJCS0t IGdsb2JhbGx5IGVuYWJsZSBpbnRlcnJ1cHRzDQoNCmZvcmV2ZXIgbG9vcA0KCWlmIHJjX3JlY2Vp dmVfY29tcGxldGUgdGhlbg0KCQktLSBvdXRwdXQgZGF0YWJ1cnN0DQoJCS0tIFRPRE8NCg0KaWYg ZmFsc2UgdGhlbg0KCQlkZWJ1Z19ieXRlKGlzcl9scF9hY3RfbGVuKQ0KCQlkZWJ1Z19ieXRlKGlz cl9scF9pZGxlX2xlbikNCg0KCQlfdXNlY19kZWxheSg1MCkNCgkJZGVidWdfYnl0ZSh0X3JjNl9s ZWFkZXJfYWN0aXZlX2xvKQ0KCQlkZWJ1Z19ieXRlKHRfcmM2X2xlYWRlcl9hY3RpdmVfaGkpDQoN CgkJX3VzZWNfZGVsYXkoNTApDQoJCWRlYnVnX2J5dGUodF9yYzZfbGVhZGVyX2luYWN0aXZlX2xv KQ0KCQlkZWJ1Z19ieXRlKHRfcmM2X2xlYWRlcl9pbmFjdGl2ZV9oaSkNCmVuZCBpZg0KCQlkZWJ1 ZyA9IDANCg0KCQlfdXNlY19kZWxheSg1MDApDQoNCgkJZGVidWdfYnl0ZShyYzZfdG9nZ2xlKQ0K CQlkZWJ1Z19ieXRlKHJjNl9tb2RlKQ0KCQlkZWJ1Z193b3JkKHJjNl9hZGRyZXNzKQ0KCQlkZWJ1 Z193b3JkKHJjNl9jb21tYW5kKQ0KDQoJCS0tIHdhaXQgZm9yIG5leHQgZGF0YWJ1cnN0DQoJCS0t IF91c2VjX2RlbGF5KDUwXzAwMCkNCgkJaXNyX3N0YXRlID0gU1RfV0FJVF9MRUFERVJfU1RBUlQN CgkJcmNfcmVjZWl2ZV9jb21wbGV0ZSA9IGZhbHNlDQoJZW5kIGlmDQplbmQgbG9vcA== --_003_4E84EFB64040405philpemmeuk_ Content-Type: text/plain; name="ATT00001.txt" Content-Description: ATT00001.txt Content-Disposition: attachment; filename="ATT00001.txt"; size=208; creation-date="Thu, 29 Sep 2011 15:27:59 GMT"; modification-date="Thu, 29 Sep 2011 15:27:59 GMT" Content-Transfer-Encoding: base64 LS0gDQpodHRwOi8vd3d3LnBpY2xpc3QuY29tIFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUNClZp ZXcvY2hhbmdlIHlvdXIgbWVtYmVyc2hpcCBvcHRpb25zIGF0DQpodHRwOi8vbWFpbG1hbi5taXQu ZWR1L21haWxtYW4vbGlzdGluZm8vcGljbGlzdA0K --_003_4E84EFB64040405philpemmeuk_-- .