x86 update -- raytrace benchmark

Stephen Weeks MLton@sourcelight.com
Fri, 13 Oct 2000 20:25:04 -0700 (PDT)


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


> Of the floating-point benchmarks, it's pretty much 75%-98% running times
> for all of them except matrix-multiply and zern, which are like 107% and
> 140% respectively.  I haven't really started investigating why yet.  I'd
> be interested in seeing if there is any improvement over the c-codegen on
> the raytracing stuff.  

There is good news and bad news.  First the good news.  There is a noticeable
improvement, consistent across all the examples except for the now notorious
fractal.  Here are the numbers.

                      MLton MLton
              OCAML  native     C  SML/NJ
holes           1.8     3.0   3.2     3.9
fov             1.5     1.6   1.8     3.2
intercyl        1.6     1.8   2.1     4.3
snowgoon        2.9     2.7   3.3     5.1
dice            3.9     4.4   4.9     8.8
golf            1.5     2.0   2.4     3.1
cone-fractal    3.7     3.5   4.3     6.5
large           4.3     2.9   3.0     6.7
pipe            5.4     4.0   4.6     7.9
chess          16.0    12.7  15.5    21.6
fractal        12.2    11.1   8.5    45.4

geom-mean       3.6     3.6   4.0     7.1

What makes the native numbers even better is that the MLton native version was
compiled safely, i.e. without -DMLton_safe=0, while the MLton C version was
compiled with -DMLton_safe=0.  So, we should see even better numbers once we
compile the MLton native version unsafely.  In particular I bet fractal will
show a speedup.

Now for the bad news.  I tried to compile the native version with -DMLton_safe=0 
and the resulting executable terminates immediately on every example with exit
status zero without producing any output.  Matthew, any ideas?

Here is the sml program and one example (the program reads it from stdin).



--SV5JYP48fB
Content-Type: application/octet-stream
Content-Description: program
Content-Disposition: attachment;
	filename="improved-rt.mlton.sml"
Content-Transfer-Encoding: base64

