Re: Patching latest TORCS changes in CVS

David Savinkoff <[email protected]> Sat, 11 Mar 2017 21:48:35 -0700 (MST)
Newsgroups gmane.games.torcs.general
Message-ID <1962710545.71222787.1489294115339.JavaMail.zimbra@mailid.telus.net>
------=_Part_71222784_1526971510.1489294115335
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Rolling resistance tweak.
----- David Savinkoff wrote:
> Update.
> ----- David Savinkoff wrote:
> > This one is for those that have ripped up a motocross track with a bike,
> > or who have driven a Chevy II Nova on a dirt track,
> > or those that have seen real drifting on you-tube:
> > 
> > - Grab that latest TORCS from cvs
> > - Apply torcs-1.3.8.contact.2.patch and compile.
> > 
> > - Select car1-trb1 (semi-pro)
> > - Try Alpine 2 (you can drift the whole track! -- ha ha)
> > - Try Dirt 2 (yeah, you know ... see ya)
> > - Then discover Hidden Valley (the new track! )
> > 
> > Sincerely,
> > David Savinkoff
> > 
> > ----- David Savinkoff wrote:
> > > ----- David Savinkoff wrote:
> > > > Here is a patch to play with.
> > > > Correctly combined longitudinal, lateral, and yaw tire friction forces.
> > > > (realistic and predictable vehicular response where the rubber meets the road)
> > > 
> > > The latest improvements for CVS --> torcs-1.3.8.contact.2.patch
> > > The latest improvements for torcs 1.3.7 --> torcs-1.3.7.contact.3.patch
> > 


------=_Part_71222784_1526971510.1489294115335
Content-Type: text/x-patch; name=torcs-1.3.8.contact.5.patch
Content-Disposition: attachment; filename=torcs-1.3.8.contact.5.patch
Content-Transfer-Encoding: base64

