bug#81498: automake test t/tap-stderr-prefix.tap fails due to a sed command that does not work on macOS (all BSD?)
Erik A Johnson <[email protected]> Sun, 26 Jul 2026 02:59:41 +0000
| Newsgroups | gmane.comp.sysutils.automake.bugs |
|---|---|
| Message-ID | <[email protected]> |
--_002_29D1CE02B83B4A3AAD633CA8705B8A3Fuscedu_ Content-Type: text/plain; charset="us-ascii" Content-ID: <[email protected]> Content-Transfer-Encoding: quoted-printable The automake test "t/tap-stderr-prefix.tap" has a function check_log_line_o= rder() that uses the sed command sed -n -e '/^\('"$1"'\)$/,${/^\('"$2"'\)$/p}' all.log GNU sed accepts this, but the macOS (BSD-based) sed (at least as of Tahoe 2= 6.5.2) is stricter and requires the concluding semicolon after the "p" sed -n -e '/^\('"$1"'\)$/,${/^\('"$2"'\)$/p;}' all.log Also, a note that a bunch of the python-related tests fail with the default= python3 on macOS (because it puts compiled bytecode .pyc files in ~/Librar= y/Caches/com.apple.python instead of in ./__pycache__ like the standard pyt= hon3). --_002_29D1CE02B83B4A3AAD633CA8705B8A3Fuscedu_ Content-Type: application/octet-stream; name="test-suite.log" Content-Description: test-suite.log Content-Disposition: attachment; filename="test-suite.log"; size=1406421; creation-date="Sun, 26 Jul 2026 02:59:40 GMT"; modification-date="Sun, 26 Jul 2026 02:59:41 GMT" Content-ID: <[email protected]> Content-Transfer-Encoding: base64 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBHTlUgQXV0 b21ha2UgMS4xOC4xLjkxOiAuL3Rlc3Qtc3VpdGUubG9nCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KCiMgVE9UQUw6IDI5NjEKIyBQQVNTOiAgMjc5MAojIFNL SVA6ICAxMjgKIyBYRkFJTDogNDAKIyBGQUlMOiAgMwojIFhQQVNTOiAwCiMgRVJST1I6IDAKClN5 c3RlbSBpbmZvcm1hdGlvbiAodW5hbWUgLWEpOiBEYXJ3aW4gMjUuNS4wIERhcndpbiBLZXJuZWwg VmVyc2lvbiAyNS41LjA6IFR1ZSBKdW4gOSAyMjoxODo1OCBQRFQgMjAyNjsgcm9vdDp4bnUtMTIz NzcuMTIxLjEwfjEvUkVMRUFTRV9BUk02NF9UNjAwMAoKLi4gY29udGVudHM6OiA6ZGVwdGg6IDIK ClNLSVA6IHQvZ2V0LXN5c2NvbmYKPT09PT09PT09PT09PT09PT09PQoKYW0tdGVzdC1saWIuc2g6 IFJ1bm5pbmcgZnJvbSBpbnN0YWxsY2hlY2s6IG5vCmFtLXRlc3QtbGliLnNoOiBUZXN0IFByb3Rv Y29sOiBub25lCmFtLXRlc3QtbGliLnNoOiBQQVRIID0gL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv YmluOi91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvYXg6L3RtcC9nbnUtbGlua3M6LjovVXNlcnMv am9obnNvbmUvYmluL29zeDovVXNlcnMvam9obnNvbmUvYmluOi91c3IvbG9jYWwvYmluOi9TeXN0 ZW0vQ3J5cHRleGVzL0FwcC91c3IvYmluOi91c3IvYmluOi9iaW46L3Vzci9zYmluOi9zYmluOi92 YXIvcnVuL2NvbS5hcHBsZS5zZWN1cml0eS5jcnlwdGV4ZC9jb2RleC5zeXN0ZW0vYm9vdHN0cmFw L3Vzci9sb2NhbC9iaW46L3Zhci9ydW4vY29tLmFwcGxlLnNlY3VyaXR5LmNyeXB0ZXhkL2NvZGV4 LnN5c3RlbS9ib290c3RyYXAvdXNyL2JpbjovdmFyL3J1bi9jb20uYXBwbGUuc2VjdXJpdHkuY3J5 cHRleGQvY29kZXguc3lzdGVtL2Jvb3RzdHJhcC91c3IvYXBwbGVpbnRlcm5hbC9iaW46L3BrZy9l bnYvZ2xvYmFsL2Jpbjovb3B0L1gxMS9iaW46L0xpYnJhcnkvQXBwbGUvdXNyL2JpbjovTGlicmFy eS9UZVgvdGV4YmluOi46L1VzZXJzL2pvaG5zb25lL2Jpbi9vc3g6L1VzZXJzL2pvaG5zb25lL2Jp bgorKyBwd2QKL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9nZXQtc3lzY29uZi5kaXIKKyBzdD0w CisgdGVzdCAtZCAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS8uZ2l0CisgY2QgL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UKKyBnaXQgLS1uby1wYWdlciBsb2cgLTEKY29tbWl0IGY4ODgwZTI5N2EzZWQ5 YzI2NWJhNDFlNjFlNWZhZTlmYjE5MTRiOWYKQXV0aG9yOiBLYXJsIEJlcnJ5IDxrYXJsQGZyZWVm cmllbmRzLm9yZz4KRGF0ZTogICBUaHUgSnVuIDI1IDE1OjAxOjE4IDIwMjYgLTA3MDAKCiAgICBk b2M6IE5FV1MgZW50cnkgZm9yIHRoZSBidXN5Ym94IHRhciBjaGVjay4KICAgIAogICAgKiBORVdT OiBmb3Jnb3QgdG8gbWFrZSBORVdTIGVudHJ5LgorIC91c3IvYmluL3BlcmwgLVYKU3VtbWFyeSBv ZiBteSBwZXJsNSAocmV2aXNpb24gNSB2ZXJzaW9uIDM0IHN1YnZlcnNpb24gMSkgY29uZmlndXJh dGlvbjoKICAgCiAgUGxhdGZvcm06CiAgICBvc25hbWU9ZGFyd2luCiAgICBvc3ZlcnM9MjUuMAog ICAgYXJjaG5hbWU9ZGFyd2luLXRocmVhZC1tdWx0aS0ybGV2ZWwKICAgIHVuYW1lPSdkYXJ3aW4g cTlmZ3YucDFzLnBseC5zZC5hcHBsZS5jb20gMjUuMCBkYXJ3aW4ga2VybmVsIHZlcnNpb24gMjMu MC4wOiB0aHUgZmViIDEgMTM6MTg6MzQgcHN0IDIwMjQ7IHJvb3Q6eG51LTEwMDAyLjEuMTEuMTAw LjR+MWRldmVsb3BtZW50X3g4Nl82NCB4ODZfNjQgJwogICAgY29uZmlnX2FyZ3M9Jy1kcyAtZSAt RHByZWZpeD0vdXNyIC1EY2NmbGFncz0tZyAgLXBpcGUgIC1EbGRmbGFncz0gLURtYW4zZXh0PTNw bSAtRHVzZWl0aHJlYWRzIC1EdXNlc2hycGxpYiAtRGluY192ZXJzaW9uX2xpc3Q9bm9uZSAtRGNj PWNjJwogICAgaGludD1yZWNvbW1lbmRlZAogICAgdXNlcG9zaXg9dHJ1ZQogICAgZF9zaWdhY3Rp b249ZGVmaW5lCiAgICB1c2VpdGhyZWFkcz1kZWZpbmUKICAgIHVzZW11bHRpcGxpY2l0eT1kZWZp bmUKICAgIHVzZTY0Yml0aW50PWRlZmluZQogICAgdXNlNjRiaXRhbGw9ZGVmaW5lCiAgICB1c2Vs b25nZG91YmxlPXVuZGVmCiAgICB1c2VteW1hbGxvYz1uCiAgICBkZWZhdWx0X2luY19leGNsdWRl c19kb3Q9ZGVmaW5lCiAgQ29tcGlsZXI6CiAgICBjYz0nY2MnCiAgICBjY2ZsYWdzID0nIC1nIC1w aXBlIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1mc3RhY2stcHJvdGVjdG9yLXN0cm9uZyAtRFBFUkxf VVNFX1NBRkVfUFVURU5WJwogICAgb3B0aW1pemU9Jy1PcycKICAgIGNwcGZsYWdzPSctZyAtcGlw ZSAtZm5vLXN0cmljdC1hbGlhc2luZyAtZnN0YWNrLXByb3RlY3Rvci1zdHJvbmcnCiAgICBjY3Zl cnNpb249JycKICAgIGdjY3ZlcnNpb249J0FwcGxlIExMVk0gMjEuMC4wIChjbGFuZy0yMTAwLjAu MTIzLjIpIFsraW50ZXJuYWwtb3NdJwogICAgZ2Njb3NhbmR2ZXJzPScnCiAgICBpbnRzaXplPTQK ICAgIGxvbmdzaXplPTgKICAgIHB0cnNpemU9OAogICAgZG91Ymxlc2l6ZT04CiAgICBieXRlb3Jk ZXI9MTIzNDU2NzgKICAgIGRvdWJsZWtpbmQ9MwogICAgZF9sb25nbG9uZz1kZWZpbmUKICAgIGxv bmdsb25nc2l6ZT04CiAgICBkX2xvbmdkYmw9ZGVmaW5lCiAgICBsb25nZGJsc2l6ZT0xNgogICAg bG9uZ2RibGtpbmQ9MwogICAgaXZ0eXBlPSdsb25nJwogICAgaXZzaXplPTgKICAgIG52dHlwZT0n ZG91YmxlJwogICAgbnZzaXplPTgKICAgIE9mZl90PSdvZmZfdCcKICAgIGxzZWVrc2l6ZT04CiAg ICBhbGlnbmJ5dGVzPTgKICAgIHByb3RvdHlwZT1kZWZpbmUKICBMaW5rZXIgYW5kIExpYnJhcmll czoKICAgIGxkPSdjYycKICAgIGxkZmxhZ3MgPScgLWZzdGFjay1wcm90ZWN0b3Itc3Ryb25nJwog ICAgbGlicHRoPS9BcHBsZUludGVybmFsL0xpYnJhcnkvQnVpbGRSb290cy80fkNOcG91Z0RzLWZV TGEydXUzZzJyVURCbGNYQVNJOGp3QmpsNEJNQS9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRl bnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvTWFjT1NYLnBsYXRmb3JtL0RldmVsb3Blci9TREtzL01h Y09TWDI2LjUuSW50ZXJuYWwuc2RrL3Vzci9sb2NhbC9saWIgL0FwcGxlSW50ZXJuYWwvTGlicmFy eS9CdWlsZFJvb3RzLzR+Q05wb3VnRHMtZlVMYTJ1dTNnMnJVREJsY1hBU0k4andCamw0Qk1BL0Fw cGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1Rvb2xjaGFpbnMvT1NYMjYu NS54Y3Rvb2xjaGFpbi91c3IvbGliL2NsYW5nLzIxL2xpYiAvQXBwbGVJbnRlcm5hbC9MaWJyYXJ5 L0J1aWxkUm9vdHMvNH5DTnBvdWdEcy1mVUxhMnV1M2cyclVEQmxjWEFTSThqd0JqbDRCTUEvQXBw bGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvUGxhdGZvcm1zL01hY09TWC5w bGF0Zm9ybS9EZXZlbG9wZXIvU0RLcy9NYWNPU1gyNi41LkludGVybmFsLnNkay91c3IvbGliIC9B cHBsZUludGVybmFsL0xpYnJhcnkvQnVpbGRSb290cy80fkNOcG91Z0RzLWZVTGEydXUzZzJyVURC bGNYQVNJOGp3QmpsNEJNQS9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVsb3Bl ci9Ub29sY2hhaW5zL1hjb2RlRGVmYXVsdC54Y3Rvb2xjaGFpbi91c3IvbGliIC91c3IvbGliIC91 c3IvbG9jYWwvbGliCiAgICBsaWJzPSAKICAgIHBlcmxsaWJzPQogICAgbGliYz0KICAgIHNvPWR5 bGliCiAgICB1c2VzaHJwbGliPXRydWUKICAgIGxpYnBlcmw9bGlicGVybC5keWxpYgogICAgZ251 bGliY192ZXJzaW9uPScnCiAgRHluYW1pYyBMaW5raW5nOgogICAgZGxzcmM9ZGxfZGxvcGVuLnhz CiAgICBkbGV4dD1idW5kbGUKICAgIGRfZGxzeW11bj11bmRlZgogICAgY2NkbGZsYWdzPScgJwog ICAgY2NjZGxmbGFncz0nICcKICAgIGxkZGxmbGFncz0nIC1idW5kbGUgLXVuZGVmaW5lZCBkeW5h bWljX2xvb2t1cCAtZnN0YWNrLXByb3RlY3Rvci1zdHJvbmcnCgoKQ2hhcmFjdGVyaXN0aWNzIG9m IHRoaXMgYmluYXJ5IChmcm9tIGxpYnBlcmwpOiAKICBDb21waWxlLXRpbWUgb3B0aW9uczoKICAg IEhBU19USU1FUwogICAgTVVMVElQTElDSVRZCiAgICBQRVJMSU9fTEFZRVJTCiAgICBQRVJMX0NP UFlfT05fV1JJVEUKICAgIFBFUkxfRE9OVF9DUkVBVEVfR1ZTVgogICAgUEVSTF9JTVBMSUNJVF9D T05URVhUCiAgICBQRVJMX01BTExPQ19XUkFQCiAgICBQRVJMX09QX1BBUkVOVAogICAgUEVSTF9Q UkVTRVJWRV9JVlVWCiAgICBQRVJMX1VTRV9TQUZFX1BVVEVOVgogICAgVVNFXzY0X0JJVF9BTEwK ICAgIFVTRV82NF9CSVRfSU5UCiAgICBVU0VfSVRIUkVBRFMKICAgIFVTRV9MQVJHRV9GSUxFUwog ICAgVVNFX0xPQ0FMRQogICAgVVNFX0xPQ0FMRV9DT0xMQVRFCiAgICBVU0VfTE9DQUxFX0NUWVBF CiAgICBVU0VfTE9DQUxFX05VTUVSSUMKICAgIFVTRV9MT0NBTEVfVElNRQogICAgVVNFX1BFUkxJ TwogICAgVVNFX1BFUkxfQVRPRgogICAgVVNFX1JFRU5UUkFOVF9BUEkKICAgIFVTRV9USFJFQURf U0FGRV9MT0NBTEUKICBMb2NhbGx5IGFwcGxpZWQgcGF0Y2hlczoKICAgIC9MaWJyYXJ5L1Blcmwv VXBkYXRlcy88dmVyc2lvbj4gY29tZXMgYmVmb3JlIHN5c3RlbSBwZXJsIGRpcmVjdG9yaWVzCiAg ICBpbnN0YWxscHJpdmxpYiBhbmQgaW5zdGFsbGFyY2hsaWIgcG9pbnRzIHRvIHRoZSBVcGRhdGVz IGRpcmVjdG9yeQogIEJ1aWx0IHVuZGVyIGRhcndpbgogIENvbXBpbGVkIGF0IEFwciAxOCAyMDI2 IDE3OjE2OjIxCiAgJUVOVjoKICAgIFBFUkw1TElCPSIvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS9s aWIvOi91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL2xpYi8iCiAgQElOQzoKICAgIC91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL2xpYi8KICAgIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL2xpYi8KICAgIC9M aWJyYXJ5L1BlcmwvNS4zNC9kYXJ3aW4tdGhyZWFkLW11bHRpLTJsZXZlbAogICAgL0xpYnJhcnkv UGVybC81LjM0CiAgICAvTmV0d29yay9MaWJyYXJ5L1BlcmwvNS4zNC9kYXJ3aW4tdGhyZWFkLW11 bHRpLTJsZXZlbAogICAgL05ldHdvcmsvTGlicmFyeS9QZXJsLzUuMzQKICAgIC9MaWJyYXJ5L1Bl cmwvVXBkYXRlcy81LjM0LjEKICAgIC9TeXN0ZW0vTGlicmFyeS9QZXJsLzUuMzQvZGFyd2luLXRo cmVhZC1tdWx0aS0ybGV2ZWwKICAgIC9TeXN0ZW0vTGlicmFyeS9QZXJsLzUuMzQKICAgIC9TeXN0 ZW0vTGlicmFyeS9QZXJsL0V4dHJhcy81LjM0L2Rhcndpbi10aHJlYWQtbXVsdGktMmxldmVsCiAg ICAvU3lzdGVtL0xpYnJhcnkvUGVybC9FeHRyYXMvNS4zNAorIC91c3IvYmluL3BlcmwgLWUgJ3Vz ZSBUQVA6OlBhcnNlcjsgcHJpbnQgJFRBUDo6UGFyc2VyOjpWRVJTSU9OLCAiXG4iJwozLjQzCisg YXV0b2NvbmYgLS12ZXJzaW9uCmF1dG9jb25mIChHTlUgQXV0b2NvbmYpIDIuNzMKQ29weXJpZ2h0 IChDKSAyMDI2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgpMaWNlbnNlIEdQTHYzKy9B dXRvY29uZjogR05VIEdQTCB2ZXJzaW9uIDMgb3IgbGF0ZXIKPGh0dHBzOi8vZ251Lm9yZy9saWNl bnNlcy9ncGwuaHRtbD4sIDxodHRwczovL2dudS5vcmcvbGljZW5zZXMvZXhjZXB0aW9ucy5odG1s PgpUaGlzIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBhcmUgZnJlZSB0byBjaGFuZ2UgYW5kIHJlZGlz dHJpYnV0ZSBpdC4KVGhlcmUgaXMgTk8gV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVk IGJ5IGxhdy4KCldyaXR0ZW4gYnkgRGF2aWQgSi4gTWFjS2VuemllIGFuZCBBa2ltIERlbWFpbGxl LgorIGF1dG9jb25mIC0taGVscApVc2FnZTogL3Vzci9sb2NhbC9iaW4vYXV0b2NvbmYgW09QVElP Tl0uLi4gW1RFTVBMQVRFLUZJTEVdCgpHZW5lcmF0ZSBhIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGZy b20gYSBURU1QTEFURS1GSUxFIGlmIGdpdmVuLCBvcgonY29uZmlndXJlLmFjJyBpZiBwcmVzZW50 LCBvciBlbHNlICdjb25maWd1cmUuaW4nLiAgT3V0cHV0IGlzIHNlbnQKdG8gdGhlIHN0YW5kYXJk IG91dHB1dCBpZiBURU1QTEFURS1GSUxFIGlzIGdpdmVuLCBlbHNlIGludG8KJ2NvbmZpZ3VyZScu CgpPcGVyYXRpb24gbW9kZXM6CiAgLWgsIC0taGVscCAgICAgICAgICAgICAgICBwcmludCB0aGlz IGhlbHAsIHRoZW4gZXhpdAogIC1WLCAtLXZlcnNpb24gICAgICAgICAgICAgcHJpbnQgdmVyc2lv biBudW1iZXIsIHRoZW4gZXhpdAogIC12LCAtLXZlcmJvc2UgICAgICAgICAgICAgdmVyYm9zZWx5 IHJlcG9ydCBwcm9jZXNzaW5nCiAgLWQsIC0tZGVidWcgICAgICAgICAgICAgICBkb24ndCByZW1v dmUgdGVtcG9yYXJ5IGZpbGVzCiAgLWYsIC0tZm9yY2UgICAgICAgICAgICAgICBjb25zaWRlciBh bGwgZmlsZXMgb2Jzb2xldGUKICAtbywgLS1vdXRwdXQ9RklMRSAgICAgICAgIHNhdmUgb3V0cHV0 IGluIEZJTEUgKHN0ZG91dCBpcyB0aGUgZGVmYXVsdCkKICAtVywgLS13YXJuaW5ncz1DQVRFR09S WSAgIHJlcG9ydCB0aGUgd2FybmluZ3MgZmFsbGluZyBpbiBDQVRFR09SWQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGNvbW1hLXNlcGFyYXRlZCBsaXN0IGFjY2VwdGVkKQoKV2FybmluZyBj YXRlZ29yaWVzIGFyZToKICBjcm9zcyAgICAgICAgICAgICAgICAgIGNyb3NzIGNvbXBpbGF0aW9u IGlzc3VlcwogIGdudSAgICAgICAgICAgICAgICAgICAgR05VIGNvZGluZyBzdGFuZGFyZHMgKGRl ZmF1bHQgaW4gZ251IGFuZCBnbml0cyBtb2RlcykKICBvYnNvbGV0ZSAgICAgICAgICAgICAgIG9i c29sZXRlIGZlYXR1cmVzIG9yIGNvbnN0cnVjdGlvbnMgKGRlZmF1bHQpCiAgb3ZlcnJpZGUgICAg ICAgICAgICAgICB1c2VyIHJlZGVmaW5pdGlvbnMgb2YgQXV0b21ha2UgcnVsZXMgb3IgdmFyaWFi bGVzCiAgcG9ydGFiaWxpdHkgICAgICAgICAgICBwb3J0YWJpbGl0eSBpc3N1ZXMgKGRlZmF1bHQg aW4gZ251IGFuZCBnbml0cyBtb2RlcykKICBwb3J0YWJpbGl0eS1yZWN1cnNpdmUgIG5lc3RlZCBN YWtlIHZhcmlhYmxlcyAoZGVmYXVsdCB3aXRoIC1XcG9ydGFiaWxpdHkpCiAgZXh0cmEtcG9ydGFi aWxpdHkgICAgICBleHRyYSBwb3J0YWJpbGl0eSBpc3N1ZXMgcmVsYXRlZCB0byBvYnNjdXJlIHRv b2xzCiAgc3ludGF4ICAgICAgICAgICAgICAgICBkdWJpb3VzIHN5bnRhY3RpYyBjb25zdHJ1Y3Rz IChkZWZhdWx0KQogIHVuc3VwcG9ydGVkICAgICAgICAgICAgdW5zdXBwb3J0ZWQgb3IgaW5jb21w bGV0ZSBmZWF0dXJlcyAoZGVmYXVsdCkKCi1XIGFsc28gdW5kZXJzdGFuZHM6CiAgYWxsICAgICAg ICAgICAgICAgICAgICB0dXJuIG9uIGFsbCB0aGUgd2FybmluZ3MKICBub25lICAgICAgICAgICAg ICAgICAgIHR1cm4gb2ZmIGFsbCB0aGUgd2FybmluZ3MKICBuby1DQVRFR09SWSAgICAgICAgICAg IHR1cm4gb2ZmIHdhcm5pbmdzIGluIENBVEVHT1JZCiAgZXJyb3IgICAgICAgICAgICAgICAgICB0 cmVhdCBhbGwgZW5hYmxlZCB3YXJuaW5ncyBhcyBlcnJvcnMKCkxpYnJhcnkgZGlyZWN0b3JpZXM6 CiAgLUIsIC0tcHJlcGVuZC1pbmNsdWRlPURJUiAgcHJlcGVuZCBkaXJlY3RvcnkgRElSIHRvIHNl YXJjaCBwYXRoCiAgLUksIC0taW5jbHVkZT1ESVIgICAgICAgICAgYXBwZW5kIGRpcmVjdG9yeSBE SVIgdG8gc2VhcmNoIHBhdGgKClRyYWNpbmc6CiAgLXQsIC0tdHJhY2U9TUFDUk9bOkZPUk1BVF0g IHJlcG9ydCB0aGUgbGlzdCBvZiBjYWxscyB0byBNQUNSTwogIC1pLCAtLWluaXRpYWxpemF0aW9u ICAgICAgICBhbHNvIHRyYWNlIEF1dG9jb25mJ3MgaW5pdGlhbGl6YXRpb24gcHJvY2VzcwoKSW4g dHJhY2luZyBtb2RlLCBubyBjb25maWd1cmF0aW9uIHNjcmlwdCBpcyBjcmVhdGVkLiAgRk9STUFU IGRlZmF1bHRzCnRvICckZjokbDokbjokJSc7IHNlZSAnYXV0b200dGUgLS1oZWxwJyBmb3IgaW5m b3JtYXRpb24gYWJvdXQgRk9STUFULgoKUmVwb3J0IGJ1Z3MgaW4gdGhlIHRyYWNrZXIgYXQgPGh0 dHBzOi8vc2F2YW5uYWguZ251Lm9yZy9wcm9qZWN0cy9hdXRvY29uZj4Kb3IgYnkgZW1haWwgdG8g PGJ1Zy1hdXRvY29uZkBnbnUub3JnPi4KClRoZSBmdWxsIGRvY3VtZW50YXRpb24gZm9yIEF1dG9j b25mIGNhbiBiZSByZWFkIHZpYSAnaW5mbyBhdXRvY29uZicsCm9yIG9uIHRoZSBXZWIgYXQgPGh0 dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvYXV0b2NvbmYvbWFudWFsLz4uCisgbGlidG9vbGl6 ZSAtLXZlcnNpb24KbGlidG9vbGl6ZSAoR05VIGxpYnRvb2wpIDIuNi4yCkNvcHlyaWdodCAoQykg MjAyNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KTGljZW5zZSBHUEx2Mis6IEdOVSBH UEwgdmVyc2lvbiAyIG9yIGxhdGVyIDxodHRwczovL2dudS5vcmcvbGljZW5zZXMvZ3BsLmh0bWw+ ClRoaXMgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGFyZSBmcmVlIHRvIGNoYW5nZSBhbmQgcmVkaXN0 cmlidXRlIGl0LgpUaGVyZSBpcyBOTyBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQg YnkgbGF3LgoKV3JpdHRlbiBieSBHYXJ5IFYuIFZhdWdoYW4gPGdhcnlAZ251Lm9yZz4sIDIwMDMK KyBsaWJ0b29saXplIC0taGVscApVc2FnZTogL3RtcC9nbnUtbGlua3MvbGlidG9vbGl6ZSBbT1BU SU9OXS4uLgoKUHJlcGFyZSBhIHBhY2thZ2UgdG8gdXNlIGxpYnRvb2wuCgpPcHRpb25zOgogICAt YywgLS1jb3B5ICAgICAgICAgIGNvcHkgZmlsZXMgcmF0aGVyIHRoYW4gc3ltbGlua2luZyB0aGVt CiAgICAgICAtLWRlYnVnICAgICAgICAgZW5hYmxlIHZlcmJvc2Ugc2hlbGwgdHJhY2luZwogICAt biwgLS1kcnktcnVuICAgICAgIHByaW50IGNvbW1hbmRzIHJhdGhlciB0aGFuIHJ1bm5pbmcgdGhl bQogICAtZiwgLS1mb3JjZSAgICAgICAgIHJlcGxhY2UgZXhpc3RpbmcgZmlsZXMKICAgLWksIC0t aW5zdGFsbCAgICAgICBjb3B5IG1pc3NpbmcgYXV4aWxpYXJ5IGZpbGVzCiAgICAgICAtLWx0ZGxb PURJUl0gICAgaW5zdGFsbCBsaWJsdGRsIHNvdXJjZXMgW2RlZmF1bHQ6IGxpYmx0ZGxdCiAgICAg ICAtLW5vLXdhcm5pbmdzICAgZXF1aXZhbGVudCB0byAnLVdub25lJwogICAgICAgLS1ub25yZWN1 cnNpdmUgIHByZXBhcmUgbHRkbCBmb3Igbm9uLXJlY3Vyc2l2ZSBtYWtlCiAgIC1xLCAtLXF1aWV0 ICAgICAgICAgd29yayBzaWxlbnRseQogICAgICAgLS1yZWN1cnNpdmUgICAgIHByZXBhcmUgbHRk bCBmb3IgcmVjdXJzaXZlIG1ha2UKICAgICAgIC0tc3VicHJvamVjdCAgICBwcmVwYXJlIGx0ZGwg dG8gY29uZmlndXJlIGFuZCBidWlsZCBpbmRlcGVuZGVudGx5CiAgIC12LCAtLXZlcmJvc2UgICAg ICAgdmVyYm9zZWx5IHJlcG9ydCBwcm9jZXNzaW5nCiAgICAgICAtLXZlcnNpb24gICAgICAgcHJp bnQgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdAogICAtVywgLS13YXJuaW5ncz1DQVRFR09S WQogICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydCB0aGUgd2FybmluZ3MgZmFsbGluZyBpbiBD QVRFR09SWSBbYWxsXQogICAtaCwgLS1oZWxwICAgICAgICAgIHByaW50IHNob3J0IG9yIGxvbmcg aGVscCBtZXNzYWdlCgoKV2FybmluZyBjYXRlZ29yaWVzIGluY2x1ZGU6CiAgICAgICAnYWxsJyAg ICAgICAgICBzaG93IGFsbCB3YXJuaW5ncwogICAgICAgJ25vbmUnICAgICAgICAgdHVybiBvZmYg YWxsIHRoZSB3YXJuaW5ncwogICAgICAgJ2Vycm9yJyAgICAgICAgd2FybmluZ3MgYXJlIHRyZWF0 ZWQgYXMgZmF0YWwgZXJyb3JzCiAgICAgICAnZW52aXJvbm1lbnQnICAgc2hvdyB3YXJuaW5ncyBh Ym91dCBMSUJUT09MSVpFX09QVElPTlMgY29udGVudAogICAgICAgJ2ZpbGUnICAgICAgICAgIHNo b3cgd2FybmluZ3MgYWJvdXQgZmlsZSBjb3B5aW5nIGFuZCBsaW5raW5nCgpUaGUgZm9sbG93aW5n IHNwYWNlIG9yIGNvbW1hIGRlbGltaXRlZCBvcHRpb25zIGNhbiBiZSBwYXNzZWQgdG8gbGlidG9v bGl6ZQp2aWEgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIExJQlRPT0xJWkVfT1BUSU9OUywgdW5r bm93biBlbnZpcm9ubWVudApvcHRpb25zIGFyZSBpZ25vcmVkOgoKICAgICAgIC0tZGVidWcgICAg ICAgICBlbmFibGUgdmVyYm9zZSBzaGVsbCB0cmFjaW5nCiAgICAgICAtLW5vLXdhcm5pbmdzICAg ZG9uJ3QgZGlzcGxheSB3YXJuaW5nIG1lc3NhZ2VzCiAgICAgICAtLXF1aWV0ICAgICAgICAgd29y ayBzaWxlbnRseQogICAgICAgLS12ZXJib3NlICAgICAgIHZlcmJvc2VseSByZXBvcnQgcHJvY2Vz c2luZwoKWW91IG11c3QgJ2NkJyB0byB0aGUgdG9wIGRpcmVjdG9yeSBvZiB5b3VyIHBhY2thZ2Ug YmVmb3JlIHlvdSBydW4KJ2xpYnRvb2xpemUnLgoKV2hlbiByZXBvcnRpbmcgYSBidWcsIHBsZWFz ZSBkZXNjcmliZSBhIHRlc3QgY2FzZSB0byByZXByb2R1Y2UgaXQgYW5kCmluY2x1ZGUgdGhlIGZv bGxvd2luZyBpbmZvcm1hdGlvbjoKCiAgICAgICBob3N0LXRyaXBsZXQ6ICAgYWFyY2g2NC1hcHBs ZS1kYXJ3aW4yNS41LjAKICAgICAgIHZlcnNpb246ICAgICAgICBsaWJ0b29saXplIChHTlUgbGli dG9vbCkgMi42LjIKICAgICAgIGF1dG9tYWtlOiAgICAgICBhdXRvbWFrZSAoR05VIGF1dG9tYWtl KSAxLjE4LjEuOTEKICAgICAgIGF1dG9jb25mOiAgICAgICBhdXRvY29uZiAoR05VIEF1dG9jb25m KSAyLjczCgpSZXBvcnQgYnVncyB0byA8YnVnLWxpYnRvb2xAZ251Lm9yZz4uCkdOVSBsaWJ0b29s IGhvbWUgcGFnZTogPGh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvbGlidG9vbC8+LgpHZW5l cmFsIGhlbHAgdXNpbmcgR05VIHNvZnR3YXJlOiA8aHR0cHM6Ly93d3cuZ251Lm9yZy9nZXRoZWxw Lz4uCisgbGV4IC0tdmVyc2lvbgpmbGV4IDIuNi40IEFwcGxlKGZsZXgtMzUpCisgbGV4IC0taGVs cApVc2FnZTogZmxleCBbT1BUSU9OU10gW0ZJTEVdLi4uCkdlbmVyYXRlcyBwcm9ncmFtcyB0aGF0 IHBlcmZvcm0gcGF0dGVybi1tYXRjaGluZyBvbiB0ZXh0LgoKVGFibGUgQ29tcHJlc3Npb246CiAg LUNhLCAtLWFsaWduICAgICAgdHJhZGUgb2ZmIGxhcmdlciB0YWJsZXMgZm9yIGJldHRlciBtZW1v cnkgYWxpZ25tZW50CiAgLUNlLCAtLWVjcyAgICAgICAgY29uc3RydWN0IGVxdWl2YWxlbmNlIGNs YXNzZXMKICAtQ2YgICAgICAgICAgICAgICBkbyBub3QgY29tcHJlc3MgdGFibGVzOyB1c2UgLWYg cmVwcmVzZW50YXRpb24KICAtQ0YgICAgICAgICAgICAgICBkbyBub3QgY29tcHJlc3MgdGFibGVz OyB1c2UgLUYgcmVwcmVzZW50YXRpb24KICAtQ20sIC0tbWV0YS1lY3MgICBjb25zdHJ1Y3QgbWV0 YS1lcXVpdmFsZW5jZSBjbGFzc2VzCiAgLUNyLCAtLXJlYWQgICAgICAgdXNlIHJlYWQoKSBpbnN0 ZWFkIG9mIHN0ZGlvIGZvciBzY2FubmVyIGlucHV0CiAgLWYsIC0tZnVsbCAgICAgICAgZ2VuZXJh dGUgZmFzdCwgbGFyZ2Ugc2Nhbm5lci4gU2FtZSBhcyAtQ2ZyCiAgLUYsIC0tZmFzdCAgICAgICAg dXNlIGFsdGVybmF0ZSB0YWJsZSByZXByZXNlbnRhdGlvbi4gU2FtZSBhcyAtQ0ZyCiAgLUNlbSAg ICAgICAgICAgICAgZGVmYXVsdCBjb21wcmVzc2lvbiAoc2FtZSBhcyAtLWVjcyAtLW1ldGEtZWNz KQoKRGVidWdnaW5nOgogIC1kLCAtLWRlYnVnICAgICAgICAgICAgIGVuYWJsZSBkZWJ1ZyBtb2Rl IGluIHNjYW5uZXIKICAtYiwgLS1iYWNrdXAgICAgICAgICAgICB3cml0ZSBiYWNraW5nLXVwIGlu Zm9ybWF0aW9uIHRvIGxleC5iYWNrdXAKICAtcCwgLS1wZXJmLXJlcG9ydCAgICAgICB3cml0ZSBw ZXJmb3JtYW5jZSByZXBvcnQgdG8gc3RkZXJyCiAgLXMsIC0tbm9kZWZhdWx0ICAgICAgICAgc3Vw cHJlc3MgZGVmYXVsdCBydWxlIHRvIEVDSE8gdW5tYXRjaGVkIHRleHQKICAtVCwgLS10cmFjZSAg ICAgICAgICAgICBmbGV4IHNob3VsZCBydW4gaW4gdHJhY2UgbW9kZQogIC13LCAtLW5vd2FybiAg ICAgICAgICAgIGRvIG5vdCBnZW5lcmF0ZSB3YXJuaW5ncwogIC12LCAtLXZlcmJvc2UgICAgICAg ICAgIHdyaXRlIHN1bW1hcnkgb2Ygc2Nhbm5lciBzdGF0aXN0aWNzIHRvIHN0ZG91dAogICAgICAt LWhleCAgICAgICAgICAgICAgIHVzZSBoZXhhZGVjaW1hbCBudW1iZXJzIGluc3RlYWQgb2Ygb2N0 YWwgaW4gZGVidWcgb3V0cHV0cwoKRmlsZXM6CiAgLW8sIC0tb3V0ZmlsZT1GSUxFICAgICAgc3Bl Y2lmeSBvdXRwdXQgZmlsZW5hbWUKICAtUywgLS1za2VsPUZJTEUgICAgICAgICBzcGVjaWZ5IHNr ZWxldG9uIGZpbGUKICAtdCwgLS1zdGRvdXQgICAgICAgICAgICB3cml0ZSBzY2FubmVyIG9uIHN0 ZG91dCBpbnN0ZWFkIG9mIGxleC55eS5jCiAgICAgIC0teXljbGFzcz1OQU1FICAgICAgbmFtZSBv ZiBDKysgY2xhc3MKICAgICAgLS1oZWFkZXItZmlsZT1GSUxFICAgY3JlYXRlIGEgQyBoZWFkZXIg ZmlsZSBpbiBhZGRpdGlvbiB0byB0aGUgc2Nhbm5lcgogICAgICAtLXRhYmxlcy1maWxlWz1GSUxF XSB3cml0ZSB0YWJsZXMgdG8gRklMRQoKU2Nhbm5lciBiZWhhdmlvcjoKICAtNywgLS03Yml0ICAg ICAgICAgICAgICBnZW5lcmF0ZSA3LWJpdCBzY2FubmVyCiAgLTgsIC0tOGJpdCAgICAgICAgICAg ICAgZ2VuZXJhdGUgOC1iaXQgc2Nhbm5lcgogIC1CLCAtLWJhdGNoICAgICAgICAgICAgIGdlbmVy YXRlIGJhdGNoIHNjYW5uZXIgKG9wcG9zaXRlIG9mIC1JKQogIC1pLCAtLWNhc2UtaW5zZW5zaXRp dmUgIGlnbm9yZSBjYXNlIGluIHBhdHRlcm5zCiAgLWwsIC0tbGV4LWNvbXBhdCAgICAgICAgbWF4 aW1hbCBjb21wYXRpYmlsaXR5IHdpdGggb3JpZ2luYWwgbGV4CiAgLVgsIC0tcG9zaXgtY29tcGF0 ICAgICAgbWF4aW1hbCBjb21wYXRpYmlsaXR5IHdpdGggUE9TSVggbGV4CiAgLUksIC0taW50ZXJh Y3RpdmUgICAgICAgZ2VuZXJhdGUgaW50ZXJhY3RpdmUgc2Nhbm5lciAob3Bwb3NpdGUgb2YgLUIp CiAgICAgIC0teXlsaW5lbm8gICAgICAgICAgdHJhY2sgbGluZSBjb3VudCBpbiB5eWxpbmVubwoK R2VuZXJhdGVkIGNvZGU6CiAgLSssICAtLWMrKyAgICAgICAgICAgICAgIGdlbmVyYXRlIEMrKyBz Y2FubmVyIGNsYXNzCiAgLURtYWNyb1s9ZGVmbl0gICAgICAgICAgICNkZWZpbmUgbWFjcm8gZGVm biAgKGRlZmF1bHQgZGVmbiBpcyAnMScpCiAgLUwsICAtLW5vbGluZSAgICAgICAgICAgIHN1cHBy ZXNzICNsaW5lIGRpcmVjdGl2ZXMgaW4gc2Nhbm5lcgogIC1QLCAgLS1wcmVmaXg9U1RSSU5HICAg ICB1c2UgU1RSSU5HIGFzIHByZWZpeCBpbnN0ZWFkIG9mICJ5eSIKICAtUiwgIC0tcmVlbnRyYW50 ICAgICAgICAgZ2VuZXJhdGUgYSByZWVudHJhbnQgQyBzY2FubmVyCiAgICAgICAtLWJpc29uLWJy aWRnZSAgICAgIHNjYW5uZXIgZm9yIGJpc29uIHB1cmUgcGFyc2VyLgogICAgICAgLS1iaXNvbi1s b2NhdGlvbnMgICBpbmNsdWRlIHl5bGxvYyBzdXBwb3J0LgogICAgICAgLS1zdGRpbml0ICAgICAg ICAgICBpbml0aWFsaXplIHl5aW4veXlvdXQgdG8gc3RkaW4vc3Rkb3V0CiAgICAgICAtLW5vdW5p c3RkICAgICAgICAgIGRvIG5vdCBpbmNsdWRlIDx1bmlzdGQuaD4KICAgICAgIC0tbm9GVU5DVElP TiAgICAgICAgZG8gbm90IGdlbmVyYXRlIGEgcGFydGljdWxhciBGVU5DVElPTgoKTWlzY2VsbGFu ZW91czoKICAtYyAgICAgICAgICAgICAgICAgICAgICBkby1ub3RoaW5nIFBPU0lYIG9wdGlvbgog IC1uICAgICAgICAgICAgICAgICAgICAgIGRvLW5vdGhpbmcgUE9TSVggb3B0aW9uCiAgLT8KICAt aCwgLS1oZWxwICAgICAgICAgICAgICBwcm9kdWNlIHRoaXMgaGVscCBtZXNzYWdlCiAgLVYsIC0t dmVyc2lvbiAgICAgICAgICAgcmVwb3J0IGZsZXggdmVyc2lvbgorIHlhY2MgLS12ZXJzaW9uCmJp c29uIChHTlUgQmlzb24pIDMuOC4yCldyaXR0ZW4gYnkgUm9iZXJ0IENvcmJldHQgYW5kIFJpY2hh cmQgU3RhbGxtYW4uCgpDb3B5cmlnaHQgKEMpIDIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuClRoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcg Y29uZGl0aW9ucy4gIFRoZXJlIGlzIE5PCndhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLgorIHlhY2MgLS1oZWxw ClVzYWdlOiAvdXNyL2xvY2FsL2Jpbi9iaXNvbiBbT1BUSU9OXS4uLiBGSUxFCkdlbmVyYXRlIGEg ZGV0ZXJtaW5pc3RpYyBMUiBvciBnZW5lcmFsaXplZCBMUiAoR0xSKSBwYXJzZXIgZW1wbG95aW5n CkxBTFIoMSksIElFTFIoMSksIG9yIGNhbm9uaWNhbCBMUigxKSBwYXJzZXIgdGFibGVzLgoKTWFu ZGF0b3J5IGFyZ3VtZW50cyB0byBsb25nIG9wdGlvbnMgYXJlIG1hbmRhdG9yeSBmb3Igc2hvcnQg b3B0aW9ucyB0b28uClRoZSBzYW1lIGlzIHRydWUgZm9yIG9wdGlvbmFsIGFyZ3VtZW50cy4KCk9w ZXJhdGlvbiBNb2RlczoKICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgICBkaXNwbGF5IHRoaXMg aGVscCBhbmQgZXhpdAogIC1WLCAtLXZlcnNpb24gICAgICAgICAgICAgIG91dHB1dCB2ZXJzaW9u IGluZm9ybWF0aW9uIGFuZCBleGl0CiAgICAgIC0tcHJpbnQtbG9jYWxlZGlyICAgICAgb3V0cHV0 IGRpcmVjdG9yeSBjb250YWluaW5nIGxvY2FsZS1kZXBlbmRlbnQgZGF0YQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFuZCBleGl0CiAgICAgIC0tcHJpbnQtZGF0YWRpciAgICAgICAgb3V0 cHV0IGRpcmVjdG9yeSBjb250YWluaW5nIHNrZWxldG9ucyBhbmQgWFNMVAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFuZCBleGl0CiAgLXUsIC0tdXBkYXRlICAgICAgICAgICAgICAgYXBw bHkgZml4ZXMgdG8gdGhlIHNvdXJjZSBncmFtbWFyIGZpbGUgYW5kIGV4aXQKICAtZiwgLS1mZWF0 dXJlWz1GRUFUVVJFU10gICBhY3RpdmF0ZSBtaXNjZWxsYW5lb3VzIGZlYXR1cmVzCgpGRUFUVVJF UyBpcyBhIGxpc3Qgb2YgY29tbWEgc2VwYXJhdGVkIHdvcmRzIHRoYXQgY2FuIGluY2x1ZGU6CiAg Y2FyZXQsIGRpYWdub3N0aWNzLXNob3ctY2FyZXQKICAgICAgICAgICAgICAgICAgICBzaG93IGVy cm9ycyB3aXRoIGNhcmV0cwogIGZpeGl0LCBkaWFnbm9zdGljcy1wYXJzZWFibGUtZml4aXRzCiAg ICAgICAgICAgICAgICAgICAgc2hvdyBtYWNoaW5lLXJlYWRhYmxlIGZpeGVzCiAgc3ludGF4LW9u bHkgICAgICAgZG8gbm90IGdlbmVyYXRlIGFueSBmaWxlCiAgYWxsICAgICAgICAgICAgICAgYWxs IG9mIHRoZSBhYm92ZQogIG5vbmUgICAgICAgICAgICAgIGRpc2FibGUgYWxsIG9mIHRoZSBhYm92 ZQoKRGlhZ25vc3RpY3M6CiAgLVcsIC0td2FybmluZ3NbPUNBVEVHT1JZXSAgcmVwb3J0IHRoZSB3 YXJuaW5ncyBmYWxsaW5nIGluIENBVEVHT1JZCiAgICAgIC0tY29sb3JbPVdIRU5dICAgICAgICAg d2hldGhlciB0byBjb2xvcml6ZSB0aGUgZGlhZ25vc3RpY3MKICAgICAgLS1zdHlsZT1GSUxFICAg ICAgICAgICBzcGVjaWZ5IHRoZSBDU1MgRklMRSBmb3IgY29sb3JpemVyIGRpYWdub3N0aWNzCgpX YXJuaW5nIGNhdGVnb3JpZXMgaW5jbHVkZToKICBjb25mbGljdHMtc3IgICAgICBTL1IgY29uZmxp Y3RzIChlbmFibGVkIGJ5IGRlZmF1bHQpCiAgY29uZmxpY3RzLXJyICAgICAgUi9SIGNvbmZsaWN0 cyAoZW5hYmxlZCBieSBkZWZhdWx0KQogIGNvdW50ZXJleGFtcGxlcywgY2V4CiAgICAgICAgICAg ICAgICAgICAgZ2VuZXJhdGUgY29uZmxpY3QgY291bnRlcmV4YW1wbGVzCiAgZGFuZ2xpbmctYWxp YXMgICAgc3RyaW5nIGFsaWFzZXMgbm90IGF0dGFjaGVkIHRvIGEgc3ltYm9sCiAgZGVwcmVjYXRl ZCAgICAgICAgb2Jzb2xldGUgY29uc3RydWN0cwogIGVtcHR5LXJ1bGUgICAgICAgIGVtcHR5IHJ1 bGVzIHdpdGhvdXQgJWVtcHR5CiAgbWlkcnVsZS12YWx1ZXMgICAgdW5zZXQgb3IgdW51c2VkIG1p ZHJ1bGUgdmFsdWVzCiAgcHJlY2VkZW5jZSAgICAgICAgdXNlbGVzcyBwcmVjZWRlbmNlIGFuZCBh c3NvY2lhdGl2aXR5CiAgeWFjYyAgICAgICAgICAgICAgaW5jb21wYXRpYmlsaXRpZXMgd2l0aCBQ T1NJWCBZYWNjCiAgb3RoZXIgICAgICAgICAgICAgYWxsIG90aGVyIHdhcm5pbmdzIChlbmFibGVk IGJ5IGRlZmF1bHQpCiAgYWxsICAgICAgICAgICAgICAgYWxsIHRoZSB3YXJuaW5ncyBleGNlcHQg J2NvdW50ZXJleGFtcGxlcycsICdkYW5nbGluZy1hbGlhcycgYW5kICd5YWNjJwogIG5vLUNBVEVH T1JZICAgICAgIHR1cm4gb2ZmIHdhcm5pbmdzIGluIENBVEVHT1JZCiAgbm9uZSAgICAgICAgICAg ICAgdHVybiBvZmYgYWxsIHRoZSB3YXJuaW5ncwogIGVycm9yWz1DQVRFR09SWV0gIHRyZWF0IHdh cm5pbmdzIGFzIGVycm9ycwoKV0hFTiBjYW4gYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6CiAgYWx3 YXlzLCB5ZXMgIGNvbG9yaXplIHRoZSBvdXRwdXQKICBuZXZlciwgbm8gICAgZG9uJ3QgY29sb3Jp emUgdGhlIG91dHB1dAogIGF1dG8sIHR0eSAgICBjb2xvcml6ZSBpZiB0aGUgb3V0cHV0IGRldmlj ZSBpcyBhIHR0eQoKVHVuaW5nIHRoZSBQYXJzZXI6CiAgLUwsIC0tbGFuZ3VhZ2U9TEFOR1VBR0Ug ICAgICAgICAgc3BlY2lmeSB0aGUgb3V0cHV0IHByb2dyYW1taW5nIGxhbmd1YWdlCiAgLVMsIC0t c2tlbGV0b249RklMRSAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgc2tlbGV0b24gdG8gdXNlCiAg LXQsIC0tZGVidWcgICAgICAgICAgICAgICAgICAgICAgaW5zdHJ1bWVudCB0aGUgcGFyc2VyIGZv ciB0cmFjaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FtZSBhcyAnLURw YXJzZS50cmFjZScKICAgICAgLS1sb2NhdGlvbnMgICAgICAgICAgICAgICAgICBlbmFibGUgbG9j YXRpb24gc3VwcG9ydAogIC1ELCAtLWRlZmluZT1OQU1FWz1WQUxVRV0gICAgICAgIHNpbWlsYXIg dG8gJyVkZWZpbmUgTkFNRSBWQUxVRScKICAtRiwgLS1mb3JjZS1kZWZpbmU9TkFNRVs9VkFMVUVd ICBvdmVycmlkZSAnJWRlZmluZSBOQU1FIFZBTFVFJwogIC1wLCAtLW5hbWUtcHJlZml4PVBSRUZJ WCAgICAgICAgIHByZXBlbmQgUFJFRklYIHRvIHRoZSBleHRlcm5hbCBzeW1ib2xzCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwcmVjYXRlZCBieSAnLURhcGkucHJlZml4PXtQ UkVGSVh9JwogIC1sLCAtLW5vLWxpbmVzICAgICAgICAgICAgICAgICAgIGRvbid0IGdlbmVyYXRl ICcjbGluZScgZGlyZWN0aXZlcwogIC1rLCAtLXRva2VuLXRhYmxlICAgICAgICAgICAgICAgIGlu Y2x1ZGUgYSB0YWJsZSBvZiB0b2tlbiBuYW1lcwogIC15LCAtLXlhY2MgICAgICAgICAgICAgICAg ICAgICAgIGVtdWxhdGUgUE9TSVggWWFjYwoKT3V0cHV0IEZpbGVzOgogIC1ILCAtLWhlYWRlcj1b RklMRV0gICAgICAgICAgIGFsc28gcHJvZHVjZSBhIGhlYWRlciBmaWxlCiAgLWQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGlrZXdpc2UgYnV0IGNhbm5vdCBzcGVjaWZ5IEZJTEUgKGZvciBQ T1NJWCBZYWNjKQogIC1yLCAtLXJlcG9ydD1USElOR1MgICAgICAgICAgIGFsc28gcHJvZHVjZSBk ZXRhaWxzIG9uIHRoZSBhdXRvbWF0b24KICAgICAgLS1yZXBvcnQtZmlsZT1GSUxFICAgICAgICB3 cml0ZSByZXBvcnQgdG8gRklMRQogIC12LCAtLXZlcmJvc2UgICAgICAgICAgICAgICAgIHNhbWUg YXMgJy0tcmVwb3J0PXN0YXRlJwogIC1iLCAtLWZpbGUtcHJlZml4PVBSRUZJWCAgICAgIHNwZWNp ZnkgYSBQUkVGSVggZm9yIG91dHB1dCBmaWxlcwogIC1vLCAtLW91dHB1dD1GSUxFICAgICAgICAg ICAgIGxlYXZlIG91dHB1dCB0byBGSUxFCiAgLWcsIC0tZ3JhcGhbPUZJTEVdICAgICAgICAgICAg YWxzbyBvdXRwdXQgYSBncmFwaCBvZiB0aGUgYXV0b21hdG9uCiAgICAgIC0taHRtbFs9RklMRV0g ICAgICAgICAgICAgYWxzbyBvdXRwdXQgYW4gSFRNTCByZXBvcnQgb2YgdGhlIGF1dG9tYXRvbgog IC14LCAtLXhtbFs9RklMRV0gICAgICAgICAgICAgIGFsc28gb3V0cHV0IGFuIFhNTCByZXBvcnQg b2YgdGhlIGF1dG9tYXRvbgogIC1NLCAtLWZpbGUtcHJlZml4LW1hcD1PTEQ9TkVXIHJlcGxhY2Ug cHJlZml4IE9MRCB3aXRoIE5FVyB3aGVuIHdyaXRpbmcgZmlsZSBwYXRocwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGluIG91dHB1dCBmaWxlcwoKVEhJTkdTIGlzIGEgbGlzdCBvZiBj b21tYSBzZXBhcmF0ZWQgd29yZHMgdGhhdCBjYW4gaW5jbHVkZToKICBzdGF0ZXMgICAgICAgICAg ICBkZXNjcmliZSB0aGUgc3RhdGVzCiAgaXRlbXNldHMgICAgICAgICAgY29tcGxldGUgdGhlIGNv cmUgaXRlbSBzZXRzIHdpdGggdGhlaXIgY2xvc3VyZQogIGxvb2thaGVhZHMgICAgICAgIGV4cGxp Y2l0bHkgYXNzb2NpYXRlIGxvb2thaGVhZCB0b2tlbnMgdG8gaXRlbXMKICBzb2x2ZWQgICAgICAg ICAgICBkZXNjcmliZSBzaGlmdC9yZWR1Y2UgY29uZmxpY3RzIHNvbHZpbmcKICBjb3VudGVyZXhh bXBsZXMsIGNleAogICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlIGNvbmZsaWN0IGNvdW50ZXJl eGFtcGxlcwogIGFsbCAgICAgICAgICAgICAgIGluY2x1ZGUgYWxsIHRoZSBhYm92ZSBpbmZvcm1h dGlvbgogIG5vbmUgICAgICAgICAgICAgIGRpc2FibGUgdGhlIHJlcG9ydAoKUmVwb3J0IGJ1Z3Mg dG8gPGJ1Zy1iaXNvbkBnbnUub3JnPi4KR05VIEJpc29uIGhvbWUgcGFnZTogPGh0dHBzOi8vd3d3 LmdudS5vcmcvc29mdHdhcmUvYmlzb24vPi4KR2VuZXJhbCBoZWxwIHVzaW5nIEdOVSBzb2Z0d2Fy ZTogPGh0dHBzOi8vd3d3LmdudS5vcmcvZ2V0aGVscC8+LgpGb3IgY29tcGxldGUgZG9jdW1lbnRh dGlvbiwgcnVuOiBpbmZvIGJpc29uLgorIGNhdCAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS9jb25m aWcubG9nClRoaXMgZmlsZSBjb250YWlucyBhbnkgbWVzc2FnZXMgcHJvZHVjZWQgYnkgY29tcGls ZXJzIHdoaWxlCnJ1bm5pbmcgY29uZmlndXJlLCB0byBhaWQgZGVidWdnaW5nIGlmIGNvbmZpZ3Vy ZSBtYWtlcyBhIG1pc3Rha2UuCgpJdCB3YXMgY3JlYXRlZCBieSBHTlUgQXV0b21ha2UgY29uZmln dXJlIDEuMTguMS45MSwgd2hpY2ggd2FzCmdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi43My4g IEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcwoKICAkIC4vY29uZmlndXJlCgojIyAtLS0tLS0t LS0gIyMKIyMgUGxhdGZvcm0uICMjCiMjIC0tLS0tLS0tLSAjIwoKaG9zdG5hbWUgPSBuZXctaG9z dC0zLmhvbWUKdW5hbWUgLW0gPSBhcm02NAp1bmFtZSAtciA9IDI1LjUuMAp1bmFtZSAtcyA9IERh cndpbgp1bmFtZSAtdiA9IERhcndpbiBLZXJuZWwgVmVyc2lvbiAyNS41LjA6IFR1ZSBKdW4gIDkg MjI6MTg6NTggUERUIDIwMjY7IHJvb3Q6eG51LTEyMzc3LjEyMS4xMH4xL1JFTEVBU0VfQVJNNjRf VDYwMDAKCi91c3IvYmluL3VuYW1lIC1wID0gYXJtCi9iaW4vdW5hbWUgLVggICAgID0gdW5rbm93 bgoKL2Jpbi9hcmNoICAgICAgICAgICAgICA9IHVua25vd24KL3Vzci9iaW4vYXJjaCAtayAgICAg ICA9IHVua25vd24KL3Vzci9jb252ZXgvZ2V0c3lzaW5mbyA9IHVua25vd24KL3Vzci9iaW4vaG9z dGluZm8gICAgICA9IE1hY2gga2VybmVsIHZlcnNpb246CgkgRGFyd2luIEtlcm5lbCBWZXJzaW9u IDI1LjUuMDogVHVlIEp1biAgOSAyMjoxODo1OCBQRFQgMjAyNjsgcm9vdDp4bnUtMTIzNzcuMTIx LjEwfjEvUkVMRUFTRV9BUk02NF9UNjAwMApLZXJuZWwgY29uZmlndXJlZCBmb3IgdXAgdG8gMTAg cHJvY2Vzc29ycy4KMTAgcHJvY2Vzc29ycyBhcmUgcGh5c2ljYWxseSBhdmFpbGFibGUuCjEwIHBy b2Nlc3NvcnMgYXJlIGxvZ2ljYWxseSBhdmFpbGFibGUuClByb2Nlc3NvciB0eXBlOiBhcm02NGUg KEFSTTY0RSkKUHJvY2Vzc29ycyBhY3RpdmU6IDAgMSAyIDMgNCA1IDYgNyA4IDkKUHJpbWFyeSBt ZW1vcnkgYXZhaWxhYmxlOiAxNi4wMCBnaWdhYnl0ZXMKRGVmYXVsdCBwcm9jZXNzb3Igc2V0OiA3 MzMgdGFza3MsIDQ1ODMgdGhyZWFkcywgMTAgcHJvY2Vzc29ycwpMb2FkIGF2ZXJhZ2U6IDUuNDks IE1hY2ggZmFjdG9yOiA0LjcyCi9iaW4vbWFjaGluZSAgICAgICAgICAgPSB1bmtub3duCi91c3Iv YmluL29zbGV2ZWwgICAgICAgPSB1bmtub3duCi9iaW4vdW5pdmVyc2UgICAgICAgICAgPSB1bmtu b3duCgpQQVRIOiAuLwpQQVRIOiAvVXNlcnMvam9obnNvbmUvYmluL29zeC8KUEFUSDogL1VzZXJz L2pvaG5zb25lL2Jpbi8KUEFUSDogL3Vzci9sb2NhbC9iaW4vClBBVEg6IC9TeXN0ZW0vQ3J5cHRl eGVzL0FwcC91c3IvYmluLwpQQVRIOiAvdXNyL2Jpbi8KUEFUSDogL2Jpbi8KUEFUSDogL3Vzci9z YmluLwpQQVRIOiAvc2Jpbi8KUEFUSDogL3Zhci9ydW4vY29tLmFwcGxlLnNlY3VyaXR5LmNyeXB0 ZXhkL2NvZGV4LnN5c3RlbS9ib290c3RyYXAvdXNyL2xvY2FsL2Jpbi8KUEFUSDogL3Zhci9ydW4v Y29tLmFwcGxlLnNlY3VyaXR5LmNyeXB0ZXhkL2NvZGV4LnN5c3RlbS9ib290c3RyYXAvdXNyL2Jp bi8KUEFUSDogL3Zhci9ydW4vY29tLmFwcGxlLnNlY3VyaXR5LmNyeXB0ZXhkL2NvZGV4LnN5c3Rl bS9ib290c3RyYXAvdXNyL2FwcGxlaW50ZXJuYWwvYmluLwpQQVRIOiAvcGtnL2Vudi9nbG9iYWwv YmluLwpQQVRIOiAvb3B0L1gxMS9iaW4vClBBVEg6IC9MaWJyYXJ5L0FwcGxlL3Vzci9iaW4vClBB VEg6IC9MaWJyYXJ5L1RlWC90ZXhiaW4vClBBVEg6IC4vClBBVEg6IC9Vc2Vycy9qb2huc29uZS9i aW4vb3N4LwpQQVRIOiAvVXNlcnMvam9obnNvbmUvYmluLwoKCiMjIC0tLS0tLS0tLS0tICMjCiMj IENvcmUgdGVzdHMuICMjCiMjIC0tLS0tLS0tLS0tICMjCgpjb25maWd1cmU6MjQyMjogbG9va2lu ZyBmb3IgYXV4IGZpbGVzOiBjb21waWxlIG1pc3NpbmcgaW5zdGFsbC1zaCBjb25maWcuZ3Vlc3Mg Y29uZmlnLnN1Ygpjb25maWd1cmU6MjQzNTogIHRyeWluZyAuL2xpYi8KY29uZmlndXJlOjI0NjQ6 ICAgLi9saWIvY29tcGlsZSBmb3VuZApjb25maWd1cmU6MjQ2NDogICAuL2xpYi9taXNzaW5nIGZv dW5kCmNvbmZpZ3VyZToyNDQ2OiAgIC4vbGliL2luc3RhbGwtc2ggZm91bmQKY29uZmlndXJlOjI0 NjQ6ICAgLi9saWIvY29uZmlnLmd1ZXNzIGZvdW5kCmNvbmZpZ3VyZToyNDY0OiAgIC4vbGliL2Nv bmZpZy5zdWIgZm91bmQKY29uZmlndXJlOjI2MTE6IGNoZWNraW5nIHdoZXRoZXIgbWFrZSBzdXBw b3J0cyBuZXN0ZWQgdmFyaWFibGVzCmNvbmZpZ3VyZToyNjMwOiByZXN1bHQ6IHllcwpjb25maWd1 cmU6MjY0NjogY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUKY29uZmlndXJlOjI2NjI6IHJlc3Vs dDogYWFyY2g2NC1hcHBsZS1kYXJ3aW4yNS41LjAKY29uZmlndXJlOjI2ODI6IGNoZWNraW5nIGhv c3Qgc3lzdGVtIHR5cGUKY29uZmlndXJlOjI2OTc6IHJlc3VsdDogYWFyY2g2NC1hcHBsZS1kYXJ3 aW4yNS41LjAKY29uZmlndXJlOjI3NTE6IGNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGlu c3RhbGwKY29uZmlndXJlOjI4MjU6IHJlc3VsdDogL3Vzci9iaW4vaW5zdGFsbCAtYwpjb25maWd1 cmU6MjgzNjogY2hlY2tpbmcgd2hldGhlciBzbGVlcCBzdXBwb3J0cyBmcmFjdGlvbmFsIHNlY29u ZHMKY29uZmlndXJlOjI4NTI6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToyODU1OiBjaGVja2luZyBm aWxlc3lzdGVtIHRpbWVzdGFtcCByZXNvbHV0aW9uCmNvbmZpZ3VyZToyOTkwOiByZXN1bHQ6IDAu MDEKY29uZmlndXJlOjI5OTU6IGNoZWNraW5nIHdoZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMg c2FuZQpjb25maWd1cmU6MzA0MDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjMyMTE6IGNoZWNraW5n IGZvciBhIHJhY2UtZnJlZSBta2RpciAtcApjb25maWd1cmU6MzI1NDogcmVzdWx0OiBta2RpciAt cApjb25maWd1cmU6MzI2MTogY2hlY2tpbmcgZm9yIGdhd2sKY29uZmlndXJlOjMyOTc6IHJlc3Vs dDogbm8KY29uZmlndXJlOjMyNjE6IGNoZWNraW5nIGZvciBtYXdrCmNvbmZpZ3VyZTozMjk3OiBy ZXN1bHQ6IG5vCmNvbmZpZ3VyZTozMjYxOiBjaGVja2luZyBmb3IgbmF3awpjb25maWd1cmU6MzI5 NzogcmVzdWx0OiBubwpjb25maWd1cmU6MzI2MTogY2hlY2tpbmcgZm9yIGF3awpjb25maWd1cmU6 MzI4MjogZm91bmQgL3Vzci9iaW4vYXdrCmNvbmZpZ3VyZTozMjk0OiByZXN1bHQ6IGF3awpjb25m aWd1cmU6MzMwNTogY2hlY2tpbmcgd2hldGhlciBtYWtlIHNldHMgJChNQUtFKQpjb25maWd1cmU6 MzMyOTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjMzNTc6IGNoZWNraW5nIHhhcmdzIC1uIHdvcmtz CmNvbmZpZ3VyZTozMzczOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzQ1MzogY2hlY2tpbmcgd2hl dGhlciBVSUQgJzUwMScgaXMgc3VwcG9ydGVkIGJ5IHVzdGFyIGZvcm1hdApjb25maWd1cmU6MzQ1 OTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjM0NjY6IGNoZWNraW5nIHdoZXRoZXIgR0lEICcyMCcg aXMgc3VwcG9ydGVkIGJ5IHVzdGFyIGZvcm1hdApjb25maWd1cmU6MzQ3MjogcmVzdWx0OiB5ZXMK Y29uZmlndXJlOjM0ODA6IGNoZWNraW5nIGhvdyB0byBjcmVhdGUgYSB1c3RhciB0YXIgYXJjaGl2 ZQpjb25maWd1cmU6MzQ5MTogdGFyIC0tdmVyc2lvbiB8IGdyZXAgR05VID4vZGV2L251bGwKY29u ZmlndXJlOjM0OTQ6ICQ/ID0gMQpjb25maWd1cmU6MzQ5MTogZ251dGFyIC0tdmVyc2lvbiB8IGdy ZXAgR05VID4vZGV2L251bGwKLi9jb25maWd1cmU6IGxpbmUgMzQ5MjogZ251dGFyOiBjb21tYW5k IG5vdCBmb3VuZApjb25maWd1cmU6MzQ5NDogJD8gPSAxCmNvbmZpZ3VyZTozNDkxOiBndGFyIC0t dmVyc2lvbiB8IGdyZXAgR05VID4vZGV2L251bGwKLi9jb25maWd1cmU6IGxpbmUgMzQ5MjogZ3Rh cjogY29tbWFuZCBub3QgZm91bmQKY29uZmlndXJlOjM0OTQ6ICQ/ID0gMQpjb25maWd1cmU6MzUz NDogdGFyZGlyPWNvbmZ0ZXN0LmRpciAmJiBldmFsIGd0YXIgLS1mb3JtYXQ9dXN0YXIgLWNoZiAt ICIkdGFyZGlyIiA+Y29uZnRlc3QudGFyCi4vY29uZmlndXJlOiBsaW5lIDM1MzU6IGd0YXI6IGNv bW1hbmQgbm90IGZvdW5kCmNvbmZpZ3VyZTozNTM3OiAkPyA9IDEyNwpjb25maWd1cmU6MzUzNDog dGFyZGlyPWNvbmZ0ZXN0LmRpciAmJiBldmFsIHRhciBjaGYgLSAiJHRhcmRpciIgPmNvbmZ0ZXN0 LnRhcgpjb25maWd1cmU6MzUzNzogJD8gPSAwCmNvbmZpZ3VyZTozNTQxOiB0YXIgeGYgLSA8Y29u ZnRlc3QudGFyCmNvbmZpZ3VyZTozNTQ0OiAkPyA9IDAKY29uZmlndXJlOjM1NDY6IGNhdCBjb25m dGVzdC5kaXIvZmlsZQpHcmVwTWUKY29uZmlndXJlOjM1NDk6ICQ/ID0gMApjb25maWd1cmU6MzU2 NDogcmVzdWx0OiBwbGFpbnRhcgpjb25maWd1cmU6MzYxOTogY2hlY2tpbmcgd2hldGhlciBsbiAt cyB3b3Jrcwpjb25maWd1cmU6MzYyMzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjM2MzM6IGNoZWNr aW5nIGZvciBwZXJsCmNvbmZpZ3VyZTozNjU2OiBmb3VuZCAvdXNyL2Jpbi9wZXJsCmNvbmZpZ3Vy ZTozNjY5OiByZXN1bHQ6IC91c3IvYmluL3BlcmwKY29uZmlndXJlOjM2OTY6IC91c3IvYmluL3Bl cmwgLS12ZXJzaW9uCgpUaGlzIGlzIHBlcmwgNSwgdmVyc2lvbiAzNCwgc3VidmVyc2lvbiAxICh2 NS4zNC4xKSBidWlsdCBmb3IgZGFyd2luLXRocmVhZC1tdWx0aS0ybGV2ZWwKKHdpdGggMiByZWdp c3RlcmVkIHBhdGNoZXMsIHNlZSBwZXJsIC1WIGZvciBtb3JlIGRldGFpbCkKCkNvcHlyaWdodCAx OTg3LTIwMjIsIExhcnJ5IFdhbGwKClBlcmwgbWF5IGJlIGNvcGllZCBvbmx5IHVuZGVyIHRoZSB0 ZXJtcyBvZiBlaXRoZXIgdGhlIEFydGlzdGljIExpY2Vuc2Ugb3IgdGhlCkdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlLCB3aGljaCBtYXkgYmUgZm91bmQgaW4gdGhlIFBlcmwgNSBzb3VyY2Uga2l0 LgoKQ29tcGxldGUgZG9jdW1lbnRhdGlvbiBmb3IgUGVybCwgaW5jbHVkaW5nIEZBUSBsaXN0cywg c2hvdWxkIGJlIGZvdW5kIG9uCnRoaXMgc3lzdGVtIHVzaW5nICJtYW4gcGVybCIgb3IgInBlcmxk b2MgcGVybCIuICBJZiB5b3UgaGF2ZSBhY2Nlc3MgdG8gdGhlCkludGVybmV0LCBwb2ludCB5b3Vy IGJyb3dzZXIgYXQgaHR0cDovL3d3dy5wZXJsLm9yZy8sIHRoZSBQZXJsIEhvbWUgUGFnZS4KCmNv bmZpZ3VyZTozNjk5OiAkPyA9IDAKY29uZmlndXJlOjM3MTE6IGNoZWNraW5nIGZvciB0ZXgKY29u ZmlndXJlOjM3MzI6IGZvdW5kIC9MaWJyYXJ5L1RlWC90ZXhiaW4vdGV4CmNvbmZpZ3VyZTozNzQ0 OiByZXN1bHQ6IHRleApjb25maWd1cmU6Mzc1NTogdGV4IC0tdmVyc2lvbiA8L2Rldi9udWxsClRl WCAzLjE0MTU5MjY1MyAoVGVYIExpdmUgMjAyNikKa3BhdGhzZWEgdmVyc2lvbiA2LjQuMgpDb3B5 cmlnaHQgMjAyNiBELkUuIEtudXRoLgpUaGVyZSBpcyBOTyB3YXJyYW50eS4gIFJlZGlzdHJpYnV0 aW9uIG9mIHRoaXMgc29mdHdhcmUgaXMKY292ZXJlZCBieSB0aGUgdGVybXMgb2YgYm90aCB0aGUg VGVYIGNvcHlyaWdodCBhbmQKdGhlIExlc3NlciBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4K Rm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlc2UgbWF0dGVycywgc2VlIHRoZSBmaWxlCm5h bWVkIENPUFlJTkcgYW5kIHRoZSBUZVggc291cmNlLgpQcmltYXJ5IGF1dGhvciBvZiBUZVg6IEQu RS4gS251dGguCmNvbmZpZ3VyZTozNzU4OiAkPyA9IDAKY29uZmlndXJlOjM3NzY6IGNoZWNraW5n IGZvciB5YWNjCmNvbmZpZ3VyZTozNzk3OiBmb3VuZCAvdXNyL2Jpbi95YWNjCmNvbmZpZ3VyZToz ODA5OiByZXN1bHQ6IHlhY2MKY29uZmlndXJlOjM4MjU6IGNoZWNraW5nIGZvciBsZXgKY29uZmln dXJlOjM4NDY6IGZvdW5kIC91c3IvYmluL2xleApjb25maWd1cmU6Mzg1ODogcmVzdWx0OiBsZXgK Y29uZmlndXJlOjM4Nzk6IGNoZWNraW5nIHdoZXRoZXIgYXV0b2NvbmYgaXMgaW5zdGFsbGVkCmNv bmZpZ3VyZTozODg1OiBhdXRvY29uZiAtLXZlcnNpb24KYXV0b2NvbmYgKEdOVSBBdXRvY29uZikg Mi43MwpDb3B5cmlnaHQgKEMpIDIwMjYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCkxp Y2Vuc2UgR1BMdjMrL0F1dG9jb25mOiBHTlUgR1BMIHZlcnNpb24gMyBvciBsYXRlcgo8aHR0cHM6 Ly9nbnUub3JnL2xpY2Vuc2VzL2dwbC5odG1sPiwgPGh0dHBzOi8vZ251Lm9yZy9saWNlbnNlcy9l eGNlcHRpb25zLmh0bWw+ClRoaXMgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGFyZSBmcmVlIHRvIGNo YW5nZSBhbmQgcmVkaXN0cmlidXRlIGl0LgpUaGVyZSBpcyBOTyBXQVJSQU5UWSwgdG8gdGhlIGV4 dGVudCBwZXJtaXR0ZWQgYnkgbGF3LgoKV3JpdHRlbiBieSBEYXZpZCBKLiBNYWNLZW56aWUgYW5k IEFraW0gRGVtYWlsbGUuCmNvbmZpZ3VyZTozODg4OiAkPyA9IDAKY29uZmlndXJlOjM4OTc6IHJl c3VsdDogeWVzCmNvbmZpZ3VyZTozOTA0OiBjaGVja2luZyB3aGV0aGVyIGF1dG9jb25mIHdvcmtz CmNvbmZpZ3VyZTozOTE0OiBjZCBjb25mdGVzdCAmJiBhdXRvY29uZiAtbyAvZGV2L251bGwgY29u ZnRlc3QuYWMKY29uZmlndXJlOjM5MTc6ICQ/ID0gMApjb25maWd1cmU6MzkyNzogcmVzdWx0OiB5 ZXMKY29uZmlndXJlOjM5MzQ6IGNoZWNraW5nIHdoZXRoZXIgYXV0b2NvbmYgaXMgcmVjZW50IGVu b3VnaApjb25maWd1cmU6Mzk0NTogY2QgY29uZnRlc3QgJiYgYXV0b2NvbmYgLW8gL2Rldi9udWxs IGNvbmZ0ZXN0LmFjCmNvbmZpZ3VyZTozOTQ4OiAkPyA9IDAKY29uZmlndXJlOjM5NTg6IHJlc3Vs dDogeWVzCmNvbmZpZ3VyZTozOTY1OiBjaGVja2luZyB3aGV0aGVyIGxuIHdvcmtzCmNvbmZpZ3Vy ZTozOTg3OiByZXN1bHQ6IHllcwpjb25maWd1cmU6Mzk5NDogY2hlY2tpbmcgZm9yIGdyZXAgdGhh dCBoYW5kbGVzIGxvbmcgbGluZXMgYW5kIC1lCmNvbmZpZ3VyZTo0MDYwOiByZXN1bHQ6IC91c3Iv YmluL2dyZXAKY29uZmlndXJlOjQwNjU6IGNoZWNraW5nIGZvciBlZ3JlcApjb25maWd1cmU6NDEz NTogcmVzdWx0OiAvdXNyL2Jpbi9ncmVwIC1FCmNvbmZpZ3VyZTo0MTQyOiBjaGVja2luZyBmb3Ig ZmdyZXAKY29uZmlndXJlOjQyMTI6IHJlc3VsdDogL3Vzci9iaW4vZ3JlcCAtRgpjb25maWd1cmU6 NDI2Njogd2lsbCBub3cgbG9vayBmb3IgYSBzdHVyZHkgUE9TSVggc2hlbGwsIGZvciBvdXIgdGVz dHN1aXRlCmNvbmZpZ3VyZTo0MzA1OiBjaGVja2luZyBmb3Igc2gKY29uZmlndXJlOjQzMjg6IGZv dW5kIC9iaW4vc2gKY29uZmlndXJlOjQzNDE6IHJlc3VsdDogL2Jpbi9zaApjb25maWd1cmU6NDMw NTogY2hlY2tpbmcgZm9yIHNoNQpjb25maWd1cmU6NDM0NDogcmVzdWx0OiBubwpjb25maWd1cmU6 NDMwNTogY2hlY2tpbmcgZm9yIGRhc2gKY29uZmlndXJlOjQzMjg6IGZvdW5kIC9iaW4vZGFzaApj b25maWd1cmU6NDM0MTogcmVzdWx0OiAvYmluL2Rhc2gKY29uZmlndXJlOjQzMDU6IGNoZWNraW5n IGZvciBhc2gKY29uZmlndXJlOjQzNDQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjQzMDU6IGNoZWNr aW5nIGZvciBiYXNoCmNvbmZpZ3VyZTo0MzI4OiBmb3VuZCAvYmluL2Jhc2gKY29uZmlndXJlOjQz NDE6IHJlc3VsdDogL2Jpbi9iYXNoCmNvbmZpZ3VyZTo0MzA1OiBjaGVja2luZyBmb3IgenNoCmNv bmZpZ3VyZTo0MzI4OiBmb3VuZCAvYmluL3pzaApjb25maWd1cmU6NDM0MTogcmVzdWx0OiAvYmlu L3pzaApjb25maWd1cmU6NDMwNTogY2hlY2tpbmcgZm9yIGtzaApjb25maWd1cmU6NDMyODogZm91 bmQgL2Jpbi9rc2gKY29uZmlndXJlOjQzNDE6IHJlc3VsdDogL2Jpbi9rc2gKY29uZmlndXJlOjQz MDU6IGNoZWNraW5nIGZvciBwZGtzaApjb25maWd1cmU6NDM0NDogcmVzdWx0OiBubwpjb25maWd1 cmU6NDM2NTogY2hlY2tpbmcgd2hldGhlciAvYmluL3NoIHN1cHBvcnRzICQoY21kKQpjb25maWd1 cmU6NDM3NTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQzODU6IGNoZWNraW5nIHdoZXRoZXIgL2Jp bi9zaCBzdXBwb3J0cyAkKChleHByKSkKY29uZmlndXJlOjQzOTU6IHJlc3VsdDogeWVzCmNvbmZp Z3VyZTo0NDA1OiBjaGVja2luZyB3aGV0aGVyIC9iaW4vc2ggc3VwcG9ydHMgJHsjdmFyfQpjb25m aWd1cmU6NDQxODogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ0Mjg6IGNoZWNraW5nIHdoZXRoZXIg L2Jpbi9zaCBzdXBwb3J0cyAke3ZhciNnbG9ifSBhbmQgJHt2YXIlZ2xvYn0KY29uZmlndXJlOjQ0 NDI6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0NDUyOiBjaGVja2luZyB3aGV0aGVyIC9iaW4vc2gg cHJlc2VydmVzIGV4aXQgdHJhcHMgd2l0aCAic2V0IC1lIgpjb25maWd1cmU6NDQ2MjogcmVzdWx0 OiB5ZXMKY29uZmlndXJlOjQ0NzI6IGNoZWNraW5nIHdoZXRoZXIgL2Jpbi9zaCBjYW4gZGVmaW5l IGV4aXQgdHJhcHMgaW4gYSBzaGVsbCBmdW5jdGlvbgpjb25maWd1cmU6NDQ4MjogcmVzdWx0OiB5 ZXMKY29uZmlndXJlOjQ0OTI6IGNoZWNraW5nIHdoZXRoZXIgL2Jpbi9zaCBjb3JydXB0cyBzdGRl cnIgd2l0aCAic2V0IC14Igpjb25maWd1cmU6NDUwNjogcmVzdWx0OiBubwpjb25maWd1cmU6NDUx NDogY2hlY2tpbmcgd2hldGhlciAvYmluL3NoIGNhbiByZXR1cm4gZWFybHkgZnJvbSAiZG90LXNv dXJjZWQiIGZpbGVzCmNvbmZpZ3VyZTo0NTI0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDUzNjog Y2hlY2tpbmcgd2hldGhlciAvYmluL3NoIHN1cHBvcnRzIGFsaWFzIG5hbWVkIGxpa2Ugc2hlbGwg YnVpbHRpbnMKCmNvbmZpZ3VyZTo0NTQ2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDU1NjogY2hl Y2tpbmcgd2hldGhlciAvYmluL3NoIHN1cHBvcnRzICJ0ZXN0IC1lIgpjb25maWd1cmU6NDU2Njog cmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ1ODQ6IHNoZWxsIC9iaW4vc2ggaXMgZ29vZCBlbm91Z2gs IHN0b3AgbG9va2luZwpjb25maWd1cmU6NDYwMjogd2lsbCB1c2UgL2Jpbi9zaCBhcyB0aGUgdGVz dHN1aXRlIHNoZWxsCmNvbmZpZ3VyZTo0NjI2OiB3aWxsIG5vdyBsb29rIGZvciBnZW5lcmljIGNv bXBpbGVycwpjb25maWd1cmU6NDcwNzogY2hlY2tpbmcgZm9yIGNjCmNvbmZpZ3VyZTo0NzI4OiBm b3VuZCAvdXNyL2Jpbi9jYwpjb25maWd1cmU6NDc0MDogcmVzdWx0OiBjYwpjb25maWd1cmU6NDc3 MzogY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgdmVyc2lvbgpjb25maWd1cmU6NDc4MjogY2MgLS12 ZXJzaW9uID4mNQpBcHBsZSBjbGFuZyB2ZXJzaW9uIDIxLjAuMCAoY2xhbmctMjEwMC4xLjEuMTAx KQpUYXJnZXQ6IGFybTY0LWFwcGxlLWRhcndpbjI1LjUuMApUaHJlYWQgbW9kZWw6IHBvc2l4Cklu c3RhbGxlZERpcjogL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1Rv b2xjaGFpbnMvWGNvZGVEZWZhdWx0LnhjdG9vbGNoYWluL3Vzci9iaW4KY29uZmlndXJlOjQ3OTM6 ICQ/ID0gMApjb25maWd1cmU6NDc4MjogY2MgLXYgPiY1CkFwcGxlIGNsYW5nIHZlcnNpb24gMjEu MC4wIChjbGFuZy0yMTAwLjEuMS4xMDEpClRhcmdldDogYXJtNjQtYXBwbGUtZGFyd2luMjUuNS4w ClRocmVhZCBtb2RlbDogcG9zaXgKSW5zdGFsbGVkRGlyOiAvQXBwbGljYXRpb25zL1hjb2RlLmFw cC9Db250ZW50cy9EZXZlbG9wZXIvVG9vbGNoYWlucy9YY29kZURlZmF1bHQueGN0b29sY2hhaW4v dXNyL2Jpbgpjb25maWd1cmU6NDc5MzogJD8gPSAwCmNvbmZpZ3VyZTo0NzgyOiBjYyAtViA+JjUK Y2xhbmc6IGVycm9yOiBhcmd1bWVudCB0byAnLVYnIGlzIG1pc3NpbmcgKGV4cGVjdGVkIDEgdmFs dWUpCmNsYW5nOiBlcnJvcjogbm8gaW5wdXQgZmlsZXMKY29uZmlndXJlOjQ3OTM6ICQ/ID0gMQpj b25maWd1cmU6NDc4MjogY2MgLXF2ZXJzaW9uID4mNQpjbGFuZzogZXJyb3I6IHVua25vd24gYXJn dW1lbnQgJy1xdmVyc2lvbic7IGRpZCB5b3UgbWVhbiAnLS12ZXJzaW9uJz8KY2xhbmc6IGVycm9y OiBubyBpbnB1dCBmaWxlcwpjb25maWd1cmU6NDc5MzogJD8gPSAxCmNvbmZpZ3VyZTo0NzgyOiBj YyAtdmVyc2lvbiA+JjUKY2xhbmc6IGVycm9yOiB1bmtub3duIGFyZ3VtZW50ICctdmVyc2lvbic7 IGRpZCB5b3UgbWVhbiAnLS12ZXJzaW9uJz8KY2xhbmc6IGVycm9yOiBubyBpbnB1dCBmaWxlcwpj b25maWd1cmU6NDc5MzogJD8gPSAxCmNvbmZpZ3VyZTo0ODEzOiBjaGVja2luZyB3aGV0aGVyIHRo ZSBDIGNvbXBpbGVyIHdvcmtzCmNvbmZpZ3VyZTo0ODM1OiBjYyAgICBjb25mdGVzdC5jICA+JjUK Y29uZmlndXJlOjQ4Mzk6ICQ/ID0gMApjb25maWd1cmU6NDg5MjogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjQ4OTY6IGNoZWNraW5nIGZvciBDIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFt ZQpjb25maWd1cmU6NDg5ODogcmVzdWx0OiBhLm91dApjb25maWd1cmU6NDkwNDogY2hlY2tpbmcg Zm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcwpjb25maWd1cmU6NDkxMTogY2MgLW8gY29uZnRlc3Qg ICAgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo0OTE1OiAkPyA9IDAKY29uZmlndXJlOjQ5NDE6 IHJlc3VsdDogCmNvbmZpZ3VyZTo0OTY1OiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSBjcm9zcyBj b21waWxpbmcKY29uZmlndXJlOjQ5NzM6IGNjIC1vIGNvbmZ0ZXN0ICAgIGNvbmZ0ZXN0LmMgID4m NQpjb25maWd1cmU6NDk3NzogJD8gPSAwCmNvbmZpZ3VyZTo0OTg0OiAuL2NvbmZ0ZXN0CmNvbmZp Z3VyZTo0OTg4OiAkPyA9IDAKY29uZmlndXJlOjUwMDY6IHJlc3VsdDogbm8KY29uZmlndXJlOjUw MTI6IGNoZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzCmNvbmZpZ3VyZTo1MDM1OiBj YyAtYyAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo1MDM5OiAkPyA9IDAKY29uZmlndXJlOjUw NjU6IHJlc3VsdDogbwpjb25maWd1cmU6NTA2OTogY2hlY2tpbmcgd2hldGhlciB0aGUgY29tcGls ZXIgc3VwcG9ydHMgR05VIEMKY29uZmlndXJlOjUwODk6IGNjIC1jICAgY29uZnRlc3QuYyA+JjUK Y29uZmlndXJlOjUwODk6ICQ/ID0gMApjb25maWd1cmU6NTEwMTogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjUxMTI6IGNoZWNraW5nIHdoZXRoZXIgY2MgYWNjZXB0cyAtZwpjb25maWd1cmU6NTEzMzog Y2MgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo1MTMzOiAkPyA9IDAKY29uZmlndXJl OjUxODA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo1MjAwOiBjaGVja2luZyBmb3IgY2Mgb3B0aW9u IHRvIGVuYWJsZSBDMjMgZmVhdHVyZXMKY29uZmlndXJlOjUyMTU6IGNjICAtYyAtZyAtTzIgIGNv bmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6MTQ6MzogZXJyb3I6ICJDb21waWxlciBhZHZlcnRpc2Vz IGNvbmZvcm1hbmNlIHRvIEMxNyBvciBlYXJsaWVyIgogICAxNCB8ICMgZXJyb3IgIkNvbXBpbGVy IGFkdmVydGlzZXMgY29uZm9ybWFuY2UgdG8gQzE3IG9yIGVhcmxpZXIiCiAgICAgIHwgICBeCmNv bmZ0ZXN0LmM6MTg6MjM6IGVycm9yOiBleHBlY3RlZCBmdW5jdGlvbiBib2R5IGFmdGVyIGZ1bmN0 aW9uIGRlY2xhcmF0b3IKICAgMTggfCBjaGFyIGFsaWduYXMgKGRvdWJsZSkgYzIzX2FsaWduZWRf YXNfZG91YmxlOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICBeCmNvbmZ0ZXN0LmM6MTk6 MTU6IGVycm9yOiBleHBlY3RlZCBwYXJhbWV0ZXIgZGVjbGFyYXRvcgogICAxOSB8IGNoYXIgYWxp Z25hcyAoMCkgYzIzX25vX3NwZWNpYWxfYWxpZ25tZW50OwogICAgICB8ICAgICAgICAgICAgICAg Xgpjb25mdGVzdC5jOjE5OjE1OiBlcnJvcjogZXhwZWN0ZWQgJyknCmNvbmZ0ZXN0LmM6MTk6MTQ6 IG5vdGU6IHRvIG1hdGNoIHRoaXMgJygnCiAgIDE5IHwgY2hhciBhbGlnbmFzICgwKSBjMjNfbm9f c3BlY2lhbF9hbGlnbm1lbnQ7CiAgICAgIHwgICAgICAgICAgICAgIF4KY29uZnRlc3QuYzoxOTox ODogZXJyb3I6IGV4cGVjdGVkIGZ1bmN0aW9uIGJvZHkgYWZ0ZXIgZnVuY3Rpb24gZGVjbGFyYXRv cgogICAxOSB8IGNoYXIgYWxpZ25hcyAoMCkgYzIzX25vX3NwZWNpYWxfYWxpZ25tZW50OwogICAg ICB8ICAgICAgICAgICAgICAgICAgXgpjb25mdGVzdC5jOjIxOjE1OiBlcnJvcjogZXhwZWN0ZWQg cGFyYW1ldGVyIGRlY2xhcmF0b3IKICAgMjEgfCBjaGFyIGFsaWduYXMgKDApIGFsaWduYXMgKGlu dCkgYzIzX2FsaWduZWRfYXNfaW50OwogICAgICB8ICAgICAgICAgICAgICAgXgpjb25mdGVzdC5j OjIxOjE1OiBlcnJvcjogZXhwZWN0ZWQgJyknCmNvbmZ0ZXN0LmM6MjE6MTQ6IG5vdGU6IHRvIG1h dGNoIHRoaXMgJygnCiAgIDIxIHwgY2hhciBhbGlnbmFzICgwKSBhbGlnbmFzIChpbnQpIGMyM19h bGlnbmVkX2FzX2ludDsKICAgICAgfCAgICAgICAgICAgICAgXgpjb25mdGVzdC5jOjIxOjE4OiBl cnJvcjogZXhwZWN0ZWQgZnVuY3Rpb24gYm9keSBhZnRlciBmdW5jdGlvbiBkZWNsYXJhdG9yCiAg IDIxIHwgY2hhciBhbGlnbmFzICgwKSBhbGlnbmFzIChpbnQpIGMyM19hbGlnbmVkX2FzX2ludDsK ICAgICAgfCAgICAgICAgICAgICAgICAgIF4KY29uZnRlc3QuYzoyNjoyMzogZXJyb3I6IGNhbGwg dG8gdW5kZWNsYXJlZCBmdW5jdGlvbiAnYWxpZ25vZic7IElTTyBDOTkgYW5kIGxhdGVyIGRvIG5v dCBzdXBwb3J0IGltcGxpY2l0IGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyBbLVdpbXBsaWNpdC1mdW5j dGlvbi1kZWNsYXJhdGlvbl0KICAgMjYgfCAgIGMyM19pbnRfYWxpZ25tZW50ID0gYWxpZ25vZiAo aW50KSwKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgXgpjb25mdGVzdC5jOjI2OjMyOiBl cnJvcjogZXhwZWN0ZWQgZXhwcmVzc2lvbgogICAyNiB8ICAgYzIzX2ludF9hbGlnbm1lbnQgPSBh bGlnbm9mIChpbnQpLAogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCmNv bmZ0ZXN0LmM6Mjc6Mzg6IGVycm9yOiBleHBlY3RlZCBleHByZXNzaW9uCiAgIDI3IHwgICBjMjNf aW50X2FycmF5X2FsaWdubWVudCA9IGFsaWdub2YgKGludFsxMDBdKSwKICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpjb25mdGVzdC5jOjI4OjMzOiBlcnJvcjog ZXhwZWN0ZWQgZXhwcmVzc2lvbgogICAyOCB8ICAgYzIzX2NoYXJfYWxpZ25tZW50ID0gYWxpZ25v ZiAoY2hhcikKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KY29uZnRl c3QuYzozMDoxNjogZXJyb3I6IGV4cGVjdGVkIHBhcmFtZXRlciBkZWNsYXJhdG9yCiAgIDMwIHwg c3RhdGljX2Fzc2VydCAoMCA8IC1hbGlnbm9mIChpbnQpLCAiYWxpZ25vZiBpcyBzaWduZWQiKTsK ICAgICAgfCAgICAgICAgICAgICAgICBeCmNvbmZ0ZXN0LmM6MzA6MTY6IGVycm9yOiBleHBlY3Rl ZCAnKScKY29uZnRlc3QuYzozMDoxNTogbm90ZTogdG8gbWF0Y2ggdGhpcyAnKCcKICAgMzAgfCBz dGF0aWNfYXNzZXJ0ICgwIDwgLWFsaWdub2YgKGludCksICJhbGlnbm9mIGlzIHNpZ25lZCIpOwog ICAgICB8ICAgICAgICAgICAgICAgXgpjb25mdGVzdC5jOjMwOjE6IGVycm9yOiB0eXBlIHNwZWNp ZmllciBtaXNzaW5nLCBkZWZhdWx0cyB0byAnaW50JzsgSVNPIEM5OSBhbmQgbGF0ZXIgZG8gbm90 IHN1cHBvcnQgaW1wbGljaXQgaW50IFstV2ltcGxpY2l0LWludF0KICAgMzAgfCBzdGF0aWNfYXNz ZXJ0ICgwIDwgLWFsaWdub2YgKGludCksICJhbGlnbm9mIGlzIHNpZ25lZCIpOwogICAgICB8IF4K ICAgICAgfCBpbnQKY29uZnRlc3QuYzozMjo0MTogd2FybmluZzogb21pdHRpbmcgdGhlIHBhcmFt ZXRlciBuYW1lIGluIGEgZnVuY3Rpb24gZGVmaW5pdGlvbiBpcyBhIEMyMyBleHRlbnNpb24gWy1X YzIzLWV4dGVuc2lvbnNdCiAgIDMyIHwgaW50IGZ1bmN0aW9uX3dpdGhfdW5uYW1lZF9wYXJhbWV0 ZXIgKGludCkgeyByZXR1cm4gMDsgfQogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCmNvbmZ0ZXN0LmM6Mzg6MTogZXJyb3I6IHVua25vd24gdHlwZSBuYW1l ICdib29sJwogICAzOCB8IGJvb2wgdXNlX3U4ID0gKCFzaXplb2YgdTgiXHhGRiIpID09ICghdTgn eCcpOwogICAgICB8IF4KY29uZnRlc3QuYzozODozOTogZXJyb3I6IHVzZSBvZiB1bmRlY2xhcmVk IGlkZW50aWZpZXIgJ3U4JwogICAzOCB8IGJvb2wgdXNlX3U4ID0gKCFzaXplb2YgdTgiXHhGRiIp ID09ICghdTgneCcpOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXn4KY29uZnRlc3QuYzo0MDoxOiBlcnJvcjogdW5rbm93biB0eXBlIG5hbWUgJ2Jvb2wnCiAg IDQwIHwgYm9vbCBjaGVja190aGF0X2Jvb2xfd29ya3MgPSB0cnVlIHwgZmFsc2UgfCAhbnVsbHB0 cjsKICAgICAgfCBeCmNvbmZ0ZXN0LmM6NDA6MzA6IGVycm9yOiB1c2Ugb2YgdW5kZWNsYXJlZCBp ZGVudGlmaWVyICd0cnVlJwogICA0MCB8IGJvb2wgY2hlY2tfdGhhdF9ib29sX3dvcmtzID0gdHJ1 ZSB8IGZhbHNlIHwgIW51bGxwdHI7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBefn5+CmZhdGFsIGVycm9yOiB0b28gbWFueSBlcnJvcnMgZW1pdHRlZCwgc3RvcHBpbmcgbm93 IFstZmVycm9yLWxpbWl0PV0KMSB3YXJuaW5nIGFuZCAyMCBlcnJvcnMgZ2VuZXJhdGVkLgpjb25m aWd1cmU6NTIxNTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNv bmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEF1dG9tYWtlIgp8ICNkZWZp bmUgUEFDS0FHRV9UQVJOQU1FICJhdXRvbWFrZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi MS4xOC4xLjkxIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBBdXRvbWFrZSAxLjE4LjEu OTEiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWF1dG9tYWtlQGdudS5vcmciCnwg I2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9hdXRvbWFr ZS8iCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8IC8qIERvZXMgdGhlIGNvbXBpbGVyIGFk dmVydGlzZSBjb25mb3JtYW5jZSB0byBDMTcgb3IgZWFybGllcj8KfCAgICBBbHRob3VnaCBHQ0Mg MTQgZG9lcyBub3QgZG8gdGhhdCwgZXZlbiB3aXRoIC1zdGQ9Z251MjMsCnwgICAgaXQgaXMgY2xv c2UgZW5vdWdoLCBhbmQgZGVmaW5lcyBfX1NURENfVkVSU0lPTiA9PSAyMDIwMDBMLiAgKi8KfCAj aWYgIWRlZmluZWQgX19TVERDX1ZFUlNJT05fXyB8fCBfX1NURENfVkVSU0lPTl9fIDw9IDIwMTcx MEwKfCAjIGVycm9yICJDb21waWxlciBhZHZlcnRpc2VzIGNvbmZvcm1hbmNlIHRvIEMxNyBvciBl YXJsaWVyIgp8ICNlbmRpZgp8IAp8IC8vIENoZWNrIGFsaWduYXMuCnwgY2hhciBhbGlnbmFzIChk b3VibGUpIGMyM19hbGlnbmVkX2FzX2RvdWJsZTsKfCBjaGFyIGFsaWduYXMgKDApIGMyM19ub19z cGVjaWFsX2FsaWdubWVudDsKfCBleHRlcm4gY2hhciBjMjNfYWxpZ25lZF9hc19pbnQ7CnwgY2hh ciBhbGlnbmFzICgwKSBhbGlnbmFzIChpbnQpIGMyM19hbGlnbmVkX2FzX2ludDsKfCAKfCAvLyBD aGVjayBhbGlnbm9mLgp8IGVudW0KfCB7CnwgICBjMjNfaW50X2FsaWdubWVudCA9IGFsaWdub2Yg KGludCksCnwgICBjMjNfaW50X2FycmF5X2FsaWdubWVudCA9IGFsaWdub2YgKGludFsxMDBdKSwK fCAgIGMyM19jaGFyX2FsaWdubWVudCA9IGFsaWdub2YgKGNoYXIpCnwgfTsKfCBzdGF0aWNfYXNz ZXJ0ICgwIDwgLWFsaWdub2YgKGludCksICJhbGlnbm9mIGlzIHNpZ25lZCIpOwp8IAp8IGludCBm dW5jdGlvbl93aXRoX3VubmFtZWRfcGFyYW1ldGVyIChpbnQpIHsgcmV0dXJuIDA7IH0KfCAKfCB2 b2lkIGMyM19ub3JldHVybiAoKTsKfCAKfCAvKiBUZXN0IHBhcnNpbmcgb2Ygc3RyaW5nIGFuZCBj aGFyIFVURi04IGxpdGVyYWxzIChpbmNsdWRpbmcgaGV4IGVzY2FwZXMpLgp8ICAgIFRoZSBwYXJl bnMgcGFjaWZ5IEdDQyAxNS4gICovCnwgYm9vbCB1c2VfdTggPSAoIXNpemVvZiB1OCJceEZGIikg PT0gKCF1OCd4Jyk7CnwgCnwgYm9vbCBjaGVja190aGF0X2Jvb2xfd29ya3MgPSB0cnVlIHwgZmFs c2UgfCAhbnVsbHB0cjsKfCAjaWYgIXRydWUKfCAjIGVycm9yICJ0cnVlIGRvZXMgbm90IHdvcmsg aW4gI2lmIgp8ICNlbmRpZgp8ICNpZiBmYWxzZQp8ICNlbGlmZGVmIF9fU1REQ19WRVJTSU9OX18K fCAjZWxzZQp8ICMgZXJyb3IgIiNlbGlmZGVmIGRvZXMgbm90IHdvcmsiCnwgI2VuZGlmCnwgCnwg I2lmbmRlZiBfX2hhc19jX2F0dHJpYnV0ZQp8ICMgZXJyb3IgIl9faGFzX2NfYXR0cmlidXRlIG5v dCBkZWZpbmVkIgp8ICNlbmRpZgp8IAp8ICNpZm5kZWYgX19oYXNfaW5jbHVkZQp8ICMgZXJyb3Ig Il9faGFzX2luY2x1ZGUgbm90IGRlZmluZWQiCnwgI2VuZGlmCnwgCnwgI2RlZmluZSBMUEFSRU4o KSAoCnwgI2RlZmluZSBGT1JUWV9UV08oeCkgNDIKfCAjZGVmaW5lIFZBX09QVF9URVNUKHIsIHgs IC4uLikgX19WQV9PUFRfXyAoRk9SVFlfVFdPIHIgeCkpCnwgc3RhdGljX2Fzc2VydCAoVkFfT1BU X1RFU1QgKExQQVJFTiAoKSwgMCwgPDotKSA9PSA0Mik7CnwgCnwgc3RhdGljX2Fzc2VydCAoMGIx MDEwMTAgPT0gNDIpOwp8IHN0YXRpY19hc3NlcnQgKDBCMTAxMDEwID09IDQyKTsKfCBzdGF0aWNf YXNzZXJ0ICgweERFQUQnQkVFRiA9PSAzJzczNSc5MjgnNTU5KTsKfCBzdGF0aWNfYXNzZXJ0ICgw LjUwMCcwMDAnMDAwID09IDAuNSk7CnwgCnwgZW51bSB1bnNpZ25lZGlzaCA6IHVuc2lnbmVkIGlu dCB7IHVpb25lID0gMSB9Owp8IHN0YXRpY19hc3NlcnQgKDAgPCAtdWlvbmUpOwp8IAp8ICNpbmNs dWRlIDxzdGRkZWYuaD4KfCBjb25zdGV4cHIgbnVsbHB0cl90IG51bGxfcG9pbnRlciA9IG51bGxw dHI7CnwgCnwgc3RhdGljIHR5cGVvZiAoMSArIDFMKSB0d28gKCkgeyByZXR1cm4gMjsgfQp8IHN0 YXRpYyBsb25nIGludCB0aHJlZSAoKSB7IHJldHVybiAzOyB9CnwgCnwgCnwgaW50CnwgbWFpbiAo aW50LCBjaGFyICoqKQp8IHsKfCAgIGludCBvayA9IDA7CnwgICAKfCAgIHsKfCAgICAgbGFiZWxf YmVmb3JlX2RlY2xhcmF0aW9uOgp8ICAgICAgIGludCBhcnJbMTBdID0ge307CnwgICAgICAgaWYg KGFyclswXSkKfCAgICAgICAgIGdvdG8gbGFiZWxfYmVmb3JlX2RlY2xhcmF0aW9uOwp8ICAgICAg IGlmICghYXJyWzBdKQp8ICAgICAgICAgZ290byBsYWJlbF9hdF9lbmRfb2ZfYmxvY2s7CnwgICAg IGxhYmVsX2F0X2VuZF9vZl9ibG9jazoKfCAgIH0KfCAgIG9rIHw9ICFudWxsX3BvaW50ZXI7Cnwg ICBvayB8PSB0d28gIT0gdGhyZWU7CnwgCnwgICByZXR1cm4gb2s7CnwgfQp8IApjb25maWd1cmU6 NTIxNTogY2MgLXN0ZD1nbnUyMyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6 NDA6NDY6IHdhcm5pbmc6IGltcGxpY2l0IGNvbnZlcnNpb24gb2YgbnVsbHB0ciBjb25zdGFudCB0 byAnYm9vbCcgWy1XbnVsbC1jb252ZXJzaW9uXQogICA0MCB8IGJvb2wgY2hlY2tfdGhhdF9ib29s X3dvcmtzID0gdHJ1ZSB8IGZhbHNlIHwgIW51bGxwdHI7CiAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+Xn5+fn5+fgogICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKY29uZnRlc3QuYzo5MjoxMDogd2Fy bmluZzogaW1wbGljaXQgY29udmVyc2lvbiBvZiBudWxscHRyIGNvbnN0YW50IHRvICdib29sJyBb LVdudWxsLWNvbnZlcnNpb25dCiAgIDkyIHwgICBvayB8PSAhbnVsbF9wb2ludGVyOwogICAgICB8 ICAgICAgICAgfl5+fn5+fn5+fn5+fgogICAgICB8ICAgICAgICAgIDAKMiB3YXJuaW5ncyBnZW5l cmF0ZWQuCmNvbmZpZ3VyZTo1MjE1OiAkPyA9IDAKY29uZmlndXJlOjUyMzc6IHJlc3VsdDogLXN0 ZD1nbnUyMwpjb25maWd1cmU6NTQwNzogY2hlY2tpbmcgd2hldGhlciBjYyAtc3RkPWdudTIzIHVu ZGVyc3RhbmRzIC1jIGFuZCAtbyB0b2dldGhlcgpjb25maWd1cmU6NTQzMDogY2MgLXN0ZD1nbnUy MyAtYyBjb25mdGVzdC5jIC1vIGNvbmZ0ZXN0Mi5vCmNvbmZpZ3VyZTo1NDMzOiAkPyA9IDAKY29u ZmlndXJlOjU0MzA6IGNjIC1zdGQ9Z251MjMgLWMgY29uZnRlc3QuYyAtbyBjb25mdGVzdDIubwpj b25maWd1cmU6NTQzMzogJD8gPSAwCmNvbmZpZ3VyZTo1NDQ5OiByZXN1bHQ6IHllcwpjb25maWd1 cmU6NTU4MjogY2hlY2tpbmcgZm9yIGFDQwpjb25maWd1cmU6NTYxODogcmVzdWx0OiBubwpjb25m aWd1cmU6NTU4MjogY2hlY2tpbmcgZm9yIEZDQwpjb25maWd1cmU6NTYxODogcmVzdWx0OiBubwpj b25maWd1cmU6NTU4MjogY2hlY2tpbmcgZm9yIHhsQ19yCmNvbmZpZ3VyZTo1NjE4OiByZXN1bHQ6 IG5vCmNvbmZpZ3VyZTo1NTgyOiBjaGVja2luZyBmb3IgeGxDCmNvbmZpZ3VyZTo1NjE4OiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZTo1NTgyOiBjaGVja2luZyBmb3IgYysrCmNvbmZpZ3VyZTo1NjAzOiBm b3VuZCAvdXNyL2Jpbi9jKysKY29uZmlndXJlOjU2MTU6IHJlc3VsdDogYysrCmNvbmZpZ3VyZTo1 NjQyOiBjaGVja2luZyBmb3IgQysrIGNvbXBpbGVyIHZlcnNpb24KY29uZmlndXJlOjU2NTE6IGMr KyAtLXZlcnNpb24gPiY1CkFwcGxlIGNsYW5nIHZlcnNpb24gMjEuMC4wIChjbGFuZy0yMTAwLjEu MS4xMDEpClRhcmdldDogYXJtNjQtYXBwbGUtZGFyd2luMjUuNS4wClRocmVhZCBtb2RlbDogcG9z aXgKSW5zdGFsbGVkRGlyOiAvQXBwbGljYXRpb25zL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9w ZXIvVG9vbGNoYWlucy9YY29kZURlZmF1bHQueGN0b29sY2hhaW4vdXNyL2Jpbgpjb25maWd1cmU6 NTY2MjogJD8gPSAwCmNvbmZpZ3VyZTo1NjUxOiBjKysgLXYgPiY1CkFwcGxlIGNsYW5nIHZlcnNp b24gMjEuMC4wIChjbGFuZy0yMTAwLjEuMS4xMDEpClRhcmdldDogYXJtNjQtYXBwbGUtZGFyd2lu MjUuNS4wClRocmVhZCBtb2RlbDogcG9zaXgKSW5zdGFsbGVkRGlyOiAvQXBwbGljYXRpb25zL1hj b2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvVG9vbGNoYWlucy9YY29kZURlZmF1bHQueGN0b29s Y2hhaW4vdXNyL2Jpbgpjb25maWd1cmU6NTY2MjogJD8gPSAwCmNvbmZpZ3VyZTo1NjUxOiBjKysg LVYgPiY1CmNsYW5nKys6IGVycm9yOiBhcmd1bWVudCB0byAnLVYnIGlzIG1pc3NpbmcgKGV4cGVj dGVkIDEgdmFsdWUpCmNsYW5nKys6IGVycm9yOiBubyBpbnB1dCBmaWxlcwpjb25maWd1cmU6NTY2 MjogJD8gPSAxCmNvbmZpZ3VyZTo1NjUxOiBjKysgLXF2ZXJzaW9uID4mNQpjbGFuZysrOiBlcnJv cjogdW5rbm93biBhcmd1bWVudCAnLXF2ZXJzaW9uJzsgZGlkIHlvdSBtZWFuICctLXZlcnNpb24n PwpjbGFuZysrOiBlcnJvcjogbm8gaW5wdXQgZmlsZXMKY29uZmlndXJlOjU2NjI6ICQ/ID0gMQpj b25maWd1cmU6NTY4MjogY2hlY2tpbmcgd2hldGhlciB0aGUgQysrIGNvbXBpbGVyIHdvcmtzCmNv bmZpZ3VyZTo1NzA0OiBjKysgICAgY29uZnRlc3QuY3BwICA+JjUKY29uZmlndXJlOjU3MDg6ICQ/ ID0gMApjb25maWd1cmU6NTc2MTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjU3NjU6IGNoZWNraW5n IGZvciBDKysgY29tcGlsZXIgZGVmYXVsdCBvdXRwdXQgZmlsZSBuYW1lCmNvbmZpZ3VyZTo1NzY3 OiByZXN1bHQ6IGEub3V0CmNvbmZpZ3VyZTo1NzczOiBjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4 ZWN1dGFibGVzCmNvbmZpZ3VyZTo1NzgwOiBjKysgLW8gY29uZnRlc3QgICAgY29uZnRlc3QuY3Bw ICA+JjUKY29uZmlndXJlOjU3ODQ6ICQ/ID0gMApjb25maWd1cmU6NTgxMDogcmVzdWx0OiAKY29u ZmlndXJlOjU4MzQ6IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZwpjb25m aWd1cmU6NTg0MjogYysrIC1vIGNvbmZ0ZXN0ICAgIGNvbmZ0ZXN0LmNwcCAgPiY1CmNvbmZpZ3Vy ZTo1ODQ2OiAkPyA9IDAKY29uZmlndXJlOjU4NTM6IC4vY29uZnRlc3QKY29uZmlndXJlOjU4NTc6 ICQ/ID0gMApjb25maWd1cmU6NTg3NTogcmVzdWx0OiBubwpjb25maWd1cmU6NTg4MTogY2hlY2tp bmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMKY29uZmlndXJlOjU5MDQ6IGMrKyAtYyAgIGNv bmZ0ZXN0LmNwcCA+JjUKY29uZmlndXJlOjU5MDg6ICQ/ID0gMApjb25maWd1cmU6NTkzNDogcmVz dWx0OiBvCmNvbmZpZ3VyZTo1OTM4OiBjaGVja2luZyB3aGV0aGVyIHRoZSBjb21waWxlciBzdXBw b3J0cyBHTlUgQysrCmNvbmZpZ3VyZTo1OTU4OiBjKysgLWMgICBjb25mdGVzdC5jcHAgPiY1CmNv bmZpZ3VyZTo1OTU4OiAkPyA9IDAKY29uZmlndXJlOjU5NzA6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZTo1OTgxOiBjaGVja2luZyB3aGV0aGVyIGMrKyBhY2NlcHRzIC1nCmNvbmZpZ3VyZTo2MDAyOiBj KysgLWMgLWcgIGNvbmZ0ZXN0LmNwcCA+JjUKY29uZmlndXJlOjYwMDI6ICQ/ID0gMApjb25maWd1 cmU6NjA0OTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjYxNjk6IGNoZWNraW5nIGZvciB4bGY5NQpj b25maWd1cmU6NjIwNTogcmVzdWx0OiBubwpjb25maWd1cmU6NjE2OTogY2hlY2tpbmcgZm9yIGY5 NQpjb25maWd1cmU6NjIwNTogcmVzdWx0OiBubwpjb25maWd1cmU6NjE2OTogY2hlY2tpbmcgZm9y IGZvcnQKY29uZmlndXJlOjYyMDU6IHJlc3VsdDogbm8KY29uZmlndXJlOjYxNjk6IGNoZWNraW5n IGZvciBpZm9ydApjb25maWd1cmU6NjIwNTogcmVzdWx0OiBubwpjb25maWd1cmU6NjE2OTogY2hl Y2tpbmcgZm9yIGlmYwpjb25maWd1cmU6NjIwNTogcmVzdWx0OiBubwpjb25maWd1cmU6NjE2OTog Y2hlY2tpbmcgZm9yIGVmYwpjb25maWd1cmU6NjIwNTogcmVzdWx0OiBubwpjb25maWd1cmU6NjE2 OTogY2hlY2tpbmcgZm9yIHBnZm9ydHJhbgpjb25maWd1cmU6NjIwNTogcmVzdWx0OiBubwpjb25m aWd1cmU6NjE2OTogY2hlY2tpbmcgZm9yIHBnZjk1CmNvbmZpZ3VyZTo2MjA1OiByZXN1bHQ6IG5v CmNvbmZpZ3VyZTo2MTY5OiBjaGVja2luZyBmb3IgbGY5NQpjb25maWd1cmU6NjIwNTogcmVzdWx0 OiBubwpjb25maWd1cmU6NjE2OTogY2hlY2tpbmcgZm9yIGZ0bgpjb25maWd1cmU6NjIwNTogcmVz dWx0OiBubwpjb25maWd1cmU6NjE2OTogY2hlY2tpbmcgZm9yIG5hZ2Zvcgpjb25maWd1cmU6NjIw NTogcmVzdWx0OiBubwpjb25maWd1cmU6NjE2OTogY2hlY2tpbmcgZm9yIHhsZjkwCmNvbmZpZ3Vy ZTo2MjA1OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2MTY5OiBjaGVja2luZyBmb3IgZjkwCmNvbmZp Z3VyZTo2MjA1OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2MTY5OiBjaGVja2luZyBmb3IgYXJtZmxh bmcKY29uZmlndXJlOjYyMDU6IHJlc3VsdDogbm8KY29uZmlndXJlOjYxNjk6IGNoZWNraW5nIGZv ciBmbGFuZwpjb25maWd1cmU6NjIwNTogcmVzdWx0OiBubwpjb25maWd1cmU6NjE2OTogY2hlY2tp bmcgZm9yIHBnZjkwCmNvbmZpZ3VyZTo2MjA1OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2MTY5OiBj aGVja2luZyBmb3IgcGdocGYKY29uZmlndXJlOjYyMDU6IHJlc3VsdDogbm8KY29uZmlndXJlOjYx Njk6IGNoZWNraW5nIGZvciBlcGNmOTAKY29uZmlndXJlOjYyMDU6IHJlc3VsdDogbm8KY29uZmln dXJlOjYxNjk6IGNoZWNraW5nIGZvciBnOTUKY29uZmlndXJlOjYyMDU6IHJlc3VsdDogbm8KY29u ZmlndXJlOjYxNjk6IGNoZWNraW5nIGZvciBnZm9ydHJhbgpjb25maWd1cmU6NjIwNTogcmVzdWx0 OiBubwpjb25maWd1cmU6NjIyODogY2hlY2tpbmcgZm9yIEZvcnRyYW4gY29tcGlsZXIgdmVyc2lv bgpjb25maWd1cmU6NjIzNzogIC0tdmVyc2lvbiA+JjUKLi9jb25maWd1cmU6IGxpbmUgNjIzOTog LS12ZXJzaW9uOiBjb21tYW5kIG5vdCBmb3VuZApjb25maWd1cmU6NjI0ODogJD8gPSAxMjcKY29u ZmlndXJlOjYyMzc6ICAtdiA+JjUKLi9jb25maWd1cmU6IGxpbmUgNjIzOTogLXY6IGNvbW1hbmQg bm90IGZvdW5kCmNvbmZpZ3VyZTo2MjQ4OiAkPyA9IDEyNwpjb25maWd1cmU6NjIzNzogIC1WID4m NQouL2NvbmZpZ3VyZTogbGluZSA2MjM5OiAtVjogY29tbWFuZCBub3QgZm91bmQKY29uZmlndXJl OjYyNDg6ICQ/ID0gMTI3CmNvbmZpZ3VyZTo2MjM3OiAgLXF2ZXJzaW9uID4mNQouL2NvbmZpZ3Vy ZTogbGluZSA2MjM5OiAtcXZlcnNpb246IGNvbW1hbmQgbm90IGZvdW5kCmNvbmZpZ3VyZTo2MjQ4 OiAkPyA9IDEyNwpjb25maWd1cmU6NjI2MzogY2hlY2tpbmcgd2hldGhlciB0aGUgRm9ydHJhbiBj b21waWxlciB3b3Jrcwpjb25maWd1cmU6NjI4NTogICAgIGNvbmZ0ZXN0LmYgID4mNQouL2NvbmZp Z3VyZTogbGluZSA2Mjg3OiAuL2NvbmZ0ZXN0LmY6IFBlcm1pc3Npb24gZGVuaWVkCmNvbmZpZ3Vy ZTo2Mjg5OiAkPyA9IDEyNgpjb25maWd1cmU6NjMzMDogcmVzdWx0OiBubwpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAgICAgICBwcm9ncmFtIG1haW4KfCAKfCAgICAgICBlbmQKY29u ZmlndXJlOjYzMzY6IFdBUk5JTkc6IEZvcnRyYW4gY29tcGlsZXIgY2Fubm90IGNyZWF0ZSBleGVj dXRhYmxlcwpjb25maWd1cmU6NjU5OTogdGVzdHMgcmVxdWlyaW5nIHRoZSBGb3J0cmFuIGNvbXBp bGVyIHdpbGwgYmUgc2tpcHBlZApjb25maWd1cmU6NjY4NzogY2hlY2tpbmcgZm9yIHhsZgpjb25m aWd1cmU6NjcyMzogcmVzdWx0OiBubwpjb25maWd1cmU6NjY4NzogY2hlY2tpbmcgZm9yIGY3Nwpj b25maWd1cmU6NjcyMzogcmVzdWx0OiBubwpjb25maWd1cmU6NjY4NzogY2hlY2tpbmcgZm9yIGZy dApjb25maWd1cmU6NjcyMzogcmVzdWx0OiBubwpjb25maWd1cmU6NjY4NzogY2hlY2tpbmcgZm9y IHBnZjc3CmNvbmZpZ3VyZTo2NzIzOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2Njg3OiBjaGVja2lu ZyBmb3IgY2Y3Nwpjb25maWd1cmU6NjcyMzogcmVzdWx0OiBubwpjb25maWd1cmU6NjY4NzogY2hl Y2tpbmcgZm9yIGZvcnQ3Nwpjb25maWd1cmU6NjcyMzogcmVzdWx0OiBubwpjb25maWd1cmU6NjY4 NzogY2hlY2tpbmcgZm9yIGZsMzIKY29uZmlndXJlOjY3MjM6IHJlc3VsdDogbm8KY29uZmlndXJl OjY2ODc6IGNoZWNraW5nIGZvciBhZjc3CmNvbmZpZ3VyZTo2NzIzOiByZXN1bHQ6IG5vCmNvbmZp Z3VyZTo2Njg3OiBjaGVja2luZyBmb3IgZzc3CmNvbmZpZ3VyZTo2NzIzOiByZXN1bHQ6IG5vCmNv bmZpZ3VyZTo2Njg3OiBjaGVja2luZyBmb3IgYXJtZmxhbmcKY29uZmlndXJlOjY3MjM6IHJlc3Vs dDogbm8KY29uZmlndXJlOjY2ODc6IGNoZWNraW5nIGZvciBmbGFuZwpjb25maWd1cmU6NjcyMzog cmVzdWx0OiBubwpjb25maWd1cmU6NjY4NzogY2hlY2tpbmcgZm9yIGdmb3J0cmFuCmNvbmZpZ3Vy ZTo2NzIzOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2NzQ2OiBjaGVja2luZyBmb3IgRm9ydHJhbiA3 NyBjb21waWxlciB2ZXJzaW9uCmNvbmZpZ3VyZTo2NzU1OiAgLS12ZXJzaW9uID4mNQouL2NvbmZp Z3VyZTogbGluZSA2NzU3OiAtLXZlcnNpb246IGNvbW1hbmQgbm90IGZvdW5kCmNvbmZpZ3VyZTo2 NzY2OiAkPyA9IDEyNwpjb25maWd1cmU6Njc1NTogIC12ID4mNQouL2NvbmZpZ3VyZTogbGluZSA2 NzU3OiAtdjogY29tbWFuZCBub3QgZm91bmQKY29uZmlndXJlOjY3NjY6ICQ/ID0gMTI3CmNvbmZp Z3VyZTo2NzU1OiAgLVYgPiY1Ci4vY29uZmlndXJlOiBsaW5lIDY3NTc6IC1WOiBjb21tYW5kIG5v dCBmb3VuZApjb25maWd1cmU6Njc2NjogJD8gPSAxMjcKY29uZmlndXJlOjY3NTU6ICAtcXZlcnNp b24gPiY1Ci4vY29uZmlndXJlOiBsaW5lIDY3NTc6IC1xdmVyc2lvbjogY29tbWFuZCBub3QgZm91 bmQKY29uZmlndXJlOjY3NjY6ICQ/ID0gMTI3CmNvbmZpZ3VyZTo2NzgxOiBjaGVja2luZyB3aGV0 aGVyIHRoZSBGb3J0cmFuIDc3IGNvbXBpbGVyIHdvcmtzCmNvbmZpZ3VyZTo2ODAzOiAgICBjb25m dGVzdC5mICA+JjUKLi9jb25maWd1cmU6IGxpbmUgNjgwNTogLi9jb25mdGVzdC5mOiBQZXJtaXNz aW9uIGRlbmllZApjb25maWd1cmU6NjgwNzogJD8gPSAxMjYKY29uZmlndXJlOjY4NDg6IHJlc3Vs dDogbm8KY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgICAgICAgcHJvZ3JhbSBtYWlu CnwgCnwgICAgICAgZW5kCmNvbmZpZ3VyZTo2ODU0OiBXQVJOSU5HOiBGb3J0cmFuIDc3IGNvbXBp bGVyIGNhbm5vdCBjcmVhdGUgZXhlY3V0YWJsZXMKY29uZmlndXJlOjcxMTc6IHRlc3RzIHJlcXVp cmluZyB0aGUgRm9ydHJhbiA3NyBjb21waWxlciB3aWxsIGJlIHNraXBwZWQKY29uZmlndXJlOjcx NTE6IHdpbGwgbm93IGxvb2sgZm9yIEdOVSBjb21waWxlcnMKY29uZmlndXJlOjcxNTg6IGNjIC1z dGQ9Z251MjMgaXMgYWxyZWFkeSBhIEdOVSBDIGNvbXBpbGVyCmNvbmZpZ3VyZTo3Mjc2OiBjYyAt c3RkPWdudTIzIC0tdmVyc2lvbiAmJiBjYyAtc3RkPWdudTIzIC12CkFwcGxlIGNsYW5nIHZlcnNp b24gMjEuMC4wIChjbGFuZy0yMTAwLjEuMS4xMDEpClRhcmdldDogYXJtNjQtYXBwbGUtZGFyd2lu MjUuNS4wClRocmVhZCBtb2RlbDogcG9zaXgKSW5zdGFsbGVkRGlyOiAvQXBwbGljYXRpb25zL1hj b2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvVG9vbGNoYWlucy9YY29kZURlZmF1bHQueGN0b29s Y2hhaW4vdXNyL2JpbgpBcHBsZSBjbGFuZyB2ZXJzaW9uIDIxLjAuMCAoY2xhbmctMjEwMC4xLjEu MTAxKQpUYXJnZXQ6IGFybTY0LWFwcGxlLWRhcndpbjI1LjUuMApUaHJlYWQgbW9kZWw6IHBvc2l4 Ckluc3RhbGxlZERpcjogL0FwcGxpY2F0aW9ucy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVy L1Rvb2xjaGFpbnMvWGNvZGVEZWZhdWx0LnhjdG9vbGNoYWluL3Vzci9iaW4KY29uZmlndXJlOjcy Nzk6ICQ/ID0gMApjb25maWd1cmU6NzI5NjogYysrIGlzIGFscmVhZHkgYSBHTlUgQysrIGNvbXBp bGVyCmNvbmZpZ3VyZTo3NDE1OiBjKysgLS12ZXJzaW9uICYmIGMrKyAtdgpBcHBsZSBjbGFuZyB2 ZXJzaW9uIDIxLjAuMCAoY2xhbmctMjEwMC4xLjEuMTAxKQpUYXJnZXQ6IGFybTY0LWFwcGxlLWRh cndpbjI1LjUuMApUaHJlYWQgbW9kZWw6IHBvc2l4Ckluc3RhbGxlZERpcjogL0FwcGxpY2F0aW9u cy9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1Rvb2xjaGFpbnMvWGNvZGVEZWZhdWx0Lnhj dG9vbGNoYWluL3Vzci9iaW4KQXBwbGUgY2xhbmcgdmVyc2lvbiAyMS4wLjAgKGNsYW5nLTIxMDAu MS4xLjEwMSkKVGFyZ2V0OiBhcm02NC1hcHBsZS1kYXJ3aW4yNS41LjAKVGhyZWFkIG1vZGVsOiBw b3NpeApJbnN0YWxsZWREaXI6IC9BcHBsaWNhdGlvbnMvWGNvZGUuYXBwL0NvbnRlbnRzL0RldmVs b3Blci9Ub29sY2hhaW5zL1hjb2RlRGVmYXVsdC54Y3Rvb2xjaGFpbi91c3IvYmluCmNvbmZpZ3Vy ZTo3NDE4OiAkPyA9IDAKY29uZmlndXJlOjc0OTU6IGNoZWNraW5nIGZvciBnZm9ydHJhbgpjb25m aWd1cmU6NzUzMTogcmVzdWx0OiBubwpjb25maWd1cmU6NzYzNDogY2hlY2tpbmcgZm9yIGc3Nwpj b25maWd1cmU6NzY3MDogcmVzdWx0OiBubwpjb25maWd1cmU6NzYzNDogY2hlY2tpbmcgZm9yIGdm b3J0cmFuCmNvbmZpZ3VyZTo3NjcwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo3NzY3OiBjaGVja2lu ZyBmb3IgZ2E2OApjb25maWd1cmU6NzgwMzogcmVzdWx0OiBubwpjb25maWd1cmU6Nzg5OTogY2hl Y2tpbmcgZm9yIGdjagpjb25maWd1cmU6NzkzNTogcmVzdWx0OiBubwpjb25maWd1cmU6ODExMDog Y2hlY2tpbmcgdGhhdCBnZW5lcmF0ZWQgZmlsZXMgYXJlIG5ld2VyIHRoYW4gY29uZmlndXJlCmNv bmZpZ3VyZTo4MTE2OiByZXN1bHQ6IGRvbmUKY29uZmlndXJlOjgxMzk6IGNyZWF0aW5nIC4vY29u ZmlnLnN0YXR1cwoKIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwojIyBSdW5uaW5nIGNvbmZp Zy5zdGF0dXMuICMjCiMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKClRoaXMgZmlsZSB3YXMg ZXh0ZW5kZWQgYnkgR05VIEF1dG9tYWtlIGNvbmZpZy5zdGF0dXMgMS4xOC4xLjkxLCB3aGljaCB3 YXMKZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjczLiAgSW52b2NhdGlvbiBjb21tYW5kIGxp bmUgd2FzCgogIENPTkZJR19GSUxFUyAgICA9IAogIENPTkZJR19IRUFERVJTICA9IAogIENPTkZJ R19MSU5LUyAgICA9IAogIENPTkZJR19DT01NQU5EUyA9IAogICQgLi9jb25maWcuc3RhdHVzIAoK b24gbmV3LWhvc3QtMy5ob21lCgpjb25maWcuc3RhdHVzOjgwMzogY3JlYXRpbmcgTWFrZWZpbGUK Y29uZmlnLnN0YXR1czo4MDM6IGNyZWF0aW5nIHByZS1pbnN0LWVudgoKIyMgLS0tLS0tLS0tLS0t LS0tLSAjIwojIyBDYWNoZSB2YXJpYWJsZXMuICMjCiMjIC0tLS0tLS0tLS0tLS0tLS0gIyMKCmFj X2N2X0FNX1RFU1RfUlVOTkVSX1NIRUxMPS9iaW4vc2gKYWNfY3ZfYnVpbGQ9YWFyY2g2NC1hcHBs ZS1kYXJ3aW4yNS41LjAKYWNfY3ZfY19jb21waWxlcl9nbnU9eWVzCmFjX2N2X2N4eF9jb21waWxl cl9nbnU9eWVzCmFjX2N2X2Vudl9BTV9URVNUX1JVTk5FUl9TSEVMTF9zZXQ9CmFjX2N2X2Vudl9B TV9URVNUX1JVTk5FUl9TSEVMTF92YWx1ZT0KYWNfY3ZfZW52X0NDQ19zZXQ9CmFjX2N2X2Vudl9D Q0NfdmFsdWU9CmFjX2N2X2Vudl9DQ19zZXQ9CmFjX2N2X2Vudl9DQ192YWx1ZT0KYWNfY3ZfZW52 X0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9DRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9DUFBGTEFHU19z ZXQ9CmFjX2N2X2Vudl9DUFBGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0NYWEZMQUdTX3NldD0KYWNf Y3ZfZW52X0NYWEZMQUdTX3ZhbHVlPQphY19jdl9lbnZfQ1hYX3NldD0KYWNfY3ZfZW52X0NYWF92 YWx1ZT0KYWNfY3ZfZW52X0Y3N19zZXQ9CmFjX2N2X2Vudl9GNzdfdmFsdWU9CmFjX2N2X2Vudl9G Q0ZMQUdTX3NldD0KYWNfY3ZfZW52X0ZDRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9GQ19zZXQ9CmFj X2N2X2Vudl9GQ192YWx1ZT0KYWNfY3ZfZW52X0ZGTEFHU19zZXQ9CmFjX2N2X2Vudl9GRkxBR1Nf dmFsdWU9CmFjX2N2X2Vudl9HTlVfQTY4RkxBR1Nfc2V0PQphY19jdl9lbnZfR05VX0E2OEZMQUdT X3ZhbHVlPQphY19jdl9lbnZfR05VX0E2OF9zZXQ9CmFjX2N2X2Vudl9HTlVfQTY4X3ZhbHVlPQph Y19jdl9lbnZfR05VX0NDX3NldD0KYWNfY3ZfZW52X0dOVV9DQ192YWx1ZT0KYWNfY3ZfZW52X0dO VV9DRkxBR1Nfc2V0PQphY19jdl9lbnZfR05VX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0dOVV9D WFhGTEFHU19zZXQ9CmFjX2N2X2Vudl9HTlVfQ1hYRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9HTlVf Q1hYX3NldD0KYWNfY3ZfZW52X0dOVV9DWFhfdmFsdWU9CmFjX2N2X2Vudl9HTlVfRjc3X3NldD0K YWNfY3ZfZW52X0dOVV9GNzdfdmFsdWU9CmFjX2N2X2Vudl9HTlVfRkNGTEFHU19zZXQ9CmFjX2N2 X2Vudl9HTlVfRkNGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0dOVV9GQ19zZXQ9CmFjX2N2X2Vudl9H TlVfRkNfdmFsdWU9CmFjX2N2X2Vudl9HTlVfRkZMQUdTX3NldD0KYWNfY3ZfZW52X0dOVV9GRkxB R1NfdmFsdWU9CmFjX2N2X2Vudl9HTlVfR0NKRkxBR1Nfc2V0PQphY19jdl9lbnZfR05VX0dDSkZM QUdTX3ZhbHVlPQphY19jdl9lbnZfR05VX0dDSl9zZXQ9CmFjX2N2X2Vudl9HTlVfR0NKX3ZhbHVl PQphY19jdl9lbnZfTERGTEFHU19zZXQ9CmFjX2N2X2Vudl9MREZMQUdTX3ZhbHVlPQphY19jdl9l bnZfTElCU19zZXQ9CmFjX2N2X2Vudl9MSUJTX3ZhbHVlPQphY19jdl9lbnZfYnVpbGRfYWxpYXNf c2V0PQphY19jdl9lbnZfYnVpbGRfYWxpYXNfdmFsdWU9CmFjX2N2X2Vudl9ob3N0X2FsaWFzX3Nl dD0KYWNfY3ZfZW52X2hvc3RfYWxpYXNfdmFsdWU9CmFjX2N2X2Vudl90YXJnZXRfYWxpYXNfc2V0 PQphY19jdl9lbnZfdGFyZ2V0X2FsaWFzX3ZhbHVlPQphY19jdl9ob3N0PWFhcmNoNjQtYXBwbGUt ZGFyd2luMjUuNS4wCmFjX2N2X3BhdGhfRUdSRVA9Jy91c3IvYmluL2dyZXAgLUUnCmFjX2N2X3Bh dGhfRUdSRVBfVFJBRElUSU9OQUw9Jy91c3IvYmluL2dyZXAgLUUnCmFjX2N2X3BhdGhfRkdSRVA9 Jy91c3IvYmluL2dyZXAgLUYnCmFjX2N2X3BhdGhfR1JFUD0vdXNyL2Jpbi9ncmVwCmFjX2N2X3Bh dGhfUEVSTD0vdXNyL2Jpbi9wZXJsCmFjX2N2X3BhdGhfaW5zdGFsbD0nL3Vzci9iaW4vaW5zdGFs bCAtYycKYWNfY3ZfcHJvZ19BV0s9YXdrCmFjX2N2X3Byb2dfTEVYPWxleAphY19jdl9wcm9nX1RF WD10ZXgKYWNfY3ZfcHJvZ19ZQUNDPXlhY2MKYWNfY3ZfcHJvZ19hY19jdF9DQz1jYwphY19jdl9w cm9nX2FjX2N0X0NYWD1jKysKYWNfY3ZfcHJvZ19jY19jMjM9LXN0ZD1nbnUyMwphY19jdl9wcm9n X2NjX2c9eWVzCmFjX2N2X3Byb2dfY2Nfc3RkYz0tc3RkPWdudTIzCmFjX2N2X3Byb2dfY3h4X2c9 eWVzCmFjX2N2X3Byb2dfbWFrZV9tYWtlX3NldD15ZXMKYW1fY3ZfYXV0b2NvbmZfaW5zdGFsbGVk PXllcwphbV9jdl9hdXRvY29uZl92ZXJzaW9uPXllcwphbV9jdl9hdXRvY29uZl93b3Jrcz15ZXMK YW1fY3ZfZmlsZXN5c3RlbV90aW1lc3RhbXBfcmVzb2x1dGlvbj0wLjAxCmFtX2N2X21ha2Vfc3Vw cG9ydF9uZXN0ZWRfdmFyaWFibGVzPXllcwphbV9jdl9wcm9nX2NjX2Nfbz15ZXMKYW1fY3ZfcHJv Z19sbj1sbgphbV9jdl9wcm9nX3Rhcl91c3Rhcj1wbGFpbnRhcgphbV9jdl9zbGVlcF9mcmFjdGlv bmFsX3NlY29uZHM9eWVzCmFtX2N2X3hhcmdzX25fd29ya3M9eWVzCgojIyAtLS0tLS0tLS0tLS0t LS0tLSAjIwojIyBPdXRwdXQgdmFyaWFibGVzLiAjIwojIyAtLS0tLS0tLS0tLS0tLS0tLSAjIwoK QUNMT0NBTD0nIi91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3ByZS1pbnN0LWVudiIgYWNsb2NhbC0x LjE4JwpBTVRBUj0nJCR7VEFSLXRhcn0nCkFNX0JBQ0tTTEFTSD0nXCcKQU1fREVGQVVMVF9WPSck KEFNX0RFRkFVTFRfVkVSQk9TSVRZKScKQU1fREVGQVVMVF9WRVJCT1NJVFk9JzAnCkFNX1RFU1Rf UlVOTkVSX1NIRUxMPScvYmluL3NoJwpBTV9WPSckKFYpJwpBUElWRVJTSU9OPScxLjE4JwpBVVRP Q09ORj0nJHtTSEVMTH0gJ1wnJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL2xpYi9taXNzaW5nJ1wn JyBhdXRvY29uZicKQVVUT0hFQURFUj0nJHtTSEVMTH0gJ1wnJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL2xpYi9taXNzaW5nJ1wnJyBhdXRvaGVhZGVyJwpBVVRPTUFLRT0nIi91c3IvbG9jYWwvc3Jj L2F1dG9tYWtlL3ByZS1pbnN0LWVudiIgYXV0b21ha2UtMS4xOCcKQVdLPSdhd2snCkNDPSdjYyAt c3RkPWdudTIzJwpDRkxBR1M9Jy1nIC1PMicKQ1BQRkxBR1M9JycKQ1NDT1BFPSdjc2NvcGUnCkNU QUdTPSdjdGFncycKQ1hYPSdjKysnCkNYWEZMQUdTPSctZyAtTzInCkNZR1BBVEhfVz0nZWNobycK REVGUz0nLURQQUNLQUdFX05BTUU9XCJHTlVcIEF1dG9tYWtlXCIgLURQQUNLQUdFX1RBUk5BTUU9 XCJhdXRvbWFrZVwiIC1EUEFDS0FHRV9WRVJTSU9OPVwiMS4xOC4xLjkxXCIgLURQQUNLQUdFX1NU UklORz1cIkdOVVwgQXV0b21ha2VcIDEuMTguMS45MVwiIC1EUEFDS0FHRV9CVUdSRVBPUlQ9XCJi dWctYXV0b21ha2VAZ251Lm9yZ1wiIC1EUEFDS0FHRV9VUkw9XCJodHRwczovL3d3dy5nbnUub3Jn L3NvZnR3YXJlL2F1dG9tYWtlL1wiJwpFQ0hPX0M9J1xjJwpFQ0hPX049JycKRUNIT19UPScnCkVH UkVQPScvdXNyL2Jpbi9ncmVwIC1FJwpFVEFHUz0nZXRhZ3MnCkVYRUVYVD0nVU5LTk9XTicKRjc3 PSdmYWxzZScKRkM9J2ZhbHNlJwpGQ0ZMQUdTPScnCkZGTEFHUz0nJwpGR1JFUD0nL3Vzci9iaW4v Z3JlcCAtRicKR05VX0E2OD0nZmFsc2UnCkdOVV9BNjhGTEFHUz0nJwpHTlVfQ0M9J2NjIC1zdGQ9 Z251MjMnCkdOVV9DRkxBR1M9Jy1nIC1PMicKR05VX0NYWD0nYysrJwpHTlVfQ1hYRkxBR1M9Jy1n IC1PMicKR05VX0Y3Nz0nZmFsc2UnCkdOVV9GQz0nZmFsc2UnCkdOVV9GQ0ZMQUdTPScnCkdOVV9G RkxBR1M9JycKR05VX0dDSj0nZmFsc2UnCkdOVV9HQ0pGTEFHUz0nJwpHUkVQPScvdXNyL2Jpbi9n cmVwJwpJTlNUQUxMX0RBVEE9JyR7SU5TVEFMTH0gLW0gNjQ0JwpJTlNUQUxMX1BST0dSQU09JyR7 SU5TVEFMTH0nCklOU1RBTExfU0NSSVBUPScke0lOU1RBTEx9JwpJTlNUQUxMX1NUUklQX1BST0dS QU09JyQoaW5zdGFsbF9zaCkgLWMgLXMnCkxERkxBR1M9JycKTEVYPSdsZXgnCkxJQk9CSlM9JycK TElCUz0nJwpMTj0nbG4nCkxOX1M9J2xuIC1zJwpMVExJQk9CSlM9JycKTUFLRUlORk89JyR7U0hF TEx9ICdcJycvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS9saWIvbWlzc2luZydcJycgbWFrZWluZm8n Ck1LRElSX1A9J21rZGlyIC1wJwpNVElNRV9SRVNPTFVUSU9OPScwLjAxJwpPQkpFWFQ9J1VOS05P V04nClBBQ0tBR0U9J2F1dG9tYWtlJwpQQUNLQUdFX0JVR1JFUE9SVD0nYnVnLWF1dG9tYWtlQGdu dS5vcmcnClBBQ0tBR0VfTkFNRT0nR05VIEF1dG9tYWtlJwpQQUNLQUdFX1NUUklORz0nR05VIEF1 dG9tYWtlIDEuMTguMS45MScKUEFDS0FHRV9UQVJOQU1FPSdhdXRvbWFrZScKUEFDS0FHRV9VUkw9 J2h0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvYXV0b21ha2UvJwpQQUNLQUdFX1ZFUlNJT049 JzEuMTguMS45MScKUEFUSF9TRVBBUkFUT1I9JzonClBFUkw9Jy91c3IvYmluL3BlcmwnClJFTEVB U0VfWUVBUj0nMjAyNicKU0VUX01BS0U9JycKU0hFTEw9Jy9iaW4vc2gnClNUUklQPScnClRFWD0n dGV4JwpWRVJTSU9OPScxLjE4LjEuOTEnCllBQ0M9J3lhY2MnCmFjX2N0X0NDPSdjYycKYWNfY3Rf Q1hYPSdjKysnCmFjX2N0X0Y3Nz0nJwphY19jdF9GQz0nJwphY19jdF9HTlVfQTY4PScnCmFjX2N0 X0dOVV9DQz0nJwphY19jdF9HTlVfQ1hYPScnCmFjX2N0X0dOVV9GNzc9JycKYWNfY3RfR05VX0ZD PScnCmFjX2N0X0dOVV9HQ0o9JycKYW1fQVVUT0NPTkY9J2F1dG9jb25mJwphbV9BVVRPSEVBREVS PSdhdXRvaGVhZGVyJwphbV9BVVRPTTRURT0nYXV0b200dGUnCmFtX0FVVE9SRUNPTkY9J2F1dG9y ZWNvbmYnCmFtX0FVVE9VUERBVEU9J2F1dG91cGRhdGUnCmFtX19FWEVFWFRfRkFMU0U9JyMnCmFt X19FWEVFWFRfVFJVRT0nJwphbV9faXNyYz0nJwphbV9fbGVhZGluZ19kb3Q9Jy4nCmFtX19ybV9m X25vdGZvdW5kPScnCmFtX190YXI9J3RhciBjaGYgLSAiJCR0YXJkaXIiJwphbV9fdW50YXI9J3Rh ciB4ZiAtJwphbV9feGFyZ3Nfbj0neGFyZ3MgLW4nCmFtX2NhbmRpZGF0ZV9zaD0nJwphbWRpcj0n JHtwa2d2ZGF0YWRpcn0vYW0nCmF1dG9tYWtlX2FjZGlyPScke2RhdGFkaXJ9L2FjbG9jYWwtMS4x OCcKYmluZGlyPScke2V4ZWNfcHJlZml4fS9iaW4nCmJ1aWxkPSdhYXJjaDY0LWFwcGxlLWRhcndp bjI1LjUuMCcKYnVpbGRfYWxpYXM9JycKYnVpbGRfY3B1PSdhYXJjaDY0JwpidWlsZF9vcz0nZGFy d2luMjUuNS4wJwpidWlsZF92ZW5kb3I9J2FwcGxlJwpkYXRhZGlyPScke2RhdGFyb290ZGlyfScK ZGF0YXJvb3RkaXI9JyR7cHJlZml4fS9zaGFyZScKZG9jZGlyPScke2RhdGFyb290ZGlyfS9kb2Mv JHtQQUNLQUdFX1RBUk5BTUV9JwpkdmlkaXI9JyR7ZG9jZGlyfScKZXhlY19wcmVmaXg9JyR7cHJl Zml4fScKaG9zdD0nYWFyY2g2NC1hcHBsZS1kYXJ3aW4yNS41LjAnCmhvc3RfYWxpYXM9JycKaG9z dF9jcHU9J2FhcmNoNjQnCmhvc3Rfb3M9J2RhcndpbjI1LjUuMCcKaG9zdF92ZW5kb3I9J2FwcGxl JwpodG1sZGlyPScke2RvY2Rpcn0nCmluY2x1ZGVkaXI9JyR7cHJlZml4fS9pbmNsdWRlJwppbmZv ZGlyPScke2RhdGFyb290ZGlyfS9pbmZvJwppbnN0YWxsX3NoPScke1NIRUxMfSAvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS9saWIvaW5zdGFsbC1zaCcKbGliZGlyPScke2V4ZWNfcHJlZml4fS9saWIn CmxpYmV4ZWNkaXI9JyR7ZXhlY19wcmVmaXh9L2xpYmV4ZWMnCmxvY2FsZWRpcj0nJHtkYXRhcm9v dGRpcn0vbG9jYWxlJwpsb2NhbHN0YXRlZGlyPScke3ByZWZpeH0vdmFyJwptYW5kaXI9JyR7ZGF0 YXJvb3RkaXJ9L21hbicKbWtkaXJfcD0nJChNS0RJUl9QKScKb2xkaW5jbHVkZWRpcj0nL3Vzci9p bmNsdWRlJwpwZGZkaXI9JyR7ZG9jZGlyfScKcGtndmRhdGFkaXI9JyR7ZGF0YWRpcn0vYXV0b21h a2UtMS4xOCcKcHJlZml4PScvdXNyL2xvY2FsJwpwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPSdzLHgs eCwnCnBzZGlyPScke2RvY2Rpcn0nCnJlcXVpcmVkX2F1dG9jb25mX3ZlcnNpb249JzIuNjUnCnJ1 bnN0YXRlZGlyPScke2xvY2Fsc3RhdGVkaXJ9L3J1bicKc2JpbmRpcj0nJHtleGVjX3ByZWZpeH0v c2JpbicKc2NyaXB0ZGlyPScke3BrZ3ZkYXRhZGlyfScKc2hhcmVkc3RhdGVkaXI9JyR7cHJlZml4 fS9jb20nCnN5c2NvbmZkaXI9JyR7cHJlZml4fS9ldGMnCnN5c3RlbV9hY2Rpcj0nJHtkYXRhZGly fS9hY2xvY2FsJwp0YXJnZXRfYWxpYXM9JycKCiMjIC0tLS0tLS0tLS0tICMjCiMjIGNvbmZkZWZz LmguICMjCiMjIC0tLS0tLS0tLS0tICMjCgovKiBjb25mZGVmcy5oICovCiNkZWZpbmUgUEFDS0FH RV9OQU1FICJHTlUgQXV0b21ha2UiCiNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJhdXRvbWFrZSIK I2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjEuMTguMS45MSIKI2RlZmluZSBQQUNLQUdFX1NUUklO RyAiR05VIEF1dG9tYWtlIDEuMTguMS45MSIKI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVn LWF1dG9tYWtlQGdudS5vcmciCiNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5v cmcvc29mdHdhcmUvYXV0b21ha2UvIgoKY29uZmlndXJlOiBleGl0IAoKCiMjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0gIyMKIyMgUnVubmluZyBjb25maWcuc3RhdHVzLiAjIwojIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tICMjCgoKVGhpcyBmaWxlIHdhcyBleHRlbmRlZCBieSBHTlUgQXV0b21ha2Ug Y29uZmlnLnN0YXR1cyAxLjE4LjEuOTEsIHdoaWNoIHdhcwpnZW5lcmF0ZWQgYnkgR05VIEF1dG9j b25mIDIuNzMuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKCiAgQ09ORklHX0ZJTEVTICAg ID0gCiAgQ09ORklHX0hFQURFUlMgID0gCiAgQ09ORklHX0xJTktTICAgID0gCiAgQ09ORklHX0NP TU1BTkRTID0gCiAgJCAuL2NvbmZpZy5zdGF0dXMgLS1maWxlPS0KCm9uIG5ldy1ob3N0LTMuaG9t ZQoKCiMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKIyMgUnVubmluZyBjb25maWcuc3RhdHVz LiAjIwojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCgpUaGlzIGZpbGUgd2FzIGV4dGVuZGVk IGJ5IEdOVSBBdXRvbWFrZSBjb25maWcuc3RhdHVzIDEuMTguMS45MSwgd2hpY2ggd2FzCmdlbmVy YXRlZCBieSBHTlUgQXV0b2NvbmYgMi43My4gIEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcwoK ICBDT05GSUdfRklMRVMgICAgPSAKICBDT05GSUdfSEVBREVSUyAgPSAKICBDT05GSUdfTElOS1Mg ICAgPSAKICBDT05GSUdfQ09NTUFORFMgPSAKICAkIC4vY29uZmlnLnN0YXR1cyAtLWZpbGU9LQoK b24gbmV3LWhvc3QtMy5ob21lCgojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCiMjIFJ1bm5p bmcgY29uZmlnLnN0YXR1cy4gIyMKIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwoKClRoaXMg ZmlsZSB3YXMgZXh0ZW5kZWQgYnkgR05VIEF1dG9tYWtlIGNvbmZpZy5zdGF0dXMgMS4xOC4xLjkx LCB3aGljaCB3YXMKZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjczLiAgSW52b2NhdGlvbiBj b21tYW5kIGxpbmUgd2FzCgogIENPTkZJR19GSUxFUyAgICA9IAogIENPTkZJR19IRUFERVJTICA9 IAogIENPTkZJR19MSU5LUyAgICA9IAogIENPTkZJR19DT01NQU5EUyA9IAogICQgLi9jb25maWcu c3RhdHVzIC0tZmlsZT0tCgpvbiBuZXctaG9zdC0zLmhvbWUKCiMjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0gIyMKIyMgUnVubmluZyBjb25maWcuc3RhdHVzLiAjIwojIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tICMjCgpUaGlzIGZpbGUgd2FzIGV4dGVuZGVkIGJ5IEdOVSBBdXRvbWFrZSBjb25maWcu c3RhdHVzIDEuMTguMS45MSwgd2hpY2ggd2FzCmdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi43 My4gIEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcwoKICBDT05GSUdfRklMRVMgICAgPSAKICBD T05GSUdfSEVBREVSUyAgPSAKICBDT05GSUdfTElOS1MgICAgPSAKICBDT05GSUdfQ09NTUFORFMg PSAKICAkIC4vY29uZmlnLnN0YXR1cyAtLWZpbGU9LQoKb24gbmV3LWhvc3QtMy5ob21lCgojIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCiMjIFJ1bm5pbmcgY29uZmlnLnN0YXR1cy4gIyMKIyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwoKVGhpcyBmaWxlIHdhcyBleHRlbmRlZCBieSBHTlUg QXV0b21ha2UgY29uZmlnLnN0YXR1cyAxLjE4LjEuOTEsIHdoaWNoIHdhcwpnZW5lcmF0ZWQgYnkg R05VIEF1dG9jb25mIDIuNzMuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKCiAgQ09ORklH X0ZJTEVTICAgID0gCiAgQ09ORklHX0hFQURFUlMgID0gCiAgQ09ORklHX0xJTktTICAgID0gCiAg Q09ORklHX0NPTU1BTkRTID0gCiAgJCAuL2NvbmZpZy5zdGF0dXMgLS1maWxlPS0KCm9uIG5ldy1o b3N0LTMuaG9tZQoKCiMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKIyMgUnVubmluZyBjb25m aWcuc3RhdHVzLiAjIwojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCgpUaGlzIGZpbGUgd2Fz IGV4dGVuZGVkIGJ5IEdOVSBBdXRvbWFrZSBjb25maWcuc3RhdHVzIDEuMTguMS45MSwgd2hpY2gg d2FzCmdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi43My4gIEludm9jYXRpb24gY29tbWFuZCBs aW5lIHdhcwoKICBDT05GSUdfRklMRVMgICAgPSAKICBDT05GSUdfSEVBREVSUyAgPSAKICBDT05G SUdfTElOS1MgICAgPSAKICBDT05GSUdfQ09NTUFORFMgPSAKICAkIC4vY29uZmlnLnN0YXR1cyAt LWZpbGU9LQoKb24gbmV3LWhvc3QtMy5ob21lCgoKIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAj IwojIyBSdW5uaW5nIGNvbmZpZy5zdGF0dXMuICMjCiMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g IyMKClRoaXMgZmlsZSB3YXMgZXh0ZW5kZWQgYnkgR05VIEF1dG9tYWtlIGNvbmZpZy5zdGF0dXMg MS4xOC4xLjkxLCB3aGljaCB3YXMKZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjczLiAgSW52 b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCgogIENPTkZJR19GSUxFUyAgICA9IAogIENPTkZJR19I RUFERVJTICA9IAogIENPTkZJR19MSU5LUyAgICA9IAogIENPTkZJR19DT01NQU5EUyA9IAogICQg Li9jb25maWcuc3RhdHVzIC0tZmlsZT0tCgpvbiBuZXctaG9zdC0zLmhvbWUKCisgY2F0IC91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL2Jpbi9hY2xvY2FsLTEuMTgKIyEvdXNyL2Jpbi9wZXJsCiMgYWNs b2NhbCAtIGNyZWF0ZSBhY2xvY2FsLm00IGJ5IHNjYW5uaW5nIGNvbmZpZ3VyZS5hYyAgICAgIC0q LSBwZXJsIC0qLQojIEdlbmVyYXRlZCBmcm9tIGJpbi9hY2xvY2FsLmluOyBkbyBub3QgZWRpdCBi eSBoYW5kLgojIENvcHlyaWdodCAoQykgMTk5Ni0yMDI2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgoKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0aW9uKQojIGFueSBs YXRlciB2ZXJzaW9uLgoKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgoKIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhp cyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4K CiMgV3JpdHRlbiBieSBUb20gVHJvbWV5IDx0cm9tZXlAcmVkaGF0LmNvbT4sIGFuZAojIEFsZXhh bmRyZSBEdXJldC1MdXR6IDxhZGxAZ251Lm9yZz4uCgp1c2UgNS4wMDY7IHVzZSBzdHJpY3Q7IHVz ZSB3YXJuaW5nczsKCkJFR0lOCnsKICB1bnNoaWZ0IChASU5DLCAnL3Vzci9sb2NhbC9zaGFyZS9h dXRvbWFrZS0xLjE4JykKICAgIHVubGVzcyAkRU5We0FVVE9NQUtFX1VOSU5TVEFMTEVEfTsKfQoK dXNlIEZpbGU6OkJhc2VuYW1lOwp1c2UgRmlsZTo6UGF0aCAoKTsKCnVzZSBBdXRvbWFrZTo6Q29u ZmlnOwp1c2UgQXV0b21ha2U6OkdlbmVyYWw7CnVzZSBBdXRvbWFrZTo6Q29uZmlndXJlX2FjOwp1 c2UgQXV0b21ha2U6OkNoYW5uZWxzOwp1c2UgQXV0b21ha2U6OkNoYW5uZWxEZWZzOwp1c2UgQXV0 b21ha2U6OlhGaWxlOwp1c2UgQXV0b21ha2U6OkZpbGVVdGlsczsKCiMgU29tZSBnbG9iYWxzLgoK IyBTdXBwb3J0IEFDX0NPTkZJR19NQUNST19ESVJTIGFsc28gd2l0aCBvbGRlciBhdXRvY29uZi4K IyBGSVhNRTogVG8gYmUgcmVtb3ZlZCBpbiBBdXRvbWFrZSAyLjAsIG9uY2Ugd2UgY2FuIGFzc3Vt ZSBhdXRvY29uZgojICAgICAgICAyLjcwIG9yIGxhdGVyLgojIEZJWE1FOiBrZWVwIGluIHN5bmMg d2l0aCAnaW50ZXJuYWwvYWMtY29uZmlnLW1hY3JvLWRpcnMubTQnLgpteSAkYWNfY29uZmlnX21h Y3JvX2RpcnNfZmFsbGJhY2sgPQogICdtNF9pZm5kZWYoW0FDX0NPTkZJR19NQUNST19ESVJTXSwg WycgLgogICAgJ200X2RlZnVuKFtfQU1fQ09ORklHX01BQ1JPX0RJUlNdLCBbXSknIC4KICAgICdt NF9kZWZ1bihbQUNfQ09ORklHX01BQ1JPX0RJUlNdLCBbX0FNX0NPTkZJR19NQUNST19ESVJTKCRA KV0pJyAuCiAgJ10pJzsKCiMgV2UgZG8gbm90IG9wZXJhdGUgaW4gdGhyZWFkZWQgbW9kZS4KJHBl cmxfdGhyZWFkcyA9IDA7CgojIEluY2x1ZGUgcGF0aHMgZm9yIHNlYXJjaGluZyBtYWNyb3MuICBX ZSBzZWFyY2ggbWFjcm9zIGluIHRoaXMgb3JkZXI6CiMgdXNlci1zdXBwbGllZCBkaXJlY3Rvcmll cyBmaXJzdCwgdGhlbiB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlCiMgYXV0b21ha2UgbWFj cm9zLCBhbmQgZmluYWxseSB0aGUgc3lzdGVtLXdpZGUgZGlyZWN0b3JpZXMgZm9yCiMgdGhpcmQt cGFydHkgbWFjcm9zLgojIEB1c2VyX2luY2x1ZGVzIGNhbiBiZSBhdWdtZW50ZWQgd2l0aCAtSSBv ciBBQ19DT05GSUdfTUFDUk9fRElSUy4KIyBAYXV0b21ha2VfaW5jbHVkZXMgY2FuIGJlIHJlc2V0 IHdpdGggdGhlICctLWF1dG9tYWtlLWFjZGlyJyBvcHRpb24uCiMgQHN5c3RlbV9pbmNsdWRlcyBj YW4gYmUgYXVnbWVudGVkIHdpdGggdGhlICdkaXJsaXN0JyBmaWxlIG9yIHRoZQojIC0tYWNsb2Nh bC1wYXRoIG9wdGlvbi9BQ0xPQ0FMX1BBVEggZW52aXJvbm1lbnQgdmFyaWFibGUsIGFuZCByZXNl dAojIHdpdGggdGhlICctLXN5c3RlbS1hY2Rpcicgb3B0aW9uLgpteSBAdXNlcl9pbmNsdWRlcyA9 ICgpOwpteSBAYXV0b21ha2VfaW5jbHVkZXMgPSAoJy91c3IvbG9jYWwvc2hhcmUvYWNsb2NhbC0n IC4gJEFQSVZFUlNJT04pOwpteSBAc3lzdGVtX2luY2x1ZGVzID0gKCcvdXNyL2xvY2FsL3NoYXJl L2FjbG9jYWwnKTsKbXkgJGFjbG9jYWxfcGF0aCA9ICcnOwoKIyBXaGV0aGVyIHdlIHNob3VsZCBj b3B5IE00IGZpbGUgaW4gJHVzZXJfaW5jbHVkZXNbMF0uCm15ICRpbnN0YWxsID0gMDsKCiMgLS1k aWZmCm15IEBkaWZmX2NvbW1hbmQ7CgojIC0tZHJ5LXJ1bgpteSAkZHJ5X3J1biA9IDA7CgojIGNv bmZpZ3VyZS5hYyBvciBjb25maWd1cmUuaW4uCm15ICRjb25maWd1cmVfYWM7CgojIE91dHB1dCBm aWxlIG5hbWUuCm15ICRvdXRwdXRfZmlsZSA9ICdhY2xvY2FsLm00JzsKCiMgT3B0aW9uIC0tZm9y Y2UuCm15ICRmb3JjZV9vdXRwdXQgPSAwOwoKIyBNb2RpZmljYXRpb24gdGltZSBvZiB0aGUgeW91 bmdlc3QgZGVwZW5kZW5jeS4KbXkgJGdyZWF0ZXN0X210aW1lID0gMDsKCiMgV2hpY2ggbWFjcm9z IGhhdmUgYmVlbiBzZWVuLgpteSAlbWFjcm9fc2VlbiA9ICgpOwoKIyBSZW1lbWJlciB0aGUgb3Jk ZXIgaW50byB3aGljaCB3ZSBzY2FubmVkIHRoZSBmaWxlcy4KIyBJdCdzIGltcG9ydGFudCB0byBv dXRwdXQgdGhlIGNvbnRlbnRzIG9mIGFjbG9jYWwubTQgaW4gdGhlIG9wcG9zaXRlIG9yZGVyLgoj IChEZWZpbml0aW9ucyBpbiBmaXJzdCBmaWxlcyB3ZSBoYXZlIHNjYW5uZWQgc2hvdWxkIG92ZXJy aWRlIHRob3NlIGZyb20KIyBsYXRlciBmaWxlcy4gIFNvIHRoZXkgbXVzdCBhcHBlYXIgbGFzdCBp biB0aGUgb3V0cHV0LikKbXkgQGZpbGVfb3JkZXIgPSAoKTsKCiMgTWFwIG1hY3JvIG5hbWVzIHRv IGZpbGUgbmFtZXMuCm15ICVtYXAgPSAoKTsKCiMgRGl0dG8sIGJ1dCByZWNvcmRzIHRoZSBsYXN0 IGRlZmluaXRpb24gb2YgZWFjaCBtYWNybyBhcyByZXR1cm5lZCBieSAtLXRyYWNlLgpteSAlbWFw X3RyYWNlZF9kZWZzID0gKCk7CgojIE1hcCBiYXNlbmFtZXMgdG8gbWFjcm8gbmFtZXMuCm15ICVp bnZtYXAgPSAoKTsKCiMgTWFwIGZpbGUgbmFtZXMgdG8gZmlsZSBjb250ZW50cy4KbXkgJWZpbGVf Y29udGVudHMgPSAoKTsKCiMgTWFwIGZpbGUgbmFtZXMgdG8gZmlsZSB0eXBlcy4KbXkgJWZpbGVf dHlwZSA9ICgpOwp1c2UgY29uc3RhbnQgRlRfVVNFUiA9PiAxOwp1c2UgY29uc3RhbnQgRlRfQVVU T01BS0UgPT4gMjsKdXNlIGNvbnN0YW50IEZUX1NZU1RFTSA9PiAzOwoKIyBNYXAgZmlsZSBuYW1l cyB0byBpbmNsdWRlZCBmaWxlcyAodHJhbnNpdGl2ZWx5IGNsb3NlZCkuCm15ICVmaWxlX2luY2x1 ZGVzID0gKCk7CgojIEZpbGVzIHdoaWNoIGhhdmUgYWxyZWFkeSBiZWVuIGFkZGVkLgpteSAlZmls ZV9hZGRlZCA9ICgpOwoKIyBGaWxlcyB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIHNjYW5uZWQuCm15 ICVzY2FubmVkX2NvbmZpZ3VyZV9kZXAgPSAoKTsKCiMgU2VyaWFsIG51bWJlcnMsIGZvciBmaWxl cyB0aGF0IGhhdmUgb25lLgojIFRoZSBrZXkgaXMgdGhlIGJhc2VuYW1lIG9mIHRoZSBmaWxlLAoj IHRoZSB2YWx1ZSBpcyB0aGUgc2VyaWFsIG51bWJlciByZXByZXNlbnRlZCBhcyBhIGxpc3QuCm15 ICVzZXJpYWwgPSAoKTsKCiMgTWF0Y2hlcyBhIG1hY3JvIGRlZmluaXRpb24uCiMgICBBQ19ERUZV TihbbWFjcm9uYW1lXSwgLi4uKQojIG9yCiMgICBBQ19ERUZVTihtYWNyb25hbWUsIC4uLikKIyBX aGVuIG1hY3JvbmFtZSBpcyAnWyctcXVvdGVkICwgd2UgYWNjZXB0IGFueSBjaGFyYWN0ZXIgaW4g dGhlIG5hbWUsCiMgZXhjZXB0ICddJy4gIE90aGVyd2lzZSBtYWNyb25hbWUgc3RvcHMgb24gdGhl IGZpcnN0ICddJywgJywnLCAnKScsCiMgb3IgJ1xuJyBlbmNvdW50ZXJlZC4KbXkgJGFjX2RlZnVu X3J4ID0KICAiKD86QVVfQUxJQVN8QVtDVV1fREVGVU58QUNfREVGVU5fT05DRSlcXCgoPzpcXFso W15dXSspXFxdfChbXl0sKVxuXSspKSI7CgojIE1hdGNoZXMgYW4gQUNfUkVRVUlSRSBsaW5lLgpt eSAkYWNfcmVxdWlyZV9yeCA9ICJBQ19SRVFVSVJFXFwoKD86XFxbKFteXV0rKVxcXXwoW15dLClc bl0rKSlcXCkiOwoKIyBNYXRjaGVzIGFuIG00X2luY2x1ZGUgbGluZS4KbXkgJG00X2luY2x1ZGVf cnggPSAiKG00X3xtNF9zfHMpaW5jbHVkZVxcKCg/OlxcWyhbXl1dKylcXF18KFteXSwpXG5dKykp XFwpIjsKCiMgTWF0Y2ggYSBzZXJpYWwgbnVtYmVyLgpteSAkc2VyaWFsX2xpbmVfcnggPSAnXiNc cypzZXJpYWxccysoXFMqKSc7Cm15ICRzZXJpYWxfbnVtYmVyX3J4ID0gJ15cZCsoPzpcLlxkKykq JCc7CgojIEF1dG9jb25mIHZlcnNpb24uICBUaGlzIHZhcmlhYmxlIGlzIHNldCBieSAndHJhY2Vf dXNlZF9tYWNyb3MnLgpteSAkYWNfdmVyc2lvbjsKCiMgVXNlciBkaXJlY3RvcnkgY29udGFpbmlu ZyBleHRyYSBtNCBmaWxlcyBmb3IgbWFjcm9zIGRlZmluaXRpb24sCiMgYXMgZXh0cmFjdGVkIGZy b20gY2FsbHMgdG8gdGhlIG1hY3JvIEFDX0NPTkZJR19NQUNST19ESVJTLgojIFRoaXMgdmFyaWFi bGUgaXMgdXBkYXRlZCBieSAndHJhY2VfdXNlZF9tYWNyb3MnLgpteSBAYWNfY29uZmlnX21hY3Jv X2RpcnM7CgojIElmIHNldCwgbmFtZXMgYSB0ZW1wb3JhcnkgZmlsZSB0aGF0IG11c3QgYmUgZXJh c2VkIG9uIGFibm9ybWFsIGV4aXQuCm15ICRlcmFzZV9tZTsKCiMgQ29uc3RhbnRzIGZvciB0aGUg JEVSUl9MRVZFTCBwYXJhbWV0ZXIgb2YgdGhlICdzY2FuX200X2RpcnMnIGZ1bmN0aW9uLgp1c2Ug Y29uc3RhbnQgU0NBTl9NNF9ESVJTX1NJTEVOVCA9PiAwOwp1c2UgY29uc3RhbnQgU0NBTl9NNF9E SVJTX1dBUk4gPT4gMTsKdXNlIGNvbnN0YW50IFNDQU5fTTRfRElSU19FUlJPUiA9PiAyOwoKIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIwoKIyBQcm90b3R5cGVzIGZvciBhbGwgc3Vicm91dGluZXMuCgpzdWIgYWRkX2ZpbGUgKCQp OwpzdWIgYWRkX21hY3JvICgkKTsKc3ViIGNoZWNrX2FjaW5jbHVkZSAoKTsKc3ViIGluc3RhbGxf ZmlsZSAoJCQpOwpzdWIgbGlzdF9jb21wYXJlIChcQFxAKTsKc3ViIHBhcnNlX0FDTE9DQUxfUEFU SCAoKTsKc3ViIHBhcnNlX2FyZ3VtZW50cyAoKTsKc3ViIHJlc2V0X21hcHMgKCk7CnN1YiBzY2Fu X2NvbmZpZ3VyZSAoKTsKc3ViIHNjYW5fY29uZmlndXJlX2RlcCAoJCk7CnN1YiBzY2FuX2ZpbGUg KCQkJCk7CnN1YiBzY2FuX200X2RpcnMgKCQkQCk7CnN1YiBzY2FuX200X2ZpbGVzICgpOwpzdWIg c3RyaXBfcmVkdW5kYW50X2luY2x1ZGVzICglKTsKc3ViIHRyYWNlX3VzZWRfbWFjcm9zICgpOwpz dWIgdW5saW5rX3RtcCAoOyQpOwpzdWIgdXNhZ2UgKCQpOwpzdWIgdmVyc2lvbiAoKTsKc3ViIHdy aXRlX2FjbG9jYWwgKCRAKTsKc3ViIHhta2Rpcl9wICgkKTsKCiMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCiMgRXJhc2UgdGVt cG9yYXJ5IGZpbGUgRVJBU0VfTUUuICBIYW5kbGUgc2lnbmFscy4Kc3ViIHVubGlua190bXAgKDsk KQp7CiAgbXkgKCRzaWcpID0gQF87CgogIGlmICgkc2lnKQogICAgewogICAgICB2ZXJiICJjYXVn aHQgU0lHJHNpZywgYmFpbGluZyBvdXQiOwogICAgfQogIGlmIChkZWZpbmVkICRlcmFzZV9tZSAm JiAtZSAkZXJhc2VfbWUgJiYgIXVubGluayAoJGVyYXNlX21lKSkKICAgIHsKICAgICAgZmF0YWwg ImNvdWxkIG5vdCByZW1vdmUgJyRlcmFzZV9tZSc6ICQhIjsKICAgIH0KICB1bmRlZiAkZXJhc2Vf bWU7CgogICMgcmVyYWlzZSBkZWZhdWx0IGhhbmRsZXIuCiAgaWYgKCRzaWcpCiAgICB7CiAgICAg ICRTSUd7JHNpZ30gPSAnREVGQVVMVCc7CiAgICAgIGtpbGwgJHNpZyA9PiAkJDsKICAgIH0KfQoK JFNJR3snSU5UJ30gPSAkU0lHeydURVJNJ30gPSAkU0lHeydRVUlUJ30gPSAkU0lHeydIVVAnfSA9 ICd1bmxpbmtfdG1wJzsKRU5EIHsgdW5saW5rX3RtcCB9CgpzdWIgeG1rZGlyX3AgKCQpCnsKICBt eSAkZGlyID0gc2hpZnQ7CiAgbG9jYWwgJEAgPSB1bmRlZjsKICByZXR1cm4KICAgIGlmIC1kICRk aXIgb3IgZXZhbCB7IEZpbGU6OlBhdGg6Om1rcGF0aCAkZGlyIH07CiAgY2hvbXAgJEA7CiAgJEAg PX4gcy9ccythdFxzLipcYmxpbmVcc1xkKy4qJC8vOwogIGZhdGFsICJjb3VsZCBub3QgY3JlYXRl IGRpcmVjdG9yeSAnJGRpcic6ICRAIjsKfQoKIyBDaGVjayBtYWNyb3MgaW4gYWNpbmNsdWRlLm00 LiAgSWYgb25lIGlzIG5vdCB1c2VkLCB3YXJuLgpzdWIgY2hlY2tfYWNpbmNsdWRlICgpCnsKICBm b3JlYWNoIG15ICRrZXkgKHNvcnQga2V5cyAlbWFwKQogICAgewogICAgICAjIEZJWE1FOiBzaG91 bGQgcHJpbnQgbGluZSBudW1iZXIgb2YgYWNpbmNsdWRlLm00LgogICAgICBtc2cgKCdzeW50YXgn LCAibWFjcm8gJyRrZXknIGRlZmluZWQgaW4gYWNpbmNsdWRlLm00IGJ1dCBuZXZlciB1c2VkIikK CWlmICRtYXB7JGtleX0gZXEgJ2FjaW5jbHVkZS5tNCcgJiYgISBleGlzdHMgJG1hY3JvX3NlZW57 JGtleX07CiAgICB9Cn0KCnN1YiByZXNldF9tYXBzICgpCnsKICAkZ3JlYXRlc3RfbXRpbWUgPSAw OwogICVtYWNyb19zZWVuID0gKCk7CiAgQGZpbGVfb3JkZXIgPSAoKTsKICAlbWFwID0gKCk7CiAg JW1hcF90cmFjZWRfZGVmcyA9ICgpOwogICVmaWxlX2NvbnRlbnRzID0gKCk7CiAgJWZpbGVfdHlw ZSA9ICgpOwogICVmaWxlX2luY2x1ZGVzID0gKCk7CiAgJWZpbGVfYWRkZWQgPSAoKTsKICAlc2Nh bm5lZF9jb25maWd1cmVfZGVwID0gKCk7CiAgJWludm1hcCA9ICgpOwogICVzZXJpYWwgPSAoKTsK ICB1bmRlZiAmc2VhcmNoOwp9CgojIGluc3RhbGxfZmlsZSAoJFNSQywgJERFU1RESVIpCnN1YiBp bnN0YWxsX2ZpbGUgKCQkKQp7CiAgbXkgKCRzcmMsICRkZXN0ZGlyKSA9IEBfOwogIG15ICRkZXN0 ID0gJGRlc3RkaXIgLiAiLyIgLiBiYXNlbmFtZSAoJHNyYyk7CiAgbXkgJGRpZmZfZGVzdDsKCiAg dmVyYiAiaW5zdGFsbGluZyAkc3JjIHRvICRkZXN0IjsKCiAgaWYgKCRmb3JjZV9vdXRwdXQKICAg ICAgfHwgIWV4aXN0cyAkZmlsZV9jb250ZW50c3skZGVzdH0KICAgICAgfHwgJGZpbGVfY29udGVu dHN7JHNyY30gbmUgJGZpbGVfY29udGVudHN7JGRlc3R9KQogICAgewogICAgICBpZiAoLWUgJGRl c3QpCgl7CgkgIG1zZyAnbm90ZScsICJvdmVyd3JpdGluZyAnJGRlc3QnIHdpdGggJyRzcmMnIjsK CSAgJGRpZmZfZGVzdCA9ICRkZXN0OwoJfQogICAgICBlbHNlCgl7CgkgIG1zZyAnbm90ZScsICJp bnN0YWxsaW5nICckZGVzdCcgZnJvbSAnJHNyYyciOwoJfQoKICAgICAgaWYgKEBkaWZmX2NvbW1h bmQpCgl7CgkgIGlmICghIGRlZmluZWQgJGRpZmZfZGVzdCkKCSAgICB7CgkgICAgICAjICRkZXN0 IGRvZXMgbm90IGV4aXN0LiAgV2UgY3JlYXRlIGFuIGVtcHR5IG9uZSBqdXN0IHRvCgkgICAgICAj IHJ1biBkaWZmLCBhbmQgd2UgZXJhc2UgaXQgYWZ0ZXJ3YXJkLiAgVXNpbmcgdGhlIHJlYWwKCSAg ICAgICMgZGVzdGluYXRpb24gZmlsZSAocmF0aGVyIHRoYW4gYSB0ZW1wb3JhcnkgZmlsZSkgaXMK CSAgICAgICMgZ29vZCB3aGVuIGRpZmYgaXMgcnVuIHdpdGggb3B0aW9ucyB0aGF0IGRpc3BsYXkg dGhlCgkgICAgICAjIGZpbGUgbmFtZS4KCSAgICAgICMKCSAgICAgICMgSWYgY3JlYXRpbmcgJGRl c3QgZmFpbHMsIGZhbGwgYmFjayB0byAvZGV2L251bGwuICBBdAoJICAgICAgIyBsZWFzdCBvbmUg ZGlmZiBpbXBsZW1lbnRhdGlvbiAoVHJ1NjQncykgY2Fubm90IGRlYWwKCSAgICAgICMgd2l0aCAv ZGV2L251bGwuICBIb3dldmVyIHdvcmtpbmcgYXJvdW5kIHRoaXMgaXMgbm90CgkgICAgICAjIHdv cnRoIHRoZSB0cm91YmxlIHNpbmNlIG5vYm9keSBydW4gYWNsb2NhbCBvbiBhCgkgICAgICAjIHJl YWQtb25seSB0cmVlIGFueXdheS4KCSAgICAgICRlcmFzZV9tZSA9ICRkZXN0OwoJICAgICAgbXkg JGYgPSBuZXcgSU86OkZpbGUgIj4gJGRlc3QiOwoJICAgICAgaWYgKCEgZGVmaW5lZCAkZikKCQl7 CgkJICB1bmRlZiAkZXJhc2VfbWU7CgkJICAkZGlmZl9kZXN0ID0gJy9kZXYvbnVsbCc7CgkJfQoJ ICAgICAgZWxzZQoJCXsKCQkgICRkaWZmX2Rlc3QgPSAkZGVzdDsKCQkgICRmLT5jbG9zZTsKCQl9 CgkgICAgfQoJICBteSBAY21kID0gKEBkaWZmX2NvbW1hbmQsICRkaWZmX2Rlc3QsICRzcmMpOwoJ ICAkISA9IDA7CgkgIHZlcmIgInJ1bm5pbmc6IEBjbWQiOwoJICBteSAkcmVzID0gc3lzdGVtIChA Y21kKTsKCSAgQXV0b21ha2U6OkZpbGVVdGlsczo6aGFuZGxlX2V4ZWNfZXJyb3JzICJAY21kIiwg MQoJICAgIGlmICRyZXM7CgkgIHVubGlua190bXA7Cgl9CiAgICAgIGVsc2lmICghJGRyeV9ydW4p Cgl7CiAgICAgICAgICB4bWtkaXJfcCAoJGRlc3RkaXIpOwoJICB4c3lzdGVtICgnY3AnLCAkc3Jj LCAkZGVzdCk7Cgl9CiAgICB9Cn0KCiMgQ29tcGFyZSB0d28gbGlzdHMgb2YgbnVtYmVycy4Kc3Vi IGxpc3RfY29tcGFyZSAoXEBcQCkKewogIG15IEBsID0gQHskX1swXX07CiAgbXkgQHIgPSBAeyRf WzFdfTsKICB3aGlsZSAoMSkKICAgIHsKICAgICAgaWYgKDAgPT0gQGwpCgl7CgkgIHJldHVybiAo MCA9PSBAcikgPyAwIDogLTE7Cgl9CiAgICAgIGVsc2lmICgwID09IEByKQoJewoJICByZXR1cm4g MTsKCX0KICAgICAgZWxzaWYgKCRsWzBdIDwgJHJbMF0pCgl7CgkgIHJldHVybiAtMTsKCX0KICAg ICAgZWxzaWYgKCRsWzBdID4gJHJbMF0pCgl7CgkgIHJldHVybiAxOwoJfQogICAgICBzaGlmdCBA bDsKICAgICAgc2hpZnQgQHI7CiAgICB9Cn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCiMgc2Nhbl9tNF9kaXJzKCRUWVBF LCAkRVJSX0xFVkVMLCBARElSUykKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQojIFNjYW4gYWxsIE00IGZpbGVzIGluc3RhbGxlZCBpbiBARElSUyBmb3Ig bmV3IG1hY3JvIGRlZmluaXRpb25zLgojIFJlZ2lzdGVyIGVhY2ggZmlsZSBhcyBvZiB0eXBlICRU WVBFIChvbmUgb2YgdGhlIEZUXyogY29uc3RhbnRzKS4KIyBJZiBhIGRpcmVjdG9yeSBpbiBARElS UyBjYW5ub3QgYmUgcmVhZDoKIyAgLSBmYWlsIGhhcmQgICAgICAgICAgICAgICAgaWYgJEVSUl9M RVZFTCA9PSBTQ0FOX000X0RJUlNfRVJST1IKIyAgLSBqdXN0IHByaW50IGEgd2FybmluZyAgICAg aWYgJEVSUl9MRVZFTCA9PSBTQ0FOX000X0RJUlNfV0EKIyAgLSBjb250aW51ZSBzaWxlbnRseSAg ICAgICAgaWYgJEVSUl9MRVZFTCA9PSBTQ0FOX000X0RJUlNfU0lMRU5UCnN1YiBzY2FuX200X2Rp cnMgKCQkQCkKewogIG15ICgkdHlwZSwgJGVycl9sZXZlbCwgQGRpcmxpc3QpID0gQF87CgogIGZv cmVhY2ggbXkgJG00ZGlyIChAZGlybGlzdCkKICAgIHsKICAgICAgaWYgKCEgb3BlbmRpciAoRElS LCAkbTRkaXIpKQoJewoJICAjIFRPRE86IG1heWJlIGF2b2lkIGNvbXBsYWluaW5nIG9ubHkgaWYg ZXJybm8gPT0gRU5PTkVOVD8KICAgICAgICAgIG15ICRtZXNzYWdlID0gImNvdWxkbid0IG9wZW4g ZGlyZWN0b3J5ICckbTRkaXInOiAkISI7CgogICAgICAgICAgaWYgKCRlcnJfbGV2ZWwgPT0gU0NB Tl9NNF9ESVJTX0VSUk9SKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgZmF0YWwgJG1lc3Nh Z2U7CiAgICAgICAgICAgIH0KICAgICAgICAgIGVsc2lmICgkZXJyX2xldmVsID09IFNDQU5fTTRf RElSU19XQVJOKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgbXNnICgndW5zdXBwb3J0ZWQn LCAkbWVzc2FnZSk7CiAgICAgICAgICAgICAgbmV4dDsKICAgICAgICAgICAgfQogICAgICAgICAg ZWxzaWYgKCRlcnJfbGV2ZWwgPT0gU0NBTl9NNF9ESVJTX1NJTEVOVCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgIG5leHQ7ICMgU2lsZW50bHkgaWdub3JlLgogICAgICAgICAgICB9CiAgICAg ICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgcHJvZ19lcnJvciAiaW52YWxp ZCBcJGVycl9sZXZlbCB2YWx1ZSAnJGVycl9sZXZlbCciOwogICAgICAgICAgICB9Cgl9CgogICAg ICAjIFdlIHJldmVyc2UgdGhlIGRpcmVjdG9yeSBjb250ZW50cyBzbyB0aGF0IGZvbzIubTQgZ2V0 cwogICAgICAjIHVzZWQgaW4gcHJlZmVyZW5jZSB0byBmb28xLm00LgogICAgICBmb3JlYWNoIG15 ICRmaWxlIChyZXZlcnNlIHNvcnQgZ3JlcCAoISAvXlwuLywgcmVhZGRpciAoRElSKSkpCgl7Cgkg ICMgT25seSBleGFtaW5lIC5tNCBmaWxlcy4KCSAgbmV4dCB1bmxlc3MgJGZpbGUgPX4gL1wubTQk LzsKCgkgICMgU2tpcCBzb21lIGZpbGVzIHdoZW4gcnVubmluZyBvdXQgb2Ygc3JjZGlyLgoJICBu ZXh0IGlmICRmaWxlIGVxICdhY2xvY2FsLm00JzsKCgkgIG15ICRmdWxsZmlsZSA9IEZpbGU6OlNw ZWMtPmNhbm9ucGF0aCAoIiRtNGRpci8kZmlsZSIpOwoJICBzY2FuX2ZpbGUgKCR0eXBlLCAkZnVs bGZpbGUsICdhY2xvY2FsJyk7Cgl9CiAgICAgIGNsb3NlZGlyIChESVIpOwogICAgfQp9CgojIFNj YW4gYWxsIHRoZSBpbnN0YWxsZWQgbTQgZmlsZXMgYW5kIGNvbnN0cnVjdCBhIG1hcC4Kc3ViIHNj YW5fbTRfZmlsZXMgKCkKewogICMgRmlyc3QsIHNjYW4gY29uZmlndXJlLmFjLiAgSXQgbWF5IGNv bnRhaW4gbWFjcm8gZGVmaW5pdGlvbnMsCiAgIyBvciBtYXkgaW5jbHVkZSBvdGhlciBmaWxlcyB0 aGF0IGRlZmluZSBtYWNyb3MuCiAgc2Nhbl9maWxlIChGVF9VU0VSLCAkY29uZmlndXJlX2FjLCAn YWNsb2NhbCcpOwoKICAjIFRoZW4sIHNjYW4gYWNpbmNsdWRlLm00IGlmIGl0IGV4aXN0cy4KICBp ZiAoLWYgJ2FjaW5jbHVkZS5tNCcpCiAgICB7CiAgICAgIHNjYW5fZmlsZSAoRlRfVVNFUiwgJ2Fj aW5jbHVkZS5tNCcsICdhY2xvY2FsJyk7CiAgICB9CgogICMgRmluYWxseSwgc2NhbiBhbGwgZmls ZXMgaW4gb3VyIHNlYXJjaCBwYXRocy4KCiAgaWYgKEB1c2VyX2luY2x1ZGVzKQogICAgewogICAg ICAjIERvbid0IGV4cGxvcmUgdGhlIHNhbWUgZGlyZWN0b3J5IG11bHRpcGxlIHRpbWVzLiAgVGhp cyBpcyBoZXJlIG5vdAogICAgICAjIG9ubHkgZm9yIHNwZWVkdXAgcHVycG9zZXMuICBXZSBuZWVk IHRoaXMgd2hlbiB0aGUgdXNlciBoYXMgZS5nLgogICAgICAjIHNwZWNpZmllZCAnQUNMT0NBTF9B TUZMQUdTID0gLUkgbTQnIGFuZCBoYXMgYWxzbyBzZXQKICAgICAgIyBBQ19DT05GSUdfTUFDUk9f RElSW1NdKFttNF0pIGluIGNvbmZpZ3VyZS5hYy4gIFRoaXMgbWFrZXMgdGhlICdtNCcKICAgICAg IyBkaXJlY3RvcnkgdG8gb2NjdXIgdHdpY2UgaGVyZSBhbmQgZmFpbCBvbiB0aGUgc2Vjb25kIGNh bGwgdG8KICAgICAgIyBzY2FuX200X2RpcnMoW200XSkgd2hlbiB0aGUgJ200JyBkaXJlY3Rvcnkg ZG9lc24ndCBleGlzdC4KICAgICAgIyBUT0RPOiBTaG91bGRuJ3QgdGhlcmUgYmUgcmF0aGVyIGEg Y2hlY2sgaW4gc2Nhbl9tNF9kaXJzIGZvcgogICAgICAjICAgICAgIEB1c2VyX2luY2x1ZGVzWzBd PwogICAgICBAdXNlcl9pbmNsdWRlcyA9IHVuaXEgQHVzZXJfaW5jbHVkZXM7CgogICAgICAjIERv bid0IGNvbXBsYWluIGlmIHRoZSBmaXJzdCB1c2VyIGRpcmVjdG9yeSBkb2Vzbid0IGV4aXN0LCBp biBjYXNlCiAgICAgICMgd2UgbmVlZCB0byBjcmVhdGUgaXQgbGF0ZXIgKGNhbiBoYXBwZW4gaWYg Jy0taW5zdGFsbCcgd2FzIGdpdmVuKS4KICAgICAgc2Nhbl9tNF9kaXJzIChGVF9VU0VSLAogICAg ICAgICAgICAgICAgICAgICRpbnN0YWxsID8gU0NBTl9NNF9ESVJTX1NJTEVOVCA6IFNDQU5fTTRf RElSU19XQVJOLAogICAgICAgICAgICAgICAgICAgICR1c2VyX2luY2x1ZGVzWzBdKTsKICAgICAg c2Nhbl9tNF9kaXJzIChGVF9VU0VSLAogICAgICAgICAgICAgICAgICAgIFNDQU5fTTRfRElSU19F UlJPUiwKCQkgICAgQHVzZXJfaW5jbHVkZXNbMS4uJCN1c2VyX2luY2x1ZGVzXSk7CiAgICB9CiAg c2Nhbl9tNF9kaXJzIChGVF9BVVRPTUFLRSwgU0NBTl9NNF9ESVJTX0VSUk9SLCBAYXV0b21ha2Vf aW5jbHVkZXMpOwogIHNjYW5fbTRfZGlycyAoRlRfU1lTVEVNLCBTQ0FOX000X0RJUlNfRVJST1Is IEBzeXN0ZW1faW5jbHVkZXMpOwoKICAjIENvbnN0cnVjdCBhIG5ldyBmdW5jdGlvbiB0aGF0IGRv ZXMgdGhlIHNlYXJjaGluZy4gIFdlIHVzZSBhCiAgIyBmdW5jdGlvbiAoaW5zdGVhZCBvZiBqdXN0 IGV2YWx1YXRpbmcgJHNlYXJjaCBpbiB0aGUgbG9vcCkgc28gdGhhdAogICMgImRpZSIgaXMgY29y cmVjdGx5IGFuZCBlYXNpbHkgcHJvcGFnYXRlZCBpZiBydW4uCiAgbXkgJHNlYXJjaCA9ICJzdWIg c2VhcmNoIHtcbm15IFwkZm91bmQgPSAwO1xuIjsKICBmb3JlYWNoIG15ICRrZXkgKHJldmVyc2Ug c29ydCBrZXlzICVtYXApCiAgICB7CiAgICAgICRzZWFyY2ggLj0gKCdpZiAoL1xiXFEnIC4gJGtl eSAuICdcRSg/IVx3KS8pIHsgYWRkX21hY3JvICgiJyAuICRrZXkKCQkgIC4gJyIpOyAkZm91bmQg PSAxOyB9JyAuICJcbiIpOwogICAgfQogICRzZWFyY2ggLj0gInJldHVybiBcJGZvdW5kO1xufTtc biI7CiAgZXZhbCAkc2VhcmNoOwogIHByb2dfZXJyb3IgIiRAXG4gc2VhcmNoIGlzICRzZWFyY2gi IGlmICRAOwp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCgojIEFkZCBhIG1hY3JvIHRvIHRoZSBvdXRwdXQuCnN1YiBhZGRf bWFjcm8gKCQpCnsKICBteSAoJG1hY3JvKSA9IEBfOwoKICAjIElnbm9yZSB1bmtub3duIHJlcXVp cmVkIG1hY3Jvcy4gIEVpdGhlciB0aGV5IGFyZSBub3QgcmVhbGx5CiAgIyBuZWVkZWQgKGUuZy4s IGEgY29uZGl0aW9uYWwgQUNfUkVRVUlSRSksIGluIHdoaWNoIGNhc2UgYWNsb2NhbAogICMgc2hv dWxkIGJlIHF1aWV0LCBvciB0aGV5IGFyZSBuZWVkZWQgYW5kIEF1dG9jb25mIGl0c2VsZiB3aWxs CiAgIyBjb21wbGFpbiB3aGVuIHdlIHRyYWNlIGZvciBtYWNybyB1c2FnZSBsYXRlci4KICByZXR1 cm4gdW5sZXNzIGRlZmluZWQgJG1hcHskbWFjcm99OwoKICB2ZXJiICJzYXcgbWFjcm8gJG1hY3Jv IjsKICAkbWFjcm9fc2VlbnskbWFjcm99ID0gMTsKICBhZGRfZmlsZSAoJG1hcHskbWFjcm99KTsK fQoKIyBzY2FuX2NvbmZpZ3VyZV9kZXAgKCRmaWxlKQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiMgU2NhbiBhIGNvbmZpZ3VyZSBkZXBlbmRlbmN5IChjb25maWd1cmUuYWMsIG9yIHNlcGFy YXRlIG00IGZpbGVzKQojIGZvciB1c2VzIG9mIGtub3duIG1hY3JvcyBhbmQgQUNfUkVRVUlSRXMg b2YgcG9zc2libHkgdW5rbm93biBtYWNyb3MuCiMgUmVjdXJzaXZlbHkgc2NhbiBtNF9pbmNsdWRl ZCBmaWxlcy4Kc3ViIHNjYW5fY29uZmlndXJlX2RlcCAoJCkKewogIG15ICgkZmlsZSkgPSBAXzsK ICAjIERvIG5vdCBzY2FuIGEgZmlsZSB0d2ljZS4KICByZXR1cm4gKCkKICAgIGlmIGV4aXN0cyAk c2Nhbm5lZF9jb25maWd1cmVfZGVweyRmaWxlfTsKICAkc2Nhbm5lZF9jb25maWd1cmVfZGVweyRm aWxlfSA9IDE7CgogIG15ICRtdGltZSA9IG10aW1lICRmaWxlOwogICRncmVhdGVzdF9tdGltZSA9 ICRtdGltZSBpZiAkZ3JlYXRlc3RfbXRpbWUgPCAkbXRpbWU7CgogIG15ICRjb250ZW50cyA9IGV4 aXN0cyAkZmlsZV9jb250ZW50c3skZmlsZX0gPwogICAgJGZpbGVfY29udGVudHN7JGZpbGV9IDog Y29udGVudHMgJGZpbGU7CgogIG15ICRsaW5lID0gMDsKICBteSBAcmxpc3QgPSAoKTsKICBteSBA aWxpc3QgPSAoKTsKICBmb3JlYWNoIChzcGxpdCAoIlxuIiwgJGNvbnRlbnRzKSkKICAgIHsKICAg ICAgKyskbGluZTsKICAgICAgIyBSZW1vdmUgY29tbWVudHMgZnJvbSBjdXJyZW50IGxpbmUuCiAg ICAgIHMvXGJkbmxcYi4qJC8vOwogICAgICBzL1wjLiokLy87CiAgICAgICMgQXZvaWQgcnVubmlu ZyBhbGwgdGhlIGZvbGxvd2luZyByZWdleGVzIG9uIHdoaXRlIGxpbmVzLgogICAgICBuZXh0IGlm IC9eXHMqJC87CgogICAgICB3aGlsZSAoLyRtNF9pbmNsdWRlX3J4L2dvKQoJewoJICBteSAkaWZp bGUgPSAkMiB8fCAkMzsKCSAgIyBTa2lwIG1pc3NpbmcgJ3NpbmNsdWRlJ2QgZmlsZXMuCgkgIG5l eHQgaWYgJDEgbmUgJ200XycgJiYgISAtZiAkaWZpbGU7CgkgIHB1c2ggQGlsaXN0LCAkaWZpbGU7 Cgl9CgogICAgICB3aGlsZSAoLyRhY19yZXF1aXJlX3J4L2dvKQoJewoJICBwdXNoIChAcmxpc3Qs ICQxIHx8ICQyKTsKCX0KCiAgICAgICMgVGhlIHNlYXJjaCBmdW5jdGlvbiBpcyBjb25zdHJ1Y3Rl ZCBkeW5hbWljYWxseSBieQogICAgICAjIHNjYW5fbTRfZmlsZXMuICBUaGUgbGFzdCBwYXJlbnRo ZXRpY2FsIG1hdGNoIG1ha2VzIHN1cmUgd2UKICAgICAgIyBkb24ndCBtYXRjaCB0aGluZ3MgdGhh dCBsb29rIGxpa2UgbWFjcm8gYXNzaWdubWVudHMgb3IKICAgICAgIyBBQ19TVUJTVHMuCiAgICAg IGlmICghICZzZWFyY2ggJiYgLyhefFxzKykoQU1fW0EtWjAtOV9dKykoJHxbXlxdXCk9QS1aMC05 X10pLykKCXsKCSAgIyBNYWNybyBub3QgZm91bmQsIGJ1dCBBTV8gcHJlZml4IGZvdW5kLgoJICAj IE1ha2UgdGhpcyBqdXN0IGEgd2FybmluZywgYmVjYXVzZSB3ZSBkbyBub3Qga25vdyB3aGV0aGVy CgkgICMgdGhlIG1hY3JvIGlzIGFjdHVhbGx5IHVzZWQgKGl0IGNvdWxkIGJlIGNhbGxlZCBjb25k aXRpb25hbGx5KS4KCSAgbXNnICgndW5zdXBwb3J0ZWQnLCAiJGZpbGU6JGxpbmUiLAoJICAgICAg ICJtYWNybyAnJDInIG5vdCBmb3VuZCBpbiBsaWJyYXJ5Iik7Cgl9CiAgICB9CgogIGFkZF9tYWNy byAoJF8pIGZvcmVhY2ggKEBybGlzdCk7CiAgc2Nhbl9jb25maWd1cmVfZGVwICgkXykgZm9yZWFj aCBAaWxpc3Q7Cn0KCiMgYWRkX2ZpbGUgKCRGSUxFKQojIC0tLS0tLS0tLS0tLS0tLS0KIyBBZGQg JEZJTEUgdG8gb3V0cHV0LgpzdWIgYWRkX2ZpbGUgKCQpCnsKICBteSAoJGZpbGUpID0gQF87Cgog ICMgT25seSBhZGQgYSBmaWxlIG9uY2UuCiAgcmV0dXJuIGlmICgkZmlsZV9hZGRlZHskZmlsZX0p OwogICRmaWxlX2FkZGVkeyRmaWxlfSA9IDE7CgogIHNjYW5fY29uZmlndXJlX2RlcCAkZmlsZTsK fQoKIyBQb2ludCB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdW5kZXJxdW90ZWQgQUNfREVGVU4g b25seSBvbmNlLgpteSAkdW5kZXJxdW90ZWRfbWFudWFsX29uY2UgPSAwOwoKIyBzY2FuX2ZpbGUg KCRUWVBFLCAkRklMRSwgJFdIRVJFKQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiMgU2NhbiBhIHNpbmdsZSBNNCBmaWxlICgkRklMRSksIGFuZCBhbGwgZmlsZXMgaXQgaW5jbHVk ZXMuCiMgUmV0dXJuIHRoZSBsaXN0IG9mIGluY2x1ZGVkIGZpbGVzLgojICRUWVBFIGlzIG9uZSBv ZiBGVF9VU0VSLCBGVF9BVVRPTUFLRSwgb3IgRlRfU1lTVEVNLCBkZXBlbmRpbmcKIyBvbiB3aGVy ZSB0aGUgZmlsZSBjb21lcyBmcm9tLgojICRXSEVSRSBpcyB0aGUgbG9jYXRpb24gdG8gdXNlIGlu IHRoZSBkaWFnbm9zdGljIGlmIHRoZSBmaWxlCiMgZG9lcyBub3QgZXhpc3QuCnN1YiBzY2FuX2Zp bGUgKCQkJCkKewogIG15ICgkdHlwZSwgJGZpbGUsICR3aGVyZSkgPSBAXzsKICBteSAkYmFzZW5h bWUgPSBiYXNlbmFtZSAkZmlsZTsKCiAgIyBEbyBub3Qgc2NhbiB0aGUgc2FtZSBmaWxlIHR3aWNl LgogIHJldHVybiBAeyRmaWxlX2luY2x1ZGVzeyRmaWxlfX0gaWYgZXhpc3RzICRmaWxlX2luY2x1 ZGVzeyRmaWxlfTsKICAjIFByZXZlbnQgcG90ZW50aWFsIGluZmluaXRlIHJlY3Vyc2lvbiAoaWYg dHdvIGZpbGVzIGluY2x1ZGUgZWFjaCBvdGhlcikuCiAgcmV0dXJuICgpIGlmIGV4aXN0cyAkZmls ZV9jb250ZW50c3skZmlsZX07CgogIHVuc2hpZnQgQGZpbGVfb3JkZXIsICRmaWxlOwoKICAkZmls ZV90eXBleyRmaWxlfSA9ICR0eXBlOwoKICBmYXRhbCAiJHdoZXJlOiBmaWxlICckZmlsZScgZG9l cyBub3QgZXhpc3QiIGlmICEgLWUgJGZpbGU7CgogIG15ICRmaCA9IG5ldyBBdXRvbWFrZTo6WEZp bGUgJGZpbGU7CiAgbXkgJGNvbnRlbnRzID0gJyc7CiAgbXkgQGluY19maWxlcyA9ICgpOwogIG15 ICVpbmNfbGluZXMgPSAoKTsKCiAgbXkgJGRlZnVuX3NlZW4gPSAwOwogIG15ICRzZXJpYWxfc2Vl biA9IDA7CiAgbXkgJHNlcmlhbF9vbGRlciA9IDA7CgogIHdoaWxlICgkXyA9ICRmaC0+Z2V0bGlu ZSkKICAgIHsKICAgICAgIyBJZ25vcmUgJyMjJyBsaW5lcy4KICAgICAgbmV4dCBpZiAvXiMjLzsK CiAgICAgICRjb250ZW50cyAuPSAkXzsKICAgICAgbXkgJGxpbmUgPSAkXzsKCiAgICAgIGlmICgk bGluZSA9fiAvJHNlcmlhbF9saW5lX3J4L2dvKQoJewoJICBteSAkbnVtYmVyID0gJDE7CgkgIGlm ICgkbnVtYmVyICF+IC8kc2VyaWFsX251bWJlcl9yeC9nbykKCSAgICB7CgkgICAgICBtc2cgKCdz eW50YXgnLCAiJGZpbGU6JC4iLAoJCSAgICJpbGwtZm9ybWVkIHNlcmlhbCBudW1iZXIgJyRudW1i ZXInLCAiCgkJICAgLiAiZXhwZWN0aW5nIGEgdmVyc2lvbiBzdHJpbmcgd2l0aCBvbmx5IGRpZ2l0 cyBhbmQgZG90cyIpOwoJICAgIH0KCSAgZWxzaWYgKCRkZWZ1bl9zZWVuKQoJICAgIHsKCSAgICAg ICMgYWNsb2NhbCByZW1vdmVzIGFsbCBkZWZpbml0aW9ucyBmcm9tIE00IGZpbGUgd2l0aCB0aGUK CSAgICAgICMgc2FtZSBiYXNlbmFtZSBpZiBhIGdyZWF0ZXIgc2VyaWFsIG51bWJlciBpcyBmb3Vu ZC4KCSAgICAgICMgRW5jb3VudGVyaW5nIGEgc2VyaWFsIGFmdGVyIHNvbWUgbWFjcm9zIHdpbGwg dW5kZWZpbmUKCSAgICAgICMgdGhlc2UgbWFjcm9zLi4uCgkgICAgICBtc2cgKCdzeW50YXgnLCAi JGZpbGU6JC4iLAoJCSAgICd0aGUgc2VyaWFsIG51bWJlciBtdXN0IGFwcGVhciBiZWZvcmUgYW55 IG1hY3JvIGRlZmluaXRpb24nKTsKCSAgICB9CgkgICMgV2UgcmVhbGx5IGNhcmUgYWJvdXQgc2Vy aWFscyBvbmx5IGZvciBub24tYXV0b21ha2UgbWFjcm9zCgkgICMgYW5kIHdoZW4gLS1pbnN0YWxs IGlzIHVzZWQuICBCdXQgdGhlIGFib3ZlIGRpYWdub3N0aWNzIGFyZQoJICAjIG1hZGUgcmVnYXJk bGVzcyBvZiB0aGlzLCBiZWNhdXNlIG5vdCB1c2luZyAtLWluc3RhbGwgaXMKCSAgIyBub3QgYSBy ZWFzb24gbm90IHRoZSBmaXggbWFjcm8gZmlsZXMuCgkgIGVsc2lmICgkaW5zdGFsbCAmJiAkdHlw ZSAhPSBGVF9BVVRPTUFLRSkKCSAgICB7CgkgICAgICAkc2VyaWFsX3NlZW4gPSAxOwoJICAgICAg bXkgQG5ldyA9IHNwbGl0ICgvXC4vLCAkbnVtYmVyKTsKCgkgICAgICB2ZXJiICIkZmlsZTokLjog c2VyaWFsICRudW1iZXIiOwoKCSAgICAgIGlmICghZXhpc3RzICRzZXJpYWx7JGJhc2VuYW1lfQoJ CSAgfHwgbGlzdF9jb21wYXJlIChAbmV3LCBAeyRzZXJpYWx7JGJhc2VuYW1lfX0pID4gMCkKCQl7 CgkJICAjIERlbGV0ZSBhbnkgZGVmaW5pdGlvbiB3ZSBrbmV3IGZyb20gdGhlIG9sZCBtYWNyby4K CQkgIGZvcmVhY2ggbXkgJGRlZiAoQHskaW52bWFweyRiYXNlbmFtZX19KQoJCSAgICB7CgkJICAg ICAgdmVyYiAiJGZpbGU6JC46IGlnbm9yaW5nIHByZXZpb3VzIGRlZmluaXRpb24gb2YgJGRlZiI7 CgkJICAgICAgZGVsZXRlICRtYXB7JGRlZn07CgkJICAgIH0KCQkgICRpbnZtYXB7JGJhc2VuYW1l fSA9IFtdOwoJCSAgJHNlcmlhbHskYmFzZW5hbWV9ID0gXEBuZXc7CgkJfQoJICAgICAgZWxzZQoJ CXsKCQkgICRzZXJpYWxfb2xkZXIgPSAxOwoJCX0KCSAgICB9Cgl9CgogICAgICAjIFJlbW92ZSBj b21tZW50cyBmcm9tIGN1cnJlbnQgbGluZS4KICAgICAgIyBEbyBub3QgZG8gaXQgZWFybGllciwg YmVjYXVzZSB0aGUgc2VyaWFsIGxpbmUgaXMgYSBjb21tZW50LgogICAgICAkbGluZSA9fiBzL1xi ZG5sXGIuKiQvLzsKICAgICAgJGxpbmUgPX4gcy9cIy4qJC8vOwoKICAgICAgd2hpbGUgKCRsaW5l ID1+IC8kYWNfZGVmdW5fcngvZ28pCgl7CgkgICRkZWZ1bl9zZWVuID0gMTsKCSAgaWYgKCEgZGVm aW5lZCAkMSkKCSAgICB7CgkgICAgICBtc2cgKCdzeW50YXgnLCAiJGZpbGU6JC4iLCAidW5kZXJx dW90ZWQgZGVmaW5pdGlvbiBvZiAkMiIKCQkgICAuICJcbiAgcnVuIGluZm8gQXV0b21ha2UgJ0V4 dGVuZGluZyBhY2xvY2FsJ1xuIgoJCSAgIC4gIiAgb3Igc2VlIGh0dHBzOi8vd3d3LmdudS5vcmcv c29mdHdhcmUvYXV0b21ha2UvbWFudWFsLyIKCQkgICAuICJhdXRvbWFrZS5odG1sI0V4dGVuZGlu Zy1hY2xvY2FsIikKCQl1bmxlc3MgJHVuZGVycXVvdGVkX21hbnVhbF9vbmNlOwoJICAgICAgJHVu ZGVycXVvdGVkX21hbnVhbF9vbmNlID0gMTsKCSAgICB9CgoJICAjIElmIHRoaXMgbWFjcm8gZG9l cyBub3QgaGF2ZSBhIHNlcmlhbCBhbmQgd2UgaGF2ZSBhbHJlYWR5CgkgICMgc2VlbiBhIG1hY3Jv IHdpdGggdGhlIHNhbWUgYmFzZW5hbWUgZWFybGllciwgd2Ugc2hvdWxkCgkgICMgaWdub3JlIHRo ZSBtYWNybyAoZG9uJ3QgZXhpdCBpbW1lZGlhdGVseSBzbyB3ZSBjYW4gc3RpbGwKCSAgIyBkaWFn bm9zZSBsYXRlciAjc2VyaWFsIG51bWJlcnMgYW5kIHVuZGVycXVvdGVkIG1hY3JvcykuCgkgICRz ZXJpYWxfb2xkZXIgfHw9ICgkdHlwZSAhPSBGVF9BVVRPTUFLRQoJCQkgICAgICYmICEkc2VyaWFs X3NlZW4gJiYgZXhpc3RzICRzZXJpYWx7JGJhc2VuYW1lfSk7CgoJICBteSAkbWFjcm8gPSAkMSB8 fCAkMjsKCSAgaWYgKCEkc2VyaWFsX29sZGVyICYmICFkZWZpbmVkICRtYXB7JG1hY3JvfSkKCSAg ICB7CgkgICAgICB2ZXJiICJmb3VuZCBtYWNybyAkbWFjcm8gaW4gJGZpbGU6ICQuIjsKCSAgICAg ICRtYXB7JG1hY3JvfSA9ICRmaWxlOwoJICAgICAgcHVzaCBAeyRpbnZtYXB7JGJhc2VuYW1lfX0s ICRtYWNybzsKCSAgICB9CgkgIGVsc2UKCSAgICB7CgkgICAgICAjIE5vdGU6IHdlIHVzZWQgdG8g Z2l2ZSBhbiBlcnJvciBoZXJlIGlmIHdlIHNhdyBhCgkgICAgICAjIGR1cGxpY2F0ZWQgbWFjcm8u ICBIb3dldmVyLCB0aGlzIHR1cm5zIG91dCB0byBiZQoJICAgICAgIyBleHRyZW1lbHkgdW5wb3B1 bGFyLiAgSXQgY2F1c2VzIGFjdHVhbCBwcm9ibGVtcyB3aGljaAoJICAgICAgIyBhcmUgaGFyZCB0 byB3b3JrIGFyb3VuZCwgZXNwZWNpYWxseSB3aGVuIHlvdSBtdXN0CgkgICAgICAjIG1peC1hbmQt bWF0Y2ggdG9vbCB2ZXJzaW9ucy4KCSAgICAgIHZlcmIgImlnbm9yaW5nIG1hY3JvICRtYWNybyBp biAkZmlsZTogJC4iOwoJICAgIH0KCX0KCiAgICAgIHdoaWxlICgkbGluZSA9fiAvJG00X2luY2x1 ZGVfcngvZ28pCgl7CgkgIG15ICRpZmlsZSA9ICQyIHx8ICQzOwoJICAjIFNraXAgbWlzc2luZyAn c2luY2x1ZGUnZCBmaWxlcy4KCSAgbmV4dCBpZiAkMSBuZSAnbTRfJyAmJiAhIC1mICRpZmlsZTsK CSAgcHVzaCAoQGluY19maWxlcywgJGlmaWxlKTsKCSAgJGluY19saW5lc3skaWZpbGV9ID0gJC47 Cgl9CiAgICB9CgogICMgSWdub3JlIGFueSBmaWxlIHRoYXQgaGFzIGFuIG9sZCBzZXJpYWwgKG9y IG5vIHNlcmlhbCBpZiB3ZSBrbm93CiAgIyBhbm90aGVyIG9uZSB3aXRoIGEgc2VyaWFsKS4KICBy ZXR1cm4gKCkKICAgIGlmICgkc2VyaWFsX29sZGVyIHx8CgkoJHR5cGUgIT0gRlRfQVVUT01BS0Ug JiYgISRzZXJpYWxfc2VlbiAmJiBleGlzdHMgJHNlcmlhbHskYmFzZW5hbWV9KSk7CgogICRmaWxl X2NvbnRlbnRzeyRmaWxlfSA9ICRjb250ZW50czsKCiAgIyBGb3Igc29tZSByZWFzb24gSSBkb24n dCB1bmRlcnN0YW5kLCBpdCBkb2VzIG5vdCB3b3JrCiAgIyB0byBkbyAibWFwIHsgc2Nhbl9maWxl ICgkXywgLi4uKSB9IEBpbmNfZmlsZXMiIGJlbG93LgogICMgV2l0aCBQZXJsIDUuOC4yIGl0IHVu ZGVmaW5lcyBAaW5jX2ZpbGVzLgogIG15IEBjb3B5ID0gQGluY19maWxlczsKICBteSBAYWxsX2lu Y19maWxlcyA9IChAaW5jX2ZpbGVzLAoJCSAgICAgICBtYXAgeyBzY2FuX2ZpbGUgKCR0eXBlLCAk XywKCQkJCQkiJGZpbGU6JGluY19saW5lc3skX30iKSB9IEBjb3B5KTsKICAkZmlsZV9pbmNsdWRl c3skZmlsZX0gPSBcQGFsbF9pbmNfZmlsZXM7CiAgcmV0dXJuIEBhbGxfaW5jX2ZpbGVzOwp9Cgoj IHN0cmlwX3JlZHVuZGFudF9pbmNsdWRlcyAoJUZJTEVTKQojIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQojIEVhY2gga2V5IGluICVGSUxFUyBpcyBhIGZpbGUgdGhhdCBtdXN0IGJl IHByZXNlbnQgaW4gdGhlIG91dHB1dC4KIyBIb3dldmVyIHNvbWUgb2YgdGhlc2UgZmlsZXMgbWln aHQgYWxyZWFkeSBpbmNsdWRlIG90aGVyIGZpbGVzIGluICVGSUxFUywKIyBzbyB0aGVyZSBpcyBu byBwb2ludCBpbiBpbmNsdWRpbmcgdGhlbSBhbm90aGVyIHRpbWUuCiMgVGhpcyByZW1vdmVzIGl0 ZW1zIG9mICVGSUxFUyB3aGljaCBhcmUgYWxyZWFkeSBpbmNsdWRlZCBieSBhbm90aGVyIGZpbGUu CnN1YiBzdHJpcF9yZWR1bmRhbnRfaW5jbHVkZXMgKCUpCnsKICBteSAlZmlsZXMgPSBAXzsKCiAg IyBBbHdheXMgaW5jbHVkZSBhY2luY2x1ZGUubTQsIGV2ZW4gaWYgaXQgZG9lcyBub3QgYXBwZWFy IHRvIGJlIHVzZWQuCiAgJGZpbGVzeydhY2luY2x1ZGUubTQnfSA9IDEgaWYgLWYgJ2FjaW5jbHVk ZS5tNCc7CiAgIyBGaWxlIGluY2x1ZGVkIGJ5ICRjb25maWd1cmVfYWMgYXJlIHJlZHVuZGFudC4K ICAkZmlsZXN7JGNvbmZpZ3VyZV9hY30gPSAxOwoKICAjIEZpbGVzIGF0IHRoZSBlbmQgb2YgQGZp bGVfb3JkZXIgc2hvdWxkIG92ZXJyaWRlIHRob3NlIGF0IHRoZSBiZWdpbm5pbmcsCiAgIyBzbyBp dCBpcyBpbXBvcnRhbnQgdG8gcHJlc2VydmUgdGhlc2UgdHJhaWxpbmcgZmlsZXMuICBXZSBjYW4g cmVtb3ZlCiAgIyBhIGZpbGUgQSBpZiBpdCBpcyBnb2luZyB0byBiZSBvdXRwdXQgYmVmb3JlIGEg ZmlsZSBCIHRoYXQgaW5jbHVkZXMKICAjIGZpbGUgQSwgbm90IHRoZSBjb252ZXJzZS4KICBmb3Jl YWNoIG15ICRmaWxlIChyZXZlcnNlIEBmaWxlX29yZGVyKQogICAgewogICAgICBuZXh0IHVubGVz cyBleGlzdHMgJGZpbGVzeyRmaWxlfTsKICAgICAgZm9yZWFjaCBteSAkaWZpbGUgKEB7JGZpbGVf aW5jbHVkZXN7JGZpbGV9fSkKCXsKCSAgbmV4dCB1bmxlc3MgZXhpc3RzICRmaWxlc3skaWZpbGV9 OwoJICBkZWxldGUgJGZpbGVzeyRpZmlsZX07CgkgIHZlcmIgIiRpZmlsZSBpcyBhbHJlYWR5IGlu Y2x1ZGVkIGJ5ICRmaWxlIjsKCX0KICAgIH0KCiAgIyBjb25maWd1cmUuYWMgaXMgaW1wbGljaXRs eSBpbmNsdWRlZC4KICBkZWxldGUgJGZpbGVzeyRjb25maWd1cmVfYWN9OwoKICByZXR1cm4gJWZp bGVzOwp9CgpzdWIgdHJhY2VfdXNlZF9tYWNyb3MgKCkKewogIG15ICVmaWxlcyA9IG1hcCB7ICRt YXB7JF99ID0+IDEgfSBrZXlzICVtYWNyb19zZWVuOwogICVmaWxlcyA9IHN0cmlwX3JlZHVuZGFu dF9pbmNsdWRlcyAlZmlsZXM7CgogICMgU3VwcHJlc3MgYWxsIHdhcm5pbmdzIGZyb20gdGhpcyBp bnZvY2F0aW9uIG9mIGF1dG9tNHRlLgogICMgSW4gcGFydGljdWxhciB3ZSB3YW50IHRvIGF2b2lk IHNwdXJpb3VzIHdhcm5pbmdzIGFib3V0CiAgIyBtYWNyb3MgYmVpbmcgIm00X3JlcXVpcmUnZCBi dXQgbm90IG00X2RlZnVuJ2QiIGJlY2F1c2UKICAjIGFjbG9jYWwubTQgaXMgbm90IHlldCBhdmFp bGFibGUuCiAgbG9jYWwgJEVOVntXQVJOSU5HU30gPSAnbm9uZSc7CgogIG15ICR0cmFjZXMgPSAo JEVOVntBVVRPTTRURX0gfHwgJ2F1dG9tNHRlJyk7CiAgJHRyYWNlcyAuPSAiIC0tbGFuZ3VhZ2Ug QXV0b2NvbmYtd2l0aG91dC1hY2xvY2FsLW00ICI7CgogICMgU3VwcG9ydCBBQ19DT05GSUdfTUFD Uk9fRElSUyBhbHNvIHdpdGggb2xkZXIgYXV0b2NvbmYuCiAgIyBOb3RlIHRoYXQgd2UgY2FuJ3Qg dXNlICckYWNfY29uZmlnX21hY3JvX2RpcnNfZmFsbGJhY2snIGhlcmUsIGJlY2F1c2UKICAjIGEg YnVnIGluIG9wdGlvbiBwYXJzaW5nIGNvZGUgb2YgYXV0b200dGUgMi42OCBhbmQgZWFybGllciB3 b3VsZCBjYXVzZQogICMgaXQgdG8gcmVhZCBzdGFuZGFyZCBpbnB1dCBsYXN0LCBldmVuIGlmIHRo ZSAiLSIgYXJndW1lbnQgd2FzIHNwZWNpZmllZAogICMgZWFybHkuCiAgIyBGSVhNRTogVG8gYmUg cmVtb3ZlZCBpbiBBdXRvbWFrZSAyLjAsIG9uY2Ugd2UgY2FuIGFzc3VtZSBhdXRvY29uZgogICMg ICAgICAgIDIuNzAgb3IgbGF0ZXIuCiAgJHRyYWNlcyAuPSAiJGF1dG9tYWtlX2luY2x1ZGVzWzBd L2ludGVybmFsL2FjLWNvbmZpZy1tYWNyby1kaXJzLm00ICI7CgogICMgQWxsIGNhbmRpZGF0ZSBm aWxlcy4KICAkdHJhY2VzIC49IGpvaW4gKCcgJywKCQkgICAobWFwIHsgIickXyciIH0KCQkgICAg KGdyZXAgeyBleGlzdHMgJGZpbGVzeyRffSB9IEBmaWxlX29yZGVyKSkpIC4gIiAiOwoKICAjIEFs bCBjYW5kaWRhdGUgbWFjcm9zLgogICR0cmFjZXMgLj0gam9pbiAoJyAnLAoJCSAgIChtYXAgeyAi LS10cmFjZT0nJF86XCRmOjpcJG46Olwkezo6fSUnIiB9CgkJICAgICgnQUNfREVGVU4nLAoJCSAg ICAgJ0FDX0RFRlVOX09OQ0UnLAoJCSAgICAgJ0FVX0RFRlVOJywKCQkgICAgICdfQU1fQVVUT0NP TkZfVkVSU0lPTicsCgkJICAgICAnQUNfQ09ORklHX01BQ1JPX0RJUl9UUkFDRScsCiAgICAgICAg ICAgICAgICAgICAgICMgRklYTUU6IFRyYWNpbmcgdGhlIG5leHQgdHdvIG1hY3JvcyBpcyBhIGhh Y2sgZm9yCiAgICAgICAgICAgICAgICAgICAgICMgY29tcGF0aWJpbGl0eSB3aXRoIG9sZGVyIGF1 dG9jb25mLiAgUmVtb3ZlIHRoaXMgaW4KICAgICAgICAgICAgICAgICAgICAgIyBBdXRvbWFrZSAy LjAsIHdoZW4gd2UgY2FuIGFzc3VtZSBBdXRvY29uZiAyLjcwIG9yCiAgICAgICAgICAgICAgICAg ICAgICMgbGF0ZXIuCgkJICAgICAnQUNfQ09ORklHX01BQ1JPX0RJUicsCgkJICAgICAnX0FNX0NP TkZJR19NQUNST19ESVJTJykpLAoJCSAgICMgRG8gbm90IHRyYWNlICQxIGZvciBhbGwgb3RoZXIg bWFjcm9zIGFzIHdlIGRvCgkJICAgIyBub3QgbmVlZCBpdCBhbmQgaXQgbWlnaHQgY29udGFpbnMg aGFybWZ1bAoJCSAgICMgY2hhcmFjdGVycyAobGlrZSBuZXdsaW5lcykuCgkJICAgKG1hcCB7ICIt LXRyYWNlPSckXzpcJGY6OlwkbiciIH0gKHNvcnQga2V5cyAlbWFjcm9fc2VlbikpKTsKCiAgdmVy YiAicnVubmluZyBXQVJOSU5HUz0kRU5We1dBUk5JTkdTfSAkdHJhY2VzICRjb25maWd1cmVfYWMi OwoKICBteSAkdHJhY2VmaCA9IG5ldyBBdXRvbWFrZTo6WEZpbGUgKCIkdHJhY2VzICRjb25maWd1 cmVfYWMgfCIpOwoKICBAYWNfY29uZmlnX21hY3JvX2RpcnMgPSAoKTsKCiAgbXkgJXRyYWNlZCA9 ICgpOwoKICB3aGlsZSAoJF8gPSAkdHJhY2VmaC0+Z2V0bGluZSkKICAgIHsKICAgICAgY2hvbXA7 CiAgICAgIG15ICgkZmlsZSwgJG1hY3JvLCAkYXJnMSkgPSBzcGxpdCAoLzo6Lyk7CgogICAgICAk dHJhY2VkeyRtYWNyb30gPSAxIGlmIGV4aXN0cyAkbWFjcm9fc2VlbnskbWFjcm99OwoKICAgICAg aWYgKCRtYWNybyBlcSAnQUNfREVGVU4nIHx8ICRtYWNybyBlcSAnQUNfREVGVU5fT05DRScKICAg ICAgICAgICAgfHwgJG1hY3JvIGVxICdBVV9ERUZVTicpCiAgICAgICAgewogICAgICAgICAgJG1h cF90cmFjZWRfZGVmc3skYXJnMX0gPSAkZmlsZTsKICAgICAgICB9CiAgICAgIGVsc2lmICgkbWFj cm8gZXEgJ19BTV9BVVRPQ09ORl9WRVJTSU9OJykKICAgICAgICB7CiAgICAgICAgICAkYWNfdmVy c2lvbiA9ICRhcmcxOwogICAgICAgIH0KICAgICAgZWxzaWYgKCRtYWNybyBlcSAnQUNfQ09ORklH X01BQ1JPX0RJUl9UUkFDRScpCiAgICAgICAgewogICAgICAgICAgcHVzaCBAYWNfY29uZmlnX21h Y3JvX2RpcnMsICRhcmcxOwogICAgICAgIH0KICAgICAgIyBGSVhNRTogV2Ugc3RpbGwgbmVlZCB0 byB0cmFjZSBBQ19DT05GSUdfTUFDUk9fRElSCiAgICAgICMgZm9yIGNvbXBhdGliaWxpdHkgd2l0 aCBvbGRlciBhdXRvY29uZi4gIFJlbW92ZSB0aGlzCiAgICAgICMgb25jZSB3ZSBjYW4gYXNzdW1l IEF1dG9jb25mIDIuNzAgb3IgbGF0ZXIuCiAgICAgIGVsc2lmICgkbWFjcm8gZXEgJ0FDX0NPTkZJ R19NQUNST19ESVInKQogICAgICAgIHsKICAgICAgICAgIEBhY19jb25maWdfbWFjcm9fZGlycyA9 ICgkYXJnMSk7CiAgICAgICAgfQogICAgICAjIEZJWE1FOlRoaXMgaXMgYW4gaGFjayBmb3IgY29t cGF0aWJpbGl0eSB3aXRoIG9sZGVyIGF1dG9jb25mLgogICAgICAjIFJlbW92ZSB0aGlzIG9uY2Ug d2UgY2FuIGFzc3VtZSBBdXRvY29uZiAyLjcwIG9yIGxhdGVyLgogICAgICBlbHNpZiAoJG1hY3Jv IGVxICdfQU1fQ09ORklHX01BQ1JPX0RJUlMnKQogICAgICAgIHsKICAgICAgICAgICAjIEVtcHR5 IGxlYWRpbmcvdHJhaWxpbmcgZmllbGRzIG1pZ2h0IGJlIHByb2R1Y2VkIGJ5IHNwbGl0LAogICAg ICAgICAgICMgaGVuY2UgdGhlIGdyZXAgaXMgcmVhbGx5IG5lZWRlZC4KICAgICAgICAgICBwdXNo IEBhY19jb25maWdfbWFjcm9fZGlycywgZ3JlcCAoLy4vLCAoc3BsaXQgL1xzKy8sICRhcmcxKSk7 CiAgICAgICAgfQogICAgfQoKICAjIEZJWE1FOiBpbiBBdXRvY29uZiA+PSAyLjcwLCBBQ19DT05G SUdfTUFDUk9fRElSIGNhbGxzCiAgIyBBQ19DT05GSUdfTUFDUk9fRElSX1RSQUNFIGJlaGluZCB0 aGUgc2NlbmVzLCB3aGljaCBjb3VsZAogICMgbGVhdmUgdW53YW50ZWQgZHVwbGljYXRlcyBpbiBA YWNfY29uZmlnX21hY3JvX2RpcnMuCiAgIyBSZW1vdmUgdGhpcyBpbiBBdXRvbWFrZSAyLjAsIHdo ZW4gd2UnbGwgc3RvcCB0cmFjaW5nCiAgIyBBQ19DT05GSUdfTUFDUk9fRElSIGV4cGxpY2l0bHku CiAgQGFjX2NvbmZpZ19tYWNyb19kaXJzID0gdW5pcSBAYWNfY29uZmlnX21hY3JvX2RpcnM7Cgog ICR0cmFjZWZoLT5jbG9zZTsKCiAgcmV0dXJuICV0cmFjZWQ7Cn0KCnN1YiBzY2FuX2NvbmZpZ3Vy ZSAoKQp7CiAgIyBNYWtlIHN1cmUgd2UgaW5jbHVkZSBhY2luY2x1ZGUubTQgaWYgaXQgZXhpc3Rz LgogIGlmICgtZiAnYWNpbmNsdWRlLm00JykKICAgIHsKICAgICAgYWRkX2ZpbGUgKCdhY2luY2x1 ZGUubTQnKTsKICAgIH0KICBzY2FuX2NvbmZpZ3VyZV9kZXAgKCRjb25maWd1cmVfYWMpOwp9Cgoj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCgojIFdyaXRlIG91dHB1dC4KIyBSZXR1cm4gMCBpZmYgc29tZSBmaWxlcyB3ZXJlIGlu c3RhbGxlZCBsb2NhbGx5LgpzdWIgd3JpdGVfYWNsb2NhbCAoJEApCnsKICBteSAoJG91dHB1dF9m aWxlLCBAbWFjcm9zKSA9IEBfOwogIG15ICRvdXRwdXQgPSAnJzsKCiAgbXkgJWZpbGVzID0gKCk7 CiAgIyBHZXQgdGhlIGxpc3Qgb2YgZmlsZXMgY29udGFpbmluZyBkZWZpbml0aW9ucyBmb3IgdGhl IG1hY3JvcyB1c2VkLgogICMgKEZpbHRlciBvdXQgdW51c2VkIG1hY3JvIGRlZmluaXRpb25zIHdp dGggJG1hcF90cmFjZWRfZGVmcy4gIFRoaXMKICAjIGNhbiBoYXBwZW4gd2hlbiBhbiBBdXRvY29u ZiBtYWNybyBpcyBjb25kaXRpb25hbGx5IGRlZmluZWQ6CiAgIyBhY2xvY2FsIHNlZXMgdGhlIHBv dGVudGlhbCBkZWZpbml0aW9uLCBidXQgdGhpcyBkZWZpbml0aW9uIGlzCiAgIyBhY3R1YWxseSBu ZXZlciBwcm9jZXNzZWQgYW5kIHRoZSBBdXRvY29uZiBpbXBsZW1lbnRhdGlvbiBpcyB1c2VkCiAg IyBpbnN0ZWFkLikKICBmb3IgbXkgJG0gKEBtYWNyb3MpCiAgICB7CiAgICAgICRmaWxlc3skbWFw eyRtfX0gPSAxCglpZiAoZXhpc3RzICRtYXBfdHJhY2VkX2RlZnN7JG19CgkgICAgJiYgJG1hcHsk bX0gZXEgJG1hcF90cmFjZWRfZGVmc3skbX0pOwogICAgfQogICMgRG8gbm90IGV4cGxpY2l0bHkg aW5jbHVkZSBhIGZpbGUgdGhhdCBpcyBhbHJlYWR5IGluZGlyZWN0bHkgaW5jbHVkZWQuCiAgJWZp bGVzID0gc3RyaXBfcmVkdW5kYW50X2luY2x1ZGVzICVmaWxlczsKCiAgbXkgJGluc3RhbGxlZCA9 IDA7CgogIGZvciBteSAkZmlsZSAoZ3JlcCB7IGV4aXN0cyAkZmlsZXN7JF99IH0gQGZpbGVfb3Jk ZXIpCiAgICB7CiAgICAgICMgQ2hlY2sgdGhlIHRpbWUgc3RhbXAgb2YgdGhpcyBmaWxlLCBhbmQg b2YgYWxsIGZpbGVzIGl0IGluY2x1ZGVzLgogICAgICBmb3IgbXkgJGlmaWxlICgkZmlsZSwgQHsk ZmlsZV9pbmNsdWRlc3skZmlsZX19KQoJewoJICBteSAkbXRpbWUgPSBtdGltZSAkaWZpbGU7Cgkg ICRncmVhdGVzdF9tdGltZSA9ICRtdGltZSBpZiAkZ3JlYXRlc3RfbXRpbWUgPCAkbXRpbWU7Cgl9 CgogICAgICAjIElmIHRoZSBmaWxlIHRvIGFkZCBsb29rcyBsaWtlIG91dHNpZGUgdGhlIHByb2pl Y3QsIGNvcHkgaXQKICAgICAgIyB0byB0aGUgb3V0cHV0LiAgVGhlIHJlZ2V4IGNhdGNoZXMgZmls ZW5hbWVzIHN0YXJ0aW5nIHdpdGgKICAgICAgIyB0aGluZ3MgbGlrZSAnLycsICdcJywgb3IgJ2M6 XCcuCiAgICAgIGlmICgkZmlsZV90eXBleyRmaWxlfSAhPSBGVF9VU0VSCgkgIHx8ICRmaWxlID1+ IG0sXig/Olx3Oik/W1xcL10sKQoJewoJICBpZiAoISRpbnN0YWxsIHx8ICRmaWxlX3R5cGV7JGZp bGV9ICE9IEZUX1NZU1RFTSkKCSAgICB7CgkgICAgICAjIENvcHkgdGhlIGZpbGUgaW50byBhY2xv Y2FsLm00LgoJICAgICAgJG91dHB1dCAuPSAkZmlsZV9jb250ZW50c3skZmlsZX0gLiAiXG4iOwoJ ICAgIH0KCSAgZWxzZQoJICAgIHsKCSAgICAgICMgSW5zdGFsbCB0aGUgZmlsZSAoYW5kIGFueSBm aWxlIGl0IGluY2x1ZGVzKS4KCSAgICAgIG15ICRkZXN0OwoJICAgICAgZm9yIG15ICRpZmlsZSAo QHskZmlsZV9pbmNsdWRlc3skZmlsZX19LCAkZmlsZSkKCQl7CgkJICBpbnN0YWxsX2ZpbGUgKCRp ZmlsZSwgJHVzZXJfaW5jbHVkZXNbMF0pOwoJCX0KCSAgICAgICRpbnN0YWxsZWQgPSAxOwoJICAg IH0KCX0KICAgICAgZWxzZQoJewoJICAjIE90aGVyd2lzZSwgc2ltcGx5IGluY2x1ZGUgdGhlIGZp bGUuCgkgICRvdXRwdXQgLj0gIm00X2luY2x1ZGUoWyRmaWxlXSlcbiI7Cgl9CiAgICB9CgogIGlm ICgkaW5zdGFsbGVkKQogICAgewogICAgICB2ZXJiICJydW5uaW5nIGFjbG9jYWwgYW5ldywgYmVj YXVzZSBzb21lIGZpbGVzIHdlcmUgaW5zdGFsbGVkIGxvY2FsbHkiOwogICAgICByZXR1cm4gMDsK ICAgIH0KCiAgIyBOb3RoaW5nIHRvIG91dHB1dD8hCiAgIyBGSVhNRTogU2hvdWxkbid0IHdlIGRp YWdub3NlIHRoaXM/CiAgcmV0dXJuIDEgaWYgISBsZW5ndGggKCRvdXRwdXQpOwoKICBpZiAoJGFj X3ZlcnNpb24pCiAgICB7CiAgICAgICMgRG8gbm90IHVzZSAiJG91dHB1dF9maWxlIiBoZXJlIGZv ciB0aGUgc2FtZSByZWFzb24gd2UgZG8gbm90CiAgICAgICMgdXNlIGl0IGluIHRoZSBoZWFkZXIg YmVsb3cuICBhdXRvbTR0ZSB3aWxsIG91dHB1dCB0aGUgbmFtZSBvZgogICAgICAjIHRoZSBmaWxl IGluIHRoZSBkaWFnbm9zdGljIGFueXdheS4KICAgICAgJG91dHB1dCA9ICJtNF9pZm5kZWYoW0FD X0FVVE9DT05GX1ZFUlNJT05dLAogIFttNF9jb3B5KFttNF9QQUNLQUdFX1ZFUlNJT05dLCBbQUNf QVVUT0NPTkZfVkVSU0lPTl0pXSlkbmwKbTRfaWYobTRfZGVmbihbQUNfQVVUT0NPTkZfVkVSU0lP Tl0pLCBbJGFjX3ZlcnNpb25dLCwKW200X3dhcm5pbmcoW3RoaXMgZmlsZSB3YXMgZ2VuZXJhdGVk IGZvciBhdXRvY29uZiAkYWNfdmVyc2lvbi4KWW91IGhhdmUgYW5vdGhlciB2ZXJzaW9uIG9mIGF1 dG9jb25mLiAgSXQgbWF5IHdvcmssIGJ1dCBpcyBub3QgZ3VhcmFudGVlZCB0by4KSWYgeW91IGhh dmUgcHJvYmxlbXMsIHlvdSBtYXkgbmVlZCB0byByZWdlbmVyYXRlIHRoZSBidWlsZCBzeXN0ZW0g ZW50aXJlbHkuClRvIGRvIHNvLCB1c2UgdGhlIHByb2NlZHVyZSBkb2N1bWVudGVkIGJ5IHRoZSBw YWNrYWdlLCB0eXBpY2FsbHkgJ2F1dG9yZWNvbmYnLl0pXSkKCiRvdXRwdXQiOwogICAgfQoKICAj IFdlIHVzZWQgdG8gcHJpbnQgIiMgJG91dHB1dF9maWxlIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5 IGV0Yy4iICBCdXQKICAjIHRoaXMgY3JlYXRlcyBzcHVyaW91cyBkaWZmZXJlbmNlcyB3aGVuIHVz aW5nIGF1dG9yZWNvbmYuICBBdXRvcmVjb25mCiAgIyBjcmVhdGVzIGFjbG9jYWwubTR0IGFuZCB0 aGVuIHJlbmFtZSBpdCB0byBhY2xvY2FsLm00LCBidXQgdGhlCiAgIyByZWJ1aWxkIHJ1bGVzIGdl bmVyYXRlZCBieSBBdXRvbWFrZSBjcmVhdGUgYWNsb2NhbC5tNCBkaXJlY3RseSAtLQogICMgdGhp cyB3b3VsZCBnaXZlcyB0d28gd2F5cyB0byBnZXQgdGhlIHNhbWUgZmlsZSwgd2l0aCBhIGRpZmZl cmVudAogICMgbmFtZSBpbiB0aGUgaGVhZGVyLgogICRvdXRwdXQgPSAiIyBnZW5lcmF0ZWQgYXV0 b21hdGljYWxseSBieSBhY2xvY2FsICRWRVJTSU9OIC0qLSBBdXRvY29uZiAtKi0KCiMgQ29weXJp Z2h0IChDKSAxOTk2LSRSRUxFQVNFX1lFQVIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu CgojIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uCiMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0 ZSBpdCwKIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5v dGljZSBpcyBwcmVzZXJ2ZWQuCgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwg dG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CiMgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQojIFBBUlRJQ1VM QVIgUFVSUE9TRS4KCiRhY19jb25maWdfbWFjcm9fZGlyc19mYWxsYmFjawokb3V0cHV0IjsKCiAg IyBXZSB0cnkgbm90IHRvIHVwZGF0ZSAkb3V0cHV0X2ZpbGUgdW5sZXNzIG5lY2Vzc2FyeSwgYmVj YXVzZQogICMgZG9pbmcgc28gaW52YWxpZGF0ZSBBdXRvbTR0ZSdzIGNhY2hlIGFuZCB0aGVyZWZv cmUgc2xvd3MgZG93bgogICMgdG9vbHMgY2FsbGVkIGFmdGVyIGFjbG9jYWwuCiAgIwogICMgV2Ug bmVlZCB0byBvdmVyd3JpdGUgJG91dHB1dF9maWxlIGluIHRoZSBmb2xsb3dpbmcgc2l0dWF0aW9u cy4KICAjICAgKiBUaGUgLS1mb3JjZSBvcHRpb24gaXMgaW4gdXNlLgogICMgICAqIE9uZSBvZiB0 aGUgZGVwZW5kZW5jaWVzIGlzIHlvdW5nZXIuCiAgIyAgICAgKE5vdCB1cGRhdGluZyAkb3V0cHV0 X2ZpbGUgaW4gdGhpcyBzaXR1YXRpb24gd291bGQgY2F1c2UKICAjICAgICBtYWtlIHRvIGNhbGwg YWNsb2NhbCBpbiBsb29wLikKICAjICAgKiBUaGUgY29udGVudHMgb2YgdGhlIGN1cnJlbnQgZmls ZSBhcmUgZGlmZmVyZW50IGZyb20gd2hhdAogICMgICAgIHdlIGhhdmUgY29tcHV0ZWQuCiAgaWYg KCEkZm9yY2Vfb3V0cHV0CiAgICAgICYmICRncmVhdGVzdF9tdGltZSA8IG10aW1lICgkb3V0cHV0 X2ZpbGUpCiAgICAgICYmICRvdXRwdXQgZXEgY29udGVudHMgKCRvdXRwdXRfZmlsZSkpCiAgICB7 CiAgICAgIHZlcmIgIiRvdXRwdXRfZmlsZSB1bmNoYW5nZWQiOwogICAgICByZXR1cm4gMTsKICAg IH0KCiAgdmVyYiAid3JpdGluZyAkb3V0cHV0X2ZpbGUiOwoKICBpZiAoISRkcnlfcnVuKQogICAg ewogICAgICBpZiAoLWUgJG91dHB1dF9maWxlICYmICF1bmxpbmsgJG91dHB1dF9maWxlKQogICAg ICAgIHsKCSAgZmF0YWwgImNvdWxkIG5vdCByZW1vdmUgJyRvdXRwdXRfZmlsZSc6ICQhIjsKCX0K ICAgICAgbXkgJG91dCA9IG5ldyBBdXRvbWFrZTo6WEZpbGUgIj4gJG91dHB1dF9maWxlIjsKICAg ICAgcHJpbnQgJG91dCAkb3V0cHV0OwogICAgfQogIHJldHVybiAxOwp9CgojIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgojIFBy aW50IHVzYWdlIGFuZCBleGl0LgpzdWIgdXNhZ2UgKCQpCnsKICBteSAoJHN0YXR1cykgPSBAXzsK CiAgcHJpbnQgPDwnRU9GJzsKVXNhZ2U6IGFjbG9jYWwgW09QVElPTl0uLi4KCkdlbmVyYXRlICdh Y2xvY2FsLm00JyBieSBzY2FubmluZyAnY29uZmlndXJlLmFjJyBvciAnY29uZmlndXJlLmluJwoK T3B0aW9uczoKICAgICAgLS1hdXRvbWFrZS1hY2Rpcj1ESVIgIGRpcmVjdG9yeSBob2xkaW5nIGF1 dG9tYWtlLXByb3ZpZGVkIG00IGZpbGVzCiAgICAgIC0tYWNsb2NhbC1wYXRoPVBBVEggICBjb2xv bi1zZXBhcmF0ZWQgbGlzdCBvZiBkaXJlY3RvcmllcyB0bwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWFyY2ggZm9yIHRoaXJkLXBhcnR5IGxvY2FsIGZpbGVzCiAgICAgIC0tc3lzdGVt LWFjZGlyPURJUiAgICBkaXJlY3RvcnkgaG9sZGluZyB0aGlyZC1wYXJ0eSBzeXN0ZW0td2lkZSBm aWxlcwogICAgICAtLWRpZmZbPUNPTU1BTkRdICAgICAgcnVuIENPTU1BTkQgW2RpZmYgLXVdIG9u IE00IGZpbGVzIHRoYXQgd291bGQgYmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5n ZWQgKGltcGxpZXMgLS1pbnN0YWxsIGFuZCAtLWRyeS1ydW4pCiAgICAgIC0tZHJ5LXJ1biAgICAg ICAgICAgICBwcmV0ZW5kIHRvLCBidXQgZG8gbm90IGFjdHVhbGx5IHVwZGF0ZSBhbnkgZmlsZQog ICAgICAtLWZvcmNlICAgICAgICAgICAgICAgYWx3YXlzIHVwZGF0ZSBvdXRwdXQgZmlsZQogICAg ICAtLWhlbHAgICAgICAgICAgICAgICAgcHJpbnQgdGhpcyBoZWxwLCB0aGVuIGV4aXQKICAtSSBE SVIgICAgICAgICAgICAgICAgICAgIGFkZCBkaXJlY3RvcnkgdG8gc2VhcmNoIGxpc3QgZm9yIC5t NCBmaWxlcwogICAgICAtLWluc3RhbGwgICAgICAgICAgICAgY29weSB0aGlyZC1wYXJ0eSBmaWxl cyB0byB0aGUgZmlyc3QgLUkgZGlyZWN0b3J5CiAgICAgIC0tb3V0cHV0PUZJTEUgICAgICAgICBw dXQgb3V0cHV0IGluIEZJTEUgKGRlZmF1bHQgYWNsb2NhbC5tNCkKICAgICAgLS1wcmludC1hYy1k aXIgICAgICAgIHByaW50IG5hbWUgb2YgZGlyZWN0b3J5IGhvbGRpbmcgc3lzdGVtLXdpZGUKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcmQtcGFydHkgbTQgZmlsZXMsIHRoZW4gZXhp dAogICAgICAtLXZlcmJvc2UgICAgICAgICAgICAgZG9uJ3QgYmUgc2lsZW50CiAgICAgIC0tdmVy c2lvbiAgICAgICAgICAgICBwcmludCB2ZXJzaW9uIG51bWJlciwgdGhlbiBleGl0CiAgLVcsIC0t d2FybmluZ3M9Q0FURUdPUlkgICByZXBvcnQgdGhlIHdhcm5pbmdzIGZhbGxpbmcgaW4gQ0FURUdP UlksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRzIHRvICRXQVJOSU5HUwoK RU9GCgogIHByaW50IEF1dG9tYWtlOjpDaGFubmVsRGVmczo6dXNhZ2UgKCksICJcbiI7CgogICMg VGhpcyBvdXRwdXQgZGVwZW5kcyBvbiB0aGUgY3VycmVudCBlbnZpcm9ubWVudCwgYW5kIHdoZW4g Z2VuZXJhdGluZyB0aGUgbWFuCiAgIyBwYWdlcyBkdXJpbmcgQXV0b21ha2UgY29tcGlsYXRpb24s IHRoZSBlbnZpcm9ubWVudCBpcyBzZXQgdG8gbG9jYWwgdmFsdWVzLgogICMgU28gZG9uJ3QgaW5j bHVkZSBpdCBpbiB0aGUgaW5zdGFsbGVkIG1hbiBwYWdlLgogIGlmICghJEVOVntBVVRPTUFLRV9I RUxQMk1BTn0pIHsKICAgIG15ICRhY2xvY2FsX2F1dG9tYWtlX2Rpcl9lbnYgPSAkRU5WeyJBQ0xP Q0FMX0FVVE9NQUtFX0RJUiJ9IHx8ICIiOwogICAgbXkgJGFjbG9jYWxfcGF0aF9lbnYgPSAkRU5W eyJBQ0xPQ0FMX1BBVEgifSB8fCAiIjsKICAgIHByaW50IDw8IkVPRiI7CgptNCBzZWFyY2ggcGF0 aHMgKGluIG9yZGVyKToKICAgICAgdXNlciBpbmNsdWRlczogQHVzZXJfaW5jbHVkZXMKICBhdXRv bWFrZSBpbmNsdWRlczogQGF1dG9tYWtlX2luY2x1ZGVzCiAgICBzeXN0ZW0gaW5jbHVkZXM6IEBz eXN0ZW1faW5jbHVkZXMKICAgICAgIGFjbG9jYWwgcGF0aDogJGFjbG9jYWxfcGF0aAoKRW52aXJv bm1lbnQgdmFyaWFibGUgc2V0dGluZ3MsIGZvciByZWZlcmVuY2U6CiAgXCRBQ0xPQ0FMX0FVVE9N QUtFX0RJUjogICAgJGFjbG9jYWxfYXV0b21ha2VfZGlyX2VudgogIFwkQUNMT0NBTF9QQVRIOiAg ICAgICAgICAgICRhY2xvY2FsX3BhdGhfZW52CkVPRgogIH0KICAjIFRoZSBhYm92ZSBsaXN0aW5n IG9mIHBhdGhzIGlzIHJhdGhlciBhIG1lc3MuICBCZWNhdXNlIHdlIGRvbid0CiAgIyBjb21wdXRl IGFsbCBwYXRocyBiZWZvcmUgb3V0cHV0dGluZyB0aGUgaGVscCwgdGhlIGFjbG9jYWwgcGF0aHMg YW5kCiAgIyBhY19jb25maWdfbWFjcm9fZGlycyBhcmUgbm90IGFkZGVkIHRvIHRoZSBzeXN0ZW0g aW5jbHVkZXMuICBBbmQKICAjIGJlY2F1c2Ugd2UgZG9uJ3Qga2VlcCB0cmFjayBzZXBhcmF0ZWx5 IG9mIGNvbW1hbmQgbGluZSB2YWx1ZXMgZ2l2ZW4KICAjIHRvIC1JIGFuZCB0aGUgb3RoZXIgb3B0 aW9ucywgd2UgY2FuJ3QgcmVwb3J0IHRoZW0gc2VwYXJhdGVseSBmcm9tCiAgIyB0aGUgZW52aXJv bm1lbnQgdmFyaWFibGVzLgoKICBwcmludCA8PCdFT0YnOwoKUmVwb3J0IGJ1Z3MgdG8gPGJ1Zy1h dXRvbWFrZUBnbnUub3JnPi4KR05VIEF1dG9tYWtlIGhvbWUgcGFnZTogPGh0dHBzOi8vd3d3Lmdu dS5vcmcvc29mdHdhcmUvYXV0b21ha2UvPi4KR2VuZXJhbCBoZWxwIHVzaW5nIEdOVSBzb2Z0d2Fy ZTogPGh0dHBzOi8vd3d3LmdudS5vcmcvZ2V0aGVscC8+LgpFT0YKICBleGl0ICRzdGF0dXM7Cn0K CiMgUHJpbnQgdmVyc2lvbiBhbmQgZXhpdC4Kc3ViIHZlcnNpb24gKCkKewogIHByaW50IDw8RU9G OwphY2xvY2FsIChHTlUgJFBBQ0tBR0UpICRWRVJTSU9OCkNvcHlyaWdodCAoQykgJFJFTEVBU0Vf WUVBUiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KTGljZW5zZSBHUEx2Mis6IEdOVSBH UEwgdmVyc2lvbiAyIG9yIGxhdGVyIDxodHRwczovL2dudS5vcmcvbGljZW5zZXMvZ3BsLTIuMC5o dG1sPgpUaGlzIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBhcmUgZnJlZSB0byBjaGFuZ2UgYW5kIHJl ZGlzdHJpYnV0ZSBpdC4KVGhlcmUgaXMgTk8gV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0 dGVkIGJ5IGxhdy4KCldyaXR0ZW4gYnkgVG9tIFRyb21leSA8dHJvbWV5XEByZWRoYXQuY29tPgog ICAgICAgYW5kIEFsZXhhbmRyZSBEdXJldC1MdXR6IDxhZGxcQGdudS5vcmc+LgpFT0YKICBleGl0 IDA7Cn0KCiMgUGFyc2UgY29tbWFuZCBsaW5lLgpzdWIgcGFyc2VfYXJndW1lbnRzICgpCnsKICBt eSAkcHJpbnRfYW5kX2V4aXQgPSAwOwogIG15ICRkaWZmX2NvbW1hbmQ7CiAgbXkgQHdhcm5pbmdz ID0gKCk7CgogIG15ICVjbGlfb3B0aW9ucyA9CiAgICAoCiAgICAgJ2hlbHAnCQk9PiBzdWIgeyB1 c2FnZSgwKTsgfSwKICAgICAndmVyc2lvbicJCT0+IFwmdmVyc2lvbiwKICAgICAnc3lzdGVtLWFj ZGlyPXMnCT0+IHN1YiB7IHNoaWZ0OyBAc3lzdGVtX2luY2x1ZGVzID0gQF87IH0sCiAgICAgJ2F1 dG9tYWtlLWFjZGlyPXMnCT0+IHN1YiB7IHNoaWZ0OyBAYXV0b21ha2VfaW5jbHVkZXMgPSBAXzsg fSwKICAgICAnYWNsb2NhbC1wYXRoPXMnICAgPT4gc3ViIHsgc2hpZnQ7ICRhY2xvY2FsX3BhdGgg PSAkX1swXTsgfSwKICAgICAnZGlmZjpzJwkJPT4gXCRkaWZmX2NvbW1hbmQsCiAgICAgJ2RyeS1y dW4nCQk9PiBcJGRyeV9ydW4sCiAgICAgJ2ZvcmNlJwkJPT4gXCRmb3JjZV9vdXRwdXQsCiAgICAg J0k9cycJCT0+IFxAdXNlcl9pbmNsdWRlcywKICAgICAnaW5zdGFsbCcgICAgICAgICAgPT4gXCRp bnN0YWxsLAogICAgICdvdXRwdXQ9cycJCT0+IFwkb3V0cHV0X2ZpbGUsCiAgICAgJ3ByaW50LWFj LWRpcicgICAgID0+IFwkcHJpbnRfYW5kX2V4aXQsCiAgICAgJ3ZlcmJvc2UnCQk9PiBzdWIgeyBz ZXR1cF9jaGFubmVsICd2ZXJiJywgc2lsZW50ID0+IDA7IH0sCiAgICAgJ1d8d2FybmluZ3M9cycg ICAgID0+IFxAd2FybmluZ3MsCiAgICAgKTsKCiAgdXNlIEF1dG9tYWtlOjpHZXRvcHQgKCk7CiAg QXV0b21ha2U6OkdldG9wdDo6cGFyc2Vfb3B0aW9ucyAlY2xpX29wdGlvbnM7CiAgcGFyc2Vfd2Fy bmluZ3MgQHdhcm5pbmdzOwoKICBpZiAoQEFSR1YgPiAwKQogICAgewogICAgICBmYXRhbCAoIm5v bi1vcHRpb24gYXJndW1lbnRzIGFyZSBub3QgYWNjZXB0ZWQ6ICckQVJHVlswXScuXG4iCiAgICAg ICAgICAgICAuICJUcnkgJyQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIik7CiAgICB9 CgogIGlmICgkcHJpbnRfYW5kX2V4aXQpCiAgICB7CiAgICAgIHByaW50ICJAc3lzdGVtX2luY2x1 ZGVzXG4iOwogICAgICBleGl0IDA7CiAgICB9CgogIGlmIChkZWZpbmVkICRkaWZmX2NvbW1hbmQp CiAgICB7CiAgICAgICRkaWZmX2NvbW1hbmQgPSAnZGlmZiAtdScgaWYgJGRpZmZfY29tbWFuZCBl cSAnJzsKICAgICAgQGRpZmZfY29tbWFuZCA9IHNwbGl0ICgnICcsICRkaWZmX2NvbW1hbmQpOwog ICAgICAkaW5zdGFsbCA9IDE7CiAgICAgICRkcnlfcnVuID0gMTsKICAgIH0KCiAgIyBGaW5hbGx5 LCBhZGRzIGFueSBkaXJlY3RvcnkgbGlzdGVkIGluIHRoZSAnZGlybGlzdCcgZmlsZS4KICBpZiAo QHN5c3RlbV9pbmNsdWRlcyAmJiBvcGVuIChESVJMSVNULCAiJHN5c3RlbV9pbmNsdWRlc1swXS9k aXJsaXN0IikpCiAgICB7CiAgICAgIHdoaWxlICg8RElSTElTVD4pCiAgICAgICAgewogICAgICAg ICAgIyBJZ25vcmUgJyMnIGxpbmVzLgogICAgICAgICAgbmV4dCBpZiAvXiMvOwogICAgICAgICAg IyBzdHJpcCBvZmYgbmV3bGluZXMgYW5kIGVuZC1vZi1saW5lIGNvbW1lbnRzCiAgICAgICAgICBz L1xzKlwjLiokLy87CiAgICAgICAgICBjaG9tcDsKICAgICAgICAgIGZvcmVhY2ggbXkgJGRpciAo Z2xvYikKICAgICAgICAgICAgewogICAgICAgICAgICAgIHB1c2ggKEBzeXN0ZW1faW5jbHVkZXMs ICRkaXIpIGlmIC1kICRkaXI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIGNsb3NlIChE SVJMSVNUKTsKICAgIH0KfQoKIyBBZGQgYW55IGRpcmVjdG9yeSBsaXN0ZWQgaW4gJGFjbG9jYWxf cGF0aCB0byB0aGUgbGlzdCBvZiBzeXN0ZW0KIyBpbmNsdWRlIGRpcmVjdG9yaWVzLgpzdWIgcGFy c2VfQUNMT0NBTF9QQVRIICgpCnsKICByZXR1cm4gaWYgbm90ICRhY2xvY2FsX3BhdGg7CgogICMg RGlyZWN0b3JpZXMgaW4gQUNMT0NBTF9QQVRIIHNob3VsZCB0YWtlIHByZWNlZGVuY2Ugb3ZlciBz eXN0ZW0KICAjIGRpcmVjdG9yaWVzLCBzbyB3ZSB1c2UgdW5zaGlmdC4gIEhvd2V2ZXIsIGRpcmVj dG9yaWVzIHRoYXQKICAjIGNvbWUgZmlyc3QgaW4gQUNMT0NBTF9QQVRIIHRha2UgcHJlY2VkZW5j ZSBvdmVyIGRpcmVjdG9yaWVzCiAgIyBjb21pbmcgbGF0ZXIsIHdoaWNoIGlzIHdoeSB0aGUgcmVz dWx0IG9mIHNwbGl0IGlzIHJldmVyc2VkLgoKICAjIE9TLzIgYW5kIFdpbmRvd3MgKGJ1dCBub3Qg Q3lnd2luLCBldGMuKSB1c2UgOyBmb3IgdGhlIHBhdGggc2VwYXJhdG9yLgogICMgUG9zc2libHkg aXQgd291bGQgYmUgY2xlYW5lciB0byB1c2UgcGF0aF9zZXAgZnJvbSBDb25maWcsCiAgIyBidXQg dGhpcyBzZWVtcyBzaW1wbGVyLgogIG15ICRwYXRoX3NlcCA9ICReTyA9fiAvXihvczJ8bXN3aW4p L2kgPyAnOycgOiAnOic7CgogIGZvcmVhY2ggbXkgJGRpciAocmV2ZXJzZSBzcGxpdCAkcGF0aF9z ZXAsICRhY2xvY2FsX3BhdGgpCiAgICB7CiAgICAgIHVuc2hpZnQgKEBzeXN0ZW1faW5jbHVkZXMs ICRkaXIpIGlmICRkaXIgbmUgJycgJiYgLWQgJGRpcjsKICAgIH0KfQoKIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKIyBEb24n dCByZWZlciB0byBpbnN0YWxsYXRpb24gZGlyZWN0b3JpZXMgZnJvbSB0aGUgYnVpbGQgZW52aXJv bm1lbnQKaWYgKGV4aXN0cyAkRU5WeyJBVVRPTUFLRV9VTklOU1RBTExFRCJ9KQogIHsKICAgIEBh dXRvbWFrZV9pbmNsdWRlcyA9ICgpOwogICAgQHN5c3RlbV9pbmNsdWRlcyA9ICgpOwogIH0KCkBh dXRvbWFrZV9pbmNsdWRlcyA9ICgkRU5WeyJBQ0xPQ0FMX0FVVE9NQUtFX0RJUiJ9KQogIGlmIChl eGlzdHMgJEVOVnsiQUNMT0NBTF9BVVRPTUFLRV9ESVIifSk7CiRhY2xvY2FsX3BhdGggPSAoJEVO VnsiQUNMT0NBTF9QQVRIIn0pCiAgaWYgKGV4aXN0cyAkRU5WeyJBQ0xPQ0FMX1BBVEgifSk7Cgpw YXJzZV9XQVJOSU5HUzsJCSAgICAjIFBhcnNlIHRoZSBXQVJOSU5HUyBlbnZpcm9ubWVudCB2YXJp YWJsZS4KcGFyc2VfYXJndW1lbnRzOwpwYXJzZV9BQ0xPQ0FMX1BBVEg7CSAgICAjIFNob3VsZCBj b21lIGFmdGVyIHBhcnNlIGFyZ3VtZW50cy4KJGNvbmZpZ3VyZV9hYyA9IHJlcXVpcmVfY29uZmln dXJlX2FjOwoKIyBXZSBtYXkgaGF2ZSB0byByZXJ1biBhY2xvY2FsIGlmIHNvbWUgZmlsZSBoYXZl IGJlZW4gaW5zdGFsbGVkLCBidXQKIyBpdCBzaG91bGQgbm90IGhhcHBlbiBtb3JlIHRoYW4gb25j ZS4gIFRoZSByZWFzb24gd2UgbXVzdCBydW4gYWdhaW4KIyBpcyB0aGF0IG9uY2UgdGhlIGZpbGUg aGFzIGJlZW4gbW92ZWQgZnJvbSAvdXNyL3NoYXJlL2FjbG9jYWwvIHRvIHRoZQojIGxvY2FsIG00 LyBkaXJlY3RvcnkgaXQgYXBwZWFycyBhdCBhIG5ldyBwbGFjZSBpbiB0aGUgc2VhcmNoIHBhdGgs CiMgaGVuY2UgaXQgc2hvdWxkIGJlIG91dHB1dCBhdCBhIGRpZmZlcmVudCBwb3NpdGlvbiBpbiBh Y2xvY2FsLm00LiAgSWYKIyB3ZSBkaWQgbm90IHJlcnVuIGFjbG9jYWwsIHRoZSBuZXh0IHJ1biBv ZiBhY2xvY2FsIHdvdWxkIHByb2R1Y2UgYQojIGRpZmZlcmVudCBhY2xvY2FsLm00LgpteSAkbG9v cCA9IDA7Cm15ICRyZXJ1bl9kdWVfdG9fbWFjcm9kaXIgPSAwOwp3aGlsZSAoMSkKICB7CiAgICAr KyRsb29wOwogICAgcHJvZ19lcnJvciAidG9vIG1hbnkgbG9vcHMiIGlmICRsb29wID4gMiArICRy ZXJ1bl9kdWVfdG9fbWFjcm9kaXI7CgogICAgcmVzZXRfbWFwczsKICAgIHNjYW5fbTRfZmlsZXM7 CiAgICBzY2FuX2NvbmZpZ3VyZTsKICAgIGxhc3QgaWYgJGV4aXRfY29kZTsKICAgIG15ICVtYWNy b190cmFjZWQgPSB0cmFjZV91c2VkX21hY3JvczsKCiAgICBpZiAoISRyZXJ1bl9kdWVfdG9fbWFj cm9kaXIgJiYgQGFjX2NvbmZpZ19tYWNyb19kaXJzKQogICAgICB7CiAgICAgICAgIyBUaGUgZGly ZWN0b3J5IHNwZWNpZmllZCBpbiBjYWxscyB0byB0aGUgQUNfQ09ORklHX01BQ1JPX0RJUlMKICAg ICAgICAjIG00IG1hY3JvIChpZiBhbnkpIG11c3QgZ28gYWZ0ZXIgdGhlIHVzZXIgaW5jbHVkZXMg c3BlY2lmaWVkCiAgICAgICAgIyBleHBsaWNpdGx5IHdpdGggdGhlICctSScgb3B0aW9uLgogICAg ICAgIHB1c2ggQHVzZXJfaW5jbHVkZXMsIEBhY19jb25maWdfbWFjcm9fZGlyczsKICAgICAgICAj IFdlIG1pZ2h0IGhhdmUgdG8gc2NhbiBzb21lIG5ldyBkaXJlY3Rvcnkgb2YgLm00IGZpbGVzLgog ICAgICAgICRyZXJ1bl9kdWVfdG9fbWFjcm9kaXIrKzsKICAgICAgICBuZXh0OwogICAgICB9Cgog ICAgaWYgKCRpbnN0YWxsICYmICFAdXNlcl9pbmNsdWRlcykKICAgICAgewogICAgICAgIGZhdGFs ICJpbnN0YWxsYXRpb24gb2YgdGhpcmQtcGFydHkgbWFjcm9zIGltcG9zc2libGUgd2l0aG91dCAi IC4KICAgICAgICAgICAgICAiLUkgb3B0aW9ucyBub3IgQUNfQ09ORklHX01BQ1JPX0RJUnssU30g bTQgbWFjcm8ocykiOwogICAgICB9CgogICAgbGFzdCBpZiB3cml0ZV9hY2xvY2FsICgkb3V0cHV0 X2ZpbGUsIHNvcnQga2V5cyAlbWFjcm9fdHJhY2VkKTsKICAgIGxhc3QgaWYgJGRyeV9ydW47CiAg fQpjaGVja19hY2luY2x1ZGU7CgpleGl0ICRleGl0X2NvZGU7CisgY2F0IC91c3IvbG9jYWwvc3Jj L2F1dG9tYWtlL2Jpbi9hdXRvbWFrZS0xLjE4CiMhL3Vzci9iaW4vcGVybAojIGF1dG9tYWtlIC0g Y3JlYXRlIE1ha2VmaWxlLmluIGZyb20gTWFrZWZpbGUuYW0gICAgICAgICAgICAtKi0gcGVybCAt Ki0KIyBHZW5lcmF0ZWQgZnJvbSBiaW4vYXV0b21ha2UuaW47IGRvIG5vdCBlZGl0IGJ5IGhhbmQu CiMgQ29weXJpZ2h0IChDKSAxOTk0LTIwMjYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu CgojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIgdmVyc2lvbiAyLCBvciAoYXQgeW91ciBvcHRpb24pCiMgYW55IGxhdGVyIHZl cnNpb24uCgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dy YW0uICBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKIyBPcmln aW5hbGx5IHdyaXR0ZW4gYnkgRGF2aWQgTWFja2VuemllIDxkam1AZ251LmFpLm1pdC5lZHU+Lgoj IFBlcmwgcmVpbXBsZW1lbnRhdGlvbiBieSBUb20gVHJvbWV5IDx0cm9tZXlAcmVkaGF0LmNvbT4s IGFuZAojIEFsZXhhbmRyZSBEdXJldC1MdXR6IDxhZGxAZ251Lm9yZz4uCgpwYWNrYWdlIEF1dG9t YWtlOwoKdXNlIDUuMDA2OyB1c2Ugc3RyaWN0OyB1c2Ugd2FybmluZ3M7CgpCRUdJTgp7CiAgdW5z aGlmdCAoQElOQywgJy91c3IvbG9jYWwvc2hhcmUvYXV0b21ha2UtMS4xOCcpCiAgICB1bmxlc3Mg JEVOVntBVVRPTUFLRV9VTklOU1RBTExFRH07CgogICMgT3ZlcnJpZGUgU0hFTEwuICBUaGlzIGlz IHJlcXVpcmVkIG9uIERKR1BQIHNvIHRoYXQgc3lzdGVtKCkgdXNlcwogICMgYmFzaCwgbm90IENP TU1BTkQuQ09NIHdoaWNoIGRvZXNuJ3QgcXVvdGUgYXJndW1lbnRzIHByb3Blcmx5LgogICMgT3Ro ZXIgc3lzdGVtcyBhcmVuJ3QgZXhwZWN0ZWQgdG8gdXNlICRTSEVMTCB3aGVuIEF1dG9tYWtlCiAg IyBydW5zLCBidXQgaXQgc2hvdWxkIGJlIHNhZmUgdG8gZHJvcCB0aGUgImlmIERKR1BQIiBndWFy ZCBpZgogICMgaXQgdHVybnMgdXAgb3RoZXIgc3lzdGVtcyBuZWVkIHRoZSBzYW1lIHRoaW5nLiAg QWZ0ZXIgYWxsLAogICMgaWYgU0hFTEwgaXMgdXNlZCwgLi9jb25maWd1cmUncyBTSEVMTCBpcyBh bHdheXMgYmV0dGVyIHRoYW4KICAjIHRoZSB1c2VyJ3MgU0hFTEwgKHdoaWNoIG1heSBiZSBzb21l dGhpbmcgbGlrZSB0Y3NoKS4KICAkRU5WeydTSEVMTCd9ID0gJy9iaW4vc2gnIGlmIGV4aXN0cyAk RU5WeydESkRJUid9Owp9Cgp1c2UgQ2FycDsKdXNlIEZpbGU6OkJhc2VuYW1lOwp1c2UgRmlsZTo6 U3BlYzsKCnVzZSBBdXRvbWFrZTo6Q29uZmlnOwpCRUdJTgp7CiAgaWYgKCRwZXJsX3RocmVhZHMp CiAgICB7CiAgICAgIHJlcXVpcmUgdGhyZWFkczsKICAgICAgaW1wb3J0IHRocmVhZHM7CiAgICAg IHJlcXVpcmUgVGhyZWFkOjpRdWV1ZTsKICAgICAgaW1wb3J0IFRocmVhZDo6UXVldWU7CiAgICB9 Cn0KdXNlIEF1dG9tYWtlOjpHZW5lcmFsOwp1c2UgQXV0b21ha2U6OlhGaWxlOwp1c2UgQXV0b21h a2U6OkNoYW5uZWxzOwp1c2UgQXV0b21ha2U6OkNoYW5uZWxEZWZzOwp1c2UgQXV0b21ha2U6OkNv bmZpZ3VyZV9hYzsKdXNlIEF1dG9tYWtlOjpGaWxlVXRpbHM7CnVzZSBBdXRvbWFrZTo6TG9jYXRp b247CnVzZSBBdXRvbWFrZTo6Q29uZGl0aW9uIHF3L1RSVUUgRkFMU0UvOwp1c2UgQXV0b21ha2U6 OkRpc2pDb25kaXRpb25zOwp1c2UgQXV0b21ha2U6Ok9wdGlvbnM7CnVzZSBBdXRvbWFrZTo6VmFy aWFibGU7CnVzZSBBdXRvbWFrZTo6VmFyRGVmOwp1c2UgQXV0b21ha2U6OlJ1bGU7CnVzZSBBdXRv bWFrZTo6UnVsZURlZjsKdXNlIEF1dG9tYWtlOjpXcmFwICdtYWtlZmlsZV93cmFwJzsKdXNlIEF1 dG9tYWtlOjpMYW5ndWFnZTsKCiMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCiMjIFN1YnJv dXRpbmUgcHJvdG90eXBlcy4gICMjCiMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCgpzdWIg YXBwZW5kX2V4ZWV4dCAoJiQpOwpzdWIgY2hlY2tfZ25pdHNfc3RhbmRhcmRzICgpOwpzdWIgY2hl Y2tfZ251X3N0YW5kYXJkcyAoKTsKc3ViIGNoZWNrX3RyYWlsaW5nX3NsYXNoICgkXCQpOwpzdWIg Y2hlY2tfdHlwb3MgKCk7CnN1YiBkZWZpbmVfZmlsZXNfdmFyaWFibGUgKCRcQCQkKTsKc3ViIGRl ZmluZV9zdGFuZGFyZF92YXJpYWJsZXMgKCk7CnN1YiBkZWZpbmVfdmVyYm9zZV9saWJ0b29sICgp OwpzdWIgZGVmaW5lX3ZlcmJvc2VfdGV4aW5mbyAoKTsKc3ViIGRvX2NoZWNrX21lcmdlX3Rhcmdl dCAoKTsKc3ViIGdldF9udW1iZXJfb2ZfdGhyZWFkcyAoKTsKc3ViIGhhbmRsZV9jb21waWxlICgp OwpzdWIgaGFuZGxlX2RhdGEgKCk7CnN1YiBoYW5kbGVfZGlzdCAoKTsKc3ViIGhhbmRsZV9lbWFj c19saXNwICgpOwpzdWIgaGFuZGxlX2ZhY3RvcmVkX2RlcGVuZGVuY2llcyAoKTsKc3ViIGhhbmRs ZV9mb290ZXIgKCk7CnN1YiBoYW5kbGVfZ2V0dGV4dCAoKTsKc3ViIGhhbmRsZV9oZWFkZXJzICgp OwpzdWIgaGFuZGxlX2luc3RhbGwgKCk7CnN1YiBoYW5kbGVfamF2YSAoKTsKc3ViIGhhbmRsZV9s YW5ndWFnZXMgKCk7CnN1YiBoYW5kbGVfbGlicmFyaWVzICgpOwpzdWIgaGFuZGxlX2xpYnRvb2wg KCk7CnN1YiBoYW5kbGVfbHRsaWJyYXJpZXMgKCk7CnN1YiBoYW5kbGVfbWFrZWZpbGVzX3Nlcmlh bCAoKTsKc3ViIGhhbmRsZV9tYW5fcGFnZXMgKCk7CnN1YiBoYW5kbGVfbWlub3Jfb3B0aW9ucyAo KTsKc3ViIGhhbmRsZV9vcHRpb25zICgpOwpzdWIgaGFuZGxlX3Byb2dyYW1zICgpOwpzdWIgaGFu ZGxlX3B5dGhvbiAoKTsKc3ViIGhhbmRsZV9zY3JpcHRzICgpOwpzdWIgaGFuZGxlX3NpbGVudCAo KTsKc3ViIGhhbmRsZV9zdWJkaXJzICgpOwpzdWIgaGFuZGxlX3RhZ3MgKCk7CnN1YiBoYW5kbGVf dGFyZ2V0cyAoKTsKc3ViIGhhbmRsZV90ZXN0cyAoKTsKc3ViIGhhbmRsZV90ZXN0c19kZWphZ251 ICgpOwpzdWIgaGFuZGxlX3RleGluZm8gKCk7CnN1YiBoYW5kbGVfdXNlcl9yZWN1cnNpb24gKCk7 CnN1YiBpbml0aWFsaXplX3Blcl9pbnB1dCAoKTsKc3ViIGxhbmdfbGV4X2ZpbmlzaCAoKTsKc3Vi IGxhbmdfc3ViX29iaiAoKTsKc3ViIGxhbmdfdmFsYV9maW5pc2ggKCk7CnN1YiBsYW5nX3lhY2Nf ZmluaXNoICgpOwpzdWIgbG9jYXRlX2F1eF9kaXIgKCk7CnN1YiBwYXJzZV9hcmd1bWVudHMgKCk7 CnN1YiBzY2FuX2FjbG9jYWxfbTQgKCk7CnN1YiBzY2FuX2F1dG9jb25mX2ZpbGVzICgpOwpzdWIg c2lsZW50X2ZsYWcgKCk7CnN1YiB0cmFuc2Zvcm0gKCRcJSk7CnN1YiB0cmFuc2Zvcm1fdG9rZW4g KCRcJSQpOwpzdWIgdXNhZ2UgKCk7CnN1YiB2ZXJzaW9uICgpOwpzdWIgeWFjY19sZXhfZmluaXNo X2hlbHBlciAoKTsKCiMjIC0tLS0tLS0tLS0tICMjCiMjIENvbnN0YW50cy4gICMjCiMjIC0tLS0t LS0tLS0tICMjCgojIFNvbWUgcmVndWxhciBleHByZXNzaW9ucy4gIE9uZSByZWFzb24gdG8gcHV0 IHRoZW0gaGVyZSBpcyB0aGF0IGl0CiMgbWFrZXMgaW5kZW50YXRpb24gd29yayBiZXR0ZXIgaW4g RW1hY3MuCgojIFdyaXRpbmcgc2luZ2xlZC1xdW90ZWQtJC10ZXJtaW5hdGVkIHJlZ2V4ZXMgaXMg YSBwYWluIGJlY2F1c2UKIyBwZXJsLW1vZGUgdGhpbmtzIG9mICQnIGFzIHRoZSAkeyd9IHZhcmlh YmxlIChpbnN0ZWFkIG9mIGEgJCBmb2xsb3dlZAojIGJ5IGEgY2xvc2luZyBxdW90ZS4gIExldHRp bmcgcGVybC1tb2RlIHRoaW5rIHRoZSBxdW90ZSBpcyBub3QgY2xvc2VkCiMgbGVhZHMgdG8gYWxs IHNvcnQgb2YgbWlzaW5kZW50YXRpb25zLiAgT24gdGhlIG90aGVyIGhhbmQsIGRlZmluaW5nCiMg cmVnZXhlcyBhcyBkb3VibGUtcXVvdGVkIHN0cmluZ3MgaXMgZmFyIGxlc3MgcmVhZGFibGUuICBT byB1c3VhbGx5CiMgd2Ugd2lsbCB3cml0ZToKIwojICAkUkVHRVggPSAnXnJlZ2V4X3ZhbHVlJyAu ICJcJCI7CgpteSAkSUdOT1JFX1BBVFRFUk4gPSAnXlxzKiMjKFteI1xuXS4qKT9cbic7Cm15ICRX SElURV9QQVRURVJOID0gJ15ccyonIC4gIlwkIjsKbXkgJENPTU1FTlRfUEFUVEVSTiA9ICdeIyc7 Cm15ICRUQVJHRVRfUEFUVEVSTj0nWyRhLXpBLVowLTlfLkAlXVstLmEtekEtWjAtOV8oKXt9LyQr QCVdKic7CiMgQSBydWxlIGhhcyB0aHJlZSBwYXJ0czogYSBsaXN0IG9mIHRhcmdldHMsIGEgbGlz dCBvZiBkZXBlbmRlbmNpZXMsCiMgYW5kIG9wdGlvbmFsbHkgYWN0aW9ucy4KbXkgJFJVTEVfUEFU VEVSTiA9CiAgIl4oJFRBUkdFVF9QQVRURVJOKD86KD86XFxcXFxufFxccykrJFRBUkdFVF9QQVRU RVJOKSopICo6KFtePV0uKnwpXCQiOwoKIyBPbmx5IHJlY29nbml6ZSBsZWFkaW5nIHNwYWNlcywg bm90IGxlYWRpbmcgdGFicy4gIElmIHdlIHJlY29nbml6ZQojIGxlYWRpbmcgdGFicyBoZXJlIHRo ZW4gd2UgbmVlZCB0byBtYWtlIHRoZSByZWFkZXIgc21hcnRlciwgYmVjYXVzZQojIG90aGVyd2lz ZSBpdCB3aWxsIHRoaW5rIHJ1bGVzIGxpa2UgJ2Zvbz1iYXI7IFwnIGFyZSBlcnJvcnMuCm15ICRB U1NJR05NRU5UX1BBVFRFUk4gPSAnXiAqKFteIFx0PTorXSopXHMqKFs6K10/KT1ccyooLiopJyAu ICJcJCI7CiMgVGhpcyBwYXR0ZXJuIHJlY29nbml6ZXMgYSBHbml0cyB2ZXJzaW9uIGlkIGFuZCBz ZXRzICQxIGlmIHRoZQojIHJlbGVhc2UgaXMgYW4gYWxwaGEgcmVsZWFzZS4gIFdlIGFsc28gYWxs b3cgYSBzdWZmaXggd2hpY2ggY2FuIGJlCiMgdXNlZCB0byBleHRlbmQgdGhlIHZlcnNpb24gbnVt YmVyIHdpdGggYSAiZm9yayIgaWRlbnRpZmllci4KbXkgJEdOSVRTX1ZFUlNJT05fUEFUVEVSTiA9 ICdcZCtcLlxkKyhbYS16XXxcLlxkKyk/KC1bQS1aYS16MC05XSspPyc7CgpteSAkSUZfUEFUVEVS TiA9ICdeaWZccysoIT8pXHMqKFtBLVphLXpdW0EtWmEtejAtOV9dKilccyooPzojLiopPycgLiAi XCQiOwpteSAkRUxTRV9QQVRURVJOID0KICAnXmVsc2UoPzpccysoIT8pXHMqKFtBLVphLXpdW0Et WmEtejAtOV9dKikpP1xzKig/OiMuKik/JyAuICJcJCI7Cm15ICRFTkRJRl9QQVRURVJOID0KICAn XmVuZGlmKD86XHMrKCE/KVxzKihbQS1aYS16XVtBLVphLXowLTlfXSopKT9ccyooPzojLiopPycg LiAiXCQiOwpteSAkUEFUSF9QQVRURVJOID0gJyhcd3xbKy8uLV0pKyc7CiMgVGhpcyB3aWxsIHBh c3MgdGhyb3VnaCBhbnl0aGluZyBub3Qgb2YgdGhlIHByZXNjcmliZWQgZm9ybS4KbXkgJElOQ0xV REVfUEFUVEVSTiA9ICgnXmluY2x1ZGVccysnCgkJICAgICAgIC4gJygoXCRcKHRvcF9zcmNkaXJc KS8nIC4gJFBBVEhfUEFUVEVSTiAuICcpJwoJCSAgICAgICAuICd8KFwkXChzcmNkaXJcKS8nIC4g JFBBVEhfUEFUVEVSTiAuICcpJwoJCSAgICAgICAuICd8KFteL1wkXScgLiAkUEFUSF9QQVRURVJO IC4gJykpXHMqKCMuKik/JyAuICJcJCIpOwoKIyBEaXJlY3RvcmllcyBpbnN0YWxsZWQgZHVyaW5n ICdpbnN0YWxsLWV4ZWMnIHBoYXNlLgpteSAkRVhFQ19ESVJfUEFUVEVSTiA9CiAgJ14oPzpiaW58 c2JpbnxsaWJleGVjfHN5c2NvbmZ8bG9jYWxzdGF0ZXxsaWJ8cGtnbGlifC4qZXhlYy4qKScgLiAi XCQiOwoKIyBWYWx1ZXMgZm9yIEFDX0NBTk9OSUNBTF8qCnVzZSBjb25zdGFudCBBQ19DQU5PTklD QUxfQlVJTEQgID0+IDE7CnVzZSBjb25zdGFudCBBQ19DQU5PTklDQUxfSE9TVCAgID0+IDI7CnVz ZSBjb25zdGFudCBBQ19DQU5PTklDQUxfVEFSR0VUID0+IDM7CgojIFZhbHVlcyBpbmRpY2F0aW5n IHdoZW4gc29tZXRoaW5nIHNob3VsZCBiZSBjbGVhbmVkLgp1c2UgY29uc3RhbnQgTU9TVExZX0NM RUFOICAgICA9PiAwOwp1c2UgY29uc3RhbnQgQ0xFQU4gICAgICAgICAgICA9PiAxOwp1c2UgY29u c3RhbnQgRElTVF9DTEVBTiAgICAgICA9PiAyOwp1c2UgY29uc3RhbnQgTUFJTlRBSU5FUl9DTEVB TiA9PiAzOwoKIyBMaWJ0b29sIGZpbGVzLgpteSBAbGlidG9vbF9maWxlcyA9IHF3KGx0bWFpbi5z aCBjb25maWcuZ3Vlc3MgY29uZmlnLnN1Yik7CiMgbHRjb25maWcgYXBwZWFycyBoZXJlIGZvciBj b21wYXRpYmlsaXR5IHdpdGggb2xkIHZlcnNpb25zIG9mIGxpYnRvb2wuCm15IEBsaWJ0b29sX3Nv bWV0aW1lcyA9IHF3KGx0Y29uZmlnIGx0Y2YtYy5zaCBsdGNmLWN4eC5zaCBsdGNmLWdjai5zaCk7 CgojIFRvcC1sZXZlbCBmaWxlcyB0aGF0IGNhbiBiZSBmb28ubWQgaW5zdGVhZCBvZiBmb28uICBX ZSBhc3N1bWUgdGhhdCBhbGwKIyBidXQgVEhBTktTIGFyZSByZXF1aXJlZCBhdCBzdHJpY3RuZXNz IGxldmVsIGdudS4KbXkgQHRvcGxldmVsbWRfb2sgPSBxdyhBVVRIT1JTIENoYW5nZUxvZyBJTlNU QUxMIE5FV1MgUkVBRE1FIFRIQU5LUyk7CgojIENvbW1vbmx5IGZvdW5kIGZpbGVzIHdlIGxvb2sg Zm9yIGFuZCBhdXRvbWF0aWNhbGx5IGluY2x1ZGUgaW4gRElTVEZJTEVTLgpteSBAY29tbW9uX2Zp bGVzID0KICAgIChxdyhBQk9VVC1HTlUgQUJPVVQtTkxTIEJBQ0tMT0cgQ09QWUlORwogICAgICAg IENPUFlJTkcuRE9DIENPUFlJTkcuTElCIENPUFlJTkcuTEVTU0VSIFRPRE8KCWFyLWxpYiBjb21w aWxlIGNvbmZpZy5ndWVzcyBjb25maWcucnBhdGgKCWNvbmZpZy5zdWIgZGVwY29tcCBpbnN0YWxs LXNoIGxpYnZlcnNpb24uaW4gbWRhdGUtc2gKCW1pc3NpbmcgbWtpbnN0YWxsZGlycyBweS1jb21w aWxlIHRleGluZm8udGV4IHlsd3JhcCksCiAgICAgQGxpYnRvb2xfZmlsZXMsIEBsaWJ0b29sX3Nv bWV0aW1lcyk7CgojIENvbW1vbmx5IHVzZWQgZmlsZXMgd2UgYXV0by1pbmNsdWRlLCBidXQgb25s eSBzb21ldGltZXMuICBUaGlzIGxpc3QKIyBpcyB1c2VkIGZvciB0aGUgLS1oZWxwIG91dHB1dCBv bmx5LgpteSBAY29tbW9uX3NvbWV0aW1lcyA9CiAgcXcoYWNsb2NhbC5tNCBhY2NvbmZpZy5oIGNv bmZpZy5oLnRvcCBjb25maWcuaC5ib3QgY29uZmlndXJlCiAgICAgY29uZmlndXJlLmFjIGNvbmZp Z3VyZS5pbiBzdGFtcC12dGkpOwoKIyBTdGFuZGFyZCBkaXJlY3RvcmllcyBmcm9tIHRoZSBHTlUg Q29kaW5nIFN0YW5kYXJkcywgYW5kIGFkZGl0aW9uYWwKIyBwa2cqIGRpcmVjdG9yaWVzIGZyb20g QXV0b21ha2UuICBTdG9yZWQgaW4gYSBoYXNoIGZvciBmYXN0IG1lbWJlciBjaGVjay4KbXkgJXN0 YW5kYXJkX3ByZWZpeCA9CiAgICBtYXAgeyAkXyA9PiAxIH0gKHF3KGJpbiBkYXRhIGRhdGFyb290 IGRvYyBkdmkgZXhlYyBodG1sIGluY2x1ZGUgaW5mbwoJCQlsaWIgbGliZXhlYyBsaXNwIGxvY2Fs ZSBsb2NhbHN0YXRlIG1hbiBtYW4xIG1hbjIKCQkJbWFuMyBtYW40IG1hbjUgbWFuNiBtYW43IG1h bjggbWFuOSBvbGRpbmNsdWRlIHBkZgoJCQlwa2dkYXRhIHBrZ2luY2x1ZGUgcGtnbGliIHBrZ2xp YmV4ZWMgcHMgc2JpbgoJCQlzaGFyZWRzdGF0ZSBzeXNjb25mKSk7CgojIENvcHlyaWdodCBvbiBn ZW5lcmF0ZWQgTWFrZWZpbGUuaW5zLgpteSAkZ2VuX2NvcHlyaWdodCA9ICJcCiMgQ29weXJpZ2h0 IChDKSAxOTk0LSRSRUxFQVNFX1lFQVIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCgoj IFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbgojIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3Ry aWJ1dGUgaXQsCiMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhp cyBub3RpY2UgaXMgcHJlc2VydmVkLgoKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAojIGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKIyBQQVJU SUNVTEFSIFBVUlBPU0UuCiI7CgojIFRoZXNlIGNvbnN0YW50cyBhcmUgcmV0dXJuZWQgYnkgdGhl IGxhbmdfKl9yZXdyaXRlIGZ1bmN0aW9ucy4KIyBMQU5HX1NVQkRJUiBtZWFucyB0aGF0IHRoZSBy ZXN1bHRpbmcgb2JqZWN0IGZpbGUgc2hvdWxkIGJlIGluIGEKIyBzdWJkaXIgaWYgdGhlIHNvdXJj ZSBmaWxlIGlzLiAgSW4gdGhpcyBjYXNlIHRoZSBmaWxlIG5hbWUgY2Fubm90CiMgaGF2ZSAnLi4n IGNvbXBvbmVudHMuCnVzZSBjb25zdGFudCBMQU5HX0lHTk9SRSAgPT4gMDsKdXNlIGNvbnN0YW50 IExBTkdfUFJPQ0VTUyA9PiAxOwp1c2UgY29uc3RhbnQgTEFOR19TVUJESVIgID0+IDI7CgojIFRo ZXNlIGFyZSB1c2VkIHdoZW4ga2VlcGluZyB0cmFjayBvZiB3aGV0aGVyIGFuIG9iamVjdCBjYW4g YmUgYnVpbHQKIyBieSB0d28gZGlmZmVyZW50IHBhdGhzLgp1c2UgY29uc3RhbnQgQ09NUElMRV9M SUJUT09MICA9PiAxOwp1c2UgY29uc3RhbnQgQ09NUElMRV9PUkRJTkFSWSA9PiAyOwoKIyBXZSBj YW4ndCBhbHdheXMgYXNzb2NpYXRlIGEgbG9jYXRpb24gdG8gYSB2YXJpYWJsZSBvciBhIHJ1bGUs CiMgd2hlbiBpdCdzIGRlZmluZWQgYnkgQXV0b21ha2UuICBXZSB1c2UgSU5URVJOQUwgaW4gdGhp cyBjYXNlLgp1c2UgY29uc3RhbnQgSU5URVJOQUwgPT4gbmV3IEF1dG9tYWtlOjpMb2NhdGlvbjsK CiMgU2VyaWFsaXphdGlvbiBrZXlzIGZvciBtZXNzYWdlIHF1ZXVlcy4KdXNlIGNvbnN0YW50IFFV RVVFX01FU1NBR0UgICA9PiAibXNnIjsKdXNlIGNvbnN0YW50IFFVRVVFX0NPTkZfRklMRSA9PiAi Y29uZiBmaWxlIjsKdXNlIGNvbnN0YW50IFFVRVVFX0xPQ0FUSU9OICA9PiAibG9jYXRpb24iOwp1 c2UgY29uc3RhbnQgUVVFVUVfU1RSSU5HICAgID0+ICJzdHJpbmciOwoKIyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwojIyBWYXJpYWJsZXMgcmVsYXRlZCB0byB0aGUgb3B0 aW9ucy4gICMjCiMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKCiMgVFJV RSBpZiB3ZSBzaG91bGQgYWx3YXlzIGdlbmVyYXRlIE1ha2VmaWxlLmluLgpteSAkZm9yY2VfZ2Vu ZXJhdGlvbiA9IDE7CgojIEZyb20gdGhlIFBlcmwgbWFudWFsLgpteSAkc3ltbGlua19leGlzdHMg PSAoZXZhbCAnc3ltbGluayAoIiIsICIiKTsnLCAkQCBlcSAnJyk7CgojIFRSVUUgaWYgbWlzc2lu ZyBzdGFuZGFyZCBmaWxlcyBzaG91bGQgYmUgaW5zdGFsbGVkLgpteSAkYWRkX21pc3NpbmcgPSAw OwoKIyBUUlVFIGlmIHdlIHNob3VsZCBjb3B5IG1pc3NpbmcgZmlsZXM7IG90aGVyd2lzZSBzeW1s aW5rIGlmIHBvc3NpYmxlLgpteSAkY29weV9taXNzaW5nID0gMDsKCiMgVFJVRSBpZiB3ZSBzaG91 bGQgYWx3YXlzIHVwZGF0ZSBmaWxlcyB0aGF0IHdlIGtub3cgYWJvdXQuCm15ICRmb3JjZV9taXNz aW5nID0gMDsKCgojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMj CiMjIFZhcmlhYmxlcyBmaWxsZWQgZHVyaW5nIGZpbGVzIHNjYW5uaW5nLiAgIyMKIyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwoKIyBOYW1lIG9mIHRoZSBjb25m aWd1cmUuYWMgZmlsZS4KbXkgJGNvbmZpZ3VyZV9hYzsKCiMgRmlsZXMgZm91bmQgYnkgc2Nhbm5p bmcgY29uZmlndXJlLmFjIGZvciBMSUJPQkpTLgpteSAlbGlic291cmNlcyA9ICgpOwoKIyBOYW1l cyB1c2VkIGluIEFDX0NPTkZJR19IRUFERVJTIGNhbGwuCm15IEBjb25maWdfaGVhZGVycyA9ICgp OwoKIyBOYW1lcyB1c2VkIGluIEFDX0NPTkZJR19MSU5LUyBjYWxsLgpteSBAY29uZmlnX2xpbmtz ID0gKCk7CgojIExpc3Qgb2YgTWFrZWZpbGUuYW0ncyB0byBwcm9jZXNzLCBhbmQgdGhlaXIgY29y cmVzcG9uZGluZyBvdXRwdXRzLgpteSBAaW5wdXRfZmlsZXMgPSAoKTsKbXkgJW91dHB1dF9maWxl cyA9ICgpOwoKIyBDb21wbGV0ZSBsaXN0IG9mIE1ha2VmaWxlLmFtJ3MgdGhhdCBleGlzdC4KbXkg QGNvbmZpZ3VyZV9pbnB1dF9maWxlcyA9ICgpOwoKIyBMaXN0IG9mIGZpbGVzIGluIEFDX0NPTkZJ R19GSUxFUy9BQ19PVVRQVVQgd2l0aG91dCBNYWtlZmlsZS5hbSdzLAojIGFuZCB0aGVpciBvdXRw dXRzLgpteSBAb3RoZXJfaW5wdXRfZmlsZXMgPSAoKTsKIyBXaGVyZSBlYWNoIEFDX0NPTkZJR19G SUxFUy9BQ19PVVRQVVQvQUNfQ09ORklHX0xJTksvQUNfQ09ORklHX0hFQURFUlMKIyBhcHBlYXJz LiAgVGhlIGtleXMgYXJlIHRoZSBmaWxlcyBjcmVhdGVkIGJ5IHRoZXNlIG1hY3Jvcy4KbXkgJWFj X2NvbmZpZ19maWxlc19sb2NhdGlvbiA9ICgpOwojIFRoZSBjb25kaXRpb24gdW5kZXIgd2hpY2gg QUNfQ09ORklHX0ZPT1MgYXBwZWFycy4KbXkgJWFjX2NvbmZpZ19maWxlc19jb25kaXRpb24gPSAo KTsKCiMgRGlyZWN0b3J5IHRvIHNlYXJjaCBmb3IgY29uZmlndXJlLXJlcXVpcmVkIGZpbGVzLiAg VGhpcwojIHdpbGwgYmUgY29tcHV0ZWQgYnkgbG9jYXRlX2F1eF9kaXIoKSBhbmQgY2FuIGJlIHNl dCB1c2luZwojIEFDX0NPTkZJR19BVVhfRElSIGluIGNvbmZpZ3VyZS5hYy4KIyAkQ09ORklHX0FV WF9ESVIgaXMgdGhlICdyYXcnIGRpcmVjdG9yeSwgdmFsaWQgb25seSBpbiB0aGUgc291cmNlLXRy ZWUuCm15ICRjb25maWdfYXV4X2RpciA9ICcnOwpteSAkY29uZmlnX2F1eF9kaXJfc2V0X2luX2Nv bmZpZ3VyZV9hYyA9IDA7CiMgJEFNX0NPTkZJR19BVVhfRElSIGlzIHByZWZpeGVkIHdpdGggJCh0 b3Bfc3JjZGlyKSwgc28gaXQgY2FuIGJlIHVzZWQKIyBpbiBNYWtlZmlsZXMuCm15ICRhbV9jb25m aWdfYXV4X2RpciA9ICcnOwoKIyBEaXJlY3RvcnkgdG8gc2VhcmNoIGZvciBBQ19MSUJTT1VSQ0Ug ZmlsZXMsIGFzIHNldCBieSBBQ19DT05GSUdfTElCT0JKX0RJUgojIGluIGNvbmZpZ3VyZS5hYy4K bXkgJGNvbmZpZ19saWJvYmpfZGlyID0gJyc7CgojIFdoZXRoZXIgQU1fR05VX0dFVFRFWFQgaGFz IGJlZW4gc2VlbiBpbiBjb25maWd1cmUuYWMuCm15ICRzZWVuX2dldHRleHQgPSAwOwojIFdoZXRo ZXIgQU1fR05VX0dFVFRFWFQoW2V4dGVybmFsXSkgaXMgdXNlZC4KbXkgJHNlZW5fZ2V0dGV4dF9l eHRlcm5hbCA9IDA7CiMgV2hlcmUgQU1fR05VX0dFVFRFWFQgYXBwZWFycy4KbXkgJGFjX2dldHRl eHRfbG9jYXRpb247CiMgV2hldGhlciBBTV9HTlVfR0VUVEVYVF9JTlRMX1NVQkRJUiBoYXMgYmVl biBzZWVuLgpteSAkc2Vlbl9nZXR0ZXh0X2ludGwgPSAwOwoKIyBUaGUgYXJndW1lbnRzIG9mIHRo ZSBBTV9FWFRSQV9SRUNVUlNJVkVfVEFSR0VUUyBjYWxsIChpZiBhbnkpLgpteSBAZXh0cmFfcmVj dXJzaXZlX3RhcmdldHMgPSAoKTsKCiMgTGlzdHMgb2YgdGFncyBzdXBwb3J0ZWQgYnkgTGlidG9v bC4KbXkgJWxpYnRvb2xfdGFncyA9ICgpOwojIDEgaWYgTGlidG9vbCB1c2VzIExUX1NVUFBPUlRF RF9UQUcuICBJZiBpdCBkb2VzLCB0aGVuIGl0IGFsc28KIyB1c2VzIEFDX1JFUVVJUkVfQVVYX0ZJ TEUuCm15ICRsaWJ0b29sX25ld19hcGkgPSAwOwoKIyBNb3N0IGltcG9ydGFudCBBQ19DQU5PTklD QUxfKiBtYWNybyBzZWVuIHNvIGZhci4KbXkgJHNlZW5fY2Fub25pY2FsID0gMDsKCiMgV2hlcmUg QU1fTUFJTlRBSU5FUl9NT0RFIGFwcGVhcnMuCm15ICRzZWVuX21haW50X21vZGU7CgojIEFjdHVh bCB2ZXJzaW9uIHdlJ3ZlIHNlZW4uCm15ICRwYWNrYWdlX3ZlcnNpb24gPSAnJzsKCiMgV2hlcmUg dmVyc2lvbiBpcyBkZWZpbmVkLgpteSAkcGFja2FnZV92ZXJzaW9uX2xvY2F0aW9uOwoKIyBUUlVF IGlmIHdlJ3ZlIHNlZW4gQU1fUFJPR19BUgpteSAkc2Vlbl9hciA9IDA7CgojIExvY2F0aW9uIG9m IEFDX1JFUVVJUkVfQVVYX0ZJTEUgY2FsbHMsIGluZGV4ZWQgYnkgdGhlaXIgYXJndW1lbnQuCm15 ICVyZXF1aXJlZF9hdXhfZmlsZSA9ICgpOwoKIyBXaGVyZSBBTV9JTklUX0FVVE9NQUtFIGlzIGNh bGxlZC4KbXkgJHNlZW5faW5pdF9hdXRvbWFrZSA9IDA7CgojIFRSVUUgaWYgd2UndmUgc2VlbiBB TV9BVVRPTUFLRV9WRVJTSU9OLgpteSAkc2Vlbl9hdXRvbWFrZV92ZXJzaW9uID0gMDsKCiMgSGFz aCB0YWJsZSBvZiBkaXNjb3ZlcmVkIGNvbmZpZ3VyZSBzdWJzdGl0dXRpb25zLiAgS2V5cyBhcmUg bmFtZXMsCiMgdmFsdWVzIGFyZSAnRklMRTpMSU5FJyBzdHJpbmdzIHdoaWNoIGFyZSB1c2VkIGJ5 IGVycm9yIG1lc3NhZ2UKIyBnZW5lcmF0aW9uLgpteSAlY29uZmlndXJlX3ZhcnMgPSAoKTsKCiMg SWdub3JlZCBjb25maWd1cmUgc3Vic3RpdHV0aW9ucyAoaS5lLiwgdmFyaWFibGVzIG5vdCB0byBi ZSBvdXRwdXQgaW4KIyBNYWtlZmlsZS5pbikKbXkgJWlnbm9yZWRfY29uZmlndXJlX3ZhcnMgPSAo KTsKCiMgRmlsZXMgaW5jbHVkZWQgYnkgJGNvbmZpZ3VyZV9hYy4KbXkgQGNvbmZpZ3VyZV9kZXBz ID0gKCk7CgojIEdyZWF0ZXN0IHRpbWVzdGFtcCBvZiBjb25maWd1cmUncyBkZXBlbmRlbmNpZXMu Cm15ICRjb25maWd1cmVfZGVwc19ncmVhdGVzdF90aW1lc3RhbXAgPSAwOwoKIyBIYXNoIHRhYmxl IG9mIEFNX0NPTkRJVElPTkFMIHZhcmlhYmxlcyBzZWVuIGluIGNvbmZpZ3VyZS4KbXkgJWNvbmZp Z3VyZV9jb25kID0gKCk7CgojIFRoaXMgbWFwcyBleHRlbnNpb25zIG9udG8gbGFuZ3VhZ2UgbmFt ZXMuCm15ICVleHRlbnNpb25fbWFwID0gKCk7CgojIExpc3Qgb2YgdGhlIERJU1RfQ09NTU9OIGZp bGVzIHdlIGRpc2NvdmVyZWQgd2hpbGUgcmVhZGluZwojIGNvbmZpZ3VyZS5hYy4KbXkgQGNvbmZp Z3VyZV9kaXN0X2NvbW1vbiA9ICgpOwoKIyBUaGlzIG1hcHMgbGFuZ3VhZ2VzIG5hbWVzIG9udG8g b2JqZWN0cy4KbXkgJWxhbmd1YWdlcyA9ICgpOwojIE1hcHMgZWFjaCBsaW5rZXIgdmFyaWFibGUg b250byBhIGxhbmd1YWdlIG9iamVjdC4KbXkgJWxpbmtfbGFuZ3VhZ2VzID0gKCk7CgojIG1hcHMg ZXh0ZW5zaW9ucyB0byBuZWVkZWQgc291cmNlIGZsYWdzLgpteSAlc291cmNlZmxhZ3MgPSAoKTsK CiMgTGlzdCBvZiB0YXJnZXRzIHdlIG11c3QgYWx3YXlzIG91dHB1dC4KIyBGSVhNRTogQ29tcGxl dGUsIGFuZCByZW1vdmUgZmFsc2VseSByZXF1aXJlZCB0YXJnZXRzLgpteSAlcmVxdWlyZWRfdGFy Z2V0cyA9CiAgKAogICAnYWxsJyAgICAgICAgICA9PiAxLAogICAnZHZpJwkgID0+IDEsCiAgICdw ZGYnCSAgPT4gMSwKICAgJ3BzJwkJICA9PiAxLAogICAnaW5mbycJICA9PiAxLAogICAnaW5zdGFs bC1pbmZvJyA9PiAxLAogICAnaW5zdGFsbCcgICAgICA9PiAxLAogICAnaW5zdGFsbC1kYXRhJyA9 PiAxLAogICAnaW5zdGFsbC1leGVjJyA9PiAxLAogICAndW5pbnN0YWxsJyAgICA9PiAxLAoKICAg IyBGSVhNRTogTm90IHJlcXVpcmVkLCB0ZW1wb3JhcnkgaGFja3MuCiAgICMgV2VsbCwgYWN0dWFs bHkgdGhleSBhcmUgc29ydCBvZiByZXF1aXJlZDogdGhlIC1yZWN1cnNpdmUKICAgIyB0YXJnZXRz IHdpbGwgcnVuIHRoZW0gYW55d2F5Li4uCiAgICdodG1sLWFtJyAgICAgICAgID0+IDEsCiAgICdk dmktYW0nICAgICAgICAgID0+IDEsCiAgICdwZGYtYW0nICAgICAgICAgID0+IDEsCiAgICdwcy1h bScgICAgICAgICAgID0+IDEsCiAgICdpbmZvLWFtJyAgICAgICAgID0+IDEsCiAgICdpbnN0YWxs LWRhdGEtYW0nID0+IDEsCiAgICdpbnN0YWxsLWV4ZWMtYW0nID0+IDEsCiAgICdpbnN0YWxsLWh0 bWwtYW0nID0+IDEsCiAgICdpbnN0YWxsLWR2aS1hbScgID0+IDEsCiAgICdpbnN0YWxsLXBkZi1h bScgID0+IDEsCiAgICdpbnN0YWxsLXBzLWFtJyAgID0+IDEsCiAgICdpbnN0YWxsLWluZm8tYW0n ID0+IDEsCiAgICdpbnN0YWxsY2hlY2stYW0nID0+IDEsCiAgICd1bmluc3RhbGwtYW0nICAgID0+ IDEsCiAgICd0YWdzLWFtJyAgICAgICAgID0+IDEsCiAgICdjdGFncy1hbScgICAgICAgID0+IDEs CiAgICdjc2NvcGVsaXN0LWFtJyAgID0+IDEsCiAgICdpbnN0YWxsLW1hbicgICAgID0+IDEsCiAg KTsKCiMgUXVldWUgdG8gcHVzaCByZXF1aXJlX2NvbmZfZmlsZSByZXF1aXJlbWVudHMgdG8uCm15 ICRyZXF1aXJlZF9jb25mX2ZpbGVfcXVldWU7CgojIFRoZSBuYW1lIG9mIHRoZSBNYWtlZmlsZSBj dXJyZW50bHkgYmVpbmcgcHJvY2Vzc2VkLgpteSAkYW1fZmlsZSA9ICdCVUcnOwoKIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoK IyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCiMjIFZhcmlh YmxlcyByZXNldCBieSAmaW5pdGlhbGl6ZV9wZXJfaW5wdXQuICAjIwojIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKCiMgUmVsYXRpdmUgZGlyIG9mIHRoZSBv dXRwdXQgbWFrZWZpbGUuCm15ICRyZWxhdGl2ZV9kaXI7CgojIEdyZWF0ZXN0IHRpbWVzdGFtcCBv ZiB0aGUgb3V0cHV0J3MgZGVwZW5kZW5jaWVzIChleGNsdWRpbmcKIyBjb25maWd1cmUncyBkZXBl bmRlbmNpZXMpLgpteSAkb3V0cHV0X2RlcHNfZ3JlYXRlc3RfdGltZXN0YW1wOwoKIyBUaGVzZSB2 YXJpYWJsZXMgYXJlIHVzZWQgd2hlbiBnZW5lcmF0aW5nIGVhY2ggTWFrZWZpbGUuaW4uCiMgVGhl eSBob2xkIHRoZSBNYWtlZmlsZS5pbiB1bnRpbCBpdCBpcyByZWFkeSB0byBiZSBwcmludGVkLgpt eSAkb3V0cHV0X3ZhcnM7Cm15ICRvdXRwdXRfYWxsOwpteSAkb3V0cHV0X2hlYWRlcjsKbXkgJG91 dHB1dF9ydWxlczsKbXkgJG91dHB1dF90cmFpbGVyOwoKIyBUaGlzIGlzIHRoZSBjb25kaXRpb25h bCBzdGFjaywgdXBkYXRlZCBvbiBpZi9lbHNlL2VuZGlmLCBhbmQKIyB1c2VkIHRvIGJ1aWxkIENv bmRpdGlvbiBvYmplY3RzLgpteSBAY29uZF9zdGFjazsKCiMgVGhpcyBob2xkcyB0aGUgc2V0IG9m IGluY2x1ZGVkIGZpbGVzLgpteSBAaW5jbHVkZV9zdGFjazsKCiMgTGlzdCBvZiBkZXBlbmRlbmNp ZXMgZm9yIHRoZSBvYnZpb3VzIHRhcmdldHMuCm15IEBhbGw7Cm15IEBjaGVjazsKbXkgQGNoZWNr X3Rlc3RzOwoKIyBLZXlzIGluIHRoaXMgaGFzaCB0YWJsZSBhcmUgZmlsZXMgdG8gZGVsZXRlLiAg VGhlIGFzc29jaWF0ZWQKIyB2YWx1ZSB0ZWxscyB3aGVuIHRoaXMgc2hvdWxkIGhhcHBlbiAoTU9T VExZX0NMRUFOLCBESVNUX0NMRUFOLCBldGMuKQpteSAlY2xlYW5fZmlsZXM7CgojIEtleXMgaW4g dGhpcyBoYXNoIHRhYmxlIGFyZSBvYmplY3QgZmlsZXMgb3Igb3RoZXIgZmlsZXMgaW4KIyBzdWJk aXJlY3RvcmllcyB3aGljaCBuZWVkIHRvIGJlIHJlbW92ZWQuICBUaGlzIG9ubHkgaG9sZHMgZmls ZXMKIyB3aGljaCBhcmUgY3JlYXRlZCBieSBjb21waWxhdGlvbnMuICBUaGUgdmFsdWUgaW4gdGhl IGhhc2ggaW5kaWNhdGVzCiMgd2hlbiB0aGUgZmlsZSBzaG91bGQgYmUgcmVtb3ZlZC4KbXkgJWNv bXBpbGVfY2xlYW5fZmlsZXM7CgojIEtleXMgaW4gdGhpcyBoYXNoIHRhYmxlIGFyZSBkaXJlY3Rv cmllcyB3aGVyZSB3ZSBleHBlY3QgdG8gYnVpbGQgYQojIGxpYnRvb2wgb2JqZWN0LiAgV2UgdXNl IHRoaXMgaW5mb3JtYXRpb24gdG8gZGVjaWRlIHdoYXQgZGlyZWN0b3JpZXMKIyB0byBkZWxldGUu Cm15ICVsaWJ0b29sX2NsZWFuX2RpcmVjdG9yaWVzOwoKIyBWYWx1ZSBvZiAkKFNPVVJDRVMpLCB1 c2VkIGJ5IHRhZ3MuYW0uCm15IEBzb3VyY2VzOwojIFNvdXJjZXMgd2hpY2ggZ28gaW4gdGhlIGRp c3RyaWJ1dGlvbi4KbXkgQGRpc3Rfc291cmNlczsKCiMgVGhpcyBoYXNoIG1hcHMgb2JqZWN0IGZp bGUgbmFtZXMgb250byB0aGVpciBjb3JyZXNwb25kaW5nIHNvdXJjZQojIGZpbGUgbmFtZXMuICBU aGlzIGlzIHVzZWQgdG8gZW5zdXJlIHRoYXQgZWFjaCBvYmplY3QgaXMgY3JlYXRlZAojIGJ5IGEg c2luZ2xlIHNvdXJjZSBmaWxlLgpteSAlb2JqZWN0X21hcDsKCiMgVGhpcyBoYXNoIG1hcHMgb2Jq ZWN0IGZpbGUgbmFtZXMgb250byBhbiBpbnRlZ2VyIHZhbHVlIHJlcHJlc2VudGluZwojIHdoZXRo ZXIgdGhpcyBvYmplY3QgaGFzIGJlZW4gYnVpbHQgdmlhIG9yZGluYXJ5IGNvbXBpbGF0aW9uIG9y CiMgbGlidG9vbCBjb21waWxhdGlvbiAodGhlIENPTVBJTEVfKiBjb25zdGFudHMpLgpteSAlb2Jq ZWN0X2NvbXBpbGF0aW9uX21hcDsKCgojIFRoaXMga2VlcHMgdHJhY2sgb2YgdGhlIGRpcmVjdG9y aWVzIGZvciB3aGljaCB3ZSd2ZSBhbHJlYWR5CiMgY3JlYXRlZCBkaXJzdGFtcCBjb2RlLiAgS2V5 cyBhcmUgZGlyZWN0b3JpZXMsIHZhbHVlcyBhcmUgc3RhbXAgZmlsZXMuCiMgU2V2ZXJhbCBrZXlz IGNhbiBzaGFyZSB0aGUgc2FtZSBzdGFtcCBmaWxlcyBpZiB0aGV5IGFyZSBlcXVpdmFsZW50CiMg KGFzIGFyZSAnLi8vZm9vJyBhbmQgJ2ZvbycpLgpteSAlZGlyZWN0b3J5X21hcDsKCiMgQWxsIC5Q IGZpbGVzLgpteSAlZGVwX2ZpbGVzOwoKIyBUaGlzIGlzIGEgbGlzdCBvZiBhbGwgdGFyZ2V0cyB0 byBydW4gZHVyaW5nICJtYWtlIGRpc3QiLgpteSBAZGlzdF90YXJnZXRzOwoKIyBMaXN0IG9mIGFs bCBwcm9ncmFtcywgbGlicmFyaWVzIGFuZCBsdGxpYnJhcmllcyBhcyByZXR1cm5lZAojIGJ5IGFt X2luc3RhbGxfdmFyCm15IEBwcm9nbGlzdDsKbXkgQGxpYmxpc3Q7Cm15IEBsdGxpYmxpc3Q7CiMg QmxhY2tsaXN0IG9mIHRhcmdldHMgKGFzIGNhbm9uaWNhbCBiYXNlIG5hbWUpIGZvciB3aGljaCBv YmplY3QgZmlsZSBuYW1lcwojIG1heSBub3QgYmUgYXV0b21hdGljYWxseSBzaG9ydGVuZWQKbXkg QGR1cF9zaG9ydG5hbWVzOwoKIyBLZWVwIHRyYWNrIG9mIGFsbCBwcm9ncmFtcyBkZWNsYXJlZCBp biB0aGlzIE1ha2VmaWxlLCB3aXRob3V0CiMgJChFWEVFWFQpLiAgQHN1YnN0aXR1dGlvbnNAIGFy ZSBub3QgbGlzdGVkLgpteSAla25vd25fcHJvZ3JhbXM7Cm15ICVrbm93bl9saWJyYXJpZXM7Cgoj IFRoaXMga2VlcHMgdHJhY2sgb2Ygd2hpY2ggZXh0ZW5zaW9ucyB3ZSd2ZSBzZWVuICh0aGF0IHdl IGNhcmUKIyBhYm91dCkuCm15ICVleHRlbnNpb25fc2VlbjsKCiMgVGhpcyBpcyByYW5kb20gc2Ny YXRjaCBzcGFjZSBmb3IgdGhlIGxhbmd1YWdlIGZpbmlzaCBmdW5jdGlvbnMuCiMgRG9uJ3QgcmFu ZG9tbHkgb3ZlcndyaXRlIGl0OyBleGFtaW5lIG90aGVyIHVzZXMgb2Yga2V5cyBmaXJzdC4KbXkg JWxhbmd1YWdlX3NjcmF0Y2g7CgojIFdlIGtlZXAgdHJhY2sgb2Ygd2hpY2ggb2JqZWN0cyBuZWVk IHNwZWNpYWwgKHBlci1leGVjdXRhYmxlKQojIGhhbmRsaW5nIG9uIGEgcGVyLWxhbmd1YWdlIGJh c2lzLgpteSAlbGFuZ19zcGVjaWZpY19maWxlczsKCiMgTGlzdCBvZiBkaXN0cmlidXRlZCBmaWxl cyB0byBiZSBwdXQgaW4gRElTVF9DT01NT04uCm15IEBkaXN0X2NvbW1vbjsKCiMgVGhpcyBpcyBz ZXQgd2hlbiAnaGFuZGxlX2Rpc3QnIGhhcyBmaW5pc2hlZC4gIE9uY2UgdGhpcyBoYXBwZW5zLAoj IHdlIHNob3VsZCBubyBsb25nZXIgcHVzaCBvbiBkaXN0X2NvbW1vbi4KbXkgJGhhbmRsZV9kaXN0 X3J1bjsKCiMgVXNlZCB0byBzdG9yZSBhIHNldCBvZiBsaW5rZXJzIG5lZWRlZCB0byBnZW5lcmF0 ZSB0aGUgc291cmNlcyBjdXJyZW50bHkKIyB1bmRlciBjb25zaWRlcmF0aW9uLgpteSAlbGlua2Vy c191c2VkOwoKIyBUcnVlIGlmIHdlIG5lZWQgJ0xJTksnIGRlZmluZWQuICBUaGlzIGlzIGEgaGFj ay4KbXkgJG5lZWRfbGluazsKCiMgRG9lcyB0aGUgZ2VuZXJhdGVkIE1ha2VmaWxlIGhhdmUgdG8g YnVpbGQgc29tZSBjb21waWxlZCBvYmplY3QKIyAoZm9yIGJpbmFyeSBwcm9ncmFtcywgb3IgcGxh aW4gb3IgbGlidG9vbCBsaWJyYXJpZXMpPwpteSAkbXVzdF9oYW5kbGVfY29tcGlsZWRfb2JqZWN0 czsKCiMgUmVjb3JkIGVhY2ggZmlsZSBwcm9jZXNzZWQgYnkgbWFrZV9wYXJhZ3JhcGhzLgpteSAl dHJhbnNmb3JtZWRfZmlsZXM7CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCiMjIFZhcmlhYmxlcyBub3QgcmVzZXQgYnkgJmluaXRp YWxpemVfcGVyX2lucHV0LiAgIyMKIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSAjIwoKIyBDYWNoZSBlYWNoIGZpbGUgcHJvY2Vzc2VkIGJ5IG1ha2VfcGFy YWdyYXBocy4KIyAoVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSAldHJhbnNmb3JtZWRfZmlsZXMgYmVj YXVzZQojICV0cmFuc2Zvcm1lZF9maWxlcyBpcyByZXNldCBmb3IgZWFjaCBmaWxlIHdoaWxlICVh bV9maWxlX2NhY2hlCiMgaXQgZ2xvYmFsIHRvIHRoZSBydW4uKQpteSAlYW1fZmlsZV9jYWNoZTsK CiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKCiMgdmFyX1NVRkZJWEVTX3RyaWdnZXIgKCRUWVBFLCAkVkFMVUUpCiMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBpcyBjYWxsZWQgYnkgQXV0b21h a2U6OlZhcmlhYmxlOjpkZWZpbmUoKSB3aGVuIFNVRkZJWEVTCiMgaXMgZGVmaW5lZCAoJFRZUEUg ZXEgJycpIG9yIGFwcGVuZGVkICgkVFlQRSBlcSAnKycpLgojIFRoZSB3b3JrIGhlcmUgbmVlZHMg dG8gYmUgcGVyZm9ybWVkIGFzIGEgc2lkZS1lZmZlY3Qgb2YgdGhlCiMgbWFjcm9fZGVmaW5lKCkg Y2FsbCBiZWNhdXNlIFNVRkZJWEVTIGRlZmluaXRpb25zIGltcGFjdAojIG9uICRLTk9XTl9FWFRF TlNJT05TX1BBVFRFUk4gd2hpY2ggaXMgdXNlZCB1c2VkIHdoZW4gcGFyc2luZwojIHRoZSBpbnB1 dCBhbSBmaWxlLgpzdWIgdmFyX1NVRkZJWEVTX3RyaWdnZXIKewogICAgbXkgKCR0eXBlLCAkdmFs dWUpID0gQF87CiAgICBhY2NlcHRfZXh0ZW5zaW9ucyAoc3BsaXQgKCcgJywgJHZhbHVlKSk7Cn0K QXV0b21ha2U6OlZhcmlhYmxlOjpob29rICgnU1VGRklYRVMnLCBcJnZhcl9TVUZGSVhFU190cmln Z2VyKTsKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKCgojIGluaXRpYWxpemVfcGVyX2lucHV0ICgpCiMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KIyAoUmUpLUluaXRpYWxpemUgcGVyLU1ha2VmaWxlLmFtIHZhcmlhYmxlcy4K c3ViIGluaXRpYWxpemVfcGVyX2lucHV0ICgpCnsKICAgIHJlc2V0X2xvY2FsX2R1cGxpY2F0ZXMg KCk7CgogICAgJHJlbGF0aXZlX2RpciA9IHVuZGVmOwoKICAgICRvdXRwdXRfZGVwc19ncmVhdGVz dF90aW1lc3RhbXAgPSAwOwoKICAgICRvdXRwdXRfdmFycyA9ICcnOwogICAgJG91dHB1dF9hbGwg PSAnJzsKICAgICRvdXRwdXRfaGVhZGVyID0gJyc7CiAgICAkb3V0cHV0X3J1bGVzID0gJyc7CiAg ICAkb3V0cHV0X3RyYWlsZXIgPSAnJzsKCiAgICBBdXRvbWFrZTo6T3B0aW9uczo6cmVzZXQ7CiAg ICBBdXRvbWFrZTo6VmFyaWFibGU6OnJlc2V0OwogICAgQXV0b21ha2U6OlJ1bGU6OnJlc2V0OwoK ICAgIEBjb25kX3N0YWNrID0gKCk7CgogICAgQGluY2x1ZGVfc3RhY2sgPSAoKTsKCiAgICBAYWxs ID0gKCk7CiAgICBAY2hlY2sgPSAoKTsKICAgIEBjaGVja190ZXN0cyA9ICgpOwoKICAgICVjbGVh bl9maWxlcyA9ICgpOwogICAgJWNvbXBpbGVfY2xlYW5fZmlsZXMgPSAoKTsKCiAgICAjIFdlIGFs d2F5cyBpbmNsdWRlICcuJy4gIFRoaXMgaXNuJ3Qgc3RyaWN0bHkgY29ycmVjdC4KICAgICVsaWJ0 b29sX2NsZWFuX2RpcmVjdG9yaWVzID0gKCcuJyA9PiAxKTsKCiAgICBAc291cmNlcyA9ICgpOwog ICAgQGRpc3Rfc291cmNlcyA9ICgpOwoKICAgICVvYmplY3RfbWFwID0gKCk7CiAgICAlb2JqZWN0 X2NvbXBpbGF0aW9uX21hcCA9ICgpOwoKICAgICVkaXJlY3RvcnlfbWFwID0gKCk7CgogICAgJWRl cF9maWxlcyA9ICgpOwoKICAgIEBkaXN0X3RhcmdldHMgPSAoKTsKCiAgICBAZGlzdF9jb21tb24g PSAoKTsKICAgICRoYW5kbGVfZGlzdF9ydW4gPSAwOwoKICAgIEBwcm9nbGlzdCA9ICgpOwogICAg QGxpYmxpc3QgPSAoKTsKICAgIEBsdGxpYmxpc3QgPSAoKTsKICAgIEBkdXBfc2hvcnRuYW1lcyA9 ICgpOwoKICAgICVrbm93bl9wcm9ncmFtcyA9ICgpOwogICAgJWtub3duX2xpYnJhcmllcyA9ICgp OwoKICAgICVleHRlbnNpb25fc2VlbiA9ICgpOwoKICAgICVsYW5ndWFnZV9zY3JhdGNoID0gKCk7 CgogICAgJWxhbmdfc3BlY2lmaWNfZmlsZXMgPSAoKTsKCiAgICAkbmVlZF9saW5rID0gMDsKCiAg ICAkbXVzdF9oYW5kbGVfY29tcGlsZWRfb2JqZWN0cyA9IDA7CgogICAgJXRyYW5zZm9ybWVkX2Zp bGVzID0gKCk7Cn0KCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCgojIEluaXRpYWxpemUgb3VyIGxpc3Qgb2YgbGFuZ3VhZ2Vz IHRoYXQgYXJlIGludGVybmFsbHkgc3VwcG9ydGVkLgoKbXkgQGNwcGxpa2VfZmxhZ3MgPQogIHF3 ewogICAgJChERUZTKQogICAgJChERUZBVUxUX0lOQ0xVREVTKQogICAgJChJTkNMVURFUykKICAg ICQoQU1fQ1BQRkxBR1MpCiAgICAkKENQUEZMQUdTKQogIH07CgojIEMuCnJlZ2lzdGVyX2xhbmd1 YWdlICgnbmFtZScgPT4gJ2MnLAoJCSAgICdOYW1lJyA9PiAnQycsCgkJICAgJ2NvbmZpZ192YXJz JyA9PiBbJ0NDJ10sCgkJICAgJ2F1dG9kZXAnID0+ICcnLAoJCSAgICdmbGFncycgPT4gWydDRkxB R1MnLCAnQ1BQRkxBR1MnXSwKCQkgICAnY2NlcicgPT4gJ0NDJywKCQkgICAnY29tcGlsZXInID0+ ICdDT01QSUxFJywKCQkgICAnY29tcGlsZScgPT4gIlwkKENDKSBAY3BwbGlrZV9mbGFncyBcJChB TV9DRkxBR1MpIFwkKENGTEFHUykiLAoJCSAgICdsZGVyJyA9PiAnQ0NMRCcsCgkJICAgJ2xkJyA9 PiAnJChDQyknLAoJCSAgICdsaW5rZXInID0+ICdMSU5LJywKCQkgICAnbGluaycgPT4gJyQoQ0NM RCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAkKEFNX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAn LAoJCSAgICdjb21waWxlX2ZsYWcnID0+ICctYycsCgkJICAgJ291dHB1dF9mbGFnJyA9PiAnLW8n LAoJCSAgICdsaWJ0b29sX3RhZycgPT4gJ0NDJywKCQkgICAnZXh0ZW5zaW9ucycgPT4gWycuYydd KTsKCiMgQysrLgpyZWdpc3Rlcl9sYW5ndWFnZSAoJ25hbWUnID0+ICdjeHgnLAoJCSAgICdOYW1l JyA9PiAnQysrJywKCQkgICAnY29uZmlnX3ZhcnMnID0+IFsnQ1hYJ10sCgkJICAgJ2xpbmtlcicg PT4gJ0NYWExJTksnLAoJCSAgICdsaW5rJyA9PiAnJChDWFhMRCkgJChBTV9DWFhGTEFHUykgJChD WFhGTEFHUykgJChBTV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRAJywKCQkgICAnYXV0b2RlcCcg PT4gJ0NYWCcsCgkJICAgJ2ZsYWdzJyA9PiBbJ0NYWEZMQUdTJywgJ0NQUEZMQUdTJ10sCgkJICAg J2NvbXBpbGUnID0+ICJcJChDWFgpIEBjcHBsaWtlX2ZsYWdzIFwkKEFNX0NYWEZMQUdTKSBcJChD WFhGTEFHUykiLAoJCSAgICdjY2VyJyA9PiAnQ1hYJywKCQkgICAnY29tcGlsZXInID0+ICdDWFhD T01QSUxFJywKCQkgICAnY29tcGlsZV9mbGFnJyA9PiAnLWMnLAoJCSAgICdvdXRwdXRfZmxhZycg PT4gJy1vJywKCQkgICAnbGlidG9vbF90YWcnID0+ICdDWFgnLAoJCSAgICdsZGVyJyA9PiAnQ1hY TEQnLAoJCSAgICdsZCcgPT4gJyQoQ1hYKScsCgkJICAgJ3B1cmUnID0+IDEsCgkJICAgJ2V4dGVu c2lvbnMnID0+IFsnLmMrKycsICcuY2MnLCAnLmNwcCcsICcuY3h4JywgJy5DJ10pOwoKIyBPYmpl Y3RpdmUgQy4KcmVnaXN0ZXJfbGFuZ3VhZ2UgKCduYW1lJyA9PiAnb2JqYycsCgkJICAgJ05hbWUn ID0+ICdPYmplY3RpdmUgQycsCgkJICAgJ2NvbmZpZ192YXJzJyA9PiBbJ09CSkMnXSwKCQkgICAn bGlua2VyJyA9PiAnT0JKQ0xJTksnLAoJCSAgICdsaW5rJyA9PiAnJChPQkpDTEQpICQoQU1fT0JK Q0ZMQUdTKSAkKE9CSkNGTEFHUykgJChBTV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRAJywKCQkg ICAnYXV0b2RlcCcgPT4gJ09CSkMnLAoJCSAgICdmbGFncycgPT4gWydPQkpDRkxBR1MnLCAnQ1BQ RkxBR1MnXSwKCQkgICAnY29tcGlsZScgPT4gIlwkKE9CSkMpIEBjcHBsaWtlX2ZsYWdzIFwkKEFN X09CSkNGTEFHUykgXCQoT0JKQ0ZMQUdTKSIsCgkJICAgJ2NjZXInID0+ICdPQkpDJywKCQkgICAn Y29tcGlsZXInID0+ICdPQkpDQ09NUElMRScsCgkJICAgJ2NvbXBpbGVfZmxhZycgPT4gJy1jJywK CQkgICAnb3V0cHV0X2ZsYWcnID0+ICctbycsCgkJICAgJ2xpYnRvb2xfZmxhZycgPT4gJ09CSkMn LAoJCSAgICdsZGVyJyA9PiAnT0JKQ0xEJywKCQkgICAnbGQnID0+ICckKE9CSkMpJywKCQkgICAn cHVyZScgPT4gMSwKCQkgICAnZXh0ZW5zaW9ucycgPT4gWycubSddKTsKCiMgT2JqZWN0aXZlIEMr Ky4KcmVnaXN0ZXJfbGFuZ3VhZ2UgKCduYW1lJyA9PiAnb2JqY3h4JywKCQkgICAnTmFtZScgPT4g J09iamVjdGl2ZSBDKysnLAoJCSAgICdjb25maWdfdmFycycgPT4gWydPQkpDWFgnXSwKCQkgICAn bGlua2VyJyA9PiAnT0JKQ1hYTElOSycsCgkJICAgJ2xpbmsnID0+ICckKE9CSkNYWExEKSAkKEFN X09CSkNYWEZMQUdTKSAkKE9CSkNYWEZMQUdTKSAkKEFNX0xERkxBR1MpICQoTERGTEFHUykgLW8g JEAnLAoJCSAgICdhdXRvZGVwJyA9PiAnT0JKQ1hYJywKCQkgICAnZmxhZ3MnID0+IFsnT0JKQ1hY RkxBR1MnLCAnQ1BQRkxBR1MnXSwKCQkgICAnY29tcGlsZScgPT4gIlwkKE9CSkNYWCkgQGNwcGxp a2VfZmxhZ3MgXCQoQU1fT0JKQ1hYRkxBR1MpIFwkKE9CSkNYWEZMQUdTKSIsCgkJICAgJ2NjZXIn ID0+ICdPQkpDWFgnLAoJCSAgICdjb21waWxlcicgPT4gJ09CSkNYWENPTVBJTEUnLAoJCSAgICdj b21waWxlX2ZsYWcnID0+ICctYycsCgkJICAgJ291dHB1dF9mbGFnJyA9PiAnLW8nLAoJCSAgICds aWJ0b29sX2ZsYWcnID0+ICdPQkpDWFgnLAoJCSAgICdsZGVyJyA9PiAnT0JKQ1hYTEQnLAoJCSAg ICdsZCcgPT4gJyQoT0JKQ1hYKScsCgkJICAgJ3B1cmUnID0+IDEsCgkJICAgJ2V4dGVuc2lvbnMn ID0+IFsnLm1tJ10pOwoKIyBVbmlmaWVkIFBhcmFsbGVsIEMuCnJlZ2lzdGVyX2xhbmd1YWdlICgn bmFtZScgPT4gJ3VwYycsCgkJICAgJ05hbWUnID0+ICdVbmlmaWVkIFBhcmFsbGVsIEMnLAoJCSAg ICdjb25maWdfdmFycycgPT4gWydVUEMnXSwKCQkgICAnbGlua2VyJyA9PiAnVVBDTElOSycsCgkJ ICAgJ2xpbmsnID0+ICckKFVQQ0xEKSAkKEFNX1VQQ0ZMQUdTKSAkKFVQQ0ZMQUdTKSAkKEFNX0xE RkxBR1MpICQoTERGTEFHUykgLW8gJEAnLAoJCSAgICdhdXRvZGVwJyA9PiAnVVBDJywKCQkgICAn ZmxhZ3MnID0+IFsnVVBDRkxBR1MnLCAnQ1BQRkxBR1MnXSwKCQkgICAnY29tcGlsZScgPT4gIlwk KFVQQykgQGNwcGxpa2VfZmxhZ3MgXCQoQU1fVVBDRkxBR1MpIFwkKFVQQ0ZMQUdTKSIsCgkJICAg J2NjZXInID0+ICdVUEMnLAoJCSAgICdjb21waWxlcicgPT4gJ1VQQ0NPTVBJTEUnLAoJCSAgICdj b21waWxlX2ZsYWcnID0+ICctYycsCgkJICAgJ291dHB1dF9mbGFnJyA9PiAnLW8nLAoJCSAgICds ZGVyJyA9PiAnVVBDTEQnLAoJCSAgICdsZCcgPT4gJyQoVVBDKScsCgkJICAgJ3B1cmUnID0+IDEs CgkJICAgJ2V4dGVuc2lvbnMnID0+IFsnLnVwYyddKTsKCiMgSGVhZGVycy4KcmVnaXN0ZXJfbGFu Z3VhZ2UgKCduYW1lJyA9PiAnaGVhZGVyJywKCQkgICAnTmFtZScgPT4gJ0hlYWRlcicsCgkJICAg J2V4dGVuc2lvbnMnID0+IFsnLmgnLCAnLkgnLCAnLmh4eCcsICcuaCsrJywgJy5oaCcsCgkJCQkg ICAgJy5ocHAnLCAnLmluYyddLAoJCSAgICMgTm8gb3V0cHV0LgoJCSAgICdvdXRwdXRfZXh0ZW5z aW9ucycgPT4gc3ViIHsgcmV0dXJuICgpIH0sCgkJICAgIyBOb3RoaW5nIHRvIGRvLgoJCSAgICdf ZmluaXNoJyA9PiBzdWIgeyB9KTsKCiMgVmFsYQpyZWdpc3Rlcl9sYW5ndWFnZSAoJ25hbWUnID0+ ICd2YWxhJywKCQkgICAnTmFtZScgPT4gJ1ZhbGEnLAoJCSAgICdjb25maWdfdmFycycgPT4gWydW QUxBQyddLAoJCSAgICdmbGFncycgPT4gW10sCgkJICAgJ2NvbXBpbGUnID0+ICckKFZBTEFDKSAk KEFNX1ZBTEFGTEFHUykgJChWQUxBRkxBR1MpJywKCQkgICAnY2NlcicgPT4gJ1ZBTEFDJywKCQkg ICAnY29tcGlsZXInID0+ICdWQUxBQ09NUElMRScsCgkJICAgJ2V4dGVuc2lvbnMnID0+IFsnLnZh bGEnXSwKCQkgICAnb3V0cHV0X2V4dGVuc2lvbnMnID0+IHN1YiB7IChteSAkZXh0ID0gJF9bMF0p ID1+IHMvdmFsYSQvYy87CgkJCQkJCXJldHVybiAoJGV4dCwpIH0sCgkJICAgJ3J1bGVfZmlsZScg PT4gJ3ZhbGEnLAoJCSAgICdfZmluaXNoJyA9PiBcJmxhbmdfdmFsYV9maW5pc2gsCgkJICAgJ190 YXJnZXRfaG9vaycgPT4gXCZsYW5nX3ZhbGFfdGFyZ2V0X2hvb2ssCgkJICAgJ25vZGlzdF9zcGVj aWZpYycgPT4gMSk7CgojIFlhY2MgKEMgJiBDKyspLgpyZWdpc3Rlcl9sYW5ndWFnZSAoJ25hbWUn ID0+ICd5YWNjJywKCQkgICAnTmFtZScgPT4gJ1lhY2MnLAoJCSAgICdjb25maWdfdmFycycgPT4g WydZQUNDJ10sCgkJICAgJ2ZsYWdzJyA9PiBbJ1lGTEFHUyddLAoJCSAgICdjb21waWxlJyA9PiAn JChZQUNDKSAkKEFNX1lGTEFHUykgJChZRkxBR1MpJywKCQkgICAnY2NlcicgPT4gJ1lBQ0MnLAoJ CSAgICdjb21waWxlcicgPT4gJ1lBQ0NDT01QSUxFJywKCQkgICAnZXh0ZW5zaW9ucycgPT4gWycu eSddLAoJCSAgICdvdXRwdXRfZXh0ZW5zaW9ucycgPT4gc3ViIHsgKG15ICRleHQgPSAkX1swXSkg PX4gdHIveS9jLzsKCQkJCQkJcmV0dXJuICgkZXh0LCkgfSwKCQkgICAncnVsZV9maWxlJyA9PiAn eWFjYycsCgkJICAgJ19maW5pc2gnID0+IFwmbGFuZ195YWNjX2ZpbmlzaCwKCQkgICAnX3Rhcmdl dF9ob29rJyA9PiBcJmxhbmdfeWFjY190YXJnZXRfaG9vaywKCQkgICAnbm9kaXN0X3NwZWNpZmlj JyA9PiAxKTsKcmVnaXN0ZXJfbGFuZ3VhZ2UgKCduYW1lJyA9PiAneWFjY3h4JywKCQkgICAnTmFt ZScgPT4gJ1lhY2MgKEMrKyknLAoJCSAgICdjb25maWdfdmFycycgPT4gWydZQUNDJ10sCgkJICAg J3J1bGVfZmlsZScgPT4gJ3lhY2MnLAoJCSAgICdmbGFncycgPT4gWydZRkxBR1MnXSwKCQkgICAn Y2NlcicgPT4gJ1lBQ0MnLAoJCSAgICdjb21waWxlcicgPT4gJ1lBQ0NDT01QSUxFJywKCQkgICAn Y29tcGlsZScgPT4gJyQoWUFDQykgJChBTV9ZRkxBR1MpICQoWUZMQUdTKScsCgkJICAgJ2V4dGVu c2lvbnMnID0+IFsnLnkrKycsICcueXknLCAnLnl4eCcsICcueXBwJ10sCgkJICAgJ291dHB1dF9l eHRlbnNpb25zJyA9PiBzdWIgeyAobXkgJGV4dCA9ICRfWzBdKSA9fiB0ci95L2MvOwoJCQkJCQly ZXR1cm4gKCRleHQsKSB9LAoJCSAgICdfZmluaXNoJyA9PiBcJmxhbmdfeWFjY19maW5pc2gsCgkJ ICAgJ190YXJnZXRfaG9vaycgPT4gXCZsYW5nX3lhY2NfdGFyZ2V0X2hvb2ssCgkJICAgJ25vZGlz dF9zcGVjaWZpYycgPT4gMSk7CgojIExleCAoQyAmIEMrKykuCnJlZ2lzdGVyX2xhbmd1YWdlICgn bmFtZScgPT4gJ2xleCcsCgkJICAgJ05hbWUnID0+ICdMZXgnLAoJCSAgICdjb25maWdfdmFycycg PT4gWydMRVgnXSwKCQkgICAncnVsZV9maWxlJyA9PiAnbGV4JywKCQkgICAnZmxhZ3MnID0+IFsn TEZMQUdTJ10sCgkJICAgJ2NvbXBpbGUnID0+ICckKExFWCkgJChBTV9MRkxBR1MpICQoTEZMQUdT KScsCgkJICAgJ2NjZXInID0+ICdMRVgnLAoJCSAgICdjb21waWxlcicgPT4gJ0xFWENPTVBJTEUn LAoJCSAgICdleHRlbnNpb25zJyA9PiBbJy5sJ10sCgkJICAgJ291dHB1dF9leHRlbnNpb25zJyA9 PiBzdWIgeyAobXkgJGV4dCA9ICRfWzBdKSA9fiB0ci9sL2MvOwoJCQkJCQlyZXR1cm4gKCRleHQs KSB9LAoJCSAgICdfZmluaXNoJyA9PiBcJmxhbmdfbGV4X2ZpbmlzaCwKCQkgICAnX3RhcmdldF9o b29rJyA9PiBcJmxhbmdfbGV4X3RhcmdldF9ob29rLAoJCSAgICdub2Rpc3Rfc3BlY2lmaWMnID0+ IDEpOwpyZWdpc3Rlcl9sYW5ndWFnZSAoJ25hbWUnID0+ICdsZXh4eCcsCgkJICAgJ05hbWUnID0+ ICdMZXggKEMrKyknLAoJCSAgICdjb25maWdfdmFycycgPT4gWydMRVgnXSwKCQkgICAncnVsZV9m aWxlJyA9PiAnbGV4JywKCQkgICAnZmxhZ3MnID0+IFsnTEZMQUdTJ10sCgkJICAgJ2NvbXBpbGUn ID0+ICckKExFWCkgJChBTV9MRkxBR1MpICQoTEZMQUdTKScsCgkJICAgJ2NjZXInID0+ICdMRVgn LAoJCSAgICdjb21waWxlcicgPT4gJ0xFWENPTVBJTEUnLAoJCSAgICdleHRlbnNpb25zJyA9PiBb Jy5sKysnLCAnLmxsJywgJy5seHgnLCAnLmxwcCddLAoJCSAgICdvdXRwdXRfZXh0ZW5zaW9ucycg PT4gc3ViIHsgKG15ICRleHQgPSAkX1swXSkgPX4gdHIvbC9jLzsKCQkJCQkJcmV0dXJuICgkZXh0 LCkgfSwKCQkgICAnX2ZpbmlzaCcgPT4gXCZsYW5nX2xleF9maW5pc2gsCgkJICAgJ190YXJnZXRf aG9vaycgPT4gXCZsYW5nX2xleF90YXJnZXRfaG9vaywKCQkgICAnbm9kaXN0X3NwZWNpZmljJyA9 PiAxKTsKCiMgQXNzZW1ibGVyLgpyZWdpc3Rlcl9sYW5ndWFnZSAoJ25hbWUnID0+ICdhc20nLAoJ CSAgICdOYW1lJyA9PiAnQXNzZW1ibGVyJywKCQkgICAnY29uZmlnX3ZhcnMnID0+IFsnQ0NBUycs ICdDQ0FTRkxBR1MnXSwKCgkJICAgJ2ZsYWdzJyA9PiBbJ0NDQVNGTEFHUyddLAoJCSAgICMgVXNl cnMgY2FuIHNldCBBTV9DQ0FTRkxBR1MgdG8gaW5jbHVkZSBERUZTLCBJTkNMVURFUywKCQkgICAj IG9yIGFueXRoaW5nIGVsc2UgcmVxdWlyZWQuICBUaGV5IGNhbiBhbHNvIHNldCBDQ0FTLgoJCSAg ICMgT3Igc2ltcGx5IHVzZSBQcmVwcm9jZXNzZWQgQXNzZW1ibGVyLgoJCSAgICdjb21waWxlJyA9 PiAnJChDQ0FTKSAkKEFNX0NDQVNGTEFHUykgJChDQ0FTRkxBR1MpJywKCQkgICAnY2NlcicgPT4g J0NDQVMnLAoJCSAgICdjb21waWxlcicgPT4gJ0NDQVNDT01QSUxFJywKCQkgICAnY29tcGlsZV9m bGFnJyA9PiAnLWMnLAoJCSAgICdvdXRwdXRfZmxhZycgPT4gJy1vJywKCQkgICAnZXh0ZW5zaW9u cycgPT4gWycucyddKTsKCiMgUHJlcHJvY2Vzc2VkIEFzc2VtYmxlci4KcmVnaXN0ZXJfbGFuZ3Vh Z2UgKCduYW1lJyA9PiAnY3BwYXNtJywKCQkgICAnTmFtZScgPT4gJ1ByZXByb2Nlc3NlZCBBc3Nl bWJsZXInLAoJCSAgICdjb25maWdfdmFycycgPT4gWydDQ0FTJywgJ0NDQVNGTEFHUyddLAoKCQkg ICAnYXV0b2RlcCcgPT4gJ0NDQVMnLAoJCSAgICdmbGFncycgPT4gWydDQ0FTRkxBR1MnLCAnQ1BQ RkxBR1MnXSwKCQkgICAnY29tcGlsZScgPT4gIlwkKENDQVMpIEBjcHBsaWtlX2ZsYWdzIFwkKEFN X0NDQVNGTEFHUykgXCQoQ0NBU0ZMQUdTKSIsCgkJICAgJ2NjZXInID0+ICdDUFBBUycsCgkJICAg J2NvbXBpbGVyJyA9PiAnQ1BQQVNDT01QSUxFJywKICAgICAgICAgICAgICAgICAgICdsaWJ0b29s X3RhZycgPT4gJ0NDJywKCQkgICAnY29tcGlsZV9mbGFnJyA9PiAnLWMnLAoJCSAgICdvdXRwdXRf ZmxhZycgPT4gJy1vJywKCQkgICAnZXh0ZW5zaW9ucycgPT4gWycuUycsICcuc3gnXSk7CgojIEZv cnRyYW4gNzcKcmVnaXN0ZXJfbGFuZ3VhZ2UgKCduYW1lJyA9PiAnZjc3JywKCQkgICAnTmFtZScg PT4gJ0ZvcnRyYW4gNzcnLAoJCSAgICdjb25maWdfdmFycycgPT4gWydGNzcnXSwKCQkgICAnbGlu a2VyJyA9PiAnRjc3TElOSycsCgkJICAgJ2xpbmsnID0+ICckKEY3N0xEKSAkKEFNX0ZGTEFHUykg JChGRkxBR1MpICQoQU1fTERGTEFHUykgJChMREZMQUdTKSAtbyAkQCcsCgkJICAgJ2ZsYWdzJyA9 PiBbJ0ZGTEFHUyddLAoJCSAgICdjb21waWxlJyA9PiAnJChGNzcpICQoQU1fRkZMQUdTKSAkKEZG TEFHUyknLAoJCSAgICdjY2VyJyA9PiAnRjc3JywKCQkgICAnY29tcGlsZXInID0+ICdGNzdDT01Q SUxFJywKCQkgICAnY29tcGlsZV9mbGFnJyA9PiAnLWMnLAoJCSAgICdvdXRwdXRfZmxhZycgPT4g Jy1vJywKCQkgICAnbGlidG9vbF90YWcnID0+ICdGNzcnLAoJCSAgICdsZGVyJyA9PiAnRjc3TEQn LAoJCSAgICdsZCcgPT4gJyQoRjc3KScsCgkJICAgJ3B1cmUnID0+IDEsCgkJICAgJ2V4dGVuc2lv bnMnID0+IFsnLmYnLCAnLmZvciddKTsKCiMgRm9ydHJhbgpyZWdpc3Rlcl9sYW5ndWFnZSAoJ25h bWUnID0+ICdmYycsCgkJICAgJ05hbWUnID0+ICdGb3J0cmFuJywKCQkgICAnY29uZmlnX3ZhcnMn ID0+IFsnRkMnXSwKCQkgICAnbGlua2VyJyA9PiAnRkNMSU5LJywKCQkgICAnbGluaycgPT4gJyQo RkNMRCkgJChBTV9GQ0ZMQUdTKSAkKEZDRkxBR1MpICQoQU1fTERGTEFHUykgJChMREZMQUdTKSAt byAkQCcsCgkJICAgJ2ZsYWdzJyA9PiBbJ0ZDRkxBR1MnXSwKCQkgICAnY29tcGlsZScgPT4gJyQo RkMpICQoQU1fRkNGTEFHUykgJChGQ0ZMQUdTKScsCgkJICAgJ2NjZXInID0+ICdGQycsCgkJICAg J2NvbXBpbGVyJyA9PiAnRkNDT01QSUxFJywKCQkgICAnY29tcGlsZV9mbGFnJyA9PiAnLWMnLAoJ CSAgICdvdXRwdXRfZmxhZycgPT4gJy1vJywKCQkgICAnbGlidG9vbF90YWcnID0+ICdGQycsCgkJ ICAgJ2xkZXInID0+ICdGQ0xEJywKCQkgICAnbGQnID0+ICckKEZDKScsCgkJICAgJ3B1cmUnID0+ IDEsCgkJICAgJ2V4dGVuc2lvbnMnID0+IFsnLmY5MCcsICcuZjk1JywgJy5mMDMnLCAnLmYwOCdd KTsKCiMgUHJlcHJvY2Vzc2VkIEZvcnRyYW4KcmVnaXN0ZXJfbGFuZ3VhZ2UgKCduYW1lJyA9PiAn cHBmYycsCgkJICAgJ05hbWUnID0+ICdQcmVwcm9jZXNzZWQgRm9ydHJhbicsCgkJICAgJ2NvbmZp Z192YXJzJyA9PiBbJ0ZDJ10sCgkJICAgJ2xpbmtlcicgPT4gJ0ZDTElOSycsCgkJICAgJ2xpbmsn ID0+ICckKEZDTEQpICQoQU1fRkNGTEFHUykgJChGQ0ZMQUdTKSAkKEFNX0xERkxBR1MpICQoTERG TEFHUykgLW8gJEAnLAoJCSAgICdsZGVyJyA9PiAnRkNMRCcsCgkJICAgJ2xkJyA9PiAnJChGQykn LAoJCSAgICdmbGFncycgPT4gWydGQ0ZMQUdTJywgJ0NQUEZMQUdTJ10sCgkJICAgJ2NjZXInID0+ ICdQUEZDJywKCQkgICAnY29tcGlsZXInID0+ICdQUEZDQ09NUElMRScsCgkJICAgJ2NvbXBpbGUn ID0+ICJcJChGQykgQGNwcGxpa2VfZmxhZ3MgXCQoQU1fRkNGTEFHUykgXCQoRkNGTEFHUykiLAoJ CSAgICdjb21waWxlX2ZsYWcnID0+ICctYycsCgkJICAgJ291dHB1dF9mbGFnJyA9PiAnLW8nLAoJ CSAgICdsaWJ0b29sX3RhZycgPT4gJ0ZDJywKCQkgICAncHVyZScgPT4gMSwKCQkgICAnZXh0ZW5z aW9ucycgPT4gWycuRjkwJywnLkY5NScsICcuRjAzJywgJy5GMDgnXSk7CgojIFByZXByb2Nlc3Nl ZCBGb3J0cmFuIDc3CiMKIyBUaGUgY3VycmVudCBzdXBwb3J0IGZvciBwcmVwcm9jZXNzaW5nIEZv cnRyYW4gNzcganVzdCBpbnZvbHZlcwojIHBhc3NpbmcgIiQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKQojICQoQ1BQRkxBR1MpIiBhcyBhZGRpdGlv bmFsIGZsYWdzIHRvIHRoZSBGb3J0cmFuIDc3IGNvbXBpbGVyLCBzaW5jZQojIHRoaXMgaXMgaG93 IEdOVSBNYWtlIGRvZXMgaXQ7IHNlZSB0aGUgIkdOVSBNYWtlIE1hbnVhbCwgRWRpdGlvbiAwLjUx CiMgZm9yICdtYWtlJyBWZXJzaW9uIDMuNzYgQmV0YSIgKHNwZWNpZmljYWxseSwgZnJvbSBpbmZv IGZpbGUKIyAnKG1ha2UpQ2F0YWxvZ3VlIG9mIFJ1bGVzJykuCiMKIyBBIGJldHRlciBhcHByb2Fj aCB3b3VsZCBiZSB0byB3cml0ZSBhbiBBdXRvY29uZiB0ZXN0CiMgKGkuZS4gQUNfUFJPR19GUFAp IGZvciBhIEZvcnRyYW4gNzcgcHJlcHJvY2Vzc29yLCBiZWNhdXNlIG5vdCBhbGwKIyBGb3J0cmFu IDc3IGNvbXBpbGVycyBrbm93IGhvdyB0byBkbyBwcmVwcm9jZXNzaW5nLiAgVGhlIEF1dG9jb25m CiMgbWFjcm8gQUNfUFJPR19GUFAgc2hvdWxkIHRlc3QgdGhlIEZvcnRyYW4gNzcgY29tcGlsZXIg Zmlyc3QgZm9yCiMgcHJlcHJvY2Vzc2luZyBjYXBhYmlsaXRpZXMsIGFuZCB0aGVuIGZhbGwgYmFj ayBvbiBjcHAgKGlmIGNwcCB3ZXJlCiMgYXZhaWxhYmxlKS4KcmVnaXN0ZXJfbGFuZ3VhZ2UgKCdu YW1lJyA9PiAncHBmNzcnLAoJCSAgICdOYW1lJyA9PiAnUHJlcHJvY2Vzc2VkIEZvcnRyYW4gNzcn LAoJCSAgICdjb25maWdfdmFycycgPT4gWydGNzcnXSwKCQkgICAnbGlua2VyJyA9PiAnRjc3TElO SycsCgkJICAgJ2xpbmsnID0+ICckKEY3N0xEKSAkKEFNX0ZGTEFHUykgJChGRkxBR1MpICQoQU1f TERGTEFHUykgJChMREZMQUdTKSAtbyAkQCcsCgkJICAgJ2xkZXInID0+ICdGNzdMRCcsCgkJICAg J2xkJyA9PiAnJChGNzcpJywKCQkgICAnZmxhZ3MnID0+IFsnRkZMQUdTJywgJ0NQUEZMQUdTJ10s CgkJICAgJ2NjZXInID0+ICdQUEY3NycsCgkJICAgJ2NvbXBpbGVyJyA9PiAnUFBGNzdDT01QSUxF JywKCQkgICAnY29tcGlsZScgPT4gIlwkKEY3NykgQGNwcGxpa2VfZmxhZ3MgXCQoQU1fRkZMQUdT KSBcJChGRkxBR1MpIiwKCQkgICAnY29tcGlsZV9mbGFnJyA9PiAnLWMnLAoJCSAgICdvdXRwdXRf ZmxhZycgPT4gJy1vJywKCQkgICAnbGlidG9vbF90YWcnID0+ICdGNzcnLAoJCSAgICdwdXJlJyA9 PiAxLAoJCSAgICdleHRlbnNpb25zJyA9PiBbJy5GJ10pOwoKIyBSYXRmb3IuCnJlZ2lzdGVyX2xh bmd1YWdlICgnbmFtZScgPT4gJ3JhdGZvcicsCgkJICAgJ05hbWUnID0+ICdSYXRmb3InLAoJCSAg ICdjb25maWdfdmFycycgPT4gWydGNzcnXSwKCQkgICAnbGlua2VyJyA9PiAnRjc3TElOSycsCgkJ ICAgJ2xpbmsnID0+ICckKEY3N0xEKSAkKEFNX0ZGTEFHUykgJChGRkxBR1MpICQoQU1fTERGTEFH UykgJChMREZMQUdTKSAtbyAkQCcsCgkJICAgJ2xkZXInID0+ICdGNzdMRCcsCgkJICAgJ2xkJyA9 PiAnJChGNzcpJywKCQkgICAnZmxhZ3MnID0+IFsnUkZMQUdTJywgJ0ZGTEFHUyddLAoJCSAgICMg RklYTUUgYWxzbyBGRkxBR1MuCgkJICAgJ2NvbXBpbGUnID0+ICckKEY3NykgJChBTV9GRkxBR1Mp ICQoRkZMQUdTKSAkKEFNX1JGTEFHUykgJChSRkxBR1MpJywKCQkgICAnY2NlcicgPT4gJ0Y3Nycs CgkJICAgJ2NvbXBpbGVyJyA9PiAnUkNPTVBJTEUnLAoJCSAgICdjb21waWxlX2ZsYWcnID0+ICct YycsCgkJICAgJ291dHB1dF9mbGFnJyA9PiAnLW8nLAoJCSAgICdsaWJ0b29sX3RhZycgPT4gJ0Y3 NycsCgkJICAgJ3B1cmUnID0+IDEsCgkJICAgJ2V4dGVuc2lvbnMnID0+IFsnLnInXSk7CgojIEph dmEgdmlhIGdjai4KcmVnaXN0ZXJfbGFuZ3VhZ2UgKCduYW1lJyA9PiAnamF2YScsCgkJICAgJ05h bWUnID0+ICdKYXZhJywKCQkgICAnY29uZmlnX3ZhcnMnID0+IFsnR0NKJ10sCgkJICAgJ2xpbmtl cicgPT4gJ0dDSkxJTksnLAoJCSAgICdsaW5rJyA9PiAnJChHQ0pMRCkgJChBTV9HQ0pGTEFHUykg JChHQ0pGTEFHUykgJChBTV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRAJywKCQkgICAnYXV0b2Rl cCcgPT4gJ0dDSicsCgkJICAgJ2ZsYWdzJyA9PiBbJ0dDSkZMQUdTJ10sCgkJICAgJ2NvbXBpbGUn ID0+ICckKEdDSikgJChBTV9HQ0pGTEFHUykgJChHQ0pGTEFHUyknLAoJCSAgICdjY2VyJyA9PiAn R0NKJywKCQkgICAnY29tcGlsZXInID0+ICdHQ0pDT01QSUxFJywKCQkgICAnY29tcGlsZV9mbGFn JyA9PiAnLWMnLAoJCSAgICdvdXRwdXRfZmxhZycgPT4gJy1vJywKCQkgICAnbGlidG9vbF90YWcn ID0+ICdHQ0onLAoJCSAgICdsZGVyJyA9PiAnR0NKTEQnLAoJCSAgICdsZCcgPT4gJyQoR0NKKScs CgkJICAgJ3B1cmUnID0+IDEsCgkJICAgJ2V4dGVuc2lvbnMnID0+IFsnLmphdmEnLCAnLmNsYXNz JywgJy56aXAnLCAnLmphciddKTsKCiMgQWxnb2wgNjggaW4gR0NDCnJlZ2lzdGVyX2xhbmd1YWdl ICgnbmFtZScgPT4gJ2E2OCcsCiAgICAgICAgICAgICAgICAgICAnTmFtZScgPT4gJ0FsZ29sIDY4 JywKICAgICAgICAgICAgICAgICAgICdjb25maWdfdmFycycgPT4gWydBNjgnXSwKICAgICAgICAg ICAgICAgICAgICdsaW5rZXInID0+ICdBNjhMSU5LJywKICAgICAgICAgICAgICAgICAgICdsaW5r JyA9PiAnJChBNjhMRCkgJChBTV9BNjhGTEFHUykgJChBNjhGTEFHUykgJChBTV9MREZMQUdTKSAk KExERkxBR1MpIC1vICRAJywKCQkgICAnZmxhZ3MnID0+IFsnQTY4RkxBR1MnXSwKCQkgICAnY29t cGlsZScgPT4gJyQoQTY4KSAkKEFNX0E2OEZMQUdTKSAkKEE2OEZMQUdTKScsCgkJICAgJ2NjZXIn ID0+ICdBNjgnLAoJCSAgICdjb21waWxlcicgPT4gJ0E2OENPTVBJTEUnLAoJCSAgICdjb21waWxl X2ZsYWcnID0+ICctYycsCgkJICAgJ291dHB1dF9mbGFnJyA9PiAnLW8nLAoJCSAgICdsaWJ0b29s X3RhZycgPT4gJ0E2OCcsCgkJICAgJ2xkZXInID0+ICdBNjhMRCcsCgkJICAgJ2xkJyA9PiAnJChB NjgpJywKCQkgICAncHVyZScgPT4gMSwKCQkgICAnZXh0ZW5zaW9ucycgPT4gWycuYTY4J10pOwoK IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIwoKIyBFcnJvciByZXBvcnRpbmcgZnVuY3Rpb25zLgoKIyBlcnJfYW0gKCRNRVNTQUdF LCBbJU9QVElPTlNdKQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVW5jYXRlZ29y aXplZCBlcnJvcnMgYWJvdXQgdGhlIGN1cnJlbnQgTWFrZWZpbGUuYW0uCnN1YiBlcnJfYW0Kewog IG1zZ19hbSAoJ2Vycm9yJywgQF8pOwp9CgojIGVycl9hYyAoJE1FU1NBR0UsIFslT1BUSU9OU10p CiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBVbmNhdGVnb3JpemVkIGVycm9ycyBh Ym91dCBjb25maWd1cmUuYWMuCnN1YiBlcnJfYWMKewogIG1zZ19hYyAoJ2Vycm9yJywgQF8pOwp9 CgojIG1zZ19hbSAoJENIQU5ORUwsICRNRVNTQUdFLCBbJU9QVElPTlNdKQojIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE1lc3NhZ2VzIGFib3V0IHRoZSBjdXJyZW50 IE1ha2VmaWxlLmFtLgpzdWIgbXNnX2FtCnsKICBteSAoJGNoYW5uZWwsICRtc2csICVvcHRzKSA9 IEBfOwogIG1zZyAkY2hhbm5lbCwgIiR7YW1fZmlsZX0uYW0iLCAkbXNnLCAlb3B0czsKfQoKIyBt c2dfYWMgKCRDSEFOTkVMLCAkTUVTU0FHRSwgWyVPUFRJT05TXSkKIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNZXNzYWdlcyBhYm91dCBjb25maWd1cmUuYWMuCnN1 YiBtc2dfYWMKewogIG15ICgkY2hhbm5lbCwgJG1zZywgJW9wdHMpID0gQF87CiAgbXNnICRjaGFu bmVsLCAkY29uZmlndXJlX2FjLCAkbXNnLCAlb3B0czsKfQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKIyBzdWJzdCAoJFRF WFQpCiMgLS0tLS0tLS0tLS0tLQojIFJldHVybiBhIGNvbmZpZ3VyZS1zdHlsZSBzdWJzdGl0dXRp b24gdXNpbmcgdGhlIGluZGljYXRlZCB0ZXh0LgojIFdlIGRvIHRoaXMgdG8gYXZvaWQgaGF2aW5n IHRoZSBzdWJzdGl0dXRpb25zIGRpcmVjdGx5IGluIGF1dG9tYWtlLmluOwojIHdoZW4gd2UgZG8g dGhhdCB0aGV5IGFyZSBzb21ldGltZXMgcmVtb3ZlZCBhbmQgdGhpcyBjYXVzZXMgY29uZnVzaW9u CiMgYW5kIGJ1Z3MuCnN1YiBzdWJzdAp7CiAgICBteSAoJHRleHQpID0gQF87CiAgICByZXR1cm4g J0AnIC4gJHRleHQgLiAnQCc7Cn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCgojICRCQUNLUEFUSAojIGJhY2tuYW1lICgk UkVMRElSKQojIC0tLS0tLS0tLS0tLS0tLS0tLS0KIyBJZiBJICJjZCAkUkVMRElSIiwgdGhlbiB0 byBjb21lIGJhY2ssIEkgc2hvdWxkICJjZCAkQkFDS1BBVEgiLgojIEZvciBpbnN0YW5jZSAnc3Jj L2ZvbycgPT4gJy4uLy4uJy4KIyBXb3JrcyB3aXRoIG5vbiBzdHJpY3RseSBpbmNyZWFzaW5nIHBh dGhzLCBpLmUuLCAnc3JjLy4uL2xpYicgPT4gJy4uJy4Kc3ViIGJhY2tuYW1lCnsKICAgIG15ICgk ZmlsZSkgPSBAXzsKICAgIG15IEByZXM7CiAgICBmb3JlYWNoIChzcGxpdCAoL1wvLywgJGZpbGUp KQogICAgewoJbmV4dCBpZiAkXyBlcSAnLicgfHwgJF8gZXEgJyc7CglpZiAoJF8gZXEgJy4uJykK CXsKCSAgICBwb3AgQHJlcwoJICAgICAgb3IgcHJvZ19lcnJvciAoInRyeWluZyB0byByZXZlcnNl IHBhdGggJyRmaWxlJyBwb2ludGluZyBvdXRzaWRlIHRyZWUiKTsKCX0KCWVsc2UKCXsKCSAgICBw dXNoIChAcmVzLCAnLi4nKTsKCX0KICAgIH0KICAgIHJldHVybiBqb2luICgnLycsIEByZXMpIHx8 ICcuJzsKfQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIwoKIyBTaWxlbnQgcnVsZXMgaGFuZGxpbmcgZnVuY3Rpb25zLgoKIyB2 ZXJib3NlX3ZhciAoTkFNRSkKIyAtLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGUgcHVibGljIHZhcmlh YmxlIHN0ZW0gdXNlZCB0byBpbXBsZW1lbnQgc2lsZW50IHJ1bGVzLgpzdWIgdmVyYm9zZV92YXIK ewogICAgbXkgKCRuYW1lKSA9IEBfOwogICAgcmV0dXJuICdBTV9WXycgLiAkbmFtZTsKfQoKIyB2 ZXJib3NlX3ByaXZhdGVfdmFyIChOQU1FKQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMg VGhlIG5hbWluZyBwb2xpY3kgZm9yIHRoZSBwcml2YXRlIHZhcmlhYmxlcyBmb3Igc2lsZW50IHJ1 bGVzLgpzdWIgdmVyYm9zZV9wcml2YXRlX3Zhcgp7CiAgICBteSAoJG5hbWUpID0gQF87CiAgICBy ZXR1cm4gJ2FtX192XycgLiAkbmFtZTsKfQoKIyBkZWZpbmVfdmVyYm9zZV92YXIgKE5BTUUsIFZB TC1JRi1TSUxFTlQsIFtWQUwtSUYtVkVSQk9TRV0pCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEZvciAgc2lsZW50IHJ1bGVzLCBz ZXR1cCBWQVIgYW5kIGRpc3BhdGNoZXIsIHRvIGV4cGFuZCB0bwojIFZBTC1JRi1TSUxFTlQgaWYg c2lsZW50LCB0byBWQUwtSUYtVkVSQk9TRSAoZGVmYXVsdGluZyB0bwojIGVtcHR5KSBpZiBub3Qu CnN1YiBkZWZpbmVfdmVyYm9zZV92YXIKewogICAgbXkgKCRuYW1lLCAkc2lsZW50X3ZhbCwgJHZl cmJvc2VfdmFsKSA9IEBfOwogICAgJHZlcmJvc2VfdmFsID0gJycgdW5sZXNzIGRlZmluZWQgJHZl cmJvc2VfdmFsOwogICAgbXkgJHZhciA9IHZlcmJvc2VfdmFyICgkbmFtZSk7CiAgICBteSAkcHZh ciA9IHZlcmJvc2VfcHJpdmF0ZV92YXIgKCRuYW1lKTsKICAgIG15ICRzaWxlbnRfdmFyID0gJHB2 YXIgLiAnXzAnOwogICAgbXkgJHZlcmJvc2VfdmFyID0gJHB2YXIgLiAnXzEnOwogICAgIyBGb3Ig dHlwaWNhbCAnbWFrZSdzLCAnY29uZmlndXJlJyByZXBsYWNlcyBBTV9WIChpbnNpZGUgQEApIHdp dGggJChWKQogICAgIyBhbmQgQU1fREVGQVVMVF9WIChpbnNpZGUgQEApIHdpdGggJChBTV9ERUZB VUxUX1ZFUkJPU0lUWSkuCiAgICAjIEZvciBzdHJpY3QgUE9TSVggMjAwOCAnbWFrZSdzLCBpdCBy ZXBsYWNlcyB0aGVtIHdpdGggMCBvciAxIGluc3RlYWQuCiAgICAjIFNlZSBBTV9TSUxFTlRfUlVM RVMgaW4gbTQvc2lsZW50Lm00LgogICAgZGVmaW5lX3ZhcmlhYmxlICgkdmFyLCAnJCgnIC4gJHB2 YXIgLiAnX0AnLidBTV9WJy4nQCknLCBJTlRFUk5BTCk7CiAgICBkZWZpbmVfdmFyaWFibGUgKCRw dmFyIC4gJ18nLCAnJCgnIC4gJHB2YXIgLiAnX0AnLidBTV9ERUZBVUxUX1YnLidAKScsCiAgICAg ICAgICAgICAgICAgICAgIElOVEVSTkFMKTsKICAgIEF1dG9tYWtlOjpWYXJpYWJsZTo6ZGVmaW5l ICgkc2lsZW50X3ZhciwgVkFSX0FVVE9NQUtFLCAnJywgVFJVRSwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAkc2lsZW50X3ZhbCwgJycsIElOVEVSTkFMLCBWQVJfQVNJUykKICAgICAg aWYgKCEgdmFyZGVmICgkc2lsZW50X3ZhciwgVFJVRSkpOwogICAgQXV0b21ha2U6OlZhcmlhYmxl OjpkZWZpbmUgKCR2ZXJib3NlX3ZhciwgVkFSX0FVVE9NQUtFLCAnJywgVFJVRSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAkdmVyYm9zZV92YWwsICcnLCBJTlRFUk5BTCwgVkFSX0FT SVMpCiAgICAgIGlmICghIHZhcmRlZiAoJHZlcmJvc2VfdmFyLCBUUlVFKSk7Cn0KCiMgdmVyYm9z ZV9mbGFnIChOQU1FKQojIC0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDb250ZW50cyBvZiAnJVZFUkJP U0UlJyB2YXJpYWJsZSB0byBleHBhbmQgYmVmb3JlIHJ1bGUgY29tbWFuZC4Kc3ViIHZlcmJvc2Vf ZmxhZwp7CiAgICBteSAoJG5hbWUpID0gQF87CiAgICByZXR1cm4gJyQoJyAuIHZlcmJvc2VfdmFy ICgkbmFtZSkgLiAnKSc7Cn0KCnN1YiB2ZXJib3NlX25vZGVwX2ZsYWcKewogICAgbXkgKCRuYW1l KSA9IEBfOwogICAgcmV0dXJuICckKCcgLiB2ZXJib3NlX3ZhciAoJG5hbWUpIC4gc3Vic3QgKCdh bV9fbm9kZXAnKSAuICcpJzsKfQoKIyBzaWxlbnRfZmxhZwojIC0tLS0tLS0tLS0tCiMgQ29udGVu dHMgb2YgJVNJTEVOVCU6IHZhcmlhYmxlIHRvIGV4cGFuZCB0byAnQCcgd2hlbiBzaWxlbnQuCnN1 YiBzaWxlbnRfZmxhZyAoKQp7CiAgICByZXR1cm4gdmVyYm9zZV9mbGFnICgnYXQnKTsKfQoKIyBk ZWZpbmVfdmVyYm9zZV90YWd2YXIgKE5BTUUpCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQojIEVuZ2FnZSB0aGUgbmVlZGVkIHNpbGVudCBydWxlcyBtYWNoaW5lcnkgZm9yIHRhZyBOQU1F LgpzdWIgZGVmaW5lX3ZlcmJvc2VfdGFndmFyCnsKICAgIG15ICgkbmFtZSkgPSBAXzsKICAgIGRl ZmluZV92ZXJib3NlX3ZhciAoJG5hbWUsICdAZWNobyAiICAnLiAkbmFtZSAuICcgJyB4ICg4IC0g bGVuZ3RoICgkbmFtZSkpIC4gJyIgJEA7Jyk7Cn0KCiMgRW5nYWdlIHRoZSBuZWVkZWQgc2lsZW50 IHJ1bGVzIG1hY2hpbmVyeSBmb3IgYXNzb3J0ZWQgdGV4aW5mbyBjb21tYW5kcy4Kc3ViIGRlZmlu ZV92ZXJib3NlX3RleGluZm8gKCkKewogIG15IEB0YWd2YXJzID0gKCdEVklQUycsICdNQUtFSU5G TycsICdJTkZPSFRNTCcsICdURVhJMkRWSScsICdURVhJMlBERicpOwogIGZvcmVhY2ggbXkgJHRh ZyAoQHRhZ3ZhcnMpCiAgICB7CiAgICAgIGRlZmluZV92ZXJib3NlX3RhZ3ZhcigkdGFnKTsKICAg IH0KICBkZWZpbmVfdmVyYm9zZV92YXIoJ3RleGluZm8nLCAnLXEnKTsKICBkZWZpbmVfdmVyYm9z ZV92YXIoJ3RleGlkZXZudWxsJywgJz4gL2Rldi9udWxsJyk7Cn0KCiMgRW5nYWdlIHRoZSBuZWVk ZWQgc2lsZW50IHJ1bGVzIG1hY2hpbmVyeSBmb3IgJ2xpYnRvb2wgLS1zaWxlbnQnLgpzdWIgZGVm aW5lX3ZlcmJvc2VfbGlidG9vbCAoKQp7CiAgICBkZWZpbmVfdmVyYm9zZV92YXIgKCdsdCcsICct LXNpbGVudCcpOwogICAgcmV0dXJuIHZlcmJvc2VfZmxhZyAoJ2x0Jyk7Cn0KCnN1YiBoYW5kbGVf c2lsZW50ICgpCnsKICAgICMgRGVmaW5lICIkKEFNX1ZfUCkiLCBleHBhbmRpbmcgdG8gYSBzaGVs bCBjb25kaXRpb25hbCB0aGF0IGNhbiBiZQogICAgIyB1c2VkIGluIG1ha2UgcmVjaXBlcyB0byBk ZXRlcm1pbmUgd2hldGhlciB3ZSBhcmUgYmVpbmcgcnVuIGluCiAgICAjIHNpbGVudCBtb2RlIG9y IG5vdC4gIFRoZSBjaG9pY2Ugb2YgdGhlIG5hbWUgZGVyaXZlcyBmcm9tIHRoZSBMSVNQCiAgICAj IGNvbnZlbnRpb24gb2YgYXBwZW5kaW5nIHRoZSBsZXR0ZXIgJ1AnIHRvIGRlbm90ZSBhIHByZWRp Y2F0ZSAoc2VlCiAgICAjIGFsc28gInRoZSAnLVAnIGNvbnZlbnRpb24iIGluIHRoZSBKYXJnb24g RmlsZSk7IHdlIGRvIHNvIGZvciBsYWNrCiAgICAjIG9mIGEgYmV0dGVyIGNvbnZlbnRpb24uCiAg ICBkZWZpbmVfdmVyYm9zZV92YXIgKCdQJywgJ2ZhbHNlJywgJzonKTsKICAgICMgKkFsd2F5cyog cHJvdmlkZSB0aGUgdXNlciB3aXRoICckKEFNX1ZfR0VOKScsIHVuY29uZGl0aW9uYWxseS4KICAg IGRlZmluZV92ZXJib3NlX3RhZ3ZhciAoJ0dFTicpOwogICAgZGVmaW5lX3ZlcmJvc2VfdmFyICgn YXQnLCAnQCcpOwp9CgoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKCiMgSGFuZGxlIEFVVE9NQUtFX09QVElPTlMgdmFyaWFi bGUuICBSZXR1cm4gMCBvbiBlcnJvciwgMSBvdGhlcndpc2UuCnN1YiBoYW5kbGVfb3B0aW9ucyAo KQp7CiAgbXkgJHZhciA9IHZhciAoJ0FVVE9NQUtFX09QVElPTlMnKTsKICBpZiAoJHZhcikKICAg IHsKICAgICAgaWYgKCR2YXItPmhhc19jb25kaXRpb25hbF9jb250ZW50cykKCXsKCSAgbXNnX3Zh ciAoJ3Vuc3VwcG9ydGVkJywgJHZhciwKCQkgICAiJ0FVVE9NQUtFX09QVElPTlMnIGNhbm5vdCBo YXZlIGNvbmRpdGlvbmFsIGNvbnRlbnRzIik7Cgl9CiAgICAgIG15IEBvcHRpb25zID0gbWFwIHsg eyBvcHRpb24gPT4gJF8tPlsxXSwgd2hlcmUgPT4gJF8tPlswXSB9IH0KCQkJJHZhci0+dmFsdWVf YXNfbGlzdF9yZWN1cnNpdmUgKGNvbmRfZmlsdGVyID0+IFRSVUUsCgkJCQkJCSAgICAgICBsb2Nh dGlvbiA9PiAxKTsKICAgICAgcmV0dXJuIDAgdW5sZXNzIHByb2Nlc3Nfb3B0aW9uX2xpc3QgKEBv cHRpb25zKTsKICAgIH0KCiAgaWYgKCRzdHJpY3RuZXNzID09IEdOSVRTKQogICAgewogICAgICBz ZXRfb3B0aW9uICgncmVhZG1lLWFscGhhJywgSU5URVJOQUwpOwogICAgICBzZXRfb3B0aW9uICgn c3RkLW9wdGlvbnMnLCBJTlRFUk5BTCk7CiAgICAgIHNldF9vcHRpb24gKCdjaGVjay1uZXdzJywg SU5URVJOQUwpOwogICAgfQoKICByZXR1cm4gMTsKfQoKIyBzaGFkb3dfdW5jb25kaXRpb25hbGx5 ICgkdmFybmFtZSwgJHdoZXJlKQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiMgUmV0dXJuIGEgJCh2YXJpYWJsZSkgdGhhdCBjb250YWlucyBhbGwgcG9zc2libGUg dmFsdWVzCiMgJHZhcm5hbWUgY2FuIHRha2UuCiMgSWYgdGhlIFZBUiB3YXNuJ3QgZGVmaW5lZCBj b25kaXRpb25hbGx5LCByZXR1cm4gJChWQVIpLgojIE90aGVyd2lzZSB3ZSBjcmVhdGUgYW4gYW1f X1ZBUl9ESVNUIHZhcmlhYmxlIHdoaWNoIGNvbnRhaW5zCiMgYWxsIHBvc3NpYmxlIHZhbHVlcywg YW5kIHJldHVybiAkKGFtX19WQVJfRElTVCkuCnN1YiBzaGFkb3dfdW5jb25kaXRpb25hbGx5CnsK ICBteSAoJHZhcm5hbWUsICR3aGVyZSkgPSBAXzsKICBteSAkdmFyID0gdmFyICR2YXJuYW1lOwog IGlmICgkdmFyLT5oYXNfY29uZGl0aW9uYWxfY29udGVudHMpCiAgICB7CiAgICAgICR2YXJuYW1l ID0gImFtX18ke3Zhcm5hbWV9X0RJU1QiOwogICAgICBteSBAZmlsZXMgPSB1bmlxICgkdmFyLT52 YWx1ZV9hc19saXN0X3JlY3Vyc2l2ZSk7CiAgICAgIGRlZmluZV9wcmV0dHlfdmFyaWFibGUgKCR2 YXJuYW1lLCBUUlVFLCAkd2hlcmUsIEBmaWxlcyk7CiAgICB9CiAgcmV0dXJuICJcJCgkdmFybmFt ZSkiCn0KCiMgY2hlY2tfdXNlcl92YXJpYWJsZXMgKEBMSVNUKQojIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KIyBNYWtlIHN1cmUgZWFjaCB2YXJpYWJsZSBWQVIgaW4gQExJU1QgZG9lcyBu b3QgZXhpc3QsIHN1Z2dlc3QgdXNpbmcgQU1fVkFSCiMgb3RoZXJ3aXNlLgpzdWIgY2hlY2tfdXNl cl92YXJpYWJsZXMKewogIG15IEBkb250X292ZXJyaWRlID0gQF87CiAgZm9yZWFjaCBteSAkZmxh ZyAoQGRvbnRfb3ZlcnJpZGUpCiAgICB7CiAgICAgIG15ICR2YXIgPSB2YXIgJGZsYWc7CiAgICAg IGlmICgkdmFyKQoJewoJICBmb3IgbXkgJGNvbmQgKCR2YXItPmNvbmRpdGlvbnMtPmNvbmRzKQoJ ICAgIHsKCSAgICAgIGlmICgkdmFyLT5yZGVmICgkY29uZCktPm93bmVyID09IFZBUl9NQUtFRklM RSkKCQl7CgkJICBtc2dfY29uZF92YXIgKCdnbnUnLCAkY29uZCwgJGZsYWcsCgkJCQkiJyRmbGFn JyBpcyBhIHVzZXIgdmFyaWFibGUsICIKCQkJCS4gInlvdSBzaG91bGQgbm90IG92ZXJyaWRlIGl0 O1xuIgoJCQkJLiAidXNlICdBTV8kZmxhZycgaW5zdGVhZCIpOwoJCX0KCSAgICB9Cgl9CiAgICB9 Cn0KCiMgQ2FsbCBmaW5pc2ggZnVuY3Rpb24gZm9yIGVhY2ggbGFuZ3VhZ2UgdGhhdCB3YXMgdXNl ZC4Kc3ViIGhhbmRsZV9sYW5ndWFnZXMgKCkKewogICAgaWYgKCEgb3B0aW9uICduby1kZXBlbmRl bmNpZXMnKQogICAgICB7CiAgICAgICAgIyBJbmNsdWRlIGF1dG8tZGVwIGNvZGUuICBEb24ndCBp bmNsdWRlIGl0IGlmIERFUF9GSUxFUyB3b3VsZAogICAgICAgICMgYmUgZW1wdHkuCiAgICAgICAg aWYgKGtleXMgJWV4dGVuc2lvbl9zZWVuICYmIGtleXMgJWRlcF9maWxlcykKICAgICAgICAgIHsK ICAgICAgICAgICAgbXkgQGRlcF9maWxlcyA9IHNvcnQga2V5cyAlZGVwX2ZpbGVzOwogICAgICAg ICAgICAjIFNldCBsb2NhdGlvbiBvZiBkZXBjb21wLgogICAgICAgICAgICBkZWZpbmVfdmFyaWFi bGUgKCdkZXBjb21wJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXCQoU0hFTEwpICRh bV9jb25maWdfYXV4X2Rpci9kZXBjb21wIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ TlRFUk5BTCk7CiAgICAgICAgICAgIGRlZmluZV92YXJpYWJsZSAoJ2FtX19tYXliZV9yZW1ha2Vf ZGVwZmlsZXMnLCAnZGVwZmlsZXMnLCBJTlRFUk5BTCk7CiAgICAgICAgICAgIGRlZmluZV92YXJp YWJsZSAoJ2FtX19kZXBmaWxlc19yZW1hZGUnLCAiQGRlcF9maWxlcyIsIElOVEVSTkFMKTsKICAg ICAgICAgICAgJG91dHB1dF9ydWxlcyAuPSAiXG4iOwogICAgICAgICAgICBteSBAZGlzdF9ybXM7 CiAgICAgICAgICAgIGZvcmVhY2ggbXkgJGRlcGZpbGUgKEBkZXBfZmlsZXMpCiAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgcHVzaCBAZGlzdF9ybXMsICJcdC1ybSAtZiAkZGVwZmlsZSI7 CiAgICAgICAgICAgICAgICAjIEdlbmVyYXRlIGVhY2ggJ2luY2x1ZGUnIGRpcmVjdGl2ZSBpbmRp dmlkdWFsbHkuICBTZXZlcmFsCiAgICAgICAgICAgICAgICAjIG1ha2UgaW1wbGVtZW50YXRpb25z IChJUklYIDYsIFNvbGFyaXMgMTAsIEZyZWVCU0QgOCkgd2lsbAogICAgICAgICAgICAgICAgIyBm YWlsIHRvIHByb3Blcmx5IGluY2x1ZGUgc2V2ZXJhbCBmaWxlcyByZXN1bHRpbmcgZnJvbSBhCiAg ICAgICAgICAgICAgICAjIHZhcmlhYmxlIGV4cGFuc2lvbi4gSnVzdCBHZW5lcmF0aW5nIG1hbnkg c2VwYXJhdGUgaW5jbHVkZXMKICAgICAgICAgICAgICAgICMgc2VlbXMgdGh1cyBzYWZlc3QuCiAg ICAgICAgICAgICAgICAkb3V0cHV0X3J1bGVzIC49IHN1YnN0ICgnQU1ERVBfVFJVRScpIC4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic3QgKCdhbV9faW5jbHVkZScpIC4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAiIC4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3Vic3QoJ2FtX19xdW90ZScpIC4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJGRlcGZpbGUgLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJz dCgnYW1fX3F1b3RlJykgLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICIgLgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIyBhbS0taW5jbHVkZS1tYXJrZXJcbiI7 CiAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmVxdWlyZV9jb25mX2ZpbGUgKCIkYW1fZmls ZS5hbSIsIEZPUkVJR04sICdkZXBjb21wJyk7CgogICAgICAgICAgICAkb3V0cHV0X3J1bGVzIC49 IGZpbGVfY29udGVudHMgKAogICAgICAgICAgICAgICAgJ2RlcGVuZCcsIG5ldyBBdXRvbWFrZTo6 TG9jYXRpb24sCiAgICAgICAgICAgICAgICAnRElTVFJNUycgPT4gam9pbiAoIlxuIiwgQGRpc3Rf cm1zKSk7CiAgICAgICAgICB9CiAgICAgIH0KICAgIGVsc2UKICAgICAgewogICAgICAgIGRlZmlu ZV92YXJpYWJsZSAoJ2RlcGNvbXAnLCAnJywgSU5URVJOQUwpOwogICAgICAgIGRlZmluZV92YXJp YWJsZSAoJ2FtX19tYXliZV9yZW1ha2VfZGVwZmlsZXMnLCAnJywgSU5URVJOQUwpOwogICAgICB9 CgogICAgbXkgJWRvbmU7CgogICAgIyBJcyB0aGUgQyBsaW5rZXIgbmVlZGVkPwogICAgbXkgJG5l ZWRzX2MgPSAwOwogICAgZm9yZWFjaCBteSAkZXh0IChzb3J0IGtleXMgJWV4dGVuc2lvbl9zZWVu KQogICAgewoJbmV4dCB1bmxlc3MgJGV4dGVuc2lvbl9tYXB7JGV4dH07CgoJbXkgJGxhbmcgPSAk bGFuZ3VhZ2VzeyRleHRlbnNpb25fbWFweyRleHR9fTsKCglteSAkcnVsZV9maWxlID0gJGxhbmct PnJ1bGVfZmlsZSB8fCAnZGVwZW5kMic7CgoJIyBHZXQgaW5mb3JtYXRpb24gb24gJExBTkcuCglt eSAkcGZ4ID0gJGxhbmctPmF1dG9kZXA7CglteSAkZnBmeCA9ICgkcGZ4IGVxICcnKSA/ICdDQycg OiAkcGZ4OwoKCW15ICgkQU1ERVAsICRGQVNUREVQKSA9CgkgIChvcHRpb24gJ25vLWRlcGVuZGVu Y2llcycgfHwgJGxhbmctPmF1dG9kZXAgZXEgJ25vJykKCSAgPyAoJ0ZBTFNFJywgJ0ZBTFNFJykg OiAoJ0FNREVQJywgImFtX19mYXN0ZGVwJGZwZngiKTsKCglteSAkdmVyYm9zZSA9IHZlcmJvc2Vf ZmxhZyAoJGxhbmctPmNjZXIgfHwgJ0dFTicpOwoJbXkgJHZlcmJvc2Vfbm9kZXAgPSAoJEFNREVQ IGVxICdGQUxTRScpCgkgID8gJHZlcmJvc2UgOiB2ZXJib3NlX25vZGVwX2ZsYWcgKCRsYW5nLT5j Y2VyIHx8ICdHRU4nKTsKCW15ICRzaWxlbnQgPSBzaWxlbnRfZmxhZyAoKTsKCglteSAldHJhbnNm b3JtID0gKCdFWFQnICAgICA9PiAkZXh0LAoJCQkgJ1BGWCcgICAgID0+ICRwZngsCgkJCSAnRlBG WCcgICAgPT4gJGZwZngsCgkJCSAnQU1ERVAnICAgPT4gJEFNREVQLAoJCQkgJ0ZBU1RERVAnID0+ ICRGQVNUREVQLAoJCQkgJy1jJyAgICAgID0+ICRsYW5nLT5jb21waWxlX2ZsYWcgfHwgJycsCgkJ CSAjIFRoZXNlIGFyZSBub3QgdXNlZCwgYnV0IHRoZXkgbmVlZCB0byBiZSBkZWZpbmVkCgkJCSAj IHNvIHRyYW5zZm9ybSgpIGRvIG5vdCBjb21wbGFpbi4KCQkJIFNVQkRJUk9CSiAgICAgPT4gMCwK CQkJICdERVJJVkVELUVYVCcgPT4gJ0JVRycsCgkJCSBESVNUX1NPVVJDRSAgID0+IDEsCgkJCSBW RVJCT1NFICAgPT4gJHZlcmJvc2UsCgkJCSAnVkVSQk9TRS1OT0RFUCcgPT4gJHZlcmJvc2Vfbm9k ZXAsCgkJCSBTSUxFTlQgICAgPT4gJHNpbGVudCwKCQkJKTsKCgkjIEdlbmVyYXRlIHRoZSBhcHBy b3ByaWF0ZSBydWxlcyBmb3IgdGhpcyBleHRlbnNpb24uCglpZiAoKCghIG9wdGlvbiAnbm8tZGVw ZW5kZW5jaWVzJykgJiYgJGxhbmctPmF1dG9kZXAgbmUgJ25vJykKCSAgICB8fCBkZWZpbmVkICRs YW5nLT5jb21waWxlKQoJewoJICAgICMgQ29tcHV0ZSBhIHBvc3NpYmxlIGRlcml2ZWQgZXh0ZW5z aW9uLgoJICAgICMgVGhpcyBpcyBub3QgdXNlZCBieSBkZXBlbmQyLmFtLgoJICAgIG15ICRkZXJf ZXh0ID0gKCRsYW5nLT5vdXRwdXRfZXh0ZW5zaW9ucy0+KCRleHQpKVswXTsKCgkgICAgIyBXaGVu IHdlIG91dHB1dCBhbiBpbmZlcmVuY2UgcnVsZSBsaWtlICcuYy5vOicgd2UKCSAgICAjIGhhdmUg dHdvIGNhc2VzIHRvIGNvbnNpZGVyOiBlaXRoZXIgc3ViZGlyLW9iamVjdHMKCSAgICAjIGlzIHVz ZWQsIG9yIGl0IGlzIG5vdC4KCSAgICAjCgkgICAgIyBJbiB0aGUgbGF0dGVyIGNhc2UgdGhlIHJ1 bGUgaXMgdXNlZCB0byBidWlsZCBvYmplY3RzCgkgICAgIyBpbiB0aGUgY3VycmVudCBkaXJlY3Rv cnksIGFuZCBkZXBlbmRlbmNpZXMgYWx3YXlzCgkgICAgIyBnbyBpbnRvICcuLyQoREVQRElSKS8n LiAgV2UgY2FuIGhhcmQtY29kZSB0aGlzIHZhbHVlLgoJICAgICMKCSAgICAjIEluIHRoZSBmb3Jt ZXIgY2FzZSB0aGUgcnVsZSBjYW4gYmUgdXNlZCB0byBidWlsZAoJICAgICMgb2JqZWN0cyBpbiBz dWItZGlyZWN0b3JpZXMgdG9vLiAgRGVwZW5kZW5jaWVzIHNob3VsZAoJICAgICMgZ28gaW50byB0 aGUgYXBwcm9wcmlhdGUgc3ViLWRpcmVjdG9yaWVzLCBlLmcuLAoJICAgICMgJ3N1Yi8kKERFUERJ UikvJy4gIFRoZSB2YWx1ZSBvZiB0aGlzIGRpcmVjdG9yeQoJICAgICMgbmVlZHMgdG8gYmUgY29t cHV0ZWQgb24tdGhlLWZseS4KCSAgICAjCgkgICAgIyBERVBCQVNFIGhvbGRzIHRoZSBuYW1lIG9m IHRoaXMgZGlyZWN0b3J5LCBwbHVzIHRoZQoJICAgICMgYmFzZW5hbWUgcGFydCBvZiB0aGUgb2Jq ZWN0IGZpbGUgKGV4dGVuc2lvbnMgUG8sIFRQbywKCSAgICAjIFBsbywgVFBsbyB3aWxsIGJlIGFk ZGVkIGxhdGVyIGFzIGFwcHJvcHJpYXRlKS4gIEl0IGlzCgkgICAgIyBlaXRoZXIgaGFyZGNvZGVk LCBvciBhIHNoZWxsIHZhcmlhYmxlICgnJGRlcGJhc2UnKSB0aGF0CgkgICAgIyB3aWxsIGJlIGNv bXB1dGVkIGJ5IHRoZSBydWxlLgoJICAgIG15ICRkZXBiYXNlID0KCSAgICAgIG9wdGlvbiAoJ3N1 YmRpci1vYmplY3RzJykgPyAnJCRkZXBiYXNlJyA6ICckKERFUERJUikvJConOwoJICAgICRvdXRw dXRfcnVsZXMgLj0KCSAgICAgIGZpbGVfY29udGVudHMgKCRydWxlX2ZpbGUsCgkJCSAgICAgbmV3 IEF1dG9tYWtlOjpMb2NhdGlvbiwKCQkJICAgICAldHJhbnNmb3JtLAoJCQkgICAgIEdFTkVSSUMg ICA9PiAxLAoKCQkJICAgICAnREVSSVZFRC1FWFQnID0+ICRkZXJfZXh0LAoKCQkJICAgICBERVBC QVNFICAgPT4gJGRlcGJhc2UsCgkJCSAgICAgQkFTRSAgICAgID0+ICckKicsCgkJCSAgICAgU09V UkNFICAgID0+ICckPCcsCgkJCSAgICAgU09VUkNFRkxBRyA9PiAkc291cmNlZmxhZ3N7JGV4dH0g fHwgJycsCgkJCSAgICAgT0JKICAgICAgID0+ICckQCcsCgkJCSAgICAgT0JKT0JKICAgID0+ICck QCcsCgkJCSAgICAgTFRPQkogICAgID0+ICckQCcsCgoJCQkgICAgIENPTVBJTEUgICA9PiAnJCgn IC4gJGxhbmctPmNvbXBpbGVyIC4gJyknLAoJCQkgICAgIExUQ09NUElMRSA9PiAnJChMVCcgLiAk bGFuZy0+Y29tcGlsZXIgLiAnKScsCgkJCSAgICAgLW8gICAgICAgID0+ICRsYW5nLT5vdXRwdXRf ZmxhZywKCQkJICAgICBTVUJESVJPQkogPT4gISEgb3B0aW9uICdzdWJkaXItb2JqZWN0cycpOwoJ fQoKCSMgTm93IGluY2x1ZGUgY29kZSBmb3IgZWFjaCBzcGVjaWFsbHkgaGFuZGxlZCBvYmplY3Qg d2l0aCB0aGlzCgkjIGxhbmd1YWdlLgoJbXkgJXNlZW5fZmlsZXMgPSAoKTsKCWZvcmVhY2ggbXkg JGZpbGUgKEB7JGxhbmdfc3BlY2lmaWNfZmlsZXN7JGxhbmctPm5hbWV9fSkKCXsKCSAgICBteSAo JGRlcml2ZWQsICRzb3VyY2UsICRvYmosICRteWV4dCwgJHNyY2V4dCwgJWZpbGVfdHJhbnNmb3Jt KSA9IEAkZmlsZTsKCgkgICAgIyBXZSBtaWdodCBzZWUgYSBnaXZlbiBvYmplY3QgdHdpY2UsIGZv ciBpbnN0YW5jZSBpZiBpdCBpcwoJICAgICMgdXNlZCB1bmRlciBkaWZmZXJlbnQgY29uZGl0aW9u cy4KCSAgICBuZXh0IGlmIGRlZmluZWQgJHNlZW5fZmlsZXN7JG9ian07CgkgICAgJHNlZW5fZmls ZXN7JG9ian0gPSAxOwoKCSAgICBwcm9nX2Vycm9yICgiZm91bmQgIiAuICRsYW5nLT5uYW1lIC4K CQkJIiBpbiBoYW5kbGVfbGFuZ3VhZ2VzLCBidXQgY29tcGlsZXIgbm90IGRlZmluZWQiKQoJICAg ICAgdW5sZXNzIGRlZmluZWQgJGxhbmctPmNvbXBpbGU7CgoJICAgIG15ICRvYmpfY29tcGlsZSA9 ICRsYW5nLT5jb21waWxlOwoKCSAgICAjIFJld3JpdGUgZWFjaCBvY2N1cnJlbmNlIG9mICdBTV8k ZmxhZycgaW4gdGhlIGNvbXBpbGUKCSAgICAjIHJ1bGUgaW50byAnJHtkZXJpdmVkfV8kZmxhZycg aWYgaXQgZXhpc3RzLgoJICAgIGZvciBteSAkZmxhZyAoQHskbGFuZy0+ZmxhZ3N9KQoJICAgICAg ewoJCW15ICR2YWwgPSAiJHtkZXJpdmVkfV8kZmxhZyI7CgkJJG9ial9jb21waWxlID1+IHMvXChB TV8kZmxhZ1wpL1woJHZhbFwpLwoJCSAgaWYgc2V0X3NlZW4gKCR2YWwpOwoJICAgICAgfQoKCSAg ICBteSAkbGlidG9vbF90YWcgPSAnJzsKCSAgICBpZiAoJGxhbmctPmxpYnRvb2xfdGFnICYmIGV4 aXN0cyAkbGlidG9vbF90YWdzeyRsYW5nLT5saWJ0b29sX3RhZ30pCgkgICAgICB7CgkJJGxpYnRv b2xfdGFnID0gJy0tdGFnPScgLiAkbGFuZy0+bGlidG9vbF90YWcgLiAnICcKCSAgICAgIH0KCgkg ICAgbXkgJHB0bHRmbGFncyA9ICIke2Rlcml2ZWR9X0xJQlRPT0xGTEFHUyI7CgkgICAgJHB0bHRm bGFncyA9ICdBTV9MSUJUT09MRkxBR1MnIHVubGVzcyBzZXRfc2VlbiAkcHRsdGZsYWdzOwoKCSAg ICBteSAkbHR2ZXJib3NlID0gZGVmaW5lX3ZlcmJvc2VfbGlidG9vbCAoKTsKCSAgICBteSAkb2Jq X2x0Y29tcGlsZSA9CgkgICAgICAiXCQoTElCVE9PTCkgJGx0dmVyYm9zZSAkbGlidG9vbF90YWdc JCgkcHRsdGZsYWdzKSBcJChMSUJUT09MRkxBR1MpICIKCSAgICAgIC4gIi0tbW9kZT1jb21waWxl ICRvYmpfY29tcGlsZSI7CgoJICAgICMgV2UgX25lZWRfICctbycgZm9yIHBlciBvYmplY3QgcnVs ZXMuCgkgICAgbXkgJG91dHB1dF9mbGFnID0gJGxhbmctPm91dHB1dF9mbGFnIHx8ICctbyc7CgoJ ICAgIG15ICRkZXBiYXNlID0gZGlybmFtZSAoJG9iaik7CgkgICAgJGRlcGJhc2UgPSAnJwoJCWlm ICRkZXBiYXNlIGVxICcuJzsKCSAgICAkZGVwYmFzZSAuPSAnLycKCQl1bmxlc3MgJGRlcGJhc2Ug ZXEgJyc7CgkgICAgJGRlcGJhc2UgLj0gJyQoREVQRElSKS8nIC4gYmFzZW5hbWUgKCRvYmopOwoK CSAgICAkb3V0cHV0X3J1bGVzIC49CgkgICAgICBmaWxlX2NvbnRlbnRzICgkcnVsZV9maWxlLAoJ CQkgICAgIG5ldyBBdXRvbWFrZTo6TG9jYXRpb24sCgkJCSAgICAgJXRyYW5zZm9ybSwKCQkJICAg ICBHRU5FUklDICAgPT4gMCwKCgkJCSAgICAgREVQQkFTRSAgID0+ICRkZXBiYXNlLAoJCQkgICAg IEJBU0UgICAgICA9PiAkb2JqLAoJCQkgICAgIFNPVVJDRSAgICA9PiAkc291cmNlLAoJCQkgICAg IFNPVVJDRUZMQUcgPT4gJHNvdXJjZWZsYWdzeyRzcmNleHR9IHx8ICcnLAoJCQkgICAgICMgVXNl ICRteWV4dCBhbmQgbm90ICcubycgaGVyZSwgaW4gY2FzZQoJCQkgICAgICMgd2UgYXJlIGFjdHVh bGx5IGJ1aWxkaW5nIGEgbmV3IHNvdXJjZQoJCQkgICAgICMgZmlsZSAtLSBlLmcuIHZpYSB5YWNj LgoJCQkgICAgIE9CSiAgICAgICA9PiAiJG9iaiRteWV4dCIsCgkJCSAgICAgT0JKT0JKICAgID0+ ICIkb2JqLm9iaiIsCgkJCSAgICAgTFRPQkogICAgID0+ICIkb2JqLmxvIiwKCgkJCSAgICAgVkVS Qk9TRSAgID0+ICR2ZXJib3NlLAoJCQkgICAgICdWRVJCT1NFLU5PREVQJyAgPT4gJHZlcmJvc2Vf bm9kZXAsCgkJCSAgICAgU0lMRU5UICAgID0+ICRzaWxlbnQsCgkJCSAgICAgQ09NUElMRSAgID0+ ICRvYmpfY29tcGlsZSwKCQkJICAgICBMVENPTVBJTEUgPT4gJG9ial9sdGNvbXBpbGUsCgkJCSAg ICAgLW8gICAgICAgID0+ICRvdXRwdXRfZmxhZywKCQkJICAgICAlZmlsZV90cmFuc2Zvcm0pOwoJ fQoKCSMgVGhlIHJlc3Qgb2YgdGhlIGxvb3AgaXMgZG9uZSBvbmNlIHBlciBsYW5ndWFnZS4KCW5l eHQgaWYgZGVmaW5lZCAkZG9uZXskbGFuZ307CgkkZG9uZXskbGFuZ30gPSAxOwoKCSMgTG9hZCB0 aGUgbGFuZ3VhZ2UgZGVwZW5kZW50IE1ha2VmaWxlIGNodW5rcy4KCW15ICVsYW5nID0gbWFwIHsg dWMgKCRfKSA9PiAwIH0ga2V5cyAlbGFuZ3VhZ2VzOwoJJGxhbmd7dWMgKCRsYW5nLT5uYW1lKX0g PSAxOwoJJG91dHB1dF9ydWxlcyAuPSBmaWxlX2NvbnRlbnRzICgnbGFuZy1jb21waWxlJywKCQkJ CQluZXcgQXV0b21ha2U6OkxvY2F0aW9uLAoJCQkJCSV0cmFuc2Zvcm0sICVsYW5nKTsKCgkjIElm IHRoZSBzb3VyY2UgdG8gYSBwcm9ncmFtIGNvbnNpc3RzIGVudGlyZWx5IG9mIGNvZGUgZnJvbSBh CgkjICdwdXJlJyBsYW5ndWFnZSwgZm9yIGluc3RhbmNlIEMrKyBvciBGb3J0cmFuIDc3LCB0aGVu IHdlCgkjIGRvbid0IG5lZWQgdGhlIEMgY29tcGlsZXIgY29kZS4gIEhvd2V2ZXIgaWYgd2UgcnVu IGludG8KCSMgc29tZXRoaW5nIHVudXN1YWwgdGhlbiB3ZSBkbyBnZW5lcmF0ZSB0aGUgQyBjb2Rl LiAgVGhlcmUgYXJlCgkjIHByb2JhYmx5IGNvcm5lciBjYXNlcyBoZXJlIHRoYXQgZG8gbm90IHdv cmsgcHJvcGVybHkuCgkjIFBlb3BsZSBsaW5raW5nIEphdmEgY29kZSB0byBGb3J0cmFuIGNvZGUg ZGVzZXJ2ZSBwYWluLgoJJG5lZWRzX2MgfHw9ICEgJGxhbmctPnB1cmU7CgoJZGVmaW5lX2NvbXBp bGVyX3ZhcmlhYmxlICgkbGFuZykKCSAgaWYgKCRsYW5nLT5jb21waWxlKTsKCglkZWZpbmVfbGlu a2VyX3ZhcmlhYmxlICgkbGFuZykKCSAgaWYgKCRsYW5nLT5saW5rKTsKCglyZXF1aXJlX3Zhcmlh YmxlcyAoIiRhbV9maWxlLmFtIiwgJGxhbmctPk5hbWUgLiAiIHNvdXJjZSBzZWVuIiwKCQkJICAg VFJVRSwgQHskbGFuZy0+Y29uZmlnX3ZhcnN9KTsKCgkjIENhbGwgdGhlIGZpbmlzaGVyLgoJJGxh bmctPmZpbmlzaDsKCgkjIEZsYWdzIGxpc3RlZCBpbiAnLT5mbGFncycgYXJlIHVzZXIgdmFyaWFi bGVzIChwZXIgR05VIFN0YW5kYXJkcyksCgkjIHRoZXkgc2hvdWxkIG5vdCBiZSBvdmVycmlkZGVu IGluIHRoZSBNYWtlZmlsZS4uLgoJbXkgQGRvbnRfb3ZlcnJpZGUgPSBAeyRsYW5nLT5mbGFnc307 CgkjIC4uLiBhbmQgc28gaXMgTERGTEFHUy4KCXB1c2ggQGRvbnRfb3ZlcnJpZGUsICdMREZMQUdT JyBpZiAkbGFuZy0+bGluazsKCgljaGVja191c2VyX3ZhcmlhYmxlcyBAZG9udF9vdmVycmlkZTsK ICAgIH0KCiAgICAjIElmIHRoZSBwcm9qZWN0IGlzIGVudGlyZWx5IEMrKyBvciBlbnRpcmVseSBG b3J0cmFuIDc3IChpLmUuLCAxCiAgICAjIHN1ZmZpeCBydWxlIHdhcyBsZWFybmVkKSwgZG9uJ3Qg Ym90aGVyIHdpdGggdGhlIEMgc3R1ZmYuICBCdXQgaWYKICAgICMgYW55dGhpbmcgZWxzZSBjcmVl cHMgaW4sIHRoZW4gdXNlIGl0LgogICAgbXkgQGxhbmd1YWdlc19zZWVuID0gbWFwIHsgJGxhbmd1 YWdlc3skZXh0ZW5zaW9uX21hcHskX319LT5uYW1lIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoc29ydCBrZXlzICVleHRlbnNpb25fc2Vlbik7CiAgICBAbGFuZ3VhZ2VzX3NlZW4gPSB1 bmlxIChAbGFuZ3VhZ2VzX3NlZW4pOwogICAgJG5lZWRzX2MgPSAxIGlmIEBsYW5ndWFnZXNfc2Vl biA+IDE7CiAgICBpZiAoJG5lZWRfbGluayB8fCAkbmVlZHNfYykKICAgICAgewoJZGVmaW5lX2Nv bXBpbGVyX3ZhcmlhYmxlICgkbGFuZ3VhZ2VzeydjJ30pCgkgIHVubGVzcyBkZWZpbmVkICRkb25l eyRsYW5ndWFnZXN7J2MnfX07CglkZWZpbmVfbGlua2VyX3ZhcmlhYmxlICgkbGFuZ3VhZ2Vzeydj J30pOwogICAgICB9Cn0KCgojIGFwcGVuZF9leGVleHQgeyBQUkVESUNBVEUgfSAkTUFDUk8KIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQXBwZW5kICQoRVhFRVhUKSB0byBl YWNoIGZpbGVuYW1lIGluICRGIGFwcGVhcmluZyBpbiB0aGUgTWFrZWZpbGUKIyB2YXJpYWJsZSAk TUFDUk8gaWYgJlBSRURJQ0FURSgkRikgaXMgdHJ1ZS4gIEBzdWJzdGl0dXRpb25zQCBhcmUKIyBp Z25vcmVkLgojCiMgVGhpcyBpcyB0eXBpY2FsbHkgdXNlZCBvbiBhbGwgZmlsZW5hbWVzIG9mICpf UFJPR1JBTVMsIGFuZCBmaWxlbmFtZXMKIyBvZiBURVNUUyB0aGF0IGFyZSBwcm9ncmFtcy4Kc3Vi IGFwcGVuZF9leGVleHQgKCYkKQp7CiAgbXkgKCRwcmVkLCAkbWFjcm8pID0gQF87CgogIHRyYW5z Zm9ybV92YXJpYWJsZV9yZWN1cnNpdmVseQogICAgKCRtYWNybywgJG1hY3JvLCAnYW1fX0VYRUVY VCcsIDAsIElOVEVSTkFMLAogICAgIHN1YiB7CiAgICAgICBteSAoJHN1YnZhciwgJHZhbCwgJGNv bmQsICRmdWxsX2NvbmQpID0gQF87CiAgICAgICAjIEFwcGVuZCAkKEVYRUVYVCkgdW5sZXNzIHRo ZSB1c2VyIGRpZCBpdCBhbHJlYWR5LCBvciBpdCdzIGEKICAgICAgICMgQHN1YnN0aXR1dGlvbkAu CiAgICAgICAkdmFsIC49ICckKEVYRUVYVCknCgkgaWYgJHZhbCAhfiAvKD86XCRcKEVYRUVYVFwp JHxeW0BdXHcrW0BdJCkvICYmICYkcHJlZCAoJHZhbCk7CiAgICAgICByZXR1cm4gJHZhbDsKICAg ICB9KTsKfQoKCiMgQ2hlY2sgdG8gbWFrZSBzdXJlIGEgc291cmNlIGRlZmluZWQgaW4gTElCT0JK UyBpcyBub3QgZXhwbGljaXRseQojIG1lbnRpb25lZC4gIFRoaXMgaXMgYSBzZXBhcmF0ZSBmdW5j dGlvbiAoYXMgb3Bwb3NlZCB0byBiZWluZyBpbmxpbmVkCiMgaW4gaGFuZGxlX3NvdXJjZV90cmFu c2Zvcm0pIGJlY2F1c2UgaXQgaXNuJ3QgYWx3YXlzIGFwcHJvcHJpYXRlIHRvCiMgZG8gdGhpcyBj aGVjay4Kc3ViIGNoZWNrX2xpYm9ianNfc291cmNlcwp7CiAgbXkgKCRvbmVfZmlsZSwgJHVueGZv cm1lZCkgPSBAXzsKCiAgZm9yZWFjaCBteSAkcHJlZml4ICgnJywgJ0VYVFJBXycsICdkaXN0Xycs ICdub2Rpc3RfJywKCQkgICAgICAnZGlzdF9FWFRSQV8nLCAnbm9kaXN0X0VYVFJBXycpCiAgICB7 CiAgICAgIG15IEBmaWxlczsKICAgICAgbXkgJHZhcm5hbWUgPSAkcHJlZml4IC4gJG9uZV9maWxl IC4gJ19TT1VSQ0VTJzsKICAgICAgbXkgJHZhciA9IHZhciAoJHZhcm5hbWUpOwogICAgICBpZiAo JHZhcikKCXsKCSAgQGZpbGVzID0gJHZhci0+dmFsdWVfYXNfbGlzdF9yZWN1cnNpdmU7Cgl9CiAg ICAgIGVsc2lmICgkcHJlZml4IGVxICcnKQoJewoJICBAZmlsZXMgPSAoJHVueGZvcm1lZCAuICcu YycpOwoJfQogICAgICBlbHNlCgl7CgkgIG5leHQ7Cgl9CgogICAgICBmb3JlYWNoIG15ICRmaWxl IChAZmlsZXMpCgl7CgkgIGVycl92YXIgKCRwcmVmaXggLiAkb25lX2ZpbGUgLiAnX1NPVVJDRVMn LAoJCSAgICJhdXRvbWF0aWNhbGx5IGRpc2NvdmVyZWQgZmlsZSAnJGZpbGUnIHNob3VsZCBub3Qi IC4KCQkgICAiIGJlIGV4cGxpY2l0bHkgbWVudGlvbmVkIikKCSAgICBpZiBkZWZpbmVkICRsaWJz b3VyY2VzeyRmaWxlfTsKCX0KICAgIH0KfQoKCiMgQE9CSkVDVFMKIyBoYW5kbGVfc2luZ2xlX3Ry YW5zZm9ybSAoJFZBUiwgJFRPUFBBUkVOVCwgJERFUklWRUQsICRPQkosICRGSUxFLCAlVFJBTlNG T1JNKQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgRG9lcyBtdWNoIG9mIHRoZSBhY3R1YWwgd29y ayBmb3IgaGFuZGxlX3NvdXJjZV90cmFuc2Zvcm0uCiMgQXJndW1lbnRzIGFyZToKIyAgICRWQVIg aXMgdGhlIG5hbWUgb2YgdGhlIHZhcmlhYmxlIHRoYXQgdGhlIHNvdXJjZSBmaWxlbmFtZXMgY29t ZSBmcm9tCiMgICAkVE9QUEFSRU5UIGlzIHRoZSBuYW1lIG9mIHRoZSBfU09VUkNFUyB2YXJpYWJs ZSB3aGljaCBpcyBiZWluZyBwcm9jZXNzZWQKIyAgICRERVJJVkVEIGlzIHRoZSBuYW1lIG9mIHJl c3VsdGluZyBleGVjdXRhYmxlIG9yIGxpYnJhcnkKIyAgICRPQkogaXMgdGhlIG9iamVjdCBleHRl bnNpb24gKGUuZy4sICcubG8nKQojICAgJEZJTEUgdGhlIHNvdXJjZSBmaWxlIHRvIHRyYW5zZm9y bQojICAgJVRSQU5TRk9STSBjb250YWlucyBleHRyYXMgYXJndW1lbnRzIHRvIHBhc3MgdG8gZmls ZV9jb250ZW50cwojICAgICB3aGVuIHByb2R1Y2luZyBleHBsaWNpdCBydWxlcwojIFJlc3VsdCBp cyBhIGxpc3Qgb2YgdGhlIG5hbWVzIG9mIG9iamVjdHMKIyAlbGlua2Vyc191c2VkIHdpbGwgYmUg dXBkYXRlZCB3aXRoIGFueSBsaW5rZXJzIG5lZWRlZApzdWIgaGFuZGxlX3NpbmdsZV90cmFuc2Zv cm0KewogICAgbXkgKCR2YXIsICR0b3BwYXJlbnQsICRkZXJpdmVkLCAkb2JqLCAkX2ZpbGUsICV0 cmFuc2Zvcm0pID0gQF87CiAgICBteSBAZmlsZXMgPSAoJF9maWxlKTsKICAgIG15IEByZXN1bHQg PSAoKTsKCiAgICAjIFR1cm4gc291cmNlcyBpbnRvIG9iamVjdHMuICBXZSB1c2UgYSB3aGlsZSBs b29wIGxpa2UgdGhpcwogICAgIyBiZWNhdXNlIHdlIG1pZ2h0IGFkZCB0byBAZmlsZXMgaW4gdGhl IGxvb3AuCiAgICB3aGlsZSAoc2NhbGFyIEBmaWxlcyA+IDApCiAgICB7CgkkXyA9IHNoaWZ0IEBm aWxlczsKCgkjIENvbmZpZ3VyZSBzdWJzdGl0dXRpb25zIGluIF9TT1VSQ0VTIHZhcmlhYmxlcyBh cmUgZXJyb3JzLgoJaWYgKC9eXEAuKlxAJC8pCgl7CgkgIG15ICRwYXJlbnRfbXNnID0gJyc7Cgkg ICRwYXJlbnRfbXNnID0gIlxuYW5kIGlzIHJlZmVycmVkIHRvIGZyb20gJyR0b3BwYXJlbnQnIgoJ ICAgIGlmICR0b3BwYXJlbnQgbmUgJHZhci0+bmFtZTsKCSAgZXJyX3ZhciAoJHZhciwKCQkgICAi JyIgLiAkdmFyLT5uYW1lIC4gIicgaW5jbHVkZXMgY29uZmlndXJlIHN1YnN0aXR1dGlvbiAnJF8n IgoJCSAgIC4gJHBhcmVudF9tc2cgLiAiO1xuY29uZmlndXJlICIgLgoJCSAgICJzdWJzdGl0dXRp b25zIGFyZSBub3QgYWxsb3dlZCBpbiBfU09VUkNFUyB2YXJpYWJsZXMiKTsKCSAgbmV4dDsKCX0K CgkjIElmIHRoZSBzb3VyY2UgZmlsZSBpcyBpbiBhIHN1YmRpcmVjdG9yeSB0aGVuIHRoZSAnLm8n IGlzIHB1dAoJIyBpbnRvIHRoZSBjdXJyZW50IGRpcmVjdG9yeSwgdW5sZXNzIHRoZSBzdWJkaXIt b2JqZWN0cyBvcHRpb24KCSMgaXMgaW4gZWZmZWN0LgoKCSMgU3BsaXQgZmlsZSBuYW1lIGludG8g YmFzZSBhbmQgZXh0ZW5zaW9uLgoJbmV4dCBpZiAhIC9eKD86KC4qKVwvKT8oW15cL10qKSgkS05P V05fRVhURU5TSU9OU19QQVRURVJOKSQvOwoJbXkgJGZ1bGwgPSAkXzsKCW15ICRkaXJlY3Rvcnkg PSAkMSB8fCAnJzsKCW15ICRiYXNlID0gJDI7CglteSAkZXh0ZW5zaW9uID0gJDM7CgoJIyBXZSBt dXN0IGdlbmVyYXRlIGEgcnVsZSBmb3IgdGhlIG9iamVjdCBpZiBpdCByZXF1aXJlcyBpdHMgb3du IGZsYWdzLgoJbXkgJHJlbmFtZWQgPSAwOwoJbXkgKCRsaW5rZXIsICRvYmplY3QpOwoKICAgICAg ICAjIFRoaXMgcmVjb3JkcyB3aGV0aGVyIHdlJ3ZlIHNlZW4gYSBkZXJpdmVkIHNvdXJjZSBmaWxl IChlLmcuLCB5YWNjCiAgICAgICAgIyBvciBsZXggb3V0cHV0KS4KICAgICAgICBteSAkZGVyaXZl ZF9zb3VyY2U7CgoJIyBUaGlzIGhvbGRzIHRoZSAnYWdncmVnYXRlIGNvbnRleHQnIG9mIHRoZSBm aWxlIHdlIGFyZQoJIyBjdXJyZW50bHkgZXhhbWluaW5nLiAgSWYgdGhlIGZpbGUgaXMgY29tcGls ZWQgd2l0aAoJIyBwZXItb2JqZWN0IGZsYWdzLCB0aGVuIGl0IHdpbGwgYmUgdGhlIG5hbWUgb2Yg dGhlIG9iamVjdC4KCSMgT3RoZXJ3aXNlIGl0IHdpbGwgYmUgJ0FNJy4gIFRoaXMgaXMgdXNlZCBi eSB0aGUgdGFyZ2V0IGhvb2sKCSMgbGFuZ3VhZ2UgZnVuY3Rpb24uCglteSAkYWdncmVnYXRlID0g J0FNJzsKCgkkZXh0ZW5zaW9uID0gZGVyaXZlX3N1ZmZpeCAoJGV4dGVuc2lvbiwgJG9iaik7Cglt eSAkbGFuZzsKCWlmICgkZXh0ZW5zaW9uX21hcHskZXh0ZW5zaW9ufSAmJgoJICAgICgkbGFuZyA9 ICRsYW5ndWFnZXN7JGV4dGVuc2lvbl9tYXB7JGV4dGVuc2lvbn19KSkKCXsKCSAgICAjIEZvdW5k IHRoZSBsYW5ndWFnZSwgc28gc2VlIHdoYXQgaXQgc2F5cy4KCSAgICBzYXdfZXh0ZW5zaW9uICgk ZXh0ZW5zaW9uKTsKCgkgICAgIyBEbyB3ZSBoYXZlIHBlci1leGVjdXRhYmxlIGZsYWdzIGZvciB0 aGlzIGV4ZWN1dGFibGU/CgkgICAgbXkgJGhhdmVfcGVyX2V4ZWNfZmxhZ3MgPSAwOwoJICAgIG15 IEBwZWZsYWdzID0gQHskbGFuZy0+ZmxhZ3N9OwoJICAgIHB1c2ggQHBlZmxhZ3MsICdMSUJUT09M RkxBR1MnIGlmICRvYmogZXEgJy5sbyc7CgkgICAgZm9yZWFjaCBteSAkZmxhZyAoQHBlZmxhZ3Mp CgkgICAgICB7CgkJaWYgKHNldF9zZWVuICgiJHtkZXJpdmVkfV8kZmxhZyIpKQoJCSAgewoJCSAg ICAkaGF2ZV9wZXJfZXhlY19mbGFncyA9IDE7CgkJICAgIGxhc3Q7CgkJICB9CgkgICAgICB9CgoJ ICAgICMgTm90ZTogY29tcHV0ZWQgc3ViciBjYWxsLiAgVGhlIGxhbmd1YWdlIHJld3JpdGUgZnVu Y3Rpb24KCSAgICAjIHNob3VsZCByZXR1cm4gb25lIG9mIHRoZSBMQU5HXyogY29uc3RhbnRzLiAg SXQgY291bGQKCSAgICAjIGFsc28gcmV0dXJuIGEgbGlzdCB3aG9zZSBmaXJzdCB2YWx1ZSBpcyBz dWNoIGEgY29uc3RhbnQKCSAgICAjIGFuZCB3aG9zZSBzZWNvbmQgdmFsdWUgaXMgYSBuZXcgc291 cmNlIGV4dGVuc2lvbiB3aGljaAoJICAgICMgc2hvdWxkIGJlIGFwcGxpZWQuICBUaGlzIG1lYW5z IHRoaXMgcGFydGljdWxhciBsYW5ndWFnZQoJICAgICMgZ2VuZXJhdGVzIGFub3RoZXIgc291cmNl IGZpbGUgd2hpY2ggd2UgbXVzdCB0aGVuIHByb2Nlc3MKCSAgICAjIGZ1cnRoZXIuCgkgICAgbXkg JHN1YnIgPSBcJnsnbGFuZ18nIC4gJGxhbmctPm5hbWUgLiAnX3Jld3JpdGUnfTsKCSAgICBkZWZp bmVkICYkc3ViciBvciAkc3ViciA9IFwmbGFuZ19zdWJfb2JqOwoJICAgIG15ICgkciwgJHNvdXJj ZV9leHRlbnNpb24pCgkJPSAmJHN1YnIgKCRkaXJlY3RvcnksICRiYXNlLCAkZXh0ZW5zaW9uLAoJ CQkgICRvYmosICRoYXZlX3Blcl9leGVjX2ZsYWdzLCAkdmFyKTsKCSAgICAjIFNraXAgdGhpcyBl bnRyeSBpZiB3ZSB3ZXJlIGFza2VkIG5vdCB0byBwcm9jZXNzIGl0LgoJICAgIG5leHQgaWYgJHIg PT0gTEFOR19JR05PUkU7CgoJICAgICMgTm93IGV4dHJhY3QgbGlua2VyIGFuZCBvdGhlciBpbmZv LgoJICAgICRsaW5rZXIgPSAkbGFuZy0+bGlua2VyOwoKICAgICAgICAgICAgbXkgJHRoaXNfb2Jq X2V4dDsKICAgICAgICAgICAgaWYgKGRlZmluZWQgJHNvdXJjZV9leHRlbnNpb24pCiAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgJHRoaXNfb2JqX2V4dCA9ICRzb3VyY2VfZXh0ZW5zaW9u OwogICAgICAgICAgICAgICAgJGRlcml2ZWRfc291cmNlID0gMTsKICAgICAgICAgICAgICB9CiAg ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkdGhpc19vYmpf ZXh0ID0gJG9iajsKICAgICAgICAgICAgICAgICRkZXJpdmVkX3NvdXJjZSA9IDA7CiAgICAgICAg ICAgICAgICAjIERvbid0IGV2ZXIgcGxhY2UgYnVpbHQgb2JqZWN0IGZpbGVzIGluICQoc3JjZGly KSwKICAgICAgICAgICAgICAgICMgZXZlbiB3aGVuIHNvdXJjZXMgYXJlIHNwZWNpZmllZCBleHBs aWNpdGx5IGFzIChzYXkpCiAgICAgICAgICAgICAgICAjICckKHNyY2RpcikvZm9vLmMnIG9yICck KHRvcF9zcmNkaXIpL2Zvby5jJy4KICAgICAgICAgICAgICAgICMgU2VlIGF1dG9tYWtlIGJ1ZyMx MzkyOC4KICAgICAgICAgICAgICAgIG15IEBkID0gc3BsaXQgJy8nLCAkZGlyZWN0b3J5OwogICAg ICAgICAgICAgICAgaWYgKEBkID4gMCAmJiBvcHRpb24gJ3N1YmRpci1vYmplY3RzJykKICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIG15ICRkID0gJGRbMF07CiAgICAgICAg ICAgICAgICAgICAgaWYgKCRkIGVxICckKHNyY2RpciknIG9yICRkIGVxICcke3NyY2Rpcn0nKQog ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBzaGlmdCBAZDsK ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNpZiAoJGQgZXEg JyQodG9wX3NyY2RpciknIG9yICRkIGVxICcke3RvcF9zcmNkaXJ9JykKICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGRbMF0gPSAnJCh0b3BfYnVpbGRkaXIp JzsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkZGlyZWN0b3J5 ID0gam9pbiAnLycsIEBkOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAg ICAgICAgICAkb2JqZWN0ID0gJGJhc2UgLiAkdGhpc19vYmpfZXh0OwoKCSAgICBpZiAoJGhhdmVf cGVyX2V4ZWNfZmxhZ3MpCgkgICAgewoJCSMgV2UgaGF2ZSBhIHBlci1leGVjdXRhYmxlIGZsYWcg aW4gZWZmZWN0IGZvciB0aGlzCgkJIyBvYmplY3QuICBJbiB0aGlzIGNhc2Ugd2UgcmV3cml0ZSB0 aGUgb2JqZWN0J3MKCQkjIG5hbWUgdG8gZW5zdXJlIGl0IGlzIHVuaXF1ZS4KCiAgICAgICAgICAg ICAgICAjIFdlIGNob29zZSB0aGUgbmFtZSAnREVSSVZFRF9PQkpFQ1QnIHRvIGVuc3VyZSAoMSkg dW5pcXVlbmVzcywKICAgICAgICAgICAgICAgICMgYW5kICgyKSBjb250aW51aXR5IGJldHdlZW4g aW52b2NhdGlvbnMuICBIb3dldmVyLCB0aGlzIHdpbGwKICAgICAgICAgICAgICAgICMgcmVzdWx0 IGluIGEgbmFtZSB0aGF0IGlzIHRvbyBsb25nIGZvciBsb3Npbmcgc3lzdGVtcywgaW4gc29tZQog ICAgICAgICAgICAgICAgIyBzaXR1YXRpb25zLiAgU28gd2UgYXR0ZW1wdCB0byBzaG9ydGVuIGF1 dG9tYXRpY2FsbHkgdW5kZXIKICAgICAgICAgICAgICAgICMgc3ViZGlyLW9iamVjdHMsIGFuZCBw cm92aWRlIF9TSE9SVE5BTUUgdG8gb3ZlcnJpZGUgYXMgYSBsYXN0CiAgICAgICAgICAgICAgICAj IHJlc29ydC4gIElmIHN1YmRpci1vYmplY3QgaXMgaW4gZWZmZWN0LCBpdCdzIHVzdWFsbHkKICAg ICAgICAgICAgICAgICMgdW5uZWNlc3NhcnkgdG8gdXNlIHRoZSBjb21wbGV0ZSAnREVSSVZFRF9P QkpFQ1QnICh0aGF0IGlzCiAgICAgICAgICAgICAgICAjIG9mdGVuIHRoZSByZXN1bHQgZnJvbSAl Y2Fub25fcmVsZGlyJS8lQyUgdXNhZ2UpIHNpbmNlIG9iamVjdHMKICAgICAgICAgICAgICAgICMg YXJlIHBsYWNlZCBuZXh0IHRvIHRoZWlyIHNvdXJjZSBmaWxlLiAgR2VuZXJhbGx5LCB0aGlzIG1l YW5zCiAgICAgICAgICAgICAgICAjIGl0IGlzIGFscmVhZHkgdW5pcXVlIHdpdGhpbiB0aGF0IGRp cmVjdG9yeSAoc2VlIGJlbG93IGZvciBhbgogICAgICAgICAgICAgICAgIyBleGNlcHRpb24pLiAg VGh1cywgd2UgdHJ5IHRvIGF2b2lkIHVubmVjZXNzYXJpbHkgbG9uZyBmaWxlCiAgICAgICAgICAg ICAgICAjIG5hbWVzIGJ5IHN0cmlwcGluZyB0aGUgZGlyZWN0b3J5IGNvbXBvbmVudHMgb2YKICAg ICAgICAgICAgICAgICMgJ0RFUklWRURfT0JKRUNUJy4gIFRoaXMgYWxsb3dzIGF2b2lkaW5nIGV4 cGxpY2l0IF9TSE9SVE5BTUUKICAgICAgICAgICAgICAgICMgdXNhZ2UgaW4gbWFueSBjYXNlcy4g IEVYQ0VQVElPTjogSWYgdHdvIChvciBtb3JlKSB0YXJnZXRzIGluCiAgICAgICAgICAgICAgICAj IGRpZmZlcmVudCBkaXJlY3RvcmllcyBidXQgd2l0aCB0aGUgc2FtZSBiYXNlIG5hbWUgKGFmdGVy CiAgICAgICAgICAgICAgICAjIGNhbm9uaWNhbGl6YXRpb24pLCB1c2luZyB0YXJnZXQtc3BlY2lm aWMgRkxBR1MsIGxpbmsgdGhlIHNhbWUKICAgICAgICAgICAgICAgICMgb2JqZWN0LCB0aGVuIHRo aXMgbG9naWMgY2xhc2hlcy4gIFRodXMsIHdlIGRvbid0IHN0cmlwIGlmCiAgICAgICAgICAgICAg ICAjIHRoaXMgaXMgZGV0ZWN0ZWQuCiAgICAgICAgICAgICAgICBteSAkZG5hbWUgPSAkZGVyaXZl ZDsKICAgICAgICAgICAgICAgIGlmICgkZGlyZWN0b3J5IG5lICcnCiAgICAgICAgICAgICAgICAg ICAgJiYgb3B0aW9uICdzdWJkaXItb2JqZWN0cycKICAgICAgICAgICAgICAgICAgICAmJiBub25l IHsgJGRuYW1lID1+IC8kX1swXSQvIH0gQGR1cF9zaG9ydG5hbWVzKQogICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgIyBBdCB0aGlzIHBvaW50LCB3ZSBkb24ndCBjbGVhciBp bmZvcm1hdGlvbiBhYm91dCB3aGF0CiAgICAgICAgICAgICAgICAgICAgIyBwYXJ0cyBvZiAkZGVy aXZlZCBhcmUgdHJ1bHkgZmlsZSBuYW1lIGNvbXBvbmVudHMuICBXZSBjYW4KICAgICAgICAgICAg ICAgICAgICAjIGRldGVybWluZSB0aGF0IGJ5IGNvbXBhcmluZyBhZ2FpbnN0IHRoZSBjYW5vbmlj YWxpemF0aW9uCiAgICAgICAgICAgICAgICAgICAgIyBvZiAkZGlyZWN0b3J5LgogICAgICAgICAg ICAgICAgICAgIG15ICRkaXIgPSAkZGlyZWN0b3J5IC4gIi8iOwogICAgICAgICAgICAgICAgICAg IG15ICRjZGlyID0gY2Fub25pY2FsaXplICgkZGlyKTsKICAgICAgICAgICAgICAgICAgICBteSAk ZGlyX2xlbiA9IGxlbmd0aCAoJGRpcik7CiAgICAgICAgICAgICAgICAgICAgIyBNYWtlIHN1cmUg d2Ugb25seSBzdHJpcCBmdWxsIGZpbGUgbmFtZSBjb21wb25lbnRzLiAgVGhpcwogICAgICAgICAg ICAgICAgICAgICMgaXMgZG9uZSBieSByZXBlYXRlZGx5IHRyeWluZyB0byBmaW5kIGNkaXIgYXQg dGhlCiAgICAgICAgICAgICAgICAgICAgIyBiZWdpbm5pbmcuICBFYWNoIGl0ZXJhdGlvbiByZW1v dmVzIG9uZSBmaWxlIG5hbWUKICAgICAgICAgICAgICAgICAgICAjIGNvbXBvbmVudCBmcm9tIHRo ZSBlbmQgb2YgY2Rpci4KICAgICAgICAgICAgICAgICAgICB3aGlsZSAoJGRpcl9sZW4gPiAwICYm IGluZGV4ICgkZGVyaXZlZCwgJGNkaXIpICE9IDApCiAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICMgRXZlbnR1YWxseSAkZGlyX2xlbiBiZWNvbWVzIDAuCiAg ICAgICAgICAgICAgICAgICAgICAgICRkaXJfbGVuID0gcmluZGV4ICgkZGlyLCAiLyIsICRkaXJf bGVuIC0gMikgKyAxOwogICAgICAgICAgICAgICAgICAgICAgICAkY2RpciA9IHN1YnN0ciAoJGNk aXIsIDAsICRkaXJfbGVuKTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAkZG5hbWUgPSBzdWJzdHIgKCRkZXJpdmVkLCAkZGlyX2xlbik7CiAgICAgICAgICAgICAg ICAgIH0KCQlteSAkdmFyID0gdmFyICgkZGVyaXZlZCAuICdfU0hPUlROQU1FJyk7CgkJaWYgKCR2 YXIpCgkJewoJCSAgICAjIEZJWE1FOiBzaG91bGQgdXNlIHRoZSBzYW1lIENvbmRpdGlvbiBhcwoJ CSAgICAjIHRoZSBfU09VUkNFUyB2YXJpYWJsZS4gIEJ1dCB0aGlzIGlzIHJlYWxseQoJCSAgICAj IHNpbGx5IG92ZXJraWxsIC0tIG5vYm9keSBzaG91bGQgaGF2ZQoJCSAgICAjIGNvbmRpdGlvbmFs IHNob3J0bmFtZXMuCgkJICAgICRkbmFtZSA9ICR2YXItPnZhcmlhYmxlX3ZhbHVlOwoJCX0KCQkk b2JqZWN0ID0gJGRuYW1lIC4gJy0nIC4gJG9iamVjdDsKCgkJcHJvZ19lcnJvciAoJGxhbmctPm5h bWUgLiAiIGZsYWdzIGRlZmluZWQgd2l0aG91dCBjb21waWxlciIpCgkJICBpZiAhIGRlZmluZWQg JGxhbmctPmNvbXBpbGU7CgoJCSRyZW5hbWVkID0gMTsKCSAgICB9CgoJICAgICMgSWYgcmV3cml0 ZSBzYWlkIGl0IHdhcyBvaywgcHV0IHRoZSBvYmplY3QgaW50byBhIHN1YmRpci4KCSAgICBpZiAo JGRpcmVjdG9yeSBuZSAnJykKCSAgICB7CiAgICAgICAgICAgICAgaWYgKCRyID09IExBTkdfU1VC RElSKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAkb2JqZWN0ID0gJGRpcmVj dG9yeSAuICcvJyAuICRvYmplY3Q7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZWxz ZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAjIFNpbmNlIHRoZSBuZXh0IG1h am9yIHZlcnNpb24gb2YgYXV0b21ha2UgKDIuMCkgd2lsbAogICAgICAgICAgICAgICAgICAjIG1h a2UgdGhlIGJlaGF2aW9yIHNvIGZhciBvbmx5IGFjdGl2YXRlZCB3aXRoIHRoZQogICAgICAgICAg ICAgICAgICAjICdzdWJkaXItb2JqZWN0cycgb3B0aW9uIG1hbmRhdG9yeSwgaXQncyBiZXR0ZXIg aWYgd2UKICAgICAgICAgICAgICAgICAgIyBzdGFydCB3YXJuaW5nIHVzZXJzIG5vdCB1c2luZyB0 aGF0IG9wdGlvbi4KICAgICAgICAgICAgICAgICAgIyBBcyBzdWdnZXN0ZWQgYnkgUGV0ZXIgSm9o YW5zc29uLCB3ZSBzdHJpdmUgdG8gYXZvaWQKICAgICAgICAgICAgICAgICAgIyB0aGUgd2Fybmlu ZyB3aGVuIGl0IHdvdWxkIGJlIGlycmVsZXZhbnQsIGkuZS4sIGlmCiAgICAgICAgICAgICAgICAg ICMgYWxsIHNvdXJjZSBmaWxlcyBzaXQgaW4gImN1cnJlbnQiIGRpcmVjdG9yeS4KICAgICAgICAg ICAgICAgICAgIwogICAgICAgICAgICAgICAgICAjIFRoZXJlIGFyZSBwcm9ibGVtcyB3aXRoIG1h a2luZyB0aGlzIGNoYW5nZTsgc2VlCiAgICAgICAgICAgICAgICAgICMgaHR0cHM6Ly9idWdzLmdu dS5vcmcvMjA2OTkgYmVmb3JlIG1ha2luZwogICAgICAgICAgICAgICAgICAjIHN1YmRpci1vYmpl Y3RzLCBsZXQgYWxvbmUgdW5jb25kaXRpb25hbC4KICAgICAgICAgICAgICAgICAgIyAoTWFraW5n IGl0IG5vbi1vdmVycmlkYWJsZSBzZWVtcyBlc3BlY2lhbGx5IHdyb25nLikKICAgICAgICAgICAg ICAgICAgIwogICAgICAgICAgICAgICAgICBtc2dfdmFyICd1bnN1cHBvcnRlZCcsICR2YXIsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgInNvdXJjZSBmaWxlICckZnVsbCcgaXMgaW4gYSBzdWJk aXJlY3RvcnksIgogICAgICAgICAgICAgICAgICAgICAgICAgIC4gIlxuYnV0IG9wdGlvbiAnc3Vi ZGlyLW9iamVjdHMnIGlzIGRpc2FibGVkIjsKICAgICAgICAgICAgICAgICAgbXNnICd1bnN1cHBv cnRlZCcsIElOVEVSTkFMLCA8PCdFT0YnLCB1bmlxX3Njb3BlID0+IFVTX0dMT0JBTDsKcG9zc2li bGUgZm9yd2FyZC1pbmNvbXBhdGliaWxpdHkuCkF0IGxlYXN0IG9uZSBzb3VyY2UgZmlsZSBpcyBp biBhIHN1YmRpcmVjdG9yeSwgYnV0IHRoZSAnc3ViZGlyLW9iamVjdHMnCmF1dG9tYWtlIG9wdGlv biBoYXNuJ3QgYmVlbiBlbmFibGVkLiAgRm9yIG5vdywgdGhlIGNvcnJlc3BvbmRpbmcgb3V0cHV0 Cm9iamVjdCBmaWxlKHMpIHdpbGwgYmUgcGxhY2VkIGluIHRoZSB0b3AtbGV2ZWwgZGlyZWN0b3J5 LiAgSG93ZXZlciwgdGhpcwpiZWhhdmlvciBtYXkgY2hhbmdlIGluIGEgZnV0dXJlIEF1dG9tYWtl IG1ham9yIHZlcnNpb24sIHdpdGggb2JqZWN0CmZpbGVzIGJlaW5nIHBsYWNlZCBpbiB0aGUgc2Ft ZSBzdWJkaXJlY3RvcnkgYXMgdGhlIGNvcnJlc3BvbmRpbmcgc291cmNlcy4KWW91IGFyZSBhZHZp c2VkIHRvIHN0YXJ0IHVzaW5nICdzdWJkaXItb2JqZWN0cycgb3B0aW9uIHRocm91Z2hvdXQgeW91 cgpwcm9qZWN0LCB0byBhdm9pZCBmdXR1cmUgaW5jb21wYXRpYmlsaXR5LgpFT0YKICAgICAgICAg ICAgICAgIH0KCSAgICB9CgoJICAgICMgSWYgdGhlIG9iamVjdCBmaWxlIGhhcyBiZWVuIHJlbmFt ZWQgKGJlY2F1c2UgcGVyLXRhcmdldAoJICAgICMgZmxhZ3MgYXJlIHVzZWQpIHdlIGNhbm5vdCBj b21waWxlIHRoZSBmaWxlIHdpdGggYW4KCSAgICAjIGluZmVyZW5jZSBydWxlOiB3ZSBuZWVkIGFu IGV4cGxpY2l0IHJ1bGUuCgkgICAgIwoJICAgICMgSWYgdGhlIHNvdXJjZSBpcyBpbiBhIHN1YmRp cmVjdG9yeSBhbmQgdGhlIG9iamVjdCBpcyBpbgoJICAgICMgdGhlIGN1cnJlbnQgZGlyZWN0b3J5 LCB3ZSBhbHNvIG5lZWQgYW4gZXhwbGljaXQgcnVsZS4KCSAgICAjCgkgICAgIyBJZiBib3RoIHNv dXJjZSBhbmQgb2JqZWN0IGZpbGVzIGFyZSBpbiBhIHN1YmRpcmVjdG9yeQoJICAgICMgKHRoaXMg aGFwcGVucyB3aGVuIHRoZSBzdWJkaXItb2JqZWN0cyBvcHRpb24gaXMgdXNlZCksCgkgICAgIyB0 aGVuIHRoZSBpbmZlcmVuY2Ugd2lsbCB3b3JrLgoJICAgICMKCSAgICAjIFRoZSBsYXR0ZXIgY2Fz ZSBkZXNlcnZlcyBhIGhpc3RvcmljYWwgbm90ZS4gIFdoZW4gdGhlCgkgICAgIyBzdWJkaXItb2Jq ZWN0cyBvcHRpb24gd2FzIGFkZGVkIG9uIDE5OTktMDQtMTEgaXQgd2FzCgkgICAgIyB0aG91Z2h0 IHRoYXQgaW5mZXJlbmNlcyBydWxlcyB3b3VsZCB3b3JrIGZvcgoJICAgICMgc3ViZGlyZWN0b3J5 IG9iamVjdHMgdG9vLiAgTGF0ZXIsIG9uIDE5OTktMTEtMjIsCgkgICAgIyBhdXRvbWFrZSB3YXMg Y2hhbmdlZCB0byBvdXRwdXQgZXhwbGljaXQgcnVsZXMgZXZlbiBmb3IKCSAgICAjIHN1YmRpci1v YmplY3RzLiAgTm9ib2R5IHJlbWVtYmVycyB3aHksIGJ1dCB0aGlzIG9jY3VycmVkCgkgICAgIyBz b29uIGFmdGVyIHRoZSBtZXJnZSBvZiB0aGUgdXNlci1kZXAtZ2VuLWJyYW5jaCBzbyBpdAoJICAg ICMgbWlnaHQgYmUgcmVsYXRlZC4gIEluIGxhdGUgMjAwMyBwZW9wbGUgY29tcGxhaW5lZCBhYm91 dAoJICAgICMgdGhlIHNpemUgb2YgdGhlIGdlbmVyYXRlZCBNYWtlZmlsZS5pbnMgKGxpYmdjaiwg d2l0aAoJICAgICMgMjIwMCsgc3ViZGlyIG9iamVjdHMgd2FzIHJlcG9ydGVkIHRvIGhhdmUgYSA5 TUIKCSAgICAjIE1ha2VmaWxlKSwgc28gd2Ugbm93IHJlbHkgb24gaW5mZXJlbmNlIHJ1bGVzIGFn YWluLgoJICAgICMgTWF5YmUgd2UnbGwgcnVuIGFjcm9zcyB0aGUgc2FtZSBpc3N1ZSBhcyBpbiB0 aGUgcGFzdCwKCSAgICAjIGJ1dCBhdCBsZWFzdCB0aGlzIHRpbWUgd2UgY2FuIGRvY3VtZW50IGl0 LiAgSG93ZXZlciBzaW5jZQoJICAgICMgZGVwZW5kZW5jeSB0cmFja2luZyBoYXMgZXZvbHZlZCBp dCBpcyBwb3NzaWJsZSB0aGF0CgkgICAgIyBvdXIgb2xkIHByb2JsZW0gbm8gbG9uZ2VyIGV4aXN0 cy4KCSAgICAjIFVzaW5nIGluZmVyZW5jZSBydWxlcyBmb3Igc3ViZGlyLW9iamVjdHMgaGFzIGJl ZW4gdGVzdGVkCgkgICAgIyB3aXRoIEdOVSBtYWtlLCBTb2xhcmlzIG1ha2UsIFVsdHJpeCBtYWtl LCBCU0QgbWFrZSwKCSAgICAjIEhQLVVYIG1ha2UsIGFuZCBPU0YxIG1ha2Ugc3VjY2Vzc2Z1bGx5 LgoJICAgIGlmICgkcmVuYW1lZAoJCXx8ICgkZGlyZWN0b3J5IG5lICcnICYmICEgb3B0aW9uICdz dWJkaXItb2JqZWN0cycpCgkJIyBXZSBtdXN0IGFsc28gdXNlIHNwZWNpZmljIHJ1bGVzIGZvciBh IG5vZGlzdF8gc291cmNlCgkJIyBpZiBpdHMgbGFuZ3VhZ2UgcmVxdWVzdHMgaXQuCgkJfHwgKCRs YW5nLT5ub2Rpc3Rfc3BlY2lmaWMgJiYgISAkdHJhbnNmb3JteydESVNUX1NPVVJDRSd9KSkKCSAg ICB7CgkJbXkgJG9ial9zYW5zX2V4dCA9IHN1YnN0ciAoJG9iamVjdCwgMCwKCQkJCQkgICAtIGxl bmd0aCAoJHRoaXNfb2JqX2V4dCkpOwoJCW15ICRmdWxsX2Fuc2k7CgkJaWYgKCRkaXJlY3Rvcnkg bmUgJycpCgkgICAgICAgICAgewoJCQkkZnVsbF9hbnNpID0gJGRpcmVjdG9yeSAuICcvJyAuICRi YXNlIC4gJGV4dGVuc2lvbjsKCSAgICAgICAgICB9CgkJZWxzZQoJICAgICAgICAgIHsKCQkJJGZ1 bGxfYW5zaSA9ICRiYXNlIC4gJGV4dGVuc2lvbjsKCSAgICAgICAgICB9CgoJCW15IEBzcGVjaWZp Y3MgPSAoJGZ1bGxfYW5zaSwgJG9ial9zYW5zX2V4dCwKCQkJCSAjIE9ubHkgdXNlICR0aGlzX29i al9leHQgaW4gdGhlIGRlcml2ZWQKCQkJCSAjIHNvdXJjZSBjYXNlIGJlY2F1c2UgaW4gdGhlIG90 aGVyIGNhc2Ugd2UKCQkJCSAjICpkb24ndCogd2FudCAkKE9CSkVYVCkgdG8gYXBwZWFyIGhlcmUu CgkJCQkgKCRkZXJpdmVkX3NvdXJjZSA/ICR0aGlzX29ial9leHQgOiAnLm8nKSwKCQkJCSAkZXh0 ZW5zaW9uKTsKCgkJIyBJZiB3ZSByZW5hbWVkIHRoZSBvYmplY3QgdGhlbiB3ZSB3YW50IHRvIHVz ZSB0aGUKCQkjIHBlci1leGVjdXRhYmxlIGZsYWcgbmFtZS4gIEJ1dCBpZiB0aGlzIGlzIHNpbXBs eSBhCgkJIyBzdWJkaXIgYnVpbGQgdGhlbiB3ZSBzdGlsbCB3YW50IHRvIHVzZSB0aGUgQU1fIGZs YWcKCQkjIG5hbWUuCgkJaWYgKCRyZW5hbWVkKQoJCSAgewoJCSAgICB1bnNoaWZ0IEBzcGVjaWZp Y3MsICRkZXJpdmVkOwoJCSAgICAkYWdncmVnYXRlID0gJGRlcml2ZWQ7CgkJICB9CgkJZWxzZQoJ CSAgewoJCSAgICB1bnNoaWZ0IEBzcGVjaWZpY3MsICdBTSc7CgkJICB9CgoJCSMgRWFjaCBpdGVt IG9uIHRoaXMgbGlzdCBpcyBhIHJlZmVyZW5jZSB0byBhIGxpc3QgY29uc2lzdGluZwoJCSMgb2Yg Zm91ciB2YWx1ZXMgZm9sbG93ZWQgYnkgYWRkaXRpb25hbCB0cmFuc2Zvcm0gZmxhZ3MgZm9yCgkJ IyBmaWxlX2NvbnRlbnRzLiAgVGhlIGZvdXIgdmFsdWVzIGFyZSB0aGUgZGVyaXZlZCBmbGFnIHBy ZWZpeAoJCSMgKGUuZy4gZm9yICdmb29fQ0ZMQUdTJywgaXQgaXMgJ2ZvbycpLCB0aGUgbmFtZSBv ZiB0aGUKCQkjIHNvdXJjZSBmaWxlLCB0aGUgYmFzZSBuYW1lIG9mIHRoZSBvdXRwdXQgZmlsZSwg YW5kCgkJIyB0aGUgZXh0ZW5zaW9uIGZvciB0aGUgb2JqZWN0IGZpbGUuCgkJcHVzaCAoQHskbGFu Z19zcGVjaWZpY19maWxlc3skbGFuZy0+bmFtZX19LAoJCSAgICAgIFtAc3BlY2lmaWNzLCAldHJh bnNmb3JtXSk7CgkgICAgfQoJfQoJZWxzaWYgKCRleHRlbnNpb24gZXEgJG9iaikKCXsKCSAgICAj IFRoaXMgaXMgcHJvYmFibHkgdGhlIHJlc3VsdCBvZiBhIGRpcmVjdCBzdWZmaXggcnVsZS4KCSAg ICAjIEluIHRoaXMgY2FzZSB3ZSBqdXN0IGFjY2VwdCB0aGUgcmV3cml0ZS4KCSAgICAkb2JqZWN0 ID0gIiRiYXNlJGV4dGVuc2lvbiI7CgkgICAgJG9iamVjdCA9ICIkZGlyZWN0b3J5LyRvYmplY3Qi IGlmICRkaXJlY3RvcnkgbmUgJyc7CgkgICAgJGxpbmtlciA9ICcnOwoJfQoJZWxzZQoJewoJICAg ICMgTm8gZXJyb3IgbWVzc2FnZSBoZXJlLiAgVXNlZCB0byBoYXZlIG9uZSwgYnV0IGl0IHdhcwoJ ICAgICMgdmVyeSB1bnBvcHVsYXIuCgkgICAgIyBGSVhNRTogd2UgY291bGQgcG90ZW50aWFsbHkg ZG8gbW9yZSBwcm9jZXNzaW5nIGhlcmUsCgkgICAgIyBwZXJoYXBzIHRyZWF0aW5nIHRoZSBuZXcg ZXh0ZW5zaW9uIGFzIHRob3VnaCBpdCB3ZXJlIGEKCSAgICAjIG5ldyBzb3VyY2UgZXh0ZW5zaW9u IChhcyBhYm92ZSkuICBUaGlzIHdvdWxkIHJlcXVpcmUKCSAgICAjIG1vcmUgcmVzdHJ1Y3R1cmlu ZyB0aGFuIGlzIGFwcHJvcHJpYXRlIHJpZ2h0IG5vdy4KCSAgICBuZXh0OwoJfQoKCWVycl9hbSAi b2JqZWN0ICckb2JqZWN0JyBjcmVhdGVkIGJ5ICckZnVsbCcgYW5kICckb2JqZWN0X21hcHskb2Jq ZWN0fSciCgkgIGlmIChkZWZpbmVkICRvYmplY3RfbWFweyRvYmplY3R9CgkgICAgICAmJiAkb2Jq ZWN0X21hcHskb2JqZWN0fSBuZSAkZnVsbCk7CgoJbXkgJGNvbXBfdmFsID0gKCgkb2JqZWN0ID1+ IC9cLmxvJC8pCgkJCT8gQ09NUElMRV9MSUJUT09MIDogQ09NUElMRV9PUkRJTkFSWSk7CgkobXkg JGNvbXBfb2JqID0gJG9iamVjdCkgPX4gcy9cLmxvJC8uXCQoT0JKRVhUKS87CglpZiAoZGVmaW5l ZCAkb2JqZWN0X2NvbXBpbGF0aW9uX21hcHskY29tcF9vYmp9CgkgICAgJiYgJG9iamVjdF9jb21w aWxhdGlvbl9tYXB7JGNvbXBfb2JqfSAhPSAwCgkgICAgIyBPbmx5IHNlZSB0aGUgZXJyb3Igb25j ZS4KCSAgICAmJiAoJG9iamVjdF9jb21waWxhdGlvbl9tYXB7JGNvbXBfb2JqfQoJCSE9IChDT01Q SUxFX0xJQlRPT0wgfCBDT01QSUxFX09SRElOQVJZKSkKCSAgICAmJiAkb2JqZWN0X2NvbXBpbGF0 aW9uX21hcHskY29tcF9vYmp9ICE9ICRjb21wX3ZhbCkKCSAgewoJICAgIGVycl9hbSAib2JqZWN0 ICckY29tcF9vYmonIGNyZWF0ZWQgYm90aCB3aXRoIGxpYnRvb2wgYW5kIHdpdGhvdXQiOwoJICB9 Cgkkb2JqZWN0X2NvbXBpbGF0aW9uX21hcHskY29tcF9vYmp9IHw9ICRjb21wX3ZhbDsKCglpZiAo ZGVmaW5lZCAkbGFuZykKCXsKCSAgICAjIExldCB0aGUgbGFuZ3VhZ2UgZG8gc29tZSBzcGVjaWFs IG1hZ2ljIGlmIHJlcXVpcmVkLgoJICAgICRsYW5nLT50YXJnZXRfaG9vayAoJGFnZ3JlZ2F0ZSwg JG9iamVjdCwgJGZ1bGwsICV0cmFuc2Zvcm0pOwoJfQoKCWlmICgkZGVyaXZlZF9zb3VyY2UpCgkg IHsKCSAgICBwcm9nX2Vycm9yICgkbGFuZy0+bmFtZSAuICIgaGFzIGF1dG9tYXRpYyBkZXBlbmRl bmN5IHRyYWNraW5nIikKCSAgICAgIGlmICRsYW5nLT5hdXRvZGVwIG5lICdubyc7CgkgICAgIyBN YWtlIHN1cmUgdGhpcyBuZXcgc291cmNlIGZpbGUgaXMgaGFuZGxlZCBuZXh0LiAgVGhhdCB3aWxs CgkgICAgIyBtYWtlIGl0IGFwcGVhciB0byBiZSBhdCB0aGUgcmlnaHQgcGxhY2UgaW4gdGhlIGxp c3QuCgkgICAgdW5zaGlmdCAoQGZpbGVzLCAkb2JqZWN0KTsKCSAgICAjIERpc3RyaWJ1dGUgZGVy aXZlZCBzb3VyY2VzIHVubGVzcyB0aGUgc291cmNlIHRoZXkgYXJlCgkgICAgIyBkZXJpdmVkIGZy b20gaXMgbm90LgoJICAgIHB1c2hfZGlzdF9jb21tb24gKCRvYmplY3QpCgkgICAgICB1bmxlc3Mg KCR0b3BwYXJlbnQgPX4gL14oPzpub2Jhc2VfKT9ub2Rpc3RfLyk7CgkgICAgbmV4dDsKCSAgfQoK CSRsaW5rZXJzX3VzZWR7JGxpbmtlcn0gPSAxOwoKCXB1c2ggKEByZXN1bHQsICRvYmplY3QpOwoK CWlmICghIGRlZmluZWQgJG9iamVjdF9tYXB7JG9iamVjdH0pCgl7CgkgICAgbXkgQGRlcF9saXN0 ID0gKCk7CgkgICAgJG9iamVjdF9tYXB7JG9iamVjdH0gPSAkZnVsbDsKCgkgICAgIyBJZiByZXN1 bHRpbmcgb2JqZWN0IGlzIGluIHN1YmRpciwgd2UgbmVlZCB0byBtYWtlCgkgICAgIyBzdXJlIHRo ZSBzdWJkaXIgZXhpc3RzIGF0IGJ1aWxkIHRpbWUuCgkgICAgaWYgKCRvYmplY3QgPX4gL1wvLykK CSAgICB7CgkJIyBGSVhNRTogY2hlY2sgdGhhdCAkRElSRUNUT1JZIGlzIHNvbWV3aGVyZSBpbiB0 aGUKCQkjIHByb2plY3QKCgkJIyBGb3IgSmF2YSwgdGhlIHdheSB3ZSdyZSBoYW5kbGluZyBpdCBy aWdodCBub3csIGEKCQkjICcuLicgY29tcG9uZW50IGRvZXNuJ3QgbWFrZSBzZW5zZS4KCQlpZiAo JGxhbmcgJiYgJGxhbmctPm5hbWUgZXEgJ2phdmEnICYmICRvYmplY3QgPX4gLyhcL3xeKVwuXC5c Ly8pCgkJICB7CgkJICAgIGVycl9hbSAiJyRmdWxsJyBzaG91bGQgbm90IGNvbnRhaW4gYSAnLi4n IGNvbXBvbmVudCI7CgkJICB9CgogICAgICAgICAgICAgICAgIyBNYWtlIHN1cmUgKmFsbCogb2Jq ZWN0cyBmaWxlcyBpbiB0aGUgc3ViZGlyZWN0b3J5IGFyZQogICAgICAgICAgICAgICAgIyByZW1v dmVkIGJ5ICJtYWtlIG1vc3RseWNsZWFuIi4gIE5vdCBvbmx5IHRoaXMgaXMgbW9yZQogICAgICAg ICAgICAgICAgIyBlZmZpY2llbnQgdGhhbiBsaXN0aW5nIHRoZSBvYmplY3QgZmlsZXMgdG8gYmUg cmVtb3ZlZAogICAgICAgICAgICAgICAgIyBpbmRpdmlkdWFsbHkgKHdoaWNoIHdvdWxkIGNhdXNl IGFuICdybScgaW52b2NhdGlvbiBmb3IKICAgICAgICAgICAgICAgICMgZWFjaCBvZiB0aGVtIC0t IHZlcnkgaW5lZmZpY2llbnQsIHNlZSBidWcjMTA2OTcpLCBpdAogICAgICAgICAgICAgICAgIyB3 b3VsZCBhbHNvIGxlYXZlIHN0YWxlIG9iamVjdCBmaWxlcyBpbiB0aGUgc3ViZGlyZWN0b3J5CiAg ICAgICAgICAgICAgICAjIHdoZW5ldmVyIGEgc291cmNlIGZpbGUgdGhlcmUgaXMgcmVtb3ZlZCBv ciByZW5hbWVkLgogICAgICAgICAgICAgICAgJGNvbXBpbGVfY2xlYW5fZmlsZXN7IiRkaXJlY3Rv cnkvKi5cJChPQkpFWFQpIn0gPSBNT1NUTFlfQ0xFQU47CiAgICAgICAgICAgICAgICBpZiAoJG9i amVjdCA9fiAvXC5sbyQvKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg IyBJZiB3ZSBoYXZlIGEgbGlidG9vbCBvYmplY3QsIHRoZW4gd2UgYWxzbyBtdXN0IHJlbW92ZQog ICAgICAgICAgICAgICAgICAgICMgYW55ICcubG8nIG9iamVjdHMgaW4gaXRzIHNhbWUgc3ViZGly ZWN0b3J5LgogICAgICAgICAgICAgICAgICAgICRjb21waWxlX2NsZWFuX2ZpbGVzeyIkZGlyZWN0 b3J5LyoubG8ifSA9IE1PU1RMWV9DTEVBTjsKICAgICAgICAgICAgICAgICAgICAjIFJlbWVtYmVy IHRvIGNsZWFudXAgLmxpYnMvIGluIHRoaXMgZGlyZWN0b3J5LgogICAgICAgICAgICAgICAgICAg ICRsaWJ0b29sX2NsZWFuX2RpcmVjdG9yaWVzeyRkaXJlY3Rvcnl9ID0gMTsKICAgICAgICAgICAg ICAgICAgfQoKCQlwdXNoIChAZGVwX2xpc3QsIHJlcXVpcmVfYnVpbGRfZGlyZWN0b3J5ICgkZGly ZWN0b3J5KSk7CgoJCSMgSWYgd2UncmUgZ2VuZXJhdGluZyBkZXBlbmRlbmNpZXMsIHdlIGFsc28g d2FudAoJCSMgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGFwcHJvcHJpYXRlIHN1YmRpciBvZiB0aGUK CQkjIC5kZXBzIGRpcmVjdG9yeSBpcyBjcmVhdGVkLgoJCXB1c2ggKEBkZXBfbGlzdCwKCQkgICAg ICByZXF1aXJlX2J1aWxkX2RpcmVjdG9yeSAoJGRpcmVjdG9yeSAuICcvJChERVBESVIpJykpCgkJ ICB1bmxlc3Mgb3B0aW9uICduby1kZXBlbmRlbmNpZXMnOwoJICAgIH0KCgkgICAgcHJldHR5X3By aW50X3J1bGUgKCRvYmplY3QgLiAnOicsICJcdCIsIEBkZXBfbGlzdCkKCQlpZiBzY2FsYXIgQGRl cF9saXN0ID4gMDsKCX0KCgkjIFRyYW5zZm9ybSAubyBvciAkbyBmaWxlIGludG8gLlAgZmlsZSAo Zm9yIGF1dG9tYXRpYwoJIyBkZXBlbmRlbmN5IGNvZGUpLgogICAgICAgICMgUHJvcGVybHkgZmxh dHRlbiBtdWx0aXBsZSBhZGphY2VudCBzbGFzaGVzLCBhcyBTb2xhcmlzIDEwIG1ha2UKICAgICAg ICAjIG1pZ2h0IGZhaWwgb3ZlciB0aGVtIGluIGFuIGluY2x1ZGUgc3RhdGVtZW50LgogICAgICAg ICMgTGVhZGluZyBkb3VibGUgc2xhc2hlcyBtYXkgYmUgc3BlY2lhbCwgYXMgcGVyIFBPU0lYLCBz byBkZWFsCiAgICAgICAgIyB3aXRoIHRoZW0gY2FyZWZ1bGx5LgogICAgICAgIGlmICgkbGFuZyAm JiAkbGFuZy0+YXV0b2RlcCBuZSAnbm8nKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJGRlcGZp bGUgPSAkb2JqZWN0OwogICAgICAgICAgICAkZGVwZmlsZSA9fiBzL1wuKFteLl0qKSQvLlAkMS87 CiAgICAgICAgICAgICRkZXBmaWxlID1+IHMvXCRcKE9CSkVYVFwpJC9vLzsKICAgICAgICAgICAg bXkgJG1heWJlX2V4dHJhX2xlYWRpbmdfc2xhc2ggPSAnJzsKICAgICAgICAgICAgJG1heWJlX2V4 dHJhX2xlYWRpbmdfc2xhc2ggPSAnLycgaWYgJGRlcGZpbGUgPX4gbSxeLy9bXi9dLDsKICAgICAg ICAgICAgJGRlcGZpbGUgPX4gcywvKywvLGc7CiAgICAgICAgICAgIG15ICRiYXNlbmFtZSA9IGJh c2VuYW1lICgkZGVwZmlsZSk7CiAgICAgICAgICAgICMgVGhpcyBtaWdodCBtYWtlICRkaXJuYW1l IGVtcHR5LCBidXQgd2UgYWNjb3VudCBmb3IgdGhhdCBiZWxvdy4KICAgICAgICAgICAgKG15ICRk aXJuYW1lID0gZGlybmFtZSAoJGRlcGZpbGUpKSA9fiBzL1wvKiQvLzsKICAgICAgICAgICAgJGRp cm5hbWUgPSAkbWF5YmVfZXh0cmFfbGVhZGluZ19zbGFzaCAuICRkaXJuYW1lOwogICAgICAgICAg ICAkZGVwX2ZpbGVzeyRkaXJuYW1lIC4gJy8kKERFUERJUikvJyAuICRiYXNlbmFtZX0gPSAxOwog ICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gQHJlc3VsdDsKfQoKCiMgJExJTktFUgojIGRlZmlu ZV9vYmplY3RzX2Zyb21fc291cmNlcyAoJFZBUiwgJE9CSlZBUiwgJE5PREVGSU5FLCAkT05FX0ZJ TEUsCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkT0JKLCAkUEFSRU5ULCAkVE9QUEFS RU5ULCAkV0hFUkUsICVUUkFOU0ZPUk0pCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgRGVmaW5lIGFu IF9PQkpFQ1RTIHZhcmlhYmxlIGZvciBhIF9TT1VSQ0VTIHZhcmlhYmxlIChvciBzdWJ2YXJpYWJs ZSkKIwojIEFyZ3VtZW50cyBhcmU6CiMgICAkVkFSIGlzIHRoZSBuYW1lIG9mIHRoZSBfU09VUkNF UyB2YXJpYWJsZQojICAgJE9CSlZBUiBpcyB0aGUgbmFtZSBvZiB0aGUgX09CSkVDVFMgdmFyaWFi bGUgaWYga25vd24gKG90aGVyd2lzZQojICAgICBpdCB3aWxsIGJlIGdlbmVyYXRlZCBhbmQgcmV0 dXJuZWQpLgojICAgJE5PREVGSU5FIGlzIGEgYm9vbGVhbjogaWYgdHJ1ZSwgJE9CSlZBUiB3aWxs IG5vdCBiZSBkZWZpbmVkIChidXQKIyAgICAgd29yayBkb25lIHRvIGRldGVybWluZSB0aGUgbGlu a2VyIHdpbGwgYmUpLgojICAgJE9ORV9GSUxFIGlzIHRoZSBjYW5vbmljYWwgKHRyYW5zZm9ybWVk KSBuYW1lIG9mIG9iamVjdCB0byBidWlsZAojICAgJE9CSiBpcyB0aGUgb2JqZWN0IGV4dGVuc2lv biAoaS5lLiBlaXRoZXIgJy5vJyBvciAnLmxvJykuCiMgICAkVE9QUEFSRU5UIGlzIHRoZSBfU09V UkNFUyB2YXJpYWJsZSBiZWluZyBwcm9jZXNzZWQuCiMgICAkV0hFUkUgY29udGV4dCBpbnRvIHdo aWNoIHRoaXMgZGVmaW5pdGlvbiBpcyBkb25lCiMgICAlVFJBTlNGT1JNIGV4dHJhIGFyZ3VtZW50 cyB0byBwYXNzIHRvIGZpbGVfY29udGVudHMgd2hlbiBwcm9kdWNpbmcKIyAgICAgcnVsZXMKIwoj IFJlc3VsdCBpcyBhIHBhaXIgKCRMSU5LRVIsICRPQkpWQVIpOgojICAgICRMSU5LRVIgaXMgYSBi b29sZWFuLCB0cnVlIGlmIGEgbGlua2VyIGlzIG5lZWRlZCB0byBkZWFsIHdpdGggdGhlIG9iamVj dHMKc3ViIGRlZmluZV9vYmplY3RzX2Zyb21fc291cmNlcwp7CiAgbXkgKCR2YXIsICRvYmp2YXIs ICRub2RlZmluZSwgJG9uZV9maWxlLAogICAgICAkb2JqLCAkdG9wcGFyZW50LCAkd2hlcmUsICV0 cmFuc2Zvcm0pID0gQF87CgogIG15ICRuZWVkbGlua2VyID0gIiI7CgogIHRyYW5zZm9ybV92YXJp YWJsZV9yZWN1cnNpdmVseQogICAgKCR2YXIsICRvYmp2YXIsICdhbV9fb2JqZWN0cycsICRub2Rl ZmluZSwgJHdoZXJlLAogICAgICMgVGhlIHRyYW5zZm9ybSBjb2RlIHRvIHJ1biBvbiBlYWNoIGZp bGVuYW1lLgogICAgIHN1YiB7CiAgICAgICBteSAoJHN1YnZhciwgJHZhbCwgJGNvbmQsICRmdWxs X2NvbmQpID0gQF87CiAgICAgICBteSBAdHJhbnMgPSBoYW5kbGVfc2luZ2xlX3RyYW5zZm9ybSAo JHN1YnZhciwgJHRvcHBhcmVudCwKCQkJCQkgICAgJG9uZV9maWxlLCAkb2JqLCAkdmFsLAoJCQkJ CSAgICAldHJhbnNmb3JtKTsKICAgICAgICRuZWVkbGlua2VyID0gInRydWUiIGlmIEB0cmFuczsK ICAgICAgIHJldHVybiBAdHJhbnM7CiAgICAgfSk7CgogIHJldHVybiAkbmVlZGxpbmtlcjsKfQoK CiMgaGFuZGxlX3NvdXJjZV90cmFuc2Zvcm0gKCRDQU5PTl9UQVJHRVQsICRUQVJHRVQsICRPQkpF WFQsICRXSEVSRSwgJVRSQU5TRk9STSkKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEhhbmRsZSBT T1VSQ0UtPk9CSkVDVCB0cmFuc2Zvcm0gZm9yIG9uZSBwcm9ncmFtIG9yIGxpYnJhcnkuCiMgQXJn dW1lbnRzIGFyZToKIyAgIGNhbm9uaWNhbCAodHJhbnNmb3JtZWQpIG5hbWUgb2YgdGFyZ2V0IHRv IGJ1aWxkCiMgICBhY3R1YWwgdGFyZ2V0IG9mIG9iamVjdCB0byBidWlsZAojICAgb2JqZWN0IGV4 dGVuc2lvbiAoaS5lLiwgZWl0aGVyICcubycgb3IgJyRvJykKIyAgIGxvY2F0aW9uIG9mIHRoZSBz b3VyY2UgdmFyaWFibGUKIyAgIGV4dHJhIGFyZ3VtZW50cyB0byBwYXNzIHRvIGZpbGVfY29udGVu dHMgd2hlbiBwcm9kdWNpbmcgcnVsZXMKIyBSZXR1cm4gdGhlIG5hbWUgb2YgdGhlIGxpbmtlciB2 YXJpYWJsZSB0aGF0IG11c3QgYmUgdXNlZC4KIyBFbXB0eSByZXR1cm4gbWVhbnMganVzdCB1c2Ug J0xJTksnLgpzdWIgaGFuZGxlX3NvdXJjZV90cmFuc2Zvcm0KewogICAgIyBvbmVfZmlsZSBpcyBj YW5vbmljYWwgbmFtZS4gIHVueGZvcm1lZCBpcyBnaXZlbiBuYW1lLiAgb2JqIGlzCiAgICAjIG9i amVjdCBleHRlbnNpb24uCiAgICBteSAoJG9uZV9maWxlLCAkdW54Zm9ybWVkLCAkb2JqLCAkd2hl cmUsICV0cmFuc2Zvcm0pID0gQF87CgogICAgbXkgJGxpbmtlciA9ICcnOwoKICAgICMgTm8gcG9p bnQgaW4gY29udGludWluZyBpZiBfT0JKRUNUUyBpcyBkZWZpbmVkLgogICAgcmV0dXJuIGlmIHJl amVjdF92YXIgKCRvbmVfZmlsZSAuICdfT0JKRUNUUycsCgkJCSAgJG9uZV9maWxlIC4gJ19PQkpF Q1RTIHNob3VsZCBub3QgYmUgZGVmaW5lZCcpOwoKICAgIG15ICV1c2VkX3BmeCA9ICgpOwogICAg bXkgJG5lZWRsaW5rZXI7CiAgICAlbGlua2Vyc191c2VkID0gKCk7CiAgICBmb3JlYWNoIG15ICRw cmVmaXggKCcnLCAnRVhUUkFfJywgJ2Rpc3RfJywgJ25vZGlzdF8nLAoJCQknZGlzdF9FWFRSQV8n LCAnbm9kaXN0X0VYVFJBXycpCiAgICB7CglteSAkdmFybmFtZSA9ICRwcmVmaXggLiAkb25lX2Zp bGUgLiAiX1NPVVJDRVMiOwoJbXkgJHZhciA9IHZhciAkdmFybmFtZTsKCW5leHQgdW5sZXNzICR2 YXI7CgoJIyBXZSBhcmUgZ29pbmcgdG8gZGVmaW5lIF9PQkpFQ1RTIHZhcmlhYmxlcyB1c2luZyB0 aGUgcHJlZml4LgoJIyBUaGVuIHdlIGdsb20gdGhlbSBhbGwgdG9nZXRoZXIuICBTbyB3ZSBjYW4n dCB1c2UgdGhlIG51bGwKCSMgcHJlZml4IGhlcmUgYXMgd2UgbmVlZCBpdCBsYXRlci4KCW15ICR4 cGZ4ID0gKCRwcmVmaXggZXEgJycpID8gJ2FtXycgOiAkcHJlZml4OwoKCSMgS2VlcCB0cmFjayBv ZiB3aGljaCBwcmVmaXhlcyB3ZSBzYXcuCgkkdXNlZF9wZnh7JHhwZnh9ID0gMQoJICB1bmxlc3Mg JHByZWZpeCA9fiAvRVhUUkFfLzsKCglwdXNoIEBzb3VyY2VzLCAiXCQoJHZhcm5hbWUpIjsKCXB1 c2ggQGRpc3Rfc291cmNlcywgc2hhZG93X3VuY29uZGl0aW9uYWxseSAoJHZhcm5hbWUsICR3aGVy ZSkKCSAgdW5sZXNzIChvcHRpb24gKCduby1kaXN0JykgfHwgJHByZWZpeCA9fiAvXm5vZGlzdF8v KTsKCgkkbmVlZGxpbmtlciB8PQoJICAgIGRlZmluZV9vYmplY3RzX2Zyb21fc291cmNlcyAoJHZh cm5hbWUsCgkJCQkJICR4cGZ4IC4gJG9uZV9maWxlIC4gJ19PQkpFQ1RTJywKCQkJCQkgISEoJHBy ZWZpeCA9fiAvRVhUUkFfLyksCgkJCQkJICRvbmVfZmlsZSwgJG9iaiwgJHZhcm5hbWUsICR3aGVy ZSwKCQkJCQkgRElTVF9TT1VSQ0UgPT4gKCRwcmVmaXggIX4gL15ub2Rpc3RfLyksCgkJCQkJICV0 cmFuc2Zvcm0pOwogICAgfQogICAgaWYgKCRuZWVkbGlua2VyKQogICAgewoJJGxpbmtlciB8fD0g cmVzb2x2ZV9saW5rZXIgKCVsaW5rZXJzX3VzZWQpOwogICAgfQoKICAgIG15IEBrZXlzID0gc29y dCBrZXlzICV1c2VkX3BmeDsKICAgIGlmIChzY2FsYXIgQGtleXMgPT0gMCkKICAgIHsKCSMgVGhl IGRlZmF1bHQgc291cmNlIGZvciBsaWJmb28ubGEgaXMgbGliZm9vLmMsIGJ1dCBmb3IKCSMgYmFj a3dhcmQgY29tcGF0aWJpbGl0eSB3ZSBmaXJzdCBsb29rIGF0IGxpYmZvb19sYS5jLAoJIyBpZiBu byBkZWZhdWx0IHNvdXJjZSBzdWZmaXggaXMgZ2l2ZW4uCglteSAkb2xkX2RlZmF1bHRfc291cmNl ID0gIiRvbmVfZmlsZS5jIjsKCW15ICRleHRfdmFyID0gdmFyICgnQU1fREVGQVVMVF9TT1VSQ0Vf RVhUJyk7CglteSAkZGVmYXVsdF9zb3VyY2VfZXh0ID0gJGV4dF92YXIgPyB2YXJpYWJsZV92YWx1 ZSAoJGV4dF92YXIpIDogJy5jJzsKCW1zZ192YXIgKCd1bnN1cHBvcnRlZCcsICRleHRfdmFyLCAk ZXh0X3Zhci0+bmFtZSAuICIgY2FuIGFzc3VtZSBhdCBtb3N0IG9uZSB2YWx1ZSIpCgkgIGlmICRk ZWZhdWx0X3NvdXJjZV9leHQgPX4gL1tcdCBdLzsKCShteSAkZGVmYXVsdF9zb3VyY2UgPSAkdW54 Zm9ybWVkKSA9fiBzLChcLlteLi9cXF0qKT8kLCRkZWZhdWx0X3NvdXJjZV9leHQsOwoJIyBUT0RP OiBSZW1vdmUgdGhpcyBiYWNrd2FyZC1jb21wYXRpYmlsaXR5IGhhY2sgaW4gQXV0b21ha2UgMi4w LgoJaWYgKCRvbGRfZGVmYXVsdF9zb3VyY2UgbmUgJGRlZmF1bHRfc291cmNlCgkgICAgJiYgISRl eHRfdmFyCgkgICAgJiYgKHJ1bGUgJG9sZF9kZWZhdWx0X3NvdXJjZQoJCXx8IHJ1bGUgJyQoc3Jj ZGlyKS8nIC4gJG9sZF9kZWZhdWx0X3NvdXJjZQoJCXx8IHJ1bGUgJyR7c3JjZGlyfS8nIC4gJG9s ZF9kZWZhdWx0X3NvdXJjZQoJCXx8IC1mICRvbGRfZGVmYXVsdF9zb3VyY2UpKQoJICB7CgkgICAg bXkgJGxvYyA9ICR3aGVyZS0+Y2xvbmU7CgkgICAgJGxvYy0+cG9wX2NvbnRleHQ7CgkgICAgbXNn ICgnb2Jzb2xldGUnLCAkbG9jLAoJCSAidGhlIGRlZmF1bHQgc291cmNlIGZvciAnJHVueGZvcm1l ZCcgaGFzIGJlZW4gY2hhbmdlZCAiCgkJIC4gInRvICckZGVmYXVsdF9zb3VyY2UnLlxuKFVzaW5n ICckb2xkX2RlZmF1bHRfc291cmNlJyBmb3IgIgoJCSAuICJiYWNrd2FyZCBjb21wYXRpYmlsaXR5 LikiKTsKCSAgICAkZGVmYXVsdF9zb3VyY2UgPSAkb2xkX2RlZmF1bHRfc291cmNlOwoJICB9Cgkj IElmIGEgcnVsZSBleGlzdHMgdG8gYnVpbGQgdGhpcyBzb3VyY2Ugd2l0aCBhICQoc3JjZGlyKQoJ IyBwcmVmaXgsIHVzZSB0aGF0IHByZWZpeCBpbiBvdXIgdmFyaWFibGVzIHRvby4gIFRoaXMgaXMg Zm9yCgkjIHRoZSBzYWtlIG9mIEJTRCBNYWtlLgoJaWYgKHJ1bGUgJyQoc3JjZGlyKS8nIC4gJGRl ZmF1bHRfc291cmNlCgkgICAgfHwgcnVsZSAnJHtzcmNkaXJ9LycgLiAkZGVmYXVsdF9zb3VyY2Up CgkgIHsKCSAgICAkZGVmYXVsdF9zb3VyY2UgPSAnJChzcmNkaXIpLycgLiAkZGVmYXVsdF9zb3Vy Y2U7CgkgIH0KCglkZWZpbmVfdmFyaWFibGUgKCRvbmVfZmlsZSAuICJfU09VUkNFUyIsICRkZWZh dWx0X3NvdXJjZSwgJHdoZXJlKTsKCXB1c2ggKEBzb3VyY2VzLCAkZGVmYXVsdF9zb3VyY2UpOwoJ cHVzaCAoQGRpc3Rfc291cmNlcywgJGRlZmF1bHRfc291cmNlKTsKCgklbGlua2Vyc191c2VkID0g KCk7CglteSAoQHJlc3VsdCkgPQoJICBoYW5kbGVfc2luZ2xlX3RyYW5zZm9ybSAoJG9uZV9maWxl IC4gJ19TT1VSQ0VTJywKCQkJCSAgICRvbmVfZmlsZSAuICdfU09VUkNFUycsCgkJCQkgICAkb25l X2ZpbGUsICRvYmosCgkJCQkgICAkZGVmYXVsdF9zb3VyY2UsICV0cmFuc2Zvcm0pOwoJJGxpbmtl ciB8fD0gcmVzb2x2ZV9saW5rZXIgKCVsaW5rZXJzX3VzZWQpOwoJZGVmaW5lX3ByZXR0eV92YXJp YWJsZSAoJG9uZV9maWxlIC4gJ19PQkpFQ1RTJywgVFJVRSwgJHdoZXJlLCBAcmVzdWx0KTsKICAg IH0KICAgIGVsc2UKICAgIHsKCUBrZXlzID0gbWFwIHsgJyQoJyAuICRfIC4gJG9uZV9maWxlIC4g J19PQkpFQ1RTKScgfSBAa2V5czsKCWRlZmluZV9wcmV0dHlfdmFyaWFibGUgKCRvbmVfZmlsZSAu ICdfT0JKRUNUUycsIFRSVUUsICR3aGVyZSwgQGtleXMpOwogICAgfQoKICAgICMgSWYgd2Ugd2Fu dCB0byB1c2UgJ0xJTksnIHdlIG11c3QgbWFrZSBzdXJlIGl0IGlzIGRlZmluZWQuCiAgICBpZiAo JGxpbmtlciBlcSAnJykKICAgIHsKCSRuZWVkX2xpbmsgPSAxOwogICAgfQoKICAgIHJldHVybiAk bGlua2VyOwp9CgoKIyBoYW5kbGVfbGliX29iamVjdHMgKCRYTkFNRSwgJFZBUikKIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBTcGVjaWFsLWNhc2UgQUxMT0NBIGFuZCBMSUJP QkpTIHN1YnN0aXR1dGlvbnMgaW4gX0xEQUREIG9yIF9MSUJBREQgdmFyaWFibGVzLgojIEFsc28s IGdlbmVyYXRlIF9ERVBFTkRFTkNJRVMgdmFyaWFibGUgaWYgYXBwcm9wcmlhdGUuCiMgQXJndW1l bnRzIGFyZToKIyAgIHRyYW5zZm9ybWVkIG5hbWUgb2Ygb2JqZWN0IGJlaW5nIGJ1aWx0LCBvciBl bXB0eSBzdHJpbmcgaWYgbm8gb2JqZWN0CiMgICBuYW1lIG9mIF9MREFERC9fTElCQURELXR5cGUg dmFyaWFibGUgdG8gZXhhbWluZQojIFJldHVybnMgMSBpZiBMSUJPQkpTIHNlZW4sIDAgb3RoZXJ3 aXNlLgpzdWIgaGFuZGxlX2xpYl9vYmplY3RzCnsKICBteSAoJHhuYW1lLCAkdmFybmFtZSkgPSBA XzsKCiAgbXkgJHZhciA9IHZhciAoJHZhcm5hbWUpOwogIHByb2dfZXJyb3IgIickdmFybmFtZScg dW5kZWZpbmVkIgogICAgdW5sZXNzICR2YXI7CiAgcHJvZ19lcnJvciAidW5leHBlY3RlZCB2YXJp YWJsZSBuYW1lICckdmFybmFtZSciCiAgICB1bmxlc3MgJHZhcm5hbWUgPX4gL14oLiopKD86TElC fExEKUFERCQvOwogIG15ICRwcmVmaXggPSAkMSB8fCAnQU1fJzsKCiAgbXkgJHNlZW5fbGlib2Jq cyA9IDA7CiAgbXkgJGZsYWd2YXIgPSAwOwoKICB0cmFuc2Zvcm1fdmFyaWFibGVfcmVjdXJzaXZl bHkKICAgICgkdmFybmFtZSwgJHhuYW1lIC4gJ19ERVBFTkRFTkNJRVMnLCAnYW1fX0RFUEVOREVO Q0lFUycsCiAgICAgISAkeG5hbWUsIElOVEVSTkFMLAogICAgICMgVHJhbnNmb3JtYXRpb24gZnVu Y3Rpb24sIHJ1biBvbiBlYWNoIGZpbGVuYW1lLgogICAgIHN1YiB7CiAgICAgICBteSAoJHN1YnZh ciwgJHZhbCwgJGNvbmQsICRmdWxsX2NvbmQpID0gQF87CgogICAgICAgaWYgKCR2YWwgPX4gL14t LykKCSB7CgkgICAjIFNraXAgLWxmb28gYW5kIC1MZGlyIHNpbGVudGx5OyB0aGVzZSBhcmUgZXhw bGljaXRseSBhbGxvd2VkLgoJICAgaWYgKCR2YWwgIX4gL14tW2xMXS8gJiYKCSAgICAgICAjIFNr aXAgLWRsb3BlbiBhbmQgLWRscHJlb3BlbjsgdGhlc2UgYXJlIGV4cGxpY2l0bHkgYWxsb3dlZAoJ ICAgICAgICMgZm9yIExpYnRvb2wgbGlicmFyaWVzIG9yIHByb2dyYW1zLiAgKEFjdHVhbGx5IHdl IGFyZSBhIGJpdAoJICAgICAgICMgbGF4IGhlcmUgc2luY2UgdGhpcyBjb2RlIGFsc28gYXBwbGll cyB0byBub24tbGlidG9vbAoJICAgICAgICMgbGlicmFyaWVzIG9yIHByb2dyYW1zLCBmb3Igd2hp Y2ggLWRsb3BlbiBhbmQgLWRscHJlb3BlbgoJICAgICAgICMgYXJlIHB1cmUgbm9uc2Vuc2UuICBE aWFnbm9zaW5nIHRoaXMgZG9lc24ndCBzZWVtIHZlcnkKCSAgICAgICAjIGltcG9ydGFudDogdGhl IGRldmVsb3BlciB3aWxsIHF1aWNrbHkgZ2V0IGNvbXBsYWludHMgZnJvbQoJICAgICAgICMgdGhl IGxpbmtlci4pCgkgICAgICAgJHZhbCAhfiAvXi1kbCg/OnByZSk/b3BlbiQvICYmCgkgICAgICAg IyBPbmx5IGdldCB0aGlzIGVycm9yIG9uY2UuCgkgICAgICAgISAkZmxhZ3ZhcikKCSAgICAgewoJ ICAgICAgICRmbGFndmFyID0gMTsKCSAgICAgICAjIEZJWE1FOiBzaG91bGQgZGlzcGxheSBhIHN0 YWNrIG9mIG5lc3RlZCB2YXJpYWJsZXMKCSAgICAgICAjIGFzIGNvbnRleHQgd2hlbiAkdmFyICE9 ICRzdWJ2YXIuCgkgICAgICAgZXJyX3ZhciAoJHZhciwgImxpbmtlciBmbGFncyBzdWNoIGFzICck dmFsJyBiZWxvbmcgaW4gIgoJCQkuICInJHtwcmVmaXh9TERGTEFHUyciKTsKCSAgICAgfQoJICAg cmV0dXJuICgpOwoJIH0KICAgICAgIGVsc2lmICgkdmFsICF+IC9eXEAuKlxAJC8pCgkgewoJICAg IyBBc3N1bWUgd2UgaGF2ZSBhIGZpbGUgb2Ygc29tZSBzb3J0LCBhbmQgb3V0cHV0IGl0IGludG8g dGhlCgkgICAjIGRlcGVuZGVuY3kgdmFyaWFibGUuICBBdXRvY29uZiBzdWJzdGl0dXRpb25zIGFy ZSBub3Qgb3V0cHV0OwoJICAgIyByYXJlbHkgaXMgYSBuZXcgZGVwZW5kZW5jeSBzdWJzdGl0dXRl ZCBpbnRvIGUuZy4gZm9vX0xEQURECgkgICAjIC0tIGJ1dCBiYWQgdGhpbmdzIChlLmcuIC1sWDEx KSBhcmUgcm91dGluZWx5IHN1YnN0aXR1dGVkLgoJICAgIyBOb3RlIHRoYXQgTElCT0JKUyBhbmQg QUxMT0NBIGFyZSBleGNlcHRpb25zIHRvIHRoaXMgcnVsZSwKCSAgICMgYW5kIGhhbmRsZWQgc3Bl Y2lhbGx5IGJlbG93LgoJICAgcmV0dXJuICR2YWw7CgkgfQogICAgICAgZWxzaWYgKCR2YWwgPX4g L15cQChMVCk/TElCT0JKU1xAJC8pCgkgewoJICAgaGFuZGxlX0xJQk9CSlMgKCRzdWJ2YXIsICRj b25kLCAkMSk7CgkgICAkc2Vlbl9saWJvYmpzID0gMTsKCSAgIHJldHVybiAkdmFsOwoJIH0KICAg ICAgIGVsc2lmICgkdmFsID1+IC9eXEAoTFQpP0FMTE9DQVxAJC8pCgkgewoJICAgaGFuZGxlX0FM TE9DQSAoJHN1YnZhciwgJGNvbmQsICQxKTsKCSAgIHJldHVybiAkdmFsOwoJIH0KICAgICAgIGVs c2UKCSB7CgkgICByZXR1cm4gKCk7CgkgfQogICAgIH0pOwoKICByZXR1cm4gJHNlZW5fbGlib2Jq czsKfQoKIyBoYW5kbGVfTElCT0JKU19vcl9BTExPQ0EgKCRWQVIsICRCQVNFKQojIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgRGVmaW5pdGlvbnMgY29tbW9uIHRvIExJ Qk9CSlMgYW5kIEFMTE9DQS4KIyBWQVIgc2hvdWxkIGJlIG9uZSBvZiBMSUJPQkpTLCBMVExJQk9C SlMsIEFMTE9DQSwgb3IgTFRBTExPQ0EuCiMgQkFTRSBzaG91bGQgYmUgb25lIGJhc2UgZmlsZSBu YW1lIGZyb20gQUNfTElCU09VUkNFLCBvciBhbGxvY2EuCnN1YiBoYW5kbGVfTElCT0JKU19vcl9B TExPQ0EKewogIG15ICgkdmFyLCAkYmFzZSkgPSBAXzsKCiAgbXkgJGRpciA9ICcnOwoKICAjIElm IExJQk9CSlMgZmlsZXMgbXVzdCBiZSBidWlsdCBpbiBhbm90aGVyIGRpcmVjdG9yeSB3ZSBoYXZl CiAgIyB0byBkZWZpbmUgTElCT0JKRElSIGFuZCBlbnN1cmUgdGhlIGZpbGVzIGdldCBjbGVhbmVk LgogICMgT3RoZXJ3aXNlIExJQk9CSkRJUiBjYW4gYmUgbGVmdCB1bmRlZmluZWQsIGFuZCB0aGUg Y2xlYW5pbmcKICAjIGlzIGFjaGlldmVkIGJ5ICdybSAtZiAqLiQoT0JKRVhUKScgaW4gY29tcGls ZS5hbS4KICBpZiAoJGNvbmZpZ19saWJvYmpfZGlyCiAgICAgICYmICRyZWxhdGl2ZV9kaXIgbmUg JGNvbmZpZ19saWJvYmpfZGlyKQogICAgewogICAgICBpZiAob3B0aW9uICdzdWJkaXItb2JqZWN0 cycpCgl7CgkgICMgSW4gdGhlIHRvcC1sZXZlbCBNYWtlZmlsZSB3ZSBkbyBub3QgdXNlICQodG9w X2J1aWxkZGlyKSwgYmVjYXVzZQoJICAjIHdlIGFyZSBhbHJlYWR5IHRoZXJlLCBhbmQgc2luY2Ug dGhlIHRhcmdldHMgYXJlIGJ1aWx0IHdpdGhvdXQKCSAgIyBhICQodG9wX2J1aWxkZGlyKSwgaXQg aGVscHMgQlNEIE1ha2UgdG8gbWF0Y2ggdGhlbSB3aXRoCgkgICMgZGVwZW5kZW5jaWVzLgoJICAk ZGlyID0gIiRjb25maWdfbGlib2JqX2Rpci8iCgkgICAgaWYgJGNvbmZpZ19saWJvYmpfZGlyIG5l ICcuJzsKCSAgJGRpciA9IGJhY2tuYW1lICgkcmVsYXRpdmVfZGlyKSAuICIvJGRpciIKCSAgICBp ZiAkcmVsYXRpdmVfZGlyIG5lICcuJzsKCSAgZGVmaW5lX3ZhcmlhYmxlICgnTElCT0JKRElSJywg IiRkaXIiLCBJTlRFUk5BTCk7CgkgIGlmICgkZGlyICYmICFkZWZpbmVkICRjbGVhbl9maWxlc3si JGRpciRiYXNlLlwkKE9CSkVYVCkifSkKCSAgICB7CgkgICAgICBteSAkZGlyc3RhbXAgPSByZXF1 aXJlX2J1aWxkX2RpcmVjdG9yeSAoJGRpcik7CgkgICAgICAkb3V0cHV0X3J1bGVzIC49ICIkZGly JGJhc2UuXCQoT0JKRVhUKTogJGRpcnN0YW1wXG4iOwoJICAgICAgJG91dHB1dF9ydWxlcyAuPSAi JGRpciRiYXNlLmxvOiAkZGlyc3RhbXBcbiIKCQlpZiAoJHZhciA9fiAvXkxULyk7CgkgICAgfQoJ ICAjIGxpYnRvb2wgbWlnaHQgY3JlYXRlIC4kKE9CSkVYVCkgYXMgYSBzaWRlLWVmZmVjdCBvZiB1 c2luZwoJICAjIExUTElCT0JKUyBvciBMVEFMTE9DQS4KCSAgJGNsZWFuX2ZpbGVzeyIkZGlyJGJh c2UuXCQoT0JKRVhUKSJ9ID0gTU9TVExZX0NMRUFOOwoJICAkY2xlYW5fZmlsZXN7IiRkaXIkYmFz ZS5sbyJ9ID0gTU9TVExZX0NMRUFOCgkgICAgaWYgKCR2YXIgPX4gL15MVC8pOwoJfQogICAgICBl bHNlCgl7CgkgIGVycm9yICgiJ1wkKCR2YXIpJyBjYW5ub3QgYmUgdXNlZCBvdXRzaWRlICckY29u ZmlnX2xpYm9ial9kaXInIGlmIgoJCSAuICIgJ3N1YmRpci1vYmplY3RzJyBpcyBub3Qgc2V0Iik7 Cgl9CiAgICB9CgogIHJldHVybiAkZGlyOwp9CgpzdWIgaGFuZGxlX0xJQk9CSlMKewogIG15ICgk dmFyLCAkY29uZCwgJGx0KSA9IEBfOwogIG15ICRteW9iamV4dCA9ICRsdCA/ICdsbycgOiAnbyc7 CiAgJGx0IHx8PSAnJzsKCiAgJHZhci0+cmVxdWlyZXNfdmFyaWFibGVzICgiXEAke2x0fUxJQk9C SlNcQCB1c2VkIiwgJGx0IC4gJ0xJQk9CSlMnKQogICAgaWYgISBrZXlzICVsaWJzb3VyY2VzOwoK ICBmb3JlYWNoIG15ICRpdGVyIChzb3J0IGtleXMgJWxpYnNvdXJjZXMpCiAgICB7CiAgICAgIG15 ICRkaXIgPSAnJzsKICAgICAgaWYgKCRpdGVyID1+IC9eKC4qKShcLltjbHldKSQvKQoJewoJICBz YXdfZXh0ZW5zaW9uICgkMik7CgkgIHNhd19leHRlbnNpb24gKCcuYycpOwoJICAkZGlyID0gaGFu ZGxlX0xJQk9CSlNfb3JfQUxMT0NBICgiJHtsdH1MSUJPQkpTIiwgJDEpOwoJfQoKICAgICAgaWYg KCRpdGVyID1+IC9cLmgkLykKCXsKCSAgcmVxdWlyZV9saWJzb3VyY2Vfd2l0aF9tYWNybyAoJGNv bmQsICR2YXIsIEZPUkVJR04sICRpdGVyKTsKCX0KICAgICAgZWxzaWYgKCRpdGVyIG5lICdhbGxv Y2EuYycpCgl7CgkgIG15ICRyZXdyaXRlID0gJGl0ZXI7CgkgICRyZXdyaXRlID1+IHMvXC5jJC8u UCRteW9iamV4dC87CgkgICRkZXBfZmlsZXN7JGRpciAuICckKERFUERJUikvJyAuICRyZXdyaXRl fSA9IDE7CgkgICRyZXdyaXRlID0gIl4iIC4gcXVvdGVtZXRhICgkaXRlcikgLiAiXCQiOwoJICAj IE9ubHkgcmVxdWlyZSB0aGUgZmlsZSBpZiBpdCBpcyBub3QgYSBidWlsdCBzb3VyY2UuCgkgIG15 ICRicyA9IHZhciAoJ0JVSUxUX1NPVVJDRVMnKTsKCSAgaWYgKCEgJGJzIHx8ICEgZ3JlcCAoLyRy ZXdyaXRlLywgJGJzLT52YWx1ZV9hc19saXN0X3JlY3Vyc2l2ZSkpCgkgICAgewoJICAgICAgcmVx dWlyZV9saWJzb3VyY2Vfd2l0aF9tYWNybyAoJGNvbmQsICR2YXIsIEZPUkVJR04sICRpdGVyKTsK CSAgICB9Cgl9CiAgICB9Cn0KCnN1YiBoYW5kbGVfQUxMT0NBCnsKICBteSAoJHZhciwgJGNvbmQs ICRsdCkgPSBAXzsKICBteSAkbXlvYmpleHQgPSAkbHQgPyAnbG8nIDogJ28nOwogICRsdCB8fD0g Jyc7CiAgbXkgJGRpciA9IGhhbmRsZV9MSUJPQkpTX29yX0FMTE9DQSAoIiR7bHR9QUxMT0NBIiwg ImFsbG9jYSIpOwoKICAkZGlyIGVxICcnIGFuZCAkZGlyID0gJy4vJzsKICAkdmFyLT5yZXF1aXJl c192YXJpYWJsZXMgKCJcQCR7bHR9QUxMT0NBXEAgdXNlZCIsICRsdCAuICdBTExPQ0EnKTsKICAk ZGVwX2ZpbGVzeyRkaXIgLiAnJChERVBESVIpL2FsbG9jYS5QJyAuICRteW9iamV4dH0gPSAxOwog IHJlcXVpcmVfbGlic291cmNlX3dpdGhfbWFjcm8gKCRjb25kLCAkdmFyLCBGT1JFSUdOLCAnYWxs b2NhLmMnKTsKICBzYXdfZXh0ZW5zaW9uICgnLmMnKTsKfQoKIyBDYW5vbmljYWxpemUgdGhlIGlu cHV0IHBhcmFtZXRlci4Kc3ViIGNhbm9uaWNhbGl6ZQp7CiAgICBteSAoJHN0cmluZykgPSBAXzsK ICAgICRzdHJpbmcgPX4gdHIvQS1aYS16MC05X1xAL18vYzsKICAgIHJldHVybiAkc3RyaW5nOwp9 CgojIENhbm9uaWNhbGl6ZSBhIG5hbWUsIGFuZCBjaGVjayB0byBtYWtlIHN1cmUgdGhlIG5vbi1j YW5vbmljYWwgbmFtZQojIGlzIG5ldmVyIHVzZWQuICBSZXR1cm5zIGNhbm9uaWNhbCBuYW1lLiAg QXJndW1lbnRzIGFyZSBuYW1lIGFuZCBhCiMgbGlzdCBvZiBzdWZmaXhlcyB0byBjaGVjayBmb3Iu CnN1YiBjaGVja19jYW5vbmljYWxfc3BlbGxpbmcKewogIG15ICgkbmFtZSwgQHN1ZmZpeGVzKSA9 IEBfOwoKICBteSAkeG5hbWUgPSBjYW5vbmljYWxpemUgKCRuYW1lKTsKICBpZiAoJHhuYW1lIG5l ICRuYW1lKQogICAgewogICAgICBmb3JlYWNoIG15ICR4dCAoQHN1ZmZpeGVzKQoJewoJICByZWpl Y3RfdmFyICgiJG5hbWUkeHQiLCAidXNlICckeG5hbWUkeHQnLCBub3QgJyRuYW1lJHh0JyIpOwoJ fQogICAgfQoKICByZXR1cm4gJHhuYW1lOwp9CgojIFNldCB1cCB0aGUgY29tcGlsZSBzdWl0ZS4K c3ViIGhhbmRsZV9jb21waWxlICgpCnsKICAgcmV0dXJuIGlmICEgJG11c3RfaGFuZGxlX2NvbXBp bGVkX29iamVjdHM7CgogICAgIyBCb2lsZXJwbGF0ZS4KICAgIG15ICRkZWZhdWx0X2luY2x1ZGVz ID0gJyc7CiAgICBpZiAoISBvcHRpb24gJ25vc3RkaW5jJykKICAgICAgewoJbXkgQGluY3MgPSAo Jy1JLicsIHN1YnN0ICgnYW1fX2lzcmMnKSk7CgoJbXkgJHZhciA9IHZhciAnQ09ORklHX0hFQURF Uic7CglpZiAoJHZhcikKCSAgewoJICAgIGZvcmVhY2ggbXkgJGhkciAoc3BsaXQgKCcgJywgJHZh ci0+dmFyaWFibGVfdmFsdWUpKQoJICAgICAgewoJCXB1c2ggQGluY3MsICctSScgLiBkaXJuYW1l ICgkaGRyKTsKCSAgICAgIH0KCSAgfQoJIyBXZSB3YW50ICctSS4gLUkkKHNyY2RpciknLCBidXQg dGhlIGxhdHRlciAtSSBpcyByZWR1bmRhbnQKCSMgYW5kIHVuYWVzdGhldGljIGluIG5vbi1WUEFU SCBidWlsZHMuICBXZSB1c2UgYC1JLkBhbV9faXNyY0BgCgkjIGluc3RlYWQuICBJdCB3aWxsIGJl IHJlcGxhY2VkIGJ5ICctSS4nIG9yICctSS4gLUkkKHNyY2RpciknLgoJIyBJdGVtcyBpbiBDT05G SUdfSEVBREVSIGFyZSBuZXZlciBpbiAkKHNyY2Rpcikgc28gaXQgaXMgc2FmZQoJIyB0byBqdXN0 IHB1dCBAYW1fX2lzcmNAIHJpZ2h0IGFmdGVyICctSS4nLCB3aXRob3V0IGEgc3BhY2UuCgkoJGRl ZmF1bHRfaW5jbHVkZXMgPSAnICcgLiB1bmlxIChAaW5jcykpID1+IHMvIEAvQC87CiAgICAgIH0K CiAgICBteSAoQG1vc3RseV9ybXMsIEBkaXN0X3Jtcyk7CiAgICBmb3JlYWNoIG15ICRpdGVtIChz b3J0IGtleXMgJWNvbXBpbGVfY2xlYW5fZmlsZXMpCiAgICB7CglpZiAoJGNvbXBpbGVfY2xlYW5f ZmlsZXN7JGl0ZW19ID09IE1PU1RMWV9DTEVBTikKCXsKCSAgICBwdXNoIChAbW9zdGx5X3Jtcywg Ilx0LXJtIC1mICRpdGVtIik7Cgl9CgllbHNpZiAoJGNvbXBpbGVfY2xlYW5fZmlsZXN7JGl0ZW19 ID09IERJU1RfQ0xFQU4pCgl7CgkgICAgcHVzaCAoQGRpc3Rfcm1zLCAiXHQtcm0gLWYgJGl0ZW0i KTsKCX0KCWVsc2UKCXsKCSAgcHJvZ19lcnJvciAnaW52YWxpZCBlbnRyeSBpbiAlY29tcGlsZV9j bGVhbl9maWxlcyc7Cgl9CiAgICB9CgogICAgbXkgKCRjb21zLCAkdmFycywgJHJ1bGVzKSA9CiAg ICAgIGZpbGVfY29udGVudHNfaW50ZXJuYWwgKDEsICIkbGliZGlyL2FtL2NvbXBpbGUuYW0iLAoJ CQkgICAgICBuZXcgQXV0b21ha2U6OkxvY2F0aW9uLAoJCQkgICAgICAnREVGQVVMVF9JTkNMVURF UycgPT4gJGRlZmF1bHRfaW5jbHVkZXMsCgkJCSAgICAgICdNT1NUTFlSTVMnID0+IGpvaW4gKCJc biIsIEBtb3N0bHlfcm1zKSwKCQkJICAgICAgJ0RJU1RSTVMnID0+IGpvaW4gKCJcbiIsIEBkaXN0 X3JtcykpOwogICAgJG91dHB1dF92YXJzIC49ICR2YXJzOwogICAgJG91dHB1dF9ydWxlcyAuPSAi JGNvbXMkcnVsZXMiOwp9CgojIEhhbmRsZSBsaWJ0b29sIHJ1bGVzLgpzdWIgaGFuZGxlX2xpYnRv b2wgKCkKewogIHJldHVybiB1bmxlc3MgdmFyICgnTElCVE9PTCcpOwoKICAjIExpYnRvb2wgcmVx dWlyZXMgc29tZSBmaWxlcywgYnV0IG9ubHkgYXQgdG9wIGxldmVsLgogICMgKFN0YXJ0aW5nIHdp dGggTGlidG9vbCAyLjAgd2UgZG8gbm90IGhhdmUgdG8gYm90aGVyLiAgVGhlc2UKICAjIHJlcXVp cmVtZW50cyBhcmUgZG9uZSB3aXRoIEFDX1JFUVVJUkVfQVVYX0ZJTEUuKQogIHJlcXVpcmVfY29u Zl9maWxlX3dpdGhfbWFjcm8gKFRSVUUsICdMSUJUT09MJywgRk9SRUlHTiwgQGxpYnRvb2xfZmls ZXMpCiAgICBpZiAkcmVsYXRpdmVfZGlyIGVxICcuJyAmJiAhICRsaWJ0b29sX25ld19hcGk7Cgog IG15IEBsaWJ0b29sX3JtczsKICBmb3JlYWNoIG15ICRpdGVtIChzb3J0IGtleXMgJWxpYnRvb2xf Y2xlYW5fZGlyZWN0b3JpZXMpCiAgICB7CiAgICAgIG15ICRkaXIgPSAoJGl0ZW0gZXEgJy4nKSA/ ICcnIDogIiRpdGVtLyI7CiAgICAgICMgLmxpYnMgaXMgZm9yIFVuaXgsIF9saWJzIGZvciBET1Mu CiAgICAgIHB1c2ggKEBsaWJ0b29sX3JtcywgIlx0LXJtIC1yZiAke2Rpcn0ubGlicyAke2Rpcn1f bGlicyIpOwogICAgfQoKICBjaGVja191c2VyX3ZhcmlhYmxlcyAnTElCVE9PTEZMQUdTJzsKCiAg IyBPdXRwdXQgdGhlIGxpYnRvb2wgY29tcGlsYXRpb24gcnVsZXMuCiAgJG91dHB1dF9ydWxlcyAu PSBmaWxlX2NvbnRlbnRzICgnbGlidG9vbCcsCgkJCQkgIG5ldyBBdXRvbWFrZTo6TG9jYXRpb24s CgkJCQkgICBMVFJNUyA9PiBqb2luICgiXG4iLCBAbGlidG9vbF9ybXMpKTsKfQoKIyBDaGVjayBm b3IgZHVwbGljYXRlIHRhcmdldHMKc3ViIGhhbmRsZV90YXJnZXRzICgpCnsKICBteSAlc2VlbiA9 ICgpOwogIG15IEBkdXBzID0gKCk7CiAgQHByb2dsaXN0ID0gYW1faW5zdGFsbF92YXIgKCdwcm9n cycsICdQUk9HUkFNUycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiaW4nLCAnc2Jp bicsICdsaWJleGVjJywgJ3BrZ2xpYmV4ZWMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnbm9pbnN0JywgJ2NoZWNrJyk7CiAgQGxpYmxpc3QgPSBhbV9pbnN0YWxsX3ZhciAoJ2xpYnMn LCAnTElCUkFSSUVTJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbGliJywgJ3BrZ2xp YicsICdub2luc3QnLCAnY2hlY2snKTsKICBAbHRsaWJsaXN0ID0gYW1faW5zdGFsbF92YXIgKCds dGxpYicsICdMVExJQlJBUklFUycsCgkJCSAgICAgICAnbm9pbnN0JywgJ2xpYicsICdwa2dsaWIn LCAnY2hlY2snKTsKCiAgIyBSZWNvcmQgZHVwbGljYXRlcyB0aGF0IG1heSBhcmlzZSBhZnRlciBj YW5vbmljYWxpemF0aW9uIG9mIHRoZQogICMgYmFzZSBuYW1lcywgaW4gb3JkZXIgdG8gcHJldmVu dCBvYmplY3QgZmlsZSBjbGFzaGVzIGluIHRoZSBwcmVzZW5jZQogICMgb2YgdGFyZ2V0LXNwZWNp ZmljICpGTEFHUwogIG15IEB0YXJnZXRsaXN0ID0gKEBwcm9nbGlzdCwgQGxpYmxpc3QsIEBsdGxp Ymxpc3QpOwogIGZvcmVhY2ggbXkgJHBhaXIgKEB0YXJnZXRsaXN0KQogICAgewogICAgICBteSAk YmFzZSA9IGNhbm9uaWNhbGl6ZSAoYmFzZW5hbWUgKEAkcGFpclsxXSkpOwogICAgICBwdXNoIChA ZHVwX3Nob3J0bmFtZXMsICRiYXNlKSBpZiAoJHNlZW57JGJhc2V9KTsKICAgICAgJHNlZW57JGJh c2V9ID0gJGJhc2U7CiAgICB9Cn0KCnN1YiBoYW5kbGVfcHJvZ3JhbXMgKCkKewogIHJldHVybiBp ZiAhIEBwcm9nbGlzdDsKICAkbXVzdF9oYW5kbGVfY29tcGlsZWRfb2JqZWN0cyA9IDE7CgogIG15 ICRzZWVuX2dsb2JhbF9saWJvYmpzID0KICAgIHZhciAoJ0xEQUREJykgJiYgaGFuZGxlX2xpYl9v YmplY3RzICgnJywgJ0xEQUREJyk7CgogIGZvcmVhY2ggbXkgJHBhaXIgKEBwcm9nbGlzdCkKICAg IHsKICAgICAgbXkgKCR3aGVyZSwgJG9uZV9maWxlKSA9IEAkcGFpcjsKCiAgICAgIG15ICRzZWVu X2xpYm9ianMgPSAwOwogICAgICBteSAkb2JqID0gJy4kKE9CSkVYVCknOwoKICAgICAgJGtub3du X3Byb2dyYW1zeyRvbmVfZmlsZX0gPSAkd2hlcmU7CgogICAgICAjIENhbm9uaWNhbGl6ZSBuYW1l cyBhbmQgY2hlY2sgZm9yIG1pc3NwZWxsaW5ncy4KICAgICAgbXkgJHhuYW1lID0gY2hlY2tfY2Fu b25pY2FsX3NwZWxsaW5nICgkb25lX2ZpbGUsICdfTERBREQnLCAnX0xERkxBR1MnLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfU09VUkNFUycsICdfT0JKRUNU UycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19ERVBFTkRF TkNJRVMnKTsKCiAgICAgICR3aGVyZS0+cHVzaF9jb250ZXh0ICgid2hpbGUgcHJvY2Vzc2luZyBw cm9ncmFtICckb25lX2ZpbGUnIik7CiAgICAgICR3aGVyZS0+c2V0IChJTlRFUk5BTC0+Z2V0KTsK CiAgICAgIG15ICRsaW5rZXIgPSBoYW5kbGVfc291cmNlX3RyYW5zZm9ybSAoJHhuYW1lLCAkb25l X2ZpbGUsICRvYmosICR3aGVyZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBOT05MSUJUT09MID0+IDEsIExJQlRPT0wgPT4gMCk7CgogICAgICBpZiAodmFyICgk eG5hbWUgLiAiX0xEQUREIikpCgl7CgkgICRzZWVuX2xpYm9ianMgPSBoYW5kbGVfbGliX29iamVj dHMgKCR4bmFtZSwgJHhuYW1lIC4gJ19MREFERCcpOwoJfQogICAgICBlbHNlCgl7CgkgICMgVXNl ciBkaWRuJ3QgZGVmaW5lIHByb2dfTERBREQgb3ZlcnJpZGUuICBTbyBkbyBpdC4KCSAgZGVmaW5l X3ZhcmlhYmxlICgkeG5hbWUgLiAnX0xEQUREJywgJyQoTERBREQpJywgJHdoZXJlKTsKCgkgICMg VGhpcyBkb2VzIGEgYml0IHRvbyBtdWNoIHdvcmsuICBCdXQgd2UgbmVlZCBpdCB0bwoJICAjIGdl bmVyYXRlIF9ERVBFTkRFTkNJRVMgd2hlbiBhcHByb3ByaWF0ZS4KCSAgaWYgKHZhciAoJ0xEQURE JykpCgkgICAgewoJICAgICAgJHNlZW5fbGlib2JqcyA9IGhhbmRsZV9saWJfb2JqZWN0cyAoJHhu YW1lLCAnTERBREQnKTsKCSAgICB9Cgl9CgogICAgICByZWplY3RfdmFyICgkeG5hbWUgLiAnX0xJ QkFERCcsCgkJICAidXNlICcke3huYW1lfV9MREFERCcsIG5vdCAnJHt4bmFtZX1fTElCQUREJyIp OwoKICAgICAgc2V0X3NlZW4gKCR4bmFtZSAuICdfREVQRU5ERU5DSUVTJyk7CiAgICAgIHNldF9z ZWVuICgnRVhUUkFfJyAuICR4bmFtZSAuICdfREVQRU5ERU5DSUVTJyk7CiAgICAgIHNldF9zZWVu ICgkeG5hbWUgLiAnX0xERkxBR1MnKTsKCiAgICAgICMgRGV0ZXJtaW5lIHByb2dyYW0gdG8gdXNl IGZvciBsaW5rLgogICAgICBteSgkeGxpbmssICR2bGluaykgPSBkZWZpbmVfcGVyX3RhcmdldF9s aW5rZXJfdmFyaWFibGUgKCRsaW5rZXIsICR4bmFtZSk7CiAgICAgICR2bGluayA9IHZlcmJvc2Vf ZmxhZyAoJHZsaW5rIHx8ICdHRU4nKTsKCiAgICAgICMgSWYgdGhlIHJlc3VsdGluZyBwcm9ncmFt IGxpZXMgaW4gYSBzdWJkaXJlY3RvcnksCiAgICAgICMgZW5zdXJlIHRoYXQgdGhlIGRpcmVjdG9y eSBleGlzdHMgYmVmb3JlIHdlIG5lZWQgaXQuCiAgICAgIG15ICRkaXJzdGFtcCA9IHJlcXVpcmVf YnVpbGRfZGlyZWN0b3J5X21heWJlICgkb25lX2ZpbGUpOwoKICAgICAgJGxpYnRvb2xfY2xlYW5f ZGlyZWN0b3JpZXN7ZGlybmFtZSAoJG9uZV9maWxlKX0gPSAxOwoKICAgICAgJG91dHB1dF9ydWxl cyAuPSBmaWxlX2NvbnRlbnRzICgncHJvZ3JhbScsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJHdoZXJlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBST0dSQU0gID0+ICRvbmVfZmlsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBYUFJPR1JBTSA9PiAkeG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgWExJTksgICAgPT4gJHhsaW5rLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFZFUkJPU0UgID0+ICR2bGluaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBESVJTVEFNUCA9PiAkZGlyc3RhbXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRVhFRVhUICAgPT4gJyQoRVhFRVhUKScpOwoKICAgICAgaWYgKCRzZWVuX2xp Ym9ianMgfHwgJHNlZW5fZ2xvYmFsX2xpYm9ianMpCgl7CgkgIGlmICh2YXIgKCR4bmFtZSAuICdf TERBREQnKSkKCSAgICB7CgkgICAgICBjaGVja19saWJvYmpzX3NvdXJjZXMgKCR4bmFtZSwgJHhu YW1lIC4gJ19MREFERCcpOwoJICAgIH0KCSAgZWxzaWYgKHZhciAoJ0xEQUREJykpCgkgICAgewoJ ICAgICAgY2hlY2tfbGlib2Jqc19zb3VyY2VzICgkeG5hbWUsICdMREFERCcpOwoJICAgIH0KCX0K ICAgIH0KfQoKCnN1YiBoYW5kbGVfbGlicmFyaWVzICgpCnsKICByZXR1cm4gaWYgISBAbGlibGlz dDsKICAkbXVzdF9oYW5kbGVfY29tcGlsZWRfb2JqZWN0cyA9IDE7CgogIG15IEBwcmVmaXggPSBh bV9wcmltYXJ5X3ByZWZpeGVzICgnTElCUkFSSUVTJywgMCwgJ2xpYicsICdwa2dsaWInLAoJCQkJ ICAgICdub2luc3QnLCAnY2hlY2snKTsKCiAgaWYgKEBwcmVmaXgpCiAgICB7CiAgICAgIG15ICR2 YXIgPSBydmFyICgkcHJlZml4WzBdIC4gJ19MSUJSQVJJRVMnKTsKICAgICAgJHZhci0+cmVxdWly ZXNfdmFyaWFibGVzICgnbGlicmFyeSB1c2VkJywgJ1JBTkxJQicpOwogICAgfQoKICBkZWZpbmVf dmFyaWFibGUgKCdBUicsICdhcicsIElOVEVSTkFMKTsKICBkZWZpbmVfdmFyaWFibGUgKCdBUkZM QUdTJywgJ2NyJywgSU5URVJOQUwpOwogIGRlZmluZV92ZXJib3NlX3RhZ3ZhciAoJ0FSJyk7Cgog IGZvcmVhY2ggbXkgJHBhaXIgKEBsaWJsaXN0KQogICAgewogICAgICBteSAoJHdoZXJlLCAkb25l bGliKSA9IEAkcGFpcjsKCiAgICAgIG15ICRzZWVuX2xpYm9ianMgPSAwOwogICAgICAjIENoZWNr IHRoYXQgdGhlIGxpYnJhcnkgZml0cyB0aGUgc3RhbmRhcmQgbmFtaW5nIGNvbnZlbnRpb24uCiAg ICAgIG15ICRibiA9IGJhc2VuYW1lICgkb25lbGliKTsKICAgICAgaWYgKCRibiAhfiAvXmxpYi4q XC5hJC8pCgl7CgkgICRibiA9fiBzL14oPzpsaWIpPyguKj8pKD86XC5bXi5dKik/JC9saWIkMS5h LzsKCSAgbXkgJHN1Z2dlc3Rpb24gPSBkaXJuYW1lICgkb25lbGliKSAuICIvJGJuIjsKCSAgJHN1 Z2dlc3Rpb24gPX4gc3xeXC4vfHxnOwoJICBtc2cgKCdlcnJvci1nbnUvd2FybicsICR3aGVyZSwK CSAgICAgICAiJyRvbmVsaWInIGlzIG5vdCBhIHN0YW5kYXJkIGxpYnJhcnkgbmFtZVxuIgoJICAg ICAgIC4gImRpZCB5b3UgbWVhbiAnJHN1Z2dlc3Rpb24nPyIpCgl9CgogICAgICAoJGtub3duX2xp YnJhcmllc3skb25lbGlifSA9ICRibikgPX4gcy9cLmEkLy87CgogICAgICAkd2hlcmUtPnB1c2hf Y29udGV4dCAoIndoaWxlIHByb2Nlc3NpbmcgbGlicmFyeSAnJG9uZWxpYiciKTsKICAgICAgJHdo ZXJlLT5zZXQgKElOVEVSTkFMLT5nZXQpOwoKICAgICAgbXkgJG9iaiA9ICcuJChPQkpFWFQpJzsK CiAgICAgICMgQ2Fub25pY2FsaXplIG5hbWVzIGFuZCBjaGVjayBmb3IgbWlzc3BlbGxpbmdzLgog ICAgICBteSAkeGxpYiA9IGNoZWNrX2Nhbm9uaWNhbF9zcGVsbGluZyAoJG9uZWxpYiwgJ19MSUJB REQnLCAnX1NPVVJDRVMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ19PQkpFQ1RTJywgJ19ERVBFTkRFTkNJRVMnLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJ19BUicsICdfUkFOTElCJyk7CgogICAgICBpZiAoISB2YXIgKCR4 bGliIC4gJ19BUicpKQoJewoJICBkZWZpbmVfdmFyaWFibGUgKCR4bGliIC4gJ19BUicsICckKEFS KSAkKEFSRkxBR1MpJywgJHdoZXJlKTsKCX0KICAgICAgaWYgKCEgdmFyICgkeGxpYiAuICdfUkFO TElCJykpCgl7CgkgIGRlZmluZV92YXJpYWJsZSAoJHhsaWIgLiAnX1JBTkxJQicsICckKFJBTkxJ QiknLCAkd2hlcmUpOwoJfQoKICAgICAgIyBHZW5lcmF0ZSBzdXBwb3J0IGZvciBjb25kaXRpb25h bCBvYmplY3QgaW5jbHVzaW9uIGluCiAgICAgICMgbGlicmFyaWVzLgogICAgICBpZiAodmFyICgk eGxpYiAuICdfTElCQUREJykpCgl7CgkgIGlmIChoYW5kbGVfbGliX29iamVjdHMgKCR4bGliLCAk eGxpYiAuICdfTElCQUREJykpCgkgICAgewoJICAgICAgJHNlZW5fbGlib2JqcyA9IDE7CgkgICAg fQoJfQogICAgICBlbHNlCgl7CgkgIGRlZmluZV92YXJpYWJsZSAoJHhsaWIgLiAiX0xJQkFERCIs ICcnLCAkd2hlcmUpOwoJfQoKICAgICAgcmVqZWN0X3ZhciAoJHhsaWIgLiAnX0xEQUREJywKCQkg ICJ1c2UgJyR7eGxpYn1fTElCQUREJywgbm90ICcke3hsaWJ9X0xEQUREJyIpOwoKICAgICAgIyBN YWtlIHN1cmUgd2UgYXQgbG9vayBhdCB0aGlzLgogICAgICBzZXRfc2VlbiAoJHhsaWIgLiAnX0RF UEVOREVOQ0lFUycpOwogICAgICBzZXRfc2VlbiAoJ0VYVFJBXycgLiAkeGxpYiAuICdfREVQRU5E RU5DSUVTJyk7CgogICAgICBoYW5kbGVfc291cmNlX3RyYW5zZm9ybSAoJHhsaWIsICRvbmVsaWIs ICRvYmosICR3aGVyZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5PTkxJQlRPT0wg PT4gMSwgTElCVE9PTCA9PiAwKTsKCiAgICAgICMgSWYgdGhlIHJlc3VsdGluZyBsaWJyYXJ5IGxp ZXMgaW4gYSBzdWJkaXJlY3RvcnksCiAgICAgICMgbWFrZSBzdXJlIHRoaXMgZGlyZWN0b3J5IHdp bGwgZXhpc3QuCiAgICAgIG15ICRkaXJzdGFtcCA9IHJlcXVpcmVfYnVpbGRfZGlyZWN0b3J5X21h eWJlICgkb25lbGliKTsKICAgICAgbXkgJHZlcmJvc2UgPSB2ZXJib3NlX2ZsYWcgKCdBUicpOwog ICAgICBteSAkc2lsZW50ID0gc2lsZW50X2ZsYWcgKCk7CgogICAgICAkb3V0cHV0X3J1bGVzIC49 IGZpbGVfY29udGVudHMgKCdsaWJyYXJ5JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJHdoZXJlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBW RVJCT1NFICA9PiAkdmVyYm9zZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU0lMRU5UICAgPT4gJHNpbGVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTElCUkFSWSAgPT4gJG9uZWxpYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgWExJQlJBUlkgPT4gJHhsaWIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIERJUlNUQU1QID0+ICRkaXJzdGFtcCk7CgogICAgICBpZiAoJHNlZW5fbGlib2Jq cykKCXsKCSAgaWYgKHZhciAoJHhsaWIgLiAnX0xJQkFERCcpKQoJICAgIHsKCSAgICAgIGNoZWNr X2xpYm9ianNfc291cmNlcyAoJHhsaWIsICR4bGliIC4gJ19MSUJBREQnKTsKCSAgICB9Cgl9Cgog ICAgICBpZiAoISAkc2Vlbl9hcikKCXsKCSAgbXNnICgnZXh0cmEtcG9ydGFiaWxpdHknLCAkd2hl cmUsCgkgICAgICAgIickb25lbGliJzogbGlua2luZyBsaWJyYXJpZXMgdXNpbmcgYSBub24tUE9T SVhcbiIKCSAgICAgICAuICJhcmNoaXZlciByZXF1aXJlcyAnQU1fUFJPR19BUicgaW4gJyRjb25m aWd1cmVfYWMnIikKCX0KICAgIH0KfQoKCnN1YiBoYW5kbGVfbHRsaWJyYXJpZXMgKCkKewogIHJl dHVybiBpZiAhIEBsdGxpYmxpc3Q7CiAgJG11c3RfaGFuZGxlX2NvbXBpbGVkX29iamVjdHMgPSAx OwoKICBteSBAcHJlZml4ID0gYW1fcHJpbWFyeV9wcmVmaXhlcyAoJ0xUTElCUkFSSUVTJywgMCwg J2xpYicsICdwa2dsaWInLAoJCQkJICAgICdub2luc3QnLCAnY2hlY2snKTsKCiAgaWYgKEBwcmVm aXgpCiAgICB7CiAgICAgIG15ICR2YXIgPSBydmFyICgkcHJlZml4WzBdIC4gJ19MVExJQlJBUklF UycpOwogICAgICAkdmFyLT5yZXF1aXJlc192YXJpYWJsZXMgKCdMaWJ0b29sIGxpYnJhcnkgdXNl ZCcsICdMSUJUT09MJyk7CiAgICB9CgogIG15ICVpbnN0ZGlycyA9ICgpOwogIG15ICVpbnN0c3Vi ZGlycyA9ICgpOwogIG15ICVpbnN0Y29uZHMgPSAoKTsKICBteSAlbGlibG9jYXRpb25zID0gKCk7 CSMgTG9jYXRpb24gKGluIE1ha2VmaWxlLmFtKSBvZiBlYWNoIGxpYnJhcnkuCgogIGZvcmVhY2gg bXkgJGtleSAoQHByZWZpeCkKICAgIHsKICAgICAgIyBHZXQgdGhlIGluc3RhbGxhdGlvbiBkaXJl Y3Rvcnkgb2YgZWFjaCBsaWJyYXJ5LgogICAgICBteSAkZGlyID0gJGtleTsKICAgICAgbXkgJHN0 cmlwX3N1YmRpciA9IDE7CiAgICAgIGlmICgkZGlyID1+IC9ebm9iYXNlXy8pCiAgICAgICAgewoJ ICAkZGlyID1+IHMvXm5vYmFzZV8vLzsKCSAgJHN0cmlwX3N1YmRpciA9IDA7Cgl9CiAgICAgIG15 ICR2YXIgPSBydmFyICgka2V5IC4gJ19MVExJQlJBUklFUycpOwoKICAgICAgIyBXZSByZWplY3Qg bGlicmFyaWVzIHdoaWNoIGFyZSBpbnN0YWxsZWQgaW4gc2V2ZXJhbCBwbGFjZXMKICAgICAgIyBp biB0aGUgc2FtZSBjb25kaXRpb24sIGJlY2F1c2Ugd2UgY2FuIG9ubHkgc3BlY2lmeSBvbmUKICAg ICAgIyAnLXJwYXRoJyBvcHRpb24uCiAgICAgICR2YXItPnRyYXZlcnNlX3JlY3Vyc2l2ZWx5Cgko c3ViCgkgewoJICAgbXkgKCR2YXIsICR2YWwsICRjb25kLCAkZnVsbF9jb25kKSA9IEBfOwoJICAg bXkgJGhjb25kID0gJGZ1bGxfY29uZC0+aHVtYW47CgkgICBteSAkd2hlcmUgPSAkdmFyLT5yZGVm ICgkY29uZCktPmxvY2F0aW9uOwoJICAgbXkgJGxkaXIgPSAnJzsKCSAgICRsZGlyID0gJy8nIC4g ZGlybmFtZSAoJHZhbCkKCSAgICAgaWYgKCEkc3RyaXBfc3ViZGlyKTsKCSAgICMgQSBsaWJyYXJ5 IGNhbm5vdCBiZSBpbnN0YWxsZWQgaW4gZGlmZmVyZW50IGRpcmVjdG9yaWVzCgkgICAjIGluIG92 ZXJsYXBwaW5nIGNvbmRpdGlvbnMuCgkgICBpZiAoZXhpc3RzICRpbnN0Y29uZHN7JHZhbH0pCgkg ICAgIHsKCSAgICAgICBteSAoJG1zZywgJGFjb25kKSA9CgkJICRpbnN0Y29uZHN7JHZhbH0tPmFt YmlndW91c19wICgkdmFsLCAkZnVsbF9jb25kKTsKCgkgICAgICAgaWYgKCRtc2cpCgkJIHsKCQkg ICBlcnJvciAoJHdoZXJlLCAkbXNnLCBwYXJ0aWFsID0+IDEpOwoJCSAgIG15ICRkaXJ0eHQgPSAi aW5zdGFsbGVkICIgLiAoJHN0cmlwX3N1YmRpciA/ICJpbiIgOiAiYmVsb3ciKSAuICIgJyRkaXIn IjsKCQkgICAkZGlydHh0ID0gImJ1aWx0IGZvciAnJGRpciciCgkJICAgICBpZiAkZGlyIGVxICdF WFRSQScgfHwgJGRpciBlcSAnbm9pbnN0JyB8fCAkZGlyIGVxICdjaGVjayc7CgkJICAgbXkgJGRp cmNvbmQgPQoJCSAgICAgJGZ1bGxfY29uZC0+dHJ1ZSA/ICIiIDogIiBpbiBjb25kaXRpb24gJGhj b25kIjsKCgkJICAgZXJyb3IgKCR3aGVyZSwgIickdmFsJyBzaG91bGQgYmUgJGRpcnR4dCRkaXJj b25kIC4uLiIsCgkJCSAgcGFydGlhbCA9PiAxKTsKCgkJICAgbXkgJGhhY29uZCA9ICRhY29uZC0+ aHVtYW47CgkJICAgbXkgJGFkaXIgPSAkaW5zdGRpcnN7JHZhbH17JGFjb25kfTsKCQkgICBteSAk YWRpcnR4dCA9ICJpbnN0YWxsZWQgaW4gJyRhZGlyJyI7CgkJICAgJGFkaXJ0eHQgPSAiYnVpbHQg Zm9yICckYWRpciciCgkJICAgICBpZiAoJGFkaXIgZXEgJ0VYVFJBJyB8fCAkYWRpciBlcSAnbm9p bnN0JwoJCQkgfHwgJGFkaXIgZXEgJ2NoZWNrJyk7CgkJICAgbXkgJGFkaXJjb25kID0gJGFjb25k LT50cnVlID8gIiIgOiAiIGluIGNvbmRpdGlvbiAkaGFjb25kIjsKCgkJICAgbXkgJG9ubHlvbmUg PSAoJGRpciBuZSAkYWRpcikgPwoJCSAgICAgKCJcbkxpYnRvb2wgbGlicmFyaWVzIGNhbiBiZSBi dWlsdCBmb3Igb25seSBvbmUgIgoJCSAgICAgIC4gImRlc3RpbmF0aW9uIikgOiAiIjsKCgkJICAg ZXJyb3IgKCRsaWJsb2NhdGlvbnN7JHZhbH17JGFjb25kfSwKCQkJICAiLi4uIGFuZCBzaG91bGQg YWxzbyBiZSAkYWRpcnR4dCRhZGlyY29uZC4kb25seW9uZSIpOwoJCSAgIHJldHVybjsKCQkgfQoJ ICAgICB9CgkgICBlbHNlCgkgICAgIHsKCSAgICAgICAkaW5zdGNvbmRzeyR2YWx9ID0gbmV3IEF1 dG9tYWtlOjpEaXNqQ29uZGl0aW9uczsKCSAgICAgfQoJICAgJGluc3RkaXJzeyR2YWx9eyRmdWxs X2NvbmR9ID0gJGRpcjsKCSAgICRpbnN0c3ViZGlyc3skdmFsfXskZnVsbF9jb25kfSA9ICRsZGly OwoJICAgJGxpYmxvY2F0aW9uc3skdmFsfXskZnVsbF9jb25kfSA9ICR3aGVyZTsKCSAgICRpbnN0 Y29uZHN7JHZhbH0gPSAkaW5zdGNvbmRzeyR2YWx9LT5tZXJnZSAoJGZ1bGxfY29uZCk7CgkgfSwK CSBzdWIKCSB7CgkgICByZXR1cm4gKCk7CgkgfSwKCSBza2lwX2FjX3N1YnN0ID0+IDEpOwogICAg fQoKICBmb3JlYWNoIG15ICRwYWlyIChAbHRsaWJsaXN0KQogICAgewogICAgICBteSAoJHdoZXJl LCAkb25lbGliKSA9IEAkcGFpcjsKCiAgICAgIG15ICRzZWVuX2xpYm9ianMgPSAwOwogICAgICBt eSAkb2JqID0gJy5sbyc7CgogICAgICAjIENhbm9uaWNhbGl6ZSBuYW1lcyBhbmQgY2hlY2sgZm9y IG1pc3NwZWxsaW5ncy4KICAgICAgbXkgJHhsaWIgPSBjaGVja19jYW5vbmljYWxfc3BlbGxpbmcg KCRvbmVsaWIsICdfTElCQUREJywgJ19MREZMQUdTJywKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICdfU09VUkNFUycsICdfT0JKRUNUUycsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX0RFUEVOREVOQ0lFUycpOwoKICAgICAgIyBD aGVjayB0aGF0IHRoZSBsaWJyYXJ5IGZpdHMgdGhlIHN0YW5kYXJkIG5hbWluZyBjb252ZW50aW9u LgogICAgICBteSAkbGlibmFtZV9yeCA9ICdebGliLipcLmxhJzsKICAgICAgbXkgJGxkdmFyID0g dmFyICgiJHt4bGlifV9MREZMQUdTIikgfHwgdmFyICgnQU1fTERGTEFHUycpOwogICAgICBteSAk bGR2YXIyID0gdmFyICgnTERGTEFHUycpOwogICAgICBpZiAoKCRsZHZhciAmJiBncmVwICgvLW1v ZHVsZS8sICRsZHZhci0+dmFsdWVfYXNfbGlzdF9yZWN1cnNpdmUpKQoJICB8fCAoJGxkdmFyMiAm JiBncmVwICgvLW1vZHVsZS8sICRsZHZhcjItPnZhbHVlX2FzX2xpc3RfcmVjdXJzaXZlKSkpCgl7 CgkgICMgUmVsYXggbmFtZSBjaGVja2luZyBmb3IgbGlidG9vbCBtb2R1bGVzLgoJICAkbGlibmFt ZV9yeCA9ICdcLmxhJzsKCX0KCiAgICAgIG15ICRibiA9IGJhc2VuYW1lICgkb25lbGliKTsKICAg ICAgaWYgKCRibiAhfiAvJGxpYm5hbWVfcngkLykKCXsKCSAgbXkgJHR5cGUgPSAnbGlicmFyeSc7 CgkgIGlmICgkbGlibmFtZV9yeCBlcSAnXC5sYScpCgkgICAgewoJICAgICAgJGJuID1+IHMvXihs aWJ8KSguKj8pKD86XC5bXi5dKik/JC8kMSQyLmxhLzsKCSAgICAgICR0eXBlID0gJ21vZHVsZSc7 CgkgICAgfQoJICBlbHNlCgkgICAgewoJICAgICAgJGJuID1+IHMvXig/OmxpYik/KC4qPykoPzpc LlteLl0qKT8kL2xpYiQxLmxhLzsKCSAgICB9CgkgIG15ICRzdWdnZXN0aW9uID0gZGlybmFtZSAo JG9uZWxpYikgLiAiLyRibiI7CgkgICRzdWdnZXN0aW9uID1+IHN8XlwuL3x8ZzsKCSAgbXNnICgn ZXJyb3ItZ251L3dhcm4nLCAkd2hlcmUsCgkgICAgICAgIickb25lbGliJyBpcyBub3QgYSBzdGFu ZGFyZCBsaWJ0b29sICR0eXBlIG5hbWVcbiIKCSAgICAgICAuICJkaWQgeW91IG1lYW4gJyRzdWdn ZXN0aW9uJz8iKQoJfQoKICAgICAgKCRrbm93bl9saWJyYXJpZXN7JG9uZWxpYn0gPSAkYm4pID1+ IHMvXC5sYSQvLzsKCiAgICAgICR3aGVyZS0+cHVzaF9jb250ZXh0ICgid2hpbGUgcHJvY2Vzc2lu ZyBMaWJ0b29sIGxpYnJhcnkgJyRvbmVsaWInIik7CiAgICAgICR3aGVyZS0+c2V0IChJTlRFUk5B TC0+Z2V0KTsKCiAgICAgICMgTWFrZSBzdXJlIHdlIGxvb2sgYXQgdGhlc2UuCiAgICAgIHNldF9z ZWVuICgkeGxpYiAuICdfTERGTEFHUycpOwogICAgICBzZXRfc2VlbiAoJHhsaWIgLiAnX0RFUEVO REVOQ0lFUycpOwogICAgICBzZXRfc2VlbiAoJ0VYVFJBXycgLiAkeGxpYiAuICdfREVQRU5ERU5D SUVTJyk7CgogICAgICAjIEdlbmVyYXRlIHN1cHBvcnQgZm9yIGNvbmRpdGlvbmFsIG9iamVjdCBp bmNsdXNpb24gaW4KICAgICAgIyBsaWJyYXJpZXMuCiAgICAgIGlmICh2YXIgKCR4bGliIC4gJ19M SUJBREQnKSkKCXsKCSAgaWYgKGhhbmRsZV9saWJfb2JqZWN0cyAoJHhsaWIsICR4bGliIC4gJ19M SUJBREQnKSkKCSAgICB7CgkgICAgICAkc2Vlbl9saWJvYmpzID0gMTsKCSAgICB9Cgl9CiAgICAg IGVsc2UKCXsKCSAgZGVmaW5lX3ZhcmlhYmxlICgkeGxpYiAuICJfTElCQUREIiwgJycsICR3aGVy ZSk7Cgl9CgogICAgICByZWplY3RfdmFyICgiJHt4bGlifV9MREFERCIsCgkJICAidXNlICcke3hs aWJ9X0xJQkFERCcsIG5vdCAnJHt4bGlifV9MREFERCciKTsKCgogICAgICBteSAkbGlua2VyID0g aGFuZGxlX3NvdXJjZV90cmFuc2Zvcm0gKCR4bGliLCAkb25lbGliLCAkb2JqLCAkd2hlcmUsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTk9OTElCVE9PTCA9PiAw LCBMSUJUT09MID0+IDEpOwoKICAgICAgIyBEZXRlcm1pbmUgcHJvZ3JhbSB0byB1c2UgZm9yIGxp bmsuCiAgICAgIG15KCR4bGluaywgJHZsaW5rKSA9IGRlZmluZV9wZXJfdGFyZ2V0X2xpbmtlcl92 YXJpYWJsZSAoJGxpbmtlciwgJHhsaWIpOwogICAgICAkdmxpbmsgPSB2ZXJib3NlX2ZsYWcgKCR2 bGluayB8fCAnR0VOJyk7CgogICAgICBteSAkcnBhdGh2YXIgPSAiYW1fJHt4bGlifV9ycGF0aCI7 CiAgICAgIG15ICRycGF0aCA9ICJcJCgkcnBhdGh2YXIpIjsKICAgICAgZm9yZWFjaCBteSAkcmNv bmQgKCRpbnN0Y29uZHN7JG9uZWxpYn0tPmNvbmRzKQoJewoJICBteSAkdmFsOwoJICBpZiAoJGlu c3RkaXJzeyRvbmVsaWJ9eyRyY29uZH0gZXEgJ0VYVFJBJwoJICAgICAgfHwgJGluc3RkaXJzeyRv bmVsaWJ9eyRyY29uZH0gZXEgJ25vaW5zdCcKCSAgICAgIHx8ICRpbnN0ZGlyc3skb25lbGlifXsk cmNvbmR9IGVxICdjaGVjaycpCgkgICAgewoJICAgICAgIyBJdCdzIGFuIEVYVFJBXyBsaWJyYXJ5 LCBzbyB3ZSBjYW4ndCBzcGVjaWZ5IC1ycGF0aCwKCSAgICAgICMgYmVjYXVzZSB3ZSBkb24ndCBr bm93IHdoZXJlIHRoZSBsaWJyYXJ5IHdpbGwgZW5kIHVwLgoJICAgICAgIyBUaGUgdXNlciBwcm9i YWJseSBrbm93cywgYnV0IGdlbmVyYWxseSBzcGVha2luZyBhdXRvbWFrZQoJICAgICAgIyBkb2Vz bid0IC0tIGFuZCBpbiBmYWN0IGNvbmZpZ3VyZSBjb3VsZCBkZWNpZGUKCSAgICAgICMgZHluYW1p Y2FsbHkgYmV0d2VlbiB0d28gZGlmZmVyZW50IGxvY2F0aW9ucy4KCSAgICAgICR2YWwgPSAnJzsK CSAgICB9CgkgIGVsc2UKCSAgICB7CgkgICAgICAkdmFsID0gKCctcnBhdGggJCgnIC4gJGluc3Rk aXJzeyRvbmVsaWJ9eyRyY29uZH0gLiAnZGlyKScpOwoJICAgICAgJHZhbCAuPSAkaW5zdHN1YmRp cnN7JG9uZWxpYn17JHJjb25kfQoJICAgICAgICBpZiBkZWZpbmVkICRpbnN0c3ViZGlyc3skb25l bGlifXskcmNvbmR9OwoJICAgIH0KCSAgaWYgKCRyY29uZC0+dHJ1ZSkKCSAgICB7CgkgICAgICAj IElmICRyY29uZCBpcyB0cnVlIHRoZXJlIGlzIG9ubHkgb25lIGNvbmRpdGlvbiBhbmQKCSAgICAg ICMgdGhlcmUgaXMgbm8gcG9pbnQgZGVmaW5pbmcgYW4gaGVscGVyIHZhcmlhYmxlLgoJICAgICAg JHJwYXRoID0gJHZhbDsKCSAgICB9CgkgIGVsc2UKCSAgICB7CgkgICAgICBkZWZpbmVfcHJldHR5 X3ZhcmlhYmxlICgkcnBhdGh2YXIsICRyY29uZCwgSU5URVJOQUwsICR2YWwpOwoJICAgIH0KCX0K CiAgICAgICMgSWYgdGhlIHJlc3VsdGluZyBsaWJyYXJ5IGxpZXMgaW4gYSBzdWJkaXJlY3Rvcnks CiAgICAgICMgbWFrZSBzdXJlIHRoaXMgZGlyZWN0b3J5IHdpbGwgZXhpc3QuCiAgICAgIG15ICRk aXJzdGFtcCA9IHJlcXVpcmVfYnVpbGRfZGlyZWN0b3J5X21heWJlICgkb25lbGliKTsKCiAgICAg ICMgUmVtZW1iZXIgdG8gY2xlYW51cCAubGlicy8gaW4gdGhpcyBkaXJlY3RvcnkuCiAgICAgIG15 ICRkaXJuYW1lID0gZGlybmFtZSAkb25lbGliOwogICAgICAkbGlidG9vbF9jbGVhbl9kaXJlY3Rv cmllc3skZGlybmFtZX0gPSAxOwoKICAgICAgJG91dHB1dF9ydWxlcyAuPSBmaWxlX2NvbnRlbnRz ICgnbHRsaWJyYXJ5JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkd2hl cmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRMSUJSQVJZICA9PiAk b25lbGliLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhMVExJQlJBUlkg PT4gJHhsaWIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlBBVEggICAg ICA9PiAkcnBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWExJTksg ICAgICA9PiAkeGxpbmssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkVS Qk9TRSAgICA9PiAkdmxpbmssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg RElSU1RBTVAgICA9PiAkZGlyc3RhbXApOwogICAgICBpZiAoJHNlZW5fbGlib2JqcykKCXsKCSAg aWYgKHZhciAoJHhsaWIgLiAnX0xJQkFERCcpKQoJICAgIHsKCSAgICAgIGNoZWNrX2xpYm9ianNf c291cmNlcyAoJHhsaWIsICR4bGliIC4gJ19MSUJBREQnKTsKCSAgICB9Cgl9CgogICAgICBpZiAo ISAkc2Vlbl9hcikKCXsKCSAgbXNnICgnZXh0cmEtcG9ydGFiaWxpdHknLCAkd2hlcmUsCgkgICAg ICAgIickb25lbGliJzogbGlua2luZyBsaWJ0b29sIGxpYnJhcmllcyB1c2luZyBhIG5vbi1QT1NJ WFxuIgoJICAgICAgIC4gImFyY2hpdmVyIHJlcXVpcmVzICdBTV9QUk9HX0FSJyBpbiAnJGNvbmZp Z3VyZV9hYyciKQoJfQogICAgfQp9CgojIFNlZSBpZiBhbnkgX1NPVVJDRVMgdmFyaWFibGUgd2Vy ZSBtaXNzcGVsbGVkLgpzdWIgY2hlY2tfdHlwb3MgKCkKewogICMgSXQgaXMgb2sgaWYgdGhlIHVz ZXIgc2V0cyB0aGlzIHBhcnRpY3VsYXIgdmFyaWFibGUuCiAgc2V0X3NlZW4gJ0FNX0xERkxBR1Mn OwoKICBmb3JlYWNoIG15ICRwcmltYXJ5ICgnU09VUkNFUycsICdMSUJBREQnLCAnTERBREQnLCAn TERGTEFHUycsICdERVBFTkRFTkNJRVMnKQogICAgewogICAgICBmb3JlYWNoIG15ICR2YXIgKHZh cmlhYmxlcyAkcHJpbWFyeSkKCXsKCSAgbXkgJHZhcm5hbWUgPSAkdmFyLT5uYW1lOwoJICAjIEEg Y29uZmlndXJlIHZhcmlhYmxlIGlzIGFsd2F5cyBsZWdpdGltYXRlLgoJICBuZXh0IGlmIGV4aXN0 cyAkY29uZmlndXJlX3ZhcnN7JHZhcm5hbWV9OwoKCSAgZm9yIG15ICRjb25kICgkdmFyLT5jb25k aXRpb25zLT5jb25kcykKCSAgICB7CgkgICAgICAkdmFybmFtZSA9fiAvXig/OkVYVFJBXyk/KD86 bm9iYXNlXyk/KD86ZGlzdF98bm9kaXN0Xyk/KC4qKV9bWzphbG51bTpdXSskLzsKCSAgICAgIG1z Z192YXIgKCdzeW50YXgnLCAkdmFyLCAidmFyaWFibGUgJyR2YXJuYW1lJyBpcyBkZWZpbmVkIGJ1 dCBubyIKCQkgICAgICAgLiAiIHByb2dyYW0gb3JcbmxpYnJhcnkgaGFzICckMScgYXMgY2Fub25p Y2FsIG5hbWUiCgkJICAgICAgIC4gIiAocG9zc2libGUgdHlwbykiKQoJCXVubGVzcyAkdmFyLT5y ZGVmICgkY29uZCktPnNlZW47CgkgICAgfQoJfQogICAgfQp9CgoKc3ViIGhhbmRsZV9zY3JpcHRz ICgpCnsKICAgICMgTk9URSB3ZSBubyBsb25nZXIgYXV0b21hdGljYWxseSBjbGVhbiBTQ1JJUFRT LCBiZWNhdXNlIGl0IGlzCiAgICAjIHVzZWZ1bCB0byBzb21ldGltZXMgZGlzdHJpYnV0ZSBzY3Jp cHRzIHZlcmJhdGltLiAgVGhpcyBoYXBwZW5zCiAgICAjIGUuZy4gaW4gQXV0b21ha2UgaXRzZWxm LgogICAgYW1faW5zdGFsbF92YXIgKCctY2FuZGlzdCcsICdzY3JpcHRzJywgJ1NDUklQVFMnLAog ICAgICAgICAgICAgICAgICAgICdiaW4nLCAnc2JpbicsICdsaWJleGVjJywgJ3BrZ2xpYmV4ZWMn LCAncGtnZGF0YScsCiAgICAgICAgICAgICAgICAgICAgJ25vaW5zdCcsICdjaGVjaycpOwp9CgoK IyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCiMjIEhhbmRsaW5nIFRleGluZm8gZmlsZXMu ICAjIwojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKCiMgKCRPVVRGSUxFLCAkVkZJTEUp CiMgc2Nhbl90ZXhpbmZvX2ZpbGUgKCRGSUxFTkFNRSkKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQojICRPVVRGSUxFICAgICAtIG5hbWUgb2YgdGhlIGluZm8gZmlsZSBwcm9kdWNlZCBi eSAkRklMRU5BTUUuCiMgJFZGSUxFICAgICAgIC0gbmFtZSBvZiB0aGUgdmVyc2lvbi50ZXhpIGZp bGUgdXNlZCAodW5kZWYgaWYgbm9uZSkuCnN1YiBzY2FuX3RleGluZm9fZmlsZQp7CiAgbXkgKCRm aWxlbmFtZSkgPSBAXzsKICBteSAkb3JpZ19maWxlbmFtZSA9ICRmaWxlbmFtZTsKCiAgIyBJZiB0 aGUgc291cmNlIGZpbGUgZG9lc24ndCBleGlzdCwgd2UnbGwgZmFsbCBiYWNrIGJlbG93LgogIGlm ICghIC1lICRmaWxlbmFtZSkKICAgIHsKICAgICAgaWYgKC1lICgkZmlsZW5hbWUgLiAnLmluJykp CiAgICAgICAgewogICAgICAgICAgIyAkZmlsZW5hbWUudGV4aS5pbiBleGlzdHM6IGFzc3VtZSAk ZmlsZW5hbWUudGV4aSBpcyBnZW5lcmF0ZWQKICAgICAgICAgICMgYW5kIHBhcnNlICRmaWxlbmFt ZS50ZXhpLmluIGFzIHRoZSByZWFsIGlucHV0LgogICAgICAgICAgJGZpbGVuYW1lIC49ICcuaW4n OwogICAgICAgIH0KICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICRmaWxlbmFtZSA9ICcv ZGV2L251bGwnOwogICAgICAgIH0KICAgIH0KICBteSAkdGV4aSA9IG5ldyBBdXRvbWFrZTo6WEZp bGUgIjwgJGZpbGVuYW1lIjsKICB2ZXJiICJyZWFkaW5nIHRleGluZm9fZmlsZSAkZmlsZW5hbWUi OwoKICBteSAoJG91dGZpbGUsICR2ZmlsZSk7CiAgd2hpbGUgKCRfID0gJHRleGktPmdldGxpbmUp CiAgICB7CiAgICAgIGlmICgvXlxAc2V0ZmlsZW5hbWUgKyhcUyspLykKCXsKCSAgIyBIb25vciBv bmx5IHRoZSBmaXJzdCBAc2V0ZmlsZW5hbWUuICAoSXQncyBwb3NzaWJsZSB0byBoYXZlCgkgICMg bW9yZSBvY2N1cnJlbmNlcyBsYXRlciBpZiB0aGUgbWFudWFsIHNob3dzIGV4YW1wbGVzIG9mIGhv dwoJICAjIHRvIHVzZSBAc2V0ZmlsZW5hbWUuLi4pCgkgIG5leHQgaWYgJG91dGZpbGU7CgoJICAj IEFsdGhvdWdoIHdlIG5vdGljZSB0aGUgQHNldGZpbGVuYW1lLCBhbmQgdGhlIHJ1bGVzIGFyZQoJ ICAjIGFkanVzdGVkIHRvIHNvcnQgb2YgdXNlIGl0LCB0aGV5IGRvbid0IGFjdHVhbGx5IHdvcmsu CgkgICMgU3BlY2lmaWNhbGx5LCBpZiBmb28udGV4aSBjb250YWlucyBAc2V0ZmlsZW5hbWUgYmFy LmluZm8sCgkgICMgdGhlIGdlbmVyYXRlZCAudGV4aS5pbmZvIHN1ZmZpeCBydWxlIHdpbGwgbm90 IHJ1bi4KCSAgIwoJICAjIEFsc28sIGFsdGhvdWdoIHdlIGNoYW5nZSB0aGUgLmluZm8gdGFyZ2V0 IHRvIGJlIGJhci5pbmZvLAoJICAjIHRoZSBIVE1MKFMpIHZhcmlhYmxlL2V0Yy4gaXMgbm90IGNo YW5nZWQuCgkgICMKCSAgIyBTaW5jZSBAc2V0ZmlsZW5hbWUgaXMgb3B0aW9uYWwgbm93YWRheXMs IGRvZXNuJ3Qgc2VlbSB3b3J0aAoJICAjIHRoZSB0cm91YmxlIHRvIGhhbmRsZSAod2hpY2ggbG9v a3MgdG8gYmUgbm9udHJpdmlhbCkuCgkgICMgaHR0cHM6Ly9idWdzLmdudS5vcmcvNTQwNjMKCgkg ICRvdXRmaWxlID0gJDE7CgkgIGlmIChpbmRleCAoJG91dGZpbGUsICcuJykgPCAwKQoJICAgIHsK CSAgICAgIG1zZyAnb2Jzb2xldGUnLCAiJGZpbGVuYW1lOiQuIiwKCSAgICAgICAgICAidXNlIG9m IHN1ZmZpeC1sZXNzIGluZm8gZmlsZXMgaXMgZGlzY291cmFnZWQiCgkgICAgfQoJICBlbHNpZiAo JG91dGZpbGUgIX4gL1wuaW5mbyQvKQoJICAgIHsKCSAgICAgIGVycm9yICgiJGZpbGVuYW1lOiQu IiwKCQkgICAgICJvdXRwdXQgJyRvdXRmaWxlJyBoYXMgdW5yZWNvZ25pemVkIGV4dGVuc2lvbiIp OwoJICAgICAgcmV0dXJuOwoJICAgIH0KCX0KICAgICAgIyBBICJ2ZXJzaW9uLnRleGkiIGZpbGUg aXMgYWN0dWFsbHkgYW55IGZpbGUgd2hvc2UgbmFtZSBtYXRjaGVzCiAgICAgICMgInZlcnMqLnRl eGkiLgogICAgICBlbHNpZiAoL15cQGluY2x1ZGVccysodmVyc1teLl0qXC50ZXhpKVxzKiQvKQoJ ewoJICAkdmZpbGUgPSAkMTsKCX0KICAgIH0KCiAgaWYgKCEgJG91dGZpbGUpCiAgICB7CiAgICAg ICMgSWYgbm8gZXhwbGljaXQgQHNldGZpbGVuYW1lLCB1c2UgdGhlIG9yaWdpbmFsIGZpbGVuYW1l IGFzIHBhc3NlZAogICAgICAjIChub3QgZm9vLnRleGkuaW4gb3IgL2Rldi9udWxsKSBpbiB0aGUg Z2VuZXJhdGVkIHJ1bGVzLCB3aGlsZQogICAgICAjIHJlcGxhY2luZyBhbnkgZXh0ZW5zaW9uIChw cmVzdW1hYmx5IC50ZXhpKSB3aXRoIC5pbmZvLgogICAgICAkb3V0ZmlsZSA9IGJhc2VuYW1lICgk b3JpZ19maWxlbmFtZSk7CiAgICAgICRvdXRmaWxlID1+IHMvXC5bXi5dKyQvLzsKICAgICAgJG91 dGZpbGUgLj0gJy5pbmZvJzsKICAgIH0KCiAgcmV0dXJuICgkb3V0ZmlsZSwgJHZmaWxlKTsKfQoK CiMgKCRESVJTVEFNUCwgQENMRUFOX0ZJTEVTKQojIG91dHB1dF90ZXhpbmZvX2J1aWxkX3J1bGVz ICgkU09VUkNFLCAkREVTVCwgJElOU1JDLCBAREVQRU5ERU5DSUVTKQojIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFNP VVJDRSAtIHRoZSBzb3VyY2UgVGV4aW5mbyBmaWxlCiMgREVTVCAtIHRoZSBkZXN0aW5hdGlvbiBJ bmZvIGZpbGUKIyBJTlNSQyAtIHdoZXRoZXIgREVTVCBzaG91bGQgYmUgYnVpbHQgaW4gdGhlIHNv dXJjZSB0cmVlCiMgREVQRU5ERU5DSUVTIC0ga25vd24gZGVwZW5kZW5jaWVzCnN1YiBvdXRwdXRf dGV4aW5mb19idWlsZF9ydWxlcwp7CiAgbXkgKCRzb3VyY2UsICRkZXN0LCAkaW5zcmMsIEBkZXBz KSA9IEBfOwoKICAjIFNwbGl0ICdhLnRleGknIGludG8gJ2EnIGFuZCAnLnRleGknLgogIG15ICgk c3BmeCwgJHNzZngpID0gKCRzb3VyY2UgPX4gL14oLio/KShcLlteLl0qKT8kLyk7CiAgbXkgKCRk cGZ4LCAkZHNmeCkgPSAoJGRlc3QgPX4gL14oLio/KShcLlteLl0qKT8kLyk7CgogICRzc2Z4IHx8 PSAiIjsKICAkZHNmeCB8fD0gIiI7CgogICMgV2UgY2FuIG91dHB1dCB0d28ga2luZHMgb2YgcnVs ZXM6IHRoZSAiZ2VuZXJpYyIgcnVsZXMgdXNlIE1ha2UKICAjIHN1ZmZpeCBydWxlcyBhbmQgYXJl IGFwcHJvcHJpYXRlIHdoZW4gJHNvdXJjZSBhbmQgJGRlc3QgZG8gbm90IGxpZQogICMgaW4gYSBz dWItZGlyZWN0b3J5OyB0aGUgInNwZWNpZmljIiBydWxlcyBhcmUgbmVlZGVkIGluIHRoZSBvdGhl cgogICMgY2FzZS4KICAjCiAgIyBUaGUgZm9ybWVyIGFyZSBvdXRwdXQgb25seSBvbmNlICh0aGlz IGlzIG5vdCByZWFsbHkgYXBwYXJlbnQgaGVyZSwKICAjIGJ1dCBqdXN0IHJlbWVtYmVyIHRoYXQg c29tZSBsb2dpYyBkZWVwZXIgaW4gQXV0b21ha2Ugd2lsbCBub3QKICAjIG91dHB1dCB0aGUgc2Ft ZSBydWxlIHR3aWNlKTsgd2hpbGUgdGhlIGxhdGVyIG5lZWQgdG8gYmUgb3V0cHV0IGZvcgogICMg ZWFjaCBUZXhpbmZvIHNvdXJjZS4KICAjCiAgIyBOQjogVGhlIG1ha2VpbmZvZmxhZ3MgaXMgY3Vy cmVudGx5IHBhc3NlZCB0byBtYWtlaW5mbyBhbmQgdGV4aTJkdmksIHNvCiAgIyBtYWtlIHN1cmUg dGhhdCBpdCBvbmx5IHV0aWxpemVzIGNvbXBhdGlibGUgZmxhZ3MuICBCZXN0IHRvIHN0aWNrIHRv IC1JLgogICMgQ2hhbmdpbmcgdGhpcyByZXF1aXJlcyB1cGRhdGluZyBsaWIvYW0vdGV4aWJ1aWxk LmFtLgogIG15ICRnZW5lcmljOwogIG15ICRtYWtlaW5mb2ZsYWdzOwogIG15ICRzZGlyID0gZGly bmFtZSAkc291cmNlOwogIGlmICgkc2RpciBlcSAnLicgJiYgZGlybmFtZSAoJGRlc3QpIGVxICcu JykKICAgIHsKICAgICAgJGdlbmVyaWMgPSAxOwogICAgICAkbWFrZWluZm9mbGFncyA9ICctSSAk KHNyY2RpciknOwogICAgfQogIGVsc2UKICAgIHsKICAgICAgJGdlbmVyaWMgPSAwOwogICAgICAk bWFrZWluZm9mbGFncyA9ICItSSAkc2RpciAtSSBcJChzcmNkaXIpLyRzZGlyIjsKICAgIH0KCiAg IyBBIGRpcmVjdG9yeSBjYW4gY29udGFpbiB0d28ga2luZHMgb2YgaW5mbyBmaWxlczogc29tZSBi dWlsdCBpbiB0aGUKICAjIHNvdXJjZSB0cmVlLCBhbmQgc29tZSBidWlsdCBpbiB0aGUgYnVpbGQg dHJlZS4gIFRoZSBydWxlcyBhcmUKICAjIGRpZmZlcmVudCBpbiBlYWNoIGNhc2UuICBIb3dldmVy IHdlIGNhbm5vdCBvdXRwdXQgdHdvIGRpZmZlcmVudAogICMgc2V0IG9mIGdlbmVyaWMgcnVsZXMu ICBCZWNhdXNlIGluLXNvdXJjZSBidWlsZHMgYXJlIG1vcmUgdXN1YWwsIHdlCiAgIyB1c2UgZ2Vu ZXJpYyBydWxlcyBpbiB0aGlzIGNhc2UgYW5kIGZhbGwgYmFjayB0byAic3BlY2lmaWMiIHJ1bGVz CiAgIyBmb3IgYnVpbGQtZGlyIGJ1aWxkcy4gIChJdCBzaG91bGQgbm90IGJlIGEgcHJvYmxlbSB0 byBpbnZlcnQgdGhpcwogICMgaWYgbmVlZGVkLikKICAkZ2VuZXJpYyA9IDAgdW5sZXNzICRpbnNy YzsKCiAgIyBXZSBjYW5ub3QgdXNlIGEgc3VmZml4IHJ1bGUgdG8gYnVpbGQgaW5mbyBmaWxlcyB3 aXRoIGFuIGVtcHR5CiAgIyBleHRlbnNpb24uICBPdGhlcndpc2Ugd2Ugd291bGQgb3V0cHV0IGEg c2luZ2xlIHN1ZmZpeCBpbmZlcmVuY2UKICAjIHJ1bGUsIHdpdGggc2VwYXJhdGUgZGVwZW5kZW5j aWVzLCBhcyBpbgogICMKICAjICAgIC50ZXhpOgogICMgICAgICAgICAgICAgJChNQUtFSU5GTykg Li4uCiAgIyAgICBmb28uaW5mbzogZm9vLnRleGkKICAjCiAgIyB3aGljaCBjb25mdXNlIFNvbGFy aXMgbWFrZS4gIChTZWUgdGhlIEF1dG9jb25mIG1hbnVhbCBmb3IKICAjIGRldGFpbHMuKSAgVGhl cmVmb3JlIHdlIHVzZSBhIHNwZWNpZmljIHJ1bGUgaW4gdGhpcyBjYXNlLiAgVGhpcwogICMgYXBw bGllcyB0byBpbmZvIGZpbGVzIG9ubHkgKGR2aSBhbmQgcGRmIGZpbGVzIGFsd2F5cyBoYXZlIGFu CiAgIyBleHRlbnNpb24pLgogIG15ICRnZW5lcmljX2luZm8gPSAoJGdlbmVyaWMgJiYgJGRzZngp ID8gMSA6IDA7CgogICMgSWYgdGhlIHJlc3VsdGluZyBmaWxlIGxpZXMgaW4gYSBzdWJkaXJlY3Rv cnksCiAgIyBtYWtlIHN1cmUgdGhpcyBkaXJlY3Rvcnkgd2lsbCBleGlzdC4KICBteSAkZGlyc3Rh bXAgPSByZXF1aXJlX2J1aWxkX2RpcmVjdG9yeV9tYXliZSAoJGRlc3QpOwoKICBteSAkZGlwZngg PSAoJGluc3JjID8gJyQoc3JjZGlyKS8nIDogJycpIC4gJGRwZng7CgogICRvdXRwdXRfcnVsZXMg Lj0gZmlsZV9jb250ZW50cyAoJ3RleGlidWlsZCcsCgkJCQkgIG5ldyBBdXRvbWFrZTo6TG9jYXRp b24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTV9WX01BS0VJTkZPICAgID0+ IHZlcmJvc2VfZmxhZygnTUFLRUlORk8nKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFNX1ZfVEVYSTJEVkkgICAgPT4gdmVyYm9zZV9mbGFnKCdURVhJMkRWSScpLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQU1fVl9URVhJMlBERiAgICA9PiB2ZXJib3NlX2Zs YWcoJ1RFWEkyUERGJyksCgkJCQkgIERFUFMgICAgICAgICAgICAgPT4gIkBkZXBzIiwKCQkJCSAg REVTVF9QUkVGSVggICAgICA9PiAkZHBmeCwKCQkJCSAgREVTVF9JTkZPX1BSRUZJWCA9PiAkZGlw ZngsCgkJCQkgIERFU1RfU1VGRklYICAgICAgPT4gJGRzZngsCgkJCQkgIERJUlNUQU1QICAgICAg ICAgPT4gJGRpcnN0YW1wLAoJCQkJICBHRU5FUklDICAgICAgICAgID0+ICRnZW5lcmljLAoJCQkJ ICBHRU5FUklDX0lORk8gICAgID0+ICRnZW5lcmljX2luZm8sCgkJCQkgIElOU1JDCQkgICA9PiAk aW5zcmMsCgkJCQkgIE1BS0VJTkZPRkxBR1MgICAgPT4gJG1ha2VpbmZvZmxhZ3MsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTSUxFTlQgICAgICAgICAgID0+IHNpbGVudF9mbGFn KCksCgkJCQkgIFNPVVJDRSAgICAgICAgICAgPT4gKCRnZW5lcmljCgkJCQkJCSAgICAgICA/ICck PCcgOiAkc291cmNlKSwKCQkJCSAgU09VUkNFX0lORk8gICAgICA9PiAoJGdlbmVyaWNfaW5mbwoJ CQkJCQkgICAgICAgPyAnJDwnIDogJHNvdXJjZSksCgkJCQkgIFNPVVJDRV9SRUFMICAgICAgPT4g JHNvdXJjZSwKCQkJCSAgU09VUkNFX1NVRkZJWCAgICA9PiAkc3NmeCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFRFWElRVUlFVCAgICAgICAgPT4gdmVyYm9zZV9mbGFnKCd0ZXhp bmZvJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBURVhJREVWTlVMTCAgICAg ID0+IHZlcmJvc2VfZmxhZygndGV4aWRldm51bGwnKSwKCQkJCSAgKTsKICByZXR1cm4gKCRkaXJz dGFtcCwgIiRkcGZ4LmR2aSIsICIkZHBmeC5wZGYiLCAiJGRwZngucHMiLCAiJGRwZnguaHRtbCIp Owp9CgoKIyAoJE1PU1RMWUNMRUFOLCAkVEVYSUNMRUFOLCAkTUFJTlRDTEVBTikKIyBoYW5kbGVf dGV4aW5mb19oZWxwZXIgKCRpbmZvX3RleGluZm9zKQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiMgSGFuZGxlIGFsbCBUZXhpbmZvIHNvdXJjZTsgaGVscGVyIGZvciAn aGFuZGxlX3RleGluZm8nLgpzdWIgaGFuZGxlX3RleGluZm9faGVscGVyCnsKICBteSAoJGluZm9f dGV4aW5mb3MpID0gQF87CiAgbXkgKEBpbmZvYmFzZSwgQGluZm9fZGVwc19saXN0LCBAdGV4aV9k ZXBzKTsKICBteSAldmVyc2lvbnM7CiAgbXkgJGRvbmUgPSAwOwogIG15IChAbW9zdGx5X2NsZWFu cywgQHRleGlfY2xlYW5zLCBAbWFpbnRfY2xlYW5zKSA9ICgnJywgJycsICcnKTsKCiAgIyBCdWls ZCBhIHJlZ2V4IG1hdGNoaW5nIHVzZXItY2xlYW5lZCBmaWxlcy4KICBteSAkZCA9IHZhciAnRElT VENMRUFORklMRVMnOwogIG15ICRjID0gdmFyICdDTEVBTkZJTEVTJzsKICBteSBAZiA9ICgpOwog IHB1c2ggQGYsICRkLT52YWx1ZV9hc19saXN0X3JlY3Vyc2l2ZSAoaW5uZXJfZXhwYW5kID0+IDEp IGlmICRkOwogIHB1c2ggQGYsICRjLT52YWx1ZV9hc19saXN0X3JlY3Vyc2l2ZSAoaW5uZXJfZXhw YW5kID0+IDEpIGlmICRjOwogIEBmID0gbWFwIHsgc3xbXkEtWmEtel8wLTkqXFtcXVwtXXxcXCQm fGc7IHN8XCp8W14vXSp8ZzsgJF87IH0gQGY7CiAgbXkgJHVzZXJfY2xlYW5lZF9maWxlcyA9ICde KD86JyAuIGpvaW4gKCd8JywgQGYpIC4gJykkJzsKCiAgZm9yZWFjaCBteSAkdGV4aQogICAgICAo JGluZm9fdGV4aW5mb3MtPnZhbHVlX2FzX2xpc3RfcmVjdXJzaXZlIChpbm5lcl9leHBhbmQgPT4g MSkpCiAgICB7CiAgICAgIG15ICRpbmZvYmFzZSA9ICR0ZXhpOwogICAgICBpZiAoJGluZm9iYXNl ID1+IHMvXC50ZXhpJC8vKQogICAgICAgIHsKICAgICAgICAgIDE7ICMgTm90aGluZyBtb3JlIHRv IGRvLgogICAgICAgIH0KICAgICAgZWxzaWYgKCRpbmZvYmFzZSA9fiBzL1wuKHR4aXx0ZXhpbmZv KSQvLykKICAgICAgICB7CgkgIG1zZ192YXIgJ29ic29sZXRlJywgJGluZm9fdGV4aW5mb3MsCgkg ICAgICAgICAgInN1ZmZpeCAnLiQxJyBmb3IgVGV4aW5mbyBmaWxlcyBpcyBkaXNjb3VyYWdlZDsi IC4KICAgICAgICAgICAgICAgICAgIiB1c2UgJy50ZXhpJyBpbnN0ZWFkIjsKICAgICAgICB9CiAg ICAgIGVsc2UKCXsKCSAgIyBGSVhNRTogcmVwb3J0IGxpbmUgbnVtYmVyLgoJICBlcnJfYW0gInRl eGluZm8gZmlsZSAnJHRleGknIGhhcyB1bnJlY29nbml6ZWQgZXh0ZW5zaW9uIjsKCSAgbmV4dDsK CX0KCiAgICAgIHB1c2ggQGluZm9iYXNlLCAkaW5mb2Jhc2U7CgogICAgICAjIElmICd2ZXJzaW9u LnRleGknIGlzIHJlZmVyZW5jZWQgYnkgaW5wdXQgZmlsZSwgdGhlbiBpbmNsdWRlCiAgICAgICMg YXV0b21hdGljIHZlcnNpb25pbmcgY2FwYWJpbGl0eS4KICAgICAgbXkgKCRvdXRfZmlsZSwgJHZ0 ZXhpKSA9CglzY2FuX3RleGluZm9fZmlsZSAoIiRyZWxhdGl2ZV9kaXIvJHRleGkiKQoJb3IgbmV4 dDsKICAgICAgIyBEaXJlY3Rvcnkgb2YgYXV4aWxpYXJ5IGZpbGVzIGFuZCBidWlsZCBieS1wcm9k dWN0cyB1c2VkIGJ5IHRleGkyZHZpCiAgICAgICMgYW5kIHRleGkycGRmLgogICAgICBwdXNoIEBt b3N0bHlfY2xlYW5zLCAiJGluZm9iYXNlLnQyZCI7CiAgICAgIHB1c2ggQG1vc3RseV9jbGVhbnMs ICIkaW5mb2Jhc2UudDJwIjsKCiAgICAgICMgSWYgdGhlIFRleGluZm8gc291cmNlIGlzIGluIGEg c3ViZGlyZWN0b3J5LCBjcmVhdGUgdGhlCiAgICAgICMgcmVzdWx0aW5nIGluZm8gaW4gdGhpcyBz dWJkaXJlY3RvcnkuICBJZiBpdCBpcyBpbiB0aGUgY3VycmVudAogICAgICAjIGRpcmVjdG9yeSwg dHJ5IGhhcmQgdG8gbm90IHByZWZpeCAiLi8iIGJlY2F1c2UgaXQgYnJlYWtzIHRoZQogICAgICAj IGdlbmVyaWMgcnVsZXMuCiAgICAgIG15ICRvdXRkaXIgPSBkaXJuYW1lICgkdGV4aSkgLiAnLyc7 CiAgICAgICRvdXRkaXIgPSAiIiBpZiAkb3V0ZGlyIGVxICcuLyc7CiAgICAgICRvdXRfZmlsZSA9 ICAkb3V0ZGlyIC4gJG91dF9maWxlOwoKICAgICAgIyBVbnRpbCBBdXRvbWFrZSAxLjYuMywgLmlu Zm8gZmlsZXMgd2VyZSBidWlsdCBpbiB0aGUKICAgICAgIyBzb3VyY2UgdHJlZS4gIFRoaXMgd2Fz IGFuIG9ic3RhY2xlIHRvIHRoZSBzdXBwb3J0IG9mCiAgICAgICMgbm9uLWRpc3RyaWJ1dGVkIC5p bmZvIGZpbGVzLCBhbmQgbm9uLWRpc3RyaWJ1dGVkIC50ZXhpCiAgICAgICMgZmlsZXMuCiAgICAg ICMKICAgICAgIyAqIE5vbi1kaXN0cmlidXRlZCAudGV4aSBmaWxlcyBpcyBpbXBvcnRhbnQgaW4g c29tZSBwYWNrYWdlcwogICAgICAjICAgd2hlcmUgLnRleGkgZmlsZXMgYXJlIGJ1aWx0IGF0IG1h a2UgdGltZSwgcHJvYmFibHkgdXNpbmcKICAgICAgIyAgIG90aGVyIGJpbmFyaWVzIGJ1aWx0IGlu IHRoZSBwYWNrYWdlIGl0c2VsZiwgbWF5YmUgdXNpbmcKICAgICAgIyAgIHRvb2xzIG9yIGluZm9y bWF0aW9uIGZvdW5kIG9uIHRoZSBidWlsZCBob3N0LiAgQmVjYXVzZQogICAgICAjICAgdGhlc2Ug ZmlsZXMgYXJlIG5vdCBkaXN0cmlidXRlZCB0aGV5IGFyZSBhbHdheXMgcmVidWlsdAogICAgICAj ICAgYXQgbWFrZSB0aW1lOyB0aGV5IHNob3VsZCB0aGVyZWZvcmUgbm90IGxpZSBpbiB0aGUgc291 cmNlCiAgICAgICMgICBkaXJlY3RvcnkuICBPbmUgcGxhbiB3YXMgdG8gc3VwcG9ydCB0aGlzIHVz aW5nCiAgICAgICMgICBub2Rpc3RfaW5mb19URVhJTkZPUyBvciBzb21ldGhpbmcgc2ltaWxhci4g IChEb2luZyB0aGlzCiAgICAgICMgICByZXF1aXJlcyBzb21lIHNhbml0eSBjaGVja3MuICBGb3Ig aW5zdGFuY2UgQXV0b21ha2Ugc2hvdWxkCiAgICAgICMgICBub3QgYWxsb3c6CiAgICAgICMgICAg ICBkaXN0X2luZm9fVEVYSU5GT1MgPSBmb28udGV4aQogICAgICAjICAgICAgbm9kaXN0X2Zvb19U RVhJTkZPUyA9IGluY2x1ZGVkLnRleGkKICAgICAgIyAgIGJlY2F1c2UgYSBkaXN0cmlidXRlZCBm aWxlIHNob3VsZCBuZXZlciBkZXBlbmQgb24gYQogICAgICAjICAgbm9uLWRpc3RyaWJ1dGVkIGZp bGUuKQogICAgICAjCiAgICAgICMgKiBJZiAudGV4aSBmaWxlcyBhcmUgbm90IGRpc3RyaWJ1dGVk LCB0aGVuIC5pbmZvIGZpbGVzIHNob3VsZAogICAgICAjICAgbm90IGJlIGRpc3RyaWJ1dGVkIGVp dGhlci4gIFRoZXJlIGFyZSBhbHNvIGNhc2VzIHdoZXJlIG9uZQogICAgICAjICAgd2FudHMgdG8g ZGlzdHJpYnV0ZSAudGV4aSBmaWxlcywgYnV0IGRvZXMgbm90IHdhbnQgdG8KICAgICAgIyAgIGRp c3RyaWJ1dGUgdGhlIC5pbmZvIGZpbGVzLiAgRm9yIGluc3RhbmNlIHRoZSBUZXhpbmZvIHBhY2th Z2UKICAgICAgIyAgIGRpc3RyaWJ1dGVzIHRoZSB0b29sIHVzZWQgdG8gYnVpbGQgdGhlc2UgZmls ZXM7IGl0IHdvdWxkCiAgICAgICMgICBiZSBhIHdhc3RlIG9mIHNwYWNlIHRvIGRpc3RyaWJ1dGUg dGhlbS4gIEl0J3Mgbm90IGNsZWFyCiAgICAgICMgICB3aGljaCBzeW50YXggd2Ugc2hvdWxkIHVz ZSB0byBpbmRpY2F0ZSB0aGF0IC5pbmZvIGZpbGVzIHNob3VsZAogICAgICAjICAgbm90IGJlIGRp c3RyaWJ1dGVkLiAgQWtpbSBEZW1haWxsZSBzdWdnZXN0ZWQgdGhhdCBldmVudHVhbGx5CiAgICAg ICMgICB3ZSBzd2l0Y2ggdG8gYSBuZXcgc3ludGF4OgogICAgICAjICAgfCAgTWF5YmUgd2Ugc2hv dWxkIHRha2Ugc29tZSBpbnNwaXJhdGlvbiBmcm9tIHdoYXQncyBhbHJlYWR5CiAgICAgICMgICB8 ICBkb25lIGluIHRoZSByZXN0IG9mIEF1dG9tYWtlLiAgTWF5YmUgdGhlcmUgaXMgdG9vIG11Y2gK ICAgICAgIyAgIHwgIHN5bnRhY3RpYyBzdWdhciBoZXJlLCBhbmQgeW91IHdhbnQKICAgICAgIyAg IHwgICAgIG5vZGlzdF9JTkZPID0gYmFyLmluZm8KICAgICAgIyAgIHwgICAgIGRpc3RfYmFyX2lu Zm9fU09VUkNFUyA9IGJhci50ZXhpCiAgICAgICMgICB8ICAgICBiYXJfdGV4aV9ERVBFTkRFTkNJ RVMgPSBmb28udGV4aQogICAgICAjICAgfCAgd2l0aCBhIGJpdCBvZiBtYWdpYyB0byBoYXZlIGJh ci5pbmZvIHJlcHJlc2VudCB0aGUgd2hvbGUKICAgICAgIyAgIHwgIGJhcippbmZvIHNldC4gIFRo YXQncyBhIGxvdCBtb3JlIHZlcmJvc2UgdGhhdCB0aGUgY3VycmVudAogICAgICAjICAgfCAgc2l0 dWF0aW9uLCBidXQgaXQgaXMgIyBub3QgbmV3LCBoZW5jZSB0aGUgdXNlciBoYXMgbGVzcwogICAg ICAjICAgfCAgdG8gbGVhcm4uCiAgICAgICMJICB8CiAgICAgICMgICB8ICBCdXQgdGhlcmUgaXMg c3RpbGwgdG9vIG11Y2ggcm9vbSBmb3IgbWVhbmluZ2xlc3Mgc3BlY3M6CiAgICAgICMgICB8ICAg ICBub2Rpc3RfSU5GTyA9IGJhci5pbmZvCiAgICAgICMgICB8ICAgICBkaXN0X2Jhcl9pbmZvX1NP VVJDRVMgPSBiYXIudGV4aQogICAgICAjICAgfCAgICAgZGlzdF9QUyA9IGJhci5wcyBzb21ldGhp bmctd3JpdHRlbi1ieS1oYW5kLnBzCiAgICAgICMgICB8ICAgICBub2Rpc3RfYmFyX3BzX1NPVVJD RVMgPSBiYXIudGV4aQogICAgICAjICAgfCAgICAgYmFyX3RleGlfREVQRU5ERU5DSUVTID0gZm9v LnRleGkKICAgICAgIyAgIHwgIGhlcmUgYmFyLnRleGkgaXMgZGlzdF8gaW4gbGluZSAyLCBhbmQg bm9kaXN0XyBpbiA0LgogICAgICAjCiAgICAgICMgQmFjayB0byB0aGUgcG9pbnQsIGl0IHNob3Vs ZCBiZSBjbGVhciB0aGF0IGluIG9yZGVyIHRvIHN1cHBvcnQKICAgICAgIyBub24tZGlzdHJpYnV0 ZWQgLmluZm8gZmlsZXMsIHdlIG5lZWQgdG8gYnVpbGQgdGhlbSBpbiB0aGUKICAgICAgIyBidWls ZCB0cmVlLCBub3QgaW4gdGhlIHNvdXJjZSB0cmVlIChub24tZGlzdHJpYnV0ZWQgLnRleGkKICAg ICAgIyBmaWxlcyBhcmUgbGVzcyBvZiBhIHByb2JsZW0sIGJlY2F1c2Ugd2UgZG8gbm90IG91dHB1 dCBidWlsZAogICAgICAjIHJ1bGVzIGZvciB0aGVtKS4gIEluIEF1dG9tYWtlIDEuNyAuaW5mbyBi dWlsZCBydWxlcyBoYXZlIGJlZW4KICAgICAgIyBsYXJnZWx5IGNsZWFuZWQgdXAgc28gdGhhdCAu aW5mbyBmaWxlcyBnZXQgYWx3YXlzIGJ1aWxkIGluIHRoZQogICAgICAjIGJ1aWxkIHRyZWUsIGV2 ZW4gd2hlbiBkaXN0cmlidXRlZC4gIFRoZSBpZGVhIHdhcyB0aGF0CiAgICAgICMgICAoMSkgaWYg ZHVyaW5nIGEgVlBBVEggYnVpbGQgdGhlIC5pbmZvIGZpbGUgd2FzIGZvdW5kIHRvIGJlCiAgICAg ICMgICAgICAgYWJzZW50IG9yIG91dC1vZi1kYXRlIChpbiB0aGUgc291cmNlIHRyZWUgb3IgaW4g dGhlCiAgICAgICMgICAgICAgYnVpbGQgdHJlZSksIE1ha2Ugd291bGQgcmVidWlsZCBpdCBpbiB0 aGUgYnVpbGQgdHJlZS4KICAgICAgIyAgICAgICBJZiBhbiB1cC10by1kYXRlIHNvdXJjZS10cmVl IG9mIHRoZSAuaW5mbyBmaWxlIGV4aXN0ZWQsCiAgICAgICMgICAgICAgbWFrZSB3b3VsZCBub3Qg cmVidWlsZCBpdCBpbiB0aGUgYnVpbGQgdHJlZS4KICAgICAgIyAgICgyKSBoYXZpbmcgdHdvIGNv cGllcyBvZiAuaW5mbyBmaWxlcywgb25lIGluIHRoZSBzb3VyY2UgdHJlZQogICAgICAjICAgICAg IGFuZCBvbmUgKG5ld2VyKSBpbiB0aGUgYnVpbGQgdHJlZSBpcyBub3QgYSBwcm9ibGVtCiAgICAg ICMgICAgICAgYmVjYXVzZSAnbWFrZSBkaXN0JyBhbHdheXMgcGljayBmaWxlcyBpbiB0aGUgYnVp bGQgdHJlZQogICAgICAjICAgICAgIGZpcnN0LgogICAgICAjIEhvd2V2ZXIgaXQgdHVybmVkIG91 dCB0aGUgYmUgYSBiYWQgaWRlYSBmb3Igc2V2ZXJhbCByZWFzb25zOgogICAgICAjICAgKiBUcnU2 NCwgT3BlbkJTRCwgYW5kIEZyZWVCU0QgKG5vdCBOZXRCU0QpIE1ha2UgZG8gbm90IGJlaGF2ZQog ICAgICAjICAgICBsaWtlIEdOVSBNYWtlIG9uIHBvaW50ICgxKSBhYm92ZS4gIFRoZXNlIGltcGxl bWVudGF0aW9ucwogICAgICAjICAgICBvZiBNYWtlIHdvdWxkIGFsd2F5cyByZWJ1aWxkIC5pbmZv IGZpbGVzIGluIHRoZSBidWlsZAogICAgICAjICAgICB0cmVlLCBldmVuIGlmIHN1Y2ggZmlsZXMg d2VyZSB1cCB0byBkYXRlIGluIHRoZSBzb3VyY2UKICAgICAgIyAgICAgdHJlZS4gIENvbnNlcXVl bnRseSwgaXQgd2FzIGltcG9zc2libGUgdG8gcGVyZm9ybSBhIFZQQVRICiAgICAgICMgICAgIGJ1 aWxkIG9mIGEgcGFja2FnZSBjb250YWluaW5nIFRleGluZm8gZmlsZXMgdXNpbmcgdGhlc2UKICAg ICAgIyAgICAgTWFrZSBpbXBsZW1lbnRhdGlvbnMuCiAgICAgICMgICAgIChSZWZlciB0byB0aGUg QXV0b2NvbmYgTWFudWFsLCBzZWN0aW9uICJMaW1pdGF0aW9uIG9mCiAgICAgICMgICAgIE1ha2Ui LCBwYXJhZ3JhcGggIlZQQVRIIiwgaXRlbSAidGFyZ2V0IGxvb2t1cCIsIGZvcgogICAgICAjICAg ICBhbiBhY2NvdW50IG9mIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZXNlCiAgICAgICMgICAg IGltcGxlbWVudGF0aW9ucy4pCiAgICAgICMgICAqIFRoZSBHTlUgQ29kaW5nIFN0YW5kYXJkcyBy ZXF1aXJlIHRoZXNlIGZpbGVzIHRvIGJlIGJ1aWx0CiAgICAgICMgICAgIGluIHRoZSBzb3VyY2Ut dHJlZSAod2hlbiB0aGV5IGFyZSBkaXN0cmlidXRlZCwgdGhhdCBpcykuCiAgICAgICMgICAqIEtl ZXBpbmcgYSBmcmVzaGVyIGNvcHkgb2YgZGlzdHJpYnV0ZWQgZmlsZXMgaW4gdGhlCiAgICAgICMg ICAgIGJ1aWxkIHRyZWUgY2FuIGJlIGFubm95aW5nIGR1cmluZyBkZXZlbG9wbWVudCBiZWNhdXNl CiAgICAgICMgICAgIC0gaWYgdGhlIGZpbGVzIGFyZSBrZXB0IHVuZGVyIHZlcnNpb24gY29udHJv bCwgeW91IHJlYWxseQogICAgICAjICAgICAgICB3YW50IHRoZW0gdG8gYmUgdXBkYXRlZCBpbiB0 aGUgc291cmNlIHRyZWUsIGFuZAogICAgICAjICAgICAtIGl0IGlzIGNvbmZ1c2luZyB0aGF0ICdt YWtlIGRpc3RjbGVhbicgZG9lcyBub3QgZXJhc2UKICAgICAgIyAgICAgICBhbGwgZmlsZXMgaW4g dGhlIGJ1aWxkIHRyZWUuCiAgICAgICMKICAgICAgIyBDb25zZXF1ZW50bHksIHN0YXJ0aW5nIHdp dGggQXV0b21ha2UgMS44LCAuaW5mbyBmaWxlcyBhcmUKICAgICAgIyBidWlsdCBpbiB0aGUgc291 cmNlIHRyZWUgYWdhaW4uICBCZWNhdXNlIHdlIHN0aWxsIHBsYW4gdG8KICAgICAgIyBzdXBwb3J0 IG5vbi1kaXN0cmlidXRlZCAuaW5mbyBmaWxlcyBhdCBzb21lIHBvaW50LCB3ZQogICAgICAjIGhh dmUgYSBzaW5nbGUgdmFyaWFibGUgKCRJTlNSQykgdGhhdCBjb250cm9scyB3aGV0aGVyCiAgICAg ICMgdGhlIGN1cnJlbnQgLmluZm8gZmlsZSBtdXN0IGJlIGJ1aWx0IGluIHRoZSBzb3VyY2UgdHJl ZQogICAgICAjIG9yIGluIHRoZSBidWlsZCB0cmVlLiAgQWN0dWFsbHkgdGhpcyB2YXJpYWJsZSBp cyBzd2l0Y2hlZAogICAgICAjIG9mZiBpbiB0d28gY2FzZXM6CiAgICAgICMgICgxKSBGb3IgJy5p bmZvJyBmaWxlcyB0aGF0IGFwcGVhciB0byBiZSBjbGVhbmVkOyB0aGlzIGlzIGZvcgogICAgICAj ICAgICAgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoIHBhY2thZ2Ugc3VjaCBhcyBUZXhpbmZv LAogICAgICAjICAgICAgd2hpY2ggZG8gdGhpbmdzIGxpa2UKICAgICAgIyAgICAgICAgaW5mb19U RVhJTkZPUyA9IHRleGluZm8udHhpIGluZm8tc3RuZC50ZXhpIGluZm8udGV4aQogICAgICAjICAg ICAgICBESVNUQ0xFQU5GSUxFUyA9IHRleGluZm8gdGV4aW5mby0qIGluZm8qLmluZm8qCiAgICAg ICMgICAgICAgICMgRG8gbm90IGNyZWF0ZSBpbmZvIGZpbGVzIGZvciBkaXN0cmlidXRpb24uCiAg ICAgICMgICAgICAgIGRpc3QtaW5mbzoKICAgICAgIyAgICAgIGluIG9yZGVyIG5vdCB0byBkaXN0 cmlidXRlIC5pbmZvIGZpbGVzLgogICAgICAjICAoMikgV2hlbiB0aGUgdW5kb2N1bWVudGVkIG9w dGlvbiAnaW5mby1pbi1idWlsZGRpcicgaXMgZ2l2ZW4uCiAgICAgICMgICAgICBUaGlzIGlzIGRv bmUgdG8gYWxsb3cgdGhlIGRldmVsb3BlcnMgb2YgR0NDLCBHREIsIEdOVQogICAgICAjICAgICAg YmludXRpbHMgYW5kIHRoZSBHTlUgYmZkIGxpYnJhcnkgdG8gZm9yY2UgdGhlICcuaW5mbycgZmls ZXMKICAgICAgIyAgICAgIHRvIGJlIGdlbmVyYXRlZCBpbiB0aGUgYnVpbGRkaXIgcmF0aGVyIHRo YW4gdGhlIHNyY2RpciwgYXMKICAgICAgIyAgICAgIHdhcyBvbmNlIGRvbmUgd2hlbiB0aGUgKG5v dyByZW1vdmVkKSAnY3lnbnVzJyBvcHRpb24gd2FzCiAgICAgICMgICAgICBnaXZlbi4gIFNlZSBh dXRvbWFrZSBidWcjMTEwMzQgZm9yIG1vcmUgZGlzY3Vzc2lvbi4KICAgICAgbXkgJGluc3JjID0g MTsKICAgICAgbXkgJHNvdXRkaXIgPSAnJChzcmNkaXIpLycgLiAkb3V0ZGlyOwoKICAgICAgaWYg KG9wdGlvbiAnaW5mby1pbi1idWlsZGRpcicpCiAgICAgICAgewogICAgICAgICAgJGluc3JjID0g MDsKICAgICAgICB9CiAgICAgIGVsc2lmICgkb3V0X2ZpbGUgPX4gJHVzZXJfY2xlYW5lZF9maWxl cykKICAgICAgICB7CiAgICAgICAgICAkaW5zcmMgPSAwOwogICAgICAgICAgbXNnICdvYnNvbGV0 ZScsICIkYW1fZmlsZS5hbSIsIDw8RU9GOwpPb3BzIQogICAgSXQgYXBwZWFycyB0aGlzIGZpbGUg KG9yIGZpbGVzIGluY2x1ZGVkIGJ5IGl0KSBhcmUgdHJpZ2dlcmluZwogICAgYW4gdW5kb2N1bWVu dGVkLCBzb29uLXRvLWJlLXJlbW92ZWQgYXV0b21ha2UgaGFjay4KICAgIEZ1dHVyZSBhdXRvbWFr ZSB2ZXJzaW9ucyB3aWxsIG5vIGxvbmdlciBwbGFjZSBpbiB0aGUgYnVpbGRkaXIKICAgIChyYXRo ZXIgdGhhbiBpbiB0aGUgc3JjZGlyKSB0aGUgZ2VuZXJhdGVkICcuaW5mbycgZmlsZXMgdGhhdAog ICAgYXBwZWFyIHRvIGJlIGNsZWFuZWQsIGJ5IGUuZy4gYmVpbmcgbGlzdGVkIGluIENMRUFORklM RVMgb3IKICAgIERJU1RDTEVBTkZJTEVTLgogICAgSWYgeW91IHdhbnQgeW91ciAnLmluZm8nIGZp bGVzIHRvIGJlIHBsYWNlZCBpbiB0aGUgYnVpbGRkaXIKICAgIHJhdGhlciB0aGFuIGluIHRoZSBz cmNkaXIsIHlvdSBoYXZlIHRvIHVzZSB0aGUgc2hpbnkgbmV3CiAgICAnaW5mby1pbi1idWlsZGRp cicgYXV0b21ha2Ugb3B0aW9uLgpFT0YKICAgICAgICB9CgogICAgICAkb3V0ZGlyID0gJHNvdXRk aXIgaWYgJGluc3JjOwoKICAgICAgIyBJZiB1c2VyIHNwZWNpZmllZCBmaWxlX1RFWElORk9TLCB0 aGVuIHVzZSB0aGF0IGFzIGV4cGxpY2l0CiAgICAgICMgZGVwZW5kZW5jeSBsaXN0LgogICAgICBA dGV4aV9kZXBzID0gKCk7CiAgICAgIHB1c2ggKEB0ZXhpX2RlcHMsICIke3NvdXRkaXJ9JHt2dGV4 aX0iKSBpZiAkdnRleGk7CgogICAgICBteSAkY2Fub25pY2FsID0gY2Fub25pY2FsaXplICgkaW5m b2Jhc2UpOwogICAgICBpZiAodmFyICgkY2Fub25pY2FsIC4gIl9URVhJTkZPUyIpKQoJewoJICBw dXNoIChAdGV4aV9kZXBzLCAnJCgnIC4gJGNhbm9uaWNhbCAuICdfVEVYSU5GT1MpJyk7CgkgIHB1 c2hfZGlzdF9jb21tb24gKCckKCcgLiAkY2Fub25pY2FsIC4gJ19URVhJTkZPUyknKTsKCX0KCiAg ICAgIG15ICgkZGlyc3RhbXAsIEBjZmlsZXMpID0KCW91dHB1dF90ZXhpbmZvX2J1aWxkX3J1bGVz ICgkdGV4aSwgJG91dF9maWxlLCAkaW5zcmMsIEB0ZXhpX2RlcHMpOwogICAgICBwdXNoIChAdGV4 aV9jbGVhbnMsIEBjZmlsZXMpOwoKICAgICAgcHVzaCAoQGluZm9fZGVwc19saXN0LCAkb3V0X2Zp bGUpOwoKICAgICAgIyBJZiBhIHZlcnMqLnRleGkgZmlsZSBpcyBuZWVkZWQsIGVtaXQgdGhlIHJ1 bGUuCiAgICAgIGlmICgkdnRleGkpCgl7CgkgIGVycl9hbSAoIickdnRleGknLCBpbmNsdWRlZCBp biAnJHRleGknLCAiCgkJICAuICJhbHNvIGluY2x1ZGVkIGluICckdmVyc2lvbnN7JHZ0ZXhpfSci KQoJICAgIGlmIGRlZmluZWQgJHZlcnNpb25zeyR2dGV4aX07CgkgICR2ZXJzaW9uc3skdnRleGl9 ID0gJHRleGk7CgoJICAjIFdlIG51bWJlciB0aGUgc3RhbXAtdnRpIGZpbGVzLiAgVGhpcyBpcyBk b2FibGUgc2luY2UgdGhlCgkgICMgYWN0dWFsIG5hbWVzIGRvbid0IG1hdHRlciBtdWNoLiAgV2Ug b25seSBudW1iZXIgc3RhcnRpbmcKCSAgIyB3aXRoIHRoZSBzZWNvbmQgb25lLCBzbyB0aGF0IHRo ZSBjb21tb24gY2FzZSBsb29rcyBuaWNlLgoJICBteSAkdnRpID0gKCRkb25lID8gJGRvbmUgOiAn dnRpJyk7CgkgICsrJGRvbmU7CgoJICAjIFRoaXMgaXMgdWdseSwgYnV0IGl0IGlzIG91ciBoaXN0 b3JpY2FsIHByYWN0aWNlLgoJICBpZiAoJGNvbmZpZ19hdXhfZGlyX3NldF9pbl9jb25maWd1cmVf YWMpCgkgICAgewoJICAgICAgcmVxdWlyZV9jb25mX2ZpbGVfd2l0aF9tYWNybyAoVFJVRSwgJ2lu Zm9fVEVYSU5GT1MnLCBGT1JFSUdOLAoJCQkJCSAgICAnbWRhdGUtc2gnKTsKCSAgICB9CgkgIGVs c2UKCSAgICB7CgkgICAgICByZXF1aXJlX2ZpbGVfd2l0aF9tYWNybyAoVFJVRSwgJ2luZm9fVEVY SU5GT1MnLAoJCQkJICAgICAgIEZPUkVJR04sICdtZGF0ZS1zaCcpOwoJICAgIH0KCgkgIG15ICRj b25mX2RpcjsKCSAgaWYgKCRjb25maWdfYXV4X2Rpcl9zZXRfaW5fY29uZmlndXJlX2FjKQoJICAg IHsKCSAgICAgICRjb25mX2RpciA9ICIkYW1fY29uZmlnX2F1eF9kaXIvIjsKCSAgICB9CgkgIGVs c2UKCSAgICB7CgkgICAgICAkY29uZl9kaXIgPSAnJChzcmNkaXIpLyc7CgkgICAgfQoJICAkb3V0 cHV0X3J1bGVzIC49IGZpbGVfY29udGVudHMgKCd0ZXhpLXZlcnMnLAoJCQkJCSAgbmV3IEF1dG9t YWtlOjpMb2NhdGlvbiwKCQkJCQkgIFRFWEkgICAgID0+ICR0ZXhpLAoJCQkJCSAgVlRJICAgICAg PT4gJHZ0aSwKCQkJCQkgIFNUQU1QVlRJID0+ICIke3NvdXRkaXJ9c3RhbXAtJHZ0aSIsCgkJCQkJ ICBWVEVYSSAgICA9PiAiJHNvdXRkaXIkdnRleGkiLAoJCQkJCSAgTURESVIgICAgPT4gJGNvbmZf ZGlyLAoJCQkJCSAgRElSU1RBTVAgPT4gJGRpcnN0YW1wKTsKCX0KICAgIH0KCiAgIyBIYW5kbGUg bG9jYXRpb24gb2YgdGV4aW5mby50ZXguCiAgbXkgJG5lZWRfdGV4aV9maWxlID0gMDsKICBteSAk dGV4aW5mb2RpcjsKICBpZiAodmFyICgnVEVYSU5GT19URVgnKSkKICAgIHsKICAgICAgIyBUaGUg dXNlciBkZWZpbmVkIFRFWElORk9fVEVYIHNvIGFzc3VtZSBoZSBrbm93cyB3aGF0IGhlIGlzCiAg ICAgICMgZG9pbmcuCiAgICAgICR0ZXhpbmZvZGlyID0gKCckKHNyY2RpcikvJwoJCSAgICAgLiBk aXJuYW1lICh2YXJpYWJsZV92YWx1ZSAoJ1RFWElORk9fVEVYJykpKTsKICAgIH0KICBlbHNpZiAo JGNvbmZpZ19hdXhfZGlyX3NldF9pbl9jb25maWd1cmVfYWMpCiAgICB7CiAgICAgICR0ZXhpbmZv ZGlyID0gJGFtX2NvbmZpZ19hdXhfZGlyOwogICAgICBkZWZpbmVfdmFyaWFibGUgKCdURVhJTkZP X1RFWCcsICIkdGV4aW5mb2Rpci90ZXhpbmZvLnRleCIsIElOVEVSTkFMKTsKICAgICAgJG5lZWRf dGV4aV9maWxlID0gMjsgIyBzbyB0aGF0IHdlIHJlcXVpcmVfY29uZl9maWxlIGxhdGVyCiAgICB9 CiAgZWxzZQogICAgewogICAgICAkdGV4aW5mb2RpciA9ICckKHNyY2RpciknOwogICAgICAkbmVl ZF90ZXhpX2ZpbGUgPSAxOwogICAgfQogIGRlZmluZV92YXJpYWJsZSAoJ2FtX19URVhJTkZPX1RF WF9ESVInLCAkdGV4aW5mb2RpciwgSU5URVJOQUwpOwoKICBwdXNoIChAZGlzdF90YXJnZXRzLCAn ZGlzdC1pbmZvJyk7CgogIGlmICghIG9wdGlvbiAnbm8taW5zdGFsbGluZm8nKQogICAgewogICAg ICAjIE1ha2Ugc3VyZSBkb2N1bWVudGF0aW9uIGlzIG1hZGUgYW5kIGluc3RhbGxlZCBmaXJzdC4g IFVzZQogICAgICAjICQoSU5GT19ERVBTKSwgbm90ICdpbmZvJywgYmVjYXVzZSBvdGhlcndpc2Ug cmVjdXJzaXZlIG1ha2VzCiAgICAgICMgZ2V0IHJ1biB0d2ljZSBkdXJpbmcgIm1ha2UgYWxsIi4K ICAgICAgdW5zaGlmdCAoQGFsbCwgJyQoSU5GT19ERVBTKScpOwogICAgfQoKICBkZWZpbmVfZmls ZXNfdmFyaWFibGUgKCJEVklTIiwgQGluZm9iYXNlLCAnZHZpJywgSU5URVJOQUwpOwogIGRlZmlu ZV9maWxlc192YXJpYWJsZSAoIlBERlMiLCBAaW5mb2Jhc2UsICdwZGYnLCBJTlRFUk5BTCk7CiAg ZGVmaW5lX2ZpbGVzX3ZhcmlhYmxlICgiUFNTIiwgQGluZm9iYXNlLCAncHMnLCBJTlRFUk5BTCk7 CiAgZGVmaW5lX2ZpbGVzX3ZhcmlhYmxlICgiSFRNTFMiLCBAaW5mb2Jhc2UsICdodG1sJywgSU5U RVJOQUwpOwoKICAjIFRoaXMgbmV4dCBpc24ndCBzdHJpY3RseSBuZWVkZWQgbm93IC0tIHRoZSBw bGFjZXMgdGhhdCBsb29rIGhlcmUKICAjIGNvdWxkIGVhc2lseSBiZSBjaGFuZ2VkIHRvIGxvb2sg aW4gaW5mb19URVhJTkZPUy4gIEJ1dCB0aGlzIGlzCiAgIyBwcm9iYWJseSBiZXR0ZXIsIGluIGNh c2Ugbm9pbnN0X1RFWElORk9TIGlzIGV2ZXIgc3VwcG9ydGVkLgogIGRlZmluZV92YXJpYWJsZSAo IlRFWElORk9TIiwgdmFyaWFibGVfdmFsdWUgKCdpbmZvX1RFWElORk9TJyksIElOVEVSTkFMKTsK CiAgIyBEbyBzb21lIGVycm9yIGNoZWNraW5nLiAgTm90ZSB0aGF0IHRoaXMgZmlsZSBpcyBub3Qg cmVxdWlyZWQKICAjIHdoZW4gaW4gQ3lnbnVzIG1vZGU7IGluc3RlYWQgd2UgZGVmaW5lZCBURVhJ TkZPX1RFWCBleHBsaWNpdGx5CiAgIyB1cCBhYm92ZS4KICBpZiAoJG5lZWRfdGV4aV9maWxlICYm ICEgb3B0aW9uICduby10ZXhpbmZvLnRleCcpCiAgICB7CiAgICAgIGlmICgkbmVlZF90ZXhpX2Zp bGUgPiAxKQoJewoJICByZXF1aXJlX2NvbmZfZmlsZV93aXRoX21hY3JvIChUUlVFLCAnaW5mb19U RVhJTkZPUycsIEZPUkVJR04sCgkJCQkJJ3RleGluZm8udGV4Jyk7Cgl9CiAgICAgIGVsc2UKCXsK CSAgcmVxdWlyZV9maWxlX3dpdGhfbWFjcm8gKFRSVUUsICdpbmZvX1RFWElORk9TJywgRk9SRUlH TiwKCQkJCSAgICd0ZXhpbmZvLnRleCcpOwoJfQogICAgfQoKICByZXR1cm4gKG1ha2VmaWxlX3dy YXAgKCIiLCAiXHQgICIsIEBtb3N0bHlfY2xlYW5zKSwKCSAgbWFrZWZpbGVfd3JhcCAoIiIsICJc dCAgIiwgQHRleGlfY2xlYW5zKSwKCSAgbWFrZWZpbGVfd3JhcCAoIiIsICJcdCAgIiwgQG1haW50 X2NsZWFucykpOwp9CgoKc3ViIGhhbmRsZV90ZXhpbmZvICgpCnsKICByZWplY3RfdmFyICdURVhJ TkZPUycsICInVEVYSU5GT1MnIGlzIGFuIGFuYWNocm9uaXNtOyB1c2UgJ2luZm9fVEVYSU5GT1Mn IjsKICAjIEZJWE1FOiBJIHRoaW5rIHRoaXMgaXMgYW4gb2Jzb2xldGUgZnV0dXJlIGZlYXR1cmUg bmFtZS4KICByZWplY3RfdmFyICdodG1sX1RFWElORk9TJywgIkhUTUwgZ2VuZXJhdGlvbiBub3Qg eWV0IHN1cHBvcnRlZCI7CgogIG15ICRpbmZvX3RleGluZm9zID0gdmFyICgnaW5mb19URVhJTkZP UycpOwogIG15ICgkbW9zdGx5Y2xlYW4sICRjbGVhbiwgJG1haW50Y2xlYW4pID0gKCcnLCAnJywg JycpOwogIGlmICgkaW5mb190ZXhpbmZvcykKICAgIHsKICAgICAgZGVmaW5lX3ZlcmJvc2VfdGV4 aW5mbzsKICAgICAgKCRtb3N0bHljbGVhbiwgJGNsZWFuLCAkbWFpbnRjbGVhbikgPSBoYW5kbGVf dGV4aW5mb19oZWxwZXIgKCRpbmZvX3RleGluZm9zKTsKICAgICAgY2hvbXAgJG1vc3RseWNsZWFu OwogICAgICBjaG9tcCAkY2xlYW47CiAgICAgIGNob21wICRtYWludGNsZWFuOwogICAgfQoKICAk b3V0cHV0X3J1bGVzIC49ICBmaWxlX2NvbnRlbnRzICgndGV4aW5mb3MnLAoJCQkJICAgbmV3IEF1 dG9tYWtlOjpMb2NhdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTV9W X0RWSVBTICAgID0+IHZlcmJvc2VfZmxhZygnRFZJUFMnKSwKCQkJCSAgIE1PU1RMWUNMRUFOICAg PT4gJG1vc3RseWNsZWFuLAoJCQkJICAgVEVYSUNMRUFOICAgICA9PiAkY2xlYW4sCgkJCQkgICBN QUlOVENMRUFOICAgID0+ICRtYWludGNsZWFuLAoJCQkJICAgJ0xPQ0FMLVRFWElTJyA9PiAhISRp bmZvX3RleGluZm9zLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRFWElRVUlF VCAgICAgPT4gdmVyYm9zZV9mbGFnKCd0ZXhpbmZvJykpOwp9CgoKc3ViIGhhbmRsZV9tYW5fcGFn ZXMgKCkKewogIHJlamVjdF92YXIgJ01BTlMnLCAiJ01BTlMnIGlzIGFuIGFuYWNocm9uaXNtOyB1 c2UgJ21hbl9NQU5TJyI7CgogICMgRmluZCBhbGwgdGhlIHNlY3Rpb25zIGluIHVzZS4gIFdlIGRv IHRoaXMgYnkgZmlyc3QgbG9va2luZyBmb3IKICAjICJzdGFuZGFyZCIgc2VjdGlvbnMsIGFuZCB0 aGVuIGxvb2tpbmcgZm9yIGFueSBhZGRpdGlvbmFsCiAgIyBzZWN0aW9ucyB1c2VkIGluIG1hbl9N QU5TLgogIG15ICglc2VjdGlvbnMsICVub3RyYW5zX3NlY3Rpb25zLCAldHJhbnNfc2VjdGlvbnMs CiAgICAgICVub3RyYW5zX3ZhcnMsICV0cmFuc192YXJzLCAlbm90cmFuc19zZWN0X3ZhcnMsICV0 cmFuc19zZWN0X3ZhcnMpOwogICMgV2UgaGFuZGxlIG5vZGlzdF8gZm9yIHVuaWZvcm1pdHkuICBt YW4gcGFnZXMgYXJlbid0IGRpc3RyaWJ1dGVkCiAgIyBieSBkZWZhdWx0IHNvIGl0IGlzbid0IGFj dHVhbGx5IHZlcnkgaW1wb3J0YW50LgogIGZvcmVhY2ggbXkgJG5wZnggKCcnLCAnbm90cmFuc18n KQogICAgewogICAgICBmb3JlYWNoIG15ICRwZnggKCcnLCAnZGlzdF8nLCAnbm9kaXN0XycpCgl7 CgkgICMgQWRkIG1vcmUgc2VjdGlvbnMgYXMgbmVlZGVkLgoJICBmb3JlYWNoIG15ICRzZWN0aW9u ICgnMCcuLic5JywgJ24nLCAnbCcpCgkgICAgewoJICAgICAgbXkgJHZhcm5hbWUgPSAkbnBmeCAu ICRwZnggLiAnbWFuJyAuICRzZWN0aW9uIC4gJ19NQU5TJzsKCSAgICAgIGlmICh2YXIgKCR2YXJu YW1lKSkKCQl7CgkJICAkc2VjdGlvbnN7JHNlY3Rpb259ID0gMTsKCQkgICR2YXJuYW1lID0gJyQo JyAuICR2YXJuYW1lIC4gJyknOwoJCSAgaWYgKCRucGZ4IGVxICdub3RyYW5zXycpCgkJICAgIHsK CQkgICAgICAkbm90cmFuc19zZWN0aW9uc3skc2VjdGlvbn0gPSAxOwoJCSAgICAgICRub3RyYW5z X3NlY3RfdmFyc3skdmFybmFtZX0gPSAxOwoJCSAgICB9CgkJICBlbHNlCgkJICAgIHsKCQkgICAg ICAkdHJhbnNfc2VjdGlvbnN7JHNlY3Rpb259ID0gMTsKCQkgICAgICAkdHJhbnNfc2VjdF92YXJz eyR2YXJuYW1lfSA9IDE7CgkJICAgIH0KCgkJICBwdXNoX2Rpc3RfY29tbW9uICgkdmFybmFtZSkK CQkgICAgaWYgJHBmeCBlcSAnZGlzdF8nOwoJCX0KCSAgICB9CgoJICBteSAkdmFybmFtZSA9ICRu cGZ4IC4gJHBmeCAuICdtYW5fTUFOUyc7CgkgIG15ICR2YXIgPSB2YXIgKCR2YXJuYW1lKTsKCSAg aWYgKCR2YXIpCgkgICAgewoJICAgICAgZm9yZWFjaCAoJHZhci0+dmFsdWVfYXNfbGlzdF9yZWN1 cnNpdmUpCgkJewoJCSAgIyBBIHBhZ2UgbGlrZSAnZm9vLjFjJyBnb2VzIGludG8gbWFuMWRpci4K CQkgIGlmICgvXC4oWzAtOWEtel0pKFthLXpdKikkLykKCQkgICAgewoJCSAgICAgICRzZWN0aW9u c3skMX0gPSAxOwoJCSAgICAgIGlmICgkbnBmeCBlcSAnbm90cmFuc18nKQoJCQl7CgkJCSAgJG5v dHJhbnNfc2VjdGlvbnN7JDF9ID0gMTsKCQkJfQoJCSAgICAgIGVsc2UKCQkJewoJCQkgICR0cmFu c19zZWN0aW9uc3skMX0gPSAxOwoJCQl9CgkJICAgIH0KCQl9CgoJICAgICAgJHZhcm5hbWUgPSAn JCgnIC4gJHZhcm5hbWUgLiAnKSc7CgkgICAgICBpZiAoJG5wZnggZXEgJ25vdHJhbnNfJykKCQl7 CgkJICAkbm90cmFuc192YXJzeyR2YXJuYW1lfSA9IDE7CgkJfQoJICAgICAgZWxzZQoJCXsKCQkg ICR0cmFuc192YXJzeyR2YXJuYW1lfSA9IDE7CgkJfQoJICAgICAgcHVzaF9kaXN0X2NvbW1vbiAo JHZhcm5hbWUpCgkJaWYgJHBmeCBlcSAnZGlzdF8nOwoJICAgIH0KCX0KICAgIH0KCiAgcmV0dXJu IHVubGVzcyAlc2VjdGlvbnM7CgogIG15IEB1bnNvcnRlZF9kZXBzOwoKICAjIEJ1aWxkIHNlY3Rp b24gaW5kZXBlbmRlbnQgdmFyaWFibGVzLgogIG15ICRoYXZlX25vdHJhbnMgPSAlbm90cmFuc192 YXJzOwogIG15IEBub3RyYW5zX2xpc3QgPSBzb3J0IGtleXMgJW5vdHJhbnNfdmFyczsKICBteSAk aGF2ZV90cmFucyA9ICV0cmFuc192YXJzOwogIG15IEB0cmFuc19saXN0ID0gc29ydCBrZXlzICV0 cmFuc192YXJzOwoKICAjIE5vdyBmb3IgZWFjaCBzZWN0aW9uLCBnZW5lcmF0ZSBhbiBpbnN0YWxs IGFuZCB1bmluc3RhbGwgcnVsZS4KICAjIFNvcnQgc2VjdGlvbnMgc28gb3V0cHV0IGlzIGRldGVy bWluaXN0aWMuCiAgZm9yZWFjaCBteSAkc2VjdGlvbiAoc29ydCBrZXlzICVzZWN0aW9ucykKICAg IHsKICAgICAgIyBCdWlsZCBzZWN0aW9uIGRlcGVuZGVudCB2YXJpYWJsZXMuCiAgICAgIG15ICRu b3RyYW5zX21hbnMgPSAkaGF2ZV9ub3RyYW5zIHx8IGV4aXN0cyAkbm90cmFuc19zZWN0aW9uc3sk c2VjdGlvbn07CiAgICAgIG15ICR0cmFuc19tYW5zID0gJGhhdmVfdHJhbnMgfHwgZXhpc3RzICR0 cmFuc19zZWN0aW9uc3skc2VjdGlvbn07CiAgICAgIG15ICglbm90cmFuc190aGlzX3NlY3QsICV0 cmFuc190aGlzX3NlY3QpOwogICAgICBteSAkZXhwciA9ICdtYW4nIC4gJHNlY3Rpb24gLiAnX01B TlMnOwogICAgICBmb3JlYWNoIG15ICR2YXJuYW1lIChrZXlzICVub3RyYW5zX3NlY3RfdmFycykg IyBzb3J0IGtleXMgbm90IG5lZWRlZAoJewoJICBpZiAoJHZhcm5hbWUgPX4gLyRleHByLykKCSAg ICB7CgkgICAgICAkbm90cmFuc190aGlzX3NlY3R7JHZhcm5hbWV9ID0gMTsKCSAgICB9Cgl9CiAg ICAgIGZvcmVhY2ggbXkgJHZhcm5hbWUgKGtleXMgJXRyYW5zX3NlY3RfdmFycykgIyBzb3J0IGtl eXMgbm90IG5lZWRlZAoJewoJICBpZiAoJHZhcm5hbWUgPX4gLyRleHByLykKCSAgICB7CgkgICAg ICAkdHJhbnNfdGhpc19zZWN0eyR2YXJuYW1lfSA9IDE7CgkgICAgfQoJfQogICAgICBteSBAbm90 cmFuc19zZWN0X2xpc3QgPSBzb3J0IGtleXMgJW5vdHJhbnNfdGhpc19zZWN0OwogICAgICBteSBA dHJhbnNfc2VjdF9saXN0ID0gc29ydCBrZXlzICV0cmFuc190aGlzX3NlY3Q7CiAgICAgIEB1bnNv cnRlZF9kZXBzID0gKGtleXMgJW5vdHJhbnNfdmFycywga2V5cyAldHJhbnNfdmFycywKICAgICAg ICAgICAgICAgICAgICAgICAga2V5cyAlbm90cmFuc190aGlzX3NlY3QsIGtleXMgJXRyYW5zX3Ro aXNfc2VjdCk7CiAgICAgIG15IEBkZXBzID0gc29ydCBAdW5zb3J0ZWRfZGVwczsKICAgICAgJG91 dHB1dF9ydWxlcyAuPSBmaWxlX2NvbnRlbnRzICgnbWFucycsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbmV3IEF1dG9tYWtlOjpMb2NhdGlvbiwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTRUNUSU9OICAgICAgICAgICA9PiAkc2VjdGlvbiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBERVBTICAgICAgICAgICAgICA9PiAi QGRlcHMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5PVFJBTlNfTUFO UyAgICAgID0+ICRub3RyYW5zX21hbnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTk9UUkFOU19TRUNUX0xJU1QgPT4gIkBub3RyYW5zX3NlY3RfbGlzdCIsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSEFWRV9OT1RSQU5TICAgICAgPT4gJGhhdmVf bm90cmFucywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOT1RSQU5TX0xJ U1QgICAgICA9PiAiQG5vdHJhbnNfbGlzdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgVFJBTlNfTUFOUyAgICAgICAgPT4gJHRyYW5zX21hbnMsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgVFJBTlNfU0VDVF9MSVNUICAgPT4gIkB0cmFuc19zZWN0 X2xpc3QiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhBVkVfVFJBTlMg ICAgICAgID0+ICRoYXZlX3RyYW5zLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFRSQU5TX0xJU1QgICAgICAgID0+ICJAdHJhbnNfbGlzdCIpOwogICAgfQoKICBAdW5zb3J0 ZWRfZGVwcyAgPSAoa2V5cyAlbm90cmFuc192YXJzLCBrZXlzICV0cmFuc192YXJzLAogICAgICAg ICAgICAgICAgICAgICBrZXlzICVub3RyYW5zX3NlY3RfdmFycywga2V5cyAldHJhbnNfc2VjdF92 YXJzKTsKICBteSBAbWFucyA9IHNvcnQgQHVuc29ydGVkX2RlcHM7CiAgJG91dHB1dF92YXJzIC49 IGZpbGVfY29udGVudHMgKCdtYW5zLXZhcnMnLAoJCQkJIG5ldyBBdXRvbWFrZTo6TG9jYXRpb24s CgkJCQkgTUFOUyA9PiAiQG1hbnMiKTsKCiAgcHVzaCAoQGFsbCwgJyQoTUFOUyknKQogICAgdW5s ZXNzIG9wdGlvbiAnbm8taW5zdGFsbG1hbic7Cn0KCgpzdWIgaGFuZGxlX2RhdGEgKCkKewogICAg YW1faW5zdGFsbF92YXIgKCctbm9leHRyYScsICctY2FuZGlzdCcsICdkYXRhJywgJ0RBVEEnLAog ICAgICAgICAgICAgICAgICAgICdkYXRhJywgJ2RhdGFyb290JywgJ2RvYycsICdkdmknLCAnaHRt bCcsICdwZGYnLAogICAgICAgICAgICAgICAgICAgICdwcycsICdzeXNjb25mJywgJ3NoYXJlZHN0 YXRlJywgJ2xvY2Fsc3RhdGUnLAogICAgICAgICAgICAgICAgICAgICdwa2dkYXRhJywgJ2xpc3An LCAnbm9pbnN0JywgJ2NoZWNrJyk7Cn0KCgpzdWIgaGFuZGxlX3RhZ3MgKCkKewogICAgbXkgQGNv bmZpZzsKICAgIGZvcmVhY2ggbXkgJHNwZWMgKEBjb25maWdfaGVhZGVycykKICAgICAgewogICAg ICAgIG15ICgkb3V0LCBAaW5zKSA9IHNwbGl0X2NvbmZpZ19maWxlX3NwZWMgKCRzcGVjKTsKCWZv cmVhY2ggbXkgJGluIChAaW5zKQoJICB7CiAgICAgICAgICAgICMgSWYgdGhlIGNvbmZpZyBoZWFk ZXIgc291cmNlIGlzIGluIHRoaXMgZGlyZWN0b3J5LAoJICAgICMgcmVxdWlyZSBpdC4KCSAgICBw dXNoIEBjb25maWcsIGJhc2VuYW1lICgkaW4pCiAgICAgICAgICAgICAgaWYgJHJlbGF0aXZlX2Rp ciBlcSBkaXJuYW1lICgkaW4pOwoJICAgfQogICAgICB9CgogICAgZGVmaW5lX3ZhcmlhYmxlICgn YW1fX3RhZ2dlZF9maWxlcycsCiAgICAgICAgICAgICAgICAgICAgICckKEhFQURFUlMpICQoU09V UkNFUykgJChUQUdTX0ZJTEVTKSAkKExJU1ApJwogICAgICAgICAgICAgICAgICAgICAuICIgQGNv bmZpZyIsIElOVEVSTkFMKTsKCiAgICBpZiAocnZhcignYW1fX3RhZ2dlZF9maWxlcycpLT52YWx1 ZV9hc19saXN0X3JlY3Vyc2l2ZQogICAgICAgICAgfHwgdmFyICgnRVRBR1NfQVJHUycpIHx8IHZh ciAoJ1NVQkRJUlMnKSkKICAgICAgewoJJG91dHB1dF9ydWxlcyAuPSBmaWxlX2NvbnRlbnRzICgn dGFncycsIG5ldyBBdXRvbWFrZTo6TG9jYXRpb24pOwoJc2V0X3NlZW4gJ1RBR1NfREVQRU5ERU5D SUVTJzsKICAgICAgfQogICAgZWxzZQogICAgICB7CiAgICAgICAgcmVqZWN0X3ZhciAoJ1RBR1Nf REVQRU5ERU5DSUVTJywKCQkgICAgIml0IGRvZXNuJ3QgbWFrZSBzZW5zZSB0byBkZWZpbmUgJ1RB R1NfREVQRU5ERU5DSUVTJyIKCQkgICAgLiAiIHdpdGhvdXRcbnNvdXJjZXMgb3IgJ0VUQUdTX0FS R1MnIik7CgkjIEV2ZXJ5IE1ha2VmaWxlIG11c3QgZGVmaW5lIHNvbWUgc29ydCBvZiBUQUdTIHJ1 bGUuCgkjIE90aGVyd2lzZSwgaXQgd291bGQgYmUgcG9zc2libGUgZm9yIGEgdG9wLWxldmVsICJt YWtlIFRBR1MiCgkjIHRvIGZhaWwgYmVjYXVzZSBzb21lIHN1YmRpcmVjdG9yeSBmYWlsZWQuICBE aXR0byBjdGFncyBhbmQKICAgICAgICAjIGNzY29wZS4KICAgICAgICAkb3V0cHV0X3J1bGVzIC49 CiAgICAgICAgICAidGFncyBUQUdTOlxuXG4iIC4KICAgICAgICAgICJjdGFncyBDVEFHUzpcblxu IiAuCiAgICAgICAgICAiY3Njb3BlIGNzY29wZWxpc3Q6XG5cbiI7CiAgICAgIH0KfQoKCiMgdXNl cl9waG9ueV9ydWxlICgkTkFNRSkKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFJldHVybiBm YWxzZSBpZiBydWxlICROQU1FIGRvZXMgbm90IGV4aXN0LiAgT3RoZXJ3aXNlLAojIGRlY2xhcmUg aXQgYXMgcGhvbnksIGNvbXBsZXRlIGl0cyBkZWZpbml0aW9uIChpbiBjYXNlIGl0IGlzCiMgY29u ZGl0aW9uYWwpLCBhbmQgcmV0dXJuIGl0cyBBdXRvbWFrZTo6UnVsZSBpbnN0YW5jZS4Kc3ViIHVz ZXJfcGhvbnlfcnVsZQp7CiAgbXkgKCRuYW1lKSA9IEBfOwogIG15ICRydWxlID0gcnVsZSAkbmFt ZTsKICBpZiAoJHJ1bGUpCiAgICB7CiAgICAgIGRlcGVuZCAoJy5QSE9OWScsICRuYW1lKTsKICAg ICAgIyBEZWZpbmUgJE5BTUUgaW4gYWxsIGNvbmRpdGlvbiB3aGVyZSBpdCBpcyBub3QgYWxyZWFk eSBkZWZpbmVkLAogICAgICAjIHNvIHRoYXQgaXQgaXMgYWx3YXlzIE9LIHRvIGRlcGVuZCBvbiAk TkFNRS4KICAgICAgZm9yIG15ICRjICgkcnVsZS0+bm90X2Fsd2F5c19kZWZpbmVkX2luX2NvbmQg KFRSVUUpLT5jb25kcykKCXsKCSAgQXV0b21ha2U6OlJ1bGU6OmRlZmluZSAoJG5hbWUsICdpbnRl cm5hbCcsIFJVTEVfQVVUT01BS0UsCgkJCQkgICRjLCBJTlRFUk5BTCk7CgkgICRvdXRwdXRfcnVs ZXMgLj0gJGMtPnN1YnN0X3N0cmluZyAuICIkbmFtZTpcbiI7Cgl9CiAgICB9CiAgcmV0dXJuICRy dWxlOwp9CgoKIyBIYW5kbGUgJ2Rpc3QnIHRhcmdldC4Kc3ViIGhhbmRsZV9kaXN0ICgpCnsKICAj IFN1YnN0aXR1dGlvbnMgZm9yIGRpc3RkaXIuYW0KICBteSAldHJhbnNmb3JtOwoKICAjIERlZmlu ZSBESVNUX1NVQkRJUlMuICBUaGlzIG11c3QgYWx3YXlzIGJlIGRvbmUsIHJlZ2FyZGxlc3Mgb2Yg dGhlCiAgIyBuby1kaXN0IHNldHRpbmc6IHRhcmdldCBsaWtlICdkaXN0Y2xlYW4nIG9yICdtYWlu dGFpbmVyLWNsZWFuJyB1c2UgaXQuCiAgbXkgJHN1YmRpcnMgPSB2YXIgKCdTVUJESVJTJyk7CiAg aWYgKCRzdWJkaXJzKQogICAgewogICAgICAjIElmIFNVQkRJUlMgaXMgY29uZGl0aW9uYWxseSBk ZWZpbmVkLCB0aGVuIHNldCBESVNUX1NVQkRJUlMKICAgICAgIyB0byBhbGwgcG9zc2libGUgZGly ZWN0b3JpZXMsIGFuZCB1c2UgaXQuICBJZiBESVNUX1NVQkRJUlMgaXMKICAgICAgIyBkZWZpbmVk LCBqdXN0IHVzZSBpdC4KCiAgICAgICMgTm90ZSB0aGF0IHdlIGNoZWNrIERJU1RfU1VCRElSUyBm aXJzdCBvbiBwdXJwb3NlLCBzbyB0aGF0CiAgICAgICMgd2UgZG9uJ3QgY2FsbCBoYXNfY29uZGl0 aW9uYWxfY29udGVudHMgZm9yIG5vdyByZWFzb24uCiAgICAgICMgKEluIHRoZSBwYXN0IG9uZSBw cm9qZWN0IHVzZWQgc28gbWFueSBjb25kaXRpb25hbCBzdWJkaXJlY3RvcmllcwogICAgICAjIHRo YXQgY2FsbGluZyBoYXNfY29uZGl0aW9uYWxfY29udGVudHMgb24gU1VCRElSUyBjYXVzZWQKICAg ICAgIyBhdXRvbWFrZSB0byBncm93IHRvIDE1ME1iIC0tIHRoaXMgc2hvdWxkIG5vdCBoYXBwZW4g d2l0aAogICAgICAjIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIG9mIGhhc19jb25kaXRpb25h bF9jb250ZW50cywKICAgICAgIyBidXQgaXQncyBtb3JlIGVmZmljaWVudCB0byBhdm9pZCB0aGUg Y2FsbCBhbnl3YXkuKQogICAgICBpZiAodmFyICgnRElTVF9TVUJESVJTJykpCgl7Cgl9CiAgICAg IGVsc2lmICgkc3ViZGlycy0+aGFzX2NvbmRpdGlvbmFsX2NvbnRlbnRzKQoJewoJICBkZWZpbmVf cHJldHR5X3ZhcmlhYmxlCgkgICAgKCdESVNUX1NVQkRJUlMnLCBUUlVFLCBJTlRFUk5BTCwKCSAg ICAgdW5pcSAoJHN1YmRpcnMtPnZhbHVlX2FzX2xpc3RfcmVjdXJzaXZlKSk7Cgl9CiAgICAgIGVs c2UKCXsKCSAgIyBXZSBhbHdheXMgZGVmaW5lIHRoaXMgYmVjYXVzZSB0aGF0IGlzIHdoYXQgJ2Rp c3RjbGVhbicKCSAgIyB3YW50cy4KCSAgZGVmaW5lX3ByZXR0eV92YXJpYWJsZSAoJ0RJU1RfU1VC RElSUycsIFRSVUUsIElOVEVSTkFMLAoJCQkJICAnJChTVUJESVJTKScpOwoJfQogICAgfQoKICAj IFRoZSByZW1haW5pbmcgZGVmaW5pdGlvbnMgYXJlIG9ubHkgcmVxdWlyZWQgd2hlbiBhIGRpc3Qg dGFyZ2V0IGlzIHVzZWQuCiAgcmV0dXJuIGlmIG9wdGlvbiAnbm8tZGlzdCc7CgogICMgQXQgbGVh c3Qgb25lIG9mIHRoZSBhcmNoaXZlIGZvcm1hdHMgbXVzdCBiZSBlbmFibGVkLgogIGlmICgkcmVs YXRpdmVfZGlyIGVxICcuJykKICAgIHsKICAgICAgbXkgJGFyY2hpdmVfZGVmaW5lZCA9IG9wdGlv biAnbm8tZGlzdC1nemlwJyA/IDAgOiAxOwogICAgICAkYXJjaGl2ZV9kZWZpbmVkIHx8PQoJZ3Jl cCB7IG9wdGlvbiAiZGlzdC0kXyIgfSBxdyhzaGFyIHppcCB0YXJaIGJ6aXAyIGJ6aXAzIGx6aXAg eHogenN0ZCk7CiAgICAgIGVycm9yIChvcHRpb24gJ25vLWRpc3QtZ3ppcCcsCgkgICAgICJuby1k aXN0LWd6aXAgc3BlY2lmaWVkIGJ1dCBubyBkaXN0LSogc3BlY2lmaWVkLFxuIgoJICAgICAuICJh dCBsZWFzdCBvbmUgYXJjaGl2ZSBmb3JtYXQgbXVzdCBiZSBlbmFibGVkIikKCXVubGVzcyAkYXJj aGl2ZV9kZWZpbmVkOwogICAgfQoKICAjIExvb2sgZm9yIGNvbW1vbiBmaWxlcyB0aGF0IHNob3Vs ZCBiZSBpbmNsdWRlZCBpbiBkaXN0cmlidXRpb24uCiAgIyBJZiB0aGUgYXV4IGRpciBpcyBzZXQs IGFuZCBpdCBkb2VzIG5vdCBoYXZlIGEgTWFrZWZpbGUuYW0sIHRoZW4KICAjIHdlIGNoZWNrIGZv ciB0aGVzZSBmaWxlcyB0aGVyZSBhcyB3ZWxsLgogIG15ICRjaGVja19hdXggPSAwOwogIGlmICgk cmVsYXRpdmVfZGlyIGVxICcuJwogICAgICAmJiAkY29uZmlnX2F1eF9kaXJfc2V0X2luX2NvbmZp Z3VyZV9hYykKICAgIHsKICAgICAgaWYgKCEgaXNfbWFrZV9kaXIgKCRjb25maWdfYXV4X2Rpcikp Cgl7CgkgICRjaGVja19hdXggPSAxOwoJfQogICAgfQogIGZvcmVhY2ggbXkgJGNmaWxlIChAdG9w bGV2ZWxtZF9vaywgQGNvbW1vbl9maWxlcykKICAgIHsKICAgICAgaWYgKGRpcl9oYXNfY2FzZV9t YXRjaGluZ19maWxlICgkcmVsYXRpdmVfZGlyLCAkY2ZpbGUpCgkgICMgVGhlIGZpbGUgbWlnaHQg YmUgYWJzZW50LCBidXQgaWYgaXQgY2FuIGJlIGJ1aWx0IGl0J3Mgb2suCgkgIHx8IHJ1bGUgJGNm aWxlKQoJewoJICBwdXNoX2Rpc3RfY29tbW9uICgkY2ZpbGUpOwoJfQogICAgICBlbHNpZiAoZ3Jl cCB7ICRfIGVxICRjZmlsZSB9IEB0b3BsZXZlbG1kX29rKQogICAgICAgIHsgIyBJcnJpdGF0aW5n bHksIGhhdmUgdG8gcmVwZWF0IHRoZSBjaGVja3MsIG5vdyBmb3IgLm1kIGZpbGVzOwogICAgICAg ICAgIyB3ZSB3YW50IHRvIHByZWZlciBub24tLm1kLCBzbyBkbyB0aGlzIHNlY29uZCwgYW5kIG9u bHkgImVsc2lmIi4KICAgICAgICAgIGlmIChkaXJfaGFzX2Nhc2VfbWF0Y2hpbmdfZmlsZSAoJHJl bGF0aXZlX2RpciwgIiRjZmlsZS5tZCIpCgkgICAgICB8fCBydWxlICIkY2ZpbGUubWQiKQogIAkg ICAgewoJICAgICAgcHVzaF9kaXN0X2NvbW1vbiAoIiRjZmlsZS5tZCIpOwoJICAgIH0KICAgICAg ICB9CgogICAgICAjIERvbid0IHVzZSAnZWxzaWYnIGhlcmUgYmVjYXVzZSBhIGZpbGUgbWlnaHQg bWVhbmluZ2Z1bGx5CiAgICAgICMgYXBwZWFyIGluIGJvdGggJHJlbGF0aXZlX2RpciBhbmQgJGNv bmZpZ19hdXhfZGlyLgogICAgICBpZiAoJGNoZWNrX2F1eCAmJiBkaXJfaGFzX2Nhc2VfbWF0Y2hp bmdfZmlsZSAoJGNvbmZpZ19hdXhfZGlyLCAkY2ZpbGUpKQoJewoJICBwdXNoX2Rpc3RfY29tbW9u ICgiJGNvbmZpZ19hdXhfZGlyLyRjZmlsZSIpCgl9CiAgICAgIGVsc2lmICgkY2hlY2tfYXV4ICYm IGdyZXAgeyAkXyBlcSAkY2ZpbGUgfSBAdG9wbGV2ZWxtZF9vaykKICAgICAgICB7CiAgICAgICAg ICBpZiAoZGlyX2hhc19jYXNlX21hdGNoaW5nX2ZpbGUgKCRjb25maWdfYXV4X2RpciwgIiRjZmls ZS5tZCIpCgkgICAgICB8fCBydWxlICIkY2ZpbGUubWQiKQogIAkgICAgewoJICAgICAgcHVzaF9k aXN0X2NvbW1vbiAoIiRjZmlsZS5tZCIpOwoJICAgIH0KICAgICAgICB9CiAgICB9CgogICMgV2Ug bWlnaHQgY29weSBlbGVtZW50cyBmcm9tIEBjb25maWd1cmVfZGlzdF9jb21tb24gdG8KICAjIEBk aXN0X2NvbW1vbiBpZiB3ZSB0aGluayB3ZSBuZWVkIHRvLiAgSWYgdGhlIGZpbGUgYXBwZWFycyBp biBvdXIKICAjIGRpcmVjdG9yeSwgd2Ugd291bGQgaGF2ZSBkaXNjb3ZlcmVkIGl0IGFscmVhZHks IHNvIHdlIGRvbid0CiAgIyBjaGVjayB0aGF0LiAgQnV0IGlmIHRoZSBmaWxlIGlzIGluIGEgc3Vi ZGlyIHdpdGhvdXQgYSBNYWtlZmlsZSwKICAjIHdlIHdhbnQgdG8gZGlzdHJpYnV0ZSBpdCBoZXJl IGlmIHdlIGFyZSBkb2luZyAnLicuICBVZ2x5IQogICMgQWxzbywgaW4gc29tZSBjb3JuZXIgY2Fz ZXMsIGl0J3MgcG9zc2libGUgdGhhdCB0aGUgZm9sbG93aW5nIGNvZGUKICAjIHdpbGwgY2F1c2Ug dGhlIHNhbWUgZmlsZSB0byBhcHBlYXIgaW4gdGhlICQoRElTVF9DT01NT04pIHZhcmlhYmxlcwog ICMgb2YgdHdvIGRpc3RpbmN0IE1ha2VmaWxlczsgYnV0IHRoaXMgaXMgbm90IGEgcHJvYmxlbSwg c2luY2UgdGhlCiAgIyAnZGlzdGRpcicgdGFyZ2V0IGluICdsaWIvYW0vZGlzdGRpci5hbScgY2Fu IGRlYWwgd2l0aCB0aGUgc2FtZQogICMgZmlsZSBiZWluZyBkaXN0cmlidXRlZCBtdWx0aXBsZSB0 aW1lcy4KICAjIFNlZSBhbHNvIGF1dG9tYWtlIGJ1ZyM5NjUxLgogIGlmICgkcmVsYXRpdmVfZGly IGVxICcuJykKICAgIHsKICAgICAgZm9yZWFjaCBteSAkZmlsZSAoQGNvbmZpZ3VyZV9kaXN0X2Nv bW1vbikKCXsKCSAgbXkgJGRpciA9IGRpcm5hbWUgKCRmaWxlKTsKCSAgcHVzaF9kaXN0X2NvbW1v biAoJGZpbGUpCgkgICAgaWYgKCRkaXIgZXEgJy4nIHx8ICEgaXNfbWFrZV9kaXIgKCRkaXIpKTsK CX0KICAgICAgQGNvbmZpZ3VyZV9kaXN0X2NvbW1vbiA9ICgpOwogICAgfQoKICAjICQoYW1fX0RJ U1RfQ09NTU9OKTogZmlsZXMgdG8gYmUgZGlzdHJpYnV0ZWQgYXV0b21hdGljYWxseS4gIFdpbGwg YmUKICAjIGFwcGVuZGVkIHRvICQoRElTVF9DT01NT04pIGluIHRoZSBnZW5lcmF0ZWQgTWFrZWZp bGUuCiAgIyBVc2UgJ3NvcnQnIHNvIHRoYXQgdGhlIGV4cGFuc2lvbiBvZiAkKERJU1RfQ09NTU9O KSBpbiB0aGUgZ2VuZXJhdGVkCiAgIyBNYWtlZmlsZSBpcyBkZXRlcm1pbmlzdGljLCBpbiBmYWNl IG9mIG00IGFuZC9vciBwZXJsIHJhbmRvbWl6YXRpb25zCiAgIyAoc2VlIGF1dG9tYWtlIGJ1ZyMx NzkwOCkuCiAgZGVmaW5lX3ByZXR0eV92YXJpYWJsZSAoJ2FtX19ESVNUX0NPTU1PTicsIFRSVUUs IElOVEVSTkFMLAogICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXEgKHNvcnQgQGRpc3RfY29t bW9uKSk7CgogICMgTm93IHRoYXQgd2UndmUgcHJvY2Vzc2VkIEBkaXN0X2NvbW1vbiwgZGlzYWxs b3cgZnVydGhlciBhdHRlbXB0cwogICMgdG8gbW9kaWZ5IGl0LgogICRoYW5kbGVfZGlzdF9ydW4g PSAxOwoKICAkdHJhbnNmb3JteydESVNUQ0hFQ0stSE9PSyd9ID0gISEgcnVsZSAnZGlzdGNoZWNr LWhvb2snOwogICR0cmFuc2Zvcm17J0dFVFRFWFQnfSA9ICRzZWVuX2dldHRleHQgJiYgISRzZWVu X2dldHRleHRfZXh0ZXJuYWw7CgogICMgSWYgdGhlIHRhcmdldCAnZGlzdC1ob29rJyBleGlzdHMs IG1ha2Ugc3VyZSBpdCBpcyBydW4uICBUaGlzCiAgIyBhbGxvd3MgdXNlcnMgdG8gZG8gcmFuZG9t IHdlaXJkIHRoaW5ncyB0byB0aGUgZGlzdHJpYnV0aW9uCiAgIyBiZWZvcmUgaXQgaXMgcGFja2Fn ZWQgdXAuCiAgcHVzaCAoQGRpc3RfdGFyZ2V0cywgJ2Rpc3QtaG9vaycpCiAgICBpZiB1c2VyX3Bo b255X3J1bGUgJ2Rpc3QtaG9vayc7CiAgJHRyYW5zZm9ybXsnRElTVC1UQVJHRVRTJ30gPSBqb2lu ICgnICcsIEBkaXN0X3RhcmdldHMpOwoKICBteSAkZmxtID0gb3B0aW9uICgnZmlsZW5hbWUtbGVu Z3RoLW1heCcpOwogIG15ICRmaWxlbmFtZV9maWx0ZXIgPSAkZmxtID8gJy4nIHggJGZsbS0+WzFd IDogJyc7CgogICRvdXRwdXRfcnVsZXMgLj0gZmlsZV9jb250ZW50cyAoJ2Rpc3RkaXInLAoJCQkJ ICBuZXcgQXV0b21ha2U6OkxvY2F0aW9uLAoJCQkJICAldHJhbnNmb3JtLAoJCQkJICBGSUxFTkFN RV9GSUxURVIgPT4gJGZpbGVuYW1lX2ZpbHRlcik7Cn0KCgojIGNoZWNrX2RpcmVjdG9yeSAoJE5B TUUsICRXSEVSRSBbLCAkUkVMQVRJVkVfRElSID0gIi4iXSkKIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgRW5zdXJlICROQU1FIGlzIGEg ZGlyZWN0b3J5IChpbiAkUkVMQVRJVkVfRElSKSwgYW5kIHRoYXQgaXQgdXNlcyBhIHNhbmUKIyBu YW1lLiAgVXNlICRXSEVSRSBhcyBhIGxvY2F0aW9uIGluIHRoZSBkaWFnbm9zdGljLCBpZiBhbnku CnN1YiBjaGVja19kaXJlY3RvcnkKewogIG15ICgkZGlyLCAkd2hlcmUsICRyZWxkaXIpID0gQF87 CiAgJHJlbGRpciA9ICcuJyB1bmxlc3MgZGVmaW5lZCAkcmVsZGlyOwoKICBlcnJvciAkd2hlcmUs ICJyZXF1aXJlZCBkaXJlY3RvcnkgJHJlbGRpci8kZGlyIGRvZXMgbm90IGV4aXN0IgogICAgdW5s ZXNzIC1kICIkcmVsZGlyLyRkaXIiOwoKICAjIElmIGFuICdvYmovJyBkaXJlY3RvcnkgZXhpc3Rz LCBCU0QgbWFrZSB3aWxsIGVudGVyIGl0IGJlZm9yZQogICMgcmVhZGluZyAnTWFrZWZpbGUnLiAg SGVuY2UgdGhlICdNYWtlZmlsZScgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5CiAgIyB3aWxsIG5v dCBiZSByZWFkLgogICMKICAjICAlIGNhdCBNYWtlZmlsZQogICMgIGFsbDoKICAjICAgICAgICAg IGVjaG8gSGVsbG8KICAjICAlIGNhdCBvYmovTWFrZWZpbGUKICAjICBhbGw6CiAgIyAgICAgICAg ICBlY2hvIFdvcmxkCiAgIyAgJSBtYWtlICAgICAgIyBHTlUgbWFrZQogICMgIGVjaG8gSGVsbG8K ICAjICBIZWxsbwogICMgICUgcG1ha2UgICAgICMgQlNEIG1ha2UKICAjICBlY2hvIFdvcmxkCiAg IyAgV29ybGQKICBtc2cgKCdwb3J0YWJpbGl0eScsICR3aGVyZSwKICAgICAgICJuYW1pbmcgYSBz dWJkaXJlY3RvcnkgJ29iaicgY2F1c2VzIHRyb3VibGVzIHdpdGggQlNEIG1ha2UiKQogICAgaWYg JGRpciBlcSAnb2JqJzsKCiAgIyAnYXV4JyBpcyBwcm9iYWJseSB0aGUgbW9zdCBpbXBvcnRhbnQg b2YgdGhlIGZvbGxvd2luZyBmb3JiaWRkZW4gbmFtZSwKICAjIHNpbmNlIGl0J3MgdGVtcHRpbmcg dG8gdXNlIGl0IGFzIGFuIEFDX0NPTkZJR19BVVhfRElSLgogIG1zZyAoJ3BvcnRhYmlsaXR5Jywg JHdoZXJlLAogICAgICAgIm5hbWUgJyRkaXInIGlzIHJlc2VydmVkIG9uIFczMiBhbmQgRE9TIHBs YXRmb3JtcyIpCiAgICBpZiBncmVwICgvXlxRJGRpclxFJC9pLCBxdy9hdXggbHB0MSBscHQyIGxw dDMgY29tMSBjb20yIGNvbTMgY29tNCBjb24gcHJuLyk7Cn0KCiMgY2hlY2tfZGlyZWN0b3JpZXNf aW5fdmFyICgkVkFSSUFCTEUpCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiMgUmVjdXJzaXZlbHkgY2hlY2sgYWxsIGl0ZW1zIGluIHZhcmlhYmxlcyAkVkFSSUFCTEUgYXMg ZGlyZWN0b3JpZXMKc3ViIGNoZWNrX2RpcmVjdG9yaWVzX2luX3Zhcgp7CiAgbXkgKCR2YXIpID0g QF87CiAgJHZhci0+dHJhdmVyc2VfcmVjdXJzaXZlbHkKICAgIChzdWIKICAgICB7CiAgICAgICBt eSAoJHZhciwgJHZhbCwgJGNvbmQsICRmdWxsX2NvbmQpID0gQF87CiAgICAgICBjaGVja19kaXJl Y3RvcnkgKCR2YWwsICR2YXItPnJkZWYgKCRjb25kKS0+bG9jYXRpb24sICRyZWxhdGl2ZV9kaXIp OwogICAgICAgcmV0dXJuICgpOwogICAgIH0sCiAgICAgdW5kZWYsCiAgICAgc2tpcF9hY19zdWJz dCA9PiAxKTsKfQoKCnN1YiBoYW5kbGVfc3ViZGlycyAoKQp7CiAgbXkgJHN1YmRpcnMgPSB2YXIg KCdTVUJESVJTJyk7CiAgcmV0dXJuCiAgICB1bmxlc3MgJHN1YmRpcnM7CgogIGNoZWNrX2RpcmVj dG9yaWVzX2luX3ZhciAkc3ViZGlyczsKCiAgbXkgJGRzdWJkaXJzID0gdmFyICgnRElTVF9TVUJE SVJTJyk7CiAgY2hlY2tfZGlyZWN0b3JpZXNfaW5fdmFyICRkc3ViZGlycwogICAgaWYgJGRzdWJk aXJzOwoKICAkb3V0cHV0X3J1bGVzIC49IGZpbGVfY29udGVudHMgKCdzdWJkaXJzJywgbmV3IEF1 dG9tYWtlOjpMb2NhdGlvbik7CiAgcnZhciAoJ1JFQ1VSU0lWRV9UQVJHRVRTJyktPnJkZWYgKFRS VUUpLT57J3ByZXR0eSd9ID0gVkFSX1NPUlRFRDsgIyBHcm9zcyEKfQoKCiMgKCRSRUdFTiwgQERF UEVOREVOQ0lFUykKIyBzY2FuX2FjbG9jYWxfbTQKIyAtLS0tLS0tLS0tLS0tLS0KIyBJZiBhY2xv Y2FsLm00IGNyZWF0aW9uIGlzIGF1dG9tYXRlZCwgcmV0dXJuIHRoZSBsaXN0IG9mIGl0cyBkZXBl bmRlbmNpZXMuCnN1YiBzY2FuX2FjbG9jYWxfbTQgKCkKewogIG15ICRyZWdlbl9hY2xvY2FsID0g MDsKCiAgc2V0X3NlZW4gJ0NPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTJzsKICBzZXRfc2VlbiAn Q09ORklHVVJFX0RFUEVOREVOQ0lFUyc7CgogIGlmICgtZiAnYWNsb2NhbC5tNCcpCiAgICB7CiAg ICAgIGRlZmluZV92YXJpYWJsZSAoIkFDTE9DQUxfTTQiLCAnJCh0b3Bfc3JjZGlyKS9hY2xvY2Fs Lm00JywgSU5URVJOQUwpOwoKICAgICAgbXkgJGFjbG9jYWwgPSBuZXcgQXV0b21ha2U6OlhGaWxl ICI8IGFjbG9jYWwubTQiOwogICAgICBteSAkbGluZSA9ICRhY2xvY2FsLT5nZXRsaW5lOwogICAg ICAkcmVnZW5fYWNsb2NhbCA9ICRsaW5lID1+ICdnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSBh Y2xvY2FsJzsKICAgIH0KCiAgbXkgQGFjX2RlcHMgPSAoKTsKCiAgaWYgKHNldF9zZWVuICgnQUNM T0NBTF9NNF9TT1VSQ0VTJykpCiAgICB7CiAgICAgIHB1c2ggKEBhY19kZXBzLCAnJChBQ0xPQ0FM X000X1NPVVJDRVMpJyk7CiAgICAgIG1zZ192YXIgKCdvYnNvbGV0ZScsICdBQ0xPQ0FMX000X1NP VVJDRVMnLAoJICAgICAgICInQUNMT0NBTF9NNF9TT1VSQ0VTJyBpcyBvYnNvbGV0ZS5cbiIKCSAg ICAgICAuICJJdCBzaG91bGQgYmUgc2FmZSB0byBzaW1wbHkgcmVtb3ZlIGl0Iik7CiAgICB9Cgog ICMgTm90ZSB0aGF0IGl0IG1pZ2h0IGJlIHBvc3NpYmxlIHRoYXQgYWNsb2NhbC5tNCBkb2Vzbid0 IGV4aXN0IGJ1dAogICMgc2hvdWxkIGJlIGF1dG8tZ2VuZXJhdGVkLiAgVGhpcyBjYXNlIHByb2Jh Ymx5IGlzbid0IHZlcnkKICAjIGltcG9ydGFudC4KCiAgcmV0dXJuICgkcmVnZW5fYWNsb2NhbCwg QGFjX2RlcHMpOwp9CgoKIyBIZWxwZXIgZnVuY3Rpb24gZm9yICdzdWJzdGl0dXRlX2FjX3N1YnN0 X3ZhcmlhYmxlcycuCnN1YiBzdWJzdGl0dXRlX2FjX3N1YnN0X3ZhcmlhYmxlc193b3JrZXIKewog IG15ICgkdG9rZW4pID0gQF87CiAgcmV0dXJuICJcQCR0b2tlblxAIiBpZiB2YXIgJHRva2VuOwog IHJldHVybiAiXCR7JHRva2VuXH0iOwp9CgojIHN1YnN0aXR1dGVfYWNfc3Vic3RfdmFyaWFibGVz ICgkVEVYVCkKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUmVwbGFj ZSBhbnkgb2NjdXJyZW5jZSBvZiAke0ZPT30gaW4gJFRFWFQgYnkgQEZPT0AgaWYgRk9PIGlzIGFu IEFDX1NVQlNUCiMgdmFyaWFibGUuCnN1YiBzdWJzdGl0dXRlX2FjX3N1YnN0X3ZhcmlhYmxlcwp7 CiAgbXkgKCR0ZXh0KSA9IEBfOwogICR0ZXh0ID1+IHMvXCRbe10oW14gXHQ9Oit7fV0rKX0vc3Vi c3RpdHV0ZV9hY19zdWJzdF92YXJpYWJsZXNfd29ya2VyICgkMSkvZ2U7CiAgcmV0dXJuICR0ZXh0 Owp9CgojIEBERVBFTkRFTkNJRVMKIyBwcmVwZW5kX3NyY2RpciAoQElOUFVUUykKIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KIyBQcmVwZW5kICQoc3JjZGlyKSBvciAkKHRvcF9zcmNkaXIpIHRv IGFsbCBASU5QVVRTLiAgVGhlIGlkZWEgaXMgdGhhdAojIGlmIGFuIGlucHV0IGZpbGUgaGFzIGEg ZGlyZWN0b3J5IHBhcnQgdGhlIHNhbWUgYXMgdGhlIGN1cnJlbnQKIyBkaXJlY3RvcnksIHRoZW4g dGhlIGRpcmVjdG9yeSBwYXJ0IGlzIHNpbXBseSByZXBsYWNlZCBieSAkKHNyY2RpcikuCiMgQnV0 IGlmIHRoZSBkaXJlY3RvcnkgcGFydCBpcyBkaWZmZXJlbnQsIHRoZW4gJCh0b3Bfc3JjZGlyKSBp cwojIHByZXBlbmRlZC4Kc3ViIHByZXBlbmRfc3JjZGlyCnsKICBteSAoQGlucHV0cykgPSBAXzsK ICBteSBAbmV3aW5wdXRzOwoKICBmb3JlYWNoIG15ICRzaW5nbGUgKEBpbnB1dHMpCiAgICB7CiAg ICAgIGlmIChkaXJuYW1lICgkc2luZ2xlKSBlcSAkcmVsYXRpdmVfZGlyKQoJewoJICBwdXNoIChA bmV3aW5wdXRzLCAnJChzcmNkaXIpLycgLiBiYXNlbmFtZSAoJHNpbmdsZSkpOwoJfQogICAgICBl bHNlCgl7CgkgIHB1c2ggKEBuZXdpbnB1dHMsICckKHRvcF9zcmNkaXIpLycgLiAkc2luZ2xlKTsK CX0KICAgIH0KICByZXR1cm4gQG5ld2lucHV0czsKfQoKIyBAREVQRU5ERU5DSUVTCiMgcmV3cml0 ZV9pbnB1dHNfaW50b19kZXBlbmRlbmNpZXMgKCRPVVRQVVQsIEBJTlBVVFMpCiMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ29tcHV0ZSBhIGxp c3Qgb2YgZGVwZW5kZW5jaWVzIGFwcHJvcHJpYXRlIGZvciB0aGUgcmVidWlsZAojIHJ1bGUgb2YK IyAgIEFDX0NPTkZJR19GSUxFUygkT1VUUFVUOiRJTlBVVFswXTokSU5QVVRTWzFdOi4uLikKIyBB bHNvIGRpc3RyaWJ1dGUgJElOUFVUcyB3aGljaCBhcmUgbm90IGJ1aWx0IGJ5IGFub3RoZXIgQUNf Q09ORklHX0ZPT3MuCnN1YiByZXdyaXRlX2lucHV0c19pbnRvX2RlcGVuZGVuY2llcwp7CiAgbXkg KCRmaWxlLCBAaW5wdXRzKSA9IEBfOwogIG15IEByZXMgPSAoKTsKCiAgZm9yIG15ICRpIChAaW5w dXRzKQogICAgewogICAgICAjIFdlIGNhbm5vdCBjcmVhdGUgZGVwZW5kZW5jaWVzIG9uIHNoZWxs IHZhcmlhYmxlcy4KICAgICAgbmV4dCBpZiAoc3Vic3RpdHV0ZV9hY19zdWJzdF92YXJpYWJsZXMg JGkpID1+IC9cJC87CgogICAgICBpZiAoZXhpc3RzICRhY19jb25maWdfZmlsZXNfbG9jYXRpb257 JGl9ICYmICRpIG5lICRmaWxlKQoJewoJICBteSAkZGkgPSBkaXJuYW1lICRpOwoJICBpZiAoJGRp IGVxICRyZWxhdGl2ZV9kaXIpCgkgICAgewoJICAgICAgJGkgPSBiYXNlbmFtZSAkaTsKCSAgICB9 CgkgICMgSW4gdGhlIHRvcC1sZXZlbCBNYWtlZmlsZSB3ZSBkbyBub3QgdXNlICQodG9wX2J1aWxk ZGlyKSwgYmVjYXVzZQoJICAjIHdlIGFyZSBhbHJlYWR5IHRoZXJlLCBhbmQgc2luY2UgdGhlIHRh cmdldHMgYXJlIGJ1aWx0IHdpdGhvdXQKCSAgIyBhICQodG9wX2J1aWxkZGlyKSwgaXQgaGVscHMg QlNEIE1ha2UgdG8gbWF0Y2ggdGhlbSB3aXRoCgkgICMgZGVwZW5kZW5jaWVzLgoJICBlbHNpZiAo JHJlbGF0aXZlX2RpciBuZSAnLicpCgkgICAgewoJICAgICAgJGkgPSAnJCh0b3BfYnVpbGRkaXIp LycgLiAkaTsKCSAgICB9Cgl9CiAgICAgIGVsc2UKCXsKCSAgbXNnICgnZXJyb3InLCAkYWNfY29u ZmlnX2ZpbGVzX2xvY2F0aW9ueyRmaWxlfSwKCSAgICAgICAicmVxdWlyZWQgZmlsZSAnJGknIG5v dCBmb3VuZCIpCgkgICAgdW5sZXNzICRpID1+IC9cJC8gfHwgZXhpc3RzICRvdXRwdXRfZmlsZXN7 JGl9IHx8IC1mICRpOwoJICAoJGkpID0gcHJlcGVuZF9zcmNkaXIgKCRpKTsKCSAgcHVzaF9kaXN0 X2NvbW1vbiAoJGkpOwoJfQogICAgICBwdXNoIEByZXMsICRpOwogICAgfQogIHJldHVybiBAcmVz Owp9CgoKCiMgaGFuZGxlX2NvbmZpZ3VyZSAoJE1BS0VGSUxFX0FNLCAkTUFLRUZJTEVfSU4sICRN QUtFRklMRSwgQElOUFVUUykKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEhhbmRsZSByZW1ha2luZyBhbmQgY29uZmln dXJlIHN0dWZmLgojIFdlIG5lZWQgdGhlIG5hbWUgb2YgdGhlIGlucHV0IGZpbGUsIHRvIGRvIHBy b3BlciByZW1ha2luZyBydWxlcy4Kc3ViIGhhbmRsZV9jb25maWd1cmUKewogIG15ICgkbWFrZWZp bGVfYW0sICRtYWtlZmlsZV9pbiwgJG1ha2VmaWxlLCBAaW5wdXRzKSA9IEBfOwoKICBwcm9nX2Vy cm9yICdlbXB0eSBAaW5wdXRzJwogICAgdW5sZXNzIEBpbnB1dHM7CgogIG15ICgkcmVsX21ha2Vm aWxlX2FtLCAkcmVsX21ha2VmaWxlX2luKSA9IHByZXBlbmRfc3JjZGlyICgkbWFrZWZpbGVfYW0s CgkJCQkJCQkgICAgJG1ha2VmaWxlX2luKTsKICBteSAkcmVsX21ha2VmaWxlID0gYmFzZW5hbWUg JG1ha2VmaWxlOwoKICBteSAkY29sb25faW5maWxlID0gJzonIC4gam9pbiAoJzonLCBAaW5wdXRz KTsKICAkY29sb25faW5maWxlID0gJycgaWYgJGNvbG9uX2luZmlsZSBlcSAiOiRtYWtlZmlsZS5p biI7CiAgbXkgQHJld3JpdHRlbiA9IHJld3JpdGVfaW5wdXRzX2ludG9fZGVwZW5kZW5jaWVzICgk bWFrZWZpbGUsIEBpbnB1dHMpOwogIG15ICgkcmVnZW5fYWNsb2NhbF9tNCwgQGFjbG9jYWxfbTRf ZGVwcykgPSBzY2FuX2FjbG9jYWxfbTQ7CiAgZGVmaW5lX3ByZXR0eV92YXJpYWJsZSAoJ2FtX19h Y2xvY2FsX200X2RlcHMnLCBUUlVFLCBJTlRFUk5BTCwKCQkJICBAY29uZmlndXJlX2RlcHMsIEBh Y2xvY2FsX200X2RlcHMsCgkJCSAgJyQodG9wX3NyY2RpcikvJyAuICRjb25maWd1cmVfYWMpOwog IG15IEBjb25maWd1cmVkZXBzID0gKCckKGFtX19hY2xvY2FsX200X2RlcHMpJywgJyQoQ09ORklH VVJFX0RFUEVOREVOQ0lFUyknKTsKICBwdXNoIEBjb25maWd1cmVkZXBzLCAnJChBQ0xPQ0FMX000 KScgaWYgLWYgJ2FjbG9jYWwubTQnOwogIGRlZmluZV9wcmV0dHlfdmFyaWFibGUgKCdhbV9fY29u ZmlndXJlX2RlcHMnLCBUUlVFLCBJTlRFUk5BTCwKCQkJICBAY29uZmlndXJlZGVwcyk7CgogIG15 ICRhdXRvbWFrZV9vcHRpb25zID0gJy0tJyAuICRzdHJpY3RuZXNzX25hbWUgLgoJCQkgKGdsb2Jh bF9vcHRpb24gJ25vLWRlcGVuZGVuY2llcycgPyAnIC0taWdub3JlLWRlcHMnIDogJycpOwoKICAk b3V0cHV0X3J1bGVzIC49IGZpbGVfY29udGVudHMKICAgICgnY29uZmlndXJlJywKICAgICBuZXcg QXV0b21ha2U6OkxvY2F0aW9uLAogICAgIE1BS0VGSUxFICAgICAgICAgICAgICA9PiAkcmVsX21h a2VmaWxlLAogICAgICdNQUtFRklMRS1ERVBTJyAgICAgICA9PiAiQHJld3JpdHRlbiIsCiAgICAg J0NPTkZJRy1NQUtFRklMRScgICAgID0+ICgkcmVsYXRpdmVfZGlyIGVxICcuJykgPyAnJEAnIDog JyQoc3ViZGlyKS8kQCcsCiAgICAgJ01BS0VGSUxFLUlOJyAgICAgICAgID0+ICRyZWxfbWFrZWZp bGVfaW4sCiAgICAgJ0hBVkUtTUFLRUZJTEUtSU4tREVQUycgPT4gKEBpbmNsdWRlX3N0YWNrID4g MCksCiAgICAgJ01BS0VGSUxFLUlOLURFUFMnICAgID0+ICJAaW5jbHVkZV9zdGFjayIsCiAgICAg J01BS0VGSUxFLUFNJyAgICAgICAgID0+ICRyZWxfbWFrZWZpbGVfYW0sCiAgICAgJ0FVVE9NQUtF LU9QVElPTlMnICAgID0+ICRhdXRvbWFrZV9vcHRpb25zLAogICAgICdNQUtFRklMRS1BTS1TT1VS Q0VTJyA9PiAiJG1ha2VmaWxlJGNvbG9uX2luZmlsZSIsCiAgICAgJ1JFR0VOLUFDTE9DQUwtTTQn ICAgID0+ICRyZWdlbl9hY2xvY2FsX200LAogICAgIFZFUkJPU0UgICAgICAgICAgICAgICA9PiB2 ZXJib3NlX2ZsYWcgKCdHRU4nKSk7CgogIGlmICgkcmVsYXRpdmVfZGlyIGVxICcuJykKICAgIHsK ICAgICAgcHVzaF9kaXN0X2NvbW1vbiAoJ2FjY29uZmlnLmgnKQoJaWYgLWYgJ2FjY29uZmlnLmgn OwogICAgfQoKICAjIElmIHdlIGhhdmUgYSBjb25maWd1cmUgaGVhZGVyLCByZXF1aXJlIGl0Lgog IG15ICRoZHJfaW5kZXggPSAwOwogIG15IEBkaXN0Y2xlYW5fY29uZmlnOwogIGZvcmVhY2ggbXkg JHNwZWMgKEBjb25maWdfaGVhZGVycykKICAgIHsKICAgICAgJGhkcl9pbmRleCArPSAxOwogICAg ICAjICRDT05GSUdfSF9QQVRIOiBjb25maWcuaCBmcm9tIHRvcCBsZXZlbC4KICAgICAgbXkgKCRj b25maWdfaF9wYXRoLCBAaW5zKSA9IHNwbGl0X2NvbmZpZ19maWxlX3NwZWMgKCRzcGVjKTsKICAg ICAgbXkgJGNvbmZpZ19oX2RpciA9IGRpcm5hbWUgKCRjb25maWdfaF9wYXRoKTsKCiAgICAgICMg SWYgdGhlIGhlYWRlciBpcyBpbiB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2Ugd2FudCB0byBidWls ZAogICAgICAjIHRoZSBoZWFkZXIgaGVyZS4gIE90aGVyd2lzZSwgaWYgd2UncmUgYXQgdGhlIHRv cG1vc3QKICAgICAgIyBkaXJlY3RvcnkgYW5kIHRoZSBoZWFkZXIncyBkaXJlY3RvcnkgZG9lc24n dCBoYXZlIGEKICAgICAgIyBNYWtlZmlsZSwgdGhlbiB3ZSBhbHNvIHdhbnQgdG8gYnVpbGQgdGhl IGhlYWRlci4KICAgICAgaWYgKCRyZWxhdGl2ZV9kaXIgZXEgJGNvbmZpZ19oX2RpcgoJICB8fCAo JHJlbGF0aXZlX2RpciBlcSAnLicgJiYgISBpc19tYWtlX2RpciAoJGNvbmZpZ19oX2RpcikpKQoJ ewoJICBteSAoJGNuX3NhbnNfZGlyLCAkc3RhbXBfZGlyKTsKCSAgaWYgKCRyZWxhdGl2ZV9kaXIg ZXEgJGNvbmZpZ19oX2RpcikKCSAgICB7CgkgICAgICAkY25fc2Fuc19kaXIgPSBiYXNlbmFtZSAo JGNvbmZpZ19oX3BhdGgpOwoJICAgICAgJHN0YW1wX2RpciA9ICcnOwoJICAgIH0KCSAgZWxzZQoJ ICAgIHsKCSAgICAgICRjbl9zYW5zX2RpciA9ICRjb25maWdfaF9wYXRoOwoJICAgICAgaWYgKCRj b25maWdfaF9kaXIgZXEgJy4nKQoJCXsKCQkgICRzdGFtcF9kaXIgPSAnJzsKCQl9CgkgICAgICBl bHNlCgkJewoJCSAgJHN0YW1wX2RpciA9ICRjb25maWdfaF9kaXIgLiAnLyc7CgkJfQoJICAgIH0K CgkgICMgVGhpcyB3aWxsIGFsc28gZGlzdHJpYnV0ZSBhbGwgaW5wdXRzLgoJICBAaW5zID0gcmV3 cml0ZV9pbnB1dHNfaW50b19kZXBlbmRlbmNpZXMgKCRjb25maWdfaF9wYXRoLCBAaW5zKTsKCgkg ICMgQ2Fubm90IGRlZmluZSByZWJ1aWxkIHJ1bGVzIGZvciBmaWxlbmFtZXMgd2l0aCBzaGVsbCB2 YXJpYWJsZXMuCgkgIG5leHQgaWYgKHN1YnN0aXR1dGVfYWNfc3Vic3RfdmFyaWFibGVzICRjb25m aWdfaF9wYXRoKSA9fiAvXCQvOwoKCSAgIyBIZWFkZXIgZGVmaW5lZCBpbiB0aGlzIGRpcmVjdG9y eS4KCSAgbXkgQGZpbGVzOwoJICBpZiAoLWYgJGNvbmZpZ19oX3BhdGggLiAnLnRvcCcpCgkgICAg ewoJICAgICAgcHVzaCAoQGZpbGVzLCAiJGNuX3NhbnNfZGlyLnRvcCIpOwoJICAgIH0KCSAgaWYg KC1mICRjb25maWdfaF9wYXRoIC4gJy5ib3QnKQoJICAgIHsKCSAgICAgIHB1c2ggKEBmaWxlcywg IiRjbl9zYW5zX2Rpci5ib3QiKTsKCSAgICB9CgoJICBwdXNoX2Rpc3RfY29tbW9uIChAZmlsZXMp OwoKCSAgIyBGb3Igbm93LCBhY2NvbmZpZy5oIGNhbiBvbmx5IGFwcGVhciBpbiB0aGUgdG9wIHNy Y2Rpci4KCSAgaWYgKC1mICdhY2NvbmZpZy5oJykKCSAgICB7CgkgICAgICBwdXNoIChAZmlsZXMs ICckKHRvcF9zcmNkaXIpL2FjY29uZmlnLmgnKTsKCSAgICB9CgoJICBteSAkc3RhbXAgPSAiJHtz dGFtcF9kaXJ9c3RhbXAtaCR7aGRyX2luZGV4fSI7CgkgICRvdXRwdXRfcnVsZXMgLj0KCSAgICBm aWxlX2NvbnRlbnRzICgncmVtYWtlLWhkcicsCgkJCSAgIG5ldyBBdXRvbWFrZTo6TG9jYXRpb24s CgkJCSAgIEZJTEVTICAgICAgICAgICAgPT4gIkBmaWxlcyIsCgkJCSAgICdGSVJTVC1IRFInICAg ICAgPT4gKCRoZHJfaW5kZXggPT0gMSksCgkJCSAgIENPTkZJR19IICAgICAgICAgPT4gJGNuX3Nh bnNfZGlyLAoJCQkgICBDT05GSUdfSElOICAgICAgID0+ICRpbnNbMF0sCgkJCSAgIENPTkZJR19I X0RFUFMgICAgPT4gIkBpbnMiLAoJCQkgICBDT05GSUdfSF9QQVRIICAgID0+ICRjb25maWdfaF9w YXRoLAoJCQkgICBTVEFNUCAgICAgICAgICAgID0+ICIkc3RhbXAiKTsKCgkgIHB1c2ggQGRpc3Rj bGVhbl9jb25maWcsICRjbl9zYW5zX2RpciwgJHN0YW1wOwoJfQogICAgfQoKICAkb3V0cHV0X3J1 bGVzIC49IGZpbGVfY29udGVudHMgKCdjbGVhbi1oZHInLAoJCQkJICBuZXcgQXV0b21ha2U6Okxv Y2F0aW9uLAoJCQkJICBGSUxFUyA9PiAiQGRpc3RjbGVhbl9jb25maWciKQogICAgaWYgQGRpc3Rj bGVhbl9jb25maWc7CgogICMgRGlzdHJpYnV0ZSBhbmQgZGVmaW5lIG1raW5zdGFsbGRpcnMgb25s eSBpZiBpdCBpcyBhbHJlYWR5IHByZXNlbnQKICAjIGluIHRoZSBwYWNrYWdlLCBmb3IgYmFja3dh cmQgY29tcGF0aWJpbGl0eSAoc29tZSBwZW9wbGUgbWF5IHN0aWxsCiAgIyB1c2UgJChta2luc3Rh bGxkaXJzKSkuCiAgIyBUT0RPOiBzdGFydCB3YXJuaW5nIGFib3V0IHRoaXMgaW4gQXV0b21ha2Ug MS4xNCwgYW5kIGhhdmUKICAjIFRPRE86IEF1dG9tYWtlIDIuMCBkcm9wIGl0IChhbmQgdGhlIG1r aW5zdGFsbGRpcnMgc2NyaXB0CiAgIyBUT0RPOiBhcyB3ZWxsKS4KICBteSAkbWtpZHBhdGggPSAi JGNvbmZpZ19hdXhfZGlyL21raW5zdGFsbGRpcnMiOwogIGlmICgtZiAkbWtpZHBhdGgpCiAgICB7 CiAgICAgICMgVXNlIHJlcXVpcmVfZmlsZSBzbyB0aGF0IGFueSBleGlzdGluZyBzY3JpcHQgZ2V0 cyB1cGRhdGVkCiAgICAgICMgYnkgLS1mb3JjZS1taXNzaW5nLgogICAgICByZXF1aXJlX2NvbmZf ZmlsZSAoJG1raWRwYXRoLCBGT1JFSUdOLCAnbWtpbnN0YWxsZGlycycpOwogICAgICBkZWZpbmVf dmFyaWFibGUgKCdta2luc3RhbGxkaXJzJywKCQkgICAgICAgIlwkKFNIRUxMKSAkYW1fY29uZmln X2F1eF9kaXIvbWtpbnN0YWxsZGlycyIsIElOVEVSTkFMKTsKICAgIH0KICBlbHNlCiAgICB7CiAg ICAgICMgVXNlICQoaW5zdGFsbF9zaCksIG5vdCAkKE1LRElSX1ApIGJlY2F1c2UgdGhlIGxhdHRl ciByZXF1aXJlcwogICAgICAjIGF0IGxlYXN0IG9uZSBhcmd1bWVudCwgYW5kICQobWtpbnN0YWxs ZGlycykgdXNlZCB0byB3b3JrCiAgICAgICMgZXZlbiB3aXRob3V0IGFyZ3VtZW50cyAoZS5nLiAk KG1raW5zdGFsbGRpcnMpICQoY29uZGl0aW9uYWxfZGlyKSkuCiAgICAgICMgQWxzbywgJChNS0RJ Ul9QKSB1c2VzIHRoZSB1bWFzayBmb3IgYW55IGludGVybWVkaWF0ZSBkaXJlY3RvcmllcwogICAg ICAjIGNyZWF0ZWQsIHdoZXJlYXMgd2Ugd2FudCB0aGVtIHRvIGJlIGNyZWF0ZWQgd2l0aCB1bWFz ayAwMjIKICAgICAgIyBzbyB0aGF0IHRoZXkgYXJlIG1vZGUgNzU1LgogICAgICBkZWZpbmVfdmFy aWFibGUgKCdta2luc3RhbGxkaXJzJywgJyQoaW5zdGFsbF9zaCkgLWQnLCBJTlRFUk5BTCk7CiAg ICB9CgogIHJlamVjdF92YXIgKCdDT05GSUdfSEVBREVSJywKCSAgICAgICInQ09ORklHX0hFQURF UicgaXMgYW4gYW5hY2hyb25pc207IG5vdyBkZXRlcm1pbmVkICIKCSAgICAgIC4gImF1dG9tYXRp Y2FsbHlcbmZyb20gJyRjb25maWd1cmVfYWMnIik7CgogIG15IEBjb25maWdfaDsKICBmb3JlYWNo IG15ICRzcGVjIChAY29uZmlnX2hlYWRlcnMpCiAgICB7CiAgICAgIG15ICgkb3V0LCBAaW5zKSA9 IHNwbGl0X2NvbmZpZ19maWxlX3NwZWMgKCRzcGVjKTsKICAgICAgIyBHZW5lcmF0ZSBDT05GSUdf SEVBREVSIGRlZmluZS4KICAgICAgaWYgKCRyZWxhdGl2ZV9kaXIgZXEgZGlybmFtZSAoJG91dCkp Cgl7CgkgIHB1c2ggQGNvbmZpZ19oLCBiYXNlbmFtZSAoJG91dCk7Cgl9CiAgICAgIGVsc2UKCXsK CSAgcHVzaCBAY29uZmlnX2gsICJcJCh0b3BfYnVpbGRkaXIpLyRvdXQiOwoJfQogICAgfQogIGRl ZmluZV92YXJpYWJsZSAoIkNPTkZJR19IRUFERVIiLCAiQGNvbmZpZ19oIiwgSU5URVJOQUwpCiAg ICBpZiBAY29uZmlnX2g7CgogICMgTm93IGxvb2sgZm9yIG90aGVyIGZpbGVzIGluIHRoaXMgZGly ZWN0b3J5IHdoaWNoIG11c3QgYmUgcmVtYWRlCiAgIyBieSBjb25maWcuc3RhdHVzLCBhbmQgZ2Vu ZXJhdGUgcnVsZXMgZm9yIHRoZW0uCiAgbXkgQGFjdHVhbF9vdGhlcl9maWxlcyA9ICgpOwogICMg VGhlc2UgZ2V0IGNsZWFuZWQgb25seSBpbiBhIFZQQVRIIGJ1aWxkLgogIG15IEBhY3R1YWxfb3Ro ZXJfdnBhdGhfZmlsZXMgPSAoKTsKICBmb3JlYWNoIG15ICRsZmlsZSAoQG90aGVyX2lucHV0X2Zp bGVzKQogICAgewogICAgICBteSAkZmlsZTsKICAgICAgbXkgQGlucHV0czsKICAgICAgaWYgKCRs ZmlsZSA9fiAvXihbXjpdKik6KC4qKSQvKQoJewoJICAjIFRoaXMgaXMgdGhlICI6IiBzeW50YXgg b2YgQUNfT1VUUFVULgoJICAkZmlsZSA9ICQxOwoJICBAaW5wdXRzID0gc3BsaXQgKCc6JywgJDIp OwoJfQogICAgICBlbHNlCgl7CgkgICMgTm9ybWFsIHVzYWdlLgoJICAkZmlsZSA9ICRsZmlsZTsK CSAgQGlucHV0cyA9ICRmaWxlIC4gJy5pbic7Cgl9CgogICAgICAjIEF1dG9tYWtlIGZpbGVzIHNo b3VsZCBub3QgYmUgc3RvcmVkIGluIGhlcmUsIGJ1dCBpbiAlTUFLRV9MSVNULgogICAgICBwcm9n X2Vycm9yICgiJGxmaWxlIGluIFxAb3RoZXJfaW5wdXRfZmlsZXNcbiIKCQkgIC4gIlxAb3RoZXJf aW5wdXRfZmlsZXMgPSAoQG90aGVyX2lucHV0X2ZpbGVzKSIpCglpZiAtZiAkZmlsZSAuICcuYW0n OwoKICAgICAgbXkgJGxvY2FsID0gYmFzZW5hbWUgKCRmaWxlKTsKCiAgICAgICMgV2Ugc2tpcCBm aWxlcyB0aGF0IGFyZW4ndCBpbiB0aGlzIGRpcmVjdG9yeS4gIEhvd2V2ZXIsIGlmCiAgICAgICMg dGhlIGZpbGUncyBkaXJlY3RvcnkgZG9lcyBub3QgaGF2ZSBhIE1ha2VmaWxlLCBhbmQgd2UgYXJl CiAgICAgICMgY3VycmVudGx5IGRvaW5nICcuJywgdGhlbiB3ZSBjcmVhdGUgYSBydWxlIHRvIHJl YnVpbGQgdGhlCiAgICAgICMgZmlsZSBpbiB0aGUgc3ViZGlyLgogICAgICBteSAkZmQgPSBkaXJu YW1lICgkZmlsZSk7CiAgICAgIGlmICgkZmQgbmUgJHJlbGF0aXZlX2RpcikKCXsKCSAgaWYgKCRy ZWxhdGl2ZV9kaXIgZXEgJy4nICYmICEgaXNfbWFrZV9kaXIgKCRmZCkpCgkgICAgewoJICAgICAg JGxvY2FsID0gJGZpbGU7CgkgICAgfQoJICBlbHNlCgkgICAgewoJICAgICAgbmV4dDsKCSAgICB9 Cgl9CgogICAgICBteSBAcmV3cml0dGVuX2lucHV0cyA9IHJld3JpdGVfaW5wdXRzX2ludG9fZGVw ZW5kZW5jaWVzICgkZmlsZSwgQGlucHV0cyk7CgogICAgICAjIENhbm5vdCBvdXRwdXQgcnVsZXMg Zm9yIHNoZWxsIHZhcmlhYmxlcy4KICAgICAgbmV4dCBpZiAoc3Vic3RpdHV0ZV9hY19zdWJzdF92 YXJpYWJsZXMgJGxvY2FsKSA9fiAvXCQvOwoKICAgICAgbXkgJGNvbmRzdHIgPSAnJzsKICAgICAg bXkgJGNvbmQgPSAkYWNfY29uZmlnX2ZpbGVzX2NvbmRpdGlvbnskbGZpbGV9OwogICAgICBpZiAo ZGVmaW5lZCAkY29uZCkKICAgICAgICB7CgkgICRjb25kc3RyID0gJGNvbmQtPnN1YnN0X3N0cmlu ZzsKCSAgQXV0b21ha2U6OlJ1bGU6OmRlZmluZSAoJGxvY2FsLCAkY29uZmlndXJlX2FjLCBSVUxF X0FVVE9NQUtFLCAkY29uZCwKCQkJCSAgJGFjX2NvbmZpZ19maWxlc19sb2NhdGlvbnskZmlsZX0p OwogICAgICAgIH0KICAgICAgJG91dHB1dF9ydWxlcyAuPSAoJGNvbmRzdHIgLiAkbG9jYWwgLiAn OiAnCgkJCS4gJyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzICcKCQkJLiAiQHJld3JpdHRl bl9pbnB1dHNcbiIKCQkJLiAkY29uZHN0ciAuICJcdCIKCQkJLiAnY2QgJCh0b3BfYnVpbGRkaXIp ICYmICcKCQkJLiAnJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICcKCQkJLiAoJHJlbGF0aXZlX2Rp ciBlcSAnLicgPyAnJyA6ICckKHN1YmRpcikvJykKCQkJLiAnJEAnCgkJCS4gIlxuIik7CiAgICAg IHB1c2ggKEBhY3R1YWxfb3RoZXJfZmlsZXMsICRsb2NhbCk7CiAgICB9CgogICMgRm9yIGxpbmtz IHdlIHNob3VsZCBjbGVhbiBkZXN0aW5hdGlvbnMgYW5kIGRpc3RyaWJ1dGUgc291cmNlcy4KICBm b3JlYWNoIG15ICRzcGVjIChAY29uZmlnX2xpbmtzKQogICAgewogICAgICBteSAoJGxpbmssICRm aWxlKSA9IHNwbGl0IC86LywgJHNwZWM7CiAgICAgICMgU29tZSBwZW9wbGUgZG8gQUNfQ09ORklH X0xJTktTKCRjb21wdXRlZCkuICBXZSBvbmx5IGhhbmRsZQogICAgICAjIHRoZSBERVNUOlNSQyBm b3JtLgogICAgICBuZXh0IHVubGVzcyAkZmlsZTsKICAgICAgbXkgJHdoZXJlID0gJGFjX2NvbmZp Z19maWxlc19sb2NhdGlvbnskbGlua307CgogICAgICAjIFNraXAgZGVzdGluYXRpb25zIHRoYXQg Y29udGFpbiBzaGVsbCB2YXJpYWJsZXMuCiAgICAgIGlmICgoc3Vic3RpdHV0ZV9hY19zdWJzdF92 YXJpYWJsZXMgJGxpbmspICF+IC9cJC8pCgl7CgkgICMgV2Ugc2tpcCBsaW5rcyB0aGF0IGFyZW4n dCBpbiB0aGlzIGRpcmVjdG9yeS4gIEhvd2V2ZXIsIGlmCgkgICMgdGhlIGxpbmsncyBkaXJlY3Rv cnkgZG9lcyBub3QgaGF2ZSBhIE1ha2VmaWxlLCBhbmQgd2UgYXJlCgkgICMgY3VycmVudGx5IGRv aW5nICcuJywgdGhlbiB3ZSBhZGQgdGhlIGxpbmsgdG8gQ09ORklHX0NMRUFOX0ZJTEVTCgkgICMg aW4gJy4ncyBNYWtlZmlsZS5pbi4KCSAgbXkgJGxvY2FsID0gYmFzZW5hbWUgKCRsaW5rKTsKCSAg bXkgJGZkID0gZGlybmFtZSAoJGxpbmspOwoJICBpZiAoJGZkIG5lICRyZWxhdGl2ZV9kaXIpCgkg ICAgewoJICAgICAgaWYgKCRyZWxhdGl2ZV9kaXIgZXEgJy4nICYmICEgaXNfbWFrZV9kaXIgKCRm ZCkpCgkJewoJCSAgJGxvY2FsID0gJGxpbms7CgkJfQoJICAgICAgZWxzZQoJCXsKCQkgICRsb2Nh bCA9IHVuZGVmOwoJCX0KCSAgICB9CgkgIGlmICgkZmlsZSBuZSAkbGluaykKCSAgICB7CgkgICAg ICBwdXNoIEBhY3R1YWxfb3RoZXJfZmlsZXMsICRsb2NhbCBpZiAkbG9jYWw7CgkgICAgfQoJICBl bHNlCgkgICAgewoJICAgICAgcHVzaCBAYWN0dWFsX290aGVyX3ZwYXRoX2ZpbGVzLCAkbG9jYWwg aWYgJGxvY2FsOwoJICAgIH0KCX0KCiAgICAgICMgRG8gbm90IHByb2Nlc3Mgc291cmNlcyB0aGF0 IGNvbnRhaW4gc2hlbGwgdmFyaWFibGVzLgogICAgICBpZiAoKHN1YnN0aXR1dGVfYWNfc3Vic3Rf dmFyaWFibGVzICRmaWxlKSAhfiAvXCQvKQoJewoJICBteSAkZmQgPSBkaXJuYW1lICgkZmlsZSk7 CgoJICAjIFdlIGRpc3RyaWJ1dGUgZmlsZXMgdGhhdCBhcmUgaW4gdGhpcyBkaXJlY3RvcnkuCgkg ICMgQXQgdGhlIHRvcC1sZXZlbCAoJy4nKSB3ZSBhbHNvIGRpc3RyaWJ1dGUgZmlsZXMgd2hvc2UK CSAgIyBkaXJlY3RvcnkgZG9lcyBub3QgaGF2ZSBhIE1ha2VmaWxlLgoJICBpZiAoKCRmZCBlcSAk cmVsYXRpdmVfZGlyKQoJICAgICAgfHwgKCRyZWxhdGl2ZV9kaXIgZXEgJy4nICYmICEgaXNfbWFr ZV9kaXIgKCRmZCkpKQoJICAgIHsKCSAgICAgICMgVGhlIGZvbGxvd2luZyB3aWxsIGRpc3RyaWJ1 dGUgJGZpbGUgYXMgYSBzaWRlLWVmZmVjdCB3aGVuCgkgICAgICAjIGl0IGlzIGFwcHJvcHJpYXRl IChpLmUuLCB3aGVuICRmaWxlIGlzIG5vdCBhbHJlYWR5IGFuIG91dHB1dCkuCgkgICAgICAjIFdl IGRvIG5vdCBuZWVkIHRoZSByZXN1bHQsIGp1c3QgdGhlIHNpZGUtZWZmZWN0LgoJICAgICAgcmV3 cml0ZV9pbnB1dHNfaW50b19kZXBlbmRlbmNpZXMgKCRsaW5rLCAkZmlsZSk7CgkgICAgfQoJfQog ICAgfQoKICAjIFRoZXNlIGZpbGVzIGdldCByZW1vdmVkIGJ5ICJtYWtlIGRpc3RjbGVhbiIuCiAg ZGVmaW5lX3ByZXR0eV92YXJpYWJsZSAoJ0NPTkZJR19DTEVBTl9GSUxFUycsIFRSVUUsIElOVEVS TkFMLAoJCQkgIEBhY3R1YWxfb3RoZXJfZmlsZXMpOwogIGRlZmluZV9wcmV0dHlfdmFyaWFibGUg KCdDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMnLCBUUlVFLCBJTlRFUk5BTCwKCQkJICBAYWN0dWFs X290aGVyX3ZwYXRoX2ZpbGVzKTsKfQoKc3ViIGhhbmRsZV9oZWFkZXJzICgpCnsKICAgIG15IEBy ID0gYW1faW5zdGFsbF92YXIgKCctZGVmYXVsdGRpc3QnLCAnaGVhZGVyJywgJ0hFQURFUlMnLCAn aW5jbHVkZScsCgkJCSAgICAnb2xkaW5jbHVkZScsICdwa2dpbmNsdWRlJywKCQkJICAgICdub2lu c3QnLCAnY2hlY2snKTsKICAgIGZvcmVhY2ggKEByKQogICAgewogICAgICBuZXh0IHVubGVzcyAk Xy0+WzFdID1+IC9cLi4qJC87CiAgICAgIHNhd19leHRlbnNpb24gKCQmKTsKICAgIH0KfQoKc3Vi IGhhbmRsZV9nZXR0ZXh0ICgpCnsKICByZXR1cm4gaWYgISAkc2Vlbl9nZXR0ZXh0IHx8ICRyZWxh dGl2ZV9kaXIgbmUgJy4nOwoKICBteSAkc3ViZGlycyA9IHZhciAnU1VCRElSUyc7CgogIGlmICgh ICRzdWJkaXJzKQogICAgewogICAgICBlcnJfYWMgIkFNX0dOVV9HRVRURVhUIHVzZWQgYnV0IFNV QkRJUlMgbm90IGRlZmluZWQiOwogICAgICByZXR1cm47CiAgICB9CgogICMgUGVyZm9ybSBzb21l IHNhbml0eSBjaGVja3MgdG8gaGVscCB1c2VycyBnZXQgdGhlIHJpZ2h0IHNldHVwLgogICMgV2Ug ZGlzYWJsZSB0aGVzZSB0ZXN0cyB3aGVuIHBvLyBkb2Vzbid0IGV4aXN0IGluIG9yZGVyIG5vdCB0 byBkaXNhbGxvdwogICMgdW51c3VhbCBnZXR0ZXh0IHNldHVwcy4KICAjCiAgIyBCcnVubyBIYWli bGU6CiAgIyB8IFRoZSBpZGVhIGlzOgogICMgfAogICMgfCAgMSkgSWYgYSBwYWNrYWdlIGRvZXNu J3QgaGF2ZSBhIGRpcmVjdG9yeSBwby8gYXQgdG9wIGxldmVsLCBpdAogICMgfCAgICAgd2lsbCBs aWtlbHkgaGF2ZSBtdWx0aXBsZSBwby8gZGlyZWN0b3JpZXMgaW4gc3VicGFja2FnZXMuCiAgIyB8 CiAgIyB8ICAyKSBJdCBpcyB1c2VmdWwgdG8gd2FybiBmb3IgdGhlIGFic2VuY2Ugb2YgaW50bC8g aWYgQU1fR05VX0dFVFRFWFQKICAjIHwgICAgIGlzIHVzZWQgd2l0aG91dCAnZXh0ZXJuYWwnLiBJ dCBpcyBhbHNvIHVzZWZ1bCB0byB3YXJuIGZvciB0aGUKICAjIHwgICAgIHByZXNlbmNlIG9mIGlu dGwvIGlmIEFNX0dOVV9HRVRURVhUKFtleHRlcm5hbF0pIGlzIHVzZWQuIEJvdGgKICAjIHwgICAg IHdhcm5pbmdzIGFwcGx5IG9ubHkgdG8gdGhlIHVzdWFsIGxheW91dCBvZiBwYWNrYWdlcywgdGhl cmVmb3JlCiAgIyB8ICAgICB0aGV5IHNob3VsZCBib3RoIGJlIGRpc2FibGVkIGlmIG5vIHBvLyBk aXJlY3RvcnkgaXMgZm91bmQgYXQKICAjIHwgICAgIHRvcCBsZXZlbC4KCiAgaWYgKC1kICdwbycp CiAgICB7CiAgICAgIG15IEBzdWJkaXJzID0gJHN1YmRpcnMtPnZhbHVlX2FzX2xpc3RfcmVjdXJz aXZlOwoKICAgICAgbXNnX3ZhciAoJ3N5bnRheCcsICRzdWJkaXJzLAoJICAgICAgICJBTV9HTlVf R0VUVEVYVCB1c2VkIGJ1dCAncG8nIG5vdCBpbiBTVUJESVJTIikKCWlmICEgZ3JlcCAoJF8gZXEg J3BvJywgQHN1YmRpcnMpOwoKICAgICAgIyBpbnRsLyBpcyBub3QgcmVxdWlyZWQgd2hlbiBBTV9H TlVfR0VUVEVYVCBpcyBjYWxsZWQgd2l0aCB0aGUKICAgICAgIyAnZXh0ZXJuYWwnIG9wdGlvbiBh bmQgQU1fR05VX0dFVFRFWFRfSU5UTF9TVUJESVIgaXMgbm90IGNhbGxlZC4KICAgICAgbXNnX3Zh ciAoJ3N5bnRheCcsICRzdWJkaXJzLAoJICAgICAgICJBTV9HTlVfR0VUVEVYVCB1c2VkIGJ1dCAn aW50bCcgbm90IGluIFNVQkRJUlMiKQoJaWYgKCEgKCRzZWVuX2dldHRleHRfZXh0ZXJuYWwgJiYg ISAkc2Vlbl9nZXR0ZXh0X2ludGwpCgkgICAgJiYgISBncmVwICgkXyBlcSAnaW50bCcsIEBzdWJk aXJzKSk7CgogICAgICAjIGludGwvIHNob3VsZCBub3QgYmUgdXNlZCB3aXRoIEFNX0dOVV9HRVRU RVhUKFtleHRlcm5hbF0pLCBleGNlcHQKICAgICAgIyBpZiBBTV9HTlVfR0VUVEVYVF9JTlRMX1NV QkRJUiBpcyBjYWxsZWQuCiAgICAgIG1zZ192YXIgKCdzeW50YXgnLCAkc3ViZGlycywKCSAgICAg ICAiJ2ludGwnIHNob3VsZCBub3QgYmUgaW4gU1VCRElSUyB3aGVuICIKCSAgICAgICAuICJBTV9H TlVfR0VUVEVYVChbZXh0ZXJuYWxdKSBpcyB1c2VkIikKCWlmICgkc2Vlbl9nZXR0ZXh0X2V4dGVy bmFsICYmICEgJHNlZW5fZ2V0dGV4dF9pbnRsCgkgICAgJiYgZ3JlcCAoJF8gZXEgJ2ludGwnLCBA c3ViZGlycykpOwogICAgfQogIHJlcXVpcmVfZmlsZSAoJGFjX2dldHRleHRfbG9jYXRpb24sIEdO SVRTLCAnQUJPVVQtTkxTJyk7Cn0KCiMgRW1pdCBtYWtlZmlsZSBmb290ZXIuCnN1YiBoYW5kbGVf Zm9vdGVyICgpCnsKICAgIHJlamVjdF9ydWxlICgnLlNVRkZJWEVTJywKCQkgInVzZSB2YXJpYWJs ZSAnU1VGRklYRVMnLCBub3QgdGFyZ2V0ICcuU1VGRklYRVMnIik7CgogICAgIyBOb3RlOiBBSVgg NC4xIC9iaW4vbWFrZSB3aWxsIGZhaWwgaWYgYW55IHN1ZmZpeCBydWxlIGFwcGVhcnMKICAgICMg YmVmb3JlIC5TVUZGSVhFUy4gIFNvIHdlIG1ha2Ugc3VyZSB0aGF0IC5TVUZGSVhFUyBhcHBlYXJz IGJlZm9yZQogICAgIyBhbnl0aGluZyBlbHNlLCBieSBzdGlja2luZyBpdCByaWdodCBhZnRlciB0 aGUgZGVmYXVsdDogdGFyZ2V0LgogICAgJG91dHB1dF9oZWFkZXIgLj0gIi5TVUZGSVhFUzpcbiI7 CiAgICBteSAkc3VmZml4ZXMgPSB2YXIgJ1NVRkZJWEVTJzsKICAgIG15IEBzdWZmaXhlcyA9IEF1 dG9tYWtlOjpSdWxlOjpzdWZmaXhlczsKICAgIGlmIChAc3VmZml4ZXMgfHwgJHN1ZmZpeGVzKQog ICAgewoJIyBNYWtlIHN1cmUgU1VGRklYRVMgaGFzIHVuaXF1ZSBlbGVtZW50cy4gIFNvcnQgdGhl bSB0byBlbnN1cmUKCSMgdGhlIG91dHB1dCByZW1haW5zIGNvbnNpc3RlbnQuICBIb3dldmVyLCAk KFNVRkZJWEVTKSBpcwoJIyBhbHdheXMgYXQgdGhlIHN0YXJ0IG9mIHRoZSBsaXN0LCB1bnNvcnRl ZC4gIFRoaXMgaXMgZG9uZQoJIyBiZWNhdXNlIG1ha2Ugd2lsbCBjaG9vc2UgcnVsZXMgZGVwZW5k aW5nIG9uIHRoZSBvcmRlcmluZyBvZgoJIyBzdWZmaXhlcywgYW5kIHRoaXMgbGV0cyB0aGUgdXNl ciBoYXZlIHNvbWUgY29udHJvbC4gIFB1c2gKCSMgYWN0dWFsIHN1ZmZpeGVzLCBhbmQgbm90ICQo U1VGRklYRVMpLiAgU29tZSB2ZXJzaW9ucyBvZiBtYWtlCgkjIGRvIG5vdCBsaWtlIHZhcmlhYmxl IHN1YnN0aXR1dGlvbnMgb24gdGhlIC5TVUZGSVhFUyBsaW5lLgoJbXkgQHVzZXJfc3VmZml4ZXMg PSAoJHN1ZmZpeGVzCgkJCSAgICAgPyAkc3VmZml4ZXMtPnZhbHVlX2FzX2xpc3RfcmVjdXJzaXZl IDogKCkpOwoKCW15ICVzdWZmaXhlcyA9IG1hcCB7ICRfID0+IDEgfSBAc3VmZml4ZXM7CglkZWxl dGUgQHN1ZmZpeGVze0B1c2VyX3N1ZmZpeGVzfTsKCgkkb3V0cHV0X2hlYWRlciAuPSAoIi5TVUZG SVhFUzogIgoJCQkgICAuIGpvaW4gKCcgJywgQHVzZXJfc3VmZml4ZXMsIHNvcnQga2V5cyAlc3Vm Zml4ZXMpCgkJCSAgIC4gIlxuIik7CiAgICB9CgogICAgJG91dHB1dF90cmFpbGVyIC49IGZpbGVf Y29udGVudHMgKCdmb290ZXInLCBuZXcgQXV0b21ha2U6OkxvY2F0aW9uKTsKfQoKCiMgR2VuZXJh dGUgJ21ha2UgaW5zdGFsbCcgcnVsZXMuCnN1YiBoYW5kbGVfaW5zdGFsbCAoKQp7CiAgJG91dHB1 dF9ydWxlcyAuPSBmaWxlX2NvbnRlbnRzCiAgICAoJ2luc3RhbGwnLAogICAgIG5ldyBBdXRvbWFr ZTo6TG9jYXRpb24sCiAgICAgbWF5YmVfQlVJTFRfU09VUkNFUyA9PiAoc2V0X3NlZW4gKCdCVUlM VF9TT1VSQ0VTJykKCQkJICAgICA/ICgiIFwkKEJVSUxUX1NPVVJDRVMpXG4iCgkJCQkuICJcdFwk KE1BS0UpIFwkKEFNX01BS0VGTEFHUykiKQoJCQkgICAgIDogJycpLAogICAgICdpbnN0YWxsZGly cy1sb2NhbCcgPT4gKHVzZXJfcGhvbnlfcnVsZSAoJ2luc3RhbGxkaXJzLWxvY2FsJykKCQkJICAg ICA/ICcgaW5zdGFsbGRpcnMtbG9jYWwnIDogJycpLAogICAgIGFtX19pbnN0YWxsZGlycyA9PiB2 YXJpYWJsZV92YWx1ZSAoJ2FtX19pbnN0YWxsZGlycycpIHx8ICcnKTsKfQoKCiMgaGFuZGxlX2Fs bCAoJE1BS0VGSUxFKQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBEZWFsIHdpdGggJ2FsbCcg YW5kICdhbGwtYW0nLgpzdWIgaGFuZGxlX2FsbAp7CiAgICBteSAoJG1ha2VmaWxlKSA9IEBfOwoK ICAgICMgT3V0cHV0ICdhbGwtYW0nLgoKICAgICMgUHV0IHRoaXMgYXQgdGhlIGJlZ2lubmluZyBm b3IgdGhlIHNha2Ugb2Ygbm9uLUdOVSBtYWtlcy4gIFRoaXMKICAgICMgaXMgc3RpbGwgd3Jvbmcg aWYgdGhlc2UgbWFrZXMgY2FuIHJ1biBwYXJhbGxlbCBqb2JzLiAgQnV0IGl0IGlzCiAgICAjIHJp Z2h0IGVub3VnaC4KICAgIHVuc2hpZnQgKEBhbGwsIGJhc2VuYW1lICgkbWFrZWZpbGUpKTsKCiAg ICBmb3JlYWNoIG15ICRzcGVjIChAY29uZmlnX2hlYWRlcnMpCiAgICAgIHsKCW15ICgkb3V0LCBA aW5zKSA9IHNwbGl0X2NvbmZpZ19maWxlX3NwZWMgKCRzcGVjKTsKCXB1c2ggKEBhbGwsIGJhc2Vu YW1lICgkb3V0KSkKCSAgaWYgZGlybmFtZSAoJG91dCkgZXEgJHJlbGF0aXZlX2RpcjsKICAgICAg fQoKICAgICMgSW5zdGFsbCAnYWxsJyBob29rcy4KICAgIHB1c2ggKEBhbGwsICJhbGwtbG9jYWwi KQogICAgICBpZiB1c2VyX3Bob255X3J1bGUgImFsbC1sb2NhbCI7CgogICAgcHJldHR5X3ByaW50 X3J1bGUgKCJhbGwtYW06IiwgIlx0XHQiLCBAYWxsKTsKICAgIGRlcGVuZCAoJy5QSE9OWScsICdh bGwtYW0nLCAnYWxsJyk7CgoKICAgICMgT3V0cHV0ICdhbGwnLgoKICAgIG15IEBsb2NhbF9oZWFk ZXJzID0gKCk7CiAgICBwdXNoIEBsb2NhbF9oZWFkZXJzLCAnJChCVUlMVF9TT1VSQ0VTKScKICAg ICAgaWYgdmFyICgnQlVJTFRfU09VUkNFUycpOwogICAgZm9yZWFjaCBteSAkc3BlYyAoQGNvbmZp Z19oZWFkZXJzKQogICAgICB7CglteSAoJG91dCwgQGlucykgPSBzcGxpdF9jb25maWdfZmlsZV9z cGVjICgkc3BlYyk7CglwdXNoIEBsb2NhbF9oZWFkZXJzLCBiYXNlbmFtZSAoJG91dCkKCSAgaWYg ZGlybmFtZSAoJG91dCkgZXEgJHJlbGF0aXZlX2RpcjsKICAgICAgfQoKICAgIGlmIChAbG9jYWxf aGVhZGVycykKICAgICAgewoJIyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSBjb25maWcuaCBpcyBidWls dCBiZWZvcmUgd2UgcmVjdXJzZS4KCSMgV2UgYWxzbyB3YW50IHRvIG1ha2Ugc3VyZSB0aGF0IGJ1 aWx0IHNvdXJjZXMgYXJlIGJ1aWx0CgkjIGJlZm9yZSBhbnkgb3JkaW5hcnkgJ2FsbCcgdGFyZ2V0 cyBhcmUgcnVuLiAgV2UgY2FuJ3QgZG8gdGhpcwoJIyBieSBjaGFuZ2luZyB0aGUgb3JkZXIgb2Yg ZGVwZW5kZW5jaWVzIHRvIHRoZSAiYWxsIiBiZWNhdXNlCgkjIHRoYXQgYnJlYWtzIHdoZW4gdXNp bmcgcGFyYWxsZWwgbWFrZXMuICBJbnN0ZWFkIHdlIGhhbmRsZQoJIyB0aGluZ3MgZXhwbGljaXRs eS4KCSRvdXRwdXRfYWxsIC49ICgiYWxsOiBAbG9jYWxfaGVhZGVycyIKCQkJLiAiXG5cdCIKCQkJ LiAnJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJwoJCQkuICh2YXIgKCdTVUJESVJTJykgPyAnYWxs LXJlY3Vyc2l2ZScgOiAnYWxsLWFtJykKCQkJLiAiXG5cbiIpOwogICAgICAgIGRlcGVuZCAoJy5N QUtFJywgJ2FsbCcpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRvdXRwdXRfYWxsIC49ICJh bGw6ICIgLiAodmFyICgnU1VCRElSUycpCgkJCQkgID8gJ2FsbC1yZWN1cnNpdmUnIDogJ2FsbC1h bScpIC4gIlxuXG4iOwogICAgICB9Cn0KCiMgR2VuZXJhdGUgaGVscGVyIHRhcmdldHMgZm9yIHVz ZXItZGVmaW5lZCByZWN1cnNpdmUgdGFyZ2V0cywgd2hlcmUgbmVlZGVkLgpzdWIgaGFuZGxlX3Vz ZXJfcmVjdXJzaW9uICgpCnsKICByZXR1cm4gdW5sZXNzIEBleHRyYV9yZWN1cnNpdmVfdGFyZ2V0 czsKCiAgZGVmaW5lX3ByZXR0eV92YXJpYWJsZSAoJ2FtX19leHRyYV9yZWN1cnNpdmVfdGFyZ2V0 cycsIFRSVUUsIElOVEVSTkFMLAogICAgICAgICAgICAgICAgICAgICAgICAgIG1hcCB7ICIkXy1y ZWN1cnNpdmUiIH0gQGV4dHJhX3JlY3Vyc2l2ZV90YXJnZXRzKTsKICBteSAkYXV4ID0gdmFyICgn U1VCRElSUycpID8gJ3JlY3Vyc2l2ZScgOiAnYW0nOwogIGZvcmVhY2ggbXkgJHRhcmdldCAoQGV4 dHJhX3JlY3Vyc2l2ZV90YXJnZXRzKQogICAgewogICAgICAjIFRoaXMgYWxsb3dzIHRoZSBkZWZh dWx0IHRhcmdldCdzIHJ1bGVzIHRvIGJlIG92ZXJyaWRkZW4gaW4KICAgICAgIyBNYWtlZmlsZS5h bS4KICAgICAgdXNlcl9waG9ueV9ydWxlICgkdGFyZ2V0KTsKICAgICAgZGVwZW5kICgiJHRhcmdl dCIsICIkdGFyZ2V0LSRhdXgiKTsKICAgICAgZGVwZW5kICgiJHRhcmdldC1hbSIsICIkdGFyZ2V0 LWxvY2FsIik7CiAgICAgICMgRXZlcnkgdXNlci1kZWZpbmVkIHJlY3Vyc2l2ZSB0YXJnZXQgJ2Zv bycgKm11c3QqIGhhdmUgYSB2YWxpZAogICAgICAjIGFzc29jaWF0ZWQgJ2Zvby1sb2NhbCcgcnVs ZTsgd2UgZGVmaW5lIGl0IGFzIGFuIGVtcHR5IHJ1bGUgYnkKICAgICAgIyBkZWZhdWx0LCBzbyB0 aGF0IHRoZSB1c2VyIGNhbiB0cmFuc3BhcmVudGx5IGV4dGVuZCBpdCBpbiBoaXMKICAgICAgIyBv d24gTWFrZWZpbGUuYW0uCiAgICAgIHByZXR0eV9wcmludF9ydWxlICgiJHRhcmdldC1sb2NhbDoi LCAnJywgJycpOwogICAgICAjICR0YXJnZXQtcmVjdXJzaXZlIG1pZ2h0IGFzIHdlbGwgYmUgdW5k ZWZpbmVkLCBzbyBkbyBub3QgYWRkCiAgICAgICMgaXQgaGVyZTsgaXQncyB0YWtlbiBjYXJlIG9m IGluIHN1YmRpcnMuYW0gYW55d2F5LgogICAgICBkZXBlbmQgKCIuUEhPTlkiLCAiJHRhcmdldC1h bSIsICIkdGFyZ2V0LWxvY2FsIik7CiAgICB9Cn0KCgojIEhhbmRsZSBjaGVjayBtZXJnZSB0YXJn ZXQgc3BlY2lhbGx5LgpzdWIgZG9fY2hlY2tfbWVyZ2VfdGFyZ2V0ICgpCnsKICAjIEluY2x1ZGUg dXNlci1kZWZpbmVkIGxvY2FsIGZvcm0gb2YgdGFyZ2V0LgogIHB1c2ggQGNoZWNrX3Rlc3RzLCAn Y2hlY2stbG9jYWwnCiAgICBpZiB1c2VyX3Bob255X3J1bGUgJ2NoZWNrLWxvY2FsJzsKCiAgIyBU aGUgY2hlY2sgdGFyZ2V0IG11c3QgZGVwZW5kIG9uIHRoZSBsb2NhbCBlcXVpdmFsZW50IG9mCiAg IyAnYWxsJywgdG8gZW5zdXJlIGFsbCB0aGUgcHJpbWFyeSB0YXJnZXRzIGFyZSBidWlsdC4gIFRo ZW4gaXQKICAjIG11c3QgYnVpbGQgdGhlIGxvY2FsIGNoZWNrIHJ1bGVzLgogICRvdXRwdXRfcnVs ZXMgLj0gImNoZWNrLWFtOiBhbGwtYW1cbiI7CiAgaWYgKEBjaGVjaykKICAgIHsKICAgICAgcHJl dHR5X3ByaW50X3J1bGUgKCJcdFwkKE1BS0UpIFwkKEFNX01BS0VGTEFHUykiLCAiXHQgICIsIEBj aGVjayk7CiAgICAgIGRlcGVuZCAoJy5NQUtFJywgJ2NoZWNrLWFtJyk7CiAgICB9CgogIGlmIChA Y2hlY2tfdGVzdHMpCiAgICB7CiAgICAgIHByZXR0eV9wcmludF9ydWxlICgiXHRcJChNQUtFKSBc JChBTV9NQUtFRkxBR1MpIiwgIlx0ICAiLAoJCQkgQGNoZWNrX3Rlc3RzKTsKICAgICAgZGVwZW5k ICgnLk1BS0UnLCAnY2hlY2stYW0nKTsKICAgIH0KCiAgZGVwZW5kICcuUEhPTlknLCAnY2hlY2sn LCAnY2hlY2stYW0nOwogICMgSGFuZGxlIHJlY3Vyc2lvbi4gIFdlIGhhdmUgdG8gaG9ub3IgQlVJ TFRfU09VUkNFUyBsaWtlIGZvciAnYWxsOicuCiAgJG91dHB1dF9ydWxlcyAuPSAoImNoZWNrOiAi CgkJICAgIC4gKHZhciAoJ0JVSUxUX1NPVVJDRVMnKQoJCSAgICAgICA/ICJcJChCVUlMVF9TT1VS Q0VTKVxuXHRcJChNQUtFKSBcJChBTV9NQUtFRkxBR1MpICIKCQkgICAgICAgOiAnJykKCQkgICAg LiAodmFyICgnU1VCRElSUycpID8gJ2NoZWNrLXJlY3Vyc2l2ZScgOiAnY2hlY2stYW0nKQoJCSAg ICAuICJcbiIpOwogIGRlcGVuZCAoJy5NQUtFJywgJ2NoZWNrJykKICAgIGlmIHZhciAoJ0JVSUxU X1NPVVJDRVMnKTsKfQoKIyBIYW5kbGUgYWxsICdjbGVhbicgdGFyZ2V0cy4Kc3ViIGhhbmRsZV9j bGVhbgp7CiAgbXkgKCRtYWtlZmlsZSkgPSBAXzsKCiAgIyBDbGVhbiB0aGUgZmlsZXMgbGlzdGVk IGluIHVzZXIgdmFyaWFibGVzIGlmIHRoZXkgZXhpc3QuCiAgJGNsZWFuX2ZpbGVzeyckKE1PU1RM WUNMRUFORklMRVMpJ30gPSBNT1NUTFlfQ0xFQU4KICAgIGlmIHZhciAoJ01PU1RMWUNMRUFORklM RVMnKTsKICAkY2xlYW5fZmlsZXN7JyQoQ0xFQU5GSUxFUyknfSA9IENMRUFOCiAgICBpZiB2YXIg KCdDTEVBTkZJTEVTJyk7CiAgJGNsZWFuX2ZpbGVzeyckKERJU1RDTEVBTkZJTEVTKSd9ID0gRElT VF9DTEVBTgogICAgaWYgdmFyICgnRElTVENMRUFORklMRVMnKTsKICAkY2xlYW5fZmlsZXN7JyQo TUFJTlRBSU5FUkNMRUFORklMRVMpJ30gPSBNQUlOVEFJTkVSX0NMRUFOCiAgICBpZiB2YXIgKCdN QUlOVEFJTkVSQ0xFQU5GSUxFUycpOwoKICAjIEJ1aWx0IHNvdXJjZXMgYXJlIGF1dG9tYXRpY2Fs bHkgcmVtb3ZlZCBieSBtYWludGFpbmVyLWNsZWFuLgogICRjbGVhbl9maWxlc3snJChCVUlMVF9T T1VSQ0VTKSd9ID0gTUFJTlRBSU5FUl9DTEVBTgogICAgaWYgdmFyICgnQlVJTFRfU09VUkNFUycp OwoKICAjIENvbXB1dGUgYSBsaXN0IG9mICJybSJzIHRvIHJ1biBmb3IgZWFjaCB0YXJnZXQuCiAg bXkgJXJtcyA9IChNT1NUTFlfQ0xFQU4sIFtdLAoJICAgICBDTEVBTiwgW10sCgkgICAgIERJU1Rf Q0xFQU4sIFtdLAoJICAgICBNQUlOVEFJTkVSX0NMRUFOLCBbXSk7CgogIGZvcmVhY2ggbXkgJGZp bGUgKHNvcnQga2V5cyAlY2xlYW5fZmlsZXMpCiAgICB7CiAgICAgIG15ICR3aGVuID0gJGNsZWFu X2ZpbGVzeyRmaWxlfTsKICAgICAgcHJvZ19lcnJvciAnaW52YWxpZCBlbnRyeSBpbiAlY2xlYW5f ZmlsZXMnCgl1bmxlc3MgZXhpc3RzICRybXN7JHdoZW59OwoKICAgICAgcHVzaCBAeyRybXN7JHdo ZW59fSwgIlx0LVwkKGFtX19ybV9mKSAkZmlsZVxuIjsKICAgIH0KCiAgJG91dHB1dF9ydWxlcyAu PSBmaWxlX2NvbnRlbnRzCiAgICAoJ2NsZWFuJywKICAgICBuZXcgQXV0b21ha2U6OkxvY2F0aW9u LAogICAgIE1PU1RMWUNMRUFOX1JNUyAgICAgID0+IGpvaW4gKCcnLCBzb3J0IEB7JHJtc3smTU9T VExZX0NMRUFOfX0pLAogICAgIENMRUFOX1JNUyAgICAgICAgICAgID0+IGpvaW4gKCcnLCBzb3J0 IEB7JHJtc3smQ0xFQU59fSksCiAgICAgRElTVENMRUFOX1JNUyAgICAgICAgPT4gam9pbiAoJycs IHNvcnQgQHskcm1zeyZESVNUX0NMRUFOfX0pLAogICAgIE1BSU5UQUlORVJfQ0xFQU5fUk1TID0+ IGpvaW4gKCcnLCBzb3J0IEB7JHJtc3smTUFJTlRBSU5FUl9DTEVBTn19KSwKICAgICBNQUtFRklM RSAgICAgICAgICAgICA9PiBiYXNlbmFtZSAkbWFrZWZpbGUsCiAgICAgKTsKfQoKCiMgU3Vicm91 dGluZSBmb3IgaGFuZGxlX2ZhY3RvcmVkX2RlcGVuZGVuY2llcygpIHRvIGxldCAnLlBIT05ZJyBh bmQKIyBvdGhlciAnLlRBUkdFVFMnIGJlIGxhc3QuICBUaGlzIGlzIG1lYW50IHRvIGJlIHVzZWQg YXMgYSBjb21wYXJpc29uCiMgc3Vicm91dGluZSBwYXNzZWQgdG8gdGhlIHNvcnQgYnVpbHQtaW50 LgpzdWIgdGFyZ2V0X2NtcAp7CiAgcmV0dXJuIDAgaWYgJGEgZXEgJGI7CgogIG15ICRhMSA9IHN1 YnN0ciAoJGEsIDAsIDEpOwogIG15ICRiMSA9IHN1YnN0ciAoJGIsIDAsIDEpOwogIGlmICgkYTEg bmUgJGIxKQogICAgewogICAgICByZXR1cm4gLTEgaWYgJGIxIGVxICcuJzsKICAgICAgcmV0dXJu IDEgaWYgJGExIGVxICcuJzsKICAgIH0KICByZXR1cm4gJGEgY21wICRiOwp9CgoKIyBIYW5kbGUg ZXZlcnl0aGluZyByZWxhdGVkIHRvIGdhdGhlcmVkIHRhcmdldHMuCnN1YiBoYW5kbGVfZmFjdG9y ZWRfZGVwZW5kZW5jaWVzICgpCnsKICAjIFJlamVjdCBiYWQgaG9va3MuCiAgZm9yZWFjaCBteSAk dXRhcmcgKCd1bmluc3RhbGwtZGF0YS1sb2NhbCcsICd1bmluc3RhbGwtZGF0YS1ob29rJywKCQkg ICAgICd1bmluc3RhbGwtZXhlYy1sb2NhbCcsICd1bmluc3RhbGwtZXhlYy1ob29rJywKCQkgICAg ICd1bmluc3RhbGwtZHZpLWxvY2FsJywKCQkgICAgICd1bmluc3RhbGwtaHRtbC1sb2NhbCcsCgkJ ICAgICAndW5pbnN0YWxsLWluZm8tbG9jYWwnLAoJCSAgICAgJ3VuaW5zdGFsbC1wZGYtbG9jYWwn LAoJCSAgICAgJ3VuaW5zdGFsbC1wcy1sb2NhbCcpCiAgICB7CiAgICAgIG15ICR4ID0gJHV0YXJn OwogICAgICAkeCA9fiBzLy0uKi0vLS87CiAgICAgIHJlamVjdF9ydWxlICgkdXRhcmcsICJ1c2Ug JyR4Jywgbm90ICckdXRhcmcnIik7CiAgICB9CgogIHJlamVjdF9ydWxlICgnaW5zdGFsbC1sb2Nh bCcsCgkgICAgICAgInVzZSAnaW5zdGFsbC1kYXRhLWxvY2FsJyBvciAnaW5zdGFsbC1leGVjLWxv Y2FsJywgIgoJICAgICAgIC4gIm5vdCAnaW5zdGFsbC1sb2NhbCciKTsKCiAgcmVqZWN0X3J1bGUg KCdpbnN0YWxsLWhvb2snLAoJICAgICAgICJ1c2UgJ2luc3RhbGwtZGF0YS1ob29rJyBvciAnaW5z dGFsbC1leGVjLWhvb2snLCAiCgkgICAgICAgLiAibm90ICdpbnN0YWxsLWhvb2snIik7CgogICMg SW5zdGFsbCB0aGUgLWxvY2FsIGhvb2tzLgogIGZvcmVhY2ggKHNvcnQga2V5cyAlZGVwZW5kZW5j aWVzKQogICAgewogICAgICAjIEhvb2tzIGFyZSBpbnN0YWxsZWQgb24gdGhlIC1hbSB0YXJnZXRz LgogICAgICBzLy1hbSQvLyBvciBuZXh0OwogICAgICBkZXBlbmQgKCIkXy1hbSIsICIkXy1sb2Nh bCIpCglpZiB1c2VyX3Bob255X3J1bGUgIiRfLWxvY2FsIjsKICAgIH0KCiAgIyBJbnN0YWxsIHRo ZSAtaG9vayBob29rcy4KICAjIEZJWE1FOiBXaHkgbm90IGJlIGFzIGxpYmVyYWwgYXMgd2UgYXJl IHdpdGggLWxvY2FsIGhvb2tzPwogIGZvcmVhY2ggKCdpbnN0YWxsLWV4ZWMnLCAnaW5zdGFsbC1k YXRhJywgJ3VuaW5zdGFsbCcpCiAgICB7CiAgICAgIGlmICh1c2VyX3Bob255X3J1bGUgIiRfLWhv b2siKQoJewoJICBkZXBlbmQgKCcuTUFLRScsICIkXy1hbSIpOwoJICByZWdpc3Rlcl9hY3Rpb24o IiRfLWFtIiwKCQkJICAoIlx0XEBcJChOT1JNQUxfSU5TVEFMTClcbiIKCQkJICAgLiAiXHRcJChN QUtFKSBcJChBTV9NQUtFRkxBR1MpICRfLWhvb2siKSk7Cgl9CiAgICB9CgogICMgQWxsIHRoZSBy ZXF1aXJlZCB0YXJnZXRzIGFyZSBwaG9ueS4KICBkZXBlbmQgKCcuUEhPTlknLCBzb3J0IGtleXMg JXJlcXVpcmVkX3RhcmdldHMpOwoKICAjIEFjdHVhbGx5IG91dHB1dCBnYXRoZXJlZCB0YXJnZXRz LgogIGZvcmVhY2ggKHNvcnQgdGFyZ2V0X2NtcCBrZXlzICVkZXBlbmRlbmNpZXMpCiAgICB7CiAg ICAgICMgSWYgdGhlcmUgaXMgbm90aGluZyBhYm91dCB0aGlzIGd1eSwgc2tpcCBpdC4KICAgICAg bmV4dAoJdW5sZXNzIChAeyRkZXBlbmRlbmNpZXN7JF99fQoJCXx8ICRhY3Rpb25zeyRffQoJCXx8 ICRyZXF1aXJlZF90YXJnZXRzeyRffSk7CgogICAgICAjIERlZmluZSBnYXRoZXJlZCB0YXJnZXRz IGluIHVuZGVmaW5lZCBjb25kaXRpb25zLgogICAgICAjIEZJWE1FOiBSaWdodCBub3cgd2UgbXVz dCBoYW5kbGUgLlBIT05ZIGFzIGFuIGV4Y2VwdGlvbiwKICAgICAgIyBiZWNhdXNlIHBlb3BsZSB3 cml0ZSB0aGluZ3MgbGlrZQogICAgICAjICAgIC5QSE9OWTogbXlwaG9ueXRhcmdldAogICAgICAj IHRvIGFwcGVuZCBkZXBlbmRlbmNpZXMuICBUaGlzIHdvdWxkIG5vdCB3b3JrIGlmIEF1dG9tYWtl CiAgICAgICMgcmVmcmFpbmVkIGZyb20gZGVmaW5pbmcgaXRzIG93biAuUEhPTlkgdGFyZ2V0IGFz IGl0IGRvZXMKICAgICAgIyB3aXRoIG90aGVyIG92ZXJyaWRkZW4gdGFyZ2V0cy4KICAgICAgIyBM aWtld2lzZSBmb3IgJy5NQUtFJyBhbmQgJy5QUkVDSU9VUycuCiAgICAgIG15IEB1bmRlZmluZWRf Y29uZHMgPSAoVFJVRSwpOwogICAgICBpZiAoJF8gbmUgJy5QSE9OWScgJiYgJF8gbmUgJy5NQUtF JyAmJiAkXyBuZSAnLlBSRUNJT1VTJykKCXsKCSAgQHVuZGVmaW5lZF9jb25kcyA9CgkgICAgQXV0 b21ha2U6OlJ1bGU6OmRlZmluZSAoJF8sICdpbnRlcm5hbCcsCgkJCQkgICAgUlVMRV9BVVRPTUFL RSwgVFJVRSwgSU5URVJOQUwpOwoJfQogICAgICBteSBAdW5pcV9kZXBzID0gdW5pcSAoc29ydCBA eyRkZXBlbmRlbmNpZXN7JF99fSk7CiAgICAgIGZvcmVhY2ggbXkgJGNvbmQgKEB1bmRlZmluZWRf Y29uZHMpCgl7CgkgIG15ICRjb25kc3RyID0gJGNvbmQtPnN1YnN0X3N0cmluZzsKCSAgcHJldHR5 X3ByaW50X3J1bGUgKCIkY29uZHN0ciRfOiIsICIkY29uZHN0clx0IiwgQHVuaXFfZGVwcyk7Cgkg ICRvdXRwdXRfcnVsZXMgLj0gJGFjdGlvbnN7JF99IGlmIGRlZmluZWQgJGFjdGlvbnN7JF99OwoJ ICAkb3V0cHV0X3J1bGVzIC49ICJcbiI7Cgl9CiAgICB9Cn0KCgpzdWIgaGFuZGxlX3Rlc3RzX2Rl amFnbnUgKCkKewogICAgcHVzaCAoQGNoZWNrX3Rlc3RzLCAnY2hlY2stREVKQUdOVScpOwogICAg JG91dHB1dF9ydWxlcyAuPSBmaWxlX2NvbnRlbnRzICgnZGVqYWdudScsIG5ldyBBdXRvbWFrZTo6 TG9jYXRpb24pOwp9CgojIGhhbmRsZV9wZXJfc3VmZml4X3Rlc3QgKCRURVNUX1NVRkZJWCwgWyVU UkFOU0ZPUk1dKQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpzdWIgaGFuZGxlX3Blcl9zdWZmaXhfdGVzdAp7CiAgbXkgKCR0ZXN0X3N1ZmZpeCwg JXRyYW5zZm9ybSkgPSBAXzsKICBteSAoJHBmeCwgJGdlbmVyaWMsICRhbV9leGVleHQpOwogIGlm ICgkdGVzdF9zdWZmaXggZXEgJycpCiAgICB7CiAgICAgICRwZnggPSAnJzsKICAgICAgJGdlbmVy aWMgPSAwOwogICAgICAkYW1fZXhlZXh0ID0gJ0ZBTFNFJzsKICAgIH0KICBlbHNlCiAgICB7CiAg ICAgIHByb2dfZXJyb3IgKCJ0ZXN0IHN1ZmZpeCAnJHRlc3Rfc3VmZml4JyBsYWNrcyBsZWFkaW5n IGRvdCIpCiAgICAgICAgdW5sZXNzICR0ZXN0X3N1ZmZpeCA9fiBtL15cLiguKikvOwogICAgICAk cGZ4ID0gdWMgKCQxKSAuICdfJzsKICAgICAgJGdlbmVyaWMgPSAxOwogICAgICAkYW1fZXhlZXh0 ID0gZXhpc3RzICRjb25maWd1cmVfdmFyc3snRVhFRVhUJ30gPyAnYW1fX0VYRUVYVCcKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ0ZBTFNFJzsK ICAgIH0KICAjIFRoZSAidGVzdCBkcml2ZXIiIHByb2dyYW0sIGRlcHV0ZWQgdG8gaGFuZGxlIHRl c3RzIHByb3RvY29sIHVzZWQgYnkKICAjIHRlc3Qgc2NyaXB0cy4gIEJ5IGRlZmF1bHQsIGl0J3Mg YXNzdW1lZCB0aGF0IG5vIHByb3RvY29sIGlzIHVzZWQsIHNvCiAgIyB3ZSBmYWxsIGJhY2sgdG8g dGhlIG9sZCBiZWhhdmlvciwgaW1wbGVtZW50ZWQgYnkgdGhlICd0ZXN0LWRyaXZlcicKICAjIGF1 eGlsaWFyeSBzY3JpcHQuCiAgaWYgKCEgdmFyICIke3BmeH1MT0dfRFJJVkVSIikKICAgIHsKICAg ICAgcmVxdWlyZV9jb25mX2ZpbGUgKCJwYXJhbGxlbC10ZXN0cyIsIEZPUkVJR04sICd0ZXN0LWRy aXZlcicpOwogICAgICBkZWZpbmVfdmFyaWFibGUgKCIke3BmeH1MT0dfRFJJVkVSIiwKICAgICAg ICAgICAgICAgICAgICAgICAiXCQoU0hFTEwpICRhbV9jb25maWdfYXV4X2Rpci90ZXN0LWRyaXZl ciIsCiAgICAgICAgICAgICAgICAgICAgICAgSU5URVJOQUwpOwogICAgfQogIG15ICRkcml2ZXIg PSAnJCgnIC4gJHBmeCAuICdMT0dfRFJJVkVSKSc7CiAgbXkgJGRyaXZlcl9mbGFncyA9ICckKEFN XycgLiAkcGZ4IC4gJ0xPR19EUklWRVJfRkxBR1MpJwogICAgICAgICAgICAgICAgICAgICAgIC4g JyAkKCcgLiAkcGZ4IC4gJ0xPR19EUklWRVJfRkxBR1MpJzsKICBteSAkY29tcGlsZSA9ICIke3Bm eH1MT0dfQ09NUElMRSI7CiAgZGVmaW5lX3ZhcmlhYmxlICgkY29tcGlsZSwKICAgICAgICAgICAg ICAgICAgICckKCcgLiAkcGZ4IC4gJ0xPR19DT01QSUxFUiknCiAgICAgICAgICAgICAgICAgICAg ICAuICcgJChBTV8nIC4gICRwZnggLiAnTE9HX0ZMQUdTKScKICAgICAgICAgICAgICAgICAgICAg IC4gJyAkKCcgLiAkcGZ4IC4gJ0xPR19GTEFHUyknLAogICAgICAgICAgICAgICAgICAgICBJTlRF Uk5BTCk7CiAgJG91dHB1dF9ydWxlcyAuPSBmaWxlX2NvbnRlbnRzICgnY2hlY2syJywgbmV3IEF1 dG9tYWtlOjpMb2NhdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRU5F UklDID0+ICRnZW5lcmljLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERSSVZF UiA9PiAkZHJpdmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERSSVZFUl9G TEFHUyA9PiAkZHJpdmVyX2ZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IENPTVBJTEUgPT4gJyQoJyAuICRjb21waWxlIC4gJyknLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEVYVCA9PiAkdGVzdF9zdWZmaXgsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYW1fX0VYRUVYVCA9PiAkYW1fZXhlZXh0LAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICV0cmFuc2Zvcm0pOwp9CgojIGlzX3ZhbGlkX3Rlc3RfZXh0ZW5zaW9u ICgkRVhUKQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFJldHVybiB0cnVlIGlm ICRFWFQgY2FuIGFwcGVhciBpbiAkKFRFU1RfRVhURU5TSU9OUyksIHJldHVybiBmYWxzZQojIG90 aGVyd2lzZS4Kc3ViIGlzX3ZhbGlkX3Rlc3RfZXh0ZW5zaW9uCnsKICBteSAkZXh0ID0gc2hpZnQ7 CiAgcmV0dXJuIDEKICAgIGlmICgkZXh0ID1+IC9eXC5bYS16QS1aX11bYS16QS1aMC05X10qJC8p OwogIHJldHVybiAxCiAgICBpZiAoZXhpc3RzICRjb25maWd1cmVfdmFyc3snRVhFRVhUJ30gJiYg JGV4dCBlcSBzdWJzdCAoJ0VYRUVYVCcpKTsKICByZXR1cm4gMDsKfQoKCnN1YiBoYW5kbGVfdGVz dHMgKCkKewogIGlmIChvcHRpb24gJ2RlamFnbnUnKQogICAgewogICAgICBoYW5kbGVfdGVzdHNf ZGVqYWdudTsKICAgIH0KICBlbHNlCiAgICB7CiAgICAgIGZvcmVhY2ggbXkgJGMgKCdERUpBVE9P TCcsICdSVU5URVNUJywgJ1JVTlRFU1RGTEFHUycpCgl7CgkgIHJlamVjdF92YXIgKCRjLCAiJyRj JyBkZWZpbmVkIGJ1dCAnZGVqYWdudScgbm90IGluICIKCQkgICAgICAuICInQVVUT01BS0VfT1BU SU9OUyciKTsKCX0KICAgIH0KCiAgaWYgKHZhciAoJ1RFU1RTJykpCiAgICB7CiAgICAgIHB1c2gg KEBjaGVja190ZXN0cywgJ2NoZWNrLVRFU1RTJyk7CiAgICAgIG15ICRjaGVja19kZXBzID0gIkBj aGVjayI7CiAgICAgICRvdXRwdXRfcnVsZXMgLj0gZmlsZV9jb250ZW50cyAoJ2NoZWNrJywgbmV3 IEF1dG9tYWtlOjpMb2NhdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTRVJJQUxfVEVTVFMgPT4gISEgb3B0aW9uICdzZXJpYWwtdGVzdHMnLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIENIRUNLX0RFUFMgPT4gJGNoZWNrX2RlcHMpOwoKICAg ICAgIyBUZXN0cyB0aGF0IGFyZSBrbm93biBwcm9ncmFtcyBzaG91bGQgaGF2ZSAkKEVYRUVYVCkg YXBwZW5kZWQuCiAgICAgICMgRm9yIG1hdGNoaW5nIHB1cnBvc2VzLCB3ZSBuZWVkIHRvIGFkanVz dCBYRkFJTF9URVNUUyBhcyB3ZWxsLgogICAgICBhcHBlbmRfZXhlZXh0IHsgZXhpc3RzICRrbm93 bl9wcm9ncmFtc3skX1swXX0gfSAnVEVTVFMnOwogICAgICBhcHBlbmRfZXhlZXh0IHsgZXhpc3Rz ICRrbm93bl9wcm9ncmFtc3skX1swXX0gfSAnWEZBSUxfVEVTVFMnCglpZiAodmFyICgnWEZBSUxf VEVTVFMnKSk7CgogICAgICBpZiAoISBvcHRpb24gJ3NlcmlhbC10ZXN0cycpCiAgICAgICAgewoJ ICBkZWZpbmVfdmFyaWFibGUgKCdURVNUX1NVSVRFX0xPRycsICd0ZXN0LXN1aXRlLmxvZycsIElO VEVSTkFMKTsKCSAgbXkgJHN1ZmYgPSAnLnRlc3QnOwoJICBteSAkYXRfZXhlZXh0ID0gJyc7Cgkg IG15ICRoYW5kbGVfZXhlZXh0ID0gZXhpc3RzICRjb25maWd1cmVfdmFyc3snRVhFRVhUJ307Cgkg IGlmICgkaGFuZGxlX2V4ZWV4dCkKCSAgICB7CgkgICAgICAkYXRfZXhlZXh0ID0gc3Vic3QgKCdF WEVFWFQnKTsKCSAgICAgICRzdWZmID0gJGF0X2V4ZWV4dCAgLiAnICcgLiAkc3VmZjsKCSAgICB9 CiAgICAgICAgICBpZiAoISB2YXIgJ1RFU1RfRVhURU5TSU9OUycpCiAgICAgICAgICAgIHsKCSAg ICAgIGRlZmluZV92YXJpYWJsZSAoJ1RFU1RfRVhURU5TSU9OUycsICRzdWZmLCBJTlRFUk5BTCk7 CiAgICAgICAgICAgIH0KICAgICAgICAgIG15ICR2YXIgPSB2YXIgJ1RFU1RfRVhURU5TSU9OUyc7 CiAgICAgICAgICAjIEN1cnJlbnRseSwgd2UgYXJlIG5vdCBhYmxlIHRvIGRlYWwgd2l0aCBjb25k aXRpb25hbCBjb250ZW50cwogICAgICAgICAgIyBpbiBURVNUX0VYVEVOU0lPTlMuCiAgICAgICAg ICBpZiAoJHZhci0+aGFzX2NvbmRpdGlvbmFsX2NvbnRlbnRzKQogICAgICAgICAgIHsKCSAgICAg bXNnX3ZhciAndW5zdXBwb3J0ZWQnLCAkdmFyLAogICAgICAgICAgICAgICAgICAgICAiJ1RFU1Rf RVhURU5TSU9OUycgY2Fubm90IGhhdmUgY29uZGl0aW9uYWwgY29udGVudHMiOwogICAgICAgICAg IH0KCSAgbXkgQHRlc3Rfc3VmZml4ZXMgPSAkdmFyLT52YWx1ZV9hc19saXN0X3JlY3Vyc2l2ZTsK ICAgICAgICAgIGlmICgobXkgQGludmFsaWRfdGVzdF9zdWZmaXhlcyA9CiAgICAgICAgICAgICAg ICAgIGdyZXAgeyAhaXNfdmFsaWRfdGVzdF9leHRlbnNpb24gJF8gfSBAdGVzdF9zdWZmaXhlcykg PiAwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgZXJyb3IgJHZhci0+cmRlZiAoVFJVRSkt PmxvY2F0aW9uLAogICAgICAgICAgICAgICAgICAgICJpbnZhbGlkIHRlc3QgZXh0ZW5zaW9uczog QGludmFsaWRfdGVzdF9zdWZmaXhlcyI7CiAgICAgICAgICAgIH0KICAgICAgICAgIEB0ZXN0X3N1 ZmZpeGVzID0gZ3JlcCB7IGlzX3ZhbGlkX3Rlc3RfZXh0ZW5zaW9uICRfIH0gQHRlc3Rfc3VmZml4 ZXM7CgkgIGlmICgkaGFuZGxlX2V4ZWV4dCkKCSAgICB7CgkgICAgICB1bnNoaWZ0IChAdGVzdF9z dWZmaXhlcywgJGF0X2V4ZWV4dCkKCSAgICAgICAgdW5sZXNzIEB0ZXN0X3N1ZmZpeGVzICYmICR0 ZXN0X3N1ZmZpeGVzWzBdIGVxICRhdF9leGVleHQ7CgkgICAgfQoJICB1bnNoaWZ0IChAdGVzdF9z dWZmaXhlcywgJycpOwoKCSAgdHJhbnNmb3JtX3ZhcmlhYmxlX3JlY3Vyc2l2ZWx5CgkgICAgKCdU RVNUUycsICdURVNUX0xPR1MnLCAnYW1fX3Rlc3Rsb2dzJywgMSwgSU5URVJOQUwsCgkgICAgICBz dWIgewoJICAgICAgICBteSAoJHN1YnZhciwgJHZhbCwgJGNvbmQsICRmdWxsX2NvbmQpID0gQF87 CgkJbXkgJG9iaiA9ICR2YWw7CgkJcmV0dXJuICRvYmoKCQkgIGlmICR2YWwgPX4gL15cQC4qXEAk LzsKCQkkb2JqID1+IHMvXCRcKEVYRUVYVFwpJC8vbzsKCgkJaWYgKCR2YWwgPX4gLyhcJFwoKHRv cF8pP3NyY2RpclwpKVwvL28pCgkJICB7CgkJICAgIG1zZyAoJ2Vycm9yJywgJHN1YnZhci0+cmRl ZiAoJGNvbmQpLT5sb2NhdGlvbiwKCQkJICJ1c2luZyAnJDEnIGluIFRFU1RTIGlzIGN1cnJlbnRs eSBicm9rZW46ICckdmFsJyIpOwoJCSAgfQoKCQlmb3JlYWNoIG15ICR0ZXN0X3N1ZmZpeCAoQHRl c3Rfc3VmZml4ZXMpCgkJICB7CgkJICAgIG5leHQKCQkgICAgICBpZiAkdGVzdF9zdWZmaXggZXEg JGF0X2V4ZWV4dCB8fCAkdGVzdF9zdWZmaXggZXEgJyc7CgkJICAgIHJldHVybiBzdWJzdHIgKCRv YmosIDAsIGxlbmd0aCAoJG9iaikgLSBsZW5ndGggKCR0ZXN0X3N1ZmZpeCkpIC4gJy5sb2cnCgkJ ICAgICAgaWYgc3Vic3RyICgkb2JqLCAtIGxlbmd0aCAoJHRlc3Rfc3VmZml4KSkgZXEgJHRlc3Rf c3VmZml4OwoJCSAgfQoJCW15ICRiYXNlID0gJG9iajsKCQkkb2JqIC49ICcubG9nJzsKICAgICAg ICAgICAgICAgIGhhbmRsZV9wZXJfc3VmZml4X3Rlc3QgKCcnLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgT0JKID0+ICRvYmosCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBCQVNFID0+ICRiYXNlLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU09VUkNFID0+ICR2YWwpOwoJICAgICAgICByZXR1cm4gJG9iajsKCSAg ICAgIH0pOwoKCSAgbXkgJG5oZWxwZXI9MTsKCSAgbXkgJHByZXYgPSAnVEVTVFMnOwoJICBteSAk cG9zdCA9ICcnOwoJICBteSAkbGFzdF9zdWZmaXggPSAkdGVzdF9zdWZmaXhlc1skI3Rlc3Rfc3Vm Zml4ZXNdOwoJICBteSAkY3VyID0gJyc7CgkgIGZvcmVhY2ggbXkgJHRlc3Rfc3VmZml4IChAdGVz dF9zdWZmaXhlcykKCSAgICB7CgkgICAgICBpZiAoJHRlc3Rfc3VmZml4IGVxICRsYXN0X3N1ZmZp eCkKCSAgICAgICAgewoJCSAgJGN1ciA9ICdURVNUX0xPR1MnOwoJCX0KCSAgICAgIGVsc2UKCSAg ICAgICAgewoJCSAgJGN1ciA9ICdhbV9fdGVzdF9sb2dzJyAuICRuaGVscGVyOwoJCX0KCSAgICAg IGRlZmluZV92YXJpYWJsZSAoJGN1ciwKCQknJCgnIC4gJHByZXYgLiAnOicgLiAkdGVzdF9zdWZm aXggLiAkcG9zdCAuICc9LmxvZyknLCBJTlRFUk5BTCk7CgkgICAgICAkcG9zdCA9ICcubG9nJzsK CSAgICAgICRwcmV2ID0gJGN1cjsKCSAgICAgICRuaGVscGVyKys7CgkgICAgICBpZiAoJHRlc3Rf c3VmZml4IG5lICRhdF9leGVleHQgJiYgJHRlc3Rfc3VmZml4IG5lICcnKQoJICAgICAgICB7CiAg ICAgICAgICAgICAgICAgIGhhbmRsZV9wZXJfc3VmZml4X3Rlc3QgKCR0ZXN0X3N1ZmZpeCwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0JKID0+ICcnLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCQVNFID0+ICckKicsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNPVVJDRSA9PiAnJDwnKTsKCSAgICAg ICAgfQoJICAgIH0KCSAgJGNsZWFuX2ZpbGVzeyckKFRFU1RfTE9HUyknfSA9IE1PU1RMWV9DTEVB TjsKCSAgJGNsZWFuX2ZpbGVzeyckKFRFU1RfTE9HUzoubG9nPS50cnMpJ30gPSBNT1NUTFlfQ0xF QU47CgkgICRjbGVhbl9maWxlc3snJChURVNUX1NVSVRFX0xPRyknfSA9IE1PU1RMWV9DTEVBTjsK CX0KICAgIH0KfQoKc3ViIGhhbmRsZV9lbWFjc19saXNwICgpCnsKICBteSBAZWxmaWxlcyA9IGFt X2luc3RhbGxfdmFyICgnLWNhbmRpc3QnLCAnbGlzcCcsICdMSVNQJywKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAnbGlzcCcsICdub2luc3QnKTsKCiAgcmV0dXJuIGlmICEgQGVsZmls ZXM7CgogIGRlZmluZV9wcmV0dHlfdmFyaWFibGUgKCdhbV9fRUxGSUxFUycsIFRSVUUsIElOVEVS TkFMLAoJCQkgIG1hcCB7ICRfLT5bMV0gfSBAZWxmaWxlcyk7CiAgZGVmaW5lX3ByZXR0eV92YXJp YWJsZSAoJ2FtX19FTENGSUxFUycsIFRSVUUsIElOVEVSTkFMLAoJCQkgICckKGFtX19FTEZJTEVT Oi5lbD0uZWxjKScpOwogICMgVGhpcyBvbmUgY2FuIGJlIG92ZXJyaWRkZW4gYnkgdXNlcnMuCiAg ZGVmaW5lX3ByZXR0eV92YXJpYWJsZSAoJ0VMQ0ZJTEVTJywgVFJVRSwgSU5URVJOQUwsICckKExJ U1A6LmVsPS5lbGMpJyk7CgogIHB1c2ggQGFsbCwgJyQoRUxDRklMRVMpJzsKCiAgcmVxdWlyZV92 YXJpYWJsZXMgKCRlbGZpbGVzWzBdWzBdLCAiRW1hY3MgTGlzcCBzb3VyY2VzIHNlZW4iLCBUUlVF LAoJCSAgICAgJ0VNQUNTJywgJ2xpc3BkaXInKTsKfQoKc3ViIGhhbmRsZV9weXRob24gKCkKewog IG15IEBweWZpbGVzID0gYW1faW5zdGFsbF92YXIgKCctZGVmYXVsdGRpc3QnLCAncHl0aG9uJywg J1BZVEhPTicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vaW5zdCcpOwogIHJl dHVybiBpZiAhIEBweWZpbGVzOwoKICByZXF1aXJlX3ZhcmlhYmxlcyAoJHB5ZmlsZXNbMF1bMF0s ICJQeXRob24gc291cmNlcyBzZWVuIiwgVFJVRSwgJ1BZVEhPTicpOwogIHJlcXVpcmVfY29uZl9m aWxlICgkcHlmaWxlc1swXVswXSwgRk9SRUlHTiwgJ3B5LWNvbXBpbGUnKTsKICBkZWZpbmVfdmFy aWFibGUgKCdweV9jb21waWxlJywgIiRhbV9jb25maWdfYXV4X2Rpci9weS1jb21waWxlIiwgSU5U RVJOQUwpOwp9CgpzdWIgaGFuZGxlX2phdmEgKCkKewogICAgbXkgQHNvdXJjZWxpc3QgPSBhbV9p bnN0YWxsX3ZhciAoJy1jYW5kaXN0JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICdqYXZhJywgJ0pBVkEnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J25vaW5zdCcsICdjaGVjaycpOwogICAgcmV0dXJuIGlmICEgQHNvdXJjZWxpc3Q7CgogICAgbXkg QHByZWZpeGVzID0gYW1fcHJpbWFyeV9wcmVmaXhlcyAoJ0pBVkEnLCAxLAoJCQkJICAgICAgICAn bm9pbnN0JywgJ2NoZWNrJyk7CgogICAgbXkgJGRpcjsKICAgIG15IEBqYXZhX3NvdXJjZXMgPSAo KTsKICAgIGZvcmVhY2ggbXkgJHByZWZpeCAoQHByZWZpeGVzKQogICAgICB7CiAgICAgICAgKG15 ICRjdXJzID0gJHByZWZpeCkgPX4gcy9eKD86bm9iYXNlXyk/KD86ZGlzdF98bm9kaXN0Xyk/Ly87 CgoJbmV4dAoJICBpZiAkY3VycyBlcSAnRVhUUkEnOwoKICAgICAgICBwdXNoIEBqYXZhX3NvdXJj ZXMsICckKCcgLiAkcHJlZml4IC4gJ19KQVZBJyAuICcpJzsKCglpZiAoZGVmaW5lZCAkZGlyKQoJ ICB7CgkgICAgZXJyX3ZhciAiJHtjdXJzfV9KQVZBIiwgIm11bHRpcGxlIF9KQVZBIHByaW1hcmll cyBpbiB1c2UiCgkgICAgIHVubGVzcyAkY3VycyBlcSAkZGlyOwoJICB9CgoJJGRpciA9ICRjdXJz OwogICAgICB9CgogICAgZGVmaW5lX3ByZXR0eV92YXJpYWJsZSAoJ2FtX19qYXZhX3NvdXJjZXMn LCBUUlVFLCBJTlRFUk5BTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJAamF2YV9zb3Vy Y2VzIik7CgogICAgaWYgKCRkaXIgZXEgJ2NoZWNrJykKICAgICAgewogICAgICAgIHB1c2ggKEBj aGVjaywgImNsYXNzJGRpci5zdGFtcCIpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKICAgICAg ICBwdXNoIChAYWxsLCAiY2xhc3MkZGlyLnN0YW1wIik7CiAgICAgIH0KfQoKCnN1YiBoYW5kbGVf bWlub3Jfb3B0aW9ucyAoKQp7CiAgaWYgKG9wdGlvbiAncmVhZG1lLWFscGhhJykKICAgIHsKICAg ICAgaWYgKCRyZWxhdGl2ZV9kaXIgZXEgJy4nKQoJewoJICBpZiAoJHBhY2thZ2VfdmVyc2lvbiAh fiAvXiRHTklUU19WRVJTSU9OX1BBVFRFUk4kLykKCSAgICB7CgkgICAgICBtc2cgKCdlcnJvci1n bml0cycsICRwYWNrYWdlX3ZlcnNpb25fbG9jYXRpb24sCgkJICAgInZlcnNpb24gJyRwYWNrYWdl X3ZlcnNpb24nIGRvZXNuJ3QgZm9sbG93ICIgLgoJCSAgICJHbml0cyBzdGFuZGFyZHMiKTsKCSAg ICB9CgkgIGlmIChkZWZpbmVkICQxICYmICgtZiAnUkVBRE1FLWFscGhhJyB8fCAtZiAnUkVBRE1F LWFscGhhLm1kJykpCgkgICAgewoJICAgICAgIyBUaGlzIG1lYW5zIHdlIGhhdmUgYW4gYWxwaGEg cmVsZWFzZS4gIFNlZQoJICAgICAgIyBHTklUU19WRVJTSU9OX1BBVFRFUk4gZm9yIGRldGFpbHMu CgkgICAgICBteSAkYWYgPSAtZiAnUkVBRE1FLWFscGhhJyA/ICdSRUFETUUtYWxwaGEnIDogJ1JF QURNRS1hbHBoYS5tZCc7CgkgICAgICBwdXNoX2Rpc3RfY29tbW9uICgkYWYpOwoJICAgIH0KCX0K ICAgIH0KfQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIwoKIyAoJE9VVFBVVCwgQElOUFVUUykKIyBzcGxpdF9jb25maWdfZmls ZV9zcGVjICgkU1BFQykKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBEZWNvZGUg dGhlIEF1dG9jb25mIHN5bnRheCBmb3IgY29uZmlnIGZpbGVzIChmaWxlcywgaGVhZGVycywgbGlu a3MKIyBldGMuKS4Kc3ViIHNwbGl0X2NvbmZpZ19maWxlX3NwZWMKewogIG15ICgkc3BlYykgPSBA XzsKICBteSAoJG91dHB1dCwgQGlucHV0cykgPSBzcGxpdCAoLzovLCAkc3BlYyk7CgogIHB1c2gg QGlucHV0cywgIiRvdXRwdXQuaW4iCiAgICB1bmxlc3MgQGlucHV0czsKCiAgcmV0dXJuICgkb3V0 cHV0LCBAaW5wdXRzKTsKfQoKIyAkaW5wdXQKIyBsb2NhdGVfYW0gKEBQT1NTSUJMRV9TT1VSQ0VT KQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQUNfQ09ORklHX0ZJTEVTIGFsbG93 IHNwZWNpZmljYXRpb25zIHN1Y2ggYXMgTWFrZWZpbGU6dG9wLmluOm1pZC5pbjpib3QuaW4KIyBU aGlzIGZ1bmN0aW9ucyByZXR1cm5zIHRoZSBmaXJzdCAqLmluIGZpbGUgZm9yIHdoaWNoIGEgKi5h bSBleGlzdHMuCiMgSXQgcmV0dXJucyB1bmRlZiBvdGhlcndpc2UuCnN1YiBsb2NhdGVfYW0Kewog IG15IChAcmVzdCkgPSBAXzsKICBteSAkaW5wdXQ7CiAgZm9yZWFjaCBteSAkZmlsZSAoQHJlc3Qp CiAgICB7CiAgICAgIGlmICgoJGZpbGUgPX4gL14oLiopXC5pbiQvKSAmJiAtZiAiJDEuYW0iKQoJ ewoJICAkaW5wdXQgPSAkZmlsZTsKCSAgbGFzdDsKCX0KICAgIH0KICByZXR1cm4gJGlucHV0Owp9 CgpteSAlbWFrZV9saXN0OwoKIyBzY2FuX2F1dG9jb25mX2NvbmZpZ19maWxlcyAoJFdIRVJFLCAk Q09ORklHLUZJTEVTKQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiMgU3R1ZHkgJENPTkZJRy1GSUxFUyB3aGljaCBpcyB0aGUgZmlyc3QgYXJndW1l bnQgdG8gQUNfQ09ORklHX0ZJTEVTCiMgKG9yIEFDX09VVFBVVCkuCnN1YiBzY2FuX2F1dG9jb25m X2NvbmZpZ19maWxlcwp7CiAgbXkgKCR3aGVyZSwgJGNvbmZpZ19maWxlcykgPSBAXzsKCiAgIyBM b29rIGF0IHBvdGVudGlhbCBNYWtlZmlsZS5hbSdzLgogIGZvcmVhY2ggKHNwbGl0ICcgJywgJGNv bmZpZ19maWxlcykKICAgIHsKICAgICAgIyBNdXN0IHNraXAgZW1wdHkgc3RyaW5nIGZvciBQZXJs IDQuCiAgICAgIG5leHQgaWYgJF8gZXEgIlxcIiB8fCAkXyBlcSAnJzsKCiAgICAgICMgSGFuZGxl ICRsb2NhbDokaW5wdXQgc3ludGF4LgogICAgICBteSAoJGxvY2FsLCBAcmVzdCkgPSBzcGxpdCAo LzovKTsKICAgICAgQHJlc3QgPSAoIiRsb2NhbC5pbiIsKSB1bmxlc3MgQHJlc3Q7CiAgICAgICMg S2VlcCBpbiBzeW5jIHdpdGggdGVzdCAnY29uZmZpbGUtbGVhZGluZy1kb3Quc2gnLgogICAgICBt c2cgKCd1bnN1cHBvcnRlZCcsICR3aGVyZSwKICAgICAgICAgICAib21pdCBsZWFkaW5nICcuLycg ZnJvbSBjb25maWcgZmlsZSBuYW1lcyBzdWNoIGFzICckbG9jYWwnOyIKICAgICAgICAgICAuICJc bnJlbWFrZSBydWxlcyBtaWdodCBiZSBzdWJ0bHkgYnJva2VuIG90aGVyd2lzZSIpCiAgICAgICAg aWYgKCRsb2NhbCA9fiAvXlwuXC8vKTsKICAgICAgbXkgJGlucHV0ID0gbG9jYXRlX2FtIEByZXN0 OwogICAgICBpZiAoJGlucHV0KQoJewoJICAjIFdlIGhhdmUgYSBmaWxlIHRoYXQgYXV0b21ha2Ug c2hvdWxkIGdlbmVyYXRlLgoJICAkbWFrZV9saXN0eyRpbnB1dH0gPSBqb2luICgnOicsICgkbG9j YWwsIEByZXN0KSk7Cgl9CiAgICAgIGVsc2UKCXsKCSAgIyBXZSBoYXZlIGEgZmlsZSB0aGF0IGF1 dG9tYWtlIHNob3VsZCBjYXVzZSB0byBiZQoJICAjIHJlYnVpbHQsIGJ1dCBzaG91bGRuJ3QgZ2Vu ZXJhdGUgaXRzZWxmLgoJICBwdXNoIChAb3RoZXJfaW5wdXRfZmlsZXMsICRfKTsKCX0KICAgICAg JGFjX2NvbmZpZ19maWxlc19sb2NhdGlvbnskbG9jYWx9ID0gJHdoZXJlOwogICAgICAkYWNfY29u ZmlnX2ZpbGVzX2NvbmRpdGlvbnskbG9jYWx9ID0KICAgICAgICBuZXcgQXV0b21ha2U6OkNvbmRp dGlvbiAoQGNvbmRfc3RhY2spCiAgICAgICAgICBpZiAoQGNvbmRfc3RhY2spOwogICAgfQp9CgoK c3ViIHNjYW5fYXV0b2NvbmZfdHJhY2VzCnsKICBteSAoJGZpbGVuYW1lKSA9IEBfOwoKICAjIE1h Y3JvcyB0byB0cmFjZSwgd2l0aCB0aGVpciBtaW5pbWFsIG51bWJlciBvZiBhcmd1bWVudHMuCiAg IwogICMgSU1QT1JUQU5UOiBJZiB5b3UgYWRkIGEgbWFjcm8gaGVyZSwgeW91IHNob3VsZCBhbHNv IGFkZCB0aGlzIG1hY3JvCiAgIyA9PT09PT09PT0gIHRvIEF1dG9tYWtlLXByZXNlbGVjdGlvbiBp biBhdXRvY29uZi9saWIvYXV0b200dGUuaW4uCiAgbXkgJXRyYWNlZCA9ICgKCQlBQ19DQU5PTklD QUxfQlVJTEQgPT4gMCwKCQlBQ19DQU5PTklDQUxfSE9TVCA9PiAwLAoJCUFDX0NBTk9OSUNBTF9U QVJHRVQgPT4gMCwKCQlBQ19DT05GSUdfQVVYX0RJUiA9PiAxLAoJCUFDX0NPTkZJR19GSUxFUyA9 PiAxLAoJCUFDX0NPTkZJR19IRUFERVJTID0+IDEsCgkJQUNfQ09ORklHX0xJQk9CSl9ESVIgPT4g MSwKCQlBQ19DT05GSUdfTElOS1MgPT4gMSwKCQlBQ19GQ19TUkNFWFQgPT4gMSwKCQlBQ19JTklU ID0+IDAsCgkJQUNfTElCU09VUkNFID0+IDEsCgkJQUNfUkVRVUlSRV9BVVhfRklMRSA9PiAxLAoJ CUFDX1NVQlNUX1RSQUNFID0+IDEsCgkJQU1fQVVUT01BS0VfVkVSU0lPTiA9PiAxLAogICAgICAg ICAgICAgICAgQU1fUFJPR19NS0RJUl9QID0+IDAsCgkJQU1fQ09ORElUSU9OQUwgPT4gMiwKCQlB TV9FWFRSQV9SRUNVUlNJVkVfVEFSR0VUUyA9PiAxLAoJCUFNX0dOVV9HRVRURVhUID0+IDAsCgkJ QU1fR05VX0dFVFRFWFRfSU5UTF9TVUJESVIgPT4gMCwKCQlBTV9JTklUX0FVVE9NQUtFID0+IDAs CgkJQU1fTUFJTlRBSU5FUl9NT0RFID0+IDAsCgkJQU1fUFJPR19BUiA9PiAwLAoJCV9BTV9TVUJT VF9OT1RNQUtFID0+IDEsCgkJX0FNX0NPTkRfSUYgPT4gMSwKCQlfQU1fQ09ORF9FTFNFID0+IDEs CgkJX0FNX0NPTkRfRU5ESUYgPT4gMSwKCQlMVF9TVVBQT1JURURfVEFHID0+IDEsCgkJX0xUX0FD X1RBR0NPTkZJRyA9PiAwLAoJCW00X2luY2x1ZGUgPT4gMSwKCQltNF9zaW5jbHVkZSA9PiAxLAoJ CXNpbmNsdWRlID0+IDEsCgkgICAgICApOwoKICAjIFN1cHByZXNzIGFsbCB3YXJuaW5ncyBmcm9t IHRoaXMgaW52b2NhdGlvbiBvZiBhdXRvY29uZi4KICAjIFRoZSB1c2VyIGlzIHByZXN1bWFibHkg YWJvdXQgdG8gcnVuIGF1dG9jb25mIHRoZW1zZWx2ZXMKICAjIGFuZCB3aWxsIHNlZSBpdHMgd2Fy bmluZ3MgdGhlbi4KICBsb2NhbCAkRU5We1dBUk5JTkdTfSA9ICdub25lJzsKCiAgbXkgJHRyYWNl cyA9ICgkRU5We0FVVE9DT05GfSB8fCAnYXV0b2NvbmYnKSAuICIgIjsKCiAgIyBVc2UgYSBzZXBh cmF0b3IgdW5saWtlbHkgdG8gYmUgdXNlZCwgbm90ICc6JywgdGhlIGRlZmF1bHQsIHdoaWNoCiAg IyBoYXMgYSBwcmVjaXNlIG1lYW5pbmcgZm9yIEFDX0NPTkZJR19GSUxFUyBhbmQgc28gb24uCiAg JHRyYWNlcyAuPSBqb2luICgnICcsCgkJICAgbWFwIHsgIi0tdHJhY2U9JF8iIC4gJzpcJGY6XCRs OjpcJGQ6Olwkbjo6XCR7Ojp9JScgfQoJCSAgIChzb3J0IGtleXMgJXRyYWNlZCkpOwoKICB2ZXJi ICJydW5uaW5nIFdBUk5JTkdTPSRFTlZ7V0FSTklOR1N9ICR0cmFjZXMiOwogIG15ICR0cmFjZWZo ID0gbmV3IEF1dG9tYWtlOjpYRmlsZSAoIiR0cmFjZXMgJGZpbGVuYW1lIHwiKTsKCiAgQGNvbmRf c3RhY2sgPSAoKTsKICBteSAkd2hlcmU7CgogIHdoaWxlICgkXyA9ICR0cmFjZWZoLT5nZXRsaW5l KQogICAgewogICAgICBjaG9tcDsKICAgICAgbXkgKCRoZXJlLCAkZGVwdGgsIEBhcmdzKSA9IHNw bGl0ICgvOjovKTsKICAgICAgJHdoZXJlID0gbmV3IEF1dG9tYWtlOjpMb2NhdGlvbiAkaGVyZTsK ICAgICAgbXkgJG1hY3JvID0gJGFyZ3NbMF07CgogICAgICBwcm9nX2Vycm9yICgidW5yZXF1ZXN0 ZWQgdHJhY2UgJyRtYWNybyciKQoJdW5sZXNzIGV4aXN0cyAkdHJhY2VkeyRtYWNyb307CgogICAg ICAjIFNraXAgYW5kIGRpYWdub3NlIG1hbGZvcm1lZCBjYWxscy4KICAgICAgaWYgKCQjYXJncyA8 ICR0cmFjZWR7JG1hY3JvfSkKCXsKCSAgbXNnICgnc3ludGF4JywgJHdoZXJlLCAibm90IGVub3Vn aCBhcmd1bWVudHMgZm9yICRtYWNybyIpOwoJICBuZXh0OwoJfQoKICAgICAgIyBBbHBoYWJldGlj YWwgb3JkZXJpbmcgcGxlYXNlLgogICAgICBpZiAoJG1hY3JvIGVxICdBQ19DQU5PTklDQUxfQlVJ TEQnKQoJewoJICBpZiAoJHNlZW5fY2Fub25pY2FsIDw9IEFDX0NBTk9OSUNBTF9CVUlMRCkKCSAg ICB7CgkgICAgICAkc2Vlbl9jYW5vbmljYWwgPSBBQ19DQU5PTklDQUxfQlVJTEQ7CgkgICAgfQoJ fQogICAgICBlbHNpZiAoJG1hY3JvIGVxICdBQ19DQU5PTklDQUxfSE9TVCcpCgl7CgkgIGlmICgk c2Vlbl9jYW5vbmljYWwgPD0gQUNfQ0FOT05JQ0FMX0hPU1QpCgkgICAgewoJICAgICAgJHNlZW5f Y2Fub25pY2FsID0gQUNfQ0FOT05JQ0FMX0hPU1Q7CgkgICAgfQoJfQogICAgICBlbHNpZiAoJG1h Y3JvIGVxICdBQ19DQU5PTklDQUxfVEFSR0VUJykKCXsKCSAgJHNlZW5fY2Fub25pY2FsID0gQUNf Q0FOT05JQ0FMX1RBUkdFVDsKCX0KICAgICAgZWxzaWYgKCRtYWNybyBlcSAnQUNfQ09ORklHX0FV WF9ESVInKQoJewoJICBpZiAoJHNlZW5faW5pdF9hdXRvbWFrZSkKCSAgICB7CgkgICAgICBlcnJv ciAoJHdoZXJlLCAiQUNfQ09ORklHX0FVWF9ESVIgbXVzdCBiZSBjYWxsZWQgYmVmb3JlICIKCQkg ICAgIC4gIkFNX0lOSVRfQVVUT01BS0UgLi4uIiwgcGFydGlhbCA9PiAxKTsKCSAgICAgIGVycm9y ICgkc2Vlbl9pbml0X2F1dG9tYWtlLCAiLi4uIEFNX0lOSVRfQVVUT01BS0UgY2FsbGVkIGhlcmUi KTsKCSAgICB9CgkgICRjb25maWdfYXV4X2RpciA9ICRhcmdzWzFdOwoJICAkY29uZmlnX2F1eF9k aXJfc2V0X2luX2NvbmZpZ3VyZV9hYyA9IDE7CgkgIGNoZWNrX2RpcmVjdG9yeSAoJGNvbmZpZ19h dXhfZGlyLCAkd2hlcmUpOwoJfQogICAgICBlbHNpZiAoJG1hY3JvIGVxICdBQ19DT05GSUdfRklM RVMnKQoJewoJICAjIExvb2sgYXQgcG90ZW50aWFsIE1ha2VmaWxlLmFtJ3MuCgkgIHNjYW5fYXV0 b2NvbmZfY29uZmlnX2ZpbGVzICgkd2hlcmUsICRhcmdzWzFdKTsKCX0KICAgICAgZWxzaWYgKCRt YWNybyBlcSAnQUNfQ09ORklHX0hFQURFUlMnKQoJewoJICBmb3JlYWNoIG15ICRzcGVjIChzcGxp dCAoJyAnLCAkYXJnc1sxXSkpCgkgICAgewoJICAgICAgbXkgKCRkZXN0LCBAc3JjKSA9IHNwbGl0 ICgnOicsICRzcGVjKTsKCSAgICAgICRhY19jb25maWdfZmlsZXNfbG9jYXRpb257JGRlc3R9ID0g JHdoZXJlOwoJICAgICAgcHVzaCBAY29uZmlnX2hlYWRlcnMsICRzcGVjOwoJICAgIH0KCX0KICAg ICAgZWxzaWYgKCRtYWNybyBlcSAnQUNfQ09ORklHX0xJQk9CSl9ESVInKQoJewoJICAkY29uZmln X2xpYm9ial9kaXIgPSAkYXJnc1sxXTsKCSAgY2hlY2tfZGlyZWN0b3J5ICgkY29uZmlnX2xpYm9i al9kaXIsICR3aGVyZSk7Cgl9CiAgICAgIGVsc2lmICgkbWFjcm8gZXEgJ0FDX0NPTkZJR19MSU5L UycpCgl7CgkgIGZvcmVhY2ggbXkgJHNwZWMgKHNwbGl0ICgnICcsICRhcmdzWzFdKSkKCSAgICB7 CgkgICAgICBteSAoJGRlc3QsICRzcmMpID0gc3BsaXQgKCc6JywgJHNwZWMpOwoJICAgICAgJGFj X2NvbmZpZ19maWxlc19sb2NhdGlvbnskZGVzdH0gPSAkd2hlcmU7CgkgICAgICBwdXNoIEBjb25m aWdfbGlua3MsICRzcGVjOwoJICAgIH0KCX0KICAgICAgZWxzaWYgKCRtYWNybyBlcSAnQUNfRkNf U1JDRVhUJykKCXsKCSAgbXkgJHN1ZmZpeCA9ICRhcmdzWzFdOwoJICAjIFRoZXNlIGZsYWdzIGFy ZSB1c2VkIGFzICVTT1VSQ0VGTEFHJSBpbiBkZXBlbmQyLmFtLAoJICAjIHdoZXJlIHRoZSB0cmFp bGluZyBzcGFjZSBpcyBpbXBvcnRhbnQuCgkgICRzb3VyY2VmbGFnc3snLicgLiAkc3VmZml4fSA9 ICckKEZDRkxBR1NfJyAuICRzdWZmaXggLiAnKSAnCgkgICAgaWYgKCRzdWZmaXggZXEgJ2Y5MCcg fHwgJHN1ZmZpeCBlcSAnZjk1JyB8fCAkc3VmZml4IGVxICdmMDMnIHx8ICRzdWZmaXggZXEgJ2Yw OCcpOwoJfQogICAgICBlbHNpZiAoJG1hY3JvIGVxICdBQ19JTklUJykKCXsKCSAgaWYgKGRlZmlu ZWQgJGFyZ3NbMl0pCgkgICAgewoJICAgICAgJHBhY2thZ2VfdmVyc2lvbiA9ICRhcmdzWzJdOwoJ ICAgICAgJHBhY2thZ2VfdmVyc2lvbl9sb2NhdGlvbiA9ICR3aGVyZTsKCSAgICB9Cgl9CiAgICAg IGVsc2lmICgkbWFjcm8gZXEgJ0FDX0xJQlNPVVJDRScpCgl7CgkgICRsaWJzb3VyY2VzeyRhcmdz WzFdfSA9ICRoZXJlOwoJfQogICAgICBlbHNpZiAoJG1hY3JvIGVxICdBQ19SRVFVSVJFX0FVWF9G SUxFJykKCXsKCSAgIyBPbmx5IHJlbWVtYmVyIHRoZSBmaXJzdCB0aW1lIGEgZmlsZSBpcyByZXF1 aXJlZC4KCSAgJHJlcXVpcmVkX2F1eF9maWxleyRhcmdzWzFdfSA9ICR3aGVyZQoJICAgIHVubGVz cyBleGlzdHMgJHJlcXVpcmVkX2F1eF9maWxleyRhcmdzWzFdfTsKCX0KICAgICAgZWxzaWYgKCRt YWNybyBlcSAnQUNfU1VCU1RfVFJBQ0UnKQoJewoJICAjIEp1c3QgY2hlY2sgZm9yIGFscGhhbnVt ZXJpYyBpbiBBQ19TVUJTVF9UUkFDRS4gIElmIHlvdSBkbwoJICAjIEFDX1NVQlNUKDUpLCB0aGVu IHRvbyBiYWQuCgkgICRjb25maWd1cmVfdmFyc3skYXJnc1sxXX0gPSAkd2hlcmUKCSAgICBpZiAk YXJnc1sxXSA9fiAvXlx3KyQvOwoJfQogICAgICBlbHNpZiAoJG1hY3JvIGVxICdBTV9BVVRPTUFL RV9WRVJTSU9OJykKCXsKCSAgZXJyb3IgKCR3aGVyZSwKCQkgInZlcnNpb24gbWlzbWF0Y2guICBU aGlzIGlzIEF1dG9tYWtlICRWRVJTSU9OLFxuIiAuCgkJICJidXQgdGhlIGRlZmluaXRpb24gdXNl ZCBieSB0aGlzIEFNX0lOSVRfQVVUT01BS0VcbiIgLgoJCSAiY29tZXMgZnJvbSBBdXRvbWFrZSAk YXJnc1sxXS4gIFlvdSBzaG91bGQgcnVuXG4iIC4KCQkgImF1dG9yZWNvbmYgLWYgKG9yIG90aGVy d2lzZSBlcmFzZSBhbGwgb2xkIGZpbGVzLCBydW5cbiIgLgoJCSAiYWNsb2NhbCB0byByZWNyZWF0 ZSBhY2xvY2FsLm00LCBhbmQgcmVydW4gYXV0b21ha2UpLiIsCgkJICMgJD8gPSA2MyBpcyB1c2Vk IHRvIGluZGljYXRlIHZlcnNpb24gbWlzbWF0Y2ggdG8gbWlzc2luZy4KCQkgZXhpdF9jb2RlID0+ IDYzKQoJICAgIGlmICRWRVJTSU9OIG5lICRhcmdzWzFdOwoKCSAgJHNlZW5fYXV0b21ha2VfdmVy c2lvbiA9IDE7Cgl9CiAgICAgIGVsc2lmICgkbWFjcm8gZXEgJ0FNX1BST0dfTUtESVJfUCcpCgl7 CgkgIG1zZyAnb2Jzb2xldGUnLCAkd2hlcmUsIDw8J0VPRic7ClRoZSAnQU1fUFJPR19NS0RJUl9Q JyBtYWNybyBpcyBkZXByZWNhdGVkLCBhbmQgaXRzIHVzZSBpcyBkaXNjb3VyYWdlZC4KWW91IHNo b3VsZCB1c2UgdGhlIEF1dG9jb25mLXByb3ZpZGVkICdBQ19QUk9HX01LRElSX1AnIG1hY3JvIGlu c3RlYWQsCmFuZCB1c2UgJyQoTUtESVJfUCknIGluc3RlYWQgb2YgJyQobWtkaXJfcCknaW4geW91 ciBNYWtlZmlsZS5hbSBmaWxlcy4KRU9GCgl9CiAgICAgIGVsc2lmICgkbWFjcm8gZXEgJ0FNX0NP TkRJVElPTkFMJykKCXsKCSAgJGNvbmZpZ3VyZV9jb25keyRhcmdzWzFdfSA9ICR3aGVyZTsKCX0K ICAgICAgZWxzaWYgKCRtYWNybyBlcSAnQU1fRVhUUkFfUkVDVVJTSVZFX1RBUkdFVFMnKQoJewog ICAgICAgICAgIyBFbXB0eSBsZWFkaW5nL3RyYWlsaW5nIGZpZWxkcyBtaWdodCBiZSBwcm9kdWNl ZCBieSBzcGxpdCwKICAgICAgICAgICMgaGVuY2UgdGhlIGdyZXAgaXMgcmVhbGx5IG5lZWRlZC4K ICAgICAgICAgIHB1c2ggQGV4dHJhX3JlY3Vyc2l2ZV90YXJnZXRzLAogICAgICAgICAgICAgICBn cmVwICgvLi8sIChzcGxpdCAvXHMrLywgJGFyZ3NbMV0pKTsKCX0KICAgICAgZWxzaWYgKCRtYWNy byBlcSAnQU1fR05VX0dFVFRFWFQnKQoJewoJICAkc2Vlbl9nZXR0ZXh0ID0gJHdoZXJlOwoJICAk YWNfZ2V0dGV4dF9sb2NhdGlvbiA9ICR3aGVyZTsKCSAgJHNlZW5fZ2V0dGV4dF9leHRlcm5hbCA9 IGdyZXAgKCRfIGVxICdleHRlcm5hbCcsIEBhcmdzKTsKCX0KICAgICAgZWxzaWYgKCRtYWNybyBl cSAnQU1fR05VX0dFVFRFWFRfSU5UTF9TVUJESVInKQoJewoJICAkc2Vlbl9nZXR0ZXh0X2ludGwg PSAkd2hlcmU7Cgl9CiAgICAgIGVsc2lmICgkbWFjcm8gZXEgJ0FNX0lOSVRfQVVUT01BS0UnKQoJ ewoJICAkc2Vlbl9pbml0X2F1dG9tYWtlID0gJHdoZXJlOwoJICBpZiAoZGVmaW5lZCAkYXJnc1sy XSkKCSAgICB7CiAgICAgICAgICAgICAgbXNnICdvYnNvbGV0ZScsICR3aGVyZSwgPDwnRU9GJzsK QU1fSU5JVF9BVVRPTUFLRTogdHdvLSBhbmQgdGhyZWUtYXJndW1lbnRzIGZvcm1zIGFyZSBkZXBy ZWNhdGVkLiAgRm9yIG1vcmUgaW5mbywgc2VlOgpodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJl L2F1dG9tYWtlL21hbnVhbC9hdXRvbWFrZS5odG1sI01vZGVybml6ZS1BTV8wMDVmSU5JVF8wMDVm QVVUT01BS0UtaW52b2NhdGlvbgpFT0YKCSAgICAgICRwYWNrYWdlX3ZlcnNpb24gPSAkYXJnc1sy XTsKCSAgICAgICRwYWNrYWdlX3ZlcnNpb25fbG9jYXRpb24gPSAkd2hlcmU7CgkgICAgfQoJICBl bHNpZiAoZGVmaW5lZCAkYXJnc1sxXSkKCSAgICB7CgkgICAgICBteSBAb3B0cyA9IHNwbGl0ICgn ICcsICRhcmdzWzFdKTsKCSAgICAgIEBvcHRzID0gbWFwIHsgeyBvcHRpb24gPT4gJF8sIHdoZXJl ID0+ICR3aGVyZSB9IH0gQG9wdHM7CgkgICAgICBleGl0ICRleGl0X2NvZGUgdW5sZXNzIHByb2Nl c3NfZ2xvYmFsX29wdGlvbl9saXN0IChAb3B0cyk7CgkgICAgfQoJfQogICAgICBlbHNpZiAoJG1h Y3JvIGVxICdBTV9NQUlOVEFJTkVSX01PREUnKQoJewoJICAkc2Vlbl9tYWludF9tb2RlID0gJHdo ZXJlOwoJfQogICAgICBlbHNpZiAoJG1hY3JvIGVxICdBTV9QUk9HX0FSJykKCXsKCSAgJHNlZW5f YXIgPSAkd2hlcmU7Cgl9CiAgICAgIGVsc2lmICgkbWFjcm8gZXEgJ19BTV9DT05EX0lGJykKICAg ICAgICB7CgkgIGNvbmRfc3RhY2tfaWYgKCcnLCAkYXJnc1sxXSwgJHdoZXJlKTsKCSAgZXJyb3Ig KCR3aGVyZSwgIm1pc3NpbmcgbTQgcXVvdGluZywgbWFjcm8gZGVwdGggJGRlcHRoIikKCSAgICBp ZiAoJGRlcHRoICE9IDEpOwoJfQogICAgICBlbHNpZiAoJG1hY3JvIGVxICdfQU1fQ09ORF9FTFNF JykKICAgICAgICB7CgkgIGNvbmRfc3RhY2tfZWxzZSAoJyEnLCAkYXJnc1sxXSwgJHdoZXJlKTsK CSAgZXJyb3IgKCR3aGVyZSwgIm1pc3NpbmcgbTQgcXVvdGluZywgbWFjcm8gZGVwdGggJGRlcHRo IikKCSAgICBpZiAoJGRlcHRoICE9IDEpOwoJfQogICAgICBlbHNpZiAoJG1hY3JvIGVxICdfQU1f Q09ORF9FTkRJRicpCiAgICAgICAgewoJICBjb25kX3N0YWNrX2VuZGlmICh1bmRlZiwgdW5kZWYs ICR3aGVyZSk7CgkgIGVycm9yICgkd2hlcmUsICJtaXNzaW5nIG00IHF1b3RpbmcsIG1hY3JvIGRl cHRoICRkZXB0aCIpCgkgICAgaWYgKCRkZXB0aCAhPSAxKTsKCX0KICAgICAgZWxzaWYgKCRtYWNy byBlcSAnX0FNX1NVQlNUX05PVE1BS0UnKQoJewoJICAkaWdub3JlZF9jb25maWd1cmVfdmFyc3sk YXJnc1sxXX0gPSAkd2hlcmU7Cgl9CiAgICAgIGVsc2lmICgkbWFjcm8gZXEgJ200X2luY2x1ZGUn CgkgICAgIHx8ICRtYWNybyBlcSAnbTRfc2luY2x1ZGUnCgkgICAgIHx8ICRtYWNybyBlcSAnc2lu Y2x1ZGUnKQoJewoJICAjIFNraXAgbWlzc2luZyAnc2luY2x1ZGUnZCBmaWxlcy4KCSAgbmV4dCBp ZiAkbWFjcm8gbmUgJ200X2luY2x1ZGUnICYmICEgLWYgJGFyZ3NbMV07CgoJICAjIFNvbWUgbW9k aWZpZWQgdmVyc2lvbnMgb2YgQXV0b2NvbmYgZG9uJ3QgdXNlCgkgICMgZnJvemVuIGZpbGVzLiAg Q29uc2VxdWVudGx5IGl0J3MgcG9zc2libGUgdGhhdCB3ZSBzZWUgYWxsCgkgICMgbTRfaW5jbHVk ZSdzIHBlcmZvcm1lZCBkdXJpbmcgQXV0b2NvbmYncyBzdGFydHVwLgoJICAjIE9idmlvdXNseSB3 ZSBkb24ndCB3YW50IHRvIGRpc3RyaWJ1dGUgQXV0b2NvbmYncyBmaWxlcwoJICAjIHNvIHdlIHNr aXAgYWJzb2x1dGUgZmlsZW5hbWVzIGhlcmUuCgkgIHB1c2ggQGNvbmZpZ3VyZV9kZXBzLCAnJCh0 b3Bfc3JjZGlyKS8nIC4gJGFyZ3NbMV0KCSAgICB1bmxlc3MgJGhlcmUgPX4gbSxeKD86XHc6KT9b XFwvXSw7CgkgICMgS2VlcCB0cmFjayBvZiB0aGUgZ3JlYXRlc3QgdGltZXN0YW1wLgoJICBpZiAo LWUgJGFyZ3NbMV0pCgkgICAgewoJICAgICAgbXkgJG10aW1lID0gbXRpbWUgJGFyZ3NbMV07Cgkg ICAgICAkY29uZmlndXJlX2RlcHNfZ3JlYXRlc3RfdGltZXN0YW1wID0gJG10aW1lCgkJaWYgJG10 aW1lID4gJGNvbmZpZ3VyZV9kZXBzX2dyZWF0ZXN0X3RpbWVzdGFtcDsKCSAgICB9Cgl9CiAgICAg IGVsc2lmICgkbWFjcm8gZXEgJ0xUX1NVUFBPUlRFRF9UQUcnKQoJewoJICAkbGlidG9vbF90YWdz eyRhcmdzWzFdfSA9IDE7CgkgICRsaWJ0b29sX25ld19hcGkgPSAxOwoJfQogICAgICBlbHNpZiAo JG1hY3JvIGVxICdfTFRfQUNfVEFHQ09ORklHJykKCXsKCSAgIyBfTFRfQUNfVEFHQ09ORklHIGlz IGFuIG9sZCBtYWNybyBwcmVzZW50IGluIExpYnRvb2wgMS41LgoJICAjIFdlIHVzZSBpdCB0byBk ZXRlY3Qgd2hldGhlciB0YWdzIGFyZSBzdXBwb3J0ZWQuICBPdXIKCSAgIyBwcmVmZXJyZWQgaW50 ZXJmYWNlIGlzIExUX1NVUFBPUlRFRF9UQUcsIGJ1dCBpdCB3YXMKCSAgIyBpbnRyb2R1Y2VkIGlu IExpYnRvb2wgMS42LgoJICBpZiAoMCA9PSBrZXlzICVsaWJ0b29sX3RhZ3MpCgkgICAgewoJICAg ICAgIyBIYXJkY29kZSB0aGUgdGFncyBzdXBwb3J0ZWQgYnkgTGlidG9vbCAxLjUuCgkgICAgICAl bGlidG9vbF90YWdzID0gKENDID0+IDEsIENYWCA9PiAxLCBHQ0ogPT4gMSwgRjc3ID0+IDEsCiAg ICAgCSAgICAgICAgICAgICAgICAgICAgICAgQTY4ID0+IDEpOwoJICAgIH0KCX0KICAgIH0KCiAg ZXJyb3IgKCR3aGVyZSwgImNvbmRpdGlvbiBzdGFjayBub3QgcHJvcGVybHkgY2xvc2VkIikKICAg IGlmIChAY29uZF9zdGFjayk7CgogICR0cmFjZWZoLT5jbG9zZTsKfQoKCiMgQ2hlY2sgd2hldGhl ciB3ZSB1c2UgJ2NvbmZpZ3VyZS5hYycgb3IgJ2NvbmZpZ3VyZS5pbicuCiMgU2NhbiBpdCAoYW5k IHBvc3NpYmx5ICdhY2xvY2FsLm00JykgZm9yIGludGVyZXN0aW5nIHRoaW5ncy4KIyBXZSBtdXN0 IHNjYW4gYWNsb2NhbC5tNCBiZWNhdXNlIHRoZXJlIG1pZ2h0IGJlIEFDX1NVQlNUcyBhbmQgc3Vj aCB0aGVyZS4Kc3ViIHNjYW5fYXV0b2NvbmZfZmlsZXMgKCkKewogICMgUmVpbml0aWFsaXplIGxp YnNvdXJjZXMgaGVyZS4gIFRoaXMgaXNuJ3QgcmVhbGx5IG5lY2Vzc2FyeSwKICAjIHNpbmNlIHdl IGN1cnJlbnRseSBhc3N1bWUgdGhlcmUgaXMgb25seSBvbmUgY29uZmlndXJlLmFjLiAgQnV0CiAg IyB0aGF0IHdvbid0IGFsd2F5cyBiZSB0aGUgY2FzZS4KICAlbGlic291cmNlcyA9ICgpOwoKICAj IEtlZXAgdHJhY2sgb2YgdGhlIHlvdW5nZXN0IGNvbmZpZ3VyZSBkZXBlbmRlbmN5LgogICRjb25m aWd1cmVfZGVwc19ncmVhdGVzdF90aW1lc3RhbXAgPSBtdGltZSAkY29uZmlndXJlX2FjOwogIGlm ICgtZSAnYWNsb2NhbC5tNCcpCiAgICB7CiAgICAgIG15ICRtdGltZSA9IG10aW1lICdhY2xvY2Fs Lm00JzsKICAgICAgJGNvbmZpZ3VyZV9kZXBzX2dyZWF0ZXN0X3RpbWVzdGFtcCA9ICRtdGltZQoJ aWYgJG10aW1lID4gJGNvbmZpZ3VyZV9kZXBzX2dyZWF0ZXN0X3RpbWVzdGFtcDsKICAgIH0KCiAg c2Nhbl9hdXRvY29uZl90cmFjZXMgKCRjb25maWd1cmVfYWMpOwoKICBAY29uZmlndXJlX2lucHV0 X2ZpbGVzID0gc29ydCBrZXlzICVtYWtlX2xpc3Q7CiAgIyBTZXQgaW5wdXQgYW5kIG91dHB1dCBm aWxlcyBpZiBub3Qgc3BlY2lmaWVkIGJ5IHVzZXIuCiAgaWYgKCEgQGlucHV0X2ZpbGVzKQogICAg ewogICAgICBAaW5wdXRfZmlsZXMgPSBAY29uZmlndXJlX2lucHV0X2ZpbGVzOwogICAgICAlb3V0 cHV0X2ZpbGVzID0gJW1ha2VfbGlzdDsKICAgIH0KCgogIGlmICghICRzZWVuX2luaXRfYXV0b21h a2UpCiAgICB7CiAgICAgIGVycl9hYyAoIm5vIHByb3BlciBpbnZvY2F0aW9uIG9mIEFNX0lOSVRf QVVUT01BS0Ugd2FzIGZvdW5kLlxuWW91ICIKCSAgICAgIC4gInNob3VsZCB2ZXJpZnkgdGhhdCAk Y29uZmlndXJlX2FjIGludm9rZXMgQU1fSU5JVF9BVVRPTUFLRSwiCgkgICAgICAuICJcbnRoYXQg YWNsb2NhbC5tNCBpcyBwcmVzZW50IGluIHRoZSB0b3AtbGV2ZWwgZGlyZWN0b3J5LFxuIgoJICAg ICAgLiAiYW5kIHRoYXQgYWNsb2NhbC5tNCB3YXMgcmVjZW50bHkgcmVnZW5lcmF0ZWQgIgoJICAg ICAgLiAiKHVzaW5nIGFjbG9jYWwpIik7CiAgICB9CiAgZWxzZQogICAgewogICAgICBpZiAoISAk c2Vlbl9hdXRvbWFrZV92ZXJzaW9uKQoJewoJICBpZiAoLWYgJ2FjbG9jYWwubTQnKQoJICAgIHsK CSAgICAgIGVycm9yICgkc2Vlbl9pbml0X2F1dG9tYWtlLAogICAgICAgICAgICAgICAgICAgICAi eW91ciBpbXBsZW1lbnRhdGlvbiBvZiBBTV9JTklUX0FVVE9NQUtFIGNvbWVzIGZyb21cbiIgLgog ICAgICAgICAgICAgICAgICAgICAiYW4gb2xkIEF1dG9tYWtlIHZlcnNpb24uICBZb3Ugc2hvdWxk IHJ1blxuIiAuCiAgICAgICAgICAgICAgICAgICAgICJhdXRvcmVjb25mIC1mIChvciBvdGhlcndp c2UgZXJhc2UgYWxsIG9sZCBmaWxlcywgcnVuXG4iIC4KICAgICAgICAgICAgICAgICAgICAgImFj bG9jYWwgdG8gcmVjcmVhdGUgYWNsb2NhbC5tNCwgYW5kIHJlcnVuIGF1dG9tYWtlKS4iLAoJCSAg ICAgIyAkPyA9IDYzIGlzIHVzZWQgdG8gaW5kaWNhdGUgdmVyc2lvbiBtaXNtYXRjaCB0byBtaXNz aW5nLgoJCSAgICAgZXhpdF9jb2RlID0+IDYzKTsKCSAgICB9CgkgIGVsc2UKCSAgICB7CgkgICAg ICBlcnJvciAoJHNlZW5faW5pdF9hdXRvbWFrZSwKCQkgICAgICJubyBwcm9wZXIgaW1wbGVtZW50 YXRpb24gb2YgQU1fSU5JVF9BVVRPTUFLRSB3YXMgIiAuCgkJICAgICAiZm91bmQsXG5wcm9iYWJs eSBiZWNhdXNlIGFjbG9jYWwubTQgaXMgbWlzc2luZy5cbiIgLgoJCSAgICAgIllvdSBzaG91bGQg cnVuIGF1dG9yZWNvbmYgLWYgKG9yIGFjbG9jYWwgdG8gY3JlYXRlXG4iIC4KCQkgICAgICJ0aGlz IGZpbGUsIHRoZW4gcmVydW4gYXV0b21ha2UpLiIpOwoJICAgIH0KCX0KICAgIH0KCiAgbG9jYXRl X2F1eF9kaXIgKCk7CgogICMgTG9vayBmb3Igc29tZSBmaWxlcyB3ZSBuZWVkLiAgQWx3YXlzIGNo ZWNrIGZvciB0aGVzZS4gIFRoaXMKICAjIGNoZWNrIG11c3QgYmUgZG9uZSBmb3IgZXZlcnkgcnVu LCBldmVuIHRob3NlIHdoZXJlIHdlIGFyZSBvbmx5CiAgIyBsb29raW5nIGF0IGEgc3ViZGlyIE1h a2VmaWxlLiAgV2UgbXVzdCBzZXQgcmVsYXRpdmVfZGlyIGZvcgogICMgcHVzaF9yZXF1aXJlZF9m aWxlIHRvIHdvcmsuCiAgIyBTb3J0IHRoZSBmaWxlcyBmb3Igc3RhYmxlIHZlcmJvc2Ugb3V0cHV0 LgogICRyZWxhdGl2ZV9kaXIgPSAnLic7CiAgZm9yZWFjaCBteSAkZmlsZSAoc29ydCBrZXlzICVy ZXF1aXJlZF9hdXhfZmlsZSkKICAgIHsKICAgICAgcmVxdWlyZV9jb25mX2ZpbGUgKCRyZXF1aXJl ZF9hdXhfZmlsZXskZmlsZX0tPmdldCwgRk9SRUlHTiwgJGZpbGUpCiAgICB9CgogIG15ICRhdXhk aXJfaW5zdGFsbF9kb3Rfc2ggPSAiJGNvbmZpZ19hdXhfZGlyL2luc3RhbGwuc2giOwogICMgTWF5 YmUgdGhlcmUgaXMgYSB3YXkgdG8gcmVwb3J0IHRoZSBsaW5lIG51bWJlciBvZiB0aGUKICAjIEFD X0NPTkZJR19BVVhfRElSIGNhbGwgaW4gY29uZmlndXJlLmFjPyBEb24ndCBrbm93LgogIG1zZyAn b2Jzb2xldGUnLCAiJGNvbmZpZ3VyZV9hYyIsICInaW5zdGFsbC5zaCcgaXMgYW4gYW5hY2hyb25p c21cbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiICAoZm91bmQgaW4gJGF1 eGRpcl9pbnN0YWxsX2RvdF9zaCxcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LiAiICAgZGVmaW5lZCBieSBBQ19DT05GSUdfQVVYX0RJUik7XG4iCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC4gIiAgdXNlICdpbnN0YWxsLXNoJyBpbnN0ZWFkIgogICAgaWYgLWYg JGF1eGRpcl9pbnN0YWxsX2RvdF9zaDsKCiAgIyBQcmVzZXJ2ZSBkaXN0X2NvbW1vbiBmb3IgbGF0 ZXIuCiAgQGNvbmZpZ3VyZV9kaXN0X2NvbW1vbiA9IEBkaXN0X2NvbW1vbjsKfQoKIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoK IyBEbyBhbnkgZXh0cmEgY2hlY2tpbmcgZm9yIEdOVSBzdGFuZGFyZHMuCnN1YiBjaGVja19nbnVf c3RhbmRhcmRzICgpCnsKICBpZiAoJHJlbGF0aXZlX2RpciBlcSAnLicpCiAgICB7CiAgICAgICMg SW4gdG9wIGxldmVsIChvciBvbmx5KSBkaXJlY3RvcnkuCgogICAgICBmb3JlYWNoIG15ICRmaWxl IChAdG9wbGV2ZWxtZF9vaykKICAgICAgICB7CiAgICAgICAgICBuZXh0IGlmICRmaWxlIGVxICdU SEFOS1MnOyAjIGduaXRzLCBjaGVja2VkIGJlbG93CiAgICAgICAgICAjIGlmIG5vbi0ubWQgaXMg YWJzZW50LCBhbmQgLm1kIGlzIHByZXNlbnQsIHJlcXVpcmUgLm1kOwogICAgICAgICAgIyBvdGhl cndpc2UgcmVxdWlyZSBub24tLm1kLgogICAgICAgICAgbXkgJHJlcXVpcmVkCiAgICAgICAgICAg PSAoISAtZiAkZmlsZSAmJiAtZiAiJGZpbGUubWQiKSA/ICIkZmlsZS5tZCIgOiAkZmlsZTsKICAg ICAgICAgIHJlcXVpcmVfZmlsZSAoIiRhbV9maWxlLmFtIiwgR05VLCAkcmVxdWlyZWQpOwogICAg ICAgIH0KCiAgICAgICMgQWNjZXB0IG9uZSBvZiB0aGVzZSB0aHJlZSBsaWNlbnNlczsgZGVmYXVs dCB0byBDT1BZSU5HLgogICAgICAjIE1ha2Ugc3VyZSB3ZSBkbyBub3Qgb3ZlcndyaXRlIGFuIGV4 aXN0aW5nIGxpY2Vuc2UuCiAgICAgIG15ICRsaWNlbnNlOwogICAgICBmb3JlYWNoIChxdyAvQ09Q WUlORyBDT1BZSU5HLkxJQiBDT1BZSU5HLkxFU1NFUi8pCgl7CgkgIGlmICgtZiAkXykKCSAgICB7 CgkgICAgICAkbGljZW5zZSA9ICRfOwoJICAgICAgbGFzdDsKCSAgICB9Cgl9CiAgICAgIHJlcXVp cmVfZmlsZSAoIiRhbV9maWxlLmFtIiwgR05VLCAnQ09QWUlORycpCgl1bmxlc3MgJGxpY2Vuc2U7 CiAgICB9CgogIGZvciBteSAkb3B0ICgnbm8taW5zdGFsbG1hbicsICduby1pbnN0YWxsaW5mbycp CiAgICB7CiAgICAgIG1zZyAoJ2Vycm9yLWdudScsIG9wdGlvbiAkb3B0LAoJICAgIm9wdGlvbiAn JG9wdCcgZGlzYWxsb3dlZCBieSBHTlUgc3RhbmRhcmRzIikKCWlmIG9wdGlvbiAkb3B0OwogICAg fQp9CgojIERvIGFueSBleHRyYSBjaGVja2luZyBmb3IgR05JVFMgc3RhbmRhcmRzLgpzdWIgY2hl Y2tfZ25pdHNfc3RhbmRhcmRzICgpCnsKICBpZiAoJHJlbGF0aXZlX2RpciBlcSAnLicpCiAgICB7 CiAgICAgICMgSW4gdG9wIGxldmVsIChvciBvbmx5KSBkaXJlY3RvcnkuCiAgICAgIG15ICRmaWxl ID0gJ1RIQU5LUyc7CiAgICAgIG15ICRyZXF1aXJlZAogICAgICAgPSAoISAtZiAkZmlsZSAmJiAt ZiAiJGZpbGUubWQiKSA/ICIkZmlsZS5tZCIgOiAkZmlsZTsKICAgICAgcmVxdWlyZV9maWxlICgi JGFtX2ZpbGUuYW0iLCBHTklUUywgJGZpbGUpOwogICAgfQp9CgojIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMKIyBGdW5jdGlv bnMgdG8gaGFuZGxlIGZpbGVzIG9mIGVhY2ggbGFuZ3VhZ2UuCgojIEVhY2ggJ2xhbmdfWF9yZXdy aXRlKCRESVJFQ1RPUlksICRCQVNFLCAkRVhUKScgZnVuY3Rpb24gZm9sbG93cyBhCiMgc2ltcGxl IGZvcm11bGE6IFJldHVybiB2YWx1ZSBpcyBMQU5HX1NVQkRJUiBpZiB0aGUgcmVzdWx0aW5nIG9i amVjdAojIGZpbGUgc2hvdWxkIGJlIGluIGEgc3ViZGlyIGlmIHRoZSBzb3VyY2UgZmlsZSBpcywg TEFOR19QUk9DRVNTIGlmCiMgZmlsZSBpcyB0byBiZSBkZWFsdCB3aXRoLCBMQU5HX0lHTk9SRSBv dGhlcndpc2UuCgojIE11Y2ggb2YgdGhlIGFjdHVhbCBwcm9jZXNzaW5nIGlzIGhhbmRsZWQgaW4K IyBoYW5kbGVfc2luZ2xlX3RyYW5zZm9ybS4gIFRoZXNlIGZ1bmN0aW9ucyBleGlzdCBzbyB0aGF0 CiMgYXV4aWxpYXJ5IGluZm9ybWF0aW9uIGNhbiBiZSByZWNvcmRlZCBmb3IgYSBsYXRlciBjbGVh bnVwIHBhc3MuCiMgTm90ZSB0aGF0IHRoZSBjYWxscyB0byB0aGVzZSBmdW5jdGlvbnMgYXJlIGNv bXB1dGVkLCBzbyBkb24ndCBib3RoZXIKIyBzZWFyY2hpbmcgZm9yIHRoZWlyIHByZWNpc2UgbmFt ZXMgaW4gdGhlIHNvdXJjZS4KCiMgVGhpcyBpcyBqdXN0IGEgY29udmVuaWVuY2UgZnVuY3Rpb24g dGhhdCBjYW4gYmUgdXNlZCB0byBkZXRlcm1pbmUKIyB3aGVuIGEgc3ViZGlyIG9iamVjdCBzaG91 bGQgYmUgdXNlZC4Kc3ViIGxhbmdfc3ViX29iaiAoKQp7CiAgICByZXR1cm4gb3B0aW9uICdzdWJk aXItb2JqZWN0cycgPyBMQU5HX1NVQkRJUiA6IExBTkdfUFJPQ0VTUzsKfQoKIyBSZXdyaXRlIGEg c2luZ2xlIGhlYWRlciBmaWxlLgpzdWIgbGFuZ19oZWFkZXJfcmV3cml0ZQp7CiAgICAjIEhlYWRl ciBmaWxlcyBhcmUgc2ltcGx5IGlnbm9yZWQuCiAgICByZXR1cm4gTEFOR19JR05PUkU7Cn0KCiMg UmV3cml0ZSBhIHNpbmdsZSBWYWxhIHNvdXJjZSBmaWxlLgpzdWIgbGFuZ192YWxhX3Jld3JpdGUK ewogICAgbXkgKCRkaXJlY3RvcnksICRiYXNlLCAkZXh0KSA9IEBfOwoKICAgIChteSAkbmV3ZXh0 ID0gJGV4dCkgPX4gcy92YWxhJC9jLzsKICAgIHJldHVybiAoTEFOR19TVUJESVIsICRuZXdleHQp Owp9CgojIFJld3JpdGUgYSBzaW5nbGUgeWFjYy95YWNjKysgZmlsZS4Kc3ViIGxhbmdfeWFjY19y ZXdyaXRlCnsKICAgIG15ICgkZGlyZWN0b3J5LCAkYmFzZSwgJGV4dCkgPSBAXzsKCiAgICBteSAk ciA9IGxhbmdfc3ViX29iajsKICAgIChteSAkbmV3ZXh0ID0gJGV4dCkgPX4gdHIveS9jLzsKICAg IHJldHVybiAoJHIsICRuZXdleHQpOwp9CnN1YiBsYW5nX3lhY2N4eF9yZXdyaXRlIHsgbGFuZ195 YWNjX3Jld3JpdGUgKEBfKTsgfTsKCiMgUmV3cml0ZSBhIHNpbmdsZSBsZXgvbGV4KysgZmlsZS4K c3ViIGxhbmdfbGV4X3Jld3JpdGUKewogICAgbXkgKCRkaXJlY3RvcnksICRiYXNlLCAkZXh0KSA9 IEBfOwoKICAgIG15ICRyID0gbGFuZ19zdWJfb2JqOwogICAgKG15ICRuZXdleHQgPSAkZXh0KSA9 fiB0ci9sL2MvOwogICAgcmV0dXJuICgkciwgJG5ld2V4dCk7Cn0Kc3ViIGxhbmdfbGV4eHhfcmV3 cml0ZSB7IGxhbmdfbGV4X3Jld3JpdGUgKEBfKTsgfTsKCiMgUmV3cml0ZSBhIHNpbmdsZSBKYXZh IGZpbGUuCnN1YiBsYW5nX2phdmFfcmV3cml0ZQp7CiAgICByZXR1cm4gTEFOR19TVUJESVI7Cn0K CiMgVGhlIGxhbmdfWF9maW5pc2ggZnVuY3Rpb25zIGFyZSBjYWxsZWQgYWZ0ZXIgYWxsIHNvdXJj ZSBmaWxlCiMgcHJvY2Vzc2luZyBpcyBkb25lLiAgRWFjaCBzaG91bGQgaGFuZGxlIGRlZmluaW5n IHJ1bGVzIGZvciB0aGUKIyBsYW5ndWFnZSwgZXRjLiAgQSBmaW5pc2ggZnVuY3Rpb24gaXMgb25s eSBjYWxsZWQgaWYgYSBzb3VyY2UgZmlsZSBvZgojIHRoZSBhcHByb3ByaWF0ZSB0eXBlIGhhcyBi ZWVuIHNlZW4uCgpzdWIgbGFuZ192YWxhX2ZpbmlzaF90YXJnZXQKewogIG15ICgkc2VsZiwgJG5h bWUpID0gQF87CgogIG15ICRkZXJpdmVkID0gY2Fub25pY2FsaXplICgkbmFtZSk7CiAgbXkgJHZh ciA9IHZhciAiJHtkZXJpdmVkfV9TT1VSQ0VTIjsKICByZXR1cm4gdW5sZXNzICR2YXI7CgogIG15 IEB2YWxhX3NvdXJjZXMgPSBncmVwIHsgL1wuKHZhbGF8dmFwaSkkLyB9ICgkdmFyLT52YWx1ZV9h c19saXN0X3JlY3Vyc2l2ZSk7CgogICMgRm9yIGF1dG9tYWtlIGJ1ZyMxMTIyOS4KICByZXR1cm4g dW5sZXNzIEB2YWxhX3NvdXJjZXM7CgogIGZvcmVhY2ggbXkgJHZhbGFfZmlsZSAoQHZhbGFfc291 cmNlcykKICAgIHsKICAgICAgbXkgJGNfZmlsZSA9ICR2YWxhX2ZpbGU7CiAgICAgIGlmICgkY19m aWxlID1+IHMvKC4qKVwudmFsYSQvJDEuYy8pCiAgICAgICAgewogICAgICAgICAgbXkgJGJ1aWx0 X2NfZmlsZSA9ICJcJChidWlsZGRpcikvJGNfZmlsZSI7CiAgICAgICAgICBteSAkYnVpbHRfZGly ID0gZGlybmFtZSAkYnVpbHRfY19maWxlOwogICAgICAgICAgbXkgJGJhc2VfY19maWxlID0gYmFz ZW5hbWUgJGNfZmlsZTsKICAgICAgICAgICMKICAgICAgICAgICMgVGhlIC1uZXdlciB0ZXN0IGhl cmUgaXMgY2hlY2tpbmcgIkMgZmlsZSBub3Qgb2xkZXIgdGhhbiBWYWxhCiAgICAgICAgICAjIGZp bGUiLCByYXRoZXIgdGhhbiAiQyBmaWxlIG5ld2VyIHRoYW4gVmFsYSBmaWxlIjsgc2VlCiAgICAg ICAgICAjIGh0dHBzOi8vYnVncy5nbnUub3JnLzQ0NzcyLiBUaGUgbG9nIG1lc3NhZ2Ugb24gdGhl IGNvbW1pdAogICAgICAgICAgIyBtaXNsZWFkaW5nbHkgc2F5cyAicmV2ZXJzZWQiLgogICAgICAg ICAgIwogICAgICAgICAgJG91dHB1dF9ydWxlcyAuPSAiJGJ1aWx0X2NfZmlsZTogXCQoYnVpbGRk aXIpLyR7ZGVyaXZlZH1fdmFsYS5zdGFtcFxuIgogICAgICAgICAgICAuICJcdFxAaWYgdGVzdCAh IC1mIFwkQCAmJiB0ZXN0IFwkKHNyY2RpcikgIT0gXCQoYnVpbGRkaXIpICYmIHRlc3QgLW4gXCJc JFwkKGZpbmQgLUwgXCQoc3JjZGlyKS8kdmFsYV9maWxlIC1wcnVuZSBcISAtbmV3ZXIgXCQoc3Jj ZGlyKS8kY19maWxlKVwiOyB0aGVuIGNwIC1wIFwkKHNyY2RpcikvJGNfZmlsZSAkYnVpbHRfY19m aWxlOyBmaVxuIgogICAgICAgICAgICAuICJcdFxAaWYgdGVzdCAtZiBcJEA7IHRoZW4gOjsgZWxz ZSBybSAtZiBcJChidWlsZGRpcikvJHtkZXJpdmVkfV92YWxhLnN0YW1wOyBmaVxuIgogICAgICAg ICAgICAuICJcdFxAaWYgdGVzdCAtZiBcJEA7IHRoZW4gOjsgZWxzZSBcXFxuIgogICAgICAgICAg ICAuICJcdCAgXCQoTUFLRSkgXCQoQU1fTUFLRUZMQUdTKSBcJChidWlsZGRpcikvJHtkZXJpdmVk fV92YWxhLnN0YW1wOyBcXFxuIgogICAgICAgICAgICAuICJcdCAgaWYgdGVzdCAkYnVpbHRfZGly ICE9IC47IHRoZW4gbXYgJGJhc2VfY19maWxlICRidWlsdF9kaXIvOyBmaSBcXFxuIgogICAgICAg ICAgICAuICJcdGZpXG4iOwoJICAkY2xlYW5fZmlsZXN7JGJ1aWx0X2NfZmlsZX0gPSBESVNUX0NM RUFOOwoJICAkY2xlYW5fZmlsZXN7IlwkKHNyY2RpcikvJGNfZmlsZSJ9ID0gTUFJTlRBSU5FUl9D TEVBTjsKICAgICAgICB9CiAgICB9CgogICMgQWRkIHJlYnVpbGQgcnVsZXMgZm9yIGdlbmVyYXRl ZCBoZWFkZXIgYW5kIHZhcGkgZmlsZXMKICBteSAkZmxhZ3MgPSB2YXIgKCRkZXJpdmVkIC4gJ19W QUxBRkxBR1MnKTsKICBpZiAoJGZsYWdzKQogICAgewogICAgICBteSAkbGFzdGZsYWcgPSAnJzsK ICAgICAgZm9yZWFjaCBteSAkZmxhZyAoJGZsYWdzLT52YWx1ZV9hc19saXN0X3JlY3Vyc2l2ZSkK CXsKCSAgaWYgKGdyZXAgKC9eJGxhc3RmbGFnJC8sICgnLUgnLCAnLWgnLCAnLS1oZWFkZXInLCAn LS1pbnRlcm5hbC1oZWFkZXInLAoJICAgICAgICAgICAgICAgICAgICAgICAgICAgICctLXZhcGkn LCAnLS1pbnRlcm5hbC12YXBpJywgJy0tZ2lyJykpKQoJICAgIHsKCSAgICAgIG15ICRoZWFkZXJm aWxlID0gIlwkKGJ1aWxkZGlyKS8kZmxhZyI7CgkgICAgICAkb3V0cHV0X3J1bGVzIC49ICIkaGVh ZGVyZmlsZTogXCQoYnVpbGRkaXIpLyR7ZGVyaXZlZH1fdmFsYS5zdGFtcFxuIgoJCS4gIlx0XEBp ZiB0ZXN0IC1mIFwkQDsgdGhlbiA6OyBlbHNlIHJtIC1mIFwkKGJ1aWxkZGlyKS8ke2Rlcml2ZWR9 X3ZhbGEuc3RhbXA7IGZpXG4iCgkJLiAiXHRcQGlmIHRlc3QgLWYgXCRAOyB0aGVuIDo7IGVsc2Ug XFxcbiIKCQkuICJcdCAgXCQoTUFLRSkgXCQoQU1fTUFLRUZMQUdTKSBcJChidWlsZGRpcikvJHtk ZXJpdmVkfV92YWxhLnN0YW1wOyBcXFxuIgoJCS4gIlx0ZmlcbiI7CgoJICAgICAgIyB2YWxhYyBp cyBub3QgdXNlZCB3aGVuIGJ1aWxkaW5nIGZyb20gZGlzdCB0YXJiYWxscwoJICAgICAgIyBkaXN0 cmlidXRlIHRoZSBnZW5lcmF0ZWQgZmlsZXMKCSAgICAgIHB1c2hfZGlzdF9jb21tb24gKCRoZWFk ZXJmaWxlKTsKCSAgICAgICRjbGVhbl9maWxlc3skaGVhZGVyZmlsZX0gPSBNQUlOVEFJTkVSX0NM RUFOOwoJICAgIH0KCSAgaWYgKGdyZXAgKC8kbGFzdGZsYWcvLCAoJy0tbGlicmFyeScpKSkKCSAg ICB7CgkgICAgICBteSAkaGVhZGVyZmlsZSA9ICJcJChidWlsZGRpcikvJGZsYWciOwoJICAgICAg JG91dHB1dF9ydWxlcyAuPSAiJGhlYWRlcmZpbGUudmFwaTogXCQoYnVpbGRkaXIpLyR7ZGVyaXZl ZH1fdmFsYS5zdGFtcFxuIgoJCS4gIlx0XEBpZiB0ZXN0IC1mIFwkQDsgdGhlbiA6OyBlbHNlIHJt IC1mIFwkKGJ1aWxkZGlyKS8ke2Rlcml2ZWR9X3ZhbGEuc3RhbXA7IGZpXG4iCgkJLiAiXHRcQGlm IHRlc3QgLWYgXCRAOyB0aGVuIDo7IGVsc2UgXFxcbiIKCQkuICJcdCAgXCQoTUFLRSkgXCQoQU1f TUFLRUZMQUdTKSBcJChidWlsZGRpcikvJHtkZXJpdmVkfV92YWxhLnN0YW1wOyBcXFxuIgoJCS4g Ilx0ZmlcbiI7CgoJICAgICAgIyB2YWxhYyBpcyBub3QgdXNlZCB3aGVuIGJ1aWxkaW5nIGZyb20g ZGlzdCB0YXJiYWxscwoJICAgICAgIyBkaXN0cmlidXRlIHRoZSBnZW5lcmF0ZWQgZmlsZXMKCSAg ICAgIG15ICR2YXBpID0gIiRoZWFkZXJmaWxlLnZhcGkiOwoJICAgICAgcHVzaF9kaXN0X2NvbW1v biAoJHZhcGkpOwoJICAgICAgJGNsZWFuX2ZpbGVzeyRoZWFkZXJmaWxlLicudmFwaSd9ID0gTUFJ TlRBSU5FUl9DTEVBTjsKCSAgICB9CgkgICRsYXN0ZmxhZyA9ICRmbGFnOwoJfQogICAgfQoKICBt eSAkY29tcGlsZSA9ICRzZWxmLT5jb21waWxlOwoKICAjIFJld3JpdGUgZWFjaCBvY2N1cnJlbmNl IG9mICdBTV9WQUxBRkxBR1MnIGluIHRoZSBjb21waWxlCiAgIyBydWxlIGludG8gJyR7ZGVyaXZl ZH1fVkFMQUZMQUdTJyBpZiBpdCBleGlzdHMuCiAgbXkgJHZhbCA9ICIke2Rlcml2ZWR9X1ZBTEFG TEFHUyI7CiAgJGNvbXBpbGUgPX4gcy9cKEFNX1ZBTEFGTEFHU1wpL1woJHZhbFwpLwogICAgaWYg c2V0X3NlZW4gKCR2YWwpOwoKICAjIFZBTEFGTEFHUyBpcyBhIHVzZXIgdmFyaWFibGUgKHBlciBH TlUgU3RhbmRhcmRzKSwKICAjIGl0IHNob3VsZCBub3QgYmUgb3ZlcnJpZGRlbiBpbiB0aGUgTWFr ZWZpbGUuLi4KICBjaGVja191c2VyX3ZhcmlhYmxlcyAnVkFMQUZMQUdTJzsKCiAgbXkgJGRpcm5h bWUgPSBkaXJuYW1lICgkbmFtZSk7CgogICMgT25seSBnZW5lcmF0ZSBDIGNvZGUsIGRvIG5vdCBy dW4gQyBjb21waWxlcgogICRjb21waWxlIC49ICIgLUMiOwoKICBteSAkdmVyYm9zZSA9IHZlcmJv c2VfZmxhZyAoJ1ZBTEFDJyk7CiAgbXkgJHNpbGVudCA9IHNpbGVudF9mbGFnICgpOwogIG15ICRz dGFtcGZpbGUgPSAiXCQoYnVpbGRkaXIpLyR7ZGVyaXZlZH1fdmFsYS5zdGFtcCI7CgogICRvdXRw dXRfcnVsZXMgLj0KICAgICJcJChidWlsZGRpcikvJHtkZXJpdmVkfV92YWxhLnN0YW1wOiBAdmFs YV9zb3VyY2VzXG4iLgojIFNpbmNlIHRoZSBDIGZpbGVzIGdlbmVyYXRlZCBmcm9tIHRoZSB2YWxh IHNvdXJjZXMgZGVwZW5kIG9uIHRoZQojICR7ZGVyaXZlZH1fdmFsYS5zdGFtcCBmaWxlLCB3ZSBt dXN0IGVuc3VyZSBpdHMgdGltZXN0YW1wIGlzIG9sZGVyIHRoYW4KIyB0aG9zZSBvZiB0aGUgQyBm aWxlcyBnZW5lcmF0ZWQgYnkgdGhlIHZhbGFjIGludm9jYXRpb24gYmVsb3cgKHRoaXMgaXMKIyBl c3BlY2lhbGx5IGltcG9ydGFudCBvbiBzeXN0ZW1zIHdpdGggc3ViLXNlY29uZCB0aW1lc3RhbXAg cmVzb2x1dGlvbikuCiMgVGh1cyB3ZSBuZWVkIHRvIGNyZWF0ZSB0aGUgc3RhbXAgZmlsZSAqYmVm b3JlKiBpbnZva2luZyB2YWxhYywgYW5kIHRvCiMgbW92ZSBpdCB0byBpdHMgZmluYWwgbG9jYXRp b24gb25seSBhZnRlciB2YWxhYyBoYXMgYmVlbiBpbnZva2VkLgogICAgIlx0JHtzaWxlbnR9cm0g LWYgXCRcQCAmJiBlY2hvIHN0YW1wID4gXCRcQC10XG4iLgogICAgIlx0JHt2ZXJib3NlfSRjb21w aWxlIFwkXlxuIi4KICAgICJcdCR7c2lsZW50fW12IC1mIFwkXEAtdCBcJFxAXG4iOwoKICBwdXNo X2Rpc3RfY29tbW9uICgkc3RhbXBmaWxlKTsKCiAgJGNsZWFuX2ZpbGVzeyRzdGFtcGZpbGV9ID0g TUFJTlRBSU5FUl9DTEVBTjsKfQoKIyBBZGQgb3V0cHV0IHJ1bGVzIHRvIGludm9rZSB2YWxhYyBh bmQgY3JlYXRlIHN0YW1wIGZpbGUgYXMgYSB3aXRuZXNzCiMgdG8gaGFuZGxlIG11bHRpcGxlIG91 dHB1dHMuIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGFmdGVyIGFsbCBzb3VyY2UKIyBmaWxlIHBy b2Nlc3NpbmcgaXMgZG9uZS4Kc3ViIGxhbmdfdmFsYV9maW5pc2ggKCkKewogIG15ICgkc2VsZikg PSBAXzsKCiAgZm9yZWFjaCBteSAkcHJvZyAoc29ydCBrZXlzICVrbm93bl9wcm9ncmFtcykKICAg IHsKICAgICAgbGFuZ192YWxhX2ZpbmlzaF90YXJnZXQgKCRzZWxmLCAkcHJvZyk7CiAgICB9Cgog IHdoaWxlIChteSAoJG5hbWUpID0gZWFjaCAla25vd25fbGlicmFyaWVzKQogICAgewogICAgICBs YW5nX3ZhbGFfZmluaXNoX3RhcmdldCAoJHNlbGYsICRuYW1lKTsKICAgIH0KfQoKIyBUaGUgYnVp bHQgLmMgZmlsZXMgc2hvdWxkIGJlIGNsZWFuZWQgb25seSBvbiBtYWludGFpbmVyLWNsZWFuCiMg YXMgdGhlIC5jIGZpbGVzIGFyZSBkaXN0cmlidXRlZC4gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQg Zm9yIGVhY2gKIyAudmFsYSBzb3VyY2UgZmlsZS4Kc3ViIGxhbmdfdmFsYV90YXJnZXRfaG9vawp7 CiAgbXkgKCRzZWxmLCAkYWdncmVnYXRlLCAkb3V0cHV0LCAkaW5wdXQsICV0cmFuc2Zvcm0pID0g QF87CgogICRjbGVhbl9maWxlc3skb3V0cHV0fSA9IE1BSU5UQUlORVJfQ0xFQU47Cn0KCiMgVGhp cyBpcyBhIHlhY2MgaGVscGVyIHdoaWNoIGlzIGNhbGxlZCB3aGVuZXZlciB3ZSBoYXZlIGRlY2lk ZWQgdG8KIyBjb21waWxlIGEgeWFjYyBmaWxlLgpzdWIgbGFuZ195YWNjX3RhcmdldF9ob29rCnsK ICAgIG15ICgkc2VsZiwgJGFnZ3JlZ2F0ZSwgJG91dHB1dCwgJGlucHV0LCAldHJhbnNmb3JtKSA9 IEBfOwoKICAgICMgSWYgc29tZSByZWxldmFudCAqWUZMQUdTIHZhcmlhYmxlIGNvbnRhaW5zIHRo ZSAnLWQnIGZsYWcsIHdlJ2xsCiAgICAjIGhhdmUgdG8gZ2VuZXJhdGUgc3BlY2lhbCBjb2RlLgog ICAgbXkgJHlmbGFnc19jb250YWluc19taW51c19kID0gMDsKCiAgICBmb3JlYWNoIG15ICRwZngg KCIiLCAiJHthZ2dyZWdhdGV9XyIpCiAgICAgIHsKCW15ICR5ZmxhZ3N2YXIgPSB2YXIgKCIke3Bm eH1ZRkxBR1MiKTsKCW5leHQgdW5sZXNzICR5ZmxhZ3N2YXI7CgkjIFdlIGNhbm5vdCB3b3JrIHJl bGlhYmx5IHdpdGggY29uZGl0aW9uYWxseS1kZWZpbmVkIFlGTEFHUy4KCWlmICgkeWZsYWdzdmFy LT5oYXNfY29uZGl0aW9uYWxfY29udGVudHMpCgkgIHsKCSAgICBtc2dfdmFyICgndW5zdXBwb3J0 ZWQnLCAkeWZsYWdzdmFyLAoJICAgICAgICAgICAgICInJHtwZnh9WUZMQUdTJyBjYW5ub3QgaGF2 ZSBjb25kaXRpb25hbCBjb250ZW50cyIpOwoJICB9CgllbHNlCgkgIHsKCSAgICAkeWZsYWdzX2Nv bnRhaW5zX21pbnVzX2QgPSAxCgkgICAgICBpZiBncmVwICgvXi1kJC8sICR5ZmxhZ3N2YXItPnZh bHVlX2FzX2xpc3RfcmVjdXJzaXZlKTsKCSAgfQogICAgICB9CgogICAgaWYgKCR5ZmxhZ3NfY29u dGFpbnNfbWludXNfZCkKICAgICAgewoJIyBGb3VuZCBhICctZCcgdGhhdCBhcHBsaWVzIHRvIHRo ZSBjb21waWxhdGlvbiBvZiB0aGlzIGZpbGUuCgkjIEFkZCBhIGRlcGVuZGVuY3kgZm9yIHRoZSBn ZW5lcmF0ZWQgaGVhZGVyIGZpbGUsIGFuZCBhcnJhbmdlCgkjIGZvciB0aGF0IGZpbGUgdG8gYmUg aW5jbHVkZWQgaW4gdGhlIGRpc3RyaWJ1dGlvbi4KCgkjIFRoZSBleHRlbnNpb24gb2YgdGhlIG91 dHB1dCBmaWxlIChlLmcuLCAnLmMnIG9yICcuY3h4JykuCgkjIFdlJ2xsIG5lZWQgaXQgdG8gY29t cHV0ZSB0aGUgbmFtZSBvZiB0aGUgZ2VuZXJhdGVkIGhlYWRlciBmaWxlLgoJKG15ICRvdXRwdXRf ZXh0ID0gYmFzZW5hbWUgKCRvdXRwdXQpKSA9fiBzLy4qKFwuW14uXSspJC8kMS87CgoJIyBXZSBr bm93IHRoYXQgYSB5YWNjIGlucHV0IHNob3VsZCBiZSB0dXJuZWQgaW50byBlaXRoZXIgYSBDIG9y CgkjIEMrKyBvdXRwdXQgZmlsZS4gIFdlIGRlcGVuZCBvbiB0aGlzIGZhY3QgKGhlcmUgYW5kIGlu IHlhY2MuYW0pLAoJIyBzbyBjaGVjayB0aGF0IGl0IHJlYWxseSBob2xkcy4KCW15ICRsYW5nID0g JGxhbmd1YWdlc3skZXh0ZW5zaW9uX21hcHskb3V0cHV0X2V4dH19OwoJcHJvZ19lcnJvciAiaW52 YWxpZCBvdXRwdXQgbmFtZSAnJG91dHB1dCcgZm9yIHlhY2MgZmlsZSAnJGlucHV0JyIKCSAgaWYg KCEkbGFuZyB8fCAoJGxhbmctPm5hbWUgbmUgJ2MnICYmICRsYW5nLT5uYW1lIG5lICdjeHgnKSk7 CgoJKG15ICRoZWFkZXJfZXh0ID0gJG91dHB1dF9leHQpID1+IHMvYy9oL2c7CiAgICAgICAgIyBR dW90ZSAkb3V0cHV0X2V4dCBpbiB0aGUgcmVnZXhwLCBzbyB0aGF0IGRvdHMgaW4gaXQgYXJlIHRh a2VuCiAgICAgICAgIyBhcyBsaXRlcmFsIGRvdHMsIG5vdCBhcyBtZXRhY2hhcmFjdGVycy4KCSht eSAkaGVhZGVyID0gJG91dHB1dCkgPX4gcy9cUSRvdXRwdXRfZXh0XEUkLyRoZWFkZXJfZXh0LzsK Cglmb3JlYWNoIG15ICRjb25kIChBdXRvbWFrZTo6UnVsZTo6ZGVmaW5lICgke2hlYWRlcn0sICdp bnRlcm5hbCcsCgkJCQkJCSAgUlVMRV9BVVRPTUFLRSwgVFJVRSwKCQkJCQkJICBJTlRFUk5BTCkp CgkgIHsKCSAgICBteSAkY29uZHN0ciA9ICRjb25kLT5zdWJzdF9zdHJpbmc7CgkgICAgJG91dHB1 dF9ydWxlcyAuPQoJICAgICAgIiRjb25kc3RyJHtoZWFkZXJ9OiAkb3V0cHV0XG4iCgkgICAgICAj IFJlY292ZXIgZnJvbSByZW1vdmFsIG9mICRoZWFkZXIKCSAgICAgIC4gIiRjb25kc3RyXHRcQGlm IHRlc3QgISAtZiBcJEA7IHRoZW4gcm0gLWYgJG91dHB1dDsgZWxzZSA6OyBmaVxuIgoJICAgICAg LiAiJGNvbmRzdHJcdFxAaWYgdGVzdCAhIC1mIFwkQDsgdGhlbiBcJChNQUtFKSBcJChBTV9NQUtF RkxBR1MpICRvdXRwdXQ7IGVsc2UgOjsgZmlcbiI7CgkgIH0KCSMgRGlzdHJpYnV0ZSB0aGUgZ2Vu ZXJhdGVkIGZpbGUsIHVubGVzcyBpdHMgLnkgc291cmNlIHdhcwoJIyBsaXN0ZWQgaW4gYSBub2Rp c3RfIHZhcmlhYmxlLiAgKGhhbmRsZV9zb3VyY2VfdHJhbnNmb3JtKCkKCSMgd2lsbCBzZXQgRElT VF9TT1VSQ0UuKQoJcHVzaF9kaXN0X2NvbW1vbiAoJGhlYWRlcikKCSAgaWYgJHRyYW5zZm9ybXsn RElTVF9TT1VSQ0UnfTsKCgkjIFRoZSBHTlUgcnVsZXMgc2F5IHRoYXQgeWFjYy9sZXggb3V0cHV0 IGZpbGVzIHNob3VsZCBiZSByZW1vdmVkCgkjIGJ5IG1haW50YWluZXItY2xlYW4uICBIb3dldmVy LCBpZiB0aGUgZmlsZXMgYXJlIG5vdCBkaXN0cmlidXRlZCwKCSMgdGhlbiB3ZSB3YW50IHRvIHJl bW92ZSB0aGVtIHdpdGggIm1ha2UgY2xlYW4iOyBvdGhlcndpc2UsCgkjICJtYWtlIGRpc3RjaGVj ayIgd2lsbCBmYWlsLgoJJGNsZWFuX2ZpbGVzeyRoZWFkZXJ9ID0gJHRyYW5zZm9ybXsnRElTVF9T T1VSQ0UnfSA/IE1BSU5UQUlORVJfQ0xFQU4gOiBDTEVBTjsKICAgICAgfQogICAgIyBTZWUgdGhl IGNvbW1lbnQgYWJvdmUgZm9yICRIRUFERVIuCiAgICAkY2xlYW5fZmlsZXN7JG91dHB1dH0gPSAk dHJhbnNmb3JteydESVNUX1NPVVJDRSd9ID8gTUFJTlRBSU5FUl9DTEVBTiA6IENMRUFOOwp9Cgoj IFRoaXMgaXMgYSBsZXggaGVscGVyIHdoaWNoIGlzIGNhbGxlZCB3aGVuZXZlciB3ZSBoYXZlIGRl Y2lkZWQgdG8KIyBjb21waWxlIGEgbGV4IGZpbGUuCnN1YiBsYW5nX2xleF90YXJnZXRfaG9vawp7 CiAgICBteSAoJHNlbGYsICRhZ2dyZWdhdGUsICRvdXRwdXQsICRpbnB1dCwgJXRyYW5zZm9ybSkg PSBAXzsKICAgICMgVGhlIEdOVSBydWxlcyBzYXkgdGhhdCB5YWNjL2xleCBvdXRwdXQgZmlsZXMg c2hvdWxkIGJlIHJlbW92ZWQKICAgICMgYnkgbWFpbnRhaW5lci1jbGVhbi4gIEhvd2V2ZXIsIGlm IHRoZSBmaWxlcyBhcmUgbm90IGRpc3RyaWJ1dGVkLAogICAgIyB0aGVuIHdlIHdhbnQgdG8gcmVt b3ZlIHRoZW0gd2l0aCAibWFrZSBjbGVhbiI7IG90aGVyd2lzZSwKICAgICMgIm1ha2UgZGlzdGNo ZWNrIiB3aWxsIGZhaWwuCiAgICAkY2xlYW5fZmlsZXN7JG91dHB1dH0gPSAkdHJhbnNmb3JteydE SVNUX1NPVVJDRSd9ID8gTUFJTlRBSU5FUl9DTEVBTiA6IENMRUFOOwp9CgojIFRoaXMgaXMgYSBo ZWxwZXIgZm9yIGJvdGggbGV4IGFuZCB5YWNjLgpzdWIgeWFjY19sZXhfZmluaXNoX2hlbHBlciAo KQp7CiAgcmV0dXJuIGlmIGRlZmluZWQgJGxhbmd1YWdlX3NjcmF0Y2h7J2xleC15YWNjLWRvbmUn fTsKICAkbGFuZ3VhZ2Vfc2NyYXRjaHsnbGV4LXlhY2MtZG9uZSd9ID0gMTsKCiAgIyBGSVhNRTog Zm9yIG5vdywgbm8gbGluZSBudW1iZXIuCiAgcmVxdWlyZV9jb25mX2ZpbGUgKCRjb25maWd1cmVf YWMsIEZPUkVJR04sICd5bHdyYXAnKTsKICBkZWZpbmVfdmFyaWFibGUgKCdZTFdSQVAnLCAiJGFt X2NvbmZpZ19hdXhfZGlyL3lsd3JhcCIsIElOVEVSTkFMKTsKfQoKc3ViIGxhbmdfeWFjY19maW5p c2ggKCkKewogIHJldHVybiBpZiBkZWZpbmVkICRsYW5ndWFnZV9zY3JhdGNoeyd5YWNjLWRvbmUn fTsKICAkbGFuZ3VhZ2Vfc2NyYXRjaHsneWFjYy1kb25lJ30gPSAxOwoKICByZWplY3RfdmFyICdZ QUNDRkxBR1MnLCAiJ1lBQ0NGTEFHUycgb2Jzb2xldGU7IHVzZSAnWUZMQUdTJyBpbnN0ZWFkIjsK CiAgeWFjY19sZXhfZmluaXNoX2hlbHBlcjsKfQoKCnN1YiBsYW5nX2xleF9maW5pc2ggKCkKewog IHJldHVybiBpZiBkZWZpbmVkICRsYW5ndWFnZV9zY3JhdGNoeydsZXgtZG9uZSd9OwogICRsYW5n dWFnZV9zY3JhdGNoeydsZXgtZG9uZSd9ID0gMTsKCiAgeWFjY19sZXhfZmluaXNoX2hlbHBlcjsK fQoKCiMgR2l2ZW4gYSBoYXNoIHRhYmxlIG9mIGxpbmtlciBuYW1lcywgcGljayB0aGUgbmFtZSB0 aGF0IGhhcyB0aGUgbW9zdAojIHByZWNlZGVuY2UuICBUaGlzIGlzIGxhbWUsIGJ1dCBzb21ldGhp bmcgaGFzIHRvIGhhdmUgZ2xvYmFsCiMga25vd2xlZGdlIGluIG9yZGVyIHRvIGVsaW1pbmF0ZSB0 aGUgY29uZmxpY3QuICBBZGQgbW9yZSBsaW5rZXJzIGFzCiMgcmVxdWlyZWQuCnN1YiByZXNvbHZl X2xpbmtlcgp7CiAgICBteSAoJWxpbmtlcnMpID0gQF87CgogICAgZm9yZWFjaCBteSAkbCAocXco R0NKTElOSyBPQkpDWFhMSU5LIENYWExJTksgRjc3TElOSyBGQ0xJTksKICAgICAgICAgICAgICAg ICAgICAgIE9CSkNMSU5LIFVQQ0xJTksgQTY4TElOSykpCiAgICB7CglyZXR1cm4gJGwgaWYgZGVm aW5lZCAkbGlua2Vyc3skbH07CiAgICB9CiAgICByZXR1cm4gJ0xJTksnOwp9CgojIENhbGxlZCB0 byBpbmRpY2F0ZSB0aGF0IGFuIGV4dGVuc2lvbiB3YXMgdXNlZC4Kc3ViIHNhd19leHRlbnNpb24K ewogICAgbXkgKCRleHQpID0gQF87CiAgICAkZXh0ZW5zaW9uX3NlZW57JGV4dH0gPSAxOwp9Cgoj IHJlZ2lzdGVyX2xhbmd1YWdlICglQVRUUklCVVRFKQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQojIFJlZ2lzdGVyIGEgc2luZ2xlIGxhbmd1YWdlLgojIEVhY2ggJUFUVFJJQlVURSBp cyBvZiB0aGUgZm9ybSBBVFRSSUJVVEUgPT4gVkFMVUUuCnN1YiByZWdpc3Rlcl9sYW5ndWFnZQp7 CiAgbXkgKCVvcHRpb24pID0gQF87CgogICMgU2V0IHRoZSBkZWZhdWx0cy4KICAkb3B0aW9ueydh dXRvZGVwJ30gPSAnbm8nCiAgICB1bmxlc3MgZGVmaW5lZCAkb3B0aW9ueydhdXRvZGVwJ307CiAg JG9wdGlvbnsnbGlua2VyJ30gPSAnJwogICAgdW5sZXNzIGRlZmluZWQgJG9wdGlvbnsnbGlua2Vy J307CiAgJG9wdGlvbnsnZmxhZ3MnfSA9IFtdCiAgICB1bmxlc3MgZGVmaW5lZCAkb3B0aW9ueydm bGFncyd9OwogICRvcHRpb257J291dHB1dF9leHRlbnNpb25zJ30gPSBzdWIgeyByZXR1cm4gKCAn LiQoT0JKRVhUKScsICcubG8nICkgfQogICAgdW5sZXNzIGRlZmluZWQgJG9wdGlvbnsnb3V0cHV0 X2V4dGVuc2lvbnMnfTsKICAkb3B0aW9ueydub2Rpc3Rfc3BlY2lmaWMnfSA9IDAKICAgIHVubGVz cyBkZWZpbmVkICRvcHRpb257J25vZGlzdF9zcGVjaWZpYyd9OwoKICBteSAkbGFuZyA9IG5ldyBB dXRvbWFrZTo6TGFuZ3VhZ2UgKCVvcHRpb24pOwoKICAjIEZpbGwgaW5kZXhlcy4KICAkZXh0ZW5z aW9uX21hcHskX30gPSAkbGFuZy0+bmFtZSBmb3JlYWNoIEB7JGxhbmctPmV4dGVuc2lvbnN9Owog ICRsYW5ndWFnZXN7JGxhbmctPm5hbWV9ID0gJGxhbmc7CiAgbXkgJGxpbmsgPSAkbGFuZy0+bGlu a2VyOwogIGlmICgkbGluaykKICAgIHsKICAgICAgaWYgKGV4aXN0cyAkbGlua19sYW5ndWFnZXN7 JGxpbmt9KQoJewoJICBwcm9nX2Vycm9yICgiJyRsaW5rJyBoYXMgZGlmZmVyZW50IGRlZmluaXRp b25zIGluICIKCQkgICAgICAuICRsYW5nLT5uYW1lIC4gIiBhbmQgIiAuICRsaW5rX2xhbmd1YWdl c3skbGlua30tPm5hbWUpCgkgICAgaWYgJGxhbmctPmxpbmsgbmUgJGxpbmtfbGFuZ3VhZ2VzeyRs aW5rfS0+bGluazsKCX0KICAgICAgZWxzZQoJewoJICAkbGlua19sYW5ndWFnZXN7JGxpbmt9ID0g JGxhbmc7Cgl9CiAgICB9CgogICMgVXBkYXRlIHRoZSBwYXR0ZXJuIG9mIGtub3duIGV4dGVuc2lv bnMuCiAgYWNjZXB0X2V4dGVuc2lvbnMgKEB7JGxhbmctPmV4dGVuc2lvbnN9KTsKCiAgIyBVcGRh dGUgdGhlIHN1ZmZpeCBydWxlcyBtYXAuCiAgZm9yZWFjaCBteSAkc3VmZml4IChAeyRsYW5nLT5l eHRlbnNpb25zfSkKICAgIHsKICAgICAgZm9yZWFjaCBteSAkZGVzdCAoJGxhbmctPm91dHB1dF9l eHRlbnNpb25zLT4oJHN1ZmZpeCkpCgl7CgkgIHJlZ2lzdGVyX3N1ZmZpeF9ydWxlIChJTlRFUk5B TCwgJHN1ZmZpeCwgJGRlc3QpOwoJfQogICAgfQp9CgojIGRlcml2ZV9zdWZmaXggKCRFWFQsICRP QkopCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQg dG8gZmluZCBhIHBhdGggZnJvbSBhIHVzZXItc3BlY2lmaWVkIHN1ZmZpeCAkRVhUCiMgdG8gJE9C SiBvciB0byBzb21lIG90aGVyIHN1ZmZpeCB3ZSByZWNvZ25pemUgaW50ZXJuYWxseSwgZS5nLiAn Y2MnLgpzdWIgZGVyaXZlX3N1ZmZpeAp7CiAgbXkgKCRzb3VyY2VfZXh0LCAkb2JqKSA9IEBfOwoK ICB3aGlsZSAoISRleHRlbnNpb25fbWFweyRzb3VyY2VfZXh0fSAmJiAkc291cmNlX2V4dCBuZSAk b2JqKQogICAgewogICAgICBteSAkbmV3X3NvdXJjZV9leHQgPSBuZXh0X2luX3N1ZmZpeF9jaGFp biAoJHNvdXJjZV9leHQsICRvYmopOwogICAgICBsYXN0IGlmIG5vdCBkZWZpbmVkICRuZXdfc291 cmNlX2V4dDsKICAgICAgJHNvdXJjZV9leHQgPSAkbmV3X3NvdXJjZV9leHQ7CiAgICB9CgogIHJl dHVybiAkc291cmNlX2V4dDsKfQoKCiMgUHJldHR5LXByaW50IHNvbWV0aGluZyBhbmQgYXBwZW5k IHRvICckb3V0cHV0X3J1bGVzJy4Kc3ViIHByZXR0eV9wcmludF9ydWxlCnsKICAgICRvdXRwdXRf cnVsZXMgLj0gbWFrZWZpbGVfd3JhcCAoc2hpZnQsIHNoaWZ0LCBAXyk7Cn0KCgojIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgoK IyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKIyMgSGFuZGxpbmcgdGhlIGNv bmRpdGlvbmFsIHN0YWNrLiAgIyMKIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g IyMKCgojICRTVFJJTkcKIyBtYWtlX2NvbmRpdGlvbmFsX3N0cmluZyAoJE5FR0FURSwgJENPTkQp CiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgbWFrZV9jb25k aXRpb25hbF9zdHJpbmcKewogIG15ICgkbmVnYXRlLCAkY29uZCkgPSBAXzsKICAkY29uZCA9ICIk e2NvbmR9X1RSVUUiCiAgICB1bmxlc3MgJGNvbmQgPX4gL15UUlVFfEZBTFNFJC87CiAgJGNvbmQg PSBBdXRvbWFrZTo6Q29uZGl0aW9uOjpjb25kaXRpb25hbF9uZWdhdGUgKCRjb25kKQogICAgaWYg JG5lZ2F0ZTsKICByZXR1cm4gJGNvbmQ7Cn0KCgpteSAlX2FtX21hY3JvX2Zvcl9jb25kID0KICAo CiAgQU1ERVAgPT4gIm9uZSBvZiB0aGUgY29tcGlsZXIgdGVzdHNcbiIKCSAgIC4gIiAgICBBQ19Q Uk9HX0NDLCBBQ19QUk9HX0NYWCwgQUNfUFJPR19PQkpDLCBBQ19QUk9HX09CSkNYWCxcbiIKCSAg IC4gIiAgICBBTV9QUk9HX0FTLCBBTV9QUk9HX0dDSiwgQU1fUFJPR19VUEMsIEFNX1BST0dfQTY4 IiwKICBhbV9fZmFzdGRlcENDID0+ICdBQ19QUk9HX0NDJywKICBhbV9fZmFzdGRlcENDQVMgPT4g J0FNX1BST0dfQVMnLAogIGFtX19mYXN0ZGVwQ1hYID0+ICdBQ19QUk9HX0NYWCcsCiAgYW1fX2Zh c3RkZXBHQ0ogPT4gJ0FNX1BST0dfR0NKJywKICBhbV9fZmFzdGRlcEE2OCA9PiAnQU1fUFJPR19B NjgnLAogIGFtX19mYXN0ZGVwT0JKQyA9PiAnQUNfUFJPR19PQkpDJywKICBhbV9fZmFzdGRlcE9C SkNYWCA9PiAnQUNfUFJPR19PQkpDWFgnLAogIGFtX19mYXN0ZGVwVVBDID0+ICdBTV9QUk9HX1VQ QycKICApOwoKIyAkQ09ORAojIGNvbmRfc3RhY2tfaWYgKCRORUdBVEUsICRDT05ELCAkV0hFUkUp CiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIGNvbmRfc3RhY2tf aWYKewogIG15ICgkbmVnYXRlLCAkY29uZCwgJHdoZXJlKSA9IEBfOwoKICBpZiAoISAkY29uZmln dXJlX2NvbmR7JGNvbmR9ICYmICRjb25kICF+IC9eVFJVRXxGQUxTRSQvKQogICAgewogICAgICBt eSAkdGV4dCA9ICIkY29uZCBkb2VzIG5vdCBhcHBlYXIgaW4gQU1fQ09ORElUSU9OQUwiOwogICAg ICBteSAkc2NvcGUgPSBVU19MT0NBTDsKICAgICAgaWYgKGV4aXN0cyAkX2FtX21hY3JvX2Zvcl9j b25keyRjb25kfSkKCXsKCSAgbXkgJG1hYyA9ICRfYW1fbWFjcm9fZm9yX2NvbmR7JGNvbmR9OwoJ ICAkdGV4dCAuPSAiXG4gIFRoZSB1c3VhbCB3YXkgdG8gZGVmaW5lICckY29uZCcgaXMgdG8gYWRk ICI7CgkgICR0ZXh0IC49ICgkbWFjID1+IC8gLykgPyAkbWFjIDogIickbWFjJyI7CgkgICR0ZXh0 IC49ICJcbiAgdG8gJyRjb25maWd1cmVfYWMnIGFuZCBydW4gJ2FjbG9jYWwnIGFuZCAnYXV0b2Nv bmYnIGFnYWluIjsKCSAgIyBUaGVzZSB3YXJuaW5ncyBhcHBlYXIgaW4gQXV0b21ha2UgZmlsZXMg KGRlcGVuZDIuYW0pLAoJICAjIHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gZGlzcGxheSB0aGVtIG1v cmUgdGhhbiBvbmNlOgoJICAkc2NvcGUgPSBVU19HTE9CQUw7Cgl9CiAgICAgIGVycm9yICR3aGVy ZSwgJHRleHQsIHVuaXFfc2NvcGUgPT4gJHNjb3BlOwogICAgfQoKICBwdXNoIChAY29uZF9zdGFj aywgbWFrZV9jb25kaXRpb25hbF9zdHJpbmcgKCRuZWdhdGUsICRjb25kKSk7CgogIHJldHVybiBu ZXcgQXV0b21ha2U6OkNvbmRpdGlvbiAoQGNvbmRfc3RhY2spOwp9CgoKIyAkQ09ORAojIGNvbmRf c3RhY2tfZWxzZSAoJE5FR0FURSwgJENPTkQsICRXSEVSRSkKIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBjb25kX3N0YWNrX2Vsc2UKewogIG15ICgkbmVnYXRl LCAkY29uZCwgJHdoZXJlKSA9IEBfOwoKICBpZiAoISBAY29uZF9zdGFjaykKICAgIHsKICAgICAg ZXJyb3IgJHdoZXJlLCAiZWxzZSB3aXRob3V0IGlmIjsKICAgICAgcmV0dXJuIEZBTFNFOwogICAg fQoKICAkY29uZF9zdGFja1skI2NvbmRfc3RhY2tdID0KICAgIEF1dG9tYWtlOjpDb25kaXRpb246 OmNvbmRpdGlvbmFsX25lZ2F0ZSAoJGNvbmRfc3RhY2tbJCNjb25kX3N0YWNrXSk7CgogICMgSWYg JENPTkQgaXMgZ2l2ZW4sIGNoZWNrIGFnYWluc3QgaXQuCiAgaWYgKGRlZmluZWQgJGNvbmQpCiAg ICB7CiAgICAgICRjb25kID0gbWFrZV9jb25kaXRpb25hbF9zdHJpbmcgKCRuZWdhdGUsICRjb25k KTsKCiAgICAgIGVycm9yICgkd2hlcmUsICJlbHNlIHJlbWluZGVyICgkbmVnYXRlJGNvbmQpIGlu Y29tcGF0aWJsZSB3aXRoICIKCSAgICAgLiAiY3VycmVudCBjb25kaXRpb25hbDogJGNvbmRfc3Rh Y2tbJCNjb25kX3N0YWNrXSIpCglpZiAkY29uZF9zdGFja1skI2NvbmRfc3RhY2tdIG5lICRjb25k OwogICAgfQoKICByZXR1cm4gbmV3IEF1dG9tYWtlOjpDb25kaXRpb24gKEBjb25kX3N0YWNrKTsK fQoKCiMgJENPTkQKIyBjb25kX3N0YWNrX2VuZGlmICgkTkVHQVRFLCAkQ09ORCwgJFdIRVJFKQoj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBjb25kX3N0YWNr X2VuZGlmCnsKICBteSAoJG5lZ2F0ZSwgJGNvbmQsICR3aGVyZSkgPSBAXzsKICBteSAkb2xkX2Nv bmQ7CgogIGlmICghIEBjb25kX3N0YWNrKQogICAgewogICAgICBlcnJvciAkd2hlcmUsICJlbmRp ZiB3aXRob3V0IGlmIjsKICAgICAgcmV0dXJuIFRSVUU7CiAgICB9CgogICMgSWYgJENPTkQgaXMg Z2l2ZW4sIGNoZWNrIGFnYWluc3QgaXQuCiAgaWYgKGRlZmluZWQgJGNvbmQpCiAgICB7CiAgICAg ICRjb25kID0gbWFrZV9jb25kaXRpb25hbF9zdHJpbmcgKCRuZWdhdGUsICRjb25kKTsKCiAgICAg IGVycm9yICgkd2hlcmUsICJlbmRpZiByZW1pbmRlciAoJG5lZ2F0ZSRjb25kKSBpbmNvbXBhdGli bGUgd2l0aCAiCgkgICAgIC4gImN1cnJlbnQgY29uZGl0aW9uYWw6ICRjb25kX3N0YWNrWyQjY29u ZF9zdGFja10iKQoJaWYgJGNvbmRfc3RhY2tbJCNjb25kX3N0YWNrXSBuZSAkY29uZDsKICAgIH0K CiAgcG9wIEBjb25kX3N0YWNrOwoKICByZXR1cm4gbmV3IEF1dG9tYWtlOjpDb25kaXRpb24gKEBj b25kX3N0YWNrKTsKfQoKCgoKCiMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwojIyBIYW5k bGluZyB0aGUgdmFyaWFibGVzLiAgIyMKIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCgoK IyBkZWZpbmVfcHJldHR5X3ZhcmlhYmxlICgkVkFSLCAkQ09ORCwgJFdIRVJFLCBAVkFMVUUpCiMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIExp a2UgZGVmaW5lX3ZhcmlhYmxlLCBidXQgdGhlIHZhbHVlIGlzIGEgbGlzdCwgYW5kIHRoZSB2YXJp YWJsZSBtYXkKIyBiZSBkZWZpbmVkIGNvbmRpdGlvbmFsbHkuICBUaGUgc2Vjb25kIGFyZ3VtZW50 IGlzIHRoZSBjb25kaXRpb24KIyB1bmRlciB3aGljaCB0aGUgdmFsdWUgc2hvdWxkIGJlIGRlZmlu ZWQ7IHRoaXMgc2hvdWxkIGJlIHRoZSBlbXB0eQojIHN0cmluZyB0byBkZWZpbmUgdGhlIHZhcmlh YmxlIHVuY29uZGl0aW9uYWxseS4gIFRoZSB0aGlyZCBhcmd1bWVudAojIGlzIGEgbGlzdCBob2xk aW5nIHRoZSB2YWx1ZXMgdG8gdXNlIGZvciB0aGUgdmFyaWFibGUuICBUaGUgdmFsdWUgaXMKIyBw cmV0dHkgcHJpbnRlZCBpbiB0aGUgb3V0cHV0IGZpbGUuCnN1YiBkZWZpbmVfcHJldHR5X3Zhcmlh YmxlCnsKICAgIG15ICgkdmFyLCAkY29uZCwgJHdoZXJlLCBAdmFsdWUpID0gQF87CgogICAgaWYg KCEgdmFyZGVmICgkdmFyLCAkY29uZCkpCiAgICB7CglBdXRvbWFrZTo6VmFyaWFibGU6OmRlZmlu ZSAoJHZhciwgVkFSX0FVVE9NQUtFLCAnJywgJGNvbmQsICJAdmFsdWUiLAoJCQkJICAgICcnLCAk d2hlcmUsIFZBUl9QUkVUVFkpOwoJcnZhciAoJHZhciktPnJkZWYgKCRjb25kKS0+c2V0X3NlZW47 CiAgICB9Cn0KCgojIGRlZmluZV92YXJpYWJsZSAoJFZBUiwgJFZBTFVFLCAkV0hFUkUpCiMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBEZWZpbmUgYSBuZXcgQXV0b21h a2UgTWFrZWZpbGUgdmFyaWFibGUgVkFSIHRvIFZBTFVFLCBidXQgb25seSBpZgojIG5vdCBhbHJl YWR5IGRlZmluZWQuCnN1YiBkZWZpbmVfdmFyaWFibGUKewogICAgbXkgKCR2YXIsICR2YWx1ZSwg JHdoZXJlKSA9IEBfOwogICAgZGVmaW5lX3ByZXR0eV92YXJpYWJsZSAoJHZhciwgVFJVRSwgJHdo ZXJlLCAkdmFsdWUpOwp9CgoKIyBkZWZpbmVfZmlsZXNfdmFyaWFibGUgKCRWQVIsIFxAQkFTRU5B TUUsICRFWFRFTlNJT04sICRXSEVSRSkKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBEZWZpbmUgdGhlICRWQVIgd2hpY2ggY29u dGVudCBpcyB0aGUgbGlzdCBvZiBmaWxlIG5hbWVzIGNvbXBvc2VkIG9mCiMgYSBAQkFTRU5BTUUg YW5kIHRoZSAkRVhURU5TSU9OLgpzdWIgZGVmaW5lX2ZpbGVzX3ZhcmlhYmxlICgkXEAkJCkKewog IG15ICgkdmFyLCAkYmFzZW5hbWUsICRleHRlbnNpb24sICR3aGVyZSkgPSBAXzsKICBkZWZpbmVf dmFyaWFibGUgKCR2YXIsCgkJICAgam9pbiAoJyAnLCBtYXAgeyAiJF8uJGV4dGVuc2lvbiIgfSBA JGJhc2VuYW1lKSwKCQkgICAkd2hlcmUpOwp9CgoKIyBMaWtlIGRlZmluZV92YXJpYWJsZSwgYnV0 IGRlZmluZSBhIHZhcmlhYmxlIHRvIGJlIHRoZSBjb25maWd1cmUKIyBzdWJzdGl0dXRpb24gYnkg dGhlIHNhbWUgbmFtZS4Kc3ViIGRlZmluZV9jb25maWd1cmVfdmFyaWFibGUKewogIG15ICgkdmFy KSA9IEBfOwogICMgU29tZSB2YXJpYWJsZXMgd2UgZG8gbm90IHdhbnQgdG8gb3V0cHV0LiAgRm9y IGluc3RhbmNlIGl0CiAgIyB3b3VsZCBiZSBhIGJhZCBpZGVhIHRvIG91dHB1dCBgVSA9IEBVQGAg d2hlbiBgQFVAYCBjYW4gYmUKICAjIHN1YnN0aXR1dGVkIGFzIGBcYC4KICBteSAkcHJldHR5ID0g ZXhpc3RzICRpZ25vcmVkX2NvbmZpZ3VyZV92YXJzeyR2YXJ9ID8gVkFSX1NJTEVOVCA6IFZBUl9B U0lTOwogIEF1dG9tYWtlOjpWYXJpYWJsZTo6ZGVmaW5lICgkdmFyLCBWQVJfQ09ORklHVVJFLCAn JywgVFJVRSwgc3Vic3QgKCR2YXIpLAoJCQkgICAgICAnJywgJGNvbmZpZ3VyZV92YXJzeyR2YXJ9 LCAkcHJldHR5KTsKfQoKCiMgZGVmaW5lX2NvbXBpbGVyX3ZhcmlhYmxlICgkTEFORykKIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIERlZmluZSBhIGNvbXBpbGVyIHZhcmlhYmxl LiAgV2UgYWxzbyBoYW5kbGUgZGVmaW5pbmcgdGhlICdMVCcKIyB2ZXJzaW9uIG9mIHRoZSBjb21t YW5kIHdoZW4gdXNpbmcgbGlidG9vbC4Kc3ViIGRlZmluZV9jb21waWxlcl92YXJpYWJsZQp7CiAg ICBteSAoJGxhbmcpID0gQF87CgogICAgbXkgKCR2YXIsICR2YWx1ZSkgPSAoJGxhbmctPmNvbXBp bGVyLCAkbGFuZy0+Y29tcGlsZSk7CiAgICBteSAkbGlidG9vbF90YWcgPSAnJzsKICAgICRsaWJ0 b29sX3RhZyA9ICctLXRhZz0nIC4gJGxhbmctPmxpYnRvb2xfdGFnIC4gJyAnCiAgICAgIGlmICRs YW5nLT5saWJ0b29sX3RhZyAmJiBleGlzdHMgJGxpYnRvb2xfdGFnc3skbGFuZy0+bGlidG9vbF90 YWd9OwogICAgZGVmaW5lX3ZhcmlhYmxlICgkdmFyLCAkdmFsdWUsIElOVEVSTkFMKTsKICAgIGlm ICh2YXIgKCdMSUJUT09MJykpCiAgICAgIHsKCW15ICR2ZXJib3NlID0gZGVmaW5lX3ZlcmJvc2Vf bGlidG9vbCAoKTsKCWRlZmluZV92YXJpYWJsZSAoIkxUJHZhciIsCiAgICAgICAgICAgICAgICAg ICAgICAgICAiXCQoTElCVE9PTCkgJHZlcmJvc2UgJGxpYnRvb2xfdGFnXCQoQU1fTElCVE9PTEZM QUdTKSIKICAgICAgICAgICAgICAgICAgICAgICAgIC4gIiBcJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1jb21waWxlICR2YWx1ZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICBJTlRFUk5BTCk7CiAg ICAgIH0KICAgIGRlZmluZV92ZXJib3NlX3RhZ3ZhciAoJGxhbmctPmNjZXIgfHwgJ0dFTicpOwp9 CgoKc3ViIGRlZmluZV9saW5rZXJfdmFyaWFibGUKewogICAgbXkgKCRsYW5nKSA9IEBfOwoKICAg IG15ICRsaWJ0b29sX3RhZyA9ICcnOwogICAgJGxpYnRvb2xfdGFnID0gJy0tdGFnPScgLiAkbGFu Zy0+bGlidG9vbF90YWcgLiAnICcKICAgICAgaWYgJGxhbmctPmxpYnRvb2xfdGFnICYmIGV4aXN0 cyAkbGlidG9vbF90YWdzeyRsYW5nLT5saWJ0b29sX3RhZ307CiAgICAjIENDTEQgPSAkKENDKS4K ICAgIGRlZmluZV92YXJpYWJsZSAoJGxhbmctPmxkZXIsICRsYW5nLT5sZCwgSU5URVJOQUwpOwog ICAgIyBDQ0xJTksgPSAkKENDTEQpIGJsYWggYmxhaC4uLgogICAgbXkgJGxpbmsgPSAnJzsKICAg IGlmICh2YXIgKCdMSUJUT09MJykpCiAgICAgIHsKCW15ICR2ZXJib3NlID0gZGVmaW5lX3ZlcmJv c2VfbGlidG9vbCAoKTsKCSRsaW5rID0gIlwkKExJQlRPT0wpICR2ZXJib3NlICRsaWJ0b29sX3Rh Z1wkKEFNX0xJQlRPT0xGTEFHUykgIgoJCS4gIlwkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsg IjsKICAgICAgfQogICAgZGVmaW5lX3ZhcmlhYmxlICgkbGFuZy0+bGlua2VyLCAkbGluayAuICRs YW5nLT5saW5rLCBJTlRFUk5BTCk7CiAgICBkZWZpbmVfdmFyaWFibGUgKCRsYW5nLT5jb21waWxl ciwgJGxhbmcsIElOVEVSTkFMKTsKICAgIGRlZmluZV92ZXJib3NlX3RhZ3ZhciAoJGxhbmctPmxk ZXIgfHwgJ0dFTicpOwp9CgpzdWIgZGVmaW5lX3Blcl90YXJnZXRfbGlua2VyX3ZhcmlhYmxlCnsK ICBteSAoJGxpbmtlciwgJHRhcmdldCkgPSBAXzsKCiAgIyBJZiB0aGUgdXNlciB3cm90ZSBhIGN1 c3RvbSBsaW5rIGNvbW1hbmQsIHdlIGRvbid0IGRlZmluZSBvdXJzLgogIG15ICRjdXN0b21fbGlu ayA9ICIke3RhcmdldH1fTElOSyI7CiAgaWYgKHNldF9zZWVuICgkY3VzdG9tX2xpbmspKQogICAg ewogICAgICBteSAkdmVyYm9zZSA9ICRjdXN0b21fbGluayBpZiB2YXIgKHZlcmJvc2VfdmFyICgk Y3VzdG9tX2xpbmspKTsKICAgICAgcmV0dXJuICgkY3VzdG9tX2xpbmssICR2ZXJib3NlKTsKICAg IH0KCiAgbXkgJHhsaW5rID0gJGxpbmtlciA/ICRsaW5rZXIgOiAnTElOSyc7CgogIG15ICRsYW5n ID0gJGxpbmtfbGFuZ3VhZ2VzeyR4bGlua307CiAgcHJvZ19lcnJvciAiVW5rbm93biBsYW5ndWFn ZSBmb3IgbGlua2VyIHZhcmlhYmxlICckeGxpbmsnIgogICAgdW5sZXNzICRsYW5nOwoKICBteSAk bGlua19jb21tYW5kID0gJGxhbmctPmxpbms7CiAgaWYgKHZhciAnTElCVE9PTCcpCiAgICB7CiAg ICAgIG15ICRsaWJ0b29sX3RhZyA9ICcnOwogICAgICAkbGlidG9vbF90YWcgPSAnLS10YWc9JyAu ICRsYW5nLT5saWJ0b29sX3RhZyAuICcgJwoJaWYgJGxhbmctPmxpYnRvb2xfdGFnICYmIGV4aXN0 cyAkbGlidG9vbF90YWdzeyRsYW5nLT5saWJ0b29sX3RhZ307CgogICAgICBteSAkdmVyYm9zZSA9 IGRlZmluZV92ZXJib3NlX2xpYnRvb2wgKCk7CiAgICAgICRsaW5rX2NvbW1hbmQgPQoJIlwkKExJ QlRPT0wpICR2ZXJib3NlICRsaWJ0b29sX3RhZ1wkKEFNX0xJQlRPT0xGTEFHUykgXCQoTElCVE9P TEZMQUdTKSAiCgkuICItLW1vZGU9bGluayAiIC4gJGxpbmtfY29tbWFuZDsKICAgIH0KCiAgIyBS ZXdyaXRlIGVhY2ggb2NjdXJyZW5jZSBvZiAnQU1fJGZsYWcnIGluIHRoZSBsaW5rCiAgIyBjb21t YW5kIGludG8gJyR7ZGVyaXZlZH1fJGZsYWcnIGlmIGl0IGV4aXN0cy4KICBteSAkb3JpZ19jb21t YW5kID0gJGxpbmtfY29tbWFuZDsKICBteSBAZmxhZ3MgPSAoQHskbGFuZy0+ZmxhZ3N9LCAnTERG TEFHUycpOwogIHB1c2ggQGZsYWdzLCAnTElCVE9PTEZMQUdTJyBpZiB2YXIgJ0xJQlRPT0wnOwog IGZvciBteSAkZmxhZyAoQGZsYWdzKQogICAgewogICAgICBteSAkdmFsID0gIiR7dGFyZ2V0fV8k ZmxhZyI7CiAgICAgICRsaW5rX2NvbW1hbmQgPX4gcy9cKEFNXyRmbGFnXCkvXCgkdmFsXCkvCglp ZiBzZXRfc2VlbiAoJHZhbCk7CiAgICB9CgogICMgSWYgdGhlIGNvbXB1dGVkIGNvbW1hbmQgaXMg dGhlIHNhbWUgYXMgdGhlIGdlbmVyaWMgY29tbWFuZCwgdXNlCiAgIyB0aGUgY29tbWFuZCBsaW5r ZXIgdmFyaWFibGUuCiAgcmV0dXJuICgkbGFuZy0+bGlua2VyLCAkbGFuZy0+bGRlcikKICAgIGlm ICRsaW5rX2NvbW1hbmQgZXEgJG9yaWdfY29tbWFuZDsKCiAgZGVmaW5lX3ZhcmlhYmxlICgiJHt0 YXJnZXR9X0xJTksiLCAkbGlua19jb21tYW5kLCBJTlRFUk5BTCk7CiAgcmV0dXJuICgiJHt0YXJn ZXR9X0xJTksiLCAkbGFuZy0+bGRlcik7Cn0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCiMgY2hlY2tfdHJhaWxpbmdfc2xh c2ggKCRXSEVSRSwgJExJTkUpCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiMgUmV0dXJuIDEgaWZmICRMSU5FIGVuZHMgd2l0aCBhIHNsYXNoLgojIE1pZ2h0IG1vZGlmeSAk TElORS4Kc3ViIGNoZWNrX3RyYWlsaW5nX3NsYXNoICgkXCQpCnsKICBteSAoJHdoZXJlLCAkbGlu ZSkgPSBAXzsKCiAgIyBJZ25vcmUgJyMjJyBsaW5lcy4KICByZXR1cm4gMCBpZiAkJGxpbmUgPX4g LyRJR05PUkVfUEFUVEVSTi9vOwoKICAjIENhdGNoIGFuZCBmaXggYSBjb21tb24gZXJyb3IuCiAg bXNnICJzeW50YXgiLCAkd2hlcmUsICJ3aGl0ZXNwYWNlIGZvbGxvd2luZyB0cmFpbGluZyBiYWNr c2xhc2giCiAgICBpZiAkJGxpbmUgPX4gcy9cXFxzK1xuJC9cXFxuLzsKCiAgcmV0dXJuICQkbGlu ZSA9fiAvXFwkLzsKfQoKCiMgcmVhZF9hbV9maWxlICgkQU1GSUxFLCAkV0hFUkUsICRSRUxESVIp CiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUmVhZCAkQU1GSUxF IGZpbGUgbmFtZSB3aGljaCBpcyBsb2NhdGVkIGluICRSRUxESVIsIGFuZCBzZXQgdXAKIyBnbG9i YWwgdmFyaWFibGVzIHJlc2V0IGJ5ICcmZ2VuZXJhdGVfbWFrZWZpbGUnLiAgU2ltdWx0YW5lb3Vz bHkKIyBjb3B5IGxpbmVzIGZyb20gJEFNRklMRSBpbnRvICckb3V0cHV0X3RyYWlsZXInLCBvciBk ZWZpbmUgdmFyaWFibGVzCiMgYXMgYXBwcm9wcmlhdGUuCiMKIyBOT1RFOiBXZSBwdXQgcnVsZXMg aW4gdGhlIHRyYWlsZXIgc2VjdGlvbi4gIFdlIHdhbnQgdXNlciBydWxlcyB0bwojIGNvbWUgYWZ0 ZXIgb3VyIGdlbmVyYXRlZCBzdHVmZi4Kc3ViIHJlYWRfYW1fZmlsZQp7CiAgICBteSAoJGFtZmls ZSwgJHdoZXJlLCAkcmVsZGlyKSA9IEBfOwogICAgbXkgJGNhbm9uX3JlbGRpciA9ICZjYW5vbmlj YWxpemUgKCRyZWxkaXIpOwoKICAgIG15ICRhbV9maWxlID0gbmV3IEF1dG9tYWtlOjpYRmlsZSAo IjwgJGFtZmlsZSIpOwogICAgdmVyYiAicmVhZGluZyAkYW1maWxlIjsKCiAgICAjIEtlZXAgdHJh Y2sgb2YgdGhlIHlvdW5nZXN0IG91dHB1dCBkZXBlbmRlbmN5LgogICAgbXkgJG10aW1lID0gbXRp bWUgJGFtZmlsZTsKICAgICRvdXRwdXRfZGVwc19ncmVhdGVzdF90aW1lc3RhbXAgPSAkbXRpbWUK ICAgICAgaWYgJG10aW1lID4gJG91dHB1dF9kZXBzX2dyZWF0ZXN0X3RpbWVzdGFtcDsKCiAgICBt eSAkc3BhY2luZyA9ICcnOwogICAgbXkgJGNvbW1lbnQgPSAnJzsKICAgIG15ICRibGFuayA9IDA7 CiAgICBteSAkc2F3X2JrID0gMDsKICAgIG15ICR2YXJfbG9vayA9IFZBUl9BU0lTOwoKICAgIHVz ZSBjb25zdGFudCBJTl9WQVJfREVGID0+IDA7CiAgICB1c2UgY29uc3RhbnQgSU5fUlVMRV9ERUYg PT4gMTsKICAgIHVzZSBjb25zdGFudCBJTl9DT01NRU5UID0+IDI7CiAgICBteSAkcHJldl9zdGF0 ZSA9IElOX1JVTEVfREVGOwoKICAgIHdoaWxlICgkXyA9ICRhbV9maWxlLT5nZXRsaW5lKQogICAg ewoJJHdoZXJlLT5zZXQgKCIkYW1maWxlOiQuIik7CglpZiAoLyRJR05PUkVfUEFUVEVSTi9vKQoJ ewoJICAgICMgTWVyZWx5IGRlbGV0ZSBjb21tZW50cyBiZWdpbm5pbmcgd2l0aCB0d28gaGFzaGVz LgoJfQoJZWxzaWYgKC8kV0hJVEVfUEFUVEVSTi9vKQoJewoJICAgIGVycm9yICR3aGVyZSwgImJs YW5rIGxpbmUgZm9sbG93aW5nIHRyYWlsaW5nIGJhY2tzbGFzaCIKCSAgICAgIGlmICRzYXdfYms7 CgkgICAgIyBTdGljayBhIHNpbmdsZSB3aGl0ZSBsaW5lIGJlZm9yZSB0aGUgaW5jb21pbmcgbWFj cm8gb3IgcnVsZS4KCSAgICAkc3BhY2luZyA9ICJcbiI7CgkgICAgJGJsYW5rID0gMTsKCSAgICAj IEZsdXNoIGFsbCBjb21tZW50cyBzZWVuIHNvIGZhci4KCSAgICBpZiAoJGNvbW1lbnQgbmUgJycp CgkgICAgewoJCSRvdXRwdXRfdmFycyAuPSAkY29tbWVudDsKCQkkY29tbWVudCA9ICcnOwoJICAg IH0KCX0KCWVsc2lmICgvJENPTU1FTlRfUEFUVEVSTi9vKQoJewoJICAgICMgU3RpY2sgY29tbWVu dHMgYmVmb3JlIHRoZSBpbmNvbWluZyBtYWNybyBvciBydWxlLiAgTWFrZQoJICAgICMgc3VyZSBh IGJsYW5rIGxpbmUgcHJlY2VkZXMgdGhlIGZpcnN0IGJsb2NrIG9mIGNvbW1lbnRzLgoJICAgICRz cGFjaW5nID0gIlxuIiB1bmxlc3MgJGJsYW5rOwoJICAgICRibGFuayA9IDE7CgkgICAgJGNvbW1l bnQgLj0gJHNwYWNpbmcgLiAkXzsKCSAgICAkc3BhY2luZyA9ICcnOwoJICAgICRwcmV2X3N0YXRl ID0gSU5fQ09NTUVOVDsKCX0KCWVsc2UKCXsKCSAgICBsYXN0OwoJfQoJJHNhd19iayA9IGNoZWNr X3RyYWlsaW5nX3NsYXNoICgkd2hlcmUsICRfKTsKICAgIH0KCiAgICAjIFdlIHNhdmUgdGhlIGNv bmRpdGlvbmFsIHN0YWNrIG9uIGVudHJ5LCBhbmQgdGhlbiBjaGVjayB0byBtYWtlCiAgICAjIHN1 cmUgaXQgaXMgdGhlIHNhbWUgb24gZXhpdC4gIFRoaXMgbGV0cyB1cyBjb25kaXRpb25hbGx5IGlu Y2x1ZGUKICAgICMgb3RoZXIgZmlsZXMuCiAgICBteSBAc2F2ZWRfY29uZF9zdGFjayA9IEBjb25k X3N0YWNrOwogICAgbXkgJGNvbmQgPSBuZXcgQXV0b21ha2U6OkNvbmRpdGlvbiAoQGNvbmRfc3Rh Y2spOwoKICAgIG15ICRsYXN0X3Zhcl9uYW1lID0gJyc7CiAgICBteSAkbGFzdF92YXJfdHlwZSA9 ICcnOwogICAgbXkgJGxhc3RfdmFyX3ZhbHVlID0gJyc7CiAgICBteSAkbGFzdF93aGVyZTsKICAg ICMgRklYTUU6IHNob3VsZG4ndCB1c2UgJF8gaW4gdGhpcyBsb29wOyBpdCBpcyB0b28gYmlnLgog ICAgd2hpbGUgKCRfKQogICAgewoJJHdoZXJlLT5zZXQgKCIkYW1maWxlOiQuIik7CgoJIyBNYWtl IHN1cmUgdGhlIGxpbmUgaXMgXG4tdGVybWluYXRlZC4KCWNob21wOwoJJF8gLj0gIlxuIjsKCgkj IERvbid0IGxvb2sgYXQgTUFJTlRBSU5FUl9NT0RFX1RSVUUgaGVyZS4gIFRoYXQgc2hvdWxkbid0 IGJlCgkjIHVzZWQgYnkgdXNlcnMuICBATUFJTlRAIGlzIGFuIGFuYWNocm9uaXNtIG5vdy4KCSRf ID1+IHMvXEBNQUlOVFxALy9nCgkgICAgdW5sZXNzICRzZWVuX21haW50X21vZGU7CgoJbXkgJG5l d19zYXdfYmsgPSBjaGVja190cmFpbGluZ19zbGFzaCAoJHdoZXJlLCAkXyk7CgoJaWYgKCRyZWxk aXIgZXEgJy4nKQoJICB7CgkgICAgIyBJZiBwcmVzZW50LCBlYXQgdGhlIGZvbGxvd2luZyAnXycg b3IgJy8nLCBjb252ZXJ0aW5nCgkgICAgIyAiJXJlbGRpciUvZm9vIiBhbmQgIiVjYW5vbl9yZWxk aXIlX2ZvbyIgaW50byBwbGFpbiAiZm9vIgoJICAgICMgd2hlbiAkcmVsZGlyIGlzICcuJy4KCSAg ICAkXyA9fiBzLCUoRHxyZWxkaXIpJS8sLGc7CgkgICAgJF8gPX4gcywlKEN8Y2Fub25fcmVsZGly KSVfLCxnOwoJICB9CgkkXyA9fiBzLyUoRHxyZWxkaXIpJS8ke3JlbGRpcn0vZzsKCSRfID1+IHMv JShDfGNhbm9uX3JlbGRpciklLyR7Y2Fub25fcmVsZGlyfS9nOwoKCWlmICgvJElHTk9SRV9QQVRU RVJOL28pCgl7CgkgICAgIyBNZXJlbHkgZGVsZXRlIGNvbW1lbnRzIGJlZ2lubmluZyB3aXRoIHR3 byBoYXNoZXMuCgoJICAgICMgS2VlcCBhbnkgYmFja3NsYXNoIGZyb20gdGhlIHByZXZpb3VzIGxp bmUuCgkgICAgJG5ld19zYXdfYmsgPSAkc2F3X2JrOwoJfQoJZWxzaWYgKC8kV0hJVEVfUEFUVEVS Ti9vKQoJewoJICAgICMgU3RpY2sgYSBzaW5nbGUgd2hpdGUgbGluZSBiZWZvcmUgdGhlIGluY29t aW5nIG1hY3JvIG9yIHJ1bGUuCgkgICAgJHNwYWNpbmcgPSAiXG4iOwoJICAgIGVycm9yICR3aGVy ZSwgImJsYW5rIGxpbmUgZm9sbG93aW5nIHRyYWlsaW5nIGJhY2tzbGFzaCIKCSAgICAgIGlmICRz YXdfYms7Cgl9CgllbHNpZiAoLyRDT01NRU5UX1BBVFRFUk4vbykKCXsKCSAgICBlcnJvciAkd2hl cmUsICJjb21tZW50IGZvbGxvd2luZyB0cmFpbGluZyBiYWNrc2xhc2giCgkgICAgICBpZiAkc2F3 X2JrICYmICRwcmV2X3N0YXRlICE9IElOX0NPTU1FTlQ7CgoJICAgICMgU3RpY2sgY29tbWVudHMg YmVmb3JlIHRoZSBpbmNvbWluZyBtYWNybyBvciBydWxlLgoJICAgICRjb21tZW50IC49ICRzcGFj aW5nIC4gJF87CgkgICAgJHNwYWNpbmcgPSAnJzsKCSAgICAkcHJldl9zdGF0ZSA9IElOX0NPTU1F TlQ7Cgl9CgllbHNpZiAoJHNhd19iaykKCXsKCSAgICBpZiAoJHByZXZfc3RhdGUgPT0gSU5fUlVM RV9ERUYpCgkgICAgewoJICAgICAgbXkgJGNvbmQgPSBuZXcgQXV0b21ha2U6OkNvbmRpdGlvbiBA Y29uZF9zdGFjazsKCSAgICAgICRvdXRwdXRfdHJhaWxlciAuPSAkY29uZC0+c3Vic3Rfc3RyaW5n OwoJICAgICAgJG91dHB1dF90cmFpbGVyIC49ICRfOwoJICAgIH0KCSAgICBlbHNpZiAoJHByZXZf c3RhdGUgPT0gSU5fQ09NTUVOVCkKCSAgICB7CgkJIyBJZiB0aGUgbGluZSBkb2Vzbid0IHN0YXJ0 IHdpdGggYSAnIycsIGFkZCBpdC4KCQkjIFdlIGRvIHRoaXMgYmVjYXVzZSBhIGNvbnRpbnVlZCBj b21tZW50IGxpa2UKCQkjICAgIyBBID0gZm9vIFwKCQkjICAgICAgICAgYmFyIFwKCQkjICAgICAg ICAgYmF6CgkJIyBpcyBub3QgcG9ydGFibGUuICBCU0QgbWFrZSBkb2Vzbid0IGhvbm9yCgkJIyBl c2NhcGVkIG5ld2xpbmVzIGluIGNvbW1lbnRzLgoJCXMvXiM/LyMvOwoJCSRjb21tZW50IC49ICRz cGFjaW5nIC4gJF87CgkgICAgfQoJICAgIGVsc2UgIyAkcHJldl9zdGF0ZSA9PSBJTl9WQVJfREVG CgkgICAgewoJICAgICAgJGxhc3RfdmFyX3ZhbHVlIC49ICcgJwoJCXVubGVzcyAkbGFzdF92YXJf dmFsdWUgPX4gL1xzJC87CgkgICAgICAkbGFzdF92YXJfdmFsdWUgLj0gJF87CgoJICAgICAgaWYg KCEvXFwkLykKCQl7CgkJICBBdXRvbWFrZTo6VmFyaWFibGU6OmRlZmluZSAoJGxhc3RfdmFyX25h bWUsIFZBUl9NQUtFRklMRSwKCQkJCQkgICAgICAkbGFzdF92YXJfdHlwZSwgJGNvbmQsCgkJCQkJ ICAgICAgJGxhc3RfdmFyX3ZhbHVlLCAkY29tbWVudCwKCQkJCQkgICAgICAkbGFzdF93aGVyZSwg VkFSX0FTSVMpCgkJICAgIGlmICRjb25kICE9IEZBTFNFOwoJCSAgJGNvbW1lbnQgPSAkc3BhY2lu ZyA9ICcnOwoJCX0KCSAgICB9Cgl9CgoJZWxzaWYgKC8kSUZfUEFUVEVSTi9vKQoJICB7CgkgICAg JGNvbmQgPSBjb25kX3N0YWNrX2lmICgkMSwgJDIsICR3aGVyZSk7CgkgIH0KCWVsc2lmICgvJEVM U0VfUEFUVEVSTi9vKQoJICB7CgkgICAgJGNvbmQgPSBjb25kX3N0YWNrX2Vsc2UgKCQxLCAkMiwg JHdoZXJlKTsKCSAgfQoJZWxzaWYgKC8kRU5ESUZfUEFUVEVSTi9vKQoJICB7CgkgICAgJGNvbmQg PSBjb25kX3N0YWNrX2VuZGlmICgkMSwgJDIsICR3aGVyZSk7CgkgIH0KCgllbHNpZiAoLyRSVUxF X1BBVFRFUk4vbykKCXsKCSAgICAjIEZvdW5kIGEgcnVsZS4KCSAgICAkcHJldl9zdGF0ZSA9IElO X1JVTEVfREVGOwoKCSAgICAjIEZvciBub3cgd2UgaGF2ZSB0byBvdXRwdXQgYWxsIGRlZmluaXRp b25zIG9mIHVzZXIgcnVsZXMKCSAgICAjIGFuZCBjYW4ndCBkaWFnbm9zZSBkdXBsaWNhdGVzIChz ZWUgdGhlIGNvbW1lbnQgaW4KCSAgICAjIEF1dG9tYWtlOjpSdWxlOjpkZWZpbmUpLiBTbyB3ZSBn byBvbiBhbmQgaWdub3JlIHRoZSByZXR1cm4gdmFsdWUuCgkgICAgQXV0b21ha2U6OlJ1bGU6OmRl ZmluZSAoJDEsICRhbWZpbGUsIFJVTEVfVVNFUiwgJGNvbmQsICR3aGVyZSk7CgoJICAgIGNoZWNr X3ZhcmlhYmxlX2V4cGFuc2lvbnMgKCRfLCAkd2hlcmUpOwoKCSAgICAkb3V0cHV0X3RyYWlsZXIg Lj0gJGNvbW1lbnQgLiAkc3BhY2luZzsKCSAgICBteSAkY29uZCA9IG5ldyBBdXRvbWFrZTo6Q29u ZGl0aW9uIEBjb25kX3N0YWNrOwoJICAgICRvdXRwdXRfdHJhaWxlciAuPSAkY29uZC0+c3Vic3Rf c3RyaW5nOwoJICAgICRvdXRwdXRfdHJhaWxlciAuPSAkXzsKCSAgICAkY29tbWVudCA9ICRzcGFj aW5nID0gJyc7Cgl9CgllbHNpZiAoLyRBU1NJR05NRU5UX1BBVFRFUk4vbykKCXsKCSAgICAjIEZv dW5kIGEgbWFjcm8gZGVmaW5pdGlvbi4KCSAgICAkcHJldl9zdGF0ZSA9IElOX1ZBUl9ERUY7Cgkg ICAgJGxhc3RfdmFyX25hbWUgPSAkMTsKCSAgICAkbGFzdF92YXJfdHlwZSA9ICQyOwoJICAgICRs YXN0X3Zhcl92YWx1ZSA9ICQzOwoJICAgICRsYXN0X3doZXJlID0gJHdoZXJlLT5jbG9uZTsKCSAg ICBpZiAoJDMgbmUgJycgJiYgc3Vic3RyICgkMywgLTEpIGVxICJcXCIpCgkgICAgICB7CgkJIyBX ZSBwcmVzZXJ2ZSB0aGUgJ1wnIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSBsb25nIGxpbmVzCgkJIyB0 aGF0IGFyZSBnZW5lcmF0ZWQgd2lsbCBiZSB0cnVuY2F0ZWQgYnkgYnJva2VuCgkJIyAnc2VkJ3Mu CgkJJGxhc3RfdmFyX3ZhbHVlID0gJDMgLiAiXG4iOwoJICAgICAgfQoJICAgICMgTm9ybWFsbHkg d2UgdHJ5IHRvIG91dHB1dCB2YXJpYWJsZSBkZWZpbml0aW9ucyBpbiB0aGUKCSAgICAjIHNhbWUg Zm9ybWF0IHRoZXkgd2VyZSBpbnB1dC4gIEhvd2V2ZXIsIFBPU0lYIGNvbXBsaWFudAoJICAgICMg c3lzdGVtcyBhcmUgbm90IHJlcXVpcmVkIHRvIHN1cHBvcnQgbGluZXMgbG9uZ2VyIHRoYW4KCSAg ICAjIDIwNDggYnl0ZXMgKG1vc3Qgbm90YWJseSwgc29tZSBzZWQgaW1wbGVtZW50YXRpb24gYXJl CgkgICAgIyBsaW1pdGVkIHRvIDQwMDAgYnl0ZXMsIGFuZCBzZWQgaXMgdXNlZCBieSBjb25maWcu c3RhdHVzCgkgICAgIyB0byByZXdyaXRlIE1ha2VmaWxlLmluIGludG8gTWFrZWZpbGUpLiAgTW9y ZW92ZXIgbm9ib2R5CgkgICAgIyB3b3VsZCByZWFsbHkgd3JpdGUgc3VjaCBsb25nIGxpbmVzIGJ5 IGhhbmQgc2luY2UgaXQgaXMKCSAgICAjIGhhcmRseSBtYWludGFpbmFibGUuICBTbyBpZiBhIGxp bmUgaXMgbG9uZ2VyIHRoYXQgMTAwMAoJICAgICMgYnl0ZXMgKGFuIGFyYml0cmFyeSBsaW1pdCks IGFzc3VtZSBpdCBoYXMgYmVlbgoJICAgICMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgc29t ZSB0b29scywgYW5kIGZsYXR0ZW4gdGhlCgkgICAgIyB2YXJpYWJsZSBkZWZpbml0aW9uLiAgT3Ro ZXJ3aXNlLCBrZWVwIHRoZSB2YXJpYWJsZSBhcyBpdAoJICAgICMgYXMgYmVlbiBpbnB1dC4KCSAg ICAkdmFyX2xvb2sgPSBWQVJfUFJFVFRZIGlmIGxlbmd0aCAoJGxhc3RfdmFyX3ZhbHVlKSA+PSAx MDAwOwoKCSAgICBpZiAoIS9cXCQvKQoJICAgICAgewoJCUF1dG9tYWtlOjpWYXJpYWJsZTo6ZGVm aW5lICgkbGFzdF92YXJfbmFtZSwgVkFSX01BS0VGSUxFLAoJCQkJCSAgICAkbGFzdF92YXJfdHlw ZSwgJGNvbmQsCgkJCQkJICAgICRsYXN0X3Zhcl92YWx1ZSwgJGNvbW1lbnQsCgkJCQkJICAgICRs YXN0X3doZXJlLCAkdmFyX2xvb2spCgkJICBpZiAkY29uZCAhPSBGQUxTRTsKCQkkY29tbWVudCA9 ICRzcGFjaW5nID0gJyc7CgkJJHZhcl9sb29rID0gVkFSX0FTSVM7CgkgICAgICB9Cgl9CgllbHNp ZiAoLyRJTkNMVURFX1BBVFRFUk4vbykKCXsKCSAgICBteSAkcGF0aCA9ICQxOwoKCSAgICBpZiAo JHBhdGggPX4gcy9eXCRcKHRvcF9zcmNkaXJcKVwvLy8pCgkgICAgICB7CgkJcHVzaCAoQGluY2x1 ZGVfc3RhY2ssICJcJFwodG9wX3NyY2RpclwpLyRwYXRoIik7CgkJIyBEaXN0cmlidXRlIGFueSBp bmNsdWRlZCBmaWxlLgoKCQkjIEFsd2F5cyB1c2UgdGhlICQodG9wX3NyY2RpcikgcHJlZml4IGlu IERJU1RfQ09NTU9OLAoJCSMgb3RoZXJ3aXNlIE9TRiBtYWtlIHdpbGwgaW1wbGljaXRseSBjb3B5 IHRoZSBpbmNsdWRlZAoJCSMgZmlsZSBpbiB0aGUgYnVpbGQgdHJlZSBkdXJpbmcgIm1ha2UgZGlz dGRpciIgdG8gc2F0aXNmeQoJCSMgdGhlIGRlcGVuZGVuY3kuCgkJIyAoc3ViZGlyLWFtLWNvbmQu c2ggYW5kIHN1YmRpci1hYy1jb25kLnNoIHdpbGwgZmFpbCkKCQlwdXNoX2Rpc3RfY29tbW9uICgi XCRcKHRvcF9zcmNkaXJcKS8kcGF0aCIpOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkk cGF0aCA9fiBzL1wkXChzcmNkaXJcKVwvLy87CgkJcHVzaCAoQGluY2x1ZGVfc3RhY2ssICJcJFwo c3JjZGlyXCkvJHBhdGgiKTsKCQkjIEFsd2F5cyB1c2UgdGhlICQoc3JjZGlyKSBwcmVmaXggaW4g RElTVF9DT01NT04sCgkJIyBvdGhlcndpc2UgT1NGIG1ha2Ugd2lsbCBpbXBsaWNpdGx5IGNvcHkg dGhlIGluY2x1ZGVkCgkJIyBmaWxlIGluIHRoZSBidWlsZCB0cmVlIGR1cmluZyAibWFrZSBkaXN0 ZGlyIiB0byBzYXRpc2Z5CgkJIyB0aGUgZGVwZW5kZW5jeS4KCQkjIChzdWJkaXItYW0tY29uZC5z aCBhbmQgc3ViZGlyLWFjLWNvbmQuc2ggd2lsbCBmYWlsKQoJCXB1c2hfZGlzdF9jb21tb24gKCJc JFwoc3JjZGlyXCkvJHBhdGgiKTsKCQkkcGF0aCA9ICRyZWxhdGl2ZV9kaXIgLiAiLyIgLiAkcGF0 aCBpZiAkcmVsYXRpdmVfZGlyIG5lICcuJzsKCSAgICAgIH0KCSAgICBteSAkbmV3X3JlbGRpciA9 IEZpbGU6OlNwZWMtPmFiczJyZWwgKCRwYXRoLCAkcmVsYXRpdmVfZGlyKTsKCSAgICAkbmV3X3Jl bGRpciA9ICcuJyBpZiAkbmV3X3JlbGRpciAhfiBzLC9bXi9dKiQsLDsKCSAgICAkd2hlcmUtPnB1 c2hfY29udGV4dCAoIickcGF0aCcgaW5jbHVkZWQgZnJvbSBoZXJlIik7CgkgICAgcmVhZF9hbV9m aWxlICgkcGF0aCwgJHdoZXJlLCAkbmV3X3JlbGRpcik7CgkgICAgJHdoZXJlLT5wb3BfY29udGV4 dDsKCX0KCWVsc2UKCXsKCSAgICAjIFRoaXMgaXNuJ3QgYW4gZXJyb3I7IGl0IGlzIHByb2JhYmx5 IGEgY29udGludWVkIHJ1bGUuCgkgICAgIyBJbiBmYWN0LCB0aGlzIGlzIHdoYXQgd2UgYXNzdW1l LgoJICAgICRwcmV2X3N0YXRlID0gSU5fUlVMRV9ERUY7CgkgICAgY2hlY2tfdmFyaWFibGVfZXhw YW5zaW9ucyAoJF8sICR3aGVyZSk7CgkgICAgJG91dHB1dF90cmFpbGVyIC49ICRjb21tZW50IC4g JHNwYWNpbmc7CgkgICAgbXkgJGNvbmQgPSBuZXcgQXV0b21ha2U6OkNvbmRpdGlvbiBAY29uZF9z dGFjazsKCSAgICAkb3V0cHV0X3RyYWlsZXIgLj0gJGNvbmQtPnN1YnN0X3N0cmluZzsKCSAgICAk b3V0cHV0X3RyYWlsZXIgLj0gJF87CgkgICAgJGNvbW1lbnQgPSAkc3BhY2luZyA9ICcnOwoJICAg IGVycm9yICR3aGVyZSwgIicjJyBjb21tZW50IGF0IHN0YXJ0IG9mIHJ1bGUgaXMgdW5wb3J0YWJs ZSIKCSAgICAgIGlmICRfID1+IC9eXHRccypcIy87Cgl9CgoJJHNhd19iayA9ICRuZXdfc2F3X2Jr OwoJJF8gPSAkYW1fZmlsZS0+Z2V0bGluZTsKICAgIH0KCiAgICAkb3V0cHV0X3RyYWlsZXIgLj0g JGNvbW1lbnQ7CgogICAgZXJyb3IgKCR3aGVyZSwgInRyYWlsaW5nIGJhY2tzbGFzaCBvbiBsYXN0 IGxpbmUiKQogICAgICBpZiAkc2F3X2JrOwoKICAgIGVycm9yICgkd2hlcmUsIChAY29uZF9zdGFj ayA/ICJ1bnRlcm1pbmF0ZWQgY29uZGl0aW9uYWxzOiBAY29uZF9zdGFjayIKCQkgICAgOiAidG9v IG1hbnkgY29uZGl0aW9uYWxzIGNsb3NlZCBpbiBpbmNsdWRlIGZpbGUiKSkKICAgICAgaWYgIkBz YXZlZF9jb25kX3N0YWNrIiBuZSAiQGNvbmRfc3RhY2siOwp9CgoKIyBBIGhlbHBlciBmb3IgcmVh ZF9tYWluX2FtX2ZpbGUgd2hpY2ggaW5pdGlhbGl6ZXMgY29uZmlndXJlIHZhcmlhYmxlcwojIGFu ZCB2YXJpYWJsZXMgZnJvbSBoZWFkZXItdmFycy5hbS4Kc3ViIGRlZmluZV9zdGFuZGFyZF92YXJp YWJsZXMgKCkKewogIG15ICRzYXZlZF9vdXRwdXRfdmFycyA9ICRvdXRwdXRfdmFyczsKICBteSAo JGNvbW1lbnRzLCB1bmRlZiwgJHJ1bGVzKSA9CiAgICBmaWxlX2NvbnRlbnRzX2ludGVybmFsICgx LCAiJGxpYmRpci9hbS9oZWFkZXItdmFycy5hbSIsCgkJCSAgICBuZXcgQXV0b21ha2U6OkxvY2F0 aW9uKTsKCiAgZm9yZWFjaCBteSAkdmFyIChzb3J0IGtleXMgJWNvbmZpZ3VyZV92YXJzKQogICAg ewogICAgICBkZWZpbmVfY29uZmlndXJlX3ZhcmlhYmxlICgkdmFyKTsKICAgIH0KCiAgJG91dHB1 dF92YXJzIC49ICRjb21tZW50cyAuICRydWxlczsKfQoKCiMgcmVhZF9tYWluX2FtX2ZpbGUgKCRN QUtFRklMRV9BTSwgJE1BS0VGSUxFX0lOKQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0Kc3ViIHJlYWRfbWFpbl9hbV9maWxlCnsKICAgIG15ICgkYW1maWxl LCAkaW5maWxlKSA9IEBfOwoKICAgICMgVGhpcyBzdXBwb3J0cyB0aGUgc3RyYW5nZSB2YXJpYWJs ZSB0cmlja3Mgd2UgYXJlIGFib3V0IHRvIHBsYXkuCiAgICBwcm9nX2Vycm9yICgidmFyaWFibGUg ZGVmaW5lZCBiZWZvcmUgcmVhZF9tYWluX2FtX2ZpbGVcbiIgLiB2YXJpYWJsZXNfZHVtcCAoKSkK ICAgICAgaWYgKHNjYWxhciAodmFyaWFibGVzKSA+IDApOwoKICAgICMgR2VuZXJhdGUgY29weXJp Z2h0IGhlYWRlciBmb3IgZ2VuZXJhdGVkIE1ha2VmaWxlLmluLgogICAgIyBXZSBkbyBkaXNjYXJk IHRoZSBvdXRwdXQgb2YgcHJlZGVmaW5lZCB2YXJpYWJsZXMsIGhhbmRsZWQgYmVsb3cuCiAgICAk b3V0cHV0X3ZhcnMgPSAoIiMgIiAuIGJhc2VuYW1lICgkaW5maWxlKSAuICIgZ2VuZXJhdGVkIGJ5 IGF1dG9tYWtlICIKCQkgICAuICRWRVJTSU9OIC4gIiBmcm9tICIgLiBiYXNlbmFtZSAoJGFtZmls ZSkgLiAiLlxuIik7CiAgICAkb3V0cHV0X3ZhcnMgLj0gJyMgJyAuIHN1YnN0ICgnY29uZmlndXJl X2lucHV0JykgLiAiXG4iOwogICAgJG91dHB1dF92YXJzIC49ICRnZW5fY29weXJpZ2h0OwoKICAg ICMgV2Ugd2FudCB0byBwcmVkZWZpbmUgYXMgbWFueSB2YXJpYWJsZXMgYXMgcG9zc2libGUuICBU aGlzIGxldHMKICAgICMgdGhlIHVzZXIgc2V0IHRoZW0gd2l0aCAnKz0nIGluIE1ha2VmaWxlLmFt LgogICAgZGVmaW5lX3N0YW5kYXJkX3ZhcmlhYmxlczsKCiAgICAjIFJlYWQgdXNlciBmaWxlLCB3 aGljaCBtaWdodCBvdmVycmlkZSBzb21lIG9mIG91ciB2YWx1ZXMuCiAgICByZWFkX2FtX2ZpbGUg KCRhbWZpbGUsIG5ldyBBdXRvbWFrZTo6TG9jYXRpb24sICcuJyk7Cn0KCgoKIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKIyAk U1RSSU5HCiMgZmxhdHRlbiAoJE9SSUdJTkFMX1NUUklORykKIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpzdWIgZmxhdHRlbgp7CiAgJF8gPSBzaGlmdDsKCiAgcy9cXFxuLy9zb21nOwogIHMv XHMrLyAvZzsKICBzL14gLy87CiAgcy8gJC8vOwoKICByZXR1cm4gJF87Cn0KCgojIHRyYW5zZm9y bV90b2tlbiAoJFRPS0VOLCBcJVBBSVJTLCAkS0VZKQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQojIFJldHVybiB0aGUgdmFsdWUgYXNzb2NpYXRlZCB0byAkS0VZIGlu ICVQQUlSUywgYXMgdXNlZCBvbiAkVE9LRU4KIyAod2hpY2ggc2hvdWxkIGJlID9LRVk/IG9yIGFu eSBvZiB0aGUgc3BlY2lhbCAlJSByZXF1ZXN0cykuLgpzdWIgdHJhbnNmb3JtX3Rva2VuICgkXCUk KQp7CiAgbXkgKCR0b2tlbiwgJHRyYW5zZm9ybSwgJGtleSkgPSBAXzsKICBteSAkcmVzID0gJHRy YW5zZm9ybS0+eyRrZXl9OwogIHByb2dfZXJyb3IgIlVua25vd24ga2V5ICcka2V5JyBpbiAnJHRv a2VuJyIgdW5sZXNzIGRlZmluZWQgJHJlczsKICByZXR1cm4gJHJlczsKfQoKCiMgdHJhbnNmb3Jt ICgkVE9LRU4sIFwlUEFJUlMpCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgSWYgKCRU T0tFTiwgJFZBTCkgaXMgaW4gJVBBSVJTOgojICAgLSByZXBsYWNlcyAlS0VZJSB3aXRoICRWQUws CiMgICAtIGVuYWJsZXMvZGlzYWJsZXMgP0tFWT8gYW5kID8hS0VZPywKIyAgIC0gcmVwbGFjZXMg JT9LRVklIHdpdGggVFJVRSBvciBGQUxTRS4Kc3ViIHRyYW5zZm9ybSAoJFwlKQp7CiAgbXkgKCR0 b2tlbiwgJHRyYW5zZm9ybSkgPSBAXzsKCiAgIyAlS0VZJS4KICAjIE11c3QgYmUgYmVmb3JlIHRo ZSBmb2xsb3dpbmcgcGF0dGVybiB0byBleGNsdWRlIHRoZSBjYXNlCiAgIyB3aGVuIHRoZXJlIGlz IG5laXRoZXIgSUZUUlVFIG5vciBJRkZBTFNFLgogIGlmICgkdG9rZW4gPX4gL14lKFtcd1wtXSsp JSQvKQogICAgewogICAgICByZXR1cm4gdHJhbnNmb3JtX3Rva2VuICgkdG9rZW4sICUkdHJhbnNm b3JtLCAkMSk7CiAgICB9CiAgIyAlP0tFWSUuCiAgZWxzaWYgKCR0b2tlbiA9fiAvXiVcPyhbXHdc LV0rKSUkLykKICAgIHsKICAgICAgcmV0dXJuIHRyYW5zZm9ybV90b2tlbiAoJHRva2VuLCAlJHRy YW5zZm9ybSwgJDEpID8gJ1RSVUUnIDogJ0ZBTFNFJzsKICAgIH0KICAjID9LRVk/IGFuZCA/IUtF WT8uCiAgZWxzaWYgKCR0b2tlbiA9fiAvXiBcPyAoIT8pIChbXHdcLV0rKSBcPyAkL3gpCiAgICB7 CiAgICAgIG15ICRuZWcgPSAoJDEgZXEgJyEnKSA/IDEgOiAwOwogICAgICBteSAkdmFsID0gdHJh bnNmb3JtX3Rva2VuICgkdG9rZW4sICUkdHJhbnNmb3JtLCAkMik7CiAgICAgIHJldHVybiAoKCEh JHZhbCkgPT0gJG5lZykgPyAnIyMlJyA6ICcnOwogICAgfQogIGVsc2UKICAgIHsKICAgICAgcHJv Z19lcnJvciAiVW5rbm93biByZXF1ZXN0IGZvcm1hdDogJHRva2VuIjsKICAgIH0KfQoKIyAkVEVY VAojIHByZXByb2Nlc3NfZmlsZSAoJE1BS0VGSUxFLCBbJVRSQU5TRk9STV0pCiMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMb2FkIGEgJE1BS0VGSUxFLCBhcHBs eSB0aGUgJVRSQU5TRk9STSwgYW5kIHJldHVybiB0aGUgcmVzdWx0LgojIE5vIGV4dHJhIHBhcnNp bmcgb3IgcG9zdC1wcm9jZXNzaW5nIGlzIGRvbmUgKGkuZS4sIHJlY29nbml0aW9uIG9mCiMgcnVs ZXMgZGVjbGFyYXRpb24gb3Igb2YgbWFrZSB2YXJpYWJsZXMgZGVmaW5pdGlvbnMpLgpzdWIgcHJl cHJvY2Vzc19maWxlCnsKICBteSAoJGZpbGUsICV0cmFuc2Zvcm0pID0gQF87CgogICMgQ29tcGxl dGUgJXRyYW5zZm9ybSB3aXRoIGdsb2JhbCBvcHRpb25zLgogICMgTm90ZSB0aGF0ICV0cmFuc2Zv cm0gZ29lcyBsYXN0LCBzbyBpdCBvdmVycmlkZXMgZ2xvYmFsIG9wdGlvbnMuCiAgJXRyYW5zZm9y bSA9ICggJ01BSU5UQUlORVItTU9ERScKCQkgPT4gJHNlZW5fbWFpbnRfbW9kZSA/IHN1YnN0ICgn TUFJTlRBSU5FUl9NT0RFX1RSVUUnKSA6ICcnLAoKCQkgJ1haJyAgICAgICAgICA9PiAhISBvcHRp b24gJ2Rpc3QteHonLAoJCSAnTFpJUCcgICAgICAgID0+ICEhIG9wdGlvbiAnZGlzdC1semlwJywK CQkgJ0JaSVAyJyAgICAgICA9PiAhISBvcHRpb24gJ2Rpc3QtYnppcDInLAoJCSAnQlpJUDMnICAg ICAgID0+ICEhIG9wdGlvbiAnZGlzdC1iemlwMycsCgkJICdDT01QUkVTUycgICAgPT4gISEgb3B0 aW9uICdkaXN0LXRhclonLAoJCSAnR1pJUCcgICAgICAgID0+ICAhIG9wdGlvbiAnbm8tZGlzdC1n emlwJywKCQkgJ1NIQVInICAgICAgICA9PiAhISBvcHRpb24gJ2Rpc3Qtc2hhcicsCgkJICdaSVAn ICAgICAgICAgPT4gISEgb3B0aW9uICdkaXN0LXppcCcsCgkJICdaU1REJyAgICAgICAgPT4gISEg b3B0aW9uICdkaXN0LXpzdGQnLAoJCSAnRElTVF9CVUlMVF9TT1VSQ0VTJyA9PiAhIG9wdGlvbiAn bm8tZGlzdC1idWlsdC1zb3VyY2VzJywKCgkJICdJTlNUQUxMLUlORk8nID0+ICAhIG9wdGlvbiAn bm8taW5zdGFsbGluZm8nLAoJCSAnSU5TVEFMTC1NQU4nICA9PiAgISBvcHRpb24gJ25vLWluc3Rh bGxtYW4nLAoJCSAnQ0stTkVXUycgICAgICA9PiAhISBvcHRpb24gJ2NoZWNrLW5ld3MnLAoKCQkg J1NVQkRJUlMnICAgICAgPT4gISEgdmFyICgnU1VCRElSUycpLAoJCSAnVE9QRElSX1AnICAgICA9 PiAkcmVsYXRpdmVfZGlyIGVxICcuJywKCgkJICdCVUlMRCcgICAgPT4gKCRzZWVuX2Nhbm9uaWNh bCA+PSBBQ19DQU5PTklDQUxfQlVJTEQpLAoJCSAnSE9TVCcgICAgID0+ICgkc2Vlbl9jYW5vbmlj YWwgPj0gQUNfQ0FOT05JQ0FMX0hPU1QpLAoJCSAnVEFSR0VUJyAgID0+ICgkc2Vlbl9jYW5vbmlj YWwgPj0gQUNfQ0FOT05JQ0FMX1RBUkdFVCksCgoJCSAnTElCVE9PTCcgICAgICA9PiAhISB2YXIg KCdMSUJUT09MJyksCgkJICdOT05MSUJUT09MJyAgID0+IDEsCgkJJXRyYW5zZm9ybSk7CgogIGlm ICghIGRlZmluZWQgKCRfID0gJGFtX2ZpbGVfY2FjaGV7JGZpbGV9KSkKICAgIHsKICAgICAgdmVy YiAicmVhZGluZyAkZmlsZSI7CiAgICAgICMgU3dhbGxvdyB0aGUgd2hvbGUgZmlsZS4KICAgICAg bXkgJGZjX2ZpbGUgPSBuZXcgQXV0b21ha2U6OlhGaWxlICI8ICRmaWxlIjsKICAgICAgbXkgJHNh dmVkX2RvbGxhcl9zbGFzaCA9ICQvOwogICAgICB1bmRlZiAkLzsKICAgICAgJF8gPSAkZmNfZmls ZS0+Z2V0bGluZTsKICAgICAgJC8gPSAkc2F2ZWRfZG9sbGFyX3NsYXNoOwogICAgICAkZmNfZmls ZS0+Y2xvc2U7CiAgICAgICMgUmVtb3ZlICMjLWNvbW1lbnRzLgogICAgICAjIEJlc2lkZXMgd2Ug ZG9uJ3QgbmVlZCBtb3JlIHRoYW4gdHdvIGNvbnNlY3V0aXZlIG5ldy1saW5lcy4KICAgICAgcy8o PzokSUdOT1JFX1BBVFRFUk58KD88PVxuXG4pXG4rKS8vZ29tOwogICAgICAjIFJlbWVtYmVyIHRo ZSBjb250ZW50cyBvZiB0aGUganVzdC1yZWFkIGZpbGUuCiAgICAgICRhbV9maWxlX2NhY2hleyRm aWxlfSA9ICRfOwogICAgfQoKICAjIFN1YnN0aXR1dGUgQXV0b21ha2UgdGVtcGxhdGUgdG9rZW5z LgogIHMvKD86ICUgXD8/IFtcd1wtXSsgJQogICAgICB8IFw/ICE/IFtcd1wtXSsgXD8KICAgICkv dHJhbnNmb3JtKCQmLCAldHJhbnNmb3JtKS9nZXg7CiAgIyB0cmFuc2Zvcm0oKSBtYXkgaGF2ZSBh ZGRlZCBzb21lICMjJS1jb21tZW50cyB0byBzdHJpcC4KICAjICh3ZSB1c2UgJyMjJScgaW5zdGVh ZCBvZiAnIyMnIHNvIHdlIGNhbiBkaXN0aW5ndWlzaCAjIyUjIyUjIyUgZnJvbQogICMgIyMjIyMj IyBhbmQgZG8gbm90IHJlbW92ZSB0aGUgbGF0dGVyLikKICBzL15bIFx0XSooPzojIyUpKy4qXG4v L2dtOwoKICByZXR1cm4gJF87Cn0KCgojIEBQQVJBR1JBUEhTCiMgbWFrZV9wYXJhZ3JhcGhzICgk TUFLRUZJTEUsIFslVFJBTlNGT1JNXSkKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQojIExvYWQgYSAkTUFLRUZJTEUsIGFwcGx5IHRoZSAlVFJBTlNGT1JNLCBhbmQg cmV0dXJuIGl0IGFzIGEgbGlzdCBvZgojIHBhcmFncmFwaHMuCnN1YiBtYWtlX3BhcmFncmFwaHMK ewogIG15ICgkZmlsZSwgJXRyYW5zZm9ybSkgPSBAXzsKICAkdHJhbnNmb3Jte0ZJUlNUfSA9ICEk dHJhbnNmb3JtZWRfZmlsZXN7JGZpbGV9OwogICR0cmFuc2Zvcm1lZF9maWxlc3skZmlsZX0gPSAx OwoKICBteSBAbGluZXMgPSBzcGxpdCAvKD88IVxcKVxuLywgcHJlcHJvY2Vzc19maWxlICgkZmls ZSwgJXRyYW5zZm9ybSk7CiAgbXkgQHJlczsKCiAgd2hpbGUgKGRlZmluZWQgKCRfID0gc2hpZnQg QGxpbmVzKSkKICAgIHsKICAgICAgbXkgJHBhcmFncmFwaCA9ICRfOwogICAgICAjIElmIHdlIGFy ZSBhIHJ1bGUsIGVhdCBhcyBsb25nIGFzIHdlIHN0YXJ0IHdpdGggYSB0YWIuCiAgICAgIGlmICgv JFJVTEVfUEFUVEVSTi9zbW8pCgl7CgkgIHdoaWxlIChkZWZpbmVkICgkXyA9IHNoaWZ0IEBsaW5l cykgJiYgJF8gPX4gL15cdC8pCgkgICAgewoJICAgICAgJHBhcmFncmFwaCAuPSAiXG4kXyI7Cgkg ICAgfQoJICB1bnNoaWZ0IChAbGluZXMsICRfKTsKCX0KCiAgICAgICMgSWYgd2UgYXJlIGEgY29t bWVudHMsIGVhdCBhcyBtdWNoIGNvbW1lbnRzIGFzIHlvdSBjYW4uCiAgICAgIGVsc2lmICgvJENP TU1FTlRfUEFUVEVSTi9zbW8pCgl7CgkgIHdoaWxlIChkZWZpbmVkICgkXyA9IHNoaWZ0IEBsaW5l cykKCQkgJiYgJF8gPX4gLyRDT01NRU5UX1BBVFRFUk4vc21vKQoJICAgIHsKCSAgICAgICRwYXJh Z3JhcGggLj0gIlxuJF8iOwoJICAgIH0KCSAgdW5zaGlmdCAoQGxpbmVzLCAkXyk7Cgl9CgogICAg ICBwdXNoIEByZXMsICRwYXJhZ3JhcGg7CiAgICB9CgogIHJldHVybiBAcmVzOwp9CgoKCiMgKCRD T01NRU5ULCAkVkFSSUFCTEVTLCAkUlVMRVMpCiMgZmlsZV9jb250ZW50c19pbnRlcm5hbCAoJElT X0FNLCAkRklMRSwgJFdIRVJFLCBbJVRSQU5TRk9STV0pCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUmV0dXJuIGNvbnRlbnRz IG9mIGEgZmlsZSBmcm9tICRsaWJkaXIvYW0sIGF1dG9tYXRpY2FsbHkgc2tpcHBpbmcKIyBtYWNy b3Mgb3IgcnVsZXMgd2hpY2ggYXJlIGFscmVhZHkga25vd24uICRJU19BTSBpZmYgdGhlIGNhbGxl ciBpcwojIHJlYWRpbmcgYW4gQXV0b21ha2UgZmlsZSAoYXMgb3Bwb3NlZCB0byB0aGUgdXNlcidz IE1ha2VmaWxlLmFtKS4Kc3ViIGZpbGVfY29udGVudHNfaW50ZXJuYWwKewogICAgbXkgKCRpc19h bSwgJGZpbGUsICR3aGVyZSwgJXRyYW5zZm9ybSkgPSBAXzsKCiAgICAkd2hlcmUtPnNldCAoJGZp bGUpOwoKICAgIG15ICRyZXN1bHRfdmFycyA9ICcnOwogICAgbXkgJHJlc3VsdF9ydWxlcyA9ICcn OwogICAgbXkgJGNvbW1lbnQgPSAnJzsKICAgIG15ICRzcGFjaW5nID0gJyc7CgogICAgIyBUaGUg Zm9sbG93aW5nIGZsYWdzIGFyZSB1c2VkIHRvIHRyYWNrIHJ1bGVzIHNwYW5uaW5nIGFjcm9zcwog ICAgIyBtdWx0aXBsZSBwYXJhZ3JhcGhzLgogICAgbXkgJGlzX3J1bGUgPSAwOwkJIyAxIGlmIHdl IGFyZSBwcm9jZXNzaW5nIGEgcnVsZS4KICAgIG15ICRkaXNjYXJkX3J1bGUgPSAwOwkjIDEgaWYg dGhlIGN1cnJlbnQgcnVsZSBzaG91bGQgbm90IGJlIG91dHB1dC4KCiAgICAjIFdlIHNhdmUgdGhl IGNvbmRpdGlvbmFsIHN0YWNrIG9uIGVudHJ5LCBhbmQgdGhlbiBjaGVjayB0byBtYWtlCiAgICAj IHN1cmUgaXQgaXMgdGhlIHNhbWUgb24gZXhpdC4gIFRoaXMgbGV0cyB1cyBjb25kaXRpb25hbGx5 IGluY2x1ZGUKICAgICMgb3RoZXIgZmlsZXMuCiAgICBteSBAc2F2ZWRfY29uZF9zdGFjayA9IEBj b25kX3N0YWNrOwogICAgbXkgJGNvbmQgPSBuZXcgQXV0b21ha2U6OkNvbmRpdGlvbiAoQGNvbmRf c3RhY2spOwoKICAgIGZvcmVhY2ggKG1ha2VfcGFyYWdyYXBocyAoJGZpbGUsICV0cmFuc2Zvcm0p KQogICAgewoJIyBGSVhNRTogbm8gbGluZSBudW1iZXIgYXZhaWxhYmxlLgoJJHdoZXJlLT5zZXQg KCRmaWxlKTsKCgkjIFNhbml0eSBjaGVja3MuCgllcnJvciAkd2hlcmUsICJibGFuayBsaW5lIGZv bGxvd2luZyB0cmFpbGluZyBiYWNrc2xhc2g6XG4kXyIKCSAgaWYgL1xcJC87CgllcnJvciAkd2hl cmUsICJjb21tZW50IGZvbGxvd2luZyB0cmFpbGluZyBiYWNrc2xhc2g6XG4kXyIKCSAgaWYgL1xc Iy87CgoJaWYgKC9eJC8pCgl7CgkgICAgJGlzX3J1bGUgPSAwOwoJICAgICMgU3RpY2sgZW1wdHkg bGluZSBiZWZvcmUgdGhlIGluY29taW5nIG1hY3JvIG9yIHJ1bGUuCgkgICAgJHNwYWNpbmcgPSAi XG4iOwoJfQoJZWxzaWYgKC8kQ09NTUVOVF9QQVRURVJOL21zbykKCXsKCSAgICAkaXNfcnVsZSA9 IDA7CgkgICAgIyBTdGljayBjb21tZW50cyBiZWZvcmUgdGhlIGluY29taW5nIG1hY3JvIG9yIHJ1 bGUuCgkgICAgJGNvbW1lbnQgPSAiJF9cbiI7Cgl9CgoJIyBIYW5kbGUgaW5jbHVzaW9uIG9mIG90 aGVyIGZpbGVzLgoJZWxzaWYgKC8kSU5DTFVERV9QQVRURVJOL28pCgl7CgkgICAgaWYgKCRjb25k ICE9IEZBTFNFKQoJICAgICAgewoJCW15ICRmaWxlID0gKCRpc19hbSA/ICIkbGliZGlyL2FtLyIg OiAnJykgLiAkMTsKCQkkd2hlcmUtPnB1c2hfY29udGV4dCAoIickZmlsZScgaW5jbHVkZWQgZnJv bSBoZXJlIik7CgkJIyBOLWFyeSAnLj0nIGZhaWxzLgoJCW15ICgkY29tLCAkdmFycywgJHJ1bGVz KQoJCSAgPSBmaWxlX2NvbnRlbnRzX2ludGVybmFsICgkaXNfYW0sICRmaWxlLCAkd2hlcmUsICV0 cmFuc2Zvcm0pOwoJCSR3aGVyZS0+cG9wX2NvbnRleHQ7CgkJJGNvbW1lbnQgLj0gJGNvbTsKCQkk cmVzdWx0X3ZhcnMgLj0gJHZhcnM7CgkJJHJlc3VsdF9ydWxlcyAuPSAkcnVsZXM7CgkgICAgICB9 Cgl9CgoJIyBIYW5kbGluZyB0aGUgY29uZGl0aW9uYWxzLgoJZWxzaWYgKC8kSUZfUEFUVEVSTi9v KQoJICB7CgkgICAgJGNvbmQgPSBjb25kX3N0YWNrX2lmICgkMSwgJDIsICRmaWxlKTsKCSAgfQoJ ZWxzaWYgKC8kRUxTRV9QQVRURVJOL28pCgkgIHsKCSAgICAkY29uZCA9IGNvbmRfc3RhY2tfZWxz ZSAoJDEsICQyLCAkZmlsZSk7CgkgIH0KCWVsc2lmICgvJEVORElGX1BBVFRFUk4vbykKCSAgewoJ ICAgICRjb25kID0gY29uZF9zdGFja19lbmRpZiAoJDEsICQyLCAkZmlsZSk7CgkgIH0KCgkjIEhh bmRsaW5nIHJ1bGVzLgoJZWxzaWYgKC8kUlVMRV9QQVRURVJOL21zbykKCXsKCSAgJGlzX3J1bGUg PSAxOwoJICAkZGlzY2FyZF9ydWxlID0gMDsKCSAgIyBTZXBhcmF0ZSByZWxhdGlvbnNoaXAgZnJv bSBvcHRpb25hbCBhY3Rpb25zOiB0aGUgZmlyc3QKCSAgIyBgbmV3LWxpbmUgdGFiIiBub3QgcHJl Y2VkZWQgYnkgYmFja3NsYXNoIChjb250aW51YXRpb24KCSAgIyBsaW5lKS4KCSAgbXkgJHBhcmFn cmFwaCA9ICRfOwoJICAvXiguKj8pKD86KD88IVxcKVxuKFx0LiopKT8kL3M7CgkgIG15ICgkcmVs YXRpb25zaGlwLCAkYWN0aW9ucykgPSAoJDEsICQyIHx8ICcnKTsKCgkgICMgU2VwYXJhdGUgdGFy Z2V0cyBmcm9tIGRlcGVuZGVuY2llczogdGhlIGZpcnN0IGNvbG9uLgoJICAkcmVsYXRpb25zaGlw ID1+IC9eKFteOl0rXFMrKSAqOiAqKC4qKSQvc29tOwoJICBteSAoJHRhcmdldHMsICRkZXBlbmRl bmNpZXMpID0gKCQxLCAkMik7CgkgICMgUmVtb3ZlIHRoZSBlc2NhcGVkIG5ldyBsaW5lcy4KCSAg IyBJIGRvbid0IGtub3cgd2h5LCBidXQgSSBoYXZlIHRvIHVzZSBhIHRtcCAkZmxhdF9kZXBzLgoJ ICBteSAkZmxhdF9kZXBzID0gZmxhdHRlbiAoJGRlcGVuZGVuY2llcyk7CgkgIG15IEBkZXBzID0g c3BsaXQgKCcgJywgJGZsYXRfZGVwcyk7CgoJICBmb3JlYWNoIChzcGxpdCAoJyAnLCAkdGFyZ2V0 cykpCgkgICAgewoJICAgICAgIyBGSVhNRTogMS4gV2UgYXJlIG5vdCByb2J1c3QgdG8gcGVvcGxl IGRlZmluaW5nIHNldmVyYWwgdGFyZ2V0cwoJICAgICAgIyBhdCBvbmNlLCBvbmx5IHNvbWUgb2Yg dGhlbSBiZWluZyBpbiAlZGVwZW5kZW5jaWVzLiAgVGhlCgkgICAgICAjIGFjdGlvbnMgZnJvbSB0 aGUgdGFyZ2V0cyBpbiAlZGVwZW5kZW5jaWVzIGFyZSB1c3VhbGx5IGdlbmVyYXRlZAoJICAgICAg IyBmcm9tIHRoZSBjb250ZW50IG9mICVhY3Rpb25zLCBidXQgaWYgc29tZSB0YXJnZXRzIGluICR0 YXJnZXRzCgkgICAgICAjIGFyZSBub3QgaW4gJWRlcGVuZGVuY2llcyB0aGUgRUxTRSBicmFuY2gg d2lsbCBvdXRwdXQKCSAgICAgICMgYSBydWxlIGZvciBhbGwgJHRhcmdldHMgKGkuZS4gdGhlIHRh cmdldHMgd2hpY2ggYXJlIGJvdGgKCSAgICAgICMgaW4gJWRlcGVuZGVuY2llcyBhbmQgJHRhcmdl dHMgd2lsbCBoYXZlIHR3byBydWxlcykuCgoJICAgICAgIyBGSVhNRTogMi4gVGhlIGxvZ2ljIGhl cmUgaXMgbm90IGFibGUgdG8gb3V0cHV0IGEKCSAgICAgICMgbXVsdGktcGFyYWdyYXBoIHJ1bGUg c2V2ZXJhbCB0aW1lIChlLmcuIGZvciBlYWNoIGNvbmRpdGlvbgoJICAgICAgIyBpdCBpcyBkZWZp bmVkIGZvcikgYmVjYXVzZSBpdCBvbmx5IGtub3dzIHRoZSBmaXJzdCBwYXJhZ3JhcGguCgoJICAg ICAgIyBGSVhNRTogMy4gV2UgYXJlIG5vdCByb2J1c3QgdG8gcGVvcGxlIGRlZmluaW5nIGEgc3Vi c2V0CgkgICAgICAjIG9mIGEgcHJldmlvdXNseSBkZWZpbmVkICJtdWx0aXBsZS10YXJnZXQiIHJ1 bGUuICBFLmcuCgkgICAgICAjICdmb286JyBhZnRlciAnZm9vIGJhcjonLgoKCSAgICAgICMgT3V0 cHV0IG9ubHkgaWYgbm90IGluIEZBTFNFLgoJICAgICAgaWYgKGRlZmluZWQgJGRlcGVuZGVuY2ll c3skX30gJiYgJGNvbmQgIT0gRkFMU0UpCgkJewoJCSAgZGVwZW5kICgkXywgQGRlcHMpOwoJCSAg cmVnaXN0ZXJfYWN0aW9uICgkXywgJGFjdGlvbnMpOwoJCX0KCSAgICAgIGVsc2UKCQl7CgkJICAj IEZyZWUtbGFuY2UgZGVwZW5kZW5jeS4gIE91dHB1dCB0aGUgcnVsZSBmb3IgYWxsIHRoZQoJCSAg IyB0YXJnZXRzIGluc3RlYWQgb2Ygb25lIGJ5IG9uZS4KCQkgIG15IEB1bmRlZmluZWRfY29uZHMg PQoJCSAgICBBdXRvbWFrZTo6UnVsZTo6ZGVmaW5lICgkdGFyZ2V0cywgJGZpbGUsCgkJCQkJICAg ICRpc19hbSA/IFJVTEVfQVVUT01BS0UgOiBSVUxFX1VTRVIsCgkJCQkJICAgICRjb25kLCAkd2hl cmUpOwoJCSAgZm9yIG15ICR1bmRlZmluZWRfY29uZCAoQHVuZGVmaW5lZF9jb25kcykKCQkgICAg ewoJCSAgICAgIG15ICRjb25kcGFyYWdyYXBoID0gJHBhcmFncmFwaDsKCQkgICAgICAkY29uZHBh cmFncmFwaCA9fiBzL14vJHVuZGVmaW5lZF9jb25kLT5zdWJzdF9zdHJpbmcvZ21lOwoJCSAgICAg ICRyZXN1bHRfcnVsZXMgLj0gIiRzcGFjaW5nJGNvbW1lbnQkY29uZHBhcmFncmFwaFxuIjsKCQkg ICAgfQoJCSAgaWYgKHNjYWxhciBAdW5kZWZpbmVkX2NvbmRzID09IDApCgkJICAgIHsKCQkgICAg ICAjIFJlbWVtYmVyIHRvIGRpc2NhcmQgbmV4dCBwYXJhZ3JhcGhzCgkJICAgICAgIyBpZiB0aGV5 IGJlbG9uZyB0byB0aGlzIHJ1bGUuCgkJICAgICAgIyAoYnV0IHNlZSBhbHNvIEZJWE1FOiAjMiBh Ym92ZS4pCgkJICAgICAgJGRpc2NhcmRfcnVsZSA9IDE7CgkJICAgIH0KCQkgICRjb21tZW50ID0g JHNwYWNpbmcgPSAnJzsKCQkgIGxhc3Q7CgkJfQoJICAgIH0KCX0KCgllbHNpZiAoLyRBU1NJR05N RU5UX1BBVFRFUk4vbXNvKQoJewoJICAgIG15ICgkdmFyLCAkdHlwZSwgJHZhbCkgPSAoJDEsICQy LCAkMyk7CgkgICAgZXJyb3IgJHdoZXJlLCAidmFyaWFibGUgJyR2YXInIHdpdGggdHJhaWxpbmcg YmFja3NsYXNoIgoJICAgICAgaWYgL1xcJC87CgoJICAgICRpc19ydWxlID0gMDsKCgkgICAgQXV0 b21ha2U6OlZhcmlhYmxlOjpkZWZpbmUgKCR2YXIsCgkJCQkJJGlzX2FtID8gVkFSX0FVVE9NQUtF IDogVkFSX01BS0VGSUxFLAoJCQkJCSR0eXBlLCAkY29uZCwgJHZhbCwgJGNvbW1lbnQsICR3aGVy ZSwKCQkJCQlWQVJfQVNJUykKCSAgICAgIGlmICRjb25kICE9IEZBTFNFOwoKCSAgICAkY29tbWVu dCA9ICRzcGFjaW5nID0gJyc7Cgl9CgllbHNlCgl7CgkgICAgIyBUaGlzIGlzbid0IGFuIGVycm9y OyBpdCBpcyBwcm9iYWJseSBzb21lIHRva2VucyB3aGljaAoJICAgICMgY29uZmlndXJlIGlzIHN1 cHBvc2VkIHRvIHJlcGxhY2UsIHN1Y2ggYXMgJ0BTRVQtTUFLRUAnLAoJICAgICMgb3Igc29tZSBw YXJ0IG9mIGEgcnVsZSBjdXQgYnkgYW4gaWYvZW5kaWYuCgkgICAgaWYgKCEgJGNvbmQtPmZhbHNl ICYmICEgKCRpc19ydWxlICYmICRkaXNjYXJkX3J1bGUpKQoJICAgICAgewoJCXMvXi8kY29uZC0+ c3Vic3Rfc3RyaW5nL2dtZTsKCQkkcmVzdWx0X3J1bGVzIC49ICIkc3BhY2luZyRjb21tZW50JF9c biI7CgkgICAgICB9CgkgICAgJGNvbW1lbnQgPSAkc3BhY2luZyA9ICcnOwoJfQogICAgfQoKICAg IGVycm9yICgkd2hlcmUsIEBjb25kX3N0YWNrID8KCSAgICJ1bnRlcm1pbmF0ZWQgY29uZGl0aW9u YWxzOiBAY29uZF9zdGFjayIgOgoJICAgInRvbyBtYW55IGNvbmRpdGlvbmFscyBjbG9zZWQgaW4g aW5jbHVkZSBmaWxlIikKICAgICAgaWYgIkBzYXZlZF9jb25kX3N0YWNrIiBuZSAiQGNvbmRfc3Rh Y2siOwoKICAgIHJldHVybiAoJGNvbW1lbnQsICRyZXN1bHRfdmFycywgJHJlc3VsdF9ydWxlcyk7 Cn0KCgojICRDT05URU5UUwojIGZpbGVfY29udGVudHMgKCRCQVNFTkFNRSwgJFdIRVJFLCBbJVRS QU5TRk9STV0pCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KIyBSZXR1cm4gY29udGVudHMgb2YgYSBmaWxlIGZyb20gJGxpYmRpci9hbSwgYXV0b21hdGlj YWxseSBza2lwcGluZwojIG1hY3JvcyBvciBydWxlcyB3aGljaCBhcmUgYWxyZWFkeSBrbm93bi4K c3ViIGZpbGVfY29udGVudHMKewogICAgbXkgKCRiYXNlbmFtZSwgJHdoZXJlLCAldHJhbnNmb3Jt KSA9IEBfOwogICAgbXkgKCRjb21tZW50cywgJHZhcmlhYmxlcywgJHJ1bGVzKSA9CiAgICAgIGZp bGVfY29udGVudHNfaW50ZXJuYWwgKDEsICIkbGliZGlyL2FtLyRiYXNlbmFtZS5hbSIsICR3aGVy ZSwKCQkJICAgICAgJXRyYW5zZm9ybSk7CiAgICByZXR1cm4gIiRjb21tZW50cyR2YXJpYWJsZXMk cnVsZXMiOwp9CgoKIyBAUFJFRklYCiMgYW1fcHJpbWFyeV9wcmVmaXhlcyAoJFBSSU1BUlksICRD QU5fRElTVCwgQFBSRUZJWEVTKQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KIyBGaW5kIGFsbCB2YXJpYWJsZSBwcmVmaXhlcyB0aGF0IGFyZSB1 c2VkIGZvciBpbnN0YWxsIGRpcmVjdG9yaWVzLiAgQQojIHByZWZpeCAnemFyJyBxdWFsaWZpZXMg aWZmOgojCiMgKiAnemFyZGlyJyBpcyBhIHZhcmlhYmxlLgojICogJ3phcl9QUklNQVJZJyBpcyBh IHZhcmlhYmxlLgojCiMgQXMgYSBzaWRlIGVmZmVjdCwgaXQgbG9va3MgZm9yIG1pc3NwZWxsaW5n cy4gIEl0IGlzIGFuIGVycm9yIHRvIGhhdmUKIyBhIHZhcmlhYmxlIGVuZGluZyBpbiBhICJyZXNl cnZlZCIgc3VmZml4IHdob3NlIHByZWZpeCBpcyB1bmtub3duLCBlLmcuCiMgImJuaV9QUk9HUkFN UyIuICBIb3dldmVyLCB1bnVzdWFsIHByZWZpeGVzIGFyZSBhbGxvd2VkIGlmIGEgdmFyaWFibGUK IyBvZiB0aGUgc2FtZSBuYW1lICh3aXRoICJkaXIiIGFwcGVuZGVkKSBleGlzdHMuICBGb3IgaW5z dGFuY2UsIGlmIHRoZQojIHZhcmlhYmxlICJ6YXJkaXIiIGlzIGRlZmluZWQsIHRoZW4gInphcl9Q Uk9HUkFNUyIgYmVjb21lcyB2YWxpZC4KIyBUaGlzIGlzIHRvIHByb3ZpZGUgYSBsaXR0bGUgZXh0 cmEgZmxleGliaWxpdHkgaW4gdGhvc2UgY2FzZXMgd2hpY2gKIyBuZWVkIGl0LgpzdWIgYW1fcHJp bWFyeV9wcmVmaXhlcwp7CiAgbXkgKCRwcmltYXJ5LCAkY2FuX2Rpc3QsIEBwcmVmaXhlcykgPSBA XzsKCiAgbG9jYWwgJF87CiAgbXkgJXZhbGlkID0gbWFwIHsgJF8gPT4gMCB9IEBwcmVmaXhlczsK ICAkdmFsaWR7J0VYVFJBJ30gPSAwOwogIGZvcmVhY2ggbXkgJHZhciAodmFyaWFibGVzICRwcmlt YXJ5KQogICAgewogICAgICAjIEF1dG9tYWtlIGlzIGFsbG93ZWQgdG8gZGVmaW5lIHZhcmlhYmxl cyB0aGF0IGxvb2sgbGlrZSBwcmltYXJpZXMKICAgICAgIyBidXQgd2hpY2ggYXJlbid0LiAgRS5n LiBJTlNUQUxMX3NoX0RBVEEuCiAgICAgICMgQXV0b2NvbmYgY2FuIGFsc28gZGVmaW5lIHZhcmlh YmxlcyBsaWtlIElOU1RBTExfREFUQSwgc28KICAgICAgIyBpZ25vcmUgYWxsIGNvbmZpZ3VyZSB2 YXJpYWJsZXMgKGF0IGxlYXN0IHRob3NlIHdoaWNoIGFyZSBub3QKICAgICAgIyByZWRlZmluZWQg aW4gTWFrZWZpbGUuYW0pLgogICAgICAjIEZJWE1FOiBXZSBzaG91bGQgbWFrZSBzdXJlIHRoYXQg dGhlc2UgdmFyaWFibGVzIGFyZSBub3QKICAgICAgIyBjb25kaXRpb25hbGx5IGRlZmluZWQgKG9y IGVsc2UgYWRqdXN0IHRoZSBjb25kaXRpb24gYmVsb3cpLgogICAgICBteSAkZGVmID0gJHZhci0+ ZGVmIChUUlVFKTsKICAgICAgbmV4dCBpZiAkZGVmICYmICRkZWYtPm93bmVyICE9IFZBUl9NQUtF RklMRTsKCiAgICAgIG15ICR2YXJuYW1lID0gJHZhci0+bmFtZTsKCiAgICAgIGlmICgkdmFybmFt ZSA9fiAvXihub2Jhc2VfKT8oZGlzdF98bm9kaXN0Xyk/KC4qKV9bWzphbG51bTpdXSskLykKCXsK CSAgbXkgKCRiYXNlLCAkZGlzdCwgJFgpID0gKCQxIHx8ICcnLCAkMiB8fCAnJywgJDMgfHwgJycp OwoJICBpZiAoJGRpc3QgbmUgJycgJiYgISAkY2FuX2Rpc3QpCgkgICAgewoJICAgICAgZXJyX3Zh ciAoJHZhciwKCQkgICAgICAgImludmFsaWQgdmFyaWFibGUgJyR2YXJuYW1lJzogJ2Rpc3QnIGlz IGZvcmJpZGRlbiIpOwoJICAgIH0KCSAgIyBTdGFuZGFyZCBkaXJlY3RvcmllcyBtdXN0IGJlIGV4 cGxpY2l0bHkgYWxsb3dlZC4KCSAgZWxzaWYgKCEgZGVmaW5lZCAkdmFsaWR7JFh9ICYmIGV4aXN0 cyAkc3RhbmRhcmRfcHJlZml4eyRYfSkKCSAgICB7CgkgICAgICBlcnJfdmFyICgkdmFyLAoJCSAg ICAgICAiJyR7WH1kaXInIGlzIG5vdCBhIGxlZ2l0aW1hdGUgZGlyZWN0b3J5ICIgLgoJCSAgICAg ICAiZm9yICckcHJpbWFyeSciKTsKCSAgICB9CgkgICMgQSBub3QgZXhwbGljaXRseSB2YWxpZCBk aXJlY3RvcnkgaXMgYWxsb3dlZCBpZiBYZGlyIGlzIGRlZmluZWQuCgkgIGVsc2lmICghIGRlZmlu ZWQgJHZhbGlkeyRYfSAmJgoJCSAkdmFyLT5yZXF1aXJlc192YXJpYWJsZXMgKCInJHZhcm5hbWUn IGlzIHVzZWQiLCAiJHtYfWRpciIpKQoJICAgIHsKCSAgICAgICMgTm90aGluZyB0byBkby4gIEFu eSBlcnJvciBtZXNzYWdlIGhhcyBiZWVuIG91dHB1dAoJICAgICAgIyBieSAkdmFyLT5yZXF1aXJl c192YXJpYWJsZXMuCgkgICAgfQoJICBlbHNlCgkgICAgewoJICAgICAgIyBFbnN1cmUgYWxsIGV4 dGVuZGVkIHByZWZpeGVzIGFyZSBhY3R1YWxseSB1c2VkLgoJICAgICAgJHZhbGlkeyIkYmFzZSRk aXN0JFgifSA9IDE7CgkgICAgfQoJfQogICAgICBlbHNlCgl7CgkgIHByb2dfZXJyb3IgInVuZXhw ZWN0ZWQgdmFyaWFibGUgbmFtZTogJHZhcm5hbWUiOwoJfQogICAgfQoKICAjIFJldHVybiBvbmx5 IHRob3NlIHdoaWNoIGFyZSBhY3R1YWxseSBkZWZpbmVkLgogIHJldHVybiBzb3J0IGdyZXAgeyB2 YXIgKCRfIC4gJ18nIC4gJHByaW1hcnkpIH0ga2V5cyAldmFsaWQ7Cn0KCgojIGFtX2luc3RhbGxf dmFyICgtT1BUSU9OLi4uLCBmaWxlLCBIT1csIHdoZXJlLi4uKQojIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgSGFuZGxlICd3aGVyZV9IT1cnIHZh cmlhYmxlIG1hZ2ljLiAgRG9lcyBhbGwgbG9va3VwcywgZ2VuZXJhdGVzCiMgaW5zdGFsbCBjb2Rl LCBhbmQgcG9zc2libHkgZ2VuZXJhdGVzIGNvZGUgdG8gZGVmaW5lIHRoZSBwcmltYXJ5CiMgdmFy aWFibGUuICBUaGUgZmlyc3QgYXJndW1lbnQgaXMgdGhlIG5hbWUgb2YgdGhlIC5hbSBmaWxlIHRv IG11bmdlLAojIHRoZSBzZWNvbmQgYXJndW1lbnQgaXMgdGhlIHByaW1hcnkgdmFyaWFibGUgKGUu Zy4gSEVBREVSUyksIGFuZCBhbGwKIyBzdWJzZXF1ZW50IGFyZ3VtZW50cyBhcmUgcG9zc2libGUg aW5zdGFsbGF0aW9uIGxvY2F0aW9ucy4KIwojIFJldHVybnMgbGlzdCBvZiBbJGxvY2F0aW9uLCAk dmFsdWVdIHBhaXJzLCB3aGVyZQojICR2YWx1ZSdzIGFyZSB0aGUgdmFsdWVzIGluIGFsbCB3aGVy ZV9IT1cgdmFyaWFibGUsIGFuZCAkbG9jYXRpb24KIyB0aGVyZSBhc3NvY2lhdGVkIGxvY2F0aW9u ICh0aGUgcGxhY2UgaGVyZSB0aGVpciBwYXJlbnQgdmFyaWFibGVzIHdlcmUKIyBkZWZpbmVkKS4K IwojIEZJWE1FOiB0aGlzIHNob3VsZCBiZSByZXdyaXR0ZW4gdG8gYmUgY2xlYW5lci4gIEl0IHNo b3VsZCBiZSBicm9rZW4KIyB1cCBpbnRvIG11bHRpcGxlIGZ1bmN0aW9ucy4KIwpzdWIgYW1faW5z dGFsbF92YXIKewogIG15IChAYXJncykgPSBAXzsKCiAgbXkgJGRvX3JlcXVpcmUgPSAxOwogIG15 ICRjYW5fZGlzdCA9IDA7CiAgbXkgJGRlZmF1bHRfZGlzdCA9IDA7CiAgd2hpbGUgKEBhcmdzKQog ICAgewogICAgICBpZiAoJGFyZ3NbMF0gZXEgJy1ub2V4dHJhJykKCXsKCSAgJGRvX3JlcXVpcmUg PSAwOwoJfQogICAgICBlbHNpZiAoJGFyZ3NbMF0gZXEgJy1jYW5kaXN0JykKCXsKCSAgJGNhbl9k aXN0ID0gMTsKCX0KICAgICAgZWxzaWYgKCRhcmdzWzBdIGVxICctZGVmYXVsdGRpc3QnKQoJewoJ ICAkZGVmYXVsdF9kaXN0ID0gMTsKCSAgJGNhbl9kaXN0ID0gMTsKCX0KICAgICAgZWxzaWYgKCRh cmdzWzBdICF+IC9eLS8pCgl7CgkgIGxhc3Q7Cgl9CiAgICAgIHNoaWZ0IChAYXJncyk7CiAgICB9 CgogIG15ICgkZmlsZSwgJHByaW1hcnksIEBwcmVmaXgpID0gQGFyZ3M7CgogICMgTm93IHRoYXQg Y29uZmlndXJlIHN1YnN0aXR1dGlvbnMgYXJlIGFsbG93ZWQgaW4gd2hlcmVfSE9XCiAgIyB2YXJp YWJsZXMsIGl0IGlzIGFuIGVycm9yIHRvIGFjdHVhbGx5IGRlZmluZSB0aGUgcHJpbWFyeS4gIFdl CiAgIyBhbGxvdyAnSkFWQScsIGFzIGl0IGlzIGN1c3RvbWFyaWx5IHVzZWQgdG8gbWVhbiB0aGUg SmF2YQogICMgaW50ZXJwcmV0ZXIuICBUaGlzIGlzIGJ1dCBvbmUgb2Ygc2V2ZXJhbCBKYXZhIGhh Y2tzLiAgU2ltaWxhcmx5LAogICMgJ1BZVEhPTicgaXMgY3VzdG9tYXJpbHkgdXNlZCB0byBtZWFu IHRoZSBQeXRob24gaW50ZXJwcmV0ZXIuCiAgcmVqZWN0X3ZhciAkcHJpbWFyeSwgIickcHJpbWFy eScgaXMgYW4gYW5hY2hyb25pc20iCiAgICB1bmxlc3MgJHByaW1hcnkgZXEgJ0pBVkEnIHx8ICRw cmltYXJ5IGVxICdQWVRIT04nOwoKICAjIEdldCB0aGUgcHJlZml4ZXMgd2hpY2ggYXJlIHZhbGlk IGFuZCBhY3R1YWxseSB1c2VkLgogIEBwcmVmaXggPSBhbV9wcmltYXJ5X3ByZWZpeGVzICgkcHJp bWFyeSwgJGNhbl9kaXN0LCBAcHJlZml4KTsKCiAgIyBJZiBhIHByaW1hcnkgaW5jbHVkZXMgYSBj b25maWd1cmUgc3Vic3RpdHV0aW9uLCB0aGVuIHRoZSBFWFRSQV8KICAjIGZvcm0gaXMgcmVxdWly ZWQuICBPdGhlcndpc2Ugd2UgY2FuJ3QgcHJvcGVybHkgZG8gb3VyIGpvYi4KICBteSAkcmVxdWly ZV9leHRyYTsKCiAgbXkgQHVzZWQgPSAoKTsKICBteSBAcmVzdWx0ID0gKCk7CgogIGZvcmVhY2gg bXkgJFggKEBwcmVmaXgpCiAgICB7CiAgICAgIG15ICRub2Rpcl9uYW1lID0gJFg7CiAgICAgIG15 ICRvbmVfbmFtZSA9ICRYIC4gJ18nIC4gJHByaW1hcnk7CiAgICAgIG15ICRvbmVfdmFyID0gdmFy ICRvbmVfbmFtZTsKCiAgICAgIG15ICRzdHJpcF9zdWJkaXIgPSAxOwogICAgICAjIElmIHN1YmRp ciBwcmVmaXggc2hvdWxkIGJlIHByZXNlcnZlZCwgZG8gc28uCiAgICAgIGlmICgkbm9kaXJfbmFt ZSA9fiAvXm5vYmFzZV8vKQoJewoJICAkc3RyaXBfc3ViZGlyID0gMDsKCSAgJG5vZGlyX25hbWUg PX4gcy9ebm9iYXNlXy8vOwoJfQoKICAgICAgIyBJZiBmaWxlcyBzaG91bGQgYmUgZGlzdHJpYnV0 ZWQsIGRvIHNvLgogICAgICBteSAkZGlzdF9wID0gMDsKICAgICAgaWYgKCRjYW5fZGlzdCkKCXsK CSAgJGRpc3RfcCA9ICgoJGRlZmF1bHRfZGlzdCAmJiAkbm9kaXJfbmFtZSAhfiAvXm5vZGlzdF8v KQoJCSAgICAgfHwgKCEgJGRlZmF1bHRfZGlzdCAmJiAkbm9kaXJfbmFtZSA9fiAvXmRpc3RfLykp OwoJICAkbm9kaXJfbmFtZSA9fiBzL14oZGlzdHxub2Rpc3QpXy8vOwoJfQoKCiAgICAgICMgVXNl IHRoZSBsb2NhdGlvbiBvZiB0aGUgY3VycmVudGx5IHByb2Nlc3NlZCB2YXJpYWJsZS4KICAgICAg IyBXZSBhcmUgbm90IHByb2Nlc3NpbmcgYSBwYXJ0aWN1bGFyIGNvbmRpdGlvbiwgc28gcGljayB0 aGUgZmlyc3QKICAgICAgIyBhdmFpbGFibGUuCiAgICAgIG15ICR0bXBjb25kID0gJG9uZV92YXIt PmNvbmRpdGlvbnMtPm9uZV9jb25kOwogICAgICBteSAkd2hlcmUgPSAkb25lX3Zhci0+cmRlZiAo JHRtcGNvbmQpLT5sb2NhdGlvbi0+Y2xvbmU7CgogICAgICAjIEFwcGVuZCBhY3R1YWwgY29udGVu dHMgb2Ygd2hlcmVfUFJJTUFSWSB2YXJpYWJsZSB0bwogICAgICAjIEByZXN1bHQsIHNraXBwaW5n IEBzdWJzdGl0dXRpb25zQC4KICAgICAgZm9yZWFjaCBteSAkbG9jdmFscyAoJG9uZV92YXItPnZh bHVlX2FzX2xpc3RfcmVjdXJzaXZlIChsb2NhdGlvbiA9PiAxKSkKCXsKCSAgbXkgKCRsb2MsICR2 YWx1ZSkgPSBAJGxvY3ZhbHM7CgkgICMgU2tpcCBjb25maWd1cmUgc3Vic3RpdHV0aW9ucy4KCSAg aWYgKCR2YWx1ZSA9fiAvXlxALipcQCQvKQoJICAgIHsKCSAgICAgIGlmICgkbm9kaXJfbmFtZSBl cSAnRVhUUkEnKQoJCXsKCQkgIGVycm9yICgkd2hlcmUsCgkJCSAiJyRvbmVfbmFtZScgY29udGFp bnMgY29uZmlndXJlIHN1YnN0aXR1dGlvbiwgIgoJCQkgLiAiYnV0IHNob3VsZG4ndCIpOwoJCX0K CSAgICAgICMgQ2hlY2sgaGVyZSB0byBtYWtlIHN1cmUgdmFyaWFibGVzIGRlZmluZWQgaW4KCSAg ICAgICMgY29uZmlndXJlLmFjIGRvIG5vdCBpbXBseSB0aGF0IEVYVFJBX1BSSU1BUlkKCSAgICAg ICMgbXVzdCBiZSBkZWZpbmVkLgoJICAgICAgZWxzaWYgKCEgZGVmaW5lZCAkY29uZmlndXJlX3Zh cnN7JG9uZV9uYW1lfSkKCQl7CgkJICAkcmVxdWlyZV9leHRyYSA9ICRvbmVfbmFtZQoJCSAgICBp ZiAkZG9fcmVxdWlyZTsKCQl9CgkgICAgfQoJICBlbHNlCgkgICAgewoJICAgICAgIyBTdHJpcCBh bnkgJChFWEVFWFQpIHN1ZmZpeCB0aGUgdXNlciBtaWdodCBoYXZlIGFkZGVkLAogICAgICAgICAg ICAgICMgb3IgdGhpcyB3aWxsIGNvbmZ1c2UgaGFuZGxlX3NvdXJjZV90cmFuc2Zvcm0oKSBhbmQK ICAgICAgICAgICAgICAjIGNoZWNrX2Nhbm9uaWNhbF9zcGVsbGluZygpLgoJICAgICAgIyBXZSds bCBhZGQgJChFWEVFWFQpIGJhY2sgbGF0ZXIgYW55d2F5LgoJICAgICAgIyBEbyBpdCBoZXJlIHJh dGhlciB0aGFuIGluIGhhbmRsZV9wcm9ncmFtcyBzbyB0aGUKICAgICAgICAgICAgICAjIHVuaXF1 aWZ5aW5nIGF0IHRoZSBlbmQgb2YgdGhpcyBmdW5jdGlvbiB3b3Jrcy4KCSAgICAgICR7JGxvY3Zh bHN9WzFdID1+IHMvXCRcKEVYRUVYVFwpJC8vCgkgICAgICAgIGlmICRwcmltYXJ5IGVxICdQUk9H UkFNUyc7CgoJICAgICAgcHVzaCAoQHJlc3VsdCwgJGxvY3ZhbHMpOwoJICAgIH0KCX0KICAgICAg IyBBIGJsYXRhbnQgaGFjazogd2UgcmV3cml0ZSBlYWNoIF9QUk9HUkFNUyBwcmltYXJ5IHRvIGlu Y2x1ZGUKICAgICAgIyBFWEVFWFQuCiAgICAgIGFwcGVuZF9leGVleHQgeyAxIH0gJG9uZV9uYW1l CglpZiAkcHJpbWFyeSBlcSAnUFJPR1JBTVMnOwogICAgICAjICJFWFRSQSIgc2hvdWxkbid0IGJl IHVzZWQgd2hlbiBnZW5lcmF0aW5nIGNsZWFuIHRhcmdldHMsCiAgICAgICMgYWxsLCBvciBpbnN0 YWxsIHRhcmdldHMuICBXZSB1c2VkIHRvIHdhcm4gaWYgRVhUUkFfRk9PIHdhcwogICAgICAjIGRl ZmluZWQgdXNlbGVzc2x5LCBidXQgdGhpcyB3YXMgYW5ub3lpbmcuCiAgICAgIG5leHQKCWlmICRu b2Rpcl9uYW1lIGVxICdFWFRSQSc7CgogICAgICBpZiAoJG5vZGlyX25hbWUgZXEgJ2NoZWNrJykK CXsKCSAgcHVzaCAoQGNoZWNrLCAnJCgnIC4gJG9uZV9uYW1lIC4gJyknKTsKCX0KICAgICAgZWxz ZQoJewoJICBwdXNoIChAdXNlZCwgJyQoJyAuICRvbmVfbmFtZSAuICcpJyk7Cgl9CgogICAgICAj IElzIHRoaXMgdG8gYmUgaW5zdGFsbGVkPwogICAgICBteSAkaW5zdGFsbF9wID0gJG5vZGlyX25h bWUgbmUgJ25vaW5zdCcgJiYgJG5vZGlyX25hbWUgbmUgJ2NoZWNrJzsKCiAgICAgICMgSWYgc28s IHdpdGggaW5zdGFsbC1leGVjPyAob3IgaW5zdGFsbC1kYXRhPykuCiAgICAgIG15ICRleGVjX3Ag PSAoJG5vZGlyX25hbWUgPX4gLyRFWEVDX0RJUl9QQVRURVJOL28pOwoKICAgICAgbXkgJGNoZWNr X29wdGlvbnNfcCA9ICRpbnN0YWxsX3AgJiYgISEgb3B0aW9uICdzdGQtb3B0aW9ucyc7CgogICAg ICAjIFVzZSB0aGUgbG9jYXRpb24gb2YgdGhlIGN1cnJlbnRseSBwcm9jZXNzZWQgdmFyaWFibGUg YXMgY29udGV4dC4KICAgICAgJHdoZXJlLT5wdXNoX2NvbnRleHQgKCJ3aGlsZSBwcm9jZXNzaW5n ICckb25lX25hbWUnIik7CgogICAgICAjIFRoZSB2YXJpYWJsZSBjb250YWluaW5nIGFsbCBmaWxl cyB0byBkaXN0cmlidXRlLgogICAgICBteSAkZGlzdHZhciA9ICJcJCgkb25lX25hbWUpIjsKICAg ICAgJGRpc3R2YXIgPSBzaGFkb3dfdW5jb25kaXRpb25hbGx5ICgkb25lX25hbWUsICR3aGVyZSkK CWlmICgkZGlzdF9wICYmICRvbmVfdmFyLT5oYXNfY29uZGl0aW9uYWxfY29udGVudHMpOwoKICAg ICAgIyBTaW5ndWxhciBmb3JtIG9mICRQUklNQVJZLgogICAgICAobXkgJG9uZV9wcmltYXJ5ID0g JHByaW1hcnkpID1+IHMvUyQvLzsKICAgICAgJG91dHB1dF9ydWxlcyAuPSBmaWxlX2NvbnRlbnRz ICgkZmlsZSwgJHdoZXJlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBS SU1BUlkgICAgID0+ICRwcmltYXJ5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE9ORV9QUklNQVJZID0+ICRvbmVfcHJpbWFyeSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBESVIgICAgICAgICA9PiAkWCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBORElSICAgICAgICA9PiAkbm9kaXJfbmFtZSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBCQVNFICAgICAgICA9PiAkc3RyaXBfc3ViZGlyLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYRUMgICAgICAgID0+ICRleGVjX3As CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5TVEFMTCAgICAgPT4gJGlu c3RhbGxfcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBESVNUICAgICAg ICA9PiAkZGlzdF9wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERJU1RW QVIgICAgID0+ICRkaXN0dmFyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICdDSy1PUFRTJyAgID0+ICRjaGVja19vcHRpb25zX3ApOwogICAgfQoKICAjIFRoZSBKQVZBIHZh cmlhYmxlIGlzIHVzZWQgYXMgdGhlIG5hbWUgb2YgdGhlIEphdmEgaW50ZXJwcmV0ZXIuCiAgIyBU aGUgUFlUSE9OIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIG5hbWUgb2YgdGhlIFB5dGhvbiBpbnRl cnByZXRlci4KICBpZiAoQHVzZWQgJiYgJHByaW1hcnkgbmUgJ0pBVkEnICYmICRwcmltYXJ5IG5l ICdQWVRIT04nKQogICAgewogICAgICAjIERlZmluZSBpdC4KICAgICAgZGVmaW5lX3ByZXR0eV92 YXJpYWJsZSAoJHByaW1hcnksIFRSVUUsIElOVEVSTkFMLCBAdXNlZCk7CiAgICAgICRvdXRwdXRf dmFycyAuPSAiXG4iOwogICAgfQoKICBlcnJfdmFyICgkcmVxdWlyZV9leHRyYSwKCSAgICInJHJl cXVpcmVfZXh0cmEnIGNvbnRhaW5zIGNvbmZpZ3VyZSBzdWJzdGl0dXRpb24sXG4iCgkgICAuICJi dXQgJ0VYVFJBXyRwcmltYXJ5JyBub3QgZGVmaW5lZCIpCiAgICBpZiAoJHJlcXVpcmVfZXh0cmEg JiYgISB2YXIgKCdFWFRSQV8nIC4gJHByaW1hcnkpKTsKCiAgIyBQdXNoIGhlcmUgYmVjYXVzZSBQ UklNQVJZIG1pZ2h0IGJlIGNvbmZpZ3VyZSB0aW1lIGRldGVybWluZWQuCiAgcHVzaCAoQGFsbCwg JyQoJyAuICRwcmltYXJ5IC4gJyknKQogICAgaWYgQHVzZWQgJiYgJHByaW1hcnkgbmUgJ0pBVkEn ICYmICRwcmltYXJ5IG5lICdQWVRIT04nOwoKICAjIE1ha2UgdGhlIHJlc3VsdCB1bmlxdWUuICBU aGlzIGxldHMgdGhlIHVzZXIgdXNlIGNvbmRpdGlvbmFscyBpbgogICMgYSBuYXR1cmFsIHdheSwg YnV0IHN0aWxsIGxldHMgdXMgcHJvZ3JhbSBsYXppbHkgLS0gd2UgZG9uJ3QgaGF2ZQogICMgdG8g d29ycnkgYWJvdXQgaGFuZGxpbmcgYSBwYXJ0aWN1bGFyIG9iamVjdCBtb3JlIHRoYW4gb25jZS4K ICAjIFdlIHdpbGwga2VlcCBvbmx5IG9uZSBsb2NhdGlvbiBwZXIgb2JqZWN0LgogIG15ICVyZXN1 bHQgPSAoKTsKICBmb3IgbXkgJHBhaXIgKEByZXN1bHQpCiAgICB7CiAgICAgIG15ICgkbG9jLCAk dmFsKSA9IEAkcGFpcjsKICAgICAgJHJlc3VsdHskdmFsfSA9ICRsb2M7CiAgICB9CiAgbXkgQGwg PSBzb3J0IGtleXMgJXJlc3VsdDsKICByZXR1cm4gbWFwIHsgWyRyZXN1bHR7JF99LT5jbG9uZSwg JF9dIH0gQGw7Cn0KCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCgojIEVhY2gga2V5IGluIHRoaXMgaGFzaCBpcyB0aGUgbmFt ZSBvZiBhIGRpcmVjdG9yeSBob2xkaW5nIGEKIyBNYWtlZmlsZS5pbi4gIFRoZXNlIHZhcmlhYmxl cyBhcmUgbG9jYWwgdG8gJ2lzX21ha2VfZGlyJy4KbXkgJW1ha2VfZGlycyA9ICgpOwpteSAkbWFr ZV9kaXJzX3NldCA9IDA7CgojIGlzX21ha2VfZGlyICgkRElSRUNUT1JZKQojIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpzdWIgaXNfbWFrZV9kaXIKewogICAgbXkgKCRkaXIpID0gQF87CiAgICBp ZiAoISAkbWFrZV9kaXJzX3NldCkKICAgIHsKCWZvcmVhY2ggbXkgJGl0ZXIgKEBjb25maWd1cmVf aW5wdXRfZmlsZXMpCgl7CgkgICAgJG1ha2VfZGlyc3tkaXJuYW1lICgkaXRlcil9ID0gMTsKCX0K CSMgV2UgYWxzbyB3YW50IHRvIG5vdGljZSBNYWtlZmlsZS5pbidzLgoJZm9yZWFjaCBteSAkaXRl ciAoQG90aGVyX2lucHV0X2ZpbGVzKQoJewoJICAgIGlmICgkaXRlciA9fiAvTWFrZWZpbGVcLmlu JC8pCgkgICAgewoJCSRtYWtlX2RpcnN7ZGlybmFtZSAoJGl0ZXIpfSA9IDE7CgkgICAgfQoJfQoJ JG1ha2VfZGlyc19zZXQgPSAxOwogICAgfQogICAgcmV0dXJuIGRlZmluZWQgJG1ha2VfZGlyc3sk ZGlyfTsKfQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIwoKIyBGaW5kIHRoZSBhdXggZGlyLiAgVGhpcyBzaG91bGQgbWF0Y2gg dGhlIGFsZ29yaXRobSB1c2VkIGJ5CiMgLi9jb25maWd1cmUuIFNlZSB0aGUgQXV0b2NvbmYgZG9j dW1lbnRhdGlvbiBmb3IgQUNfQ09ORklHX0FVWF9ESVIuCnN1YiBsb2NhdGVfYXV4X2RpciAoKQp7 CiAgaWYgKCEgJGNvbmZpZ19hdXhfZGlyX3NldF9pbl9jb25maWd1cmVfYWMpCiAgICB7CiAgICAg ICMgVGhlIGRlZmF1bHQgYXV4aWxpYXJ5IGRpcmVjdG9yeSBpcyB0aGUgZmlyc3QKICAgICAgIyBv ZiAuLCAuLiwgb3IgLi4vLi4gdGhhdCBjb250YWlucyBpbnN0YWxsLXNoLgogICAgICAjIEFzc3Vt ZSAuIGlmIGluc3RhbGwtc2ggZG9lc24ndCBleGlzdCB5ZXQuCiAgICAgIGZvciBteSAkZGlyIChx dyAoLiAuLiAuLi8uLikpCgl7CgkgIGlmICgtZiAiJGRpci9pbnN0YWxsLXNoIikKCSAgICB7Cgkg ICAgICAkY29uZmlnX2F1eF9kaXIgPSAkZGlyOwoJICAgICAgbGFzdDsKCSAgICB9Cgl9CiAgICAg ICRjb25maWdfYXV4X2RpciA9ICcuJyB1bmxlc3MgJGNvbmZpZ19hdXhfZGlyOwogICAgfQogICMg QXZvaWQgdW5zaWdodGx5ICcvLidzLgogICRhbV9jb25maWdfYXV4X2RpciA9CiAgICAnJCh0b3Bf c3JjZGlyKScgLiAoJGNvbmZpZ19hdXhfZGlyIGVxICcuJyA/ICIiIDogIi8kY29uZmlnX2F1eF9k aXIiKTsKICAkYW1fY29uZmlnX2F1eF9kaXIgPX4gcywvKiQsLDsKfQoKCiMgcHVzaF9yZXF1aXJl ZF9maWxlICgkRElSLCAkRklMRSwgJEZVTExGSUxFKQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQdXNoIHRoZSBnaXZlbiBmaWxlIG9udG8gRElTVF9DT01N T04uCnN1YiBwdXNoX3JlcXVpcmVkX2ZpbGUKewogIG15ICgkZGlyLCAkZmlsZSwgJGZ1bGxmaWxl KSA9IEBfOwoKICAjIElmIHRoZSBmaWxlIHRvIGJlIGRpc3RyaWJ1dGVkIGlzIGluIHRoZSBzYW1l IGRpcmVjdG9yeSBvZiB0aGUKICAjIGN1cnJlbnRseSBwcm9jZXNzZWQgTWFrZWZpbGUuYW0sIHRo ZW4gd2Ugd2FudCB0byBkaXN0cmlidXRlIGl0CiAgIyBmcm9tIHRoaXMgc2FtZSBNYWtlZmlsZS5h bS4KICBpZiAoJGRpciBlcSAkcmVsYXRpdmVfZGlyKQogICAgewogICAgICBwdXNoX2Rpc3RfY29t bW9uICgkZmlsZSk7CiAgICB9CiAgIyBUaGlzIGlzIG5lZWRlZCB0byBhbGxvdyBhIGNvbnN0cnVj dCBpbiBhIG5vbi10b3AtbGV2ZWwgTWFrZWZpbGUuYW0KICAjIHRvIHJlcXVpcmUgYSBmaWxlIGlu IHRoZSBidWlsZC1hdXggZGlyZWN0b3J5IChzZWUgYXQgbGVhc3QgdGhlIHRlc3QKICAjIHNjcmlw dCAndGVzdC1kcml2ZXItaXMtZGlzdHJpYnV0ZWQuc2gnKS4gIFRoaXMgaXMgcmVsYXRlZCB0byB0 aGUKICAjIGF1dG9tYWtlIGJ1ZyM5NTQ2LiAgTm90ZSB0aGF0IHRoZSB1c2Ugb2YgJGNvbmZpZ19h dXhfZGlyIGluc3RlYWQKICAjIG9mICRhbV9jb25maWdfYXV4X2RpciBoZXJlIGlzIGRlbGliZXJh dGUgYW5kIG5lY2Vzc2FyeS4KICBlbHNpZiAoJGRpciBlcSAkY29uZmlnX2F1eF9kaXIpCiAgICB7 CiAgICAgIHB1c2hfZGlzdF9jb21tb24gKCIkYW1fY29uZmlnX2F1eF9kaXIvJGZpbGUiKTsKICAg IH0KICAjIEZJWE1FOiBhbm90aGVyIHNwZWNpYWwgY2FzZSwgZm9yIEFDX0xJQk9CSi9BQ19MSUJT T1VSQ0Ugc3VwcG9ydC4KICAjIFdlIHByb2JhYmx5IG5lZWQgc29tZSByZWZhY3RvcmluZyBvZiB0 aGlzIGZ1bmN0aW9uIGFuZCBpdHMgY2FsbGVycywKICAjIHRvIGhhdmUgYSBtb3JlIGV4cGxpY2l0 IGFuZCBzeXN0ZW1hdGljIGhhbmRsaW5nIG9mIGFsbCB0aGUgc3BlY2lhbAogICMgY2FzZXM7IGJ1 dCwgc2luY2UgdGhlcmUgYXJlIG9ubHkgdHdvIG9mIHRoZW0sIHRoaXMgaXMgbG93LXByaW9yaXR5 CiAgIyBBVE0uCiAgZWxzaWYgKCRjb25maWdfbGlib2JqX2RpciAmJiAkZGlyIGVxICRjb25maWdf bGlib2JqX2RpcikKICAgIHsKICAgICAgIyBBdm9pZCB1bnNpZ2h0bHkgJy8uJ3MuCiAgICAgIG15 ICRhbV9jb25maWdfbGlib2JqX2RpciA9CiAgICAgICAgJyQodG9wX3NyY2RpciknIC4KICAgICAg ICAoJGNvbmZpZ19saWJvYmpfZGlyIGVxICcuJyA/ICIiIDogIi8kY29uZmlnX2xpYm9ial9kaXIi KTsKICAgICAgJGFtX2NvbmZpZ19saWJvYmpfZGlyID1+IHN8LyokfHw7CiAgICAgIHB1c2hfZGlz dF9jb21tb24gKCIkYW1fY29uZmlnX2xpYm9ial9kaXIvJGZpbGUiKTsKICAgIH0KICBlbHNpZiAo JHJlbGF0aXZlX2RpciBlcSAnLicgJiYgISBpc19tYWtlX2RpciAoJGRpcikpCiAgICB7CiAgICAg ICMgSWYgd2UgYXJlIGRvaW5nIHRoZSB0b3Btb3N0IGRpcmVjdG9yeSwgYW5kIHRoZSBmaWxlIGlz IGluIGEKICAgICAgIyBzdWJkaXIgd2hpY2ggZG9lcyBub3QgaGF2ZSBhIE1ha2VmaWxlLCB0aGVu IHdlIGRpc3RyaWJ1dGUgaXQKICAgICAgIyBoZXJlLgoKICAgICAgIyBJZiBhIHJlcXVpcmVkIGZp bGUgaXMgYWJvdmUgdGhlIHNvdXJjZSB0cmVlLCBpdCBpcyBpbXBvcnRhbnQKICAgICAgIyB0byBw cmVmaXggaXQgd2l0aCAnJChzcmNkaXIpJyBzbyB0aGF0IG5vIFZQQVRIIHNlYXJjaCBpcwogICAg ICAjIHBlcmZvcm1lZC4gIE90aGVyd2lzZSBwcm9ibGVtcyBvY2N1ciB3aXRoIE1ha2UgaW1wbGVt ZW50YXRpb25zCiAgICAgICMgdGhhdCByZXdyaXRlIGFuZCBzaW1wbGlmeSBydWxlcyB3aG9zZSBk ZXBlbmRlbmNpZXMgYXJlIGZvdW5kIGluIGEKICAgICAgIyBWUEFUSCBsb2NhdGlvbi4gIEhlcmUg aXMgYW4gZXhhbXBsZSB3aXRoIE9TRjEvVHJ1NjQgTWFrZS4KICAgICAgIwogICAgICAjICAgJSBj YXQgTWFrZWZpbGUKICAgICAgIyAgIFZQQVRIID0gc3ViCiAgICAgICMgICBkaXN0ZGlyOiAuLi9h CiAgICAgICMJICAgICAgICAgIGVjaG8gLi4vYQogICAgICAjICAgJSBscwogICAgICAjICAgTWFr ZWZpbGUgYQogICAgICAjICAgJSBtYWtlCiAgICAgICMgICBlY2hvIGEKICAgICAgIyAgIGEKICAg ICAgIwogICAgICAjIERlcGVuZGVuY3kgJy4uL2EnIHdhcyBmb3VuZCBpbiAnc3ViLy4uL2EnLCBi dXQgdGhpcyBtYWtlCiAgICAgICMgaW1wbGVtZW50YXRpb24gc2ltcGxpZmllZCBpdCBhcyAnYScu ICAoTm90ZSB0aGF0IHRoZSBzdWIvCiAgICAgICMgZGlyZWN0b3J5IGRvZXMgbm90IGV2ZW4gZXhp c3QuKQogICAgICAjCiAgICAgICMgVGhpcyBraW5kIG9mIFZQQVRIIHJld3JpdGluZyBzZWVtcyBo YXJkIHRvIGNhbmNlbC4gIFRoZQogICAgICAjIGRpc3RkaXIuYW0gaGFjayBhZ2FpbnN0IFZQQVRI IHJld3JpdGluZyB3b3JrcyBvbmx5IHdoZW4gbm8KICAgICAgIyBzaW1wbGlmaWNhdGlvbiBpcyBk b25lLCBpLmUuLCBmb3IgZGVwZW5kZW5jaWVzIHdoaWNoIGFyZSBpbgogICAgICAjIHN1YmRpcmVj dG9yaWVzLCBub3QgaW4gZW5jbG9zaW5nIGRpcmVjdG9yaWVzLiAgSGVuY2UsIGluCiAgICAgICMg dGhlIGxhdHRlciBjYXNlIHdlIHVzZSBhIGZ1bGwgcGF0aCB0byBtYWtlIHN1cmUgbm8gVlBBVEgK ICAgICAgIyBzZWFyY2ggb2NjdXJzLgogICAgICAkZnVsbGZpbGUgPSAnJChzcmNkaXIpLycgLiAk ZnVsbGZpbGUKCWlmICRkaXIgPX4gbSxeXC5cLig/OiR8LyksOwoKICAgICAgcHVzaF9kaXN0X2Nv bW1vbiAoJGZ1bGxmaWxlKTsKICAgIH0KICBlbHNlCiAgICB7CiAgICAgIHByb2dfZXJyb3IgImEg TWFrZWZpbGUgaW4gcmVsYXRpdmUgZGlyZWN0b3J5ICRyZWxhdGl2ZV9kaXIgIiAuCiAgICAgICAg ICAgICAgICAgImNhbid0IGFkZCBmaWxlcyBpbiBkaXJlY3RvcnkgJGRpciB0byBESVNUX0NPTU1P TiI7CiAgICB9Cn0KCgojIElmIGEgZmlsZSBuYW1lIGFwcGVhcnMgYXMgYSBrZXkgaW4gdGhpcyBo YXNoLCB0aGVuIGl0IGhhcyBhbHJlYWR5CiMgYmVlbiBjaGVja2VkIGZvci4gIFRoaXMgYWxsb3dz IHVzIG5vdCB0byByZXBvcnQgdGhlIHNhbWUgZXJyb3IgbW9yZQojIHRoYW4gb25jZS4KbXkgJXJl cXVpcmVkX2ZpbGVfbm90X2ZvdW5kID0gKCk7CgojIHJlcXVpcmVkX2ZpbGVfY2hlY2tfb3JfY29w eSAoJFdIRVJFLCAkRElSRUNUT1JZLCAkRklMRSkKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVmVyaWZ5IHRoYXQgdGhlIGZpbGUgbXVz dCBleGlzdCBpbiAkRElSRUNUT1JZLCBvciBpbnN0YWxsIGl0LgpzdWIgcmVxdWlyZWRfZmlsZV9j aGVja19vcl9jb3B5CnsKICBteSAoJHdoZXJlLCAkZGlyLCAkZmlsZSkgPSBAXzsKCiAgbXkgJGZ1 bGxmaWxlID0gIiRkaXIvJGZpbGUiOwogICMgSW4gY2FzZXMgd2hlcmUgJGZpbGUgaXMgYWN0dWFs bHkgYSBzdWJkaXIvZmlsZW5hbWUsIHNwbGl0IHRoZSBmdWxsIHBhdGggYmFjawogICMgaW50byBk aXIgJiBmaWxlIG5hbWVzLiAgVGhlIEZpbGVVdGlscyAoZS5nLiBkaXJfaGFzX2Nhc2VfbWF0Y2hp bmdfZmlsZSkgZG8KICAjIG5vdCBoYW5kbGUgdGhpcyBzY2VuYXJpbyBhdCBhbGwgYW5kIGV4cGVj dCAkZmlsZSB0byBvbmx5IGJlIGEgZmlsZW5hbWUuCiAgIyBodHRwczovL2J1Z3MuZ251Lm9yZy8y MDMwMAogICRkaXIgPSBkaXJuYW1lICgkZnVsbGZpbGUpOwogICRmaWxlID0gYmFzZW5hbWUgKCRm dWxsZmlsZSk7CgogIG15ICRmb3VuZF9pdCA9IDA7CiAgbXkgJGRhbmdsaW5nX3N5bSA9IDA7Cgog IGlmICgtbCAkZnVsbGZpbGUgJiYgISAtZiAkZnVsbGZpbGUpCiAgICB7CiAgICAgICRkYW5nbGlu Z19zeW0gPSAxOwogICAgfQogIGVsc2lmIChkaXJfaGFzX2Nhc2VfbWF0Y2hpbmdfZmlsZSAoJGRp ciwgJGZpbGUpKQogICAgewogICAgICAkZm91bmRfaXQgPSAxOwogICAgfQoKICAjICctLWZvcmNl LW1pc3NpbmcnIG9ubHkgaGFzIGFuIGVmZmVjdCBpZiAnLS1hZGQtbWlzc2luZycgaXMKICAjIHNw ZWNpZmllZC4KICByZXR1cm4KICAgIGlmICRmb3VuZF9pdCAmJiAoISAkYWRkX21pc3NpbmcgfHwg ISAkZm9yY2VfbWlzc2luZyk7CgogICMgSWYgd2UndmUgYWxyZWFkeSBsb29rZWQgZm9yIGl0LCB3 ZSdyZSBkb25lLiAgWW91IG1pZ2h0IHdvbmRlciB3aHkgd2UKICAjIGRvbid0IGRvIHRoaXMgYmVm b3JlIHNlYXJjaGluZyBmb3IgdGhlIGZpbGUuICBJZiB3ZSBkbyB0aGF0LCB0aGVuCiAgIyBzb21l dGhpbmcgbGlrZSBBQ19PVVRQVVQoW3N1YmRpci9mb28gZm9vXSkgd2lsbCBmYWlsIHRvIHB1dCAn Zm9vLmluJwogICMgaW50byAkKERJU1RfQ09NTU9OKS4KICBpZiAoISAkZm91bmRfaXQpCiAgICB7 CiAgICAgIHJldHVybiBpZiBkZWZpbmVkICRyZXF1aXJlZF9maWxlX25vdF9mb3VuZHskZnVsbGZp bGV9OwogICAgICAkcmVxdWlyZWRfZmlsZV9ub3RfZm91bmR7JGZ1bGxmaWxlfSA9IDE7CiAgICB9 CiAgaWYgKCRkYW5nbGluZ19zeW0gJiYgJGFkZF9taXNzaW5nKQogICAgewogICAgICB1bmxpbmsg KCRmdWxsZmlsZSk7CiAgICB9CgogIG15ICR0cmFpbGVyID0gJyc7CiAgbXkgJHRyYWlsZXIyID0g Jyc7CiAgbXkgJHN1cHByZXNzID0gMDsKCiAgIyBPbmx5IGluc3RhbGwgbWlzc2luZyBmaWxlcyBh Y2NvcmRpbmcgdG8gb3VyIGRlc2lyZWQKICAjIHN0cmljdG5lc3MgbGV2ZWwuCiAgbXkgJG1lc3Nh Z2UgPSAicmVxdWlyZWQgZmlsZSAnJGZ1bGxmaWxlJyBub3QgZm91bmQiOwogIGlmICgkYWRkX21p c3NpbmcpCiAgICB7CiAgICAgIGlmICgtZiAiJGxpYmRpci8kZmlsZSIpCiAgICAgICAgewogICAg ICAgICAgJHN1cHByZXNzID0gMTsKCiAgICAgICAgICAjIEluc3RhbGwgdGhlIG1pc3NpbmcgZmls ZS4gIFN5bWxpbmsgaWYgd2UKICAgICAgICAgICMgY2FuLCBjb3B5IGlmIHdlIG11c3QuICBOb3Rl OiBkZWxldGUgdGhlIGZpbGUKICAgICAgICAgICMgZmlyc3QsIGluIGNhc2UgaXQgaXMgYSBkYW5n bGluZyBzeW1saW5rLgogICAgICAgICAgJG1lc3NhZ2UgPSAiaW5zdGFsbGluZyAnJGZ1bGxmaWxl JyI7CgogICAgICAgICAgIyBUaGUgbGljZW5zZSBmaWxlIHNob3VsZCBub3QgYmUgdm9sYXRpbGUu CiAgICAgICAgICBpZiAoJGZpbGUgZXEgIkNPUFlJTkciKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgJG1lc3NhZ2UgLj0gIiB1c2luZyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2MyBm aWxlIjsKICAgICAgICAgICAgICAkdHJhaWxlcjIgPSAiXG4gICAgQ29uc2lkZXIgYWRkaW5nIHRo ZSBDT1BZSU5HIGZpbGUiCiAgICAgICAgICAgICAgICAgICAgICAgIC4gIiB0byB0aGUgdmVyc2lv biBjb250cm9sIHN5c3RlbSIKICAgICAgICAgICAgICAgICAgICAgICAgLiAiXG4gICAgZm9yIHlv dXIgY29kZSwgdG8gYXZvaWQgcXVlc3Rpb25zIgogICAgICAgICAgICAgICAgICAgICAgICAuICIg YWJvdXQgd2hpY2ggbGljZW5zZSB5b3VyIHByb2plY3QgdXNlcyI7CiAgICAgICAgICAgIH0KCiAg ICAgICAgICAjIFdpbmRvd3MgUGVybCB3aWxsIGhhbmcgaWYgd2UgdHJ5IHRvIGRlbGV0ZSBhCiAg ICAgICAgICAjIGZpbGUgdGhhdCBkb2Vzbid0IGV4aXN0LgogICAgICAgICAgdW5saW5rICgkZnVs bGZpbGUpIGlmIC1mICRmdWxsZmlsZTsKICAgICAgICAgIGlmICgkc3ltbGlua19leGlzdHMgJiYg ISAkY29weV9taXNzaW5nKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgaWYgKCEgc3ltbGlu ayAoIiRsaWJkaXIvJGZpbGUiLCAkZnVsbGZpbGUpCiAgICAgICAgICAgICAgICAgIHx8ICEgLWUg JGZ1bGxmaWxlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAkc3VwcHJlc3Mg PSAwOwogICAgICAgICAgICAgICAgICAkdHJhaWxlciA9ICI7IGVycm9yIHdoaWxlIG1ha2luZyBs aW5rOiAkISI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIGVsc2lm IChzeXN0ZW0gKCdjcCcsICIkbGliZGlyLyRmaWxlIiwgJGZ1bGxmaWxlKSkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICRzdXBwcmVzcyA9IDA7CiAgICAgICAgICAgICAgJHRyYWlsZXIgPSAi XG4gICAgZXJyb3Igd2hpbGUgY29weWluZyI7CiAgICAgICAgICAgIH0KICAgICAgICAgIHNldF9k aXJfY2FjaGVfZmlsZSAoJGRpciwgJGZpbGUpOwogICAgICAgIH0KICAgIH0KICBlbHNlCiAgICB7 CiAgICAgICR0cmFpbGVyID0gIlxuICAnYXV0b21ha2UgLS1hZGQtbWlzc2luZycgY2FuIGluc3Rh bGwgJyRmaWxlJyIKICAgICAgICBpZiAtZiAiJGxpYmRpci8kZmlsZSI7CiAgICB9CgogICMgSWYg LS1mb3JjZS1taXNzaW5nIHdhcyBzcGVjaWZpZWQsIGFuZCB3ZSBoYXZlCiAgIyBhY3R1YWxseSBm b3VuZCB0aGUgZmlsZSwgdGhlbiBkbyBub3RoaW5nLgogIHJldHVybgogICAgaWYgJGZvdW5kX2l0 ICYmICRmb3JjZV9taXNzaW5nOwoKICAjIElmIHdlIGNvdWxkbid0IGluc3RhbGwgdGhlIGZpbGUs IGJ1dCBpdCBpcyBhIHRhcmdldCBpbgogICMgdGhlIE1ha2VmaWxlLCBkb24ndCBwcmludCBhbnl0 aGluZy4gIFRoaXMgYWxsb3dzIGZpbGVzCiAgIyBsaWtlIFJFQURNRSwgQVVUSE9SUywgb3IgVEhB TktTIHRvIGJlIGdlbmVyYXRlZC4KICByZXR1cm4KICAgIGlmICEkc3VwcHJlc3MgJiYgcnVsZSAk ZmlsZTsKCiAgbXNnICgkc3VwcHJlc3MgPyAnbm90ZScgOiAnZXJyb3InLCAkd2hlcmUsICIkbWVz c2FnZSR0cmFpbGVyJHRyYWlsZXIyIik7Cn0KCgojIHJlcXVpcmVfZmlsZV9pbnRlcm5hbCAoJFdI RVJFLCAkTVlTVFJJQ1QsICRESVJFQ1RPUlksICRRVUVVRSwgQEZJTEVTKQojIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQojIFZlcmlmeSB0aGF0IHRoZSBmaWxlIG11c3QgZXhpc3QgaW4gJERJUkVDVE9SWSwgb3IgaW5z dGFsbCBpdC4KIyAkTVlTVFJJQ1QgaXMgdGhlIHN0cmljdG5lc3MgbGV2ZWwgYXQgd2hpY2ggdGhp cyBmaWxlIGJlY29tZXMgcmVxdWlyZWQuCiMgV29ya2VyIHRocmVhZHMgbWF5IHF1ZXVlIHVwIHRo ZSBhY3Rpb24gdG8gYmUgc2VyaWFsaXplZCBieSB0aGUgbWFzdGVyLAojIGlmICRRVUVVRSBpcyB0 cnVlCnN1YiByZXF1aXJlX2ZpbGVfaW50ZXJuYWwKewogIG15ICgkd2hlcmUsICRteXN0cmljdCwg JGRpciwgJHF1ZXVlLCBAZmlsZXMpID0gQF87CgogIHJldHVybgogICAgdW5sZXNzICRzdHJpY3Ru ZXNzID49ICRteXN0cmljdDsKCiAgZm9yZWFjaCBteSAkZmlsZSAoQGZpbGVzKQogICAgewogICAg ICBwdXNoX3JlcXVpcmVkX2ZpbGUgKCRkaXIsICRmaWxlLCAiJGRpci8kZmlsZSIpOwogICAgICBp ZiAoJHF1ZXVlKQogICAgICAgIHsKICAgICAgICAgIHF1ZXVlX3JlcXVpcmVkX2ZpbGVfY2hlY2tf b3JfY29weSAoJHJlcXVpcmVkX2NvbmZfZmlsZV9xdWV1ZSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUVVFVUVfQ09ORl9GSUxFLCAkcmVsYXRpdmVfZGlyLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkd2hlcmUsICRteXN0 cmljdCwgQGZpbGVzKTsKICAgICAgICB9CiAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICBy ZXF1aXJlZF9maWxlX2NoZWNrX29yX2NvcHkgKCR3aGVyZSwgJGRpciwgJGZpbGUpOwogICAgICAg IH0KICAgIH0KfQoKIyByZXF1aXJlX2ZpbGUgKCRXSEVSRSwgJE1ZU1RSSUNULCBARklMRVMpCiMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgcmVxdWlyZV9maWxl CnsKICAgIG15ICgkd2hlcmUsICRteXN0cmljdCwgQGZpbGVzKSA9IEBfOwogICAgcmVxdWlyZV9m aWxlX2ludGVybmFsICgkd2hlcmUsICRteXN0cmljdCwgJHJlbGF0aXZlX2RpciwgMCwgQGZpbGVz KTsKfQoKIyByZXF1aXJlX2ZpbGVfd2l0aF9tYWNybyAoJENPTkQsICRNQUNSTywgJE1ZU1RSSUNU LCBARklMRVMpCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpzdWIgcmVxdWlyZV9maWxlX3dpdGhfbWFjcm8KewogICAgbXkgKCRjb25k LCAkbWFjcm8sICRteXN0cmljdCwgQGZpbGVzKSA9IEBfOwogICAgJG1hY3JvID0gcnZhciAoJG1h Y3JvKSB1bmxlc3MgcmVmICRtYWNybzsKICAgIHJlcXVpcmVfZmlsZSAoJG1hY3JvLT5yZGVmICgk Y29uZCktPmxvY2F0aW9uLCAkbXlzdHJpY3QsIEBmaWxlcyk7Cn0KCiMgcmVxdWlyZV9saWJzb3Vy Y2Vfd2l0aF9tYWNybyAoJENPTkQsICRNQUNSTywgJE1ZU1RSSUNULCBARklMRVMpCiMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiMgUmVxdWlyZSBhbiBBQ19MSUJTT1VSQ0VkIGZpbGUuICBJZiBBQ19DT05GSUdfTElCT0JKX0RJ UiB3YXMgY2FsbGVkLCBpdAojIG11c3QgYmUgaW4gdGhhdCBkaXJlY3RvcnkuICBPdGhlcndpc2Ug ZXhwZWN0IGl0IGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4Kc3ViIHJlcXVpcmVfbGlic291cmNl X3dpdGhfbWFjcm8KewogICAgbXkgKCRjb25kLCAkbWFjcm8sICRteXN0cmljdCwgQGZpbGVzKSA9 IEBfOwogICAgJG1hY3JvID0gcnZhciAoJG1hY3JvKSB1bmxlc3MgcmVmICRtYWNybzsKICAgIGlm ICgkY29uZmlnX2xpYm9ial9kaXIpCiAgICAgIHsKCXJlcXVpcmVfZmlsZV9pbnRlcm5hbCAoJG1h Y3JvLT5yZGVmICgkY29uZCktPmxvY2F0aW9uLCAkbXlzdHJpY3QsCgkJCSAgICAgICAkY29uZmln X2xpYm9ial9kaXIsIDAsIEBmaWxlcyk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJcmVxdWly ZV9maWxlICgkbWFjcm8tPnJkZWYgKCRjb25kKS0+bG9jYXRpb24sICRteXN0cmljdCwgQGZpbGVz KTsKICAgICAgfQp9CgojIHF1ZXVlX3JlcXVpcmVkX2ZpbGVfY2hlY2tfb3JfY29weSAoJFFVRVVF LCAkS0VZLCAkRElSLCAkV0hFUkUsCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkTVlTVFJJQ1QsIEBGSUxFUykKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgcXVldWVfcmVxdWlyZWRfZmlsZV9jaGVj a19vcl9jb3B5CnsKICAgIG15ICgkcXVldWUsICRrZXksICRkaXIsICR3aGVyZSwgJG15c3RyaWN0 LCBAZmlsZXMpID0gQF87CiAgICBteSBAc2VyaWFsX2xvYzsKICAgIGlmIChyZWYgJHdoZXJlKQog ICAgICB7CiAgICAgICAgQHNlcmlhbF9sb2MgPSAoUVVFVUVfTE9DQVRJT04sICR3aGVyZS0+c2Vy aWFsaXplICgpKTsKICAgICAgfQogICAgZWxzZQogICAgICB7CiAgICAgICAgQHNlcmlhbF9sb2Mg PSAoUVVFVUVfU1RSSU5HLCAkd2hlcmUpOwogICAgICB9CiAgICAkcXVldWUtPmVucXVldWUgKCRr ZXksICRkaXIsIEBzZXJpYWxfbG9jLCAkbXlzdHJpY3QsIDAgKyBAZmlsZXMsIEBmaWxlcyk7Cn0K CiMgcmVxdWlyZV9xdWV1ZWRfZmlsZV9jaGVja19vcl9jb3B5ICgkUVVFVUUpCiMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiByZXF1aXJlX3F1ZXVlZF9maWxl X2NoZWNrX29yX2NvcHkKewogICAgbXkgKCRxdWV1ZSkgPSBAXzsKICAgIG15ICR3aGVyZTsKICAg IG15ICRkaXIgPSAkcXVldWUtPmRlcXVldWUgKCk7CiAgICBteSAkbG9jX2tleSA9ICRxdWV1ZS0+ ZGVxdWV1ZSAoKTsKICAgIGlmICgkbG9jX2tleSBlcSBRVUVVRV9MT0NBVElPTikKICAgICAgewoJ JHdoZXJlID0gQXV0b21ha2U6OkxvY2F0aW9uOjpkZXNlcmlhbGl6ZSAoJHF1ZXVlKTsKICAgICAg fQogICAgZWxzaWYgKCRsb2Nfa2V5IGVxIFFVRVVFX1NUUklORykKICAgICAgewoJJHdoZXJlID0g JHF1ZXVlLT5kZXF1ZXVlICgpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCXByb2dfZXJyb3Ig InVuZXhwZWN0ZWQga2V5ICRsb2Nfa2V5IjsKICAgICAgfQogICAgbXkgJG15c3RyaWN0ID0gJHF1 ZXVlLT5kZXF1ZXVlICgpOwogICAgbXkgJG5maWxlcyA9ICRxdWV1ZS0+ZGVxdWV1ZSAoKTsKICAg IG15IEBmaWxlczsKICAgIHB1c2ggQGZpbGVzLCAkcXVldWUtPmRlcXVldWUgKCkKICAgICAgZm9y ZWFjaCAoMSAuLiAkbmZpbGVzKTsKICAgIHJldHVybgogICAgICB1bmxlc3MgJHN0cmljdG5lc3Mg Pj0gJG15c3RyaWN0OwogICAgZm9yZWFjaCBteSAkZmlsZSAoQGZpbGVzKQogICAgICB7CiAgICAg ICAgcmVxdWlyZWRfZmlsZV9jaGVja19vcl9jb3B5ICgkd2hlcmUsICRjb25maWdfYXV4X2Rpciwg JGZpbGUpOwogICAgICB9Cn0KCiMgcmVxdWlyZV9jb25mX2ZpbGUgKCRXSEVSRSwgJE1ZU1RSSUNU LCBARklMRVMpCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiMgTG9va3MgaW4gY29uZmlndXJhdGlvbiBwYXRoLCBhcyBzcGVjaWZpZWQgYnkgQUNfQ09ORklH X0FVWF9ESVIuCnN1YiByZXF1aXJlX2NvbmZfZmlsZQp7CiAgICBteSAoJHdoZXJlLCAkbXlzdHJp Y3QsIEBmaWxlcykgPSBAXzsKICAgIG15ICRxdWV1ZSA9IGRlZmluZWQgJHJlcXVpcmVkX2NvbmZf ZmlsZV9xdWV1ZSA/IDEgOiAwOwogICAgcmVxdWlyZV9maWxlX2ludGVybmFsICgkd2hlcmUsICRt eXN0cmljdCwgJGNvbmZpZ19hdXhfZGlyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAkcXVl dWUsIEBmaWxlcyk7Cn0KCgojIHJlcXVpcmVfY29uZl9maWxlX3dpdGhfbWFjcm8gKCRDT05ELCAk TUFDUk8sICRNWVNUUklDVCwgQEZJTEVTKQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgcmVxdWlyZV9jb25mX2ZpbGVf d2l0aF9tYWNybwp7CiAgICBteSAoJGNvbmQsICRtYWNybywgJG15c3RyaWN0LCBAZmlsZXMpID0g QF87CiAgICByZXF1aXJlX2NvbmZfZmlsZSAocnZhciAoJG1hY3JvKS0+cmRlZiAoJGNvbmQpLT5s b2NhdGlvbiwKCQkgICAgICAgJG15c3RyaWN0LCBAZmlsZXMpOwp9CgojIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgojIHJlcXVp cmVfYnVpbGRfZGlyZWN0b3J5ICgkRElSRUNUT1JZKQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQojIEVtaXQgcnVsZXMgdG8gY3JlYXRlICRESVJFQ1RPUlkgaWYgbmVlZGVk LCBhbmQgcmV0dXJuCiMgdGhlIGZpbGUgdGhhdCBhbnkgdGFyZ2V0IHJlcXVpcmluZyB0aGlzIGRp cmVjdG9yeSBzaG91bGQgYmUgbWFkZQojIGRlcGVuZGVudCB1cG9uLgojIFdlIGRvbid0IHdhbnQg dG8gZW1pdCB0aGUgcnVsZSB0d2ljZSwgYW5kIHdhbnQgdG8gcmV1c2UgaXQKIyBmb3IgZGlyZWN0 b3JpZXMgd2l0aCBlcXVpdmFsZW50IG5hbWVzIChlLmcuLCAnZm9vL2JhcicgYW5kICcuL2Zvby8v YmFyJykuCnN1YiByZXF1aXJlX2J1aWxkX2RpcmVjdG9yeQp7CiAgbXkgJGRpcmVjdG9yeSA9IHNo aWZ0OwoKICByZXR1cm4gJGRpcmVjdG9yeV9tYXB7JGRpcmVjdG9yeX0gaWYgZXhpc3RzICRkaXJl Y3RvcnlfbWFweyRkaXJlY3Rvcnl9OwoKICBteSAkY2RpciA9IEZpbGU6OlNwZWMtPmNhbm9ucGF0 aCAoJGRpcmVjdG9yeSk7CgogIGlmIChleGlzdHMgJGRpcmVjdG9yeV9tYXB7JGNkaXJ9KQogICAg ewogICAgICBteSAkc3RhbXAgPSAkZGlyZWN0b3J5X21hcHskY2Rpcn07CiAgICAgICRkaXJlY3Rv cnlfbWFweyRkaXJlY3Rvcnl9ID0gJHN0YW1wOwogICAgICByZXR1cm4gJHN0YW1wOwogICAgfQoK ICBteSAkZGlyc3RhbXAgPSAiJGNkaXIvXCQoYW1fX2RpcnN0YW1wKSI7CgogICRkaXJlY3Rvcnlf bWFweyRkaXJlY3Rvcnl9ID0gJGRpcnN0YW1wOwogICRkaXJlY3RvcnlfbWFweyRjZGlyfSA9ICRk aXJzdGFtcDsKCiAgIyBTZXQgYSB2YXJpYWJsZSBmb3IgdGhlIGRpcnN0YW1wIGJhc2VuYW1lLgog IGRlZmluZV9wcmV0dHlfdmFyaWFibGUgKCdhbV9fZGlyc3RhbXAnLCBUUlVFLCBJTlRFUk5BTCwK CQkJICAnJChhbV9fbGVhZGluZ19kb3QpZGlyc3RhbXAnKTsKCiAgIyBEaXJlY3RvcnkgbXVzdCBi ZSByZW1vdmVkIGJ5ICdtYWtlIGRpc3RjbGVhbicuCiAgJGNsZWFuX2ZpbGVzeyRkaXJzdGFtcH0g PSBESVNUX0NMRUFOOwoKICAkb3V0cHV0X3J1bGVzIC49ICgiJGRpcnN0YW1wOlxuIgoJCSAgICAu ICJcdFxAXCQoTUtESVJfUCkgJGRpcmVjdG9yeVxuIgoJCSAgICAuICJcdFxAOiA+PiRkaXJzdGFt cFxuIik7CgogIHJldHVybiAkZGlyc3RhbXA7Cn0KCiMgcmVxdWlyZV9idWlsZF9kaXJlY3Rvcnlf bWF5YmUgKCRGSUxFKQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBJ ZiAkRklMRSBsaWVzIGluIGEgc3ViZGlyZWN0b3J5LCBlbWl0IGEgcnVsZSB0byBjcmVhdGUgdGhp cwojIGRpcmVjdG9yeSBhbmQgcmV0dXJuIHRoZSBmaWxlIHRoYXQgJEZJTEUgc2hvdWxkIGJlIG1h ZGUKIyBkZXBlbmRlbnQgdXBvbi4gIE90aGVyd2lzZSwganVzdCByZXR1cm4gdGhlIGVtcHR5IHN0 cmluZy4Kc3ViIHJlcXVpcmVfYnVpbGRfZGlyZWN0b3J5X21heWJlCnsKICAgIG15ICRmaWxlID0g c2hpZnQ7CiAgICBteSAkZGlyZWN0b3J5ID0gZGlybmFtZSAoJGZpbGUpOwoKICAgIGlmICgkZGly ZWN0b3J5IG5lICcuJykKICAgIHsKCXJldHVybiByZXF1aXJlX2J1aWxkX2RpcmVjdG9yeSAoJGRp cmVjdG9yeSk7CiAgICB9CiAgICBlbHNlCiAgICB7CglyZXR1cm4gJyc7CiAgICB9Cn0KCiMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKCiMgUHVzaCBhIGxpc3Qgb2YgZmlsZXMgb250byAnQGRpc3RfY29tbW9uJy4Kc3ViIHB1c2hf ZGlzdF9jb21tb24KewogIHByb2dfZXJyb3IgInB1c2hfZGlzdF9jb21tb24gcnVuIGFmdGVyIGhh bmRsZV9kaXN0IgogICAgaWYgJGhhbmRsZV9kaXN0X3J1bjsKICBwdXNoIEBkaXN0X2NvbW1vbiwg QF87Cn0KCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCgojIGdlbmVyYXRlX21ha2VmaWxlICgkTUFLRUZJTEVfQU0sICRNQUtF RklMRV9JTikKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiMgR2VuZXJhdGUgYSBNYWtlZmlsZS5pbiBnaXZlbiB0aGUgbmFtZSBvZiB0aGUgY29ycmVzcG9u ZGluZyBNYWtlZmlsZSBhbmQKIyB0aGUgbmFtZSBvZiB0aGUgZmlsZSBvdXRwdXQgYnkgY29uZmln LnN0YXR1cy4Kc3ViIGdlbmVyYXRlX21ha2VmaWxlCnsKICBteSAoJG1ha2VmaWxlX2FtLCAkbWFr ZWZpbGVfaW4pID0gQF87CgogICMgUmVzZXQgYWxsIHRoZSBNYWtlZmlsZS5hbSByZWxhdGVkIHZh cmlhYmxlcy4KICBpbml0aWFsaXplX3Blcl9pbnB1dDsKCiAgIyBBVVRPTUFLRV9PUFRJT05TIGNh biBjb250YWlucyAtVyBmbGFncyB0byBkaXNhYmxlIG9yIGVuYWJsZQogICMgd2FybmluZ3MgZm9y IHRoaXMgZmlsZS4gIFNvIGhvbGQgYW55IHdhcm5pbmcgaXNzdWVkIGJlZm9yZQogICMgd2UgaGF2 ZSBwcm9jZXNzZWQgQVVUT01BS0VfT1BUSU9OUy4KICBidWZmZXJfbWVzc2FnZXMgKCd3YXJuaW5n Jyk7CgogICMgJE9VVFBVVCBpcyBlbmNvZGVkLiAgSWYgaXQgY29udGFpbnMgYSAiOiIgdGhlbiB0 aGUgZmlyc3QgZWxlbWVudAogICMgaXMgdGhlIHJlYWwgb3V0cHV0IGZpbGUsIGFuZCBhbGwgcmVt YWluaW5nIGVsZW1lbnRzIGFyZSBpbnB1dAogICMgZmlsZXMuICBXZSBkb24ndCBzY2FuIG9yIG90 aGVyd2lzZSBkZWFsIHdpdGggdGhlc2UgaW5wdXQgZmlsZXMsCiAgIyBvdGhlciB0aGFuIHRvIG1h cmsgdGhlbSBhcyBkZXBlbmRlbmNpZXMuICBTZWUgdGhlIHN1YnJvdXRpbmUKICAjICdzY2FuX2F1 dG9jb25mX2ZpbGVzJyBmb3IgZGV0YWlscy4KICBteSAoJG1ha2VmaWxlLCBAaW5wdXRzKSA9IHNw bGl0ICgvOi8sICRvdXRwdXRfZmlsZXN7JG1ha2VmaWxlX2lufSk7CgogICRyZWxhdGl2ZV9kaXIg PSBkaXJuYW1lICgkbWFrZWZpbGUpOwoKICByZWFkX21haW5fYW1fZmlsZSAoJG1ha2VmaWxlX2Ft LCAkbWFrZWZpbGVfaW4pOwogIGlmIChub3QgaGFuZGxlX29wdGlvbnMpCiAgICB7CiAgICAgICMg UHJvY2VzcyBidWZmZXJlZCB3YXJuaW5ncy4KICAgICAgZmx1c2hfbWVzc2FnZXM7CiAgICAgICMg RmF0YWwgZXJyb3IuICBKdXN0IHJldHVybiwgc28gd2UgY2FuIGNvbnRpbnVlIHdpdGggbmV4dCBm aWxlLgogICAgICByZXR1cm47CiAgICB9CiAgIyBQcm9jZXNzIGJ1ZmZlcmVkIHdhcm5pbmdzLgog IGZsdXNoX21lc3NhZ2VzOwoKICAjIFRoZXJlIGFyZSBhIGZldyBpbnN0YWxsLXJlbGF0ZWQgdmFy aWFibGVzIHRoYXQgeW91IHNob3VsZCBub3QgZGVmaW5lLgogIGZvcmVhY2ggbXkgJHZhciAoJ1BS RV9JTlNUQUxMJywgJ1BPU1RfSU5TVEFMTCcsICdOT1JNQUxfSU5TVEFMTCcpCiAgICB7CiAgICAg IG15ICR2ID0gdmFyICR2YXI7CiAgICAgIGlmICgkdikKCXsKCSAgbXkgJGRlZiA9ICR2LT5kZWYg KFRSVUUpOwoJICBwcm9nX2Vycm9yICIkdmFyIG5vdCBkZWZpbmVkIGluIGNvbmRpdGlvbiBUUlVF IgoJICAgIHVubGVzcyAkZGVmOwoJICByZWplY3RfdmFyICR2YXIsICInJHZhcicgc2hvdWxkIG5v dCBiZSBkZWZpbmVkIgoJICAgIGlmICRkZWYtPm93bmVyICE9IFZBUl9BVVRPTUFLRTsKCX0KICAg IH0KCiAgIyBDYXRjaCBzb21lIG9ic29sZXRlIHZhcmlhYmxlcy4KICBtc2dfdmFyICgnb2Jzb2xl dGUnLCAnSU5DTFVERVMnLAoJICAgIidJTkNMVURFUycgaXMgdGhlIG9sZCBuYW1lIGZvciAnQU1f Q1BQRkxBR1MnIChvciAnKl9DUFBGTEFHUycpIikKICAgIGlmIHZhciAoJ0lOQ0xVREVTJyk7Cgog ICMgTXVzdCBkbyB0aGlzIGFmdGVyIHJlYWRpbmcgLmFtIGZpbGUuCiAgZGVmaW5lX3ZhcmlhYmxl ICgnc3ViZGlyJywgJHJlbGF0aXZlX2RpciwgSU5URVJOQUwpOwoKICAjIElmIERJU1RfU1VCRElS UyBpcyBkZWZpbmVkLCBtYWtlIHN1cmUgU1VCRElSUyBpcywgc28gdGhhdAogICMgcmVjdXJzaXZl IHJ1bGVzIGFyZSBlbmFibGVkLgogIGRlZmluZV9wcmV0dHlfdmFyaWFibGUgKCdTVUJESVJTJywg VFJVRSwgSU5URVJOQUwsICcnKQogICAgaWYgdmFyICdESVNUX1NVQkRJUlMnICYmICEgdmFyICdT VUJESVJTJzsKCiAgIyBDaGVjayBmaXJzdCwgYmVjYXVzZSB3ZSBtaWdodCBtb2RpZnkgc29tZSBz dGF0ZS4KICBjaGVja19nbnVfc3RhbmRhcmRzOwogIGNoZWNrX2duaXRzX3N0YW5kYXJkczsKCiAg aGFuZGxlX2NvbmZpZ3VyZSAoJG1ha2VmaWxlX2FtLCAkbWFrZWZpbGVfaW4sICRtYWtlZmlsZSwg QGlucHV0cyk7CiAgaGFuZGxlX2dldHRleHQ7CgogIGhhbmRsZV90YXJnZXRzOwogIGhhbmRsZV9s aWJyYXJpZXM7CiAgaGFuZGxlX2x0bGlicmFyaWVzOwogIGhhbmRsZV9wcm9ncmFtczsKICBoYW5k bGVfc2NyaXB0czsKCiAgaGFuZGxlX3NpbGVudDsKCiAgIyBUaGVzZSBtdXN0IGJlIHJ1biBhZnRl ciBhbGwgdGhlIHNvdXJjZXMgYXJlIHNjYW5uZWQuICBUaGV5IHVzZQogICMgdmFyaWFibGVzIGRl ZmluZWQgYnkgaGFuZGxlX2xpYnJhcmllcygpLCBoYW5kbGVfbHRsaWJyYXJpZXMoKSwKICAjIG9y IGhhbmRsZV9wcm9ncmFtcygpLgogIGhhbmRsZV9jb21waWxlOwogIGhhbmRsZV9sYW5ndWFnZXM7 CiAgaGFuZGxlX2xpYnRvb2w7CgogICMgVmFyaWFibGVzIHVzZWQgYnkgZGlzdGRpci5hbSBhbmQg dGFncy5hbS4KICBkZWZpbmVfcHJldHR5X3ZhcmlhYmxlICgnU09VUkNFUycsIFRSVUUsIElOVEVS TkFMLCBAc291cmNlcyk7CiAgaWYgKCEgb3B0aW9uICduby1kaXN0JykKICAgIHsKICAgICAgZGVm aW5lX3ByZXR0eV92YXJpYWJsZSAoJ0RJU1RfU09VUkNFUycsIFRSVUUsIElOVEVSTkFMLCBAZGlz dF9zb3VyY2VzKTsKICAgIH0KCiAgaGFuZGxlX3RleGluZm87CiAgaGFuZGxlX2VtYWNzX2xpc3A7 CiAgaGFuZGxlX3B5dGhvbjsKICBoYW5kbGVfamF2YTsKICBoYW5kbGVfbWFuX3BhZ2VzOwogIGhh bmRsZV9kYXRhOwogIGhhbmRsZV9oZWFkZXJzOwogIGhhbmRsZV9zdWJkaXJzOwogIGhhbmRsZV91 c2VyX3JlY3Vyc2lvbjsKICBoYW5kbGVfdGFnczsKICBoYW5kbGVfbWlub3Jfb3B0aW9uczsKICAj IE11c3QgY29tZSBhZnRlciBoYW5kbGVfcHJvZ3JhbXMgc28gdGhhdCAla25vd25fcHJvZ3JhbXMg aXMgdXAtdG8tZGF0ZS4KICBoYW5kbGVfdGVzdHM7CgogICMgVGhpcyBtdXN0IGNvbWUgYWZ0ZXIg bW9zdCBvdGhlciBydWxlcy4KICBoYW5kbGVfZGlzdDsKCiAgaGFuZGxlX2Zvb3RlcjsKICBkb19j aGVja19tZXJnZV90YXJnZXQ7CiAgaGFuZGxlX2FsbCAoJG1ha2VmaWxlKTsKCiAgIyBGSVhNRTog R3Jvc3MhCiAgbXkgJGhhdmVfbHQxID0gISF2YXIoImxpYl9MVExJQlJBUklFUyIpOwogIG15ICRo YXZlX2x0MiA9ICEhdmFyKCJub2Jhc2VfbGliX0xUTElCUkFSSUVTIik7CiAgZm9yIG15ICR2YXIg KHZhcmlhYmxlcygiUFJPR1JBTVMiKSwgdmFyaWFibGVzKCJMVExJQlJBUklFUyIpKQogICAgewog ICAgICBpZiAoJHZhci0+bmFtZSBlcSAibGliX0xUTElCUkFSSUVTIgogICAgICAgICAgfHwgJHZh ci0+bmFtZSBlcSAibm9iYXNlX2xpYl9MVExJQlJBUklFUyIKICAgICAgICAgIHx8IHN1YnN0cigk dmFyLT5uYW1lLCAwLCA3KSBlcSAibm9pbnN0XyIpCiAgICAgICAgewogICAgICAgICAgbmV4dDsK ICAgICAgICB9CiAgICAgIG15ICRzaG9ydG5hbWUgPSAkdmFyLT5uYW1lOwogICAgICAkc2hvcnRu YW1lID1+IHRye199e31kOwogICAgICBpZiAoJGhhdmVfbHQxKQogICAgICAgIHsKICAgICAgICAg ICRvdXRwdXRfcnVsZXMgLj0gImluc3RhbGwtJHNob3J0bmFtZTogaW5zdGFsbC1saWJMVExJQlJB UklFU1xuXG4iOwogICAgICAgIH0KICAgICAgaWYgKCRoYXZlX2x0MikKICAgICAgICB7CiAgICAg ICAgICAkb3V0cHV0X3J1bGVzIC49ICJpbnN0YWxsLSRzaG9ydG5hbWU6IGluc3RhbGwtbm9iYXNl X2xpYkxUTElCUkFSSUVTXG5cbiI7CiAgICAgICAgfQogICAgfQoKICBoYW5kbGVfaW5zdGFsbDsK ICBoYW5kbGVfY2xlYW4gKCRtYWtlZmlsZSk7CiAgaGFuZGxlX2ZhY3RvcmVkX2RlcGVuZGVuY2ll czsKCiAgIyBDb21lcyBsYXN0LCBiZWNhdXNlIGFsbCB0aGUgYWJvdmUgcHJvY2VkdXJlcyBtYXkg aGF2ZQogICMgZGVmaW5lZCBvciBvdmVycmlkZGVuIHZhcmlhYmxlcy4KICAkb3V0cHV0X3ZhcnMg Lj0gb3V0cHV0X3ZhcmlhYmxlczsKCiAgY2hlY2tfdHlwb3M7CgogIGlmICgkZXhpdF9jb2RlICE9 IDApCiAgICB7CiAgICAgIHZlcmIgIm5vdCB3cml0aW5nICRtYWtlZmlsZV9pbiBiZWNhdXNlIG9m IGVhcmxpZXIgZXJyb3JzIjsKICAgICAgcmV0dXJuOwogICAgfQoKICBteSAkYW1fcmVsYXRpdmVf ZGlyID0gZGlybmFtZSAoJG1ha2VmaWxlX2FtKTsKICBta2RpciAoJGFtX3JlbGF0aXZlX2Rpciwg MDc1NSkgaWYgISAtZCAkYW1fcmVsYXRpdmVfZGlyOwoKICAjIFdlIG1ha2Ugc3VyZSB0aGF0ICdh bGw6JyBpcyB0aGUgZmlyc3QgdGFyZ2V0LgogIG15ICRvdXRwdXQgPQogICAgIiRvdXRwdXRfdmFy cyRvdXRwdXRfYWxsJG91dHB1dF9oZWFkZXIkb3V0cHV0X3J1bGVzJG91dHB1dF90cmFpbGVyIjsK CiAgIyBUaGUgLlBPU0lYIHNwZWNpYWwgdGFyZ2V0IG11c3QgYmUgdGhlIGZpcnN0IG5vbi1jb21t ZW50IGxpbmU7CiAgIyBvdGhlcndpc2UsIHRoZSBiZWhhdmlvciBvZiAibWFrZSIgaXMgdW5zcGVj aWZpZWQgYnkgUE9TSVguCiAgaWYgKG9wdGlvbiAncG9zaXgnKQogICAgewogICAgICAkb3V0cHV0 ID1+IHMvXigoIy4qKT9cbikqLy5QT1NJWDpcblxuLzsKICAgIH0KCiAgIyBEZWNpZGUgd2hldGhl ciB3ZSBtdXN0IHVwZGF0ZSB0aGUgb3V0cHV0IGZpbGUgb3Igbm90LgogICMgV2UgaGF2ZSB0byB1 cGRhdGUgaW4gdGhlIGZvbGxvd2luZyBzaXR1YXRpb25zLgogICMgICogJGZvcmNlX2dlbmVyYXRp b24gaXMgc2V0LgogICMgICogYW55IG9mIHRoZSBvdXRwdXQgZGVwZW5kZW5jaWVzIGlzIHlvdW5n ZXIgdGhhbiB0aGUgb3V0cHV0CiAgIyAgKiB0aGUgY29udGVudHMgb2YgdGhlIG91dHB1dCBpcyBk aWZmZXJlbnQgKHRoaXMgY2FuIGhhcHBlbgogICMgICAgaWYgdGhlIHByb2plY3QgaGFzIGJlZW4g cG9wdWxhdGVkIHdpdGggYSBmaWxlIGxpc3RlZCBpbgogICMgICAgQGNvbW1vbl9maWxlcyBzaW5j ZSB0aGUgbGFzdCBydW4pLgogICMgT3V0cHV0J3MgZGVwZW5kZW5jaWVzIGFyZSBzcGxpdCBpbiB0 d28gc2V0czoKICAjICAqIGRlcGVuZGVuY2llcyB3aGljaCBhcmUgYWxzbyBjb25maWd1cmUgZGVw ZW5kZW5jaWVzCiAgIyAgICBUaGVzZSBkbyBub3QgY2hhbmdlIGJldHdlZW4gZWFjaCBNYWtlZmls ZS5hbQogICMgICogb3RoZXIgZGVwZW5kZW5jaWVzLCBzcGVjaWZpYyB0byB0aGUgTWFrZWZpbGUu YW0gYmVpbmcgcHJvY2Vzc2VkCiAgIyAgICAoc3VjaCBhcyB0aGUgTWFrZWZpbGUuYW0gaXRzZWxm LCBvciBhbnkgTWFrZWZpbGUgZnJhZ21lbnQKICAjICAgIGl0IGluY2x1ZGVzKS4KICBteSAkdGlt ZXN0YW1wID0gbXRpbWUgJG1ha2VmaWxlX2luOwogIGlmICghICRmb3JjZV9nZW5lcmF0aW9uCiAg ICAgICYmICRjb25maWd1cmVfZGVwc19ncmVhdGVzdF90aW1lc3RhbXAgPCAkdGltZXN0YW1wCiAg ICAgICYmICRvdXRwdXRfZGVwc19ncmVhdGVzdF90aW1lc3RhbXAgPCAkdGltZXN0YW1wCiAgICAg ICYmICRvdXRwdXQgZXEgY29udGVudHMgKCRtYWtlZmlsZV9pbikpCiAgICB7CiAgICAgIHZlcmIg IiRtYWtlZmlsZV9pbiB1bmNoYW5nZWQiOwogICAgICAjIE5vIG5lZWQgdG8gdXBkYXRlLgogICAg ICByZXR1cm47CiAgICB9CgogIGlmICgtZSAkbWFrZWZpbGVfaW4pCiAgICB7CiAgICAgIHVubGlu ayAoJG1ha2VmaWxlX2luKQoJb3IgZmF0YWwgImNhbm5vdCByZW1vdmUgJG1ha2VmaWxlX2luOiAk ISI7CiAgICB9CgogIG15ICRnbV9maWxlID0gbmV3IEF1dG9tYWtlOjpYRmlsZSAiPiAkbWFrZWZp bGVfaW4iOwogIHZlcmIgImNyZWF0aW5nICRtYWtlZmlsZV9pbiI7CiAgcHJpbnQgJGdtX2ZpbGUg JG91dHB1dDsKfQoKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKCgojIEhlbHBlciBmdW5jdGlvbiBmb3IgdXNhZ2UoKS4Kc3Vi IHByaW50X2F1dG9kaXN0X2ZpbGVzCnsKICBteSBAbGNvbW0gPSB1bmlxIChzb3J0IEBfKTsKCiAg bXkgQGZvdXI7CiAgZm9ybWF0IFVTQUdFX0ZPUk1BVCA9CiAgQDw8PDw8PDw8PDw8PDw8PDwgICBA PDw8PDw8PDw8PDw8PDw8PCAgIEA8PDw8PDw8PDw8PDw8PDw8ICAgQDw8PDw8PDw8PDw8PDw8PDwK ICAkZm91clswXSwgICAgICAgICAgICRmb3VyWzFdLCAgICAgICAgICAgJGZvdXJbMl0sICAgICAg ICAgICAkZm91clszXQouCiAgbG9jYWwgJH4gPSAiVVNBR0VfRk9STUFUIjsKCiAgbXkgJGNvbHMg PSA0OwogIG15ICRyb3dzID0gaW50KEBsY29tbSAvICRjb2xzKTsKICBteSAkcmVzdCA9IEBsY29t bSAlICRjb2xzOwoKICBpZiAoJHJlc3QpCiAgICB7CiAgICAgICRyb3dzKys7CiAgICB9CiAgZWxz ZQogICAgewogICAgICAkcmVzdCA9ICRjb2xzOwogICAgfQoKICBmb3IgKG15ICR5ID0gMDsgJHkg PCAkcm93czsgJHkrKykKICAgIHsKICAgICAgQGZvdXIgPSAoIiIsICIiLCAiIiwgIiIpOwogICAg ICBmb3IgKG15ICR4ID0gMDsgJHggPCAkY29sczsgJHgrKykKICAgICAgICB7CiAgICAgICAgICBs YXN0IGlmICR5ICsgMSA9PSAkcm93cyAmJiAkeCA9PSAkcmVzdDsKCiAgICAgICAgICBteSAkaWR4 ID0gKCgkeCA+ICRyZXN0KQogICAgICAgICAgICAgICA/ICAoJHJvd3MgKiAkcmVzdCArICgkcm93 cyAtIDEpICogKCR4IC0gJHJlc3QpKQogICAgICAgICAgICAgICA6ICgkcm93cyAqICR4KSk7Cgog ICAgICAgICAgJGlkeCArPSAkeTsKICAgICAgICAgICRmb3VyWyR4XSA9ICRsY29tbVskaWR4XTsK ICAgICAgICB9CiAgICAgIHdyaXRlOwogICAgfQp9CgoKc3ViIHVzYWdlICgpCnsKICAgIHByaW50 ICJVc2FnZTogJDAgW09QVElPTl0uLi4gW01ha2VmaWxlXS4uLgoKR2VuZXJhdGUgTWFrZWZpbGUu aW4gZm9yIGNvbmZpZ3VyZSBmcm9tIE1ha2VmaWxlLmFtLgoKT3BlcmF0aW9uIG1vZGVzOgogICAg ICAtLWhlbHAgICAgICAgICAgICAgICBwcmludCB0aGlzIGhlbHAsIHRoZW4gZXhpdAogICAgICAt LXZlcnNpb24gICAgICAgICAgICBwcmludCB2ZXJzaW9uIG51bWJlciwgdGhlbiBleGl0CiAgLXYs IC0tdmVyYm9zZSAgICAgICAgICAgIHZlcmJvc2VseSBsaXN0IGZpbGVzIHByb2Nlc3NlZAogICAg ICAtLW5vLWZvcmNlICAgICAgICAgICBvbmx5IHVwZGF0ZSBNYWtlZmlsZS5pbidzIHRoYXQgYXJl IG91dCBvZiBkYXRlCiAgLVcsIC0td2FybmluZ3M9Q0FURUdPUlkgIHJlcG9ydCB0aGUgd2Fybmlu Z3MgZmFsbGluZyBpbiBDQVRFR09SWQoKRGVwZW5kZW5jeSB0cmFja2luZzoKICAtaSwgLS1pZ25v cmUtZGVwcyAgICAgIGRpc2FibGUgZGVwZW5kZW5jeSB0cmFja2luZyBjb2RlCiAgICAgIC0taW5j bHVkZS1kZXBzICAgICBlbmFibGUgZGVwZW5kZW5jeSB0cmFja2luZyBjb2RlCgpGbGF2b3JzOgog ICAgICAtLWZvcmVpZ24gICAgICAgICAgc2V0IHN0cmljdG5lc3MgdG8gZm9yZWlnbgogICAgICAt LWduaXRzICAgICAgICAgICAgc2V0IHN0cmljdG5lc3MgdG8gZ25pdHMKICAgICAgLS1nbnUgICAg ICAgICAgICAgIHNldCBzdHJpY3RuZXNzIHRvIGdudQoKTGlicmFyeSBmaWxlczoKICAtYSwgLS1h ZGQtbWlzc2luZyAgICAgIGFkZCBtaXNzaW5nIHN0YW5kYXJkIGZpbGVzIHRvIHBhY2thZ2UKICAg ICAgLS1saWJkaXI9RElSICAgICAgIHNldCBkaXJlY3Rvcnkgc3RvcmluZyBsaWJyYXJ5IGZpbGVz CiAgICAgIC0tcHJpbnQtbGliZGlyICAgICBwcmludCBkaXJlY3Rvcnkgc3RvcmluZyBsaWJyYXJ5 IGZpbGVzCiAgLWMsIC0tY29weSAgICAgICAgICAgICB3aXRoIC1hLCBjb3B5IG1pc3NpbmcgZmls ZXMgKGRlZmF1bHQgaXMgc3ltbGluaykKICAtZiwgLS1mb3JjZS1taXNzaW5nICAgIGZvcmNlIHVw ZGF0ZSBvZiBzdGFuZGFyZCBmaWxlcwoKIjsKICAgIHByaW50IEF1dG9tYWtlOjpDaGFubmVsRGVm czo6dXNhZ2UgKCksICJcbiI7CgogICAgcHJpbnQgIlxuRmlsZXMgYXV0b21hdGljYWxseSBkaXN0 cmlidXRlZCBpZiBmb3VuZCAiIC4KICAgICAgICAgICIoYWx3YXlzKTpcbiI7CiAgICBwcmludF9h dXRvZGlzdF9maWxlcyBAY29tbW9uX2ZpbGVzOwogICAgcHJpbnQgIlxuRmlsZXMgYXV0b21hdGlj YWxseSBkaXN0cmlidXRlZCBpZiBmb3VuZCAiIC4KICAgICAgICAgICIoYXMgLm1kIGlmIG5lZWRl ZCk6XG4iOwogICAgcHJpbnRfYXV0b2Rpc3RfZmlsZXMgKG1hcCB7ICIke199Wy5tZF0iIH0gQHRv cGxldmVsbWRfb2spOwogICAgcHJpbnQgIlxuRmlsZXMgYXV0b21hdGljYWxseSBkaXN0cmlidXRl ZCBpZiBmb3VuZCAiIC4KICAgICAgICAgICIodW5kZXIgY2VydGFpbiBjb25kaXRpb25zKTpcbiI7 CiAgICBwcmludF9hdXRvZGlzdF9maWxlcyBAY29tbW9uX3NvbWV0aW1lcywgJ1JFQURNRS1hbHBo YVsubWRdJzsKCiAgICBwcmludCAnClJlcG9ydCBidWdzIHRvIDxidWctYXV0b21ha2VAZ251Lm9y Zz4uCkdOVSBBdXRvbWFrZSBob21lIHBhZ2U6IDxodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJl L2F1dG9tYWtlLz4uCkdlbmVyYWwgaGVscCB1c2luZyBHTlUgc29mdHdhcmU6IDxodHRwczovL3d3 dy5nbnUub3JnL2dldGhlbHAvPi4KJzsKCiAgICAjIC0taGVscCBhbHdheXMgcmV0dXJucyAwIHBl ciBHTlUgc3RhbmRhcmRzLgogICAgZXhpdCAwOwp9CgoKc3ViIHZlcnNpb24gKCkKewogIHByaW50 ICJhdXRvbWFrZSAoR05VICRQQUNLQUdFKSAkVkVSU0lPTlxuIjsKICBwcmludCAiRmVhdHVyZXM6 IHN1YnNlY29uZC1tdGltZVxuIgogICAgICBpZiAkQXV0b21ha2U6OkZpbGVVdGlsczo6c3Vic2Vj b25kX210aW1lCiAgICAgICAgICYmICRBdXRvbWFrZTo6RmlsZVV0aWxzOjpzdWJzZWNvbmRfbXRp bWU7ICMgYXZvaWQgIm9uY2UiIHdhcm5pbmcKICBwcmludCAiXG5Db3B5cmlnaHQgKEMpICRSRUxF QVNFX1lFQVIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuIjsKICBwcmludCAnCkxpY2Vu c2UgR1BMdjIrOiBHTlUgR1BMIHZlcnNpb24gMiBvciBsYXRlcgogIDxodHRwczovL2dudS5vcmcv bGljZW5zZXMvZ3BsLTIuMC5odG1sPgpUaGlzIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBhcmUgZnJl ZSB0byBjaGFuZ2UgYW5kIHJlZGlzdHJpYnV0ZSBpdC4KVGhlcmUgaXMgTk8gV0FSUkFOVFksIHRv IHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdy4KCldyaXR0ZW4gYnkgVG9tIFRyb21leSA8dHJv bWV5QHJlZGhhdC5jb20+CiAgICAgICBhbmQgQWxleGFuZHJlIER1cmV0LUx1dHogPGFkbEBnbnUu b3JnPi4KJzsKICAjIC0tdmVyc2lvbiBhbHdheXMgcmV0dXJucyAwIHBlciBHTlUgc3RhbmRhcmRz LgogIGV4aXQgMDsKfQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKIyBQYXJzZSBjb21tYW5kIGxpbmUuCnN1YiBwYXJzZV9h cmd1bWVudHMgKCkKewogIG15ICRzdHJpY3QgPSAnZ251JzsKICBteSAkaWdub3JlX2RlcHMgPSAw OwogIG15IEB3YXJuaW5ncyA9ICgpOwoKICBteSAlY2xpX29wdGlvbnMgPQogICAgKAogICAgICd2 ZXJzaW9uJyA9PiBcJnZlcnNpb24sCiAgICAgJ2hlbHAnICAgID0+IFwmdXNhZ2UsCiAgICAgJ2xp YmRpcj1zJwk9PiBcJGxpYmRpciwKICAgICAncHJpbnQtbGliZGlyJyAgICAgPT4gc3ViIHsgcHJp bnQgIiRsaWJkaXJcbiI7IGV4aXQgMDsgfSwKICAgICAnZ251JwkJPT4gc3ViIHsgJHN0cmljdCA9 ICdnbnUnOyB9LAogICAgICdnbml0cycJCT0+IHN1YiB7ICRzdHJpY3QgPSAnZ25pdHMnOyB9LAog ICAgICdmb3JlaWduJwkJPT4gc3ViIHsgJHN0cmljdCA9ICdmb3JlaWduJzsgfSwKICAgICAnaW5j bHVkZS1kZXBzJwk9PiBzdWIgeyAkaWdub3JlX2RlcHMgPSAwOyB9LAogICAgICdpfGlnbm9yZS1k ZXBzJwk9PiBzdWIgeyAkaWdub3JlX2RlcHMgPSAxOyB9LAogICAgICduby1mb3JjZScJPT4gc3Vi IHsgJGZvcmNlX2dlbmVyYXRpb24gPSAwOyB9LAogICAgICdmfGZvcmNlLW1pc3NpbmcnICA9PiBc JGZvcmNlX21pc3NpbmcsCiAgICAgJ2F8YWRkLW1pc3NpbmcnCT0+IFwkYWRkX21pc3NpbmcsCiAg ICAgJ2N8Y29weScJCT0+IFwkY29weV9taXNzaW5nLAogICAgICd2fHZlcmJvc2UnCT0+IHN1YiB7 IHNldHVwX2NoYW5uZWwgJ3ZlcmInLCBzaWxlbnQgPT4gMDsgfSwKICAgICAnV3x3YXJuaW5ncz1z JyAgICAgPT4gXEB3YXJuaW5ncywKICAgICApOwoKICB1c2UgQXV0b21ha2U6OkdldG9wdCAoKTsK ICBBdXRvbWFrZTo6R2V0b3B0OjpwYXJzZV9vcHRpb25zICVjbGlfb3B0aW9uczsKCiAgc2V0X3N0 cmljdG5lc3MgKCRzdHJpY3QpOwogIG15ICRjbGlfd2hlcmUgPSBuZXcgQXV0b21ha2U6OkxvY2F0 aW9uOwogIHNldF9nbG9iYWxfb3B0aW9uICgnbm8tZGVwZW5kZW5jaWVzJywgJGNsaV93aGVyZSkg aWYgJGlnbm9yZV9kZXBzOwogIHBhcnNlX3dhcm5pbmdzIEB3YXJuaW5nczsKCiAgcmV0dXJuIHVu bGVzcyBAQVJHVjsKCiAgbXkgJGVycnNwZWMgPSAwOwogIGZvcmVhY2ggbXkgJGFyZyAoQEFSR1Yp CiAgICB7CiAgICAgIGZhdGFsICgiZW1wdHkgYXJndW1lbnRcblRyeSAnJDAgLS1oZWxwJyBmb3Ig bW9yZSBpbmZvcm1hdGlvbiIpCglpZiAoJGFyZyBlcSAnJyk7CgogICAgICAjIEhhbmRsZSAkbG9j YWw6JGlucHV0IHN5bnRheC4KICAgICAgbXkgKCRsb2NhbCwgQHJlc3QpID0gc3BsaXQgKC86Lywg JGFyZyk7CiAgICAgIEByZXN0ID0gKCIkbG9jYWwuaW4iLCkgdW5sZXNzIEByZXN0OwogICAgICBt eSAkaW5wdXQgPSBsb2NhdGVfYW0gQHJlc3Q7CiAgICAgIGlmICgkaW5wdXQpCgl7CgkgIHB1c2gg QGlucHV0X2ZpbGVzLCAkaW5wdXQ7CgkgICRvdXRwdXRfZmlsZXN7JGlucHV0fSA9IGpvaW4gKCc6 JywgKCRsb2NhbCwgQHJlc3QpKTsKCX0KICAgICAgZWxzZQoJewoJICBlcnJvciAibm8gQXV0b21h a2UgaW5wdXQgZmlsZSBmb3VuZCBmb3IgJyRhcmcnIjsKCSAgJGVycnNwZWMgPSAxOwoJfQogICAg fQogIGZhdGFsICJubyBpbnB1dCBmaWxlIGZvdW5kIGFtb25nIHN1cHBsaWVkIGFyZ3VtZW50cyIK ICAgIGlmICRlcnJzcGVjICYmICEgQGlucHV0X2ZpbGVzOwp9CgoKIyBoYW5kbGVfbWFrZWZpbGUg KCRNQUtFRklMRSkKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIGhhbmRsZV9tYWtl ZmlsZQp7CiAgbXkgKCRmaWxlKSA9ICBAXzsKICAoJGFtX2ZpbGUgPSAkZmlsZSkgPX4gcy9cLmlu JC8vOwogIGlmICghIC1mICgkYW1fZmlsZSAuICcuYW0nKSkKICAgIHsKICAgICAgZXJyb3IgIick YW1fZmlsZS5hbScgZG9lcyBub3QgZXhpc3QiOwogICAgfQogIGVsc2UKICAgIHsKICAgICAgIyBB bnkgd2FybmluZyBzZXR0aW5nIG5vdyBsb2NhbCB0byB0aGlzIE1ha2VmaWxlLmFtLgogICAgICBk dXBfY2hhbm5lbF9zZXR1cDsKCiAgICAgIGdlbmVyYXRlX21ha2VmaWxlICgkYW1fZmlsZSAuICcu YW0nLCAkZmlsZSk7CgogICAgICAjIEJhY2sgb3V0IGFueSB3YXJuaW5nIHNldHRpbmcuCiAgICAg IGRyb3BfY2hhbm5lbF9zZXR1cDsKICAgIH0KfQoKIyBEZWFsIHdpdGggYWxsIG1ha2VmaWxlcywg d2l0aG91dCB0aHJlYWRzLgpzdWIgaGFuZGxlX21ha2VmaWxlc19zZXJpYWwgKCkKewogIGZvcmVh Y2ggbXkgJGZpbGUgKEBpbnB1dF9maWxlcykKICAgIHsKICAgICAgaGFuZGxlX21ha2VmaWxlICgk ZmlsZSk7CiAgICB9Cn0KCiMgTG9naWMgZm9yIGRlY2lkaW5nIGhvdyBtYW55IHdvcmtlciB0aHJl YWRzIHRvIHVzZS4Kc3ViIGdldF9udW1iZXJfb2ZfdGhyZWFkcyAoKQp7CiAgbXkgJG50aHJlYWRz ID0gJEVOVnsnQVVUT01BS0VfSk9CUyd9IHx8IDA7CgogICRudGhyZWFkcyA9IDAKICAgIHVubGVz cyAkbnRocmVhZHMgPX4gL15bMC05XSskLzsKCiAgIyBJdCBkb2Vzbid0IG1ha2Ugc2Vuc2UgdG8g dXNlIG1vcmUgdGhyZWFkcyB0aGFuIG1ha2VmaWxlcywKICBteSAkbWF4X3RocmVhZHMgPSBAaW5w dXRfZmlsZXM7CgogIGlmICgkbnRocmVhZHMgPiAkbWF4X3RocmVhZHMpCiAgICB7CiAgICAgICRu dGhyZWFkcyA9ICRtYXhfdGhyZWFkczsKICAgIH0KICByZXR1cm4gJG50aHJlYWRzOwp9CgojIGhh bmRsZV9tYWtlZmlsZXNfdGhyZWFkZWQgKCROVEhSRUFEUykKIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiMgRGVhbCB3aXRoIGFsbCBtYWtlZmlsZXMsIHVzaW5nIHRocmVh ZHMuICBUaGUgZ2VuZXJhbCBzdHJhdGVneSBpcyB0bwojIHNwYXduIE5USFJFQURTIHdvcmtlciB0 aHJlYWRzLCBkaXNwYXRjaCBtYWtlZmlsZXMgdG8gdGhlbSwgYW5kIGxldCB0aGUKIyB3b3JrZXIg dGhyZWFkcyBwdXNoIGJhY2sgZXZlcnl0aGluZyB0aGF0IG5lZWRzIHNlcmlhbGl6YXRpb246CiMg KiB3YXJuaW5nIGFuZCAobm9ybWFsKSBlcnJvciBtZXNzYWdlcywgZm9yIHN0YWJsZSBzdGRlcnIg b3V0cHV0CiMgICBvcmRlciBhbmQgY29udGVudCAoYXZvaWRpbmcgZHVwbGljYXRlcywgZm9yIGV4 YW1wbGUpLAojICogcmFjZXMgd2hlbiBpbnN0YWxsaW5nIGF1eCBmaWxlcyAoYW5kIHJlc3BlY3Rp dmUgbWVzc2FnZXMpLAojICogcmFjZXMgd2hlbiBjb2xsZWN0aW5nIGF1eCBmaWxlcyBmb3IgZGlz dHJpYnV0aW9uLgojCiMgVGhlIGxhdHRlciByZXF1aXJlcyB0aGF0IHRoZSBtYWtlZmlsZSB0aGF0 IGRlYWxzIHdpdGggdGhlIGF1eCBkaXIKIyBmaWxlcyBiZSBoYW5kbGVkIGxhc3QsIGRvbmUgYnkg dGhlIG1hc3RlciB0aHJlYWQuCnN1YiBoYW5kbGVfbWFrZWZpbGVzX3RocmVhZGVkCnsKICBteSAo JG50aHJlYWRzKSA9IEBfOwoKICAjIFRoZSBmaWxlIHF1ZXVlIGRpc3RyaWJ1dGVzIGFsbCBtYWtl ZmlsZXMsIHRoZSBtZXNzYWdlIHF1ZXVlcwogICMgY29sbGVjdCBhbGwgc2VyaWFsaXphdGlvbnMg bmVlZGVkIGZvciByZXNwZWN0aXZlIGZpbGVzLgogIG15ICRmaWxlX3F1ZXVlID0gVGhyZWFkOjpR dWV1ZS0+bmV3OwogIG15ICVtc2dfcXVldWVzOwogIGZvcmVhY2ggbXkgJGZpbGUgKEBpbnB1dF9m aWxlcykKICAgIHsKICAgICAgJG1zZ19xdWV1ZXN7JGZpbGV9ID0gVGhyZWFkOjpRdWV1ZS0+bmV3 OwogICAgfQoKICB2ZXJiICJzcGF3bmluZyAkbnRocmVhZHMgd29ya2VyIHRocmVhZHMiOwogIG15 IEB0aHJlYWRzID0gKDEgLi4gJG50aHJlYWRzKTsKICBmb3JlYWNoIG15ICR0IChAdGhyZWFkcykK ICAgIHsKICAgICAgJHQgPSB0aHJlYWRzLT5uZXcgKHN1YgoJewoJICB3aGlsZSAobXkgJGZpbGUg PSAkZmlsZV9xdWV1ZS0+ZGVxdWV1ZSkKCSAgICB7CgkgICAgICB2ZXJiICJoYW5kbGluZyAkZmls ZSI7CgkgICAgICBteSAkcXVldWUgPSAkbXNnX3F1ZXVlc3skZmlsZX07CgkgICAgICBzZXR1cF9j aGFubmVsX3F1ZXVlICgkcXVldWUsIFFVRVVFX01FU1NBR0UpOwoJICAgICAgJHJlcXVpcmVkX2Nv bmZfZmlsZV9xdWV1ZSA9ICRxdWV1ZTsKCSAgICAgIGhhbmRsZV9tYWtlZmlsZSAoJGZpbGUpOwoJ ICAgICAgJHF1ZXVlLT5lbnF1ZXVlICh1bmRlZik7CgkgICAgICBzZXR1cF9jaGFubmVsX3F1ZXVl ICh1bmRlZiwgdW5kZWYpOwoJICAgICAgJHJlcXVpcmVkX2NvbmZfZmlsZV9xdWV1ZSA9IHVuZGVm OwoJICAgIH0KCSAgcmV0dXJuICRleGl0X2NvZGU7Cgl9KTsKICAgIH0KCiAgIyBRdWV1ZSBhbGwg bWFrZWZpbGVzLgogIHZlcmIgInF1ZXVpbmcgIiAuIEBpbnB1dF9maWxlcyAuICIgaW5wdXQgZmls ZXMiOwogICRmaWxlX3F1ZXVlLT5lbnF1ZXVlIChAaW5wdXRfZmlsZXMsICh1bmRlZikgeCBAdGhy ZWFkcyk7CgogICMgQ29sbGVjdCBhbmQgcHJvY2VzcyBzZXJpYWxpemF0aW9ucy4KICBmb3JlYWNo IG15ICRmaWxlIChAaW5wdXRfZmlsZXMpCiAgICB7CiAgICAgIHZlcmIgImRlcXVldWluZyBtZXNz YWdlcyBmb3IgIiAuICRmaWxlOwogICAgICByZXNldF9sb2NhbF9kdXBsaWNhdGVzICgpOwogICAg ICBteSAkcXVldWUgPSAkbXNnX3F1ZXVlc3skZmlsZX07CiAgICAgIHdoaWxlIChteSAka2V5ID0g JHF1ZXVlLT5kZXF1ZXVlKQoJewoJICBpZiAoJGtleSBlcSBRVUVVRV9NRVNTQUdFKQoJICAgIHsK CSAgICAgIHBvcF9jaGFubmVsX3F1ZXVlICgkcXVldWUpOwoJICAgIH0KCSAgZWxzaWYgKCRrZXkg ZXEgUVVFVUVfQ09ORl9GSUxFKQoJICAgIHsKCSAgICAgIHJlcXVpcmVfcXVldWVkX2ZpbGVfY2hl Y2tfb3JfY29weSAoJHF1ZXVlKTsKCSAgICB9CgkgIGVsc2UKCSAgICB7CgkgICAgICBwcm9nX2Vy cm9yICJ1bmV4cGVjdGVkIGtleSAka2V5IjsKCSAgICB9Cgl9CiAgICB9CgogIGZvcmVhY2ggbXkg JHQgKEB0aHJlYWRzKQogICAgewogICAgICBteSBAZXhpdF90aHJlYWQgPSAkdC0+am9pbjsKICAg ICAgJGV4aXRfY29kZSA9ICRleGl0X3RocmVhZFswXQoJaWYgKCRleGl0X3RocmVhZFswXSA+ICRl eGl0X2NvZGUpOwogICAgfQp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgojIFBhcnNlIHRoZSBXQVJOSU5HUyBlbnZpcm9u bWVudCB2YXJpYWJsZS4KcGFyc2VfV0FSTklOR1M7CgojIFBhcnNlIGNvbW1hbmQgbGluZS4KcGFy c2VfYXJndW1lbnRzOwoKJGNvbmZpZ3VyZV9hYyA9IHJlcXVpcmVfY29uZmlndXJlX2FjOwoKIyBE byBjb25maWd1cmUuYWMgc2NhbiBvbmx5IG9uY2UuCnNjYW5fYXV0b2NvbmZfZmlsZXM7CgppZiAo ISBAaW5wdXRfZmlsZXMpCiAgewogICAgbXkgJG1zZyA9ICcnOwogICAgJG1zZyA9ICJcbkRpZCB5 b3UgZm9yZ2V0IEFDX0NPTkZJR19GSUxFUyhbTWFrZWZpbGVdKSBpbiAkY29uZmlndXJlX2FjPyIK ICAgICAgaWYgLWYgJ01ha2VmaWxlLmFtJzsKICAgIGZhdGFsICgibm8gJ01ha2VmaWxlLmFtJyBm b3VuZCBmb3IgYW55IGNvbmZpZ3VyZSBvdXRwdXQkbXNnIik7CiAgfQoKbXkgJG50aHJlYWRzID0g Z2V0X251bWJlcl9vZl90aHJlYWRzICgpOwoKaWYgKCRwZXJsX3RocmVhZHMgJiYgJG50aHJlYWRz ID49IDEpCiAgewogICAgaGFuZGxlX21ha2VmaWxlc190aHJlYWRlZCAoJG50aHJlYWRzKTsKICB9 CmVsc2UKICB7CiAgICBoYW5kbGVfbWFrZWZpbGVzX3NlcmlhbCAoKTsKICB9CgpleGl0ICRleGl0 X2NvZGU7CisgdGVzdCAwIC1lcSAwCisgX2FtX2V4aXQgNzcKKyBzZXQgK2UKKyB0ZXN0IDc3ID0g NzcKKyBhbV9fdGVzdF9za2lwcGVkPXllcworIGV4aXQgNzcKKyBleGl0IDc3CisgYW1fZXhpdF90 cmFwIDc3CisgZXhpdF9zdGF0dXM9NzcKKyBzZXQgK2UKKyBjZCAvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZQorIHRlc3Qgbm9uZSA9IHRhcAorIGNhc2UgJGFtX2V4cGxpY2l0X3NraXBzIGluCisgdGVz dCA3NyAtZXEgMAorIGtlZXBfdGVzdGRpcnM9eWVzCisgYW1fa2VlcGluZ190ZXN0ZGlycworIGNh c2UgJGtlZXBfdGVzdGRpcnMgaW4KKyByZXR1cm4gMAorIHNldCAreApTS0lQIHQvZ2V0LXN5c2Nv bmYuc2ggKGV4aXQgc3RhdHVzOiA3NykKClhGQUlMOiB0L3BtL0NvbmQyCj09PT09PT09PT09PT09 PT09CgonQXV0b21ha2U6OkNvbmRpdGlvbj1IQVNIKDB4YzRjYzU2MzYwKScgaXMgYSByZWZlcmVu Y2UsIGV4cGVjdGVkIGEgc3RyaW5nIGF0IC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL2xpYi9BdXRv bWFrZS9Db25kaXRpb24ucG0gbGluZSAxODYuCglBdXRvbWFrZTo6Q29uZGl0aW9uOjpuZXcoIkF1 dG9tYWtlOjpDb25kaXRpb24iLCBBdXRvbWFrZTo6Q29uZGl0aW9uPUhBU0goMHhjNGNjNTYzNjAp KSBjYWxsZWQgYXQgLi90L3BtL0NvbmQyLnBsIGxpbmUgMjIKWEZBSUwgdC9wbS9Db25kMi5wbCAo ZXhpdCBzdGF0dXM6IDI1NSkKClhGQUlMOiB0L3BtL0NvbmQzCj09PT09PT09PT09PT09PT09Cgon QXV0b21ha2U6OkNvbmRpdGlvbj1IQVNIKDB4MTAyZmM5NjY4KScgZG9lcyBub3QgbG9vayBsaWtl IGEgY29uZGl0aW9uIGF0IC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL2xpYi9BdXRvbWFrZS9Db25k aXRpb24ucG0gbGluZSAxODguCglBdXRvbWFrZTo6Q29uZGl0aW9uOjpuZXcoIkF1dG9tYWtlOjpD b25kaXRpb24iLCAiQXV0b21ha2U6OkNvbmRpdGlvbj1IQVNIKDB4MTAyZmM5NjY4KSIpIGNhbGxl ZCBhdCAuL3QvcG0vQ29uZDMucGwgbGluZSAyMgpYRkFJTCB0L3BtL0NvbmQzLnBsIChleGl0IHN0 YXR1czogMjU1KQoKWEZBSUw6IHQvcG0vRGlzakNvbjIKPT09PT09PT09PT09PT09PT09PT0KCidB dXRvbWFrZTo6RGlzakNvbmRpdGlvbnM9SEFTSCgweDEwMTRjZDc0MCknIGlzbid0IGFuIEF1dG9t YWtlOjpDb25kaXRpb24gYXQgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvbGliL0F1dG9tYWtlL0Rp c2pDb25kaXRpb25zLnBtIGxpbmUgMTUxLgoJQXV0b21ha2U6OkRpc2pDb25kaXRpb25zOjpuZXco IkF1dG9tYWtlOjpEaXNqQ29uZGl0aW9ucyIsIEF1dG9tYWtlOjpEaXNqQ29uZGl0aW9ucz1IQVNI KDB4MTAxNGNkNzQwKSkgY2FsbGVkIGF0IC4vdC9wbS9EaXNqQ29uMi5wbCBsaW5lIDI0ClhGQUlM IHQvcG0vRGlzakNvbjIucGwgKGV4aXQgc3RhdHVzOiAyNTUpCgpYRkFJTDogdC9wbS9EaXNqQ29u Mwo9PT09PT09PT09PT09PT09PT09PQoKJ0F1dG9tYWtlOjpDb25kaXRpb249SEFTSCgweGI2MGMw NDlhOCknIGlzbid0IGEgcmVmZXJlbmNlIGF0IC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL2xpYi9B dXRvbWFrZS9EaXNqQ29uZGl0aW9ucy5wbSBsaW5lIDE1MC4KCUF1dG9tYWtlOjpEaXNqQ29uZGl0 aW9uczo6bmV3KCJBdXRvbWFrZTo6RGlzakNvbmRpdGlvbnMiLCAiQXV0b21ha2U6OkNvbmRpdGlv bj1IQVNIKDB4YjYwYzA0OWE4KSIpIGNhbGxlZCBhdCAuL3QvcG0vRGlzakNvbjMucGwgbGluZSAy MwpYRkFJTCB0L3BtL0Rpc2pDb24zLnBsIChleGl0IHN0YXR1czogMjU1KQoKWEZBSUw6IHQvcG0v VmVyc2lvbjIKPT09PT09PT09PT09PT09PT09PT0KClZlcnNpb24yLnBsOiBlcnJvcjogdmVyc2lv biBpcyBpbmNvcnJlY3Q6IApWZXJzaW9uMi5wbDogUGxlYXNlIGNvbnRhY3QgPGJ1Zy1hdXRvbWFr ZUBnbnUub3JnPi4KIGF0IC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL2xpYi9BdXRvbWFrZS9DaGFu bmVscy5wbSBsaW5lIDY1OC4KCUF1dG9tYWtlOjpDaGFubmVsczo6bXNnKCJhdXRvbWFrZSIsICIi LCAidmVyc2lvbiBpcyBpbmNvcnJlY3Q6ICIpIGNhbGxlZCBhdCAvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS9saWIvQXV0b21ha2UvQ2hhbm5lbERlZnMucG0gbGluZSAyMzAKCUF1dG9tYWtlOjpDaGFu bmVsRGVmczo6cHJvZ19lcnJvcigidmVyc2lvbiBpcyBpbmNvcnJlY3Q6ICIpIGNhbGxlZCBhdCAv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS9saWIvQXV0b21ha2UvVmVyc2lvbi5wbSBsaW5lIDE0NQoJ QXV0b21ha2U6OlZlcnNpb246OmNoZWNrKCIiLCAiMS4yLjMiKSBjYWxsZWQgYXQgLi90L3BtL1Zl cnNpb24yLnBsIGxpbmUgMjAKWEZBSUwgdC9wbS9WZXJzaW9uMi5wbCAoZXhpdCBzdGF0dXM6IDI1 NSkKClhGQUlMOiB0L3BtL1ZlcnNpb24zCj09PT09PT09PT09PT09PT09PT09CgpWZXJzaW9uMy5w bDogZXJyb3I6IHJlcXVpcmVkIHZlcnNpb24gaXMgaW5jb3JyZWN0OiAKVmVyc2lvbjMucGw6IFBs ZWFzZSBjb250YWN0IDxidWctYXV0b21ha2VAZ251Lm9yZz4uCiBhdCAvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS9saWIvQXV0b21ha2UvQ2hhbm5lbHMucG0gbGluZSA2NTguCglBdXRvbWFrZTo6Q2hh bm5lbHM6Om1zZygiYXV0b21ha2UiLCAiIiwgInJlcXVpcmVkIHZlcnNpb24gaXMgaW5jb3JyZWN0 OiAiKSBjYWxsZWQgYXQgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvbGliL0F1dG9tYWtlL0NoYW5u ZWxEZWZzLnBtIGxpbmUgMjMwCglBdXRvbWFrZTo6Q2hhbm5lbERlZnM6OnByb2dfZXJyb3IoInJl cXVpcmVkIHZlcnNpb24gaXMgaW5jb3JyZWN0OiAiKSBjYWxsZWQgYXQgL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvbGliL0F1dG9tYWtlL1ZlcnNpb24ucG0gbGluZSAxNTAKCUF1dG9tYWtlOjpWZXJz aW9uOjpjaGVjaygiMS4yLjMiLCAiIikgY2FsbGVkIGF0IC4vdC9wbS9WZXJzaW9uMy5wbCBsaW5l IDIwClhGQUlMIHQvcG0vVmVyc2lvbjMucGwgKGV4aXQgc3RhdHVzOiAyNTUpCgpQQVNTOiB0L2lu c3RzcGMKPT09PT09PT09PT09PT09CgojW3N0ZGVycl0rKyBwd2QKI1tzdGRlcnJdKyBhbGxfdGVz dF9uYW1lc19saXN0PQphbS10ZXN0LWxpYi5zaDogUnVubmluZyBmcm9tIGluc3RhbGxjaGVjazog bm8KI1tzdGRlcnJdKyBidWlsZGRpcl94ZmFpbHM9CmFtLXRlc3QtbGliLnNoOiBUZXN0IFByb3Rv Y29sOiB0YXAKI1tzdGRlcnJdKyBkZXN0ZGlyX3hmYWlscz0KI1tzdGRlcnJdKyBicz0kJ1xiJwoj W3N0ZGVycl0rIGNyPSQnXHInCiNbc3RkZXJyXSsgZmY9JCdcZicKI1tzdGRlcnJdKyBodD0nCScK I1tzdGRlcnJdKyBsZj0nCiNbc3RkZXJyXScKI1tzdGRlcnJdKyBkZWY9ZGVmaW5lX3Byb2JsZW1h dGljX3N0cmluZwphbS10ZXN0LWxpYi5zaDogUEFUSCA9IC91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L2JpbjovdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2F4Oi90bXAvZ251LWxpbmtzOi46L1VzZXJz L2pvaG5zb25lL2Jpbi9vc3g6L1VzZXJzL2pvaG5zb25lL2JpbjovdXNyL2xvY2FsL2JpbjovU3lz dGVtL0NyeXB0ZXhlcy9BcHAvdXNyL2JpbjovdXNyL2JpbjovYmluOi91c3Ivc2Jpbjovc2Jpbjov dmFyL3J1bi9jb20uYXBwbGUuc2VjdXJpdHkuY3J5cHRleGQvY29kZXguc3lzdGVtL2Jvb3RzdHJh cC91c3IvbG9jYWwvYmluOi92YXIvcnVuL2NvbS5hcHBsZS5zZWN1cml0eS5jcnlwdGV4ZC9jb2Rl eC5zeXN0ZW0vYm9vdHN0cmFwL3Vzci9iaW46L3Zhci9ydW4vY29tLmFwcGxlLnNlY3VyaXR5LmNy eXB0ZXhkL2NvZGV4LnN5c3RlbS9ib290c3RyYXAvdXNyL2FwcGxlaW50ZXJuYWwvYmluOi9wa2cv ZW52L2dsb2JhbC9iaW46L29wdC9YMTEvYmluOi9MaWJyYXJ5L0FwcGxlL3Vzci9iaW46L0xpYnJh cnkvVGVYL3RleGJpbjouOi9Vc2Vycy9qb2huc29uZS9iaW4vb3N4Oi9Vc2Vycy9qb2huc29uZS9i aW4KL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpcgojW3N0ZGVycl0rIGRlZmlu ZV9wcm9ibGVtYXRpY19zdHJpbmcgc3F1b3RlICcnXCcnJyBmYWlsLWJ1aWxkZGlyIGZhaWwtZGVz dGRpcgojW3N0ZGVycl0rIHRzdD1zcXVvdGUKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGV2 YWwgJ2luc3RzcGNfX3NxdW90ZT0kMScKI1tzdGRlcnJdKysgaW5zdHNwY19fc3F1b3RlPScnXCcn JwojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgYWxsX3Rlc3RfbmFtZXNfbGlzdD0nIHNxdW90 ZScKI1tzdGRlcnJdKyBpc19pbl9saXN0IGZhaWwtYnVpbGRkaXIgZmFpbC1idWlsZGRpciBmYWls LWRlc3RkaXIKI1tzdGRlcnJdKyBpdGVtPWZhaWwtYnVpbGRkaXIKI1tzdGRlcnJdKyBzaGlmdAoj W3N0ZGVycl0rIGNhc2UgIiAkKiAiIGluCiNbc3RkZXJyXSsgcmV0dXJuIDAKI1tzdGRlcnJdKyBi dWlsZGRpcl94ZmFpbHM9JyBzcXVvdGUnCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBmYWlsLWRlc3Rk aXIgZmFpbC1idWlsZGRpciBmYWlsLWRlc3RkaXIKI1tzdGRlcnJdKyBpdGVtPWZhaWwtZGVzdGRp cgojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyBy ZXR1cm4gMAojW3N0ZGVycl0rIGRlc3RkaXJfeGZhaWxzPScgc3F1b3RlJwojW3N0ZGVycl0rIGRl ZmluZV9wcm9ibGVtYXRpY19zdHJpbmcgZHF1b3RlICciJyBmYWlsLWJ1aWxkZGlyIGZhaWwtZGVz dGRpcgojW3N0ZGVycl0rIHRzdD1kcXVvdGUKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGV2 YWwgJ2luc3RzcGNfX2RxdW90ZT0kMScKI1tzdGRlcnJdKysgaW5zdHNwY19fZHF1b3RlPSciJwoj W3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgYWxsX3Rlc3RfbmFtZXNfbGlzdD0nIHNxdW90ZSBk cXVvdGUnCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBmYWlsLWJ1aWxkZGlyIGZhaWwtYnVpbGRkaXIg ZmFpbC1kZXN0ZGlyCiNbc3RkZXJyXSsgaXRlbT1mYWlsLWJ1aWxkZGlyCiNbc3RkZXJyXSsgc2hp ZnQKI1tzdGRlcnJdKyBjYXNlICIgJCogIiBpbgojW3N0ZGVycl0rIHJldHVybiAwCiNbc3RkZXJy XSsgYnVpbGRkaXJfeGZhaWxzPScgc3F1b3RlIGRxdW90ZScKI1tzdGRlcnJdKyBpc19pbl9saXN0 IGZhaWwtZGVzdGRpciBmYWlsLWJ1aWxkZGlyIGZhaWwtZGVzdGRpcgojW3N0ZGVycl0rIGl0ZW09 ZmFpbC1kZXN0ZGlyCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBjYXNlICIgJCogIiBpbgoj W3N0ZGVycl0rIHJldHVybiAwCiNbc3RkZXJyXSsgZGVzdGRpcl94ZmFpbHM9JyBzcXVvdGUgZHF1 b3RlJwojW3N0ZGVycl0rIGRlZmluZV9wcm9ibGVtYXRpY19zdHJpbmcgYnF1b3RlICdgJyBmYWls LWJ1aWxkZGlyIGZhaWwtZGVzdGRpcgojW3N0ZGVycl0rIHRzdD1icXVvdGUKI1tzdGRlcnJdKyBz aGlmdAojW3N0ZGVycl0rIGV2YWwgJ2luc3RzcGNfX2JxdW90ZT0kMScKI1tzdGRlcnJdKysgaW5z dHNwY19fYnF1b3RlPSdgJwojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgYWxsX3Rlc3RfbmFt ZXNfbGlzdD0nIHNxdW90ZSBkcXVvdGUgYnF1b3RlJwojW3N0ZGVycl0rIGlzX2luX2xpc3QgZmFp bC1idWlsZGRpciBmYWlsLWJ1aWxkZGlyIGZhaWwtZGVzdGRpcgojW3N0ZGVycl0rIGl0ZW09ZmFp bC1idWlsZGRpcgojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tz dGRlcnJdKyByZXR1cm4gMAojW3N0ZGVycl0rIGJ1aWxkZGlyX3hmYWlscz0nIHNxdW90ZSBkcXVv dGUgYnF1b3RlJwojW3N0ZGVycl0rIGlzX2luX2xpc3QgZmFpbC1kZXN0ZGlyIGZhaWwtYnVpbGRk aXIgZmFpbC1kZXN0ZGlyCiNbc3RkZXJyXSsgaXRlbT1mYWlsLWRlc3RkaXIKI1tzdGRlcnJdKyBz aGlmdAojW3N0ZGVycl0rIGNhc2UgIiAkKiAiIGluCiNbc3RkZXJyXSsgcmV0dXJuIDAKI1tzdGRl cnJdKyBkZXN0ZGlyX3hmYWlscz0nIHNxdW90ZSBkcXVvdGUgYnF1b3RlJwojW3N0ZGVycl0rIGRl ZmluZV9wcm9ibGVtYXRpY19zdHJpbmcgc2hhcnAgJyMnIGZhaWwtYnVpbGRkaXIgZmFpbC1kZXN0 ZGlyCiNbc3RkZXJyXSsgdHN0PXNoYXJwCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBldmFs ICdpbnN0c3BjX19zaGFycD0kMScKI1tzdGRlcnJdKysgaW5zdHNwY19fc2hhcnA9JyMnCiNbc3Rk ZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBhbGxfdGVzdF9uYW1lc19saXN0PScgc3F1b3RlIGRxdW90 ZSBicXVvdGUgc2hhcnAnCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBmYWlsLWJ1aWxkZGlyIGZhaWwt YnVpbGRkaXIgZmFpbC1kZXN0ZGlyCiNbc3RkZXJyXSsgaXRlbT1mYWlsLWJ1aWxkZGlyCiNbc3Rk ZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBjYXNlICIgJCogIiBpbgojW3N0ZGVycl0rIHJldHVybiAw CiNbc3RkZXJyXSsgYnVpbGRkaXJfeGZhaWxzPScgc3F1b3RlIGRxdW90ZSBicXVvdGUgc2hhcnAn CiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBmYWlsLWRlc3RkaXIgZmFpbC1idWlsZGRpciBmYWlsLWRl c3RkaXIKI1tzdGRlcnJdKyBpdGVtPWZhaWwtZGVzdGRpcgojW3N0ZGVycl0rIHNoaWZ0CiNbc3Rk ZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyByZXR1cm4gMAojW3N0ZGVycl0rIGRlc3Rk aXJfeGZhaWxzPScgc3F1b3RlIGRxdW90ZSBicXVvdGUgc2hhcnAnCiNbc3RkZXJyXSsgZGVmaW5l X3Byb2JsZW1hdGljX3N0cmluZyBkb2xsYXIgJyQnIGZhaWwtYnVpbGRkaXIgZmFpbC1kZXN0ZGly CiNbc3RkZXJyXSsgdHN0PWRvbGxhcgojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgZXZhbCAn aW5zdHNwY19fZG9sbGFyPSQxJwojW3N0ZGVycl0rKyBpbnN0c3BjX19kb2xsYXI9JyQnCiNbc3Rk ZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBhbGxfdGVzdF9uYW1lc19saXN0PScgc3F1b3RlIGRxdW90 ZSBicXVvdGUgc2hhcnAgZG9sbGFyJwojW3N0ZGVycl0rIGlzX2luX2xpc3QgZmFpbC1idWlsZGRp ciBmYWlsLWJ1aWxkZGlyIGZhaWwtZGVzdGRpcgojW3N0ZGVycl0rIGl0ZW09ZmFpbC1idWlsZGRp cgojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyBy ZXR1cm4gMAojW3N0ZGVycl0rIGJ1aWxkZGlyX3hmYWlscz0nIHNxdW90ZSBkcXVvdGUgYnF1b3Rl IHNoYXJwIGRvbGxhcicKI1tzdGRlcnJdKyBpc19pbl9saXN0IGZhaWwtZGVzdGRpciBmYWlsLWJ1 aWxkZGlyIGZhaWwtZGVzdGRpcgojW3N0ZGVycl0rIGl0ZW09ZmFpbC1kZXN0ZGlyCiNbc3RkZXJy XSsgc2hpZnQKI1tzdGRlcnJdKyBjYXNlICIgJCogIiBpbgojW3N0ZGVycl0rIHJldHVybiAwCiNb c3RkZXJyXSsgZGVzdGRpcl94ZmFpbHM9JyBzcXVvdGUgZHF1b3RlIGJxdW90ZSBzaGFycCBkb2xs YXInCiNbc3RkZXJyXSsgZGVmaW5lX3Byb2JsZW1hdGljX3N0cmluZyBiYW5nICchJwojW3N0ZGVy cl0rIHRzdD1iYW5nCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBldmFsICdpbnN0c3BjX19i YW5nPSQxJwojW3N0ZGVycl0rKyBpbnN0c3BjX19iYW5nPSchJwojW3N0ZGVycl0rIHNoaWZ0CiNb c3RkZXJyXSsgYWxsX3Rlc3RfbmFtZXNfbGlzdD0nIHNxdW90ZSBkcXVvdGUgYnF1b3RlIHNoYXJw IGRvbGxhciBiYW5nJwojW3N0ZGVycl0rIGlzX2luX2xpc3QgZmFpbC1idWlsZGRpcgojW3N0ZGVy cl0rIGl0ZW09ZmFpbC1idWlsZGRpcgojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAi ICQqICIgaW4KI1tzdGRlcnJdKyByZXR1cm4gMQojW3N0ZGVycl0rIGlzX2luX2xpc3QgZmFpbC1k ZXN0ZGlyCiNbc3RkZXJyXSsgaXRlbT1mYWlsLWRlc3RkaXIKI1tzdGRlcnJdKyBzaGlmdAojW3N0 ZGVycl0rIGNhc2UgIiAkKiAiIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyBkZWZp bmVfcHJvYmxlbWF0aWNfc3RyaW5nIGJzbGFzaCAnXCcgZmFpbC1idWlsZGRpcgojW3N0ZGVycl0r IHRzdD1ic2xhc2gKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGV2YWwgJ2luc3RzcGNfX2Jz bGFzaD0kMScKI1tzdGRlcnJdKysgaW5zdHNwY19fYnNsYXNoPSdcJwojW3N0ZGVycl0rIHNoaWZ0 CiNbc3RkZXJyXSsgYWxsX3Rlc3RfbmFtZXNfbGlzdD0nIHNxdW90ZSBkcXVvdGUgYnF1b3RlIHNo YXJwIGRvbGxhciBiYW5nIGJzbGFzaCcKI1tzdGRlcnJdKyBpc19pbl9saXN0IGZhaWwtYnVpbGRk aXIgZmFpbC1idWlsZGRpcgojW3N0ZGVycl0rIGl0ZW09ZmFpbC1idWlsZGRpcgojW3N0ZGVycl0r IHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyByZXR1cm4gMAojW3N0 ZGVycl0rIGJ1aWxkZGlyX3hmYWlscz0nIHNxdW90ZSBkcXVvdGUgYnF1b3RlIHNoYXJwIGRvbGxh ciBic2xhc2gnCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBmYWlsLWRlc3RkaXIgZmFpbC1idWlsZGRp cgojW3N0ZGVycl0rIGl0ZW09ZmFpbC1kZXN0ZGlyCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJd KyBjYXNlICIgJCogIiBpbgojW3N0ZGVycl0rIHJldHVybiAxCiNbc3RkZXJyXSsgZGVmaW5lX3By b2JsZW1hdGljX3N0cmluZyBhbXBlcnNhbmQgJyYnIGZhaWwtYnVpbGRkaXIKI1tzdGRlcnJdKyB0 c3Q9YW1wZXJzYW5kCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBldmFsICdpbnN0c3BjX19h bXBlcnNhbmQ9JDEnCiNbc3RkZXJyXSsrIGluc3RzcGNfX2FtcGVyc2FuZD0nJicKI1tzdGRlcnJd KyBzaGlmdAojW3N0ZGVycl0rIGFsbF90ZXN0X25hbWVzX2xpc3Q9JyBzcXVvdGUgZHF1b3RlIGJx dW90ZSBzaGFycCBkb2xsYXIgYmFuZyBic2xhc2ggYW1wZXJzYW5kJwojW3N0ZGVycl0rIGlzX2lu X2xpc3QgZmFpbC1idWlsZGRpciBmYWlsLWJ1aWxkZGlyCiNbc3RkZXJyXSsgaXRlbT1mYWlsLWJ1 aWxkZGlyCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBjYXNlICIgJCogIiBpbgojW3N0ZGVy cl0rIHJldHVybiAwCiNbc3RkZXJyXSsgYnVpbGRkaXJfeGZhaWxzPScgc3F1b3RlIGRxdW90ZSBi cXVvdGUgc2hhcnAgZG9sbGFyIGJzbGFzaCBhbXBlcnNhbmQnCiNbc3RkZXJyXSsgaXNfaW5fbGlz dCBmYWlsLWRlc3RkaXIgZmFpbC1idWlsZGRpcgojW3N0ZGVycl0rIGl0ZW09ZmFpbC1kZXN0ZGly CiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBjYXNlICIgJCogIiBpbgojW3N0ZGVycl0rIHJl dHVybiAxCiNbc3RkZXJyXSsgZGVmaW5lX3Byb2JsZW1hdGljX3N0cmluZyBwZXJjZW50ICUKI1tz dGRlcnJdKyB0c3Q9cGVyY2VudAojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgZXZhbCAnaW5z dHNwY19fcGVyY2VudD0kMScKI1tzdGRlcnJdKysgaW5zdHNwY19fcGVyY2VudD0lCiNbc3RkZXJy XSsgc2hpZnQKI1tzdGRlcnJdKyBhbGxfdGVzdF9uYW1lc19saXN0PScgc3F1b3RlIGRxdW90ZSBi cXVvdGUgc2hhcnAgZG9sbGFyIGJhbmcgYnNsYXNoIGFtcGVyc2FuZCBwZXJjZW50JwojW3N0ZGVy cl0rIGlzX2luX2xpc3QgZmFpbC1idWlsZGRpcgojW3N0ZGVycl0rIGl0ZW09ZmFpbC1idWlsZGRp cgojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyBy ZXR1cm4gMQojW3N0ZGVycl0rIGlzX2luX2xpc3QgZmFpbC1kZXN0ZGlyCiNbc3RkZXJyXSsgaXRl bT1mYWlsLWRlc3RkaXIKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNhc2UgIiAkKiAiIGlu CiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyBkZWZpbmVfcHJvYmxlbWF0aWNfc3RyaW5n IGxlZnRwYXIgJygnCiNbc3RkZXJyXSsgdHN0PWxlZnRwYXIKI1tzdGRlcnJdKyBzaGlmdAojW3N0 ZGVycl0rIGV2YWwgJ2luc3RzcGNfX2xlZnRwYXI9JDEnCiNbc3RkZXJyXSsrIGluc3RzcGNfX2xl ZnRwYXI9JygnCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBhbGxfdGVzdF9uYW1lc19saXN0 PScgc3F1b3RlIGRxdW90ZSBicXVvdGUgc2hhcnAgZG9sbGFyIGJhbmcgYnNsYXNoIGFtcGVyc2Fu ZCBwZXJjZW50IGxlZnRwYXInCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBmYWlsLWJ1aWxkZGlyCjEu Ljk0CiNbc3RkZXJyXSsgaXRlbT1mYWlsLWJ1aWxkZGlyCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRl cnJdKyBjYXNlICIgJCogIiBpbgojW3N0ZGVycl0rIHJldHVybiAxCiNbc3RkZXJyXSsgaXNfaW5f bGlzdCBmYWlsLWRlc3RkaXIKI1tzdGRlcnJdKyBpdGVtPWZhaWwtZGVzdGRpcgojW3N0ZGVycl0r IHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyByZXR1cm4gMQojW3N0 ZGVycl0rIGRlZmluZV9wcm9ibGVtYXRpY19zdHJpbmcgcmlnaHRwYXIgJyknCiNbc3RkZXJyXSsg dHN0PXJpZ2h0cGFyCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBldmFsICdpbnN0c3BjX19y aWdodHBhcj0kMScKI1tzdGRlcnJdKysgaW5zdHNwY19fcmlnaHRwYXI9JyknCiNbc3RkZXJyXSsg c2hpZnQKI1tzdGRlcnJdKyBhbGxfdGVzdF9uYW1lc19saXN0PScgc3F1b3RlIGRxdW90ZSBicXVv dGUgc2hhcnAgZG9sbGFyIGJhbmcgYnNsYXNoIGFtcGVyc2FuZCBwZXJjZW50IGxlZnRwYXIgcmln aHRwYXInCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBmYWlsLWJ1aWxkZGlyCiNbc3RkZXJyXSsgaXRl bT1mYWlsLWJ1aWxkZGlyCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBjYXNlICIgJCogIiBp bgojW3N0ZGVycl0rIHJldHVybiAxCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBmYWlsLWRlc3RkaXIK I1tzdGRlcnJdKyBpdGVtPWZhaWwtZGVzdGRpcgojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsg Y2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyByZXR1cm4gMQojW3N0ZGVycl0rIGRlZmluZV9wcm9i bGVtYXRpY19zdHJpbmcgcGlwZSAnfCcKI1tzdGRlcnJdKyB0c3Q9cGlwZQojW3N0ZGVycl0rIHNo aWZ0CiNbc3RkZXJyXSsgZXZhbCAnaW5zdHNwY19fcGlwZT0kMScKI1tzdGRlcnJdKysgaW5zdHNw Y19fcGlwZT0nfCcKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGFsbF90ZXN0X25hbWVzX2xp c3Q9JyBzcXVvdGUgZHF1b3RlIGJxdW90ZSBzaGFycCBkb2xsYXIgYmFuZyBic2xhc2ggYW1wZXJz YW5kIHBlcmNlbnQgbGVmdHBhciByaWdodHBhciBwaXBlJwojW3N0ZGVycl0rIGlzX2luX2xpc3Qg ZmFpbC1idWlsZGRpcgojW3N0ZGVycl0rIGl0ZW09ZmFpbC1idWlsZGRpcgojW3N0ZGVycl0rIHNo aWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyByZXR1cm4gMQojW3N0ZGVy cl0rIGlzX2luX2xpc3QgZmFpbC1kZXN0ZGlyCiNbc3RkZXJyXSsgaXRlbT1mYWlsLWRlc3RkaXIK I1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNhc2UgIiAkKiAiIGluCiNbc3RkZXJyXSsgcmV0 dXJuIDEKI1tzdGRlcnJdKyBkZWZpbmVfcHJvYmxlbWF0aWNfc3RyaW5nIGNhcmV0ICdeJwojW3N0 ZGVycl0rIHRzdD1jYXJldAojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgZXZhbCAnaW5zdHNw Y19fY2FyZXQ9JDEnCiNbc3RkZXJyXSsrIGluc3RzcGNfX2NhcmV0PSdeJwojW3N0ZGVycl0rIHNo aWZ0CiNbc3RkZXJyXSsgYWxsX3Rlc3RfbmFtZXNfbGlzdD0nIHNxdW90ZSBkcXVvdGUgYnF1b3Rl IHNoYXJwIGRvbGxhciBiYW5nIGJzbGFzaCBhbXBlcnNhbmQgcGVyY2VudCBsZWZ0cGFyIHJpZ2h0 cGFyIHBpcGUgY2FyZXQnCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBmYWlsLWJ1aWxkZGlyCiNbc3Rk ZXJyXSsgaXRlbT1mYWlsLWJ1aWxkZGlyCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBjYXNl ICIgJCogIiBpbgojW3N0ZGVycl0rIHJldHVybiAxCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBmYWls LWRlc3RkaXIKI1tzdGRlcnJdKyBpdGVtPWZhaWwtZGVzdGRpcgojW3N0ZGVycl0rIHNoaWZ0CiNb c3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyByZXR1cm4gMQojW3N0ZGVycl0rIGRl ZmluZV9wcm9ibGVtYXRpY19zdHJpbmcgdGlsZGUgJ34nCiNbc3RkZXJyXSsgdHN0PXRpbGRlCiNb c3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBldmFsICdpbnN0c3BjX190aWxkZT0kMScKI1tzdGRl cnJdKysgaW5zdHNwY19fdGlsZGU9J34nCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBhbGxf dGVzdF9uYW1lc19saXN0PScgc3F1b3RlIGRxdW90ZSBicXVvdGUgc2hhcnAgZG9sbGFyIGJhbmcg YnNsYXNoIGFtcGVyc2FuZCBwZXJjZW50IGxlZnRwYXIgcmlnaHRwYXIgcGlwZSBjYXJldCB0aWxk ZScKI1tzdGRlcnJdKyBpc19pbl9saXN0IGZhaWwtYnVpbGRkaXIKI1tzdGRlcnJdKyBpdGVtPWZh aWwtYnVpbGRkaXIKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNhc2UgIiAkKiAiIGluCiNb c3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyBpc19pbl9saXN0IGZhaWwtZGVzdGRpcgojW3N0 ZGVycl0rIGl0ZW09ZmFpbC1kZXN0ZGlyCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBjYXNl ICIgJCogIiBpbgojW3N0ZGVycl0rIHJldHVybiAxCiNbc3RkZXJyXSsgZGVmaW5lX3Byb2JsZW1h dGljX3N0cmluZyBxbWFyayAnPycKI1tzdGRlcnJdKyB0c3Q9cW1hcmsKI1tzdGRlcnJdKyBzaGlm dAojW3N0ZGVycl0rIGV2YWwgJ2luc3RzcGNfX3FtYXJrPSQxJwojW3N0ZGVycl0rKyBpbnN0c3Bj X19xbWFyaz0nPycKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGFsbF90ZXN0X25hbWVzX2xp c3Q9JyBzcXVvdGUgZHF1b3RlIGJxdW90ZSBzaGFycCBkb2xsYXIgYmFuZyBic2xhc2ggYW1wZXJz YW5kIHBlcmNlbnQgbGVmdHBhciByaWdodHBhciBwaXBlIGNhcmV0IHRpbGRlIHFtYXJrJwojW3N0 ZGVycl0rIGlzX2luX2xpc3QgZmFpbC1idWlsZGRpcgojW3N0ZGVycl0rIGl0ZW09ZmFpbC1idWls ZGRpcgojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJd KyByZXR1cm4gMQojW3N0ZGVycl0rIGlzX2luX2xpc3QgZmFpbC1kZXN0ZGlyCiNbc3RkZXJyXSsg aXRlbT1mYWlsLWRlc3RkaXIKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNhc2UgIiAkKiAi IGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyBkZWZpbmVfcHJvYmxlbWF0aWNfc3Ry aW5nIHN0YXIgJyonCiNbc3RkZXJyXSsgdHN0PXN0YXIKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVy cl0rIGV2YWwgJ2luc3RzcGNfX3N0YXI9JDEnCiNbc3RkZXJyXSsrIGluc3RzcGNfX3N0YXI9Jyon CiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBhbGxfdGVzdF9uYW1lc19saXN0PScgc3F1b3Rl IGRxdW90ZSBicXVvdGUgc2hhcnAgZG9sbGFyIGJhbmcgYnNsYXNoIGFtcGVyc2FuZCBwZXJjZW50 IGxlZnRwYXIgcmlnaHRwYXIgcGlwZSBjYXJldCB0aWxkZSBxbWFyayBzdGFyJwojW3N0ZGVycl0r IGlzX2luX2xpc3QgZmFpbC1idWlsZGRpcgojW3N0ZGVycl0rIGl0ZW09ZmFpbC1idWlsZGRpcgoj W3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyByZXR1 cm4gMQojW3N0ZGVycl0rIGlzX2luX2xpc3QgZmFpbC1kZXN0ZGlyCiNbc3RkZXJyXSsgaXRlbT1m YWlsLWRlc3RkaXIKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNhc2UgIiAkKiAiIGluCiNb c3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyBkZWZpbmVfcHJvYmxlbWF0aWNfc3RyaW5nIHBs dXMgKwojW3N0ZGVycl0rIHRzdD1wbHVzCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBldmFs ICdpbnN0c3BjX19wbHVzPSQxJwojW3N0ZGVycl0rKyBpbnN0c3BjX19wbHVzPSsKI1tzdGRlcnJd KyBzaGlmdAojW3N0ZGVycl0rIGFsbF90ZXN0X25hbWVzX2xpc3Q9JyBzcXVvdGUgZHF1b3RlIGJx dW90ZSBzaGFycCBkb2xsYXIgYmFuZyBic2xhc2ggYW1wZXJzYW5kIHBlcmNlbnQgbGVmdHBhciBy aWdodHBhciBwaXBlIGNhcmV0IHRpbGRlIHFtYXJrIHN0YXIgcGx1cycKI1tzdGRlcnJdKyBpc19p bl9saXN0IGZhaWwtYnVpbGRkaXIKI1tzdGRlcnJdKyBpdGVtPWZhaWwtYnVpbGRkaXIKI1tzdGRl cnJdKyBzaGlmdAojW3N0ZGVycl0rIGNhc2UgIiAkKiAiIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEK I1tzdGRlcnJdKyBpc19pbl9saXN0IGZhaWwtZGVzdGRpcgojW3N0ZGVycl0rIGl0ZW09ZmFpbC1k ZXN0ZGlyCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBjYXNlICIgJCogIiBpbgojW3N0ZGVy cl0rIHJldHVybiAxCiNbc3RkZXJyXSsgZGVmaW5lX3Byb2JsZW1hdGljX3N0cmluZyBtaW51cyAt CiNbc3RkZXJyXSsgdHN0PW1pbnVzCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBldmFsICdp bnN0c3BjX19taW51cz0kMScKI1tzdGRlcnJdKysgaW5zdHNwY19fbWludXM9LQojW3N0ZGVycl0r IHNoaWZ0CiNbc3RkZXJyXSsgYWxsX3Rlc3RfbmFtZXNfbGlzdD0nIHNxdW90ZSBkcXVvdGUgYnF1 b3RlIHNoYXJwIGRvbGxhciBiYW5nIGJzbGFzaCBhbXBlcnNhbmQgcGVyY2VudCBsZWZ0cGFyIHJp Z2h0cGFyIHBpcGUgY2FyZXQgdGlsZGUgcW1hcmsgc3RhciBwbHVzIG1pbnVzJwojW3N0ZGVycl0r IGlzX2luX2xpc3QgZmFpbC1idWlsZGRpcgojW3N0ZGVycl0rIGl0ZW09ZmFpbC1idWlsZGRpcgoj W3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyByZXR1 cm4gMQojW3N0ZGVycl0rIGlzX2luX2xpc3QgZmFpbC1kZXN0ZGlyCiNbc3RkZXJyXSsgaXRlbT1m YWlsLWRlc3RkaXIKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNhc2UgIiAkKiAiIGluCiNb c3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyBkZWZpbmVfcHJvYmxlbWF0aWNfc3RyaW5nIGNv bW1hICwKI1tzdGRlcnJdKyB0c3Q9Y29tbWEKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGV2 YWwgJ2luc3RzcGNfX2NvbW1hPSQxJwojW3N0ZGVycl0rKyBpbnN0c3BjX19jb21tYT0sCiNbc3Rk ZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBhbGxfdGVzdF9uYW1lc19saXN0PScgc3F1b3RlIGRxdW90 ZSBicXVvdGUgc2hhcnAgZG9sbGFyIGJhbmcgYnNsYXNoIGFtcGVyc2FuZCBwZXJjZW50IGxlZnRw YXIgcmlnaHRwYXIgcGlwZSBjYXJldCB0aWxkZSBxbWFyayBzdGFyIHBsdXMgbWludXMgY29tbWEn CiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBmYWlsLWJ1aWxkZGlyCiNbc3RkZXJyXSsgaXRlbT1mYWls LWJ1aWxkZGlyCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBjYXNlICIgJCogIiBpbgojW3N0 ZGVycl0rIHJldHVybiAxCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBmYWlsLWRlc3RkaXIKI1tzdGRl cnJdKyBpdGVtPWZhaWwtZGVzdGRpcgojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAi ICQqICIgaW4KI1tzdGRlcnJdKyByZXR1cm4gMQojW3N0ZGVycl0rIGRlZmluZV9wcm9ibGVtYXRp Y19zdHJpbmcgY29sb24gOgojW3N0ZGVycl0rIHRzdD1jb2xvbgojW3N0ZGVycl0rIHNoaWZ0CiNb c3RkZXJyXSsgZXZhbCAnaW5zdHNwY19fY29sb249JDEnCiNbc3RkZXJyXSsrIGluc3RzcGNfX2Nv bG9uPToKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGFsbF90ZXN0X25hbWVzX2xpc3Q9JyBz cXVvdGUgZHF1b3RlIGJxdW90ZSBzaGFycCBkb2xsYXIgYmFuZyBic2xhc2ggYW1wZXJzYW5kIHBl cmNlbnQgbGVmdHBhciByaWdodHBhciBwaXBlIGNhcmV0IHRpbGRlIHFtYXJrIHN0YXIgcGx1cyBt aW51cyBjb21tYSBjb2xvbicKI1tzdGRlcnJdKyBpc19pbl9saXN0IGZhaWwtYnVpbGRkaXIKI1tz dGRlcnJdKyBpdGVtPWZhaWwtYnVpbGRkaXIKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNh c2UgIiAkKiAiIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyBpc19pbl9saXN0IGZh aWwtZGVzdGRpcgojW3N0ZGVycl0rIGl0ZW09ZmFpbC1kZXN0ZGlyCiNbc3RkZXJyXSsgc2hpZnQK I1tzdGRlcnJdKyBjYXNlICIgJCogIiBpbgojW3N0ZGVycl0rIHJldHVybiAxCiNbc3RkZXJyXSsg ZGVmaW5lX3Byb2JsZW1hdGljX3N0cmluZyBzZW1pY29sICc7JwojW3N0ZGVycl0rIHRzdD1zZW1p Y29sCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBldmFsICdpbnN0c3BjX19zZW1pY29sPSQx JwojW3N0ZGVycl0rKyBpbnN0c3BjX19zZW1pY29sPSc7JwojW3N0ZGVycl0rIHNoaWZ0CiNbc3Rk ZXJyXSsgYWxsX3Rlc3RfbmFtZXNfbGlzdD0nIHNxdW90ZSBkcXVvdGUgYnF1b3RlIHNoYXJwIGRv bGxhciBiYW5nIGJzbGFzaCBhbXBlcnNhbmQgcGVyY2VudCBsZWZ0cGFyIHJpZ2h0cGFyIHBpcGUg Y2FyZXQgdGlsZGUgcW1hcmsgc3RhciBwbHVzIG1pbnVzIGNvbW1hIGNvbG9uIHNlbWljb2wnCiNb c3RkZXJyXSsgaXNfaW5fbGlzdCBmYWlsLWJ1aWxkZGlyCiNbc3RkZXJyXSsgaXRlbT1mYWlsLWJ1 aWxkZGlyCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBjYXNlICIgJCogIiBpbgojW3N0ZGVy cl0rIHJldHVybiAxCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBmYWlsLWRlc3RkaXIKI1tzdGRlcnJd KyBpdGVtPWZhaWwtZGVzdGRpcgojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQq ICIgaW4KI1tzdGRlcnJdKyByZXR1cm4gMQojW3N0ZGVycl0rIGRlZmluZV9wcm9ibGVtYXRpY19z dHJpbmcgZXF1YWwgPQojW3N0ZGVycl0rIHRzdD1lcXVhbAojW3N0ZGVycl0rIHNoaWZ0CiNbc3Rk ZXJyXSsgZXZhbCAnaW5zdHNwY19fZXF1YWw9JDEnCiNbc3RkZXJyXSsrIGluc3RzcGNfX2VxdWFs PT0KI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGFsbF90ZXN0X25hbWVzX2xpc3Q9JyBzcXVv dGUgZHF1b3RlIGJxdW90ZSBzaGFycCBkb2xsYXIgYmFuZyBic2xhc2ggYW1wZXJzYW5kIHBlcmNl bnQgbGVmdHBhciByaWdodHBhciBwaXBlIGNhcmV0IHRpbGRlIHFtYXJrIHN0YXIgcGx1cyBtaW51 cyBjb21tYSBjb2xvbiBzZW1pY29sIGVxdWFsJwojW3N0ZGVycl0rIGlzX2luX2xpc3QgZmFpbC1i dWlsZGRpcgojW3N0ZGVycl0rIGl0ZW09ZmFpbC1idWlsZGRpcgojW3N0ZGVycl0rIHNoaWZ0CiNb c3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyByZXR1cm4gMQojW3N0ZGVycl0rIGlz X2luX2xpc3QgZmFpbC1kZXN0ZGlyCiNbc3RkZXJyXSsgaXRlbT1mYWlsLWRlc3RkaXIKI1tzdGRl cnJdKyBzaGlmdAojW3N0ZGVycl0rIGNhc2UgIiAkKiAiIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEK I1tzdGRlcnJdKyBkZWZpbmVfcHJvYmxlbWF0aWNfc3RyaW5nIGxlc3MgJzwnCiNbc3RkZXJyXSsg dHN0PWxlc3MKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGV2YWwgJ2luc3RzcGNfX2xlc3M9 JDEnCiNbc3RkZXJyXSsrIGluc3RzcGNfX2xlc3M9JzwnCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRl cnJdKyBhbGxfdGVzdF9uYW1lc19saXN0PScgc3F1b3RlIGRxdW90ZSBicXVvdGUgc2hhcnAgZG9s bGFyIGJhbmcgYnNsYXNoIGFtcGVyc2FuZCBwZXJjZW50IGxlZnRwYXIgcmlnaHRwYXIgcGlwZSBj YXJldCB0aWxkZSBxbWFyayBzdGFyIHBsdXMgbWludXMgY29tbWEgY29sb24gc2VtaWNvbCBlcXVh bCBsZXNzJwojW3N0ZGVycl0rIGlzX2luX2xpc3QgZmFpbC1idWlsZGRpcgojW3N0ZGVycl0rIGl0 ZW09ZmFpbC1idWlsZGRpcgojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIg aW4KI1tzdGRlcnJdKyByZXR1cm4gMQojW3N0ZGVycl0rIGlzX2luX2xpc3QgZmFpbC1kZXN0ZGly CiNbc3RkZXJyXSsgaXRlbT1mYWlsLWRlc3RkaXIKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0r IGNhc2UgIiAkKiAiIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyBkZWZpbmVfcHJv YmxlbWF0aWNfc3RyaW5nIG1vcmUgJz4nCiNbc3RkZXJyXSsgdHN0PW1vcmUKI1tzdGRlcnJdKyBz aGlmdAojW3N0ZGVycl0rIGV2YWwgJ2luc3RzcGNfX21vcmU9JDEnCiNbc3RkZXJyXSsrIGluc3Rz cGNfX21vcmU9Jz4nCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBhbGxfdGVzdF9uYW1lc19s aXN0PScgc3F1b3RlIGRxdW90ZSBicXVvdGUgc2hhcnAgZG9sbGFyIGJhbmcgYnNsYXNoIGFtcGVy c2FuZCBwZXJjZW50IGxlZnRwYXIgcmlnaHRwYXIgcGlwZSBjYXJldCB0aWxkZSBxbWFyayBzdGFy IHBsdXMgbWludXMgY29tbWEgY29sb24gc2VtaWNvbCBlcXVhbCBsZXNzIG1vcmUnCiNbc3RkZXJy XSsgaXNfaW5fbGlzdCBmYWlsLWJ1aWxkZGlyCiNbc3RkZXJyXSsgaXRlbT1mYWlsLWJ1aWxkZGly CiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBjYXNlICIgJCogIiBpbgojW3N0ZGVycl0rIHJl dHVybiAxCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBmYWlsLWRlc3RkaXIKI1tzdGRlcnJdKyBpdGVt PWZhaWwtZGVzdGRpcgojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4K I1tzdGRlcnJdKyByZXR1cm4gMQojW3N0ZGVycl0rIGRlZmluZV9wcm9ibGVtYXRpY19zdHJpbmcg YXQgQAojW3N0ZGVycl0rIHRzdD1hdAojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgZXZhbCAn aW5zdHNwY19fYXQ9JDEnCiNbc3RkZXJyXSsrIGluc3RzcGNfX2F0PUAKI1tzdGRlcnJdKyBzaGlm dAojW3N0ZGVycl0rIGFsbF90ZXN0X25hbWVzX2xpc3Q9JyBzcXVvdGUgZHF1b3RlIGJxdW90ZSBz aGFycCBkb2xsYXIgYmFuZyBic2xhc2ggYW1wZXJzYW5kIHBlcmNlbnQgbGVmdHBhciByaWdodHBh ciBwaXBlIGNhcmV0IHRpbGRlIHFtYXJrIHN0YXIgcGx1cyBtaW51cyBjb21tYSBjb2xvbiBzZW1p Y29sIGVxdWFsIGxlc3MgbW9yZSBhdCcKI1tzdGRlcnJdKyBpc19pbl9saXN0IGZhaWwtYnVpbGRk aXIKI1tzdGRlcnJdKyBpdGVtPWZhaWwtYnVpbGRkaXIKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVy cl0rIGNhc2UgIiAkKiAiIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyBpc19pbl9s aXN0IGZhaWwtZGVzdGRpcgojW3N0ZGVycl0rIGl0ZW09ZmFpbC1kZXN0ZGlyCiNbc3RkZXJyXSsg c2hpZnQKI1tzdGRlcnJdKyBjYXNlICIgJCogIiBpbgojW3N0ZGVycl0rIHJldHVybiAxCiNbc3Rk ZXJyXSsgZGVmaW5lX3Byb2JsZW1hdGljX3N0cmluZyBscWJyYWNrICdbJwojW3N0ZGVycl0rIHRz dD1scWJyYWNrCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBldmFsICdpbnN0c3BjX19scWJy YWNrPSQxJwojW3N0ZGVycl0rKyBpbnN0c3BjX19scWJyYWNrPSdbJwojW3N0ZGVycl0rIHNoaWZ0 CiNbc3RkZXJyXSsgYWxsX3Rlc3RfbmFtZXNfbGlzdD0nIHNxdW90ZSBkcXVvdGUgYnF1b3RlIHNo YXJwIGRvbGxhciBiYW5nIGJzbGFzaCBhbXBlcnNhbmQgcGVyY2VudCBsZWZ0cGFyIHJpZ2h0cGFy IHBpcGUgY2FyZXQgdGlsZGUgcW1hcmsgc3RhciBwbHVzIG1pbnVzIGNvbW1hIGNvbG9uIHNlbWlj b2wgZXF1YWwgbGVzcyBtb3JlIGF0IGxxYnJhY2snCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBmYWls LWJ1aWxkZGlyCiNbc3RkZXJyXSsgaXRlbT1mYWlsLWJ1aWxkZGlyCiNbc3RkZXJyXSsgc2hpZnQK I1tzdGRlcnJdKyBjYXNlICIgJCogIiBpbgojW3N0ZGVycl0rIHJldHVybiAxCiNbc3RkZXJyXSsg aXNfaW5fbGlzdCBmYWlsLWRlc3RkaXIKI1tzdGRlcnJdKyBpdGVtPWZhaWwtZGVzdGRpcgojW3N0 ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyByZXR1cm4g MQojW3N0ZGVycl0rIGRlZmluZV9wcm9ibGVtYXRpY19zdHJpbmcgcnFicmFjayAnXScKI1tzdGRl cnJdKyB0c3Q9cnFicmFjawojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgZXZhbCAnaW5zdHNw Y19fcnFicmFjaz0kMScKI1tzdGRlcnJdKysgaW5zdHNwY19fcnFicmFjaz0nXScKI1tzdGRlcnJd KyBzaGlmdAojW3N0ZGVycl0rIGFsbF90ZXN0X25hbWVzX2xpc3Q9JyBzcXVvdGUgZHF1b3RlIGJx dW90ZSBzaGFycCBkb2xsYXIgYmFuZyBic2xhc2ggYW1wZXJzYW5kIHBlcmNlbnQgbGVmdHBhciBy aWdodHBhciBwaXBlIGNhcmV0IHRpbGRlIHFtYXJrIHN0YXIgcGx1cyBtaW51cyBjb21tYSBjb2xv biBzZW1pY29sIGVxdWFsIGxlc3MgbW9yZSBhdCBscWJyYWNrIHJxYnJhY2snCiNbc3RkZXJyXSsg aXNfaW5fbGlzdCBmYWlsLWJ1aWxkZGlyCiNbc3RkZXJyXSsgaXRlbT1mYWlsLWJ1aWxkZGlyCiNb c3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBjYXNlICIgJCogIiBpbgojW3N0ZGVycl0rIHJldHVy biAxCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBmYWlsLWRlc3RkaXIKI1tzdGRlcnJdKyBpdGVtPWZh aWwtZGVzdGRpcgojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tz dGRlcnJdKyByZXR1cm4gMQojW3N0ZGVycl0rIGRlZmluZV9wcm9ibGVtYXRpY19zdHJpbmcgbGNi cmFjayAneycKI1tzdGRlcnJdKyB0c3Q9bGNicmFjawojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJy XSsgZXZhbCAnaW5zdHNwY19fbGNicmFjaz0kMScKI1tzdGRlcnJdKysgaW5zdHNwY19fbGNicmFj az0neycKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGFsbF90ZXN0X25hbWVzX2xpc3Q9JyBz cXVvdGUgZHF1b3RlIGJxdW90ZSBzaGFycCBkb2xsYXIgYmFuZyBic2xhc2ggYW1wZXJzYW5kIHBl cmNlbnQgbGVmdHBhciByaWdodHBhciBwaXBlIGNhcmV0IHRpbGRlIHFtYXJrIHN0YXIgcGx1cyBt aW51cyBjb21tYSBjb2xvbiBzZW1pY29sIGVxdWFsIGxlc3MgbW9yZSBhdCBscWJyYWNrIHJxYnJh Y2sgbGNicmFjaycKI1tzdGRlcnJdKyBpc19pbl9saXN0IGZhaWwtYnVpbGRkaXIKI1tzdGRlcnJd KyBpdGVtPWZhaWwtYnVpbGRkaXIKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNhc2UgIiAk KiAiIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyBpc19pbl9saXN0IGZhaWwtZGVz dGRpcgojW3N0ZGVycl0rIGl0ZW09ZmFpbC1kZXN0ZGlyCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRl cnJdKyBjYXNlICIgJCogIiBpbgojW3N0ZGVycl0rIHJldHVybiAxCiNbc3RkZXJyXSsgZGVmaW5l X3Byb2JsZW1hdGljX3N0cmluZyByY2JyYWNrICd9JwojW3N0ZGVycl0rIHRzdD1yY2JyYWNrCiNb c3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBldmFsICdpbnN0c3BjX19yY2JyYWNrPSQxJwojW3N0 ZGVycl0rKyBpbnN0c3BjX19yY2JyYWNrPSd9JwojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsg YWxsX3Rlc3RfbmFtZXNfbGlzdD0nIHNxdW90ZSBkcXVvdGUgYnF1b3RlIHNoYXJwIGRvbGxhciBi YW5nIGJzbGFzaCBhbXBlcnNhbmQgcGVyY2VudCBsZWZ0cGFyIHJpZ2h0cGFyIHBpcGUgY2FyZXQg dGlsZGUgcW1hcmsgc3RhciBwbHVzIG1pbnVzIGNvbW1hIGNvbG9uIHNlbWljb2wgZXF1YWwgbGVz cyBtb3JlIGF0IGxxYnJhY2sgcnFicmFjayBsY2JyYWNrIHJjYnJhY2snCiNbc3RkZXJyXSsgaXNf aW5fbGlzdCBmYWlsLWJ1aWxkZGlyCiNbc3RkZXJyXSsgaXRlbT1mYWlsLWJ1aWxkZGlyCiNbc3Rk ZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBjYXNlICIgJCogIiBpbgojW3N0ZGVycl0rIHJldHVybiAx CiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBmYWlsLWRlc3RkaXIKI1tzdGRlcnJdKyBpdGVtPWZhaWwt ZGVzdGRpcgojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRl cnJdKyByZXR1cm4gMQojW3N0ZGVycl0rIGRlZmluZV9wcm9ibGVtYXRpY19zdHJpbmcgc3BhY2Ug JyAnCiNbc3RkZXJyXSsgdHN0PXNwYWNlCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBldmFs ICdpbnN0c3BjX19zcGFjZT0kMScKI1tzdGRlcnJdKysgaW5zdHNwY19fc3BhY2U9JyAnCiNbc3Rk ZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBhbGxfdGVzdF9uYW1lc19saXN0PScgc3F1b3RlIGRxdW90 ZSBicXVvdGUgc2hhcnAgZG9sbGFyIGJhbmcgYnNsYXNoIGFtcGVyc2FuZCBwZXJjZW50IGxlZnRw YXIgcmlnaHRwYXIgcGlwZSBjYXJldCB0aWxkZSBxbWFyayBzdGFyIHBsdXMgbWludXMgY29tbWEg Y29sb24gc2VtaWNvbCBlcXVhbCBsZXNzIG1vcmUgYXQgbHFicmFjayBycWJyYWNrIGxjYnJhY2sg cmNicmFjayBzcGFjZScKI1tzdGRlcnJdKyBpc19pbl9saXN0IGZhaWwtYnVpbGRkaXIKI1tzdGRl cnJdKyBpdGVtPWZhaWwtYnVpbGRkaXIKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNhc2Ug IiAkKiAiIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyBpc19pbl9saXN0IGZhaWwt ZGVzdGRpcgojW3N0ZGVycl0rIGl0ZW09ZmFpbC1kZXN0ZGlyCiNbc3RkZXJyXSsgc2hpZnQKI1tz dGRlcnJdKyBjYXNlICIgJCogIiBpbgojW3N0ZGVycl0rIHJldHVybiAxCiNbc3RkZXJyXSsgZGVm aW5lX3Byb2JsZW1hdGljX3N0cmluZyB0YWIgJwknCiNbc3RkZXJyXSsgdHN0PXRhYgojW3N0ZGVy cl0rIHNoaWZ0CiNbc3RkZXJyXSsgZXZhbCAnaW5zdHNwY19fdGFiPSQxJwojW3N0ZGVycl0rKyBp bnN0c3BjX190YWI9JwknCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBhbGxfdGVzdF9uYW1l c19saXN0PScgc3F1b3RlIGRxdW90ZSBicXVvdGUgc2hhcnAgZG9sbGFyIGJhbmcgYnNsYXNoIGFt cGVyc2FuZCBwZXJjZW50IGxlZnRwYXIgcmlnaHRwYXIgcGlwZSBjYXJldCB0aWxkZSBxbWFyayBz dGFyIHBsdXMgbWludXMgY29tbWEgY29sb24gc2VtaWNvbCBlcXVhbCBsZXNzIG1vcmUgYXQgbHFi cmFjayBycWJyYWNrIGxjYnJhY2sgcmNicmFjayBzcGFjZSB0YWInCiNbc3RkZXJyXSsgaXNfaW5f bGlzdCBmYWlsLWJ1aWxkZGlyCiNbc3RkZXJyXSsgaXRlbT1mYWlsLWJ1aWxkZGlyCiNbc3RkZXJy XSsgc2hpZnQKI1tzdGRlcnJdKyBjYXNlICIgJCogIiBpbgojW3N0ZGVycl0rIHJldHVybiAxCiNb c3RkZXJyXSsgaXNfaW5fbGlzdCBmYWlsLWRlc3RkaXIKI1tzdGRlcnJdKyBpdGVtPWZhaWwtZGVz dGRpcgojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJd KyByZXR1cm4gMQojW3N0ZGVycl0rIGRlZmluZV9wcm9ibGVtYXRpY19zdHJpbmcgbGluZWZlZWQg JwojW3N0ZGVycl0nIGZhaWwtYnVpbGRkaXIgZmFpbC1kZXN0ZGlyCiNbc3RkZXJyXSsgdHN0PWxp bmVmZWVkCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBldmFsICdpbnN0c3BjX19saW5lZmVl ZD0kMScKI1tzdGRlcnJdKysgaW5zdHNwY19fbGluZWZlZWQ9JwojW3N0ZGVycl0nCiNbc3RkZXJy XSsgc2hpZnQKI1tzdGRlcnJdKyBhbGxfdGVzdF9uYW1lc19saXN0PScgc3F1b3RlIGRxdW90ZSBi cXVvdGUgc2hhcnAgZG9sbGFyIGJhbmcgYnNsYXNoIGFtcGVyc2FuZCBwZXJjZW50IGxlZnRwYXIg cmlnaHRwYXIgcGlwZSBjYXJldCB0aWxkZSBxbWFyayBzdGFyIHBsdXMgbWludXMgY29tbWEgY29s b24gc2VtaWNvbCBlcXVhbCBsZXNzIG1vcmUgYXQgbHFicmFjayBycWJyYWNrIGxjYnJhY2sgcmNi cmFjayBzcGFjZSB0YWIgbGluZWZlZWQnCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBmYWlsLWJ1aWxk ZGlyIGZhaWwtYnVpbGRkaXIgZmFpbC1kZXN0ZGlyCiNbc3RkZXJyXSsgaXRlbT1mYWlsLWJ1aWxk ZGlyCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBjYXNlICIgJCogIiBpbgojW3N0ZGVycl0r IHJldHVybiAwCiNbc3RkZXJyXSsgYnVpbGRkaXJfeGZhaWxzPScgc3F1b3RlIGRxdW90ZSBicXVv dGUgc2hhcnAgZG9sbGFyIGJzbGFzaCBhbXBlcnNhbmQgbGluZWZlZWQnCiNbc3RkZXJyXSsgaXNf aW5fbGlzdCBmYWlsLWRlc3RkaXIgZmFpbC1idWlsZGRpciBmYWlsLWRlc3RkaXIKI1tzdGRlcnJd KyBpdGVtPWZhaWwtZGVzdGRpcgojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQq ICIgaW4KI1tzdGRlcnJdKyByZXR1cm4gMAojW3N0ZGVycl0rIGRlc3RkaXJfeGZhaWxzPScgc3F1 b3RlIGRxdW90ZSBicXVvdGUgc2hhcnAgZG9sbGFyIGxpbmVmZWVkJwojW3N0ZGVycl0rIGRlZmlu ZV9wcm9ibGVtYXRpY19zdHJpbmcgYmFja3NwYWNlICQnXGInCiNbc3RkZXJyXSsgdHN0PWJhY2tz cGFjZQojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgZXZhbCAnaW5zdHNwY19fYmFja3NwYWNl PSQxJwojW3N0ZGVycl0rKyBpbnN0c3BjX19iYWNrc3BhY2U9JCdcYicKI1tzdGRlcnJdKyBzaGlm dAojW3N0ZGVycl0rIGFsbF90ZXN0X25hbWVzX2xpc3Q9JyBzcXVvdGUgZHF1b3RlIGJxdW90ZSBz aGFycCBkb2xsYXIgYmFuZyBic2xhc2ggYW1wZXJzYW5kIHBlcmNlbnQgbGVmdHBhciByaWdodHBh ciBwaXBlIGNhcmV0IHRpbGRlIHFtYXJrIHN0YXIgcGx1cyBtaW51cyBjb21tYSBjb2xvbiBzZW1p Y29sIGVxdWFsIGxlc3MgbW9yZSBhdCBscWJyYWNrIHJxYnJhY2sgbGNicmFjayByY2JyYWNrIHNw YWNlIHRhYiBsaW5lZmVlZCBiYWNrc3BhY2UnCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBmYWlsLWJ1 aWxkZGlyCiNbc3RkZXJyXSsgaXRlbT1mYWlsLWJ1aWxkZGlyCiNbc3RkZXJyXSsgc2hpZnQKI1tz dGRlcnJdKyBjYXNlICIgJCogIiBpbgojW3N0ZGVycl0rIHJldHVybiAxCiNbc3RkZXJyXSsgaXNf aW5fbGlzdCBmYWlsLWRlc3RkaXIKI1tzdGRlcnJdKyBpdGVtPWZhaWwtZGVzdGRpcgojW3N0ZGVy cl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyByZXR1cm4gMQoj W3N0ZGVycl0rIGRlZmluZV9wcm9ibGVtYXRpY19zdHJpbmcgZm9ybWZlZWQgJCdcZicKI1tzdGRl cnJdKyB0c3Q9Zm9ybWZlZWQKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGV2YWwgJ2luc3Rz cGNfX2Zvcm1mZWVkPSQxJwojW3N0ZGVycl0rKyBpbnN0c3BjX19mb3JtZmVlZD0kJ1xmJwojW3N0 ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgYWxsX3Rlc3RfbmFtZXNfbGlzdD0nIHNxdW90ZSBkcXVv dGUgYnF1b3RlIHNoYXJwIGRvbGxhciBiYW5nIGJzbGFzaCBhbXBlcnNhbmQgcGVyY2VudCBsZWZ0 cGFyIHJpZ2h0cGFyIHBpcGUgY2FyZXQgdGlsZGUgcW1hcmsgc3RhciBwbHVzIG1pbnVzIGNvbW1h IGNvbG9uIHNlbWljb2wgZXF1YWwgbGVzcyBtb3JlIGF0IGxxYnJhY2sgcnFicmFjayBsY2JyYWNr IHJjYnJhY2sgc3BhY2UgdGFiIGxpbmVmZWVkIGJhY2tzcGFjZSBmb3JtZmVlZCcKI1tzdGRlcnJd KyBpc19pbl9saXN0IGZhaWwtYnVpbGRkaXIKI1tzdGRlcnJdKyBpdGVtPWZhaWwtYnVpbGRkaXIK I1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNhc2UgIiAkKiAiIGluCiNbc3RkZXJyXSsgcmV0 dXJuIDEKI1tzdGRlcnJdKyBpc19pbl9saXN0IGZhaWwtZGVzdGRpcgojW3N0ZGVycl0rIGl0ZW09 ZmFpbC1kZXN0ZGlyCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBjYXNlICIgJCogIiBpbgoj W3N0ZGVycl0rIHJldHVybiAxCiNbc3RkZXJyXSsgZGVmaW5lX3Byb2JsZW1hdGljX3N0cmluZyBj YXJyaWFnZXJldCAkJ1xyJwojW3N0ZGVycl0rIHRzdD1jYXJyaWFnZXJldAojW3N0ZGVycl0rIHNo aWZ0CiNbc3RkZXJyXSsgZXZhbCAnaW5zdHNwY19fY2FycmlhZ2VyZXQ9JDEnCiNbc3RkZXJyXSsr IGluc3RzcGNfX2NhcnJpYWdlcmV0PSQnXHInCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBh bGxfdGVzdF9uYW1lc19saXN0PScgc3F1b3RlIGRxdW90ZSBicXVvdGUgc2hhcnAgZG9sbGFyIGJh bmcgYnNsYXNoIGFtcGVyc2FuZCBwZXJjZW50IGxlZnRwYXIgcmlnaHRwYXIgcGlwZSBjYXJldCB0 aWxkZSBxbWFyayBzdGFyIHBsdXMgbWludXMgY29tbWEgY29sb24gc2VtaWNvbCBlcXVhbCBsZXNz IG1vcmUgYXQgbHFicmFjayBycWJyYWNrIGxjYnJhY2sgcmNicmFjayBzcGFjZSB0YWIgbGluZWZl ZWQgYmFja3NwYWNlIGZvcm1mZWVkIGNhcnJpYWdlcmV0JwojW3N0ZGVycl0rIGlzX2luX2xpc3Qg ZmFpbC1idWlsZGRpcgojW3N0ZGVycl0rIGl0ZW09ZmFpbC1idWlsZGRpcgojW3N0ZGVycl0rIHNo aWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyByZXR1cm4gMQojW3N0ZGVy cl0rIGlzX2luX2xpc3QgZmFpbC1kZXN0ZGlyCiNbc3RkZXJyXSsgaXRlbT1mYWlsLWRlc3RkaXIK I1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNhc2UgIiAkKiAiIGluCiNbc3RkZXJyXSsgcmV0 dXJuIDEKI1tzdGRlcnJdKyBkZWZpbmVfcHJvYmxlbWF0aWNfc3RyaW5nIHF1YWRyaWdyYXBoMCAn QCZ0QCcgZmFpbC1idWlsZGRpcgojW3N0ZGVycl0rIHRzdD1xdWFkcmlncmFwaDAKI1tzdGRlcnJd KyBzaGlmdAojW3N0ZGVycl0rIGV2YWwgJ2luc3RzcGNfX3F1YWRyaWdyYXBoMD0kMScKI1tzdGRl cnJdKysgaW5zdHNwY19fcXVhZHJpZ3JhcGgwPSdAJnRAJwojW3N0ZGVycl0rIHNoaWZ0CiNbc3Rk ZXJyXSsgYWxsX3Rlc3RfbmFtZXNfbGlzdD0nIHNxdW90ZSBkcXVvdGUgYnF1b3RlIHNoYXJwIGRv bGxhciBiYW5nIGJzbGFzaCBhbXBlcnNhbmQgcGVyY2VudCBsZWZ0cGFyIHJpZ2h0cGFyIHBpcGUg Y2FyZXQgdGlsZGUgcW1hcmsgc3RhciBwbHVzIG1pbnVzIGNvbW1hIGNvbG9uIHNlbWljb2wgZXF1 YWwgbGVzcyBtb3JlIGF0IGxxYnJhY2sgcnFicmFjayBsY2JyYWNrIHJjYnJhY2sgc3BhY2UgdGFi IGxpbmVmZWVkIGJhY2tzcGFjZSBmb3JtZmVlZCBjYXJyaWFnZXJldCBxdWFkcmlncmFwaDAnCiNb c3RkZXJyXSsgaXNfaW5fbGlzdCBmYWlsLWJ1aWxkZGlyIGZhaWwtYnVpbGRkaXIKI1tzdGRlcnJd KyBpdGVtPWZhaWwtYnVpbGRkaXIKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNhc2UgIiAk KiAiIGluCiNbc3RkZXJyXSsgcmV0dXJuIDAKI1tzdGRlcnJdKyBidWlsZGRpcl94ZmFpbHM9JyBz cXVvdGUgZHF1b3RlIGJxdW90ZSBzaGFycCBkb2xsYXIgYnNsYXNoIGFtcGVyc2FuZCBsaW5lZmVl ZCBxdWFkcmlncmFwaDAnCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBmYWlsLWRlc3RkaXIgZmFpbC1i dWlsZGRpcgojW3N0ZGVycl0rIGl0ZW09ZmFpbC1kZXN0ZGlyCiNbc3RkZXJyXSsgc2hpZnQKI1tz dGRlcnJdKyBjYXNlICIgJCogIiBpbgojW3N0ZGVycl0rIHJldHVybiAxCiNbc3RkZXJyXSsgZGVm aW5lX3Byb2JsZW1hdGljX3N0cmluZyBxdWFkcmlncmFwaDEgJ0A8OkAnCiNbc3RkZXJyXSsgdHN0 PXF1YWRyaWdyYXBoMQojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgZXZhbCAnaW5zdHNwY19f cXVhZHJpZ3JhcGgxPSQxJwojW3N0ZGVycl0rKyBpbnN0c3BjX19xdWFkcmlncmFwaDE9J0A8OkAn CiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBhbGxfdGVzdF9uYW1lc19saXN0PScgc3F1b3Rl IGRxdW90ZSBicXVvdGUgc2hhcnAgZG9sbGFyIGJhbmcgYnNsYXNoIGFtcGVyc2FuZCBwZXJjZW50 IGxlZnRwYXIgcmlnaHRwYXIgcGlwZSBjYXJldCB0aWxkZSBxbWFyayBzdGFyIHBsdXMgbWludXMg Y29tbWEgY29sb24gc2VtaWNvbCBlcXVhbCBsZXNzIG1vcmUgYXQgbHFicmFjayBycWJyYWNrIGxj YnJhY2sgcmNicmFjayBzcGFjZSB0YWIgbGluZWZlZWQgYmFja3NwYWNlIGZvcm1mZWVkIGNhcnJp YWdlcmV0IHF1YWRyaWdyYXBoMCBxdWFkcmlncmFwaDEnCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBm YWlsLWJ1aWxkZGlyCiNbc3RkZXJyXSsgaXRlbT1mYWlsLWJ1aWxkZGlyCiNbc3RkZXJyXSsgc2hp ZnQKI1tzdGRlcnJdKyBjYXNlICIgJCogIiBpbgojW3N0ZGVycl0rIHJldHVybiAxCiNbc3RkZXJy XSsgaXNfaW5fbGlzdCBmYWlsLWRlc3RkaXIKI1tzdGRlcnJdKyBpdGVtPWZhaWwtZGVzdGRpcgoj W3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyByZXR1 cm4gMQojW3N0ZGVycl0rIGRlZmluZV9wcm9ibGVtYXRpY19zdHJpbmcgcXVhZHJpZ3JhcGgyICdA Oj5AJwojW3N0ZGVycl0rIHRzdD1xdWFkcmlncmFwaDIKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVy cl0rIGV2YWwgJ2luc3RzcGNfX3F1YWRyaWdyYXBoMj0kMScKI1tzdGRlcnJdKysgaW5zdHNwY19f cXVhZHJpZ3JhcGgyPSdAOj5AJwojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgYWxsX3Rlc3Rf bmFtZXNfbGlzdD0nIHNxdW90ZSBkcXVvdGUgYnF1b3RlIHNoYXJwIGRvbGxhciBiYW5nIGJzbGFz aCBhbXBlcnNhbmQgcGVyY2VudCBsZWZ0cGFyIHJpZ2h0cGFyIHBpcGUgY2FyZXQgdGlsZGUgcW1h cmsgc3RhciBwbHVzIG1pbnVzIGNvbW1hIGNvbG9uIHNlbWljb2wgZXF1YWwgbGVzcyBtb3JlIGF0 IGxxYnJhY2sgcnFicmFjayBsY2JyYWNrIHJjYnJhY2sgc3BhY2UgdGFiIGxpbmVmZWVkIGJhY2tz cGFjZSBmb3JtZmVlZCBjYXJyaWFnZXJldCBxdWFkcmlncmFwaDAgcXVhZHJpZ3JhcGgxIHF1YWRy aWdyYXBoMicKI1tzdGRlcnJdKyBpc19pbl9saXN0IGZhaWwtYnVpbGRkaXIKI1tzdGRlcnJdKyBp dGVtPWZhaWwtYnVpbGRkaXIKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNhc2UgIiAkKiAi IGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyBpc19pbl9saXN0IGZhaWwtZGVzdGRp cgojW3N0ZGVycl0rIGl0ZW09ZmFpbC1kZXN0ZGlyCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJd KyBjYXNlICIgJCogIiBpbgojW3N0ZGVycl0rIHJldHVybiAxCiNbc3RkZXJyXSsgZGVmaW5lX3By b2JsZW1hdGljX3N0cmluZyBxdWFkcmlncmFwaDMgJ0BTfEAnCiNbc3RkZXJyXSsgdHN0PXF1YWRy aWdyYXBoMwojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgZXZhbCAnaW5zdHNwY19fcXVhZHJp Z3JhcGgzPSQxJwojW3N0ZGVycl0rKyBpbnN0c3BjX19xdWFkcmlncmFwaDM9J0BTfEAnCiNbc3Rk ZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBhbGxfdGVzdF9uYW1lc19saXN0PScgc3F1b3RlIGRxdW90 ZSBicXVvdGUgc2hhcnAgZG9sbGFyIGJhbmcgYnNsYXNoIGFtcGVyc2FuZCBwZXJjZW50IGxlZnRw YXIgcmlnaHRwYXIgcGlwZSBjYXJldCB0aWxkZSBxbWFyayBzdGFyIHBsdXMgbWludXMgY29tbWEg Y29sb24gc2VtaWNvbCBlcXVhbCBsZXNzIG1vcmUgYXQgbHFicmFjayBycWJyYWNrIGxjYnJhY2sg cmNicmFjayBzcGFjZSB0YWIgbGluZWZlZWQgYmFja3NwYWNlIGZvcm1mZWVkIGNhcnJpYWdlcmV0 IHF1YWRyaWdyYXBoMCBxdWFkcmlncmFwaDEgcXVhZHJpZ3JhcGgyIHF1YWRyaWdyYXBoMycKI1tz dGRlcnJdKyBpc19pbl9saXN0IGZhaWwtYnVpbGRkaXIKI1tzdGRlcnJdKyBpdGVtPWZhaWwtYnVp bGRkaXIKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNhc2UgIiAkKiAiIGluCiNbc3RkZXJy XSsgcmV0dXJuIDEKI1tzdGRlcnJdKyBpc19pbl9saXN0IGZhaWwtZGVzdGRpcgojW3N0ZGVycl0r IGl0ZW09ZmFpbC1kZXN0ZGlyCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBjYXNlICIgJCog IiBpbgojW3N0ZGVycl0rIHJldHVybiAxCiNbc3RkZXJyXSsgZGVmaW5lX3Byb2JsZW1hdGljX3N0 cmluZyBxdWFkcmlncmFwaDQgQCU6QAojW3N0ZGVycl0rIHRzdD1xdWFkcmlncmFwaDQKI1tzdGRl cnJdKyBzaGlmdAojW3N0ZGVycl0rIGV2YWwgJ2luc3RzcGNfX3F1YWRyaWdyYXBoND0kMScKI1tz dGRlcnJdKysgaW5zdHNwY19fcXVhZHJpZ3JhcGg0PUAlOkAKI1tzdGRlcnJdKyBzaGlmdAojW3N0 ZGVycl0rIGFsbF90ZXN0X25hbWVzX2xpc3Q9JyBzcXVvdGUgZHF1b3RlIGJxdW90ZSBzaGFycCBk b2xsYXIgYmFuZyBic2xhc2ggYW1wZXJzYW5kIHBlcmNlbnQgbGVmdHBhciByaWdodHBhciBwaXBl IGNhcmV0IHRpbGRlIHFtYXJrIHN0YXIgcGx1cyBtaW51cyBjb21tYSBjb2xvbiBzZW1pY29sIGVx dWFsIGxlc3MgbW9yZSBhdCBscWJyYWNrIHJxYnJhY2sgbGNicmFjayByY2JyYWNrIHNwYWNlIHRh YiBsaW5lZmVlZCBiYWNrc3BhY2UgZm9ybWZlZWQgY2FycmlhZ2VyZXQgcXVhZHJpZ3JhcGgwIHF1 YWRyaWdyYXBoMSBxdWFkcmlncmFwaDIgcXVhZHJpZ3JhcGgzIHF1YWRyaWdyYXBoNCcKI1tzdGRl cnJdKyBpc19pbl9saXN0IGZhaWwtYnVpbGRkaXIKI1tzdGRlcnJdKyBpdGVtPWZhaWwtYnVpbGRk aXIKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNhc2UgIiAkKiAiIGluCiNbc3RkZXJyXSsg cmV0dXJuIDEKI1tzdGRlcnJdKyBpc19pbl9saXN0IGZhaWwtZGVzdGRpcgojW3N0ZGVycl0rIGl0 ZW09ZmFpbC1kZXN0ZGlyCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBjYXNlICIgJCogIiBp bgojW3N0ZGVycl0rIHJldHVybiAxCiNbc3RkZXJyXSsgZGVmaW5lX3Byb2JsZW1hdGljX3N0cmlu ZyBhX2IgJ2EgYicKI1tzdGRlcnJdKyB0c3Q9YV9iCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJd KyBldmFsICdpbnN0c3BjX19hX2I9JDEnCiNbc3RkZXJyXSsrIGluc3RzcGNfX2FfYj0nYSBiJwoj W3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgYWxsX3Rlc3RfbmFtZXNfbGlzdD0nIHNxdW90ZSBk cXVvdGUgYnF1b3RlIHNoYXJwIGRvbGxhciBiYW5nIGJzbGFzaCBhbXBlcnNhbmQgcGVyY2VudCBs ZWZ0cGFyIHJpZ2h0cGFyIHBpcGUgY2FyZXQgdGlsZGUgcW1hcmsgc3RhciBwbHVzIG1pbnVzIGNv bW1hIGNvbG9uIHNlbWljb2wgZXF1YWwgbGVzcyBtb3JlIGF0IGxxYnJhY2sgcnFicmFjayBsY2Jy YWNrIHJjYnJhY2sgc3BhY2UgdGFiIGxpbmVmZWVkIGJhY2tzcGFjZSBmb3JtZmVlZCBjYXJyaWFn ZXJldCBxdWFkcmlncmFwaDAgcXVhZHJpZ3JhcGgxIHF1YWRyaWdyYXBoMiBxdWFkcmlncmFwaDMg cXVhZHJpZ3JhcGg0IGFfYicKI1tzdGRlcnJdKyBpc19pbl9saXN0IGZhaWwtYnVpbGRkaXIKI1tz dGRlcnJdKyBpdGVtPWZhaWwtYnVpbGRkaXIKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNh c2UgIiAkKiAiIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyBpc19pbl9saXN0IGZh aWwtZGVzdGRpcgojW3N0ZGVycl0rIGl0ZW09ZmFpbC1kZXN0ZGlyCiNbc3RkZXJyXSsgc2hpZnQK I1tzdGRlcnJdKyBjYXNlICIgJCogIiBpbgojW3N0ZGVycl0rIHJldHVybiAxCiNbc3RkZXJyXSsg ZGVmaW5lX3Byb2JsZW1hdGljX3N0cmluZyBhX19iICdhICBiJwojW3N0ZGVycl0rIHRzdD1hX19i CiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBldmFsICdpbnN0c3BjX19hX19iPSQxJwojW3N0 ZGVycl0rKyBpbnN0c3BjX19hX19iPSdhICBiJwojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsg YWxsX3Rlc3RfbmFtZXNfbGlzdD0nIHNxdW90ZSBkcXVvdGUgYnF1b3RlIHNoYXJwIGRvbGxhciBi YW5nIGJzbGFzaCBhbXBlcnNhbmQgcGVyY2VudCBsZWZ0cGFyIHJpZ2h0cGFyIHBpcGUgY2FyZXQg dGlsZGUgcW1hcmsgc3RhciBwbHVzIG1pbnVzIGNvbW1hIGNvbG9uIHNlbWljb2wgZXF1YWwgbGVz cyBtb3JlIGF0IGxxYnJhY2sgcnFicmFjayBsY2JyYWNrIHJjYnJhY2sgc3BhY2UgdGFiIGxpbmVm ZWVkIGJhY2tzcGFjZSBmb3JtZmVlZCBjYXJyaWFnZXJldCBxdWFkcmlncmFwaDAgcXVhZHJpZ3Jh cGgxIHF1YWRyaWdyYXBoMiBxdWFkcmlncmFwaDMgcXVhZHJpZ3JhcGg0IGFfYiBhX19iJwojW3N0 ZGVycl0rIGlzX2luX2xpc3QgZmFpbC1idWlsZGRpcgojW3N0ZGVycl0rIGl0ZW09ZmFpbC1idWls ZGRpcgojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJd KyByZXR1cm4gMQojW3N0ZGVycl0rIGlzX2luX2xpc3QgZmFpbC1kZXN0ZGlyCiNbc3RkZXJyXSsg aXRlbT1mYWlsLWRlc3RkaXIKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNhc2UgIiAkKiAi IGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyBkZWZpbmVfcHJvYmxlbWF0aWNfc3Ry aW5nIGFfbGZfYiAnYQojW3N0ZGVycl1iJyBmYWlsLWJ1aWxkZGlyIGZhaWwtZGVzdGRpcgojW3N0 ZGVycl0rIHRzdD1hX2xmX2IKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGV2YWwgJ2luc3Rz cGNfX2FfbGZfYj0kMScKI1tzdGRlcnJdKysgaW5zdHNwY19fYV9sZl9iPSdhCiNbc3RkZXJyXWIn CiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBhbGxfdGVzdF9uYW1lc19saXN0PScgc3F1b3Rl IGRxdW90ZSBicXVvdGUgc2hhcnAgZG9sbGFyIGJhbmcgYnNsYXNoIGFtcGVyc2FuZCBwZXJjZW50 IGxlZnRwYXIgcmlnaHRwYXIgcGlwZSBjYXJldCB0aWxkZSBxbWFyayBzdGFyIHBsdXMgbWludXMg Y29tbWEgY29sb24gc2VtaWNvbCBlcXVhbCBsZXNzIG1vcmUgYXQgbHFicmFjayBycWJyYWNrIGxj YnJhY2sgcmNicmFjayBzcGFjZSB0YWIgbGluZWZlZWQgYmFja3NwYWNlIGZvcm1mZWVkIGNhcnJp YWdlcmV0IHF1YWRyaWdyYXBoMCBxdWFkcmlncmFwaDEgcXVhZHJpZ3JhcGgyIHF1YWRyaWdyYXBo MyBxdWFkcmlncmFwaDQgYV9iIGFfX2IgYV9sZl9iJwojW3N0ZGVycl0rIGlzX2luX2xpc3QgZmFp bC1idWlsZGRpciBmYWlsLWJ1aWxkZGlyIGZhaWwtZGVzdGRpcgojW3N0ZGVycl0rIGl0ZW09ZmFp bC1idWlsZGRpcgojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tz dGRlcnJdKyByZXR1cm4gMAojW3N0ZGVycl0rIGJ1aWxkZGlyX3hmYWlscz0nIHNxdW90ZSBkcXVv dGUgYnF1b3RlIHNoYXJwIGRvbGxhciBic2xhc2ggYW1wZXJzYW5kIGxpbmVmZWVkIHF1YWRyaWdy YXBoMCBhX2xmX2InCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBmYWlsLWRlc3RkaXIgZmFpbC1idWls ZGRpciBmYWlsLWRlc3RkaXIKI1tzdGRlcnJdKyBpdGVtPWZhaWwtZGVzdGRpcgojW3N0ZGVycl0r IHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyByZXR1cm4gMAojW3N0 ZGVycl0rIGRlc3RkaXJfeGZhaWxzPScgc3F1b3RlIGRxdW90ZSBicXVvdGUgc2hhcnAgZG9sbGFy IGxpbmVmZWVkIGFfbGZfYicKI1tzdGRlcnJdKyBkZWZpbmVfcHJvYmxlbWF0aWNfc3RyaW5nIGRv dGRvdGRvdCAuLi4KI1tzdGRlcnJdKyB0c3Q9ZG90ZG90ZG90CiNbc3RkZXJyXSsgc2hpZnQKI1tz dGRlcnJdKyBldmFsICdpbnN0c3BjX19kb3Rkb3Rkb3Q9JDEnCiNbc3RkZXJyXSsrIGluc3RzcGNf X2RvdGRvdGRvdD0uLi4KI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGFsbF90ZXN0X25hbWVz X2xpc3Q9JyBzcXVvdGUgZHF1b3RlIGJxdW90ZSBzaGFycCBkb2xsYXIgYmFuZyBic2xhc2ggYW1w ZXJzYW5kIHBlcmNlbnQgbGVmdHBhciByaWdodHBhciBwaXBlIGNhcmV0IHRpbGRlIHFtYXJrIHN0 YXIgcGx1cyBtaW51cyBjb21tYSBjb2xvbiBzZW1pY29sIGVxdWFsIGxlc3MgbW9yZSBhdCBscWJy YWNrIHJxYnJhY2sgbGNicmFjayByY2JyYWNrIHNwYWNlIHRhYiBsaW5lZmVlZCBiYWNrc3BhY2Ug Zm9ybWZlZWQgY2FycmlhZ2VyZXQgcXVhZHJpZ3JhcGgwIHF1YWRyaWdyYXBoMSBxdWFkcmlncmFw aDIgcXVhZHJpZ3JhcGgzIHF1YWRyaWdyYXBoNCBhX2IgYV9fYiBhX2xmX2IgZG90ZG90ZG90Jwoj W3N0ZGVycl0rIGlzX2luX2xpc3QgZmFpbC1idWlsZGRpcgojW3N0ZGVycl0rIGl0ZW09ZmFpbC1i dWlsZGRpcgojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRl cnJdKyByZXR1cm4gMQojW3N0ZGVycl0rIGlzX2luX2xpc3QgZmFpbC1kZXN0ZGlyCiNbc3RkZXJy XSsgaXRlbT1mYWlsLWRlc3RkaXIKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNhc2UgIiAk KiAiIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyBkZWZpbmVfcHJvYmxlbWF0aWNf c3RyaW5nIGRvc2RyaXZlIGE6CiNbc3RkZXJyXSsgdHN0PWRvc2RyaXZlCiNbc3RkZXJyXSsgc2hp ZnQKI1tzdGRlcnJdKyBldmFsICdpbnN0c3BjX19kb3Nkcml2ZT0kMScKI1tzdGRlcnJdKysgaW5z dHNwY19fZG9zZHJpdmU9YToKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGFsbF90ZXN0X25h bWVzX2xpc3Q9JyBzcXVvdGUgZHF1b3RlIGJxdW90ZSBzaGFycCBkb2xsYXIgYmFuZyBic2xhc2gg YW1wZXJzYW5kIHBlcmNlbnQgbGVmdHBhciByaWdodHBhciBwaXBlIGNhcmV0IHRpbGRlIHFtYXJr IHN0YXIgcGx1cyBtaW51cyBjb21tYSBjb2xvbiBzZW1pY29sIGVxdWFsIGxlc3MgbW9yZSBhdCBs cWJyYWNrIHJxYnJhY2sgbGNicmFjayByY2JyYWNrIHNwYWNlIHRhYiBsaW5lZmVlZCBiYWNrc3Bh Y2UgZm9ybWZlZWQgY2FycmlhZ2VyZXQgcXVhZHJpZ3JhcGgwIHF1YWRyaWdyYXBoMSBxdWFkcmln cmFwaDIgcXVhZHJpZ3JhcGgzIHF1YWRyaWdyYXBoNCBhX2IgYV9fYiBhX2xmX2IgZG90ZG90ZG90 IGRvc2RyaXZlJwojW3N0ZGVycl0rIGlzX2luX2xpc3QgZmFpbC1idWlsZGRpcgojW3N0ZGVycl0r IGl0ZW09ZmFpbC1idWlsZGRpcgojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQq ICIgaW4KI1tzdGRlcnJdKyByZXR1cm4gMQojW3N0ZGVycl0rIGlzX2luX2xpc3QgZmFpbC1kZXN0 ZGlyCiNbc3RkZXJyXSsgaXRlbT1mYWlsLWRlc3RkaXIKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVy cl0rIGNhc2UgIiAkKiAiIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyBkZWZpbmVf cHJvYmxlbWF0aWNfc3RyaW5nIG1pc2NnbG9iMSAnP1thLXpdKicKI1tzdGRlcnJdKyB0c3Q9bWlz Y2dsb2IxCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBldmFsICdpbnN0c3BjX19taXNjZ2xv YjE9JDEnCiNbc3RkZXJyXSsrIGluc3RzcGNfX21pc2NnbG9iMT0nP1thLXpdKicKI1tzdGRlcnJd KyBzaGlmdAojW3N0ZGVycl0rIGFsbF90ZXN0X25hbWVzX2xpc3Q9JyBzcXVvdGUgZHF1b3RlIGJx dW90ZSBzaGFycCBkb2xsYXIgYmFuZyBic2xhc2ggYW1wZXJzYW5kIHBlcmNlbnQgbGVmdHBhciBy aWdodHBhciBwaXBlIGNhcmV0IHRpbGRlIHFtYXJrIHN0YXIgcGx1cyBtaW51cyBjb21tYSBjb2xv biBzZW1pY29sIGVxdWFsIGxlc3MgbW9yZSBhdCBscWJyYWNrIHJxYnJhY2sgbGNicmFjayByY2Jy YWNrIHNwYWNlIHRhYiBsaW5lZmVlZCBiYWNrc3BhY2UgZm9ybWZlZWQgY2FycmlhZ2VyZXQgcXVh ZHJpZ3JhcGgwIHF1YWRyaWdyYXBoMSBxdWFkcmlncmFwaDIgcXVhZHJpZ3JhcGgzIHF1YWRyaWdy YXBoNCBhX2IgYV9fYiBhX2xmX2IgZG90ZG90ZG90IGRvc2RyaXZlIG1pc2NnbG9iMScKI1tzdGRl cnJdKyBpc19pbl9saXN0IGZhaWwtYnVpbGRkaXIKI1tzdGRlcnJdKyBpdGVtPWZhaWwtYnVpbGRk aXIKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNhc2UgIiAkKiAiIGluCiNbc3RkZXJyXSsg cmV0dXJuIDEKI1tzdGRlcnJdKyBpc19pbl9saXN0IGZhaWwtZGVzdGRpcgojW3N0ZGVycl0rIGl0 ZW09ZmFpbC1kZXN0ZGlyCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBjYXNlICIgJCogIiBp bgojW3N0ZGVycl0rIHJldHVybiAxCiNbc3RkZXJyXSsgZGVmaW5lX3Byb2JsZW1hdGljX3N0cmlu ZyBtaXNjZ2xvYjIgJy4qP1swLTldJwojW3N0ZGVycl0rIHRzdD1taXNjZ2xvYjIKI1tzdGRlcnJd KyBzaGlmdAojW3N0ZGVycl0rIGV2YWwgJ2luc3RzcGNfX21pc2NnbG9iMj0kMScKI1tzdGRlcnJd KysgaW5zdHNwY19fbWlzY2dsb2IyPScuKj9bMC05XScKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVy cl0rIGFsbF90ZXN0X25hbWVzX2xpc3Q9JyBzcXVvdGUgZHF1b3RlIGJxdW90ZSBzaGFycCBkb2xs YXIgYmFuZyBic2xhc2ggYW1wZXJzYW5kIHBlcmNlbnQgbGVmdHBhciByaWdodHBhciBwaXBlIGNh cmV0IHRpbGRlIHFtYXJrIHN0YXIgcGx1cyBtaW51cyBjb21tYSBjb2xvbiBzZW1pY29sIGVxdWFs IGxlc3MgbW9yZSBhdCBscWJyYWNrIHJxYnJhY2sgbGNicmFjayByY2JyYWNrIHNwYWNlIHRhYiBs aW5lZmVlZCBiYWNrc3BhY2UgZm9ybWZlZWQgY2FycmlhZ2VyZXQgcXVhZHJpZ3JhcGgwIHF1YWRy aWdyYXBoMSBxdWFkcmlncmFwaDIgcXVhZHJpZ3JhcGgzIHF1YWRyaWdyYXBoNCBhX2IgYV9fYiBh X2xmX2IgZG90ZG90ZG90IGRvc2RyaXZlIG1pc2NnbG9iMSBtaXNjZ2xvYjInCiNbc3RkZXJyXSsg aXNfaW5fbGlzdCBmYWlsLWJ1aWxkZGlyCiNbc3RkZXJyXSsgaXRlbT1mYWlsLWJ1aWxkZGlyCiNb c3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBjYXNlICIgJCogIiBpbgojW3N0ZGVycl0rIHJldHVy biAxCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBmYWlsLWRlc3RkaXIKI1tzdGRlcnJdKyBpdGVtPWZh aWwtZGVzdGRpcgojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tz dGRlcnJdKyByZXR1cm4gMQojW3N0ZGVycl0rIHVuc2V0IGRlZgojW3N0ZGVycl0rIHRlc3QgMCAt Z3QgMAojW3N0ZGVycl0rIHRlc3RfbmFtZXNfbGlzdD0nIHNxdW90ZSBkcXVvdGUgYnF1b3RlIHNo YXJwIGRvbGxhciBiYW5nIGJzbGFzaCBhbXBlcnNhbmQgcGVyY2VudCBsZWZ0cGFyIHJpZ2h0cGFy IHBpcGUgY2FyZXQgdGlsZGUgcW1hcmsgc3RhciBwbHVzIG1pbnVzIGNvbW1hIGNvbG9uIHNlbWlj b2wgZXF1YWwgbGVzcyBtb3JlIGF0IGxxYnJhY2sgcnFicmFjayBsY2JyYWNrIHJjYnJhY2sgc3Bh Y2UgdGFiIGxpbmVmZWVkIGJhY2tzcGFjZSBmb3JtZmVlZCBjYXJyaWFnZXJldCBxdWFkcmlncmFw aDAgcXVhZHJpZ3JhcGgxIHF1YWRyaWdyYXBoMiBxdWFkcmlncmFwaDMgcXVhZHJpZ3JhcGg0IGFf YiBhX19iIGFfbGZfYiBkb3Rkb3Rkb3QgZG9zZHJpdmUgbWlzY2dsb2IxIG1pc2NnbG9iMicKI1tz dGRlcnJdKyBwbGFuXyA5NAojW3N0ZGVycl0rIHRlc3QgMSAtZXEgMAojW3N0ZGVycl0rIHRlc3Qg MSAtZ2UgMgojW3N0ZGVycl0rIHRlc3QgeG5vbmUgJyE9JyB4bm9uZQojW3N0ZGVycl0rIHRlc3Qg eDk0ID0geHVua25vd24KI1tzdGRlcnJdKyB0ZXN0IHg5NCA9IHhsYXRlcgojW3N0ZGVycl0rIHRl c3QgeDk0ID0geGxhenkKI1tzdGRlcnJdKyB0ZXN0IHg5NCA9IHhub3cKI1tzdGRlcnJdKyB0ZXN0 IDk0IC1nZSAwCiNbc3RkZXJyXSsgcGxhbm5lZF89OTQKI1tzdGRlcnJdKyBlY2hvIDEuLjk0CiNb c3RkZXJyXSsrIHB3ZAojW3N0ZGVycl0rIG9jd2Q9L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpcgojW3N0ZGVycl0rIGNyZWF0ZV9pbnB1dF9kYXRhCiNbc3RkZXJyXSsgbWtkaXIg c3ViCiNbc3RkZXJyXSsgdW5pbmRlbnQKI1tzdGRlcnJdKyB0ZXN0IHggPSB4CiNbc3RkZXJyXSsr IHByaW50ZiAnJXNcbicgJwojW3N0ZGVycl0gIC9eJC9iICAgICAgICAgICAgICAgICAgICAjIE5v dGhpbmcgdG8gZG8gZm9yIGVtcHR5IGxpbmVzLgojW3N0ZGVycl0gIHggICAgICAgICAgICAgICAg ICAgICAgICAjIEdldCB4PGluZGVudD4gaW50byBwYXR0ZXJuIHNwYWNlLgojW3N0ZGVycl0gIC9e JC97ICAgICAgICAgICAgICAgICAgICAjIE5vIHByaW9yIHg8aW5kZW50PiwgZ28gcHJlcGFyZSBp dC4KI1tzdGRlcnJdICAgIGcgICAgICAgICAgICAgICAgICAgICAgIyBDb3B5IHRoaXMgMXN0IG5v bi1ibGFuayBsaW5lIGludG8gcGF0dGVybiBzcGFjZS4KI1tzdGRlcnJdICAgIHMvXlwoWwkgXSpc KS4qL3hcMS8gICAjIFByZXBhcmUgeDxpbmRlbnQ+IGluIHBhdHRlcm4gc3BhY2UuCiNbc3RkZXJy XSAgfSAgICAgICAgICAgICAgICAgICAgICAgICMgTm93OiB4PGluZGVudD4gaW4gcGF0dGVybiBh bmQgPGxpbmU+IGluIGhvbGQuCiNbc3RkZXJyXSAgRyAgICAgICAgICAgICAgICAgICAgICAgICMg QnVpbGQgeDxpbmRlbnQ+XG48bGluZT4gaW4gcGF0dGVybiBzcGFjZSwgYW5kCiNbc3RkZXJyXSAg aCAgICAgICAgICAgICAgICAgICAgICAgICMgZHVwbGljYXRlIGl0IGludG8gaG9sZCBzcGFjZS4K I1tzdGRlcnJdICBzL1xuLiokLy8gICAgICAgICAgICAgICAgIyBSZXN0b3JlIHg8aW5kZW50PiBp biBwYXR0ZXJuIHNwYWNlLCBhbmQKI1tzdGRlcnJdICB4ICAgICAgICAgICAgICAgICAgICAgICAg IyBleGNoYW5nZSB3aXRoIHRoZSBhYm92ZSBkdXBsaWNhdGUgaW4gaG9sZCBzcGFjZS4KI1tzdGRl cnJdICBzL154XCguKlwpXG5cMS8vICAgICAgICAgIyBSZW1vdmUgbGVhZGluZyA8aW5kZW50PiBm cm9tIDxsaW5lPi4KI1tzdGRlcnJdICBzL154Lipcbi8vICAgICAgICAgICAgICAgIyBSZXN0b3Jl IDxsaW5lPiB3aGVuIHRoZXJlIGlzIG5vIGxlYWRpbmcgPGluZGVudD4uCiNbc3RkZXJyXScKI1tz dGRlcnJdKysgc2VkIC1lICdzLyAgKiMgLiovLycKI1tzdGRlcnJdKyBzZWRfdW5pbmRlbnRfcHJv Zz0nCiNbc3RkZXJyXSAgL14kL2IKI1tzdGRlcnJdICB4CiNbc3RkZXJyXSAgL14kL3sKI1tzdGRl cnJdICAgIGcKI1tzdGRlcnJdICAgIHMvXlwoWwkgXSpcKS4qL3hcMS8KI1tzdGRlcnJdICB9CiNb c3RkZXJyXSAgRwojW3N0ZGVycl0gIGgKI1tzdGRlcnJdICBzL1xuLiokLy8KI1tzdGRlcnJdICB4 CiNbc3RkZXJyXSAgcy9eeFwoLipcKVxuXDEvLwojW3N0ZGVycl0gIHMvXnguKlxuLy8nCiNbc3Rk ZXJyXSsgc2VkICcKI1tzdGRlcnJdICAvXiQvYgojW3N0ZGVycl0gIHgKI1tzdGRlcnJdICAvXiQv ewojW3N0ZGVycl0gICAgZwojW3N0ZGVycl0gICAgcy9eXChbCSBdKlwpLioveFwxLwojW3N0ZGVy cl0gIH0KI1tzdGRlcnJdICBHCiNbc3RkZXJyXSAgaAojW3N0ZGVycl0gIHMvXG4uKiQvLwojW3N0 ZGVycl0gIHgKI1tzdGRlcnJdICBzL154XCguKlwpXG5cMS8vCiNbc3RkZXJyXSAgcy9eeC4qXG4v LycKI1tzdGRlcnJdKyA6CiNbc3RkZXJyXSsgOgojW3N0ZGVycl0rIDoKI1tzdGRlcnJdKyA6CiNb c3RkZXJyXSsgOgojW3N0ZGVycl0rIDoKI1tzdGRlcnJdKyB1bmluZGVudAojW3N0ZGVycl0rIHRl c3QgJ3gKI1tzdGRlcnJdICAvXiQvYgojW3N0ZGVycl0gIHgKI1tzdGRlcnJdICAvXiQvewojW3N0 ZGVycl0gICAgZwojW3N0ZGVycl0gICAgcy9eXChbCSBdKlwpLioveFwxLwojW3N0ZGVycl0gIH0K I1tzdGRlcnJdICBHCiNbc3RkZXJyXSAgaAojW3N0ZGVycl0gIHMvXG4uKiQvLwojW3N0ZGVycl0g IHgKI1tzdGRlcnJdICBzL154XCguKlwpXG5cMS8vCiNbc3RkZXJyXSAgcy9eeC4qXG4vLycgPSB4 CiNbc3RkZXJyXSsgc2VkICcKI1tzdGRlcnJdICAvXiQvYgojW3N0ZGVycl0gIHgKI1tzdGRlcnJd ICAvXiQvewojW3N0ZGVycl0gICAgZwojW3N0ZGVycl0gICAgcy9eXChbCSBdKlwpLioveFwxLwoj W3N0ZGVycl0gIH0KI1tzdGRlcnJdICBHCiNbc3RkZXJyXSAgaAojW3N0ZGVycl0gIHMvXG4uKiQv LwojW3N0ZGVycl0gIHgKI1tzdGRlcnJdICBzL154XCguKlwpXG5cMS8vCiNbc3RkZXJyXSAgcy9e eC4qXG4vLycKI1tzdGRlcnJdKyB1bmluZGVudAojW3N0ZGVycl0rIHRlc3QgJ3gKI1tzdGRlcnJd ICAvXiQvYgojW3N0ZGVycl0gIHgKI1tzdGRlcnJdICAvXiQvewojW3N0ZGVycl0gICAgZwojW3N0 ZGVycl0gICAgcy9eXChbCSBdKlwpLioveFwxLwojW3N0ZGVycl0gIH0KI1tzdGRlcnJdICBHCiNb c3RkZXJyXSAgaAojW3N0ZGVycl0gIHMvXG4uKiQvLwojW3N0ZGVycl0gIHgKI1tzdGRlcnJdICBz L154XCguKlwpXG5cMS8vCiNbc3RkZXJyXSAgcy9eeC4qXG4vLycgPSB4CiNbc3RkZXJyXSsgc2Vk ICcKI1tzdGRlcnJdICAvXiQvYgojW3N0ZGVycl0gIHgKI1tzdGRlcnJdICAvXiQvewojW3N0ZGVy cl0gICAgZwojW3N0ZGVycl0gICAgcy9eXChbCSBdKlwpLioveFwxLwojW3N0ZGVycl0gIH0KI1tz dGRlcnJdICBHCiNbc3RkZXJyXSAgaAojW3N0ZGVycl0gIHMvXG4uKiQvLwojW3N0ZGVycl0gIHgK I1tzdGRlcnJdICBzL154XCguKlwpXG5cMS8vCiNbc3RkZXJyXSAgcy9eeC4qXG4vLycKI1tzdGRl cnJdKyBhY2xvY2FsLTEuMTggLVdlcnJvcgojW3N0ZGVycl0rIGF1dG9jb25mCiNbc3RkZXJyXSsg YXV0b21ha2UtMS4xOCAtLWZvcmVpZ24gLVdlcnJvciAtV2FsbCAtYQojW3N0ZGVycl1jb25maWd1 cmUuYWM6NTogaW5zdGFsbGluZyAnLi9hci1saWInCiNbc3RkZXJyXSsgZm9yIHRlc3RfbmFtZSBp biAnJHRlc3RfbmFtZXNfbGlzdCcKI1tzdGRlcnJdKyBldmFsICd0ZXN0X3N0cmluZz0ke2luc3Rz cGNfX3NxdW90ZX0nCiNbc3RkZXJyXSsrIHRlc3Rfc3RyaW5nPScnXCcnJwojW3N0ZGVycl0rIHRl c3QgJ3gnXCcnJyA9IHgKI1tzdGRlcnJdKyBta2RpciAnLi8nXCcnJwojW3N0ZGVycl0rIGNhc2Ug JHRlc3Rfc3RyaW5nIGluCiNbc3RkZXJyXSsgZm9yIHdoZXJlIGluIGJ1aWxkIGRlc3QKI1tzdGRl cnJdKyBjYXNlICR3aGVyZSBpbgojW3N0ZGVycl0rIGJ1aWxkPScuLydcJycnCiNbc3RkZXJyXSsg ZGVzdD0vdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3F1b3RlCiNb c3RkZXJyXSsgY2QgJy4vJ1wnJycKI1tzdGRlcnJdKyByPW9rCiNbc3RkZXJyXSsgLi4vY29uZmln dXJlIC0tcHJlZml4ICcvJ1wnJy1wcmVmaXgnCmNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxl IGluc3RhbGwuLi4gL3Vzci9iaW4vaW5zdGFsbCAtYwpjaGVja2luZyB3aGV0aGVyIHNsZWVwIHN1 cHBvcnRzIGZyYWN0aW9uYWwgc2Vjb25kcy4uLiB5ZXMKY2hlY2tpbmcgZmlsZXN5c3RlbSB0aW1l c3RhbXAgcmVzb2x1dGlvbi4uLiAwLjAxCmNoZWNraW5nIHdoZXRoZXIgYnVpbGQgZW52aXJvbm1l bnQgaXMgc2FuZS4uLiBubwojW3N0ZGVycl1jb25maWd1cmU6IGVycm9yOiB1bnNhZmUgYWJzb2x1 dGUgd29ya2luZyBkaXJlY3RvcnkgbmFtZQojW3N0ZGVycl0rIHI9J25vdCBvaycKI1tzdGRlcnJd KyBkZXNjcmlwdGlvbj0nc3F1b3RlIGluIGJ1aWxkZGlyJwojW3N0ZGVycl0rIGV4cGVjdGVkX3Rv X2ZhaWwgYnVpbGQgc3F1b3RlCiNbc3RkZXJyXSsgY2FzZSAkMSBpbgojW3N0ZGVycl0rIGlzX2lu X2xpc3Qgc3F1b3RlIHNxdW90ZSBkcXVvdGUgYnF1b3RlIHNoYXJwIGRvbGxhciBic2xhc2ggYW1w ZXJzYW5kIGxpbmVmZWVkIHF1YWRyaWdyYXBoMCBhX2xmX2IKI1tzdGRlcnJdKyBpdGVtPXNxdW90 ZQojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyBy ZXR1cm4gMAojW3N0ZGVycl0rIGRpcmVjdGl2ZT1UT0RPCm5vdCBvayAxIC0gc3F1b3RlIGluIGJ1 aWxkZGlyICMgVE9ETyBsb25nLXN0YW5kaW5nIGxpbWl0YXRpb24KWEZBSUw6IHQvaW5zdHNwYy50 YXAgMSAtIHNxdW90ZSBpbiBidWlsZGRpciAjIFRPRE8gbG9uZy1zdGFuZGluZyBsaW1pdGF0aW9u CiNbc3RkZXJyXSsgcmVhc29uPSdsb25nLXN0YW5kaW5nIGxpbWl0YXRpb24nCiNbc3RkZXJyXSsg cmVzdWx0XyAnbm90IG9rJyAtRCBUT0RPIC1yICdsb25nLXN0YW5kaW5nIGxpbWl0YXRpb24nIC0t ICdzcXVvdGUgaW4gYnVpbGRkaXInCiNbc3RkZXJyXSsgc2V0ICt4CiNbc3RkZXJyXSsgY2QgL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpcgojW3N0ZGVycl0rIG5vdCBhbV9rZWVw aW5nX3Rlc3RkaXJzCiNbc3RkZXJyXSsgYW1fa2VlcGluZ190ZXN0ZGlycwojW3N0ZGVycl0rIGNh c2UgJGtlZXBfdGVzdGRpcnMgaW4KI1tzdGRlcnJdKyByZXR1cm4gMQojW3N0ZGVycl0rIHRlc3Qg J25vdCBvaycgPSBvawojW3N0ZGVycl0rIDogRm9yIHNoZWxscyB3aXRoIGJ1c3RlZCAnc2V0IC1l LicKI1tzdGRlcnJdKyBmb3Igd2hlcmUgaW4gYnVpbGQgZGVzdAojW3N0ZGVycl0rIGNhc2UgJHdo ZXJlIGluCiNbc3RkZXJyXSsgYnVpbGQ9YnVpbGQtc3F1b3RlCiNbc3RkZXJyXSsgZGVzdD0nL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNxdW90ZS8nXCcnJwojW3N0 ZGVycl0rIG1rZGlyIGJ1aWxkLXNxdW90ZQojW3N0ZGVycl0rIGNkIGJ1aWxkLXNxdW90ZQojW3N0 ZGVycl0rIHI9b2sKI1tzdGRlcnJdKyAuLi9jb25maWd1cmUgLS1wcmVmaXggJy8nXCcnLXByZWZp eCcKY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbC4uLiAvdXNyL2Jpbi9pbnN0 YWxsIC1jCmNoZWNraW5nIHdoZXRoZXIgc2xlZXAgc3VwcG9ydHMgZnJhY3Rpb25hbCBzZWNvbmRz Li4uIHllcwpjaGVja2luZyBmaWxlc3lzdGVtIHRpbWVzdGFtcCByZXNvbHV0aW9uLi4uIDAuMDEK Y2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lLi4uIHllcwpjaGVja2lu ZyBmb3IgYSByYWNlLWZyZWUgbWtkaXIgLXAuLi4gbWtkaXIgLXAKY2hlY2tpbmcgZm9yIGdhd2su Li4gbm8KY2hlY2tpbmcgZm9yIG1hd2suLi4gbm8KY2hlY2tpbmcgZm9yIG5hd2suLi4gbm8KY2hl Y2tpbmcgZm9yIGF3ay4uLiBhd2sKY2hlY2tpbmcgd2hldGhlciBtYWtlIHNldHMgJChNQUtFKS4u LiB5ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRzIG5lc3RlZCB2YXJpYWJsZXMuLi4g eWVzCmNoZWNraW5nIHhhcmdzIC1uIHdvcmtzLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIFVJRCAn NTAxJyBpcyBzdXBwb3J0ZWQgYnkgdXN0YXIgZm9ybWF0Li4uIHllcwpjaGVja2luZyB3aGV0aGVy IEdJRCAnMjAnIGlzIHN1cHBvcnRlZCBieSB1c3RhciBmb3JtYXQuLi4geWVzCmNoZWNraW5nIGhv dyB0byBjcmVhdGUgYSB1c3RhciB0YXIgYXJjaGl2ZS4uLiBwbGFpbnRhcgpjaGVja2luZyBmb3Ig Z2NjLi4uIGdjYwpjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdvcmtzLi4uIHllcwpj aGVja2luZyBmb3IgQyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUuLi4gYS5vdXQK Y2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcy4uLiAKY2hlY2tpbmcgd2hldGhlciB3 ZSBhcmUgY3Jvc3MgY29tcGlsaW5nLi4uIG5vCmNoZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0 IGZpbGVzLi4uIG8KY2hlY2tpbmcgd2hldGhlciB0aGUgY29tcGlsZXIgc3VwcG9ydHMgR05VIEMu Li4geWVzCmNoZWNraW5nIHdoZXRoZXIgZ2NjIGFjY2VwdHMgLWcuLi4geWVzCmNoZWNraW5nIGZv ciBnY2Mgb3B0aW9uIHRvIGVuYWJsZSBDMjMgZmVhdHVyZXMuLi4gLXN0ZD1nbnUyMwpjaGVja2lu ZyB3aGV0aGVyIGdjYyAtc3RkPWdudTIzIHVuZGVyc3RhbmRzIC1jIGFuZCAtbyB0b2dldGhlci4u LiB5ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRzIHRoZSBpbmNsdWRlIGRpcmVjdGl2 ZS4uLiB5ZXMgKEdOVSBzdHlsZSkKY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiBnY2MgLXN0 ZD1nbnUyMy4uLiBnY2MzCmNoZWNraW5nIGZvciBhci4uLiBhcgpjaGVja2luZyB0aGUgYXJjaGl2 ZXIgKGFyKSBpbnRlcmZhY2UuLi4gYXIKY2hlY2tpbmcgZm9yIHJhbmxpYi4uLiByYW5saWIKY2hl Y2tpbmcgdGhhdCBnZW5lcmF0ZWQgZmlsZXMgYXJlIG5ld2VyIHRoYW4gY29uZmlndXJlLi4uIGRv bmUKY29uZmlndXJlOiBjcmVhdGluZyAuL2NvbmZpZy5zdGF0dXMKY29uZmlnLnN0YXR1czogY3Jl YXRpbmcgTWFrZWZpbGUKY29uZmlnLnN0YXR1czogZXhlY3V0aW5nIGRlcGZpbGVzIGNvbW1hbmRz CiNbc3RkZXJyXSsgbWFrZSBhbGwKZ2NjIC1zdGQ9Z251MjMgLURQQUNLQUdFX05BTUU9XCJpbnN0 c3BjXCIgLURQQUNLQUdFX1RBUk5BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdFX1ZFUlNJT049XCIx LjBcIiAtRFBBQ0tBR0VfU1RSSU5HPVwiaW5zdHNwY1wgMS4wXCIgLURQQUNLQUdFX0JVR1JFUE9S VD1cIlwiIC1EUEFDS0FHRV9VUkw9XCJcIiAtRFBBQ0tBR0U9XCJpbnN0c3BjXCIgLURWRVJTSU9O PVwiMS4wXCIgLUkuIC1JLi4gICAgIC1nIC1PMiAtTVQgc291cmNlLm8gLU1EIC1NUCAtTUYgLmRl cHMvc291cmNlLlRwbyAtYyAtbyBzb3VyY2UubyAuLi9zb3VyY2UuYwptdiAtZiAuZGVwcy9zb3Vy Y2UuVHBvIC5kZXBzL3NvdXJjZS5QbwpnY2MgLXN0ZD1nbnUyMyAgLWcgLU8yICAgLW8gc3ViL2Jh c2Ugc291cmNlLm8gIApnY2MgLXN0ZD1nbnUyMyAgLWcgLU8yICAgLW8gc3ViL25vYmFzZSBzb3Vy Y2UubyAgCnJtIC1mIHN1Yi9saWJiYXNlLmEKYXIgY3Igc3ViL2xpYmJhc2UuYSBzb3VyY2UubyAK cmFubGliIHN1Yi9saWJiYXNlLmEKcm0gLWYgc3ViL2xpYm5vYmFzZS5hCmFyIGNyIHN1Yi9saWJu b2Jhc2UuYSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJub2Jhc2UuYQojW3N0ZGVycl0rIERFU1RE SVI9Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zcXVvdGUvJ1wn JycKI1tzdGRlcnJdKyBmaWxlPScuLydcJycnCiNbc3RkZXJyXSsgbWFrZSB0ZXN0LWluc3QKbWFr ZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2J1aWxkLXNxdW90ZScKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3Qtc3F1b3RlLycvJy1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFs bCAtYyAuLi9zdWIvYmFzZS5zaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LXNxdW90ZS8nLyctcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3F1b3RlLycvJy1wcmVmaXgvZm9vJwogL3Vzci9i aW4vaW5zdGFsbCAtYyAtbSA2NDQgIHN1Yi9saWJiYXNlLmEgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zcXVvdGUvJy8nLXByZWZpeC9mb28nCiAoIGNkICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3F1b3RlLycvJy1wcmVmaXgv Zm9vJyAmJiByYW5saWIgbGliYmFzZS5hICkKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3F1b3RlLycvJy1wcmVmaXgvZm9vJwogIC91c3IvYmlu L2luc3RhbGwgLWMgc3ViL2Jhc2UgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1zcXVvdGUvJy8nLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNxdW90ZS8nLyctcHJlZml4L2ZvbycKIG1rZGly IC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3F1b3RlLycv Jy1wcmVmaXgvZm9vL3N1Yi8nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC4uL3N1Yi9ub2Jhc2Uuc2gg Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zcXVvdGUvJy8nLXBy ZWZpeC9mb28vc3ViLycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3Qtc3F1b3RlLycvJy1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zcXVvdGUvJy8nLXByZWZpeC9mb28vc3Vi JwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIHN1Yi9saWJub2Jhc2UuYSAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNxdW90ZS8nLyctcHJlZml4L2Zvby9z dWInCiAoIGNkICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3F1 b3RlLycvJy1wcmVmaXgvZm9vJyAmJiByYW5saWIgc3ViL2xpYm5vYmFzZS5hICkKIG1rZGlyIC1w ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3F1b3RlLycvJy1w cmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1zcXVvdGUvJy8nLXByZWZpeC9mb28vc3ViLycKICAvdXNyL2Jpbi9pbnN0YWxsIC1j IHN1Yi9ub2Jhc2UgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1z cXVvdGUvJy8nLXByZWZpeC9mb28vc3ViLycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3F1b3RlLycvJy1wcmVmaXgvZm9vJwogL3Vzci9iaW4v aW5zdGFsbCAtYyAtbSA2NDQgLi4vc3ViL2Jhc2UuZGF0ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3F1b3RlLycvJy1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zcXVvdGUvJy8nLXByZWZp eC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAuLi9zdWIvYmFzZS5oICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3F1b3RlLycvJy1wcmVmaXgvZm9v JwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1z cXVvdGUvJy8nLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXNxdW90ZS8nLyctcHJlZml4L2Zvby9zdWInCiAvdXNyL2Jpbi9p bnN0YWxsIC1jIC1tIDY0NCAgLi4vc3ViL25vYmFzZS5kYXQgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zcXVvdGUvJy8nLXByZWZpeC9mb28vc3ViJwogbWtkaXIg LXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zcXVvdGUvJy8n LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LXNxdW90ZS8nLyctcHJlZml4L2Zvby9zdWInCiAvdXNyL2Jpbi9pbnN0YWxsIC1j IC1tIDY0NCAgLi4vc3ViL25vYmFzZS5oICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3Qtc3F1b3RlLycvJy1wcmVmaXgvZm9vL3N1YicKbWFrZVsxXTogTGVhdmluZyBk aXJlY3RvcnkgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvYnVpbGQtc3F1 b3RlJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC1zcXVvdGUvJy8uLyctcHJlZml4L2Zvby9zdWIvbm9iYXNlLmgnCiNbc3RkZXJyXW1ha2U6ICoq KiBbTWFrZWZpbGU6MTE2MDogdGVzdC1pbnN0XSBFcnJvciAxCiNbc3RkZXJyXSsgcj0nbm90IG9r JwojW3N0ZGVycl0rIGRlc2NyaXB0aW9uPSdzcXVvdGUgaW4gZGVzdGRpcicKI1tzdGRlcnJdKyBl eHBlY3RlZF90b19mYWlsIGRlc3Qgc3F1b3RlCiNbc3RkZXJyXSsgY2FzZSAkMSBpbgojW3N0ZGVy cl0rIGlzX2luX2xpc3Qgc3F1b3RlIHNxdW90ZSBkcXVvdGUgYnF1b3RlIHNoYXJwIGRvbGxhciBs aW5lZmVlZCBhX2xmX2IKI1tzdGRlcnJdKyBpdGVtPXNxdW90ZQojW3N0ZGVycl0rIHNoaWZ0CiNb c3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyByZXR1cm4gMApub3Qgb2sgMiAtIHNx dW90ZSBpbiBkZXN0ZGlyICMgVE9ETyBsb25nLXN0YW5kaW5nIGxpbWl0YXRpb24KWEZBSUw6IHQv aW5zdHNwYy50YXAgMiAtIHNxdW90ZSBpbiBkZXN0ZGlyICMgVE9ETyBsb25nLXN0YW5kaW5nIGxp bWl0YXRpb24KI1tzdGRlcnJdKyBkaXJlY3RpdmU9VE9ETwojW3N0ZGVycl0rIHJlYXNvbj0nbG9u Zy1zdGFuZGluZyBsaW1pdGF0aW9uJwojW3N0ZGVycl0rIHJlc3VsdF8gJ25vdCBvaycgLUQgVE9E TyAtciAnbG9uZy1zdGFuZGluZyBsaW1pdGF0aW9uJyAtLSAnc3F1b3RlIGluIGRlc3RkaXInCiNb c3RkZXJyXSsgc2V0ICt4CiNbc3RkZXJyXSsgY2QgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpcgojW3N0ZGVycl0rIG5vdCBhbV9rZWVwaW5nX3Rlc3RkaXJzCiNbc3RkZXJyXSsg YW1fa2VlcGluZ190ZXN0ZGlycwojW3N0ZGVycl0rIGNhc2UgJGtlZXBfdGVzdGRpcnMgaW4KI1tz dGRlcnJdKyByZXR1cm4gMQojW3N0ZGVycl0rIHRlc3QgJ25vdCBvaycgPSBvawojW3N0ZGVycl0r IDogRm9yIHNoZWxscyB3aXRoIGJ1c3RlZCAnc2V0IC1lLicKI1tzdGRlcnJdKyBmb3IgdGVzdF9u YW1lIGluICckdGVzdF9uYW1lc19saXN0JwojW3N0ZGVycl0rIGV2YWwgJ3Rlc3Rfc3RyaW5nPSR7 aW5zdHNwY19fZHF1b3RlfScKI1tzdGRlcnJdKysgdGVzdF9zdHJpbmc9JyInCiNbc3RkZXJyXSsg dGVzdCAneCInID0geAojW3N0ZGVycl0rIG1rZGlyICcuLyInCiNbc3RkZXJyXSsgY2FzZSAkdGVz dF9zdHJpbmcgaW4KI1tzdGRlcnJdKyBmb3Igd2hlcmUgaW4gYnVpbGQgZGVzdAojW3N0ZGVycl0r IGNhc2UgJHdoZXJlIGluCiNbc3RkZXJyXSsgYnVpbGQ9Jy4vIicKI1tzdGRlcnJdKyBkZXN0PS91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1kcXVvdGUKI1tzdGRlcnJd KyBjZCAnLi8iJwojW3N0ZGVycl0rIHI9b2sKI1tzdGRlcnJdKyAuLi9jb25maWd1cmUgLS1wcmVm aXggJy8iLXByZWZpeCcKY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbC4uLiAv dXNyL2Jpbi9pbnN0YWxsIC1jCmNoZWNraW5nIHdoZXRoZXIgc2xlZXAgc3VwcG9ydHMgZnJhY3Rp b25hbCBzZWNvbmRzLi4uIHllcwpjaGVja2luZyBmaWxlc3lzdGVtIHRpbWVzdGFtcCByZXNvbHV0 aW9uLi4uIDAuMDEKY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lLi4u IG5vCiNbc3RkZXJyXWNvbmZpZ3VyZTogZXJyb3I6IHVuc2FmZSBhYnNvbHV0ZSB3b3JraW5nIGRp cmVjdG9yeSBuYW1lCiNbc3RkZXJyXSsgcj0nbm90IG9rJwojW3N0ZGVycl0rIGRlc2NyaXB0aW9u PSdkcXVvdGUgaW4gYnVpbGRkaXInCiNbc3RkZXJyXSsgZXhwZWN0ZWRfdG9fZmFpbCBidWlsZCBk cXVvdGUKI1tzdGRlcnJdKyBjYXNlICQxIGluCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBkcXVvdGUg c3F1b3RlIGRxdW90ZSBicXVvdGUgc2hhcnAgZG9sbGFyIGJzbGFzaCBhbXBlcnNhbmQgbGluZWZl ZWQgcXVhZHJpZ3JhcGgwIGFfbGZfYgojW3N0ZGVycl0rIGl0ZW09ZHF1b3RlCiNbc3RkZXJyXSsg c2hpZnQKI1tzdGRlcnJdKyBjYXNlICIgJCogIiBpbgojW3N0ZGVycl0rIHJldHVybiAwCm5vdCBv ayAzIC0gZHF1b3RlIGluIGJ1aWxkZGlyICMgVE9ETyBsb25nLXN0YW5kaW5nIGxpbWl0YXRpb24K WEZBSUw6IHQvaW5zdHNwYy50YXAgMyAtIGRxdW90ZSBpbiBidWlsZGRpciAjIFRPRE8gbG9uZy1z dGFuZGluZyBsaW1pdGF0aW9uCiNbc3RkZXJyXSsgZGlyZWN0aXZlPVRPRE8KI1tzdGRlcnJdKyBy ZWFzb249J2xvbmctc3RhbmRpbmcgbGltaXRhdGlvbicKI1tzdGRlcnJdKyByZXN1bHRfICdub3Qg b2snIC1EIFRPRE8gLXIgJ2xvbmctc3RhbmRpbmcgbGltaXRhdGlvbicgLS0gJ2RxdW90ZSBpbiBi dWlsZGRpcicKI1tzdGRlcnJdKyBzZXQgK3gKI1tzdGRlcnJdKyBjZCAvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyCiNbc3RkZXJyXSsgbm90IGFtX2tlZXBpbmdfdGVzdGRpcnMK I1tzdGRlcnJdKyBhbV9rZWVwaW5nX3Rlc3RkaXJzCiNbc3RkZXJyXSsgY2FzZSAka2VlcF90ZXN0 ZGlycyBpbgojW3N0ZGVycl0rIHJldHVybiAxCiNbc3RkZXJyXSsgdGVzdCAnbm90IG9rJyA9IG9r CiNbc3RkZXJyXSsgOiBGb3Igc2hlbGxzIHdpdGggYnVzdGVkICdzZXQgLWUuJwojW3N0ZGVycl0r IGZvciB3aGVyZSBpbiBidWlsZCBkZXN0CiNbc3RkZXJyXSsgY2FzZSAkd2hlcmUgaW4KI1tzdGRl cnJdKyBidWlsZD1idWlsZC1kcXVvdGUKI1tzdGRlcnJdKyBkZXN0PScvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtZHF1b3RlLyInCiNbc3RkZXJyXSsgbWtkaXIgYnVp bGQtZHF1b3RlCiNbc3RkZXJyXSsgY2QgYnVpbGQtZHF1b3RlCiNbc3RkZXJyXSsgcj1vawojW3N0 ZGVycl0rIC4uL2NvbmZpZ3VyZSAtLXByZWZpeCAnLyItcHJlZml4JwpjaGVja2luZyBmb3IgYSBC U0QtY29tcGF0aWJsZSBpbnN0YWxsLi4uIC91c3IvYmluL2luc3RhbGwgLWMKY2hlY2tpbmcgd2hl dGhlciBzbGVlcCBzdXBwb3J0cyBmcmFjdGlvbmFsIHNlY29uZHMuLi4geWVzCmNoZWNraW5nIGZp bGVzeXN0ZW0gdGltZXN0YW1wIHJlc29sdXRpb24uLi4gMC4wMQpjaGVja2luZyB3aGV0aGVyIGJ1 aWxkIGVudmlyb25tZW50IGlzIHNhbmUuLi4geWVzCmNoZWNraW5nIGZvciBhIHJhY2UtZnJlZSBt a2RpciAtcC4uLiBta2RpciAtcApjaGVja2luZyBmb3IgZ2F3ay4uLiBubwpjaGVja2luZyBmb3Ig bWF3ay4uLiBubwpjaGVja2luZyBmb3IgbmF3ay4uLiBubwpjaGVja2luZyBmb3IgYXdrLi4uIGF3 awpjaGVja2luZyB3aGV0aGVyIG1ha2Ugc2V0cyAkKE1BS0UpLi4uIHllcwpjaGVja2luZyB3aGV0 aGVyIG1ha2Ugc3VwcG9ydHMgbmVzdGVkIHZhcmlhYmxlcy4uLiB5ZXMKY2hlY2tpbmcgeGFyZ3Mg LW4gd29ya3MuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgVUlEICc1MDEnIGlzIHN1cHBvcnRlZCBi eSB1c3RhciBmb3JtYXQuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgR0lEICcyMCcgaXMgc3VwcG9y dGVkIGJ5IHVzdGFyIGZvcm1hdC4uLiB5ZXMKY2hlY2tpbmcgaG93IHRvIGNyZWF0ZSBhIHVzdGFy IHRhciBhcmNoaXZlLi4uIHBsYWludGFyCmNoZWNraW5nIGZvciBnY2MuLi4gZ2NjCmNoZWNraW5n IHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgd29ya3MuLi4geWVzCmNoZWNraW5nIGZvciBDIGNvbXBp bGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZS4uLiBhLm91dApjaGVja2luZyBmb3Igc3VmZml4 IG9mIGV4ZWN1dGFibGVzLi4uIApjaGVja2luZyB3aGV0aGVyIHdlIGFyZSBjcm9zcyBjb21waWxp bmcuLi4gbm8KY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMuLi4gbwpjaGVja2lu ZyB3aGV0aGVyIHRoZSBjb21waWxlciBzdXBwb3J0cyBHTlUgQy4uLiB5ZXMKY2hlY2tpbmcgd2hl dGhlciBnY2MgYWNjZXB0cyAtZy4uLiB5ZXMKY2hlY2tpbmcgZm9yIGdjYyBvcHRpb24gdG8gZW5h YmxlIEMyMyBmZWF0dXJlcy4uLiAtc3RkPWdudTIzCmNoZWNraW5nIHdoZXRoZXIgZ2NjIC1zdGQ9 Z251MjMgdW5kZXJzdGFuZHMgLWMgYW5kIC1vIHRvZ2V0aGVyLi4uIHllcwpjaGVja2luZyB3aGV0 aGVyIG1ha2Ugc3VwcG9ydHMgdGhlIGluY2x1ZGUgZGlyZWN0aXZlLi4uIHllcyAoR05VIHN0eWxl KQpjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mIGdjYyAtc3RkPWdudTIzLi4uIGdjYzMKY2hl Y2tpbmcgZm9yIGFyLi4uIGFyCmNoZWNraW5nIHRoZSBhcmNoaXZlciAoYXIpIGludGVyZmFjZS4u LiBhcgpjaGVja2luZyBmb3IgcmFubGliLi4uIHJhbmxpYgpjaGVja2luZyB0aGF0IGdlbmVyYXRl ZCBmaWxlcyBhcmUgbmV3ZXIgdGhhbiBjb25maWd1cmUuLi4gZG9uZQpjb25maWd1cmU6IGNyZWF0 aW5nIC4vY29uZmlnLnN0YXR1cwpjb25maWcuc3RhdHVzOiBjcmVhdGluZyBNYWtlZmlsZQpjb25m aWcuc3RhdHVzOiBleGVjdXRpbmcgZGVwZmlsZXMgY29tbWFuZHMKI1tzdGRlcnJdKyBtYWtlIGFs bApnY2MgLXN0ZD1nbnUyMyAtRFBBQ0tBR0VfTkFNRT1cImluc3RzcGNcIiAtRFBBQ0tBR0VfVEFS TkFNRT1cImluc3RzcGNcIiAtRFBBQ0tBR0VfVkVSU0lPTj1cIjEuMFwiIC1EUEFDS0FHRV9TVFJJ Tkc9XCJpbnN0c3BjXCAxLjBcIiAtRFBBQ0tBR0VfQlVHUkVQT1JUPVwiXCIgLURQQUNLQUdFX1VS TD1cIlwiIC1EUEFDS0FHRT1cImluc3RzcGNcIiAtRFZFUlNJT049XCIxLjBcIiAtSS4gLUkuLiAg ICAgLWcgLU8yIC1NVCBzb3VyY2UubyAtTUQgLU1QIC1NRiAuZGVwcy9zb3VyY2UuVHBvIC1jIC1v IHNvdXJjZS5vIC4uL3NvdXJjZS5jCm12IC1mIC5kZXBzL3NvdXJjZS5UcG8gLmRlcHMvc291cmNl LlBvCmdjYyAtc3RkPWdudTIzICAtZyAtTzIgICAtbyBzdWIvYmFzZSBzb3VyY2UubyAgCmdjYyAt c3RkPWdudTIzICAtZyAtTzIgICAtbyBzdWIvbm9iYXNlIHNvdXJjZS5vICAKcm0gLWYgc3ViL2xp YmJhc2UuYQphciBjciBzdWIvbGliYmFzZS5hIHNvdXJjZS5vIApyYW5saWIgc3ViL2xpYmJhc2Uu YQpybSAtZiBzdWIvbGlibm9iYXNlLmEKYXIgY3Igc3ViL2xpYm5vYmFzZS5hIHNvdXJjZS5vIApy YW5saWIgc3ViL2xpYm5vYmFzZS5hCiNbc3RkZXJyXSsgREVTVERJUj0nL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWRxdW90ZS8iJwojW3N0ZGVycl0rIGZpbGU9Jy4v IicKI1tzdGRlcnJdKyBtYWtlIHRlc3QtaW5zdAptYWtlWzFdOiBFbnRlcmluZyBkaXJlY3Rvcnkg Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvYnVpbGQtZHF1b3RlJwojW3N0 ZGVycl0vYmluL3NoOiAtYzogbGluZSAyMzogdW5leHBlY3RlZCBFT0Ygd2hpbGUgbG9va2luZyBm b3IgbWF0Y2hpbmcgYCInCiNbc3RkZXJyXS9iaW4vc2g6IC1jOiBsaW5lIDI2OiBzeW50YXggZXJy b3I6IHVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUKI1tzdGRlcnJdbWFrZVsxXTogKioqIFtNYWtlZmls ZTo1NzI6IGluc3RhbGwtZGlzdF9mb29leGVjU0NSSVBUU10gRXJyb3IgMgptYWtlWzFdOiBMZWF2 aW5nIGRpcmVjdG9yeSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9idWls ZC1kcXVvdGUnCiNbc3RkZXJyXW1ha2U6ICoqKiBbTWFrZWZpbGU6MTAxNzogaW5zdGFsbC1hbV0g RXJyb3IgMgojW3N0ZGVycl0rIHI9J25vdCBvaycKI1tzdGRlcnJdKyBkZXNjcmlwdGlvbj0nZHF1 b3RlIGluIGRlc3RkaXInCiNbc3RkZXJyXSsgZXhwZWN0ZWRfdG9fZmFpbCBkZXN0IGRxdW90ZQoj W3N0ZGVycl0rIGNhc2UgJDEgaW4KI1tzdGRlcnJdKyBpc19pbl9saXN0IGRxdW90ZSBzcXVvdGUg ZHF1b3RlIGJxdW90ZSBzaGFycCBkb2xsYXIgbGluZWZlZWQgYV9sZl9iCiNbc3RkZXJyXSsgaXRl bT1kcXVvdGUKbm90IG9rIDQgLSBkcXVvdGUgaW4gZGVzdGRpciAjIFRPRE8gbG9uZy1zdGFuZGlu ZyBsaW1pdGF0aW9uClhGQUlMOiB0L2luc3RzcGMudGFwIDQgLSBkcXVvdGUgaW4gZGVzdGRpciAj IFRPRE8gbG9uZy1zdGFuZGluZyBsaW1pdGF0aW9uCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJd KyBjYXNlICIgJCogIiBpbgojW3N0ZGVycl0rIHJldHVybiAwCiNbc3RkZXJyXSsgZGlyZWN0aXZl PVRPRE8KI1tzdGRlcnJdKyByZWFzb249J2xvbmctc3RhbmRpbmcgbGltaXRhdGlvbicKI1tzdGRl cnJdKyByZXN1bHRfICdub3Qgb2snIC1EIFRPRE8gLXIgJ2xvbmctc3RhbmRpbmcgbGltaXRhdGlv bicgLS0gJ2RxdW90ZSBpbiBkZXN0ZGlyJwojW3N0ZGVycl0rIHNldCAreAojW3N0ZGVycl0rIGNk IC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIKI1tzdGRlcnJdKyBub3QgYW1f a2VlcGluZ190ZXN0ZGlycwojW3N0ZGVycl0rIGFtX2tlZXBpbmdfdGVzdGRpcnMKI1tzdGRlcnJd KyBjYXNlICRrZWVwX3Rlc3RkaXJzIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyB0 ZXN0ICdub3Qgb2snID0gb2sKI1tzdGRlcnJdKyA6IEZvciBzaGVsbHMgd2l0aCBidXN0ZWQgJ3Nl dCAtZS4nCiNbc3RkZXJyXSsgZm9yIHRlc3RfbmFtZSBpbiAnJHRlc3RfbmFtZXNfbGlzdCcKI1tz dGRlcnJdKyBldmFsICd0ZXN0X3N0cmluZz0ke2luc3RzcGNfX2JxdW90ZX0nCiNbc3RkZXJyXSsr IHRlc3Rfc3RyaW5nPSdgJwojW3N0ZGVycl0rIHRlc3QgJ3hgJyA9IHgKI1tzdGRlcnJdKyBta2Rp ciAnLi9gJwojW3N0ZGVycl0rIGNhc2UgJHRlc3Rfc3RyaW5nIGluCiNbc3RkZXJyXSsgZm9yIHdo ZXJlIGluIGJ1aWxkIGRlc3QKI1tzdGRlcnJdKyBjYXNlICR3aGVyZSBpbgojW3N0ZGVycl0rIGJ1 aWxkPScuL2AnCiNbc3RkZXJyXSsgZGVzdD0vdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtYnF1b3RlCiNbc3RkZXJyXSsgY2QgJy4vYCcKI1tzdGRlcnJdKyByPW9rCiNb c3RkZXJyXSsgLi4vY29uZmlndXJlIC0tcHJlZml4ICcvYC1wcmVmaXgnCmNoZWNraW5nIGZvciBh IEJTRC1jb21wYXRpYmxlIGluc3RhbGwuLi4gL3Vzci9iaW4vaW5zdGFsbCAtYwpjaGVja2luZyB3 aGV0aGVyIHNsZWVwIHN1cHBvcnRzIGZyYWN0aW9uYWwgc2Vjb25kcy4uLiB5ZXMKY2hlY2tpbmcg ZmlsZXN5c3RlbSB0aW1lc3RhbXAgcmVzb2x1dGlvbi4uLiAwLjAxCmNoZWNraW5nIHdoZXRoZXIg YnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZS4uLiBubwojW3N0ZGVycl1jb25maWd1cmU6IGVycm9y OiB1bnNhZmUgYWJzb2x1dGUgd29ya2luZyBkaXJlY3RvcnkgbmFtZQojW3N0ZGVycl0rIHI9J25v dCBvaycKI1tzdGRlcnJdKyBkZXNjcmlwdGlvbj0nYnF1b3RlIGluIGJ1aWxkZGlyJwojW3N0ZGVy cl0rIGV4cGVjdGVkX3RvX2ZhaWwgYnVpbGQgYnF1b3RlCiNbc3RkZXJyXSsgY2FzZSAkMSBpbgoj W3N0ZGVycl0rIGlzX2luX2xpc3QgYnF1b3RlIHNxdW90ZSBkcXVvdGUgYnF1b3RlIHNoYXJwIGRv bGxhciBic2xhc2ggYW1wZXJzYW5kIGxpbmVmZWVkIHF1YWRyaWdyYXBoMCBhX2xmX2IKI1tzdGRl cnJdKyBpdGVtPWJxdW90ZQojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIg aW4KI1tzdGRlcnJdKyByZXR1cm4gMAojW3N0ZGVycl0rIGRpcmVjdGl2ZT1UT0RPCm5vdCBvayA1 IC0gYnF1b3RlIGluIGJ1aWxkZGlyICMgVE9ETyBsb25nLXN0YW5kaW5nIGxpbWl0YXRpb24KWEZB SUw6IHQvaW5zdHNwYy50YXAgNSAtIGJxdW90ZSBpbiBidWlsZGRpciAjIFRPRE8gbG9uZy1zdGFu ZGluZyBsaW1pdGF0aW9uCiNbc3RkZXJyXSsgcmVhc29uPSdsb25nLXN0YW5kaW5nIGxpbWl0YXRp b24nCiNbc3RkZXJyXSsgcmVzdWx0XyAnbm90IG9rJyAtRCBUT0RPIC1yICdsb25nLXN0YW5kaW5n IGxpbWl0YXRpb24nIC0tICdicXVvdGUgaW4gYnVpbGRkaXInCiNbc3RkZXJyXSsgc2V0ICt4CiNb c3RkZXJyXSsgY2QgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpcgojW3N0ZGVy cl0rIG5vdCBhbV9rZWVwaW5nX3Rlc3RkaXJzCiNbc3RkZXJyXSsgYW1fa2VlcGluZ190ZXN0ZGly cwojW3N0ZGVycl0rIGNhc2UgJGtlZXBfdGVzdGRpcnMgaW4KI1tzdGRlcnJdKyByZXR1cm4gMQoj W3N0ZGVycl0rIHRlc3QgJ25vdCBvaycgPSBvawojW3N0ZGVycl0rIDogRm9yIHNoZWxscyB3aXRo IGJ1c3RlZCAnc2V0IC1lLicKI1tzdGRlcnJdKyBmb3Igd2hlcmUgaW4gYnVpbGQgZGVzdAojW3N0 ZGVycl0rIGNhc2UgJHdoZXJlIGluCiNbc3RkZXJyXSsgYnVpbGQ9YnVpbGQtYnF1b3RlCiNbc3Rk ZXJyXSsgZGVzdD0nL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWJx dW90ZS9gJwojW3N0ZGVycl0rIG1rZGlyIGJ1aWxkLWJxdW90ZQojW3N0ZGVycl0rIGNkIGJ1aWxk LWJxdW90ZQojW3N0ZGVycl0rIHI9b2sKI1tzdGRlcnJdKyAuLi9jb25maWd1cmUgLS1wcmVmaXgg Jy9gLXByZWZpeCcKY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbC4uLiAvdXNy L2Jpbi9pbnN0YWxsIC1jCmNoZWNraW5nIHdoZXRoZXIgc2xlZXAgc3VwcG9ydHMgZnJhY3Rpb25h bCBzZWNvbmRzLi4uIHllcwpjaGVja2luZyBmaWxlc3lzdGVtIHRpbWVzdGFtcCByZXNvbHV0aW9u Li4uIDAuMDEKY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lLi4uIHll cwpjaGVja2luZyBmb3IgYSByYWNlLWZyZWUgbWtkaXIgLXAuLi4gbWtkaXIgLXAKY2hlY2tpbmcg Zm9yIGdhd2suLi4gbm8KY2hlY2tpbmcgZm9yIG1hd2suLi4gbm8KY2hlY2tpbmcgZm9yIG5hd2su Li4gbm8KY2hlY2tpbmcgZm9yIGF3ay4uLiBhd2sKY2hlY2tpbmcgd2hldGhlciBtYWtlIHNldHMg JChNQUtFKS4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRzIG5lc3RlZCB2YXJp YWJsZXMuLi4geWVzCmNoZWNraW5nIHhhcmdzIC1uIHdvcmtzLi4uIHllcwpjaGVja2luZyB3aGV0 aGVyIFVJRCAnNTAxJyBpcyBzdXBwb3J0ZWQgYnkgdXN0YXIgZm9ybWF0Li4uIHllcwpjaGVja2lu ZyB3aGV0aGVyIEdJRCAnMjAnIGlzIHN1cHBvcnRlZCBieSB1c3RhciBmb3JtYXQuLi4geWVzCmNo ZWNraW5nIGhvdyB0byBjcmVhdGUgYSB1c3RhciB0YXIgYXJjaGl2ZS4uLiBwbGFpbnRhcgpjaGVj a2luZyBmb3IgZ2NjLi4uIGdjYwpjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdvcmtz Li4uIHllcwpjaGVja2luZyBmb3IgQyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUu Li4gYS5vdXQKY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcy4uLiAKY2hlY2tpbmcg d2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nLi4uIG5vCmNoZWNraW5nIGZvciBzdWZmaXgg b2Ygb2JqZWN0IGZpbGVzLi4uIG8KY2hlY2tpbmcgd2hldGhlciB0aGUgY29tcGlsZXIgc3VwcG9y dHMgR05VIEMuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgZ2NjIGFjY2VwdHMgLWcuLi4geWVzCmNo ZWNraW5nIGZvciBnY2Mgb3B0aW9uIHRvIGVuYWJsZSBDMjMgZmVhdHVyZXMuLi4gLXN0ZD1nbnUy MwpjaGVja2luZyB3aGV0aGVyIGdjYyAtc3RkPWdudTIzIHVuZGVyc3RhbmRzIC1jIGFuZCAtbyB0 b2dldGhlci4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRzIHRoZSBpbmNsdWRl IGRpcmVjdGl2ZS4uLiB5ZXMgKEdOVSBzdHlsZSkKY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBv ZiBnY2MgLXN0ZD1nbnUyMy4uLiBnY2MzCmNoZWNraW5nIGZvciBhci4uLiBhcgpjaGVja2luZyB0 aGUgYXJjaGl2ZXIgKGFyKSBpbnRlcmZhY2UuLi4gYXIKY2hlY2tpbmcgZm9yIHJhbmxpYi4uLiBy YW5saWIKY2hlY2tpbmcgdGhhdCBnZW5lcmF0ZWQgZmlsZXMgYXJlIG5ld2VyIHRoYW4gY29uZmln dXJlLi4uIGRvbmUKY29uZmlndXJlOiBjcmVhdGluZyAuL2NvbmZpZy5zdGF0dXMKY29uZmlnLnN0 YXR1czogY3JlYXRpbmcgTWFrZWZpbGUKY29uZmlnLnN0YXR1czogZXhlY3V0aW5nIGRlcGZpbGVz IGNvbW1hbmRzCiNbc3RkZXJyXSsgbWFrZSBhbGwKZ2NjIC1zdGQ9Z251MjMgLURQQUNLQUdFX05B TUU9XCJpbnN0c3BjXCIgLURQQUNLQUdFX1RBUk5BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdFX1ZF UlNJT049XCIxLjBcIiAtRFBBQ0tBR0VfU1RSSU5HPVwiaW5zdHNwY1wgMS4wXCIgLURQQUNLQUdF X0JVR1JFUE9SVD1cIlwiIC1EUEFDS0FHRV9VUkw9XCJcIiAtRFBBQ0tBR0U9XCJpbnN0c3BjXCIg LURWRVJTSU9OPVwiMS4wXCIgLUkuIC1JLi4gICAgIC1nIC1PMiAtTVQgc291cmNlLm8gLU1EIC1N UCAtTUYgLmRlcHMvc291cmNlLlRwbyAtYyAtbyBzb3VyY2UubyAuLi9zb3VyY2UuYwptdiAtZiAu ZGVwcy9zb3VyY2UuVHBvIC5kZXBzL3NvdXJjZS5QbwpnY2MgLXN0ZD1nbnUyMyAgLWcgLU8yICAg LW8gc3ViL2Jhc2Ugc291cmNlLm8gIApnY2MgLXN0ZD1nbnUyMyAgLWcgLU8yICAgLW8gc3ViL25v YmFzZSBzb3VyY2UubyAgCnJtIC1mIHN1Yi9saWJiYXNlLmEKYXIgY3Igc3ViL2xpYmJhc2UuYSBz b3VyY2UubyAKcmFubGliIHN1Yi9saWJiYXNlLmEKcm0gLWYgc3ViL2xpYm5vYmFzZS5hCmFyIGNy IHN1Yi9saWJub2Jhc2UuYSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJub2Jhc2UuYQojW3N0ZGVy cl0rIERFU1RESVI9Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1i cXVvdGUvYCcKI1tzdGRlcnJdKyBmaWxlPScuL2AnCiNbc3RkZXJyXSsgbWFrZSB0ZXN0LWluc3QK bWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2J1aWxkLWJxdW90ZScKI1tzdGRlcnJdL2Jpbi9zaDogLWM6IGxpbmUgMjM6IHVu ZXhwZWN0ZWQgRU9GIHdoaWxlIGxvb2tpbmcgZm9yIG1hdGNoaW5nIGBgJwojW3N0ZGVycl0vYmlu L3NoOiAtYzogbGluZSAyNjogc3ludGF4IGVycm9yOiB1bmV4cGVjdGVkIGVuZCBvZiBmaWxlCiNb c3RkZXJyXW1ha2VbMV06ICoqKiBbTWFrZWZpbGU6NTcyOiBpbnN0YWxsLWRpc3RfZm9vZXhlY1ND UklQVFNdIEVycm9yIDIKbWFrZVsxXTogTGVhdmluZyBkaXJlY3RvcnkgJy91c3IvbG9jYWwvc3Jj L2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvYnVpbGQtYnF1b3RlJwojW3N0ZGVycl1tYWtlOiAqKiog W01ha2VmaWxlOjEwMTc6IGluc3RhbGwtYW1dIEVycm9yIDIKI1tzdGRlcnJdKyByPSdub3Qgb2sn CiNbc3RkZXJyXSsgZGVzY3JpcHRpb249J2JxdW90ZSBpbiBkZXN0ZGlyJwojW3N0ZGVycl0rIGV4 cGVjdGVkX3RvX2ZhaWwgZGVzdCBicXVvdGUKI1tzdGRlcnJdKyBjYXNlICQxIGluCm5vdCBvayA2 IC0gYnF1b3RlIGluIGRlc3RkaXIgIyBUT0RPIGxvbmctc3RhbmRpbmcgbGltaXRhdGlvbgpYRkFJ TDogdC9pbnN0c3BjLnRhcCA2IC0gYnF1b3RlIGluIGRlc3RkaXIgIyBUT0RPIGxvbmctc3RhbmRp bmcgbGltaXRhdGlvbgojW3N0ZGVycl0rIGlzX2luX2xpc3QgYnF1b3RlIHNxdW90ZSBkcXVvdGUg YnF1b3RlIHNoYXJwIGRvbGxhciBsaW5lZmVlZCBhX2xmX2IKI1tzdGRlcnJdKyBpdGVtPWJxdW90 ZQojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyBy ZXR1cm4gMAojW3N0ZGVycl0rIGRpcmVjdGl2ZT1UT0RPCiNbc3RkZXJyXSsgcmVhc29uPSdsb25n LXN0YW5kaW5nIGxpbWl0YXRpb24nCiNbc3RkZXJyXSsgcmVzdWx0XyAnbm90IG9rJyAtRCBUT0RP IC1yICdsb25nLXN0YW5kaW5nIGxpbWl0YXRpb24nIC0tICdicXVvdGUgaW4gZGVzdGRpcicKI1tz dGRlcnJdKyBzZXQgK3gKI1tzdGRlcnJdKyBjZCAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyCiNbc3RkZXJyXSsgbm90IGFtX2tlZXBpbmdfdGVzdGRpcnMKI1tzdGRlcnJdKyBh bV9rZWVwaW5nX3Rlc3RkaXJzCiNbc3RkZXJyXSsgY2FzZSAka2VlcF90ZXN0ZGlycyBpbgojW3N0 ZGVycl0rIHJldHVybiAxCiNbc3RkZXJyXSsgdGVzdCAnbm90IG9rJyA9IG9rCiNbc3RkZXJyXSsg OiBGb3Igc2hlbGxzIHdpdGggYnVzdGVkICdzZXQgLWUuJwojW3N0ZGVycl0rIGZvciB0ZXN0X25h bWUgaW4gJyR0ZXN0X25hbWVzX2xpc3QnCiNbc3RkZXJyXSsgZXZhbCAndGVzdF9zdHJpbmc9JHtp bnN0c3BjX19zaGFycH0nCiNbc3RkZXJyXSsrIHRlc3Rfc3RyaW5nPScjJwojW3N0ZGVycl0rIHRl c3QgeCMgPSB4CiNbc3RkZXJyXSsgbWtkaXIgLi8jCiNbc3RkZXJyXSsgY2FzZSAkdGVzdF9zdHJp bmcgaW4KI1tzdGRlcnJdKyBmb3Igd2hlcmUgaW4gYnVpbGQgZGVzdAojW3N0ZGVycl0rIGNhc2Ug JHdoZXJlIGluCiNbc3RkZXJyXSsgYnVpbGQ9Li8jCiNbc3RkZXJyXSsgZGVzdD0vdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc2hhcnAKI1tzdGRlcnJdKyBjZCAuLyMK I1tzdGRlcnJdKyByPW9rCiNbc3RkZXJyXSsgLi4vY29uZmlndXJlIC0tcHJlZml4IC8jLXByZWZp eApjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsLi4uIC91c3IvYmluL2luc3Rh bGwgLWMKY2hlY2tpbmcgd2hldGhlciBzbGVlcCBzdXBwb3J0cyBmcmFjdGlvbmFsIHNlY29uZHMu Li4geWVzCmNoZWNraW5nIGZpbGVzeXN0ZW0gdGltZXN0YW1wIHJlc29sdXRpb24uLi4gMC4wMQpj aGVja2luZyB3aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmUuLi4gbm8KI1tzdGRlcnJd Y29uZmlndXJlOiBlcnJvcjogdW5zYWZlIGFic29sdXRlIHdvcmtpbmcgZGlyZWN0b3J5IG5hbWUK I1tzdGRlcnJdKyByPSdub3Qgb2snCiNbc3RkZXJyXSsgZGVzY3JpcHRpb249J3NoYXJwIGluIGJ1 aWxkZGlyJwojW3N0ZGVycl0rIGV4cGVjdGVkX3RvX2ZhaWwgYnVpbGQgc2hhcnAKI1tzdGRlcnJd KyBjYXNlICQxIGluCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBzaGFycCBzcXVvdGUgZHF1b3RlIGJx dW90ZSBzaGFycCBkb2xsYXIgYnNsYXNoIGFtcGVyc2FuZCBsaW5lZmVlZCBxdWFkcmlncmFwaDAg YV9sZl9iCiNbc3RkZXJyXSsgaXRlbT1zaGFycAojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsg Y2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyByZXR1cm4gMAojW3N0ZGVycl0rIGRpcmVjdGl2ZT1U T0RPCm5vdCBvayA3IC0gc2hhcnAgaW4gYnVpbGRkaXIgIyBUT0RPIGxvbmctc3RhbmRpbmcgbGlt aXRhdGlvbgpYRkFJTDogdC9pbnN0c3BjLnRhcCA3IC0gc2hhcnAgaW4gYnVpbGRkaXIgIyBUT0RP IGxvbmctc3RhbmRpbmcgbGltaXRhdGlvbgojW3N0ZGVycl0rIHJlYXNvbj0nbG9uZy1zdGFuZGlu ZyBsaW1pdGF0aW9uJwojW3N0ZGVycl0rIHJlc3VsdF8gJ25vdCBvaycgLUQgVE9ETyAtciAnbG9u Zy1zdGFuZGluZyBsaW1pdGF0aW9uJyAtLSAnc2hhcnAgaW4gYnVpbGRkaXInCiNbc3RkZXJyXSsg c2V0ICt4CiNbc3RkZXJyXSsgY2QgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp cgojW3N0ZGVycl0rIG5vdCBhbV9rZWVwaW5nX3Rlc3RkaXJzCiNbc3RkZXJyXSsgYW1fa2VlcGlu Z190ZXN0ZGlycwojW3N0ZGVycl0rIGNhc2UgJGtlZXBfdGVzdGRpcnMgaW4KI1tzdGRlcnJdKyBy ZXR1cm4gMQojW3N0ZGVycl0rIHRlc3QgJ25vdCBvaycgPSBvawojW3N0ZGVycl0rIDogRm9yIHNo ZWxscyB3aXRoIGJ1c3RlZCAnc2V0IC1lLicKI1tzdGRlcnJdKyBmb3Igd2hlcmUgaW4gYnVpbGQg ZGVzdAojW3N0ZGVycl0rIGNhc2UgJHdoZXJlIGluCiNbc3RkZXJyXSsgYnVpbGQ9YnVpbGQtc2hh cnAKI1tzdGRlcnJdKyBkZXN0PS91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1zaGFycC8jCiNbc3RkZXJyXSsgbWtkaXIgYnVpbGQtc2hhcnAKI1tzdGRlcnJdKyBjZCBi dWlsZC1zaGFycAojW3N0ZGVycl0rIHI9b2sKI1tzdGRlcnJdKyAuLi9jb25maWd1cmUgLS1wcmVm aXggLyMtcHJlZml4CmNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwuLi4gL3Vz ci9iaW4vaW5zdGFsbCAtYwpjaGVja2luZyB3aGV0aGVyIHNsZWVwIHN1cHBvcnRzIGZyYWN0aW9u YWwgc2Vjb25kcy4uLiB5ZXMKY2hlY2tpbmcgZmlsZXN5c3RlbSB0aW1lc3RhbXAgcmVzb2x1dGlv bi4uLiAwLjAxCmNoZWNraW5nIHdoZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZS4uLiB5 ZXMKY2hlY2tpbmcgZm9yIGEgcmFjZS1mcmVlIG1rZGlyIC1wLi4uIG1rZGlyIC1wCmNoZWNraW5n IGZvciBnYXdrLi4uIG5vCmNoZWNraW5nIGZvciBtYXdrLi4uIG5vCmNoZWNraW5nIGZvciBuYXdr Li4uIG5vCmNoZWNraW5nIGZvciBhd2suLi4gYXdrCmNoZWNraW5nIHdoZXRoZXIgbWFrZSBzZXRz ICQoTUFLRSkuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgbWFrZSBzdXBwb3J0cyBuZXN0ZWQgdmFy aWFibGVzLi4uIHllcwpjaGVja2luZyB4YXJncyAtbiB3b3Jrcy4uLiB5ZXMKY2hlY2tpbmcgd2hl dGhlciBVSUQgJzUwMScgaXMgc3VwcG9ydGVkIGJ5IHVzdGFyIGZvcm1hdC4uLiB5ZXMKY2hlY2tp bmcgd2hldGhlciBHSUQgJzIwJyBpcyBzdXBwb3J0ZWQgYnkgdXN0YXIgZm9ybWF0Li4uIHllcwpj aGVja2luZyBob3cgdG8gY3JlYXRlIGEgdXN0YXIgdGFyIGFyY2hpdmUuLi4gcGxhaW50YXIKY2hl Y2tpbmcgZm9yIGdjYy4uLiBnY2MKY2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciB3b3Jr cy4uLiB5ZXMKY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgZGVmYXVsdCBvdXRwdXQgZmlsZSBuYW1l Li4uIGEub3V0CmNoZWNraW5nIGZvciBzdWZmaXggb2YgZXhlY3V0YWJsZXMuLi4gCmNoZWNraW5n IHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZy4uLiBubwpjaGVja2luZyBmb3Igc3VmZml4 IG9mIG9iamVjdCBmaWxlcy4uLiBvCmNoZWNraW5nIHdoZXRoZXIgdGhlIGNvbXBpbGVyIHN1cHBv cnRzIEdOVSBDLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIGdjYyBhY2NlcHRzIC1nLi4uIHllcwpj aGVja2luZyBmb3IgZ2NjIG9wdGlvbiB0byBlbmFibGUgQzIzIGZlYXR1cmVzLi4uIC1zdGQ9Z251 MjMKY2hlY2tpbmcgd2hldGhlciBnY2MgLXN0ZD1nbnUyMyB1bmRlcnN0YW5kcyAtYyBhbmQgLW8g dG9nZXRoZXIuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgbWFrZSBzdXBwb3J0cyB0aGUgaW5jbHVk ZSBkaXJlY3RpdmUuLi4geWVzIChHTlUgc3R5bGUpCmNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUg b2YgZ2NjIC1zdGQ9Z251MjMuLi4gZ2NjMwpjaGVja2luZyBmb3IgYXIuLi4gYXIKY2hlY2tpbmcg dGhlIGFyY2hpdmVyIChhcikgaW50ZXJmYWNlLi4uIGFyCmNoZWNraW5nIGZvciByYW5saWIuLi4g cmFubGliCmNoZWNraW5nIHRoYXQgZ2VuZXJhdGVkIGZpbGVzIGFyZSBuZXdlciB0aGFuIGNvbmZp Z3VyZS4uLiBkb25lCmNvbmZpZ3VyZTogY3JlYXRpbmcgLi9jb25maWcuc3RhdHVzCmNvbmZpZy5z dGF0dXM6IGNyZWF0aW5nIE1ha2VmaWxlCmNvbmZpZy5zdGF0dXM6IGV4ZWN1dGluZyBkZXBmaWxl cyBjb21tYW5kcwojW3N0ZGVycl0rIG1ha2UgYWxsCmdjYyAtc3RkPWdudTIzIC1EUEFDS0FHRV9O QU1FPVwiaW5zdHNwY1wiIC1EUEFDS0FHRV9UQVJOQU1FPVwiaW5zdHNwY1wiIC1EUEFDS0FHRV9W RVJTSU9OPVwiMS4wXCIgLURQQUNLQUdFX1NUUklORz1cImluc3RzcGNcIDEuMFwiIC1EUEFDS0FH RV9CVUdSRVBPUlQ9XCJcIiAtRFBBQ0tBR0VfVVJMPVwiXCIgLURQQUNLQUdFPVwiaW5zdHNwY1wi IC1EVkVSU0lPTj1cIjEuMFwiIC1JLiAtSS4uICAgICAtZyAtTzIgLU1UIHNvdXJjZS5vIC1NRCAt TVAgLU1GIC5kZXBzL3NvdXJjZS5UcG8gLWMgLW8gc291cmNlLm8gLi4vc291cmNlLmMKbXYgLWYg LmRlcHMvc291cmNlLlRwbyAuZGVwcy9zb3VyY2UuUG8KZ2NjIC1zdGQ9Z251MjMgIC1nIC1PMiAg IC1vIHN1Yi9iYXNlIHNvdXJjZS5vICAKZ2NjIC1zdGQ9Z251MjMgIC1nIC1PMiAgIC1vIHN1Yi9u b2Jhc2Ugc291cmNlLm8gIApybSAtZiBzdWIvbGliYmFzZS5hCmFyIGNyIHN1Yi9saWJiYXNlLmEg c291cmNlLm8gCnJhbmxpYiBzdWIvbGliYmFzZS5hCnJtIC1mIHN1Yi9saWJub2Jhc2UuYQphciBj ciBzdWIvbGlibm9iYXNlLmEgc291cmNlLm8gCnJhbmxpYiBzdWIvbGlibm9iYXNlLmEKI1tzdGRl cnJdKyBERVNURElSPS91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1z aGFycC8jCiNbc3RkZXJyXSsgZmlsZT0uLyMKI1tzdGRlcnJdKyBtYWtlIHRlc3QtaW5zdAptYWtl WzFdOiBFbnRlcmluZyBkaXJlY3RvcnkgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvYnVpbGQtc2hhcnAnCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LXNoYXJwLyMvL2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLi4vc3Vi L2Jhc2Uuc2ggJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zaGFy cC8jLy9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LXNoYXJwLyMvL2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICBzdWIvbGli YmFzZS5hICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc2hhcnAv Iy8vZm9vJwogKCBjZCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LXNoYXJwLyMvL2ZvbycgJiYgcmFubGliIGxpYmJhc2UuYSApCiBta2RpciAtcCAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNoYXJwLyMvL2ZvbycKICAvdXNyL2Jp bi9pbnN0YWxsIC1jIHN1Yi9iYXNlICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyL2Rlc3Qtc2hhcnAvIy8vZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1zaGFycC8jLy9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNoYXJwLyMvL2Zvby9zdWIvJwogL3Vzci9i aW4vaW5zdGFsbCAtYyAuLi9zdWIvbm9iYXNlLnNoICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3Qtc2hhcnAvIy8vZm9vL3N1Yi8nCiBta2RpciAtcCAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNoYXJwLyMvL2ZvbycKIG1rZGlyIC1w ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc2hhcnAvIy8vZm9v L3N1YicKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICBzdWIvbGlibm9iYXNlLmEgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zaGFycC8jLy9mb28vc3ViJwog KCBjZCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNoYXJwLyMv L2ZvbycgJiYgcmFubGliIHN1Yi9saWJub2Jhc2UuYSApCiBta2RpciAtcCAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNoYXJwLyMvL2ZvbycKIG1rZGlyIC1wICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc2hhcnAvIy8vZm9vL3N1 Yi8nCiAgL3Vzci9iaW4vaW5zdGFsbCAtYyBzdWIvbm9iYXNlICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc2hhcnAvIy8vZm9vL3N1Yi8nCiBta2RpciAtcCAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNoYXJwLyMvL2ZvbycKIC91 c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0IC4uL3N1Yi9iYXNlLmRhdCAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNoYXJwLyMvL2ZvbycKIG1rZGlyIC1wICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc2hhcnAvIy8vZm9vJwogL3Vz ci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgLi4vc3ViL2Jhc2UuaCAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNoYXJwLyMvL2ZvbycKIG1rZGlyIC1wICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc2hhcnAvIy8vZm9vJwogbWtkaXIg LXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zaGFycC8jLy9m b28vc3ViJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIC4uL3N1Yi9ub2Jhc2UuZGF0ICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc2hhcnAvIy8vZm9vL3N1 YicKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt c2hhcnAvIy8vZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1zaGFycC8jLy9mb28vc3ViJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQg IC4uL3N1Yi9ub2Jhc2UuaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LXNoYXJwLyMvL2Zvby9zdWInCm1ha2VbMV06IExlYXZpbmcgZGlyZWN0b3J5ICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2J1aWxkLXNoYXJwJwp0ZXN0ICAgLWYgJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zaGFycC8jLy4vIy1wcmVm aXgvZm9vL3N1Yi9ub2Jhc2UuaCcKI1tzdGRlcnJdbWFrZTogKioqIFtNYWtlZmlsZToxMTYwOiB0 ZXN0LWluc3RdIEVycm9yIDEKI1tzdGRlcnJdKyByPSdub3Qgb2snCiNbc3RkZXJyXSsgZGVzY3Jp cHRpb249J3NoYXJwIGluIGRlc3RkaXInCiNbc3RkZXJyXSsgZXhwZWN0ZWRfdG9fZmFpbCBkZXN0 IHNoYXJwCiNbc3RkZXJyXSsgY2FzZSAkMSBpbgojW3N0ZGVycl0rIGlzX2luX2xpc3Qgc2hhcnAg c3F1b3RlIGRxdW90ZSBicXVvdGUgc2hhcnAgZG9sbGFyIGxpbmVmZWVkIGFfbGZfYgojW3N0ZGVy cl0rIGl0ZW09c2hhcnAKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNhc2UgIiAkKiAiIGlu Cm5vdCBvayA4IC0gc2hhcnAgaW4gZGVzdGRpciAjIFRPRE8gbG9uZy1zdGFuZGluZyBsaW1pdGF0 aW9uClhGQUlMOiB0L2luc3RzcGMudGFwIDggLSBzaGFycCBpbiBkZXN0ZGlyICMgVE9ETyBsb25n LXN0YW5kaW5nIGxpbWl0YXRpb24KI1tzdGRlcnJdKyByZXR1cm4gMAojW3N0ZGVycl0rIGRpcmVj dGl2ZT1UT0RPCiNbc3RkZXJyXSsgcmVhc29uPSdsb25nLXN0YW5kaW5nIGxpbWl0YXRpb24nCiNb c3RkZXJyXSsgcmVzdWx0XyAnbm90IG9rJyAtRCBUT0RPIC1yICdsb25nLXN0YW5kaW5nIGxpbWl0 YXRpb24nIC0tICdzaGFycCBpbiBkZXN0ZGlyJwojW3N0ZGVycl0rIHNldCAreAojW3N0ZGVycl0r IGNkIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIKI1tzdGRlcnJdKyBub3Qg YW1fa2VlcGluZ190ZXN0ZGlycwojW3N0ZGVycl0rIGFtX2tlZXBpbmdfdGVzdGRpcnMKI1tzdGRl cnJdKyBjYXNlICRrZWVwX3Rlc3RkaXJzIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJd KyB0ZXN0ICdub3Qgb2snID0gb2sKI1tzdGRlcnJdKyA6IEZvciBzaGVsbHMgd2l0aCBidXN0ZWQg J3NldCAtZS4nCiNbc3RkZXJyXSsgZm9yIHRlc3RfbmFtZSBpbiAnJHRlc3RfbmFtZXNfbGlzdCcK I1tzdGRlcnJdKyBldmFsICd0ZXN0X3N0cmluZz0ke2luc3RzcGNfX2RvbGxhcn0nCiNbc3RkZXJy XSsrIHRlc3Rfc3RyaW5nPSckJwojW3N0ZGVycl0rIHRlc3QgJ3gkJyA9IHgKI1tzdGRlcnJdKyBt a2RpciAnLi8kJwojW3N0ZGVycl0rIGNhc2UgJHRlc3Rfc3RyaW5nIGluCiNbc3RkZXJyXSsgZm9y IHdoZXJlIGluIGJ1aWxkIGRlc3QKI1tzdGRlcnJdKyBjYXNlICR3aGVyZSBpbgojW3N0ZGVycl0r IGJ1aWxkPScuLyQnCiNbc3RkZXJyXSsgZGVzdD0vdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtZG9sbGFyCiNbc3RkZXJyXSsgY2QgJy4vJCcKI1tzdGRlcnJdKyByPW9r CiNbc3RkZXJyXSsgLi4vY29uZmlndXJlIC0tcHJlZml4ICcvJC1wcmVmaXgnCmNoZWNraW5nIGZv ciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwuLi4gL3Vzci9iaW4vaW5zdGFsbCAtYwpjaGVja2lu ZyB3aGV0aGVyIHNsZWVwIHN1cHBvcnRzIGZyYWN0aW9uYWwgc2Vjb25kcy4uLiB5ZXMKY2hlY2tp bmcgZmlsZXN5c3RlbSB0aW1lc3RhbXAgcmVzb2x1dGlvbi4uLiAwLjAxCmNoZWNraW5nIHdoZXRo ZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZS4uLiBubwojW3N0ZGVycl1jb25maWd1cmU6IGVy cm9yOiB1bnNhZmUgYWJzb2x1dGUgd29ya2luZyBkaXJlY3RvcnkgbmFtZQojW3N0ZGVycl0rIHI9 J25vdCBvaycKI1tzdGRlcnJdKyBkZXNjcmlwdGlvbj0nZG9sbGFyIGluIGJ1aWxkZGlyJwojW3N0 ZGVycl0rIGV4cGVjdGVkX3RvX2ZhaWwgYnVpbGQgZG9sbGFyCiNbc3RkZXJyXSsgY2FzZSAkMSBp bgojW3N0ZGVycl0rIGlzX2luX2xpc3QgZG9sbGFyIHNxdW90ZSBkcXVvdGUgYnF1b3RlIHNoYXJw IGRvbGxhciBic2xhc2ggYW1wZXJzYW5kIGxpbmVmZWVkIHF1YWRyaWdyYXBoMCBhX2xmX2IKI1tz dGRlcnJdKyBpdGVtPWRvbGxhcgojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQq ICIgaW4Kbm90IG9rIDkgLSBkb2xsYXIgaW4gYnVpbGRkaXIgIyBUT0RPIGxvbmctc3RhbmRpbmcg bGltaXRhdGlvbgpYRkFJTDogdC9pbnN0c3BjLnRhcCA5IC0gZG9sbGFyIGluIGJ1aWxkZGlyICMg VE9ETyBsb25nLXN0YW5kaW5nIGxpbWl0YXRpb24KI1tzdGRlcnJdKyByZXR1cm4gMAojW3N0ZGVy cl0rIGRpcmVjdGl2ZT1UT0RPCiNbc3RkZXJyXSsgcmVhc29uPSdsb25nLXN0YW5kaW5nIGxpbWl0 YXRpb24nCiNbc3RkZXJyXSsgcmVzdWx0XyAnbm90IG9rJyAtRCBUT0RPIC1yICdsb25nLXN0YW5k aW5nIGxpbWl0YXRpb24nIC0tICdkb2xsYXIgaW4gYnVpbGRkaXInCiNbc3RkZXJyXSsgc2V0ICt4 CiNbc3RkZXJyXSsgY2QgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpcgojW3N0 ZGVycl0rIG5vdCBhbV9rZWVwaW5nX3Rlc3RkaXJzCiNbc3RkZXJyXSsgYW1fa2VlcGluZ190ZXN0 ZGlycwojW3N0ZGVycl0rIGNhc2UgJGtlZXBfdGVzdGRpcnMgaW4KI1tzdGRlcnJdKyByZXR1cm4g MQojW3N0ZGVycl0rIHRlc3QgJ25vdCBvaycgPSBvawojW3N0ZGVycl0rIDogRm9yIHNoZWxscyB3 aXRoIGJ1c3RlZCAnc2V0IC1lLicKI1tzdGRlcnJdKyBmb3Igd2hlcmUgaW4gYnVpbGQgZGVzdAoj W3N0ZGVycl0rIGNhc2UgJHdoZXJlIGluCiNbc3RkZXJyXSsgYnVpbGQ9YnVpbGQtZG9sbGFyCiNb c3RkZXJyXSsgZGVzdD0nL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LWRvbGxhci8kJwojW3N0ZGVycl0rIG1rZGlyIGJ1aWxkLWRvbGxhcgojW3N0ZGVycl0rIGNkIGJ1 aWxkLWRvbGxhcgojW3N0ZGVycl0rIHI9b2sKI1tzdGRlcnJdKyAuLi9jb25maWd1cmUgLS1wcmVm aXggJy8kLXByZWZpeCcKY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbC4uLiAv dXNyL2Jpbi9pbnN0YWxsIC1jCmNoZWNraW5nIHdoZXRoZXIgc2xlZXAgc3VwcG9ydHMgZnJhY3Rp b25hbCBzZWNvbmRzLi4uIHllcwpjaGVja2luZyBmaWxlc3lzdGVtIHRpbWVzdGFtcCByZXNvbHV0 aW9uLi4uIDAuMDEKY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lLi4u IHllcwpjaGVja2luZyBmb3IgYSByYWNlLWZyZWUgbWtkaXIgLXAuLi4gbWtkaXIgLXAKY2hlY2tp bmcgZm9yIGdhd2suLi4gbm8KY2hlY2tpbmcgZm9yIG1hd2suLi4gbm8KY2hlY2tpbmcgZm9yIG5h d2suLi4gbm8KY2hlY2tpbmcgZm9yIGF3ay4uLiBhd2sKY2hlY2tpbmcgd2hldGhlciBtYWtlIHNl dHMgJChNQUtFKS4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRzIG5lc3RlZCB2 YXJpYWJsZXMuLi4geWVzCmNoZWNraW5nIHhhcmdzIC1uIHdvcmtzLi4uIHllcwpjaGVja2luZyB3 aGV0aGVyIFVJRCAnNTAxJyBpcyBzdXBwb3J0ZWQgYnkgdXN0YXIgZm9ybWF0Li4uIHllcwpjaGVj a2luZyB3aGV0aGVyIEdJRCAnMjAnIGlzIHN1cHBvcnRlZCBieSB1c3RhciBmb3JtYXQuLi4geWVz CmNoZWNraW5nIGhvdyB0byBjcmVhdGUgYSB1c3RhciB0YXIgYXJjaGl2ZS4uLiBwbGFpbnRhcgpj aGVja2luZyBmb3IgZ2NjLi4uIGdjYwpjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdv cmtzLi4uIHllcwpjaGVja2luZyBmb3IgQyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5h bWUuLi4gYS5vdXQKY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcy4uLiAKY2hlY2tp bmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nLi4uIG5vCmNoZWNraW5nIGZvciBzdWZm aXggb2Ygb2JqZWN0IGZpbGVzLi4uIG8KY2hlY2tpbmcgd2hldGhlciB0aGUgY29tcGlsZXIgc3Vw cG9ydHMgR05VIEMuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgZ2NjIGFjY2VwdHMgLWcuLi4geWVz CmNoZWNraW5nIGZvciBnY2Mgb3B0aW9uIHRvIGVuYWJsZSBDMjMgZmVhdHVyZXMuLi4gLXN0ZD1n bnUyMwpjaGVja2luZyB3aGV0aGVyIGdjYyAtc3RkPWdudTIzIHVuZGVyc3RhbmRzIC1jIGFuZCAt byB0b2dldGhlci4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRzIHRoZSBpbmNs dWRlIGRpcmVjdGl2ZS4uLiB5ZXMgKEdOVSBzdHlsZSkKY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHls ZSBvZiBnY2MgLXN0ZD1nbnUyMy4uLiBnY2MzCmNoZWNraW5nIGZvciBhci4uLiBhcgpjaGVja2lu ZyB0aGUgYXJjaGl2ZXIgKGFyKSBpbnRlcmZhY2UuLi4gYXIKY2hlY2tpbmcgZm9yIHJhbmxpYi4u LiByYW5saWIKY2hlY2tpbmcgdGhhdCBnZW5lcmF0ZWQgZmlsZXMgYXJlIG5ld2VyIHRoYW4gY29u ZmlndXJlLi4uIGRvbmUKY29uZmlndXJlOiBjcmVhdGluZyAuL2NvbmZpZy5zdGF0dXMKY29uZmln LnN0YXR1czogY3JlYXRpbmcgTWFrZWZpbGUKY29uZmlnLnN0YXR1czogZXhlY3V0aW5nIGRlcGZp bGVzIGNvbW1hbmRzCiNbc3RkZXJyXSsgbWFrZSBhbGwKZ2NjIC1zdGQ9Z251MjMgLURQQUNLQUdF X05BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdFX1RBUk5BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdF X1ZFUlNJT049XCIxLjBcIiAtRFBBQ0tBR0VfU1RSSU5HPVwiaW5zdHNwY1wgMS4wXCIgLURQQUNL QUdFX0JVR1JFUE9SVD1cIlwiIC1EUEFDS0FHRV9VUkw9XCJcIiAtRFBBQ0tBR0U9XCJpbnN0c3Bj XCIgLURWRVJTSU9OPVwiMS4wXCIgLUkuIC1JLi4gICAgIC1nIC1PMiAtTVQgc291cmNlLm8gLU1E IC1NUCAtTUYgLmRlcHMvc291cmNlLlRwbyAtYyAtbyBzb3VyY2UubyAuLi9zb3VyY2UuYwptdiAt ZiAuZGVwcy9zb3VyY2UuVHBvIC5kZXBzL3NvdXJjZS5QbwpnY2MgLXN0ZD1nbnUyMyAgLWcgLU8y ICAgLW8gc3ViL2Jhc2Ugc291cmNlLm8gIApnY2MgLXN0ZD1nbnUyMyAgLWcgLU8yICAgLW8gc3Vi L25vYmFzZSBzb3VyY2UubyAgCnJtIC1mIHN1Yi9saWJiYXNlLmEKYXIgY3Igc3ViL2xpYmJhc2Uu YSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJiYXNlLmEKcm0gLWYgc3ViL2xpYm5vYmFzZS5hCmFy IGNyIHN1Yi9saWJub2Jhc2UuYSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJub2Jhc2UuYQojW3N0 ZGVycl0rIERFU1RESVI9Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC1kb2xsYXIvJCcKI1tzdGRlcnJdKyBmaWxlPScuLyQnCiNbc3RkZXJyXSsgbWFrZSB0ZXN0LWlu c3QKbWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2J1aWxkLWRvbGxhcicKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtZG9sbGFyLyQvcHJlZml4L2ZvbycKIC91c3IvYmluL2lu c3RhbGwgLWMgLi4vc3ViL2Jhc2Uuc2ggJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1kb2xsYXIvJC9wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3Jj L2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1kb2xsYXIvJC9wcmVmaXgvZm9vJwogL3Vzci9i aW4vaW5zdGFsbCAtYyAtbSA2NDQgIHN1Yi9saWJiYXNlLmEgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1kb2xsYXIvJC9wcmVmaXgvZm9vJwogKCBjZCAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWRvbGxhci8kL3ByZWZpeC9mb28n ICYmIHJhbmxpYiBsaWJiYXNlLmEgKQogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1kb2xsYXIvJC9wcmVmaXgvZm9vJwogIC91c3IvYmluL2luc3Rh bGwgLWMgc3ViL2Jhc2UgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC1kb2xsYXIvJC9wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1kb2xsYXIvJC9wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1kb2xsYXIvJC9wcmVmaXgvZm9v L3N1Yi8nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC4uL3N1Yi9ub2Jhc2Uuc2ggJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1kb2xsYXIvJC9wcmVmaXgvZm9vL3N1Yi8n CiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWRv bGxhci8kL3ByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LWRvbGxhci8kL3ByZWZpeC9mb28vc3ViJwogL3Vzci9iaW4vaW5zdGFs bCAtYyAtbSA2NDQgIHN1Yi9saWJub2Jhc2UuYSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LWRvbGxhci8kL3ByZWZpeC9mb28vc3ViJwogKCBjZCAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWRvbGxhci8kL3ByZWZpeC9mb28nICYm IHJhbmxpYiBzdWIvbGlibm9iYXNlLmEgKQogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1kb2xsYXIvJC9wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1kb2xsYXIvJC9wcmVmaXgv Zm9vL3N1Yi8nCiAgL3Vzci9iaW4vaW5zdGFsbCAtYyBzdWIvbm9iYXNlICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtZG9sbGFyLyQvcHJlZml4L2Zvby9zdWIvJwog bWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1kb2xs YXIvJC9wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgLi4vc3ViL2Jhc2Uu ZGF0ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtZG9sbGFyLyQv cHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyL2Rlc3QtZG9sbGFyLyQvcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0 IC4uL3N1Yi9iYXNlLmggJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC1kb2xsYXIvJC9wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1kb2xsYXIvJC9wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1kb2xsYXIvJC9wcmVmaXgvZm9v L3N1YicKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICAuLi9zdWIvbm9iYXNlLmRhdCAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWRvbGxhci8kL3ByZWZpeC9m b28vc3ViJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1kb2xsYXIvJC9wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1kb2xsYXIvJC9wcmVmaXgvZm9vL3N1YicKIC91c3IvYmlu L2luc3RhbGwgLWMgLW0gNjQ0ICAuLi9zdWIvbm9iYXNlLmggJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1kb2xsYXIvJC9wcmVmaXgvZm9vL3N1YicKbWFrZVsxXTog TGVhdmluZyBkaXJlY3RvcnkgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv YnVpbGQtZG9sbGFyJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1kb2xsYXIvJC8uLyQtcHJlZml4L2Zvby9zdWIvbm9iYXNlLmgnCiNbc3RkZXJy XW1ha2U6ICoqKiBbTWFrZWZpbGU6MTE2MDogdGVzdC1pbnN0XSBFcnJvciAxCiNbc3RkZXJyXSsg cj0nbm90IG9rJwojW3N0ZGVycl0rIGRlc2NyaXB0aW9uPSdkb2xsYXIgaW4gZGVzdGRpcicKI1tz dGRlcnJdKyBleHBlY3RlZF90b19mYWlsIGRlc3QgZG9sbGFyCiNbc3RkZXJyXSsgY2FzZSAkMSBp bgojW3N0ZGVycl0rIGlzX2luX2xpc3QgZG9sbGFyIHNxdW90ZSBkcXVvdGUgYnF1b3RlIHNoYXJw IGRvbGxhciBsaW5lZmVlZCBhX2xmX2IKI1tzdGRlcnJdKyBpdGVtPWRvbGxhcgojW3N0ZGVycl0r IHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyByZXR1cm4gMAojW3N0 ZGVycl0rIGRpcmVjdGl2ZT1UT0RPCm5vdCBvayAxMCAtIGRvbGxhciBpbiBkZXN0ZGlyICMgVE9E TyBsb25nLXN0YW5kaW5nIGxpbWl0YXRpb24KWEZBSUw6IHQvaW5zdHNwYy50YXAgMTAgLSBkb2xs YXIgaW4gZGVzdGRpciAjIFRPRE8gbG9uZy1zdGFuZGluZyBsaW1pdGF0aW9uCiNbc3RkZXJyXSsg cmVhc29uPSdsb25nLXN0YW5kaW5nIGxpbWl0YXRpb24nCiNbc3RkZXJyXSsgcmVzdWx0XyAnbm90 IG9rJyAtRCBUT0RPIC1yICdsb25nLXN0YW5kaW5nIGxpbWl0YXRpb24nIC0tICdkb2xsYXIgaW4g ZGVzdGRpcicKI1tzdGRlcnJdKyBzZXQgK3gKI1tzdGRlcnJdKyBjZCAvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyCiNbc3RkZXJyXSsgbm90IGFtX2tlZXBpbmdfdGVzdGRpcnMK I1tzdGRlcnJdKyBhbV9rZWVwaW5nX3Rlc3RkaXJzCiNbc3RkZXJyXSsgY2FzZSAka2VlcF90ZXN0 ZGlycyBpbgojW3N0ZGVycl0rIHJldHVybiAxCiNbc3RkZXJyXSsgdGVzdCAnbm90IG9rJyA9IG9r CiNbc3RkZXJyXSsgOiBGb3Igc2hlbGxzIHdpdGggYnVzdGVkICdzZXQgLWUuJwojW3N0ZGVycl0r IGZvciB0ZXN0X25hbWUgaW4gJyR0ZXN0X25hbWVzX2xpc3QnCiNbc3RkZXJyXSsgZXZhbCAndGVz dF9zdHJpbmc9JHtpbnN0c3BjX19iYW5nfScKI1tzdGRlcnJdKysgdGVzdF9zdHJpbmc9JyEnCiNb c3RkZXJyXSsgdGVzdCAneCEnID0geAojW3N0ZGVycl0rIG1rZGlyICcuLyEnCiNbc3RkZXJyXSsg Y2FzZSAkdGVzdF9zdHJpbmcgaW4KI1tzdGRlcnJdKyBmb3Igd2hlcmUgaW4gYnVpbGQgZGVzdAoj W3N0ZGVycl0rIGNhc2UgJHdoZXJlIGluCiNbc3RkZXJyXSsgYnVpbGQ9Jy4vIScKI1tzdGRlcnJd KyBkZXN0PS91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5nCiNb c3RkZXJyXSsgY2QgJy4vIScKI1tzdGRlcnJdKyByPW9rCiNbc3RkZXJyXSsgLi4vY29uZmlndXJl IC0tcHJlZml4ICcvIS1wcmVmaXgnCmNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3Rh bGwuLi4gL3Vzci9iaW4vaW5zdGFsbCAtYwpjaGVja2luZyB3aGV0aGVyIHNsZWVwIHN1cHBvcnRz IGZyYWN0aW9uYWwgc2Vjb25kcy4uLiB5ZXMKY2hlY2tpbmcgZmlsZXN5c3RlbSB0aW1lc3RhbXAg cmVzb2x1dGlvbi4uLiAwLjAxCmNoZWNraW5nIHdoZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMg c2FuZS4uLiB5ZXMKY2hlY2tpbmcgZm9yIGEgcmFjZS1mcmVlIG1rZGlyIC1wLi4uIG1rZGlyIC1w CmNoZWNraW5nIGZvciBnYXdrLi4uIG5vCmNoZWNraW5nIGZvciBtYXdrLi4uIG5vCmNoZWNraW5n IGZvciBuYXdrLi4uIG5vCmNoZWNraW5nIGZvciBhd2suLi4gYXdrCmNoZWNraW5nIHdoZXRoZXIg bWFrZSBzZXRzICQoTUFLRSkuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgbWFrZSBzdXBwb3J0cyBu ZXN0ZWQgdmFyaWFibGVzLi4uIHllcwpjaGVja2luZyB4YXJncyAtbiB3b3Jrcy4uLiB5ZXMKY2hl Y2tpbmcgd2hldGhlciBVSUQgJzUwMScgaXMgc3VwcG9ydGVkIGJ5IHVzdGFyIGZvcm1hdC4uLiB5 ZXMKY2hlY2tpbmcgd2hldGhlciBHSUQgJzIwJyBpcyBzdXBwb3J0ZWQgYnkgdXN0YXIgZm9ybWF0 Li4uIHllcwpjaGVja2luZyBob3cgdG8gY3JlYXRlIGEgdXN0YXIgdGFyIGFyY2hpdmUuLi4gcGxh aW50YXIKY2hlY2tpbmcgZm9yIGdjYy4uLiBnY2MKY2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21w aWxlciB3b3Jrcy4uLiB5ZXMKY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgZGVmYXVsdCBvdXRwdXQg ZmlsZSBuYW1lLi4uIGEub3V0CmNoZWNraW5nIGZvciBzdWZmaXggb2YgZXhlY3V0YWJsZXMuLi4g CmNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZy4uLiBubwpjaGVja2luZyBm b3Igc3VmZml4IG9mIG9iamVjdCBmaWxlcy4uLiBvCmNoZWNraW5nIHdoZXRoZXIgdGhlIGNvbXBp bGVyIHN1cHBvcnRzIEdOVSBDLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIGdjYyBhY2NlcHRzIC1n Li4uIHllcwpjaGVja2luZyBmb3IgZ2NjIG9wdGlvbiB0byBlbmFibGUgQzIzIGZlYXR1cmVzLi4u IC1zdGQ9Z251MjMKY2hlY2tpbmcgd2hldGhlciBnY2MgLXN0ZD1nbnUyMyB1bmRlcnN0YW5kcyAt YyBhbmQgLW8gdG9nZXRoZXIuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgbWFrZSBzdXBwb3J0cyB0 aGUgaW5jbHVkZSBkaXJlY3RpdmUuLi4geWVzIChHTlUgc3R5bGUpCmNoZWNraW5nIGRlcGVuZGVu Y3kgc3R5bGUgb2YgZ2NjIC1zdGQ9Z251MjMuLi4gZ2NjMwpjaGVja2luZyBmb3IgYXIuLi4gYXIK Y2hlY2tpbmcgdGhlIGFyY2hpdmVyIChhcikgaW50ZXJmYWNlLi4uIGFyCmNoZWNraW5nIGZvciBy YW5saWIuLi4gcmFubGliCmNoZWNraW5nIHRoYXQgZ2VuZXJhdGVkIGZpbGVzIGFyZSBuZXdlciB0 aGFuIGNvbmZpZ3VyZS4uLiBkb25lCmNvbmZpZ3VyZTogY3JlYXRpbmcgLi9jb25maWcuc3RhdHVz CmNvbmZpZy5zdGF0dXM6IGNyZWF0aW5nIE1ha2VmaWxlCmNvbmZpZy5zdGF0dXM6IGV4ZWN1dGlu ZyBkZXBmaWxlcyBjb21tYW5kcwojW3N0ZGVycl0rIG1ha2UgYWxsCmdjYyAtc3RkPWdudTIzIC1E UEFDS0FHRV9OQU1FPVwiaW5zdHNwY1wiIC1EUEFDS0FHRV9UQVJOQU1FPVwiaW5zdHNwY1wiIC1E UEFDS0FHRV9WRVJTSU9OPVwiMS4wXCIgLURQQUNLQUdFX1NUUklORz1cImluc3RzcGNcIDEuMFwi IC1EUEFDS0FHRV9CVUdSRVBPUlQ9XCJcIiAtRFBBQ0tBR0VfVVJMPVwiXCIgLURQQUNLQUdFPVwi aW5zdHNwY1wiIC1EVkVSU0lPTj1cIjEuMFwiIC1JLiAtSS4uICAgICAtZyAtTzIgLU1UIHNvdXJj ZS5vIC1NRCAtTVAgLU1GIC5kZXBzL3NvdXJjZS5UcG8gLWMgLW8gc291cmNlLm8gLi4vc291cmNl LmMKbXYgLWYgLmRlcHMvc291cmNlLlRwbyAuZGVwcy9zb3VyY2UuUG8KZ2NjIC1zdGQ9Z251MjMg IC1nIC1PMiAgIC1vIHN1Yi9iYXNlIHNvdXJjZS5vICAKZ2NjIC1zdGQ9Z251MjMgIC1nIC1PMiAg IC1vIHN1Yi9ub2Jhc2Ugc291cmNlLm8gIApybSAtZiBzdWIvbGliYmFzZS5hCmFyIGNyIHN1Yi9s aWJiYXNlLmEgc291cmNlLm8gCnJhbmxpYiBzdWIvbGliYmFzZS5hCnJtIC1mIHN1Yi9saWJub2Jh c2UuYQphciBjciBzdWIvbGlibm9iYXNlLmEgc291cmNlLm8gCnJhbmxpYiBzdWIvbGlibm9iYXNl LmEKI1tzdGRlcnJdKyBERVNURElSPS91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1iYW5nCiNbc3RkZXJyXSsgZmlsZT0nLi8hJwojW3N0ZGVycl0rIG1ha2UgdGVzdC1p bnN0Cm1ha2VbMV06IEVudGVyaW5nIGRpcmVjdG9yeSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci8hJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1iYW5nLyEtcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLi4v c3ViL2Jhc2Uuc2ggJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1i YW5nLyEtcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtYmFuZy8hLXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1t IDY0NCAgc3ViL2xpYmJhc2UuYSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LWJhbmcvIS1wcmVmaXgvZm9vJwogKCBjZCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LWJhbmcvIS1wcmVmaXgvZm9vJyAmJiByYW5saWIgbGliYmFzZS5h ICkKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt YmFuZy8hLXByZWZpeC9mb28nCiAgL3Vzci9iaW4vaW5zdGFsbCAtYyBzdWIvYmFzZSAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWJhbmcvIS1wcmVmaXgvZm9vJwog bWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5n LyEtcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtYmFuZy8hLXByZWZpeC9mb28vc3ViLycKIC91c3IvYmluL2luc3RhbGwgLWMg Li4vc3ViL25vYmFzZS5zaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LWJhbmcvIS1wcmVmaXgvZm9vL3N1Yi8nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWJhbmcvIS1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5nLyEtcHJlZml4L2Zv by9zdWInCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAgc3ViL2xpYm5vYmFzZS5hICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYmFuZy8hLXByZWZpeC9mb28v c3ViJwogKCBjZCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWJh bmcvIS1wcmVmaXgvZm9vJyAmJiByYW5saWIgc3ViL2xpYm5vYmFzZS5hICkKIG1rZGlyIC1wICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYmFuZy8hLXByZWZpeC9m b28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LWJhbmcvIS1wcmVmaXgvZm9vL3N1Yi8nCiAgL3Vzci9iaW4vaW5zdGFsbCAtYyBzdWIvbm9iYXNl ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYmFuZy8hLXByZWZp eC9mb28vc3ViLycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyL2Rlc3QtYmFuZy8hLXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAu Li9zdWIvYmFzZS5kYXQgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC1iYW5nLyEtcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3QtYmFuZy8hLXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1j IC1tIDY0NCAuLi9zdWIvYmFzZS5oICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyL2Rlc3QtYmFuZy8hLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWJhbmcvIS1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5nLyEtcHJlZml4L2Zv by9zdWInCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAgLi4vc3ViL25vYmFzZS5kYXQgJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5nLyEtcHJlZml4L2Zv by9zdWInCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LWJhbmcvIS1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5nLyEtcHJlZml4L2Zvby9zdWInCiAvdXNyL2Jpbi9pbnN0 YWxsIC1jIC1tIDY0NCAgLi4vc3ViL25vYmFzZS5oICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3QtYmFuZy8hLXByZWZpeC9mb28vc3ViJwptYWtlWzFdOiBMZWF2aW5n IGRpcmVjdG9yeSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci8hJwp0ZXN0 ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5nLy4v IS1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2UuaCcKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYmFuZy8uLyEtcHJlZml4L2Zvby9ub2Jhc2UuaCcKdGVz dCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYmFuZy8u LyEtcHJlZml4L2Zvby9iYXNlLmgnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LWJhbmcvLi8hLXByZWZpeC9mb28vc3ViL25vYmFzZS5kYXQnCnRl c3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWJhbmcv Li8hLXByZWZpeC9mb28vbm9iYXNlLmRhdCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYmFuZy8uLyEtcHJlZml4L2Zvby9iYXNlLmRhdCcKdGVz dCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYmFuZy8u LyEtcHJlZml4L2Zvby9zdWIvbm9iYXNlLnNoJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5nLy4vIS1wcmVmaXgvZm9vL25vYmFzZS5zaCcK dGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYmFu Zy8uLyEtcHJlZml4L2Zvby9iYXNlLnNoJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5nLy4vIS1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2UnCnRl c3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWJhbmcv Li8hLXByZWZpeC9mb28vbm9iYXNlJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5nLy4vIS1wcmVmaXgvZm9vL2Jhc2UnCnRlc3QgICAtZiAn L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWJhbmcvLi8hLXByZWZp eC9mb28vc3ViL2xpYm5vYmFzZS5hJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5nLy4vIS1wcmVmaXgvZm9vL2xpYm5vYmFzZS5hJwp0ZXN0 ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5nLy4v IS1wcmVmaXgvZm9vL2xpYmJhc2UuYScKI1tzdGRlcnJdKyBkZXNjcmlwdGlvbj0nYmFuZyBpbiBi dWlsZGRpcicKI1tzdGRlcnJdKyBleHBlY3RlZF90b19mYWlsIGJ1aWxkIGJhbmcKI1tzdGRlcnJd KyBjYXNlICQxIGluCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBiYW5nIHNxdW90ZSBkcXVvdGUgYnF1 b3RlIHNoYXJwIGRvbGxhciBic2xhc2ggYW1wZXJzYW5kIGxpbmVmZWVkIHF1YWRyaWdyYXBoMCBh X2xmX2IKI1tzdGRlcnJdKyBpdGVtPWJhbmcKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNh c2UgIiAkKiAiIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKb2sgMTEgLSBiYW5nIGluIGJ1aWxkZGly ClBBU1M6IHQvaW5zdHNwYy50YXAgMTEgLSBiYW5nIGluIGJ1aWxkZGlyCiNbc3RkZXJyXSsgZGly ZWN0aXZlPQojW3N0ZGVycl0rIHJlYXNvbj0KI1tzdGRlcnJdKyByZXN1bHRfIG9rIC1EICcnIC1y ICcnIC0tICdiYW5nIGluIGJ1aWxkZGlyJwojW3N0ZGVycl0rIHNldCAreAojW3N0ZGVycl0rIGNk IC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIKI1tzdGRlcnJdKyBub3QgYW1f a2VlcGluZ190ZXN0ZGlycwojW3N0ZGVycl0rIGFtX2tlZXBpbmdfdGVzdGRpcnMKI1tzdGRlcnJd KyBjYXNlICRrZWVwX3Rlc3RkaXJzIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyB0 ZXN0IG9rID0gb2sKI1tzdGRlcnJdKyBybV9yZl8gJy4vIScgL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9kZXN0LWJhbmcKI1tzdGRlcnJdKyB0ZXN0IDIgLWd0IDAKI1tzdGRl cnJdKyBjaG1vZCAtUiB1K3J3eCAnLi8hJyAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtYmFuZwojW3N0ZGVycl0rIHJtIC1yZiAnLi8hJyAvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYmFuZwojW3N0ZGVycl0rIF9hbV9ybXJmX3N0YXR1 cz0wCiNbc3RkZXJyXSsgZm9yIF9hbV9ybXJmX3YgaW4gJyIkQCInCiNbc3RkZXJyXSsgdGVzdCAt ZSAnLi8hJwojW3N0ZGVycl0rIGZvciBfYW1fcm1yZl92IGluICciJEAiJwojW3N0ZGVycl0rIHRl c3QgLWUgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWJhbmcKI1tz dGRlcnJdKyByZXR1cm4gMAojW3N0ZGVycl0rIDogRm9yIHNoZWxscyB3aXRoIGJ1c3RlZCAnc2V0 IC1lLicKI1tzdGRlcnJdKyBmb3Igd2hlcmUgaW4gYnVpbGQgZGVzdAojW3N0ZGVycl0rIGNhc2Ug JHdoZXJlIGluCiNbc3RkZXJyXSsgYnVpbGQ9YnVpbGQtYmFuZwojW3N0ZGVycl0rIGRlc3Q9Jy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5nLyEnCiNbc3RkZXJy XSsgbWtkaXIgYnVpbGQtYmFuZwojW3N0ZGVycl0rIGNkIGJ1aWxkLWJhbmcKI1tzdGRlcnJdKyBy PW9rCiNbc3RkZXJyXSsgLi4vY29uZmlndXJlIC0tcHJlZml4ICcvIS1wcmVmaXgnCmNoZWNraW5n IGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwuLi4gL3Vzci9iaW4vaW5zdGFsbCAtYwpjaGVj a2luZyB3aGV0aGVyIHNsZWVwIHN1cHBvcnRzIGZyYWN0aW9uYWwgc2Vjb25kcy4uLiB5ZXMKY2hl Y2tpbmcgZmlsZXN5c3RlbSB0aW1lc3RhbXAgcmVzb2x1dGlvbi4uLiAwLjAxCmNoZWNraW5nIHdo ZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZS4uLiB5ZXMKY2hlY2tpbmcgZm9yIGEgcmFj ZS1mcmVlIG1rZGlyIC1wLi4uIG1rZGlyIC1wCmNoZWNraW5nIGZvciBnYXdrLi4uIG5vCmNoZWNr aW5nIGZvciBtYXdrLi4uIG5vCmNoZWNraW5nIGZvciBuYXdrLi4uIG5vCmNoZWNraW5nIGZvciBh d2suLi4gYXdrCmNoZWNraW5nIHdoZXRoZXIgbWFrZSBzZXRzICQoTUFLRSkuLi4geWVzCmNoZWNr aW5nIHdoZXRoZXIgbWFrZSBzdXBwb3J0cyBuZXN0ZWQgdmFyaWFibGVzLi4uIHllcwpjaGVja2lu ZyB4YXJncyAtbiB3b3Jrcy4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBVSUQgJzUwMScgaXMgc3Vw cG9ydGVkIGJ5IHVzdGFyIGZvcm1hdC4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBHSUQgJzIwJyBp cyBzdXBwb3J0ZWQgYnkgdXN0YXIgZm9ybWF0Li4uIHllcwpjaGVja2luZyBob3cgdG8gY3JlYXRl IGEgdXN0YXIgdGFyIGFyY2hpdmUuLi4gcGxhaW50YXIKY2hlY2tpbmcgZm9yIGdjYy4uLiBnY2MK Y2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciB3b3Jrcy4uLiB5ZXMKY2hlY2tpbmcgZm9y IEMgY29tcGlsZXIgZGVmYXVsdCBvdXRwdXQgZmlsZSBuYW1lLi4uIGEub3V0CmNoZWNraW5nIGZv ciBzdWZmaXggb2YgZXhlY3V0YWJsZXMuLi4gCmNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIGNyb3Nz IGNvbXBpbGluZy4uLiBubwpjaGVja2luZyBmb3Igc3VmZml4IG9mIG9iamVjdCBmaWxlcy4uLiBv CmNoZWNraW5nIHdoZXRoZXIgdGhlIGNvbXBpbGVyIHN1cHBvcnRzIEdOVSBDLi4uIHllcwpjaGVj a2luZyB3aGV0aGVyIGdjYyBhY2NlcHRzIC1nLi4uIHllcwpjaGVja2luZyBmb3IgZ2NjIG9wdGlv biB0byBlbmFibGUgQzIzIGZlYXR1cmVzLi4uIC1zdGQ9Z251MjMKY2hlY2tpbmcgd2hldGhlciBn Y2MgLXN0ZD1nbnUyMyB1bmRlcnN0YW5kcyAtYyBhbmQgLW8gdG9nZXRoZXIuLi4geWVzCmNoZWNr aW5nIHdoZXRoZXIgbWFrZSBzdXBwb3J0cyB0aGUgaW5jbHVkZSBkaXJlY3RpdmUuLi4geWVzIChH TlUgc3R5bGUpCmNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgZ2NjIC1zdGQ9Z251MjMuLi4g Z2NjMwpjaGVja2luZyBmb3IgYXIuLi4gYXIKY2hlY2tpbmcgdGhlIGFyY2hpdmVyIChhcikgaW50 ZXJmYWNlLi4uIGFyCmNoZWNraW5nIGZvciByYW5saWIuLi4gcmFubGliCmNoZWNraW5nIHRoYXQg Z2VuZXJhdGVkIGZpbGVzIGFyZSBuZXdlciB0aGFuIGNvbmZpZ3VyZS4uLiBkb25lCmNvbmZpZ3Vy ZTogY3JlYXRpbmcgLi9jb25maWcuc3RhdHVzCmNvbmZpZy5zdGF0dXM6IGNyZWF0aW5nIE1ha2Vm aWxlCmNvbmZpZy5zdGF0dXM6IGV4ZWN1dGluZyBkZXBmaWxlcyBjb21tYW5kcwojW3N0ZGVycl0r IG1ha2UgYWxsCmdjYyAtc3RkPWdudTIzIC1EUEFDS0FHRV9OQU1FPVwiaW5zdHNwY1wiIC1EUEFD S0FHRV9UQVJOQU1FPVwiaW5zdHNwY1wiIC1EUEFDS0FHRV9WRVJTSU9OPVwiMS4wXCIgLURQQUNL QUdFX1NUUklORz1cImluc3RzcGNcIDEuMFwiIC1EUEFDS0FHRV9CVUdSRVBPUlQ9XCJcIiAtRFBB Q0tBR0VfVVJMPVwiXCIgLURQQUNLQUdFPVwiaW5zdHNwY1wiIC1EVkVSU0lPTj1cIjEuMFwiIC1J LiAtSS4uICAgICAtZyAtTzIgLU1UIHNvdXJjZS5vIC1NRCAtTVAgLU1GIC5kZXBzL3NvdXJjZS5U cG8gLWMgLW8gc291cmNlLm8gLi4vc291cmNlLmMKbXYgLWYgLmRlcHMvc291cmNlLlRwbyAuZGVw cy9zb3VyY2UuUG8KZ2NjIC1zdGQ9Z251MjMgIC1nIC1PMiAgIC1vIHN1Yi9iYXNlIHNvdXJjZS5v ICAKZ2NjIC1zdGQ9Z251MjMgIC1nIC1PMiAgIC1vIHN1Yi9ub2Jhc2Ugc291cmNlLm8gIApybSAt ZiBzdWIvbGliYmFzZS5hCmFyIGNyIHN1Yi9saWJiYXNlLmEgc291cmNlLm8gCnJhbmxpYiBzdWIv bGliYmFzZS5hCnJtIC1mIHN1Yi9saWJub2Jhc2UuYQphciBjciBzdWIvbGlibm9iYXNlLmEgc291 cmNlLm8gCnJhbmxpYiBzdWIvbGlibm9iYXNlLmEKI1tzdGRlcnJdKyBERVNURElSPScvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYmFuZy8hJwojW3N0ZGVycl0rIGZp bGU9Jy4vIScKI1tzdGRlcnJdKyBtYWtlIHRlc3QtaW5zdAptYWtlWzFdOiBFbnRlcmluZyBkaXJl Y3RvcnkgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvYnVpbGQtYmFuZycK IG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYmFu Zy8hLyEtcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLi4vc3ViL2Jhc2Uuc2ggJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5nLyEvIS1wcmVmaXgv Zm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC1iYW5nLyEvIS1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIHN1Yi9s aWJiYXNlLmEgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5n LyEvIS1wcmVmaXgvZm9vJwogKCBjZCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LWJhbmcvIS8hLXByZWZpeC9mb28nICYmIHJhbmxpYiBsaWJiYXNlLmEgKQogbWtk aXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5nLyEv IS1wcmVmaXgvZm9vJwogIC91c3IvYmluL2luc3RhbGwgLWMgc3ViL2Jhc2UgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5nLyEvIS1wcmVmaXgvZm9vJwogbWtk aXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5nLyEv IS1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1iYW5nLyEvIS1wcmVmaXgvZm9vL3N1Yi8nCiAvdXNyL2Jpbi9pbnN0YWxsIC1j IC4uL3N1Yi9ub2Jhc2Uuc2ggJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1iYW5nLyEvIS1wcmVmaXgvZm9vL3N1Yi8nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWJhbmcvIS8hLXByZWZpeC9mb28nCiBta2RpciAt cCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWJhbmcvIS8hLXBy ZWZpeC9mb28vc3ViJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIHN1Yi9saWJub2Jhc2Uu YSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWJhbmcvIS8hLXBy ZWZpeC9mb28vc3ViJwogKCBjZCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LWJhbmcvIS8hLXByZWZpeC9mb28nICYmIHJhbmxpYiBzdWIvbGlibm9iYXNlLmEgKQog bWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5n LyEvIS1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1iYW5nLyEvIS1wcmVmaXgvZm9vL3N1Yi8nCiAgL3Vzci9iaW4vaW5zdGFs bCAtYyBzdWIvbm9iYXNlICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rl c3QtYmFuZy8hLyEtcHJlZml4L2Zvby9zdWIvJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5nLyEvIS1wcmVmaXgvZm9vJwogL3Vzci9iaW4v aW5zdGFsbCAtYyAtbSA2NDQgLi4vc3ViL2Jhc2UuZGF0ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtYmFuZy8hLyEtcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYmFuZy8hLyEtcHJlZml4L2Zv bycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0IC4uL3N1Yi9iYXNlLmggJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5nLyEvIS1wcmVmaXgvZm9vJwogbWtk aXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5nLyEv IS1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1iYW5nLyEvIS1wcmVmaXgvZm9vL3N1YicKIC91c3IvYmluL2luc3RhbGwgLWMg LW0gNjQ0ICAuLi9zdWIvbm9iYXNlLmRhdCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9kZXN0LWJhbmcvIS8hLXByZWZpeC9mb28vc3ViJwogbWtkaXIgLXAgJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5nLyEvIS1wcmVmaXgvZm9vJwog bWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5n LyEvIS1wcmVmaXgvZm9vL3N1YicKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICAuLi9zdWIv bm9iYXNlLmggJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5n LyEvIS1wcmVmaXgvZm9vL3N1YicKbWFrZVsxXTogTGVhdmluZyBkaXJlY3RvcnkgJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvYnVpbGQtYmFuZycKdGVzdCAgIC1mICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYmFuZy8hLy4vIS1wcmVmaXgv Zm9vL3N1Yi9ub2Jhc2UuaCcKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtYmFuZy8hLy4vIS1wcmVmaXgvZm9vL25vYmFzZS5oJwp0ZXN0ICAgLWYg Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5nLyEvLi8hLXBy ZWZpeC9mb28vYmFzZS5oJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1iYW5nLyEvLi8hLXByZWZpeC9mb28vc3ViL25vYmFzZS5kYXQnCnRlc3Qg ISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWJhbmcvIS8u LyEtcHJlZml4L2Zvby9ub2Jhc2UuZGF0Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5nLyEvLi8hLXByZWZpeC9mb28vYmFzZS5kYXQnCnRl c3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWJhbmcv IS8uLyEtcHJlZml4L2Zvby9zdWIvbm9iYXNlLnNoJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3Jj L2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5nLyEvLi8hLXByZWZpeC9mb28vbm9iYXNl LnNoJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC1iYW5nLyEvLi8hLXByZWZpeC9mb28vYmFzZS5zaCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYmFuZy8hLy4vIS1wcmVmaXgvZm9vL3N1Yi9u b2Jhc2UnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LWJhbmcvIS8uLyEtcHJlZml4L2Zvby9ub2Jhc2UnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWJhbmcvIS8uLyEtcHJlZml4L2Zvby9iYXNl Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1i YW5nLyEvLi8hLXByZWZpeC9mb28vc3ViL2xpYm5vYmFzZS5hJwp0ZXN0ICEgLWYgJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5nLyEvLi8hLXByZWZpeC9mb28v bGlibm9iYXNlLmEnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LWJhbmcvIS8uLyEtcHJlZml4L2Zvby9saWJiYXNlLmEnCiNbc3RkZXJyXSsgZGVz Y3JpcHRpb249J2JhbmcgaW4gZGVzdGRpcicKI1tzdGRlcnJdKyBleHBlY3RlZF90b19mYWlsIGRl c3QgYmFuZwojW3N0ZGVycl0rIGNhc2UgJDEgaW4KI1tzdGRlcnJdKyBpc19pbl9saXN0IGJhbmcg c3F1b3RlIGRxdW90ZSBicXVvdGUgc2hhcnAgZG9sbGFyIGxpbmVmZWVkIGFfbGZfYgojW3N0ZGVy cl0rIGl0ZW09YmFuZwojW3N0ZGVycl0rIHNoaWZ0Cm9rIDEyIC0gYmFuZyBpbiBkZXN0ZGlyClBB U1M6IHQvaW5zdHNwYy50YXAgMTIgLSBiYW5nIGluIGRlc3RkaXIKI1tzdGRlcnJdKyBjYXNlICIg JCogIiBpbgojW3N0ZGVycl0rIHJldHVybiAxCiNbc3RkZXJyXSsgZGlyZWN0aXZlPQojW3N0ZGVy cl0rIHJlYXNvbj0KI1tzdGRlcnJdKyByZXN1bHRfIG9rIC1EICcnIC1yICcnIC0tICdiYW5nIGlu IGRlc3RkaXInCiNbc3RkZXJyXSsgc2V0ICt4CiNbc3RkZXJyXSsgY2QgL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpcgojW3N0ZGVycl0rIG5vdCBhbV9rZWVwaW5nX3Rlc3RkaXJz CiNbc3RkZXJyXSsgYW1fa2VlcGluZ190ZXN0ZGlycwojW3N0ZGVycl0rIGNhc2UgJGtlZXBfdGVz dGRpcnMgaW4KI1tzdGRlcnJdKyByZXR1cm4gMQojW3N0ZGVycl0rIHRlc3Qgb2sgPSBvawojW3N0 ZGVycl0rIHJtX3JmXyBidWlsZC1iYW5nICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtYmFuZy8hJwojW3N0ZGVycl0rIHRlc3QgMiAtZ3QgMAojW3N0ZGVycl0rIGNo bW9kIC1SIHUrcnd4IGJ1aWxkLWJhbmcgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1iYW5nLyEnCiNbc3RkZXJyXSsgcm0gLXJmIGJ1aWxkLWJhbmcgJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1iYW5nLyEnCiNbc3RkZXJyXSsgX2Ft X3JtcmZfc3RhdHVzPTAKI1tzdGRlcnJdKyBmb3IgX2FtX3JtcmZfdiBpbiAnIiRAIicKI1tzdGRl cnJdKyB0ZXN0IC1lIGJ1aWxkLWJhbmcKI1tzdGRlcnJdKyBmb3IgX2FtX3JtcmZfdiBpbiAnIiRA IicKI1tzdGRlcnJdKyB0ZXN0IC1lICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyL2Rlc3QtYmFuZy8hJwojW3N0ZGVycl0rIHJldHVybiAwCiNbc3RkZXJyXSsgOiBGb3Igc2hl bGxzIHdpdGggYnVzdGVkICdzZXQgLWUuJwojW3N0ZGVycl0rIGZvciB0ZXN0X25hbWUgaW4gJyR0 ZXN0X25hbWVzX2xpc3QnCiNbc3RkZXJyXSsgZXZhbCAndGVzdF9zdHJpbmc9JHtpbnN0c3BjX19i c2xhc2h9JwojW3N0ZGVycl0rKyB0ZXN0X3N0cmluZz0nXCcKI1tzdGRlcnJdKyB0ZXN0ICd4XCcg PSB4CiNbc3RkZXJyXSsgbWtkaXIgJy4vXCcKI1tzdGRlcnJdKyBjYXNlICR0ZXN0X3N0cmluZyBp bgojW3N0ZGVycl0rIGZvciB3aGVyZSBpbiBidWlsZCBkZXN0CiNbc3RkZXJyXSsgY2FzZSAkd2hl cmUgaW4KI1tzdGRlcnJdKyBidWlsZD0nLi9cJwojW3N0ZGVycl0rIGRlc3Q9L3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWJzbGFzaAojW3N0ZGVycl0rIGNkICcuL1wn CiNbc3RkZXJyXSsgcj1vawojW3N0ZGVycl0rIC4uL2NvbmZpZ3VyZSAtLXByZWZpeCAnL1wtcHJl Zml4JwpjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsLi4uIC91c3IvYmluL2lu c3RhbGwgLWMKY2hlY2tpbmcgd2hldGhlciBzbGVlcCBzdXBwb3J0cyBmcmFjdGlvbmFsIHNlY29u ZHMuLi4geWVzCmNoZWNraW5nIGZpbGVzeXN0ZW0gdGltZXN0YW1wIHJlc29sdXRpb24uLi4gMC4w MQpjaGVja2luZyB3aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmUuLi4gbm8KI1tzdGRl cnJdY29uZmlndXJlOiBlcnJvcjogdW5zYWZlIGFic29sdXRlIHdvcmtpbmcgZGlyZWN0b3J5IG5h bWUKI1tzdGRlcnJdKyByPSdub3Qgb2snCiNbc3RkZXJyXSsgZGVzY3JpcHRpb249J2JzbGFzaCBp biBidWlsZGRpcicKI1tzdGRlcnJdKyBleHBlY3RlZF90b19mYWlsIGJ1aWxkIGJzbGFzaAojW3N0 ZGVycl0rIGNhc2UgJDEgaW4Kbm90IG9rIDEzIC0gYnNsYXNoIGluIGJ1aWxkZGlyICMgVE9ETyBs b25nLXN0YW5kaW5nIGxpbWl0YXRpb24KWEZBSUw6IHQvaW5zdHNwYy50YXAgMTMgLSBic2xhc2gg aW4gYnVpbGRkaXIgIyBUT0RPIGxvbmctc3RhbmRpbmcgbGltaXRhdGlvbgojW3N0ZGVycl0rIGlz X2luX2xpc3QgYnNsYXNoIHNxdW90ZSBkcXVvdGUgYnF1b3RlIHNoYXJwIGRvbGxhciBic2xhc2gg YW1wZXJzYW5kIGxpbmVmZWVkIHF1YWRyaWdyYXBoMCBhX2xmX2IKI1tzdGRlcnJdKyBpdGVtPWJz bGFzaAojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJd KyByZXR1cm4gMAojW3N0ZGVycl0rIGRpcmVjdGl2ZT1UT0RPCiNbc3RkZXJyXSsgcmVhc29uPSds b25nLXN0YW5kaW5nIGxpbWl0YXRpb24nCiNbc3RkZXJyXSsgcmVzdWx0XyAnbm90IG9rJyAtRCBU T0RPIC1yICdsb25nLXN0YW5kaW5nIGxpbWl0YXRpb24nIC0tICdic2xhc2ggaW4gYnVpbGRkaXIn CiNbc3RkZXJyXSsgc2V0ICt4CiNbc3RkZXJyXSsgY2QgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpcgojW3N0ZGVycl0rIG5vdCBhbV9rZWVwaW5nX3Rlc3RkaXJzCiNbc3RkZXJy XSsgYW1fa2VlcGluZ190ZXN0ZGlycwojW3N0ZGVycl0rIGNhc2UgJGtlZXBfdGVzdGRpcnMgaW4K I1tzdGRlcnJdKyByZXR1cm4gMQojW3N0ZGVycl0rIHRlc3QgJ25vdCBvaycgPSBvawojW3N0ZGVy cl0rIDogRm9yIHNoZWxscyB3aXRoIGJ1c3RlZCAnc2V0IC1lLicKI1tzdGRlcnJdKyBmb3Igd2hl cmUgaW4gYnVpbGQgZGVzdAojW3N0ZGVycl0rIGNhc2UgJHdoZXJlIGluCiNbc3RkZXJyXSsgYnVp bGQ9YnVpbGQtYnNsYXNoCiNbc3RkZXJyXSsgZGVzdD0nL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LWJzbGFzaC9cJwojW3N0ZGVycl0rIG1rZGlyIGJ1aWxkLWJzbGFz aAojW3N0ZGVycl0rIGNkIGJ1aWxkLWJzbGFzaAojW3N0ZGVycl0rIHI9b2sKI1tzdGRlcnJdKyAu Li9jb25maWd1cmUgLS1wcmVmaXggJy9cLXByZWZpeCcKY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBh dGlibGUgaW5zdGFsbC4uLiAvdXNyL2Jpbi9pbnN0YWxsIC1jCmNoZWNraW5nIHdoZXRoZXIgc2xl ZXAgc3VwcG9ydHMgZnJhY3Rpb25hbCBzZWNvbmRzLi4uIHllcwpjaGVja2luZyBmaWxlc3lzdGVt IHRpbWVzdGFtcCByZXNvbHV0aW9uLi4uIDAuMDEKY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZp cm9ubWVudCBpcyBzYW5lLi4uIHllcwpjaGVja2luZyBmb3IgYSByYWNlLWZyZWUgbWtkaXIgLXAu Li4gbWtkaXIgLXAKY2hlY2tpbmcgZm9yIGdhd2suLi4gbm8KY2hlY2tpbmcgZm9yIG1hd2suLi4g bm8KY2hlY2tpbmcgZm9yIG5hd2suLi4gbm8KY2hlY2tpbmcgZm9yIGF3ay4uLiBhd2sKY2hlY2tp bmcgd2hldGhlciBtYWtlIHNldHMgJChNQUtFKS4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtl IHN1cHBvcnRzIG5lc3RlZCB2YXJpYWJsZXMuLi4geWVzCmNoZWNraW5nIHhhcmdzIC1uIHdvcmtz Li4uIHllcwpjaGVja2luZyB3aGV0aGVyIFVJRCAnNTAxJyBpcyBzdXBwb3J0ZWQgYnkgdXN0YXIg Zm9ybWF0Li4uIHllcwpjaGVja2luZyB3aGV0aGVyIEdJRCAnMjAnIGlzIHN1cHBvcnRlZCBieSB1 c3RhciBmb3JtYXQuLi4geWVzCmNoZWNraW5nIGhvdyB0byBjcmVhdGUgYSB1c3RhciB0YXIgYXJj aGl2ZS4uLiBwbGFpbnRhcgpjaGVja2luZyBmb3IgZ2NjLi4uIGdjYwpjaGVja2luZyB3aGV0aGVy IHRoZSBDIGNvbXBpbGVyIHdvcmtzLi4uIHllcwpjaGVja2luZyBmb3IgQyBjb21waWxlciBkZWZh dWx0IG91dHB1dCBmaWxlIG5hbWUuLi4gYS5vdXQKY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVj dXRhYmxlcy4uLiAKY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nLi4uIG5v CmNoZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzLi4uIG8KY2hlY2tpbmcgd2hldGhl ciB0aGUgY29tcGlsZXIgc3VwcG9ydHMgR05VIEMuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgZ2Nj IGFjY2VwdHMgLWcuLi4geWVzCmNoZWNraW5nIGZvciBnY2Mgb3B0aW9uIHRvIGVuYWJsZSBDMjMg ZmVhdHVyZXMuLi4gLXN0ZD1nbnUyMwpjaGVja2luZyB3aGV0aGVyIGdjYyAtc3RkPWdudTIzIHVu ZGVyc3RhbmRzIC1jIGFuZCAtbyB0b2dldGhlci4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtl IHN1cHBvcnRzIHRoZSBpbmNsdWRlIGRpcmVjdGl2ZS4uLiB5ZXMgKEdOVSBzdHlsZSkKY2hlY2tp bmcgZGVwZW5kZW5jeSBzdHlsZSBvZiBnY2MgLXN0ZD1nbnUyMy4uLiBnY2MzCmNoZWNraW5nIGZv ciBhci4uLiBhcgpjaGVja2luZyB0aGUgYXJjaGl2ZXIgKGFyKSBpbnRlcmZhY2UuLi4gYXIKY2hl Y2tpbmcgZm9yIHJhbmxpYi4uLiByYW5saWIKY2hlY2tpbmcgdGhhdCBnZW5lcmF0ZWQgZmlsZXMg YXJlIG5ld2VyIHRoYW4gY29uZmlndXJlLi4uIGRvbmUKY29uZmlndXJlOiBjcmVhdGluZyAuL2Nv bmZpZy5zdGF0dXMKY29uZmlnLnN0YXR1czogY3JlYXRpbmcgTWFrZWZpbGUKY29uZmlnLnN0YXR1 czogZXhlY3V0aW5nIGRlcGZpbGVzIGNvbW1hbmRzCiNbc3RkZXJyXSsgbWFrZSBhbGwKZ2NjIC1z dGQ9Z251MjMgLURQQUNLQUdFX05BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdFX1RBUk5BTUU9XCJp bnN0c3BjXCIgLURQQUNLQUdFX1ZFUlNJT049XCIxLjBcIiAtRFBBQ0tBR0VfU1RSSU5HPVwiaW5z dHNwY1wgMS4wXCIgLURQQUNLQUdFX0JVR1JFUE9SVD1cIlwiIC1EUEFDS0FHRV9VUkw9XCJcIiAt RFBBQ0tBR0U9XCJpbnN0c3BjXCIgLURWRVJTSU9OPVwiMS4wXCIgLUkuIC1JLi4gICAgIC1nIC1P MiAtTVQgc291cmNlLm8gLU1EIC1NUCAtTUYgLmRlcHMvc291cmNlLlRwbyAtYyAtbyBzb3VyY2Uu byAuLi9zb3VyY2UuYwptdiAtZiAuZGVwcy9zb3VyY2UuVHBvIC5kZXBzL3NvdXJjZS5QbwpnY2Mg LXN0ZD1nbnUyMyAgLWcgLU8yICAgLW8gc3ViL2Jhc2Ugc291cmNlLm8gIApnY2MgLXN0ZD1nbnUy MyAgLWcgLU8yICAgLW8gc3ViL25vYmFzZSBzb3VyY2UubyAgCnJtIC1mIHN1Yi9saWJiYXNlLmEK YXIgY3Igc3ViL2xpYmJhc2UuYSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJiYXNlLmEKcm0gLWYg c3ViL2xpYm5vYmFzZS5hCmFyIGNyIHN1Yi9saWJub2Jhc2UuYSBzb3VyY2UubyAKcmFubGliIHN1 Yi9saWJub2Jhc2UuYQojW3N0ZGVycl0rIERFU1RESVI9Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1ic2xhc2gvXCcKI1tzdGRlcnJdKyBmaWxlPScuL1wnCiNbc3Rk ZXJyXSsgbWFrZSB0ZXN0LWluc3QKbWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2J1aWxkLWJzbGFzaCcKIG1rZGlyIC1wICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYnNsYXNoL1wvXC1wcmVm aXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAuLi9zdWIvYmFzZS5zaCAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWJzbGFzaC9cL1wtcHJlZml4L2ZvbycKIG1r ZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYnNsYXNo L1wvXC1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIHN1Yi9saWJiYXNl LmEgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1ic2xhc2gvXC9c LXByZWZpeC9mb28nCiAoIGNkICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtYnNsYXNoL1wvXC1wcmVmaXgvZm9vJyAmJiByYW5saWIgbGliYmFzZS5hICkKIG1rZGly IC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYnNsYXNoL1wv XC1wcmVmaXgvZm9vJwogIC91c3IvYmluL2luc3RhbGwgLWMgc3ViL2Jhc2UgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1ic2xhc2gvXC9cLXByZWZpeC9mb28nCiBt a2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWJzbGFz aC9cL1wtcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtYnNsYXNoL1wvXC1wcmVmaXgvZm9vL3N1Yi8nCiAvdXNyL2Jpbi9pbnN0 YWxsIC1jIC4uL3N1Yi9ub2Jhc2Uuc2ggJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1ic2xhc2gvXC9cLXByZWZpeC9mb28vc3ViLycKIG1rZGlyIC1wICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYnNsYXNoL1wvXC1wcmVmaXgvZm9v JwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1i c2xhc2gvXC9cLXByZWZpeC9mb28vc3ViJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIHN1 Yi9saWJub2Jhc2UuYSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LWJzbGFzaC9cL1wtcHJlZml4L2Zvby9zdWInCiAoIGNkICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtYnNsYXNoL1wvXC1wcmVmaXgvZm9vJyAmJiByYW5saWIgc3Vi L2xpYm5vYmFzZS5hICkKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtYnNsYXNoL1wvXC1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1ic2xhc2gvXC9cLXByZWZpeC9mb28vc3Vi LycKICAvdXNyL2Jpbi9pbnN0YWxsIC1jIHN1Yi9ub2Jhc2UgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1ic2xhc2gvXC9cLXByZWZpeC9mb28vc3ViLycKIG1rZGly IC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYnNsYXNoL1wv XC1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgLi4vc3ViL2Jhc2UuZGF0 ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYnNsYXNoL1wvXC1w cmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1ic2xhc2gvXC9cLXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0 NCAuLi9zdWIvYmFzZS5oICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rl c3QtYnNsYXNoL1wvXC1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1ic2xhc2gvXC9cLXByZWZpeC9mb28nCiBta2RpciAtcCAn L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWJzbGFzaC9cL1wtcHJl Zml4L2Zvby9zdWInCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAgLi4vc3ViL25vYmFzZS5k YXQgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1ic2xhc2gvXC9c LXByZWZpeC9mb28vc3ViJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1ic2xhc2gvXC9cLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWJzbGFzaC9cL1wtcHJlZml4L2Zvby9z dWInCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAgLi4vc3ViL25vYmFzZS5oICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYnNsYXNoL1wvXC1wcmVmaXgvZm9v L3N1YicKbWFrZVsxXTogTGVhdmluZyBkaXJlY3RvcnkgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvYnVpbGQtYnNsYXNoJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1ic2xhc2gvXC8uL1wtcHJlZml4L2Zvby9zdWIvbm9i YXNlLmgnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LWJzbGFzaC9cLy4vXC1wcmVmaXgvZm9vL25vYmFzZS5oJwp0ZXN0ICAgLWYgJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1ic2xhc2gvXC8uL1wtcHJlZml4L2Zv by9iYXNlLmgnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LWJzbGFzaC9cLy4vXC1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2UuZGF0Jwp0ZXN0ICEgLWYg Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1ic2xhc2gvXC8uL1wt cHJlZml4L2Zvby9ub2Jhc2UuZGF0Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1ic2xhc2gvXC8uL1wtcHJlZml4L2Zvby9iYXNlLmRhdCcKdGVz dCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYnNsYXNo L1wvLi9cLXByZWZpeC9mb28vc3ViL25vYmFzZS5zaCcKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYnNsYXNoL1wvLi9cLXByZWZpeC9mb28vbm9i YXNlLnNoJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1ic2xhc2gvXC8uL1wtcHJlZml4L2Zvby9iYXNlLnNoJwp0ZXN0ICAgLWYgJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1ic2xhc2gvXC8uL1wtcHJlZml4L2Zv by9zdWIvbm9iYXNlJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1ic2xhc2gvXC8uL1wtcHJlZml4L2Zvby9ub2Jhc2UnCnRlc3QgICAtZiAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWJzbGFzaC9cLy4vXC1wcmVm aXgvZm9vL2Jhc2UnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LWJzbGFzaC9cLy4vXC1wcmVmaXgvZm9vL3N1Yi9saWJub2Jhc2UuYScKdGVzdCAh IC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYnNsYXNoL1wv Li9cLXByZWZpeC9mb28vbGlibm9iYXNlLmEnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWJzbGFzaC9cLy4vXC1wcmVmaXgvZm9vL2xpYmJhc2Uu YScKI1tzdGRlcnJdKyBkZXNjcmlwdGlvbj0nYnNsYXNoIGluIGRlc3RkaXInCiNbc3RkZXJyXSsg ZXhwZWN0ZWRfdG9fZmFpbCBkZXN0IGJzbGFzaAojW3N0ZGVycl0rIGNhc2UgJDEgaW4KI1tzdGRl cnJdKyBpc19pbl9saXN0IGJzbGFzaCBzcXVvdGUgZHF1b3RlIGJxdW90ZSBzaGFycCBkb2xsYXIg bGluZWZlZWQgYV9sZl9iCiNbc3RkZXJyXSsgaXRlbT1ic2xhc2gKI1tzdGRlcnJdKyBzaGlmdAoj W3N0ZGVycl0rIGNhc2UgIiAkKiAiIGluCm9rIDE0IC0gYnNsYXNoIGluIGRlc3RkaXIKUEFTUzog dC9pbnN0c3BjLnRhcCAxNCAtIGJzbGFzaCBpbiBkZXN0ZGlyCiNbc3RkZXJyXSsgcmV0dXJuIDEK I1tzdGRlcnJdKyBkaXJlY3RpdmU9CiNbc3RkZXJyXSsgcmVhc29uPQojW3N0ZGVycl0rIHJlc3Vs dF8gb2sgLUQgJycgLXIgJycgLS0gJ2JzbGFzaCBpbiBkZXN0ZGlyJwojW3N0ZGVycl0rIHNldCAr eAojW3N0ZGVycl0rIGNkIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIKI1tz dGRlcnJdKyBub3QgYW1fa2VlcGluZ190ZXN0ZGlycwojW3N0ZGVycl0rIGFtX2tlZXBpbmdfdGVz dGRpcnMKI1tzdGRlcnJdKyBjYXNlICRrZWVwX3Rlc3RkaXJzIGluCiNbc3RkZXJyXSsgcmV0dXJu IDEKI1tzdGRlcnJdKyB0ZXN0IG9rID0gb2sKI1tzdGRlcnJdKyBybV9yZl8gYnVpbGQtYnNsYXNo ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYnNsYXNoL1wnCiNb c3RkZXJyXSsgdGVzdCAyIC1ndCAwCiNbc3RkZXJyXSsgY2htb2QgLVIgdStyd3ggYnVpbGQtYnNs YXNoICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYnNsYXNoL1wn CiNbc3RkZXJyXSsgcm0gLXJmIGJ1aWxkLWJzbGFzaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LWJzbGFzaC9cJwojW3N0ZGVycl0rIF9hbV9ybXJmX3N0YXR1cz0w CiNbc3RkZXJyXSsgZm9yIF9hbV9ybXJmX3YgaW4gJyIkQCInCiNbc3RkZXJyXSsgdGVzdCAtZSBi dWlsZC1ic2xhc2gKI1tzdGRlcnJdKyBmb3IgX2FtX3JtcmZfdiBpbiAnIiRAIicKI1tzdGRlcnJd KyB0ZXN0IC1lICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYnNs YXNoL1wnCiNbc3RkZXJyXSsgcmV0dXJuIDAKI1tzdGRlcnJdKyA6IEZvciBzaGVsbHMgd2l0aCBi dXN0ZWQgJ3NldCAtZS4nCiNbc3RkZXJyXSsgZm9yIHRlc3RfbmFtZSBpbiAnJHRlc3RfbmFtZXNf bGlzdCcKI1tzdGRlcnJdKyBldmFsICd0ZXN0X3N0cmluZz0ke2luc3RzcGNfX2FtcGVyc2FuZH0n CiNbc3RkZXJyXSsrIHRlc3Rfc3RyaW5nPScmJwojW3N0ZGVycl0rIHRlc3QgJ3gmJyA9IHgKI1tz dGRlcnJdKyBta2RpciAnLi8mJwojW3N0ZGVycl0rIGNhc2UgJHRlc3Rfc3RyaW5nIGluCiNbc3Rk ZXJyXSsgZm9yIHdoZXJlIGluIGJ1aWxkIGRlc3QKI1tzdGRlcnJdKyBjYXNlICR3aGVyZSBpbgoj W3N0ZGVycl0rIGJ1aWxkPScuLyYnCiNbc3RkZXJyXSsgZGVzdD0vdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYW1wZXJzYW5kCiNbc3RkZXJyXSsgY2QgJy4vJicKI1tz dGRlcnJdKyByPW9rCiNbc3RkZXJyXSsgLi4vY29uZmlndXJlIC0tcHJlZml4ICcvJi1wcmVmaXgn CmNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwuLi4gL3Vzci9iaW4vaW5zdGFs bCAtYwpjaGVja2luZyB3aGV0aGVyIHNsZWVwIHN1cHBvcnRzIGZyYWN0aW9uYWwgc2Vjb25kcy4u LiB5ZXMKY2hlY2tpbmcgZmlsZXN5c3RlbSB0aW1lc3RhbXAgcmVzb2x1dGlvbi4uLiAwLjAxCmNo ZWNraW5nIHdoZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZS4uLiBubwojW3N0ZGVycl1j b25maWd1cmU6IGVycm9yOiB1bnNhZmUgYWJzb2x1dGUgd29ya2luZyBkaXJlY3RvcnkgbmFtZQoj W3N0ZGVycl0rIHI9J25vdCBvaycKI1tzdGRlcnJdKyBkZXNjcmlwdGlvbj0nYW1wZXJzYW5kIGlu IGJ1aWxkZGlyJwojW3N0ZGVycl0rIGV4cGVjdGVkX3RvX2ZhaWwgYnVpbGQgYW1wZXJzYW5kCiNb c3RkZXJyXSsgY2FzZSAkMSBpbgojW3N0ZGVycl0rIGlzX2luX2xpc3QgYW1wZXJzYW5kIHNxdW90 ZSBkcXVvdGUgYnF1b3RlIHNoYXJwIGRvbGxhciBic2xhc2ggYW1wZXJzYW5kIGxpbmVmZWVkIHF1 YWRyaWdyYXBoMCBhX2xmX2IKI1tzdGRlcnJdKyBpdGVtPWFtcGVyc2FuZAojW3N0ZGVycl0rIHNo aWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyByZXR1cm4gMAojW3N0ZGVy cl0rIGRpcmVjdGl2ZT1UT0RPCiNbc3RkZXJyXSsgcmVhc29uPSdsb25nLXN0YW5kaW5nIGxpbWl0 YXRpb24nCiNbc3RkZXJyXSsgcmVzdWx0XyAnbm90IG9rJyAtRCBUT0RPIC1yICdsb25nLXN0YW5k aW5nIGxpbWl0YXRpb24nIC0tICdhbXBlcnNhbmQgaW4gYnVpbGRkaXInCiNbc3RkZXJyXSsgc2V0 ICt4CiNbc3RkZXJyXSsgY2QgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpcgoj W3N0ZGVycl0rIG5vdCBhbV9rZWVwaW5nX3Rlc3RkaXJzCm5vdCBvayAxNSAtIGFtcGVyc2FuZCBp biBidWlsZGRpciAjIFRPRE8gbG9uZy1zdGFuZGluZyBsaW1pdGF0aW9uClhGQUlMOiB0L2luc3Rz cGMudGFwIDE1IC0gYW1wZXJzYW5kIGluIGJ1aWxkZGlyICMgVE9ETyBsb25nLXN0YW5kaW5nIGxp bWl0YXRpb24KI1tzdGRlcnJdKyBhbV9rZWVwaW5nX3Rlc3RkaXJzCiNbc3RkZXJyXSsgY2FzZSAk a2VlcF90ZXN0ZGlycyBpbgojW3N0ZGVycl0rIHJldHVybiAxCiNbc3RkZXJyXSsgdGVzdCAnbm90 IG9rJyA9IG9rCiNbc3RkZXJyXSsgOiBGb3Igc2hlbGxzIHdpdGggYnVzdGVkICdzZXQgLWUuJwoj W3N0ZGVycl0rIGZvciB3aGVyZSBpbiBidWlsZCBkZXN0CiNbc3RkZXJyXSsgY2FzZSAkd2hlcmUg aW4KI1tzdGRlcnJdKyBidWlsZD1idWlsZC1hbXBlcnNhbmQKI1tzdGRlcnJdKyBkZXN0PScvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYW1wZXJzYW5kLyYnCiNbc3Rk ZXJyXSsgbWtkaXIgYnVpbGQtYW1wZXJzYW5kCiNbc3RkZXJyXSsgY2QgYnVpbGQtYW1wZXJzYW5k CiNbc3RkZXJyXSsgcj1vawojW3N0ZGVycl0rIC4uL2NvbmZpZ3VyZSAtLXByZWZpeCAnLyYtcHJl Zml4JwpjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsLi4uIC91c3IvYmluL2lu c3RhbGwgLWMKY2hlY2tpbmcgd2hldGhlciBzbGVlcCBzdXBwb3J0cyBmcmFjdGlvbmFsIHNlY29u ZHMuLi4geWVzCmNoZWNraW5nIGZpbGVzeXN0ZW0gdGltZXN0YW1wIHJlc29sdXRpb24uLi4gMC4w MQpjaGVja2luZyB3aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmUuLi4geWVzCmNoZWNr aW5nIGZvciBhIHJhY2UtZnJlZSBta2RpciAtcC4uLiBta2RpciAtcApjaGVja2luZyBmb3IgZ2F3 ay4uLiBubwpjaGVja2luZyBmb3IgbWF3ay4uLiBubwpjaGVja2luZyBmb3IgbmF3ay4uLiBubwpj aGVja2luZyBmb3IgYXdrLi4uIGF3awpjaGVja2luZyB3aGV0aGVyIG1ha2Ugc2V0cyAkKE1BS0Up Li4uIHllcwpjaGVja2luZyB3aGV0aGVyIG1ha2Ugc3VwcG9ydHMgbmVzdGVkIHZhcmlhYmxlcy4u LiB5ZXMKY2hlY2tpbmcgeGFyZ3MgLW4gd29ya3MuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgVUlE ICc1MDEnIGlzIHN1cHBvcnRlZCBieSB1c3RhciBmb3JtYXQuLi4geWVzCmNoZWNraW5nIHdoZXRo ZXIgR0lEICcyMCcgaXMgc3VwcG9ydGVkIGJ5IHVzdGFyIGZvcm1hdC4uLiB5ZXMKY2hlY2tpbmcg aG93IHRvIGNyZWF0ZSBhIHVzdGFyIHRhciBhcmNoaXZlLi4uIHBsYWludGFyCmNoZWNraW5nIGZv ciBnY2MuLi4gZ2NjCmNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgd29ya3MuLi4geWVz CmNoZWNraW5nIGZvciBDIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZS4uLiBhLm91 dApjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzLi4uIApjaGVja2luZyB3aGV0aGVy IHdlIGFyZSBjcm9zcyBjb21waWxpbmcuLi4gbm8KY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmpl Y3QgZmlsZXMuLi4gbwpjaGVja2luZyB3aGV0aGVyIHRoZSBjb21waWxlciBzdXBwb3J0cyBHTlUg Qy4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBnY2MgYWNjZXB0cyAtZy4uLiB5ZXMKY2hlY2tpbmcg Zm9yIGdjYyBvcHRpb24gdG8gZW5hYmxlIEMyMyBmZWF0dXJlcy4uLiAtc3RkPWdudTIzCmNoZWNr aW5nIHdoZXRoZXIgZ2NjIC1zdGQ9Z251MjMgdW5kZXJzdGFuZHMgLWMgYW5kIC1vIHRvZ2V0aGVy Li4uIHllcwpjaGVja2luZyB3aGV0aGVyIG1ha2Ugc3VwcG9ydHMgdGhlIGluY2x1ZGUgZGlyZWN0 aXZlLi4uIHllcyAoR05VIHN0eWxlKQpjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mIGdjYyAt c3RkPWdudTIzLi4uIGdjYzMKY2hlY2tpbmcgZm9yIGFyLi4uIGFyCmNoZWNraW5nIHRoZSBhcmNo aXZlciAoYXIpIGludGVyZmFjZS4uLiBhcgpjaGVja2luZyBmb3IgcmFubGliLi4uIHJhbmxpYgpj aGVja2luZyB0aGF0IGdlbmVyYXRlZCBmaWxlcyBhcmUgbmV3ZXIgdGhhbiBjb25maWd1cmUuLi4g ZG9uZQpjb25maWd1cmU6IGNyZWF0aW5nIC4vY29uZmlnLnN0YXR1cwpjb25maWcuc3RhdHVzOiBj cmVhdGluZyBNYWtlZmlsZQpjb25maWcuc3RhdHVzOiBleGVjdXRpbmcgZGVwZmlsZXMgY29tbWFu ZHMKI1tzdGRlcnJdKyBtYWtlIGFsbApnY2MgLXN0ZD1nbnUyMyAtRFBBQ0tBR0VfTkFNRT1cImlu c3RzcGNcIiAtRFBBQ0tBR0VfVEFSTkFNRT1cImluc3RzcGNcIiAtRFBBQ0tBR0VfVkVSU0lPTj1c IjEuMFwiIC1EUEFDS0FHRV9TVFJJTkc9XCJpbnN0c3BjXCAxLjBcIiAtRFBBQ0tBR0VfQlVHUkVQ T1JUPVwiXCIgLURQQUNLQUdFX1VSTD1cIlwiIC1EUEFDS0FHRT1cImluc3RzcGNcIiAtRFZFUlNJ T049XCIxLjBcIiAtSS4gLUkuLiAgICAgLWcgLU8yIC1NVCBzb3VyY2UubyAtTUQgLU1QIC1NRiAu ZGVwcy9zb3VyY2UuVHBvIC1jIC1vIHNvdXJjZS5vIC4uL3NvdXJjZS5jCm12IC1mIC5kZXBzL3Nv dXJjZS5UcG8gLmRlcHMvc291cmNlLlBvCmdjYyAtc3RkPWdudTIzICAtZyAtTzIgICAtbyBzdWIv YmFzZSBzb3VyY2UubyAgCmdjYyAtc3RkPWdudTIzICAtZyAtTzIgICAtbyBzdWIvbm9iYXNlIHNv dXJjZS5vICAKcm0gLWYgc3ViL2xpYmJhc2UuYQphciBjciBzdWIvbGliYmFzZS5hIHNvdXJjZS5v IApyYW5saWIgc3ViL2xpYmJhc2UuYQpybSAtZiBzdWIvbGlibm9iYXNlLmEKYXIgY3Igc3ViL2xp Ym5vYmFzZS5hIHNvdXJjZS5vIApyYW5saWIgc3ViL2xpYm5vYmFzZS5hCiNbc3RkZXJyXSsgREVT VERJUj0nL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWFtcGVyc2Fu ZC8mJwojW3N0ZGVycl0rIGZpbGU9Jy4vJicKI1tzdGRlcnJdKyBtYWtlIHRlc3QtaW5zdAptYWtl WzFdOiBFbnRlcmluZyBkaXJlY3RvcnkgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvYnVpbGQtYW1wZXJzYW5kJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1hbXBlcnNhbmQvJi8mLXByZWZpeC9mb28nCiAvdXNyL2Jpbi9p bnN0YWxsIC1jIC4uL3N1Yi9iYXNlLnNoICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtYW1wZXJzYW5kLyYvJi1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1hbXBlcnNhbmQvJi8mLXByZWZpeC9m b28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAgc3ViL2xpYmJhc2UuYSAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWFtcGVyc2FuZC8mLyYtcHJlZml4L2Zv bycKICggY2QgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1hbXBl cnNhbmQvJi8mLXByZWZpeC9mb28nICYmIHJhbmxpYiBsaWJiYXNlLmEgKQogbWtkaXIgLXAgJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1hbXBlcnNhbmQvJi8mLXBy ZWZpeC9mb28nCiAgL3Vzci9iaW4vaW5zdGFsbCAtYyBzdWIvYmFzZSAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWFtcGVyc2FuZC8mLyYtcHJlZml4L2ZvbycKIG1r ZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYW1wZXJz YW5kLyYvJi1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1hbXBlcnNhbmQvJi8mLXByZWZpeC9mb28vc3ViLycKIC91c3IvYmlu L2luc3RhbGwgLWMgLi4vc3ViL25vYmFzZS5zaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LWFtcGVyc2FuZC8mLyYtcHJlZml4L2Zvby9zdWIvJwogbWtkaXIgLXAg Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1hbXBlcnNhbmQvJi8m LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LWFtcGVyc2FuZC8mLyYtcHJlZml4L2Zvby9zdWInCiAvdXNyL2Jpbi9pbnN0YWxs IC1jIC1tIDY0NCAgc3ViL2xpYm5vYmFzZS5hICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtYW1wZXJzYW5kLyYvJi1wcmVmaXgvZm9vL3N1YicKICggY2QgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1hbXBlcnNhbmQvJi8mLXByZWZp eC9mb28nICYmIHJhbmxpYiBzdWIvbGlibm9iYXNlLmEgKQogbWtkaXIgLXAgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1hbXBlcnNhbmQvJi8mLXByZWZpeC9mb28n CiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWFt cGVyc2FuZC8mLyYtcHJlZml4L2Zvby9zdWIvJwogIC91c3IvYmluL2luc3RhbGwgLWMgc3ViL25v YmFzZSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWFtcGVyc2Fu ZC8mLyYtcHJlZml4L2Zvby9zdWIvJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1hbXBlcnNhbmQvJi8mLXByZWZpeC9mb28nCiAvdXNyL2Jpbi9p bnN0YWxsIC1jIC1tIDY0NCAuLi9zdWIvYmFzZS5kYXQgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1hbXBlcnNhbmQvJi8mLXByZWZpeC9mb28nCiBta2RpciAtcCAn L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWFtcGVyc2FuZC8mLyYt cHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0IC4uL3N1Yi9iYXNlLmggJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1hbXBlcnNhbmQvJi8mLXBy ZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LWFtcGVyc2FuZC8mLyYtcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYW1wZXJzYW5kLyYvJi1wcmVmaXgvZm9vL3N1 YicKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICAuLi9zdWIvbm9iYXNlLmRhdCAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWFtcGVyc2FuZC8mLyYtcHJlZml4 L2Zvby9zdWInCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LWFtcGVyc2FuZC8mLyYtcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYW1wZXJzYW5kLyYvJi1wcmVmaXgvZm9vL3N1 YicKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICAuLi9zdWIvbm9iYXNlLmggJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1hbXBlcnNhbmQvJi8mLXByZWZpeC9m b28vc3ViJwptYWtlWzFdOiBMZWF2aW5nIGRpcmVjdG9yeSAnL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9idWlsZC1hbXBlcnNhbmQnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWFtcGVyc2FuZC8mLy4vJi1wcmVmaXgvZm9v L3N1Yi9ub2Jhc2UuaCcKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtYW1wZXJzYW5kLyYvLi8mLXByZWZpeC9mb28vbm9iYXNlLmgnCnRlc3QgICAt ZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWFtcGVyc2FuZC8m Ly4vJi1wcmVmaXgvZm9vL2Jhc2UuaCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtYW1wZXJzYW5kLyYvLi8mLXByZWZpeC9mb28vc3ViL25vYmFz ZS5kYXQnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LWFtcGVyc2FuZC8mLy4vJi1wcmVmaXgvZm9vL25vYmFzZS5kYXQnCnRlc3QgICAtZiAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWFtcGVyc2FuZC8mLy4vJi1w cmVmaXgvZm9vL2Jhc2UuZGF0Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1hbXBlcnNhbmQvJi8uLyYtcHJlZml4L2Zvby9zdWIvbm9iYXNlLnNo Jwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1h bXBlcnNhbmQvJi8uLyYtcHJlZml4L2Zvby9ub2Jhc2Uuc2gnCnRlc3QgICAtZiAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWFtcGVyc2FuZC8mLy4vJi1wcmVmaXgv Zm9vL2Jhc2Uuc2gnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LWFtcGVyc2FuZC8mLy4vJi1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2UnCnRlc3QgISAt ZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWFtcGVyc2FuZC8m Ly4vJi1wcmVmaXgvZm9vL25vYmFzZScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtYW1wZXJzYW5kLyYvLi8mLXByZWZpeC9mb28vYmFzZScKdGVz dCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYW1wZXJz YW5kLyYvLi8mLXByZWZpeC9mb28vc3ViL2xpYm5vYmFzZS5hJwp0ZXN0ICEgLWYgJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1hbXBlcnNhbmQvJi8uLyYtcHJlZml4 L2Zvby9saWJub2Jhc2UuYScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtYW1wZXJzYW5kLyYvLi8mLXByZWZpeC9mb28vbGliYmFzZS5hJwojW3N0 ZGVycl0rIGRlc2NyaXB0aW9uPSdhbXBlcnNhbmQgaW4gZGVzdGRpcicKI1tzdGRlcnJdKyBleHBl Y3RlZF90b19mYWlsIGRlc3QgYW1wZXJzYW5kCiNbc3RkZXJyXSsgY2FzZSAkMSBpbgojW3N0ZGVy cl0rIGlzX2luX2xpc3QgYW1wZXJzYW5kIHNxdW90ZSBkcXVvdGUgYnF1b3RlIHNoYXJwIGRvbGxh ciBsaW5lZmVlZCBhX2xmX2IKI1tzdGRlcnJdKyBpdGVtPWFtcGVyc2FuZAojW3N0ZGVycl0rIHNo aWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyByZXR1cm4gMQojW3N0ZGVy cl0rIGRpcmVjdGl2ZT0KI1tzdGRlcnJdKyByZWFzb249CiNbc3RkZXJyXSsgcmVzdWx0XyBvayAt RCAnJyAtciAnJyAtLSAnYW1wZXJzYW5kIGluIGRlc3RkaXInCiNbc3RkZXJyXSsgc2V0ICt4Cm9r IDE2IC0gYW1wZXJzYW5kIGluIGRlc3RkaXIKUEFTUzogdC9pbnN0c3BjLnRhcCAxNiAtIGFtcGVy c2FuZCBpbiBkZXN0ZGlyCiNbc3RkZXJyXSsgY2QgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpcgojW3N0ZGVycl0rIG5vdCBhbV9rZWVwaW5nX3Rlc3RkaXJzCiNbc3RkZXJyXSsg YW1fa2VlcGluZ190ZXN0ZGlycwojW3N0ZGVycl0rIGNhc2UgJGtlZXBfdGVzdGRpcnMgaW4KI1tz dGRlcnJdKyByZXR1cm4gMQojW3N0ZGVycl0rIHRlc3Qgb2sgPSBvawojW3N0ZGVycl0rIHJtX3Jm XyBidWlsZC1hbXBlcnNhbmQgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1hbXBlcnNhbmQvJicKI1tzdGRlcnJdKyB0ZXN0IDIgLWd0IDAKI1tzdGRlcnJdKyBjaG1v ZCAtUiB1K3J3eCBidWlsZC1hbXBlcnNhbmQgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1hbXBlcnNhbmQvJicKI1tzdGRlcnJdKyBybSAtcmYgYnVpbGQtYW1wZXJz YW5kICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYW1wZXJzYW5k LyYnCiNbc3RkZXJyXSsgX2FtX3JtcmZfc3RhdHVzPTAKI1tzdGRlcnJdKyBmb3IgX2FtX3JtcmZf diBpbiAnIiRAIicKI1tzdGRlcnJdKyB0ZXN0IC1lIGJ1aWxkLWFtcGVyc2FuZAojW3N0ZGVycl0r IGZvciBfYW1fcm1yZl92IGluICciJEAiJwojW3N0ZGVycl0rIHRlc3QgLWUgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1hbXBlcnNhbmQvJicKI1tzdGRlcnJdKyBy ZXR1cm4gMAojW3N0ZGVycl0rIDogRm9yIHNoZWxscyB3aXRoIGJ1c3RlZCAnc2V0IC1lLicKI1tz dGRlcnJdKyBmb3IgdGVzdF9uYW1lIGluICckdGVzdF9uYW1lc19saXN0JwojW3N0ZGVycl0rIGV2 YWwgJ3Rlc3Rfc3RyaW5nPSR7aW5zdHNwY19fcGVyY2VudH0nCiNbc3RkZXJyXSsrIHRlc3Rfc3Ry aW5nPSUKI1tzdGRlcnJdKyB0ZXN0IHglID0geAojW3N0ZGVycl0rIG1rZGlyIC4vJQojW3N0ZGVy cl0rIGNhc2UgJHRlc3Rfc3RyaW5nIGluCiNbc3RkZXJyXSsgZm9yIHdoZXJlIGluIGJ1aWxkIGRl c3QKI1tzdGRlcnJdKyBjYXNlICR3aGVyZSBpbgojW3N0ZGVycl0rIGJ1aWxkPS4vJQojW3N0ZGVy cl0rIGRlc3Q9L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBlcmNl bnQKI1tzdGRlcnJdKyBjZCAuLyUKI1tzdGRlcnJdKyByPW9rCiNbc3RkZXJyXSsgLi4vY29uZmln dXJlIC0tcHJlZml4IC8lLXByZWZpeApjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0 YWxsLi4uIC91c3IvYmluL2luc3RhbGwgLWMKY2hlY2tpbmcgd2hldGhlciBzbGVlcCBzdXBwb3J0 cyBmcmFjdGlvbmFsIHNlY29uZHMuLi4geWVzCmNoZWNraW5nIGZpbGVzeXN0ZW0gdGltZXN0YW1w IHJlc29sdXRpb24uLi4gMC4wMQpjaGVja2luZyB3aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlz IHNhbmUuLi4geWVzCmNoZWNraW5nIGZvciBhIHJhY2UtZnJlZSBta2RpciAtcC4uLiBta2RpciAt cApjaGVja2luZyBmb3IgZ2F3ay4uLiBubwpjaGVja2luZyBmb3IgbWF3ay4uLiBubwpjaGVja2lu ZyBmb3IgbmF3ay4uLiBubwpjaGVja2luZyBmb3IgYXdrLi4uIGF3awpjaGVja2luZyB3aGV0aGVy IG1ha2Ugc2V0cyAkKE1BS0UpLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIG1ha2Ugc3VwcG9ydHMg bmVzdGVkIHZhcmlhYmxlcy4uLiB5ZXMKY2hlY2tpbmcgeGFyZ3MgLW4gd29ya3MuLi4geWVzCmNo ZWNraW5nIHdoZXRoZXIgVUlEICc1MDEnIGlzIHN1cHBvcnRlZCBieSB1c3RhciBmb3JtYXQuLi4g eWVzCmNoZWNraW5nIHdoZXRoZXIgR0lEICcyMCcgaXMgc3VwcG9ydGVkIGJ5IHVzdGFyIGZvcm1h dC4uLiB5ZXMKY2hlY2tpbmcgaG93IHRvIGNyZWF0ZSBhIHVzdGFyIHRhciBhcmNoaXZlLi4uIHBs YWludGFyCmNoZWNraW5nIGZvciBnY2MuLi4gZ2NjCmNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29t cGlsZXIgd29ya3MuLi4geWVzCmNoZWNraW5nIGZvciBDIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0 IGZpbGUgbmFtZS4uLiBhLm91dApjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzLi4u IApjaGVja2luZyB3aGV0aGVyIHdlIGFyZSBjcm9zcyBjb21waWxpbmcuLi4gbm8KY2hlY2tpbmcg Zm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMuLi4gbwpjaGVja2luZyB3aGV0aGVyIHRoZSBjb21w aWxlciBzdXBwb3J0cyBHTlUgQy4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBnY2MgYWNjZXB0cyAt Zy4uLiB5ZXMKY2hlY2tpbmcgZm9yIGdjYyBvcHRpb24gdG8gZW5hYmxlIEMyMyBmZWF0dXJlcy4u LiAtc3RkPWdudTIzCmNoZWNraW5nIHdoZXRoZXIgZ2NjIC1zdGQ9Z251MjMgdW5kZXJzdGFuZHMg LWMgYW5kIC1vIHRvZ2V0aGVyLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIG1ha2Ugc3VwcG9ydHMg dGhlIGluY2x1ZGUgZGlyZWN0aXZlLi4uIHllcyAoR05VIHN0eWxlKQpjaGVja2luZyBkZXBlbmRl bmN5IHN0eWxlIG9mIGdjYyAtc3RkPWdudTIzLi4uIGdjYzMKY2hlY2tpbmcgZm9yIGFyLi4uIGFy CmNoZWNraW5nIHRoZSBhcmNoaXZlciAoYXIpIGludGVyZmFjZS4uLiBhcgpjaGVja2luZyBmb3Ig cmFubGliLi4uIHJhbmxpYgpjaGVja2luZyB0aGF0IGdlbmVyYXRlZCBmaWxlcyBhcmUgbmV3ZXIg dGhhbiBjb25maWd1cmUuLi4gZG9uZQpjb25maWd1cmU6IGNyZWF0aW5nIC4vY29uZmlnLnN0YXR1 cwpjb25maWcuc3RhdHVzOiBjcmVhdGluZyBNYWtlZmlsZQpjb25maWcuc3RhdHVzOiBleGVjdXRp bmcgZGVwZmlsZXMgY29tbWFuZHMKI1tzdGRlcnJdKyBtYWtlIGFsbApnY2MgLXN0ZD1nbnUyMyAt RFBBQ0tBR0VfTkFNRT1cImluc3RzcGNcIiAtRFBBQ0tBR0VfVEFSTkFNRT1cImluc3RzcGNcIiAt RFBBQ0tBR0VfVkVSU0lPTj1cIjEuMFwiIC1EUEFDS0FHRV9TVFJJTkc9XCJpbnN0c3BjXCAxLjBc IiAtRFBBQ0tBR0VfQlVHUkVQT1JUPVwiXCIgLURQQUNLQUdFX1VSTD1cIlwiIC1EUEFDS0FHRT1c Imluc3RzcGNcIiAtRFZFUlNJT049XCIxLjBcIiAtSS4gLUkuLiAgICAgLWcgLU8yIC1NVCBzb3Vy Y2UubyAtTUQgLU1QIC1NRiAuZGVwcy9zb3VyY2UuVHBvIC1jIC1vIHNvdXJjZS5vIC4uL3NvdXJj ZS5jCm12IC1mIC5kZXBzL3NvdXJjZS5UcG8gLmRlcHMvc291cmNlLlBvCmdjYyAtc3RkPWdudTIz ICAtZyAtTzIgICAtbyBzdWIvYmFzZSBzb3VyY2UubyAgCmdjYyAtc3RkPWdudTIzICAtZyAtTzIg ICAtbyBzdWIvbm9iYXNlIHNvdXJjZS5vICAKcm0gLWYgc3ViL2xpYmJhc2UuYQphciBjciBzdWIv bGliYmFzZS5hIHNvdXJjZS5vIApyYW5saWIgc3ViL2xpYmJhc2UuYQpybSAtZiBzdWIvbGlibm9i YXNlLmEKYXIgY3Igc3ViL2xpYm5vYmFzZS5hIHNvdXJjZS5vIApyYW5saWIgc3ViL2xpYm5vYmFz ZS5hCiNbc3RkZXJyXSsgREVTVERJUj0vdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyL2Rlc3QtcGVyY2VudAojW3N0ZGVycl0rIGZpbGU9Li8lCiNbc3RkZXJyXSsgbWFrZSB0ZXN0 LWluc3QKbWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyLyUnCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LXBlcmNlbnQvJS1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAt YyAuLi9zdWIvYmFzZS5zaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LXBlcmNlbnQvJS1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wZXJjZW50LyUtcHJlZml4L2ZvbycKIC91c3IvYmluL2lu c3RhbGwgLWMgLW0gNjQ0ICBzdWIvbGliYmFzZS5hICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3QtcGVyY2VudC8lLXByZWZpeC9mb28nCiAoIGNkICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGVyY2VudC8lLXByZWZpeC9mb28nICYm IHJhbmxpYiBsaWJiYXNlLmEgKQogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1wZXJjZW50LyUtcHJlZml4L2ZvbycKICAvdXNyL2Jpbi9pbnN0YWxs IC1jIHN1Yi9iYXNlICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt cGVyY2VudC8lLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXBlcmNlbnQvJS1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wZXJjZW50LyUtcHJlZml4L2Zv by9zdWIvJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAuLi9zdWIvbm9iYXNlLnNoICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGVyY2VudC8lLXByZWZpeC9mb28vc3Vi LycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt cGVyY2VudC8lLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXBlcmNlbnQvJS1wcmVmaXgvZm9vL3N1YicKIC91c3IvYmluL2lu c3RhbGwgLWMgLW0gNjQ0ICBzdWIvbGlibm9iYXNlLmEgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1wZXJjZW50LyUtcHJlZml4L2Zvby9zdWInCiAoIGNkICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGVyY2VudC8lLXByZWZpeC9m b28nICYmIHJhbmxpYiBzdWIvbGlibm9iYXNlLmEgKQogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3Jj L2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wZXJjZW50LyUtcHJlZml4L2ZvbycKIG1rZGly IC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGVyY2VudC8l LXByZWZpeC9mb28vc3ViLycKICAvdXNyL2Jpbi9pbnN0YWxsIC1jIHN1Yi9ub2Jhc2UgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wZXJjZW50LyUtcHJlZml4L2Zv by9zdWIvJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1wZXJjZW50LyUtcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0IC4u L3N1Yi9iYXNlLmRhdCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LXBlcmNlbnQvJS1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1wZXJjZW50LyUtcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3Rh bGwgLWMgLW0gNjQ0IC4uL3N1Yi9iYXNlLmggJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1wZXJjZW50LyUtcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGVyY2VudC8lLXByZWZpeC9mb28nCiBt a2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBlcmNl bnQvJS1wcmVmaXgvZm9vL3N1YicKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICAuLi9zdWIv bm9iYXNlLmRhdCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBl cmNlbnQvJS1wcmVmaXgvZm9vL3N1YicKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtcGVyY2VudC8lLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBlcmNlbnQvJS1wcmVmaXgv Zm9vL3N1YicKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICAuLi9zdWIvbm9iYXNlLmggJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wZXJjZW50LyUtcHJlZml4 L2Zvby9zdWInCm1ha2VbMV06IExlYXZpbmcgZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyLyUnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXBlcmNlbnQvLi8lLXByZWZpeC9mb28vc3ViL25vYmFzZS5oJwp0 ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wZXJj ZW50Ly4vJS1wcmVmaXgvZm9vL25vYmFzZS5oJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wZXJjZW50Ly4vJS1wcmVmaXgvZm9vL2Jhc2UuaCcK dGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGVy Y2VudC8uLyUtcHJlZml4L2Zvby9zdWIvbm9iYXNlLmRhdCcKdGVzdCAhIC1mICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGVyY2VudC8uLyUtcHJlZml4L2Zvby9u b2Jhc2UuZGF0Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1wZXJjZW50Ly4vJS1wcmVmaXgvZm9vL2Jhc2UuZGF0Jwp0ZXN0ICAgLWYgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wZXJjZW50Ly4vJS1wcmVmaXgv Zm9vL3N1Yi9ub2Jhc2Uuc2gnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LXBlcmNlbnQvLi8lLXByZWZpeC9mb28vbm9iYXNlLnNoJwp0ZXN0ICAg LWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wZXJjZW50Ly4v JS1wcmVmaXgvZm9vL2Jhc2Uuc2gnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXBlcmNlbnQvLi8lLXByZWZpeC9mb28vc3ViL25vYmFzZScKdGVz dCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGVyY2Vu dC8uLyUtcHJlZml4L2Zvby9ub2Jhc2UnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9kZXN0LXBlcmNlbnQvLi8lLXByZWZpeC9mb28vYmFzZScKdGVzdCAg IC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGVyY2VudC8u LyUtcHJlZml4L2Zvby9zdWIvbGlibm9iYXNlLmEnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBlcmNlbnQvLi8lLXByZWZpeC9mb28vbGlibm9i YXNlLmEnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LXBlcmNlbnQvLi8lLXByZWZpeC9mb28vbGliYmFzZS5hJwojW3N0ZGVycl0rIGRlc2NyaXB0 aW9uPSdwZXJjZW50IGluIGJ1aWxkZGlyJwojW3N0ZGVycl0rIGV4cGVjdGVkX3RvX2ZhaWwgYnVp bGQgcGVyY2VudAojW3N0ZGVycl0rIGNhc2UgJDEgaW4KI1tzdGRlcnJdKyBpc19pbl9saXN0IHBl cmNlbnQgc3F1b3RlIGRxdW90ZSBicXVvdGUgc2hhcnAgZG9sbGFyIGJzbGFzaCBhbXBlcnNhbmQg bGluZWZlZWQgcXVhZHJpZ3JhcGgwIGFfbGZfYgojW3N0ZGVycl0rIGl0ZW09cGVyY2VudAojW3N0 ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyByZXR1cm4g MQojW3N0ZGVycl0rIGRpcmVjdGl2ZT0Kb2sgMTcgLSBwZXJjZW50IGluIGJ1aWxkZGlyClBBU1M6 IHQvaW5zdHNwYy50YXAgMTcgLSBwZXJjZW50IGluIGJ1aWxkZGlyCiNbc3RkZXJyXSsgcmVhc29u PQojW3N0ZGVycl0rIHJlc3VsdF8gb2sgLUQgJycgLXIgJycgLS0gJ3BlcmNlbnQgaW4gYnVpbGRk aXInCiNbc3RkZXJyXSsgc2V0ICt4CiNbc3RkZXJyXSsgY2QgL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpcgojW3N0ZGVycl0rIG5vdCBhbV9rZWVwaW5nX3Rlc3RkaXJzCiNbc3Rk ZXJyXSsgYW1fa2VlcGluZ190ZXN0ZGlycwojW3N0ZGVycl0rIGNhc2UgJGtlZXBfdGVzdGRpcnMg aW4KI1tzdGRlcnJdKyByZXR1cm4gMQojW3N0ZGVycl0rIHRlc3Qgb2sgPSBvawojW3N0ZGVycl0r IHJtX3JmXyAuLyUgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBl cmNlbnQKI1tzdGRlcnJdKyB0ZXN0IDIgLWd0IDAKI1tzdGRlcnJdKyBjaG1vZCAtUiB1K3J3eCAu LyUgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBlcmNlbnQKI1tz dGRlcnJdKyBybSAtcmYgLi8lIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1wZXJjZW50CiNbc3RkZXJyXSsgX2FtX3JtcmZfc3RhdHVzPTAKI1tzdGRlcnJdKyBmb3Ig X2FtX3JtcmZfdiBpbiAnIiRAIicKI1tzdGRlcnJdKyB0ZXN0IC1lIC4vJQojW3N0ZGVycl0rIGZv ciBfYW1fcm1yZl92IGluICciJEAiJwojW3N0ZGVycl0rIHRlc3QgLWUgL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBlcmNlbnQKI1tzdGRlcnJdKyByZXR1cm4gMAoj W3N0ZGVycl0rIDogRm9yIHNoZWxscyB3aXRoIGJ1c3RlZCAnc2V0IC1lLicKI1tzdGRlcnJdKyBm b3Igd2hlcmUgaW4gYnVpbGQgZGVzdAojW3N0ZGVycl0rIGNhc2UgJHdoZXJlIGluCiNbc3RkZXJy XSsgYnVpbGQ9YnVpbGQtcGVyY2VudAojW3N0ZGVycl0rIGRlc3Q9L3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBlcmNlbnQvJQojW3N0ZGVycl0rIG1rZGlyIGJ1aWxk LXBlcmNlbnQKI1tzdGRlcnJdKyBjZCBidWlsZC1wZXJjZW50CiNbc3RkZXJyXSsgcj1vawojW3N0 ZGVycl0rIC4uL2NvbmZpZ3VyZSAtLXByZWZpeCAvJS1wcmVmaXgKY2hlY2tpbmcgZm9yIGEgQlNE LWNvbXBhdGlibGUgaW5zdGFsbC4uLiAvdXNyL2Jpbi9pbnN0YWxsIC1jCmNoZWNraW5nIHdoZXRo ZXIgc2xlZXAgc3VwcG9ydHMgZnJhY3Rpb25hbCBzZWNvbmRzLi4uIHllcwpjaGVja2luZyBmaWxl c3lzdGVtIHRpbWVzdGFtcCByZXNvbHV0aW9uLi4uIDAuMDEKY2hlY2tpbmcgd2hldGhlciBidWls ZCBlbnZpcm9ubWVudCBpcyBzYW5lLi4uIHllcwpjaGVja2luZyBmb3IgYSByYWNlLWZyZWUgbWtk aXIgLXAuLi4gbWtkaXIgLXAKY2hlY2tpbmcgZm9yIGdhd2suLi4gbm8KY2hlY2tpbmcgZm9yIG1h d2suLi4gbm8KY2hlY2tpbmcgZm9yIG5hd2suLi4gbm8KY2hlY2tpbmcgZm9yIGF3ay4uLiBhd2sK Y2hlY2tpbmcgd2hldGhlciBtYWtlIHNldHMgJChNQUtFKS4uLiB5ZXMKY2hlY2tpbmcgd2hldGhl ciBtYWtlIHN1cHBvcnRzIG5lc3RlZCB2YXJpYWJsZXMuLi4geWVzCmNoZWNraW5nIHhhcmdzIC1u IHdvcmtzLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIFVJRCAnNTAxJyBpcyBzdXBwb3J0ZWQgYnkg dXN0YXIgZm9ybWF0Li4uIHllcwpjaGVja2luZyB3aGV0aGVyIEdJRCAnMjAnIGlzIHN1cHBvcnRl ZCBieSB1c3RhciBmb3JtYXQuLi4geWVzCmNoZWNraW5nIGhvdyB0byBjcmVhdGUgYSB1c3RhciB0 YXIgYXJjaGl2ZS4uLiBwbGFpbnRhcgpjaGVja2luZyBmb3IgZ2NjLi4uIGdjYwpjaGVja2luZyB3 aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdvcmtzLi4uIHllcwpjaGVja2luZyBmb3IgQyBjb21waWxl ciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUuLi4gYS5vdXQKY2hlY2tpbmcgZm9yIHN1ZmZpeCBv ZiBleGVjdXRhYmxlcy4uLiAKY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5n Li4uIG5vCmNoZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzLi4uIG8KY2hlY2tpbmcg d2hldGhlciB0aGUgY29tcGlsZXIgc3VwcG9ydHMgR05VIEMuLi4geWVzCmNoZWNraW5nIHdoZXRo ZXIgZ2NjIGFjY2VwdHMgLWcuLi4geWVzCmNoZWNraW5nIGZvciBnY2Mgb3B0aW9uIHRvIGVuYWJs ZSBDMjMgZmVhdHVyZXMuLi4gLXN0ZD1nbnUyMwpjaGVja2luZyB3aGV0aGVyIGdjYyAtc3RkPWdu dTIzIHVuZGVyc3RhbmRzIC1jIGFuZCAtbyB0b2dldGhlci4uLiB5ZXMKY2hlY2tpbmcgd2hldGhl ciBtYWtlIHN1cHBvcnRzIHRoZSBpbmNsdWRlIGRpcmVjdGl2ZS4uLiB5ZXMgKEdOVSBzdHlsZSkK Y2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiBnY2MgLXN0ZD1nbnUyMy4uLiBnY2MzCmNoZWNr aW5nIGZvciBhci4uLiBhcgpjaGVja2luZyB0aGUgYXJjaGl2ZXIgKGFyKSBpbnRlcmZhY2UuLi4g YXIKY2hlY2tpbmcgZm9yIHJhbmxpYi4uLiByYW5saWIKY2hlY2tpbmcgdGhhdCBnZW5lcmF0ZWQg ZmlsZXMgYXJlIG5ld2VyIHRoYW4gY29uZmlndXJlLi4uIGRvbmUKY29uZmlndXJlOiBjcmVhdGlu ZyAuL2NvbmZpZy5zdGF0dXMKY29uZmlnLnN0YXR1czogY3JlYXRpbmcgTWFrZWZpbGUKY29uZmln LnN0YXR1czogZXhlY3V0aW5nIGRlcGZpbGVzIGNvbW1hbmRzCiNbc3RkZXJyXSsgbWFrZSBhbGwK Z2NjIC1zdGQ9Z251MjMgLURQQUNLQUdFX05BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdFX1RBUk5B TUU9XCJpbnN0c3BjXCIgLURQQUNLQUdFX1ZFUlNJT049XCIxLjBcIiAtRFBBQ0tBR0VfU1RSSU5H PVwiaW5zdHNwY1wgMS4wXCIgLURQQUNLQUdFX0JVR1JFUE9SVD1cIlwiIC1EUEFDS0FHRV9VUkw9 XCJcIiAtRFBBQ0tBR0U9XCJpbnN0c3BjXCIgLURWRVJTSU9OPVwiMS4wXCIgLUkuIC1JLi4gICAg IC1nIC1PMiAtTVQgc291cmNlLm8gLU1EIC1NUCAtTUYgLmRlcHMvc291cmNlLlRwbyAtYyAtbyBz b3VyY2UubyAuLi9zb3VyY2UuYwptdiAtZiAuZGVwcy9zb3VyY2UuVHBvIC5kZXBzL3NvdXJjZS5Q bwpnY2MgLXN0ZD1nbnUyMyAgLWcgLU8yICAgLW8gc3ViL2Jhc2Ugc291cmNlLm8gIApnY2MgLXN0 ZD1nbnUyMyAgLWcgLU8yICAgLW8gc3ViL25vYmFzZSBzb3VyY2UubyAgCnJtIC1mIHN1Yi9saWJi YXNlLmEKYXIgY3Igc3ViL2xpYmJhc2UuYSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJiYXNlLmEK cm0gLWYgc3ViL2xpYm5vYmFzZS5hCmFyIGNyIHN1Yi9saWJub2Jhc2UuYSBzb3VyY2UubyAKcmFu bGliIHN1Yi9saWJub2Jhc2UuYQojW3N0ZGVycl0rIERFU1RESVI9L3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBlcmNlbnQvJQojW3N0ZGVycl0rIGZpbGU9Li8lCiNb c3RkZXJyXSsgbWFrZSB0ZXN0LWluc3QKbWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2J1aWxkLXBlcmNlbnQnCiBta2RpciAt cCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBlcmNlbnQvJS8l LXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC4uL3N1Yi9iYXNlLnNoICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGVyY2VudC8lLyUtcHJlZml4L2Zv bycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt cGVyY2VudC8lLyUtcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICBzdWIv bGliYmFzZS5hICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGVy Y2VudC8lLyUtcHJlZml4L2ZvbycKICggY2QgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1wZXJjZW50LyUvJS1wcmVmaXgvZm9vJyAmJiByYW5saWIgbGliYmFzZS5h ICkKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt cGVyY2VudC8lLyUtcHJlZml4L2ZvbycKICAvdXNyL2Jpbi9pbnN0YWxsIC1jIHN1Yi9iYXNlICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGVyY2VudC8lLyUtcHJl Zml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtcGVyY2VudC8lLyUtcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGVyY2VudC8lLyUtcHJlZml4L2Zvby9zdWIvJwog L3Vzci9iaW4vaW5zdGFsbCAtYyAuLi9zdWIvbm9iYXNlLnNoICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGVyY2VudC8lLyUtcHJlZml4L2Zvby9zdWIvJwogbWtk aXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wZXJjZW50 LyUvJS1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1wZXJjZW50LyUvJS1wcmVmaXgvZm9vL3N1YicKIC91c3IvYmluL2luc3Rh bGwgLWMgLW0gNjQ0ICBzdWIvbGlibm9iYXNlLmEgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1wZXJjZW50LyUvJS1wcmVmaXgvZm9vL3N1YicKICggY2QgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wZXJjZW50LyUvJS1wcmVmaXgv Zm9vJyAmJiByYW5saWIgc3ViL2xpYm5vYmFzZS5hICkKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGVyY2VudC8lLyUtcHJlZml4L2ZvbycKIG1r ZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGVyY2Vu dC8lLyUtcHJlZml4L2Zvby9zdWIvJwogIC91c3IvYmluL2luc3RhbGwgLWMgc3ViL25vYmFzZSAn L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBlcmNlbnQvJS8lLXBy ZWZpeC9mb28vc3ViLycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtcGVyY2VudC8lLyUtcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMg LW0gNjQ0IC4uL3N1Yi9iYXNlLmRhdCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LXBlcmNlbnQvJS8lLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBlcmNlbnQvJS8lLXByZWZpeC9mb28nCiAv dXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAuLi9zdWIvYmFzZS5oICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGVyY2VudC8lLyUtcHJlZml4L2ZvbycKIG1rZGly IC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGVyY2VudC8l LyUtcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtcGVyY2VudC8lLyUtcHJlZml4L2Zvby9zdWInCiAvdXNyL2Jpbi9pbnN0YWxs IC1jIC1tIDY0NCAgLi4vc3ViL25vYmFzZS5kYXQgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1wZXJjZW50LyUvJS1wcmVmaXgvZm9vL3N1YicKIG1rZGlyIC1wICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGVyY2VudC8lLyUtcHJl Zml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtcGVyY2VudC8lLyUtcHJlZml4L2Zvby9zdWInCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1t IDY0NCAgLi4vc3ViL25vYmFzZS5oICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyL2Rlc3QtcGVyY2VudC8lLyUtcHJlZml4L2Zvby9zdWInCm1ha2VbMV06IExlYXZpbmcgZGly ZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2J1aWxkLXBlcmNl bnQnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LXBlcmNlbnQvJS8uLyUtcHJlZml4L2Zvby9zdWIvbm9iYXNlLmgnCnRlc3QgISAtZiAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBlcmNlbnQvJS8uLyUtcHJlZml4 L2Zvby9ub2Jhc2UuaCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtcGVyY2VudC8lLy4vJS1wcmVmaXgvZm9vL2Jhc2UuaCcKdGVzdCAgIC1mICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGVyY2VudC8lLy4vJS1w cmVmaXgvZm9vL3N1Yi9ub2Jhc2UuZGF0Jwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wZXJjZW50LyUvLi8lLXByZWZpeC9mb28vbm9iYXNlLmRh dCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt cGVyY2VudC8lLy4vJS1wcmVmaXgvZm9vL2Jhc2UuZGF0Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wZXJjZW50LyUvLi8lLXByZWZpeC9mb28v c3ViL25vYmFzZS5zaCcKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtcGVyY2VudC8lLy4vJS1wcmVmaXgvZm9vL25vYmFzZS5zaCcKdGVzdCAgIC1m ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGVyY2VudC8lLy4v JS1wcmVmaXgvZm9vL2Jhc2Uuc2gnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXBlcmNlbnQvJS8uLyUtcHJlZml4L2Zvby9zdWIvbm9iYXNlJwp0 ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wZXJj ZW50LyUvLi8lLXByZWZpeC9mb28vbm9iYXNlJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wZXJjZW50LyUvLi8lLXByZWZpeC9mb28vYmFzZScK dGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGVy Y2VudC8lLy4vJS1wcmVmaXgvZm9vL3N1Yi9saWJub2Jhc2UuYScKdGVzdCAhIC1mICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGVyY2VudC8lLy4vJS1wcmVmaXgv Zm9vL2xpYm5vYmFzZS5hJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1wZXJjZW50LyUvLi8lLXByZWZpeC9mb28vbGliYmFzZS5hJwojW3N0ZGVy cl0rIGRlc2NyaXB0aW9uPSdwZXJjZW50IGluIGRlc3RkaXInCiNbc3RkZXJyXSsgZXhwZWN0ZWRf dG9fZmFpbCBkZXN0IHBlcmNlbnQKb2sgMTggLSBwZXJjZW50IGluIGRlc3RkaXIKUEFTUzogdC9p bnN0c3BjLnRhcCAxOCAtIHBlcmNlbnQgaW4gZGVzdGRpcgojW3N0ZGVycl0rIGNhc2UgJDEgaW4K I1tzdGRlcnJdKyBpc19pbl9saXN0IHBlcmNlbnQgc3F1b3RlIGRxdW90ZSBicXVvdGUgc2hhcnAg ZG9sbGFyIGxpbmVmZWVkIGFfbGZfYgojW3N0ZGVycl0rIGl0ZW09cGVyY2VudAojW3N0ZGVycl0r IHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyByZXR1cm4gMQojW3N0 ZGVycl0rIGRpcmVjdGl2ZT0KI1tzdGRlcnJdKyByZWFzb249CiNbc3RkZXJyXSsgcmVzdWx0XyBv ayAtRCAnJyAtciAnJyAtLSAncGVyY2VudCBpbiBkZXN0ZGlyJwojW3N0ZGVycl0rIHNldCAreAoj W3N0ZGVycl0rIGNkIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIKI1tzdGRl cnJdKyBub3QgYW1fa2VlcGluZ190ZXN0ZGlycwojW3N0ZGVycl0rIGFtX2tlZXBpbmdfdGVzdGRp cnMKI1tzdGRlcnJdKyBjYXNlICRrZWVwX3Rlc3RkaXJzIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEK I1tzdGRlcnJdKyB0ZXN0IG9rID0gb2sKI1tzdGRlcnJdKyBybV9yZl8gYnVpbGQtcGVyY2VudCAv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGVyY2VudC8lCiNbc3Rk ZXJyXSsgdGVzdCAyIC1ndCAwCiNbc3RkZXJyXSsgY2htb2QgLVIgdStyd3ggYnVpbGQtcGVyY2Vu dCAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGVyY2VudC8lCiNb c3RkZXJyXSsgcm0gLXJmIGJ1aWxkLXBlcmNlbnQgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LXBlcmNlbnQvJQojW3N0ZGVycl0rIF9hbV9ybXJmX3N0YXR1cz0wCiNb c3RkZXJyXSsgZm9yIF9hbV9ybXJmX3YgaW4gJyIkQCInCiNbc3RkZXJyXSsgdGVzdCAtZSBidWls ZC1wZXJjZW50CiNbc3RkZXJyXSsgZm9yIF9hbV9ybXJmX3YgaW4gJyIkQCInCiNbc3RkZXJyXSsg dGVzdCAtZSAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGVyY2Vu dC8lCiNbc3RkZXJyXSsgcmV0dXJuIDAKI1tzdGRlcnJdKyA6IEZvciBzaGVsbHMgd2l0aCBidXN0 ZWQgJ3NldCAtZS4nCiNbc3RkZXJyXSsgZm9yIHRlc3RfbmFtZSBpbiAnJHRlc3RfbmFtZXNfbGlz dCcKI1tzdGRlcnJdKyBldmFsICd0ZXN0X3N0cmluZz0ke2luc3RzcGNfX2xlZnRwYXJ9JwojW3N0 ZGVycl0rKyB0ZXN0X3N0cmluZz0nKCcKI1tzdGRlcnJdKyB0ZXN0ICd4KCcgPSB4CiNbc3RkZXJy XSsgbWtkaXIgJy4vKCcKI1tzdGRlcnJdKyBjYXNlICR0ZXN0X3N0cmluZyBpbgojW3N0ZGVycl0r IGZvciB3aGVyZSBpbiBidWlsZCBkZXN0CiNbc3RkZXJyXSsgY2FzZSAkd2hlcmUgaW4KI1tzdGRl cnJdKyBidWlsZD0nLi8oJwojW3N0ZGVycl0rIGRlc3Q9L3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LWxlZnRwYXIKI1tzdGRlcnJdKyBjZCAnLi8oJwojW3N0ZGVycl0r IHI9b2sKI1tzdGRlcnJdKyAuLi9jb25maWd1cmUgLS1wcmVmaXggJy8oLXByZWZpeCcKY2hlY2tp bmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbC4uLiAvdXNyL2Jpbi9pbnN0YWxsIC1jCmNo ZWNraW5nIHdoZXRoZXIgc2xlZXAgc3VwcG9ydHMgZnJhY3Rpb25hbCBzZWNvbmRzLi4uIHllcwpj aGVja2luZyBmaWxlc3lzdGVtIHRpbWVzdGFtcCByZXNvbHV0aW9uLi4uIDAuMDEKY2hlY2tpbmcg d2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lLi4uIHllcwpjaGVja2luZyBmb3IgYSBy YWNlLWZyZWUgbWtkaXIgLXAuLi4gbWtkaXIgLXAKY2hlY2tpbmcgZm9yIGdhd2suLi4gbm8KY2hl Y2tpbmcgZm9yIG1hd2suLi4gbm8KY2hlY2tpbmcgZm9yIG5hd2suLi4gbm8KY2hlY2tpbmcgZm9y IGF3ay4uLiBhd2sKY2hlY2tpbmcgd2hldGhlciBtYWtlIHNldHMgJChNQUtFKS4uLiB5ZXMKY2hl Y2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRzIG5lc3RlZCB2YXJpYWJsZXMuLi4geWVzCmNoZWNr aW5nIHhhcmdzIC1uIHdvcmtzLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIFVJRCAnNTAxJyBpcyBz dXBwb3J0ZWQgYnkgdXN0YXIgZm9ybWF0Li4uIHllcwpjaGVja2luZyB3aGV0aGVyIEdJRCAnMjAn IGlzIHN1cHBvcnRlZCBieSB1c3RhciBmb3JtYXQuLi4geWVzCmNoZWNraW5nIGhvdyB0byBjcmVh dGUgYSB1c3RhciB0YXIgYXJjaGl2ZS4uLiBwbGFpbnRhcgpjaGVja2luZyBmb3IgZ2NjLi4uIGdj YwpjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdvcmtzLi4uIHllcwpjaGVja2luZyBm b3IgQyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUuLi4gYS5vdXQKY2hlY2tpbmcg Zm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcy4uLiAKY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jv c3MgY29tcGlsaW5nLi4uIG5vCmNoZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzLi4u IG8KY2hlY2tpbmcgd2hldGhlciB0aGUgY29tcGlsZXIgc3VwcG9ydHMgR05VIEMuLi4geWVzCmNo ZWNraW5nIHdoZXRoZXIgZ2NjIGFjY2VwdHMgLWcuLi4geWVzCmNoZWNraW5nIGZvciBnY2Mgb3B0 aW9uIHRvIGVuYWJsZSBDMjMgZmVhdHVyZXMuLi4gLXN0ZD1nbnUyMwpjaGVja2luZyB3aGV0aGVy IGdjYyAtc3RkPWdudTIzIHVuZGVyc3RhbmRzIC1jIGFuZCAtbyB0b2dldGhlci4uLiB5ZXMKY2hl Y2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRzIHRoZSBpbmNsdWRlIGRpcmVjdGl2ZS4uLiB5ZXMg KEdOVSBzdHlsZSkKY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiBnY2MgLXN0ZD1nbnUyMy4u LiBnY2MzCmNoZWNraW5nIGZvciBhci4uLiBhcgpjaGVja2luZyB0aGUgYXJjaGl2ZXIgKGFyKSBp bnRlcmZhY2UuLi4gYXIKY2hlY2tpbmcgZm9yIHJhbmxpYi4uLiByYW5saWIKY2hlY2tpbmcgdGhh dCBnZW5lcmF0ZWQgZmlsZXMgYXJlIG5ld2VyIHRoYW4gY29uZmlndXJlLi4uIGRvbmUKY29uZmln dXJlOiBjcmVhdGluZyAuL2NvbmZpZy5zdGF0dXMKY29uZmlnLnN0YXR1czogY3JlYXRpbmcgTWFr ZWZpbGUKY29uZmlnLnN0YXR1czogZXhlY3V0aW5nIGRlcGZpbGVzIGNvbW1hbmRzCiNbc3RkZXJy XSsgbWFrZSBhbGwKZ2NjIC1zdGQ9Z251MjMgLURQQUNLQUdFX05BTUU9XCJpbnN0c3BjXCIgLURQ QUNLQUdFX1RBUk5BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdFX1ZFUlNJT049XCIxLjBcIiAtRFBB Q0tBR0VfU1RSSU5HPVwiaW5zdHNwY1wgMS4wXCIgLURQQUNLQUdFX0JVR1JFUE9SVD1cIlwiIC1E UEFDS0FHRV9VUkw9XCJcIiAtRFBBQ0tBR0U9XCJpbnN0c3BjXCIgLURWRVJTSU9OPVwiMS4wXCIg LUkuIC1JLi4gICAgIC1nIC1PMiAtTVQgc291cmNlLm8gLU1EIC1NUCAtTUYgLmRlcHMvc291cmNl LlRwbyAtYyAtbyBzb3VyY2UubyAuLi9zb3VyY2UuYwptdiAtZiAuZGVwcy9zb3VyY2UuVHBvIC5k ZXBzL3NvdXJjZS5QbwpnY2MgLXN0ZD1nbnUyMyAgLWcgLU8yICAgLW8gc3ViL2Jhc2Ugc291cmNl Lm8gIApnY2MgLXN0ZD1nbnUyMyAgLWcgLU8yICAgLW8gc3ViL25vYmFzZSBzb3VyY2UubyAgCnJt IC1mIHN1Yi9saWJiYXNlLmEKYXIgY3Igc3ViL2xpYmJhc2UuYSBzb3VyY2UubyAKcmFubGliIHN1 Yi9saWJiYXNlLmEKcm0gLWYgc3ViL2xpYm5vYmFzZS5hCmFyIGNyIHN1Yi9saWJub2Jhc2UuYSBz b3VyY2UubyAKcmFubGliIHN1Yi9saWJub2Jhc2UuYQojW3N0ZGVycl0rIERFU1RESVI9L3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlZnRwYXIKI1tzdGRlcnJdKyBm aWxlPScuLygnCiNbc3RkZXJyXSsgbWFrZSB0ZXN0LWluc3QKbWFrZVsxXTogRW50ZXJpbmcgZGly ZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyLygnCiBta2RpciAt cCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlZnRwYXIvKC1w cmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAuLi9zdWIvYmFzZS5zaCAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlZnRwYXIvKC1wcmVmaXgvZm9vJwog bWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZWZ0 cGFyLygtcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICBzdWIvbGliYmFz ZS5hICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVmdHBhci8o LXByZWZpeC9mb28nCiAoIGNkICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtbGVmdHBhci8oLXByZWZpeC9mb28nICYmIHJhbmxpYiBsaWJiYXNlLmEgKQogbWtkaXIg LXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZWZ0cGFyLygt cHJlZml4L2ZvbycKICAvdXNyL2Jpbi9pbnN0YWxsIC1jIHN1Yi9iYXNlICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVmdHBhci8oLXByZWZpeC9mb28nCiBta2Rp ciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlZnRwYXIv KC1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1sZWZ0cGFyLygtcHJlZml4L2Zvby9zdWIvJwogL3Vzci9iaW4vaW5zdGFsbCAt YyAuLi9zdWIvbm9iYXNlLnNoICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtbGVmdHBhci8oLXByZWZpeC9mb28vc3ViLycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVmdHBhci8oLXByZWZpeC9mb28nCiBta2Rp ciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlZnRwYXIv KC1wcmVmaXgvZm9vL3N1YicKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICBzdWIvbGlibm9i YXNlLmEgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZWZ0cGFy LygtcHJlZml4L2Zvby9zdWInCiAoIGNkICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtbGVmdHBhci8oLXByZWZpeC9mb28nICYmIHJhbmxpYiBzdWIvbGlibm9iYXNl LmEgKQogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC1sZWZ0cGFyLygtcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVmdHBhci8oLXByZWZpeC9mb28vc3ViLycKICAvdXNyL2Jp bi9pbnN0YWxsIC1jIHN1Yi9ub2Jhc2UgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1sZWZ0cGFyLygtcHJlZml4L2Zvby9zdWIvJwogbWtkaXIgLXAgJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZWZ0cGFyLygtcHJlZml4L2ZvbycK IC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0IC4uL3N1Yi9iYXNlLmRhdCAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlZnRwYXIvKC1wcmVmaXgvZm9vJwogbWtk aXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZWZ0cGFy LygtcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0IC4uL3N1Yi9iYXNlLmgg Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZWZ0cGFyLygtcHJl Zml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtbGVmdHBhci8oLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlZnRwYXIvKC1wcmVmaXgvZm9vL3N1YicKIC91c3Iv YmluL2luc3RhbGwgLWMgLW0gNjQ0ICAuLi9zdWIvbm9iYXNlLmRhdCAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlZnRwYXIvKC1wcmVmaXgvZm9vL3N1YicKIG1r ZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVmdHBh ci8oLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9kZXN0LWxlZnRwYXIvKC1wcmVmaXgvZm9vL3N1YicKIC91c3IvYmluL2luc3RhbGwg LWMgLW0gNjQ0ICAuLi9zdWIvbm9iYXNlLmggJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1sZWZ0cGFyLygtcHJlZml4L2Zvby9zdWInCm1ha2VbMV06IExlYXZpbmcg ZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyLygnCnRlc3Qg ICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlZnRwYXIv Li8oLXByZWZpeC9mb28vc3ViL25vYmFzZS5oJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZWZ0cGFyLy4vKC1wcmVmaXgvZm9vL25vYmFzZS5o Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1s ZWZ0cGFyLy4vKC1wcmVmaXgvZm9vL2Jhc2UuaCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVmdHBhci8uLygtcHJlZml4L2Zvby9zdWIvbm9i YXNlLmRhdCcKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtbGVmdHBhci8uLygtcHJlZml4L2Zvby9ub2Jhc2UuZGF0Jwp0ZXN0ICAgLWYgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZWZ0cGFyLy4vKC1wcmVmaXgv Zm9vL2Jhc2UuZGF0Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1sZWZ0cGFyLy4vKC1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2Uuc2gnCnRlc3QgISAt ZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlZnRwYXIvLi8o LXByZWZpeC9mb28vbm9iYXNlLnNoJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1sZWZ0cGFyLy4vKC1wcmVmaXgvZm9vL2Jhc2Uuc2gnCnRlc3Qg ICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlZnRwYXIv Li8oLXByZWZpeC9mb28vc3ViL25vYmFzZScKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVmdHBhci8uLygtcHJlZml4L2Zvby9ub2Jhc2UnCnRl c3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlZnRw YXIvLi8oLXByZWZpeC9mb28vYmFzZScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVmdHBhci8uLygtcHJlZml4L2Zvby9zdWIvbGlibm9iYXNl LmEnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LWxlZnRwYXIvLi8oLXByZWZpeC9mb28vbGlibm9iYXNlLmEnCnRlc3QgICAtZiAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlZnRwYXIvLi8oLXByZWZpeC9mb28v bGliYmFzZS5hJwpvayAxOSAtIGxlZnRwYXIgaW4gYnVpbGRkaXIKUEFTUzogdC9pbnN0c3BjLnRh cCAxOSAtIGxlZnRwYXIgaW4gYnVpbGRkaXIKI1tzdGRlcnJdKyBkZXNjcmlwdGlvbj0nbGVmdHBh ciBpbiBidWlsZGRpcicKI1tzdGRlcnJdKyBleHBlY3RlZF90b19mYWlsIGJ1aWxkIGxlZnRwYXIK I1tzdGRlcnJdKyBjYXNlICQxIGluCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBsZWZ0cGFyIHNxdW90 ZSBkcXVvdGUgYnF1b3RlIHNoYXJwIGRvbGxhciBic2xhc2ggYW1wZXJzYW5kIGxpbmVmZWVkIHF1 YWRyaWdyYXBoMCBhX2xmX2IKI1tzdGRlcnJdKyBpdGVtPWxlZnRwYXIKI1tzdGRlcnJdKyBzaGlm dAojW3N0ZGVycl0rIGNhc2UgIiAkKiAiIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJd KyBkaXJlY3RpdmU9CiNbc3RkZXJyXSsgcmVhc29uPQojW3N0ZGVycl0rIHJlc3VsdF8gb2sgLUQg JycgLXIgJycgLS0gJ2xlZnRwYXIgaW4gYnVpbGRkaXInCiNbc3RkZXJyXSsgc2V0ICt4CiNbc3Rk ZXJyXSsgY2QgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpcgojW3N0ZGVycl0r IG5vdCBhbV9rZWVwaW5nX3Rlc3RkaXJzCiNbc3RkZXJyXSsgYW1fa2VlcGluZ190ZXN0ZGlycwoj W3N0ZGVycl0rIGNhc2UgJGtlZXBfdGVzdGRpcnMgaW4KI1tzdGRlcnJdKyByZXR1cm4gMQojW3N0 ZGVycl0rIHRlc3Qgb2sgPSBvawojW3N0ZGVycl0rIHJtX3JmXyAnLi8oJyAvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVmdHBhcgojW3N0ZGVycl0rIHRlc3QgMiAt Z3QgMAojW3N0ZGVycl0rIGNobW9kIC1SIHUrcnd4ICcuLygnIC91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZWZ0cGFyCiNbc3RkZXJyXSsgcm0gLXJmICcuLygnIC91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZWZ0cGFyCiNbc3RkZXJy XSsgX2FtX3JtcmZfc3RhdHVzPTAKI1tzdGRlcnJdKyBmb3IgX2FtX3JtcmZfdiBpbiAnIiRAIicK I1tzdGRlcnJdKyB0ZXN0IC1lICcuLygnCiNbc3RkZXJyXSsgZm9yIF9hbV9ybXJmX3YgaW4gJyIk QCInCiNbc3RkZXJyXSsgdGVzdCAtZSAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyL2Rlc3QtbGVmdHBhcgojW3N0ZGVycl0rIHJldHVybiAwCiNbc3RkZXJyXSsgOiBGb3Igc2hl bGxzIHdpdGggYnVzdGVkICdzZXQgLWUuJwojW3N0ZGVycl0rIGZvciB3aGVyZSBpbiBidWlsZCBk ZXN0CiNbc3RkZXJyXSsgY2FzZSAkd2hlcmUgaW4KI1tzdGRlcnJdKyBidWlsZD1idWlsZC1sZWZ0 cGFyCiNbc3RkZXJyXSsgZGVzdD0nL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LWxlZnRwYXIvKCcKI1tzdGRlcnJdKyBta2RpciBidWlsZC1sZWZ0cGFyCiNbc3RkZXJy XSsgY2QgYnVpbGQtbGVmdHBhcgojW3N0ZGVycl0rIHI9b2sKI1tzdGRlcnJdKyAuLi9jb25maWd1 cmUgLS1wcmVmaXggJy8oLXByZWZpeCcKY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5z dGFsbC4uLiAvdXNyL2Jpbi9pbnN0YWxsIC1jCmNoZWNraW5nIHdoZXRoZXIgc2xlZXAgc3VwcG9y dHMgZnJhY3Rpb25hbCBzZWNvbmRzLi4uIHllcwpjaGVja2luZyBmaWxlc3lzdGVtIHRpbWVzdGFt cCByZXNvbHV0aW9uLi4uIDAuMDEKY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBp cyBzYW5lLi4uIHllcwpjaGVja2luZyBmb3IgYSByYWNlLWZyZWUgbWtkaXIgLXAuLi4gbWtkaXIg LXAKY2hlY2tpbmcgZm9yIGdhd2suLi4gbm8KY2hlY2tpbmcgZm9yIG1hd2suLi4gbm8KY2hlY2tp bmcgZm9yIG5hd2suLi4gbm8KY2hlY2tpbmcgZm9yIGF3ay4uLiBhd2sKY2hlY2tpbmcgd2hldGhl ciBtYWtlIHNldHMgJChNQUtFKS4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRz IG5lc3RlZCB2YXJpYWJsZXMuLi4geWVzCmNoZWNraW5nIHhhcmdzIC1uIHdvcmtzLi4uIHllcwpj aGVja2luZyB3aGV0aGVyIFVJRCAnNTAxJyBpcyBzdXBwb3J0ZWQgYnkgdXN0YXIgZm9ybWF0Li4u IHllcwpjaGVja2luZyB3aGV0aGVyIEdJRCAnMjAnIGlzIHN1cHBvcnRlZCBieSB1c3RhciBmb3Jt YXQuLi4geWVzCmNoZWNraW5nIGhvdyB0byBjcmVhdGUgYSB1c3RhciB0YXIgYXJjaGl2ZS4uLiBw bGFpbnRhcgpjaGVja2luZyBmb3IgZ2NjLi4uIGdjYwpjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNv bXBpbGVyIHdvcmtzLi4uIHllcwpjaGVja2luZyBmb3IgQyBjb21waWxlciBkZWZhdWx0IG91dHB1 dCBmaWxlIG5hbWUuLi4gYS5vdXQKY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcy4u LiAKY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nLi4uIG5vCmNoZWNraW5n IGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzLi4uIG8KY2hlY2tpbmcgd2hldGhlciB0aGUgY29t cGlsZXIgc3VwcG9ydHMgR05VIEMuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgZ2NjIGFjY2VwdHMg LWcuLi4geWVzCmNoZWNraW5nIGZvciBnY2Mgb3B0aW9uIHRvIGVuYWJsZSBDMjMgZmVhdHVyZXMu Li4gLXN0ZD1nbnUyMwpjaGVja2luZyB3aGV0aGVyIGdjYyAtc3RkPWdudTIzIHVuZGVyc3RhbmRz IC1jIGFuZCAtbyB0b2dldGhlci4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRz IHRoZSBpbmNsdWRlIGRpcmVjdGl2ZS4uLiB5ZXMgKEdOVSBzdHlsZSkKY2hlY2tpbmcgZGVwZW5k ZW5jeSBzdHlsZSBvZiBnY2MgLXN0ZD1nbnUyMy4uLiBnY2MzCmNoZWNraW5nIGZvciBhci4uLiBh cgpjaGVja2luZyB0aGUgYXJjaGl2ZXIgKGFyKSBpbnRlcmZhY2UuLi4gYXIKY2hlY2tpbmcgZm9y IHJhbmxpYi4uLiByYW5saWIKY2hlY2tpbmcgdGhhdCBnZW5lcmF0ZWQgZmlsZXMgYXJlIG5ld2Vy IHRoYW4gY29uZmlndXJlLi4uIGRvbmUKY29uZmlndXJlOiBjcmVhdGluZyAuL2NvbmZpZy5zdGF0 dXMKY29uZmlnLnN0YXR1czogY3JlYXRpbmcgTWFrZWZpbGUKY29uZmlnLnN0YXR1czogZXhlY3V0 aW5nIGRlcGZpbGVzIGNvbW1hbmRzCiNbc3RkZXJyXSsgbWFrZSBhbGwKZ2NjIC1zdGQ9Z251MjMg LURQQUNLQUdFX05BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdFX1RBUk5BTUU9XCJpbnN0c3BjXCIg LURQQUNLQUdFX1ZFUlNJT049XCIxLjBcIiAtRFBBQ0tBR0VfU1RSSU5HPVwiaW5zdHNwY1wgMS4w XCIgLURQQUNLQUdFX0JVR1JFUE9SVD1cIlwiIC1EUEFDS0FHRV9VUkw9XCJcIiAtRFBBQ0tBR0U9 XCJpbnN0c3BjXCIgLURWRVJTSU9OPVwiMS4wXCIgLUkuIC1JLi4gICAgIC1nIC1PMiAtTVQgc291 cmNlLm8gLU1EIC1NUCAtTUYgLmRlcHMvc291cmNlLlRwbyAtYyAtbyBzb3VyY2UubyAuLi9zb3Vy Y2UuYwptdiAtZiAuZGVwcy9zb3VyY2UuVHBvIC5kZXBzL3NvdXJjZS5QbwpnY2MgLXN0ZD1nbnUy MyAgLWcgLU8yICAgLW8gc3ViL2Jhc2Ugc291cmNlLm8gIApnY2MgLXN0ZD1nbnUyMyAgLWcgLU8y ICAgLW8gc3ViL25vYmFzZSBzb3VyY2UubyAgCnJtIC1mIHN1Yi9saWJiYXNlLmEKYXIgY3Igc3Vi L2xpYmJhc2UuYSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJiYXNlLmEKcm0gLWYgc3ViL2xpYm5v YmFzZS5hCmFyIGNyIHN1Yi9saWJub2Jhc2UuYSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJub2Jh c2UuYQojW3N0ZGVycl0rIERFU1RESVI9Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1sZWZ0cGFyLygnCiNbc3RkZXJyXSsgZmlsZT0nLi8oJwojW3N0ZGVycl0rIG1h a2UgdGVzdC1pbnN0Cm1ha2VbMV06IEVudGVyaW5nIGRpcmVjdG9yeSAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9idWlsZC1sZWZ0cGFyJwogbWtkaXIgLXAgJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZWZ0cGFyLygvKC1wcmVmaXgvZm9v JwogL3Vzci9iaW4vaW5zdGFsbCAtYyAuLi9zdWIvYmFzZS5zaCAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlZnRwYXIvKC8oLXByZWZpeC9mb28nCiBta2RpciAt cCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlZnRwYXIvKC8o LXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAgc3ViL2xpYmJhc2UuYSAn L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlZnRwYXIvKC8oLXBy ZWZpeC9mb28nCiAoIGNkICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rl c3QtbGVmdHBhci8oLygtcHJlZml4L2ZvbycgJiYgcmFubGliIGxpYmJhc2UuYSApCiBta2RpciAt cCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlZnRwYXIvKC8o LXByZWZpeC9mb28nCiAgL3Vzci9iaW4vaW5zdGFsbCAtYyBzdWIvYmFzZSAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlZnRwYXIvKC8oLXByZWZpeC9mb28nCiBt a2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlZnRw YXIvKC8oLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LWxlZnRwYXIvKC8oLXByZWZpeC9mb28vc3ViLycKIC91c3IvYmluL2lu c3RhbGwgLWMgLi4vc3ViL25vYmFzZS5zaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9kZXN0LWxlZnRwYXIvKC8oLXByZWZpeC9mb28vc3ViLycKIG1rZGlyIC1wICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVmdHBhci8oLygtcHJlZml4 L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rl c3QtbGVmdHBhci8oLygtcHJlZml4L2Zvby9zdWInCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0 NCAgc3ViL2xpYm5vYmFzZS5hICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtbGVmdHBhci8oLygtcHJlZml4L2Zvby9zdWInCiAoIGNkICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVmdHBhci8oLygtcHJlZml4L2ZvbycgJiYgcmFu bGliIHN1Yi9saWJub2Jhc2UuYSApCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LWxlZnRwYXIvKC8oLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlZnRwYXIvKC8oLXByZWZp eC9mb28vc3ViLycKICAvdXNyL2Jpbi9pbnN0YWxsIC1jIHN1Yi9ub2Jhc2UgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZWZ0cGFyLygvKC1wcmVmaXgvZm9vL3N1 Yi8nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LWxlZnRwYXIvKC8oLXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAuLi9z dWIvYmFzZS5kYXQgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1s ZWZ0cGFyLygvKC1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1sZWZ0cGFyLygvKC1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5z dGFsbCAtYyAtbSA2NDQgLi4vc3ViL2Jhc2UuaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LWxlZnRwYXIvKC8oLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlZnRwYXIvKC8oLXByZWZpeC9m b28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LWxlZnRwYXIvKC8oLXByZWZpeC9mb28vc3ViJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQg IC4uL3N1Yi9ub2Jhc2UuZGF0ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtbGVmdHBhci8oLygtcHJlZml4L2Zvby9zdWInCiBta2RpciAtcCAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlZnRwYXIvKC8oLXByZWZpeC9mb28nCiBt a2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlZnRw YXIvKC8oLXByZWZpeC9mb28vc3ViJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIC4uL3N1 Yi9ub2Jhc2UuaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxl ZnRwYXIvKC8oLXByZWZpeC9mb28vc3ViJwptYWtlWzFdOiBMZWF2aW5nIGRpcmVjdG9yeSAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9idWlsZC1sZWZ0cGFyJwp0ZXN0ICAg LWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZWZ0cGFyLygv Li8oLXByZWZpeC9mb28vc3ViL25vYmFzZS5oJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZWZ0cGFyLygvLi8oLXByZWZpeC9mb28vbm9iYXNl LmgnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LWxlZnRwYXIvKC8uLygtcHJlZml4L2Zvby9iYXNlLmgnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlZnRwYXIvKC8uLygtcHJlZml4L2Zvby9z dWIvbm9iYXNlLmRhdCcKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtbGVmdHBhci8oLy4vKC1wcmVmaXgvZm9vL25vYmFzZS5kYXQnCnRlc3QgICAt ZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlZnRwYXIvKC8u LygtcHJlZml4L2Zvby9iYXNlLmRhdCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVmdHBhci8oLy4vKC1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2Uu c2gnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LWxlZnRwYXIvKC8uLygtcHJlZml4L2Zvby9ub2Jhc2Uuc2gnCnRlc3QgICAtZiAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlZnRwYXIvKC8uLygtcHJlZml4L2Zv by9iYXNlLnNoJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1sZWZ0cGFyLygvLi8oLXByZWZpeC9mb28vc3ViL25vYmFzZScKdGVzdCAhIC1mICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVmdHBhci8oLy4vKC1w cmVmaXgvZm9vL25vYmFzZScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtbGVmdHBhci8oLy4vKC1wcmVmaXgvZm9vL2Jhc2UnCnRlc3QgICAtZiAn L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlZnRwYXIvKC8uLygt cHJlZml4L2Zvby9zdWIvbGlibm9iYXNlLmEnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlZnRwYXIvKC8uLygtcHJlZml4L2Zvby9saWJub2Jh c2UuYScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rl c3QtbGVmdHBhci8oLy4vKC1wcmVmaXgvZm9vL2xpYmJhc2UuYScKI1tzdGRlcnJdKyBkZXNjcmlw dGlvbj0nbGVmdHBhciBpbiBkZXN0ZGlyJwojW3N0ZGVycl0rIGV4cGVjdGVkX3RvX2ZhaWwgZGVz dCBsZWZ0cGFyCiNbc3RkZXJyXSsgY2FzZSAkMSBpbgojW3N0ZGVycl0rIGlzX2luX2xpc3QgbGVm dHBhciBzcXVvdGUgZHF1b3RlIGJxdW90ZSBzaGFycCBkb2xsYXIgbGluZWZlZWQgYV9sZl9iCiNb c3RkZXJyXSsgaXRlbT1sZWZ0cGFyCiNbc3RkZXJyXSsgc2hpZnQKb2sgMjAgLSBsZWZ0cGFyIGlu IGRlc3RkaXIKUEFTUzogdC9pbnN0c3BjLnRhcCAyMCAtIGxlZnRwYXIgaW4gZGVzdGRpcgojW3N0 ZGVycl0rIGNhc2UgIiAkKiAiIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyBkaXJl Y3RpdmU9CiNbc3RkZXJyXSsgcmVhc29uPQojW3N0ZGVycl0rIHJlc3VsdF8gb2sgLUQgJycgLXIg JycgLS0gJ2xlZnRwYXIgaW4gZGVzdGRpcicKI1tzdGRlcnJdKyBzZXQgK3gKI1tzdGRlcnJdKyBj ZCAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyCiNbc3RkZXJyXSsgbm90IGFt X2tlZXBpbmdfdGVzdGRpcnMKI1tzdGRlcnJdKyBhbV9rZWVwaW5nX3Rlc3RkaXJzCiNbc3RkZXJy XSsgY2FzZSAka2VlcF90ZXN0ZGlycyBpbgojW3N0ZGVycl0rIHJldHVybiAxCiNbc3RkZXJyXSsg dGVzdCBvayA9IG9rCiNbc3RkZXJyXSsgcm1fcmZfIGJ1aWxkLWxlZnRwYXIgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZWZ0cGFyLygnCiNbc3RkZXJyXSsgdGVz dCAyIC1ndCAwCiNbc3RkZXJyXSsgY2htb2QgLVIgdStyd3ggYnVpbGQtbGVmdHBhciAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlZnRwYXIvKCcKI1tzdGRlcnJd KyBybSAtcmYgYnVpbGQtbGVmdHBhciAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LWxlZnRwYXIvKCcKI1tzdGRlcnJdKyBfYW1fcm1yZl9zdGF0dXM9MAojW3N0ZGVy cl0rIGZvciBfYW1fcm1yZl92IGluICciJEAiJwojW3N0ZGVycl0rIHRlc3QgLWUgYnVpbGQtbGVm dHBhcgojW3N0ZGVycl0rIGZvciBfYW1fcm1yZl92IGluICciJEAiJwojW3N0ZGVycl0rIHRlc3Qg LWUgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZWZ0cGFyLygn CiNbc3RkZXJyXSsgcmV0dXJuIDAKI1tzdGRlcnJdKyA6IEZvciBzaGVsbHMgd2l0aCBidXN0ZWQg J3NldCAtZS4nCiNbc3RkZXJyXSsgZm9yIHRlc3RfbmFtZSBpbiAnJHRlc3RfbmFtZXNfbGlzdCcK I1tzdGRlcnJdKyBldmFsICd0ZXN0X3N0cmluZz0ke2luc3RzcGNfX3JpZ2h0cGFyfScKI1tzdGRl cnJdKysgdGVzdF9zdHJpbmc9JyknCiNbc3RkZXJyXSsgdGVzdCAneCknID0geAojW3N0ZGVycl0r IG1rZGlyICcuLyknCiNbc3RkZXJyXSsgY2FzZSAkdGVzdF9zdHJpbmcgaW4KI1tzdGRlcnJdKyBm b3Igd2hlcmUgaW4gYnVpbGQgZGVzdAojW3N0ZGVycl0rIGNhc2UgJHdoZXJlIGluCiNbc3RkZXJy XSsgYnVpbGQ9Jy4vKScKI1tzdGRlcnJdKyBkZXN0PS91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1yaWdodHBhcgojW3N0ZGVycl0rIGNkICcuLyknCiNbc3RkZXJyXSsg cj1vawojW3N0ZGVycl0rIC4uL2NvbmZpZ3VyZSAtLXByZWZpeCAnLyktcHJlZml4JwpjaGVja2lu ZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsLi4uIC91c3IvYmluL2luc3RhbGwgLWMKY2hl Y2tpbmcgd2hldGhlciBzbGVlcCBzdXBwb3J0cyBmcmFjdGlvbmFsIHNlY29uZHMuLi4geWVzCmNo ZWNraW5nIGZpbGVzeXN0ZW0gdGltZXN0YW1wIHJlc29sdXRpb24uLi4gMC4wMQpjaGVja2luZyB3 aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmUuLi4geWVzCmNoZWNraW5nIGZvciBhIHJh Y2UtZnJlZSBta2RpciAtcC4uLiBta2RpciAtcApjaGVja2luZyBmb3IgZ2F3ay4uLiBubwpjaGVj a2luZyBmb3IgbWF3ay4uLiBubwpjaGVja2luZyBmb3IgbmF3ay4uLiBubwpjaGVja2luZyBmb3Ig YXdrLi4uIGF3awpjaGVja2luZyB3aGV0aGVyIG1ha2Ugc2V0cyAkKE1BS0UpLi4uIHllcwpjaGVj a2luZyB3aGV0aGVyIG1ha2Ugc3VwcG9ydHMgbmVzdGVkIHZhcmlhYmxlcy4uLiB5ZXMKY2hlY2tp bmcgeGFyZ3MgLW4gd29ya3MuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgVUlEICc1MDEnIGlzIHN1 cHBvcnRlZCBieSB1c3RhciBmb3JtYXQuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgR0lEICcyMCcg aXMgc3VwcG9ydGVkIGJ5IHVzdGFyIGZvcm1hdC4uLiB5ZXMKY2hlY2tpbmcgaG93IHRvIGNyZWF0 ZSBhIHVzdGFyIHRhciBhcmNoaXZlLi4uIHBsYWludGFyCmNoZWNraW5nIGZvciBnY2MuLi4gZ2Nj CmNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgd29ya3MuLi4geWVzCmNoZWNraW5nIGZv ciBDIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZS4uLiBhLm91dApjaGVja2luZyBm b3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzLi4uIApjaGVja2luZyB3aGV0aGVyIHdlIGFyZSBjcm9z cyBjb21waWxpbmcuLi4gbm8KY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMuLi4g bwpjaGVja2luZyB3aGV0aGVyIHRoZSBjb21waWxlciBzdXBwb3J0cyBHTlUgQy4uLiB5ZXMKY2hl Y2tpbmcgd2hldGhlciBnY2MgYWNjZXB0cyAtZy4uLiB5ZXMKY2hlY2tpbmcgZm9yIGdjYyBvcHRp b24gdG8gZW5hYmxlIEMyMyBmZWF0dXJlcy4uLiAtc3RkPWdudTIzCmNoZWNraW5nIHdoZXRoZXIg Z2NjIC1zdGQ9Z251MjMgdW5kZXJzdGFuZHMgLWMgYW5kIC1vIHRvZ2V0aGVyLi4uIHllcwpjaGVj a2luZyB3aGV0aGVyIG1ha2Ugc3VwcG9ydHMgdGhlIGluY2x1ZGUgZGlyZWN0aXZlLi4uIHllcyAo R05VIHN0eWxlKQpjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mIGdjYyAtc3RkPWdudTIzLi4u IGdjYzMKY2hlY2tpbmcgZm9yIGFyLi4uIGFyCmNoZWNraW5nIHRoZSBhcmNoaXZlciAoYXIpIGlu dGVyZmFjZS4uLiBhcgpjaGVja2luZyBmb3IgcmFubGliLi4uIHJhbmxpYgpjaGVja2luZyB0aGF0 IGdlbmVyYXRlZCBmaWxlcyBhcmUgbmV3ZXIgdGhhbiBjb25maWd1cmUuLi4gZG9uZQpjb25maWd1 cmU6IGNyZWF0aW5nIC4vY29uZmlnLnN0YXR1cwpjb25maWcuc3RhdHVzOiBjcmVhdGluZyBNYWtl ZmlsZQpjb25maWcuc3RhdHVzOiBleGVjdXRpbmcgZGVwZmlsZXMgY29tbWFuZHMKI1tzdGRlcnJd KyBtYWtlIGFsbApnY2MgLXN0ZD1nbnUyMyAtRFBBQ0tBR0VfTkFNRT1cImluc3RzcGNcIiAtRFBB Q0tBR0VfVEFSTkFNRT1cImluc3RzcGNcIiAtRFBBQ0tBR0VfVkVSU0lPTj1cIjEuMFwiIC1EUEFD S0FHRV9TVFJJTkc9XCJpbnN0c3BjXCAxLjBcIiAtRFBBQ0tBR0VfQlVHUkVQT1JUPVwiXCIgLURQ QUNLQUdFX1VSTD1cIlwiIC1EUEFDS0FHRT1cImluc3RzcGNcIiAtRFZFUlNJT049XCIxLjBcIiAt SS4gLUkuLiAgICAgLWcgLU8yIC1NVCBzb3VyY2UubyAtTUQgLU1QIC1NRiAuZGVwcy9zb3VyY2Uu VHBvIC1jIC1vIHNvdXJjZS5vIC4uL3NvdXJjZS5jCm12IC1mIC5kZXBzL3NvdXJjZS5UcG8gLmRl cHMvc291cmNlLlBvCmdjYyAtc3RkPWdudTIzICAtZyAtTzIgICAtbyBzdWIvYmFzZSBzb3VyY2Uu byAgCmdjYyAtc3RkPWdudTIzICAtZyAtTzIgICAtbyBzdWIvbm9iYXNlIHNvdXJjZS5vICAKcm0g LWYgc3ViL2xpYmJhc2UuYQphciBjciBzdWIvbGliYmFzZS5hIHNvdXJjZS5vIApyYW5saWIgc3Vi L2xpYmJhc2UuYQpybSAtZiBzdWIvbGlibm9iYXNlLmEKYXIgY3Igc3ViL2xpYm5vYmFzZS5hIHNv dXJjZS5vIApyYW5saWIgc3ViL2xpYm5vYmFzZS5hCiNbc3RkZXJyXSsgREVTVERJUj0vdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcmlnaHRwYXIKI1tzdGRlcnJdKyBm aWxlPScuLyknCiNbc3RkZXJyXSsgbWFrZSB0ZXN0LWluc3QKbWFrZVsxXTogRW50ZXJpbmcgZGly ZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyLyknCiBta2RpciAt cCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJpZ2h0cGFyLykt cHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLi4vc3ViL2Jhc2Uuc2ggJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1yaWdodHBhci8pLXByZWZpeC9mb28n CiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJp Z2h0cGFyLyktcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICBzdWIvbGli YmFzZS5hICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcmlnaHRw YXIvKS1wcmVmaXgvZm9vJwogKCBjZCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LXJpZ2h0cGFyLyktcHJlZml4L2ZvbycgJiYgcmFubGliIGxpYmJhc2UuYSApCiBt a2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJpZ2h0 cGFyLyktcHJlZml4L2ZvbycKICAvdXNyL2Jpbi9pbnN0YWxsIC1jIHN1Yi9iYXNlICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcmlnaHRwYXIvKS1wcmVmaXgvZm9v JwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1y aWdodHBhci8pLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXJpZ2h0cGFyLyktcHJlZml4L2Zvby9zdWIvJwogL3Vzci9iaW4v aW5zdGFsbCAtYyAuLi9zdWIvbm9iYXNlLnNoICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtcmlnaHRwYXIvKS1wcmVmaXgvZm9vL3N1Yi8nCiBta2RpciAtcCAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJpZ2h0cGFyLyktcHJlZml4 L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rl c3QtcmlnaHRwYXIvKS1wcmVmaXgvZm9vL3N1YicKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0 ICBzdWIvbGlibm9iYXNlLmEgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1yaWdodHBhci8pLXByZWZpeC9mb28vc3ViJwogKCBjZCAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJpZ2h0cGFyLyktcHJlZml4L2ZvbycgJiYgcmFubGli IHN1Yi9saWJub2Jhc2UuYSApCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LXJpZ2h0cGFyLyktcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcmlnaHRwYXIvKS1wcmVmaXgvZm9v L3N1Yi8nCiAgL3Vzci9iaW4vaW5zdGFsbCAtYyBzdWIvbm9iYXNlICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcmlnaHRwYXIvKS1wcmVmaXgvZm9vL3N1Yi8nCiBt a2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJpZ2h0 cGFyLyktcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0IC4uL3N1Yi9iYXNl LmRhdCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJpZ2h0cGFy LyktcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtcmlnaHRwYXIvKS1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAt bSA2NDQgLi4vc3ViL2Jhc2UuaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LXJpZ2h0cGFyLyktcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcmlnaHRwYXIvKS1wcmVmaXgvZm9vJwogbWtkaXIg LXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1yaWdodHBhci8p LXByZWZpeC9mb28vc3ViJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIC4uL3N1Yi9ub2Jh c2UuZGF0ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcmlnaHRw YXIvKS1wcmVmaXgvZm9vL3N1YicKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3QtcmlnaHRwYXIvKS1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1yaWdodHBhci8pLXByZWZpeC9m b28vc3ViJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIC4uL3N1Yi9ub2Jhc2UuaCAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJpZ2h0cGFyLyktcHJlZml4 L2Zvby9zdWInCm1ha2VbMV06IExlYXZpbmcgZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyLyknCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXJpZ2h0cGFyLy4vKS1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2UuaCcK dGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtcmln aHRwYXIvLi8pLXByZWZpeC9mb28vbm9iYXNlLmgnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJpZ2h0cGFyLy4vKS1wcmVmaXgvZm9vL2Jhc2Uu aCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt cmlnaHRwYXIvLi8pLXByZWZpeC9mb28vc3ViL25vYmFzZS5kYXQnCnRlc3QgISAtZiAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJpZ2h0cGFyLy4vKS1wcmVmaXgv Zm9vL25vYmFzZS5kYXQnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9kZXN0LXJpZ2h0cGFyLy4vKS1wcmVmaXgvZm9vL2Jhc2UuZGF0Jwp0ZXN0ICAgLWYg Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1yaWdodHBhci8uLykt cHJlZml4L2Zvby9zdWIvbm9iYXNlLnNoJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1yaWdodHBhci8uLyktcHJlZml4L2Zvby9ub2Jhc2Uuc2gn CnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJp Z2h0cGFyLy4vKS1wcmVmaXgvZm9vL2Jhc2Uuc2gnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJpZ2h0cGFyLy4vKS1wcmVmaXgvZm9vL3N1Yi9u b2Jhc2UnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LXJpZ2h0cGFyLy4vKS1wcmVmaXgvZm9vL25vYmFzZScKdGVzdCAgIC1mICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcmlnaHRwYXIvLi8pLXByZWZpeC9mb28v YmFzZScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rl c3QtcmlnaHRwYXIvLi8pLXByZWZpeC9mb28vc3ViL2xpYm5vYmFzZS5hJwp0ZXN0ICEgLWYgJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1yaWdodHBhci8uLyktcHJl Zml4L2Zvby9saWJub2Jhc2UuYScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3QtcmlnaHRwYXIvLi8pLXByZWZpeC9mb28vbGliYmFzZS5hJwojW3N0 ZGVycl0rIGRlc2NyaXB0aW9uPSdyaWdodHBhciBpbiBidWlsZGRpcicKI1tzdGRlcnJdKyBleHBl Y3RlZF90b19mYWlsIGJ1aWxkIHJpZ2h0cGFyCiNbc3RkZXJyXSsgY2FzZSAkMSBpbgojW3N0ZGVy cl0rIGlzX2luX2xpc3QgcmlnaHRwYXIgc3F1b3RlIGRxdW90ZSBicXVvdGUgc2hhcnAgZG9sbGFy IGJzbGFzaCBhbXBlcnNhbmQgbGluZWZlZWQgcXVhZHJpZ3JhcGgwIGFfbGZfYgojW3N0ZGVycl0r IGl0ZW09cmlnaHRwYXIKI1tzdGRlcnJdKyBzaGlmdApvayAyMSAtIHJpZ2h0cGFyIGluIGJ1aWxk ZGlyClBBU1M6IHQvaW5zdHNwYy50YXAgMjEgLSByaWdodHBhciBpbiBidWlsZGRpcgojW3N0ZGVy cl0rIGNhc2UgIiAkKiAiIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyBkaXJlY3Rp dmU9CiNbc3RkZXJyXSsgcmVhc29uPQojW3N0ZGVycl0rIHJlc3VsdF8gb2sgLUQgJycgLXIgJycg LS0gJ3JpZ2h0cGFyIGluIGJ1aWxkZGlyJwojW3N0ZGVycl0rIHNldCAreAojW3N0ZGVycl0rIGNk IC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIKI1tzdGRlcnJdKyBub3QgYW1f a2VlcGluZ190ZXN0ZGlycwojW3N0ZGVycl0rIGFtX2tlZXBpbmdfdGVzdGRpcnMKI1tzdGRlcnJd KyBjYXNlICRrZWVwX3Rlc3RkaXJzIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyB0 ZXN0IG9rID0gb2sKI1tzdGRlcnJdKyBybV9yZl8gJy4vKScgL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9kZXN0LXJpZ2h0cGFyCiNbc3RkZXJyXSsgdGVzdCAyIC1ndCAwCiNb c3RkZXJyXSsgY2htb2QgLVIgdStyd3ggJy4vKScgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LXJpZ2h0cGFyCiNbc3RkZXJyXSsgcm0gLXJmICcuLyknIC91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1yaWdodHBhcgojW3N0ZGVycl0rIF9h bV9ybXJmX3N0YXR1cz0wCiNbc3RkZXJyXSsgZm9yIF9hbV9ybXJmX3YgaW4gJyIkQCInCiNbc3Rk ZXJyXSsgdGVzdCAtZSAnLi8pJwojW3N0ZGVycl0rIGZvciBfYW1fcm1yZl92IGluICciJEAiJwoj W3N0ZGVycl0rIHRlc3QgLWUgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LXJpZ2h0cGFyCiNbc3RkZXJyXSsgcmV0dXJuIDAKI1tzdGRlcnJdKyA6IEZvciBzaGVsbHMg d2l0aCBidXN0ZWQgJ3NldCAtZS4nCiNbc3RkZXJyXSsgZm9yIHdoZXJlIGluIGJ1aWxkIGRlc3QK I1tzdGRlcnJdKyBjYXNlICR3aGVyZSBpbgojW3N0ZGVycl0rIGJ1aWxkPWJ1aWxkLXJpZ2h0cGFy CiNbc3RkZXJyXSsgZGVzdD0nL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LXJpZ2h0cGFyLyknCiNbc3RkZXJyXSsgbWtkaXIgYnVpbGQtcmlnaHRwYXIKI1tzdGRlcnJd KyBjZCBidWlsZC1yaWdodHBhcgojW3N0ZGVycl0rIHI9b2sKI1tzdGRlcnJdKyAuLi9jb25maWd1 cmUgLS1wcmVmaXggJy8pLXByZWZpeCcKY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5z dGFsbC4uLiAvdXNyL2Jpbi9pbnN0YWxsIC1jCmNoZWNraW5nIHdoZXRoZXIgc2xlZXAgc3VwcG9y dHMgZnJhY3Rpb25hbCBzZWNvbmRzLi4uIHllcwpjaGVja2luZyBmaWxlc3lzdGVtIHRpbWVzdGFt cCByZXNvbHV0aW9uLi4uIDAuMDEKY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBp cyBzYW5lLi4uIHllcwpjaGVja2luZyBmb3IgYSByYWNlLWZyZWUgbWtkaXIgLXAuLi4gbWtkaXIg LXAKY2hlY2tpbmcgZm9yIGdhd2suLi4gbm8KY2hlY2tpbmcgZm9yIG1hd2suLi4gbm8KY2hlY2tp bmcgZm9yIG5hd2suLi4gbm8KY2hlY2tpbmcgZm9yIGF3ay4uLiBhd2sKY2hlY2tpbmcgd2hldGhl ciBtYWtlIHNldHMgJChNQUtFKS4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRz IG5lc3RlZCB2YXJpYWJsZXMuLi4geWVzCmNoZWNraW5nIHhhcmdzIC1uIHdvcmtzLi4uIHllcwpj aGVja2luZyB3aGV0aGVyIFVJRCAnNTAxJyBpcyBzdXBwb3J0ZWQgYnkgdXN0YXIgZm9ybWF0Li4u IHllcwpjaGVja2luZyB3aGV0aGVyIEdJRCAnMjAnIGlzIHN1cHBvcnRlZCBieSB1c3RhciBmb3Jt YXQuLi4geWVzCmNoZWNraW5nIGhvdyB0byBjcmVhdGUgYSB1c3RhciB0YXIgYXJjaGl2ZS4uLiBw bGFpbnRhcgpjaGVja2luZyBmb3IgZ2NjLi4uIGdjYwpjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNv bXBpbGVyIHdvcmtzLi4uIHllcwpjaGVja2luZyBmb3IgQyBjb21waWxlciBkZWZhdWx0IG91dHB1 dCBmaWxlIG5hbWUuLi4gYS5vdXQKY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcy4u LiAKY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nLi4uIG5vCmNoZWNraW5n IGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzLi4uIG8KY2hlY2tpbmcgd2hldGhlciB0aGUgY29t cGlsZXIgc3VwcG9ydHMgR05VIEMuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgZ2NjIGFjY2VwdHMg LWcuLi4geWVzCmNoZWNraW5nIGZvciBnY2Mgb3B0aW9uIHRvIGVuYWJsZSBDMjMgZmVhdHVyZXMu Li4gLXN0ZD1nbnUyMwpjaGVja2luZyB3aGV0aGVyIGdjYyAtc3RkPWdudTIzIHVuZGVyc3RhbmRz IC1jIGFuZCAtbyB0b2dldGhlci4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRz IHRoZSBpbmNsdWRlIGRpcmVjdGl2ZS4uLiB5ZXMgKEdOVSBzdHlsZSkKY2hlY2tpbmcgZGVwZW5k ZW5jeSBzdHlsZSBvZiBnY2MgLXN0ZD1nbnUyMy4uLiBnY2MzCmNoZWNraW5nIGZvciBhci4uLiBh cgpjaGVja2luZyB0aGUgYXJjaGl2ZXIgKGFyKSBpbnRlcmZhY2UuLi4gYXIKY2hlY2tpbmcgZm9y IHJhbmxpYi4uLiByYW5saWIKY2hlY2tpbmcgdGhhdCBnZW5lcmF0ZWQgZmlsZXMgYXJlIG5ld2Vy IHRoYW4gY29uZmlndXJlLi4uIGRvbmUKY29uZmlndXJlOiBjcmVhdGluZyAuL2NvbmZpZy5zdGF0 dXMKY29uZmlnLnN0YXR1czogY3JlYXRpbmcgTWFrZWZpbGUKY29uZmlnLnN0YXR1czogZXhlY3V0 aW5nIGRlcGZpbGVzIGNvbW1hbmRzCiNbc3RkZXJyXSsgbWFrZSBhbGwKZ2NjIC1zdGQ9Z251MjMg LURQQUNLQUdFX05BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdFX1RBUk5BTUU9XCJpbnN0c3BjXCIg LURQQUNLQUdFX1ZFUlNJT049XCIxLjBcIiAtRFBBQ0tBR0VfU1RSSU5HPVwiaW5zdHNwY1wgMS4w XCIgLURQQUNLQUdFX0JVR1JFUE9SVD1cIlwiIC1EUEFDS0FHRV9VUkw9XCJcIiAtRFBBQ0tBR0U9 XCJpbnN0c3BjXCIgLURWRVJTSU9OPVwiMS4wXCIgLUkuIC1JLi4gICAgIC1nIC1PMiAtTVQgc291 cmNlLm8gLU1EIC1NUCAtTUYgLmRlcHMvc291cmNlLlRwbyAtYyAtbyBzb3VyY2UubyAuLi9zb3Vy Y2UuYwptdiAtZiAuZGVwcy9zb3VyY2UuVHBvIC5kZXBzL3NvdXJjZS5QbwpnY2MgLXN0ZD1nbnUy MyAgLWcgLU8yICAgLW8gc3ViL2Jhc2Ugc291cmNlLm8gIApnY2MgLXN0ZD1nbnUyMyAgLWcgLU8y ICAgLW8gc3ViL25vYmFzZSBzb3VyY2UubyAgCnJtIC1mIHN1Yi9saWJiYXNlLmEKYXIgY3Igc3Vi L2xpYmJhc2UuYSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJiYXNlLmEKcm0gLWYgc3ViL2xpYm5v YmFzZS5hCmFyIGNyIHN1Yi9saWJub2Jhc2UuYSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJub2Jh c2UuYQojW3N0ZGVycl0rIERFU1RESVI9Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1yaWdodHBhci8pJwojW3N0ZGVycl0rIGZpbGU9Jy4vKScKI1tzdGRlcnJdKyBt YWtlIHRlc3QtaW5zdAptYWtlWzFdOiBFbnRlcmluZyBkaXJlY3RvcnkgJy91c3IvbG9jYWwvc3Jj L2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvYnVpbGQtcmlnaHRwYXInCiBta2RpciAtcCAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJpZ2h0cGFyLykvKS1wcmVmaXgv Zm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAuLi9zdWIvYmFzZS5zaCAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJpZ2h0cGFyLykvKS1wcmVmaXgvZm9vJwogbWtk aXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1yaWdodHBh ci8pLyktcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICBzdWIvbGliYmFz ZS5hICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcmlnaHRwYXIv KS8pLXByZWZpeC9mb28nCiAoIGNkICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyL2Rlc3QtcmlnaHRwYXIvKS8pLXByZWZpeC9mb28nICYmIHJhbmxpYiBsaWJiYXNlLmEgKQog bWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1yaWdo dHBhci8pLyktcHJlZml4L2ZvbycKICAvdXNyL2Jpbi9pbnN0YWxsIC1jIHN1Yi9iYXNlICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcmlnaHRwYXIvKS8pLXByZWZp eC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LXJpZ2h0cGFyLykvKS1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1yaWdodHBhci8pLyktcHJlZml4L2Zvby9zdWIvJwog L3Vzci9iaW4vaW5zdGFsbCAtYyAuLi9zdWIvbm9iYXNlLnNoICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcmlnaHRwYXIvKS8pLXByZWZpeC9mb28vc3ViLycKIG1r ZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcmlnaHRw YXIvKS8pLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LXJpZ2h0cGFyLykvKS1wcmVmaXgvZm9vL3N1YicKIC91c3IvYmluL2lu c3RhbGwgLWMgLW0gNjQ0ICBzdWIvbGlibm9iYXNlLmEgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1yaWdodHBhci8pLyktcHJlZml4L2Zvby9zdWInCiAoIGNkICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcmlnaHRwYXIvKS8pLXBy ZWZpeC9mb28nICYmIHJhbmxpYiBzdWIvbGlibm9iYXNlLmEgKQogbWtkaXIgLXAgJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1yaWdodHBhci8pLyktcHJlZml4L2Zv bycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt cmlnaHRwYXIvKS8pLXByZWZpeC9mb28vc3ViLycKICAvdXNyL2Jpbi9pbnN0YWxsIC1jIHN1Yi9u b2Jhc2UgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1yaWdodHBh ci8pLyktcHJlZml4L2Zvby9zdWIvJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1yaWdodHBhci8pLyktcHJlZml4L2ZvbycKIC91c3IvYmluL2lu c3RhbGwgLWMgLW0gNjQ0IC4uL3N1Yi9iYXNlLmRhdCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXJpZ2h0cGFyLykvKS1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1yaWdodHBhci8pLyktcHJl Zml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0IC4uL3N1Yi9iYXNlLmggJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1yaWdodHBhci8pLyktcHJlZml4 L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rl c3QtcmlnaHRwYXIvKS8pLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJpZ2h0cGFyLykvKS1wcmVmaXgvZm9vL3N1YicKIC91 c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICAuLi9zdWIvbm9iYXNlLmRhdCAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJpZ2h0cGFyLykvKS1wcmVmaXgvZm9vL3N1 YicKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt cmlnaHRwYXIvKS8pLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9kZXN0LXJpZ2h0cGFyLykvKS1wcmVmaXgvZm9vL3N1YicKIC91c3Iv YmluL2luc3RhbGwgLWMgLW0gNjQ0ICAuLi9zdWIvbm9iYXNlLmggJy91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1yaWdodHBhci8pLyktcHJlZml4L2Zvby9zdWInCm1h a2VbMV06IExlYXZpbmcgZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2J1aWxkLXJpZ2h0cGFyJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1yaWdodHBhci8pLy4vKS1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2Uu aCcKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt cmlnaHRwYXIvKS8uLyktcHJlZml4L2Zvby9ub2Jhc2UuaCcKdGVzdCAgIC1mICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcmlnaHRwYXIvKS8uLyktcHJlZml4L2Zv by9iYXNlLmgnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LXJpZ2h0cGFyLykvLi8pLXByZWZpeC9mb28vc3ViL25vYmFzZS5kYXQnCnRlc3QgISAt ZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJpZ2h0cGFyLykv Li8pLXByZWZpeC9mb28vbm9iYXNlLmRhdCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcmlnaHRwYXIvKS8uLyktcHJlZml4L2Zvby9iYXNlLmRh dCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt cmlnaHRwYXIvKS8uLyktcHJlZml4L2Zvby9zdWIvbm9iYXNlLnNoJwp0ZXN0ICEgLWYgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1yaWdodHBhci8pLy4vKS1wcmVm aXgvZm9vL25vYmFzZS5zaCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtcmlnaHRwYXIvKS8uLyktcHJlZml4L2Zvby9iYXNlLnNoJwp0ZXN0ICAg LWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1yaWdodHBhci8p Ly4vKS1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2UnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJpZ2h0cGFyLykvLi8pLXByZWZpeC9mb28vbm9iYXNl Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1y aWdodHBhci8pLy4vKS1wcmVmaXgvZm9vL2Jhc2UnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJpZ2h0cGFyLykvLi8pLXByZWZpeC9mb28vc3Vi L2xpYm5vYmFzZS5hJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1yaWdodHBhci8pLy4vKS1wcmVmaXgvZm9vL2xpYm5vYmFzZS5hJwp0ZXN0ICAg LWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1yaWdodHBhci8p Ly4vKS1wcmVmaXgvZm9vL2xpYmJhc2UuYScKI1tzdGRlcnJdKyBkZXNjcmlwdGlvbj0ncmlnaHRw YXIgaW4gZGVzdGRpcicKI1tzdGRlcnJdKyBleHBlY3RlZF90b19mYWlsIGRlc3QgcmlnaHRwYXIK I1tzdGRlcnJdKyBjYXNlICQxIGluCm9rIDIyIC0gcmlnaHRwYXIgaW4gZGVzdGRpcgpQQVNTOiB0 L2luc3RzcGMudGFwIDIyIC0gcmlnaHRwYXIgaW4gZGVzdGRpcgojW3N0ZGVycl0rIGlzX2luX2xp c3QgcmlnaHRwYXIgc3F1b3RlIGRxdW90ZSBicXVvdGUgc2hhcnAgZG9sbGFyIGxpbmVmZWVkIGFf bGZfYgojW3N0ZGVycl0rIGl0ZW09cmlnaHRwYXIKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0r IGNhc2UgIiAkKiAiIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyBkaXJlY3RpdmU9 CiNbc3RkZXJyXSsgcmVhc29uPQojW3N0ZGVycl0rIHJlc3VsdF8gb2sgLUQgJycgLXIgJycgLS0g J3JpZ2h0cGFyIGluIGRlc3RkaXInCiNbc3RkZXJyXSsgc2V0ICt4CiNbc3RkZXJyXSsgY2QgL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpcgojW3N0ZGVycl0rIG5vdCBhbV9rZWVw aW5nX3Rlc3RkaXJzCiNbc3RkZXJyXSsgYW1fa2VlcGluZ190ZXN0ZGlycwojW3N0ZGVycl0rIGNh c2UgJGtlZXBfdGVzdGRpcnMgaW4KI1tzdGRlcnJdKyByZXR1cm4gMQojW3N0ZGVycl0rIHRlc3Qg b2sgPSBvawojW3N0ZGVycl0rIHJtX3JmXyBidWlsZC1yaWdodHBhciAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJpZ2h0cGFyLyknCiNbc3RkZXJyXSsgdGVzdCAy IC1ndCAwCiNbc3RkZXJyXSsgY2htb2QgLVIgdStyd3ggYnVpbGQtcmlnaHRwYXIgJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1yaWdodHBhci8pJwojW3N0ZGVycl0r IHJtIC1yZiBidWlsZC1yaWdodHBhciAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LXJpZ2h0cGFyLyknCiNbc3RkZXJyXSsgX2FtX3JtcmZfc3RhdHVzPTAKI1tzdGRl cnJdKyBmb3IgX2FtX3JtcmZfdiBpbiAnIiRAIicKI1tzdGRlcnJdKyB0ZXN0IC1lIGJ1aWxkLXJp Z2h0cGFyCiNbc3RkZXJyXSsgZm9yIF9hbV9ybXJmX3YgaW4gJyIkQCInCiNbc3RkZXJyXSsgdGVz dCAtZSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJpZ2h0cGFy LyknCiNbc3RkZXJyXSsgcmV0dXJuIDAKI1tzdGRlcnJdKyA6IEZvciBzaGVsbHMgd2l0aCBidXN0 ZWQgJ3NldCAtZS4nCiNbc3RkZXJyXSsgZm9yIHRlc3RfbmFtZSBpbiAnJHRlc3RfbmFtZXNfbGlz dCcKI1tzdGRlcnJdKyBldmFsICd0ZXN0X3N0cmluZz0ke2luc3RzcGNfX3BpcGV9JwojW3N0ZGVy cl0rKyB0ZXN0X3N0cmluZz0nfCcKI1tzdGRlcnJdKyB0ZXN0ICd4fCcgPSB4CiNbc3RkZXJyXSsg bWtkaXIgJy4vfCcKI1tzdGRlcnJdKyBjYXNlICR0ZXN0X3N0cmluZyBpbgojW3N0ZGVycl0rIGZv ciB3aGVyZSBpbiBidWlsZCBkZXN0CiNbc3RkZXJyXSsgY2FzZSAkd2hlcmUgaW4KI1tzdGRlcnJd KyBidWlsZD0nLi98JwojW3N0ZGVycl0rIGRlc3Q9L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LXBpcGUKI1tzdGRlcnJdKyBjZCAnLi98JwojW3N0ZGVycl0rIHI9b2sK I1tzdGRlcnJdKyAuLi9jb25maWd1cmUgLS1wcmVmaXggJy98LXByZWZpeCcKY2hlY2tpbmcgZm9y IGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbC4uLiAvdXNyL2Jpbi9pbnN0YWxsIC1jCmNoZWNraW5n IHdoZXRoZXIgc2xlZXAgc3VwcG9ydHMgZnJhY3Rpb25hbCBzZWNvbmRzLi4uIHllcwpjaGVja2lu ZyBmaWxlc3lzdGVtIHRpbWVzdGFtcCByZXNvbHV0aW9uLi4uIDAuMDEKY2hlY2tpbmcgd2hldGhl ciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lLi4uIHllcwpjaGVja2luZyBmb3IgYSByYWNlLWZy ZWUgbWtkaXIgLXAuLi4gbWtkaXIgLXAKY2hlY2tpbmcgZm9yIGdhd2suLi4gbm8KY2hlY2tpbmcg Zm9yIG1hd2suLi4gbm8KY2hlY2tpbmcgZm9yIG5hd2suLi4gbm8KY2hlY2tpbmcgZm9yIGF3ay4u LiBhd2sKY2hlY2tpbmcgd2hldGhlciBtYWtlIHNldHMgJChNQUtFKS4uLiB5ZXMKY2hlY2tpbmcg d2hldGhlciBtYWtlIHN1cHBvcnRzIG5lc3RlZCB2YXJpYWJsZXMuLi4geWVzCmNoZWNraW5nIHhh cmdzIC1uIHdvcmtzLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIFVJRCAnNTAxJyBpcyBzdXBwb3J0 ZWQgYnkgdXN0YXIgZm9ybWF0Li4uIHllcwpjaGVja2luZyB3aGV0aGVyIEdJRCAnMjAnIGlzIHN1 cHBvcnRlZCBieSB1c3RhciBmb3JtYXQuLi4geWVzCmNoZWNraW5nIGhvdyB0byBjcmVhdGUgYSB1 c3RhciB0YXIgYXJjaGl2ZS4uLiBwbGFpbnRhcgpjaGVja2luZyBmb3IgZ2NjLi4uIGdjYwpjaGVj a2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdvcmtzLi4uIHllcwpjaGVja2luZyBmb3IgQyBj b21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUuLi4gYS5vdXQKY2hlY2tpbmcgZm9yIHN1 ZmZpeCBvZiBleGVjdXRhYmxlcy4uLiAKY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29t cGlsaW5nLi4uIG5vCmNoZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzLi4uIG8KY2hl Y2tpbmcgd2hldGhlciB0aGUgY29tcGlsZXIgc3VwcG9ydHMgR05VIEMuLi4geWVzCmNoZWNraW5n IHdoZXRoZXIgZ2NjIGFjY2VwdHMgLWcuLi4geWVzCmNoZWNraW5nIGZvciBnY2Mgb3B0aW9uIHRv IGVuYWJsZSBDMjMgZmVhdHVyZXMuLi4gLXN0ZD1nbnUyMwpjaGVja2luZyB3aGV0aGVyIGdjYyAt c3RkPWdudTIzIHVuZGVyc3RhbmRzIC1jIGFuZCAtbyB0b2dldGhlci4uLiB5ZXMKY2hlY2tpbmcg d2hldGhlciBtYWtlIHN1cHBvcnRzIHRoZSBpbmNsdWRlIGRpcmVjdGl2ZS4uLiB5ZXMgKEdOVSBz dHlsZSkKY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiBnY2MgLXN0ZD1nbnUyMy4uLiBnY2Mz CmNoZWNraW5nIGZvciBhci4uLiBhcgpjaGVja2luZyB0aGUgYXJjaGl2ZXIgKGFyKSBpbnRlcmZh Y2UuLi4gYXIKY2hlY2tpbmcgZm9yIHJhbmxpYi4uLiByYW5saWIKY2hlY2tpbmcgdGhhdCBnZW5l cmF0ZWQgZmlsZXMgYXJlIG5ld2VyIHRoYW4gY29uZmlndXJlLi4uIGRvbmUKY29uZmlndXJlOiBj cmVhdGluZyAuL2NvbmZpZy5zdGF0dXMKY29uZmlnLnN0YXR1czogY3JlYXRpbmcgTWFrZWZpbGUK Y29uZmlnLnN0YXR1czogZXhlY3V0aW5nIGRlcGZpbGVzIGNvbW1hbmRzCiNbc3RkZXJyXSsgbWFr ZSBhbGwKZ2NjIC1zdGQ9Z251MjMgLURQQUNLQUdFX05BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdF X1RBUk5BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdFX1ZFUlNJT049XCIxLjBcIiAtRFBBQ0tBR0Vf U1RSSU5HPVwiaW5zdHNwY1wgMS4wXCIgLURQQUNLQUdFX0JVR1JFUE9SVD1cIlwiIC1EUEFDS0FH RV9VUkw9XCJcIiAtRFBBQ0tBR0U9XCJpbnN0c3BjXCIgLURWRVJTSU9OPVwiMS4wXCIgLUkuIC1J Li4gICAgIC1nIC1PMiAtTVQgc291cmNlLm8gLU1EIC1NUCAtTUYgLmRlcHMvc291cmNlLlRwbyAt YyAtbyBzb3VyY2UubyAuLi9zb3VyY2UuYwptdiAtZiAuZGVwcy9zb3VyY2UuVHBvIC5kZXBzL3Nv dXJjZS5QbwpnY2MgLXN0ZD1nbnUyMyAgLWcgLU8yICAgLW8gc3ViL2Jhc2Ugc291cmNlLm8gIApn Y2MgLXN0ZD1nbnUyMyAgLWcgLU8yICAgLW8gc3ViL25vYmFzZSBzb3VyY2UubyAgCnJtIC1mIHN1 Yi9saWJiYXNlLmEKYXIgY3Igc3ViL2xpYmJhc2UuYSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJi YXNlLmEKcm0gLWYgc3ViL2xpYm5vYmFzZS5hCmFyIGNyIHN1Yi9saWJub2Jhc2UuYSBzb3VyY2Uu byAKcmFubGliIHN1Yi9saWJub2Jhc2UuYQojW3N0ZGVycl0rIERFU1RESVI9L3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBpcGUKI1tzdGRlcnJdKyBmaWxlPScuL3wn CiNbc3RkZXJyXSsgbWFrZSB0ZXN0LWluc3QKbWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL3wnCiBta2RpciAtcCAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBpcGUvfC1wcmVmaXgvZm9vJwog L3Vzci9iaW4vaW5zdGFsbCAtYyAuLi9zdWIvYmFzZS5zaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9kZXN0LXBpcGUvfC1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1waXBlL3wtcHJlZml4L2ZvbycK IC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICBzdWIvbGliYmFzZS5hICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGlwZS98LXByZWZpeC9mb28nCiAoIGNkICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGlwZS98LXByZWZpeC9m b28nICYmIHJhbmxpYiBsaWJiYXNlLmEgKQogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1waXBlL3wtcHJlZml4L2ZvbycKICAvdXNyL2Jpbi9pbnN0 YWxsIC1jIHN1Yi9iYXNlICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rl c3QtcGlwZS98LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXBpcGUvfC1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1waXBlL3wtcHJlZml4L2Zvby9zdWIv JwogL3Vzci9iaW4vaW5zdGFsbCAtYyAuLi9zdWIvbm9iYXNlLnNoICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGlwZS98LXByZWZpeC9mb28vc3ViLycKIG1rZGly IC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGlwZS98LXBy ZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LXBpcGUvfC1wcmVmaXgvZm9vL3N1YicKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0 ICBzdWIvbGlibm9iYXNlLmEgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1waXBlL3wtcHJlZml4L2Zvby9zdWInCiAoIGNkICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtcGlwZS98LXByZWZpeC9mb28nICYmIHJhbmxpYiBzdWIvbGli bm9iYXNlLmEgKQogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1waXBlL3wtcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGlwZS98LXByZWZpeC9mb28vc3ViLycKICAvdXNyL2Jp bi9pbnN0YWxsIC1jIHN1Yi9ub2Jhc2UgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1waXBlL3wtcHJlZml4L2Zvby9zdWIvJwogbWtkaXIgLXAgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1waXBlL3wtcHJlZml4L2ZvbycKIC91c3Iv YmluL2luc3RhbGwgLWMgLW0gNjQ0IC4uL3N1Yi9iYXNlLmRhdCAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBpcGUvfC1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1waXBlL3wtcHJlZml4L2Zv bycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0IC4uL3N1Yi9iYXNlLmggJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1waXBlL3wtcHJlZml4L2ZvbycKIG1rZGly IC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGlwZS98LXBy ZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LXBpcGUvfC1wcmVmaXgvZm9vL3N1YicKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0 ICAuLi9zdWIvbm9iYXNlLmRhdCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LXBpcGUvfC1wcmVmaXgvZm9vL3N1YicKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGlwZS98LXByZWZpeC9mb28nCiBta2RpciAtcCAn L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBpcGUvfC1wcmVmaXgv Zm9vL3N1YicKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICAuLi9zdWIvbm9iYXNlLmggJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1waXBlL3wtcHJlZml4L2Zv by9zdWInCm1ha2VbMV06IExlYXZpbmcgZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL3wnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LXBpcGUvLi98LXByZWZpeC9mb28vc3ViL25vYmFzZS5oJwp0ZXN0ICEg LWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1waXBlLy4vfC1w cmVmaXgvZm9vL25vYmFzZS5oJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1waXBlLy4vfC1wcmVmaXgvZm9vL2Jhc2UuaCcKdGVzdCAgIC1mICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGlwZS8uL3wtcHJlZml4 L2Zvby9zdWIvbm9iYXNlLmRhdCcKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3QtcGlwZS8uL3wtcHJlZml4L2Zvby9ub2Jhc2UuZGF0Jwp0ZXN0ICAg LWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1waXBlLy4vfC1w cmVmaXgvZm9vL2Jhc2UuZGF0Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1waXBlLy4vfC1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2Uuc2gnCnRlc3Qg ISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBpcGUvLi98 LXByZWZpeC9mb28vbm9iYXNlLnNoJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1waXBlLy4vfC1wcmVmaXgvZm9vL2Jhc2Uuc2gnCnRlc3QgICAt ZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBpcGUvLi98LXBy ZWZpeC9mb28vc3ViL25vYmFzZScKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3QtcGlwZS8uL3wtcHJlZml4L2Zvby9ub2Jhc2UnCnRlc3QgICAtZiAn L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBpcGUvLi98LXByZWZp eC9mb28vYmFzZScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyL2Rlc3QtcGlwZS8uL3wtcHJlZml4L2Zvby9zdWIvbGlibm9iYXNlLmEnCnRlc3QgISAtZiAn L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBpcGUvLi98LXByZWZp eC9mb28vbGlibm9iYXNlLmEnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LXBpcGUvLi98LXByZWZpeC9mb28vbGliYmFzZS5hJwojW3N0ZGVycl0r IGRlc2NyaXB0aW9uPSdwaXBlIGluIGJ1aWxkZGlyJwojW3N0ZGVycl0rIGV4cGVjdGVkX3RvX2Zh aWwgYnVpbGQgcGlwZQojW3N0ZGVycl0rIGNhc2UgJDEgaW4KI1tzdGRlcnJdKyBpc19pbl9saXN0 IHBpcGUgc3F1b3RlIGRxdW90ZSBicXVvdGUgc2hhcnAgZG9sbGFyIGJzbGFzaCBhbXBlcnNhbmQg bGluZWZlZWQgcXVhZHJpZ3JhcGgwIGFfbGZfYgpvayAyMyAtIHBpcGUgaW4gYnVpbGRkaXIKUEFT UzogdC9pbnN0c3BjLnRhcCAyMyAtIHBpcGUgaW4gYnVpbGRkaXIKI1tzdGRlcnJdKyBpdGVtPXBp cGUKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNhc2UgIiAkKiAiIGluCiNbc3RkZXJyXSsg cmV0dXJuIDEKI1tzdGRlcnJdKyBkaXJlY3RpdmU9CiNbc3RkZXJyXSsgcmVhc29uPQojW3N0ZGVy cl0rIHJlc3VsdF8gb2sgLUQgJycgLXIgJycgLS0gJ3BpcGUgaW4gYnVpbGRkaXInCiNbc3RkZXJy XSsgc2V0ICt4CiNbc3RkZXJyXSsgY2QgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpcgojW3N0ZGVycl0rIG5vdCBhbV9rZWVwaW5nX3Rlc3RkaXJzCiNbc3RkZXJyXSsgYW1fa2Vl cGluZ190ZXN0ZGlycwojW3N0ZGVycl0rIGNhc2UgJGtlZXBfdGVzdGRpcnMgaW4KI1tzdGRlcnJd KyByZXR1cm4gMQojW3N0ZGVycl0rIHRlc3Qgb2sgPSBvawojW3N0ZGVycl0rIHJtX3JmXyAnLi98 JyAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGlwZQojW3N0ZGVy cl0rIHRlc3QgMiAtZ3QgMAojW3N0ZGVycl0rIGNobW9kIC1SIHUrcnd4ICcuL3wnIC91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1waXBlCiNbc3RkZXJyXSsgcm0gLXJm ICcuL3wnIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1waXBlCiNb c3RkZXJyXSsgX2FtX3JtcmZfc3RhdHVzPTAKI1tzdGRlcnJdKyBmb3IgX2FtX3JtcmZfdiBpbiAn IiRAIicKI1tzdGRlcnJdKyB0ZXN0IC1lICcuL3wnCiNbc3RkZXJyXSsgZm9yIF9hbV9ybXJmX3Yg aW4gJyIkQCInCiNbc3RkZXJyXSsgdGVzdCAtZSAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtcGlwZQojW3N0ZGVycl0rIHJldHVybiAwCiNbc3RkZXJyXSsgOiBGb3Ig c2hlbGxzIHdpdGggYnVzdGVkICdzZXQgLWUuJwojW3N0ZGVycl0rIGZvciB3aGVyZSBpbiBidWls ZCBkZXN0CiNbc3RkZXJyXSsgY2FzZSAkd2hlcmUgaW4KI1tzdGRlcnJdKyBidWlsZD1idWlsZC1w aXBlCiNbc3RkZXJyXSsgZGVzdD0nL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LXBpcGUvfCcKI1tzdGRlcnJdKyBta2RpciBidWlsZC1waXBlCiNbc3RkZXJyXSsgY2Qg YnVpbGQtcGlwZQojW3N0ZGVycl0rIHI9b2sKI1tzdGRlcnJdKyAuLi9jb25maWd1cmUgLS1wcmVm aXggJy98LXByZWZpeCcKY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbC4uLiAv dXNyL2Jpbi9pbnN0YWxsIC1jCmNoZWNraW5nIHdoZXRoZXIgc2xlZXAgc3VwcG9ydHMgZnJhY3Rp b25hbCBzZWNvbmRzLi4uIHllcwpjaGVja2luZyBmaWxlc3lzdGVtIHRpbWVzdGFtcCByZXNvbHV0 aW9uLi4uIDAuMDEKY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lLi4u IHllcwpjaGVja2luZyBmb3IgYSByYWNlLWZyZWUgbWtkaXIgLXAuLi4gbWtkaXIgLXAKY2hlY2tp bmcgZm9yIGdhd2suLi4gbm8KY2hlY2tpbmcgZm9yIG1hd2suLi4gbm8KY2hlY2tpbmcgZm9yIG5h d2suLi4gbm8KY2hlY2tpbmcgZm9yIGF3ay4uLiBhd2sKY2hlY2tpbmcgd2hldGhlciBtYWtlIHNl dHMgJChNQUtFKS4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRzIG5lc3RlZCB2 YXJpYWJsZXMuLi4geWVzCmNoZWNraW5nIHhhcmdzIC1uIHdvcmtzLi4uIHllcwpjaGVja2luZyB3 aGV0aGVyIFVJRCAnNTAxJyBpcyBzdXBwb3J0ZWQgYnkgdXN0YXIgZm9ybWF0Li4uIHllcwpjaGVj a2luZyB3aGV0aGVyIEdJRCAnMjAnIGlzIHN1cHBvcnRlZCBieSB1c3RhciBmb3JtYXQuLi4geWVz CmNoZWNraW5nIGhvdyB0byBjcmVhdGUgYSB1c3RhciB0YXIgYXJjaGl2ZS4uLiBwbGFpbnRhcgpj aGVja2luZyBmb3IgZ2NjLi4uIGdjYwpjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdv cmtzLi4uIHllcwpjaGVja2luZyBmb3IgQyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5h bWUuLi4gYS5vdXQKY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcy4uLiAKY2hlY2tp bmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nLi4uIG5vCmNoZWNraW5nIGZvciBzdWZm aXggb2Ygb2JqZWN0IGZpbGVzLi4uIG8KY2hlY2tpbmcgd2hldGhlciB0aGUgY29tcGlsZXIgc3Vw cG9ydHMgR05VIEMuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgZ2NjIGFjY2VwdHMgLWcuLi4geWVz CmNoZWNraW5nIGZvciBnY2Mgb3B0aW9uIHRvIGVuYWJsZSBDMjMgZmVhdHVyZXMuLi4gLXN0ZD1n bnUyMwpjaGVja2luZyB3aGV0aGVyIGdjYyAtc3RkPWdudTIzIHVuZGVyc3RhbmRzIC1jIGFuZCAt byB0b2dldGhlci4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRzIHRoZSBpbmNs dWRlIGRpcmVjdGl2ZS4uLiB5ZXMgKEdOVSBzdHlsZSkKY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHls ZSBvZiBnY2MgLXN0ZD1nbnUyMy4uLiBnY2MzCmNoZWNraW5nIGZvciBhci4uLiBhcgpjaGVja2lu ZyB0aGUgYXJjaGl2ZXIgKGFyKSBpbnRlcmZhY2UuLi4gYXIKY2hlY2tpbmcgZm9yIHJhbmxpYi4u LiByYW5saWIKY2hlY2tpbmcgdGhhdCBnZW5lcmF0ZWQgZmlsZXMgYXJlIG5ld2VyIHRoYW4gY29u ZmlndXJlLi4uIGRvbmUKY29uZmlndXJlOiBjcmVhdGluZyAuL2NvbmZpZy5zdGF0dXMKY29uZmln LnN0YXR1czogY3JlYXRpbmcgTWFrZWZpbGUKY29uZmlnLnN0YXR1czogZXhlY3V0aW5nIGRlcGZp bGVzIGNvbW1hbmRzCiNbc3RkZXJyXSsgbWFrZSBhbGwKZ2NjIC1zdGQ9Z251MjMgLURQQUNLQUdF X05BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdFX1RBUk5BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdF X1ZFUlNJT049XCIxLjBcIiAtRFBBQ0tBR0VfU1RSSU5HPVwiaW5zdHNwY1wgMS4wXCIgLURQQUNL QUdFX0JVR1JFUE9SVD1cIlwiIC1EUEFDS0FHRV9VUkw9XCJcIiAtRFBBQ0tBR0U9XCJpbnN0c3Bj XCIgLURWRVJTSU9OPVwiMS4wXCIgLUkuIC1JLi4gICAgIC1nIC1PMiAtTVQgc291cmNlLm8gLU1E IC1NUCAtTUYgLmRlcHMvc291cmNlLlRwbyAtYyAtbyBzb3VyY2UubyAuLi9zb3VyY2UuYwptdiAt ZiAuZGVwcy9zb3VyY2UuVHBvIC5kZXBzL3NvdXJjZS5QbwpnY2MgLXN0ZD1nbnUyMyAgLWcgLU8y ICAgLW8gc3ViL2Jhc2Ugc291cmNlLm8gIApnY2MgLXN0ZD1nbnUyMyAgLWcgLU8yICAgLW8gc3Vi L25vYmFzZSBzb3VyY2UubyAgCnJtIC1mIHN1Yi9saWJiYXNlLmEKYXIgY3Igc3ViL2xpYmJhc2Uu YSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJiYXNlLmEKcm0gLWYgc3ViL2xpYm5vYmFzZS5hCmFy IGNyIHN1Yi9saWJub2Jhc2UuYSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJub2Jhc2UuYQojW3N0 ZGVycl0rIERFU1RESVI9Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC1waXBlL3wnCiNbc3RkZXJyXSsgZmlsZT0nLi98JwojW3N0ZGVycl0rIG1ha2UgdGVzdC1pbnN0 Cm1ha2VbMV06IEVudGVyaW5nIGRpcmVjdG9yeSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9idWlsZC1waXBlJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1waXBlL3wvfC1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFs bCAtYyAuLi9zdWIvYmFzZS5zaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LXBpcGUvfC98LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBpcGUvfC98LXByZWZpeC9mb28nCiAvdXNyL2Jpbi9p bnN0YWxsIC1jIC1tIDY0NCAgc3ViL2xpYmJhc2UuYSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXBpcGUvfC98LXByZWZpeC9mb28nCiAoIGNkICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGlwZS98L3wtcHJlZml4L2ZvbycgJiYg cmFubGliIGxpYmJhc2UuYSApCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LXBpcGUvfC98LXByZWZpeC9mb28nCiAgL3Vzci9iaW4vaW5zdGFsbCAt YyBzdWIvYmFzZSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBp cGUvfC98LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LXBpcGUvfC98LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBpcGUvfC98LXByZWZpeC9mb28vc3Vi LycKIC91c3IvYmluL2luc3RhbGwgLWMgLi4vc3ViL25vYmFzZS5zaCAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBpcGUvfC98LXByZWZpeC9mb28vc3ViLycKIG1r ZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGlwZS98 L3wtcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtcGlwZS98L3wtcHJlZml4L2Zvby9zdWInCiAvdXNyL2Jpbi9pbnN0YWxsIC1j IC1tIDY0NCAgc3ViL2xpYm5vYmFzZS5hICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtcGlwZS98L3wtcHJlZml4L2Zvby9zdWInCiAoIGNkICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGlwZS98L3wtcHJlZml4L2ZvbycgJiYgcmFu bGliIHN1Yi9saWJub2Jhc2UuYSApCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXBpcGUvfC98LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBpcGUvfC98LXByZWZpeC9mb28v c3ViLycKICAvdXNyL2Jpbi9pbnN0YWxsIC1jIHN1Yi9ub2Jhc2UgJy91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1waXBlL3wvfC1wcmVmaXgvZm9vL3N1Yi8nCiBta2Rp ciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBpcGUvfC98 LXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAuLi9zdWIvYmFzZS5kYXQg Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1waXBlL3wvfC1wcmVm aXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1waXBlL3wvfC1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgLi4v c3ViL2Jhc2UuaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBp cGUvfC98LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LXBpcGUvfC98LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBpcGUvfC98LXByZWZpeC9mb28vc3Vi JwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIC4uL3N1Yi9ub2Jhc2UuZGF0ICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGlwZS98L3wtcHJlZml4L2Zvby9z dWInCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LXBpcGUvfC98LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXBpcGUvfC98LXByZWZpeC9mb28vc3ViJwogL3Vzci9iaW4vaW5z dGFsbCAtYyAtbSA2NDQgIC4uL3N1Yi9ub2Jhc2UuaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXBpcGUvfC98LXByZWZpeC9mb28vc3ViJwptYWtlWzFdOiBMZWF2 aW5nIGRpcmVjdG9yeSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9idWls ZC1waXBlJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1waXBlL3wvLi98LXByZWZpeC9mb28vc3ViL25vYmFzZS5oJwp0ZXN0ICEgLWYgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1waXBlL3wvLi98LXByZWZpeC9m b28vbm9iYXNlLmgnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LXBpcGUvfC8uL3wtcHJlZml4L2Zvby9iYXNlLmgnCnRlc3QgICAtZiAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBpcGUvfC8uL3wtcHJlZml4L2Zv by9zdWIvbm9iYXNlLmRhdCcKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtcGlwZS98Ly4vfC1wcmVmaXgvZm9vL25vYmFzZS5kYXQnCnRlc3QgICAt ZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBpcGUvfC8uL3wt cHJlZml4L2Zvby9iYXNlLmRhdCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3QtcGlwZS98Ly4vfC1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2Uuc2gnCnRl c3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBpcGUv fC8uL3wtcHJlZml4L2Zvby9ub2Jhc2Uuc2gnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBpcGUvfC8uL3wtcHJlZml4L2Zvby9iYXNlLnNoJwp0 ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1waXBl L3wvLi98LXByZWZpeC9mb28vc3ViL25vYmFzZScKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGlwZS98Ly4vfC1wcmVmaXgvZm9vL25vYmFzZScK dGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGlw ZS98Ly4vfC1wcmVmaXgvZm9vL2Jhc2UnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9kZXN0LXBpcGUvfC8uL3wtcHJlZml4L2Zvby9zdWIvbGlibm9iYXNl LmEnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LXBpcGUvfC8uL3wtcHJlZml4L2Zvby9saWJub2Jhc2UuYScKdGVzdCAgIC1mICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGlwZS98Ly4vfC1wcmVmaXgvZm9vL2xp YmJhc2UuYScKI1tzdGRlcnJdKyBkZXNjcmlwdGlvbj0ncGlwZSBpbiBkZXN0ZGlyJwojW3N0ZGVy cl0rIGV4cGVjdGVkX3RvX2ZhaWwgZGVzdCBwaXBlCiNbc3RkZXJyXSsgY2FzZSAkMSBpbgojW3N0 ZGVycl0rIGlzX2luX2xpc3QgcGlwZSBzcXVvdGUgZHF1b3RlIGJxdW90ZSBzaGFycCBkb2xsYXIg bGluZWZlZWQgYV9sZl9iCiNbc3RkZXJyXSsgaXRlbT1waXBlCiNbc3RkZXJyXSsgc2hpZnQKI1tz dGRlcnJdKyBjYXNlICIgJCogIiBpbgpvayAyNCAtIHBpcGUgaW4gZGVzdGRpcgpQQVNTOiB0L2lu c3RzcGMudGFwIDI0IC0gcGlwZSBpbiBkZXN0ZGlyCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRl cnJdKyBkaXJlY3RpdmU9CiNbc3RkZXJyXSsgcmVhc29uPQojW3N0ZGVycl0rIHJlc3VsdF8gb2sg LUQgJycgLXIgJycgLS0gJ3BpcGUgaW4gZGVzdGRpcicKI1tzdGRlcnJdKyBzZXQgK3gKI1tzdGRl cnJdKyBjZCAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyCiNbc3RkZXJyXSsg bm90IGFtX2tlZXBpbmdfdGVzdGRpcnMKI1tzdGRlcnJdKyBhbV9rZWVwaW5nX3Rlc3RkaXJzCiNb c3RkZXJyXSsgY2FzZSAka2VlcF90ZXN0ZGlycyBpbgojW3N0ZGVycl0rIHJldHVybiAxCiNbc3Rk ZXJyXSsgdGVzdCBvayA9IG9rCiNbc3RkZXJyXSsgcm1fcmZfIGJ1aWxkLXBpcGUgJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1waXBlL3wnCiNbc3RkZXJyXSsgdGVz dCAyIC1ndCAwCiNbc3RkZXJyXSsgY2htb2QgLVIgdStyd3ggYnVpbGQtcGlwZSAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBpcGUvfCcKI1tzdGRlcnJdKyBybSAt cmYgYnVpbGQtcGlwZSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LXBpcGUvfCcKI1tzdGRlcnJdKyBfYW1fcm1yZl9zdGF0dXM9MAojW3N0ZGVycl0rIGZvciBfYW1f cm1yZl92IGluICciJEAiJwojW3N0ZGVycl0rIHRlc3QgLWUgYnVpbGQtcGlwZQojW3N0ZGVycl0r IGZvciBfYW1fcm1yZl92IGluICciJEAiJwojW3N0ZGVycl0rIHRlc3QgLWUgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1waXBlL3wnCiNbc3RkZXJyXSsgcmV0dXJu IDAKI1tzdGRlcnJdKyA6IEZvciBzaGVsbHMgd2l0aCBidXN0ZWQgJ3NldCAtZS4nCiNbc3RkZXJy XSsgZm9yIHRlc3RfbmFtZSBpbiAnJHRlc3RfbmFtZXNfbGlzdCcKI1tzdGRlcnJdKyBldmFsICd0 ZXN0X3N0cmluZz0ke2luc3RzcGNfX2NhcmV0fScKI1tzdGRlcnJdKysgdGVzdF9zdHJpbmc9J14n CiNbc3RkZXJyXSsgdGVzdCAneF4nID0geAojW3N0ZGVycl0rIG1rZGlyICcuL14nCiNbc3RkZXJy XSsgY2FzZSAkdGVzdF9zdHJpbmcgaW4KI1tzdGRlcnJdKyBmb3Igd2hlcmUgaW4gYnVpbGQgZGVz dAojW3N0ZGVycl0rIGNhc2UgJHdoZXJlIGluCiNbc3RkZXJyXSsgYnVpbGQ9Jy4vXicKI1tzdGRl cnJdKyBkZXN0PS91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jYXJl dAojW3N0ZGVycl0rIGNkICcuL14nCiNbc3RkZXJyXSsgcj1vawojW3N0ZGVycl0rIC4uL2NvbmZp Z3VyZSAtLXByZWZpeCAnL14tcHJlZml4JwpjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBp bnN0YWxsLi4uIC91c3IvYmluL2luc3RhbGwgLWMKY2hlY2tpbmcgd2hldGhlciBzbGVlcCBzdXBw b3J0cyBmcmFjdGlvbmFsIHNlY29uZHMuLi4geWVzCmNoZWNraW5nIGZpbGVzeXN0ZW0gdGltZXN0 YW1wIHJlc29sdXRpb24uLi4gMC4wMQpjaGVja2luZyB3aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50 IGlzIHNhbmUuLi4geWVzCmNoZWNraW5nIGZvciBhIHJhY2UtZnJlZSBta2RpciAtcC4uLiBta2Rp ciAtcApjaGVja2luZyBmb3IgZ2F3ay4uLiBubwpjaGVja2luZyBmb3IgbWF3ay4uLiBubwpjaGVj a2luZyBmb3IgbmF3ay4uLiBubwpjaGVja2luZyBmb3IgYXdrLi4uIGF3awpjaGVja2luZyB3aGV0 aGVyIG1ha2Ugc2V0cyAkKE1BS0UpLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIG1ha2Ugc3VwcG9y dHMgbmVzdGVkIHZhcmlhYmxlcy4uLiB5ZXMKY2hlY2tpbmcgeGFyZ3MgLW4gd29ya3MuLi4geWVz CmNoZWNraW5nIHdoZXRoZXIgVUlEICc1MDEnIGlzIHN1cHBvcnRlZCBieSB1c3RhciBmb3JtYXQu Li4geWVzCmNoZWNraW5nIHdoZXRoZXIgR0lEICcyMCcgaXMgc3VwcG9ydGVkIGJ5IHVzdGFyIGZv cm1hdC4uLiB5ZXMKY2hlY2tpbmcgaG93IHRvIGNyZWF0ZSBhIHVzdGFyIHRhciBhcmNoaXZlLi4u IHBsYWludGFyCmNoZWNraW5nIGZvciBnY2MuLi4gZ2NjCmNoZWNraW5nIHdoZXRoZXIgdGhlIEMg Y29tcGlsZXIgd29ya3MuLi4geWVzCmNoZWNraW5nIGZvciBDIGNvbXBpbGVyIGRlZmF1bHQgb3V0 cHV0IGZpbGUgbmFtZS4uLiBhLm91dApjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVz Li4uIApjaGVja2luZyB3aGV0aGVyIHdlIGFyZSBjcm9zcyBjb21waWxpbmcuLi4gbm8KY2hlY2tp bmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMuLi4gbwpjaGVja2luZyB3aGV0aGVyIHRoZSBj b21waWxlciBzdXBwb3J0cyBHTlUgQy4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBnY2MgYWNjZXB0 cyAtZy4uLiB5ZXMKY2hlY2tpbmcgZm9yIGdjYyBvcHRpb24gdG8gZW5hYmxlIEMyMyBmZWF0dXJl cy4uLiAtc3RkPWdudTIzCmNoZWNraW5nIHdoZXRoZXIgZ2NjIC1zdGQ9Z251MjMgdW5kZXJzdGFu ZHMgLWMgYW5kIC1vIHRvZ2V0aGVyLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIG1ha2Ugc3VwcG9y dHMgdGhlIGluY2x1ZGUgZGlyZWN0aXZlLi4uIHllcyAoR05VIHN0eWxlKQpjaGVja2luZyBkZXBl bmRlbmN5IHN0eWxlIG9mIGdjYyAtc3RkPWdudTIzLi4uIGdjYzMKY2hlY2tpbmcgZm9yIGFyLi4u IGFyCmNoZWNraW5nIHRoZSBhcmNoaXZlciAoYXIpIGludGVyZmFjZS4uLiBhcgpjaGVja2luZyBm b3IgcmFubGliLi4uIHJhbmxpYgpjaGVja2luZyB0aGF0IGdlbmVyYXRlZCBmaWxlcyBhcmUgbmV3 ZXIgdGhhbiBjb25maWd1cmUuLi4gZG9uZQpjb25maWd1cmU6IGNyZWF0aW5nIC4vY29uZmlnLnN0 YXR1cwpjb25maWcuc3RhdHVzOiBjcmVhdGluZyBNYWtlZmlsZQpjb25maWcuc3RhdHVzOiBleGVj dXRpbmcgZGVwZmlsZXMgY29tbWFuZHMKI1tzdGRlcnJdKyBtYWtlIGFsbApnY2MgLXN0ZD1nbnUy MyAtRFBBQ0tBR0VfTkFNRT1cImluc3RzcGNcIiAtRFBBQ0tBR0VfVEFSTkFNRT1cImluc3RzcGNc IiAtRFBBQ0tBR0VfVkVSU0lPTj1cIjEuMFwiIC1EUEFDS0FHRV9TVFJJTkc9XCJpbnN0c3BjXCAx LjBcIiAtRFBBQ0tBR0VfQlVHUkVQT1JUPVwiXCIgLURQQUNLQUdFX1VSTD1cIlwiIC1EUEFDS0FH RT1cImluc3RzcGNcIiAtRFZFUlNJT049XCIxLjBcIiAtSS4gLUkuLiAgICAgLWcgLU8yIC1NVCBz b3VyY2UubyAtTUQgLU1QIC1NRiAuZGVwcy9zb3VyY2UuVHBvIC1jIC1vIHNvdXJjZS5vIC4uL3Nv dXJjZS5jCm12IC1mIC5kZXBzL3NvdXJjZS5UcG8gLmRlcHMvc291cmNlLlBvCmdjYyAtc3RkPWdu dTIzICAtZyAtTzIgICAtbyBzdWIvYmFzZSBzb3VyY2UubyAgCmdjYyAtc3RkPWdudTIzICAtZyAt TzIgICAtbyBzdWIvbm9iYXNlIHNvdXJjZS5vICAKcm0gLWYgc3ViL2xpYmJhc2UuYQphciBjciBz dWIvbGliYmFzZS5hIHNvdXJjZS5vIApyYW5saWIgc3ViL2xpYmJhc2UuYQpybSAtZiBzdWIvbGli bm9iYXNlLmEKYXIgY3Igc3ViL2xpYm5vYmFzZS5hIHNvdXJjZS5vIApyYW5saWIgc3ViL2xpYm5v YmFzZS5hCiNbc3RkZXJyXSsgREVTVERJUj0vdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtY2FyZXQKI1tzdGRlcnJdKyBmaWxlPScuL14nCiNbc3RkZXJyXSsgbWFrZSB0 ZXN0LWluc3QKbWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL14nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LWNhcmV0L14tcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwg LWMgLi4vc3ViL2Jhc2Uuc2ggJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1jYXJldC9eLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9kZXN0LWNhcmV0L14tcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3Rh bGwgLWMgLW0gNjQ0ICBzdWIvbGliYmFzZS5hICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtY2FyZXQvXi1wcmVmaXgvZm9vJwogKCBjZCAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNhcmV0L14tcHJlZml4L2ZvbycgJiYgcmFubGli IGxpYmJhc2UuYSApCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LWNhcmV0L14tcHJlZml4L2ZvbycKICAvdXNyL2Jpbi9pbnN0YWxsIC1jIHN1Yi9i YXNlICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY2FyZXQvXi1w cmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1jYXJldC9eLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNhcmV0L14tcHJlZml4L2Zvby9zdWIvJwogL3Vzci9i aW4vaW5zdGFsbCAtYyAuLi9zdWIvbm9iYXNlLnNoICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3QtY2FyZXQvXi1wcmVmaXgvZm9vL3N1Yi8nCiBta2RpciAtcCAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNhcmV0L14tcHJlZml4L2Zv bycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt Y2FyZXQvXi1wcmVmaXgvZm9vL3N1YicKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICBzdWIv bGlibm9iYXNlLmEgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1j YXJldC9eLXByZWZpeC9mb28vc3ViJwogKCBjZCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LWNhcmV0L14tcHJlZml4L2ZvbycgJiYgcmFubGliIHN1Yi9saWJub2Jh c2UuYSApCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LWNhcmV0L14tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtY2FyZXQvXi1wcmVmaXgvZm9vL3N1Yi8nCiAgL3Vzci9iaW4v aW5zdGFsbCAtYyBzdWIvbm9iYXNlICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyL2Rlc3QtY2FyZXQvXi1wcmVmaXgvZm9vL3N1Yi8nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNhcmV0L14tcHJlZml4L2ZvbycKIC91c3Iv YmluL2luc3RhbGwgLWMgLW0gNjQ0IC4uL3N1Yi9iYXNlLmRhdCAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNhcmV0L14tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY2FyZXQvXi1wcmVmaXgv Zm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgLi4vc3ViL2Jhc2UuaCAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNhcmV0L14tcHJlZml4L2ZvbycKIG1r ZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY2FyZXQv Xi1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1jYXJldC9eLXByZWZpeC9mb28vc3ViJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAt bSA2NDQgIC4uL3N1Yi9ub2Jhc2UuZGF0ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtY2FyZXQvXi1wcmVmaXgvZm9vL3N1YicKIG1rZGlyIC1wICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY2FyZXQvXi1wcmVmaXgvZm9vJwogbWtk aXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jYXJldC9e LXByZWZpeC9mb28vc3ViJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIC4uL3N1Yi9ub2Jh c2UuaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNhcmV0L14t cHJlZml4L2Zvby9zdWInCm1ha2VbMV06IExlYXZpbmcgZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL14nCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNhcmV0Ly4vXi1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2Uu aCcKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt Y2FyZXQvLi9eLXByZWZpeC9mb28vbm9iYXNlLmgnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNhcmV0Ly4vXi1wcmVmaXgvZm9vL2Jhc2UuaCcK dGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY2Fy ZXQvLi9eLXByZWZpeC9mb28vc3ViL25vYmFzZS5kYXQnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNhcmV0Ly4vXi1wcmVmaXgvZm9vL25vYmFz ZS5kYXQnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LWNhcmV0Ly4vXi1wcmVmaXgvZm9vL2Jhc2UuZGF0Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jYXJldC8uL14tcHJlZml4L2Zvby9zdWIv bm9iYXNlLnNoJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1jYXJldC8uL14tcHJlZml4L2Zvby9ub2Jhc2Uuc2gnCnRlc3QgICAtZiAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNhcmV0Ly4vXi1wcmVmaXgvZm9v L2Jhc2Uuc2gnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LWNhcmV0Ly4vXi1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2UnCnRlc3QgISAtZiAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNhcmV0Ly4vXi1wcmVmaXgvZm9v L25vYmFzZScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtY2FyZXQvLi9eLXByZWZpeC9mb28vYmFzZScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY2FyZXQvLi9eLXByZWZpeC9mb28vc3ViL2xp Ym5vYmFzZS5hJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1jYXJldC8uL14tcHJlZml4L2Zvby9saWJub2Jhc2UuYScKdGVzdCAgIC1mICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY2FyZXQvLi9eLXByZWZpeC9m b28vbGliYmFzZS5hJwojW3N0ZGVycl0rIGRlc2NyaXB0aW9uPSdjYXJldCBpbiBidWlsZGRpcicK I1tzdGRlcnJdKyBleHBlY3RlZF90b19mYWlsIGJ1aWxkIGNhcmV0CiNbc3RkZXJyXSsgY2FzZSAk MSBpbgojW3N0ZGVycl0rIGlzX2luX2xpc3QgY2FyZXQgc3F1b3RlIGRxdW90ZSBicXVvdGUgc2hh cnAgZG9sbGFyIGJzbGFzaCBhbXBlcnNhbmQgbGluZWZlZWQgcXVhZHJpZ3JhcGgwIGFfbGZfYgoj W3N0ZGVycl0rIGl0ZW09Y2FyZXQKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNhc2UgIiAk KiAiIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyBkaXJlY3RpdmU9CiNbc3RkZXJy XSsgcmVhc29uPQojW3N0ZGVycl0rIHJlc3VsdF8gb2sgLUQgJycgLXIgJycgLS0gJ2NhcmV0IGlu IGJ1aWxkZGlyJwpvayAyNSAtIGNhcmV0IGluIGJ1aWxkZGlyClBBU1M6IHQvaW5zdHNwYy50YXAg MjUgLSBjYXJldCBpbiBidWlsZGRpcgojW3N0ZGVycl0rIHNldCAreAojW3N0ZGVycl0rIGNkIC91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIKI1tzdGRlcnJdKyBub3QgYW1fa2Vl cGluZ190ZXN0ZGlycwojW3N0ZGVycl0rIGFtX2tlZXBpbmdfdGVzdGRpcnMKI1tzdGRlcnJdKyBj YXNlICRrZWVwX3Rlc3RkaXJzIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyB0ZXN0 IG9rID0gb2sKI1tzdGRlcnJdKyBybV9yZl8gJy4vXicgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LWNhcmV0CiNbc3RkZXJyXSsgdGVzdCAyIC1ndCAwCiNbc3RkZXJy XSsgY2htb2QgLVIgdStyd3ggJy4vXicgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LWNhcmV0CiNbc3RkZXJyXSsgcm0gLXJmICcuL14nIC91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jYXJldAojW3N0ZGVycl0rIF9hbV9ybXJmX3N0YXR1 cz0wCiNbc3RkZXJyXSsgZm9yIF9hbV9ybXJmX3YgaW4gJyIkQCInCiNbc3RkZXJyXSsgdGVzdCAt ZSAnLi9eJwojW3N0ZGVycl0rIGZvciBfYW1fcm1yZl92IGluICciJEAiJwojW3N0ZGVycl0rIHRl c3QgLWUgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNhcmV0CiNb c3RkZXJyXSsgcmV0dXJuIDAKI1tzdGRlcnJdKyA6IEZvciBzaGVsbHMgd2l0aCBidXN0ZWQgJ3Nl dCAtZS4nCiNbc3RkZXJyXSsgZm9yIHdoZXJlIGluIGJ1aWxkIGRlc3QKI1tzdGRlcnJdKyBjYXNl ICR3aGVyZSBpbgojW3N0ZGVycl0rIGJ1aWxkPWJ1aWxkLWNhcmV0CiNbc3RkZXJyXSsgZGVzdD0n L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNhcmV0L14nCiNbc3Rk ZXJyXSsgbWtkaXIgYnVpbGQtY2FyZXQKI1tzdGRlcnJdKyBjZCBidWlsZC1jYXJldAojW3N0ZGVy cl0rIHI9b2sKI1tzdGRlcnJdKyAuLi9jb25maWd1cmUgLS1wcmVmaXggJy9eLXByZWZpeCcKY2hl Y2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbC4uLiAvdXNyL2Jpbi9pbnN0YWxsIC1j CmNoZWNraW5nIHdoZXRoZXIgc2xlZXAgc3VwcG9ydHMgZnJhY3Rpb25hbCBzZWNvbmRzLi4uIHll cwpjaGVja2luZyBmaWxlc3lzdGVtIHRpbWVzdGFtcCByZXNvbHV0aW9uLi4uIDAuMDEKY2hlY2tp bmcgd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lLi4uIHllcwpjaGVja2luZyBmb3Ig YSByYWNlLWZyZWUgbWtkaXIgLXAuLi4gbWtkaXIgLXAKY2hlY2tpbmcgZm9yIGdhd2suLi4gbm8K Y2hlY2tpbmcgZm9yIG1hd2suLi4gbm8KY2hlY2tpbmcgZm9yIG5hd2suLi4gbm8KY2hlY2tpbmcg Zm9yIGF3ay4uLiBhd2sKY2hlY2tpbmcgd2hldGhlciBtYWtlIHNldHMgJChNQUtFKS4uLiB5ZXMK Y2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRzIG5lc3RlZCB2YXJpYWJsZXMuLi4geWVzCmNo ZWNraW5nIHhhcmdzIC1uIHdvcmtzLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIFVJRCAnNTAxJyBp cyBzdXBwb3J0ZWQgYnkgdXN0YXIgZm9ybWF0Li4uIHllcwpjaGVja2luZyB3aGV0aGVyIEdJRCAn MjAnIGlzIHN1cHBvcnRlZCBieSB1c3RhciBmb3JtYXQuLi4geWVzCmNoZWNraW5nIGhvdyB0byBj cmVhdGUgYSB1c3RhciB0YXIgYXJjaGl2ZS4uLiBwbGFpbnRhcgpjaGVja2luZyBmb3IgZ2NjLi4u IGdjYwpjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdvcmtzLi4uIHllcwpjaGVja2lu ZyBmb3IgQyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUuLi4gYS5vdXQKY2hlY2tp bmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcy4uLiAKY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUg Y3Jvc3MgY29tcGlsaW5nLi4uIG5vCmNoZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVz Li4uIG8KY2hlY2tpbmcgd2hldGhlciB0aGUgY29tcGlsZXIgc3VwcG9ydHMgR05VIEMuLi4geWVz CmNoZWNraW5nIHdoZXRoZXIgZ2NjIGFjY2VwdHMgLWcuLi4geWVzCmNoZWNraW5nIGZvciBnY2Mg b3B0aW9uIHRvIGVuYWJsZSBDMjMgZmVhdHVyZXMuLi4gLXN0ZD1nbnUyMwpjaGVja2luZyB3aGV0 aGVyIGdjYyAtc3RkPWdudTIzIHVuZGVyc3RhbmRzIC1jIGFuZCAtbyB0b2dldGhlci4uLiB5ZXMK Y2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRzIHRoZSBpbmNsdWRlIGRpcmVjdGl2ZS4uLiB5 ZXMgKEdOVSBzdHlsZSkKY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiBnY2MgLXN0ZD1nbnUy My4uLiBnY2MzCmNoZWNraW5nIGZvciBhci4uLiBhcgpjaGVja2luZyB0aGUgYXJjaGl2ZXIgKGFy KSBpbnRlcmZhY2UuLi4gYXIKY2hlY2tpbmcgZm9yIHJhbmxpYi4uLiByYW5saWIKY2hlY2tpbmcg dGhhdCBnZW5lcmF0ZWQgZmlsZXMgYXJlIG5ld2VyIHRoYW4gY29uZmlndXJlLi4uIGRvbmUKY29u ZmlndXJlOiBjcmVhdGluZyAuL2NvbmZpZy5zdGF0dXMKY29uZmlnLnN0YXR1czogY3JlYXRpbmcg TWFrZWZpbGUKY29uZmlnLnN0YXR1czogZXhlY3V0aW5nIGRlcGZpbGVzIGNvbW1hbmRzCiNbc3Rk ZXJyXSsgbWFrZSBhbGwKZ2NjIC1zdGQ9Z251MjMgLURQQUNLQUdFX05BTUU9XCJpbnN0c3BjXCIg LURQQUNLQUdFX1RBUk5BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdFX1ZFUlNJT049XCIxLjBcIiAt RFBBQ0tBR0VfU1RSSU5HPVwiaW5zdHNwY1wgMS4wXCIgLURQQUNLQUdFX0JVR1JFUE9SVD1cIlwi IC1EUEFDS0FHRV9VUkw9XCJcIiAtRFBBQ0tBR0U9XCJpbnN0c3BjXCIgLURWRVJTSU9OPVwiMS4w XCIgLUkuIC1JLi4gICAgIC1nIC1PMiAtTVQgc291cmNlLm8gLU1EIC1NUCAtTUYgLmRlcHMvc291 cmNlLlRwbyAtYyAtbyBzb3VyY2UubyAuLi9zb3VyY2UuYwptdiAtZiAuZGVwcy9zb3VyY2UuVHBv IC5kZXBzL3NvdXJjZS5QbwpnY2MgLXN0ZD1nbnUyMyAgLWcgLU8yICAgLW8gc3ViL2Jhc2Ugc291 cmNlLm8gIApnY2MgLXN0ZD1nbnUyMyAgLWcgLU8yICAgLW8gc3ViL25vYmFzZSBzb3VyY2UubyAg CnJtIC1mIHN1Yi9saWJiYXNlLmEKYXIgY3Igc3ViL2xpYmJhc2UuYSBzb3VyY2UubyAKcmFubGli IHN1Yi9saWJiYXNlLmEKcm0gLWYgc3ViL2xpYm5vYmFzZS5hCmFyIGNyIHN1Yi9saWJub2Jhc2Uu YSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJub2Jhc2UuYQojW3N0ZGVycl0rIERFU1RESVI9Jy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jYXJldC9eJwojW3N0ZGVy cl0rIGZpbGU9Jy4vXicKI1tzdGRlcnJdKyBtYWtlIHRlc3QtaW5zdAptYWtlWzFdOiBFbnRlcmlu ZyBkaXJlY3RvcnkgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvYnVpbGQt Y2FyZXQnCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LWNhcmV0L14vXi1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAuLi9zdWIvYmFz ZS5zaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNhcmV0L14v Xi1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1jYXJldC9eL14tcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0g NjQ0ICBzdWIvbGliYmFzZS5hICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtY2FyZXQvXi9eLXByZWZpeC9mb28nCiAoIGNkICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtY2FyZXQvXi9eLXByZWZpeC9mb28nICYmIHJhbmxpYiBsaWJi YXNlLmEgKQogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1jYXJldC9eL14tcHJlZml4L2ZvbycKICAvdXNyL2Jpbi9pbnN0YWxsIC1jIHN1Yi9iYXNl ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY2FyZXQvXi9eLXBy ZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LWNhcmV0L14vXi1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jYXJldC9eL14tcHJlZml4L2Zvby9zdWIvJwogL3Vz ci9iaW4vaW5zdGFsbCAtYyAuLi9zdWIvbm9iYXNlLnNoICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtY2FyZXQvXi9eLXByZWZpeC9mb28vc3ViLycKIG1rZGlyIC1w ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY2FyZXQvXi9eLXBy ZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LWNhcmV0L14vXi1wcmVmaXgvZm9vL3N1YicKIC91c3IvYmluL2luc3RhbGwgLWMgLW0g NjQ0ICBzdWIvbGlibm9iYXNlLmEgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1jYXJldC9eL14tcHJlZml4L2Zvby9zdWInCiAoIGNkICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY2FyZXQvXi9eLXByZWZpeC9mb28nICYmIHJhbmxp YiBzdWIvbGlibm9iYXNlLmEgKQogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1jYXJldC9eL14tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY2FyZXQvXi9eLXByZWZpeC9mb28v c3ViLycKICAvdXNyL2Jpbi9pbnN0YWxsIC1jIHN1Yi9ub2Jhc2UgJy91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jYXJldC9eL14tcHJlZml4L2Zvby9zdWIvJwogbWtk aXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jYXJldC9e L14tcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0IC4uL3N1Yi9iYXNlLmRh dCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNhcmV0L14vXi1w cmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1jYXJldC9eL14tcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0 IC4uL3N1Yi9iYXNlLmggJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC1jYXJldC9eL14tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtY2FyZXQvXi9eLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNhcmV0L14vXi1wcmVmaXgv Zm9vL3N1YicKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICAuLi9zdWIvbm9iYXNlLmRhdCAn L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNhcmV0L14vXi1wcmVm aXgvZm9vL3N1YicKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyL2Rlc3QtY2FyZXQvXi9eLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNhcmV0L14vXi1wcmVmaXgvZm9vL3N1YicKIC91 c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICAuLi9zdWIvbm9iYXNlLmggJy91c3IvbG9jYWwvc3Jj L2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jYXJldC9eL14tcHJlZml4L2Zvby9zdWInCm1h a2VbMV06IExlYXZpbmcgZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2J1aWxkLWNhcmV0Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1jYXJldC9eLy4vXi1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2UuaCcKdGVz dCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY2FyZXQv Xi8uL14tcHJlZml4L2Zvby9ub2Jhc2UuaCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY2FyZXQvXi8uL14tcHJlZml4L2Zvby9iYXNlLmgnCnRl c3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNhcmV0 L14vLi9eLXByZWZpeC9mb28vc3ViL25vYmFzZS5kYXQnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNhcmV0L14vLi9eLXByZWZpeC9mb28vbm9i YXNlLmRhdCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtY2FyZXQvXi8uL14tcHJlZml4L2Zvby9iYXNlLmRhdCcKdGVzdCAgIC1mICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY2FyZXQvXi8uL14tcHJlZml4L2Zv by9zdWIvbm9iYXNlLnNoJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1jYXJldC9eLy4vXi1wcmVmaXgvZm9vL25vYmFzZS5zaCcKdGVzdCAgIC1m ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY2FyZXQvXi8uL14t cHJlZml4L2Zvby9iYXNlLnNoJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1jYXJldC9eLy4vXi1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2UnCnRlc3Qg ISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNhcmV0L14v Li9eLXByZWZpeC9mb28vbm9iYXNlJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1jYXJldC9eLy4vXi1wcmVmaXgvZm9vL2Jhc2UnCnRlc3QgICAt ZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNhcmV0L14vLi9e LXByZWZpeC9mb28vc3ViL2xpYm5vYmFzZS5hJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jYXJldC9eLy4vXi1wcmVmaXgvZm9vL2xpYm5vYmFz ZS5hJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC1jYXJldC9eLy4vXi1wcmVmaXgvZm9vL2xpYmJhc2UuYScKI1tzdGRlcnJdKyBkZXNjcmlwdGlv bj0nY2FyZXQgaW4gZGVzdGRpcicKI1tzdGRlcnJdKyBleHBlY3RlZF90b19mYWlsIGRlc3QgY2Fy ZXQKI1tzdGRlcnJdKyBjYXNlICQxIGluCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBjYXJldCBzcXVv dGUgZHF1b3RlIGJxdW90ZSBzaGFycCBkb2xsYXIgbGluZWZlZWQgYV9sZl9iCiNbc3RkZXJyXSsg aXRlbT1jYXJldAojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4Kb2sg MjYgLSBjYXJldCBpbiBkZXN0ZGlyClBBU1M6IHQvaW5zdHNwYy50YXAgMjYgLSBjYXJldCBpbiBk ZXN0ZGlyCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyBkaXJlY3RpdmU9CiNbc3RkZXJy XSsgcmVhc29uPQojW3N0ZGVycl0rIHJlc3VsdF8gb2sgLUQgJycgLXIgJycgLS0gJ2NhcmV0IGlu IGRlc3RkaXInCiNbc3RkZXJyXSsgc2V0ICt4CiNbc3RkZXJyXSsgY2QgL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpcgojW3N0ZGVycl0rIG5vdCBhbV9rZWVwaW5nX3Rlc3RkaXJz CiNbc3RkZXJyXSsgYW1fa2VlcGluZ190ZXN0ZGlycwojW3N0ZGVycl0rIGNhc2UgJGtlZXBfdGVz dGRpcnMgaW4KI1tzdGRlcnJdKyByZXR1cm4gMQojW3N0ZGVycl0rIHRlc3Qgb2sgPSBvawojW3N0 ZGVycl0rIHJtX3JmXyBidWlsZC1jYXJldCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9kZXN0LWNhcmV0L14nCiNbc3RkZXJyXSsgdGVzdCAyIC1ndCAwCiNbc3RkZXJyXSsg Y2htb2QgLVIgdStyd3ggYnVpbGQtY2FyZXQgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1jYXJldC9eJwojW3N0ZGVycl0rIHJtIC1yZiBidWlsZC1jYXJldCAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNhcmV0L14nCiNbc3RkZXJy XSsgX2FtX3JtcmZfc3RhdHVzPTAKI1tzdGRlcnJdKyBmb3IgX2FtX3JtcmZfdiBpbiAnIiRAIicK I1tzdGRlcnJdKyB0ZXN0IC1lIGJ1aWxkLWNhcmV0CiNbc3RkZXJyXSsgZm9yIF9hbV9ybXJmX3Yg aW4gJyIkQCInCiNbc3RkZXJyXSsgdGVzdCAtZSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LWNhcmV0L14nCiNbc3RkZXJyXSsgcmV0dXJuIDAKI1tzdGRlcnJdKyA6 IEZvciBzaGVsbHMgd2l0aCBidXN0ZWQgJ3NldCAtZS4nCiNbc3RkZXJyXSsgZm9yIHRlc3RfbmFt ZSBpbiAnJHRlc3RfbmFtZXNfbGlzdCcKI1tzdGRlcnJdKyBldmFsICd0ZXN0X3N0cmluZz0ke2lu c3RzcGNfX3RpbGRlfScKI1tzdGRlcnJdKysgdGVzdF9zdHJpbmc9J34nCiNbc3RkZXJyXSsgdGVz dCB4fiA9IHgKI1tzdGRlcnJdKyBta2RpciAuL34KI1tzdGRlcnJdKyBjYXNlICR0ZXN0X3N0cmlu ZyBpbgojW3N0ZGVycl0rIGZvciB3aGVyZSBpbiBidWlsZCBkZXN0CiNbc3RkZXJyXSsgY2FzZSAk d2hlcmUgaW4KI1tzdGRlcnJdKyBidWlsZD0uL34KI1tzdGRlcnJdKyBkZXN0PS91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC10aWxkZQojW3N0ZGVycl0rIGNkIC4vfgoj W3N0ZGVycl0rIHI9b2sKI1tzdGRlcnJdKyAuLi9jb25maWd1cmUgLS1wcmVmaXggL34tcHJlZml4 CmNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwuLi4gL3Vzci9iaW4vaW5zdGFs bCAtYwpjaGVja2luZyB3aGV0aGVyIHNsZWVwIHN1cHBvcnRzIGZyYWN0aW9uYWwgc2Vjb25kcy4u LiB5ZXMKY2hlY2tpbmcgZmlsZXN5c3RlbSB0aW1lc3RhbXAgcmVzb2x1dGlvbi4uLiAwLjAxCmNo ZWNraW5nIHdoZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZS4uLiB5ZXMKY2hlY2tpbmcg Zm9yIGEgcmFjZS1mcmVlIG1rZGlyIC1wLi4uIG1rZGlyIC1wCmNoZWNraW5nIGZvciBnYXdrLi4u IG5vCmNoZWNraW5nIGZvciBtYXdrLi4uIG5vCmNoZWNraW5nIGZvciBuYXdrLi4uIG5vCmNoZWNr aW5nIGZvciBhd2suLi4gYXdrCmNoZWNraW5nIHdoZXRoZXIgbWFrZSBzZXRzICQoTUFLRSkuLi4g eWVzCmNoZWNraW5nIHdoZXRoZXIgbWFrZSBzdXBwb3J0cyBuZXN0ZWQgdmFyaWFibGVzLi4uIHll cwpjaGVja2luZyB4YXJncyAtbiB3b3Jrcy4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBVSUQgJzUw MScgaXMgc3VwcG9ydGVkIGJ5IHVzdGFyIGZvcm1hdC4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBH SUQgJzIwJyBpcyBzdXBwb3J0ZWQgYnkgdXN0YXIgZm9ybWF0Li4uIHllcwpjaGVja2luZyBob3cg dG8gY3JlYXRlIGEgdXN0YXIgdGFyIGFyY2hpdmUuLi4gcGxhaW50YXIKY2hlY2tpbmcgZm9yIGdj Yy4uLiBnY2MKY2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciB3b3Jrcy4uLiB5ZXMKY2hl Y2tpbmcgZm9yIEMgY29tcGlsZXIgZGVmYXVsdCBvdXRwdXQgZmlsZSBuYW1lLi4uIGEub3V0CmNo ZWNraW5nIGZvciBzdWZmaXggb2YgZXhlY3V0YWJsZXMuLi4gCmNoZWNraW5nIHdoZXRoZXIgd2Ug YXJlIGNyb3NzIGNvbXBpbGluZy4uLiBubwpjaGVja2luZyBmb3Igc3VmZml4IG9mIG9iamVjdCBm aWxlcy4uLiBvCmNoZWNraW5nIHdoZXRoZXIgdGhlIGNvbXBpbGVyIHN1cHBvcnRzIEdOVSBDLi4u IHllcwpjaGVja2luZyB3aGV0aGVyIGdjYyBhY2NlcHRzIC1nLi4uIHllcwpjaGVja2luZyBmb3Ig Z2NjIG9wdGlvbiB0byBlbmFibGUgQzIzIGZlYXR1cmVzLi4uIC1zdGQ9Z251MjMKY2hlY2tpbmcg d2hldGhlciBnY2MgLXN0ZD1nbnUyMyB1bmRlcnN0YW5kcyAtYyBhbmQgLW8gdG9nZXRoZXIuLi4g eWVzCmNoZWNraW5nIHdoZXRoZXIgbWFrZSBzdXBwb3J0cyB0aGUgaW5jbHVkZSBkaXJlY3RpdmUu Li4geWVzIChHTlUgc3R5bGUpCmNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgZ2NjIC1zdGQ9 Z251MjMuLi4gZ2NjMwpjaGVja2luZyBmb3IgYXIuLi4gYXIKY2hlY2tpbmcgdGhlIGFyY2hpdmVy IChhcikgaW50ZXJmYWNlLi4uIGFyCmNoZWNraW5nIGZvciByYW5saWIuLi4gcmFubGliCmNoZWNr aW5nIHRoYXQgZ2VuZXJhdGVkIGZpbGVzIGFyZSBuZXdlciB0aGFuIGNvbmZpZ3VyZS4uLiBkb25l CmNvbmZpZ3VyZTogY3JlYXRpbmcgLi9jb25maWcuc3RhdHVzCmNvbmZpZy5zdGF0dXM6IGNyZWF0 aW5nIE1ha2VmaWxlCmNvbmZpZy5zdGF0dXM6IGV4ZWN1dGluZyBkZXBmaWxlcyBjb21tYW5kcwoj W3N0ZGVycl0rIG1ha2UgYWxsCmdjYyAtc3RkPWdudTIzIC1EUEFDS0FHRV9OQU1FPVwiaW5zdHNw Y1wiIC1EUEFDS0FHRV9UQVJOQU1FPVwiaW5zdHNwY1wiIC1EUEFDS0FHRV9WRVJTSU9OPVwiMS4w XCIgLURQQUNLQUdFX1NUUklORz1cImluc3RzcGNcIDEuMFwiIC1EUEFDS0FHRV9CVUdSRVBPUlQ9 XCJcIiAtRFBBQ0tBR0VfVVJMPVwiXCIgLURQQUNLQUdFPVwiaW5zdHNwY1wiIC1EVkVSU0lPTj1c IjEuMFwiIC1JLiAtSS4uICAgICAtZyAtTzIgLU1UIHNvdXJjZS5vIC1NRCAtTVAgLU1GIC5kZXBz L3NvdXJjZS5UcG8gLWMgLW8gc291cmNlLm8gLi4vc291cmNlLmMKbXYgLWYgLmRlcHMvc291cmNl LlRwbyAuZGVwcy9zb3VyY2UuUG8KZ2NjIC1zdGQ9Z251MjMgIC1nIC1PMiAgIC1vIHN1Yi9iYXNl IHNvdXJjZS5vICAKZ2NjIC1zdGQ9Z251MjMgIC1nIC1PMiAgIC1vIHN1Yi9ub2Jhc2Ugc291cmNl Lm8gIApybSAtZiBzdWIvbGliYmFzZS5hCmFyIGNyIHN1Yi9saWJiYXNlLmEgc291cmNlLm8gCnJh bmxpYiBzdWIvbGliYmFzZS5hCnJtIC1mIHN1Yi9saWJub2Jhc2UuYQphciBjciBzdWIvbGlibm9i YXNlLmEgc291cmNlLm8gCnJhbmxpYiBzdWIvbGlibm9iYXNlLmEKI1tzdGRlcnJdKyBERVNURElS PS91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC10aWxkZQojW3N0ZGVy cl0rIGZpbGU9Li9+CiNbc3RkZXJyXSsgbWFrZSB0ZXN0LWluc3QKbWFrZVsxXTogRW50ZXJpbmcg ZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL34nCiBta2Rp ciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXRpbGRlL34t cHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLi4vc3ViL2Jhc2Uuc2ggJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC10aWxkZS9+LXByZWZpeC9mb28nCiBt a2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXRpbGRl L34tcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICBzdWIvbGliYmFzZS5h ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtdGlsZGUvfi1wcmVm aXgvZm9vJwogKCBjZCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LXRpbGRlL34tcHJlZml4L2ZvbycgJiYgcmFubGliIGxpYmJhc2UuYSApCiBta2RpciAtcCAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXRpbGRlL34tcHJlZml4L2Zv bycKICAvdXNyL2Jpbi9pbnN0YWxsIC1jIHN1Yi9iYXNlICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtdGlsZGUvfi1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC10aWxkZS9+LXByZWZpeC9mb28n CiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXRp bGRlL34tcHJlZml4L2Zvby9zdWIvJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAuLi9zdWIvbm9iYXNl LnNoICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtdGlsZGUvfi1w cmVmaXgvZm9vL3N1Yi8nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9kZXN0LXRpbGRlL34tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtdGlsZGUvfi1wcmVmaXgvZm9vL3N1YicKIC91 c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICBzdWIvbGlibm9iYXNlLmEgJy91c3IvbG9jYWwvc3Jj L2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC10aWxkZS9+LXByZWZpeC9mb28vc3ViJwogKCBj ZCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXRpbGRlL34tcHJl Zml4L2ZvbycgJiYgcmFubGliIHN1Yi9saWJub2Jhc2UuYSApCiBta2RpciAtcCAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXRpbGRlL34tcHJlZml4L2ZvbycKIG1r ZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtdGlsZGUv fi1wcmVmaXgvZm9vL3N1Yi8nCiAgL3Vzci9iaW4vaW5zdGFsbCAtYyBzdWIvbm9iYXNlICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtdGlsZGUvfi1wcmVmaXgvZm9v L3N1Yi8nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LXRpbGRlL34tcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0IC4uL3N1 Yi9iYXNlLmRhdCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXRp bGRlL34tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtdGlsZGUvfi1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAt bSA2NDQgLi4vc3ViL2Jhc2UuaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LXRpbGRlL34tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtdGlsZGUvfi1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC10aWxkZS9+LXByZWZpeC9m b28vc3ViJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIC4uL3N1Yi9ub2Jhc2UuZGF0ICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtdGlsZGUvfi1wcmVmaXgv Zm9vL3N1YicKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtdGlsZGUvfi1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC10aWxkZS9+LXByZWZpeC9mb28vc3ViJwogL3Vzci9iaW4v aW5zdGFsbCAtYyAtbSA2NDQgIC4uL3N1Yi9ub2Jhc2UuaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9kZXN0LXRpbGRlL34tcHJlZml4L2Zvby9zdWInCm1ha2VbMV06IExl YXZpbmcgZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL34n CnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXRp bGRlLy4vfi1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2UuaCcKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtdGlsZGUvLi9+LXByZWZpeC9mb28vbm9iYXNl LmgnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LXRpbGRlLy4vfi1wcmVmaXgvZm9vL2Jhc2UuaCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtdGlsZGUvLi9+LXByZWZpeC9mb28vc3ViL25vYmFz ZS5kYXQnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LXRpbGRlLy4vfi1wcmVmaXgvZm9vL25vYmFzZS5kYXQnCnRlc3QgICAtZiAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXRpbGRlLy4vfi1wcmVmaXgvZm9vL2Jh c2UuZGF0Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC10aWxkZS8uL34tcHJlZml4L2Zvby9zdWIvbm9iYXNlLnNoJwp0ZXN0ICEgLWYgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC10aWxkZS8uL34tcHJlZml4L2Zv by9ub2Jhc2Uuc2gnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LXRpbGRlLy4vfi1wcmVmaXgvZm9vL2Jhc2Uuc2gnCnRlc3QgICAtZiAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXRpbGRlLy4vfi1wcmVmaXgvZm9v L3N1Yi9ub2Jhc2UnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LXRpbGRlLy4vfi1wcmVmaXgvZm9vL25vYmFzZScKdGVzdCAgIC1mICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtdGlsZGUvLi9+LXByZWZpeC9mb28v YmFzZScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rl c3QtdGlsZGUvLi9+LXByZWZpeC9mb28vc3ViL2xpYm5vYmFzZS5hJwp0ZXN0ICEgLWYgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC10aWxkZS8uL34tcHJlZml4L2Zv by9saWJub2Jhc2UuYScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtdGlsZGUvLi9+LXByZWZpeC9mb28vbGliYmFzZS5hJwojW3N0ZGVycl0rIGRl c2NyaXB0aW9uPSd0aWxkZSBpbiBidWlsZGRpcicKI1tzdGRlcnJdKyBleHBlY3RlZF90b19mYWls IGJ1aWxkIHRpbGRlCiNbc3RkZXJyXSsgY2FzZSAkMSBpbgojW3N0ZGVycl0rIGlzX2luX2xpc3Qg dGlsZGUgc3F1b3RlIGRxdW90ZSBicXVvdGUgc2hhcnAgZG9sbGFyIGJzbGFzaCBhbXBlcnNhbmQg bGluZWZlZWQgcXVhZHJpZ3JhcGgwIGFfbGZfYgojW3N0ZGVycl0rIGl0ZW09dGlsZGUKI1tzdGRl cnJdKyBzaGlmdAojW3N0ZGVycl0rIGNhc2UgIiAkKiAiIGluCm9rIDI3IC0gdGlsZGUgaW4gYnVp bGRkaXIKUEFTUzogdC9pbnN0c3BjLnRhcCAyNyAtIHRpbGRlIGluIGJ1aWxkZGlyCiNbc3RkZXJy XSsgcmV0dXJuIDEKI1tzdGRlcnJdKyBkaXJlY3RpdmU9CiNbc3RkZXJyXSsgcmVhc29uPQojW3N0 ZGVycl0rIHJlc3VsdF8gb2sgLUQgJycgLXIgJycgLS0gJ3RpbGRlIGluIGJ1aWxkZGlyJwojW3N0 ZGVycl0rIHNldCAreAojW3N0ZGVycl0rIGNkIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIKI1tzdGRlcnJdKyBub3QgYW1fa2VlcGluZ190ZXN0ZGlycwojW3N0ZGVycl0rIGFt X2tlZXBpbmdfdGVzdGRpcnMKI1tzdGRlcnJdKyBjYXNlICRrZWVwX3Rlc3RkaXJzIGluCiNbc3Rk ZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyB0ZXN0IG9rID0gb2sKI1tzdGRlcnJdKyBybV9yZl8g Li9+IC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC10aWxkZQojW3N0 ZGVycl0rIHRlc3QgMiAtZ3QgMAojW3N0ZGVycl0rIGNobW9kIC1SIHUrcnd4IC4vfiAvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtdGlsZGUKI1tzdGRlcnJdKyBybSAt cmYgLi9+IC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC10aWxkZQoj W3N0ZGVycl0rIF9hbV9ybXJmX3N0YXR1cz0wCiNbc3RkZXJyXSsgZm9yIF9hbV9ybXJmX3YgaW4g JyIkQCInCiNbc3RkZXJyXSsgdGVzdCAtZSAuL34KI1tzdGRlcnJdKyBmb3IgX2FtX3JtcmZfdiBp biAnIiRAIicKI1tzdGRlcnJdKyB0ZXN0IC1lIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC10aWxkZQojW3N0ZGVycl0rIHJldHVybiAwCiNbc3RkZXJyXSsgOiBGb3Ig c2hlbGxzIHdpdGggYnVzdGVkICdzZXQgLWUuJwojW3N0ZGVycl0rIGZvciB3aGVyZSBpbiBidWls ZCBkZXN0CiNbc3RkZXJyXSsgY2FzZSAkd2hlcmUgaW4KI1tzdGRlcnJdKyBidWlsZD1idWlsZC10 aWxkZQojW3N0ZGVycl0rIGRlc3Q9L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LXRpbGRlL34KI1tzdGRlcnJdKyBta2RpciBidWlsZC10aWxkZQojW3N0ZGVycl0rIGNk IGJ1aWxkLXRpbGRlCiNbc3RkZXJyXSsgcj1vawojW3N0ZGVycl0rIC4uL2NvbmZpZ3VyZSAtLXBy ZWZpeCAvfi1wcmVmaXgKY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbC4uLiAv dXNyL2Jpbi9pbnN0YWxsIC1jCmNoZWNraW5nIHdoZXRoZXIgc2xlZXAgc3VwcG9ydHMgZnJhY3Rp b25hbCBzZWNvbmRzLi4uIHllcwpjaGVja2luZyBmaWxlc3lzdGVtIHRpbWVzdGFtcCByZXNvbHV0 aW9uLi4uIDAuMDEKY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lLi4u IHllcwpjaGVja2luZyBmb3IgYSByYWNlLWZyZWUgbWtkaXIgLXAuLi4gbWtkaXIgLXAKY2hlY2tp bmcgZm9yIGdhd2suLi4gbm8KY2hlY2tpbmcgZm9yIG1hd2suLi4gbm8KY2hlY2tpbmcgZm9yIG5h d2suLi4gbm8KY2hlY2tpbmcgZm9yIGF3ay4uLiBhd2sKY2hlY2tpbmcgd2hldGhlciBtYWtlIHNl dHMgJChNQUtFKS4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRzIG5lc3RlZCB2 YXJpYWJsZXMuLi4geWVzCmNoZWNraW5nIHhhcmdzIC1uIHdvcmtzLi4uIHllcwpjaGVja2luZyB3 aGV0aGVyIFVJRCAnNTAxJyBpcyBzdXBwb3J0ZWQgYnkgdXN0YXIgZm9ybWF0Li4uIHllcwpjaGVj a2luZyB3aGV0aGVyIEdJRCAnMjAnIGlzIHN1cHBvcnRlZCBieSB1c3RhciBmb3JtYXQuLi4geWVz CmNoZWNraW5nIGhvdyB0byBjcmVhdGUgYSB1c3RhciB0YXIgYXJjaGl2ZS4uLiBwbGFpbnRhcgpj aGVja2luZyBmb3IgZ2NjLi4uIGdjYwpjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdv cmtzLi4uIHllcwpjaGVja2luZyBmb3IgQyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5h bWUuLi4gYS5vdXQKY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcy4uLiAKY2hlY2tp bmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nLi4uIG5vCmNoZWNraW5nIGZvciBzdWZm aXggb2Ygb2JqZWN0IGZpbGVzLi4uIG8KY2hlY2tpbmcgd2hldGhlciB0aGUgY29tcGlsZXIgc3Vw cG9ydHMgR05VIEMuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgZ2NjIGFjY2VwdHMgLWcuLi4geWVz CmNoZWNraW5nIGZvciBnY2Mgb3B0aW9uIHRvIGVuYWJsZSBDMjMgZmVhdHVyZXMuLi4gLXN0ZD1n bnUyMwpjaGVja2luZyB3aGV0aGVyIGdjYyAtc3RkPWdudTIzIHVuZGVyc3RhbmRzIC1jIGFuZCAt byB0b2dldGhlci4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRzIHRoZSBpbmNs dWRlIGRpcmVjdGl2ZS4uLiB5ZXMgKEdOVSBzdHlsZSkKY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHls ZSBvZiBnY2MgLXN0ZD1nbnUyMy4uLiBnY2MzCmNoZWNraW5nIGZvciBhci4uLiBhcgpjaGVja2lu ZyB0aGUgYXJjaGl2ZXIgKGFyKSBpbnRlcmZhY2UuLi4gYXIKY2hlY2tpbmcgZm9yIHJhbmxpYi4u LiByYW5saWIKY2hlY2tpbmcgdGhhdCBnZW5lcmF0ZWQgZmlsZXMgYXJlIG5ld2VyIHRoYW4gY29u ZmlndXJlLi4uIGRvbmUKY29uZmlndXJlOiBjcmVhdGluZyAuL2NvbmZpZy5zdGF0dXMKY29uZmln LnN0YXR1czogY3JlYXRpbmcgTWFrZWZpbGUKY29uZmlnLnN0YXR1czogZXhlY3V0aW5nIGRlcGZp bGVzIGNvbW1hbmRzCiNbc3RkZXJyXSsgbWFrZSBhbGwKZ2NjIC1zdGQ9Z251MjMgLURQQUNLQUdF X05BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdFX1RBUk5BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdF X1ZFUlNJT049XCIxLjBcIiAtRFBBQ0tBR0VfU1RSSU5HPVwiaW5zdHNwY1wgMS4wXCIgLURQQUNL QUdFX0JVR1JFUE9SVD1cIlwiIC1EUEFDS0FHRV9VUkw9XCJcIiAtRFBBQ0tBR0U9XCJpbnN0c3Bj XCIgLURWRVJTSU9OPVwiMS4wXCIgLUkuIC1JLi4gICAgIC1nIC1PMiAtTVQgc291cmNlLm8gLU1E IC1NUCAtTUYgLmRlcHMvc291cmNlLlRwbyAtYyAtbyBzb3VyY2UubyAuLi9zb3VyY2UuYwptdiAt ZiAuZGVwcy9zb3VyY2UuVHBvIC5kZXBzL3NvdXJjZS5QbwpnY2MgLXN0ZD1nbnUyMyAgLWcgLU8y ICAgLW8gc3ViL2Jhc2Ugc291cmNlLm8gIApnY2MgLXN0ZD1nbnUyMyAgLWcgLU8yICAgLW8gc3Vi L25vYmFzZSBzb3VyY2UubyAgCnJtIC1mIHN1Yi9saWJiYXNlLmEKYXIgY3Igc3ViL2xpYmJhc2Uu YSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJiYXNlLmEKcm0gLWYgc3ViL2xpYm5vYmFzZS5hCmFy IGNyIHN1Yi9saWJub2Jhc2UuYSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJub2Jhc2UuYQojW3N0 ZGVycl0rIERFU1RESVI9L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LXRpbGRlL34KI1tzdGRlcnJdKyBmaWxlPS4vfgojW3N0ZGVycl0rIG1ha2UgdGVzdC1pbnN0Cm1h a2VbMV06IEVudGVyaW5nIGRpcmVjdG9yeSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9idWlsZC10aWxkZScKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3QtdGlsZGUvfi9+LXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxs IC1jIC4uL3N1Yi9iYXNlLnNoICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtdGlsZGUvfi9+LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXRpbGRlL34vfi1wcmVmaXgvZm9vJwogL3Vzci9iaW4v aW5zdGFsbCAtYyAtbSA2NDQgIHN1Yi9saWJiYXNlLmEgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC10aWxkZS9+L34tcHJlZml4L2ZvbycKICggY2QgJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC10aWxkZS9+L34tcHJlZml4L2Zvbycg JiYgcmFubGliIGxpYmJhc2UuYSApCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXRpbGRlL34vfi1wcmVmaXgvZm9vJwogIC91c3IvYmluL2luc3Rh bGwgLWMgc3ViL2Jhc2UgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC10aWxkZS9+L34tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtdGlsZGUvfi9+LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXRpbGRlL34vfi1wcmVmaXgv Zm9vL3N1Yi8nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC4uL3N1Yi9ub2Jhc2Uuc2ggJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC10aWxkZS9+L34tcHJlZml4L2Zvby9z dWIvJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC10aWxkZS9+L34tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtdGlsZGUvfi9+LXByZWZpeC9mb28vc3ViJwogL3Vzci9iaW4v aW5zdGFsbCAtYyAtbSA2NDQgIHN1Yi9saWJub2Jhc2UuYSAnL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9kZXN0LXRpbGRlL34vfi1wcmVmaXgvZm9vL3N1YicKICggY2QgJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC10aWxkZS9+L34tcHJlZml4 L2ZvbycgJiYgcmFubGliIHN1Yi9saWJub2Jhc2UuYSApCiBta2RpciAtcCAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXRpbGRlL34vfi1wcmVmaXgvZm9vJwogbWtk aXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC10aWxkZS9+ L34tcHJlZml4L2Zvby9zdWIvJwogIC91c3IvYmluL2luc3RhbGwgLWMgc3ViL25vYmFzZSAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXRpbGRlL34vfi1wcmVmaXgv Zm9vL3N1Yi8nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LXRpbGRlL34vfi1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQg Li4vc3ViL2Jhc2UuZGF0ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rl c3QtdGlsZGUvfi9+LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9kZXN0LXRpbGRlL34vfi1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5z dGFsbCAtYyAtbSA2NDQgLi4vc3ViL2Jhc2UuaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LXRpbGRlL34vfi1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC10aWxkZS9+L34tcHJlZml4L2ZvbycK IG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtdGls ZGUvfi9+LXByZWZpeC9mb28vc3ViJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIC4uL3N1 Yi9ub2Jhc2UuZGF0ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt dGlsZGUvfi9+LXByZWZpeC9mb28vc3ViJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC10aWxkZS9+L34tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtdGlsZGUvfi9+LXByZWZp eC9mb28vc3ViJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIC4uL3N1Yi9ub2Jhc2UuaCAn L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXRpbGRlL34vfi1wcmVm aXgvZm9vL3N1YicKbWFrZVsxXTogTGVhdmluZyBkaXJlY3RvcnkgJy91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvYnVpbGQtdGlsZGUnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXRpbGRlL34vLi9+LXByZWZpeC9mb28vc3Vi L25vYmFzZS5oJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC10aWxkZS9+Ly4vfi1wcmVmaXgvZm9vL25vYmFzZS5oJwp0ZXN0ICAgLWYgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC10aWxkZS9+Ly4vfi1wcmVmaXgv Zm9vL2Jhc2UuaCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyL2Rlc3QtdGlsZGUvfi8uL34tcHJlZml4L2Zvby9zdWIvbm9iYXNlLmRhdCcKdGVzdCAhIC1m ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtdGlsZGUvfi8uL34t cHJlZml4L2Zvby9ub2Jhc2UuZGF0Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC10aWxkZS9+Ly4vfi1wcmVmaXgvZm9vL2Jhc2UuZGF0Jwp0ZXN0 ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC10aWxkZS9+ Ly4vfi1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2Uuc2gnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXRpbGRlL34vLi9+LXByZWZpeC9mb28vbm9iYXNl LnNoJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC10aWxkZS9+Ly4vfi1wcmVmaXgvZm9vL2Jhc2Uuc2gnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXRpbGRlL34vLi9+LXByZWZpeC9mb28vc3Vi L25vYmFzZScKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtdGlsZGUvfi8uL34tcHJlZml4L2Zvby9ub2Jhc2UnCnRlc3QgICAtZiAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXRpbGRlL34vLi9+LXByZWZpeC9mb28v YmFzZScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rl c3QtdGlsZGUvfi8uL34tcHJlZml4L2Zvby9zdWIvbGlibm9iYXNlLmEnCnRlc3QgISAtZiAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXRpbGRlL34vLi9+LXByZWZp eC9mb28vbGlibm9iYXNlLmEnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LXRpbGRlL34vLi9+LXByZWZpeC9mb28vbGliYmFzZS5hJwojW3N0ZGVy cl0rIGRlc2NyaXB0aW9uPSd0aWxkZSBpbiBkZXN0ZGlyJwojW3N0ZGVycl0rIGV4cGVjdGVkX3Rv X2ZhaWwgZGVzdCB0aWxkZQojW3N0ZGVycl0rIGNhc2UgJDEgaW4KI1tzdGRlcnJdKyBpc19pbl9s aXN0IHRpbGRlIHNxdW90ZSBkcXVvdGUgYnF1b3RlIHNoYXJwIGRvbGxhciBsaW5lZmVlZCBhX2xm X2IKI1tzdGRlcnJdKyBpdGVtPXRpbGRlCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBjYXNl ICIgJCogIiBpbgojW3N0ZGVycl0rIHJldHVybiAxCm9rIDI4IC0gdGlsZGUgaW4gZGVzdGRpcgpQ QVNTOiB0L2luc3RzcGMudGFwIDI4IC0gdGlsZGUgaW4gZGVzdGRpcgojW3N0ZGVycl0rIGRpcmVj dGl2ZT0KI1tzdGRlcnJdKyByZWFzb249CiNbc3RkZXJyXSsgcmVzdWx0XyBvayAtRCAnJyAtciAn JyAtLSAndGlsZGUgaW4gZGVzdGRpcicKI1tzdGRlcnJdKyBzZXQgK3gKI1tzdGRlcnJdKyBjZCAv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyCiNbc3RkZXJyXSsgbm90IGFtX2tl ZXBpbmdfdGVzdGRpcnMKI1tzdGRlcnJdKyBhbV9rZWVwaW5nX3Rlc3RkaXJzCiNbc3RkZXJyXSsg Y2FzZSAka2VlcF90ZXN0ZGlycyBpbgojW3N0ZGVycl0rIHJldHVybiAxCiNbc3RkZXJyXSsgdGVz dCBvayA9IG9rCiNbc3RkZXJyXSsgcm1fcmZfIGJ1aWxkLXRpbGRlIC91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC10aWxkZS9+CiNbc3RkZXJyXSsgdGVzdCAyIC1ndCAw CiNbc3RkZXJyXSsgY2htb2QgLVIgdStyd3ggYnVpbGQtdGlsZGUgL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXRpbGRlL34KI1tzdGRlcnJdKyBybSAtcmYgYnVpbGQt dGlsZGUgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXRpbGRlL34K I1tzdGRlcnJdKyBfYW1fcm1yZl9zdGF0dXM9MAojW3N0ZGVycl0rIGZvciBfYW1fcm1yZl92IGlu ICciJEAiJwojW3N0ZGVycl0rIHRlc3QgLWUgYnVpbGQtdGlsZGUKI1tzdGRlcnJdKyBmb3IgX2Ft X3JtcmZfdiBpbiAnIiRAIicKI1tzdGRlcnJdKyB0ZXN0IC1lIC91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC10aWxkZS9+CiNbc3RkZXJyXSsgcmV0dXJuIDAKI1tzdGRl cnJdKyA6IEZvciBzaGVsbHMgd2l0aCBidXN0ZWQgJ3NldCAtZS4nCiNbc3RkZXJyXSsgZm9yIHRl c3RfbmFtZSBpbiAnJHRlc3RfbmFtZXNfbGlzdCcKI1tzdGRlcnJdKyBldmFsICd0ZXN0X3N0cmlu Zz0ke2luc3RzcGNfX3FtYXJrfScKI1tzdGRlcnJdKysgdGVzdF9zdHJpbmc9Jz8nCiNbc3RkZXJy XSsgdGVzdCAneD8nID0geAojW3N0ZGVycl0rIG1rZGlyICcuLz8nCiNbc3RkZXJyXSsgY2FzZSAk dGVzdF9zdHJpbmcgaW4KI1tzdGRlcnJdKyBmb3Igd2hlcmUgaW4gYnVpbGQgZGVzdAojW3N0ZGVy cl0rIGNhc2UgJHdoZXJlIGluCiNbc3RkZXJyXSsgYnVpbGQ9Jy4vPycKI1tzdGRlcnJdKyBkZXN0 PS91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1xbWFyawojW3N0ZGVy cl0rIGNkICcuLz8nCiNbc3RkZXJyXSsgcj1vawojW3N0ZGVycl0rIC4uL2NvbmZpZ3VyZSAtLXBy ZWZpeCAnLz8tcHJlZml4JwpjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsLi4u IC91c3IvYmluL2luc3RhbGwgLWMKY2hlY2tpbmcgd2hldGhlciBzbGVlcCBzdXBwb3J0cyBmcmFj dGlvbmFsIHNlY29uZHMuLi4geWVzCmNoZWNraW5nIGZpbGVzeXN0ZW0gdGltZXN0YW1wIHJlc29s dXRpb24uLi4gMC4wMQpjaGVja2luZyB3aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmUu Li4geWVzCmNoZWNraW5nIGZvciBhIHJhY2UtZnJlZSBta2RpciAtcC4uLiBta2RpciAtcApjaGVj a2luZyBmb3IgZ2F3ay4uLiBubwpjaGVja2luZyBmb3IgbWF3ay4uLiBubwpjaGVja2luZyBmb3Ig bmF3ay4uLiBubwpjaGVja2luZyBmb3IgYXdrLi4uIGF3awpjaGVja2luZyB3aGV0aGVyIG1ha2Ug c2V0cyAkKE1BS0UpLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIG1ha2Ugc3VwcG9ydHMgbmVzdGVk IHZhcmlhYmxlcy4uLiB5ZXMKY2hlY2tpbmcgeGFyZ3MgLW4gd29ya3MuLi4geWVzCmNoZWNraW5n IHdoZXRoZXIgVUlEICc1MDEnIGlzIHN1cHBvcnRlZCBieSB1c3RhciBmb3JtYXQuLi4geWVzCmNo ZWNraW5nIHdoZXRoZXIgR0lEICcyMCcgaXMgc3VwcG9ydGVkIGJ5IHVzdGFyIGZvcm1hdC4uLiB5 ZXMKY2hlY2tpbmcgaG93IHRvIGNyZWF0ZSBhIHVzdGFyIHRhciBhcmNoaXZlLi4uIHBsYWludGFy CmNoZWNraW5nIGZvciBnY2MuLi4gZ2NjCmNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIg d29ya3MuLi4geWVzCmNoZWNraW5nIGZvciBDIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUg bmFtZS4uLiBhLm91dApjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzLi4uIApjaGVj a2luZyB3aGV0aGVyIHdlIGFyZSBjcm9zcyBjb21waWxpbmcuLi4gbm8KY2hlY2tpbmcgZm9yIHN1 ZmZpeCBvZiBvYmplY3QgZmlsZXMuLi4gbwpjaGVja2luZyB3aGV0aGVyIHRoZSBjb21waWxlciBz dXBwb3J0cyBHTlUgQy4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBnY2MgYWNjZXB0cyAtZy4uLiB5 ZXMKY2hlY2tpbmcgZm9yIGdjYyBvcHRpb24gdG8gZW5hYmxlIEMyMyBmZWF0dXJlcy4uLiAtc3Rk PWdudTIzCmNoZWNraW5nIHdoZXRoZXIgZ2NjIC1zdGQ9Z251MjMgdW5kZXJzdGFuZHMgLWMgYW5k IC1vIHRvZ2V0aGVyLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIG1ha2Ugc3VwcG9ydHMgdGhlIGlu Y2x1ZGUgZGlyZWN0aXZlLi4uIHllcyAoR05VIHN0eWxlKQpjaGVja2luZyBkZXBlbmRlbmN5IHN0 eWxlIG9mIGdjYyAtc3RkPWdudTIzLi4uIGdjYzMKY2hlY2tpbmcgZm9yIGFyLi4uIGFyCmNoZWNr aW5nIHRoZSBhcmNoaXZlciAoYXIpIGludGVyZmFjZS4uLiBhcgpjaGVja2luZyBmb3IgcmFubGli Li4uIHJhbmxpYgpjaGVja2luZyB0aGF0IGdlbmVyYXRlZCBmaWxlcyBhcmUgbmV3ZXIgdGhhbiBj b25maWd1cmUuLi4gZG9uZQpjb25maWd1cmU6IGNyZWF0aW5nIC4vY29uZmlnLnN0YXR1cwpjb25m aWcuc3RhdHVzOiBjcmVhdGluZyBNYWtlZmlsZQpjb25maWcuc3RhdHVzOiBleGVjdXRpbmcgZGVw ZmlsZXMgY29tbWFuZHMKI1tzdGRlcnJdKyBtYWtlIGFsbApnY2MgLXN0ZD1nbnUyMyAtRFBBQ0tB R0VfTkFNRT1cImluc3RzcGNcIiAtRFBBQ0tBR0VfVEFSTkFNRT1cImluc3RzcGNcIiAtRFBBQ0tB R0VfVkVSU0lPTj1cIjEuMFwiIC1EUEFDS0FHRV9TVFJJTkc9XCJpbnN0c3BjXCAxLjBcIiAtRFBB Q0tBR0VfQlVHUkVQT1JUPVwiXCIgLURQQUNLQUdFX1VSTD1cIlwiIC1EUEFDS0FHRT1cImluc3Rz cGNcIiAtRFZFUlNJT049XCIxLjBcIiAtSS4gLUkuLiAgICAgLWcgLU8yIC1NVCBzb3VyY2UubyAt TUQgLU1QIC1NRiAuZGVwcy9zb3VyY2UuVHBvIC1jIC1vIHNvdXJjZS5vIC4uL3NvdXJjZS5jCm12 IC1mIC5kZXBzL3NvdXJjZS5UcG8gLmRlcHMvc291cmNlLlBvCmdjYyAtc3RkPWdudTIzICAtZyAt TzIgICAtbyBzdWIvYmFzZSBzb3VyY2UubyAgCmdjYyAtc3RkPWdudTIzICAtZyAtTzIgICAtbyBz dWIvbm9iYXNlIHNvdXJjZS5vICAKcm0gLWYgc3ViL2xpYmJhc2UuYQphciBjciBzdWIvbGliYmFz ZS5hIHNvdXJjZS5vIApyYW5saWIgc3ViL2xpYmJhc2UuYQpybSAtZiBzdWIvbGlibm9iYXNlLmEK YXIgY3Igc3ViL2xpYm5vYmFzZS5hIHNvdXJjZS5vIApyYW5saWIgc3ViL2xpYm5vYmFzZS5hCiNb c3RkZXJyXSsgREVTVERJUj0vdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rl c3QtcW1hcmsKI1tzdGRlcnJdKyBmaWxlPScuLz8nCiNbc3RkZXJyXSsgbWFrZSB0ZXN0LWluc3QK bWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyLz8nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LXFtYXJrLz8tcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLi4vc3Vi L2Jhc2Uuc2ggJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1xbWFy ay8/LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9kZXN0LXFtYXJrLz8tcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0g NjQ0ICBzdWIvbGliYmFzZS5hICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtcW1hcmsvPy1wcmVmaXgvZm9vJwogKCBjZCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXFtYXJrLz8tcHJlZml4L2ZvbycgJiYgcmFubGliIGxpYmJhc2Uu YSApCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LXFtYXJrLz8tcHJlZml4L2ZvbycKICAvdXNyL2Jpbi9pbnN0YWxsIC1jIHN1Yi9iYXNlICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcW1hcmsvPy1wcmVmaXgvZm9v JwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1x bWFyay8/LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LXFtYXJrLz8tcHJlZml4L2Zvby9zdWIvJwogL3Vzci9iaW4vaW5zdGFs bCAtYyAuLi9zdWIvbm9iYXNlLnNoICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyL2Rlc3QtcW1hcmsvPy1wcmVmaXgvZm9vL3N1Yi8nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXFtYXJrLz8tcHJlZml4L2ZvbycKIG1rZGly IC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcW1hcmsvPy1w cmVmaXgvZm9vL3N1YicKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICBzdWIvbGlibm9iYXNl LmEgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1xbWFyay8/LXBy ZWZpeC9mb28vc3ViJwogKCBjZCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LXFtYXJrLz8tcHJlZml4L2ZvbycgJiYgcmFubGliIHN1Yi9saWJub2Jhc2UuYSApCiBt a2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXFtYXJr Lz8tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtcW1hcmsvPy1wcmVmaXgvZm9vL3N1Yi8nCiAgL3Vzci9iaW4vaW5zdGFsbCAt YyBzdWIvbm9iYXNlICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt cW1hcmsvPy1wcmVmaXgvZm9vL3N1Yi8nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9kZXN0LXFtYXJrLz8tcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3Rh bGwgLWMgLW0gNjQ0IC4uL3N1Yi9iYXNlLmRhdCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LXFtYXJrLz8tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcW1hcmsvPy1wcmVmaXgvZm9vJwogL3Vz ci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgLi4vc3ViL2Jhc2UuaCAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXFtYXJrLz8tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcW1hcmsvPy1wcmVmaXgv Zm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC1xbWFyay8/LXByZWZpeC9mb28vc3ViJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIC4u L3N1Yi9ub2Jhc2UuZGF0ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rl c3QtcW1hcmsvPy1wcmVmaXgvZm9vL3N1YicKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcW1hcmsvPy1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1xbWFyay8/LXByZWZpeC9m b28vc3ViJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIC4uL3N1Yi9ub2Jhc2UuaCAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXFtYXJrLz8tcHJlZml4L2Zv by9zdWInCm1ha2VbMV06IExlYXZpbmcgZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyLz8nCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LXFtYXJrLy4vPy1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2UuaCcKdGVzdCAh IC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcW1hcmsvLi8/ LXByZWZpeC9mb28vbm9iYXNlLmgnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXFtYXJrLy4vPy1wcmVmaXgvZm9vL2Jhc2UuaCcKdGVzdCAgIC1m ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcW1hcmsvLi8/LXBy ZWZpeC9mb28vc3ViL25vYmFzZS5kYXQnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9kZXN0LXFtYXJrLy4vPy1wcmVmaXgvZm9vL25vYmFzZS5kYXQnCnRl c3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXFtYXJr Ly4vPy1wcmVmaXgvZm9vL2Jhc2UuZGF0Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1xbWFyay8uLz8tcHJlZml4L2Zvby9zdWIvbm9iYXNlLnNo Jwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1x bWFyay8uLz8tcHJlZml4L2Zvby9ub2Jhc2Uuc2gnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXFtYXJrLy4vPy1wcmVmaXgvZm9vL2Jhc2Uuc2gn CnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXFt YXJrLy4vPy1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2UnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXFtYXJrLy4vPy1wcmVmaXgvZm9vL25vYmFzZScK dGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcW1h cmsvLi8/LXByZWZpeC9mb28vYmFzZScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtcW1hcmsvLi8/LXByZWZpeC9mb28vc3ViL2xpYm5vYmFzZS5h Jwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1x bWFyay8uLz8tcHJlZml4L2Zvby9saWJub2Jhc2UuYScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcW1hcmsvLi8/LXByZWZpeC9mb28vbGliYmFz ZS5hJwojW3N0ZGVycl0rIGRlc2NyaXB0aW9uPSdxbWFyayBpbiBidWlsZGRpcicKI1tzdGRlcnJd KyBleHBlY3RlZF90b19mYWlsIGJ1aWxkIHFtYXJrCiNbc3RkZXJyXSsgY2FzZSAkMSBpbgpvayAy OSAtIHFtYXJrIGluIGJ1aWxkZGlyClBBU1M6IHQvaW5zdHNwYy50YXAgMjkgLSBxbWFyayBpbiBi dWlsZGRpcgojW3N0ZGVycl0rIGlzX2luX2xpc3QgcW1hcmsgc3F1b3RlIGRxdW90ZSBicXVvdGUg c2hhcnAgZG9sbGFyIGJzbGFzaCBhbXBlcnNhbmQgbGluZWZlZWQgcXVhZHJpZ3JhcGgwIGFfbGZf YgojW3N0ZGVycl0rIGl0ZW09cW1hcmsKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNhc2Ug IiAkKiAiIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyBkaXJlY3RpdmU9CiNbc3Rk ZXJyXSsgcmVhc29uPQojW3N0ZGVycl0rIHJlc3VsdF8gb2sgLUQgJycgLXIgJycgLS0gJ3FtYXJr IGluIGJ1aWxkZGlyJwojW3N0ZGVycl0rIHNldCAreAojW3N0ZGVycl0rIGNkIC91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIKI1tzdGRlcnJdKyBub3QgYW1fa2VlcGluZ190ZXN0 ZGlycwojW3N0ZGVycl0rIGFtX2tlZXBpbmdfdGVzdGRpcnMKI1tzdGRlcnJdKyBjYXNlICRrZWVw X3Rlc3RkaXJzIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyB0ZXN0IG9rID0gb2sK I1tzdGRlcnJdKyBybV9yZl8gJy4vPycgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LXFtYXJrCiNbc3RkZXJyXSsgdGVzdCAyIC1ndCAwCiNbc3RkZXJyXSsgY2htb2Qg LVIgdStyd3ggJy4vPycgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LXFtYXJrCiNbc3RkZXJyXSsgcm0gLXJmICcuLz8nIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1xbWFyawojW3N0ZGVycl0rIF9hbV9ybXJmX3N0YXR1cz0wCiNbc3Rk ZXJyXSsgZm9yIF9hbV9ybXJmX3YgaW4gJyIkQCInCiNbc3RkZXJyXSsgdGVzdCAtZSAnLi8/Jwoj W3N0ZGVycl0rIGZvciBfYW1fcm1yZl92IGluICciJEAiJwojW3N0ZGVycl0rIHRlc3QgLWUgL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXFtYXJrCiNbc3RkZXJyXSsg cmV0dXJuIDAKI1tzdGRlcnJdKyA6IEZvciBzaGVsbHMgd2l0aCBidXN0ZWQgJ3NldCAtZS4nCiNb c3RkZXJyXSsgZm9yIHdoZXJlIGluIGJ1aWxkIGRlc3QKI1tzdGRlcnJdKyBjYXNlICR3aGVyZSBp bgojW3N0ZGVycl0rIGJ1aWxkPWJ1aWxkLXFtYXJrCiNbc3RkZXJyXSsgZGVzdD0nL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXFtYXJrLz8nCiNbc3RkZXJyXSsgbWtk aXIgYnVpbGQtcW1hcmsKI1tzdGRlcnJdKyBjZCBidWlsZC1xbWFyawojW3N0ZGVycl0rIHI9b2sK I1tzdGRlcnJdKyAuLi9jb25maWd1cmUgLS1wcmVmaXggJy8/LXByZWZpeCcKY2hlY2tpbmcgZm9y IGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbC4uLiAvdXNyL2Jpbi9pbnN0YWxsIC1jCmNoZWNraW5n IHdoZXRoZXIgc2xlZXAgc3VwcG9ydHMgZnJhY3Rpb25hbCBzZWNvbmRzLi4uIHllcwpjaGVja2lu ZyBmaWxlc3lzdGVtIHRpbWVzdGFtcCByZXNvbHV0aW9uLi4uIDAuMDEKY2hlY2tpbmcgd2hldGhl ciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lLi4uIHllcwpjaGVja2luZyBmb3IgYSByYWNlLWZy ZWUgbWtkaXIgLXAuLi4gbWtkaXIgLXAKY2hlY2tpbmcgZm9yIGdhd2suLi4gbm8KY2hlY2tpbmcg Zm9yIG1hd2suLi4gbm8KY2hlY2tpbmcgZm9yIG5hd2suLi4gbm8KY2hlY2tpbmcgZm9yIGF3ay4u LiBhd2sKY2hlY2tpbmcgd2hldGhlciBtYWtlIHNldHMgJChNQUtFKS4uLiB5ZXMKY2hlY2tpbmcg d2hldGhlciBtYWtlIHN1cHBvcnRzIG5lc3RlZCB2YXJpYWJsZXMuLi4geWVzCmNoZWNraW5nIHhh cmdzIC1uIHdvcmtzLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIFVJRCAnNTAxJyBpcyBzdXBwb3J0 ZWQgYnkgdXN0YXIgZm9ybWF0Li4uIHllcwpjaGVja2luZyB3aGV0aGVyIEdJRCAnMjAnIGlzIHN1 cHBvcnRlZCBieSB1c3RhciBmb3JtYXQuLi4geWVzCmNoZWNraW5nIGhvdyB0byBjcmVhdGUgYSB1 c3RhciB0YXIgYXJjaGl2ZS4uLiBwbGFpbnRhcgpjaGVja2luZyBmb3IgZ2NjLi4uIGdjYwpjaGVj a2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdvcmtzLi4uIHllcwpjaGVja2luZyBmb3IgQyBj b21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUuLi4gYS5vdXQKY2hlY2tpbmcgZm9yIHN1 ZmZpeCBvZiBleGVjdXRhYmxlcy4uLiAKY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29t cGlsaW5nLi4uIG5vCmNoZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzLi4uIG8KY2hl Y2tpbmcgd2hldGhlciB0aGUgY29tcGlsZXIgc3VwcG9ydHMgR05VIEMuLi4geWVzCmNoZWNraW5n IHdoZXRoZXIgZ2NjIGFjY2VwdHMgLWcuLi4geWVzCmNoZWNraW5nIGZvciBnY2Mgb3B0aW9uIHRv IGVuYWJsZSBDMjMgZmVhdHVyZXMuLi4gLXN0ZD1nbnUyMwpjaGVja2luZyB3aGV0aGVyIGdjYyAt c3RkPWdudTIzIHVuZGVyc3RhbmRzIC1jIGFuZCAtbyB0b2dldGhlci4uLiB5ZXMKY2hlY2tpbmcg d2hldGhlciBtYWtlIHN1cHBvcnRzIHRoZSBpbmNsdWRlIGRpcmVjdGl2ZS4uLiB5ZXMgKEdOVSBz dHlsZSkKY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiBnY2MgLXN0ZD1nbnUyMy4uLiBnY2Mz CmNoZWNraW5nIGZvciBhci4uLiBhcgpjaGVja2luZyB0aGUgYXJjaGl2ZXIgKGFyKSBpbnRlcmZh Y2UuLi4gYXIKY2hlY2tpbmcgZm9yIHJhbmxpYi4uLiByYW5saWIKY2hlY2tpbmcgdGhhdCBnZW5l cmF0ZWQgZmlsZXMgYXJlIG5ld2VyIHRoYW4gY29uZmlndXJlLi4uIGRvbmUKY29uZmlndXJlOiBj cmVhdGluZyAuL2NvbmZpZy5zdGF0dXMKY29uZmlnLnN0YXR1czogY3JlYXRpbmcgTWFrZWZpbGUK Y29uZmlnLnN0YXR1czogZXhlY3V0aW5nIGRlcGZpbGVzIGNvbW1hbmRzCiNbc3RkZXJyXSsgbWFr ZSBhbGwKZ2NjIC1zdGQ9Z251MjMgLURQQUNLQUdFX05BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdF X1RBUk5BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdFX1ZFUlNJT049XCIxLjBcIiAtRFBBQ0tBR0Vf U1RSSU5HPVwiaW5zdHNwY1wgMS4wXCIgLURQQUNLQUdFX0JVR1JFUE9SVD1cIlwiIC1EUEFDS0FH RV9VUkw9XCJcIiAtRFBBQ0tBR0U9XCJpbnN0c3BjXCIgLURWRVJTSU9OPVwiMS4wXCIgLUkuIC1J Li4gICAgIC1nIC1PMiAtTVQgc291cmNlLm8gLU1EIC1NUCAtTUYgLmRlcHMvc291cmNlLlRwbyAt YyAtbyBzb3VyY2UubyAuLi9zb3VyY2UuYwptdiAtZiAuZGVwcy9zb3VyY2UuVHBvIC5kZXBzL3Nv dXJjZS5QbwpnY2MgLXN0ZD1nbnUyMyAgLWcgLU8yICAgLW8gc3ViL2Jhc2Ugc291cmNlLm8gIApn Y2MgLXN0ZD1nbnUyMyAgLWcgLU8yICAgLW8gc3ViL25vYmFzZSBzb3VyY2UubyAgCnJtIC1mIHN1 Yi9saWJiYXNlLmEKYXIgY3Igc3ViL2xpYmJhc2UuYSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJi YXNlLmEKcm0gLWYgc3ViL2xpYm5vYmFzZS5hCmFyIGNyIHN1Yi9saWJub2Jhc2UuYSBzb3VyY2Uu byAKcmFubGliIHN1Yi9saWJub2Jhc2UuYQojW3N0ZGVycl0rIERFU1RESVI9Jy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1xbWFyay8/JwojW3N0ZGVycl0rIGZpbGU9 Jy4vPycKI1tzdGRlcnJdKyBtYWtlIHRlc3QtaW5zdAptYWtlWzFdOiBFbnRlcmluZyBkaXJlY3Rv cnkgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvYnVpbGQtcW1hcmsnCiBt a2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXFtYXJr Lz8vPy1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAuLi9zdWIvYmFzZS5zaCAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXFtYXJrLz8vPy1wcmVmaXgv Zm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC1xbWFyay8/Lz8tcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICBzdWIv bGliYmFzZS5hICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcW1h cmsvPy8/LXByZWZpeC9mb28nCiAoIGNkICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtcW1hcmsvPy8/LXByZWZpeC9mb28nICYmIHJhbmxpYiBsaWJiYXNlLmEgKQog bWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1xbWFy ay8/Lz8tcHJlZml4L2ZvbycKICAvdXNyL2Jpbi9pbnN0YWxsIC1jIHN1Yi9iYXNlICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcW1hcmsvPy8/LXByZWZpeC9mb28n CiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXFt YXJrLz8vPy1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1xbWFyay8/Lz8tcHJlZml4L2Zvby9zdWIvJwogL3Vzci9iaW4vaW5z dGFsbCAtYyAuLi9zdWIvbm9iYXNlLnNoICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtcW1hcmsvPy8/LXByZWZpeC9mb28vc3ViLycKIG1rZGlyIC1wICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcW1hcmsvPy8/LXByZWZpeC9mb28n CiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXFt YXJrLz8vPy1wcmVmaXgvZm9vL3N1YicKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICBzdWIv bGlibm9iYXNlLmEgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1x bWFyay8/Lz8tcHJlZml4L2Zvby9zdWInCiAoIGNkICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3QtcW1hcmsvPy8/LXByZWZpeC9mb28nICYmIHJhbmxpYiBzdWIvbGli bm9iYXNlLmEgKQogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1xbWFyay8/Lz8tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcW1hcmsvPy8/LXByZWZpeC9mb28vc3ViLycKICAv dXNyL2Jpbi9pbnN0YWxsIC1jIHN1Yi9ub2Jhc2UgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1xbWFyay8/Lz8tcHJlZml4L2Zvby9zdWIvJwogbWtkaXIgLXAgJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1xbWFyay8/Lz8tcHJlZml4 L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0IC4uL3N1Yi9iYXNlLmRhdCAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXFtYXJrLz8vPy1wcmVmaXgvZm9v JwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1x bWFyay8/Lz8tcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0IC4uL3N1Yi9i YXNlLmggJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1xbWFyay8/ Lz8tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtcW1hcmsvPy8/LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXFtYXJrLz8vPy1wcmVmaXgvZm9vL3N1YicK IC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICAuLi9zdWIvbm9iYXNlLmRhdCAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXFtYXJrLz8vPy1wcmVmaXgvZm9vL3N1 YicKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt cW1hcmsvPy8/LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXFtYXJrLz8vPy1wcmVmaXgvZm9vL3N1YicKIC91c3IvYmluL2lu c3RhbGwgLWMgLW0gNjQ0ICAuLi9zdWIvbm9iYXNlLmggJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1xbWFyay8/Lz8tcHJlZml4L2Zvby9zdWInCm1ha2VbMV06IExl YXZpbmcgZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2J1 aWxkLXFtYXJrJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1xbWFyay8/Ly4vPy1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2UuaCcKdGVzdCAhIC1mICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcW1hcmsvPy8uLz8tcHJl Zml4L2Zvby9ub2Jhc2UuaCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtcW1hcmsvPy8uLz8tcHJlZml4L2Zvby9iYXNlLmgnCnRlc3QgICAtZiAn L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXFtYXJrLz8vLi8/LXBy ZWZpeC9mb28vc3ViL25vYmFzZS5kYXQnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9kZXN0LXFtYXJrLz8vLi8/LXByZWZpeC9mb28vbm9iYXNlLmRhdCcK dGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcW1h cmsvPy8uLz8tcHJlZml4L2Zvby9iYXNlLmRhdCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcW1hcmsvPy8uLz8tcHJlZml4L2Zvby9zdWIvbm9i YXNlLnNoJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1xbWFyay8/Ly4vPy1wcmVmaXgvZm9vL25vYmFzZS5zaCcKdGVzdCAgIC1mICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcW1hcmsvPy8uLz8tcHJlZml4L2Zv by9iYXNlLnNoJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1xbWFyay8/Ly4vPy1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2UnCnRlc3QgISAtZiAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXFtYXJrLz8vLi8/LXByZWZp eC9mb28vbm9iYXNlJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1xbWFyay8/Ly4vPy1wcmVmaXgvZm9vL2Jhc2UnCnRlc3QgICAtZiAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXFtYXJrLz8vLi8/LXByZWZpeC9m b28vc3ViL2xpYm5vYmFzZS5hJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1xbWFyay8/Ly4vPy1wcmVmaXgvZm9vL2xpYm5vYmFzZS5hJwp0ZXN0 ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1xbWFyay8/ Ly4vPy1wcmVmaXgvZm9vL2xpYmJhc2UuYScKI1tzdGRlcnJdKyBkZXNjcmlwdGlvbj0ncW1hcmsg aW4gZGVzdGRpcicKI1tzdGRlcnJdKyBleHBlY3RlZF90b19mYWlsIGRlc3QgcW1hcmsKI1tzdGRl cnJdKyBjYXNlICQxIGluCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBxbWFyayBzcXVvdGUgZHF1b3Rl IGJxdW90ZSBzaGFycCBkb2xsYXIgbGluZWZlZWQgYV9sZl9iCiNbc3RkZXJyXSsgaXRlbT1xbWFy awojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4Kb2sgMzAgLSBxbWFy ayBpbiBkZXN0ZGlyClBBU1M6IHQvaW5zdHNwYy50YXAgMzAgLSBxbWFyayBpbiBkZXN0ZGlyCiNb c3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyBkaXJlY3RpdmU9CiNbc3RkZXJyXSsgcmVhc29u PQojW3N0ZGVycl0rIHJlc3VsdF8gb2sgLUQgJycgLXIgJycgLS0gJ3FtYXJrIGluIGRlc3RkaXIn CiNbc3RkZXJyXSsgc2V0ICt4CiNbc3RkZXJyXSsgY2QgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpcgojW3N0ZGVycl0rIG5vdCBhbV9rZWVwaW5nX3Rlc3RkaXJzCiNbc3RkZXJy XSsgYW1fa2VlcGluZ190ZXN0ZGlycwojW3N0ZGVycl0rIGNhc2UgJGtlZXBfdGVzdGRpcnMgaW4K I1tzdGRlcnJdKyByZXR1cm4gMQojW3N0ZGVycl0rIHRlc3Qgb2sgPSBvawojW3N0ZGVycl0rIHJt X3JmXyBidWlsZC1xbWFyayAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LXFtYXJrLz8nCiNbc3RkZXJyXSsgdGVzdCAyIC1ndCAwCiNbc3RkZXJyXSsgY2htb2QgLVIg dStyd3ggYnVpbGQtcW1hcmsgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1xbWFyay8/JwojW3N0ZGVycl0rIHJtIC1yZiBidWlsZC1xbWFyayAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXFtYXJrLz8nCiNbc3RkZXJyXSsgX2FtX3Jt cmZfc3RhdHVzPTAKI1tzdGRlcnJdKyBmb3IgX2FtX3JtcmZfdiBpbiAnIiRAIicKI1tzdGRlcnJd KyB0ZXN0IC1lIGJ1aWxkLXFtYXJrCiNbc3RkZXJyXSsgZm9yIF9hbV9ybXJmX3YgaW4gJyIkQCIn CiNbc3RkZXJyXSsgdGVzdCAtZSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LXFtYXJrLz8nCiNbc3RkZXJyXSsgcmV0dXJuIDAKI1tzdGRlcnJdKyA6IEZvciBzaGVs bHMgd2l0aCBidXN0ZWQgJ3NldCAtZS4nCiNbc3RkZXJyXSsgZm9yIHRlc3RfbmFtZSBpbiAnJHRl c3RfbmFtZXNfbGlzdCcKI1tzdGRlcnJdKyBldmFsICd0ZXN0X3N0cmluZz0ke2luc3RzcGNfX3N0 YXJ9JwojW3N0ZGVycl0rKyB0ZXN0X3N0cmluZz0nKicKI1tzdGRlcnJdKyB0ZXN0ICd4KicgPSB4 CiNbc3RkZXJyXSsgbWtkaXIgJy4vKicKI1tzdGRlcnJdKyBjYXNlICR0ZXN0X3N0cmluZyBpbgoj W3N0ZGVycl0rIGZvciB3aGVyZSBpbiBidWlsZCBkZXN0CiNbc3RkZXJyXSsgY2FzZSAkd2hlcmUg aW4KI1tzdGRlcnJdKyBidWlsZD0nLi8qJwojW3N0ZGVycl0rIGRlc3Q9L3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXN0YXIKI1tzdGRlcnJdKyBjZCAnLi8qJwojW3N0 ZGVycl0rIHI9b2sKI1tzdGRlcnJdKyAuLi9jb25maWd1cmUgLS1wcmVmaXggJy8qLXByZWZpeCcK Y2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbC4uLiAvdXNyL2Jpbi9pbnN0YWxs IC1jCmNoZWNraW5nIHdoZXRoZXIgc2xlZXAgc3VwcG9ydHMgZnJhY3Rpb25hbCBzZWNvbmRzLi4u IHllcwpjaGVja2luZyBmaWxlc3lzdGVtIHRpbWVzdGFtcCByZXNvbHV0aW9uLi4uIDAuMDEKY2hl Y2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lLi4uIHllcwpjaGVja2luZyBm b3IgYSByYWNlLWZyZWUgbWtkaXIgLXAuLi4gbWtkaXIgLXAKY2hlY2tpbmcgZm9yIGdhd2suLi4g bm8KY2hlY2tpbmcgZm9yIG1hd2suLi4gbm8KY2hlY2tpbmcgZm9yIG5hd2suLi4gbm8KY2hlY2tp bmcgZm9yIGF3ay4uLiBhd2sKY2hlY2tpbmcgd2hldGhlciBtYWtlIHNldHMgJChNQUtFKS4uLiB5 ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRzIG5lc3RlZCB2YXJpYWJsZXMuLi4geWVz CmNoZWNraW5nIHhhcmdzIC1uIHdvcmtzLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIFVJRCAnNTAx JyBpcyBzdXBwb3J0ZWQgYnkgdXN0YXIgZm9ybWF0Li4uIHllcwpjaGVja2luZyB3aGV0aGVyIEdJ RCAnMjAnIGlzIHN1cHBvcnRlZCBieSB1c3RhciBmb3JtYXQuLi4geWVzCmNoZWNraW5nIGhvdyB0 byBjcmVhdGUgYSB1c3RhciB0YXIgYXJjaGl2ZS4uLiBwbGFpbnRhcgpjaGVja2luZyBmb3IgZ2Nj Li4uIGdjYwpjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdvcmtzLi4uIHllcwpjaGVj a2luZyBmb3IgQyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUuLi4gYS5vdXQKY2hl Y2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcy4uLiAKY2hlY2tpbmcgd2hldGhlciB3ZSBh cmUgY3Jvc3MgY29tcGlsaW5nLi4uIG5vCmNoZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZp bGVzLi4uIG8KY2hlY2tpbmcgd2hldGhlciB0aGUgY29tcGlsZXIgc3VwcG9ydHMgR05VIEMuLi4g eWVzCmNoZWNraW5nIHdoZXRoZXIgZ2NjIGFjY2VwdHMgLWcuLi4geWVzCmNoZWNraW5nIGZvciBn Y2Mgb3B0aW9uIHRvIGVuYWJsZSBDMjMgZmVhdHVyZXMuLi4gLXN0ZD1nbnUyMwpjaGVja2luZyB3 aGV0aGVyIGdjYyAtc3RkPWdudTIzIHVuZGVyc3RhbmRzIC1jIGFuZCAtbyB0b2dldGhlci4uLiB5 ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRzIHRoZSBpbmNsdWRlIGRpcmVjdGl2ZS4u LiB5ZXMgKEdOVSBzdHlsZSkKY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiBnY2MgLXN0ZD1n bnUyMy4uLiBnY2MzCmNoZWNraW5nIGZvciBhci4uLiBhcgpjaGVja2luZyB0aGUgYXJjaGl2ZXIg KGFyKSBpbnRlcmZhY2UuLi4gYXIKY2hlY2tpbmcgZm9yIHJhbmxpYi4uLiByYW5saWIKY2hlY2tp bmcgdGhhdCBnZW5lcmF0ZWQgZmlsZXMgYXJlIG5ld2VyIHRoYW4gY29uZmlndXJlLi4uIGRvbmUK Y29uZmlndXJlOiBjcmVhdGluZyAuL2NvbmZpZy5zdGF0dXMKY29uZmlnLnN0YXR1czogY3JlYXRp bmcgTWFrZWZpbGUKY29uZmlnLnN0YXR1czogZXhlY3V0aW5nIGRlcGZpbGVzIGNvbW1hbmRzCiNb c3RkZXJyXSsgbWFrZSBhbGwKZ2NjIC1zdGQ9Z251MjMgLURQQUNLQUdFX05BTUU9XCJpbnN0c3Bj XCIgLURQQUNLQUdFX1RBUk5BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdFX1ZFUlNJT049XCIxLjBc IiAtRFBBQ0tBR0VfU1RSSU5HPVwiaW5zdHNwY1wgMS4wXCIgLURQQUNLQUdFX0JVR1JFUE9SVD1c IlwiIC1EUEFDS0FHRV9VUkw9XCJcIiAtRFBBQ0tBR0U9XCJpbnN0c3BjXCIgLURWRVJTSU9OPVwi MS4wXCIgLUkuIC1JLi4gICAgIC1nIC1PMiAtTVQgc291cmNlLm8gLU1EIC1NUCAtTUYgLmRlcHMv c291cmNlLlRwbyAtYyAtbyBzb3VyY2UubyAuLi9zb3VyY2UuYwptdiAtZiAuZGVwcy9zb3VyY2Uu VHBvIC5kZXBzL3NvdXJjZS5QbwpnY2MgLXN0ZD1nbnUyMyAgLWcgLU8yICAgLW8gc3ViL2Jhc2Ug c291cmNlLm8gIApnY2MgLXN0ZD1nbnUyMyAgLWcgLU8yICAgLW8gc3ViL25vYmFzZSBzb3VyY2Uu byAgCnJtIC1mIHN1Yi9saWJiYXNlLmEKYXIgY3Igc3ViL2xpYmJhc2UuYSBzb3VyY2UubyAKcmFu bGliIHN1Yi9saWJiYXNlLmEKcm0gLWYgc3ViL2xpYm5vYmFzZS5hCmFyIGNyIHN1Yi9saWJub2Jh c2UuYSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJub2Jhc2UuYQojW3N0ZGVycl0rIERFU1RESVI9 L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXN0YXIKI1tzdGRlcnJd KyBmaWxlPScuLyonCiNbc3RkZXJyXSsgbWFrZSB0ZXN0LWluc3QKbWFrZVsxXTogRW50ZXJpbmcg ZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyLyonCiBta2Rp ciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXN0YXIvKi1w cmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAuLi9zdWIvYmFzZS5zaCAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXN0YXIvKi1wcmVmaXgvZm9vJwogbWtk aXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zdGFyLyot cHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICBzdWIvbGliYmFzZS5hICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3Rhci8qLXByZWZpeC9m b28nCiAoIGNkICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3Rh ci8qLXByZWZpeC9mb28nICYmIHJhbmxpYiBsaWJiYXNlLmEgKQogbWtkaXIgLXAgJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zdGFyLyotcHJlZml4L2ZvbycKICAv dXNyL2Jpbi9pbnN0YWxsIC1jIHN1Yi9iYXNlICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3Qtc3Rhci8qLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXN0YXIvKi1wcmVmaXgvZm9vJwogbWtkaXIg LXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zdGFyLyotcHJl Zml4L2Zvby9zdWIvJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAuLi9zdWIvbm9iYXNlLnNoICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3Rhci8qLXByZWZpeC9mb28v c3ViLycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rl c3Qtc3Rhci8qLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXN0YXIvKi1wcmVmaXgvZm9vL3N1YicKIC91c3IvYmluL2luc3Rh bGwgLWMgLW0gNjQ0ICBzdWIvbGlibm9iYXNlLmEgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1zdGFyLyotcHJlZml4L2Zvby9zdWInCiAoIGNkICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3Rhci8qLXByZWZpeC9mb28nICYmIHJh bmxpYiBzdWIvbGlibm9iYXNlLmEgKQogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1zdGFyLyotcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3Rhci8qLXByZWZpeC9mb28vc3Vi LycKICAvdXNyL2Jpbi9pbnN0YWxsIC1jIHN1Yi9ub2Jhc2UgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zdGFyLyotcHJlZml4L2Zvby9zdWIvJwogbWtkaXIgLXAg Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zdGFyLyotcHJlZml4 L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0IC4uL3N1Yi9iYXNlLmRhdCAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXN0YXIvKi1wcmVmaXgvZm9vJwog bWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zdGFy LyotcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0IC4uL3N1Yi9iYXNlLmgg Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zdGFyLyotcHJlZml4 L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rl c3Qtc3Rhci8qLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXN0YXIvKi1wcmVmaXgvZm9vL3N1YicKIC91c3IvYmluL2luc3Rh bGwgLWMgLW0gNjQ0ICAuLi9zdWIvbm9iYXNlLmRhdCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXN0YXIvKi1wcmVmaXgvZm9vL3N1YicKIG1rZGlyIC1wICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3Rhci8qLXByZWZpeC9mb28n CiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXN0 YXIvKi1wcmVmaXgvZm9vL3N1YicKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICAuLi9zdWIv bm9iYXNlLmggJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zdGFy LyotcHJlZml4L2Zvby9zdWInCm1ha2VbMV06IExlYXZpbmcgZGlyZWN0b3J5ICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyLyonCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXN0YXIvLi8qLXByZWZpeC9mb28vc3ViL25vYmFz ZS5oJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC1zdGFyLy4vKi1wcmVmaXgvZm9vL25vYmFzZS5oJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3Jj L2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zdGFyLy4vKi1wcmVmaXgvZm9vL2Jhc2UuaCcK dGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3Rh ci8uLyotcHJlZml4L2Zvby9zdWIvbm9iYXNlLmRhdCcKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3Rhci8uLyotcHJlZml4L2Zvby9ub2Jhc2Uu ZGF0Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC1zdGFyLy4vKi1wcmVmaXgvZm9vL2Jhc2UuZGF0Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3Jj L2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zdGFyLy4vKi1wcmVmaXgvZm9vL3N1Yi9ub2Jh c2Uuc2gnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LXN0YXIvLi8qLXByZWZpeC9mb28vbm9iYXNlLnNoJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zdGFyLy4vKi1wcmVmaXgvZm9vL2Jhc2Uu c2gnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LXN0YXIvLi8qLXByZWZpeC9mb28vc3ViL25vYmFzZScKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3Rhci8uLyotcHJlZml4L2Zvby9ub2Jhc2Un CnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXN0 YXIvLi8qLXByZWZpeC9mb28vYmFzZScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3Rhci8uLyotcHJlZml4L2Zvby9zdWIvbGlibm9iYXNlLmEn CnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXN0 YXIvLi8qLXByZWZpeC9mb28vbGlibm9iYXNlLmEnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXN0YXIvLi8qLXByZWZpeC9mb28vbGliYmFzZS5h JwojW3N0ZGVycl0rIGRlc2NyaXB0aW9uPSdzdGFyIGluIGJ1aWxkZGlyJwojW3N0ZGVycl0rIGV4 cGVjdGVkX3RvX2ZhaWwgYnVpbGQgc3RhcgojW3N0ZGVycl0rIGNhc2UgJDEgaW4KI1tzdGRlcnJd KyBpc19pbl9saXN0IHN0YXIgc3F1b3RlIGRxdW90ZSBicXVvdGUgc2hhcnAgZG9sbGFyIGJzbGFz aCBhbXBlcnNhbmQgbGluZWZlZWQgcXVhZHJpZ3JhcGgwIGFfbGZfYgpvayAzMSAtIHN0YXIgaW4g YnVpbGRkaXIKUEFTUzogdC9pbnN0c3BjLnRhcCAzMSAtIHN0YXIgaW4gYnVpbGRkaXIKI1tzdGRl cnJdKyBpdGVtPXN0YXIKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNhc2UgIiAkKiAiIGlu CiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyBkaXJlY3RpdmU9CiNbc3RkZXJyXSsgcmVh c29uPQojW3N0ZGVycl0rIHJlc3VsdF8gb2sgLUQgJycgLXIgJycgLS0gJ3N0YXIgaW4gYnVpbGRk aXInCiNbc3RkZXJyXSsgc2V0ICt4CiNbc3RkZXJyXSsgY2QgL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpcgojW3N0ZGVycl0rIG5vdCBhbV9rZWVwaW5nX3Rlc3RkaXJzCiNbc3Rk ZXJyXSsgYW1fa2VlcGluZ190ZXN0ZGlycwojW3N0ZGVycl0rIGNhc2UgJGtlZXBfdGVzdGRpcnMg aW4KI1tzdGRlcnJdKyByZXR1cm4gMQojW3N0ZGVycl0rIHRlc3Qgb2sgPSBvawojW3N0ZGVycl0r IHJtX3JmXyAnLi8qJyAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt c3RhcgojW3N0ZGVycl0rIHRlc3QgMiAtZ3QgMAojW3N0ZGVycl0rIGNobW9kIC1SIHUrcnd4ICcu LyonIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zdGFyCiNbc3Rk ZXJyXSsgcm0gLXJmICcuLyonIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1zdGFyCiNbc3RkZXJyXSsgX2FtX3JtcmZfc3RhdHVzPTAKI1tzdGRlcnJdKyBmb3IgX2Ft X3JtcmZfdiBpbiAnIiRAIicKI1tzdGRlcnJdKyB0ZXN0IC1lICcuLyonCiNbc3RkZXJyXSsgZm9y IF9hbV9ybXJmX3YgaW4gJyIkQCInCiNbc3RkZXJyXSsgdGVzdCAtZSAvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3RhcgojW3N0ZGVycl0rIHJldHVybiAwCiNbc3Rk ZXJyXSsgOiBGb3Igc2hlbGxzIHdpdGggYnVzdGVkICdzZXQgLWUuJwojW3N0ZGVycl0rIGZvciB3 aGVyZSBpbiBidWlsZCBkZXN0CiNbc3RkZXJyXSsgY2FzZSAkd2hlcmUgaW4KI1tzdGRlcnJdKyBi dWlsZD1idWlsZC1zdGFyCiNbc3RkZXJyXSsgZGVzdD0nL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXN0YXIvKicKI1tzdGRlcnJdKyBta2RpciBidWlsZC1zdGFyCiNb c3RkZXJyXSsgY2QgYnVpbGQtc3RhcgojW3N0ZGVycl0rIHI9b2sKI1tzdGRlcnJdKyAuLi9jb25m aWd1cmUgLS1wcmVmaXggJy8qLXByZWZpeCcKY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUg aW5zdGFsbC4uLiAvdXNyL2Jpbi9pbnN0YWxsIC1jCmNoZWNraW5nIHdoZXRoZXIgc2xlZXAgc3Vw cG9ydHMgZnJhY3Rpb25hbCBzZWNvbmRzLi4uIHllcwpjaGVja2luZyBmaWxlc3lzdGVtIHRpbWVz dGFtcCByZXNvbHV0aW9uLi4uIDAuMDEKY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9ubWVu dCBpcyBzYW5lLi4uIHllcwpjaGVja2luZyBmb3IgYSByYWNlLWZyZWUgbWtkaXIgLXAuLi4gbWtk aXIgLXAKY2hlY2tpbmcgZm9yIGdhd2suLi4gbm8KY2hlY2tpbmcgZm9yIG1hd2suLi4gbm8KY2hl Y2tpbmcgZm9yIG5hd2suLi4gbm8KY2hlY2tpbmcgZm9yIGF3ay4uLiBhd2sKY2hlY2tpbmcgd2hl dGhlciBtYWtlIHNldHMgJChNQUtFKS4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBv cnRzIG5lc3RlZCB2YXJpYWJsZXMuLi4geWVzCmNoZWNraW5nIHhhcmdzIC1uIHdvcmtzLi4uIHll cwpjaGVja2luZyB3aGV0aGVyIFVJRCAnNTAxJyBpcyBzdXBwb3J0ZWQgYnkgdXN0YXIgZm9ybWF0 Li4uIHllcwpjaGVja2luZyB3aGV0aGVyIEdJRCAnMjAnIGlzIHN1cHBvcnRlZCBieSB1c3RhciBm b3JtYXQuLi4geWVzCmNoZWNraW5nIGhvdyB0byBjcmVhdGUgYSB1c3RhciB0YXIgYXJjaGl2ZS4u LiBwbGFpbnRhcgpjaGVja2luZyBmb3IgZ2NjLi4uIGdjYwpjaGVja2luZyB3aGV0aGVyIHRoZSBD IGNvbXBpbGVyIHdvcmtzLi4uIHllcwpjaGVja2luZyBmb3IgQyBjb21waWxlciBkZWZhdWx0IG91 dHB1dCBmaWxlIG5hbWUuLi4gYS5vdXQKY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxl cy4uLiAKY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nLi4uIG5vCmNoZWNr aW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzLi4uIG8KY2hlY2tpbmcgd2hldGhlciB0aGUg Y29tcGlsZXIgc3VwcG9ydHMgR05VIEMuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgZ2NjIGFjY2Vw dHMgLWcuLi4geWVzCmNoZWNraW5nIGZvciBnY2Mgb3B0aW9uIHRvIGVuYWJsZSBDMjMgZmVhdHVy ZXMuLi4gLXN0ZD1nbnUyMwpjaGVja2luZyB3aGV0aGVyIGdjYyAtc3RkPWdudTIzIHVuZGVyc3Rh bmRzIC1jIGFuZCAtbyB0b2dldGhlci4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBv cnRzIHRoZSBpbmNsdWRlIGRpcmVjdGl2ZS4uLiB5ZXMgKEdOVSBzdHlsZSkKY2hlY2tpbmcgZGVw ZW5kZW5jeSBzdHlsZSBvZiBnY2MgLXN0ZD1nbnUyMy4uLiBnY2MzCmNoZWNraW5nIGZvciBhci4u LiBhcgpjaGVja2luZyB0aGUgYXJjaGl2ZXIgKGFyKSBpbnRlcmZhY2UuLi4gYXIKY2hlY2tpbmcg Zm9yIHJhbmxpYi4uLiByYW5saWIKY2hlY2tpbmcgdGhhdCBnZW5lcmF0ZWQgZmlsZXMgYXJlIG5l d2VyIHRoYW4gY29uZmlndXJlLi4uIGRvbmUKY29uZmlndXJlOiBjcmVhdGluZyAuL2NvbmZpZy5z dGF0dXMKY29uZmlnLnN0YXR1czogY3JlYXRpbmcgTWFrZWZpbGUKY29uZmlnLnN0YXR1czogZXhl Y3V0aW5nIGRlcGZpbGVzIGNvbW1hbmRzCiNbc3RkZXJyXSsgbWFrZSBhbGwKZ2NjIC1zdGQ9Z251 MjMgLURQQUNLQUdFX05BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdFX1RBUk5BTUU9XCJpbnN0c3Bj XCIgLURQQUNLQUdFX1ZFUlNJT049XCIxLjBcIiAtRFBBQ0tBR0VfU1RSSU5HPVwiaW5zdHNwY1wg MS4wXCIgLURQQUNLQUdFX0JVR1JFUE9SVD1cIlwiIC1EUEFDS0FHRV9VUkw9XCJcIiAtRFBBQ0tB R0U9XCJpbnN0c3BjXCIgLURWRVJTSU9OPVwiMS4wXCIgLUkuIC1JLi4gICAgIC1nIC1PMiAtTVQg c291cmNlLm8gLU1EIC1NUCAtTUYgLmRlcHMvc291cmNlLlRwbyAtYyAtbyBzb3VyY2UubyAuLi9z b3VyY2UuYwptdiAtZiAuZGVwcy9zb3VyY2UuVHBvIC5kZXBzL3NvdXJjZS5QbwpnY2MgLXN0ZD1n bnUyMyAgLWcgLU8yICAgLW8gc3ViL2Jhc2Ugc291cmNlLm8gIApnY2MgLXN0ZD1nbnUyMyAgLWcg LU8yICAgLW8gc3ViL25vYmFzZSBzb3VyY2UubyAgCnJtIC1mIHN1Yi9saWJiYXNlLmEKYXIgY3Ig c3ViL2xpYmJhc2UuYSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJiYXNlLmEKcm0gLWYgc3ViL2xp Ym5vYmFzZS5hCmFyIGNyIHN1Yi9saWJub2Jhc2UuYSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJu b2Jhc2UuYQojW3N0ZGVycl0rIERFU1RESVI9Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1zdGFyLyonCiNbc3RkZXJyXSsgZmlsZT0nLi8qJwojW3N0ZGVycl0rIG1h a2UgdGVzdC1pbnN0Cm1ha2VbMV06IEVudGVyaW5nIGRpcmVjdG9yeSAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9idWlsZC1zdGFyJwogbWtkaXIgLXAgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zdGFyLyovKi1wcmVmaXgvZm9vJwogL3Vz ci9iaW4vaW5zdGFsbCAtYyAuLi9zdWIvYmFzZS5zaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXN0YXIvKi8qLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXN0YXIvKi8qLXByZWZpeC9mb28n CiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAgc3ViL2xpYmJhc2UuYSAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXN0YXIvKi8qLXByZWZpeC9mb28nCiAoIGNk ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3Rhci8qLyotcHJl Zml4L2ZvbycgJiYgcmFubGliIGxpYmJhc2UuYSApCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXN0YXIvKi8qLXByZWZpeC9mb28nCiAgL3Vzci9i aW4vaW5zdGFsbCAtYyBzdWIvYmFzZSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LXN0YXIvKi8qLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXN0YXIvKi8qLXByZWZpeC9mb28nCiBta2RpciAt cCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXN0YXIvKi8qLXBy ZWZpeC9mb28vc3ViLycKIC91c3IvYmluL2luc3RhbGwgLWMgLi4vc3ViL25vYmFzZS5zaCAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXN0YXIvKi8qLXByZWZpeC9m b28vc3ViLycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3Qtc3Rhci8qLyotcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3Rhci8qLyotcHJlZml4L2Zvby9zdWInCiAvdXNyL2Jp bi9pbnN0YWxsIC1jIC1tIDY0NCAgc3ViL2xpYm5vYmFzZS5hICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3Rhci8qLyotcHJlZml4L2Zvby9zdWInCiAoIGNkICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3Rhci8qLyotcHJlZml4 L2ZvbycgJiYgcmFubGliIHN1Yi9saWJub2Jhc2UuYSApCiBta2RpciAtcCAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXN0YXIvKi8qLXByZWZpeC9mb28nCiBta2Rp ciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXN0YXIvKi8q LXByZWZpeC9mb28vc3ViLycKICAvdXNyL2Jpbi9pbnN0YWxsIC1jIHN1Yi9ub2Jhc2UgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zdGFyLyovKi1wcmVmaXgvZm9v L3N1Yi8nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LXN0YXIvKi8qLXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAuLi9z dWIvYmFzZS5kYXQgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1z dGFyLyovKi1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1zdGFyLyovKi1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAt YyAtbSA2NDQgLi4vc3ViL2Jhc2UuaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LXN0YXIvKi8qLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXN0YXIvKi8qLXByZWZpeC9mb28nCiBta2RpciAt cCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXN0YXIvKi8qLXBy ZWZpeC9mb28vc3ViJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIC4uL3N1Yi9ub2Jhc2Uu ZGF0ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3Rhci8qLyot cHJlZml4L2Zvby9zdWInCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9kZXN0LXN0YXIvKi8qLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXN0YXIvKi8qLXByZWZpeC9mb28vc3ViJwog L3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIC4uL3N1Yi9ub2Jhc2UuaCAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXN0YXIvKi8qLXByZWZpeC9mb28vc3ViJwpt YWtlWzFdOiBMZWF2aW5nIGRpcmVjdG9yeSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9idWlsZC1zdGFyJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1zdGFyLyovLi8qLXByZWZpeC9mb28vc3ViL25vYmFzZS5oJwp0ZXN0 ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zdGFyLyov Li8qLXByZWZpeC9mb28vbm9iYXNlLmgnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9kZXN0LXN0YXIvKi8uLyotcHJlZml4L2Zvby9iYXNlLmgnCnRlc3Qg ICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXN0YXIvKi8u LyotcHJlZml4L2Zvby9zdWIvbm9iYXNlLmRhdCcKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3Rhci8qLy4vKi1wcmVmaXgvZm9vL25vYmFzZS5k YXQnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LXN0YXIvKi8uLyotcHJlZml4L2Zvby9iYXNlLmRhdCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3Rhci8qLy4vKi1wcmVmaXgvZm9vL3N1Yi9u b2Jhc2Uuc2gnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LXN0YXIvKi8uLyotcHJlZml4L2Zvby9ub2Jhc2Uuc2gnCnRlc3QgICAtZiAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXN0YXIvKi8uLyotcHJlZml4L2Zv by9iYXNlLnNoJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1zdGFyLyovLi8qLXByZWZpeC9mb28vc3ViL25vYmFzZScKdGVzdCAhIC1mICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3Rhci8qLy4vKi1wcmVmaXgv Zm9vL25vYmFzZScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyL2Rlc3Qtc3Rhci8qLy4vKi1wcmVmaXgvZm9vL2Jhc2UnCnRlc3QgICAtZiAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXN0YXIvKi8uLyotcHJlZml4L2Zvby9z dWIvbGlibm9iYXNlLmEnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9kZXN0LXN0YXIvKi8uLyotcHJlZml4L2Zvby9saWJub2Jhc2UuYScKdGVzdCAgIC1m ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc3Rhci8qLy4vKi1w cmVmaXgvZm9vL2xpYmJhc2UuYScKI1tzdGRlcnJdKyBkZXNjcmlwdGlvbj0nc3RhciBpbiBkZXN0 ZGlyJwojW3N0ZGVycl0rIGV4cGVjdGVkX3RvX2ZhaWwgZGVzdCBzdGFyCiNbc3RkZXJyXSsgY2Fz ZSAkMSBpbgpvayAzMiAtIHN0YXIgaW4gZGVzdGRpcgpQQVNTOiB0L2luc3RzcGMudGFwIDMyIC0g c3RhciBpbiBkZXN0ZGlyCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBzdGFyIHNxdW90ZSBkcXVvdGUg YnF1b3RlIHNoYXJwIGRvbGxhciBsaW5lZmVlZCBhX2xmX2IKI1tzdGRlcnJdKyBpdGVtPXN0YXIK I1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNhc2UgIiAkKiAiIGluCiNbc3RkZXJyXSsgcmV0 dXJuIDEKI1tzdGRlcnJdKyBkaXJlY3RpdmU9CiNbc3RkZXJyXSsgcmVhc29uPQojW3N0ZGVycl0r IHJlc3VsdF8gb2sgLUQgJycgLXIgJycgLS0gJ3N0YXIgaW4gZGVzdGRpcicKI1tzdGRlcnJdKyBz ZXQgK3gKI1tzdGRlcnJdKyBjZCAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly CiNbc3RkZXJyXSsgbm90IGFtX2tlZXBpbmdfdGVzdGRpcnMKI1tzdGRlcnJdKyBhbV9rZWVwaW5n X3Rlc3RkaXJzCiNbc3RkZXJyXSsgY2FzZSAka2VlcF90ZXN0ZGlycyBpbgojW3N0ZGVycl0rIHJl dHVybiAxCiNbc3RkZXJyXSsgdGVzdCBvayA9IG9rCiNbc3RkZXJyXSsgcm1fcmZfIGJ1aWxkLXN0 YXIgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zdGFyLyonCiNb c3RkZXJyXSsgdGVzdCAyIC1ndCAwCiNbc3RkZXJyXSsgY2htb2QgLVIgdStyd3ggYnVpbGQtc3Rh ciAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXN0YXIvKicKI1tz dGRlcnJdKyBybSAtcmYgYnVpbGQtc3RhciAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9kZXN0LXN0YXIvKicKI1tzdGRlcnJdKyBfYW1fcm1yZl9zdGF0dXM9MAojW3N0ZGVy cl0rIGZvciBfYW1fcm1yZl92IGluICciJEAiJwojW3N0ZGVycl0rIHRlc3QgLWUgYnVpbGQtc3Rh cgojW3N0ZGVycl0rIGZvciBfYW1fcm1yZl92IGluICciJEAiJwojW3N0ZGVycl0rIHRlc3QgLWUg Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zdGFyLyonCiNbc3Rk ZXJyXSsgcmV0dXJuIDAKI1tzdGRlcnJdKyA6IEZvciBzaGVsbHMgd2l0aCBidXN0ZWQgJ3NldCAt ZS4nCiNbc3RkZXJyXSsgZm9yIHRlc3RfbmFtZSBpbiAnJHRlc3RfbmFtZXNfbGlzdCcKI1tzdGRl cnJdKyBldmFsICd0ZXN0X3N0cmluZz0ke2luc3RzcGNfX3BsdXN9JwojW3N0ZGVycl0rKyB0ZXN0 X3N0cmluZz0rCiNbc3RkZXJyXSsgdGVzdCB4KyA9IHgKI1tzdGRlcnJdKyBta2RpciAuLysKI1tz dGRlcnJdKyBjYXNlICR0ZXN0X3N0cmluZyBpbgojW3N0ZGVycl0rIGZvciB3aGVyZSBpbiBidWls ZCBkZXN0CiNbc3RkZXJyXSsgY2FzZSAkd2hlcmUgaW4KI1tzdGRlcnJdKyBidWlsZD0uLysKI1tz dGRlcnJdKyBkZXN0PS91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1w bHVzCiNbc3RkZXJyXSsgY2QgLi8rCiNbc3RkZXJyXSsgcj1vawojW3N0ZGVycl0rIC4uL2NvbmZp Z3VyZSAtLXByZWZpeCAvKy1wcmVmaXgKY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5z dGFsbC4uLiAvdXNyL2Jpbi9pbnN0YWxsIC1jCmNoZWNraW5nIHdoZXRoZXIgc2xlZXAgc3VwcG9y dHMgZnJhY3Rpb25hbCBzZWNvbmRzLi4uIHllcwpjaGVja2luZyBmaWxlc3lzdGVtIHRpbWVzdGFt cCByZXNvbHV0aW9uLi4uIDAuMDEKY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBp cyBzYW5lLi4uIHllcwpjaGVja2luZyBmb3IgYSByYWNlLWZyZWUgbWtkaXIgLXAuLi4gbWtkaXIg LXAKY2hlY2tpbmcgZm9yIGdhd2suLi4gbm8KY2hlY2tpbmcgZm9yIG1hd2suLi4gbm8KY2hlY2tp bmcgZm9yIG5hd2suLi4gbm8KY2hlY2tpbmcgZm9yIGF3ay4uLiBhd2sKY2hlY2tpbmcgd2hldGhl ciBtYWtlIHNldHMgJChNQUtFKS4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRz IG5lc3RlZCB2YXJpYWJsZXMuLi4geWVzCmNoZWNraW5nIHhhcmdzIC1uIHdvcmtzLi4uIHllcwpj aGVja2luZyB3aGV0aGVyIFVJRCAnNTAxJyBpcyBzdXBwb3J0ZWQgYnkgdXN0YXIgZm9ybWF0Li4u IHllcwpjaGVja2luZyB3aGV0aGVyIEdJRCAnMjAnIGlzIHN1cHBvcnRlZCBieSB1c3RhciBmb3Jt YXQuLi4geWVzCmNoZWNraW5nIGhvdyB0byBjcmVhdGUgYSB1c3RhciB0YXIgYXJjaGl2ZS4uLiBw bGFpbnRhcgpjaGVja2luZyBmb3IgZ2NjLi4uIGdjYwpjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNv bXBpbGVyIHdvcmtzLi4uIHllcwpjaGVja2luZyBmb3IgQyBjb21waWxlciBkZWZhdWx0IG91dHB1 dCBmaWxlIG5hbWUuLi4gYS5vdXQKY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcy4u LiAKY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nLi4uIG5vCmNoZWNraW5n IGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzLi4uIG8KY2hlY2tpbmcgd2hldGhlciB0aGUgY29t cGlsZXIgc3VwcG9ydHMgR05VIEMuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgZ2NjIGFjY2VwdHMg LWcuLi4geWVzCmNoZWNraW5nIGZvciBnY2Mgb3B0aW9uIHRvIGVuYWJsZSBDMjMgZmVhdHVyZXMu Li4gLXN0ZD1nbnUyMwpjaGVja2luZyB3aGV0aGVyIGdjYyAtc3RkPWdudTIzIHVuZGVyc3RhbmRz IC1jIGFuZCAtbyB0b2dldGhlci4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRz IHRoZSBpbmNsdWRlIGRpcmVjdGl2ZS4uLiB5ZXMgKEdOVSBzdHlsZSkKY2hlY2tpbmcgZGVwZW5k ZW5jeSBzdHlsZSBvZiBnY2MgLXN0ZD1nbnUyMy4uLiBnY2MzCmNoZWNraW5nIGZvciBhci4uLiBh cgpjaGVja2luZyB0aGUgYXJjaGl2ZXIgKGFyKSBpbnRlcmZhY2UuLi4gYXIKY2hlY2tpbmcgZm9y IHJhbmxpYi4uLiByYW5saWIKY2hlY2tpbmcgdGhhdCBnZW5lcmF0ZWQgZmlsZXMgYXJlIG5ld2Vy IHRoYW4gY29uZmlndXJlLi4uIGRvbmUKY29uZmlndXJlOiBjcmVhdGluZyAuL2NvbmZpZy5zdGF0 dXMKY29uZmlnLnN0YXR1czogY3JlYXRpbmcgTWFrZWZpbGUKY29uZmlnLnN0YXR1czogZXhlY3V0 aW5nIGRlcGZpbGVzIGNvbW1hbmRzCiNbc3RkZXJyXSsgbWFrZSBhbGwKZ2NjIC1zdGQ9Z251MjMg LURQQUNLQUdFX05BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdFX1RBUk5BTUU9XCJpbnN0c3BjXCIg LURQQUNLQUdFX1ZFUlNJT049XCIxLjBcIiAtRFBBQ0tBR0VfU1RSSU5HPVwiaW5zdHNwY1wgMS4w XCIgLURQQUNLQUdFX0JVR1JFUE9SVD1cIlwiIC1EUEFDS0FHRV9VUkw9XCJcIiAtRFBBQ0tBR0U9 XCJpbnN0c3BjXCIgLURWRVJTSU9OPVwiMS4wXCIgLUkuIC1JLi4gICAgIC1nIC1PMiAtTVQgc291 cmNlLm8gLU1EIC1NUCAtTUYgLmRlcHMvc291cmNlLlRwbyAtYyAtbyBzb3VyY2UubyAuLi9zb3Vy Y2UuYwptdiAtZiAuZGVwcy9zb3VyY2UuVHBvIC5kZXBzL3NvdXJjZS5QbwpnY2MgLXN0ZD1nbnUy MyAgLWcgLU8yICAgLW8gc3ViL2Jhc2Ugc291cmNlLm8gIApnY2MgLXN0ZD1nbnUyMyAgLWcgLU8y ICAgLW8gc3ViL25vYmFzZSBzb3VyY2UubyAgCnJtIC1mIHN1Yi9saWJiYXNlLmEKYXIgY3Igc3Vi L2xpYmJhc2UuYSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJiYXNlLmEKcm0gLWYgc3ViL2xpYm5v YmFzZS5hCmFyIGNyIHN1Yi9saWJub2Jhc2UuYSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJub2Jh c2UuYQojW3N0ZGVycl0rIERFU1RESVI9L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LXBsdXMKI1tzdGRlcnJdKyBmaWxlPS4vKwojW3N0ZGVycl0rIG1ha2UgdGVzdC1p bnN0Cm1ha2VbMV06IEVudGVyaW5nIGRpcmVjdG9yeSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci8rJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1wbHVzLystcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLi4v c3ViL2Jhc2Uuc2ggJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1w bHVzLystcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtcGx1cy8rLXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1t IDY0NCAgc3ViL2xpYmJhc2UuYSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LXBsdXMvKy1wcmVmaXgvZm9vJwogKCBjZCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXBsdXMvKy1wcmVmaXgvZm9vJyAmJiByYW5saWIgbGliYmFzZS5h ICkKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt cGx1cy8rLXByZWZpeC9mb28nCiAgL3Vzci9iaW4vaW5zdGFsbCAtYyBzdWIvYmFzZSAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBsdXMvKy1wcmVmaXgvZm9vJwog bWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wbHVz LystcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtcGx1cy8rLXByZWZpeC9mb28vc3ViLycKIC91c3IvYmluL2luc3RhbGwgLWMg Li4vc3ViL25vYmFzZS5zaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LXBsdXMvKy1wcmVmaXgvZm9vL3N1Yi8nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBsdXMvKy1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wbHVzLystcHJlZml4L2Zv by9zdWInCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAgc3ViL2xpYm5vYmFzZS5hICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGx1cy8rLXByZWZpeC9mb28v c3ViJwogKCBjZCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBs dXMvKy1wcmVmaXgvZm9vJyAmJiByYW5saWIgc3ViL2xpYm5vYmFzZS5hICkKIG1rZGlyIC1wICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGx1cy8rLXByZWZpeC9m b28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LXBsdXMvKy1wcmVmaXgvZm9vL3N1Yi8nCiAgL3Vzci9iaW4vaW5zdGFsbCAtYyBzdWIvbm9iYXNl ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGx1cy8rLXByZWZp eC9mb28vc3ViLycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyL2Rlc3QtcGx1cy8rLXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAu Li9zdWIvYmFzZS5kYXQgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC1wbHVzLystcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3QtcGx1cy8rLXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1j IC1tIDY0NCAuLi9zdWIvYmFzZS5oICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyL2Rlc3QtcGx1cy8rLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBsdXMvKy1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wbHVzLystcHJlZml4L2Zv by9zdWInCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAgLi4vc3ViL25vYmFzZS5kYXQgJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wbHVzLystcHJlZml4L2Zv by9zdWInCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LXBsdXMvKy1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1wbHVzLystcHJlZml4L2Zvby9zdWInCiAvdXNyL2Jpbi9pbnN0 YWxsIC1jIC1tIDY0NCAgLi4vc3ViL25vYmFzZS5oICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3QtcGx1cy8rLXByZWZpeC9mb28vc3ViJwptYWtlWzFdOiBMZWF2aW5n IGRpcmVjdG9yeSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci8rJwp0ZXN0 ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wbHVzLy4v Ky1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2UuaCcKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGx1cy8uLystcHJlZml4L2Zvby9ub2Jhc2UuaCcKdGVz dCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGx1cy8u LystcHJlZml4L2Zvby9iYXNlLmgnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXBsdXMvLi8rLXByZWZpeC9mb28vc3ViL25vYmFzZS5kYXQnCnRl c3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBsdXMv Li8rLXByZWZpeC9mb28vbm9iYXNlLmRhdCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGx1cy8uLystcHJlZml4L2Zvby9iYXNlLmRhdCcKdGVz dCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGx1cy8u LystcHJlZml4L2Zvby9zdWIvbm9iYXNlLnNoJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wbHVzLy4vKy1wcmVmaXgvZm9vL25vYmFzZS5zaCcK dGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGx1 cy8uLystcHJlZml4L2Zvby9iYXNlLnNoJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wbHVzLy4vKy1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2UnCnRl c3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBsdXMv Li8rLXByZWZpeC9mb28vbm9iYXNlJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1wbHVzLy4vKy1wcmVmaXgvZm9vL2Jhc2UnCnRlc3QgICAtZiAn L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBsdXMvLi8rLXByZWZp eC9mb28vc3ViL2xpYm5vYmFzZS5hJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1wbHVzLy4vKy1wcmVmaXgvZm9vL2xpYm5vYmFzZS5hJwp0ZXN0 ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wbHVzLy4v Ky1wcmVmaXgvZm9vL2xpYmJhc2UuYScKI1tzdGRlcnJdKyBkZXNjcmlwdGlvbj0ncGx1cyBpbiBi dWlsZGRpcicKI1tzdGRlcnJdKyBleHBlY3RlZF90b19mYWlsIGJ1aWxkIHBsdXMKI1tzdGRlcnJd KyBjYXNlICQxIGluCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBwbHVzIHNxdW90ZSBkcXVvdGUgYnF1 b3RlIHNoYXJwIGRvbGxhciBic2xhc2ggYW1wZXJzYW5kIGxpbmVmZWVkIHF1YWRyaWdyYXBoMCBh X2xmX2IKI1tzdGRlcnJdKyBpdGVtPXBsdXMKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNh c2UgIiAkKiAiIGluCm9rIDMzIC0gcGx1cyBpbiBidWlsZGRpcgpQQVNTOiB0L2luc3RzcGMudGFw IDMzIC0gcGx1cyBpbiBidWlsZGRpcgojW3N0ZGVycl0rIHJldHVybiAxCiNbc3RkZXJyXSsgZGly ZWN0aXZlPQojW3N0ZGVycl0rIHJlYXNvbj0KI1tzdGRlcnJdKyByZXN1bHRfIG9rIC1EICcnIC1y ICcnIC0tICdwbHVzIGluIGJ1aWxkZGlyJwojW3N0ZGVycl0rIHNldCAreAojW3N0ZGVycl0rIGNk IC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIKI1tzdGRlcnJdKyBub3QgYW1f a2VlcGluZ190ZXN0ZGlycwojW3N0ZGVycl0rIGFtX2tlZXBpbmdfdGVzdGRpcnMKI1tzdGRlcnJd KyBjYXNlICRrZWVwX3Rlc3RkaXJzIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyB0 ZXN0IG9rID0gb2sKI1tzdGRlcnJdKyBybV9yZl8gLi8rIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1wbHVzCiNbc3RkZXJyXSsgdGVzdCAyIC1ndCAwCiNbc3RkZXJy XSsgY2htb2QgLVIgdStyd3ggLi8rIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1wbHVzCiNbc3RkZXJyXSsgcm0gLXJmIC4vKyAvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtcGx1cwojW3N0ZGVycl0rIF9hbV9ybXJmX3N0YXR1cz0wCiNb c3RkZXJyXSsgZm9yIF9hbV9ybXJmX3YgaW4gJyIkQCInCiNbc3RkZXJyXSsgdGVzdCAtZSAuLysK I1tzdGRlcnJdKyBmb3IgX2FtX3JtcmZfdiBpbiAnIiRAIicKI1tzdGRlcnJdKyB0ZXN0IC1lIC91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wbHVzCiNbc3RkZXJyXSsg cmV0dXJuIDAKI1tzdGRlcnJdKyA6IEZvciBzaGVsbHMgd2l0aCBidXN0ZWQgJ3NldCAtZS4nCiNb c3RkZXJyXSsgZm9yIHdoZXJlIGluIGJ1aWxkIGRlc3QKI1tzdGRlcnJdKyBjYXNlICR3aGVyZSBp bgojW3N0ZGVycl0rIGJ1aWxkPWJ1aWxkLXBsdXMKI1tzdGRlcnJdKyBkZXN0PS91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wbHVzLysKI1tzdGRlcnJdKyBta2RpciBi dWlsZC1wbHVzCiNbc3RkZXJyXSsgY2QgYnVpbGQtcGx1cwojW3N0ZGVycl0rIHI9b2sKI1tzdGRl cnJdKyAuLi9jb25maWd1cmUgLS1wcmVmaXggLystcHJlZml4CmNoZWNraW5nIGZvciBhIEJTRC1j b21wYXRpYmxlIGluc3RhbGwuLi4gL3Vzci9iaW4vaW5zdGFsbCAtYwpjaGVja2luZyB3aGV0aGVy IHNsZWVwIHN1cHBvcnRzIGZyYWN0aW9uYWwgc2Vjb25kcy4uLiB5ZXMKY2hlY2tpbmcgZmlsZXN5 c3RlbSB0aW1lc3RhbXAgcmVzb2x1dGlvbi4uLiAwLjAxCmNoZWNraW5nIHdoZXRoZXIgYnVpbGQg ZW52aXJvbm1lbnQgaXMgc2FuZS4uLiB5ZXMKY2hlY2tpbmcgZm9yIGEgcmFjZS1mcmVlIG1rZGly IC1wLi4uIG1rZGlyIC1wCmNoZWNraW5nIGZvciBnYXdrLi4uIG5vCmNoZWNraW5nIGZvciBtYXdr Li4uIG5vCmNoZWNraW5nIGZvciBuYXdrLi4uIG5vCmNoZWNraW5nIGZvciBhd2suLi4gYXdrCmNo ZWNraW5nIHdoZXRoZXIgbWFrZSBzZXRzICQoTUFLRSkuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIg bWFrZSBzdXBwb3J0cyBuZXN0ZWQgdmFyaWFibGVzLi4uIHllcwpjaGVja2luZyB4YXJncyAtbiB3 b3Jrcy4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBVSUQgJzUwMScgaXMgc3VwcG9ydGVkIGJ5IHVz dGFyIGZvcm1hdC4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBHSUQgJzIwJyBpcyBzdXBwb3J0ZWQg YnkgdXN0YXIgZm9ybWF0Li4uIHllcwpjaGVja2luZyBob3cgdG8gY3JlYXRlIGEgdXN0YXIgdGFy IGFyY2hpdmUuLi4gcGxhaW50YXIKY2hlY2tpbmcgZm9yIGdjYy4uLiBnY2MKY2hlY2tpbmcgd2hl dGhlciB0aGUgQyBjb21waWxlciB3b3Jrcy4uLiB5ZXMKY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIg ZGVmYXVsdCBvdXRwdXQgZmlsZSBuYW1lLi4uIGEub3V0CmNoZWNraW5nIGZvciBzdWZmaXggb2Yg ZXhlY3V0YWJsZXMuLi4gCmNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZy4u LiBubwpjaGVja2luZyBmb3Igc3VmZml4IG9mIG9iamVjdCBmaWxlcy4uLiBvCmNoZWNraW5nIHdo ZXRoZXIgdGhlIGNvbXBpbGVyIHN1cHBvcnRzIEdOVSBDLi4uIHllcwpjaGVja2luZyB3aGV0aGVy IGdjYyBhY2NlcHRzIC1nLi4uIHllcwpjaGVja2luZyBmb3IgZ2NjIG9wdGlvbiB0byBlbmFibGUg QzIzIGZlYXR1cmVzLi4uIC1zdGQ9Z251MjMKY2hlY2tpbmcgd2hldGhlciBnY2MgLXN0ZD1nbnUy MyB1bmRlcnN0YW5kcyAtYyBhbmQgLW8gdG9nZXRoZXIuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIg bWFrZSBzdXBwb3J0cyB0aGUgaW5jbHVkZSBkaXJlY3RpdmUuLi4geWVzIChHTlUgc3R5bGUpCmNo ZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgZ2NjIC1zdGQ9Z251MjMuLi4gZ2NjMwpjaGVja2lu ZyBmb3IgYXIuLi4gYXIKY2hlY2tpbmcgdGhlIGFyY2hpdmVyIChhcikgaW50ZXJmYWNlLi4uIGFy CmNoZWNraW5nIGZvciByYW5saWIuLi4gcmFubGliCmNoZWNraW5nIHRoYXQgZ2VuZXJhdGVkIGZp bGVzIGFyZSBuZXdlciB0aGFuIGNvbmZpZ3VyZS4uLiBkb25lCmNvbmZpZ3VyZTogY3JlYXRpbmcg Li9jb25maWcuc3RhdHVzCmNvbmZpZy5zdGF0dXM6IGNyZWF0aW5nIE1ha2VmaWxlCmNvbmZpZy5z dGF0dXM6IGV4ZWN1dGluZyBkZXBmaWxlcyBjb21tYW5kcwojW3N0ZGVycl0rIG1ha2UgYWxsCmdj YyAtc3RkPWdudTIzIC1EUEFDS0FHRV9OQU1FPVwiaW5zdHNwY1wiIC1EUEFDS0FHRV9UQVJOQU1F PVwiaW5zdHNwY1wiIC1EUEFDS0FHRV9WRVJTSU9OPVwiMS4wXCIgLURQQUNLQUdFX1NUUklORz1c Imluc3RzcGNcIDEuMFwiIC1EUEFDS0FHRV9CVUdSRVBPUlQ9XCJcIiAtRFBBQ0tBR0VfVVJMPVwi XCIgLURQQUNLQUdFPVwiaW5zdHNwY1wiIC1EVkVSU0lPTj1cIjEuMFwiIC1JLiAtSS4uICAgICAt ZyAtTzIgLU1UIHNvdXJjZS5vIC1NRCAtTVAgLU1GIC5kZXBzL3NvdXJjZS5UcG8gLWMgLW8gc291 cmNlLm8gLi4vc291cmNlLmMKbXYgLWYgLmRlcHMvc291cmNlLlRwbyAuZGVwcy9zb3VyY2UuUG8K Z2NjIC1zdGQ9Z251MjMgIC1nIC1PMiAgIC1vIHN1Yi9iYXNlIHNvdXJjZS5vICAKZ2NjIC1zdGQ9 Z251MjMgIC1nIC1PMiAgIC1vIHN1Yi9ub2Jhc2Ugc291cmNlLm8gIApybSAtZiBzdWIvbGliYmFz ZS5hCmFyIGNyIHN1Yi9saWJiYXNlLmEgc291cmNlLm8gCnJhbmxpYiBzdWIvbGliYmFzZS5hCnJt IC1mIHN1Yi9saWJub2Jhc2UuYQphciBjciBzdWIvbGlibm9iYXNlLmEgc291cmNlLm8gCnJhbmxp YiBzdWIvbGlibm9iYXNlLmEKI1tzdGRlcnJdKyBERVNURElSPS91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wbHVzLysKI1tzdGRlcnJdKyBmaWxlPS4vKwojW3N0ZGVy cl0rIG1ha2UgdGVzdC1pbnN0Cm1ha2VbMV06IEVudGVyaW5nIGRpcmVjdG9yeSAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9idWlsZC1wbHVzJwogbWtkaXIgLXAgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wbHVzLysvKy1wcmVmaXgvZm9v JwogL3Vzci9iaW4vaW5zdGFsbCAtYyAuLi9zdWIvYmFzZS5zaCAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBsdXMvKy8rLXByZWZpeC9mb28nCiBta2RpciAtcCAn L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBsdXMvKy8rLXByZWZp eC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAgc3ViL2xpYmJhc2UuYSAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBsdXMvKy8rLXByZWZpeC9mb28n CiAoIGNkICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGx1cy8r LystcHJlZml4L2ZvbycgJiYgcmFubGliIGxpYmJhc2UuYSApCiBta2RpciAtcCAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBsdXMvKy8rLXByZWZpeC9mb28nCiAg L3Vzci9iaW4vaW5zdGFsbCAtYyBzdWIvYmFzZSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LXBsdXMvKy8rLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBsdXMvKy8rLXByZWZpeC9mb28nCiBt a2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBsdXMv Ky8rLXByZWZpeC9mb28vc3ViLycKIC91c3IvYmluL2luc3RhbGwgLWMgLi4vc3ViL25vYmFzZS5z aCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBsdXMvKy8rLXBy ZWZpeC9mb28vc3ViLycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtcGx1cy8rLystcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGx1cy8rLystcHJlZml4L2Zvby9zdWInCiAv dXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAgc3ViL2xpYm5vYmFzZS5hICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGx1cy8rLystcHJlZml4L2Zvby9zdWInCiAo IGNkICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGx1cy8rLyst cHJlZml4L2ZvbycgJiYgcmFubGliIHN1Yi9saWJub2Jhc2UuYSApCiBta2RpciAtcCAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBsdXMvKy8rLXByZWZpeC9mb28n CiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBs dXMvKy8rLXByZWZpeC9mb28vc3ViLycKICAvdXNyL2Jpbi9pbnN0YWxsIC1jIHN1Yi9ub2Jhc2Ug Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wbHVzLysvKy1wcmVm aXgvZm9vL3N1Yi8nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LXBsdXMvKy8rLXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0 NCAuLi9zdWIvYmFzZS5kYXQgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1wbHVzLysvKy1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wbHVzLysvKy1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5z dGFsbCAtYyAtbSA2NDQgLi4vc3ViL2Jhc2UuaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LXBsdXMvKy8rLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBsdXMvKy8rLXByZWZpeC9mb28nCiBt a2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBsdXMv Ky8rLXByZWZpeC9mb28vc3ViJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIC4uL3N1Yi9u b2Jhc2UuZGF0ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGx1 cy8rLystcHJlZml4L2Zvby9zdWInCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXBsdXMvKy8rLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBsdXMvKy8rLXByZWZpeC9mb28v c3ViJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIC4uL3N1Yi9ub2Jhc2UuaCAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBsdXMvKy8rLXByZWZpeC9mb28v c3ViJwptYWtlWzFdOiBMZWF2aW5nIGRpcmVjdG9yeSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9idWlsZC1wbHVzJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1wbHVzLysvLi8rLXByZWZpeC9mb28vc3ViL25vYmFzZS5o Jwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1w bHVzLysvLi8rLXByZWZpeC9mb28vbm9iYXNlLmgnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBsdXMvKy8uLystcHJlZml4L2Zvby9iYXNlLmgn CnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBs dXMvKy8uLystcHJlZml4L2Zvby9zdWIvbm9iYXNlLmRhdCcKdGVzdCAhIC1mICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGx1cy8rLy4vKy1wcmVmaXgvZm9vL25v YmFzZS5kYXQnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LXBsdXMvKy8uLystcHJlZml4L2Zvby9iYXNlLmRhdCcKdGVzdCAgIC1mICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGx1cy8rLy4vKy1wcmVmaXgvZm9v L3N1Yi9ub2Jhc2Uuc2gnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9kZXN0LXBsdXMvKy8uLystcHJlZml4L2Zvby9ub2Jhc2Uuc2gnCnRlc3QgICAtZiAn L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBsdXMvKy8uLystcHJl Zml4L2Zvby9iYXNlLnNoJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1wbHVzLysvLi8rLXByZWZpeC9mb28vc3ViL25vYmFzZScKdGVzdCAhIC1m ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGx1cy8rLy4vKy1w cmVmaXgvZm9vL25vYmFzZScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtcGx1cy8rLy4vKy1wcmVmaXgvZm9vL2Jhc2UnCnRlc3QgICAtZiAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBsdXMvKy8uLystcHJlZml4 L2Zvby9zdWIvbGlibm9iYXNlLmEnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXBsdXMvKy8uLystcHJlZml4L2Zvby9saWJub2Jhc2UuYScKdGVz dCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcGx1cy8r Ly4vKy1wcmVmaXgvZm9vL2xpYmJhc2UuYScKI1tzdGRlcnJdKyBkZXNjcmlwdGlvbj0ncGx1cyBp biBkZXN0ZGlyJwojW3N0ZGVycl0rIGV4cGVjdGVkX3RvX2ZhaWwgZGVzdCBwbHVzCiNbc3RkZXJy XSsgY2FzZSAkMSBpbgojW3N0ZGVycl0rIGlzX2luX2xpc3QgcGx1cyBzcXVvdGUgZHF1b3RlIGJx dW90ZSBzaGFycCBkb2xsYXIgbGluZWZlZWQgYV9sZl9iCiNbc3RkZXJyXSsgaXRlbT1wbHVzCiNb c3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBjYXNlICIgJCogIiBpbgojW3N0ZGVycl0rIHJldHVy biAxCiNbc3RkZXJyXSsgZGlyZWN0aXZlPQojW3N0ZGVycl0rIHJlYXNvbj0Kb2sgMzQgLSBwbHVz IGluIGRlc3RkaXIKUEFTUzogdC9pbnN0c3BjLnRhcCAzNCAtIHBsdXMgaW4gZGVzdGRpcgojW3N0 ZGVycl0rIHJlc3VsdF8gb2sgLUQgJycgLXIgJycgLS0gJ3BsdXMgaW4gZGVzdGRpcicKI1tzdGRl cnJdKyBzZXQgK3gKI1tzdGRlcnJdKyBjZCAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyCiNbc3RkZXJyXSsgbm90IGFtX2tlZXBpbmdfdGVzdGRpcnMKI1tzdGRlcnJdKyBhbV9r ZWVwaW5nX3Rlc3RkaXJzCiNbc3RkZXJyXSsgY2FzZSAka2VlcF90ZXN0ZGlycyBpbgojW3N0ZGVy cl0rIHJldHVybiAxCiNbc3RkZXJyXSsgdGVzdCBvayA9IG9rCiNbc3RkZXJyXSsgcm1fcmZfIGJ1 aWxkLXBsdXMgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBsdXMv KwojW3N0ZGVycl0rIHRlc3QgMiAtZ3QgMAojW3N0ZGVycl0rIGNobW9kIC1SIHUrcnd4IGJ1aWxk LXBsdXMgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBsdXMvKwoj W3N0ZGVycl0rIHJtIC1yZiBidWlsZC1wbHVzIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1wbHVzLysKI1tzdGRlcnJdKyBfYW1fcm1yZl9zdGF0dXM9MAojW3N0ZGVy cl0rIGZvciBfYW1fcm1yZl92IGluICciJEAiJwojW3N0ZGVycl0rIHRlc3QgLWUgYnVpbGQtcGx1 cwojW3N0ZGVycl0rIGZvciBfYW1fcm1yZl92IGluICciJEAiJwojW3N0ZGVycl0rIHRlc3QgLWUg L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXBsdXMvKwojW3N0ZGVy cl0rIHJldHVybiAwCiNbc3RkZXJyXSsgOiBGb3Igc2hlbGxzIHdpdGggYnVzdGVkICdzZXQgLWUu JwojW3N0ZGVycl0rIGZvciB0ZXN0X25hbWUgaW4gJyR0ZXN0X25hbWVzX2xpc3QnCiNbc3RkZXJy XSsgZXZhbCAndGVzdF9zdHJpbmc9JHtpbnN0c3BjX19taW51c30nCiNbc3RkZXJyXSsrIHRlc3Rf c3RyaW5nPS0KI1tzdGRlcnJdKyB0ZXN0IHgtID0geAojW3N0ZGVycl0rIG1rZGlyIC4vLQojW3N0 ZGVycl0rIGNhc2UgJHRlc3Rfc3RyaW5nIGluCiNbc3RkZXJyXSsgZm9yIHdoZXJlIGluIGJ1aWxk IGRlc3QKI1tzdGRlcnJdKyBjYXNlICR3aGVyZSBpbgojW3N0ZGVycl0rIGJ1aWxkPS4vLQojW3N0 ZGVycl0rIGRlc3Q9L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1p bnVzCiNbc3RkZXJyXSsgY2QgLi8tCiNbc3RkZXJyXSsgcj1vawojW3N0ZGVycl0rIC4uL2NvbmZp Z3VyZSAtLXByZWZpeCAvLS1wcmVmaXgKY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5z dGFsbC4uLiAvdXNyL2Jpbi9pbnN0YWxsIC1jCmNoZWNraW5nIHdoZXRoZXIgc2xlZXAgc3VwcG9y dHMgZnJhY3Rpb25hbCBzZWNvbmRzLi4uIHllcwpjaGVja2luZyBmaWxlc3lzdGVtIHRpbWVzdGFt cCByZXNvbHV0aW9uLi4uIDAuMDEKY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBp cyBzYW5lLi4uIHllcwpjaGVja2luZyBmb3IgYSByYWNlLWZyZWUgbWtkaXIgLXAuLi4gbWtkaXIg LXAKY2hlY2tpbmcgZm9yIGdhd2suLi4gbm8KY2hlY2tpbmcgZm9yIG1hd2suLi4gbm8KY2hlY2tp bmcgZm9yIG5hd2suLi4gbm8KY2hlY2tpbmcgZm9yIGF3ay4uLiBhd2sKY2hlY2tpbmcgd2hldGhl ciBtYWtlIHNldHMgJChNQUtFKS4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRz IG5lc3RlZCB2YXJpYWJsZXMuLi4geWVzCmNoZWNraW5nIHhhcmdzIC1uIHdvcmtzLi4uIHllcwpj aGVja2luZyB3aGV0aGVyIFVJRCAnNTAxJyBpcyBzdXBwb3J0ZWQgYnkgdXN0YXIgZm9ybWF0Li4u IHllcwpjaGVja2luZyB3aGV0aGVyIEdJRCAnMjAnIGlzIHN1cHBvcnRlZCBieSB1c3RhciBmb3Jt YXQuLi4geWVzCmNoZWNraW5nIGhvdyB0byBjcmVhdGUgYSB1c3RhciB0YXIgYXJjaGl2ZS4uLiBw bGFpbnRhcgpjaGVja2luZyBmb3IgZ2NjLi4uIGdjYwpjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNv bXBpbGVyIHdvcmtzLi4uIHllcwpjaGVja2luZyBmb3IgQyBjb21waWxlciBkZWZhdWx0IG91dHB1 dCBmaWxlIG5hbWUuLi4gYS5vdXQKY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcy4u LiAKY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nLi4uIG5vCmNoZWNraW5n IGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzLi4uIG8KY2hlY2tpbmcgd2hldGhlciB0aGUgY29t cGlsZXIgc3VwcG9ydHMgR05VIEMuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgZ2NjIGFjY2VwdHMg LWcuLi4geWVzCmNoZWNraW5nIGZvciBnY2Mgb3B0aW9uIHRvIGVuYWJsZSBDMjMgZmVhdHVyZXMu Li4gLXN0ZD1nbnUyMwpjaGVja2luZyB3aGV0aGVyIGdjYyAtc3RkPWdudTIzIHVuZGVyc3RhbmRz IC1jIGFuZCAtbyB0b2dldGhlci4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRz IHRoZSBpbmNsdWRlIGRpcmVjdGl2ZS4uLiB5ZXMgKEdOVSBzdHlsZSkKY2hlY2tpbmcgZGVwZW5k ZW5jeSBzdHlsZSBvZiBnY2MgLXN0ZD1nbnUyMy4uLiBnY2MzCmNoZWNraW5nIGZvciBhci4uLiBh cgpjaGVja2luZyB0aGUgYXJjaGl2ZXIgKGFyKSBpbnRlcmZhY2UuLi4gYXIKY2hlY2tpbmcgZm9y IHJhbmxpYi4uLiByYW5saWIKY2hlY2tpbmcgdGhhdCBnZW5lcmF0ZWQgZmlsZXMgYXJlIG5ld2Vy IHRoYW4gY29uZmlndXJlLi4uIGRvbmUKY29uZmlndXJlOiBjcmVhdGluZyAuL2NvbmZpZy5zdGF0 dXMKY29uZmlnLnN0YXR1czogY3JlYXRpbmcgTWFrZWZpbGUKY29uZmlnLnN0YXR1czogZXhlY3V0 aW5nIGRlcGZpbGVzIGNvbW1hbmRzCiNbc3RkZXJyXSsgbWFrZSBhbGwKZ2NjIC1zdGQ9Z251MjMg LURQQUNLQUdFX05BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdFX1RBUk5BTUU9XCJpbnN0c3BjXCIg LURQQUNLQUdFX1ZFUlNJT049XCIxLjBcIiAtRFBBQ0tBR0VfU1RSSU5HPVwiaW5zdHNwY1wgMS4w XCIgLURQQUNLQUdFX0JVR1JFUE9SVD1cIlwiIC1EUEFDS0FHRV9VUkw9XCJcIiAtRFBBQ0tBR0U9 XCJpbnN0c3BjXCIgLURWRVJTSU9OPVwiMS4wXCIgLUkuIC1JLi4gICAgIC1nIC1PMiAtTVQgc291 cmNlLm8gLU1EIC1NUCAtTUYgLmRlcHMvc291cmNlLlRwbyAtYyAtbyBzb3VyY2UubyAuLi9zb3Vy Y2UuYwptdiAtZiAuZGVwcy9zb3VyY2UuVHBvIC5kZXBzL3NvdXJjZS5QbwpnY2MgLXN0ZD1nbnUy MyAgLWcgLU8yICAgLW8gc3ViL2Jhc2Ugc291cmNlLm8gIApnY2MgLXN0ZD1nbnUyMyAgLWcgLU8y ICAgLW8gc3ViL25vYmFzZSBzb3VyY2UubyAgCnJtIC1mIHN1Yi9saWJiYXNlLmEKYXIgY3Igc3Vi L2xpYmJhc2UuYSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJiYXNlLmEKcm0gLWYgc3ViL2xpYm5v YmFzZS5hCmFyIGNyIHN1Yi9saWJub2Jhc2UuYSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJub2Jh c2UuYQojW3N0ZGVycl0rIERFU1RESVI9L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LW1pbnVzCiNbc3RkZXJyXSsgZmlsZT0uLy0KI1tzdGRlcnJdKyBtYWtlIHRlc3Qt aW5zdAptYWtlWzFdOiBFbnRlcmluZyBkaXJlY3RvcnkgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvLScKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtbWludXMvLS1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAu Li9zdWIvYmFzZS5zaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LW1pbnVzLy0tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3QtbWludXMvLS1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAt YyAtbSA2NDQgIHN1Yi9saWJiYXNlLmEgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1taW51cy8tLXByZWZpeC9mb28nCiAoIGNkICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbWludXMvLS1wcmVmaXgvZm9vJyAmJiByYW5saWIgbGli YmFzZS5hICkKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtbWludXMvLS1wcmVmaXgvZm9vJwogIC91c3IvYmluL2luc3RhbGwgLWMgc3ViL2Jhc2Ug Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1taW51cy8tLXByZWZp eC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LW1pbnVzLy0tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtbWludXMvLS1wcmVmaXgvZm9vL3N1Yi8nCiAvdXNyL2Jpbi9p bnN0YWxsIC1jIC4uL3N1Yi9ub2Jhc2Uuc2ggJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1taW51cy8tLXByZWZpeC9mb28vc3ViLycKIG1rZGlyIC1wICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbWludXMvLS1wcmVmaXgvZm9vJwog bWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1taW51 cy8tLXByZWZpeC9mb28vc3ViJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIHN1Yi9saWJu b2Jhc2UuYSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1pbnVz Ly0tcHJlZml4L2Zvby9zdWInCiAoIGNkICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtbWludXMvLS1wcmVmaXgvZm9vJyAmJiByYW5saWIgc3ViL2xpYm5vYmFzZS5h ICkKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt bWludXMvLS1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1taW51cy8tLXByZWZpeC9mb28vc3ViLycKICAvdXNyL2Jpbi9pbnN0 YWxsIC1jIHN1Yi9ub2Jhc2UgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1taW51cy8tLXByZWZpeC9mb28vc3ViLycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbWludXMvLS1wcmVmaXgvZm9vJwogL3Vzci9iaW4v aW5zdGFsbCAtYyAtbSA2NDQgLi4vc3ViL2Jhc2UuZGF0ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtbWludXMvLS1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1taW51cy8tLXByZWZpeC9mb28n CiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAuLi9zdWIvYmFzZS5oICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbWludXMvLS1wcmVmaXgvZm9vJwogbWtkaXIg LXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1taW51cy8tLXBy ZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LW1pbnVzLy0tcHJlZml4L2Zvby9zdWInCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0 NCAgLi4vc3ViL25vYmFzZS5kYXQgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1taW51cy8tLXByZWZpeC9mb28vc3ViJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3Jj L2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1taW51cy8tLXByZWZpeC9mb28nCiBta2RpciAt cCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1pbnVzLy0tcHJl Zml4L2Zvby9zdWInCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAgLi4vc3ViL25vYmFzZS5o ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbWludXMvLS1wcmVm aXgvZm9vL3N1YicKbWFrZVsxXTogTGVhdmluZyBkaXJlY3RvcnkgJy91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvLScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtbWludXMvLi8tLXByZWZpeC9mb28vc3ViL25vYmFzZS5oJwp0 ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1taW51 cy8uLy0tcHJlZml4L2Zvby9ub2Jhc2UuaCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbWludXMvLi8tLXByZWZpeC9mb28vYmFzZS5oJwp0ZXN0 ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1taW51cy8u Ly0tcHJlZml4L2Zvby9zdWIvbm9iYXNlLmRhdCcKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbWludXMvLi8tLXByZWZpeC9mb28vbm9iYXNlLmRh dCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt bWludXMvLi8tLXByZWZpeC9mb28vYmFzZS5kYXQnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1pbnVzLy4vLS1wcmVmaXgvZm9vL3N1Yi9ub2Jh c2Uuc2gnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LW1pbnVzLy4vLS1wcmVmaXgvZm9vL25vYmFzZS5zaCcKdGVzdCAgIC1mICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbWludXMvLi8tLXByZWZpeC9mb28vYmFz ZS5zaCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rl c3QtbWludXMvLi8tLXByZWZpeC9mb28vc3ViL25vYmFzZScKdGVzdCAhIC1mICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbWludXMvLi8tLXByZWZpeC9mb28vbm9i YXNlJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC1taW51cy8uLy0tcHJlZml4L2Zvby9iYXNlJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1taW51cy8uLy0tcHJlZml4L2Zvby9zdWIvbGlibm9i YXNlLmEnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LW1pbnVzLy4vLS1wcmVmaXgvZm9vL2xpYm5vYmFzZS5hJwp0ZXN0ICAgLWYgJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1taW51cy8uLy0tcHJlZml4L2Zvby9s aWJiYXNlLmEnCiNbc3RkZXJyXSsgZGVzY3JpcHRpb249J21pbnVzIGluIGJ1aWxkZGlyJwojW3N0 ZGVycl0rIGV4cGVjdGVkX3RvX2ZhaWwgYnVpbGQgbWludXMKI1tzdGRlcnJdKyBjYXNlICQxIGlu CiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBtaW51cyBzcXVvdGUgZHF1b3RlIGJxdW90ZSBzaGFycCBk b2xsYXIgYnNsYXNoIGFtcGVyc2FuZCBsaW5lZmVlZCBxdWFkcmlncmFwaDAgYV9sZl9iCiNbc3Rk ZXJyXSsgaXRlbT1taW51cwojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIg aW4KI1tzdGRlcnJdKyByZXR1cm4gMQpvayAzNSAtIG1pbnVzIGluIGJ1aWxkZGlyClBBU1M6IHQv aW5zdHNwYy50YXAgMzUgLSBtaW51cyBpbiBidWlsZGRpcgojW3N0ZGVycl0rIGRpcmVjdGl2ZT0K I1tzdGRlcnJdKyByZWFzb249CiNbc3RkZXJyXSsgcmVzdWx0XyBvayAtRCAnJyAtciAnJyAtLSAn bWludXMgaW4gYnVpbGRkaXInCiNbc3RkZXJyXSsgc2V0ICt4CiNbc3RkZXJyXSsgY2QgL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpcgojW3N0ZGVycl0rIG5vdCBhbV9rZWVwaW5n X3Rlc3RkaXJzCiNbc3RkZXJyXSsgYW1fa2VlcGluZ190ZXN0ZGlycwojW3N0ZGVycl0rIGNhc2Ug JGtlZXBfdGVzdGRpcnMgaW4KI1tzdGRlcnJdKyByZXR1cm4gMQojW3N0ZGVycl0rIHRlc3Qgb2sg PSBvawojW3N0ZGVycl0rIHJtX3JmXyAuLy0gL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9kZXN0LW1pbnVzCiNbc3RkZXJyXSsgdGVzdCAyIC1ndCAwCiNbc3RkZXJyXSsgY2ht b2QgLVIgdStyd3ggLi8tIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC1taW51cwojW3N0ZGVycl0rIHJtIC1yZiAuLy0gL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LW1pbnVzCiNbc3RkZXJyXSsgX2FtX3JtcmZfc3RhdHVzPTAKI1tzdGRl cnJdKyBmb3IgX2FtX3JtcmZfdiBpbiAnIiRAIicKI1tzdGRlcnJdKyB0ZXN0IC1lIC4vLQojW3N0 ZGVycl0rIGZvciBfYW1fcm1yZl92IGluICciJEAiJwojW3N0ZGVycl0rIHRlc3QgLWUgL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1pbnVzCiNbc3RkZXJyXSsgcmV0 dXJuIDAKI1tzdGRlcnJdKyA6IEZvciBzaGVsbHMgd2l0aCBidXN0ZWQgJ3NldCAtZS4nCiNbc3Rk ZXJyXSsgZm9yIHdoZXJlIGluIGJ1aWxkIGRlc3QKI1tzdGRlcnJdKyBjYXNlICR3aGVyZSBpbgoj W3N0ZGVycl0rIGJ1aWxkPWJ1aWxkLW1pbnVzCiNbc3RkZXJyXSsgZGVzdD0vdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbWludXMvLQojW3N0ZGVycl0rIG1rZGlyIGJ1 aWxkLW1pbnVzCiNbc3RkZXJyXSsgY2QgYnVpbGQtbWludXMKI1tzdGRlcnJdKyByPW9rCiNbc3Rk ZXJyXSsgLi4vY29uZmlndXJlIC0tcHJlZml4IC8tLXByZWZpeApjaGVja2luZyBmb3IgYSBCU0Qt Y29tcGF0aWJsZSBpbnN0YWxsLi4uIC91c3IvYmluL2luc3RhbGwgLWMKY2hlY2tpbmcgd2hldGhl ciBzbGVlcCBzdXBwb3J0cyBmcmFjdGlvbmFsIHNlY29uZHMuLi4geWVzCmNoZWNraW5nIGZpbGVz eXN0ZW0gdGltZXN0YW1wIHJlc29sdXRpb24uLi4gMC4wMQpjaGVja2luZyB3aGV0aGVyIGJ1aWxk IGVudmlyb25tZW50IGlzIHNhbmUuLi4geWVzCmNoZWNraW5nIGZvciBhIHJhY2UtZnJlZSBta2Rp ciAtcC4uLiBta2RpciAtcApjaGVja2luZyBmb3IgZ2F3ay4uLiBubwpjaGVja2luZyBmb3IgbWF3 ay4uLiBubwpjaGVja2luZyBmb3IgbmF3ay4uLiBubwpjaGVja2luZyBmb3IgYXdrLi4uIGF3awpj aGVja2luZyB3aGV0aGVyIG1ha2Ugc2V0cyAkKE1BS0UpLi4uIHllcwpjaGVja2luZyB3aGV0aGVy IG1ha2Ugc3VwcG9ydHMgbmVzdGVkIHZhcmlhYmxlcy4uLiB5ZXMKY2hlY2tpbmcgeGFyZ3MgLW4g d29ya3MuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgVUlEICc1MDEnIGlzIHN1cHBvcnRlZCBieSB1 c3RhciBmb3JtYXQuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgR0lEICcyMCcgaXMgc3VwcG9ydGVk IGJ5IHVzdGFyIGZvcm1hdC4uLiB5ZXMKY2hlY2tpbmcgaG93IHRvIGNyZWF0ZSBhIHVzdGFyIHRh ciBhcmNoaXZlLi4uIHBsYWludGFyCmNoZWNraW5nIGZvciBnY2MuLi4gZ2NjCmNoZWNraW5nIHdo ZXRoZXIgdGhlIEMgY29tcGlsZXIgd29ya3MuLi4geWVzCmNoZWNraW5nIGZvciBDIGNvbXBpbGVy IGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZS4uLiBhLm91dApjaGVja2luZyBmb3Igc3VmZml4IG9m IGV4ZWN1dGFibGVzLi4uIApjaGVja2luZyB3aGV0aGVyIHdlIGFyZSBjcm9zcyBjb21waWxpbmcu Li4gbm8KY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMuLi4gbwpjaGVja2luZyB3 aGV0aGVyIHRoZSBjb21waWxlciBzdXBwb3J0cyBHTlUgQy4uLiB5ZXMKY2hlY2tpbmcgd2hldGhl ciBnY2MgYWNjZXB0cyAtZy4uLiB5ZXMKY2hlY2tpbmcgZm9yIGdjYyBvcHRpb24gdG8gZW5hYmxl IEMyMyBmZWF0dXJlcy4uLiAtc3RkPWdudTIzCmNoZWNraW5nIHdoZXRoZXIgZ2NjIC1zdGQ9Z251 MjMgdW5kZXJzdGFuZHMgLWMgYW5kIC1vIHRvZ2V0aGVyLi4uIHllcwpjaGVja2luZyB3aGV0aGVy IG1ha2Ugc3VwcG9ydHMgdGhlIGluY2x1ZGUgZGlyZWN0aXZlLi4uIHllcyAoR05VIHN0eWxlKQpj aGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mIGdjYyAtc3RkPWdudTIzLi4uIGdjYzMKY2hlY2tp bmcgZm9yIGFyLi4uIGFyCmNoZWNraW5nIHRoZSBhcmNoaXZlciAoYXIpIGludGVyZmFjZS4uLiBh cgpjaGVja2luZyBmb3IgcmFubGliLi4uIHJhbmxpYgpjaGVja2luZyB0aGF0IGdlbmVyYXRlZCBm aWxlcyBhcmUgbmV3ZXIgdGhhbiBjb25maWd1cmUuLi4gZG9uZQpjb25maWd1cmU6IGNyZWF0aW5n IC4vY29uZmlnLnN0YXR1cwpjb25maWcuc3RhdHVzOiBjcmVhdGluZyBNYWtlZmlsZQpjb25maWcu c3RhdHVzOiBleGVjdXRpbmcgZGVwZmlsZXMgY29tbWFuZHMKI1tzdGRlcnJdKyBtYWtlIGFsbApn Y2MgLXN0ZD1nbnUyMyAtRFBBQ0tBR0VfTkFNRT1cImluc3RzcGNcIiAtRFBBQ0tBR0VfVEFSTkFN RT1cImluc3RzcGNcIiAtRFBBQ0tBR0VfVkVSU0lPTj1cIjEuMFwiIC1EUEFDS0FHRV9TVFJJTkc9 XCJpbnN0c3BjXCAxLjBcIiAtRFBBQ0tBR0VfQlVHUkVQT1JUPVwiXCIgLURQQUNLQUdFX1VSTD1c IlwiIC1EUEFDS0FHRT1cImluc3RzcGNcIiAtRFZFUlNJT049XCIxLjBcIiAtSS4gLUkuLiAgICAg LWcgLU8yIC1NVCBzb3VyY2UubyAtTUQgLU1QIC1NRiAuZGVwcy9zb3VyY2UuVHBvIC1jIC1vIHNv dXJjZS5vIC4uL3NvdXJjZS5jCm12IC1mIC5kZXBzL3NvdXJjZS5UcG8gLmRlcHMvc291cmNlLlBv CmdjYyAtc3RkPWdudTIzICAtZyAtTzIgICAtbyBzdWIvYmFzZSBzb3VyY2UubyAgCmdjYyAtc3Rk PWdudTIzICAtZyAtTzIgICAtbyBzdWIvbm9iYXNlIHNvdXJjZS5vICAKcm0gLWYgc3ViL2xpYmJh c2UuYQphciBjciBzdWIvbGliYmFzZS5hIHNvdXJjZS5vIApyYW5saWIgc3ViL2xpYmJhc2UuYQpy bSAtZiBzdWIvbGlibm9iYXNlLmEKYXIgY3Igc3ViL2xpYm5vYmFzZS5hIHNvdXJjZS5vIApyYW5s aWIgc3ViL2xpYm5vYmFzZS5hCiNbc3RkZXJyXSsgREVTVERJUj0vdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbWludXMvLQojW3N0ZGVycl0rIGZpbGU9Li8tCiNbc3Rk ZXJyXSsgbWFrZSB0ZXN0LWluc3QKbWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2J1aWxkLW1pbnVzJwogbWtkaXIgLXAgJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1taW51cy8tLy0tcHJlZml4 L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLi4vc3ViL2Jhc2Uuc2ggJy91c3IvbG9jYWwvc3Jj L2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1taW51cy8tLy0tcHJlZml4L2ZvbycKIG1rZGly IC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbWludXMvLS8t LXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAgc3ViL2xpYmJhc2UuYSAn L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1pbnVzLy0vLS1wcmVm aXgvZm9vJwogKCBjZCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LW1pbnVzLy0vLS1wcmVmaXgvZm9vJyAmJiByYW5saWIgbGliYmFzZS5hICkKIG1rZGlyIC1wICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbWludXMvLS8tLXByZWZp eC9mb28nCiAgL3Vzci9iaW4vaW5zdGFsbCAtYyBzdWIvYmFzZSAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1pbnVzLy0vLS1wcmVmaXgvZm9vJwogbWtkaXIgLXAg Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1taW51cy8tLy0tcHJl Zml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtbWludXMvLS8tLXByZWZpeC9mb28vc3ViLycKIC91c3IvYmluL2luc3RhbGwgLWMgLi4v c3ViL25vYmFzZS5zaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LW1pbnVzLy0vLS1wcmVmaXgvZm9vL3N1Yi8nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1pbnVzLy0vLS1wcmVmaXgvZm9vJwogbWtkaXIgLXAg Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1taW51cy8tLy0tcHJl Zml4L2Zvby9zdWInCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAgc3ViL2xpYm5vYmFzZS5h ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbWludXMvLS8tLXBy ZWZpeC9mb28vc3ViJwogKCBjZCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LW1pbnVzLy0vLS1wcmVmaXgvZm9vJyAmJiByYW5saWIgc3ViL2xpYm5vYmFzZS5hICkK IG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbWlu dXMvLS8tLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LW1pbnVzLy0vLS1wcmVmaXgvZm9vL3N1Yi8nCiAgL3Vzci9iaW4vaW5z dGFsbCAtYyBzdWIvbm9iYXNlICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtbWludXMvLS8tLXByZWZpeC9mb28vc3ViLycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbWludXMvLS8tLXByZWZpeC9mb28nCiAvdXNy L2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAuLi9zdWIvYmFzZS5kYXQgJy91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1taW51cy8tLy0tcHJlZml4L2ZvbycKIG1rZGlyIC1w ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbWludXMvLS8tLXBy ZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAuLi9zdWIvYmFzZS5oICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbWludXMvLS8tLXByZWZpeC9m b28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LW1pbnVzLy0vLS1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1taW51cy8tLy0tcHJlZml4L2Zvby9zdWInCiAvdXNyL2Jpbi9p bnN0YWxsIC1jIC1tIDY0NCAgLi4vc3ViL25vYmFzZS5kYXQgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1taW51cy8tLy0tcHJlZml4L2Zvby9zdWInCiBta2RpciAt cCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1pbnVzLy0vLS1w cmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1taW51cy8tLy0tcHJlZml4L2Zvby9zdWInCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1t IDY0NCAgLi4vc3ViL25vYmFzZS5oICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyL2Rlc3QtbWludXMvLS8tLXByZWZpeC9mb28vc3ViJwptYWtlWzFdOiBMZWF2aW5nIGRpcmVj dG9yeSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9idWlsZC1taW51cycK dGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbWlu dXMvLS8uLy0tcHJlZml4L2Zvby9zdWIvbm9iYXNlLmgnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1pbnVzLy0vLi8tLXByZWZpeC9mb28vbm9i YXNlLmgnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LW1pbnVzLy0vLi8tLXByZWZpeC9mb28vYmFzZS5oJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1taW51cy8tLy4vLS1wcmVmaXgvZm9vL3N1 Yi9ub2Jhc2UuZGF0Jwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1taW51cy8tLy4vLS1wcmVmaXgvZm9vL25vYmFzZS5kYXQnCnRlc3QgICAtZiAn L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1pbnVzLy0vLi8tLXBy ZWZpeC9mb28vYmFzZS5kYXQnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LW1pbnVzLy0vLi8tLXByZWZpeC9mb28vc3ViL25vYmFzZS5zaCcKdGVz dCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbWludXMv LS8uLy0tcHJlZml4L2Zvby9ub2Jhc2Uuc2gnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1pbnVzLy0vLi8tLXByZWZpeC9mb28vYmFzZS5zaCcK dGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbWlu dXMvLS8uLy0tcHJlZml4L2Zvby9zdWIvbm9iYXNlJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3Jj L2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1taW51cy8tLy4vLS1wcmVmaXgvZm9vL25vYmFz ZScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt bWludXMvLS8uLy0tcHJlZml4L2Zvby9iYXNlJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1taW51cy8tLy4vLS1wcmVmaXgvZm9vL3N1Yi9saWJu b2Jhc2UuYScKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtbWludXMvLS8uLy0tcHJlZml4L2Zvby9saWJub2Jhc2UuYScKdGVzdCAgIC1mICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbWludXMvLS8uLy0tcHJlZml4 L2Zvby9saWJiYXNlLmEnCiNbc3RkZXJyXSsgZGVzY3JpcHRpb249J21pbnVzIGluIGRlc3RkaXIn CiNbc3RkZXJyXSsgZXhwZWN0ZWRfdG9fZmFpbCBkZXN0IG1pbnVzCiNbc3RkZXJyXSsgY2FzZSAk MSBpbgojW3N0ZGVycl0rIGlzX2luX2xpc3QgbWludXMgc3F1b3RlIGRxdW90ZSBicXVvdGUgc2hh cnAgZG9sbGFyIGxpbmVmZWVkIGFfbGZfYgojW3N0ZGVycl0rIGl0ZW09bWludXMKI1tzdGRlcnJd KyBzaGlmdAojW3N0ZGVycl0rIGNhc2UgIiAkKiAiIGluCm9rIDM2IC0gbWludXMgaW4gZGVzdGRp cgpQQVNTOiB0L2luc3RzcGMudGFwIDM2IC0gbWludXMgaW4gZGVzdGRpcgojW3N0ZGVycl0rIHJl dHVybiAxCiNbc3RkZXJyXSsgZGlyZWN0aXZlPQojW3N0ZGVycl0rIHJlYXNvbj0KI1tzdGRlcnJd KyByZXN1bHRfIG9rIC1EICcnIC1yICcnIC0tICdtaW51cyBpbiBkZXN0ZGlyJwojW3N0ZGVycl0r IHNldCAreAojW3N0ZGVycl0rIGNkIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIKI1tzdGRlcnJdKyBub3QgYW1fa2VlcGluZ190ZXN0ZGlycwojW3N0ZGVycl0rIGFtX2tlZXBp bmdfdGVzdGRpcnMKI1tzdGRlcnJdKyBjYXNlICRrZWVwX3Rlc3RkaXJzIGluCiNbc3RkZXJyXSsg cmV0dXJuIDEKI1tzdGRlcnJdKyB0ZXN0IG9rID0gb2sKI1tzdGRlcnJdKyBybV9yZl8gYnVpbGQt bWludXMgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1pbnVzLy0K I1tzdGRlcnJdKyB0ZXN0IDIgLWd0IDAKI1tzdGRlcnJdKyBjaG1vZCAtUiB1K3J3eCBidWlsZC1t aW51cyAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbWludXMvLQoj W3N0ZGVycl0rIHJtIC1yZiBidWlsZC1taW51cyAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtbWludXMvLQojW3N0ZGVycl0rIF9hbV9ybXJmX3N0YXR1cz0wCiNbc3Rk ZXJyXSsgZm9yIF9hbV9ybXJmX3YgaW4gJyIkQCInCiNbc3RkZXJyXSsgdGVzdCAtZSBidWlsZC1t aW51cwojW3N0ZGVycl0rIGZvciBfYW1fcm1yZl92IGluICciJEAiJwojW3N0ZGVycl0rIHRlc3Qg LWUgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1pbnVzLy0KI1tz dGRlcnJdKyByZXR1cm4gMAojW3N0ZGVycl0rIDogRm9yIHNoZWxscyB3aXRoIGJ1c3RlZCAnc2V0 IC1lLicKI1tzdGRlcnJdKyBmb3IgdGVzdF9uYW1lIGluICckdGVzdF9uYW1lc19saXN0JwojW3N0 ZGVycl0rIGV2YWwgJ3Rlc3Rfc3RyaW5nPSR7aW5zdHNwY19fY29tbWF9JwojW3N0ZGVycl0rKyB0 ZXN0X3N0cmluZz0sCiNbc3RkZXJyXSsgdGVzdCB4LCA9IHgKI1tzdGRlcnJdKyBta2RpciAuLywK I1tzdGRlcnJdKyBjYXNlICR0ZXN0X3N0cmluZyBpbgojW3N0ZGVycl0rIGZvciB3aGVyZSBpbiBi dWlsZCBkZXN0CiNbc3RkZXJyXSsgY2FzZSAkd2hlcmUgaW4KI1tzdGRlcnJdKyBidWlsZD0uLywK I1tzdGRlcnJdKyBkZXN0PS91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC1jb21tYQojW3N0ZGVycl0rIGNkIC4vLAojW3N0ZGVycl0rIHI9b2sKI1tzdGRlcnJdKyAuLi9j b25maWd1cmUgLS1wcmVmaXggLywtcHJlZml4CmNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxl IGluc3RhbGwuLi4gL3Vzci9iaW4vaW5zdGFsbCAtYwpjaGVja2luZyB3aGV0aGVyIHNsZWVwIHN1 cHBvcnRzIGZyYWN0aW9uYWwgc2Vjb25kcy4uLiB5ZXMKY2hlY2tpbmcgZmlsZXN5c3RlbSB0aW1l c3RhbXAgcmVzb2x1dGlvbi4uLiAwLjAxCmNoZWNraW5nIHdoZXRoZXIgYnVpbGQgZW52aXJvbm1l bnQgaXMgc2FuZS4uLiB5ZXMKY2hlY2tpbmcgZm9yIGEgcmFjZS1mcmVlIG1rZGlyIC1wLi4uIG1r ZGlyIC1wCmNoZWNraW5nIGZvciBnYXdrLi4uIG5vCmNoZWNraW5nIGZvciBtYXdrLi4uIG5vCmNo ZWNraW5nIGZvciBuYXdrLi4uIG5vCmNoZWNraW5nIGZvciBhd2suLi4gYXdrCmNoZWNraW5nIHdo ZXRoZXIgbWFrZSBzZXRzICQoTUFLRSkuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgbWFrZSBzdXBw b3J0cyBuZXN0ZWQgdmFyaWFibGVzLi4uIHllcwpjaGVja2luZyB4YXJncyAtbiB3b3Jrcy4uLiB5 ZXMKY2hlY2tpbmcgd2hldGhlciBVSUQgJzUwMScgaXMgc3VwcG9ydGVkIGJ5IHVzdGFyIGZvcm1h dC4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBHSUQgJzIwJyBpcyBzdXBwb3J0ZWQgYnkgdXN0YXIg Zm9ybWF0Li4uIHllcwpjaGVja2luZyBob3cgdG8gY3JlYXRlIGEgdXN0YXIgdGFyIGFyY2hpdmUu Li4gcGxhaW50YXIKY2hlY2tpbmcgZm9yIGdjYy4uLiBnY2MKY2hlY2tpbmcgd2hldGhlciB0aGUg QyBjb21waWxlciB3b3Jrcy4uLiB5ZXMKY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgZGVmYXVsdCBv dXRwdXQgZmlsZSBuYW1lLi4uIGEub3V0CmNoZWNraW5nIGZvciBzdWZmaXggb2YgZXhlY3V0YWJs ZXMuLi4gCmNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZy4uLiBubwpjaGVj a2luZyBmb3Igc3VmZml4IG9mIG9iamVjdCBmaWxlcy4uLiBvCmNoZWNraW5nIHdoZXRoZXIgdGhl IGNvbXBpbGVyIHN1cHBvcnRzIEdOVSBDLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIGdjYyBhY2Nl cHRzIC1nLi4uIHllcwpjaGVja2luZyBmb3IgZ2NjIG9wdGlvbiB0byBlbmFibGUgQzIzIGZlYXR1 cmVzLi4uIC1zdGQ9Z251MjMKY2hlY2tpbmcgd2hldGhlciBnY2MgLXN0ZD1nbnUyMyB1bmRlcnN0 YW5kcyAtYyBhbmQgLW8gdG9nZXRoZXIuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgbWFrZSBzdXBw b3J0cyB0aGUgaW5jbHVkZSBkaXJlY3RpdmUuLi4geWVzIChHTlUgc3R5bGUpCmNoZWNraW5nIGRl cGVuZGVuY3kgc3R5bGUgb2YgZ2NjIC1zdGQ9Z251MjMuLi4gZ2NjMwpjaGVja2luZyBmb3IgYXIu Li4gYXIKY2hlY2tpbmcgdGhlIGFyY2hpdmVyIChhcikgaW50ZXJmYWNlLi4uIGFyCmNoZWNraW5n IGZvciByYW5saWIuLi4gcmFubGliCmNoZWNraW5nIHRoYXQgZ2VuZXJhdGVkIGZpbGVzIGFyZSBu ZXdlciB0aGFuIGNvbmZpZ3VyZS4uLiBkb25lCmNvbmZpZ3VyZTogY3JlYXRpbmcgLi9jb25maWcu c3RhdHVzCmNvbmZpZy5zdGF0dXM6IGNyZWF0aW5nIE1ha2VmaWxlCmNvbmZpZy5zdGF0dXM6IGV4 ZWN1dGluZyBkZXBmaWxlcyBjb21tYW5kcwojW3N0ZGVycl0rIG1ha2UgYWxsCmdjYyAtc3RkPWdu dTIzIC1EUEFDS0FHRV9OQU1FPVwiaW5zdHNwY1wiIC1EUEFDS0FHRV9UQVJOQU1FPVwiaW5zdHNw Y1wiIC1EUEFDS0FHRV9WRVJTSU9OPVwiMS4wXCIgLURQQUNLQUdFX1NUUklORz1cImluc3RzcGNc IDEuMFwiIC1EUEFDS0FHRV9CVUdSRVBPUlQ9XCJcIiAtRFBBQ0tBR0VfVVJMPVwiXCIgLURQQUNL QUdFPVwiaW5zdHNwY1wiIC1EVkVSU0lPTj1cIjEuMFwiIC1JLiAtSS4uICAgICAtZyAtTzIgLU1U IHNvdXJjZS5vIC1NRCAtTVAgLU1GIC5kZXBzL3NvdXJjZS5UcG8gLWMgLW8gc291cmNlLm8gLi4v c291cmNlLmMKbXYgLWYgLmRlcHMvc291cmNlLlRwbyAuZGVwcy9zb3VyY2UuUG8KZ2NjIC1zdGQ9 Z251MjMgIC1nIC1PMiAgIC1vIHN1Yi9iYXNlIHNvdXJjZS5vICAKZ2NjIC1zdGQ9Z251MjMgIC1n IC1PMiAgIC1vIHN1Yi9ub2Jhc2Ugc291cmNlLm8gIApybSAtZiBzdWIvbGliYmFzZS5hCmFyIGNy IHN1Yi9saWJiYXNlLmEgc291cmNlLm8gCnJhbmxpYiBzdWIvbGliYmFzZS5hCnJtIC1mIHN1Yi9s aWJub2Jhc2UuYQphciBjciBzdWIvbGlibm9iYXNlLmEgc291cmNlLm8gCnJhbmxpYiBzdWIvbGli bm9iYXNlLmEKI1tzdGRlcnJdKyBERVNURElSPS91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1jb21tYQojW3N0ZGVycl0rIGZpbGU9Li8sCiNbc3RkZXJyXSsgbWFrZSB0 ZXN0LWluc3QKbWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyLywnCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LWNvbW1hLywtcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwg LWMgLi4vc3ViL2Jhc2Uuc2ggJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1jb21tYS8sLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbW1hLywtcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3Rh bGwgLWMgLW0gNjQ0ICBzdWIvbGliYmFzZS5hICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtY29tbWEvLC1wcmVmaXgvZm9vJwogKCBjZCAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbW1hLywtcHJlZml4L2ZvbycgJiYgcmFubGli IGxpYmJhc2UuYSApCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LWNvbW1hLywtcHJlZml4L2ZvbycKICAvdXNyL2Jpbi9pbnN0YWxsIC1jIHN1Yi9i YXNlICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29tbWEvLC1w cmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1jb21tYS8sLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbW1hLywtcHJlZml4L2Zvby9zdWIvJwogL3Vzci9i aW4vaW5zdGFsbCAtYyAuLi9zdWIvbm9iYXNlLnNoICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3QtY29tbWEvLC1wcmVmaXgvZm9vL3N1Yi8nCiBta2RpciAtcCAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbW1hLywtcHJlZml4L2Zv bycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt Y29tbWEvLC1wcmVmaXgvZm9vL3N1YicKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICBzdWIv bGlibm9iYXNlLmEgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1j b21tYS8sLXByZWZpeC9mb28vc3ViJwogKCBjZCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LWNvbW1hLywtcHJlZml4L2ZvbycgJiYgcmFubGliIHN1Yi9saWJub2Jh c2UuYSApCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LWNvbW1hLywtcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtY29tbWEvLC1wcmVmaXgvZm9vL3N1Yi8nCiAgL3Vzci9iaW4v aW5zdGFsbCAtYyBzdWIvbm9iYXNlICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyL2Rlc3QtY29tbWEvLC1wcmVmaXgvZm9vL3N1Yi8nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbW1hLywtcHJlZml4L2ZvbycKIC91c3Iv YmluL2luc3RhbGwgLWMgLW0gNjQ0IC4uL3N1Yi9iYXNlLmRhdCAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbW1hLywtcHJlZml4L2ZvbycKIG1rZGlyIC1wICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29tbWEvLC1wcmVmaXgv Zm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgLi4vc3ViL2Jhc2UuaCAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbW1hLywtcHJlZml4L2ZvbycKIG1r ZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29tbWEv LC1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1jb21tYS8sLXByZWZpeC9mb28vc3ViJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAt bSA2NDQgIC4uL3N1Yi9ub2Jhc2UuZGF0ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtY29tbWEvLC1wcmVmaXgvZm9vL3N1YicKIG1rZGlyIC1wICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29tbWEvLC1wcmVmaXgvZm9vJwogbWtk aXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb21tYS8s LXByZWZpeC9mb28vc3ViJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIC4uL3N1Yi9ub2Jh c2UuaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbW1hLywt cHJlZml4L2Zvby9zdWInCm1ha2VbMV06IExlYXZpbmcgZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyLywnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbW1hLy4vLC1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2Uu aCcKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt Y29tbWEvLi8sLXByZWZpeC9mb28vbm9iYXNlLmgnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbW1hLy4vLC1wcmVmaXgvZm9vL2Jhc2UuaCcK dGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29t bWEvLi8sLXByZWZpeC9mb28vc3ViL25vYmFzZS5kYXQnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbW1hLy4vLC1wcmVmaXgvZm9vL25vYmFz ZS5kYXQnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LWNvbW1hLy4vLC1wcmVmaXgvZm9vL2Jhc2UuZGF0Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb21tYS8uLywtcHJlZml4L2Zvby9zdWIv bm9iYXNlLnNoJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1jb21tYS8uLywtcHJlZml4L2Zvby9ub2Jhc2Uuc2gnCnRlc3QgICAtZiAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbW1hLy4vLC1wcmVmaXgvZm9v L2Jhc2Uuc2gnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LWNvbW1hLy4vLC1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2UnCnRlc3QgISAtZiAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbW1hLy4vLC1wcmVmaXgvZm9v L25vYmFzZScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtY29tbWEvLi8sLXByZWZpeC9mb28vYmFzZScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29tbWEvLi8sLXByZWZpeC9mb28vc3ViL2xp Ym5vYmFzZS5hJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1jb21tYS8uLywtcHJlZml4L2Zvby9saWJub2Jhc2UuYScKdGVzdCAgIC1mICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29tbWEvLi8sLXByZWZpeC9m b28vbGliYmFzZS5hJwojW3N0ZGVycl0rIGRlc2NyaXB0aW9uPSdjb21tYSBpbiBidWlsZGRpcicK I1tzdGRlcnJdKyBleHBlY3RlZF90b19mYWlsIGJ1aWxkIGNvbW1hCiNbc3RkZXJyXSsgY2FzZSAk MSBpbgojW3N0ZGVycl0rIGlzX2luX2xpc3QgY29tbWEgc3F1b3RlIGRxdW90ZSBicXVvdGUgc2hh cnAgZG9sbGFyIGJzbGFzaCBhbXBlcnNhbmQgbGluZWZlZWQgcXVhZHJpZ3JhcGgwIGFfbGZfYgoj W3N0ZGVycl0rIGl0ZW09Y29tbWEKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNhc2UgIiAk KiAiIGluCm9rIDM3IC0gY29tbWEgaW4gYnVpbGRkaXIKUEFTUzogdC9pbnN0c3BjLnRhcCAzNyAt IGNvbW1hIGluIGJ1aWxkZGlyCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyBkaXJlY3Rp dmU9CiNbc3RkZXJyXSsgcmVhc29uPQojW3N0ZGVycl0rIHJlc3VsdF8gb2sgLUQgJycgLXIgJycg LS0gJ2NvbW1hIGluIGJ1aWxkZGlyJwojW3N0ZGVycl0rIHNldCAreAojW3N0ZGVycl0rIGNkIC91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIKI1tzdGRlcnJdKyBub3QgYW1fa2Vl cGluZ190ZXN0ZGlycwojW3N0ZGVycl0rIGFtX2tlZXBpbmdfdGVzdGRpcnMKI1tzdGRlcnJdKyBj YXNlICRrZWVwX3Rlc3RkaXJzIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyB0ZXN0 IG9rID0gb2sKI1tzdGRlcnJdKyBybV9yZl8gLi8sIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1jb21tYQojW3N0ZGVycl0rIHRlc3QgMiAtZ3QgMAojW3N0ZGVycl0r IGNobW9kIC1SIHUrcnd4IC4vLCAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtY29tbWEKI1tzdGRlcnJdKyBybSAtcmYgLi8sIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1jb21tYQojW3N0ZGVycl0rIF9hbV9ybXJmX3N0YXR1cz0wCiNb c3RkZXJyXSsgZm9yIF9hbV9ybXJmX3YgaW4gJyIkQCInCiNbc3RkZXJyXSsgdGVzdCAtZSAuLywK I1tzdGRlcnJdKyBmb3IgX2FtX3JtcmZfdiBpbiAnIiRAIicKI1tzdGRlcnJdKyB0ZXN0IC1lIC91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb21tYQojW3N0ZGVycl0r IHJldHVybiAwCiNbc3RkZXJyXSsgOiBGb3Igc2hlbGxzIHdpdGggYnVzdGVkICdzZXQgLWUuJwoj W3N0ZGVycl0rIGZvciB3aGVyZSBpbiBidWlsZCBkZXN0CiNbc3RkZXJyXSsgY2FzZSAkd2hlcmUg aW4KI1tzdGRlcnJdKyBidWlsZD1idWlsZC1jb21tYQojW3N0ZGVycl0rIGRlc3Q9L3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbW1hLywKI1tzdGRlcnJdKyBta2Rp ciBidWlsZC1jb21tYQojW3N0ZGVycl0rIGNkIGJ1aWxkLWNvbW1hCiNbc3RkZXJyXSsgcj1vawoj W3N0ZGVycl0rIC4uL2NvbmZpZ3VyZSAtLXByZWZpeCAvLC1wcmVmaXgKY2hlY2tpbmcgZm9yIGEg QlNELWNvbXBhdGlibGUgaW5zdGFsbC4uLiAvdXNyL2Jpbi9pbnN0YWxsIC1jCmNoZWNraW5nIHdo ZXRoZXIgc2xlZXAgc3VwcG9ydHMgZnJhY3Rpb25hbCBzZWNvbmRzLi4uIHllcwpjaGVja2luZyBm aWxlc3lzdGVtIHRpbWVzdGFtcCByZXNvbHV0aW9uLi4uIDAuMDEKY2hlY2tpbmcgd2hldGhlciBi dWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lLi4uIHllcwpjaGVja2luZyBmb3IgYSByYWNlLWZyZWUg bWtkaXIgLXAuLi4gbWtkaXIgLXAKY2hlY2tpbmcgZm9yIGdhd2suLi4gbm8KY2hlY2tpbmcgZm9y IG1hd2suLi4gbm8KY2hlY2tpbmcgZm9yIG5hd2suLi4gbm8KY2hlY2tpbmcgZm9yIGF3ay4uLiBh d2sKY2hlY2tpbmcgd2hldGhlciBtYWtlIHNldHMgJChNQUtFKS4uLiB5ZXMKY2hlY2tpbmcgd2hl dGhlciBtYWtlIHN1cHBvcnRzIG5lc3RlZCB2YXJpYWJsZXMuLi4geWVzCmNoZWNraW5nIHhhcmdz IC1uIHdvcmtzLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIFVJRCAnNTAxJyBpcyBzdXBwb3J0ZWQg YnkgdXN0YXIgZm9ybWF0Li4uIHllcwpjaGVja2luZyB3aGV0aGVyIEdJRCAnMjAnIGlzIHN1cHBv cnRlZCBieSB1c3RhciBmb3JtYXQuLi4geWVzCmNoZWNraW5nIGhvdyB0byBjcmVhdGUgYSB1c3Rh ciB0YXIgYXJjaGl2ZS4uLiBwbGFpbnRhcgpjaGVja2luZyBmb3IgZ2NjLi4uIGdjYwpjaGVja2lu ZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdvcmtzLi4uIHllcwpjaGVja2luZyBmb3IgQyBjb21w aWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUuLi4gYS5vdXQKY2hlY2tpbmcgZm9yIHN1ZmZp eCBvZiBleGVjdXRhYmxlcy4uLiAKY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGls aW5nLi4uIG5vCmNoZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzLi4uIG8KY2hlY2tp bmcgd2hldGhlciB0aGUgY29tcGlsZXIgc3VwcG9ydHMgR05VIEMuLi4geWVzCmNoZWNraW5nIHdo ZXRoZXIgZ2NjIGFjY2VwdHMgLWcuLi4geWVzCmNoZWNraW5nIGZvciBnY2Mgb3B0aW9uIHRvIGVu YWJsZSBDMjMgZmVhdHVyZXMuLi4gLXN0ZD1nbnUyMwpjaGVja2luZyB3aGV0aGVyIGdjYyAtc3Rk PWdudTIzIHVuZGVyc3RhbmRzIC1jIGFuZCAtbyB0b2dldGhlci4uLiB5ZXMKY2hlY2tpbmcgd2hl dGhlciBtYWtlIHN1cHBvcnRzIHRoZSBpbmNsdWRlIGRpcmVjdGl2ZS4uLiB5ZXMgKEdOVSBzdHls ZSkKY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiBnY2MgLXN0ZD1nbnUyMy4uLiBnY2MzCmNo ZWNraW5nIGZvciBhci4uLiBhcgpjaGVja2luZyB0aGUgYXJjaGl2ZXIgKGFyKSBpbnRlcmZhY2Uu Li4gYXIKY2hlY2tpbmcgZm9yIHJhbmxpYi4uLiByYW5saWIKY2hlY2tpbmcgdGhhdCBnZW5lcmF0 ZWQgZmlsZXMgYXJlIG5ld2VyIHRoYW4gY29uZmlndXJlLi4uIGRvbmUKY29uZmlndXJlOiBjcmVh dGluZyAuL2NvbmZpZy5zdGF0dXMKY29uZmlnLnN0YXR1czogY3JlYXRpbmcgTWFrZWZpbGUKY29u ZmlnLnN0YXR1czogZXhlY3V0aW5nIGRlcGZpbGVzIGNvbW1hbmRzCiNbc3RkZXJyXSsgbWFrZSBh bGwKZ2NjIC1zdGQ9Z251MjMgLURQQUNLQUdFX05BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdFX1RB Uk5BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdFX1ZFUlNJT049XCIxLjBcIiAtRFBBQ0tBR0VfU1RS SU5HPVwiaW5zdHNwY1wgMS4wXCIgLURQQUNLQUdFX0JVR1JFUE9SVD1cIlwiIC1EUEFDS0FHRV9V Ukw9XCJcIiAtRFBBQ0tBR0U9XCJpbnN0c3BjXCIgLURWRVJTSU9OPVwiMS4wXCIgLUkuIC1JLi4g ICAgIC1nIC1PMiAtTVQgc291cmNlLm8gLU1EIC1NUCAtTUYgLmRlcHMvc291cmNlLlRwbyAtYyAt byBzb3VyY2UubyAuLi9zb3VyY2UuYwptdiAtZiAuZGVwcy9zb3VyY2UuVHBvIC5kZXBzL3NvdXJj ZS5QbwpnY2MgLXN0ZD1nbnUyMyAgLWcgLU8yICAgLW8gc3ViL2Jhc2Ugc291cmNlLm8gIApnY2Mg LXN0ZD1nbnUyMyAgLWcgLU8yICAgLW8gc3ViL25vYmFzZSBzb3VyY2UubyAgCnJtIC1mIHN1Yi9s aWJiYXNlLmEKYXIgY3Igc3ViL2xpYmJhc2UuYSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJiYXNl LmEKcm0gLWYgc3ViL2xpYm5vYmFzZS5hCmFyIGNyIHN1Yi9saWJub2Jhc2UuYSBzb3VyY2UubyAK cmFubGliIHN1Yi9saWJub2Jhc2UuYQojW3N0ZGVycl0rIERFU1RESVI9L3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbW1hLywKI1tzdGRlcnJdKyBmaWxlPS4vLAoj W3N0ZGVycl0rIG1ha2UgdGVzdC1pbnN0Cm1ha2VbMV06IEVudGVyaW5nIGRpcmVjdG9yeSAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9idWlsZC1jb21tYScKIG1rZGlyIC1w ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29tbWEvLC8sLXBy ZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC4uL3N1Yi9iYXNlLnNoICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29tbWEvLC8sLXByZWZpeC9mb28nCiBt a2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbW1h LywvLC1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIHN1Yi9saWJiYXNl LmEgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb21tYS8sLywt cHJlZml4L2ZvbycKICggY2QgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1jb21tYS8sLywtcHJlZml4L2ZvbycgJiYgcmFubGliIGxpYmJhc2UuYSApCiBta2RpciAt cCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbW1hLywvLC1w cmVmaXgvZm9vJwogIC91c3IvYmluL2luc3RhbGwgLWMgc3ViL2Jhc2UgJy91c3IvbG9jYWwvc3Jj L2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb21tYS8sLywtcHJlZml4L2ZvbycKIG1rZGly IC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29tbWEvLC8s LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LWNvbW1hLywvLC1wcmVmaXgvZm9vL3N1Yi8nCiAvdXNyL2Jpbi9pbnN0YWxsIC1j IC4uL3N1Yi9ub2Jhc2Uuc2ggJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1jb21tYS8sLywtcHJlZml4L2Zvby9zdWIvJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3Jj L2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb21tYS8sLywtcHJlZml4L2ZvbycKIG1rZGly IC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29tbWEvLC8s LXByZWZpeC9mb28vc3ViJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIHN1Yi9saWJub2Jh c2UuYSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbW1hLywv LC1wcmVmaXgvZm9vL3N1YicKICggY2QgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1jb21tYS8sLywtcHJlZml4L2ZvbycgJiYgcmFubGliIHN1Yi9saWJub2Jhc2Uu YSApCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LWNvbW1hLywvLC1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1jb21tYS8sLywtcHJlZml4L2Zvby9zdWIvJwogIC91c3IvYmlu L2luc3RhbGwgLWMgc3ViL25vYmFzZSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LWNvbW1hLywvLC1wcmVmaXgvZm9vL3N1Yi8nCiBta2RpciAtcCAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbW1hLywvLC1wcmVmaXgvZm9vJwog L3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgLi4vc3ViL2Jhc2UuZGF0ICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29tbWEvLC8sLXByZWZpeC9mb28nCiBta2Rp ciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbW1hLywv LC1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgLi4vc3ViL2Jhc2UuaCAn L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbW1hLywvLC1wcmVm aXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1jb21tYS8sLywtcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29tbWEvLC8sLXByZWZpeC9mb28vc3ViJwogL3Vzci9i aW4vaW5zdGFsbCAtYyAtbSA2NDQgIC4uL3N1Yi9ub2Jhc2UuZGF0ICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29tbWEvLC8sLXByZWZpeC9mb28vc3ViJwogbWtk aXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb21tYS8s LywtcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtY29tbWEvLC8sLXByZWZpeC9mb28vc3ViJwogL3Vzci9iaW4vaW5zdGFsbCAt YyAtbSA2NDQgIC4uL3N1Yi9ub2Jhc2UuaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9kZXN0LWNvbW1hLywvLC1wcmVmaXgvZm9vL3N1YicKbWFrZVsxXTogTGVhdmluZyBk aXJlY3RvcnkgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvYnVpbGQtY29t bWEnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LWNvbW1hLywvLi8sLXByZWZpeC9mb28vc3ViL25vYmFzZS5oJwp0ZXN0ICEgLWYgJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb21tYS8sLy4vLC1wcmVmaXgvZm9v L25vYmFzZS5oJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1jb21tYS8sLy4vLC1wcmVmaXgvZm9vL2Jhc2UuaCcKdGVzdCAgIC1mICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29tbWEvLC8uLywtcHJlZml4L2Zv by9zdWIvbm9iYXNlLmRhdCcKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtY29tbWEvLC8uLywtcHJlZml4L2Zvby9ub2Jhc2UuZGF0Jwp0ZXN0ICAg LWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb21tYS8sLy4v LC1wcmVmaXgvZm9vL2Jhc2UuZGF0Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1jb21tYS8sLy4vLC1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2Uuc2gn CnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNv bW1hLywvLi8sLXByZWZpeC9mb28vbm9iYXNlLnNoJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3Jj L2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb21tYS8sLy4vLC1wcmVmaXgvZm9vL2Jhc2Uu c2gnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LWNvbW1hLywvLi8sLXByZWZpeC9mb28vc3ViL25vYmFzZScKdGVzdCAhIC1mICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29tbWEvLC8uLywtcHJlZml4L2Zvby9u b2Jhc2UnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LWNvbW1hLywvLi8sLXByZWZpeC9mb28vYmFzZScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29tbWEvLC8uLywtcHJlZml4L2Zvby9zdWIv bGlibm9iYXNlLmEnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LWNvbW1hLywvLi8sLXByZWZpeC9mb28vbGlibm9iYXNlLmEnCnRlc3QgICAtZiAn L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbW1hLywvLi8sLXBy ZWZpeC9mb28vbGliYmFzZS5hJwojW3N0ZGVycl0rIGRlc2NyaXB0aW9uPSdjb21tYSBpbiBkZXN0 ZGlyJwojW3N0ZGVycl0rIGV4cGVjdGVkX3RvX2ZhaWwgZGVzdCBjb21tYQojW3N0ZGVycl0rIGNh c2UgJDEgaW4KI1tzdGRlcnJdKyBpc19pbl9saXN0IGNvbW1hIHNxdW90ZSBkcXVvdGUgYnF1b3Rl IHNoYXJwIGRvbGxhciBsaW5lZmVlZCBhX2xmX2IKI1tzdGRlcnJdKyBpdGVtPWNvbW1hCiNbc3Rk ZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBjYXNlICIgJCogIiBpbgpvayAzOCAtIGNvbW1hIGluIGRl c3RkaXIKUEFTUzogdC9pbnN0c3BjLnRhcCAzOCAtIGNvbW1hIGluIGRlc3RkaXIKI1tzdGRlcnJd KyByZXR1cm4gMQojW3N0ZGVycl0rIGRpcmVjdGl2ZT0KI1tzdGRlcnJdKyByZWFzb249CiNbc3Rk ZXJyXSsgcmVzdWx0XyBvayAtRCAnJyAtciAnJyAtLSAnY29tbWEgaW4gZGVzdGRpcicKI1tzdGRl cnJdKyBzZXQgK3gKI1tzdGRlcnJdKyBjZCAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyCiNbc3RkZXJyXSsgbm90IGFtX2tlZXBpbmdfdGVzdGRpcnMKI1tzdGRlcnJdKyBhbV9r ZWVwaW5nX3Rlc3RkaXJzCiNbc3RkZXJyXSsgY2FzZSAka2VlcF90ZXN0ZGlycyBpbgojW3N0ZGVy cl0rIHJldHVybiAxCiNbc3RkZXJyXSsgdGVzdCBvayA9IG9rCiNbc3RkZXJyXSsgcm1fcmZfIGJ1 aWxkLWNvbW1hIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb21t YS8sCiNbc3RkZXJyXSsgdGVzdCAyIC1ndCAwCiNbc3RkZXJyXSsgY2htb2QgLVIgdStyd3ggYnVp bGQtY29tbWEgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbW1h LywKI1tzdGRlcnJdKyBybSAtcmYgYnVpbGQtY29tbWEgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LWNvbW1hLywKI1tzdGRlcnJdKyBfYW1fcm1yZl9zdGF0dXM9MAoj W3N0ZGVycl0rIGZvciBfYW1fcm1yZl92IGluICciJEAiJwojW3N0ZGVycl0rIHRlc3QgLWUgYnVp bGQtY29tbWEKI1tzdGRlcnJdKyBmb3IgX2FtX3JtcmZfdiBpbiAnIiRAIicKI1tzdGRlcnJdKyB0 ZXN0IC1lIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb21tYS8s CiNbc3RkZXJyXSsgcmV0dXJuIDAKI1tzdGRlcnJdKyA6IEZvciBzaGVsbHMgd2l0aCBidXN0ZWQg J3NldCAtZS4nCiNbc3RkZXJyXSsgZm9yIHRlc3RfbmFtZSBpbiAnJHRlc3RfbmFtZXNfbGlzdCcK I1tzdGRlcnJdKyBldmFsICd0ZXN0X3N0cmluZz0ke2luc3RzcGNfX2NvbG9ufScKI1tzdGRlcnJd KysgdGVzdF9zdHJpbmc9OgojW3N0ZGVycl0rIHRlc3QgeDogPSB4CiNbc3RkZXJyXSsgbWtkaXIg Li86CiNbc3RkZXJyXSsgY2FzZSAkdGVzdF9zdHJpbmcgaW4KI1tzdGRlcnJdKyBjZCAuLzoKI1tz dGRlcnJdKyBmb3Igd2hlcmUgaW4gYnVpbGQgZGVzdAojW3N0ZGVycl0rIGNhc2UgJHdoZXJlIGlu CiNbc3RkZXJyXSsgYnVpbGQ9Li86CiNbc3RkZXJyXSsgZGVzdD0vdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29sb24KI1tzdGRlcnJdKyBjZCAuLzoKI1tzdGRlcnJd KyByPW9rCiNbc3RkZXJyXSsgLi4vY29uZmlndXJlIC0tcHJlZml4IC86LXByZWZpeApjaGVja2lu ZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsLi4uIC91c3IvYmluL2luc3RhbGwgLWMKY2hl Y2tpbmcgd2hldGhlciBzbGVlcCBzdXBwb3J0cyBmcmFjdGlvbmFsIHNlY29uZHMuLi4geWVzCmNo ZWNraW5nIGZpbGVzeXN0ZW0gdGltZXN0YW1wIHJlc29sdXRpb24uLi4gMC4wMQpjaGVja2luZyB3 aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmUuLi4geWVzCmNoZWNraW5nIGZvciBhIHJh Y2UtZnJlZSBta2RpciAtcC4uLiBta2RpciAtcApjaGVja2luZyBmb3IgZ2F3ay4uLiBubwpjaGVj a2luZyBmb3IgbWF3ay4uLiBubwpjaGVja2luZyBmb3IgbmF3ay4uLiBubwpjaGVja2luZyBmb3Ig YXdrLi4uIGF3awpjaGVja2luZyB3aGV0aGVyIG1ha2Ugc2V0cyAkKE1BS0UpLi4uIHllcwpjaGVj a2luZyB3aGV0aGVyIG1ha2Ugc3VwcG9ydHMgbmVzdGVkIHZhcmlhYmxlcy4uLiB5ZXMKY2hlY2tp bmcgeGFyZ3MgLW4gd29ya3MuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgVUlEICc1MDEnIGlzIHN1 cHBvcnRlZCBieSB1c3RhciBmb3JtYXQuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgR0lEICcyMCcg aXMgc3VwcG9ydGVkIGJ5IHVzdGFyIGZvcm1hdC4uLiB5ZXMKY2hlY2tpbmcgaG93IHRvIGNyZWF0 ZSBhIHVzdGFyIHRhciBhcmNoaXZlLi4uIHBsYWludGFyCmNoZWNraW5nIGZvciBnY2MuLi4gZ2Nj CmNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgd29ya3MuLi4geWVzCmNoZWNraW5nIGZv ciBDIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZS4uLiBhLm91dApjaGVja2luZyBm b3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzLi4uIApjaGVja2luZyB3aGV0aGVyIHdlIGFyZSBjcm9z cyBjb21waWxpbmcuLi4gbm8KY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMuLi4g bwpjaGVja2luZyB3aGV0aGVyIHRoZSBjb21waWxlciBzdXBwb3J0cyBHTlUgQy4uLiB5ZXMKY2hl Y2tpbmcgd2hldGhlciBnY2MgYWNjZXB0cyAtZy4uLiB5ZXMKY2hlY2tpbmcgZm9yIGdjYyBvcHRp b24gdG8gZW5hYmxlIEMyMyBmZWF0dXJlcy4uLiAtc3RkPWdudTIzCmNoZWNraW5nIHdoZXRoZXIg Z2NjIC1zdGQ9Z251MjMgdW5kZXJzdGFuZHMgLWMgYW5kIC1vIHRvZ2V0aGVyLi4uIHllcwpjaGVj a2luZyB3aGV0aGVyIG1ha2Ugc3VwcG9ydHMgdGhlIGluY2x1ZGUgZGlyZWN0aXZlLi4uIHllcyAo R05VIHN0eWxlKQpjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mIGdjYyAtc3RkPWdudTIzLi4u IGdjYzMKY2hlY2tpbmcgZm9yIGFyLi4uIGFyCmNoZWNraW5nIHRoZSBhcmNoaXZlciAoYXIpIGlu dGVyZmFjZS4uLiBhcgpjaGVja2luZyBmb3IgcmFubGliLi4uIHJhbmxpYgpjaGVja2luZyB0aGF0 IGdlbmVyYXRlZCBmaWxlcyBhcmUgbmV3ZXIgdGhhbiBjb25maWd1cmUuLi4gZG9uZQpjb25maWd1 cmU6IGNyZWF0aW5nIC4vY29uZmlnLnN0YXR1cwpjb25maWcuc3RhdHVzOiBjcmVhdGluZyBNYWtl ZmlsZQpjb25maWcuc3RhdHVzOiBleGVjdXRpbmcgZGVwZmlsZXMgY29tbWFuZHMKI1tzdGRlcnJd KyBtYWtlIGFsbApnY2MgLXN0ZD1nbnUyMyAtRFBBQ0tBR0VfTkFNRT1cImluc3RzcGNcIiAtRFBB Q0tBR0VfVEFSTkFNRT1cImluc3RzcGNcIiAtRFBBQ0tBR0VfVkVSU0lPTj1cIjEuMFwiIC1EUEFD S0FHRV9TVFJJTkc9XCJpbnN0c3BjXCAxLjBcIiAtRFBBQ0tBR0VfQlVHUkVQT1JUPVwiXCIgLURQ QUNLQUdFX1VSTD1cIlwiIC1EUEFDS0FHRT1cImluc3RzcGNcIiAtRFZFUlNJT049XCIxLjBcIiAt SS4gLUkuLiAgICAgLWcgLU8yIC1NVCBzb3VyY2UubyAtTUQgLU1QIC1NRiAuZGVwcy9zb3VyY2Uu VHBvIC1jIC1vIHNvdXJjZS5vIC4uL3NvdXJjZS5jCm12IC1mIC5kZXBzL3NvdXJjZS5UcG8gLmRl cHMvc291cmNlLlBvCmdjYyAtc3RkPWdudTIzICAtZyAtTzIgICAtbyBzdWIvYmFzZSBzb3VyY2Uu byAgCmdjYyAtc3RkPWdudTIzICAtZyAtTzIgICAtbyBzdWIvbm9iYXNlIHNvdXJjZS5vICAKcm0g LWYgc3ViL2xpYmJhc2UuYQphciBjciBzdWIvbGliYmFzZS5hIHNvdXJjZS5vIApyYW5saWIgc3Vi L2xpYmJhc2UuYQpybSAtZiBzdWIvbGlibm9iYXNlLmEKYXIgY3Igc3ViL2xpYm5vYmFzZS5hIHNv dXJjZS5vIApyYW5saWIgc3ViL2xpYm5vYmFzZS5hCiNbc3RkZXJyXSsgREVTVERJUj0vdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29sb24KI1tzdGRlcnJdKyBmaWxl PS4vOgojW3N0ZGVycl0rIG1ha2UgdGVzdC1pbnN0Cm1ha2VbMV06IEVudGVyaW5nIGRpcmVjdG9y eSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci86JwogbWtkaXIgLXAgJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb2xvbi86LXByZWZpeC9m b28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC4uL3N1Yi9iYXNlLnNoICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29sb24vOi1wcmVmaXgvZm9vJwogbWtkaXIgLXAg Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb2xvbi86LXByZWZp eC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAgc3ViL2xpYmJhc2UuYSAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbG9uLzotcHJlZml4L2ZvbycK ICggY2QgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb2xvbi86 LXByZWZpeC9mb28nICYmIHJhbmxpYiBsaWJiYXNlLmEgKQogbWtkaXIgLXAgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb2xvbi86LXByZWZpeC9mb28nCiAgL3Vz ci9iaW4vaW5zdGFsbCAtYyBzdWIvYmFzZSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9kZXN0LWNvbG9uLzotcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29sb24vOi1wcmVmaXgvZm9vJwogbWtkaXIg LXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb2xvbi86LXBy ZWZpeC9mb28vc3ViLycKIC91c3IvYmluL2luc3RhbGwgLWMgLi4vc3ViL25vYmFzZS5zaCAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbG9uLzotcHJlZml4L2Zv by9zdWIvJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1jb2xvbi86LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbG9uLzotcHJlZml4L2Zvby9zdWInCiAvdXNyL2Jpbi9p bnN0YWxsIC1jIC1tIDY0NCAgc3ViL2xpYm5vYmFzZS5hICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtY29sb24vOi1wcmVmaXgvZm9vL3N1YicKICggY2QgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb2xvbi86LXByZWZpeC9mb28n ICYmIHJhbmxpYiBzdWIvbGlibm9iYXNlLmEgKQogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb2xvbi86LXByZWZpeC9mb28nCiBta2RpciAtcCAn L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbG9uLzotcHJlZml4 L2Zvby9zdWIvJwogIC91c3IvYmluL2luc3RhbGwgLWMgc3ViL25vYmFzZSAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbG9uLzotcHJlZml4L2Zvby9zdWIvJwog bWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb2xv bi86LXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAuLi9zdWIvYmFzZS5k YXQgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb2xvbi86LXBy ZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LWNvbG9uLzotcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0IC4u L3N1Yi9iYXNlLmggJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1j b2xvbi86LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LWNvbG9uLzotcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29sb24vOi1wcmVmaXgvZm9vL3N1YicK IC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICAuLi9zdWIvbm9iYXNlLmRhdCAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbG9uLzotcHJlZml4L2Zvby9zdWIn CiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNv bG9uLzotcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtY29sb24vOi1wcmVmaXgvZm9vL3N1YicKIC91c3IvYmluL2luc3RhbGwg LWMgLW0gNjQ0ICAuLi9zdWIvbm9iYXNlLmggJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1jb2xvbi86LXByZWZpeC9mb28vc3ViJwptYWtlWzFdOiBMZWF2aW5nIGRp cmVjdG9yeSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci86Jwp0ZXN0ICAg LWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb2xvbi8uLzot cHJlZml4L2Zvby9zdWIvbm9iYXNlLmgnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbG9uLy4vOi1wcmVmaXgvZm9vL25vYmFzZS5oJwp0ZXN0 ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb2xvbi8u LzotcHJlZml4L2Zvby9iYXNlLmgnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LWNvbG9uLy4vOi1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2UuZGF0Jwp0 ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb2xv bi8uLzotcHJlZml4L2Zvby9ub2Jhc2UuZGF0Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb2xvbi8uLzotcHJlZml4L2Zvby9iYXNlLmRhdCcK dGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29s b24vLi86LXByZWZpeC9mb28vc3ViL25vYmFzZS5zaCcKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29sb24vLi86LXByZWZpeC9mb28vbm9iYXNl LnNoJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC1jb2xvbi8uLzotcHJlZml4L2Zvby9iYXNlLnNoJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3Jj L2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb2xvbi8uLzotcHJlZml4L2Zvby9zdWIvbm9i YXNlJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC1jb2xvbi8uLzotcHJlZml4L2Zvby9ub2Jhc2UnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbG9uLy4vOi1wcmVmaXgvZm9vL2Jhc2UnCnRl c3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbG9u Ly4vOi1wcmVmaXgvZm9vL3N1Yi9saWJub2Jhc2UuYScKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29sb24vLi86LXByZWZpeC9mb28vbGlibm9i YXNlLmEnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LWNvbG9uLy4vOi1wcmVmaXgvZm9vL2xpYmJhc2UuYScKI1tzdGRlcnJdKyBkZXNjcmlwdGlv bj0nY29sb24gaW4gYnVpbGRkaXInCiNbc3RkZXJyXSsgZXhwZWN0ZWRfdG9fZmFpbCBidWlsZCBj b2xvbgojW3N0ZGVycl0rIGNhc2UgJDEgaW4KI1tzdGRlcnJdKyBpc19pbl9saXN0IGNvbG9uIHNx dW90ZSBkcXVvdGUgYnF1b3RlIHNoYXJwIGRvbGxhciBic2xhc2ggYW1wZXJzYW5kIGxpbmVmZWVk IHF1YWRyaWdyYXBoMCBhX2xmX2IKI1tzdGRlcnJdKyBpdGVtPWNvbG9uCiNbc3RkZXJyXSsgc2hp ZnQKI1tzdGRlcnJdKyBjYXNlICIgJCogIiBpbgojW3N0ZGVycl0rIHJldHVybiAxCm9rIDM5IC0g Y29sb24gaW4gYnVpbGRkaXIKUEFTUzogdC9pbnN0c3BjLnRhcCAzOSAtIGNvbG9uIGluIGJ1aWxk ZGlyCiNbc3RkZXJyXSsgZGlyZWN0aXZlPQojW3N0ZGVycl0rIHJlYXNvbj0KI1tzdGRlcnJdKyBy ZXN1bHRfIG9rIC1EICcnIC1yICcnIC0tICdjb2xvbiBpbiBidWlsZGRpcicKI1tzdGRlcnJdKyBz ZXQgK3gKI1tzdGRlcnJdKyBjZCAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly CiNbc3RkZXJyXSsgbm90IGFtX2tlZXBpbmdfdGVzdGRpcnMKI1tzdGRlcnJdKyBhbV9rZWVwaW5n X3Rlc3RkaXJzCiNbc3RkZXJyXSsgY2FzZSAka2VlcF90ZXN0ZGlycyBpbgojW3N0ZGVycl0rIHJl dHVybiAxCiNbc3RkZXJyXSsgdGVzdCBvayA9IG9rCiNbc3RkZXJyXSsgcm1fcmZfIC4vOiAvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29sb24KI1tzdGRlcnJdKyB0 ZXN0IDIgLWd0IDAKI1tzdGRlcnJdKyBjaG1vZCAtUiB1K3J3eCAuLzogL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbG9uCiNbc3RkZXJyXSsgcm0gLXJmIC4vOiAv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29sb24KI1tzdGRlcnJd KyBfYW1fcm1yZl9zdGF0dXM9MAojW3N0ZGVycl0rIGZvciBfYW1fcm1yZl92IGluICciJEAiJwoj W3N0ZGVycl0rIHRlc3QgLWUgLi86CiNbc3RkZXJyXSsgZm9yIF9hbV9ybXJmX3YgaW4gJyIkQCIn CiNbc3RkZXJyXSsgdGVzdCAtZSAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtY29sb24KI1tzdGRlcnJdKyByZXR1cm4gMAojW3N0ZGVycl0rIDogRm9yIHNoZWxscyB3 aXRoIGJ1c3RlZCAnc2V0IC1lLicKI1tzdGRlcnJdKyBmb3Igd2hlcmUgaW4gYnVpbGQgZGVzdAoj W3N0ZGVycl0rIGNhc2UgJHdoZXJlIGluCiNbc3RkZXJyXSsgYnVpbGQ9YnVpbGQtY29sb24KI1tz dGRlcnJdKyBkZXN0PS91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1j b2xvbi86CiNbc3RkZXJyXSsgbWtkaXIgYnVpbGQtY29sb24KI1tzdGRlcnJdKyBjZCBidWlsZC1j b2xvbgojW3N0ZGVycl0rIHI9b2sKI1tzdGRlcnJdKyAuLi9jb25maWd1cmUgLS1wcmVmaXggLzot cHJlZml4CmNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwuLi4gL3Vzci9iaW4v aW5zdGFsbCAtYwpjaGVja2luZyB3aGV0aGVyIHNsZWVwIHN1cHBvcnRzIGZyYWN0aW9uYWwgc2Vj b25kcy4uLiB5ZXMKY2hlY2tpbmcgZmlsZXN5c3RlbSB0aW1lc3RhbXAgcmVzb2x1dGlvbi4uLiAw LjAxCmNoZWNraW5nIHdoZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZS4uLiB5ZXMKY2hl Y2tpbmcgZm9yIGEgcmFjZS1mcmVlIG1rZGlyIC1wLi4uIG1rZGlyIC1wCmNoZWNraW5nIGZvciBn YXdrLi4uIG5vCmNoZWNraW5nIGZvciBtYXdrLi4uIG5vCmNoZWNraW5nIGZvciBuYXdrLi4uIG5v CmNoZWNraW5nIGZvciBhd2suLi4gYXdrCmNoZWNraW5nIHdoZXRoZXIgbWFrZSBzZXRzICQoTUFL RSkuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgbWFrZSBzdXBwb3J0cyBuZXN0ZWQgdmFyaWFibGVz Li4uIHllcwpjaGVja2luZyB4YXJncyAtbiB3b3Jrcy4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBV SUQgJzUwMScgaXMgc3VwcG9ydGVkIGJ5IHVzdGFyIGZvcm1hdC4uLiB5ZXMKY2hlY2tpbmcgd2hl dGhlciBHSUQgJzIwJyBpcyBzdXBwb3J0ZWQgYnkgdXN0YXIgZm9ybWF0Li4uIHllcwpjaGVja2lu ZyBob3cgdG8gY3JlYXRlIGEgdXN0YXIgdGFyIGFyY2hpdmUuLi4gcGxhaW50YXIKY2hlY2tpbmcg Zm9yIGdjYy4uLiBnY2MKY2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciB3b3Jrcy4uLiB5 ZXMKY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgZGVmYXVsdCBvdXRwdXQgZmlsZSBuYW1lLi4uIGEu b3V0CmNoZWNraW5nIGZvciBzdWZmaXggb2YgZXhlY3V0YWJsZXMuLi4gCmNoZWNraW5nIHdoZXRo ZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZy4uLiBubwpjaGVja2luZyBmb3Igc3VmZml4IG9mIG9i amVjdCBmaWxlcy4uLiBvCmNoZWNraW5nIHdoZXRoZXIgdGhlIGNvbXBpbGVyIHN1cHBvcnRzIEdO VSBDLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIGdjYyBhY2NlcHRzIC1nLi4uIHllcwpjaGVja2lu ZyBmb3IgZ2NjIG9wdGlvbiB0byBlbmFibGUgQzIzIGZlYXR1cmVzLi4uIC1zdGQ9Z251MjMKY2hl Y2tpbmcgd2hldGhlciBnY2MgLXN0ZD1nbnUyMyB1bmRlcnN0YW5kcyAtYyBhbmQgLW8gdG9nZXRo ZXIuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgbWFrZSBzdXBwb3J0cyB0aGUgaW5jbHVkZSBkaXJl Y3RpdmUuLi4geWVzIChHTlUgc3R5bGUpCmNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgZ2Nj IC1zdGQ9Z251MjMuLi4gZ2NjMwpjaGVja2luZyBmb3IgYXIuLi4gYXIKY2hlY2tpbmcgdGhlIGFy Y2hpdmVyIChhcikgaW50ZXJmYWNlLi4uIGFyCmNoZWNraW5nIGZvciByYW5saWIuLi4gcmFubGli CmNoZWNraW5nIHRoYXQgZ2VuZXJhdGVkIGZpbGVzIGFyZSBuZXdlciB0aGFuIGNvbmZpZ3VyZS4u LiBkb25lCmNvbmZpZ3VyZTogY3JlYXRpbmcgLi9jb25maWcuc3RhdHVzCmNvbmZpZy5zdGF0dXM6 IGNyZWF0aW5nIE1ha2VmaWxlCmNvbmZpZy5zdGF0dXM6IGV4ZWN1dGluZyBkZXBmaWxlcyBjb21t YW5kcwojW3N0ZGVycl0rIG1ha2UgYWxsCmdjYyAtc3RkPWdudTIzIC1EUEFDS0FHRV9OQU1FPVwi aW5zdHNwY1wiIC1EUEFDS0FHRV9UQVJOQU1FPVwiaW5zdHNwY1wiIC1EUEFDS0FHRV9WRVJTSU9O PVwiMS4wXCIgLURQQUNLQUdFX1NUUklORz1cImluc3RzcGNcIDEuMFwiIC1EUEFDS0FHRV9CVUdS RVBPUlQ9XCJcIiAtRFBBQ0tBR0VfVVJMPVwiXCIgLURQQUNLQUdFPVwiaW5zdHNwY1wiIC1EVkVS U0lPTj1cIjEuMFwiIC1JLiAtSS4uICAgICAtZyAtTzIgLU1UIHNvdXJjZS5vIC1NRCAtTVAgLU1G IC5kZXBzL3NvdXJjZS5UcG8gLWMgLW8gc291cmNlLm8gLi4vc291cmNlLmMKbXYgLWYgLmRlcHMv c291cmNlLlRwbyAuZGVwcy9zb3VyY2UuUG8KZ2NjIC1zdGQ9Z251MjMgIC1nIC1PMiAgIC1vIHN1 Yi9iYXNlIHNvdXJjZS5vICAKZ2NjIC1zdGQ9Z251MjMgIC1nIC1PMiAgIC1vIHN1Yi9ub2Jhc2Ug c291cmNlLm8gIApybSAtZiBzdWIvbGliYmFzZS5hCmFyIGNyIHN1Yi9saWJiYXNlLmEgc291cmNl Lm8gCnJhbmxpYiBzdWIvbGliYmFzZS5hCnJtIC1mIHN1Yi9saWJub2Jhc2UuYQphciBjciBzdWIv bGlibm9iYXNlLmEgc291cmNlLm8gCnJhbmxpYiBzdWIvbGlibm9iYXNlLmEKI1tzdGRlcnJdKyBE RVNURElSPS91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb2xvbi86 CiNbc3RkZXJyXSsgZmlsZT0uLzoKI1tzdGRlcnJdKyBtYWtlIHRlc3QtaW5zdAptYWtlWzFdOiBF bnRlcmluZyBkaXJlY3RvcnkgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv YnVpbGQtY29sb24nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LWNvbG9uLzovOi1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAuLi9z dWIvYmFzZS5zaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNv bG9uLzovOi1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1jb2xvbi86LzotcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwg LWMgLW0gNjQ0ICBzdWIvbGliYmFzZS5hICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtY29sb24vOi86LXByZWZpeC9mb28nCiAoIGNkICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29sb24vOi86LXByZWZpeC9mb28nICYmIHJhbmxp YiBsaWJiYXNlLmEgKQogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1jb2xvbi86LzotcHJlZml4L2ZvbycKICAvdXNyL2Jpbi9pbnN0YWxsIC1jIHN1 Yi9iYXNlICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29sb24v Oi86LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9kZXN0LWNvbG9uLzovOi1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb2xvbi86LzotcHJlZml4L2Zvby9zdWIv JwogL3Vzci9iaW4vaW5zdGFsbCAtYyAuLi9zdWIvbm9iYXNlLnNoICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29sb24vOi86LXByZWZpeC9mb28vc3ViLycKIG1r ZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29sb24v Oi86LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9kZXN0LWNvbG9uLzovOi1wcmVmaXgvZm9vL3N1YicKIC91c3IvYmluL2luc3RhbGwg LWMgLW0gNjQ0ICBzdWIvbGlibm9iYXNlLmEgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1jb2xvbi86LzotcHJlZml4L2Zvby9zdWInCiAoIGNkICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29sb24vOi86LXByZWZpeC9mb28nICYm IHJhbmxpYiBzdWIvbGlibm9iYXNlLmEgKQogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb2xvbi86LzotcHJlZml4L2ZvbycKIG1rZGlyIC1wICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29sb24vOi86LXByZWZp eC9mb28vc3ViLycKICAvdXNyL2Jpbi9pbnN0YWxsIC1jIHN1Yi9ub2Jhc2UgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb2xvbi86LzotcHJlZml4L2Zvby9zdWIv JwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1j b2xvbi86LzotcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0IC4uL3N1Yi9i YXNlLmRhdCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbG9u LzovOi1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1jb2xvbi86LzotcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMg LW0gNjQ0IC4uL3N1Yi9iYXNlLmggJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1jb2xvbi86LzotcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29sb24vOi86LXByZWZpeC9mb28nCiBta2RpciAt cCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbG9uLzovOi1w cmVmaXgvZm9vL3N1YicKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICAuLi9zdWIvbm9iYXNl LmRhdCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbG9uLzov Oi1wcmVmaXgvZm9vL3N1YicKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtY29sb24vOi86LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbG9uLzovOi1wcmVmaXgvZm9vL3N1 YicKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICAuLi9zdWIvbm9iYXNlLmggJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb2xvbi86LzotcHJlZml4L2Zvby9z dWInCm1ha2VbMV06IExlYXZpbmcgZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2J1aWxkLWNvbG9uJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb2xvbi86Ly4vOi1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2Uu aCcKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt Y29sb24vOi8uLzotcHJlZml4L2Zvby9ub2Jhc2UuaCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29sb24vOi8uLzotcHJlZml4L2Zvby9iYXNl LmgnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LWNvbG9uLzovLi86LXByZWZpeC9mb28vc3ViL25vYmFzZS5kYXQnCnRlc3QgISAtZiAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbG9uLzovLi86LXByZWZpeC9m b28vbm9iYXNlLmRhdCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtY29sb24vOi8uLzotcHJlZml4L2Zvby9iYXNlLmRhdCcKdGVzdCAgIC1mICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29sb24vOi8uLzotcHJl Zml4L2Zvby9zdWIvbm9iYXNlLnNoJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1jb2xvbi86Ly4vOi1wcmVmaXgvZm9vL25vYmFzZS5zaCcKdGVz dCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtY29sb24v Oi8uLzotcHJlZml4L2Zvby9iYXNlLnNoJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb2xvbi86Ly4vOi1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2Un CnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNv bG9uLzovLi86LXByZWZpeC9mb28vbm9iYXNlJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb2xvbi86Ly4vOi1wcmVmaXgvZm9vL2Jhc2UnCnRl c3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWNvbG9u LzovLi86LXByZWZpeC9mb28vc3ViL2xpYm5vYmFzZS5hJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb2xvbi86Ly4vOi1wcmVmaXgvZm9vL2xp Ym5vYmFzZS5hJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1jb2xvbi86Ly4vOi1wcmVmaXgvZm9vL2xpYmJhc2UuYScKI1tzdGRlcnJdKyBkZXNj cmlwdGlvbj0nY29sb24gaW4gZGVzdGRpcicKI1tzdGRlcnJdKyBleHBlY3RlZF90b19mYWlsIGRl c3QgY29sb24KI1tzdGRlcnJdKyBjYXNlICQxIGluCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBjb2xv biBzcXVvdGUgZHF1b3RlIGJxdW90ZSBzaGFycCBkb2xsYXIgbGluZWZlZWQgYV9sZl9iCm9rIDQw IC0gY29sb24gaW4gZGVzdGRpcgpQQVNTOiB0L2luc3RzcGMudGFwIDQwIC0gY29sb24gaW4gZGVz dGRpcgojW3N0ZGVycl0rIGl0ZW09Y29sb24KI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNh c2UgIiAkKiAiIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyBkaXJlY3RpdmU9CiNb c3RkZXJyXSsgcmVhc29uPQojW3N0ZGVycl0rIHJlc3VsdF8gb2sgLUQgJycgLXIgJycgLS0gJ2Nv bG9uIGluIGRlc3RkaXInCiNbc3RkZXJyXSsgc2V0ICt4CiNbc3RkZXJyXSsgY2QgL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpcgojW3N0ZGVycl0rIG5vdCBhbV9rZWVwaW5nX3Rl c3RkaXJzCiNbc3RkZXJyXSsgYW1fa2VlcGluZ190ZXN0ZGlycwojW3N0ZGVycl0rIGNhc2UgJGtl ZXBfdGVzdGRpcnMgaW4KI1tzdGRlcnJdKyByZXR1cm4gMQojW3N0ZGVycl0rIHRlc3Qgb2sgPSBv awojW3N0ZGVycl0rIHJtX3JmXyBidWlsZC1jb2xvbiAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3QtY29sb24vOgojW3N0ZGVycl0rIHRlc3QgMiAtZ3QgMAojW3N0ZGVy cl0rIGNobW9kIC1SIHUrcnd4IGJ1aWxkLWNvbG9uIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1jb2xvbi86CiNbc3RkZXJyXSsgcm0gLXJmIGJ1aWxkLWNvbG9uIC91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1jb2xvbi86CiNbc3RkZXJy XSsgX2FtX3JtcmZfc3RhdHVzPTAKI1tzdGRlcnJdKyBmb3IgX2FtX3JtcmZfdiBpbiAnIiRAIicK I1tzdGRlcnJdKyB0ZXN0IC1lIGJ1aWxkLWNvbG9uCiNbc3RkZXJyXSsgZm9yIF9hbV9ybXJmX3Yg aW4gJyIkQCInCiNbc3RkZXJyXSsgdGVzdCAtZSAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtY29sb24vOgojW3N0ZGVycl0rIHJldHVybiAwCiNbc3RkZXJyXSsgOiBG b3Igc2hlbGxzIHdpdGggYnVzdGVkICdzZXQgLWUuJwojW3N0ZGVycl0rIGZvciB0ZXN0X25hbWUg aW4gJyR0ZXN0X25hbWVzX2xpc3QnCiNbc3RkZXJyXSsgZXZhbCAndGVzdF9zdHJpbmc9JHtpbnN0 c3BjX19zZW1pY29sfScKI1tzdGRlcnJdKysgdGVzdF9zdHJpbmc9JzsnCiNbc3RkZXJyXSsgdGVz dCAneDsnID0geAojW3N0ZGVycl0rIG1rZGlyICcuLzsnCiNbc3RkZXJyXSsgY2FzZSAkdGVzdF9z dHJpbmcgaW4KI1tzdGRlcnJdKyBmb3Igd2hlcmUgaW4gYnVpbGQgZGVzdAojW3N0ZGVycl0rIGNh c2UgJHdoZXJlIGluCiNbc3RkZXJyXSsgYnVpbGQ9Jy4vOycKI1tzdGRlcnJdKyBkZXN0PS91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zZW1pY29sCiNbc3RkZXJyXSsg Y2QgJy4vOycKI1tzdGRlcnJdKyByPW9rCiNbc3RkZXJyXSsgLi4vY29uZmlndXJlIC0tcHJlZml4 ICcvOy1wcmVmaXgnCmNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwuLi4gL3Vz ci9iaW4vaW5zdGFsbCAtYwpjaGVja2luZyB3aGV0aGVyIHNsZWVwIHN1cHBvcnRzIGZyYWN0aW9u YWwgc2Vjb25kcy4uLiB5ZXMKY2hlY2tpbmcgZmlsZXN5c3RlbSB0aW1lc3RhbXAgcmVzb2x1dGlv bi4uLiAwLjAxCmNoZWNraW5nIHdoZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZS4uLiB5 ZXMKY2hlY2tpbmcgZm9yIGEgcmFjZS1mcmVlIG1rZGlyIC1wLi4uIG1rZGlyIC1wCmNoZWNraW5n IGZvciBnYXdrLi4uIG5vCmNoZWNraW5nIGZvciBtYXdrLi4uIG5vCmNoZWNraW5nIGZvciBuYXdr Li4uIG5vCmNoZWNraW5nIGZvciBhd2suLi4gYXdrCmNoZWNraW5nIHdoZXRoZXIgbWFrZSBzZXRz ICQoTUFLRSkuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgbWFrZSBzdXBwb3J0cyBuZXN0ZWQgdmFy aWFibGVzLi4uIHllcwpjaGVja2luZyB4YXJncyAtbiB3b3Jrcy4uLiB5ZXMKY2hlY2tpbmcgd2hl dGhlciBVSUQgJzUwMScgaXMgc3VwcG9ydGVkIGJ5IHVzdGFyIGZvcm1hdC4uLiB5ZXMKY2hlY2tp bmcgd2hldGhlciBHSUQgJzIwJyBpcyBzdXBwb3J0ZWQgYnkgdXN0YXIgZm9ybWF0Li4uIHllcwpj aGVja2luZyBob3cgdG8gY3JlYXRlIGEgdXN0YXIgdGFyIGFyY2hpdmUuLi4gcGxhaW50YXIKY2hl Y2tpbmcgZm9yIGdjYy4uLiBnY2MKY2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciB3b3Jr cy4uLiB5ZXMKY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgZGVmYXVsdCBvdXRwdXQgZmlsZSBuYW1l Li4uIGEub3V0CmNoZWNraW5nIGZvciBzdWZmaXggb2YgZXhlY3V0YWJsZXMuLi4gCmNoZWNraW5n IHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZy4uLiBubwpjaGVja2luZyBmb3Igc3VmZml4 IG9mIG9iamVjdCBmaWxlcy4uLiBvCmNoZWNraW5nIHdoZXRoZXIgdGhlIGNvbXBpbGVyIHN1cHBv cnRzIEdOVSBDLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIGdjYyBhY2NlcHRzIC1nLi4uIHllcwpj aGVja2luZyBmb3IgZ2NjIG9wdGlvbiB0byBlbmFibGUgQzIzIGZlYXR1cmVzLi4uIC1zdGQ9Z251 MjMKY2hlY2tpbmcgd2hldGhlciBnY2MgLXN0ZD1nbnUyMyB1bmRlcnN0YW5kcyAtYyBhbmQgLW8g dG9nZXRoZXIuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgbWFrZSBzdXBwb3J0cyB0aGUgaW5jbHVk ZSBkaXJlY3RpdmUuLi4geWVzIChHTlUgc3R5bGUpCmNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUg b2YgZ2NjIC1zdGQ9Z251MjMuLi4gZ2NjMwpjaGVja2luZyBmb3IgYXIuLi4gYXIKY2hlY2tpbmcg dGhlIGFyY2hpdmVyIChhcikgaW50ZXJmYWNlLi4uIGFyCmNoZWNraW5nIGZvciByYW5saWIuLi4g cmFubGliCmNoZWNraW5nIHRoYXQgZ2VuZXJhdGVkIGZpbGVzIGFyZSBuZXdlciB0aGFuIGNvbmZp Z3VyZS4uLiBkb25lCmNvbmZpZ3VyZTogY3JlYXRpbmcgLi9jb25maWcuc3RhdHVzCmNvbmZpZy5z dGF0dXM6IGNyZWF0aW5nIE1ha2VmaWxlCmNvbmZpZy5zdGF0dXM6IGV4ZWN1dGluZyBkZXBmaWxl cyBjb21tYW5kcwojW3N0ZGVycl0rIG1ha2UgYWxsCmdjYyAtc3RkPWdudTIzIC1EUEFDS0FHRV9O QU1FPVwiaW5zdHNwY1wiIC1EUEFDS0FHRV9UQVJOQU1FPVwiaW5zdHNwY1wiIC1EUEFDS0FHRV9W RVJTSU9OPVwiMS4wXCIgLURQQUNLQUdFX1NUUklORz1cImluc3RzcGNcIDEuMFwiIC1EUEFDS0FH RV9CVUdSRVBPUlQ9XCJcIiAtRFBBQ0tBR0VfVVJMPVwiXCIgLURQQUNLQUdFPVwiaW5zdHNwY1wi IC1EVkVSU0lPTj1cIjEuMFwiIC1JLiAtSS4uICAgICAtZyAtTzIgLU1UIHNvdXJjZS5vIC1NRCAt TVAgLU1GIC5kZXBzL3NvdXJjZS5UcG8gLWMgLW8gc291cmNlLm8gLi4vc291cmNlLmMKbXYgLWYg LmRlcHMvc291cmNlLlRwbyAuZGVwcy9zb3VyY2UuUG8KZ2NjIC1zdGQ9Z251MjMgIC1nIC1PMiAg IC1vIHN1Yi9iYXNlIHNvdXJjZS5vICAKZ2NjIC1zdGQ9Z251MjMgIC1nIC1PMiAgIC1vIHN1Yi9u b2Jhc2Ugc291cmNlLm8gIApybSAtZiBzdWIvbGliYmFzZS5hCmFyIGNyIHN1Yi9saWJiYXNlLmEg c291cmNlLm8gCnJhbmxpYiBzdWIvbGliYmFzZS5hCnJtIC1mIHN1Yi9saWJub2Jhc2UuYQphciBj ciBzdWIvbGlibm9iYXNlLmEgc291cmNlLm8gCnJhbmxpYiBzdWIvbGlibm9iYXNlLmEKI1tzdGRl cnJdKyBERVNURElSPS91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1z ZW1pY29sCiNbc3RkZXJyXSsgZmlsZT0nLi87JwojW3N0ZGVycl0rIG1ha2UgdGVzdC1pbnN0Cm1h a2VbMV06IEVudGVyaW5nIGRpcmVjdG9yeSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci87JwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1zZW1pY29sLzstcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLi4vc3Vi L2Jhc2Uuc2ggJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zZW1p Y29sLzstcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3Qtc2VtaWNvbC87LXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1j IC1tIDY0NCAgc3ViL2xpYmJhc2UuYSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LXNlbWljb2wvOy1wcmVmaXgvZm9vJwogKCBjZCAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNlbWljb2wvOy1wcmVmaXgvZm9vJyAmJiByYW5saWIg bGliYmFzZS5hICkKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyL2Rlc3Qtc2VtaWNvbC87LXByZWZpeC9mb28nCiAgL3Vzci9iaW4vaW5zdGFsbCAtYyBzdWIv YmFzZSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNlbWljb2wv Oy1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1zZW1pY29sLzstcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc2VtaWNvbC87LXByZWZpeC9mb28vc3ViLycK IC91c3IvYmluL2luc3RhbGwgLWMgLi4vc3ViL25vYmFzZS5zaCAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNlbWljb2wvOy1wcmVmaXgvZm9vL3N1Yi8nCiBta2Rp ciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNlbWljb2wv Oy1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1zZW1pY29sLzstcHJlZml4L2Zvby9zdWInCiAvdXNyL2Jpbi9pbnN0YWxsIC1j IC1tIDY0NCAgc3ViL2xpYm5vYmFzZS5hICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3Qtc2VtaWNvbC87LXByZWZpeC9mb28vc3ViJwogKCBjZCAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNlbWljb2wvOy1wcmVmaXgvZm9vJyAmJiBy YW5saWIgc3ViL2xpYm5vYmFzZS5hICkKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3Qtc2VtaWNvbC87LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNlbWljb2wvOy1wcmVmaXgv Zm9vL3N1Yi8nCiAgL3Vzci9iaW4vaW5zdGFsbCAtYyBzdWIvbm9iYXNlICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc2VtaWNvbC87LXByZWZpeC9mb28vc3ViLycK IG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc2Vt aWNvbC87LXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAuLi9zdWIvYmFz ZS5kYXQgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zZW1pY29s LzstcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3Qtc2VtaWNvbC87LXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1t IDY0NCAuLi9zdWIvYmFzZS5oICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3Qtc2VtaWNvbC87LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNlbWljb2wvOy1wcmVmaXgvZm9vJwogbWtkaXIgLXAg Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zZW1pY29sLzstcHJl Zml4L2Zvby9zdWInCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAgLi4vc3ViL25vYmFzZS5k YXQgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zZW1pY29sLzst cHJlZml4L2Zvby9zdWInCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9kZXN0LXNlbWljb2wvOy1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zZW1pY29sLzstcHJlZml4L2Zvby9zdWIn CiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAgLi4vc3ViL25vYmFzZS5oICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc2VtaWNvbC87LXByZWZpeC9mb28vc3Vi JwptYWtlWzFdOiBMZWF2aW5nIGRpcmVjdG9yeSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci87Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1zZW1pY29sLy4vOy1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2UuaCcKdGVzdCAhIC1m ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc2VtaWNvbC8uLzst cHJlZml4L2Zvby9ub2Jhc2UuaCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3Qtc2VtaWNvbC8uLzstcHJlZml4L2Zvby9iYXNlLmgnCnRlc3QgICAt ZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNlbWljb2wvLi87 LXByZWZpeC9mb28vc3ViL25vYmFzZS5kYXQnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNlbWljb2wvLi87LXByZWZpeC9mb28vbm9iYXNlLmRh dCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt c2VtaWNvbC8uLzstcHJlZml4L2Zvby9iYXNlLmRhdCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc2VtaWNvbC8uLzstcHJlZml4L2Zvby9zdWIv bm9iYXNlLnNoJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1zZW1pY29sLy4vOy1wcmVmaXgvZm9vL25vYmFzZS5zaCcKdGVzdCAgIC1mICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc2VtaWNvbC8uLzstcHJlZml4 L2Zvby9iYXNlLnNoJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1zZW1pY29sLy4vOy1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2UnCnRlc3QgISAtZiAn L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNlbWljb2wvLi87LXBy ZWZpeC9mb28vbm9iYXNlJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1zZW1pY29sLy4vOy1wcmVmaXgvZm9vL2Jhc2UnCnRlc3QgICAtZiAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNlbWljb2wvLi87LXByZWZp eC9mb28vc3ViL2xpYm5vYmFzZS5hJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1zZW1pY29sLy4vOy1wcmVmaXgvZm9vL2xpYm5vYmFzZS5hJwp0 ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zZW1p Y29sLy4vOy1wcmVmaXgvZm9vL2xpYmJhc2UuYScKI1tzdGRlcnJdKyBkZXNjcmlwdGlvbj0nc2Vt aWNvbCBpbiBidWlsZGRpcicKI1tzdGRlcnJdKyBleHBlY3RlZF90b19mYWlsIGJ1aWxkIHNlbWlj b2wKI1tzdGRlcnJdKyBjYXNlICQxIGluCiNbc3RkZXJyXSsgaXNfaW5fbGlzdCBzZW1pY29sIHNx dW90ZSBkcXVvdGUgYnF1b3RlIHNoYXJwIGRvbGxhciBic2xhc2ggYW1wZXJzYW5kIGxpbmVmZWVk IHF1YWRyaWdyYXBoMCBhX2xmX2IKI1tzdGRlcnJdKyBpdGVtPXNlbWljb2wKI1tzdGRlcnJdKyBz aGlmdAojW3N0ZGVycl0rIGNhc2UgIiAkKiAiIGluCm9rIDQxIC0gc2VtaWNvbCBpbiBidWlsZGRp cgpQQVNTOiB0L2luc3RzcGMudGFwIDQxIC0gc2VtaWNvbCBpbiBidWlsZGRpcgojW3N0ZGVycl0r IHJldHVybiAxCiNbc3RkZXJyXSsgZGlyZWN0aXZlPQojW3N0ZGVycl0rIHJlYXNvbj0KI1tzdGRl cnJdKyByZXN1bHRfIG9rIC1EICcnIC1yICcnIC0tICdzZW1pY29sIGluIGJ1aWxkZGlyJwojW3N0 ZGVycl0rIHNldCAreAojW3N0ZGVycl0rIGNkIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIKI1tzdGRlcnJdKyBub3QgYW1fa2VlcGluZ190ZXN0ZGlycwojW3N0ZGVycl0rIGFt X2tlZXBpbmdfdGVzdGRpcnMKI1tzdGRlcnJdKyBjYXNlICRrZWVwX3Rlc3RkaXJzIGluCiNbc3Rk ZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyB0ZXN0IG9rID0gb2sKI1tzdGRlcnJdKyBybV9yZl8g Jy4vOycgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNlbWljb2wK I1tzdGRlcnJdKyB0ZXN0IDIgLWd0IDAKI1tzdGRlcnJdKyBjaG1vZCAtUiB1K3J3eCAnLi87JyAv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc2VtaWNvbAojW3N0ZGVy cl0rIHJtIC1yZiAnLi87JyAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rl c3Qtc2VtaWNvbAojW3N0ZGVycl0rIF9hbV9ybXJmX3N0YXR1cz0wCiNbc3RkZXJyXSsgZm9yIF9h bV9ybXJmX3YgaW4gJyIkQCInCiNbc3RkZXJyXSsgdGVzdCAtZSAnLi87JwojW3N0ZGVycl0rIGZv ciBfYW1fcm1yZl92IGluICciJEAiJwojW3N0ZGVycl0rIHRlc3QgLWUgL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNlbWljb2wKI1tzdGRlcnJdKyByZXR1cm4gMAoj W3N0ZGVycl0rIDogRm9yIHNoZWxscyB3aXRoIGJ1c3RlZCAnc2V0IC1lLicKI1tzdGRlcnJdKyBm b3Igd2hlcmUgaW4gYnVpbGQgZGVzdAojW3N0ZGVycl0rIGNhc2UgJHdoZXJlIGluCiNbc3RkZXJy XSsgYnVpbGQ9YnVpbGQtc2VtaWNvbAojW3N0ZGVycl0rIGRlc3Q9Jy91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zZW1pY29sLzsnCiNbc3RkZXJyXSsgbWtkaXIgYnVp bGQtc2VtaWNvbAojW3N0ZGVycl0rIGNkIGJ1aWxkLXNlbWljb2wKI1tzdGRlcnJdKyByPW9rCiNb c3RkZXJyXSsgLi4vY29uZmlndXJlIC0tcHJlZml4ICcvOy1wcmVmaXgnCmNoZWNraW5nIGZvciBh IEJTRC1jb21wYXRpYmxlIGluc3RhbGwuLi4gL3Vzci9iaW4vaW5zdGFsbCAtYwpjaGVja2luZyB3 aGV0aGVyIHNsZWVwIHN1cHBvcnRzIGZyYWN0aW9uYWwgc2Vjb25kcy4uLiB5ZXMKY2hlY2tpbmcg ZmlsZXN5c3RlbSB0aW1lc3RhbXAgcmVzb2x1dGlvbi4uLiAwLjAxCmNoZWNraW5nIHdoZXRoZXIg YnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZS4uLiB5ZXMKY2hlY2tpbmcgZm9yIGEgcmFjZS1mcmVl IG1rZGlyIC1wLi4uIG1rZGlyIC1wCmNoZWNraW5nIGZvciBnYXdrLi4uIG5vCmNoZWNraW5nIGZv ciBtYXdrLi4uIG5vCmNoZWNraW5nIGZvciBuYXdrLi4uIG5vCmNoZWNraW5nIGZvciBhd2suLi4g YXdrCmNoZWNraW5nIHdoZXRoZXIgbWFrZSBzZXRzICQoTUFLRSkuLi4geWVzCmNoZWNraW5nIHdo ZXRoZXIgbWFrZSBzdXBwb3J0cyBuZXN0ZWQgdmFyaWFibGVzLi4uIHllcwpjaGVja2luZyB4YXJn cyAtbiB3b3Jrcy4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBVSUQgJzUwMScgaXMgc3VwcG9ydGVk IGJ5IHVzdGFyIGZvcm1hdC4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBHSUQgJzIwJyBpcyBzdXBw b3J0ZWQgYnkgdXN0YXIgZm9ybWF0Li4uIHllcwpjaGVja2luZyBob3cgdG8gY3JlYXRlIGEgdXN0 YXIgdGFyIGFyY2hpdmUuLi4gcGxhaW50YXIKY2hlY2tpbmcgZm9yIGdjYy4uLiBnY2MKY2hlY2tp bmcgd2hldGhlciB0aGUgQyBjb21waWxlciB3b3Jrcy4uLiB5ZXMKY2hlY2tpbmcgZm9yIEMgY29t cGlsZXIgZGVmYXVsdCBvdXRwdXQgZmlsZSBuYW1lLi4uIGEub3V0CmNoZWNraW5nIGZvciBzdWZm aXggb2YgZXhlY3V0YWJsZXMuLi4gCmNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNvbXBp bGluZy4uLiBubwpjaGVja2luZyBmb3Igc3VmZml4IG9mIG9iamVjdCBmaWxlcy4uLiBvCmNoZWNr aW5nIHdoZXRoZXIgdGhlIGNvbXBpbGVyIHN1cHBvcnRzIEdOVSBDLi4uIHllcwpjaGVja2luZyB3 aGV0aGVyIGdjYyBhY2NlcHRzIC1nLi4uIHllcwpjaGVja2luZyBmb3IgZ2NjIG9wdGlvbiB0byBl bmFibGUgQzIzIGZlYXR1cmVzLi4uIC1zdGQ9Z251MjMKY2hlY2tpbmcgd2hldGhlciBnY2MgLXN0 ZD1nbnUyMyB1bmRlcnN0YW5kcyAtYyBhbmQgLW8gdG9nZXRoZXIuLi4geWVzCmNoZWNraW5nIHdo ZXRoZXIgbWFrZSBzdXBwb3J0cyB0aGUgaW5jbHVkZSBkaXJlY3RpdmUuLi4geWVzIChHTlUgc3R5 bGUpCmNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgZ2NjIC1zdGQ9Z251MjMuLi4gZ2NjMwpj aGVja2luZyBmb3IgYXIuLi4gYXIKY2hlY2tpbmcgdGhlIGFyY2hpdmVyIChhcikgaW50ZXJmYWNl Li4uIGFyCmNoZWNraW5nIGZvciByYW5saWIuLi4gcmFubGliCmNoZWNraW5nIHRoYXQgZ2VuZXJh dGVkIGZpbGVzIGFyZSBuZXdlciB0aGFuIGNvbmZpZ3VyZS4uLiBkb25lCmNvbmZpZ3VyZTogY3Jl YXRpbmcgLi9jb25maWcuc3RhdHVzCmNvbmZpZy5zdGF0dXM6IGNyZWF0aW5nIE1ha2VmaWxlCmNv bmZpZy5zdGF0dXM6IGV4ZWN1dGluZyBkZXBmaWxlcyBjb21tYW5kcwojW3N0ZGVycl0rIG1ha2Ug YWxsCmdjYyAtc3RkPWdudTIzIC1EUEFDS0FHRV9OQU1FPVwiaW5zdHNwY1wiIC1EUEFDS0FHRV9U QVJOQU1FPVwiaW5zdHNwY1wiIC1EUEFDS0FHRV9WRVJTSU9OPVwiMS4wXCIgLURQQUNLQUdFX1NU UklORz1cImluc3RzcGNcIDEuMFwiIC1EUEFDS0FHRV9CVUdSRVBPUlQ9XCJcIiAtRFBBQ0tBR0Vf VVJMPVwiXCIgLURQQUNLQUdFPVwiaW5zdHNwY1wiIC1EVkVSU0lPTj1cIjEuMFwiIC1JLiAtSS4u ICAgICAtZyAtTzIgLU1UIHNvdXJjZS5vIC1NRCAtTVAgLU1GIC5kZXBzL3NvdXJjZS5UcG8gLWMg LW8gc291cmNlLm8gLi4vc291cmNlLmMKbXYgLWYgLmRlcHMvc291cmNlLlRwbyAuZGVwcy9zb3Vy Y2UuUG8KZ2NjIC1zdGQ9Z251MjMgIC1nIC1PMiAgIC1vIHN1Yi9iYXNlIHNvdXJjZS5vICAKZ2Nj IC1zdGQ9Z251MjMgIC1nIC1PMiAgIC1vIHN1Yi9ub2Jhc2Ugc291cmNlLm8gIApybSAtZiBzdWIv bGliYmFzZS5hCmFyIGNyIHN1Yi9saWJiYXNlLmEgc291cmNlLm8gCnJhbmxpYiBzdWIvbGliYmFz ZS5hCnJtIC1mIHN1Yi9saWJub2Jhc2UuYQphciBjciBzdWIvbGlibm9iYXNlLmEgc291cmNlLm8g CnJhbmxpYiBzdWIvbGlibm9iYXNlLmEKI1tzdGRlcnJdKyBERVNURElSPScvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc2VtaWNvbC87JwojW3N0ZGVycl0rIGZpbGU9 Jy4vOycKI1tzdGRlcnJdKyBtYWtlIHRlc3QtaW5zdAptYWtlWzFdOiBFbnRlcmluZyBkaXJlY3Rv cnkgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvYnVpbGQtc2VtaWNvbCcK IG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc2Vt aWNvbC87LzstcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLi4vc3ViL2Jhc2Uuc2gg Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zZW1pY29sLzsvOy1w cmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1zZW1pY29sLzsvOy1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2 NDQgIHN1Yi9saWJiYXNlLmEgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1zZW1pY29sLzsvOy1wcmVmaXgvZm9vJwogKCBjZCAnL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9kZXN0LXNlbWljb2wvOy87LXByZWZpeC9mb28nICYmIHJhbmxpYiBs aWJiYXNlLmEgKQogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1zZW1pY29sLzsvOy1wcmVmaXgvZm9vJwogIC91c3IvYmluL2luc3RhbGwgLWMgc3Vi L2Jhc2UgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zZW1pY29s LzsvOy1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1zZW1pY29sLzsvOy1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zZW1pY29sLzsvOy1wcmVmaXgvZm9v L3N1Yi8nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC4uL3N1Yi9ub2Jhc2Uuc2ggJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zZW1pY29sLzsvOy1wcmVmaXgvZm9vL3N1 Yi8nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LXNlbWljb2wvOy87LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9kZXN0LXNlbWljb2wvOy87LXByZWZpeC9mb28vc3ViJwogL3Vzci9i aW4vaW5zdGFsbCAtYyAtbSA2NDQgIHN1Yi9saWJub2Jhc2UuYSAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNlbWljb2wvOy87LXByZWZpeC9mb28vc3ViJwogKCBj ZCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNlbWljb2wvOy87 LXByZWZpeC9mb28nICYmIHJhbmxpYiBzdWIvbGlibm9iYXNlLmEgKQogbWtkaXIgLXAgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zZW1pY29sLzsvOy1wcmVmaXgv Zm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC1zZW1pY29sLzsvOy1wcmVmaXgvZm9vL3N1Yi8nCiAgL3Vzci9iaW4vaW5zdGFsbCAtYyBzdWIv bm9iYXNlICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc2VtaWNv bC87LzstcHJlZml4L2Zvby9zdWIvJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1zZW1pY29sLzsvOy1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5z dGFsbCAtYyAtbSA2NDQgLi4vc3ViL2Jhc2UuZGF0ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3Qtc2VtaWNvbC87LzstcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc2VtaWNvbC87LzstcHJlZml4 L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0IC4uL3N1Yi9iYXNlLmggJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zZW1pY29sLzsvOy1wcmVmaXgvZm9v JwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1z ZW1pY29sLzsvOy1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1zZW1pY29sLzsvOy1wcmVmaXgvZm9vL3N1YicKIC91c3IvYmlu L2luc3RhbGwgLWMgLW0gNjQ0ICAuLi9zdWIvbm9iYXNlLmRhdCAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNlbWljb2wvOy87LXByZWZpeC9mb28vc3ViJwogbWtk aXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zZW1pY29s LzsvOy1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1zZW1pY29sLzsvOy1wcmVmaXgvZm9vL3N1YicKIC91c3IvYmluL2luc3Rh bGwgLWMgLW0gNjQ0ICAuLi9zdWIvbm9iYXNlLmggJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1zZW1pY29sLzsvOy1wcmVmaXgvZm9vL3N1YicKbWFrZVsxXTogTGVh dmluZyBkaXJlY3RvcnkgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvYnVp bGQtc2VtaWNvbCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyL2Rlc3Qtc2VtaWNvbC87Ly4vOy1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2UuaCcKdGVzdCAhIC1m ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc2VtaWNvbC87Ly4v Oy1wcmVmaXgvZm9vL25vYmFzZS5oJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1zZW1pY29sLzsvLi87LXByZWZpeC9mb28vYmFzZS5oJwp0ZXN0 ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zZW1pY29s LzsvLi87LXByZWZpeC9mb28vc3ViL25vYmFzZS5kYXQnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNlbWljb2wvOy8uLzstcHJlZml4L2Zvby9u b2Jhc2UuZGF0Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1zZW1pY29sLzsvLi87LXByZWZpeC9mb28vYmFzZS5kYXQnCnRlc3QgICAtZiAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNlbWljb2wvOy8uLzstcHJl Zml4L2Zvby9zdWIvbm9iYXNlLnNoJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1zZW1pY29sLzsvLi87LXByZWZpeC9mb28vbm9iYXNlLnNoJwp0 ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zZW1p Y29sLzsvLi87LXByZWZpeC9mb28vYmFzZS5zaCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc2VtaWNvbC87Ly4vOy1wcmVmaXgvZm9vL3N1Yi9u b2Jhc2UnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LXNlbWljb2wvOy8uLzstcHJlZml4L2Zvby9ub2Jhc2UnCnRlc3QgICAtZiAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXNlbWljb2wvOy8uLzstcHJlZml4L2Zv by9iYXNlJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1zZW1pY29sLzsvLi87LXByZWZpeC9mb28vc3ViL2xpYm5vYmFzZS5hJwp0ZXN0ICEgLWYg Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zZW1pY29sLzsvLi87 LXByZWZpeC9mb28vbGlibm9iYXNlLmEnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9kZXN0LXNlbWljb2wvOy8uLzstcHJlZml4L2Zvby9saWJiYXNlLmEn CiNbc3RkZXJyXSsgZGVzY3JpcHRpb249J3NlbWljb2wgaW4gZGVzdGRpcicKI1tzdGRlcnJdKyBl eHBlY3RlZF90b19mYWlsIGRlc3Qgc2VtaWNvbAojW3N0ZGVycl0rIGNhc2UgJDEgaW4KI1tzdGRl cnJdKyBpc19pbl9saXN0IHNlbWljb2wgc3F1b3RlIGRxdW90ZSBicXVvdGUgc2hhcnAgZG9sbGFy IGxpbmVmZWVkIGFfbGZfYgojW3N0ZGVycl0rIGl0ZW09c2VtaWNvbAojW3N0ZGVycl0rIHNoaWZ0 Cm9rIDQyIC0gc2VtaWNvbCBpbiBkZXN0ZGlyClBBU1M6IHQvaW5zdHNwYy50YXAgNDIgLSBzZW1p Y29sIGluIGRlc3RkaXIKI1tzdGRlcnJdKyBjYXNlICIgJCogIiBpbgojW3N0ZGVycl0rIHJldHVy biAxCiNbc3RkZXJyXSsgZGlyZWN0aXZlPQojW3N0ZGVycl0rIHJlYXNvbj0KI1tzdGRlcnJdKyBy ZXN1bHRfIG9rIC1EICcnIC1yICcnIC0tICdzZW1pY29sIGluIGRlc3RkaXInCiNbc3RkZXJyXSsg c2V0ICt4CiNbc3RkZXJyXSsgY2QgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp cgojW3N0ZGVycl0rIG5vdCBhbV9rZWVwaW5nX3Rlc3RkaXJzCiNbc3RkZXJyXSsgYW1fa2VlcGlu Z190ZXN0ZGlycwojW3N0ZGVycl0rIGNhc2UgJGtlZXBfdGVzdGRpcnMgaW4KI1tzdGRlcnJdKyBy ZXR1cm4gMQojW3N0ZGVycl0rIHRlc3Qgb2sgPSBvawojW3N0ZGVycl0rIHJtX3JmXyBidWlsZC1z ZW1pY29sICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qtc2VtaWNv bC87JwojW3N0ZGVycl0rIHRlc3QgMiAtZ3QgMAojW3N0ZGVycl0rIGNobW9kIC1SIHUrcnd4IGJ1 aWxkLXNlbWljb2wgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1z ZW1pY29sLzsnCiNbc3RkZXJyXSsgcm0gLXJmIGJ1aWxkLXNlbWljb2wgJy91c3IvbG9jYWwvc3Jj L2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1zZW1pY29sLzsnCiNbc3RkZXJyXSsgX2FtX3Jt cmZfc3RhdHVzPTAKI1tzdGRlcnJdKyBmb3IgX2FtX3JtcmZfdiBpbiAnIiRAIicKI1tzdGRlcnJd KyB0ZXN0IC1lIGJ1aWxkLXNlbWljb2wKI1tzdGRlcnJdKyBmb3IgX2FtX3JtcmZfdiBpbiAnIiRA IicKI1tzdGRlcnJdKyB0ZXN0IC1lICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyL2Rlc3Qtc2VtaWNvbC87JwojW3N0ZGVycl0rIHJldHVybiAwCiNbc3RkZXJyXSsgOiBGb3Ig c2hlbGxzIHdpdGggYnVzdGVkICdzZXQgLWUuJwojW3N0ZGVycl0rIGZvciB0ZXN0X25hbWUgaW4g JyR0ZXN0X25hbWVzX2xpc3QnCiNbc3RkZXJyXSsgZXZhbCAndGVzdF9zdHJpbmc9JHtpbnN0c3Bj X19lcXVhbH0nCiNbc3RkZXJyXSsrIHRlc3Rfc3RyaW5nPT0KI1tzdGRlcnJdKyB0ZXN0IHg9ID0g eAojW3N0ZGVycl0rIG1rZGlyIC4vPQojW3N0ZGVycl0rIGNhc2UgJHRlc3Rfc3RyaW5nIGluCiNb c3RkZXJyXSsgZm9yIHdoZXJlIGluIGJ1aWxkIGRlc3QKI1tzdGRlcnJdKyBjYXNlICR3aGVyZSBp bgojW3N0ZGVycl0rIGJ1aWxkPS4vPQojW3N0ZGVycl0rIGRlc3Q9L3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWVxdWFsCiNbc3RkZXJyXSsgY2QgLi89CiNbc3RkZXJy XSsgcj1vawojW3N0ZGVycl0rIC4uL2NvbmZpZ3VyZSAtLXByZWZpeCAvPS1wcmVmaXgKY2hlY2tp bmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbC4uLiAvdXNyL2Jpbi9pbnN0YWxsIC1jCmNo ZWNraW5nIHdoZXRoZXIgc2xlZXAgc3VwcG9ydHMgZnJhY3Rpb25hbCBzZWNvbmRzLi4uIHllcwpj aGVja2luZyBmaWxlc3lzdGVtIHRpbWVzdGFtcCByZXNvbHV0aW9uLi4uIDAuMDEKY2hlY2tpbmcg d2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lLi4uIHllcwpjaGVja2luZyBmb3IgYSBy YWNlLWZyZWUgbWtkaXIgLXAuLi4gbWtkaXIgLXAKY2hlY2tpbmcgZm9yIGdhd2suLi4gbm8KY2hl Y2tpbmcgZm9yIG1hd2suLi4gbm8KY2hlY2tpbmcgZm9yIG5hd2suLi4gbm8KY2hlY2tpbmcgZm9y IGF3ay4uLiBhd2sKY2hlY2tpbmcgd2hldGhlciBtYWtlIHNldHMgJChNQUtFKS4uLiB5ZXMKY2hl Y2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRzIG5lc3RlZCB2YXJpYWJsZXMuLi4geWVzCmNoZWNr aW5nIHhhcmdzIC1uIHdvcmtzLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIFVJRCAnNTAxJyBpcyBz dXBwb3J0ZWQgYnkgdXN0YXIgZm9ybWF0Li4uIHllcwpjaGVja2luZyB3aGV0aGVyIEdJRCAnMjAn IGlzIHN1cHBvcnRlZCBieSB1c3RhciBmb3JtYXQuLi4geWVzCmNoZWNraW5nIGhvdyB0byBjcmVh dGUgYSB1c3RhciB0YXIgYXJjaGl2ZS4uLiBwbGFpbnRhcgpjaGVja2luZyBmb3IgZ2NjLi4uIGdj YwpjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdvcmtzLi4uIHllcwpjaGVja2luZyBm b3IgQyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUuLi4gYS5vdXQKY2hlY2tpbmcg Zm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcy4uLiAKY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jv c3MgY29tcGlsaW5nLi4uIG5vCmNoZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzLi4u IG8KY2hlY2tpbmcgd2hldGhlciB0aGUgY29tcGlsZXIgc3VwcG9ydHMgR05VIEMuLi4geWVzCmNo ZWNraW5nIHdoZXRoZXIgZ2NjIGFjY2VwdHMgLWcuLi4geWVzCmNoZWNraW5nIGZvciBnY2Mgb3B0 aW9uIHRvIGVuYWJsZSBDMjMgZmVhdHVyZXMuLi4gLXN0ZD1nbnUyMwpjaGVja2luZyB3aGV0aGVy IGdjYyAtc3RkPWdudTIzIHVuZGVyc3RhbmRzIC1jIGFuZCAtbyB0b2dldGhlci4uLiB5ZXMKY2hl Y2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRzIHRoZSBpbmNsdWRlIGRpcmVjdGl2ZS4uLiB5ZXMg KEdOVSBzdHlsZSkKY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiBnY2MgLXN0ZD1nbnUyMy4u LiBnY2MzCmNoZWNraW5nIGZvciBhci4uLiBhcgpjaGVja2luZyB0aGUgYXJjaGl2ZXIgKGFyKSBp bnRlcmZhY2UuLi4gYXIKY2hlY2tpbmcgZm9yIHJhbmxpYi4uLiByYW5saWIKY2hlY2tpbmcgdGhh dCBnZW5lcmF0ZWQgZmlsZXMgYXJlIG5ld2VyIHRoYW4gY29uZmlndXJlLi4uIGRvbmUKY29uZmln dXJlOiBjcmVhdGluZyAuL2NvbmZpZy5zdGF0dXMKY29uZmlnLnN0YXR1czogY3JlYXRpbmcgTWFr ZWZpbGUKY29uZmlnLnN0YXR1czogZXhlY3V0aW5nIGRlcGZpbGVzIGNvbW1hbmRzCiNbc3RkZXJy XSsgbWFrZSBhbGwKZ2NjIC1zdGQ9Z251MjMgLURQQUNLQUdFX05BTUU9XCJpbnN0c3BjXCIgLURQ QUNLQUdFX1RBUk5BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdFX1ZFUlNJT049XCIxLjBcIiAtRFBB Q0tBR0VfU1RSSU5HPVwiaW5zdHNwY1wgMS4wXCIgLURQQUNLQUdFX0JVR1JFUE9SVD1cIlwiIC1E UEFDS0FHRV9VUkw9XCJcIiAtRFBBQ0tBR0U9XCJpbnN0c3BjXCIgLURWRVJTSU9OPVwiMS4wXCIg LUkuIC1JLi4gICAgIC1nIC1PMiAtTVQgc291cmNlLm8gLU1EIC1NUCAtTUYgLmRlcHMvc291cmNl LlRwbyAtYyAtbyBzb3VyY2UubyAuLi9zb3VyY2UuYwptdiAtZiAuZGVwcy9zb3VyY2UuVHBvIC5k ZXBzL3NvdXJjZS5QbwpnY2MgLXN0ZD1nbnUyMyAgLWcgLU8yICAgLW8gc3ViL2Jhc2Ugc291cmNl Lm8gIApnY2MgLXN0ZD1nbnUyMyAgLWcgLU8yICAgLW8gc3ViL25vYmFzZSBzb3VyY2UubyAgCnJt IC1mIHN1Yi9saWJiYXNlLmEKYXIgY3Igc3ViL2xpYmJhc2UuYSBzb3VyY2UubyAKcmFubGliIHN1 Yi9saWJiYXNlLmEKcm0gLWYgc3ViL2xpYm5vYmFzZS5hCmFyIGNyIHN1Yi9saWJub2Jhc2UuYSBz b3VyY2UubyAKcmFubGliIHN1Yi9saWJub2Jhc2UuYQojW3N0ZGVycl0rIERFU1RESVI9L3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWVxdWFsCiNbc3RkZXJyXSsgZmls ZT0uLz0KI1tzdGRlcnJdKyBtYWtlIHRlc3QtaW5zdAptYWtlWzFdOiBFbnRlcmluZyBkaXJlY3Rv cnkgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvPScKIG1rZGlyIC1wICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtZXF1YWwvPS1wcmVmaXgv Zm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAuLi9zdWIvYmFzZS5zaCAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWVxdWFsLz0tcHJlZml4L2ZvbycKIG1rZGlyIC1w ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtZXF1YWwvPS1wcmVm aXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIHN1Yi9saWJiYXNlLmEgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1lcXVhbC89LXByZWZpeC9mb28n CiAoIGNkICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtZXF1YWwv PS1wcmVmaXgvZm9vJyAmJiByYW5saWIgbGliYmFzZS5hICkKIG1rZGlyIC1wICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtZXF1YWwvPS1wcmVmaXgvZm9vJwogIC91 c3IvYmluL2luc3RhbGwgLWMgc3ViL2Jhc2UgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1lcXVhbC89LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWVxdWFsLz0tcHJlZml4L2ZvbycKIG1rZGly IC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtZXF1YWwvPS1w cmVmaXgvZm9vL3N1Yi8nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC4uL3N1Yi9ub2Jhc2Uuc2ggJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1lcXVhbC89LXByZWZpeC9m b28vc3ViLycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtZXF1YWwvPS1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1lcXVhbC89LXByZWZpeC9mb28vc3ViJwogL3Vzci9iaW4v aW5zdGFsbCAtYyAtbSA2NDQgIHN1Yi9saWJub2Jhc2UuYSAnL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9kZXN0LWVxdWFsLz0tcHJlZml4L2Zvby9zdWInCiAoIGNkICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtZXF1YWwvPS1wcmVmaXgvZm9v JyAmJiByYW5saWIgc3ViL2xpYm5vYmFzZS5hICkKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtZXF1YWwvPS1wcmVmaXgvZm9vJwogbWtkaXIgLXAg Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1lcXVhbC89LXByZWZp eC9mb28vc3ViLycKICAvdXNyL2Jpbi9pbnN0YWxsIC1jIHN1Yi9ub2Jhc2UgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1lcXVhbC89LXByZWZpeC9mb28vc3ViLycK IG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtZXF1 YWwvPS1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgLi4vc3ViL2Jhc2Uu ZGF0ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtZXF1YWwvPS1w cmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1lcXVhbC89LXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAu Li9zdWIvYmFzZS5oICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt ZXF1YWwvPS1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1lcXVhbC89LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWVxdWFsLz0tcHJlZml4L2Zvby9zdWIn CiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAgLi4vc3ViL25vYmFzZS5kYXQgJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1lcXVhbC89LXByZWZpeC9mb28vc3Vi JwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1l cXVhbC89LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LWVxdWFsLz0tcHJlZml4L2Zvby9zdWInCiAvdXNyL2Jpbi9pbnN0YWxs IC1jIC1tIDY0NCAgLi4vc3ViL25vYmFzZS5oICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtZXF1YWwvPS1wcmVmaXgvZm9vL3N1YicKbWFrZVsxXTogTGVhdmluZyBk aXJlY3RvcnkgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvPScKdGVzdCAg IC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtZXF1YWwvLi89 LXByZWZpeC9mb28vc3ViL25vYmFzZS5oJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1lcXVhbC8uLz0tcHJlZml4L2Zvby9ub2Jhc2UuaCcKdGVz dCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtZXF1YWwv Li89LXByZWZpeC9mb28vYmFzZS5oJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1lcXVhbC8uLz0tcHJlZml4L2Zvby9zdWIvbm9iYXNlLmRhdCcK dGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtZXF1 YWwvLi89LXByZWZpeC9mb28vbm9iYXNlLmRhdCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtZXF1YWwvLi89LXByZWZpeC9mb28vYmFzZS5kYXQn CnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWVx dWFsLy4vPS1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2Uuc2gnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWVxdWFsLy4vPS1wcmVmaXgvZm9vL25vYmFz ZS5zaCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rl c3QtZXF1YWwvLi89LXByZWZpeC9mb28vYmFzZS5zaCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtZXF1YWwvLi89LXByZWZpeC9mb28vc3ViL25v YmFzZScKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rl c3QtZXF1YWwvLi89LXByZWZpeC9mb28vbm9iYXNlJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3Jj L2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1lcXVhbC8uLz0tcHJlZml4L2Zvby9iYXNlJwp0 ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1lcXVh bC8uLz0tcHJlZml4L2Zvby9zdWIvbGlibm9iYXNlLmEnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWVxdWFsLy4vPS1wcmVmaXgvZm9vL2xpYm5v YmFzZS5hJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1lcXVhbC8uLz0tcHJlZml4L2Zvby9saWJiYXNlLmEnCiNbc3RkZXJyXSsgZGVzY3JpcHRp b249J2VxdWFsIGluIGJ1aWxkZGlyJwojW3N0ZGVycl0rIGV4cGVjdGVkX3RvX2ZhaWwgYnVpbGQg ZXF1YWwKI1tzdGRlcnJdKyBjYXNlICQxIGluCm9rIDQzIC0gZXF1YWwgaW4gYnVpbGRkaXIKUEFT UzogdC9pbnN0c3BjLnRhcCA0MyAtIGVxdWFsIGluIGJ1aWxkZGlyCiNbc3RkZXJyXSsgaXNfaW5f bGlzdCBlcXVhbCBzcXVvdGUgZHF1b3RlIGJxdW90ZSBzaGFycCBkb2xsYXIgYnNsYXNoIGFtcGVy c2FuZCBsaW5lZmVlZCBxdWFkcmlncmFwaDAgYV9sZl9iCiNbc3RkZXJyXSsgaXRlbT1lcXVhbAoj W3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyByZXR1 cm4gMQojW3N0ZGVycl0rIGRpcmVjdGl2ZT0KI1tzdGRlcnJdKyByZWFzb249CiNbc3RkZXJyXSsg cmVzdWx0XyBvayAtRCAnJyAtciAnJyAtLSAnZXF1YWwgaW4gYnVpbGRkaXInCiNbc3RkZXJyXSsg c2V0ICt4CiNbc3RkZXJyXSsgY2QgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp cgojW3N0ZGVycl0rIG5vdCBhbV9rZWVwaW5nX3Rlc3RkaXJzCiNbc3RkZXJyXSsgYW1fa2VlcGlu Z190ZXN0ZGlycwojW3N0ZGVycl0rIGNhc2UgJGtlZXBfdGVzdGRpcnMgaW4KI1tzdGRlcnJdKyBy ZXR1cm4gMQojW3N0ZGVycl0rIHRlc3Qgb2sgPSBvawojW3N0ZGVycl0rIHJtX3JmXyAuLz0gL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWVxdWFsCiNbc3RkZXJyXSsg dGVzdCAyIC1ndCAwCiNbc3RkZXJyXSsgY2htb2QgLVIgdStyd3ggLi89IC91c3IvbG9jYWwvc3Jj L2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1lcXVhbAojW3N0ZGVycl0rIHJtIC1yZiAuLz0g L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWVxdWFsCiNbc3RkZXJy XSsgX2FtX3JtcmZfc3RhdHVzPTAKI1tzdGRlcnJdKyBmb3IgX2FtX3JtcmZfdiBpbiAnIiRAIicK I1tzdGRlcnJdKyB0ZXN0IC1lIC4vPQojW3N0ZGVycl0rIGZvciBfYW1fcm1yZl92IGluICciJEAi JwojW3N0ZGVycl0rIHRlc3QgLWUgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LWVxdWFsCiNbc3RkZXJyXSsgcmV0dXJuIDAKI1tzdGRlcnJdKyA6IEZvciBzaGVsbHMg d2l0aCBidXN0ZWQgJ3NldCAtZS4nCiNbc3RkZXJyXSsgZm9yIHdoZXJlIGluIGJ1aWxkIGRlc3QK I1tzdGRlcnJdKyBjYXNlICR3aGVyZSBpbgojW3N0ZGVycl0rIGJ1aWxkPWJ1aWxkLWVxdWFsCiNb c3RkZXJyXSsgZGVzdD0vdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt ZXF1YWwvPQojW3N0ZGVycl0rIG1rZGlyIGJ1aWxkLWVxdWFsCiNbc3RkZXJyXSsgY2QgYnVpbGQt ZXF1YWwKI1tzdGRlcnJdKyByPW9rCiNbc3RkZXJyXSsgLi4vY29uZmlndXJlIC0tcHJlZml4IC89 LXByZWZpeApjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsLi4uIC91c3IvYmlu L2luc3RhbGwgLWMKY2hlY2tpbmcgd2hldGhlciBzbGVlcCBzdXBwb3J0cyBmcmFjdGlvbmFsIHNl Y29uZHMuLi4geWVzCmNoZWNraW5nIGZpbGVzeXN0ZW0gdGltZXN0YW1wIHJlc29sdXRpb24uLi4g MC4wMQpjaGVja2luZyB3aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmUuLi4geWVzCmNo ZWNraW5nIGZvciBhIHJhY2UtZnJlZSBta2RpciAtcC4uLiBta2RpciAtcApjaGVja2luZyBmb3Ig Z2F3ay4uLiBubwpjaGVja2luZyBmb3IgbWF3ay4uLiBubwpjaGVja2luZyBmb3IgbmF3ay4uLiBu bwpjaGVja2luZyBmb3IgYXdrLi4uIGF3awpjaGVja2luZyB3aGV0aGVyIG1ha2Ugc2V0cyAkKE1B S0UpLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIG1ha2Ugc3VwcG9ydHMgbmVzdGVkIHZhcmlhYmxl cy4uLiB5ZXMKY2hlY2tpbmcgeGFyZ3MgLW4gd29ya3MuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIg VUlEICc1MDEnIGlzIHN1cHBvcnRlZCBieSB1c3RhciBmb3JtYXQuLi4geWVzCmNoZWNraW5nIHdo ZXRoZXIgR0lEICcyMCcgaXMgc3VwcG9ydGVkIGJ5IHVzdGFyIGZvcm1hdC4uLiB5ZXMKY2hlY2tp bmcgaG93IHRvIGNyZWF0ZSBhIHVzdGFyIHRhciBhcmNoaXZlLi4uIHBsYWludGFyCmNoZWNraW5n IGZvciBnY2MuLi4gZ2NjCmNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgd29ya3MuLi4g eWVzCmNoZWNraW5nIGZvciBDIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZS4uLiBh Lm91dApjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzLi4uIApjaGVja2luZyB3aGV0 aGVyIHdlIGFyZSBjcm9zcyBjb21waWxpbmcuLi4gbm8KY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBv YmplY3QgZmlsZXMuLi4gbwpjaGVja2luZyB3aGV0aGVyIHRoZSBjb21waWxlciBzdXBwb3J0cyBH TlUgQy4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBnY2MgYWNjZXB0cyAtZy4uLiB5ZXMKY2hlY2tp bmcgZm9yIGdjYyBvcHRpb24gdG8gZW5hYmxlIEMyMyBmZWF0dXJlcy4uLiAtc3RkPWdudTIzCmNo ZWNraW5nIHdoZXRoZXIgZ2NjIC1zdGQ9Z251MjMgdW5kZXJzdGFuZHMgLWMgYW5kIC1vIHRvZ2V0 aGVyLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIG1ha2Ugc3VwcG9ydHMgdGhlIGluY2x1ZGUgZGly ZWN0aXZlLi4uIHllcyAoR05VIHN0eWxlKQpjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mIGdj YyAtc3RkPWdudTIzLi4uIGdjYzMKY2hlY2tpbmcgZm9yIGFyLi4uIGFyCmNoZWNraW5nIHRoZSBh cmNoaXZlciAoYXIpIGludGVyZmFjZS4uLiBhcgpjaGVja2luZyBmb3IgcmFubGliLi4uIHJhbmxp YgpjaGVja2luZyB0aGF0IGdlbmVyYXRlZCBmaWxlcyBhcmUgbmV3ZXIgdGhhbiBjb25maWd1cmUu Li4gZG9uZQpjb25maWd1cmU6IGNyZWF0aW5nIC4vY29uZmlnLnN0YXR1cwpjb25maWcuc3RhdHVz OiBjcmVhdGluZyBNYWtlZmlsZQpjb25maWcuc3RhdHVzOiBleGVjdXRpbmcgZGVwZmlsZXMgY29t bWFuZHMKI1tzdGRlcnJdKyBtYWtlIGFsbApnY2MgLXN0ZD1nbnUyMyAtRFBBQ0tBR0VfTkFNRT1c Imluc3RzcGNcIiAtRFBBQ0tBR0VfVEFSTkFNRT1cImluc3RzcGNcIiAtRFBBQ0tBR0VfVkVSU0lP Tj1cIjEuMFwiIC1EUEFDS0FHRV9TVFJJTkc9XCJpbnN0c3BjXCAxLjBcIiAtRFBBQ0tBR0VfQlVH UkVQT1JUPVwiXCIgLURQQUNLQUdFX1VSTD1cIlwiIC1EUEFDS0FHRT1cImluc3RzcGNcIiAtRFZF UlNJT049XCIxLjBcIiAtSS4gLUkuLiAgICAgLWcgLU8yIC1NVCBzb3VyY2UubyAtTUQgLU1QIC1N RiAuZGVwcy9zb3VyY2UuVHBvIC1jIC1vIHNvdXJjZS5vIC4uL3NvdXJjZS5jCm12IC1mIC5kZXBz L3NvdXJjZS5UcG8gLmRlcHMvc291cmNlLlBvCmdjYyAtc3RkPWdudTIzICAtZyAtTzIgICAtbyBz dWIvYmFzZSBzb3VyY2UubyAgCmdjYyAtc3RkPWdudTIzICAtZyAtTzIgICAtbyBzdWIvbm9iYXNl IHNvdXJjZS5vICAKcm0gLWYgc3ViL2xpYmJhc2UuYQphciBjciBzdWIvbGliYmFzZS5hIHNvdXJj ZS5vIApyYW5saWIgc3ViL2xpYmJhc2UuYQpybSAtZiBzdWIvbGlibm9iYXNlLmEKYXIgY3Igc3Vi L2xpYm5vYmFzZS5hIHNvdXJjZS5vIApyYW5saWIgc3ViL2xpYm5vYmFzZS5hCiNbc3RkZXJyXSsg REVTVERJUj0vdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtZXF1YWwv PQojW3N0ZGVycl0rIGZpbGU9Li89CiNbc3RkZXJyXSsgbWFrZSB0ZXN0LWluc3QKbWFrZVsxXTog RW50ZXJpbmcgZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2J1aWxkLWVxdWFsJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1lcXVhbC89Lz0tcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLi4v c3ViL2Jhc2Uuc2ggJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1l cXVhbC89Lz0tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3QtZXF1YWwvPS89LXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxs IC1jIC1tIDY0NCAgc3ViL2xpYmJhc2UuYSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9kZXN0LWVxdWFsLz0vPS1wcmVmaXgvZm9vJwogKCBjZCAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWVxdWFsLz0vPS1wcmVmaXgvZm9vJyAmJiByYW5s aWIgbGliYmFzZS5hICkKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtZXF1YWwvPS89LXByZWZpeC9mb28nCiAgL3Vzci9iaW4vaW5zdGFsbCAtYyBz dWIvYmFzZSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWVxdWFs Lz0vPS1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1lcXVhbC89Lz0tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtZXF1YWwvPS89LXByZWZpeC9mb28vc3Vi LycKIC91c3IvYmluL2luc3RhbGwgLWMgLi4vc3ViL25vYmFzZS5zaCAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWVxdWFsLz0vPS1wcmVmaXgvZm9vL3N1Yi8nCiBt a2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWVxdWFs Lz0vPS1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1lcXVhbC89Lz0tcHJlZml4L2Zvby9zdWInCiAvdXNyL2Jpbi9pbnN0YWxs IC1jIC1tIDY0NCAgc3ViL2xpYm5vYmFzZS5hICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtZXF1YWwvPS89LXByZWZpeC9mb28vc3ViJwogKCBjZCAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWVxdWFsLz0vPS1wcmVmaXgvZm9vJyAm JiByYW5saWIgc3ViL2xpYm5vYmFzZS5hICkKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtZXF1YWwvPS89LXByZWZpeC9mb28nCiBta2RpciAtcCAn L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWVxdWFsLz0vPS1wcmVm aXgvZm9vL3N1Yi8nCiAgL3Vzci9iaW4vaW5zdGFsbCAtYyBzdWIvbm9iYXNlICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtZXF1YWwvPS89LXByZWZpeC9mb28vc3Vi LycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt ZXF1YWwvPS89LXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAuLi9zdWIv YmFzZS5kYXQgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1lcXVh bC89Lz0tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtZXF1YWwvPS89LXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1j IC1tIDY0NCAuLi9zdWIvYmFzZS5oICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyL2Rlc3QtZXF1YWwvPS89LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWVxdWFsLz0vPS1wcmVmaXgvZm9vJwogbWtkaXIg LXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1lcXVhbC89Lz0t cHJlZml4L2Zvby9zdWInCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAgLi4vc3ViL25vYmFz ZS5kYXQgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1lcXVhbC89 Lz0tcHJlZml4L2Zvby9zdWInCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LWVxdWFsLz0vPS1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1lcXVhbC89Lz0tcHJlZml4L2Zvby9z dWInCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAgLi4vc3ViL25vYmFzZS5oICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtZXF1YWwvPS89LXByZWZpeC9mb28v c3ViJwptYWtlWzFdOiBMZWF2aW5nIGRpcmVjdG9yeSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9idWlsZC1lcXVhbCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtZXF1YWwvPS8uLz0tcHJlZml4L2Zvby9zdWIvbm9iYXNl LmgnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LWVxdWFsLz0vLi89LXByZWZpeC9mb28vbm9iYXNlLmgnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWVxdWFsLz0vLi89LXByZWZpeC9mb28vYmFz ZS5oJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC1lcXVhbC89Ly4vPS1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2UuZGF0Jwp0ZXN0ICEgLWYgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1lcXVhbC89Ly4vPS1wcmVmaXgv Zm9vL25vYmFzZS5kYXQnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9kZXN0LWVxdWFsLz0vLi89LXByZWZpeC9mb28vYmFzZS5kYXQnCnRlc3QgICAtZiAn L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWVxdWFsLz0vLi89LXBy ZWZpeC9mb28vc3ViL25vYmFzZS5zaCcKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtZXF1YWwvPS8uLz0tcHJlZml4L2Zvby9ub2Jhc2Uuc2gnCnRl c3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWVxdWFs Lz0vLi89LXByZWZpeC9mb28vYmFzZS5zaCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtZXF1YWwvPS8uLz0tcHJlZml4L2Zvby9zdWIvbm9iYXNl Jwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1l cXVhbC89Ly4vPS1wcmVmaXgvZm9vL25vYmFzZScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtZXF1YWwvPS8uLz0tcHJlZml4L2Zvby9iYXNlJwp0 ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1lcXVh bC89Ly4vPS1wcmVmaXgvZm9vL3N1Yi9saWJub2Jhc2UuYScKdGVzdCAhIC1mICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtZXF1YWwvPS8uLz0tcHJlZml4L2Zvby9s aWJub2Jhc2UuYScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyL2Rlc3QtZXF1YWwvPS8uLz0tcHJlZml4L2Zvby9saWJiYXNlLmEnCiNbc3RkZXJyXSsgZGVz Y3JpcHRpb249J2VxdWFsIGluIGRlc3RkaXInCiNbc3RkZXJyXSsgZXhwZWN0ZWRfdG9fZmFpbCBk ZXN0IGVxdWFsCiNbc3RkZXJyXSsgY2FzZSAkMSBpbgojW3N0ZGVycl0rIGlzX2luX2xpc3QgZXF1 YWwgc3F1b3RlIGRxdW90ZSBicXVvdGUgc2hhcnAgZG9sbGFyIGxpbmVmZWVkIGFfbGZfYgojW3N0 ZGVycl0rIGl0ZW09ZXF1YWwKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNhc2UgIiAkKiAi IGluCm9rIDQ0IC0gZXF1YWwgaW4gZGVzdGRpcgpQQVNTOiB0L2luc3RzcGMudGFwIDQ0IC0gZXF1 YWwgaW4gZGVzdGRpcgojW3N0ZGVycl0rIHJldHVybiAxCiNbc3RkZXJyXSsgZGlyZWN0aXZlPQoj W3N0ZGVycl0rIHJlYXNvbj0KI1tzdGRlcnJdKyByZXN1bHRfIG9rIC1EICcnIC1yICcnIC0tICdl cXVhbCBpbiBkZXN0ZGlyJwojW3N0ZGVycl0rIHNldCAreAojW3N0ZGVycl0rIGNkIC91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIKI1tzdGRlcnJdKyBub3QgYW1fa2VlcGluZ190 ZXN0ZGlycwojW3N0ZGVycl0rIGFtX2tlZXBpbmdfdGVzdGRpcnMKI1tzdGRlcnJdKyBjYXNlICRr ZWVwX3Rlc3RkaXJzIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyB0ZXN0IG9rID0g b2sKI1tzdGRlcnJdKyBybV9yZl8gYnVpbGQtZXF1YWwgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LWVxdWFsLz0KI1tzdGRlcnJdKyB0ZXN0IDIgLWd0IDAKI1tzdGRl cnJdKyBjaG1vZCAtUiB1K3J3eCBidWlsZC1lcXVhbCAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3QtZXF1YWwvPQojW3N0ZGVycl0rIHJtIC1yZiBidWlsZC1lcXVhbCAv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtZXF1YWwvPQojW3N0ZGVy cl0rIF9hbV9ybXJmX3N0YXR1cz0wCiNbc3RkZXJyXSsgZm9yIF9hbV9ybXJmX3YgaW4gJyIkQCIn CiNbc3RkZXJyXSsgdGVzdCAtZSBidWlsZC1lcXVhbAojW3N0ZGVycl0rIGZvciBfYW1fcm1yZl92 IGluICciJEAiJwojW3N0ZGVycl0rIHRlc3QgLWUgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LWVxdWFsLz0KI1tzdGRlcnJdKyByZXR1cm4gMAojW3N0ZGVycl0rIDog Rm9yIHNoZWxscyB3aXRoIGJ1c3RlZCAnc2V0IC1lLicKI1tzdGRlcnJdKyBmb3IgdGVzdF9uYW1l IGluICckdGVzdF9uYW1lc19saXN0JwojW3N0ZGVycl0rIGV2YWwgJ3Rlc3Rfc3RyaW5nPSR7aW5z dHNwY19fbGVzc30nCiNbc3RkZXJyXSsrIHRlc3Rfc3RyaW5nPSc8JwojW3N0ZGVycl0rIHRlc3Qg J3g8JyA9IHgKI1tzdGRlcnJdKyBta2RpciAnLi88JwojW3N0ZGVycl0rIGNhc2UgJHRlc3Rfc3Ry aW5nIGluCiNbc3RkZXJyXSsgZm9yIHdoZXJlIGluIGJ1aWxkIGRlc3QKI1tzdGRlcnJdKyBjYXNl ICR3aGVyZSBpbgojW3N0ZGVycl0rIGJ1aWxkPScuLzwnCiNbc3RkZXJyXSsgZGVzdD0vdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVzcwojW3N0ZGVycl0rIGNkICcu LzwnCiNbc3RkZXJyXSsgcj1vawojW3N0ZGVycl0rIC4uL2NvbmZpZ3VyZSAtLXByZWZpeCAnLzwt cHJlZml4JwpjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsLi4uIC91c3IvYmlu L2luc3RhbGwgLWMKY2hlY2tpbmcgd2hldGhlciBzbGVlcCBzdXBwb3J0cyBmcmFjdGlvbmFsIHNl Y29uZHMuLi4geWVzCmNoZWNraW5nIGZpbGVzeXN0ZW0gdGltZXN0YW1wIHJlc29sdXRpb24uLi4g MC4wMQpjaGVja2luZyB3aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmUuLi4geWVzCmNo ZWNraW5nIGZvciBhIHJhY2UtZnJlZSBta2RpciAtcC4uLiBta2RpciAtcApjaGVja2luZyBmb3Ig Z2F3ay4uLiBubwpjaGVja2luZyBmb3IgbWF3ay4uLiBubwpjaGVja2luZyBmb3IgbmF3ay4uLiBu bwpjaGVja2luZyBmb3IgYXdrLi4uIGF3awpjaGVja2luZyB3aGV0aGVyIG1ha2Ugc2V0cyAkKE1B S0UpLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIG1ha2Ugc3VwcG9ydHMgbmVzdGVkIHZhcmlhYmxl cy4uLiB5ZXMKY2hlY2tpbmcgeGFyZ3MgLW4gd29ya3MuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIg VUlEICc1MDEnIGlzIHN1cHBvcnRlZCBieSB1c3RhciBmb3JtYXQuLi4geWVzCmNoZWNraW5nIHdo ZXRoZXIgR0lEICcyMCcgaXMgc3VwcG9ydGVkIGJ5IHVzdGFyIGZvcm1hdC4uLiB5ZXMKY2hlY2tp bmcgaG93IHRvIGNyZWF0ZSBhIHVzdGFyIHRhciBhcmNoaXZlLi4uIHBsYWludGFyCmNoZWNraW5n IGZvciBnY2MuLi4gZ2NjCmNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgd29ya3MuLi4g eWVzCmNoZWNraW5nIGZvciBDIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZS4uLiBh Lm91dApjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzLi4uIApjaGVja2luZyB3aGV0 aGVyIHdlIGFyZSBjcm9zcyBjb21waWxpbmcuLi4gbm8KY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBv YmplY3QgZmlsZXMuLi4gbwpjaGVja2luZyB3aGV0aGVyIHRoZSBjb21waWxlciBzdXBwb3J0cyBH TlUgQy4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBnY2MgYWNjZXB0cyAtZy4uLiB5ZXMKY2hlY2tp bmcgZm9yIGdjYyBvcHRpb24gdG8gZW5hYmxlIEMyMyBmZWF0dXJlcy4uLiAtc3RkPWdudTIzCmNo ZWNraW5nIHdoZXRoZXIgZ2NjIC1zdGQ9Z251MjMgdW5kZXJzdGFuZHMgLWMgYW5kIC1vIHRvZ2V0 aGVyLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIG1ha2Ugc3VwcG9ydHMgdGhlIGluY2x1ZGUgZGly ZWN0aXZlLi4uIHllcyAoR05VIHN0eWxlKQpjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mIGdj YyAtc3RkPWdudTIzLi4uIGdjYzMKY2hlY2tpbmcgZm9yIGFyLi4uIGFyCmNoZWNraW5nIHRoZSBh cmNoaXZlciAoYXIpIGludGVyZmFjZS4uLiBhcgpjaGVja2luZyBmb3IgcmFubGliLi4uIHJhbmxp YgpjaGVja2luZyB0aGF0IGdlbmVyYXRlZCBmaWxlcyBhcmUgbmV3ZXIgdGhhbiBjb25maWd1cmUu Li4gZG9uZQpjb25maWd1cmU6IGNyZWF0aW5nIC4vY29uZmlnLnN0YXR1cwpjb25maWcuc3RhdHVz OiBjcmVhdGluZyBNYWtlZmlsZQpjb25maWcuc3RhdHVzOiBleGVjdXRpbmcgZGVwZmlsZXMgY29t bWFuZHMKI1tzdGRlcnJdKyBtYWtlIGFsbApnY2MgLXN0ZD1nbnUyMyAtRFBBQ0tBR0VfTkFNRT1c Imluc3RzcGNcIiAtRFBBQ0tBR0VfVEFSTkFNRT1cImluc3RzcGNcIiAtRFBBQ0tBR0VfVkVSU0lP Tj1cIjEuMFwiIC1EUEFDS0FHRV9TVFJJTkc9XCJpbnN0c3BjXCAxLjBcIiAtRFBBQ0tBR0VfQlVH UkVQT1JUPVwiXCIgLURQQUNLQUdFX1VSTD1cIlwiIC1EUEFDS0FHRT1cImluc3RzcGNcIiAtRFZF UlNJT049XCIxLjBcIiAtSS4gLUkuLiAgICAgLWcgLU8yIC1NVCBzb3VyY2UubyAtTUQgLU1QIC1N RiAuZGVwcy9zb3VyY2UuVHBvIC1jIC1vIHNvdXJjZS5vIC4uL3NvdXJjZS5jCm12IC1mIC5kZXBz L3NvdXJjZS5UcG8gLmRlcHMvc291cmNlLlBvCmdjYyAtc3RkPWdudTIzICAtZyAtTzIgICAtbyBz dWIvYmFzZSBzb3VyY2UubyAgCmdjYyAtc3RkPWdudTIzICAtZyAtTzIgICAtbyBzdWIvbm9iYXNl IHNvdXJjZS5vICAKcm0gLWYgc3ViL2xpYmJhc2UuYQphciBjciBzdWIvbGliYmFzZS5hIHNvdXJj ZS5vIApyYW5saWIgc3ViL2xpYmJhc2UuYQpybSAtZiBzdWIvbGlibm9iYXNlLmEKYXIgY3Igc3Vi L2xpYm5vYmFzZS5hIHNvdXJjZS5vIApyYW5saWIgc3ViL2xpYm5vYmFzZS5hCiNbc3RkZXJyXSsg REVTVERJUj0vdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVzcwoj W3N0ZGVycl0rIGZpbGU9Jy4vPCcKI1tzdGRlcnJdKyBtYWtlIHRlc3QtaW5zdAptYWtlWzFdOiBF bnRlcmluZyBkaXJlY3RvcnkgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv PCcKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt bGVzcy88LXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC4uL3N1Yi9iYXNlLnNoICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVzcy88LXByZWZpeC9m b28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LWxlc3MvPC1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIHN1Yi9saWJi YXNlLmEgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZXNzLzwt cHJlZml4L2ZvbycKICggY2QgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1sZXNzLzwtcHJlZml4L2ZvbycgJiYgcmFubGliIGxpYmJhc2UuYSApCiBta2RpciAtcCAn L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlc3MvPC1wcmVmaXgv Zm9vJwogIC91c3IvYmluL2luc3RhbGwgLWMgc3ViL2Jhc2UgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZXNzLzwtcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVzcy88LXByZWZpeC9mb28n CiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxl c3MvPC1wcmVmaXgvZm9vL3N1Yi8nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC4uL3N1Yi9ub2Jhc2Uu c2ggJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZXNzLzwtcHJl Zml4L2Zvby9zdWIvJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1sZXNzLzwtcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVzcy88LXByZWZpeC9mb28vc3ViJwogL3Vzci9i aW4vaW5zdGFsbCAtYyAtbSA2NDQgIHN1Yi9saWJub2Jhc2UuYSAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlc3MvPC1wcmVmaXgvZm9vL3N1YicKICggY2QgJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZXNzLzwtcHJlZml4L2Zv bycgJiYgcmFubGliIHN1Yi9saWJub2Jhc2UuYSApCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlc3MvPC1wcmVmaXgvZm9vJwogbWtkaXIgLXAg Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZXNzLzwtcHJlZml4 L2Zvby9zdWIvJwogIC91c3IvYmluL2luc3RhbGwgLWMgc3ViL25vYmFzZSAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlc3MvPC1wcmVmaXgvZm9vL3N1Yi8nCiBt a2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlc3Mv PC1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgLi4vc3ViL2Jhc2UuZGF0 ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVzcy88LXByZWZp eC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LWxlc3MvPC1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgLi4vc3Vi L2Jhc2UuaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlc3Mv PC1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1sZXNzLzwtcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVzcy88LXByZWZpeC9mb28vc3ViJwogL3Vzci9i aW4vaW5zdGFsbCAtYyAtbSA2NDQgIC4uL3N1Yi9ub2Jhc2UuZGF0ICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVzcy88LXByZWZpeC9mb28vc3ViJwogbWtkaXIg LXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZXNzLzwtcHJl Zml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtbGVzcy88LXByZWZpeC9mb28vc3ViJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQg IC4uL3N1Yi9ub2Jhc2UuaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LWxlc3MvPC1wcmVmaXgvZm9vL3N1YicKbWFrZVsxXTogTGVhdmluZyBkaXJlY3RvcnkgJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvPCcKdGVzdCAgIC1mICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVzcy8uLzwtcHJlZml4L2Zvby9z dWIvbm9iYXNlLmgnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LWxlc3MvLi88LXByZWZpeC9mb28vbm9iYXNlLmgnCnRlc3QgICAtZiAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlc3MvLi88LXByZWZpeC9mb28v YmFzZS5oJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1sZXNzLy4vPC1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2UuZGF0Jwp0ZXN0ICEgLWYgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZXNzLy4vPC1wcmVmaXgvZm9v L25vYmFzZS5kYXQnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LWxlc3MvLi88LXByZWZpeC9mb28vYmFzZS5kYXQnCnRlc3QgICAtZiAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlc3MvLi88LXByZWZpeC9mb28v c3ViL25vYmFzZS5zaCcKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtbGVzcy8uLzwtcHJlZml4L2Zvby9ub2Jhc2Uuc2gnCnRlc3QgICAtZiAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlc3MvLi88LXByZWZpeC9m b28vYmFzZS5zaCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyL2Rlc3QtbGVzcy8uLzwtcHJlZml4L2Zvby9zdWIvbm9iYXNlJwp0ZXN0ICEgLWYgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZXNzLy4vPC1wcmVmaXgvZm9v L25vYmFzZScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtbGVzcy8uLzwtcHJlZml4L2Zvby9iYXNlJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3Jj L2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZXNzLy4vPC1wcmVmaXgvZm9vL3N1Yi9saWJu b2Jhc2UuYScKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtbGVzcy8uLzwtcHJlZml4L2Zvby9saWJub2Jhc2UuYScKdGVzdCAgIC1mICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVzcy8uLzwtcHJlZml4L2Zvby9s aWJiYXNlLmEnCiNbc3RkZXJyXSsgZGVzY3JpcHRpb249J2xlc3MgaW4gYnVpbGRkaXInCiNbc3Rk ZXJyXSsgZXhwZWN0ZWRfdG9fZmFpbCBidWlsZCBsZXNzCiNbc3RkZXJyXSsgY2FzZSAkMSBpbgoj W3N0ZGVycl0rIGlzX2luX2xpc3QgbGVzcyBzcXVvdGUgZHF1b3RlIGJxdW90ZSBzaGFycCBkb2xs YXIgYnNsYXNoIGFtcGVyc2FuZCBsaW5lZmVlZCBxdWFkcmlncmFwaDAgYV9sZl9iCiNbc3RkZXJy XSsgaXRlbT1sZXNzCiNbc3RkZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBjYXNlICIgJCogIiBpbgpv ayA0NSAtIGxlc3MgaW4gYnVpbGRkaXIKUEFTUzogdC9pbnN0c3BjLnRhcCA0NSAtIGxlc3MgaW4g YnVpbGRkaXIKI1tzdGRlcnJdKyByZXR1cm4gMQojW3N0ZGVycl0rIGRpcmVjdGl2ZT0KI1tzdGRl cnJdKyByZWFzb249CiNbc3RkZXJyXSsgcmVzdWx0XyBvayAtRCAnJyAtciAnJyAtLSAnbGVzcyBp biBidWlsZGRpcicKI1tzdGRlcnJdKyBzZXQgK3gKI1tzdGRlcnJdKyBjZCAvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyCiNbc3RkZXJyXSsgbm90IGFtX2tlZXBpbmdfdGVzdGRp cnMKI1tzdGRlcnJdKyBhbV9rZWVwaW5nX3Rlc3RkaXJzCiNbc3RkZXJyXSsgY2FzZSAka2VlcF90 ZXN0ZGlycyBpbgojW3N0ZGVycl0rIHJldHVybiAxCiNbc3RkZXJyXSsgdGVzdCBvayA9IG9rCiNb c3RkZXJyXSsgcm1fcmZfICcuLzwnIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1sZXNzCiNbc3RkZXJyXSsgdGVzdCAyIC1ndCAwCiNbc3RkZXJyXSsgY2htb2QgLVIg dStyd3ggJy4vPCcgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxl c3MKI1tzdGRlcnJdKyBybSAtcmYgJy4vPCcgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9kZXN0LWxlc3MKI1tzdGRlcnJdKyBfYW1fcm1yZl9zdGF0dXM9MAojW3N0ZGVycl0r IGZvciBfYW1fcm1yZl92IGluICciJEAiJwojW3N0ZGVycl0rIHRlc3QgLWUgJy4vPCcKI1tzdGRl cnJdKyBmb3IgX2FtX3JtcmZfdiBpbiAnIiRAIicKI1tzdGRlcnJdKyB0ZXN0IC1lIC91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZXNzCiNbc3RkZXJyXSsgcmV0dXJu IDAKI1tzdGRlcnJdKyA6IEZvciBzaGVsbHMgd2l0aCBidXN0ZWQgJ3NldCAtZS4nCiNbc3RkZXJy XSsgZm9yIHdoZXJlIGluIGJ1aWxkIGRlc3QKI1tzdGRlcnJdKyBjYXNlICR3aGVyZSBpbgojW3N0 ZGVycl0rIGJ1aWxkPWJ1aWxkLWxlc3MKI1tzdGRlcnJdKyBkZXN0PScvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVzcy88JwojW3N0ZGVycl0rIG1rZGlyIGJ1aWxk LWxlc3MKI1tzdGRlcnJdKyBjZCBidWlsZC1sZXNzCiNbc3RkZXJyXSsgcj1vawojW3N0ZGVycl0r IC4uL2NvbmZpZ3VyZSAtLXByZWZpeCAnLzwtcHJlZml4JwpjaGVja2luZyBmb3IgYSBCU0QtY29t cGF0aWJsZSBpbnN0YWxsLi4uIC91c3IvYmluL2luc3RhbGwgLWMKY2hlY2tpbmcgd2hldGhlciBz bGVlcCBzdXBwb3J0cyBmcmFjdGlvbmFsIHNlY29uZHMuLi4geWVzCmNoZWNraW5nIGZpbGVzeXN0 ZW0gdGltZXN0YW1wIHJlc29sdXRpb24uLi4gMC4wMQpjaGVja2luZyB3aGV0aGVyIGJ1aWxkIGVu dmlyb25tZW50IGlzIHNhbmUuLi4geWVzCmNoZWNraW5nIGZvciBhIHJhY2UtZnJlZSBta2RpciAt cC4uLiBta2RpciAtcApjaGVja2luZyBmb3IgZ2F3ay4uLiBubwpjaGVja2luZyBmb3IgbWF3ay4u LiBubwpjaGVja2luZyBmb3IgbmF3ay4uLiBubwpjaGVja2luZyBmb3IgYXdrLi4uIGF3awpjaGVj a2luZyB3aGV0aGVyIG1ha2Ugc2V0cyAkKE1BS0UpLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIG1h a2Ugc3VwcG9ydHMgbmVzdGVkIHZhcmlhYmxlcy4uLiB5ZXMKY2hlY2tpbmcgeGFyZ3MgLW4gd29y a3MuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgVUlEICc1MDEnIGlzIHN1cHBvcnRlZCBieSB1c3Rh ciBmb3JtYXQuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgR0lEICcyMCcgaXMgc3VwcG9ydGVkIGJ5 IHVzdGFyIGZvcm1hdC4uLiB5ZXMKY2hlY2tpbmcgaG93IHRvIGNyZWF0ZSBhIHVzdGFyIHRhciBh cmNoaXZlLi4uIHBsYWludGFyCmNoZWNraW5nIGZvciBnY2MuLi4gZ2NjCmNoZWNraW5nIHdoZXRo ZXIgdGhlIEMgY29tcGlsZXIgd29ya3MuLi4geWVzCmNoZWNraW5nIGZvciBDIGNvbXBpbGVyIGRl ZmF1bHQgb3V0cHV0IGZpbGUgbmFtZS4uLiBhLm91dApjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4 ZWN1dGFibGVzLi4uIApjaGVja2luZyB3aGV0aGVyIHdlIGFyZSBjcm9zcyBjb21waWxpbmcuLi4g bm8KY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMuLi4gbwpjaGVja2luZyB3aGV0 aGVyIHRoZSBjb21waWxlciBzdXBwb3J0cyBHTlUgQy4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBn Y2MgYWNjZXB0cyAtZy4uLiB5ZXMKY2hlY2tpbmcgZm9yIGdjYyBvcHRpb24gdG8gZW5hYmxlIEMy MyBmZWF0dXJlcy4uLiAtc3RkPWdudTIzCmNoZWNraW5nIHdoZXRoZXIgZ2NjIC1zdGQ9Z251MjMg dW5kZXJzdGFuZHMgLWMgYW5kIC1vIHRvZ2V0aGVyLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIG1h a2Ugc3VwcG9ydHMgdGhlIGluY2x1ZGUgZGlyZWN0aXZlLi4uIHllcyAoR05VIHN0eWxlKQpjaGVj a2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mIGdjYyAtc3RkPWdudTIzLi4uIGdjYzMKY2hlY2tpbmcg Zm9yIGFyLi4uIGFyCmNoZWNraW5nIHRoZSBhcmNoaXZlciAoYXIpIGludGVyZmFjZS4uLiBhcgpj aGVja2luZyBmb3IgcmFubGliLi4uIHJhbmxpYgpjaGVja2luZyB0aGF0IGdlbmVyYXRlZCBmaWxl cyBhcmUgbmV3ZXIgdGhhbiBjb25maWd1cmUuLi4gZG9uZQpjb25maWd1cmU6IGNyZWF0aW5nIC4v Y29uZmlnLnN0YXR1cwpjb25maWcuc3RhdHVzOiBjcmVhdGluZyBNYWtlZmlsZQpjb25maWcuc3Rh dHVzOiBleGVjdXRpbmcgZGVwZmlsZXMgY29tbWFuZHMKI1tzdGRlcnJdKyBtYWtlIGFsbApnY2Mg LXN0ZD1nbnUyMyAtRFBBQ0tBR0VfTkFNRT1cImluc3RzcGNcIiAtRFBBQ0tBR0VfVEFSTkFNRT1c Imluc3RzcGNcIiAtRFBBQ0tBR0VfVkVSU0lPTj1cIjEuMFwiIC1EUEFDS0FHRV9TVFJJTkc9XCJp bnN0c3BjXCAxLjBcIiAtRFBBQ0tBR0VfQlVHUkVQT1JUPVwiXCIgLURQQUNLQUdFX1VSTD1cIlwi IC1EUEFDS0FHRT1cImluc3RzcGNcIiAtRFZFUlNJT049XCIxLjBcIiAtSS4gLUkuLiAgICAgLWcg LU8yIC1NVCBzb3VyY2UubyAtTUQgLU1QIC1NRiAuZGVwcy9zb3VyY2UuVHBvIC1jIC1vIHNvdXJj ZS5vIC4uL3NvdXJjZS5jCm12IC1mIC5kZXBzL3NvdXJjZS5UcG8gLmRlcHMvc291cmNlLlBvCmdj YyAtc3RkPWdudTIzICAtZyAtTzIgICAtbyBzdWIvYmFzZSBzb3VyY2UubyAgCmdjYyAtc3RkPWdu dTIzICAtZyAtTzIgICAtbyBzdWIvbm9iYXNlIHNvdXJjZS5vICAKcm0gLWYgc3ViL2xpYmJhc2Uu YQphciBjciBzdWIvbGliYmFzZS5hIHNvdXJjZS5vIApyYW5saWIgc3ViL2xpYmJhc2UuYQpybSAt ZiBzdWIvbGlibm9iYXNlLmEKYXIgY3Igc3ViL2xpYm5vYmFzZS5hIHNvdXJjZS5vIApyYW5saWIg c3ViL2xpYm5vYmFzZS5hCiNbc3RkZXJyXSsgREVTVERJUj0nL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlc3MvPCcKI1tzdGRlcnJdKyBmaWxlPScuLzwnCiNbc3Rk ZXJyXSsgbWFrZSB0ZXN0LWluc3QKbWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2J1aWxkLWxlc3MnCiBta2RpciAtcCAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlc3MvPC88LXByZWZpeC9m b28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC4uL3N1Yi9iYXNlLnNoICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVzcy88LzwtcHJlZml4L2ZvbycKIG1rZGlyIC1w ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVzcy88LzwtcHJl Zml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICBzdWIvbGliYmFzZS5hICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVzcy88LzwtcHJlZml4L2Zv bycKICggY2QgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZXNz LzwvPC1wcmVmaXgvZm9vJyAmJiByYW5saWIgbGliYmFzZS5hICkKIG1rZGlyIC1wICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVzcy88LzwtcHJlZml4L2ZvbycK ICAvdXNyL2Jpbi9pbnN0YWxsIC1jIHN1Yi9iYXNlICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3QtbGVzcy88LzwtcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVzcy88LzwtcHJlZml4L2ZvbycK IG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVz cy88LzwtcHJlZml4L2Zvby9zdWIvJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAuLi9zdWIvbm9iYXNl LnNoICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVzcy88Lzwt cHJlZml4L2Zvby9zdWIvJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1sZXNzLzwvPC1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZXNzLzwvPC1wcmVmaXgvZm9vL3N1YicK IC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICBzdWIvbGlibm9iYXNlLmEgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZXNzLzwvPC1wcmVmaXgvZm9vL3N1YicK ICggY2QgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZXNzLzwv PC1wcmVmaXgvZm9vJyAmJiByYW5saWIgc3ViL2xpYm5vYmFzZS5hICkKIG1rZGlyIC1wICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVzcy88LzwtcHJlZml4L2Zv bycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt bGVzcy88LzwtcHJlZml4L2Zvby9zdWIvJwogIC91c3IvYmluL2luc3RhbGwgLWMgc3ViL25vYmFz ZSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlc3MvPC88LXBy ZWZpeC9mb28vc3ViLycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtbGVzcy88LzwtcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0g NjQ0IC4uL3N1Yi9iYXNlLmRhdCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LWxlc3MvPC88LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlc3MvPC88LXByZWZpeC9mb28nCiAvdXNyL2Jpbi9p bnN0YWxsIC1jIC1tIDY0NCAuLi9zdWIvYmFzZS5oICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3QtbGVzcy88LzwtcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVzcy88LzwtcHJlZml4L2ZvbycK IG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVz cy88LzwtcHJlZml4L2Zvby9zdWInCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAgLi4vc3Vi L25vYmFzZS5kYXQgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1s ZXNzLzwvPC1wcmVmaXgvZm9vL3N1YicKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVzcy88LzwtcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVzcy88LzwtcHJlZml4L2Zv by9zdWInCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAgLi4vc3ViL25vYmFzZS5oICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVzcy88LzwtcHJlZml4L2Zv by9zdWInCm1ha2VbMV06IExlYXZpbmcgZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2J1aWxkLWxlc3MnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlc3MvPC8uLzwtcHJlZml4L2Zvby9zdWIvbm9iYXNl LmgnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LWxlc3MvPC8uLzwtcHJlZml4L2Zvby9ub2Jhc2UuaCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVzcy88Ly4vPC1wcmVmaXgvZm9vL2Jhc2Uu aCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt bGVzcy88Ly4vPC1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2UuZGF0Jwp0ZXN0ICEgLWYgJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZXNzLzwvLi88LXByZWZpeC9mb28v bm9iYXNlLmRhdCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyL2Rlc3QtbGVzcy88Ly4vPC1wcmVmaXgvZm9vL2Jhc2UuZGF0Jwp0ZXN0ICAgLWYgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZXNzLzwvLi88LXByZWZpeC9m b28vc3ViL25vYmFzZS5zaCcKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtbGVzcy88Ly4vPC1wcmVmaXgvZm9vL25vYmFzZS5zaCcKdGVzdCAgIC1m ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVzcy88Ly4vPC1w cmVmaXgvZm9vL2Jhc2Uuc2gnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LWxlc3MvPC8uLzwtcHJlZml4L2Zvby9zdWIvbm9iYXNlJwp0ZXN0ICEg LWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZXNzLzwvLi88 LXByZWZpeC9mb28vbm9iYXNlJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1sZXNzLzwvLi88LXByZWZpeC9mb28vYmFzZScKdGVzdCAgIC1mICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVzcy88Ly4vPC1wcmVm aXgvZm9vL3N1Yi9saWJub2Jhc2UuYScKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVzcy88Ly4vPC1wcmVmaXgvZm9vL2xpYm5vYmFzZS5hJwp0 ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1sZXNz LzwvLi88LXByZWZpeC9mb28vbGliYmFzZS5hJwojW3N0ZGVycl0rIGRlc2NyaXB0aW9uPSdsZXNz IGluIGRlc3RkaXInCiNbc3RkZXJyXSsgZXhwZWN0ZWRfdG9fZmFpbCBkZXN0IGxlc3MKI1tzdGRl cnJdKyBjYXNlICQxIGluCm9rIDQ2IC0gbGVzcyBpbiBkZXN0ZGlyClBBU1M6IHQvaW5zdHNwYy50 YXAgNDYgLSBsZXNzIGluIGRlc3RkaXIKI1tzdGRlcnJdKyBpc19pbl9saXN0IGxlc3Mgc3F1b3Rl IGRxdW90ZSBicXVvdGUgc2hhcnAgZG9sbGFyIGxpbmVmZWVkIGFfbGZfYgojW3N0ZGVycl0rIGl0 ZW09bGVzcwojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRl cnJdKyByZXR1cm4gMQojW3N0ZGVycl0rIGRpcmVjdGl2ZT0KI1tzdGRlcnJdKyByZWFzb249CiNb c3RkZXJyXSsgcmVzdWx0XyBvayAtRCAnJyAtciAnJyAtLSAnbGVzcyBpbiBkZXN0ZGlyJwojW3N0 ZGVycl0rIHNldCAreAojW3N0ZGVycl0rIGNkIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIKI1tzdGRlcnJdKyBub3QgYW1fa2VlcGluZ190ZXN0ZGlycwojW3N0ZGVycl0rIGFt X2tlZXBpbmdfdGVzdGRpcnMKI1tzdGRlcnJdKyBjYXNlICRrZWVwX3Rlc3RkaXJzIGluCiNbc3Rk ZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyB0ZXN0IG9rID0gb2sKI1tzdGRlcnJdKyBybV9yZl8g YnVpbGQtbGVzcyAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxl c3MvPCcKI1tzdGRlcnJdKyB0ZXN0IDIgLWd0IDAKI1tzdGRlcnJdKyBjaG1vZCAtUiB1K3J3eCBi dWlsZC1sZXNzICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVz cy88JwojW3N0ZGVycl0rIHJtIC1yZiBidWlsZC1sZXNzICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtbGVzcy88JwojW3N0ZGVycl0rIF9hbV9ybXJmX3N0YXR1cz0w CiNbc3RkZXJyXSsgZm9yIF9hbV9ybXJmX3YgaW4gJyIkQCInCiNbc3RkZXJyXSsgdGVzdCAtZSBi dWlsZC1sZXNzCiNbc3RkZXJyXSsgZm9yIF9hbV9ybXJmX3YgaW4gJyIkQCInCiNbc3RkZXJyXSsg dGVzdCAtZSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxlc3Mv PCcKI1tzdGRlcnJdKyByZXR1cm4gMAojW3N0ZGVycl0rIDogRm9yIHNoZWxscyB3aXRoIGJ1c3Rl ZCAnc2V0IC1lLicKI1tzdGRlcnJdKyBmb3IgdGVzdF9uYW1lIGluICckdGVzdF9uYW1lc19saXN0 JwojW3N0ZGVycl0rIGV2YWwgJ3Rlc3Rfc3RyaW5nPSR7aW5zdHNwY19fbW9yZX0nCiNbc3RkZXJy XSsrIHRlc3Rfc3RyaW5nPSc+JwojW3N0ZGVycl0rIHRlc3QgJ3g+JyA9IHgKI1tzdGRlcnJdKyBt a2RpciAnLi8+JwojW3N0ZGVycl0rIGNhc2UgJHRlc3Rfc3RyaW5nIGluCiNbc3RkZXJyXSsgZm9y IHdoZXJlIGluIGJ1aWxkIGRlc3QKI1tzdGRlcnJdKyBjYXNlICR3aGVyZSBpbgojW3N0ZGVycl0r IGJ1aWxkPScuLz4nCiNbc3RkZXJyXSsgZGVzdD0vdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtbW9yZQojW3N0ZGVycl0rIGNkICcuLz4nCiNbc3RkZXJyXSsgcj1vawoj W3N0ZGVycl0rIC4uL2NvbmZpZ3VyZSAtLXByZWZpeCAnLz4tcHJlZml4JwpjaGVja2luZyBmb3Ig YSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsLi4uIC91c3IvYmluL2luc3RhbGwgLWMKY2hlY2tpbmcg d2hldGhlciBzbGVlcCBzdXBwb3J0cyBmcmFjdGlvbmFsIHNlY29uZHMuLi4geWVzCmNoZWNraW5n IGZpbGVzeXN0ZW0gdGltZXN0YW1wIHJlc29sdXRpb24uLi4gMC4wMQpjaGVja2luZyB3aGV0aGVy IGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmUuLi4geWVzCmNoZWNraW5nIGZvciBhIHJhY2UtZnJl ZSBta2RpciAtcC4uLiBta2RpciAtcApjaGVja2luZyBmb3IgZ2F3ay4uLiBubwpjaGVja2luZyBm b3IgbWF3ay4uLiBubwpjaGVja2luZyBmb3IgbmF3ay4uLiBubwpjaGVja2luZyBmb3IgYXdrLi4u IGF3awpjaGVja2luZyB3aGV0aGVyIG1ha2Ugc2V0cyAkKE1BS0UpLi4uIHllcwpjaGVja2luZyB3 aGV0aGVyIG1ha2Ugc3VwcG9ydHMgbmVzdGVkIHZhcmlhYmxlcy4uLiB5ZXMKY2hlY2tpbmcgeGFy Z3MgLW4gd29ya3MuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgVUlEICc1MDEnIGlzIHN1cHBvcnRl ZCBieSB1c3RhciBmb3JtYXQuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgR0lEICcyMCcgaXMgc3Vw cG9ydGVkIGJ5IHVzdGFyIGZvcm1hdC4uLiB5ZXMKY2hlY2tpbmcgaG93IHRvIGNyZWF0ZSBhIHVz dGFyIHRhciBhcmNoaXZlLi4uIHBsYWludGFyCmNoZWNraW5nIGZvciBnY2MuLi4gZ2NjCmNoZWNr aW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgd29ya3MuLi4geWVzCmNoZWNraW5nIGZvciBDIGNv bXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZS4uLiBhLm91dApjaGVja2luZyBmb3Igc3Vm Zml4IG9mIGV4ZWN1dGFibGVzLi4uIApjaGVja2luZyB3aGV0aGVyIHdlIGFyZSBjcm9zcyBjb21w aWxpbmcuLi4gbm8KY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMuLi4gbwpjaGVj a2luZyB3aGV0aGVyIHRoZSBjb21waWxlciBzdXBwb3J0cyBHTlUgQy4uLiB5ZXMKY2hlY2tpbmcg d2hldGhlciBnY2MgYWNjZXB0cyAtZy4uLiB5ZXMKY2hlY2tpbmcgZm9yIGdjYyBvcHRpb24gdG8g ZW5hYmxlIEMyMyBmZWF0dXJlcy4uLiAtc3RkPWdudTIzCmNoZWNraW5nIHdoZXRoZXIgZ2NjIC1z dGQ9Z251MjMgdW5kZXJzdGFuZHMgLWMgYW5kIC1vIHRvZ2V0aGVyLi4uIHllcwpjaGVja2luZyB3 aGV0aGVyIG1ha2Ugc3VwcG9ydHMgdGhlIGluY2x1ZGUgZGlyZWN0aXZlLi4uIHllcyAoR05VIHN0 eWxlKQpjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mIGdjYyAtc3RkPWdudTIzLi4uIGdjYzMK Y2hlY2tpbmcgZm9yIGFyLi4uIGFyCmNoZWNraW5nIHRoZSBhcmNoaXZlciAoYXIpIGludGVyZmFj ZS4uLiBhcgpjaGVja2luZyBmb3IgcmFubGliLi4uIHJhbmxpYgpjaGVja2luZyB0aGF0IGdlbmVy YXRlZCBmaWxlcyBhcmUgbmV3ZXIgdGhhbiBjb25maWd1cmUuLi4gZG9uZQpjb25maWd1cmU6IGNy ZWF0aW5nIC4vY29uZmlnLnN0YXR1cwpjb25maWcuc3RhdHVzOiBjcmVhdGluZyBNYWtlZmlsZQpj b25maWcuc3RhdHVzOiBleGVjdXRpbmcgZGVwZmlsZXMgY29tbWFuZHMKI1tzdGRlcnJdKyBtYWtl IGFsbApnY2MgLXN0ZD1nbnUyMyAtRFBBQ0tBR0VfTkFNRT1cImluc3RzcGNcIiAtRFBBQ0tBR0Vf VEFSTkFNRT1cImluc3RzcGNcIiAtRFBBQ0tBR0VfVkVSU0lPTj1cIjEuMFwiIC1EUEFDS0FHRV9T VFJJTkc9XCJpbnN0c3BjXCAxLjBcIiAtRFBBQ0tBR0VfQlVHUkVQT1JUPVwiXCIgLURQQUNLQUdF X1VSTD1cIlwiIC1EUEFDS0FHRT1cImluc3RzcGNcIiAtRFZFUlNJT049XCIxLjBcIiAtSS4gLUku LiAgICAgLWcgLU8yIC1NVCBzb3VyY2UubyAtTUQgLU1QIC1NRiAuZGVwcy9zb3VyY2UuVHBvIC1j IC1vIHNvdXJjZS5vIC4uL3NvdXJjZS5jCm12IC1mIC5kZXBzL3NvdXJjZS5UcG8gLmRlcHMvc291 cmNlLlBvCmdjYyAtc3RkPWdudTIzICAtZyAtTzIgICAtbyBzdWIvYmFzZSBzb3VyY2UubyAgCmdj YyAtc3RkPWdudTIzICAtZyAtTzIgICAtbyBzdWIvbm9iYXNlIHNvdXJjZS5vICAKcm0gLWYgc3Vi L2xpYmJhc2UuYQphciBjciBzdWIvbGliYmFzZS5hIHNvdXJjZS5vIApyYW5saWIgc3ViL2xpYmJh c2UuYQpybSAtZiBzdWIvbGlibm9iYXNlLmEKYXIgY3Igc3ViL2xpYm5vYmFzZS5hIHNvdXJjZS5v IApyYW5saWIgc3ViL2xpYm5vYmFzZS5hCiNbc3RkZXJyXSsgREVTVERJUj0vdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbW9yZQojW3N0ZGVycl0rIGZpbGU9Jy4vPicK I1tzdGRlcnJdKyBtYWtlIHRlc3QtaW5zdAptYWtlWzFdOiBFbnRlcmluZyBkaXJlY3RvcnkgJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvPicKIG1rZGlyIC1wICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbW9yZS8+LXByZWZpeC9mb28nCiAv dXNyL2Jpbi9pbnN0YWxsIC1jIC4uL3N1Yi9iYXNlLnNoICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtbW9yZS8+LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1vcmUvPi1wcmVmaXgvZm9vJwog L3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIHN1Yi9saWJiYXNlLmEgJy91c3IvbG9jYWwvc3Jj L2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1tb3JlLz4tcHJlZml4L2ZvbycKICggY2QgJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1tb3JlLz4tcHJlZml4L2Zv bycgJiYgcmFubGliIGxpYmJhc2UuYSApCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9kZXN0LW1vcmUvPi1wcmVmaXgvZm9vJwogIC91c3IvYmluL2luc3Rh bGwgLWMgc3ViL2Jhc2UgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC1tb3JlLz4tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3QtbW9yZS8+LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1vcmUvPi1wcmVmaXgvZm9vL3N1Yi8n CiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC4uL3N1Yi9ub2Jhc2Uuc2ggJy91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1tb3JlLz4tcHJlZml4L2Zvby9zdWIvJwogbWtkaXIg LXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1tb3JlLz4tcHJl Zml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtbW9yZS8+LXByZWZpeC9mb28vc3ViJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQg IHN1Yi9saWJub2Jhc2UuYSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LW1vcmUvPi1wcmVmaXgvZm9vL3N1YicKICggY2QgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1tb3JlLz4tcHJlZml4L2ZvbycgJiYgcmFubGliIHN1Yi9saWJu b2Jhc2UuYSApCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LW1vcmUvPi1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1tb3JlLz4tcHJlZml4L2Zvby9zdWIvJwogIC91c3IvYmlu L2luc3RhbGwgLWMgc3ViL25vYmFzZSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LW1vcmUvPi1wcmVmaXgvZm9vL3N1Yi8nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1vcmUvPi1wcmVmaXgvZm9vJwogL3Vzci9i aW4vaW5zdGFsbCAtYyAtbSA2NDQgLi4vc3ViL2Jhc2UuZGF0ICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbW9yZS8+LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1vcmUvPi1wcmVmaXgvZm9v JwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgLi4vc3ViL2Jhc2UuaCAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1vcmUvPi1wcmVmaXgvZm9vJwogbWtkaXIg LXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1tb3JlLz4tcHJl Zml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtbW9yZS8+LXByZWZpeC9mb28vc3ViJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQg IC4uL3N1Yi9ub2Jhc2UuZGF0ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtbW9yZS8+LXByZWZpeC9mb28vc3ViJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1tb3JlLz4tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbW9yZS8+LXByZWZpeC9m b28vc3ViJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIC4uL3N1Yi9ub2Jhc2UuaCAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1vcmUvPi1wcmVmaXgvZm9v L3N1YicKbWFrZVsxXTogTGVhdmluZyBkaXJlY3RvcnkgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvPicKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtbW9yZS8uLz4tcHJlZml4L2Zvby9zdWIvbm9iYXNlLmgnCnRlc3QgISAt ZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1vcmUvLi8+LXBy ZWZpeC9mb28vbm9iYXNlLmgnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LW1vcmUvLi8+LXByZWZpeC9mb28vYmFzZS5oJwp0ZXN0ICAgLWYgJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1tb3JlLy4vPi1wcmVmaXgv Zm9vL3N1Yi9ub2Jhc2UuZGF0Jwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1tb3JlLy4vPi1wcmVmaXgvZm9vL25vYmFzZS5kYXQnCnRlc3QgICAt ZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1vcmUvLi8+LXBy ZWZpeC9mb28vYmFzZS5kYXQnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LW1vcmUvLi8+LXByZWZpeC9mb28vc3ViL25vYmFzZS5zaCcKdGVzdCAh IC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbW9yZS8uLz4t cHJlZml4L2Zvby9ub2Jhc2Uuc2gnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LW1vcmUvLi8+LXByZWZpeC9mb28vYmFzZS5zaCcKdGVzdCAgIC1m ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbW9yZS8uLz4tcHJl Zml4L2Zvby9zdWIvbm9iYXNlJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1tb3JlLy4vPi1wcmVmaXgvZm9vL25vYmFzZScKdGVzdCAgIC1mICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbW9yZS8uLz4tcHJlZml4 L2Zvby9iYXNlJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1tb3JlLy4vPi1wcmVmaXgvZm9vL3N1Yi9saWJub2Jhc2UuYScKdGVzdCAhIC1mICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbW9yZS8uLz4tcHJlZml4 L2Zvby9saWJub2Jhc2UuYScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtbW9yZS8uLz4tcHJlZml4L2Zvby9saWJiYXNlLmEnCiNbc3RkZXJyXSsg ZGVzY3JpcHRpb249J21vcmUgaW4gYnVpbGRkaXInCiNbc3RkZXJyXSsgZXhwZWN0ZWRfdG9fZmFp bCBidWlsZCBtb3JlCiNbc3RkZXJyXSsgY2FzZSAkMSBpbgojW3N0ZGVycl0rIGlzX2luX2xpc3Qg bW9yZSBzcXVvdGUgZHF1b3RlIGJxdW90ZSBzaGFycCBkb2xsYXIgYnNsYXNoIGFtcGVyc2FuZCBs aW5lZmVlZCBxdWFkcmlncmFwaDAgYV9sZl9iCiNbc3RkZXJyXSsgaXRlbT1tb3JlCm9rIDQ3IC0g bW9yZSBpbiBidWlsZGRpcgpQQVNTOiB0L2luc3RzcGMudGFwIDQ3IC0gbW9yZSBpbiBidWlsZGRp cgojW3N0ZGVycl0rIHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyBy ZXR1cm4gMQojW3N0ZGVycl0rIGRpcmVjdGl2ZT0KI1tzdGRlcnJdKyByZWFzb249CiNbc3RkZXJy XSsgcmVzdWx0XyBvayAtRCAnJyAtciAnJyAtLSAnbW9yZSBpbiBidWlsZGRpcicKI1tzdGRlcnJd KyBzZXQgK3gKI1tzdGRlcnJdKyBjZCAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyCiNbc3RkZXJyXSsgbm90IGFtX2tlZXBpbmdfdGVzdGRpcnMKI1tzdGRlcnJdKyBhbV9rZWVw aW5nX3Rlc3RkaXJzCiNbc3RkZXJyXSsgY2FzZSAka2VlcF90ZXN0ZGlycyBpbgojW3N0ZGVycl0r IHJldHVybiAxCiNbc3RkZXJyXSsgdGVzdCBvayA9IG9rCiNbc3RkZXJyXSsgcm1fcmZfICcuLz4n IC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1tb3JlCiNbc3RkZXJy XSsgdGVzdCAyIC1ndCAwCiNbc3RkZXJyXSsgY2htb2QgLVIgdStyd3ggJy4vPicgL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1vcmUKI1tzdGRlcnJdKyBybSAtcmYg Jy4vPicgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1vcmUKI1tz dGRlcnJdKyBfYW1fcm1yZl9zdGF0dXM9MAojW3N0ZGVycl0rIGZvciBfYW1fcm1yZl92IGluICci JEAiJwojW3N0ZGVycl0rIHRlc3QgLWUgJy4vPicKI1tzdGRlcnJdKyBmb3IgX2FtX3JtcmZfdiBp biAnIiRAIicKI1tzdGRlcnJdKyB0ZXN0IC1lIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1tb3JlCiNbc3RkZXJyXSsgcmV0dXJuIDAKI1tzdGRlcnJdKyA6IEZvciBz aGVsbHMgd2l0aCBidXN0ZWQgJ3NldCAtZS4nCiNbc3RkZXJyXSsgZm9yIHdoZXJlIGluIGJ1aWxk IGRlc3QKI1tzdGRlcnJdKyBjYXNlICR3aGVyZSBpbgojW3N0ZGVycl0rIGJ1aWxkPWJ1aWxkLW1v cmUKI1tzdGRlcnJdKyBkZXN0PScvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtbW9yZS8+JwojW3N0ZGVycl0rIG1rZGlyIGJ1aWxkLW1vcmUKI1tzdGRlcnJdKyBjZCBi dWlsZC1tb3JlCiNbc3RkZXJyXSsgcj1vawojW3N0ZGVycl0rIC4uL2NvbmZpZ3VyZSAtLXByZWZp eCAnLz4tcHJlZml4JwpjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsLi4uIC91 c3IvYmluL2luc3RhbGwgLWMKY2hlY2tpbmcgd2hldGhlciBzbGVlcCBzdXBwb3J0cyBmcmFjdGlv bmFsIHNlY29uZHMuLi4geWVzCmNoZWNraW5nIGZpbGVzeXN0ZW0gdGltZXN0YW1wIHJlc29sdXRp b24uLi4gMC4wMQpjaGVja2luZyB3aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmUuLi4g eWVzCmNoZWNraW5nIGZvciBhIHJhY2UtZnJlZSBta2RpciAtcC4uLiBta2RpciAtcApjaGVja2lu ZyBmb3IgZ2F3ay4uLiBubwpjaGVja2luZyBmb3IgbWF3ay4uLiBubwpjaGVja2luZyBmb3IgbmF3 ay4uLiBubwpjaGVja2luZyBmb3IgYXdrLi4uIGF3awpjaGVja2luZyB3aGV0aGVyIG1ha2Ugc2V0 cyAkKE1BS0UpLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIG1ha2Ugc3VwcG9ydHMgbmVzdGVkIHZh cmlhYmxlcy4uLiB5ZXMKY2hlY2tpbmcgeGFyZ3MgLW4gd29ya3MuLi4geWVzCmNoZWNraW5nIHdo ZXRoZXIgVUlEICc1MDEnIGlzIHN1cHBvcnRlZCBieSB1c3RhciBmb3JtYXQuLi4geWVzCmNoZWNr aW5nIHdoZXRoZXIgR0lEICcyMCcgaXMgc3VwcG9ydGVkIGJ5IHVzdGFyIGZvcm1hdC4uLiB5ZXMK Y2hlY2tpbmcgaG93IHRvIGNyZWF0ZSBhIHVzdGFyIHRhciBhcmNoaXZlLi4uIHBsYWludGFyCmNo ZWNraW5nIGZvciBnY2MuLi4gZ2NjCmNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgd29y a3MuLi4geWVzCmNoZWNraW5nIGZvciBDIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFt ZS4uLiBhLm91dApjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzLi4uIApjaGVja2lu ZyB3aGV0aGVyIHdlIGFyZSBjcm9zcyBjb21waWxpbmcuLi4gbm8KY2hlY2tpbmcgZm9yIHN1ZmZp eCBvZiBvYmplY3QgZmlsZXMuLi4gbwpjaGVja2luZyB3aGV0aGVyIHRoZSBjb21waWxlciBzdXBw b3J0cyBHTlUgQy4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBnY2MgYWNjZXB0cyAtZy4uLiB5ZXMK Y2hlY2tpbmcgZm9yIGdjYyBvcHRpb24gdG8gZW5hYmxlIEMyMyBmZWF0dXJlcy4uLiAtc3RkPWdu dTIzCmNoZWNraW5nIHdoZXRoZXIgZ2NjIC1zdGQ9Z251MjMgdW5kZXJzdGFuZHMgLWMgYW5kIC1v IHRvZ2V0aGVyLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIG1ha2Ugc3VwcG9ydHMgdGhlIGluY2x1 ZGUgZGlyZWN0aXZlLi4uIHllcyAoR05VIHN0eWxlKQpjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxl IG9mIGdjYyAtc3RkPWdudTIzLi4uIGdjYzMKY2hlY2tpbmcgZm9yIGFyLi4uIGFyCmNoZWNraW5n IHRoZSBhcmNoaXZlciAoYXIpIGludGVyZmFjZS4uLiBhcgpjaGVja2luZyBmb3IgcmFubGliLi4u IHJhbmxpYgpjaGVja2luZyB0aGF0IGdlbmVyYXRlZCBmaWxlcyBhcmUgbmV3ZXIgdGhhbiBjb25m aWd1cmUuLi4gZG9uZQpjb25maWd1cmU6IGNyZWF0aW5nIC4vY29uZmlnLnN0YXR1cwpjb25maWcu c3RhdHVzOiBjcmVhdGluZyBNYWtlZmlsZQpjb25maWcuc3RhdHVzOiBleGVjdXRpbmcgZGVwZmls ZXMgY29tbWFuZHMKI1tzdGRlcnJdKyBtYWtlIGFsbApnY2MgLXN0ZD1nbnUyMyAtRFBBQ0tBR0Vf TkFNRT1cImluc3RzcGNcIiAtRFBBQ0tBR0VfVEFSTkFNRT1cImluc3RzcGNcIiAtRFBBQ0tBR0Vf VkVSU0lPTj1cIjEuMFwiIC1EUEFDS0FHRV9TVFJJTkc9XCJpbnN0c3BjXCAxLjBcIiAtRFBBQ0tB R0VfQlVHUkVQT1JUPVwiXCIgLURQQUNLQUdFX1VSTD1cIlwiIC1EUEFDS0FHRT1cImluc3RzcGNc IiAtRFZFUlNJT049XCIxLjBcIiAtSS4gLUkuLiAgICAgLWcgLU8yIC1NVCBzb3VyY2UubyAtTUQg LU1QIC1NRiAuZGVwcy9zb3VyY2UuVHBvIC1jIC1vIHNvdXJjZS5vIC4uL3NvdXJjZS5jCm12IC1m IC5kZXBzL3NvdXJjZS5UcG8gLmRlcHMvc291cmNlLlBvCmdjYyAtc3RkPWdudTIzICAtZyAtTzIg ICAtbyBzdWIvYmFzZSBzb3VyY2UubyAgCmdjYyAtc3RkPWdudTIzICAtZyAtTzIgICAtbyBzdWIv bm9iYXNlIHNvdXJjZS5vICAKcm0gLWYgc3ViL2xpYmJhc2UuYQphciBjciBzdWIvbGliYmFzZS5h IHNvdXJjZS5vIApyYW5saWIgc3ViL2xpYmJhc2UuYQpybSAtZiBzdWIvbGlibm9iYXNlLmEKYXIg Y3Igc3ViL2xpYm5vYmFzZS5hIHNvdXJjZS5vIApyYW5saWIgc3ViL2xpYm5vYmFzZS5hCiNbc3Rk ZXJyXSsgREVTVERJUj0nL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LW1vcmUvPicKI1tzdGRlcnJdKyBmaWxlPScuLz4nCiNbc3RkZXJyXSsgbWFrZSB0ZXN0LWluc3QK bWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2J1aWxkLW1vcmUnCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LW1vcmUvPi8+LXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxs IC1jIC4uL3N1Yi9iYXNlLnNoICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtbW9yZS8+Lz4tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbW9yZS8+Lz4tcHJlZml4L2ZvbycKIC91c3IvYmluL2lu c3RhbGwgLWMgLW0gNjQ0ICBzdWIvbGliYmFzZS5hICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3QtbW9yZS8+Lz4tcHJlZml4L2ZvbycKICggY2QgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1tb3JlLz4vPi1wcmVmaXgvZm9vJyAmJiBy YW5saWIgbGliYmFzZS5hICkKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtbW9yZS8+Lz4tcHJlZml4L2ZvbycKICAvdXNyL2Jpbi9pbnN0YWxsIC1j IHN1Yi9iYXNlICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbW9y ZS8+Lz4tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtbW9yZS8+Lz4tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbW9yZS8+Lz4tcHJlZml4L2Zvby9zdWIv JwogL3Vzci9iaW4vaW5zdGFsbCAtYyAuLi9zdWIvbm9iYXNlLnNoICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbW9yZS8+Lz4tcHJlZml4L2Zvby9zdWIvJwogbWtk aXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1tb3JlLz4v Pi1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1tb3JlLz4vPi1wcmVmaXgvZm9vL3N1YicKIC91c3IvYmluL2luc3RhbGwgLWMg LW0gNjQ0ICBzdWIvbGlibm9iYXNlLmEgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1tb3JlLz4vPi1wcmVmaXgvZm9vL3N1YicKICggY2QgJy91c3IvbG9jYWwvc3Jj L2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1tb3JlLz4vPi1wcmVmaXgvZm9vJyAmJiByYW5s aWIgc3ViL2xpYm5vYmFzZS5hICkKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3QtbW9yZS8+Lz4tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbW9yZS8+Lz4tcHJlZml4L2Zvby9z dWIvJwogIC91c3IvYmluL2luc3RhbGwgLWMgc3ViL25vYmFzZSAnL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1vcmUvPi8+LXByZWZpeC9mb28vc3ViLycKIG1rZGly IC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbW9yZS8+Lz4t cHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0IC4uL3N1Yi9iYXNlLmRhdCAn L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1vcmUvPi8+LXByZWZp eC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LW1vcmUvPi8+LXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAuLi9z dWIvYmFzZS5oICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbW9y ZS8+Lz4tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtbW9yZS8+Lz4tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbW9yZS8+Lz4tcHJlZml4L2Zvby9zdWIn CiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAgLi4vc3ViL25vYmFzZS5kYXQgJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1tb3JlLz4vPi1wcmVmaXgvZm9vL3N1 YicKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt bW9yZS8+Lz4tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3QtbW9yZS8+Lz4tcHJlZml4L2Zvby9zdWInCiAvdXNyL2Jpbi9pbnN0 YWxsIC1jIC1tIDY0NCAgLi4vc3ViL25vYmFzZS5oICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3QtbW9yZS8+Lz4tcHJlZml4L2Zvby9zdWInCm1ha2VbMV06IExlYXZp bmcgZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2J1aWxk LW1vcmUnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LW1vcmUvPi8uLz4tcHJlZml4L2Zvby9zdWIvbm9iYXNlLmgnCnRlc3QgISAtZiAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1vcmUvPi8uLz4tcHJlZml4L2Zv by9ub2Jhc2UuaCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyL2Rlc3QtbW9yZS8+Ly4vPi1wcmVmaXgvZm9vL2Jhc2UuaCcKdGVzdCAgIC1mICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbW9yZS8+Ly4vPi1wcmVmaXgvZm9v L3N1Yi9ub2Jhc2UuZGF0Jwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1tb3JlLz4vLi8+LXByZWZpeC9mb28vbm9iYXNlLmRhdCcKdGVzdCAgIC1m ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbW9yZS8+Ly4vPi1w cmVmaXgvZm9vL2Jhc2UuZGF0Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1tb3JlLz4vLi8+LXByZWZpeC9mb28vc3ViL25vYmFzZS5zaCcKdGVz dCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbW9yZS8+ Ly4vPi1wcmVmaXgvZm9vL25vYmFzZS5zaCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbW9yZS8+Ly4vPi1wcmVmaXgvZm9vL2Jhc2Uuc2gnCnRl c3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1vcmUv Pi8uLz4tcHJlZml4L2Zvby9zdWIvbm9iYXNlJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1tb3JlLz4vLi8+LXByZWZpeC9mb28vbm9iYXNlJwp0 ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1tb3Jl Lz4vLi8+LXByZWZpeC9mb28vYmFzZScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtbW9yZS8+Ly4vPi1wcmVmaXgvZm9vL3N1Yi9saWJub2Jhc2Uu YScKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt bW9yZS8+Ly4vPi1wcmVmaXgvZm9vL2xpYm5vYmFzZS5hJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1tb3JlLz4vLi8+LXByZWZpeC9mb28vbGli YmFzZS5hJwojW3N0ZGVycl0rIGRlc2NyaXB0aW9uPSdtb3JlIGluIGRlc3RkaXInCiNbc3RkZXJy XSsgZXhwZWN0ZWRfdG9fZmFpbCBkZXN0IG1vcmUKI1tzdGRlcnJdKyBjYXNlICQxIGluCiNbc3Rk ZXJyXSsgaXNfaW5fbGlzdCBtb3JlIHNxdW90ZSBkcXVvdGUgYnF1b3RlIHNoYXJwIGRvbGxhciBs aW5lZmVlZCBhX2xmX2IKI1tzdGRlcnJdKyBpdGVtPW1vcmUKI1tzdGRlcnJdKyBzaGlmdAojW3N0 ZGVycl0rIGNhc2UgIiAkKiAiIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyBkaXJl Y3RpdmU9CiNbc3RkZXJyXSsgcmVhc29uPQojW3N0ZGVycl0rIHJlc3VsdF8gb2sgLUQgJycgLXIg JycgLS0gJ21vcmUgaW4gZGVzdGRpcicKI1tzdGRlcnJdKyBzZXQgK3gKb2sgNDggLSBtb3JlIGlu IGRlc3RkaXIKUEFTUzogdC9pbnN0c3BjLnRhcCA0OCAtIG1vcmUgaW4gZGVzdGRpcgojW3N0ZGVy cl0rIGNkIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIKI1tzdGRlcnJdKyBu b3QgYW1fa2VlcGluZ190ZXN0ZGlycwojW3N0ZGVycl0rIGFtX2tlZXBpbmdfdGVzdGRpcnMKI1tz dGRlcnJdKyBjYXNlICRrZWVwX3Rlc3RkaXJzIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRl cnJdKyB0ZXN0IG9rID0gb2sKI1tzdGRlcnJdKyBybV9yZl8gYnVpbGQtbW9yZSAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1vcmUvPicKI1tzdGRlcnJdKyB0ZXN0 IDIgLWd0IDAKI1tzdGRlcnJdKyBjaG1vZCAtUiB1K3J3eCBidWlsZC1tb3JlICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbW9yZS8+JwojW3N0ZGVycl0rIHJtIC1y ZiBidWlsZC1tb3JlICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt bW9yZS8+JwojW3N0ZGVycl0rIF9hbV9ybXJmX3N0YXR1cz0wCiNbc3RkZXJyXSsgZm9yIF9hbV9y bXJmX3YgaW4gJyIkQCInCiNbc3RkZXJyXSsgdGVzdCAtZSBidWlsZC1tb3JlCiNbc3RkZXJyXSsg Zm9yIF9hbV9ybXJmX3YgaW4gJyIkQCInCiNbc3RkZXJyXSsgdGVzdCAtZSAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LW1vcmUvPicKI1tzdGRlcnJdKyByZXR1cm4g MAojW3N0ZGVycl0rIDogRm9yIHNoZWxscyB3aXRoIGJ1c3RlZCAnc2V0IC1lLicKI1tzdGRlcnJd KyBmb3IgdGVzdF9uYW1lIGluICckdGVzdF9uYW1lc19saXN0JwojW3N0ZGVycl0rIGV2YWwgJ3Rl c3Rfc3RyaW5nPSR7aW5zdHNwY19fYXR9JwojW3N0ZGVycl0rKyB0ZXN0X3N0cmluZz1ACiNbc3Rk ZXJyXSsgdGVzdCB4QCA9IHgKI1tzdGRlcnJdKyBta2RpciAuL0AKI1tzdGRlcnJdKyBjYXNlICR0 ZXN0X3N0cmluZyBpbgojW3N0ZGVycl0rIGZvciB3aGVyZSBpbiBidWlsZCBkZXN0CiNbc3RkZXJy XSsgY2FzZSAkd2hlcmUgaW4KI1tzdGRlcnJdKyBidWlsZD0uL0AKI1tzdGRlcnJdKyBkZXN0PS91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1hdAojW3N0ZGVycl0rIGNk IC4vQAojW3N0ZGVycl0rIHI9b2sKI1tzdGRlcnJdKyAuLi9jb25maWd1cmUgLS1wcmVmaXggL0At cHJlZml4CmNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwuLi4gL3Vzci9iaW4v aW5zdGFsbCAtYwpjaGVja2luZyB3aGV0aGVyIHNsZWVwIHN1cHBvcnRzIGZyYWN0aW9uYWwgc2Vj b25kcy4uLiB5ZXMKY2hlY2tpbmcgZmlsZXN5c3RlbSB0aW1lc3RhbXAgcmVzb2x1dGlvbi4uLiAw LjAxCmNoZWNraW5nIHdoZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZS4uLiB5ZXMKY2hl Y2tpbmcgZm9yIGEgcmFjZS1mcmVlIG1rZGlyIC1wLi4uIG1rZGlyIC1wCmNoZWNraW5nIGZvciBn YXdrLi4uIG5vCmNoZWNraW5nIGZvciBtYXdrLi4uIG5vCmNoZWNraW5nIGZvciBuYXdrLi4uIG5v CmNoZWNraW5nIGZvciBhd2suLi4gYXdrCmNoZWNraW5nIHdoZXRoZXIgbWFrZSBzZXRzICQoTUFL RSkuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgbWFrZSBzdXBwb3J0cyBuZXN0ZWQgdmFyaWFibGVz Li4uIHllcwpjaGVja2luZyB4YXJncyAtbiB3b3Jrcy4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBV SUQgJzUwMScgaXMgc3VwcG9ydGVkIGJ5IHVzdGFyIGZvcm1hdC4uLiB5ZXMKY2hlY2tpbmcgd2hl dGhlciBHSUQgJzIwJyBpcyBzdXBwb3J0ZWQgYnkgdXN0YXIgZm9ybWF0Li4uIHllcwpjaGVja2lu ZyBob3cgdG8gY3JlYXRlIGEgdXN0YXIgdGFyIGFyY2hpdmUuLi4gcGxhaW50YXIKY2hlY2tpbmcg Zm9yIGdjYy4uLiBnY2MKY2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciB3b3Jrcy4uLiB5 ZXMKY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgZGVmYXVsdCBvdXRwdXQgZmlsZSBuYW1lLi4uIGEu b3V0CmNoZWNraW5nIGZvciBzdWZmaXggb2YgZXhlY3V0YWJsZXMuLi4gCmNoZWNraW5nIHdoZXRo ZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZy4uLiBubwpjaGVja2luZyBmb3Igc3VmZml4IG9mIG9i amVjdCBmaWxlcy4uLiBvCmNoZWNraW5nIHdoZXRoZXIgdGhlIGNvbXBpbGVyIHN1cHBvcnRzIEdO VSBDLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIGdjYyBhY2NlcHRzIC1nLi4uIHllcwpjaGVja2lu ZyBmb3IgZ2NjIG9wdGlvbiB0byBlbmFibGUgQzIzIGZlYXR1cmVzLi4uIC1zdGQ9Z251MjMKY2hl Y2tpbmcgd2hldGhlciBnY2MgLXN0ZD1nbnUyMyB1bmRlcnN0YW5kcyAtYyBhbmQgLW8gdG9nZXRo ZXIuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgbWFrZSBzdXBwb3J0cyB0aGUgaW5jbHVkZSBkaXJl Y3RpdmUuLi4geWVzIChHTlUgc3R5bGUpCmNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgZ2Nj IC1zdGQ9Z251MjMuLi4gZ2NjMwpjaGVja2luZyBmb3IgYXIuLi4gYXIKY2hlY2tpbmcgdGhlIGFy Y2hpdmVyIChhcikgaW50ZXJmYWNlLi4uIGFyCmNoZWNraW5nIGZvciByYW5saWIuLi4gcmFubGli CmNoZWNraW5nIHRoYXQgZ2VuZXJhdGVkIGZpbGVzIGFyZSBuZXdlciB0aGFuIGNvbmZpZ3VyZS4u LiBkb25lCmNvbmZpZ3VyZTogY3JlYXRpbmcgLi9jb25maWcuc3RhdHVzCmNvbmZpZy5zdGF0dXM6 IGNyZWF0aW5nIE1ha2VmaWxlCmNvbmZpZy5zdGF0dXM6IGV4ZWN1dGluZyBkZXBmaWxlcyBjb21t YW5kcwojW3N0ZGVycl0rIG1ha2UgYWxsCmdjYyAtc3RkPWdudTIzIC1EUEFDS0FHRV9OQU1FPVwi aW5zdHNwY1wiIC1EUEFDS0FHRV9UQVJOQU1FPVwiaW5zdHNwY1wiIC1EUEFDS0FHRV9WRVJTSU9O PVwiMS4wXCIgLURQQUNLQUdFX1NUUklORz1cImluc3RzcGNcIDEuMFwiIC1EUEFDS0FHRV9CVUdS RVBPUlQ9XCJcIiAtRFBBQ0tBR0VfVVJMPVwiXCIgLURQQUNLQUdFPVwiaW5zdHNwY1wiIC1EVkVS U0lPTj1cIjEuMFwiIC1JLiAtSS4uICAgICAtZyAtTzIgLU1UIHNvdXJjZS5vIC1NRCAtTVAgLU1G IC5kZXBzL3NvdXJjZS5UcG8gLWMgLW8gc291cmNlLm8gLi4vc291cmNlLmMKbXYgLWYgLmRlcHMv c291cmNlLlRwbyAuZGVwcy9zb3VyY2UuUG8KZ2NjIC1zdGQ9Z251MjMgIC1nIC1PMiAgIC1vIHN1 Yi9iYXNlIHNvdXJjZS5vICAKZ2NjIC1zdGQ9Z251MjMgIC1nIC1PMiAgIC1vIHN1Yi9ub2Jhc2Ug c291cmNlLm8gIApybSAtZiBzdWIvbGliYmFzZS5hCmFyIGNyIHN1Yi9saWJiYXNlLmEgc291cmNl Lm8gCnJhbmxpYiBzdWIvbGliYmFzZS5hCnJtIC1mIHN1Yi9saWJub2Jhc2UuYQphciBjciBzdWIv bGlibm9iYXNlLmEgc291cmNlLm8gCnJhbmxpYiBzdWIvbGlibm9iYXNlLmEKI1tzdGRlcnJdKyBE RVNURElSPS91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1hdAojW3N0 ZGVycl0rIGZpbGU9Li9ACiNbc3RkZXJyXSsgbWFrZSB0ZXN0LWluc3QKbWFrZVsxXTogRW50ZXJp bmcgZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL0AnCiBt a2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWF0L0At cHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLi4vc3ViL2Jhc2Uuc2ggJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1hdC9ALXByZWZpeC9mb28nCiBta2Rp ciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWF0L0AtcHJl Zml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICBzdWIvbGliYmFzZS5hICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYXQvQC1wcmVmaXgvZm9vJwog KCBjZCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWF0L0AtcHJl Zml4L2ZvbycgJiYgcmFubGliIGxpYmJhc2UuYSApCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWF0L0AtcHJlZml4L2ZvbycKICAvdXNyL2Jpbi9p bnN0YWxsIC1jIHN1Yi9iYXNlICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtYXQvQC1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1hdC9ALXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWF0L0AtcHJlZml4L2Zvby9zdWIvJwog L3Vzci9iaW4vaW5zdGFsbCAtYyAuLi9zdWIvbm9iYXNlLnNoICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYXQvQC1wcmVmaXgvZm9vL3N1Yi8nCiBta2RpciAtcCAn L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWF0L0AtcHJlZml4L2Zv bycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt YXQvQC1wcmVmaXgvZm9vL3N1YicKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICBzdWIvbGli bm9iYXNlLmEgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1hdC9A LXByZWZpeC9mb28vc3ViJwogKCBjZCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LWF0L0AtcHJlZml4L2ZvbycgJiYgcmFubGliIHN1Yi9saWJub2Jhc2UuYSApCiBt a2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWF0L0At cHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyL2Rlc3QtYXQvQC1wcmVmaXgvZm9vL3N1Yi8nCiAgL3Vzci9iaW4vaW5zdGFsbCAtYyBzdWIv bm9iYXNlICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYXQvQC1w cmVmaXgvZm9vL3N1Yi8nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9kZXN0LWF0L0AtcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0 IC4uL3N1Yi9iYXNlLmRhdCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LWF0L0AtcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL2Rlc3QtYXQvQC1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAt bSA2NDQgLi4vc3ViL2Jhc2UuaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LWF0L0AtcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtYXQvQC1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1hdC9ALXByZWZpeC9mb28vc3ViJwog L3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIC4uL3N1Yi9ub2Jhc2UuZGF0ICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYXQvQC1wcmVmaXgvZm9vL3N1YicKIG1r ZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYXQvQC1w cmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1hdC9ALXByZWZpeC9mb28vc3ViJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQg IC4uL3N1Yi9ub2Jhc2UuaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LWF0L0AtcHJlZml4L2Zvby9zdWInCm1ha2VbMV06IExlYXZpbmcgZGlyZWN0b3J5ICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL0AnCnRlc3QgICAtZiAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWF0Ly4vQC1wcmVmaXgvZm9vL3N1Yi9u b2Jhc2UuaCcKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtYXQvLi9ALXByZWZpeC9mb28vbm9iYXNlLmgnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWF0Ly4vQC1wcmVmaXgvZm9vL2Jhc2UuaCcK dGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYXQv Li9ALXByZWZpeC9mb28vc3ViL25vYmFzZS5kYXQnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWF0Ly4vQC1wcmVmaXgvZm9vL25vYmFzZS5kYXQn CnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWF0 Ly4vQC1wcmVmaXgvZm9vL2Jhc2UuZGF0Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1hdC8uL0AtcHJlZml4L2Zvby9zdWIvbm9iYXNlLnNoJwp0 ZXN0ICEgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1hdC8u L0AtcHJlZml4L2Zvby9ub2Jhc2Uuc2gnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9kZXN0LWF0Ly4vQC1wcmVmaXgvZm9vL2Jhc2Uuc2gnCnRlc3QgICAt ZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWF0Ly4vQC1wcmVm aXgvZm9vL3N1Yi9ub2Jhc2UnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LWF0Ly4vQC1wcmVmaXgvZm9vL25vYmFzZScKdGVzdCAgIC1mICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYXQvLi9ALXByZWZpeC9mb28v YmFzZScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rl c3QtYXQvLi9ALXByZWZpeC9mb28vc3ViL2xpYm5vYmFzZS5hJwp0ZXN0ICEgLWYgJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1hdC8uL0AtcHJlZml4L2Zvby9saWJu b2Jhc2UuYScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtYXQvLi9ALXByZWZpeC9mb28vbGliYmFzZS5hJwojW3N0ZGVycl0rIGRlc2NyaXB0aW9u PSdhdCBpbiBidWlsZGRpcicKI1tzdGRlcnJdKyBleHBlY3RlZF90b19mYWlsIGJ1aWxkIGF0CiNb c3RkZXJyXSsgY2FzZSAkMSBpbgojW3N0ZGVycl0rIGlzX2luX2xpc3QgYXQgc3F1b3RlIGRxdW90 ZSBicXVvdGUgc2hhcnAgZG9sbGFyIGJzbGFzaCBhbXBlcnNhbmQgbGluZWZlZWQgcXVhZHJpZ3Jh cGgwIGFfbGZfYgojW3N0ZGVycl0rIGl0ZW09YXQKI1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0r IGNhc2UgIiAkKiAiIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKb2sgNDkgLSBhdCBpbiBidWlsZGRp cgpQQVNTOiB0L2luc3RzcGMudGFwIDQ5IC0gYXQgaW4gYnVpbGRkaXIKI1tzdGRlcnJdKyBkaXJl Y3RpdmU9CiNbc3RkZXJyXSsgcmVhc29uPQojW3N0ZGVycl0rIHJlc3VsdF8gb2sgLUQgJycgLXIg JycgLS0gJ2F0IGluIGJ1aWxkZGlyJwojW3N0ZGVycl0rIHNldCAreAojW3N0ZGVycl0rIGNkIC91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIKI1tzdGRlcnJdKyBub3QgYW1fa2Vl cGluZ190ZXN0ZGlycwojW3N0ZGVycl0rIGFtX2tlZXBpbmdfdGVzdGRpcnMKI1tzdGRlcnJdKyBj YXNlICRrZWVwX3Rlc3RkaXJzIGluCiNbc3RkZXJyXSsgcmV0dXJuIDEKI1tzdGRlcnJdKyB0ZXN0 IG9rID0gb2sKI1tzdGRlcnJdKyBybV9yZl8gLi9AIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1hdAojW3N0ZGVycl0rIHRlc3QgMiAtZ3QgMAojW3N0ZGVycl0rIGNo bW9kIC1SIHUrcnd4IC4vQCAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rl c3QtYXQKI1tzdGRlcnJdKyBybSAtcmYgLi9AIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1hdAojW3N0ZGVycl0rIF9hbV9ybXJmX3N0YXR1cz0wCiNbc3RkZXJyXSsg Zm9yIF9hbV9ybXJmX3YgaW4gJyIkQCInCiNbc3RkZXJyXSsgdGVzdCAtZSAuL0AKI1tzdGRlcnJd KyBmb3IgX2FtX3JtcmZfdiBpbiAnIiRAIicKI1tzdGRlcnJdKyB0ZXN0IC1lIC91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1hdAojW3N0ZGVycl0rIHJldHVybiAwCiNb c3RkZXJyXSsgOiBGb3Igc2hlbGxzIHdpdGggYnVzdGVkICdzZXQgLWUuJwojW3N0ZGVycl0rIGZv ciB3aGVyZSBpbiBidWlsZCBkZXN0CiNbc3RkZXJyXSsgY2FzZSAkd2hlcmUgaW4KI1tzdGRlcnJd KyBidWlsZD1idWlsZC1hdAojW3N0ZGVycl0rIGRlc3Q9L3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LWF0L0AKI1tzdGRlcnJdKyBta2RpciBidWlsZC1hdAojW3N0ZGVy cl0rIGNkIGJ1aWxkLWF0CiNbc3RkZXJyXSsgcj1vawojW3N0ZGVycl0rIC4uL2NvbmZpZ3VyZSAt LXByZWZpeCAvQC1wcmVmaXgKY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbC4u LiAvdXNyL2Jpbi9pbnN0YWxsIC1jCmNoZWNraW5nIHdoZXRoZXIgc2xlZXAgc3VwcG9ydHMgZnJh Y3Rpb25hbCBzZWNvbmRzLi4uIHllcwpjaGVja2luZyBmaWxlc3lzdGVtIHRpbWVzdGFtcCByZXNv bHV0aW9uLi4uIDAuMDEKY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5l Li4uIHllcwpjaGVja2luZyBmb3IgYSByYWNlLWZyZWUgbWtkaXIgLXAuLi4gbWtkaXIgLXAKY2hl Y2tpbmcgZm9yIGdhd2suLi4gbm8KY2hlY2tpbmcgZm9yIG1hd2suLi4gbm8KY2hlY2tpbmcgZm9y IG5hd2suLi4gbm8KY2hlY2tpbmcgZm9yIGF3ay4uLiBhd2sKY2hlY2tpbmcgd2hldGhlciBtYWtl IHNldHMgJChNQUtFKS4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRzIG5lc3Rl ZCB2YXJpYWJsZXMuLi4geWVzCmNoZWNraW5nIHhhcmdzIC1uIHdvcmtzLi4uIHllcwpjaGVja2lu ZyB3aGV0aGVyIFVJRCAnNTAxJyBpcyBzdXBwb3J0ZWQgYnkgdXN0YXIgZm9ybWF0Li4uIHllcwpj aGVja2luZyB3aGV0aGVyIEdJRCAnMjAnIGlzIHN1cHBvcnRlZCBieSB1c3RhciBmb3JtYXQuLi4g eWVzCmNoZWNraW5nIGhvdyB0byBjcmVhdGUgYSB1c3RhciB0YXIgYXJjaGl2ZS4uLiBwbGFpbnRh cgpjaGVja2luZyBmb3IgZ2NjLi4uIGdjYwpjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVy IHdvcmtzLi4uIHllcwpjaGVja2luZyBmb3IgQyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxl IG5hbWUuLi4gYS5vdXQKY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcy4uLiAKY2hl Y2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nLi4uIG5vCmNoZWNraW5nIGZvciBz dWZmaXggb2Ygb2JqZWN0IGZpbGVzLi4uIG8KY2hlY2tpbmcgd2hldGhlciB0aGUgY29tcGlsZXIg c3VwcG9ydHMgR05VIEMuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgZ2NjIGFjY2VwdHMgLWcuLi4g eWVzCmNoZWNraW5nIGZvciBnY2Mgb3B0aW9uIHRvIGVuYWJsZSBDMjMgZmVhdHVyZXMuLi4gLXN0 ZD1nbnUyMwpjaGVja2luZyB3aGV0aGVyIGdjYyAtc3RkPWdudTIzIHVuZGVyc3RhbmRzIC1jIGFu ZCAtbyB0b2dldGhlci4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRzIHRoZSBp bmNsdWRlIGRpcmVjdGl2ZS4uLiB5ZXMgKEdOVSBzdHlsZSkKY2hlY2tpbmcgZGVwZW5kZW5jeSBz dHlsZSBvZiBnY2MgLXN0ZD1nbnUyMy4uLiBnY2MzCmNoZWNraW5nIGZvciBhci4uLiBhcgpjaGVj a2luZyB0aGUgYXJjaGl2ZXIgKGFyKSBpbnRlcmZhY2UuLi4gYXIKY2hlY2tpbmcgZm9yIHJhbmxp Yi4uLiByYW5saWIKY2hlY2tpbmcgdGhhdCBnZW5lcmF0ZWQgZmlsZXMgYXJlIG5ld2VyIHRoYW4g Y29uZmlndXJlLi4uIGRvbmUKY29uZmlndXJlOiBjcmVhdGluZyAuL2NvbmZpZy5zdGF0dXMKY29u ZmlnLnN0YXR1czogY3JlYXRpbmcgTWFrZWZpbGUKY29uZmlnLnN0YXR1czogZXhlY3V0aW5nIGRl cGZpbGVzIGNvbW1hbmRzCiNbc3RkZXJyXSsgbWFrZSBhbGwKZ2NjIC1zdGQ9Z251MjMgLURQQUNL QUdFX05BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdFX1RBUk5BTUU9XCJpbnN0c3BjXCIgLURQQUNL QUdFX1ZFUlNJT049XCIxLjBcIiAtRFBBQ0tBR0VfU1RSSU5HPVwiaW5zdHNwY1wgMS4wXCIgLURQ QUNLQUdFX0JVR1JFUE9SVD1cIlwiIC1EUEFDS0FHRV9VUkw9XCJcIiAtRFBBQ0tBR0U9XCJpbnN0 c3BjXCIgLURWRVJTSU9OPVwiMS4wXCIgLUkuIC1JLi4gICAgIC1nIC1PMiAtTVQgc291cmNlLm8g LU1EIC1NUCAtTUYgLmRlcHMvc291cmNlLlRwbyAtYyAtbyBzb3VyY2UubyAuLi9zb3VyY2UuYwpt diAtZiAuZGVwcy9zb3VyY2UuVHBvIC5kZXBzL3NvdXJjZS5QbwpnY2MgLXN0ZD1nbnUyMyAgLWcg LU8yICAgLW8gc3ViL2Jhc2Ugc291cmNlLm8gIApnY2MgLXN0ZD1nbnUyMyAgLWcgLU8yICAgLW8g c3ViL25vYmFzZSBzb3VyY2UubyAgCnJtIC1mIHN1Yi9saWJiYXNlLmEKYXIgY3Igc3ViL2xpYmJh c2UuYSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJiYXNlLmEKcm0gLWYgc3ViL2xpYm5vYmFzZS5h CmFyIGNyIHN1Yi9saWJub2Jhc2UuYSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJub2Jhc2UuYQoj W3N0ZGVycl0rIERFU1RESVI9L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LWF0L0AKI1tzdGRlcnJdKyBmaWxlPS4vQAojW3N0ZGVycl0rIG1ha2UgdGVzdC1pbnN0Cm1h a2VbMV06IEVudGVyaW5nIGRpcmVjdG9yeSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9idWlsZC1hdCcKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtYXQvQC9ALXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC4u L3N1Yi9iYXNlLnNoICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt YXQvQC9ALXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LWF0L0AvQC1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAt bSA2NDQgIHN1Yi9saWJiYXNlLmEgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1hdC9AL0AtcHJlZml4L2ZvbycKICggY2QgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1hdC9AL0AtcHJlZml4L2ZvbycgJiYgcmFubGliIGxpYmJhc2Uu YSApCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LWF0L0AvQC1wcmVmaXgvZm9vJwogIC91c3IvYmluL2luc3RhbGwgLWMgc3ViL2Jhc2UgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1hdC9AL0AtcHJlZml4L2ZvbycK IG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYXQv QC9ALXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9kZXN0LWF0L0AvQC1wcmVmaXgvZm9vL3N1Yi8nCiAvdXNyL2Jpbi9pbnN0YWxsIC1j IC4uL3N1Yi9ub2Jhc2Uuc2ggJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1hdC9AL0AtcHJlZml4L2Zvby9zdWIvJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1hdC9AL0AtcHJlZml4L2ZvbycKIG1rZGlyIC1wICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYXQvQC9ALXByZWZpeC9m b28vc3ViJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIHN1Yi9saWJub2Jhc2UuYSAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWF0L0AvQC1wcmVmaXgvZm9v L3N1YicKICggY2QgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1h dC9AL0AtcHJlZml4L2ZvbycgJiYgcmFubGliIHN1Yi9saWJub2Jhc2UuYSApCiBta2RpciAtcCAn L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWF0L0AvQC1wcmVmaXgv Zm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC1hdC9AL0AtcHJlZml4L2Zvby9zdWIvJwogIC91c3IvYmluL2luc3RhbGwgLWMgc3ViL25vYmFz ZSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWF0L0AvQC1wcmVm aXgvZm9vL3N1Yi8nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LWF0L0AvQC1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQg Li4vc3ViL2Jhc2UuZGF0ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rl c3QtYXQvQC9ALXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LWF0L0AvQC1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAt YyAtbSA2NDQgLi4vc3ViL2Jhc2UuaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LWF0L0AvQC1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1 dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1hdC9AL0AtcHJlZml4L2ZvbycKIG1rZGlyIC1wICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYXQvQC9ALXByZWZpeC9m b28vc3ViJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgIC4uL3N1Yi9ub2Jhc2UuZGF0ICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYXQvQC9ALXByZWZpeC9m b28vc3ViJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1hdC9AL0AtcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtYXQvQC9ALXByZWZpeC9mb28vc3ViJwogL3Vzci9iaW4vaW5z dGFsbCAtYyAtbSA2NDQgIC4uL3N1Yi9ub2Jhc2UuaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LWF0L0AvQC1wcmVmaXgvZm9vL3N1YicKbWFrZVsxXTogTGVhdmlu ZyBkaXJlY3RvcnkgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvYnVpbGQt YXQnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LWF0L0AvLi9ALXByZWZpeC9mb28vc3ViL25vYmFzZS5oJwp0ZXN0ICEgLWYgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1hdC9ALy4vQC1wcmVmaXgvZm9vL25vYmFz ZS5oJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC1hdC9ALy4vQC1wcmVmaXgvZm9vL2Jhc2UuaCcKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYXQvQC8uL0AtcHJlZml4L2Zvby9zdWIvbm9iYXNl LmRhdCcKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rl c3QtYXQvQC8uL0AtcHJlZml4L2Zvby9ub2Jhc2UuZGF0Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1hdC9ALy4vQC1wcmVmaXgvZm9vL2Jhc2Uu ZGF0Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC1hdC9ALy4vQC1wcmVmaXgvZm9vL3N1Yi9ub2Jhc2Uuc2gnCnRlc3QgISAtZiAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWF0L0AvLi9ALXByZWZpeC9mb28vbm9i YXNlLnNoJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1hdC9ALy4vQC1wcmVmaXgvZm9vL2Jhc2Uuc2gnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWF0L0AvLi9ALXByZWZpeC9mb28vc3ViL25v YmFzZScKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rl c3QtYXQvQC8uL0AtcHJlZml4L2Zvby9ub2Jhc2UnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWF0L0AvLi9ALXByZWZpeC9mb28vYmFzZScKdGVz dCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtYXQvQC8u L0AtcHJlZml4L2Zvby9zdWIvbGlibm9iYXNlLmEnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWF0L0AvLi9ALXByZWZpeC9mb28vbGlibm9iYXNl LmEnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LWF0L0AvLi9ALXByZWZpeC9mb28vbGliYmFzZS5hJwojW3N0ZGVycl0rIGRlc2NyaXB0aW9uPSdh dCBpbiBkZXN0ZGlyJwojW3N0ZGVycl0rIGV4cGVjdGVkX3RvX2ZhaWwgZGVzdCBhdAojW3N0ZGVy cl0rIGNhc2UgJDEgaW4KI1tzdGRlcnJdKyBpc19pbl9saXN0IGF0IHNxdW90ZSBkcXVvdGUgYnF1 b3RlIHNoYXJwIGRvbGxhciBsaW5lZmVlZCBhX2xmX2IKI1tzdGRlcnJdKyBpdGVtPWF0CiNbc3Rk ZXJyXSsgc2hpZnQKI1tzdGRlcnJdKyBjYXNlICIgJCogIiBpbgojW3N0ZGVycl0rIHJldHVybiAx CiNbc3RkZXJyXSsgZGlyZWN0aXZlPQojW3N0ZGVycl0rIHJlYXNvbj0KI1tzdGRlcnJdKyByZXN1 bHRfIG9rIC1EICcnIC1yICcnIC0tICdhdCBpbiBkZXN0ZGlyJwojW3N0ZGVycl0rIHNldCAreAoj W3N0ZGVycl0rIGNkIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIKb2sgNTAg LSBhdCBpbiBkZXN0ZGlyClBBU1M6IHQvaW5zdHNwYy50YXAgNTAgLSBhdCBpbiBkZXN0ZGlyCiNb c3RkZXJyXSsgbm90IGFtX2tlZXBpbmdfdGVzdGRpcnMKI1tzdGRlcnJdKyBhbV9rZWVwaW5nX3Rl c3RkaXJzCiNbc3RkZXJyXSsgY2FzZSAka2VlcF90ZXN0ZGlycyBpbgojW3N0ZGVycl0rIHJldHVy biAxCiNbc3RkZXJyXSsgdGVzdCBvayA9IG9rCiNbc3RkZXJyXSsgcm1fcmZfIGJ1aWxkLWF0IC91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1hdC9ACiNbc3RkZXJyXSsg dGVzdCAyIC1ndCAwCiNbc3RkZXJyXSsgY2htb2QgLVIgdStyd3ggYnVpbGQtYXQgL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWF0L0AKI1tzdGRlcnJdKyBybSAtcmYg YnVpbGQtYXQgL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWF0L0AK I1tzdGRlcnJdKyBfYW1fcm1yZl9zdGF0dXM9MAojW3N0ZGVycl0rIGZvciBfYW1fcm1yZl92IGlu ICciJEAiJwojW3N0ZGVycl0rIHRlc3QgLWUgYnVpbGQtYXQKI1tzdGRlcnJdKyBmb3IgX2FtX3Jt cmZfdiBpbiAnIiRAIicKI1tzdGRlcnJdKyB0ZXN0IC1lIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1hdC9ACiNbc3RkZXJyXSsgcmV0dXJuIDAKI1tzdGRlcnJdKyA6 IEZvciBzaGVsbHMgd2l0aCBidXN0ZWQgJ3NldCAtZS4nCiNbc3RkZXJyXSsgZm9yIHRlc3RfbmFt ZSBpbiAnJHRlc3RfbmFtZXNfbGlzdCcKI1tzdGRlcnJdKyBldmFsICd0ZXN0X3N0cmluZz0ke2lu c3RzcGNfX2xxYnJhY2t9JwojW3N0ZGVycl0rKyB0ZXN0X3N0cmluZz0nWycKI1tzdGRlcnJdKyB0 ZXN0ICd4WycgPSB4CiNbc3RkZXJyXSsgbWtkaXIgJy4vWycKI1tzdGRlcnJdKyBjYXNlICR0ZXN0 X3N0cmluZyBpbgojW3N0ZGVycl0rIGZvciB3aGVyZSBpbiBidWlsZCBkZXN0CiNbc3RkZXJyXSsg Y2FzZSAkd2hlcmUgaW4KI1tzdGRlcnJdKyBidWlsZD0nLi9bJwojW3N0ZGVycl0rIGRlc3Q9L3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxxYnJhY2sKI1tzdGRlcnJd KyBjZCAnLi9bJwojW3N0ZGVycl0rIHI9b2sKI1tzdGRlcnJdKyAuLi9jb25maWd1cmUgLS1wcmVm aXggJy9bLXByZWZpeCcKY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbC4uLiAv dXNyL2Jpbi9pbnN0YWxsIC1jCmNoZWNraW5nIHdoZXRoZXIgc2xlZXAgc3VwcG9ydHMgZnJhY3Rp b25hbCBzZWNvbmRzLi4uIHllcwpjaGVja2luZyBmaWxlc3lzdGVtIHRpbWVzdGFtcCByZXNvbHV0 aW9uLi4uIDAuMDEKY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lLi4u IHllcwpjaGVja2luZyBmb3IgYSByYWNlLWZyZWUgbWtkaXIgLXAuLi4gbWtkaXIgLXAKY2hlY2tp bmcgZm9yIGdhd2suLi4gbm8KY2hlY2tpbmcgZm9yIG1hd2suLi4gbm8KY2hlY2tpbmcgZm9yIG5h d2suLi4gbm8KY2hlY2tpbmcgZm9yIGF3ay4uLiBhd2sKY2hlY2tpbmcgd2hldGhlciBtYWtlIHNl dHMgJChNQUtFKS4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRzIG5lc3RlZCB2 YXJpYWJsZXMuLi4geWVzCmNoZWNraW5nIHhhcmdzIC1uIHdvcmtzLi4uIHllcwpjaGVja2luZyB3 aGV0aGVyIFVJRCAnNTAxJyBpcyBzdXBwb3J0ZWQgYnkgdXN0YXIgZm9ybWF0Li4uIHllcwpjaGVj a2luZyB3aGV0aGVyIEdJRCAnMjAnIGlzIHN1cHBvcnRlZCBieSB1c3RhciBmb3JtYXQuLi4geWVz CmNoZWNraW5nIGhvdyB0byBjcmVhdGUgYSB1c3RhciB0YXIgYXJjaGl2ZS4uLiBwbGFpbnRhcgpj aGVja2luZyBmb3IgZ2NjLi4uIGdjYwpjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdv cmtzLi4uIHllcwpjaGVja2luZyBmb3IgQyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5h bWUuLi4gYS5vdXQKY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcy4uLiAKY2hlY2tp bmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nLi4uIG5vCmNoZWNraW5nIGZvciBzdWZm aXggb2Ygb2JqZWN0IGZpbGVzLi4uIG8KY2hlY2tpbmcgd2hldGhlciB0aGUgY29tcGlsZXIgc3Vw cG9ydHMgR05VIEMuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgZ2NjIGFjY2VwdHMgLWcuLi4geWVz CmNoZWNraW5nIGZvciBnY2Mgb3B0aW9uIHRvIGVuYWJsZSBDMjMgZmVhdHVyZXMuLi4gLXN0ZD1n bnUyMwpjaGVja2luZyB3aGV0aGVyIGdjYyAtc3RkPWdudTIzIHVuZGVyc3RhbmRzIC1jIGFuZCAt byB0b2dldGhlci4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRzIHRoZSBpbmNs dWRlIGRpcmVjdGl2ZS4uLiB5ZXMgKEdOVSBzdHlsZSkKY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHls ZSBvZiBnY2MgLXN0ZD1nbnUyMy4uLiBnY2MzCmNoZWNraW5nIGZvciBhci4uLiBhcgpjaGVja2lu ZyB0aGUgYXJjaGl2ZXIgKGFyKSBpbnRlcmZhY2UuLi4gYXIKY2hlY2tpbmcgZm9yIHJhbmxpYi4u LiByYW5saWIKY2hlY2tpbmcgdGhhdCBnZW5lcmF0ZWQgZmlsZXMgYXJlIG5ld2VyIHRoYW4gY29u ZmlndXJlLi4uIGRvbmUKY29uZmlndXJlOiBjcmVhdGluZyAuL2NvbmZpZy5zdGF0dXMKY29uZmln LnN0YXR1czogY3JlYXRpbmcgTWFrZWZpbGUKY29uZmlnLnN0YXR1czogZXhlY3V0aW5nIGRlcGZp bGVzIGNvbW1hbmRzCiNbc3RkZXJyXSsgbWFrZSBhbGwKZ2NjIC1zdGQ9Z251MjMgLURQQUNLQUdF X05BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdFX1RBUk5BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdF X1ZFUlNJT049XCIxLjBcIiAtRFBBQ0tBR0VfU1RSSU5HPVwiaW5zdHNwY1wgMS4wXCIgLURQQUNL QUdFX0JVR1JFUE9SVD1cIlwiIC1EUEFDS0FHRV9VUkw9XCJcIiAtRFBBQ0tBR0U9XCJpbnN0c3Bj XCIgLURWRVJTSU9OPVwiMS4wXCIgLUkuIC1JLi4gICAgIC1nIC1PMiAtTVQgc291cmNlLm8gLU1E IC1NUCAtTUYgLmRlcHMvc291cmNlLlRwbyAtYyAtbyBzb3VyY2UubyAuLi9zb3VyY2UuYwptdiAt ZiAuZGVwcy9zb3VyY2UuVHBvIC5kZXBzL3NvdXJjZS5QbwpnY2MgLXN0ZD1nbnUyMyAgLWcgLU8y ICAgLW8gc3ViL2Jhc2Ugc291cmNlLm8gIApnY2MgLXN0ZD1nbnUyMyAgLWcgLU8yICAgLW8gc3Vi L25vYmFzZSBzb3VyY2UubyAgCnJtIC1mIHN1Yi9saWJiYXNlLmEKYXIgY3Igc3ViL2xpYmJhc2Uu YSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJiYXNlLmEKcm0gLWYgc3ViL2xpYm5vYmFzZS5hCmFy IGNyIHN1Yi9saWJub2Jhc2UuYSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJub2Jhc2UuYQojW3N0 ZGVycl0rIERFU1RESVI9L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LWxxYnJhY2sKI1tzdGRlcnJdKyBmaWxlPScuL1snCiNbc3RkZXJyXSsgbWFrZSB0ZXN0LWluc3QK bWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL1snCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LWxxYnJhY2svWy1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAuLi9z dWIvYmFzZS5zaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxx YnJhY2svWy1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1scWJyYWNrL1stcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwg LWMgLW0gNjQ0ICBzdWIvbGliYmFzZS5hICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtbHFicmFjay9bLXByZWZpeC9mb28nCiAoIGNkICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbHFicmFjay9bLXByZWZpeC9mb28nICYmIHJhbmxp YiBsaWJiYXNlLmEgKQogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1scWJyYWNrL1stcHJlZml4L2ZvbycKICAvdXNyL2Jpbi9pbnN0YWxsIC1jIHN1 Yi9iYXNlICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbHFicmFj ay9bLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9kZXN0LWxxYnJhY2svWy1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1scWJyYWNrL1stcHJlZml4L2Zvby9zdWIv JwogL3Vzci9iaW4vaW5zdGFsbCAtYyAuLi9zdWIvbm9iYXNlLnNoICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbHFicmFjay9bLXByZWZpeC9mb28vc3ViLycKIG1r ZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbHFicmFj ay9bLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9kZXN0LWxxYnJhY2svWy1wcmVmaXgvZm9vL3N1YicKIC91c3IvYmluL2luc3RhbGwg LWMgLW0gNjQ0ICBzdWIvbGlibm9iYXNlLmEgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1scWJyYWNrL1stcHJlZml4L2Zvby9zdWInCiAoIGNkICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbHFicmFjay9bLXByZWZpeC9mb28nICYm IHJhbmxpYiBzdWIvbGlibm9iYXNlLmEgKQogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9t YWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1scWJyYWNrL1stcHJlZml4L2ZvbycKIG1rZGlyIC1wICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbHFicmFjay9bLXByZWZp eC9mb28vc3ViLycKICAvdXNyL2Jpbi9pbnN0YWxsIC1jIHN1Yi9ub2Jhc2UgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1scWJyYWNrL1stcHJlZml4L2Zvby9zdWIv JwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1s cWJyYWNrL1stcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0IC4uL3N1Yi9i YXNlLmRhdCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxxYnJh Y2svWy1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1scWJyYWNrL1stcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMg LW0gNjQ0IC4uL3N1Yi9iYXNlLmggJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1scWJyYWNrL1stcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbHFicmFjay9bLXByZWZpeC9mb28nCiBta2RpciAt cCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxxYnJhY2svWy1w cmVmaXgvZm9vL3N1YicKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICAuLi9zdWIvbm9iYXNl LmRhdCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxxYnJhY2sv Wy1wcmVmaXgvZm9vL3N1YicKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL2Rlc3QtbHFicmFjay9bLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxxYnJhY2svWy1wcmVmaXgvZm9vL3N1 YicKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICAuLi9zdWIvbm9iYXNlLmggJy91c3IvbG9j YWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1scWJyYWNrL1stcHJlZml4L2Zvby9z dWInCm1ha2VbMV06IExlYXZpbmcgZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90 L2luc3RzcGMuZGlyL1snCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9kZXN0LWxxYnJhY2svLi9bLXByZWZpeC9mb28vc3ViL25vYmFzZS5oJwp0ZXN0ICEg LWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1scWJyYWNrLy4v Wy1wcmVmaXgvZm9vL25vYmFzZS5oJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1scWJyYWNrLy4vWy1wcmVmaXgvZm9vL2Jhc2UuaCcKdGVzdCAg IC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbHFicmFjay8u L1stcHJlZml4L2Zvby9zdWIvbm9iYXNlLmRhdCcKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbHFicmFjay8uL1stcHJlZml4L2Zvby9ub2Jhc2Uu ZGF0Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC1scWJyYWNrLy4vWy1wcmVmaXgvZm9vL2Jhc2UuZGF0Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1scWJyYWNrLy4vWy1wcmVmaXgvZm9vL3N1 Yi9ub2Jhc2Uuc2gnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LWxxYnJhY2svLi9bLXByZWZpeC9mb28vbm9iYXNlLnNoJwp0ZXN0ICAgLWYgJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1scWJyYWNrLy4vWy1wcmVm aXgvZm9vL2Jhc2Uuc2gnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9kZXN0LWxxYnJhY2svLi9bLXByZWZpeC9mb28vc3ViL25vYmFzZScKdGVzdCAhIC1m ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbHFicmFjay8uL1st cHJlZml4L2Zvby9ub2Jhc2UnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LWxxYnJhY2svLi9bLXByZWZpeC9mb28vYmFzZScKdGVzdCAgIC1mICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbHFicmFjay8uL1stcHJl Zml4L2Zvby9zdWIvbGlibm9iYXNlLmEnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9kZXN0LWxxYnJhY2svLi9bLXByZWZpeC9mb28vbGlibm9iYXNlLmEn CnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxx YnJhY2svLi9bLXByZWZpeC9mb28vbGliYmFzZS5hJwojW3N0ZGVycl0rIGRlc2NyaXB0aW9uPSds cWJyYWNrIGluIGJ1aWxkZGlyJwojW3N0ZGVycl0rIGV4cGVjdGVkX3RvX2ZhaWwgYnVpbGQgbHFi cmFjawojW3N0ZGVycl0rIGNhc2UgJDEgaW4KI1tzdGRlcnJdKyBpc19pbl9saXN0IGxxYnJhY2sg c3F1b3RlIGRxdW90ZSBicXVvdGUgc2hhcnAgZG9sbGFyIGJzbGFzaCBhbXBlcnNhbmQgbGluZWZl ZWQgcXVhZHJpZ3JhcGgwIGFfbGZfYgojW3N0ZGVycl0rIGl0ZW09bHFicmFjawojW3N0ZGVycl0r IHNoaWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyByZXR1cm4gMQojW3N0 ZGVycl0rIGRpcmVjdGl2ZT0KI1tzdGRlcnJdKyByZWFzb249CiNbc3RkZXJyXSsgcmVzdWx0XyBv ayAtRCAnJyAtciAnJyAtLSAnbHFicmFjayBpbiBidWlsZGRpcicKI1tzdGRlcnJdKyBzZXQgK3gK I1tzdGRlcnJdKyBjZCAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyCiNbc3Rk ZXJyXSsgbm90IGFtX2tlZXBpbmdfdGVzdGRpcnMKI1tzdGRlcnJdKyBhbV9rZWVwaW5nX3Rlc3Rk aXJzCiNbc3RkZXJyXSsgY2FzZSAka2VlcF90ZXN0ZGlycyBpbgojW3N0ZGVycl0rIHJldHVybiAx CiNbc3RkZXJyXSsgdGVzdCBvayA9IG9rCm9rIDUxIC0gbHFicmFjayBpbiBidWlsZGRpcgpQQVNT OiB0L2luc3RzcGMudGFwIDUxIC0gbHFicmFjayBpbiBidWlsZGRpcgojW3N0ZGVycl0rIHJtX3Jm XyAnLi9bJyAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbHFicmFj awojW3N0ZGVycl0rIHRlc3QgMiAtZ3QgMAojW3N0ZGVycl0rIGNobW9kIC1SIHUrcnd4ICcuL1sn IC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1scWJyYWNrCiNbc3Rk ZXJyXSsgcm0gLXJmICcuL1snIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1scWJyYWNrCiNbc3RkZXJyXSsgX2FtX3JtcmZfc3RhdHVzPTAKI1tzdGRlcnJdKyBmb3Ig X2FtX3JtcmZfdiBpbiAnIiRAIicKI1tzdGRlcnJdKyB0ZXN0IC1lICcuL1snCiNbc3RkZXJyXSsg Zm9yIF9hbV9ybXJmX3YgaW4gJyIkQCInCiNbc3RkZXJyXSsgdGVzdCAtZSAvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbHFicmFjawojW3N0ZGVycl0rIHJldHVybiAw CiNbc3RkZXJyXSsgOiBGb3Igc2hlbGxzIHdpdGggYnVzdGVkICdzZXQgLWUuJwojW3N0ZGVycl0r IGZvciB3aGVyZSBpbiBidWlsZCBkZXN0CiNbc3RkZXJyXSsgY2FzZSAkd2hlcmUgaW4KI1tzdGRl cnJdKyBidWlsZD1idWlsZC1scWJyYWNrCiNbc3RkZXJyXSsgZGVzdD0nL3Vzci9sb2NhbC9zcmMv YXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxxYnJhY2svWycKI1tzdGRlcnJdKyBta2RpciBi dWlsZC1scWJyYWNrCiNbc3RkZXJyXSsgY2QgYnVpbGQtbHFicmFjawojW3N0ZGVycl0rIHI9b2sK I1tzdGRlcnJdKyAuLi9jb25maWd1cmUgLS1wcmVmaXggJy9bLXByZWZpeCcKY2hlY2tpbmcgZm9y IGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbC4uLiAvdXNyL2Jpbi9pbnN0YWxsIC1jCmNoZWNraW5n IHdoZXRoZXIgc2xlZXAgc3VwcG9ydHMgZnJhY3Rpb25hbCBzZWNvbmRzLi4uIHllcwpjaGVja2lu ZyBmaWxlc3lzdGVtIHRpbWVzdGFtcCByZXNvbHV0aW9uLi4uIDAuMDEKY2hlY2tpbmcgd2hldGhl ciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lLi4uIHllcwpjaGVja2luZyBmb3IgYSByYWNlLWZy ZWUgbWtkaXIgLXAuLi4gbWtkaXIgLXAKY2hlY2tpbmcgZm9yIGdhd2suLi4gbm8KY2hlY2tpbmcg Zm9yIG1hd2suLi4gbm8KY2hlY2tpbmcgZm9yIG5hd2suLi4gbm8KY2hlY2tpbmcgZm9yIGF3ay4u LiBhd2sKY2hlY2tpbmcgd2hldGhlciBtYWtlIHNldHMgJChNQUtFKS4uLiB5ZXMKY2hlY2tpbmcg d2hldGhlciBtYWtlIHN1cHBvcnRzIG5lc3RlZCB2YXJpYWJsZXMuLi4geWVzCmNoZWNraW5nIHhh cmdzIC1uIHdvcmtzLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIFVJRCAnNTAxJyBpcyBzdXBwb3J0 ZWQgYnkgdXN0YXIgZm9ybWF0Li4uIHllcwpjaGVja2luZyB3aGV0aGVyIEdJRCAnMjAnIGlzIHN1 cHBvcnRlZCBieSB1c3RhciBmb3JtYXQuLi4geWVzCmNoZWNraW5nIGhvdyB0byBjcmVhdGUgYSB1 c3RhciB0YXIgYXJjaGl2ZS4uLiBwbGFpbnRhcgpjaGVja2luZyBmb3IgZ2NjLi4uIGdjYwpjaGVj a2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdvcmtzLi4uIHllcwpjaGVja2luZyBmb3IgQyBj b21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUuLi4gYS5vdXQKY2hlY2tpbmcgZm9yIHN1 ZmZpeCBvZiBleGVjdXRhYmxlcy4uLiAKY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29t cGlsaW5nLi4uIG5vCmNoZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzLi4uIG8KY2hl Y2tpbmcgd2hldGhlciB0aGUgY29tcGlsZXIgc3VwcG9ydHMgR05VIEMuLi4geWVzCmNoZWNraW5n IHdoZXRoZXIgZ2NjIGFjY2VwdHMgLWcuLi4geWVzCmNoZWNraW5nIGZvciBnY2Mgb3B0aW9uIHRv IGVuYWJsZSBDMjMgZmVhdHVyZXMuLi4gLXN0ZD1nbnUyMwpjaGVja2luZyB3aGV0aGVyIGdjYyAt c3RkPWdudTIzIHVuZGVyc3RhbmRzIC1jIGFuZCAtbyB0b2dldGhlci4uLiB5ZXMKY2hlY2tpbmcg d2hldGhlciBtYWtlIHN1cHBvcnRzIHRoZSBpbmNsdWRlIGRpcmVjdGl2ZS4uLiB5ZXMgKEdOVSBz dHlsZSkKY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiBnY2MgLXN0ZD1nbnUyMy4uLiBnY2Mz CmNoZWNraW5nIGZvciBhci4uLiBhcgpjaGVja2luZyB0aGUgYXJjaGl2ZXIgKGFyKSBpbnRlcmZh Y2UuLi4gYXIKY2hlY2tpbmcgZm9yIHJhbmxpYi4uLiByYW5saWIKY2hlY2tpbmcgdGhhdCBnZW5l cmF0ZWQgZmlsZXMgYXJlIG5ld2VyIHRoYW4gY29uZmlndXJlLi4uIGRvbmUKY29uZmlndXJlOiBj cmVhdGluZyAuL2NvbmZpZy5zdGF0dXMKY29uZmlnLnN0YXR1czogY3JlYXRpbmcgTWFrZWZpbGUK Y29uZmlnLnN0YXR1czogZXhlY3V0aW5nIGRlcGZpbGVzIGNvbW1hbmRzCiNbc3RkZXJyXSsgbWFr ZSBhbGwKZ2NjIC1zdGQ9Z251MjMgLURQQUNLQUdFX05BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdF X1RBUk5BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdFX1ZFUlNJT049XCIxLjBcIiAtRFBBQ0tBR0Vf U1RSSU5HPVwiaW5zdHNwY1wgMS4wXCIgLURQQUNLQUdFX0JVR1JFUE9SVD1cIlwiIC1EUEFDS0FH RV9VUkw9XCJcIiAtRFBBQ0tBR0U9XCJpbnN0c3BjXCIgLURWRVJTSU9OPVwiMS4wXCIgLUkuIC1J Li4gICAgIC1nIC1PMiAtTVQgc291cmNlLm8gLU1EIC1NUCAtTUYgLmRlcHMvc291cmNlLlRwbyAt YyAtbyBzb3VyY2UubyAuLi9zb3VyY2UuYwptdiAtZiAuZGVwcy9zb3VyY2UuVHBvIC5kZXBzL3Nv dXJjZS5QbwpnY2MgLXN0ZD1nbnUyMyAgLWcgLU8yICAgLW8gc3ViL2Jhc2Ugc291cmNlLm8gIApn Y2MgLXN0ZD1nbnUyMyAgLWcgLU8yICAgLW8gc3ViL25vYmFzZSBzb3VyY2UubyAgCnJtIC1mIHN1 Yi9saWJiYXNlLmEKYXIgY3Igc3ViL2xpYmJhc2UuYSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJi YXNlLmEKcm0gLWYgc3ViL2xpYm5vYmFzZS5hCmFyIGNyIHN1Yi9saWJub2Jhc2UuYSBzb3VyY2Uu byAKcmFubGliIHN1Yi9saWJub2Jhc2UuYQojW3N0ZGVycl0rIERFU1RESVI9Jy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1scWJyYWNrL1snCiNbc3RkZXJyXSsgZmls ZT0nLi9bJwojW3N0ZGVycl0rIG1ha2UgdGVzdC1pbnN0Cm1ha2VbMV06IEVudGVyaW5nIGRpcmVj dG9yeSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9idWlsZC1scWJyYWNr JwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1s cWJyYWNrL1svWy1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAuLi9zdWIvYmFzZS5z aCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxxYnJhY2svWy9b LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LWxxYnJhY2svWy9bLXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1t IDY0NCAgc3ViL2xpYmJhc2UuYSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LWxxYnJhY2svWy9bLXByZWZpeC9mb28nCiAoIGNkICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbHFicmFjay9bL1stcHJlZml4L2ZvbycgJiYgcmFubGli IGxpYmJhc2UuYSApCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LWxxYnJhY2svWy9bLXByZWZpeC9mb28nCiAgL3Vzci9iaW4vaW5zdGFsbCAtYyBz dWIvYmFzZSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxxYnJh Y2svWy9bLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LWxxYnJhY2svWy9bLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxxYnJhY2svWy9bLXByZWZpeC9m b28vc3ViLycKIC91c3IvYmluL2luc3RhbGwgLWMgLi4vc3ViL25vYmFzZS5zaCAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxxYnJhY2svWy9bLXByZWZpeC9mb28v c3ViLycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rl c3QtbHFicmFjay9bL1stcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbHFicmFjay9bL1stcHJlZml4L2Zvby9zdWInCiAvdXNy L2Jpbi9pbnN0YWxsIC1jIC1tIDY0NCAgc3ViL2xpYm5vYmFzZS5hICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbHFicmFjay9bL1stcHJlZml4L2Zvby9zdWInCiAo IGNkICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbHFicmFjay9b L1stcHJlZml4L2ZvbycgJiYgcmFubGliIHN1Yi9saWJub2Jhc2UuYSApCiBta2RpciAtcCAnL3Vz ci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxxYnJhY2svWy9bLXByZWZp eC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LWxxYnJhY2svWy9bLXByZWZpeC9mb28vc3ViLycKICAvdXNyL2Jpbi9pbnN0YWxsIC1jIHN1 Yi9ub2Jhc2UgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1scWJy YWNrL1svWy1wcmVmaXgvZm9vL3N1Yi8nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9kZXN0LWxxYnJhY2svWy9bLXByZWZpeC9mb28nCiAvdXNyL2Jpbi9p bnN0YWxsIC1jIC1tIDY0NCAuLi9zdWIvYmFzZS5kYXQgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1scWJyYWNrL1svWy1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91 c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1scWJyYWNrL1svWy1wcmVm aXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgLi4vc3ViL2Jhc2UuaCAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxxYnJhY2svWy9bLXByZWZpeC9m b28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LWxxYnJhY2svWy9bLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9kZXN0LWxxYnJhY2svWy9bLXByZWZpeC9mb28vc3ViJwogL3Vzci9i aW4vaW5zdGFsbCAtYyAtbSA2NDQgIC4uL3N1Yi9ub2Jhc2UuZGF0ICcvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbHFicmFjay9bL1stcHJlZml4L2Zvby9zdWInCiBt a2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxxYnJh Y2svWy9bLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9p bnN0c3BjLmRpci9kZXN0LWxxYnJhY2svWy9bLXByZWZpeC9mb28vc3ViJwogL3Vzci9iaW4vaW5z dGFsbCAtYyAtbSA2NDQgIC4uL3N1Yi9ub2Jhc2UuaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LWxxYnJhY2svWy9bLXByZWZpeC9mb28vc3ViJwptYWtlWzFdOiBM ZWF2aW5nIGRpcmVjdG9yeSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9i dWlsZC1scWJyYWNrJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1scWJyYWNrL1svLi9bLXByZWZpeC9mb28vc3ViL25vYmFzZS5oJwp0ZXN0ICEg LWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1scWJyYWNrL1sv Li9bLXByZWZpeC9mb28vbm9iYXNlLmgnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9kZXN0LWxxYnJhY2svWy8uL1stcHJlZml4L2Zvby9iYXNlLmgnCnRl c3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxxYnJh Y2svWy8uL1stcHJlZml4L2Zvby9zdWIvbm9iYXNlLmRhdCcKdGVzdCAhIC1mICcvdXNyL2xvY2Fs L3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbHFicmFjay9bLy4vWy1wcmVmaXgvZm9v L25vYmFzZS5kYXQnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LWxxYnJhY2svWy8uL1stcHJlZml4L2Zvby9iYXNlLmRhdCcKdGVzdCAgIC1mICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbHFicmFjay9bLy4vWy1w cmVmaXgvZm9vL3N1Yi9ub2Jhc2Uuc2gnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21h a2UvdC9pbnN0c3BjLmRpci9kZXN0LWxxYnJhY2svWy8uL1stcHJlZml4L2Zvby9ub2Jhc2Uuc2gn CnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxx YnJhY2svWy8uL1stcHJlZml4L2Zvby9iYXNlLnNoJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3Jj L2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1scWJyYWNrL1svLi9bLXByZWZpeC9mb28vc3Vi L25vYmFzZScKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGly L2Rlc3QtbHFicmFjay9bLy4vWy1wcmVmaXgvZm9vL25vYmFzZScKdGVzdCAgIC1mICcvdXNyL2xv Y2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbHFicmFjay9bLy4vWy1wcmVmaXgv Zm9vL2Jhc2UnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LWxxYnJhY2svWy8uL1stcHJlZml4L2Zvby9zdWIvbGlibm9iYXNlLmEnCnRlc3QgISAt ZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxxYnJhY2svWy8u L1stcHJlZml4L2Zvby9saWJub2Jhc2UuYScKdGVzdCAgIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtbHFicmFjay9bLy4vWy1wcmVmaXgvZm9vL2xpYmJhc2Uu YScKI1tzdGRlcnJdKyBkZXNjcmlwdGlvbj0nbHFicmFjayBpbiBkZXN0ZGlyJwojW3N0ZGVycl0r IGV4cGVjdGVkX3RvX2ZhaWwgZGVzdCBscWJyYWNrCiNbc3RkZXJyXSsgY2FzZSAkMSBpbgojW3N0 ZGVycl0rIGlzX2luX2xpc3QgbHFicmFjayBzcXVvdGUgZHF1b3RlIGJxdW90ZSBzaGFycCBkb2xs YXIgbGluZWZlZWQgYV9sZl9iCm9rIDUyIC0gbHFicmFjayBpbiBkZXN0ZGlyClBBU1M6IHQvaW5z dHNwYy50YXAgNTIgLSBscWJyYWNrIGluIGRlc3RkaXIKI1tzdGRlcnJdKyBpdGVtPWxxYnJhY2sK I1tzdGRlcnJdKyBzaGlmdAojW3N0ZGVycl0rIGNhc2UgIiAkKiAiIGluCiNbc3RkZXJyXSsgcmV0 dXJuIDEKI1tzdGRlcnJdKyBkaXJlY3RpdmU9CiNbc3RkZXJyXSsgcmVhc29uPQojW3N0ZGVycl0r IHJlc3VsdF8gb2sgLUQgJycgLXIgJycgLS0gJ2xxYnJhY2sgaW4gZGVzdGRpcicKI1tzdGRlcnJd KyBzZXQgK3gKI1tzdGRlcnJdKyBjZCAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyCiNbc3RkZXJyXSsgbm90IGFtX2tlZXBpbmdfdGVzdGRpcnMKI1tzdGRlcnJdKyBhbV9rZWVw aW5nX3Rlc3RkaXJzCiNbc3RkZXJyXSsgY2FzZSAka2VlcF90ZXN0ZGlycyBpbgojW3N0ZGVycl0r IHJldHVybiAxCiNbc3RkZXJyXSsgdGVzdCBvayA9IG9rCiNbc3RkZXJyXSsgcm1fcmZfIGJ1aWxk LWxxYnJhY2sgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1scWJy YWNrL1snCiNbc3RkZXJyXSsgdGVzdCAyIC1ndCAwCiNbc3RkZXJyXSsgY2htb2QgLVIgdStyd3gg YnVpbGQtbHFicmFjayAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LWxxYnJhY2svWycKI1tzdGRlcnJdKyBybSAtcmYgYnVpbGQtbHFicmFjayAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LWxxYnJhY2svWycKI1tzdGRlcnJdKyBfYW1f cm1yZl9zdGF0dXM9MAojW3N0ZGVycl0rIGZvciBfYW1fcm1yZl92IGluICciJEAiJwojW3N0ZGVy cl0rIHRlc3QgLWUgYnVpbGQtbHFicmFjawojW3N0ZGVycl0rIGZvciBfYW1fcm1yZl92IGluICci JEAiJwojW3N0ZGVycl0rIHRlc3QgLWUgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1scWJyYWNrL1snCiNbc3RkZXJyXSsgcmV0dXJuIDAKI1tzdGRlcnJdKyA6IEZv ciBzaGVsbHMgd2l0aCBidXN0ZWQgJ3NldCAtZS4nCiNbc3RkZXJyXSsgZm9yIHRlc3RfbmFtZSBp biAnJHRlc3RfbmFtZXNfbGlzdCcKI1tzdGRlcnJdKyBldmFsICd0ZXN0X3N0cmluZz0ke2luc3Rz cGNfX3JxYnJhY2t9JwojW3N0ZGVycl0rKyB0ZXN0X3N0cmluZz0nXScKI1tzdGRlcnJdKyB0ZXN0 ICd4XScgPSB4CiNbc3RkZXJyXSsgbWtkaXIgJy4vXScKI1tzdGRlcnJdKyBjYXNlICR0ZXN0X3N0 cmluZyBpbgojW3N0ZGVycl0rIGZvciB3aGVyZSBpbiBidWlsZCBkZXN0CiNbc3RkZXJyXSsgY2Fz ZSAkd2hlcmUgaW4KI1tzdGRlcnJdKyBidWlsZD0nLi9dJwojW3N0ZGVycl0rIGRlc3Q9L3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJxYnJhY2sKI1tzdGRlcnJdKyBj ZCAnLi9dJwojW3N0ZGVycl0rIHI9b2sKI1tzdGRlcnJdKyAuLi9jb25maWd1cmUgLS1wcmVmaXgg Jy9dLXByZWZpeCcKY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbC4uLiAvdXNy L2Jpbi9pbnN0YWxsIC1jCmNoZWNraW5nIHdoZXRoZXIgc2xlZXAgc3VwcG9ydHMgZnJhY3Rpb25h bCBzZWNvbmRzLi4uIHllcwpjaGVja2luZyBmaWxlc3lzdGVtIHRpbWVzdGFtcCByZXNvbHV0aW9u Li4uIDAuMDEKY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lLi4uIHll cwpjaGVja2luZyBmb3IgYSByYWNlLWZyZWUgbWtkaXIgLXAuLi4gbWtkaXIgLXAKY2hlY2tpbmcg Zm9yIGdhd2suLi4gbm8KY2hlY2tpbmcgZm9yIG1hd2suLi4gbm8KY2hlY2tpbmcgZm9yIG5hd2su Li4gbm8KY2hlY2tpbmcgZm9yIGF3ay4uLiBhd2sKY2hlY2tpbmcgd2hldGhlciBtYWtlIHNldHMg JChNQUtFKS4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRzIG5lc3RlZCB2YXJp YWJsZXMuLi4geWVzCmNoZWNraW5nIHhhcmdzIC1uIHdvcmtzLi4uIHllcwpjaGVja2luZyB3aGV0 aGVyIFVJRCAnNTAxJyBpcyBzdXBwb3J0ZWQgYnkgdXN0YXIgZm9ybWF0Li4uIHllcwpjaGVja2lu ZyB3aGV0aGVyIEdJRCAnMjAnIGlzIHN1cHBvcnRlZCBieSB1c3RhciBmb3JtYXQuLi4geWVzCmNo ZWNraW5nIGhvdyB0byBjcmVhdGUgYSB1c3RhciB0YXIgYXJjaGl2ZS4uLiBwbGFpbnRhcgpjaGVj a2luZyBmb3IgZ2NjLi4uIGdjYwpjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdvcmtz Li4uIHllcwpjaGVja2luZyBmb3IgQyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUu Li4gYS5vdXQKY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcy4uLiAKY2hlY2tpbmcg d2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nLi4uIG5vCmNoZWNraW5nIGZvciBzdWZmaXgg b2Ygb2JqZWN0IGZpbGVzLi4uIG8KY2hlY2tpbmcgd2hldGhlciB0aGUgY29tcGlsZXIgc3VwcG9y dHMgR05VIEMuLi4geWVzCmNoZWNraW5nIHdoZXRoZXIgZ2NjIGFjY2VwdHMgLWcuLi4geWVzCmNo ZWNraW5nIGZvciBnY2Mgb3B0aW9uIHRvIGVuYWJsZSBDMjMgZmVhdHVyZXMuLi4gLXN0ZD1nbnUy MwpjaGVja2luZyB3aGV0aGVyIGdjYyAtc3RkPWdudTIzIHVuZGVyc3RhbmRzIC1jIGFuZCAtbyB0 b2dldGhlci4uLiB5ZXMKY2hlY2tpbmcgd2hldGhlciBtYWtlIHN1cHBvcnRzIHRoZSBpbmNsdWRl IGRpcmVjdGl2ZS4uLiB5ZXMgKEdOVSBzdHlsZSkKY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBv ZiBnY2MgLXN0ZD1nbnUyMy4uLiBnY2MzCmNoZWNraW5nIGZvciBhci4uLiBhcgpjaGVja2luZyB0 aGUgYXJjaGl2ZXIgKGFyKSBpbnRlcmZhY2UuLi4gYXIKY2hlY2tpbmcgZm9yIHJhbmxpYi4uLiBy YW5saWIKY2hlY2tpbmcgdGhhdCBnZW5lcmF0ZWQgZmlsZXMgYXJlIG5ld2VyIHRoYW4gY29uZmln dXJlLi4uIGRvbmUKY29uZmlndXJlOiBjcmVhdGluZyAuL2NvbmZpZy5zdGF0dXMKY29uZmlnLnN0 YXR1czogY3JlYXRpbmcgTWFrZWZpbGUKY29uZmlnLnN0YXR1czogZXhlY3V0aW5nIGRlcGZpbGVz IGNvbW1hbmRzCiNbc3RkZXJyXSsgbWFrZSBhbGwKZ2NjIC1zdGQ9Z251MjMgLURQQUNLQUdFX05B TUU9XCJpbnN0c3BjXCIgLURQQUNLQUdFX1RBUk5BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdFX1ZF UlNJT049XCIxLjBcIiAtRFBBQ0tBR0VfU1RSSU5HPVwiaW5zdHNwY1wgMS4wXCIgLURQQUNLQUdF X0JVR1JFUE9SVD1cIlwiIC1EUEFDS0FHRV9VUkw9XCJcIiAtRFBBQ0tBR0U9XCJpbnN0c3BjXCIg LURWRVJTSU9OPVwiMS4wXCIgLUkuIC1JLi4gICAgIC1nIC1PMiAtTVQgc291cmNlLm8gLU1EIC1N UCAtTUYgLmRlcHMvc291cmNlLlRwbyAtYyAtbyBzb3VyY2UubyAuLi9zb3VyY2UuYwptdiAtZiAu ZGVwcy9zb3VyY2UuVHBvIC5kZXBzL3NvdXJjZS5QbwpnY2MgLXN0ZD1nbnUyMyAgLWcgLU8yICAg LW8gc3ViL2Jhc2Ugc291cmNlLm8gIApnY2MgLXN0ZD1nbnUyMyAgLWcgLU8yICAgLW8gc3ViL25v YmFzZSBzb3VyY2UubyAgCnJtIC1mIHN1Yi9saWJiYXNlLmEKYXIgY3Igc3ViL2xpYmJhc2UuYSBz b3VyY2UubyAKcmFubGliIHN1Yi9saWJiYXNlLmEKcm0gLWYgc3ViL2xpYm5vYmFzZS5hCmFyIGNy IHN1Yi9saWJub2Jhc2UuYSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJub2Jhc2UuYQojW3N0ZGVy cl0rIERFU1RESVI9L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJx YnJhY2sKI1tzdGRlcnJdKyBmaWxlPScuL10nCiNbc3RkZXJyXSsgbWFrZSB0ZXN0LWluc3QKbWFr ZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL10nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LXJxYnJhY2svXS1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAuLi9zdWIv YmFzZS5zaCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJxYnJh Y2svXS1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5z dHNwYy5kaXIvZGVzdC1ycWJyYWNrL10tcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMg LW0gNjQ0ICBzdWIvbGliYmFzZS5hICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMu ZGlyL2Rlc3QtcnFicmFjay9dLXByZWZpeC9mb28nCiAoIGNkICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcnFicmFjay9dLXByZWZpeC9mb28nICYmIHJhbmxpYiBs aWJiYXNlLmEgKQogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5k aXIvZGVzdC1ycWJyYWNrL10tcHJlZml4L2ZvbycKICAvdXNyL2Jpbi9pbnN0YWxsIC1jIHN1Yi9i YXNlICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcnFicmFjay9d LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LXJxYnJhY2svXS1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3Jj L2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1ycWJyYWNrL10tcHJlZml4L2Zvby9zdWIvJwog L3Vzci9iaW4vaW5zdGFsbCAtYyAuLi9zdWIvbm9iYXNlLnNoICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcnFicmFjay9dLXByZWZpeC9mb28vc3ViLycKIG1rZGly IC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcnFicmFjay9d LXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LXJxYnJhY2svXS1wcmVmaXgvZm9vL3N1YicKIC91c3IvYmluL2luc3RhbGwgLWMg LW0gNjQ0ICBzdWIvbGlibm9iYXNlLmEgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1ycWJyYWNrL10tcHJlZml4L2Zvby9zdWInCiAoIGNkICcvdXNyL2xvY2FsL3Ny Yy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcnFicmFjay9dLXByZWZpeC9mb28nICYmIHJh bmxpYiBzdWIvbGlibm9iYXNlLmEgKQogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtl L3QvaW5zdHNwYy5kaXIvZGVzdC1ycWJyYWNrL10tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcnFicmFjay9dLXByZWZpeC9m b28vc3ViLycKICAvdXNyL2Jpbi9pbnN0YWxsIC1jIHN1Yi9ub2Jhc2UgJy91c3IvbG9jYWwvc3Jj L2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1ycWJyYWNrL10tcHJlZml4L2Zvby9zdWIvJwog bWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1ycWJy YWNrL10tcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0IC4uL3N1Yi9iYXNl LmRhdCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJxYnJhY2sv XS1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNw Yy5kaXIvZGVzdC1ycWJyYWNrL10tcHJlZml4L2ZvbycKIC91c3IvYmluL2luc3RhbGwgLWMgLW0g NjQ0IC4uL3N1Yi9iYXNlLmggJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIv ZGVzdC1ycWJyYWNrL10tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcnFicmFjay9dLXByZWZpeC9mb28nCiBta2RpciAtcCAn L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJxYnJhY2svXS1wcmVm aXgvZm9vL3N1YicKIC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICAuLi9zdWIvbm9iYXNlLmRh dCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJxYnJhY2svXS1w cmVmaXgvZm9vL3N1YicKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3Rz cGMuZGlyL2Rlc3QtcnFicmFjay9dLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJxYnJhY2svXS1wcmVmaXgvZm9vL3N1YicK IC91c3IvYmluL2luc3RhbGwgLWMgLW0gNjQ0ICAuLi9zdWIvbm9iYXNlLmggJy91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1ycWJyYWNrL10tcHJlZml4L2Zvby9zdWIn Cm1ha2VbMV06IExlYXZpbmcgZGlyZWN0b3J5ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2lu c3RzcGMuZGlyL10nCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LXJxYnJhY2svLi9dLXByZWZpeC9mb28vc3ViL25vYmFzZS5oJwp0ZXN0ICEgLWYg Jy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1ycWJyYWNrLy4vXS1w cmVmaXgvZm9vL25vYmFzZS5oJwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1ycWJyYWNrLy4vXS1wcmVmaXgvZm9vL2Jhc2UuaCcKdGVzdCAgIC1m ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcnFicmFjay8uL10t cHJlZml4L2Zvby9zdWIvbm9iYXNlLmRhdCcKdGVzdCAhIC1mICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcnFicmFjay8uL10tcHJlZml4L2Zvby9ub2Jhc2UuZGF0 Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1y cWJyYWNrLy4vXS1wcmVmaXgvZm9vL2Jhc2UuZGF0Jwp0ZXN0ICAgLWYgJy91c3IvbG9jYWwvc3Jj L2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1ycWJyYWNrLy4vXS1wcmVmaXgvZm9vL3N1Yi9u b2Jhc2Uuc2gnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LXJxYnJhY2svLi9dLXByZWZpeC9mb28vbm9iYXNlLnNoJwp0ZXN0ICAgLWYgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1ycWJyYWNrLy4vXS1wcmVmaXgv Zm9vL2Jhc2Uuc2gnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3Bj LmRpci9kZXN0LXJxYnJhY2svLi9dLXByZWZpeC9mb28vc3ViL25vYmFzZScKdGVzdCAhIC1mICcv dXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcnFicmFjay8uL10tcHJl Zml4L2Zvby9ub2Jhc2UnCnRlc3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9kZXN0LXJxYnJhY2svLi9dLXByZWZpeC9mb28vYmFzZScKdGVzdCAgIC1mICcvdXNy L2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcnFicmFjay8uL10tcHJlZml4 L2Zvby9zdWIvbGlibm9iYXNlLmEnCnRlc3QgISAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXJxYnJhY2svLi9dLXByZWZpeC9mb28vbGlibm9iYXNlLmEnCnRl c3QgICAtZiAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJxYnJh Y2svLi9dLXByZWZpeC9mb28vbGliYmFzZS5hJwojW3N0ZGVycl0rIGRlc2NyaXB0aW9uPSdycWJy YWNrIGluIGJ1aWxkZGlyJwojW3N0ZGVycl0rIGV4cGVjdGVkX3RvX2ZhaWwgYnVpbGQgcnFicmFj awojW3N0ZGVycl0rIGNhc2UgJDEgaW4KI1tzdGRlcnJdKyBpc19pbl9saXN0IHJxYnJhY2sgc3F1 b3RlIGRxdW90ZSBicXVvdGUgc2hhcnAgZG9sbGFyIGJzbGFzaCBhbXBlcnNhbmQgbGluZWZlZWQg cXVhZHJpZ3JhcGgwIGFfbGZfYgojW3N0ZGVycl0rIGl0ZW09cnFicmFjawojW3N0ZGVycl0rIHNo aWZ0CiNbc3RkZXJyXSsgY2FzZSAiICQqICIgaW4KI1tzdGRlcnJdKyByZXR1cm4gMQojW3N0ZGVy cl0rIGRpcmVjdGl2ZT0KI1tzdGRlcnJdKyByZWFzb249CiNbc3RkZXJyXSsgcmVzdWx0XyBvayAt RCAnJyAtciAnJyAtLSAncnFicmFjayBpbiBidWlsZGRpcicKI1tzdGRlcnJdKyBzZXQgK3gKI1tz dGRlcnJdKyBjZCAvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyCiNbc3RkZXJy XSsgbm90IGFtX2tlZXBpbmdfdGVzdGRpcnMKI1tzdGRlcnJdKyBhbV9rZWVwaW5nX3Rlc3RkaXJz CiNbc3RkZXJyXSsgY2FzZSAka2VlcF90ZXN0ZGlycyBpbgojW3N0ZGVycl0rIHJldHVybiAxCiNb c3RkZXJyXSsgdGVzdCBvayA9IG9rCiNbc3RkZXJyXSsgcm1fcmZfICcuL10nIC91c3IvbG9jYWwv c3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1ycWJyYWNrCiNbc3RkZXJyXSsgdGVzdCAy IC1ndCAwCiNbc3RkZXJyXSsgY2htb2QgLVIgdStyd3ggJy4vXScgL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJxYnJhY2sKb2sgNTMgLSBycWJyYWNrIGluIGJ1aWxk ZGlyClBBU1M6IHQvaW5zdHNwYy50YXAgNTMgLSBycWJyYWNrIGluIGJ1aWxkZGlyCiNbc3RkZXJy XSsgcm0gLXJmICcuL10nIC91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVz dC1ycWJyYWNrCiNbc3RkZXJyXSsgX2FtX3JtcmZfc3RhdHVzPTAKI1tzdGRlcnJdKyBmb3IgX2Ft X3JtcmZfdiBpbiAnIiRAIicKI1tzdGRlcnJdKyB0ZXN0IC1lICcuL10nCiNbc3RkZXJyXSsgZm9y IF9hbV9ybXJmX3YgaW4gJyIkQCInCiNbc3RkZXJyXSsgdGVzdCAtZSAvdXNyL2xvY2FsL3NyYy9h dXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcnFicmFjawojW3N0ZGVycl0rIHJldHVybiAwCiNb c3RkZXJyXSsgOiBGb3Igc2hlbGxzIHdpdGggYnVzdGVkICdzZXQgLWUuJwojW3N0ZGVycl0rIGZv ciB3aGVyZSBpbiBidWlsZCBkZXN0CiNbc3RkZXJyXSsgY2FzZSAkd2hlcmUgaW4KI1tzdGRlcnJd KyBidWlsZD1idWlsZC1ycWJyYWNrCiNbc3RkZXJyXSsgZGVzdD0nL3Vzci9sb2NhbC9zcmMvYXV0 b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJxYnJhY2svXScKI1tzdGRlcnJdKyBta2RpciBidWls ZC1ycWJyYWNrCiNbc3RkZXJyXSsgY2QgYnVpbGQtcnFicmFjawojW3N0ZGVycl0rIHI9b2sKI1tz dGRlcnJdKyAuLi9jb25maWd1cmUgLS1wcmVmaXggJy9dLXByZWZpeCcKY2hlY2tpbmcgZm9yIGEg QlNELWNvbXBhdGlibGUgaW5zdGFsbC4uLiAvdXNyL2Jpbi9pbnN0YWxsIC1jCmNoZWNraW5nIHdo ZXRoZXIgc2xlZXAgc3VwcG9ydHMgZnJhY3Rpb25hbCBzZWNvbmRzLi4uIHllcwpjaGVja2luZyBm aWxlc3lzdGVtIHRpbWVzdGFtcCByZXNvbHV0aW9uLi4uIDAuMDEKY2hlY2tpbmcgd2hldGhlciBi dWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lLi4uIHllcwpjaGVja2luZyBmb3IgYSByYWNlLWZyZWUg bWtkaXIgLXAuLi4gbWtkaXIgLXAKY2hlY2tpbmcgZm9yIGdhd2suLi4gbm8KY2hlY2tpbmcgZm9y IG1hd2suLi4gbm8KY2hlY2tpbmcgZm9yIG5hd2suLi4gbm8KY2hlY2tpbmcgZm9yIGF3ay4uLiBh d2sKY2hlY2tpbmcgd2hldGhlciBtYWtlIHNldHMgJChNQUtFKS4uLiB5ZXMKY2hlY2tpbmcgd2hl dGhlciBtYWtlIHN1cHBvcnRzIG5lc3RlZCB2YXJpYWJsZXMuLi4geWVzCmNoZWNraW5nIHhhcmdz IC1uIHdvcmtzLi4uIHllcwpjaGVja2luZyB3aGV0aGVyIFVJRCAnNTAxJyBpcyBzdXBwb3J0ZWQg YnkgdXN0YXIgZm9ybWF0Li4uIHllcwpjaGVja2luZyB3aGV0aGVyIEdJRCAnMjAnIGlzIHN1cHBv cnRlZCBieSB1c3RhciBmb3JtYXQuLi4geWVzCmNoZWNraW5nIGhvdyB0byBjcmVhdGUgYSB1c3Rh ciB0YXIgYXJjaGl2ZS4uLiBwbGFpbnRhcgpjaGVja2luZyBmb3IgZ2NjLi4uIGdjYwpjaGVja2lu ZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdvcmtzLi4uIHllcwpjaGVja2luZyBmb3IgQyBjb21w aWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUuLi4gYS5vdXQKY2hlY2tpbmcgZm9yIHN1ZmZp eCBvZiBleGVjdXRhYmxlcy4uLiAKY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGls aW5nLi4uIG5vCmNoZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzLi4uIG8KY2hlY2tp bmcgd2hldGhlciB0aGUgY29tcGlsZXIgc3VwcG9ydHMgR05VIEMuLi4geWVzCmNoZWNraW5nIHdo ZXRoZXIgZ2NjIGFjY2VwdHMgLWcuLi4geWVzCmNoZWNraW5nIGZvciBnY2Mgb3B0aW9uIHRvIGVu YWJsZSBDMjMgZmVhdHVyZXMuLi4gLXN0ZD1nbnUyMwpjaGVja2luZyB3aGV0aGVyIGdjYyAtc3Rk PWdudTIzIHVuZGVyc3RhbmRzIC1jIGFuZCAtbyB0b2dldGhlci4uLiB5ZXMKY2hlY2tpbmcgd2hl dGhlciBtYWtlIHN1cHBvcnRzIHRoZSBpbmNsdWRlIGRpcmVjdGl2ZS4uLiB5ZXMgKEdOVSBzdHls ZSkKY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiBnY2MgLXN0ZD1nbnUyMy4uLiBnY2MzCmNo ZWNraW5nIGZvciBhci4uLiBhcgpjaGVja2luZyB0aGUgYXJjaGl2ZXIgKGFyKSBpbnRlcmZhY2Uu Li4gYXIKY2hlY2tpbmcgZm9yIHJhbmxpYi4uLiByYW5saWIKY2hlY2tpbmcgdGhhdCBnZW5lcmF0 ZWQgZmlsZXMgYXJlIG5ld2VyIHRoYW4gY29uZmlndXJlLi4uIGRvbmUKY29uZmlndXJlOiBjcmVh dGluZyAuL2NvbmZpZy5zdGF0dXMKY29uZmlnLnN0YXR1czogY3JlYXRpbmcgTWFrZWZpbGUKY29u ZmlnLnN0YXR1czogZXhlY3V0aW5nIGRlcGZpbGVzIGNvbW1hbmRzCiNbc3RkZXJyXSsgbWFrZSBh bGwKZ2NjIC1zdGQ9Z251MjMgLURQQUNLQUdFX05BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdFX1RB Uk5BTUU9XCJpbnN0c3BjXCIgLURQQUNLQUdFX1ZFUlNJT049XCIxLjBcIiAtRFBBQ0tBR0VfU1RS SU5HPVwiaW5zdHNwY1wgMS4wXCIgLURQQUNLQUdFX0JVR1JFUE9SVD1cIlwiIC1EUEFDS0FHRV9V Ukw9XCJcIiAtRFBBQ0tBR0U9XCJpbnN0c3BjXCIgLURWRVJTSU9OPVwiMS4wXCIgLUkuIC1JLi4g ICAgIC1nIC1PMiAtTVQgc291cmNlLm8gLU1EIC1NUCAtTUYgLmRlcHMvc291cmNlLlRwbyAtYyAt byBzb3VyY2UubyAuLi9zb3VyY2UuYwptdiAtZiAuZGVwcy9zb3VyY2UuVHBvIC5kZXBzL3NvdXJj ZS5QbwpnY2MgLXN0ZD1nbnUyMyAgLWcgLU8yICAgLW8gc3ViL2Jhc2Ugc291cmNlLm8gIApnY2Mg LXN0ZD1nbnUyMyAgLWcgLU8yICAgLW8gc3ViL25vYmFzZSBzb3VyY2UubyAgCnJtIC1mIHN1Yi9s aWJiYXNlLmEKYXIgY3Igc3ViL2xpYmJhc2UuYSBzb3VyY2UubyAKcmFubGliIHN1Yi9saWJiYXNl LmEKcm0gLWYgc3ViL2xpYm5vYmFzZS5hCmFyIGNyIHN1Yi9saWJub2Jhc2UuYSBzb3VyY2UubyAK cmFubGliIHN1Yi9saWJub2Jhc2UuYQojW3N0ZGVycl0rIERFU1RESVI9Jy91c3IvbG9jYWwvc3Jj L2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1ycWJyYWNrL10nCiNbc3RkZXJyXSsgZmlsZT0n Li9dJwojW3N0ZGVycl0rIG1ha2UgdGVzdC1pbnN0Cm1ha2VbMV06IEVudGVyaW5nIGRpcmVjdG9y eSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9idWlsZC1ycWJyYWNrJwog bWtkaXIgLXAgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1ycWJy YWNrL10vXS1wcmVmaXgvZm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAuLi9zdWIvYmFzZS5zaCAn L3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJxYnJhY2svXS9dLXBy ZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LXJxYnJhY2svXS9dLXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0YWxsIC1jIC1tIDY0 NCAgc3ViL2xpYmJhc2UuYSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9k ZXN0LXJxYnJhY2svXS9dLXByZWZpeC9mb28nCiAoIGNkICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtcnFicmFjay9dL10tcHJlZml4L2ZvbycgJiYgcmFubGliIGxp YmJhc2UuYSApCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRp ci9kZXN0LXJxYnJhY2svXS9dLXByZWZpeC9mb28nCiAgL3Vzci9iaW4vaW5zdGFsbCAtYyBzdWIv YmFzZSAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJxYnJhY2sv XS9dLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9kZXN0LXJxYnJhY2svXS9dLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJxYnJhY2svXS9dLXByZWZpeC9mb28v c3ViLycKIC91c3IvYmluL2luc3RhbGwgLWMgLi4vc3ViL25vYmFzZS5zaCAnL3Vzci9sb2NhbC9z cmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJxYnJhY2svXS9dLXByZWZpeC9mb28vc3Vi LycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3Qt cnFicmFjay9dL10tcHJlZml4L2ZvbycKIG1rZGlyIC1wICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFr ZS90L2luc3RzcGMuZGlyL2Rlc3QtcnFicmFjay9dL10tcHJlZml4L2Zvby9zdWInCiAvdXNyL2Jp bi9pbnN0YWxsIC1jIC1tIDY0NCAgc3ViL2xpYm5vYmFzZS5hICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcnFicmFjay9dL10tcHJlZml4L2Zvby9zdWInCiAoIGNk ICcvdXNyL2xvY2FsL3NyYy9hdXRvbWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcnFicmFjay9dL10t cHJlZml4L2ZvbycgJiYgcmFubGliIHN1Yi9saWJub2Jhc2UuYSApCiBta2RpciAtcCAnL3Vzci9s b2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJxYnJhY2svXS9dLXByZWZpeC9m b28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0 LXJxYnJhY2svXS9dLXByZWZpeC9mb28vc3ViLycKICAvdXNyL2Jpbi9pbnN0YWxsIC1jIHN1Yi9u b2Jhc2UgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1ycWJyYWNr L10vXS1wcmVmaXgvZm9vL3N1Yi8nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXJxYnJhY2svXS9dLXByZWZpeC9mb28nCiAvdXNyL2Jpbi9pbnN0 YWxsIC1jIC1tIDY0NCAuLi9zdWIvYmFzZS5kYXQgJy91c3IvbG9jYWwvc3JjL2F1dG9tYWtlL3Qv aW5zdHNwYy5kaXIvZGVzdC1ycWJyYWNrL10vXS1wcmVmaXgvZm9vJwogbWtkaXIgLXAgJy91c3Iv bG9jYWwvc3JjL2F1dG9tYWtlL3QvaW5zdHNwYy5kaXIvZGVzdC1ycWJyYWNrL10vXS1wcmVmaXgv Zm9vJwogL3Vzci9iaW4vaW5zdGFsbCAtYyAtbSA2NDQgLi4vc3ViL2Jhc2UuaCAnL3Vzci9sb2Nh bC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJxYnJhY2svXS9dLXByZWZpeC9mb28n CiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJx YnJhY2svXS9dLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2Uv dC9pbnN0c3BjLmRpci9kZXN0LXJxYnJhY2svXS9dLXByZWZpeC9mb28vc3ViJwogL3Vzci9iaW4v aW5zdGFsbCAtYyAtbSA2NDQgIC4uL3N1Yi9ub2Jhc2UuZGF0ICcvdXNyL2xvY2FsL3NyYy9hdXRv bWFrZS90L2luc3RzcGMuZGlyL2Rlc3QtcnFicmFjay9dL10tcHJlZml4L2Zvby9zdWInCiBta2Rp ciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0c3BjLmRpci9kZXN0LXJxYnJhY2sv XS9dLXByZWZpeC9mb28nCiBta2RpciAtcCAnL3Vzci9sb2NhbC9zcmMvYXV0b21ha2UvdC9pbnN0 c3BjLmRpci9kZXN0LXJxYnJhY2svXS9dLXByZWZpeC9mb28vc3ViJwogL3Vzci9iaW4vaW5zdGFs