Some results

Stephen Weeks MLton@sourcelight.com
Tue, 25 Jul 2000 16:45:19 -0700 (PDT)


--VOYqiXpzC5
Content-Type: text/plain; charset=us-ascii
Content-Description: message body text
Content-Transfer-Encoding: 7bit


> Any advice for playing around with compiling the compiler?  

I've attached a script that I use for checking that a self compile
works, as well as the latest output from running the script on the
released version.

> Last time I started a self-compile from SML/NJ it was up over
> half an hour before I killed it off.  

In what pass was it?  It definitely shouldn't take this long to
generate C.  You should make sure the flags are set as in the script
below or as in the Makefile.  For a simple test, from within the src/
directory, you should be able to do "make nj-mlton && make".

> > > Looking at the
> > > compile time for some of the larger benchmarks, there is some decent
> > > improvement.  I think we'll see even better performance when we can make
> > > the assembler call from within mlton. 
> > 
> > Separate assembly will help a lot too.
> 
> I don't know what the trade offs are there -- smaller individual files
> versus more external calls.  It shouldn't be too difficult to play with.
> We'll have to decide on how exactly this codegen should interact with the
> driver portion of the compiler.

We think there is something nonlinear about the assembler, since we
observe long assembly times on the self compile (~5 minutes).  I think 
separate assembly is essential there.  Probably the easiest thing to
do for experimentation is to make one call to the assembler per chunk, 
and vary the Coalesce threshold of the chunkifier.



--VOYqiXpzC5
Content-Type: application/octet-stream
Content-Description: self-compile
Content-Disposition: attachment;
	filename="self-compile"
Content-Transfer-Encoding: base64

IyEvYmluL3NoCgpkb0NodW5rcz0nJwoKcm9vdD0iJEhPTUUvbWx0b24iCnNyYz0iJHJvb3Qvc3Jj
IgppbmM9IiRyb290L2luY2x1ZGUiCmxpYj0iJHJvb3QvbGliIgpiaW49IiRyb290L2JpbiIKbWx0
b249IiRiaW4vbWx0b24iCmdjYz0nZ2NjJwphcmdzPSIkcm9vdCAkZ2NjIC13IC1mb21pdC1mcmFt
ZS1wb2ludGVyIC1mbm8tc3RyZW5ndGgtcmVkdWNlIC1tNDg2CVwKCS1tYWxpZ24tbG9vcHM9MiAt
bWFsaWduLWp1bXBzPTIgLW1hbGlnbi1mdW5jdGlvbnM9MgkJXAoJRU5EIC1JJGluYyAtaW1sdG9u
LmggLUwkbGliIC1sZ21wIC1sbSIKCmlmIFsgISAtZCAkcm9vdC9zZWxmLWNvbXBpbGUgXTsgdGhl
bgoJbWtkaXIgJHJvb3Qvc2VsZi1jb21waWxlCmZpCgplY2hvICdHMDogcHJvZHVjaW5nIHNlcGFy
YXRlbHkgY29tcGlsZWQgdmVyc2lvbiBvZiBtbHRvbiB1c2luZyBTTUwvTkonCmNkICRzcmMKbWFr
ZSBuai1tbHRvbgptYWtlIG1sdG9uLnNtbAoKZnVuY3Rpb24gc2VsZigpIHsKCmRhdGU9YGRhdGUg
JyslWS0lbS0lZC0lVCdgCnNlbGY9JHJvb3Qvc2VsZi1jb21waWxlLyRkYXRlCm1rZGlyICRzZWxm
CmNkICRzZWxmCmxuICRzcmMvbWx0b24uc21sIC4KCigKCXNldCAteAoJCglob3N0bmFtZQoJY2F0
IC9wcm9jL2NwdWluZm8KCQogCWVjaG8gJ0cxOiBjb21waWxpbmcgbWx0b24gdXNpbmcgRzAgdmVy
c2lvbiBvZiBtbHRvbicKCWNkICRzZWxmCglta2RpciBHMQoJY2QgRzEKCWxuIC1zIC4uL21sdG9u
LnNtbCAuCgl0aW1lICRtbHRvbiAkc3dpdGNoZXMgLUMgbWx0b24uc21sIHx8IGV4aXQgJD8KCWxz
IC1sIG1sdG9uLmMKIAl0aW1lICRtbHRvbiAkc3dpdGNoZXMgbWx0b24uYyB8fCBleGl0ICQ/Cglz
aXplIG1sdG9uCgoJZWNobyAnRzEgcHJvY2Vzc2luZyBiYXNpcyBsaWJyYXJ5JwoJdGltZSAuL21s
dG9uIEBNTHRvbiBnYy1zdW1tYXJ5IC0tICRyb290IHdvcmxkIGZhbHNlIHx8IGV4aXQgJD8KCWxz
IC1sIHdvcmxkLm1sdG9uCgoJZWNobyAnRzI6IGNvbXBpbGluZyBtbHRvbiB1c2luZyBHMSB2ZXJz
aW9uIG9mIG1sdG9uJwoJY2QgJHNlbGYJCglta2RpciBHMgoJY2QgRzIKCWxuIC1zIC4uL21sdG9u
LnNtbCAuCgl0aW1lICRzZWxmL0cxL21sdG9uIFwKCQlATUx0b24gXAoJCW1heC1oZWFwIDM1MG0g
XAoJCWxvYWQtd29ybGQgJHNlbGYvRzEvd29ybGQubWx0b24gXAoJCWdjLXN1bW1hcnkgXAoJCS0t
ICRhcmdzICRzd2l0Y2hlcyAtQyBtbHRvbi5zbWwgfHwgZXhpdCAkPwoKCWNkICRzZWxmCgllY2hv
ICdkaWZmIG9mIEMgZmlsZXMnCglkaWZmIEcxL21sdG9uLmMgRzIvbWx0b24uYwoKKSAyPiYxIHwg
dGVlICRzZWxmLyRkYXRlCgp9CgppbnN0cnVtZW50PScnCnN3aXRjaGVzPSIkaW5zdHJ1bWVudCAt
diAtaW5saW5lIDMwIC1uby1wb2x5dmFyaWFuY2UiCnNlbGYK

--VOYqiXpzC5
Content-Type: application/octet-stream
Content-Description: self-compile log
Content-Disposition: attachment;
	filename="2000-07-11-13:27:06"
Content-Transfer-Encoding: base64

