---559023410-851401618-924270283=:12703
Content-Type: TEXT/PLAIN; charset=US-ASCII
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 main change in the MakeClass.cxx is related to the C++ include file
extension convention - I used .hpp, but I think I should use .hxx, as it
is in perfect agreement with .cxx C++ source code file extension. )
Have fun,
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.990416154443.12703B@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
KGVnOiBURmlsZSBmKCJteWZpbGUucm9vdCIpOykNCi8vICAgICAgLSBULT5N
YWtlQ2xhc3MoIk15Q2xhc3MiKTsNCi8vICAgd2hlcmUgVCBpcyB0aGUgbmFt
ZSBvZiB0aGUgVHJlZSBpbiB0aGUgbXlmaWxlLnJvb3QgZmlsZSwNCi8vICAg
YW5kIE15Q2xhc3MuaHh4LCBNeUNsYXNzLmN4eCBhcmUgbmFtZXMgb2YgZmls
ZXMgY3JlYXRlZCBieSB0aGlzIGZ1bmN0aW9uLg0KLy8gICBJbiBhIFJvb3Qg
c2Vzc2lvbiwgeW91IGNhbiBkbzoNCi8vICAgICAgUm9vdCA+IC5MIE15Q2xh
c3MuY3h4DQovLyAgICAgIFJvb3QgPiBNeUNsYXNzIHQNCi8vICAgICAgUm9v
dCA+IHQuR2V0RXZlbnQoMTIpOyAvLyBGaWxsIHQgZGF0YSBtZW1iZXJzIHdp
dGggZXZlbnQgbnVtYmVyIDEyDQovLyAgICAgIFJvb3QgPiB0LlNob3coKTsg
ICAgICAgLy8gU2hvdyB2YWx1ZXMgb2YgZXZlbnQgMTINCi8vICAgICAgUm9v
dCA+IHQuU2hvdygxNik7ICAgICAvLyBSZWFkIGFuZCBzaG93IHZhbHVlcyBv
ZiBldmVudCAxNg0KLy8gICAgICBSb290ID4gdC5Mb29wKCk7ICAgICAgIC8v
IExvb3Agb24gYWxsIGV2ZW50cw0KLy8NCi8vPT09PT4NCg0KLy8gQ2hlY2sg
YWdhaW5zdCBhbiBpbnZhbGlkIFRyZWUgcG9pbnRlcg0KICAgaWYgKCF0KSBy
ZXR1cm4gMTsNCiAgIGlmICghdC0+SXNBKCktPkluaGVyaXRzRnJvbSgiVFRy
ZWUiKSkgew0KICAgICAgcHJpbnRmKCJBdHRlbXB0IHRvIE1ha2VDbGFzcyBm
b3IgYSBub24tVFRyZWUgb2JqZWN0XG4iKTsNCiAgICAgIHJldHVybiAyOw0K
ICAgfQ0KDQovLyBDb25uZWN0IG91dHB1dCBmaWxlcw0KICAgY2hhciAqdGhl
YWQgPSBuZXcgY2hhclsyNTZdOw0KDQogICBpZiAoIWNsYXNzbmFtZSkgY2xh
c3NuYW1lID0gdC0+R2V0TmFtZSgpOw0KICAgc3ByaW50Zih0aGVhZCwiJXMu
aHh4IixjbGFzc25hbWUpOw0KICAgRklMRSAqZnAgPSBmb3Blbih0aGVhZCwi
dyIpOw0KICAgaWYgKCFmcCkgew0KICAgICAgcHJpbnRmKCJDYW5ub3Qgb3Bl
biBvdXRwdXQgZmlsZTolc1xuIix0aGVhZCk7DQogICAgICBkZWxldGUgW10g
dGhlYWQ7DQogICAgICByZXR1cm4gMzsNCiAgIH0NCiAgIGNoYXIgKnRjaW1w
ID0gbmV3IGNoYXJbMjU2XTsNCiAgIHNwcmludGYodGNpbXAsIiVzLmN4eCIs
Y2xhc3NuYW1lKTsNCiAgIEZJTEUgKmZwYyA9IGZvcGVuKHRjaW1wLCJ3Iik7
DQogICBpZiAoIWZwYykgew0KICAgICAgcHJpbnRmKCJDYW5ub3Qgb3BlbiBv
dXRwdXQgZmlsZTolc1xuIix0Y2ltcCk7DQogICAgICBkZWxldGUgW10gdGhl
YWQ7DQogICAgICBkZWxldGUgW10gdGNpbXA7DQogICAgICByZXR1cm4gMzsN
CiAgIH0NCiAgIGNoYXIgKnRyZWVmaWxlID0gbmV3IGNoYXJbMTAwMF07DQog
ICBpZiAodC0+R2V0RGlyZWN0b3J5KCkgJiYgdC0+R2V0RGlyZWN0b3J5KCkt
PkdldEZpbGUoKSkNCiAgICAgICAgICAgICAgICBzdHJjcHkodHJlZWZpbGUs
dC0+R2V0RGlyZWN0b3J5KCktPkdldEZpbGUoKS0+R2V0TmFtZSgpKTsNCiAg
IGVsc2UgICAgICAgICBzdHJjcHkodHJlZWZpbGUsIk1lbW9yeSBEaXJlY3Rv
cnkiKTsNCg0KLy89PT09PT09PT09PT09PT09PT09PT09R2VuZXJhdGUgY2xh
c3NuYW1lLmh4eD09PT09PT09PT09PT09PT09PT09PQ0KICAgLy8gUHJpbnQg
aGVhZGVyDQogICBUT2JqQXJyYXkgKmxlYXZlcyA9IHQtPkdldExpc3RPZkxl
YXZlcygpOw0KICAgSW50X3QgbmxlYXZlcyA9IGxlYXZlcy0+R2V0RW50cmll
c0Zhc3QoKTsNCiAgIFREYXRpbWUgdGQ7DQogICBmcHJpbnRmKGZwLCIvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vXG4iKTsNCiAgIGZwcmludGYoZnAsIi8vICAgVGhpcyBjbGFz
cyBoYXMgYmVlbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBcbiIpOw0KICAg
ZnByaW50ZihmcCwiLy8gICAgICglcyBieSBST09UIHZlcnNpb24lcylcbiIs
dGQuQXNTdHJpbmcoKSxnUk9PVC0+R2V0VmVyc2lvbigpKTsNCiAgIGZwcmlu
dGYoZnAsIi8vICAgZnJvbSBUVHJlZSAlcy8lc1xuIix0LT5HZXROYW1lKCks
dC0+R2V0VGl0bGUoKSk7DQogICBmcHJpbnRmKGZwLCIvLyAgIGZvdW5kIG9u
IGZpbGU6ICVzXG4iLHRyZWVmaWxlKTsNCiAgIGZwcmludGYoZnAsIi8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy9cbiIpOw0KICAgZnByaW50ZihmcCwiXG4iKTsNCiAgIGZwcmlu
dGYoZnAsIlxuIik7DQogICBmcHJpbnRmKGZwLCIjaWZuZGVmICVzX2h4eFxu
IixjbGFzc25hbWUpOw0KICAgZnByaW50ZihmcCwiI2RlZmluZSAlc19oeHhc
biIsY2xhc3NuYW1lKTsNCiAgIGZwcmludGYoZnAsIlxuIik7DQogICBmcHJp
bnRmKGZwLCIjaWZuZGVmIF9fQ0lOVF9fXG4iKTsNCiAgIGZwcmludGYoZnAs
IiNpbmNsdWRlIFwiVFJPT1QuaFwiXG4iKTsNCiAgIGZwcmludGYoZnAsIiNp
bmNsdWRlIFwiVEJyYW5jaC5oXCJcbiIpOw0KICAgZnByaW50ZihmcCwiI2lu
Y2x1ZGUgXCJUVHJlZS5oXCJcbiIpOw0KICAgZnByaW50ZihmcCwiI2luY2x1
ZGUgXCJURmlsZS5oXCJcbiIpOw0KICAgZnByaW50ZihmcCwiI2Vsc2VcbiIp
Ow0KICAgZnByaW50ZihmcCwiY2xhc3MgVEJyYW5jaDtcbiIpOw0KICAgZnBy
aW50ZihmcCwiY2xhc3MgVFRyZWU7XG4iKTsNCiAgIGZwcmludGYoZnAsImNs
YXNzIFRGaWxlO1xuIik7DQogICBmcHJpbnRmKGZwLCIjZW5kaWZcbiIpOw0K
ICAgZnByaW50ZihmcCwiXG4iKTsNCiAgIGZwcmludGYoZnAsImNsYXNzICVz
IHtcbiIsY2xhc3NuYW1lKTsNCiAgIGZwcmludGYoZnAsIiAgIHB1YmxpYyA6
XG4iKTsNCiAgIGZwcmludGYoZnAsIiAgIFRUcmVlICAgICAgICAgICpmVHJl
ZTsgLy9wb2ludGVyIHRvIHRoZSBhbmFseXplZCBUVHJlZVxuIik7DQogICBm
cHJpbnRmKGZwLCIgICBJbnRfdCAgICAgICAgICBmRXZlbnQ7IC8vY3VycmVu
dCBFdmVudCBudW1iZXJcbiIpOw0KDQoNCi8vIEZpcnN0IGxvb3Agb24gYWxs
IGJyYW5jaGVzIHRvIGdlbmVyYXRlIGJyYW5jaCBkZWNsYXJhdGlvbnMNCiAg
IGZwcmludGYoZnAsIi8vRGVjbGFyYXRpb24gb2YgYnJhbmNoZXNcbiIpOw0K
ICAgSW50X3QgbmIsIGk7DQogICBuYiA9IHQtPkdldExpc3RPZkJyYW5jaGVz
KCkuR2V0RW50cmllc0Zhc3QoKTsNCiAgIGZvciAoaT0wO2k8bmI7aSsrKSAg
ew0KICAgICAgYnJhbmNoID0gKFRCcmFuY2gqKXQtPkdldExpc3RPZkJyYW5j
aGVzKCkuVW5jaGVja2VkQXQoaSk7DQogICAgICBmcHJpbnRmKGZwLCIlcyUt
MTVzIGJyYW5jaF8lcztcbiIsIiAgICIsIkludF90IiwgYnJhbmNoLT5HZXRO
YW1lKCkpOw0KICAgICAgZnByaW50ZihmcCwiJXMlLTE1cyAqYnJhbmNoX3Bv
aW50ZXJfJXM7XG4iLCIgICAiLCJUQnJhbmNoIiwgYnJhbmNoLT5HZXROYW1l
KCkpOw0KICAgfQ0KDQovLyBGaXJzdCBsb29wIG9uIGFsbCBsZWF2ZXMgdG8g
Z2VuZXJhdGUgbGVhZiBkZWNsYXJhdGlvbnMNCiAgIGZwcmludGYoZnAsIi8v
RGVjbGFyYXRpb24gb2YgbGVhdmVzXG4iKTsNCiAgIEludF90IGxlbiwgbDsN
CiAgIFRMZWFmICpsZWFmY291bnQ7DQogICBUTGVhZk9iamVjdCAqbGVhZm9i
ajsNCiAgIGNoYXIgKmJuYW1lOw0KICAgY29uc3QgY2hhciAqaGVhZE9LICA9
ICIgICAiOw0KICAgY29uc3QgY2hhciAqaGVhZGNvbSA9ICIgLy8iOw0KICAg
Y29uc3QgY2hhciAqaGVhZDsNCiAgIGNoYXIgYnJhbmNobmFtZVs2NF07DQog
ICBmb3IgKGw9MDtsPG5sZWF2ZXM7bCsrKSB7DQogICAgICBUTGVhZiAqbGVh
ZiA9IChUTGVhZiopbGVhdmVzLT5VbmNoZWNrZWRBdChsKTsNCiAgICAgIGxl
biA9IGxlYWYtPkdldExlbigpOw0KICAgICAgbGVhZmNvdW50ID1sZWFmLT5H
ZXRMZWFmQ291bnQoKTsNCiAgICAgIFRCcmFuY2ggKmJyYW5jaCA9IGxlYWYt
PkdldEJyYW5jaCgpOw0KICAgICAgaWYgKGxlYWZjb3VudCkgc3RyY3B5KGJy
YW5jaG5hbWUsYnJhbmNoLT5HZXROYW1lKCkpOw0KICAgICAgZWxzZSAgICAg
ICAgICAgc3RyY3B5KGJyYW5jaG5hbWUsbGVhZi0+R2V0VGl0bGUoKSk7DQog
ICAgICBjaGFyICp0d29kaW0gPSAoY2hhciopc3Ryc3RyKGxlYWYtPkdldFRp
dGxlKCksIl1bIik7DQogICAgICBibmFtZSA9IGJyYW5jaG5hbWU7DQogICAg
ICB3aGlsZSAoKmJuYW1lKSB7aWYgKCpibmFtZSA9PSAnLicpICpibmFtZT0n
Xyc7IGJuYW1lKys7fQ0KICAgICAgaWYgKGJyYW5jaC0+SXNBKCkgPT0gVEJy
YW5jaE9iamVjdDo6Q2xhc3MoKSkgew0KICAgICAgICAgaWYgKGJyYW5jaC0+
R2V0TGlzdE9mQnJhbmNoZXMoKS0+R2V0RW50cmllc0Zhc3QoKSkgY29udGlu
dWU7DQogICAgICAgICBsZWFmb2JqID0gKFRMZWFmT2JqZWN0KilsZWFmOw0K
ICAgICAgICAgaWYgKGxlYWZvYmotPkdldENsYXNzKCkpIGhlYWQgPSBoZWFk
T0s7DQogICAgICAgICBlbHNlICAgICAgICAgICAgICAgICAgICAgaGVhZCA9
IGhlYWRjb207DQogICAgICAgICBmcHJpbnRmKGZwLCIlcyUtMTVzIColcztc
biIsaGVhZCxsZWFmb2JqLT5HZXRUeXBlTmFtZSgpLCBsZWFmb2JqLT5HZXRO
YW1lKCkpOw0KICAgICAgICAgY29udGludWU7DQogICAgICB9DQogICAgICBp
ZiAobGVhZmNvdW50KSB7DQogICAgICAgICBsZW4gPSBsZWFmY291bnQtPkdl
dE1heGltdW0oKTsNCiAgICAgICAgIGlmICh0d29kaW0pIHsNCiAgICAgICAg
ICAgIGZwcmludGYoZnAsIiAgICUtMTVzICVzWyVkXSVzO1xuIixsZWFmLT5H
ZXRUeXBlTmFtZSgpLCBicmFuY2huYW1lLGxlbiwoY2hhciopKHR3b2RpbSsx
KSk7DQogICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgZnByaW50Zihm
cCwiICAgJS0xNXMgJXNbJWRdO1xuIixsZWFmLT5HZXRUeXBlTmFtZSgpLCBi
cmFuY2huYW1lLGxlbik7DQogICAgICAgICB9DQogICAgICB9IGVsc2Ugew0K
ICAgICAgICAgZnByaW50ZihmcCwiICAgJS0xNXMgbGVhZl8lcztcbiIsbGVh
Zi0+R2V0VHlwZU5hbWUoKSwgYnJhbmNobmFtZSk7DQogICAgICAgICBmcHJp
bnRmKGZwLCIgICAlLTE1cyAmJXMoKSB7IixsZWFmLT5HZXRUeXBlTmFtZSgp
LCBicmFuY2huYW1lKTsNCiAgICAgICAgIGZwcmludGYoZnAsImlmIChicmFu
Y2hfJXMpIHJldHVybiBsZWFmXyVzOyIsYnJhbmNoLT5HZXROYW1lKCksIGJy
YW5jaG5hbWUpOw0KICAgICAgICAgZnByaW50ZihmcCwiYnJhbmNoX3BvaW50
ZXJfJXMtPkdldEV2ZW50KGZFdmVudCk7IixicmFuY2gtPkdldE5hbWUoKSk7
DQogICAgICAgICBmcHJpbnRmKGZwLCJicmFuY2hfJXMgPSAxOyByZXR1cm4g
bGVhZl8lczt9XG4iLGJyYW5jaC0+R2V0TmFtZSgpLCBicmFuY2huYW1lKTsN
CiAgICAgICAgIC8vIGZwcmludGYoZnAsIiAgICUtMTVzICVzKCVzIHZhbHVl
KSB7cmV0dXJuIGxlYWZfJXMgPSB2YWx1ZTt9XG4iLGxlYWYtPkdldFR5cGVO
YW1lKCksIGJyYW5jaG5hbWUsIGxlYWYtPkdldFR5cGVOYW1lKCksIGJyYW5j
aG5hbWUpOw0KICAgICAgfQ0KICAgfQ0KDQovLyBnZW5lcmF0ZSBjbGFzcyBt
ZW1iZXIgZnVuY3Rpb25zIHByb3RvdHlwZXMNCiAgIGZwcmludGYoZnAsIlxu
Iik7DQogICBmcHJpbnRmKGZwLCIgICAlcyhUVHJlZSAqdHJlZSA9IDApO1xu
IixjbGFzc25hbWUpOw0KICAgZnByaW50ZihmcCwiICAgfiVzKCkgezt9XG4i
LGNsYXNzbmFtZSk7DQogICBmcHJpbnRmKGZwLCIgICBJbnRfdCBHZXRFdmVu
dChJbnRfdCBldmVudCk7XG4iKTsNCiAgIGZwcmludGYoZnAsIiAgIHZvaWQg
SW5pdChUVHJlZSAqdHJlZSk7XG4iKTsNCiAgIGZwcmludGYoZnAsIiAgIHZv
aWQgTG9vcCgpO1xuIik7DQogICBmcHJpbnRmKGZwLCIgICB2b2lkIFNob3co
SW50X3QgZXZlbnQgPSAtMSk7XG4iKTsNCiAgIGZwcmludGYoZnAsIn07XG4i
KTsNCiAgIGZwcmludGYoZnAsIlxuIik7DQogICBmcHJpbnRmKGZwLCIjZW5k
aWZcbiIpOw0KICAgZnByaW50ZihmcCwiXG4iKTsNCg0KICAgZnByaW50Zihm
cCwiI2lmZGVmICVzX2N4eFxuIixjbGFzc25hbWUpOw0KICAgZnByaW50Zihm
cCwiXG4iKTsNCg0KLy8gZ2VuZXJhdGUgY29kZSBmb3IgY2xhc3MgY29uc3Ry
dWN0b3INCiAgIGZwcmludGYoZnAsIiVzOjolcyhUVHJlZSAqdHJlZSlcbiIs
Y2xhc3NuYW1lLGNsYXNzbmFtZSk7DQogICBmcHJpbnRmKGZwLCJ7XG4iKTsN
CiAgIGZwcmludGYoZnAsIi8vIGlmIHBhcmFtZXRlciB0cmVlIGlzIG5vdCBz
cGVjaWZpZWQgKG9yIHplcm8pLCBjb25uZWN0IHRoZSBmaWxlXG4iKTsNCiAg
IGZwcmludGYoZnAsIi8vIHVzZWQgdG8gZ2VuZXJhdGUgdGhpcyBjbGFzcyBh
bmQgcmVhZCB0aGUgVHJlZS5cbiIpOw0KICAgZnByaW50ZihmcCwiICAgaWYg
KHRyZWUgPT0gMCkge1xuIik7DQogICBmcHJpbnRmKGZwLCIgICAgICBURmls
ZSAqZiA9IChURmlsZSopZ1JPT1QtPkdldExpc3RPZkZpbGVzKCktPkZpbmRP
YmplY3QoXCIlc1wiKTtcbiIsdHJlZWZpbGUpOw0KICAgZnByaW50ZihmcCwi
ICAgICAgaWYgKCFmKSB7XG4iKTsNCiAgIGZwcmludGYoZnAsIiAgICAgICAg
IGYgPSBuZXcgVEZpbGUoXCIlc1wiKTtcbiIsdHJlZWZpbGUpOw0KICAgZnBy
aW50ZihmcCwiICAgICAgfVxuIik7DQogICBmcHJpbnRmKGZwLCIgICAgICB0
cmVlID0gKFRUcmVlKilnRGlyZWN0b3J5LT5HZXQoXCIlc1wiKTtcblxuIix0
LT5HZXROYW1lKCkpOw0KICAgZnByaW50ZihmcCwiICAgfVxuIik7DQogICBm
cHJpbnRmKGZwLCIgICBJbml0KHRyZWUpO1xuIik7DQogICBmcHJpbnRmKGZw
LCJ9XG4iKTsNCiAgIGZwcmludGYoZnAsIlxuIik7DQoNCi8vIGdlbmVyYXRl
IGNvZGUgZm9yIGNsYXNzIG1lbWJlciBmdW5jdGlvbiBHZXRFdmVudCgpDQog
ICBmcHJpbnRmKGZwLCJJbnRfdCAlczo6R2V0RXZlbnQoSW50X3QgZXZlbnQp
XG4iLGNsYXNzbmFtZSk7DQogICBmcHJpbnRmKGZwLCJ7XG4iKTsNCiAgIGZw
cmludGYoZnAsIi8vIFJlYWQgc3BlY2lmaWVkIGV2ZW50IGZyb20gdGhlIFRy
ZWUgaW50byBkYXRhIG1lbWJlcnNcbiIpOw0KICAgZnByaW50ZihmcCwiICAg
aWYgKCFmVHJlZSkgcmV0dXJuIDA7XG4iKTsNCiAgIGZwcmludGYoZnAsIiAg
IC8vIGlmIChmRXZlbnQ9PWV2ZW50KSByZXR1cm4gMTtcbiIpOw0KICAgbmIg
PSB0LT5HZXRMaXN0T2ZCcmFuY2hlcygpLkdldEVudHJpZXNGYXN0KCk7DQog
ICBmb3IgKGk9MDtpPG5iO2krKykgIHsNCiAgICAgIGJyYW5jaCA9IChUQnJh
bmNoKil0LT5HZXRMaXN0T2ZCcmFuY2hlcygpLlVuY2hlY2tlZEF0KGkpOw0K
ICAgICAgZnByaW50ZihmcCwiICAgYnJhbmNoXyVzID0gMDtcbiIsYnJhbmNo
LT5HZXROYW1lKCkpOw0KICAgfQ0KICAgZnByaW50ZihmcCwiICAgZkV2ZW50
ID0gZXZlbnQ7XG4iKTsNCiAgIGZwcmludGYoZnAsIiAgIHJldHVybiAxO1xu
Iik7DQogICBmcHJpbnRmKGZwLCJ9XG4iKTsNCiAgIGZwcmludGYoZnAsIlxu
Iik7DQoNCg0KLy8gZ2VuZXJhdGUgY29kZSBmb3IgY2xhc3MgbWVtYmVyIGZ1
bmN0aW9uIEluaXQoKQ0KICAgZnByaW50ZihmcCwidm9pZCAlczo6SW5pdChU
VHJlZSAqdHJlZSlcbiIsY2xhc3NuYW1lKTsNCiAgIGZwcmludGYoZnAsIntc
biIpOw0KICAgZnByaW50ZihmcCwiLy8gICBTZXQgYnJhbmNoIGFkZHJlc3Nl
c1xuIik7DQogICBmcHJpbnRmKGZwLCIgICBpZiAodHJlZSA9PSAwKSByZXR1
cm47XG4iKTsNCiAgIGZwcmludGYoZnAsIiAgIGZUcmVlID0gdHJlZTtcbiIp
Ow0KICAgZm9yIChsPTA7bDxubGVhdmVzO2wrKykgew0KICAgICAgVExlYWYg
KmxlYWYgPSAoVExlYWYqKWxlYXZlcy0+VW5jaGVja2VkQXQobCk7DQogICAg
ICBsZW4gPSBsZWFmLT5HZXRMZW4oKTsNCiAgICAgIGxlYWZjb3VudCA9bGVh
Zi0+R2V0TGVhZkNvdW50KCk7DQogICAgICBUQnJhbmNoICpicmFuY2ggPSBs
ZWFmLT5HZXRCcmFuY2goKTsNCiAgICAgIGlmIChsZWFmY291bnQpIHN0cmNw
eShicmFuY2huYW1lLGJyYW5jaC0+R2V0TmFtZSgpKTsNCiAgICAgIGVsc2Ug
ICAgICAgICAgIHN0cmNweShicmFuY2huYW1lLGxlYWYtPkdldFRpdGxlKCkp
Ow0KICAgICAgYm5hbWUgPSBicmFuY2huYW1lOw0KICAgICAgd2hpbGUgKCpi
bmFtZSkge2lmICgqYm5hbWUgPT0gJy4nKSAqYm5hbWU9J18nOyBibmFtZSsr
O30NCiAgICAgIGNoYXIgKmJyYWsgPSBzdHJzdHIoYnJhbmNobmFtZSwiWyIp
Ow0KICAgICAgaWYgKGJyYWspICpicmFrID0gMDsNCiAgICAgIGhlYWQgPSBo
ZWFkT0s7DQogICAgICBpZiAoYnJhbmNoLT5Jc0EoKSA9PSBUQnJhbmNoT2Jq
ZWN0OjpDbGFzcygpKSB7DQogICAgICAgICBpZiAoYnJhbmNoLT5HZXRMaXN0
T2ZCcmFuY2hlcygpLT5HZXRFbnRyaWVzRmFzdCgpKSBjb250aW51ZTsNCiAg
ICAgICAgIGxlYWZvYmogPSAoVExlYWZPYmplY3QqKWxlYWY7DQogICAgICAg
ICBpZiAoIWxlYWZvYmotPkdldENsYXNzKCkpIGhlYWQgPSBoZWFkY29tOw0K
ICAgICAgICAgc3RyY3B5KGJyYW5jaG5hbWUsYnJhbmNoLT5HZXROYW1lKCkp
Ow0KICAgICAgfQ0KICAgICAgaWYgKGxlYWZjb3VudCkgbGVuID0gbGVhZmNv
dW50LT5HZXRNYXhpbXVtKCkrMTsNCiAgICAgIGlmIChsZW4gPiAxKSBmcHJp
bnRmKGZwLCIgICAlc2ZUcmVlLT5TZXRCcmFuY2hBZGRyZXNzKFwiJXNcIiwl
cyk7XG4iLGhlYWQsYnJhbmNoLT5HZXROYW1lKCksYnJhbmNobmFtZSk7DQog
ICAgICBlbHNlICAgICAgICAgZnByaW50ZihmcCwiICAgJXNmVHJlZS0+U2V0
QnJhbmNoQWRkcmVzcyhcIiVzXCIsJmxlYWZfJXMpO1xuIixoZWFkLGJyYW5j
aC0+R2V0TmFtZSgpLGJyYW5jaG5hbWUpOw0KICAgfQ0KICAgZnByaW50Zihm
cCwiICAgZlRyZWUtPlNldEJyYW5jaFN0YXR1cyhcIipcIiwwKTsgIC8vIGRp
c2FibGUgYWxsIGJyYW5jaGVzXG4iKTsNCiAgIG5iID0gdC0+R2V0TGlzdE9m
QnJhbmNoZXMoKS5HZXRFbnRyaWVzRmFzdCgpOw0KICAgZm9yIChpPTA7aTxu
YjtpKyspICB7DQogICAgICBicmFuY2ggPSAoVEJyYW5jaCopdC0+R2V0TGlz
dE9mQnJhbmNoZXMoKS5VbmNoZWNrZWRBdChpKTsNCiAgICAgIGZwcmludGYo
ZnAsIiAgIGJyYW5jaF8lcyA9IDA7XG4iLGJyYW5jaC0+R2V0TmFtZSgpKTsN
CiAgICAgIGZwcmludGYoZnAsIiAgIGJyYW5jaF9wb2ludGVyXyVzID0gZlRy
ZWUtPkdldEJyYW5jaChcIiVzXCIpO1xuIixicmFuY2gtPkdldE5hbWUoKSxi
cmFuY2gtPkdldE5hbWUoKSk7DQogICB9DQogICBmcHJpbnRmKGZwLCIgICBm
RXZlbnQgPSAtMTtcbiIpOw0KICAgZnByaW50ZihmcCwifVxuIik7DQogICBm
cHJpbnRmKGZwLCJcbiIpOw0KDQovLyBnZW5lcmF0ZSBjb2RlIGZvciBjbGFz
cyBtZW1iZXIgZnVuY3Rpb24gU2hvdygpDQogICBmcHJpbnRmKGZwLCJ2b2lk
ICVzOjpTaG93KEludF90IGV2ZW50KVxuIixjbGFzc25hbWUpOw0KICAgZnBy
aW50ZihmcCwie1xuIik7DQogICBmcHJpbnRmKGZwLCIvLyBQcmludCBjb250
ZW50cyBvZiBldmVudC5cbiIpOw0KICAgZnByaW50ZihmcCwiLy8gSWYgZXZl
bnQgaXMgbm90IHNwZWNpZmllZCwgcHJpbnQgY3VycmVudCBldmVudFxuIik7
DQoNCiAgIGZwcmludGYoZnAsIiAgIGlmICghZlRyZWUpIHJldHVybjtcbiIp
Ow0KICAgZnByaW50ZihmcCwiICAgaWYgKGV2ZW50Pj0wKSBmRXZlbnQgPSBl
dmVudDtcbiIpOw0KICAgZnByaW50ZihmcCwiICAgZWxzZSBldmVudCA9IGZF
dmVudDtcbiIpOw0KICAgZnByaW50ZihmcCwiICAgaWYgKGZFdmVudDwwKSBy
ZXR1cm47XG4iKTsNCiAgIGZwcmludGYoZnAsIiAgIGZUcmVlLT5TZXRCcmFu
Y2hTdGF0dXMoXCIqXCIsMSk7ICAvLyBlbmFibGUgYWxsIGJyYW5jaGVzXG4i
KTsNCiAgIGZwcmludGYoZnAsIiAgIGZUcmVlLT5TaG93KGZFdmVudCk7XG4i
KTsNCiAgIGZwcmludGYoZnAsIiAgIGZUcmVlLT5TZXRCcmFuY2hTdGF0dXMo
XCIqXCIsMCk7ICAvLyBkaXNhYmxlIGFsbCBicmFuY2hlc1xuIik7DQogICBu
YiA9IHQtPkdldExpc3RPZkJyYW5jaGVzKCkuR2V0RW50cmllc0Zhc3QoKTsN
CiAgIGZvciAoaT0wO2k8bmI7aSsrKSAgew0KICAgICAgYnJhbmNoID0gKFRC
cmFuY2gqKXQtPkdldExpc3RPZkJyYW5jaGVzKCkuVW5jaGVja2VkQXQoaSk7
DQogICAgICBmcHJpbnRmKGZwLCIgICBicmFuY2hfJXMgPSAxO1xuIixicmFu
Y2gtPkdldE5hbWUoKSk7DQogICB9DQogICBmcHJpbnRmKGZwLCJ9XG4iKTsN
CiAgIGZwcmludGYoZnAsIlxuIik7DQoNCiAgIGZwcmludGYoZnAsIiNlbmRp
ZlxuIik7DQogICBmcHJpbnRmKGZwLCJcbiIpOw0KDQovLz09PT09PT09PT09
PT09PT09PT09PT1HZW5lcmF0ZSBjbGFzc25hbWUuY3h4PT09PT09PT09PT09
PT09PT09PT09DQovLyBnZW5lcmF0ZSBjb2RlIGZvciBjbGFzcyBtZW1iZXIg
ZnVuY3Rpb24gTG9vcCgpDQogICBmcHJpbnRmKGZwYywiI2lmbmRlZiAlc19j
eHhcbiIsY2xhc3NuYW1lKTsNCiAgIGZwcmludGYoZnBjLCIjZGVmaW5lICVz
X2N4eFxuIixjbGFzc25hbWUpOw0KICAgZnByaW50ZihmcGMsIiNlbmRpZlxu
Iik7DQogICBmcHJpbnRmKGZwYywiXG4iKTsNCiAgIGZwcmludGYoZnBjLCIj
aW5jbHVkZSBcIiVzXCJcbiIsdGhlYWQpOw0KICAgZnByaW50ZihmcGMsIlxu
Iik7DQogICBmcHJpbnRmKGZwYywiI2lmbmRlZiBfX0NJTlRfX1xuIik7DQog
ICBmcHJpbnRmKGZwYywiLy8gUGxhY2UgaGVyZSBhbGwgUk9PVCByZWxhdGVk
IGluY2x1ZGVzIHRoYXQgeW91IG5lZWRcbiIpOw0KICAgZnByaW50ZihmcGMs
IiNlbmRpZlxuIik7DQogICBmcHJpbnRmKGZwYywiXG4iKTsNCiAgIGZwcmlu
dGYoZnBjLCJ2b2lkICVzOjpMb29wKClcbiIsY2xhc3NuYW1lKTsNCiAgIGZw
cmludGYoZnBjLCJ7XG4iKTsNCiAgIGZwcmludGYoZnBjLCJcbi8vICAgICBU
aGlzIGlzIHRoZSBsb29wIHNrZWxldG9uXG4iKTsNCiAgIGZwcmludGYoZnBj
LCIgICBpZiAoZlRyZWUgPT0gMCkgcmV0dXJuO1xuIik7DQogICBmcHJpbnRm
KGZwYywiXG4gICBTdGF0X3QgbmVudHJpZXMgPSBmVHJlZS0+R2V0RW50cmll
cygpO1xuIik7DQogICBmcHJpbnRmKGZwYywiXG4gICBJbnRfdCBuYnl0ZXMg
PSAwLCBuYiA9IDA7XG4iKTsNCiAgIGZwcmludGYoZnBjLCIgICAgIGZvciAo
SW50X3QgaT0wOyBpPG5lbnRyaWVzO2krKykge1xuIik7DQogICBmcHJpbnRm
KGZwYywiICAgICAgICBuYiA9IGZUcmVlLT5HZXRFdmVudChpKTsgICBuYnl0
ZXMgKz0gbmI7XG4iKTsNCiAgIGZwcmludGYoZnBjLCIgICAgIH1cbiIpOw0K
ICAgZnByaW50ZihmcGMsIn1cbiIpOw0KICAgZnByaW50ZihmcGMsIlxuIik7
DQoNCiAgIHByaW50ZigiRmlsZXM6ICVzIGFuZCAlcyBnZW5lcmF0ZWQgZnJv
bSBUcmVlOiAlc1xuIix0aGVhZCx0Y2ltcCx0LT5HZXROYW1lKCkpOw0KICAg
ZGVsZXRlIFtdIHRoZWFkOw0KICAgZGVsZXRlIFtdIHRjaW1wOw0KICAgZGVs
ZXRlIFtdIHRyZWVmaWxlOw0KICAgZmNsb3NlKGZwKTsNCiAgIGZjbG9zZShm
cGMpOw0KDQogICByZXR1cm4gMDsNCn0NCg0KLy9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXw0K
---559023410-851401618-924270283=:12703
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="ntuple.hxx"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.3.96.990416154443.12703C@uranos.cto.us.edu.pl>
Content-Description: ntuple.hxx
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLw0KLy8gICBUaGlzIGNsYXNzIGhhcyBiZWVuIGF1dG9t
YXRpY2FsbHkgZ2VuZXJhdGVkIA0KLy8gICAgIChGcmkgQXByIDE2IDE1OjM1
OjIxIDE5OTkgYnkgUk9PVCB2ZXJzaW9uIDIuMjEvMDgpDQovLyAgIGZyb20g
VFRyZWUgbnR1cGxlL0RlbW8gbnR1cGxlDQovLyAgIGZvdW5kIG9uIGZpbGU6
IGhzaW1wbGUucm9vdA0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KDQoNCiNpZm5kZWYgbnR1
cGxlX2h4eA0KI2RlZmluZSBudHVwbGVfaHh4DQoNCiNpZm5kZWYgX19DSU5U
X18NCiNpbmNsdWRlICJUUk9PVC5oIg0KI2luY2x1ZGUgIlRCcmFuY2guaCIN
CiNpbmNsdWRlICJUVHJlZS5oIg0KI2luY2x1ZGUgIlRGaWxlLmgiDQojZWxz
ZQ0KY2xhc3MgVEJyYW5jaDsNCmNsYXNzIFRUcmVlOw0KY2xhc3MgVEZpbGU7
DQojZW5kaWYNCg0KY2xhc3MgbnR1cGxlIHsNCiAgIHB1YmxpYyA6DQogICBU
VHJlZSAgICAgICAgICAqZlRyZWU7IC8vcG9pbnRlciB0byB0aGUgYW5hbHl6
ZWQgVFRyZWUNCiAgIEludF90ICAgICAgICAgIGZFdmVudDsgLy9jdXJyZW50
IEV2ZW50IG51bWJlcg0KLy9EZWNsYXJhdGlvbiBvZiBicmFuY2hlcw0KICAg
SW50X3QgICAgICAgICAgIGJyYW5jaF9weDsNCiAgIFRCcmFuY2ggICAgICAg
ICAqYnJhbmNoX3BvaW50ZXJfcHg7DQogICBJbnRfdCAgICAgICAgICAgYnJh
bmNoX3B5Ow0KICAgVEJyYW5jaCAgICAgICAgICpicmFuY2hfcG9pbnRlcl9w
eTsNCiAgIEludF90ICAgICAgICAgICBicmFuY2hfcHo7DQogICBUQnJhbmNo
ICAgICAgICAgKmJyYW5jaF9wb2ludGVyX3B6Ow0KICAgSW50X3QgICAgICAg
ICAgIGJyYW5jaF9yYW5kb207DQogICBUQnJhbmNoICAgICAgICAgKmJyYW5j
aF9wb2ludGVyX3JhbmRvbTsNCiAgIEludF90ICAgICAgICAgICBicmFuY2hf
aTsNCiAgIFRCcmFuY2ggICAgICAgICAqYnJhbmNoX3BvaW50ZXJfaTsNCi8v
RGVjbGFyYXRpb24gb2YgbGVhdmVzDQogICBGbG9hdF90ICAgICAgICAgbGVh
Zl9weDsNCiAgIEZsb2F0X3QgICAgICAgICAmcHgoKSB7aWYgKGJyYW5jaF9w
eCkgcmV0dXJuIGxlYWZfcHg7YnJhbmNoX3BvaW50ZXJfcHgtPkdldEV2ZW50
KGZFdmVudCk7YnJhbmNoX3B4ID0gMTsgcmV0dXJuIGxlYWZfcHg7fQ0KICAg
RmxvYXRfdCAgICAgICAgIGxlYWZfcHk7DQogICBGbG9hdF90ICAgICAgICAg
JnB5KCkge2lmIChicmFuY2hfcHkpIHJldHVybiBsZWFmX3B5O2JyYW5jaF9w
b2ludGVyX3B5LT5HZXRFdmVudChmRXZlbnQpO2JyYW5jaF9weSA9IDE7IHJl
dHVybiBsZWFmX3B5O30NCiAgIEZsb2F0X3QgICAgICAgICBsZWFmX3B6Ow0K
ICAgRmxvYXRfdCAgICAgICAgICZweigpIHtpZiAoYnJhbmNoX3B6KSByZXR1
cm4gbGVhZl9wejticmFuY2hfcG9pbnRlcl9wei0+R2V0RXZlbnQoZkV2ZW50
KTticmFuY2hfcHogPSAxOyByZXR1cm4gbGVhZl9wejt9DQogICBGbG9hdF90
ICAgICAgICAgbGVhZl9yYW5kb207DQogICBGbG9hdF90ICAgICAgICAgJnJh
bmRvbSgpIHtpZiAoYnJhbmNoX3JhbmRvbSkgcmV0dXJuIGxlYWZfcmFuZG9t
O2JyYW5jaF9wb2ludGVyX3JhbmRvbS0+R2V0RXZlbnQoZkV2ZW50KTticmFu
Y2hfcmFuZG9tID0gMTsgcmV0dXJuIGxlYWZfcmFuZG9tO30NCiAgIEZsb2F0
X3QgICAgICAgICBsZWFmX2k7DQogICBGbG9hdF90ICAgICAgICAgJmkoKSB7
aWYgKGJyYW5jaF9pKSByZXR1cm4gbGVhZl9pO2JyYW5jaF9wb2ludGVyX2kt
PkdldEV2ZW50KGZFdmVudCk7YnJhbmNoX2kgPSAxOyByZXR1cm4gbGVhZl9p
O30NCg0KICAgbnR1cGxlKFRUcmVlICp0cmVlID0gMCk7DQogICB+bnR1cGxl
KCkgezt9DQogICBJbnRfdCBHZXRFdmVudChJbnRfdCBldmVudCk7DQogICB2
b2lkIEluaXQoVFRyZWUgKnRyZWUpOw0KICAgdm9pZCBMb29wKCk7DQogICB2
b2lkIFNob3coSW50X3QgZXZlbnQgPSAtMSk7DQp9Ow0KDQojZW5kaWYNCg0K
I2lmZGVmIG50dXBsZV9jeHgNCg0KbnR1cGxlOjpudHVwbGUoVFRyZWUgKnRy
ZWUpDQp7DQovLyBpZiBwYXJhbWV0ZXIgdHJlZSBpcyBub3Qgc3BlY2lmaWVk
IChvciB6ZXJvKSwgY29ubmVjdCB0aGUgZmlsZQ0KLy8gdXNlZCB0byBnZW5l
cmF0ZSB0aGlzIGNsYXNzIGFuZCByZWFkIHRoZSBUcmVlLg0KICAgaWYgKHRy
ZWUgPT0gMCkgew0KICAgICAgVEZpbGUgKmYgPSAoVEZpbGUqKWdST09ULT5H
ZXRMaXN0T2ZGaWxlcygpLT5GaW5kT2JqZWN0KCJoc2ltcGxlLnJvb3QiKTsN
CiAgICAgIGlmICghZikgew0KICAgICAgICAgZiA9IG5ldyBURmlsZSgiaHNp
bXBsZS5yb290Iik7DQogICAgICB9DQogICAgICB0cmVlID0gKFRUcmVlKiln
RGlyZWN0b3J5LT5HZXQoIm50dXBsZSIpOw0KDQogICB9DQogICBJbml0KHRy
ZWUpOw0KfQ0KDQpJbnRfdCBudHVwbGU6OkdldEV2ZW50KEludF90IGV2ZW50
KQ0Kew0KLy8gUmVhZCBzcGVjaWZpZWQgZXZlbnQgZnJvbSB0aGUgVHJlZSBp
bnRvIGRhdGEgbWVtYmVycw0KICAgaWYgKCFmVHJlZSkgcmV0dXJuIDA7DQog
ICAvLyBpZiAoZkV2ZW50PT1ldmVudCkgcmV0dXJuIDE7DQogICBicmFuY2hf
cHggPSAwOw0KICAgYnJhbmNoX3B5ID0gMDsNCiAgIGJyYW5jaF9weiA9IDA7
DQogICBicmFuY2hfcmFuZG9tID0gMDsNCiAgIGJyYW5jaF9pID0gMDsNCiAg
IGZFdmVudCA9IGV2ZW50Ow0KICAgcmV0dXJuIDE7DQp9DQoNCnZvaWQgbnR1
cGxlOjpJbml0KFRUcmVlICp0cmVlKQ0Kew0KLy8gICBTZXQgYnJhbmNoIGFk
ZHJlc3Nlcw0KICAgaWYgKHRyZWUgPT0gMCkgcmV0dXJuOw0KICAgZlRyZWUg
PSB0cmVlOw0KICAgICAgZlRyZWUtPlNldEJyYW5jaEFkZHJlc3MoInB4Iiwm
bGVhZl9weCk7DQogICAgICBmVHJlZS0+U2V0QnJhbmNoQWRkcmVzcygicHki
LCZsZWFmX3B5KTsNCiAgICAgIGZUcmVlLT5TZXRCcmFuY2hBZGRyZXNzKCJw
eiIsJmxlYWZfcHopOw0KICAgICAgZlRyZWUtPlNldEJyYW5jaEFkZHJlc3Mo
InJhbmRvbSIsJmxlYWZfcmFuZG9tKTsNCiAgICAgIGZUcmVlLT5TZXRCcmFu
Y2hBZGRyZXNzKCJpIiwmbGVhZl9pKTsNCiAgIGZUcmVlLT5TZXRCcmFuY2hT
dGF0dXMoIioiLDApOyAgLy8gZGlzYWJsZSBhbGwgYnJhbmNoZXMNCiAgIGJy
YW5jaF9weCA9IDA7DQogICBicmFuY2hfcG9pbnRlcl9weCA9IGZUcmVlLT5H
ZXRCcmFuY2goInB4Iik7DQogICBicmFuY2hfcHkgPSAwOw0KICAgYnJhbmNo
X3BvaW50ZXJfcHkgPSBmVHJlZS0+R2V0QnJhbmNoKCJweSIpOw0KICAgYnJh
bmNoX3B6ID0gMDsNCiAgIGJyYW5jaF9wb2ludGVyX3B6ID0gZlRyZWUtPkdl
dEJyYW5jaCgicHoiKTsNCiAgIGJyYW5jaF9yYW5kb20gPSAwOw0KICAgYnJh
bmNoX3BvaW50ZXJfcmFuZG9tID0gZlRyZWUtPkdldEJyYW5jaCgicmFuZG9t
Iik7DQogICBicmFuY2hfaSA9IDA7DQogICBicmFuY2hfcG9pbnRlcl9pID0g
ZlRyZWUtPkdldEJyYW5jaCgiaSIpOw0KICAgZkV2ZW50ID0gLTE7DQp9DQoN
CnZvaWQgbnR1cGxlOjpTaG93KEludF90IGV2ZW50KQ0Kew0KLy8gUHJpbnQg
Y29udGVudHMgb2YgZXZlbnQuDQovLyBJZiBldmVudCBpcyBub3Qgc3BlY2lm
aWVkLCBwcmludCBjdXJyZW50IGV2ZW50DQogICBpZiAoIWZUcmVlKSByZXR1
cm47DQogICBpZiAoZXZlbnQ+PTApIGZFdmVudCA9IGV2ZW50Ow0KICAgZWxz
ZSBldmVudCA9IGZFdmVudDsNCiAgIGlmIChmRXZlbnQ8MCkgcmV0dXJuOw0K
ICAgZlRyZWUtPlNldEJyYW5jaFN0YXR1cygiKiIsMSk7ICAvLyBlbmFibGUg
YWxsIGJyYW5jaGVzDQogICBmVHJlZS0+U2hvdyhmRXZlbnQpOw0KICAgZlRy
ZWUtPlNldEJyYW5jaFN0YXR1cygiKiIsMCk7ICAvLyBkaXNhYmxlIGFsbCBi
cmFuY2hlcw0KICAgYnJhbmNoX3B4ID0gMTsNCiAgIGJyYW5jaF9weSA9IDE7
DQogICBicmFuY2hfcHogPSAxOw0KICAgYnJhbmNoX3JhbmRvbSA9IDE7DQog
ICBicmFuY2hfaSA9IDE7DQp9DQoNCiNlbmRpZg0KDQo=
---559023410-851401618-924270283=:12703
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="ntuple.cxx"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.3.96.990416154443.12703D@uranos.cto.us.edu.pl>
Content-Description: ntuple.cxx
I2lmbmRlZiBudHVwbGVfY3h4DQojZGVmaW5lIG50dXBsZV9jeHgNCiNlbmRp
Zg0KDQojaW5jbHVkZSAibnR1cGxlLmh4eCINCg0KI2lmbmRlZiBfX0NJTlRf
Xw0KLy8gUGxhY2UgaGVyZSBhbGwgUk9PVCByZWxhdGVkIGluY2x1ZGVzIHRo
YXQgeW91IG5lZWQNCiNpbmNsdWRlICJUSDEuaCINCiNpbmNsdWRlICJUSDIu
aCINCiNpbmNsdWRlICJUQ2FudmFzLmgiDQojZW5kaWYNCg0Kdm9pZCBudHVw
bGU6Okxvb3AoKQ0Kew0KDQovLyAgICAgVGhpcyBpcyB0aGUgbG9vcCBza2Vs
ZXRvbg0KICAgaWYgKGZUcmVlID09IDApIHJldHVybjsNCg0KICAgVEgxRiAq
aF9weD0gbmV3IFRIMUYoInB4IiwicHgiLDEwMCwtNCw0KTsNCiAgIFRIMUYg
KmhfcHk9IG5ldyBUSDFGKCJweSIsInB5IiwxMDAsLTUsNSk7DQogICBUSDFG
ICpoX3B6PSBuZXcgVEgxRigicHoiLCJweiIsMTAwLDAsMjApOw0KICAgVEgx
RiAqaF9yYW5kb209IG5ldyBUSDFGKCJyYW5kb20iLCJyYW5kb20iLDEwMCww
LDEpOw0KICAgVEgxRiAqaF9pPSBuZXcgVEgxRigiaSIsImkiLDEwMCwwLDMw
MDAwKTsNCiAgIFRIMkYgKmhfcHhwej0gbmV3IFRIMkYoInB4cHoiLCJweHB6
IiwxMDAsMCwyMCwxMDAsLTQsNCk7DQoNCiAgIFN0YXRfdCBuZW50cmllcyA9
IGZUcmVlLT5HZXRFbnRyaWVzKCk7DQoNCiAgIEludF90IG5ieXRlcyA9IDAs
IG5iID0gMDsNCiAgICAgZm9yIChJbnRfdCBsPTA7IGw8bmVudHJpZXM7bCsr
KSB7DQogICAgICAgIG5iID0gZlRyZWUtPkdldEV2ZW50KGwpOyAgIG5ieXRl
cyArPSBuYjsNCgloX3B4LT5GaWxsKHB4KCkpOw0KCWhfcHktPkZpbGwocHko
KSk7DQoJaF9wei0+RmlsbChweigpKTsNCgloX3JhbmRvbS0+RmlsbChyYW5k
b20oKSk7DQoJaF9pLT5GaWxsKGkoKSk7DQoJaF9weHB6LT5GaWxsKHB6KCks
cHgoKSk7DQogICAgIH0NCiAgICAgVENhbnZhcyAqYyA9IG5ldyBUQ2FudmFz
KCJjIik7DQogICAgIGMtPkRpdmlkZSgyLDMpOw0KICAgICBjLT5jZCgxKTsN
CiAgICAgaF9weC0+RHJhdygpOw0KICAgICBjLT5jZCgyKTsNCiAgICAgaF9w
eS0+RHJhdygpOw0KICAgICBjLT5jZCgzKTsNCiAgICAgaF9wei0+RHJhdygp
Ow0KICAgICBjLT5jZCg0KTsNCiAgICAgaF9yYW5kb20tPkRyYXcoKTsNCiAg
ICAgYy0+Y2QoNSk7DQogICAgIGhfaS0+RHJhdygpOw0KICAgICBjLT5jZCg2
KTsNCiAgICAgaF9weHB6LT5EcmF3KCk7DQp9DQoNCg==
---559023410-851401618-924270283=:12703
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=Makefile
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.3.96.990416154443.12703E@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--