Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1vH8Mg-00EoCO-Tv for pgsql-hackers@arkaria.postgresql.org; Thu, 06 Nov 2025 22:21:59 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1vH8Mf-00AcuI-E3 for pgsql-hackers@arkaria.postgresql.org; Thu, 06 Nov 2025 22:21:57 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1vH8Mf-00AcuA-0y for pgsql-hackers@lists.postgresql.org; Thu, 06 Nov 2025 22:21:57 +0000 Received: from mail-ed1-x52e.google.com ([2a00:1450:4864:20::52e]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vH8Mc-006Nrb-2Q for pgsql-hackers@postgresql.org; Thu, 06 Nov 2025 22:21:56 +0000 Received: by mail-ed1-x52e.google.com with SMTP id 4fb4d7f45d1cf-640b9c7eab9so223662a12.1 for ; Thu, 06 Nov 2025 14:21:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1762467713; x=1763072513; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=sLikj6TmZIgag/xBxubMh0IhnOr5s9TfNCfijaVXtV4=; b=MKPuDMMhLz3sb+njzDtKvaxJMwHaCCKbBFnEBkBmNskvf9qHdGFb5/0e1csDSkPEBQ aMn+9rWDb9hC/phGMCEC1s/5GMXIBzXYBe8DRNi2uueWqu6F7ptKMfjxzM4YPUz74GYy PWm0dG2XO8sAHAQdQunnQU9ZRoPfZRj6CPa/EZ7TsnAV0zvAvY+WjOjRmXm0YLH+oU4g 7IQTgHGzqww7aDO0Al/Q9ARJXwI0c9NciOvDBadcf5kYxBfAX3m0M1PXS1vfvyjmPa4Q AuLKRlvYz1qFrSLeZGLvh3xUhbFNPnuymHrLidEJ86Idz6hiW5LZSu/dMpcaSIphAZ8w Whqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762467713; x=1763072513; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=sLikj6TmZIgag/xBxubMh0IhnOr5s9TfNCfijaVXtV4=; b=jOeJ3yE7NdJeAQNAu/X/4Nangrr+mNYJXVVQAH+fdexOhE4puDydInXrGp+umNkSTL 3yIF0UYjbnPIxCzivgKw+1hhTkpjIH9aYx3barYP2sklfXN39jRJaS04wFKWeYIaPCyT RQO4/6okPKuEj/BUKT2/u7FLwFUXSTixF+ho5PM8kZlSDS3VnwE5MSdNEOXAvTVFaTDf /VPp7LfLL+xq1vtu4xjfmznGADAqEiLiws0RFjRgxFrqfn6vjsagcqU2L5zROXMKX2Ww SUUtxyUPjSPC538ThQ6Z5z9sE5xwiJ1ApfRgQVBxT5d2Sex5tJVoTPULc2O9mjsAF9h+ QEcg== X-Forwarded-Encrypted: i=1; AJvYcCVJO5HjWS2RGud8GQNULiMia+KO7v9bsKopVqPA3dgRkPu1/qwYn+DY3SNkQr3mflY/BYcgduYTSEYiygp6@postgresql.org X-Gm-Message-State: AOJu0Yyxa+DMLPwQIFOd+F8S9VShMSZ8FcYrXYVTPZZruNk2CE/ATk+G Ep7Gdmkjla0MyElNfDODK6p3cGUsZZrkvjBv+6zxGMwHlfwvZhKpG3Y7WqR04sIlAePHH8KbtYT 1s2si0iSN80+kCV2mM3XbMzuFF4GhZBU= X-Gm-Gg: ASbGncvB6JuJzv5gLvIeP069iU3hrnb9xS2F4FWZz97sOKnsed05pzkPGva/HoYAxZA jAJzDj563nll14Dwm3ee/kqfKRFIOq+9vYqxSSHr4viVOw3WkKeUOf3dvimLi9wMjHoy0eXOgV9 BbsOdNAgQ8YzPEHcWqz2GiKDdBfFpl4X4j8XtAKyoX/jcMxnRra53W3TwTWHHw0hyW1cu5BWHyk +qFYp0VXLzAu0jaIwuC1aR3xkcGjATJllNC4OztslTYllkhwqnUS8TGO6kgXX9jsGY= X-Google-Smtp-Source: AGHT+IEeyrx3MA+Kh6uzSx7QOPo/rKhFF4ICkc+lyHWEzMcfvulzfIBVTzcvh+9pfkrYu2DM/W4oIKASEBPXwNNQIZk= X-Received: by 2002:a17:907:930e:b0:b72:a30a:e8ea with SMTP id a640c23a62f3a-b72c0dbc561mr94018066b.57.1762467712909; Thu, 06 Nov 2025 14:21:52 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Sami Imseih Date: Thu, 6 Nov 2025 16:21:40 -0600 X-Gm-Features: AWmQ_bnRVthv5N7PVbKlKu4qjrt65tMylHoYdPwFHQg1COr-4rw-lNwjLUWJopc Message-ID: Subject: Re: another autovacuum scheduling thread To: David Rowley Cc: Nathan Bossart , Robert Haas , Jeremy Schneider , pgsql-hackers@postgresql.org Content-Type: multipart/mixed; boundary="000000000000f517e90642f47d4f" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000f517e90642f47d4f Content-Type: text/plain; charset="UTF-8" Thanks for the ideas on improving the test! I am still trying to see how useful this type of testing is, but I will share what I have done. > I wonder if it would be more realistic to throttle the work simulation > to a certain speed with pgbench -R rather than having it go flat out. good point > > If we logged the score, we could do the "unpatched" test with the > > patched code, just with commenting out the > > list_sort(tables_to_process, TableToProcessComparator); It'd then be > > interesting to zero the log_auto*_min_duration settings and review the > > order differences and how high the scores got. Would the average score > > be higher or lower with patched version? I agree. I attached a patch on top of v7 that implements a debug GUC to enable or disable sorting for testing purposes. > I'm not yet sure how meaningful it is, but I tried adding the > following to recheck_relation_needs_vacanalyze(): > > elog(LOG, "Performing autovacuum of table \"%s\" with score = %f", > get_rel_name(relid), score); The same attached patch also implements this log. I also spent more time working on the test script. I cleaned it up and combined it into a single script. I added a few things: - Ability to run with or without the batch workload. - OLTP tables are no longer the same size; they are created with different row counts using a minimum and maximum row count and a multiplier for scaling the next table. - A background collector for pg_stat_all_tables on relevant tables, stored in relstats_monitor.log. - Logs are saved after the run for further analysis, such as examining the scores. Also attached is analysis for a run with 16 OLTP tables and 3 batch tables. It shows that with sorting enabled or disabled, the vacuum/analyze activity does not show any major differences. OLTP had very similar DML and autovacuum/autoanalyze activity. A few points to highlight: 1/ In the sorted run, we had an equal number of autovacuums/autoanalyze on the smaller OLTP tables, as if every eligible table needed both autovacuum and autoanalyze. The unsorted run was less consistent on the smaller tables. I observed this on several runs. I don't think it's a big deal, but interesting nonetheless. 2/ Batch tables in the sorted run had less autovacuum time (1,257,821 vs 962,794 ms), but very similar autovacuum counts. 3/ OLTP tables, on the other hand, had more autovacuum time in the sorted run (3,590,964 vs 3,852,460 ms), but I do not see much difference in autovacuum/autoanalyze counts. Other tests I plan on running: - batch updates/deletes, since the current batch option only tests append-only tables. - OLTP only test. Also, I am thinking about another sorting strategy based on average autovacuum/autoanalyze time per table. The idea is to sort ascending by the greater of the two averages, so workers process quicker tables first instead of all workers potentially getting hung on the slowest tables. We can calculate the average now that v18 includes total_autovacuum_time and total_autoanalyze time. The way I see it, regardless of prioritization, a few large tables may still monopolize autovacuum workers. But at least this way, the quick tables get a chance to get processed first. Will this be an idea worth testing out? -- Sami Imseih Amazon Web Services (AWS) --000000000000f517e90642f47d4f Content-Type: text/plain; charset="US-ASCII"; name="0001-autovacuum-score-logging-and-sort-enable-disable.txt" Content-Disposition: attachment; filename="0001-autovacuum-score-logging-and-sort-enable-disable.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhlc1q9d5 RnJvbSBjMjRlZWViMDc0YWNmYjc5MGZlNDRiNjBiMjE3NzQ4MmI5YWZlM2MzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBVYnVudHUgPHVidW50dUBpcC0xNzItMzEtNDYtMjMwLmVjMi5p bnRlcm5hbD4KRGF0ZTogVHVlLCA0IE5vdiAyMDI1IDE1OjU1OjQwICswMDAwClN1YmplY3Q6IFtQ QVRDSCAxLzFdIGF1dG92YWN1dW0gc2NvcmUgbG9nZ2luZyBhbmQgc29ydCBlbmFibGUvZGlzYWJs ZQoKLS0tCiBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYyAgICAgICB8ICA3ICsr KysrKy0KIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0IHwgMTAgKysr KysrKysrKwogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgICAgICAgfCAgNiAr KysrKysKIHNyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5oICAgICAgIHwgIDggKysr KysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMzAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jIGIvc3JjL2Jh Y2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKaW5kZXggZTQ4YmIwNjI1M2IuLmNhOWM1YzYx NWRjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYworKysg Yi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYwpAQCAtMzMzLDYgKzMzMyw4IEBA IHN0YXRpYyBXb3JrZXJJbmZvIE15V29ya2VySW5mbyA9IE5VTEw7CiAvKiBQSUQgb2YgbGF1bmNo ZXIsIHZhbGlkIG9ubHkgaW4gd29ya2VyIHdoaWxlIHNodXR0aW5nIGRvd24gKi8KIGludAkJCUF1 dG92YWN1dW1MYXVuY2hlclBpZCA9IDA7CiAKK2ludAkJCWRlYnVnX2F1dG92YWN1dW1fc29ydCA9 IERFQlVHX0FVVE9WQUNVVU1fU09SVF9PTjsKKwogc3RhdGljIE9pZAlkb19zdGFydF93b3JrZXIo dm9pZCk7CiBzdGF0aWMgdm9pZCBQcm9jZXNzQXV0b1ZhY0xhdW5jaGVySW50ZXJydXB0cyh2b2lk KTsKIHBnX25vcmV0dXJuIHN0YXRpYyB2b2lkIEF1dG9WYWNMYXVuY2hlclNodXRkb3duKHZvaWQp OwpAQCAtMjA4Myw2ICsyMDg1LDcgQEAgZG9fYXV0b3ZhY3V1bSh2b2lkKQogCQkJdGFibGUtPm9p ZCA9IHJlbGlkOwogCQkJdGFibGUtPnNjb3JlID0gc2NvcmU7CiAKKwkJCWVsb2coTE9HLCAiYWRk aW5nIHRhYmxlOiVzLCVsZixhdj0lZCxhYT0lZCIsIGdldF9yZWxfbmFtZSh0YWJsZS0+b2lkKSwg c2NvcmUsIGRvdmFjdXVtLCBkb2FuYWx5emUpOwogCQkJdGFibGVzX3RvX3Byb2Nlc3MgPSBsYXBw ZW5kKHRhYmxlc190b19wcm9jZXNzLCB0YWJsZSk7CiAJCX0KIApAQCAtMjE4NCw2ICsyMTg3LDcg QEAgZG9fYXV0b3ZhY3V1bSh2b2lkKQogCQkJdGFibGUtPm9pZCA9IHJlbGlkOwogCQkJdGFibGUt PnNjb3JlID0gc2NvcmU7CiAKKwkJCWVsb2coTE9HLCAiYWRkaW5nIHRhYmxlOiVzLCVsZixhdj0x LGFhPTAiLCBnZXRfcmVsX25hbWUodGFibGUtPm9pZCksIHNjb3JlKTsKIAkJCXRhYmxlc190b19w cm9jZXNzID0gbGFwcGVuZCh0YWJsZXNfdG9fcHJvY2VzcywgdGFibGUpOwogCQl9CiAKQEAgLTIz MDksNyArMjMxMyw4IEBAIGRvX2F1dG92YWN1dW0odm9pZCkKIAkJTWVtb3J5Q29udGV4dFN3aXRj aFRvKEF1dG92YWNNZW1DeHQpOwogCX0KIAotCWxpc3Rfc29ydCh0YWJsZXNfdG9fcHJvY2Vzcywg VGFibGVUb1Byb2Nlc3NDb21wYXJhdG9yKTsKKwlpZiAoZGVidWdfYXV0b3ZhY3V1bV9zb3J0ID09 IERFQlVHX0FVVE9WQUNVVU1fU09SVF9PTikKKwkJbGlzdF9zb3J0KHRhYmxlc190b19wcm9jZXNz LCBUYWJsZVRvUHJvY2Vzc0NvbXBhcmF0b3IpOwogCiAJLyoKIAkgKiBPcHRpb25hbGx5LCBjcmVh dGUgYSBidWZmZXIgYWNjZXNzIHN0cmF0ZWd5IG9iamVjdCBmb3IgVkFDVVVNIHRvIHVzZS4KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0IGIvc3Jj L2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfcGFyYW1ldGVycy5kYXQKaW5kZXggZDZmYzgzMzM4NTAu LjJiZjljZTRlZDI3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y19wYXJh bWV0ZXJzLmRhdAorKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y19wYXJhbWV0ZXJzLmRh dApAQCAtMzQ0NSw2ICszNDQ1LDE2IEBACiAgIG9wdGlvbnMgPT4gJ2RlYnVnX3BhcmFsbGVsX3F1 ZXJ5X29wdGlvbnMnLAogfSwKIAoreyBuYW1lID0+ICdkZWJ1Z19hdXRvdmFjdXVtX3NvcnQnLCB0 eXBlID0+ICdlbnVtJywgY29udGV4dCA9PiAnUEdDX1VTRVJTRVQnLCBncm91cCA9PiAnREVWRUxP UEVSX09QVElPTlMnLAorICBzaG9ydF9kZXNjID0+ICdFbmFibGVzL0Rpc2FibGVzIHRoZSBhdXRv dmFjdXVtIHNvcnQgb2YgZWxpZ2libGUgdGFibGVzLicsCisgIGxvbmdfZGVzYyA9PiAnVGhpcyBj YW4gYmUgdXNlZnVsIGZvciB0ZXN0aW5nIHRoZSBlZmZlY3Qgb2Ygc29ydGluZyBlbGlnaWJsZSB0 YWJsZXMgaW4gYXV0b3ZhY3V1bS4nLAorICBmbGFncyA9PiAnR1VDX05PVF9JTl9TQU1QTEUgfCBH VUNfRVhQTEFJTicsCisgIHZhcmlhYmxlID0+ICdkZWJ1Z19hdXRvdmFjdXVtX3NvcnQnLAorICBi b290X3ZhbCA9PiAnREVCVUdfQVVUT1ZBQ1VVTV9TT1JUX09OJywKKyAgb3B0aW9ucyA9PiAnZGVi dWdfYXV0b3ZhY3V1bV9zb3J0X29wdGlvbnMnLAorfSwKKworCiB7IG5hbWUgPT4gJ3Bhc3N3b3Jk X2VuY3J5cHRpb24nLCB0eXBlID0+ICdlbnVtJywgY29udGV4dCA9PiAnUEdDX1VTRVJTRVQnLCBn cm91cCA9PiAnQ09OTl9BVVRIX0FVVEgnLAogICBzaG9ydF9kZXNjID0+ICdDaG9vc2VzIHRoZSBh bGdvcml0aG0gZm9yIGVuY3J5cHRpbmcgcGFzc3dvcmRzLicsCiAgIHZhcmlhYmxlID0+ICdQYXNz d29yZF9lbmNyeXB0aW9uJywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3Vj X3RhYmxlcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKaW5kZXggMDBj ODM3NmNmNGQuLmFhYTkzZDM1MTg3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNj L2d1Y190YWJsZXMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwpA QCAtNDA0LDYgKzQwNCwxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNvbmZpZ19lbnVtX2VudHJ5 IGRlYnVnX3BhcmFsbGVsX3F1ZXJ5X29wdGlvbnNbXSA9IHsKIAl7TlVMTCwgMCwgZmFsc2V9CiB9 OwogCitzdGF0aWMgY29uc3Qgc3RydWN0IGNvbmZpZ19lbnVtX2VudHJ5IGRlYnVnX2F1dG92YWN1 dW1fc29ydF9vcHRpb25zW10gPSB7CisJeyJvZmYiLCBERUJVR19BVVRPVkFDVVVNX1NPUlRfT0ZG LCBmYWxzZX0sCisJeyJvbiIsIERFQlVHX0FVVE9WQUNVVU1fU09SVF9PTiwgZmFsc2V9LAorCXtO VUxMLCAwLCBmYWxzZX0KK307CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY29uZmlnX2VudW1fZW50 cnkgcGxhbl9jYWNoZV9tb2RlX29wdGlvbnNbXSA9IHsKIAl7ImF1dG8iLCBQTEFOX0NBQ0hFX01P REVfQVVUTywgZmFsc2V9LAogCXsiZm9yY2VfZ2VuZXJpY19wbGFuIiwgUExBTl9DQUNIRV9NT0RF X0ZPUkNFX0dFTkVSSUNfUExBTiwgZmFsc2V9LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcG9z dG1hc3Rlci9hdXRvdmFjdXVtLmggYi9zcmMvaW5jbHVkZS9wb3N0bWFzdGVyL2F1dG92YWN1dW0u aAppbmRleCAwMjNhYzZkNWZhOC4uMzI2ODg3ODRhMDYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5oCisrKyBiL3NyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvYXV0 b3ZhY3V1bS5oCkBAIC0yNSw2ICsyNSwxNCBAQCB0eXBlZGVmIGVudW0KIAlBVldfQlJJTlN1bW1h cml6ZVJhbmdlLAogfSBBdXRvVmFjdXVtV29ya0l0ZW1UeXBlOwogCisvKiBwb3NzaWJsZSB2YWx1 ZXMgZm9yIGRlYnVnX2F1dG92YWN1dW1fc29ydCAqLwordHlwZWRlZiBlbnVtCit7CisJREVCVUdf QVVUT1ZBQ1VVTV9TT1JUX09GRiwKKwlERUJVR19BVVRPVkFDVVVNX1NPUlRfT04sCit9CQkJRGVi dWdBdXRvdmFjdXVtU29ydE1vZGU7CisKK2V4dGVybiBQR0RMTElNUE9SVCBpbnQgZGVidWdfYXV0 b3ZhY3V1bV9zb3J0OwogCiAvKiBHVUMgdmFyaWFibGVzICovCiBleHRlcm4gUEdETExJTVBPUlQg Ym9vbCBhdXRvdmFjdXVtX3N0YXJ0X2RhZW1vbjsKLS0gCjIuNDMuMAoK --000000000000f517e90642f47d4f Content-Type: text/plain; charset="US-ASCII"; name="analysis.txt" Content-Disposition: attachment; filename="analysis.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhnyzt8n1 CiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKIyMgU09SVCBPRkYKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKIyMjIGZyb20gY29uZmlnCgpCQVNFX0RJUj0k SE9NRS90ZXN0X2F1dG92YWN1dW1fcHJpb3JpdGl6YXRpb24KT0xUUF9UQUJMRVM9MTYKT0xUUF9S T1dTX1NUQVJUPTEwMDAKT0xUUF9ST1dTX01VTFRJUExJRVI9MgpPTFRQX01BWF9ST1dTPTUwMDAw MDAKQkFUQ0hfVEFCTEVTPTMKQkFUQ0hfU0laRT0xMDAwMDAKQkFUQ0hfQ09OTkVDVElPTlM9NQpP TFRQX0NPTk5FQ1RJT05TPTIwMApUSU1FT1VUPTE4MDAKT0xUUF9SQVRFPTE1MDAwCkJBVENIX1NM RUVQPTUKQlVDS0VUUz0xNQoKIyMjIGZyb20gc3VtbWFyeV9yZXBvcnQudHh0Cgo9PT0gRGF0YWJh c2UgU2V0dGluZ3MgPT09CiAgICAgICAgICAgICAgICAgbmFtZSAgICAgICAgICAgICAgICAgIHwg IHNldHRpbmcgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0KIGF1dG92YWN1dW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBvbgogYXV0b3Zh Y3V1bV9hbmFseXplX3NjYWxlX2ZhY3RvciAgICAgICB8IDAuMQogYXV0b3ZhY3V1bV9hbmFseXpl X3RocmVzaG9sZCAgICAgICAgICB8IDUwCiBhdXRvdmFjdXVtX2ZyZWV6ZV9tYXhfYWdlICAgICAg ICAgICAgIHwgMjAwMDAwMDAwCiBhdXRvdmFjdXVtX21heF93b3JrZXJzICAgICAgICAgICAgICAg IHwgNgogYXV0b3ZhY3V1bV9tdWx0aXhhY3RfZnJlZXplX21heF9hZ2UgICB8IDQwMDAwMDAwMAog YXV0b3ZhY3V1bV9uYXB0aW1lICAgICAgICAgICAgICAgICAgICB8IDUKIGF1dG92YWN1dW1fdmFj dXVtX2Nvc3RfZGVsYXkgICAgICAgICAgfCAyCiBhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2xpbWl0 ICAgICAgICAgIHwgLTEKIGF1dG92YWN1dW1fdmFjdXVtX2luc2VydF9zY2FsZV9mYWN0b3IgfCAw LjIKIGF1dG92YWN1dW1fdmFjdXVtX2luc2VydF90aHJlc2hvbGQgICAgfCAxMDAwCiBhdXRvdmFj dXVtX3ZhY3V1bV9tYXhfdGhyZXNob2xkICAgICAgIHwgMTAwMDAwMDAwCiBhdXRvdmFjdXVtX3Zh Y3V1bV9zY2FsZV9mYWN0b3IgICAgICAgIHwgMC4yCiBhdXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hv bGQgICAgICAgICAgIHwgNTAKIGF1dG92YWN1dW1fd29ya19tZW0gICAgICAgICAgICAgICAgICAg fCAtMQogYXV0b3ZhY3V1bV93b3JrZXJfc2xvdHMgICAgICAgICAgICAgICB8IDE2CiBkZWJ1Z19h dXRvdmFjdXVtX3NvcnQgICAgICAgICAgICAgICAgIHwgb2ZmICAgIDw8PC0tLS0tLS0tLS0tLS0t LS0tCiBsb2dfYXV0b3ZhY3V1bV9taW5fZHVyYXRpb24gICAgICAgICAgIHwgNjAwMDAwCiBtYXhf Y29ubmVjdGlvbnMgICAgICAgICAgICAgICAgICAgICAgIHwgMTAwMAogc2hhcmVkX2J1ZmZlcnMg ICAgICAgICAgICAgICAgICAgICAgICB8IDEwNDg1NzYKKDIwIHJvd3MpCgo9PT0gVG90YWwgQWN0 aXZpdHkgPT09CkV4cGFuZGVkIGRpc3BsYXkgaXMgb24uCi1bIFJFQ09SRCAxIF0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0KdG90YWxfbl9kZWFkX3R1cCAgICAgICAgICAgICB8IDM1NTUxNzIK dG90YWxfbl9tb2Rfc2luY2VfYW5hbHl6ZSAgICB8IDIwNzE0NjY5CnRvdGFsX3JlbHR1cGxlcyAg ICAgICAgICAgICAgfCAxNDE3OTUxNTMKdG90YWxfYXV0b3ZhY3V1bV9jb3VudCAgICAgICB8IDE4 OTAKdG90YWxfYXV0b2FuYWx5emVfY291bnQgICAgICB8IDIwMDQKdG90YWxfbl90dXBfdXBkICAg ICAgICAgICAgICB8IDI2OTk1MTg5CnRvdGFsX25fdHVwX2hvdF91cGQgICAgICAgICAgfCAyCnRv dGFsX25fdHVwX25ld3BhZ2VfdXBkICAgICAgfCAzODY4OTE4CnRvdGFsX25fdHVwX2lucyAgICAg ICAgICAgICAgfCAxNjEyOTgwMDAKdG90YWxfdG90YWxfYXV0b3ZhY3V1bV90aW1lICB8IDQ4NDcw NTEKdG90YWxfdG90YWxfYXV0b2FuYWx5emVfdGltZSB8IDY5NTAwNAphdmdfYXV0b3ZhY3V1bV90 aW1lICAgICAgICAgIHwgMjU2NC41OAphdmdfYXV0b2FuYWx5emVfdGltZSAgICAgICAgIHwgMzQ2 LjgxCnRhYmxlX2NvdW50ICAgICAgICAgICAgICAgICAgfCAxOQoKIyMjIGxhc3Qgc25hcHNob3Qg ZnJvbSByZWxzdGF0c19tb25pdG9yLmxvZwoKID9jb2x1bW4/IHwgICAgICAgICAgdGltZXN0YW1w ICAgICAgICAgICB8ICAgICByZWxuYW1lICAgICAgfCByZWx0dXBsZXMgfCBuX2RlYWRfdHVwIHwg YXZfY291bnQgfCBhYV9jb3VudCB8IHRvdGFsX2F2X3RpbWUgfCB0b3RhbF9hYV90aW1lIHwgbl90 dXBfdXBkIHwgbl90dXBfaG90X3VwZCB8IG5fdHVwX2lucyB8IGF2Z19hdl90aW1lIHwgYXZnX2Fh X3RpbWUgCi0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQogVEFCX0RBVEEgfCAy MDI1LTExLTA2IDIwOjEzOjE3LjA4MzI3KzAwIHwgdGFibGVfYmF0Y2hfMSAgICB8ICA0OTIwMDcw MCB8ICAgICAgICAgIDAgfCAgICAgICAxNyB8ICAgICAgIDMwIHwgICAgICAgIDU0MTg0OCB8ICAg ICAgICAgNDY5MDIgfCAgICAgICAgIDAgfCAgICAgICAgICAgICAwIHwgIDUyMDAwMDAwIHwgICAg MzE4NzMuNDEgfCAgICAgMTU2My40MAogVEFCX0RBVEEgfCAyMDI1LTExLTA2IDIwOjEzOjE3LjA4 MzI3KzAwIHwgdGFibGVfYmF0Y2hfMiAgICB8ICA0NDYwMDUwMCB8ICAgICAgICAgIDAgfCAgICAg ICAxNyB8ICAgICAgIDI2IHwgICAgICAgIDM3NTU5NSB8ICAgICAgICAgNTMxMzcgfCAgICAgICAg IDAgfCAgICAgICAgICAgICAwIHwgIDQ5MzAwMDAwIHwgICAgMjIwOTMuODIgfCAgICAgMjA0My43 MwogVEFCX0RBVEEgfCAyMDI1LTExLTA2IDIwOjEzOjE3LjA4MzI3KzAwIHwgdGFibGVfYmF0Y2hf MyAgICB8ICAzOTgwMDQwMCB8ICAgICAgICAgIDAgfCAgICAgICAxOCB8ICAgICAgIDI4IHwgICAg ICAgIDM0MDM3OCB8ICAgICAgICAgNDM1MDAgfCAgICAgICAgIDAgfCAgICAgICAgICAgICAwIHwg IDUxMjAwMDAwIHwgICAgMTg5MDkuODkgfCAgICAgMTU1My41NwogVEFCX0RBVEEgfCAyMDI1LTEx LTA2IDIwOjEzOjE3LjA4MzI3KzAwIHwgdGFibGVfMTNfNDA5NjAwMCB8ICAgNDA5NDQxMCB8ICAg IDE2NzY0MDkgfCAgICAgICAgMCB8ICAgICAgICAyIHwgICAgICAgICAgICAgMCB8ICAgICAgICAg IDkwMjkgfCAgIDE2ODA0NjcgfCAgICAgICAgICAgICAwIHwgICA0MDk2MDAwIHwgICAgICAgIDAu MDAgfCAgICAgNDUxNC41MAogVEFCX0RBVEEgfCAyMDI1LTExLTA2IDIwOjEzOjE3LjA4MzI3KzAw IHwgdGFibGVfMTJfMjA0ODAwMCB8ICAgMjA0Njg2MCB8ICAgICA4MDM2MzggfCAgICAgICAgMiB8 ICAgICAgICA0IHwgICAgICAgIDkzMTU5OCB8ICAgICAgICAgNDE4OTcgfCAgIDE2ODA4NjMgfCAg ICAgICAgICAgICAwIHwgICAyMDQ4MDAwIHwgICA0NjU3OTkuMDAgfCAgICAxMDQ3NC4yNQogVEFC X0RBVEEgfCAyMDI1LTExLTA2IDIwOjEzOjE3LjA4MzI3KzAwIHwgdGFibGVfMTFfMTAyNDAwMCB8 ICAgMTAyMzE4MCB8ICAgICA0OTM5ODggfCAgICAgICAgNSB8ICAgICAgICA4IHwgICAgICAgIDky NDI5MiB8ICAgICAgICAgNTQ2NTkgfCAgIDE2ODE1ODIgfCAgICAgICAgICAgICAwIHwgICAxMDI0 MDAwIHwgICAxODQ4NTguNDAgfCAgICAgNjgzMi4zOAogVEFCX0RBVEEgfCAyMDI1LTExLTA2IDIw OjEzOjE3LjA4MzI3KzAwIHwgdGFibGVfMTBfNTEyMDAwICB8ICAgIDUxMTI1NiB8ICAgICAxNzE4 MTkgfCAgICAgICAxMiB8ICAgICAgIDE5IHwgICAgICAgIDcyODY2MiB8ICAgICAgICAgNzc4NjMg fCAgIDE2ODA1MTIgfCAgICAgICAgICAgICAwIHwgICAgNTEyMDAwIHwgICAgNjA3MjEuODMgfCAg ICAgNDA5OC4wNQogVEFCX0RBVEEgfCAyMDI1LTExLTA2IDIwOjEzOjE3LjA4MzI3KzAwIHwgdGFi bGVfOV8yNTYwMDAgICB8ICAgIDI1NTk5NyB8ICAgICAgOTM3MTcgfCAgICAgICAyNCB8ICAgICAg IDQxIHwgICAgICAgIDI1MTUyOCB8ICAgICAgICAgNjEwNzggfCAgIDE2ODAxMTUgfCAgICAgICAg ICAgICAwIHwgICAgMjU2MDAwIHwgICAgMTA0ODAuMzMgfCAgICAgMTQ4OS43MQogVEFCX0RBVEEg fCAyMDI1LTExLTA2IDIwOjEzOjE3LjA4MzI3KzAwIHwgdGFibGVfOF8xMjgwMDAgICB8ICAgIDEy Nzk3MCB8ICAgICAgMzc4NjkgfCAgICAgICA0MiB8ICAgICAgIDYwIHwgICAgICAgIDE2NjAzNCB8 ICAgICAgICAgNTkwNzAgfCAgIDE2Nzg2NzIgfCAgICAgICAgICAgICAwIHwgICAgMTI4MDAwIHwg ICAgIDM5NTMuMTkgfCAgICAgIDk4NC41MAogVEFCX0RBVEEgfCAyMDI1LTExLTA2IDIwOjEzOjE3 LjA4MzI3KzAwIHwgdGFibGVfN182NDAwMCAgICB8ICAgICA2Mzk5MSB8ICAgICAgNDQ5NDUgfCAg ICAgICA3NCB8ICAgICAgIDk5IHwgICAgICAgIDExNjA0OCB8ICAgICAgICAgNTQ1ODMgfCAgIDE2 ODAyNTEgfCAgICAgICAgICAgICAwIHwgICAgIDY0MDAwIHwgICAgIDE1NjguMjIgfCAgICAgIDU1 MS4zNAogVEFCX0RBVEEgfCAyMDI1LTExLTA2IDIwOjEzOjE3LjA4MzI3KzAwIHwgdGFibGVfNl8z MjAwMCAgICB8ICAgICAzMjAwMCB8ICAgICAgIDk2NzMgfCAgICAgIDEwNCB8ICAgICAgMTE2IHwg ICAgICAgICA4NDc3OCB8ICAgICAgICAgNDE5NTYgfCAgIDE2ODIyMzUgfCAgICAgICAgICAgICAw IHwgICAgIDMyMDAwIHwgICAgICA4MTUuMTcgfCAgICAgIDM2MS42OQogVEFCX0RBVEEgfCAyMDI1 LTExLTA2IDIwOjEzOjE3LjA4MzI3KzAwIHwgdGFibGVfNV8xNjAwMCAgICB8ICAgICAxNjAwMCB8 ICAgICAgNDk0NjkgfCAgICAgIDE4NiB8ICAgICAgMTkwIHwgICAgICAgICA3NDgyOCB8ICAgICAg ICAgMzYyNDUgfCAgIDE2ODA0MDYgfCAgICAgICAgICAgICAwIHwgICAgIDE2MDAwIHwgICAgICA0 MDIuMzAgfCAgICAgIDE5MC43NgogVEFCX0RBVEEgfCAyMDI1LTExLTA2IDIwOjEzOjE3LjA4MzI3 KzAwIHwgdGFibGVfNF84MDAwICAgICB8ICAgICAgNzk5NiB8ICAgICAgIDQzMDkgfCAgICAgIDE3 NCB8ICAgICAgMTc5IHwgICAgICAgICA1Mzg4NCB8ICAgICAgICAgMjIwNzUgfCAgIDE2ODI0NzEg fCAgICAgICAgICAgICAwIHwgICAgICA4MDAwIHwgICAgICAzMDkuNjggfCAgICAgIDEyMy4zMgog VEFCX0RBVEEgfCAyMDI1LTExLTA2IDIwOjEzOjE3LjA4MzI3KzAwIHwgdGFibGVfM180MDAwICAg ICB8ICAgICAgMzk5MiB8ICAgICAgOTgyMzYgfCAgICAgIDIxNCB8ICAgICAgMjE1IHwgICAgICAg ICA0OTQ3MSB8ICAgICAgICAgMTk5NzUgfCAgIDE2ODEwMzQgfCAgICAgICAgICAgICAwIHwgICAg ICA0MDAwIHwgICAgICAyMzEuMTcgfCAgICAgICA5Mi45MQogVEFCX0RBVEEgfCAyMDI1LTExLTA2 IDIwOjEzOjE3LjA4MzI3KzAwIHwgdGFibGVfMTZfNDAwMCAgICB8ICAgICAgMzk4OCB8ICAgICAg Mzk1NzcgfCAgICAgIDE4NCB8ICAgICAgMTgyIHwgICAgICAgICA0NTQzMyB8ICAgICAgICAgMTY0 MzAgfCAgIDE2Nzk4MDQgfCAgICAgICAgICAgICAwIHwgICAgICA0MDAwIHwgICAgICAyNDYuOTIg fCAgICAgICA5MC4yNwogVEFCX0RBVEEgfCAyMDI1LTExLTA2IDIwOjEzOjE3LjA4MzI3KzAwIHwg dGFibGVfMTVfMjAwMCAgICB8ICAgICAgMjAwMCB8ICAgICAgIDE3NTMgfCAgICAgIDE5OSB8ICAg ICAgMTk0IHwgICAgICAgICA0MjUzOCB8ICAgICAgICAgMTQzNDYgfCAgIDE2ODIyMzQgfCAgICAg ICAgICAgICAwIHwgICAgICAyMDAwIHwgICAgICAyMTMuNzYgfCAgICAgICA3My45NQogVEFCX0RB VEEgfCAyMDI1LTExLTA2IDIwOjEzOjE3LjA4MzI3KzAwIHwgdGFibGVfMl8yMDAwICAgICB8ICAg ICAgMTk5OSB8ICAgICAgIDU2NjggfCAgICAgIDIwMyB8ICAgICAgMjAwIHwgICAgICAgICA0MjQz MCB8ICAgICAgICAgMTQ4MDIgfCAgIDE2ODEwODkgfCAgICAgICAgICAgICAwIHwgICAgICAyMDAw IHwgICAgICAyMDkuMDEgfCAgICAgICA3NC4wMQogVEFCX0RBVEEgfCAyMDI1LTExLTA2IDIwOjEz OjE3LjA4MzI3KzAwIHwgdGFibGVfMTRfMTAwMCAgICB8ICAgICAgMTAwMCB8ICAgICAgIDM5MzQg fCAgICAgIDIwMyB8ICAgICAgMTk5IHwgICAgICAgICAzODQ5OSB8ICAgICAgICAgMTM4NDAgfCAg IDE2Nzg3MTAgfCAgICAgICAgICAgICAxIHwgICAgICAxMDAwIHwgICAgICAxODkuNjUgfCAgICAg ICA2OS41NQogVEFCX0RBVEEgfCAyMDI1LTExLTA2IDIwOjEzOjE3LjA4MzI3KzAwIHwgdGFibGVf MV8xMDAwICAgICB8ICAgICAgIDkwMyB8ICAgICAgNTUzMjMgfCAgICAgIDIxMCB8ICAgICAgMjEw IHwgICAgICAgICAzNjQ0MSB8ICAgICAgICAgMTI2NjEgfCAgIDE2ODExMjYgfCAgICAgICAgICAg ICAxIHwgICAgICAxMDAwIHwgICAgICAxNzMuNTMgfCAgICAgICA2MC4yOQooMTkgcm93cykKCgoj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCiMjIFNPUlQgT04KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKIyMjIGZyb20gY29uZmlnCkJBU0VfRElSPSRIT01F L3Rlc3RfYXV0b3ZhY3V1bV9wcmlvcml0aXphdGlvbgpPTFRQX1RBQkxFUz0xNgpPTFRQX1JPV1Nf U1RBUlQ9MTAwMApPTFRQX1JPV1NfTVVMVElQTElFUj0yCk9MVFBfTUFYX1JPV1M9NTAwMDAwMApC QVRDSF9UQUJMRVM9MwpCQVRDSF9TSVpFPTEwMDAwMApCQVRDSF9DT05ORUNUSU9OUz01Ck9MVFBf Q09OTkVDVElPTlM9MjAwClRJTUVPVVQ9MTgwMApPTFRQX1JBVEU9MTUwMDAKQkFUQ0hfU0xFRVA9 NQpCVUNLRVRTPTE1CgojIyMgZnJvbSBzdW1tYXJ5X3JlcG9ydC50eHQKCj09PSBEYXRhYmFzZSBT ZXR0aW5ncyA9PT0KICAgICAgICAgICAgICAgICBuYW1lICAgICAgICAgICAgICAgICAgfCAgc2V0 dGluZyAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LQogYXV0b3ZhY3V1bSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG9uCiBhdXRvdmFjdXVt X2FuYWx5emVfc2NhbGVfZmFjdG9yICAgICAgIHwgMC4xCiBhdXRvdmFjdXVtX2FuYWx5emVfdGhy ZXNob2xkICAgICAgICAgIHwgNTAKIGF1dG92YWN1dW1fZnJlZXplX21heF9hZ2UgICAgICAgICAg ICAgfCAyMDAwMDAwMDAKIGF1dG92YWN1dW1fbWF4X3dvcmtlcnMgICAgICAgICAgICAgICAgfCA2 CiBhdXRvdmFjdXVtX211bHRpeGFjdF9mcmVlemVfbWF4X2FnZSAgIHwgNDAwMDAwMDAwCiBhdXRv dmFjdXVtX25hcHRpbWUgICAgICAgICAgICAgICAgICAgIHwgNQogYXV0b3ZhY3V1bV92YWN1dW1f Y29zdF9kZWxheSAgICAgICAgICB8IDIKIGF1dG92YWN1dW1fdmFjdXVtX2Nvc3RfbGltaXQgICAg ICAgICAgfCAtMQogYXV0b3ZhY3V1bV92YWN1dW1faW5zZXJ0X3NjYWxlX2ZhY3RvciB8IDAuMgog YXV0b3ZhY3V1bV92YWN1dW1faW5zZXJ0X3RocmVzaG9sZCAgICB8IDEwMDAKIGF1dG92YWN1dW1f dmFjdXVtX21heF90aHJlc2hvbGQgICAgICAgfCAxMDAwMDAwMDAKIGF1dG92YWN1dW1fdmFjdXVt X3NjYWxlX2ZhY3RvciAgICAgICAgfCAwLjIKIGF1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZCAg ICAgICAgICAgfCA1MAogYXV0b3ZhY3V1bV93b3JrX21lbSAgICAgICAgICAgICAgICAgICB8IC0x CiBhdXRvdmFjdXVtX3dvcmtlcl9zbG90cyAgICAgICAgICAgICAgIHwgMTYKIGRlYnVnX2F1dG92 YWN1dW1fc29ydCAgICAgICAgICAgICAgICAgfCBvbiAgICAgICA8PC0tLS0tLS0tLS0tCiBsb2df YXV0b3ZhY3V1bV9taW5fZHVyYXRpb24gICAgICAgICAgIHwgNjAwMDAwCiBtYXhfY29ubmVjdGlv bnMgICAgICAgICAgICAgICAgICAgICAgIHwgMTAwMAogc2hhcmVkX2J1ZmZlcnMgICAgICAgICAg ICAgICAgICAgICAgICB8IDEwNDg1NzYKKDIwIHJvd3MpCgo9PT0gVG90YWwgQWN0aXZpdHkgPT09 CkV4cGFuZGVkIGRpc3BsYXkgaXMgb24uCi1bIFJFQ09SRCAxIF0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0KdG90YWxfbl9kZWFkX3R1cCAgICAgICAgICAgICB8IDM1OTY1NzEKdG90YWxfbl9t b2Rfc2luY2VfYW5hbHl6ZSAgICB8IDMzMjk1NzM5CnRvdGFsX3JlbHR1cGxlcyAgICAgICAgICAg ICAgfCAxMjg5MjAzMzkKdG90YWxfYXV0b3ZhY3V1bV9jb3VudCAgICAgICB8IDE5MjMKdG90YWxf YXV0b2FuYWx5emVfY291bnQgICAgICB8IDIwMzYKdG90YWxfbl90dXBfdXBkICAgICAgICAgICAg ICB8IDI2OTkyMjQ5CnRvdGFsX25fdHVwX2hvdF91cGQgICAgICAgICAgfCA0CnRvdGFsX25fdHVw X25ld3BhZ2VfdXBkICAgICAgfCAzNzE0Mjk3CnRvdGFsX25fdHVwX2lucyAgICAgICAgICAgICAg fCAxNjEzOTgwMDAKdG90YWxfdG90YWxfYXV0b3ZhY3V1bV90aW1lICB8IDUwNDA4OTIKdG90YWxf dG90YWxfYXV0b2FuYWx5emVfdGltZSB8IDczNTA4MgphdmdfYXV0b3ZhY3V1bV90aW1lICAgICAg ICAgIHwgMjYyMS4zNwphdmdfYXV0b2FuYWx5emVfdGltZSAgICAgICAgIHwgMzYxLjA0CnRhYmxl X2NvdW50ICAgICAgICAgICAgICAgICAgfCAxOQoKIyMjIGxhc3Qgc25hcHNob3QgZnJvbSByZWxz dGF0c19tb25pdG9yLmxvZwoKID9jb2x1bW4/IHwgICAgICAgICAgIHRpbWVzdGFtcCAgICAgICAg ICAgfCAgICAgcmVsbmFtZSAgICAgIHwgcmVsdHVwbGVzIHwgbl9kZWFkX3R1cCB8IGF2X2NvdW50 IHwgYWFfY291bnQgfCB0b3RhbF9hdl90aW1lIHwgdG90YWxfYWFfdGltZSB8IG5fdHVwX3VwZCB8 IG5fdHVwX2hvdF91cGQgfCBuX3R1cF9pbnMgfCBhdmdfYXZfdGltZSB8IGF2Z19hYV90aW1lIAot LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCiBUQUJfREFUQSB8IDIwMjUtMTEt MDYgMjA6NDY6MjYuMDczMTUzKzAwIHwgdGFibGVfYmF0Y2hfMiAgICB8ICA0NTY0NzgwMCB8ICAg ICAgICAgIDAgfCAgICAgICAxOSB8ICAgICAgIDMyIHwgICAgICAgIDM5Nzg2MSB8ICAgICAgICAg NTg4NjUgfCAgICAgICAgIDAgfCAgICAgICAgICAgICAwIHwgIDUyMDAwMDAwIHwgICAgMjA5NDAu MDUgfCAgICAgMTgzOS41MwogVEFCX0RBVEEgfCAyMDI1LTExLTA2IDIwOjQ2OjI2LjA3MzE1Mysw MCB8IHRhYmxlX2JhdGNoXzMgICAgfCAgNDIxOTg0MDAgfCAgICAgICAgICAwIHwgICAgICAgMTYg fCAgICAgICAyNiB8ICAgICAgICA1NDk2MjQgfCAgICAgICAgIDQ4NTg5IHwgICAgICAgICAwIHwg ICAgICAgICAgICAgMCB8ICA0NzEwMDAwMCB8ICAgIDM0MzUxLjUwIHwgICAgIDE4NjguODEKIFRB Ql9EQVRBIHwgMjAyNS0xMS0wNiAyMDo0NjoyNi4wNzMxNTMrMDAgfCB0YWJsZV9iYXRjaF8xICAg IHwgIDMyODc4MzAwIHwgICAgICAgICAgMCB8ICAgICAgIDE2IHwgICAgICAgMjkgfCAgICAgICAg MjQ0OTQ3IHwgICAgICAgICAzNTk0MCB8ICAgICAgICAgMCB8ICAgICAgICAgICAgIDAgfCAgNTM1 MDAwMDAgfCAgICAxNTMwOS4xOSB8ICAgICAxMjM5LjMxCiBUQUJfREFUQSB8IDIwMjUtMTEtMDYg MjA6NDY6MjYuMDczMTUzKzAwIHwgdGFibGVfMTNfNDA5NjAwMCB8ICAgNDA5NTA4MCB8ICAgIDE2 NzQzNjggfCAgICAgICAgMCB8ICAgICAgICAyIHwgICAgICAgICAgICAgMCB8ICAgICAgICAgMTE5 NTcgfCAgIDE2ODA3MTkgfCAgICAgICAgICAgICAwIHwgICA0MDk2MDAwIHwgICAgICAgIDAuMDAg fCAgICAgNTk3OC41MAogVEFCX0RBVEEgfCAyMDI1LTExLTA2IDIwOjQ2OjI2LjA3MzE1MyswMCB8 IHRhYmxlXzEyXzIwNDgwMDAgfCAgIDIwNDgwMTAgfCAgICAgNzg1ODM0IHwgICAgICAgIDIgfCAg ICAgICAgNCB8ICAgICAgICA5NzM2ODYgfCAgICAgICAgIDQ3NzQyIHwgICAxNjgzMDAwIHwgICAg ICAgICAgICAgMCB8ICAgMjA0ODAwMCB8ICAgNDg2ODQzLjAwIHwgICAgMTE5MzUuNTAKIFRBQl9E QVRBIHwgMjAyNS0xMS0wNiAyMDo0NjoyNi4wNzMxNTMrMDAgfCB0YWJsZV8xMV8xMDI0MDAwIHwg ICAxMDIzNTYwIHwgICAgIDQ3MTU2OSB8ICAgICAgICA1IHwgICAgICAgIDggfCAgICAgICAxMDEy MzAwIHwgICAgICAgICA2MTIyMiB8ICAgMTY3Nzc5NSB8ICAgICAgICAgICAgIDAgfCAgIDEwMjQw MDAgfCAgIDIwMjQ2MC4wMCB8ICAgICA3NjUyLjc1CiBUQUJfREFUQSB8IDIwMjUtMTEtMDYgMjA6 NDY6MjYuMDczMTUzKzAwIHwgdGFibGVfMTBfNTEyMDAwICB8ICAgIDUxMzA3MCB8ICAgICAgNjUx MDQgfCAgICAgICAxMiB8ICAgICAgIDE4IHwgICAgICAgIDc3MTIyMiB8ICAgICAgICAgNjQ4NTIg fCAgIDE2NzkzNDggfCAgICAgICAgICAgICAwIHwgICAgNTEyMDAwIHwgICAgNjQyNjguNTAgfCAg ICAgMzYwMi44OQogVEFCX0RBVEEgfCAyMDI1LTExLTA2IDIwOjQ2OjI2LjA3MzE1MyswMCB8IHRh YmxlXzlfMjU2MDAwICAgfCAgICAyNTU4NzcgfCAgICAgMTA0NTM3IHwgICAgICAgMjIgfCAgICAg ICAzNCB8ICAgICAgICAyNjM3ODggfCAgICAgICAgIDUyNTEzIHwgICAxNjgwMDI2IHwgICAgICAg ICAgICAgMCB8ICAgIDI1NjAwMCB8ICAgIDExOTkwLjM2IHwgICAgIDE1NDQuNTAKIFRBQl9EQVRB IHwgMjAyNS0xMS0wNiAyMDo0NjoyNi4wNzMxNTMrMDAgfCB0YWJsZV84XzEyODAwMCAgIHwgICAg MTI3OTc0IHwgICAgICA1MjU4OSB8ICAgICAgIDQwIHwgICAgICAgNTcgfCAgICAgICAgMTgyNjIy IHwgICAgICAgICA1ODQyNyB8ICAgMTY3OTA5NSB8ICAgICAgICAgICAgIDAgfCAgICAxMjgwMDAg fCAgICAgNDU2NS41NSB8ICAgICAxMDI1LjA0CiBUQUJfREFUQSB8IDIwMjUtMTEtMDYgMjA6NDY6 MjYuMDczMTUzKzAwIHwgdGFibGVfN182NDAwMCAgICB8ICAgICA2Mzk5NSB8ICAgICAgMTU0NTkg fCAgICAgICA3MSB8ICAgICAgIDg4IHwgICAgICAgIDEyMzA4NCB8ICAgICAgICAgNTA3ODkgfCAg IDE2ODAxNDMgfCAgICAgICAgICAgICAwIHwgICAgIDY0MDAwIHwgICAgIDE3MzMuNTggfCAgICAg IDU3Ny4xNQogVEFCX0RBVEEgfCAyMDI1LTExLTA2IDIwOjQ2OjI2LjA3MzE1MyswMCB8IHRhYmxl XzZfMzIwMDAgICAgfCAgICAgMzE5OTggfCAgICAgIDE4NjUxIHwgICAgICAxMTUgfCAgICAgIDEz MCB8ICAgICAgICAgOTcwNjMgfCAgICAgICAgIDQ3NTU3IHwgICAxNjc4NzUzIHwgICAgICAgICAg ICAgMCB8ICAgICAzMjAwMCB8ICAgICAgODQ0LjAzIHwgICAgICAzNjUuODIKIFRBQl9EQVRBIHwg MjAyNS0xMS0wNiAyMDo0NjoyNi4wNzMxNTMrMDAgfCB0YWJsZV81XzE2MDAwICAgIHwgICAgIDE2 MDAwIHwgICAgICAyMTI4MSB8ICAgICAgMTcwIHwgICAgICAxNzAgfCAgICAgICAgIDc3OTI1IHwg ICAgICAgICAzNTUyNyB8ICAgMTY4MDA1NSB8ICAgICAgICAgICAgIDAgfCAgICAgMTYwMDAgfCAg ICAgIDQ1OC4zOCB8ICAgICAgMjA4Ljk4CiBUQUJfREFUQSB8IDIwMjUtMTEtMDYgMjA6NDY6MjYu MDczMTUzKzAwIHwgdGFibGVfNF84MDAwICAgICB8ICAgICAgNzk5NyB8ICAgICAgMjM0ODcgfCAg ICAgIDE5NSB8ICAgICAgMTk3IHwgICAgICAgICA2NTAzOCB8ICAgICAgICAgMjc3NzcgfCAgIDE2 ODIyOTAgfCAgICAgICAgICAgICAwIHwgICAgICA4MDAwIHwgICAgICAzMzMuNTMgfCAgICAgIDE0 MS4wMAogVEFCX0RBVEEgfCAyMDI1LTExLTA2IDIwOjQ2OjI2LjA3MzE1MyswMCB8IHRhYmxlXzNf NDAwMCAgICAgfCAgICAgIDQwMDAgfCAgICAgIDI2ODI2IHwgICAgICAyMDYgfCAgICAgIDIwNiB8 ICAgICAgICAgNTY4MTEgfCAgICAgICAgIDIyMzI2IHwgICAxNjgyNTQwIHwgICAgICAgICAgICAg MSB8ICAgICAgNDAwMCB8ICAgICAgMjc1Ljc4IHwgICAgICAxMDguMzgKIFRBQl9EQVRBIHwgMjAy NS0xMS0wNiAyMDo0NjoyNi4wNzMxNTMrMDAgfCB0YWJsZV8xNl80MDAwICAgIHwgICAgICAzOTk5 IHwgICAgICAyNTUxNCB8ICAgICAgMjA2IHwgICAgICAyMDYgfCAgICAgICAgIDU2NTE1IHwgICAg ICAgICAyMjE0MiB8ICAgMTY4MTE4MyB8ICAgICAgICAgICAgIDAgfCAgICAgIDQwMDAgfCAgICAg IDI3NC4zNCB8ICAgICAgMTA3LjQ5CiBUQUJfREFUQSB8IDIwMjUtMTEtMDYgMjA6NDY6MjYuMDcz MTUzKzAwIHwgdGFibGVfMTVfMjAwMCAgICB8ICAgICAgMjAwMCB8ICAgICAgMjg0MjkgfCAgICAg IDIwNyB8ICAgICAgMjA3IHwgICAgICAgICA0ODIyNyB8ICAgICAgICAgMTk2NzcgfCAgIDE2ODE1 NTMgfCAgICAgICAgICAgICAyIHwgICAgICAyMDAwIHwgICAgICAyMzIuOTggfCAgICAgICA5NS4w NgogVEFCX0RBVEEgfCAyMDI1LTExLTA2IDIwOjQ2OjI2LjA3MzE1MyswMCB8IHRhYmxlXzJfMjAw MCAgICAgfCAgICAgIDIwMDAgfCAgICAgIDI4MjQ3IHwgICAgICAyMDcgfCAgICAgIDIwNyB8ICAg ICAgICAgNDc2ODIgfCAgICAgICAgIDE5NTM2IHwgICAxNjc5NjE1IHwgICAgICAgICAgICAgMCB8 ICAgICAgMjAwMCB8ICAgICAgMjMwLjM1IHwgICAgICAgOTQuMzgKIFRBQl9EQVRBIHwgMjAyNS0x MS0wNiAyMDo0NjoyNi4wNzMxNTMrMDAgfCB0YWJsZV8xXzEwMDAgICAgIHwgICAgICAxMDAwIHwg ICAgICAzMDMwOSB8ICAgICAgMjA3IHwgICAgICAyMDcgfCAgICAgICAgIDM2NDQyIHwgICAgICAg ICAxNjQ5MiB8ICAgMTY4MDEwMSB8ICAgICAgICAgICAgIDAgfCAgICAgIDEwMDAgfCAgICAgIDE3 Ni4wNSB8ICAgICAgIDc5LjY3CiBUQUJfREFUQSB8IDIwMjUtMTEtMDYgMjA6NDY6MjYuMDczMTUz KzAwIHwgdGFibGVfMTRfMTAwMCAgICB8ICAgICAgIDk5OSB8ICAgICAgMzAzMTQgfCAgICAgIDIw NyB8ICAgICAgMjA3IHwgICAgICAgICAzNjA1NSB8ICAgICAgICAgMTY4NzUgfCAgIDE2ODE5OTAg fCAgICAgICAgICAgICAxIHwgICAgICAxMDAwIHwgICAgICAxNzQuMTggfCAgICAgICA4MS41Mgoo MTkgcm93cykK --000000000000f517e90642f47d4f Content-Type: application/x-sh; name="test_autovacuum_prioritization.sh" Content-Disposition: attachment; filename="test_autovacuum_prioritization.sh" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhnzc5xs2 IyEvdXNyL2Jpbi9lbnYgYmFzaApzZXQgLWV1byBwaXBlZmFpbAoKIyA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIFNjcmlwdCBO YW1lOiB0ZXN0X2F1dG92YWN1dW1fcHJpb3JpdGl6YXRpb24uc2gKIyBBdXRob3I6IFNhbWkgSW1z ZWloCiMKIyBQdXJwb3NlOgojICAgQXV0b21hdGVzIGFuIE9MVFAgKyBiYXRjaCB3b3JrbG9hZCB0 ZXN0IHRvIG9ic2VydmUgYW5kIGFuYWx5emUKIyAgIFBvc3RncmVTUUwgYXV0b3ZhY3V1bSBwcmlv cml0aXphdGlvbiBiZWhhdmlvci4KIwojIFdoYXQgaXQgZG9lczoKIyAgIC0gQ3JlYXRlcyBzeW50 aGV0aWMgT0xUUCBhbmQgYmF0Y2ggdGFibGVzLgojICAgLSBSdW5zIGNvbmN1cnJlbnQgcGdiZW5j aCB3b3JrbG9hZHMgKHVwZGF0ZXMgKyBpbnNlcnRzKS4KIyAgIC0gTW9uaXRvcnMgcGdfc3RhdF9h bGxfdGFibGVzIGZvciBhdXRvdmFjdXVtIGFuZCBhbmFseXplIGFjdGl2aXR5LgojICAgLSBDb2xs ZWN0cyBQb3N0Z3JlU1FMIGxvZ3MgYW5kIGdlbmVyYXRlcyBhIHN1bW1hcnkgcmVwb3J0LgojCiMg VXNhZ2U6CiMgICAuL3Rlc3RfYXV0b3ZhY3V1bV9wcmlvcml0aXphdGlvbi5zaCAvcGF0aC90by9j b25maWdfZmlsZQojCiMgT3V0cHV0OgojICAgQWxsIGxvZ3MgYW5kIHRlbXBvcmFyeSBmaWxlcyBh cmUgc3RvcmVkIHVuZGVyICRCQVNFX0RJUi90bXAvCiMgICBLZXkgb3V0cHV0cyBpbmNsdWRlOgoj ICAgICAtIG9sdHAub3V0IC8gYmF0Y2gub3V0IChwZ2JlbmNoIGxvZ3MpCiMgICAgIC0gcmVsc3Rh dHNfbW9uaXRvci5sb2cgKGF1dG92YWN1dW0gc3RhdHMgb3ZlciB0aW1lKQojICAgICAtIHN1bW1h cnlfcmVwb3J0LnR4dCAoZmluYWwgbWV0cmljcyBzdW1tYXJ5KQojICAgICAtIHBnX2xvZ3MvIChQ b3N0Z3JlU1FMIGxvZ3MpCiMKIyBSZXF1aXJlbWVudHM6CiMgICAtIFBvc3RncmVTUUwgKHBzcWws IHBnYmVuY2gsIHBnX2N0bCkgYXZhaWxhYmxlIGluIFBBVEgKIyAgIC0gU3VmZmljaWVudCBwZXJt aXNzaW9ucyB0byByZXN0YXJ0IFBvc3RncmVTUUwKIyAgIC0gTm9uLXByb2R1Y3Rpb24gdGVzdCBl bnZpcm9ubWVudAojCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFeGFtcGxlIENvbmZpZyBGaWxlICh0ZXN0X2F1dG92YWN1 dW0uY29uZikKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQojIEJBU0VfRElSPSIkSE9NRS9zY3JpcHRzL3Rlc3RfYXV0b3ZhY3V1 bV9wcmlvcml0aXphdGlvbiIKIyBPTFRQX1RBQkxFUz0xMAojIE9MVFBfUk9XU19TVEFSVD0xMDAw CiMgT0xUUF9ST1dTX01VTFRJUExJRVI9MgojIE9MVFBfTUFYX1JPV1M9NTAwMDAwMAojIE9MVFBf Q09OTkVDVElPTlM9MjAwCiMgT0xUUF9SQVRFPTE1MDAwCiMgQkFUQ0hfVEFCTEVTPTIKIyBCQVRD SF9TSVpFPTEwMDAKIyBCQVRDSF9DT05ORUNUSU9OUz01CiMgQkFUQ0hfU0xFRVA9MjAKIyBUSU1F T1VUPTE4MDAKIyBCVUNLRVRTPTE1CiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFeGFtcGxlIFJ1bjoKIyAgIC4vdGVzdF9h dXRvdmFjdXVtX3ByaW9yaXRpemF0aW9uLnNoIC4vdGVzdF9hdXRvdmFjdXVtLmNvbmYKIyA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQoKQ09ORklHX0ZJTEU9IiQxIgoKaWYgWyAteiAiJENPTkZJR19GSUxFIiBdIHx8IFsgISAtZiAi JENPTkZJR19GSUxFIiBdIHx8IFsgISAtciAiJENPTkZJR19GSUxFIiBdOyB0aGVuCiAgICBlY2hv ICJFcnJvcjogQ29uZmlnIGZpbGUgbm90IGZvdW5kIG9yIG5vdCByZWFkYWJsZTogJyRDT05GSUdf RklMRSciCiAgICBlY2hvICJVc2FnZTogJDAgL3BhdGgvdG8vY29uZmlnX2ZpbGUiCiAgICBleGl0 IDEKZmkKCiMgTG9hZCB0aGUgY29uZmlnCnNvdXJjZSAiJENPTkZJR19GSUxFIgoKIyA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyBUZW1wb3JhcnkgYW5kIGxvZyBm aWxlcy4gRE8gTk9UIFRPVUNIISEKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KVE1QX0RJUj0iJEJBU0VfRElSL3RtcCIKVE1QX0JBVENIX0RJUj0iJFRNUF9ESVIv YmF0Y2hfd29ya2xvYWQiClRNUF9PTFRQX0RJUj0iJFRNUF9ESVIvb2x0cF93b3JrbG9hZCIKCk9M VFBfTE9HPSIkVE1QX0RJUi9vbHRwLm91dCIKQkFUQ0hfTE9HPSIkVE1QX0RJUi9iYXRjaC5vdXQi ClJFQURZX0ZJTEU9IiRUTVBfRElSL29sdHBfcmVhZHkiClNVTU1BUllfRklMRT0iJFRNUF9ESVIv c3VtbWFyeV9yZXBvcnQudHh0IgpQR19MT0dTPSIkVE1QX0RJUi9wZ19sb2dzIgpDT05GSUdfTE9H PSIkVE1QX0RJUi9jb25maWciClJFTFNUQVRTX01PTklUT1JfTE9HPSIkVE1QX0RJUi9yZWxzdGF0 c19tb25pdG9yLmxvZyIKCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CiMgUHJlcGFyZSB0ZW1wIGRpcmVjdG9yeQojID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQppZiBbIC1uICIkVE1QX0RJUiIgXSAmJiBbICIkVE1QX0RJUiIgIT0g Ii8iIF07IHRoZW4KICAgIGVjaG8gIlByZXBhcmluZyB0ZW1wIGRpcmVjdG9yeSBhdCAkVE1QX0RJ Ui4uLiIKICAgIHJtIC1yZiAiJFRNUF9ESVIiCiAgICBta2RpciAtcCAiJFRNUF9ESVIiICIkUEdf TE9HUyIKZWxzZQogICAgZWNobyAiSW52YWxpZCBUTVBfRElSISIKICAgIGV4aXQgMQpmaQoKIyA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyBTYXZlIHRoZSBjb25m aWcKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KY2F0ID4gIiRD T05GSUdfTE9HIiA8PEVPRgpCQVNFX0RJUj0kQkFTRV9ESVIKT0xUUF9UQUJMRVM9JE9MVFBfVEFC TEVTCk9MVFBfUk9XU19TVEFSVD0kT0xUUF9ST1dTX1NUQVJUCk9MVFBfUk9XU19NVUxUSVBMSUVS PSRPTFRQX1JPV1NfTVVMVElQTElFUgpPTFRQX01BWF9ST1dTPSRPTFRQX01BWF9ST1dTCkJBVENI X1RBQkxFUz0kQkFUQ0hfVEFCTEVTCkJBVENIX1NJWkU9JEJBVENIX1NJWkUKQkFUQ0hfQ09OTkVD VElPTlM9JEJBVENIX0NPTk5FQ1RJT05TCk9MVFBfQ09OTkVDVElPTlM9JE9MVFBfQ09OTkVDVElP TlMKVElNRU9VVD0kVElNRU9VVApPTFRQX1JBVEU9JE9MVFBfUkFURQpCQVRDSF9TTEVFUD0kQkFU Q0hfU0xFRVAKQlVDS0VUUz0kQlVDS0VUUwpFT0YKCiMgPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiMgT0xUUCBXb3JrbG9hZAojID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQpydW5fb2x0cCgpIHsKICAgIGxvY2FsIE5VTV9UQUJMRVM9 IiQxIgogICAgbG9jYWwgTlVNX1JPV1M9IiQyIgogICAgbG9jYWwgUkVBRFlfRklMRT0iJDMiCiAg ICBsb2NhbCBDT05ORUNUSU9OUz0iJDQiCiAgICBsb2NhbCBUSU1FT1VUPSIkNSIKICAgIGxvY2Fs IE1BWF9ST1dTPSIkNiIKICAgIGxvY2FsIE1VTFRJUExJRVI9IiQ3IgogICAgbG9jYWwgVE1QX09M VFBfRElSPSIkOCIKICAgIGxvY2FsIFJBVEVfT1BUPSIiCgogICAgaWYgWyAtbiAiJHtPTFRQX1JB VEU6LX0iIF07IHRoZW4KICAgICAgICBSQVRFX09QVD0iLVIke09MVFBfUkFURX0iCiAgICAgICAg ZWNobyAiVXNpbmcgT0xUUCByYXRlIGxpbWl0OiAke09MVFBfUkFURX0gVFBTIgogICAgZmkKCiAg ICBlY2hvICI9PT0gW09MVFBdIENyZWF0aW5nIHRhYmxlcyA9PT0iCiAgICBsb2NhbCBDVVJfUk9X Uz0iJE5VTV9ST1dTIgogICAgbG9jYWwgVEFCTEVfTkFNRVM9KCkKCiAgICBmb3IgaSBpbiAkKHNl cSAxICIkTlVNX1RBQkxFUyIpOyBkbwogICAgICAgIGxvY2FsIFRBQkxFPSJ0YWJsZV8ke2l9XyR7 Q1VSX1JPV1N9IgogICAgICAgIFRBQkxFX05BTUVTKz0oIiRUQUJMRSIpCiAgICAgICAgZWNobyAi Q3JlYXRpbmcgdGFibGUgJFRBQkxFIHdpdGggJENVUl9ST1dTIHJvd3MuLi4iCiAgICAgICAgcHNx bCA8PEVPRgpDUkVBVEUgVU5MT0dHRUQgVEFCTEUgJFRBQkxFICgKICAgIGlkIEJJR1NFUklBTCBQ UklNQVJZIEtFWSwKICAgIHVwZGF0ZV90aW1lIHRpbWVzdGFtcCwKICAgIGNvbDEgVEVYVCwKICAg IGNvbDIgQklHSU5ULAogICAgY29sMyBURVhULAogICAgY29sNCBURVhUCik7CkNSRUFURSBJTkRF WCBPTiAkVEFCTEUgKHVwZGF0ZV90aW1lKTsKRU9GCgogICAgICAgIGVjaG8gIlBvcHVsYXRpbmcg JFRBQkxFLi4uIgogICAgICAgIHBzcWwgPDxFT0YKQUxURVIgVEFCTEUgJFRBQkxFIFNFVCAoYXV0 b3ZhY3V1bV9lbmFibGVkID0gT0ZGKTsKSU5TRVJUIElOVE8gJFRBQkxFICh1cGRhdGVfdGltZSwg Y29sMSwgY29sMiwgY29sMywgY29sNCkKU0VMRUNUCiAgICBOVUxMLAogICAgbWQ1KHJhbmRvbSgp Ojp0ZXh0KSwKICAgIChyYW5kb20oKSoxMDAwMDAwKTo6QklHSU5ULAogICAgcmVwZWF0KCcgJywg MTAwMCksCiAgICByZXBlYXQoJyAnLCAxMDAwKQpGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAkQ1VS X1JPV1MpOwpDUkVBVEUgSU5ERVggT04gJFRBQkxFIChjb2wzKTsKQ1JFQVRFIElOREVYIE9OICRU QUJMRSAoY29sNCk7CkVPRgoKICAgICAgICBDVVJfUk9XUz0kKChDVVJfUk9XUyAqIE1VTFRJUExJ RVIpKQogICAgICAgIGlmICgoIENVUl9ST1dTID4gTUFYX1JPV1MgKSk7IHRoZW4KICAgICAgICAg ICAgQ1VSX1JPV1M9IiROVU1fUk9XUyIKICAgICAgICBmaQogICAgZG9uZQoKICAgIGVjaG8gIj09 PSBbT0xUUF0gVmFjdXVtaW5nIHRhYmxlcyA9PT0iCiAgICBmb3IgVEFCTEUgaW4gIiR7VEFCTEVf TkFNRVNbQF19IjsgZG8KICAgICAgICBlY2hvICJWYWN1dW1pbmcgJFRBQkxFLi4uIgogICAgICAg IHBzcWwgLWMgIlZBQ1VVTSBGUkVFWkUgJFRBQkxFOyIgXAogICAgICAgICAgICAgLWMgIkFMVEVS IFRBQkxFICRUQUJMRSBTRVQgKGF1dG92YWN1dW1fZW5hYmxlZCA9IE9OKTsiCiAgICBkb25lCgog ICAgZWNobyAiPT09IFtPTFRQXSBSZXN0YXJ0aW5nIFBvc3RncmVTUUwgPT09IgoKICAgICMgUnVu IHN0b3AgY29tbWFuZCBpbiBiYWNrZ3JvdW5kCiAgICBwZ19jdGwgc3RvcCAtbWYgJgogICAgcGdj dGxfcGlkPSQhCgogICAgIyBXYWl0IGZvciBwb3N0Z3JlcyB0byBhY3R1YWxseSBzdG9wCiAgICB3 aGlsZSBwZ3JlcCAteCBwb3N0Z3JlcyA+L2Rldi9udWxsOyBkbwogICAgICAgIGVjaG8gIiAgV2Fp dGluZyBmb3Igc2h1dGRvd24uLi4iCiAgICAgICAgc2xlZXAgMQogICAgZG9uZQoKICAgICMgT3B0 aW9uYWxseSB3YWl0IGZvciB0aGUgcGdfY3RsIGJhY2tncm91bmQgam9iIHRvIGZpbmlzaAogICAg d2FpdCAkcGdjdGxfcGlkCgogICAgZWNobyAiUG9zdGdyZVNRTCBoYXMgc3RvcHBlZC4iCgogICAg cGdfY3RsIHN0YXJ0CiAgICB1bnRpbCBwZ19pc3JlYWR5IC1xOyBkbwogICAgICAgIGVjaG8gIiAg V2FpdGluZyBmb3Igc3RhcnR1cC4uLiIKICAgICAgICBzbGVlcCAxCiAgICBkb25lCiAgICBlY2hv ICJQb3N0Z3JlU1FMIHJlc3RhcnRlZC4iCgogICAgdG91Y2ggIiRSRUFEWV9GSUxFIgoKICAgIGVj aG8gIj09PSBbT0xUUF0gR2VuZXJhdGluZyBwZXItdGFibGUgcGdiZW5jaCBzY3JpcHRzID09PSIK ICAgIG1rZGlyIC1wICIkVE1QX09MVFBfRElSIgoKICAgIENVUl9ST1dTPSIkTlVNX1JPV1MiCiAg ICBsb2NhbCBQR19GSUxFUz0oKQogICAgZm9yIGkgaW4gJChzZXEgMSAiJE5VTV9UQUJMRVMiKTsg ZG8KICAgICAgICBsb2NhbCBUQUJMRT0idGFibGVfJHtpfV8ke0NVUl9ST1dTfSIKICAgICAgICBs b2NhbCBUQUJMRV9GSUxFPSIkVE1QX09MVFBfRElSLyR7VEFCTEV9LnNxbCIKCiAgICAgICAgZWNo byAiQ3JlYXRpbmcgcGdiZW5jaCBzY3JpcHQgZm9yICR7VEFCTEV9IHdpdGggJHtDVVJfUk9XU30g cm93cy4uLiIKICAgICAgICBjYXQgPiAiJFRBQkxFX0ZJTEUiIDw8RU9GClxzZXQgaWQgcmFuZG9t KDEsICRDVVJfUk9XUykKVVBEQVRFICR7VEFCTEV9IFNFVCB1cGRhdGVfdGltZSA9IG5vdygpIFdI RVJFIGlkID0gOmlkOwpFT0YKICAgICAgICBQR19GSUxFUys9KCItZiIgIiRUQUJMRV9GSUxFQDEi KQoKICAgICAgICBDVVJfUk9XUz0kKChDVVJfUk9XUyAqIE1VTFRJUExJRVIpKQogICAgICAgIGlm ICgoIENVUl9ST1dTID4gTUFYX1JPV1MgKSk7IHRoZW4KICAgICAgICAgICAgQ1VSX1JPV1M9IiRO VU1fUk9XUyIKICAgICAgICBmaQogICAgZG9uZQoKICAgIGVjaG8gIj09PSBbT0xUUF0gU3RhcnRp bmcgcGdiZW5jaCB3b3JrbG9hZCA9PT0iCiAgICBwZ2JlbmNoIC1uICIke1BHX0ZJTEVTW0BdfSIg LWMiJENPTk5FQ1RJT05TIiAtVCIkVElNRU9VVCIgJFJBVEVfT1BUCn0KCiMgPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgQmF0Y2ggV29ya2xvYWQKIyA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KcnVuX2JhdGNoKCkgewogICAgbG9j YWwgQkFUQ0hfU0laRT0iJDEiCiAgICBsb2NhbCBUTVBfRElSPSIkMiIKICAgIGxvY2FsIE5VTV9U QUJMRVM9IiQzIgogICAgbG9jYWwgQ09OTkVDVElPTlM9IiQ0IgogICAgbG9jYWwgVElNRU9VVD0i JDUiCiAgICBsb2NhbCBSQVRFX09QVD0iIgoKICAgIGlmIFsgLW4gIiR7QkFUQ0hfUkFURTotfSIg XTsgdGhlbgogICAgICAgIFJBVEVfT1BUPSItUiR7QkFUQ0hfUkFURX0iCiAgICAgICAgZWNobyAi VXNpbmcgQmF0Y2ggcmF0ZSBsaW1pdDogJHtCQVRDSF9SQVRFfSBUUFMiCiAgICBmaQoKICAgIG1r ZGlyIC1wICIkVE1QX0RJUiIKICAgIGVjaG8gIj09PSBbQmF0Y2hdIENyZWF0aW5nIHRhYmxlcyA9 PT0iCiAgICBmb3IgaSBpbiAkKHNlcSAxICIkTlVNX1RBQkxFUyIpOyBkbwogICAgICAgIGxvY2Fs IFRBQkxFPSJ0YWJsZV9iYXRjaF8kaSIKICAgICAgICBwc3FsIC1jICJDUkVBVEUgVU5MT0dHRUQg VEFCTEUgSUYgTk9UIEVYSVNUUyAkVEFCTEUgKAogICAgICAgICAgICAgICAgICAgICBpZCBCSUdJ TlQsIGlkMiBCSUdJTlQsIGlkMyBCSUdJTlQsIGlkNCBCSUdJTlQsCiAgICAgICAgICAgICAgICAg ICAgIGMxIFRFWFQsIGMyIFRFWFQKICAgICAgICAgICAgICAgICApOyIKICAgICAgICBwc3FsIC1j ICJDUkVBVEUgSU5ERVggT04gJFRBQkxFIChpZCk7IgogICAgICAgIHBzcWwgLWMgIkNSRUFURSBJ TkRFWCBPTiAkVEFCTEUgKGlkMik7IgogICAgICAgIHBzcWwgLWMgIkNSRUFURSBJTkRFWCBPTiAk VEFCTEUgKGMxKTsiCiAgICBkb25lCgogICAgZWNobyAiPT09IFtCYXRjaF0gQ3JlYXRpbmcgU1FM IGZpbGVzID09PSIKICAgIGxvY2FsIFBHX0ZJTEVTPSgpCiAgICBmb3IgaSBpbiAkKHNlcSAxICIk TlVNX1RBQkxFUyIpOyBkbwogICAgICAgIGxvY2FsIFRBQkxFPSJ0YWJsZV9iYXRjaF8kaSIKICAg ICAgICBsb2NhbCBQR19GSUxFPSIkVE1QX0RJUi8ke1RBQkxFfS5zcWwiCiAgICAgICAgY2F0ID4g IiRQR19GSUxFIiA8PEVPRgpJTlNFUlQgSU5UTyAkVEFCTEUgKGlkLCBpZDIsIGlkMywgaWQ0LCBj MSwgYzIpClNFTEVDVCBuLCBuLCBuLCBuLCByZXBlYXQoJyAnLCAxMDApLCByZXBlYXQoJyAnLCAx MDApCkZST00gZ2VuZXJhdGVfc2VyaWVzKDEsICRCQVRDSF9TSVpFKSBBUyBuOwpcc2xlZXAgJHtC QVRDSF9TTEVFUH0gcwpFT0YKICAgICAgICBQR19GSUxFUys9KCItZiIgIiRQR19GSUxFQDEiKQog ICAgZG9uZQoKICAgIGVjaG8gIj09PSBbQmF0Y2hdIFN0YXJ0aW5nIHBnYmVuY2ggaW5zZXJ0cyA9 PT0iCiAgICBwZ2JlbmNoIC1uICIke1BHX0ZJTEVTW0BdfSIgLWMiJENPTk5FQ1RJT05TIiAtVCIk VElNRU9VVCIKfQoKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K IyBNb25pdG9yIHJlbHN0YXRzCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Cm1vbml0b3JfcmVsc3RhdHMoKSB7CiAgICBsb2NhbCBMT0dfRklMRT0iJDEiCiAgICBs b2NhbCBUSU1FT1VUPSIkMiIKICAgIGxvY2FsIElOVEVSVkFMPTEwCiAgICBsb2NhbCBTVEFSVF9U SU1FPSQoZGF0ZSArJXMpCgogICAgd2hpbGUgdHJ1ZTsgZG8KICAgICAgICBDVVJSRU5UX1RJTUU9 JChkYXRlICslcykKICAgICAgICBFTEFQU0VEPSQoKENVUlJFTlRfVElNRSAtIFNUQVJUX1RJTUUp KQogICAgICAgIGlmICgoIEVMQVBTRUQgPj0gVElNRU9VVCApKTsgdGhlbgogICAgICAgICAgICBl Y2hvICJNb25pdG9yIHJlYWNoZWQgdGltZW91dCAoJHtFTEFQU0VEfXMpLCBzdG9wcGluZy4iID4+ ICIkTE9HX0ZJTEUiCiAgICAgICAgICAgIGJyZWFrCiAgICAgICAgZmkKCiAgICAgICAgcHNxbCAt WCAtcSAtYyAiClNFTEVDVCAnVEFCX0RBVEEnLAogICAgICAgbm93KCkgdGltZXN0YW1wLAogICAg ICAgYS5yZWxuYW1lLAogICAgICAgYi5yZWx0dXBsZXM6Om51bWVyaWMgQVMgcmVsdHVwbGVzLAog ICAgICAgYS5uX2RlYWRfdHVwLAogICAgICAgYS5hdXRvdmFjdXVtX2NvdW50IEFTIGF2X2NvdW50 LAogICAgICAgYS5hdXRvYW5hbHl6ZV9jb3VudCBBUyBhYV9jb3VudCwKICAgICAgIGEudG90YWxf YXV0b3ZhY3V1bV90aW1lIEFTIHRvdGFsX2F2X3RpbWUsCiAgICAgICBhLnRvdGFsX2F1dG9hbmFs eXplX3RpbWUgQVMgdG90YWxfYWFfdGltZSwKICAgICAgIGEubl90dXBfdXBkLAogICAgICAgYS5u X3R1cF9ob3RfdXBkLAogICAgICAgYS5uX3R1cF9pbnMsCiAgICAgICAtLSBBdmVyYWdlIGF1dG92 YWN1dW0gdGltZSwgc2FmZWx5IGF2b2lkaW5nIGRpdmlkZSBieSB6ZXJvCiAgICAgICBST1VORCgK ICAgICAgICAgICBDQVNFIFdIRU4gYS5hdXRvdmFjdXVtX2NvdW50ID4gMAogICAgICAgICAgICAg ICAgVEhFTiAoYS50b3RhbF9hdXRvdmFjdXVtX3RpbWU6Om51bWVyaWMgLyBhLmF1dG92YWN1dW1f Y291bnQpCiAgICAgICAgICAgRUxTRSAwCiAgICAgICAgICAgRU5ELCAyCiAgICAgICApIEFTIGF2 Z19hdl90aW1lLAogICAgICAgLS0gQXZlcmFnZSBhdXRvYW5hbHl6ZSB0aW1lLCBzYWZlbHkgYXZv aWRpbmcgZGl2aWRlIGJ5IHplcm8KICAgICAgIFJPVU5EKAogICAgICAgICAgIENBU0UgV0hFTiBh LmF1dG9hbmFseXplX2NvdW50ID4gMAogICAgICAgICAgICAgICAgVEhFTiAoYS50b3RhbF9hdXRv YW5hbHl6ZV90aW1lOjpudW1lcmljIC8gYS5hdXRvYW5hbHl6ZV9jb3VudCkKICAgICAgICAgICBF TFNFIDAKICAgICAgICAgICBFTkQsIDIKICAgICAgICkgQVMgYXZnX2FhX3RpbWUKRlJPTSBwZ19z dGF0X2FsbF90YWJsZXMgYQpKT0lOIHBnX2NsYXNzIGIgT04gYS5yZWxuYW1lID0gYi5yZWxuYW1l CldIRVJFIGEucmVsbmFtZSBMSUtFICd0YWJsZV8lJwpPUkRFUiBCWSA0IERFU0M7CiAgICAgICAg IiA+PiAiJExPR19GSUxFIiAyPiYxCgogICAgICAgIHNsZWVwICIkSU5URVJWQUwiCiAgICBkb25l Cn0KCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgU3RhcnQg d29ya2xvYWRzCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmVj aG8gIj09PSBTdGFydGluZyBPTFRQIHdvcmtsb2FkIGluIGJhY2tncm91bmQgPT09IgoocnVuX29s dHAgIiRPTFRQX1RBQkxFUyIgIiRPTFRQX1JPV1NfU1RBUlQiICIkUkVBRFlfRklMRSIgIiRPTFRQ X0NPTk5FQ1RJT05TIiAiJFRJTUVPVVQiICIkT0xUUF9NQVhfUk9XUyIgIiRPTFRQX1JPV1NfTVVM VElQTElFUiIgIiRUTVBfT0xUUF9ESVIiIHwgdGVlICIkT0xUUF9MT0ciKSAmCk9MVFBfUElEPSQh CgplY2hvICJXYWl0aW5nIGZvciBPTFRQIHJlYWR5IGZpbGUuLi4iCndoaWxlIFsgISAtZiAiJFJF QURZX0ZJTEUiIF07IGRvIHNsZWVwIDE7IGRvbmUKCmlmIFtbICIkQkFUQ0hfVEFCTEVTIiAtZ3Qg MCBdXTsgdGhlbgogICAgZWNobyAiT0xUUCByZWFkeSBkZXRlY3RlZCEgU3RhcnRpbmcgYmF0Y2gg d29ya2xvYWQuLi4iCiAgICAocnVuX2JhdGNoICIkQkFUQ0hfU0laRSIgIiRUTVBfQkFUQ0hfRElS IiAiJEJBVENIX1RBQkxFUyIgIiRCQVRDSF9DT05ORUNUSU9OUyIgIiRUSU1FT1VUIiB8IHRlZSAi JEJBVENIX0xPRyIpICYKICAgIEJBVENIX1BJRD0kIQplbHNlCiAgICBCQVRDSF9QSUQ9MApmaQoK ZWNobyAiPT09IFN0YXJ0aW5nIE1vbml0b3Jpbmcgam9iIGluIGJhY2tncm91bmQgPT09IgoobW9u aXRvcl9yZWxzdGF0cyAiJFJFTFNUQVRTX01PTklUT1JfTE9HIiAiJFRJTUVPVVQiKSAmCk1PTklU T1JfUElEPSQhCgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiMgTWFpbiB3YWl0IGxvb3AgdG8gdGVybWluYXRlIHRhc2tzIG9uIHRp bWVvdXQgb3IgY29tcGxldGlvbgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09ClNUQVJUX1RJTUU9JChkYXRlICslcykKTEFTVF9QUklO VD0wCgp3aGlsZSB0cnVlOyBkbwogICAgQ1VSUkVOVF9USU1FPSQoZGF0ZSArJXMpCiAgICBFTEFQ U0VEPSQoKENVUlJFTlRfVElNRSAtIFNUQVJUX1RJTUUpKQogICAgUkVNQUlOSU5HPSQoKFRJTUVP VVQgLSBFTEFQU0VEKSkKCiAgICBpZiAoKCBFTEFQU0VEIC0gTEFTVF9QUklOVCA+PSAzMCApKTsg dGhlbgogICAgICAgIGVjaG8gIlRpbWUgcmVtYWluaW5nOiAke1JFTUFJTklOR31zIgogICAgICAg IExBU1RfUFJJTlQ9JEVMQVBTRUQKICAgIGZpCgogICAgaWYgISBraWxsIC0wICIkT0xUUF9QSUQi IDI+L2Rldi9udWxsOyB0aGVuCiAgICAgICAgZWNobyAiT0xUUCB3b3JrbG9hZCBjb21wbGV0ZWQg 4oCUIHN0b3BwaW5nIGJhdGNoLi4uIgogICAgICAgIGlmIFsgIiR7QkFUQ0hfUElEOi0wfSIgLWd0 IDAgXTsgdGhlbgogICAgICAgICAgICBraWxsIC1URVJNICIkQkFUQ0hfUElEIiAyPi9kZXYvbnVs bCB8fCB0cnVlCiAgICAgICAgICAgIHdhaXQgIiRCQVRDSF9QSUQiIDI+L2Rldi9udWxsIHx8IHRy dWUKICAgICAgICBmaQogICAgICAgIGJyZWFrCiAgICBmaQoKICAgIGlmIFsgIiR7QkFUQ0hfUElE Oi0wfSIgLWd0IDAgXTsgdGhlbgogICAgICAgIGlmICEga2lsbCAtMCAiJEJBVENIX1BJRCIgMj4v ZGV2L251bGw7IHRoZW4KICAgICAgICAgICAgZWNobyAiQmF0Y2ggd29ya2xvYWQgY29tcGxldGVk IOKAlCBzdG9wcGluZyBPTFRQLi4uIgogICAgICAgICAgICBraWxsIC1URVJNICIkT0xUUF9QSUQi IDI+L2Rldi9udWxsIHx8IHRydWUKICAgICAgICAgICAgd2FpdCAiJE9MVFBfUElEIiAyPi9kZXYv bnVsbCB8fCB0cnVlCiAgICAgICAgICAgIGJyZWFrCiAgICAgICAgZmkKICAgIGZpCgogICAgaWYg KCggRUxBUFNFRCA+PSBUSU1FT1VUICkpOyB0aGVuCiAgICAgICAgZWNobyAiVGltZW91dCByZWFj aGVkICgke0VMQVBTRUR9cykg4oCUIHN0b3BwaW5nIHdvcmtsb2Fkcy4uLiIKICAgICAgICBpZiBb ICIke0JBVENIX1BJRDotMH0iIC1ndCAwIF07IHRoZW4KICAgICAgICAgICAga2lsbCAtVEVSTSAi JE9MVFBfUElEIiAiJEJBVENIX1BJRCIgMj4vZGV2L251bGwgfHwgdHJ1ZQogICAgICAgICAgICB3 YWl0ICIkT0xUUF9QSUQiIDI+L2Rldi9udWxsIHx8IHRydWUKICAgICAgICAgICAgd2FpdCAiJEJB VENIX1BJRCIgMj4vZGV2L251bGwgfHwgdHJ1ZQogICAgICAgIGVsc2UKICAgICAgICAgICAga2ls bCAtVEVSTSAiJE9MVFBfUElEIiAyPi9kZXYvbnVsbCB8fCB0cnVlCiAgICAgICAgICAgIHdhaXQg IiRPTFRQX1BJRCIgMj4vZGV2L251bGwgfHwgdHJ1ZQogICAgICAgIGZpCiAgICAgICAgYnJlYWsK ICAgIGZpCgogICAgc2xlZXAgMQpkb25lCgplY2hvICJCb3RoIHdvcmtsb2FkcyBmaW5pc2hlZC4i CgplY2hvICJTdG9wcGluZyByZWxzdGF0cyBtb25pdG9yLi4uIgpraWxsIC1URVJNICIkTU9OSVRP Ul9QSUQiIDI+L2Rldi9udWxsIHx8IHRydWUKd2FpdCAiJE1PTklUT1JfUElEIiAyPi9kZXYvbnVs bCB8fCB0cnVlCgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoj IENvbGxlY3QgUG9zdGdyZVNRTCBsb2dzCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CmNwICIkUEdEQVRBIi9sb2cvKiAiJFBHX0xPR1MiLy4KCiMgPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgU3VtbWFyeSBSZXBvcnQKIyA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KewplY2hvICI9PT0gRGF0YWJh c2UgU2V0dGluZ3MgPT09Igpwc3FsIDw8RU9GClNFTEVDVCBuYW1lLCBzZXR0aW5nCkZST00gcGdf c2V0dGluZ3MKV0hFUkUgbmFtZSBMSUtFICclYXV0b3ZhYyUnCiAgIE9SIG5hbWUgSU4gKCdzaGFy ZWRfYnVmZmVycycsICdtYXhfY29ubmVjdGlvbnMnKTsKRU9GCgplY2hvICI9PT0gVG90YWwgQWN0 aXZpdHkgPT09Igpwc3FsIDw8RU9GClx4ClNFTEVDVAogICAgU1VNKGMubl9kZWFkX3R1cCkgQVMg dG90YWxfbl9kZWFkX3R1cCwKICAgIFNVTShjLm5fbW9kX3NpbmNlX2FuYWx5emUpIEFTIHRvdGFs X25fbW9kX3NpbmNlX2FuYWx5emUsCiAgICBTVU0oYi5yZWx0dXBsZXM6Om51bWVyaWMpIEFTIHRv dGFsX3JlbHR1cGxlcywKICAgIFNVTShjLmF1dG92YWN1dW1fY291bnQpIEFTIHRvdGFsX2F1dG92 YWN1dW1fY291bnQsCiAgICBTVU0oYy5hdXRvYW5hbHl6ZV9jb3VudCkgQVMgdG90YWxfYXV0b2Fu YWx5emVfY291bnQsCiAgICBTVU0oYy5uX3R1cF91cGQpIEFTIHRvdGFsX25fdHVwX3VwZCwKICAg IFNVTShjLm5fdHVwX2hvdF91cGQpIEFTIHRvdGFsX25fdHVwX2hvdF91cGQsCiAgICBTVU0oYy5u X3R1cF9uZXdwYWdlX3VwZCkgQVMgdG90YWxfbl90dXBfbmV3cGFnZV91cGQsCiAgICBTVU0oYy5u X3R1cF9pbnMpIEFTIHRvdGFsX25fdHVwX2lucywKICAgIFNVTShjLnRvdGFsX2F1dG92YWN1dW1f dGltZSkgQVMgdG90YWxfdG90YWxfYXV0b3ZhY3V1bV90aW1lLAogICAgU1VNKGMudG90YWxfYXV0 b2FuYWx5emVfdGltZSkgQVMgdG90YWxfdG90YWxfYXV0b2FuYWx5emVfdGltZSwKICAgIFJPVU5E KAogICAgICAgIENBU0UgV0hFTiBTVU0oYy5hdXRvdmFjdXVtX2NvdW50KSA+IDAKICAgICAgICAg ICAgIFRIRU4gKFNVTShjLnRvdGFsX2F1dG92YWN1dW1fdGltZSk6Om51bWVyaWMgLyBTVU0oYy5h dXRvdmFjdXVtX2NvdW50KTo6bnVtZXJpYykKICAgICAgICBFTkQsIDIKICAgICkgQVMgYXZnX2F1 dG92YWN1dW1fdGltZSwKICAgIFJPVU5EKAogICAgICAgIENBU0UgV0hFTiBTVU0oYy5hdXRvYW5h bHl6ZV9jb3VudCkgPiAwCiAgICAgICAgICAgICBUSEVOIChTVU0oYy50b3RhbF9hdXRvYW5hbHl6 ZV90aW1lKTo6bnVtZXJpYyAvIFNVTShjLmF1dG9hbmFseXplX2NvdW50KTo6bnVtZXJpYykKICAg ICAgICBFTkQsIDIKICAgICkgQVMgYXZnX2F1dG9hbmFseXplX3RpbWUsCiAgICBDT1VOVCgqKSBB UyB0YWJsZV9jb3VudApGUk9NIHBnX2NsYXNzIGIKSk9JTiBwZ19zdGF0X2FsbF90YWJsZXMgYyBP TiBiLm9pZCA9IGMucmVsaWQKV0hFUkUgVVBQRVIoYi5yZWxuYW1lKSBMSUtFICclVEFCTCUnCiAg QU5EIGIucmVsbmFtZSBOT1QgTElLRSAncGdfJSc7CkVPRgp9IHwgdGVlICIkU1VNTUFSWV9GSUxF IgoKZWNobyAiPT09IFN0b3AgUG9zdGdyZVNRTCA9PT0iCnBnX2N0bCBzdG9wIC1taQoKZWNobyAi PT09PSBNb3ZlIGxvZ2ZpbGVzID09PT0iCm12ICRQR0RBVEEvbG9nLyogIiRQR19MT0dTIi8uOwpj YXQgJFJFTFNUQVRTX01PTklUT1JfTE9HIHwgZ3JlcCBUQUJfREFUQSB8IHNlZCAncy9eIFRBQl9E QVRBIHwvLycgPiAkUkVMU1RBVFNfTU9OSVRPUl9MT0cuY2xlYW47CmNhdCAkUEdfTE9HUy8qIHwg Z3JlcCAiTE9HOiAgYWRkaW5nIHRhYmxlOiIgfCBhd2sgJ3twcmludCAkMn0nIEZTPSJMT0c6ICBh ZGRpbmcgdGFibGU6IiB8IGF3ayAne3ByaW50ICQxInwiJDIsJDMsJDR9JyBGUz0iLCIgfCBzZWQg J3MvIGF2PS98LycgfCBzZWQgJ3MvIGFhPS98LycgPiAkVE1QX0RJUi9yZWxzdGF0c19zY29yZXMu Y2xlYW4KCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiMgTG9hZCBkYXRhIGludG8gYW5hbHlzaXMgZGF0YWJhc2UKIwojIFhYWDogTm90IHVz ZWQgaW4gdGhlIG1haW4gc2NyaXB0IGZsb3csIGJ1dCBrZXB0IGhlcmUKIyBmb3IgcmVmZXJlbmNl LgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQpsb2FkX2Zvcl9hbmFseXNpcygpCnsKICAgIGVjaG8gIj09PSBMb2FkaW5nIHJlbHN0YXRzIGRh dGEgZm9yIGFuYWx5c2lzID09PSIKCiAgICBjcmVhdGVkYiBhbmFseXNpcwoKICAgIHBzcWwgYW5h bHlzaXM8PEVPRgogICAgQ1JFQVRFIFRBQkxFIHBlcl90YWJsZV9zdGF0cyAoCiAgICAgICAgdGlt ZXN0YW1wIFRJTUVTVEFNUFRaLAogICAgICAgIHJlbG5hbWUgVEVYVCwKICAgICAgICByZWx0dXBs ZXMgQklHSU5ULAogICAgICAgIG5fZGVhZF90dXAgQklHSU5ULAogICAgICAgIGF2X2NvdW50IElO VCwKICAgICAgICBhYV9jb3VudCBJTlQsCiAgICAgICAgdG90YWxfYXZfdGltZSBET1VCTEUgUFJF Q0lTSU9OLAogICAgICAgIHRvdGFsX2FhX3RpbWUgRE9VQkxFIFBSRUNJU0lPTiwKICAgICAgICBu X3R1cF91cGQgQklHSU5ULAoJbl90dXBfaG90X3VwZCBCSUdJTlQsCgluX3R1cF9pbnMgQklHSU5U LAogICAgICAgIGF2Z19hdl90aW1lIERPVUJMRSBQUkVDSVNJT04sCiAgICAgICAgYXZnX2FhX3Rp bWUgRE9VQkxFIFBSRUNJU0lPTgopOwpFT0YKICAgIHBzcWwgLWQgYW5hbHlzaXM8PEVPRgogICAg XGNvcHkgcGVyX3RhYmxlX3N0YXRzIEZST00gJyRSRUxTVEFUU19NT05JVE9SX0xPRy5jbGVhbicg REVMSU1JVEVSICd8JyBDU1Y7CkVPRgogICAgZWNobyAiPT09IExvYWRpbmcgcmVsc3RhdHMgc2Nv cmluZyBkYXRhIGZvciBhbmFseXNpcyA9PT0iCiAgICBwc3FsIGFuYWx5c2lzPDxFT0YKICAgIENS RUFURSBUQUJMRSBwZXJfdGFibGVfc2NvcmVzICgKICAgICAgICByZWxuYW1lIFRFWFQsCiAgICAg ICAgc2NvcmUgRE9VQkxFIFBSRUNJU0lPTiwKICAgICAgICByZWFzb25fYXYgSU5ULAogICAgICAg IHJlYXNvbl9hYSBJTlQKICAgICk7CkVPRgogICAgcHNxbCAtZCBhbmFseXNpczw8RU9GClxjb3B5 IHBlcl90YWJsZV9zY29yZXMgRlJPTSAnJFRNUF9ESVIvcmVsc3RhdHNfc2NvcmVzLmNsZWFuJyBE RUxJTUlURVIgJ3wnIENTVjsKRU9GCn0KCmVjaG8gIkFsbCB0YXNrcyBjb21wbGV0ZWQuIgo= --000000000000f517e90642f47d4f--