[Bf-committers] blender UI "eyecandy" patch (version 2)

Daniel Fairhead bf-committers@blender.org
Sun, 6 Jul 2003 23:16:49 +0300


This is a multi-part message in MIME format.

--Multipart_Sun__6_Jul_2003_23:16:49_+0300_082fbb28
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

Hi all,

Here is the new version of my patch, this time with
(a) a new name (b) cleaner code (c) no massively
modified B.blend.c (d) no known bugs.

It should work by simply entering your 
blender/source directory, and 

patch -p1 < eyecandy-jul-6.patch

Please test, and send results/feedback. There
are improvements and fixes I still can do, and
can delve into deeper areas too (file select window, etc)
which have not been properly updated in blender for
ages, but i need feedback first, and to be sure that this all
works properly too.

Peace,

Dan
--Multipart_Sun__6_Jul_2003_23:16:49_+0300_082fbb28
Content-Type: application/octet-stream;
 name="eyecandy-jul-6.patch"
Content-Disposition: attachment;
 filename="eyecandy-jul-6.patch"
Content-Transfer-Encoding: base64

SW5kZXg6IHNvdXJjZS9ibGVuZGVyL2luY2x1ZGUvQklGX3Jlc291cmNlcy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IC9jdnNyb290L2JmLWJsZW5kZXIvYmxlbmRlci9zb3VyY2UvYmxlbmRlci9pbmNs
dWRlL0JJRl9yZXNvdXJjZXMuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS42CmRpZmYgLXIxLjYg
QklGX3Jlc291cmNlcy5oCjI3NWMyNzUKPCAJQlVUR1JFWSwKLS0tCj4gCUJVVEdSRVkgPSAwLAoz
MDdjMzA3LDMxOAo8ICNkZWZpbmUgQklGQ09MT1JJRF9MQVNUCQkoQlVUSU1QRVJJQUwpCi0tLQo+
IAo+IAlCVVRURVhUQ09MT1IsCj4gCUJVVFRFWFRQUkVTU0VELAo+IAlCVVRTQkFDS0dST1VORCwK
PiAJCj4gCVZJRVdQT1JUQkFDS0NPTE9SLAo+IAlWSUVXUE9SVEdSSURDT0xPUiwKPiAJVklFV1BP
UlRBQ1RJVkVDT0xPUiwKPiAJVklFV1BPUlRTRUxFQ1RFRENPTE9SLAo+IAlWSUVXUE9SVFVOU0VM
Q09MT1IsCj4gCQo+ICNkZWZpbmUgQklGQ09MT1JJRF9MQVNUCQkoVklFV1BPUlRVTlNFTENPTE9S
KQozMTJhMzI0Cj4gdm9pZAlCSUZfbG9hZF91aV9jb2xvcnMJCSh2b2lkKTsKMzE5YTMzMiwzMzMK
PiAKPiB2b2lkCUJJRl9kZWZfY29sb3IJCQkoQklGQ29sb3JJRCBjb2xvcmlkLCB1bnNpZ25lZCBj
aGFyIHIsIHVuc2lnbmVkIGNoYXIgZywgdW5zaWduZWQgY2hhciBiKTsKSW5kZXg6IHNvdXJjZS9i
bGVuZGVyL2luY2x1ZGUvYmxlbmRlZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnNyb290L2Jm
LWJsZW5kZXIvYmxlbmRlci9zb3VyY2UvYmxlbmRlci9pbmNsdWRlL2JsZW5kZWYuaCx2CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS4xNQpkaWZmIC1yMS4xNSBibGVuZGVmLmgKMjg2YTI4NywyODkKPiAj
ZGVmaW5lIEJfVUlUSEVNRUNIQU5HRUQJMzE3Cj4gI2RlZmluZSBCX1VJVEhFTUVDT0xPUk1PRAkz
MTgKPiAKSW5kZXg6IHNvdXJjZS9ibGVuZGVyL21ha2VzZG5hL0ROQV91c2VyZGVmX3R5cGVzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQpSQ1MgZmlsZTogL2N2c3Jvb3QvYmYtYmxlbmRlci9ibGVuZGVyL3NvdXJjZS9i
bGVuZGVyL21ha2VzZG5hL0ROQV91c2VyZGVmX3R5cGVzLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuMTIKZGlmZiAtcjEuMTIgRE5BX3VzZXJkZWZfdHlwZXMuaAo1OWE2MCw2Mwo+IAlpbnQgd2hp
Y2hjb2xvcnByZWY7Cj4gCWludCBidXR0b25vcHRzOwo+IAlpbnQgY29sb3JvcHRzOwo+IAljaGFy
IHVpY29sb3JzWzE2MF07CjEyNmExMzEsMTQ1Cj4gLyogYnV0dG9ub3B0cyAqLyAKPiAjZGVmaW5l
IFVTRVJERUZfQlVUVE9OX1JPVU5ERUQJCQkwCj4gI2RlZmluZSBVU0VSREVGX0JVVFRPTl9EQVJL
X0JPUkRFUgkJMQo+IAo+IC8qIGNvbG9yb3B0cyAqLwo+IAo+ICNkZWZpbmUgVVNFUkRFRl9DT0xP
Ul9OT1JNQUwJCQkwCj4gI2RlZmluZSBVU0VSREVGX0NPTE9SX0dSQURJRU5UCQkJMQo+ICNkZWZp
bmUgVVNFUkRFRl9DT0xPUl9HUkFESUVOVF9DT01QTEVYCTIKPiAjZGVmaW5lIFVTRVJERUZfQ09M
T1JfR1JBRElFTlRfQVFVQV9CRwkzCj4gI2RlZmluZSBVU0VSREVGX0NPTE9SX0dSQURJRU5UX0hP
UklaCTQKPiAKPiAvKiBjb2xvci1zZXR0aW5ncyAqLwo+IAo+IAoxMzFhMTUxCj4gCkluZGV4OiBz
b3VyY2UvYmxlbmRlci9zcmMvYnV0dG9ucy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnNyb290
L2JmLWJsZW5kZXIvYmxlbmRlci9zb3VyY2UvYmxlbmRlci9zcmMvYnV0dG9ucy5jLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjI1CmRpZmYgLXIxLjI1IGJ1dHRvbnMuYwo2ODEyYzY4MTIKPCAJCXJl
dHVybiBCVVRXSElURTsKLS0tCj4gCQlyZXR1cm4gQlVUR1JFWTsKNzE3M2M3MTczCjwgCWNwYWNr
KDB4OTA5MDkwKTsKLS0tCj4gCUJJRl9zZXRfY29sb3IoQlVUU0JBQ0tHUk9VTkQsIENPTE9SU0hB
REVfTUVESVVNKTsKNzE3OWM3MTc5CjwgCWNwYWNrKDB4NjQ2NDY0KTsKLS0tCj4gCUJJRl9zZXRf
Y29sb3IoQlVUU0JBQ0tHUk9VTkQsIENPTE9SU0hBREVfREFSSyk7CjcxODdjNzE4Nyw3MTkwCjwg
CWNwYWNrKDB4OTA5MDkwKTsKLS0tCj4gCS8qY3BhY2soMHg5MDkwOTApOyovCj4gCQo+IAlCSUZf
c2V0X2NvbG9yKEJVVFNCQUNLR1JPVU5ELCBDT0xPUlNIQURFX01FRElVTSk7Cj4gCkluZGV4OiBz
b3VyY2UvYmxlbmRlci9zcmMvZHJhd3ZpZXcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zzcm9v
dC9iZi1ibGVuZGVyL2JsZW5kZXIvc291cmNlL2JsZW5kZXIvc3JjL2RyYXd2aWV3LmMsdgpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuMTIKZGlmZiAtcjEuMTIgZHJhd3ZpZXcuYwoxMjNhMTI0LDEyNQo+
IAo+IAo0NDcsNDQ4YzQ0OSw0NTAKPCAJY3BhY2soMHg2MDYwNjApOwo8IAkKLS0tCj4gCUJJRl9z
ZXRfY29sb3IoVklFV1BPUlRHUklEQ09MT1IsIENPTE9SU0hBREVfTUVESVVNKTsKPiAKODE1Yzgx
Nwo8IAkKLS0tCj4gCjgyM2E4MjYsODI5Cj4gCWdsQ2xlYXJDb2xvcigoZmxvYXQpIFUudWljb2xv
cnNbVklFV1BPUlRCQUNLQ09MT1IgKjNdIC8gMjU2LjAsCj4gCQkgKGZsb2F0KSBVLnVpY29sb3Jz
W1ZJRVdQT1JUQkFDS0NPTE9SICozICsgMV0gLyAgMjU2LjAsCj4gCQkgKGZsb2F0KSBVLnVpY29s
b3JzW1ZJRVdQT1JUQkFDS0NPTE9SICozICsgMl0gLyAyNTYuMCwgMC4wKTsKPiAKODMwLDgzMmQ4
MzUKPCAJCWVsc2Ugewo8IAkJCWdsQ2xlYXJDb2xvcigwLjQ1LCAwLjQ1LCAwLjQ1LCAwLjApOyAK
PCAJCX0KODM4ZDg0MAo8IAkJZ2xDbGVhckNvbG9yKDAuNDUsIDAuNDUsIDAuNDUsIDAuMCk7IAox
MDUxYzEwNTMsMTA1NQo8IAkJZ2xDbGVhckNvbG9yKDAuNDUsIDAuNDUsIDAuNDUsIDAuMCk7Ci0t
LQo+IAkJLyogQ2hhbmdlZCBmcm9tIG9sZCAwLjQ1LCBhcyB0aGlzIGlzICJyZW5kZXIiLCBzbyBz
aG91bGQKPiAJCSAgIG1pbWljIHRoZSBibGVuZGVyIHJlbmRlcmVyLiAqLwo+IAkJZ2xDbGVhckNv
bG9yKDAuMCwgMC4wLCAwLjAsIDAuMCk7CkluZGV4OiBzb3VyY2UvYmxlbmRlci9zcmMvZWRpdHNj
cmVlbi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnNyb290L2JmLWJsZW5kZXIvYmxlbmRlci9z
b3VyY2UvYmxlbmRlci9zcmMvZWRpdHNjcmVlbi5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE2
CmRpZmYgLXIxLjE2IGVkaXRzY3JlZW4uYwo5MmE5Mwo+ICNpbmNsdWRlICJCSUZfcmVzb3VyY2Vz
LmgiCjI5NCwyOTVjMjk1LDI5OAo8IAlpZihzZWxjb2wpIGdsQ2xlYXJDb2xvciguNzUsIC43NSwg
Ljc1LCAwLjApOwo8IAllbHNlIGdsQ2xlYXJDb2xvciguNjUsIC42NSwgLjY1LCAwLjApOwotLS0K
PiAJaWYgKFUuY29sb3JvcHRzPT0wKQo+IAl7Cj4gCQlpZihzZWxjb2wpIGdsQ2xlYXJDb2xvcigu
NzUsIC43NSwgLjc1LCAwLjApOwo+IAkJZWxzZSBnbENsZWFyQ29sb3IoLjY1LCAuNjUsIC42NSwg
MC4wKTsKMjk3YzMwMAo8IAlnbENsZWFyKEdMX0NPTE9SX0JVRkZFUl9CSVQpOwotLS0KPiAJCWds
Q2xlYXIoR0xfQ09MT1JfQlVGRkVSX0JJVCk7CjI5OSwzMDBjMzAyLDMwMwo8IAlnbENvbG9yM3Vi
KDAsIDAsIDApOwo8IAlzZHJhd2JveCgwLCAgMCwgIHdpZHRoLCAgSEVBREVSWSk7Ci0tLQo+IAkJ
Z2xDb2xvcjN1YigwLCAwLCAwKTsKPiAJCXNkcmF3Ym94KDAsICAwLCAgd2lkdGgsICBIRUFERVJZ
KTsKMzAyLDMwM2MzMDUsMzA2CjwgCWdsQ29sb3IzdWIoMjIwLCAyMjAsIDIyMCk7CjwgCXNkcmF3
bGluZSgwLCAgSEVBREVSWS0xLCAgd2lkdGgsICBIRUFERVJZLTEpOwotLS0KPiAJCWdsQ29sb3Iz
dWIoMjIwLCAyMjAsIDIyMCk7Cj4gCQlzZHJhd2xpbmUoMCwgIEhFQURFUlktMSwgIHdpZHRoLCAg
SEVBREVSWS0xKTsKMzA1LDMwNmMzMDgsMzA5CjwgCWdsQ29sb3IzdWIoMTc2LCAxNzYsIDE3Nik7
CjwgCXNkcmF3bGluZSgwLCAgSEVBREVSWS0yLCAgd2lkdGgsICBIRUFERVJZLTIpOwotLS0KPiAJ
CWdsQ29sb3IzdWIoMTc2LCAxNzYsIDE3Nik7Cj4gCQlzZHJhd2xpbmUoMCwgIEhFQURFUlktMiwg
IHdpZHRoLCAgSEVBREVSWS0yKTsKMzA4LDMwOWMzMTEsMzEyCjwgCWdsQ29sb3IzdWIoMTI4LCAx
MjgsIDEyOCk7CjwgCXNkcmF3bGluZSgwLCAgMiwgIHdpZHRoLCAgMik7Ci0tLQo+IAkJZ2xDb2xv
cjN1YigxMjgsIDEyOCwgMTI4KTsKPiAJCXNkcmF3bGluZSgwLCAgMiwgIHdpZHRoLCAgMik7CjMx
MSwzMTJjMzE0LDMxNQo8IAlnbENvbG9yM3ViKDY0LCA2NCwgNjQpOwo8IAlzZHJhd2xpbmUoMCwg
IDEsICB3aWR0aCwgIDEpOwotLS0KPiAJCWdsQ29sb3IzdWIoNjQsIDY0LCA2NCk7Cj4gCQlzZHJh
d2xpbmUoMCwgIDEsICB3aWR0aCwgIDEpOwozMTQsMzE1YzMxNywzNTIKPCAJZ2xDb2xvcjN1Yigw
LCAwLCAwKTsKPCAJc2RyYXdsaW5lKDAsICAwLCAgd2lkdGgsICAwKTsKLS0tCj4gCQlnbENvbG9y
M3ViKDAsIDAsIDApOwo+IAkJc2RyYXdsaW5lKDAsICAwLCAgd2lkdGgsICAwKTsKPiAJfQo+IAll
bHNlCj4gCXsKPiAJCj4gCQlnbFNoYWRlTW9kZWwoR0xfU01PT1RIKTsKPiAJCWdsQmVnaW4oR0xf
UVVBRFMpOwo+IAkKPiAJCSAvKmdsQ29sb3IzdWIoMTU1LDE1NSwxNTUpOyovCj4gCj4gCQlpZihz
ZWxjb2wpIEJJRl9zZXRfY29sb3IoQlVUU0JBQ0tHUk9VTkQsIENPTE9SU0hBREVfTUVESVVNKTsK
PiAJCWVsc2UgQklGX3NldF9jb2xvcihCVVRTQkFDS0dST1VORCwgQ09MT1JTSEFERV9HUkVZKTsK
PiAKPiAJCQo+IAkJLypnbENvbG9yM3ViKDEwMCwxMDAsMTAwKTsqLwo+IAkKPiAJCWdsVmVydGV4
MmYoMCwwKTsKPiAJCWdsVmVydGV4MmYod2lkdGgsMCk7Cj4gCj4gCQlpZihzZWxjb2wpIEJJRl9z
ZXRfY29sb3IoQlVUU0JBQ0tHUk9VTkQsIENPTE9SU0hBREVfV0hJVEUpOwo+IAkJZWxzZSBCSUZf
c2V0X2NvbG9yKEJVVFNCQUNLR1JPVU5ELCBDT0xPUlNIQURFX0hJTElURSk7Cj4gCj4gCQkvKmlm
KHNlbGNvbCkJZ2xDb2xvcjN1YigxOTEsMTkxLDE5MSk7Cj4gCQllbHNlIGdsQ29sb3IzdWIoMTY2
LDE2NiwxNjYpOyovCj4gCj4gCQlnbFZlcnRleDJmKHdpZHRoLEhFQURFUlkrMSk7Cj4gCQlnbFZl
cnRleDJmKDAsSEVBREVSWSsxKTsKPiAKPiAJCWdsRW5kKCk7Cj4gCQlnbFNoYWRlTW9kZWwoR0xf
RkxBVCk7Cj4gCj4gCQlnbENvbG9yM3ViKDAsIDAsIDApOwo+IAkJc2RyYXdsaW5lKDAsICAwLCAg
d2lkdGgsICAwKTsKPiAKPiAJfQoxNzEzYzE3NTAsMTc1NAo8IAkJZ2xDbGVhckNvbG9yKC40NSwg
LjQ1LCAuNDUsIDAuMCk7Ci0tLQo+IAkJZ2xDbGVhckNvbG9yKChmbG9hdCkgVS51aWNvbG9yc1tW
SUVXUE9SVEJBQ0tDT0xPUiAqM10gLyAyNTYuMCwKPiAJCQkJCSAoZmxvYXQpIFUudWljb2xvcnNb
VklFV1BPUlRCQUNLQ09MT1IgKjMgKyAxXSAvICAyNTYuMCwKPiAJCQkJCSAoZmxvYXQpIFUudWlj
b2xvcnNbVklFV1BPUlRCQUNLQ09MT1IgKjMgKyAyXSAvIDI1Ni4wLCAwLjApOwo+IAkJCj4gCQkv
KmdsQ2xlYXJDb2xvciguNDUsIC40NSwgLjQ1LCAwLjApOyovCkluZGV4OiBzb3VyY2UvYmxlbmRl
ci9zcmMvaGVhZGVyYnV0dG9ucy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnNyb290L2JmLWJs
ZW5kZXIvYmxlbmRlci9zb3VyY2UvYmxlbmRlci9zcmMvaGVhZGVyYnV0dG9ucy5jLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjM2CmRpZmYgLXIxLjM2IGhlYWRlcmJ1dHRvbnMuYwoxNTc1YTE1NzYs
MTU4NQo+IAkJCj4gCWNhc2UgQl9VSVRIRU1FQ0hBTkdFRDogCS8qIGlzIGJ1dHRvbiBmcm9tIHNw
YWNlLmMgICppbmZvKiAqLwo+IAkJYWxscXVldWUoUkVEUkFXQUxMLCAwKTsKPiAJCWJyZWFrOwo+
IAkJCj4gCWNhc2UgQl9VSVRIRU1FQ09MT1JNT0Q6CS8qIGlzIGJ1dHRvbiBmcm9tIHNwYWNlLmMg
ICppbmZvKiAqLwo+IAkJQklGX2RlZl9jb2xvcihVLndoaWNoY29sb3JwcmVmLAlVLnVpY29sb3Jz
W1Uud2hpY2hjb2xvcnByZWYgKjNdLCBVLnVpY29sb3JzW1Uud2hpY2hjb2xvcnByZWYqMyArMV0s
IFUudWljb2xvcnNbVS53aGljaGNvbG9ycHJlZiozICsyXSk7Cj4gCQlhbGxxdWV1ZShSRURSQVdB
TEwsIDApOwo+IAkJYnJlYWs7Cj4gCkluZGV4OiBzb3VyY2UvYmxlbmRlci9zcmMvaW50ZXJmYWNl
LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2c3Jvb3QvYmYtYmxlbmRlci9ibGVuZGVyL3NvdXJj
ZS9ibGVuZGVyL3NyYy9pbnRlcmZhY2UuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xOApkaWZm
IC1yMS4xOCBpbnRlcmZhY2UuYwo4NGE4NQo+IAoyMTVhMjE3Cj4gCjIxN2EyMjAsMjIxCj4gc3Rh
dGljIHZvaWQgdWlfc2V0X2NvbG9yKGludCBjb2xvcm51bSk7Cj4gCjIyMWEyMjYsMjMxCj4gc3Rh
dGljIHZvaWQgdWlfZW1ib3NzX3BsYWluKEJJRkNvbG9ySUQgYmMsIGZsb2F0IGFzcCwgZmxvYXQg
eDEsIGZsb2F0IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIsIGludCBmbGFnKTsKPiBzdGF0aWMgdm9p
ZCB1aV9lbWJvc3NfZ3JhZGllbnQoQklGQ29sb3JJRCBiYywgZmxvYXQgYXNwLCBmbG9hdCB4MSwg
ZmxvYXQgeTEsIGZsb2F0IHgyLCBmbG9hdCB5MiwgaW50IGZsYWcpOwo+IHN0YXRpYyB2b2lkIHVp
X2VtYm9zc19jb21wbGV4KEJJRkNvbG9ySUQgYmMsIGZsb2F0IGFzcCwgZmxvYXQgeDEsIGZsb2F0
IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIsIGludCBmbGFnKTsKPiAKPiBzdGF0aWMgdm9pZCAqdWlf
ZW1ib3NzX1ggPSB1aV9lbWJvc3NfcGxhaW47Cj4gCjQ2NGM0NzQsNDc4Cjwgc3RhdGljIHZvaWQg
dWlfZW1ib3NzX1goQklGQ29sb3JJRCBiYywgZmxvYXQgYXNwLCBmbG9hdCB4MSwgZmxvYXQgeTEs
IGZsb2F0IHgyLCBmbG9hdCB5MiwgaW50IGZsYWcpCi0tLQo+IC8qIHZhcmlvdXMgdHlwZXMgb2Yg
YnV0dG9ucyAqLwo+IAo+IC8qIG5vcm1hbCBwbGFpbiBiYWNrZ3JvdW5kICovCj4gCj4gc3RhdGlj
IHZvaWQgdWlfZW1ib3NzX3BsYWluKEJJRkNvbG9ySUQgYmMsIGZsb2F0IGFzcCwgZmxvYXQgeDEs
IGZsb2F0IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIsIGludCBmbGFnKQo1MDFhNTE2Cj4gCjUwM2E1
MTksNjg3Cj4gLyogYmFzaWMgdmVydGljYWwgZ3JhZGllbnQgKi8KPiAKPiBzdGF0aWMgdm9pZCB1
aV9lbWJvc3NfZ3JhZGllbnQoQklGQ29sb3JJRCBiYywgZmxvYXQgYXNwLCBmbG9hdCB4MSwgZmxv
YXQgeTEsIGZsb2F0IHgyLCBmbG9hdCB5MiwgaW50IGZsYWcpCj4gewo+IAlmbG9hdCBhc3AxOwo+
IAkKPiAJYXNwMT0gYXNwOwo+IAo+IAkvKngxKz0gYXNwMTsqLwo+IAl4Mi09IGFzcDE7CQo+IAkv
KnkxKz0gYXNwMTsqLwo+IAl5Mi09IGFzcDE7Cj4gCj4gCWdsU2hhZGVNb2RlbChHTF9TTU9PVEgp
Owo+IAlnbEJlZ2luKEdMX1FVQURTKTsKPiAJCj4gCWlmKGZsYWcgJiBVSV9TRUxFQ1QpIHsKPiAJ
CWlmKGZsYWcgJiBVSV9BQ1RJVkUpIEJJRl9zZXRfY29sb3IoYmMsIENPTE9SU0hBREVfSElMSVRF
KTsKPiAJCWVsc2UgQklGX3NldF9jb2xvcihiYywgQ09MT1JTSEFERV9EQVJLKTsKPiAJfQo+IAll
bHNlIHsKPiAJCWlmKGZsYWcgJiBVSV9BQ1RJVkUpIEJJRl9zZXRfY29sb3IoYmMsIENPTE9SU0hB
REVfTUVESVVNKTsKPiAJCWVsc2UgQklGX3NldF9jb2xvcihiYywgQ09MT1JTSEFERV9NRURJVU0p
Owo+IAl9Cj4gCj4gCWdsVmVydGV4MmYoeDEseTEpOwo+IAlnbFZlcnRleDJmKHgyLHkxKTsKPiAJ
Cj4gCWlmKGZsYWcgJiBVSV9TRUxFQ1QpIHsKPiAJCWlmKGZsYWcgJiBVSV9BQ1RJVkUpIEJJRl9z
ZXRfY29sb3IoYmMsIENPTE9SU0hBREVfSElMSVRFKTsKPiAJCWVsc2UgQklGX3NldF9jb2xvcihi
YywgQ09MT1JTSEFERV9EQVJLKTsKPiAJfQo+IAllbHNlIHsKPiAJCWlmKGZsYWcgJiBVSV9BQ1RJ
VkUpIEJJRl9zZXRfY29sb3IoYmMsIENPTE9SU0hBREVfTUVESVVNKTsKPiAJCWVsc2UgQklGX3Nl
dF9jb2xvcihiYywgQ09MT1JTSEFERV9XSElURSk7Cj4gCX0KPiAKPiAJZ2xWZXJ0ZXgyZih4Mix5
Mik7Cj4gCWdsVmVydGV4MmYoeDEseTIpOwo+IAlnbEVuZCgpOwo+IAlnbFNoYWRlTW9kZWwoR0xf
RkxBVCk7Cj4gCQo+IAlCSUZfc2V0X2NvbG9yKGJjLCBDT0xPUlNIQURFX0dSRVkpOwo+IAkKPiAJ
ZmRyYXdsaW5lKHgxLCB5MSwgeDIsIHkxKTsKPiAKPiAJLyogcmlnaHQgKi8KPiAJZmRyYXdsaW5l
KHgyLCB5MSwgeDIsIHkyKTsKPiAJCj4gCS8qIHRvcCAqLwo+IAlCSUZfc2V0X2NvbG9yKGJjLCBD
T0xPUlNIQURFX0RBUkspOwo+IAo+IAlmZHJhd2xpbmUoeDEsIHkyLCB4MiwgeTIpOwo+IAkKPiAJ
LyogbGVmdCAqLwo+IAlmZHJhd2xpbmUoeDEsIHkxLCB4MSwgeTIpOwo+IAkKPiAJCj4gfQo+IAo+
IC8qIGNvbXBsZXggYnV0dG9ucyB3aXRoICJyZWZsZWN0aW9ucyIuICovCj4gCj4gc3RhdGljIHZv
aWQgdWlfZW1ib3NzX2NvbXBsZXgoQklGQ29sb3JJRCBiYywgZmxvYXQgYXNwLCBmbG9hdCB4MSwg
ZmxvYXQgeTEsIGZsb2F0IHgyLCBmbG9hdCB5MiwgaW50IGZsYWcpCj4gewo+IAkJZmxvYXQgYXNw
MTsKPiAJCj4gCWFzcDE9IGFzcDsKPiAKPiAJeDItPSBhc3AxOwkKPiAJeTItPSBhc3AxOwo+IAo+
IAlpZihmbGFnICYgVUlfU0VMRUNUKSB7Cj4gCQlpZihmbGFnICYgVUlfQUNUSVZFKSBCSUZfc2V0
X2NvbG9yKGJjLCBDT0xPUlNIQURFX0hJTElURSk7Cj4gCQllbHNlIEJJRl9zZXRfY29sb3IoYmMs
IENPTE9SU0hBREVfREFSSyk7Cj4gCX0KPiAJZWxzZSB7Cj4gCQlpZihmbGFnICYgVUlfQUNUSVZF
KSBCSUZfc2V0X2NvbG9yKGJjLCBDT0xPUlNIQURFX01FRElVTSk7Cj4gCQllbHNlIEJJRl9zZXRf
Y29sb3IoYmMsIENPTE9SU0hBREVfSElMSVRFKTsgLypub3JtYWwqLwo+IAl9Cj4gCj4gCWdsUmVj
dGYoeDEsIHkxLCB4MiwgeTIpOwo+IAkKPiAJLypnbFJlY3RmKHgxLCB5MSwgeDIsIHkyKTsqLwo+
IAlnbFNoYWRlTW9kZWwoR0xfU01PT1RIKTsKPiAJZ2xCZWdpbihHTF9RVUFEUyk7Cj4gCQo+IAlp
ZihmbGFnICYgVUlfU0VMRUNUKSB7Cj4gCQlpZihmbGFnICYgVUlfQUNUSVZFKSBCSUZfc2V0X2Nv
bG9yKGJjLCBDT0xPUlNIQURFX0hJTElURSk7Cj4gCQllbHNlIEJJRl9zZXRfY29sb3IoYmMsIENP
TE9SU0hBREVfREFSSyk7Cj4gCX0KPiAJZWxzZSB7Cj4gCQlpZihmbGFnICYgVUlfQUNUSVZFKSBC
SUZfc2V0X2NvbG9yKGJjLCBDT0xPUlNIQURFX01FRElVTSk7Cj4gCQllbHNlIEJJRl9zZXRfY29s
b3IoYmMsIENPTE9SU0hBREVfV0hJVEUpOyAvKm5vcm1hbCovCj4gCX0KPiAKPiAJZ2xWZXJ0ZXgy
Zih4MSx5MSk7Cj4gCWdsVmVydGV4MmYoeDIseTEpOwo+IAkKPiAJaWYoZmxhZyAmIFVJX1NFTEVD
VCkgewo+IAkJaWYoZmxhZyAmIFVJX0FDVElWRSkgQklGX3NldF9jb2xvcihiYywgQ09MT1JTSEFE
RV9ISUxJVEUpOwo+IAkJZWxzZSBCSUZfc2V0X2NvbG9yKGJjLCBDT0xPUlNIQURFX0RBUkspOwo+
IAl9Cj4gCWVsc2Ugewo+IAkJaWYoZmxhZyAmIFVJX0FDVElWRSkgQklGX3NldF9jb2xvcihiYywg
Q09MT1JTSEFERV9NRURJVU0pOwo+IAkJZWxzZSBCSUZfc2V0X2NvbG9yKGJjLCBDT0xPUlNIQURF
X01FRElVTSk7IC8qbm9ybWFsKi8KPiAJfQo+IAo+IAlnbFZlcnRleDJmKHgyLHkyICsgKCh5MSAt
IHkyKS8yKSApOwo+IAlnbFZlcnRleDJmKHgxLHkyICsgKCh5MSAtIHkyKS8yKSAgKTsKPiAJZ2xF
bmQoKTsKPiAKPiAJLyogdG9wIGhpLWxpZ2h0ICovCj4gCQo+IAlnbEJlZ2luKEdMX1FVQURTKTsK
PiAJCj4gCWlmKGZsYWcgJiBVSV9TRUxFQ1QpIHsKPiAJCWlmKGZsYWcgJiBVSV9BQ1RJVkUpIEJJ
Rl9zZXRfY29sb3IoYmMsIENPTE9SU0hBREVfSElMSVRFKTsKPiAJCWVsc2UgQklGX3NldF9jb2xv
cihiYywgQ09MT1JTSEFERV9EQVJLKTsKPiAJfQo+IAllbHNlIHsKPiAJCWlmKGZsYWcgJiBVSV9B
Q1RJVkUpIEJJRl9zZXRfY29sb3IoYmMsIENPTE9SU0hBREVfTUVESVVNKTsKPiAJCWVsc2UgQklG
X3NldF9jb2xvcihiYywgQ09MT1JTSEFERV9XSElURSk7IC8qbm9ybWFsKi8KPiAJfQo+IAo+IAln
bFZlcnRleDJmKHgxLHkyKTsKPiAJZ2xWZXJ0ZXgyZih4Mix5Mik7Cj4gCQo+IAlpZihmbGFnICYg
VUlfU0VMRUNUKSB7Cj4gCQlpZihmbGFnICYgVUlfQUNUSVZFKSBCSUZfc2V0X2NvbG9yKGJjLCBD
T0xPUlNIQURFX0hJTElURSk7Cj4gCQllbHNlIEJJRl9zZXRfY29sb3IoYmMsIENPTE9SU0hBREVf
REFSSyk7Cj4gCX0KPiAJZWxzZSB7Cj4gCQlpZihmbGFnICYgVUlfQUNUSVZFKSBCSUZfc2V0X2Nv
bG9yKGJjLCBDT0xPUlNIQURFX01FRElVTSk7Cj4gCQllbHNlIEJJRl9zZXRfY29sb3IoYmMsIENP
TE9SU0hBREVfTUVESVVNKTsgLypub3JtYWwqLwo+IAl9Cj4gCj4gCWdsVmVydGV4MmYoeDIgLSAo
KHgyIC0geDEpLzUpICx5MSAtICgoKHkxIC0geTIpLzUpKiAyICkpIDsKPiAJZ2xWZXJ0ZXgyZih4
MSArICgoeDIgLSB4MSkvNSkgLHkxIC0gKCgoeTEgLSB5MikvNSkqIDIgKSkgOwo+IAlnbEVuZCgp
Owo+IAo+IAlnbFNoYWRlTW9kZWwoR0xfRkxBVCk7Cj4gCj4gCj4gCS8qQklGX3NldF9jb2xvcihi
YywgQ09MT1JTSEFERV9HUkVZKTsqLwo+IAkKPiAJLyogYmVsb3cgKi8KPiAJaWYoZmxhZyAmIFVJ
X1NFTEVDVCkgQklGX3NldF9jb2xvcihiYywgQ09MT1JTSEFERV9NRURJVU0pOwo+IAllbHNlIEJJ
Rl9zZXRfY29sb3IoYmMsIENPTE9SU0hBREVfREFSSyk7Cj4gCWZkcmF3bGluZSh4MSwgeTEsIHgy
LCB5MSk7Cj4gCj4gCS8qIHJpZ2h0ICovCj4gCWZkcmF3bGluZSh4MiwgeTEsIHgyLCB5Mik7Cj4g
CQo+IAkvKiB0b3AgKi8KPiAJaWYoZmxhZyAmIFVJX1NFTEVDVCkgQklGX3NldF9jb2xvcihiYywg
Q09MT1JTSEFERV9EQVJLKTsKPiAJZWxzZSBCSUZfc2V0X2NvbG9yKGJjLCBDT0xPUlNIQURFX1dI
SVRFKTsKPiAJZmRyYXdsaW5lKHgxLCB5MiwgeDIsIHkyKTsKPiAKPiAJLyogbGVmdCAqLwo+IAlm
ZHJhd2xpbmUoeDEsIHkxLCB4MSwgeTIpOwo+IAkKPiAJLyogb3V0bGluZSAqLwo+IAlCSUZfc2V0
X2NvbG9yKGJjLCBDT0xPUlNIQURFX0RBUkspOwo+IAkKPiAJdWlfZHJhd19vdXRsaW5lWCh4MSwg
eTEsIHgyLCB5MiwgYXNwKTsKPiAKPiB9Cj4gCj4gCjczMyw3MzZjOTE3LDk3OAo8IAlCSUZfc2V0
X2NvbG9yKGJ1dC0+Y29sLCBDT0xPUlNIQURFX0RBUkspOwo8IAlnbFJlY3RmKGJ1dC0+eDEsIGJ1
dC0+eTEsIGJ1dC0+eDIsIGJ1dC0+eTIpOwo8IAlnbENvbG9yM3ViKDAsMCwwKTsKPCAJdWlfZHJh
d19vdXRsaW5lWChidXQtPngxKzEsIGJ1dC0+eTErMSwgYnV0LT54Mi0xLCBidXQtPnkyLTEsIGJ1
dC0+YXNwZWN0KTsKLS0tCj4gCS8qIGRyYXcgYmFja2dyb3VuZCBvZiBzbGlkZXItem9uZSAqLwo+
IAo+IAlCSUZfc2V0X2NvbG9yKGJ1dC0+Y29sLCBDT0xPUlNIQURFX01FRElVTSk7Cj4gCj4gCWds
UmVjdGYoYnV0LT54MSsxLCBidXQtPnkxKzEsIGJ1dC0+eDItMSwgYnV0LT55Mi0xKQk7Cj4gCj4g
CUJJRl9zZXRfY29sb3IoYnV0LT5jb2wsIENPTE9SU0hBREVfR1JFWSk7Cj4gCj4gCS8qIGJlbG93
LiAqLwo+IAo+IAlmZHJhd2xpbmUoYnV0LT54MSsxLCBidXQtPnkxKzEsIGJ1dC0+eDItMSwgYnV0
LT55MSsxKTsKPiAKPiAJLyogcmlnaHQgKi8KPiAJCj4gCWZkcmF3bGluZShidXQtPngyLTEsIGJ1
dC0+eTErMSwgYnV0LT54Mi0xLCBidXQtPnkyLTEpOwo+IAo+IAkvKiB0b3AgKi8KPiAKPiAJZmRy
YXdsaW5lKGJ1dC0+eDErMSwgYnV0LT55Mi0xLCBidXQtPngyLTEsICAgYnV0LT55Mi0xKTsKPiAK
PiAJLyogbGVmdCAqLwo+IAkKPiAJZmRyYXdsaW5lKGJ1dC0+eDErMSwgYnV0LT55MSsxLCBidXQt
PngxKzEsIGJ1dC0+eTItMSk7Cj4gCj4gI2lmIDAKPiAKPiAJLyogZHJhdyBlbWJvc3Npbmcgb24g
c2xpZGVyLXpvbmUgKi8KPiAJCj4gCUJJRl9zZXRfY29sb3IoYnV0LT5jb2wsIENPTE9SU0hBREVf
V0hJVEUpOwo+IAo+IAkvKiBiZWxvdy4gKi8KPiAKPiAJZmRyYXdsaW5lKGJ1dC0+eDEtMSwgYnV0
LT55MS0xLCBidXQtPngyLCBidXQtPnkxLTEpOwo+IAo+IAkvKiByaWdodCAqLwo+IAkKPiAJZmRy
YXdsaW5lKGJ1dC0+eDIsIGJ1dC0+eTEtMSwgYnV0LT54MiwgYnV0LT55Mik7Cj4gCj4gCS8qIHRv
cCAqLwo+IAo+IAlmZHJhd2xpbmUoYnV0LT54MSwgICBidXQtPnkyLCBidXQtPngyLCAgIGJ1dC0+
eTIpOwo+IAo+IAkvKiBsZWZ0ICovCj4gCQo+IAlmZHJhd2xpbmUoYnV0LT54MS0xLCBidXQtPnkx
LTEsIGJ1dC0+eDEtMSwgYnV0LT55Mik7Cj4gCj4gCUJJRl9zZXRfY29sb3IoYnV0LT5jb2wsIENP
TE9SU0hBREVfR1JFWSk7Cj4gCQo+IAlmZHJhd2xpbmUoYnV0LT54MSwgYnV0LT55MSwgYnV0LT54
MisxLCBidXQtPnkxKTsKPiAJCj4gCWZkcmF3bGluZShidXQtPngyKzEsIGJ1dC0+eTEsIGJ1dC0+
eDIrMSwgYnV0LT55Mi0xKTsKPiAKPiAJZmRyYXdsaW5lKGJ1dC0+eDEsIGJ1dC0+eTEsIGJ1dC0+
eDEsIGJ1dC0+eTItMSk7Cj4gCQo+IAlmZHJhd2xpbmUoYnV0LT54MSwgYnV0LT55Mi0xLCBidXQt
PngyKzEsIGJ1dC0+eTItMSk7Cj4gCj4gI2VuZGlmCj4gCQo+IAkvKiBkcmF3IHNsaWRlciAqLwo+
IAo+IAkvKmdsQ29sb3IzdWIoMCwwLDApOwo+IAl1aV9kcmF3X291dGxpbmVYKGJ1dC0+eDErMiwg
YnV0LT55MSsyLCBidXQtPngyLTIsIGJ1dC0+eTItMiwgYnV0LT5hc3BlY3QpOyovCjczOSw3NDVj
OTgxLDk4Mwo8IAlpZihidXQtPmZsYWcgJiBVSV9TRUxFQ1QpIEJJRl9zZXRfY29sb3IoYnV0LT5j
b2wsIENPTE9SU0hBREVfTElHSFQpOwo8IAllbHNlIEJJRl9zZXRfY29sb3IoYnV0LT5jb2wsIENP
TE9SU0hBREVfR1JFWSk7CjwgCWdsUmVjdHMoYnV0LT54MStmYWMsIGJ1dC0+eTErMSwgYnV0LT54
MStmYWMraCwgYnV0LT55Mi0xKTsKPCAKPCAJQklGX3NldF9jb2xvcihidXQtPmNvbCwgQ09MT1JT
SEFERV9XSElURSk7CQo8IAlmZHJhd2xpbmUoYnV0LT54MStmYWMsIGJ1dC0+eTItMSwgYnV0LT54
MStmYWMraCwgYnV0LT55Mi0xKTsKPCAJZmRyYXdsaW5lKGJ1dC0+eDErZmFjLCBidXQtPnkxKzEs
IGJ1dC0+eDErZmFjLCBidXQtPnkyLTEpOwotLS0KPiAJQklGX3NldF9jb2xvcihidXQtPmNvbCwg
Q09MT1JTSEFERV9MSUdIVCk7Cj4gCQo+IAlnbFJlY3RzKGJ1dC0+eDErZmFjLTIsIGJ1dC0+eTEt
MiwgYnV0LT54MStmYWMraCsyLCBidXQtPnkyKzIpOwo3NDcsNzQ5Yzk4NSw5OTEKPCAJZ2xDb2xv
cjN1YigwLDAsMCk7CjwgCWZkcmF3bGluZShidXQtPngxK2ZhYywgYnV0LT55MSsxLCBidXQtPngx
K2ZhYytoLCBidXQtPnkxKzEpOwo8IAlmZHJhd2xpbmUoYnV0LT54MStmYWMraCwgYnV0LT55MSsx
LCBidXQtPngxK2ZhYytoLCBidXQtPnkyLTEpOwotLS0KPiAJQklGX3NldF9jb2xvcihidXQtPmNv
bCwgQ09MT1JTSEFERV9EQVJLKTsJCj4gCWZkcmF3bGluZShidXQtPngxK2ZhYy0yLCBidXQtPnky
KzIsIGJ1dC0+eDErZmFjK2grMiwgYnV0LT55MisyKTsKPiAJZmRyYXdsaW5lKGJ1dC0+eDErZmFj
LTIsIGJ1dC0+eTEtMiwgYnV0LT54MStmYWMtMiwgYnV0LT55MisyKTsKPiAKPiAJQklGX3NldF9j
b2xvcihidXQtPmNvbCwgQ09MT1JTSEFERV9EQVJLKTsJCj4gCWZkcmF3bGluZShidXQtPngxK2Zh
Yy0yLCBidXQtPnkxLTIsIGJ1dC0+eDErZmFjK2grMiwgYnV0LT55MS0yKTsKPiAJZmRyYXdsaW5l
KGJ1dC0+eDErZmFjK2grMiwgYnV0LT55MS0yLCBidXQtPngxK2ZhYytoKzIsIGJ1dC0+eTIrMik7
Cjg5Niw4OTdjMTEzOCwxMTQyCjwgCQlpZihzZWwpIGdsQ29sb3IzdWIoMjU1LDI1NSwyNTUpOwo8
IAkJZWxzZSBnbENvbG9yM3ViKDAsMCwwKTsKLS0tCj4gCQkvKmlmKHNlbCkgZ2xDb2xvcjN1Yigy
NTUsMjU1LDI1NSk7Cj4gCQllbHNlIGdsQ29sb3IzdWIoMCwwLDApOyovCj4gCQlpZihzZWwpIHVp
X3NldF9jb2xvcihCVVRURVhUUFJFU1NFRCk7IAo+IAkJZWxzZSAgdWlfc2V0X2NvbG9yKEJVVFRF
WFRDT0xPUik7IAo+IAo5MzVjMTE4MAo8IAkJCQlnbENvbG9yM3ViKDI1NSwyNTUsMjU1KTsKLS0t
Cj4gCQkJCSB1aV9zZXRfY29sb3IoQlVUVEVYVFBSRVNTRUQpOyAKOTM4YzExODMsMTE4NAo8IAkJ
CQlnbENvbG9yM3ViKDAsMCwwKTsKLS0tCj4gCQkJCQo+IAkJCQl1aV9zZXRfY29sb3IoQlVUVEVY
VENPTE9SKTsgCjk0M2MxMTg5CjwgCQkJZ2xDb2xvcjN1YigwLDAsMCk7Ci0tLQo+IAkJCXVpX3Nl
dF9jb2xvcihCVVRURVhUQ09MT1IpOyAKMTAxOSwxMDIwYzEyNjUsMTI2Nwo8IAlpZihzZWwpIGds
Q29sb3IzdWIoMjU1LDI1NSwyNTUpOwo8IAllbHNlIGdsQ29sb3IzdWIoMCwwLDApOwotLS0KPiAJ
aWYoc2VsKSB1aV9zZXRfY29sb3IoQlVUVEVYVFBSRVNTRUQpOyAKPiAJZWxzZSAgdWlfc2V0X2Nv
bG9yKEJVVFRFWFRDT0xPUik7IAo+IAoxMTY0YzE0MTEKPCAJCS8qIHdoZW4gc3VmZmljaWVudCBz
cGFjZTogZGFydyBzeW1ib2xzICovCi0tLQo+IAkJLyogd2hlbiBzdWZmaWNpZW50IHNwYWNlOiBk
cmF3IHN5bWJvbHMgKi8KMTE2OSwxMTcwYzE0MTYsMTQxOAo8IAkJCXgxPSBidXQtPngyLTAuNjYq
aDsgeDI9IHgxKy4zMypoOwo8IAkJCXkxPSBidXQtPnkxKy40MipoOyB5Mj0geTErLjE2Kmg7Ci0t
LQo+IAkJCQo+IAkJCXgxPSBidXQtPngyLTAuOCpoOyB4Mj0geDErMTI7IC8qLjYqaDsqLwo+IAkJ
CXkxPSBidXQtPnkxKy4zNSpoOyB5Mj0geTErNjsgLyouMjUqaDsqLwoxMTcxYTE0MjAsMTQ0MAo+
IAkJCUJJRl9zZXRfY29sb3IoYnV0LT5jb2wsIENPTE9SU0hBREVfTElHSFQpOwo+IAkJCQo+IAkJ
CWdsQmVnaW4oR0xfVFJJQU5HTEVTKTsKPiAJCQkKPiAJCQlnbFZlcnRleDJmKHgxLCB5Mik7Cj4g
Cj4gCQkJZ2xWZXJ0ZXgyZih4MiwgeTIpOwo+IAo+IAkJCWdsVmVydGV4MmYoeDErNi8qLjMwKmgq
LywgeTEpOwo+IAo+IAkJCWdsRW5kKCk7Cj4gCj4gCQkJQklGX3NldF9jb2xvcihidXQtPmNvbCwg
Q09MT1JTSEFERV9EQVJLKTsKPiAKPiAJCQlmZHJhd2xpbmUoeDEsIHkyLCB4MiwgeTIpOwo+IAo+
IAkJCWZkcmF3bGluZSh4MSwgeTIsIHgxKzYvKi4zMCpoKi8sIHkxKTsKPiAJCQo+IAkJCWZkcmF3
bGluZSh4MSs2LyouMzAqaCovLCB5MSwgeDIsIHkyKTsKPiAKPiAJCQkvKgoxMTc1YTE0NDUKPiAJ
CQkqLwozOTc3YTQyNDgsNDI1Mwo+IHN0YXRpYyB2b2lkIHVpX3NldF9jb2xvcihpbnQgY29sb3Ju
dW0pCj4gewo+IAlnbENvbG9yM3ViKFUudWljb2xvcnNbY29sb3JudW0qM10sVS51aWNvbG9yc1tj
b2xvcm51bSozKzFdLFUudWljb2xvcnNbY29sb3JudW0qMysyXSk7Cj4gfQo+IAo+IAo0MjI4YzQ1
MDQsNDUxMAo8IAlpZihibG9jay0+ZHQ9PVVJX0VNQk9TU1gpIGJ1dC0+ZW1ib3NzZnVuYz0gdWlf
ZW1ib3NzX1g7Ci0tLQo+IAkKPiAJaWYoYmxvY2stPmR0PT1VSV9FTUJPU1NYKQo+IAl7Cj4gCQlp
ZiAoVS5jb2xvcm9wdHMgPT0gMCkgYnV0LT5lbWJvc3NmdW5jPSB1aV9lbWJvc3NfcGxhaW47Cj4g
CQllbHNlIGlmIChVLmNvbG9yb3B0cyA9PSAxKSBidXQtPmVtYm9zc2Z1bmM9IHVpX2VtYm9zc19n
cmFkaWVudDsKPiAJCWVsc2UgaWYgKFUuY29sb3JvcHRzID09IDIpIGJ1dC0+ZW1ib3NzZnVuYz0g
dWlfZW1ib3NzX2NvbXBsZXg7Cj4gCX0KSW5kZXg6IHNvdXJjZS9ibGVuZGVyL3NyYy9yZXNvdXJj
ZXMuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zzcm9vdC9iZi1ibGVuZGVyL2JsZW5kZXIvc291
cmNlL2JsZW5kZXIvc3JjL3Jlc291cmNlcy5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjMKZGlm
ZiAtcjEuMyByZXNvdXJjZXMuYwo1M2E1NAo+ICNpbmNsdWRlICJETkFfdXNlcmRlZl90eXBlcy5o
IgoxNjJhMTY0LDE2OAo+IAkKPiAJVS51aWNvbG9yc1tjb2xvcmlkeCozXSA9IHI7Cj4gCVUudWlj
b2xvcnNbY29sb3JpZHgqMysxXSA9IGc7Cj4gCVUudWljb2xvcnNbY29sb3JpZHgqMysyXSA9IGI7
Cj4gCjI5M2MyOTkKPCAJZGVmX2NvbChCVVRWSVNJQklMSVRZLAkJMHhCMiwweEE5LDB4OTkpOwot
LS0KPiAJZGVmX2NvbChCVVRWSVNJQklMSVRZLAkweEIyLDB4QTksMHg5OSk7CjI5OWEzMDYsMzIw
Cj4gCj4gCWRlZl9jb2woQlVUVEVYVENPTE9SLAkJCTAsMCwwKTsKPiAJZGVmX2NvbChCVVRURVhU
UFJFU1NFRCwgCQkyNTUsMjU1LDI1NSk7Cj4gCWRlZl9jb2woQlVUU0JBQ0tHUk9VTkQsCQkJMTI3
LDEyNywxMjcpOwo+IAlkZWZfY29sKFZJRVdQT1JUQkFDS0NPTE9SLAkJMTE2LDExNiwxMTYpOwo+
IAlkZWZfY29sKFZJRVdQT1JUR1JJRENPTE9SLAkJNzYsNzYsNzYpOwo+IAlkZWZfY29sKFZJRVdQ
T1JUQUNUSVZFQ09MT1IsCTI1NSwwLDI1NSk7Cj4gCWRlZl9jb2woVklFV1BPUlRTRUxFQ1RFRENP
TE9SLAkyMDAsMCwyMDApOwo+IAlkZWZfY29sKFZJRVdQT1JUVU5TRUxDT0xPUiwJCTAsMCwwKTsK
PiAKPiB9Cj4gCj4gdm9pZCBCSUZfZGVmX2NvbG9yKEJJRkNvbG9ySUQgY29sb3JpZCwgdW5zaWdu
ZWQgY2hhciByLCB1bnNpZ25lZCBjaGFyIGcsIHVuc2lnbmVkIGNoYXIgYikKPiB7Cj4gCWRlZl9j
b2woY29sb3JpZCwgciwgZywgYik7CjMwOGEzMzAsMzg2Cj4gCj4gdm9pZCBsb2FkX3VpX2NvbG9y
KGludCB3aGljaGNvbG9yKQo+IHsKPiAJCj4gCWRlZl9jb2wod2hpY2hjb2xvciwgVS51aWNvbG9y
c1t3aGljaGNvbG9yKjNdLCAKPiAJCQkJCQlVLnVpY29sb3JzW3doaWNoY29sb3IqMysxXSwKPiAJ
CQkJCQlVLnVpY29sb3JzW3doaWNoY29sb3IqMysyXSk7Cj4gfQo+IAo+IAo+IHZvaWQgQklGX2xv
YWRfdWlfY29sb3JzKCkKPiB7Cj4gCj4gCWxvYWRfdWlfY29sb3IoQlVUR1JFWSk7Cj4gCWxvYWRf
dWlfY29sb3IoQlVUR1JFRU4pOwo+IAlsb2FkX3VpX2NvbG9yKEJVVEJMVUUpOwo+IAlsb2FkX3Vp
X2NvbG9yKEJVVFNBTE1PTik7Cj4gCWxvYWRfdWlfY29sb3IoTUlER1JFWSk7Cj4gCWxvYWRfdWlf
Y29sb3IoQlVUUFVSUExFKTsKPiAJbG9hZF91aV9jb2xvcihCVVRZRUxMT1cpOwo+IAlsb2FkX3Vp
X2NvbG9yKEJVVFJVU1QpOwo+IAlsb2FkX3VpX2NvbG9yKFJFREFMRVJUKTsKPiAJbG9hZF91aV9j
b2xvcihCVVRXSElURSk7Cj4gCWxvYWRfdWlfY29sb3IoQlVUREJMVUUpOwo+IAlsb2FkX3VpX2Nv
bG9yKEJVVERQSU5LKTsKPiAJbG9hZF91aV9jb2xvcihCVVRQSU5LKTsKPiAJbG9hZF91aV9jb2xv
cihCVVRNQUNUSVZFKTsKPiAKPiAJbG9hZF91aV9jb2xvcihCVVRJUE8pOwo+IAlsb2FkX3VpX2Nv
bG9yKEJVVEFVRElPKTsKPiAJbG9hZF91aV9jb2xvcihCVVRDQU1FUkEpOwo+IAlsb2FkX3VpX2Nv
bG9yKEJVVFJBTkRPTSk7Cj4gCWxvYWRfdWlfY29sb3IoQlVURURJVE9CSkVDVCk7Cj4gCWxvYWRf
dWlfY29sb3IoQlVUUFJPUEVSVFkpOwo+IAlsb2FkX3VpX2NvbG9yKEJVVFNDRU5FKTsKPiAJbG9h
ZF91aV9jb2xvcihCVVRNT1RJT04pOwo+IAlsb2FkX3VpX2NvbG9yKEJVVE1FU1NBR0UpOwo+IAls
b2FkX3VpX2NvbG9yKEJVVEFDVElPTik7Cj4gCWxvYWRfdWlfY29sb3IoQlVUVklTSUJJTElUWSk7
Cj4gCWxvYWRfdWlfY29sb3IoQlVUQ0QpOwo+IAlsb2FkX3VpX2NvbG9yKEJVVEdBTUUpOwo+IAls
b2FkX3VpX2NvbG9yKEJVVFlVQ0spOwo+IAlsb2FkX3VpX2NvbG9yKEJVVFNFQVNJQ0spOwo+IAls
b2FkX3VpX2NvbG9yKEJVVENIT0tFKTsKPiAJbG9hZF91aV9jb2xvcihCVVRJTVBFUklBTCk7Cj4g
Cj4gCWxvYWRfdWlfY29sb3IoQlVUVEVYVENPTE9SKTsKPiAJbG9hZF91aV9jb2xvcihCVVRURVhU
UFJFU1NFRCk7Cj4gCWxvYWRfdWlfY29sb3IoQlVUU0JBQ0tHUk9VTkQpOwo+IAlsb2FkX3VpX2Nv
bG9yKFZJRVdQT1JUQkFDS0NPTE9SKTsKPiAJbG9hZF91aV9jb2xvcihWSUVXUE9SVEdSSURDT0xP
Uik7Cj4gCWxvYWRfdWlfY29sb3IoVklFV1BPUlRBQ1RJVkVDT0xPUik7Cj4gCWxvYWRfdWlfY29s
b3IoVklFV1BPUlRTRUxFQ1RFRENPTE9SKTsKPiAJbG9hZF91aV9jb2xvcihWSUVXUE9SVFVOU0VM
Q09MT1IpOwo+IAo+IH0KPiAKSW5kZXg6IHNvdXJjZS9ibGVuZGVyL3NyYy9zcGFjZS5jCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnNyb290L2JmLWJsZW5kZXIvYmxlbmRlci9zb3VyY2UvYmxlbmRl
ci9zcmMvc3BhY2UuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zMApkaWZmIC1yMS4zMCBzcGFj
ZS5jCjE0MTljMTQxOSwxNDIyCjwgCWdsQ2xlYXJDb2xvcigwLjUsIDAuNSwgMC41LCAwLjApOyAK
LS0tCj4gCWdsQ2xlYXJDb2xvcigoZmxvYXQpIFUudWljb2xvcnNbQlVUU0JBQ0tHUk9VTkQgKjNd
IC8gMjU2LjAsCj4gCQkJCSAoZmxvYXQpIFUudWljb2xvcnNbQlVUU0JBQ0tHUk9VTkQgKjMgKyAx
XSAvICAyNTYuMCwKPiAJCQkJIChmbG9hdCkgVS51aWNvbG9yc1tCVVRTQkFDS0dST1VORCAqMyAr
IDJdIC8gMjU2LjAsIDAuMCk7Cj4gCjE0MjljMTQzMgo8IAlkeD0gKDEyODAtOTApLzY7CS8qIHNw
YWNpbmcgZm9yIHVzZSBpbiBlcXVhbGx5IGRpdmlkaW5nICd0YWInIHJvdyAqLwotLS0KPiAJZHg9
ICgxMjgwLTkwKS83OwkvKiBzcGFjaW5nIGZvciB1c2UgaW4gZXF1YWxseSBkaXZpZGluZyAndGFi
JyByb3cgKi8KMTQ1MCwxNDUxYzE0NTMsMTQ1OAo8IAl5MyA9IHlwb3MrMiooYnV0aCtyc3BhY2Up
KygzKnJzcGFjZSk7CS8qIGJvdHRvbSBwYWRkaW5nIG9mIDNyZCBidXR0b24gcm93ICovCjwgCXk0
ID0geXBvcyszKihidXRoK3JzcGFjZSkrKDMqcnNwYWNlKTsJLyogYm90dG9tIHBhZGRpbmcgb2Yg
NHRoIGJ1dHRvbiByb3cgKi8KLS0tCj4gCQo+IAl5MyA9IHlwb3MrMiooYnV0aCtyc3BhY2UpOwo+
IAkKPiAJLyp5MyA9IHlwb3MrMiooYnV0aCtyc3BhY2UpKygzKnJzcGFjZSk7Ki8JLyogYm90dG9t
IHBhZGRpbmcgb2YgM3JkIGJ1dHRvbiByb3cgKi8KPiAJCj4gCXk0ID0geXBvcyszKihidXRoK3Jz
cGFjZSk7CS8qIGJvdHRvbSBwYWRkaW5nIG9mIDR0aCBidXR0b24gcm93ICovCjE0NTRjMTQ2MQo8
IAl5M2xhYmVsID0geTMtKDMqcnNwYWNlKS0yOwkvKiBhZ2FpbiBmb3IgM3JkIHJvdyAqLwotLS0K
PiAJeTNsYWJlbCA9IHkzLTI7CQkvKiBhZ2FpbiBmb3IgM3JkIHJvdyAqLwoxNDg2YTE0OTQsMTQ5
Nwo+IAl1aURlZkJ1dEkoYmxvY2ssIFJPVyxCX1VTRVJQUkVGLCJJbnRlcmZhY2UgVGhlbWUiLAo+
IAkJKHNob3J0KSh4cG9zKzYqZHgpLHlwb3N0YWIsKHNob3J0KWR4LGJ1dGgsCj4gCQkmVS51c2Vy
cHJlZiwxLjAsNi4wLCAwLCAwLCIiKTsKPiAKMTg5NWMxOTA2LDIwMDYKPCAJfQotLS0KPiAJfSBl
bHNlIGlmIChVLnVzZXJwcmVmID09IDYpIHsgLyogSW50ZXJmYWNlIFRoZW1lICovCj4gCj4gCQl1
aURlZkJ1dChibG9jaywgTEFCRUwsMCwiQnV0dG9uIFR5cGU6IiwKPiAJCQl4cG9zLHk0bGFiZWws
bWVkcHJlZmJ1dCxidXRoLAo+IAkJCTAsIDAsIDAsIDAsIDAsICIiKTsKPiAKPiAJCXVpQmxvY2tT
ZXRDb2woYmxvY2ssIEJVVEdSRUVOKTsKPiAKPiAJCXVpRGVmQnV0SShibG9jaywgUk9XLCBCX1VJ
VEhFTUVDSEFOR0VELCAiQmFzaWMiLAo+IAkJCSh4cG9zK2VkZ2VzcGFjZSkseTMsKHNtYWxscHJl
ZmJ1dCsyKSxidXRoLAo+IAkJCSYoVS5jb2xvcm9wdHMpLCAwLCAwLCAwLCAwLCAiQmFzaWMsIE5v
IEdyYWRpZW50cyIpOwo+IAo+IAkJdWlEZWZCdXRJKGJsb2NrLCBST1csIEJfVUlUSEVNRUNIQU5H
RUQsICJHcmFkaWVudCIsCj4gCQkJKHhwb3MrZWRnZXNwYWNlKSx5Miwoc21hbGxwcmVmYnV0KzIp
LGJ1dGgsCj4gCQkJJihVLmNvbG9yb3B0cyksIDAsIDEsIDAsIDAsICJTaW1wbGUgVmVydGljYWwg
R3JhZGllbnRzIik7Cj4gCj4gCQl1aURlZkJ1dEkoYmxvY2ssIFJPVywgQl9VSVRIRU1FQ0hBTkdF
RCwgIkNvbXBsZXgiLAo+IAkJCSh4cG9zK2VkZ2VzcGFjZSkseTEsKHNtYWxscHJlZmJ1dCsyKSxi
dXRoLAo+IAkJCSYoVS5jb2xvcm9wdHMpLCAwLCAyLCAwLCAwLCAiQ29tcGxleCAncmVmbGVjdGl2
ZScgYnV0dG9ucyIpOwo+IAo+IAkJdWlCbG9ja1NldENvbChibG9jaywgQlVUR1JFWSk7Cj4gCj4g
CQl1aURlZkJ1dChibG9jaywgTEFCRUwsMCwiQnV0dG9uIFR5cGU6IiwKPiAJCQkoeHBvcytlZGdl
c3BhY2UrKDMqbWlkc3BhY2UpKygzKm1lZHByZWZidXQpKSx5NGxhYmVsLAo+IAkJCW1lZHByZWZi
dXQsYnV0aCwKPiAJCQkwLCAwLCAwLCAwLCAwLCAiIik7Cj4gCj4gCj4gCQljaGFyIG1lbnVjb2xv
cnN0clsxMDI0XTsKPiAKPiAJCXNwcmludGYobWVudWNvbG9yc3RyLCAiTW9kaWZ5IENvbG9yJXR8
QlVUR1JFWSAlJXglZHxCVVRHUkVFTiAlJXglZHxCVVRCTFVFICUleCVkfEJVVFNBTE1PTiAlJXgl
ZHxNSURHUkVZICUleCVkfEJVVFBVUlBMRSAlJXglZHxCVVRZRUxMT1cgJSV4JWR8UkVEQUxFUlQg
JSV4JWR8QlVUUlVTVCAlJXglZHxCVVRXSElURSAlJXglZHxCVVREQkxVRSAlJXglZHxCVVRQSU5L
ICUleCVkfEJVVERQSU5LICUleCVkfEJVVE1BQ1RJVkUgJSV4JWR8QlVUVEVYVENPTE9SICUleCVk
fEJVVFRFWFRQUkVTU0VEICUleCVkfEJVVFNCQUNLR1JPVU5EICUleCVkfFZJRVdQT1JUQkFDS0NP
TE9SICUleCVkfFZJRVdQT1JUR1JJRENPTE9SICUleCVkfFZJRVdQT1JUQUNUSVZFQ09MT1IgJSV4
JWR8VklFV1BPUlRTRUxFQ1RFRENPTE9SICUleCVkfFZJRVdQT1JUVU5TRUxDT0xPUiAlJXglZHwi
LAlCVVRHUkVZLCBCVVRHUkVFTiwgQlVUQkxVRSwgQlVUU0FMTU9OLCBNSURHUkVZLCBCVVRQVVJQ
TEUsIEJVVFlFTExPVywgUkVEQUxFUlQsIEJVVFJVU1QsIEJVVFdISVRFLCBCVVREQkxVRSwgQlVU
UElOSywgQlVURFBJTkssIEJVVE1BQ1RJVkUsIEJVVFRFWFRDT0xPUiwgQlVUVEVYVFBSRVNTRUQs
IEJVVFNCQUNLR1JPVU5ELCBWSUVXUE9SVEJBQ0tDT0xPUiwgVklFV1BPUlRHUklEQ09MT1IsIFZJ
RVdQT1JUQUNUSVZFQ09MT1IsIFZJRVdQT1JUU0VMRUNURURDT0xPUiwgVklFV1BPUlRVTlNFTENP
TE9SKTsKPiAJCQo+IAkJdWlEZWZCdXRJKGJsb2NrLCBNRU5VfElOVCwgQl9VSVRIRU1FQ09MT1JN
T0QsbWVudWNvbG9yc3RyLAo+IAkJCSh4cG9zK2VkZ2VzcGFjZSsoMyptaWRzcGFjZSkrKDMqbWVk
cHJlZmJ1dCkpLHkyLG1lZHByZWZidXQsYnV0aCwKPiAJCQkmVS53aGljaGNvbG9ycHJlZiwgMCwg
MTAwLCAwLCAwLCJTZXRzIEN1cnJlbnRseSBzZWxlY3RlZCBjb2xvci4iKTsKPiAJCQo+IAkJdWlC
bG9ja1NldENvbChibG9jaywgQlVUU0FMTU9OKTsKPiAKPiAJCXVpRGVmQnV0KGJsb2NrLCBCVVQs
IEJfVUlUSEVNRUNPTE9STU9ELCAiU2V0IENvbG9yIiwKPiAJCQkoeHBvcytlZGdlc3BhY2UrKDMq
bWlkc3BhY2UpKygzKm1lZHByZWZidXQpKSx5MSxtZWRwcmVmYnV0LGJ1dGgsCj4gCQkJMCwgMCwg
MCwgMCwgMCwiU2V0cyBDdXJyZW50bHkgc2VsZWN0ZWQgY29sb3IuIik7Cj4gCj4gCQl1aUJsb2Nr
U2V0Q29sKGJsb2NrLCBCVVRHUkVZKTsKPiAKPiAJCXVpRGVmQnV0QyhibG9jaywgTlVNU0xJLCAw
LCAiUiAiLAo+IAkJCSh4cG9zK2VkZ2VzcGFjZSsoNCptaWRzcGFjZSkrKDQqbWVkcHJlZmJ1dCkp
LHkzLG1lZHByZWZidXQsYnV0aCwKPiAJCQkmVS51aWNvbG9yc1tVLndoaWNoY29sb3JwcmVmICoz
XSwgMCwgMjU1LCBCX1VJVEhFTUVDSEFOR0VELCAwLCAiUmVkIik7Cj4gCQkKPiAJCXVpRGVmQnV0
QyhibG9jaywgTlVNU0xJLCAwLCAiRyAiLAo+IAkJCSh4cG9zK2VkZ2VzcGFjZSsoNCptaWRzcGFj
ZSkrKDQqbWVkcHJlZmJ1dCkpLHkyLG1lZHByZWZidXQsYnV0aCwKPiAJCQkmVS51aWNvbG9yc1tV
LndoaWNoY29sb3JwcmVmKjMgKzFdLCAwLCAyNTUsIEJfVUlUSEVNRUNIQU5HRUQsIDAsICJHcmVl
biIpOwo+IAkJCj4gCQl1aURlZkJ1dEMoYmxvY2ssIE5VTVNMSSwgMCwgIkIgIiwKPiAJCQkoeHBv
cytlZGdlc3BhY2UrKDQqbWlkc3BhY2UpKyg0Km1lZHByZWZidXQpKSx5MSxtZWRwcmVmYnV0LGJ1
dGgsCj4gCQkJJlUudWljb2xvcnNbVS53aGljaGNvbG9ycHJlZiozICsyXSwgMCwgMjU1LCBCX1VJ
VEhFTUVDSEFOR0VELCAwLCAiQmx1ZSIpOwo+IAo+IAo+IC8qCj4gCQl1aURlZkJ1dChibG9jaywg
TEFCRUwsMCwiS2V5Ym9hcmQ6IiwKPiAJCQkoeHBvcytlZGdlc3BhY2UrKDMqbWlkc3BhY2UpKygz
Km1lZHByZWZidXQpKSx5M2xhYmVsLG1lZHByZWZidXQsYnV0aCwKPiAJCQkwLCAwLCAwLCAwLCAw
LCAiIik7Cj4gCj4gCQl1aURlZkJ1dFMoYmxvY2ssIFRPR3xCSVR8OSwgQl9VX0NBUFNMT0NLLCAi
RGlzYWJsZSBDYXBzIExvY2siLAo+IAkJCSh4cG9zK2VkZ2VzcGFjZSsoMyptaWRzcGFjZSkrKDMq
bWVkcHJlZmJ1dCkpLHkxLG1lZHByZWZidXQsYnV0aCwKPiAJCQkmKFUuZmxhZyksIDAsIDAsIDAs
IDAsCj4gCQkJIkRpc2FibGVzIHRoZSBDYXBzIExvY2sga2V5IHdoZW4gZW50ZXJpbmcgdGV4dCIp
Owo+IAo+IAkJdWlEZWZCdXRTKGJsb2NrLCBUT0d8QklUfDEzLCAwLCAiRW11bGF0ZSBOdW1wYWQi
LAo+IAkJCSh4cG9zK2VkZ2VzcGFjZSsoMyptaWRzcGFjZSkrKDMqbWVkcHJlZmJ1dCkpLHkyLG1l
ZHByZWZidXQsYnV0aCwKPiAJCQkmKFUuZmxhZyksIDAsIDAsIDAsIDAsCj4gCQkJIkNhdXNlcyB0
aGUgMSB0byAwIGtleXMgdG8gYWN0IGFzIHRoZSBudW1wYWQgKHVzZWZ1bCBmb3IgbGFwdG9wcyki
KTsKPiAKPiAKPiAJCXVpRGVmQnV0KGJsb2NrLCBMQUJFTCwwLCJTeXN0ZW06IiwKPiAJCQkoeHBv
cytlZGdlc3BhY2UrKDQqbWlkc3BhY2UpKyg0Km1lZHByZWZidXQpKSx5M2xhYmVsLG1lZHByZWZi
dXQsYnV0aCwKPiAJCQkwLCAwLCAwLCAwLCAwLCAiIik7Cj4gCj4gCQl1aURlZkJ1dEkoYmxvY2ss
IFRPR3xCSVR8VVNFUkRFRl9ESVNBQkxFX1NPVU5EX0JJVCwgQl9TT1VORFRPR0dMRSwgIkRpc2Fi
bGUgU291bmQiLAo+IAkJCSh4cG9zK2VkZ2VzcGFjZSsoNCptZWRwcmVmYnV0KSsoNCptaWRzcGFj
ZSkpLHkyLG1lZHByZWZidXQsYnV0aCwKPiAJCQkmKFUuZ2FtZWZsYWdzKSwgMCwgMCwgMCwgMCwg
IkRpc2FibGVzIHNvdW5kcyBmcm9tIGJlaW5nIHBsYXllZCIpOwo+IAo+IAkJdWlEZWZCdXRTKGJs
b2NrLCBUT0d8QklUfDMsIDAsICJGaWx0ZXIgRmlsZSBFeHRlbnNpb25zIiwKPiAJCQkoeHBvcytl
ZGdlc3BhY2UrKDQqbWVkcHJlZmJ1dCkrKDQqbWlkc3BhY2UpKSx5MSxtZWRwcmVmYnV0LGJ1dGgs
Cj4gCQkJJihVLnVpZmxhZyksIDAsIDAsIDAsIDAsICJEaXNwbGF5IG9ubHkgZmlsZXMgd2l0aCBl
eHRlbnNpb25zIGluIHRoZSBpbWFnZSBzZWxlY3Qgd2luZG93Iik7Cj4gCj4gCj4gCQl1aURlZkJ1
dChibG9jaywgTEFCRUwsMCwiT3BlbkdMOiIsCj4gCQkJKHhwb3MrZWRnZXNwYWNlKyg1Km1pZHNw
YWNlKSsoNSptZWRwcmVmYnV0KSkseTNsYWJlbCxtZWRwcmVmYnV0LGJ1dGgsCj4gCQkJMCwgMCwg
MCwgMCwgMCwgIiIpOwo+IAo+IAkJdWlEZWZCdXRJKGJsb2NrLCBUT0dOfEJJVHxVU0VSREVGX0RJ
U0FCTEVfTUlQTUFQX0JJVCwgQl9NSVBNQVBDSEFOR0VELCAiTWlwbWFwcyIsCj4gCQkJKHhwb3Mr
ZWRnZXNwYWNlKyg1Km1lZHByZWZidXQpKyg1Km1pZHNwYWNlKSkseTIsbWVkcHJlZmJ1dCxidXRo
LAo+IAkJCSYoVS5nYW1lZmxhZ3MpLCAwLCAwLCAwLCAwLCAiVG9nZ2xlcyBiZXR3ZWVuIG1pcG1h
cCB0ZXh0dXJlcyBvbiAoYmVhdXRpZnVsKSBhbmQgb2ZmIChmYXN0KSIpOwo+IAo+IAkJdWlEZWZC
dXRJKGJsb2NrLCBUT0d8QklUfFVTRVJERUZfVkVSVEVYX0FSUkFZU19CSVQsIDAsICJWZXJ0ZXgg
QXJyYXlzIiwKPiAJCQkoeHBvcytlZGdlc3BhY2UrKDUqbWVkcHJlZmJ1dCkrKDUqbWlkc3BhY2Up
KSx5MSxtZWRwcmVmYnV0LGJ1dGgsCj4gCQkJJihVLmdhbWVmbGFncyksIDAsIDAsIDAsIDAsICJU
b2dnbGVzIGJldHdlZW4gdmVydGV4IGFycmF5cyBvbiAobGVzcyByZWxpYWJsZSkgYW5kIG9mZiAo
bW9yZSByZWxpYWJsZSkiKTsKPiAKPiAJKi8KPiAJfQkKPiAKSW5kZXg6IHNvdXJjZS9ibGVuZGVy
L3NyYy9zcGFjZXR5cGVzLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2c3Jvb3QvYmYtYmxlbmRl
ci9ibGVuZGVyL3NvdXJjZS9ibGVuZGVyL3NyYy9zcGFjZXR5cGVzLmMsdgpyZXRyaWV2aW5nIHJl
dmlzaW9uIDEuNQpkaWZmIC1yMS41IHNwYWNldHlwZXMuYwo0NWE0Ngo+ICNpbmNsdWRlICJETkFf
dXNlcmRlZl90eXBlcy5oIgo1MGE1Mgo+ICNpbmNsdWRlICJCSUZfcmVzb3VyY2VzLmgiCjExMWMx
MTMsMTE4CjwgCQlnbENsZWFyQ29sb3IoMC40Mzc1LCAwLjQzNzUsIDAuNDM3NSwgMC4wKTsgCi0t
LQo+IAo+IAkJZ2xDbGVhckNvbG9yKChmbG9hdCkgVS51aWNvbG9yc1tWSUVXUE9SVEJBQ0tDT0xP
UiAqM10gLyAyNTYuMCwKPiAJCQkJCSAoZmxvYXQpIFUudWljb2xvcnNbVklFV1BPUlRCQUNLQ09M
T1IgKjMgKyAxXSAvICAyNTYuMCwKPiAJCQkJCSAoZmxvYXQpIFUudWljb2xvcnNbVklFV1BPUlRC
QUNLQ09MT1IgKjMgKyAyXSAvIDI1Ni4wLCAwLjApOwo+IAo+IAkJLypnbENsZWFyQ29sb3IoMC40
Mzc1LCAwLjQzNzUsIDAuNDM3NSwgMC4wKTsgKi8KSW5kZXg6IHNvdXJjZS9ibGVuZGVyL3NyYy91
c2libGVuZGVyLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2c3Jvb3QvYmYtYmxlbmRlci9ibGVu
ZGVyL3NvdXJjZS9ibGVuZGVyL3NyYy91c2libGVuZGVyLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuMTkKZGlmZiAtcjEuMTkgdXNpYmxlbmRlci5jCjQ5N2E0OTgsNTAwCj4gCQo+IAlpZihVLnVp
Y29sb3JzWzBdKSBCSUZfbG9hZF91aV9jb2xvcnMoKTsgZWxzZSBpbml0YnV0dG9ucygpOwo+IAo=

--Multipart_Sun__6_Jul_2003_23:16:49_+0300_082fbb28--