Replied: Sat, 27 Sep 1997 00:41:05 -0400
Replied: "Ulrich.Windl@rz.uni-regensburg.de "
Replied: Fri, 26 Sep 1997 23:28:02 -0400
Replied: "Ulrich.Windl@rz.uni-regensburg.de "
Received: from mail.eecis.udel.edu by whimsy.udel.edu id aa00993;
          26 Sep 1997 03:09 EDT
Received: from ngate.ngate.uni-regensburg.de (ngate.rz.uni-regensburg.de [132.199.3.13])
	by rrzs2.rz.uni-regensburg.de (8.8.5/8.8.5) with SMTP id JAA06969
	for <stenn@whimsy.udel.edu>; Fri, 26 Sep 1997 09:08:58 +0200 (MET DST)
Received: from rz.uni-regensburg.de by ngate.ngate.uni-regensburg.de; Fri, 26 Sep 97 08:09 MET
Received: from rz.uni-regensburg.de by kgate.ngate.uni-regensburg.de; Fri, 26 Sep 97 07:08 GMT
Received: from localhost by rkdvmhp1.dvm.klinik.uni-regensburg.de with SMTP
	(1.40.112.8/16.2-961007-2) id AA122667724; Fri, 26 Sep 1997 09:08:44 +0200
Date: Fri, 26 Sep 1997 09:08:44 +0200 (MESZ)
From: Ulrich Windl <@rkdvmhp1.dvm.klinik.uni-regensburg.de:>
Reply-To: Ulrich.Windl@rz.uni-regensburg.de
To: Harlan Stenn <stenn@whimsy.udel.edu>
Subject: xntp patches
Message-Id: <Pine.HPP.3.96.970926085623.12041A-300000@rkdvmhp1.dvm.klinik.uni-regensburg.de>
X-Pgp-Key: 1024/E843660D: CF D7 43 A1 5A 49 14 25 7C 04 A0 6E 4C 3A AC 6D
Mime-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="759665152-851401618-875257724=:12041"

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

--759665152-851401618-875257724=:12041
Content-Type: TEXT/PLAIN; charset=US-ASCII

Harlan,

maybe you can remember yesterday's message about platform-specific port
initialization. Yesterday I debugged why ATOM won't work with Linux.

I found out that ntp_refclock.c contains a lot of specific stuff that does
not work correctly. For example there's a SYS_SOLARIS and a STREAM symbol
there that config.h does not know about. The file should be cleaned up.

For the meantime I added a one-liner in refclock_atom that will do it for
Linux (and maybe others too). Look for "Linux" in the patch.

I also included a patch from Frank kardel that fixes a buffer overflow in
the parse driver (I had reported several times). I use this patch with
3-5.90.2 for several weeks now and the overflow is gone. Frank wanted to
send you the patch, too, but maybe he was too busy...

Yesterday I reported anotherminor problem to Frank, but look at the output
first:

rkdvmhp1:windl(29) %  ntpq -c cl
status=0004 clk_okay, last_clk_propagation
device="Meinberg DCF PZF 535/TCXO",
timecode="\x0226.09.97; 5; 09:04:42;    S   \x03", poll=23359,
noreply=0, badformat=0, baddata=0, fudgetime1=1.953, fudgetime2=0.000,
stratum=0, refid=DCFp, flags=0,
refclock_time="b7d5dd0a.00000000  Fri, Sep 26 1997  9:04:42.000 (+0200)",
refclock_status="DST; TIME CODE; (LEAP INDICATION; ANTENNA)",
refclock_format="Meinberg Extended",
refclock_states="*NOMINAL: 24d+12:17:46 (70.83%); NO RESPONSE: 00:00:01 (0.00%);
FAULT: 07:06:01 (0.85%); PROPAGATION DELAY: 9d+19:06:21 (28.30%);
ILLEGAL TIME: 00:01:04 (0.00%); running time: 34d+14:31:13"

All fields except the first are separated by a comma, and the values are
enclosed by double-quotes if it's a string. I wrote a CGI script to
monitor xntpd, and thus I recognized the inconsistency...

Regards,
Ulrich
P.S: Hope your mailer survives...

--759665152-851401618-875257724=:12041
Content-Type: TEXT/PLAIN; charset=ISO-8859-1; name=kardel-parse-patch
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.HPP.3.96.970926090843.12041B@rkdvmhp1.dvm.klinik.uni-regensburg.de>
Content-Description: avoid buffer overflowfor PARSE driver