LS0tIHRvcmNzL3NyYy9tb2R1bGVzL2dyYXBoaWMvc3NnZ3JhcGgvQ2FyU291bmREYXRhLmNwcAky
MDE0LTAyLTEwIDAzOjE2OjE4LjAwMDAwMDAwMCAtMDgwMAorKysgdG9yY3Mvc3JjL21vZHVsZXMv
Z3JhcGhpYy9zc2dncmFwaC9DYXJTb3VuZERhdGEuY3BwCTIwMTctMDItMjQgMjM6Mjg6MjIuMDAw
MDAwMDAwIC0wODAwCkBAIC0zMTUsMjkgKzMxNSwzMCBAQAogCiAgICAgfQogCisvLyBDYWxjdWxh
dGUgcm9hZC10aXJlIGNvbnRhY3Qgbm9pc2UgcG9zaXRpb25zIHdpdGggYW4gZWZmaWNpZW50IGZv
cm11bGEuCisvLyBub3RlIHRoYXQgc2luKGF6KSBpcyBuZWFybHkgZXF1YWwgdG8gYXogW2luIHJh
ZGlhbnNdLgorLy8gbm90ZSB0aGF0IGNvcyhheikgaXMgY2xvc2UgdG8gMS4wIGZvciBtb2RlcmF0
ZSB5YXcgYW5nbGVzLgorLy8gbm90ZSB0aGF0IHRoZSBjb250YWN0IHBhdGNoIGlzIGJlbmVhdGgg
R0MgKGFwcHJveCAtMC4zIG1ldHJlcykuCisgICAgdGRibGUgYXogPSBjYXItPl95YXc7CiAgICAg
Zm9yIChpID0gMDsgaTw0OyBpKyspIHsKLSAgICAgICAgdGRibGUgYXogPSBjYXItPl95YXc7Ci0g
ICAgICAgIHRkYmxlIFNpbnogPSBzaW4oYXopOwotICAgICAgICB0ZGJsZSBDb3N6ID0gY29zKGF6
KTsKLSAgICAgICAgICAgICAgICAKICAgICAgICAgdGRibGUgeCA9IGNhci0+cHJpdi53aGVlbFtp
XS5yZWxQb3MueDsKICAgICAgICAgdGRibGUgeSA9IGNhci0+cHJpdi53aGVlbFtpXS5yZWxQb3Mu
eTsKICAgICAgICAgICAgICAgICAKLSAgICAgICAgdGRibGUgZHggPSB4ICogQ29zeiAtIHkgKiBT
aW56OwotICAgICAgICB0ZGJsZSBkeSA9IHggKiBTaW56ICsgeSAqIENvc3o7CisgICAgICAgIHRk
YmxlIGR4ID0geCAtIHkqYXo7IC8vIHgqY29zKGF6KSAtIHkqc2luKGF6KQorICAgICAgICB0ZGJs
ZSBkeSA9IHgqYXogKyB5OwogICAgICAgICAgICAgICAgIAogICAgICAgICB0ZGJsZSBkdXggPSAt
Y2FyLT5feWF3X3JhdGUgKiB5OwogICAgICAgICB0ZGJsZSBkdXkgPSBjYXItPl95YXdfcmF0ZSAq
IHg7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgIGR1eCA9IGR1eCAqIENvc3ogLSBkdXkgKiBT
aW56OwotICAgICAgICBkdXkgPSBkdXggKiBTaW56ICsgZHV5ICogQ29zejsKKyAgICAgICAgZHV4
ID0gZHV4IC0gZHV5KmF6OworICAgICAgICBkdXkgPSBkdXgqYXogKyBkdXk7CiAgICAgICAgICAg
ICAgICAgCiAgICAgICAgIHdoZWVsW2ldLnVbMF0gPSBjYXItPnB1Yi5EeW5HQ2cudmVsLnggKyBk
dXg7CiAgICAgICAgIHdoZWVsW2ldLnVbMV0gPSBjYXItPnB1Yi5EeW5HQ2cudmVsLnkgKyBkdXk7
CiAgICAgICAgIHdoZWVsW2ldLnVbMl0gPSBjYXItPnB1Yi5EeW5HQ2cudmVsLno7CiAgICAgICAg
IHdoZWVsW2ldLnBbMF0gPSBjYXItPnB1Yi5EeW5HQ2cucG9zLnggKyBkeDsKICAgICAgICAgd2hl
ZWxbaV0ucFsxXSA9IGNhci0+cHViLkR5bkdDZy5wb3MueSArIGR5OwotICAgICAgICB3aGVlbFtp
XS5wWzJdID0gY2FyLT5wdWIuRHluR0NnLnBvcy56OworICAgICAgICB3aGVlbFtpXS5wWzJdID0g
Y2FyLT5wdWIuRHluR0NnLnBvcy56IC0gMC4zZjsKICAgICB9CiB9CiAKLS0tIHRvcmNzL3NyYy9t
b2R1bGVzL2dyYXBoaWMvc3NnZ3JhcGgvZ3Jza2lkbWFya3MuY3BwCTIwMTQtMDItMTAgMDM6MDk6
MzYuMDAwMDAwMDAwIC0wODAwCisrKyB0b3Jjcy9zcmMvbW9kdWxlcy9ncmFwaGljL3NzZ2dyYXBo
L2dyc2tpZG1hcmtzLmNwcAkyMDE3LTAyLTI0IDIzOjI4OjIyLjAwMDAwMDAwMCAtMDgwMApAQCAt
MTk5LDExICsxOTksNyBAQAogCQkJfQogCQl9CiAKLQkJaWYgKGNhci0+X3NraWRbaV0gPiAwLjFm
KSB7Ci0JCQljdXJfY2xyWzNdID0gdGFuaChza2lkX3NlbnNpdGl2aXR5KmNhci0+X3NraWRbaV0p
OwotCQl9IGVsc2UgewotCQkJY3VyX2NsclszXSA9IDAuMGY7Ci0JCX0KKwkJY3VyX2NsclszXSA9
IHNraWRfc2Vuc2l0aXZpdHkqY2FyLT5fc2tpZFtpXTsgLy8gbGluZWFyICh0YW5oIHJlbW92ZWQs
IHNlZSB3aGVlbC5jcHApCiAKIAkJZm9yIChpbnQgYyA9IDA7IGMgPCAzOyBjKyspIHsKIAkJCXRk
YmxlIHRtcCA9IGdyQ2FySW5mb1tjYXItPmluZGV4XS5za2lkbWFya3MtPnN0cmlwc1tpXS5zbW9v
dGhfY29sb3VyW2NdOwpAQCAtMjE2LDcgKzIxMiw3IEBACiAJCX0KIAogCQlpZiAoY2FyLT5wdWIu
c3BlZWQgPiAxLjBmKSB7Ci0JICAgIAlpZiAoY3VyX2NsclszXSA+IDAuMWYpIHsKKwkgICAgCWlm
IChjdXJfY2xyWzNdID4gMC4xZikgeyAvLyAwLjA2IHdvcmtzIGJldHRlciB0aGFuIDAuMSAvLyBz
b21ldGhpbmcgaGVyZSBpbXByb3ZlcyB0cmFjdGlvbiA/IQogICAgICAgICAgICAgICAgIAogCQkJ
CWJhc2V2dHggPSBuZXcgc3NnVmVydGV4QXJyYXkoNCAqIDIgKyAxKTsKIAkJCQl0ZGJsZSBzbGlu
Z19sZWZ0ID0gMC4wZjsKLS0tIHRvcmNzL3NyYy9tb2R1bGVzL3NpbXUvc2ltdXYyL2Nhci5jcHAJ
MjAxNy0wMi0xMiAwOTo0NTo1Ny4wMDAwMDAwMDAgLTA4MDAKKysrIHRvcmNzL3NyYy9tb2R1bGVz
L3NpbXUvc2ltdXYyL2Nhci5jcHAJMjAxNy0wMi0yNCAyMzoyODoyMi4wMDAwMDAwMDAgLTA4MDAK
QEAgLTY0LDcgKzY0LDcgQEAKIAl9CiAJayA9IGsgKiBrOwogCWNhci0+SWludi54ID0gMTIuMCAv
IChjYXItPm1hc3MgKiAoY2FyLT5kaW1lbnNpb24ueSAqIGNhci0+ZGltZW5zaW9uLnkgKyBjYXIt
PmRpbWVuc2lvbi56ICogY2FyLT5kaW1lbnNpb24ueikpOwotCWNhci0+SWludi55ID0gMTIuMCAv
IChjYXItPm1hc3MgKiAoY2FyLT5kaW1lbnNpb24ueCAqIGNhci0+ZGltZW5zaW9uLnggKyBjYXIt
PmRpbWVuc2lvbi56ICogY2FyLT5kaW1lbnNpb24ueikpOworCWNhci0+SWludi55ID0gMTIuMCAv
IChjYXItPm1hc3MgKiAoayAqIGNhci0+ZGltZW5zaW9uLnggKiBjYXItPmRpbWVuc2lvbi54ICsg
Y2FyLT5kaW1lbnNpb24ueiAqIGNhci0+ZGltZW5zaW9uLnopKTsKIAljYXItPklpbnYueiA9IDEy
LjAgLyAoY2FyLT5tYXNzICogKGNhci0+ZGltZW5zaW9uLnkgKiBjYXItPmRpbWVuc2lvbi55ICsg
ayAqIGNhci0+ZGltZW5zaW9uLnggKiBjYXItPmRpbWVuc2lvbi54KSk7CiAJCiAJLyogY29uZmln
dXJlIGNvbXBvbmVudHMgKi8KQEAgLTE0NSwxMCArMTQ1LDcgQEAKIAl0Rm9yY2VzCUY7CiAJaW50
CQlpOwogCXRkYmxlCW0sIHcsIG1pbnY7Ci0JdGRibGUJdiwgUiwgUnYsIFJtLCBSeCwgUnksIFJ6
OwogCi0JY2FyLT5wcmVEeW5HQyA9IGNhci0+RHluR0NnOwotCQogCS8qIHRvdGFsIG1hc3MgKi8K
IAltID0gY2FyLT5tYXNzICsgY2FyLT5mdWVsOwogCW1pbnYgPSAxLjAgLyBtOwpAQCAtMjAwLDM0
ICsxOTcsMTAgQEAKIAkJRi5NLnkgLT0gY2FyLT5hZXJvLmxpZnRbaV0gKiAoY2FyLT5heGxlW2ld
Lnhwb3MgLSBjYXItPnN0YXRHQy54KTsKIAl9CiAJCQotCS8qIFJvbGxpbmcgUmVzaXN0YW5jZSAq
LwotCXYgPSBjYXItPnNwZWVkOwotCVIgPSAwLjBmOwotCWZvciAoaSA9IDA7IGkgPCA0OyBpKysp
IHsKLQkJUiArPSBjYXItPndoZWVsW2ldLnJvbGxSZXM7Ci0JfQotCWlmICh2ID4gMC4wMDAwMWYp
IHsKLQkJUnYgPSBSIC8gdjsKLQkJaWYgKChSdiAqIG1pbnYgKiBTaW1EZWx0YVRpbWUpID4gdikg
ewotCQkJUnYgPSB2ICogbSAvIFNpbURlbHRhVGltZTsKLQkJfQotCX0gZWxzZSB7Ci0JCVJ2ID0g
MC4wZjsKLQl9Ci0JUnggPSBSdiAqIGNhci0+RHluR0MudmVsLng7Ci0JUnkgPSBSdiAqIGNhci0+
RHluR0MudmVsLnk7Ci0JUnogPSBSdiAqIGNhci0+RHluR0MudmVsLno7Ci0JCi0JaWYgKChSICog
Y2FyLT53aGVlbGJhc2UgLyAyLjAgKiBjYXItPklpbnYueikgPiBmYWJzKGNhci0+RHluR0NnLnZl
bC5heikpIHsKLQkJUm0gPSBjYXItPkR5bkdDZy52ZWwuYXogLyBjYXItPklpbnYuejsKLQl9IGVs
c2UgewotCQlSbSA9IFNJR04oY2FyLT5EeW5HQ2cudmVsLmF6KSAqIFIgKiBjYXItPndoZWVsYmFz
ZSAvIDIuMDsKLQl9Ci0JCiAJLyogY29tcHV0ZSBhY2NlbGVyYXRpb25zICovCi0JY2FyLT5EeW5H
Qy5hY2MueCA9IChGLkYueCAtIFJ4KSAqIG1pbnY7Ci0JY2FyLT5EeW5HQy5hY2MueSA9IChGLkYu
eSAtIFJ5KSAqIG1pbnY7Ci0JY2FyLT5EeW5HQy5hY2MueiA9IChGLkYueiAtIFJ6KSAqIG1pbnY7
CisJY2FyLT5EeW5HQy5hY2MueCA9IEYuRi54ICogbWludjsKKwljYXItPkR5bkdDLmFjYy55ID0g
Ri5GLnkgKiBtaW52OworCWNhci0+RHluR0MuYWNjLnogPSBGLkYueiAqIG1pbnY7CiAJCiAJc2dW
ZWMzIGFjY2VsID0ge2Nhci0+RHluR0MuYWNjLngsIGNhci0+RHluR0MuYWNjLnksIGNhci0+RHlu
R0MuYWNjLnp9OwogCXNnWGZvcm1WZWMzKGFjY2VsLCBkc3QpOwpAQCAtMjM4LDcgKzIxMSw3IEBA
CiAKIAljYXItPkR5bkdDZy5hY2MuYXggPSBjYXItPkR5bkdDLmFjYy5heCA9IEYuTS54ICogY2Fy
LT5JaW52Lng7CiAJY2FyLT5EeW5HQ2cuYWNjLmF5ID0gY2FyLT5EeW5HQy5hY2MuYXkgPSBGLk0u
eSAqIGNhci0+SWludi55OwotCWNhci0+RHluR0NnLmFjYy5heiA9IGNhci0+RHluR0MuYWNjLmF6
ID0gKEYuTS56IC0gUm0pICogY2FyLT5JaW52Lno7CisJY2FyLT5EeW5HQ2cuYWNjLmF6ID0gY2Fy
LT5EeW5HQy5hY2MuYXogKz0gRi5NLnogKiBjYXItPklpbnYuejsgLy8gKz0gc2VlIHRvcmNzL3Ny
Yy9tb2R1bGVzL3NpbXUvc2ltdXYyL3NpbXUuY3BwIDo6IFNpbVVwZGF0ZSgpCiB9CiAKIHN0YXRp
YyB2b2lkCkBAIC0yNTYsNyArMjI5LDE1IEBACiAJaWYgKGZhYnMoY2FyLT5EeW5HQ2cudmVsLmF6
KSA+IDkuMCkgewogCQljYXItPkR5bkdDZy52ZWwuYXogPSBTSUdOKGNhci0+RHluR0NnLnZlbC5h
eikgKiA5LjA7CiAJfQotCQkKKworCS8qIEZJWE1FOiBIYWNrIHRvIHN0b3Agc3RhdGlvbmFyeSBj
YXIgZnJvbSByb3RhdGluZyAqLworCWlmICgoCWNhci0+RHluR0NnLnZlbC54KmNhci0+RHluR0Nn
LnZlbC54ICsKKwkJY2FyLT5EeW5HQ2cudmVsLnkqY2FyLT5EeW5HQ2cudmVsLnkgKworCQljYXIt
PkR5bkdDZy52ZWwueipjYXItPkR5bkdDZy52ZWwueikgPCAwLjAxZiApCisJeworCQljYXItPkR5
bkdDZy52ZWwuYXggPSBjYXItPkR5bkdDZy52ZWwuYXkgPSBjYXItPkR5bkdDZy52ZWwuYXogPSAw
LjBmOworCX0KKwogCWNhci0+RHluR0MudmVsLmF4ID0gY2FyLT5EeW5HQ2cudmVsLmF4OwogCWNh
ci0+RHluR0MudmVsLmF5ID0gY2FyLT5EeW5HQ2cudmVsLmF5OwogCWNhci0+RHluR0MudmVsLmF6
ID0gY2FyLT5EeW5HQ2cudmVsLmF6OwotLS0gdG9yY3Mvc3JjL21vZHVsZXMvc2ltdS9zaW11djIv
c2ltdS5jcHAJMjAxNy0wMi0xOSAwNTowOTowMC4wMDAwMDAwMDAgLTA4MDAKKysrIHRvcmNzL3Ny
Yy9tb2R1bGVzL3NpbXUvc2ltdXYyL3NpbXUuY3BwCTIwMTctMDItMjQgMjM6Mjg6MjIuMDAwMDAw
MDAwIC0wODAwCkBAIC0zODUsNiArMzg1LDcgQEAKIAkJCQlTaW1BeGxlVXBkYXRlKGNhciwgaSk7
CiAJCQl9CiAJCQlDSEVDSyhjYXIpOworCQkJY2FyLT5EeW5HQy5hY2MuYXogPSAwLjBmOyAvLyBz
ZWUgdG9yY3Mvc3JjL21vZHVsZXMvc2ltdS9zaW11djIvd2hlZWwuY3BwIDo6IFNpbVdoZWVsVXBk
YXRlRm9yY2UoKQogCQkJZm9yIChpID0gMDsgaSA8IDQ7IGkrKyl7CiAJCQkJU2ltV2hlZWxVcGRh
dGVGb3JjZShjYXIsIGkpOwogCQkJCVNpbVdoZWVsVXBkYXRlVGlyZShjYXIsIGkpOwotLS0gdG9y
Y3Mvc3JjL21vZHVsZXMvc2ltdS9zaW11djIvc3VzcC5jcHAJMjAxNy0wMS0xNSAwNDo1MjoxNi4w
MDAwMDAwMDAgLTA4MDAKKysrIHRvcmNzL3NyYy9tb2R1bGVzL3NpbXUvc2ltdXYyL3N1c3AuY3Bw
CTIwMTctMDItMjQgMjM6Mjg6MjIuMDAwMDAwMDAwIC0wODAwCkBAIC0xMDcsOSArMTA3LDkgQEAK
IAl9CiAJCiAJc3VzcC0+eCAqPSBzdXNwLT5zcHJpbmcuYmVsbGNyYW5rOwotCWlmIChzdXNwLT54
ID4gc3VzcC0+c3ByaW5nLnhNYXgpIHsKKwlpZiAoc3VzcC0+eCA+PSBzdXNwLT5zcHJpbmcueE1h
eCkgeyAvLyBUZXN0ZWQgT0sgd2l0aCAnPj0nIChTRCByNjAyMCkKIAkJc3VzcC0+eCA9IHN1c3At
PnNwcmluZy54TWF4OwotCQlzdXNwLT5zdGF0ZSA9IFNJTV9TVVNQX0VYVDsKKwkJc3VzcC0+c3Rh
dGUgPSBTSU1fU1VTUF9FWFQ7IC8vIHN1c3AtPnN0YXRlIHVwZGF0ZWQgYWxzbwogCX0KIH0KIAot
LS0gdG9yY3Mvc3JjL21vZHVsZXMvc2ltdS9zaW11djIvd2hlZWwuY3BwCTIwMTctMDItMTMgMTU6
NTE6MDcuMDAwMDAwMDAwIC0wODAwCisrKyB0b3Jjcy9zcmMvbW9kdWxlcy9zaW11L3NpbXV2Mi93
aGVlbC5jcHAJMjAxNy0wMy0xMSAxODoxOTo0NC4wMDAwMDAwMDAgLTA4MDAKQEAgLTQ3LDkgKzQ3
LDkgQEAKIAlDYSAgICAgICAgICAgICAgICAgICAgPSBHZlBhcm1HZXROdW0oaGRsZSwgV2hlZWxT
ZWN0W2luZGV4XSwgUFJNX0NBLCAoY2hhciopTlVMTCwgMzAuMGYpOwogCVJGYWN0b3IgICAgICAg
ICAgICAgICA9IEdmUGFybUdldE51bShoZGxlLCBXaGVlbFNlY3RbaW5kZXhdLCBQUk1fUkZBQ1RP
UiwgKGNoYXIqKU5VTEwsIDAuOGYpOwogCUVGYWN0b3IgICAgICAgICAgICAgICA9IEdmUGFybUdl
dE51bShoZGxlLCBXaGVlbFNlY3RbaW5kZXhdLCBQUk1fRUZBQ1RPUiwgKGNoYXIqKU5VTEwsIDAu
N2YpOwotCXdoZWVsLT5sZk1heCAgICAgICAgICA9IEdmUGFybUdldE51bShoZGxlLCBXaGVlbFNl
Y3RbaW5kZXhdLCBQUk1fTE9BREZNQVgsIChjaGFyKilOVUxMLCAxLjZmKTsKLQl3aGVlbC0+bGZN
aW4gICAgICAgICAgPSBHZlBhcm1HZXROdW0oaGRsZSwgV2hlZWxTZWN0W2luZGV4XSwgUFJNX0xP
QURGTUlOLCAoY2hhciopTlVMTCwgMC44Zik7Ci0Jd2hlZWwtPm9wTG9hZCAgICAgICAgID0gR2ZQ
YXJtR2V0TnVtKGhkbGUsIFdoZWVsU2VjdFtpbmRleF0sIFBSTV9PUExPQUQsIChjaGFyKilOVUxM
LCB3aGVlbC0+d2VpZ2h0MCAqIDEuMmYpOworCXdoZWVsLT5sZk1heCAgICAgICAgICA9IEdmUGFy
bUdldE51bShoZGxlLCBXaGVlbFNlY3RbaW5kZXhdLCBQUk1fTE9BREZNQVgsIChjaGFyKilOVUxM
LCAxLjRmKTsKKwl3aGVlbC0+bGZNaW4gICAgICAgICAgPSBHZlBhcm1HZXROdW0oaGRsZSwgV2hl
ZWxTZWN0W2luZGV4XSwgUFJNX0xPQURGTUlOLCAoY2hhciopTlVMTCwgMS4wZik7CisJd2hlZWwt
Pm9wTG9hZCAgICAgICAgID0gR2ZQYXJtR2V0TnVtKGhkbGUsIFdoZWVsU2VjdFtpbmRleF0sIFBS
TV9PUExPQUQsIChjaGFyKilOVUxMLCB3aGVlbC0+d2VpZ2h0MCAqIDEuNjE4Zik7CiAJd2hlZWwt
Pm1hc3MgICAgICAgICAgID0gR2ZQYXJtR2V0TnVtKGhkbGUsIFdoZWVsU2VjdFtpbmRleF0sIFBS
TV9NQVNTLCAoY2hhciopTlVMTCwgMjAuMGYpOwogCQogCXdoZWVsLT5sZk1pbiA9IE1JTigwLjhm
LCB3aGVlbC0+bGZNaW4pOwpAQCAtMjEzLDEyICsyMTMsMTIgQEAKIHsKIAl0V2hlZWwgKndoZWVs
ID0gJihjYXItPndoZWVsW2luZGV4XSk7CiAJdGRibGUgYXhsZUZ6ID0gd2hlZWwtPmF4bGVGejsK
LQl0ZGJsZSB2dCwgdiwgdjIsIHdybDsgLy8gd2hlZWwgcmVsYXRlZCB2ZWxvY2l0eQorCXRkYmxl
IHZ0LCB2biwgdiwgdjIsIHdybCwgc2xpcF9tYWduaXR1ZGUgPSAwLjAwMDAwMGY7IC8vIHdoZWVs
IHJlbGF0ZWQgdmVsb2NpdHkKIAl0ZGJsZSBGbiwgRnQ7CiAJdGRibGUgd2F6OwotCXRkYmxlIENv
c0EsIFNpbkE7Ci0JdGRibGUgcywgc2EsIHN4LCBzeTsgLy8gc2xpcCB2ZWN0b3IKLQl0ZGJsZSBz
dG1wLCBGLCBCeDsKKwlkb3VibGUgQ29zQSwgU2luQTsKKwl0ZGJsZSBzLCBzeCwgc3ksIHNhejsg
Ly8gc2xpcCB2ZWN0b3IKKwl0ZGJsZSBGLCBCeDsKIAl0ZGJsZSBtdTsKIAl3aGVlbC0+c3RhdGUg
PSAwOwogCkBAIC0yNDgsNDQgKzI0OCw0MSBAQAogCX0KIAogCS8vIEhPUklaT05UQUwgRk9SQ0VT
Ci0Jd2F6ID0gd2hlZWwtPnN0ZWVyICsgd2hlZWwtPnN0YXRpY1Bvcy5hejsKKwl3YXogPSB3aGVl
bC0+c3RlZXIgKyB3aGVlbC0+c3RhdGljUG9zLmF6IC0gKFNpbURlbHRhVGltZSpjYXItPkR5bkdD
LnZlbC5heiAvKiBhY2NvdW50IGZvciB5YXcgaW5kdWNlZCB3aGVlbCBkaXJlY3Rpb24gKi8pOwog
CUNvc0EgPSBjb3Mod2F6KTsKIAlTaW5BID0gc2luKHdheik7CiAKIAkvLyB0YW5nZW50IHZlbG9j
aXR5LgogCXZ0ID0gd2hlZWwtPmJvZHlWZWwueCAqIENvc0EgKyB3aGVlbC0+Ym9keVZlbC55ICog
U2luQTsKKwl2biA9IHdoZWVsLT5ib2R5VmVsLnkgKiBDb3NBIC0gd2hlZWwtPmJvZHlWZWwueCAq
IFNpbkE7CiAJdjIgPSB3aGVlbC0+Ym9keVZlbC54ICogd2hlZWwtPmJvZHlWZWwueCArIHdoZWVs
LT5ib2R5VmVsLnkgKiB3aGVlbC0+Ym9keVZlbC55OwotCXYgPSBzcXJ0KHYyKTsKLQotCS8vIHNs
aXAgYW5nbGUKLQlpZiAodiA8IDAuMDAwMDAxZikgewotCQlzYSA9IDAuMGY7Ci0JfSBlbHNlIHsK
LQkJc2EgPSBhdGFuMih3aGVlbC0+Ym9keVZlbC55LCB3aGVlbC0+Ym9keVZlbC54KSAtIHdhejsK
LQl9Ci0JTk9STV9QSV9QSShzYSk7CisJdiA9IHNxcnRmKHYyKTsKIAogCXdybCA9IHdoZWVsLT5z
cGluVmVsICogd2hlZWwtPnJhZGl1czsKKwogCWlmICgod2hlZWwtPnN0YXRlICYgU0lNX1dIX09O
QUlSKSAhPSAwKSB7Ci0JCXN4ID0gc3kgPSAwLjBmOwotCX0gZWxzZSBpZiAodiA8IDAuMDAwMDAx
ZikgewotCQlzeCA9IHdybDsKLQkJc3kgPSAwLjBmOworCQlzeCA9IHN5ID0gc2F6ID0gMC4wZjsK
IAl9IGVsc2UgewotCQlzeCA9ICh2dCAtIHdybCkgLyBmYWJzKHZ0KTsKLQkJc3kgPSBzaW4oc2Ep
OworCQkvLyBDT01CSU5FRCBMT05HSVRVRElOQUwsIExBVEVSQUwsIGFuZCBZQVdJTkcgVElSRSBT
TElQIEZPUkNFUzoKKwkJLy8gTm9ybWFsaXplIHRoZSBmcmljdGlvbiBjaXJjbGUgdG8gZ2V0IG5v
cm1hbGl6ZWQgdmVjdG9yIGNvbXBvbmVudHMgKHN4LCBzeSkgd2hpbGUKKwkJLy8gYnJha2luZyAo
dnQpLCBhY2NlbGVyYXRpbmcgKHdybCksIG9yIHdoZWVsIGNvdW50ZXIgc3BpbiAodnQgLSB3cmwp
IGZvciBhbnkgYW5nbGUuCisJCS8vIHNheiBzbGlwIHNwZWVkIGFjY291bnRzIGZvciByb3RhdGlu
ZyB0aGUgY29udGFjdCBwYXRjaCAoeWF3KS4gKiBhZGQgc3RlZXJpbmcgc3BlZWQgYW5kIHNlbGYg
YWxpZ25pbmcgdG9ycXVlLgorCQlzYXogPSAoMS4xZiozLjE0MTZmKSAqIGNhci0+RHluR0MudmVs
LmF6ICogY2FyLT5jYXJFbHQtPl90aXJlV2lkdGgoaW5kZXgpOyAvLyB5YXcgc2xpcCBzcGVlZC4K
KwkJc2xpcF9tYWduaXR1ZGUgPSAwLjAwMDAwMWYgKyAvKiBTb2Z0ZW5pbmcgZmFjdG9yIDAuMDAw
MDAxIHByZXZlbnRzIGRpdmlkZSBieSB6ZXJvICovCisJCQkJc3FydCggTUFYKE1BWCgodjIgKyBz
YXoqc2F6KSwgKHZuKnZuICsgd3JsKndybCArIHNheipzYXopKSwgKHZuKnZuICsgKHZ0IC0gd3Js
KSoodnQgLSB3cmwpICsgc2F6KnNheikpICk7CisJCXN4ID0gKHZ0IC0gd3JsKSAvIHNsaXBfbWFn
bml0dWRlOworCQlzeSA9IHZuIC8gc2xpcF9tYWduaXR1ZGU7CisJCXNheiAvPSBzbGlwX21hZ25p
dHVkZTsKIAl9Ci0JCi0JRnQgPSAwLjBmOwotCUZuID0gMC4wZjsKLQlzID0gc3FydChzeCpzeCtz
eSpzeSk7CisKKwlzID0gc3FydGYoc3gqc3grc3kqc3krc2F6KnNheik7CiAKIAl7Ci0JCS8vIGNh
bGN1bGF0ZSBfc2tpZCBhbmQgX3JlYWN0aW9uIGZvciBzb3VuZC4KLQkJaWYgKHYgPCAyLjBmKSB7
CisJCS8vIGNhbGN1bGF0ZSBfc2tpZCBhbmQgX3JlYWN0aW9uIGZvciBzb3VuZCAoc3VzcGljaW91
c2x5OyBhZmZlY3RzIHRyYWN0aW9uIGFsc28pLgorCQlpZiAoKHYgPCAwLjAxZikgfHwgKHpmb3Jj
ZSA8IDAuMDAyZikpIHsKIAkJCWNhci0+Y2FyRWx0LT5fc2tpZFtpbmRleF0gPSAwLjBmOwogCQl9
IGVsc2UgewotCQkJY2FyLT5jYXJFbHQtPl9za2lkW2luZGV4XSA9ICBNSU4oMS4wZiwgKHMqemZv
cmNlKjAuMDAwMmYpKTsKKwkJCWNhci0+Y2FyRWx0LT5fc2tpZFtpbmRleF0gPSBzOyAvLyBsaW5l
YXIgKHRhbmggcmVtb3ZlZCBpbiBncnNraWRtYXJrcy5jcHApCiAJCX0KIAl9CiAKQEAgLTI5OSw0
NyArMjk2LDQ4IEBACiAJCWNhbWJlckRlbHRhID0gY2FzdGVyQ2FtYmVyOwogCX0KIAotCXN0bXAg
PSBNSU4ocywgMS41Zik7Ci0JCi0JLy8gTUFHSUMgRk9STVVMQQotCUJ4ID0gd2hlZWwtPm1mQiAq
IHN0bXA7Ci0JRiA9IHNpbih3aGVlbC0+bWZDICogYXRhbihCeCAqICgxLjBmIC0gd2hlZWwtPm1m
RSkgKyB3aGVlbC0+bWZFICogYXRhbihCeCkpKSAqICgxLjBmICsgc3RtcCAqIHNpbVNraWRGYWN0
b3JbY2FyLT5jYXJFbHQtPl9za2lsbExldmVsXSk7CisJLy8gTUFHSUMgRk9STVVMQSAvLyBOb3Rl
OiBGID0gc2luKC4uLikgYmVsb3cgcmV0dXJucyBub3JtYWxpemVkIGZvcmNlIQorCUJ4ID0gd2hl
ZWwtPm1mQiAqIHM7CisJRiA9IHNpbih3aGVlbC0+bWZDICogYXRhbihCeCAqICgxLjBmIC0gd2hl
ZWwtPm1mRSkgKyB3aGVlbC0+bWZFICogYXRhbihCeCkpKSAqICgxLjBmICsgcyAqIHNpbVNraWRG
YWN0b3JbY2FyLT5jYXJFbHQtPl9za2lsbExldmVsXSk7CiAKIAkvLyBsb2FkIHNlbnNpdGl2aXR5
CiAJbXUgPSB3aGVlbC0+bXUgKiAod2hlZWwtPmxmTWluICsgKHdoZWVsLT5sZk1heCAtIHdoZWVs
LT5sZk1pbikgKiBleHAod2hlZWwtPmxmSyAqIHpmb3JjZSAvIHdoZWVsLT5vcExvYWQpKTsKIAog
CUYgKj0gemZvcmNlICogbXUgKiB3aGVlbC0+dHJrUG9zLnNlZy0+c3VyZmFjZS0+a0ZyaWN0aW9u
ICogKDEuMGYgKyAwLjA1ZiAqIHNpbigoLXdoZWVsLT5zdGF0aWNQb3MuYXggKyBjYW1iZXJEZWx0
YSkgKiAxOC4wZikpOwkvKiBjb2VmZiAqLwogCUYgKj0gd2hlZWwtPmN1cnJlbnRHcmlwRmFjdG9y
OwotCQorCiAJd2hlZWwtPnJvbGxSZXMgPSB6Zm9yY2UgKiB3aGVlbC0+dHJrUG9zLnNlZy0+c3Vy
ZmFjZS0+a1JvbGxSZXM7Ci0gICAgY2FyLT5jYXJFbHQtPnByaXYud2hlZWxbaW5kZXhdLnJvbGxS
ZXMgPSB3aGVlbC0+cm9sbFJlczsKKwkvLyB3aGVlbCBheGlzIGJhc2VkCisJcyArPSAwLjAwMDAw
MWY7IC8vIGFkZCAwLjAwMDAwMSB0byBhdm9pZCBkaXZpZGUgYnkgemVybyBsYXRlci4KKwlGdCA9
IC0oRiAtIHdoZWVsLT5yb2xsUmVzKSAqIHN4L3M7IC8vIHJvbGxpbmcgcmVzaXN0YW5jZSBpcyB0
aGUgcm9sbGluZyB2ZWN0b3IgY29tcG9uZW50IG9ubHkuCisJRm4gPSAtRiAqIHN5L3M7CiAKLQlp
ZiAocyA+IDAuMDAwMDAxZikgewotCQkvLyB3aGVlbCBheGlzIGJhc2VkCi0JCUZ0IC09IEYgKiBz
eCAvIHM7Ci0JCUZuIC09IEYgKiBzeSAvIHM7Ci0JfQorCWNhci0+RHluR0MuYWNjLmF6ICs9IC1G
ICogc2F6L3MgKiBTaW1EZWx0YVRpbWUgKiBjYXItPklpbnYuejsgLy8gc2VlIHRvcmNzL3NyYy9t
b2R1bGVzL3NpbXUvc2ltdXYyL3NpbXUuY3BwIDo6IFNpbVVwZGF0ZSgpCiAKLQlSRUxBWEFUSU9O
MihGbiwgd2hlZWwtPnByZUZuLCA1MC4wZik7Ci0JUkVMQVhBVElPTjIoRnQsIHdoZWVsLT5wcmVG
dCwgNTAuMGYpOworCXdoZWVsLT5yb2xsUmVzICo9IGZhYnNmKHN4L3MpOyAvLyBub3QgdXNlZCAo
cmVtb3ZlZCBmcm9tIC9zcmMvbW9kdWxlcy9zaW11L3NpbXV2Mi9jYXIuY3BwKQorCWNhci0+Y2Fy
RWx0LT5wcml2LndoZWVsW2luZGV4XS5yb2xsUmVzID0gd2hlZWwtPnJvbGxSZXM7IC8vIG5vdCB1
c2VkIGluIC9zcmMvbW9kdWxlcy9ncmFwaGljL3NzZ2dyYXBoL0NhclNvdW5kRGF0YS5jcHAKKwor
CXdheiA9IHdoZWVsLT5zdGVlciArIHdoZWVsLT5zdGF0aWNQb3MuYXo7IC8qIGRvbid0IGluY2x1
ZGUgeWF3IGluZHVjZWQgd2hlZWwgZGlyZWN0aW9uIGhlcmUgKi8KKwlDb3NBID0gY29zKHdheik7
CisJU2luQSA9IHNpbih3YXopOwogCiAJd2hlZWwtPnJlbFBvcy5heiA9IHdhejsKIAkKLQl3aGVl
bC0+Zm9yY2VzLnggPSBGdCAqIENvc0EgLSBGbiAqIFNpbkE7CisJd2hlZWwtPmZvcmNlcy54ID0g
RnQgKiBDb3NBIC0gRm4gKiBTaW5BOyAvLyBSb2xsaW5nIHJlc2lzdGFuY2UgaW4gRnQKIAl3aGVl
bC0+Zm9yY2VzLnkgPSBGdCAqIFNpbkEgKyBGbiAqIENvc0E7Ci0Jd2hlZWwtPnNwaW5UcSA9IEZ0
ICogd2hlZWwtPnJhZGl1czsKLQl3aGVlbC0+c2EgPSBzYTsKKwl3aGVlbC0+c3BpblRxID0gLUYg
KiBzeC9zICogd2hlZWwtPnJhZGl1czsgLy8gc3BpblRxIGlzIGF4bGUgdG9ycXVlLCB0aHVzIG5v
IHJvbGxpbmcgcmVzaXN0YW5jZQorCXdoZWVsLT5zYSA9IGF0YW4yKHdoZWVsLT5ib2R5VmVsLnks
IHdoZWVsLT5ib2R5VmVsLngpIC0gd2F6OwogCXdoZWVsLT5zeCA9IHN4OwogCiAJd2hlZWwtPnRp
cmVaRm9yY2UgPSB6Zm9yY2U7Ci0Jd2hlZWwtPnRpcmVTbGlwID0gc3RtcDsKKwl3aGVlbC0+dGly
ZVNsaXAgPSBzOwogCiAJd2hlZWwtPmZlZWRCYWNrLnNwaW5WZWwgPSB3aGVlbC0+c3BpblZlbDsK
IAl3aGVlbC0+ZmVlZEJhY2suVHEgPSB3aGVlbC0+c3BpblRxOwogCXdoZWVsLT5mZWVkQmFjay5i
cmtUcSA9IHdoZWVsLT5icmFrZS5UcTsKIAotCWNhci0+Y2FyRWx0LT5fd2hlZWxTbGlwU2lkZShp
bmRleCkgPSBzeSp2OwotCWNhci0+Y2FyRWx0LT5fd2hlZWxTbGlwQWNjZWwoaW5kZXgpID0gc3gq
djsKKwljYXItPmNhckVsdC0+X3doZWVsU2xpcFNpZGUoaW5kZXgpID0gdm4qKDEuMGYtc3kpOyAv
LyB3aGVlbCBub3JtYWwgYWRoZXNpb24gdmVsb2NpdHkKKwljYXItPmNhckVsdC0+X3doZWVsU2xp
cEFjY2VsKGluZGV4KSA9IHZ0KigxLjBmLXN4KTsgLy8gd2hlZWwgdGFuZ2VudCBhZGhlc2lvbiB2
ZWxvY2l0eQogCWNhci0+Y2FyRWx0LT5fcmVhY3Rpb25baW5kZXhdID0gemZvcmNlOwogfQogCkBA
IC0zNTQsOCArMzUyLDYgQEAKIAkJd2hlZWwgPSAmKGNhci0+d2hlZWxbaV0pOwogCQl3aGVlbC0+
c3BpblZlbCA9IHdoZWVsLT5pbi5zcGluVmVsOwogCi0JCVJFTEFYQVRJT04yKHdoZWVsLT5zcGlu
VmVsLCB3aGVlbC0+cHJlc3BpblZlbCwgNTAuMGYpOwotCiAJCXdoZWVsLT5yZWxQb3MuYXkgKz0g
d2hlZWwtPnNwaW5WZWwgKiBTaW1EZWx0YVRpbWU7CiAJCU5PUk1fUElfUEkod2hlZWwtPnJlbFBv
cy5heSk7CiAJCWNhci0+Y2FyRWx0LT5fd2hlZWxTcGluVmVsKGkpID0gd2hlZWwtPnNwaW5WZWw7
Cg==
------=_Part_71222784_1526971510.1489294115335
Content-Type: text/x-patch; name=torcs-1.3.7.contact.5.patch
Content-Disposition: attachment; filename=torcs-1.3.7.contact.5.patch
Content-Transfer-Encoding: base64