KCogcmF5dHJhY2Uuc21sICopCnNpZ25hdHVyZSBDQU1MID0KICAgc2lnCiAgICAgIHR5cGUgZmxv
YXQgPSByZWFsCiAgICAgIHR5cGUgaW50ID0gaW50CiAgIGVuZAoKc3RydWN0dXJlIENhbWwgPQpz
dHJ1Y3QKCnR5cGUgaW50ID0gaW50CnR5cGUgZmxvYXQgPSByZWFsCgp2YWwgb3AgZGl2ID0gSW50
LmRpdgoKZXhjZXB0aW9uIE5vdF9mb3VuZApleGNlcHRpb24gRmFpbHVyZSBvZiBzdHJpbmcKCmZ1
biBmYWlsd2l0aCBzID0gcmFpc2UoRmFpbHVyZSBzKQogICAKc3RydWN0dXJlIENoYXIgPQogICBz
dHJ1Y3QKICAgICAgb3BlbiBDaGFyICAgCiAgICAgIHZhbCBjb2RlID0gb3JkCiAgICAgIHZhbCBj
aHIgPSBjaHIKICAgICAgdmFsIHVuc2FmZV9jaHIgPSBjaHIKICAgICAgdmFsIGxvd2VyY2FzZSA9
IHRvTG93ZXIKICAgICAgdmFsIHVwcGVyY2FzZSA9IHRvVXBwZXIKICAgZW5kCgpsb2NhbAogICBv
cGVuIFRleHRJTwppbgogICB0eXBlIG91dF9jaGFubmVsID0gb3V0c3RyZWFtCiAgIHZhbCBvcGVu
X291dCA9IG9wZW5PdXQKICAgdmFsIG9wZW5fb3V0X2JpbiA9IG9wZW5fb3V0CiAgIGZ1biBvdXRw
dXRfc3RyaW5nIChvdXQsIHMpID0gb3V0cHV0KG91dCwgcykKICAgdmFsIGNsb3NlX291dCA9IGNs
b3NlT3V0CmVuZAoKdHlwZSBmbG9hdCA9IHJlYWwKCnN0cnVjdHVyZSBBcnJheSA9CiAgIHN0cnVj
dAogICAgICBsb2NhbCBvcGVuIEFycmF5CiAgICAgIGluCgkgdmFsIGFycmF5ID0gYXJyYXkKCSB2
YWwgY29weSA9IGNvcHkKCSB2YWwgb2ZfbGlzdCA9IGZyb21MaXN0CgkgdmFsIGxlbmd0aCA9IGxl
bmd0aAoJIHZhbCBzdWIgPSBzdWIKCSB2YWwgdXBkYXRlID0gdXBkYXRlCgkgdmFsIHVuc2FmZV9n
ZXQgPSBVbnNhZmUuQXJyYXkuc3ViCgkgdmFsIHVuc2FmZV9zZXQgPSBVbnNhZmUuQXJyYXkudXBk
YXRlCgkgdmFsIG1ha2UgPSBhcnJheQoJIGZ1biBtYXAgZiBhID0gQXJyYXkudGFidWxhdGUobGVu
Z3RoIGEsIGZuIGkgPT4gZihVbnNhZmUuQXJyYXkuc3ViKGEsIGkpKSkKCSB2YWwgaW5pdCA9IHRh
YnVsYXRlCiAgICAgIGVuZAogICBlbmQKCmZ1biBmb3IoYTogaW50LCBiLCBmKSA9CiAgIGxldAog
ICAgICBmdW4gbG9vcCBhID0KCSBpZiBhID4gYgoJICAgIHRoZW4gKCkKCSBlbHNlIChmIGE7IGxv
b3AoYSArIDEpKQogICBpbiBsb29wIGEKICAgZW5kCgpmdW4gZm9yRG93bihiOiBpbnQsIGEsIGYp
ID0KICAgbGV0CiAgICAgIGZ1biBsb29wIGIgPQoJIGlmIGIgPCBhCgkgICAgdGhlbiAoKQoJIGVs
c2UgKGYgYjsgbG9vcChiIC0gMSkpCiAgIGluIGxvb3AgYgogICBlbmQKCmxvY2FsCiAgIG9wZW4g
UmVhbAogICBvcGVuIE1hdGgKaW4KICAgdmFsIGFic19mbG9hdCA9IGFicwogICB2YWwgYWNvcyA9
IGFjb3MKICAgdmFsIGFzaW4gPSBhc2luCiAgIHZhbCBjb3MgPSBjb3MKICAgdmFsIGZsb2F0ID0g
ZnJvbUludAogICB2YWwgZmxvYXRfb2ZfaW50ID0gZmxvYXQKICAgdmFsIHNpbiA9IHNpbgogICB2
YWwgc3FydCA9IHNxcnQKICAgdmFsIHRhbiA9IHRhbgogICB2YWwgdHJ1bmNhdGUgPSB0cnVuYwog
ICB2YWwgKiogPSBNYXRoLnBvdwogICBpbmZpeCA4ICoqIAplbmQKCigqIEEgaGFjayBmb3IgaGFz
aCB0YWJsZXMgd2l0aCBzdHJpbmcgZG9tYWluIHdoZXJlIHBlcmZvcm1hbmNlIGRvZXNuJ3QgbWF0
dGVyLiAqKQpzdHJ1Y3R1cmUgSGFzaHRibDoKICAgc2lnCiAgICAgIHR5cGUgKCdhLCAnYikgdAoK
ICAgICAgdmFsIGFkZDogKCdhLCAnYikgdCAtPiBzdHJpbmcgLT4gJ2IgLT4gdW5pdAogICAgICB2
YWwgY3JlYXRlOiBpbnQgLT4gKCdhLCAnYikgdAogICAgICB2YWwgZmluZDogKCdhLCAnYikgdCAt
PiBzdHJpbmcgLT4gJ2IKICAgZW5kID0KICAgc3RydWN0CiAgICAgIGRhdGF0eXBlICgnYSwgJ2Ip
IHQgPSBUIG9mIChzdHJpbmcgKiAnYikgbGlzdCByZWYKCSAgICAKICAgICAgZnVuIGNyZWF0ZSBf
ID0gVCAocmVmIFtdKQoKICAgICAgZnVuIGFkZCAoVCB0KSBrIGQgPSB0IDo9IChrLCBkKSA6OiAh
dAoKICAgICAgZnVuIGZpbmQgKFQgKHJlZiB0KSkgayA9CgkgY2FzZSBMaXN0LmZpbmQgKGZuIChr
JywgXykgPT4gayA9IGsnKSB0IG9mCgkgICAgTk9ORSA9PiByYWlzZSBOb3RfZm91bmQKCSAgfCBT
T01FKF8sIGQpID0+IGQKICAgZW5kCgpzdHJ1Y3R1cmUgTGlzdCA9CiAgIHN0cnVjdAogICAgICBs
b2NhbCBvcGVuIExpc3QKICAgICAgaW4KCSB2YWwgaXRlciA9IGFwcAoJIHZhbCBtYXAgPSBtYXAK
CSB2YWwgZmlsdGVyID0gZmlsdGVyCgkgdmFsIG50aCA9IG50aAoJIHZhbCByZXYgPSByZXYKICAg
ICAgZW5kCiAgIGVuZAoKZnVuIGV4aXQgaSA9IFBvc2l4LlByb2Nlc3MuZXhpdChXb3JkOC5mcm9t
SW50IGkpCiAgIAplbmQKc3RydWN0dXJlIE1hdGggPQpzdHJ1Y3QKCm9wZW4gQ2FtbAogICAKdmFs
IGVwc2lsb24gPSAxRX41Cgp2YWwgZHRyID0gYWNvcyAofjEuMCkgLyAxODAuMAp2YWwgcnRkID0g
MTgwLjAgLyBhY29zICh+MS4wKQoKZnVuIGRjb3MgdCA9IGNvcyAodCAqIGR0cikKZnVuIGRzaW4g
dCA9IHNpbiAodCAqIGR0cikKZnVuIGR0YW4gdCA9IHRhbiAodCAqIGR0cikKZnVuIGRhY29zIHgg
PSBydGQgKiBhY29zIHgKCnZhbCBpbmZpbml0eSA9IFJlYWwucG9zSW5mCnZhbCBtaW51c19pbmZp
bml0eSA9IFJlYWwubmVnSW5mCgpmdW4gbWF4X2Zsb2F0ICh4LCB5IDogZmxvYXQpID0gaWYgeCA+
PSB5IHRoZW4geCBlbHNlIHkKCmVuZApzaWduYXR1cmUgTUFUUklYID0KICAgc2lnCiAgICAgIGlu
Y2x1ZGUgQ0FNTAoKICAgICAgKCoqKiogTWF0cml4IGFyaXRobWV0aWMgKioqKikKCiAgICAgIHR5
cGUgdCA9IGZsb2F0IGFycmF5ICgqIDQtZGltZW5zaW9uIG1hdHJpeCAqKQogICAgICB0eXBlIHYg
PSBmbG9hdCAqIGZsb2F0ICogZmxvYXQgKiBmbG9hdCAoKiA0LWRpbWVuc2lvbiB2ZWN0b3IgKikK
CiAgICAgICgqIEJhc2ljIG1hdHJpY2VzICopCiAgICAgIHZhbCBpZGVudGl0eSA6IHQKICAgICAg
dmFsIHRyYW5zbGF0ZSA6ICgqeDoqKWZsb2F0ICogKCp5OiopZmxvYXQgKiAoKno6KilmbG9hdCAt
PiB0CiAgICAgIHZhbCBzY2FsZSA6ICgqeDoqKWZsb2F0ICogKCp5OiopZmxvYXQgKiAoKno6Kilm
bG9hdCAtPiB0CiAgICAgIHZhbCB1c2NhbGUgOiBmbG9hdCAtPiB0CiAgICAgIHZhbCB1bnNjYWxl
IDogKCp4OiopZmxvYXQgKiAoKnk6KilmbG9hdCAqICgqejoqKWZsb2F0IC0+IHQKICAgICAgdmFs
IHVudXNjYWxlIDogZmxvYXQgLT4gdAogICAgICB2YWwgcm90YXRleCA6IGZsb2F0IC0+IHQKICAg
ICAgdmFsIHJvdGF0ZXkgOiBmbG9hdCAtPiB0CiAgICAgIHZhbCByb3RhdGV6IDogZmxvYXQgLT4g
dAoKICAgICAgKCogT3BlcmF0aW9ucyBvbiBtYXRyaWNlcyAqKQogICAgICB2YWwgbXVsIDogdCAq
IHQgLT4gdAogICAgICB2YWwgdm11bCA6IHQgKiB2IC0+IHYKICAgICAgdmFsIHRyYW5zcG9zZSA6
IHQgLT4gdAoKICAgICAgdmFsIGFkZF9zY2FsZWQgOiB2ICogZmxvYXQgKiB2IC0+IHYKICAgICAg
dmFsIGFkZCA6IHYgKiB2IC0+IHYKICAgICAgdmFsIHN1YiA6IHYgKiB2IC0+IHYKICAgICAgdmFs
IHByb2QgOiB2ICogdiAtPiBmbG9hdAogICAgICB2YWwgc3F1YXJlIDogdiAtPiBmbG9hdAogICAg
ICB2YWwgbm9ybWFsaXplIDogdiAtPiB2CiAgICAgIHZhbCBuZWcgOiB2IC0+IHYKICAgZW5kCnN0
cnVjdHVyZSBNYXRyaXg6IE1BVFJJWCA9CnN0cnVjdAoKb3BlbiBDYW1sCm9wZW4gTWF0aAoKdHlw
ZSB0ID0gZmxvYXQgYXJyYXkKdHlwZSB2ID0gZmxvYXQgKiBmbG9hdCAqIGZsb2F0ICogZmxvYXQK
CigqKioqIEJhc2ljIG1hdHJpY2VzICoqKiopCgp2YWwgaWRlbnRpdHkgPQogICBBcnJheS5vZl9s
aXN0WzEuMCwgMC4wLCAwLjAsIDAuMCwKCQkgIDAuMCwgMS4wLCAwLjAsIDAuMCwKCQkgIDAuMCwg
MC4wLCAxLjAsIDAuMCwKCQkgIDAuMCwgMC4wLCAwLjAsIDEuMF0KCmZ1biB0cmFuc2xhdGUoeCwg
eSwgeikgPQogICBBcnJheS5vZl9saXN0WzEuMCwgMC4wLCAwLjAsIH4geCwKCQkgIDAuMCwgMS4w
LCAwLjAsIH4geSwKCQkgIDAuMCwgMC4wLCAxLjAsIH4geiwKCQkgIDAuMCwgMC4wLCAwLjAsIDEu
MF0KCmZ1biB1bnNjYWxlKHgsIHksIHopID0KICAgQXJyYXkub2ZfbGlzdFsgeCwgIDAuMCwgMC4w
LCAwLjAsCgkJICAwLjAsIHksICAwLjAsIDAuMCwKCQkgIDAuMCwgMC4wLCB6LCAgMC4wLAoJCSAg
MC4wLCAwLjAsIDAuMCwgMS4wXQogIApmdW4gc2NhbGUoeCwgeSwgeikgPSB1bnNjYWxlICgxLjAg
LyB4LCAxLjAgLyB5LCAxLjAgLyB6KQoKZnVuIHVudXNjYWxlIHMgPSB1bnNjYWxlIChzLCBzLCBz
KQoKZnVuIHVzY2FsZSBzID0gc2NhbGUgKHMsIHMsIHMpCgpmdW4gcm90YXRleCB0ID0KICBsZXQK
ICAgICB2YWwgY28gPSBkY29zIHQKICAgICB2YWwgc2kgPSBkc2luIHQKICBpbgogICAgIEFycmF5
Lm9mX2xpc3RbIDEuMCwgICAwLjAsICAwLjAsIDAuMCwKCQkgICAgMC4wLCAgIGNvLCAgc2ksIDAu
MCwKCQkgICAgMC4wLCB+IHNpLCBjbywgMC4wLAoJCSAgICAwLjAsICAgMC4wLCAgMC4wLCAxLjAg
XQogIGVuZAoKZnVuIHJvdGF0ZXkgdCA9CiAgbGV0CiAgICAgdmFsIGNvID0gZGNvcyB0CiAgICAg
dmFsIHNpID0gZHNpbiB0CiAgaW4KICAgICBBcnJheS5vZl9saXN0WyBjbywgMC4wLCB+IHNpLCAw
LjAsCgkJICAgIDAuMCwgMS4wLCAgIDAuMCwgIDAuMCwKCQkgICAgc2ksIDAuMCwgICBjbywgIDAu
MCwKCQkgICAgMC4wLCAwLjAsICAgMC4wLCAgMS4wIF0KICBlbmQKCmZ1biByb3RhdGV6IHQgPQog
IGxldAogICAgIHZhbCBjbyA9IGRjb3MgdAogICAgIHZhbCBzaSA9IGRzaW4gdAogIGluCiAgICAg
QXJyYXkub2ZfbGlzdFsgICBjbywgIHNpLCAwLjAsIDAuMCwKCQkgICAgfiBzaSwgY28sIDAuMCwg
MC4wLAoJCSAgICAwLjAsICAwLjAsIDEuMCwgMC4wLAoJCSAgICAwLjAsICAwLjAsIDAuMCwgMS4w
IF0KICBlbmQKCigqKiogT3BlcmF0aW9ucyBvbiBtYXRyaWNlcyAqKiopCgpmdW4gZ2V0IChtIDog
dCwgaSwgaikgPSBBcnJheS51bnNhZmVfZ2V0IChtLCBpICogNCArIGopCmZ1biBzZXQgKG0gOiB0
LCBpLCBqLCB2KSA9IEFycmF5LnVuc2FmZV9zZXQgKG0sIGkgKiA0ICsgaiwgdikKCmZ1biBtdWwg
KG0sIG0nKSA9CiAgbGV0CiAgICAgdmFsIG0nJyA9IEFycmF5Lm1ha2UgKDE2LCAwLjApCiAgaW4K
ICAgICBmb3IoMCwgMywgZm4gaSA9PgoJIGZvcigwLCAzLCBmbiBqID0+IGxldAoJICAgIGZ1biBs
cCAoNCwgcykgPSBzCgkgICAgICB8IGxwIChrLCBzKSA9IGxwIChrKzEsIHMgKyBnZXQobSwgaSwg
aykgKiBnZXQobScsIGssIGopKQoJICAgIGluCgkgICAgICBzZXQobScnLCBpLCBqLCBscCgwLCAw
LjApKQoJICAgIGVuZCkpCiAgICAgOyBtJycKICBlbmQKCmZ1biB0cmFuc3Bvc2UgbSA9CiAgbGV0
IHZhbCBtJyA9IEFycmF5Lm1ha2UgKDE2LCAwLjApCiAgaW4gZm9yKDAsIDMsIGZuIGkgPT4KCSBm
b3IoMCwgMywgZm4gaiA9PgoJICAgICBzZXQgKG0nLCBpLCBqLCBnZXQgKG0sIGosIGkpKSkpCiAg
ICAgOyBtJwogIGVuZAoKZnVuIHZtdWwgKG0sICh4LCB5LCB6LCB0KSkgPQogICAoeCAqIGdldCht
LCAwLCAwKSArIHkgKiBnZXQobSwgMCwgMSkgKyB6ICogZ2V0KG0sIDAsIDIpICsgdCAqIGdldCht
LCAwLCAzKSwKICAgIHggKiBnZXQobSwgMSwgMCkgKyB5ICogZ2V0KG0sIDEsIDEpICsgeiAqIGdl
dChtLCAxLCAyKSArIHQgKiBnZXQobSwgMSwgMyksCiAgICB4ICogZ2V0KG0sIDIsIDApICsgeSAq
IGdldChtLCAyLCAxKSArIHogKiBnZXQobSwgMiwgMikgKyB0ICogZ2V0KG0sIDIsIDMpLAogICAg
eCAqIGdldChtLCAzLCAwKSArIHkgKiBnZXQobSwgMywgMSkgKyB6ICogZ2V0KG0sIDMsIDIpICsg
dCAqIGdldChtLCAzLCAzKSkKCmZ1biBhZGRfc2NhbGVkICh4OiB2LCB0LCB2OiB2KSA6IHYgPQog
ICAoICMxIHggKyB0ICogIzEgdiwKICAgICAjMiB4ICsgdCAqICMyIHYsCiAgICAgIzMgeCArIHQg
KiAjMyB2LAogICAgICM0IHggKyB0ICogIzQgdiApCgpmdW4gYWRkICh4OiB2LCB5OiB2KSA6IHYg
PQogICAoICMxIHggKyAjMSB5LAogICAgICMyIHggKyAjMiB5LAogICAgICMzIHggKyAjMyB5LAog
ICAgICM0IHggKyAjNCB5ICkKCmZ1biBzdWIgKHg6IHYsIHk6IHYpIDogdiA9CiAgICgjMSB4IC0g
IzEgeSwKICAgICMyIHggLSAjMiB5LAogICAgIzMgeCAtICMzIHksCiAgICAjNCB4IC0gIzQgeSkK
CmZ1biBwcm9kICh4OiB2LCB5OiB2KSA6IHJlYWwgPQogICAjMSB4ICogIzEgeSArICMyIHggKiAj
MiB5ICsgIzMgeCAqICMzIHkgKyAjNCB4ICogIzQgeQoKZnVuIHNxdWFyZSAodngsIHZ5LCB2eiwg
dnQpIDogcmVhbCA9CiAgIHZ4ICogdnggKyB2eSAqIHZ5ICsgdnogKiB2eiArIHZ0ICogdnQKCmZ1
biBub3JtYWxpemUgKHg6IHYpOiB2ID0KICBsZXQKICAgICB2YWwgbnggPSBzcXJ0IChwcm9kICh4
LCB4KSkKICBpbgogICAgICgjMSB4IC8gbngsCiAgICAgICMyIHggLyBueCwKICAgICAgIzMgeCAv
IG54LAogICAgICAjNCB4IC8gbngpCiAgZW5kCgpmdW4gbmVnICh4OiB2KSA6IHYgPQogICAofigj
MSB4KSwKICAgIH4oIzIgeCksCiAgICB+KCMzIHgpLAogICAgfigjNCB4KSkKCmVuZApzaWduYXR1
cmUgTEVYX1RPS0VOX1NUUlVDVFMgPSAKICAgc2lnCiAgIGVuZAoKc2lnbmF0dXJlIExFWF9UT0tF
TiA9IAogICBzaWcKICAgICAgaW5jbHVkZSBMRVhfVE9LRU5fU1RSVUNUUwogICAgICAKICAgICAg
ZGF0YXR5cGUgdCA9CgkgQmluZGVyIG9mIHN0cmluZwogICAgICAgfCBCb29sIG9mIGJvb2wKICAg
ICAgIHwgRW9mCiAgICAgICB8IElkZW50aWZpZXIgb2Ygc3RyaW5nCiAgICAgICB8IEludCBvZiBp
bnQKICAgICAgIHwgTGJyYWNlCiAgICAgICB8IExicmFja2V0CiAgICAgICB8IFJicmFjZQogICAg
ICAgfCBSYnJhY2tldAogICAgICAgfCBSZWFsIG9mIHJlYWwKICAgICAgIHwgU3RyaW5nIG9mIHN0
cmluZwogICBlbmQKZnVuY3RvciBMZXhUb2tlbihTOiBMRVhfVE9LRU5fU1RSVUNUUyk6IExFWF9U
T0tFTiA9IApzdHJ1Y3QKCm9wZW4gUwoKZGF0YXR5cGUgdCA9CiAgIEJpbmRlciBvZiBzdHJpbmcK
IHwgQm9vbCBvZiBib29sCiB8IEVvZgogfCBJZGVudGlmaWVyIG9mIHN0cmluZwogfCBJbnQgb2Yg
aW50CiB8IExicmFjZQogfCBMYnJhY2tldAogfCBSYnJhY2UKIHwgUmJyYWNrZXQKIHwgUmVhbCBv
ZiByZWFsCiB8IFN0cmluZyBvZiBzdHJpbmcKICAgICAKZW5kCnR5cGUgaW50ID0gSW50LmludApm
dW5jdG9yIExleChzdHJ1Y3R1cmUgVG9rZW46IExFWF9UT0tFTik9CiAgIHN0cnVjdAogICAgc3Ry
dWN0dXJlIFVzZXJEZWNsYXJhdGlvbnMgPQogICAgICBzdHJ1Y3QKdmFsIGNoYXJzOiBjaGFyIGxp
c3QgcmVmID0gcmVmIFtdCgp0eXBlIGxleGFyZyA9IHVuaXQKCnR5cGUgbGV4cmVzdWx0ID0gVG9r
ZW4udAoKdmFsIGVvZjogbGV4YXJnIC0+IGxleHJlc3VsdCA9CiAgIGZuICgpID0+IFRva2VuLkVv
ZgoKZnVuIGZhaWwgcyA9IHJhaXNlIEZhaWwgcwoKZW5kICgqIGVuZCBvZiB1c2VyIHJvdXRpbmVz
ICopCmV4Y2VwdGlvbiBMZXhFcnJvciAoKiByYWlzZWQgaWYgaWxsZWdhbCBsZWFmIGFjdGlvbiB0
cmllZCAqKQpzdHJ1Y3R1cmUgSW50ZXJuYWwgPQoJc3RydWN0CgpkYXRhdHlwZSB5eWZpbnN0YXRl
ID0gTiBvZiBpbnQKdHlwZSBzdGF0ZWRhdGEgPSB7ZmluIDogeXlmaW5zdGF0ZSBsaXN0LCB0cmFu
czogc3RyaW5nfQooKiB0cmFuc2l0aW9uICYgZmluYWwgc3RhdGUgdGFibGUgKikKdmFsIHRhYiA9
IGxldAp2YWwgcyA9IFsgCiAoMCwgCiJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXApcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwKXFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcClxcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXApcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwKXFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcClxcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXApcXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwKXFwwMDAiCiksCiAo
MSwgCiJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDI2XDAyNlwwMjZcMDAw
XDAyNlwwMDBcMDAwXApcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwKXFwwMjZcMDAwXDAyNVwwMDBcMDAwXDAyNFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDIzXDAwMFwwMjFcClxcMDEyXDAxMlwwMTJcMDEyXDAxMlww
MTJcMDEyXDAxMlwwMTJcMDEyXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXApcXDAwMFwwMDlcMDA5
XDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwOVwKXFww
MDlcMDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAxMVwwMDBcMDEwXDAw
MFwwMDBcClxcMDAwXDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlc
MDA5XDAwOVwwMDlcMDA5XApcXDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAw
OVwwMDlcMDA4XDAwMFwwMDdcMDAwXDAwMFwKXFwwMDAiCiksCiAoMywgCiJcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDI3XDAyOVwwMjlcMDAwXDAyOFwwMDBcMDAwXApcXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwKXFwwMjdcMDI3XDAyN1wwMjdcMDI3XDAyN1wwMjdcMDI3XDAyN1wwMjdcMDI3XDAyN1ww
MjdcMDI3XDAyN1wwMjdcClxcMDI3XDAyN1wwMjdcMDI3XDAyN1wwMjdcMDI3XDAyN1wwMjdcMDI3
XDAyN1wwMjdcMDI3XDAyN1wwMjdcMDI3XApcXDAyN1wwMjdcMDI3XDAyN1wwMjdcMDI3XDAyN1ww
MjdcMDI3XDAyN1wwMjdcMDI3XDAyN1wwMjdcMDI3XDAyN1wKXFwwMjdcMDI3XDAyN1wwMjdcMDI3
XDAyN1wwMjdcMDI3XDAyN1wwMjdcMDI3XDAyN1wwMjdcMDI3XDAyN1wwMjdcClxcMDI3XDAyN1ww
MjdcMDI3XDAyN1wwMjdcMDI3XDAyN1wwMjdcMDI3XDAyN1wwMjdcMDI3XDAyN1wwMjdcMDI3XApc
XDAyN1wwMjdcMDI3XDAyN1wwMjdcMDI3XDAyN1wwMjdcMDI3XDAyN1wwMjdcMDI3XDAyN1wwMjdc
MDI3XDAwMFwKXFwwMDAiCiksCiAoNSwgCiJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXApcXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwKXFwwMzBcMDMwXDAz
MVwwMzBcMDMwXDAzMFwwMzBcMDMwXDAzMFwwMzBcMDMwXDAzMFwwMzBcMDMwXDAzMFwwMzBcClxc
MDMwXDAzMFwwMzBcMDMwXDAzMFwwMzBcMDMwXDAzMFwwMzBcMDMwXDAzMFwwMzBcMDMwXDAzMFww
MzBcMDMwXApcXDAzMFwwMzBcMDMwXDAzMFwwMzBcMDMwXDAzMFwwMzBcMDMwXDAzMFwwMzBcMDMw
XDAzMFwwMzBcMDMwXDAzMFwKXFwwMzBcMDMwXDAzMFwwMzBcMDMwXDAzMFwwMzBcMDMwXDAzMFww
MzBcMDMwXDAzMFwwMzBcMDMwXDAzMFwwMzBcClxcMDMwXDAzMFwwMzBcMDMwXDAzMFwwMzBcMDMw
XDAzMFwwMzBcMDMwXDAzMFwwMzBcMDMwXDAzMFwwMzBcMDMwXApcXDAzMFwwMzBcMDMwXDAzMFww
MzBcMDMwXDAzMFwwMzBcMDMwXDAzMFwwMzBcMDMwXDAzMFwwMzBcMDMwXDAwMFwKXFwwMDAiCiks
CiAoOSwgCiJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXApcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwKXFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDA5XDAwMFwwMDBcClxcMDA5XDAwOVwwMDlcMDA5XDAw
OVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXApcXDAwMFwwMDlc
MDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwOVwK
XFwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwMFwwMDBcMDAw
XDAwMFwwMDlcClxcMDAwXDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwOVww
MDlcMDA5XDAwOVwwMDlcMDA5XApcXDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5XDAwOVwwMDlcMDA5
XDAwOVwwMDlcMDAwXDAwMFwwMDBcMDAwXDAwMFwKXFwwMDAiCiksCiAoMTIsIAoiXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwK
XFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcClxcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMTZcMDAwXApcXDAxMlwwMTJcMDEyXDAxMlwwMTJcMDEyXDAxMlwwMTJcMDEy
XDAxMlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwKXFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAxM1ww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcClxcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXApcXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDEzXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwKXFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcClxcMDAwIgopLAogKDEzLCAKIlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcClxcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXApcXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMTVcMDAwXDAw
MFwKXFwwMTRcMDE0XDAxNFwwMTRcMDE0XDAxNFwwMTRcMDE0XDAxNFwwMTRcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcClxcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXApcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwKXFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcClxcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXApcXDAw
MCIKKSwKICgxNCwgCiJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXApcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwKXFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcClxcMDE0XDAxNFwwMTRc
MDE0XDAxNFwwMTRcMDE0XDAxNFwwMTRcMDE0XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXApcXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwKXFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcClxcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXApcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwKXFwwMDAiCiksCiAoMTYsIAoiXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwKXFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcClxcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXApcXDAxN1wwMTdcMDE3XDAxN1wwMTdcMDE3XDAxN1ww
MTdcMDE3XDAxN1wwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwKXFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcClxcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXApc
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwKXFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcClxcMDAwIgopLAogKDE3LCAKIlwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcClxcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXApc
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwKXFwwMTdcMDE3XDAxN1wwMTdcMDE3XDAxN1wwMTdcMDE3XDAxN1wwMTdcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcClxcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMThcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXApcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwKXFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAxOFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcClxcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XApcXDAwMCIKKSwKICgxOCwgCiJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXApcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwKXFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDIwXDAwMFwwMDBcClxcMDE5XDAx
OVwwMTlcMDE5XDAxOVwwMTlcMDE5XDAxOVwwMTlcMDE5XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XApcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwKXFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcClxcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXApcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwKXFwwMDAiCiksCiAoMTks
IAoiXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwKXFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcClxcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXApcXDAxOVwwMTlcMDE5XDAxOVwwMTlcMDE5
XDAxOVwwMTlcMDE5XDAxOVwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwKXFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcClxcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXApcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwKXFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcClxcMDAwIgopLAogKDIxLCAKIlwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcClxcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXApcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwKXFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcClxcMDAwXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIyXDAy
MlwwMjJcMDIyXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIyXApcXDAyMlwwMjJcMDIyXDAyMlwwMjJc
MDIyXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDAwXDAwMFwwMDBcMDAwXDAwMFwKXFwwMDBcMDIyXDAy
MlwwMjJcMDIyXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIyXDAyMlwwMjJcClxc
MDIyXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIyXDAyMlwwMDBcMDAwXDAwMFww
MDBcMDAwXApcXDAwMCIKKSwKICgyMiwgCiJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXApcXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwKXFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDIyXDAwMFwwMDBcClxc
MDIyXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIyXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXApcXDAwMFwwMjJcMDIyXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIy
XDAyMlwwMjJcMDIyXDAyMlwKXFwwMjJcMDIyXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIyXDAyMlww
MjJcMDIyXDAwMFwwMDBcMDAwXDAwMFwwMjJcClxcMDAwXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIy
XDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDIyXApcXDAyMlwwMjJcMDIyXDAyMlww
MjJcMDIyXDAyMlwwMjJcMDIyXDAyMlwwMjJcMDAwXDAwMFwwMDBcMDAwXDAwMFwKXFwwMDAiCiks
CiAoMjMsIAoiXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwKXFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcClxcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXApcXDAxMlwwMTJcMDEyXDAxMlww
MTJcMDEyXDAxMlwwMTJcMDEyXDAxMlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwKXFwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
ClxcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXApcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwKXFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcClxcMDAwIgopLAogKDI4LCAKIlwwMDBcMDAw
XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDI5XDAwMFwwMDBcMDAwXDAwMFwwMDBc
ClxcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXApcXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwKXFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcClxcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXApcXDAwMFwwMDBcMDAwXDAw
MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwKXFwwMDBc
MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww
MDBcClxcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw
XDAwMFwwMDBcMDAwXApcXDAwMCIKKSwKKDAsICIiKV0KZnVuIGYgeCA9IHggCnZhbCBzID0gbWFw
IGYgKHJldiAodGwgKHJldiBzKSkpIApleGNlcHRpb24gTGV4SGFja2luZ0Vycm9yIApmdW4gbG9v
ayAoKGoseCk6OnIsIGkpID0gaWYgaSA9IGogdGhlbiB4IGVsc2UgbG9vayhyLCBpKSAKICB8IGxv
b2sgKFtdLCBpKSA9IHJhaXNlIExleEhhY2tpbmdFcnJvcgpmdW4gZyB7ZmluPXgsIHRyYW5zPWl9
ID0ge2Zpbj14LCB0cmFucz1sb29rKHMsaSl9IAppbiBWZWN0b3IuZnJvbUxpc3QobWFwIGcgClt7
ZmluID0gW10sIHRyYW5zID0gMH0sCntmaW4gPSBbXSwgdHJhbnMgPSAxfSwKe2ZpbiA9IFtdLCB0
cmFucyA9IDF9LAp7ZmluID0gW10sIHRyYW5zID0gM30sCntmaW4gPSBbXSwgdHJhbnMgPSAzfSwK
e2ZpbiA9IFtdLCB0cmFucyA9IDV9LAp7ZmluID0gW10sIHRyYW5zID0gNX0sCntmaW4gPSBbKE4g
MTMpXSwgdHJhbnMgPSAwfSwKe2ZpbiA9IFsoTiAxMSldLCB0cmFucyA9IDB9LAp7ZmluID0gWyhO
IDQ5KV0sIHRyYW5zID0gOX0sCntmaW4gPSBbKE4gOSldLCB0cmFucyA9IDB9LAp7ZmluID0gWyhO
IDcpXSwgdHJhbnMgPSAwfSwKe2ZpbiA9IFsoTiAzOSldLCB0cmFucyA9IDEyfSwKe2ZpbiA9IFtd
LCB0cmFucyA9IDEzfSwKe2ZpbiA9IFsoTiAzNSldLCB0cmFucyA9IDE0fSwKe2ZpbiA9IFtdLCB0
cmFucyA9IDE0fSwKe2ZpbiA9IFtdLCB0cmFucyA9IDE2fSwKe2ZpbiA9IFsoTiAzNSldLCB0cmFu
cyA9IDE3fSwKe2ZpbiA9IFtdLCB0cmFucyA9IDE4fSwKe2ZpbiA9IFsoTiAzNSldLCB0cmFucyA9
IDE5fSwKe2ZpbiA9IFtdLCB0cmFucyA9IDE5fSwKe2ZpbiA9IFtdLCB0cmFucyA9IDIxfSwKe2Zp
biA9IFsoTiAyMCldLCB0cmFucyA9IDIyfSwKe2ZpbiA9IFtdLCB0cmFucyA9IDIzfSwKe2ZpbiA9
IFsoTiA0MyldLCB0cmFucyA9IDB9LAp7ZmluID0gWyhOIDQxKV0sIHRyYW5zID0gMH0sCntmaW4g
PSBbKE4gNSldLCB0cmFucyA9IDB9LAp7ZmluID0gWyhOIDU4KV0sIHRyYW5zID0gMH0sCntmaW4g
PSBbKE4gNTUpXSwgdHJhbnMgPSAyOH0sCntmaW4gPSBbKE4gNTUpXSwgdHJhbnMgPSAwfSwKe2Zp
biA9IFsoTiA2MildLCB0cmFucyA9IDB9LAp7ZmluID0gWyhOIDYwKSwoTiA2MildLCB0cmFucyA9
IDB9XSkKZW5kCnN0cnVjdHVyZSBTdGFydFN0YXRlcyA9CglzdHJ1Y3QKCWRhdGF0eXBlIHl5c3Rh
cnRzdGF0ZSA9IFNUQVJUU1RBVEUgb2YgaW50CgooKiBzdGFydCBzdGF0ZSBkZWZpbml0aW9ucyAq
KQoKdmFsIEMgPSBTVEFSVFNUQVRFIDM7CnZhbCBJTklUSUFMID0gU1RBUlRTVEFURSAxOwp2YWwg
UyA9IFNUQVJUU1RBVEUgNTsKCmVuZAp0eXBlIHJlc3VsdCA9IFVzZXJEZWNsYXJhdGlvbnMubGV4
cmVzdWx0CglleGNlcHRpb24gTGV4ZXJFcnJvciAoKiByYWlzZWQgaWYgaWxsZWdhbCBsZWFmIGFj
dGlvbiB0cmllZCAqKQplbmQKCnR5cGUgaW50ID0gSW50LmludApmdW4gbWFrZUxleGVyICh5eWlu
cHV0OiBpbnQgLT4gc3RyaW5nKSA9CmxldAl2YWwgeXlnb25lMDppbnQ9MQoJdmFsIHl5YiA9IHJl
ZiAiXG4iIAkJKCogYnVmZmVyICopCgl2YWwgeXlibDogaW50IHJlZiA9IHJlZiAxCQkoKmJ1ZmZl
ciBsZW5ndGggKikKCXZhbCB5eWJ1ZnBvczogaW50IHJlZiA9IHJlZiAxCQkoKiBsb2NhdGlvbiBv
ZiBuZXh0IGNoYXJhY3RlciB0byB1c2UgKikKCXZhbCB5eWdvbmU6IGludCByZWYgPSByZWYgeXln
b25lMAkoKiBwb3NpdGlvbiBpbiBmaWxlIG9mIGJlZ2lubmluZyBvZiBidWZmZXIgKikKCXZhbCB5
eWRvbmUgPSByZWYgZmFsc2UJCSgqIGVvZiBmb3VuZCB5ZXQ/ICopCgl2YWwgeXliZWdpbjogaW50
IHJlZiA9IHJlZiAxCQkoKkN1cnJlbnQgJ3N0YXJ0IHN0YXRlJyBmb3IgbGV4ZXIgKikKCgl2YWwg
WVlCRUdJTiA9IGZuIChJbnRlcm5hbC5TdGFydFN0YXRlcy5TVEFSVFNUQVRFIHgpID0+CgkJIHl5
YmVnaW4gOj0geAoKZnVuIGxleCAoeXlhcmcgYXMgKCgpKSkgPQpsZXQgZnVuIGNvbnRpbnVlKCkg
OiBJbnRlcm5hbC5yZXN1bHQgPSAKICBsZXQgZnVuIHNjYW4gKHMsQWNjZXB0aW5nTGVhdmVzIDog
SW50ZXJuYWwueXlmaW5zdGF0ZSBsaXN0IGxpc3QsbCxpMDogaW50KSA9CglsZXQgZnVuIGFjdGlv
biAoaTogaW50LG5pbCkgPSByYWlzZSBMZXhFcnJvcgoJfCBhY3Rpb24gKGksbmlsOjpsKSA9IGFj
dGlvbiAoaS0xLGwpCgl8IGFjdGlvbiAoaSwobm9kZTo6YWN0cyk6OmwpID0KCQljYXNlIG5vZGUg
b2YKCQkgICAgSW50ZXJuYWwuTiB5eWsgPT4gCgkJCShsZXQgZnVuIHl5bWt0ZXh0KCkgPSBTdHJp
bmcuc3Vic3RyaW5nKCF5eWIsaTAsaS1pMCkKCQkJICAgICB2YWwgeXlwb3M6IGludCA9IGkwKyAh
eXlnb25lCgkJCWZ1biBSRUpFQ1QoKSA9IGFjdGlvbihpLGFjdHM6OmwpCgkJCW9wZW4gVXNlckRl
Y2xhcmF0aW9ucyBJbnRlcm5hbC5TdGFydFN0YXRlcwogaW4gKHl5YnVmcG9zIDo9IGk7IGNhc2Ug
eXlrIG9mIAoKCQkJKCogQXBwbGljYXRpb24gYWN0aW9ucyAqKQoKICAxMSA9PiAoVG9rZW4uTGJy
YWNlKQp8IDEzID0+IChUb2tlbi5SYnJhY2UpCnwgMjAgPT4gbGV0IHZhbCB5eXRleHQ9eXlta3Rl
eHQoKSBpbiBUb2tlbi5CaW5kZXIoU3RyaW5nLmV4dHJhY3QoeXl0ZXh0LCAxLCBOT05FKSkgZW5k
CnwgMzUgPT4gbGV0IHZhbCB5eXRleHQ9eXlta3RleHQoKSBpbiBUb2tlbi5SZWFsKGNhc2UgUmVh
bC5mcm9tU3RyaW5nIHl5dGV4dCBvZgoJCQkJICBOT05FID0+CgkJCQkgICAgIGZhaWwoY29uY2F0
WyJiYWQgcmVhbCBjb25zdGFudCAiLCB5eXRleHRdKQoJCQkJfCBTT01FIHIgPT4gcikgZW5kCnwg
MzkgPT4gbGV0IHZhbCB5eXRleHQ9eXlta3RleHQoKSBpbiBUb2tlbi5JbnQoY2FzZSBJbnQuZnJv
bVN0cmluZyB5eXRleHQgb2YKCQkJCU5PTkUgPT4gCgkJCQkgICBmYWlsKGNvbmNhdFsiYmFkIGlu
dCBjb25zdGFudCAiLCB5eXRleHRdKQoJCQkgICAgICB8IFNPTUUgaSA9PiBpKSBlbmQKfCA0MSA9
PiAoY2hhcnMgOj0gW107IFlZQkVHSU4gUzsgY29udGludWUoKSkKfCA0MyA9PiAoWVlCRUdJTiBD
OyBjb250aW51ZSgpKQp8IDQ5ID0+IGxldCB2YWwgeXl0ZXh0PXl5bWt0ZXh0KCkgaW4gVG9rZW4u
SWRlbnRpZmllciB5eXRleHQgZW5kCnwgNSA9PiAoY29udGludWUoKSkKfCA1NSA9PiAoWVlCRUdJ
TiBJTklUSUFMOyBjb250aW51ZSgpKQp8IDU4ID0+IChjb250aW51ZSgpKQp8IDYwID0+IChsZXQg
dmFsIHMgPSAoaW1wbG9kZShyZXYoIWNoYXJzKSkgYmVmb3JlIGNoYXJzIDo9IG5pbCkKCSAgICAg
ICBpbiBZWUJFR0lOIElOSVRJQUwKCQkgIDsgVG9rZW4uU3RyaW5nIHMKCSAgICAgICBlbmQpCnwg
NjIgPT4gbGV0IHZhbCB5eXRleHQ9eXlta3RleHQoKSBpbiBjaGFycyA6PSBTdHJpbmcuc3ViKHl5
dGV4dCwgMCkgOjogIWNoYXJzCgkgICAgICAgOyBjb250aW51ZSgpIGVuZAp8IDcgPT4gKFRva2Vu
LkxicmFja2V0KQp8IDkgPT4gKFRva2VuLlJicmFja2V0KQp8IF8gPT4gcmFpc2UgSW50ZXJuYWwu
TGV4ZXJFcnJvcgoKCQkpIGVuZCApCgoJdmFsIHtmaW4sdHJhbnN9ID0gVW5zYWZlLlZlY3Rvci5z
dWIoSW50ZXJuYWwudGFiLCBzKQoJdmFsIE5ld0FjY2VwdGluZ0xlYXZlcyA9IGZpbjo6QWNjZXB0
aW5nTGVhdmVzCglpbiBpZiBsID0gIXl5YmwgdGhlbgoJICAgICBpZiB0cmFucyA9ICN0cmFucyhW
ZWN0b3Iuc3ViKEludGVybmFsLnRhYiwwKSkKCSAgICAgICB0aGVuIGFjdGlvbihsLE5ld0FjY2Vw
dGluZ0xlYXZlcwopIGVsc2UJICAgIGxldCB2YWwgbmV3Y2hhcnM9IGlmICF5eWRvbmUgdGhlbiAi
IiBlbHNlIHl5aW5wdXQgMTAyNAoJICAgIGluIGlmIChTdHJpbmcuc2l6ZSBuZXdjaGFycyk9MAoJ
CSAgdGhlbiAoeXlkb25lIDo9IHRydWU7CgkJICAgICAgICBpZiAobD1pMCkgdGhlbiBVc2VyRGVj
bGFyYXRpb25zLmVvZiB5eWFyZwoJCSAgICAgICAgICAgICAgICAgIGVsc2UgYWN0aW9uKGwsTmV3
QWNjZXB0aW5nTGVhdmVzKSkKCQkgIGVsc2UgKGlmIGkwPWwgdGhlbiB5eWIgOj0gbmV3Y2hhcnMK
CQkgICAgIGVsc2UgeXliIDo9IFN0cmluZy5zdWJzdHJpbmcoIXl5YixpMCxsLWkwKV5uZXdjaGFy
czsKCQkgICAgIHl5Z29uZSA6PSAheXlnb25lK2kwOwoJCSAgICAgeXlibCA6PSBTdHJpbmcuc2l6
ZSAoIXl5Yik7CgkJICAgICBzY2FuIChzLEFjY2VwdGluZ0xlYXZlcyxsLWkwLDApKQoJICAgIGVu
ZAoJICBlbHNlIGxldCB2YWwgTmV3Q2hhciA9IENoYXIub3JkKFVuc2FmZS5DaGFyVmVjdG9yLnN1
YigheXliLGwpKQoJCXZhbCBOZXdDaGFyID0gaWYgTmV3Q2hhcjwxMjggdGhlbiBOZXdDaGFyIGVs
c2UgMTI4CgkJdmFsIE5ld1N0YXRlID0gQ2hhci5vcmQoVW5zYWZlLkNoYXJWZWN0b3Iuc3ViKHRy
YW5zLE5ld0NoYXIpKQoJCWluIGlmIE5ld1N0YXRlPTAgdGhlbiBhY3Rpb24obCxOZXdBY2NlcHRp
bmdMZWF2ZXMpCgkJZWxzZSBzY2FuKE5ld1N0YXRlLE5ld0FjY2VwdGluZ0xlYXZlcyxsKzEsaTAp
CgllbmQKCWVuZAooKgoJdmFsIHN0YXJ0PSBpZiBTdHJpbmcuc3Vic3RyaW5nKCF5eWIsIXl5YnVm
cG9zLTEsMSk9IlxuIgp0aGVuICF5eWJlZ2luKzEgZWxzZSAheXliZWdpbgoqKQoJaW4gc2Nhbigh
eXliZWdpbiAoKiBzdGFydCAqKSxuaWwsIXl5YnVmcG9zLCF5eWJ1ZnBvcykKICAgIGVuZAppbiBj
b250aW51ZSBlbmQKICBpbiBsZXgKICBlbmQKZW5kCnNpZ25hdHVyZSBQUk9HUkFNID0KICAgc2ln
CiAgICAgIGluY2x1ZGUgQ0FNTAogICAgICAoKioqKiBCYXNpYyB0eXBlczogcHJvZ3JhbXMsIHZh
bHVlcywgLi4uICoqKiopCgogICAgICBkYXRhdHlwZSBrID0KCSBBY29zIHwgQWRkaSB8IEFkZGYg
fCBBcHBseSB8IEFzaW4gfCBDbGFtcGYgfCBDb25lIHwgQ29zIHwgQ3ViZQogICAgICAgfCBDeWxp
bmRlciB8IERpZmZlcmVuY2UgfCBEaXZpIHwgRGl2ZiB8IEVxaSB8IEVxZiB8IEZsb29yIHwgRnJh
YwogICAgICAgfCBHZXQgfCBHZXR4IHwgR2V0eSB8IEdldHogfCBJZiB8IEludGVyc2VjdCB8IExl
bmd0aCB8IExlc3NpIHwgTGVzc2YKICAgICAgIHwgTGlnaHQgfCBNb2RpIHwgTXVsaSB8IE11bGYg
fCBOZWdpIHwgTmVnZiB8IFBsYW5lIHwgUG9pbnQKICAgICAgIHwgUG9pbnRsaWdodCB8IFJlYWwg
fCBSZW5kZXIgfCBSb3RhdGV4IHwgUm90YXRleSB8IFJvdGF0ZXogfCBTY2FsZQogICAgICAgfCBT
aW4gfCBTcGhlcmUgfCBTcG90bGlnaHQgfCBTcXJ0IHwgU3ViaSB8IFN1YmYgfCBUcmFuc2xhdGUg
fCBVbmlvbgogICAgICAgfCBVc2NhbGUKCiAgICAgICgqIFByb2dyYW0gdG9rZW5zICopCiAgICAg
IGRhdGF0eXBlIHQgPQoJIEZ1biBvZiB0IGxpc3QKICAgICAgIHwgQXJyIG9mIHQgbGlzdAogICAg
ICAgfCBJZGVudCBvZiBzdHJpbmcKICAgICAgIHwgQmluZGVyIG9mIHN0cmluZwogICAgICAgfCBJ
bnQgb2YgaW50CiAgICAgICB8IEZsb2F0IG9mIGZsb2F0CiAgICAgICB8IEJvb2wgb2YgYm9vbAog
ICAgICAgfCBTdHJpbmcgb2Ygc3RyaW5nCiAgICAgICB8IFByaW0gb2YgawoKICAgICAgKCogaW50
ZXJuYWwgcmVwcmVzZW50YXRpb24gb2YgcHJvZ3JhbSB0b2tlbnMgKikKICAgICAgZGF0YXR5cGUg
dCcgPQoJIEZ1bicgb2YgdCcgbGlzdAogICAgICAgfCBBcnInIG9mIHQnIGxpc3QKICAgICAgIHwg
SWRlbnQnIG9mIGludCAoKiBpbmRleCB0byBlbnZpcm9ubWVudCBzdGFjayAqKQogICAgICAgfCBC
aW5kZXInCiAgICAgICAoKgogICAgIHwgSW50JyBvZiBpbnQKICAgICB8IEZsb2F0JyBvZiBmbG9h
dAogICAgIHwgQm9vbCcgb2YgYm9vbAogICAgIHwgU3RyaW5nJyBvZiBzdHJpbmcKCSopCiAgICAg
ICB8IFByaW0nIG9mIGsKICAgICAgIHwgVmFsJyBvZiB2ICgqIGlubGluZWQgdmFsdWUgKikKCiAg
ICAgICgqIFZhbHVlcyAqKQogICAgICBhbmQgdiA9CgkgVkludCBvZiBpbnQKCXwgVkZsb2F0IG9m
IGZsb2F0Cgl8IFZCb29sIG9mIGJvb2wKCXwgVlN0ciBvZiBzdHJpbmcKCXwgVkNsb3Mgb2YgdiBs
aXN0ICogdCcgbGlzdAoJfCBWRnVuIG9mICh2IGxpc3QgLT4gdiBsaXN0KSAoKiBYWFggZm9yIHRo
ZSBjb21waWxlciAqKQoJfCBWQXJyIG9mIHYgYXJyYXkKCXwgVlBvaW50IG9mIHYgKiB2ICogdiAo
KiBYWFggTWF5YmUgdGhlc2Ugc2hvdWxkIGJlIGZsb2F0cz8gKikKCXwgVk9iaiBvZiBvYmoKCXwg
VkxpZ2h0IG9mIHYgKiB2Cgl8IFZQdExpZ2h0IG9mIHYgKiB2Cgl8IFZTdExpZ2h0IG9mIHYgKiB2
ICogdiAqIHYgKiB2CgogICAgICBhbmQgb2JqID0KCSBPT2JqIG9mIGtpbmQgKiBjbG9zdXJlIHJl
ZgoJfCBPVHJhbnNmb3JtIG9mCgkgIG9iaiAqCgkgIE1hdHJpeC50ICogICAgICgqIFdvcmxkIHRv
IG9iamVjdCAqKQoJICBNYXRyaXgudCAqICAgICAoKiBPYmplY3QgdG8gd29ybGQgKikKCSAgZmxv
YXQgKiAgICAgICAgKCogU2NhbGUgZmFjdG9yICopCgkgIGJvb2wgICAgICAgICAgICgqIElzb21l
dHJ5PyAqKQoJfCBPVW5pb24gb2Ygb2JqICogb2JqCgl8IE9JbnRlciBvZiBvYmogKiBvYmoKCXwg
T0RpZmYgb2Ygb2JqICogb2JqCgogICAgICBhbmQga2luZCA9CgkgT1NwaGVyZQoJfCBPQ3ViZQoJ
fCBPQ3lsaW5kCgl8IE9Db25lCgl8IE9QbGFuZQoKICAgICAgYW5kIGNsb3N1cmUgPQoJIFVub3B0
IG9mIHYgKCogVW5vcHRpbWl6ZWQgZnVuY3Rpb24gKikKCXwgT3B0IG9mIHYKCXwgQ3N0IG9mIChm
bG9hdCAqIGZsb2F0ICogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ICogZmxvYXQpCgogICAgICAoKiBU
cmFuc2xhdGlvbiBvZiBhbiBpZGVudGlmaWVyICopCiAgICAgIHZhbCB0cmFuc2xhdGUgOiBzdHJp
bmcgLT4gdAoKICAgICAgKCogR2V0IHRoZSBuYW1lIG9mIGFuIGlkZW50aWZpZXIgKikKKCogICAg
ICB2YWwgbmFtZSA6IHQnIC0+IHN0cmluZyAqKQoKICAgICAgZXhjZXB0aW9uIFN0dWNrX2NvbXB1
dGF0aW9uIG9mIHYgbGlzdCAqIHYgbGlzdCAqIHQnIGxpc3QKICAgICAgZXhjZXB0aW9uIFN0dWNr
X2NvbXB1dGF0aW9uJyAoKiBmb3IgY29tcGlsZXIgKikKCiAgICAgIHZhbCByZWFkOiBUZXh0SU8u
aW5zdHJlYW0gLT4gdCBsaXN0CiAgIGVuZApzdHJ1Y3R1cmUgUHJvZ3JhbTogUFJPR1JBTSA9CnN0
cnVjdAoKb3BlbiBDYW1sCgpkYXRhdHlwZSBrID0KICAgIEFjb3MgfCBBZGRpIHwgQWRkZiB8IEFw
cGx5IHwgQXNpbiB8IENsYW1wZiB8IENvbmUgfCBDb3MgfCBDdWJlCiAgfCBDeWxpbmRlciB8IERp
ZmZlcmVuY2UgfCBEaXZpIHwgRGl2ZiB8IEVxaSB8IEVxZiB8IEZsb29yIHwgRnJhYwogIHwgR2V0
IHwgR2V0eCB8IEdldHkgfCBHZXR6IHwgSWYgfCBJbnRlcnNlY3QgfCBMZW5ndGggfCBMZXNzaSB8
IExlc3NmCiAgfCBMaWdodCB8IE1vZGkgfCBNdWxpIHwgTXVsZiB8IE5lZ2kgfCBOZWdmIHwgUGxh
bmUgfCBQb2ludAogIHwgUG9pbnRsaWdodCB8IFJlYWwgfCBSZW5kZXIgfCBSb3RhdGV4IHwgUm90
YXRleSB8IFJvdGF0ZXogfCBTY2FsZQogIHwgU2luIHwgU3BoZXJlIHwgU3BvdGxpZ2h0IHwgU3Fy
dCB8IFN1YmkgfCBTdWJmIHwgVHJhbnNsYXRlIHwgVW5pb24KICB8IFVzY2FsZQoKZGF0YXR5cGUg
dCA9CiAgICBGdW4gb2YgdCBsaXN0CiAgfCBBcnIgb2YgdCBsaXN0CiAgfCBJZGVudCBvZiBzdHJp
bmcKICB8IEJpbmRlciBvZiBzdHJpbmcKICB8IEludCBvZiBpbnQKICB8IEZsb2F0IG9mIGZsb2F0
CiAgfCBCb29sIG9mIGJvb2wKICB8IFN0cmluZyBvZiBzdHJpbmcKICB8IFByaW0gb2YgawoKZGF0
YXR5cGUgdCcgPQogICAgRnVuJyBvZiB0JyBsaXN0CiAgfCBBcnInIG9mIHQnIGxpc3QKICB8IElk
ZW50JyBvZiBpbnQgKCogaW5kZXggdG8gZW52aXJvbm1lbnQgc3RhY2sgKikKICB8IEJpbmRlcicK
KCoKICB8IEludCcgb2YgaW50CiAgfCBGbG9hdCcgb2YgZmxvYXQKICB8IEJvb2wnIG9mIGJvb2wK
ICB8IFN0cmluZycgb2Ygc3RyaW5nCiopCiAgfCBQcmltJyBvZiBrCiAgfCBWYWwnIG9mIHYgKCog
aW5saW5lZCB2YWx1ZSAqKQoKYW5kIHYgPQogICBWSW50IG9mIGludAogIHwgVkZsb2F0IG9mIGZs
b2F0CiAgfCBWQm9vbCBvZiBib29sCiAgfCBWU3RyIG9mIHN0cmluZwogIHwgVkNsb3Mgb2YgdiBs
aXN0ICogdCcgbGlzdAogIHwgVkZ1biBvZiAodiBsaXN0IC0+IHYgbGlzdCkgKCogWFhYIGZvciB0
aGUgY29tcGlsZXIgKikKICB8IFZBcnIgb2YgdiBhcnJheQogIHwgVlBvaW50IG9mIHYgKiB2ICog
dgogIHwgVk9iaiBvZiBvYmoKICB8IFZMaWdodCBvZiB2ICogdgogIHwgVlB0TGlnaHQgb2YgdiAq
IHYKICB8IFZTdExpZ2h0IG9mIHYgKiB2ICogdiAqIHYgKiB2CgphbmQgb2JqID0KICAgIE9PYmog
b2Yga2luZCAqIGNsb3N1cmUgcmVmCiAgfCBPVHJhbnNmb3JtIG9mCiAgICAgIG9iaiAqCiAgICAg
IE1hdHJpeC50ICogICAgICgqIFdvcmxkIHRvIG9iamVjdCAqKQogICAgICBNYXRyaXgudCAqICAg
ICAoKiBPYmplY3QgdG8gd29ybGQgKikKICAgICAgZmxvYXQgKiAgICAgICAgKCogU2NhbGUgZmFj
dG9yICopCiAgICAgIGJvb2wgICAgICAgICAgICgqIElzb21ldHJ5PyAqKQogIHwgT1VuaW9uIG9m
IG9iaiAqIG9iagogIHwgT0ludGVyIG9mIG9iaiAqIG9iagogIHwgT0RpZmYgb2Ygb2JqICogb2Jq
CgphbmQga2luZCA9CiAgICBPU3BoZXJlCiAgfCBPQ3ViZQogIHwgT0N5bGluZAogIHwgT0NvbmUK
ICB8IE9QbGFuZQoKYW5kIGNsb3N1cmUgPQogICAgVW5vcHQgb2YgdgogIHwgT3B0IG9mIHYKICB8
IENzdCBvZiAoZmxvYXQgKiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgKiBmbG9hdCAqIGZsb2F0KQoK
ZnVuIGNyZWF0ZV9oYXNodGFibGVzIHNpemUgaW5pdCA9CiAgIGxldAogICAgICB2YWwgdGJsOiAo
c3RyaW5nLCB0KSBIYXNodGJsLnQgPSBIYXNodGJsLmNyZWF0ZSBzaXplIAooKiAgICAgIHZhbCB0
YmwnID0gSGFzaHRibC5jcmVhdGUgc2l6ZSAgKikKICAgaW4KICAgICAgTGlzdC5pdGVyIChmbiAo
a2V5LCBkYXRhKSA9PiBIYXNodGJsLmFkZCB0Ymwga2V5IGRhdGEpIGluaXQ7CigqICAgICAgTGlz
dC5pdGVyIChmbiAoZGF0YSwga2V5KSAtPiBIYXNodGJsLmFkZCB0YmwnIGtleSBkYXRhKSBpbml0
OyAqKQogICAgICB0YmwgKCosIHRibCcgKikKICAgZW5kCgp2YWwga2V5d29yZHMoKiwga2V5d29y
ZF9uYW1lKSopID0KICBjcmVhdGVfaGFzaHRhYmxlcyAxMDEKKCogQm9vbGVhbnMgYXJlIGVpdGhl
ciB0aGUgbGl0ZXJhbCB0cnVlIG9yIHRoZSBsaXRlcmFsIGZhbHNlLiAqKQogICAgWyAoInRydWUi
LCBCb29sIHRydWUpLAogICAgICAoImZhbHNlIiwgQm9vbCBmYWxzZSksCigqIE9wZXJhdG9ycyAo
c2VlIGFwcGVuZGl4KSAqKQogICAgICAoImFjb3MiLCBQcmltIEFjb3MpLAogICAgICAoImFkZGki
LCBQcmltIEFkZGkpLAogICAgICAoImFkZGYiLCBQcmltIEFkZGYpLAogICAgICAoImFwcGx5Iiwg
UHJpbSBBcHBseSksCiAgICAgICgiYXNpbiIsIFByaW0gQXNpbiksCiAgICAgICgiY2xhbXBmIiwg
UHJpbSBDbGFtcGYpLAogICAgICAoImNvbmUiLCBQcmltIENvbmUpLAogICAgICAoImNvcyIsIFBy
aW0gQ29zKSwKICAgICAgKCJjdWJlIiwgUHJpbSBDdWJlKSwKICAgICAgKCJjeWxpbmRlciIsIFBy
aW0gQ3lsaW5kZXIpLAogICAgICAoImRpZmZlcmVuY2UiLCBQcmltIERpZmZlcmVuY2UpLAogICAg
ICAoImRpdmkiLCBQcmltIERpdmkpLAogICAgICAoImRpdmYiLCBQcmltIERpdmYpLAogICAgICAo
ImVxaSIsIFByaW0gRXFpKSwKICAgICAgKCJlcWYiLCBQcmltIEVxZiksCiAgICAgICgiZmxvb3Ii
LCBQcmltIEZsb29yKSwKICAgICAgKCJmcmFjIiwgUHJpbSBGcmFjKSwKICAgICAgKCJnZXQiLCBQ
cmltIEdldCksCiAgICAgICgiZ2V0eCIsIFByaW0gR2V0eCksCiAgICAgICgiZ2V0eSIsIFByaW0g
R2V0eSksCiAgICAgICgiZ2V0eiIsIFByaW0gR2V0eiksCiAgICAgICgiaWYiLCBQcmltIElmKSwK
ICAgICAgKCJpbnRlcnNlY3QiLCBQcmltIEludGVyc2VjdCksCiAgICAgICgibGVuZ3RoIiwgUHJp
bSBMZW5ndGgpLAogICAgICAoImxlc3NpIiwgUHJpbSBMZXNzaSksCiAgICAgICgibGVzc2YiLCBQ
cmltIExlc3NmKSwKICAgICAgKCJsaWdodCIsIFByaW0gTGlnaHQpLAogICAgICAoIm1vZGkiLCBQ
cmltIE1vZGkpLAogICAgICAoIm11bGkiLCBQcmltIE11bGkpLAogICAgICAoIm11bGYiLCBQcmlt
IE11bGYpLAogICAgICAoIm5lZ2kiLCBQcmltIE5lZ2kpLAogICAgICAoIm5lZ2YiLCBQcmltIE5l
Z2YpLAogICAgICAoInBsYW5lIiwgUHJpbSBQbGFuZSksCiAgICAgICgicG9pbnQiLCBQcmltIFBv
aW50KSwKICAgICAgKCJwb2ludGxpZ2h0IiwgUHJpbSBQb2ludGxpZ2h0KSwKICAgICAgKCJyZWFs
IiwgUHJpbSBSZWFsKSwKICAgICAgKCJyZW5kZXIiLCBQcmltIFJlbmRlciksCiAgICAgICgicm90
YXRleCIsIFByaW0gUm90YXRleCksCiAgICAgICgicm90YXRleSIsIFByaW0gUm90YXRleSksCiAg
ICAgICgicm90YXRleiIsIFByaW0gUm90YXRleiksCiAgICAgICgic2NhbGUiLCBQcmltIFNjYWxl
KSwKICAgICAgKCJzaW4iLCBQcmltIFNpbiksCiAgICAgICgic3BoZXJlIiwgUHJpbSBTcGhlcmUp
LAogICAgICAoInNwb3RsaWdodCIsIFByaW0gU3BvdGxpZ2h0KSwKICAgICAgKCJzcXJ0IiwgUHJp
bSBTcXJ0KSwKICAgICAgKCJzdWJpIiwgUHJpbSBTdWJpKSwKICAgICAgKCJzdWJmIiwgUHJpbSBT
dWJmKSwKICAgICAgKCJ0cmFuc2xhdGUiLCBQcmltIFRyYW5zbGF0ZSksCiAgICAgICgidW5pb24i
LCBQcmltIFVuaW9uKSwKICAgICAgKCJ1c2NhbGUiLCBQcmltIFVzY2FsZSldCgpmdW4gdHJhbnNs
YXRlIGkgPQogICBIYXNodGJsLmZpbmQga2V5d29yZHMgaQogICBoYW5kbGUgTm90X2ZvdW5kID0+
IElkZW50IGkKCigqIGZ1biBuYW1lIHRva2VuID0KICogICBIYXNodGJsLmZpbmQga2V5d29yZF9u
YW1lCiAqICAgICAobWF0Y2ggdG9rZW4gd2l0aAogKiAgICAgICBQcmltJyBrIC0+IFByaW0gawog
KiAgICAgfCBfICAgICAgIC0+IHJhaXNlIE5vdF9mb3VuZCkKICogCiAqKQpleGNlcHRpb24gU3R1
Y2tfY29tcHV0YXRpb24gb2YgdiBsaXN0ICogdiBsaXN0ICogdCcgbGlzdApleGNlcHRpb24gU3R1
Y2tfY29tcHV0YXRpb24nICgqIGZvciBjb21waWxlciAqKQoKc3RydWN0dXJlIExleFRva2VuID0g
TGV4VG9rZW4oKQpzdHJ1Y3R1cmUgTGV4ID0gTGV4KHN0cnVjdHVyZSBUb2tlbiA9IExleFRva2Vu
KQoKZnVuIHJlYWQoaW5zOiBUZXh0SU8uaW5zdHJlYW0pOiB0IGxpc3QgPQogICBsZXQKICAgICAg
dmFsIGxleDogdW5pdCAtPiBMZXhUb2tlbi50ID0KCSBMZXgubWFrZUxleGVyKGZuIG4gPT4gVGV4
dElPLmlucHV0TihpbnMsIG4pKSgpCiAgICAgIGxvY2FsCgkgdmFsIG5leHQ6IExleFRva2VuLnQg
b3B0aW9uIHJlZiA9IHJlZiBOT05FCiAgICAgIGluCgkgZnVuIHRva2VuKCk6IExleFRva2VuLnQg
PQoJICAgIGNhc2UgIW5leHQgb2YKCSAgICAgICBOT05FID0+IGxleCgpCgkgICAgIHwgU09NRSB0
ID0+IChuZXh0IDo9IE5PTkU7IHQpCgkgZnVuIHNhdmUodDogTGV4VG9rZW4udCk6IHVuaXQgPQoJ
ICAgIG5leHQgOj0gU09NRSB0CiAgICAgIGVuZAogICAgICBmdW4gYmFkKCkgPSBmYWlsd2l0aCAi
aW52YWxpZCBpbnB1dCIKICAgICAgZnVuIG1hbnkoZG9uZTogTGV4VG9rZW4udCAtPiBib29sKTog
dCBsaXN0ID0KCSBsZXQKCSAgICBmdW4gbG9vcChhYzogdCBsaXN0KSA9CgkgICAgICAgY2FzZSBv
bmUoKSBvZgoJCSAgTk9ORSA9PiBpZiBkb25lKHRva2VuKCkpCgkJCSAgICAgdGhlbiByZXYgYWMK
CQkJICBlbHNlIGJhZCgpCgkJfCBTT01FIHQgPT4gbG9vcCh0IDo6IGFjKQoJIGluIGxvb3AgW10K
CSBlbmQKICAgICAgYW5kIG9uZSgpOiB0IG9wdGlvbiA9CgkgbGV0IGZ1biB0b2sgdCA9IFNPTUUg
dAoJIGluIGNhc2UgdG9rZW4oKSBvZgoJICAgIExleFRva2VuLkJpbmRlciB4ID0+IHRvayhCaW5k
ZXIgeCkKCSAgfCBMZXhUb2tlbi5Cb29sIGIgPT4gdG9rKEJvb2wgYikKCSAgfCBMZXhUb2tlbi5J
ZGVudGlmaWVyIHggPT4gdG9rKHRyYW5zbGF0ZSB4KQoJICB8IExleFRva2VuLkludCBpID0+IHRv
ayhJbnQgaSkKCSAgfCBMZXhUb2tlbi5MYnJhY2UgPT4KCSAgICAgICBTT01FKEZ1bihtYW55KGZu
IExleFRva2VuLlJicmFjZSA9PiB0cnVlIHwgXyA9PiBmYWxzZSkpKQoJICB8IExleFRva2VuLkxi
cmFja2V0ID0+CgkgICAgICAgU09NRShBcnIobWFueShmbiBMZXhUb2tlbi5SYnJhY2tldCA9PiB0
cnVlIHwgXyA9PmZhbHNlKSkpCgkgIHwgTGV4VG9rZW4uUmVhbCByID0+IHRvayhGbG9hdCByKQoJ
ICB8IExleFRva2VuLlN0cmluZyBzID0+IHRvayhTdHJpbmcgcykKCSAgfCB0ID0+IChzYXZlIHQ7
IE5PTkUpCgkgZW5kCiAgIGluIG1hbnkoZm4gTGV4VG9rZW4uRW9mID0+IHRydWUgfCBfID0+IGZh
bHNlKQogICBlbmQKCmVuZApzaWduYXR1cmUgUFBNID0KICAgc2lnCiAgICAgIGluY2x1ZGUgQ0FN
TAoKICAgICAgdHlwZSBwaXhtYXAKCiAgICAgIHZhbCBpbml0IDogKCp3aWR0aDoqKWludCAqICgq
aGVpZ2h0OiopaW50IC0+IHBpeG1hcAogICAgICB2YWwgZHVtcCA6IHN0cmluZyAqIHBpeG1hcCAt
PiB1bml0CigqICAgICAgdmFsIGxvYWQgOiBzdHJpbmcgLT4gcGl4bWFwICopCgogICAgICB2YWwg
d2lkdGggOiBwaXhtYXAgLT4gaW50CiAgICAgIHZhbCBoZWlnaHQgOiBwaXhtYXAgLT4gaW50Cgog
ICAgICB2YWwgZ2V0IDogcGl4bWFwICogaW50ICogaW50ICogaW50IC0+IGludAogICAgICB2YWwg
c2V0IDogcGl4bWFwICogaW50ICogaW50ICogaW50ICogaW50IC0+IHVuaXQKICAgICAgdmFsIHNl
dHAgOiBwaXhtYXAgKiBpbnQgKiBpbnQgKiBpbnQgKiBpbnQgKiBpbnQgLT4gdW5pdAogICBlbmQK
c3RydWN0dXJlIFBwbTogUFBNID0Kc3RydWN0CiAgIApvcGVuIENhbWwKCnN0cnVjdHVyZSBBcnJh
eSA9IFdvcmQ4QXJyYXkKc3RydWN0dXJlIFdvcmQgPSBXb3JkOAogICAKdHlwZSBwaXhtYXAgPSBB
cnJheS5hcnJheSAqIGludAoKZnVuIGdldCAoKGltZywgd2lkdGgpLCBpLCBqLCBrKSA9CiAgIFdv
cmQudG9JbnQgKEFycmF5LnN1YiAoaW1nLCAoKGogKiB3aWR0aCkgKyBpKSAqIDMgKyBrKSkKCmZ1
biBzZXQgKChpbWcsIHdpZHRoKSwgaSwgaiwgaywgdikgPQogICBBcnJheS51cGRhdGUgKGltZywg
KChqICogd2lkdGgpICsgaSkgKiAzICsgaywgV29yZC5mcm9tSW50IHYpCgpmdW4gc2V0cCAoKGlt
Zywgd2lkdGgpLCBpLCBqLCByLCBnLCBiKSA9CiAgbGV0IHZhbCBwID0gKChqICogd2lkdGgpICsg
aSkgKiAzCiAgaW4gQXJyYXkudXBkYXRlKGltZywgcCwgV29yZC5mcm9tSW50IHIpCiAgICAgOyBB
cnJheS51cGRhdGUoaW1nLCBwICsgMSwgV29yZC5mcm9tSW50IGcpCiAgICAgOyBBcnJheS51cGRh
dGUoaW1nLCBwICsgMiwgV29yZC5mcm9tSW50IGIpCiAgZW5kCgpmdW4gaW5pdCAod2lkdGgsIGhl
aWdodCkgPQogICAoQXJyYXkuYXJyYXkoaGVpZ2h0ICogd2lkdGggKiAzLCAwdzApLCB3aWR0aCkK
CmZ1biB3aWR0aCAocywgd2lkdGgpID0gd2lkdGgKZnVuIGhlaWdodCAocywgd2lkdGgpID0gQXJy
YXkubGVuZ3RoIHMgZGl2IHdpZHRoIGRpdiAzCgpmdW4gZHVtcCAoZmlsZSwgKGltZywgd2lkdGgp
KSA9CiAgbGV0CiAgICAgdmFsIHN6ID0gQXJyYXkubGVuZ3RoIGltZwogICAgIHZhbCBoZWlnaHQg
PSBzeiBkaXYgMyBkaXYgd2lkdGgKICAgICB2YWwgZiA9IG9wZW5fb3V0X2JpbiBmaWxlCiAgaW4g
b3V0cHV0X3N0cmluZyAoZiwgIlA2XG4jIFBMIENsdWIgLSB0cmFuc2xhdGVkIHRvIFNNTFxuIikK
ICAgICA7IG91dHB1dF9zdHJpbmcgKGYsIGNvbmNhdFtJbnQudG9TdHJpbmcgd2lkdGgsICIgIiwK
CQkJICAgICAgIEludC50b1N0cmluZyBoZWlnaHQsICJcbjI1NVxuIl0pCiAgICAgOyBvdXRwdXRf
c3RyaW5nIChmLCBCeXRlLnVucGFja1N0cmluZyhpbWcsIDAsIE5PTkUpKQogICAgIDsgY2xvc2Vf
b3V0IGYKICBlbmQKCigqIGZ1biBsb2FkIGZpbGUgPQogKiAgIGxldCBmID0gb3Blbl9pbl9iaW4g
ZmlsZSBpbgogKiAgIGFzc2VydCAoaW5wdXRfbGluZSBmID0gIlA2Iik7CiAqICAgYXNzZXJ0ICgo
aW5wdXRfbGluZSBmKS5bMF0gPSAnIycpOwogKiAgIGxldCBzID0gaW5wdXRfbGluZSBmIGluCiAq
ICAgbGV0IGkgPSByZWYgMCBpbgogKiAgIHdoaWxlIHMuWyFpXSA+PSAnMCcgJiYgcy5bIWldIDw9
ICc5JyBkbyBpbmNyIGkgZG9uZTsKICogICBsZXQgd2lkdGggPSBpbnRfb2Zfc3RyaW5nIChTdHJp
bmcuc3ViIHMgMCAhaSkgaW4KICogICBsZXQgaGVpZ2h0ID0KICogICAgIGludF9vZl9zdHJpbmcg
KFN0cmluZy5zdWIgcyAoIWkgKyAxKSAoU3RyaW5nLmxlbmd0aCBzIC0gIWkgLSAxKSkgaW4KICog
ICBhc3NlcnQgKGlucHV0X2xpbmUgZiA9ICIyNTUiKTsKICogICBsZXQgKHMsIF8pIGFzIGltZyA9
IGluaXQgd2lkdGggaGVpZ2h0IGluCiAqICAgcmVhbGx5X2lucHV0IGYgcyAwIChTdHJpbmcubGVu
Z3RoIHMpOwogKiAgIGNsb3NlX2luIGY7CiAqICAgaW1nCiAqKQplbmQKc2lnbmF0dXJlIFJFTkRF
UiA9CiAgIHNpZwogICAgICBpbmNsdWRlIENBTUwKCSAKICAgICAgdmFsIGFwcGx5IDogKFByb2dy
YW0udiAqIFByb2dyYW0udiBsaXN0IC0+IFByb2dyYW0udiBsaXN0KSByZWYKICAgICAgdmFsIGlu
bGluZV9jbG9zdXJlIDogKFByb2dyYW0udiAtPiBQcm9ncmFtLnYpIHJlZgoKICAgICAgdmFsIGYg
OgoJICgqYW1iOiopKGZsb2F0ICogZmxvYXQgKiBmbG9hdCkgKiAoKmxpZ2h0czoqKSBQcm9ncmFt
LnYgYXJyYXkgKgoJICgqb2JqOiopUHJvZ3JhbS5vYmogKiAoKmRlcHRoOiopaW50ICogKCpmb3Y6
KilmbG9hdCAqCgkgKCp3aWQ6KilpbnQgKiAoKmh0OiopaW50ICoKCSAoKmZpbGU6KilzdHJpbmcg
LT4gdW5pdAogICBlbmQKc3RydWN0dXJlIFJlbmRlcjogUkVOREVSID0Kc3RydWN0CgpvcGVuIENh
bWwKaW5maXggOSAqKgpvcGVuIFByb2dyYW0KCigqIFNjZW5lIGRlc2NyaXB0aW9uICopCmRhdGF0
eXBlIGtpbmQgPSAoKiBzZWN0aW9uIDMuMiAqKQogICAgU1NwaGVyZSBvZiBNYXRyaXgudiAoKiBD
ZW50ZXIgKikgKiBmbG9hdCAoKiBTcXVhcmUgb2YgdGhlIHJhZGl1cyAqKQogIHwgU0VsbGlwcwog
IHwgU0N1YmUgb2YgTWF0cml4LnYgKCogTm9ybWFsIHggPSAwICopICoKICAgICAgICAgICAgIE1h
dHJpeC52ICgqIE5vcm1hbCB5ID0gMCAqKSAqCiAgICAgICAgICAgICBNYXRyaXgudiAoKiBOb3Jt
YWwgeiA9IDAgKikKICB8IFNDeWxpbmQgb2YgTWF0cml4LnYgKCogTm9ybWFsICopCiAgfCBTQ29u
ZSBvZiBNYXRyaXgudiAoKiBOb3JtYWwgKikKICB8IFNQbGFuZSBvZiBNYXRyaXgudiAoKiBFcXVh
dGlvbiAqKSAqIE1hdHJpeC52ICgqIE5vcm1hbCAqKQoKZGF0YXR5cGUgc2NlbmUgPSAoKiBzZWN0
aW9uIDMuNyAqKQogICAgU09iaiBvZiBraW5kICogY2xvc3VyZSByZWYgKCogc3VyZmFjZSBmdW5j
dGlvbiAqKSAqIE1hdHJpeC50CiAgfCBTQm91bmQgb2Ygc2NlbmUgKiBNYXRyaXgudiAoKiBDZW50
ZXIgKikgKiBmbG9hdCAoKiBTcXVhcmUgb2YgdGhlIHJhZGl1cyAqKQogIHwgU1VuaW9uIG9mIHNj
ZW5lICogc2NlbmUKICB8IFNJbnRlciBvZiBzY2VuZSAqIHNjZW5lCiAgfCBTRGlmZiBvZiBzY2Vu
ZSAqIHNjZW5lCgpkYXRhdHlwZSBsaWdodCA9ICgqIHNlY3Rpb24gMy41ICopCiAgICBMaWdodCBv
ZiBNYXRyaXgudiAoKiBuZWdhdGVkICYgbm9ybWFsaXplZCAqKSAqIChmbG9hdCAqIGZsb2F0ICog
ZmxvYXQpCiAgfCBQdExpZ2h0IG9mIE1hdHJpeC52ICogKGZsb2F0ICogZmxvYXQgKiBmbG9hdCkK
ICB8IFN0TGlnaHQgb2YgTWF0cml4LnYgKiBNYXRyaXgudiAoKiBuZWdhdGVkICYgbm9ybWFsaXpl
ZCAqKSAqCiAgICAgICAgICAgICAgIChmbG9hdCAqIGZsb2F0ICogZmxvYXQpICogZmxvYXQgKCog
Y29zICopICogZmxvYXQKCnR5cGUgZGVzYyA9CiAgeyBhbWIgOiBmbG9hdCAqIGZsb2F0ICogZmxv
YXQsCiAgICBsaWdodHMgOiBsaWdodCBhcnJheSwKICAgIHNjZW5lIDogc2NlbmUgfQoKb3BlbiBN
YXRoCm9wZW4gTWF0cml4CgooKioqKiBTY2VuZSBjYWxjdWxhdGlvbiAqKioqKQoKKCogUGxhbmUg
ZXF1YXRpb24gYW5kIG5vcm1hbCBpbiB3b3JsZCBjb29yZGluYXRlcyAqKQpmdW4gcGxhbmVfZXEo
bSwgdikgPQogIGxldAogICAgIHZhbCBuID0gdm11bCAodHJhbnNwb3NlIG0sIHYgKQogIGluCiAg
ICAgKG4sIG5vcm1hbGl6ZSgjMSBuLCAjMiBuLCAjMyBuLCAwLjApKQogIGVuZAoKdmFsIG9yaWdp
biA9ICggMC4wLCAwLjAsIDAuMCwgMS4wICkKdmFsIGN1YmVfY2VudGVyID0gKCAwLjUsIDAuNSwg
MC41LCAxLjAgKQp2YWwgY3lsaW5kZXJfY2VudGVyID0gKCAwLjAsIDAuNSwgMC4wLCAxLjAgKQp2
YWwgY29uZV9jZW50ZXIgPSAoIDAuMCwgMS4wLCAwLjAsIDEuMCApCgpmdW4gaW50ZXJuX29iaiht
LCBtMSwgc2NhbGUsIGlzb20sIG9iKSA9CigqIGFwcGx5IHRyYW5zZm9ybWF0aW9ucyAqKQogIGNh
c2Ugb2Igb2YKICAgIE9PYmogKE9TcGhlcmUsIGYpID0+CiAgICAgICBpZiBpc29tCgkgIHRoZW4K
CSAgICAgbGV0CgkJdmFsIGNlbnRlciA9IHZtdWwgKG0xLCBvcmlnaW4pCgkJdmFsIHJhZGl1cyA9
IHNjYWxlICogc2NhbGUKCSAgICAgaW4KCQlTQm91bmQgKFNPYmogKFNTcGhlcmUgKGNlbnRlciwg
cmFkaXVzKSwgZiwgbSksIGNlbnRlciwgcmFkaXVzKQoJICAgICBlbmQKICAgICAgIGVsc2UKCSAg
bGV0CgkgICAgIHZhbCBjZW50ZXIgPSB2bXVsIChtMSwgb3JpZ2luKQoJICAgICB2YWwgcmFkaXVz
ID0gc2NhbGUgKiBzY2FsZQoJICBpbgoJICAgICBTQm91bmQgKFNPYmogKFNFbGxpcHMsIGYsIG0p
LCBjZW50ZXIsIHJhZGl1cykKCSAgZW5kCiAgfCBPT2JqIChPQ3ViZSwgZikgPT4KICAgICAgbGV0
CgkgdmFsIChueCwgbngnKSA9IHBsYW5lX2VxKG0sICgxLjAsIDAuMCwgMC4wLCAwLjApKQoJIHZh
bCAobnksIG55JykgPSBwbGFuZV9lcShtLCAoMC4wLCAxLjAsIDAuMCwgMC4wKSkKCSB2YWwgKG56
LCBueicpID0gcGxhbmVfZXEobSwgKDAuMCwgMC4wLCAxLjAsIDAuMCkpCgkgdmFsIGMgPSBTT2Jq
IChTQ3ViZSAobngnLCBueScsIG56JyksIGYsIG0pCiAgICAgIGluCgkgU0JvdW5kIChjLCB2bXVs
IChtMSwgY3ViZV9jZW50ZXIpLCBzY2FsZSAqIHNjYWxlICogMC43NSkKICAgICAgZW5kCiAgfCBP
T2JqIChPQ3lsaW5kLCBmKSA9PgogICAgICBsZXQKCSB2YWwgKG4sIG4nKSA9IHBsYW5lX2VxKG0s
ICgwLjAsIDEuMCwgMC4wLCAwLjApKQoJIHZhbCBjID0gU09iaiAoU0N5bGluZCBuJywgZiwgbSkK
ICAgICAgaW4KCSBTQm91bmQgKGMsIHZtdWwobTEsIGN5bGluZGVyX2NlbnRlciksIHNjYWxlICog
c2NhbGUgKiAxLjI1KQogICAgICBlbmQKICB8IE9PYmogKE9Db25lLCBmKSA9PgogICAgICBsZXQK
CSB2YWwgKG4sIG4nKSA9IHBsYW5lX2VxKG0sICgwLjAsIDEuMCwgMC4wLCAwLjApKQoJIHZhbCBj
ID0gU09iaiAoU0NvbmUgbicsIGYsIG0pCiAgICAgIGluCgkgU0JvdW5kIChjLCB2bXVsKG0xLCBj
b25lX2NlbnRlciksIHNjYWxlICogc2NhbGUpCiAgICAgIGVuZAogIHwgT09iaiAoT1BsYW5lLCBm
KSA9PgogICAgICBsZXQKCSB2YWwgKG4sIG4nKSA9IHBsYW5lX2VxKG0sICgwLjAsIDEuMCwgMC4w
LCAwLjApKQogICAgICBpbgoJIFNPYmogKFNQbGFuZSAobiwgbicpLCBmLCBtKQogICAgICBlbmQK
ICB8IE9UcmFuc2Zvcm0gKG8nLCBtJywgbScxLCBzY2FsZScsIGlzb20nKSA9PgogICAgICBpbnRl
cm5fb2JqCiAgICAgICAgKE1hdHJpeC5tdWwobScsIG0pLCBNYXRyaXgubXVsKG0xLCBtJzEpLAoJ
IHNjYWxlICogc2NhbGUnLCBpc29tIGFuZGFsc28gaXNvbScsIG8nKQogIHwgT1VuaW9uIChvMSwg
bzIpID0+CiAgICAgIFNVbmlvbiAoaW50ZXJuX29iaihtLCBtMSwgc2NhbGUsIGlzb20sIG8xKSwK
CSAgICAgIGludGVybl9vYmoobSwgbTEsIHNjYWxlLCBpc29tLCBvMikpCiAgfCBPSW50ZXIgKG8x
LCBvMikgPT4KICAgICAgU0ludGVyIChpbnRlcm5fb2JqKG0sIG0xLCBzY2FsZSwgaXNvbSwgbzEp
LAoJICAgICAgaW50ZXJuX29iaihtLCBtMSwgc2NhbGUsIGlzb20sIG8yKSkKICB8IE9EaWZmIChP
RGlmZiAobzEsIG8yKSwgbzMpID0+CiAgICAgICgqIEJldHRlciB0byBoYXZlIHVuaW9ucyB0aGF0
IGRpZmZzIGZvciBpbnRyb2R1Y2luZyBib3VuZHMgKikKICAgICAgaW50ZXJuX29iaihtLCBtMSwg
c2NhbGUsIGlzb20sIChPRGlmZiAobzEsIE9VbmlvbiAobzIsIG8zKSkpKQogIHwgT0RpZmYgKG8x
LCBvMikgPT4KICAgICAgU0RpZmYgKGludGVybl9vYmoobSwgbTEsIHNjYWxlLCBpc29tLCBvMSks
CgkgICAgIGludGVybl9vYmoobSwgbTEsIHNjYWxlLCBpc29tLCBvMikpCgpmdW4gaW50ZXJuX2xp
Z2h0cyBhID0KICBBcnJheS5tYXAKICAgIChmbiBWTGlnaHQgKFZQb2ludCAoVkZsb2F0IHgsIFZG
bG9hdCB5LCBWRmxvYXQgeiksCiAgICAgICAgICAgICAgICAgVlBvaW50IChWRmxvYXQgciwgVkZs
b2F0IGcsIFZGbG9hdCBiKSkgPT4KICAgICAgICAgICBMaWdodCAobm9ybWFsaXplIChuZWcgKHgs
IHksIHosIDAuMCkpLCAociwgZywgYikpCiAgICAgICB8IFZQdExpZ2h0IChWUG9pbnQgKFZGbG9h
dCB4LCBWRmxvYXQgeSwgVkZsb2F0IHopLAogICAgICAgICAgICAgICAgICAgVlBvaW50IChWRmxv
YXQgciwgVkZsb2F0IGcsIFZGbG9hdCBiKSkgPT4KICAgICAgICAgICBQdExpZ2h0ICgoeCwgeSwg
eiwgMS4wKSwgKHIsIGcsIGIpKQogICAgICAgfCBWU3RMaWdodCAoVlBvaW50IChWRmxvYXQgeCwg
VkZsb2F0IHksIFZGbG9hdCB6KSwKICAgICAgICAgICAgICAgICAgIFZQb2ludCAoVkZsb2F0IHgn
LCBWRmxvYXQgeScsIFZGbG9hdCB6JyksCiAgICAgICAgICAgICAgICAgICBWUG9pbnQgKFZGbG9h
dCByLCBWRmxvYXQgZywgVkZsb2F0IGIpLAogICAgICAgICAgICAgICAgICAgVkZsb2F0IGN1dG9m
ZiwgVkZsb2F0IGV4cCkgPT4KICAgICAgICAgICBTdExpZ2h0ICgoeCwgeSwgeiwgMS4wKSwKICAg
ICAgICAgICAgICAgICAgICBub3JtYWxpemUgKHggLSB4JywgeSAtIHknLCB6IC0geicsIDAuMCks
CiAgICAgICAgICAgICAgICAgICAgKHIsIGcsIGIpLCBkY29zIGN1dG9mZiwgZXhwKQogICAgICAg
fCBfID0+CiAgICAgICAgICAgcmFpc2UoRmFpbCAiYXNzZXJ0IGZhbHNlIikpCiAgICBhCgooKioq
KiBTY2VuZSBvcHRpbWl6YXRpb24gKioqKikKCmZ1biBmbGF0dGVuX3JlYyhzYywgcmVtKSA9CiAg
Y2FzZSBzYyBvZgogICAgU1VuaW9uIChzYzEsIHNjMikgPT4gZmxhdHRlbl9yZWMoc2MxLCBmbGF0
dGVuX3JlYyhzYzIsIHJlbSkpCiAgfCBzYyAgICAgICAgICAgICAgICA9PiBzYyA6OiByZW0KCmZ1
biBmbGF0dGVuX3VuaW9uIHNjID0gZmxhdHRlbl9yZWMoc2MsIFtdKQoKZnVuIG9iamVjdF9jb3N0
IGsgOiBpbnQgPQogIGNhc2UgayBvZgogICAgU1NwaGVyZSBfID0+IDEKICB8IFNFbGxpcHMgICA9
PiAyCiAgfCBTQ3ViZSBfICAgPT4gNAogIHwgU0N5bGluZCBfID0+IDIKICB8IFNDb25lIF8gICA9
PiAyCiAgfCBTUGxhbmUgXyAgPT4gMCAoKiBQbGFuZXMgZG8gbm90IGhhdmUgYSBib3VuZGluZyBi
b3ggYW55d2F5ICopCgpmdW4gYWRkX2JvdW5kIChyMCwgKHgsIHIsIGNvc3QsIHNjKSkgPQogIGlm
IHIwIDwgMC4wCiAgICAgdGhlbgoJIGlmIHIgPCAwLjAgb3JlbHNlIGNvc3QgPD0gMQoJICAgIHRo
ZW4gKGNvc3QsIHNjKQoJIGVsc2UKCSAgICAoMSwgU0JvdW5kIChzYywgeCwgcikpCiAgZWxzZQog
ICAgICgqIENvc3Qgb2YgYm91bmRzICopCiAgICAgbGV0Cgl2YWwgYzAgPSByMCArIHIgKiBmbG9h
dCBjb3N0IAoJKCogQ29zdCBvZm91dCBib3VuZHMgKikKCXZhbCBjMSA9IHIwICogZmxvYXQgY29z
dAogICAgIGluCglpZiBjMCA8IGMxIHRoZW4KCSAgICgxLCBTQm91bmQgKHNjLCB4LCByKSkKCWVs
c2UKCSAgIChjb3N0LCBzYykKICAgICBlbmQKCmZ1biB1bmlvbl9ib3VuZCAoZHNjMSBhcyAoeDEs
IHIxLCBjb3N0MSwgc2MxKSwKCQkgZHNjMiBhcyAoeDIsIHIyLCBjb3N0Miwgc2MyKSkgPQogIGlm
IHIxIDwgMC4wIHRoZW4KICAgIGxldAogICAgICAgdmFsIChjb3N0MicsIHNjMicpID0gYWRkX2Jv
dW5kKHIxLCBkc2MyKQogICAgaW4KICAgICAgICh4MSwgcjEsIGNvc3QxLCBTVW5pb24gKHNjMSwg
c2MyJykpCiAgICBlbmQKICBlbHNlIGlmIHIyIDwgMC4wIHRoZW4KICAgIGxldAogICAgICAgdmFs
IChjb3N0MScsIHNjMScpID0gYWRkX2JvdW5kIChyMiwgZHNjMSkKICAgIGluCiAgICAgICAoeDIs
IHIyLCBjb3N0MiwgU1VuaW9uIChzYzEnLCBzYzIpKQogICAgZW5kCiAgZWxzZQogICAgbGV0CiAg
ICAgICB2YWwgZCA9IHNxcnQgKHNxdWFyZSAoc3ViKHgyLCB4MSkpKQogICAgICAgdmFsIHIxJyA9
IHNxcnQgcjEKICAgICAgIHZhbCByMicgPSBzcXJ0IHIyCiAgICBpbgogICAgICAgaWYgZCArIHIy
JyA8PSByMScgdGhlbgoJICBsZXQKCSAgICAgdmFsIChjb3N0MicsIHNjMicpID0gYWRkX2JvdW5k
IChyMSwgZHNjMikKCSAgaW4KCSAgICAgKHgxLCByMSwgY29zdDEgKyBjb3N0MicsIFNVbmlvbiAo
c2MxLCBzYzInKSkKCSAgZW5kCiAgICAgICBlbHNlIGlmIGQgKyByMScgPD0gcjInIHRoZW4KCSAg
bGV0CgkgICAgIHZhbCAoY29zdDEnLCBzYzEnKSA9IGFkZF9ib3VuZCAocjIsIGRzYzEpCgkgIGlu
CgkgICAgICh4MiwgcjIsIGNvc3QxJyArIGNvc3QyLCBTVW5pb24gKHNjMScsIHNjMikpCgkgIGVu
ZAoJICAgIGVsc2UKCSAgICAgICBsZXQKCQkgIHZhbCByJyA9IChyMScgKyByMicgKyBkKSAqIDAu
NQoJCSAgdmFsIHIgPSByJyAqIHInCgkJICB2YWwgeCA9IGFkZF9zY2FsZWQgKHgxLCAocicgLSBy
MScpIC8gZCwgc3ViKHgyLCB4MSkpCgkJICB2YWwgKGNvc3QxJywgc2MxJykgPSBhZGRfYm91bmQg
KHIsIGRzYzEpCgkJICB2YWwgKGNvc3QyJywgc2MyJykgPSBhZGRfYm91bmQgKHIsIGRzYzIpCgkg
ICAgICAgaW4KCQkgICh4LCByLCBjb3N0MScgKyBjb3N0MicsIFNVbmlvbiAoc2MxJywgc2MyJykp
CgkgICAgICAgZW5kCiAgICBlbmQKIApmdW4gdW5pb25fcmFkaXVzIChkc2MxIGFzICh4MSwgcjEs
IGNvc3QxLCBzYzEpLAoJCSAgZHNjMiBhcyAoeDIsIHIyLCBjb3N0Miwgc2MyKSkgPQogICAgbGV0
CiAgICAgICB2YWwgZCA9IHNxcnQgKHNxdWFyZSAoc3ViICh4MiwgeDEpKSkKICAgICAgIHZhbCBy
MScgPSBzcXJ0IHIxCiAgICAgICB2YWwgcjInID0gc3FydCByMgogICAgaW4KICAgICAgIGlmIGQg
KyByMicgPD0gcjEnIHRoZW4gcjEgZWxzZQoJICBpZiBkICsgcjEnIDw9IHIyJyB0aGVuIHIyIGVs
c2UKCSAgICAgbGV0CgkJdmFsIHInID0gKHIxJyArIHIyJyArIGQpICogMC41CgkgICAgIGluCgkJ
cicgKiByJwoJICAgICBlbmQKICAgIGVuZAoKZnVuIG1lcmdlMiBsID0KICBjYXNlIGwgb2YKICAg
IHNjMSA6OiBzYzIgOjogciA9PiB1bmlvbl9ib3VuZCAoc2MxLCBzYzIpIDo6IG1lcmdlMiByCiAg
fCBfICAgICAgICAgICAgICAgPT4gbAoKZnVuIG1lcmdlX3VuaW9uIGwgPQogIGNhc2UgbCBvZgog
ICAgW10gICAgPT4gcmFpc2UoRmFpbCAiYXNzZXJ0IGZhbHNlIikKICB8IFtzYzFdID0+IHNjMQog
IHwgbCAgICAgPT4gbWVyZ2VfdW5pb24gKG1lcmdlMiBsKQoKZnVuIG9wdF91bmlvbiBsID0KICBj
YXNlIGwgb2YKICAgIFtdID0+IGwKICB8IFtfXSA9PiBsCiAgfCBbc2MxLCBzYzJdID0+IFt1bmlv
bl9ib3VuZChzYzEsIHNjMildCiAgfCBfID0+CiAgICAgICBsZXQKCSAgdmFsIGMgPSBBcnJheS5v
Zl9saXN0IGwKCSAgdmFsIG4gPSBBcnJheS5sZW5ndGggYwoJICB2YWwgbSA9IEFycmF5Mi5hcnJh
eShuLCBuLCBpbmZpbml0eSkKCSAgdmFsIF8gPQoJICAgICBmb3IoMCwgbiAtIDEsIGZuIGkgPT4K
CQkgZm9yKDAsIG4gLSAxLCBmbiBqID0+CgkJICAgICBpZiBpIDw+IGoKCQkJdGhlbiBBcnJheTIu
dXBkYXRlKG0sIGksIGosCgkJCQkJICAgdW5pb25fcmFkaXVzCgkJCQkJICAgKEFycmF5LnN1Yihj
LCBpKSwgQXJyYXkuc3ViKGMsIGopKSkKCQkgICAgIGVsc2UgKCkpKQoJICB2YWwgcmVtYWluID0g
QXJyYXkuaW5pdCAobiwgZm4gaSA9PiBpKQoJICB2YWwgXyA9CgkgICAgIGZvckRvd24KCSAgICAg
KG4gLSAxLCAxLCBmbiBrID0+CgkgICAgICBsZXQKCQkgdmFsIGdhaW4gPSByZWYgaW5maW5pdHkK
CQkgdmFsIGkwID0gcmVmIDAKCQkgdmFsIGowID0gcmVmIDAKCQkgdmFsIF8gPQoJCSAgICBmb3Io
MCwgaywgZm4gaSA9PgoJCQlmb3IoMCwgaywgZm4gaiA9PgoJCQkgICAgbGV0CgkJCSAgICAgICB2
YWwgaScgPSBBcnJheS5zdWIocmVtYWluLCBpKQoJCQkgICAgICAgdmFsIGonID0gQXJyYXkuc3Vi
KHJlbWFpbiwgaikKCQkJICAgIGluCgkJCSAgICAgICBpZiBBcnJheTIuc3ViKG0sIGknLCBqJykg
PCAhZ2FpbgoJCQkJICB0aGVuIAoJCQkJICAgICAoZ2FpbiA6PSBBcnJheTIuc3ViKG0sIGknLCBq
JykKCQkJCSAgICAgIDsgaTAgOj0gaQoJCQkJICAgICAgOyBqMCA6PSBqKQoJCQkgICAgICAgZWxz
ZSAoKQoJCQkgICAgZW5kKSkKCQkgdmFsIGkgPSBBcnJheS5zdWIocmVtYWluLCAhaTApCgkJIHZh
bCBqID0gQXJyYXkuc3ViKHJlbWFpbiwgIWowKQoJICAgICAgaW4KCQkgQXJyYXkudXBkYXRlKHJl
bWFpbiwgIWowLCBBcnJheS5zdWIocmVtYWluLCBrKSk7CgkJIEFycmF5LnVwZGF0ZShjLCBpLAoJ
CQkgICAgICB1bmlvbl9ib3VuZCAoQXJyYXkuc3ViKGMsIGkpLCBBcnJheS5zdWIoYywgaikpKTsK
CQkgZm9yKDAsIGsgLSAxLCBmbiBqMCA9PgoJCSAgICAgbGV0CgkJCXZhbCBqID0gQXJyYXkuc3Vi
KHJlbWFpbiwgajApCgkJICAgICBpbgoJCQlpZiBpIDw+IGoKCQkJICAgdGhlbgoJCQkgICAgICAo
CgkJCSAgICAgICBBcnJheTIudXBkYXRlCgkJCSAgICAgICAobSwgaSwgaiwKCQkJCXVuaW9uX3Jh
ZGl1cwoJCQkJKEFycmF5LnN1YihjLCBpKSwgQXJyYXkuc3ViKGMsIGopKSk7CgkJCSAgICAgICBB
cnJheTIudXBkYXRlCgkJCSAgICAgICAobSwgaiwgaSwKCQkJCXVuaW9uX3JhZGl1cwoJCQkJKEFy
cmF5LnN1YihjLCBpKSwgQXJyYXkuc3ViKGMsIGopKSkpCgkJCWVsc2UgKCkKCQkgICAgIGVuZCkK
CSAgICAgIGVuZCkKICAgICAgIGluIFtBcnJheS5zdWIoYywgQXJyYXkuc3ViKHJlbWFpbiwgMCkp
XQogICAgICAgZW5kCgpmdW4gb3B0aW1pemVfcmVjIHNjID0KICBjYXNlIHNjIG9mCiAgICBTT2Jq
IChraW5kLCBfLCBfKSA9PgogICAgICAob3JpZ2luLCB+MS4wLCBvYmplY3RfY29zdCBraW5kLCBz
YykKICB8IFNVbmlvbiBfID0+CiAgICAgICBsZXQKCSAgdmFsIGwgPSBMaXN0Lm1hcCBvcHRpbWl6
ZV9yZWMgKGZsYXR0ZW5fdW5pb24gc2MpCgkgIHZhbCB1bmJvdW5kZWQgPSBMaXN0LmZpbHRlciAo
Zm4gKF8sIHIsIF8sIF8pID0+IHIgPCAwLjApIGwKCSAgdmFsIGJvdW5kZWQgPSBMaXN0LmZpbHRl
ciAoZm4gKF8sIHIsIF8sIF8pID0+IHIgPj0gMC4wKSBsCiAgICAgICBpbgoJICBtZXJnZV91bmlv
biAob3B0X3VuaW9uIGJvdW5kZWQgQCB1bmJvdW5kZWQpCiAgICAgICBlbmQKICB8IFNJbnRlciAo
c2MxLCBzYzIpID0+CiAgICAgICBsZXQKCSAgdmFsICh4MSwgcjEsIGNvc3QxLCBzYzEpID0gb3B0
aW1pemVfcmVjIHNjMQoJICB2YWwgKHgyLCByMiwgY29zdDIsIHNjMikgPSBvcHRpbWl6ZV9yZWMg
c2MyCiAgICAgICBpbgoJICAoKiBYWFggV2UgY291bGQgaGF2ZSBhIHRpZ2h0ZXIgYm91bmQuLi4g
KikKCSAgaWYgcjIgPCAwLjAgdGhlbgoJICAgICAoeDIsIHIyLCBjb3N0MiwgU0ludGVyIChzYzEs
IHNjMikpCgkgIGVsc2UgaWYgcjEgPCAwLjAgdGhlbgoJICAgICAoeDEsIHIxLCBjb3N0MSwgU0lu
dGVyIChzYzIsIHNjMSkpCgkgICAgICAgZWxzZSBpZiByMSA8IHIyIHRoZW4KCQkgICh4MSwgcjEs
IGNvc3QxLCBTSW50ZXIgKHNjMSwgc2MyKSkKCQkgICAgZWxzZQoJCSAgICAgICAoeDIsIHIyLCBj
b3N0MSwgU0ludGVyIChzYzIsIHNjMSkpCiAgICAgICBlbmQKICB8IFNEaWZmIChzYzEsIHNjMikg
PT4KICAgICAgIGxldAoJICB2YWwgKHgxLCByMSwgY29zdDEsIHNjMSkgPSBvcHRpbWl6ZV9yZWMg
c2MxCgkgIHZhbCBkc2MyIGFzICh4MiwgcjIsIGNvc3QyLCBzYzIpID0gb3B0aW1pemVfcmVjIHNj
MgoJICB2YWwgKGNvc3QyJywgc2MyJykgPSBhZGRfYm91bmQgKHIxLCBkc2MyKQogICAgICAgaW4K
CSAgKHgxLCByMSwgY29zdDEsIFNEaWZmIChzYzEsIHNjMicpKQogICAgICAgZW5kCiAgfCBTQm91
bmQgKHNjMSwgeCwgcikgPT4KICAgICAgIGxldAoJICB2YWwgKF8sIF8sIGNvc3QxLCBzYzEpID0g
b3B0aW1pemVfcmVjIHNjMQogICAgICAgaW4KCSAgKHgsIHIsIGNvc3QxLCBzYzEpCiAgICAgICBl
bmQKCmZ1biBvcHRpbWl6ZSBzYyA9ICMyIChhZGRfYm91bmQgKH4xLjAsIG9wdGltaXplX3JlYyBz
YykpCgooKioqKiBSZW5kZXJpbmcgKioqKikKCigqIG9wZXJhdGlvbnMgZm9yIGludGVydmFscyAq
KQpmdW4gdW5pb24gKGwxLCBsMikgOiAoZmxvYXQgKiBzY2VuZSAqIGZsb2F0ICogc2NlbmUpIGxp
c3QgPSAoKiBFUzogY2hlY2tlZCAqKQogIGNhc2UgKGwxLCBsMikgb2YKICAgIChbXSwgXykgPT4g
bDIKICB8IChfLCBbXSkgPT4gbDEKICB8ICgoaTEgYXMgKHQxLCBvMSwgdDEnLCBvMScpKSA6OiBy
MSwKICAgICAoaTIgYXMgKHQyLCBvMiwgdDInLCBvMicpKSA6OiByMikgPT4KICAgIGlmIHQxJyA8
IHQyCiAgICAgICB0aGVuIGkxIDo6IHVuaW9uKHIxLCBsMikKICAgIGVsc2UgaWYgdDInIDwgdDEK
CSAgICB0aGVuIGkyIDo6IHVuaW9uKGwxLCByMikKCSBlbHNlCgkgICAgaWYgdDEgPCB0MiB0aGVu
CgkgICAgICAgaWYgdDEnIDwgdDInIHRoZW4KCQkgIHVuaW9uKHIxLCAodDEsIG8xLCB0MicsIG8y
Jyk6OnIyKQoJICAgICAgIGVsc2UKCQkgIHVuaW9uKCh0MSwgbzEsIHQxJywgbzEnKTo6cjEsIHIy
KQoJICAgIGVsc2UKCSAgICAgICBpZiB0MScgPCB0MicgdGhlbgoJCSAgdW5pb24ocjEsICgodDIs
IG8yLCB0MicsIG8yJyk6OnIyKSkKCSAgICAgICBlbHNlCgkJICB1bmlvbigodDIsIG8yLCB0MScs
IG8xJyk6OnIxLCByMikKCmZ1biBpbnRlciAobDEsIGwyKSA6IChmbG9hdCAqIHNjZW5lICogZmxv
YXQgKiBzY2VuZSkgbGlzdCA9ICgqIEVTOiBjaGVja2VkICopCiAgY2FzZSAobDEsIGwyKSBvZgog
ICAgKFtdLCBfKSA9PiBbXQogIHwgKF8sIFtdKSA9PiBbXQogIHwgKChpMSBhcyAodDEsIG8xLCB0
MScsIG8xJykpIDo6IHIxLAogICAgIChpMiBhcyAodDIsIG8yLCB0MicsIG8yJykpIDo6IHIyKSA9
PgogICAgaWYgdDEnIDw9IHQyCiAgICAgICB0aGVuIGludGVyKHIxLCBsMikKICAgIGVsc2UgaWYg
dDInIDw9IHQxCgkgICAgdGhlbiBpbnRlcihsMSwgcjIpCgkgZWxzZQoJICAgIGlmIHQxIDwgdDIg
dGhlbgoJICAgICAgIGlmIHQxJyA8IHQyJyB0aGVuCgkJICAodDIsIG8yLCB0MScsIG8xJykgOjog
aW50ZXIocjEsIGwyKQoJICAgICAgIGVsc2UKCQkgIGkyIDo6IGludGVyKGwxLCByMikKCSAgICBl
bHNlCgkgICAgICAgaWYgdDEnIDwgdDInIHRoZW4KCQkgIGkxIDo6IGludGVyKHIxLCBsMikKCSAg
ICAgICBlbHNlCgkJICAodDEsIG8xLCB0MicsIG8yJykgOjogaW50ZXIobDEsIHIyKQoKZnVuIGRp
ZmYgKGwxLCBsMikgOiAoZmxvYXQgKiBzY2VuZSAqIGZsb2F0ICogc2NlbmUpIGxpc3QgPSAoKiBF
UzogY2hlY2tlZCAqKQogIGNhc2UgKGwxLCBsMikgb2YKICAgICAoW10sIF8pID0+IFtdCiAgIHwg
KF8sIFtdKSA9PiBsMQogIHwgKChpMSBhcyAodDEsIG8xLCB0MScsIG8xJykpIDo6IHIxLAogICAg
IChpMiBhcyAodDIsIG8yLCB0MicsIG8yJykpIDo6IHIyKSA9PgogICAgaWYgdDEnIDw9IHQyCiAg
ICAgICB0aGVuIGkxIDo6IGRpZmYocjEsIGwyKQogICAgZWxzZSBpZiB0MicgPD0gdDEKCSAgICB0
aGVuIGRpZmYobDEsIHIyKQoJIGVsc2UKCSAgICBpZiB0MSA8IHQyIHRoZW4KCSAgICAgICBpZiB0
MScgPCB0MicgdGhlbgoJCSAgKHQxLCBvMSwgdDIsIG8yKSA6OiBkaWZmKHIxLCBsMikKCSAgICAg
ICBlbHNlCgkJICAodDEsIG8xLCB0MiwgbzIpIDo6IGRpZmYoKHQyJywgbzInLCB0MScsIG8xJykg
OjogcjEsIHIyKQoJICAgIGVsc2UKCSAgICAgICBpZiB0MScgPCB0MicgdGhlbgoJCSAgZGlmZihy
MSwgbDIpCgkgICAgICAgZWxzZQoJCSAgZGlmZigodDInLCBvMicsIHQxJywgbzEnKSA6OiByMSwg
cjIpCgooKiBpbnRlcnNlY3Rpb24gb2YgcmF5IGFuZCBvYmplY3QgKikKZnVuIHBsYW5lIChvcmln
LCBkaXIsIHNjZW5lLCBlcSkgOiAoZmxvYXQgKiBzY2VuZSAqIGZsb2F0ICogc2NlbmUpIGxpc3Qg
PQogICAoKiBYWFggTmVlZCB0byBiZSBjaGVja2VkICopCiAgIGxldAogICAgICB2YWwgcG9yaWcg
PSBwcm9kIChlcSwgb3JpZykKICAgICAgdmFsIHBkaXIgPSBwcm9kIChlcSwgZGlyKQogICAgICB2
YWwgdCA9IH4gcG9yaWcgLyBwZGlyCiAgIGluCiAgICAgIGlmIHBvcmlnIDwgMC4wIHRoZW4KCSBp
ZiB0ID4gMC4wIHRoZW4KCSAgICBbKDAuMCwgc2NlbmUsIHQsIHNjZW5lKV0KCSBlbHNlCgkgICAg
WygwLjAsIHNjZW5lLCBpbmZpbml0eSwgc2NlbmUpXQogICAgICBlbHNlCgkgaWYgdCA+IDAuMCB0
aGVuCgkgICAgWyh0LCBzY2VuZSwgaW5maW5pdHksIHNjZW5lKV0KCSBlbHNlCgkgICAgW10KICAg
ZW5kCgpmdW4gYmFuZCAob2JqLCB4LCB2LCBpKSA6IChmbG9hdCAqIHNjZW5lICogZmxvYXQgKiBz
Y2VuZSkgbGlzdCA9ICgqIEVTOiBjaGVja2VkICopCiAgIGxldAogICAgICB2YWwgdDEgPSB+IChp
IHgpIC8gKGkgdikKICAgICAgdmFsIHQyID0gKDEuMCAtIChpIHgpKSAvIChpIHYpCiAgICAgIHZh
bCB0MicgPSBpZiB0MSA+PSB0MiB0aGVuIHQxIGVsc2UgdDIKICAgaW4KICAgICAgaWYgdDInIDwg
MC4wIHRoZW4KCSBbXQogICAgICBlbHNlCgkgbGV0IHZhbCB0MScgPSBpZiB0MSA8PSB0MiB0aGVu
IHQxIGVsc2UgdDIKCSBpbgoJICAgIGlmIHQxJyA8IDAuMCB0aGVuCgkgICAgICAgWygwLjAsIG9i
aiwgdDInLCBvYmopXQoJICAgIGVsc2UKCSAgICAgICBbKHQxJywgb2JqLCB0MicsIG9iaildCgkg
ZW5kCiAgIGVuZAoKZnVuIGN1YmUgKG9yaWcsIGRpciwgc2NlbmUsIG0pOiAoZmxvYXQgKiBzY2Vu
ZSAqIGZsb2F0ICogc2NlbmUpIGxpc3QgPQogICAoKiBFUzogY2hlY2tlZCAqKQogICBsZXQKICAg
ICAgdmFsIHggPSB2bXVsIChtLCBvcmlnKQogICAgICB2YWwgdiA9IHZtdWwgKG0sIGRpcikKICAg
aW4KICAgICAgY2FzZSBiYW5kIChzY2VuZSwgeCwgdiwgIzEpIG9mCgkgW10gPT4gW10KICAgICAg
IHwgbDAgPT4KCSAgICBjYXNlIGludGVyIChsMCwgYmFuZCAoc2NlbmUsIHgsIHYsICMyKSkgb2YK
CSAgICAgICBbXSA9PiBbXQoJICAgICB8IGwxID0+IGludGVyIChsMSwgYmFuZCAoc2NlbmUsIHgs
IHYsICMzKSkKICAgZW5kCgpmdW4gc3BoZXJlIChvcmlnLCBkaXIsIHNjZW5lLCB4LCByMik6IChm
bG9hdCAqIHNjZW5lICogZmxvYXQgKiBzY2VuZSkgbGlzdCA9CiAgIGxldAogICAgICB2YWwgdiA9
IHN1YiAoeCwgb3JpZykKICAgICAgKCogU3F1YXJlIG9mIHRoZSBkaXN0YW5jZSBiZXR3ZWVuIHRo
ZSBvcmlnaW4gYW5kIHRoZSBjZW50ZXIgb2YgdGhlIHNwaGVyZSAqKQogICAgICB2YWwgdjIgPSBz
cXVhcmUgdgogICAgICB2YWwgZGlyMiA9IHNxdWFyZSBkaXIKICAgICAgdmFsIHAgPSBwcm9kICh2
LCBkaXIpCiAgICAgICgqIFNxdWFyZSBvZiB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0aGUgcmF5IGFu
ZCB0aGUgY2VudGVyICopCiAgICAgIHZhbCBkMiA9IHYyIC0gcCAqIHAgLyBkaXIyCiAgICAgIHZh
bCBkZWx0YSA9IHIyIC0gZDIKICAgaW4gIGlmIGRlbHRhIDw9IDAuMAoJICB0aGVuIFtdCiAgICAg
ICBlbHNlCgkgIGxldAoJICAgICB2YWwgc3EgPSBzcXJ0IChkZWx0YSAvIGRpcjIpCgkgICAgIHZh
bCB0MSA9IHAgLyBkaXIyIC0gc3EKCSAgICAgdmFsIHQyID0gcCAvIGRpcjIgKyBzcQoJICBpbgoJ
ICAgICBpZiB0MiA8IDAuMAoJCXRoZW4gW10KCSAgICAgZWxzZQoJCVsobWF4X2Zsb2F0ICgwLjAs
IHQxKSwgc2NlbmUsIHQyLCBzY2VuZSldCgkgIGVuZAogICBlbmQKCmZ1biBlbGxpcHNvaWQgKG9y
aWcsIGRpciwgc2NlbmUsIG0pOiAoZmxvYXQgKiBzY2VuZSAqIGZsb2F0ICogc2NlbmUpIGxpc3Qg
PQogICAoKiBFUzogY2hlY2tlZCAqKQogICBsZXQKICAgICAgdmFsIHggPSB2bXVsIChtLCBvcmln
KQogICAgICB2YWwgdiA9IHZtdWwgKG0sIGRpcikKICAgICAgdmFsIHgyID0gc3F1YXJlIHgKICAg
ICAgdmFsIHYyID0gc3F1YXJlIHYKICAgICAgdmFsIHh2ID0gcHJvZCAoeCwgdikKICAgICAgdmFs
IGRlbHRhID0geHYgKiB4diAtIHYyICogKHgyIC0gMi4wKQogICBpbgogICAgICBpZiBkZWx0YSA8
PSAwLjAgdGhlbgoJIFtdCiAgICAgIGVsc2UKCSBsZXQKCSAgICB2YWwgc3EgPSBzcXJ0IGRlbHRh
CgkgICAgdmFsIHQxID0gKH4geHYgLSBzcSkgLyB2MgoJICAgIHZhbCB0MiA9ICh+IHh2ICsgc3Ep
IC8gdjIKCSBpbiAgICBpZiB0MiA8IDAuMCB0aGVuCgkgICAgW10KCSAgICAgICBlbHNlCgkJICBb
KG1heF9mbG9hdCAoMC4wLCB0MSksIHNjZW5lLCB0Miwgc2NlbmUpXQoJIGVuZAogICBlbmQKCmZ1
biBjeWxpbmRlciAob3JpZywgZGlyLCBzY2VuZSwgbSk6IChmbG9hdCAqIHNjZW5lICogZmxvYXQg
KiBzY2VuZSkgbGlzdCA9CiAgIGxldAogICAgICB2YWwgeCA9IHZtdWwgKG0sIG9yaWcpCiAgICAg
IHZhbCB2ID0gdm11bCAobSwgZGlyKQogICAgICB2YWwgeDIgPSAjMSB4ICogIzEgeCArICMzIHgg
KiAjMyB4IC0gMS4wCiAgICAgIHZhbCB2MiA9ICMxIHYgKiAjMSB2ICsgIzMgdiAqICMzIHYKICAg
ICAgdmFsIHh2ID0gIzEgeCAqICMxIHYgKyAjMyB4ICogIzMgdgogICAgICB2YWwgZGVsdGEgPSB4
diAqIHh2IC0gdjIgKiB4MgogICBpbgogICAgICBpZiBkZWx0YSA8PSAwLjAgdGhlbgoJIFtdCiAg
ICAgIGVsc2UKCSBsZXQKCSAgICB2YWwgc3EgPSBzcXJ0IGRlbHRhCgkgICAgdmFsIHQxID0gKH4g
eHYgLSBzcSkgLyB2MgoJICAgIHZhbCB0MiA9ICh+IHh2ICsgc3EpIC8gdjIKCSBpbiAgICBpZiB0
MiA8IDAuMCB0aGVuCgkgICAgW10KCSAgICAgICBlbHNlCgkJICBpbnRlcgoJCSAgKFsobWF4X2Zs
b2F0ICgwLjAsIHQxKSwgc2NlbmUsIHQyLCBzY2VuZSldLAoJCSAgIGJhbmQgKHNjZW5lLCB4LCB2
LCAjMikpCgkgZW5kCiAgIGVuZAoKZnVuIGNvbmUgKG9yaWcsIGRpciwgc2NlbmUsIG0pOiAoZmxv
YXQgKiBzY2VuZSAqIGZsb2F0ICogc2NlbmUpIGxpc3QgPSAKICAgbGV0CiAgICAgIHZhbCB4ID0g
dm11bCAobSwgb3JpZykKICAgICAgdmFsIHYgPSB2bXVsIChtLCBkaXIpCiAgICAgIHZhbCB4MiA9
ICMxIHggKiAjMSB4ICsgIzMgeCAqICMzIHggLSAjMiB4ICogIzIgeAogICAgICB2YWwgdjIgPSAj
MSB2ICogIzEgdiArICMzIHYgKiAjMyB2IC0gIzIgdiAqICMyIHYKICAgICAgdmFsIHh2ID0gIzEg
eCAqICMxIHYgKyAjMyB4ICogIzMgdiAtICMyIHggKiAjMiB2CiAgICAgIHZhbCBkZWx0YSA9IHh2
ICogeHYgLSB2MiAqIHgyCiAgIGluCiAgICAgIGlmIGRlbHRhIDw9IDAuMCB0aGVuCgkgW10KICAg
ICAgZWxzZQoJIGxldAoJICAgIHZhbCBzcSA9IHNxcnQgZGVsdGEKCSAgICB2YWwgdDEgPSAofiB4
diAtIHNxKSAvIHYyCgkgICAgdmFsIHQyID0gKH4geHYgKyBzcSkgLyB2MgoJIGluCgkgICAgaWYg
dDEgPD0gdDIgdGhlbgoJICAgICAgIGlmIHQyIDwgMC4wIHRoZW4KCQkgIFtdCgkgICAgICAgZWxz
ZQoJCSAgaW50ZXIKCQkgIChbKG1heF9mbG9hdCgwLjAsIHQxKSwgc2NlbmUsIHQyLCBzY2VuZSld
LAoJCSAgIGJhbmQgKHNjZW5lLCB4LCB2LCAjMikpCgkgICAgZWxzZQoJICAgICAgIGludGVyCgkg
ICAgICAgKGlmIHQxIDw9IDAuMCB0aGVuCgkJICAgWygwLjAsIHNjZW5lLCBpbmZpbml0eSwgc2Nl
bmUpXQoJCWVsc2UgaWYgdDIgPD0gMC4wIHRoZW4KCQkgICBbKHQxLCBzY2VuZSwgaW5maW5pdHks
IHNjZW5lKV0KCQkgICAgIGVsc2UKCQkJWygwLjAsIHNjZW5lLCB0Miwgc2NlbmUpLCAodDEsIHNj
ZW5lLCBpbmZpbml0eSwgc2NlbmUpXSwKCSAgICAgICAgYmFuZCAoc2NlbmUsIHgsIHYsICMyKSkK
CSBlbmQKICAgZW5kCgooKiBYWFggTWF5YmUgd2Ugc2hvdWxkIGNoZWNrIHdoZXRoZXIgdGhlIHNw
aGVyZSBpcyBjb21wbGV0ZWx5IGJlaGluZCB1cyA/ICopCmZ1biBpbnRlcnNlY3QgKG9yaWcsIGRp
ciwgeCwgcjIpID0KICAgbGV0CiAgICAgIHZhbCAodngsIHZ5LCB2eiwgdnQpID0gc3ViICh4LCBv
cmlnKQogICgqIFNxdWFyZSBvZiB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0aGUgb3JpZ2luIGFuZCB0
aGUgY2VudGVyIG9mIHRoZSBzcGhlcmUgKikKICAgICAgdmFsIHYyID0gdnggKiB2eCArIHZ5ICog
dnkgKyB2eiAqIHZ6ICsgdnQgKiB2dAogICAgICB2YWwgKGR4LCBkeSwgZHosIGR0KSA9IGRpcgog
ICAgICB2YWwgZGlyMiA9IGR4ICogZHggKyBkeSAqIGR5ICsgZHogKiBkeiArIGR0ICogZHQKICAg
ICAgdmFsIHAgPSB2eCAqIGR4ICsgdnkgKiBkeSArIHZ6ICogZHogKyB2dCAqIGR0CiAgICAgICgq
IFNxdWFyZSBvZiB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0aGUgcmF5IGFuZCB0aGUgY2VudGVyICop
CiAgICAgIHZhbCBkMiA9IHYyIC0gcCAqIHAgLyBkaXIyCiAgIGluIHIyID4gZDIKICAgZW5kCgpm
dW4gZmluZF9hbGwgKG9yaWcsIGRpciwgc2NlbmUpID0KICBjYXNlIHNjZW5lIG9mCiAgICBTT2Jq
IChTU3BoZXJlICh4LCByMiksIF8sIG0pID0+CiAgICAgIHNwaGVyZSAob3JpZywgZGlyLCBzY2Vu
ZSwgeCwgcjIpCiAgfCBTT2JqIChTRWxsaXBzLCBfLCBtKSA9PgogICAgICBlbGxpcHNvaWQgKG9y
aWcsIGRpciwgc2NlbmUsIG0pCiAgfCBTT2JqIChTQ3ViZSBfLCBfLCBtKSA9PgogICAgICBjdWJl
IChvcmlnLCBkaXIsIHNjZW5lLCBtKQogIHwgU09iaiAoU0N5bGluZCBfLCBfLCBtKSA9PgogICAg
ICBjeWxpbmRlciAob3JpZywgZGlyLCBzY2VuZSwgbSkKICB8IFNPYmogKFNDb25lIF8sIF8sIG0p
ID0+CiAgICAgIGNvbmUgKG9yaWcsIGRpciwgc2NlbmUsIG0pCiAgfCBTT2JqIChTUGxhbmUgKGVx
LCBfKSwgXywgbSkgPT4KICAgICAgcGxhbmUgKG9yaWcsIGRpciwgc2NlbmUsIGVxKQogIHwgU0Jv
dW5kIChzYywgeCwgcjIpID0+CiAgICAgIGlmIGludGVyc2VjdCAob3JpZywgZGlyLCB4LCByMikK
CSB0aGVuIGZpbmRfYWxsIChvcmlnLCBkaXIsIHNjKQogICAgICBlbHNlIFtdCiAgfCBTVW5pb24g
KHNjMSwgc2MyKSA9PgogICAgICB1bmlvbiAoZmluZF9hbGwgKG9yaWcsIGRpciwgc2MxKSwgZmlu
ZF9hbGwgKG9yaWcsIGRpciwgc2MyKSkKICB8IFNJbnRlciAoc2MxLCBzYzIpID0+CiAgICAgIGxl
dCB2YWwgbDEgPSBmaW5kX2FsbCAob3JpZywgZGlyLCBzYzEpCiAgICAgIGluCgkgY2FzZSBsMSBv
ZgoJICAgIFtdID0+IFtdCgkgIHwgXyA9PiBpbnRlcihsMSwgZmluZF9hbGwgKG9yaWcsIGRpciwg
c2MyKSkKICAgICAgZW5kCiAgfCBTRGlmZiAoc2MxLCBzYzIpID0+CiAgICAgIGxldCB2YWwgbDEg
PSBmaW5kX2FsbChvcmlnLCBkaXIsIHNjMSkKICAgICAgaW4KCSBjYXNlIGwxIG9mCgkgICAgW10g
PT4gW10KCSAgfCBfID0+IGRpZmYobDEsIGZpbmRfYWxsKG9yaWcsIGRpciwgc2MyKSkKICAgICAg
ZW5kCgpmdW4gZmlsdGVyX2ludGVyX2xpc3QgbCA9CiAgY2FzZSBsIG9mCiAgICAodCwgXywgXywg
Xyk6OnIgPT4KICAgICAgIGlmIHQgPCBlcHNpbG9uCgkgIHRoZW4gZmlsdGVyX2ludGVyX2xpc3Qg
cgogICAgICAgZWxzZSBsCiAgfCBfID0+IGwKCmZ1biBoaXRfZnJvbV9pbnRlciBib3VuZGVkIGww
ID0KICBsZXQgdmFsIGwgPSBmaWx0ZXJfaW50ZXJfbGlzdCBsMAogIGluCiAgICAgY2FzZSBsIG9m
CglbXSA9PiBmYWxzZQogICAgICB8ICh0LCBfLCBfLCBfKTo6ciA9PiAobm90IGJvdW5kZWQgb3Jl
bHNlICB0IDw9IDEuMCkKICBlbmQKCmZ1biBoaXQob3JpZywgZGlyLCBzY2VuZSwgYm91bmRlZCkg
PQogIGNhc2Ugc2NlbmUgb2YKICAgIFNPYmogKGtpbmQsIF8sIG0pID0+CiAgICAgICAoY2FzZQoJ
ICAgKGNhc2Uga2luZCBvZgoJICAgICAgIFNTcGhlcmUgKHgsIHIyKSA9PiBzcGhlcmUgKG9yaWcs
IGRpciwgc2NlbmUsIHgsIHIyKQoJICAgICB8IFNFbGxpcHMgICAgICAgICA9PiBlbGxpcHNvaWQg
KG9yaWcsIGRpciwgc2NlbmUsIG0pCgkgICAgIHwgU0N1YmUgXyAgICAgICAgID0+IGN1YmUgKG9y
aWcsIGRpciwgc2NlbmUsIG0pCgkgICAgIHwgU0N5bGluZCBfICAgICAgID0+IGN5bGluZGVyIChv
cmlnLCBkaXIsIHNjZW5lLCBtKQoJICAgICB8IFNDb25lIF8gICAgICAgICA9PiBjb25lIChvcmln
LCBkaXIsIHNjZW5lLCBtKQoJICAgICB8IFNQbGFuZSAoZXEsIF8pICA9PiBwbGFuZSAob3JpZywg
ZGlyLCBzY2VuZSwgZXEpKSBvZgoJICAgICAgIFtdID0+IGZhbHNlCgkgICAgIHwgWyh0LCBfLCBf
LCBfKV0gPT4KCQkgIGlmIGJvdW5kZWQgYW5kYWxzbyB0ID4gMS4wCgkJICAgICB0aGVuIGZhbHNl
CgkJICBlbHNlIGlmIHQgPCBlcHNpbG9uCgkJCSAgdGhlbiBmYWxzZQoJCSAgICAgICBlbHNlIHRy
dWUKCSAgICAgfCBfID0+IHRydWUpCiAgfCBTQm91bmQgKHNjLCB4LCByMikgPT4KICAgICAgaW50
ZXJzZWN0IChvcmlnLCBkaXIsIHgsIHIyKSAgYW5kYWxzbyBoaXQgKG9yaWcsIGRpciwgc2MsIGJv
dW5kZWQpCiAgfCBTVW5pb24gKHNjMSwgc2MyKSA9PgogICAgICBoaXQgKG9yaWcsIGRpciwgc2Mx
LCBib3VuZGVkKSBvcmVsc2UgaGl0IChvcmlnLCBkaXIsIHNjMiwgYm91bmRlZCkKICB8IFNJbnRl
ciAoc2MxLCBzYzIpID0+CiAgICAgIGxldCB2YWwgbDEgPSBmaW5kX2FsbCAob3JpZywgZGlyLCBz
YzEpCiAgICAgIGluCgkgY2FzZSBsMSBvZgoJICAgIFtdID0+IGZhbHNlCgkgIHwgXyA9PiBoaXRf
ZnJvbV9pbnRlciBib3VuZGVkIChpbnRlcihsMSwgZmluZF9hbGwgKG9yaWcsIGRpciwgc2MyKSkp
CiAgICAgIGVuZAogIHwgU0RpZmYgKHNjMSwgc2MyKSA9PgogICAgICBsZXQKCSB2YWwgbDEgPSBm
aW5kX2FsbChvcmlnLCBkaXIsIHNjMSkKICAgICAgaW4KCSBjYXNlIGwxIG9mCgkgICAgW10gPT4g
ZmFsc2UKCSAgfCBfID0+IGhpdF9mcm9tX2ludGVyIGJvdW5kZWQgKGRpZmYobDEsIGZpbmRfYWxs
KG9yaWcsIGRpciwgc2MyKSkpCiAgICAgIGVuZAoKZnVuIHZpc2libGUgKGRlc2M6IGRlc2MsIG9y
aWcsIGRpciwgYm91bmRlZCkgPQogIG5vdCAoaGl0KG9yaWcsIGRpciwgI3NjZW5lIGRlc2MsIGJv
dW5kZWQpKQoKdmFsIGJsYWNrID0gKDAuMCwgMC4wLCAwLjApCgp2YWwgYXBwbHkgOiAoKFByb2dy
YW0udiAqIFByb2dyYW0udiBsaXN0KSAtPiBQcm9ncmFtLnYgbGlzdCkgcmVmID0KICAgcmVmIChm
biBfID0+IHJhaXNlKEZhaWwgImFzc2VydCBmYWxzZSIpKQp2YWwgaW5saW5lX2Nsb3N1cmUgOiAo
UHJvZ3JhbS52IC0+IFByb2dyYW0udikgcmVmID0KICAgcmVmIChmbiBfID0+IHJhaXNlKEZhaWwg
ImFzc2VydCBmYWxzZSIpKQoKKCogVmFsdWUgYmV0d2VlbiAwIGFuZCAxIGZyb20gdGhlIHNpbnVz
IGFuZCBjb3NpbnVzICopCigqIEFjdHVhbGx5LCBvbmx5IHRoZSBzaWduIG9mIHRoZSBzaW51cyBp
cyB1c2VkICopCmZ1biBhbmdsZSAoc2ksIGNvKSA9CiAgbGV0CiAgICAgdmFsIHUgPSBkYWNvcyBj
byAvIDM2MC4wCiAgaW4KICAgICBpZiBzaSA+IDAuMCB0aGVuIHUgZWxzZSAxLjAgLSB1CiAgZW5k
CgooKiBYWFggQ2hlY2sgdGhhdCAwIDw9IHUsdiA8PSAxICopCmZ1biB0ZXh0dXJlX2Nvb3JkIChr
aW5kLCB4OiB2KSA9ICgqIHNlY3Rpb24gMy42ICopICgqIEVTOiBjaGVja2VkICopCiAgIGxldAog
ICAgICBmdW4gZWxsaXBzT3JTcGhlcmUoKSA9CgkgbGV0CgkgICAgdmFsIHkgPSAjMiB4CgkgICAg
dmFsIHYgPSAoeSArIDEuMCkgKiAwLjUKCSBpbgoJICAgIGlmIHYgPCBlcHNpbG9uCgkgICAgICAg
dGhlbiBbVkZsb2F0IHYsIFZGbG9hdCAwLjAsIFZJbnQgMF0KCSAgICBlbHNlCgkgICAgICAgbGV0
CgkJICB2YWwgdSA9IGFuZ2xlICgjMSB4LCAjMyB4IC8gc3FydCAoMS4wIC0geSAqIHkpKQoJICAg
ICAgIGluCgkJICBbVkZsb2F0IHYsIFZGbG9hdCB1LCBWSW50IDBdCgkgICAgICAgZW5kCgkgZW5k
CiAgIGluICAoKiBbdjsgdTsgZmFjZV0gKikKICAgICAgY2FzZSBraW5kIG9mCgkgU0VsbGlwcyA9
PiBlbGxpcHNPclNwaGVyZSgpCiAgICAgICB8IFNTcGhlcmUgXyA9PiBlbGxpcHNPclNwaGVyZSgp
CiAgICAgICB8IFNDdWJlIF8gPT4KICAgICAgaWYgYWJzX2Zsb2F0ICgjMyB4KSA8IGVwc2lsb24g
dGhlbgogICAgICAgIFtWRmxvYXQgKCMyIHgpLCBWRmxvYXQgKCMxIHgpLCBWSW50IDBdCiAgICAg
IGVsc2UgaWYgYWJzX2Zsb2F0ICgoIzMgeCkgLSAxLjApIDwgZXBzaWxvbiB0aGVuCiAgICAgICAg
W1ZGbG9hdCAoIzIgeCksIFZGbG9hdCAoIzEgeCksIFZJbnQgMV0KICAgICAgZWxzZSBpZiBhYnNf
ZmxvYXQgKCMxIHgpIDwgZXBzaWxvbiB0aGVuCiAgICAgICAgW1ZGbG9hdCAoIzIgeCksIFZGbG9h
dCAoIzMgeCksIFZJbnQgMl0KICAgICAgZWxzZSBpZiBhYnNfZmxvYXQgKCgjMSB4KSAtIDEuMCkg
PCBlcHNpbG9uIHRoZW4KICAgICAgICBbVkZsb2F0ICgjMiB4KSwgVkZsb2F0ICgjMyB4KSwgVklu
dCAzXQogICAgICBlbHNlIGlmIGFic19mbG9hdCAoKCMyIHgpIC0gMS4wKSA8IGVwc2lsb24gdGhl
bgogICAgICAgIFtWRmxvYXQgKCMzIHgpLCBWRmxvYXQgKCMxIHgpLCBWSW50IDRdCiAgICAgIGVs
c2UgKCogaWYgYWJzX2Zsb2F0ICgjMiB4KSA8IGVwc2lsb24gdGhlbiAqKQogICAgICAgIFtWRmxv
YXQgKCMzIHgpLCBWRmxvYXQgKCMxIHgpLCBWSW50IDVdCiAgfCBTQ3lsaW5kIF8gPT4KICAgICAg
aWYgYWJzX2Zsb2F0ICgjMiB4KSA8IGVwc2lsb24gdGhlbgogICAgICAgIFtWRmxvYXQgKCgoIzMg
eCkgKyAxLjApICogMC41KSwgVkZsb2F0ICgoKCMxIHgpICsgMS4wKSAqIDAuNSksIFZJbnQgMl0K
ICAgICAgZWxzZSBpZiBhYnNfZmxvYXQgKCgjMiB4KSAtIDEuMCkgPCBlcHNpbG9uIHRoZW4KICAg
ICAgICBbVkZsb2F0ICgoKCMzIHgpICsgMS4wKSAqIDAuNSksIFZGbG9hdCAoKCgjMSB4KSArIDEu
MCkgKiAwLjUpLCBWSW50IDFdCiAgICAgIGVsc2UKICAgICAgICBsZXQKCSAgIHZhbCB1ID0gYW5n
bGUgKCMxIHgsICMzIHgpCglpbgoJICAgW1ZGbG9hdCAoIzIgeCksIFZGbG9hdCB1LCBWSW50IDBd
CgllbmQKICB8IFNDb25lIF8gPT4KICAgICAgbGV0IHZhbCB2ID0gKCMyIHgpCiAgICAgIGluCgkg
aWYgYWJzX2Zsb2F0IHYgPCBlcHNpbG9uIHRoZW4KCSAgICBbVkZsb2F0IHYsIFZGbG9hdCAwLjAs
IFZJbnQgMF0KCSBlbHNlCgkgICAgaWYgYWJzX2Zsb2F0ICgoIzIgeCkgLSAxLjApIDwgZXBzaWxv
bgoJICAgICAgIHRoZW4KCQkgIFtWRmxvYXQgKCgoIzMgeCkgKyAxLjApICogMC41KSwKCQkgICBW
RmxvYXQgKCgoIzEgeCkgKyAxLjApICogMC41KSwKCQkgICBWSW50IDFdCgkgICAgZWxzZQoJICAg
ICAgIGxldAoJCSAgdmFsIHUgPSBhbmdsZSAoIzEgeCwgKCMzIHgpIC8gdikKCSAgICAgICBpbgoJ
CSAgW1ZGbG9hdCB2LCBWRmxvYXQgdSwgVkludCAwXQoJICAgICAgIGVuZAogICAgICBlbmQKICB8
IFNQbGFuZSBfID0+CiAgICAgIFtWRmxvYXQgKCMzIHgpLCBWRmxvYXQgKCMxIHgpLCBWSW50IDBd
CiAgIGVuZAoKZnVuIG5vcm1hbCAoa2luZCwgbSwgeCcsIHgpID0KICBjYXNlIGtpbmQgb2YKICAg
IFNTcGhlcmUgKHgwLCBfKSA9PgogICAgICBub3JtYWxpemUgKHN1YiAoeCwgeDApKQogIHwgU0Vs
bGlwcyA9PgogICAgICBsZXQgdmFsIChuMCwgbjEsIG4yLCBfKSA9IHZtdWwgKHRyYW5zcG9zZSBt
LCB4JykKICAgICAgaW4KCSBub3JtYWxpemUobjAsIG4xLCBuMiwgMC4wKQogICAgICBlbmQKICB8
IFNDeWxpbmQgbiA9PgogICAgICBpZiBhYnNfZmxvYXQgKCMyIHgnKSA8IGVwc2lsb24KCSBvcmVs
c2UgYWJzX2Zsb2F0ICgjMiB4JykgLSAxLjAgPCBlcHNpbG9uIHRoZW4KICAgICAgICBuCiAgICAg
IGVsc2UKICAgICAgICAoKiBYWFggQ291bGQgYmUgb3B0aW1pemVkLi4uICopCiAgICAgICAgbGV0
CgkgICB2YWwgKG4wLCBuMSwgbjIsIF8pID0gdm11bCAodHJhbnNwb3NlIG0sICgjMSB4JywgMC4w
LCAjMyB4JywgMC4wKSkKCWluCgkgICBub3JtYWxpemUobjAsIG4xLCBuMiwgMC4wKQoJZW5kCiAg
fCBTQ29uZSBuID0+CiAgICAgIGlmIGFic19mbG9hdCAoIzIgeCcpIC0gMS4wIDwgZXBzaWxvbgoJ
IHRoZW4gbgogICAgICBlbHNlCiAgICAgICAgbGV0CgkgICB2YWwgKG4wLCBuMSwgbjIsIF8pID0K
CSAgICAgIHZtdWwgKHRyYW5zcG9zZSBtLCAoIzEgeCcsIH4oIzIgeCcpLCAjMyB4JywgMC4wKSkK
CWluCgkgICBub3JtYWxpemUobjAsIG4xLCBuMiwgMC4wKQoJZW5kCiAgfCBTQ3ViZSAobngsIG55
LCBueikgPT4KICAgICAgaWYgYWJzX2Zsb2F0ICgjMyB4JykgPCBlcHNpbG9uCgkgb3JlbHNlIGFi
c19mbG9hdCAoIzMgeCcpIC0gMS4wIDwgZXBzaWxvbgoJIHRoZW4gbnoKICAgICAgZWxzZSBpZiBh
YnNfZmxvYXQgKCMxIHgnKSA8IGVwc2lsb24KIAkgICAgICBvcmVsc2UgYWJzX2Zsb2F0ICgjMSB4
JykgLSAxLjAgPCBlcHNpbG9uCgkgICAgICB0aGVuIG54CgkgICBlbHNlIG55CiAgfCBTUGxhbmUg
KF8sIG4pID0+CiAgICAgIG4KCmZ1biBhcHBseV9zdXJmYWNlX2Z1biAoZiwgdikgPQogIGNhc2Ug
IWFwcGx5KGYsIHYpIG9mCiAgICBbVkZsb2F0IG4sIFZGbG9hdCBrcywgVkZsb2F0IGtkLAogICAg
IFZQb2ludCAoVkZsb2F0IGNyLCBWRmxvYXQgY2csIFZGbG9hdCBjYildID0+CiAgICAgICAobiwg
a3MsIGtkLCBjciwgY2csIGNiKQogIHwgXyA9PgogICAgICBmYWlsd2l0aCAiQSBzdXJmYWNlIGZ1
bmN0aW9uIHJldHVybnMgc29tZSBpbmNvcnJlY3QgdmFsdWVzIgoKZnVuIHRyYWNlIChkZXNjOiBk
ZXNjLCBkZXB0aDogaW50LCBvcmlnLCBkaXIpID0KICAgbGV0CiAgICAgIHZhbCBkaXIgPSBub3Jt
YWxpemUgZGlyCiAgIGluCiAgICAgIGNhc2UgZmlsdGVyX2ludGVyX2xpc3QgKGZpbmRfYWxsKG9y
aWcsIGRpciwgI3NjZW5lIGRlc2MpKSBvZgoJIFtdID0+IGJsYWNrCiAgICAgICB8ICh0LCBvYiwg
XywgXykgOjogXyA9PiB0cmFjZV8yKGRlc2MsIGRlcHRoLCBvcmlnLCBkaXIsIHQsIG9iKQogICBl
bmQKCmFuZCB0cmFjZV8yIChkZXNjLCBkZXB0aDogaW50LCBvcmlnLCBkaXIsIHQsIG9iaikgPQog
ICBsZXQKICAgICAgdmFsIHggPSBhZGRfc2NhbGVkIChvcmlnLCB0LCBkaXIpCiAgIGluCiAgICAg
IGNhc2Ugb2JqIG9mCgkgU09iaiAoa2luZCwgZiwgbSkgPT4KCSAgICBsZXQKCSAgICAgICB2YWwg
eCcgPSB2bXVsIChtLCB4KQoJICAgICAgIHZhbCAobiwga3MsIGtkLCBjciwgY2csIGNiKSA9CgkJ
ICAoY2FzZSAhZiBvZgoJCSAgICAgIFVub3B0IGcgPT4KCQkJICgqIEZpcnN0IHdlIGNoZWNrIHdo
ZXRoZXIgdGhlIGZ1bmN0aW9uIHdvdWxkIGZhaWwgKikKCQkJIGxldAoJCQkgICAgdmFsIHJlcyA9
IGFwcGx5X3N1cmZhY2VfZnVuKGcsIHRleHR1cmVfY29vcmQoa2luZCwgeCcpKQoJCQkgICAgZnVu
IHN0dWNrKCkgPSBmIDo9IE9wdCAoIWlubGluZV9jbG9zdXJlIGcpCgkJCSBpbgoJCQkgICAgKCog
VGhlbiwgd2UgY2hlY2sgd2hldGhlciBpdCBpcyBhIGNvbnN0YW50IGZ1bmN0aW9uICopCgkJCSAg
ICAoKGlnbm9yZSAoYXBwbHlfc3VyZmFjZV9mdW4oZywgCgkJCQkgICAgICBbVkludCAwLCBWSW50
IDAsIFZGbG9hdCAwLjBdKSkKCQkJICAgICAgOyBmIDo9IENzdCByZXMpCgkJCSAgICAgaGFuZGxl
IFN0dWNrX2NvbXB1dGF0aW9uIF8gPT4gc3R1Y2soKQoJCQkJICB8IFN0dWNrX2NvbXB1dGF0aW9u
JyA9PiBzdHVjaygpKQoJCQkgICAgOyByZXMKCQkJIGVuZAoJCSAgICB8IE9wdCBnID0+CgkJCSBh
cHBseV9zdXJmYWNlX2Z1biAoZywgdGV4dHVyZV9jb29yZCAoa2luZCwgeCcpKQoJCSAgICB8IENz
dCByZXMgPT4KCQkJIHJlcykKICAgICAgICAgICAgICAgdmFsIG5tID0gbm9ybWFsIChraW5kLCBt
LCB4JywgeCkKCSAgICAgICB2YWwgcCA9IHByb2QgKGRpciwgbm0pCgkgICAgICAgdmFsIG5tID0g
aWYgcCA+IDAuMCB0aGVuIG5lZyBubSBlbHNlIG5tCgkgICAgICAgdmFsIHAgPSB+KGFic19mbG9h
dCBwKQoJICAgICAgICgqIEFtYmllbnQgY29tcG9zYW50ICopCgkgICAgICAgdmFsIChhciwgYWcs
IGFiKSA9ICNhbWIgZGVzYwoJICAgICAgIHZhbCByID0gcmVmIChrZCAqIGFyKQoJICAgICAgIHZh
bCBnID0gcmVmIChrZCAqIGFnKQoJICAgICAgIHZhbCBiID0gcmVmIChrZCAqIGFiKQoJCSAgKCog
TGlnaHRzICopCgkgICAgICAgdmFsIGxpZ2h0cyA9ICNsaWdodHMgZGVzYwoJICAgICAgIHZhbCBf
ID0KCQkgIGZvcigwLCBBcnJheS5sZW5ndGggbGlnaHRzIC0gMSwgZm4gaSA9PgoJCSAgICAgIGNh
c2UgKEFycmF5LnN1YihsaWdodHMsIGkpKSBvZgoJCQkgTGlnaHQgKGxkaXIsIChsciwgbGcsIGxi
KSkgPT4KCQkJICAgIGxldAoJCQkgICAgICAgdmFsIHAnID0gcHJvZCAobGRpciwgbm0pCgkJCSAg
ICBpbgoJCQkgICAgICAgaWYgcCcgPiAwLjAgYW5kYWxzbyB2aXNpYmxlIChkZXNjLCB4LCBsZGly
LCBmYWxzZSkKCQkJCSAgdGhlbgoJCQkJICAgICBsZXQKCQkJCQl2YWwgaW50ID0KCQkJCQkgICBp
ZiBrcyA+IGVwc2lsb24gdGhlbgoJCQkJCSAgICAgIGtkICogcCcgKwoJCQkJCSAgICAgIGtzICog
cHJvZCAobm9ybWFsaXplCgkJCQkJCQkgKHN1YiAobGRpciwgZGlyKSksCgkJCQkJCQkgbm0pICoq
IG4KCQkJCQkgICBlbHNlCgkJCQkJICAgICAga2QgKiBwJwoJCQkJICAgICBpbgoJCQkJCXIgOj0g
IXIgKyBpbnQgKiBscjsKCQkJCQlnIDo9ICFnICsgaW50ICogbGc7CgkJCQkJYiA6PSAhYiArIGlu
dCAqIGxiCgkJCQkgICAgIGVuZAoJCQkgICAgICAgZWxzZSAoKQoJCQkgICAgZW5kCgkJICAgICAg
IHwgUHRMaWdodCAoc3JjLCAobHIsIGxnLCBsYikpID0+CgkJCSAgICBsZXQKCQkJICAgICAgIHZh
bCBsZGlyID0gc3ViIChzcmMsIHgpCgkJCSAgICAgICB2YWwgbGRpcicgPSBub3JtYWxpemUgbGRp
cgoJCQkgICAgICAgdmFsIHAnID0gcHJvZCAobGRpcicsIG5tKQoJCQkgICAgaW4KCQkJICAgICAg
IGlmIHAnID4gMC4wIGFuZGFsc28gdmlzaWJsZShkZXNjLCB4LCBsZGlyLCB0cnVlKQoJCQkJICB0
aGVuCgkJCQkgICAgIGxldAoJCQkJCXZhbCBpbnQgPQoJCQkJCSAgIGlmIGtzID4gZXBzaWxvbgoJ
CQkJCSAgICAgIHRoZW4KCQkJCQkJIGtkICogcCcgKwoJCQkJCQkga3MgKiBwcm9kIChub3JtYWxp
emUgKHN1YiAobGRpcicsIGRpcikpLAoJCQkJCQkJICAgIG5tKSAqKiBuCgkJCQkJICAgZWxzZQoJ
CQkJCSAgICAgIGtkICogcCcKCQkJCQl2YWwgaW50ID0gMTAwLjAgKiBpbnQgLyAoOTkuMCArIHNx
dWFyZSBsZGlyKQoJCQkJICAgICBpbgoJCQkJCXIgOj0gIXIgKyBpbnQgKiBscjsKCQkJCQlnIDo9
ICFnICsgaW50ICogbGc7CgkJCQkJYiA6PSAhYiArIGludCAqIGxiCgkJCQkgICAgIGVuZAoJCQkg
ICAgICAgZWxzZSAoKQoJCQkgICAgZW5kCgkJICAgICAgIHwgU3RMaWdodCAoc3JjLCBtYWluZGly
LCAobHIsIGxnLCBsYiksIGN1dG9mZiwgZXhwKSA9PgoJCQkgICAgbGV0CgkJCSAgICAgICB2YWwg
bGRpciA9IHN1YiAoc3JjLCB4KQoJCQkgICAgICAgdmFsIGxkaXInID0gbm9ybWFsaXplIGxkaXIK
CQkJICAgICAgIHZhbCBwJyA9IHByb2QgKGxkaXInLCBubSkKCQkJICAgICAgIHZhbCBwJycgPSBw
cm9kIChsZGlyJywgbWFpbmRpcikKCQkJICAgIGluCgkJCSAgICAgICBpZiBwJyA+IDAuMCBhbmRh
bHNvIHAnJyA+IGN1dG9mZgoJCQkJICBhbmRhbHNvIHZpc2libGUoZGVzYywgeCwgbGRpciwgdHJ1
ZSkKCQkJCSAgdGhlbgoJCQkJICAgICBsZXQKCQkJCQl2YWwgaW50ID0KCQkJCQkgICBpZiBrcyA+
IGVwc2lsb24KCQkJCQkgICAgICB0aGVuCgkJCQkJCSBrZCAqIHAnICsKCQkJCQkJIGtzICogcHJv
ZCAobm9ybWFsaXplIChzdWIobGRpcicsIGRpcikpLAoJCQkJCQkJICAgIG5tKSAqKiBuCgkJCQkJ
ICAgZWxzZQoJCQkJCSAgICAgIGtkICogcCcKCQkJCQl2YWwgaW50ID0KCQkJCQkgICAxMDAuMCAq
IGludCAvICg5OS4wICsgc3F1YXJlIGxkaXIpICoKCQkJCQkgICAocCcnICoqIGV4cCkKCQkJCSAg
ICAgaW4KCQkJCQlyIDo9ICFyICsgaW50ICogbHI7CgkJCQkJZyA6PSAhZyArIGludCAqIGxnOwoJ
CQkJCWIgOj0gIWIgKyBpbnQgKiBsYgoJCQkJICAgICBlbmQKCQkJICAgICAgIGVsc2UgKCkKCQkJ
ICAgIGVuZCkKCSAgICAgICB2YWwgXyA9CgkJICAoKiBSZWZsZXhpb24gKikKCQkgIGlmIGtzID4g
ZXBzaWxvbiAgYW5kYWxzbyBkZXB0aCA+IDAKCQkgICAgIHRoZW4KCQkJbGV0CgkJCSAgIHZhbCBk
aXInID0gYWRkX3NjYWxlZCAoZGlyLCB+Mi4wICogcCwgbm0pCgkJCSAgIHZhbCAocicsIGcnLCBi
JykgPSB0cmFjZShkZXNjLCBkZXB0aCAtIDEsIHgsIGRpcicpCgkJCWluCgkJCSAgIHIgOj0gIXIg
KyBrcyAqIHInOwoJCQkgICBnIDo9ICFnICsga3MgKiBnJzsKCQkJICAgYiA6PSAhYiArIGtzICog
YicKCQkJZW5kCgkJICBlbHNlICgpCgkgICAgaW4gKCFyICogY3IsICFnICogY2csICFiICogY2Ip
CgkgICAgZW5kCiAgICAgICB8IF8gPT4gcmFpc2UoRmFpbCAiYXNzZXJ0IGZhbHNlIikKICAgZW5k
CgpmdW4gY29udiBjIDogaW50ID0KICAgbGV0CiAgICAgIHZhbCBpID0gdHJ1bmNhdGUgKGMgKiAy
NTYuMCkKICAgaW4KICAgICAgaWYgaSA8IDAgdGhlbiAwIGVsc2UKCSBpZiBpID49IDI1NiB0aGVu
IDI1NSBlbHNlCgkgICAgaQogICBlbmQKCmZ1biBmIChhbWIsIGxpZ2h0cywgb2JqLCBkZXB0aDog
aW50LCBmb3YsIHdpZCwgaHQsIGZpbGUpID0KICAgbGV0CiAgICAgIHZhbCBzY2VuZSA9IGludGVy
bl9vYmooTWF0cml4LmlkZW50aXR5LCBNYXRyaXguaWRlbnRpdHksIDEuMCwgdHJ1ZSwgb2JqKQog
ICAgICB2YWwgc2NlbmUgPSBvcHRpbWl6ZSBzY2VuZQogICAgICB2YWwgaW1nID0gUHBtLmluaXQg
KHdpZCwgaHQpCiAgICAgIHZhbCBvcmlnID0gKCAwLjAsIDAuMCwgfjEuMCwgMS4wICkKICAgICAg
dmFsIHdpZHRoID0gMi4wICogZHRhbiAoMC41ICogZm92KQogICAgICB2YWwgZGVsdGEgPSB3aWR0
aCAvIGZsb2F0IHdpZAogICAgICB2YWwgeDAgPSB+IHdpZHRoIC8gMi4wCiAgICAgIHZhbCB5MCA9
IGRlbHRhICogZmxvYXQgaHQgLyAyLjAKICAgICAgdmFsIGRlc2MgPSB7IGFtYiA9IGFtYiwgbGln
aHRzID0gaW50ZXJuX2xpZ2h0cyBsaWdodHMsIHNjZW5lID0gc2NlbmUgfQogICBpbgogICAgICBm
b3IoMCwgaHQgLSAxLCBmbiBqID0+CgkgIGZvcigwLCB3aWQgLSAxLCBmbiBpID0+CgkgICAgICBs
ZXQKCQkgdmFsIGRpciA9CgkJICAgICh4MCArIChmbG9hdCBpICsgMC41KSAqIGRlbHRhLAoJCSAg
ICAgeTAgLSAoZmxvYXQgaiArIDAuNSkgKiBkZWx0YSwKCQkgICAgIDEuMCwKCQkgICAgIDAuMCkK
CQkgdmFsIChyLCBnLCBiKSA9IHRyYWNlKGRlc2MsIGRlcHRoLCBvcmlnLCBkaXIpCgkgICAgICBp
bgoJCSBQcG0uc2V0cCAoaW1nLCBpLCBqLCBjb252IHIsIGNvbnYgZywgY29udiBiKQoJICAgICAg
ZW5kKSkKICAgICAgOyBQcG0uZHVtcCAoZmlsZSwgaW1nKQogICBlbmQKCmVuZApzaWduYXR1cmUg
RVZBTCA9CiAgIHNpZwogICAgICB2YWwgZiA6IFByb2dyYW0udCBsaXN0IC0+IHVuaXQKICAgZW5k
CnN0cnVjdHVyZSBFdmFsOiBFVkFMID0Kc3RydWN0CgpvcGVuIENhbWwKb3BlbiBQcm9ncmFtCgp2
YWwgcnRkID0gMTgwLjAgLyBhY29zICh+MS4wKQp2YWwgZHRyID0gYWNvcyAofjEuMCkgLyAxODAu
MApmdW4gZGVnIHggPSBydGQgKiB4CmZ1biByYWQgeCA9IGR0ciAqIHgKdmFsIHplcm8gPSBWRmxv
YXQgMC4wCnZhbCBvbmUgPSBWRmxvYXQgMS4wCgpmdW4gbG9va3VwIChlbnYsIHMpIDogaW50ID0K
ICBjYXNlIGVudiBvZgogICAgIFtdID0+IGZhaWx3aXRoICgiVW5ib3VuZCB2YXJpYWJsZSBcIiIg
XiBzIF4gIlwiIikKICAgfCBzJyA6OiBlbnYnID0+CglpZiBzID0gcycKCSAgIHRoZW4gMAoJZWxz
ZSAxICsgKGxvb2t1cChlbnYnLCBzKSkKCigqIFhYWCBlbWJlZCB2YWx1ZXMgKikKZnVuIGNvbnYg
KGFic2VudiwgcCkgPQogICBjYXNlIHAgb2YKICAgICAgW10gPT4gW10KICAgIHwgRmxvYXQgeCA6
OiBGbG9hdCB5IDo6IEZsb2F0IHogOjogUHJpbSBQb2ludCA6OiByID0+CgkgVmFsJyAoVlBvaW50
IChWRmxvYXQgeCwgVkZsb2F0IHksIFZGbG9hdCB6KSkgOjogY29udihhYnNlbnYsIHIpCiAgICB8
IHQgOjogciA9PgoJIChjYXNlIHQgb2YKCSAgICAgRnVuIHAnID0+IEZ1bicgKGNvbnYoYWJzZW52
LCBwJykpIDo6IGNvbnYoYWJzZW52LCByKQoJICAgfCBBcnIgcCcgPT4gQXJyJyAoY29udihhYnNl
bnYsIHAnKSkgOjogY29udihhYnNlbnYsIHIpCgkgICB8IElkZW50IHMgPT4gSWRlbnQnIChsb29r
dXAoYWJzZW52LCBzKSkgOjogY29udihhYnNlbnYsIHIpCgkgICB8IEJpbmRlciBzID0+IEJpbmRl
cicgOjogY29udiAocyA6OiBhYnNlbnYsIHIpCgkgICB8IEludCBpID0+IFZhbCcgKFZJbnQgaSkg
OjogY29udihhYnNlbnYsIHIpCgkgICB8IEZsb2F0IGYgPT4gVmFsJyAoVkZsb2F0IGYpIDo6IGNv
bnYoYWJzZW52LCByKQoJICAgfCBCb29sIGIgPT4gVmFsJyAoVkJvb2wgYikgOjogY29udihhYnNl
bnYsIHIpCgkgICB8IFN0cmluZyBzID0+IFZhbCcgKFZTdHIgcykgOjogY29udihhYnNlbnYsIHIp
CgkgICB8IFByaW0gayA9PiBQcmltJyBrIDo6IGNvbnYoYWJzZW52LCByKSkKCmZ1biBpbmxpbmUg
KG9mZnNldCwgZW52LCBwKSA9CiAgIGNhc2UgcCBvZgogICAgICBbXSA9PiBbXQogICAgfCB0IDo6
IHIgPT4KCSBsZXQKCSAgICBmdW4gbm9ybWFsKCkgPSB0IDo6IGlubGluZShvZmZzZXQsIGVudiwg
cikKCSBpbiBjYXNlIHQgb2YKCSAgICBGdW4nIHAnID0+IEZ1bicgKGlubGluZShvZmZzZXQsIGVu
diwgcCcpKSA6OiBpbmxpbmUob2Zmc2V0LCBlbnYsIHIpCgkgIHwgQXJyJyBwJyA9PiBBcnInIChp
bmxpbmUob2Zmc2V0LCBlbnYsIHAnKSkgOjogaW5saW5lKG9mZnNldCwgZW52LCByKQoJICB8IElk
ZW50JyBpID0+CgkgICAgICAgaWYgaSA+PSBvZmZzZXQKCQkgIHRoZW4gVmFsJyAoTGlzdC5udGgg
KGVudiwgaSAtIG9mZnNldCkpIDo6IGlubGluZShvZmZzZXQsIGVudiwgcikKCSAgICAgICBlbHNl
IG5vcm1hbCgpCgkgIHwgQmluZGVyJyA9PiBCaW5kZXInIDo6IGlubGluZSAoMSArIG9mZnNldCwg
ZW52LCByKQoJICB8IFByaW0nIF8gPT4gbm9ybWFsKCkKCSAgfCBWYWwnIF8gPT4gbm9ybWFsKCkK
CSBlbmQKCnZhbCBpbmxpbmVfY2xvc3VyZSA9CiAgIGZuIChWQ2xvcyAoZW52LCBwKSkgPT4gVkNs
b3MgKFtdLCBpbmxpbmUoMCwgZW52LCBwKSkKICAgIHwgXyA9PiBmYWlsd2l0aCAiYSBzdXJmYWNl
IGZ1bmN0aW9uIHdhcyBhY3R1YWxseSBub3QgYSBmdW5jdGlvbiIKCnZhbCBfID0gUmVuZGVyLmlu
bGluZV9jbG9zdXJlIDo9IGlubGluZV9jbG9zdXJlCgpmdW4gZXZhbCAoZW52LCBzdCwgcCkgPQog
IGNhc2UgKHN0LCBwKSBvZgooKiBpbmxpbmVkIHZhbHVlICopCiAgICAoXywgVmFsJyB2IDo6IHIp
ID0+IGV2YWwoZW52LCAodiA6OiBzdCksIHIpCigqIFJ1bGUgMSAqKQooKiBSdWxlIDIgKikKICB8
ICh2OjpzdCcsIEJpbmRlcicgOjogcikgPT4gZXZhbCgodiA6OiBlbnYpLCBzdCcsIHIpCigqIFJ1
bGUgMyAqKQogIHwgKF8sIElkZW50JyBpIDo6IHIpID0+CiAgICAgIGxldCB2YWwgdiA9IExpc3Qu
bnRoKGVudiwgaSkKICAgICAgaW4gZXZhbChlbnYsICh2IDo6IHN0KSwgcikKICAgICAgZW5kCigq
IFJ1bGUgNCAqKQogIHwgKF8sIEZ1bicgZiA6OiByKSA9PiBldmFsKGVudiwgKFZDbG9zIChlbnYs
IGYpIDo6IHN0KSwgcikKKCogUnVsZSA1ICopCiAgfCAoVkNsb3MgKGVudicsIGYpIDo6IHN0Jywg
UHJpbScgQXBwbHkgOjogcikgPT4KICAgICAgZXZhbChlbnYsIGV2YWwoZW52Jywgc3QnLCBmKSwg
cikKKCogUnVsZSA2ICopCiAgfCAoXywgQXJyJyBhIDo6IHIpID0+CiAgICAgIGV2YWwoZW52LCAo
VkFyciAoQXJyYXkub2ZfbGlzdCAoTGlzdC5yZXYgKGV2YWwoZW52LCBbXSwgYSkpKSkpIDo6IHN0
LCByKQooKiBSdWxlcyA3IGFuZCA4ICopCiAgfCAoVkNsb3MgXyA6OiBWQ2xvcyAoZW52JywgaWZ0
cnVlKSA6OiBWQm9vbCB0cnVlIDo6IHN0JywgUHJpbScgSWYgOjogcikgPT4KICAgICAgZXZhbChl
bnYsIGV2YWwoZW52Jywgc3QnLCBpZnRydWUpLCByKQogIHwgKFZDbG9zIChlbnYnLCBpZmZhbHNl
KSA6OiBWQ2xvcyBfIDo6IFZCb29sIGZhbHNlIDo6IHN0JywgUHJpbScgSWYgOjogcikgPT4KICAg
ICAgZXZhbChlbnYsIGV2YWwoZW52Jywgc3QnLCBpZmZhbHNlKSwgcikKKCogT3BlcmF0aW9ucyBv
biBudW1iZXJzICopCiAgfCAoVkludCBuMiA6OiBWSW50IG4xIDo6IHN0JywgUHJpbScgQWRkaSA6
OiByKSA9PgogICAgICAgZXZhbChlbnYsIChWSW50IChuMSArIG4yKSA6OiBzdCcpLCByKQogIHwg
KFZGbG9hdCBmMiA6OiBWRmxvYXQgZjEgOjogc3QnLCBQcmltJyBBZGRmIDo6IHIpID0+CiAgICAg
IGV2YWwoZW52LCAoVkZsb2F0IChmMSArIGYyKSA6OiBzdCcpLCByKQogIHwgKFZGbG9hdCBmIDo6
IHN0JywgUHJpbScgQWNvcyA6OiByKSA9PgogICAgICAgZXZhbChlbnYsIChWRmxvYXQgKGRlZyAo
YWNvcyBmKSkgOjogc3QnKSwgcikKICB8IChWRmxvYXQgZiA6OiBzdCcsIFByaW0nIEFzaW4gOjog
cikgPT4KICAgICAgIGV2YWwoZW52LCAoVkZsb2F0IChkZWcgKGFzaW4gZikpIDo6IHN0JyksIHIp
CiAgfCAoKHZmIGFzIFZGbG9hdCBmKTo6IHN0JywgUHJpbScgQ2xhbXBmIDo6IHIpID0+CiAgICAg
IGxldCB2YWwgZicgPSBpZiBmIDwgMC4wIHRoZW4gemVybyBlbHNlIGlmIGYgPiAxLjAgdGhlbiBv
bmUgZWxzZSB2ZgogICAgICBpbiBldmFsKGVudiwgKGYnIDo6IHN0JyksIHIpCiAgICAgIGVuZAog
IHwgKFZGbG9hdCBmIDo6IHN0JywgUHJpbScgQ29zIDo6IHIpID0+CiAgICAgICBldmFsKGVudiwg
KFZGbG9hdCAoY29zIChyYWQgZikpIDo6IHN0JyksIHIpCiAgfCAoVkludCBuMiA6OiBWSW50IG4x
IDo6IHN0JywgUHJpbScgRGl2aSA6OiByKSA9PgogICAgICAgZXZhbChlbnYsIChWSW50IChuMSBk
aXYgbjIpIDo6IHN0JyksIHIpCiAgfCAoVkZsb2F0IGYyIDo6IFZGbG9hdCBmMSA6OiBzdCcsIFBy
aW0nIERpdmYgOjogcikgPT4KICAgICAgZXZhbChlbnYsIChWRmxvYXQgKGYxIC8gZjIpIDo6IHN0
JyksIHIpCiAgfCAoVkludCBuMiA6OiBWSW50IG4xIDo6IHN0JywgUHJpbScgRXFpIDo6IHIpID0+
CiAgICAgICBldmFsKGVudiwgKFZCb29sIChuMSA9IG4yKSA6OiBzdCcpLCByKQogIHwgKFZGbG9h
dCBmMiA6OiBWRmxvYXQgZjEgOjogc3QnLCBQcmltJyBFcWYgOjogcikgPT4KICAgICAgZXZhbChl
bnYsIChWQm9vbCAoUmVhbC49PShmMSwgZjIpKSA6OiBzdCcpLCByKQogIHwgKFZGbG9hdCBmIDo6
IHN0JywgUHJpbScgRmxvb3IgOjogcikgPT4KICAgICAgZXZhbChlbnYsIChWSW50IChSZWFsLmZs
b29yIGYpIDo6IHN0JyksIHIpCiAgfCAoVkZsb2F0IGYgOjogc3QnLCBQcmltJyBGcmFjIDo6IHIp
ID0+CiAgICAgICBldmFsKGVudiwgKFZGbG9hdCAoUmVhbC5yZWFsTW9kIGYpIDo6IHN0JyksIHIp
CiAgfCAoVkludCBuMiA6OiBWSW50IG4xIDo6IHN0JywgUHJpbScgTGVzc2kgOjogcikgPT4KICAg
ICAgZXZhbChlbnYsIChWQm9vbCAobjEgPCBuMikgOjogc3QnKSwgcikKICB8IChWRmxvYXQgZjIg
OjogVkZsb2F0IGYxIDo6IHN0JywgUHJpbScgTGVzc2YgOjogcikgPT4KICAgICAgZXZhbChlbnYs
IChWQm9vbCAoZjEgPCBmMikgOjogc3QnKSwgcikKICB8IChWSW50IG4yIDo6IFZJbnQgbjEgOjog
c3QnLCBQcmltJyBNb2RpIDo6IHIpID0+CiAgICAgIGV2YWwoZW52LCAoVkludCAobjEgbW9kIG4y
KSA6OiBzdCcpLCByKQogIHwgKFZJbnQgbjIgOjogVkludCBuMSA6OiBzdCcsIFByaW0nIE11bGkg
OjogcikgPT4KICAgICAgIGV2YWwoZW52LCAoVkludCAobjEgKiBuMikgOjogc3QnKSwgcikKICB8
IChWRmxvYXQgZjIgOjogVkZsb2F0IGYxIDo6IHN0JywgUHJpbScgTXVsZiA6OiByKSA9PgogICAg
ICBldmFsKGVudiwgKFZGbG9hdCAoZjEgKiBmMikgOjogc3QnKSwgcikKICB8IChWSW50IG4gOjog
c3QnLCBQcmltJyBOZWdpIDo6IHIpID0+IGV2YWwoZW52LCAoVkludCAofiBuKSA6OiBzdCcpLCBy
KQogIHwgKFZGbG9hdCBmIDo6IHN0JywgUHJpbScgTmVnZiA6OiByKSA9PiBldmFsKGVudiwgKFZG
bG9hdCAofiBmKSA6OiBzdCcpLCByKQogIHwgKFZJbnQgbiA6OiBzdCcsIFByaW0nIFJlYWwgOjog
cikgPT4gZXZhbChlbnYsIChWRmxvYXQgKGZsb2F0IG4pIDo6IHN0JyksIHIpCiAgfCAoVkZsb2F0
IGYgOjogc3QnLCBQcmltJyBTaW4gOjogcikgPT4gZXZhbChlbnYsIChWRmxvYXQgKHNpbiAocmFk
IGYpKSA6OiBzdCcpLCByKQogIHwgKFZGbG9hdCBmIDo6IHN0JywgUHJpbScgU3FydCA6OiByKSA9
PiBldmFsKGVudiwgKFZGbG9hdCAoc3FydCBmKSA6OiBzdCcpLCByKQogIHwgKFZJbnQgbjIgOjog
VkludCBuMSA6OiBzdCcsIFByaW0nIFN1YmkgOjogcikgPT4gZXZhbChlbnYsIChWSW50IChuMSAt
IG4yKSA6OiBzdCcpLCByKQogIHwgKFZGbG9hdCBmMiA6OiBWRmxvYXQgZjEgOjogc3QnLCBQcmlt
JyBTdWJmIDo6IHIpID0+CiAgICAgIGV2YWwoZW52LCAoVkZsb2F0IChmMSAtIGYyKSA6OiBzdCcp
LCByKQooKiBPcGVyYXRpb25zIG9uIHBvaW50cyAqKQogIHwgKFZQb2ludCAoeCwgXywgXykgOjog
c3QnLCBQcmltJyBHZXR4IDo6IHIgKSA9PiBldmFsKGVudiwgKHggOjogc3QnKSwgcikKICB8IChW
UG9pbnQgKF8sIHksIF8pIDo6IHN0JywgUHJpbScgR2V0eSA6OiByICkgPT4gZXZhbChlbnYsICh5
IDo6IHN0JyksIHIpCiAgfCAoVlBvaW50IChfLCBfLCB6KSA6OiBzdCcsIFByaW0nIEdldHogOjog
ciApID0+IGV2YWwoZW52LCAoeiA6OiBzdCcpLCByKQogIHwgKCh6IGFzIFZGbG9hdCBfKSA6OiAo
eSBhcyBWRmxvYXQgXykgOjogKHggYXMgVkZsb2F0IF8pIDo6IHN0JywKICAgICBQcmltJyBQb2lu
dCA6OiByKSA9PgogICAgICBldmFsKGVudiwgKFZQb2ludCAoeCwgeSwgeikgOjogc3QnKSwgcikK
ICB8IChWSW50IGkgOjogVkFyciBhIDo6IHN0JywgUHJpbScgR2V0IDo6IHIpID0+CiAgICAgICgq
IGlmIGNvbXBpbGVkIG9mICItdW5zYWZlIiAqKQogICAgICBpZiBpIDwgMCBvcmVsc2UgaSA+PSBB
cnJheS5sZW5ndGggYQogICAgICB0aGVuIGZhaWx3aXRoICJpbGxlZ2FsIGFjY2VzcyBiZXlvbmQg
YXJyYXkgYm91bmRhcnkiCiAgICAgIGVsc2UgZXZhbChlbnYsIChBcnJheS5zdWIoYSwgaSkgOjog
c3QnKSwgcikKICB8IChWQXJyIGEgOjogc3QnLCBQcmltJyBMZW5ndGggOjogcikgPT4KICAgICAg
ZXZhbChlbnYsIChWSW50IChBcnJheS5sZW5ndGggYSkgOjogc3QnKSwgcikKKCogR2VvbWV0cmlj
IHByaW1pdGl2ZXMgKikKICB8ICgoZiBhcyBWQ2xvcyBfKSA6OiBzdCcsIFByaW0nIFNwaGVyZSA6
OiByICApID0+CiAgICAgIGV2YWwoZW52LCAoVk9iaiAoT09iaiAoT1NwaGVyZSwgcmVmIChVbm9w
dCBmKSkpIDo6IHN0JyksIHIpCiAgfCAoKGYgYXMgVkNsb3MgXykgOjogc3QnLCBQcmltJyBDdWJl
IDo6IHIgICAgKSA9PgogICAgICBldmFsKGVudiwgKFZPYmogKE9PYmogKE9DdWJlLCByZWYgKFVu
b3B0IGYpKSkgICA6OiBzdCcpLCByKQogIHwgKChmIGFzIFZDbG9zIF8pIDo6IHN0JywgUHJpbScg
Q3lsaW5kZXIgOjogcikgPT4KICAgICAgZXZhbChlbnYsIChWT2JqIChPT2JqIChPQ3lsaW5kLCBy
ZWYgKFVub3B0IGYpKSkgOjogc3QnKSwgcikKICB8ICgoZiBhcyBWQ2xvcyBfKSA6OiBzdCcsIFBy
aW0nIENvbmUgOjogciAgICApID0+CiAgICAgIGV2YWwoZW52LCAoVk9iaiAoT09iaiAoT0NvbmUs
IHJlZiAoVW5vcHQgZikpKSAgIDo6IHN0JyksIHIpCiAgfCAoKGYgYXMgVkNsb3MgXykgOjogc3Qn
LCBQcmltJyBQbGFuZSA6OiByICAgKSA9PgogICAgICBldmFsKGVudiwgKFZPYmogKE9PYmogKE9Q
bGFuZSwgcmVmIChVbm9wdCBmKSkpICA6OiBzdCcpLCByKQooKiBUcmFuc2Zvcm1hdGlvbnMgKikK
ICB8IChWRmxvYXQgeiA6OiBWRmxvYXQgeSA6OiBWRmxvYXQgeCA6OiBWT2JqIG9iIDo6IHN0Jywg
UHJpbScgVHJhbnNsYXRlIDo6IHIpID0+CiAgICAgIGV2YWwoZW52LAogICAgICAgIChWT2JqIChP
VHJhbnNmb3JtIChvYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0cml4LnRyYW5zbGF0
ZSAoeCwgeSwgeiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdHJpeC50cmFuc2xhdGUg
KH4geCwgfiB5LCB+IHopLAogICAgICAgICAgICAgICAgICAgICAgICAgICAxLjAsIHRydWUpKSA6
OiBzdCcpLAogICAgICAgIHIpCiAgfCAoVkZsb2F0IHogOjogVkZsb2F0IHkgOjogVkZsb2F0IHgg
OjogVk9iaiBvYiA6OiBzdCcsIFByaW0nIFNjYWxlIDo6IHIpID0+CiAgICAgICBldmFsKCBlbnYs
CiAgICAgICAgKFZPYmogKE9UcmFuc2Zvcm0gKG9iLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICBNYXRyaXguc2NhbGUgKHgsIHksIHopLAogICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRy
aXgudW5zY2FsZSAoeCwgeSwgeiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlYWwubWF4
IChhYnNfZmxvYXQgeCwKCQkJCSAgICAgKFJlYWwubWF4IChhYnNfZmxvYXQgeSwgYWJzX2Zsb2F0
IHopKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkgOjogc3QnKSwKICAgICAg
ICByKQogIHwgKFZGbG9hdCBzIDo6IFZPYmogb2IgOjogc3QnLCBQcmltJyBVc2NhbGUgOjogcikg
PT4KICAgICAgZXZhbChlbnYsCiAgICAgICAgKFZPYmogKE9UcmFuc2Zvcm0gKG9iLCBNYXRyaXgu
dXNjYWxlIHMsIE1hdHJpeC51bnVzY2FsZSBzLAogICAgICAgICAgICAgICAgICAgICAgICAgICBh
YnNfZmxvYXQgcywgdHJ1ZSkpIDo6IHN0JyksCiAgICAgICAgcikKICB8IChWRmxvYXQgdCA6OiBW
T2JqIG9iIDo6IHN0JywgUHJpbScgUm90YXRleCA6OiByKSA9PgogICAgICBldmFsKGVudiwKICAg
ICAgICAoVk9iaiAoT1RyYW5zZm9ybSAob2IsIE1hdHJpeC5yb3RhdGV4IHQsIE1hdHJpeC5yb3Rh
dGV4ICh+IHQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAxLjAsIHRydWUpKSA6OiBzdCcp
LAogICAgICAgIHIpCiAgfCAoVkZsb2F0IHQgOjogVk9iaiBvYiA6OiBzdCcsIFByaW0nIFJvdGF0
ZXkgOjogcikgPT4KICAgICAgZXZhbChlbnYsCiAgICAgICAgKFZPYmogKE9UcmFuc2Zvcm0gKG9i
LCBNYXRyaXgucm90YXRleSB0LCBNYXRyaXgucm90YXRleSAofiB0KSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMS4wLCB0cnVlKSkgOjogc3QnKSwKICAgICAgICByKQogIHwgKFZGbG9hdCB0
IDo6IFZPYmogb2IgOjogc3QnLCBQcmltJyBSb3RhdGV6IDo6IHIpID0+CiAgICAgIGV2YWwoZW52
LAogICAgICAgIChWT2JqIChPVHJhbnNmb3JtIChvYiwgTWF0cml4LnJvdGF0ZXogdCwgTWF0cml4
LnJvdGF0ZXogKH4gdCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMCwgdHJ1ZSkpIDo6
IHN0JyksCiAgICAgICAgcikKKCogTGlnaHRzICopCiAgfCAoKGNvbG9yIGFzIFZQb2ludCBfKSA6
OiAoZGlyIGFzIFZQb2ludCBfKSA6OiBzdCcsIFByaW0nIExpZ2h0IDo6IHIpID0+CiAgICAgIGV2
YWwoZW52LCAoVkxpZ2h0IChkaXIsIGNvbG9yKSA6OiBzdCcpLCByKQogIHwgKChjb2xvciBhcyBW
UG9pbnQgXykgOjogKHBvcyBhcyBWUG9pbnQgXykgOjogc3QnLCBQcmltJyBQb2ludGxpZ2h0IDo6
IHIpID0+CiAgICAgIGV2YWwoZW52LCAoVlB0TGlnaHQgKHBvcywgY29sb3IpIDo6IHN0JyksIHIp
CiAgfCAoKGV4cG9uIGFzIFZGbG9hdCBfKSA6OiAoY3V0b2ZmIGFzIFZGbG9hdCBfKSA6OiAoY29s
b3IgYXMgVlBvaW50IF8pIDo6CiAgICAoYXQgYXMgVlBvaW50IF8pIDo6IChwb3MgYXMgVlBvaW50
IF8pIDo6IHN0JywgUHJpbScgU3BvdGxpZ2h0IDo6IHIpID0+CiAgICAgIGV2YWwoZW52LCAoVlN0
TGlnaHQgKHBvcywgYXQsIGNvbG9yLCBjdXRvZmYsIGV4cG9uKSA6OiBzdCcpLCByKQooKiBDb25z
dHJ1Y3RpdmUgZ2VvbWV0cnkgKikKICB8ICgoVk9iaiBvMikgOjogKFZPYmogbzEpIDo6IHN0Jywg
UHJpbScgVW5pb24gOjogcikgPT4KICAgICAgZXZhbChlbnYsIChWT2JqIChPVW5pb24gKG8xLCBv
MikpIDo6IHN0JyksIHIpCiAgfCAoKFZPYmogbzIpIDo6IChWT2JqIG8xKSA6OiBzdCcsIFByaW0n
IEludGVyc2VjdCA6OiByKSA9PgogICAgICBldmFsKGVudiwgKFZPYmogKE9JbnRlciAobzEsIG8y
KSkgOjogc3QnKSwgcikKICB8ICgoVk9iaiBvMikgOjogKFZPYmogbzEpIDo6IHN0JywgUHJpbScg
RGlmZmVyZW5jZSA6OiByKSA9PgogICAgICBldmFsKGVudiwgKFZPYmogKE9EaWZmIChvMSwgbzIp
KSA6OiBzdCcpLCByKQooKiBSZW5kZXJpbmcgKikKICB8IChWU3RyIGZpbGUgOjogVkludCBodCA6
OiBWSW50IHdpZCA6OiBWRmxvYXQgZm92IDo6IFZJbnQgZGVwdGggOjoKICAgIFZPYmogb2JqIDo6
IFZBcnIgbGlnaHRzIDo6IFZQb2ludCAoVkZsb2F0IGF4LCBWRmxvYXQgYXksIFZGbG9hdCBheikg
OjoKICAgIHN0JywgUHJpbScgUmVuZGVyIDo6IHIpID0+CigqCmFtYiB0aGUgaW50ZW5zaXR5IG9m
IGFtYmllbnQgbGlnaHQgKGEgcG9pbnQpLiAKbGlnaHRzIGlzIGFuIGFycmF5IG9mIGxpZ2h0cyB1
c2VkIHRvIGlsbHVtaW5hdGUgdGhlIHNjZW5lLiAKb2JqIGlzIHRoZSBzY2VuZSB0byByZW5kZXIu
IApkZXB0aCBpcyBhbiBpbnRlZ2VyIGxpbWl0IG9uIHRoZSByZWN1cnNpdmUgZGVwdGggb2YgdGhl
IHJheSB0cmFjaW5nLiAKZm92IGlzIHRoZSBob3Jpem9udGFsIGZpZWxkIG9mIHZpZXcgaW4gZGVn
cmVlcyAoYSByZWFsIG51bWJlcikuIAp3aWQgaXMgdGhlIHdpZHRoIG9mIHRoZSByZW5kZXJlZCBp
bWFnZSBpbiBwaXhlbHMgKGFuIGludGVnZXIpLiAKaHQgaXMgdGhlIGhlaWdodCBvZiB0aGUgcmVu
ZGVyZWQgaW1hZ2UgaW4gcGl4ZWxzIChhbiBpbnRlZ2VyKS4gCmZpbGUgaXMgYSBzdHJpbmcgc3Bl
Y2lmeWluZyBvdXRwdXQgZmlsZSBmb3IgdGhlIHJlbmRlcmVkIGltYWdlLiAKKikKICAgIChSZW5k
ZXIuZiAoKGF4LCBheSwgYXopLCBsaWdodHMsIG9iaiwgZGVwdGgsIGZvdiwgd2lkLCBodCwgZmls
ZSkKICAgICA7IGV2YWwoZW52LCBzdCcsIHIpKQooKiBUZXJtaW5hdGlvbiAqKQogIHwgKF8sIFtd
KSA9PiBzdAooKiBGYWlsdXJlICopCiAgfCBfID0+CiAgICAgIHJhaXNlIChTdHVja19jb21wdXRh
dGlvbiAoZW52LCBzdCwgcCkpCgpmdW4gYXBwbHkgKGYsIHN0KSA9CiAgY2FzZSBmIG9mCiAgICBW
Q2xvcyAoZW52LCBwKSA9PiBldmFsKGVudiwgc3QsIHApCiAgfCBfID0+IHJhaXNlIEZhaWwgImFz
c2VydCBmYWxzZSIKCnZhbCBfID0gUmVuZGVyLmFwcGx5IDo9IGFwcGx5CgpmdW4gZiBwID0KICAg
bGV0CiAgICAgIHZhbCBzdCA9IGV2YWwoW10sIFtdLCAoY29udihbXSwgcCkpKQogICBpbgogICAg
ICBjYXNlIHN0IG9mCgkgW10gPT4gKCkKICAgICAgIHwgXyA9PiBmYWlsd2l0aCAiZXJyb3IiCiAg
IGVuZCBoYW5kbGUgU3R1Y2tfY29tcHV0YXRpb24gKGVudiwgc3QsIHApID0+IGZhaWx3aXRoICJz
dHVjayIKICAgICAgCmVuZApzdHJ1Y3R1cmUgTWFpbiA9CiAgIHN0cnVjdAogICAgICBmdW4gbWFp
bigpID0KCSBFdmFsLmYgKFByb2dyYW0ucmVhZCBUZXh0SU8uc3RkSW4pCgkgaGFuZGxlIF8gPT4g
KCkKCiAgICAgIGZ1biBleHBvcnROSigpID0KCSBTTUxvZk5KLmV4cG9ydEZuKCJpbXByb3ZlZC1y
dCIsIGZuIF8gPT4gKG1haW4oKTsgMCkpCiAgIGVuZAoKdmFsIF8gPSBNYWluLm1haW4oKTsKCg==

