[omniORB] Re: Language incompatibilities ?

Sai-Lai Lo S.Lo@orl.co.uk
31 Jul 1998 13:57:55 +0100


--Multipart_Fri_Jul_31_13:57:55_1998-1
Content-Type: text/plain; charset=US-ASCII

Hi! Orbix is known not to accept TypeCode containing TCKind == tk_alias.
Until they have fixed this, it is best to tell omniORB2 to remove
all tk_alias from typecodes stored in Anys. You can do this by specifying
the -ORBtcAliasExpand 1 on the command line. I'm not sure this applies to
OrbixWeb but I suspect it has the same behaviour.

Now in your idl, there is only one instance (<<<<<<<) in which tk_alias
is used:

module Dict
{

enum DictionaryElementType { isBoolean, isInteger, isFloat, isString,
isDictionary };

union DictionaryValue switch(DictionaryElementType)
{
  case isBoolean:
   boolean boolVal;

  case isInteger:
   long i32Val;

  case isFloat:
   float floatVal;
  
  case isString:
   string strVal;
  
  case isDictionary:
   any dictVal;

  };

  struct DictionaryElement
  {
    string Key;
    DictionaryValue Value;
  };

  typedef sequence<DictionaryElement> Dictionary; <<<<<<< tk_alias used here
};


It is worth checking if -ORBtcAliasExpand 1 solve the problem.

If not, then you have to look at what is different in the typecode.

Attached is a piece of code to dump the content of a typecode.

Calling the code with:
   typecodeParse::parseCode(Dict::_tc_Dictionary);

gives the following output. You can use the same code to dump what is in
the any value received from OrbixWeb.

Please report your findings to omniorb-list.

Sai-Lai

###############Dict::Dictionary#################
  tk_alias
  Repository Id: IDL:Dict/Dictionary:1.0
  Alias Name: Dictionary
  Content Type (alias to):
  tk_sequence
  Maximum length: 0
Unbounded Sequence.
  Content Type:
  tk_struct
  Repository Id: IDL:Dict/DictionaryElement:1.0
  Struct Name: DictionaryElement
  Number of members: 2
   Member index: 0.
   Member name: Key

   Member typecode: 
  tk_string
  Maximum length: 0

   Member index: 1.
   Member name: Value

   Member typecode: 
  tk_union
  Repository Id: IDL:Dict/DictionaryValue:1.0
  Union Name: DictionaryValue
  Discriminator Type: 
  tk_enum
  Repository Id: IDL:Dict/DictionaryElementType:1.0
  Enum Name: DictionaryElementType
  Number of members: 5
  Member Names: 
   0. isBoolean
   1. isInteger
   2. isFloat
   3. isString
   4. isDictionary

Default index: -1
  Number of members: 5
   Member index: 0.
   Member name: boolVal

   Member typecode: 
tk_boolean

Union Label: 
    Label TypeCode: 
  tk_enum
  Repository Id: IDL:Dict/DictionaryElementType:1.0
  Enum Name: DictionaryElementType
  Number of members: 5
  Member Names: 
   0. isBoolean
   1. isInteger
   2. isFloat
   3. isString
   4. isDictionary

Label Value:
Unknown value.
   Member index: 1.
   Member name: i32Val

   Member typecode: 
tk_long

Union Label: 
    Label TypeCode: 
  tk_enum
  Repository Id: IDL:Dict/DictionaryElementType:1.0
  Enum Name: DictionaryElementType
  Number of members: 5
  Member Names: 
   0. isBoolean
   1. isInteger
   2. isFloat
   3. isString
   4. isDictionary

Label Value:
Unknown value.
   Member index: 2.
   Member name: floatVal

   Member typecode: 
tk_float

Union Label: 
    Label TypeCode: 
  tk_enum
  Repository Id: IDL:Dict/DictionaryElementType:1.0
  Enum Name: DictionaryElementType
  Number of members: 5
  Member Names: 
   0. isBoolean
   1. isInteger
   2. isFloat
   3. isString
   4. isDictionary

Label Value:
Unknown value.
   Member index: 3.
   Member name: strVal

   Member typecode: 
  tk_string
  Maximum length: 0

Union Label: 
    Label TypeCode: 
  tk_enum
  Repository Id: IDL:Dict/DictionaryElementType:1.0
  Enum Name: DictionaryElementType
  Number of members: 5
  Member Names: 
   0. isBoolean
   1. isInteger
   2. isFloat
   3. isString
   4. isDictionary

Label Value:
Unknown value.
   Member index: 4.
   Member name: dictVal

   Member typecode: 
tk_any

Union Label: 
    Label TypeCode: 
  tk_enum
  Repository Id: IDL:Dict/DictionaryElementType:1.0
  Enum Name: DictionaryElementType
  Number of members: 5
  Member Names: 
   0. isBoolean
   1. isInteger
   2. isFloat
   3. isString
   4. isDictionary

Label Value:
Unknown value.

##########################################


--Multipart_Fri_Jul_31_13:57:55_1998-1
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="typecodeParse.h"
Content-Transfer-Encoding: base64

Ly8gdHlwZWNvZGVQYXJzZS5oCi8vCgovLyBUeXBlQ29kZSBQYXJzZXIKCiNpbmNsdWRlIDxv
bW5pT1JCMi9DT1JCQS5oPgoKCiNpZm5kZWYgX3R5cGVjb2RlUGFyc2VfaF8KI2RlZmluZSBf
dHlwZWNvZGVQYXJzZV9oXwoKY2xhc3MgdHlwZWNvZGVQYXJzZQp7CiBwcml2YXRlOgogIHN0
YXRpYyB2b2lkIHBhcnNlTWVtYmVycyhDT1JCQTo6VHlwZUNvZGVfcHRyIGlUQyk7CgogcHVi
bGljOgogIHN0YXRpYyB2b2lkIHBhcnNlQ29kZShDT1JCQTo6VHlwZUNvZGVfcHRyIGlUQyxD
T1JCQTo6VHlwZUNvZGVfcHRyIHBhcmVudFRDID0gQ09SQkE6OlR5cGVDb2RlOjpfbmlsKCkp
OwoKfTsKCiNlbmRpZgo=

--Multipart_Fri_Jul_31_13:57:55_1998-1
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="typecodeParse.cc"
Content-Transfer-Encoding: base64

