---559023410-851401618-924270283=:12703
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.GSO.3.96.990423191104.24919F@uranos.cto.us.edu.pl>
Hi,
Please find attached a slightly modified "set" :
- MakeClass.cxx - the modified MakeClass macro
- ntuple.hxx, ntuple.cxx - example files generated for the
$ROOTSYS/tutorials/hsimple.root file
- Makefile - Linux EGCS Makefile which creates the ntuple.so
The MakeClass macro possibly now works not only for trivial ntuples, but
also for ntuples with arrays and other objects.
Due to current CINT limitations ( as shipped with root 2.21/08 ), one
cannot write 'x=leaf()[]; leaf()[]=y', one must say 'tmp=leaf(); x=tmp[];
tmp[]=y'. This was fixed in the development version of CINT, so the next
root version should have it.
Due to current CINT limitations one cannot use code generated by this
macro for multi-dimensional arrays directly in CINT ( as a CINT macro ),
one needs to compile the analysis code and create the shared library.
Have fun,
Jacek.
P.S. The main difference to the previous version is a "bug" fix - the
Loop() function called fTree->GetEvent() instead of it's own
GetEvent() ( the same "bug" is present in the original
TTree::MakeClass function ). To get rid of "fTree" in the Loop() I
implemented also the GetEntries() function. On this occasion I
noticed another "bug" ( "feature" ) of the TTree::GetEvent() function
- in case ALL branches are "off" ( one set 'SetBranchStatus("*",0);' )
the TTree::GetEvent() reads the WHOLE event ( all branches !!! ). For
me, in this case, it should read NOTHING. Jacek.
---559023410-851401618-924270283=:12703
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="MakeClass.cxx"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.3.96.990423192938.24919G@uranos.cto.us.edu.pl>
Content-Description: MakeClass.cxx
Ly9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KDQpJbnRfdCBN
YWtlQ2xhc3MoVFRyZWUgKnQsIGNvbnN0IGNoYXIgKmNsYXNzbmFtZSA9IDAp
DQp7DQovLz09PT0+DQovLyotKi0qLSotKi0qLSpHZW5lcmF0ZSBza2VsZXRv
biBhbmFseXNpcyBjbGFzcyBmb3IgdGhpcyBUcmVlKi0qLSotKi0qLSotKg0K
Ly8qLSogICAgICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KLy8NCi8vICAgVGhlIGZvbGxvd2luZyBmaWxl
cyBhcmUgcHJvZHVjZWQ6IGNsYXNzbmFtZS5oeHggYW5kIGNsYXNzbmFtZS5j
eHgNCi8vICAgaWYgY2xhc3NuYW1lIGlzIE5VTEwsIGNsYXNzbmFtZSB3aWxs
IGJlIG5hbWVvZnRyZWUuDQovLw0KLy8gICBUaGUgZ2VuZXJhdGVkIGNvZGUg
aW4gY2xhc3NuYW1lLmh4eCBpbmNsdWRlcyB0aGUgZm9sbG93aW5nOg0KLy8g
ICAgICAtIElkZW50aWZpY2F0aW9uIG9mIHRoZSBvcmlnaW5hbCBUcmVlIGFu
ZCBJbnB1dCBmaWxlIG5hbWUNCi8vICAgICAgLSBEZWZpbml0aW9uIG9mIGFu
YWx5c2lzIGNsYXNzIChkYXRhIGFuZCBmdW5jdGlvbnMpDQovLyAgICAgIC0g
dGhlIGZvbGxvd2luZyBjbGFzcyBmdW5jdGlvbnM6DQovLyAgICAgICAgIC1j
b25zdHJ1Y3RvciAoY29ubmVjdGluZyBieSBkZWZhdWx0IHRoZSBUcmVlIGZp
bGUpDQovLyAgICAgICAgIC1HZXRFdmVudChJbnRfdCBldmVudCkNCi8vICAg
ICAgICAgLUluaXQoVFRyZWUgKnRyZWUpIHRvIGluaXRpYWxpemUgYSBuZXcg
VFRyZWUNCi8vICAgICAgICAgLVNob3coSW50X3QgZXZlbnQpIHRvIHJlYWQg
YW5kIER1bXAgZXZlbnQNCi8vDQovLyAgIFRoZSBnZW5lcmF0ZWQgY29kZSBp
biBjbGFzc25hbWUuY3h4IGluY2x1ZGVzIG9ubHkgdGhlIG1haW4NCi8vICAg
YW5hbHlzaXMgZnVuY3Rpb24gTG9vcC4NCi8vDQovLyAgIFRvIHVzZSB0aGlz
IGZ1bmN0aW9uOg0KLy8gICAgICAtIGNvbm5lY3QgeW91ciBUcmVlIGZpbGUg
KGVnOiBURmlsZSBmKCJteWZpbGUucm9vdCIpOykNCi8vICAgICAgLSBNYWtl
Q2xhc3MoVCwiTXlDbGFzcyIpOw0KLy8gICB3aGVyZSBUIGlzIHRoZSBuYW1l
IG9mIHRoZSBUcmVlIGluIHRoZSBteWZpbGUucm9vdCBmaWxlLA0KLy8gICBh
bmQgTXlDbGFzcy5oeHgsIE15Q2xhc3MuY3h4IGFyZSBuYW1lcyBvZiBmaWxl
cyBjcmVhdGVkIGJ5IHRoaXMgZnVuY3Rpb24uDQovLyAgIEluIGEgUm9vdCBz
ZXNzaW9uLCB5b3UgY2FuIGRvOg0KLy8gICAgICBSb290ID4gLkwgTXlDbGFz
cy5jeHgNCi8vICAgICAgUm9vdCA+IE15Q2xhc3MgdA0KLy8gICAgICBSb290
ID4gdC5HZXRFdmVudCgxMik7IC8vIFByZXBhcmUgdG8gZmlsbCB0IHdpdGgg
ZXZlbnQgbnVtYmVyIDEyDQovLyAgICAgIFJvb3QgPiB0LlNob3coKTsgICAg
ICAgLy8gU2hvdyB2YWx1ZXMgb2YgZXZlbnQgMTINCi8vICAgICAgUm9vdCA+
IHQuU2hvdygxNik7ICAgICAvLyBSZWFkIGFuZCBzaG93IHZhbHVlcyBvZiBl
dmVudCAxNg0KLy8gICAgICBSb290ID4gdC5Mb29wKCk7ICAgICAgIC8vIExv
b3Agb24gYWxsIGV2ZW50cw0KLy8NCi8vPT09PT4NCg0KLy8gQ2hlY2sgYWdh
aW5zdCBhbiBpbnZhbGlkIFRyZWUgcG9pbnRlcg0KICAgaWYgKCF0KSByZXR1
cm4gMTsNCiAgIGlmICghdC0+SXNBKCktPkluaGVyaXRzRnJvbSgiVFRyZWUi
KSkgew0KICAgICAgcHJpbnRmKCJBdHRlbXB0IHRvIE1ha2VDbGFzcyBmb3Ig
YSBub24tVFRyZWUgb2JqZWN0XG4iKTsNCiAgICAgIHJldHVybiAyOw0KICAg
fQ0KDQovLyBDb25uZWN0IG91dHB1dCBmaWxlcw0KICAgY2hhciAqdGhlYWQg
PSBuZXcgY2hhclsyNTZdOw0KDQogICBpZiAoIWNsYXNzbmFtZSkgY2xhc3Nu
YW1lID0gdC0+R2V0TmFtZSgpOw0KICAgc3ByaW50Zih0aGVhZCwiJXMuaHh4
IixjbGFzc25hbWUpOw0KICAgRklMRSAqZnAgPSBmb3Blbih0aGVhZCwidyIp
Ow0KICAgaWYgKCFmcCkgew0KICAgICAgcHJpbnRmKCJDYW5ub3Qgb3BlbiBv
dXRwdXQgZmlsZTolc1xuIix0aGVhZCk7DQogICAgICBkZWxldGUgW10gdGhl
YWQ7DQogICAgICByZXR1cm4gMzsNCiAgIH0NCiAgIGNoYXIgKnRjaW1wID0g
bmV3IGNoYXJbMjU2XTsNCiAgIHNwcmludGYodGNpbXAsIiVzLmN4eCIsY2xh
c3NuYW1lKTsNCiAgIEZJTEUgKmZwYyA9IGZvcGVuKHRjaW1wLCJ3Iik7DQog
ICBpZiAoIWZwYykgew0KICAgICAgcHJpbnRmKCJDYW5ub3Qgb3BlbiBvdXRw
dXQgZmlsZTolc1xuIix0Y2ltcCk7DQogICAgICBkZWxldGUgW10gdGhlYWQ7
DQogICAgICBkZWxldGUgW10gdGNpbXA7DQogICAgICByZXR1cm4gMzsNCiAg
IH0NCiAgIGNoYXIgKnRyZWVmaWxlID0gbmV3IGNoYXJbMTAwMF07DQogICBp
ZiAodC0+R2V0RGlyZWN0b3J5KCkgJiYgdC0+R2V0RGlyZWN0b3J5KCktPkdl
dEZpbGUoKSkNCiAgICAgICAgICAgICAgICBzdHJjcHkodHJlZWZpbGUsdC0+
R2V0RGlyZWN0b3J5KCktPkdldEZpbGUoKS0+R2V0TmFtZSgpKTsNCiAgIGVs
c2UgICAgICAgICBzdHJjcHkodHJlZWZpbGUsIk1lbW9yeSBEaXJlY3Rvcnki
KTsNCg0KLy89PT09PT09PT09PT09PT09PT09PT09R2VuZXJhdGUgY2xhc3Nu
YW1lLmh4eD09PT09PT09PT09PT09PT09PT09PQ0KLy8gUHJpbnQgaGVhZGVy
DQogICBUT2JqQXJyYXkgKmxlYXZlcyA9IHQtPkdldExpc3RPZkxlYXZlcygp
Ow0KICAgSW50X3QgbmxlYXZlcyA9IGxlYXZlcy0+R2V0RW50cmllc0Zhc3Qo
KTsNCiAgIFREYXRpbWUgdGQ7DQogICBmcHJpbnRmKGZwLCIvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vXG4iKTsNCiAgIGZwcmludGYoZnAsIi8vICAgVGhpcyBjbGFzcyBoYXMg
YmVlbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBcbiIpOw0KICAgZnByaW50
ZihmcCwiLy8gICAoJXMgYnkgUk9PVCB2ZXJzaW9uJXMpXG4iLHRkLkFzU3Ry
aW5nKCksZ1JPT1QtPkdldFZlcnNpb24oKSk7DQogICBmcHJpbnRmKGZwLCIv
LyAgIGZyb20gVFRyZWUgJXMvJXNcbiIsdC0+R2V0TmFtZSgpLHQtPkdldFRp
dGxlKCkpOw0KICAgZnByaW50ZihmcCwiLy8gICBmb3VuZCBvbiBmaWxlOiAl
c1xuIix0cmVlZmlsZSk7DQogICBmcHJpbnRmKGZwLCIvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
XG4iKTsNCiAgIGZwcmludGYoZnAsIlxuIik7DQogICBmcHJpbnRmKGZwLCJc
biIpOw0KICAgZnByaW50ZihmcCwiI2lmbmRlZiAlc19oeHhcbiIsY2xhc3Nu
YW1lKTsNCiAgIGZwcmludGYoZnAsIiNkZWZpbmUgJXNfaHh4XG4iLGNsYXNz
bmFtZSk7DQogICBmcHJpbnRmKGZwLCJcbiIpOw0KICAgZnByaW50ZihmcCwi
I2lmbmRlZiBfX0NJTlRfX1xuIik7DQogICBmcHJpbnRmKGZwLCIjaW5jbHVk
ZSBcIlRST09ULmhcIlxuIik7DQogICBmcHJpbnRmKGZwLCIjaW5jbHVkZSBc
IlRUcmVlLmhcIlxuIik7DQogICBmcHJpbnRmKGZwLCIjaW5jbHVkZSBcIlRG
aWxlLmhcIlxuIik7DQogICBmcHJpbnRmKGZwLCIjZWxzZVxuIik7DQogICBm
cHJpbnRmKGZwLCJjbGFzcyBUQnJhbmNoO1xuIik7DQogICBmcHJpbnRmKGZw
LCJjbGFzcyBUVHJlZTtcbiIpOw0KICAgZnByaW50ZihmcCwiY2xhc3MgVEZp
bGU7XG4iKTsNCiAgIGZwcmludGYoZnAsIiNlbmRpZlxuIik7DQogICBmcHJp
bnRmKGZwLCJcbiIpOw0KICAgZnByaW50ZihmcCwiY2xhc3MgJXMge1xuIixj
bGFzc25hbWUpOw0KICAgZnByaW50ZihmcCwiICAgcHVibGljIDpcbiIpOw0K
ICAgZnByaW50ZihmcCwiICAgVFRyZWUgICAgICAgICAgICpmVHJlZTsgLy8g
cG9pbnRlciB0byB0aGUgYW5hbHl6ZWQgVFRyZWVcbiIpOw0KICAgZnByaW50
ZihmcCwiICAgSW50X3QgICAgICAgICAgIGZFdmVudDsgLy8gY3VycmVudCBF
dmVudCBudW1iZXJcbiIpOw0KDQovLyBGaXJzdCBsb29wIG9uIGFsbCBicmFu
Y2hlcyB0byBnZW5lcmF0ZSBicmFuY2ggZGVjbGFyYXRpb25zDQogICBmcHJp
bnRmKGZwLCIgICAvLyBkZWNsYXJhdGlvbiBvZiBicmFuY2hlc1xuIik7DQog
ICBJbnRfdCBuYiwgaTsNCiAgIG5iID0gdC0+R2V0TGlzdE9mQnJhbmNoZXMo
KS5HZXRFbnRyaWVzRmFzdCgpOw0KICAgZm9yIChpPTA7aTxuYjtpKyspICB7
DQogICAgICBicmFuY2ggPSAoVEJyYW5jaCopdC0+R2V0TGlzdE9mQnJhbmNo
ZXMoKS5VbmNoZWNrZWRBdChpKTsNCiAgICAgIGZwcmludGYoZnAsIiVzJS0x
NXMgYnJhbmNoXyVzO1xuIiwiICAgIiwiSW50X3QiLCBicmFuY2gtPkdldE5h
bWUoKSk7DQogICAgICBmcHJpbnRmKGZwLCIlcyUtMTVzICpicmFuY2hfcG9p
bnRlcl8lcztcbiIsIiAgICIsIlRCcmFuY2giLCBicmFuY2gtPkdldE5hbWUo
KSk7DQogICB9DQoNCi8vIEZpcnN0IGxvb3Agb24gYWxsIGxlYXZlcyB0byBn
ZW5lcmF0ZSBsZWFmIGRlY2xhcmF0aW9ucw0KICAgZnByaW50ZihmcCwiICAg
Ly8gZGVjbGFyYXRpb24gb2YgbGVhdmVzXG4iKTsNCiAgIEludF90IGxlbiwg
bDsNCiAgIFRMZWFmICpsZWFmY291bnQ7DQogICBUTGVhZk9iamVjdCAqbGVh
Zm9iajsNCiAgIGNoYXIgKmJuYW1lOw0KICAgY29uc3QgY2hhciAqaGVhZE9L
ICA9ICIgICAiOw0KICAgY29uc3QgY2hhciAqaGVhZGNvbSA9ICIgLy8iOw0K
ICAgY29uc3QgY2hhciAqaGVhZDsNCiAgIGNoYXIgYnJhbmNobmFtZVs2NF07
DQogICBmb3IgKGw9MDtsPG5sZWF2ZXM7bCsrKSB7DQogICAgICBUTGVhZiAq
bGVhZiA9IChUTGVhZiopbGVhdmVzLT5VbmNoZWNrZWRBdChsKTsNCiAgICAg
IGxlbiA9IGxlYWYtPkdldExlbigpOw0KICAgICAgbGVhZmNvdW50ID1sZWFm
LT5HZXRMZWFmQ291bnQoKTsNCiAgICAgIFRCcmFuY2ggKmJyYW5jaCA9IGxl
YWYtPkdldEJyYW5jaCgpOw0KICAgICAgaWYgKGxlYWZjb3VudCkgc3RyY3B5
KGJyYW5jaG5hbWUsYnJhbmNoLT5HZXROYW1lKCkpOw0KICAgICAgZWxzZSAg
ICAgICAgICAgc3RyY3B5KGJyYW5jaG5hbWUsbGVhZi0+R2V0VGl0bGUoKSk7
DQogICAgICBjaGFyICp0d29kaW0gPSAoY2hhciopc3Ryc3RyKGxlYWYtPkdl
dFRpdGxlKCksIl1bIik7DQogICAgICBibmFtZSA9IGJyYW5jaG5hbWU7DQog
ICAgICB3aGlsZSAoKmJuYW1lKSB7aWYgKCpibmFtZSA9PSAnLicpICpibmFt
ZT0nXyc7IGJuYW1lKys7fQ0KICAgICAgaWYgKGJyYW5jaC0+SXNBKCkgPT0g
VEJyYW5jaE9iamVjdDo6Q2xhc3MoKSkgew0KICAgICAgICAgaWYgKGJyYW5j
aC0+R2V0TGlzdE9mQnJhbmNoZXMoKS0+R2V0RW50cmllc0Zhc3QoKSkgY29u
dGludWU7DQogICAgICAgICBsZWFmb2JqID0gKFRMZWFmT2JqZWN0KilsZWFm
Ow0KICAgICAgICAgaWYgKGxlYWZvYmotPkdldENsYXNzKCkpIGhlYWQgPSBo
ZWFkT0s7DQogICAgICAgICBlbHNlICAgICAgICAgICAgICAgICAgICAgaGVh
ZCA9IGhlYWRjb207DQogICAgICAgICBmcHJpbnRmKGZwLCIlcyUtMTVzICps
ZWFmXyVzO1xuIixoZWFkLGxlYWZvYmotPkdldFR5cGVOYW1lKCksbGVhZm9i
ai0+R2V0TmFtZSgpKTsNCiAgICAgICAgIGZwcmludGYoZnAsIiVzJS0xNXMg
KiVzKCkgeyIsaGVhZCxsZWFmb2JqLT5HZXRUeXBlTmFtZSgpLGxlYWZvYmot
PkdldE5hbWUoKSk7DQogICAgICAgICBmcHJpbnRmKGZwLCJpZiAoYnJhbmNo
XyVzKSByZXR1cm4gbGVhZl8lczsiLGJyYW5jaC0+R2V0TmFtZSgpLGxlYWZv
YmotPkdldE5hbWUoKSk7DQogICAgICAgICBmcHJpbnRmKGZwLCJicmFuY2hf
cG9pbnRlcl8lcy0+R2V0RXZlbnQoZkV2ZW50KTsiLGJyYW5jaC0+R2V0TmFt
ZSgpKTsNCiAgICAgICAgIGZwcmludGYoZnAsImJyYW5jaF8lcyA9IDE7cmV0
dXJuIGxlYWZfJXM7fVxuIixicmFuY2gtPkdldE5hbWUoKSxsZWFmb2JqLT5H
ZXROYW1lKCkpOw0KICAgICAgICAgY29udGludWU7DQogICAgICB9DQogICAg
ICBpZiAobGVhZmNvdW50KSB7DQogICAgICAgICBsZW4gPSBsZWFmY291bnQt
PkdldE1heGltdW0oKTsNCiAgICAgICAgIGlmICh0d29kaW0pIHsNCiAgICAg
ICAgICAgIGZwcmludGYoZnAsIiAgICUtMTVzIGxlYWZfJXNbJWRdJXM7XG4i
LGxlYWYtPkdldFR5cGVOYW1lKCksYnJhbmNobmFtZSxsZW4sKGNoYXIqKSh0
d29kaW0rMSkpOw0KICAgICAgICAgICAgLy8gZnByaW50ZihmcCwiICAgJS0x
NXMgKCYlcygpKVslZF0lcyB7IixsZWFmLT5HZXRUeXBlTmFtZSgpLGJyYW5j
aG5hbWUsbGVuLChjaGFyKikodHdvZGltKzEpKTsNCiAgICAgICAgICAgIGZw
cmludGYoZnAsIiAgICUtMTVzICgqJXMoKSklcyB7IixsZWFmLT5HZXRUeXBl
TmFtZSgpLGJyYW5jaG5hbWUsKGNoYXIqKSh0d29kaW0rMSkpOw0KICAgICAg
ICAgICAgZnByaW50ZihmcCwiaWYgKGJyYW5jaF8lcykgcmV0dXJuIGxlYWZf
JXM7IixicmFuY2gtPkdldE5hbWUoKSxicmFuY2huYW1lKTsNCiAgICAgICAg
ICAgIGZwcmludGYoZnAsImJyYW5jaF9wb2ludGVyXyVzLT5HZXRFdmVudChm
RXZlbnQpOyIsYnJhbmNoLT5HZXROYW1lKCkpOw0KICAgICAgICAgICAgZnBy
aW50ZihmcCwiYnJhbmNoXyVzID0gMTtyZXR1cm4gbGVhZl8lczt9XG4iLGJy
YW5jaC0+R2V0TmFtZSgpLGJyYW5jaG5hbWUpOw0KICAgICAgICAgfSBlbHNl
IHsNCiAgICAgICAgICAgIGZwcmludGYoZnAsIiAgICUtMTVzIGxlYWZfJXNb
JWRdO1xuIixsZWFmLT5HZXRUeXBlTmFtZSgpLGJyYW5jaG5hbWUsbGVuKTsN
CiAgICAgICAgICAgIC8vIGZwcmludGYoZnAsIiAgICUtMTVzICgmJXMoKSlb
JWRdIHsiLGxlYWYtPkdldFR5cGVOYW1lKCksYnJhbmNobmFtZSxsZW4pOw0K
ICAgICAgICAgICAgZnByaW50ZihmcCwiICAgJS0xNXMgKnMoKSB7IixsZWFm
LT5HZXRUeXBlTmFtZSgpLGJyYW5jaG5hbWUpOw0KICAgICAgICAgICAgZnBy
aW50ZihmcCwiaWYgKGJyYW5jaF8lcykgcmV0dXJuIGxlYWZfJXM7IixicmFu
Y2gtPkdldE5hbWUoKSxicmFuY2huYW1lKTsNCiAgICAgICAgICAgIGZwcmlu
dGYoZnAsImJyYW5jaF9wb2ludGVyXyVzLT5HZXRFdmVudChmRXZlbnQpOyIs
YnJhbmNoLT5HZXROYW1lKCkpOw0KICAgICAgICAgICAgZnByaW50ZihmcCwi
YnJhbmNoXyVzID0gMTtyZXR1cm4gbGVhZl8lczt9XG4iLGJyYW5jaC0+R2V0
TmFtZSgpLGJyYW5jaG5hbWUpOw0KICAgICAgICAgfQ0KICAgICAgfSBlbHNl
IHsNCiAgICAgICAgIGZwcmludGYoZnAsIiAgICUtMTVzIGxlYWZfJXM7XG4i
LGxlYWYtPkdldFR5cGVOYW1lKCksYnJhbmNobmFtZSk7DQogICAgICAgICBm
cHJpbnRmKGZwLCIgICAlLTE1cyAmJXMoKSB7IixsZWFmLT5HZXRUeXBlTmFt
ZSgpLGJyYW5jaG5hbWUpOw0KICAgICAgICAgZnByaW50ZihmcCwiaWYgKGJy
YW5jaF8lcykgcmV0dXJuIGxlYWZfJXM7IixicmFuY2gtPkdldE5hbWUoKSxi
cmFuY2huYW1lKTsNCiAgICAgICAgIGZwcmludGYoZnAsImJyYW5jaF9wb2lu
dGVyXyVzLT5HZXRFdmVudChmRXZlbnQpOyIsYnJhbmNoLT5HZXROYW1lKCkp
Ow0KICAgICAgICAgZnByaW50ZihmcCwiYnJhbmNoXyVzID0gMTtyZXR1cm4g
bGVhZl8lczt9XG4iLGJyYW5jaC0+R2V0TmFtZSgpLGJyYW5jaG5hbWUpOw0K
ICAgICAgfQ0KICAgfQ0KDQovLyBHZW5lcmF0ZSBjbGFzcyBtZW1iZXIgZnVu
Y3Rpb25zIHByb3RvdHlwZXMNCiAgIGZwcmludGYoZnAsIlxuIik7DQogICBm
cHJpbnRmKGZwLCIgICAlcyhUVHJlZSAqdHJlZSA9IDApO1xuIixjbGFzc25h
bWUpOw0KICAgZnByaW50ZihmcCwiICAgfiVzKCkgezt9XG4iLGNsYXNzbmFt
ZSk7DQogICBmcHJpbnRmKGZwLCIgICBTdGF0X3QgR2V0RW50cmllcygpIHtp
ZiAoIWZUcmVlKSByZXR1cm4gMDtyZXR1cm4gZlRyZWUtPkdldEVudHJpZXMo
KTt9XG4iKTsNCiAgIGZwcmludGYoZnAsIiAgIEludF90IEdldEV2ZW50KElu
dF90IGV2ZW50KTtcbiIpOw0KICAgZnByaW50ZihmcCwiICAgdm9pZCBJbml0
KFRUcmVlICp0cmVlKTtcbiIpOw0KICAgZnByaW50ZihmcCwiICAgdm9pZCBM
b29wKCk7XG4iKTsNCiAgIGZwcmludGYoZnAsIiAgIHZvaWQgU2hvdyhJbnRf
dCBldmVudCA9IC0xKTtcbiIpOw0KICAgZnByaW50ZihmcCwifTtcbiIpOw0K
ICAgZnByaW50ZihmcCwiXG4iKTsNCiAgIGZwcmludGYoZnAsIiNlbmRpZlxu
Iik7DQogICBmcHJpbnRmKGZwLCJcbiIpOw0KDQogICBmcHJpbnRmKGZwLCIj
aWZkZWYgJXNfY3h4XG4iLGNsYXNzbmFtZSk7DQogICBmcHJpbnRmKGZwLCJc
biIpOw0KDQovLyBHZW5lcmF0ZSBjb2RlIGZvciBjbGFzcyBjb25zdHJ1Y3Rv
cg0KICAgZnByaW50ZihmcCwiJXM6OiVzKFRUcmVlICp0cmVlKVxuIixjbGFz
c25hbWUsY2xhc3NuYW1lKTsNCiAgIGZwcmludGYoZnAsIntcbiIpOw0KICAg
ZnByaW50ZihmcCwiICAgLy8gSWYgcGFyYW1ldGVyIHRyZWUgaXMgbm90IHNw
ZWNpZmllZCAob3IgemVybyksIGNvbm5lY3QgdGhlIGZpbGVcbiIpOw0KICAg
ZnByaW50ZihmcCwiICAgLy8gdXNlZCB0byBnZW5lcmF0ZSB0aGlzIGNsYXNz
IGFuZCByZWFkIHRoZSBUcmVlLlxuIik7DQogICBmcHJpbnRmKGZwLCIgICBp
ZiAodHJlZSA9PSAwKSB7XG4iKTsNCiAgIGZwcmludGYoZnAsIiAgICAgIFRG
aWxlICpmID0gKFRGaWxlKilnUk9PVC0+R2V0TGlzdE9mRmlsZXMoKS0+Rmlu
ZE9iamVjdChcIiVzXCIpO1xuIix0cmVlZmlsZSk7DQogICBmcHJpbnRmKGZw
LCIgICAgICBpZiAoIWYpIHtcbiIpOw0KICAgZnByaW50ZihmcCwiICAgICAg
ICAgZiA9IG5ldyBURmlsZShcIiVzXCIpO1xuIix0cmVlZmlsZSk7DQogICBm
cHJpbnRmKGZwLCIgICAgICB9XG4iKTsNCiAgIGZwcmludGYoZnAsIiAgICAg
IHRyZWUgPSAoVFRyZWUqKWdEaXJlY3RvcnktPkdldChcIiVzXCIpO1xuXG4i
LHQtPkdldE5hbWUoKSk7DQogICBmcHJpbnRmKGZwLCIgICB9XG4iKTsNCiAg
IGZwcmludGYoZnAsIiAgIEluaXQodHJlZSk7XG4iKTsNCiAgIGZwcmludGYo
ZnAsIn1cbiIpOw0KICAgZnByaW50ZihmcCwiXG4iKTsNCg0KLy8gR2VuZXJh
dGUgY29kZSBmb3IgY2xhc3MgbWVtYmVyIGZ1bmN0aW9uIEdldEV2ZW50KCkN
CiAgIGZwcmludGYoZnAsIkludF90ICVzOjpHZXRFdmVudChJbnRfdCBldmVu
dClcbiIsY2xhc3NuYW1lKTsNCiAgIGZwcmludGYoZnAsIntcbiIpOw0KICAg
ZnByaW50ZihmcCwiICAgLy8gUHJlcGFyZSB0byByZWFkIHNwZWNpZmllZCBl
dmVudCBmcm9tIHRoZSBUcmVlLlxuIik7DQogICBmcHJpbnRmKGZwLCIgICBp
ZiAoIWZUcmVlKSByZXR1cm4gMDtcbiIpOw0KICAgZnByaW50ZihmcCwiICAg
Ly8gaWYgKGZFdmVudD09ZXZlbnQpIHJldHVybiAxO1xuIik7DQogICBuYiA9
IHQtPkdldExpc3RPZkJyYW5jaGVzKCkuR2V0RW50cmllc0Zhc3QoKTsNCiAg
IGZvciAoaT0wO2k8bmI7aSsrKSAgew0KICAgICAgYnJhbmNoID0gKFRCcmFu
Y2gqKXQtPkdldExpc3RPZkJyYW5jaGVzKCkuVW5jaGVja2VkQXQoaSk7DQog
ICAgICBmcHJpbnRmKGZwLCIgICBicmFuY2hfJXMgPSAwO1xuIixicmFuY2gt
PkdldE5hbWUoKSk7DQogICB9DQogICBmcHJpbnRmKGZwLCIgICBmRXZlbnQg
PSBldmVudDtcbiIpOw0KICAgZnByaW50ZihmcCwiICAgcmV0dXJuIDE7XG4i
KTsNCiAgIGZwcmludGYoZnAsIn1cbiIpOw0KICAgZnByaW50ZihmcCwiXG4i
KTsNCg0KLy8gR2VuZXJhdGUgY29kZSBmb3IgY2xhc3MgbWVtYmVyIGZ1bmN0
aW9uIEluaXQoKQ0KICAgZnByaW50ZihmcCwidm9pZCAlczo6SW5pdChUVHJl
ZSAqdHJlZSlcbiIsY2xhc3NuYW1lKTsNCiAgIGZwcmludGYoZnAsIntcbiIp
Ow0KICAgZnByaW50ZihmcCwiICAgLy8gU2V0IGJyYW5jaCBhZGRyZXNzZXMu
XG4iKTsNCiAgIGZwcmludGYoZnAsIiAgIGlmICh0cmVlID09IDApIHJldHVy
bjtcbiIpOw0KICAgZnByaW50ZihmcCwiICAgZlRyZWUgPSB0cmVlO1xuIik7
DQogICBmb3IgKGw9MDtsPG5sZWF2ZXM7bCsrKSB7DQogICAgICBUTGVhZiAq
bGVhZiA9IChUTGVhZiopbGVhdmVzLT5VbmNoZWNrZWRBdChsKTsNCiAgICAg
IGxlbiA9IGxlYWYtPkdldExlbigpOw0KICAgICAgbGVhZmNvdW50ID1sZWFm
LT5HZXRMZWFmQ291bnQoKTsNCiAgICAgIFRCcmFuY2ggKmJyYW5jaCA9IGxl
YWYtPkdldEJyYW5jaCgpOw0KICAgICAgaWYgKGxlYWZjb3VudCkgc3RyY3B5
KGJyYW5jaG5hbWUsYnJhbmNoLT5HZXROYW1lKCkpOw0KICAgICAgZWxzZSAg
ICAgICAgICAgc3RyY3B5KGJyYW5jaG5hbWUsbGVhZi0+R2V0VGl0bGUoKSk7
DQogICAgICBibmFtZSA9IGJyYW5jaG5hbWU7DQogICAgICB3aGlsZSAoKmJu
YW1lKSB7aWYgKCpibmFtZSA9PSAnLicpICpibmFtZT0nXyc7IGJuYW1lKys7
fQ0KICAgICAgY2hhciAqYnJhayA9IHN0cnN0cihicmFuY2huYW1lLCJbIik7
DQogICAgICBpZiAoYnJhaykgKmJyYWsgPSAwOw0KICAgICAgaGVhZCA9IGhl
YWRPSzsNCiAgICAgIGlmIChicmFuY2gtPklzQSgpID09IFRCcmFuY2hPYmpl
Y3Q6OkNsYXNzKCkpIHsNCiAgICAgICAgIGlmIChicmFuY2gtPkdldExpc3RP
ZkJyYW5jaGVzKCktPkdldEVudHJpZXNGYXN0KCkpIGNvbnRpbnVlOw0KICAg
ICAgICAgbGVhZm9iaiA9IChUTGVhZk9iamVjdCopbGVhZjsNCiAgICAgICAg
IGlmICghbGVhZm9iai0+R2V0Q2xhc3MoKSkgaGVhZCA9IGhlYWRjb207DQog
ICAgICAgICBzdHJjcHkoYnJhbmNobmFtZSxicmFuY2gtPkdldE5hbWUoKSk7
DQogICAgICB9DQogICAgICBpZiAobGVhZmNvdW50KSBsZW4gPSBsZWFmY291
bnQtPkdldE1heGltdW0oKSsxOw0KICAgICAgaWYgKGxlbiA+IDEpIGZwcmlu
dGYoZnAsIiVzZlRyZWUtPlNldEJyYW5jaEFkZHJlc3MoXCIlc1wiLGxlYWZf
JXMpO1xuIixoZWFkLGJyYW5jaC0+R2V0TmFtZSgpLGJyYW5jaG5hbWUpOw0K
ICAgICAgZWxzZSAgICAgICAgIGZwcmludGYoZnAsIiVzZlRyZWUtPlNldEJy
YW5jaEFkZHJlc3MoXCIlc1wiLCZsZWFmXyVzKTtcbiIsaGVhZCxicmFuY2gt
PkdldE5hbWUoKSxicmFuY2huYW1lKTsNCiAgIH0NCiAgIGZwcmludGYoZnAs
IiAgIGZUcmVlLT5TZXRCcmFuY2hTdGF0dXMoXCIqXCIsMCk7ICAvLyBkaXNh
YmxlIGFsbCBicmFuY2hlc1xuIik7DQogICBuYiA9IHQtPkdldExpc3RPZkJy
YW5jaGVzKCkuR2V0RW50cmllc0Zhc3QoKTsNCiAgIGZvciAoaT0wO2k8bmI7
aSsrKSAgew0KICAgICAgYnJhbmNoID0gKFRCcmFuY2gqKXQtPkdldExpc3RP
ZkJyYW5jaGVzKCkuVW5jaGVja2VkQXQoaSk7DQogICAgICBmcHJpbnRmKGZw
LCIgICBicmFuY2hfJXMgPSAwO1xuIixicmFuY2gtPkdldE5hbWUoKSk7DQog
ICAgICBmcHJpbnRmKGZwLCIgICBicmFuY2hfcG9pbnRlcl8lcyA9IGZUcmVl
LT5HZXRCcmFuY2goXCIlc1wiKTtcbiIsYnJhbmNoLT5HZXROYW1lKCksYnJh
bmNoLT5HZXROYW1lKCkpOw0KICAgfQ0KICAgZnByaW50ZihmcCwiICAgZkV2
ZW50ID0gLTE7XG4iKTsNCiAgIGZwcmludGYoZnAsIn1cbiIpOw0KICAgZnBy
aW50ZihmcCwiXG4iKTsNCg0KLy8gR2VuZXJhdGUgY29kZSBmb3IgY2xhc3Mg
bWVtYmVyIGZ1bmN0aW9uIFNob3coKQ0KICAgZnByaW50ZihmcCwidm9pZCAl
czo6U2hvdyhJbnRfdCBldmVudClcbiIsY2xhc3NuYW1lKTsNCiAgIGZwcmlu
dGYoZnAsIntcbiIpOw0KICAgZnByaW50ZihmcCwiICAgLy8gUHJpbnQgY29u
dGVudHMgb2YgZXZlbnQuXG4iKTsNCiAgIGZwcmludGYoZnAsIiAgIC8vIElm
IGV2ZW50IGlzIG5vdCBzcGVjaWZpZWQsIHByaW50IGN1cnJlbnQgZXZlbnQu
XG4iKTsNCg0KICAgZnByaW50ZihmcCwiICAgaWYgKCFmVHJlZSkgcmV0dXJu
O1xuIik7DQogICBmcHJpbnRmKGZwLCIgICBpZiAoZXZlbnQ+PTApIGZFdmVu
dCA9IGV2ZW50OyBlbHNlIGV2ZW50ID0gZkV2ZW50O1xuIik7DQogICBmcHJp
bnRmKGZwLCIgICBpZiAoZkV2ZW50PDApIHJldHVybjtcbiIpOw0KICAgZnBy
aW50ZihmcCwiICAgZlRyZWUtPlNldEJyYW5jaFN0YXR1cyhcIipcIiwxKTsg
IC8vIGVuYWJsZSBhbGwgYnJhbmNoZXNcbiIpOw0KICAgZnByaW50ZihmcCwi
ICAgZlRyZWUtPlNob3coZkV2ZW50KTtcbiIpOw0KICAgZnByaW50ZihmcCwi
ICAgZlRyZWUtPlNldEJyYW5jaFN0YXR1cyhcIipcIiwwKTsgIC8vIGRpc2Fi
bGUgYWxsIGJyYW5jaGVzXG4iKTsNCiAgIG5iID0gdC0+R2V0TGlzdE9mQnJh
bmNoZXMoKS5HZXRFbnRyaWVzRmFzdCgpOw0KICAgZm9yIChpPTA7aTxuYjtp
KyspICB7DQogICAgICBicmFuY2ggPSAoVEJyYW5jaCopdC0+R2V0TGlzdE9m
QnJhbmNoZXMoKS5VbmNoZWNrZWRBdChpKTsNCiAgICAgIGZwcmludGYoZnAs
IiAgIGJyYW5jaF8lcyA9IDE7XG4iLGJyYW5jaC0+R2V0TmFtZSgpKTsNCiAg
IH0NCiAgIGZwcmludGYoZnAsIn1cbiIpOw0KICAgZnByaW50ZihmcCwiXG4i
KTsNCg0KICAgZnByaW50ZihmcCwiI2VuZGlmXG4iKTsNCiAgIGZwcmludGYo
ZnAsIlxuIik7DQoNCi8vPT09PT09PT09PT09PT09PT09PT09PUdlbmVyYXRl
IGNsYXNzbmFtZS5jeHg9PT09PT09PT09PT09PT09PT09PT0NCi8vIEdlbmVy
YXRlIGNvZGUgZm9yIGNsYXNzIG1lbWJlciBmdW5jdGlvbiBMb29wKCkNCiAg
IGZwcmludGYoZnBjLCIjaWZuZGVmICVzX2N4eFxuIixjbGFzc25hbWUpOw0K
ICAgZnByaW50ZihmcGMsIiNkZWZpbmUgJXNfY3h4XG4iLGNsYXNzbmFtZSk7
DQogICBmcHJpbnRmKGZwYywiI2VuZGlmXG4iKTsNCiAgIGZwcmludGYoZnBj
LCIjaW5jbHVkZSBcIiVzXCJcbiIsdGhlYWQpOw0KICAgZnByaW50ZihmcGMs
IiN1bmRlZiAlc19jeHhcbiIsY2xhc3NuYW1lKTsNCiAgIGZwcmludGYoZnBj
LCJcbiIpOw0KICAgZnByaW50ZihmcGMsIiNpZm5kZWYgX19DSU5UX19cbiIp
Ow0KICAgZnByaW50ZihmcGMsIi8vIFBsYWNlIGhlcmUgYWxsIFJPT1QgcmVs
YXRlZCBpbmNsdWRlcyB0aGF0IHlvdSBuZWVkLlxuIik7DQogICBmcHJpbnRm
KGZwYywiI2VuZGlmXG4iKTsNCiAgIGZwcmludGYoZnBjLCJcbiIpOw0KICAg
ZnByaW50ZihmcGMsInZvaWQgJXM6Okxvb3AoKVxuIixjbGFzc25hbWUpOw0K
ICAgZnByaW50ZihmcGMsIntcbiIpOw0KICAgZnByaW50ZihmcGMsIiAgIC8v
IFRoaXMgaXMgdGhlIGxvb3Agc2tlbGV0b24uXG4iKTsNCiAgIC8vIGZwcmlu
dGYoZnBjLCJcbiAgIGlmIChmVHJlZSA9PSAwKSByZXR1cm47XG4iKTsNCiAg
IGZwcmludGYoZnBjLCJcbiAgIFN0YXRfdCBuZW50cmllcyA9IEdldEVudHJp
ZXMoKTtcbiIpOw0KICAgZnByaW50ZihmcGMsIlxuICAgSW50X3QgbmUgPSAw
LCBuZXZlbnRzID0gMDtcbiIpOw0KICAgZnByaW50ZihmcGMsIiAgIGZvciAo
SW50X3QgaT0wOyBpPG5lbnRyaWVzOyBpKyspIHtcbiIpOw0KICAgZnByaW50
ZihmcGMsIiAgICAgIG5lID0gR2V0RXZlbnQoaSk7IG5ldmVudHMgKz0gbmU7
XG4iKTsNCiAgIGZwcmludGYoZnBjLCIgICAgICBcbiIpOw0KICAgZnByaW50
ZihmcGMsIiAgIH1cbiIpOw0KICAgZnByaW50ZihmcGMsIn1cbiIpOw0KICAg
ZnByaW50ZihmcGMsIlxuIik7DQoNCiAgIHByaW50ZigiRmlsZXM6ICVzIGFu
ZCAlcyBnZW5lcmF0ZWQgZnJvbSBUcmVlOiAlc1xuIix0aGVhZCx0Y2ltcCx0
LT5HZXROYW1lKCkpOw0KICAgZGVsZXRlIFtdIHRoZWFkOw0KICAgZGVsZXRl
IFtdIHRjaW1wOw0KICAgZGVsZXRlIFtdIHRyZWVmaWxlOw0KICAgZmNsb3Nl
KGZwKTsNCiAgIGZjbG9zZShmcGMpOw0KDQogICByZXR1cm4gMDsNCn0NCg0K
Ly9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0K
---559023410-851401618-924270283=:12703
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="ntuple.hxx"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.3.96.990423192938.24919H@uranos.cto.us.edu.pl>
Content-Description: ntuple.hxx
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLw0KLy8gICBUaGlzIGNsYXNzIGhhcyBiZWVuIGF1dG9t
YXRpY2FsbHkgZ2VuZXJhdGVkIA0KLy8gICAoRnJpIEFwciAyMyAxODo1Nzoy
NyAxOTk5IGJ5IFJPT1QgdmVyc2lvbiAyLjIxLzA4KQ0KLy8gICBmcm9tIFRU
cmVlIG50dXBsZS9EZW1vIG50dXBsZQ0KLy8gICBmb3VuZCBvbiBmaWxlOiBo
c2ltcGxlLnJvb3QNCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCg0KDQojaWZuZGVmIG50dXBs
ZV9oeHgNCiNkZWZpbmUgbnR1cGxlX2h4eA0KDQojaWZuZGVmIF9fQ0lOVF9f
DQojaW5jbHVkZSAiVFJPT1QuaCINCiNpbmNsdWRlICJUVHJlZS5oIg0KI2lu
Y2x1ZGUgIlRGaWxlLmgiDQojZWxzZQ0KY2xhc3MgVEJyYW5jaDsNCmNsYXNz
IFRUcmVlOw0KY2xhc3MgVEZpbGU7DQojZW5kaWYNCg0KY2xhc3MgbnR1cGxl
IHsNCiAgIHB1YmxpYyA6DQogICBUVHJlZSAgICAgICAgICAgKmZUcmVlOyAv
LyBwb2ludGVyIHRvIHRoZSBhbmFseXplZCBUVHJlZQ0KICAgSW50X3QgICAg
ICAgICAgIGZFdmVudDsgLy8gY3VycmVudCBFdmVudCBudW1iZXINCiAgIC8v
IGRlY2xhcmF0aW9uIG9mIGJyYW5jaGVzDQogICBJbnRfdCAgICAgICAgICAg
YnJhbmNoX3B4Ow0KICAgVEJyYW5jaCAgICAgICAgICpicmFuY2hfcG9pbnRl
cl9weDsNCiAgIEludF90ICAgICAgICAgICBicmFuY2hfcHk7DQogICBUQnJh
bmNoICAgICAgICAgKmJyYW5jaF9wb2ludGVyX3B5Ow0KICAgSW50X3QgICAg
ICAgICAgIGJyYW5jaF9wejsNCiAgIFRCcmFuY2ggICAgICAgICAqYnJhbmNo
X3BvaW50ZXJfcHo7DQogICBJbnRfdCAgICAgICAgICAgYnJhbmNoX3JhbmRv
bTsNCiAgIFRCcmFuY2ggICAgICAgICAqYnJhbmNoX3BvaW50ZXJfcmFuZG9t
Ow0KICAgSW50X3QgICAgICAgICAgIGJyYW5jaF9pOw0KICAgVEJyYW5jaCAg
ICAgICAgICpicmFuY2hfcG9pbnRlcl9pOw0KICAgLy8gZGVjbGFyYXRpb24g
b2YgbGVhdmVzDQogICBGbG9hdF90ICAgICAgICAgbGVhZl9weDsNCiAgIEZs
b2F0X3QgICAgICAgICAmcHgoKSB7aWYgKGJyYW5jaF9weCkgcmV0dXJuIGxl
YWZfcHg7YnJhbmNoX3BvaW50ZXJfcHgtPkdldEV2ZW50KGZFdmVudCk7YnJh
bmNoX3B4ID0gMTtyZXR1cm4gbGVhZl9weDt9DQogICBGbG9hdF90ICAgICAg
ICAgbGVhZl9weTsNCiAgIEZsb2F0X3QgICAgICAgICAmcHkoKSB7aWYgKGJy
YW5jaF9weSkgcmV0dXJuIGxlYWZfcHk7YnJhbmNoX3BvaW50ZXJfcHktPkdl
dEV2ZW50KGZFdmVudCk7YnJhbmNoX3B5ID0gMTtyZXR1cm4gbGVhZl9weTt9
DQogICBGbG9hdF90ICAgICAgICAgbGVhZl9wejsNCiAgIEZsb2F0X3QgICAg
ICAgICAmcHooKSB7aWYgKGJyYW5jaF9weikgcmV0dXJuIGxlYWZfcHo7YnJh
bmNoX3BvaW50ZXJfcHotPkdldEV2ZW50KGZFdmVudCk7YnJhbmNoX3B6ID0g
MTtyZXR1cm4gbGVhZl9wejt9DQogICBGbG9hdF90ICAgICAgICAgbGVhZl9y
YW5kb207DQogICBGbG9hdF90ICAgICAgICAgJnJhbmRvbSgpIHtpZiAoYnJh
bmNoX3JhbmRvbSkgcmV0dXJuIGxlYWZfcmFuZG9tO2JyYW5jaF9wb2ludGVy
X3JhbmRvbS0+R2V0RXZlbnQoZkV2ZW50KTticmFuY2hfcmFuZG9tID0gMTty
ZXR1cm4gbGVhZl9yYW5kb207fQ0KICAgRmxvYXRfdCAgICAgICAgIGxlYWZf
aTsNCiAgIEZsb2F0X3QgICAgICAgICAmaSgpIHtpZiAoYnJhbmNoX2kpIHJl
dHVybiBsZWFmX2k7YnJhbmNoX3BvaW50ZXJfaS0+R2V0RXZlbnQoZkV2ZW50
KTticmFuY2hfaSA9IDE7cmV0dXJuIGxlYWZfaTt9DQoNCiAgIG50dXBsZShU
VHJlZSAqdHJlZSA9IDApOw0KICAgfm50dXBsZSgpIHs7fQ0KICAgU3RhdF90
IEdldEVudHJpZXMoKSB7aWYgKCFmVHJlZSkgcmV0dXJuIDA7cmV0dXJuIGZU
cmVlLT5HZXRFbnRyaWVzKCk7fQ0KICAgSW50X3QgR2V0RXZlbnQoSW50X3Qg
ZXZlbnQpOw0KICAgdm9pZCBJbml0KFRUcmVlICp0cmVlKTsNCiAgIHZvaWQg
TG9vcCgpOw0KICAgdm9pZCBTaG93KEludF90IGV2ZW50ID0gLTEpOw0KfTsN
Cg0KI2VuZGlmDQoNCiNpZmRlZiBudHVwbGVfY3h4DQoNCm50dXBsZTo6bnR1
cGxlKFRUcmVlICp0cmVlKQ0Kew0KICAgLy8gSWYgcGFyYW1ldGVyIHRyZWUg
aXMgbm90IHNwZWNpZmllZCAob3IgemVybyksIGNvbm5lY3QgdGhlIGZpbGUN
CiAgIC8vIHVzZWQgdG8gZ2VuZXJhdGUgdGhpcyBjbGFzcyBhbmQgcmVhZCB0
aGUgVHJlZS4NCiAgIGlmICh0cmVlID09IDApIHsNCiAgICAgIFRGaWxlICpm
ID0gKFRGaWxlKilnUk9PVC0+R2V0TGlzdE9mRmlsZXMoKS0+RmluZE9iamVj
dCgiaHNpbXBsZS5yb290Iik7DQogICAgICBpZiAoIWYpIHsNCiAgICAgICAg
IGYgPSBuZXcgVEZpbGUoImhzaW1wbGUucm9vdCIpOw0KICAgICAgfQ0KICAg
ICAgdHJlZSA9IChUVHJlZSopZ0RpcmVjdG9yeS0+R2V0KCJudHVwbGUiKTsN
Cg0KICAgfQ0KICAgSW5pdCh0cmVlKTsNCn0NCg0KSW50X3QgbnR1cGxlOjpH
ZXRFdmVudChJbnRfdCBldmVudCkNCnsNCiAgIC8vIFByZXBhcmUgdG8gcmVh
ZCBzcGVjaWZpZWQgZXZlbnQgZnJvbSB0aGUgVHJlZS4NCiAgIGlmICghZlRy
ZWUpIHJldHVybiAwOw0KICAgLy8gaWYgKGZFdmVudD09ZXZlbnQpIHJldHVy
biAxOw0KICAgYnJhbmNoX3B4ID0gMDsNCiAgIGJyYW5jaF9weSA9IDA7DQog
ICBicmFuY2hfcHogPSAwOw0KICAgYnJhbmNoX3JhbmRvbSA9IDA7DQogICBi
cmFuY2hfaSA9IDA7DQogICBmRXZlbnQgPSBldmVudDsNCiAgIHJldHVybiAx
Ow0KfQ0KDQp2b2lkIG50dXBsZTo6SW5pdChUVHJlZSAqdHJlZSkNCnsNCiAg
IC8vIFNldCBicmFuY2ggYWRkcmVzc2VzLg0KICAgaWYgKHRyZWUgPT0gMCkg
cmV0dXJuOw0KICAgZlRyZWUgPSB0cmVlOw0KICAgZlRyZWUtPlNldEJyYW5j
aEFkZHJlc3MoInB4IiwmbGVhZl9weCk7DQogICBmVHJlZS0+U2V0QnJhbmNo
QWRkcmVzcygicHkiLCZsZWFmX3B5KTsNCiAgIGZUcmVlLT5TZXRCcmFuY2hB
ZGRyZXNzKCJweiIsJmxlYWZfcHopOw0KICAgZlRyZWUtPlNldEJyYW5jaEFk
ZHJlc3MoInJhbmRvbSIsJmxlYWZfcmFuZG9tKTsNCiAgIGZUcmVlLT5TZXRC
cmFuY2hBZGRyZXNzKCJpIiwmbGVhZl9pKTsNCiAgIGZUcmVlLT5TZXRCcmFu
Y2hTdGF0dXMoIioiLDApOyAgLy8gZGlzYWJsZSBhbGwgYnJhbmNoZXMNCiAg
IGJyYW5jaF9weCA9IDA7DQogICBicmFuY2hfcG9pbnRlcl9weCA9IGZUcmVl
LT5HZXRCcmFuY2goInB4Iik7DQogICBicmFuY2hfcHkgPSAwOw0KICAgYnJh
bmNoX3BvaW50ZXJfcHkgPSBmVHJlZS0+R2V0QnJhbmNoKCJweSIpOw0KICAg
YnJhbmNoX3B6ID0gMDsNCiAgIGJyYW5jaF9wb2ludGVyX3B6ID0gZlRyZWUt
PkdldEJyYW5jaCgicHoiKTsNCiAgIGJyYW5jaF9yYW5kb20gPSAwOw0KICAg
YnJhbmNoX3BvaW50ZXJfcmFuZG9tID0gZlRyZWUtPkdldEJyYW5jaCgicmFu
ZG9tIik7DQogICBicmFuY2hfaSA9IDA7DQogICBicmFuY2hfcG9pbnRlcl9p
ID0gZlRyZWUtPkdldEJyYW5jaCgiaSIpOw0KICAgZkV2ZW50ID0gLTE7DQp9
DQoNCnZvaWQgbnR1cGxlOjpTaG93KEludF90IGV2ZW50KQ0Kew0KICAgLy8g
UHJpbnQgY29udGVudHMgb2YgZXZlbnQuDQogICAvLyBJZiBldmVudCBpcyBu
b3Qgc3BlY2lmaWVkLCBwcmludCBjdXJyZW50IGV2ZW50Lg0KICAgaWYgKCFm
VHJlZSkgcmV0dXJuOw0KICAgaWYgKGV2ZW50Pj0wKSBmRXZlbnQgPSBldmVu
dDsgZWxzZSBldmVudCA9IGZFdmVudDsNCiAgIGlmIChmRXZlbnQ8MCkgcmV0
dXJuOw0KICAgZlRyZWUtPlNldEJyYW5jaFN0YXR1cygiKiIsMSk7ICAvLyBl
bmFibGUgYWxsIGJyYW5jaGVzDQogICBmVHJlZS0+U2hvdyhmRXZlbnQpOw0K
ICAgZlRyZWUtPlNldEJyYW5jaFN0YXR1cygiKiIsMCk7ICAvLyBkaXNhYmxl
IGFsbCBicmFuY2hlcw0KICAgYnJhbmNoX3B4ID0gMTsNCiAgIGJyYW5jaF9w
eSA9IDE7DQogICBicmFuY2hfcHogPSAxOw0KICAgYnJhbmNoX3JhbmRvbSA9
IDE7DQogICBicmFuY2hfaSA9IDE7DQp9DQoNCiNlbmRpZg0KDQo=
---559023410-851401618-924270283=:12703
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="ntuple.cxx"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.3.96.990423192938.24919I@uranos.cto.us.edu.pl>
Content-Description: ntuple.cxx
I2lmbmRlZiBudHVwbGVfY3h4DQojZGVmaW5lIG50dXBsZV9jeHgNCiNlbmRp
Zg0KI2luY2x1ZGUgIm50dXBsZS5oeHgiDQojdW5kZWYgbnR1cGxlX2N4eA0K
DQojaWZuZGVmIF9fQ0lOVF9fDQovLyBQbGFjZSBoZXJlIGFsbCBST09UIHJl
bGF0ZWQgaW5jbHVkZXMgdGhhdCB5b3UgbmVlZC4NCiNpbmNsdWRlICJUSDEu
aCINCiNpbmNsdWRlICJUSDIuaCINCiNpbmNsdWRlICJUQ2FudmFzLmgiDQoj
ZW5kaWYNCg0Kdm9pZCBudHVwbGU6Okxvb3AoKQ0Kew0KICAgLy8gVGhpcyBp
cyB0aGUgbG9vcCBza2VsZXRvbi4NCg0KICAgVEgxRiAqaF9weD0gbmV3IFRI
MUYoInB4IiwicHgiLDEwMCwtNCw0KTsNCiAgIFRIMUYgKmhfcHk9IG5ldyBU
SDFGKCJweSIsInB5IiwxMDAsLTUsNSk7DQogICBUSDFGICpoX3B6PSBuZXcg
VEgxRigicHoiLCJweiIsMTAwLDAsMjApOw0KICAgVEgxRiAqaF9yYW5kb209
IG5ldyBUSDFGKCJyYW5kb20iLCJyYW5kb20iLDEwMCwwLDEpOw0KICAgVEgx
RiAqaF9pPSBuZXcgVEgxRigiaSIsImkiLDEwMCwwLDMwMDAwKTsNCiAgIFRI
MkYgKmhfcHhwej0gbmV3IFRIMkYoInB4cHoiLCJweHB6IiwxMDAsMCwyMCwx
MDAsLTQsNCk7DQoNCiAgIFN0YXRfdCBuZW50cmllcyA9IEdldEVudHJpZXMo
KTsNCg0KICAgSW50X3QgbmUgPSAwLCBuZXZlbnRzID0gMDsNCiAgIGZvciAo
SW50X3QgbD0wOyBsPG5lbnRyaWVzOyBsKyspIHsNCiAgICAgIG5lID0gR2V0
RXZlbnQobCk7IG5ldmVudHMgKz0gbmU7DQogICAgICBoX3B4LT5GaWxsKHB4
KCkpOw0KICAgICAgaF9weS0+RmlsbChweSgpKTsNCiAgICAgIGhfcHotPkZp
bGwocHooKSk7DQogICAgICBoX3JhbmRvbS0+RmlsbChyYW5kb20oKSk7DQog
ICAgICBoX2ktPkZpbGwoaSgpKTsNCiAgICAgIGhfcHhwei0+RmlsbChweigp
LHB4KCkpOw0KICAgfQ0KICAgVENhbnZhcyAqYyA9IG5ldyBUQ2FudmFzKCJj
Iik7DQogICBjLT5EaXZpZGUoMiwzKTsNCiAgIGMtPmNkKDEpOw0KICAgaF9w
eC0+RHJhdygpOw0KICAgYy0+Y2QoMik7DQogICBoX3B5LT5EcmF3KCk7DQog
ICBjLT5jZCgzKTsNCiAgIGhfcHotPkRyYXcoKTsNCiAgIGMtPmNkKDQpOw0K
ICAgaF9yYW5kb20tPkRyYXcoKTsNCiAgIGMtPmNkKDUpOw0KICAgaF9pLT5E
cmF3KCk7DQogICBjLT5jZCg2KTsNCiAgIGhfcHhwei0+RHJhdygpOw0KfQ0K
DQo=
---559023410-851401618-924270283=:12703
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=Makefile
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.3.96.990423192938.24919J@uranos.cto.us.edu.pl>
Content-Description: Makefile
U3JjU3VmICAgICAgICA9IGN4eA0KSW5jU3VmICAgICAgICA9IGh4eA0KDQpP
YmpTdWYgICAgICAgID0gbw0KRXhlU3VmICAgICAgICA9DQpEbGxTdWYgICAg
ICAgID0gc28NCk91dFB1dE9wdCAgICAgPSAtbw0KDQpST09UTElCUyAgICAg
ID0gLUwkKFJPT1RTWVMpL2xpYiAtbE5ldyAtbEJhc2UgLWxDaW50IC1sQ2xp
YiAtbENvbnQgLWxGdW5jIFwNCiAgICAgICAgICAgICAgICAtbEdyYWYgLWxH
cmFmM2QgLWxIaXN0IC1sSHRtbCAtbE1hdHJpeCAtbE1ldGEgLWxNaW51aXQg
LWxOZXQgXA0KICAgICAgICAgICAgICAgIC1sUGh5c2ljcyAtbFBvc3RzY3Jp
cHQgLWxQcm9vZiAtbFRyZWUgLWxVbml4IC1sWmlwDQpST09UR0xJQlMgICAg
ID0gLWxHcGFkIC1sR3VpIC1sR1gxMSAtbFgzZA0KDQojIExpbnV4IHdpdGgg
ZWdjcw0KRUdDUyAgICAgICAgICA9IC9vcHQvZWdjcy9wcm8NCkNYWCAgICAg
ICAgICAgPSBnKysNCkNYWEZMQUdTICAgICAgPSAtZyAtTzIgLVdhbGwgLWZu
by1ydHRpIC1mbm8tZXhjZXB0aW9ucyAtZlBJQyAtSSQoUk9PVFNZUykvaW5j
bHVkZQ0KTEQgICAgICAgICAgICA9IGcrKw0KTERGTEFHUyAgICAgICA9IC1n
IC1PMiAtV2wsLXJwYXRoLCQoRUdDUykvbGliOiQoUk9PVFNZUykvbGliDQpT
T0ZMQUdTICAgICAgID0gLXNoYXJlZA0KTElCUyAgICAgICAgICA9ICQoUk9P
VExJQlMpIC1sbSAtbGRsIC1yZHluYW1pYw0KR0xJQlMgICAgICAgICA9ICQo
Uk9PVExJQlMpICQoUk9PVEdMSUJTKSAtTC91c3IvWDExUjYvbGliIFwNCiAg
ICAgICAgICAgICAgICAtbFhwbSAtbFgxMSAtbG0gLWxkbCAtcmR5bmFtaWMN
Cg0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCk5U
VVBMRU8gICAgICAgPSBudHVwbGUuJChPYmpTdWYpIG50dXBsZURpY3QuJChP
YmpTdWYpDQpOVFVQTEVTICAgICAgID0gbnR1cGxlLiQoU3JjU3VmKSBudHVw
bGVEaWN0LiQoU3JjU3VmKQ0KTlRVUExFU08gICAgICA9IG50dXBsZS4kKERs
bFN1ZikNCg0KT0JKUyAgICAgICAgICA9ICQoTlRVUExFTykNCg0KUFJPR1JB
TVMgICAgICA9ICQoTlRVUExFU08pDQoNCmFsbDogICAgICAgICAgICAkKFBS
T0dSQU1TKQ0KDQokKE5UVVBMRVNPKTogICAgJChOVFVQTEVPKQ0KCQkkKExE
KSAkKFNPRkxBR1MpICQoTERGTEFHUykgJChOVFVQTEVPKSAkKE91dFB1dE9w
dCkgJChOVFVQTEVTTykNCg0KY2xlYW46DQoJCUBybSAtZiAkKE9CSlMpICpE
aWN0LiogY29yZQ0KDQouU1VGRklYRVM6IC4kKFNyY1N1ZikNCg0KIyMjDQoN
Cm50dXBsZS4kKE9ialN1Zik6IG50dXBsZS4kKFNyY1N1ZikgbnR1cGxlLiQo
SW5jU3VmKQ0KbnR1cGxlRGljdC4kKFNyY1N1Zik6IG50dXBsZS4kKEluY1N1
ZikNCglAZWNobyAiR2VuZXJhdGluZyBkaWN0aW9uYXJ5IG50dXBsZURpY3Qu
Li4iDQoJQCQoUk9PVFNZUykvYmluL3Jvb3RjaW50IC1mIG50dXBsZURpY3Qu
JChTcmNTdWYpIC1jIG50dXBsZS4kKEluY1N1ZikNCg0KLiQoU3JjU3VmKS4k
KE9ialN1Zik6DQoJJChDWFgpICQoQ1hYRkxBR1MpIC1jICQ8DQo=
---559023410-851401618-924270283=:12703--