--SV5JYP48fB
Content-Type: application/octet-stream
Content-Description: gml
Content-Disposition: attachment;
	filename="fractal.gml"
Content-Transfer-Encoding: base64

JSBmcmFjdGFsLmdtbA0KJQ0KJSBPVVRQVVRTIGZyYWN0YWwucHBtDQolDQolIEZyYWN0YWwgdGhp
bmdpZSB3aXRoIHNwaGVyZXMuDQolDQoNCiAKCgoNCg0KCgoNCiUlJSUlJSUlJSUgaW5jbHVkZSBz
dXJmYWNlLmlucyAlJSUlJSUlJSUlDQoNCiAKCgoKCg0KDQoKCg0KJSUlJSUlJSUlJSBpbmNsdWRl
IHV0aWwuaW5zICUlJSUlJSUlJSUNCg0KeyAveCB9IC9wb3AJCSUgcG9wIGEgc3RhY2sgaXRlbQ0K
eyAveCB4IHggfSAvZHVwCQklIGR1cGxpY2F0ZSBhIHN0YWNrIGl0ZW0NCg0KJSBwb3AgbiBpdGVt
cyBvZmYgdGhlIHN0YWNrDQp7IC9uDQogIHsgL3NlbGYgL2kNCiAgICBpIDEgbGVzc2kNCiAgICB7
IH0NCiAgICB7IC94IGkgMSBzdWJpIHNlbGYgc2VsZiBhcHBseSB9DQogICAgaWYNCiAgfSAvbG9v
cA0KICBuIGxvb3AgbG9vcCBhcHBseQ0KfSAvcG9wbg0KDQolIGRvdCBwcm9kdWN0DQolIC4uLiB2
MiB2MSAgZG90ICA9PT4gLi4uIHINCnsgL3YxIC92Mg0KICB2MSBnZXR4IHYyIGdldHggbXVsZg0K
ICB2MSBnZXR5IHYyIGdldHkgbXVsZiBhZGRmDQogIHYxIGdldHogdjIgZ2V0eiBtdWxmIGFkZGYN
Cn0gL2RvdA0KDQolIGludGVnZXIgYWJzb2x1dGUgdmFsdWUNCnsgL2kgaSAwIGxlc3NpIHsgaSBu
ZWdpIH0geyBpIH0gaWYgfSAvYWJzaQ0KDQolIGZsb2F0aW5nLXBvaW50IGFic29sdXRlIHZhbHVl
DQp7IC9mIGYgMC4wIGxlc3NmIHsgZiBuZWdmIH0geyBmIH0gaWYgfSAvYWJzZg0KDQolIG5vcm1h
bGl6ZQ0KJSAuLi4gdjEgIG5vcm1hbGl6ZSAgPT0+IC4uLiB2Mg0KeyAvdg0KICAxLjAgdiB2IGRv
dCBhcHBseSBzcXJ0IGRpdmYgL3MJJSBzID0gc3FydCgxLjAvdiBkb3QgdikNCiAgcyB2IGdldHgg
bXVsZgkJCQklIHB1c2ggcyp4DQogIHMgdiBnZXR5IG11bGYJCQkJJSBwdXNoIHMqeQ0KICBzIHYg
Z2V0eiBtdWxmCQkJCSUgcHVzaCBzKnoNCiAgcG9pbnQJCQkJCSUgbWFrZSBub3JtYWxpemVkIHZl
Y3Rvcg0KfSAvbm9ybWFsaXplDQoNCiUgYWRkcA0KeyAvdjIgL3YxDQogIHYxIGdldHggdjIgZ2V0
eCBhZGRmDQogIHYxIGdldHkgdjIgZ2V0eSBhZGRmDQogIHYxIGdldHogdjIgZ2V0eiBhZGRmIHBv
aW50DQp9IC9hZGRwDQoNCiUgc3VicA0KeyAvdjIgL3YxDQogIHYxIGdldHggdjIgZ2V0eCBzdWJm
DQogIHYxIGdldHkgdjIgZ2V0eSBzdWJmDQogIHYxIGdldHogdjIgZ2V0eiBzdWJmIHBvaW50DQp9
IC9zdWJwDQoNCiUgbXVscA0KeyAvdjIgL3YxDQogIHYxIGdldHggdjIgZ2V0eCBtdWxmDQogIHYx
IGdldHkgdjIgZ2V0eSBtdWxmDQogIHYxIGdldHogdjIgZ2V0eiBtdWxmIHBvaW50DQp9IC9tdWxw
DQoNCiUgbmVncA0KeyAvdg0KICB2IGdldHggbmVnZg0KICB2IGdldHkgbmVnZg0KICB2IGdldHog
bmVnZiBwb2ludA0KfSAvbmVncA0KDQoNCiUgQSBzaW1wbGUgcHNldWRvLXJhbmRvbSBudW1iZXIg
Z2VuZXJhdG9yIChmcm9tIEdyYXBoaWNzIEdlbXMgSUk7IHAuIDEzNykNCiUgV2UgaGF2ZSB0byBk
byB0aGUgY29tcHV0YXRpb24gaW4gRlAsIHNpbmNlIGl0IG92ZXJmbG93cyBpbiBpbnRlZ2VyIGFy
aXRobWV0aWMuDQp7IHJlYWwgMjUxNzMuMCBtdWxmIDEzODQ5LjAgYWRkZiA2NTUzNi4wIGRpdmYg
ZnJhYyA2NTUzNi4wIG11bGYgZmxvb3IgfSAvcmFuZG9tDQoNCiUgQSByYW5kb20gbnVtYmVyIGlu
IFswLi4xXS4NCiUNCiUgc2VlZCAgcmFuZG9tZiAgPT0+IGYgc2VlZA0KeyANCiAgcmFuZG9tIGFw
cGx5IC9zZWVkDQogIHNlZWQgcmVhbCA2NTUzNS4wIGRpdmYgc2VlZA0KfSAvcmFuZG9tZg0KDQol
JSUlJSUlJSUlIHV0aWwuaW5zICUlJSUlJSUlJSUNCg0KCg0KCiAKCgoNCg0KCgoNCiUlJSUlJSUl
JSUgaW5jbHVkZSBjb2xvcnMuaW5zICUlJSUlJSUlJSUNCg0KMC4wICAwLjAgIDAuMCAgcG9pbnQg
L2JsYWNrDQoxLjAgIDEuMCAgMS4wICBwb2ludCAvd2hpdGUNCjEuMCAgMC4wICAwLjAgIHBvaW50
IC9yZWQNCjAuMCAgMS4wICAwLjAgIHBvaW50IC9ncmVlbg0KMC4wICAwLjAgIDEuMCAgcG9pbnQg
L2JsdWUNCjEuMCAgMC4wICAxLjAgIHBvaW50IC9tYWdlbnRhDQoxLjAgIDEuMCAgMC4wICBwb2lu
dCAveWVsbG93DQowLjAgIDEuMCAgMS4wICBwb2ludCAvY3lhbg0KDQolIC4uLiA8bGV2ZWw+ICBn
cmV5ICA9PT4gIDxjb2xvcj4NCnsgY2xhbXBmIC9sZXZlbCBsZXZlbCBsZXZlbCBsZXZlbCBwb2lu
dCB9IC9ncmV5DQoNCiUlJSUlJSUlJSUgY29sb3JzLmlucyAlJSUlJSUlJSUlDQoNCgoKDQolIC4u
LiA8Y29sb3I+IG1hdHRlICA9PT4gIC4uLiA8c3VyZmFjZT4NCnsgL2NvbG9yDQogIHsgL3YgL3Ug
L2ZhY2UNCiAgICBjb2xvciAxLjAgMC4wIDEuMA0KICB9DQp9IC9tYXR0ZQ0KDQolIC4uLiA8Y29s
b3I+IDxrZD4gPGtzPiA8bj4gID09PiAgLi4uIDxzdXJmYWNlPg0KeyAvbiAva3MgL2tkIC9jb2xv
cg0KICB7IC92IC91IC9mYWNlDQogICAgY29sb3Iga2Qga3Mgbg0KICB9DQp9IC9jb25zdC1zdXJm
YWNlDQoNCiUlJSUlJSUlJSUgc3VyZmFjZS5pbnMgJSUlJSUlJSUlJQ0KDQoKCg0KDQowLjQgMC41
IDAuNiBwb2ludCAxLjAgMC4xIDEuMCBjb25zdC1zdXJmYWNlIGFwcGx5IHBsYW5lIC9wDQoNCnsg
L2NvbA0KICB7IC92IC91IC9mYWNlDQogICAgY29sDQogICAgMC4xIDAuOTkgNi4wDQogIH0gc3Bo
ZXJlIDAuOSB1c2NhbGUNCn0gL21rc3BoZXJlDQoNClsNCiAgMC41IDAuNyAwLjkgcG9pbnQNCiAg
MC41IDAuOSAwLjUgcG9pbnQNCiAgMC42IDAuNiAwLjcgcG9pbnQNCiAgMS4wIDAuNyAwLjUgcG9p
bnQNCiAgMC45IDEuMCAwLjYgcG9pbnQNCiAgMS4wIDAuNSAwLjMgcG9pbnQNCiAgMS4wIDAuOCAw
LjkgcG9pbnQNCiAgMS4wIDEuMCAwLjYgcG9pbnQNCiAgMS4wIDEuMCAxLjAgcG9pbnQNCl0gL2Nv
bG9ycw0KDQp7IDEgYWRkaSBjb2xvcnMgbGVuZ3RoIG1vZGkgfSAvaW5jcm1vZA0KDQp7DQogIC9z
ZWxmIC9jb2wgL2RlcHRoIC9iYXNlDQogIGRlcHRoIDAgZXFpDQogIHsgY29sb3JzIGNvbCBnZXQg
YmFzZSBhcHBseSAwLjkgdXNjYWxlIH0NCiAgeyANCiAgICBjb2wgaW5jcm1vZCBhcHBseSAvY29s
DQogICAgY29sb3JzIGNvbCBnZXQgYmFzZSBhcHBseQ0KICAgIGNvbCBpbmNybW9kIGFwcGx5IC9j
b2wNCiAgICBiYXNlIGRlcHRoIDEgc3ViaSBjb2wgc2VsZiBzZWxmIGFwcGx5IDIuNSAwLjAgMC4w
IHRyYW5zbGF0ZSB1bmlvbg0KICAgIGNvbCBpbmNybW9kIGFwcGx5IC9jb2wNCiAgICBiYXNlIGRl
cHRoIDEgc3ViaSBjb2wgc2VsZiBzZWxmIGFwcGx5DQogICAgMi41IDAuMCAwLjAgdHJhbnNsYXRl
IDYwLjAgcm90YXRleiB1bmlvbg0KICAgIGNvbCBpbmNybW9kIGFwcGx5IC9jb2wNCiAgICBiYXNl
IGRlcHRoIDEgc3ViaSBjb2wgc2VsZiBzZWxmIGFwcGx5DQogICAgMi41IDAuMCAwLjAgdHJhbnNs
YXRlIDEyMC4wIHJvdGF0ZXogdW5pb24NCiAgICBjb2wgaW5jcm1vZCBhcHBseSAvY29sDQogICAg
YmFzZSBkZXB0aCAxIHN1YmkgY29sIHNlbGYgc2VsZiBhcHBseQ0KICAgIDIuNSAwLjAgMC4wIHRy
YW5zbGF0ZSAxODAuMCByb3RhdGV6IHVuaW9uDQogICAgY29sIGluY3Jtb2QgYXBwbHkgL2NvbA0K
ICAgIGJhc2UgZGVwdGggMSBzdWJpIGNvbCBzZWxmIHNlbGYgYXBwbHkNCiAgICAyLjUgMC4wIDAu
MCB0cmFuc2xhdGUgMjQwLjAgcm90YXRleiB1bmlvbg0KICAgIGNvbCBpbmNybW9kIGFwcGx5IC9j
b2wNCiAgICBiYXNlIGRlcHRoIDEgc3ViaSBjb2wgc2VsZiBzZWxmIGFwcGx5DQogICAgMi41IDAu
MCAwLjAgdHJhbnNsYXRlIDMwMC4wIHJvdGF0ZXogdW5pb24NCg0KICAgIGNvbCBpbmNybW9kIGFw
cGx5IC9jb2wNCiAgICBiYXNlIGRlcHRoIDEgc3ViaSBjb2wgc2VsZiBzZWxmIGFwcGx5DQogICAg
My4wIDAuMCAwLjAgdHJhbnNsYXRlIDkwLjAgcm90YXRleSB1bmlvbg0KICAgIGNvbCBpbmNybW9k
IGFwcGx5IC9jb2wNCiAgICBiYXNlIGRlcHRoIDEgc3ViaSBjb2wgc2VsZiBzZWxmIGFwcGx5DQog
ICAgMy4wIDAuMCAwLjAgdHJhbnNsYXRlIC05MC4wIHJvdGF0ZXkgdW5pb24NCg0KICAgIDEuMCAz
LjAgZGl2ZiB1c2NhbGUNCiAgfQ0KICBpZg0KfSAvcmVjDQoNCm1rc3BoZXJlIDMgMCByZWMgcmVj
IGFwcGx5IDMwLjAgcm90YXRleCA0MC4wIHJvdGF0ZXkNCjAuOCB1c2NhbGUgMC4wIDAuMyAwLjUg
dHJhbnNsYXRlDQoNCnAgMC4wIC0xLjAgMC4wIHRyYW5zbGF0ZSB1bmlvbg0KMC4wIC0wLjIgMC4z
IHRyYW5zbGF0ZQ0KIC9zY2VuZQ0KDQoJCQkJJSBkaXJlY3Rpb25hbCBsaWdodA0KMC44IC0xLjAg
MC40IHBvaW50CQkgICUgZGlyZWN0aW9uDQoxLjAgIDEuMCAxLjAgcG9pbnQgbGlnaHQgL2wxCSAg
JSBkaXJlY3Rpb25hbCBsaWdodA0KDQowLjQgMC40IDAuNCBwb2ludAkJICAlIGFtYmllbnQgbGln
aHQNClsgbDEgXQkJCQkgICUgbGlnaHRzDQpzY2VuZQkJCQkgICUgc2NlbmUgdG8gcmVuZGVyDQoz
CQkJCSAgJSB0cmFjaW5nIGRlcHRoDQoxMDAuMAkJCQkgICUgZmllbGQgb2Ygdmlldw0KMzAwIDIw
MAkJCQkgICUgaW1hZ2Ugd2lkIGFuZCBoZWlnaHQNCiJmcmFjdGFsLnBwbSIJCQkgICUgb3V0cHV0
IGZpbGUNCnJlbmRlcg0KDQo=

--SV5JYP48fB--