SW5kZXg6IHJlZmNsb2NrX3BhcnNlLmMNCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NClJDUyBmaWxlOiAvc3JjL05UUC9SRVBPU0lUT1JZL3Y0L3hudHBkL3Jl
ZmNsb2NrX3BhcnNlLmMsdg0KcmV0cmlldmluZyByZXZpc2lvbiAzLjEwMQ0K
cmV0cmlldmluZyByZXZpc2lvbiAzLjEwMw0KZGlmZiAtYyAtcjMuMTAxIC1y
My4xMDMNCioqKiByZWZjbG9ja19wYXJzZS5jCTE5OTcvMDQvMTMgMTA6MDU6
MzcJMy4xMDENCi0tLSByZWZjbG9ja19wYXJzZS5jCTE5OTcvMDcvMTIgMTU6
MzU6MTYJMy4xMDMNCioqKioqKioqKioqKioqKg0KKioqIDEsNyAqKioqDQog
IC8qDQohICAqIC9zcmMvTlRQL1JFUE9TSVRPUlkvdjQveG50cGQvcmVmY2xv
Y2tfcGFyc2UuYyx2IDMuMTAxIDE5OTcvMDQvMTMgMTA6MDU6Mzcga2FyZGVs
IEV4cA0KICAgKg0KISAgKiByZWZjbG9ja19wYXJzZS5jLHYgMy4xMDEgMTk5
Ny8wNC8xMyAxMDowNTozNyBrYXJkZWwgRXhwDQogICAqDQogICAqIGdlbmVy
aWMgcmVmZXJlbmNlIGNsb2NrIGRyaXZlciBmb3IgcmVjZWl2ZXJzDQogICAq
DQotLS0gMSw3IC0tLS0NCiAgLyoNCiEgICogL3NyYy9OVFAvUkVQT1NJVE9S
WS92NC94bnRwZC9yZWZjbG9ja19wYXJzZS5jLHYgMy4xMDMgMTk5Ny8wNy8x
MiAxNTozNToxNiBrYXJkZWwgRXhwDQogICAqDQohICAqIHJlZmNsb2NrX3Bh
cnNlLmMsdiAzLjEwMyAxOTk3LzA3LzEyIDE1OjM1OjE2IGthcmRlbCBFeHAN
CiAgICoNCiAgICogZ2VuZXJpYyByZWZlcmVuY2UgY2xvY2sgZHJpdmVyIGZv
ciByZWNlaXZlcnMNCiAgICoNCioqKioqKioqKioqKioqKg0KKioqIDksMTUg
KioqKg0KICAgKiBhdmFpbGFibGUgYW5kIGNvbmZpZ3VyZWQuIEN1cnJlbnRs
eSB0aGUgU1RSRUFNUyBtb2R1bGUNCiAgICogaXMgb25seSBhdmFpbGFibGUg
Zm9yIFN1bnMgcnVubmluZyBTdW5PUyA0LnggYW5kIFN1bk9TNS54DQogICAq
DQohICAqIENvcHlyaWdodCAoYykgMTk4OSwxOTkwLDE5OTEsMTk5MiwxOTkz
LDE5OTQsMTk5NSwxOTk2LCAxOTk3IGJ5IEZyYW5rIEthcmRlbA0KICAgKiBG
cmllZHJpY2gtQWxleGFuZGVyIFVuaXZlcnNpdOR0IEVybGFuZ2VuLU78cm5i
ZXJnLCBHZXJtYW55DQogICAqDQogICAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0K
LS0tIDksMTUgLS0tLQ0KICAgKiBhdmFpbGFibGUgYW5kIGNvbmZpZ3VyZWQu
IEN1cnJlbnRseSB0aGUgU1RSRUFNUyBtb2R1bGUNCiAgICogaXMgb25seSBh
dmFpbGFibGUgZm9yIFN1bnMgcnVubmluZyBTdW5PUyA0LnggYW5kIFN1bk9T
NS54DQogICAqDQohICAqIENvcHlyaWdodCAoYykgMTk4OSwgMTk5MCwgMTk5
MSwgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NyBieSBGcmFu
ayBLYXJkZWwNCiAgICogRnJpZWRyaWNoLUFsZXhhbmRlciBVbml2ZXJzaXTk
dCBFcmxhbmdlbi1O/HJuYmVyZywgR2VybWFueQ0KICAgKg0KICAgKiBUaGlz
IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwNCioqKioqKioqKioqKioqKg0KKioqIDE0OCwxNTQg
KioqKg0KICAjaW5jbHVkZSAicGFyc2UuaCINCiAgDQogICNpZiAhZGVmaW5l
ZChOT19TQ0NTSUQpICYmICFkZWZpbmVkKGxpbnQpICYmICFkZWZpbmVkKF9f
R05VQ19fKQ0KISBzdGF0aWMgY2hhciByY3NpZFtdPSJyZWZjbG9ja19wYXJz
ZS5jLHYgMy4xMDEgMTk5Ny8wNC8xMyAxMDowNTozNyBrYXJkZWwgRXhwIjsN
CiAgI2VuZGlmDQogIA0KICAvKio9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NCi0tLSAxNDgsMTU0IC0tLS0NCiAgI2luY2x1ZGUgInBhcnNlLmgi
DQogIA0KICAjaWYgIWRlZmluZWQoTk9fU0NDU0lEKSAmJiAhZGVmaW5lZChs
aW50KSAmJiAhZGVmaW5lZChfX0dOVUNfXykNCiEgc3RhdGljIGNoYXIgcmNz
aWRbXT0icmVmY2xvY2tfcGFyc2UuYyx2IDMuMTAzIDE5OTcvMDcvMTIgMTU6
MzU6MTYga2FyZGVsIEV4cCI7DQogICNlbmRpZg0KICANCiAgLyoqPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQoqKioqKioqKioqKioqKioNCioq
KiAzNjIsMzY4ICoqKioNCiAgICAgKiBjbG9jayBzdGF0ZSBoYW5kbGluZy9y
ZXBvcnRpbmcNCiAgICAgKi8NCiAgICB1X2NoYXIJICAgICAgZmxhZ3M7CSAg
ICAgICAgLyogZmxhZ3MgKGxlYXBfY29udHJvbCkgKi8NCi0gICB1X2NoYXIg
ICAgICAgICAgICAgIGxhc3RldmVudDsgCS8qIGxhc3Qgbm90IE5PUk1BTCBz
dGF0dXMgKi8NCiAgICB1X2xvbmcJICAgICAgbGFzdGNoYW5nZTsgICAgICAg
LyogdGltZSAoeG50cCkgd2hlbiBsYXN0IHN0YXRlIGNoYW5nZSBhY2N1cmVk
ICovDQogICAgdV9sb25nCSAgICAgIHN0YXRldGltZVtDRVZOVF9NQVgrMV07
IC8qIGFjY3VtdWxhdGVkIHRpbWUgb2YgY2xvY2sgc3RhdGVzICovDQogICAg
c3RydWN0IGV2ZW50ICAgICAgICBzdGF0dGltZXI7ICAgICAgICAvKiBzdGF0
aXN0aWNzIHRpbWVyICovDQotLS0gMzYyLDM2NyAtLS0tDQoqKioqKioqKioq
KioqKioNCioqKiA0OTEsNDk4ICoqKioNCiAgI2RlZmluZSBEQ0ZQWkY1MzVP
Q1hPX0lGTEFHICAgICAgICAgTUJHX0lGTEFHDQogICNkZWZpbmUgRENGUFpG
NTM1T0NYT19PRkxBRyAgICAgICAgIE1CR19PRkxBRw0KICAjZGVmaW5lIERD
RlBaRjUzNU9DWE9fTEZMQUcgICAgICAgICBNQkdfTEZMQUcNCiEgI2RlZmlu
ZSBEQ0ZQWkY1MzVPQ1hPX1NBTVBMRVMJCSAgICA1DQohICNkZWZpbmUgRENG
UFpGNTM1T0NYT19LRUVQCSAgICAgICAgICAgIDMNCiAgDQogIC8qDQogICAq
IE1laW5iZXJnIEdQUzE2NiByZWNlaXZlcg0KLS0tIDQ5MCw0OTcgLS0tLQ0K
ICAjZGVmaW5lIERDRlBaRjUzNU9DWE9fSUZMQUcgICAgICAgICBNQkdfSUZM
QUcNCiAgI2RlZmluZSBEQ0ZQWkY1MzVPQ1hPX09GTEFHICAgICAgICAgTUJH
X09GTEFHDQogICNkZWZpbmUgRENGUFpGNTM1T0NYT19MRkxBRyAgICAgICAg
IE1CR19MRkxBRw0KISAjZGVmaW5lIERDRlBaRjUzNU9DWE9fU0FNUExFUwkJ
ICAgMzINCiEgI2RlZmluZSBEQ0ZQWkY1MzVPQ1hPX0tFRVAJICAgICAgICAg
ICAyMA0KICANCiAgLyoNCiAgICogTWVpbmJlcmcgR1BTMTY2IHJlY2VpdmVy
DQoqKioqKioqKioqKioqKioNCioqKiA1MTUsNTIyICoqKioNCiAgI2RlZmlu
ZSBHUFMxNjZfREFUQQkJTk9fREFUQQ0KICAjZGVmaW5lIEdQUzE2Nl9JRAkJ
R1BTX0lEDQogICNkZWZpbmUgR1BTMTY2X0ZPUk1BVAkJTk9fRk9STUFUDQoh
ICNkZWZpbmUgR1BTMTY2X1NBTVBMRVMJCTUNCiEgI2RlZmluZSBHUFMxNjZf
S0VFUAkJMw0KICANCiAgLyoNCiAgICogRUxWIERDRjcwMDAgV2FsbGNsb2Nr
LVJlY2VpdmVyL1N3aXRjaGluZyBDbG9jayAoS2l0KQ0KLS0tIDUxNCw1MjEg
LS0tLQ0KICAjZGVmaW5lIEdQUzE2Nl9EQVRBCQlOT19EQVRBDQogICNkZWZp
bmUgR1BTMTY2X0lECQlHUFNfSUQNCiAgI2RlZmluZSBHUFMxNjZfRk9STUFU
CQlOT19GT1JNQVQNCiEgI2RlZmluZSBHUFMxNjZfU0FNUExFUwkJMzINCiEg
I2RlZmluZSBHUFMxNjZfS0VFUAkJMjANCiAgDQogIC8qDQogICAqIEVMViBE
Q0Y3MDAwIFdhbGxjbG9jay1SZWNlaXZlci9Td2l0Y2hpbmcgQ2xvY2sgKEtp
dCkNCioqKioqKioqKioqKioqKg0KKioqIDE2MDUsMTYxMSAqKioqDQogIHN0
cmVhbV9wb2xsKHBhcnNlKQ0KICAgICAgIHN0cnVjdCBwYXJzZXVuaXQgKnBh
cnNlOw0KICB7DQohICAgcmVnaXN0ZXIgaW50IGZkLCBpLCBydGM7DQogICAg
ZmRfc2V0IGZkbWFzazsNCiAgICBzdHJ1Y3QgdGltZXZhbCB0aW1lb3V0LCBz
dGFydHRpbWUsIGN1cnRpbWUsIHNlbGVjdHRpbWU7DQogICNpZmRlZiBIQVZF
X0dFVENMT0NLDQotLS0gMTYwNCwxNjEwIC0tLS0NCiAgc3RyZWFtX3BvbGwo
cGFyc2UpDQogICAgICAgc3RydWN0IHBhcnNldW5pdCAqcGFyc2U7DQogIHsN
CiEgICBpbnQgZmQsIGksIHJ0YzsNCiAgICBmZF9zZXQgZmRtYXNrOw0KICAg
IHN0cnVjdCB0aW1ldmFsIHRpbWVvdXQsIHN0YXJ0dGltZSwgY3VydGltZSwg
c2VsZWN0dGltZTsNCiAgI2lmZGVmIEhBVkVfR0VUQ0xPQ0sNCioqKioqKioq
KioqKioqKg0KKioqIDE5OTQsMjAwMSAqKioqDQogICAgICAgc3RydWN0IHJl
Y3ZidWYgKnJidWZwOw0KICB7DQogICAgc3RydWN0IHBhcnNldW5pdCAqcGFy
c2UgPSAoc3RydWN0IHBhcnNldW5pdCAqKXJidWZwLT5yZWN2X3NyY2Nsb2Nr
Ow0KISAgIHJlZ2lzdGVyIGludCBjb3VudDsNCiEgICByZWdpc3RlciB1bnNp
Z25lZCBjaGFyICpzOw0KICAgIHRpbWVzdGFtcF90IHRzOw0KICANCiAgICBp
ZiAoIXBhcnNlLT5wZWVyKQ0KLS0tIDE5OTMsMjAwMCAtLS0tDQogICAgICAg
c3RydWN0IHJlY3ZidWYgKnJidWZwOw0KICB7DQogICAgc3RydWN0IHBhcnNl
dW5pdCAqcGFyc2UgPSAoc3RydWN0IHBhcnNldW5pdCAqKXJidWZwLT5yZWN2
X3NyY2Nsb2NrOw0KISAgIGludCBjb3VudDsNCiEgICB1bnNpZ25lZCBjaGFy
ICpzOw0KICAgIHRpbWVzdGFtcF90IHRzOw0KICANCiAgICBpZiAoIXBhcnNl
LT5wZWVyKQ0KKioqKioqKioqKioqKioqDQoqKiogMjA1OCwyMDY0ICoqKioN
CiAgbG9jYWxfcG9sbChwYXJzZSkNCiAgICAgICBzdHJ1Y3QgcGFyc2V1bml0
ICpwYXJzZTsNCiAgew0KISAgIHJlZ2lzdGVyIGludCBmZCwgaSwgcnRjOw0K
ICAgIGZkX3NldCBmZG1hc2s7DQogICAgc3RydWN0IHRpbWV2YWwgdGltZW91
dCwgc3RhcnR0aW1lLCBjdXJ0aW1lLCBzZWxlY3R0aW1lOw0KICAjaWZkZWYg
SEFWRV9HRVRDTE9DSw0KLS0tIDIwNTcsMjA2MyAtLS0tDQogIGxvY2FsX3Bv
bGwocGFyc2UpDQogICAgICAgc3RydWN0IHBhcnNldW5pdCAqcGFyc2U7DQog
IHsNCiEgICBpbnQgZmQsIGksIHJ0YzsNCiAgICBmZF9zZXQgZmRtYXNrOw0K
ICAgIHN0cnVjdCB0aW1ldmFsIHRpbWVvdXQsIHN0YXJ0dGltZSwgY3VydGlt
ZSwgc2VsZWN0dGltZTsNCiAgI2lmZGVmIEhBVkVfR0VUQ0xPQ0sNCioqKioq
KioqKioqKioqKg0KKioqIDIxODAsMjE4NiAqKioqDQogIAl7DQogIAkgIGNo
YXIgaW5idWZbMjU2XTsNCiAgDQohIAkgIHJlZ2lzdGVyIGNoYXIgKnMgPSBp
bmJ1ZjsNCiAgDQogIAkgIHJ0YyA9IGkgPSByZWFkKGZkLCBpbmJ1Ziwgc2l6
ZW9mKGluYnVmKSk7DQogIA0KLS0tIDIxNzksMjE4NSAtLS0tDQogIAl7DQog
IAkgIGNoYXIgaW5idWZbMjU2XTsNCiAgDQohIAkgIGNoYXIgKnMgPSBpbmJ1
ZjsNCiAgDQogIAkgIHJ0YyA9IGkgPSByZWFkKGZkLCBpbmJ1Ziwgc2l6ZW9m
KGluYnVmKSk7DQogIA0KKioqKioqKioqKioqKioqDQoqKiogMjIxNywyMjIz
ICoqKioNCiAgaW5pdF9pb2JpbmRpbmcocGFyc2UpDQogICAgICAgc3RydWN0
IHBhcnNldW5pdCAqcGFyc2U7DQogIHsNCiEgICByZWdpc3RlciBiaW5kX3Qg
KmIgPSBpb19iaW5kaW5nczsNCiAgDQogICAgd2hpbGUgKGItPmJkX2Rlc2Ny
aXB0aW9uICE9IChjaGFyICopMCkNCiAgICAgIHsNCi0tLSAyMjE2LDIyMjIg
LS0tLQ0KICBpbml0X2lvYmluZGluZyhwYXJzZSkNCiAgICAgICBzdHJ1Y3Qg
cGFyc2V1bml0ICpwYXJzZTsNCiAgew0KISAgIGJpbmRfdCAqYiA9IGlvX2Jp
bmRpbmdzOw0KICANCiAgICB3aGlsZSAoYi0+YmRfZGVzY3JpcHRpb24gIT0g
KGNoYXIgKikwKQ0KICAgICAgew0KKioqKioqKioqKioqKioqDQoqKiogMjI5
MywyMjk5ICoqKioNCiAgDQogICAgaWYgKHN0YXRlICYgKFBBUlNFQl9TX0xF
QVB8UEFSU0VCX1NfQU5URU5OQXxQQVJTRUJfU19QUFN8UEFSU0VCX1NfUE9T
SVRJT04pKQ0KICAgICAgew0KISAgICAgICByZWdpc3RlciBjaGFyICpzLCAq
dDsNCiAgDQogICAgICAgIGlmIChidWZmZXJbMF0pDQogIAlzdHJjYXQoYnVm
ZmVyLCAiOyAiKTsNCi0tLSAyMjkyLDIyOTggLS0tLQ0KICANCiAgICBpZiAo
c3RhdGUgJiAoUEFSU0VCX1NfTEVBUHxQQVJTRUJfU19BTlRFTk5BfFBBUlNF
Ql9TX1BQU3xQQVJTRUJfU19QT1NJVElPTikpDQogICAgICB7DQohICAgICAg
IGNoYXIgKnMsICp0Ow0KICANCiAgICAgICAgaWYgKGJ1ZmZlclswXSkNCiAg
CXN0cmNhdChidWZmZXIsICI7ICIpOw0KKioqKioqKioqKioqKioqDQoqKiog
MjM4NSwyMzkxICoqKioNCiAgICAgICAgeyBDRVZOVF9QUk9QLCAgICAiUFJP
UEFHQVRJT04gREVMQVkiIH0sDQogICAgICAgIHsgQ0VWTlRfQkFEREFURSwg
IklMTEVHQUwgREFURSIgfSwNCiAgICAgICAgeyBDRVZOVF9CQURUSU1FLCAi
SUxMRUdBTCBUSU1FIiB9LA0KISAgICAgICB7IH4wIH0NCiAgICAgIH07DQog
ICAgaW50IGk7DQogIA0KLS0tIDIzODQsMjM5MCAtLS0tDQogICAgICAgIHsg
Q0VWTlRfUFJPUCwgICAgIlBST1BBR0FUSU9OIERFTEFZIiB9LA0KICAgICAg
ICB7IENFVk5UX0JBRERBVEUsICJJTExFR0FMIERBVEUiIH0sDQogICAgICAg
IHsgQ0VWTlRfQkFEVElNRSwgIklMTEVHQUwgVElNRSIgfSwNCiEgICAgICAg
eyB+MFVMIH0NCiAgICAgIH07DQogICAgaW50IGk7DQogIA0KKioqKioqKioq
KioqKioqDQoqKiogMjQxNCwyNDI2ICoqKioNCiAgDQogIHN0YXRpYyBjaGFy
ICoNCiAgbWthc2NpaShidWZmZXIsIGJsZW4sIHNyYywgc3JjbGVuKQ0KISAg
IHJlZ2lzdGVyIGNoYXIgICpidWZmZXI7DQohICAgcmVnaXN0ZXIgbG9uZyAg
YmxlbjsNCiEgICByZWdpc3RlciBjaGFyICAqc3JjOw0KISAgIHJlZ2lzdGVy
IGxvbmcgIHNyY2xlbjsNCiAgew0KISAgIHJlZ2lzdGVyIGNoYXIgKmIgICAg
PSBidWZmZXI7DQohICAgcmVnaXN0ZXIgY2hhciAqZW5kYiA9IChjaGFyICop
MDsNCiAgDQogICAgaWYgKGJsZW4gPCA0KQ0KICAgICAgcmV0dXJuIChjaGFy
ICopMDsJCS8qIGRvbid0IGJvdGhlciB3aXRoIG1pbmkgYnVmZmVycyAqLw0K
LS0tIDI0MTMsMjQyNSAtLS0tDQogIA0KICBzdGF0aWMgY2hhciAqDQogIG1r
YXNjaWkoYnVmZmVyLCBibGVuLCBzcmMsIHNyY2xlbikNCiEgICBjaGFyICAq
YnVmZmVyOw0KISAgIGxvbmcgIGJsZW47DQohICAgY2hhciAgKnNyYzsNCiEg
ICBsb25nICBzcmNsZW47DQogIHsNCiEgICBjaGFyICpiICAgID0gYnVmZmVy
Ow0KISAgIGNoYXIgKmVuZGIgPSAoY2hhciAqKTA7DQogIA0KICAgIGlmIChi
bGVuIDwgNCkNCiAgICAgIHJldHVybiAoY2hhciAqKTA7CQkvKiBkb24ndCBi
b3RoZXIgd2l0aCBtaW5pIGJ1ZmZlcnMgKi8NCioqKioqKioqKioqKioqKg0K
KioqIDI1MDcsMjUxNSAqKioqDQogICAqLw0KICBzdGF0aWMgdm9pZA0KICBw
YXJzZV9zdGF0aXN0aWNzKHBhcnNlKQ0KISAgIHJlZ2lzdGVyIHN0cnVjdCBw
YXJzZXVuaXQgKnBhcnNlOw0KICB7DQohICAgcmVnaXN0ZXIgaW50IGk7DQog
IA0KICAgIE5MT0coTkxPR19DTE9DS1NUQVRJU1QpIC8qIGNvbmRpdGlvbmFs
IGlmIGNsYXVzZSBmb3IgY29uZGl0aW9uYWwgc3lzbG9nICovDQogICAgICB7
DQotLS0gMjUwNiwyNTE0IC0tLS0NCiAgICovDQogIHN0YXRpYyB2b2lkDQog
IHBhcnNlX3N0YXRpc3RpY3MocGFyc2UpDQohICAgc3RydWN0IHBhcnNldW5p
dCAqcGFyc2U7DQogIHsNCiEgICBpbnQgaTsNCiAgDQogICAgTkxPRyhOTE9H
X0NMT0NLU1RBVElTVCkgLyogY29uZGl0aW9uYWwgaWYgY2xhdXNlIGZvciBj
b25kaXRpb25hbCBzeXNsb2cgKi8NCiAgICAgIHsNCioqKioqKioqKioqKioq
Kg0KKioqIDI1MjMsMjUzMCAqKioqDQogIA0KICAgICAgICBmb3IgKGkgPSAw
OyBpIDw9IENFVk5UX01BWDsgaSsrKQ0KICAJew0KISAJICByZWdpc3RlciB1
X2xvbmcgc3RpbWU7DQohIAkgIHJlZ2lzdGVyIHVfbG9uZyBwZXJjZW50LCBk
aXYgPSBjdXJyZW50X3RpbWUgLSBwYXJzZS0+Z2VuZXJpYy0+dGltZXN0YXJ0
ZWQ7DQogIA0KICAJICBwZXJjZW50ID0gc3RpbWUgPSBQQVJTRV9TVEFURVRJ
TUUocGFyc2UsIGkpOw0KICANCi0tLSAyNTIyLDI1MjkgLS0tLQ0KICANCiAg
ICAgICAgZm9yIChpID0gMDsgaSA8PSBDRVZOVF9NQVg7IGkrKykNCiAgCXsN
CiEgCSAgdV9sb25nIHN0aW1lOw0KISAJICB1X2xvbmcgcGVyY2VudCwgZGl2
ID0gY3VycmVudF90aW1lIC0gcGFyc2UtPmdlbmVyaWMtPnRpbWVzdGFydGVk
Ow0KICANCiAgCSAgcGVyY2VudCA9IHN0aW1lID0gUEFSU0VfU1RBVEVUSU1F
KHBhcnNlLCBpKTsNCiAgDQoqKioqKioqKioqKioqKioNCioqKiAyNTU0LDI1
NjIgKioqKg0KICAgKi8NCiAgc3RhdGljIHZvaWQNCiAgY3BhcnNlX3N0YXRp
c3RpY3MocGVlcikNCiEgICByZWdpc3RlciBzdHJ1Y3QgcGVlciAqcGVlcjsN
CiAgew0KISAgIHJlZ2lzdGVyIHN0cnVjdCBwYXJzZXVuaXQgKnBhcnNlID0g
KHN0cnVjdCBwYXJzZXVuaXQgKilwZWVyOw0KICANCiAgICBwYXJzZV9zdGF0
aXN0aWNzKHBhcnNlKTsNCiAgICBwYXJzZS0+c3RhdHRpbWVyLmV2ZW50X3Rp
bWUgICAgPSBjdXJyZW50X3RpbWUgKyBQQVJTRVNUQVRJU1RJQ1M7DQotLS0g
MjU1MywyNTYxIC0tLS0NCiAgICovDQogIHN0YXRpYyB2b2lkDQogIGNwYXJz
ZV9zdGF0aXN0aWNzKHBlZXIpDQohICAgc3RydWN0IHBlZXIgKnBlZXI7DQog
IHsNCiEgICBzdHJ1Y3QgcGFyc2V1bml0ICpwYXJzZSA9IChzdHJ1Y3QgcGFy
c2V1bml0ICopcGVlcjsNCiAgDQogICAgcGFyc2Vfc3RhdGlzdGljcyhwYXJz
ZSk7DQogICAgcGFyc2UtPnN0YXR0aW1lci5ldmVudF90aW1lICAgID0gY3Vy
cmVudF90aW1lICsgUEFSU0VTVEFUSVNUSUNTOw0KKioqKioqKioqKioqKioq
DQoqKiogMjU4NSwyNTkxICoqKioNCiAgICAgICBpbnQgdW5pdDsNCiAgICAg
ICBzdHJ1Y3QgcGVlciAqcGVlcjsNCiAgew0KISAgIHJlZ2lzdGVyIHN0cnVj
dCBwYXJzZXVuaXQgKnBhcnNlOw0KICANCiAgICB1bml0ID0gQ0xLX1VOSVQo
cGVlcik7DQogIAkNCi0tLSAyNTg0LDI1OTAgLS0tLQ0KICAgICAgIGludCB1
bml0Ow0KICAgICAgIHN0cnVjdCBwZWVyICpwZWVyOw0KICB7DQohICAgc3Ry
dWN0IHBhcnNldW5pdCAqcGFyc2U7DQogIA0KICAgIHVuaXQgPSBDTEtfVU5J
VChwZWVyKTsNCiAgCQ0KKioqKioqKioqKioqKioqDQoqKiogMzA1NSwzMDYx
ICoqKioNCiAgCWludCB1bml0Ow0KICAJc3RydWN0IHBlZXIgKnBlZXI7DQog
IHsNCiEgICByZWdpc3RlciBzdHJ1Y3QgcGFyc2V1bml0ICpwYXJzZTsNCiAg
DQogICAgdW5pdCA9IENMS19VTklUKHBlZXIpOw0KICANCi0tLSAzMDU0LDMw
NjAgLS0tLQ0KICAJaW50IHVuaXQ7DQogIAlzdHJ1Y3QgcGVlciAqcGVlcjsN
CiAgew0KISAgIHN0cnVjdCBwYXJzZXVuaXQgKnBhcnNlOw0KICANCiAgICB1
bml0ID0gQ0xLX1VOSVQocGVlcik7DQogIA0KKioqKioqKioqKioqKioqDQoq
KiogMzEyMSwzMTI2ICoqKioNCi0tLSAzMTIwLDMxMjcgLS0tLQ0KICAgIFBB
UlNFX1BPTEwocGFyc2UpOw0KICB9DQogIA0KKyAjZGVmaW5lIExFTl9TVEFU
RVMgMzAwCQkvKiBsZW5ndGggb2Ygc3RhdGUgc3RyaW5nICovDQorIA0KICAv
Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tDQogICAqIHBhcnNlX2NvbnRyb2wgLSBzZXQgZnVkZ2UgZmFjdG9y
cywgcmV0dXJuIHN0YXRpc3RpY3MNCiAgICovDQoqKioqKioqKioqKioqKioN
CioqKiAzMTMwLDMxMzkgKioqKg0KICAgIHN0cnVjdCByZWZjbG9ja3N0YXQg
KmluOw0KICAgIHN0cnVjdCByZWZjbG9ja3N0YXQgKm91dDsNCiAgew0KISAg
IHJlZ2lzdGVyIHN0cnVjdCBwYXJzZXVuaXQgKnBhcnNlOw0KICAgIHBhcnNl
Y3RsX3QgdG1wY3RsOw0KICAgIHVfbG9uZyB0eXBlOw0KICAgIHN0YXRpYyBj
aGFyIG91dHN0YXR1c1s0MDBdOwkvKiBzdGF0dXMgb3V0cHV0IGJ1ZmZlciAq
Lw0KICANCiAgICBpZiAob3V0KQ0KICAgICAgew0KLS0tIDMxMzEsMzE0MSAt
LS0tDQogICAgc3RydWN0IHJlZmNsb2Nrc3RhdCAqaW47DQogICAgc3RydWN0
IHJlZmNsb2Nrc3RhdCAqb3V0Ow0KICB7DQohICAgc3RydWN0IHBhcnNldW5p
dCAqcGFyc2U7DQogICAgcGFyc2VjdGxfdCB0bXBjdGw7DQogICAgdV9sb25n
IHR5cGU7DQogICAgc3RhdGljIGNoYXIgb3V0c3RhdHVzWzQwMF07CS8qIHN0
YXR1cyBvdXRwdXQgYnVmZmVyICovDQorICAgY2hhciAqc3RhcnQ7DQogIA0K
ICAgIGlmIChvdXQpDQogICAgICB7DQoqKioqKioqKioqKioqKioNCioqKiAz
MTc2LDMxODcgKioqKg0KICANCiAgICBpZiAob3V0KQ0KICAgICAgew0KISAg
ICAgICByZWdpc3RlciB1X2xvbmcgc3VtID0gMDsNCiEgICAgICAgcmVnaXN0
ZXIgY2hhciAqdCwgKnR0Ow0KISAgICAgICByZWdpc3RlciBzdHJ1Y3QgdG0g
KnRtOw0KISAgICAgICByZWdpc3RlciBzaG9ydCB1dGNvZmY7DQohICAgICAg
IHJlZ2lzdGVyIGNoYXIgc2lnbjsNCiEgICAgICAgcmVnaXN0ZXIgaW50IGk7
DQogICAgICAgIHRpbWVfdCB0aW07DQogIA0KICAgICAgICBvdXRzdGF0dXNb
MF0gPSAnXDAnOw0KLS0tIDMxNzgsMzE4OSAtLS0tDQogIA0KICAgIGlmIChv
dXQpDQogICAgICB7DQohICAgICAgIHVfbG9uZyBzdW0gPSAwOw0KISAgICAg
ICBjaGFyICp0LCAqdHQ7DQohICAgICAgIHN0cnVjdCB0bSAqdG07DQohICAg
ICAgIHNob3J0IHV0Y29mZjsNCiEgICAgICAgY2hhciBzaWduOw0KISAgICAg
ICBpbnQgaTsNCiAgICAgICAgdGltZV90IHRpbTsNCiAgDQogICAgICAgIG91
dHN0YXR1c1swXSA9ICdcMCc7DQoqKioqKioqKioqKioqKioNCioqKiAzMzA0
LDMzMTkgKioqKg0KICAgICAgICAgKiBnYXRoZXIgc3RhdGUgc3RhdGlzdGlj
cw0KICAgICAgICAgKi8NCiAgDQohICAgICAgIHR0ID0gYWRkX3Zhcigmb3V0
LT5rdl9saXN0LCAyMDAsIFJPfERFRik7DQogICAgICAgIHN0cmNweSh0dCwg
InJlZmNsb2NrX3N0YXRlcz1cIiIpOw0KICAgICAgICB0dCArPSBzdHJsZW4o
dHQpOw0KICANCiAgICAgICAgZm9yIChpID0gMDsgaSA8PSBDRVZOVF9NQVg7
IGkrKykNCiAgCXsNCiEgCSAgcmVnaXN0ZXIgdV9sb25nIHN0aW1lOw0KISAJ
ICByZWdpc3RlciB1X2xvbmcgZGl2ID0gY3VycmVudF90aW1lIC0gcGFyc2Ut
PmdlbmVyaWMtPnRpbWVzdGFydGVkOw0KISAJICByZWdpc3RlciB1X2xvbmcg
cGVyY2VudDsNCiEgCQ0KICAJICBwZXJjZW50ID0gc3RpbWUgPSBQQVJTRV9T
VEFURVRJTUUocGFyc2UsIGkpOw0KICANCiAgCSAgd2hpbGUgKCgodV9sb25n
KSh+MCkgLyAxMDAwMCkgPCBwZXJjZW50KQ0KLS0tIDMzMDYsMzMyMSAtLS0t
DQogICAgICAgICAqIGdhdGhlciBzdGF0ZSBzdGF0aXN0aWNzDQogICAgICAg
ICAqLw0KICANCiEgICAgICAgc3RhcnQgPSB0dCA9IGFkZF92YXIoJm91dC0+
a3ZfbGlzdCwgTEVOX1NUQVRFUywgUk98REVGKTsNCiAgICAgICAgc3RyY3B5
KHR0LCAicmVmY2xvY2tfc3RhdGVzPVwiIik7DQogICAgICAgIHR0ICs9IHN0
cmxlbih0dCk7DQogIA0KICAgICAgICBmb3IgKGkgPSAwOyBpIDw9IENFVk5U
X01BWDsgaSsrKQ0KICAJew0KISAJICB1X2xvbmcgc3RpbWU7DQohIAkgIHVf
bG9uZyBkaXYgPSBjdXJyZW50X3RpbWUgLSBwYXJzZS0+Z2VuZXJpYy0+dGlt
ZXN0YXJ0ZWQ7DQohIAkgIHVfbG9uZyBwZXJjZW50Ow0KISANCiAgCSAgcGVy
Y2VudCA9IHN0aW1lID0gUEFSU0VfU1RBVEVUSU1FKHBhcnNlLCBpKTsNCiAg
DQogIAkgIHdoaWxlICgoKHVfbG9uZykofjApIC8gMTAwMDApIDwgcGVyY2Vu
dCkNCioqKioqKioqKioqKioqKg0KKioqIDMzMjksMzM0MiAqKioqDQogIA0K
ICAJICBpZiAoc3RpbWUpDQogIAkgICAgew0KISAJICAgICAgc3ByaW50Zih0
dCwgIiVzJXMlczogJXMgKCVkLiUwMmQlJSkiLA0KICAJCSAgICAgIHN1bSA/
ICI7ICIgOiAiIiwNCiAgICAgICAgICAgICAgICAgICAgICAgIChwYXJzZS0+
Z2VuZXJpYy0+Y3VycmVudHN0YXR1cyA9PSBpKSA/ICIqIiA6ICIiLA0KICAJ
CSAgICAgIGNsb2Nrc3RhdHVzKGkpLA0KICAJCSAgICAgIGxfbWt0aW1lKHN0
aW1lKSwNCiAgCQkgICAgICAoaW50KShwZXJjZW50IC8gMTAwKSwgKGludCko
cGVyY2VudCAlIDEwMCkpOw0KICAJICAgICAgc3VtICs9IHN0aW1lOw0KLSAJ
ICAgICAgdHQgICs9IHN0cmxlbih0dCk7DQogIAkgICAgfQ0KICAJfQ0KICAN
Ci0tLSAzMzMxLDMzNTEgLS0tLQ0KICANCiAgCSAgaWYgKHN0aW1lKQ0KICAJ
ICAgIHsNCiEgCSAgICAgIGNoYXIgaXRlbVs4MF07DQohIAkgICAgICBpbnQg
Y291bnQ7DQohIAkgICAgICANCiEgCSAgICAgIHNwcmludGYoaXRlbSwgIiVz
JXMlczogJXMgKCVkLiUwMmQlJSkiLA0KICAJCSAgICAgIHN1bSA/ICI7ICIg
OiAiIiwNCiAgICAgICAgICAgICAgICAgICAgICAgIChwYXJzZS0+Z2VuZXJp
Yy0+Y3VycmVudHN0YXR1cyA9PSBpKSA/ICIqIiA6ICIiLA0KICAJCSAgICAg
IGNsb2Nrc3RhdHVzKGkpLA0KICAJCSAgICAgIGxfbWt0aW1lKHN0aW1lKSwN
CiAgCQkgICAgICAoaW50KShwZXJjZW50IC8gMTAwKSwgKGludCkocGVyY2Vu
dCAlIDEwMCkpOw0KKyAJICAgICAgaWYgKChjb3VudCA9IHN0cmxlbihpdGVt
KSkgPCAoTEVOX1NUQVRFUyAtIDQwIC0gKHR0IC0gc3RhcnQpKSkNCisgCQl7
DQorIAkJICBzdHJjcHkodHQsIGl0ZW0pOw0KKyAJCSAgdHQgICs9IGNvdW50
Ow0KKyAJCX0NCiAgCSAgICAgIHN1bSArPSBzdGltZTsNCiAgCSAgICB9DQog
IAl9DQogIA0KKioqKioqKioqKioqKioqDQoqKiogMzM0OSwzMzU1ICoqKioN
CiAgICAgICAgc3ByaW50Zih0dCwgInJlZmNsb2NrX2lvbW9kZT1cIiVzXCIi
LCBwYXJzZS0+YmluZGluZy0+YmRfZGVzY3JpcHRpb24pOw0KICANCiAgICAg
ICAgdHQgPSBhZGRfdmFyKCZvdXQtPmt2X2xpc3QsIDEyOCwgUk8pOw0KISAg
ICAgICBzcHJpbnRmKHR0LCAicmVmY2xvY2tfZHJpdmVyX3ZlcnNpb249XCJy
ZWZjbG9ja19wYXJzZS5jLHYgMy4xMDEgMTk5Ny8wNC8xMyAxMDowNTozNyBr
YXJkZWwgRXhwXCIiKTsNCiAgDQogICAgICAgIG91dC0+bGVuY29kZSAgICAg
ICA9IHN0cmxlbihvdXRzdGF0dXMpOw0KICAgICAgICBvdXQtPmxhc3Rjb2Rl
ICAgICAgPSBvdXRzdGF0dXM7DQotLS0gMzM1OCwzMzY0IC0tLS0NCiAgICAg
ICAgc3ByaW50Zih0dCwgInJlZmNsb2NrX2lvbW9kZT1cIiVzXCIiLCBwYXJz
ZS0+YmluZGluZy0+YmRfZGVzY3JpcHRpb24pOw0KICANCiAgICAgICAgdHQg
PSBhZGRfdmFyKCZvdXQtPmt2X2xpc3QsIDEyOCwgUk8pOw0KISAgICAgICBz
cHJpbnRmKHR0LCAicmVmY2xvY2tfZHJpdmVyX3ZlcnNpb249XCJyZWZjbG9j
a19wYXJzZS5jLHYgMy4xMDMgMTk5Ny8wNy8xMiAxNTozNToxNiBrYXJkZWwg
RXhwXCIiKTsNCiAgDQogICAgICAgIG91dC0+bGVuY29kZSAgICAgICA9IHN0
cmxlbihvdXRzdGF0dXMpOw0KICAgICAgICBvdXQtPmxhc3Rjb2RlICAgICAg
PSBvdXRzdGF0dXM7DQoqKioqKioqKioqKioqKioNCioqKiAzMzgwLDMzODYg
KioqKg0KICAgICAgICANCiAgICAgICAgaWYgKGV2ZW50ICE9IENFVk5UX05P
TUlOQUwpDQogIAl7DQohIAkgIHBhcnNlLT5sYXN0ZXZlbnQgPSBwYXJzZS0+
Z2VuZXJpYy0+Y3VycmVudHN0YXR1czsNCiAgCX0NCiAgICAgICAgZWxzZQ0K
ICAJew0KLS0tIDMzODksMzM5NSAtLS0tDQogICAgICAgIA0KICAgICAgICBp
ZiAoZXZlbnQgIT0gQ0VWTlRfTk9NSU5BTCkNCiAgCXsNCiEgCSAgcGFyc2Ut
PmdlbmVyaWMtPmxhc3RldmVudCA9IHBhcnNlLT5nZW5lcmljLT5jdXJyZW50
c3RhdHVzOw0KICAJfQ0KICAgICAgICBlbHNlDQogIAl7DQoqKioqKioqKioq
KioqKioNCioqKiAzNDI4LDM0MzQgKioqKg0KICAgICAqLw0KICAgIGlmIChw
YXJzZS0+bGFzdHN0YXR1cyAhPSBwYXJzZXRpbWUtPnBhcnNlX3N0YXR1cykN
CiAgICAgIHsNCiEgICAgICAgY2hhciBidWZmZXJbMjAwXTsNCiAgDQogICAg
ICAgIE5MT0coTkxPR19DTE9DS0lORk8pIC8qIGNvbmRpdGlvbmFsIGlmIGNs
YXVzZSBmb3IgY29uZGl0aW9uYWwgc3lzbG9nICovDQogIAltc3lzbG9nKExP
R19XQVJOSU5HLCAiUEFSU0UgcmVjZWl2ZXIgIyVkOiBjb252ZXJzaW9uIHN0
YXR1cyBcIiVzXCIiLA0KLS0tIDM0MzcsMzQ0MyAtLS0tDQogICAgICovDQog
ICAgaWYgKHBhcnNlLT5sYXN0c3RhdHVzICE9IHBhcnNldGltZS0+cGFyc2Vf
c3RhdHVzKQ0KICAgICAgew0KISAgICAgICBjaGFyIGJ1ZmZlcls0MDBdOw0K
ICANCiAgICAgICAgTkxPRyhOTE9HX0NMT0NLSU5GTykgLyogY29uZGl0aW9u
YWwgaWYgY2xhdXNlIGZvciBjb25kaXRpb25hbCBzeXNsb2cgKi8NCiAgCW1z
eXNsb2coTE9HX1dBUk5JTkcsICJQQVJTRSByZWNlaXZlciAjJWQ6IGNvbnZl
cnNpb24gc3RhdHVzIFwiJXNcIiIsDQoqKioqKioqKioqKioqKioNCioqKiAz
ODE5LDM4MjcgKioqKg0KICBwb2xsX2Rwb2xsKHBhcnNlKQ0KICAgIHN0cnVj
dCBwYXJzZXVuaXQgKnBhcnNlOw0KICB7DQohICAgcmVnaXN0ZXIgaW50IHJ0
YzsNCiEgICByZWdpc3RlciBjaGFyICpwcyA9ICgocG9sbF9pbmZvX3QgKilw
YXJzZS0+cGFyc2VfdHlwZS0+Y2xfZGF0YSktPnN0cmluZzsNCiEgICByZWdp
c3RlciBpbnQgICBjdCA9ICgocG9sbF9pbmZvX3QgKilwYXJzZS0+cGFyc2Vf
dHlwZS0+Y2xfZGF0YSktPmNvdW50Ow0KICANCiAgICBydGMgPSB3cml0ZShw
YXJzZS0+Z2VuZXJpYy0+aW8uZmQsIHBzLCBjdCk7DQogICAgaWYgKHJ0YyA8
IDApDQotLS0gMzgyOCwzODM2IC0tLS0NCiAgcG9sbF9kcG9sbChwYXJzZSkN
CiAgICBzdHJ1Y3QgcGFyc2V1bml0ICpwYXJzZTsNCiAgew0KISAgIGludCBy
dGM7DQohICAgY2hhciAqcHMgPSAoKHBvbGxfaW5mb190ICopcGFyc2UtPnBh
cnNlX3R5cGUtPmNsX2RhdGEpLT5zdHJpbmc7DQohICAgaW50ICAgY3QgPSAo
KHBvbGxfaW5mb190ICopcGFyc2UtPnBhcnNlX3R5cGUtPmNsX2RhdGEpLT5j
b3VudDsNCiAgDQogICAgcnRjID0gd3JpdGUocGFyc2UtPmdlbmVyaWMtPmlv
LmZkLCBwcywgY3QpOw0KICAgIGlmIChydGMgPCAwKQ0KKioqKioqKioqKioq
KioqDQoqKiogMzg0NSwzODUxICoqKioNCiAgcG9sbF9wb2xsKHBhcnNlKQ0K
ICAgIHN0cnVjdCBwYXJzZXVuaXQgKnBhcnNlOw0KICB7DQohICAgcmVnaXN0
ZXIgcG9sbF90aW1lcl90ICpwdCA9IChwb2xsX3RpbWVyX3QgKilwYXJzZS0+
bG9jYWxkYXRhOw0KICANCiAgICBwb2xsX2Rwb2xsKHBhcnNlKTsNCiAgDQot
LS0gMzg1NCwzODYwIC0tLS0NCiAgcG9sbF9wb2xsKHBhcnNlKQ0KICAgIHN0
cnVjdCBwYXJzZXVuaXQgKnBhcnNlOw0KICB7DQohICAgcG9sbF90aW1lcl90
ICpwdCA9IChwb2xsX3RpbWVyX3QgKilwYXJzZS0+bG9jYWxkYXRhOw0KICAN
CiAgICBwb2xsX2Rwb2xsKHBhcnNlKTsNCiAgDQoqKioqKioqKioqKioqKioN
CioqKiAzODYzLDM4NjkgKioqKg0KICBwb2xsX2luaXQocGFyc2UpDQogICAg
c3RydWN0IHBhcnNldW5pdCAqcGFyc2U7DQogIHsNCiEgICByZWdpc3RlciBw
b2xsX3RpbWVyX3QgKnB0Ow0KICANCiAgICBpZiAoKChwb2xsX2luZm9fdCAq
KXBhcnNlLT5wYXJzZV90eXBlLT5jbF9kYXRhKS0+cmF0ZSkNCiAgICAgIHsN
Ci0tLSAzODcyLDM4NzggLS0tLQ0KICBwb2xsX2luaXQocGFyc2UpDQogICAg
c3RydWN0IHBhcnNldW5pdCAqcGFyc2U7DQogIHsNCiEgICBwb2xsX3RpbWVy
X3QgKnB0Ow0KICANCiAgICBpZiAoKChwb2xsX2luZm9fdCAqKXBhcnNlLT5w
YXJzZV90eXBlLT5jbF9kYXRhKS0+cmF0ZSkNCiAgICAgIHsNCioqKioqKioq
KioqKioqKg0KKioqIDM5NTgsMzk2OSAqKioqDQogICAgICBjYXNlIENFVk5U
X0JBRFJFUExZOgkvKiByZXNldCBvbiBnYXJibGVkIGlucHV0ICovDQogICAg
ICBjYXNlIENFVk5UX1RJTUVPVVQ6CQkvKiByZXNldCBvbiBubyBpbnB1dCAq
Lw0KICAgICAgICB7DQohIAlyZWdpc3RlciBjaGFyICoqaXY7DQogIA0KICAJ
aXYgPSB0YWlwaW5pdDsNCiAgCXdoaWxlICgqaXYpDQogIAkgIHsNCiEgCSAg
ICByZWdpc3RlciBpbnQgcnRjID0gd3JpdGUocGFyc2UtPmdlbmVyaWMtPmlv
LmZkLCAqaXYsIHN0cmxlbigqaXYpKTsNCiAgCSAgICBpZiAocnRjIDwgMCkN
CiAgCSAgICAgIHsNCiAgCQltc3lzbG9nKExPR19FUlIsICJQQVJTRSByZWNl
aXZlciAjJWQ6IHRyaW1ibGV0YWlwX2V2ZW50OiBmYWlsZWQgdG8gc2VuZCBj
bWQgdG8gY2xvY2s6ICVtIiwgQ0xLX1VOSVQocGFyc2UtPnBlZXIpKTsNCi0t
LSAzOTY3LDM5NzggLS0tLQ0KICAgICAgY2FzZSBDRVZOVF9CQURSRVBMWToJ
LyogcmVzZXQgb24gZ2FyYmxlZCBpbnB1dCAqLw0KICAgICAgY2FzZSBDRVZO
VF9USU1FT1VUOgkJLyogcmVzZXQgb24gbm8gaW5wdXQgKi8NCiAgICAgICAg
ew0KISAJY2hhciAqKml2Ow0KICANCiAgCWl2ID0gdGFpcGluaXQ7DQogIAl3
aGlsZSAoKml2KQ0KICAJICB7DQohIAkgICAgaW50IHJ0YyA9IHdyaXRlKHBh
cnNlLT5nZW5lcmljLT5pby5mZCwgKml2LCBzdHJsZW4oKml2KSk7DQogIAkg
ICAgaWYgKHJ0YyA8IDApDQogIAkgICAgICB7DQogIAkJbXN5c2xvZyhMT0df
RVJSLCAiUEFSU0UgcmVjZWl2ZXIgIyVkOiB0cmltYmxldGFpcF9ldmVudDog
ZmFpbGVkIHRvIHNlbmQgY21kIHRvIGNsb2NrOiAlbSIsIENMS19VTklUKHBh
cnNlLT5wZWVyKSk7DQoqKioqKioqKioqKioqKioNCioqKiA0MjQ4LDQyNTMg
KioqKg0KLS0tIDQyNTcsNDI3MCAtLS0tDQogICAqIEhpc3Rvcnk6DQogICAq
DQogICAqIHJlZmNsb2NrX3BhcnNlLmMsdg0KKyAgKiBSZXZpc2lvbiAzLjEw
MyAgMTk5Ny8wNy8xMiAxNTozNToxNiAga2FyZGVsDQorICAqIGZpeGVkIGFs
bG9jYXRpb24gZmFpbHVyZSBmb3IgcmVmY2xvY2tfc3RhdGVzIHN0cmluZw0K
KyAgKg0KKyAgKiBSZXZpc2lvbiAzLjEwMiAgMTk5Ny8wNy8wNiAxNDoxMTo1
NSAga2FyZGVsDQorICAqIGluY3JlYWQgaW50ZXJuYWwgYnVmZmVycw0KKyAg
KiBjaGFuZ2VkIGZpbHRlciBwYXJhbXRlcnMgZm9yIFBaRjUzNSBhbmQgR1BT
MTY2IGZvciBtb3JlIGZpbHRlcmluZw0KKyAgKiByZW1vdmVkIG9sZCB1c2Vs
ZXNzIGNvZGUgZnJhZ21lbnRzDQorICAqDQogICAqIFJldmlzaW9uIDMuMTAx
ICAxOTk3LzA0LzEzIDEwOjA1OjM3ICBrYXJkZWwNCiAgICogMy41LjkwIHJl
Y29uY2lsYXRpb24NCiAgICoNCg==
--759665152-851401618-875257724=:12041
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="patch-xntp3-5.90.4"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.HPP.3.96.970926090844.12041C@rkdvmhp1.dvm.klinik.uni-regensburg.de>
Content-Description: debugging and PPS fix for refclock_atom

