Porting GMP-4.2.2 on QNX6.3.0....didn't work
"bhanu rao" <[email protected]> Wed, 12 Mar 2008 12:12:55 +0530
| Newsgroups | gmane.os.qnx.openqnx.devel |
|---|---|
| Message-ID | <[email protected]> |
------=_Part_12835_20237180.1205304176067 Content-Type: multipart/alternative; boundary="----=_Part_12836_19874347.1205304176067" ------=_Part_12836_19874347.1205304176067 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Trying to configure GMP-4.2.2 for QNX6.3.0 for MPC5000b (powerpc603e) on a windows XP cross compiler. try to configure using ./configure --build=pentium4-pc-nto-qnx6 --host=ppcbe-powerpc-nto-qnx6 make was able to build the libgmp.a, but when i include in my qnx workspace it give me linking error,two cases might be there: 1. Library is not configured for QNX6.3.0 on MPC5000b (powerpc603e board). 2. May be i am missing somewhera in providing it proper path. please let me known the correct configure options and linking options. does it needs some changes in configure file? attach is the config.log file thanks , bhanu ------=_Part_12836_19874347.1205304176067 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline <p>Trying to configure GMP-4.2.2 for QNX6.3.0 for MPC5000b (powerpc603e) on a windows XP cross compiler. try to configure using </p> <p>./configure --build=pentium4-pc-nto-qnx6 --host=ppcbe-powerpc-nto-qnx6 <br>make </p> <p>was able to build the libgmp.a, but when i include in my qnx workspace it give me linking error,two cases might be there: <br>1. Library is not configured for QNX6.3.0 on MPC5000b (powerpc603e board). <br>2. May be i am missing somewhera in providing it proper path. </p> <p>please let me known the correct configure options and linking options. <br>does it needs some changes in configure file? </p> <p>attach is the config.log file </p> <p>thanks , <br>bhanu </p> ------=_Part_12836_19874347.1205304176067-- ------=_Part_12835_20237180.1205304176067 Content-Type: application/octet-stream; name=config.log Content-Transfer-Encoding: base64 X-Attachment-Id: f_fdpiyavb Content-Disposition: attachment; filename=config.log VGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hp bGUKcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2Vz IGEgbWlzdGFrZS4KCkl0IHdhcyBjcmVhdGVkIGJ5IEdOVSBNUCBjb25maWd1cmUgNC4yLjIsIHdo aWNoIHdhcwpnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTkuICBJbnZvY2F0aW9uIGNvbW1h bmQgbGluZSB3YXMKCiAgJCAuL2NvbmZpZ3VyZSAtLWJ1aWxkPXBlbnRpdW00LXBjLWN5Z3dpbiAt LWhvc3Q9cHBjYmUtcG93ZXJwYy1udG8tcW54NgoKIyMgLS0tLS0tLS0tICMjCiMjIFBsYXRmb3Jt LiAjIwojIyAtLS0tLS0tLS0gIyMKCmhvc3RuYW1lID0gSU5CQUdEVExBQkZPVVIKdW5hbWUgLW0g PSBpNjg2CnVuYW1lIC1yID0gMS41LjI1KDAuMTU2LzQvMikKdW5hbWUgLXMgPSBDWUdXSU5fTlQt NS4xCnVuYW1lIC12ID0gMjAwNy0xMi0xNCAxOToyMQoKL3Vzci9iaW4vdW5hbWUgLXAgPSB1bmtu b3duCi9iaW4vdW5hbWUgLVggICAgID0gdW5rbm93bgoKL2Jpbi9hcmNoICAgICAgICAgICAgICA9 IGk2ODYKL3Vzci9iaW4vYXJjaCAtayAgICAgICA9IHVua25vd24KL3Vzci9jb252ZXgvZ2V0c3lz aW5mbyA9IHVua25vd24KaG9zdGluZm8gICAgICAgICAgICAgICA9IHVua25vd24KL2Jpbi9tYWNo aW5lICAgICAgICAgICA9IHVua25vd24KL3Vzci9iaW4vb3NsZXZlbCAgICAgICA9IHVua25vd24K L2Jpbi91bml2ZXJzZSAgICAgICAgICA9IHVua25vd24KClBBVEg6IC91c3IvbG9jYWwvYmluDQpQ QVRIOiAvdXNyL2Jpbg0KUEFUSDogL2Jpbg0KUEFUSDogL3Vzci9YMTFSNi9iaW4NClBBVEg6IC9j eWdkcml2ZS9jL1BlcmwvYmluDQpQQVRIOiAvY3lnZHJpdmUvYy9XSU5OVC9zeXN0ZW0zMg0KUEFU SDogL2N5Z2RyaXZlL2MvV0lOTlQNClBBVEg6IC9jeWdkcml2ZS9jL1dJTk5UL1N5c3RlbTMyL1di ZW0NClBBVEg6IC9jeWdkcml2ZS9jL1Byb2dyYW0gRmlsZXMvUXVpY2tUaW1lL1FUU3lzdGVtLw0K UEFUSDogL2N5Z2RyaXZlL2MvUU5YNjMwL2hvc3Qvd2luMzIveDg2L3Vzci9iaW4NClBBVEg6IC9j eWdkcml2ZS9jL1Byb2dyYW0gRmlsZXMvUU5YIFNvZnR3YXJlIFN5c3RlbXMvYmluDQpQQVRIOiAv Y3lnZHJpdmUvYy9RTlg2MzAvaG9zdC93aW4zMi94ODYvdXNyL250b3BwYy9iaW4NClBBVEg6IC91 c3IvYmluDQpQQVRIOiAvY3lnZHJpdmUvYy9RTlg2MzAvaG9zdC93aW4zMi94ODYvdXNyL2dtcC00 LjIuMi8ubGlicw0KUEFUSDogL2N5Z2RyaXZlL2MvUHJvZ3JhbSBGaWxlcy9TVEkvYmluL3BjLXdp bjk1DQoKCiMjIC0tLS0tLS0tLS0tICMjCiMjIENvcmUgdGVzdHMuICMjCiMjIC0tLS0tLS0tLS0t ICMjCgpjb25maWd1cmU6MTY1NDogY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUNCmNvbmZpZ3Vy ZToxNjcyOiByZXN1bHQ6IHBlbnRpdW00LXBjLWN5Z3dpbg0KY29uZmlndXJlOjE2ODA6IGNoZWNr aW5nIGhvc3Qgc3lzdGVtIHR5cGUNCmNvbmZpZ3VyZToxNjk0OiByZXN1bHQ6IHBwY2JlLXBvd2Vy cGMtbnRvLXFueDYNCmNvbmZpZ3VyZToxNzE3OiBjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJs ZSBpbnN0YWxsDQpjb25maWd1cmU6MTc3MjogcmVzdWx0OiAvdXNyL2Jpbi9pbnN0YWxsIC1jDQpj b25maWd1cmU6MTc4MzogY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5l DQpjb25maWd1cmU6MTgyNjogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToxODgzOiBjaGVja2luZyBm b3IgZ2F3aw0KY29uZmlndXJlOjE4OTk6IGZvdW5kIC91c3IvYmluL2dhd2sNCmNvbmZpZ3VyZTox OTA5OiByZXN1bHQ6IGdhd2sNCmNvbmZpZ3VyZToxOTE5OiBjaGVja2luZyB3aGV0aGVyIG1ha2Ug c2V0cyAkKE1BS0UpDQpjb25maWd1cmU6MTkzOTogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToyMDE4 OiBjaGVja2luZyBmb3IgcHBjYmUtcG93ZXJwYy1udG8tcW54Ni1zdHJpcA0KY29uZmlndXJlOjIw NDc6IHJlc3VsdDogbm8NCmNvbmZpZ3VyZToyMDU2OiBjaGVja2luZyBmb3Igc3RyaXANCmNvbmZp Z3VyZToyMDcyOiBmb3VuZCAvdXNyL2Jpbi9zdHJpcA0KY29uZmlndXJlOjIwODM6IHJlc3VsdDog c3RyaXANCmNvbmZpZ3VyZToyMTA1OiBjaGVja2luZyB3aGV0aGVyIHRvIGVuYWJsZSBtYWludGFp bmVyLXNwZWNpZmljIHBvcnRpb25zIG9mIE1ha2VmaWxlcw0KY29uZmlndXJlOjIxMTQ6IHJlc3Vs dDogbm8NClVzZXI6CkFCST0KQ0M9CkNGTEFHUz0odW5zZXQpCkNQUEZMQUdTPSh1bnNldCkKTVBO X1BBVEg9CkdNUDoKYWJpbGlzdD1zdGFuZGFyZApjY2xpc3Q9Z2NjIGNjCmNvbmZpZ3VyZTozNzk0 OiBwcGNiZS1wb3dlcnBjLW50by1xbng2LWdjYyAyPiYxIHwgZ3JlcCB4bGMgPi9kZXYvbnVsbA0K Y29uZmlndXJlOjM3OTc6ICQ/ID0gMQ0KY29uZmlndXJlOjM4NTE6IGNoZWNraW5nIGNvbXBpbGVy IHBwY2JlLXBvd2VycGMtbnRvLXFueDYtZ2NjIC1PMyANClRlc3QgY29tcGlsZTogDQpjb25maWd1 cmU6Mzg2NTogcHBjYmUtcG93ZXJwYy1udG8tcW54Ni1nY2MgLU8zICBjb25mdGVzdC5jID4mNQ0K Li9jb25maWd1cmU6IGxpbmUgMzg2NjogcHBjYmUtcG93ZXJwYy1udG8tcW54Ni1nY2M6IGNvbW1h bmQgbm90IGZvdW5kDQpjb25maWd1cmU6Mzg2ODogJD8gPSAxMjcNCmZhaWxlZCBwcm9ncmFtIHdh czoNCgppbnQgbWFpbiAoKSB7IHJldHVybiAwOyB9CmNvbmZpZ3VyZTo0ODc0OiByZXN1bHQ6IG5v DQpjb25maWd1cmU6Mzc5NDogZ2NjIDI+JjEgfCBncmVwIHhsYyA+L2Rldi9udWxsDQpjb25maWd1 cmU6Mzc5NzogJD8gPSAxDQpjb25maWd1cmU6Mzg1MTogY2hlY2tpbmcgY29tcGlsZXIgZ2NjIC1P MyANClRlc3QgY29tcGlsZTogDQpjb25maWd1cmU6Mzg2NTogZ2NjIC1PMyAgY29uZnRlc3QuYyA+ JjUNCmNvbmZpZ3VyZTozODY4OiAkPyA9IDANClRlc3QgY29tcGlsZTogZnVuY3Rpb24gcG9pbnRl ciByZXR1cm4NCmNvbmZpZ3VyZTozOTE5OiBnY2MgLU8zICBjb25mdGVzdC5jID4mNQ0KY29uZmln dXJlOjM5MjI6ICQ/ID0gMA0KVGVzdCBjb21waWxlOiBjbW92IGluc3RydWN0aW9uDQpjb25maWd1 cmU6Mzk3NTogZ2NjIC1PMyAgY29uZnRlc3QuYyA+JjUNCmNvbmZpZ3VyZTozOTc4OiAkPyA9IDAN ClRlc3QgY29tcGlsZTogZG91YmxlIC0+IHVsb25nIGNvbnZlcnNpb24NCmNvbmZpZ3VyZTo0MDMy OiBnY2MgLU8zICBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjQwMzU6ICQ/ID0gMA0KVGVzdCBj b21waWxlOiBkb3VibGUgbmVnYXRpb24NCmNvbmZpZ3VyZTo0MDg3OiBnY2MgLU8zICBjb25mdGVz dC5jID4mNQ0KY29uZmlndXJlOjQwOTA6ICQ/ID0gMA0KVGVzdCBjb21waWxlOiBkb3VibGUgLT4g ZmxvYXQgY29udmVyc2lvbg0KY29uZmlndXJlOjQxNDM6IGdjYyAtTzMgIGNvbmZ0ZXN0LmMgPiY1 DQpjb25maWd1cmU6NDE0NjogJD8gPSAwDQpUZXN0IGNvbXBpbGU6IGdudXBybyBhbHBoYSBldjYg Y2hhciBzcGlsbGluZw0KY29uZmlndXJlOjQyMjc6IGdjYyAtTzMgIGNvbmZ0ZXN0LmMgPiY1DQpj b25maWd1cmU6NDIzMDogJD8gPSAwDQpUZXN0IGNvbXBpbGU6IF9fYnVpbHRpbl9hbGxvY2EgYXZh aWxhYmlsaXR5DQpjb25maWd1cmU6NDI3ODogZ2NjIC1PMyAgY29uZnRlc3QuYyA+JjUNCi91c3Iv bGliL2djYy9pNjg2LXBjLWN5Z3dpbi8zLjQuNC8uLi8uLi8uLi9saWJjeWd3aW4uYShsaWJjbWFp bi5vKTooLnRleHQrMHhhYik6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9XaW5NYWluQDE2Jw0K Y29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMNCmNvbmZpZ3VyZTo0MjgxOiAkPyA9 IDENCmZhaWxlZCBwcm9ncmFtIHdhczoNCmludCBrOyBpbnQgZm9vICgpIHsgX19idWlsdGluX2Fs bG9jYSAoayk7IH0KVGVzdCBjb21waWxlOiBhYnMgaW50IC0+IGRvdWJsZSBjb252ZXJzaW9uDQpj b25maWd1cmU6NDQwMjogZ2NjIC1PMyAgY29uZnRlc3QuYyA+JjUNCmNvbmZpZ3VyZTo0NDA1OiAk PyA9IDANClRlc3QgY29tcGlsZTogbG9uZyBsb25nIHJlbGlhYmlsaXR5IHRlc3QgMQ0KY29uZmln dXJlOjQ0NjY6IGdjYyAtTzMgIGNvbmZ0ZXN0LmMgPiY1DQpjb25maWd1cmU6NDQ2OTogJD8gPSAw DQpUZXN0IGNvbXBpbGU6IGxvbmcgbG9uZyByZWxpYWJpbGl0eSB0ZXN0IDINCmNvbmZpZ3VyZTo0 NTI2OiBnY2MgLU8zICBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjQ1Mjk6ICQ/ID0gMA0KVGVz dCBjb21waWxlOiBtcG5fbHNoaWZ0X2NvbSBvcHRpbWl6YXRpb24NCmNvbmZpZ3VyZTo0NjE3OiBn Y2MgLU8zICBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjQ2MjA6ICQ/ID0gMA0KVGVzdCBjb21w aWxlOiBtcG5fbHNoaWZ0X2NvbSBvcHRpbWl6YXRpb24gMg0KY29uZmlndXJlOjQ3MTc6IGdjYyAt TzMgIGNvbmZ0ZXN0LmMgPiY1DQpjb25maWd1cmU6NDcyMDogJD8gPSAwDQpjb25maWd1cmU6NDg3 NDogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZTo2NDc3OiBjaGVja2luZyBmb3IgcHBjYmUtcG93ZXJw Yy1udG8tcW54Ni1nY2MNCmNvbmZpZ3VyZTo2NTAzOiByZXN1bHQ6IGdjYw0KY29uZmlndXJlOjY3 ODU6IGNoZWNraW5nIGZvciBDIGNvbXBpbGVyIHZlcnNpb24NCmNvbmZpZ3VyZTo2Nzg4OiBnY2Mg LS12ZXJzaW9uIDwvZGV2L251bGwgPiY1DQpnY2MgKEdDQykgMy40LjQgKGN5Z21pbmcgc3BlY2lh bCwgZ2RjIDAuMTIsIHVzaW5nIGRtZCAwLjEyNSkNCkNvcHlyaWdodCAoQykgMjAwNCBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NClRoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBz b3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4gIFRoZXJlIGlzIE5PDQp3YXJyYW50eTsgbm90 IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4NCg0KY29uZmlndXJlOjY3OTE6ICQ/ID0gMA0KY29uZmlndXJlOjY3OTM6IGdjYyAtdiA8 L2Rldi9udWxsID4mNQ0KUmVhZGluZyBzcGVjcyBmcm9tIC91c3IvbGliL2djYy9pNjg2LXBjLWN5 Z3dpbi8zLjQuNC9zcGVjcw0KQ29uZmlndXJlZCB3aXRoOiAvdXNyL2J1aWxkL3BhY2thZ2Uvb3Jp Zy90ZXN0LnJlc3Bpbi9nY2MtMy40LjQtMy9jb25maWd1cmUgLS12ZXJib3NlIC0tcHJlZml4PS91 c3IgLS1leGVjLXByZWZpeD0vdXNyIC0tc3lzY29uZmRpcj0vZXRjIC0tbGliZGlyPS91c3IvbGli IC0tbGliZXhlY2Rpcj0vdXNyL2xpYiAtLW1hbmRpcj0vdXNyL3NoYXJlL21hbiAtLWluZm9kaXI9 L3Vzci9zaGFyZS9pbmZvIC0tZW5hYmxlLWxhbmd1YWdlcz1jLGFkYSxjKyssZCxmNzcscGFzY2Fs LGphdmEsb2JqYyAtLWVuYWJsZS1ubHMgLS13aXRob3V0LWluY2x1ZGVkLWdldHRleHQgLS1lbmFi bGUtdmVyc2lvbi1zcGVjaWZpYy1ydW50aW1lLWxpYnMgLS13aXRob3V0LXggLS1lbmFibGUtbGli Z2NqIC0tZGlzYWJsZS1qYXZhLWF3dCAtLXdpdGgtc3lzdGVtLXpsaWIgLS1lbmFibGUtaW50ZXJw cmV0ZXIgLS1kaXNhYmxlLWxpYmdjai1kZWJ1ZyAtLWVuYWJsZS10aHJlYWRzPXBvc2l4IC0tZW5h YmxlLWphdmEtZ2M9Ym9laG0gLS1kaXNhYmxlLXdpbjMyLXJlZ2lzdHJ5IC0tZW5hYmxlLXNqbGot ZXhjZXB0aW9ucyAtLWVuYWJsZS1oYXNoLXN5bmNocm9uaXphdGlvbiAtLWVuYWJsZS1saWJzdGRj eHgtZGVidWcNClRocmVhZCBtb2RlbDogcG9zaXgNCmdjYyB2ZXJzaW9uIDMuNC40IChjeWdtaW5n IHNwZWNpYWwsIGdkYyAwLjEyLCB1c2luZyBkbWQgMC4xMjUpDQpjb25maWd1cmU6Njc5NjogJD8g PSAwDQpjb25maWd1cmU6Njc5ODogZ2NjIC1WIDwvZGV2L251bGwgPiY1DQpnY2M6IGAtVicgb3B0 aW9uIG11c3QgaGF2ZSBhcmd1bWVudA0KY29uZmlndXJlOjY4MDE6ICQ/ID0gMQ0KY29uZmlndXJl OjY4MjQ6IGNoZWNraW5nIGZvciBDIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZQ0K Y29uZmlndXJlOjY4Mjc6IGdjYyAtTzMgICBjb25mdGVzdC5jICA+JjUNCmNvbmZpZ3VyZTo2ODMw OiAkPyA9IDANCmNvbmZpZ3VyZTo2ODc2OiByZXN1bHQ6IGEuZXhlDQpjb25maWd1cmU6Njg4MTog Y2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciB3b3Jrcw0KY29uZmlndXJlOjY5MDc6IHJl c3VsdDogeWVzDQpjb25maWd1cmU6NjkxNDogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3Mg Y29tcGlsaW5nDQpjb25maWd1cmU6NjkxNjogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZTo2OTE5OiBj aGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzDQpjb25maWd1cmU6NjkyMTogZ2NjIC1v IGNvbmZ0ZXN0LmV4ZSAtTzMgICBjb25mdGVzdC5jICA+JjUNCmNvbmZpZ3VyZTo2OTI0OiAkPyA9 IDANCmNvbmZpZ3VyZTo2OTQ5OiByZXN1bHQ6IC5leGUNCmNvbmZpZ3VyZTo2OTU1OiBjaGVja2lu ZyBmb3Igc3VmZml4IG9mIG9iamVjdCBmaWxlcw0KY29uZmlndXJlOjY5NzY6IGdjYyAtYyAtTzMg IGNvbmZ0ZXN0LmMgPiY1DQpjb25maWd1cmU6Njk3OTogJD8gPSAwDQpjb25maWd1cmU6NzAwMTog cmVzdWx0OiBvDQpjb25maWd1cmU6NzAwNTogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcg dGhlIEdOVSBDIGNvbXBpbGVyDQpjb25maWd1cmU6NzAyOTogZ2NjIC1jIC1PMyAgY29uZnRlc3Qu YyA+JjUNCmNvbmZpZ3VyZTo3MDM1OiAkPyA9IDANCmNvbmZpZ3VyZTo3MDM5OiB0ZXN0IC16IA0K CQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnINCmNvbmZpZ3VyZTo3MDQyOiAkPyA9IDANCmNv bmZpZ3VyZTo3MDQ1OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8NCmNvbmZpZ3VyZTo3MDQ4OiAkPyA9IDAN CmNvbmZpZ3VyZTo3MDYxOiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjcwNjc6IGNoZWNraW5nIHdo ZXRoZXIgZ2NjIGFjY2VwdHMgLWcNCmNvbmZpZ3VyZTo3MDg4OiBnY2MgLWMgLWcgIGNvbmZ0ZXN0 LmMgPiY1DQpjb25maWd1cmU6NzA5NDogJD8gPSAwDQpjb25maWd1cmU6NzA5ODogdGVzdCAteiAN CgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyDQpjb25maWd1cmU6NzEwMTogJD8gPSAwDQpj b25maWd1cmU6NzEwNDogdGVzdCAtcyBjb25mdGVzdC5vDQpjb25maWd1cmU6NzEwNzogJD8gPSAw DQpjb25maWd1cmU6NzExODogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZTo3MTM1OiBjaGVja2luZyBm b3IgZ2NjIG9wdGlvbiB0byBhY2NlcHQgQU5TSSBDDQpjb25maWd1cmU6NzIwNTogZ2NjICAtYyAt TzMgIGNvbmZ0ZXN0LmMgPiY1DQpjb25maWd1cmU6NzIxMTogJD8gPSAwDQpjb25maWd1cmU6NzIx NTogdGVzdCAteiANCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyDQpjb25maWd1cmU6NzIx ODogJD8gPSAwDQpjb25maWd1cmU6NzIyMTogdGVzdCAtcyBjb25mdGVzdC5vDQpjb25maWd1cmU6 NzIyNDogJD8gPSAwDQpjb25maWd1cmU6NzI0MjogcmVzdWx0OiBub25lIG5lZWRlZA0KY29uZmln dXJlOjcyNjA6IGdjYyAtYyAtTzMgIGNvbmZ0ZXN0LmMgPiY1DQpjb25mdGVzdC5jOjI6IGVycm9y OiBwYXJzZSBlcnJvciBiZWZvcmUgIm1lIg0NCmNvbmZpZ3VyZTo3MjY2OiAkPyA9IDENCmNvbmZp Z3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOg0KfCAjaWZuZGVmIF9fY3BsdXNwbHVzDQp8ICAgY2hv a2UgbWUNCnwgI2VuZGlmDQpjb25maWd1cmU6NzQwNTogY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUg QyBwcmVwcm9jZXNzb3INCmNvbmZpZ3VyZTo3NDQwOiBnY2MgLUUgIGNvbmZ0ZXN0LmMNCmNvbmZp Z3VyZTo3NDQ2OiAkPyA9IDANCmNvbmZpZ3VyZTo3NDc4OiBnY2MgLUUgIGNvbmZ0ZXN0LmMNCmNv bmZ0ZXN0LmM6MTM6Mjg6IGFjX25vbmV4aXN0ZW50Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3Rv cnkNDQpjb25maWd1cmU6NzQ4NDogJD8gPSAxDQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoNCnwgLyogY29uZmRlZnMuaC4gICovDQp8IA0KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05V IE1QIg0KfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ21wIg0KfCAjZGVmaW5lIFBBQ0tBR0Vf VkVSU0lPTiAiNC4yLjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBNUCA0LjIuMiIN CnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiZ21wLWJ1Z3NAc3dveC5jb20iDQp8ICNkZWZp bmUgUEFDS0FHRSAiZ21wIg0KfCAjZGVmaW5lIFZFUlNJT04gIjQuMi4yIg0KfCAjZGVmaW5lIFdB TlRfRkZUIDENCnwgI2RlZmluZSBIQVZFX0hPU1RfQ1BVX3BwY2JlIDENCnwgLyogZW5kIGNvbmZk ZWZzLmguICAqLw0KfCAjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4NCmNvbmZpZ3VyZTo3NTIz OiByZXN1bHQ6IGdjYyAtRQ0KY29uZmlndXJlOjc1NDc6IGdjYyAtRSAgY29uZnRlc3QuYw0KY29u ZmlndXJlOjc1NTM6ICQ/ID0gMA0KY29uZmlndXJlOjc1ODU6IGdjYyAtRSAgY29uZnRlc3QuYw0K Y29uZnRlc3QuYzoxMzoyODogYWNfbm9uZXhpc3RlbnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVj dG9yeQ0NCmNvbmZpZ3VyZTo3NTkxOiAkPyA9IDENCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0g d2FzOg0KfCAvKiBjb25mZGVmcy5oLiAgKi8NCnwgDQp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJH TlUgTVAiDQp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJnbXAiDQp8ICNkZWZpbmUgUEFDS0FH RV9WRVJTSU9OICI0LjIuMiINCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIE1QIDQuMi4y Ig0KfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJnbXAtYnVnc0Bzd294LmNvbSINCnwgI2Rl ZmluZSBQQUNLQUdFICJnbXAiDQp8ICNkZWZpbmUgVkVSU0lPTiAiNC4yLjIiDQp8ICNkZWZpbmUg V0FOVF9GRlQgMQ0KfCAjZGVmaW5lIEhBVkVfSE9TVF9DUFVfcHBjYmUgMQ0KfCAvKiBlbmQgY29u ZmRlZnMuaC4gICovDQp8ICNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPg0KY29uZmlndXJlOjc2 NjY6IGdjYyAtYyAtTzMgIGNvbmZ0ZXN0LmMgPiY1DQpjb25maWd1cmU6NzY3MjogJD8gPSAwDQpj b25maWd1cmU6NzY3NjogdGVzdCAteiANCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyDQpj b25maWd1cmU6NzY3OTogJD8gPSAwDQpjb25maWd1cmU6NzY4MjogdGVzdCAtcyBjb25mdGVzdC5v DQpjb25maWd1cmU6NzY4NTogJD8gPSAwDQpjb25maWd1cmU6Nzc3MzogY2hlY2tpbmcgYnVpbGQg c3lzdGVtIGNvbXBpbGVyIGdjYw0KY29uZmlndXJlOjc3ODY6IGdjYyBjb25mdGVzdC5jDQpjb25m aWd1cmU6Nzc4OTogJD8gPSAwDQouL2NvbmZpZ3VyZTogbGluZSA3NzkxOiAuL2Eub3V0OiBObyBz dWNoIGZpbGUgb3IgZGlyZWN0b3J5DQouL2NvbmZpZ3VyZTogbGluZSA3NzkxOiAuL2Iub3V0OiBO byBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5DQpjb25maWd1cmU6Nzc5NjogcmVzdWx0OiB5ZXMNCmNv bmZpZ3VyZTo3ODE3OiBjaGVja2luZyBmb3IgYnVpbGQgc3lzdGVtIHByZXByb2Nlc3Nvcg0KY29u ZmlndXJlOjc4Mjg6IGdjYyAtRSBjb25mdGVzdC5jDQojIDEgImNvbmZ0ZXN0LmMiDQojIDEgIjxi dWlsdC1pbj4iDQojIDEgIjxjb21tYW5kIGxpbmU+Ig0KIyAxICJjb25mdGVzdC5jIg0KY29uZmln dXJlOjc4MzE6ICQ/ID0gMA0KY29uZmlndXJlOjc4NDg6IHJlc3VsdDogZ2NjIC1FDQpjb25maWd1 cmU6Nzg1NTogY2hlY2tpbmcgZm9yIGJ1aWxkIHN5c3RlbSBleGVjdXRhYmxlIHN1ZmZpeA0KY29u ZmlndXJlOjc4Njk6IGdjYyBjb25mdGVzdC5jIC1vIGNvbmZ0ZXN0LmV4ZQ0KY29uZmlndXJlOjc4 NzI6ICQ/ID0gMA0KY29uZmlndXJlOjc4ODg6IHJlc3VsdDogLmV4ZQ0KY29uZmlndXJlOjc4OTQ6 IGNoZWNraW5nIHdoZXRoZXIgYnVpbGQgc3lzdGVtIGNvbXBpbGVyIGlzIEFOU0kNCmNvbmZpZ3Vy ZTo3OTA3OiBnY2MgY29uZnRlc3QuYw0KY29uZmlndXJlOjc5MTA6ICQ/ID0gMA0KY29uZmlndXJl Ojc5MTk6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6NzkyOTogY2hlY2tpbmcgZm9yIGJ1aWxkIHN5 c3RlbSBjb21waWxlciBtYXRoIGxpYnJhcnkNCmNvbmZpZ3VyZTo3OTQ4OiBnY2MgY29uZnRlc3Qu YyAtbG0NCmNvbmZpZ3VyZTo3OTUxOiAkPyA9IDANCmNvbmZpZ3VyZTo3OTYwOiByZXN1bHQ6IC1s bQ0KY29uZmlndXJlOjg3NzA6IGNoZWNraW5nIGZvciBlZ3JlcA0KY29uZmlndXJlOjg3ODA6IHJl c3VsdDogZ3JlcCAtRQ0KRGVjaWRlZDoKQUJJPXN0YW5kYXJkCkNDPWdjYwpDRkxBR1M9LU8zCkNQ UEZMQUdTPQpHTVBfTERGTEFHUz0KQ1hYPQpDWFhGTEFHUz0KcGF0aD0gIGdlbmVyaWMKY29uZmln dXJlOjkwNTQ6IGNoZWNraW5nIGZvciBmdW5jdGlvbiBwcm90b3R5cGVzDQpjb25maWd1cmU6OTA1 NzogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZTo5MDc0OiBjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRl ciBmaWxlcw0KY29uZmlndXJlOjkwOTk6IGdjYyAtYyAtTzMgIGNvbmZ0ZXN0LmMgPiY1DQpjb25m aWd1cmU6OTEwNTogJD8gPSAwDQpjb25maWd1cmU6OTEwOTogdGVzdCAteiANCgkJCSB8fCB0ZXN0 ICEgLXMgY29uZnRlc3QuZXJyDQpjb25maWd1cmU6OTExMjogJD8gPSAwDQpjb25maWd1cmU6OTEx NTogdGVzdCAtcyBjb25mdGVzdC5vDQpjb25maWd1cmU6OTExODogJD8gPSAwDQpjb25maWd1cmU6 OTIzMDogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZTo5MjU0OiBjaGVja2luZyBmb3Igc3lzL3R5cGVz LmgNCmNvbmZpZ3VyZTo5MjcwOiBnY2MgLWMgLU8zICBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJl OjkyNzY6ICQ/ID0gMA0KY29uZmlndXJlOjkyODA6IHRlc3QgLXogDQoJCQkgfHwgdGVzdCAhIC1z IGNvbmZ0ZXN0LmVycg0KY29uZmlndXJlOjkyODM6ICQ/ID0gMA0KY29uZmlndXJlOjkyODY6IHRl c3QgLXMgY29uZnRlc3Qubw0KY29uZmlndXJlOjkyODk6ICQ/ID0gMA0KY29uZmlndXJlOjkzMDA6 IHJlc3VsdDogeWVzDQpjb25maWd1cmU6OTI1NDogY2hlY2tpbmcgZm9yIHN5cy9zdGF0LmgNCmNv bmZpZ3VyZTo5MjcwOiBnY2MgLWMgLU8zICBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjkyNzY6 ICQ/ID0gMA0KY29uZmlndXJlOjkyODA6IHRlc3QgLXogDQoJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0 ZXN0LmVycg0KY29uZmlndXJlOjkyODM6ICQ/ID0gMA0KY29uZmlndXJlOjkyODY6IHRlc3QgLXMg Y29uZnRlc3Qubw0KY29uZmlndXJlOjkyODk6ICQ/ID0gMA0KY29uZmlndXJlOjkzMDA6IHJlc3Vs dDogeWVzDQpjb25maWd1cmU6OTI1NDogY2hlY2tpbmcgZm9yIHN0ZGxpYi5oDQpjb25maWd1cmU6 OTI3MDogZ2NjIC1jIC1PMyAgY29uZnRlc3QuYyA+JjUNCmNvbmZpZ3VyZTo5Mjc2OiAkPyA9IDAN CmNvbmZpZ3VyZTo5MjgwOiB0ZXN0IC16IA0KCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIN CmNvbmZpZ3VyZTo5MjgzOiAkPyA9IDANCmNvbmZpZ3VyZTo5Mjg2OiB0ZXN0IC1zIGNvbmZ0ZXN0 Lm8NCmNvbmZpZ3VyZTo5Mjg5OiAkPyA9IDANCmNvbmZpZ3VyZTo5MzAwOiByZXN1bHQ6IHllcw0K Y29uZmlndXJlOjkyNTQ6IGNoZWNraW5nIGZvciBzdHJpbmcuaA0KY29uZmlndXJlOjkyNzA6IGdj YyAtYyAtTzMgIGNvbmZ0ZXN0LmMgPiY1DQpjb25maWd1cmU6OTI3NjogJD8gPSAwDQpjb25maWd1 cmU6OTI4MDogdGVzdCAteiANCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyDQpjb25maWd1 cmU6OTI4MzogJD8gPSAwDQpjb25maWd1cmU6OTI4NjogdGVzdCAtcyBjb25mdGVzdC5vDQpjb25m aWd1cmU6OTI4OTogJD8gPSAwDQpjb25maWd1cmU6OTMwMDogcmVzdWx0OiB5ZXMNCmNvbmZpZ3Vy ZTo5MjU0OiBjaGVja2luZyBmb3IgbWVtb3J5LmgNCmNvbmZpZ3VyZTo5MjcwOiBnY2MgLWMgLU8z ICBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjkyNzY6ICQ/ID0gMA0KY29uZmlndXJlOjkyODA6 IHRlc3QgLXogDQoJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycg0KY29uZmlndXJlOjkyODM6 ICQ/ID0gMA0KY29uZmlndXJlOjkyODY6IHRlc3QgLXMgY29uZnRlc3Qubw0KY29uZmlndXJlOjky ODk6ICQ/ID0gMA0KY29uZmlndXJlOjkzMDA6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6OTI1NDog Y2hlY2tpbmcgZm9yIHN0cmluZ3MuaA0KY29uZmlndXJlOjkyNzA6IGdjYyAtYyAtTzMgIGNvbmZ0 ZXN0LmMgPiY1DQpjb25maWd1cmU6OTI3NjogJD8gPSAwDQpjb25maWd1cmU6OTI4MDogdGVzdCAt eiANCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyDQpjb25maWd1cmU6OTI4MzogJD8gPSAw DQpjb25maWd1cmU6OTI4NjogdGVzdCAtcyBjb25mdGVzdC5vDQpjb25maWd1cmU6OTI4OTogJD8g PSAwDQpjb25maWd1cmU6OTMwMDogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZTo5MjU0OiBjaGVja2lu ZyBmb3IgaW50dHlwZXMuaA0KY29uZmlndXJlOjkyNzA6IGdjYyAtYyAtTzMgIGNvbmZ0ZXN0LmMg PiY1DQpjb25maWd1cmU6OTI3NjogJD8gPSAwDQpjb25maWd1cmU6OTI4MDogdGVzdCAteiANCgkJ CSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyDQpjb25maWd1cmU6OTI4MzogJD8gPSAwDQpjb25m aWd1cmU6OTI4NjogdGVzdCAtcyBjb25mdGVzdC5vDQpjb25maWd1cmU6OTI4OTogJD8gPSAwDQpj b25maWd1cmU6OTMwMDogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZTo5MjU0OiBjaGVja2luZyBmb3Ig c3RkaW50LmgNCmNvbmZpZ3VyZTo5MjcwOiBnY2MgLWMgLU8zICBjb25mdGVzdC5jID4mNQ0KY29u ZmlndXJlOjkyNzY6ICQ/ID0gMA0KY29uZmlndXJlOjkyODA6IHRlc3QgLXogDQoJCQkgfHwgdGVz dCAhIC1zIGNvbmZ0ZXN0LmVycg0KY29uZmlndXJlOjkyODM6ICQ/ID0gMA0KY29uZmlndXJlOjky ODY6IHRlc3QgLXMgY29uZnRlc3Qubw0KY29uZmlndXJlOjkyODk6ICQ/ID0gMA0KY29uZmlndXJl OjkzMDA6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6OTI1NDogY2hlY2tpbmcgZm9yIHVuaXN0ZC5o DQpjb25maWd1cmU6OTI3MDogZ2NjIC1jIC1PMyAgY29uZnRlc3QuYyA+JjUNCmNvbmZpZ3VyZTo5 Mjc2OiAkPyA9IDANCmNvbmZpZ3VyZTo5MjgwOiB0ZXN0IC16IA0KCQkJIHx8IHRlc3QgISAtcyBj b25mdGVzdC5lcnINCmNvbmZpZ3VyZTo5MjgzOiAkPyA9IDANCmNvbmZpZ3VyZTo5Mjg2OiB0ZXN0 IC1zIGNvbmZ0ZXN0Lm8NCmNvbmZpZ3VyZTo5Mjg5OiAkPyA9IDANCmNvbmZpZ3VyZTo5MzAwOiBy ZXN1bHQ6IHllcw0KY29uZmlndXJlOjkzMjU6IGNoZWNraW5nIGZvciBzdHJpbmcuaA0KY29uZmln dXJlOjkzMzA6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6OTQ3NzogY2hlY2tpbmcgZm9yIHBwY2Jl LXBvd2VycGMtbnRvLXFueDYtYXINCmNvbmZpZ3VyZTo5NTA2OiByZXN1bHQ6IG5vDQpjb25maWd1 cmU6OTUxNTogY2hlY2tpbmcgZm9yIGFyDQpjb25maWd1cmU6OTUzMTogZm91bmQgL3Vzci9iaW4v YXINCmNvbmZpZ3VyZTo5NTQyOiByZXN1bHQ6IGFyDQpjb25maWd1cmU6OTU3MzogY2hlY2tpbmcg Zm9yIEJTRC1jb21wYXRpYmxlIG5tDQpjb25maWd1cmU6OTYyMjogcmVzdWx0OiBubQ0KY29uZmln dXJlOjk2Mzk6IGNoZWNraW5nIGZvciBCU0QtY29tcGF0aWJsZSBubQ0KY29uZmlndXJlOjk2ODg6 IHJlc3VsdDogL3Vzci9iaW4vbm0gLUINCmNvbmZpZ3VyZTo5ODk0OiBjaGVja2luZyBmb3IgYSBz ZWQgdGhhdCBkb2VzIG5vdCB0cnVuY2F0ZSBvdXRwdXQNCmNvbmZpZ3VyZTo5OTUwOiByZXN1bHQ6 IC91c3IvYmluL3NlZA0KY29uZmlndXJlOjk5NjQ6IGNoZWNraW5nIGZvciBsZCB1c2VkIGJ5IGdj Yw0KY29uZmlndXJlOjEwMDMxOiByZXN1bHQ6IC91c3IvaTY4Ni1wYy1jeWd3aW4vYmluL2xkLmV4 ZQ0KY29uZmlndXJlOjEwMDQwOiBjaGVja2luZyBpZiB0aGUgbGlua2VyICgvdXNyL2k2ODYtcGMt Y3lnd2luL2Jpbi9sZC5leGUpIGlzIEdOVSBsZA0KY29uZmlndXJlOjEwMDU1OiByZXN1bHQ6IHll cw0KY29uZmlndXJlOjEwMDYwOiBjaGVja2luZyBmb3IgL3Vzci9pNjg2LXBjLWN5Z3dpbi9iaW4v bGQuZXhlIG9wdGlvbiB0byByZWxvYWQgb2JqZWN0IGZpbGVzDQpjb25maWd1cmU6MTAwNjc6IHJl c3VsdDogLXINCmNvbmZpZ3VyZToxMDA4NTogY2hlY2tpbmcgd2hldGhlciBsbiAtcyB3b3Jrcw0K Y29uZmlndXJlOjEwMDg5OiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjEwMDk2OiBjaGVja2luZyBo b3cgdG8gcmVjb2duaXplIGRlcGVuZGVudCBsaWJyYXJpZXMNCmNvbmZpZ3VyZToxMDI4MjogcmVz dWx0OiB1bmtub3duDQpjb25maWd1cmU6MTA3NzY6IGNoZWNraW5nIGRsZmNuLmggdXNhYmlsaXR5 DQpjb25maWd1cmU6MTA3ODg6IGdjYyAtYyAtTzMgIGNvbmZ0ZXN0LmMgPiY1DQpjb25maWd1cmU6 MTA3OTQ6ICQ/ID0gMA0KY29uZmlndXJlOjEwNzk4OiB0ZXN0IC16IA0KCQkJIHx8IHRlc3QgISAt cyBjb25mdGVzdC5lcnINCmNvbmZpZ3VyZToxMDgwMTogJD8gPSAwDQpjb25maWd1cmU6MTA4MDQ6 IHRlc3QgLXMgY29uZnRlc3Qubw0KY29uZmlndXJlOjEwODA3OiAkPyA9IDANCmNvbmZpZ3VyZTox MDgxNzogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToxMDgyMTogY2hlY2tpbmcgZGxmY24uaCBwcmVz ZW5jZQ0KY29uZmlndXJlOjEwODMxOiBnY2MgLUUgIGNvbmZ0ZXN0LmMNCmNvbmZpZ3VyZToxMDgz NzogJD8gPSAwDQpjb25maWd1cmU6MTA4NTc6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MTA4OTI6 IGNoZWNraW5nIGZvciBkbGZjbi5oDQpjb25maWd1cmU6MTA4OTk6IHJlc3VsdDogeWVzDQpjb25m aWd1cmU6MTExNTU6IGNoZWNraW5nIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBjb21tYW5kIGxpbmUg YXJndW1lbnRzDQpjb25maWd1cmU6MTEyNjc6IHJlc3VsdDogODE5Mg0KY29uZmlndXJlOjExMjc5 OiBjaGVja2luZyBjb21tYW5kIHRvIHBhcnNlIC91c3IvYmluL25tIC1CIG91dHB1dCBmcm9tIGdj YyBvYmplY3QNCmNvbmZpZ3VyZToxMTM4NDogZ2NjIC1jIC1PMyAgY29uZnRlc3QuYyA+JjUNCmNv bmZpZ3VyZToxMTM4NzogJD8gPSAwDQpjb25maWd1cmU6MTEzOTE6IC91c3IvYmluL25tIC1CIGNv bmZ0ZXN0Lm8gXHwgc2VkIC1uIC1lICdzL14uKlsgCV1cKFtBQkNER0lSU1RXXVtBQkNER0lSU1RX XSpcKVsgCV1bIAldKlwoW19BLVphLXpdW19BLVphLXowLTldKlwpJC9cMSBcMiBcMi9wJyBcPiBj b25mdGVzdC5ubQ0KY29uZmlndXJlOjExMzk0OiAkPyA9IDANCmNhbm5vdCBmaW5kIG5tX3Rlc3Rf dmFyIGluIGNvbmZ0ZXN0Lm5tDQpjb25maWd1cmU6MTEzODQ6IGdjYyAtYyAtTzMgIGNvbmZ0ZXN0 LmMgPiY1DQpjb25maWd1cmU6MTEzODc6ICQ/ID0gMA0KY29uZmlndXJlOjExMzkxOiAvdXNyL2Jp bi9ubSAtQiBjb25mdGVzdC5vIFx8IHNlZCAtbiAtZSAncy9eLipbIAldXChbQUJDREdJUlNUV11b QUJDREdJUlNUV10qXClbIAldWyAJXSpfXChbX0EtWmEtel1bX0EtWmEtejAtOV0qXCkkL1wxIF9c MiBcMi9wJyBcPiBjb25mdGVzdC5ubQ0KY29uZmlndXJlOjExMzk0OiAkPyA9IDANCmNhbm5vdCBm aW5kIG5tX3Rlc3RfdmFyIGluIGNvbmZ0ZXN0Lm5tDQpjb25maWd1cmU6MTE0ODQ6IHJlc3VsdDog ZmFpbGVkDQpjb25maWd1cmU6MTE0OTE6IGNoZWNraW5nIGZvciBvYmpkaXINCmNvbmZpZ3VyZTox MTUwNjogcmVzdWx0OiAubGlicw0KY29uZmlndXJlOjExNTU4OiBjaGVja2luZyBmb3IgcHBjYmUt cG93ZXJwYy1udG8tcW54Ni1hcg0KY29uZmlndXJlOjExNTg0OiByZXN1bHQ6IGFyDQpjb25maWd1 cmU6MTE2Mzg6IGNoZWNraW5nIGZvciBwcGNiZS1wb3dlcnBjLW50by1xbng2LXJhbmxpYg0KY29u ZmlndXJlOjExNjY3OiByZXN1bHQ6IG5vDQpjb25maWd1cmU6MTE2NzY6IGNoZWNraW5nIGZvciBy YW5saWINCmNvbmZpZ3VyZToxMTY5MjogZm91bmQgL3Vzci9iaW4vcmFubGliDQpjb25maWd1cmU6 MTE3MDM6IHJlc3VsdDogcmFubGliDQpjb25maWd1cmU6MTE3MTg6IGNoZWNraW5nIGZvciBwcGNi ZS1wb3dlcnBjLW50by1xbng2LXN0cmlwDQpjb25maWd1cmU6MTE3NDQ6IHJlc3VsdDogc3RyaXAN CmNvbmZpZ3VyZToxMjA1NTogY2hlY2tpbmcgaWYgZ2NjIHN1cHBvcnRzIC1mbm8tcnR0aSAtZm5v LWV4Y2VwdGlvbnMNCmNvbmZpZ3VyZToxMjA3MzogZ2NjIC1jIC1PMyAgLWZuby1ydHRpIC1mbm8t ZXhjZXB0aW9ucyBjb25mdGVzdC5jID4mNQ0KY2MxOiB3YXJuaW5nOiBjb21tYW5kIGxpbmUgb3B0 aW9uICItZm5vLXJ0dGkiIGlzIHZhbGlkIGZvciBDKysvT2JqQysrIGJ1dCBub3QgZm9yIEMNCmNv bmZpZ3VyZToxMjA3NzogJD8gPSAwDQpjb25maWd1cmU6MTIwOTA6IHJlc3VsdDogbm8NCmNvbmZp Z3VyZToxMjEwNTogY2hlY2tpbmcgZm9yIGdjYyBvcHRpb24gdG8gcHJvZHVjZSBQSUMNCmNvbmZp Z3VyZToxMjMzNzogcmVzdWx0OiAtZlBJQw0KY29uZmlndXJlOjEyMzQ1OiBjaGVja2luZyBpZiBn Y2MgUElDIGZsYWcgLWZQSUMgd29ya3MNCmNvbmZpZ3VyZToxMjM2MzogZ2NjIC1jIC1PMyAgLWZQ SUMgLURQSUMgY29uZnRlc3QuYyA+JjUNCmNvbmZ0ZXN0LmM6MTogd2FybmluZzogLWZQSUMgaWdu b3JlZCBmb3IgdGFyZ2V0IChhbGwgY29kZSBpcyBwb3NpdGlvbiBpbmRlcGVuZGVudCkNCmNvbmZp Z3VyZToxMjM2NzogJD8gPSAwDQpjb25maWd1cmU6MTIzODA6IHJlc3VsdDogbm8NCmNvbmZpZ3Vy ZToxMjQwODogY2hlY2tpbmcgaWYgZ2NjIHN0YXRpYyBmbGFnIC1zdGF0aWMgd29ya3MNCmNvbmZp Z3VyZToxMjQzNjogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToxMjQ0NjogY2hlY2tpbmcgaWYgZ2Nj IHN1cHBvcnRzIC1jIC1vIGZpbGUubw0KY29uZmlndXJlOjEyNDY3OiBnY2MgLWMgLU8zICAtbyBv dXQvY29uZnRlc3QyLm8gY29uZnRlc3QuYyA+JjUNCmNvbmZpZ3VyZToxMjQ3MTogJD8gPSAwDQpj b25maWd1cmU6MTI0OTM6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MTI1MTk6IGNoZWNraW5nIHdo ZXRoZXIgdGhlIGdjYyBsaW5rZXIgKC91c3IvaTY4Ni1wYy1jeWd3aW4vYmluL2xkLmV4ZSkgc3Vw cG9ydHMgc2hhcmVkIGxpYnJhcmllcw0KY29uZmlndXJlOjEzNTAzOiByZXN1bHQ6IHllcw0KY29u ZmlndXJlOjEzNTI0OiBjaGVja2luZyB3aGV0aGVyIC1sYyBzaG91bGQgYmUgZXhwbGljaXRseSBs aW5rZWQgaW4NCmNvbmZpZ3VyZToxMzUyOTogZ2NjIC1jIC1PMyAgY29uZnRlc3QuYyA+JjUNCmNv bmZpZ3VyZToxMzUzMjogJD8gPSAwDQpjb25maWd1cmU6MTM1NDc6IGdjYyAtc2hhcmVkIGNvbmZ0 ZXN0Lm8gIC12IC1XbCwtc29uYW1lIC1XbCxjb25mdGVzdCAtbyBjb25mdGVzdCAyXD5cJjEgXHwg Z3JlcCAgLWxjICBcPi9kZXYvbnVsbCAyXD5cJjENCmNvbmZpZ3VyZToxMzU1MDogJD8gPSAxDQpj b25maWd1cmU6MTM1NjI6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MTM1NzA6IGNoZWNraW5nIGR5 bmFtaWMgbGlua2VyIGNoYXJhY3RlcmlzdGljcw0KY29uZmlndXJlOjE0MTcyOiByZXN1bHQ6IG50 by1xbng2IGxkLnNvDQpjb25maWd1cmU6MTQxODE6IGNoZWNraW5nIGhvdyB0byBoYXJkY29kZSBs aWJyYXJ5IHBhdGhzIGludG8gcHJvZ3JhbXMNCmNvbmZpZ3VyZToxNDIwNjogcmVzdWx0OiBpbW1l ZGlhdGUNCmNvbmZpZ3VyZToxNDIyMDogY2hlY2tpbmcgd2hldGhlciBzdHJpcHBpbmcgbGlicmFy aWVzIGlzIHBvc3NpYmxlDQpjb25maWd1cmU6MTQyMjU6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6 MTUwNjA6IGNoZWNraW5nIGlmIGxpYnRvb2wgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcw0KY29u ZmlndXJlOjE1MDYyOiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjE1MDY1OiBjaGVja2luZyB3aGV0 aGVyIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMNCmNvbmZpZ3VyZToxNTA4NjogcmVzdWx0OiB5 ZXMNCmNvbmZpZ3VyZToxNTA4OTogY2hlY2tpbmcgd2hldGhlciB0byBidWlsZCBzdGF0aWMgbGli cmFyaWVzDQpjb25maWd1cmU6MTUwOTM6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MTUxODY6IGNy ZWF0aW5nIGxpYnRvb2wNCmNvbmZpZ3VyZToyNDQyMDogY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFk ZXIgZmlsZXMNCmNvbmZpZ3VyZToyNDU3NjogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToyNDU4Njog Y2hlY2tpbmcgd2hldGhlciB0aW1lLmggYW5kIHN5cy90aW1lLmggbWF5IGJvdGggYmUgaW5jbHVk ZWQNCmNvbmZpZ3VyZToyNDYxMTogZ2NjIC1jIC1PMyAgY29uZnRlc3QuYyA+JjUNCmNvbmZpZ3Vy ZToyNDYxNzogJD8gPSAwDQpjb25maWd1cmU6MjQ2MjE6IHRlc3QgLXogDQoJCQkgfHwgdGVzdCAh IC1zIGNvbmZ0ZXN0LmVycg0KY29uZmlndXJlOjI0NjI0OiAkPyA9IDANCmNvbmZpZ3VyZToyNDYy NzogdGVzdCAtcyBjb25mdGVzdC5vDQpjb25maWd1cmU6MjQ2MzA6ICQ/ID0gMA0KY29uZmlndXJl OjI0NjQxOiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjI0NzA3OiBjaGVja2luZyBmY250bC5oIHVz YWJpbGl0eQ0KY29uZmlndXJlOjI0NzE5OiBnY2MgLWMgLU8zICBjb25mdGVzdC5jID4mNQ0KY29u ZmlndXJlOjI0NzI1OiAkPyA9IDANCmNvbmZpZ3VyZToyNDcyOTogdGVzdCAteiANCgkJCSB8fCB0 ZXN0ICEgLXMgY29uZnRlc3QuZXJyDQpjb25maWd1cmU6MjQ3MzI6ICQ/ID0gMA0KY29uZmlndXJl OjI0NzM1OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8NCmNvbmZpZ3VyZToyNDczODogJD8gPSAwDQpjb25m aWd1cmU6MjQ3NDg6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MjQ3NTI6IGNoZWNraW5nIGZjbnRs LmggcHJlc2VuY2UNCmNvbmZpZ3VyZToyNDc2MjogZ2NjIC1FICBjb25mdGVzdC5jDQpjb25maWd1 cmU6MjQ3Njg6ICQ/ID0gMA0KY29uZmlndXJlOjI0Nzg4OiByZXN1bHQ6IHllcw0KY29uZmlndXJl OjI0ODIzOiBjaGVja2luZyBmb3IgZmNudGwuaA0KY29uZmlndXJlOjI0ODMwOiByZXN1bHQ6IHll cw0KY29uZmlndXJlOjI0NzA3OiBjaGVja2luZyBmbG9hdC5oIHVzYWJpbGl0eQ0KY29uZmlndXJl OjI0NzE5OiBnY2MgLWMgLU8zICBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjI0NzI1OiAkPyA9 IDANCmNvbmZpZ3VyZToyNDcyOTogdGVzdCAteiANCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3Qu ZXJyDQpjb25maWd1cmU6MjQ3MzI6ICQ/ID0gMA0KY29uZmlndXJlOjI0NzM1OiB0ZXN0IC1zIGNv bmZ0ZXN0Lm8NCmNvbmZpZ3VyZToyNDczODogJD8gPSAwDQpjb25maWd1cmU6MjQ3NDg6IHJlc3Vs dDogeWVzDQpjb25maWd1cmU6MjQ3NTI6IGNoZWNraW5nIGZsb2F0LmggcHJlc2VuY2UNCmNvbmZp Z3VyZToyNDc2MjogZ2NjIC1FICBjb25mdGVzdC5jDQpjb25maWd1cmU6MjQ3Njg6ICQ/ID0gMA0K Y29uZmlndXJlOjI0Nzg4OiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjI0ODIzOiBjaGVja2luZyBm b3IgZmxvYXQuaA0KY29uZmlndXJlOjI0ODMwOiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjI0NzA3 OiBjaGVja2luZyBpbnZlbnQuaCB1c2FiaWxpdHkNCmNvbmZpZ3VyZToyNDcxOTogZ2NjIC1jIC1P MyAgY29uZnRlc3QuYyA+JjUNCmNvbmZ0ZXN0LmM6NjU6MjA6IGludmVudC5oOiBObyBzdWNoIGZp bGUgb3IgZGlyZWN0b3J5DQ0KY29uZmlndXJlOjI0NzI1OiAkPyA9IDENCmNvbmZpZ3VyZTogZmFp bGVkIHByb2dyYW0gd2FzOg0KfCAvKiBjb25mZGVmcy5oLiAgKi8NCnwgDQp8ICNkZWZpbmUgUEFD S0FHRV9OQU1FICJHTlUgTVAiDQp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJnbXAiDQp8ICNk ZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjIuMiINCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAi R05VIE1QIDQuMi4yIg0KfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJnbXAtYnVnc0Bzd294 LmNvbSINCnwgI2RlZmluZSBQQUNLQUdFICJnbXAiDQp8ICNkZWZpbmUgVkVSU0lPTiAiNC4yLjIi DQp8ICNkZWZpbmUgV0FOVF9GRlQgMQ0KfCAjZGVmaW5lIEhBVkVfSE9TVF9DUFVfcHBjYmUgMQ0K fCAjZGVmaW5lIFBST1RPVFlQRVMgMQ0KfCAjZGVmaW5lIF9fUFJPVE9UWVBFUyAxDQp8ICNkZWZp bmUgU1REQ19IRUFERVJTIDENCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDENCnwgI2RlZmlu ZSBIQVZFX1NZU19TVEFUX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQ0KfCAjZGVmaW5l IEhBVkVfU1RSSU5HX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQ0KfCAjZGVmaW5lIEhB VkVfU1RSSU5HU19IIDENCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQ0KfCAjZGVmaW5lIEhB VkVfU1RESU5UX0ggMQ0KfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQ0KfCAjZGVmaW5lIEhBVkVf U1RSSU5HX0ggMQ0KfCAjZGVmaW5lIEhBVkVfRExGQ05fSCAxDQp8ICNkZWZpbmUgU1REQ19IRUFE RVJTIDENCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQ0KfCAjZGVmaW5lIEhBVkVfRkNO VExfSCAxDQp8ICNkZWZpbmUgSEFWRV9GTE9BVF9IIDENCnwgLyogZW5kIGNvbmZkZWZzLmguICAq Lw0KfCAjaW5jbHVkZSA8c3RkaW8uaD4NCnwgI2lmIEhBVkVfU1lTX1RZUEVTX0gNCnwgIyBpbmNs dWRlIDxzeXMvdHlwZXMuaD4NCnwgI2VuZGlmDQp8ICNpZiBIQVZFX1NZU19TVEFUX0gNCnwgIyBp bmNsdWRlIDxzeXMvc3RhdC5oPg0KfCAjZW5kaWYNCnwgI2lmIFNURENfSEVBREVSUw0KfCAjIGlu Y2x1ZGUgPHN0ZGxpYi5oPg0KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPg0KfCAjZWxzZQ0KfCAjIGlm IEhBVkVfU1RETElCX0gNCnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+DQp8ICMgZW5kaWYNCnwgI2Vu ZGlmDQp8ICNpZiBIQVZFX1NUUklOR19IDQp8ICMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZFX01F TU9SWV9IDQp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPg0KfCAjIGVuZGlmDQp8ICMgaW5jbHVkZSA8 c3RyaW5nLmg+DQp8ICNlbmRpZg0KfCAjaWYgSEFWRV9TVFJJTkdTX0gNCnwgIyBpbmNsdWRlIDxz dHJpbmdzLmg+DQp8ICNlbmRpZg0KfCAjaWYgSEFWRV9JTlRUWVBFU19IDQp8ICMgaW5jbHVkZSA8 aW50dHlwZXMuaD4NCnwgI2Vsc2UNCnwgIyBpZiBIQVZFX1NURElOVF9IDQp8ICMgIGluY2x1ZGUg PHN0ZGludC5oPg0KfCAjIGVuZGlmDQp8ICNlbmRpZg0KfCAjaWYgSEFWRV9VTklTVERfSA0KfCAj IGluY2x1ZGUgPHVuaXN0ZC5oPg0KfCAjZW5kaWYNCnwgI2luY2x1ZGUgPGludmVudC5oPg0KY29u ZmlndXJlOjI0NzQ4OiByZXN1bHQ6IG5vDQpjb25maWd1cmU6MjQ3NTI6IGNoZWNraW5nIGludmVu dC5oIHByZXNlbmNlDQpjb25maWd1cmU6MjQ3NjI6IGdjYyAtRSAgY29uZnRlc3QuYw0KY29uZnRl c3QuYzozMToyMDogaW52ZW50Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkNDQpjb25maWd1 cmU6MjQ3Njg6ICQ/ID0gMQ0KY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6DQp8IC8qIGNv bmZkZWZzLmguICAqLw0KfCANCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBNUCINCnwgI2Rl ZmluZSBQQUNLQUdFX1RBUk5BTUUgImdtcCINCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQu Mi4yIg0KfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgTVAgNC4yLjIiDQp8ICNkZWZpbmUg UEFDS0FHRV9CVUdSRVBPUlQgImdtcC1idWdzQHN3b3guY29tIg0KfCAjZGVmaW5lIFBBQ0tBR0Ug ImdtcCINCnwgI2RlZmluZSBWRVJTSU9OICI0LjIuMiINCnwgI2RlZmluZSBXQU5UX0ZGVCAxDQp8 ICNkZWZpbmUgSEFWRV9IT1NUX0NQVV9wcGNiZSAxDQp8ICNkZWZpbmUgUFJPVE9UWVBFUyAxDQp8 ICNkZWZpbmUgX19QUk9UT1RZUEVTIDENCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVm aW5lIEhBVkVfU1lTX1RZUEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxDQp8ICNk ZWZpbmUgSEFWRV9TVERMSUJfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZp bmUgSEFWRV9NRU1PUllfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQ0KfCAjZGVmaW5l IEhBVkVfSU5UVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxDQp8ICNkZWZpbmUg SEFWRV9VTklTVERfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFW RV9ETEZDTl9IIDENCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIFRJTUVfV0lU SF9TWVNfVElNRSAxDQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDENCnwgI2RlZmluZSBIQVZFX0ZM T0FUX0ggMQ0KfCAvKiBlbmQgY29uZmRlZnMuaC4gICovDQp8ICNpbmNsdWRlIDxpbnZlbnQuaD4N CmNvbmZpZ3VyZToyNDc4ODogcmVzdWx0OiBubw0KY29uZmlndXJlOjI0ODIzOiBjaGVja2luZyBm b3IgaW52ZW50LmgNCmNvbmZpZ3VyZToyNDgzMDogcmVzdWx0OiBubw0KY29uZmlndXJlOjI0NzA3 OiBjaGVja2luZyBsYW5naW5mby5oIHVzYWJpbGl0eQ0KY29uZmlndXJlOjI0NzE5OiBnY2MgLWMg LU8zICBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjI0NzI1OiAkPyA9IDANCmNvbmZpZ3VyZToy NDcyOTogdGVzdCAteiANCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyDQpjb25maWd1cmU6 MjQ3MzI6ICQ/ID0gMA0KY29uZmlndXJlOjI0NzM1OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8NCmNvbmZp Z3VyZToyNDczODogJD8gPSAwDQpjb25maWd1cmU6MjQ3NDg6IHJlc3VsdDogeWVzDQpjb25maWd1 cmU6MjQ3NTI6IGNoZWNraW5nIGxhbmdpbmZvLmggcHJlc2VuY2UNCmNvbmZpZ3VyZToyNDc2Mjog Z2NjIC1FICBjb25mdGVzdC5jDQpjb25maWd1cmU6MjQ3Njg6ICQ/ID0gMA0KY29uZmlndXJlOjI0 Nzg4OiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjI0ODIzOiBjaGVja2luZyBmb3IgbGFuZ2luZm8u aA0KY29uZmlndXJlOjI0ODMwOiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjI0NzA3OiBjaGVja2lu ZyBsb2NhbGUuaCB1c2FiaWxpdHkNCmNvbmZpZ3VyZToyNDcxOTogZ2NjIC1jIC1PMyAgY29uZnRl c3QuYyA+JjUNCmNvbmZpZ3VyZToyNDcyNTogJD8gPSAwDQpjb25maWd1cmU6MjQ3Mjk6IHRlc3Qg LXogDQoJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycg0KY29uZmlndXJlOjI0NzMyOiAkPyA9 IDANCmNvbmZpZ3VyZToyNDczNTogdGVzdCAtcyBjb25mdGVzdC5vDQpjb25maWd1cmU6MjQ3Mzg6 ICQ/ID0gMA0KY29uZmlndXJlOjI0NzQ4OiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjI0NzUyOiBj aGVja2luZyBsb2NhbGUuaCBwcmVzZW5jZQ0KY29uZmlndXJlOjI0NzYyOiBnY2MgLUUgIGNvbmZ0 ZXN0LmMNCmNvbmZpZ3VyZToyNDc2ODogJD8gPSAwDQpjb25maWd1cmU6MjQ3ODg6IHJlc3VsdDog eWVzDQpjb25maWd1cmU6MjQ4MjM6IGNoZWNraW5nIGZvciBsb2NhbGUuaA0KY29uZmlndXJlOjI0 ODMwOiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjI0NzA3OiBjaGVja2luZyBubF90eXBlcy5oIHVz YWJpbGl0eQ0KY29uZmlndXJlOjI0NzE5OiBnY2MgLWMgLU8zICBjb25mdGVzdC5jID4mNQ0KY29u ZnRlc3QuYzo2NzoyMjogbmxfdHlwZXMuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQ0NCmNv bmZpZ3VyZToyNDcyNTogJD8gPSAxDQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoNCnwg LyogY29uZmRlZnMuaC4gICovDQp8IA0KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIE1QIg0K fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ21wIg0KfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lP TiAiNC4yLjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBNUCA0LjIuMiINCnwgI2Rl ZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiZ21wLWJ1Z3NAc3dveC5jb20iDQp8ICNkZWZpbmUgUEFD S0FHRSAiZ21wIg0KfCAjZGVmaW5lIFZFUlNJT04gIjQuMi4yIg0KfCAjZGVmaW5lIFdBTlRfRkZU IDENCnwgI2RlZmluZSBIQVZFX0hPU1RfQ1BVX3BwY2JlIDENCnwgI2RlZmluZSBQUk9UT1RZUEVT IDENCnwgI2RlZmluZSBfX1BST1RPVFlQRVMgMQ0KfCAjZGVmaW5lIFNURENfSEVBREVSUyAxDQp8 ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEN CnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDENCnwg I2RlZmluZSBIQVZFX01FTU9SWV9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxDQp8ICNk ZWZpbmUgSEFWRV9JTlRUWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDENCnwgI2Rl ZmluZSBIQVZFX1VOSVNURF9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDENCnwgI2RlZmlu ZSBIQVZFX0RMRkNOX0ggMQ0KfCAjZGVmaW5lIFNURENfSEVBREVSUyAxDQp8ICNkZWZpbmUgVElN RV9XSVRIX1NZU19USU1FIDENCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQ0KfCAjZGVmaW5lIEhB VkVfRkxPQVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19IIDENCnwgI2RlZmluZSBIQVZF X0xPQ0FMRV9IIDENCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLw0KfCAjaW5jbHVkZSA8c3RkaW8u aD4NCnwgI2lmIEhBVkVfU1lTX1RZUEVTX0gNCnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4NCnwg I2VuZGlmDQp8ICNpZiBIQVZFX1NZU19TVEFUX0gNCnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPg0K fCAjZW5kaWYNCnwgI2lmIFNURENfSEVBREVSUw0KfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPg0KfCAj IGluY2x1ZGUgPHN0ZGRlZi5oPg0KfCAjZWxzZQ0KfCAjIGlmIEhBVkVfU1RETElCX0gNCnwgIyAg aW5jbHVkZSA8c3RkbGliLmg+DQp8ICMgZW5kaWYNCnwgI2VuZGlmDQp8ICNpZiBIQVZFX1NUUklO R19IDQp8ICMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZFX01FTU9SWV9IDQp8ICMgIGluY2x1ZGUg PG1lbW9yeS5oPg0KfCAjIGVuZGlmDQp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+DQp8ICNlbmRpZg0K fCAjaWYgSEFWRV9TVFJJTkdTX0gNCnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+DQp8ICNlbmRpZg0K fCAjaWYgSEFWRV9JTlRUWVBFU19IDQp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4NCnwgI2Vsc2UN CnwgIyBpZiBIQVZFX1NURElOVF9IDQp8ICMgIGluY2x1ZGUgPHN0ZGludC5oPg0KfCAjIGVuZGlm DQp8ICNlbmRpZg0KfCAjaWYgSEFWRV9VTklTVERfSA0KfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPg0K fCAjZW5kaWYNCnwgI2luY2x1ZGUgPG5sX3R5cGVzLmg+DQpjb25maWd1cmU6MjQ3NDg6IHJlc3Vs dDogbm8NCmNvbmZpZ3VyZToyNDc1MjogY2hlY2tpbmcgbmxfdHlwZXMuaCBwcmVzZW5jZQ0KY29u ZmlndXJlOjI0NzYyOiBnY2MgLUUgIGNvbmZ0ZXN0LmMNCmNvbmZ0ZXN0LmM6MzM6MjI6IG5sX3R5 cGVzLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkNDQpjb25maWd1cmU6MjQ3Njg6ICQ/ID0g MQ0KY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6DQp8IC8qIGNvbmZkZWZzLmguICAqLw0K fCANCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBNUCINCnwgI2RlZmluZSBQQUNLQUdFX1RB Uk5BTUUgImdtcCINCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuMi4yIg0KfCAjZGVmaW5l IFBBQ0tBR0VfU1RSSU5HICJHTlUgTVAgNC4yLjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP UlQgImdtcC1idWdzQHN3b3guY29tIg0KfCAjZGVmaW5lIFBBQ0tBR0UgImdtcCINCnwgI2RlZmlu ZSBWRVJTSU9OICI0LjIuMiINCnwgI2RlZmluZSBXQU5UX0ZGVCAxDQp8ICNkZWZpbmUgSEFWRV9I T1NUX0NQVV9wcGNiZSAxDQp8ICNkZWZpbmUgUFJPVE9UWVBFUyAxDQp8ICNkZWZpbmUgX19QUk9U T1RZUEVTIDENCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RZ UEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERM SUJfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9NRU1PUllf SCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNf SCAxDQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxDQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAx DQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9ETEZDTl9IIDENCnwg I2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxDQp8 ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDENCnwgI2RlZmluZSBIQVZFX0ZMT0FUX0ggMQ0KfCAjZGVm aW5lIEhBVkVfTEFOR0lORk9fSCAxDQp8ICNkZWZpbmUgSEFWRV9MT0NBTEVfSCAxDQp8IC8qIGVu ZCBjb25mZGVmcy5oLiAgKi8NCnwgI2luY2x1ZGUgPG5sX3R5cGVzLmg+DQpjb25maWd1cmU6MjQ3 ODg6IHJlc3VsdDogbm8NCmNvbmZpZ3VyZToyNDgyMzogY2hlY2tpbmcgZm9yIG5sX3R5cGVzLmgN CmNvbmZpZ3VyZToyNDgzMDogcmVzdWx0OiBubw0KY29uZmlndXJlOjI0NzA3OiBjaGVja2luZyBz eXMvYXR0cmlidXRlcy5oIHVzYWJpbGl0eQ0KY29uZmlndXJlOjI0NzE5OiBnY2MgLWMgLU8zICBj b25mdGVzdC5jID4mNQ0KY29uZnRlc3QuYzo2NzoyODogc3lzL2F0dHJpYnV0ZXMuaDogTm8gc3Vj aCBmaWxlIG9yIGRpcmVjdG9yeQ0NCmNvbmZpZ3VyZToyNDcyNTogJD8gPSAxDQpjb25maWd1cmU6 IGZhaWxlZCBwcm9ncmFtIHdhczoNCnwgLyogY29uZmRlZnMuaC4gICovDQp8IA0KfCAjZGVmaW5l IFBBQ0tBR0VfTkFNRSAiR05VIE1QIg0KfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ21wIg0K fCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC4yLjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgIkdOVSBNUCA0LjIuMiINCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiZ21wLWJ1Z3NA c3dveC5jb20iDQp8ICNkZWZpbmUgUEFDS0FHRSAiZ21wIg0KfCAjZGVmaW5lIFZFUlNJT04gIjQu Mi4yIg0KfCAjZGVmaW5lIFdBTlRfRkZUIDENCnwgI2RlZmluZSBIQVZFX0hPU1RfQ1BVX3BwY2Jl IDENCnwgI2RlZmluZSBQUk9UT1RZUEVTIDENCnwgI2RlZmluZSBfX1BST1RPVFlQRVMgMQ0KfCAj ZGVmaW5lIFNURENfSEVBREVSUyAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxDQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDENCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDENCnwgI2Rl ZmluZSBIQVZFX1NUUklOR19IIDENCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDENCnwgI2RlZmlu ZSBIQVZFX1NUUklOR1NfSCAxDQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDENCnwgI2RlZmlu ZSBIQVZFX1NURElOVF9IIDENCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDENCnwgI2RlZmluZSBI QVZFX1NUUklOR19IIDENCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQ0KfCAjZGVmaW5lIFNURENf SEVBREVSUyAxDQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDENCnwgI2RlZmluZSBIQVZF X0ZDTlRMX0ggMQ0KfCAjZGVmaW5lIEhBVkVfRkxPQVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9MQU5H SU5GT19IIDENCnwgI2RlZmluZSBIQVZFX0xPQ0FMRV9IIDENCnwgLyogZW5kIGNvbmZkZWZzLmgu ICAqLw0KfCAjaW5jbHVkZSA8c3RkaW8uaD4NCnwgI2lmIEhBVkVfU1lTX1RZUEVTX0gNCnwgIyBp bmNsdWRlIDxzeXMvdHlwZXMuaD4NCnwgI2VuZGlmDQp8ICNpZiBIQVZFX1NZU19TVEFUX0gNCnwg IyBpbmNsdWRlIDxzeXMvc3RhdC5oPg0KfCAjZW5kaWYNCnwgI2lmIFNURENfSEVBREVSUw0KfCAj IGluY2x1ZGUgPHN0ZGxpYi5oPg0KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPg0KfCAjZWxzZQ0KfCAj IGlmIEhBVkVfU1RETElCX0gNCnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+DQp8ICMgZW5kaWYNCnwg I2VuZGlmDQp8ICNpZiBIQVZFX1NUUklOR19IDQp8ICMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZF X01FTU9SWV9IDQp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPg0KfCAjIGVuZGlmDQp8ICMgaW5jbHVk ZSA8c3RyaW5nLmg+DQp8ICNlbmRpZg0KfCAjaWYgSEFWRV9TVFJJTkdTX0gNCnwgIyBpbmNsdWRl IDxzdHJpbmdzLmg+DQp8ICNlbmRpZg0KfCAjaWYgSEFWRV9JTlRUWVBFU19IDQp8ICMgaW5jbHVk ZSA8aW50dHlwZXMuaD4NCnwgI2Vsc2UNCnwgIyBpZiBIQVZFX1NURElOVF9IDQp8ICMgIGluY2x1 ZGUgPHN0ZGludC5oPg0KfCAjIGVuZGlmDQp8ICNlbmRpZg0KfCAjaWYgSEFWRV9VTklTVERfSA0K fCAjIGluY2x1ZGUgPHVuaXN0ZC5oPg0KfCAjZW5kaWYNCnwgI2luY2x1ZGUgPHN5cy9hdHRyaWJ1 dGVzLmg+DQpjb25maWd1cmU6MjQ3NDg6IHJlc3VsdDogbm8NCmNvbmZpZ3VyZToyNDc1MjogY2hl Y2tpbmcgc3lzL2F0dHJpYnV0ZXMuaCBwcmVzZW5jZQ0KY29uZmlndXJlOjI0NzYyOiBnY2MgLUUg IGNvbmZ0ZXN0LmMNCmNvbmZ0ZXN0LmM6MzM6Mjg6IHN5cy9hdHRyaWJ1dGVzLmg6IE5vIHN1Y2gg ZmlsZSBvciBkaXJlY3RvcnkNDQpjb25maWd1cmU6MjQ3Njg6ICQ/ID0gMQ0KY29uZmlndXJlOiBm YWlsZWQgcHJvZ3JhbSB3YXM6DQp8IC8qIGNvbmZkZWZzLmguICAqLw0KfCANCnwgI2RlZmluZSBQ QUNLQUdFX05BTUUgIkdOVSBNUCINCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImdtcCINCnwg I2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuMi4yIg0KfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5H ICJHTlUgTVAgNC4yLjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImdtcC1idWdzQHN3 b3guY29tIg0KfCAjZGVmaW5lIFBBQ0tBR0UgImdtcCINCnwgI2RlZmluZSBWRVJTSU9OICI0LjIu MiINCnwgI2RlZmluZSBXQU5UX0ZGVCAxDQp8ICNkZWZpbmUgSEFWRV9IT1NUX0NQVV9wcGNiZSAx DQp8ICNkZWZpbmUgUFJPVE9UWVBFUyAxDQp8ICNkZWZpbmUgX19QUk9UT1RZUEVTIDENCnwgI2Rl ZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQ0KfCAjZGVm aW5lIEhBVkVfU1lTX1NUQVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxDQp8ICNkZWZp bmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxDQp8ICNkZWZpbmUg SEFWRV9TVFJJTkdTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxDQp8ICNkZWZpbmUg SEFWRV9TVERJTlRfSCAxDQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxDQp8ICNkZWZpbmUgSEFW RV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9ETEZDTl9IIDENCnwgI2RlZmluZSBTVERDX0hF QURFUlMgMQ0KfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxDQp8ICNkZWZpbmUgSEFWRV9G Q05UTF9IIDENCnwgI2RlZmluZSBIQVZFX0ZMT0FUX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTEFOR0lO Rk9fSCAxDQp8ICNkZWZpbmUgSEFWRV9MT0NBTEVfSCAxDQp8IC8qIGVuZCBjb25mZGVmcy5oLiAg Ki8NCnwgI2luY2x1ZGUgPHN5cy9hdHRyaWJ1dGVzLmg+DQpjb25maWd1cmU6MjQ3ODg6IHJlc3Vs dDogbm8NCmNvbmZpZ3VyZToyNDgyMzogY2hlY2tpbmcgZm9yIHN5cy9hdHRyaWJ1dGVzLmgNCmNv bmZpZ3VyZToyNDgzMDogcmVzdWx0OiBubw0KY29uZmlndXJlOjI0NzA3OiBjaGVja2luZyBzeXMv aW9ncmFwaC5oIHVzYWJpbGl0eQ0KY29uZmlndXJlOjI0NzE5OiBnY2MgLWMgLU8zICBjb25mdGVz dC5jID4mNQ0KY29uZnRlc3QuYzo2NzoyNTogc3lzL2lvZ3JhcGguaDogTm8gc3VjaCBmaWxlIG9y IGRpcmVjdG9yeQ0NCmNvbmZpZ3VyZToyNDcyNTogJD8gPSAxDQpjb25maWd1cmU6IGZhaWxlZCBw cm9ncmFtIHdhczoNCnwgLyogY29uZmRlZnMuaC4gICovDQp8IA0KfCAjZGVmaW5lIFBBQ0tBR0Vf TkFNRSAiR05VIE1QIg0KfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ21wIg0KfCAjZGVmaW5l IFBBQ0tBR0VfVkVSU0lPTiAiNC4yLjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBN UCA0LjIuMiINCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiZ21wLWJ1Z3NAc3dveC5jb20i DQp8ICNkZWZpbmUgUEFDS0FHRSAiZ21wIg0KfCAjZGVmaW5lIFZFUlNJT04gIjQuMi4yIg0KfCAj ZGVmaW5lIFdBTlRfRkZUIDENCnwgI2RlZmluZSBIQVZFX0hPU1RfQ1BVX3BwY2JlIDENCnwgI2Rl ZmluZSBQUk9UT1RZUEVTIDENCnwgI2RlZmluZSBfX1BST1RPVFlQRVMgMQ0KfCAjZGVmaW5lIFNU RENfSEVBREVSUyAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFW RV9TWVNfU1RBVF9IIDENCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDENCnwgI2RlZmluZSBIQVZF X1NUUklOR19IIDENCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDENCnwgI2RlZmluZSBIQVZFX1NU UklOR1NfSCAxDQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NU RElOVF9IIDENCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklO R19IIDENCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQ0KfCAjZGVmaW5lIFNURENfSEVBREVSUyAx DQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDENCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0gg MQ0KfCAjZGVmaW5lIEhBVkVfRkxPQVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19IIDEN CnwgI2RlZmluZSBIQVZFX0xPQ0FMRV9IIDENCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLw0KfCAj aW5jbHVkZSA8c3RkaW8uaD4NCnwgI2lmIEhBVkVfU1lTX1RZUEVTX0gNCnwgIyBpbmNsdWRlIDxz eXMvdHlwZXMuaD4NCnwgI2VuZGlmDQp8ICNpZiBIQVZFX1NZU19TVEFUX0gNCnwgIyBpbmNsdWRl IDxzeXMvc3RhdC5oPg0KfCAjZW5kaWYNCnwgI2lmIFNURENfSEVBREVSUw0KfCAjIGluY2x1ZGUg PHN0ZGxpYi5oPg0KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPg0KfCAjZWxzZQ0KfCAjIGlmIEhBVkVf U1RETElCX0gNCnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+DQp8ICMgZW5kaWYNCnwgI2VuZGlmDQp8 ICNpZiBIQVZFX1NUUklOR19IDQp8ICMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZFX01FTU9SWV9I DQp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPg0KfCAjIGVuZGlmDQp8ICMgaW5jbHVkZSA8c3RyaW5n Lmg+DQp8ICNlbmRpZg0KfCAjaWYgSEFWRV9TVFJJTkdTX0gNCnwgIyBpbmNsdWRlIDxzdHJpbmdz Lmg+DQp8ICNlbmRpZg0KfCAjaWYgSEFWRV9JTlRUWVBFU19IDQp8ICMgaW5jbHVkZSA8aW50dHlw ZXMuaD4NCnwgI2Vsc2UNCnwgIyBpZiBIQVZFX1NURElOVF9IDQp8ICMgIGluY2x1ZGUgPHN0ZGlu dC5oPg0KfCAjIGVuZGlmDQp8ICNlbmRpZg0KfCAjaWYgSEFWRV9VTklTVERfSA0KfCAjIGluY2x1 ZGUgPHVuaXN0ZC5oPg0KfCAjZW5kaWYNCnwgI2luY2x1ZGUgPHN5cy9pb2dyYXBoLmg+DQpjb25m aWd1cmU6MjQ3NDg6IHJlc3VsdDogbm8NCmNvbmZpZ3VyZToyNDc1MjogY2hlY2tpbmcgc3lzL2lv Z3JhcGguaCBwcmVzZW5jZQ0KY29uZmlndXJlOjI0NzYyOiBnY2MgLUUgIGNvbmZ0ZXN0LmMNCmNv bmZ0ZXN0LmM6MzM6MjU6IHN5cy9pb2dyYXBoLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkN DQpjb25maWd1cmU6MjQ3Njg6ICQ/ID0gMQ0KY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 DQp8IC8qIGNvbmZkZWZzLmguICAqLw0KfCANCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBN UCINCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImdtcCINCnwgI2RlZmluZSBQQUNLQUdFX1ZF UlNJT04gIjQuMi4yIg0KfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgTVAgNC4yLjIiDQp8 ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImdtcC1idWdzQHN3b3guY29tIg0KfCAjZGVmaW5l IFBBQ0tBR0UgImdtcCINCnwgI2RlZmluZSBWRVJTSU9OICI0LjIuMiINCnwgI2RlZmluZSBXQU5U X0ZGVCAxDQp8ICNkZWZpbmUgSEFWRV9IT1NUX0NQVV9wcGNiZSAxDQp8ICNkZWZpbmUgUFJPVE9U WVBFUyAxDQp8ICNkZWZpbmUgX19QUk9UT1RZUEVTIDENCnwgI2RlZmluZSBTVERDX0hFQURFUlMg MQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRf SCAxDQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAx DQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQ0K fCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxDQp8 ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNk ZWZpbmUgSEFWRV9ETEZDTl9IIDENCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5l IFRJTUVfV0lUSF9TWVNfVElNRSAxDQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDENCnwgI2RlZmlu ZSBIQVZFX0ZMT0FUX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fSCAxDQp8ICNkZWZpbmUg SEFWRV9MT0NBTEVfSCAxDQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8NCnwgI2luY2x1ZGUgPHN5 cy9pb2dyYXBoLmg+DQpjb25maWd1cmU6MjQ3ODg6IHJlc3VsdDogbm8NCmNvbmZpZ3VyZToyNDgy MzogY2hlY2tpbmcgZm9yIHN5cy9pb2dyYXBoLmgNCmNvbmZpZ3VyZToyNDgzMDogcmVzdWx0OiBu bw0KY29uZmlndXJlOjI0NzA3OiBjaGVja2luZyBzeXMvbW1hbi5oIHVzYWJpbGl0eQ0KY29uZmln dXJlOjI0NzE5OiBnY2MgLWMgLU8zICBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjI0NzI1OiAk PyA9IDANCmNvbmZpZ3VyZToyNDcyOTogdGVzdCAteiANCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRl c3QuZXJyDQpjb25maWd1cmU6MjQ3MzI6ICQ/ID0gMA0KY29uZmlndXJlOjI0NzM1OiB0ZXN0IC1z IGNvbmZ0ZXN0Lm8NCmNvbmZpZ3VyZToyNDczODogJD8gPSAwDQpjb25maWd1cmU6MjQ3NDg6IHJl c3VsdDogeWVzDQpjb25maWd1cmU6MjQ3NTI6IGNoZWNraW5nIHN5cy9tbWFuLmggcHJlc2VuY2UN CmNvbmZpZ3VyZToyNDc2MjogZ2NjIC1FICBjb25mdGVzdC5jDQpjb25maWd1cmU6MjQ3Njg6ICQ/ ID0gMA0KY29uZmlndXJlOjI0Nzg4OiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjI0ODIzOiBjaGVj a2luZyBmb3Igc3lzL21tYW4uaA0KY29uZmlndXJlOjI0ODMwOiByZXN1bHQ6IHllcw0KY29uZmln dXJlOjI0NzA3OiBjaGVja2luZyBzeXMvcGFyYW0uaCB1c2FiaWxpdHkNCmNvbmZpZ3VyZToyNDcx OTogZ2NjIC1jIC1PMyAgY29uZnRlc3QuYyA+JjUNCmNvbmZpZ3VyZToyNDcyNTogJD8gPSAwDQpj b25maWd1cmU6MjQ3Mjk6IHRlc3QgLXogDQoJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycg0K Y29uZmlndXJlOjI0NzMyOiAkPyA9IDANCmNvbmZpZ3VyZToyNDczNTogdGVzdCAtcyBjb25mdGVz dC5vDQpjb25maWd1cmU6MjQ3Mzg6ICQ/ID0gMA0KY29uZmlndXJlOjI0NzQ4OiByZXN1bHQ6IHll cw0KY29uZmlndXJlOjI0NzUyOiBjaGVja2luZyBzeXMvcGFyYW0uaCBwcmVzZW5jZQ0KY29uZmln dXJlOjI0NzYyOiBnY2MgLUUgIGNvbmZ0ZXN0LmMNCmNvbmZpZ3VyZToyNDc2ODogJD8gPSAwDQpj b25maWd1cmU6MjQ3ODg6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MjQ4MjM6IGNoZWNraW5nIGZv ciBzeXMvcGFyYW0uaA0KY29uZmlndXJlOjI0ODMwOiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjI0 NzA3OiBjaGVja2luZyBzeXMvcHJvY2Vzc29yLmggdXNhYmlsaXR5DQpjb25maWd1cmU6MjQ3MTk6 IGdjYyAtYyAtTzMgIGNvbmZ0ZXN0LmMgPiY1DQpjb25mdGVzdC5jOjY5OjI3OiBzeXMvcHJvY2Vz c29yLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkNDQpjb25maWd1cmU6MjQ3MjU6ICQ/ID0g MQ0KY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6DQp8IC8qIGNvbmZkZWZzLmguICAqLw0K fCANCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBNUCINCnwgI2RlZmluZSBQQUNLQUdFX1RB Uk5BTUUgImdtcCINCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuMi4yIg0KfCAjZGVmaW5l IFBBQ0tBR0VfU1RSSU5HICJHTlUgTVAgNC4yLjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP UlQgImdtcC1idWdzQHN3b3guY29tIg0KfCAjZGVmaW5lIFBBQ0tBR0UgImdtcCINCnwgI2RlZmlu ZSBWRVJTSU9OICI0LjIuMiINCnwgI2RlZmluZSBXQU5UX0ZGVCAxDQp8ICNkZWZpbmUgSEFWRV9I T1NUX0NQVV9wcGNiZSAxDQp8ICNkZWZpbmUgUFJPVE9UWVBFUyAxDQp8ICNkZWZpbmUgX19QUk9U T1RZUEVTIDENCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RZ UEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERM SUJfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9NRU1PUllf SCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNf SCAxDQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxDQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAx DQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9ETEZDTl9IIDENCnwg I2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxDQp8 ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDENCnwgI2RlZmluZSBIQVZFX0ZMT0FUX0ggMQ0KfCAjZGVm aW5lIEhBVkVfTEFOR0lORk9fSCAxDQp8ICNkZWZpbmUgSEFWRV9MT0NBTEVfSCAxDQp8ICNkZWZp bmUgSEFWRV9TWVNfTU1BTl9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDENCnwgLyog ZW5kIGNvbmZkZWZzLmguICAqLw0KfCAjaW5jbHVkZSA8c3RkaW8uaD4NCnwgI2lmIEhBVkVfU1lT X1RZUEVTX0gNCnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4NCnwgI2VuZGlmDQp8ICNpZiBIQVZF X1NZU19TVEFUX0gNCnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPg0KfCAjZW5kaWYNCnwgI2lmIFNU RENfSEVBREVSUw0KfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPg0KfCAjIGluY2x1ZGUgPHN0ZGRlZi5o Pg0KfCAjZWxzZQ0KfCAjIGlmIEhBVkVfU1RETElCX0gNCnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+ DQp8ICMgZW5kaWYNCnwgI2VuZGlmDQp8ICNpZiBIQVZFX1NUUklOR19IDQp8ICMgaWYgIVNURENf SEVBREVSUyAmJiBIQVZFX01FTU9SWV9IDQp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPg0KfCAjIGVu ZGlmDQp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+DQp8ICNlbmRpZg0KfCAjaWYgSEFWRV9TVFJJTkdT X0gNCnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+DQp8ICNlbmRpZg0KfCAjaWYgSEFWRV9JTlRUWVBF U19IDQp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4NCnwgI2Vsc2UNCnwgIyBpZiBIQVZFX1NURElO VF9IDQp8ICMgIGluY2x1ZGUgPHN0ZGludC5oPg0KfCAjIGVuZGlmDQp8ICNlbmRpZg0KfCAjaWYg SEFWRV9VTklTVERfSA0KfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPg0KfCAjZW5kaWYNCnwgI2luY2x1 ZGUgPHN5cy9wcm9jZXNzb3IuaD4NCmNvbmZpZ3VyZToyNDc0ODogcmVzdWx0OiBubw0KY29uZmln dXJlOjI0NzUyOiBjaGVja2luZyBzeXMvcHJvY2Vzc29yLmggcHJlc2VuY2UNCmNvbmZpZ3VyZToy NDc2MjogZ2NjIC1FICBjb25mdGVzdC5jDQpjb25mdGVzdC5jOjM1OjI3OiBzeXMvcHJvY2Vzc29y Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkNDQpjb25maWd1cmU6MjQ3Njg6ICQ/ID0gMQ0K Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6DQp8IC8qIGNvbmZkZWZzLmguICAqLw0KfCAN CnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBNUCINCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5B TUUgImdtcCINCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuMi4yIg0KfCAjZGVmaW5lIFBB Q0tBR0VfU1RSSU5HICJHTlUgTVAgNC4yLjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg ImdtcC1idWdzQHN3b3guY29tIg0KfCAjZGVmaW5lIFBBQ0tBR0UgImdtcCINCnwgI2RlZmluZSBW RVJTSU9OICI0LjIuMiINCnwgI2RlZmluZSBXQU5UX0ZGVCAxDQp8ICNkZWZpbmUgSEFWRV9IT1NU X0NQVV9wcGNiZSAxDQp8ICNkZWZpbmUgUFJPVE9UWVBFUyAxDQp8ICNkZWZpbmUgX19QUk9UT1RZ UEVTIDENCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVT X0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERMSUJf SCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAx DQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAx DQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxDQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxDQp8 ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9ETEZDTl9IIDENCnwgI2Rl ZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxDQp8ICNk ZWZpbmUgSEFWRV9GQ05UTF9IIDENCnwgI2RlZmluZSBIQVZFX0ZMT0FUX0ggMQ0KfCAjZGVmaW5l IEhBVkVfTEFOR0lORk9fSCAxDQp8ICNkZWZpbmUgSEFWRV9MT0NBTEVfSCAxDQp8ICNkZWZpbmUg SEFWRV9TWVNfTU1BTl9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDENCnwgLyogZW5k IGNvbmZkZWZzLmguICAqLw0KfCAjaW5jbHVkZSA8c3lzL3Byb2Nlc3Nvci5oPg0KY29uZmlndXJl OjI0Nzg4OiByZXN1bHQ6IG5vDQpjb25maWd1cmU6MjQ4MjM6IGNoZWNraW5nIGZvciBzeXMvcHJv Y2Vzc29yLmgNCmNvbmZpZ3VyZToyNDgzMDogcmVzdWx0OiBubw0KY29uZmlndXJlOjI0NzA3OiBj aGVja2luZyBzeXMvcHN0YXQuaCB1c2FiaWxpdHkNCmNvbmZpZ3VyZToyNDcxOTogZ2NjIC1jIC1P MyAgY29uZnRlc3QuYyA+JjUNCmNvbmZ0ZXN0LmM6Njk6MjM6IHN5cy9wc3RhdC5oOiBObyBzdWNo IGZpbGUgb3IgZGlyZWN0b3J5DQ0KY29uZmlndXJlOjI0NzI1OiAkPyA9IDENCmNvbmZpZ3VyZTog ZmFpbGVkIHByb2dyYW0gd2FzOg0KfCAvKiBjb25mZGVmcy5oLiAgKi8NCnwgDQp8ICNkZWZpbmUg UEFDS0FHRV9OQU1FICJHTlUgTVAiDQp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJnbXAiDQp8 ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjIuMiINCnwgI2RlZmluZSBQQUNLQUdFX1NUUklO RyAiR05VIE1QIDQuMi4yIg0KfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJnbXAtYnVnc0Bz d294LmNvbSINCnwgI2RlZmluZSBQQUNLQUdFICJnbXAiDQp8ICNkZWZpbmUgVkVSU0lPTiAiNC4y LjIiDQp8ICNkZWZpbmUgV0FOVF9GRlQgMQ0KfCAjZGVmaW5lIEhBVkVfSE9TVF9DUFVfcHBjYmUg MQ0KfCAjZGVmaW5lIFBST1RPVFlQRVMgMQ0KfCAjZGVmaW5lIF9fUFJPVE9UWVBFUyAxDQp8ICNk ZWZpbmUgU1REQ19IRUFERVJTIDENCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDENCnwgI2Rl ZmluZSBIQVZFX1NZU19TVEFUX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQ0KfCAjZGVm aW5lIEhBVkVfU1RSSU5HX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQ0KfCAjZGVmaW5l IEhBVkVfU1RSSU5HU19IIDENCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQ0KfCAjZGVmaW5l IEhBVkVfU1RESU5UX0ggMQ0KfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQ0KfCAjZGVmaW5lIEhB VkVfU1RSSU5HX0ggMQ0KfCAjZGVmaW5lIEhBVkVfRExGQ05fSCAxDQp8ICNkZWZpbmUgU1REQ19I RUFERVJTIDENCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQ0KfCAjZGVmaW5lIEhBVkVf RkNOVExfSCAxDQp8ICNkZWZpbmUgSEFWRV9GTE9BVF9IIDENCnwgI2RlZmluZSBIQVZFX0xBTkdJ TkZPX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTE9DQUxFX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX01N QU5fSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxDQp8IC8qIGVuZCBjb25mZGVmcy5o LiAgKi8NCnwgI2luY2x1ZGUgPHN0ZGlvLmg+DQp8ICNpZiBIQVZFX1NZU19UWVBFU19IDQp8ICMg aW5jbHVkZSA8c3lzL3R5cGVzLmg+DQp8ICNlbmRpZg0KfCAjaWYgSEFWRV9TWVNfU1RBVF9IDQp8 ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4NCnwgI2VuZGlmDQp8ICNpZiBTVERDX0hFQURFUlMNCnwg IyBpbmNsdWRlIDxzdGRsaWIuaD4NCnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4NCnwgI2Vsc2UNCnwg IyBpZiBIQVZFX1NURExJQl9IDQp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPg0KfCAjIGVuZGlmDQp8 ICNlbmRpZg0KfCAjaWYgSEFWRV9TVFJJTkdfSA0KfCAjIGlmICFTVERDX0hFQURFUlMgJiYgSEFW RV9NRU1PUllfSA0KfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4NCnwgIyBlbmRpZg0KfCAjIGluY2x1 ZGUgPHN0cmluZy5oPg0KfCAjZW5kaWYNCnwgI2lmIEhBVkVfU1RSSU5HU19IDQp8ICMgaW5jbHVk ZSA8c3RyaW5ncy5oPg0KfCAjZW5kaWYNCnwgI2lmIEhBVkVfSU5UVFlQRVNfSA0KfCAjIGluY2x1 ZGUgPGludHR5cGVzLmg+DQp8ICNlbHNlDQp8ICMgaWYgSEFWRV9TVERJTlRfSA0KfCAjICBpbmNs dWRlIDxzdGRpbnQuaD4NCnwgIyBlbmRpZg0KfCAjZW5kaWYNCnwgI2lmIEhBVkVfVU5JU1REX0gN CnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4NCnwgI2VuZGlmDQp8ICNpbmNsdWRlIDxzeXMvcHN0YXQu aD4NCmNvbmZpZ3VyZToyNDc0ODogcmVzdWx0OiBubw0KY29uZmlndXJlOjI0NzUyOiBjaGVja2lu ZyBzeXMvcHN0YXQuaCBwcmVzZW5jZQ0KY29uZmlndXJlOjI0NzYyOiBnY2MgLUUgIGNvbmZ0ZXN0 LmMNCmNvbmZ0ZXN0LmM6MzU6MjM6IHN5cy9wc3RhdC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0 b3J5DQ0KY29uZmlndXJlOjI0NzY4OiAkPyA9IDENCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0g d2FzOg0KfCAvKiBjb25mZGVmcy5oLiAgKi8NCnwgDQp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJH TlUgTVAiDQp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJnbXAiDQp8ICNkZWZpbmUgUEFDS0FH RV9WRVJTSU9OICI0LjIuMiINCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIE1QIDQuMi4y Ig0KfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJnbXAtYnVnc0Bzd294LmNvbSINCnwgI2Rl ZmluZSBQQUNLQUdFICJnbXAiDQp8ICNkZWZpbmUgVkVSU0lPTiAiNC4yLjIiDQp8ICNkZWZpbmUg V0FOVF9GRlQgMQ0KfCAjZGVmaW5lIEhBVkVfSE9TVF9DUFVfcHBjYmUgMQ0KfCAjZGVmaW5lIFBS T1RPVFlQRVMgMQ0KfCAjZGVmaW5lIF9fUFJPVE9UWVBFUyAxDQp8ICNkZWZpbmUgU1REQ19IRUFE RVJTIDENCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NZU19T VEFUX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5H X0ggMQ0KfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19I IDENCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RESU5UX0gg MQ0KfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQ0K fCAjZGVmaW5lIEhBVkVfRExGQ05fSCAxDQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDENCnwgI2Rl ZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQ0KfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxDQp8ICNk ZWZpbmUgSEFWRV9GTE9BVF9IIDENCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX0ggMQ0KfCAjZGVm aW5lIEhBVkVfTE9DQUxFX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxDQp8ICNkZWZp bmUgSEFWRV9TWVNfUEFSQU1fSCAxDQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8NCnwgI2luY2x1 ZGUgPHN5cy9wc3RhdC5oPg0KY29uZmlndXJlOjI0Nzg4OiByZXN1bHQ6IG5vDQpjb25maWd1cmU6 MjQ4MjM6IGNoZWNraW5nIGZvciBzeXMvcHN0YXQuaA0KY29uZmlndXJlOjI0ODMwOiByZXN1bHQ6 IG5vDQpjb25maWd1cmU6MjQ3MDc6IGNoZWNraW5nIHN5cy9zeXNpbmZvLmggdXNhYmlsaXR5DQpj b25maWd1cmU6MjQ3MTk6IGdjYyAtYyAtTzMgIGNvbmZ0ZXN0LmMgPiY1DQpjb25mdGVzdC5jOjY5 OjI1OiBzeXMvc3lzaW5mby5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5DQ0KY29uZmlndXJl OjI0NzI1OiAkPyA9IDENCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOg0KfCAvKiBjb25m ZGVmcy5oLiAgKi8NCnwgDQp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgTVAiDQp8ICNkZWZp bmUgUEFDS0FHRV9UQVJOQU1FICJnbXAiDQp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjIu MiINCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIE1QIDQuMi4yIg0KfCAjZGVmaW5lIFBB Q0tBR0VfQlVHUkVQT1JUICJnbXAtYnVnc0Bzd294LmNvbSINCnwgI2RlZmluZSBQQUNLQUdFICJn bXAiDQp8ICNkZWZpbmUgVkVSU0lPTiAiNC4yLjIiDQp8ICNkZWZpbmUgV0FOVF9GRlQgMQ0KfCAj ZGVmaW5lIEhBVkVfSE9TVF9DUFVfcHBjYmUgMQ0KfCAjZGVmaW5lIFBST1RPVFlQRVMgMQ0KfCAj ZGVmaW5lIF9fUFJPVE9UWVBFUyAxDQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDENCnwgI2RlZmlu ZSBIQVZFX1NZU19UWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQ0KfCAjZGVm aW5lIEhBVkVfU1RETElCX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQ0KfCAjZGVmaW5l IEhBVkVfTUVNT1JZX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDENCnwgI2RlZmluZSBI QVZFX0lOVFRZUEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQ0KfCAjZGVmaW5lIEhB VkVfVU5JU1REX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQ0KfCAjZGVmaW5lIEhBVkVf RExGQ05fSCAxDQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDENCnwgI2RlZmluZSBUSU1FX1dJVEhf U1lTX1RJTUUgMQ0KfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxDQp8ICNkZWZpbmUgSEFWRV9GTE9B VF9IIDENCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTE9DQUxF X0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFS QU1fSCAxDQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8NCnwgI2luY2x1ZGUgPHN0ZGlvLmg+DQp8 ICNpZiBIQVZFX1NZU19UWVBFU19IDQp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+DQp8ICNlbmRp Zg0KfCAjaWYgSEFWRV9TWVNfU1RBVF9IDQp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4NCnwgI2Vu ZGlmDQp8ICNpZiBTVERDX0hFQURFUlMNCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4NCnwgIyBpbmNs dWRlIDxzdGRkZWYuaD4NCnwgI2Vsc2UNCnwgIyBpZiBIQVZFX1NURExJQl9IDQp8ICMgIGluY2x1 ZGUgPHN0ZGxpYi5oPg0KfCAjIGVuZGlmDQp8ICNlbmRpZg0KfCAjaWYgSEFWRV9TVFJJTkdfSA0K fCAjIGlmICFTVERDX0hFQURFUlMgJiYgSEFWRV9NRU1PUllfSA0KfCAjICBpbmNsdWRlIDxtZW1v cnkuaD4NCnwgIyBlbmRpZg0KfCAjIGluY2x1ZGUgPHN0cmluZy5oPg0KfCAjZW5kaWYNCnwgI2lm IEhBVkVfU1RSSU5HU19IDQp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPg0KfCAjZW5kaWYNCnwgI2lm IEhBVkVfSU5UVFlQRVNfSA0KfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+DQp8ICNlbHNlDQp8ICMg aWYgSEFWRV9TVERJTlRfSA0KfCAjICBpbmNsdWRlIDxzdGRpbnQuaD4NCnwgIyBlbmRpZg0KfCAj ZW5kaWYNCnwgI2lmIEhBVkVfVU5JU1REX0gNCnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4NCnwgI2Vu ZGlmDQp8ICNpbmNsdWRlIDxzeXMvc3lzaW5mby5oPg0KY29uZmlndXJlOjI0NzQ4OiByZXN1bHQ6 IG5vDQpjb25maWd1cmU6MjQ3NTI6IGNoZWNraW5nIHN5cy9zeXNpbmZvLmggcHJlc2VuY2UNCmNv bmZpZ3VyZToyNDc2MjogZ2NjIC1FICBjb25mdGVzdC5jDQpjb25mdGVzdC5jOjM1OjI1OiBzeXMv c3lzaW5mby5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5DQ0KY29uZmlndXJlOjI0NzY4OiAk PyA9IDENCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOg0KfCAvKiBjb25mZGVmcy5oLiAg Ki8NCnwgDQp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgTVAiDQp8ICNkZWZpbmUgUEFDS0FH RV9UQVJOQU1FICJnbXAiDQp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjIuMiINCnwgI2Rl ZmluZSBQQUNLQUdFX1NUUklORyAiR05VIE1QIDQuMi4yIg0KfCAjZGVmaW5lIFBBQ0tBR0VfQlVH UkVQT1JUICJnbXAtYnVnc0Bzd294LmNvbSINCnwgI2RlZmluZSBQQUNLQUdFICJnbXAiDQp8ICNk ZWZpbmUgVkVSU0lPTiAiNC4yLjIiDQp8ICNkZWZpbmUgV0FOVF9GRlQgMQ0KfCAjZGVmaW5lIEhB VkVfSE9TVF9DUFVfcHBjYmUgMQ0KfCAjZGVmaW5lIFBST1RPVFlQRVMgMQ0KfCAjZGVmaW5lIF9f UFJPVE9UWVBFUyAxDQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDENCnwgI2RlZmluZSBIQVZFX1NZ U19UWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQ0KfCAjZGVmaW5lIEhBVkVf U1RETElCX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTUVN T1JZX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDENCnwgI2RlZmluZSBIQVZFX0lOVFRZ UEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQ0KfCAjZGVmaW5lIEhBVkVfVU5JU1RE X0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQ0KfCAjZGVmaW5lIEhBVkVfRExGQ05fSCAx DQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDENCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUg MQ0KfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxDQp8ICNkZWZpbmUgSEFWRV9GTE9BVF9IIDENCnwg I2RlZmluZSBIQVZFX0xBTkdJTkZPX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTE9DQUxFX0ggMQ0KfCAj ZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxDQp8 IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8NCnwgI2luY2x1ZGUgPHN5cy9zeXNpbmZvLmg+DQpjb25m aWd1cmU6MjQ3ODg6IHJlc3VsdDogbm8NCmNvbmZpZ3VyZToyNDgyMzogY2hlY2tpbmcgZm9yIHN5 cy9zeXNpbmZvLmgNCmNvbmZpZ3VyZToyNDgzMDogcmVzdWx0OiBubw0KY29uZmlndXJlOjI0NzA3 OiBjaGVja2luZyBzeXMvc3lzc2dpLmggdXNhYmlsaXR5DQpjb25maWd1cmU6MjQ3MTk6IGdjYyAt YyAtTzMgIGNvbmZ0ZXN0LmMgPiY1DQpjb25mdGVzdC5jOjY5OjI0OiBzeXMvc3lzc2dpLmg6IE5v IHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkNDQpjb25maWd1cmU6MjQ3MjU6ICQ/ID0gMQ0KY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6DQp8IC8qIGNvbmZkZWZzLmguICAqLw0KfCANCnwgI2Rl ZmluZSBQQUNLQUdFX05BTUUgIkdOVSBNUCINCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImdt cCINCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuMi4yIg0KfCAjZGVmaW5lIFBBQ0tBR0Vf U1RSSU5HICJHTlUgTVAgNC4yLjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImdtcC1i dWdzQHN3b3guY29tIg0KfCAjZGVmaW5lIFBBQ0tBR0UgImdtcCINCnwgI2RlZmluZSBWRVJTSU9O ICI0LjIuMiINCnwgI2RlZmluZSBXQU5UX0ZGVCAxDQp8ICNkZWZpbmUgSEFWRV9IT1NUX0NQVV9w cGNiZSAxDQp8ICNkZWZpbmUgUFJPVE9UWVBFUyAxDQp8ICNkZWZpbmUgX19QUk9UT1RZUEVTIDEN CnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQ0K fCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxDQp8 ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxDQp8ICNk ZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxDQp8ICNk ZWZpbmUgSEFWRV9TVERJTlRfSCAxDQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxDQp8ICNkZWZp bmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9ETEZDTl9IIDENCnwgI2RlZmluZSBT VERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxDQp8ICNkZWZpbmUg SEFWRV9GQ05UTF9IIDENCnwgI2RlZmluZSBIQVZFX0ZMT0FUX0ggMQ0KfCAjZGVmaW5lIEhBVkVf TEFOR0lORk9fSCAxDQp8ICNkZWZpbmUgSEFWRV9MT0NBTEVfSCAxDQp8ICNkZWZpbmUgSEFWRV9T WVNfTU1BTl9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDENCnwgLyogZW5kIGNvbmZk ZWZzLmguICAqLw0KfCAjaW5jbHVkZSA8c3RkaW8uaD4NCnwgI2lmIEhBVkVfU1lTX1RZUEVTX0gN CnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4NCnwgI2VuZGlmDQp8ICNpZiBIQVZFX1NZU19TVEFU X0gNCnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPg0KfCAjZW5kaWYNCnwgI2lmIFNURENfSEVBREVS Uw0KfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPg0KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPg0KfCAjZWxz ZQ0KfCAjIGlmIEhBVkVfU1RETElCX0gNCnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+DQp8ICMgZW5k aWYNCnwgI2VuZGlmDQp8ICNpZiBIQVZFX1NUUklOR19IDQp8ICMgaWYgIVNURENfSEVBREVSUyAm JiBIQVZFX01FTU9SWV9IDQp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPg0KfCAjIGVuZGlmDQp8ICMg aW5jbHVkZSA8c3RyaW5nLmg+DQp8ICNlbmRpZg0KfCAjaWYgSEFWRV9TVFJJTkdTX0gNCnwgIyBp bmNsdWRlIDxzdHJpbmdzLmg+DQp8ICNlbmRpZg0KfCAjaWYgSEFWRV9JTlRUWVBFU19IDQp8ICMg aW5jbHVkZSA8aW50dHlwZXMuaD4NCnwgI2Vsc2UNCnwgIyBpZiBIQVZFX1NURElOVF9IDQp8ICMg IGluY2x1ZGUgPHN0ZGludC5oPg0KfCAjIGVuZGlmDQp8ICNlbmRpZg0KfCAjaWYgSEFWRV9VTklT VERfSA0KfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPg0KfCAjZW5kaWYNCnwgI2luY2x1ZGUgPHN5cy9z eXNzZ2kuaD4NCmNvbmZpZ3VyZToyNDc0ODogcmVzdWx0OiBubw0KY29uZmlndXJlOjI0NzUyOiBj aGVja2luZyBzeXMvc3lzc2dpLmggcHJlc2VuY2UNCmNvbmZpZ3VyZToyNDc2MjogZ2NjIC1FICBj b25mdGVzdC5jDQpjb25mdGVzdC5jOjM1OjI0OiBzeXMvc3lzc2dpLmg6IE5vIHN1Y2ggZmlsZSBv ciBkaXJlY3RvcnkNDQpjb25maWd1cmU6MjQ3Njg6ICQ/ID0gMQ0KY29uZmlndXJlOiBmYWlsZWQg cHJvZ3JhbSB3YXM6DQp8IC8qIGNvbmZkZWZzLmguICAqLw0KfCANCnwgI2RlZmluZSBQQUNLQUdF X05BTUUgIkdOVSBNUCINCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImdtcCINCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIjQuMi4yIg0KfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUg TVAgNC4yLjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImdtcC1idWdzQHN3b3guY29t Ig0KfCAjZGVmaW5lIFBBQ0tBR0UgImdtcCINCnwgI2RlZmluZSBWRVJTSU9OICI0LjIuMiINCnwg I2RlZmluZSBXQU5UX0ZGVCAxDQp8ICNkZWZpbmUgSEFWRV9IT1NUX0NQVV9wcGNiZSAxDQp8ICNk ZWZpbmUgUFJPVE9UWVBFUyAxDQp8ICNkZWZpbmUgX19QUk9UT1RZUEVTIDENCnwgI2RlZmluZSBT VERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQ0KfCAjZGVmaW5lIEhB VkVfU1lTX1NUQVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxDQp8ICNkZWZpbmUgSEFW RV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxDQp8ICNkZWZpbmUgSEFWRV9T VFJJTkdTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9T VERJTlRfSCAxDQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJ TkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9ETEZDTl9IIDENCnwgI2RlZmluZSBTVERDX0hFQURFUlMg MQ0KfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxDQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9I IDENCnwgI2RlZmluZSBIQVZFX0ZMT0FUX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fSCAx DQp8ICNkZWZpbmUgSEFWRV9MT0NBTEVfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfTU1BTl9IIDEN CnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDENCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLw0K fCAjaW5jbHVkZSA8c3lzL3N5c3NnaS5oPg0KY29uZmlndXJlOjI0Nzg4OiByZXN1bHQ6IG5vDQpj b25maWd1cmU6MjQ4MjM6IGNoZWNraW5nIGZvciBzeXMvc3lzc2dpLmgNCmNvbmZpZ3VyZToyNDgz MDogcmVzdWx0OiBubw0KY29uZmlndXJlOjI0NzA3OiBjaGVja2luZyBzeXMvc3lzdGVtY2ZnLmgg dXNhYmlsaXR5DQpjb25maWd1cmU6MjQ3MTk6IGdjYyAtYyAtTzMgIGNvbmZ0ZXN0LmMgPiY1DQpj b25mdGVzdC5jOjY5OjI3OiBzeXMvc3lzdGVtY2ZnLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3Rv cnkNDQpjb25maWd1cmU6MjQ3MjU6ICQ/ID0gMQ0KY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6DQp8IC8qIGNvbmZkZWZzLmguICAqLw0KfCANCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdO VSBNUCINCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImdtcCINCnwgI2RlZmluZSBQQUNLQUdF X1ZFUlNJT04gIjQuMi4yIg0KfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgTVAgNC4yLjIi DQp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImdtcC1idWdzQHN3b3guY29tIg0KfCAjZGVm aW5lIFBBQ0tBR0UgImdtcCINCnwgI2RlZmluZSBWRVJTSU9OICI0LjIuMiINCnwgI2RlZmluZSBX QU5UX0ZGVCAxDQp8ICNkZWZpbmUgSEFWRV9IT1NUX0NQVV9wcGNiZSAxDQp8ICNkZWZpbmUgUFJP VE9UWVBFUyAxDQp8ICNkZWZpbmUgX19QUk9UT1RZUEVTIDENCnwgI2RlZmluZSBTVERDX0hFQURF UlMgMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1NU QVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdf SCAxDQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0gg MQ0KfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAx DQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8 ICNkZWZpbmUgSEFWRV9ETEZDTl9IIDENCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVm aW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxDQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDENCnwgI2Rl ZmluZSBIQVZFX0ZMT0FUX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fSCAxDQp8ICNkZWZp bmUgSEFWRV9MT0NBTEVfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfTU1BTl9IIDENCnwgI2RlZmlu ZSBIQVZFX1NZU19QQVJBTV9IIDENCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLw0KfCAjaW5jbHVk ZSA8c3RkaW8uaD4NCnwgI2lmIEhBVkVfU1lTX1RZUEVTX0gNCnwgIyBpbmNsdWRlIDxzeXMvdHlw ZXMuaD4NCnwgI2VuZGlmDQp8ICNpZiBIQVZFX1NZU19TVEFUX0gNCnwgIyBpbmNsdWRlIDxzeXMv c3RhdC5oPg0KfCAjZW5kaWYNCnwgI2lmIFNURENfSEVBREVSUw0KfCAjIGluY2x1ZGUgPHN0ZGxp Yi5oPg0KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPg0KfCAjZWxzZQ0KfCAjIGlmIEhBVkVfU1RETElC X0gNCnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+DQp8ICMgZW5kaWYNCnwgI2VuZGlmDQp8ICNpZiBI QVZFX1NUUklOR19IDQp8ICMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZFX01FTU9SWV9IDQp8ICMg IGluY2x1ZGUgPG1lbW9yeS5oPg0KfCAjIGVuZGlmDQp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+DQp8 ICNlbmRpZg0KfCAjaWYgSEFWRV9TVFJJTkdTX0gNCnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+DQp8 ICNlbmRpZg0KfCAjaWYgSEFWRV9JTlRUWVBFU19IDQp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4N CnwgI2Vsc2UNCnwgIyBpZiBIQVZFX1NURElOVF9IDQp8ICMgIGluY2x1ZGUgPHN0ZGludC5oPg0K fCAjIGVuZGlmDQp8ICNlbmRpZg0KfCAjaWYgSEFWRV9VTklTVERfSA0KfCAjIGluY2x1ZGUgPHVu aXN0ZC5oPg0KfCAjZW5kaWYNCnwgI2luY2x1ZGUgPHN5cy9zeXN0ZW1jZmcuaD4NCmNvbmZpZ3Vy ZToyNDc0ODogcmVzdWx0OiBubw0KY29uZmlndXJlOjI0NzUyOiBjaGVja2luZyBzeXMvc3lzdGVt Y2ZnLmggcHJlc2VuY2UNCmNvbmZpZ3VyZToyNDc2MjogZ2NjIC1FICBjb25mdGVzdC5jDQpjb25m dGVzdC5jOjM1OjI3OiBzeXMvc3lzdGVtY2ZnLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkN DQpjb25maWd1cmU6MjQ3Njg6ICQ/ID0gMQ0KY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 DQp8IC8qIGNvbmZkZWZzLmguICAqLw0KfCANCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBN UCINCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImdtcCINCnwgI2RlZmluZSBQQUNLQUdFX1ZF UlNJT04gIjQuMi4yIg0KfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgTVAgNC4yLjIiDQp8 ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImdtcC1idWdzQHN3b3guY29tIg0KfCAjZGVmaW5l IFBBQ0tBR0UgImdtcCINCnwgI2RlZmluZSBWRVJTSU9OICI0LjIuMiINCnwgI2RlZmluZSBXQU5U X0ZGVCAxDQp8ICNkZWZpbmUgSEFWRV9IT1NUX0NQVV9wcGNiZSAxDQp8ICNkZWZpbmUgUFJPVE9U WVBFUyAxDQp8ICNkZWZpbmUgX19QUk9UT1RZUEVTIDENCnwgI2RlZmluZSBTVERDX0hFQURFUlMg MQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRf SCAxDQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAx DQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQ0K fCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxDQp8 ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNk ZWZpbmUgSEFWRV9ETEZDTl9IIDENCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5l IFRJTUVfV0lUSF9TWVNfVElNRSAxDQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDENCnwgI2RlZmlu ZSBIQVZFX0ZMT0FUX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fSCAxDQp8ICNkZWZpbmUg SEFWRV9MT0NBTEVfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfTU1BTl9IIDENCnwgI2RlZmluZSBI QVZFX1NZU19QQVJBTV9IIDENCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLw0KfCAjaW5jbHVkZSA8 c3lzL3N5c3RlbWNmZy5oPg0KY29uZmlndXJlOjI0Nzg4OiByZXN1bHQ6IG5vDQpjb25maWd1cmU6 MjQ4MjM6IGNoZWNraW5nIGZvciBzeXMvc3lzdGVtY2ZnLmgNCmNvbmZpZ3VyZToyNDgzMDogcmVz dWx0OiBubw0KY29uZmlndXJlOjI0NzA3OiBjaGVja2luZyBzeXMvdGltZS5oIHVzYWJpbGl0eQ0K Y29uZmlndXJlOjI0NzE5OiBnY2MgLWMgLU8zICBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjI0 NzI1OiAkPyA9IDANCmNvbmZpZ3VyZToyNDcyOTogdGVzdCAteiANCgkJCSB8fCB0ZXN0ICEgLXMg Y29uZnRlc3QuZXJyDQpjb25maWd1cmU6MjQ3MzI6ICQ/ID0gMA0KY29uZmlndXJlOjI0NzM1OiB0 ZXN0IC1zIGNvbmZ0ZXN0Lm8NCmNvbmZpZ3VyZToyNDczODogJD8gPSAwDQpjb25maWd1cmU6MjQ3 NDg6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MjQ3NTI6IGNoZWNraW5nIHN5cy90aW1lLmggcHJl c2VuY2UNCmNvbmZpZ3VyZToyNDc2MjogZ2NjIC1FICBjb25mdGVzdC5jDQpjb25maWd1cmU6MjQ3 Njg6ICQ/ID0gMA0KY29uZmlndXJlOjI0Nzg4OiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjI0ODIz OiBjaGVja2luZyBmb3Igc3lzL3RpbWUuaA0KY29uZmlndXJlOjI0ODMwOiByZXN1bHQ6IHllcw0K Y29uZmlndXJlOjI0NzA3OiBjaGVja2luZyBzeXMvdGltZXMuaCB1c2FiaWxpdHkNCmNvbmZpZ3Vy ZToyNDcxOTogZ2NjIC1jIC1PMyAgY29uZnRlc3QuYyA+JjUNCmNvbmZpZ3VyZToyNDcyNTogJD8g PSAwDQpjb25maWd1cmU6MjQ3Mjk6IHRlc3QgLXogDQoJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0 LmVycg0KY29uZmlndXJlOjI0NzMyOiAkPyA9IDANCmNvbmZpZ3VyZToyNDczNTogdGVzdCAtcyBj b25mdGVzdC5vDQpjb25maWd1cmU6MjQ3Mzg6ICQ/ID0gMA0KY29uZmlndXJlOjI0NzQ4OiByZXN1 bHQ6IHllcw0KY29uZmlndXJlOjI0NzUyOiBjaGVja2luZyBzeXMvdGltZXMuaCBwcmVzZW5jZQ0K Y29uZmlndXJlOjI0NzYyOiBnY2MgLUUgIGNvbmZ0ZXN0LmMNCmNvbmZpZ3VyZToyNDc2ODogJD8g PSAwDQpjb25maWd1cmU6MjQ3ODg6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MjQ4MjM6IGNoZWNr aW5nIGZvciBzeXMvdGltZXMuaA0KY29uZmlndXJlOjI0ODMwOiByZXN1bHQ6IHllcw0KY29uZmln dXJlOjI0ODQ5OiBjaGVja2luZyBmb3Igc3lzL3Jlc291cmNlLmgNCmNvbmZpZ3VyZToyNDg3NDog Z2NjIC1jIC1PMyAgY29uZnRlc3QuYyA+JjUNCmNvbmZpZ3VyZToyNDg4MDogJD8gPSAwDQpjb25m aWd1cmU6MjQ4ODQ6IHRlc3QgLXogDQoJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycg0KY29u ZmlndXJlOjI0ODg3OiAkPyA9IDANCmNvbmZpZ3VyZToyNDg5MDogdGVzdCAtcyBjb25mdGVzdC5v DQpjb25maWd1cmU6MjQ4OTM6ICQ/ID0gMA0KY29uZmlndXJlOjI0OTA0OiByZXN1bHQ6IHllcw0K Y29uZmlndXJlOjI0OTIxOiBjaGVja2luZyBmb3Igc3lzL3N5c2N0bC5oDQpjb25maWd1cmU6MjQ5 Mzk6IGdjYyAtYyAtTzMgIGNvbmZ0ZXN0LmMgPiY1DQpjb25mdGVzdC5jOjQyOjI0OiBzeXMvc3lz Y3RsLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkNDQpjb25maWd1cmU6MjQ5NDU6ICQ/ID0g MQ0KY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6DQp8IC8qIGNvbmZkZWZzLmguICAqLw0K fCANCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBNUCINCnwgI2RlZmluZSBQQUNLQUdFX1RB Uk5BTUUgImdtcCINCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuMi4yIg0KfCAjZGVmaW5l IFBBQ0tBR0VfU1RSSU5HICJHTlUgTVAgNC4yLjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP UlQgImdtcC1idWdzQHN3b3guY29tIg0KfCAjZGVmaW5lIFBBQ0tBR0UgImdtcCINCnwgI2RlZmlu ZSBWRVJTSU9OICI0LjIuMiINCnwgI2RlZmluZSBXQU5UX0ZGVCAxDQp8ICNkZWZpbmUgSEFWRV9I T1NUX0NQVV9wcGNiZSAxDQp8ICNkZWZpbmUgUFJPVE9UWVBFUyAxDQp8ICNkZWZpbmUgX19QUk9U T1RZUEVTIDENCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RZ UEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERM SUJfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9NRU1PUllf SCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNf SCAxDQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxDQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAx DQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9ETEZDTl9IIDENCnwg I2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxDQp8 ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDENCnwgI2RlZmluZSBIQVZFX0ZMT0FUX0ggMQ0KfCAjZGVm aW5lIEhBVkVfTEFOR0lORk9fSCAxDQp8ICNkZWZpbmUgSEFWRV9MT0NBTEVfSCAxDQp8ICNkZWZp bmUgSEFWRV9TWVNfTU1BTl9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDENCnwgI2Rl ZmluZSBIQVZFX1NZU19USU1FX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVTX0ggMQ0KfCAj ZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQ0KfCAvKiBlbmQgY29uZmRlZnMuaC4gICovDQp8 ICNpZiBIQVZFX1NZU19QQVJBTV9IDQp8ICMgaW5jbHVkZSA8c3lzL3BhcmFtLmg+DQp8ICNlbmRp Zg0KfCANCnwgI2luY2x1ZGUgPHN5cy9zeXNjdGwuaD4NCmNvbmZpZ3VyZToyNDk2OTogcmVzdWx0 OiBubw0KY29uZmlndXJlOjI0OTg2OiBjaGVja2luZyBmb3IgbWFjaGluZS9oYWxfc3lzaW5mby5o DQpjb25maWd1cmU6MjUwMDQ6IGdjYyAtYyAtTzMgIGNvbmZ0ZXN0LmMgPiY1DQpjb25mdGVzdC5j OjQyOjMzOiBtYWNoaW5lL2hhbF9zeXNpbmZvLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkN DQpjb25maWd1cmU6MjUwMTA6ICQ/ID0gMQ0KY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 DQp8IC8qIGNvbmZkZWZzLmguICAqLw0KfCANCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBN UCINCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImdtcCINCnwgI2RlZmluZSBQQUNLQUdFX1ZF UlNJT04gIjQuMi4yIg0KfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgTVAgNC4yLjIiDQp8 ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImdtcC1idWdzQHN3b3guY29tIg0KfCAjZGVmaW5l IFBBQ0tBR0UgImdtcCINCnwgI2RlZmluZSBWRVJTSU9OICI0LjIuMiINCnwgI2RlZmluZSBXQU5U X0ZGVCAxDQp8ICNkZWZpbmUgSEFWRV9IT1NUX0NQVV9wcGNiZSAxDQp8ICNkZWZpbmUgUFJPVE9U WVBFUyAxDQp8ICNkZWZpbmUgX19QUk9UT1RZUEVTIDENCnwgI2RlZmluZSBTVERDX0hFQURFUlMg MQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRf SCAxDQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAx DQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQ0K fCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxDQp8 ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNk ZWZpbmUgSEFWRV9ETEZDTl9IIDENCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5l IFRJTUVfV0lUSF9TWVNfVElNRSAxDQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDENCnwgI2RlZmlu ZSBIQVZFX0ZMT0FUX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fSCAxDQp8ICNkZWZpbmUg SEFWRV9MT0NBTEVfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfTU1BTl9IIDENCnwgI2RlZmluZSBI QVZFX1NZU19QQVJBTV9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQ0KfCAjZGVmaW5l IEhBVkVfU1lTX1RJTUVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQ0KfCAv KiBlbmQgY29uZmRlZnMuaC4gICovDQp8ICNpZiBIQVZFX1NZU19TWVNJTkZPX0gNCnwgIyBpbmNs dWRlIDxzeXMvc3lzaW5mby5oPg0KfCAjZW5kaWYNCnwgDQp8ICNpbmNsdWRlIDxtYWNoaW5lL2hh bF9zeXNpbmZvLmg+DQpjb25maWd1cmU6MjUwMzQ6IHJlc3VsdDogbm8NCmNvbmZpZ3VyZToyNTA1 NzogY2hlY2tpbmcgd2hldGhlciBmZ2V0YyBpcyBkZWNsYXJlZA0KY29uZmlndXJlOjI1MDgxOiBn Y2MgLWMgLU8zICBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjI1MDg3OiAkPyA9IDANCmNvbmZp Z3VyZToyNTA5MTogdGVzdCAteiANCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyDQpjb25m aWd1cmU6MjUwOTQ6ICQ/ID0gMA0KY29uZmlndXJlOjI1MDk3OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8N CmNvbmZpZ3VyZToyNTEwMDogJD8gPSAwDQpjb25maWd1cmU6MjUxMTE6IHJlc3VsdDogeWVzDQpj b25maWd1cmU6MjUxMjc6IGNoZWNraW5nIHdoZXRoZXIgZnNjYW5mIGlzIGRlY2xhcmVkDQpjb25m aWd1cmU6MjUxNTE6IGdjYyAtYyAtTzMgIGNvbmZ0ZXN0LmMgPiY1DQpjb25maWd1cmU6MjUxNTc6 ICQ/ID0gMA0KY29uZmlndXJlOjI1MTYxOiB0ZXN0IC16IA0KCQkJIHx8IHRlc3QgISAtcyBjb25m dGVzdC5lcnINCmNvbmZpZ3VyZToyNTE2NDogJD8gPSAwDQpjb25maWd1cmU6MjUxNjc6IHRlc3Qg LXMgY29uZnRlc3Qubw0KY29uZmlndXJlOjI1MTcwOiAkPyA9IDANCmNvbmZpZ3VyZToyNTE4MTog cmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToyNTE5NzogY2hlY2tpbmcgd2hldGhlciBvcHRhcmcgaXMg ZGVjbGFyZWQNCmNvbmZpZ3VyZToyNTIyMTogZ2NjIC1jIC1PMyAgY29uZnRlc3QuYyA+JjUNCmNv bmZpZ3VyZToyNTIyNzogJD8gPSAwDQpjb25maWd1cmU6MjUyMzE6IHRlc3QgLXogDQoJCQkgfHwg dGVzdCAhIC1zIGNvbmZ0ZXN0LmVycg0KY29uZmlndXJlOjI1MjM0OiAkPyA9IDANCmNvbmZpZ3Vy ZToyNTIzNzogdGVzdCAtcyBjb25mdGVzdC5vDQpjb25maWd1cmU6MjUyNDA6ICQ/ID0gMA0KY29u ZmlndXJlOjI1MjUxOiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjI1MjY3OiBjaGVja2luZyB3aGV0 aGVyIHVuZ2V0YyBpcyBkZWNsYXJlZA0KY29uZmlndXJlOjI1MjkxOiBnY2MgLWMgLU8zICBjb25m dGVzdC5jID4mNQ0KY29uZmlndXJlOjI1Mjk3OiAkPyA9IDANCmNvbmZpZ3VyZToyNTMwMTogdGVz dCAteiANCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyDQpjb25maWd1cmU6MjUzMDQ6ICQ/ ID0gMA0KY29uZmlndXJlOjI1MzA3OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8NCmNvbmZpZ3VyZToyNTMx MDogJD8gPSAwDQpjb25maWd1cmU6MjUzMjE6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MjUzMzc6 IGNoZWNraW5nIHdoZXRoZXIgdmZwcmludGYgaXMgZGVjbGFyZWQNCmNvbmZpZ3VyZToyNTM2MTog Z2NjIC1jIC1PMyAgY29uZnRlc3QuYyA+JjUNCmNvbmZpZ3VyZToyNTM2NzogJD8gPSAwDQpjb25m aWd1cmU6MjUzNzE6IHRlc3QgLXogDQoJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycg0KY29u ZmlndXJlOjI1Mzc0OiAkPyA9IDANCmNvbmZpZ3VyZToyNTM3NzogdGVzdCAtcyBjb25mdGVzdC5v DQpjb25maWd1cmU6MjUzODA6ICQ/ID0gMA0KY29uZmlndXJlOjI1MzkxOiByZXN1bHQ6IHllcw0K Y29uZmlndXJlOjI1NDA5OiBjaGVja2luZyB3aGV0aGVyIHN5c19lcnJsaXN0IGlzIGRlY2xhcmVk DQpjb25maWd1cmU6MjU0MzU6IGdjYyAtYyAtTzMgIGNvbmZ0ZXN0LmMgPiY1DQpjb25maWd1cmU6 MjU0NDE6ICQ/ID0gMA0KY29uZmlndXJlOjI1NDQ1OiB0ZXN0IC16IA0KCQkJIHx8IHRlc3QgISAt cyBjb25mdGVzdC5lcnINCmNvbmZpZ3VyZToyNTQ0ODogJD8gPSAwDQpjb25maWd1cmU6MjU0NTE6 IHRlc3QgLXMgY29uZnRlc3Qubw0KY29uZmlndXJlOjI1NDU0OiAkPyA9IDANCmNvbmZpZ3VyZToy NTQ2NTogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToyNTQ4MTogY2hlY2tpbmcgd2hldGhlciBzeXNf bmVyciBpcyBkZWNsYXJlZA0KY29uZmlndXJlOjI1NTA3OiBnY2MgLWMgLU8zICBjb25mdGVzdC5j ID4mNQ0KY29uZmlndXJlOjI1NTEzOiAkPyA9IDANCmNvbmZpZ3VyZToyNTUxNzogdGVzdCAteiAN CgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyDQpjb25maWd1cmU6MjU1MjA6ICQ/ID0gMA0K Y29uZmlndXJlOjI1NTIzOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8NCmNvbmZpZ3VyZToyNTUyNjogJD8g PSAwDQpjb25maWd1cmU6MjU1Mzc6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MjU1NTY6IGNoZWNr aW5nIHJldHVybiB0eXBlIG9mIHNpZ25hbCBoYW5kbGVycw0KY29uZmlndXJlOjI1NTg3OiBnY2Mg LWMgLU8zICBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjI1NTkzOiAkPyA9IDANCmNvbmZpZ3Vy ZToyNTU5NzogdGVzdCAteiANCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyDQpjb25maWd1 cmU6MjU2MDA6ICQ/ID0gMA0KY29uZmlndXJlOjI1NjAzOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8NCmNv bmZpZ3VyZToyNTYwNjogJD8gPSAwDQpjb25maWd1cmU6MjU2MTc6IHJlc3VsdDogdm9pZA0KY29u ZmlndXJlOjI1NjM2OiBjaGVja2luZyBmb3IgaW50bWF4X3QNCmNvbmZpZ3VyZToyNTY2MDogZ2Nj IC1jIC1PMyAgY29uZnRlc3QuYyA+JjUNCmNvbmZpZ3VyZToyNTY2NjogJD8gPSAwDQpjb25maWd1 cmU6MjU2NzA6IHRlc3QgLXogDQoJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycg0KY29uZmln dXJlOjI1NjczOiAkPyA9IDANCmNvbmZpZ3VyZToyNTY3NjogdGVzdCAtcyBjb25mdGVzdC5vDQpj b25maWd1cmU6MjU2Nzk6ICQ/ID0gMA0KY29uZmlndXJlOjI1NjkwOiByZXN1bHQ6IHllcw0KY29u ZmlndXJlOjI1NzAwOiBjaGVja2luZyBmb3IgbG9uZyBkb3VibGUNCmNvbmZpZ3VyZToyNTcyNDog Z2NjIC1jIC1PMyAgY29uZnRlc3QuYyA+JjUNCmNvbmZpZ3VyZToyNTczMDogJD8gPSAwDQpjb25m aWd1cmU6MjU3MzQ6IHRlc3QgLXogDQoJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycg0KY29u ZmlndXJlOjI1NzM3OiAkPyA9IDANCmNvbmZpZ3VyZToyNTc0MDogdGVzdCAtcyBjb25mdGVzdC5v DQpjb25maWd1cmU6MjU3NDM6ICQ/ID0gMA0KY29uZmlndXJlOjI1NzU0OiByZXN1bHQ6IHllcw0K Y29uZmlndXJlOjI1NzY0OiBjaGVja2luZyBmb3IgbG9uZyBsb25nDQpjb25maWd1cmU6MjU3ODg6 IGdjYyAtYyAtTzMgIGNvbmZ0ZXN0LmMgPiY1DQpjb25maWd1cmU6MjU3OTQ6ICQ/ID0gMA0KY29u ZmlndXJlOjI1Nzk4OiB0ZXN0IC16IA0KCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnINCmNv bmZpZ3VyZToyNTgwMTogJD8gPSAwDQpjb25maWd1cmU6MjU4MDQ6IHRlc3QgLXMgY29uZnRlc3Qu bw0KY29uZmlndXJlOjI1ODA3OiAkPyA9IDANCmNvbmZpZ3VyZToyNTgxODogcmVzdWx0OiB5ZXMN CmNvbmZpZ3VyZToyNTgyODogY2hlY2tpbmcgZm9yIHB0cmRpZmZfdA0KY29uZmlndXJlOjI1ODUy OiBnY2MgLWMgLU8zICBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjI1ODU4OiAkPyA9IDANCmNv bmZpZ3VyZToyNTg2MjogdGVzdCAteiANCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyDQpj b25maWd1cmU6MjU4NjU6ICQ/ID0gMA0KY29uZmlndXJlOjI1ODY4OiB0ZXN0IC1zIGNvbmZ0ZXN0 Lm8NCmNvbmZpZ3VyZToyNTg3MTogJD8gPSAwDQpjb25maWd1cmU6MjU4ODI6IHJlc3VsdDogeWVz DQpjb25maWd1cmU6MjU4OTI6IGNoZWNraW5nIGZvciBxdWFkX3QNCmNvbmZpZ3VyZToyNTkxNjog Z2NjIC1jIC1PMyAgY29uZnRlc3QuYyA+JjUNCmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uIGBtYWlu JzoNDQpjb25mdGVzdC5jOjg3OiBlcnJvcjogYHF1YWRfdCcgdW5kZWNsYXJlZCAoZmlyc3QgdXNl IGluIHRoaXMgZnVuY3Rpb24pDQ0KY29uZnRlc3QuYzo4NzogZXJyb3I6IChFYWNoIHVuZGVjbGFy ZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UNDQpjb25mdGVzdC5jOjg3OiBlcnJv cjogZm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBpbi4pDQ0KY29uZnRlc3QuYzo4NzogZXJy b3I6IHBhcnNlIGVycm9yIGJlZm9yZSAnKScgdG9rZW4NDQpjb25maWd1cmU6MjU5MjI6ICQ/ID0g MQ0KY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6DQp8IC8qIGNvbmZkZWZzLmguICAqLw0K fCANCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBNUCINCnwgI2RlZmluZSBQQUNLQUdFX1RB Uk5BTUUgImdtcCINCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuMi4yIg0KfCAjZGVmaW5l IFBBQ0tBR0VfU1RSSU5HICJHTlUgTVAgNC4yLjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP UlQgImdtcC1idWdzQHN3b3guY29tIg0KfCAjZGVmaW5lIFBBQ0tBR0UgImdtcCINCnwgI2RlZmlu ZSBWRVJTSU9OICI0LjIuMiINCnwgI2RlZmluZSBXQU5UX0ZGVCAxDQp8ICNkZWZpbmUgSEFWRV9I T1NUX0NQVV9wcGNiZSAxDQp8ICNkZWZpbmUgUFJPVE9UWVBFUyAxDQp8ICNkZWZpbmUgX19QUk9U T1RZUEVTIDENCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RZ UEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERM SUJfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9NRU1PUllf SCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNf SCAxDQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxDQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAx DQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9ETEZDTl9IIDENCnwg I2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxDQp8 ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDENCnwgI2RlZmluZSBIQVZFX0ZMT0FUX0ggMQ0KfCAjZGVm aW5lIEhBVkVfTEFOR0lORk9fSCAxDQp8ICNkZWZpbmUgSEFWRV9MT0NBTEVfSCAxDQp8ICNkZWZp bmUgSEFWRV9TWVNfTU1BTl9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDENCnwgI2Rl ZmluZSBIQVZFX1NZU19USU1FX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVTX0ggMQ0KfCAj ZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9GR0VUQyAx DQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZTQ0FORiAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX09QVEFS RyAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOR0VUQyAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZG UFJJTlRGIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1lTX0VSUkxJU1QgMQ0KfCAjZGVmaW5lIEhB VkVfREVDTF9TWVNfTkVSUiAxDQp8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkDQp8ICNkZWZpbmUg SEFWRV9JTlRNQVhfVCAxDQp8ICNkZWZpbmUgSEFWRV9MT05HX0RPVUJMRSAxDQp8ICNkZWZpbmUg SEFWRV9MT05HX0xPTkcgMQ0KfCAjZGVmaW5lIEhBVkVfUFRSRElGRl9UIDENCnwgLyogZW5kIGNv bmZkZWZzLmguICAqLw0KfCAjaW5jbHVkZSA8c3RkaW8uaD4NCnwgI2lmIEhBVkVfU1lTX1RZUEVT X0gNCnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4NCnwgI2VuZGlmDQp8ICNpZiBIQVZFX1NZU19T VEFUX0gNCnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPg0KfCAjZW5kaWYNCnwgI2lmIFNURENfSEVB REVSUw0KfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPg0KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPg0KfCAj ZWxzZQ0KfCAjIGlmIEhBVkVfU1RETElCX0gNCnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+DQp8ICMg ZW5kaWYNCnwgI2VuZGlmDQp8ICNpZiBIQVZFX1NUUklOR19IDQp8ICMgaWYgIVNURENfSEVBREVS UyAmJiBIQVZFX01FTU9SWV9IDQp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPg0KfCAjIGVuZGlmDQp8 ICMgaW5jbHVkZSA8c3RyaW5nLmg+DQp8ICNlbmRpZg0KfCAjaWYgSEFWRV9TVFJJTkdTX0gNCnwg IyBpbmNsdWRlIDxzdHJpbmdzLmg+DQp8ICNlbmRpZg0KfCAjaWYgSEFWRV9JTlRUWVBFU19IDQp8 ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4NCnwgI2Vsc2UNCnwgIyBpZiBIQVZFX1NURElOVF9IDQp8 ICMgIGluY2x1ZGUgPHN0ZGludC5oPg0KfCAjIGVuZGlmDQp8ICNlbmRpZg0KfCAjaWYgSEFWRV9V TklTVERfSA0KfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPg0KfCAjZW5kaWYNCnwgaW50DQp8IG1haW4g KCkNCnwgew0KfCBpZiAoKHF1YWRfdCAqKSAwKQ0KfCAgIHJldHVybiAwOw0KfCBpZiAoc2l6ZW9m IChxdWFkX3QpKQ0KfCAgIHJldHVybiAwOw0KfCAgIDsNCnwgICByZXR1cm4gMDsNCnwgfQ0KY29u ZmlndXJlOjI1OTQ2OiByZXN1bHQ6IG5vDQpjb25maWd1cmU6MjU5NTY6IGNoZWNraW5nIGZvciB1 aW50X2xlYXN0MzJfdA0KY29uZmlndXJlOjI1OTgwOiBnY2MgLWMgLU8zICBjb25mdGVzdC5jID4m NQ0KY29uZmlndXJlOjI1OTg2OiAkPyA9IDANCmNvbmZpZ3VyZToyNTk5MDogdGVzdCAteiANCgkJ CSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyDQpjb25maWd1cmU6MjU5OTM6ICQ/ID0gMA0KY29u ZmlndXJlOjI1OTk2OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8NCmNvbmZpZ3VyZToyNTk5OTogJD8gPSAw DQpjb25maWd1cmU6MjYwMTA6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MjYwMjI6IGNoZWNraW5n IGZvciBwcmVwcm9jZXNzb3Igc3RyaW5naXppbmcgb3BlcmF0b3INCmNvbmZpZ3VyZToyNjA0Njog cmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToyNjA2MDogY2hlY2tpbmcgZm9yIHdvcmtpbmcgdm9sYXRp bGUNCmNvbmZpZ3VyZToyNjA4MzogZ2NjIC1jIC1PMyAgY29uZnRlc3QuYyA+JjUNCmNvbmZpZ3Vy ZToyNjA4OTogJD8gPSAwDQpjb25maWd1cmU6MjYwOTM6IHRlc3QgLXogDQoJCQkgfHwgdGVzdCAh IC1zIGNvbmZ0ZXN0LmVycg0KY29uZmlndXJlOjI2MDk2OiAkPyA9IDANCmNvbmZpZ3VyZToyNjA5 OTogdGVzdCAtcyBjb25mdGVzdC5vDQpjb25maWd1cmU6MjYxMDI6ICQ/ID0gMA0KY29uZmlndXJl OjI2MTEzOiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjI2MTI2OiBjaGVja2luZyB3aGV0aGVyIDxz dGRhcmcuaD4gZXhpc3RzIGFuZCB3b3Jrcw0KY29uZmlndXJlOjI2MTU2OiBnY2MgLWMgLU8zICBj b25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjI2MTYyOiAkPyA9IDANCmNvbmZpZ3VyZToyNjE2Njog dGVzdCAteiANCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyDQpjb25maWd1cmU6MjYxNjk6 ICQ/ID0gMA0KY29uZmlndXJlOjI2MTcyOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8NCmNvbmZpZ3VyZToy NjE3NTogJD8gPSAwDQpjb25maWd1cmU6MjYxODc6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MjYx OTc6IGNoZWNraW5nIHdoZXRoZXIgZ2NjIF9fYXR0cmlidXRlX18gKChjb25zdCkpIHdvcmtzDQpj b25maWd1cmU6MjYyMTg6IGdjYyAtYyAtTzMgIGNvbmZ0ZXN0LmMgPiY1DQpjb25maWd1cmU6MjYy MjQ6ICQ/ID0gMA0KY29uZmlndXJlOjI2MjI4OiB0ZXN0IC16IA0KCQkJIHx8IHRlc3QgISAtcyBj b25mdGVzdC5lcnINCmNvbmZpZ3VyZToyNjIzMTogJD8gPSAwDQpjb25maWd1cmU6MjYyMzQ6IHRl c3QgLXMgY29uZnRlc3Qubw0KY29uZmlndXJlOjI2MjM3OiAkPyA9IDANCmNvbmZpZ3VyZToyNjI0 OTogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToyNjI1OTogY2hlY2tpbmcgd2hldGhlciBnY2MgX19h dHRyaWJ1dGVfXyAoKG1hbGxvYykpIHdvcmtzDQpjb25maWd1cmU6MjYyNjg6IGdjYyAtTzMgIC1j IGNvbmZ0ZXN0LmMgPmNvbmZ0ZXN0Lm91dCAyPiYxDQpjb25maWd1cmU6MjYyNzE6ICQ/ID0gMA0K Y29uZmlndXJlOjI2Mjg1OiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjI2Mjk1OiBjaGVja2luZyB3 aGV0aGVyIGdjYyBfX2F0dHJpYnV0ZV9fICgobW9kZSAoWFgpKSkgd29ya3MNCmNvbmZpZ3VyZToy NjMxNjogZ2NjIC1jIC1PMyAgY29uZnRlc3QuYyA+JjUNCmNvbmZpZ3VyZToyNjMyMjogJD8gPSAw DQpjb25maWd1cmU6MjYzMjY6IHRlc3QgLXogDQoJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVy cg0KY29uZmlndXJlOjI2MzI5OiAkPyA9IDANCmNvbmZpZ3VyZToyNjMzMjogdGVzdCAtcyBjb25m dGVzdC5vDQpjb25maWd1cmU6MjYzMzU6ICQ/ID0gMA0KY29uZmlndXJlOjI2MzQ3OiByZXN1bHQ6 IHllcw0KY29uZmlndXJlOjI2MzU3OiBjaGVja2luZyB3aGV0aGVyIGdjYyBfX2F0dHJpYnV0ZV9f ICgobm9yZXR1cm4pKSB3b3Jrcw0KY29uZmlndXJlOjI2Mzc4OiBnY2MgLWMgLU8zICBjb25mdGVz dC5jID4mNQ0KY29uZmlndXJlOjI2Mzg0OiAkPyA9IDANCmNvbmZpZ3VyZToyNjM4ODogdGVzdCAt eiANCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyDQpjb25maWd1cmU6MjYzOTE6ICQ/ID0g MA0KY29uZmlndXJlOjI2Mzk0OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8NCmNvbmZpZ3VyZToyNjM5Nzog JD8gPSAwDQpjb25maWd1cmU6MjY0MDk6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MjY0MjA6IGNo ZWNraW5nIGZvciBpbmxpbmUNCmNvbmZpZ3VyZToyNjQ0MTogZ2NjIC1jIC1PMyAgY29uZnRlc3Qu YyA+JjUNCmNvbmZpZ3VyZToyNjQ0NzogJD8gPSAwDQpjb25maWd1cmU6MjY0NTE6IHRlc3QgLXog DQoJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycg0KY29uZmlndXJlOjI2NDU0OiAkPyA9IDAN CmNvbmZpZ3VyZToyNjQ1NzogdGVzdCAtcyBjb25mdGVzdC5vDQpjb25maWd1cmU6MjY0NjA6ICQ/ ID0gMA0KY29uZmlndXJlOjI2NDcyOiByZXN1bHQ6IGlubGluZQ0KY29uZmlndXJlOjI2NTIyOiBn Y2MgLWMgLU8zICBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjI2NTI4OiAkPyA9IDANCmNvbmZp Z3VyZToyNjUzMjogdGVzdCAteiANCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyDQpjb25m aWd1cmU6MjY1MzU6ICQ/ID0gMA0KY29uZmlndXJlOjI2NTM4OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8N CmNvbmZpZ3VyZToyNjU0MTogJD8gPSAwDQpjb25maWd1cmU6MjY3MDU6IGNoZWNraW5nIGZvciBj b3MgaW4gLWxtDQpjb25maWd1cmU6MjY3MzU6IGdjYyAtbyBjb25mdGVzdC5leGUgLU8zICAgY29u ZnRlc3QuYyAtbG0gICA+JjUNCmNvbmZ0ZXN0LmM6NjQ6IHdhcm5pbmc6IGNvbmZsaWN0aW5nIHR5 cGVzIGZvciBidWlsdC1pbiBmdW5jdGlvbiAnY29zJw0NCmNvbmZpZ3VyZToyNjc0MTogJD8gPSAw DQpjb25maWd1cmU6MjY3NDU6IHRlc3QgLXogDQoJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVy cg0KY29uZmlndXJlOjI2NzQ4OiAkPyA9IDANCmNvbmZpZ3VyZToyNjc1MTogdGVzdCAtcyBjb25m dGVzdC5leGUNCmNvbmZpZ3VyZToyNjc1NDogJD8gPSAwDQpjb25maWd1cmU6MjY3Njc6IHJlc3Vs dDogeWVzDQpjb25maWd1cmU6MjY3ODA6IGNoZWNraW5nIGZvciB3b3JraW5nIGFsbG9jYS5oDQpj b25maWd1cmU6MjY4MDE6IGdjYyAtbyBjb25mdGVzdC5leGUgLU8zICAgY29uZnRlc3QuYyAgPiY1 DQpjb25maWd1cmU6MjY4MDc6ICQ/ID0gMA0KY29uZmlndXJlOjI2ODExOiB0ZXN0IC16IA0KCQkJ IHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnINCmNvbmZpZ3VyZToyNjgxNDogJD8gPSAwDQpjb25m aWd1cmU6MjY4MTc6IHRlc3QgLXMgY29uZnRlc3QuZXhlDQpjb25maWd1cmU6MjY4MjA6ICQ/ID0g MA0KY29uZmlndXJlOjI2ODMyOiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjI2ODQzOiBjaGVja2lu ZyBmb3IgYWxsb2NhICh2aWEgZ21wLWltcGwuaCkNCmNvbmZpZ3VyZToyNjg3MjogZ2NjIC1vIGNv bmZ0ZXN0LmV4ZSAtTzMgICBjb25mdGVzdC5jICA+JjUNCmNvbmZpZ3VyZToyNjg3ODogJD8gPSAw DQpjb25maWd1cmU6MjY4ODI6IHRlc3QgLXogDQoJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVy cg0KY29uZmlndXJlOjI2ODg1OiAkPyA9IDANCmNvbmZpZ3VyZToyNjg4ODogdGVzdCAtcyBjb25m dGVzdC5leGUNCmNvbmZpZ3VyZToyNjg5MTogJD8gPSAwDQpjb25maWd1cmU6MjY5MDM6IHJlc3Vs dDogeWVzDQpjb25maWd1cmU6MjY5MTQ6IGNoZWNraW5nIGhvdyB0byBhbGxvY2F0ZSB0ZW1wb3Jh cnkgbWVtb3J5DQpjb25maWd1cmU6MjY5Mzg6IHJlc3VsdDogYWxsb2NhDQpjb25maWd1cmU6Mjcw MTU6IGdjYyAtYyAtTzMgIGNvbmZ0ZXN0LmMgPiY1DQpjb25maWd1cmU6MjcwMjE6ICQ/ID0gMA0K Y29uZmlndXJlOjI3MDI1OiB0ZXN0IC16IA0KCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIN CmNvbmZpZ3VyZToyNzAyODogJD8gPSAwDQpjb25maWd1cmU6MjcwMzE6IHRlc3QgLXMgY29uZnRl c3Qubw0KY29uZmlndXJlOjI3MDM0OiAkPyA9IDANCmNvbmZpZ3VyZToyNzA0NzogY2hlY2tpbmcg d2hldGhlciBieXRlIG9yZGVyaW5nIGlzIGJpZ2VuZGlhbg0KY29uZmlndXJlOjI3MDc0OiBnY2Mg LWMgLU8zICBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjI3MDgwOiAkPyA9IDANCmNvbmZpZ3Vy ZToyNzA4NDogdGVzdCAteiANCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyDQpjb25maWd1 cmU6MjcwODc6ICQ/ID0gMA0KY29uZmlndXJlOjI3MDkwOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8NCmNv bmZpZ3VyZToyNzA5MzogJD8gPSAwDQpjb25maWd1cmU6MjcxMTc6IGdjYyAtYyAtTzMgIGNvbmZ0 ZXN0LmMgPiY1DQpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiBgbWFpbic6DQ0KY29uZnRlc3QuYzo2 NzogZXJyb3I6IGBub3QnIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQ0N CmNvbmZ0ZXN0LmM6Njc6IGVycm9yOiAoRWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVw b3J0ZWQgb25seSBvbmNlDQ0KY29uZnRlc3QuYzo2NzogZXJyb3I6IGZvciBlYWNoIGZ1bmN0aW9u IGl0IGFwcGVhcnMgaW4uKQ0NCmNvbmZ0ZXN0LmM6Njc6IGVycm9yOiBwYXJzZSBlcnJvciBiZWZv cmUgImJpZyINDQpjb25maWd1cmU6MjcxMjM6ICQ/ID0gMQ0KY29uZmlndXJlOiBmYWlsZWQgcHJv Z3JhbSB3YXM6DQp8IC8qIGNvbmZkZWZzLmguICAqLw0KfCANCnwgI2RlZmluZSBQQUNLQUdFX05B TUUgIkdOVSBNUCINCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImdtcCINCnwgI2RlZmluZSBQ QUNLQUdFX1ZFUlNJT04gIjQuMi4yIg0KfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgTVAg NC4yLjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImdtcC1idWdzQHN3b3guY29tIg0K fCAjZGVmaW5lIFBBQ0tBR0UgImdtcCINCnwgI2RlZmluZSBWRVJTSU9OICI0LjIuMiINCnwgI2Rl ZmluZSBXQU5UX0ZGVCAxDQp8ICNkZWZpbmUgSEFWRV9IT1NUX0NQVV9wcGNiZSAxDQp8ICNkZWZp bmUgUFJPVE9UWVBFUyAxDQp8ICNkZWZpbmUgX19QUk9UT1RZUEVTIDENCnwgI2RlZmluZSBTVERD X0hFQURFUlMgMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVf U1lTX1NUQVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxDQp8ICNkZWZpbmUgSEFWRV9T VFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJ TkdTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERJ TlRfSCAxDQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdf SCAxDQp8ICNkZWZpbmUgSEFWRV9ETEZDTl9IIDENCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0K fCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxDQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDEN CnwgI2RlZmluZSBIQVZFX0ZMT0FUX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fSCAxDQp8 ICNkZWZpbmUgSEFWRV9MT0NBTEVfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfTU1BTl9IIDENCnwg I2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQ0K fCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNF X0ggMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9GR0VUQyAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZT Q0FORiAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX09QVEFSRyAxDQp8ICNkZWZpbmUgSEFWRV9ERUNM X1VOR0VUQyAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZGUFJJTlRGIDENCnwgI2RlZmluZSBIQVZF X0RFQ0xfU1lTX0VSUkxJU1QgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9TWVNfTkVSUiAxDQp8ICNk ZWZpbmUgUkVUU0lHVFlQRSB2b2lkDQp8ICNkZWZpbmUgSEFWRV9JTlRNQVhfVCAxDQp8ICNkZWZp bmUgSEFWRV9MT05HX0RPVUJMRSAxDQp8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQ0KfCAjZGVm aW5lIEhBVkVfUFRSRElGRl9UIDENCnwgI2RlZmluZSBIQVZFX1VJTlRfTEVBU1QzMl9UIDENCnwg I2RlZmluZSBIQVZFX1NUUklOR0laRSAxDQp8ICNkZWZpbmUgSEFWRV9TVERBUkcgMQ0KfCAjZGVm aW5lIEhBVkVfQVRUUklCVVRFX0NPTlNUIDENCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9NQUxM T0MgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX01PREUgMQ0KfCAjZGVmaW5lIEhBVkVfQVRU UklCVVRFX05PUkVUVVJOIDENCnwgI2RlZmluZSBIQVZFX0FMTE9DQV9IIDENCnwgI2RlZmluZSBI QVZFX0FMTE9DQSAxDQp8ICNkZWZpbmUgV0FOVF9UTVBfQUxMT0NBIDENCnwgLyogZW5kIGNvbmZk ZWZzLmguICAqLw0KfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+DQp8ICNpbmNsdWRlIDxzeXMvcGFy YW0uaD4NCnwgDQp8IGludA0KfCBtYWluICgpDQp8IHsNCnwgI2lmIEJZVEVfT1JERVIgIT0gQklH X0VORElBTg0KfCAgbm90IGJpZyBlbmRpYW4NCnwgI2VuZGlmDQp8IA0KfCAgIDsNCnwgICByZXR1 cm4gMDsNCnwgfQ0KY29uZmlndXJlOjI3MjU4OiByZXN1bHQ6IG5vDQpjb25maWd1cmU6MjcyODc6 IGNoZWNraW5nIGZvcm1hdCBvZiBgZG91YmxlJyBmbG9hdGluZyBwb2ludA0KY29uZmlndXJlOjI3 MzA1OiBnY2MgLU8zICAtYyBjb25mdGVzdC5jID4mNSAyPiYxDQpjb25maWd1cmU6MjczMDg6ICQ/ ID0gMA0KY29uZmlndXJlOjI3NDc1OiByZXN1bHQ6IElFRUUgbGl0dGxlIGVuZGlhbg0KY29uZmln dXJlOjI3NjA1OiBjaGVja2luZyBmb3IgYWxhcm0NCmNvbmZpZ3VyZToyNzY2MjogZ2NjIC1vIGNv bmZ0ZXN0LmV4ZSAtTzMgICBjb25mdGVzdC5jICA+JjUNCmNvbmZpZ3VyZToyNzY2ODogJD8gPSAw DQpjb25maWd1cmU6Mjc2NzI6IHRlc3QgLXogDQoJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVy cg0KY29uZmlndXJlOjI3Njc1OiAkPyA9IDANCmNvbmZpZ3VyZToyNzY3ODogdGVzdCAtcyBjb25m dGVzdC5leGUNCmNvbmZpZ3VyZToyNzY4MTogJD8gPSAwDQpjb25maWd1cmU6Mjc2OTM6IHJlc3Vs dDogeWVzDQpjb25maWd1cmU6Mjc2MDU6IGNoZWNraW5nIGZvciBhdHRyX2dldA0KY29uZmlndXJl OjI3NjYyOiBnY2MgLW8gY29uZnRlc3QuZXhlIC1PMyAgIGNvbmZ0ZXN0LmMgID4mNQ0KL2N5Z2Ry aXZlL2MvRE9DVU1FfjEvVkNJTX4xLklOQi9MT0NBTFN+MS9UZW1wL2NjdzhqMkNPLm86Y29uZnRl c3QuYzooLnRleHQrMHgyMCk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9hdHRyX2dldCcNDQov Y3lnZHJpdmUvYy9ET0NVTUV+MS9WQ0lNfjEuSU5CL0xPQ0FMU34xL1RlbXAvY2N3OGoyQ08ubzpj b25mdGVzdC5jOiguZGF0YSsweDApOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfYXR0cl9nZXQn DQ0KY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMNDQpjb25maWd1cmU6Mjc2Njg6 ICQ/ID0gMQ0KY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6DQp8IC8qIGNvbmZkZWZzLmgu ICAqLw0KfCANCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBNUCINCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgImdtcCINCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuMi4yIg0KfCAj ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgTVAgNC4yLjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9C VUdSRVBPUlQgImdtcC1idWdzQHN3b3guY29tIg0KfCAjZGVmaW5lIFBBQ0tBR0UgImdtcCINCnwg I2RlZmluZSBWRVJTSU9OICI0LjIuMiINCnwgI2RlZmluZSBXQU5UX0ZGVCAxDQp8ICNkZWZpbmUg SEFWRV9IT1NUX0NQVV9wcGNiZSAxDQp8ICNkZWZpbmUgUFJPVE9UWVBFUyAxDQp8ICNkZWZpbmUg X19QUk9UT1RZUEVTIDENCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIEhBVkVf U1lTX1RZUEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxDQp8ICNkZWZpbmUgSEFW RV9TVERMSUJfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9N RU1PUllfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfSU5U VFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxDQp8ICNkZWZpbmUgSEFWRV9VTklT VERfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9ETEZDTl9I IDENCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElN RSAxDQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDENCnwgI2RlZmluZSBIQVZFX0ZMT0FUX0ggMQ0K fCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fSCAxDQp8ICNkZWZpbmUgSEFWRV9MT0NBTEVfSCAxDQp8 ICNkZWZpbmUgSEFWRV9TWVNfTU1BTl9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEN CnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVTX0gg MQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9G R0VUQyAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZTQ0FORiAxDQp8ICNkZWZpbmUgSEFWRV9ERUNM X09QVEFSRyAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOR0VUQyAxDQp8ICNkZWZpbmUgSEFWRV9E RUNMX1ZGUFJJTlRGIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1lTX0VSUkxJU1QgMQ0KfCAjZGVm aW5lIEhBVkVfREVDTF9TWVNfTkVSUiAxDQp8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkDQp8ICNk ZWZpbmUgSEFWRV9JTlRNQVhfVCAxDQp8ICNkZWZpbmUgSEFWRV9MT05HX0RPVUJMRSAxDQp8ICNk ZWZpbmUgSEFWRV9MT05HX0xPTkcgMQ0KfCAjZGVmaW5lIEhBVkVfUFRSRElGRl9UIDENCnwgI2Rl ZmluZSBIQVZFX1VJTlRfTEVBU1QzMl9UIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR0laRSAxDQp8 ICNkZWZpbmUgSEFWRV9TVERBUkcgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX0NPTlNUIDEN CnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9NQUxMT0MgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklC VVRFX01PREUgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX05PUkVUVVJOIDENCnwgI2RlZmlu ZSBIQVZFX0FMTE9DQV9IIDENCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxDQp8ICNkZWZpbmUgV0FO VF9UTVBfQUxMT0NBIDENCnwgI2RlZmluZSBIQVZFX0xJTUJfTElUVExFX0VORElBTiAxDQp8ICNk ZWZpbmUgSEFWRV9ET1VCTEVfSUVFRV9MSVRUTEVfRU5ESUFOIDENCnwgI2RlZmluZSBIQVZFX0FM QVJNIDENCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLw0KfCAvKiBEZWZpbmUgYXR0cl9nZXQgdG8g YW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBhdHRyX2dl dC4NCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRp bWVvZmRheS4gICovDQp8ICNkZWZpbmUgYXR0cl9nZXQgaW5ub2N1b3VzX2F0dHJfZ2V0DQp8IA0K fCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkg ZmV3IHByb3RvdHlwZXMsDQp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIGF0dHJf Z2V0ICgpOyBiZWxvdy4NCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYg X19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UNCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4g b24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovDQp8IA0KfCAjaWZkZWYgX19TVERDX18NCnwg IyBpbmNsdWRlIDxsaW1pdHMuaD4NCnwgI2Vsc2UNCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4NCnwg I2VuZGlmDQp8IA0KfCAjdW5kZWYgYXR0cl9nZXQNCnwgDQp8IC8qIE92ZXJyaWRlIGFueSBnY2My IGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovDQp8ICNpZmRlZiBfX2Nw bHVzcGx1cw0KfCBleHRlcm4gIkMiDQp8IHsNCnwgI2VuZGlmDQp8IC8qIFdlIHVzZSBjaGFyIGJl Y2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzINCnwgICAgYnVp bHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAg Ki8NCnwgY2hhciBhdHRyX2dldCAoKTsNCnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0 aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cw0KfCAgICAgdG8gYWx3YXlzIGZh aWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQNCnwgICAg IHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxp YXMuICAqLw0KfCAjaWYgZGVmaW5lZCAoX19zdHViX2F0dHJfZ2V0KSB8fCBkZWZpbmVkIChfX3N0 dWJfX19hdHRyX2dldCkNCnwgY2hva2UgbWUNCnwgI2Vsc2UNCnwgY2hhciAoKmYpICgpID0gYXR0 cl9nZXQ7DQp8ICNlbmRpZg0KfCAjaWZkZWYgX19jcGx1c3BsdXMNCnwgfQ0KfCAjZW5kaWYNCnwg DQp8IGludA0KfCBtYWluICgpDQp8IHsNCnwgcmV0dXJuIGYgIT0gYXR0cl9nZXQ7DQp8ICAgOw0K fCAgIHJldHVybiAwOw0KfCB9DQpjb25maWd1cmU6Mjc2OTM6IHJlc3VsdDogbm8NCmNvbmZpZ3Vy ZToyNzYwNTogY2hlY2tpbmcgZm9yIGNsb2NrDQpjb25maWd1cmU6Mjc2NjI6IGdjYyAtbyBjb25m dGVzdC5leGUgLU8zICAgY29uZnRlc3QuYyAgPiY1DQpjb25maWd1cmU6Mjc2Njg6ICQ/ID0gMA0K Y29uZmlndXJlOjI3NjcyOiB0ZXN0IC16IA0KCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIN CmNvbmZpZ3VyZToyNzY3NTogJD8gPSAwDQpjb25maWd1cmU6Mjc2Nzg6IHRlc3QgLXMgY29uZnRl c3QuZXhlDQpjb25maWd1cmU6Mjc2ODE6ICQ/ID0gMA0KY29uZmlndXJlOjI3NjkzOiByZXN1bHQ6 IHllcw0KY29uZmlndXJlOjI3NjA1OiBjaGVja2luZyBmb3IgY2xvY2tfZ2V0dGltZQ0KY29uZmln dXJlOjI3NjYyOiBnY2MgLW8gY29uZnRlc3QuZXhlIC1PMyAgIGNvbmZ0ZXN0LmMgID4mNQ0KY29u ZmlndXJlOjI3NjY4OiAkPyA9IDANCmNvbmZpZ3VyZToyNzY3MjogdGVzdCAteiANCgkJCSB8fCB0 ZXN0ICEgLXMgY29uZnRlc3QuZXJyDQpjb25maWd1cmU6Mjc2NzU6ICQ/ID0gMA0KY29uZmlndXJl OjI3Njc4OiB0ZXN0IC1zIGNvbmZ0ZXN0LmV4ZQ0KY29uZmlndXJlOjI3NjgxOiAkPyA9IDANCmNv bmZpZ3VyZToyNzY5MzogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToyNzYwNTogY2hlY2tpbmcgZm9y IGNwdXRpbWUNCmNvbmZpZ3VyZToyNzY2MjogZ2NjIC1vIGNvbmZ0ZXN0LmV4ZSAtTzMgICBjb25m dGVzdC5jICA+JjUNCi9jeWdkcml2ZS9jL0RPQ1VNRX4xL1ZDSU1+MS5JTkIvTE9DQUxTfjEvVGVt cC9jYzZNRHlJQi5vOmNvbmZ0ZXN0LmM6KC50ZXh0KzB4MjApOiB1bmRlZmluZWQgcmVmZXJlbmNl IHRvIGBfY3B1dGltZScNDQovY3lnZHJpdmUvYy9ET0NVTUV+MS9WQ0lNfjEuSU5CL0xPQ0FMU34x L1RlbXAvY2M2TUR5SUIubzpjb25mdGVzdC5jOiguZGF0YSsweDApOiB1bmRlZmluZWQgcmVmZXJl bmNlIHRvIGBfY3B1dGltZScNDQpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cw0N CmNvbmZpZ3VyZToyNzY2ODogJD8gPSAxDQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoN CnwgLyogY29uZmRlZnMuaC4gICovDQp8IA0KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIE1Q Ig0KfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ21wIg0KfCAjZGVmaW5lIFBBQ0tBR0VfVkVS U0lPTiAiNC4yLjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBNUCA0LjIuMiINCnwg I2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiZ21wLWJ1Z3NAc3dveC5jb20iDQp8ICNkZWZpbmUg UEFDS0FHRSAiZ21wIg0KfCAjZGVmaW5lIFZFUlNJT04gIjQuMi4yIg0KfCAjZGVmaW5lIFdBTlRf RkZUIDENCnwgI2RlZmluZSBIQVZFX0hPU1RfQ1BVX3BwY2JlIDENCnwgI2RlZmluZSBQUk9UT1RZ UEVTIDENCnwgI2RlZmluZSBfX1BST1RPVFlQRVMgMQ0KfCAjZGVmaW5lIFNURENfSEVBREVSUyAx DQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9I IDENCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEN CnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxDQp8 ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDENCnwg I2RlZmluZSBIQVZFX1VOSVNURF9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDENCnwgI2Rl ZmluZSBIQVZFX0RMRkNOX0ggMQ0KfCAjZGVmaW5lIFNURENfSEVBREVSUyAxDQp8ICNkZWZpbmUg VElNRV9XSVRIX1NZU19USU1FIDENCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQ0KfCAjZGVmaW5l IEhBVkVfRkxPQVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19IIDENCnwgI2RlZmluZSBI QVZFX0xPQ0FMRV9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19NTUFOX0ggMQ0KfCAjZGVmaW5lIEhB VkVfU1lTX1BBUkFNX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxDQp8ICNkZWZpbmUg SEFWRV9TWVNfVElNRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxDQp8ICNk ZWZpbmUgSEFWRV9ERUNMX0ZHRVRDIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlNDQU5GIDENCnwg I2RlZmluZSBIQVZFX0RFQ0xfT1BUQVJHIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5HRVRDIDEN CnwgI2RlZmluZSBIQVZFX0RFQ0xfVkZQUklOVEYgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9TWVNf RVJSTElTVCAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NZU19ORVJSIDENCnwgI2RlZmluZSBSRVRT SUdUWVBFIHZvaWQNCnwgI2RlZmluZSBIQVZFX0lOVE1BWF9UIDENCnwgI2RlZmluZSBIQVZFX0xP TkdfRE9VQkxFIDENCnwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxDQp8ICNkZWZpbmUgSEFWRV9Q VFJESUZGX1QgMQ0KfCAjZGVmaW5lIEhBVkVfVUlOVF9MRUFTVDMyX1QgMQ0KfCAjZGVmaW5lIEhB VkVfU1RSSU5HSVpFIDENCnwgI2RlZmluZSBIQVZFX1NUREFSRyAxDQp8ICNkZWZpbmUgSEFWRV9B VFRSSUJVVEVfQ09OU1QgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX01BTExPQyAxDQp8ICNk ZWZpbmUgSEFWRV9BVFRSSUJVVEVfTU9ERSAxDQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfTk9S RVRVUk4gMQ0KfCAjZGVmaW5lIEhBVkVfQUxMT0NBX0ggMQ0KfCAjZGVmaW5lIEhBVkVfQUxMT0NB IDENCnwgI2RlZmluZSBXQU5UX1RNUF9BTExPQ0EgMQ0KfCAjZGVmaW5lIEhBVkVfTElNQl9MSVRU TEVfRU5ESUFOIDENCnwgI2RlZmluZSBIQVZFX0RPVUJMRV9JRUVFX0xJVFRMRV9FTkRJQU4gMQ0K fCAjZGVmaW5lIEhBVkVfQUxBUk0gMQ0KfCAjZGVmaW5lIEhBVkVfQ0xPQ0sgMQ0KfCAjZGVmaW5l IEhBVkVfQ0xPQ0tfR0VUVElNRSAxDQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8NCnwgLyogRGVm aW5lIGNwdXRpbWUgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBk ZWNsYXJlcyBjcHV0aW1lLg0KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4g ZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8NCnwgI2RlZmluZSBjcHV0aW1lIGlubm9jdW91c19j cHV0aW1lDQp8IA0KfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFu ZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsDQp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0 aCBjaGFyIGNwdXRpbWUgKCk7IGJlbG93Lg0KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFz c2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQ0KfCAgICAgPGxpbWl0cy5oPiBl eGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8NCnwgDQp8ICNpZmRlZiBf X1NURENfXw0KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPg0KfCAjZWxzZQ0KfCAjIGluY2x1ZGUgPGFz c2VydC5oPg0KfCAjZW5kaWYNCnwgDQp8ICN1bmRlZiBjcHV0aW1lDQp8IA0KfCAvKiBPdmVycmlk ZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLw0KfCAj aWZkZWYgX19jcGx1c3BsdXMNCnwgZXh0ZXJuICJDIg0KfCB7DQp8ICNlbmRpZg0KfCAvKiBXZSB1 c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2My DQp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGls bCBhcHBseS4gICovDQp8IGNoYXIgY3B1dGltZSAoKTsNCnwgLyogVGhlIEdOVSBDIGxpYnJhcnkg ZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cw0KfCAgICAgdG8g YWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFt ZWQNCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUg aXMgYW4gYWxpYXMuICAqLw0KfCAjaWYgZGVmaW5lZCAoX19zdHViX2NwdXRpbWUpIHx8IGRlZmlu ZWQgKF9fc3R1Yl9fX2NwdXRpbWUpDQp8IGNob2tlIG1lDQp8ICNlbHNlDQp8IGNoYXIgKCpmKSAo KSA9IGNwdXRpbWU7DQp8ICNlbmRpZg0KfCAjaWZkZWYgX19jcGx1c3BsdXMNCnwgfQ0KfCAjZW5k aWYNCnwgDQp8IGludA0KfCBtYWluICgpDQp8IHsNCnwgcmV0dXJuIGYgIT0gY3B1dGltZTsNCnwg ICA7DQp8ICAgcmV0dXJuIDA7DQp8IH0NCmNvbmZpZ3VyZToyNzY5MzogcmVzdWx0OiBubw0KY29u ZmlndXJlOjI3NjA1OiBjaGVja2luZyBmb3IgZ2V0cGFnZXNpemUNCmNvbmZpZ3VyZToyNzY2Mjog Z2NjIC1vIGNvbmZ0ZXN0LmV4ZSAtTzMgICBjb25mdGVzdC5jICA+JjUNCmNvbmZpZ3VyZToyNzY2 ODogJD8gPSAwDQpjb25maWd1cmU6Mjc2NzI6IHRlc3QgLXogDQoJCQkgfHwgdGVzdCAhIC1zIGNv bmZ0ZXN0LmVycg0KY29uZmlndXJlOjI3Njc1OiAkPyA9IDANCmNvbmZpZ3VyZToyNzY3ODogdGVz dCAtcyBjb25mdGVzdC5leGUNCmNvbmZpZ3VyZToyNzY4MTogJD8gPSAwDQpjb25maWd1cmU6Mjc2 OTM6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6Mjc2MDU6IGNoZWNraW5nIGZvciBnZXRydXNhZ2UN CmNvbmZpZ3VyZToyNzY2MjogZ2NjIC1vIGNvbmZ0ZXN0LmV4ZSAtTzMgICBjb25mdGVzdC5jICA+ JjUNCmNvbmZpZ3VyZToyNzY2ODogJD8gPSAwDQpjb25maWd1cmU6Mjc2NzI6IHRlc3QgLXogDQoJ CQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycg0KY29uZmlndXJlOjI3Njc1OiAkPyA9IDANCmNv bmZpZ3VyZToyNzY3ODogdGVzdCAtcyBjb25mdGVzdC5leGUNCmNvbmZpZ3VyZToyNzY4MTogJD8g PSAwDQpjb25maWd1cmU6Mjc2OTM6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6Mjc2MDU6IGNoZWNr aW5nIGZvciBnZXR0aW1lb2ZkYXkNCmNvbmZpZ3VyZToyNzY2MjogZ2NjIC1vIGNvbmZ0ZXN0LmV4 ZSAtTzMgICBjb25mdGVzdC5jICA+JjUNCmNvbmZpZ3VyZToyNzY2ODogJD8gPSAwDQpjb25maWd1 cmU6Mjc2NzI6IHRlc3QgLXogDQoJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycg0KY29uZmln dXJlOjI3Njc1OiAkPyA9IDANCmNvbmZpZ3VyZToyNzY3ODogdGVzdCAtcyBjb25mdGVzdC5leGUN CmNvbmZpZ3VyZToyNzY4MTogJD8gPSAwDQpjb25maWd1cmU6Mjc2OTM6IHJlc3VsdDogeWVzDQpj b25maWd1cmU6Mjc2MDU6IGNoZWNraW5nIGZvciBnZXRzeXNpbmZvDQpjb25maWd1cmU6Mjc2NjI6 IGdjYyAtbyBjb25mdGVzdC5leGUgLU8zICAgY29uZnRlc3QuYyAgPiY1DQovY3lnZHJpdmUvYy9E T0NVTUV+MS9WQ0lNfjEuSU5CL0xPQ0FMU34xL1RlbXAvY2MwMTRGcloubzpjb25mdGVzdC5jOigu dGV4dCsweDIwKTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgX2dldHN5c2luZm8nDQ0KL2N5Z2Ry aXZlL2MvRE9DVU1FfjEvVkNJTX4xLklOQi9MT0NBTFN+MS9UZW1wL2NjMDE0RnJaLm86Y29uZnRl c3QuYzooLmRhdGErMHgwKTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgX2dldHN5c2luZm8nDQ0K Y29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMNDQpjb25maWd1cmU6Mjc2Njg6ICQ/ ID0gMQ0KY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6DQp8IC8qIGNvbmZkZWZzLmguICAq Lw0KfCANCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBNUCINCnwgI2RlZmluZSBQQUNLQUdF X1RBUk5BTUUgImdtcCINCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuMi4yIg0KfCAjZGVm aW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgTVAgNC4yLjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9CVUdS RVBPUlQgImdtcC1idWdzQHN3b3guY29tIg0KfCAjZGVmaW5lIFBBQ0tBR0UgImdtcCINCnwgI2Rl ZmluZSBWRVJTSU9OICI0LjIuMiINCnwgI2RlZmluZSBXQU5UX0ZGVCAxDQp8ICNkZWZpbmUgSEFW RV9IT1NUX0NQVV9wcGNiZSAxDQp8ICNkZWZpbmUgUFJPVE9UWVBFUyAxDQp8ICNkZWZpbmUgX19Q Uk9UT1RZUEVTIDENCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIEhBVkVfU1lT X1RZUEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9T VERMSUJfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9NRU1P UllfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfSU5UVFlQ RVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxDQp8ICNkZWZpbmUgSEFWRV9VTklTVERf SCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9ETEZDTl9IIDEN CnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAx DQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDENCnwgI2RlZmluZSBIQVZFX0ZMT0FUX0ggMQ0KfCAj ZGVmaW5lIEhBVkVfTEFOR0lORk9fSCAxDQp8ICNkZWZpbmUgSEFWRV9MT0NBTEVfSCAxDQp8ICNk ZWZpbmUgSEFWRV9TWVNfTU1BTl9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDENCnwg I2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVTX0ggMQ0K fCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9GR0VU QyAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZTQ0FORiAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX09Q VEFSRyAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOR0VUQyAxDQp8ICNkZWZpbmUgSEFWRV9ERUNM X1ZGUFJJTlRGIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1lTX0VSUkxJU1QgMQ0KfCAjZGVmaW5l IEhBVkVfREVDTF9TWVNfTkVSUiAxDQp8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkDQp8ICNkZWZp bmUgSEFWRV9JTlRNQVhfVCAxDQp8ICNkZWZpbmUgSEFWRV9MT05HX0RPVUJMRSAxDQp8ICNkZWZp bmUgSEFWRV9MT05HX0xPTkcgMQ0KfCAjZGVmaW5lIEhBVkVfUFRSRElGRl9UIDENCnwgI2RlZmlu ZSBIQVZFX1VJTlRfTEVBU1QzMl9UIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR0laRSAxDQp8ICNk ZWZpbmUgSEFWRV9TVERBUkcgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX0NPTlNUIDENCnwg I2RlZmluZSBIQVZFX0FUVFJJQlVURV9NQUxMT0MgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRF X01PREUgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX05PUkVUVVJOIDENCnwgI2RlZmluZSBI QVZFX0FMTE9DQV9IIDENCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxDQp8ICNkZWZpbmUgV0FOVF9U TVBfQUxMT0NBIDENCnwgI2RlZmluZSBIQVZFX0xJTUJfTElUVExFX0VORElBTiAxDQp8ICNkZWZp bmUgSEFWRV9ET1VCTEVfSUVFRV9MSVRUTEVfRU5ESUFOIDENCnwgI2RlZmluZSBIQVZFX0FMQVJN IDENCnwgI2RlZmluZSBIQVZFX0NMT0NLIDENCnwgI2RlZmluZSBIQVZFX0NMT0NLX0dFVFRJTUUg MQ0KfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQ0KfCAjZGVmaW5lIEhBVkVfR0VUUlVTQUdF IDENCnwgI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxDQp8IC8qIGVuZCBjb25mZGVmcy5oLiAg Ki8NCnwgLyogRGVmaW5lIGdldHN5c2luZm8gdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNh c2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXRzeXNpbmZvLg0KfCAgICBGb3IgZXhhbXBsZSwgSFAt VVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8NCnwgI2RlZmluZSBn ZXRzeXNpbmZvIGlubm9jdW91c19nZXRzeXNpbmZvDQp8IA0KfCAvKiBTeXN0ZW0gaGVhZGVyIHRv IGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsDQp8ICAg ICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIGdldHN5c2luZm8gKCk7IGJlbG93Lg0KfCAg ICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVk LCBzaW5jZQ0KfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29t cGlsZXJzLiAgKi8NCnwgDQp8ICNpZmRlZiBfX1NURENfXw0KfCAjIGluY2x1ZGUgPGxpbWl0cy5o Pg0KfCAjZWxzZQ0KfCAjIGluY2x1ZGUgPGFzc2VydC5oPg0KfCAjZW5kaWYNCnwgDQp8ICN1bmRl ZiBnZXRzeXNpbmZvDQp8IA0KfCAvKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5 cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLw0KfCAjaWZkZWYgX19jcGx1c3BsdXMNCnwgZXh0ZXJu ICJDIg0KfCB7DQp8ICNlbmRpZg0KfCAvKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBt YXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyDQp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRz IGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovDQp8IGNoYXIgZ2V0c3lz aW5mbyAoKTsNCnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlv bnMgd2hpY2ggaXQgaW1wbGVtZW50cw0KfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMu ICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQNCnwgICAgIHNvbWV0aGluZyBzdGFy dGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLw0KfCAjaWYg ZGVmaW5lZCAoX19zdHViX2dldHN5c2luZm8pIHx8IGRlZmluZWQgKF9fc3R1Yl9fX2dldHN5c2lu Zm8pDQp8IGNob2tlIG1lDQp8ICNlbHNlDQp8IGNoYXIgKCpmKSAoKSA9IGdldHN5c2luZm87DQp8 ICNlbmRpZg0KfCAjaWZkZWYgX19jcGx1c3BsdXMNCnwgfQ0KfCAjZW5kaWYNCnwgDQp8IGludA0K fCBtYWluICgpDQp8IHsNCnwgcmV0dXJuIGYgIT0gZ2V0c3lzaW5mbzsNCnwgICA7DQp8ICAgcmV0 dXJuIDA7DQp8IH0NCmNvbmZpZ3VyZToyNzY5MzogcmVzdWx0OiBubw0KY29uZmlndXJlOjI3NjA1 OiBjaGVja2luZyBmb3IgbG9jYWxlY29udg0KY29uZmlndXJlOjI3NjYyOiBnY2MgLW8gY29uZnRl c3QuZXhlIC1PMyAgIGNvbmZ0ZXN0LmMgID4mNQ0KY29uZmlndXJlOjI3NjY4OiAkPyA9IDANCmNv bmZpZ3VyZToyNzY3MjogdGVzdCAteiANCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyDQpj b25maWd1cmU6Mjc2NzU6ICQ/ID0gMA0KY29uZmlndXJlOjI3Njc4OiB0ZXN0IC1zIGNvbmZ0ZXN0 LmV4ZQ0KY29uZmlndXJlOjI3NjgxOiAkPyA9IDANCmNvbmZpZ3VyZToyNzY5MzogcmVzdWx0OiB5 ZXMNCmNvbmZpZ3VyZToyNzYwNTogY2hlY2tpbmcgZm9yIG1lbXNldA0KY29uZmlndXJlOjI3NjYy OiBnY2MgLW8gY29uZnRlc3QuZXhlIC1PMyAgIGNvbmZ0ZXN0LmMgID4mNQ0KY29uZnRlc3QuYzo5 Mzogd2FybmluZzogY29uZmxpY3RpbmcgdHlwZXMgZm9yIGJ1aWx0LWluIGZ1bmN0aW9uICdtZW1z ZXQnDQ0KY29uZmlndXJlOjI3NjY4OiAkPyA9IDANCmNvbmZpZ3VyZToyNzY3MjogdGVzdCAteiAN CgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyDQpjb25maWd1cmU6Mjc2NzU6ICQ/ID0gMA0K Y29uZmlndXJlOjI3Njc4OiB0ZXN0IC1zIGNvbmZ0ZXN0LmV4ZQ0KY29uZmlndXJlOjI3NjgxOiAk PyA9IDANCmNvbmZpZ3VyZToyNzY5MzogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToyNzYwNTogY2hl Y2tpbmcgZm9yIG1tYXANCmNvbmZpZ3VyZToyNzY2MjogZ2NjIC1vIGNvbmZ0ZXN0LmV4ZSAtTzMg ICBjb25mdGVzdC5jICA+JjUNCmNvbmZpZ3VyZToyNzY2ODogJD8gPSAwDQpjb25maWd1cmU6Mjc2 NzI6IHRlc3QgLXogDQoJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycg0KY29uZmlndXJlOjI3 Njc1OiAkPyA9IDANCmNvbmZpZ3VyZToyNzY3ODogdGVzdCAtcyBjb25mdGVzdC5leGUNCmNvbmZp Z3VyZToyNzY4MTogJD8gPSAwDQpjb25maWd1cmU6Mjc2OTM6IHJlc3VsdDogeWVzDQpjb25maWd1 cmU6Mjc2MDU6IGNoZWNraW5nIGZvciBtcHJvdGVjdA0KY29uZmlndXJlOjI3NjYyOiBnY2MgLW8g Y29uZnRlc3QuZXhlIC1PMyAgIGNvbmZ0ZXN0LmMgID4mNQ0KY29uZmlndXJlOjI3NjY4OiAkPyA9 IDANCmNvbmZpZ3VyZToyNzY3MjogdGVzdCAteiANCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3Qu ZXJyDQpjb25maWd1cmU6Mjc2NzU6ICQ/ID0gMA0KY29uZmlndXJlOjI3Njc4OiB0ZXN0IC1zIGNv bmZ0ZXN0LmV4ZQ0KY29uZmlndXJlOjI3NjgxOiAkPyA9IDANCmNvbmZpZ3VyZToyNzY5MzogcmVz dWx0OiB5ZXMNCmNvbmZpZ3VyZToyNzYwNTogY2hlY2tpbmcgZm9yIG5sX2xhbmdpbmZvDQpjb25m aWd1cmU6Mjc2NjI6IGdjYyAtbyBjb25mdGVzdC5leGUgLU8zICAgY29uZnRlc3QuYyAgPiY1DQpj b25maWd1cmU6Mjc2Njg6ICQ/ID0gMA0KY29uZmlndXJlOjI3NjcyOiB0ZXN0IC16IA0KCQkJIHx8 IHRlc3QgISAtcyBjb25mdGVzdC5lcnINCmNvbmZpZ3VyZToyNzY3NTogJD8gPSAwDQpjb25maWd1 cmU6Mjc2Nzg6IHRlc3QgLXMgY29uZnRlc3QuZXhlDQpjb25maWd1cmU6Mjc2ODE6ICQ/ID0gMA0K Y29uZmlndXJlOjI3NjkzOiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjI3NjA1OiBjaGVja2luZyBm b3Igb2JzdGFja192cHJpbnRmDQpjb25maWd1cmU6Mjc2NjI6IGdjYyAtbyBjb25mdGVzdC5leGUg LU8zICAgY29uZnRlc3QuYyAgPiY1DQovY3lnZHJpdmUvYy9ET0NVTUV+MS9WQ0lNfjEuSU5CL0xP Q0FMU34xL1RlbXAvY2NvdGR2Tmkubzpjb25mdGVzdC5jOigudGV4dCsweDIwKTogdW5kZWZpbmVk IHJlZmVyZW5jZSB0byBgX29ic3RhY2tfdnByaW50ZicNDQovY3lnZHJpdmUvYy9ET0NVTUV+MS9W Q0lNfjEuSU5CL0xPQ0FMU34xL1RlbXAvY2NvdGR2Tmkubzpjb25mdGVzdC5jOiguZGF0YSsweDAp OiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfb2JzdGFja192cHJpbnRmJw0NCmNvbGxlY3QyOiBs ZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzDQ0KY29uZmlndXJlOjI3NjY4OiAkPyA9IDENCmNvbmZp Z3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOg0KfCAvKiBjb25mZGVmcy5oLiAgKi8NCnwgDQp8ICNk ZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgTVAiDQp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJn bXAiDQp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjIuMiINCnwgI2RlZmluZSBQQUNLQUdF X1NUUklORyAiR05VIE1QIDQuMi4yIg0KfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJnbXAt YnVnc0Bzd294LmNvbSINCnwgI2RlZmluZSBQQUNLQUdFICJnbXAiDQp8ICNkZWZpbmUgVkVSU0lP TiAiNC4yLjIiDQp8ICNkZWZpbmUgV0FOVF9GRlQgMQ0KfCAjZGVmaW5lIEhBVkVfSE9TVF9DUFVf cHBjYmUgMQ0KfCAjZGVmaW5lIFBST1RPVFlQRVMgMQ0KfCAjZGVmaW5lIF9fUFJPVE9UWVBFUyAx DQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDENCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEN CnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQ0K fCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQ0KfCAj ZGVmaW5lIEhBVkVfU1RSSU5HU19IIDENCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQ0KfCAj ZGVmaW5lIEhBVkVfU1RESU5UX0ggMQ0KfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQ0KfCAjZGVm aW5lIEhBVkVfU1RSSU5HX0ggMQ0KfCAjZGVmaW5lIEhBVkVfRExGQ05fSCAxDQp8ICNkZWZpbmUg U1REQ19IRUFERVJTIDENCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQ0KfCAjZGVmaW5l IEhBVkVfRkNOVExfSCAxDQp8ICNkZWZpbmUgSEFWRV9GTE9BVF9IIDENCnwgI2RlZmluZSBIQVZF X0xBTkdJTkZPX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTE9DQUxFX0ggMQ0KfCAjZGVmaW5lIEhBVkVf U1lTX01NQU5fSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxDQp8ICNkZWZpbmUgSEFW RV9TWVNfVElNRV9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19USU1FU19IIDENCnwgI2RlZmluZSBI QVZFX1NZU19SRVNPVVJDRV9IIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkdFVEMgMQ0KfCAjZGVm aW5lIEhBVkVfREVDTF9GU0NBTkYgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9PUFRBUkcgMQ0KfCAj ZGVmaW5lIEhBVkVfREVDTF9VTkdFVEMgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9WRlBSSU5URiAx DQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NZU19FUlJMSVNUIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xf U1lTX05FUlIgMQ0KfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZA0KfCAjZGVmaW5lIEhBVkVfSU5U TUFYX1QgMQ0KfCAjZGVmaW5lIEhBVkVfTE9OR19ET1VCTEUgMQ0KfCAjZGVmaW5lIEhBVkVfTE9O R19MT05HIDENCnwgI2RlZmluZSBIQVZFX1BUUkRJRkZfVCAxDQp8ICNkZWZpbmUgSEFWRV9VSU5U X0xFQVNUMzJfVCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdJWkUgMQ0KfCAjZGVmaW5lIEhBVkVf U1REQVJHIDENCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9DT05TVCAxDQp8ICNkZWZpbmUgSEFW RV9BVFRSSUJVVEVfTUFMTE9DIDENCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9NT0RFIDENCnwg I2RlZmluZSBIQVZFX0FUVFJJQlVURV9OT1JFVFVSTiAxDQp8ICNkZWZpbmUgSEFWRV9BTExPQ0Ff SCAxDQp8ICNkZWZpbmUgSEFWRV9BTExPQ0EgMQ0KfCAjZGVmaW5lIFdBTlRfVE1QX0FMTE9DQSAx DQp8ICNkZWZpbmUgSEFWRV9MSU1CX0xJVFRMRV9FTkRJQU4gMQ0KfCAjZGVmaW5lIEhBVkVfRE9V QkxFX0lFRUVfTElUVExFX0VORElBTiAxDQp8ICNkZWZpbmUgSEFWRV9BTEFSTSAxDQp8ICNkZWZp bmUgSEFWRV9DTE9DSyAxDQp8ICNkZWZpbmUgSEFWRV9DTE9DS19HRVRUSU1FIDENCnwgI2RlZmlu ZSBIQVZFX0dFVFBBR0VTSVpFIDENCnwgI2RlZmluZSBIQVZFX0dFVFJVU0FHRSAxDQp8ICNkZWZp bmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQ0KfCAjZGVmaW5lIEhBVkVfTE9DQUxFQ09OViAxDQp8ICNk ZWZpbmUgSEFWRV9NRU1TRVQgMQ0KfCAjZGVmaW5lIEhBVkVfTU1BUCAxDQp8ICNkZWZpbmUgSEFW RV9NUFJPVEVDVCAxDQp8ICNkZWZpbmUgSEFWRV9OTF9MQU5HSU5GTyAxDQp8IC8qIGVuZCBjb25m ZGVmcy5oLiAgKi8NCnwgLyogRGVmaW5lIG9ic3RhY2tfdnByaW50ZiB0byBhbiBpbm5vY3VvdXMg dmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIG9ic3RhY2tfdnByaW50Zi4NCnwg ICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRh eS4gICovDQp8ICNkZWZpbmUgb2JzdGFja192cHJpbnRmIGlubm9jdW91c19vYnN0YWNrX3Zwcmlu dGYNCnwgDQp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhv cGVmdWxseSBmZXcgcHJvdG90eXBlcywNCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNo YXIgb2JzdGFja192cHJpbnRmICgpOyBiZWxvdy4NCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRv IDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UNCnwgICAgIDxsaW1pdHMu aD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovDQp8IA0KfCAjaWZk ZWYgX19TVERDX18NCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4NCnwgI2Vsc2UNCnwgIyBpbmNsdWRl IDxhc3NlcnQuaD4NCnwgI2VuZGlmDQp8IA0KfCAjdW5kZWYgb2JzdGFja192cHJpbnRmDQp8IA0K fCAvKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJy b3IuICAqLw0KfCAjaWZkZWYgX19jcGx1c3BsdXMNCnwgZXh0ZXJuICJDIg0KfCB7DQp8ICNlbmRp Zg0KfCAvKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5 cGUgb2YgYSBnY2MyDQp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlw ZSB3b3VsZCBzdGlsbCBhcHBseS4gICovDQp8IGNoYXIgb2JzdGFja192cHJpbnRmICgpOw0KfCAv KiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBp bXBsZW1lbnRzDQp8ICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rp b25zIGFyZSBhY3R1YWxseSBuYW1lZA0KfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18g YW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovDQp8ICNpZiBkZWZpbmVkIChfX3N0 dWJfb2JzdGFja192cHJpbnRmKSB8fCBkZWZpbmVkIChfX3N0dWJfX19vYnN0YWNrX3ZwcmludGYp DQp8IGNob2tlIG1lDQp8ICNlbHNlDQp8IGNoYXIgKCpmKSAoKSA9IG9ic3RhY2tfdnByaW50ZjsN CnwgI2VuZGlmDQp8ICNpZmRlZiBfX2NwbHVzcGx1cw0KfCB9DQp8ICNlbmRpZg0KfCANCnwgaW50 DQp8IG1haW4gKCkNCnwgew0KfCByZXR1cm4gZiAhPSBvYnN0YWNrX3ZwcmludGY7DQp8ICAgOw0K fCAgIHJldHVybiAwOw0KfCB9DQpjb25maWd1cmU6Mjc2OTM6IHJlc3VsdDogbm8NCmNvbmZpZ3Vy ZToyNzYwNTogY2hlY2tpbmcgZm9yIHBvcGVuDQpjb25maWd1cmU6Mjc2NjI6IGdjYyAtbyBjb25m dGVzdC5leGUgLU8zICAgY29uZnRlc3QuYyAgPiY1DQpjb25maWd1cmU6Mjc2Njg6ICQ/ID0gMA0K Y29uZmlndXJlOjI3NjcyOiB0ZXN0IC16IA0KCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIN CmNvbmZpZ3VyZToyNzY3NTogJD8gPSAwDQpjb25maWd1cmU6Mjc2Nzg6IHRlc3QgLXMgY29uZnRl c3QuZXhlDQpjb25maWd1cmU6Mjc2ODE6ICQ/ID0gMA0KY29uZmlndXJlOjI3NjkzOiByZXN1bHQ6 IHllcw0KY29uZmlndXJlOjI3NjA1OiBjaGVja2luZyBmb3IgcHJvY2Vzc29yX2luZm8NCmNvbmZp Z3VyZToyNzY2MjogZ2NjIC1vIGNvbmZ0ZXN0LmV4ZSAtTzMgICBjb25mdGVzdC5jICA+JjUNCi9j eWdkcml2ZS9jL0RPQ1VNRX4xL1ZDSU1+MS5JTkIvTE9DQUxTfjEvVGVtcC9jYzhVeW5ReC5vOmNv bmZ0ZXN0LmM6KC50ZXh0KzB4MjApOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfcHJvY2Vzc29y X2luZm8nDQ0KL2N5Z2RyaXZlL2MvRE9DVU1FfjEvVkNJTX4xLklOQi9MT0NBTFN+MS9UZW1wL2Nj OFV5blF4Lm86Y29uZnRlc3QuYzooLmRhdGErMHgwKTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBg X3Byb2Nlc3Nvcl9pbmZvJw0NCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzDQ0K Y29uZmlndXJlOjI3NjY4OiAkPyA9IDENCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOg0K fCAvKiBjb25mZGVmcy5oLiAgKi8NCnwgDQp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgTVAi DQp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJnbXAiDQp8ICNkZWZpbmUgUEFDS0FHRV9WRVJT SU9OICI0LjIuMiINCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIE1QIDQuMi4yIg0KfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJnbXAtYnVnc0Bzd294LmNvbSINCnwgI2RlZmluZSBQ QUNLQUdFICJnbXAiDQp8ICNkZWZpbmUgVkVSU0lPTiAiNC4yLjIiDQp8ICNkZWZpbmUgV0FOVF9G RlQgMQ0KfCAjZGVmaW5lIEhBVkVfSE9TVF9DUFVfcHBjYmUgMQ0KfCAjZGVmaW5lIFBST1RPVFlQ RVMgMQ0KfCAjZGVmaW5lIF9fUFJPVE9UWVBFUyAxDQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEN CnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0gg MQ0KfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQ0K fCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDENCnwg I2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQ0KfCAj ZGVmaW5lIEhBVkVfVU5JU1REX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQ0KfCAjZGVm aW5lIEhBVkVfRExGQ05fSCAxDQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDENCnwgI2RlZmluZSBU SU1FX1dJVEhfU1lTX1RJTUUgMQ0KfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxDQp8ICNkZWZpbmUg SEFWRV9GTE9BVF9IIDENCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX0ggMQ0KfCAjZGVmaW5lIEhB VkVfTE9DQUxFX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxDQp8ICNkZWZpbmUgSEFW RV9TWVNfUEFSQU1fSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDENCnwgI2RlZmluZSBI QVZFX1NZU19USU1FU19IIDENCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDENCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfRkdFVEMgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9GU0NBTkYgMQ0KfCAj ZGVmaW5lIEhBVkVfREVDTF9PUFRBUkcgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9VTkdFVEMgMQ0K fCAjZGVmaW5lIEhBVkVfREVDTF9WRlBSSU5URiAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NZU19F UlJMSVNUIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1lTX05FUlIgMQ0KfCAjZGVmaW5lIFJFVFNJ R1RZUEUgdm9pZA0KfCAjZGVmaW5lIEhBVkVfSU5UTUFYX1QgMQ0KfCAjZGVmaW5lIEhBVkVfTE9O R19ET1VCTEUgMQ0KfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDENCnwgI2RlZmluZSBIQVZFX1BU UkRJRkZfVCAxDQp8ICNkZWZpbmUgSEFWRV9VSU5UX0xFQVNUMzJfVCAxDQp8ICNkZWZpbmUgSEFW RV9TVFJJTkdJWkUgMQ0KfCAjZGVmaW5lIEhBVkVfU1REQVJHIDENCnwgI2RlZmluZSBIQVZFX0FU VFJJQlVURV9DT05TVCAxDQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfTUFMTE9DIDENCnwgI2Rl ZmluZSBIQVZFX0FUVFJJQlVURV9NT0RFIDENCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9OT1JF VFVSTiAxDQp8ICNkZWZpbmUgSEFWRV9BTExPQ0FfSCAxDQp8ICNkZWZpbmUgSEFWRV9BTExPQ0Eg MQ0KfCAjZGVmaW5lIFdBTlRfVE1QX0FMTE9DQSAxDQp8ICNkZWZpbmUgSEFWRV9MSU1CX0xJVFRM RV9FTkRJQU4gMQ0KfCAjZGVmaW5lIEhBVkVfRE9VQkxFX0lFRUVfTElUVExFX0VORElBTiAxDQp8 ICNkZWZpbmUgSEFWRV9BTEFSTSAxDQp8ICNkZWZpbmUgSEFWRV9DTE9DSyAxDQp8ICNkZWZpbmUg SEFWRV9DTE9DS19HRVRUSU1FIDENCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDENCnwgI2Rl ZmluZSBIQVZFX0dFVFJVU0FHRSAxDQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQ0KfCAj ZGVmaW5lIEhBVkVfTE9DQUxFQ09OViAxDQp8ICNkZWZpbmUgSEFWRV9NRU1TRVQgMQ0KfCAjZGVm aW5lIEhBVkVfTU1BUCAxDQp8ICNkZWZpbmUgSEFWRV9NUFJPVEVDVCAxDQp8ICNkZWZpbmUgSEFW RV9OTF9MQU5HSU5GTyAxDQp8ICNkZWZpbmUgSEFWRV9QT1BFTiAxDQp8IC8qIGVuZCBjb25mZGVm cy5oLiAgKi8NCnwgLyogRGVmaW5lIHByb2Nlc3Nvcl9pbmZvIHRvIGFuIGlubm9jdW91cyB2YXJp YW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgcHJvY2Vzc29yX2luZm8uDQp8ICAgIEZv ciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAq Lw0KfCAjZGVmaW5lIHByb2Nlc3Nvcl9pbmZvIGlubm9jdW91c19wcm9jZXNzb3JfaW5mbw0KfCAN CnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5 IGZldyBwcm90b3R5cGVzLA0KfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBwcm9j ZXNzb3JfaW5mbyAoKTsgYmVsb3cuDQp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0 Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlDQp8ICAgICA8bGltaXRzLmg+IGV4aXN0 cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLw0KfCANCnwgI2lmZGVmIF9fU1RE Q19fDQp8ICMgaW5jbHVkZSA8bGltaXRzLmg+DQp8ICNlbHNlDQp8ICMgaW5jbHVkZSA8YXNzZXJ0 Lmg+DQp8ICNlbmRpZg0KfCANCnwgI3VuZGVmIHByb2Nlc3Nvcl9pbmZvDQp8IA0KfCAvKiBPdmVy cmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLw0K fCAjaWZkZWYgX19jcGx1c3BsdXMNCnwgZXh0ZXJuICJDIg0KfCB7DQp8ICNlbmRpZg0KfCAvKiBX ZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBn Y2MyDQp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBz dGlsbCBhcHBseS4gICovDQp8IGNoYXIgcHJvY2Vzc29yX2luZm8gKCk7DQp8IC8qIFRoZSBHTlUg QyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMN CnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFj dHVhbGx5IG5hbWVkDQp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5v cm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8NCnwgI2lmIGRlZmluZWQgKF9fc3R1Yl9wcm9jZXNz b3JfaW5mbykgfHwgZGVmaW5lZCAoX19zdHViX19fcHJvY2Vzc29yX2luZm8pDQp8IGNob2tlIG1l DQp8ICNlbHNlDQp8IGNoYXIgKCpmKSAoKSA9IHByb2Nlc3Nvcl9pbmZvOw0KfCAjZW5kaWYNCnwg I2lmZGVmIF9fY3BsdXNwbHVzDQp8IH0NCnwgI2VuZGlmDQp8IA0KfCBpbnQNCnwgbWFpbiAoKQ0K fCB7DQp8IHJldHVybiBmICE9IHByb2Nlc3Nvcl9pbmZvOw0KfCAgIDsNCnwgICByZXR1cm4gMDsN CnwgfQ0KY29uZmlndXJlOjI3NjkzOiByZXN1bHQ6IG5vDQpjb25maWd1cmU6Mjc2MDU6IGNoZWNr aW5nIGZvciBwc3RhdF9nZXRwcm9jZXNzb3INCmNvbmZpZ3VyZToyNzY2MjogZ2NjIC1vIGNvbmZ0 ZXN0LmV4ZSAtTzMgICBjb25mdGVzdC5jICA+JjUNCi9jeWdkcml2ZS9jL0RPQ1VNRX4xL1ZDSU1+ MS5JTkIvTE9DQUxTfjEvVGVtcC9jY3dvNk1kTi5vOmNvbmZ0ZXN0LmM6KC50ZXh0KzB4MjApOiB1 bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfcHN0YXRfZ2V0cHJvY2Vzc29yJw0NCi9jeWdkcml2ZS9j L0RPQ1VNRX4xL1ZDSU1+MS5JTkIvTE9DQUxTfjEvVGVtcC9jY3dvNk1kTi5vOmNvbmZ0ZXN0LmM6 KC5kYXRhKzB4MCk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9wc3RhdF9nZXRwcm9jZXNzb3In DQ0KY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMNDQpjb25maWd1cmU6Mjc2Njg6 ICQ/ID0gMQ0KY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6DQp8IC8qIGNvbmZkZWZzLmgu ICAqLw0KfCANCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBNUCINCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgImdtcCINCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuMi4yIg0KfCAj ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgTVAgNC4yLjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9C VUdSRVBPUlQgImdtcC1idWdzQHN3b3guY29tIg0KfCAjZGVmaW5lIFBBQ0tBR0UgImdtcCINCnwg I2RlZmluZSBWRVJTSU9OICI0LjIuMiINCnwgI2RlZmluZSBXQU5UX0ZGVCAxDQp8ICNkZWZpbmUg SEFWRV9IT1NUX0NQVV9wcGNiZSAxDQp8ICNkZWZpbmUgUFJPVE9UWVBFUyAxDQp8ICNkZWZpbmUg X19QUk9UT1RZUEVTIDENCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIEhBVkVf U1lTX1RZUEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxDQp8ICNkZWZpbmUgSEFW RV9TVERMSUJfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9N RU1PUllfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfSU5U VFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxDQp8ICNkZWZpbmUgSEFWRV9VTklT VERfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9ETEZDTl9I IDENCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElN RSAxDQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDENCnwgI2RlZmluZSBIQVZFX0ZMT0FUX0ggMQ0K fCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fSCAxDQp8ICNkZWZpbmUgSEFWRV9MT0NBTEVfSCAxDQp8 ICNkZWZpbmUgSEFWRV9TWVNfTU1BTl9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEN CnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVTX0gg MQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9G R0VUQyAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZTQ0FORiAxDQp8ICNkZWZpbmUgSEFWRV9ERUNM X09QVEFSRyAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOR0VUQyAxDQp8ICNkZWZpbmUgSEFWRV9E RUNMX1ZGUFJJTlRGIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1lTX0VSUkxJU1QgMQ0KfCAjZGVm aW5lIEhBVkVfREVDTF9TWVNfTkVSUiAxDQp8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkDQp8ICNk ZWZpbmUgSEFWRV9JTlRNQVhfVCAxDQp8ICNkZWZpbmUgSEFWRV9MT05HX0RPVUJMRSAxDQp8ICNk ZWZpbmUgSEFWRV9MT05HX0xPTkcgMQ0KfCAjZGVmaW5lIEhBVkVfUFRSRElGRl9UIDENCnwgI2Rl ZmluZSBIQVZFX1VJTlRfTEVBU1QzMl9UIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR0laRSAxDQp8 ICNkZWZpbmUgSEFWRV9TVERBUkcgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX0NPTlNUIDEN CnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9NQUxMT0MgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklC VVRFX01PREUgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX05PUkVUVVJOIDENCnwgI2RlZmlu ZSBIQVZFX0FMTE9DQV9IIDENCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxDQp8ICNkZWZpbmUgV0FO VF9UTVBfQUxMT0NBIDENCnwgI2RlZmluZSBIQVZFX0xJTUJfTElUVExFX0VORElBTiAxDQp8ICNk ZWZpbmUgSEFWRV9ET1VCTEVfSUVFRV9MSVRUTEVfRU5ESUFOIDENCnwgI2RlZmluZSBIQVZFX0FM QVJNIDENCnwgI2RlZmluZSBIQVZFX0NMT0NLIDENCnwgI2RlZmluZSBIQVZFX0NMT0NLX0dFVFRJ TUUgMQ0KfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQ0KfCAjZGVmaW5lIEhBVkVfR0VUUlVT QUdFIDENCnwgI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxDQp8ICNkZWZpbmUgSEFWRV9MT0NB TEVDT05WIDENCnwgI2RlZmluZSBIQVZFX01FTVNFVCAxDQp8ICNkZWZpbmUgSEFWRV9NTUFQIDEN CnwgI2RlZmluZSBIQVZFX01QUk9URUNUIDENCnwgI2RlZmluZSBIQVZFX05MX0xBTkdJTkZPIDEN CnwgI2RlZmluZSBIQVZFX1BPUEVOIDENCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLw0KfCAvKiBE ZWZpbmUgcHN0YXRfZ2V0cHJvY2Vzc29yIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNl IDxsaW1pdHMuaD4gZGVjbGFyZXMgcHN0YXRfZ2V0cHJvY2Vzc29yLg0KfCAgICBGb3IgZXhhbXBs ZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8NCnwgI2Rl ZmluZSBwc3RhdF9nZXRwcm9jZXNzb3IgaW5ub2N1b3VzX3BzdGF0X2dldHByb2Nlc3Nvcg0KfCAN CnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5 IGZldyBwcm90b3R5cGVzLA0KfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBwc3Rh dF9nZXRwcm9jZXNzb3IgKCk7IGJlbG93Lg0KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFz c2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQ0KfCAgICAgPGxpbWl0cy5oPiBl eGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8NCnwgDQp8ICNpZmRlZiBf X1NURENfXw0KfCAjIGluY2x1ZGUgPGxpbWl0cy5oPg0KfCAjZWxzZQ0KfCAjIGluY2x1ZGUgPGFz c2VydC5oPg0KfCAjZW5kaWYNCnwgDQp8ICN1bmRlZiBwc3RhdF9nZXRwcm9jZXNzb3INCnwgDQp8 IC8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJv ci4gICovDQp8ICNpZmRlZiBfX2NwbHVzcGx1cw0KfCBleHRlcm4gIkMiDQp8IHsNCnwgI2VuZGlm DQp8IC8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlw ZSBvZiBhIGdjYzINCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBl IHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8NCnwgY2hhciBwc3RhdF9nZXRwcm9jZXNzb3IgKCk7DQp8 IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0 IGltcGxlbWVudHMNCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5j dGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkDQp8ICAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBf XyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8NCnwgI2lmIGRlZmluZWQgKF9f c3R1Yl9wc3RhdF9nZXRwcm9jZXNzb3IpIHx8IGRlZmluZWQgKF9fc3R1Yl9fX3BzdGF0X2dldHBy b2Nlc3NvcikNCnwgY2hva2UgbWUNCnwgI2Vsc2UNCnwgY2hhciAoKmYpICgpID0gcHN0YXRfZ2V0 cHJvY2Vzc29yOw0KfCAjZW5kaWYNCnwgI2lmZGVmIF9fY3BsdXNwbHVzDQp8IH0NCnwgI2VuZGlm DQp8IA0KfCBpbnQNCnwgbWFpbiAoKQ0KfCB7DQp8IHJldHVybiBmICE9IHBzdGF0X2dldHByb2Nl c3NvcjsNCnwgICA7DQp8ICAgcmV0dXJuIDA7DQp8IH0NCmNvbmZpZ3VyZToyNzY5MzogcmVzdWx0 OiBubw0KY29uZmlndXJlOjI3NjA1OiBjaGVja2luZyBmb3IgcmFpc2UNCmNvbmZpZ3VyZToyNzY2 MjogZ2NjIC1vIGNvbmZ0ZXN0LmV4ZSAtTzMgICBjb25mdGVzdC5jICA+JjUNCmNvbmZpZ3VyZToy NzY2ODogJD8gPSAwDQpjb25maWd1cmU6Mjc2NzI6IHRlc3QgLXogDQoJCQkgfHwgdGVzdCAhIC1z IGNvbmZ0ZXN0LmVycg0KY29uZmlndXJlOjI3Njc1OiAkPyA9IDANCmNvbmZpZ3VyZToyNzY3ODog dGVzdCAtcyBjb25mdGVzdC5leGUNCmNvbmZpZ3VyZToyNzY4MTogJD8gPSAwDQpjb25maWd1cmU6 Mjc2OTM6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6Mjc2MDU6IGNoZWNraW5nIGZvciByZWFkX3Jl YWxfdGltZQ0KY29uZmlndXJlOjI3NjYyOiBnY2MgLW8gY29uZnRlc3QuZXhlIC1PMyAgIGNvbmZ0 ZXN0LmMgID4mNQ0KL2N5Z2RyaXZlL2MvRE9DVU1FfjEvVkNJTX4xLklOQi9MT0NBTFN+MS9UZW1w L2NjZ0hXUE1pLm86Y29uZnRlc3QuYzooLnRleHQrMHgyMCk6IHVuZGVmaW5lZCByZWZlcmVuY2Ug dG8gYF9yZWFkX3JlYWxfdGltZScNDQovY3lnZHJpdmUvYy9ET0NVTUV+MS9WQ0lNfjEuSU5CL0xP Q0FMU34xL1RlbXAvY2NnSFdQTWkubzpjb25mdGVzdC5jOiguZGF0YSsweDApOiB1bmRlZmluZWQg cmVmZXJlbmNlIHRvIGBfcmVhZF9yZWFsX3RpbWUnDQ0KY29sbGVjdDI6IGxkIHJldHVybmVkIDEg ZXhpdCBzdGF0dXMNDQpjb25maWd1cmU6Mjc2Njg6ICQ/ID0gMQ0KY29uZmlndXJlOiBmYWlsZWQg cHJvZ3JhbSB3YXM6DQp8IC8qIGNvbmZkZWZzLmguICAqLw0KfCANCnwgI2RlZmluZSBQQUNLQUdF X05BTUUgIkdOVSBNUCINCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImdtcCINCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIjQuMi4yIg0KfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUg TVAgNC4yLjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImdtcC1idWdzQHN3b3guY29t Ig0KfCAjZGVmaW5lIFBBQ0tBR0UgImdtcCINCnwgI2RlZmluZSBWRVJTSU9OICI0LjIuMiINCnwg I2RlZmluZSBXQU5UX0ZGVCAxDQp8ICNkZWZpbmUgSEFWRV9IT1NUX0NQVV9wcGNiZSAxDQp8ICNk ZWZpbmUgUFJPVE9UWVBFUyAxDQp8ICNkZWZpbmUgX19QUk9UT1RZUEVTIDENCnwgI2RlZmluZSBT VERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQ0KfCAjZGVmaW5lIEhB VkVfU1lTX1NUQVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxDQp8ICNkZWZpbmUgSEFW RV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxDQp8ICNkZWZpbmUgSEFWRV9T VFJJTkdTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9T VERJTlRfSCAxDQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJ TkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9ETEZDTl9IIDENCnwgI2RlZmluZSBTVERDX0hFQURFUlMg MQ0KfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxDQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9I IDENCnwgI2RlZmluZSBIQVZFX0ZMT0FUX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fSCAx DQp8ICNkZWZpbmUgSEFWRV9MT0NBTEVfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfTU1BTl9IIDEN CnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0gg MQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09V UkNFX0ggMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9GR0VUQyAxDQp8ICNkZWZpbmUgSEFWRV9ERUNM X0ZTQ0FORiAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX09QVEFSRyAxDQp8ICNkZWZpbmUgSEFWRV9E RUNMX1VOR0VUQyAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZGUFJJTlRGIDENCnwgI2RlZmluZSBI QVZFX0RFQ0xfU1lTX0VSUkxJU1QgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9TWVNfTkVSUiAxDQp8 ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkDQp8ICNkZWZpbmUgSEFWRV9JTlRNQVhfVCAxDQp8ICNk ZWZpbmUgSEFWRV9MT05HX0RPVUJMRSAxDQp8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQ0KfCAj ZGVmaW5lIEhBVkVfUFRSRElGRl9UIDENCnwgI2RlZmluZSBIQVZFX1VJTlRfTEVBU1QzMl9UIDEN CnwgI2RlZmluZSBIQVZFX1NUUklOR0laRSAxDQp8ICNkZWZpbmUgSEFWRV9TVERBUkcgMQ0KfCAj ZGVmaW5lIEhBVkVfQVRUUklCVVRFX0NPTlNUIDENCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9N QUxMT0MgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX01PREUgMQ0KfCAjZGVmaW5lIEhBVkVf QVRUUklCVVRFX05PUkVUVVJOIDENCnwgI2RlZmluZSBIQVZFX0FMTE9DQV9IIDENCnwgI2RlZmlu ZSBIQVZFX0FMTE9DQSAxDQp8ICNkZWZpbmUgV0FOVF9UTVBfQUxMT0NBIDENCnwgI2RlZmluZSBI QVZFX0xJTUJfTElUVExFX0VORElBTiAxDQp8ICNkZWZpbmUgSEFWRV9ET1VCTEVfSUVFRV9MSVRU TEVfRU5ESUFOIDENCnwgI2RlZmluZSBIQVZFX0FMQVJNIDENCnwgI2RlZmluZSBIQVZFX0NMT0NL IDENCnwgI2RlZmluZSBIQVZFX0NMT0NLX0dFVFRJTUUgMQ0KfCAjZGVmaW5lIEhBVkVfR0VUUEFH RVNJWkUgMQ0KfCAjZGVmaW5lIEhBVkVfR0VUUlVTQUdFIDENCnwgI2RlZmluZSBIQVZFX0dFVFRJ TUVPRkRBWSAxDQp8ICNkZWZpbmUgSEFWRV9MT0NBTEVDT05WIDENCnwgI2RlZmluZSBIQVZFX01F TVNFVCAxDQp8ICNkZWZpbmUgSEFWRV9NTUFQIDENCnwgI2RlZmluZSBIQVZFX01QUk9URUNUIDEN CnwgI2RlZmluZSBIQVZFX05MX0xBTkdJTkZPIDENCnwgI2RlZmluZSBIQVZFX1BPUEVOIDENCnwg I2RlZmluZSBIQVZFX1JBSVNFIDENCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLw0KfCAvKiBEZWZp bmUgcmVhZF9yZWFsX3RpbWUgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0 cy5oPiBkZWNsYXJlcyByZWFkX3JlYWxfdGltZS4NCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDEx aSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovDQp8ICNkZWZpbmUgcmVhZF9y ZWFsX3RpbWUgaW5ub2N1b3VzX3JlYWRfcmVhbF90aW1lDQp8IA0KfCAvKiBTeXN0ZW0gaGVhZGVy IHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsDQp8 ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIHJlYWRfcmVhbF90aW1lICgpOyBiZWxv dy4NCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMg ZGVmaW5lZCwgc2luY2UNCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5k aW5nIGNvbXBpbGVycy4gICovDQp8IA0KfCAjaWZkZWYgX19TVERDX18NCnwgIyBpbmNsdWRlIDxs aW1pdHMuaD4NCnwgI2Vsc2UNCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4NCnwgI2VuZGlmDQp8IA0K fCAjdW5kZWYgcmVhZF9yZWFsX3RpbWUNCnwgDQp8IC8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVy bmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovDQp8ICNpZmRlZiBfX2NwbHVzcGx1 cw0KfCBleHRlcm4gIkMiDQp8IHsNCnwgI2VuZGlmDQp8IC8qIFdlIHVzZSBjaGFyIGJlY2F1c2Ug aW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzINCnwgICAgYnVpbHRpbiBh bmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8NCnwg Y2hhciByZWFkX3JlYWxfdGltZSAoKTsNCnwgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0 aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cw0KfCAgICAgdG8gYWx3YXlzIGZh aWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQNCnwgICAg IHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxp YXMuICAqLw0KfCAjaWYgZGVmaW5lZCAoX19zdHViX3JlYWRfcmVhbF90aW1lKSB8fCBkZWZpbmVk IChfX3N0dWJfX19yZWFkX3JlYWxfdGltZSkNCnwgY2hva2UgbWUNCnwgI2Vsc2UNCnwgY2hhciAo KmYpICgpID0gcmVhZF9yZWFsX3RpbWU7DQp8ICNlbmRpZg0KfCAjaWZkZWYgX19jcGx1c3BsdXMN CnwgfQ0KfCAjZW5kaWYNCnwgDQp8IGludA0KfCBtYWluICgpDQp8IHsNCnwgcmV0dXJuIGYgIT0g cmVhZF9yZWFsX3RpbWU7DQp8ICAgOw0KfCAgIHJldHVybiAwOw0KfCB9DQpjb25maWd1cmU6Mjc2 OTM6IHJlc3VsdDogbm8NCmNvbmZpZ3VyZToyNzYwNTogY2hlY2tpbmcgZm9yIHNpZ2FjdGlvbg0K Y29uZmlndXJlOjI3NjYyOiBnY2MgLW8gY29uZnRlc3QuZXhlIC1PMyAgIGNvbmZ0ZXN0LmMgID4m NQ0KY29uZmlndXJlOjI3NjY4OiAkPyA9IDANCmNvbmZpZ3VyZToyNzY3MjogdGVzdCAteiANCgkJ CSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyDQpjb25maWd1cmU6Mjc2NzU6ICQ/ID0gMA0KY29u ZmlndXJlOjI3Njc4OiB0ZXN0IC1zIGNvbmZ0ZXN0LmV4ZQ0KY29uZmlndXJlOjI3NjgxOiAkPyA9 IDANCmNvbmZpZ3VyZToyNzY5MzogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToyNzYwNTogY2hlY2tp bmcgZm9yIHNpZ2FsdHN0YWNrDQpjb25maWd1cmU6Mjc2NjI6IGdjYyAtbyBjb25mdGVzdC5leGUg LU8zICAgY29uZnRlc3QuYyAgPiY1DQovY3lnZHJpdmUvYy9ET0NVTUV+MS9WQ0lNfjEuSU5CL0xP Q0FMU34xL1RlbXAvY2MyeGFoZmcubzpjb25mdGVzdC5jOigudGV4dCsweDIwKTogdW5kZWZpbmVk IHJlZmVyZW5jZSB0byBgX3NpZ2FsdHN0YWNrJw0NCi9jeWdkcml2ZS9jL0RPQ1VNRX4xL1ZDSU1+ MS5JTkIvTE9DQUxTfjEvVGVtcC9jYzJ4YWhmZy5vOmNvbmZ0ZXN0LmM6KC5kYXRhKzB4MCk6IHVu ZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9zaWdhbHRzdGFjaycNDQpjb2xsZWN0MjogbGQgcmV0dXJu ZWQgMSBleGl0IHN0YXR1cw0NCmNvbmZpZ3VyZToyNzY2ODogJD8gPSAxDQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoNCnwgLyogY29uZmRlZnMuaC4gICovDQp8IA0KfCAjZGVmaW5lIFBB Q0tBR0VfTkFNRSAiR05VIE1QIg0KfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ21wIg0KfCAj ZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC4yLjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcg IkdOVSBNUCA0LjIuMiINCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiZ21wLWJ1Z3NAc3dv eC5jb20iDQp8ICNkZWZpbmUgUEFDS0FHRSAiZ21wIg0KfCAjZGVmaW5lIFZFUlNJT04gIjQuMi4y Ig0KfCAjZGVmaW5lIFdBTlRfRkZUIDENCnwgI2RlZmluZSBIQVZFX0hPU1RfQ1BVX3BwY2JlIDEN CnwgI2RlZmluZSBQUk9UT1RZUEVTIDENCnwgI2RlZmluZSBfX1BST1RPVFlQRVMgMQ0KfCAjZGVm aW5lIFNURENfSEVBREVSUyAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxDQp8ICNkZWZp bmUgSEFWRV9TWVNfU1RBVF9IIDENCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDENCnwgI2RlZmlu ZSBIQVZFX1NUUklOR19IIDENCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDENCnwgI2RlZmluZSBI QVZFX1NUUklOR1NfSCAxDQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDENCnwgI2RlZmluZSBI QVZFX1NURElOVF9IIDENCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDENCnwgI2RlZmluZSBIQVZF X1NUUklOR19IIDENCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQ0KfCAjZGVmaW5lIFNURENfSEVB REVSUyAxDQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDENCnwgI2RlZmluZSBIQVZFX0ZD TlRMX0ggMQ0KfCAjZGVmaW5lIEhBVkVfRkxPQVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5G T19IIDENCnwgI2RlZmluZSBIQVZFX0xPQ0FMRV9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19NTUFO X0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RJ TUVfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNf UkVTT1VSQ0VfSCAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZHRVRDIDENCnwgI2RlZmluZSBIQVZF X0RFQ0xfRlNDQU5GIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfT1BUQVJHIDENCnwgI2RlZmluZSBI QVZFX0RFQ0xfVU5HRVRDIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfVkZQUklOVEYgMQ0KfCAjZGVm aW5lIEhBVkVfREVDTF9TWVNfRVJSTElTVCAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NZU19ORVJS IDENCnwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQNCnwgI2RlZmluZSBIQVZFX0lOVE1BWF9UIDEN CnwgI2RlZmluZSBIQVZFX0xPTkdfRE9VQkxFIDENCnwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAx DQp8ICNkZWZpbmUgSEFWRV9QVFJESUZGX1QgMQ0KfCAjZGVmaW5lIEhBVkVfVUlOVF9MRUFTVDMy X1QgMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HSVpFIDENCnwgI2RlZmluZSBIQVZFX1NUREFSRyAx DQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfQ09OU1QgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklC VVRFX01BTExPQyAxDQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfTU9ERSAxDQp8ICNkZWZpbmUg SEFWRV9BVFRSSUJVVEVfTk9SRVRVUk4gMQ0KfCAjZGVmaW5lIEhBVkVfQUxMT0NBX0ggMQ0KfCAj ZGVmaW5lIEhBVkVfQUxMT0NBIDENCnwgI2RlZmluZSBXQU5UX1RNUF9BTExPQ0EgMQ0KfCAjZGVm aW5lIEhBVkVfTElNQl9MSVRUTEVfRU5ESUFOIDENCnwgI2RlZmluZSBIQVZFX0RPVUJMRV9JRUVF X0xJVFRMRV9FTkRJQU4gMQ0KfCAjZGVmaW5lIEhBVkVfQUxBUk0gMQ0KfCAjZGVmaW5lIEhBVkVf Q0xPQ0sgMQ0KfCAjZGVmaW5lIEhBVkVfQ0xPQ0tfR0VUVElNRSAxDQp8ICNkZWZpbmUgSEFWRV9H RVRQQUdFU0laRSAxDQp8ICNkZWZpbmUgSEFWRV9HRVRSVVNBR0UgMQ0KfCAjZGVmaW5lIEhBVkVf R0VUVElNRU9GREFZIDENCnwgI2RlZmluZSBIQVZFX0xPQ0FMRUNPTlYgMQ0KfCAjZGVmaW5lIEhB VkVfTUVNU0VUIDENCnwgI2RlZmluZSBIQVZFX01NQVAgMQ0KfCAjZGVmaW5lIEhBVkVfTVBST1RF Q1QgMQ0KfCAjZGVmaW5lIEhBVkVfTkxfTEFOR0lORk8gMQ0KfCAjZGVmaW5lIEhBVkVfUE9QRU4g MQ0KfCAjZGVmaW5lIEhBVkVfUkFJU0UgMQ0KfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDENCnwg LyogZW5kIGNvbmZkZWZzLmguICAqLw0KfCAvKiBEZWZpbmUgc2lnYWx0c3RhY2sgdG8gYW4gaW5u b2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBzaWdhbHRzdGFjay4N CnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVv ZmRheS4gICovDQp8ICNkZWZpbmUgc2lnYWx0c3RhY2sgaW5ub2N1b3VzX3NpZ2FsdHN0YWNrDQp8 IA0KfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVs bHkgZmV3IHByb3RvdHlwZXMsDQp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIHNp Z2FsdHN0YWNrICgpOyBiZWxvdy4NCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQu aD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UNCnwgICAgIDxsaW1pdHMuaD4gZXhpc3Rz IGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovDQp8IA0KfCAjaWZkZWYgX19TVERD X18NCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4NCnwgI2Vsc2UNCnwgIyBpbmNsdWRlIDxhc3NlcnQu aD4NCnwgI2VuZGlmDQp8IA0KfCAjdW5kZWYgc2lnYWx0c3RhY2sNCnwgDQp8IC8qIE92ZXJyaWRl IGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovDQp8ICNp ZmRlZiBfX2NwbHVzcGx1cw0KfCBleHRlcm4gIkMiDQp8IHsNCnwgI2VuZGlmDQp8IC8qIFdlIHVz ZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIN CnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxs IGFwcGx5LiAgKi8NCnwgY2hhciBzaWdhbHRzdGFjayAoKTsNCnwgLyogVGhlIEdOVSBDIGxpYnJh cnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cw0KfCAgICAg dG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkg bmFtZWQNCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5h bWUgaXMgYW4gYWxpYXMuICAqLw0KfCAjaWYgZGVmaW5lZCAoX19zdHViX3NpZ2FsdHN0YWNrKSB8 fCBkZWZpbmVkIChfX3N0dWJfX19zaWdhbHRzdGFjaykNCnwgY2hva2UgbWUNCnwgI2Vsc2UNCnwg Y2hhciAoKmYpICgpID0gc2lnYWx0c3RhY2s7DQp8ICNlbmRpZg0KfCAjaWZkZWYgX19jcGx1c3Bs dXMNCnwgfQ0KfCAjZW5kaWYNCnwgDQp8IGludA0KfCBtYWluICgpDQp8IHsNCnwgcmV0dXJuIGYg IT0gc2lnYWx0c3RhY2s7DQp8ICAgOw0KfCAgIHJldHVybiAwOw0KfCB9DQpjb25maWd1cmU6Mjc2 OTM6IHJlc3VsdDogbm8NCmNvbmZpZ3VyZToyNzYwNTogY2hlY2tpbmcgZm9yIHNpZ3N0YWNrDQpj b25maWd1cmU6Mjc2NjI6IGdjYyAtbyBjb25mdGVzdC5leGUgLU8zICAgY29uZnRlc3QuYyAgPiY1 DQovY3lnZHJpdmUvYy9ET0NVTUV+MS9WQ0lNfjEuSU5CL0xPQ0FMU34xL1RlbXAvY2NVa3V2akQu bzpjb25mdGVzdC5jOigudGV4dCsweDIwKTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgX3NpZ3N0 YWNrJw0NCi9jeWdkcml2ZS9jL0RPQ1VNRX4xL1ZDSU1+MS5JTkIvTE9DQUxTfjEvVGVtcC9jY1Vr dXZqRC5vOmNvbmZ0ZXN0LmM6KC5kYXRhKzB4MCk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9z aWdzdGFjaycNDQpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cw0NCmNvbmZpZ3Vy ZToyNzY2ODogJD8gPSAxDQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoNCnwgLyogY29u ZmRlZnMuaC4gICovDQp8IA0KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIE1QIg0KfCAjZGVm aW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ21wIg0KfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC4y LjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBNUCA0LjIuMiINCnwgI2RlZmluZSBQ QUNLQUdFX0JVR1JFUE9SVCAiZ21wLWJ1Z3NAc3dveC5jb20iDQp8ICNkZWZpbmUgUEFDS0FHRSAi Z21wIg0KfCAjZGVmaW5lIFZFUlNJT04gIjQuMi4yIg0KfCAjZGVmaW5lIFdBTlRfRkZUIDENCnwg I2RlZmluZSBIQVZFX0hPU1RfQ1BVX3BwY2JlIDENCnwgI2RlZmluZSBQUk9UT1RZUEVTIDENCnwg I2RlZmluZSBfX1BST1RPVFlQRVMgMQ0KfCAjZGVmaW5lIFNURENfSEVBREVSUyAxDQp8ICNkZWZp bmUgSEFWRV9TWVNfVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDENCnwgI2Rl ZmluZSBIQVZFX1NURExJQl9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDENCnwgI2RlZmlu ZSBIQVZFX01FTU9SWV9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxDQp8ICNkZWZpbmUg SEFWRV9JTlRUWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDENCnwgI2RlZmluZSBI QVZFX1VOSVNURF9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDENCnwgI2RlZmluZSBIQVZF X0RMRkNOX0ggMQ0KfCAjZGVmaW5lIFNURENfSEVBREVSUyAxDQp8ICNkZWZpbmUgVElNRV9XSVRI X1NZU19USU1FIDENCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQ0KfCAjZGVmaW5lIEhBVkVfRkxP QVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19IIDENCnwgI2RlZmluZSBIQVZFX0xPQ0FM RV9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19NTUFOX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1BB UkFNX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNf VElNRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxDQp8ICNkZWZpbmUgSEFW RV9ERUNMX0ZHRVRDIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlNDQU5GIDENCnwgI2RlZmluZSBI QVZFX0RFQ0xfT1BUQVJHIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5HRVRDIDENCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfVkZQUklOVEYgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9TWVNfRVJSTElTVCAx DQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NZU19ORVJSIDENCnwgI2RlZmluZSBSRVRTSUdUWVBFIHZv aWQNCnwgI2RlZmluZSBIQVZFX0lOVE1BWF9UIDENCnwgI2RlZmluZSBIQVZFX0xPTkdfRE9VQkxF IDENCnwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxDQp8ICNkZWZpbmUgSEFWRV9QVFJESUZGX1Qg MQ0KfCAjZGVmaW5lIEhBVkVfVUlOVF9MRUFTVDMyX1QgMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5H SVpFIDENCnwgI2RlZmluZSBIQVZFX1NUREFSRyAxDQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVf Q09OU1QgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX01BTExPQyAxDQp8ICNkZWZpbmUgSEFW RV9BVFRSSUJVVEVfTU9ERSAxDQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfTk9SRVRVUk4gMQ0K fCAjZGVmaW5lIEhBVkVfQUxMT0NBX0ggMQ0KfCAjZGVmaW5lIEhBVkVfQUxMT0NBIDENCnwgI2Rl ZmluZSBXQU5UX1RNUF9BTExPQ0EgMQ0KfCAjZGVmaW5lIEhBVkVfTElNQl9MSVRUTEVfRU5ESUFO IDENCnwgI2RlZmluZSBIQVZFX0RPVUJMRV9JRUVFX0xJVFRMRV9FTkRJQU4gMQ0KfCAjZGVmaW5l IEhBVkVfQUxBUk0gMQ0KfCAjZGVmaW5lIEhBVkVfQ0xPQ0sgMQ0KfCAjZGVmaW5lIEhBVkVfQ0xP Q0tfR0VUVElNRSAxDQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxDQp8ICNkZWZpbmUgSEFW RV9HRVRSVVNBR0UgMQ0KfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDENCnwgI2RlZmluZSBI QVZFX0xPQ0FMRUNPTlYgMQ0KfCAjZGVmaW5lIEhBVkVfTUVNU0VUIDENCnwgI2RlZmluZSBIQVZF X01NQVAgMQ0KfCAjZGVmaW5lIEhBVkVfTVBST1RFQ1QgMQ0KfCAjZGVmaW5lIEhBVkVfTkxfTEFO R0lORk8gMQ0KfCAjZGVmaW5lIEhBVkVfUE9QRU4gMQ0KfCAjZGVmaW5lIEhBVkVfUkFJU0UgMQ0K fCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDENCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLw0KfCAv KiBEZWZpbmUgc2lnc3RhY2sgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0 cy5oPiBkZWNsYXJlcyBzaWdzdGFjay4NCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGlt aXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovDQp8ICNkZWZpbmUgc2lnc3RhY2sgaW5u b2N1b3VzX3NpZ3N0YWNrDQp8IA0KfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIg bWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsDQp8ICAgICB3aGljaCBjYW4gY29u ZmxpY3Qgd2l0aCBjaGFyIHNpZ3N0YWNrICgpOyBiZWxvdy4NCnwgICAgIFByZWZlciA8bGltaXRz Lmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UNCnwgICAgIDxs aW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovDQp8IA0K fCAjaWZkZWYgX19TVERDX18NCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4NCnwgI2Vsc2UNCnwgIyBp bmNsdWRlIDxhc3NlcnQuaD4NCnwgI2VuZGlmDQp8IA0KfCAjdW5kZWYgc2lnc3RhY2sNCnwgDQp8 IC8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJv ci4gICovDQp8ICNpZmRlZiBfX2NwbHVzcGx1cw0KfCBleHRlcm4gIkMiDQp8IHsNCnwgI2VuZGlm DQp8IC8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlw ZSBvZiBhIGdjYzINCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBl IHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8NCnwgY2hhciBzaWdzdGFjayAoKTsNCnwgLyogVGhlIEdO VSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50 cw0KfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUg YWN0dWFsbHkgbmFtZWQNCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUg bm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLw0KfCAjaWYgZGVmaW5lZCAoX19zdHViX3NpZ3N0 YWNrKSB8fCBkZWZpbmVkIChfX3N0dWJfX19zaWdzdGFjaykNCnwgY2hva2UgbWUNCnwgI2Vsc2UN CnwgY2hhciAoKmYpICgpID0gc2lnc3RhY2s7DQp8ICNlbmRpZg0KfCAjaWZkZWYgX19jcGx1c3Bs dXMNCnwgfQ0KfCAjZW5kaWYNCnwgDQp8IGludA0KfCBtYWluICgpDQp8IHsNCnwgcmV0dXJuIGYg IT0gc2lnc3RhY2s7DQp8ICAgOw0KfCAgIHJldHVybiAwOw0KfCB9DQpjb25maWd1cmU6Mjc2OTM6 IHJlc3VsdDogbm8NCmNvbmZpZ3VyZToyNzYwNTogY2hlY2tpbmcgZm9yIHN5c3NnaQ0KY29uZmln dXJlOjI3NjYyOiBnY2MgLW8gY29uZnRlc3QuZXhlIC1PMyAgIGNvbmZ0ZXN0LmMgID4mNQ0KL2N5 Z2RyaXZlL2MvRE9DVU1FfjEvVkNJTX4xLklOQi9MT0NBTFN+MS9UZW1wL2NjdTljazVjLm86Y29u ZnRlc3QuYzooLnRleHQrMHgyMCk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9zeXNzZ2knDQ0K L2N5Z2RyaXZlL2MvRE9DVU1FfjEvVkNJTX4xLklOQi9MT0NBTFN+MS9UZW1wL2NjdTljazVjLm86 Y29uZnRlc3QuYzooLmRhdGErMHgwKTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgX3N5c3NnaScN DQpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cw0NCmNvbmZpZ3VyZToyNzY2ODog JD8gPSAxDQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoNCnwgLyogY29uZmRlZnMuaC4g ICovDQp8IA0KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIE1QIg0KfCAjZGVmaW5lIFBBQ0tB R0VfVEFSTkFNRSAiZ21wIg0KfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC4yLjIiDQp8ICNk ZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBNUCA0LjIuMiINCnwgI2RlZmluZSBQQUNLQUdFX0JV R1JFUE9SVCAiZ21wLWJ1Z3NAc3dveC5jb20iDQp8ICNkZWZpbmUgUEFDS0FHRSAiZ21wIg0KfCAj ZGVmaW5lIFZFUlNJT04gIjQuMi4yIg0KfCAjZGVmaW5lIFdBTlRfRkZUIDENCnwgI2RlZmluZSBI QVZFX0hPU1RfQ1BVX3BwY2JlIDENCnwgI2RlZmluZSBQUk9UT1RZUEVTIDENCnwgI2RlZmluZSBf X1BST1RPVFlQRVMgMQ0KfCAjZGVmaW5lIFNURENfSEVBREVSUyAxDQp8ICNkZWZpbmUgSEFWRV9T WVNfVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDENCnwgI2RlZmluZSBIQVZF X1NURExJQl9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDENCnwgI2RlZmluZSBIQVZFX01F TU9SWV9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxDQp8ICNkZWZpbmUgSEFWRV9JTlRU WVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDENCnwgI2RlZmluZSBIQVZFX1VOSVNU RF9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDENCnwgI2RlZmluZSBIQVZFX0RMRkNOX0gg MQ0KfCAjZGVmaW5lIFNURENfSEVBREVSUyAxDQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1F IDENCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQ0KfCAjZGVmaW5lIEhBVkVfRkxPQVRfSCAxDQp8 ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19IIDENCnwgI2RlZmluZSBIQVZFX0xPQ0FMRV9IIDENCnwg I2RlZmluZSBIQVZFX1NZU19NTUFOX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQ0K fCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRVNfSCAx DQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZH RVRDIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlNDQU5GIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xf T1BUQVJHIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5HRVRDIDENCnwgI2RlZmluZSBIQVZFX0RF Q0xfVkZQUklOVEYgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9TWVNfRVJSTElTVCAxDQp8ICNkZWZp bmUgSEFWRV9ERUNMX1NZU19ORVJSIDENCnwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQNCnwgI2Rl ZmluZSBIQVZFX0lOVE1BWF9UIDENCnwgI2RlZmluZSBIQVZFX0xPTkdfRE9VQkxFIDENCnwgI2Rl ZmluZSBIQVZFX0xPTkdfTE9ORyAxDQp8ICNkZWZpbmUgSEFWRV9QVFJESUZGX1QgMQ0KfCAjZGVm aW5lIEhBVkVfVUlOVF9MRUFTVDMyX1QgMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HSVpFIDENCnwg I2RlZmluZSBIQVZFX1NUREFSRyAxDQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfQ09OU1QgMQ0K fCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX01BTExPQyAxDQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJV VEVfTU9ERSAxDQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfTk9SRVRVUk4gMQ0KfCAjZGVmaW5l IEhBVkVfQUxMT0NBX0ggMQ0KfCAjZGVmaW5lIEhBVkVfQUxMT0NBIDENCnwgI2RlZmluZSBXQU5U X1RNUF9BTExPQ0EgMQ0KfCAjZGVmaW5lIEhBVkVfTElNQl9MSVRUTEVfRU5ESUFOIDENCnwgI2Rl ZmluZSBIQVZFX0RPVUJMRV9JRUVFX0xJVFRMRV9FTkRJQU4gMQ0KfCAjZGVmaW5lIEhBVkVfQUxB Uk0gMQ0KfCAjZGVmaW5lIEhBVkVfQ0xPQ0sgMQ0KfCAjZGVmaW5lIEhBVkVfQ0xPQ0tfR0VUVElN RSAxDQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxDQp8ICNkZWZpbmUgSEFWRV9HRVRSVVNB R0UgMQ0KfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDENCnwgI2RlZmluZSBIQVZFX0xPQ0FM RUNPTlYgMQ0KfCAjZGVmaW5lIEhBVkVfTUVNU0VUIDENCnwgI2RlZmluZSBIQVZFX01NQVAgMQ0K fCAjZGVmaW5lIEhBVkVfTVBST1RFQ1QgMQ0KfCAjZGVmaW5lIEhBVkVfTkxfTEFOR0lORk8gMQ0K fCAjZGVmaW5lIEhBVkVfUE9QRU4gMQ0KfCAjZGVmaW5lIEhBVkVfUkFJU0UgMQ0KfCAjZGVmaW5l IEhBVkVfU0lHQUNUSU9OIDENCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLw0KfCAvKiBEZWZpbmUg c3lzc2dpIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFy ZXMgc3lzc2dpLg0KfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFy ZXMgZ2V0dGltZW9mZGF5LiAgKi8NCnwgI2RlZmluZSBzeXNzZ2kgaW5ub2N1b3VzX3N5c3NnaQ0K fCANCnwgLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1 bGx5IGZldyBwcm90b3R5cGVzLA0KfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBz eXNzZ2kgKCk7IGJlbG93Lg0KfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBp ZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQ0KfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZl biBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8NCnwgDQp8ICNpZmRlZiBfX1NURENfXw0K fCAjIGluY2x1ZGUgPGxpbWl0cy5oPg0KfCAjZWxzZQ0KfCAjIGluY2x1ZGUgPGFzc2VydC5oPg0K fCAjZW5kaWYNCnwgDQp8ICN1bmRlZiBzeXNzZ2kNCnwgDQp8IC8qIE92ZXJyaWRlIGFueSBnY2My IGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovDQp8ICNpZmRlZiBfX2Nw bHVzcGx1cw0KfCBleHRlcm4gIkMiDQp8IHsNCnwgI2VuZGlmDQp8IC8qIFdlIHVzZSBjaGFyIGJl Y2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzINCnwgICAgYnVp bHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAg Ki8NCnwgY2hhciBzeXNzZ2kgKCk7DQp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhp cyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMNCnwgICAgIHRvIGFsd2F5cyBmYWls IHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkDQp8ICAgICBz b21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFz LiAgKi8NCnwgI2lmIGRlZmluZWQgKF9fc3R1Yl9zeXNzZ2kpIHx8IGRlZmluZWQgKF9fc3R1Yl9f X3N5c3NnaSkNCnwgY2hva2UgbWUNCnwgI2Vsc2UNCnwgY2hhciAoKmYpICgpID0gc3lzc2dpOw0K fCAjZW5kaWYNCnwgI2lmZGVmIF9fY3BsdXNwbHVzDQp8IH0NCnwgI2VuZGlmDQp8IA0KfCBpbnQN CnwgbWFpbiAoKQ0KfCB7DQp8IHJldHVybiBmICE9IHN5c3NnaTsNCnwgICA7DQp8ICAgcmV0dXJu IDA7DQp8IH0NCmNvbmZpZ3VyZToyNzY5MzogcmVzdWx0OiBubw0KY29uZmlndXJlOjI3NjA1OiBj aGVja2luZyBmb3Igc3RyY2hyDQpjb25maWd1cmU6Mjc2NjI6IGdjYyAtbyBjb25mdGVzdC5leGUg LU8zICAgY29uZnRlc3QuYyAgPiY1DQpjb25mdGVzdC5jOjEwMDogd2FybmluZzogY29uZmxpY3Rp bmcgdHlwZXMgZm9yIGJ1aWx0LWluIGZ1bmN0aW9uICdzdHJjaHInDQ0KY29uZmlndXJlOjI3NjY4 OiAkPyA9IDANCmNvbmZpZ3VyZToyNzY3MjogdGVzdCAteiANCgkJCSB8fCB0ZXN0ICEgLXMgY29u ZnRlc3QuZXJyDQpjb25maWd1cmU6Mjc2NzU6ICQ/ID0gMA0KY29uZmlndXJlOjI3Njc4OiB0ZXN0 IC1zIGNvbmZ0ZXN0LmV4ZQ0KY29uZmlndXJlOjI3NjgxOiAkPyA9IDANCmNvbmZpZ3VyZToyNzY5 MzogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToyNzYwNTogY2hlY2tpbmcgZm9yIHN0cmVycm9yDQpj b25maWd1cmU6Mjc2NjI6IGdjYyAtbyBjb25mdGVzdC5leGUgLU8zICAgY29uZnRlc3QuYyAgPiY1 DQpjb25maWd1cmU6Mjc2Njg6ICQ/ID0gMA0KY29uZmlndXJlOjI3NjcyOiB0ZXN0IC16IA0KCQkJ IHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnINCmNvbmZpZ3VyZToyNzY3NTogJD8gPSAwDQpjb25m aWd1cmU6Mjc2Nzg6IHRlc3QgLXMgY29uZnRlc3QuZXhlDQpjb25maWd1cmU6Mjc2ODE6ICQ/ID0g MA0KY29uZmlndXJlOjI3NjkzOiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjI3NjA1OiBjaGVja2lu ZyBmb3Igc3Rybmxlbg0KY29uZmlndXJlOjI3NjYyOiBnY2MgLW8gY29uZnRlc3QuZXhlIC1PMyAg IGNvbmZ0ZXN0LmMgID4mNQ0KY29uZmlndXJlOjI3NjY4OiAkPyA9IDANCmNvbmZpZ3VyZToyNzY3 MjogdGVzdCAteiANCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyDQpjb25maWd1cmU6Mjc2 NzU6ICQ/ID0gMA0KY29uZmlndXJlOjI3Njc4OiB0ZXN0IC1zIGNvbmZ0ZXN0LmV4ZQ0KY29uZmln dXJlOjI3NjgxOiAkPyA9IDANCmNvbmZpZ3VyZToyNzY5MzogcmVzdWx0OiB5ZXMNCmNvbmZpZ3Vy ZToyNzYwNTogY2hlY2tpbmcgZm9yIHN0cnRvbA0KY29uZmlndXJlOjI3NjYyOiBnY2MgLW8gY29u ZnRlc3QuZXhlIC1PMyAgIGNvbmZ0ZXN0LmMgID4mNQ0KY29uZmlndXJlOjI3NjY4OiAkPyA9IDAN CmNvbmZpZ3VyZToyNzY3MjogdGVzdCAteiANCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJy DQpjb25maWd1cmU6Mjc2NzU6ICQ/ID0gMA0KY29uZmlndXJlOjI3Njc4OiB0ZXN0IC1zIGNvbmZ0 ZXN0LmV4ZQ0KY29uZmlndXJlOjI3NjgxOiAkPyA9IDANCmNvbmZpZ3VyZToyNzY5MzogcmVzdWx0 OiB5ZXMNCmNvbmZpZ3VyZToyNzYwNTogY2hlY2tpbmcgZm9yIHN0cnRvdWwNCmNvbmZpZ3VyZToy NzY2MjogZ2NjIC1vIGNvbmZ0ZXN0LmV4ZSAtTzMgICBjb25mdGVzdC5jICA+JjUNCmNvbmZpZ3Vy ZToyNzY2ODogJD8gPSAwDQpjb25maWd1cmU6Mjc2NzI6IHRlc3QgLXogDQoJCQkgfHwgdGVzdCAh IC1zIGNvbmZ0ZXN0LmVycg0KY29uZmlndXJlOjI3Njc1OiAkPyA9IDANCmNvbmZpZ3VyZToyNzY3 ODogdGVzdCAtcyBjb25mdGVzdC5leGUNCmNvbmZpZ3VyZToyNzY4MTogJD8gPSAwDQpjb25maWd1 cmU6Mjc2OTM6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6Mjc2MDU6IGNoZWNraW5nIGZvciBzeXNj b25mDQpjb25maWd1cmU6Mjc2NjI6IGdjYyAtbyBjb25mdGVzdC5leGUgLU8zICAgY29uZnRlc3Qu YyAgPiY1DQpjb25maWd1cmU6Mjc2Njg6ICQ/ID0gMA0KY29uZmlndXJlOjI3NjcyOiB0ZXN0IC16 IA0KCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnINCmNvbmZpZ3VyZToyNzY3NTogJD8gPSAw DQpjb25maWd1cmU6Mjc2Nzg6IHRlc3QgLXMgY29uZnRlc3QuZXhlDQpjb25maWd1cmU6Mjc2ODE6 ICQ/ID0gMA0KY29uZmlndXJlOjI3NjkzOiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjI3NjA1OiBj aGVja2luZyBmb3Igc3lzY3RsDQpjb25maWd1cmU6Mjc2NjI6IGdjYyAtbyBjb25mdGVzdC5leGUg LU8zICAgY29uZnRlc3QuYyAgPiY1DQovY3lnZHJpdmUvYy9ET0NVTUV+MS9WQ0lNfjEuSU5CL0xP Q0FMU34xL1RlbXAvY2NHdUlDT0Yubzpjb25mdGVzdC5jOigudGV4dCsweDIwKTogdW5kZWZpbmVk IHJlZmVyZW5jZSB0byBgX3N5c2N0bCcNDQovY3lnZHJpdmUvYy9ET0NVTUV+MS9WQ0lNfjEuSU5C L0xPQ0FMU34xL1RlbXAvY2NHdUlDT0Yubzpjb25mdGVzdC5jOiguZGF0YSsweDApOiB1bmRlZmlu ZWQgcmVmZXJlbmNlIHRvIGBfc3lzY3RsJw0NCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQg c3RhdHVzDQ0KY29uZmlndXJlOjI3NjY4OiAkPyA9IDENCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dy YW0gd2FzOg0KfCAvKiBjb25mZGVmcy5oLiAgKi8NCnwgDQp8ICNkZWZpbmUgUEFDS0FHRV9OQU1F ICJHTlUgTVAiDQp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJnbXAiDQp8ICNkZWZpbmUgUEFD S0FHRV9WRVJTSU9OICI0LjIuMiINCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIE1QIDQu Mi4yIg0KfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJnbXAtYnVnc0Bzd294LmNvbSINCnwg I2RlZmluZSBQQUNLQUdFICJnbXAiDQp8ICNkZWZpbmUgVkVSU0lPTiAiNC4yLjIiDQp8ICNkZWZp bmUgV0FOVF9GRlQgMQ0KfCAjZGVmaW5lIEhBVkVfSE9TVF9DUFVfcHBjYmUgMQ0KfCAjZGVmaW5l IFBST1RPVFlQRVMgMQ0KfCAjZGVmaW5lIF9fUFJPVE9UWVBFUyAxDQp8ICNkZWZpbmUgU1REQ19I RUFERVJTIDENCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NZ U19TVEFUX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RS SU5HX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5H U19IIDENCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RESU5U X0ggMQ0KfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0gg MQ0KfCAjZGVmaW5lIEhBVkVfRExGQ05fSCAxDQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDENCnwg I2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQ0KfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxDQp8 ICNkZWZpbmUgSEFWRV9GTE9BVF9IIDENCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX0ggMQ0KfCAj ZGVmaW5lIEhBVkVfTE9DQUxFX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxDQp8ICNk ZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDENCnwg I2RlZmluZSBIQVZFX1NZU19USU1FU19IIDENCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9I IDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkdFVEMgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9GU0NB TkYgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9PUFRBUkcgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9V TkdFVEMgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9WRlBSSU5URiAxDQp8ICNkZWZpbmUgSEFWRV9E RUNMX1NZU19FUlJMSVNUIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1lTX05FUlIgMQ0KfCAjZGVm aW5lIFJFVFNJR1RZUEUgdm9pZA0KfCAjZGVmaW5lIEhBVkVfSU5UTUFYX1QgMQ0KfCAjZGVmaW5l IEhBVkVfTE9OR19ET1VCTEUgMQ0KfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDENCnwgI2RlZmlu ZSBIQVZFX1BUUkRJRkZfVCAxDQp8ICNkZWZpbmUgSEFWRV9VSU5UX0xFQVNUMzJfVCAxDQp8ICNk ZWZpbmUgSEFWRV9TVFJJTkdJWkUgMQ0KfCAjZGVmaW5lIEhBVkVfU1REQVJHIDENCnwgI2RlZmlu ZSBIQVZFX0FUVFJJQlVURV9DT05TVCAxDQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfTUFMTE9D IDENCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9NT0RFIDENCnwgI2RlZmluZSBIQVZFX0FUVFJJ QlVURV9OT1JFVFVSTiAxDQp8ICNkZWZpbmUgSEFWRV9BTExPQ0FfSCAxDQp8ICNkZWZpbmUgSEFW RV9BTExPQ0EgMQ0KfCAjZGVmaW5lIFdBTlRfVE1QX0FMTE9DQSAxDQp8ICNkZWZpbmUgSEFWRV9M SU1CX0xJVFRMRV9FTkRJQU4gMQ0KfCAjZGVmaW5lIEhBVkVfRE9VQkxFX0lFRUVfTElUVExFX0VO RElBTiAxDQp8ICNkZWZpbmUgSEFWRV9BTEFSTSAxDQp8ICNkZWZpbmUgSEFWRV9DTE9DSyAxDQp8 ICNkZWZpbmUgSEFWRV9DTE9DS19HRVRUSU1FIDENCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpF IDENCnwgI2RlZmluZSBIQVZFX0dFVFJVU0FHRSAxDQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZE QVkgMQ0KfCAjZGVmaW5lIEhBVkVfTE9DQUxFQ09OViAxDQp8ICNkZWZpbmUgSEFWRV9NRU1TRVQg MQ0KfCAjZGVmaW5lIEhBVkVfTU1BUCAxDQp8ICNkZWZpbmUgSEFWRV9NUFJPVEVDVCAxDQp8ICNk ZWZpbmUgSEFWRV9OTF9MQU5HSU5GTyAxDQp8ICNkZWZpbmUgSEFWRV9QT1BFTiAxDQp8ICNkZWZp bmUgSEFWRV9SQUlTRSAxDQp8ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQ0KfCAjZGVmaW5lIEhB VkVfU1RSQ0hSIDENCnwgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDENCnwgI2RlZmluZSBIQVZFX1NU Uk5MRU4gMQ0KfCAjZGVmaW5lIEhBVkVfU1RSVE9MIDENCnwgI2RlZmluZSBIQVZFX1NUUlRPVUwg MQ0KfCAjZGVmaW5lIEhBVkVfU1lTQ09ORiAxDQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8NCnwg LyogRGVmaW5lIHN5c2N0bCB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRz Lmg+IGRlY2xhcmVzIHN5c2N0bC4NCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRz Lmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovDQp8ICNkZWZpbmUgc3lzY3RsIGlubm9jdW91 c19zeXNjdGwNCnwgDQp8IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3Mg YW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywNCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3 aXRoIGNoYXIgc3lzY3RsICgpOyBiZWxvdy4NCnwgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxh c3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UNCnwgICAgIDxsaW1pdHMuaD4g ZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovDQp8IA0KfCAjaWZkZWYg X19TVERDX18NCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4NCnwgI2Vsc2UNCnwgIyBpbmNsdWRlIDxh c3NlcnQuaD4NCnwgI2VuZGlmDQp8IA0KfCAjdW5kZWYgc3lzY3RsDQp8IA0KfCAvKiBPdmVycmlk ZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLw0KfCAj aWZkZWYgX19jcGx1c3BsdXMNCnwgZXh0ZXJuICJDIg0KfCB7DQp8ICNlbmRpZg0KfCAvKiBXZSB1 c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2My DQp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGls bCBhcHBseS4gICovDQp8IGNoYXIgc3lzY3RsICgpOw0KfCAvKiBUaGUgR05VIEMgbGlicmFyeSBk ZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzDQp8ICAgICB0byBh bHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1l ZA0KfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBp cyBhbiBhbGlhcy4gICovDQp8ICNpZiBkZWZpbmVkIChfX3N0dWJfc3lzY3RsKSB8fCBkZWZpbmVk IChfX3N0dWJfX19zeXNjdGwpDQp8IGNob2tlIG1lDQp8ICNlbHNlDQp8IGNoYXIgKCpmKSAoKSA9 IHN5c2N0bDsNCnwgI2VuZGlmDQp8ICNpZmRlZiBfX2NwbHVzcGx1cw0KfCB9DQp8ICNlbmRpZg0K fCANCnwgaW50DQp8IG1haW4gKCkNCnwgew0KfCByZXR1cm4gZiAhPSBzeXNjdGw7DQp8ICAgOw0K fCAgIHJldHVybiAwOw0KfCB9DQpjb25maWd1cmU6Mjc2OTM6IHJlc3VsdDogbm8NCmNvbmZpZ3Vy ZToyNzYwNTogY2hlY2tpbmcgZm9yIHN5c2N0bGJ5bmFtZQ0KY29uZmlndXJlOjI3NjYyOiBnY2Mg LW8gY29uZnRlc3QuZXhlIC1PMyAgIGNvbmZ0ZXN0LmMgID4mNQ0KL2N5Z2RyaXZlL2MvRE9DVU1F fjEvVkNJTX4xLklOQi9MT0NBTFN+MS9UZW1wL2NjdFA0UmFoLm86Y29uZnRlc3QuYzooLnRleHQr MHgyMCk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYF9zeXNjdGxieW5hbWUnDQ0KL2N5Z2RyaXZl L2MvRE9DVU1FfjEvVkNJTX4xLklOQi9MT0NBTFN+MS9UZW1wL2NjdFA0UmFoLm86Y29uZnRlc3Qu YzooLmRhdGErMHgwKTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgX3N5c2N0bGJ5bmFtZScNDQpj b2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cw0NCmNvbmZpZ3VyZToyNzY2ODogJD8g PSAxDQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoNCnwgLyogY29uZmRlZnMuaC4gICov DQp8IA0KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIE1QIg0KfCAjZGVmaW5lIFBBQ0tBR0Vf VEFSTkFNRSAiZ21wIg0KfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC4yLjIiDQp8ICNkZWZp bmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBNUCA0LjIuMiINCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JF UE9SVCAiZ21wLWJ1Z3NAc3dveC5jb20iDQp8ICNkZWZpbmUgUEFDS0FHRSAiZ21wIg0KfCAjZGVm aW5lIFZFUlNJT04gIjQuMi4yIg0KfCAjZGVmaW5lIFdBTlRfRkZUIDENCnwgI2RlZmluZSBIQVZF X0hPU1RfQ1BVX3BwY2JlIDENCnwgI2RlZmluZSBQUk9UT1RZUEVTIDENCnwgI2RlZmluZSBfX1BS T1RPVFlQRVMgMQ0KfCAjZGVmaW5lIFNURENfSEVBREVSUyAxDQp8ICNkZWZpbmUgSEFWRV9TWVNf VFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDENCnwgI2RlZmluZSBIQVZFX1NU RExJQl9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDENCnwgI2RlZmluZSBIQVZFX01FTU9S WV9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxDQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBF U19IIDENCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDENCnwgI2RlZmluZSBIQVZFX1VOSVNURF9I IDENCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDENCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQ0K fCAjZGVmaW5lIFNURENfSEVBREVSUyAxDQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEN CnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQ0KfCAjZGVmaW5lIEhBVkVfRkxPQVRfSCAxDQp8ICNk ZWZpbmUgSEFWRV9MQU5HSU5GT19IIDENCnwgI2RlZmluZSBIQVZFX0xPQ0FMRV9IIDENCnwgI2Rl ZmluZSBIQVZFX1NZU19NTUFOX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQ0KfCAj ZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRVNfSCAxDQp8 ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZHRVRD IDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlNDQU5GIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfT1BU QVJHIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5HRVRDIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xf VkZQUklOVEYgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9TWVNfRVJSTElTVCAxDQp8ICNkZWZpbmUg SEFWRV9ERUNMX1NZU19ORVJSIDENCnwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQNCnwgI2RlZmlu ZSBIQVZFX0lOVE1BWF9UIDENCnwgI2RlZmluZSBIQVZFX0xPTkdfRE9VQkxFIDENCnwgI2RlZmlu ZSBIQVZFX0xPTkdfTE9ORyAxDQp8ICNkZWZpbmUgSEFWRV9QVFJESUZGX1QgMQ0KfCAjZGVmaW5l IEhBVkVfVUlOVF9MRUFTVDMyX1QgMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HSVpFIDENCnwgI2Rl ZmluZSBIQVZFX1NUREFSRyAxDQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfQ09OU1QgMQ0KfCAj ZGVmaW5lIEhBVkVfQVRUUklCVVRFX01BTExPQyAxDQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVf TU9ERSAxDQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfTk9SRVRVUk4gMQ0KfCAjZGVmaW5lIEhB VkVfQUxMT0NBX0ggMQ0KfCAjZGVmaW5lIEhBVkVfQUxMT0NBIDENCnwgI2RlZmluZSBXQU5UX1RN UF9BTExPQ0EgMQ0KfCAjZGVmaW5lIEhBVkVfTElNQl9MSVRUTEVfRU5ESUFOIDENCnwgI2RlZmlu ZSBIQVZFX0RPVUJMRV9JRUVFX0xJVFRMRV9FTkRJQU4gMQ0KfCAjZGVmaW5lIEhBVkVfQUxBUk0g MQ0KfCAjZGVmaW5lIEhBVkVfQ0xPQ0sgMQ0KfCAjZGVmaW5lIEhBVkVfQ0xPQ0tfR0VUVElNRSAx DQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxDQp8ICNkZWZpbmUgSEFWRV9HRVRSVVNBR0Ug MQ0KfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDENCnwgI2RlZmluZSBIQVZFX0xPQ0FMRUNP TlYgMQ0KfCAjZGVmaW5lIEhBVkVfTUVNU0VUIDENCnwgI2RlZmluZSBIQVZFX01NQVAgMQ0KfCAj ZGVmaW5lIEhBVkVfTVBST1RFQ1QgMQ0KfCAjZGVmaW5lIEhBVkVfTkxfTEFOR0lORk8gMQ0KfCAj ZGVmaW5lIEhBVkVfUE9QRU4gMQ0KfCAjZGVmaW5lIEhBVkVfUkFJU0UgMQ0KfCAjZGVmaW5lIEhB VkVfU0lHQUNUSU9OIDENCnwgI2RlZmluZSBIQVZFX1NUUkNIUiAxDQp8ICNkZWZpbmUgSEFWRV9T VFJFUlJPUiAxDQp8ICNkZWZpbmUgSEFWRV9TVFJOTEVOIDENCnwgI2RlZmluZSBIQVZFX1NUUlRP TCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJUT1VMIDENCnwgI2RlZmluZSBIQVZFX1NZU0NPTkYgMQ0K fCAvKiBlbmQgY29uZmRlZnMuaC4gICovDQp8IC8qIERlZmluZSBzeXNjdGxieW5hbWUgdG8gYW4g aW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBzeXNjdGxieW5h bWUuDQp8ICAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0 aW1lb2ZkYXkuICAqLw0KfCAjZGVmaW5lIHN5c2N0bGJ5bmFtZSBpbm5vY3VvdXNfc3lzY3RsYnlu YW1lDQp8IA0KfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBo b3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsDQp8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBj aGFyIHN5c2N0bGJ5bmFtZSAoKTsgYmVsb3cuDQp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8 YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlDQp8ICAgICA8bGltaXRzLmg+ IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLw0KfCANCnwgI2lmZGVm IF9fU1REQ19fDQp8ICMgaW5jbHVkZSA8bGltaXRzLmg+DQp8ICNlbHNlDQp8ICMgaW5jbHVkZSA8 YXNzZXJ0Lmg+DQp8ICNlbmRpZg0KfCANCnwgI3VuZGVmIHN5c2N0bGJ5bmFtZQ0KfCANCnwgLyog T3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAg Ki8NCnwgI2lmZGVmIF9fY3BsdXNwbHVzDQp8IGV4dGVybiAiQyINCnwgew0KfCAjZW5kaWYNCnwg LyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9m IGEgZ2NjMg0KfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291 bGQgc3RpbGwgYXBwbHkuICAqLw0KfCBjaGFyIHN5c2N0bGJ5bmFtZSAoKTsNCnwgLyogVGhlIEdO VSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50 cw0KfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUg YWN0dWFsbHkgbmFtZWQNCnwgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUg bm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLw0KfCAjaWYgZGVmaW5lZCAoX19zdHViX3N5c2N0 bGJ5bmFtZSkgfHwgZGVmaW5lZCAoX19zdHViX19fc3lzY3RsYnluYW1lKQ0KfCBjaG9rZSBtZQ0K fCAjZWxzZQ0KfCBjaGFyICgqZikgKCkgPSBzeXNjdGxieW5hbWU7DQp8ICNlbmRpZg0KfCAjaWZk ZWYgX19jcGx1c3BsdXMNCnwgfQ0KfCAjZW5kaWYNCnwgDQp8IGludA0KfCBtYWluICgpDQp8IHsN CnwgcmV0dXJuIGYgIT0gc3lzY3RsYnluYW1lOw0KfCAgIDsNCnwgICByZXR1cm4gMDsNCnwgfQ0K Y29uZmlndXJlOjI3NjkzOiByZXN1bHQ6IG5vDQpjb25maWd1cmU6Mjc2MDU6IGNoZWNraW5nIGZv ciB0aW1lcw0KY29uZmlndXJlOjI3NjYyOiBnY2MgLW8gY29uZnRlc3QuZXhlIC1PMyAgIGNvbmZ0 ZXN0LmMgID4mNQ0KY29uZmlndXJlOjI3NjY4OiAkPyA9IDANCmNvbmZpZ3VyZToyNzY3MjogdGVz dCAteiANCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyDQpjb25maWd1cmU6Mjc2NzU6ICQ/ ID0gMA0KY29uZmlndXJlOjI3Njc4OiB0ZXN0IC1zIGNvbmZ0ZXN0LmV4ZQ0KY29uZmlndXJlOjI3 NjgxOiAkPyA9IDANCmNvbmZpZ3VyZToyNzY5MzogcmVzdWx0OiB5ZXMNCmNvbmZpZ3VyZToyNzcw NTogY2hlY2tpbmcgZm9yIHZzbnByaW50Zg0KY29uZmlndXJlOjI3NzYyOiBnY2MgLW8gY29uZnRl c3QuZXhlIC1PMyAgIGNvbmZ0ZXN0LmMgID4mNQ0KY29uZnRlc3QuYzoxMDc6IHdhcm5pbmc6IGNv bmZsaWN0aW5nIHR5cGVzIGZvciBidWlsdC1pbiBmdW5jdGlvbiAndnNucHJpbnRmJw0NCmNvbmZp Z3VyZToyNzc2ODogJD8gPSAwDQpjb25maWd1cmU6Mjc3NzI6IHRlc3QgLXogDQoJCQkgfHwgdGVz dCAhIC1zIGNvbmZ0ZXN0LmVycg0KY29uZmlndXJlOjI3Nzc1OiAkPyA9IDANCmNvbmZpZ3VyZToy Nzc3ODogdGVzdCAtcyBjb25mdGVzdC5leGUNCmNvbmZpZ3VyZToyNzc4MTogJD8gPSAwDQpjb25m aWd1cmU6Mjc3OTM6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6Mjc4MDQ6IGNoZWNraW5nIHdoZXRo ZXIgdnNucHJpbnRmIHdvcmtzDQpjb25maWd1cmU6Mjc4OTU6IHJlc3VsdDogcHJvYmFibHkNCmNv bmZpZ3VyZToyNzg5ODogV0FSTklORzogY2Fubm90IGNoZWNrIGZvciBwcm9wZXJseSB3b3JraW5n IHZzbnByaW50ZiB3aGVuIGNyb3NzIGNvbXBpbGluZywgd2lsbCBhc3N1bWUgaXQncyBvaw0KY29u ZmlndXJlOjI3OTEwOiBjaGVja2luZyB3aGV0aGVyIHNzY2FuZiBuZWVkcyB3cml0YWJsZSBpbnB1 dA0KY29uZmlndXJlOjI3OTIyOiByZXN1bHQ6IG5vDQpjb25maWd1cmU6Mjc5NDA6IGNoZWNraW5n IGZvciBzdHJ1Y3QgcHN0X3Byb2Nlc3Nvci5wc3BfaXRpY2tzcGVyY2xrdGljaw0KY29uZmlndXJl OjI3OTY0OiBnY2MgLWMgLU8zICBjb25mdGVzdC5jID4mNQ0KY29uZnRlc3QuYzo4NDoyMzogc3lz L3BzdGF0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkNDQpjb25mdGVzdC5jOiBJbiBmdW5j dGlvbiBgbWFpbic6DQ0KY29uZnRlc3QuYzo4OTogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiAnYWNf YWdncicgaXNuJ3Qga25vd24NDQpjb25mdGVzdC5jOjg5OiBlcnJvcjogc3RvcmFnZSBzaXplIG9m IGBhY19hZ2dyJyBpc24ndCBrbm93bg0NCmNvbmZpZ3VyZToyNzk3MDogJD8gPSAxDQpjb25maWd1 cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoNCnwgLyogY29uZmRlZnMuaC4gICovDQp8IA0KfCAjZGVm aW5lIFBBQ0tBR0VfTkFNRSAiR05VIE1QIg0KfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ21w Ig0KfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC4yLjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9T VFJJTkcgIkdOVSBNUCA0LjIuMiINCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiZ21wLWJ1 Z3NAc3dveC5jb20iDQp8ICNkZWZpbmUgUEFDS0FHRSAiZ21wIg0KfCAjZGVmaW5lIFZFUlNJT04g IjQuMi4yIg0KfCAjZGVmaW5lIFdBTlRfRkZUIDENCnwgI2RlZmluZSBIQVZFX0hPU1RfQ1BVX3Bw Y2JlIDENCnwgI2RlZmluZSBQUk9UT1RZUEVTIDENCnwgI2RlZmluZSBfX1BST1RPVFlQRVMgMQ0K fCAjZGVmaW5lIFNURENfSEVBREVSUyAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxDQp8 ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDENCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDENCnwg I2RlZmluZSBIQVZFX1NUUklOR19IIDENCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDENCnwgI2Rl ZmluZSBIQVZFX1NUUklOR1NfSCAxDQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDENCnwgI2Rl ZmluZSBIQVZFX1NURElOVF9IIDENCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDENCnwgI2RlZmlu ZSBIQVZFX1NUUklOR19IIDENCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQ0KfCAjZGVmaW5lIFNU RENfSEVBREVSUyAxDQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDENCnwgI2RlZmluZSBI QVZFX0ZDTlRMX0ggMQ0KfCAjZGVmaW5lIEhBVkVfRkxPQVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9M QU5HSU5GT19IIDENCnwgI2RlZmluZSBIQVZFX0xPQ0FMRV9IIDENCnwgI2RlZmluZSBIQVZFX1NZ U19NTUFOX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQ0KfCAjZGVmaW5lIEhBVkVf U1lTX1RJTUVfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRVNfSCAxDQp8ICNkZWZpbmUgSEFW RV9TWVNfUkVTT1VSQ0VfSCAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZHRVRDIDENCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfRlNDQU5GIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfT1BUQVJHIDENCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfVU5HRVRDIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfVkZQUklOVEYgMQ0K fCAjZGVmaW5lIEhBVkVfREVDTF9TWVNfRVJSTElTVCAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NZ U19ORVJSIDENCnwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQNCnwgI2RlZmluZSBIQVZFX0lOVE1B WF9UIDENCnwgI2RlZmluZSBIQVZFX0xPTkdfRE9VQkxFIDENCnwgI2RlZmluZSBIQVZFX0xPTkdf TE9ORyAxDQp8ICNkZWZpbmUgSEFWRV9QVFJESUZGX1QgMQ0KfCAjZGVmaW5lIEhBVkVfVUlOVF9M RUFTVDMyX1QgMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HSVpFIDENCnwgI2RlZmluZSBIQVZFX1NU REFSRyAxDQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfQ09OU1QgMQ0KfCAjZGVmaW5lIEhBVkVf QVRUUklCVVRFX01BTExPQyAxDQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfTU9ERSAxDQp8ICNk ZWZpbmUgSEFWRV9BVFRSSUJVVEVfTk9SRVRVUk4gMQ0KfCAjZGVmaW5lIEhBVkVfQUxMT0NBX0gg MQ0KfCAjZGVmaW5lIEhBVkVfQUxMT0NBIDENCnwgI2RlZmluZSBXQU5UX1RNUF9BTExPQ0EgMQ0K fCAjZGVmaW5lIEhBVkVfTElNQl9MSVRUTEVfRU5ESUFOIDENCnwgI2RlZmluZSBIQVZFX0RPVUJM RV9JRUVFX0xJVFRMRV9FTkRJQU4gMQ0KfCAjZGVmaW5lIEhBVkVfQUxBUk0gMQ0KfCAjZGVmaW5l IEhBVkVfQ0xPQ0sgMQ0KfCAjZGVmaW5lIEhBVkVfQ0xPQ0tfR0VUVElNRSAxDQp8ICNkZWZpbmUg SEFWRV9HRVRQQUdFU0laRSAxDQp8ICNkZWZpbmUgSEFWRV9HRVRSVVNBR0UgMQ0KfCAjZGVmaW5l IEhBVkVfR0VUVElNRU9GREFZIDENCnwgI2RlZmluZSBIQVZFX0xPQ0FMRUNPTlYgMQ0KfCAjZGVm aW5lIEhBVkVfTUVNU0VUIDENCnwgI2RlZmluZSBIQVZFX01NQVAgMQ0KfCAjZGVmaW5lIEhBVkVf TVBST1RFQ1QgMQ0KfCAjZGVmaW5lIEhBVkVfTkxfTEFOR0lORk8gMQ0KfCAjZGVmaW5lIEhBVkVf UE9QRU4gMQ0KfCAjZGVmaW5lIEhBVkVfUkFJU0UgMQ0KfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9O IDENCnwgI2RlZmluZSBIQVZFX1NUUkNIUiAxDQp8ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxDQp8 ICNkZWZpbmUgSEFWRV9TVFJOTEVOIDENCnwgI2RlZmluZSBIQVZFX1NUUlRPTCAxDQp8ICNkZWZp bmUgSEFWRV9TVFJUT1VMIDENCnwgI2RlZmluZSBIQVZFX1NZU0NPTkYgMQ0KfCAjZGVmaW5lIEhB VkVfVElNRVMgMQ0KfCAjZGVmaW5lIEhBVkVfVlNOUFJJTlRGIDENCnwgLyogZW5kIGNvbmZkZWZz LmguICAqLw0KfCAjaW5jbHVkZSA8c3lzL3BzdGF0Lmg+DQp8IA0KfCBpbnQNCnwgbWFpbiAoKQ0K fCB7DQp8IHN0YXRpYyBzdHJ1Y3QgcHN0X3Byb2Nlc3NvciBhY19hZ2dyOw0KfCBpZiAoYWNfYWdn ci5wc3BfaXRpY2tzcGVyY2xrdGljaykNCnwgcmV0dXJuIDA7DQp8ICAgOw0KfCAgIHJldHVybiAw Ow0KfCB9DQpjb25maWd1cmU6MjgwMDk6IGdjYyAtYyAtTzMgIGNvbmZ0ZXN0LmMgPiY1DQpjb25m dGVzdC5jOjg0OjIzOiBzeXMvcHN0YXQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQ0NCmNv bmZ0ZXN0LmM6IEluIGZ1bmN0aW9uIGBtYWluJzoNDQpjb25mdGVzdC5jOjg5OiBlcnJvcjogc3Rv cmFnZSBzaXplIG9mICdhY19hZ2dyJyBpc24ndCBrbm93bg0NCmNvbmZ0ZXN0LmM6ODk6IGVycm9y OiBzdG9yYWdlIHNpemUgb2YgYGFjX2FnZ3InIGlzbid0IGtub3duDQ0KY29uZmlndXJlOjI4MDE1 OiAkPyA9IDENCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOg0KfCAvKiBjb25mZGVmcy5o LiAgKi8NCnwgDQp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgTVAiDQp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJnbXAiDQp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjIuMiINCnwg I2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIE1QIDQuMi4yIg0KfCAjZGVmaW5lIFBBQ0tBR0Vf QlVHUkVQT1JUICJnbXAtYnVnc0Bzd294LmNvbSINCnwgI2RlZmluZSBQQUNLQUdFICJnbXAiDQp8 ICNkZWZpbmUgVkVSU0lPTiAiNC4yLjIiDQp8ICNkZWZpbmUgV0FOVF9GRlQgMQ0KfCAjZGVmaW5l IEhBVkVfSE9TVF9DUFVfcHBjYmUgMQ0KfCAjZGVmaW5lIFBST1RPVFlQRVMgMQ0KfCAjZGVmaW5l IF9fUFJPVE9UWVBFUyAxDQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDENCnwgI2RlZmluZSBIQVZF X1NZU19UWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQ0KfCAjZGVmaW5lIEhB VkVfU1RETElCX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQ0KfCAjZGVmaW5lIEhBVkVf TUVNT1JZX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDENCnwgI2RlZmluZSBIQVZFX0lO VFRZUEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQ0KfCAjZGVmaW5lIEhBVkVfVU5J U1REX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQ0KfCAjZGVmaW5lIEhBVkVfRExGQ05f SCAxDQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDENCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJ TUUgMQ0KfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxDQp8ICNkZWZpbmUgSEFWRV9GTE9BVF9IIDEN CnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTE9DQUxFX0ggMQ0K fCAjZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAx DQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19USU1FU19I IDENCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xf RkdFVEMgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9GU0NBTkYgMQ0KfCAjZGVmaW5lIEhBVkVfREVD TF9PUFRBUkcgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9VTkdFVEMgMQ0KfCAjZGVmaW5lIEhBVkVf REVDTF9WRlBSSU5URiAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NZU19FUlJMSVNUIDENCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfU1lTX05FUlIgMQ0KfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZA0KfCAj ZGVmaW5lIEhBVkVfSU5UTUFYX1QgMQ0KfCAjZGVmaW5lIEhBVkVfTE9OR19ET1VCTEUgMQ0KfCAj ZGVmaW5lIEhBVkVfTE9OR19MT05HIDENCnwgI2RlZmluZSBIQVZFX1BUUkRJRkZfVCAxDQp8ICNk ZWZpbmUgSEFWRV9VSU5UX0xFQVNUMzJfVCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdJWkUgMQ0K fCAjZGVmaW5lIEhBVkVfU1REQVJHIDENCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9DT05TVCAx DQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfTUFMTE9DIDENCnwgI2RlZmluZSBIQVZFX0FUVFJJ QlVURV9NT0RFIDENCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9OT1JFVFVSTiAxDQp8ICNkZWZp bmUgSEFWRV9BTExPQ0FfSCAxDQp8ICNkZWZpbmUgSEFWRV9BTExPQ0EgMQ0KfCAjZGVmaW5lIFdB TlRfVE1QX0FMTE9DQSAxDQp8ICNkZWZpbmUgSEFWRV9MSU1CX0xJVFRMRV9FTkRJQU4gMQ0KfCAj ZGVmaW5lIEhBVkVfRE9VQkxFX0lFRUVfTElUVExFX0VORElBTiAxDQp8ICNkZWZpbmUgSEFWRV9B TEFSTSAxDQp8ICNkZWZpbmUgSEFWRV9DTE9DSyAxDQp8ICNkZWZpbmUgSEFWRV9DTE9DS19HRVRU SU1FIDENCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDENCnwgI2RlZmluZSBIQVZFX0dFVFJV U0FHRSAxDQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQ0KfCAjZGVmaW5lIEhBVkVfTE9D QUxFQ09OViAxDQp8ICNkZWZpbmUgSEFWRV9NRU1TRVQgMQ0KfCAjZGVmaW5lIEhBVkVfTU1BUCAx DQp8ICNkZWZpbmUgSEFWRV9NUFJPVEVDVCAxDQp8ICNkZWZpbmUgSEFWRV9OTF9MQU5HSU5GTyAx DQp8ICNkZWZpbmUgSEFWRV9QT1BFTiAxDQp8ICNkZWZpbmUgSEFWRV9SQUlTRSAxDQp8ICNkZWZp bmUgSEFWRV9TSUdBQ1RJT04gMQ0KfCAjZGVmaW5lIEhBVkVfU1RSQ0hSIDENCnwgI2RlZmluZSBI QVZFX1NUUkVSUk9SIDENCnwgI2RlZmluZSBIQVZFX1NUUk5MRU4gMQ0KfCAjZGVmaW5lIEhBVkVf U1RSVE9MIDENCnwgI2RlZmluZSBIQVZFX1NUUlRPVUwgMQ0KfCAjZGVmaW5lIEhBVkVfU1lTQ09O RiAxDQp8ICNkZWZpbmUgSEFWRV9USU1FUyAxDQp8ICNkZWZpbmUgSEFWRV9WU05QUklOVEYgMQ0K fCAvKiBlbmQgY29uZmRlZnMuaC4gICovDQp8ICNpbmNsdWRlIDxzeXMvcHN0YXQuaD4NCnwgDQp8 IGludA0KfCBtYWluICgpDQp8IHsNCnwgc3RhdGljIHN0cnVjdCBwc3RfcHJvY2Vzc29yIGFjX2Fn Z3I7DQp8IGlmIChzaXplb2YgYWNfYWdnci5wc3BfaXRpY2tzcGVyY2xrdGljaykNCnwgcmV0dXJu IDA7DQp8ICAgOw0KfCAgIHJldHVybiAwOw0KfCB9DQpjb25maWd1cmU6MjgwNDE6IHJlc3VsdDog bm8NCmNvbmZpZ3VyZTozMDMwODogY2hlY2tpbmcgZm9yIHVuc2lnbmVkIHNob3J0DQpjb25maWd1 cmU6MzAzMzI6IGdjYyAtYyAtTzMgIGNvbmZ0ZXN0LmMgPiY1DQpjb25maWd1cmU6MzAzMzg6ICQ/ ID0gMA0KY29uZmlndXJlOjMwMzQyOiB0ZXN0IC16IA0KCQkJIHx8IHRlc3QgISAtcyBjb25mdGVz dC5lcnINCmNvbmZpZ3VyZTozMDM0NTogJD8gPSAwDQpjb25maWd1cmU6MzAzNDg6IHRlc3QgLXMg Y29uZnRlc3Qubw0KY29uZmlndXJlOjMwMzUxOiAkPyA9IDANCmNvbmZpZ3VyZTozMDM2MjogcmVz dWx0OiB5ZXMNCmNvbmZpZ3VyZTozMDM2NTogY2hlY2tpbmcgc2l6ZSBvZiB1bnNpZ25lZCBzaG9y dA0KY29uZmlndXJlOjMwMzk1OiBnY2MgLWMgLU8zICBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJl OjMwNDAxOiAkPyA9IDANCmNvbmZpZ3VyZTozMDQwNTogdGVzdCAteiANCgkJCSB8fCB0ZXN0ICEg LXMgY29uZnRlc3QuZXJyDQpjb25maWd1cmU6MzA0MDg6ICQ/ID0gMA0KY29uZmlndXJlOjMwNDEx OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8NCmNvbmZpZ3VyZTozMDQxNDogJD8gPSAwDQpjb25maWd1cmU6 MzA0MzY6IGdjYyAtYyAtTzMgIGNvbmZ0ZXN0LmMgPiY1DQpjb25mdGVzdC5jOiBJbiBmdW5jdGlv biBgbWFpbic6DQ0KY29uZnRlc3QuYzoxMjI6IGVycm9yOiBzaXplIG9mIGFycmF5IGB0ZXN0X2Fy cmF5JyBpcyBuZWdhdGl2ZQ0NCmNvbmZpZ3VyZTozMDQ0MjogJD8gPSAxDQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoNCnwgLyogY29uZmRlZnMuaC4gICovDQp8IA0KfCAjZGVmaW5lIFBB Q0tBR0VfTkFNRSAiR05VIE1QIg0KfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ21wIg0KfCAj ZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC4yLjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcg IkdOVSBNUCA0LjIuMiINCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiZ21wLWJ1Z3NAc3dv eC5jb20iDQp8ICNkZWZpbmUgUEFDS0FHRSAiZ21wIg0KfCAjZGVmaW5lIFZFUlNJT04gIjQuMi4y Ig0KfCAjZGVmaW5lIFdBTlRfRkZUIDENCnwgI2RlZmluZSBIQVZFX0hPU1RfQ1BVX3BwY2JlIDEN CnwgI2RlZmluZSBQUk9UT1RZUEVTIDENCnwgI2RlZmluZSBfX1BST1RPVFlQRVMgMQ0KfCAjZGVm aW5lIFNURENfSEVBREVSUyAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxDQp8ICNkZWZp bmUgSEFWRV9TWVNfU1RBVF9IIDENCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDENCnwgI2RlZmlu ZSBIQVZFX1NUUklOR19IIDENCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDENCnwgI2RlZmluZSBI QVZFX1NUUklOR1NfSCAxDQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDENCnwgI2RlZmluZSBI QVZFX1NURElOVF9IIDENCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDENCnwgI2RlZmluZSBIQVZF X1NUUklOR19IIDENCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQ0KfCAjZGVmaW5lIFNURENfSEVB REVSUyAxDQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDENCnwgI2RlZmluZSBIQVZFX0ZD TlRMX0ggMQ0KfCAjZGVmaW5lIEhBVkVfRkxPQVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5G T19IIDENCnwgI2RlZmluZSBIQVZFX0xPQ0FMRV9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19NTUFO X0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RJ TUVfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNf UkVTT1VSQ0VfSCAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZHRVRDIDENCnwgI2RlZmluZSBIQVZF X0RFQ0xfRlNDQU5GIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfT1BUQVJHIDENCnwgI2RlZmluZSBI QVZFX0RFQ0xfVU5HRVRDIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfVkZQUklOVEYgMQ0KfCAjZGVm aW5lIEhBVkVfREVDTF9TWVNfRVJSTElTVCAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NZU19ORVJS IDENCnwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQNCnwgI2RlZmluZSBIQVZFX0lOVE1BWF9UIDEN CnwgI2RlZmluZSBIQVZFX0xPTkdfRE9VQkxFIDENCnwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAx DQp8ICNkZWZpbmUgSEFWRV9QVFJESUZGX1QgMQ0KfCAjZGVmaW5lIEhBVkVfVUlOVF9MRUFTVDMy X1QgMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HSVpFIDENCnwgI2RlZmluZSBIQVZFX1NUREFSRyAx DQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfQ09OU1QgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklC VVRFX01BTExPQyAxDQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfTU9ERSAxDQp8ICNkZWZpbmUg SEFWRV9BVFRSSUJVVEVfTk9SRVRVUk4gMQ0KfCAjZGVmaW5lIEhBVkVfQUxMT0NBX0ggMQ0KfCAj ZGVmaW5lIEhBVkVfQUxMT0NBIDENCnwgI2RlZmluZSBXQU5UX1RNUF9BTExPQ0EgMQ0KfCAjZGVm aW5lIEhBVkVfTElNQl9MSVRUTEVfRU5ESUFOIDENCnwgI2RlZmluZSBIQVZFX0RPVUJMRV9JRUVF X0xJVFRMRV9FTkRJQU4gMQ0KfCAjZGVmaW5lIEhBVkVfQUxBUk0gMQ0KfCAjZGVmaW5lIEhBVkVf Q0xPQ0sgMQ0KfCAjZGVmaW5lIEhBVkVfQ0xPQ0tfR0VUVElNRSAxDQp8ICNkZWZpbmUgSEFWRV9H RVRQQUdFU0laRSAxDQp8ICNkZWZpbmUgSEFWRV9HRVRSVVNBR0UgMQ0KfCAjZGVmaW5lIEhBVkVf R0VUVElNRU9GREFZIDENCnwgI2RlZmluZSBIQVZFX0xPQ0FMRUNPTlYgMQ0KfCAjZGVmaW5lIEhB VkVfTUVNU0VUIDENCnwgI2RlZmluZSBIQVZFX01NQVAgMQ0KfCAjZGVmaW5lIEhBVkVfTVBST1RF Q1QgMQ0KfCAjZGVmaW5lIEhBVkVfTkxfTEFOR0lORk8gMQ0KfCAjZGVmaW5lIEhBVkVfUE9QRU4g MQ0KfCAjZGVmaW5lIEhBVkVfUkFJU0UgMQ0KfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDENCnwg I2RlZmluZSBIQVZFX1NUUkNIUiAxDQp8ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxDQp8ICNkZWZp bmUgSEFWRV9TVFJOTEVOIDENCnwgI2RlZmluZSBIQVZFX1NUUlRPTCAxDQp8ICNkZWZpbmUgSEFW RV9TVFJUT1VMIDENCnwgI2RlZmluZSBIQVZFX1NZU0NPTkYgMQ0KfCAjZGVmaW5lIEhBVkVfVElN RVMgMQ0KfCAjZGVmaW5lIEhBVkVfVlNOUFJJTlRGIDENCnwgI2RlZmluZSBHTVBfTVBBUkFNX0hf U1VHR0VTVCAiLi9tcG4vZ2VuZXJpYy9nbXAtbXBhcmFtLmgiDQp8IC8qIGVuZCBjb25mZGVmcy5o LiAgKi8NCnwgI2luY2x1ZGUgPHN0ZGlvLmg+DQp8ICNpZiBIQVZFX1NZU19UWVBFU19IDQp8ICMg aW5jbHVkZSA8c3lzL3R5cGVzLmg+DQp8ICNlbmRpZg0KfCAjaWYgSEFWRV9TWVNfU1RBVF9IDQp8 ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4NCnwgI2VuZGlmDQp8ICNpZiBTVERDX0hFQURFUlMNCnwg IyBpbmNsdWRlIDxzdGRsaWIuaD4NCnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4NCnwgI2Vsc2UNCnwg IyBpZiBIQVZFX1NURExJQl9IDQp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPg0KfCAjIGVuZGlmDQp8 ICNlbmRpZg0KfCAjaWYgSEFWRV9TVFJJTkdfSA0KfCAjIGlmICFTVERDX0hFQURFUlMgJiYgSEFW RV9NRU1PUllfSA0KfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4NCnwgIyBlbmRpZg0KfCAjIGluY2x1 ZGUgPHN0cmluZy5oPg0KfCAjZW5kaWYNCnwgI2lmIEhBVkVfU1RSSU5HU19IDQp8ICMgaW5jbHVk ZSA8c3RyaW5ncy5oPg0KfCAjZW5kaWYNCnwgI2lmIEhBVkVfSU5UVFlQRVNfSA0KfCAjIGluY2x1 ZGUgPGludHR5cGVzLmg+DQp8ICNlbHNlDQp8ICMgaWYgSEFWRV9TVERJTlRfSA0KfCAjICBpbmNs dWRlIDxzdGRpbnQuaD4NCnwgIyBlbmRpZg0KfCAjZW5kaWYNCnwgI2lmIEhBVkVfVU5JU1REX0gN CnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4NCnwgI2VuZGlmDQp8IGludA0KfCBtYWluICgpDQp8IHsN Cnwgc3RhdGljIGludCB0ZXN0X2FycmF5IFsxIC0gMiAqICEoKChsb25nKSAoc2l6ZW9mICh1bnNp Z25lZCBzaG9ydCkpKSA8PSAwKV07DQp8IHRlc3RfYXJyYXkgWzBdID0gMA0KfCANCnwgICA7DQp8 ICAgcmV0dXJuIDA7DQp8IH0NCmNvbmZpZ3VyZTozMDQzNjogZ2NjIC1jIC1PMyAgY29uZnRlc3Qu YyA+JjUNCmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uIGBtYWluJzoNDQpjb25mdGVzdC5jOjEyMjog ZXJyb3I6IHNpemUgb2YgYXJyYXkgYHRlc3RfYXJyYXknIGlzIG5lZ2F0aXZlDQ0KY29uZmlndXJl OjMwNDQyOiAkPyA9IDENCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOg0KfCAvKiBjb25m ZGVmcy5oLiAgKi8NCnwgDQp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgTVAiDQp8ICNkZWZp bmUgUEFDS0FHRV9UQVJOQU1FICJnbXAiDQp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjIu MiINCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIE1QIDQuMi4yIg0KfCAjZGVmaW5lIFBB Q0tBR0VfQlVHUkVQT1JUICJnbXAtYnVnc0Bzd294LmNvbSINCnwgI2RlZmluZSBQQUNLQUdFICJn bXAiDQp8ICNkZWZpbmUgVkVSU0lPTiAiNC4yLjIiDQp8ICNkZWZpbmUgV0FOVF9GRlQgMQ0KfCAj ZGVmaW5lIEhBVkVfSE9TVF9DUFVfcHBjYmUgMQ0KfCAjZGVmaW5lIFBST1RPVFlQRVMgMQ0KfCAj ZGVmaW5lIF9fUFJPVE9UWVBFUyAxDQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDENCnwgI2RlZmlu ZSBIQVZFX1NZU19UWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQ0KfCAjZGVm aW5lIEhBVkVfU1RETElCX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQ0KfCAjZGVmaW5l IEhBVkVfTUVNT1JZX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDENCnwgI2RlZmluZSBI QVZFX0lOVFRZUEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQ0KfCAjZGVmaW5lIEhB VkVfVU5JU1REX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQ0KfCAjZGVmaW5lIEhBVkVf RExGQ05fSCAxDQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDENCnwgI2RlZmluZSBUSU1FX1dJVEhf U1lTX1RJTUUgMQ0KfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxDQp8ICNkZWZpbmUgSEFWRV9GTE9B VF9IIDENCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTE9DQUxF X0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFS QU1fSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19U SU1FU19IIDENCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDENCnwgI2RlZmluZSBIQVZF X0RFQ0xfRkdFVEMgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9GU0NBTkYgMQ0KfCAjZGVmaW5lIEhB VkVfREVDTF9PUFRBUkcgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9VTkdFVEMgMQ0KfCAjZGVmaW5l IEhBVkVfREVDTF9WRlBSSU5URiAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NZU19FUlJMSVNUIDEN CnwgI2RlZmluZSBIQVZFX0RFQ0xfU1lTX05FUlIgMQ0KfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9p ZA0KfCAjZGVmaW5lIEhBVkVfSU5UTUFYX1QgMQ0KfCAjZGVmaW5lIEhBVkVfTE9OR19ET1VCTEUg MQ0KfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDENCnwgI2RlZmluZSBIQVZFX1BUUkRJRkZfVCAx DQp8ICNkZWZpbmUgSEFWRV9VSU5UX0xFQVNUMzJfVCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdJ WkUgMQ0KfCAjZGVmaW5lIEhBVkVfU1REQVJHIDENCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9D T05TVCAxDQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfTUFMTE9DIDENCnwgI2RlZmluZSBIQVZF X0FUVFJJQlVURV9NT0RFIDENCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9OT1JFVFVSTiAxDQp8 ICNkZWZpbmUgSEFWRV9BTExPQ0FfSCAxDQp8ICNkZWZpbmUgSEFWRV9BTExPQ0EgMQ0KfCAjZGVm aW5lIFdBTlRfVE1QX0FMTE9DQSAxDQp8ICNkZWZpbmUgSEFWRV9MSU1CX0xJVFRMRV9FTkRJQU4g MQ0KfCAjZGVmaW5lIEhBVkVfRE9VQkxFX0lFRUVfTElUVExFX0VORElBTiAxDQp8ICNkZWZpbmUg SEFWRV9BTEFSTSAxDQp8ICNkZWZpbmUgSEFWRV9DTE9DSyAxDQp8ICNkZWZpbmUgSEFWRV9DTE9D S19HRVRUSU1FIDENCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDENCnwgI2RlZmluZSBIQVZF X0dFVFJVU0FHRSAxDQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQ0KfCAjZGVmaW5lIEhB VkVfTE9DQUxFQ09OViAxDQp8ICNkZWZpbmUgSEFWRV9NRU1TRVQgMQ0KfCAjZGVmaW5lIEhBVkVf TU1BUCAxDQp8ICNkZWZpbmUgSEFWRV9NUFJPVEVDVCAxDQp8ICNkZWZpbmUgSEFWRV9OTF9MQU5H SU5GTyAxDQp8ICNkZWZpbmUgSEFWRV9QT1BFTiAxDQp8ICNkZWZpbmUgSEFWRV9SQUlTRSAxDQp8 ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQ0KfCAjZGVmaW5lIEhBVkVfU1RSQ0hSIDENCnwgI2Rl ZmluZSBIQVZFX1NUUkVSUk9SIDENCnwgI2RlZmluZSBIQVZFX1NUUk5MRU4gMQ0KfCAjZGVmaW5l IEhBVkVfU1RSVE9MIDENCnwgI2RlZmluZSBIQVZFX1NUUlRPVUwgMQ0KfCAjZGVmaW5lIEhBVkVf U1lTQ09ORiAxDQp8ICNkZWZpbmUgSEFWRV9USU1FUyAxDQp8ICNkZWZpbmUgSEFWRV9WU05QUklO VEYgMQ0KfCAjZGVmaW5lIEdNUF9NUEFSQU1fSF9TVUdHRVNUICIuL21wbi9nZW5lcmljL2dtcC1t cGFyYW0uaCINCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLw0KfCAjaW5jbHVkZSA8c3RkaW8uaD4N CnwgI2lmIEhBVkVfU1lTX1RZUEVTX0gNCnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4NCnwgI2Vu ZGlmDQp8ICNpZiBIQVZFX1NZU19TVEFUX0gNCnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPg0KfCAj ZW5kaWYNCnwgI2lmIFNURENfSEVBREVSUw0KfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPg0KfCAjIGlu Y2x1ZGUgPHN0ZGRlZi5oPg0KfCAjZWxzZQ0KfCAjIGlmIEhBVkVfU1RETElCX0gNCnwgIyAgaW5j bHVkZSA8c3RkbGliLmg+DQp8ICMgZW5kaWYNCnwgI2VuZGlmDQp8ICNpZiBIQVZFX1NUUklOR19I DQp8ICMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZFX01FTU9SWV9IDQp8ICMgIGluY2x1ZGUgPG1l bW9yeS5oPg0KfCAjIGVuZGlmDQp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+DQp8ICNlbmRpZg0KfCAj aWYgSEFWRV9TVFJJTkdTX0gNCnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+DQp8ICNlbmRpZg0KfCAj aWYgSEFWRV9JTlRUWVBFU19IDQp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4NCnwgI2Vsc2UNCnwg IyBpZiBIQVZFX1NURElOVF9IDQp8ICMgIGluY2x1ZGUgPHN0ZGludC5oPg0KfCAjIGVuZGlmDQp8 ICNlbmRpZg0KfCAjaWYgSEFWRV9VTklTVERfSA0KfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPg0KfCAj ZW5kaWYNCnwgaW50DQp8IG1haW4gKCkNCnwgew0KfCBzdGF0aWMgaW50IHRlc3RfYXJyYXkgWzEg LSAyICogISgoKGxvbmcpIChzaXplb2YgKHVuc2lnbmVkIHNob3J0KSkpIDw9IDEpXTsNCnwgdGVz dF9hcnJheSBbMF0gPSAwDQp8IA0KfCAgIDsNCnwgICByZXR1cm4gMDsNCnwgfQ0KY29uZmlndXJl OjMwNDM2OiBnY2MgLWMgLU8zICBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjMwNDQyOiAkPyA9 IDANCmNvbmZpZ3VyZTozMDQ0NjogdGVzdCAteiANCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3Qu ZXJyDQpjb25maWd1cmU6MzA0NDk6ICQ/ID0gMA0KY29uZmlndXJlOjMwNDUyOiB0ZXN0IC1zIGNv bmZ0ZXN0Lm8NCmNvbmZpZ3VyZTozMDQ1NTogJD8gPSAwDQpjb25maWd1cmU6MzA1OTk6IGdjYyAt YyAtTzMgIGNvbmZ0ZXN0LmMgPiY1DQpjb25maWd1cmU6MzA2MDU6ICQ/ID0gMA0KY29uZmlndXJl OjMwNjA5OiB0ZXN0IC16IA0KCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnINCmNvbmZpZ3Vy ZTozMDYxMjogJD8gPSAwDQpjb25maWd1cmU6MzA2MTU6IHRlc3QgLXMgY29uZnRlc3Qubw0KY29u ZmlndXJlOjMwNjE4OiAkPyA9IDANCmNvbmZpZ3VyZTozMDcxNTogcmVzdWx0OiAyDQpjb25maWd1 cmU6MzA3MjI6IGNoZWNraW5nIGZvciB1bnNpZ25lZA0KY29uZmlndXJlOjMwNzQ2OiBnY2MgLWMg LU8zICBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjMwNzUyOiAkPyA9IDANCmNvbmZpZ3VyZToz MDc1NjogdGVzdCAteiANCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyDQpjb25maWd1cmU6 MzA3NTk6ICQ/ID0gMA0KY29uZmlndXJlOjMwNzYyOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8NCmNvbmZp Z3VyZTozMDc2NTogJD8gPSAwDQpjb25maWd1cmU6MzA3NzY6IHJlc3VsdDogeWVzDQpjb25maWd1 cmU6MzA3Nzk6IGNoZWNraW5nIHNpemUgb2YgdW5zaWduZWQNCmNvbmZpZ3VyZTozMDgwOTogZ2Nj IC1jIC1PMyAgY29uZnRlc3QuYyA+JjUNCmNvbmZpZ3VyZTozMDgxNTogJD8gPSAwDQpjb25maWd1 cmU6MzA4MTk6IHRlc3QgLXogDQoJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycg0KY29uZmln dXJlOjMwODIyOiAkPyA9IDANCmNvbmZpZ3VyZTozMDgyNTogdGVzdCAtcyBjb25mdGVzdC5vDQpj b25maWd1cmU6MzA4Mjg6ICQ/ID0gMA0KY29uZmlndXJlOjMwODUwOiBnY2MgLWMgLU8zICBjb25m dGVzdC5jID4mNQ0KY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gYG1haW4nOg0NCmNvbmZ0ZXN0LmM6 MTIzOiBlcnJvcjogc2l6ZSBvZiBhcnJheSBgdGVzdF9hcnJheScgaXMgbmVnYXRpdmUNDQpjb25m aWd1cmU6MzA4NTY6ICQ/ID0gMQ0KY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6DQp8IC8q IGNvbmZkZWZzLmguICAqLw0KfCANCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBNUCINCnwg I2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImdtcCINCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04g IjQuMi4yIg0KfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgTVAgNC4yLjIiDQp8ICNkZWZp bmUgUEFDS0FHRV9CVUdSRVBPUlQgImdtcC1idWdzQHN3b3guY29tIg0KfCAjZGVmaW5lIFBBQ0tB R0UgImdtcCINCnwgI2RlZmluZSBWRVJTSU9OICI0LjIuMiINCnwgI2RlZmluZSBXQU5UX0ZGVCAx DQp8ICNkZWZpbmUgSEFWRV9IT1NUX0NQVV9wcGNiZSAxDQp8ICNkZWZpbmUgUFJPVE9UWVBFUyAx DQp8ICNkZWZpbmUgX19QUk9UT1RZUEVTIDENCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAj ZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxDQp8 ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNk ZWZpbmUgSEFWRV9NRU1PUllfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQ0KfCAjZGVm aW5lIEhBVkVfSU5UVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxDQp8ICNkZWZp bmUgSEFWRV9VTklTVERfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUg SEFWRV9ETEZDTl9IIDENCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIFRJTUVf V0lUSF9TWVNfVElNRSAxDQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDENCnwgI2RlZmluZSBIQVZF X0ZMT0FUX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fSCAxDQp8ICNkZWZpbmUgSEFWRV9M T0NBTEVfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfTU1BTl9IIDENCnwgI2RlZmluZSBIQVZFX1NZ U19QQVJBTV9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQ0KfCAjZGVmaW5lIEhBVkVf U1lTX1RJTUVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQ0KfCAjZGVmaW5l IEhBVkVfREVDTF9GR0VUQyAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZTQ0FORiAxDQp8ICNkZWZp bmUgSEFWRV9ERUNMX09QVEFSRyAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOR0VUQyAxDQp8ICNk ZWZpbmUgSEFWRV9ERUNMX1ZGUFJJTlRGIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1lTX0VSUkxJ U1QgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9TWVNfTkVSUiAxDQp8ICNkZWZpbmUgUkVUU0lHVFlQ RSB2b2lkDQp8ICNkZWZpbmUgSEFWRV9JTlRNQVhfVCAxDQp8ICNkZWZpbmUgSEFWRV9MT05HX0RP VUJMRSAxDQp8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQ0KfCAjZGVmaW5lIEhBVkVfUFRSRElG Rl9UIDENCnwgI2RlZmluZSBIQVZFX1VJTlRfTEVBU1QzMl9UIDENCnwgI2RlZmluZSBIQVZFX1NU UklOR0laRSAxDQp8ICNkZWZpbmUgSEFWRV9TVERBUkcgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklC VVRFX0NPTlNUIDENCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9NQUxMT0MgMQ0KfCAjZGVmaW5l IEhBVkVfQVRUUklCVVRFX01PREUgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX05PUkVUVVJO IDENCnwgI2RlZmluZSBIQVZFX0FMTE9DQV9IIDENCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxDQp8 ICNkZWZpbmUgV0FOVF9UTVBfQUxMT0NBIDENCnwgI2RlZmluZSBIQVZFX0xJTUJfTElUVExFX0VO RElBTiAxDQp8ICNkZWZpbmUgSEFWRV9ET1VCTEVfSUVFRV9MSVRUTEVfRU5ESUFOIDENCnwgI2Rl ZmluZSBIQVZFX0FMQVJNIDENCnwgI2RlZmluZSBIQVZFX0NMT0NLIDENCnwgI2RlZmluZSBIQVZF X0NMT0NLX0dFVFRJTUUgMQ0KfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQ0KfCAjZGVmaW5l IEhBVkVfR0VUUlVTQUdFIDENCnwgI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxDQp8ICNkZWZp bmUgSEFWRV9MT0NBTEVDT05WIDENCnwgI2RlZmluZSBIQVZFX01FTVNFVCAxDQp8ICNkZWZpbmUg SEFWRV9NTUFQIDENCnwgI2RlZmluZSBIQVZFX01QUk9URUNUIDENCnwgI2RlZmluZSBIQVZFX05M X0xBTkdJTkZPIDENCnwgI2RlZmluZSBIQVZFX1BPUEVOIDENCnwgI2RlZmluZSBIQVZFX1JBSVNF IDENCnwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxDQp8ICNkZWZpbmUgSEFWRV9TVFJDSFIgMQ0K fCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQ0KfCAjZGVmaW5lIEhBVkVfU1RSTkxFTiAxDQp8ICNk ZWZpbmUgSEFWRV9TVFJUT0wgMQ0KfCAjZGVmaW5lIEhBVkVfU1RSVE9VTCAxDQp8ICNkZWZpbmUg SEFWRV9TWVNDT05GIDENCnwgI2RlZmluZSBIQVZFX1RJTUVTIDENCnwgI2RlZmluZSBIQVZFX1ZT TlBSSU5URiAxDQp8ICNkZWZpbmUgR01QX01QQVJBTV9IX1NVR0dFU1QgIi4vbXBuL2dlbmVyaWMv Z21wLW1wYXJhbS5oIg0KfCAjZGVmaW5lIFNJWkVPRl9VTlNJR05FRF9TSE9SVCAyDQp8IC8qIGVu ZCBjb25mZGVmcy5oLiAgKi8NCnwgI2luY2x1ZGUgPHN0ZGlvLmg+DQp8ICNpZiBIQVZFX1NZU19U WVBFU19IDQp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+DQp8ICNlbmRpZg0KfCAjaWYgSEFWRV9T WVNfU1RBVF9IDQp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4NCnwgI2VuZGlmDQp8ICNpZiBTVERD X0hFQURFUlMNCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4NCnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4N CnwgI2Vsc2UNCnwgIyBpZiBIQVZFX1NURExJQl9IDQp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPg0K fCAjIGVuZGlmDQp8ICNlbmRpZg0KfCAjaWYgSEFWRV9TVFJJTkdfSA0KfCAjIGlmICFTVERDX0hF QURFUlMgJiYgSEFWRV9NRU1PUllfSA0KfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4NCnwgIyBlbmRp Zg0KfCAjIGluY2x1ZGUgPHN0cmluZy5oPg0KfCAjZW5kaWYNCnwgI2lmIEhBVkVfU1RSSU5HU19I DQp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPg0KfCAjZW5kaWYNCnwgI2lmIEhBVkVfSU5UVFlQRVNf SA0KfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+DQp8ICNlbHNlDQp8ICMgaWYgSEFWRV9TVERJTlRf SA0KfCAjICBpbmNsdWRlIDxzdGRpbnQuaD4NCnwgIyBlbmRpZg0KfCAjZW5kaWYNCnwgI2lmIEhB VkVfVU5JU1REX0gNCnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4NCnwgI2VuZGlmDQp8IGludA0KfCBt YWluICgpDQp8IHsNCnwgc3RhdGljIGludCB0ZXN0X2FycmF5IFsxIC0gMiAqICEoKChsb25nKSAo c2l6ZW9mICh1bnNpZ25lZCkpKSA8PSAwKV07DQp8IHRlc3RfYXJyYXkgWzBdID0gMA0KfCANCnwg ICA7DQp8ICAgcmV0dXJuIDA7DQp8IH0NCmNvbmZpZ3VyZTozMDg1MDogZ2NjIC1jIC1PMyAgY29u ZnRlc3QuYyA+JjUNCmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uIGBtYWluJzoNDQpjb25mdGVzdC5j OjEyMzogZXJyb3I6IHNpemUgb2YgYXJyYXkgYHRlc3RfYXJyYXknIGlzIG5lZ2F0aXZlDQ0KY29u ZmlndXJlOjMwODU2OiAkPyA9IDENCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOg0KfCAv KiBjb25mZGVmcy5oLiAgKi8NCnwgDQp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgTVAiDQp8 ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJnbXAiDQp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9O ICI0LjIuMiINCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIE1QIDQuMi4yIg0KfCAjZGVm aW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJnbXAtYnVnc0Bzd294LmNvbSINCnwgI2RlZmluZSBQQUNL QUdFICJnbXAiDQp8ICNkZWZpbmUgVkVSU0lPTiAiNC4yLjIiDQp8ICNkZWZpbmUgV0FOVF9GRlQg MQ0KfCAjZGVmaW5lIEhBVkVfSE9TVF9DUFVfcHBjYmUgMQ0KfCAjZGVmaW5lIFBST1RPVFlQRVMg MQ0KfCAjZGVmaW5lIF9fUFJPVE9UWVBFUyAxDQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDENCnwg I2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQ0K fCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQ0KfCAj ZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDENCnwgI2Rl ZmluZSBIQVZFX0lOVFRZUEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQ0KfCAjZGVm aW5lIEhBVkVfVU5JU1REX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQ0KfCAjZGVmaW5l IEhBVkVfRExGQ05fSCAxDQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDENCnwgI2RlZmluZSBUSU1F X1dJVEhfU1lTX1RJTUUgMQ0KfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxDQp8ICNkZWZpbmUgSEFW RV9GTE9BVF9IIDENCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX0ggMQ0KfCAjZGVmaW5lIEhBVkVf TE9DQUxFX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxDQp8ICNkZWZpbmUgSEFWRV9T WVNfUEFSQU1fSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDENCnwgI2RlZmluZSBIQVZF X1NZU19USU1FU19IIDENCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDENCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfRkdFVEMgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9GU0NBTkYgMQ0KfCAjZGVm aW5lIEhBVkVfREVDTF9PUFRBUkcgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9VTkdFVEMgMQ0KfCAj ZGVmaW5lIEhBVkVfREVDTF9WRlBSSU5URiAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NZU19FUlJM SVNUIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1lTX05FUlIgMQ0KfCAjZGVmaW5lIFJFVFNJR1RZ UEUgdm9pZA0KfCAjZGVmaW5lIEhBVkVfSU5UTUFYX1QgMQ0KfCAjZGVmaW5lIEhBVkVfTE9OR19E T1VCTEUgMQ0KfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDENCnwgI2RlZmluZSBIQVZFX1BUUkRJ RkZfVCAxDQp8ICNkZWZpbmUgSEFWRV9VSU5UX0xFQVNUMzJfVCAxDQp8ICNkZWZpbmUgSEFWRV9T VFJJTkdJWkUgMQ0KfCAjZGVmaW5lIEhBVkVfU1REQVJHIDENCnwgI2RlZmluZSBIQVZFX0FUVFJJ QlVURV9DT05TVCAxDQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfTUFMTE9DIDENCnwgI2RlZmlu ZSBIQVZFX0FUVFJJQlVURV9NT0RFIDENCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9OT1JFVFVS TiAxDQp8ICNkZWZpbmUgSEFWRV9BTExPQ0FfSCAxDQp8ICNkZWZpbmUgSEFWRV9BTExPQ0EgMQ0K fCAjZGVmaW5lIFdBTlRfVE1QX0FMTE9DQSAxDQp8ICNkZWZpbmUgSEFWRV9MSU1CX0xJVFRMRV9F TkRJQU4gMQ0KfCAjZGVmaW5lIEhBVkVfRE9VQkxFX0lFRUVfTElUVExFX0VORElBTiAxDQp8ICNk ZWZpbmUgSEFWRV9BTEFSTSAxDQp8ICNkZWZpbmUgSEFWRV9DTE9DSyAxDQp8ICNkZWZpbmUgSEFW RV9DTE9DS19HRVRUSU1FIDENCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDENCnwgI2RlZmlu ZSBIQVZFX0dFVFJVU0FHRSAxDQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQ0KfCAjZGVm aW5lIEhBVkVfTE9DQUxFQ09OViAxDQp8ICNkZWZpbmUgSEFWRV9NRU1TRVQgMQ0KfCAjZGVmaW5l IEhBVkVfTU1BUCAxDQp8ICNkZWZpbmUgSEFWRV9NUFJPVEVDVCAxDQp8ICNkZWZpbmUgSEFWRV9O TF9MQU5HSU5GTyAxDQp8ICNkZWZpbmUgSEFWRV9QT1BFTiAxDQp8ICNkZWZpbmUgSEFWRV9SQUlT RSAxDQp8ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQ0KfCAjZGVmaW5lIEhBVkVfU1RSQ0hSIDEN CnwgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDENCnwgI2RlZmluZSBIQVZFX1NUUk5MRU4gMQ0KfCAj ZGVmaW5lIEhBVkVfU1RSVE9MIDENCnwgI2RlZmluZSBIQVZFX1NUUlRPVUwgMQ0KfCAjZGVmaW5l IEhBVkVfU1lTQ09ORiAxDQp8ICNkZWZpbmUgSEFWRV9USU1FUyAxDQp8ICNkZWZpbmUgSEFWRV9W U05QUklOVEYgMQ0KfCAjZGVmaW5lIEdNUF9NUEFSQU1fSF9TVUdHRVNUICIuL21wbi9nZW5lcmlj L2dtcC1tcGFyYW0uaCINCnwgI2RlZmluZSBTSVpFT0ZfVU5TSUdORURfU0hPUlQgMg0KfCAvKiBl bmQgY29uZmRlZnMuaC4gICovDQp8ICNpbmNsdWRlIDxzdGRpby5oPg0KfCAjaWYgSEFWRV9TWVNf VFlQRVNfSA0KfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPg0KfCAjZW5kaWYNCnwgI2lmIEhBVkVf U1lTX1NUQVRfSA0KfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+DQp8ICNlbmRpZg0KfCAjaWYgU1RE Q19IRUFERVJTDQp8ICMgaW5jbHVkZSA8c3RkbGliLmg+DQp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+ DQp8ICNlbHNlDQp8ICMgaWYgSEFWRV9TVERMSUJfSA0KfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4N CnwgIyBlbmRpZg0KfCAjZW5kaWYNCnwgI2lmIEhBVkVfU1RSSU5HX0gNCnwgIyBpZiAhU1REQ19I RUFERVJTICYmIEhBVkVfTUVNT1JZX0gNCnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+DQp8ICMgZW5k aWYNCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4NCnwgI2VuZGlmDQp8ICNpZiBIQVZFX1NUUklOR1Nf SA0KfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4NCnwgI2VuZGlmDQp8ICNpZiBIQVZFX0lOVFRZUEVT X0gNCnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPg0KfCAjZWxzZQ0KfCAjIGlmIEhBVkVfU1RESU5U X0gNCnwgIyAgaW5jbHVkZSA8c3RkaW50Lmg+DQp8ICMgZW5kaWYNCnwgI2VuZGlmDQp8ICNpZiBI QVZFX1VOSVNURF9IDQp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+DQp8ICNlbmRpZg0KfCBpbnQNCnwg bWFpbiAoKQ0KfCB7DQp8IHN0YXRpYyBpbnQgdGVzdF9hcnJheSBbMSAtIDIgKiAhKCgobG9uZykg KHNpemVvZiAodW5zaWduZWQpKSkgPD0gMSldOw0KfCB0ZXN0X2FycmF5IFswXSA9IDANCnwgDQp8 ICAgOw0KfCAgIHJldHVybiAwOw0KfCB9DQpjb25maWd1cmU6MzA4NTA6IGdjYyAtYyAtTzMgIGNv bmZ0ZXN0LmMgPiY1DQpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiBgbWFpbic6DQ0KY29uZnRlc3Qu YzoxMjM6IGVycm9yOiBzaXplIG9mIGFycmF5IGB0ZXN0X2FycmF5JyBpcyBuZWdhdGl2ZQ0NCmNv bmZpZ3VyZTozMDg1NjogJD8gPSAxDQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoNCnwg LyogY29uZmRlZnMuaC4gICovDQp8IA0KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIE1QIg0K fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ21wIg0KfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lP TiAiNC4yLjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBNUCA0LjIuMiINCnwgI2Rl ZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiZ21wLWJ1Z3NAc3dveC5jb20iDQp8ICNkZWZpbmUgUEFD S0FHRSAiZ21wIg0KfCAjZGVmaW5lIFZFUlNJT04gIjQuMi4yIg0KfCAjZGVmaW5lIFdBTlRfRkZU IDENCnwgI2RlZmluZSBIQVZFX0hPU1RfQ1BVX3BwY2JlIDENCnwgI2RlZmluZSBQUk9UT1RZUEVT IDENCnwgI2RlZmluZSBfX1BST1RPVFlQRVMgMQ0KfCAjZGVmaW5lIFNURENfSEVBREVSUyAxDQp8 ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEN CnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDENCnwg I2RlZmluZSBIQVZFX01FTU9SWV9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxDQp8ICNk ZWZpbmUgSEFWRV9JTlRUWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDENCnwgI2Rl ZmluZSBIQVZFX1VOSVNURF9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDENCnwgI2RlZmlu ZSBIQVZFX0RMRkNOX0ggMQ0KfCAjZGVmaW5lIFNURENfSEVBREVSUyAxDQp8ICNkZWZpbmUgVElN RV9XSVRIX1NZU19USU1FIDENCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQ0KfCAjZGVmaW5lIEhB VkVfRkxPQVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19IIDENCnwgI2RlZmluZSBIQVZF X0xPQ0FMRV9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19NTUFOX0ggMQ0KfCAjZGVmaW5lIEhBVkVf U1lTX1BBUkFNX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxDQp8ICNkZWZpbmUgSEFW RV9TWVNfVElNRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxDQp8ICNkZWZp bmUgSEFWRV9ERUNMX0ZHRVRDIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlNDQU5GIDENCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfT1BUQVJHIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5HRVRDIDENCnwg I2RlZmluZSBIQVZFX0RFQ0xfVkZQUklOVEYgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9TWVNfRVJS TElTVCAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NZU19ORVJSIDENCnwgI2RlZmluZSBSRVRTSUdU WVBFIHZvaWQNCnwgI2RlZmluZSBIQVZFX0lOVE1BWF9UIDENCnwgI2RlZmluZSBIQVZFX0xPTkdf RE9VQkxFIDENCnwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxDQp8ICNkZWZpbmUgSEFWRV9QVFJE SUZGX1QgMQ0KfCAjZGVmaW5lIEhBVkVfVUlOVF9MRUFTVDMyX1QgMQ0KfCAjZGVmaW5lIEhBVkVf U1RSSU5HSVpFIDENCnwgI2RlZmluZSBIQVZFX1NUREFSRyAxDQp8ICNkZWZpbmUgSEFWRV9BVFRS SUJVVEVfQ09OU1QgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX01BTExPQyAxDQp8ICNkZWZp bmUgSEFWRV9BVFRSSUJVVEVfTU9ERSAxDQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfTk9SRVRV Uk4gMQ0KfCAjZGVmaW5lIEhBVkVfQUxMT0NBX0ggMQ0KfCAjZGVmaW5lIEhBVkVfQUxMT0NBIDEN CnwgI2RlZmluZSBXQU5UX1RNUF9BTExPQ0EgMQ0KfCAjZGVmaW5lIEhBVkVfTElNQl9MSVRUTEVf RU5ESUFOIDENCnwgI2RlZmluZSBIQVZFX0RPVUJMRV9JRUVFX0xJVFRMRV9FTkRJQU4gMQ0KfCAj ZGVmaW5lIEhBVkVfQUxBUk0gMQ0KfCAjZGVmaW5lIEhBVkVfQ0xPQ0sgMQ0KfCAjZGVmaW5lIEhB VkVfQ0xPQ0tfR0VUVElNRSAxDQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxDQp8ICNkZWZp bmUgSEFWRV9HRVRSVVNBR0UgMQ0KfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDENCnwgI2Rl ZmluZSBIQVZFX0xPQ0FMRUNPTlYgMQ0KfCAjZGVmaW5lIEhBVkVfTUVNU0VUIDENCnwgI2RlZmlu ZSBIQVZFX01NQVAgMQ0KfCAjZGVmaW5lIEhBVkVfTVBST1RFQ1QgMQ0KfCAjZGVmaW5lIEhBVkVf TkxfTEFOR0lORk8gMQ0KfCAjZGVmaW5lIEhBVkVfUE9QRU4gMQ0KfCAjZGVmaW5lIEhBVkVfUkFJ U0UgMQ0KfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDENCnwgI2RlZmluZSBIQVZFX1NUUkNIUiAx DQp8ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxDQp8ICNkZWZpbmUgSEFWRV9TVFJOTEVOIDENCnwg I2RlZmluZSBIQVZFX1NUUlRPTCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJUT1VMIDENCnwgI2RlZmlu ZSBIQVZFX1NZU0NPTkYgMQ0KfCAjZGVmaW5lIEhBVkVfVElNRVMgMQ0KfCAjZGVmaW5lIEhBVkVf VlNOUFJJTlRGIDENCnwgI2RlZmluZSBHTVBfTVBBUkFNX0hfU1VHR0VTVCAiLi9tcG4vZ2VuZXJp Yy9nbXAtbXBhcmFtLmgiDQp8ICNkZWZpbmUgU0laRU9GX1VOU0lHTkVEX1NIT1JUIDINCnwgLyog ZW5kIGNvbmZkZWZzLmguICAqLw0KfCAjaW5jbHVkZSA8c3RkaW8uaD4NCnwgI2lmIEhBVkVfU1lT X1RZUEVTX0gNCnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4NCnwgI2VuZGlmDQp8ICNpZiBIQVZF X1NZU19TVEFUX0gNCnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPg0KfCAjZW5kaWYNCnwgI2lmIFNU RENfSEVBREVSUw0KfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPg0KfCAjIGluY2x1ZGUgPHN0ZGRlZi5o Pg0KfCAjZWxzZQ0KfCAjIGlmIEhBVkVfU1RETElCX0gNCnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+ DQp8ICMgZW5kaWYNCnwgI2VuZGlmDQp8ICNpZiBIQVZFX1NUUklOR19IDQp8ICMgaWYgIVNURENf SEVBREVSUyAmJiBIQVZFX01FTU9SWV9IDQp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPg0KfCAjIGVu ZGlmDQp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+DQp8ICNlbmRpZg0KfCAjaWYgSEFWRV9TVFJJTkdT X0gNCnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+DQp8ICNlbmRpZg0KfCAjaWYgSEFWRV9JTlRUWVBF U19IDQp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4NCnwgI2Vsc2UNCnwgIyBpZiBIQVZFX1NURElO VF9IDQp8ICMgIGluY2x1ZGUgPHN0ZGludC5oPg0KfCAjIGVuZGlmDQp8ICNlbmRpZg0KfCAjaWYg SEFWRV9VTklTVERfSA0KfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPg0KfCAjZW5kaWYNCnwgaW50DQp8 IG1haW4gKCkNCnwgew0KfCBzdGF0aWMgaW50IHRlc3RfYXJyYXkgWzEgLSAyICogISgoKGxvbmcp IChzaXplb2YgKHVuc2lnbmVkKSkpIDw9IDMpXTsNCnwgdGVzdF9hcnJheSBbMF0gPSAwDQp8IA0K fCAgIDsNCnwgICByZXR1cm4gMDsNCnwgfQ0KY29uZmlndXJlOjMwODUwOiBnY2MgLWMgLU8zICBj b25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjMwODU2OiAkPyA9IDANCmNvbmZpZ3VyZTozMDg2MDog dGVzdCAteiANCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyDQpjb25maWd1cmU6MzA4NjM6 ICQ/ID0gMA0KY29uZmlndXJlOjMwODY2OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8NCmNvbmZpZ3VyZToz MDg2OTogJD8gPSAwDQpjb25maWd1cmU6MzEwMTM6IGdjYyAtYyAtTzMgIGNvbmZ0ZXN0LmMgPiY1 DQpjb25maWd1cmU6MzEwMTk6ICQ/ID0gMA0KY29uZmlndXJlOjMxMDIzOiB0ZXN0IC16IA0KCQkJ IHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnINCmNvbmZpZ3VyZTozMTAyNjogJD8gPSAwDQpjb25m aWd1cmU6MzEwMjk6IHRlc3QgLXMgY29uZnRlc3Qubw0KY29uZmlndXJlOjMxMDMyOiAkPyA9IDAN CmNvbmZpZ3VyZTozMTAxMzogZ2NjIC1jIC1PMyAgY29uZnRlc3QuYyA+JjUNCmNvbmZpZ3VyZToz MTAxOTogJD8gPSAwDQpjb25maWd1cmU6MzEwMjM6IHRlc3QgLXogDQoJCQkgfHwgdGVzdCAhIC1z IGNvbmZ0ZXN0LmVycg0KY29uZmlndXJlOjMxMDI2OiAkPyA9IDANCmNvbmZpZ3VyZTozMTAyOTog dGVzdCAtcyBjb25mdGVzdC5vDQpjb25maWd1cmU6MzEwMzI6ICQ/ID0gMA0KY29uZmlndXJlOjMx MTI5OiByZXN1bHQ6IDQNCmNvbmZpZ3VyZTozMTEzNjogY2hlY2tpbmcgZm9yIHVuc2lnbmVkIGxv bmcNCmNvbmZpZ3VyZTozMTE2MDogZ2NjIC1jIC1PMyAgY29uZnRlc3QuYyA+JjUNCmNvbmZpZ3Vy ZTozMTE2NjogJD8gPSAwDQpjb25maWd1cmU6MzExNzA6IHRlc3QgLXogDQoJCQkgfHwgdGVzdCAh IC1zIGNvbmZ0ZXN0LmVycg0KY29uZmlndXJlOjMxMTczOiAkPyA9IDANCmNvbmZpZ3VyZTozMTE3 NjogdGVzdCAtcyBjb25mdGVzdC5vDQpjb25maWd1cmU6MzExNzk6ICQ/ID0gMA0KY29uZmlndXJl OjMxMTkwOiByZXN1bHQ6IHllcw0KY29uZmlndXJlOjMxMTkzOiBjaGVja2luZyBzaXplIG9mIHVu c2lnbmVkIGxvbmcNCmNvbmZpZ3VyZTozMTIyMzogZ2NjIC1jIC1PMyAgY29uZnRlc3QuYyA+JjUN CmNvbmZpZ3VyZTozMTIyOTogJD8gPSAwDQpjb25maWd1cmU6MzEyMzM6IHRlc3QgLXogDQoJCQkg fHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycg0KY29uZmlndXJlOjMxMjM2OiAkPyA9IDANCmNvbmZp Z3VyZTozMTIzOTogdGVzdCAtcyBjb25mdGVzdC5vDQpjb25maWd1cmU6MzEyNDI6ICQ/ID0gMA0K Y29uZmlndXJlOjMxMjY0OiBnY2MgLWMgLU8zICBjb25mdGVzdC5jID4mNQ0KY29uZnRlc3QuYzog SW4gZnVuY3Rpb24gYG1haW4nOg0NCmNvbmZ0ZXN0LmM6MTI0OiBlcnJvcjogc2l6ZSBvZiBhcnJh eSBgdGVzdF9hcnJheScgaXMgbmVnYXRpdmUNDQpjb25maWd1cmU6MzEyNzA6ICQ/ID0gMQ0KY29u ZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6DQp8IC8qIGNvbmZkZWZzLmguICAqLw0KfCANCnwg I2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBNUCINCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg ImdtcCINCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuMi4yIg0KfCAjZGVmaW5lIFBBQ0tB R0VfU1RSSU5HICJHTlUgTVAgNC4yLjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImdt cC1idWdzQHN3b3guY29tIg0KfCAjZGVmaW5lIFBBQ0tBR0UgImdtcCINCnwgI2RlZmluZSBWRVJT SU9OICI0LjIuMiINCnwgI2RlZmluZSBXQU5UX0ZGVCAxDQp8ICNkZWZpbmUgSEFWRV9IT1NUX0NQ VV9wcGNiZSAxDQp8ICNkZWZpbmUgUFJPVE9UWVBFUyAxDQp8ICNkZWZpbmUgX19QUk9UT1RZUEVT IDENCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0gg MQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAx DQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxDQp8 ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxDQp8 ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxDQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxDQp8ICNk ZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9ETEZDTl9IIDENCnwgI2RlZmlu ZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxDQp8ICNkZWZp bmUgSEFWRV9GQ05UTF9IIDENCnwgI2RlZmluZSBIQVZFX0ZMT0FUX0ggMQ0KfCAjZGVmaW5lIEhB VkVfTEFOR0lORk9fSCAxDQp8ICNkZWZpbmUgSEFWRV9MT0NBTEVfSCAxDQp8ICNkZWZpbmUgSEFW RV9TWVNfTU1BTl9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDENCnwgI2RlZmluZSBI QVZFX1NZU19USU1FX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVTX0ggMQ0KfCAjZGVmaW5l IEhBVkVfU1lTX1JFU09VUkNFX0ggMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9GR0VUQyAxDQp8ICNk ZWZpbmUgSEFWRV9ERUNMX0ZTQ0FORiAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX09QVEFSRyAxDQp8 ICNkZWZpbmUgSEFWRV9ERUNMX1VOR0VUQyAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZGUFJJTlRG IDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1lTX0VSUkxJU1QgMQ0KfCAjZGVmaW5lIEhBVkVfREVD TF9TWVNfTkVSUiAxDQp8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkDQp8ICNkZWZpbmUgSEFWRV9J TlRNQVhfVCAxDQp8ICNkZWZpbmUgSEFWRV9MT05HX0RPVUJMRSAxDQp8ICNkZWZpbmUgSEFWRV9M T05HX0xPTkcgMQ0KfCAjZGVmaW5lIEhBVkVfUFRSRElGRl9UIDENCnwgI2RlZmluZSBIQVZFX1VJ TlRfTEVBU1QzMl9UIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR0laRSAxDQp8ICNkZWZpbmUgSEFW RV9TVERBUkcgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX0NPTlNUIDENCnwgI2RlZmluZSBI QVZFX0FUVFJJQlVURV9NQUxMT0MgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX01PREUgMQ0K fCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX05PUkVUVVJOIDENCnwgI2RlZmluZSBIQVZFX0FMTE9D QV9IIDENCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxDQp8ICNkZWZpbmUgV0FOVF9UTVBfQUxMT0NB IDENCnwgI2RlZmluZSBIQVZFX0xJTUJfTElUVExFX0VORElBTiAxDQp8ICNkZWZpbmUgSEFWRV9E T1VCTEVfSUVFRV9MSVRUTEVfRU5ESUFOIDENCnwgI2RlZmluZSBIQVZFX0FMQVJNIDENCnwgI2Rl ZmluZSBIQVZFX0NMT0NLIDENCnwgI2RlZmluZSBIQVZFX0NMT0NLX0dFVFRJTUUgMQ0KfCAjZGVm aW5lIEhBVkVfR0VUUEFHRVNJWkUgMQ0KfCAjZGVmaW5lIEhBVkVfR0VUUlVTQUdFIDENCnwgI2Rl ZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxDQp8ICNkZWZpbmUgSEFWRV9MT0NBTEVDT05WIDENCnwg I2RlZmluZSBIQVZFX01FTVNFVCAxDQp8ICNkZWZpbmUgSEFWRV9NTUFQIDENCnwgI2RlZmluZSBI QVZFX01QUk9URUNUIDENCnwgI2RlZmluZSBIQVZFX05MX0xBTkdJTkZPIDENCnwgI2RlZmluZSBI QVZFX1BPUEVOIDENCnwgI2RlZmluZSBIQVZFX1JBSVNFIDENCnwgI2RlZmluZSBIQVZFX1NJR0FD VElPTiAxDQp8ICNkZWZpbmUgSEFWRV9TVFJDSFIgMQ0KfCAjZGVmaW5lIEhBVkVfU1RSRVJST1Ig MQ0KfCAjZGVmaW5lIEhBVkVfU1RSTkxFTiAxDQp8ICNkZWZpbmUgSEFWRV9TVFJUT0wgMQ0KfCAj ZGVmaW5lIEhBVkVfU1RSVE9VTCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNDT05GIDENCnwgI2RlZmlu ZSBIQVZFX1RJTUVTIDENCnwgI2RlZmluZSBIQVZFX1ZTTlBSSU5URiAxDQp8ICNkZWZpbmUgR01Q X01QQVJBTV9IX1NVR0dFU1QgIi4vbXBuL2dlbmVyaWMvZ21wLW1wYXJhbS5oIg0KfCAjZGVmaW5l IFNJWkVPRl9VTlNJR05FRF9TSE9SVCAyDQp8ICNkZWZpbmUgU0laRU9GX1VOU0lHTkVEIDQNCnwg LyogZW5kIGNvbmZkZWZzLmguICAqLw0KfCAjaW5jbHVkZSA8c3RkaW8uaD4NCnwgI2lmIEhBVkVf U1lTX1RZUEVTX0gNCnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4NCnwgI2VuZGlmDQp8ICNpZiBI QVZFX1NZU19TVEFUX0gNCnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPg0KfCAjZW5kaWYNCnwgI2lm IFNURENfSEVBREVSUw0KfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPg0KfCAjIGluY2x1ZGUgPHN0ZGRl Zi5oPg0KfCAjZWxzZQ0KfCAjIGlmIEhBVkVfU1RETElCX0gNCnwgIyAgaW5jbHVkZSA8c3RkbGli Lmg+DQp8ICMgZW5kaWYNCnwgI2VuZGlmDQp8ICNpZiBIQVZFX1NUUklOR19IDQp8ICMgaWYgIVNU RENfSEVBREVSUyAmJiBIQVZFX01FTU9SWV9IDQp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPg0KfCAj IGVuZGlmDQp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+DQp8ICNlbmRpZg0KfCAjaWYgSEFWRV9TVFJJ TkdTX0gNCnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+DQp8ICNlbmRpZg0KfCAjaWYgSEFWRV9JTlRU WVBFU19IDQp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4NCnwgI2Vsc2UNCnwgIyBpZiBIQVZFX1NU RElOVF9IDQp8ICMgIGluY2x1ZGUgPHN0ZGludC5oPg0KfCAjIGVuZGlmDQp8ICNlbmRpZg0KfCAj aWYgSEFWRV9VTklTVERfSA0KfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPg0KfCAjZW5kaWYNCnwgaW50 DQp8IG1haW4gKCkNCnwgew0KfCBzdGF0aWMgaW50IHRlc3RfYXJyYXkgWzEgLSAyICogISgoKGxv bmcpIChzaXplb2YgKHVuc2lnbmVkIGxvbmcpKSkgPD0gMCldOw0KfCB0ZXN0X2FycmF5IFswXSA9 IDANCnwgDQp8ICAgOw0KfCAgIHJldHVybiAwOw0KfCB9DQpjb25maWd1cmU6MzEyNjQ6IGdjYyAt YyAtTzMgIGNvbmZ0ZXN0LmMgPiY1DQpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiBgbWFpbic6DQ0K Y29uZnRlc3QuYzoxMjQ6IGVycm9yOiBzaXplIG9mIGFycmF5IGB0ZXN0X2FycmF5JyBpcyBuZWdh dGl2ZQ0NCmNvbmZpZ3VyZTozMTI3MDogJD8gPSAxDQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFt IHdhczoNCnwgLyogY29uZmRlZnMuaC4gICovDQp8IA0KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAi R05VIE1QIg0KfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ21wIg0KfCAjZGVmaW5lIFBBQ0tB R0VfVkVSU0lPTiAiNC4yLjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBNUCA0LjIu MiINCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiZ21wLWJ1Z3NAc3dveC5jb20iDQp8ICNk ZWZpbmUgUEFDS0FHRSAiZ21wIg0KfCAjZGVmaW5lIFZFUlNJT04gIjQuMi4yIg0KfCAjZGVmaW5l IFdBTlRfRkZUIDENCnwgI2RlZmluZSBIQVZFX0hPU1RfQ1BVX3BwY2JlIDENCnwgI2RlZmluZSBQ Uk9UT1RZUEVTIDENCnwgI2RlZmluZSBfX1BST1RPVFlQRVMgMQ0KfCAjZGVmaW5lIFNURENfSEVB REVSUyAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNf U1RBVF9IIDENCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklO R19IIDENCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR1Nf SCAxDQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NURElOVF9I IDENCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEN CnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQ0KfCAjZGVmaW5lIFNURENfSEVBREVSUyAxDQp8ICNk ZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDENCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQ0KfCAj ZGVmaW5lIEhBVkVfRkxPQVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19IIDENCnwgI2Rl ZmluZSBIQVZFX0xPQ0FMRV9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19NTUFOX0ggMQ0KfCAjZGVm aW5lIEhBVkVfU1lTX1BBUkFNX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxDQp8ICNk ZWZpbmUgSEFWRV9TWVNfVElNRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAx DQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZHRVRDIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlNDQU5G IDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfT1BUQVJHIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5H RVRDIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfVkZQUklOVEYgMQ0KfCAjZGVmaW5lIEhBVkVfREVD TF9TWVNfRVJSTElTVCAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NZU19ORVJSIDENCnwgI2RlZmlu ZSBSRVRTSUdUWVBFIHZvaWQNCnwgI2RlZmluZSBIQVZFX0lOVE1BWF9UIDENCnwgI2RlZmluZSBI QVZFX0xPTkdfRE9VQkxFIDENCnwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxDQp8ICNkZWZpbmUg SEFWRV9QVFJESUZGX1QgMQ0KfCAjZGVmaW5lIEhBVkVfVUlOVF9MRUFTVDMyX1QgMQ0KfCAjZGVm aW5lIEhBVkVfU1RSSU5HSVpFIDENCnwgI2RlZmluZSBIQVZFX1NUREFSRyAxDQp8ICNkZWZpbmUg SEFWRV9BVFRSSUJVVEVfQ09OU1QgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX01BTExPQyAx DQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfTU9ERSAxDQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJV VEVfTk9SRVRVUk4gMQ0KfCAjZGVmaW5lIEhBVkVfQUxMT0NBX0ggMQ0KfCAjZGVmaW5lIEhBVkVf QUxMT0NBIDENCnwgI2RlZmluZSBXQU5UX1RNUF9BTExPQ0EgMQ0KfCAjZGVmaW5lIEhBVkVfTElN Ql9MSVRUTEVfRU5ESUFOIDENCnwgI2RlZmluZSBIQVZFX0RPVUJMRV9JRUVFX0xJVFRMRV9FTkRJ QU4gMQ0KfCAjZGVmaW5lIEhBVkVfQUxBUk0gMQ0KfCAjZGVmaW5lIEhBVkVfQ0xPQ0sgMQ0KfCAj ZGVmaW5lIEhBVkVfQ0xPQ0tfR0VUVElNRSAxDQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAx DQp8ICNkZWZpbmUgSEFWRV9HRVRSVVNBR0UgMQ0KfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZ IDENCnwgI2RlZmluZSBIQVZFX0xPQ0FMRUNPTlYgMQ0KfCAjZGVmaW5lIEhBVkVfTUVNU0VUIDEN CnwgI2RlZmluZSBIQVZFX01NQVAgMQ0KfCAjZGVmaW5lIEhBVkVfTVBST1RFQ1QgMQ0KfCAjZGVm aW5lIEhBVkVfTkxfTEFOR0lORk8gMQ0KfCAjZGVmaW5lIEhBVkVfUE9QRU4gMQ0KfCAjZGVmaW5l IEhBVkVfUkFJU0UgMQ0KfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDENCnwgI2RlZmluZSBIQVZF X1NUUkNIUiAxDQp8ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxDQp8ICNkZWZpbmUgSEFWRV9TVFJO TEVOIDENCnwgI2RlZmluZSBIQVZFX1NUUlRPTCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJUT1VMIDEN CnwgI2RlZmluZSBIQVZFX1NZU0NPTkYgMQ0KfCAjZGVmaW5lIEhBVkVfVElNRVMgMQ0KfCAjZGVm aW5lIEhBVkVfVlNOUFJJTlRGIDENCnwgI2RlZmluZSBHTVBfTVBBUkFNX0hfU1VHR0VTVCAiLi9t cG4vZ2VuZXJpYy9nbXAtbXBhcmFtLmgiDQp8ICNkZWZpbmUgU0laRU9GX1VOU0lHTkVEX1NIT1JU IDINCnwgI2RlZmluZSBTSVpFT0ZfVU5TSUdORUQgNA0KfCAvKiBlbmQgY29uZmRlZnMuaC4gICov DQp8ICNpbmNsdWRlIDxzdGRpby5oPg0KfCAjaWYgSEFWRV9TWVNfVFlQRVNfSA0KfCAjIGluY2x1 ZGUgPHN5cy90eXBlcy5oPg0KfCAjZW5kaWYNCnwgI2lmIEhBVkVfU1lTX1NUQVRfSA0KfCAjIGlu Y2x1ZGUgPHN5cy9zdGF0Lmg+DQp8ICNlbmRpZg0KfCAjaWYgU1REQ19IRUFERVJTDQp8ICMgaW5j bHVkZSA8c3RkbGliLmg+DQp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+DQp8ICNlbHNlDQp8ICMgaWYg SEFWRV9TVERMSUJfSA0KfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4NCnwgIyBlbmRpZg0KfCAjZW5k aWYNCnwgI2lmIEhBVkVfU1RSSU5HX0gNCnwgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVN T1JZX0gNCnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+DQp8ICMgZW5kaWYNCnwgIyBpbmNsdWRlIDxz dHJpbmcuaD4NCnwgI2VuZGlmDQp8ICNpZiBIQVZFX1NUUklOR1NfSA0KfCAjIGluY2x1ZGUgPHN0 cmluZ3MuaD4NCnwgI2VuZGlmDQp8ICNpZiBIQVZFX0lOVFRZUEVTX0gNCnwgIyBpbmNsdWRlIDxp bnR0eXBlcy5oPg0KfCAjZWxzZQ0KfCAjIGlmIEhBVkVfU1RESU5UX0gNCnwgIyAgaW5jbHVkZSA8 c3RkaW50Lmg+DQp8ICMgZW5kaWYNCnwgI2VuZGlmDQp8ICNpZiBIQVZFX1VOSVNURF9IDQp8ICMg aW5jbHVkZSA8dW5pc3RkLmg+DQp8ICNlbmRpZg0KfCBpbnQNCnwgbWFpbiAoKQ0KfCB7DQp8IHN0 YXRpYyBpbnQgdGVzdF9hcnJheSBbMSAtIDIgKiAhKCgobG9uZykgKHNpemVvZiAodW5zaWduZWQg bG9uZykpKSA8PSAxKV07DQp8IHRlc3RfYXJyYXkgWzBdID0gMA0KfCANCnwgICA7DQp8ICAgcmV0 dXJuIDA7DQp8IH0NCmNvbmZpZ3VyZTozMTI2NDogZ2NjIC1jIC1PMyAgY29uZnRlc3QuYyA+JjUN CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uIGBtYWluJzoNDQpjb25mdGVzdC5jOjEyNDogZXJyb3I6 IHNpemUgb2YgYXJyYXkgYHRlc3RfYXJyYXknIGlzIG5lZ2F0aXZlDQ0KY29uZmlndXJlOjMxMjcw OiAkPyA9IDENCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOg0KfCAvKiBjb25mZGVmcy5o LiAgKi8NCnwgDQp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgTVAiDQp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJnbXAiDQp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjIuMiINCnwg I2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIE1QIDQuMi4yIg0KfCAjZGVmaW5lIFBBQ0tBR0Vf QlVHUkVQT1JUICJnbXAtYnVnc0Bzd294LmNvbSINCnwgI2RlZmluZSBQQUNLQUdFICJnbXAiDQp8 ICNkZWZpbmUgVkVSU0lPTiAiNC4yLjIiDQp8ICNkZWZpbmUgV0FOVF9GRlQgMQ0KfCAjZGVmaW5l IEhBVkVfSE9TVF9DUFVfcHBjYmUgMQ0KfCAjZGVmaW5lIFBST1RPVFlQRVMgMQ0KfCAjZGVmaW5l IF9fUFJPVE9UWVBFUyAxDQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDENCnwgI2RlZmluZSBIQVZF X1NZU19UWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQ0KfCAjZGVmaW5lIEhB VkVfU1RETElCX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQ0KfCAjZGVmaW5lIEhBVkVf TUVNT1JZX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDENCnwgI2RlZmluZSBIQVZFX0lO VFRZUEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQ0KfCAjZGVmaW5lIEhBVkVfVU5J U1REX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQ0KfCAjZGVmaW5lIEhBVkVfRExGQ05f SCAxDQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDENCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJ TUUgMQ0KfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxDQp8ICNkZWZpbmUgSEFWRV9GTE9BVF9IIDEN CnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTE9DQUxFX0ggMQ0K fCAjZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAx DQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19USU1FU19I IDENCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xf RkdFVEMgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9GU0NBTkYgMQ0KfCAjZGVmaW5lIEhBVkVfREVD TF9PUFRBUkcgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9VTkdFVEMgMQ0KfCAjZGVmaW5lIEhBVkVf REVDTF9WRlBSSU5URiAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NZU19FUlJMSVNUIDENCnwgI2Rl ZmluZSBIQVZFX0RFQ0xfU1lTX05FUlIgMQ0KfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZA0KfCAj ZGVmaW5lIEhBVkVfSU5UTUFYX1QgMQ0KfCAjZGVmaW5lIEhBVkVfTE9OR19ET1VCTEUgMQ0KfCAj ZGVmaW5lIEhBVkVfTE9OR19MT05HIDENCnwgI2RlZmluZSBIQVZFX1BUUkRJRkZfVCAxDQp8ICNk ZWZpbmUgSEFWRV9VSU5UX0xFQVNUMzJfVCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdJWkUgMQ0K fCAjZGVmaW5lIEhBVkVfU1REQVJHIDENCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9DT05TVCAx DQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfTUFMTE9DIDENCnwgI2RlZmluZSBIQVZFX0FUVFJJ QlVURV9NT0RFIDENCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9OT1JFVFVSTiAxDQp8ICNkZWZp bmUgSEFWRV9BTExPQ0FfSCAxDQp8ICNkZWZpbmUgSEFWRV9BTExPQ0EgMQ0KfCAjZGVmaW5lIFdB TlRfVE1QX0FMTE9DQSAxDQp8ICNkZWZpbmUgSEFWRV9MSU1CX0xJVFRMRV9FTkRJQU4gMQ0KfCAj ZGVmaW5lIEhBVkVfRE9VQkxFX0lFRUVfTElUVExFX0VORElBTiAxDQp8ICNkZWZpbmUgSEFWRV9B TEFSTSAxDQp8ICNkZWZpbmUgSEFWRV9DTE9DSyAxDQp8ICNkZWZpbmUgSEFWRV9DTE9DS19HRVRU SU1FIDENCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDENCnwgI2RlZmluZSBIQVZFX0dFVFJV U0FHRSAxDQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQ0KfCAjZGVmaW5lIEhBVkVfTE9D QUxFQ09OViAxDQp8ICNkZWZpbmUgSEFWRV9NRU1TRVQgMQ0KfCAjZGVmaW5lIEhBVkVfTU1BUCAx DQp8ICNkZWZpbmUgSEFWRV9NUFJPVEVDVCAxDQp8ICNkZWZpbmUgSEFWRV9OTF9MQU5HSU5GTyAx DQp8ICNkZWZpbmUgSEFWRV9QT1BFTiAxDQp8ICNkZWZpbmUgSEFWRV9SQUlTRSAxDQp8ICNkZWZp bmUgSEFWRV9TSUdBQ1RJT04gMQ0KfCAjZGVmaW5lIEhBVkVfU1RSQ0hSIDENCnwgI2RlZmluZSBI QVZFX1NUUkVSUk9SIDENCnwgI2RlZmluZSBIQVZFX1NUUk5MRU4gMQ0KfCAjZGVmaW5lIEhBVkVf U1RSVE9MIDENCnwgI2RlZmluZSBIQVZFX1NUUlRPVUwgMQ0KfCAjZGVmaW5lIEhBVkVfU1lTQ09O RiAxDQp8ICNkZWZpbmUgSEFWRV9USU1FUyAxDQp8ICNkZWZpbmUgSEFWRV9WU05QUklOVEYgMQ0K fCAjZGVmaW5lIEdNUF9NUEFSQU1fSF9TVUdHRVNUICIuL21wbi9nZW5lcmljL2dtcC1tcGFyYW0u aCINCnwgI2RlZmluZSBTSVpFT0ZfVU5TSUdORURfU0hPUlQgMg0KfCAjZGVmaW5lIFNJWkVPRl9V TlNJR05FRCA0DQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8NCnwgI2luY2x1ZGUgPHN0ZGlvLmg+ DQp8ICNpZiBIQVZFX1NZU19UWVBFU19IDQp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+DQp8ICNl bmRpZg0KfCAjaWYgSEFWRV9TWVNfU1RBVF9IDQp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4NCnwg I2VuZGlmDQp8ICNpZiBTVERDX0hFQURFUlMNCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4NCnwgIyBp bmNsdWRlIDxzdGRkZWYuaD4NCnwgI2Vsc2UNCnwgIyBpZiBIQVZFX1NURExJQl9IDQp8ICMgIGlu Y2x1ZGUgPHN0ZGxpYi5oPg0KfCAjIGVuZGlmDQp8ICNlbmRpZg0KfCAjaWYgSEFWRV9TVFJJTkdf SA0KfCAjIGlmICFTVERDX0hFQURFUlMgJiYgSEFWRV9NRU1PUllfSA0KfCAjICBpbmNsdWRlIDxt ZW1vcnkuaD4NCnwgIyBlbmRpZg0KfCAjIGluY2x1ZGUgPHN0cmluZy5oPg0KfCAjZW5kaWYNCnwg I2lmIEhBVkVfU1RSSU5HU19IDQp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPg0KfCAjZW5kaWYNCnwg I2lmIEhBVkVfSU5UVFlQRVNfSA0KfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+DQp8ICNlbHNlDQp8 ICMgaWYgSEFWRV9TVERJTlRfSA0KfCAjICBpbmNsdWRlIDxzdGRpbnQuaD4NCnwgIyBlbmRpZg0K fCAjZW5kaWYNCnwgI2lmIEhBVkVfVU5JU1REX0gNCnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4NCnwg I2VuZGlmDQp8IGludA0KfCBtYWluICgpDQp8IHsNCnwgc3RhdGljIGludCB0ZXN0X2FycmF5IFsx IC0gMiAqICEoKChsb25nKSAoc2l6ZW9mICh1bnNpZ25lZCBsb25nKSkpIDw9IDMpXTsNCnwgdGVz dF9hcnJheSBbMF0gPSAwDQp8IA0KfCAgIDsNCnwgICByZXR1cm4gMDsNCnwgfQ0KY29uZmlndXJl OjMxMjY0OiBnY2MgLWMgLU8zICBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjMxMjcwOiAkPyA9 IDANCmNvbmZpZ3VyZTozMTI3NDogdGVzdCAteiANCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3Qu ZXJyDQpjb25maWd1cmU6MzEyNzc6ICQ/ID0gMA0KY29uZmlndXJlOjMxMjgwOiB0ZXN0IC1zIGNv bmZ0ZXN0Lm8NCmNvbmZpZ3VyZTozMTI4MzogJD8gPSAwDQpjb25maWd1cmU6MzE0Mjc6IGdjYyAt YyAtTzMgIGNvbmZ0ZXN0LmMgPiY1DQpjb25maWd1cmU6MzE0MzM6ICQ/ID0gMA0KY29uZmlndXJl OjMxNDM3OiB0ZXN0IC16IA0KCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnINCmNvbmZpZ3Vy ZTozMTQ0MDogJD8gPSAwDQpjb25maWd1cmU6MzE0NDM6IHRlc3QgLXMgY29uZnRlc3Qubw0KY29u ZmlndXJlOjMxNDQ2OiAkPyA9IDANCmNvbmZpZ3VyZTozMTQyNzogZ2NjIC1jIC1PMyAgY29uZnRl c3QuYyA+JjUNCmNvbmZpZ3VyZTozMTQzMzogJD8gPSAwDQpjb25maWd1cmU6MzE0Mzc6IHRlc3Qg LXogDQoJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycg0KY29uZmlndXJlOjMxNDQwOiAkPyA9 IDANCmNvbmZpZ3VyZTozMTQ0MzogdGVzdCAtcyBjb25mdGVzdC5vDQpjb25maWd1cmU6MzE0NDY6 ICQ/ID0gMA0KY29uZmlndXJlOjMxNTQzOiByZXN1bHQ6IDQNCmNvbmZpZ3VyZTozMTU1MDogY2hl Y2tpbmcgZm9yIG1wX2xpbWJfdA0KY29uZmlndXJlOjMxNTgxOiBnY2MgLWMgLU8zICBjb25mdGVz dC5jID4mNQ0KY29uZmlndXJlOjMxNTg3OiAkPyA9IDANCmNvbmZpZ3VyZTozMTU5MTogdGVzdCAt eiANCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyDQpjb25maWd1cmU6MzE1OTQ6ICQ/ID0g MA0KY29uZmlndXJlOjMxNTk3OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8NCmNvbmZpZ3VyZTozMTYwMDog JD8gPSAwDQpjb25maWd1cmU6MzE2MTE6IHJlc3VsdDogeWVzDQpjb25maWd1cmU6MzE2MTQ6IGNo ZWNraW5nIHNpemUgb2YgbXBfbGltYl90DQpjb25maWd1cmU6MzE2NTE6IGdjYyAtYyAtTzMgIGNv bmZ0ZXN0LmMgPiY1DQpjb25maWd1cmU6MzE2NTc6ICQ/ID0gMA0KY29uZmlndXJlOjMxNjYxOiB0 ZXN0IC16IA0KCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnINCmNvbmZpZ3VyZTozMTY2NDog JD8gPSAwDQpjb25maWd1cmU6MzE2Njc6IHRlc3QgLXMgY29uZnRlc3Qubw0KY29uZmlndXJlOjMx NjcwOiAkPyA9IDANCmNvbmZpZ3VyZTozMTY5OTogZ2NjIC1jIC1PMyAgY29uZnRlc3QuYyA+JjUN CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uIGBtYWluJzoNDQpjb25mdGVzdC5jOjk5OiBlcnJvcjog c2l6ZSBvZiBhcnJheSBgdGVzdF9hcnJheScgaXMgbmVnYXRpdmUNDQpjb25maWd1cmU6MzE3MDU6 ICQ/ID0gMQ0KY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6DQp8IC8qIGNvbmZkZWZzLmgu ICAqLw0KfCANCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBNUCINCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgImdtcCINCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuMi4yIg0KfCAj ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgTVAgNC4yLjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9C VUdSRVBPUlQgImdtcC1idWdzQHN3b3guY29tIg0KfCAjZGVmaW5lIFBBQ0tBR0UgImdtcCINCnwg I2RlZmluZSBWRVJTSU9OICI0LjIuMiINCnwgI2RlZmluZSBXQU5UX0ZGVCAxDQp8ICNkZWZpbmUg SEFWRV9IT1NUX0NQVV9wcGNiZSAxDQp8ICNkZWZpbmUgUFJPVE9UWVBFUyAxDQp8ICNkZWZpbmUg X19QUk9UT1RZUEVTIDENCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIEhBVkVf U1lTX1RZUEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxDQp8ICNkZWZpbmUgSEFW RV9TVERMSUJfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9N RU1PUllfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfSU5U VFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxDQp8ICNkZWZpbmUgSEFWRV9VTklT VERfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9ETEZDTl9I IDENCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElN RSAxDQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDENCnwgI2RlZmluZSBIQVZFX0ZMT0FUX0ggMQ0K fCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fSCAxDQp8ICNkZWZpbmUgSEFWRV9MT0NBTEVfSCAxDQp8 ICNkZWZpbmUgSEFWRV9TWVNfTU1BTl9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEN CnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVTX0gg MQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9G R0VUQyAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZTQ0FORiAxDQp8ICNkZWZpbmUgSEFWRV9ERUNM X09QVEFSRyAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOR0VUQyAxDQp8ICNkZWZpbmUgSEFWRV9E RUNMX1ZGUFJJTlRGIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1lTX0VSUkxJU1QgMQ0KfCAjZGVm aW5lIEhBVkVfREVDTF9TWVNfTkVSUiAxDQp8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkDQp8ICNk ZWZpbmUgSEFWRV9JTlRNQVhfVCAxDQp8ICNkZWZpbmUgSEFWRV9MT05HX0RPVUJMRSAxDQp8ICNk ZWZpbmUgSEFWRV9MT05HX0xPTkcgMQ0KfCAjZGVmaW5lIEhBVkVfUFRSRElGRl9UIDENCnwgI2Rl ZmluZSBIQVZFX1VJTlRfTEVBU1QzMl9UIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR0laRSAxDQp8 ICNkZWZpbmUgSEFWRV9TVERBUkcgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX0NPTlNUIDEN CnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9NQUxMT0MgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklC VVRFX01PREUgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX05PUkVUVVJOIDENCnwgI2RlZmlu ZSBIQVZFX0FMTE9DQV9IIDENCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxDQp8ICNkZWZpbmUgV0FO VF9UTVBfQUxMT0NBIDENCnwgI2RlZmluZSBIQVZFX0xJTUJfTElUVExFX0VORElBTiAxDQp8ICNk ZWZpbmUgSEFWRV9ET1VCTEVfSUVFRV9MSVRUTEVfRU5ESUFOIDENCnwgI2RlZmluZSBIQVZFX0FM QVJNIDENCnwgI2RlZmluZSBIQVZFX0NMT0NLIDENCnwgI2RlZmluZSBIQVZFX0NMT0NLX0dFVFRJ TUUgMQ0KfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQ0KfCAjZGVmaW5lIEhBVkVfR0VUUlVT QUdFIDENCnwgI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxDQp8ICNkZWZpbmUgSEFWRV9MT0NB TEVDT05WIDENCnwgI2RlZmluZSBIQVZFX01FTVNFVCAxDQp8ICNkZWZpbmUgSEFWRV9NTUFQIDEN CnwgI2RlZmluZSBIQVZFX01QUk9URUNUIDENCnwgI2RlZmluZSBIQVZFX05MX0xBTkdJTkZPIDEN CnwgI2RlZmluZSBIQVZFX1BPUEVOIDENCnwgI2RlZmluZSBIQVZFX1JBSVNFIDENCnwgI2RlZmlu ZSBIQVZFX1NJR0FDVElPTiAxDQp8ICNkZWZpbmUgSEFWRV9TVFJDSFIgMQ0KfCAjZGVmaW5lIEhB VkVfU1RSRVJST1IgMQ0KfCAjZGVmaW5lIEhBVkVfU1RSTkxFTiAxDQp8ICNkZWZpbmUgSEFWRV9T VFJUT0wgMQ0KfCAjZGVmaW5lIEhBVkVfU1RSVE9VTCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNDT05G IDENCnwgI2RlZmluZSBIQVZFX1RJTUVTIDENCnwgI2RlZmluZSBIQVZFX1ZTTlBSSU5URiAxDQp8 ICNkZWZpbmUgR01QX01QQVJBTV9IX1NVR0dFU1QgIi4vbXBuL2dlbmVyaWMvZ21wLW1wYXJhbS5o Ig0KfCAjZGVmaW5lIFNJWkVPRl9VTlNJR05FRF9TSE9SVCAyDQp8ICNkZWZpbmUgU0laRU9GX1VO U0lHTkVEIDQNCnwgI2RlZmluZSBTSVpFT0ZfVU5TSUdORURfTE9ORyA0DQp8IC8qIGVuZCBjb25m ZGVmcy5oLiAgKi8NCnwgI2RlZmluZSBfX0dNUF9XSVRISU5fQ09ORklHVVJFIDEgICAvKiBpZ25v cmUgdGVtcGxhdGUgc3R1ZmYgKi8NCnwgI2RlZmluZSBHTVBfTkFJTF9CSVRTIDANCnwgI2RlZmlu ZSBfX0dNUF9CSVRTX1BFUl9NUF9MSU1CIDEyMyAvKiBkdW1teSBmb3IgR01QX05VTUJfQklUUyBl dGMgKi8NCnwgI2RlZmluZSBHTVBfTElNQl9CSVRTIDEyMw0KfCAvKiAjdW5kZWYgX0xPTkdfTE9O R19MSU1CICovDQp8ICNpbmNsdWRlICIuL2dtcC1oLmluIg0KfCANCnwgDQp8IGludA0KfCBtYWlu ICgpDQp8IHsNCnwgc3RhdGljIGludCB0ZXN0X2FycmF5IFsxIC0gMiAqICEoKChsb25nKSAoc2l6 ZW9mIChtcF9saW1iX3QpKSkgPD0gMCldOw0KfCB0ZXN0X2FycmF5IFswXSA9IDANCnwgDQp8ICAg Ow0KfCAgIHJldHVybiAwOw0KfCB9DQpjb25maWd1cmU6MzE2OTk6IGdjYyAtYyAtTzMgIGNvbmZ0 ZXN0LmMgPiY1DQpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiBgbWFpbic6DQ0KY29uZnRlc3QuYzo5 OTogZXJyb3I6IHNpemUgb2YgYXJyYXkgYHRlc3RfYXJyYXknIGlzIG5lZ2F0aXZlDQ0KY29uZmln dXJlOjMxNzA1OiAkPyA9IDENCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOg0KfCAvKiBj b25mZGVmcy5oLiAgKi8NCnwgDQp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgTVAiDQp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJnbXAiDQp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0 LjIuMiINCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIE1QIDQuMi4yIg0KfCAjZGVmaW5l IFBBQ0tBR0VfQlVHUkVQT1JUICJnbXAtYnVnc0Bzd294LmNvbSINCnwgI2RlZmluZSBQQUNLQUdF ICJnbXAiDQp8ICNkZWZpbmUgVkVSU0lPTiAiNC4yLjIiDQp8ICNkZWZpbmUgV0FOVF9GRlQgMQ0K fCAjZGVmaW5lIEhBVkVfSE9TVF9DUFVfcHBjYmUgMQ0KfCAjZGVmaW5lIFBST1RPVFlQRVMgMQ0K fCAjZGVmaW5lIF9fUFJPVE9UWVBFUyAxDQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDENCnwgI2Rl ZmluZSBIQVZFX1NZU19UWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQ0KfCAj ZGVmaW5lIEhBVkVfU1RETElCX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQ0KfCAjZGVm aW5lIEhBVkVfTUVNT1JZX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDENCnwgI2RlZmlu ZSBIQVZFX0lOVFRZUEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQ0KfCAjZGVmaW5l IEhBVkVfVU5JU1REX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQ0KfCAjZGVmaW5lIEhB VkVfRExGQ05fSCAxDQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDENCnwgI2RlZmluZSBUSU1FX1dJ VEhfU1lTX1RJTUUgMQ0KfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxDQp8ICNkZWZpbmUgSEFWRV9G TE9BVF9IIDENCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTE9D QUxFX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNf UEFSQU1fSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDENCnwgI2RlZmluZSBIQVZFX1NZ U19USU1FU19IIDENCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDENCnwgI2RlZmluZSBI QVZFX0RFQ0xfRkdFVEMgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9GU0NBTkYgMQ0KfCAjZGVmaW5l IEhBVkVfREVDTF9PUFRBUkcgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9VTkdFVEMgMQ0KfCAjZGVm aW5lIEhBVkVfREVDTF9WRlBSSU5URiAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NZU19FUlJMSVNU IDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1lTX05FUlIgMQ0KfCAjZGVmaW5lIFJFVFNJR1RZUEUg dm9pZA0KfCAjZGVmaW5lIEhBVkVfSU5UTUFYX1QgMQ0KfCAjZGVmaW5lIEhBVkVfTE9OR19ET1VC TEUgMQ0KfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDENCnwgI2RlZmluZSBIQVZFX1BUUkRJRkZf VCAxDQp8ICNkZWZpbmUgSEFWRV9VSU5UX0xFQVNUMzJfVCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJ TkdJWkUgMQ0KfCAjZGVmaW5lIEhBVkVfU1REQVJHIDENCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVU RV9DT05TVCAxDQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfTUFMTE9DIDENCnwgI2RlZmluZSBI QVZFX0FUVFJJQlVURV9NT0RFIDENCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9OT1JFVFVSTiAx DQp8ICNkZWZpbmUgSEFWRV9BTExPQ0FfSCAxDQp8ICNkZWZpbmUgSEFWRV9BTExPQ0EgMQ0KfCAj ZGVmaW5lIFdBTlRfVE1QX0FMTE9DQSAxDQp8ICNkZWZpbmUgSEFWRV9MSU1CX0xJVFRMRV9FTkRJ QU4gMQ0KfCAjZGVmaW5lIEhBVkVfRE9VQkxFX0lFRUVfTElUVExFX0VORElBTiAxDQp8ICNkZWZp bmUgSEFWRV9BTEFSTSAxDQp8ICNkZWZpbmUgSEFWRV9DTE9DSyAxDQp8ICNkZWZpbmUgSEFWRV9D TE9DS19HRVRUSU1FIDENCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDENCnwgI2RlZmluZSBI QVZFX0dFVFJVU0FHRSAxDQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQ0KfCAjZGVmaW5l IEhBVkVfTE9DQUxFQ09OViAxDQp8ICNkZWZpbmUgSEFWRV9NRU1TRVQgMQ0KfCAjZGVmaW5lIEhB VkVfTU1BUCAxDQp8ICNkZWZpbmUgSEFWRV9NUFJPVEVDVCAxDQp8ICNkZWZpbmUgSEFWRV9OTF9M QU5HSU5GTyAxDQp8ICNkZWZpbmUgSEFWRV9QT1BFTiAxDQp8ICNkZWZpbmUgSEFWRV9SQUlTRSAx DQp8ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQ0KfCAjZGVmaW5lIEhBVkVfU1RSQ0hSIDENCnwg I2RlZmluZSBIQVZFX1NUUkVSUk9SIDENCnwgI2RlZmluZSBIQVZFX1NUUk5MRU4gMQ0KfCAjZGVm aW5lIEhBVkVfU1RSVE9MIDENCnwgI2RlZmluZSBIQVZFX1NUUlRPVUwgMQ0KfCAjZGVmaW5lIEhB VkVfU1lTQ09ORiAxDQp8ICNkZWZpbmUgSEFWRV9USU1FUyAxDQp8ICNkZWZpbmUgSEFWRV9WU05Q UklOVEYgMQ0KfCAjZGVmaW5lIEdNUF9NUEFSQU1fSF9TVUdHRVNUICIuL21wbi9nZW5lcmljL2dt cC1tcGFyYW0uaCINCnwgI2RlZmluZSBTSVpFT0ZfVU5TSUdORURfU0hPUlQgMg0KfCAjZGVmaW5l IFNJWkVPRl9VTlNJR05FRCA0DQp8ICNkZWZpbmUgU0laRU9GX1VOU0lHTkVEX0xPTkcgNA0KfCAv KiBlbmQgY29uZmRlZnMuaC4gICovDQp8ICNkZWZpbmUgX19HTVBfV0lUSElOX0NPTkZJR1VSRSAx ICAgLyogaWdub3JlIHRlbXBsYXRlIHN0dWZmICovDQp8ICNkZWZpbmUgR01QX05BSUxfQklUUyAw DQp8ICNkZWZpbmUgX19HTVBfQklUU19QRVJfTVBfTElNQiAxMjMgLyogZHVtbXkgZm9yIEdNUF9O VU1CX0JJVFMgZXRjICovDQp8ICNkZWZpbmUgR01QX0xJTUJfQklUUyAxMjMNCnwgLyogI3VuZGVm IF9MT05HX0xPTkdfTElNQiAqLw0KfCAjaW5jbHVkZSAiLi9nbXAtaC5pbiINCnwgDQp8IA0KfCBp bnQNCnwgbWFpbiAoKQ0KfCB7DQp8IHN0YXRpYyBpbnQgdGVzdF9hcnJheSBbMSAtIDIgKiAhKCgo bG9uZykgKHNpemVvZiAobXBfbGltYl90KSkpIDw9IDEpXTsNCnwgdGVzdF9hcnJheSBbMF0gPSAw DQp8IA0KfCAgIDsNCnwgICByZXR1cm4gMDsNCnwgfQ0KY29uZmlndXJlOjMxNjk5OiBnY2MgLWMg LU8zICBjb25mdGVzdC5jID4mNQ0KY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gYG1haW4nOg0NCmNv bmZ0ZXN0LmM6OTk6IGVycm9yOiBzaXplIG9mIGFycmF5IGB0ZXN0X2FycmF5JyBpcyBuZWdhdGl2 ZQ0NCmNvbmZpZ3VyZTozMTcwNTogJD8gPSAxDQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoNCnwgLyogY29uZmRlZnMuaC4gICovDQp8IA0KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05V IE1QIg0KfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ21wIg0KfCAjZGVmaW5lIFBBQ0tBR0Vf VkVSU0lPTiAiNC4yLjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBNUCA0LjIuMiIN CnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiZ21wLWJ1Z3NAc3dveC5jb20iDQp8ICNkZWZp bmUgUEFDS0FHRSAiZ21wIg0KfCAjZGVmaW5lIFZFUlNJT04gIjQuMi4yIg0KfCAjZGVmaW5lIFdB TlRfRkZUIDENCnwgI2RlZmluZSBIQVZFX0hPU1RfQ1BVX3BwY2JlIDENCnwgI2RlZmluZSBQUk9U T1RZUEVTIDENCnwgI2RlZmluZSBfX1BST1RPVFlQRVMgMQ0KfCAjZGVmaW5lIFNURENfSEVBREVS UyAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RB VF9IIDENCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR19I IDENCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAx DQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEN CnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDENCnwg I2RlZmluZSBIQVZFX0RMRkNOX0ggMQ0KfCAjZGVmaW5lIFNURENfSEVBREVSUyAxDQp8ICNkZWZp bmUgVElNRV9XSVRIX1NZU19USU1FIDENCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQ0KfCAjZGVm aW5lIEhBVkVfRkxPQVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19IIDENCnwgI2RlZmlu ZSBIQVZFX0xPQ0FMRV9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19NTUFOX0ggMQ0KfCAjZGVmaW5l IEhBVkVfU1lTX1BBUkFNX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxDQp8ICNkZWZp bmUgSEFWRV9TWVNfVElNRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxDQp8 ICNkZWZpbmUgSEFWRV9ERUNMX0ZHRVRDIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlNDQU5GIDEN CnwgI2RlZmluZSBIQVZFX0RFQ0xfT1BUQVJHIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5HRVRD IDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfVkZQUklOVEYgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9T WVNfRVJSTElTVCAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NZU19ORVJSIDENCnwgI2RlZmluZSBS RVRTSUdUWVBFIHZvaWQNCnwgI2RlZmluZSBIQVZFX0lOVE1BWF9UIDENCnwgI2RlZmluZSBIQVZF X0xPTkdfRE9VQkxFIDENCnwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxDQp8ICNkZWZpbmUgSEFW RV9QVFJESUZGX1QgMQ0KfCAjZGVmaW5lIEhBVkVfVUlOVF9MRUFTVDMyX1QgMQ0KfCAjZGVmaW5l IEhBVkVfU1RSSU5HSVpFIDENCnwgI2RlZmluZSBIQVZFX1NUREFSRyAxDQp8ICNkZWZpbmUgSEFW RV9BVFRSSUJVVEVfQ09OU1QgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX01BTExPQyAxDQp8 ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfTU9ERSAxDQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVf Tk9SRVRVUk4gMQ0KfCAjZGVmaW5lIEhBVkVfQUxMT0NBX0ggMQ0KfCAjZGVmaW5lIEhBVkVfQUxM T0NBIDENCnwgI2RlZmluZSBXQU5UX1RNUF9BTExPQ0EgMQ0KfCAjZGVmaW5lIEhBVkVfTElNQl9M SVRUTEVfRU5ESUFOIDENCnwgI2RlZmluZSBIQVZFX0RPVUJMRV9JRUVFX0xJVFRMRV9FTkRJQU4g MQ0KfCAjZGVmaW5lIEhBVkVfQUxBUk0gMQ0KfCAjZGVmaW5lIEhBVkVfQ0xPQ0sgMQ0KfCAjZGVm aW5lIEhBVkVfQ0xPQ0tfR0VUVElNRSAxDQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxDQp8 ICNkZWZpbmUgSEFWRV9HRVRSVVNBR0UgMQ0KfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEN CnwgI2RlZmluZSBIQVZFX0xPQ0FMRUNPTlYgMQ0KfCAjZGVmaW5lIEhBVkVfTUVNU0VUIDENCnwg I2RlZmluZSBIQVZFX01NQVAgMQ0KfCAjZGVmaW5lIEhBVkVfTVBST1RFQ1QgMQ0KfCAjZGVmaW5l IEhBVkVfTkxfTEFOR0lORk8gMQ0KfCAjZGVmaW5lIEhBVkVfUE9QRU4gMQ0KfCAjZGVmaW5lIEhB VkVfUkFJU0UgMQ0KfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDENCnwgI2RlZmluZSBIQVZFX1NU UkNIUiAxDQp8ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxDQp8ICNkZWZpbmUgSEFWRV9TVFJOTEVO IDENCnwgI2RlZmluZSBIQVZFX1NUUlRPTCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJUT1VMIDENCnwg I2RlZmluZSBIQVZFX1NZU0NPTkYgMQ0KfCAjZGVmaW5lIEhBVkVfVElNRVMgMQ0KfCAjZGVmaW5l IEhBVkVfVlNOUFJJTlRGIDENCnwgI2RlZmluZSBHTVBfTVBBUkFNX0hfU1VHR0VTVCAiLi9tcG4v Z2VuZXJpYy9nbXAtbXBhcmFtLmgiDQp8ICNkZWZpbmUgU0laRU9GX1VOU0lHTkVEX1NIT1JUIDIN CnwgI2RlZmluZSBTSVpFT0ZfVU5TSUdORUQgNA0KfCAjZGVmaW5lIFNJWkVPRl9VTlNJR05FRF9M T05HIDQNCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLw0KfCAjZGVmaW5lIF9fR01QX1dJVEhJTl9D T05GSUdVUkUgMSAgIC8qIGlnbm9yZSB0ZW1wbGF0ZSBzdHVmZiAqLw0KfCAjZGVmaW5lIEdNUF9O QUlMX0JJVFMgMA0KfCAjZGVmaW5lIF9fR01QX0JJVFNfUEVSX01QX0xJTUIgMTIzIC8qIGR1bW15 IGZvciBHTVBfTlVNQl9CSVRTIGV0YyAqLw0KfCAjZGVmaW5lIEdNUF9MSU1CX0JJVFMgMTIzDQp8 IC8qICN1bmRlZiBfTE9OR19MT05HX0xJTUIgKi8NCnwgI2luY2x1ZGUgIi4vZ21wLWguaW4iDQp8 IA0KfCANCnwgaW50DQp8IG1haW4gKCkNCnwgew0KfCBzdGF0aWMgaW50IHRlc3RfYXJyYXkgWzEg LSAyICogISgoKGxvbmcpIChzaXplb2YgKG1wX2xpbWJfdCkpKSA8PSAzKV07DQp8IHRlc3RfYXJy YXkgWzBdID0gMA0KfCANCnwgICA7DQp8ICAgcmV0dXJuIDA7DQp8IH0NCmNvbmZpZ3VyZTozMTY5 OTogZ2NjIC1jIC1PMyAgY29uZnRlc3QuYyA+JjUNCmNvbmZpZ3VyZTozMTcwNTogJD8gPSAwDQpj b25maWd1cmU6MzE3MDk6IHRlc3QgLXogDQoJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycg0K Y29uZmlndXJlOjMxNzEyOiAkPyA9IDANCmNvbmZpZ3VyZTozMTcxNTogdGVzdCAtcyBjb25mdGVz dC5vDQpjb25maWd1cmU6MzE3MTg6ICQ/ID0gMA0KY29uZmlndXJlOjMxODgzOiBnY2MgLWMgLU8z ICBjb25mdGVzdC5jID4mNQ0KY29uZmlndXJlOjMxODg5OiAkPyA9IDANCmNvbmZpZ3VyZTozMTg5 MzogdGVzdCAteiANCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyDQpjb25maWd1cmU6MzE4 OTY6ICQ/ID0gMA0KY29uZmlndXJlOjMxODk5OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8NCmNvbmZpZ3Vy ZTozMTkwMjogJD8gPSAwDQpjb25maWd1cmU6MzE4ODM6IGdjYyAtYyAtTzMgIGNvbmZ0ZXN0LmMg PiY1DQpjb25maWd1cmU6MzE4ODk6ICQ/ID0gMA0KY29uZmlndXJlOjMxODkzOiB0ZXN0IC16IA0K CQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnINCmNvbmZpZ3VyZTozMTg5NjogJD8gPSAwDQpj b25maWd1cmU6MzE4OTk6IHRlc3QgLXMgY29uZnRlc3Qubw0KY29uZmlndXJlOjMxOTAyOiAkPyA9 IDANCmNvbmZpZ3VyZTozMjAwNjogcmVzdWx0OiA0DQpjb25maWd1cmU6MzIxNzE6IGNoZWNraW5n IGZvciBzdGFja190DQpjb25maWd1cmU6MzIxOTY6IGdjYyAtYyAtTzMgIGNvbmZ0ZXN0LmMgPiY1 DQpjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiBgbWFpbic6DQ0KY29uZnRlc3QuYzo5NTogZXJyb3I6 IGBzdGFja190JyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikNDQpjb25m dGVzdC5jOjk1OiBlcnJvcjogKEVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVk IG9ubHkgb25jZQ0NCmNvbmZ0ZXN0LmM6OTU6IGVycm9yOiBmb3IgZWFjaCBmdW5jdGlvbiBpdCBh cHBlYXJzIGluLikNDQpjb25mdGVzdC5jOjk1OiBlcnJvcjogcGFyc2UgZXJyb3IgYmVmb3JlICcp JyB0b2tlbg0NCmNvbmZpZ3VyZTozMjIwMjogJD8gPSAxDQpjb25maWd1cmU6IGZhaWxlZCBwcm9n cmFtIHdhczoNCnwgLyogY29uZmRlZnMuaC4gICovDQp8IA0KfCAjZGVmaW5lIFBBQ0tBR0VfTkFN RSAiR05VIE1QIg0KfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ21wIg0KfCAjZGVmaW5lIFBB Q0tBR0VfVkVSU0lPTiAiNC4yLjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBNUCA0 LjIuMiINCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiZ21wLWJ1Z3NAc3dveC5jb20iDQp8 ICNkZWZpbmUgUEFDS0FHRSAiZ21wIg0KfCAjZGVmaW5lIFZFUlNJT04gIjQuMi4yIg0KfCAjZGVm aW5lIFdBTlRfRkZUIDENCnwgI2RlZmluZSBIQVZFX0hPU1RfQ1BVX3BwY2JlIDENCnwgI2RlZmlu ZSBQUk9UT1RZUEVTIDENCnwgI2RlZmluZSBfX1BST1RPVFlQRVMgMQ0KfCAjZGVmaW5lIFNURENf SEVBREVSUyAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9T WVNfU1RBVF9IIDENCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDENCnwgI2RlZmluZSBIQVZFX1NU UklOR19IIDENCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklO R1NfSCAxDQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NURElO VF9IIDENCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR19I IDENCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQ0KfCAjZGVmaW5lIFNURENfSEVBREVSUyAxDQp8 ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDENCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQ0K fCAjZGVmaW5lIEhBVkVfRkxPQVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19IIDENCnwg I2RlZmluZSBIQVZFX0xPQ0FMRV9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19NTUFOX0ggMQ0KfCAj ZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxDQp8 ICNkZWZpbmUgSEFWRV9TWVNfVElNRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0Vf SCAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZHRVRDIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlND QU5GIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfT1BUQVJHIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xf VU5HRVRDIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfVkZQUklOVEYgMQ0KfCAjZGVmaW5lIEhBVkVf REVDTF9TWVNfRVJSTElTVCAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NZU19ORVJSIDENCnwgI2Rl ZmluZSBSRVRTSUdUWVBFIHZvaWQNCnwgI2RlZmluZSBIQVZFX0lOVE1BWF9UIDENCnwgI2RlZmlu ZSBIQVZFX0xPTkdfRE9VQkxFIDENCnwgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxDQp8ICNkZWZp bmUgSEFWRV9QVFJESUZGX1QgMQ0KfCAjZGVmaW5lIEhBVkVfVUlOVF9MRUFTVDMyX1QgMQ0KfCAj ZGVmaW5lIEhBVkVfU1RSSU5HSVpFIDENCnwgI2RlZmluZSBIQVZFX1NUREFSRyAxDQp8ICNkZWZp bmUgSEFWRV9BVFRSSUJVVEVfQ09OU1QgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX01BTExP QyAxDQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfTU9ERSAxDQp8ICNkZWZpbmUgSEFWRV9BVFRS SUJVVEVfTk9SRVRVUk4gMQ0KfCAjZGVmaW5lIEhBVkVfQUxMT0NBX0ggMQ0KfCAjZGVmaW5lIEhB VkVfQUxMT0NBIDENCnwgI2RlZmluZSBXQU5UX1RNUF9BTExPQ0EgMQ0KfCAjZGVmaW5lIEhBVkVf TElNQl9MSVRUTEVfRU5ESUFOIDENCnwgI2RlZmluZSBIQVZFX0RPVUJMRV9JRUVFX0xJVFRMRV9F TkRJQU4gMQ0KfCAjZGVmaW5lIEhBVkVfQUxBUk0gMQ0KfCAjZGVmaW5lIEhBVkVfQ0xPQ0sgMQ0K fCAjZGVmaW5lIEhBVkVfQ0xPQ0tfR0VUVElNRSAxDQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0la RSAxDQp8ICNkZWZpbmUgSEFWRV9HRVRSVVNBR0UgMQ0KfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9G REFZIDENCnwgI2RlZmluZSBIQVZFX0xPQ0FMRUNPTlYgMQ0KfCAjZGVmaW5lIEhBVkVfTUVNU0VU IDENCnwgI2RlZmluZSBIQVZFX01NQVAgMQ0KfCAjZGVmaW5lIEhBVkVfTVBST1RFQ1QgMQ0KfCAj ZGVmaW5lIEhBVkVfTkxfTEFOR0lORk8gMQ0KfCAjZGVmaW5lIEhBVkVfUE9QRU4gMQ0KfCAjZGVm aW5lIEhBVkVfUkFJU0UgMQ0KfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDENCnwgI2RlZmluZSBI QVZFX1NUUkNIUiAxDQp8ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxDQp8ICNkZWZpbmUgSEFWRV9T VFJOTEVOIDENCnwgI2RlZmluZSBIQVZFX1NUUlRPTCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJUT1VM IDENCnwgI2RlZmluZSBIQVZFX1NZU0NPTkYgMQ0KfCAjZGVmaW5lIEhBVkVfVElNRVMgMQ0KfCAj ZGVmaW5lIEhBVkVfVlNOUFJJTlRGIDENCnwgI2RlZmluZSBHTVBfTVBBUkFNX0hfU1VHR0VTVCAi Li9tcG4vZ2VuZXJpYy9nbXAtbXBhcmFtLmgiDQp8ICNkZWZpbmUgU0laRU9GX1VOU0lHTkVEX1NI T1JUIDINCnwgI2RlZmluZSBTSVpFT0ZfVU5TSUdORUQgNA0KfCAjZGVmaW5lIFNJWkVPRl9VTlNJ R05FRF9MT05HIDQNCnwgI2RlZmluZSBTSVpFT0ZfTVBfTElNQl9UIDQNCnwgI2RlZmluZSBUVU5F X1NRUl9LQVJBVFNVQkFfTUFYIFNRUl9LQVJBVFNVQkFfTUFYX0dFTkVSSUMNCnwgLyogZW5kIGNv bmZkZWZzLmguICAqLw0KfCAjaW5jbHVkZSA8c2lnbmFsLmg+DQp8IA0KfCBpbnQNCnwgbWFpbiAo KQ0KfCB7DQp8IGlmICgoc3RhY2tfdCAqKSAwKQ0KfCAgIHJldHVybiAwOw0KfCBpZiAoc2l6ZW9m IChzdGFja190KSkNCnwgICByZXR1cm4gMDsNCnwgICA7DQp8ICAgcmV0dXJuIDA7DQp8IH0NCmNv bmZpZ3VyZTozMjIyNjogcmVzdWx0OiBubw0KY29uZmlndXJlOjMyMjY0OiBjaGVja2luZyBmb3Ig dHB1dHMgaW4gLWxuY3Vyc2VzDQpjb25maWd1cmU6MzIyOTQ6IGdjYyAtbyBjb25mdGVzdC5leGUg LU8zICAgY29uZnRlc3QuYyAtbG5jdXJzZXMgICA+JjUNCi91c3IvbGliL2djYy9pNjg2LXBjLWN5 Z3dpbi8zLjQuNC8uLi8uLi8uLi8uLi9pNjg2LXBjLWN5Z3dpbi9iaW4vbGQ6IGNhbm5vdCBmaW5k IC1sbmN1cnNlcw0NCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzDQ0KY29uZmln dXJlOjMyMzAwOiAkPyA9IDENCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOg0KfCAvKiBj b25mZGVmcy5oLiAgKi8NCnwgDQp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgTVAiDQp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJnbXAiDQp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0 LjIuMiINCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIE1QIDQuMi4yIg0KfCAjZGVmaW5l IFBBQ0tBR0VfQlVHUkVQT1JUICJnbXAtYnVnc0Bzd294LmNvbSINCnwgI2RlZmluZSBQQUNLQUdF ICJnbXAiDQp8ICNkZWZpbmUgVkVSU0lPTiAiNC4yLjIiDQp8ICNkZWZpbmUgV0FOVF9GRlQgMQ0K fCAjZGVmaW5lIEhBVkVfSE9TVF9DUFVfcHBjYmUgMQ0KfCAjZGVmaW5lIFBST1RPVFlQRVMgMQ0K fCAjZGVmaW5lIF9fUFJPVE9UWVBFUyAxDQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDENCnwgI2Rl ZmluZSBIQVZFX1NZU19UWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQ0KfCAj ZGVmaW5lIEhBVkVfU1RETElCX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQ0KfCAjZGVm aW5lIEhBVkVfTUVNT1JZX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDENCnwgI2RlZmlu ZSBIQVZFX0lOVFRZUEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQ0KfCAjZGVmaW5l IEhBVkVfVU5JU1REX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQ0KfCAjZGVmaW5lIEhB VkVfRExGQ05fSCAxDQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDENCnwgI2RlZmluZSBUSU1FX1dJ VEhfU1lTX1RJTUUgMQ0KfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxDQp8ICNkZWZpbmUgSEFWRV9G TE9BVF9IIDENCnwgI2RlZmluZSBIQVZFX0xBTkdJTkZPX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTE9D QUxFX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNf UEFSQU1fSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDENCnwgI2RlZmluZSBIQVZFX1NZ U19USU1FU19IIDENCnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDENCnwgI2RlZmluZSBI QVZFX0RFQ0xfRkdFVEMgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9GU0NBTkYgMQ0KfCAjZGVmaW5l IEhBVkVfREVDTF9PUFRBUkcgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9VTkdFVEMgMQ0KfCAjZGVm aW5lIEhBVkVfREVDTF9WRlBSSU5URiAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NZU19FUlJMSVNU IDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1lTX05FUlIgMQ0KfCAjZGVmaW5lIFJFVFNJR1RZUEUg dm9pZA0KfCAjZGVmaW5lIEhBVkVfSU5UTUFYX1QgMQ0KfCAjZGVmaW5lIEhBVkVfTE9OR19ET1VC TEUgMQ0KfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDENCnwgI2RlZmluZSBIQVZFX1BUUkRJRkZf VCAxDQp8ICNkZWZpbmUgSEFWRV9VSU5UX0xFQVNUMzJfVCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJ TkdJWkUgMQ0KfCAjZGVmaW5lIEhBVkVfU1REQVJHIDENCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVU RV9DT05TVCAxDQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfTUFMTE9DIDENCnwgI2RlZmluZSBI QVZFX0FUVFJJQlVURV9NT0RFIDENCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9OT1JFVFVSTiAx DQp8ICNkZWZpbmUgSEFWRV9BTExPQ0FfSCAxDQp8ICNkZWZpbmUgSEFWRV9BTExPQ0EgMQ0KfCAj ZGVmaW5lIFdBTlRfVE1QX0FMTE9DQSAxDQp8ICNkZWZpbmUgSEFWRV9MSU1CX0xJVFRMRV9FTkRJ QU4gMQ0KfCAjZGVmaW5lIEhBVkVfRE9VQkxFX0lFRUVfTElUVExFX0VORElBTiAxDQp8ICNkZWZp bmUgSEFWRV9BTEFSTSAxDQp8ICNkZWZpbmUgSEFWRV9DTE9DSyAxDQp8ICNkZWZpbmUgSEFWRV9D TE9DS19HRVRUSU1FIDENCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDENCnwgI2RlZmluZSBI QVZFX0dFVFJVU0FHRSAxDQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQ0KfCAjZGVmaW5l IEhBVkVfTE9DQUxFQ09OViAxDQp8ICNkZWZpbmUgSEFWRV9NRU1TRVQgMQ0KfCAjZGVmaW5lIEhB VkVfTU1BUCAxDQp8ICNkZWZpbmUgSEFWRV9NUFJPVEVDVCAxDQp8ICNkZWZpbmUgSEFWRV9OTF9M QU5HSU5GTyAxDQp8ICNkZWZpbmUgSEFWRV9QT1BFTiAxDQp8ICNkZWZpbmUgSEFWRV9SQUlTRSAx DQp8ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQ0KfCAjZGVmaW5lIEhBVkVfU1RSQ0hSIDENCnwg I2RlZmluZSBIQVZFX1NUUkVSUk9SIDENCnwgI2RlZmluZSBIQVZFX1NUUk5MRU4gMQ0KfCAjZGVm aW5lIEhBVkVfU1RSVE9MIDENCnwgI2RlZmluZSBIQVZFX1NUUlRPVUwgMQ0KfCAjZGVmaW5lIEhB VkVfU1lTQ09ORiAxDQp8ICNkZWZpbmUgSEFWRV9USU1FUyAxDQp8ICNkZWZpbmUgSEFWRV9WU05Q UklOVEYgMQ0KfCAjZGVmaW5lIEdNUF9NUEFSQU1fSF9TVUdHRVNUICIuL21wbi9nZW5lcmljL2dt cC1tcGFyYW0uaCINCnwgI2RlZmluZSBTSVpFT0ZfVU5TSUdORURfU0hPUlQgMg0KfCAjZGVmaW5l IFNJWkVPRl9VTlNJR05FRCA0DQp8ICNkZWZpbmUgU0laRU9GX1VOU0lHTkVEX0xPTkcgNA0KfCAj ZGVmaW5lIFNJWkVPRl9NUF9MSU1CX1QgNA0KfCAjZGVmaW5lIFRVTkVfU1FSX0tBUkFUU1VCQV9N QVggU1FSX0tBUkFUU1VCQV9NQVhfR0VORVJJQw0KfCAvKiBlbmQgY29uZmRlZnMuaC4gICovDQp8 IA0KfCAvKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4g ZXJyb3IuICAqLw0KfCAjaWZkZWYgX19jcGx1c3BsdXMNCnwgZXh0ZXJuICJDIg0KfCAjZW5kaWYN CnwgLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBl IG9mIGEgZ2NjMg0KfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUg d291bGQgc3RpbGwgYXBwbHkuICAqLw0KfCBjaGFyIHRwdXRzICgpOw0KfCBpbnQNCnwgbWFpbiAo KQ0KfCB7DQp8IHRwdXRzICgpOw0KfCAgIDsNCnwgICByZXR1cm4gMDsNCnwgfQ0KY29uZmlndXJl OjMyMzI2OiByZXN1bHQ6IG5vDQpjb25maWd1cmU6MzIzMzE6IGNoZWNraW5nIGZvciB0cHV0cyBp biAtbGN1cnNlcw0KY29uZmlndXJlOjMyMzYxOiBnY2MgLW8gY29uZnRlc3QuZXhlIC1PMyAgIGNv bmZ0ZXN0LmMgLWxjdXJzZXMgICA+JjUNCi91c3IvbGliL2djYy9pNjg2LXBjLWN5Z3dpbi8zLjQu NC8uLi8uLi8uLi8uLi9pNjg2LXBjLWN5Z3dpbi9iaW4vbGQ6IGNhbm5vdCBmaW5kIC1sY3Vyc2Vz DQ0KY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMNDQpjb25maWd1cmU6MzIzNjc6 ICQ/ID0gMQ0KY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6DQp8IC8qIGNvbmZkZWZzLmgu ICAqLw0KfCANCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBNUCINCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgImdtcCINCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuMi4yIg0KfCAj ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgTVAgNC4yLjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9C VUdSRVBPUlQgImdtcC1idWdzQHN3b3guY29tIg0KfCAjZGVmaW5lIFBBQ0tBR0UgImdtcCINCnwg I2RlZmluZSBWRVJTSU9OICI0LjIuMiINCnwgI2RlZmluZSBXQU5UX0ZGVCAxDQp8ICNkZWZpbmUg SEFWRV9IT1NUX0NQVV9wcGNiZSAxDQp8ICNkZWZpbmUgUFJPVE9UWVBFUyAxDQp8ICNkZWZpbmUg X19QUk9UT1RZUEVTIDENCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIEhBVkVf U1lTX1RZUEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxDQp8ICNkZWZpbmUgSEFW RV9TVERMSUJfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9N RU1PUllfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfSU5U VFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxDQp8ICNkZWZpbmUgSEFWRV9VTklT VERfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9ETEZDTl9I IDENCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElN RSAxDQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDENCnwgI2RlZmluZSBIQVZFX0ZMT0FUX0ggMQ0K fCAjZGVmaW5lIEhBVkVfTEFOR0lORk9fSCAxDQp8ICNkZWZpbmUgSEFWRV9MT0NBTEVfSCAxDQp8 ICNkZWZpbmUgSEFWRV9TWVNfTU1BTl9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDEN CnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVTX0gg MQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1JFU09VUkNFX0ggMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9G R0VUQyAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZTQ0FORiAxDQp8ICNkZWZpbmUgSEFWRV9ERUNM X09QVEFSRyAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX1VOR0VUQyAxDQp8ICNkZWZpbmUgSEFWRV9E RUNMX1ZGUFJJTlRGIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfU1lTX0VSUkxJU1QgMQ0KfCAjZGVm aW5lIEhBVkVfREVDTF9TWVNfTkVSUiAxDQp8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkDQp8ICNk ZWZpbmUgSEFWRV9JTlRNQVhfVCAxDQp8ICNkZWZpbmUgSEFWRV9MT05HX0RPVUJMRSAxDQp8ICNk ZWZpbmUgSEFWRV9MT05HX0xPTkcgMQ0KfCAjZGVmaW5lIEhBVkVfUFRSRElGRl9UIDENCnwgI2Rl ZmluZSBIQVZFX1VJTlRfTEVBU1QzMl9UIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR0laRSAxDQp8 ICNkZWZpbmUgSEFWRV9TVERBUkcgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX0NPTlNUIDEN CnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9NQUxMT0MgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklC VVRFX01PREUgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX05PUkVUVVJOIDENCnwgI2RlZmlu ZSBIQVZFX0FMTE9DQV9IIDENCnwgI2RlZmluZSBIQVZFX0FMTE9DQSAxDQp8ICNkZWZpbmUgV0FO VF9UTVBfQUxMT0NBIDENCnwgI2RlZmluZSBIQVZFX0xJTUJfTElUVExFX0VORElBTiAxDQp8ICNk ZWZpbmUgSEFWRV9ET1VCTEVfSUVFRV9MSVRUTEVfRU5ESUFOIDENCnwgI2RlZmluZSBIQVZFX0FM QVJNIDENCnwgI2RlZmluZSBIQVZFX0NMT0NLIDENCnwgI2RlZmluZSBIQVZFX0NMT0NLX0dFVFRJ TUUgMQ0KfCAjZGVmaW5lIEhBVkVfR0VUUEFHRVNJWkUgMQ0KfCAjZGVmaW5lIEhBVkVfR0VUUlVT QUdFIDENCnwgI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAxDQp8ICNkZWZpbmUgSEFWRV9MT0NB TEVDT05WIDENCnwgI2RlZmluZSBIQVZFX01FTVNFVCAxDQp8ICNkZWZpbmUgSEFWRV9NTUFQIDEN CnwgI2RlZmluZSBIQVZFX01QUk9URUNUIDENCnwgI2RlZmluZSBIQVZFX05MX0xBTkdJTkZPIDEN CnwgI2RlZmluZSBIQVZFX1BPUEVOIDENCnwgI2RlZmluZSBIQVZFX1JBSVNFIDENCnwgI2RlZmlu ZSBIQVZFX1NJR0FDVElPTiAxDQp8ICNkZWZpbmUgSEFWRV9TVFJDSFIgMQ0KfCAjZGVmaW5lIEhB VkVfU1RSRVJST1IgMQ0KfCAjZGVmaW5lIEhBVkVfU1RSTkxFTiAxDQp8ICNkZWZpbmUgSEFWRV9T VFJUT0wgMQ0KfCAjZGVmaW5lIEhBVkVfU1RSVE9VTCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNDT05G IDENCnwgI2RlZmluZSBIQVZFX1RJTUVTIDENCnwgI2RlZmluZSBIQVZFX1ZTTlBSSU5URiAxDQp8 ICNkZWZpbmUgR01QX01QQVJBTV9IX1NVR0dFU1QgIi4vbXBuL2dlbmVyaWMvZ21wLW1wYXJhbS5o Ig0KfCAjZGVmaW5lIFNJWkVPRl9VTlNJR05FRF9TSE9SVCAyDQp8ICNkZWZpbmUgU0laRU9GX1VO U0lHTkVEIDQNCnwgI2RlZmluZSBTSVpFT0ZfVU5TSUdORURfTE9ORyA0DQp8ICNkZWZpbmUgU0la RU9GX01QX0xJTUJfVCA0DQp8ICNkZWZpbmUgVFVORV9TUVJfS0FSQVRTVUJBX01BWCBTUVJfS0FS QVRTVUJBX01BWF9HRU5FUklDDQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8NCnwgDQp8IC8qIE92 ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICov DQp8ICNpZmRlZiBfX2NwbHVzcGx1cw0KfCBleHRlcm4gIkMiDQp8ICNlbmRpZg0KfCAvKiBXZSB1 c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2My DQp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGls bCBhcHBseS4gICovDQp8IGNoYXIgdHB1dHMgKCk7DQp8IGludA0KfCBtYWluICgpDQp8IHsNCnwg dHB1dHMgKCk7DQp8ICAgOw0KfCAgIHJldHVybiAwOw0KfCB9DQpjb25maWd1cmU6MzIzOTM6IHJl c3VsdDogbm8NCmNvbmZpZ3VyZTozMjQwNjogY2hlY2tpbmcgZm9yIHJlYWRsaW5lIGluIC1scmVh ZGxpbmUNCmNvbmZpZ3VyZTozMjQzNjogZ2NjIC1vIGNvbmZ0ZXN0LmV4ZSAtTzMgICBjb25mdGVz dC5jIC1scmVhZGxpbmUgICA+JjUNCi91c3IvbGliL2djYy9pNjg2LXBjLWN5Z3dpbi8zLjQuNC8u Li8uLi8uLi8uLi9pNjg2LXBjLWN5Z3dpbi9iaW4vbGQ6IGNhbm5vdCBmaW5kIC1scmVhZGxpbmUN DQpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cw0NCmNvbmZpZ3VyZTozMjQ0Mjog JD8gPSAxDQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoNCnwgLyogY29uZmRlZnMuaC4g ICovDQp8IA0KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIE1QIg0KfCAjZGVmaW5lIFBBQ0tB R0VfVEFSTkFNRSAiZ21wIg0KfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC4yLjIiDQp8ICNk ZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBNUCA0LjIuMiINCnwgI2RlZmluZSBQQUNLQUdFX0JV R1JFUE9SVCAiZ21wLWJ1Z3NAc3dveC5jb20iDQp8ICNkZWZpbmUgUEFDS0FHRSAiZ21wIg0KfCAj ZGVmaW5lIFZFUlNJT04gIjQuMi4yIg0KfCAjZGVmaW5lIFdBTlRfRkZUIDENCnwgI2RlZmluZSBI QVZFX0hPU1RfQ1BVX3BwY2JlIDENCnwgI2RlZmluZSBQUk9UT1RZUEVTIDENCnwgI2RlZmluZSBf X1BST1RPVFlQRVMgMQ0KfCAjZGVmaW5lIFNURENfSEVBREVSUyAxDQp8ICNkZWZpbmUgSEFWRV9T WVNfVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDENCnwgI2RlZmluZSBIQVZF X1NURExJQl9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDENCnwgI2RlZmluZSBIQVZFX01F TU9SWV9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxDQp8ICNkZWZpbmUgSEFWRV9JTlRU WVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDENCnwgI2RlZmluZSBIQVZFX1VOSVNU RF9IIDENCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDENCnwgI2RlZmluZSBIQVZFX0RMRkNOX0gg MQ0KfCAjZGVmaW5lIFNURENfSEVBREVSUyAxDQp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1F IDENCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQ0KfCAjZGVmaW5lIEhBVkVfRkxPQVRfSCAxDQp8 ICNkZWZpbmUgSEFWRV9MQU5HSU5GT19IIDENCnwgI2RlZmluZSBIQVZFX0xPQ0FMRV9IIDENCnwg I2RlZmluZSBIQVZFX1NZU19NTUFOX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQ0K fCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRVNfSCAx DQp8ICNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX0ZH RVRDIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfRlNDQU5GIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xf T1BUQVJHIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfVU5HRVRDIDENCnwgI2RlZmluZSBIQVZFX0RF Q0xfVkZQUklOVEYgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9TWVNfRVJSTElTVCAxDQp8ICNkZWZp bmUgSEFWRV9ERUNMX1NZU19ORVJSIDENCnwgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQNCnwgI2Rl ZmluZSBIQVZFX0lOVE1BWF9UIDENCnwgI2RlZmluZSBIQVZFX0xPTkdfRE9VQkxFIDENCnwgI2Rl ZmluZSBIQVZFX0xPTkdfTE9ORyAxDQp8ICNkZWZpbmUgSEFWRV9QVFJESUZGX1QgMQ0KfCAjZGVm aW5lIEhBVkVfVUlOVF9MRUFTVDMyX1QgMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HSVpFIDENCnwg I2RlZmluZSBIQVZFX1NUREFSRyAxDQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfQ09OU1QgMQ0K fCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX01BTExPQyAxDQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJV VEVfTU9ERSAxDQp8ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfTk9SRVRVUk4gMQ0KfCAjZGVmaW5l IEhBVkVfQUxMT0NBX0ggMQ0KfCAjZGVmaW5lIEhBVkVfQUxMT0NBIDENCnwgI2RlZmluZSBXQU5U X1RNUF9BTExPQ0EgMQ0KfCAjZGVmaW5lIEhBVkVfTElNQl9MSVRUTEVfRU5ESUFOIDENCnwgI2Rl ZmluZSBIQVZFX0RPVUJMRV9JRUVFX0xJVFRMRV9FTkRJQU4gMQ0KfCAjZGVmaW5lIEhBVkVfQUxB Uk0gMQ0KfCAjZGVmaW5lIEhBVkVfQ0xPQ0sgMQ0KfCAjZGVmaW5lIEhBVkVfQ0xPQ0tfR0VUVElN RSAxDQp8ICNkZWZpbmUgSEFWRV9HRVRQQUdFU0laRSAxDQp8ICNkZWZpbmUgSEFWRV9HRVRSVVNB R0UgMQ0KfCAjZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDENCnwgI2RlZmluZSBIQVZFX0xPQ0FM RUNPTlYgMQ0KfCAjZGVmaW5lIEhBVkVfTUVNU0VUIDENCnwgI2RlZmluZSBIQVZFX01NQVAgMQ0K fCAjZGVmaW5lIEhBVkVfTVBST1RFQ1QgMQ0KfCAjZGVmaW5lIEhBVkVfTkxfTEFOR0lORk8gMQ0K fCAjZGVmaW5lIEhBVkVfUE9QRU4gMQ0KfCAjZGVmaW5lIEhBVkVfUkFJU0UgMQ0KfCAjZGVmaW5l IEhBVkVfU0lHQUNUSU9OIDENCnwgI2RlZmluZSBIQVZFX1NUUkNIUiAxDQp8ICNkZWZpbmUgSEFW RV9TVFJFUlJPUiAxDQp8ICNkZWZpbmUgSEFWRV9TVFJOTEVOIDENCnwgI2RlZmluZSBIQVZFX1NU UlRPTCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJUT1VMIDENCnwgI2RlZmluZSBIQVZFX1NZU0NPTkYg MQ0KfCAjZGVmaW5lIEhBVkVfVElNRVMgMQ0KfCAjZGVmaW5lIEhBVkVfVlNOUFJJTlRGIDENCnwg I2RlZmluZSBHTVBfTVBBUkFNX0hfU1VHR0VTVCAiLi9tcG4vZ2VuZXJpYy9nbXAtbXBhcmFtLmgi DQp8ICNkZWZpbmUgU0laRU9GX1VOU0lHTkVEX1NIT1JUIDINCnwgI2RlZmluZSBTSVpFT0ZfVU5T SUdORUQgNA0KfCAjZGVmaW5lIFNJWkVPRl9VTlNJR05FRF9MT05HIDQNCnwgI2RlZmluZSBTSVpF T0ZfTVBfTElNQl9UIDQNCnwgI2RlZmluZSBUVU5FX1NRUl9LQVJBVFNVQkFfTUFYIFNRUl9LQVJB VFNVQkFfTUFYX0dFTkVSSUMNCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLw0KfCANCnwgLyogT3Zl cnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8N CnwgI2lmZGVmIF9fY3BsdXNwbHVzDQp8IGV4dGVybiAiQyINCnwgI2VuZGlmDQp8IC8qIFdlIHVz ZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIN CnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxs IGFwcGx5LiAgKi8NCnwgY2hhciByZWFkbGluZSAoKTsNCnwgaW50DQp8IG1haW4gKCkNCnwgew0K fCByZWFkbGluZSAoKTsNCnwgICA7DQp8ICAgcmV0dXJuIDA7DQp8IH0NCmNvbmZpZ3VyZTozMjQ2 ODogcmVzdWx0OiBubw0KY29uZmlndXJlOjMyNzU2OiBjaGVja2luZyByZWFkbGluZSBkZXRlY3Rl ZA0KY29uZmlndXJlOjMyNzU4OiByZXN1bHQ6IG5vDQpjb25maWd1cmU6MzI3NzM6IGNoZWNraW5n IGZvciBiaXNvbg0KY29uZmlndXJlOjMyNzg5OiBmb3VuZCAvY3lnZHJpdmUvYy9RTlg2MzAvaG9z dC93aW4zMi94ODYvdXNyL2Jpbi9iaXNvbg0KY29uZmlndXJlOjMyNzk5OiByZXN1bHQ6IGJpc29u IC15DQpjb25maWd1cmU6MzI4MTQ6IGNoZWNraW5nIGZvciBmbGV4DQpjb25maWd1cmU6MzI4MzA6 IGZvdW5kIC9jeWdkcml2ZS9jL1FOWDYzMC9ob3N0L3dpbjMyL3g4Ni91c3IvYmluL2ZsZXgNCmNv bmZpZ3VyZTozMjg0MDogcmVzdWx0OiBmbGV4DQpjb25maWd1cmU6MzI4NTM6IGNoZWNraW5nIGZv ciB5eXdyYXAgaW4gLWxmbA0KY29uZmlndXJlOjMyODgzOiBnY2MgLW8gY29uZnRlc3QuZXhlIC1P MyAgIGNvbmZ0ZXN0LmMgLWxmbCAgID4mNQ0KL3Vzci9saWIvZ2NjL2k2ODYtcGMtY3lnd2luLzMu NC40Ly4uLy4uLy4uLy4uL2k2ODYtcGMtY3lnd2luL2Jpbi9sZDogY2Fubm90IGZpbmQgLWxmbA0N CmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzDQ0KY29uZmlndXJlOjMyODg5OiAk PyA9IDENCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOg0KfCAvKiBjb25mZGVmcy5oLiAg Ki8NCnwgDQp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgTVAiDQp8ICNkZWZpbmUgUEFDS0FH RV9UQVJOQU1FICJnbXAiDQp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjIuMiINCnwgI2Rl ZmluZSBQQUNLQUdFX1NUUklORyAiR05VIE1QIDQuMi4yIg0KfCAjZGVmaW5lIFBBQ0tBR0VfQlVH UkVQT1JUICJnbXAtYnVnc0Bzd294LmNvbSINCnwgI2RlZmluZSBQQUNLQUdFICJnbXAiDQp8ICNk ZWZpbmUgVkVSU0lPTiAiNC4yLjIiDQp8ICNkZWZpbmUgV0FOVF9GRlQgMQ0KfCAjZGVmaW5lIEhB VkVfSE9TVF9DUFVfcHBjYmUgMQ0KfCAjZGVmaW5lIFBST1RPVFlQRVMgMQ0KfCAjZGVmaW5lIF9f UFJPVE9UWVBFUyAxDQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDENCnwgI2RlZmluZSBIQVZFX1NZ U19UWVBFU19IIDENCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQ0KfCAjZGVmaW5lIEhBVkVf U1RETElCX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTUVN T1JZX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDENCnwgI2RlZmluZSBIQVZFX0lOVFRZ UEVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQ0KfCAjZGVmaW5lIEhBVkVfVU5JU1RE X0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQ0KfCAjZGVmaW5lIEhBVkVfRExGQ05fSCAx DQp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDENCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUg MQ0KfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxDQp8ICNkZWZpbmUgSEFWRV9GTE9BVF9IIDENCnwg I2RlZmluZSBIQVZFX0xBTkdJTkZPX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTE9DQUxFX0ggMQ0KfCAj ZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxDQp8 ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19USU1FU19IIDEN CnwgI2RlZmluZSBIQVZFX1NZU19SRVNPVVJDRV9IIDENCnwgI2RlZmluZSBIQVZFX0RFQ0xfRkdF VEMgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9GU0NBTkYgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9P UFRBUkcgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9VTkdFVEMgMQ0KfCAjZGVmaW5lIEhBVkVfREVD TF9WRlBSSU5URiAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX1NZU19FUlJMSVNUIDENCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfU1lTX05FUlIgMQ0KfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZA0KfCAjZGVm aW5lIEhBVkVfSU5UTUFYX1QgMQ0KfCAjZGVmaW5lIEhBVkVfTE9OR19ET1VCTEUgMQ0KfCAjZGVm aW5lIEhBVkVfTE9OR19MT05HIDENCnwgI2RlZmluZSBIQVZFX1BUUkRJRkZfVCAxDQp8ICNkZWZp bmUgSEFWRV9VSU5UX0xFQVNUMzJfVCAxDQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdJWkUgMQ0KfCAj ZGVmaW5lIEhBVkVfU1REQVJHIDENCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9DT05TVCAxDQp8 ICNkZWZpbmUgSEFWRV9BVFRSSUJVVEVfTUFMTE9DIDENCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVU RV9NT0RFIDENCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVURV9OT1JFVFVSTiAxDQp8ICNkZWZpbmUg SEFWRV9BTExPQ0FfSCAxDQp8ICNkZWZpbmUgSEFWRV9BTExPQ0EgMQ0KfCAjZGVmaW5lIFdBTlRf VE1QX0FMTE9DQSAxDQp8ICNkZWZpbmUgSEFWRV9MSU1CX0xJVFRMRV9FTkRJQU4gMQ0KfCAjZGVm aW5lIEhBVkVfRE9VQkxFX0lFRUVfTElUVExFX0VORElBTiAxDQp8ICNkZWZpbmUgSEFWRV9BTEFS TSAxDQp8ICNkZWZpbmUgSEFWRV9DTE9DSyAxDQp8ICNkZWZpbmUgSEFWRV9DTE9DS19HRVRUSU1F IDENCnwgI2RlZmluZSBIQVZFX0dFVFBBR0VTSVpFIDENCnwgI2RlZmluZSBIQVZFX0dFVFJVU0FH RSAxDQp8ICNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQ0KfCAjZGVmaW5lIEhBVkVfTE9DQUxF Q09OViAxDQp8ICNkZWZpbmUgSEFWRV9NRU1TRVQgMQ0KfCAjZGVmaW5lIEhBVkVfTU1BUCAxDQp8 ICNkZWZpbmUgSEFWRV9NUFJPVEVDVCAxDQp8ICNkZWZpbmUgSEFWRV9OTF9MQU5HSU5GTyAxDQp8 ICNkZWZpbmUgSEFWRV9QT1BFTiAxDQp8ICNkZWZpbmUgSEFWRV9SQUlTRSAxDQp8ICNkZWZpbmUg SEFWRV9TSUdBQ1RJT04gMQ0KfCAjZGVmaW5lIEhBVkVfU1RSQ0hSIDENCnwgI2RlZmluZSBIQVZF X1NUUkVSUk9SIDENCnwgI2RlZmluZSBIQVZFX1NUUk5MRU4gMQ0KfCAjZGVmaW5lIEhBVkVfU1RS VE9MIDENCnwgI2RlZmluZSBIQVZFX1NUUlRPVUwgMQ0KfCAjZGVmaW5lIEhBVkVfU1lTQ09ORiAx DQp8ICNkZWZpbmUgSEFWRV9USU1FUyAxDQp8ICNkZWZpbmUgSEFWRV9WU05QUklOVEYgMQ0KfCAj ZGVmaW5lIEdNUF9NUEFSQU1fSF9TVUdHRVNUICIuL21wbi9nZW5lcmljL2dtcC1tcGFyYW0uaCIN CnwgI2RlZmluZSBTSVpFT0ZfVU5TSUdORURfU0hPUlQgMg0KfCAjZGVmaW5lIFNJWkVPRl9VTlNJ R05FRCA0DQp8ICNkZWZpbmUgU0laRU9GX1VOU0lHTkVEX0xPTkcgNA0KfCAjZGVmaW5lIFNJWkVP Rl9NUF9MSU1CX1QgNA0KfCAjZGVmaW5lIFRVTkVfU1FSX0tBUkFUU1VCQV9NQVggU1FSX0tBUkFU U1VCQV9NQVhfR0VORVJJQw0KfCAvKiBlbmQgY29uZmRlZnMuaC4gICovDQp8IA0KfCAvKiBPdmVy cmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLw0K fCAjaWZkZWYgX19jcGx1c3BsdXMNCnwgZXh0ZXJuICJDIg0KfCAjZW5kaWYNCnwgLyogV2UgdXNl IGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMg0K fCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwg YXBwbHkuICAqLw0KfCBjaGFyIHl5d3JhcCAoKTsNCnwgaW50DQp8IG1haW4gKCkNCnwgew0KfCB5 eXdyYXAgKCk7DQp8ICAgOw0KfCAgIHJldHVybiAwOw0KfCB9DQpjb25maWd1cmU6MzI5MTU6IHJl c3VsdDogbm8NCmNvbmZpZ3VyZTozMjkyMDogY2hlY2tpbmcgZm9yIHl5d3JhcCBpbiAtbGwNCmNv bmZpZ3VyZTozMjk1MDogZ2NjIC1vIGNvbmZ0ZXN0LmV4ZSAtTzMgICBjb25mdGVzdC5jIC1sbCAg ID4mNQ0KL3Vzci9saWIvZ2NjL2k2ODYtcGMtY3lnd2luLzMuNC40Ly4uLy4uLy4uLy4uL2k2ODYt cGMtY3lnd2luL2Jpbi9sZDogY2Fubm90IGZpbmQgLWxsDQ0KY29sbGVjdDI6IGxkIHJldHVybmVk IDEgZXhpdCBzdGF0dXMNDQpjb25maWd1cmU6MzI5NTY6ICQ/ID0gMQ0KY29uZmlndXJlOiBmYWls ZWQgcHJvZ3JhbSB3YXM6DQp8IC8qIGNvbmZkZWZzLmguICAqLw0KfCANCnwgI2RlZmluZSBQQUNL QUdFX05BTUUgIkdOVSBNUCINCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImdtcCINCnwgI2Rl ZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuMi4yIg0KfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJH TlUgTVAgNC4yLjIiDQp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImdtcC1idWdzQHN3b3gu Y29tIg0KfCAjZGVmaW5lIFBBQ0tBR0UgImdtcCINCnwgI2RlZmluZSBWRVJTSU9OICI0LjIuMiIN CnwgI2RlZmluZSBXQU5UX0ZGVCAxDQp8ICNkZWZpbmUgSEFWRV9IT1NUX0NQVV9wcGNiZSAxDQp8 ICNkZWZpbmUgUFJPVE9UWVBFUyAxDQp8ICNkZWZpbmUgX19QUk9UT1RZUEVTIDENCnwgI2RlZmlu ZSBTVERDX0hFQURFUlMgMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQ0KfCAjZGVmaW5l IEhBVkVfU1lTX1NUQVRfSCAxDQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxDQp8ICNkZWZpbmUg SEFWRV9TVFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxDQp8ICNkZWZpbmUgSEFW RV9TVFJJTkdTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxDQp8ICNkZWZpbmUgSEFW RV9TVERJTlRfSCAxDQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxDQp8ICNkZWZpbmUgSEFWRV9T VFJJTkdfSCAxDQp8ICNkZWZpbmUgSEFWRV9ETEZDTl9IIDENCnwgI2RlZmluZSBTVERDX0hFQURF UlMgMQ0KfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxDQp8ICNkZWZpbmUgSEFWRV9GQ05U TF9IIDENCnwgI2RlZmluZSBIQVZFX0ZMT0FUX0ggMQ0KfCAjZGVmaW5lIEhBVkVfTEFOR0lORk9f SCAxDQp8ICNkZWZpbmUgSEFWRV9MT0NBTEVfSCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNfTU1BTl9I IDENCnwgI2RlZmluZSBIQVZFX1NZU19QQVJBTV9IIDENCnwgI2RlZmluZSBIQVZFX1NZU19USU1F X0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVTX0ggMQ0KfCAjZGVmaW5lIEhBVkVfU1lTX1JF U09VUkNFX0ggMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9GR0VUQyAxDQp8ICNkZWZpbmUgSEFWRV9E RUNMX0ZTQ0FORiAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX09QVEFSRyAxDQp8ICNkZWZpbmUgSEFW RV9ERUNMX1VOR0VUQyAxDQp8ICNkZWZpbmUgSEFWRV9ERUNMX1ZGUFJJTlRGIDENCnwgI2RlZmlu ZSBIQVZFX0RFQ0xfU1lTX0VSUkxJU1QgMQ0KfCAjZGVmaW5lIEhBVkVfREVDTF9TWVNfTkVSUiAx DQp8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkDQp8ICNkZWZpbmUgSEFWRV9JTlRNQVhfVCAxDQp8 ICNkZWZpbmUgSEFWRV9MT05HX0RPVUJMRSAxDQp8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQ0K fCAjZGVmaW5lIEhBVkVfUFRSRElGRl9UIDENCnwgI2RlZmluZSBIQVZFX1VJTlRfTEVBU1QzMl9U IDENCnwgI2RlZmluZSBIQVZFX1NUUklOR0laRSAxDQp8ICNkZWZpbmUgSEFWRV9TVERBUkcgMQ0K fCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX0NPTlNUIDENCnwgI2RlZmluZSBIQVZFX0FUVFJJQlVU RV9NQUxMT0MgMQ0KfCAjZGVmaW5lIEhBVkVfQVRUUklCVVRFX01PREUgMQ0KfCAjZGVmaW5lIEhB VkVfQVRUUklCVVRFX05PUkVUVVJOIDENCnwgI2RlZmluZSBIQVZFX0FMTE9DQV9IIDENCnwgI2Rl ZmluZSBIQVZFX0FMTE9DQSAxDQp8ICNkZWZpbmUgV0FOVF9UTVBfQUxMT0NBIDENCnwgI2RlZmlu ZSBIQVZFX0xJTUJfTElUVExFX0VORElBTiAxDQp8ICNkZWZpbmUgSEFWRV9ET1VCTEVfSUVFRV9M SVRUTEVfRU5ESUFOIDENCnwgI2RlZmluZSBIQVZFX0FMQVJNIDENCnwgI2RlZmluZSBIQVZFX0NM T0NLIDENCnwgI2RlZmluZSBIQVZFX0NMT0NLX0dFVFRJTUUgMQ0KfCAjZGVmaW5lIEhBVkVfR0VU UEFHRVNJWkUgMQ0KfCAjZGVmaW5lIEhBVkVfR0VUUlVTQUdFIDENCnwgI2RlZmluZSBIQVZFX0dF VFRJTUVPRkRBWSAxDQp8ICNkZWZpbmUgSEFWRV9MT0NBTEVDT05WIDENCnwgI2RlZmluZSBIQVZF X01FTVNFVCAxDQp8ICNkZWZpbmUgSEFWRV9NTUFQIDENCnwgI2RlZmluZSBIQVZFX01QUk9URUNU IDENCnwgI2RlZmluZSBIQVZFX05MX0xBTkdJTkZPIDENCnwgI2RlZmluZSBIQVZFX1BPUEVOIDEN CnwgI2RlZmluZSBIQVZFX1JBSVNFIDENCnwgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxDQp8ICNk ZWZpbmUgSEFWRV9TVFJDSFIgMQ0KfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQ0KfCAjZGVmaW5l IEhBVkVfU1RSTkxFTiAxDQp8ICNkZWZpbmUgSEFWRV9TVFJUT0wgMQ0KfCAjZGVmaW5lIEhBVkVf U1RSVE9VTCAxDQp8ICNkZWZpbmUgSEFWRV9TWVNDT05GIDENCnwgI2RlZmluZSBIQVZFX1RJTUVT IDENCnwgI2RlZmluZSBIQVZFX1ZTTlBSSU5URiAxDQp8ICNkZWZpbmUgR01QX01QQVJBTV9IX1NV R0dFU1QgIi4vbXBuL2dlbmVyaWMvZ21wLW1wYXJhbS5oIg0KfCAjZGVmaW5lIFNJWkVPRl9VTlNJ R05FRF9TSE9SVCAyDQp8ICNkZWZpbmUgU0laRU9GX1VOU0lHTkVEIDQNCnwgI2RlZmluZSBTSVpF T0ZfVU5TSUdORURfTE9ORyA0DQp8ICNkZWZpbmUgU0laRU9GX01QX0xJTUJfVCA0DQp8ICNkZWZp bmUgVFVORV9TUVJfS0FSQVRTVUJBX01BWCBTUVJfS0FSQVRTVUJBX01BWF9HRU5FUklDDQp8IC8q IGVuZCBjb25mZGVmcy5oLiAgKi8NCnwgDQp8IC8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFs IHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovDQp8ICNpZmRlZiBfX2NwbHVzcGx1cw0K fCBleHRlcm4gIkMiDQp8ICNlbmRpZg0KfCAvKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdo dCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyDQp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4g aXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovDQp8IGNoYXIgeXl3 cmFwICgpOw0KfCBpbnQNCnwgbWFpbiAoKQ0KfCB7DQp8IHl5d3JhcCAoKTsNCnwgICA7DQp8ICAg cmV0dXJuIDA7DQp8IH0NCmNvbmZpZ3VyZTozMjk4MjogcmVzdWx0OiBubw0KY29uZmlndXJlOjMy OTkzOiBjaGVja2luZyBsZXggb3V0cHV0IGZpbGUgcm9vdA0KY29uZmlndXJlOjMzMDA0OiBmbGV4 IGNvbmZ0ZXN0LmwNCmNvbmZpZ3VyZTozMzAwNzogJD8gPSAwDQpjb25maWd1cmU6MzMwMTk6IHJl c3VsdDogbGV4Lnl5DQpjb25maWd1cmU6MzMwMjQ6IGNoZWNraW5nIHdoZXRoZXIgeXl0ZXh0IGlz IGEgcG9pbnRlcg0KY29uZmlndXJlOjMzMDQwOiBnY2MgLW8gY29uZnRlc3QuZXhlIC1PMyAgIGNv bmZ0ZXN0LmMgICA+JjUNCi9jeWdkcml2ZS9jL0RPQ1VNRX4xL1ZDSU1+MS5JTkIvTE9DQUxTfjEv VGVtcC9jY2VzU0xBOC5vOmNvbmZ0ZXN0LmM6KC50ZXh0KzB4ODg1KTogdW5kZWZpbmVkIHJlZmVy ZW5jZSB0byBgX3l5d3JhcCcNDQovdXNyL2xpYi9nY2MvaTY4Ni1wYy1jeWd3aW4vMy40LjQvLi4v Li4vLi4vbGliY3lnd2luLmEobGliY21haW4ubyk6KC50ZXh0KzB4YWIpOiB1bmRlZmluZWQgcmVm ZXJlbmNlIHRvIGBfV2luTWFpbkAxNicNDQpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0 YXR1cw0NCmNvbmZpZ3VyZTozMzA0NjogJD8gPSAxDQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFt IHdhczoNCnwgLyogQSBsZXhpY2FsIHNjYW5uZXIgZ2VuZXJhdGVkIGJ5IGZsZXggKi8NCnwgDQp8 IC8qIFNjYW5uZXIgc2tlbGV0b24gdmVyc2lvbjoNCnwgICogJEhlYWRlcjogL2hvbWUvZGFmZnkv dTAvdmVybi9mbGV4L1JDUy9mbGV4LnNrbCx2IDIuOTEgOTYvMDkvMTAgMTY6NTg6NDggdmVybiBF eHAgJA0KfCAgKi8NCnwgDQp8ICNkZWZpbmUgRkxFWF9TQ0FOTkVSDQp8ICNkZWZpbmUgWVlfRkxF WF9NQUpPUl9WRVJTSU9OIDINCnwgI2RlZmluZSBZWV9GTEVYX01JTk9SX1ZFUlNJT04gNQ0KfCAN CnwgI2luY2x1ZGUgPHN0ZGlvLmg+DQp8IA0KfCANCnwgLyogY2Zyb250IDEuMiBkZWZpbmVzICJj X3BsdXNwbHVzIiBpbnN0ZWFkIG9mICJfX2NwbHVzcGx1cyIgKi8NCnwgI2lmZGVmIGNfcGx1c3Bs dXMNCnwgI2lmbmRlZiBfX2NwbHVzcGx1cw0KfCAjZGVmaW5lIF9fY3BsdXNwbHVzDQp8ICNlbmRp Zg0KfCAjZW5kaWYNCnwgDQp8IA0KfCAjaWZkZWYgX19jcGx1c3BsdXMNCnwgDQp8ICNpbmNsdWRl IDxzdGRsaWIuaD4NCnwgI2luY2x1ZGUgPHVuaXN0ZC5oPg0KfCANCnwgLyogVXNlIHByb3RvdHlw ZXMgaW4gZnVuY3Rpb24gZGVjbGFyYXRpb25zLiAqLw0KfCAjZGVmaW5lIFlZX1VTRV9QUk9UT1MN CnwgDQp8IC8qIFRoZSAiY29uc3QiIHN0b3JhZ2UtY2xhc3MtbW9kaWZpZXIgaXMgdmFsaWQuICov DQp8ICNkZWZpbmUgWVlfVVNFX0NPTlNUDQp8IA0KfCAjZWxzZQkvKiAhIF9fY3BsdXNwbHVzICov DQp8IA0KfCAjaWYgX19TVERDX18NCnwgDQp8ICNkZWZpbmUgWVlfVVNFX1BST1RPUw0KfCAjZGVm aW5lIFlZX1VTRV9DT05TVA0KfCANCnwgI2VuZGlmCS8qIF9fU1REQ19fICovDQp8ICNlbmRpZgkv KiAhIF9fY3BsdXNwbHVzICovDQp8IA0KfCAjaWZkZWYgX19UVVJCT0NfXw0KfCAgI3ByYWdtYSB3 YXJuIC1yY2gNCnwgICNwcmFnbWEgd2FybiAtdXNlDQp8ICNpbmNsdWRlIDxpby5oPg0KfCAjaW5j bHVkZSA8c3RkbGliLmg+DQp8ICNkZWZpbmUgWVlfVVNFX0NPTlNUDQp8ICNkZWZpbmUgWVlfVVNF X1BST1RPUw0KfCAjZW5kaWYNCnwgDQp8ICNpZmRlZiBZWV9VU0VfQ09OU1QNCnwgI2RlZmluZSB5 eWNvbnN0IGNvbnN0DQp8ICNlbHNlDQp8ICNkZWZpbmUgeXljb25zdA0KfCAjZW5kaWYNCnwgDQp8 IA0KfCAjaWZkZWYgWVlfVVNFX1BST1RPUw0KfCAjZGVmaW5lIFlZX1BST1RPKHByb3RvKSBwcm90 bw0KfCAjZWxzZQ0KfCAjZGVmaW5lIFlZX1BST1RPKHByb3RvKSAoKQ0KfCAjZW5kaWYNCnwgDQp8 IC8qIFJldHVybmVkIHVwb24gZW5kLW9mLWZpbGUuICovDQp8ICNkZWZpbmUgWVlfTlVMTCAwDQp8 IA0KfCAvKiBQcm9tb3RlcyBhIHBvc3NpYmx5IG5lZ2F0aXZlLCBwb3NzaWJseSBzaWduZWQgY2hh ciB0byBhbiB1bnNpZ25lZA0KfCAgKiBpbnRlZ2VyIGZvciB1c2UgYXMgYW4gYXJyYXkgaW5kZXgu ICBJZiB0aGUgc2lnbmVkIGNoYXIgaXMgbmVnYXRpdmUsDQp8ICAqIHdlIHdhbnQgdG8gaW5zdGVh ZCB0cmVhdCBpdCBhcyBhbiA4LWJpdCB1bnNpZ25lZCBjaGFyLCBoZW5jZSB0aGUNCnwgICogZG91 YmxlIGNhc3QuDQp8ICAqLw0KfCAjZGVmaW5lIFlZX1NDX1RPX1VJKGMpICgodW5zaWduZWQgaW50 KSAodW5zaWduZWQgY2hhcikgYykNCnwgDQp8IC8qIEVudGVyIGEgc3RhcnQgY29uZGl0aW9uLiAg VGhpcyBtYWNybyByZWFsbHkgb3VnaHQgdG8gdGFrZSBhIHBhcmFtZXRlciwNCnwgICogYnV0IHdl IGRvIGl0IHRoZSBkaXNndXN0aW5nIGNydWZ0eSB3YXkgZm9yY2VkIG9uIHVzIGJ5IHRoZSAoKS1s ZXNzDQp8ICAqIGRlZmluaXRpb24gb2YgQkVHSU4uDQp8ICAqLw0KfCAjZGVmaW5lIEJFR0lOIHl5 X3N0YXJ0ID0gMSArIDIgKg0KfCANCnwgLyogVHJhbnNsYXRlIHRoZSBjdXJyZW50IHN0YXJ0IHN0 YXRlIGludG8gYSB2YWx1ZSB0aGF0IGNhbiBiZSBsYXRlciBoYW5kZWQNCnwgICogdG8gQkVHSU4g dG8gcmV0dXJuIHRvIHRoZSBzdGF0ZS4gIFRoZSBZWVNUQVRFIGFsaWFzIGlzIGZvciBsZXgNCnwg ICogY29tcGF0aWJpbGl0eS4NCnwgICovDQp8ICNkZWZpbmUgWVlfU1RBUlQgKCh5eV9zdGFydCAt IDEpIC8gMikNCnwgI2RlZmluZSBZWVNUQVRFIFlZX1NUQVJUDQp8IA0KfCAvKiBBY3Rpb24gbnVt YmVyIGZvciBFT0YgcnVsZSBvZiBhIGdpdmVuIHN0YXJ0IHN0YXRlLiAqLw0KfCAjZGVmaW5lIFlZ X1NUQVRFX0VPRihzdGF0ZSkgKFlZX0VORF9PRl9CVUZGRVIgKyBzdGF0ZSArIDEpDQp8IA0KfCAv KiBTcGVjaWFsIGFjdGlvbiBtZWFuaW5nICJzdGFydCBwcm9jZXNzaW5nIGEgbmV3IGZpbGUiLiAq Lw0KfCAjZGVmaW5lIFlZX05FV19GSUxFIHl5cmVzdGFydCggeXlpbiApDQp8IA0KfCAjZGVmaW5l IFlZX0VORF9PRl9CVUZGRVJfQ0hBUiAwDQp8IA0KfCAvKiBTaXplIG9mIGRlZmF1bHQgaW5wdXQg YnVmZmVyLiAqLw0KfCAjZGVmaW5lIFlZX0JVRl9TSVpFIDE2Mzg0DQp8IA0KfCB0eXBlZGVmIHN0 cnVjdCB5eV9idWZmZXJfc3RhdGUgKllZX0JVRkZFUl9TVEFURTsNCnwgDQp8IGV4dGVybiBpbnQg eXlsZW5nOw0KfCBleHRlcm4gRklMRSAqeXlpbiwgKnl5b3V0Ow0KfCANCnwgI2RlZmluZSBFT0Jf QUNUX0NPTlRJTlVFX1NDQU4gMA0KfCAjZGVmaW5lIEVPQl9BQ1RfRU5EX09GX0ZJTEUgMQ0KfCAj ZGVmaW5lIEVPQl9BQ1RfTEFTVF9NQVRDSCAyDQp8IA0KfCAvKiBUaGUgZnVua3kgZG8td2hpbGUg aW4gdGhlIGZvbGxvd2luZyAjZGVmaW5lIGlzIHVzZWQgdG8gdHVybiB0aGUgZGVmaW5pdGlvbg0K fCAgKiBpbnQgYSBzaW5nbGUgQyBzdGF0ZW1lbnQgKHdoaWNoIG5lZWRzIGEgc2VtaS1jb2xvbiB0 ZXJtaW5hdG9yKS4gIFRoaXMNCnwgICogYXZvaWRzIHByb2JsZW1zIHdpdGggY29kZSBsaWtlOg0K fCAgKg0KfCAgKiAJaWYgKCBjb25kaXRpb25faG9sZHMgKQ0KfCAgKgkJeXlsZXNzKCA1ICk7DQp8 ICAqCWVsc2UNCnwgICoJCWRvX3NvbWV0aGluZ19lbHNlKCk7DQp8ICAqDQp8ICAqIFByaW9yIHRv IHVzaW5nIHRoZSBkby13aGlsZSB0aGUgY29tcGlsZXIgd291bGQgZ2V0IHVwc2V0IGF0IHRoZQ0K fCAgKiAiZWxzZSIgYmVjYXVzZSBpdCBpbnRlcnByZXRlZCB0aGUgImlmIiBzdGF0ZW1lbnQgYXMg YmVpbmcgYWxsDQp8ICAqIGRvbmUgd2hlbiBpdCByZWFjaGVkIHRoZSAnOycgYWZ0ZXIgdGhlIHl5 bGVzcygpIGNhbGwuDQp8ICAqLw0KfCANCnwgLyogUmV0dXJuIGFsbCBidXQgdGhlIGZpcnN0ICdu JyBtYXRjaGVkIGNoYXJhY3RlcnMgYmFjayB0byB0aGUgaW5wdXQgc3RyZWFtLiAqLw0KfCANCnwg I2RlZmluZSB5eWxlc3MobikgXA0KfCAJZG8gXA0KfCAJCXsgXA0KfCAJCS8qIFVuZG8gZWZmZWN0 cyBvZiBzZXR0aW5nIHVwIHl5dGV4dC4gKi8gXA0KfCAJCSp5eV9jcCA9IHl5X2hvbGRfY2hhcjsg XA0KfCAJCVlZX1JFU1RPUkVfWVlfTU9SRV9PRkZTRVQgXA0KfCAJCXl5X2NfYnVmX3AgPSB5eV9j cCA9IHl5X2JwICsgbiAtIFlZX01PUkVfQURKOyBcDQp8IAkJWVlfRE9fQkVGT1JFX0FDVElPTjsg Lyogc2V0IHVwIHl5dGV4dCBhZ2FpbiAqLyBcDQp8IAkJfSBcDQp8IAl3aGlsZSAoIDAgKQ0KfCAN CnwgI2RlZmluZSB1bnB1dChjKSB5eXVucHV0KCBjLCB5eXRleHRfcHRyICkNCnwgDQp8IC8qIFRo ZSBmb2xsb3dpbmcgaXMgYmVjYXVzZSB3ZSBjYW5ub3QgcG9ydGFibHkgZ2V0IG91ciBoYW5kcyBv biBzaXplX3QNCnwgICogKHdpdGhvdXQgYXV0b2NvbmYncyBoZWxwLCB3aGljaCBpc24ndCBhdmFp bGFibGUgYmVjYXVzZSB3ZSB3YW50DQp8ICAqIGZsZXgtZ2VuZXJhdGVkIHNjYW5uZXJzIHRvIGNv bXBpbGUgb24gdGhlaXIgb3duKS4NCnwgICovDQp8IHR5cGVkZWYgdW5zaWduZWQgaW50IHl5X3Np emVfdDsNCnwgDQp8IA0KfCBzdHJ1Y3QgeXlfYnVmZmVyX3N0YXRlDQp8IAl7DQp8IAlGSUxFICp5 eV9pbnB1dF9maWxlOw0KfCANCnwgCWNoYXIgKnl5X2NoX2J1ZjsJCS8qIGlucHV0IGJ1ZmZlciAq Lw0KfCAJY2hhciAqeXlfYnVmX3BvczsJCS8qIGN1cnJlbnQgcG9zaXRpb24gaW4gaW5wdXQgYnVm ZmVyICovDQp8IA0KfCAJLyogU2l6ZSBvZiBpbnB1dCBidWZmZXIgaW4gYnl0ZXMsIG5vdCBpbmNs dWRpbmcgcm9vbSBmb3IgRU9CDQp8IAkgKiBjaGFyYWN0ZXJzLg0KfCAJICovDQp8IAl5eV9zaXpl X3QgeXlfYnVmX3NpemU7DQp8IA0KfCAJLyogTnVtYmVyIG9mIGNoYXJhY3RlcnMgcmVhZCBpbnRv IHl5X2NoX2J1Ziwgbm90IGluY2x1ZGluZyBFT0INCnwgCSAqIGNoYXJhY3RlcnMuDQp8IAkgKi8N CnwgCWludCB5eV9uX2NoYXJzOw0KfCANCnwgCS8qIFdoZXRoZXIgd2UgIm93biIgdGhlIGJ1ZmZl ciAtIGkuZS4sIHdlIGtub3cgd2UgY3JlYXRlZCBpdCwNCnwgCSAqIGFuZCBjYW4gcmVhbGxvYygp IGl0IHRvIGdyb3cgaXQsIGFuZCBzaG91bGQgZnJlZSgpIGl0IHRvDQp8IAkgKiBkZWxldGUgaXQu DQp8IAkgKi8NCnwgCWludCB5eV9pc19vdXJfYnVmZmVyOw0KfCANCnwgCS8qIFdoZXRoZXIgdGhp cyBpcyBhbiAiaW50ZXJhY3RpdmUiIGlucHV0IHNvdXJjZTsgaWYgc28sIGFuZA0KfCAJICogaWYg d2UncmUgdXNpbmcgc3RkaW8gZm9yIGlucHV0LCB0aGVuIHdlIHdhbnQgdG8gdXNlIGdldGMoKQ0K fCAJICogaW5zdGVhZCBvZiBmcmVhZCgpLCB0byBtYWtlIHN1cmUgd2Ugc3RvcCBmZXRjaGluZyBp bnB1dCBhZnRlcg0KfCAJICogZWFjaCBuZXdsaW5lLg0KfCAJICovDQp8IAlpbnQgeXlfaXNfaW50 ZXJhY3RpdmU7DQp8IA0KfCAJLyogV2hldGhlciB3ZSdyZSBjb25zaWRlcmVkIHRvIGJlIGF0IHRo ZSBiZWdpbm5pbmcgb2YgYSBsaW5lLg0KfCAJICogSWYgc28sICdeJyBydWxlcyB3aWxsIGJlIGFj dGl2ZSBvbiB0aGUgbmV4dCBtYXRjaCwgb3RoZXJ3aXNlDQp8IAkgKiBub3QuDQp8IAkgKi8NCnwg CWludCB5eV9hdF9ib2w7DQp8IA0KfCAJLyogV2hldGhlciB0byB0cnkgdG8gZmlsbCB0aGUgaW5w dXQgYnVmZmVyIHdoZW4gd2UgcmVhY2ggdGhlDQp8IAkgKiBlbmQgb2YgaXQuDQp8IAkgKi8NCnwg CWludCB5eV9maWxsX2J1ZmZlcjsNCnwgDQp8IAlpbnQgeXlfYnVmZmVyX3N0YXR1czsNCnwgI2Rl ZmluZSBZWV9CVUZGRVJfTkVXIDANCnwgI2RlZmluZSBZWV9CVUZGRVJfTk9STUFMIDENCnwgCS8q IFdoZW4gYW4gRU9GJ3MgYmVlbiBzZWVuIGJ1dCB0aGVyZSdzIHN0aWxsIHNvbWUgdGV4dCB0byBw cm9jZXNzDQp8IAkgKiB0aGVuIHdlIG1hcmsgdGhlIGJ1ZmZlciBhcyBZWV9FT0ZfUEVORElORywg dG8gaW5kaWNhdGUgdGhhdCB3ZQ0KfCAJICogc2hvdWxkbid0IHRyeSByZWFkaW5nIGZyb20gdGhl IGlucHV0IHNvdXJjZSBhbnkgbW9yZS4gIFdlIG1pZ2h0DQp8IAkgKiBzdGlsbCBoYXZlIGEgYnVu Y2ggb2YgdG9rZW5zIHRvIG1hdGNoLCB0aG91Z2gsIGJlY2F1c2Ugb2YNCnwgCSAqIHBvc3NpYmxl IGJhY2tpbmctdXAuDQp8IAkgKg0KfCAJICogV2hlbiB3ZSBhY3R1YWxseSBzZWUgdGhlIEVPRiwg d2UgY2hhbmdlIHRoZSBzdGF0dXMgdG8gIm5ldyINCnwgCSAqICh2aWEgeXlyZXN0YXJ0KCkpLCBz byB0aGF0IHRoZSB1c2VyIGNhbiBjb250aW51ZSBzY2FubmluZyBieQ0KfCAJICoganVzdCBwb2lu dGluZyB5eWluIGF0IGEgbmV3IGlucHV0IGZpbGUuDQp8IAkgKi8NCnwgI2RlZmluZSBZWV9CVUZG RVJfRU9GX1BFTkRJTkcgMg0KfCAJfTsNCnwgDQp8IHN0YXRpYyBZWV9CVUZGRVJfU1RBVEUgeXlf Y3VycmVudF9idWZmZXIgPSAwOw0KfCANCnwgLyogV2UgcHJvdmlkZSBtYWNyb3MgZm9yIGFjY2Vz c2luZyBidWZmZXIgc3RhdGVzIGluIGNhc2UgaW4gdGhlDQp8ICAqIGZ1dHVyZSB3ZSB3YW50IHRv IHB1dCB0aGUgYnVmZmVyIHN0YXRlcyBpbiBhIG1vcmUgZ2VuZXJhbA0KfCAgKiAic2Nhbm5lciBz dGF0ZSIuDQp8ICAqLw0KfCAjZGVmaW5lIFlZX0NVUlJFTlRfQlVGRkVSIHl5X2N1cnJlbnRfYnVm ZmVyDQp8IA0KfCANCnwgLyogeXlfaG9sZF9jaGFyIGhvbGRzIHRoZSBjaGFyYWN0ZXIgbG9zdCB3 aGVuIHl5dGV4dCBpcyBmb3JtZWQuICovDQp8IHN0YXRpYyBjaGFyIHl5X2hvbGRfY2hhcjsNCnwg DQp8IHN0YXRpYyBpbnQgeXlfbl9jaGFyczsJCS8qIG51bWJlciBvZiBjaGFyYWN0ZXJzIHJlYWQg aW50byB5eV9jaF9idWYgKi8NCnwgDQp8IA0KfCBpbnQgeXlsZW5nOw0KfCANCnwgLyogUG9pbnRz IHRvIGN1cnJlbnQgY2hhcmFjdGVyIGluIGJ1ZmZlci4gKi8NCnwgc3RhdGljIGNoYXIgKnl5X2Nf YnVmX3AgPSAoY2hhciAqKSAwOw0KfCBzdGF0aWMgaW50IHl5X2luaXQgPSAxOwkJLyogd2hldGhl ciB3ZSBuZWVkIHRvIGluaXRpYWxpemUgKi8NCnwgc3RhdGljIGludCB5eV9zdGFydCA9IDA7CS8q IHN0YXJ0IHN0YXRlIG51bWJlciAqLw0KfCANCnwgLyogRmxhZyB3aGljaCBpcyB1c2VkIHRvIGFs bG93IHl5d3JhcCgpJ3MgdG8gZG8gYnVmZmVyIHN3aXRjaGVzDQp8ICAqIGluc3RlYWQgb2Ygc2V0 dGluZyB1cCBhIGZyZXNoIHl5aW4uICBBIGJpdCBvZiBhIGhhY2sgLi4uDQp8ICAqLw0KfCBzdGF0 aWMgaW50IHl5X2RpZF9idWZmZXJfc3dpdGNoX29uX2VvZjsNCnwgDQp8IHZvaWQgeXlyZXN0YXJ0 IFlZX1BST1RPKCggRklMRSAqaW5wdXRfZmlsZSApKTsNCnwgDQp8IHZvaWQgeXlfc3dpdGNoX3Rv X2J1ZmZlciBZWV9QUk9UTygoIFlZX0JVRkZFUl9TVEFURSBuZXdfYnVmZmVyICkpOw0KfCB2b2lk IHl5X2xvYWRfYnVmZmVyX3N0YXRlIFlZX1BST1RPKCggdm9pZCApKTsNCnwgWVlfQlVGRkVSX1NU QVRFIHl5X2NyZWF0ZV9idWZmZXIgWVlfUFJPVE8oKCBGSUxFICpmaWxlLCBpbnQgc2l6ZSApKTsN Cnwgdm9pZCB5eV9kZWxldGVfYnVmZmVyIFlZX1BST1RPKCggWVlfQlVGRkVSX1NUQVRFIGIgKSk7 DQp8IHZvaWQgeXlfaW5pdF9idWZmZXIgWVlfUFJPVE8oKCBZWV9CVUZGRVJfU1RBVEUgYiwgRklM RSAqZmlsZSApKTsNCnwgdm9pZCB5eV9mbHVzaF9idWZmZXIgWVlfUFJPVE8oKCBZWV9CVUZGRVJf U1RBVEUgYiApKTsNCnwgI2RlZmluZSBZWV9GTFVTSF9CVUZGRVIgeXlfZmx1c2hfYnVmZmVyKCB5 eV9jdXJyZW50X2J1ZmZlciApDQp8IA0KfCBZWV9CVUZGRVJfU1RBVEUgeXlfc2Nhbl9idWZmZXIg WVlfUFJPVE8oKCBjaGFyICpiYXNlLCB5eV9zaXplX3Qgc2l6ZSApKTsNCnwgWVlfQlVGRkVSX1NU QVRFIHl5X3NjYW5fc3RyaW5nIFlZX1BST1RPKCggeXljb25zdCBjaGFyICp5eV9zdHIgKSk7DQp8 IFlZX0JVRkZFUl9TVEFURSB5eV9zY2FuX2J5dGVzIFlZX1BST1RPKCggeXljb25zdCBjaGFyICpi eXRlcywgaW50IGxlbiApKTsNCnwgDQp8IHN0YXRpYyB2b2lkICp5eV9mbGV4X2FsbG9jIFlZX1BS T1RPKCggeXlfc2l6ZV90ICkpOw0KfCBzdGF0aWMgdm9pZCAqeXlfZmxleF9yZWFsbG9jIFlZX1BS T1RPKCggdm9pZCAqLCB5eV9zaXplX3QgKSk7DQp8IHN0YXRpYyB2b2lkIHl5X2ZsZXhfZnJlZSBZ WV9QUk9UTygoIHZvaWQgKiApKTsNCnwgDQp8ICNkZWZpbmUgeXlfbmV3X2J1ZmZlciB5eV9jcmVh dGVfYnVmZmVyDQp8IA0KfCAjZGVmaW5lIHl5X3NldF9pbnRlcmFjdGl2ZShpc19pbnRlcmFjdGl2 ZSkgXA0KfCAJeyBcDQp8IAlpZiAoICEgeXlfY3VycmVudF9idWZmZXIgKSBcDQp8IAkJeXlfY3Vy cmVudF9idWZmZXIgPSB5eV9jcmVhdGVfYnVmZmVyKCB5eWluLCBZWV9CVUZfU0laRSApOyBcDQp8 IAl5eV9jdXJyZW50X2J1ZmZlci0+eXlfaXNfaW50ZXJhY3RpdmUgPSBpc19pbnRlcmFjdGl2ZTsg XA0KfCAJfQ0KfCANCnwgI2RlZmluZSB5eV9zZXRfYm9sKGF0X2JvbCkgXA0KfCAJeyBcDQp8IAlp ZiAoICEgeXlfY3VycmVudF9idWZmZXIgKSBcDQp8IAkJeXlfY3VycmVudF9idWZmZXIgPSB5eV9j cmVhdGVfYnVmZmVyKCB5eWluLCBZWV9CVUZfU0laRSApOyBcDQp8IAl5eV9jdXJyZW50X2J1ZmZl ci0+eXlfYXRfYm9sID0gYXRfYm9sOyBcDQp8IAl9DQp8IA0KfCAjZGVmaW5lIFlZX0FUX0JPTCgp ICh5eV9jdXJyZW50X2J1ZmZlci0+eXlfYXRfYm9sKQ0KfCANCnwgdHlwZWRlZiB1bnNpZ25lZCBj aGFyIFlZX0NIQVI7DQp8IEZJTEUgKnl5aW4gPSAoRklMRSAqKSAwLCAqeXlvdXQgPSAoRklMRSAq KSAwOw0KfCB0eXBlZGVmIGludCB5eV9zdGF0ZV90eXBlOw0KfCBleHRlcm4gY2hhciAqeXl0ZXh0 Ow0KfCAjZGVmaW5lIHl5dGV4dF9wdHIgeXl0ZXh0DQp8IA0KfCBzdGF0aWMgeXlfc3RhdGVfdHlw ZSB5eV9nZXRfcHJldmlvdXNfc3RhdGUgWVlfUFJPVE8oKCB2b2lkICkpOw0KfCBzdGF0aWMgeXlf c3RhdGVfdHlwZSB5eV90cnlfTlVMX3RyYW5zIFlZX1BST1RPKCggeXlfc3RhdGVfdHlwZSBjdXJy ZW50X3N0YXRlICkpOw0KfCBzdGF0aWMgaW50IHl5X2dldF9uZXh0X2J1ZmZlciBZWV9QUk9UTygo IHZvaWQgKSk7DQp8IHN0YXRpYyB2b2lkIHl5X2ZhdGFsX2Vycm9yIFlZX1BST1RPKCggeXljb25z dCBjaGFyIG1zZ1tdICkpOw0KfCANCnwgLyogRG9uZSBhZnRlciB0aGUgY3VycmVudCBwYXR0ZXJu IGhhcyBiZWVuIG1hdGNoZWQgYW5kIGJlZm9yZSB0aGUNCnwgICogY29ycmVzcG9uZGluZyBhY3Rp b24gLSBzZXRzIHVwIHl5dGV4dC4NCnwgICovDQp8ICNkZWZpbmUgWVlfRE9fQkVGT1JFX0FDVElP TiBcDQp8IAl5eXRleHRfcHRyID0geXlfYnA7IFwNCnwgCXl5bGVuZyA9IChpbnQpICh5eV9jcCAt IHl5X2JwKTsgXA0KfCAJeXlfaG9sZF9jaGFyID0gKnl5X2NwOyBcDQp8IAkqeXlfY3AgPSAnXDAn OyBcDQp8IAl5eV9jX2J1Zl9wID0geXlfY3A7DQp8IA0KfCAjZGVmaW5lIFlZX05VTV9SVUxFUyAx DQp8ICNkZWZpbmUgWVlfRU5EX09GX0JVRkZFUiAyDQp8IHN0YXRpYyB5eWNvbnN0IHNob3J0IGlu dCB5eV9hY2NlcHRbNl0gPQ0KfCAgICAgeyAgIDAsDQp8ICAgICAgICAgMCwgICAgMCwgICAgMiwg ICAgMSwgICAgMA0KfCAgICAgfSA7DQp8IA0KfCBzdGF0aWMgeXljb25zdCBpbnQgeXlfZWNbMjU2 XSA9DQp8ICAgICB7ICAgMCwNCnwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAg ICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLA0KfCAgICAgICAgIDEsICAgIDEsICAgIDEsICAg IDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsDQp8ICAgICAgICAgMSwgICAg MSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwNCnwgICAg ICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAg ICAxLA0KfCAgICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAg IDEsICAgIDEsICAgIDEsDQp8ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAg MSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwNCnwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAx LCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLA0KfCAgICAgICAgIDEsICAgIDEs ICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsDQp8ICAgICAg ICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAg MSwNCnwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAx LCAgICAxLCAgICAxLA0KfCANCnwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAg ICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLA0KfCAgICAgICAgIDEsICAgIDEsICAgIDEsICAg IDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsDQp8ICAgICAgICAgMSwgICAg MSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwNCnwgICAg ICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAg ICAxLA0KfCAgICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAg IDEsICAgIDEsICAgIDEsDQp8ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAg MSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwNCnwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAx LCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLA0KfCAgICAgICAgIDEsICAgIDEs ICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsDQp8ICAgICAg ICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAg MSwNCnwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAx LCAgICAxLCAgICAxLA0KfCANCnwgICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAg ICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLA0KfCAgICAgICAgIDEsICAgIDEsICAgIDEsICAg IDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsDQp8ICAgICAgICAgMSwgICAg MSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwNCnwgICAg ICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAg ICAxLA0KfCAgICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAg IDEsICAgIDEsICAgIDEsDQp8ICAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMQ0KfCAg ICAgfSA7DQp8IA0KfCBzdGF0aWMgeXljb25zdCBpbnQgeXlfbWV0YVsyXSA9DQp8ICAgICB7ICAg MCwNCnwgICAgICAgICAxDQp8ICAgICB9IDsNCnwgDQp8IHN0YXRpYyB5eWNvbnN0IHNob3J0IGlu dCB5eV9iYXNlWzddID0NCnwgICAgIHsgICAwLA0KfCAgICAgICAgIDAsICAgIDAsICAgIDIsICAg IDMsICAgIDMsICAgIDANCnwgICAgIH0gOw0KfCANCnwgc3RhdGljIHl5Y29uc3Qgc2hvcnQgaW50 IHl5X2RlZls3XSA9DQp8ICAgICB7ICAgMCwNCnwgICAgICAgICA2LCAgICA2LCAgICA1LCAgICA1 LCAgICAwLCAgICA1DQp8ICAgICB9IDsNCnwgDQp8IHN0YXRpYyB5eWNvbnN0IHNob3J0IGludCB5 eV9ueHRbNV0gPQ0KfCAgICAgeyAgIDAsDQp8ICAgICAgICAgNCwgICAgNSwgICAgMywgICAgNQ0K fCAgICAgfSA7DQp8IA0KfCBzdGF0aWMgeXljb25zdCBzaG9ydCBpbnQgeXlfY2hrWzVdID0NCnwg ICAgIHsgICAwLA0KfCAgICAgICAgIDYsICAgIDMsICAgIDUsICAgIDUNCnwgICAgIH0gOw0KfCAN Cnwgc3RhdGljIHl5X3N0YXRlX3R5cGUgeXlfbGFzdF9hY2NlcHRpbmdfc3RhdGU7DQp8IHN0YXRp YyBjaGFyICp5eV9sYXN0X2FjY2VwdGluZ19jcG9zOw0KfCANCnwgLyogVGhlIGludGVudCBiZWhp bmQgdGhpcyBkZWZpbml0aW9uIGlzIHRoYXQgaXQnbGwgY2F0Y2gNCnwgICogYW55IHVzZXMgb2Yg UkVKRUNUIHdoaWNoIGZsZXggbWlzc2VkLg0KfCAgKi8NCnwgI2RlZmluZSBSRUpFQ1QgcmVqZWN0 X3VzZWRfYnV0X25vdF9kZXRlY3RlZA0KfCAjZGVmaW5lIHl5bW9yZSgpIHl5bW9yZV91c2VkX2J1 dF9ub3RfZGV0ZWN0ZWQNCnwgI2RlZmluZSBZWV9NT1JFX0FESiAwDQp8ICNkZWZpbmUgWVlfUkVT VE9SRV9ZWV9NT1JFX09GRlNFVA0KfCBjaGFyICp5eXRleHQ7DQp8ICNsaW5lIDEgImNvbmZ0ZXN0 LmwiDQp8ICNkZWZpbmUgSU5JVElBTCAwDQp8ICNsaW5lIDM2MyAibGV4Lnl5LmMiDQp8IA0KfCAv KiBNYWNyb3MgYWZ0ZXIgdGhpcyBwb2ludCBjYW4gYWxsIGJlIG92ZXJyaWRkZW4gYnkgdXNlciBk ZWZpbml0aW9ucyBpbg0KfCAgKiBzZWN0aW9uIDEuDQp8ICAqLw0KfCANCnwgI2lmbmRlZiBZWV9T S0lQX1lZV1JBUA0KfCAjaWZkZWYgX19jcGx1c3BsdXMNCnwgZXh0ZXJuICJDIiBpbnQgeXl3cmFw IFlZX1BST1RPKCggdm9pZCApKTsNCnwgI2Vsc2UNCnwgZXh0ZXJuIGludCB5eXdyYXAgWVlfUFJP VE8oKCB2b2lkICkpOw0KfCAjZW5kaWYNCnwgI2VuZGlmDQp8IA0KfCAjaWZuZGVmIFlZX05PX1VO UFVUDQp8IHN0YXRpYyB2b2lkIHl5dW5wdXQgWVlfUFJPVE8oKCBpbnQgYywgY2hhciAqYnVmX3B0 ciApKTsNCnwgI2VuZGlmDQp8IA0KfCAjaWZuZGVmIHl5dGV4dF9wdHINCnwgc3RhdGljIHZvaWQg eXlfZmxleF9zdHJuY3B5IFlZX1BST1RPKCggY2hhciAqLCB5eWNvbnN0IGNoYXIgKiwgaW50ICkp Ow0KfCAjZW5kaWYNCnwgDQp8ICNpZmRlZiBZWV9ORUVEX1NUUkxFTg0KfCBzdGF0aWMgaW50IHl5 X2ZsZXhfc3RybGVuIFlZX1BST1RPKCggeXljb25zdCBjaGFyICogKSk7DQp8ICNlbmRpZg0KfCAN CnwgI2lmbmRlZiBZWV9OT19JTlBVVA0KfCAjaWZkZWYgX19jcGx1c3BsdXMNCnwgc3RhdGljIGlu dCB5eWlucHV0IFlZX1BST1RPKCggdm9pZCApKTsNCnwgI2Vsc2UNCnwgc3RhdGljIGludCBpbnB1 dCBZWV9QUk9UTygoIHZvaWQgKSk7DQp8ICNlbmRpZg0KfCAjZW5kaWYNCnwgDQp8ICNpZiBZWV9T VEFDS19VU0VEDQp8IHN0YXRpYyBpbnQgeXlfc3RhcnRfc3RhY2tfcHRyID0gMDsNCnwgc3RhdGlj IGludCB5eV9zdGFydF9zdGFja19kZXB0aCA9IDA7DQp8IHN0YXRpYyBpbnQgKnl5X3N0YXJ0X3N0 YWNrID0gMDsNCnwgI2lmbmRlZiBZWV9OT19QVVNIX1NUQVRFDQp8IHN0YXRpYyB2b2lkIHl5X3B1 c2hfc3RhdGUgWVlfUFJPVE8oKCBpbnQgbmV3X3N0YXRlICkpOw0KfCAjZW5kaWYNCnwgI2lmbmRl ZiBZWV9OT19QT1BfU1RBVEUNCnwgc3RhdGljIHZvaWQgeXlfcG9wX3N0YXRlIFlZX1BST1RPKCgg dm9pZCApKTsNCnwgI2VuZGlmDQp8ICNpZm5kZWYgWVlfTk9fVE9QX1NUQVRFDQp8IHN0YXRpYyBp bnQgeXlfdG9wX3N0YXRlIFlZX1BST1RPKCggdm9pZCApKTsNCnwgI2VuZGlmDQp8IA0KfCAjZWxz ZQ0KfCAjZGVmaW5lIFlZX05PX1BVU0hfU1RBVEUgMQ0KfCAjZGVmaW5lIFlZX05PX1BPUF9TVEFU RSAxDQp8ICNkZWZpbmUgWVlfTk9fVE9QX1NUQVRFIDENCnwgI2VuZGlmDQp8IA0KfCAjaWZkZWYg WVlfTUFMTE9DX0RFQ0wNCnwgWVlfTUFMTE9DX0RFQ0wNCnwgI2Vsc2UNCnwgI2lmIF9fU1REQ19f DQp8ICNpZm5kZWYgX19jcGx1c3BsdXMNCnwgI2luY2x1ZGUgPHN0ZGxpYi5oPg0KfCAjZW5kaWYN CnwgI2Vsc2UNCnwgLyogSnVzdCB0cnkgdG8gZ2V0IGJ5IHdpdGhvdXQgZGVjbGFyaW5nIHRoZSBy b3V0aW5lcy4gIFRoaXMgd2lsbCBmYWlsDQp8ICAqIG1pc2VyYWJseSBvbiBub24tQU5TSSBzeXN0 ZW1zIGZvciB3aGljaCBzaXplb2Yoc2l6ZV90KSAhPSBzaXplb2YoaW50KQ0KfCAgKiBvciBzaXpl b2Yodm9pZCopICE9IHNpemVvZihpbnQpLg0KfCAgKi8NCnwgI2VuZGlmDQp8ICNlbmRpZg0KfCAN CnwgLyogQW1vdW50IG9mIHN0dWZmIHRvIHNsdXJwIHVwIHdpdGggZWFjaCByZWFkLiAqLw0KfCAj aWZuZGVmIFlZX1JFQURfQlVGX1NJWkUNCnwgI2RlZmluZSBZWV9SRUFEX0JVRl9TSVpFIDgxOTIN CnwgI2VuZGlmDQp8IA0KfCAvKiBDb3B5IHdoYXRldmVyIHRoZSBsYXN0IHJ1bGUgbWF0Y2hlZCB0 byB0aGUgc3RhbmRhcmQgb3V0cHV0LiAqLw0KfCANCnwgI2lmbmRlZiBFQ0hPDQp8IC8qIFRoaXMg dXNlZCB0byBiZSBhbiBmcHV0cygpLCBidXQgc2luY2UgdGhlIHN0cmluZyBtaWdodCBjb250YWlu IE5VTCdzLA0KfCAgKiB3ZSBub3cgdXNlIGZ3cml0ZSgpLg0KfCAgKi8NCnwgI2RlZmluZSBFQ0hP ICh2b2lkKSBmd3JpdGUoIHl5dGV4dCwgeXlsZW5nLCAxLCB5eW91dCApDQp8ICNlbmRpZg0KfCAN CnwgLyogR2V0cyBpbnB1dCBhbmQgc3R1ZmZzIGl0IGludG8gImJ1ZiIuICBudW1iZXIgb2YgY2hh cmFjdGVycyByZWFkLCBvciBZWV9OVUxMLA0KfCAgKiBpcyByZXR1cm5lZCBpbiAicmVzdWx0Ii4N CnwgICovDQp8ICNpZm5kZWYgWVlfSU5QVVQNCnwgI2RlZmluZSBZWV9JTlBVVChidWYscmVzdWx0 LG1heF9zaXplKSBcDQp8IAlpZiAoIHl5X2N1cnJlbnRfYnVmZmVyLT55eV9pc19pbnRlcmFjdGl2 ZSApIFwNCnwgCQl7IFwNCnwgCQlpbnQgYyA9ICcqJywgbjsgXA0KfCAJCWZvciAoIG4gPSAwOyBu IDwgbWF4X3NpemUgJiYgXA0KfCAJCQkgICAgIChjID0gZ2V0YyggeXlpbiApKSAhPSBFT0YgJiYg YyAhPSAnXG4nOyArK24gKSBcDQp8IAkJCWJ1ZltuXSA9IChjaGFyKSBjOyBcDQp8IAkJaWYgKCBj ID09ICdcbicgKSBcDQp8IAkJCWJ1ZltuKytdID0gKGNoYXIpIGM7IFwNCnwgCQlpZiAoIGMgPT0g RU9GICYmIGZlcnJvciggeXlpbiApICkgXA0KfCAJCQlZWV9GQVRBTF9FUlJPUiggImlucHV0IGlu IGZsZXggc2Nhbm5lciBmYWlsZWQiICk7IFwNCnwgCQlyZXN1bHQgPSBuOyBcDQp8IAkJfSBcDQp8 IAllbHNlIGlmICggKChyZXN1bHQgPSBmcmVhZCggYnVmLCAxLCBtYXhfc2l6ZSwgeXlpbiApKSA9 PSAwKSBcDQp8IAkJICAmJiBmZXJyb3IoIHl5aW4gKSApIFwNCnwgCQlZWV9GQVRBTF9FUlJPUigg ImlucHV0IGluIGZsZXggc2Nhbm5lciBmYWlsZWQiICk7DQp8ICNlbmRpZg0KfCANCnwgLyogTm8g c2VtaS1jb2xvbiBhZnRlciByZXR1cm47IGNvcnJlY3QgdXNhZ2UgaXMgdG8gd3JpdGUgInl5dGVy bWluYXRlKCk7IiAtDQp8ICAqIHdlIGRvbid0IHdhbnQgYW4gZXh0cmEgJzsnIGFmdGVyIHRoZSAi cmV0dXJuIiBiZWNhdXNlIHRoYXQgd2lsbCBjYXVzZQ0KfCAgKiBzb21lIGNvbXBpbGVycyB0byBj b21wbGFpbiBhYm91dCB1bnJlYWNoYWJsZSBzdGF0ZW1lbnRzLg0KfCAgKi8NCnwgI2lmbmRlZiB5 eXRlcm1pbmF0ZQ0KfCAjZGVmaW5lIHl5dGVybWluYXRlKCkgcmV0dXJuIFlZX05VTEwNCnwgI2Vu ZGlmDQp8IA0KfCAvKiBOdW1iZXIgb2YgZW50cmllcyBieSB3aGljaCBzdGFydC1jb25kaXRpb24g c3RhY2sgZ3Jvd3MuICovDQp8ICNpZm5kZWYgWVlfU1RBUlRfU1RBQ0tfSU5DUg0KfCAjZGVmaW5l IFlZX1NUQVJUX1NUQUNLX0lOQ1IgMjUNCnwgI2VuZGlmDQp8IA0KfCAvKiBSZXBvcnQgYSBmYXRh bCBlcnJvci4gKi8NCnwgI2lmbmRlZiBZWV9GQVRBTF9FUlJPUg0KfCAjZGVmaW5lIFlZX0ZBVEFM X0VSUk9SKG1zZykgeXlfZmF0YWxfZXJyb3IoIG1zZyApDQp8ICNlbmRpZg0KfCANCnwgLyogRGVm YXVsdCBkZWNsYXJhdGlvbiBvZiBnZW5lcmF0ZWQgc2Nhbm5lciAtIGEgZGVmaW5lIHNvIHRoZSB1 c2VyIGNhbg0KfCAgKiBlYXNpbHkgYWRkIHBhcmFtZXRlcnMuDQp8ICAqLw0KfCAjaWZuZGVmIFlZ X0RFQ0wNCnwgI2RlZmluZSBZWV9ERUNMIGludCB5eWxleCBZWV9QUk9UTygoIHZvaWQgKSkNCnwg I2VuZGlmDQp8IA0KfCAvKiBDb2RlIGV4ZWN1dGVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgZWFjaCBy dWxlLCBhZnRlciB5eXRleHQgYW5kIHl5bGVuZw0KfCAgKiBoYXZlIGJlZW4gc2V0IHVwLg0KfCAg Ki8NCnwgI2lmbmRlZiBZWV9VU0VSX0FDVElPTg0KfCAjZGVmaW5lIFlZX1VTRVJfQUNUSU9ODQp8 ICNlbmRpZg0KfCANCnwgLyogQ29kZSBleGVjdXRlZCBhdCB0aGUgZW5kIG9mIGVhY2ggcnVsZS4g Ki8NCnwgI2lmbmRlZiBZWV9CUkVBSw0KfCAjZGVmaW5lIFlZX0JSRUFLIGJyZWFrOw0KfCAjZW5k aWYNCnwgDQp8ICNkZWZpbmUgWVlfUlVMRV9TRVRVUCBcDQp8IAlZWV9VU0VSX0FDVElPTg0KfCAN CnwgWVlfREVDTA0KfCAJew0KfCAJcmVnaXN0ZXIgeXlfc3RhdGVfdHlwZSB5eV9jdXJyZW50X3N0 YXRlOw0KfCAJcmVnaXN0ZXIgY2hhciAqeXlfY3AsICp5eV9icDsNCnwgCXJlZ2lzdGVyIGludCB5 eV9hY3Q7DQp8IA0KfCAjbGluZSAxICJjb25mdGVzdC5sIg0KfCANCnwgI2xpbmUgNTE2ICJsZXgu eXkuYyINCnwgDQp8IAlpZiAoIHl5X2luaXQgKQ0KfCAJCXsNCnwgCQl5eV9pbml0ID0gMDsNCnwg DQp8ICNpZmRlZiBZWV9VU0VSX0lOSVQNCnwgCQlZWV9VU0VSX0lOSVQ7DQp8ICNlbmRpZg0KfCAN CnwgCQlpZiAoICEgeXlfc3RhcnQgKQ0KfCAJCQl5eV9zdGFydCA9IDE7CS8qIGZpcnN0IHN0YXJ0 IHN0YXRlICovDQp8IA0KfCAJCWlmICggISB5eWluICkNCnwgCQkJeXlpbiA9IHN0ZGluOw0KfCAN CnwgCQlpZiAoICEgeXlvdXQgKQ0KfCAJCQl5eW91dCA9IHN0ZG91dDsNCnwgDQp8IAkJaWYgKCAh IHl5X2N1cnJlbnRfYnVmZmVyICkNCnwgCQkJeXlfY3VycmVudF9idWZmZXIgPQ0KfCAJCQkJeXlf Y3JlYXRlX2J1ZmZlciggeXlpbiwgWVlfQlVGX1NJWkUgKTsNCnwgDQp8IAkJeXlfbG9hZF9idWZm ZXJfc3RhdGUoKTsNCnwgCQl9DQp8IA0KfCAJd2hpbGUgKCAxICkJCS8qIGxvb3BzIHVudGlsIGVu ZC1vZi1maWxlIGlzIHJlYWNoZWQgKi8NCnwgCQl7DQp8IAkJeXlfY3AgPSB5eV9jX2J1Zl9wOw0K fCANCnwgCQkvKiBTdXBwb3J0IG9mIHl5dGV4dC4gKi8NCnwgCQkqeXlfY3AgPSB5eV9ob2xkX2No YXI7DQp8IA0KfCAJCS8qIHl5X2JwIHBvaW50cyB0byB0aGUgcG9zaXRpb24gaW4geXlfY2hfYnVm IG9mIHRoZSBzdGFydCBvZg0KfCAJCSAqIHRoZSBjdXJyZW50IHJ1bi4NCnwgCQkgKi8NCnwgCQl5 eV9icCA9IHl5X2NwOw0KfCANCnwgCQl5eV9jdXJyZW50X3N0YXRlID0geXlfc3RhcnQ7DQp8IHl5 X21hdGNoOg0KfCAJCWRvDQp8IAkJCXsNCnwgCQkJcmVnaXN0ZXIgWVlfQ0hBUiB5eV9jID0geXlf ZWNbWVlfU0NfVE9fVUkoKnl5X2NwKV07DQp8IAkJCWlmICggeXlfYWNjZXB0W3l5X2N1cnJlbnRf c3RhdGVdICkNCnwgCQkJCXsNCnwgCQkJCXl5X2xhc3RfYWNjZXB0aW5nX3N0YXRlID0geXlfY3Vy cmVudF9zdGF0ZTsNCnwgCQkJCXl5X2xhc3RfYWNjZXB0aW5nX2Nwb3MgPSB5eV9jcDsNCnwgCQkJ CX0NCnwgCQkJd2hpbGUgKCB5eV9jaGtbeXlfYmFzZVt5eV9jdXJyZW50X3N0YXRlXSArIHl5X2Nd ICE9IHl5X2N1cnJlbnRfc3RhdGUgKQ0KfCAJCQkJew0KfCAJCQkJeXlfY3VycmVudF9zdGF0ZSA9 IChpbnQpIHl5X2RlZlt5eV9jdXJyZW50X3N0YXRlXTsNCnwgCQkJCWlmICggeXlfY3VycmVudF9z dGF0ZSA+PSA2ICkNCnwgCQkJCQl5eV9jID0geXlfbWV0YVsodW5zaWduZWQgaW50KSB5eV9jXTsN CnwgCQkJCX0NCnwgCQkJeXlfY3VycmVudF9zdGF0ZSA9IHl5X254dFt5eV9iYXNlW3l5X2N1cnJl bnRfc3RhdGVdICsgKHVuc2lnbmVkIGludCkgeXlfY107DQp8IAkJCSsreXlfY3A7DQp8IAkJCX0N CnwgCQl3aGlsZSAoIHl5X2Jhc2VbeXlfY3VycmVudF9zdGF0ZV0gIT0gMyApOw0KfCANCnwgeXlf ZmluZF9hY3Rpb246DQp8IAkJeXlfYWN0ID0geXlfYWNjZXB0W3l5X2N1cnJlbnRfc3RhdGVdOw0K fCAJCWlmICggeXlfYWN0ID09IDAgKQ0KfCAJCQl7IC8qIGhhdmUgdG8gYmFjayB1cCAqLw0KfCAJ CQl5eV9jcCA9IHl5X2xhc3RfYWNjZXB0aW5nX2Nwb3M7DQp8IAkJCXl5X2N1cnJlbnRfc3RhdGUg PSB5eV9sYXN0X2FjY2VwdGluZ19zdGF0ZTsNCnwgCQkJeXlfYWN0ID0geXlfYWNjZXB0W3l5X2N1 cnJlbnRfc3RhdGVdOw0KfCAJCQl9DQp8IA0KfCAJCVlZX0RPX0JFRk9SRV9BQ1RJT047DQp8IA0K fCANCnwgZG9fYWN0aW9uOgkvKiBUaGlzIGxhYmVsIGlzIHVzZWQgb25seSB0byBhY2Nlc3MgRU9G IGFjdGlvbnMuICovDQp8IA0KfCANCnwgCQlzd2l0Y2ggKCB5eV9hY3QgKQ0KfCAJeyAvKiBiZWdp bm5pbmcgb2YgYWN0aW9uIHN3aXRjaCAqLw0KfCAJCQljYXNlIDA6IC8qIG11c3QgYmFjayB1cCAq Lw0KfCAJCQkvKiB1bmRvIHRoZSBlZmZlY3RzIG9mIFlZX0RPX0JFRk9SRV9BQ1RJT04gKi8NCnwg CQkJKnl5X2NwID0geXlfaG9sZF9jaGFyOw0KfCAJCQl5eV9jcCA9IHl5X2xhc3RfYWNjZXB0aW5n X2Nwb3M7DQp8IAkJCXl5X2N1cnJlbnRfc3RhdGUgPSB5eV9sYXN0X2FjY2VwdGluZ19zdGF0ZTsN CnwgCQkJZ290byB5eV9maW5kX2FjdGlvbjsNCnwgDQp8IGNhc2UgMToNCnwgWVlfUlVMRV9TRVRV UA0KfCAjbGluZSAyICJjb25mdGVzdC5sIg0KfCBFQ0hPOw0KfCAJWVlfQlJFQUsNCnwgI2xpbmUg NjA0ICJsZXgueXkuYyINCnwgY2FzZSBZWV9TVEFURV9FT0YoSU5JVElBTCk6DQp8IAl5eXRlcm1p bmF0ZSgpOw0KfCANCnwgCWNhc2UgWVlfRU5EX09GX0JVRkZFUjoNCnwgCQl7DQp8IAkJLyogQW1v dW50IG9mIHRleHQgbWF0Y2hlZCBub3QgaW5jbHVkaW5nIHRoZSBFT0IgY2hhci4gKi8NCnwgCQlp bnQgeXlfYW1vdW50X29mX21hdGNoZWRfdGV4dCA9IChpbnQpICh5eV9jcCAtIHl5dGV4dF9wdHIp IC0gMTsNCnwgDQp8IAkJLyogVW5kbyB0aGUgZWZmZWN0cyBvZiBZWV9ET19CRUZPUkVfQUNUSU9O LiAqLw0KfCAJCSp5eV9jcCA9IHl5X2hvbGRfY2hhcjsNCnwgCQlZWV9SRVNUT1JFX1lZX01PUkVf T0ZGU0VUDQp8IA0KfCAJCWlmICggeXlfY3VycmVudF9idWZmZXItPnl5X2J1ZmZlcl9zdGF0dXMg PT0gWVlfQlVGRkVSX05FVyApDQp8IAkJCXsNCnwgCQkJLyogV2UncmUgc2Nhbm5pbmcgYSBuZXcg ZmlsZSBvciBpbnB1dCBzb3VyY2UuICBJdCdzDQp8IAkJCSAqIHBvc3NpYmxlIHRoYXQgdGhpcyBo YXBwZW5lZCBiZWNhdXNlIHRoZSB1c2VyDQp8IAkJCSAqIGp1c3QgcG9pbnRlZCB5eWluIGF0IGEg bmV3IHNvdXJjZSBhbmQgY2FsbGVkDQp8IAkJCSAqIHl5bGV4KCkuICBJZiBzbywgdGhlbiB3ZSBo YXZlIHRvIGFzc3VyZQ0KfCAJCQkgKiBjb25zaXN0ZW5jeSBiZXR3ZWVuIHl5X2N1cnJlbnRfYnVm ZmVyIGFuZCBvdXINCnwgCQkJICogZ2xvYmFscy4gIEhlcmUgaXMgdGhlIHJpZ2h0IHBsYWNlIHRv IGRvIHNvLCBiZWNhdXNlDQp8IAkJCSAqIHRoaXMgaXMgdGhlIGZpcnN0IGFjdGlvbiAob3RoZXIg dGhhbiBwb3NzaWJseSBhDQp8IAkJCSAqIGJhY2stdXApIHRoYXQgd2lsbCBtYXRjaCBmb3IgdGhl IG5ldyBpbnB1dCBzb3VyY2UuDQp8IAkJCSAqLw0KfCAJCQl5eV9uX2NoYXJzID0geXlfY3VycmVu dF9idWZmZXItPnl5X25fY2hhcnM7DQp8IAkJCXl5X2N1cnJlbnRfYnVmZmVyLT55eV9pbnB1dF9m aWxlID0geXlpbjsNCnwgCQkJeXlfY3VycmVudF9idWZmZXItPnl5X2J1ZmZlcl9zdGF0dXMgPSBZ WV9CVUZGRVJfTk9STUFMOw0KfCAJCQl9DQp8IA0KfCAJCS8qIE5vdGUgdGhhdCBoZXJlIHdlIHRl c3QgZm9yIHl5X2NfYnVmX3AgIjw9IiB0byB0aGUgcG9zaXRpb24NCnwgCQkgKiBvZiB0aGUgZmly c3QgRU9CIGluIHRoZSBidWZmZXIsIHNpbmNlIHl5X2NfYnVmX3Agd2lsbA0KfCAJCSAqIGFscmVh ZHkgaGF2ZSBiZWVuIGluY3JlbWVudGVkIHBhc3QgdGhlIE5VTCBjaGFyYWN0ZXINCnwgCQkgKiAo c2luY2UgYWxsIHN0YXRlcyBtYWtlIHRyYW5zaXRpb25zIG9uIEVPQiB0byB0aGUNCnwgCQkgKiBl bmQtb2YtYnVmZmVyIHN0YXRlKS4gIENvbnRyYXN0IHRoaXMgd2l0aCB0aGUgdGVzdA0KfCAJCSAq IGluIGlucHV0KCkuDQp8IAkJICovDQp8IAkJaWYgKCB5eV9jX2J1Zl9wIDw9ICZ5eV9jdXJyZW50 X2J1ZmZlci0+eXlfY2hfYnVmW3l5X25fY2hhcnNdICkNCnwgCQkJeyAvKiBUaGlzIHdhcyByZWFs bHkgYSBOVUwuICovDQp8IAkJCXl5X3N0YXRlX3R5cGUgeXlfbmV4dF9zdGF0ZTsNCnwgDQp8IAkJ CXl5X2NfYnVmX3AgPSB5eXRleHRfcHRyICsgeXlfYW1vdW50X29mX21hdGNoZWRfdGV4dDsNCnwg DQp8IAkJCXl5X2N1cnJlbnRfc3RhdGUgPSB5eV9nZXRfcHJldmlvdXNfc3RhdGUoKTsNCnwgDQp8 IAkJCS8qIE9rYXksIHdlJ3JlIG5vdyBwb3NpdGlvbmVkIHRvIG1ha2UgdGhlIE5VTA0KfCAJCQkg KiB0cmFuc2l0aW9uLiAgV2UgY291bGRuJ3QgaGF2ZQ0KfCAJCQkgKiB5eV9nZXRfcHJldmlvdXNf c3RhdGUoKSBnbyBhaGVhZCBhbmQgZG8gaXQNCnwgCQkJICogZm9yIHVzIGJlY2F1c2UgaXQgZG9l c24ndCBrbm93IGhvdyB0byBkZWFsDQp8IAkJCSAqIHdpdGggdGhlIHBvc3NpYmlsaXR5IG9mIGph bW1pbmcgKGFuZCB3ZSBkb24ndA0KfCAJCQkgKiB3YW50IHRvIGJ1aWxkIGphbW1pbmcgaW50byBp dCBiZWNhdXNlIHRoZW4gaXQNCnwgCQkJICogd2lsbCBydW4gbW9yZSBzbG93bHkpLg0KfCAJCQkg Ki8NCnwgDQp8IAkJCXl5X25leHRfc3RhdGUgPSB5eV90cnlfTlVMX3RyYW5zKCB5eV9jdXJyZW50 X3N0YXRlICk7DQp8IA0KfCAJCQl5eV9icCA9IHl5dGV4dF9wdHIgKyBZWV9NT1JFX0FESjsNCnwg DQp8IAkJCWlmICggeXlfbmV4dF9zdGF0ZSApDQp8IAkJCQl7DQp8IAkJCQkvKiBDb25zdW1lIHRo ZSBOVUwuICovDQp8IAkJCQl5eV9jcCA9ICsreXlfY19idWZfcDsNCnwgCQkJCXl5X2N1cnJlbnRf c3RhdGUgPSB5eV9uZXh0X3N0YXRlOw0KfCAJCQkJZ290byB5eV9tYXRjaDsNCnwgCQkJCX0NCnwg DQp8IAkJCWVsc2UNCnwgCQkJCXsNCnwgCQkJCXl5X2NwID0geXlfY19idWZfcDsNCnwgCQkJCWdv dG8geXlfZmluZF9hY3Rpb247DQp8IAkJCQl9DQp8IAkJCX0NCnwgDQp8IAkJZWxzZSBzd2l0Y2gg KCB5eV9nZXRfbmV4dF9idWZmZXIoKSApDQp8IAkJCXsNCnwgCQkJY2FzZSBFT0JfQUNUX0VORF9P Rl9GSUxFOg0KfCAJCQkJew0KfCAJCQkJeXlfZGlkX2J1ZmZlcl9zd2l0Y2hfb25fZW9mID0gMDsN CnwgDQp8IAkJCQlpZiAoIHl5d3JhcCgpICkNCnwgCQkJCQl7DQp8IAkJCQkJLyogTm90ZTogYmVj YXVzZSB3ZSd2ZSB0YWtlbiBjYXJlIGluDQp8IAkJCQkJICogeXlfZ2V0X25leHRfYnVmZmVyKCkg dG8gaGF2ZSBzZXQgdXANCnwgCQkJCQkgKiB5eXRleHQsIHdlIGNhbiBub3cgc2V0IHVwDQp8IAkJ CQkJICogeXlfY19idWZfcCBzbyB0aGF0IGlmIHNvbWUgdG90YWwNCnwgCQkJCQkgKiBob3NlciAo bGlrZSBmbGV4IGl0c2VsZikgd2FudHMgdG8NCnwgCQkJCQkgKiBjYWxsIHRoZSBzY2FubmVyIGFm dGVyIHdlIHJldHVybiB0aGUNCnwgCQkJCQkgKiBZWV9OVUxMLCBpdCdsbCBzdGlsbCB3b3JrIC0g YW5vdGhlcg0KfCAJCQkJCSAqIFlZX05VTEwgd2lsbCBnZXQgcmV0dXJuZWQuDQp8IAkJCQkJICov DQp8IAkJCQkJeXlfY19idWZfcCA9IHl5dGV4dF9wdHIgKyBZWV9NT1JFX0FESjsNCnwgDQp8IAkJ CQkJeXlfYWN0ID0gWVlfU1RBVEVfRU9GKFlZX1NUQVJUKTsNCnwgCQkJCQlnb3RvIGRvX2FjdGlv bjsNCnwgCQkJCQl9DQp8IA0KfCAJCQkJZWxzZQ0KfCAJCQkJCXsNCnwgCQkJCQlpZiAoICEgeXlf ZGlkX2J1ZmZlcl9zd2l0Y2hfb25fZW9mICkNCnwgCQkJCQkJWVlfTkVXX0ZJTEU7DQp8IAkJCQkJ fQ0KfCAJCQkJYnJlYWs7DQp8IAkJCQl9DQp8IA0KfCAJCQljYXNlIEVPQl9BQ1RfQ09OVElOVUVf U0NBTjoNCnwgCQkJCXl5X2NfYnVmX3AgPQ0KfCAJCQkJCXl5dGV4dF9wdHIgKyB5eV9hbW91bnRf b2ZfbWF0Y2hlZF90ZXh0Ow0KfCANCnwgCQkJCXl5X2N1cnJlbnRfc3RhdGUgPSB5eV9nZXRfcHJl dmlvdXNfc3RhdGUoKTsNCnwgDQp8IAkJCQl5eV9jcCA9IHl5X2NfYnVmX3A7DQp8IAkJCQl5eV9i cCA9IHl5dGV4dF9wdHIgKyBZWV9NT1JFX0FESjsNCnwgCQkJCWdvdG8geXlfbWF0Y2g7DQp8IA0K fCAJCQljYXNlIEVPQl9BQ1RfTEFTVF9NQVRDSDoNCnwgCQkJCXl5X2NfYnVmX3AgPQ0KfCAJCQkJ Jnl5X2N1cnJlbnRfYnVmZmVyLT55eV9jaF9idWZbeXlfbl9jaGFyc107DQp8IA0KfCAJCQkJeXlf Y3VycmVudF9zdGF0ZSA9IHl5X2dldF9wcmV2aW91c19zdGF0ZSgpOw0KfCANCnwgCQkJCXl5X2Nw ID0geXlfY19idWZfcDsNCnwgCQkJCXl5X2JwID0geXl0ZXh0X3B0ciArIFlZX01PUkVfQURKOw0K fCAJCQkJZ290byB5eV9maW5kX2FjdGlvbjsNCnwgCQkJfQ0KfCAJCWJyZWFrOw0KfCAJCX0NCnwg DQp8IAlkZWZhdWx0Og0KfCAJCVlZX0ZBVEFMX0VSUk9SKA0KfCAJCQkiZmF0YWwgZmxleCBzY2Fu bmVyIGludGVybmFsIGVycm9yLS1ubyBhY3Rpb24gZm91bmQiICk7DQp8IAl9IC8qIGVuZCBvZiBh Y3Rpb24gc3dpdGNoICovDQp8IAkJfSAvKiBlbmQgb2Ygc2Nhbm5pbmcgb25lIHRva2VuICovDQp8 IAl9IC8qIGVuZCBvZiB5eWxleCAqLw0KfCANCnwgDQp8IC8qIHl5X2dldF9uZXh0X2J1ZmZlciAt IHRyeSB0byByZWFkIGluIGEgbmV3IGJ1ZmZlcg0KfCAgKg0KfCAgKiBSZXR1cm5zIGEgY29kZSBy ZXByZXNlbnRpbmcgYW4gYWN0aW9uOg0KfCAgKglFT0JfQUNUX0xBU1RfTUFUQ0ggLQ0KfCAgKglF T0JfQUNUX0NPTlRJTlVFX1NDQU4gLSBjb250aW51ZSBzY2FubmluZyBmcm9tIGN1cnJlbnQgcG9z aXRpb24NCnwgICoJRU9CX0FDVF9FTkRfT0ZfRklMRSAtIGVuZCBvZiBmaWxlDQp8ICAqLw0KfCAN Cnwgc3RhdGljIGludCB5eV9nZXRfbmV4dF9idWZmZXIoKQ0KfCAJew0KfCAJcmVnaXN0ZXIgY2hh ciAqZGVzdCA9IHl5X2N1cnJlbnRfYnVmZmVyLT55eV9jaF9idWY7DQp8IAlyZWdpc3RlciBjaGFy ICpzb3VyY2UgPSB5eXRleHRfcHRyOw0KfCAJcmVnaXN0ZXIgaW50IG51bWJlcl90b19tb3ZlLCBp Ow0KfCAJaW50IHJldF92YWw7DQp8IA0KfCAJaWYgKCB5eV9jX2J1Zl9wID4gJnl5X2N1cnJlbnRf YnVmZmVyLT55eV9jaF9idWZbeXlfbl9jaGFycyArIDFdICkNCnwgCQlZWV9GQVRBTF9FUlJPUigN CnwgCQkiZmF0YWwgZmxleCBzY2FubmVyIGludGVybmFsIGVycm9yLS1lbmQgb2YgYnVmZmVyIG1p c3NlZCIgKTsNCnwgDQp8IAlpZiAoIHl5X2N1cnJlbnRfYnVmZmVyLT55eV9maWxsX2J1ZmZlciA9 PSAwICkNCnwgCQl7IC8qIERvbid0IHRyeSB0byBmaWxsIHRoZSBidWZmZXIsIHNvIHRoaXMgaXMg YW4gRU9GLiAqLw0KfCAJCWlmICggeXlfY19idWZfcCAtIHl5dGV4dF9wdHIgLSBZWV9NT1JFX0FE SiA9PSAxICkNCnwgCQkJew0KfCAJCQkvKiBXZSBtYXRjaGVkIGEgc2luZ2xlIGNoYXJhY3Rlciwg dGhlIEVPQiwgc28NCnwgCQkJICogdHJlYXQgdGhpcyBhcyBhIGZpbmFsIEVPRi4NCnwgCQkJICov DQp8IAkJCXJldHVybiBFT0JfQUNUX0VORF9PRl9GSUxFOw0KfCAJCQl9DQp8IA0KfCAJCWVsc2UN CnwgCQkJew0KfCAJCQkvKiBXZSBtYXRjaGVkIHNvbWUgdGV4dCBwcmlvciB0byB0aGUgRU9CLCBm aXJzdA0KfCAJCQkgKiBwcm9jZXNzIGl0Lg0KfCAJCQkgKi8NCnwgCQkJcmV0dXJuIEVPQl9BQ1Rf TEFTVF9NQVRDSDsNCnwgCQkJfQ0KfCAJCX0NCnwgDQp8IAkvKiBUcnkgdG8gcmVhZCBtb3JlIGRh dGEuICovDQp8IA0KfCAJLyogRmlyc3QgbW92ZSBsYXN0IGNoYXJzIHRvIHN0YXJ0IG9mIGJ1ZmZl ci4gKi8NCnwgCW51bWJlcl90b19tb3ZlID0gKGludCkgKHl5X2NfYnVmX3AgLSB5eXRleHRfcHRy KSAtIDE7DQp8IA0KfCAJZm9yICggaSA9IDA7IGkgPCBudW1iZXJfdG9fbW92ZTsgKytpICkNCnwg CQkqKGRlc3QrKykgPSAqKHNvdXJjZSsrKTsNCnwgDQp8IAlpZiAoIHl5X2N1cnJlbnRfYnVmZmVy LT55eV9idWZmZXJfc3RhdHVzID09IFlZX0JVRkZFUl9FT0ZfUEVORElORyApDQp8IAkJLyogZG9u J3QgZG8gdGhlIHJlYWQsIGl0J3Mgbm90IGd1YXJhbnRlZWQgdG8gcmV0dXJuIGFuIEVPRiwNCnwg CQkgKiBqdXN0IGZvcmNlIGFuIEVPRg0KfCAJCSAqLw0KfCAJCXl5X2N1cnJlbnRfYnVmZmVyLT55 eV9uX2NoYXJzID0geXlfbl9jaGFycyA9IDA7DQp8IA0KfCAJZWxzZQ0KfCAJCXsNCnwgCQlpbnQg bnVtX3RvX3JlYWQgPQ0KfCAJCQl5eV9jdXJyZW50X2J1ZmZlci0+eXlfYnVmX3NpemUgLSBudW1i ZXJfdG9fbW92ZSAtIDE7DQp8IA0KfCAJCXdoaWxlICggbnVtX3RvX3JlYWQgPD0gMCApDQp8IAkJ CXsgLyogTm90IGVub3VnaCByb29tIGluIHRoZSBidWZmZXIgLSBncm93IGl0LiAqLw0KfCAjaWZk ZWYgWVlfVVNFU19SRUpFQ1QNCnwgCQkJWVlfRkFUQUxfRVJST1IoDQp8ICJpbnB1dCBidWZmZXIg b3ZlcmZsb3csIGNhbid0IGVubGFyZ2UgYnVmZmVyIGJlY2F1c2Ugc2Nhbm5lciB1c2VzIFJFSkVD VCIgKTsNCnwgI2Vsc2UNCnwgDQp8IAkJCS8qIGp1c3QgYSBzaG9ydGVyIG5hbWUgZm9yIHRoZSBj dXJyZW50IGJ1ZmZlciAqLw0KfCAJCQlZWV9CVUZGRVJfU1RBVEUgYiA9IHl5X2N1cnJlbnRfYnVm ZmVyOw0KfCANCnwgCQkJaW50IHl5X2NfYnVmX3Bfb2Zmc2V0ID0NCnwgCQkJCShpbnQpICh5eV9j X2J1Zl9wIC0gYi0+eXlfY2hfYnVmKTsNCnwgDQp8IAkJCWlmICggYi0+eXlfaXNfb3VyX2J1ZmZl ciApDQp8IAkJCQl7DQp8IAkJCQlpbnQgbmV3X3NpemUgPSBiLT55eV9idWZfc2l6ZSAqIDI7DQp8 IA0KfCAJCQkJaWYgKCBuZXdfc2l6ZSA8PSAwICkNCnwgCQkJCQliLT55eV9idWZfc2l6ZSArPSBi LT55eV9idWZfc2l6ZSAvIDg7DQp8IAkJCQllbHNlDQp8IAkJCQkJYi0+eXlfYnVmX3NpemUgKj0g MjsNCnwgDQp8IAkJCQliLT55eV9jaF9idWYgPSAoY2hhciAqKQ0KfCAJCQkJCS8qIEluY2x1ZGUg cm9vbSBpbiBmb3IgMiBFT0IgY2hhcnMuICovDQp8IAkJCQkJeXlfZmxleF9yZWFsbG9jKCAodm9p ZCAqKSBiLT55eV9jaF9idWYsDQp8IAkJCQkJCQkgYi0+eXlfYnVmX3NpemUgKyAyICk7DQp8IAkJ CQl9DQp8IAkJCWVsc2UNCnwgCQkJCS8qIENhbid0IGdyb3cgaXQsIHdlIGRvbid0IG93biBpdC4g Ki8NCnwgCQkJCWItPnl5X2NoX2J1ZiA9IDA7DQp8IA0KfCAJCQlpZiAoICEgYi0+eXlfY2hfYnVm ICkNCnwgCQkJCVlZX0ZBVEFMX0VSUk9SKA0KfCAJCQkJImZhdGFsIGVycm9yIC0gc2Nhbm5lciBp bnB1dCBidWZmZXIgb3ZlcmZsb3ciICk7DQp8IA0KfCAJCQl5eV9jX2J1Zl9wID0gJmItPnl5X2No X2J1Zlt5eV9jX2J1Zl9wX29mZnNldF07DQp8IA0KfCAJCQludW1fdG9fcmVhZCA9IHl5X2N1cnJl bnRfYnVmZmVyLT55eV9idWZfc2l6ZSAtDQp8IAkJCQkJCW51bWJlcl90b19tb3ZlIC0gMTsNCnwg I2VuZGlmDQp8IAkJCX0NCnwgDQp8IAkJaWYgKCBudW1fdG9fcmVhZCA+IFlZX1JFQURfQlVGX1NJ WkUgKQ0KfCAJCQludW1fdG9fcmVhZCA9IFlZX1JFQURfQlVGX1NJWkU7DQp8IA0KfCAJCS8qIFJl YWQgaW4gbW9yZSBkYXRhLiAqLw0KfCAJCVlZX0lOUFVUKCAoJnl5X2N1cnJlbnRfYnVmZmVyLT55 eV9jaF9idWZbbnVtYmVyX3RvX21vdmVdKSwNCnwgCQkJeXlfbl9jaGFycywgbnVtX3RvX3JlYWQg KTsNCnwgDQp8IAkJeXlfY3VycmVudF9idWZmZXItPnl5X25fY2hhcnMgPSB5eV9uX2NoYXJzOw0K fCAJCX0NCnwgDQp8IAlpZiAoIHl5X25fY2hhcnMgPT0gMCApDQp8IAkJew0KfCAJCWlmICggbnVt YmVyX3RvX21vdmUgPT0gWVlfTU9SRV9BREogKQ0KfCAJCQl7DQp8IAkJCXJldF92YWwgPSBFT0Jf QUNUX0VORF9PRl9GSUxFOw0KfCAJCQl5eXJlc3RhcnQoIHl5aW4gKTsNCnwgCQkJfQ0KfCANCnwg CQllbHNlDQp8IAkJCXsNCnwgCQkJcmV0X3ZhbCA9IEVPQl9BQ1RfTEFTVF9NQVRDSDsNCnwgCQkJ eXlfY3VycmVudF9idWZmZXItPnl5X2J1ZmZlcl9zdGF0dXMgPQ0KfCAJCQkJWVlfQlVGRkVSX0VP Rl9QRU5ESU5HOw0KfCAJCQl9DQp8IAkJfQ0KfCANCnwgCWVsc2UNCnwgCQlyZXRfdmFsID0gRU9C X0FDVF9DT05USU5VRV9TQ0FOOw0KfCANCnwgCXl5X25fY2hhcnMgKz0gbnVtYmVyX3RvX21vdmU7 DQp8IAl5eV9jdXJyZW50X2J1ZmZlci0+eXlfY2hfYnVmW3l5X25fY2hhcnNdID0gWVlfRU5EX09G X0JVRkZFUl9DSEFSOw0KfCAJeXlfY3VycmVudF9idWZmZXItPnl5X2NoX2J1Zlt5eV9uX2NoYXJz ICsgMV0gPSBZWV9FTkRfT0ZfQlVGRkVSX0NIQVI7DQp8IA0KfCAJeXl0ZXh0X3B0ciA9ICZ5eV9j dXJyZW50X2J1ZmZlci0+eXlfY2hfYnVmWzBdOw0KfCANCnwgCXJldHVybiByZXRfdmFsOw0KfCAJ fQ0KfCANCnwgDQp8IC8qIHl5X2dldF9wcmV2aW91c19zdGF0ZSAtIGdldCB0aGUgc3RhdGUganVz dCBiZWZvcmUgdGhlIEVPQiBjaGFyIHdhcyByZWFjaGVkICovDQp8IA0KfCBzdGF0aWMgeXlfc3Rh dGVfdHlwZSB5eV9nZXRfcHJldmlvdXNfc3RhdGUoKQ0KfCAJew0KfCAJcmVnaXN0ZXIgeXlfc3Rh dGVfdHlwZSB5eV9jdXJyZW50X3N0YXRlOw0KfCAJcmVnaXN0ZXIgY2hhciAqeXlfY3A7DQp8IA0K fCAJeXlfY3VycmVudF9zdGF0ZSA9IHl5X3N0YXJ0Ow0KfCANCnwgCWZvciAoIHl5X2NwID0geXl0 ZXh0X3B0ciArIFlZX01PUkVfQURKOyB5eV9jcCA8IHl5X2NfYnVmX3A7ICsreXlfY3AgKQ0KfCAJ CXsNCnwgCQlyZWdpc3RlciBZWV9DSEFSIHl5X2MgPSAoKnl5X2NwID8geXlfZWNbWVlfU0NfVE9f VUkoKnl5X2NwKV0gOiAxKTsNCnwgCQlpZiAoIHl5X2FjY2VwdFt5eV9jdXJyZW50X3N0YXRlXSAp DQp8IAkJCXsNCnwgCQkJeXlfbGFzdF9hY2NlcHRpbmdfc3RhdGUgPSB5eV9jdXJyZW50X3N0YXRl Ow0KfCAJCQl5eV9sYXN0X2FjY2VwdGluZ19jcG9zID0geXlfY3A7DQp8IAkJCX0NCnwgCQl3aGls ZSAoIHl5X2Noa1t5eV9iYXNlW3l5X2N1cnJlbnRfc3RhdGVdICsgeXlfY10gIT0geXlfY3VycmVu dF9zdGF0ZSApDQp8IAkJCXsNCnwgCQkJeXlfY3VycmVudF9zdGF0ZSA9IChpbnQpIHl5X2RlZlt5 eV9jdXJyZW50X3N0YXRlXTsNCnwgCQkJaWYgKCB5eV9jdXJyZW50X3N0YXRlID49IDYgKQ0KfCAJ CQkJeXlfYyA9IHl5X21ldGFbKHVuc2lnbmVkIGludCkgeXlfY107DQp8IAkJCX0NCnwgCQl5eV9j dXJyZW50X3N0YXRlID0geXlfbnh0W3l5X2Jhc2VbeXlfY3VycmVudF9zdGF0ZV0gKyAodW5zaWdu ZWQgaW50KSB5eV9jXTsNCnwgCQl9DQp8IA0KfCAJcmV0dXJuIHl5X2N1cnJlbnRfc3RhdGU7DQp8 IAl9DQp8IA0KfCANCnwgLyogeXlfdHJ5X05VTF90cmFucyAtIHRyeSB0byBtYWtlIGEgdHJhbnNp dGlvbiBvbiB0aGUgTlVMIGNoYXJhY3Rlcg0KfCAgKg0KfCAgKiBzeW5vcHNpcw0KfCAgKgluZXh0 X3N0YXRlID0geXlfdHJ5X05VTF90cmFucyggY3VycmVudF9zdGF0ZSApOw0KfCAgKi8NCnwgDQp8 ICNpZmRlZiBZWV9VU0VfUFJPVE9TDQp8IHN0YXRpYyB5eV9zdGF0ZV90eXBlIHl5X3RyeV9OVUxf dHJhbnMoIHl5X3N0YXRlX3R5cGUgeXlfY3VycmVudF9zdGF0ZSApDQp8ICNlbHNlDQp8IHN0YXRp YyB5eV9zdGF0ZV90eXBlIHl5X3RyeV9OVUxfdHJhbnMoIHl5X2N1cnJlbnRfc3RhdGUgKQ0KfCB5 eV9zdGF0ZV90eXBlIHl5X2N1cnJlbnRfc3RhdGU7DQp8ICNlbmRpZg0KfCAJew0KfCAJcmVnaXN0 ZXIgaW50IHl5X2lzX2phbTsNCnwgCXJlZ2lzdGVyIGNoYXIgKnl5X2NwID0geXlfY19idWZfcDsN CnwgDQp8IAlyZWdpc3RlciBZWV9DSEFSIHl5X2MgPSAxOw0KfCAJaWYgKCB5eV9hY2NlcHRbeXlf Y3VycmVudF9zdGF0ZV0gKQ0KfCAJCXsNCnwgCQl5eV9sYXN0X2FjY2VwdGluZ19zdGF0ZSA9IHl5 X2N1cnJlbnRfc3RhdGU7DQp8IAkJeXlfbGFzdF9hY2NlcHRpbmdfY3BvcyA9IHl5X2NwOw0KfCAJ CX0NCnwgCXdoaWxlICggeXlfY2hrW3l5X2Jhc2VbeXlfY3VycmVudF9zdGF0ZV0gKyB5eV9jXSAh PSB5eV9jdXJyZW50X3N0YXRlICkNCnwgCQl7DQp8IAkJeXlfY3VycmVudF9zdGF0ZSA9IChpbnQp IHl5X2RlZlt5eV9jdXJyZW50X3N0YXRlXTsNCnwgCQlpZiAoIHl5X2N1cnJlbnRfc3RhdGUgPj0g NiApDQp8IAkJCXl5X2MgPSB5eV9tZXRhWyh1bnNpZ25lZCBpbnQpIHl5X2NdOw0KfCAJCX0NCnwg CXl5X2N1cnJlbnRfc3RhdGUgPSB5eV9ueHRbeXlfYmFzZVt5eV9jdXJyZW50X3N0YXRlXSArICh1 bnNpZ25lZCBpbnQpIHl5X2NdOw0KfCAJeXlfaXNfamFtID0gKHl5X2N1cnJlbnRfc3RhdGUgPT0g NSk7DQp8IA0KfCAJcmV0dXJuIHl5X2lzX2phbSA/IDAgOiB5eV9jdXJyZW50X3N0YXRlOw0KfCAJ fQ0KfCANCnwgDQp8ICNpZm5kZWYgWVlfTk9fVU5QVVQNCnwgI2lmZGVmIFlZX1VTRV9QUk9UT1MN Cnwgc3RhdGljIHZvaWQgeXl1bnB1dCggaW50IGMsIHJlZ2lzdGVyIGNoYXIgKnl5X2JwICkNCnwg I2Vsc2UNCnwgc3RhdGljIHZvaWQgeXl1bnB1dCggYywgeXlfYnAgKQ0KfCBpbnQgYzsNCnwgcmVn aXN0ZXIgY2hhciAqeXlfYnA7DQp8ICNlbmRpZg0KfCAJew0KfCAJcmVnaXN0ZXIgY2hhciAqeXlf Y3AgPSB5eV9jX2J1Zl9wOw0KfCANCnwgCS8qIHVuZG8gZWZmZWN0cyBvZiBzZXR0aW5nIHVwIHl5 dGV4dCAqLw0KfCAJKnl5X2NwID0geXlfaG9sZF9jaGFyOw0KfCANCnwgCWlmICggeXlfY3AgPCB5 eV9jdXJyZW50X2J1ZmZlci0+eXlfY2hfYnVmICsgMiApDQp8IAkJeyAvKiBuZWVkIHRvIHNoaWZ0 IHRoaW5ncyB1cCB0byBtYWtlIHJvb20gKi8NCnwgCQkvKiArMiBmb3IgRU9CIGNoYXJzLiAqLw0K fCAJCXJlZ2lzdGVyIGludCBudW1iZXJfdG9fbW92ZSA9IHl5X25fY2hhcnMgKyAyOw0KfCAJCXJl Z2lzdGVyIGNoYXIgKmRlc3QgPSAmeXlfY3VycmVudF9idWZmZXItPnl5X2NoX2J1ZlsNCnwgCQkJ CQl5eV9jdXJyZW50X2J1ZmZlci0+eXlfYnVmX3NpemUgKyAyXTsNCnwgCQlyZWdpc3RlciBjaGFy ICpzb3VyY2UgPQ0KfCAJCQkJJnl5X2N1cnJlbnRfYnVmZmVyLT55eV9jaF9idWZbbnVtYmVyX3Rv X21vdmVdOw0KfCANCnwgCQl3aGlsZSAoIHNvdXJjZSA+IHl5X2N1cnJlbnRfYnVmZmVyLT55eV9j aF9idWYgKQ0KfCAJCQkqLS1kZXN0ID0gKi0tc291cmNlOw0KfCANCnwgCQl5eV9jcCArPSAoaW50 KSAoZGVzdCAtIHNvdXJjZSk7DQp8IAkJeXlfYnAgKz0gKGludCkgKGRlc3QgLSBzb3VyY2UpOw0K fCAJCXl5X2N1cnJlbnRfYnVmZmVyLT55eV9uX2NoYXJzID0NCnwgCQkJeXlfbl9jaGFycyA9IHl5 X2N1cnJlbnRfYnVmZmVyLT55eV9idWZfc2l6ZTsNCnwgDQp8IAkJaWYgKCB5eV9jcCA8IHl5X2N1 cnJlbnRfYnVmZmVyLT55eV9jaF9idWYgKyAyICkNCnwgCQkJWVlfRkFUQUxfRVJST1IoICJmbGV4 IHNjYW5uZXIgcHVzaC1iYWNrIG92ZXJmbG93IiApOw0KfCAJCX0NCnwgDQp8IAkqLS15eV9jcCA9 IChjaGFyKSBjOw0KfCANCnwgDQp8IAl5eXRleHRfcHRyID0geXlfYnA7DQp8IAl5eV9ob2xkX2No YXIgPSAqeXlfY3A7DQp8IAl5eV9jX2J1Zl9wID0geXlfY3A7DQp8IAl9DQp8ICNlbmRpZgkvKiBp Zm5kZWYgWVlfTk9fVU5QVVQgKi8NCnwgDQp8IA0KfCAjaWZkZWYgX19jcGx1c3BsdXMNCnwgc3Rh dGljIGludCB5eWlucHV0KCkNCnwgI2Vsc2UNCnwgc3RhdGljIGludCBpbnB1dCgpDQp8ICNlbmRp Zg0KfCAJew0KfCAJaW50IGM7DQp8IA0KfCAJKnl5X2NfYnVmX3AgPSB5eV9ob2xkX2NoYXI7DQp8 IA0KfCAJaWYgKCAqeXlfY19idWZfcCA9PSBZWV9FTkRfT0ZfQlVGRkVSX0NIQVIgKQ0KfCAJCXsN CnwgCQkvKiB5eV9jX2J1Zl9wIG5vdyBwb2ludHMgdG8gdGhlIGNoYXJhY3RlciB3ZSB3YW50IHRv IHJldHVybi4NCnwgCQkgKiBJZiB0aGlzIG9jY3VycyAqYmVmb3JlKiB0aGUgRU9CIGNoYXJhY3Rl cnMsIHRoZW4gaXQncyBhDQp8IAkJICogdmFsaWQgTlVMOyBpZiBub3QsIHRoZW4gd2UndmUgaGl0 IHRoZSBlbmQgb2YgdGhlIGJ1ZmZlci4NCnwgCQkgKi8NCnwgCQlpZiAoIHl5X2NfYnVmX3AgPCAm eXlfY3VycmVudF9idWZmZXItPnl5X2NoX2J1Zlt5eV9uX2NoYXJzXSApDQp8IAkJCS8qIFRoaXMg d2FzIHJlYWxseSBhIE5VTC4gKi8NCnwgCQkJKnl5X2NfYnVmX3AgPSAnXDAnOw0KfCANCnwgCQll bHNlDQp8IAkJCXsgLyogbmVlZCBtb3JlIGlucHV0ICovDQp8IAkJCWludCBvZmZzZXQgPSB5eV9j X2J1Zl9wIC0geXl0ZXh0X3B0cjsNCnwgCQkJKyt5eV9jX2J1Zl9wOw0KfCANCnwgCQkJc3dpdGNo ICggeXlfZ2V0X25leHRfYnVmZmVyKCkgKQ0KfCAJCQkJew0KfCAJCQkJY2FzZSBFT0JfQUNUX0xB U1RfTUFUQ0g6DQp8IAkJCQkJLyogVGhpcyBoYXBwZW5zIGJlY2F1c2UgeXlfZ19uX2IoKQ0KfCAJ CQkJCSAqIHNlZXMgdGhhdCB3ZSd2ZSBhY2N1bXVsYXRlZCBhDQp8IAkJCQkJICogdG9rZW4gYW5k IGZsYWdzIHRoYXQgd2UgbmVlZCB0bw0KfCAJCQkJCSAqIHRyeSBtYXRjaGluZyB0aGUgdG9rZW4g YmVmb3JlDQp8IAkJCQkJICogcHJvY2VlZGluZy4gIEJ1dCBmb3IgaW5wdXQoKSwNCnwgCQkJCQkg KiB0aGVyZSdzIG5vIG1hdGNoaW5nIHRvIGNvbnNpZGVyLg0KfCAJCQkJCSAqIFNvIGNvbnZlcnQg dGhlIEVPQl9BQ1RfTEFTVF9NQVRDSA0KfCAJCQkJCSAqIHRvIEVPQl9BQ1RfRU5EX09GX0ZJTEUu DQp8IAkJCQkJICovDQp8IA0KfCAJCQkJCS8qIFJlc2V0IGJ1ZmZlciBzdGF0dXMuICovDQp8IAkJ CQkJeXlyZXN0YXJ0KCB5eWluICk7DQp8IA0KfCAJCQkJCS8qIGZhbGwgdGhyb3VnaCAqLw0KfCAN CnwgCQkJCWNhc2UgRU9CX0FDVF9FTkRfT0ZfRklMRToNCnwgCQkJCQl7DQp8IAkJCQkJaWYgKCB5 eXdyYXAoKSApDQp8IAkJCQkJCXJldHVybiBFT0Y7DQp8IA0KfCAJCQkJCWlmICggISB5eV9kaWRf YnVmZmVyX3N3aXRjaF9vbl9lb2YgKQ0KfCAJCQkJCQlZWV9ORVdfRklMRTsNCnwgI2lmZGVmIF9f Y3BsdXNwbHVzDQp8IAkJCQkJcmV0dXJuIHl5aW5wdXQoKTsNCnwgI2Vsc2UNCnwgCQkJCQlyZXR1 cm4gaW5wdXQoKTsNCnwgI2VuZGlmDQp8IAkJCQkJfQ0KfCANCnwgCQkJCWNhc2UgRU9CX0FDVF9D T05USU5VRV9TQ0FOOg0KfCAJCQkJCXl5X2NfYnVmX3AgPSB5eXRleHRfcHRyICsgb2Zmc2V0Ow0K fCAJCQkJCWJyZWFrOw0KfCAJCQkJfQ0KfCAJCQl9DQp8IAkJfQ0KfCANCnwgCWMgPSAqKHVuc2ln bmVkIGNoYXIgKikgeXlfY19idWZfcDsJLyogY2FzdCBmb3IgOC1iaXQgY2hhcidzICovDQp8IAkq eXlfY19idWZfcCA9ICdcMCc7CS8qIHByZXNlcnZlIHl5dGV4dCAqLw0KfCAJeXlfaG9sZF9jaGFy ID0gKisreXlfY19idWZfcDsNCnwgDQp8IA0KfCAJcmV0dXJuIGM7DQp8IAl9DQp8IA0KfCANCnwg I2lmZGVmIFlZX1VTRV9QUk9UT1MNCnwgdm9pZCB5eXJlc3RhcnQoIEZJTEUgKmlucHV0X2ZpbGUg KQ0KfCAjZWxzZQ0KfCB2b2lkIHl5cmVzdGFydCggaW5wdXRfZmlsZSApDQp8IEZJTEUgKmlucHV0 X2ZpbGU7DQp8ICNlbmRpZg0KfCAJew0KfCAJaWYgKCAhIHl5X2N1cnJlbnRfYnVmZmVyICkNCnwg CQl5eV9jdXJyZW50X2J1ZmZlciA9IHl5X2NyZWF0ZV9idWZmZXIoIHl5aW4sIFlZX0JVRl9TSVpF ICk7DQp8IA0KfCAJeXlfaW5pdF9idWZmZXIoIHl5X2N1cnJlbnRfYnVmZmVyLCBpbnB1dF9maWxl ICk7DQp8IAl5eV9sb2FkX2J1ZmZlcl9zdGF0ZSgpOw0KfCAJfQ0KfCANCnwgDQp8ICNpZmRlZiBZ WV9VU0VfUFJPVE9TDQp8IHZvaWQgeXlfc3dpdGNoX3RvX2J1ZmZlciggWVlfQlVGRkVSX1NUQVRF IG5ld19idWZmZXIgKQ0KfCAjZWxzZQ0KfCB2b2lkIHl5X3N3aXRjaF90b19idWZmZXIoIG5ld19i dWZmZXIgKQ0KfCBZWV9CVUZGRVJfU1RBVEUgbmV3X2J1ZmZlcjsNCnwgI2VuZGlmDQp8IAl7DQp8 IAlpZiAoIHl5X2N1cnJlbnRfYnVmZmVyID09IG5ld19idWZmZXIgKQ0KfCAJCXJldHVybjsNCnwg DQp8IAlpZiAoIHl5X2N1cnJlbnRfYnVmZmVyICkNCnwgCQl7DQp8IAkJLyogRmx1c2ggb3V0IGlu Zm9ybWF0aW9uIGZvciBvbGQgYnVmZmVyLiAqLw0KfCAJCSp5eV9jX2J1Zl9wID0geXlfaG9sZF9j aGFyOw0KfCAJCXl5X2N1cnJlbnRfYnVmZmVyLT55eV9idWZfcG9zID0geXlfY19idWZfcDsNCnwg CQl5eV9jdXJyZW50X2J1ZmZlci0+eXlfbl9jaGFycyA9IHl5X25fY2hhcnM7DQp8IAkJfQ0KfCAN CnwgCXl5X2N1cnJlbnRfYnVmZmVyID0gbmV3X2J1ZmZlcjsNCnwgCXl5X2xvYWRfYnVmZmVyX3N0 YXRlKCk7DQp8IA0KfCAJLyogV2UgZG9uJ3QgYWN0dWFsbHkga25vdyB3aGV0aGVyIHdlIGRpZCB0 aGlzIHN3aXRjaCBkdXJpbmcNCnwgCSAqIEVPRiAoeXl3cmFwKCkpIHByb2Nlc3NpbmcsIGJ1dCB0 aGUgb25seSB0aW1lIHRoaXMgZmxhZw0KfCAJICogaXMgbG9va2VkIGF0IGlzIGFmdGVyIHl5d3Jh cCgpIGlzIGNhbGxlZCwgc28gaXQncyBzYWZlDQp8IAkgKiB0byBnbyBhaGVhZCBhbmQgYWx3YXlz IHNldCBpdC4NCnwgCSAqLw0KfCAJeXlfZGlkX2J1ZmZlcl9zd2l0Y2hfb25fZW9mID0gMTsNCnwg CX0NCnwgDQp8IA0KfCAjaWZkZWYgWVlfVVNFX1BST1RPUw0KfCB2b2lkIHl5X2xvYWRfYnVmZmVy X3N0YXRlKCB2b2lkICkNCnwgI2Vsc2UNCnwgdm9pZCB5eV9sb2FkX2J1ZmZlcl9zdGF0ZSgpDQp8 ICNlbmRpZg0KfCAJew0KfCAJeXlfbl9jaGFycyA9IHl5X2N1cnJlbnRfYnVmZmVyLT55eV9uX2No YXJzOw0KfCAJeXl0ZXh0X3B0ciA9IHl5X2NfYnVmX3AgPSB5eV9jdXJyZW50X2J1ZmZlci0+eXlf YnVmX3BvczsNCnwgCXl5aW4gPSB5eV9jdXJyZW50X2J1ZmZlci0+eXlfaW5wdXRfZmlsZTsNCnwg CXl5X2hvbGRfY2hhciA9ICp5eV9jX2J1Zl9wOw0KfCAJfQ0KfCANCnwgDQp8ICNpZmRlZiBZWV9V U0VfUFJPVE9TDQp8IFlZX0JVRkZFUl9TVEFURSB5eV9jcmVhdGVfYnVmZmVyKCBGSUxFICpmaWxl LCBpbnQgc2l6ZSApDQp8ICNlbHNlDQp8IFlZX0JVRkZFUl9TVEFURSB5eV9jcmVhdGVfYnVmZmVy KCBmaWxlLCBzaXplICkNCnwgRklMRSAqZmlsZTsNCnwgaW50IHNpemU7DQp8ICNlbmRpZg0KfCAJ ew0KfCAJWVlfQlVGRkVSX1NUQVRFIGI7DQp8IA0KfCAJYiA9IChZWV9CVUZGRVJfU1RBVEUpIHl5 X2ZsZXhfYWxsb2MoIHNpemVvZiggc3RydWN0IHl5X2J1ZmZlcl9zdGF0ZSApICk7DQp8IAlpZiAo ICEgYiApDQp8IAkJWVlfRkFUQUxfRVJST1IoICJvdXQgb2YgZHluYW1pYyBtZW1vcnkgaW4geXlf Y3JlYXRlX2J1ZmZlcigpIiApOw0KfCANCnwgCWItPnl5X2J1Zl9zaXplID0gc2l6ZTsNCnwgDQp8 IAkvKiB5eV9jaF9idWYgaGFzIHRvIGJlIDIgY2hhcmFjdGVycyBsb25nZXIgdGhhbiB0aGUgc2l6 ZSBnaXZlbiBiZWNhdXNlDQp8IAkgKiB3ZSBuZWVkIHRvIHB1dCBpbiAyIGVuZC1vZi1idWZmZXIg Y2hhcmFjdGVycy4NCnwgCSAqLw0KfCAJYi0+eXlfY2hfYnVmID0gKGNoYXIgKikgeXlfZmxleF9h bGxvYyggYi0+eXlfYnVmX3NpemUgKyAyICk7DQp8IAlpZiAoICEgYi0+eXlfY2hfYnVmICkNCnwg CQlZWV9GQVRBTF9FUlJPUiggIm91dCBvZiBkeW5hbWljIG1lbW9yeSBpbiB5eV9jcmVhdGVfYnVm ZmVyKCkiICk7DQp8IA0KfCAJYi0+eXlfaXNfb3VyX2J1ZmZlciA9IDE7DQp8IA0KfCAJeXlfaW5p dF9idWZmZXIoIGIsIGZpbGUgKTsNCnwgDQp8IAlyZXR1cm4gYjsNCnwgCX0NCnwgDQp8IA0KfCAj aWZkZWYgWVlfVVNFX1BST1RPUw0KfCB2b2lkIHl5X2RlbGV0ZV9idWZmZXIoIFlZX0JVRkZFUl9T VEFURSBiICkNCnwgI2Vsc2UNCnwgdm9pZCB5eV9kZWxldGVfYnVmZmVyKCBiICkNCnwgWVlfQlVG RkVSX1NUQVRFIGI7DQp8ICNlbmRpZg0KfCAJew0KfCAJaWYgKCAhIGIgKQ0KfCAJCXJldHVybjsN CnwgDQp8IAlpZiAoIGIgPT0geXlfY3VycmVudF9idWZmZXIgKQ0KfCAJCXl5X2N1cnJlbnRfYnVm ZmVyID0gKFlZX0JVRkZFUl9TVEFURSkgMDsNCnwgDQp8IAlpZiAoIGItPnl5X2lzX291cl9idWZm ZXIgKQ0KfCAJCXl5X2ZsZXhfZnJlZSggKHZvaWQgKikgYi0+eXlfY2hfYnVmICk7DQp8IA0KfCAJ eXlfZmxleF9mcmVlKCAodm9pZCAqKSBiICk7DQp8IAl9DQp8IA0KfCANCnwgI2lmbmRlZiBZWV9B TFdBWVNfSU5URVJBQ1RJVkUNCnwgI2lmbmRlZiBZWV9ORVZFUl9JTlRFUkFDVElWRQ0KfCBleHRl cm4gaW50IGlzYXR0eSBZWV9QUk9UTygoIGludCApKTsNCnwgI2VuZGlmDQp8ICNlbmRpZg0KfCAN CnwgI2lmZGVmIFlZX1VTRV9QUk9UT1MNCnwgdm9pZCB5eV9pbml0X2J1ZmZlciggWVlfQlVGRkVS X1NUQVRFIGIsIEZJTEUgKmZpbGUgKQ0KfCAjZWxzZQ0KfCB2b2lkIHl5X2luaXRfYnVmZmVyKCBi LCBmaWxlICkNCnwgWVlfQlVGRkVSX1NUQVRFIGI7DQp8IEZJTEUgKmZpbGU7DQp8ICNlbmRpZg0K fCANCnwgDQp8IAl7DQp8IAl5eV9mbHVzaF9idWZmZXIoIGIgKTsNCnwgDQp8IAliLT55eV9pbnB1 dF9maWxlID0gZmlsZTsNCnwgCWItPnl5X2ZpbGxfYnVmZmVyID0gMTsNCnwgDQp8ICNpZiBZWV9B TFdBWVNfSU5URVJBQ1RJVkUNCnwgCWItPnl5X2lzX2ludGVyYWN0aXZlID0gMTsNCnwgI2Vsc2UN CnwgI2lmIFlZX05FVkVSX0lOVEVSQUNUSVZFDQp8IAliLT55eV9pc19pbnRlcmFjdGl2ZSA9IDA7 DQp8ICNlbHNlDQp8IAliLT55eV9pc19pbnRlcmFjdGl2ZSA9IGZpbGUgPyAoaXNhdHR5KCBmaWxl bm8oZmlsZSkgKSA+IDApIDogMDsNCnwgI2VuZGlmDQp8ICNlbmRpZg0KfCAJfQ0KfCANCnwgDQp8 ICNpZmRlZiBZWV9VU0VfUFJPVE9TDQp8IHZvaWQgeXlfZmx1c2hfYnVmZmVyKCBZWV9CVUZGRVJf U1RBVEUgYiApDQp8ICNlbHNlDQp8IHZvaWQgeXlfZmx1c2hfYnVmZmVyKCBiICkNCnwgWVlfQlVG RkVSX1NUQVRFIGI7DQp8ICNlbmRpZg0KfCANCnwgCXsNCnwgCWlmICggISBiICkNCnwgCQlyZXR1 cm47DQp8IA0KfCAJYi0+eXlfbl9jaGFycyA9IDA7DQp8IA0KfCAJLyogV2UgYWx3YXlzIG5lZWQg dHdvIGVuZC1vZi1idWZmZXIgY2hhcmFjdGVycy4gIFRoZSBmaXJzdCBjYXVzZXMNCnwgCSAqIGEg dHJhbnNpdGlvbiB0byB0aGUgZW5kLW9mLWJ1ZmZlciBzdGF0ZS4gIFRoZSBzZWNvbmQgY2F1c2Vz DQp8IAkgKiBhIGphbSBpbiB0aGF0IHN0YXRlLg0KfCAJICovDQp8IAliLT55eV9jaF9idWZbMF0g PSBZWV9FTkRfT0ZfQlVGRkVSX0NIQVI7DQp8IAliLT55eV9jaF9idWZbMV0gPSBZWV9FTkRfT0Zf QlVGRkVSX0NIQVI7DQp8IA0KfCAJYi0+eXlfYnVmX3BvcyA9ICZiLT55eV9jaF9idWZbMF07DQp8 IA0KfCAJYi0+eXlfYXRfYm9sID0gMTsNCnwgCWItPnl5X2J1ZmZlcl9zdGF0dXMgPSBZWV9CVUZG RVJfTkVXOw0KfCANCnwgCWlmICggYiA9PSB5eV9jdXJyZW50X2J1ZmZlciApDQp8IAkJeXlfbG9h ZF9idWZmZXJfc3RhdGUoKTsNCnwgCX0NCnwgDQp8IA0KfCAjaWZuZGVmIFlZX05PX1NDQU5fQlVG RkVSDQp8ICNpZmRlZiBZWV9VU0VfUFJPVE9TDQp8IFlZX0JVRkZFUl9TVEFURSB5eV9zY2FuX2J1 ZmZlciggY2hhciAqYmFzZSwgeXlfc2l6ZV90IHNpemUgKQ0KfCAjZWxzZQ0KfCBZWV9CVUZGRVJf U1RBVEUgeXlfc2Nhbl9idWZmZXIoIGJhc2UsIHNpemUgKQ0KfCBjaGFyICpiYXNlOw0KfCB5eV9z aXplX3Qgc2l6ZTsNCnwgI2VuZGlmDQp8IAl7DQp8IAlZWV9CVUZGRVJfU1RBVEUgYjsNCnwgDQp8 IAlpZiAoIHNpemUgPCAyIHx8DQp8IAkgICAgIGJhc2Vbc2l6ZS0yXSAhPSBZWV9FTkRfT0ZfQlVG RkVSX0NIQVIgfHwNCnwgCSAgICAgYmFzZVtzaXplLTFdICE9IFlZX0VORF9PRl9CVUZGRVJfQ0hB UiApDQp8IAkJLyogVGhleSBmb3Jnb3QgdG8gbGVhdmUgcm9vbSBmb3IgdGhlIEVPQidzLiAqLw0K fCAJCXJldHVybiAwOw0KfCANCnwgCWIgPSAoWVlfQlVGRkVSX1NUQVRFKSB5eV9mbGV4X2FsbG9j KCBzaXplb2YoIHN0cnVjdCB5eV9idWZmZXJfc3RhdGUgKSApOw0KfCAJaWYgKCAhIGIgKQ0KfCAJ CVlZX0ZBVEFMX0VSUk9SKCAib3V0IG9mIGR5bmFtaWMgbWVtb3J5IGluIHl5X3NjYW5fYnVmZmVy KCkiICk7DQp8IA0KfCAJYi0+eXlfYnVmX3NpemUgPSBzaXplIC0gMjsJLyogIi0gMiIgdG8gdGFr ZSBjYXJlIG9mIEVPQidzICovDQp8IAliLT55eV9idWZfcG9zID0gYi0+eXlfY2hfYnVmID0gYmFz ZTsNCnwgCWItPnl5X2lzX291cl9idWZmZXIgPSAwOw0KfCAJYi0+eXlfaW5wdXRfZmlsZSA9IDA7 DQp8IAliLT55eV9uX2NoYXJzID0gYi0+eXlfYnVmX3NpemU7DQp8IAliLT55eV9pc19pbnRlcmFj dGl2ZSA9IDA7DQp8IAliLT55eV9hdF9ib2wgPSAxOw0KfCAJYi0+eXlfZmlsbF9idWZmZXIgPSAw Ow0KfCAJYi0+eXlfYnVmZmVyX3N0YXR1cyA9IFlZX0JVRkZFUl9ORVc7DQp8IA0KfCAJeXlfc3dp dGNoX3RvX2J1ZmZlciggYiApOw0KfCANCnwgCXJldHVybiBiOw0KfCAJfQ0KfCAjZW5kaWYNCnwg DQp8IA0KfCAjaWZuZGVmIFlZX05PX1NDQU5fU1RSSU5HDQp8ICNpZmRlZiBZWV9VU0VfUFJPVE9T DQp8IFlZX0JVRkZFUl9TVEFURSB5eV9zY2FuX3N0cmluZyggeXljb25zdCBjaGFyICp5eV9zdHIg KQ0KfCAjZWxzZQ0KfCBZWV9CVUZGRVJfU1RBVEUgeXlfc2Nhbl9zdHJpbmcoIHl5X3N0ciApDQp8 IHl5Y29uc3QgY2hhciAqeXlfc3RyOw0KfCAjZW5kaWYNCnwgCXsNCnwgCWludCBsZW47DQp8IAlm b3IgKCBsZW4gPSAwOyB5eV9zdHJbbGVuXTsgKytsZW4gKQ0KfCAJCTsNCnwgDQp8IAlyZXR1cm4g eXlfc2Nhbl9ieXRlcyggeXlfc3RyLCBsZW4gKTsNCnwgCX0NCnwgI2VuZGlmDQp8IA0KfCANCnwg I2lmbmRlZiBZWV9OT19TQ0FOX0JZVEVTDQp8ICNpZmRlZiBZWV9VU0VfUFJPVE9TDQp8IFlZX0JV RkZFUl9TVEFURSB5eV9zY2FuX2J5dGVzKCB5eWNvbnN0IGNoYXIgKmJ5dGVzLCBpbnQgbGVuICkN CnwgI2Vsc2UNCnwgWVlfQlVGRkVSX1NUQVRFIHl5X3NjYW5fYnl0ZXMoIGJ5dGVzLCBsZW4gKQ0K fCB5eWNvbnN0IGNoYXIgKmJ5dGVzOw0KfCBpbnQgbGVuOw0KfCAjZW5kaWYNCnwgCXsNCnwgCVlZ X0JVRkZFUl9TVEFURSBiOw0KfCAJY2hhciAqYnVmOw0KfCAJeXlfc2l6ZV90IG47DQp8IAlpbnQg aTsNCnwgDQp8IAkvKiBHZXQgbWVtb3J5IGZvciBmdWxsIGJ1ZmZlciwgaW5jbHVkaW5nIHNwYWNl IGZvciB0cmFpbGluZyBFT0Incy4gKi8NCnwgCW4gPSBsZW4gKyAyOw0KfCAJYnVmID0gKGNoYXIg KikgeXlfZmxleF9hbGxvYyggbiApOw0KfCAJaWYgKCAhIGJ1ZiApDQp8IAkJWVlfRkFUQUxfRVJS T1IoICJvdXQgb2YgZHluYW1pYyBtZW1vcnkgaW4geXlfc2Nhbl9ieXRlcygpIiApOw0KfCANCnwg CWZvciAoIGkgPSAwOyBpIDwgbGVuOyArK2kgKQ0KfCAJCWJ1ZltpXSA9IGJ5dGVzW2ldOw0KfCAN CnwgCWJ1ZltsZW5dID0gYnVmW2xlbisxXSA9IFlZX0VORF9PRl9CVUZGRVJfQ0hBUjsNCnwgDQp8 IAliID0geXlfc2Nhbl9idWZmZXIoIGJ1ZiwgbiApOw0KfCAJaWYgKCAhIGIgKQ0KfCAJCVlZX0ZB VEFMX0VSUk9SKCAiYmFkIGJ1ZmZlciBpbiB5eV9zY2FuX2J5dGVzKCkiICk7DQp8IA0KfCAJLyog SXQncyBva2F5IHRvIGdyb3cgZXRjLiB0aGlzIGJ1ZmZlciwgYW5kIHdlIHNob3VsZCB0aHJvdyBp dA0KfCAJICogYXdheSB3aGVuIHdlJ3JlIGRvbmUuDQp8IAkgKi8NCnwgCWItPnl5X2lzX291cl9i dWZmZXIgPSAxOw0KfCANCnwgCXJldHVybiBiOw0KfCAJfQ0KfCAjZW5kaWYNCnwgDQp8IA0KfCAj aWZuZGVmIFlZX05PX1BVU0hfU1RBVEUNCnwgI2lmZGVmIFlZX1VTRV9QUk9UT1MNCnwgc3RhdGlj IHZvaWQgeXlfcHVzaF9zdGF0ZSggaW50IG5ld19zdGF0ZSApDQp8ICNlbHNlDQp8IHN0YXRpYyB2 b2lkIHl5X3B1c2hfc3RhdGUoIG5ld19zdGF0ZSApDQp8IGludCBuZXdfc3RhdGU7DQp8ICNlbmRp Zg0KfCAJew0KfCAJaWYgKCB5eV9zdGFydF9zdGFja19wdHIgPj0geXlfc3RhcnRfc3RhY2tfZGVw dGggKQ0KfCAJCXsNCnwgCQl5eV9zaXplX3QgbmV3X3NpemU7DQp8IA0KfCAJCXl5X3N0YXJ0X3N0 YWNrX2RlcHRoICs9IFlZX1NUQVJUX1NUQUNLX0lOQ1I7DQp8IAkJbmV3X3NpemUgPSB5eV9zdGFy dF9zdGFja19kZXB0aCAqIHNpemVvZiggaW50ICk7DQp8IA0KfCAJCWlmICggISB5eV9zdGFydF9z dGFjayApDQp8IAkJCXl5X3N0YXJ0X3N0YWNrID0gKGludCAqKSB5eV9mbGV4X2FsbG9jKCBuZXdf c2l6ZSApOw0KfCANCnwgCQllbHNlDQp8IAkJCXl5X3N0YXJ0X3N0YWNrID0gKGludCAqKSB5eV9m bGV4X3JlYWxsb2MoDQp8IAkJCQkJKHZvaWQgKikgeXlfc3RhcnRfc3RhY2ssIG5ld19zaXplICk7 DQp8IA0KfCAJCWlmICggISB5eV9zdGFydF9zdGFjayApDQp8IAkJCVlZX0ZBVEFMX0VSUk9SKA0K fCAJCQkib3V0IG9mIG1lbW9yeSBleHBhbmRpbmcgc3RhcnQtY29uZGl0aW9uIHN0YWNrIiApOw0K fCAJCX0NCnwgDQp8IAl5eV9zdGFydF9zdGFja1t5eV9zdGFydF9zdGFja19wdHIrK10gPSBZWV9T VEFSVDsNCnwgDQp8IAlCRUdJTihuZXdfc3RhdGUpOw0KfCAJfQ0KfCAjZW5kaWYNCnwgDQp8IA0K fCAjaWZuZGVmIFlZX05PX1BPUF9TVEFURQ0KfCBzdGF0aWMgdm9pZCB5eV9wb3Bfc3RhdGUoKQ0K fCAJew0KfCAJaWYgKCAtLXl5X3N0YXJ0X3N0YWNrX3B0ciA8IDAgKQ0KfCAJCVlZX0ZBVEFMX0VS Uk9SKCAic3RhcnQtY29uZGl0aW9uIHN0YWNrIHVuZGVyZmxvdyIgKTsNCnwgDQp8IAlCRUdJTih5 eV9zdGFydF9zdGFja1t5eV9zdGFydF9zdGFja19wdHJdKTsNCnwgCX0NCnwgI2VuZGlmDQp8IA0K fCANCnwgI2lmbmRlZiBZWV9OT19UT1BfU1RBVEUNCnwgc3RhdGljIGludCB5eV90b3Bfc3RhdGUo KQ0KfCAJew0KfCAJcmV0dXJuIHl5X3N0YXJ0X3N0YWNrW3l5X3N0YXJ0X3N0YWNrX3B0ciAtIDFd Ow0KfCAJfQ0KfCAjZW5kaWYNCnwgDQp8ICNpZm5kZWYgWVlfRVhJVF9GQUlMVVJFDQp8ICNkZWZp bmUgWVlfRVhJVF9GQUlMVVJFIDINCnwgI2VuZGlmDQp8IA0KfCAjaWZkZWYgWVlfVVNFX1BST1RP Uw0KfCBzdGF0aWMgdm9pZCB5eV9mYXRhbF9lcnJvciggeXljb25zdCBjaGFyIG1zZ1tdICkNCnwg I2Vsc2UNCnwgc3RhdGljIHZvaWQgeXlfZmF0YWxfZXJyb3IoIG1zZyApDQp8IGNoYXIgbXNnW107 DQp8ICNlbmRpZg0KfCAJew0KfCAJKHZvaWQpIGZwcmludGYoIHN0ZGVyciwgIiVzXG4iLCBtc2cg KTsNCnwgCWV4aXQoIFlZX0VYSVRfRkFJTFVSRSApOw0KfCAJfQ0KfCANCnwgDQp8IA0KfCAvKiBS ZWRlZmluZSB5eWxlc3MoKSBzbyBpdCB3b3JrcyBpbiBzZWN0aW9uIDMgY29kZS4gKi8NCnwgDQp8 ICN1bmRlZiB5eWxlc3MNCnwgI2RlZmluZSB5eWxlc3MobikgXA0KfCAJZG8gXA0KfCAJCXsgXA0K fCAJCS8qIFVuZG8gZWZmZWN0cyBvZiBzZXR0aW5nIHVwIHl5dGV4dC4gKi8gXA0KfCAJCXl5dGV4 dFt5eWxlbmddID0geXlfaG9sZF9jaGFyOyBcDQp8IAkJeXlfY19idWZfcCA9IHl5dGV4dCArIG47 IFwNCnwgCQl5eV9ob2xkX2NoYXIgPSAqeXlfY19idWZfcDsgXA0KfCAJCSp5eV9jX2J1Zl9wID0g J1wwJzsgXA0KfCAJCXl5bGVuZyA9IG47IFwNCnwgCQl9IFwNCnwgCXdoaWxlICggMCApDQp8IA0K fCANCnwgLyogSW50ZXJuYWwgdXRpbGl0eSByb3V0aW5lcy4gKi8NCnwgDQp8ICNpZm5kZWYgeXl0 ZXh0X3B0cg0KfCAjaWZkZWYgWVlfVVNFX1BST1RPUw0KfCBzdGF0aWMgdm9pZCB5eV9mbGV4X3N0 cm5jcHkoIGNoYXIgKnMxLCB5eWNvbnN0IGNoYXIgKnMyLCBpbnQgbiApDQp8ICNlbHNlDQp8IHN0 YXRpYyB2b2lkIHl5X2ZsZXhfc3RybmNweSggczEsIHMyLCBuICkNCnwgY2hhciAqczE7DQp8IHl5 Y29uc3QgY2hhciAqczI7DQp8IGludCBuOw0KfCAjZW5kaWYNCnwgCXsNCnwgCXJlZ2lzdGVyIGlu dCBpOw0KfCAJZm9yICggaSA9IDA7IGkgPCBuOyArK2kgKQ0KfCAJCXMxW2ldID0gczJbaV07DQp8 IAl9DQp8ICNlbmRpZg0KfCANCnwgI2lmZGVmIFlZX05FRURfU1RSTEVODQp8ICNpZmRlZiBZWV9V U0VfUFJPVE9TDQp8IHN0YXRpYyBpbnQgeXlfZmxleF9zdHJsZW4oIHl5Y29uc3QgY2hhciAqcyAp DQp8ICNlbHNlDQp8IHN0YXRpYyBpbnQgeXlfZmxleF9zdHJsZW4oIHMgKQ0KfCB5eWNvbnN0IGNo YXIgKnM7DQp8ICNlbmRpZg0KfCAJew0KfCAJcmVnaXN0ZXIgaW50IG47DQp8IAlmb3IgKCBuID0g MDsgc1tuXTsgKytuICkNCnwgCQk7DQp8IA0KfCAJcmV0dXJuIG47DQp8IAl9DQp8ICNlbmRpZg0K fCANCnwgDQp8ICNpZmRlZiBZWV9VU0VfUFJPVE9TDQp8IHN0YXRpYyB2b2lkICp5eV9mbGV4X2Fs bG9jKCB5eV9zaXplX3Qgc2l6ZSApDQp8ICNlbHNlDQp8IHN0YXRpYyB2b2lkICp5eV9mbGV4X2Fs bG9jKCBzaXplICkNCnwgeXlfc2l6ZV90IHNpemU7DQp8ICNlbmRpZg0KfCAJew0KfCAJcmV0dXJu ICh2b2lkICopIG1hbGxvYyggc2l6ZSApOw0KfCAJfQ0KfCANCnwgI2lmZGVmIFlZX1VTRV9QUk9U T1MNCnwgc3RhdGljIHZvaWQgKnl5X2ZsZXhfcmVhbGxvYyggdm9pZCAqcHRyLCB5eV9zaXplX3Qg c2l6ZSApDQp8ICNlbHNlDQp8IHN0YXRpYyB2b2lkICp5eV9mbGV4X3JlYWxsb2MoIHB0ciwgc2l6 ZSApDQp8IHZvaWQgKnB0cjsNCnwgeXlfc2l6ZV90IHNpemU7DQp8ICNlbmRpZg0KfCAJew0KfCAJ LyogVGhlIGNhc3QgdG8gKGNoYXIgKikgaW4gdGhlIGZvbGxvd2luZyBhY2NvbW1vZGF0ZXMgYm90 aA0KfCAJICogaW1wbGVtZW50YXRpb25zIHRoYXQgdXNlIGNoYXIqIGdlbmVyaWMgcG9pbnRlcnMs IGFuZCB0aG9zZQ0KfCAJICogdGhhdCB1c2Ugdm9pZCogZ2VuZXJpYyBwb2ludGVycy4gIEl0IHdv cmtzIHdpdGggdGhlIGxhdHRlcg0KfCAJICogYmVjYXVzZSBib3RoIEFOU0kgQyBhbmQgQysrIGFs bG93IGNhc3RsZXNzIGFzc2lnbm1lbnQgZnJvbQ0KfCAJICogYW55IHBvaW50ZXIgdHlwZSB0byB2 b2lkKiwgYW5kIGRlYWwgd2l0aCBhcmd1bWVudCBjb252ZXJzaW9ucw0KfCAJICogYXMgdGhvdWdo IGRvaW5nIGFuIGFzc2lnbm1lbnQuDQp8IAkgKi8NCnwgCXJldHVybiAodm9pZCAqKSByZWFsbG9j KCAoY2hhciAqKSBwdHIsIHNpemUgKTsNCnwgCX0NCnwgDQp8ICNpZmRlZiBZWV9VU0VfUFJPVE9T DQp8IHN0YXRpYyB2b2lkIHl5X2ZsZXhfZnJlZSggdm9pZCAqcHRyICkNCnwgI2Vsc2UNCnwgc3Rh dGljIHZvaWQgeXlfZmxleF9mcmVlKCBwdHIgKQ0KfCB2b2lkICpwdHI7DQp8ICNlbmRpZg0KfCAJ ew0KfCAJZnJlZSggcHRyICk7DQp8IAl9DQp8IA0KfCAjaWYgWVlfTUFJTg0KfCBpbnQgbWFpbigp DQp8IAl7DQp8IAl5eWxleCgpOw0KfCAJcmV0dXJuIDA7DQp8IAl9DQp8ICNlbmRpZg0KfCAjbGlu ZSAyICJjb25mdGVzdC5sIg0KfCANCnwgZXh0ZXJuIGNoYXIgKnl5dGV4dDsNCmNvbmZpZ3VyZToz MzA3MzogcmVzdWx0OiBubw0KY29uZmlndXJlOjMzMDk4OiBjaGVja2luZyBmb3IgcHBjYmUtcG93 ZXJwYy1udG8tcW54Ni1yYW5saWINCmNvbmZpZ3VyZTozMzEyNDogcmVzdWx0OiByYW5saWINCmNv bmZpZ3VyZTozMzMzMDogY3JlYXRpbmcgLi9jb25maWcuc3RhdHVzDQoNCiMjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0gIyMNCiMjIFJ1bm5pbmcgY29uZmlnLnN0YXR1cy4gIyMNCiMjIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0gIyMNCgpUaGlzIGZpbGUgd2FzIGV4dGVuZGVkIGJ5IEdOVSBNUCBjb25m aWcuc3RhdHVzIDQuMi4yLCB3aGljaCB3YXMKZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU5 LiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCgogIENPTkZJR19GSUxFUyAgICA9IAogIENP TkZJR19IRUFERVJTICA9IAogIENPTkZJR19MSU5LUyAgICA9IAogIENPTkZJR19DT01NQU5EUyA9 IAogICQgLi9jb25maWcuc3RhdHVzIAoKb24gSU5CQUdEVExBQkZPVVINCg0KY29uZmlnLnN0YXR1 czo3Nzk6IGNyZWF0aW5nIGRlbW9zL3BleHByLWNvbmZpZy5oDQpjb25maWcuc3RhdHVzOjc3OTog Y3JlYXRpbmcgZGVtb3MvY2FsYy9jYWxjLWNvbmZpZy5oDQpjb25maWcuc3RhdHVzOjc3OTogY3Jl YXRpbmcgTWFrZWZpbGUNCmNvbmZpZy5zdGF0dXM6Nzc5OiBjcmVhdGluZyBtcGJzZC9NYWtlZmls ZQ0KY29uZmlnLnN0YXR1czo3Nzk6IGNyZWF0aW5nIG1wZi9NYWtlZmlsZQ0KY29uZmlnLnN0YXR1 czo3Nzk6IGNyZWF0aW5nIG1wbi9NYWtlZmlsZQ0KY29uZmlnLnN0YXR1czo3Nzk6IGNyZWF0aW5n IG1wcS9NYWtlZmlsZQ0KY29uZmlnLnN0YXR1czo3Nzk6IGNyZWF0aW5nIG1wei9NYWtlZmlsZQ0K Y29uZmlnLnN0YXR1czo3Nzk6IGNyZWF0aW5nIHByaW50Zi9NYWtlZmlsZQ0KY29uZmlnLnN0YXR1 czo3Nzk6IGNyZWF0aW5nIHNjYW5mL01ha2VmaWxlDQpjb25maWcuc3RhdHVzOjc3OTogY3JlYXRp bmcgY3h4L01ha2VmaWxlDQpjb25maWcuc3RhdHVzOjc3OTogY3JlYXRpbmcgdGVzdHMvTWFrZWZp bGUNCmNvbmZpZy5zdGF0dXM6Nzc5OiBjcmVhdGluZyB0ZXN0cy9kZXZlbC9NYWtlZmlsZQ0KY29u ZmlnLnN0YXR1czo3Nzk6IGNyZWF0aW5nIHRlc3RzL21wYnNkL01ha2VmaWxlDQpjb25maWcuc3Rh dHVzOjc3OTogY3JlYXRpbmcgdGVzdHMvbXBmL01ha2VmaWxlDQpjb25maWcuc3RhdHVzOjc3OTog Y3JlYXRpbmcgdGVzdHMvbXBuL01ha2VmaWxlDQpjb25maWcuc3RhdHVzOjc3OTogY3JlYXRpbmcg dGVzdHMvbXBxL01ha2VmaWxlDQpjb25maWcuc3RhdHVzOjc3OTogY3JlYXRpbmcgdGVzdHMvbXB6 L01ha2VmaWxlDQpjb25maWcuc3RhdHVzOjc3OTogY3JlYXRpbmcgdGVzdHMvcmFuZC9NYWtlZmls ZQ0KY29uZmlnLnN0YXR1czo3Nzk6IGNyZWF0aW5nIHRlc3RzL21pc2MvTWFrZWZpbGUNCmNvbmZp Zy5zdGF0dXM6Nzc5OiBjcmVhdGluZyB0ZXN0cy9jeHgvTWFrZWZpbGUNCmNvbmZpZy5zdGF0dXM6 Nzc5OiBjcmVhdGluZyBkb2MvTWFrZWZpbGUNCmNvbmZpZy5zdGF0dXM6Nzc5OiBjcmVhdGluZyB0 dW5lL01ha2VmaWxlDQpjb25maWcuc3RhdHVzOjc3OTogY3JlYXRpbmcgZGVtb3MvTWFrZWZpbGUN CmNvbmZpZy5zdGF0dXM6Nzc5OiBjcmVhdGluZyBkZW1vcy9jYWxjL01ha2VmaWxlDQpjb25maWcu c3RhdHVzOjc3OTogY3JlYXRpbmcgZGVtb3MvZXhwci9NYWtlZmlsZQ0KY29uZmlnLnN0YXR1czo3 Nzk6IGNyZWF0aW5nIGdtcC5oDQpjb25maWcuc3RhdHVzOjc3OTogY3JlYXRpbmcgbXAuaA0KY29u ZmlnLnN0YXR1czo4ODM6IGNyZWF0aW5nIGNvbmZpZy5oDQpjb25maWcuc3RhdHVzOjEyNDI6IGxp bmtpbmcgLi9tcG4vZ2VuZXJpYy9hZGQuYyB0byBtcG4vYWRkLmMNCmNvbmZpZy5zdGF0dXM6MTI0 MjogbGlua2luZyAuL21wbi9nZW5lcmljL2FkZF8xLmMgdG8gbXBuL2FkZF8xLmMNCmNvbmZpZy5z dGF0dXM6MTI0MjogbGlua2luZyAuL21wbi9nZW5lcmljL2FkZF9uLmMgdG8gbXBuL2FkZF9uLmMN CmNvbmZpZy5zdGF0dXM6MTI0MjogbGlua2luZyAuL21wbi9nZW5lcmljL3N1Yi5jIHRvIG1wbi9z dWIuYw0KY29uZmlnLnN0YXR1czoxMjQyOiBsaW5raW5nIC4vbXBuL2dlbmVyaWMvc3ViXzEuYyB0 byBtcG4vc3ViXzEuYw0KY29uZmlnLnN0YXR1czoxMjQyOiBsaW5raW5nIC4vbXBuL2dlbmVyaWMv c3ViX24uYyB0byBtcG4vc3ViX24uYw0KY29uZmlnLnN0YXR1czoxMjQyOiBsaW5raW5nIC4vbXBu L2dlbmVyaWMvbXVsXzEuYyB0byBtcG4vbXVsXzEuYw0KY29uZmlnLnN0YXR1czoxMjQyOiBsaW5r aW5nIC4vbXBuL2dlbmVyaWMvYWRkbXVsXzEuYyB0byBtcG4vYWRkbXVsXzEuYw0KY29uZmlnLnN0 YXR1czoxMjQyOiBsaW5raW5nIC4vbXBuL2dlbmVyaWMvc3VibXVsXzEuYyB0byBtcG4vc3VibXVs XzEuYw0KY29uZmlnLnN0YXR1czoxMjQyOiBsaW5raW5nIC4vbXBuL2dlbmVyaWMvbHNoaWZ0LmMg dG8gbXBuL2xzaGlmdC5jDQpjb25maWcuc3RhdHVzOjEyNDI6IGxpbmtpbmcgLi9tcG4vZ2VuZXJp Yy9yc2hpZnQuYyB0byBtcG4vcnNoaWZ0LmMNCmNvbmZpZy5zdGF0dXM6MTI0MjogbGlua2luZyAu L21wbi9nZW5lcmljL2RpdmVfMS5jIHRvIG1wbi9kaXZlXzEuYw0KY29uZmlnLnN0YXR1czoxMjQy OiBsaW5raW5nIC4vbXBuL2dlbmVyaWMvZGl2ZWJ5My5jIHRvIG1wbi9kaXZlYnkzLmMNCmNvbmZp Zy5zdGF0dXM6MTI0MjogbGlua2luZyAuL21wbi9nZW5lcmljL2RpdmlzLmMgdG8gbXBuL2Rpdmlz LmMNCmNvbmZpZy5zdGF0dXM6MTI0MjogbGlua2luZyAuL21wbi9nZW5lcmljL2RpdnJlbS5jIHRv IG1wbi9kaXZyZW0uYw0KY29uZmlnLnN0YXR1czoxMjQyOiBsaW5raW5nIC4vbXBuL2dlbmVyaWMv ZGl2cmVtXzEuYyB0byBtcG4vZGl2cmVtXzEuYw0KY29uZmlnLnN0YXR1czoxMjQyOiBsaW5raW5n IC4vbXBuL2dlbmVyaWMvZGl2cmVtXzIuYyB0byBtcG4vZGl2cmVtXzIuYw0KY29uZmlnLnN0YXR1 czoxMjQyOiBsaW5raW5nIC4vbXBuL2dlbmVyaWMvZmliMl91aS5jIHRvIG1wbi9maWIyX3VpLmMN CmNvbmZpZy5zdGF0dXM6MTI0MjogbGlua2luZyAuL21wbi9nZW5lcmljL21vZF8xLmMgdG8gbXBu L21vZF8xLmMNCmNvbmZpZy5zdGF0dXM6MTI0MjogbGlua2luZyAuL21wbi9nZW5lcmljL21vZF8z NGxzdWIxLmMgdG8gbXBuL21vZF8zNGxzdWIxLmMNCmNvbmZpZy5zdGF0dXM6MTI0MjogbGlua2lu ZyAuL21wbi9nZW5lcmljL21vZGUxby5jIHRvIG1wbi9tb2RlMW8uYw0KY29uZmlnLnN0YXR1czox MjQyOiBsaW5raW5nIC4vbXBuL2dlbmVyaWMvcHJlX2RpdnJlbV8xLmMgdG8gbXBuL3ByZV9kaXZy ZW1fMS5jDQpjb25maWcuc3RhdHVzOjEyNDI6IGxpbmtpbmcgLi9tcG4vZ2VuZXJpYy9wcmVfbW9k XzEuYyB0byBtcG4vcHJlX21vZF8xLmMNCmNvbmZpZy5zdGF0dXM6MTI0MjogbGlua2luZyAuL21w bi9nZW5lcmljL2R1bXAuYyB0byBtcG4vZHVtcC5jDQpjb25maWcuc3RhdHVzOjEyNDI6IGxpbmtp bmcgLi9tcG4vZ2VuZXJpYy9tdWwuYyB0byBtcG4vbXVsLmMNCmNvbmZpZy5zdGF0dXM6MTI0Mjog bGlua2luZyAuL21wbi9nZW5lcmljL211bF9mZnQuYyB0byBtcG4vbXVsX2ZmdC5jDQpjb25maWcu c3RhdHVzOjEyNDI6IGxpbmtpbmcgLi9tcG4vZ2VuZXJpYy9tdWxfbi5jIHRvIG1wbi9tdWxfbi5j DQpjb25maWcuc3RhdHVzOjEyNDI6IGxpbmtpbmcgLi9tcG4vZ2VuZXJpYy9tdWxfYmFzZWNhc2Uu YyB0byBtcG4vbXVsX2Jhc2VjYXNlLmMNCmNvbmZpZy5zdGF0dXM6MTI0MjogbGlua2luZyAuL21w bi9nZW5lcmljL3Nxcl9iYXNlY2FzZS5jIHRvIG1wbi9zcXJfYmFzZWNhc2UuYw0KY29uZmlnLnN0 YXR1czoxMjQyOiBsaW5raW5nIC4vbXBuL2dlbmVyaWMvcmFuZG9tLmMgdG8gbXBuL3JhbmRvbS5j DQpjb25maWcuc3RhdHVzOjEyNDI6IGxpbmtpbmcgLi9tcG4vZ2VuZXJpYy9yYW5kb20yLmMgdG8g bXBuL3JhbmRvbTIuYw0KY29uZmlnLnN0YXR1czoxMjQyOiBsaW5raW5nIC4vbXBuL2dlbmVyaWMv cG93XzEuYyB0byBtcG4vcG93XzEuYw0KY29uZmlnLnN0YXR1czoxMjQyOiBsaW5raW5nIC4vbXBu L2dlbmVyaWMvcm9vdHJlbS5jIHRvIG1wbi9yb290cmVtLmMNCmNvbmZpZy5zdGF0dXM6MTI0Mjog bGlua2luZyAuL21wbi9nZW5lcmljL3NxcnRyZW0uYyB0byBtcG4vc3FydHJlbS5jDQpjb25maWcu c3RhdHVzOjEyNDI6IGxpbmtpbmcgLi9tcG4vZ2VuZXJpYy9nZXRfc3RyLmMgdG8gbXBuL2dldF9z dHIuYw0KY29uZmlnLnN0YXR1czoxMjQyOiBsaW5raW5nIC4vbXBuL2dlbmVyaWMvc2V0X3N0ci5j IHRvIG1wbi9zZXRfc3RyLmMNCmNvbmZpZy5zdGF0dXM6MTI0MjogbGlua2luZyAuL21wbi9nZW5l cmljL3NjYW4wLmMgdG8gbXBuL3NjYW4wLmMNCmNvbmZpZy5zdGF0dXM6MTI0MjogbGlua2luZyAu L21wbi9nZW5lcmljL3NjYW4xLmMgdG8gbXBuL3NjYW4xLmMNCmNvbmZpZy5zdGF0dXM6MTI0Mjog bGlua2luZyAuL21wbi9nZW5lcmljL3BvcGhhbS5jIHRvIG1wbi9wb3Bjb3VudC5jDQpjb25maWcu c3RhdHVzOjEyNDI6IGxpbmtpbmcgLi9tcG4vZ2VuZXJpYy9wb3BoYW0uYyB0byBtcG4vaGFtZGlz dC5jDQpjb25maWcuc3RhdHVzOjEyNDI6IGxpbmtpbmcgLi9tcG4vZ2VuZXJpYy9jbXAuYyB0byBt cG4vY21wLmMNCmNvbmZpZy5zdGF0dXM6MTI0MjogbGlua2luZyAuL21wbi9nZW5lcmljL3BlcmZz cXIuYyB0byBtcG4vcGVyZnNxci5jDQpjb25maWcuc3RhdHVzOjEyNDI6IGxpbmtpbmcgLi9tcG4v Z2VuZXJpYy9iZGl2bW9kLmMgdG8gbXBuL2JkaXZtb2QuYw0KY29uZmlnLnN0YXR1czoxMjQyOiBs aW5raW5nIC4vbXBuL2dlbmVyaWMvZ2NkXzEuYyB0byBtcG4vZ2NkXzEuYw0KY29uZmlnLnN0YXR1 czoxMjQyOiBsaW5raW5nIC4vbXBuL2dlbmVyaWMvZ2NkLmMgdG8gbXBuL2djZC5jDQpjb25maWcu c3RhdHVzOjEyNDI6IGxpbmtpbmcgLi9tcG4vZ2VuZXJpYy9nY2RleHQuYyB0byBtcG4vZ2NkZXh0 LmMNCmNvbmZpZy5zdGF0dXM6MTI0MjogbGlua2luZyAuL21wbi9nZW5lcmljL3RkaXZfcXIuYyB0 byBtcG4vdGRpdl9xci5jDQpjb25maWcuc3RhdHVzOjEyNDI6IGxpbmtpbmcgLi9tcG4vZ2VuZXJp Yy9kY19kaXZyZW1fbi5jIHRvIG1wbi9kY19kaXZyZW1fbi5jDQpjb25maWcuc3RhdHVzOjEyNDI6 IGxpbmtpbmcgLi9tcG4vZ2VuZXJpYy9zYl9kaXZyZW1fbW4uYyB0byBtcG4vc2JfZGl2cmVtX21u LmMNCmNvbmZpZy5zdGF0dXM6MTI0MjogbGlua2luZyAuL21wbi9nZW5lcmljL2phY2Jhc2UuYyB0 byBtcG4vamFjYmFzZS5jDQpjb25maWcuc3RhdHVzOjEyNDI6IGxpbmtpbmcgLi9tcG4vZ2VuZXJp Yy9nZXRfZC5jIHRvIG1wbi9nZXRfZC5jDQpjb25maWcuc3RhdHVzOjEyNDI6IGxpbmtpbmcgLi9t cG4vZ2VuZXJpYy9tdWxsb3dfbi5jIHRvIG1wbi9tdWxsb3dfbi5jDQpjb25maWcuc3RhdHVzOjEy NDI6IGxpbmtpbmcgLi9tcG4vZ2VuZXJpYy9tdWxsb3dfYmFzZWNhc2UuYyB0byBtcG4vbXVsbG93 X2Jhc2VjYXNlLmMNCmNvbmZpZy5zdGF0dXM6MTI0MjogbGlua2luZyAuL21wbi9nZW5lcmljL2Fk ZHN1Yl9uLmMgdG8gbXBuL2FkZHN1Yl9uLmMNCmNvbmZpZy5zdGF0dXM6MTI0MjogbGlua2luZyAu L21wbi9nZW5lcmljL2dtcC1tcGFyYW0uaCB0byBnbXAtbXBhcmFtLmgNCg0KIyMgLS0tLS0tLS0t LS0tLS0tLSAjIwojIyBDYWNoZSB2YXJpYWJsZXMuICMjCiMjIC0tLS0tLS0tLS0tLS0tLS0gIyMK DQphY19jdl9idWlsZD1wZW50aXVtNC1wYy1jeWd3aW4NCmFjX2N2X2J1aWxkX2FsaWFzPXBlbnRp dW00LXBjLWN5Z3dpbg0KYWNfY3ZfY19iaWdlbmRpYW49bm8NCmFjX2N2X2NfY29tcGlsZXJfZ251 PXllcw0KYWNfY3ZfY19pbmxpbmU9aW5saW5lDQphY19jdl9jX3N0cmluZ2l6ZT15ZXMNCmFjX2N2 X2Nfdm9sYXRpbGU9eWVzDQphY19jdl9lbnZfQUJJX3NldD0NCmFjX2N2X2Vudl9BQklfdmFsdWU9 DQphY19jdl9lbnZfQ0NfRk9SX0JVSUxEX3NldD0NCmFjX2N2X2Vudl9DQ19GT1JfQlVJTERfdmFs dWU9DQphY19jdl9lbnZfQ0Nfc2V0PQ0KYWNfY3ZfZW52X0NDX3ZhbHVlPQ0KYWNfY3ZfZW52X0NG TEFHU19zZXQ9DQphY19jdl9lbnZfQ0ZMQUdTX3ZhbHVlPQ0KYWNfY3ZfZW52X0NQUEZMQUdTX3Nl dD0NCmFjX2N2X2Vudl9DUFBGTEFHU192YWx1ZT0NCmFjX2N2X2Vudl9DUFBfRk9SX0JVSUxEX3Nl dD0NCmFjX2N2X2Vudl9DUFBfRk9SX0JVSUxEX3ZhbHVlPQ0KYWNfY3ZfZW52X0NQUF9zZXQ9DQph Y19jdl9lbnZfQ1BQX3ZhbHVlPQ0KYWNfY3ZfZW52X0NYWENQUF9zZXQ9DQphY19jdl9lbnZfQ1hY Q1BQX3ZhbHVlPQ0KYWNfY3ZfZW52X0NYWEZMQUdTX3NldD0NCmFjX2N2X2Vudl9DWFhGTEFHU192 YWx1ZT0NCmFjX2N2X2Vudl9DWFhfc2V0PQ0KYWNfY3ZfZW52X0NYWF92YWx1ZT0NCmFjX2N2X2Vu dl9MREZMQUdTX3NldD0NCmFjX2N2X2Vudl9MREZMQUdTX3ZhbHVlPQ0KYWNfY3ZfZW52X000X3Nl dD0NCmFjX2N2X2Vudl9NNF92YWx1ZT0NCmFjX2N2X2Vudl9idWlsZF9hbGlhc19zZXQ9c2V0DQph Y19jdl9lbnZfYnVpbGRfYWxpYXNfdmFsdWU9cGVudGl1bTQtcGMtY3lnd2luDQphY19jdl9lbnZf aG9zdF9hbGlhc19zZXQ9c2V0DQphY19jdl9lbnZfaG9zdF9hbGlhc192YWx1ZT1wcGNiZS1wb3dl cnBjLW50by1xbng2DQphY19jdl9lbnZfdGFyZ2V0X2FsaWFzX3NldD0NCmFjX2N2X2Vudl90YXJn ZXRfYWxpYXNfdmFsdWU9DQphY19jdl9leGVleHQ9LmV4ZQ0KYWNfY3ZfZnVuY19hbGFybT15ZXMN CmFjX2N2X2Z1bmNfYXR0cl9nZXQ9bm8NCmFjX2N2X2Z1bmNfY2xvY2s9eWVzDQphY19jdl9mdW5j X2Nsb2NrX2dldHRpbWU9eWVzDQphY19jdl9mdW5jX2NwdXRpbWU9bm8NCmFjX2N2X2Z1bmNfZ2V0 cGFnZXNpemU9eWVzDQphY19jdl9mdW5jX2dldHJ1c2FnZT15ZXMNCmFjX2N2X2Z1bmNfZ2V0c3lz aW5mbz1ubw0KYWNfY3ZfZnVuY19nZXR0aW1lb2ZkYXk9eWVzDQphY19jdl9mdW5jX2xvY2FsZWNv bnY9eWVzDQphY19jdl9mdW5jX21lbXNldD15ZXMNCmFjX2N2X2Z1bmNfbW1hcD15ZXMNCmFjX2N2 X2Z1bmNfbXByb3RlY3Q9eWVzDQphY19jdl9mdW5jX25sX2xhbmdpbmZvPXllcw0KYWNfY3ZfZnVu Y19vYnN0YWNrX3ZwcmludGY9bm8NCmFjX2N2X2Z1bmNfcG9wZW49eWVzDQphY19jdl9mdW5jX3By b2Nlc3Nvcl9pbmZvPW5vDQphY19jdl9mdW5jX3BzdGF0X2dldHByb2Nlc3Nvcj1ubw0KYWNfY3Zf ZnVuY19yYWlzZT15ZXMNCmFjX2N2X2Z1bmNfcmVhZF9yZWFsX3RpbWU9bm8NCmFjX2N2X2Z1bmNf c2lnYWN0aW9uPXllcw0KYWNfY3ZfZnVuY19zaWdhbHRzdGFjaz1ubw0KYWNfY3ZfZnVuY19zaWdz dGFjaz1ubw0KYWNfY3ZfZnVuY19zdHJjaHI9eWVzDQphY19jdl9mdW5jX3N0cmVycm9yPXllcw0K YWNfY3ZfZnVuY19zdHJubGVuPXllcw0KYWNfY3ZfZnVuY19zdHJ0b2w9eWVzDQphY19jdl9mdW5j X3N0cnRvdWw9eWVzDQphY19jdl9mdW5jX3N5c2NvbmY9eWVzDQphY19jdl9mdW5jX3N5c2N0bD1u bw0KYWNfY3ZfZnVuY19zeXNjdGxieW5hbWU9bm8NCmFjX2N2X2Z1bmNfc3lzc2dpPW5vDQphY19j dl9mdW5jX3RpbWVzPXllcw0KYWNfY3ZfZnVuY192c25wcmludGY9eWVzDQphY19jdl9oYXZlX2Rl Y2xfZmdldGM9eWVzDQphY19jdl9oYXZlX2RlY2xfZnNjYW5mPXllcw0KYWNfY3ZfaGF2ZV9kZWNs X29wdGFyZz15ZXMNCmFjX2N2X2hhdmVfZGVjbF9zeXNfZXJybGlzdD15ZXMNCmFjX2N2X2hhdmVf ZGVjbF9zeXNfbmVycj15ZXMNCmFjX2N2X2hhdmVfZGVjbF91bmdldGM9eWVzDQphY19jdl9oYXZl X2RlY2xfdmZwcmludGY9eWVzDQphY19jdl9oZWFkZXJfZGxmY25faD15ZXMNCmFjX2N2X2hlYWRl cl9mY250bF9oPXllcw0KYWNfY3ZfaGVhZGVyX2Zsb2F0X2g9eWVzDQphY19jdl9oZWFkZXJfaW50 dHlwZXNfaD15ZXMNCmFjX2N2X2hlYWRlcl9pbnZlbnRfaD1ubw0KYWNfY3ZfaGVhZGVyX2xhbmdp bmZvX2g9eWVzDQphY19jdl9oZWFkZXJfbG9jYWxlX2g9eWVzDQphY19jdl9oZWFkZXJfbWFjaGlu ZV9oYWxfc3lzaW5mb19oPW5vDQphY19jdl9oZWFkZXJfbWVtb3J5X2g9eWVzDQphY19jdl9oZWFk ZXJfbmxfdHlwZXNfaD1ubw0KYWNfY3ZfaGVhZGVyX3N0ZGM9eWVzDQphY19jdl9oZWFkZXJfc3Rk aW50X2g9eWVzDQphY19jdl9oZWFkZXJfc3RkbGliX2g9eWVzDQphY19jdl9oZWFkZXJfc3RyaW5n X2g9eWVzDQphY19jdl9oZWFkZXJfc3RyaW5nc19oPXllcw0KYWNfY3ZfaGVhZGVyX3N5c19hdHRy aWJ1dGVzX2g9bm8NCmFjX2N2X2hlYWRlcl9zeXNfaW9ncmFwaF9oPW5vDQphY19jdl9oZWFkZXJf c3lzX21tYW5faD15ZXMNCmFjX2N2X2hlYWRlcl9zeXNfcGFyYW1faD15ZXMNCmFjX2N2X2hlYWRl cl9zeXNfcHJvY2Vzc29yX2g9bm8NCmFjX2N2X2hlYWRlcl9zeXNfcHN0YXRfaD1ubw0KYWNfY3Zf aGVhZGVyX3N5c19yZXNvdXJjZV9oPXllcw0KYWNfY3ZfaGVhZGVyX3N5c19zdGF0X2g9eWVzDQph Y19jdl9oZWFkZXJfc3lzX3N5c2N0bF9oPW5vDQphY19jdl9oZWFkZXJfc3lzX3N5c2luZm9faD1u bw0KYWNfY3ZfaGVhZGVyX3N5c19zeXNzZ2lfaD1ubw0KYWNfY3ZfaGVhZGVyX3N5c19zeXN0ZW1j ZmdfaD1ubw0KYWNfY3ZfaGVhZGVyX3N5c190aW1lX2g9eWVzDQphY19jdl9oZWFkZXJfc3lzX3Rp bWVzX2g9eWVzDQphY19jdl9oZWFkZXJfc3lzX3R5cGVzX2g9eWVzDQphY19jdl9oZWFkZXJfdGlt ZT15ZXMNCmFjX2N2X2hlYWRlcl91bmlzdGRfaD15ZXMNCmFjX2N2X2hvc3Q9cHBjYmUtcG93ZXJw Yy1udG8tcW54Ng0KYWNfY3ZfaG9zdF9hbGlhcz1wcGNiZS1wb3dlcnBjLW50by1xbng2DQphY19j dl9saWJfY3Vyc2VzX3RwdXRzPW5vDQphY19jdl9saWJfZmxfeXl3cmFwPW5vDQphY19jdl9saWJf bF95eXdyYXA9bm8NCmFjX2N2X2xpYl9tX2Nvcz15ZXMNCmFjX2N2X2xpYl9uY3Vyc2VzX3RwdXRz PW5vDQphY19jdl9saWJfcmVhZGxpbmVfcmVhZGxpbmU9bm8NCmFjX2N2X21lbWJlcl9zdHJ1Y3Rf cHN0X3Byb2Nlc3Nvcl9wc3BfaXRpY2tzcGVyY2xrdGljaz1ubw0KYWNfY3Zfb2JqZXh0PW8NCmFj X2N2X3BhdGhfaW5zdGFsbD0nL3Vzci9iaW4vaW5zdGFsbCAtYycNCmFjX2N2X3Byb2dfQVI9YXIN CmFjX2N2X3Byb2dfQVdLPWdhd2sNCmFjX2N2X3Byb2dfQ0M9Z2NjDQphY19jdl9wcm9nX0NQUD0n Z2NjIC1FJw0KYWNfY3ZfcHJvZ19MRVg9ZmxleA0KYWNfY3ZfcHJvZ19SQU5MSUI9cmFubGliDQph Y19jdl9wcm9nX1NUUklQPXN0cmlwDQphY19jdl9wcm9nX1lBQ0M9J2Jpc29uIC15Jw0KYWNfY3Zf cHJvZ19hY19jdF9BUj1hcg0KYWNfY3ZfcHJvZ19hY19jdF9SQU5MSUI9cmFubGliDQphY19jdl9w cm9nX2FjX2N0X1NUUklQPXN0cmlwDQphY19jdl9wcm9nX2NjX2c9eWVzDQphY19jdl9wcm9nX2Nj X3N0ZGM9DQphY19jdl9wcm9nX2VncmVwPSdncmVwIC1FJw0KYWNfY3ZfcHJvZ19sZXhfcm9vdD1s ZXgueXkNCmFjX2N2X3Byb2dfbGV4X3l5dGV4dF9wb2ludGVyPW5vDQphY19jdl9wcm9nX21ha2Vf bWFrZV9zZXQ9eWVzDQphY19jdl9zaXplb2ZfbXBfbGltYl90PTQNCmFjX2N2X3NpemVvZl91bnNp Z25lZD00DQphY19jdl9zaXplb2ZfdW5zaWduZWRfbG9uZz00DQphY19jdl9zaXplb2ZfdW5zaWdu ZWRfc2hvcnQ9Mg0KYWNfY3ZfdHlwZV9pbnRtYXhfdD15ZXMNCmFjX2N2X3R5cGVfbG9uZ19kb3Vi bGU9eWVzDQphY19jdl90eXBlX2xvbmdfbG9uZz15ZXMNCmFjX2N2X3R5cGVfbXBfbGltYl90PXll cw0KYWNfY3ZfdHlwZV9wdHJkaWZmX3Q9eWVzDQphY19jdl90eXBlX3F1YWRfdD1ubw0KYWNfY3Zf dHlwZV9zaWduYWw9dm9pZA0KYWNfY3ZfdHlwZV9zdGFja190PW5vDQphY19jdl90eXBlX3VpbnRf bGVhc3QzMl90PXllcw0KYWNfY3ZfdHlwZV91bnNpZ25lZD15ZXMNCmFjX2N2X3R5cGVfdW5zaWdu ZWRfbG9uZz15ZXMNCmFjX2N2X3R5cGVfdW5zaWduZWRfc2hvcnQ9eWVzDQpnbXBfY3ZfY19hdHRy aWJ1dGVfY29uc3Q9eWVzDQpnbXBfY3ZfY19hdHRyaWJ1dGVfbWFsbG9jPXllcw0KZ21wX2N2X2Nf YXR0cmlidXRlX21vZGU9eWVzDQpnbXBfY3ZfY19hdHRyaWJ1dGVfbm9yZXR1cm49eWVzDQpnbXBf Y3ZfY19kb3VibGVfZm9ybWF0PSdJRUVFIGxpdHRsZSBlbmRpYW4nDQpnbXBfY3ZfY19mb3JfYnVp bGRfYW5zaT15ZXMNCmdtcF9jdl9jX3N0ZGFyZz15ZXMNCmdtcF9jdl9jaGVja19saWJtX2Zvcl9i dWlsZD0tbG0NCmdtcF9jdl9mdW5jX2FsbG9jYT15ZXMNCmdtcF9jdl9mdW5jX3NzY2FuZl93cml0 YWJsZV9pbnB1dD1ubw0KZ21wX2N2X2Z1bmNfdnNucHJpbnRmPXByb2JhYmx5DQpnbXBfY3ZfaGVh ZGVyX2FsbG9jYT15ZXMNCmdtcF9jdl9vcHRpb25fYWxsb2NhPWFsbG9jYQ0KZ21wX2N2X3Byb2df Y3BwX2Zvcl9idWlsZD0nZ2NjIC1FJw0KZ21wX2N2X3Byb2dfZXhlZXh0X2Zvcl9idWlsZD0uZXhl DQpsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD11bmtub3duDQpsdF9jdl9maWxlX21hZ2ljX2Nt ZD0nJE1BR0lDX0NNRCcNCmx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPQ0KbHRfY3ZfbGRfcmVs b2FkX2ZsYWc9LXINCmx0X2N2X29iamRpcj0ubGlicw0KbHRfY3ZfcGF0aF9MRD0vdXNyL2k2ODYt cGMtY3lnd2luL2Jpbi9sZC5leGUNCmx0X2N2X3BhdGhfTk09Jy91c3IvYmluL25tIC1CJw0KbHRf Y3ZfcGF0aF9TRUQ9L3Vzci9iaW4vc2VkDQpsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfbz15ZXMNCmx0 X2N2X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25zPW5vDQpsdF9jdl9wcm9nX2dudV9sZD15 ZXMNCmx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9DQpsdF9jdl9zeXNfZ2xvYmFsX3N5bWJv bF90b19jX25hbWVfYWRkcmVzcz0nc2VkIC1uIC1lICdcJydzL146IFwoW14gXSpcKSAkLyAge1wi XDFcIiwgKGx0X3B0cikgMH0sL3AnXCcnIC1lICdcJydzL15bQkNERUdSU1RdIFwoW14gXSpcKSBc KFteIF0qXCkkLyAgeyJcMiIsIChsdF9wdHIpIFwmXDJ9LC9wJ1wnJycNCmx0X2N2X3N5c19nbG9i YWxfc3ltYm9sX3RvX2NkZWNsPQ0KbHRfY3Zfc3lzX21heF9jbWRfbGVuPTgxOTINCmx0X2x0X2N2 X3Byb2dfY29tcGlsZXJfY19vPScieWVzIicNCmx0X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3Bp cGU9JyIiJw0KbHRfbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9JyJz ZWQgLW4gLWUgJ1wnJ3MvXjogXFwoW14gXSpcXCkgXCQvICB7XFxcIlxcMVxcXCIsIChsdF9wdHIp IDB9LC9wJ1wnJyAtZSAnXCcncy9eW0JDREVHUlNUXSBcXChbXiBdKlxcKSBcXChbXiBdKlxcKVwk LyAge1wiXFwyXCIsIChsdF9wdHIpIFxcJlxcMn0sL3AnXCcnIicNCmx0X2x0X2N2X3N5c19nbG9i YWxfc3ltYm9sX3RvX2NkZWNsPSciIicNCg0KIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKIyMgT3V0 cHV0IHZhcmlhYmxlcy4gIyMKIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKDQpBQkk9J3N0YW5kYXJk Jw0KQUNMT0NBTD0nJHtTSEVMTH0gL2N5Z2RyaXZlL2MvUU5YNjMwL2hvc3Qvd2luMzIveDg2L3Vz ci9nbXAtNC4yLjIvbWlzc2luZyAtLXJ1biBhY2xvY2FsLTEuOCcNCkFNVEFSPScke1NIRUxMfSAv Y3lnZHJpdmUvYy9RTlg2MzAvaG9zdC93aW4zMi94ODYvdXNyL2dtcC00LjIuMi9taXNzaW5nIC0t cnVuIHRhcicNCkFOU0kyS05SPScnDQpBUj0nYXInDQpBUz0nYXMnDQpBVVRPQ09ORj0nJHtTSEVM TH0gL2N5Z2RyaXZlL2MvUU5YNjMwL2hvc3Qvd2luMzIveDg2L3Vzci9nbXAtNC4yLjIvbWlzc2lu ZyAtLXJ1biBhdXRvY29uZicNCkFVVE9IRUFERVI9JyR7U0hFTEx9IC9jeWdkcml2ZS9jL1FOWDYz MC9ob3N0L3dpbjMyL3g4Ni91c3IvZ21wLTQuMi4yL21pc3NpbmcgLS1ydW4gYXV0b2hlYWRlcicN CkFVVE9NQUtFPScke1NIRUxMfSAvY3lnZHJpdmUvYy9RTlg2MzAvaG9zdC93aW4zMi94ODYvdXNy L2dtcC00LjIuMi9taXNzaW5nIC0tcnVuIGF1dG9tYWtlLTEuOCcNCkFXSz0nZ2F3aycNCkJJVFNf UEVSX01QX0xJTUI9JzMyJw0KQ0FMTElOR19DT05WRU5USU9OU19PQkpTPScnDQpDQz0nZ2NjJw0K Q0NBUz0nZ2NjIC1jJw0KQ0NfRk9SX0JVSUxEPSdnY2MnDQpDRkxBR1M9Jy1PMycNCkNQUD0nZ2Nj IC1FJw0KQ1BQRkxBR1M9JycNCkNQUF9GT1JfQlVJTEQ9J2djYyAtRScNCkNYWD0nJw0KQ1hYQ1BQ PScnDQpDWFhGTEFHUz0nJw0KQ1lHUEFUSF9XPSdjeWdwYXRoIC13Jw0KREVGTl9MT05HX0xPTkdf TElNQj0nLyogI3VuZGVmIF9MT05HX0xPTkdfTElNQiAqLycNCkRFRlM9Jy1ESEFWRV9DT05GSUdf SCcNCkRMTFRPT0w9J2RsbHRvb2wnDQpFQ0hPPSdlY2hvJw0KRUNIT19DPScnDQpFQ0hPX049Jy1u Jw0KRUNIT19UPScnDQpFR1JFUD0nZ3JlcCAtRScNCkVOQUJMRV9TVEFUSUNfRkFMU0U9JyMnDQpF TkFCTEVfU1RBVElDX1RSVUU9JycNCkVYRUVYVD0nLmV4ZScNCkVYRUVYVF9GT1JfQlVJTEQ9Jy5l eGUnDQpHTVBfTERGTEFHUz0nJw0KR01QX05BSUxfQklUUz0nMCcNCkhBVkVfQ0xPQ0tfMDE9JzEn DQpIQVZFX0NQVVRJTUVfMDE9JzAnDQpIQVZFX0dFVFJVU0FHRV8wMT0nMScNCkhBVkVfR0VUVElN RU9GREFZXzAxPScxJw0KSEFWRV9IT1NUX0NQVV9GQU1JTFlfcG93ZXI9JzAnDQpIQVZFX0hPU1Rf Q1BVX0ZBTUlMWV9wb3dlcnBjPScwJw0KSEFWRV9TSUdBQ1RJT05fMDE9JzEnDQpIQVZFX1NJR0FM VFNUQUNLXzAxPScwJw0KSEFWRV9TSUdTVEFDS18wMT0nMCcNCkhBVkVfU1RBQ0tfVF8wMT0nMCcN CkhBVkVfU1lTX1JFU09VUkNFX0hfMDE9JzEnDQpJTlNUQUxMX0RBVEE9JyR7SU5TVEFMTH0gLW0g NjQ0Jw0KSU5TVEFMTF9QUk9HUkFNPScke0lOU1RBTEx9Jw0KSU5TVEFMTF9TQ1JJUFQ9JyR7SU5T VEFMTH0nDQpJTlNUQUxMX1NUUklQX1BST0dSQU09JyR7U0hFTEx9ICQoaW5zdGFsbF9zaCkgLWMg LXMnDQpMREZMQUdTPScnDQpMRVg9J2ZsZXgnDQpMRVhMSUI9JycNCkxFWF9PVVRQVVRfUk9PVD0n bGV4Lnl5Jw0KTElCQ1VSU0VTPScnDQpMSUJHTVBYWF9MREZMQUdTPScnDQpMSUJHTVBfRExMPScw Jw0KTElCR01QX0xERkxBR1M9JycNCkxJQk09Jy1sbScNCkxJQk1fRk9SX0JVSUxEPSctbG0nDQpM SUJPQkpTPScnDQpMSUJSRUFETElORT0nJw0KTElCUz0nJw0KTElCVE9PTD0nJChTSEVMTCkgJCh0 b3BfYnVpbGRkaXIpL2xpYnRvb2wnDQpMTl9TPSdsbiAtcycNCkxUTElCT0JKUz0nJw0KTTQ9J200 LW5vdC1uZWVkZWQnDQpNQUlOVD0nIycNCk1BSU5UQUlORVJfTU9ERV9GQUxTRT0nJw0KTUFJTlRB SU5FUl9NT0RFX1RSVUU9JyMnDQpNQUtFSU5GTz0nJHtTSEVMTH0gL2N5Z2RyaXZlL2MvUU5YNjMw L2hvc3Qvd2luMzIveDg2L3Vzci9nbXAtNC4yLjIvbWlzc2luZyAtLXJ1biBtYWtlaW5mbycNCk9C SkRVTVA9J29iamR1bXAnDQpPQkpFWFQ9J28nDQpQQUNLQUdFPSdnbXAnDQpQQUNLQUdFX0JVR1JF UE9SVD0nZ21wLWJ1Z3NAc3dveC5jb20nDQpQQUNLQUdFX05BTUU9J0dOVSBNUCcNClBBQ0tBR0Vf U1RSSU5HPSdHTlUgTVAgNC4yLjInDQpQQUNLQUdFX1RBUk5BTUU9J2dtcCcNClBBQ0tBR0VfVkVS U0lPTj0nNC4yLjInDQpQQVRIX1NFUEFSQVRPUj0nOicNClJBTkxJQj0ncmFubGliJw0KU0VEPScv dXNyL2Jpbi9zZWQnDQpTRVRfTUFLRT0nJw0KU0hFTEw9Jy9iaW4vc2gnDQpTUEVFRF9DWUNMRUNP VU5URVJfT0JKPScnDQpTVFJJUD0nc3RyaXAnDQpUQUxfT0JKRUNUPSd0YWwtcmVlbnQubG8nDQpU VU5FX1NRUl9PQko9JycNClU9JycNClVfRk9SX0JVSUxEPScnDQpWRVJTSU9OPSc0LjIuMicNCldB TlRfQ1hYX0ZBTFNFPScnDQpXQU5UX0NYWF9UUlVFPScjJw0KV0FOVF9NUEJTRF9GQUxTRT0nJw0K V0FOVF9NUEJTRF9UUlVFPScjJw0KV0lUSF9SRUFETElORV8wMT0nMCcNCllBQ0M9J2Jpc29uIC15 Jw0KYWNfY3RfQVI9J2FyJw0KYWNfY3RfQVM9JycNCmFjX2N0X0NDPScnDQphY19jdF9DWFg9JycN CmFjX2N0X0RMTFRPT0w9JycNCmFjX2N0X09CSkRVTVA9JycNCmFjX2N0X1JBTkxJQj0ncmFubGli Jw0KYWNfY3RfU1RSSVA9J3N0cmlwJw0KYW1fX2xlYWRpbmdfZG90PScuJw0KYmluZGlyPScke2V4 ZWNfcHJlZml4fS9iaW4nDQpidWlsZD0ncGVudGl1bTQtcGMtY3lnd2luJw0KYnVpbGRfYWxpYXM9 J3BlbnRpdW00LXBjLWN5Z3dpbicNCmJ1aWxkX2NwdT0ncGVudGl1bTQnDQpidWlsZF9vcz0nY3ln d2luJw0KYnVpbGRfdmVuZG9yPSdwYycNCmRhdGFkaXI9JyR7cHJlZml4fS9zaGFyZScNCmV4ZWNf cHJlZml4PScke3ByZWZpeH0nDQpnbXBfc3JjbGlua3M9JyBtcG4vYWRkLmMgbXBuL2FkZF8xLmMg bXBuL2FkZF9uLmMgbXBuL3N1Yi5jIG1wbi9zdWJfMS5jIG1wbi9zdWJfbi5jIG1wbi9tdWxfMS5j IG1wbi9hZGRtdWxfMS5jIG1wbi9zdWJtdWxfMS5jIG1wbi9sc2hpZnQuYyBtcG4vcnNoaWZ0LmMg bXBuL2RpdmVfMS5jIG1wbi9kaXZlYnkzLmMgbXBuL2RpdmlzLmMgbXBuL2RpdnJlbS5jIG1wbi9k aXZyZW1fMS5jIG1wbi9kaXZyZW1fMi5jIG1wbi9maWIyX3VpLmMgbXBuL21vZF8xLmMgbXBuL21v ZF8zNGxzdWIxLmMgbXBuL21vZGUxby5jIG1wbi9wcmVfZGl2cmVtXzEuYyBtcG4vcHJlX21vZF8x LmMgbXBuL2R1bXAuYyBtcG4vbXVsLmMgbXBuL211bF9mZnQuYyBtcG4vbXVsX24uYyBtcG4vbXVs X2Jhc2VjYXNlLmMgbXBuL3Nxcl9iYXNlY2FzZS5jIG1wbi9yYW5kb20uYyBtcG4vcmFuZG9tMi5j IG1wbi9wb3dfMS5jIG1wbi9yb290cmVtLmMgbXBuL3NxcnRyZW0uYyBtcG4vZ2V0X3N0ci5jIG1w bi9zZXRfc3RyLmMgbXBuL3NjYW4wLmMgbXBuL3NjYW4xLmMgbXBuL3BvcGNvdW50LmMgbXBuL2hh bWRpc3QuYyBtcG4vY21wLmMgbXBuL3BlcmZzcXIuYyBtcG4vYmRpdm1vZC5jIG1wbi9nY2RfMS5j IG1wbi9nY2QuYyBtcG4vZ2NkZXh0LmMgbXBuL3RkaXZfcXIuYyBtcG4vZGNfZGl2cmVtX24uYyBt cG4vc2JfZGl2cmVtX21uLmMgbXBuL2phY2Jhc2UuYyBtcG4vZ2V0X2QuYyBtcG4vbXVsbG93X24u YyBtcG4vbXVsbG93X2Jhc2VjYXNlLmMgbXBuL2FkZHN1Yl9uLmMgZ21wLW1wYXJhbS5oJw0KaG9z dD0ncHBjYmUtcG93ZXJwYy1udG8tcW54NicNCmhvc3RfYWxpYXM9J3BwY2JlLXBvd2VycGMtbnRv LXFueDYnDQpob3N0X2NwdT0ncHBjYmUnDQpob3N0X29zPSdudG8tcW54NicNCmhvc3RfdmVuZG9y PSdwb3dlcnBjJw0KaW5jbHVkZWRpcj0nJHtwcmVmaXh9L2luY2x1ZGUnDQppbmZvZGlyPScke3By ZWZpeH0vaW5mbycNCmluc3RhbGxfc2g9Jy9jeWdkcml2ZS9jL1FOWDYzMC9ob3N0L3dpbjMyL3g4 Ni91c3IvZ21wLTQuMi4yL2luc3RhbGwtc2gnDQpsaWJkaXI9JyR7ZXhlY19wcmVmaXh9L2xpYicN CmxpYmV4ZWNkaXI9JyR7ZXhlY19wcmVmaXh9L2xpYmV4ZWMnDQpsb2NhbHN0YXRlZGlyPScke3By ZWZpeH0vdmFyJw0KbWFuZGlyPScke3ByZWZpeH0vbWFuJw0KbWtkaXJfcD0nbWtkaXIgLXAgLS0g LicNCm1wbl9vYmplY3RzPScgYWRkJFUubG8gYWRkXzEkVS5sbyBhZGRfbiRVLmxvIHN1YiRVLmxv IHN1Yl8xJFUubG8gc3ViX24kVS5sbyBtdWxfMSRVLmxvIGFkZG11bF8xJFUubG8gc3VibXVsXzEk VS5sbyBsc2hpZnQkVS5sbyByc2hpZnQkVS5sbyBkaXZlXzEkVS5sbyBkaXZlYnkzJFUubG8gZGl2 aXMkVS5sbyBkaXZyZW0kVS5sbyBkaXZyZW1fMSRVLmxvIGRpdnJlbV8yJFUubG8gZmliMl91aSRV LmxvIG1vZF8xJFUubG8gbW9kXzM0bHN1YjEkVS5sbyBtb2RlMW8kVS5sbyBwcmVfZGl2cmVtXzEk VS5sbyBwcmVfbW9kXzEkVS5sbyBkdW1wJFUubG8gbXVsJFUubG8gbXVsX2ZmdCRVLmxvIG11bF9u JFUubG8gbXVsX2Jhc2VjYXNlJFUubG8gc3FyX2Jhc2VjYXNlJFUubG8gcmFuZG9tJFUubG8gcmFu ZG9tMiRVLmxvIHBvd18xJFUubG8gcm9vdHJlbSRVLmxvIHNxcnRyZW0kVS5sbyBnZXRfc3RyJFUu bG8gc2V0X3N0ciRVLmxvIHNjYW4wJFUubG8gc2NhbjEkVS5sbyBwb3Bjb3VudCRVLmxvIGhhbWRp c3QkVS5sbyBjbXAkVS5sbyBwZXJmc3FyJFUubG8gYmRpdm1vZCRVLmxvIGdjZF8xJFUubG8gZ2Nk JFUubG8gZ2NkZXh0JFUubG8gdGRpdl9xciRVLmxvIGRjX2RpdnJlbV9uJFUubG8gc2JfZGl2cmVt X21uJFUubG8gamFjYmFzZSRVLmxvIGdldF9kJFUubG8gbXVsbG93X24kVS5sbyBtdWxsb3dfYmFz ZWNhc2UkVS5sbyBhZGRzdWJfbiRVLmxvJw0KbXBuX29ianNfaW5fbGliZ21wPScgbXBuL2FkZCRV LmxvIG1wbi9hZGRfMSRVLmxvIG1wbi9hZGRfbiRVLmxvIG1wbi9zdWIkVS5sbyBtcG4vc3ViXzEk VS5sbyBtcG4vc3ViX24kVS5sbyBtcG4vbXVsXzEkVS5sbyBtcG4vYWRkbXVsXzEkVS5sbyBtcG4v c3VibXVsXzEkVS5sbyBtcG4vbHNoaWZ0JFUubG8gbXBuL3JzaGlmdCRVLmxvIG1wbi9kaXZlXzEk VS5sbyBtcG4vZGl2ZWJ5MyRVLmxvIG1wbi9kaXZpcyRVLmxvIG1wbi9kaXZyZW0kVS5sbyBtcG4v ZGl2cmVtXzEkVS5sbyBtcG4vZGl2cmVtXzIkVS5sbyBtcG4vZmliMl91aSRVLmxvIG1wbi9tb2Rf MSRVLmxvIG1wbi9tb2RfMzRsc3ViMSRVLmxvIG1wbi9tb2RlMW8kVS5sbyBtcG4vcHJlX2RpdnJl bV8xJFUubG8gbXBuL3ByZV9tb2RfMSRVLmxvIG1wbi9kdW1wJFUubG8gbXBuL211bCRVLmxvIG1w bi9tdWxfZmZ0JFUubG8gbXBuL211bF9uJFUubG8gbXBuL211bF9iYXNlY2FzZSRVLmxvIG1wbi9z cXJfYmFzZWNhc2UkVS5sbyBtcG4vcmFuZG9tJFUubG8gbXBuL3JhbmRvbTIkVS5sbyBtcG4vcG93 XzEkVS5sbyBtcG4vcm9vdHJlbSRVLmxvIG1wbi9zcXJ0cmVtJFUubG8gbXBuL2dldF9zdHIkVS5s byBtcG4vc2V0X3N0ciRVLmxvIG1wbi9zY2FuMCRVLmxvIG1wbi9zY2FuMSRVLmxvIG1wbi9wb3Bj b3VudCRVLmxvIG1wbi9oYW1kaXN0JFUubG8gbXBuL2NtcCRVLmxvIG1wbi9wZXJmc3FyJFUubG8g bXBuL2JkaXZtb2QkVS5sbyBtcG4vZ2NkXzEkVS5sbyBtcG4vZ2NkJFUubG8gbXBuL2djZGV4dCRV LmxvIG1wbi90ZGl2X3FyJFUubG8gbXBuL2RjX2RpdnJlbV9uJFUubG8gbXBuL3NiX2RpdnJlbV9t biRVLmxvIG1wbi9qYWNiYXNlJFUubG8gbXBuL2dldF9kJFUubG8gbXBuL211bGxvd19uJFUubG8g bXBuL211bGxvd19iYXNlY2FzZSRVLmxvIG1wbi9hZGRzdWJfbiRVLmxvJw0KbXBuX29ianNfaW5f bGlibXA9JyBtcG4vYWRkJFUubG8gbXBuL2FkZF8xJFUubG8gbXBuL2FkZF9uJFUubG8gbXBuL3N1 YiRVLmxvIG1wbi9zdWJfMSRVLmxvIG1wbi9zdWJfbiRVLmxvIG1wbi9tdWxfMSRVLmxvIG1wbi9h ZGRtdWxfMSRVLmxvIG1wbi9zdWJtdWxfMSRVLmxvIG1wbi9sc2hpZnQkVS5sbyBtcG4vcnNoaWZ0 JFUubG8gbXBuL2RpdmVfMSRVLmxvIG1wbi9kaXZlYnkzJFUubG8gbXBuL2RpdmlzJFUubG8gbXBu L2RpdnJlbSRVLmxvIG1wbi9kaXZyZW1fMSRVLmxvIG1wbi9kaXZyZW1fMiRVLmxvIG1wbi9maWIy X3VpJFUubG8gbXBuL21vZF8xJFUubG8gbXBuL21vZF8zNGxzdWIxJFUubG8gbXBuL21vZGUxbyRV LmxvIG1wbi9wcmVfZGl2cmVtXzEkVS5sbyBtcG4vcHJlX21vZF8xJFUubG8gbXBuL2R1bXAkVS5s byBtcG4vbXVsJFUubG8gbXBuL211bF9mZnQkVS5sbyBtcG4vbXVsX24kVS5sbyBtcG4vbXVsX2Jh c2VjYXNlJFUubG8gbXBuL3Nxcl9iYXNlY2FzZSRVLmxvIG1wbi9wb3dfMSRVLmxvIG1wbi9yb290 cmVtJFUubG8gbXBuL3NxcnRyZW0kVS5sbyBtcG4vZ2V0X3N0ciRVLmxvIG1wbi9zZXRfc3RyJFUu bG8gbXBuL3NjYW4wJFUubG8gbXBuL3NjYW4xJFUubG8gbXBuL3BvcGNvdW50JFUubG8gbXBuL2hh bWRpc3QkVS5sbyBtcG4vY21wJFUubG8gbXBuL3BlcmZzcXIkVS5sbyBtcG4vYmRpdm1vZCRVLmxv IG1wbi9nY2RfMSRVLmxvIG1wbi9nY2QkVS5sbyBtcG4vZ2NkZXh0JFUubG8gbXBuL3RkaXZfcXIk VS5sbyBtcG4vZGNfZGl2cmVtX24kVS5sbyBtcG4vc2JfZGl2cmVtX21uJFUubG8gbXBuL2phY2Jh c2UkVS5sbyBtcG4vZ2V0X2QkVS5sbyBtcG4vbXVsbG93X24kVS5sbyBtcG4vbXVsbG93X2Jhc2Vj YXNlJFUubG8gbXBuL2FkZHN1Yl9uJFUubG8nDQpvbGRpbmNsdWRlZGlyPScvdXNyL2luY2x1ZGUn DQpwcmVmaXg9Jy91c3IvbG9jYWwnDQpwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPSdzLHgseCwnDQpz YmluZGlyPScke2V4ZWNfcHJlZml4fS9zYmluJw0Kc2hhcmVkc3RhdGVkaXI9JyR7cHJlZml4fS9j b20nDQpzeXNjb25mZGlyPScke3ByZWZpeH0vZXRjJw0KdGFyZ2V0X2FsaWFzPScnDQoNCiMjIC0t LS0tLS0tLS0tICMjCiMjIGNvbmZkZWZzLmguICMjCiMjIC0tLS0tLS0tLS0tICMjCg0KI2RlZmlu ZSBHTVBfTVBBUkFNX0hfU1VHR0VTVCAiLi9tcG4vZ2VuZXJpYy9nbXAtbXBhcmFtLmgiDQojZGVm aW5lIEhBVkVfQUxBUk0gMQ0KI2RlZmluZSBIQVZFX0FMTE9DQSAxDQojZGVmaW5lIEhBVkVfQUxM T0NBX0ggMQ0KI2RlZmluZSBIQVZFX0FUVFJJQlVURV9DT05TVCAxDQojZGVmaW5lIEhBVkVfQVRU UklCVVRFX01BTExPQyAxDQojZGVmaW5lIEhBVkVfQVRUUklCVVRFX01PREUgMQ0KI2RlZmluZSBI QVZFX0FUVFJJQlVURV9OT1JFVFVSTiAxDQojZGVmaW5lIEhBVkVfQ0xPQ0sgMQ0KI2RlZmluZSBI QVZFX0NMT0NLX0dFVFRJTUUgMQ0KI2RlZmluZSBIQVZFX0RFQ0xfRkdFVEMgMQ0KI2RlZmluZSBI QVZFX0RFQ0xfRlNDQU5GIDENCiNkZWZpbmUgSEFWRV9ERUNMX09QVEFSRyAxDQojZGVmaW5lIEhB VkVfREVDTF9TWVNfRVJSTElTVCAxDQojZGVmaW5lIEhBVkVfREVDTF9TWVNfTkVSUiAxDQojZGVm aW5lIEhBVkVfREVDTF9VTkdFVEMgMQ0KI2RlZmluZSBIQVZFX0RFQ0xfVkZQUklOVEYgMQ0KI2Rl ZmluZSBIQVZFX0RMRkNOX0ggMQ0KI2RlZmluZSBIQVZFX0RPVUJMRV9JRUVFX0xJVFRMRV9FTkRJ QU4gMQ0KI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQ0KI2RlZmluZSBIQVZFX0ZMT0FUX0ggMQ0KI2Rl ZmluZSBIQVZFX0dFVFBBR0VTSVpFIDENCiNkZWZpbmUgSEFWRV9HRVRSVVNBR0UgMQ0KI2RlZmlu ZSBIQVZFX0dFVFRJTUVPRkRBWSAxDQojZGVmaW5lIEhBVkVfSE9TVF9DUFVfcHBjYmUgMQ0KI2Rl ZmluZSBIQVZFX0lOVE1BWF9UIDENCiNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDENCiNkZWZpbmUg SEFWRV9MQU5HSU5GT19IIDENCiNkZWZpbmUgSEFWRV9MSU1CX0xJVFRMRV9FTkRJQU4gMQ0KI2Rl ZmluZSBIQVZFX0xPQ0FMRUNPTlYgMQ0KI2RlZmluZSBIQVZFX0xPQ0FMRV9IIDENCiNkZWZpbmUg SEFWRV9MT05HX0RPVUJMRSAxDQojZGVmaW5lIEhBVkVfTE9OR19MT05HIDENCiNkZWZpbmUgSEFW RV9NRU1PUllfSCAxDQojZGVmaW5lIEhBVkVfTUVNU0VUIDENCiNkZWZpbmUgSEFWRV9NTUFQIDEN CiNkZWZpbmUgSEFWRV9NUFJPVEVDVCAxDQojZGVmaW5lIEhBVkVfTkxfTEFOR0lORk8gMQ0KI2Rl ZmluZSBIQVZFX1BPUEVOIDENCiNkZWZpbmUgSEFWRV9QVFJESUZGX1QgMQ0KI2RlZmluZSBIQVZF X1JBSVNFIDENCiNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQ0KI2RlZmluZSBIQVZFX1NUREFSRyAx DQojZGVmaW5lIEhBVkVfU1RESU5UX0ggMQ0KI2RlZmluZSBIQVZFX1NURExJQl9IIDENCiNkZWZp bmUgSEFWRV9TVFJDSFIgMQ0KI2RlZmluZSBIQVZFX1NUUkVSUk9SIDENCiNkZWZpbmUgSEFWRV9T VFJJTkdJWkUgMQ0KI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxDQojZGVmaW5lIEhBVkVfU1RSSU5H X0ggMQ0KI2RlZmluZSBIQVZFX1NUUklOR19IIDENCiNkZWZpbmUgSEFWRV9TVFJOTEVOIDENCiNk ZWZpbmUgSEFWRV9TVFJUT0wgMQ0KI2RlZmluZSBIQVZFX1NUUlRPVUwgMQ0KI2RlZmluZSBIQVZF X1NZU0NPTkYgMQ0KI2RlZmluZSBIQVZFX1NZU19NTUFOX0ggMQ0KI2RlZmluZSBIQVZFX1NZU19Q QVJBTV9IIDENCiNkZWZpbmUgSEFWRV9TWVNfUkVTT1VSQ0VfSCAxDQojZGVmaW5lIEhBVkVfU1lT X1NUQVRfSCAxDQojZGVmaW5lIEhBVkVfU1lTX1RJTUVTX0ggMQ0KI2RlZmluZSBIQVZFX1NZU19U SU1FX0ggMQ0KI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDENCiNkZWZpbmUgSEFWRV9USU1FUyAx DQojZGVmaW5lIEhBVkVfVUlOVF9MRUFTVDMyX1QgMQ0KI2RlZmluZSBIQVZFX1VOSVNURF9IIDEN CiNkZWZpbmUgSEFWRV9WU05QUklOVEYgMQ0KI2RlZmluZSBQQUNLQUdFICJnbXAiDQojZGVmaW5l IFBBQ0tBR0VfQlVHUkVQT1JUICJnbXAtYnVnc0Bzd294LmNvbSINCiNkZWZpbmUgUEFDS0FHRV9O QU1FICJHTlUgTVAiDQojZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgTVAgNC4yLjIiDQojZGVm aW5lIFBBQ0tBR0VfVEFSTkFNRSAiZ21wIg0KI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuMi4y Ig0KI2RlZmluZSBQUk9UT1RZUEVTIDENCiNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkDQojZGVmaW5l IFNJWkVPRl9NUF9MSU1CX1QgNA0KI2RlZmluZSBTSVpFT0ZfVU5TSUdORUQgNA0KI2RlZmluZSBT SVpFT0ZfVU5TSUdORURfTE9ORyA0DQojZGVmaW5lIFNJWkVPRl9VTlNJR05FRF9TSE9SVCAyDQoj ZGVmaW5lIFNURENfSEVBREVSUyAxDQojZGVmaW5lIFNURENfSEVBREVSUyAxDQojZGVmaW5lIFRJ TUVfV0lUSF9TWVNfVElNRSAxDQojZGVmaW5lIFRVTkVfU1FSX0tBUkFUU1VCQV9NQVggU1FSX0tB UkFUU1VCQV9NQVhfR0VORVJJQw0KI2RlZmluZSBWRVJTSU9OICI0LjIuMiINCiNkZWZpbmUgV0FO VF9GRlQgMQ0KI2RlZmluZSBXQU5UX1RNUF9BTExPQ0EgMQ0KI2RlZmluZSBfX1BST1RPVFlQRVMg MQ0KDQpjb25maWd1cmU6IGV4aXQgMA0K ------=_Part_12835_20237180.1205304176067 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ ------=_Part_12835_20237180.1205304176067 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ openqnx-developer mailing list openqnx-developer-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org https://lists.sourceforge.net/lists/listinfo/openqnx-developer ------=_Part_12835_20237180.1205304176067--