LS0tIHRvcmNzLTEuMy43L3NyYy9tb2R1bGVzL2dyYXBoaWMvc3NnZ3JhcGgvQ2FyU291bmREYXRh
LmNwcAkyMDE0LTAyLTEwIDAzOjE2OjE4LjAwMDAwMDAwMCAtMDgwMAorKysgdG9yY3MtMS4zLjcv
c3JjL21vZHVsZXMvZ3JhcGhpYy9zc2dncmFwaC9DYXJTb3VuZERhdGEuY3BwCTIwMTctMDMtMDIg
MTM6Mzc6NTUuMzMzNTgzMTY4IC0wODAwCkBAIC0zMTUsMjkgKzMxNSwzMCBAQAogCiAgICAgfQog
CisvLyBDYWxjdWxhdGUgcm9hZC10aXJlIGNvbnRhY3Qgbm9pc2UgcG9zaXRpb25zIHdpdGggYW4g
ZWZmaWNpZW50IGZvcm11bGEuCisvLyBub3RlIHRoYXQgc2luKGF6KSBpcyBuZWFybHkgZXF1YWwg
dG8gYXogW2luIHJhZGlhbnNdLgorLy8gbm90ZSB0aGF0IGNvcyhheikgaXMgY2xvc2UgdG8gMS4w
IGZvciBtb2RlcmF0ZSB5YXcgYW5nbGVzLgorLy8gbm90ZSB0aGF0IHRoZSBjb250YWN0IHBhdGNo
IGlzIGJlbmVhdGggR0MgKGFwcHJveCAtMC4zIG1ldHJlcykuCisgICAgdGRibGUgYXogPSBjYXIt
Pl95YXc7CiAgICAgZm9yIChpID0gMDsgaTw0OyBpKyspIHsKLSAgICAgICAgdGRibGUgYXogPSBj
YXItPl95YXc7Ci0gICAgICAgIHRkYmxlIFNpbnogPSBzaW4oYXopOwotICAgICAgICB0ZGJsZSBD
b3N6ID0gY29zKGF6KTsKLSAgICAgICAgICAgICAgICAKICAgICAgICAgdGRibGUgeCA9IGNhci0+
cHJpdi53aGVlbFtpXS5yZWxQb3MueDsKICAgICAgICAgdGRibGUgeSA9IGNhci0+cHJpdi53aGVl
bFtpXS5yZWxQb3MueTsKICAgICAgICAgICAgICAgICAKLSAgICAgICAgdGRibGUgZHggPSB4ICog
Q29zeiAtIHkgKiBTaW56OwotICAgICAgICB0ZGJsZSBkeSA9IHggKiBTaW56ICsgeSAqIENvc3o7
CisgICAgICAgIHRkYmxlIGR4ID0geCAtIHkqYXo7IC8vIHgqY29zKGF6KSAtIHkqc2luKGF6KQor
ICAgICAgICB0ZGJsZSBkeSA9IHgqYXogKyB5OwogICAgICAgICAgICAgICAgIAogICAgICAgICB0
ZGJsZSBkdXggPSAtY2FyLT5feWF3X3JhdGUgKiB5OwogICAgICAgICB0ZGJsZSBkdXkgPSBjYXIt
Pl95YXdfcmF0ZSAqIHg7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgIGR1eCA9IGR1eCAqIENv
c3ogLSBkdXkgKiBTaW56OwotICAgICAgICBkdXkgPSBkdXggKiBTaW56ICsgZHV5ICogQ29zejsK
KyAgICAgICAgZHV4ID0gZHV4IC0gZHV5KmF6OworICAgICAgICBkdXkgPSBkdXgqYXogKyBkdXk7
CiAgICAgICAgICAgICAgICAgCiAgICAgICAgIHdoZWVsW2ldLnVbMF0gPSBjYXItPnB1Yi5EeW5H
Q2cudmVsLnggKyBkdXg7CiAgICAgICAgIHdoZWVsW2ldLnVbMV0gPSBjYXItPnB1Yi5EeW5HQ2cu
dmVsLnkgKyBkdXk7CiAgICAgICAgIHdoZWVsW2ldLnVbMl0gPSBjYXItPnB1Yi5EeW5HQ2cudmVs
Lno7CiAgICAgICAgIHdoZWVsW2ldLnBbMF0gPSBjYXItPnB1Yi5EeW5HQ2cucG9zLnggKyBkeDsK
ICAgICAgICAgd2hlZWxbaV0ucFsxXSA9IGNhci0+cHViLkR5bkdDZy5wb3MueSArIGR5OwotICAg
ICAgICB3aGVlbFtpXS5wWzJdID0gY2FyLT5wdWIuRHluR0NnLnBvcy56OworICAgICAgICB3aGVl
bFtpXS5wWzJdID0gY2FyLT5wdWIuRHluR0NnLnBvcy56IC0gMC4zZjsKICAgICB9CiB9CiAKLS0t
IHRvcmNzLTEuMy43L3NyYy9tb2R1bGVzL2dyYXBoaWMvc3NnZ3JhcGgvZ3Jza2lkbWFya3MuY3Bw
CTIwMTQtMDItMTAgMDM6MDk6MzYuMDAwMDAwMDAwIC0wODAwCisrKyB0b3Jjcy0xLjMuNy9zcmMv
bW9kdWxlcy9ncmFwaGljL3NzZ2dyYXBoL2dyc2tpZG1hcmtzLmNwcAkyMDE3LTAzLTAyIDEzOjM3
OjU1LjMzNDU4MzI4MyAtMDgwMApAQCAtMTk5LDExICsxOTksNyBAQAogCQkJfQogCQl9CiAKLQkJ
aWYgKGNhci0+X3NraWRbaV0gPiAwLjFmKSB7Ci0JCQljdXJfY2xyWzNdID0gdGFuaChza2lkX3Nl
bnNpdGl2aXR5KmNhci0+X3NraWRbaV0pOwotCQl9IGVsc2UgewotCQkJY3VyX2NsclszXSA9IDAu
MGY7Ci0JCX0KKwkJY3VyX2NsclszXSA9IHNraWRfc2Vuc2l0aXZpdHkqY2FyLT5fc2tpZFtpXTsg
Ly8gbGluZWFyICh0YW5oIHJlbW92ZWQsIHNlZSB3aGVlbC5jcHApCiAKIAkJZm9yIChpbnQgYyA9
IDA7IGMgPCAzOyBjKyspIHsKIAkJCXRkYmxlIHRtcCA9IGdyQ2FySW5mb1tjYXItPmluZGV4XS5z
a2lkbWFya3MtPnN0cmlwc1tpXS5zbW9vdGhfY29sb3VyW2NdOwpAQCAtMjE2LDcgKzIxMiw3IEBA
CiAJCX0KIAogCQlpZiAoY2FyLT5wdWIuc3BlZWQgPiAxLjBmKSB7Ci0JICAgIAlpZiAoY3VyX2Ns
clszXSA+IDAuMWYpIHsKKwkgICAgCWlmIChjdXJfY2xyWzNdID4gMC4xZikgeyAvLyAwLjA2IHdv
cmtzIGJldHRlciB0aGFuIDAuMSAvLyBzb21ldGhpbmcgaGVyZSBpbXByb3ZlcyB0cmFjdGlvbiA/
IQogICAgICAgICAgICAgICAgIAogCQkJCWJhc2V2dHggPSBuZXcgc3NnVmVydGV4QXJyYXkoNCAq
IDIgKyAxKTsKIAkJCQl0ZGJsZSBzbGluZ19sZWZ0ID0gMC4wZjsKLS0tIHRvcmNzLTEuMy43L3Ny
Yy9tb2R1bGVzL3NpbXUvc2ltdXYyL2Nhci5jcHAJMjAxNi0wNS0xNiAxNTo1MzowNy4wMDAwMDAw
MDAgLTA3MDAKKysrIHRvcmNzLTEuMy43L3NyYy9tb2R1bGVzL3NpbXUvc2ltdXYyL2Nhci5jcHAJ
MjAxNy0wMy0wMiAxMzozNzo1NS4zMzY1ODM1MDIgLTA4MDAKQEAgLTY0LDcgKzY0LDcgQEAKIAl9
CiAJayA9IGsgKiBrOwogCWNhci0+SWludi54ID0gMTIuMCAvIChjYXItPm1hc3MgKiAoY2FyLT5k
aW1lbnNpb24ueSAqIGNhci0+ZGltZW5zaW9uLnkgKyBjYXItPmRpbWVuc2lvbi56ICogY2FyLT5k
aW1lbnNpb24ueikpOwotCWNhci0+SWludi55ID0gMTIuMCAvIChjYXItPm1hc3MgKiAoY2FyLT5k
aW1lbnNpb24ueCAqIGNhci0+ZGltZW5zaW9uLnggKyBjYXItPmRpbWVuc2lvbi56ICogY2FyLT5k
aW1lbnNpb24ueikpOworCWNhci0+SWludi55ID0gMTIuMCAvIChjYXItPm1hc3MgKiAoayAqIGNh
ci0+ZGltZW5zaW9uLnggKiBjYXItPmRpbWVuc2lvbi54ICsgY2FyLT5kaW1lbnNpb24ueiAqIGNh
ci0+ZGltZW5zaW9uLnopKTsKIAljYXItPklpbnYueiA9IDEyLjAgLyAoY2FyLT5tYXNzICogKGNh
ci0+ZGltZW5zaW9uLnkgKiBjYXItPmRpbWVuc2lvbi55ICsgayAqIGNhci0+ZGltZW5zaW9uLngg
KiBjYXItPmRpbWVuc2lvbi54KSk7CiAJCiAJLyogY29uZmlndXJlIGNvbXBvbmVudHMgKi8KQEAg
LTE0Niw3ICsxNDYsNiBAQAogCXRkYmxlCW0sIHcsIG1pbnY7CiAJdGRibGUJU2luVGhldGE7CiAJ
dGRibGUJQ29zeiwgU2luejsKLQl0ZGJsZQl2LCBSLCBSdiwgUm0sIFJ4LCBSeTsKIAkKIAlDb3N6
ID0gY2FyLT5Db3N6ID0gY29zKGNhci0+RHluR0NnLnBvcy5heik7CiAJU2lueiA9IGNhci0+U2lu
eiA9IHNpbihjYXItPkR5bkdDZy5wb3MuYXopOwpAQCAtMTk5LDQxICsxOTgsMTggQEAKIAkJRi5N
LnkgLT0gY2FyLT5hZXJvLmxpZnRbaV0gKiAoY2FyLT5heGxlW2ldLnhwb3MgLSBjYXItPnN0YXRH
Qy54KTsKIAl9CiAJCi0JLyogUm9sbGluZyBSZXNpc3RhbmNlICovCi0JdiA9IHNxcnQoY2FyLT5E
eW5HQ2cudmVsLnggKiBjYXItPkR5bkdDZy52ZWwueCArIGNhci0+RHluR0NnLnZlbC55ICogY2Fy
LT5EeW5HQ2cudmVsLnkpOwotCVIgPSAwOwotCWZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHsKLQkJ
UiArPSBjYXItPndoZWVsW2ldLnJvbGxSZXM7Ci0JfQotCWlmICh2ID4gMC4wMDAwMSkgewotCQlS
diA9IFIgLyB2OwotCQlpZiAoKFJ2ICogbWludiAqIFNpbURlbHRhVGltZSkgPiB2KSB7Ci0JCQlS
diA9IHYgKiBtIC8gU2ltRGVsdGFUaW1lOwotCQl9Ci0JfSBlbHNlIHsKLQkJUnYgPSAwOwotCX0K
LQlSeCA9IFJ2ICogY2FyLT5EeW5HQ2cudmVsLng7Ci0JUnkgPSBSdiAqIGNhci0+RHluR0NnLnZl
bC55OwotCQotCWlmICgoUiAqIGNhci0+d2hlZWxiYXNlIC8gMi4wICogY2FyLT5JaW52LnopID4g
ZmFicyhjYXItPkR5bkdDZy52ZWwuYXopKSB7Ci0JCVJtID0gY2FyLT5EeW5HQ2cudmVsLmF6IC8g
Y2FyLT5JaW52Lno7Ci0JfSBlbHNlIHsKLQkJUm0gPSBTSUdOKGNhci0+RHluR0NnLnZlbC5heikg
KiBSICogY2FyLT53aGVlbGJhc2UgLyAyLjA7Ci0JfQotCQogCS8qIGNvbXB1dGUgYWNjZWxlcmF0
aW9ucyAqLwogCWNhci0+RHluR0MuYWNjLnggPSBGLkYueCAqIG1pbnY7CiAJY2FyLT5EeW5HQy5h
Y2MueSA9IEYuRi55ICogbWludjsKIAljYXItPkR5bkdDLmFjYy56ID0gRi5GLnogKiBtaW52Owog
CQotCWNhci0+RHluR0NnLmFjYy54ID0gKEYuRi54ICogQ29zeiAtIEYuRi55ICogU2lueiAtIFJ4
KSAqIG1pbnY7Ci0JY2FyLT5EeW5HQ2cuYWNjLnkgPSAoRi5GLnggKiBTaW56ICsgRi5GLnkgKiBD
b3N6IC0gUnkpICogbWludjsKKwljYXItPkR5bkdDZy5hY2MueCA9IChGLkYueCAqIENvc3ogLSBG
LkYueSAqIFNpbnopICogbWludjsKKwljYXItPkR5bkdDZy5hY2MueSA9IChGLkYueCAqIFNpbnog
KyBGLkYueSAqIENvc3opICogbWludjsKIAljYXItPkR5bkdDZy5hY2MueiA9IGNhci0+RHluR0Mu
YWNjLno7CiAJCiAJY2FyLT5EeW5HQ2cuYWNjLmF4ID0gY2FyLT5EeW5HQy5hY2MuYXggPSBGLk0u
eCAqIGNhci0+SWludi54OwogCWNhci0+RHluR0NnLmFjYy5heSA9IGNhci0+RHluR0MuYWNjLmF5
ID0gRi5NLnkgKiBjYXItPklpbnYueTsKLQljYXItPkR5bkdDZy5hY2MuYXogPSBjYXItPkR5bkdD
LmFjYy5heiA9IChGLk0ueiAtIFJtKSAqIGNhci0+SWludi56OworCWNhci0+RHluR0NnLmFjYy5h
eiA9IGNhci0+RHluR0MuYWNjLmF6ICs9IEYuTS56ICogY2FyLT5JaW52Lno7IC8vICs9IHNlZSB0
b3Jjcy9zcmMvbW9kdWxlcy9zaW11L3NpbXV2Mi9zaW11LmNwcCA6OiBTaW1VcGRhdGUoKSAKIH0K
IAogc3RhdGljIHZvaWQKQEAgLTI1Niw3ICsyMzIsMTUgQEAKIAlpZiAoZmFicyhjYXItPkR5bkdD
Zy52ZWwuYXopID4gOS4wKSB7CiAJCWNhci0+RHluR0NnLnZlbC5heiA9IFNJR04oY2FyLT5EeW5H
Q2cudmVsLmF6KSAqIDkuMDsKIAl9Ci0JCQorCQorCS8qIEZJWE1FOiBIYWNrIHRvIHN0b3Agc3Rh
dGlvbmFyeSBjYXIgZnJvbSByb3RhdGluZyAqLworCWlmICgoCWNhci0+RHluR0NnLnZlbC54KmNh
ci0+RHluR0NnLnZlbC54ICsKKwkJY2FyLT5EeW5HQ2cudmVsLnkqY2FyLT5EeW5HQ2cudmVsLnkg
KworCQljYXItPkR5bkdDZy52ZWwueipjYXItPkR5bkdDZy52ZWwueikgPCAwLjAxZiApCisJewor
CQljYXItPkR5bkdDZy52ZWwuYXggPSBjYXItPkR5bkdDZy52ZWwuYXkgPSBjYXItPkR5bkdDZy52
ZWwuYXogPSAwLjBmOworCX0KKwkKIAljYXItPkR5bkdDLnZlbC5heCA9IGNhci0+RHluR0NnLnZl
bC5heDsKIAljYXItPkR5bkdDLnZlbC5heSA9IGNhci0+RHluR0NnLnZlbC5heTsKIAljYXItPkR5
bkdDLnZlbC5heiA9IGNhci0+RHluR0NnLnZlbC5hejsKLS0tIHRvcmNzLTEuMy43L3NyYy9tb2R1
bGVzL3NpbXUvc2ltdXYyL2NvbGxpZGUuY3BwCTIwMTQtMDQtMTIgMDY6NTU6MjkuMDAwMDAwMDAw
IC0wNzAwCisrKyB0b3Jjcy0xLjMuNy9zcmMvbW9kdWxlcy9zaW11L3NpbXV2Mi9jb2xsaWRlLmNw
cAkyMDE3LTAzLTAyIDEzOjM3OjU1LjMzNzU4MzYwNiAtMDgwMApAQCAtMzcsNyArMzcsNyBAQAog
CWZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHsKIAkJd2hlZWwgPSAmKGNhci0+d2hlZWxbaV0pOwog
CQlpZiAod2hlZWwtPnN0YXRlICYgU0lNX1NVU1BfQ09NUCkgewotCQkJY2FyLT5EeW5HQ2cucG9z
LnogKz0gd2hlZWwtPnN1c3Auc3ByaW5nLnBhY2tlcnMgLSB3aGVlbC0+cmlkZUhlaWdodDsKKwkJ
CWNhci0+RHluR0NnLnBvcy56ICs9IDAuMjVmKih3aGVlbC0+c3VzcC5zcHJpbmcucGFja2VycyAt
IHdoZWVsLT5yaWRlSGVpZ2h0KTsgLy8gbGV2ZXJhZ2Ugb2YgNCB3aGVlbHMKIAkJCVJ0VHJhY2tT
dXJmYWNlTm9ybWFsTCgmKHdoZWVsLT50cmtQb3MpLCAmbm9ybWFsKTsKIAkJCWRvdFByb2QgPSAo
Y2FyLT5EeW5HQ2cudmVsLnggKiBub3JtYWwueCArIGNhci0+RHluR0NnLnZlbC55ICogbm9ybWFs
LnkgKyBjYXItPkR5bkdDZy52ZWwueiAqIG5vcm1hbC56KSAqIHdoZWVsLT50cmtQb3Muc2VnLT5z
dXJmYWNlLT5rUmVib3VuZDsKIAkJCWlmIChkb3RQcm9kIDwgMC4wZikgewotLS0gdG9yY3MtMS4z
Ljcvc3JjL21vZHVsZXMvc2ltdS9zaW11djIvc2ltdS5jcHAJMjAxNi0xMC0xNCAyMTo1MDoxMS4w
MDAwMDAwMDAgLTA3MDAKKysrIHRvcmNzLTEuMy43L3NyYy9tb2R1bGVzL3NpbXUvc2ltdXYyL3Np
bXUuY3BwCTIwMTctMDMtMDIgMTM6Mzc6NTUuMzM4NTgzNzA3IC0wODAwCkBAIC0zODAsNiArMzgw
LDcgQEAKIAkJCQlTaW1BeGxlVXBkYXRlKGNhciwgaSk7CiAJCQl9CiAJCQlDSEVDSyhjYXIpOwor
CQkJY2FyLT5EeW5HQy5hY2MuYXogPSAwLjBmOyAvLyBzZWUgdG9yY3Mvc3JjL21vZHVsZXMvc2lt
dS9zaW11djIvd2hlZWwuY3BwIDo6IFNpbVdoZWVsVXBkYXRlRm9yY2UoKQogCQkJZm9yIChpID0g
MDsgaSA8IDQ7IGkrKyl7CiAJCQkJU2ltV2hlZWxVcGRhdGVGb3JjZShjYXIsIGkpOwogCQkJfQot
LS0gdG9yY3MtMS4zLjcvc3JjL21vZHVsZXMvc2ltdS9zaW11djIvc3VzcC5jcHAJMjAxNi0wMy0x
OSAwNzo0NzowNS4wMDAwMDAwMDAgLTA3MDAKKysrIHRvcmNzLTEuMy43L3NyYy9tb2R1bGVzL3Np
bXUvc2ltdXYyL3N1c3AuY3BwCTIwMTctMDMtMDIgMTM6Mzc6NTUuMzM5NTgzODA0IC0wODAwCkBA
IC0xMDcsOSArMTA3LDkgQEAKIAl9CiAJCiAJc3VzcC0+eCAqPSBzdXNwLT5zcHJpbmcuYmVsbGNy
YW5rOwotCWlmIChzdXNwLT54ID4gc3VzcC0+c3ByaW5nLnhNYXgpIHsKKwlpZiAoc3VzcC0+eCA+
PSBzdXNwLT5zcHJpbmcueE1heCkgeyAvLyBUZXN0ZWQgT0sgd2l0aCAnPj0nIChTRCByNjAyMCkK
IAkJc3VzcC0+eCA9IHN1c3AtPnNwcmluZy54TWF4OwotCQlzdXNwLT5zdGF0ZSA9IFNJTV9TVVNQ
X0VYVDsKKwkJc3VzcC0+c3RhdGUgPSBTSU1fU1VTUF9FWFQ7IC8vIHN1c3AtPnN0YXRlIHVwZGF0
ZWQgYWxzbwogCX0KIH0KIAotLS0gdG9yY3MtMS4zLjcvc3JjL21vZHVsZXMvc2ltdS9zaW11djIv
d2hlZWwuY3BwCTIwMTYtMDUtMTYgMTU6NTM6MDcuMDAwMDAwMDAwIC0wNzAwCisrKyB0b3Jjcy0x
LjMuNy9zcmMvbW9kdWxlcy9zaW11L3NpbXV2Mi93aGVlbC5jcHAJMjAxNy0wMy0wMiAxMzo0OTox
Ni43NjMwMjE1NzUgLTA4MDAKQEAgLTQ2LDkgKzQ2LDkgQEAKIAlDYSAgICAgICAgICAgICAgICAg
ICAgPSBHZlBhcm1HZXROdW0oaGRsZSwgV2hlZWxTZWN0W2luZGV4XSwgUFJNX0NBLCAoY2hhciop
TlVMTCwgMzAuMGYpOwogCVJGYWN0b3IgICAgICAgICAgICAgICA9IEdmUGFybUdldE51bShoZGxl
LCBXaGVlbFNlY3RbaW5kZXhdLCBQUk1fUkZBQ1RPUiwgKGNoYXIqKU5VTEwsIDAuOGYpOwogCUVG
YWN0b3IgICAgICAgICAgICAgICA9IEdmUGFybUdldE51bShoZGxlLCBXaGVlbFNlY3RbaW5kZXhd
LCBQUk1fRUZBQ1RPUiwgKGNoYXIqKU5VTEwsIDAuN2YpOwotCXdoZWVsLT5sZk1heCAgICAgICAg
ICA9IEdmUGFybUdldE51bShoZGxlLCBXaGVlbFNlY3RbaW5kZXhdLCBQUk1fTE9BREZNQVgsIChj
aGFyKilOVUxMLCAxLjZmKTsKLQl3aGVlbC0+bGZNaW4gICAgICAgICAgPSBHZlBhcm1HZXROdW0o
aGRsZSwgV2hlZWxTZWN0W2luZGV4XSwgUFJNX0xPQURGTUlOLCAoY2hhciopTlVMTCwgMC44Zik7
Ci0Jd2hlZWwtPm9wTG9hZCAgICAgICAgID0gR2ZQYXJtR2V0TnVtKGhkbGUsIFdoZWVsU2VjdFtp
bmRleF0sIFBSTV9PUExPQUQsIChjaGFyKilOVUxMLCB3aGVlbC0+d2VpZ2h0MCAqIDEuMmYpOwor
CXdoZWVsLT5sZk1heCAgICAgICAgICA9IEdmUGFybUdldE51bShoZGxlLCBXaGVlbFNlY3RbaW5k
ZXhdLCBQUk1fTE9BREZNQVgsIChjaGFyKilOVUxMLCAxLjRmKTsKKwl3aGVlbC0+bGZNaW4gICAg
ICAgICAgPSBHZlBhcm1HZXROdW0oaGRsZSwgV2hlZWxTZWN0W2luZGV4XSwgUFJNX0xPQURGTUlO
LCAoY2hhciopTlVMTCwgMS4wZik7CisJd2hlZWwtPm9wTG9hZCAgICAgICAgID0gR2ZQYXJtR2V0
TnVtKGhkbGUsIFdoZWVsU2VjdFtpbmRleF0sIFBSTV9PUExPQUQsIChjaGFyKilOVUxMLCB3aGVl
bC0+d2VpZ2h0MCAqIDEuNjE4Zik7CiAJd2hlZWwtPm1hc3MgICAgICAgICAgID0gR2ZQYXJtR2V0
TnVtKGhkbGUsIFdoZWVsU2VjdFtpbmRleF0sIFBSTV9NQVNTLCAoY2hhciopTlVMTCwgMjAuMGYp
OwogCiAJaWYgKGluZGV4ICUgMikgewpAQCAtMTc0LDEyICsxNzQsMTIgQEAKIHsKIAl0V2hlZWwg
KndoZWVsID0gJihjYXItPndoZWVsW2luZGV4XSk7CiAJdGRibGUgYXhsZUZ6ID0gd2hlZWwtPmF4
bGVGejsKLQl0ZGJsZSB2dCwgdiwgdjIsIHdybDsgLy8gd2hlZWwgcmVsYXRlZCB2ZWxvY2l0eQor
CXRkYmxlIHZ0LCB2biwgdiwgdjIsIHdybCwgc2xpcF9tYWduaXR1ZGUgPSAwLjAwMDAwMGY7IC8v
IHdoZWVsIHJlbGF0ZWQgdmVsb2NpdHkKIAl0ZGJsZSBGbiwgRnQ7CiAJdGRibGUgd2F6OwotCXRk
YmxlIENvc0EsIFNpbkE7Ci0JdGRibGUgcywgc2EsIHN4LCBzeTsgLy8gc2xpcCB2ZWN0b3IKLQl0
ZGJsZSBzdG1wLCBGLCBCeDsKKwlkb3VibGUgQ29zQSwgU2luQTsKKwl0ZGJsZSBzLCBzeCwgc3ks
IHNhejsgLy8gc2xpcCB2ZWN0b3IKKwl0ZGJsZSBGLCBCeDsKIAl0ZGJsZSBtdTsKIAl3aGVlbC0+
c3RhdGUgPSAwOwogCkBAIC0yMDksNTIgKzIwOSw0NyBAQAogCX0KIAogCS8vIEhPUklaT05UQUwg
Rk9SQ0VTCi0Jd2F6ID0gd2hlZWwtPnN0ZWVyICsgd2hlZWwtPnN0YXRpY1Bvcy5hejsKKwl3YXog
PSB3aGVlbC0+c3RlZXIgKyB3aGVlbC0+c3RhdGljUG9zLmF6IC0gKFNpbURlbHRhVGltZSpjYXIt
PkR5bkdDLnZlbC5heiAvKiBhY2NvdW50IGZvciB5YXcgaW5kdWNlZCB3aGVlbCBkaXJlY3Rpb24g
Ki8pOwogCUNvc0EgPSBjb3Mod2F6KTsKIAlTaW5BID0gc2luKHdheik7CiAKIAkvLyB0YW5nZW50
IHZlbG9jaXR5LgogCXZ0ID0gd2hlZWwtPmJvZHlWZWwueCAqIENvc0EgKyB3aGVlbC0+Ym9keVZl
bC55ICogU2luQTsKKwl2biA9IHdoZWVsLT5ib2R5VmVsLnkgKiBDb3NBIC0gd2hlZWwtPmJvZHlW
ZWwueCAqIFNpbkE7CiAJdjIgPSB3aGVlbC0+Ym9keVZlbC54ICogd2hlZWwtPmJvZHlWZWwueCAr
IHdoZWVsLT5ib2R5VmVsLnkgKiB3aGVlbC0+Ym9keVZlbC55OwotCXYgPSBzcXJ0KHYyKTsKLQot
CS8vIHNsaXAgYW5nbGUKLQlpZiAodiA8IDAuMDAwMDAxZikgewotCQlzYSA9IDAuMGY7Ci0JfSBl
bHNlIHsKLQkJc2EgPSBhdGFuMih3aGVlbC0+Ym9keVZlbC55LCB3aGVlbC0+Ym9keVZlbC54KSAt
IHdhejsKLQl9Ci0JTk9STV9QSV9QSShzYSk7CisJdiA9IHNxcnRmKHYyKTsKIAogCXdybCA9IHdo
ZWVsLT5zcGluVmVsICogd2hlZWwtPnJhZGl1czsKKwogCWlmICgod2hlZWwtPnN0YXRlICYgU0lN
X1dIX09OQUlSKSAhPSAwKSB7Ci0JCXN4ID0gc3kgPSAwLjBmOwotCX0gZWxzZSBpZiAodiA8IDAu
MDAwMDAxZikgewotCQlzeCA9IHdybDsKLQkJc3kgPSAwLjBmOworCQlzeCA9IHN5ID0gc2F6ID0g
MC4wZjsKIAl9IGVsc2UgewotCQlzeCA9ICh2dCAtIHdybCkgLyBmYWJzKHZ0KTsKLQkJc3kgPSBz
aW4oc2EpOworCQkvLyBDT01CSU5FRCBMT05HSVRVRElOQUwsIExBVEVSQUwsIGFuZCBZQVdJTkcg
VElSRSBTTElQIEZPUkNFUzoKKwkJLy8gTm9ybWFsaXplIHRoZSBmcmljdGlvbiBjaXJjbGUgdG8g
Z2V0IG5vcm1hbGl6ZWQgdmVjdG9yIGNvbXBvbmVudHMgKHN4LCBzeSkgd2hpbGUKKwkJLy8gYnJh
a2luZyAodnQpLCBhY2NlbGVyYXRpbmcgKHdybCksIG9yIHdoZWVsIGNvdW50ZXIgc3BpbiAodnQg
LSB3cmwpIGZvciBhbnkgYW5nbGUuCisJCS8vIHNheiBzbGlwIHNwZWVkIGFjY291bnRzIGZvciBy
b3RhdGluZyB0aGUgY29udGFjdCBwYXRjaCAoeWF3KS4gKiBhZGQgc3RlZXJpbmcgc3BlZWQgYW5k
IHNlbGYgYWxpZ25pbmcgdG9ycXVlLgorCQlzYXogPSAoMS4xZiozLjE0MTZmKSAqIGNhci0+RHlu
R0MudmVsLmF6ICogY2FyLT5jYXJFbHQtPl90aXJlV2lkdGgoaW5kZXgpOyAvLyB5YXdpbmcgc2xp
cCBzcGVlZC4KKwkJc2xpcF9tYWduaXR1ZGUgPSAwLjAwMDAwMWYgKyAvKiBTb2Z0ZW5pbmcgZmFj
dG9yIDAuMDAwMDAxIHByZXZlbnRzIGRpdmlkZSBieSB6ZXJvICovCisJCQkJc3FydCggTUFYKE1B
WCgodjIgKyBzYXoqc2F6KSwgKHZuKnZuICsgd3JsKndybCArIHNheipzYXopKSwgKHZuKnZuICsg
KHZ0IC0gd3JsKSoodnQgLSB3cmwpICsgc2F6KnNheikpICk7CisJCXN4ID0gKHZ0IC0gd3JsKSAv
IHNsaXBfbWFnbml0dWRlOworCQlzeSA9IHZuIC8gc2xpcF9tYWduaXR1ZGU7CisJCXNheiAvPSBz
bGlwX21hZ25pdHVkZTsKIAl9CiAKLQlGdCA9IDAuMGY7Ci0JRm4gPSAwLjBmOwotCXMgPSBzcXJ0
KHN4KnN4K3N5KnN5KTsKKwlzID0gc3FydGYoc3gqc3grc3kqc3krc2F6KnNheik7CiAKIAl7Ci0J
CS8vIGNhbGN1bGF0ZSBfc2tpZCBhbmQgX3JlYWN0aW9uIGZvciBzb3VuZC4KLQkJaWYgKHYgPCAy
LjBmKSB7CisJCS8vIGNhbGN1bGF0ZSBfc2tpZCBhbmQgX3JlYWN0aW9uIGZvciBzb3VuZCAoc3Vz
cGljaW91c2x5OyBhZmZlY3RzIHRyYWN0aW9uIGFsc28pLgorCQlpZiAoKHYgPCAwLjAxZikgfHwg
KHpmb3JjZSA8IDAuMDAyZikpIHsKIAkJCWNhci0+Y2FyRWx0LT5fc2tpZFtpbmRleF0gPSAwLjBm
OwogCQl9IGVsc2UgewotCQkJY2FyLT5jYXJFbHQtPl9za2lkW2luZGV4XSA9ICBNSU4oMS4wZiwg
KHMqemZvcmNlKjAuMDAwMmYpKTsKKwkJCWNhci0+Y2FyRWx0LT5fc2tpZFtpbmRleF0gPSBzOyAv
LyBsaW5lYXIgKHRhbmggcmVtb3ZlZCBpbiBncnNraWRtYXJrcy5jcHApCiAJCX0KIAl9CiAKLQlz
dG1wID0gTUlOKHMsIDEuNWYpOwotCQotCS8vIE1BR0lDIEZPUk1VTEEKLQlCeCA9IHdoZWVsLT5t
ZkIgKiBzdG1wOwotCUYgPSBzaW4od2hlZWwtPm1mQyAqIGF0YW4oQnggKiAoMS4wZiAtIHdoZWVs
LT5tZkUpICsgd2hlZWwtPm1mRSAqIGF0YW4oQngpKSkgKiAoMS4wZiArIHN0bXAgKiBzaW1Ta2lk
RmFjdG9yW2Nhci0+Y2FyRWx0LT5fc2tpbGxMZXZlbF0pOworCS8vIE1BR0lDIEZPUk1VTEEgLy8g
Tm90ZTogRiA9IHNpbiguLi4pIGJlbG93IHJldHVybnMgbm9ybWFsaXplZCBmb3JjZSEKKwlCeCA9
IHdoZWVsLT5tZkIgKiBzOworCUYgPSBzaW4od2hlZWwtPm1mQyAqIGF0YW4oQnggKiAoMS4wZiAt
IHdoZWVsLT5tZkUpICsgd2hlZWwtPm1mRSAqIGF0YW4oQngpKSkgKiAoMS4wZiArIHMgKiBzaW1T
a2lkRmFjdG9yW2Nhci0+Y2FyRWx0LT5fc2tpbGxMZXZlbF0pOwogCiAJLy8gbG9hZCBzZW5zaXRp
dml0eQogCW11ID0gd2hlZWwtPm11ICogKHdoZWVsLT5sZk1pbiArICh3aGVlbC0+bGZNYXggLSB3
aGVlbC0+bGZNaW4pICogZXhwKHdoZWVsLT5sZksgKiB6Zm9yY2UgLyB3aGVlbC0+b3BMb2FkKSk7
CkBAIC0yNjIsMzEgKzI1NywzNSBAQAogCUYgKj0gemZvcmNlICogbXUgKiB3aGVlbC0+dHJrUG9z
LnNlZy0+c3VyZmFjZS0+a0ZyaWN0aW9uICogKDEuMGYgKyAwLjA1ZiAqIHNpbigtd2hlZWwtPnN0
YXRpY1Bvcy5heCAqIDE4LjBmKSk7CS8qIGNvZWZmICovCiAKIAl3aGVlbC0+cm9sbFJlcyA9IHpm
b3JjZSAqIHdoZWVsLT50cmtQb3Muc2VnLT5zdXJmYWNlLT5rUm9sbFJlczsKLSAgICBjYXItPmNh
ckVsdC0+cHJpdi53aGVlbFtpbmRleF0ucm9sbFJlcyA9IHdoZWVsLT5yb2xsUmVzOwogCi0JaWYg
KHMgPiAwLjAwMDAwMWYpIHsKLQkJLy8gd2hlZWwgYXhpcyBiYXNlZAotCQlGdCAtPSBGICogc3gg
LyBzOwotCQlGbiAtPSBGICogc3kgLyBzOwotCX0KKwkvLyB3aGVlbCBheGlzIGJhc2VkCisJcyAr
PSAwLjAwMDAwMWY7IC8vIGFkZCAwLjAwMDAwMSB0byBhdm9pZCBkaXZpZGUgYnkgemVybyBsYXRl
ci4KKwlGdCA9IC0oRiAtIHdoZWVsLT5yb2xsUmVzKSAqIHN4L3M7IC8vIHJvbGxpbmcgcmVzaXN0
YW5jZSBpcyB0aGUgcm9sbGluZyB2ZWN0b3IgY29tcG9uZW50IG9ubHkuCisJRm4gPSAtRiAqIHN5
L3M7CiAKLQlSRUxBWEFUSU9OMihGbiwgd2hlZWwtPnByZUZuLCA1MC4wZik7Ci0JUkVMQVhBVElP
TjIoRnQsIHdoZWVsLT5wcmVGdCwgNTAuMGYpOworCWNhci0+RHluR0MuYWNjLmF6ICs9IC1GICog
c2F6L3MgKiBTaW1EZWx0YVRpbWUgKiBjYXItPklpbnYuejsgLy8gc2VlIHRvcmNzL3NyYy9tb2R1
bGVzL3NpbXUvc2ltdXYyL3NpbXUuY3BwIDo6IFNpbVVwZGF0ZSgpCisKKwl3aGVlbC0+cm9sbFJl
cyAqPSBmYWJzZihzeC9zKTsgLy8gbm90IHVzZWQgKHJlbW92ZWQgZnJvbSAvc3JjL21vZHVsZXMv
c2ltdS9zaW11djIvY2FyLmNwcCkKKwljYXItPmNhckVsdC0+cHJpdi53aGVlbFtpbmRleF0ucm9s
bFJlcyA9IHdoZWVsLT5yb2xsUmVzOyAvLyBub3QgdXNlZCBpbiAvc3JjL21vZHVsZXMvZ3JhcGhp
Yy9zc2dncmFwaC9DYXJTb3VuZERhdGEuY3BwCisKKwl3YXogPSB3aGVlbC0+c3RlZXIgKyB3aGVl
bC0+c3RhdGljUG9zLmF6OyAvKiBkb24ndCBpbmNsdWRlIHlhdyBpbmR1Y2VkIHdoZWVsIGRpcmVj
dGlvbiBoZXJlICovCisJQ29zQSA9IGNvcyh3YXopOworCVNpbkEgPSBzaW4od2F6KTsKIAogCXdo
ZWVsLT5yZWxQb3MuYXogPSB3YXo7CiAKLQl3aGVlbC0+Zm9yY2VzLnggPSBGdCAqIENvc0EgLSBG
biAqIFNpbkE7CisJd2hlZWwtPmZvcmNlcy54ID0gRnQgKiBDb3NBIC0gRm4gKiBTaW5BOyAvLyBS
b2xsaW5nIHJlc2lzdGFuY2UgaW4gRnQKIAl3aGVlbC0+Zm9yY2VzLnkgPSBGdCAqIFNpbkEgKyBG
biAqIENvc0E7Ci0Jd2hlZWwtPnNwaW5UcSA9IEZ0ICogd2hlZWwtPnJhZGl1czsKLQl3aGVlbC0+
c2EgPSBzYTsKKwl3aGVlbC0+c3BpblRxID0gLUYgKiBzeC9zICogd2hlZWwtPnJhZGl1czsgLy8g
c3BpblRxIGlzIGF4bGUgdG9ycXVlLCB0aHVzIG5vIHJvbGxpbmcgcmVzaXN0YW5jZQorCXdoZWVs
LT5zYSA9IGF0YW4yKHdoZWVsLT5ib2R5VmVsLnksIHdoZWVsLT5ib2R5VmVsLngpIC0gd2F6Owog
CXdoZWVsLT5zeCA9IHN4OwogCiAJd2hlZWwtPmZlZWRCYWNrLnNwaW5WZWwgPSB3aGVlbC0+c3Bp
blZlbDsKIAl3aGVlbC0+ZmVlZEJhY2suVHEgPSB3aGVlbC0+c3BpblRxOwogCXdoZWVsLT5mZWVk
QmFjay5icmtUcSA9IHdoZWVsLT5icmFrZS5UcTsKIAotCWNhci0+Y2FyRWx0LT5fd2hlZWxTbGlw
U2lkZShpbmRleCkgPSBzeSp2OwotCWNhci0+Y2FyRWx0LT5fd2hlZWxTbGlwQWNjZWwoaW5kZXgp
ID0gc3gqdjsKKwljYXItPmNhckVsdC0+X3doZWVsU2xpcFNpZGUoaW5kZXgpID0gdm4qKDEuMGYt
c3kpOyAvLyB3aGVlbCBub3JtYWwgYWRoZXNpb24gdmVsb2NpdHkKKwljYXItPmNhckVsdC0+X3do
ZWVsU2xpcEFjY2VsKGluZGV4KSA9IHZ0KigxLjBmLXN4KTsgLy8gd2hlZWwgdGFuZ2VudCBhZGhl
c2lvbiB2ZWxvY2l0eQogCWNhci0+Y2FyRWx0LT5fcmVhY3Rpb25baW5kZXhdID0gemZvcmNlOwog
fQogCkBAIC0zMDEsOCArMzAwLDYgQEAKIAkJd2hlZWwgPSAmKGNhci0+d2hlZWxbaV0pOwogCQl3
aGVlbC0+c3BpblZlbCA9IHdoZWVsLT5pbi5zcGluVmVsOwogCi0JCVJFTEFYQVRJT04yKHdoZWVs
LT5zcGluVmVsLCB3aGVlbC0+cHJlc3BpblZlbCwgNTAuMGYpOwotCiAJCXdoZWVsLT5yZWxQb3Mu
YXkgKz0gd2hlZWwtPnNwaW5WZWwgKiBTaW1EZWx0YVRpbWU7CiAJCU5PUk1fUElfUEkod2hlZWwt
PnJlbFBvcy5heSk7CiAJCWNhci0+Y2FyRWx0LT5fd2hlZWxTcGluVmVsKGkpID0gd2hlZWwtPnNw
aW5WZWw7Cg==
------=_Part_71222784_1526971510.1489294115335
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

------------------------------------------------------------------------------
Announcing the Oxford Dictionaries API! The API offers world-renowned
dictionary content that is easy and intuitive to access. Sign up for an
account today to start using our lexical data to power your apps and
projects. Get started today and enter our developer competition.
http://sdm.link/oxford
------=_Part_71222784_1526971510.1489294115335
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Torcs-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/torcs-users

------=_Part_71222784_1526971510.1489294115335--