LS0tIHhudHAzLTUuOTAuNC94bnRwZC9yZWZjbG9ja19hdG9tLmN+CVdlZCBT
ZXAgMTAgMjA6MjI6MzkgMTk5Nw0KKysrIHhudHAzLTUuOTAuNC94bnRwZC9y
ZWZjbG9ja19hdG9tLmMJVGh1IFNlcCAyNSAyMTowNzo0OCAxOTk3DQpAQCAt
MTcyLDYgKzE3MiwxMCBAQA0KIAlyZWdpc3RlciBzdHJ1Y3QgYXRvbXVuaXQg
KnVwOw0KIAlzdHJ1Y3QgcmVmY2xvY2twcm9jICpwcDsNCiANCisjaWZkZWYJ
REVCVUcNCisJaWYgKGRlYnVnID4gMCkNCisJCXByaW50ZigiYXRvbV9zdGFy
dDogdW5pdCAlZFxuIiwgdW5pdCk7DQorI2VuZGlmDQogCS8qDQogCSAqIEFs
bG9jYXRlIGFuZCBpbml0aWFsaXplIHVuaXQgc3RydWN0dXJlDQogCSAqLw0K
QEAgLTIxOCw2ICsyMjIsMTAgQEANCiAJcmVnaXN0ZXIgc3RydWN0IGF0b211
bml0ICp1cDsNCiAJc3RydWN0IHJlZmNsb2NrcHJvYyAqcHA7DQogDQorI2lm
ZGVmCURFQlVHDQorCWlmIChkZWJ1ZyA+IDApDQorCQlwcmludGYoImF0b21f
c2h1dGRvd246IHVuaXQgJWRcbiIsIHVuaXQpOw0KKyNlbmRpZg0KIAlwcCA9
IHBlZXItPnByb2NwdHI7DQogCXVwID0gKHN0cnVjdCBhdG9tdW5pdCAqKXBw
LT51bml0cHRyOw0KIA0KQEAgLTI0NCw2ICsyNTIsMTAgQEANCiAJaW50IGk7
DQogCWxfZnAgbGZ0ZW1wOwkJLyogbF9mcCB0ZW1wcyAqLw0KIA0KKyNpZmRl
ZglERUJVRw0KKwlpZiAoZGVidWcgPiAyKQ0KKwkJcHJpbnRmKCJwcHNfc2Ft
cGxlOiBwb2xsY250ICVkXG4iLCB1cC0+cG9sbGNudCk7DQorI2VuZGlmDQog
CS8qDQogCSAqIFRoaXMgcm91dGluZSBpcyBjYWxsZWQgb25jZSBwZXIgc2Vj
b25kIGJ5IGFuIGF1eGlsbGlhcnkNCiAJICogcm91dGluZSBpbiBhbm90aGVy
IGRyaXZlci4gSXQgc2F2ZXMgdGhlIHNpZ24tZXh0ZW5kZWQNCkBAIC0yOTYs
NiArMzA4LDExIEBADQogCXBwID0gcGVlci0+cHJvY3B0cjsNCiAJdXAgPSAo
c3RydWN0IGF0b211bml0ICopcHAtPnVuaXRwdHI7DQogDQorI2lmZGVmCURF
QlVHDQorCWlmIChkZWJ1ZyA+IDMpDQorCQlwcmludGYoImF0b21fcHBzOiBw
b2xsY250ICVkLCBmZHBwcyA9ICVkLCBzZXJpYWwgPSAlbGRcbiIsDQorCQkg
ICAgICAgdXAtPnBvbGxjbnQsIGZkcHBzLCB1cC0+ZXYuc2VyaWFsKTsNCisj
ZW5kaWYNCiAJLyoNCiAJICogQXJtIHRoZSB0aW1lciBmb3IgdGhlIG5leHQg
aW50ZXJydXB0DQogCSAqLw0KQEAgLTM1NCw2ICszNzEsMTEgQEANCiAJdXAg
PSAoc3RydWN0IGF0b211bml0ICopcHAtPnVuaXRwdHI7DQogCXBwLT5sZW5j
b2RlID0gcmVmY2xvY2tfZ3RsaW4ocmJ1ZnAsIHBwLT5hX2xhc3Rjb2RlLCBC
TUFYLA0KIAkgICAgJnBwLT5sYXN0cmVjKTsNCisjaWZkZWYJREVCVUcNCisJ
aWYgKGRlYnVnID4gMikNCisJCXByaW50ZigiYXRvbV9yZWNlaXZlOiBwb2xs
Y250ICVkLCBsYXN0cmVjICVsZFxuIiwNCisJCSAgICAgICB1cC0+cG9sbGNu
dCwgcHAtPmxhc3RyZWMpOw0KKyNlbmRpZg0KIA0KIAkvKg0KIAkgKiBTYXZl
IHRoZSB0aW1lc3RhbXAgZm9yIGJpbGxib2FyZHMuIFNpZ24tZXh0ZW5kIHRo
ZSBmcmFjdGlvbg0KQEAgLTQwMyw2ICs0MjUsMTAgQEANCiAJbF9mcCBvZmZb
TUFYU1RBR0VdOw0KIAl1X2ZwIGRpc3A7DQogDQorI2lmZGVmCURFQlVHDQor
CWlmIChkZWJ1ZyA+IDIpDQorCQlwcmludGYoImF0b21fcG9sbDogdW5pdCAl
ZFxuIiwgdW5pdCk7DQorI2VuZGlmDQogCS8qDQogCSAqIEF0IGVhY2ggcG9s
bCB3ZSBjaGVjayBmb3IgdGltZW91dC4gQXQgdGhlIGZpcnN0IHRpbWVvdXQg
d2UNCiAJICogdGVzdCB0byBzZWUgaWYgdGhlIExESVNDX1BQUyBkaXNjaXBs
aW5lIGlzIHByZXNlbnQgYW5kLCBpZg0KQEAgLTQzNiw2ICs0NjIsNyBAQA0K
IAkJCQlyZWZjbG9ja19yZXBvcnQocGVlciwgQ0VWTlRfRkFVTFQpOw0KIAkJ
CQlyZXR1cm47DQogCQkJfQ0KKwkJCWZkcHBzID0gZmQ7CS8qIExpbnV4IGhh
Y2shISEgKi8NCiAJCQlwcC0+aW8uY2xvY2tfcmVjdiA9IGF0b21fcmVjZWl2
ZTsNCiAJCQlwcC0+aW8uc3JjY2xvY2sgPSAoY2FkZHJfdClwZWVyOw0KIAkJ
CXBwLT5pby5kYXRhbGVuID0gMDsNCg==
--759665152-851401618-875257724=:12041--