Ly8gdHlwZWNvZGVQYXJzZS5jYwovLwoKLy8gVHlwZUNvZGUgUGFyc2VyCgojaW5jbHVkZSA8
aW9zdHJlYW0uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgoKI2luY2x1ZGUgInR5cGVjb2RlUGFy
c2UuaCIKCnZvaWQgdHlwZWNvZGVQYXJzZTo6cGFyc2VDb2RlKENPUkJBOjpUeXBlQ29kZV9w
dHIgaVRDLENPUkJBOjpUeXBlQ29kZV9wdHIgcGFyZW50VEMpCnsKICB0cnkKICAgIHsKICAg
ICAgQ09SQkE6OlVMb25nIHRlbXAgPSBpVEMtPmtpbmQoKTsKICAgIH0KICBjYXRjaCguLi4p
CiAgICB7CiAgICAgIGNlcnIgPDwgIkdlbmVyYWwgZXhjZXB0aW9uIHdoZW4gZ2V0dGluZyBU
eXBlQ29kZSBraW5kLiIgPDwgZW5kbDsKICAgICAgZXhpdCgtMSk7CiAgICB9CgoKICBzd2l0
Y2goaVRDLT5raW5kKCkpCiAgICB7CiAgICBjYXNlIENPUkJBOjp0a19udWxsOgogICAgICBj
b3V0IDw8ICJ0a19udWxsIiA8PCBlbmRsOwogICAgICBicmVhazsKCiAgICBjYXNlIENPUkJB
Ojp0a192b2lkOgogICAgICBjb3V0IDw8ICJ0a192b2lkIiA8PCBlbmRsOwogICAgICBicmVh
azsKICAgICAKICAgIGNhc2UgQ09SQkE6OnRrX3Nob3J0OgogICAgICBjb3V0IDw8ICJ0a19z
aG9ydCIgPDwgZW5kbDsKICAgICAgYnJlYWs7CgogICAgY2FzZSBDT1JCQTo6dGtfbG9uZzoK
ICAgICAgY291dCA8PCAidGtfbG9uZyIgPDwgZW5kbDsKICAgICAgYnJlYWs7CgogICAgY2Fz
ZSBDT1JCQTo6dGtfdXNob3J0OgogICAgICBjb3V0IDw8ICJ0a191c2hvcnQiIDw8IGVuZGw7
CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgQ09SQkE6OnRrX3Vsb25nOgogICAgICBjb3V0IDw8
ICJ0a191bG9uZyIgPDwgZW5kbDsKICAgICAgYnJlYWs7CgogICAgY2FzZSBDT1JCQTo6dGtf
ZmxvYXQ6CiAgICAgIGNvdXQgPDwgInRrX2Zsb2F0IiA8PCBlbmRsOwogICAgICBicmVhazsK
CiAgICBjYXNlIENPUkJBOjp0a19kb3VibGU6CiAgICAgIGNvdXQgPDwgInRrX2RvdWJsZSIg
PDwgZW5kbDsKICAgICAgYnJlYWs7CgogICAgY2FzZSBDT1JCQTo6dGtfYm9vbGVhbjoKICAg
ICAgY291dCA8PCAidGtfYm9vbGVhbiIgPDwgZW5kbDsKICAgICAgYnJlYWs7CgogICAgY2Fz
ZSBDT1JCQTo6dGtfY2hhcjoKICAgICAgY291dCA8PCAidGtfY2hhciIgPDwgZW5kbDsKICAg
ICAgYnJlYWs7CgogICAgY2FzZSBDT1JCQTo6dGtfb2N0ZXQ6CiAgICAgIGNvdXQgPDwgInRr
X29jdGV0IiA8PCBlbmRsOwogICAgICBicmVhazsKCiAgICBjYXNlIENPUkJBOjp0a19hbnk6
CiAgICAgIGNvdXQgPDwgInRrX2FueSIgPDwgZW5kbDsKICAgICAgYnJlYWs7CgogICAgY2Fz
ZSBDT1JCQTo6dGtfVHlwZUNvZGU6CiAgICAgIGNvdXQgPDwgInRrX1R5cGVDb2RlIiA8PCBl
bmRsOwogICAgICBicmVhazsKCiAgICBjYXNlIENPUkJBOjp0a19QcmluY2lwYWw6CiAgICAg
IGNvdXQgPDwgInRrX1ByaW5jaXBhbCIgPDwgZW5kbDsKICAgICAgYnJlYWs7CgogICAgY2Fz
ZSBDT1JCQTo6dGtfb2JqcmVmOgogICAgICBjb3V0IDw8ICJ0a19vYmpyZWYiIDw8IGVuZGw7
CgogICAgICB0cnkKCXsKCSAgY291dCA8PCAiICBSZXBvc2l0b3J5IElkOiAiIDw8IChjb25z
dCBjaGFyKikgIGlUQy0+aWQoKSA8PCBlbmRsOwoJfQogICAgICBjYXRjaChDT1JCQTo6VHlw
ZUNvZGU6OkJhZEtpbmQmIEJLZXhjZXB0KQoJewoJICBjZXJyIDw8ICIgIFJlcG9zaXRvcnkg
SWQ6IDxCQUQgS0lORCBFWENFUFRJT04gUkFJU0VEPiIgPDwgZW5kbDsKCX0KICAgICAgY2F0
Y2goLi4uKQoJewoJICBjZXJyIDw8ICIgIEdlbmVyYWwgRXhjZXB0aW9uIFJhaXNlZCB3aGVu
IGdldHRpbmcgcmVwb3NpdG9yeSBJRC4iCgkgICAgICAgPDwgZW5kbDsKCSAgZXhpdCgtMSk7
Cgl9CgogICAgICB0cnkKCXsKCSAgY291dCA8PCAiICBPYmplY3QgTmFtZTogIiA8PCAoY29u
c3QgY2hhciopICBpVEMtPm5hbWUoKSA8PCBlbmRsOwoJfQogICAgICBjYXRjaChDT1JCQTo6
VHlwZUNvZGU6OkJhZEtpbmQmIEJLZXhjZXB0KQoJewoJICBjZXJyIDw8ICIgIE9iamVjdCBO
YW1lOiA8QkFEIEtJTkQgRVhDRVBUSU9OIFJBSVNFRD4iIDw8IGVuZGw7Cgl9CiAgICAgIGNh
dGNoKC4uLikKCXsKCSAgY2VyciA8PCAiICBHZW5lcmFsIEV4Y2VwdGlvbiBSYWlzZWQgd2hl
biBnZXR0aW5nIG9iamVjdCBuYW1lLiIgCgkgICAgICAgPDwgZW5kbDsKCSAgZXhpdCgtMSk7
Cgl9CgogICAgICBicmVhazsKICAgICAgCiAgICBjYXNlIENPUkJBOjp0a19zdHJ1Y3Q6CiAg
ICAgIGNvdXQgPDwgIiAgdGtfc3RydWN0IiA8PCBlbmRsOwoKICAgICAgdHJ5Cgl7CgkgIGNv
dXQgPDwgIiAgUmVwb3NpdG9yeSBJZDogIiA8PCAoY29uc3QgY2hhciopICBpVEMtPmlkKCkg
PDwgZW5kbDsKCX0KICAgICAgY2F0Y2goQ09SQkE6OlR5cGVDb2RlOjpCYWRLaW5kJiBCS2V4
Y2VwdCkKCXsKCSAgY2VyciA8PCAiICBSZXBvc2l0b3J5IElkOiA8QkFEIEtJTkQgRVhDRVBU
SU9OIFJBSVNFRD4iIDw8IGVuZGw7Cgl9CiAgICAgIGNhdGNoKC4uLikKCXsKCSAgY2VyciA8
PCAiICBHZW5lcmFsIEV4Y2VwdGlvbiBSYWlzZWQgd2hlbiBnZXR0aW5nIHJlcG9zaXRvcnkg
SUQuIiAKCSAgICAgICA8PCBlbmRsOwoJICBleGl0KC0xKTsKCX0KCiAgICAgIHRyeQoJewoJ
ICBjb3V0IDw8ICIgIFN0cnVjdCBOYW1lOiAiIDw8IChjb25zdCBjaGFyKikgIGlUQy0+bmFt
ZSgpIDw8IGVuZGw7Cgl9CiAgICAgIGNhdGNoKENPUkJBOjpUeXBlQ29kZTo6QmFkS2luZCYg
QktleGNlcHQpCgl7CgkgIGNlcnIgPDwgIiAgU3RydWN0IE5hbWU6IDxCQUQgS0lORCBFWENF
UFRJT04gUkFJU0VEPiIgPDwgZW5kbDsKCX0KICAgICAgY2F0Y2goLi4uKQoJewoJICBjZXJy
IDw8ICIgIEdlbmVyYWwgRXhjZXB0aW9uIFJhaXNlZCB3aGVuIGdldHRpbmcgc3RydWN0IG5h
bWUuIiAKCSAgICAgICA8PCBlbmRsOwoJICBleGl0KC0xKTsKCX0KCiAgICAgIHBhcnNlTWVt
YmVycyhpVEMpOwoKICAgICAgYnJlYWs7CgogICAgY2FzZSBDT1JCQTo6dGtfdW5pb246CiAg
ICAgIGNvdXQgPDwgIiAgdGtfdW5pb24iIDw8IGVuZGw7CgogICAgICB0cnkKCXsKCSAgY291
dCA8PCAiICBSZXBvc2l0b3J5IElkOiAiIDw8IChjb25zdCBjaGFyKikgIGlUQy0+aWQoKSA8
PCBlbmRsOwoJfQogICAgICBjYXRjaChDT1JCQTo6VHlwZUNvZGU6OkJhZEtpbmQmIEJLZXhj
ZXB0KQoJewoJICBjZXJyIDw8ICIgIFJlcG9zaXRvcnkgSWQ6IDxCQUQgS0lORCBFWENFUFRJ
T04gUkFJU0VEPiIgPDwgZW5kbDsKCX0KICAgICAgY2F0Y2goLi4uKQoJewoJICBjZXJyIDw8
ICIgIEdlbmVyYWwgRXhjZXB0aW9uIFJhaXNlZCB3aGVuIGdldHRpbmcgcmVwb3NpdG9yeSBJ
RC4iIAoJICAgICAgIDw8IGVuZGw7CgkgIGV4aXQoLTEpOwoJfQoKICAgICAgdHJ5Cgl7Cgkg
IGNvdXQgPDwgIiAgVW5pb24gTmFtZTogIiA8PCAoY29uc3QgY2hhciopICBpVEMtPm5hbWUo
KSA8PCBlbmRsOwoJfQogICAgICBjYXRjaChDT1JCQTo6VHlwZUNvZGU6OkJhZEtpbmQmIEJL
ZXhjZXB0KQoJewoJICBjZXJyIDw8ICIgIFVuaW9uIE5hbWU6IDxCQUQgS0lORCBFWENFUFRJ
T04gUkFJU0VEPiIgPDwgZW5kbDsKCX0KICAgICAgY2F0Y2goLi4uKQoJewoJICBjZXJyIDw8
ICIgIEdlbmVyYWwgRXhjZXB0aW9uIFJhaXNlZCB3aGVuIGdldHRpbmcgdW5pb24gbmFtZS4i
IAoJICAgICAgIDw8IGVuZGw7CgkgIGV4aXQoLTEpOwoJfQoKICAgICAgCiAgICAgIHRyeQoJ
ewoJICBjb3V0IDw8ICIgIERpc2NyaW1pbmF0b3IgVHlwZTogIiA8PCBlbmRsOwoJICBDT1JC
QTo6VHlwZUNvZGVfcHRyIG1lbVRDID0gaVRDLT5kaXNjcmltaW5hdG9yX3R5cGUoKTsKCgkg
IGlmICghQ09SQkE6OmlzX25pbChwYXJlbnRUQykpCgkgICAgewoJICAgICAgaWYgKG1lbVRD
LT5lcXVhbChwYXJlbnRUQykpCgkJewoJCSAgY291dCA8PCAiW1BhcmVudCBUeXBlXSIgPDwg
ZW5kbDsKCQl9CgkgICAgICBlbHNlIHR5cGVjb2RlUGFyc2U6OnBhcnNlQ29kZShtZW1UQyk7
CgkgICAgfQoJICBlbHNlIHR5cGVjb2RlUGFyc2U6OnBhcnNlQ29kZShtZW1UQyk7CgoJICBD
T1JCQTo6cmVsZWFzZShtZW1UQyk7CgkgIGNvdXQgPDwgIlxuIjsKCX0KICAgICAgY2F0Y2go
Q09SQkE6OlR5cGVDb2RlOjpCYWRLaW5kJiBCS2V4Y2VwdCkKCXsKCSAgY2VyciA8PCAKCSAg
ICAiICA8QkFEIEtJTkQgRVhDRVBUSU9OIFJBSVNFRD4gd2hlbiByZWFkaW5nIGRpc2NyaW1p
bmF0b3IgdHlwZS4iIAoJICAgICAgIDw8IGVuZGw7Cgl9CiAgICAgIGNhdGNoKC4uLikKCXsK
CSAgY2VyciA8PCIgIEdlbmVyYWwgRXhjZXB0aW9uIFJhaXNlZCB3aGVuIHJlYWRpbmcgZGlz
Y3JpbWluYXRvciB0eXBlLiIgCgkgICAgICAgPDwgZW5kbDsKCSAgZXhpdCgtMSk7Cgl9Cgog
ICAgICBjb3V0IDw8ICJEZWZhdWx0IGluZGV4OiAiIDw8IGlUQy0+ZGVmYXVsdF9pbmRleCgp
IDw8IGVuZGw7CiAgICAgIHBhcnNlTWVtYmVycyhpVEMpOwoKICAgICAgYnJlYWs7CgogICAg
Y2FzZSBDT1JCQTo6dGtfZW51bToKCgogICAgICBjb3V0IDw8ICIgIHRrX2VudW0iIDw8IGVu
ZGw7CgogICAgICB0cnkKCXsKCSAgY291dCA8PCAiICBSZXBvc2l0b3J5IElkOiAiIDw8IChj
b25zdCBjaGFyKikgIGlUQy0+aWQoKSA8PCBlbmRsOwoJfQogICAgICBjYXRjaChDT1JCQTo6
VHlwZUNvZGU6OkJhZEtpbmQmIEJLZXhjZXB0KQoJewoJICBjZXJyIDw8ICIgIFJlcG9zaXRv
cnkgSWQ6IDxCQUQgS0lORCBFWENFUFRJT04gUkFJU0VEPiIgPDwgZW5kbDsKCX0KICAgICAg
Y2F0Y2goLi4uKQoJewoJICBjZXJyIDw8ICIgIEdlbmVyYWwgRXhjZXB0aW9uIFJhaXNlZCB3
aGVuIGdldHRpbmcgcmVwb3NpdG9yeSBJRC4iIAoJICAgICAgIDw8IGVuZGw7CgkgIGV4aXQo
LTEpOwoJfQoKICAgICAgdHJ5Cgl7CgkgIGNvdXQgPDwgIiAgRW51bSBOYW1lOiAiIDw8IChj
b25zdCBjaGFyKikgIGlUQy0+bmFtZSgpIDw8IGVuZGw7Cgl9CiAgICAgIGNhdGNoKENPUkJB
OjpUeXBlQ29kZTo6QmFkS2luZCYgQktleGNlcHQpCgl7CgkgIGNlcnIgPDwgIiAgRW51bSBO
YW1lOiA8QkFEIEtJTkQgRVhDRVBUSU9OIFJBSVNFRD4iIDw8IGVuZGw7Cgl9CiAgICAgIGNh
dGNoKC4uLikKCXsKCSAgY2VyciA8PCAiICBHZW5lcmFsIEV4Y2VwdGlvbiBSYWlzZWQgd2hl
biBnZXR0aW5nIGVudW0gbmFtZS4iIAoJICAgICAgIDw8IGVuZGw7CgkgIGV4aXQoLTEpOwoJ
fQoKICAgICAgdHJ5Cgl7CgkgIGNvdXQgPDwgIiAgTnVtYmVyIG9mIG1lbWJlcnM6ICIgIDw8
IGlUQy0+bWVtYmVyX2NvdW50KCkgPDwgZW5kbDsKCSAgY291dCA8PCAiICBNZW1iZXIgTmFt
ZXM6ICIgPDwgZW5kbDsKCgkgIGZvcihDT1JCQTo6VUxvbmcgaSA9IDA7IGkgPCBpVEMtPm1l
bWJlcl9jb3VudCgpOyBpKyspCgkgICAgewoJICAgICAgY291dCA8PCAiICAgIiA8PCBpIDw8
ICIuICI7CgoJICAgICAgdHJ5CgkJewoJCSAgY291dCA8PCAoY29uc3QgY2hhciopIGlUQy0+
bWVtYmVyX25hbWUoaSkgPDwgZW5kbDsKCQl9CgkgICAgICBjYXRjaChDT1JCQTo6VHlwZUNv
ZGU6OkJhZEtpbmQmIEJLZXhjZXB0KQoJCXsKCQkgIGNlcnIgPDwgIiAgIDxCQUQgS0lORCBF
WENFUFRJT04gUkFJU0VEPiB3aGVuIHJlYWRpbmcgIgoJCSAgICAgICA8PCAibWVtYmVyX25h
bWUoKSIgPDwgZW5kbDsKCgkJfQoJICAgICAgY2F0Y2goQ09SQkE6OlR5cGVDb2RlOjpCb3Vu
ZHMmIEJuZHNleGNlcHQpCgkJewoJCSAgY2VyciA8PCAiICAgPEJPVU5EUyBFWENFUFRJT04g
UkFJU0VEPiB3aGVuIHJlYWRpbmcgIgoJCSAgICAgICA8PCAibWVtYmVyX25hbWUoKSI8PCBl
bmRsOwoJCX0KCSAgICAgIGNhdGNoKC4uLikKCQl7CgkJICBjZXJyIDw8ICIgICBHZW5lcmFs
IEV4Y2VwdGlvbiBSYWlzZWQgd2hlbiByZWFkaW5nICIKCQkgICAgICAgPDwgIm1lbWJlcl9u
YW1lKCkgIiA8PCBlbmRsOwoJCSAgZXhpdCgtMSk7CgkJfQoJICAgIH0KCX0KICAgICAgY2F0
Y2goQ09SQkE6OlR5cGVDb2RlOjpCYWRLaW5kJiBCS2V4Y2VwdCkKCXsKCSAgY2VyciA8PCAi
ICBOdW1iZXIgb2YgbWVtYmVyczogPEJBRCBLSU5EIEVYQ0VQVElPTiBSQUlTRUQ+IiA8PCBl
bmRsOwoJfQogICAgICBjYXRjaCguLi4pCgl7CgkgIGNlcnIgPDwgIiAgR2VuZXJhbCBFeGNl
cHRpb24gUmFpc2VkIHdoZW4gZ2V0dGluZyBudW1iZXIgb2YgbWVtYmVycy4iIAoJICAgICAg
IDw8IGVuZGw7CgkgIGV4aXQoLTEpOwoJfQoJCiAgICAgIGJyZWFrOwoKCiAgICBjYXNlIENP
UkJBOjp0a19zdHJpbmc6CgogICAgICBjb3V0IDw8ICIgIHRrX3N0cmluZyIgPDwgZW5kbDsK
ICAgICAgCiAgICAgIHRyeQoJewoJICBjb3V0IDw8ICIgIE1heGltdW0gbGVuZ3RoOiAiIDw8
IGlUQy0+bGVuZ3RoKCkgPDwgZW5kbDsKCX0KICAgICAgY2F0Y2goQ09SQkE6OlR5cGVDb2Rl
OjpCYWRLaW5kJiBCS2V4Y2VwdCkKCXsKCSAgY2VyciA8PCAiICBNYXhpbXVtIGxlbmd0aDog
PEJBRCBLSU5EIEVYQ0VQVElPTiBSQUlTRUQ+IiA8PCBlbmRsOwoJfQogICAgICBjYXRjaCgu
Li4pCgl7CgkgIGNlcnIgPDwiICBHZW5lcmFsIEV4Y2VwdGlvbiBSYWlzZWQgd2hlbiBnZXR0
aW5nIG1heGltdW0gbGVuZ3RoLiIgCgkgICAgICAgPDwgZW5kbDsKCSAgZXhpdCgtMSk7Cgl9
CiAgICAgIAogICAgICBicmVhazsKCiAgICAgIAogICAgY2FzZSBDT1JCQTo6dGtfc2VxdWVu
Y2U6CgogICAgICBjb3V0IDw8ICIgIHRrX3NlcXVlbmNlIiA8PCBlbmRsOwoKCiAgICAgIHRy
eQoJewoJICBjb3V0IDw8ICIgIE1heGltdW0gbGVuZ3RoOiAiIDw8IGlUQy0+bGVuZ3RoKCkg
PDwgZW5kbDsKCSAgaWYgKGlUQy0+bGVuZ3RoKCkgPT0gMCkgY291dCA8PCAiVW5ib3VuZGVk
IFNlcXVlbmNlLiIgPDwgZW5kbDsKCX0KICAgICAgY2F0Y2goQ09SQkE6OlR5cGVDb2RlOjpC
YWRLaW5kJiBCS2V4Y2VwdCkKCXsKCSAgY2VyciA8PCAiICBNYXhpbXVtIGxlbmd0aDogPEJB
RCBLSU5EIEVYQ0VQVElPTiBSQUlTRUQ+IiA8PCBlbmRsOwoJfQogICAgICBjYXRjaCguLi4p
Cgl7CgkgIGNlcnIgPDwiICBHZW5lcmFsIEV4Y2VwdGlvbiBSYWlzZWQgd2hlbiBnZXR0aW5n
IG1heGltdW0gbGVuZ3RoLiIgCgkgICAgICAgPDwgZW5kbDsKCSAgZXhpdCgtMSk7Cgl9Cgog
ICAgICBjb3V0IDw8ICIgIENvbnRlbnQgVHlwZToiIDw8IGVuZGw7CgogICAgICB0cnkKCXsK
CSAgQ09SQkE6OlR5cGVDb2RlX3B0ciBtZW1UQyA9IGlUQy0+Y29udGVudF90eXBlKCk7CgoJ
ICBpZiAoIUNPUkJBOjppc19uaWwocGFyZW50VEMpKQoJICAgIHsKCSAgICAgIGlmIChtZW1U
Qy0+ZXF1YWwocGFyZW50VEMpKQoJCXsKCQkgIGNvdXQgPDwgIltQYXJlbnQgVHlwZV0iIDw8
IGVuZGw7CgkJfQoJICAgICAgZWxzZSB0eXBlY29kZVBhcnNlOjpwYXJzZUNvZGUobWVtVEMp
OwoJICAgIH0KCSAgZWxzZSB0eXBlY29kZVBhcnNlOjpwYXJzZUNvZGUobWVtVEMpOwoJICBD
T1JCQTo6cmVsZWFzZShtZW1UQyk7CgkgIGNvdXQgPDwgIlxuIjsKCX0KICAgICAgY2F0Y2go
Q09SQkE6OlR5cGVDb2RlOjpCYWRLaW5kJiBCS2V4Y2VwdCkKCXsKCSAgY2VyciA8PCAiICA8
QkFEIEtJTkQgRVhDRVBUSU9OIFJBSVNFRD4gd2hlbiByZWFkaW5nIGNvbnRlbnQgdHlwZS4i
IAoJICAgICAgIDw8IGVuZGw7Cgl9CiAgICAgIGNhdGNoKC4uLikKCXsKCSAgY2VyciA8PCIg
IEdlbmVyYWwgRXhjZXB0aW9uIFJhaXNlZCB3aGVuIHJlYWRpbmcgY29udGVudCB0eXBlLiIg
CgkgICAgICAgPDwgZW5kbDsKCSAgZXhpdCgtMSk7Cgl9CgogICAgICBicmVhazsKCiAgICBj
YXNlIENPUkJBOjp0a19hcnJheToKCiAgICAgIGNvdXQgPDwgIiAgdGtfYXJyYXkiIDw8IGVu
ZGw7CgogICAgICB0cnkKCXsKCSAgY291dCA8PCAiICBNYXhpbXVtIGxlbmd0aDogIiA8PCBp
VEMtPmxlbmd0aCgpIDw8IGVuZGw7Cgl9CiAgICAgIGNhdGNoKENPUkJBOjpUeXBlQ29kZTo6
QmFkS2luZCYgQktleGNlcHQpCgl7CgkgIGNlcnIgPDwgIiAgTWF4aW11bSBsZW5ndGg6IDxC
QUQgS0lORCBFWENFUFRJT04gUkFJU0VEPiIgPDwgZW5kbDsKCX0KICAgICAgY2F0Y2goLi4u
KQoJewoJICBjZXJyIDw8IiAgR2VuZXJhbCBFeGNlcHRpb24gUmFpc2VkIHdoZW4gZ2V0dGlu
ZyBtYXhpbXVtIGxlbmd0aC4iIAoJICAgICAgIDw8IGVuZGw7CgkgIGV4aXQoLTEpOwoJfQoK
ICAgICAgY291dCA8PCAiICBDb250ZW50IFR5cGU6IiA8PCBlbmRsOwoKICAgICAgdHJ5Cgl7
CgkgIENPUkJBOjpUeXBlQ29kZV9wdHIgbWVtVEMgPSBpVEMtPmNvbnRlbnRfdHlwZSgpOwoK
CSAgaWYgKCFDT1JCQTo6aXNfbmlsKHBhcmVudFRDKSkKCSAgICB7CgkgICAgICBpZiAobWVt
VEMtPmVxdWFsKHBhcmVudFRDKSkKCQl7CgkJICBjb3V0IDw8ICJbUGFyZW50IFR5cGVdIiA8
PCBlbmRsOwoJCX0KCSAgICAgIGVsc2UgIHR5cGVjb2RlUGFyc2U6OnBhcnNlQ29kZShtZW1U
Qyk7CgkgICAgfQoJICBlbHNlIHR5cGVjb2RlUGFyc2U6OnBhcnNlQ29kZShtZW1UQyk7Cgkg
IENPUkJBOjpyZWxlYXNlKG1lbVRDKTsKCgkgIGNvdXQgPDwgIlxuIjsKCX0KICAgICAgY2F0
Y2goQ09SQkE6OlR5cGVDb2RlOjpCYWRLaW5kJiBCS2V4Y2VwdCkKCXsKCSAgY2VyciA8PCAi
ICA8QkFEIEtJTkQgRVhDRVBUSU9OIFJBSVNFRD4gd2hlbiByZWFkaW5nIGNvbnRlbnQgdHlw
ZS4iIAoJICAgICAgIDw8IGVuZGw7Cgl9CiAgICAgIGNhdGNoKC4uLikKCXsKCSAgY2VyciA8
PCIgIEdlbmVyYWwgRXhjZXB0aW9uIFJhaXNlZCB3aGVuIHJlYWRpbmcgY29udGVudCB0eXBl
LiIgCgkgICAgICAgPDwgZW5kbDsKCSAgZXhpdCgtMSk7Cgl9CgogICAgICBicmVhazsKCiAg
ICBjYXNlIENPUkJBOjp0a19hbGlhczoKCiAgICAgIGNvdXQgPDwgIiAgdGtfYWxpYXMiIDw8
IGVuZGw7CgogICAgICB0cnkKCXsKCSAgY291dCA8PCAiICBSZXBvc2l0b3J5IElkOiAiIDw8
IChjb25zdCBjaGFyKikgIGlUQy0+aWQoKSA8PCBlbmRsOwoJfQogICAgICBjYXRjaChDT1JC
QTo6VHlwZUNvZGU6OkJhZEtpbmQmIEJLZXhjZXB0KQoJewoJICBjZXJyIDw8ICIgIFJlcG9z
aXRvcnkgSWQ6IDxCQUQgS0lORCBFWENFUFRJT04gUkFJU0VEPiIgPDwgZW5kbDsKCX0KICAg
ICAgY2F0Y2goLi4uKQoJewoJICBjZXJyIDw8ICIgIEdlbmVyYWwgRXhjZXB0aW9uIFJhaXNl
ZCB3aGVuIGdldHRpbmcgcmVwb3NpdG9yeSBJRC4iCgkgICAgICAgPDwgZW5kbDsKCSAgZXhp
dCgtMSk7Cgl9CgogICAgICB0cnkKCXsKCSAgY291dCA8PCAiICBBbGlhcyBOYW1lOiAiIDw8
IChjb25zdCBjaGFyKikgIGlUQy0+bmFtZSgpIDw8IGVuZGw7Cgl9CiAgICAgIGNhdGNoKENP
UkJBOjpUeXBlQ29kZTo6QmFkS2luZCYgQktleGNlcHQpCgl7CgkgIGNlcnIgPDwgIiAgQWxp
YXMgTmFtZTogPEJBRCBLSU5EIEVYQ0VQVElPTiBSQUlTRUQ+IiA8PCBlbmRsOwoJfQogICAg
ICBjYXRjaCguLi4pCgl7CgkgIGNlcnIgPDwgIiAgR2VuZXJhbCBFeGNlcHRpb24gUmFpc2Vk
IHdoZW4gZ2V0dGluZyBhbGlhcyBuYW1lLiIgCgkgICAgICAgPDwgZW5kbDsKCSAgZXhpdCgt
MSk7Cgl9CiAgICAgIAoKICAgICAgY291dCA8PCAiICBDb250ZW50IFR5cGUgKGFsaWFzIHRv
KToiIDw8IGVuZGw7CgogICAgICB0cnkKCXsKCSAgQ09SQkE6OlR5cGVDb2RlX3B0ciBtZW1U
QyA9IGlUQy0+Y29udGVudF90eXBlKCk7CgoJICBpZiAobWVtVEMtPmVxdWFsKGlUQykpIAoJ
ICAgIHsKCSAgICAgIGNvdXQgPDwgIiAgICBNZW1iZXIgdHlwZWNvZGUgKHNhbWUgdHlwZSBh
cyBwYXJlbnQpIDoiIDw8IGVuZGw7CgkgICAgICB0eXBlY29kZVBhcnNlOjpwYXJzZUNvZGUo
bWVtVEMpOwoJICAgIH0KCSAgZWxzZSAgdHlwZWNvZGVQYXJzZTo6cGFyc2VDb2RlKG1lbVRD
KTsKCSAgQ09SQkE6OnJlbGVhc2UobWVtVEMpOwoJICBjb3V0IDw8ICJcbiI7Cgl9CiAgICAg
IGNhdGNoKENPUkJBOjpUeXBlQ29kZTo6QmFkS2luZCYgQktleGNlcHQpCgl7CgkgIGNlcnIg
PDwgIiAgPEJBRCBLSU5EIEVYQ0VQVElPTiBSQUlTRUQ+IHdoZW4gcmVhZGluZyBjb250ZW50
IHR5cGUuIiAKCSAgICAgICA8PCBlbmRsOwoJfQogICAgICBjYXRjaCguLi4pCgl7CgkgIGNl
cnIgPDwiICBHZW5lcmFsIEV4Y2VwdGlvbiBSYWlzZWQgd2hlbiByZWFkaW5nIGNvbnRlbnQg
dHlwZS4iIAoJICAgICAgIDw8IGVuZGw7CgkgIGV4aXQoLTEpOwoJfQoKICAgICAgYnJlYWs7
CgogICAgY2FzZSBDT1JCQTo6dGtfZXhjZXB0OgogICAgICAKICAgICAgY291dCA8PCAiICB0
a19leGNlcHQiIDw8IGVuZGw7CgogICAgICAgICAgICB0cnkKCXsKCSAgY291dCA8PCAiICBS
ZXBvc2l0b3J5IElkOiAiIDw8IChjb25zdCBjaGFyKikgIGlUQy0+aWQoKSA8PCBlbmRsOwoJ
fQogICAgICBjYXRjaChDT1JCQTo6VHlwZUNvZGU6OkJhZEtpbmQmIEJLZXhjZXB0KQoJewoJ
ICBjZXJyIDw8ICIgIFJlcG9zaXRvcnkgSWQ6IDxCQUQgS0lORCBFWENFUFRJT04gUkFJU0VE
PiIgPDwgZW5kbDsKCX0KICAgICAgY2F0Y2goLi4uKQoJewoJICBjZXJyIDw8ICIgIEdlbmVy
YWwgRXhjZXB0aW9uIFJhaXNlZCB3aGVuIGdldHRpbmcgcmVwb3NpdG9yeSBJRC4iCgkgICAg
ICAgPDwgZW5kbDsKCSAgZXhpdCgtMSk7Cgl9CgogICAgICB0cnkKCXsKCSAgY291dCA8PCAi
ICBFeGNlcHRpb24gTmFtZTogIiA8PCAoY29uc3QgY2hhciopICBpVEMtPm5hbWUoKSA8PCBl
bmRsOwoJfQogICAgICBjYXRjaChDT1JCQTo6VHlwZUNvZGU6OkJhZEtpbmQmIEJLZXhjZXB0
KQoJewoJICBjZXJyIDw8ICIgIEV4Y2VwdGlvbiBOYW1lOiA8QkFEIEtJTkQgRVhDRVBUSU9O
IFJBSVNFRD4iIDw8IGVuZGw7Cgl9CiAgICAgIGNhdGNoKC4uLikKCXsKCSAgY2VyciA8PCAi
ICBHZW5lcmFsIEV4Y2VwdGlvbiBSYWlzZWQgd2hlbiBnZXR0aW5nIGV4Y2VwdGlvbiBuYW1l
LiIgCgkgICAgICAgPDwgZW5kbDsKCSAgZXhpdCgtMSk7Cgl9CgogICAgICBwYXJzZU1lbWJl
cnMoaVRDKTsKICAgICAgCiAgICAgIGJyZWFrOwoKICAgIGRlZmF1bHQ6CgogICAgICBjZXJy
IDw8ICJUeXBlQ29kZSBub3Qga25vd24gKE51bWJlciA9ICIgPDwgKENPUkJBOjpVTG9uZykg
aVRDLT5raW5kKCkKCSAgIDw8ICIgKSIgPDwgZW5kbDsKICAgICAgCiAgICB9CSAgCgp9CgoK
dm9pZCB0eXBlY29kZVBhcnNlOjpwYXJzZU1lbWJlcnMoQ09SQkE6OlR5cGVDb2RlX3B0ciBp
VEMpCnsKCiAgdHJ5CiAgICB7CiAgICAgIGNvdXQgPDwgIiAgTnVtYmVyIG9mIG1lbWJlcnM6
ICIgIDw8IGlUQy0+bWVtYmVyX2NvdW50KCkgPDwgZW5kbDsKICAgIH0KICBjYXRjaChDT1JC
QTo6VHlwZUNvZGU6OkJhZEtpbmQmIEJLZXhjZXB0KQogICAgewogICAgICBjZXJyIDw8ICIg
IE51bWJlciBvZiBtZW1iZXJzOiA8QkFEIEtJTkQgRVhDRVBUSU9OIFJBSVNFRD4iIDw8IGVu
ZGw7CiAgICAgIHJldHVybjsKICAgIH0KICBjYXRjaCguLi4pCiAgICB7CiAgICAgIGNlcnIg
PDwgIiAgR2VuZXJhbCBFeGNlcHRpb24gUmFpc2VkIHdoZW4gZ2V0dGluZyBudW1iZXIgb2Yg
bWVtYmVycy4iIAoJICAgPDwgZW5kbDsKICAgICAgZXhpdCgtMSk7CiAgICB9CgoKICBmb3Io
Q09SQkE6OlVMb25nIGkgPSAwOyBpIDwgaVRDLT5tZW1iZXJfY291bnQoKTsgaSsrKQogICAg
ewogICAgICBjb3V0IDw8ICIgICBNZW1iZXIgaW5kZXg6ICIgPDwgaSA8PCAiLiIgPDwgZW5k
bDsKCQkgICAgCiAgICAgIHRyeQoJewoJICBjb3V0IDw8ICIgICBNZW1iZXIgbmFtZTogIiA8
PCBpVEMtPm1lbWJlcl9uYW1lKGkpIDw8ICJcbiIgPDwgZW5kbDsKCgkgIGNvdXQgPDwgIiAg
IE1lbWJlciB0eXBlY29kZTogIiA8PCBlbmRsOwoJICBDT1JCQTo6VHlwZUNvZGVfcHRyIG1l
bVRDID0gaVRDLT5tZW1iZXJfdHlwZShpKTsKCgkgIGlmIChtZW1UQy0+ZXF1YWwoaVRDKSkg
CgkgICAgewoJICAgICAgY291dCA8PCAiICAgIE1lbWJlciB0eXBlY29kZTogW1NhbWUgdHlw
ZSBhcyBwYXJlbnRdIiA8PCBlbmRsOwoJICAgIH0KCSAgZWxzZSB0eXBlY29kZVBhcnNlOjpw
YXJzZUNvZGUobWVtVEMsaVRDKTsKCSAgQ09SQkE6OnJlbGVhc2UobWVtVEMpOwoJICBjb3V0
IDw8ICJcbiI7CgoJICBpZiAoaVRDLT5raW5kKCkgPT0gQ09SQkE6OnRrX3VuaW9uKQoJICAg
IHsKCSAgICAgIENPUkJBOjpBbnkqIGE7CgkgICAgICBhID0gaVRDLT5tZW1iZXJfbGFiZWwo
aSk7CgkgICAgICBjb3V0IDw8ICJVbmlvbiBMYWJlbDogIiA8PCBlbmRsOwoJICAgICAgQ09S
QkE6OlR5cGVDb2RlX3B0ciBhVEMgPSBhLT50eXBlKCk7CgkgICAgICBpZiAoYVRDLT5lcXVh
bChpVEMpKQoJCXsKCQkgIGNvdXQgPDwgIiAgICBMYWJlbCBUeXBlQ29kZTogW1NhbWUgdHlw
ZSBhcyBwYXJlbnRdIiA8PCBlbmRsOwoJCX0KCSAgICAgIGVsc2UKCQl7CSAgICAgIAoJCSAg
Y291dCA8PCAiICAgIExhYmVsIFR5cGVDb2RlOiAiIDw8IGVuZGw7CgkJICB0eXBlY29kZVBh
cnNlOjpwYXJzZUNvZGUoYVRDLGlUQyk7CgkJfQoJICAgICAgQ09SQkE6OnJlbGVhc2UoYVRD
KTsKCSAgICAgIGNvdXQgPDwgIlxuTGFiZWwgVmFsdWU6IiA8PCBlbmRsOwoKCSAgICAgIENP
UkJBOjpDaGFyIF9jaDsKCSAgICAgIENPUkJBOjpCb29sZWFuIF9ib287CgkgICAgICBDT1JC
QTo6T2N0ZXQgX2Fub2N0OwoJICAgICAgQ09SQkE6OlNob3J0IF9zaDsKCSAgICAgIENPUkJB
OjpVU2hvcnQgX3VzaDsKCSAgICAgIENPUkJBOjpMb25nIF9sOwoJICAgICAgQ09SQkE6OlVM
b25nIF91bDsKCSAgICAgIAoJICAgICAgaWYgKCphID4+PSBDT1JCQTo6QW55Ojp0b19jaGFy
KF9jaCkpCgkJewoJCSAgY291dCA8PCAiQ2hhcjogIiA8PCBfY2ggPDwgZW5kbDsKCQl9Cgkg
ICAgICBlbHNlIGlmICgqYSA+Pj0gQ09SQkE6OkFueTo6dG9fYm9vbGVhbihfYm9vKSkKCQl7
CgkJICBjb3V0IDw8ICJCb29sZWFuOiAiIDw8IF9ib28gPDwgZW5kbDsKCQl9CgkgICAgICBl
bHNlIGlmICgqYSA+Pj0gQ09SQkE6OkFueTo6dG9fb2N0ZXQoX2Fub2N0KSkKCQl7CgkJICBj
b3V0IDw8ICJPY3RldDogXyIgPDwgKENPUkJBOjpVU2hvcnQpIF9hbm9jdCA8PCAiXyIgPDwg
ZW5kbDsKCQl9CgkgICAgICBlbHNlIGlmICgqYSA+Pj0gX3NoKQoJCXsKCQkgIGNvdXQgPDwg
IlNob3J0OiAiIDw8IF9zaCA8PCBlbmRsOwoJCX0KCSAgICAgIGVsc2UgaWYgKCphID4+PSBf
dXNoKQoJCXsKCQkgIGNvdXQgPDwgIlVTaG9ydDogIiA8PCBfdXNoIDw8IGVuZGw7CgkJfQoJ
ICAgICAgZWxzZSBpZiAoKmEgPj49IF9sKQoJCXsKCQkgIGNvdXQgPDwgIkxvbmc6ICIgPDwg
X2wgPDwgZW5kbDsKCQl9CgkgICAgICBlbHNlIGlmICgqYSA+Pj0gX3VsKQoJCXsKCQkgIGNv
dXQgPDwgIlVMb25nOiAiIDw8IF91bCA8PCBlbmRsOwoJCX0KCSAgICAgIGVsc2UKCQl7CgkJ
ICBjb3V0IDw8ICJVbmtub3duIHZhbHVlLiIgPDwgZW5kbDsKCQl9CgoJICAgICAgZGVsZXRl
IGE7CgkgICAgfQoJfQogICAgICBjYXRjaChDT1JCQTo6VHlwZUNvZGU6OkJhZEtpbmQmIEJL
ZXhjZXB0KQoJewoJICBjZXJyIDw8ICIgICA8QkFEIEtJTkQgRVhDRVBUSU9OIFJBSVNFRD4g
d2hlbiByZWFkaW5nIG1lbWJlcl9uYW1lKCkgIgoJICAgICAgIDw8ICJvciBtZW1iZXJfdHlw
ZSgpLiIgPDwgZW5kbDsKCX0KICAgICAgY2F0Y2goQ09SQkE6OlR5cGVDb2RlOjpCb3VuZHMm
IEJuZHNleGNlcHQpCgl7CgkgIGNlcnIgPDwgIiAgIDxCT1VORFMgRVhDRVBUSU9OIFJBSVNF
RD4gd2hlbiByZWFkaW5nIG1lbWJlcl9uYW1lKCkgIgoJICAgICAgIDw8ICJvciBtZW1iZXJf
dHlwZSgpLiIgPDwgZW5kbDsKCX0KICAgICAgY2F0Y2goLi4uKQoJewoJICBjZXJyIDw8ICIg
ICBHZW5lcmFsIEV4Y2VwdGlvbiBSYWlzZWQgd2hlbiByZWFkaW5nIG1lbWJlcl9uYW1lKCkg
IgoJICAgICAgIDw8ICJvciBtZW1iZXJfdHlwZSgpLiIgPDwgZW5kbDsKCSAgZXhpdCgtMSk7
Cgl9CiAgICB9Cn0K

--Multipart_Fri_Jul_31_13:57:55_1998-1
Content-Type: text/plain; charset=US-ASCII


-- 
Dr. Sai-Lai Lo                          |       Research Scientist
                                        |
E-mail:         S.Lo@orl.co.uk          |       Olivetti & Oracle Research Lab
                                        |       24a Trumpington Street
Tel:            +44 223 343000          |       Cambridge CB2 1QA
Fax:            +44 223 313542          |       ENGLAND

--Multipart_Fri_Jul_31_13:57:55_1998-1--