KyBob3N0bmFtZQplcG9ueW0uZXByLmNvbQorIGNhdCAvcHJvYy9jcHVpbmZvCnByb2Nlc3Nvcgk6
IDAKdmVuZG9yX2lkCTogR2VudWluZUludGVsCmNwdSBmYW1pbHkJOiA2Cm1vZGVsCQk6IDUKbW9k
ZWwgbmFtZQk6IFBlbnRpdW0gSUkgKERlc2NodXRlcykKc3RlcHBpbmcJOiAyCmNwdSBNSHoJCTog
Mzk3Ljk0OQpjYWNoZSBzaXplCTogNTEyIEtCCmZkaXZfYnVnCTogbm8KaGx0X2J1ZwkJOiBubwpz
ZXBfYnVnCQk6IG5vCmYwMGZfYnVnCTogbm8KY29tYV9idWcJOiBubwpmcHUJCTogeWVzCmZwdV9l
eGNlcHRpb24JOiB5ZXMKY3B1aWQgbGV2ZWwJOiAyCndwCQk6IHllcwpmbGFncwkJOiBmcHUgdm1l
IGRlIHBzZSB0c2MgbXNyIHBhZSBtY2UgY3g4IGFwaWMgc2VwIG10cnIgcGdlIG1jYSBjbW92IHBh
dCBwc2UzNiBtbXggZnhzcgpib2dvbWlwcwk6IDc5NC42MgoKcHJvY2Vzc29yCTogMQp2ZW5kb3Jf
aWQJOiBHZW51aW5lSW50ZWwKY3B1IGZhbWlseQk6IDYKbW9kZWwJCTogNQptb2RlbCBuYW1lCTog
UGVudGl1bSBJSSAoRGVzY2h1dGVzKQpzdGVwcGluZwk6IDIKY3B1IE1IegkJOiAzOTcuOTQ5CmNh
Y2hlIHNpemUJOiA1MTIgS0IKZmRpdl9idWcJOiBubwpobHRfYnVnCQk6IG5vCnNlcF9idWcJCTog
bm8KZjAwZl9idWcJOiBubwpjb21hX2J1Zwk6IG5vCmZwdQkJOiB5ZXMKZnB1X2V4Y2VwdGlvbgk6
IHllcwpjcHVpZCBsZXZlbAk6IDIKd3AJCTogeWVzCmZsYWdzCQk6IGZwdSB2bWUgZGUgcHNlIHRz
YyBtc3IgcGFlIG1jZSBjeDggYXBpYyBzZXAgbXRyciBwZ2UgbWNhIGNtb3YgcGF0IHBzZTM2IG1t
eCBmeHNyCmJvZ29taXBzCTogNzk0LjYyCgorIGVjaG8gRzE6IGNvbXBpbGluZyBtbHRvbiB1c2lu
ZyBHMCB2ZXJzaW9uIG9mIG1sdG9uCkcxOiBjb21waWxpbmcgbWx0b24gdXNpbmcgRzAgdmVyc2lv
biBvZiBtbHRvbgorIGNkIC9ob21lL3N3ZWVrcy9tbHRvbi9zZWxmLWNvbXBpbGUvMjAwMC0wNy0x
MS0xMzoyNzowNgorIG1rZGlyIEcxCisgY2QgRzEKKyBsbiAtcyAuLi9tbHRvbi5zbWwgLgorIHRp
bWUgL2hvbWUvc3dlZWtzL21sdG9uL2Jpbi9tbHRvbiAtdiAtaW5saW5lIDMwIC1uby1wb2x5dmFy
aWFuY2UgLUMgbWx0b24uc21sCmNvbXBpbGUgc3RhcnRpbmcKICAgYWNjdW0gc2l6ZSBpcyB+MSBi
eXRlcwogICBzdWZmaXggc2l6ZSBpcyB+MSBieXRlcwogICBjb25zdHJ1Y3RvcnMgc2l6ZSBpcyB+
MSBieXRlcwogICBNTHRvbiAyMDAwLTA3LTA4IGNyZWF0ZWQgdGhpcyBmaWxlIG9uIFR1ZSBKdWwg
MTEgMTM6Mjc6MDYgMjAwMC4KICAgRG8gbm90IGVkaXQgdGhpcyBmaWxlLgogICBGbGFnIHNldHRp
bmdzOiAKICAgICAgYXV4OiBmYWxzZQogICAgICBjYW5EZWZ1bmN0b3JpemU6IGZhbHNlCiAgICAg
IGNodW5rOiBjb2FsZXNjZSAyMDAwCiAgICAgIGRlZmluZXM6IFtOT0RFQlVHXQogICAgICBmaXhl
ZCBoZWFwOiBOb25lCiAgICAgIGluY2x1ZGVzOiBbbWx0b24uaF0KICAgICAgaW5saW5lOiBOb25S
ZWN1cnNpdmUgU29tZSgzMCkKICAgICAgaW5saW5lIHJvdW5kczogMQogICAgICBpbnB1dCBmaWxl
OiBtbHRvbi5zbWwKICAgICAgaW5zdHJ1bWVudDogZmFsc2UKICAgICAgaW5zdHJ1bWVudCBTeG1s
OiBmYWxzZQogICAgICBrZWVwIENwczogZmFsc2UKICAgICAgbWF0Y2g6IGxlZnQgdG8gcmlnaHQK
ICAgICAgbWVzc2FnZXM6IHRydWUKICAgICAgbW9kZTogY29tcGlsZQogICAgICBwb2x5dmFyaWFu
Y2U6IE5vbmUKICAgICAgcHJpbnQgYXQgZnVuIGVudHJ5OiBmYWxzZQogICAgICBwcm9maWxlOiBm
YWxzZQogICBwYXJzZSBzdGFydGluZwogICBwYXJzZSBmaW5pc2hlZCBpbiAyMi43ODMKICAgYXN0
IHNpemUgaXMgfjEgYnl0ZXMKICAgc2l6ZSA9IDExMzE1MwogICBlbGFib3JhdGUgc3RhcnRpbmcK
ICAgZWxhYm9yYXRlIGZpbmlzaGVkIGluIDEwMS40MzMKICAgY29yZS1tbCBzaXplIGlzIH4xIGJ5
dGVzCiAgIG51bVBlZWtzID0gMTcwNzM5NAogICBhdmVyYWdlIHBvc2l0aW9uIGluIGJ1Y2tldCA9
IDAuMjQyCiAgIGRlYWQgc3RhcnRpbmcKICAgZGVhZCBmaW5pc2hlZCBpbiAwLjM5NwogICBiYXNp
cyBzaXplIGlzIH4xIGJ5dGVzCiAgIHNpemUgPSAxMTkxNDgKICAgZ2NjIC1ETk9ERUJVRyAtSS9o
b21lL3N3ZWVrcy9tbHRvbi9pbmNsdWRlIC1ML2hvbWUvc3dlZWtzL21sdG9uL2xpYiAtTzEgLXcg
LWZvbWl0LWZyYW1lLXBvaW50ZXIgLWZuby1zdHJlbmd0aC1yZWR1Y2UgLW00ODYgLW1hbGlnbi1s
b29wcz0yIC1tYWxpZ24tanVtcHM9MiAtbWFsaWduLWZ1bmN0aW9ucz0yIC1vIC90bXAvZmlsZUcx
MFlRSSAvdG1wL2ZpbGVSQWp3eVcuYyAtbG1sdG9uIC1sbSAtbGdtcAogICAvdG1wL2ZpbGVHMTBZ
UUkgL3RtcC9maWxlaWQwYnYzCiAgIGluZmVyIHN0YXJ0aW5nCiAgICAgIHVuaWZpY2F0aW9uIHN0
YXJ0aW5nCiAgICAgIHVuaWZpY2F0aW9uIGZpbmlzaGVkIGluIDE1Ljg0MAogICAgICBmaW5pc2gg
aW5mZXIgc3RhcnRpbmcKICAgICAgZmluaXNoIGluZmVyIGZpbmlzaGVkIGluIDg5Ljg5MwogICBp
bmZlciBmaW5pc2hlZCBpbiAxMDcuNDE1CiAgIHhtbC51bnNpbXBsaWZpZWQgc2l6ZSBpcyB+MSBi
eXRlcwogICB0eXBlQ2hlY2sgc3RhcnRpbmcKICAgdHlwZUNoZWNrIGZpbmlzaGVkIGluIDcuNDk3
CiAgIGluZmVyIHNpbXBsaWZ5IHN0YXJ0aW5nCiAgIGluZmVyIHNpbXBsaWZ5IGZpbmlzaGVkIGlu
IDIyLjAzNwogICB4bWwgc2l6ZSBpcyB+MSBieXRlcwogICB0eXBlQ2hlY2sgc3RhcnRpbmcKICAg
dHlwZUNoZWNrIGZpbmlzaGVkIGluIDUuMDExCiAgIHNpemUgPSA3NjI0OQogICBudW0gdHlwZXMg
aW4gcHJvZ3JhbSA9IDE1ODA3CiAgIG51bSB0eXBlcyBpbiB0YWJsZSA9IDMxOTQ3CiAgIGhhc2gg
dGFibGUgc2l6ZSBpcyB+MSBieXRlcwogICBtb25vIHN0YXJ0aW5nCiAgIG1vbm8gZmluaXNoZWQg
aW4gNTkuMzExCiAgIG1vbm8udW5zaW1wbGlmaWVkIHNpemUgaXMgfjEgYnl0ZXMKICAgdHlwZUNo
ZWNrIHN0YXJ0aW5nCiAgIHR5cGVDaGVjayBmaW5pc2hlZCBpbiA1LjQ0MwogICBtb25vIHNpbXBs
aWZ5IHN0YXJ0aW5nCiAgIG1vbm8gc2ltcGxpZnkgZmluaXNoZWQgaW4gMC4wMDAKICAgbW9ubyBz
aXplIGlzIH4xIGJ5dGVzCiAgIHR5cGVDaGVjayBzdGFydGluZwogICB0eXBlQ2hlY2sgZmluaXNo
ZWQgaW4gNy40MzkKICAgc2l6ZSA9IDE2ODUyMAogICBudW0gdHlwZXMgaW4gcHJvZ3JhbSA9IDIz
MzkyCiAgIG51bSB0eXBlcyBpbiB0YWJsZSA9IDU2NDgyCiAgIGhhc2ggdGFibGUgc2l6ZSBpcyB+
MSBieXRlcwogICBpbXBsZW1lbnQgZXhjZXB0aW9ucyBzdGFydGluZwogICBpbXBsZW1lbnQgZXhj
ZXB0aW9ucyBmaW5pc2hlZCBpbiAyLjMxMwogICBzeG1sLnVuc2ltcGxpZmllZCBzaXplIGlzIH4x
IGJ5dGVzCiAgIHR5cGVDaGVjayBzdGFydGluZwogICB0eXBlQ2hlY2sgZmluaXNoZWQgaW4gNy45
MDUKICAgaW1wbGVtZW50IGV4Y2VwdGlvbnMgc2ltcGxpZnkgc3RhcnRpbmcKICAgaW1wbGVtZW50
IGV4Y2VwdGlvbnMgc2ltcGxpZnkgZmluaXNoZWQgaW4gMzAuNzcyCiAgIHN4bWwgc2l6ZSBpcyB+
MSBieXRlcwogICB0eXBlQ2hlY2sgc3RhcnRpbmcKICAgdHlwZUNoZWNrIGZpbmlzaGVkIGluIDQu
Mzc3CiAgIHBvbHl2YXJpYW5jZSBzdGFydGluZwogICBwb2x5dmFyaWFuY2UgZmluaXNoZWQgaW4g
MC4wMDAKICAgc3htbC5wb2x5IHNpemUgaXMgfjEgYnl0ZXMKICAgc2l6ZSA9IDEyODI2OQogICBu
dW0gdHlwZXMgaW4gcHJvZ3JhbSA9IDEwNTA0CiAgIG51bSB0eXBlcyBpbiB0YWJsZSA9IDU2ODgy
CiAgIGhhc2ggdGFibGUgc2l6ZSBpcyB+MSBieXRlcwogICBjbG9zdXJlIGNvbnZlcnQgc3RhcnRp
bmcKICAgICAgZmxvdyBhbmFseXNpcyBzdGFydGluZwogICAgICBmbG93IGFuYWx5c2lzIGZpbmlz
aGVkIGluIDguOTI5CiAgICAgIGZsb3cgc2l6ZSBpcyB+MSBieXRlcwogICAgICBmcmVlIHZhcmlh
YmxlcyBzdGFydGluZwogICAgICBmcmVlIHZhcmlhYmxlcyBmaW5pc2hlZCBpbiAzLjY2NAogICAg
ICBnbG9iYWxpemUgc3RhcnRpbmcKICAgICAgZ2xvYmFsaXplIGZpbmlzaGVkIGluIDAuODAyCiAg
ICAgIGNvbnZlcnQgc3RhcnRpbmcKICAgICAgY29udmVydCBmaW5pc2hlZCBpbiA5Ny4xMzUKICAg
Y2xvc3VyZSBjb252ZXJ0IGZpbmlzaGVkIGluIDExNS41NzMKICAgY3BzLnVuc2ltcGxpZmllZCBz
aXplIGlzIH4xIGJ5dGVzCiAgIHR5cGVDaGVjayBzdGFydGluZwogICAgICBjaGVja1Njb3BlcyBz
dGFydGluZwogICAgICBjaGVja1Njb3BlcyBmaW5pc2hlZCBpbiA3LjUzNgogICAgICBpbmZlckhh
bmRsZXJzIHN0YXJ0aW5nCiAgICAgIGluZmVySGFuZGxlcnMgZmluaXNoZWQgaW4gNy44ODUKICAg
dHlwZUNoZWNrIGZpbmlzaGVkIGluIDQyLjQ0MQogICBjbG9zdXJlIGNvbnZlcnQgc2ltcGxpZnkg
c3RhcnRpbmcKICAgICAgc2ltcGxpZnkgc3RhcnRpbmcKCSBudW0gZnVuY3Rpb25zIDk3NTkKCSBu
dW0gbG9jYWwgZnVuY3Rpb25zIDk1NjMzCgkgbnVtIHByaW1FeHBzIDExMTc4NAoJIHJlbW92ZSB1
bnVzZWQgZnVuY3Rpb25zIHN0YXJ0aW5nCgkgcmVtb3ZlIHVudXNlZCBmdW5jdGlvbnMgZmluaXNo
ZWQgaW4gMC40MDgKCSByZW1vdmUgdW51c2VkIGdsb2JhbHMgc3RhcnRpbmcKCSByZW1vdmUgdW51
c2VkIGdsb2JhbHMgZmluaXNoZWQgaW4gMi41MTkKCSByZW1vdmUgdW51c2VkIGNvbnN0cnVjdG9y
cyBzdGFydGluZwoJIHJlbW92ZSB1bnVzZWQgY29uc3RydWN0b3JzIGZpbmlzaGVkIGluIDUuMjk4
CgkgbnVtIGZ1bmN0aW9ucyA4ODE4CgkgbnVtIGxvY2FsIGZ1bmN0aW9ucyA1MTYyMgoJIG51bSBw
cmltRXhwcyAxMDA0ODYKCSB0eXBlQ2hlY2sgc3RhcnRpbmcKCSAgICBjaGVja1Njb3BlcyBzdGFy
dGluZwoJICAgIGNoZWNrU2NvcGVzIGZpbmlzaGVkIGluIDMuNTk4CgkgICAgaW5mZXJIYW5kbGVy
cyBzdGFydGluZwoJICAgIGluZmVySGFuZGxlcnMgZmluaXNoZWQgaW4gNC4yMzEKCSB0eXBlQ2hl
Y2sgZmluaXNoZWQgaW4gMjUuMjA3CgkgbGVhZiBpbmxpbmUgc3RhcnRpbmcKCSAgICBpbmxpbmUg
c3RhcnRpbmcKCSAgICBpbmxpbmUgZmluaXNoZWQgaW4gMjIuNTczCgkgbGVhZiBpbmxpbmUgZmlu
aXNoZWQgaW4gMjIuNTc0CgkgbnVtIGZ1bmN0aW9ucyA2NzA5CgkgbnVtIGxvY2FsIGZ1bmN0aW9u
cyA0MTQyNQoJIG51bSBwcmltRXhwcyAxMDEyNDAKCSB0eXBlQ2hlY2sgc3RhcnRpbmcKCSAgICBj
aGVja1Njb3BlcyBzdGFydGluZwoJICAgIGNoZWNrU2NvcGVzIGZpbmlzaGVkIGluIDMuMTkwCgkg
ICAgaW5mZXJIYW5kbGVycyBzdGFydGluZwoJICAgIGluZmVySGFuZGxlcnMgZmluaXNoZWQgaW4g
My40NDkKCSB0eXBlQ2hlY2sgZmluaXNoZWQgaW4gMjAuODAyCgkgY29udGlmeSBzdGFydGluZwoJ
IGNvbnRpZnkgZmluaXNoZWQgaW4gMTcuNTQzCgkgbnVtIGZ1bmN0aW9ucyAzNjMwCgkgbnVtIGxv
Y2FsIGZ1bmN0aW9ucyA0MTI4OQoJIG51bSBwcmltRXhwcyA5OTc0MgoJIHR5cGVDaGVjayBzdGFy
dGluZwoJICAgIGNoZWNrU2NvcGVzIHN0YXJ0aW5nCgkgICAgY2hlY2tTY29wZXMgZmluaXNoZWQg
aW4gMi45NjkKCSAgICBpbmZlckhhbmRsZXJzIHN0YXJ0aW5nCgkgICAgaW5mZXJIYW5kbGVycyBm
aW5pc2hlZCBpbiAzLjQwMgoJIHR5cGVDaGVjayBmaW5pc2hlZCBpbiAyMC4wNjgKCSBjb25zdGFu
dCBwcm9wYWdhdGlvbiBzdGFydGluZwoJICAgIGZpeGVkIHBvaW50IHN0YXJ0aW5nCgkgICAgZml4
ZWQgcG9pbnQgZmluaXNoZWQgaW4gMjcuODE5CgkgY29uc3RhbnQgcHJvcGFnYXRpb24gZmluaXNo
ZWQgaW4gODMuMjU0CgkgbnVtIGZ1bmN0aW9ucyAzNjMwCgkgbnVtIGxvY2FsIGZ1bmN0aW9ucyA0
MDkwOQoJIG51bSBwcmltRXhwcyA3NTk0NgoJIHR5cGVDaGVjayBzdGFydGluZwoJICAgIGNoZWNr
U2NvcGVzIHN0YXJ0aW5nCgkgICAgY2hlY2tTY29wZXMgZmluaXNoZWQgaW4gMi44MjAKCSAgICBp
bmZlckhhbmRsZXJzIHN0YXJ0aW5nCgkgICAgaW5mZXJIYW5kbGVycyBmaW5pc2hlZCBpbiAzLjc2
OQoJIHR5cGVDaGVjayBmaW5pc2hlZCBpbiAxOS40MjcKCSB1c2VsZXNzIHN0YXJ0aW5nCgkgICAg
YW5hbHl6ZSBzdGFydGluZwoJICAgIGFuYWx5emUgZmluaXNoZWQgaW4gNDQuMTQ2CgkgdXNlbGVz
cyBmaW5pc2hlZCBpbiA4MC41NTAKCSBudW0gZnVuY3Rpb25zIDM2MzAKCSBudW0gbG9jYWwgZnVu
Y3Rpb25zIDM5NDExCgkgbnVtIHByaW1FeHBzIDY4ODY3CgkgdHlwZUNoZWNrIHN0YXJ0aW5nCgkg
ICAgY2hlY2tTY29wZXMgc3RhcnRpbmcKCSAgICBjaGVja1Njb3BlcyBmaW5pc2hlZCBpbiAzLjY4
MwoJICAgIGluZmVySGFuZGxlcnMgc3RhcnRpbmcKCSAgICBpbmZlckhhbmRsZXJzIGZpbmlzaGVk
IGluIDMuNTk4CgkgdHlwZUNoZWNrIGZpbmlzaGVkIGluIDE4Ljk5MwoJIHNpbXBsaWZ5IHR5cGVz
IHN0YXJ0aW5nCgkgICAgZml4ZWQgcG9pbnQgc3RhcnRpbmcKCSAgICBmaXhlZCBwb2ludCBmaW5p
c2hlZCBpbiAxLjkxOAoJIHNpbXBsaWZ5IHR5cGVzIGZpbmlzaGVkIGluIDIzLjI0NAoJIG51bSBm
dW5jdGlvbnMgMzYzMAoJIG51bSBsb2NhbCBmdW5jdGlvbnMgMzA4MjYKCSBudW0gcHJpbUV4cHMg
NjMxNDAKCSB0eXBlQ2hlY2sgc3RhcnRpbmcKCSAgICBjaGVja1Njb3BlcyBzdGFydGluZwoJICAg
IGNoZWNrU2NvcGVzIGZpbmlzaGVkIGluIDEuODM4CgkgICAgaW5mZXJIYW5kbGVycyBzdGFydGlu
ZwoJICAgIGluZmVySGFuZGxlcnMgZmluaXNoZWQgaW4gMi40NzAKCSB0eXBlQ2hlY2sgZmluaXNo
ZWQgaW4gMTMuODQ1CgkgcG9seSBlcXVhbCBzdGFydGluZwoJIHBvbHkgZXF1YWwgZmluaXNoZWQg
aW4gMC42MzUKCSBudW0gZnVuY3Rpb25zIDM2MzQKCSBudW0gbG9jYWwgZnVuY3Rpb25zIDMxMjQx
CgkgbnVtIHByaW1FeHBzIDYzNDMwCgkgdHlwZUNoZWNrIHN0YXJ0aW5nCgkgICAgY2hlY2tTY29w
ZXMgc3RhcnRpbmcKCSAgICBjaGVja1Njb3BlcyBmaW5pc2hlZCBpbiAxLjc0MQoJICAgIGluZmVy
SGFuZGxlcnMgc3RhcnRpbmcKCSAgICBpbmZlckhhbmRsZXJzIGZpbmlzaGVkIGluIDIuNjQ0Cgkg
dHlwZUNoZWNrIGZpbmlzaGVkIGluIDE1LjM1MgoJIGNvbnRpZnkgc3RhcnRpbmcKCSBjb250aWZ5
IGZpbmlzaGVkIGluIDE0LjAzNQoJIG51bSBmdW5jdGlvbnMgMzU2NwoJIG51bSBsb2NhbCBmdW5j
dGlvbnMgMzEyMTkKCSBudW0gcHJpbUV4cHMgNjMzMDkKCSB0eXBlQ2hlY2sgc3RhcnRpbmcKCSAg
ICBjaGVja1Njb3BlcyBzdGFydGluZwoJICAgIGNoZWNrU2NvcGVzIGZpbmlzaGVkIGluIDEuNzA1
CgkgICAgaW5mZXJIYW5kbGVycyBzdGFydGluZwoJICAgIGluZmVySGFuZGxlcnMgZmluaXNoZWQg
aW4gMi43NzgKCSB0eXBlQ2hlY2sgZmluaXNoZWQgaW4gMTUuMDEyCgkgaW5saW5lIHN0YXJ0aW5n
CgkgaW5saW5lIGZpbmlzaGVkIGluIDM4Ljc3OQoJIG51bSBmdW5jdGlvbnMgMTE4NQoJIG51bSBs
b2NhbCBmdW5jdGlvbnMgNDM0ODcKCSBudW0gcHJpbUV4cHMgMTAzMjU3CgkgdHlwZUNoZWNrIHN0
YXJ0aW5nCgkgICAgY2hlY2tTY29wZXMgc3RhcnRpbmcKCSAgICBjaGVja1Njb3BlcyBmaW5pc2hl
ZCBpbiAzLjI2MAoJICAgIGluZmVySGFuZGxlcnMgc3RhcnRpbmcKCSAgICBpbmZlckhhbmRsZXJz
IGZpbmlzaGVkIGluIDMuNTgzCgkgdHlwZUNoZWNrIGZpbmlzaGVkIGluIDIyLjA1NwoJIHJhaXNl
IHRvIGp1bXAgc3RhcnRpbmcKCSAgICBpbmZlckhhbmRsZXJzIHN0YXJ0aW5nCgkgICAgaW5mZXJI
YW5kbGVycyBmaW5pc2hlZCBpbiAzLjU0MwoJIHJhaXNlIHRvIGp1bXAgZmluaXNoZWQgaW4gNS4w
NzMKCSBudW0gZnVuY3Rpb25zIDExODUKCSBudW0gbG9jYWwgZnVuY3Rpb25zIDQzNDg3CgkgbnVt
IHByaW1FeHBzIDEwMzI1NwoJIHR5cGVDaGVjayBzdGFydGluZwoJICAgIGNoZWNrU2NvcGVzIHN0
YXJ0aW5nCgkgICAgY2hlY2tTY29wZXMgZmluaXNoZWQgaW4gMi43OTIKCSAgICBpbmZlckhhbmRs
ZXJzIHN0YXJ0aW5nCgkgICAgaW5mZXJIYW5kbGVycyBmaW5pc2hlZCBpbiAzLjUxOQoJIHR5cGVD
aGVjayBmaW5pc2hlZCBpbiAyMS40NTgKCSBjb250aWZ5IHN0YXJ0aW5nCgkgY29udGlmeSBmaW5p
c2hlZCBpbiAxNy42MjIKCSBudW0gZnVuY3Rpb25zIDExNzYKCSBudW0gbG9jYWwgZnVuY3Rpb25z
IDQzMDQ5CgkgbnVtIHByaW1FeHBzIDEwMzIyOAoJIHR5cGVDaGVjayBzdGFydGluZwoJICAgIGNo
ZWNrU2NvcGVzIHN0YXJ0aW5nCgkgICAgY2hlY2tTY29wZXMgZmluaXNoZWQgaW4gMi40MjgKCSAg
ICBpbmZlckhhbmRsZXJzIHN0YXJ0aW5nCgkgICAgaW5mZXJIYW5kbGVycyBmaW5pc2hlZCBpbiAz
LjYwOAoJIHR5cGVDaGVjayBmaW5pc2hlZCBpbiAyMy4wMzgKCSBpbnRyb2R1Y2UgbG9vcHMgc3Rh
cnRpbmcKCSBpbnRyb2R1Y2UgbG9vcHMgZmluaXNoZWQgaW4gMC4wOTkKCSBsb29wIGludmFyaWFu
dCBzdGFydGluZwoJIGxvb3AgaW52YXJpYW50IGZpbmlzaGVkIGluIDE5LjAyOQoJIG51bSBmdW5j
dGlvbnMgMTE3NgoJIG51bSBsb2NhbCBmdW5jdGlvbnMgNDMwMTgKCSBudW0gcHJpbUV4cHMgMTAx
ODg3CgkgdHlwZUNoZWNrIHN0YXJ0aW5nCgkgICAgY2hlY2tTY29wZXMgc3RhcnRpbmcKCSAgICBj
aGVja1Njb3BlcyBmaW5pc2hlZCBpbiAyLjUwNQoJICAgIGluZmVySGFuZGxlcnMgc3RhcnRpbmcK
CSAgICBpbmZlckhhbmRsZXJzIGZpbmlzaGVkIGluIDMuNDkwCgkgdHlwZUNoZWNrIGZpbmlzaGVk
IGluIDIxLjI4NwoJIGZsYXR0ZW4gc3RhcnRpbmcKCSAgICBhbmFseXplIHN0YXJ0aW5nCgkgICAg
YW5hbHl6ZSBmaW5pc2hlZCBpbiAxLjIzMQoJIGZsYXR0ZW4gZmluaXNoZWQgaW4gMzAuODQwCgkg
bnVtIGZ1bmN0aW9ucyAxMTc2CgkgbnVtIGxvY2FsIGZ1bmN0aW9ucyA0MzA2MgoJIG51bSBwcmlt
RXhwcyA3MTc0NwoJIHR5cGVDaGVjayBzdGFydGluZwoJICAgIGNoZWNrU2NvcGVzIHN0YXJ0aW5n
CgkgICAgY2hlY2tTY29wZXMgZmluaXNoZWQgaW4gMi4zNjMKCSAgICBpbmZlckhhbmRsZXJzIHN0
YXJ0aW5nCgkgICAgaW5mZXJIYW5kbGVycyBmaW5pc2hlZCBpbiA0Ljg1MgoJIHR5cGVDaGVjayBm
aW5pc2hlZCBpbiAyMC44ODYKCSByZWR1bmRhbnQgc3RhcnRpbmcKCSByZWR1bmRhbnQgZmluaXNo
ZWQgaW4gNi4zNDgKCSBudW0gZnVuY3Rpb25zIDExNzYKCSBudW0gbG9jYWwgZnVuY3Rpb25zIDQz
MDYyCgkgbnVtIHByaW1FeHBzIDcxNzQ3CgkgdHlwZUNoZWNrIHN0YXJ0aW5nCgkgICAgY2hlY2tT
Y29wZXMgc3RhcnRpbmcKCSAgICBjaGVja1Njb3BlcyBmaW5pc2hlZCBpbiAyLjYwOAoJICAgIGlu
ZmVySGFuZGxlcnMgc3RhcnRpbmcKCSAgICBpbmZlckhhbmRsZXJzIGZpbmlzaGVkIGluIDMuNDc5
CgkgdHlwZUNoZWNrIGZpbmlzaGVkIGluIDE5LjcyMwoJIHJlbW92ZSB1bnVzZWQgZnVuY3Rpb25z
IHN0YXJ0aW5nCgkgcmVtb3ZlIHVudXNlZCBmdW5jdGlvbnMgZmluaXNoZWQgaW4gMC4xMjEKCSBy
ZW1vdmUgdW51c2VkIGdsb2JhbHMgc3RhcnRpbmcKCSByZW1vdmUgdW51c2VkIGdsb2JhbHMgZmlu
aXNoZWQgaW4gMC42MDUKCSByZW1vdmUgdW51c2VkIGNvbnN0cnVjdG9ycyBzdGFydGluZwoJIHJl
bW92ZSB1bnVzZWQgY29uc3RydWN0b3JzIGZpbmlzaGVkIGluIDEuMTg2CgkgbnVtIGZ1bmN0aW9u
cyAxMTY0CgkgbnVtIGxvY2FsIGZ1bmN0aW9ucyA0MjYxNAoJIG51bSBwcmltRXhwcyA2OTY3NAoJ
IHR5cGVDaGVjayBzdGFydGluZwoJICAgIGNoZWNrU2NvcGVzIHN0YXJ0aW5nCgkgICAgY2hlY2tT
Y29wZXMgZmluaXNoZWQgaW4gMy45NTIKCSAgICBpbmZlckhhbmRsZXJzIHN0YXJ0aW5nCgkgICAg
aW5mZXJIYW5kbGVycyBmaW5pc2hlZCBpbiAzLjQyOQoJIHR5cGVDaGVjayBmaW5pc2hlZCBpbiAy
MC42OTUKICAgICAgc2ltcGxpZnkgZmluaXNoZWQgaW4gNzE2LjA2OQogICBjbG9zdXJlIGNvbnZl
cnQgc2ltcGxpZnkgZmluaXNoZWQgaW4gNzE2LjA2OQogICBjcHMgc2l6ZSBpcyB+MSBieXRlcwog
ICB0eXBlQ2hlY2sgc3RhcnRpbmcKICAgICAgY2hlY2tTY29wZXMgc3RhcnRpbmcKICAgICAgY2hl
Y2tTY29wZXMgZmluaXNoZWQgaW4gMi40MzUKICAgICAgaW5mZXJIYW5kbGVycyBzdGFydGluZwog
ICAgICBpbmZlckhhbmRsZXJzIGZpbmlzaGVkIGluIDMuNDE0CiAgIHR5cGVDaGVjayBmaW5pc2hl
ZCBpbiAxOS4zNDcKICAgYmFja2VuZCBzdGFydGluZwogICAgICBjb21wdXRlIHJlcHJlc2VudGF0
aW9ucyBzdGFydGluZwogICAgICBjb21wdXRlIHJlcHJlc2VudGF0aW9ucyBmaW5pc2hlZCBpbiAw
LjE0MwogICAgICBpbmZlckhhbmRsZXJzIHN0YXJ0aW5nCiAgICAgIGluZmVySGFuZGxlcnMgZmlu
aXNoZWQgaW4gMy42MTcKICAgICAgY2h1bmtpZnkgc3RhcnRpbmcKICAgICAgY2h1bmtpZnkgZmlu
aXNoZWQgaW4gMTEuMTQwCiAgICAgIGFsbG9jYXRlIHJlZ2lzdGVycyBzdGFydGluZwogICAgICBh
bGxvY2F0ZSByZWdpc3RlcnMgZmluaXNoZWQgaW4gNTQuNjk1CiAgICAgIHJlZyBzaXplIGlzIH4x
IGJ5dGVzCiAgIGJhY2tlbmQgZmluaXNoZWQgaW4gMTAzLjIzNAogICBjIHNpemUgaXMgfjEgYnl0
ZXMKICAgZW1pdCBDIHN0YXJ0aW5nCiAgIGVtaXQgQyBmaW5pc2hlZCBpbiA0Mi44MjMKICAgbnVt
UGVla3MgPSA1NzMzNzU4MAogICBhdmVyYWdlIHBvc2l0aW9uIGluIHByb3BlcnR5IGxpc3QgPSAw
LjU3OQogICBudW1QZWVrcyA9IDU2MzI5OTgKICAgYXZlcmFnZSBwb3NpdGlvbiBpbiBidWNrZXQg
PSAzLjU4NApjb21waWxlIGZpbmlzaGVkIGluIDE0MjYuMzczCjEzNzMuMTJ1c2VyIDM1LjUwc3lz
dGVtIDIzOjQ2LjY2ZWxhcHNlZCA5OCVDUFUgKDBhdmd0ZXh0KzBhdmdkYXRhIDBtYXhyZXNpZGVu
dClrCjBpbnB1dHMrMG91dHB1dHMgKDQzMTRtYWpvcisxMTYxNTI5bWlub3IpcGFnZWZhdWx0cyAw
c3dhcHMKKyBscyAtbCBtbHRvbi5jCi1ydy1yLS1yLS0gICAxIHN3ZWVrcyAgIHNvZnRlbmcgIDEw
ODMyODgxIEp1bCAxMSAxMzo1MCBtbHRvbi5jCisgdGltZSAvaG9tZS9zd2Vla3MvbWx0b24vYmlu
L21sdG9uIC12IC1pbmxpbmUgMzAgLW5vLXBvbHl2YXJpYW5jZSBtbHRvbi5jCmdjYyAtYyAtRE5P
REVCVUcgLUkvaG9tZS9zd2Vla3MvbWx0b24vaW5jbHVkZSAtTC9ob21lL3N3ZWVrcy9tbHRvbi9s
aWIgLU8xIC13IC1mb21pdC1mcmFtZS1wb2ludGVyIC1mbm8tc3RyZW5ndGgtcmVkdWNlIC1tNDg2
IC1tYWxpZ24tbG9vcHM9MiAtbWFsaWduLWp1bXBzPTIgLW1hbGlnbi1mdW5jdGlvbnM9MiAtbyAv
dG1wL2ZpbGVtNUV0bzAubyBtbHRvbi5jCmdjYyAtRE5PREVCVUcgLUkvaG9tZS9zd2Vla3MvbWx0
b24vaW5jbHVkZSAtTC9ob21lL3N3ZWVrcy9tbHRvbi9saWIgLU8xIC13IC1mb21pdC1mcmFtZS1w
b2ludGVyIC1mbm8tc3RyZW5ndGgtcmVkdWNlIC1tNDg2IC1tYWxpZ24tbG9vcHM9MiAtbWFsaWdu
LWp1bXBzPTIgLW1hbGlnbi1mdW5jdGlvbnM9MiAtbyBtbHRvbiAvdG1wL2ZpbGVtNUV0bzAubyAt
bG1sdG9uIC1sbSAtbGdtcAoxMTQ4LjI2dXNlciAxNS4xMHN5c3RlbSAxOTozOS40M2VsYXBzZWQg
OTglQ1BVICgwYXZndGV4dCswYXZnZGF0YSAwbWF4cmVzaWRlbnQpawowaW5wdXRzKzBvdXRwdXRz
ICgyMzAzN21ham9yKzM5NDY0M21pbm9yKXBhZ2VmYXVsdHMgMHN3YXBzCisgc2l6ZSBtbHRvbgog
ICB0ZXh0CSAgIGRhdGEJICAgIGJzcwkgICAgZGVjCSAgICBoZXgJZmlsZW5hbWUKMzc2ODU4Mwkg
NjI1NDI0CSAgMTU4NTYJNDQwOTg2MwkgNDM0YTA3CW1sdG9uCisgZWNobyBHMSBwcm9jZXNzaW5n
IGJhc2lzIGxpYnJhcnkKRzEgcHJvY2Vzc2luZyBiYXNpcyBsaWJyYXJ5CisgdGltZSAuL21sdG9u
IEBNTHRvbiBnYy1zdW1tYXJ5IC0tIC9ob21lL3N3ZWVrcy9tbHRvbiB3b3JsZCBmYWxzZQptYXgg
c2VtaXNwYWNlIHNpemUoYnl0ZXMpOiAyNiw5NjMsOTY4CkdDIHRpbWUobXMpOiAxLDE3MCAoMTIu
NyUpCm1heFBhdXNlKG1zKTogMjIwCm51bWJlciBvZiBHQ3M6IDEyCmJ5dGVzIGFsbG9jYXRlZDog
MTIyLDcxOSw4MjQKYnl0ZXMgY29waWVkOiAyMiw2ODIsMTMyCm1heCBieXRlcyBsaXZlOiAzLDc5
MSw4NTYKOC40OHVzZXIgMS4wN3N5c3RlbSAwOjExLjMwZWxhcHNlZCA4NCVDUFUgKDBhdmd0ZXh0
KzBhdmdkYXRhIDBtYXhyZXNpZGVudClrCjBpbnB1dHMrMG91dHB1dHMgKDE2NjBtYWpvciszODk5
Mm1pbm9yKXBhZ2VmYXVsdHMgMHN3YXBzCisgbHMgLWwgd29ybGQubWx0b24KLXJ3LXItLXItLSAg
IDEgc3dlZWtzICAgc29mdGVuZyAgIDM0NzE1MzMgSnVsIDExIDE0OjEwIHdvcmxkLm1sdG9uCisg
ZWNobyBHMjogY29tcGlsaW5nIG1sdG9uIHVzaW5nIEcxIHZlcnNpb24gb2YgbWx0b24KRzI6IGNv
bXBpbGluZyBtbHRvbiB1c2luZyBHMSB2ZXJzaW9uIG9mIG1sdG9uCisgY2QgL2hvbWUvc3dlZWtz
L21sdG9uL3NlbGYtY29tcGlsZS8yMDAwLTA3LTExLTEzOjI3OjA2CisgbWtkaXIgRzIKKyBjZCBH
MgorIGxuIC1zIC4uL21sdG9uLnNtbCAuCisgdGltZSAvaG9tZS9zd2Vla3MvbWx0b24vc2VsZi1j
b21waWxlLzIwMDAtMDctMTEtMTM6Mjc6MDYvRzEvbWx0b24gQE1MdG9uIG1heC1oZWFwIDM1MG0g
bG9hZC13b3JsZCAvaG9tZS9zd2Vla3MvbWx0b24vc2VsZi1jb21waWxlLzIwMDAtMDctMTEtMTM6
Mjc6MDYvRzEvd29ybGQubWx0b24gZ2Mtc3VtbWFyeSAtLSAvaG9tZS9zd2Vla3MvbWx0b24gZ2Nj
IC13IC1mb21pdC1mcmFtZS1wb2ludGVyIC1mbm8tc3RyZW5ndGgtcmVkdWNlIC1tNDg2IC1tYWxp
Z24tbG9vcHM9MiAtbWFsaWduLWp1bXBzPTIgLW1hbGlnbi1mdW5jdGlvbnM9MiBFTkQgLUkvaG9t
ZS9zd2Vla3MvbWx0b24vaW5jbHVkZSAtaW1sdG9uLmggLUwvaG9tZS9zd2Vla3MvbWx0b24vbGli
IC1sZ21wIC1sbSAtdiAtaW5saW5lIDMwIC1uby1wb2x5dmFyaWFuY2UgLUMgbWx0b24uc21sCmNv
bXBpbGUgc3RhcnRpbmcKICAgYWNjdW0gc2l6ZSBpcyAyLDY5NiwwMzIgYnl0ZXMKICAgc3VmZml4
IHNpemUgaXMgMjcyIGJ5dGVzCiAgIGNvbnN0cnVjdG9ycyBzaXplIGlzIDEsMTUyIGJ5dGVzCiAg
IE1MdG9uIDIwMDAtMDctMDggY3JlYXRlZCB0aGlzIGZpbGUgb24gVHVlIEp1bCAxMSAxNDoxMDo0
NCAyMDAwLgogICBEbyBub3QgZWRpdCB0aGlzIGZpbGUuCiAgIEZsYWcgc2V0dGluZ3M6IAogICAg
ICBhdXg6IGZhbHNlCiAgICAgIGNhbkRlZnVuY3Rvcml6ZTogZmFsc2UKICAgICAgY2h1bms6IGNv
YWxlc2NlIDIwMDAKICAgICAgZGVmaW5lczogW05PREVCVUddCiAgICAgIGZpeGVkIGhlYXA6IE5v
bmUKICAgICAgaW5jbHVkZXM6IFttbHRvbi5oXQogICAgICBpbmxpbmU6IE5vblJlY3Vyc2l2ZSBT
b21lKDMwKQogICAgICBpbmxpbmUgcm91bmRzOiAxCiAgICAgIGlucHV0IGZpbGU6IG1sdG9uLnNt
bAogICAgICBpbnN0cnVtZW50OiBmYWxzZQogICAgICBpbnN0cnVtZW50IFN4bWw6IGZhbHNlCiAg
ICAgIGtlZXAgQ3BzOiBmYWxzZQogICAgICBtYXRjaDogbGVmdCB0byByaWdodAogICAgICBtZXNz
YWdlczogdHJ1ZQogICAgICBtb2RlOiBjb21waWxlCiAgICAgIHBvbHl2YXJpYW5jZTogTm9uZQog
ICAgICBwcmludCBhdCBmdW4gZW50cnk6IGZhbHNlCiAgICAgIHByb2ZpbGU6IGZhbHNlCiAgIHBh
cnNlIHN0YXJ0aW5nCiAgIHBhcnNlIGZpbmlzaGVkIGluIDIxLjY2NwogICBhc3Qgc2l6ZSBpcyAx
Nyw1OTMsMTgwIGJ5dGVzCiAgIHNpemUgPSAxMTMxNTMKICAgZWxhYm9yYXRlIHN0YXJ0aW5nCiAg
IGVsYWJvcmF0ZSBmaW5pc2hlZCBpbiA1OC45MTcKICAgY29yZS1tbCBzaXplIGlzIDc3LDI0Miw1
MDggYnl0ZXMKICAgbnVtUGVla3MgPSAxNzA3Mzk0CiAgIGF2ZXJhZ2UgcG9zaXRpb24gaW4gYnVj
a2V0ID0gMC4yNDIKICAgZGVhZCBzdGFydGluZwogICBkZWFkIGZpbmlzaGVkIGluIDAuMTI0CiAg
IGJhc2lzIHNpemUgaXMgNzA2LDA3MiBieXRlcwogICBzaXplID0gMTE5MTQ4CiAgIGdjYyAtRE5P
REVCVUcgLUkvaG9tZS9zd2Vla3MvbWx0b24vaW5jbHVkZSAtTC9ob21lL3N3ZWVrcy9tbHRvbi9s
aWIgLU8xIC13IC1mb21pdC1mcmFtZS1wb2ludGVyIC1mbm8tc3RyZW5ndGgtcmVkdWNlIC1tNDg2
IC1tYWxpZ24tbG9vcHM9MiAtbWFsaWduLWp1bXBzPTIgLW1hbGlnbi1mdW5jdGlvbnM9MiAtbyAv
dG1wL2ZpbGVzTndINFMgL3RtcC9maWxla1dnaEl3LmMgLWxtbHRvbiAtbG0gLWxnbXAKICAgL3Rt
cC9maWxlc053SDRTIC90bXAvZmlsZTN6TWFRVQogICBpbmZlciBzdGFydGluZwogICAgICB1bmlm
aWNhdGlvbiBzdGFydGluZwogICAgICB1bmlmaWNhdGlvbiBmaW5pc2hlZCBpbiA1LjY2MgogICAg
ICBmaW5pc2ggaW5mZXIgc3RhcnRpbmcKICAgICAgZmluaXNoIGluZmVyIGZpbmlzaGVkIGluIDMx
Ljk0MAogICBpbmZlciBmaW5pc2hlZCBpbiAzOC4xODkKICAgeG1sLnVuc2ltcGxpZmllZCBzaXpl
IGlzIDI5LDYyMiwyNDggYnl0ZXMKICAgaW5mZXIgc2ltcGxpZnkgc3RhcnRpbmcKICAgaW5mZXIg
c2ltcGxpZnkgZmluaXNoZWQgaW4gMy44ODEKICAgeG1sIHNpemUgaXMgMTMsMjIzLDQwMCBieXRl
cwogICBzaXplID0gNzYyNDkKICAgbnVtIHR5cGVzIGluIHByb2dyYW0gPSAxNTgwNwogICBudW0g
dHlwZXMgaW4gdGFibGUgPSAzMDUwMQogICBoYXNoIHRhYmxlIHNpemUgaXMgMCBieXRlcwogICBt
b25vIHN0YXJ0aW5nCiAgIG1vbm8gZmluaXNoZWQgaW4gOS45NjcKICAgbW9uby51bnNpbXBsaWZp
ZWQgc2l6ZSBpcyAyNSwxNTUsNDYwIGJ5dGVzCiAgIG1vbm8gc2ltcGxpZnkgc3RhcnRpbmcKICAg
bW9ubyBzaW1wbGlmeSBmaW5pc2hlZCBpbiAwLjAwMAogICBtb25vIHNpemUgaXMgMjUsMTU1LDQ2
MCBieXRlcwogICBzaXplID0gMTY4NTIwCiAgIG51bSB0eXBlcyBpbiBwcm9ncmFtID0gMjMzOTIK
ICAgbnVtIHR5cGVzIGluIHRhYmxlID0gNTM0NDQKICAgaGFzaCB0YWJsZSBzaXplIGlzIDAgYnl0
ZXMKICAgaW1wbGVtZW50IGV4Y2VwdGlvbnMgc3RhcnRpbmcKICAgaW1wbGVtZW50IGV4Y2VwdGlv
bnMgZmluaXNoZWQgaW4gMC40NDkKICAgc3htbC51bnNpbXBsaWZpZWQgc2l6ZSBpcyAyNSw4MTYs
MDg4IGJ5dGVzCiAgIGltcGxlbWVudCBleGNlcHRpb25zIHNpbXBsaWZ5IHN0YXJ0aW5nCiAgIGlt
cGxlbWVudCBleGNlcHRpb25zIHNpbXBsaWZ5IGZpbmlzaGVkIGluIDYuNTYyCiAgIHN4bWwgc2l6
ZSBpcyAxOCwzNDEsNDA0IGJ5dGVzCiAgIHBvbHl2YXJpYW5jZSBzdGFydGluZwogICBwb2x5dmFy
aWFuY2UgZmluaXNoZWQgaW4gMC4wMDAKICAgc3htbC5wb2x5IHNpemUgaXMgMTgsMzQxLDQwNCBi
eXRlcwogICBzaXplID0gMTI4MjY5CiAgIG51bSB0eXBlcyBpbiBwcm9ncmFtID0gMTA1MDQKICAg
bnVtIHR5cGVzIGluIHRhYmxlID0gNTM2OTEKICAgaGFzaCB0YWJsZSBzaXplIGlzIDAgYnl0ZXMK
ICAgY2xvc3VyZSBjb252ZXJ0IHN0YXJ0aW5nCiAgICAgIGZsb3cgYW5hbHlzaXMgc3RhcnRpbmcK
ICAgICAgZmxvdyBhbmFseXNpcyBmaW5pc2hlZCBpbiAxLjIxMgogICAgICBmbG93IHNpemUgaXMg
NCwyNTIgYnl0ZXMKICAgICAgZnJlZSB2YXJpYWJsZXMgc3RhcnRpbmcKICAgICAgZnJlZSB2YXJp
YWJsZXMgZmluaXNoZWQgaW4gMy4wMzIKICAgICAgZ2xvYmFsaXplIHN0YXJ0aW5nCiAgICAgIGds
b2JhbGl6ZSBmaW5pc2hlZCBpbiAwLjQyNgogICAgICBjb252ZXJ0IHN0YXJ0aW5nCiAgICAgIGNv
bnZlcnQgZmluaXNoZWQgaW4gMzAuNzgxCiAgIGNsb3N1cmUgY29udmVydCBmaW5pc2hlZCBpbiAz
Ni4xMjAKICAgY3BzLnVuc2ltcGxpZmllZCBzaXplIGlzIDM5LDAzMSwwMTIgYnl0ZXMKICAgY2xv
c3VyZSBjb252ZXJ0IHNpbXBsaWZ5IHN0YXJ0aW5nCiAgICAgIHNpbXBsaWZ5IHN0YXJ0aW5nCgkg
bnVtIGZ1bmN0aW9ucyA5NzU5CgkgbnVtIGxvY2FsIGZ1bmN0aW9ucyA5NTYzMwoJIG51bSBwcmlt
RXhwcyAxMTE3ODQKCSByZW1vdmUgdW51c2VkIGZ1bmN0aW9ucyBzdGFydGluZwoJIHJlbW92ZSB1
bnVzZWQgZnVuY3Rpb25zIGZpbmlzaGVkIGluIDAuMjMxCgkgcmVtb3ZlIHVudXNlZCBnbG9iYWxz
IHN0YXJ0aW5nCgkgcmVtb3ZlIHVudXNlZCBnbG9iYWxzIGZpbmlzaGVkIGluIDAuNzgzCgkgcmVt
b3ZlIHVudXNlZCBjb25zdHJ1Y3RvcnMgc3RhcnRpbmcKCSByZW1vdmUgdW51c2VkIGNvbnN0cnVj
dG9ycyBmaW5pc2hlZCBpbiAzLjMyNwoJIG51bSBmdW5jdGlvbnMgODgxOAoJIG51bSBsb2NhbCBm
dW5jdGlvbnMgNTE2MjIKCSBudW0gcHJpbUV4cHMgMTAwNDg2CgkgbGVhZiBpbmxpbmUgc3RhcnRp
bmcKCSAgICBpbmxpbmUgc3RhcnRpbmcKCSAgICBpbmxpbmUgZmluaXNoZWQgaW4gNC44MTMKCSBs
ZWFmIGlubGluZSBmaW5pc2hlZCBpbiA0LjgxNAoJIG51bSBmdW5jdGlvbnMgNjcwOQoJIG51bSBs
b2NhbCBmdW5jdGlvbnMgNDE0MjUKCSBudW0gcHJpbUV4cHMgMTAxMjQwCgkgY29udGlmeSBzdGFy
dGluZwoJIGNvbnRpZnkgZmluaXNoZWQgaW4gNS40NDUKCSBudW0gZnVuY3Rpb25zIDM2MzAKCSBu
dW0gbG9jYWwgZnVuY3Rpb25zIDQxMjg5CgkgbnVtIHByaW1FeHBzIDk5NzQyCgkgY29uc3RhbnQg
cHJvcGFnYXRpb24gc3RhcnRpbmcKCSAgICBmaXhlZCBwb2ludCBzdGFydGluZwoJICAgIGZpeGVk
IHBvaW50IGZpbmlzaGVkIGluIDQuMzk4CgkgY29uc3RhbnQgcHJvcGFnYXRpb24gZmluaXNoZWQg
aW4gMTMuNDMwCgkgbnVtIGZ1bmN0aW9ucyAzNjMwCgkgbnVtIGxvY2FsIGZ1bmN0aW9ucyA0MDkw
OQoJIG51bSBwcmltRXhwcyA3NTk0NgoJIHVzZWxlc3Mgc3RhcnRpbmcKCSAgICBhbmFseXplIHN0
YXJ0aW5nCgkgICAgYW5hbHl6ZSBmaW5pc2hlZCBpbiA3LjcyNwoJIHVzZWxlc3MgZmluaXNoZWQg
aW4gMTMuOTc5CgkgbnVtIGZ1bmN0aW9ucyAzNjMwCgkgbnVtIGxvY2FsIGZ1bmN0aW9ucyAzOTQx
MQoJIG51bSBwcmltRXhwcyA2ODg2NwoJIHNpbXBsaWZ5IHR5cGVzIHN0YXJ0aW5nCgkgICAgZml4
ZWQgcG9pbnQgc3RhcnRpbmcKCSAgICBmaXhlZCBwb2ludCBmaW5pc2hlZCBpbiAxLjAwNwoJIHNp
bXBsaWZ5IHR5cGVzIGZpbmlzaGVkIGluIDUuNDE3CgkgbnVtIGZ1bmN0aW9ucyAzNjMwCgkgbnVt
IGxvY2FsIGZ1bmN0aW9ucyAzMDgyNgoJIG51bSBwcmltRXhwcyA2MzE0MAoJIHBvbHkgZXF1YWwg
c3RhcnRpbmcKCSBwb2x5IGVxdWFsIGZpbmlzaGVkIGluIDAuMjQ0CgkgbnVtIGZ1bmN0aW9ucyAz
NjM0CgkgbnVtIGxvY2FsIGZ1bmN0aW9ucyAzMTI0MQoJIG51bSBwcmltRXhwcyA2MzQzMAoJIGNv
bnRpZnkgc3RhcnRpbmcKCSBjb250aWZ5IGZpbmlzaGVkIGluIDEuNDExCgkgbnVtIGZ1bmN0aW9u
cyAzNTY3CgkgbnVtIGxvY2FsIGZ1bmN0aW9ucyAzMTIxOQoJIG51bSBwcmltRXhwcyA2MzMwOQoJ
IGlubGluZSBzdGFydGluZwoJIGlubGluZSBmaW5pc2hlZCBpbiA1Ljg0MQoJIG51bSBmdW5jdGlv
bnMgMTE4NQoJIG51bSBsb2NhbCBmdW5jdGlvbnMgNDM0ODcKCSBudW0gcHJpbUV4cHMgMTAzMjU3
CgkgcmFpc2UgdG8ganVtcCBzdGFydGluZwoJICAgIGluZmVySGFuZGxlcnMgc3RhcnRpbmcKCSAg
ICBpbmZlckhhbmRsZXJzIGZpbmlzaGVkIGluIDAuMjI2CgkgcmFpc2UgdG8ganVtcCBmaW5pc2hl
ZCBpbiAwLjQxNAoJIG51bSBmdW5jdGlvbnMgMTE4NQoJIG51bSBsb2NhbCBmdW5jdGlvbnMgNDM0
ODcKCSBudW0gcHJpbUV4cHMgMTAzMjU3CgkgY29udGlmeSBzdGFydGluZwoJIGNvbnRpZnkgZmlu
aXNoZWQgaW4gNC42MzYKCSBudW0gZnVuY3Rpb25zIDExNzYKCSBudW0gbG9jYWwgZnVuY3Rpb25z
IDQzMDQ5CgkgbnVtIHByaW1FeHBzIDEwMzIyOAoJIGludHJvZHVjZSBsb29wcyBzdGFydGluZwoJ
IGludHJvZHVjZSBsb29wcyBmaW5pc2hlZCBpbiAwLjA2OAoJIGxvb3AgaW52YXJpYW50IHN0YXJ0
aW5nCgkgbG9vcCBpbnZhcmlhbnQgZmluaXNoZWQgaW4gMS45OTgKCSBudW0gZnVuY3Rpb25zIDEx
NzYKCSBudW0gbG9jYWwgZnVuY3Rpb25zIDQzMDE4CgkgbnVtIHByaW1FeHBzIDEwMTg4NwoJIGZs
YXR0ZW4gc3RhcnRpbmcKCSAgICBhbmFseXplIHN0YXJ0aW5nCgkgICAgYW5hbHl6ZSBmaW5pc2hl
ZCBpbiAwLjI2MwoJIGZsYXR0ZW4gZmluaXNoZWQgaW4gMy4xMzgKCSBudW0gZnVuY3Rpb25zIDEx
NzYKCSBudW0gbG9jYWwgZnVuY3Rpb25zIDQzMDYyCgkgbnVtIHByaW1FeHBzIDcxNzQ3CgkgcmVk
dW5kYW50IHN0YXJ0aW5nCgkgcmVkdW5kYW50IGZpbmlzaGVkIGluIDEuMTQ1CgkgbnVtIGZ1bmN0
aW9ucyAxMTc2CgkgbnVtIGxvY2FsIGZ1bmN0aW9ucyA0MzA2MgoJIG51bSBwcmltRXhwcyA3MTc0
NwoJIHJlbW92ZSB1bnVzZWQgZnVuY3Rpb25zIHN0YXJ0aW5nCgkgcmVtb3ZlIHVudXNlZCBmdW5j
dGlvbnMgZmluaXNoZWQgaW4gMC4wODcKCSByZW1vdmUgdW51c2VkIGdsb2JhbHMgc3RhcnRpbmcK
CSByZW1vdmUgdW51c2VkIGdsb2JhbHMgZmluaXNoZWQgaW4gMC4zNjIKCSByZW1vdmUgdW51c2Vk
IGNvbnN0cnVjdG9ycyBzdGFydGluZwoJIHJlbW92ZSB1bnVzZWQgY29uc3RydWN0b3JzIGZpbmlz
aGVkIGluIDAuNDk5CgkgbnVtIGZ1bmN0aW9ucyAxMTY0CgkgbnVtIGxvY2FsIGZ1bmN0aW9ucyA0
MjYxNAoJIG51bSBwcmltRXhwcyA2OTY3NAogICAgICBzaW1wbGlmeSBmaW5pc2hlZCBpbiA3OS4z
ODAKICAgY2xvc3VyZSBjb252ZXJ0IHNpbXBsaWZ5IGZpbmlzaGVkIGluIDc5LjM4MQogICBjcHMg
c2l6ZSBpcyAxOCw2MjcsNTIwIGJ5dGVzCiAgIGJhY2tlbmQgc3RhcnRpbmcKICAgICAgY29tcHV0
ZSByZXByZXNlbnRhdGlvbnMgc3RhcnRpbmcKICAgICAgY29tcHV0ZSByZXByZXNlbnRhdGlvbnMg
ZmluaXNoZWQgaW4gMC4wNTEKICAgICAgaW5mZXJIYW5kbGVycyBzdGFydGluZwogICAgICBpbmZl
ckhhbmRsZXJzIGZpbmlzaGVkIGluIDAuMjE0CiAgICAgIGNodW5raWZ5IHN0YXJ0aW5nCiAgICAg
IGNodW5raWZ5IGZpbmlzaGVkIGluIDEuNTQ5CiAgICAgIGFsbG9jYXRlIHJlZ2lzdGVycyBzdGFy
dGluZwogICAgICBhbGxvY2F0ZSByZWdpc3RlcnMgZmluaXNoZWQgaW4gMjAuMDg5CiAgICAgIHJl
ZyBzaXplIGlzIDQsMzYwIGJ5dGVzCiAgIGJhY2tlbmQgZmluaXNoZWQgaW4gMzAuNzAzCiAgIGMg
c2l6ZSBpcyAyNiw0OTAsNDU2IGJ5dGVzCiAgIGVtaXQgQyBzdGFydGluZwogICBlbWl0IEMgZmlu
aXNoZWQgaW4gMTYuMzYyCiAgIG51bVBlZWtzID0gNDA5NzMzMzQKICAgYXZlcmFnZSBwb3NpdGlv
biBpbiBwcm9wZXJ0eSBsaXN0ID0gMC44MjYKICAgbnVtUGVla3MgPSA0MDE4MzEwCiAgIGF2ZXJh
Z2UgcG9zaXRpb24gaW4gYnVja2V0ID0gNC40MjAKY29tcGlsZSBmaW5pc2hlZCBpbiAzMjEuMzYz
Cm1heCBzZW1pc3BhY2Ugc2l6ZShieXRlcyk6IDE4Myw1MDAsODAwCkdDIHRpbWUobXMpOiAxMTQs
MzcwICgzNS43JSkKbWF4UGF1c2UobXMpOiA1LDc2MApudW1iZXIgb2YgR0NzOiA1MQpieXRlcyBh
bGxvY2F0ZWQ6IDYsMjkzLDU5Myw4MzYKYnl0ZXMgY29waWVkOiAyLDAzMSw1ODYsMzAwCm1heCBi
eXRlcyBsaXZlOiA5OSw0MTUsMDE2CjMxMS41NnVzZXIgOS4zN3N5c3RlbSA1OjIxLjU3ZWxhcHNl
ZCA5OSVDUFUgKDBhdmd0ZXh0KzBhdmdkYXRhIDBtYXhyZXNpZGVudClrCjBpbnB1dHMrMG91dHB1
dHMgKDM4ODZtYWpvcis0MTM0OTdtaW5vcilwYWdlZmF1bHRzIDBzd2FwcworIGNkIC9ob21lL3N3
ZWVrcy9tbHRvbi9zZWxmLWNvbXBpbGUvMjAwMC0wNy0xMS0xMzoyNzowNgorIGVjaG8gZGlmZiBv
ZiBDIGZpbGVzCmRpZmYgb2YgQyBmaWxlcworIGRpZmYgRzEvbWx0b24uYyBHMi9tbHRvbi5jCjJj
Mgo8IE1MdG9uIDIwMDAtMDctMDggY3JlYXRlZCB0aGlzIGZpbGUgb24gVHVlIEp1bCAxMSAxMzo1
MDoxMCAyMDAwLgotLS0KPiBNTHRvbiAyMDAwLTA3LTA4IGNyZWF0ZWQgdGhpcyBmaWxlIG9uIFR1
ZSBKdWwgMTEgMTQ6MTU6NDkgMjAwMC4KNDc4MTc4YzQ3ODE3OAo8IE1haW4oRkFMU0UsIDAsIDg1
MzE2LCAzODg0LCAyNTg2MCwgMHhELCA0MDA4LCBpbml0R2xvYmFsc18wKQotLS0KPiBNYWluKEZB
TFNFLCAwLCA4NTMxNiwgMzg4NCwgMjU4NjAsIDB4NjFBMkIyQzEsIDQwMDgsIGluaXRHbG9iYWxz
XzApCg==

--VOYqiXpzC5--