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.96) (envelope-from ) id 1wJErQ-000C2T-1F for pgsql-hackers@arkaria.postgresql.org; Sat, 02 May 2026 18:14:42 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wJErO-001sHW-0n for pgsql-hackers@arkaria.postgresql.org; Sat, 02 May 2026 18:14:38 +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.96) (envelope-from ) id 1wJ2WF-0009j1-2j for pgsql-hackers@lists.postgresql.org; Sat, 02 May 2026 05:04:00 +0000 Received: from meldrar.postgresql.org ([2a02:c0:301:0:ffff::31]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wJ2WE-000000003up-1HTR for pgsql-hackers@postgresql.org; Sat, 02 May 2026 05:03:59 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=postgresql.org; s=20171124; h=Content-Transfer-Encoding:Content-Type: Mime-Version:References:In-Reply-To:From:Subject:Cc:To:Message-Id:Date:Sender :Reply-To:Content-ID:Content-Description; bh=IvQEhEolzgFnGW/Dxm2bRor40PgYRkYkBr0wMwyxp1Y=; b=Iq57zWl6lxEaJzh1gisOJuq7ph Ap08P/p1Stjg3kQjs6etKMOHOAwXIu/zwV4CzHrxHpX2VsjPtlWiMBuHeb2p2UQVsVKqFcBV7Zg6A O5/OzY3oKPHhBbaEDFaRLwdI3oNxZZLH2mPAiXBHadYDEXBdLAhc+xjofqbjelLTtQt4j0p66TCCm OlUd0ezNxGmO5wjY45e26tGzxvbQXxZae+neJ7YZiQ0T03poF2hErDmvsmMkufaHPLFVMgPzHOj7H 7V3/XHME+LAK8LIZmE8BkYwOSJZHrLi64qv9lRdCB9hjb19MtV7ejXtC3kruOWZL18b7jwxlqA8Id lUA+/KZg==; Received: from [2409:11:4120:300:47e:d4b7:9a1c:43bd] (helo=localhost) by meldrar.postgresql.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wJ2VW-000Dl4-03; Sat, 02 May 2026 05:03:47 +0000 Date: Sat, 02 May 2026 14:03:04 +0900 (JST) Message-Id: <20260502.140304.670813149418899420.ishii@postgresql.org> To: assam258@gmail.com Cc: zsolt.parragi@percona.com, sjjang112233@gmail.com, vik@postgresfriends.org, er@xs4all.nl, jacob.champion@enterprisedb.com, david.g.johnston@gmail.com, peter@eisentraut.org, li.evan.chao@gmail.com, pgsql-hackers@postgresql.org Subject: Re: Row pattern recognition From: Tatsuo Ishii In-Reply-To: References: <20260427.174220.1939160662649810289.ishii@postgresql.org> X-Mailer: Mew version 6.8 on Emacs 29.3 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Sat_May__2_14_03_04_2026_790)--" Content-Transfer-Encoding: 7bit X-Host-Lookup-Failed: Reverse DNS lookup failed for 2409:11:4120:300:47e:d4b7:9a1c:43bd (failed) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk ----Next_Part(Sat_May__2_14_03_04_2026_790)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Attached is the v47 patches for Row pattern recognition (SQL/RPR). Major changes from v46 include: - Change implementation of row pattern navigation operations using "1-slot model", which allows to implement more standard compliant features such as an offset argument, more row pattern navigation operations (FIRST, LAST) and compound forms. - Row pattern navigation operations now support FIRST, LAST and compound forms - Add JIT compilation support for all row pattern navigation operations (including compound forms) - Add tuplestore trim optimization for RPR PREV navigation - Window function last_value() now allows to set mark in certain cases - Change the implementation of reduced frame map. Now consumes less CPU and memory - Add more optimization (absorption). e.g. (A B B)+ - Add planner integration tests (rpr_integration.sql) - Add src/backend/executor/README.rpr (previously was in ExecRPR.c) Current status: The series of patches are to implement the row pattern recognition (SQL/RPR) feature. Currently the implementation is a subset of SQL/RPR (ISO/IEC 19075-2:2016). Namely, implementation of some features of R020 (WINDOW clause). R010 (MATCH_RECOGNIZE) is out of the scope of the patches. Currently following features are implemented in the patches. - PATTERN - PATTERN regular expressions (+, *, ?) alternation (|), grouping () , {n}, {n,}, {n,m}, {,m} reluctant quantifiers (*? etc.), - DEFINE - INITIAL - AFTER MATCH SKIP TO PAST LAST ROW - AFTER MATCH SKIP TO NEXT ROW - Row pattern navigation (FIRST, LAST, PREV, NEXT and their compound forms) Currently following features are not implemented in the patches. - MEASURES - Pattern variable name qualified column reference (e.g. A.price) - SUBSET - SEEK - AFTER MATCH SKIP TO - AFTER MATCH SKIP TO FIRST - AFTER MATCH SKIP TO LAST - PATTERN regular expression {- and -}, () (empty pattern) Anchors (^, $) are not permitted with RPR in Window clause by the standard. - PERMUTE - CLASSIFIER Regards, -- Tatsuo Ishii SRA OSS K.K. English: http://www.sraoss.co.jp/index_en/ Japanese:http://www.sraoss.co.jp ----Next_Part(Sat_May__2_14_03_04_2026_790)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v47-0001-Row-pattern-recognition-patch-for-raw-parser.patch" RnJvbSA0M2FjNmEzZDVhYzAxMzU3ZTM3MmE4NjE3MmIxYWZjZTdjZmRkNzJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYXRzdW8gSXNoaWkgPGlzaGlpQHBvc3RncmVzcWwub3JnPgpE YXRlOiBTYXQsIDIgTWF5IDIwMjYgMTM6NDA6MjkgKzA5MDAKU3ViamVjdDogW1BBVENIIHY0NyAx LzldIFJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIHBhdGNoIGZvciByYXcgcGFyc2VyLgoKVGhlIHNl cmllcyBvZiBwYXRjaGVzIGFyZSB0byBpbXBsZW1lbnQgdGhlIHJvdyBwYXR0ZXJuIHJlY29nbml0 aW9uCihTUUwvUlBSKSBmZWF0dXJlLiBDdXJyZW50bHkgdGhlIGltcGxlbWVudGF0aW9uIGlzIGEg c3Vic2V0IG9mIFNRTC9SUFIKKElTTy9JRUMgMTkwNzUtMjoyMDE2KS4gTmFtZWx5LCBpbXBsZW1l bnRhdGlvbiBvZiBzb21lIGZlYXR1cmVzIG9mClIwMjAgKFdJTkRPVyBjbGF1c2UpLiBSMDEwIChN QVRDSF9SRUNPR05JWkUpIGlzIG91dCBvZiB0aGUgc2NvcGUgb2YKdGhlIHBhdGNoZXMuCgpDdXJy ZW50bHkgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBpbXBsZW1lbnRlZCBpbiB0aGUgcGF0Y2hlcy4K Ci0gUEFUVEVSTgotIFBBVFRFUk4gcmVndWxhciBleHByZXNzaW9ucyAoKywgKiwgPykKICBhbHRl cm5hdGlvbiAofCksIGdyb3VwaW5nICgpICwge259LCB7bix9LCB7bixtfSwgeyxtfQogIHJlbHVj dGFudCBxdWFudGlmaWVycyAoKj8gZXRjLiksCi0gREVGSU5FCi0gSU5JVElBTAotIEFGVEVSIE1B VENIIFNLSVAgVE8gUEFTVCBMQVNUIFJPVwotIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cK LSBSb3cgcGF0dGVybiBuYXZpZ2F0aW9ucyAoRklSU1QsIExBU1QsIFBSRVYsIE5FWFQgYW5kIHRo ZWlyIGNvbXBvdW5kIGZvcm1zKQoKQ3VycmVudGx5IGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgbm90 IGltcGxlbWVudGVkIGluIHRoZSBwYXRjaGVzLgoKLSBNRUFTVVJFUwotIFBhdHRlcm4gdmFyaWFi bGUgbmFtZSBxdWFsaWZpZWQgY29sdW1uIHJlZmVyZW5jZSAoZS5nLiBBLnByaWNlKQotIFNVQlNF VAotIFNFRUsKLSBBRlRFUiBNQVRDSCBTS0lQIFRPCi0gQUZURVIgTUFUQ0ggU0tJUCBUTyBGSVJT VAotIEFGVEVSIE1BVENIIFNLSVAgVE8gTEFTVAotIFBBVFRFUk4gcmVndWxhciBleHByZXNzaW9u ICB7LSBhbmQgLX0sICgpIChlbXB0eSBwYXR0ZXJuKQogIEFuY2hvcmVzICheLCAkKSBhcmUgbm90 IHBlcm1pdHRlZCB3aXRoIFJQUiBpbiBXaW5kb3cgY2xhdXNlIGJ5IHRoZQogIHN0YW5kYXJkLgot IFBFUk1VVEUKLSBDTEFTU0lGSUVSCgpBdXRob3I6IFRhdHN1byBJc2hpaSA8aXNoaWlAcG9zdGdy ZXNxbC5vcmc+CkF1dGhvcjogSGVuc29uIENob2kgPGFzc2FtMjU4QGdtYWlsLmNvbT4KUmV2aWV3 ZWQtYnk6IFZpayBGZWFyaW5nIDx2aWtAcG9zdGdyZXNmcmllbmRzLm9yZz4KUmV2aWV3ZWQtYnk6 IEphY29iIENoYW1waW9uIDxqY2hhbXBpb25AdGltZXNjYWxlLmNvbT4KUmV2aWV3ZWQtYnk6IFBl dGVyIEVpc2VudHJhdXQgPHBldGVyQGVpc2VudHJhdXQub3JnPgpSZXZpZXdlZC1ieTogTklOR1dF SSBDSEVOIDxjaGVuQHNyYW9zcy5jby5qcD4KUmV2aWV3ZWQtYnk6ICJEYXZpZCBHLiBKb2huc3Rv biIgPGRhdmlkLmcuam9obnN0b25AZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGku ZXZhbi5jaGFvQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IFN1bmdKdW4gSmFuZyA8c2pqYW5nMTEy MjMzQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IFpzb2x0IFBhcnJhZ2kgPHpzb2x0LnBhcnJhZ2lA cGVyY29uYS5jb20+CgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tLzIwMjMwNjI1LjIx MDUwOS4xMjc2NzMzNDExNjc3NTc3ODQxLnQtaXNoaWklNDBzcmFuaG0uc3JhLmNvLmpwCgpNYWpv ciBjaGFuZ2VzIGZyb20gdjQ2IGluY2x1ZGU6CgotIENoYW5nZSBpbXBsZW1lbnRhdGlvbiBvZiBy b3cgcGF0dGVybiBuYXZpZ2F0aW9uIG9wZXJhdGlvbnMgdXNpbmcKICAiMS1zbG90IG1vZGVsIiwg d2hpY2ggYWxsb3dzIHRvIGltcGxlbWVudCBtb3JlIHN0YW5kYXJkIGNvbXBsaWFudAogIGZlYXR1 cmVzIHN1Y2ggYXMgYW4gb2Zmc2V0IGFyZ3VtZW50LCBtb3JlIHJvdyBwYXR0ZXJuIG5hdmlnYXRp b24KICBvcGVyYXRpb25zIChGSVJTVCwgTEFTVCkgYW5kIGNvbXBvdW5kIGZvcm1zLgoKLSBSb3cg cGF0dGVybiBuYXZpZ2F0aW9uIG9wZXJhdGlvbnMgbm93IHN1cHBvcnQgRklSU1QsIExBU1QgYW5k CiAgY29tcG91bmQgZm9ybXMKCi0gQWRkIEpJVCBjb21waWxhdGlvbiBzdXBwb3J0IGZvciBhbGwg cm93IHBhdHRlcm4gbmF2aWdhdGlvbgogIG9wZXJhdGlvbnMgKGluY2x1ZGluZyBjb21wb3VuZCBm b3JtcykKCi0gQWRkIHR1cGxlc3RvcmUgdHJpbSBvcHRpbWl6YXRpb24gZm9yIFJQUiBQUkVWIG5h dmlnYXRpb24KCi0gV2luZG93IGZ1bmN0aW9uIGxhc3RfdmFsdWUoKSBub3cgYWxsb3dzIHRvIHNl dCBtYXJrIGluIGNlcnRhaW4gY2FzZXMKCi0gQ2hhbmdlIHRoZSBpbXBsZW1lbnRhaW9uIG9mIHJl ZHVjZWQgZnJhbWUgbWFwLiBOb3cgY29uc3VtZXMgbGVzcyBDUFUgYW5kIG1lbW9yeQoKLSBBZGQg bW9yZSBvcHRpbWl6YXRpb24gKGFic29ycHRpb24pLiBlLmcuIChBIEIgQikrCgotIEFkZCBwbGFu bmVyIGludGVncmF0aW9uIHRlc3RzIChycHJfaW50ZWdyYXRpb24uc3FsKQoKLSBBZGQgc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvUkVBRE1FLnJwciAocHJldmlvdWx5IHdhcyBpbiBFeGVjUlBSLmMpCi0t LQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICB8IDQyNSArKysrKysrKysrKysrKysr KysrKysrKysrKysrKystLQogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICB8ICA4MyAr KysrKysrCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggICAgIHwgICA1ICsKIHNyYy9pbmNs dWRlL3BhcnNlci9wYXJzZV9ub2RlLmggfCAgIDIgKwogNCBmaWxlcyBjaGFuZ2VkLCA0OTkgaW5z ZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggZmY0ZTEzODhjNTUu LmYzY2VkZmJiYjE4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTIxMCw2ICsyMTAsOCBAQCBzdGF0aWMgdm9p ZCBwcmVwcm9jZXNzX3B1Yl9hbGxfb2JqdHlwZV9saXN0KExpc3QgKmFsbF9vYmplY3RzX2xpc3Qs CiBzdGF0aWMgdm9pZCBwcmVwcm9jZXNzX3B1Ym9ial9saXN0KExpc3QgKnB1Ym9ianNwZWNfbGlz dCwKIAkJCQkJCQkJICAgY29yZV95eXNjYW5fdCB5eXNjYW5uZXIpOwogc3RhdGljIE5vZGUgKm1h a2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUg KnF1ZXJ5KTsKK3N0YXRpYyBSUFJQYXR0ZXJuTm9kZSAqbWFrZVJQUlF1YW50aWZpZXIoaW50IG1p biwgaW50IG1heCwgUGFyc2VMb2MgcmVsdWN0YW50LCBpbnQgbG9jYXRpb24sCisJCQkJCQkJCQkg ICBjb3JlX3l5c2Nhbl90IHl5c2Nhbm5lcik7CiAKICV9CiAKQEAgLTcxOCw2ICs3MjAsMTUgQEAg c3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3Qg KmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJCQlsYWJlbF90ZXJtCiAldHlwZSA8c3RyPgkJb3B0 X2NvbGlkCiAKKyV0eXBlIDx0YXJnZXQ+CXJvd19wYXR0ZXJuX2RlZmluaXRpb24KKyV0eXBlIDxu b2RlPglvcHRfcm93X3BhdHRlcm5fY29tbW9uX3N5bnRheAorCQkJCXJvd19wYXR0ZXJuIHJvd19w YXR0ZXJuX2FsdCByb3dfcGF0dGVybl9zZXEKKwkJCQlyb3dfcGF0dGVybl90ZXJtIHJvd19wYXR0 ZXJuX3ByaW1hcnkKKwkJCQlyb3dfcGF0dGVybl9xdWFudGlmaWVyX29wdAorJXR5cGUgPGxpc3Q+ CXJvd19wYXR0ZXJuX2RlZmluaXRpb25fbGlzdAorJXR5cGUgPGl2YWw+CW9wdF9yb3dfcGF0dGVy bl9za2lwX3RvCisldHlwZSA8Ym9vbGVhbj4Jb3B0X3Jvd19wYXR0ZXJuX2luaXRpYWxfb3Jfc2Vl aworCiAvKgogICogTm9uLWtleXdvcmQgdG9rZW4gdHlwZXMuICBUaGVzZSBhcmUgaGFyZC13aXJl ZCBpbnRvIHRoZSAiZmxleCIgbGV4ZXIuCiAgKiBUaGV5IG11c3QgYmUgbGlzdGVkIGZpcnN0IHNv IHRoYXQgdGhlaXIgbnVtZXJpYyBjb2RlcyBkbyBub3QgZGVwZW5kIG9uCkBAIC03NjAsNyArNzcx LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUs IExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlDVVJSRU5UX1RJTUUgQ1VSUkVOVF9USU1F U1RBTVAgQ1VSUkVOVF9VU0VSIENVUlNPUiBDWUNMRQogCiAJREFUQV9QIERBVEFCQVNFIERBWV9Q IERFQUxMT0NBVEUgREVDIERFQ0lNQUxfUCBERUNMQVJFIERFRkFVTFQgREVGQVVMVFMKLQlERUZF UlJBQkxFIERFRkVSUkVEIERFRklORVIgREVMRVRFX1AgREVMSU1JVEVSIERFTElNSVRFUlMgREVQ RU5EUyBERVBUSCBERVNDIERFU1RJTkFUSU9OCisJREVGRVJSQUJMRSBERUZFUlJFRCBERUZJTkUg REVGSU5FUiBERUxFVEVfUCBERUxJTUlURVIgREVMSU1JVEVSUyBERVBFTkRTIERFUFRIIERFU0Mg REVTVElOQVRJT04KIAlERVRBQ0ggRElDVElPTkFSWSBESVNBQkxFX1AgRElTQ0FSRCBESVNUSU5D VCBETyBET0NVTUVOVF9QIERPTUFJTl9QCiAJRE9VQkxFX1AgRFJPUAogCkBAIC03NzYsNyArNzg3 LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUs IExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlIQU5ETEVSIEhBVklORyBIRUFERVJfUCBI T0xEIEhPVVJfUAogCiAJSURFTlRJVFlfUCBJRl9QIElHTk9SRV9QIElMSUtFIElNTUVESUFURSBJ TU1VVEFCTEUgSU1QTElDSVRfUCBJTVBPUlRfUCBJTl9QIElOQ0xVREUKLQlJTkNMVURJTkcgSU5D UkVNRU5UIElOREVOVCBJTkRFWCBJTkRFWEVTIElOSEVSSVQgSU5IRVJJVFMgSU5JVElBTExZIElO TElORV9QCisJSU5DTFVESU5HIElOQ1JFTUVOVCBJTkRFTlQgSU5ERVggSU5ERVhFUyBJTkhFUklU IElOSEVSSVRTIElOSVRJQUwgSU5JVElBTExZIElOTElORV9QCiAJSU5ORVJfUCBJTk9VVCBJTlBV VF9QIElOU0VOU0lUSVZFIElOU0VSVCBJTlNURUFEIElOVF9QIElOVEVHRVIKIAlJTlRFUlNFQ1Qg SU5URVJWQUwgSU5UTyBJTlZPS0VSIElTIElTTlVMTCBJU09MQVRJT04KIApAQCAtODAxLDggKzgx Miw4IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1l LCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJT1JERVIgT1JESU5BTElUWSBPVEhFUlMg T1VUX1AgT1VURVJfUAogCU9WRVIgT1ZFUkxBUFMgT1ZFUkxBWSBPVkVSUklESU5HIE9XTkVEIE9X TkVSCiAKLQlQQVJBTExFTCBQQVJBTUVURVIgUEFSU0VSIFBBUlRJQUwgUEFSVElUSU9OIFBBUlRJ VElPTlMgUEFTU0lORyBQQVNTV09SRCBQQVRICi0JUEVSSU9EIFBMQUNJTkcgUExBTiBQTEFOUyBQ T0xJQ1kgUE9SVElPTgorCVBBUkFMTEVMIFBBUkFNRVRFUiBQQVJTRVIgUEFSVElBTCBQQVJUSVRJ T04gUEFSVElUSU9OUyBQQVNTSU5HIFBBU1NXT1JEIFBBU1QgUEFUSAorCVBBVFRFUk5fUCBQRVJJ T0QgUExBQ0lORyBQTEFOIFBMQU5TIFBPTElDWSBQT1JUSU9OCiAJUE9TSVRJT04gUFJFQ0VESU5H IFBSRUNJU0lPTiBQUkVTRVJWRSBQUkVQQVJFIFBSRVBBUkVEIFBSSU1BUlkKIAlQUklPUiBQUklW SUxFR0VTIFBST0NFRFVSQUwgUFJPQ0VEVVJFIFBST0NFRFVSRVMgUFJPR1JBTSBQUk9QRVJUSUVT IFBST1BFUlRZIFBVQkxJQ0FUSU9OCiAKQEAgLTgxMyw3ICs4MjQsNyBAQCBzdGF0aWMgTm9kZSAq bWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9k ZSAqcXVlcnkpOwogCVJFU0VUIFJFU1BFQ1RfUCBSRVNUQVJUIFJFU1RSSUNUIFJFVFVSTiBSRVRV Uk5JTkcgUkVUVVJOUyBSRVZPS0UgUklHSFQgUk9MRSBST0xMQkFDSyBST0xMVVAKIAlST1VUSU5F IFJPVVRJTkVTIFJPVyBST1dTIFJVTEUKIAotCVNBVkVQT0lOVCBTQ0FMQVIgU0NIRU1BIFNDSEVN QVMgU0NST0xMIFNFQVJDSCBTRUNPTkRfUCBTRUNVUklUWSBTRUxFQ1QKKwlTQVZFUE9JTlQgU0NB TEFSIFNDSEVNQSBTQ0hFTUFTIFNDUk9MTCBTRUFSQ0ggU0VDT05EX1AgU0VDVVJJVFkgU0VFSyBT RUxFQ1QKIAlTRVFVRU5DRSBTRVFVRU5DRVMKIAlTRVJJQUxJWkFCTEUgU0VSVkVSIFNFU1NJT04g U0VTU0lPTl9VU0VSIFNFVCBTRVRTIFNFVE9GIFNIQVJFIFNIT1cKIAlTSU1JTEFSIFNJTVBMRSBT S0lQIFNNQUxMSU5UIFNOQVBTSE9UIFNPTUUgU1BMSVQgU09VUkNFIFNRTF9QIFNUQUJMRSBTVEFO REFMT05FX1AKQEAgLTg5Niw4ICs5MDcsOCBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZp ZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogICog cmVmZXJlbmNlIHBvaW50IGZvciBhIHByZWNlZGVuY2UgbGV2ZWwgdGhhdCB3ZSBjYW4gYXNzaWdu IHRvIG90aGVyCiAgKiBrZXl3b3JkcyB0aGF0IGxhY2sgYSBuYXR1cmFsIHByZWNlZGVuY2UgbGV2 ZWwuCiAgKgotICogV2UgbmVlZCB0byBkbyB0aGlzIGZvciBQQVJUSVRJT04sIFJBTkdFLCBST1dT LCBhbmQgR1JPVVBTIHRvIHN1cHBvcnQKLSAqIG9wdF9leGlzdGluZ193aW5kb3dfbmFtZSAoc2Vl IGNvbW1lbnQgdGhlcmUpLgorICogV2UgbmVlZCB0byBkbyB0aGlzIGZvciBQQVJUSVRJT04sIFJB TkdFLCBST1dTLCBHUk9VUFMsIEFGVEVSLCBJTklUSUFMLAorICogU0VFSywgUEFUVEVSTl9QIHRv IHN1cHBvcnQgb3B0X2V4aXN0aW5nX3dpbmRvd19uYW1lIChzZWUgY29tbWVudCB0aGVyZSkuCiAg KgogICogVGhlIGZyYW1lX2JvdW5kIHByb2R1Y3Rpb25zIFVOQk9VTkRFRCBQUkVDRURJTkcgYW5k IFVOQk9VTkRFRCBGT0xMT1dJTkcKICAqIGFyZSBldmVuIG1lc3NpZXI6IHNpbmNlIFVOQk9VTkRF RCBpcyBhbiB1bnJlc2VydmVkIGtleXdvcmQgKHBlciBzcGVjISksCkBAIC05MzAsNiArOTQxLDcg QEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExp c3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICVub25hc3NvYwlVTkJPVU5ERUQgTkVTVEVEIC8q IGlkZWFsbHkgd291bGQgaGF2ZSBzYW1lIHByZWNlZGVuY2UgYXMgSURFTlQgKi8KICVub25hc3Nv YwlJREVOVCBQQVJUSVRJT04gUkFOR0UgUk9XUyBHUk9VUFMgUFJFQ0VESU5HIEZPTExPV0lORyBD VUJFIFJPTExVUAogCQkJU0VUIEtFWVMgT0JKRUNUX1AgU0NBTEFSIFRPIFVTSU5HIFZBTFVFX1Ag V0lUSCBXSVRIT1VUIFBBVEgKKwkJCUFGVEVSIElOSVRJQUwgU0VFSyBQQVRURVJOX1AKICVsZWZ0 CQlPcCBPUEVSQVRPUiBSSUdIVF9BUlJPVyAnfCcJLyogbXVsdGktY2hhcmFjdGVyIG9wcyBhbmQg dXNlci1kZWZpbmVkIG9wZXJhdG9ycyAqLwogJWxlZnQJCScrJyAnLScKICVsZWZ0CQknKicgJy8n ICclJwpAQCAtMTczMzUsNiArMTczNDcsOCBAQCBvdmVyX2NsYXVzZTogT1ZFUiB3aW5kb3dfc3Bl Y2lmaWNhdGlvbgogCQkJCQluLT5zdGFydE9mZnNldCA9IE5VTEw7CiAJCQkJCW4tPmVuZE9mZnNl dCA9IE5VTEw7CiAJCQkJCW4tPmxvY2F0aW9uID0gQDI7CisJCQkJCW4tPmZyYW1lTG9jYXRpb24g PSAtMTsKKwkJCQkJbi0+ZXhjbHVkZUxvY2F0aW9uID0gLTE7CiAJCQkJCSQkID0gbjsKIAkJCQl9 CiAJCQl8IC8qRU1QVFkqLwpAQCAtMTczNDIsNyArMTczNTYsOCBAQCBvdmVyX2NsYXVzZTogT1ZF UiB3aW5kb3dfc3BlY2lmaWNhdGlvbgogCQk7CiAKIHdpbmRvd19zcGVjaWZpY2F0aW9uOiAnKCcg b3B0X2V4aXN0aW5nX3dpbmRvd19uYW1lIG9wdF9wYXJ0aXRpb25fY2xhdXNlCi0JCQkJCQlvcHRf c29ydF9jbGF1c2Ugb3B0X2ZyYW1lX2NsYXVzZSAnKScKKwkJCQkJCW9wdF9zb3J0X2NsYXVzZSBv cHRfZnJhbWVfY2xhdXNlCisJCQkJCQlvcHRfcm93X3BhdHRlcm5fY29tbW9uX3N5bnRheCAnKScK IAkJCQl7CiAJCQkJCVdpbmRvd0RlZiAgKm4gPSBtYWtlTm9kZShXaW5kb3dEZWYpOwogCkBAIC0x NzM1NCwyMCArMTczNjksMjMgQEAgd2luZG93X3NwZWNpZmljYXRpb246ICcoJyBvcHRfZXhpc3Rp bmdfd2luZG93X25hbWUgb3B0X3BhcnRpdGlvbl9jbGF1c2UKIAkJCQkJbi0+ZnJhbWVPcHRpb25z ID0gJDUtPmZyYW1lT3B0aW9uczsKIAkJCQkJbi0+c3RhcnRPZmZzZXQgPSAkNS0+c3RhcnRPZmZz ZXQ7CiAJCQkJCW4tPmVuZE9mZnNldCA9ICQ1LT5lbmRPZmZzZXQ7CisJCQkJCW4tPmZyYW1lTG9j YXRpb24gPSAkNS0+ZnJhbWVMb2NhdGlvbjsKKwkJCQkJbi0+ZXhjbHVkZUxvY2F0aW9uID0gJDUt PmV4Y2x1ZGVMb2NhdGlvbjsKKwkJCQkJbi0+cnBDb21tb25TeW50YXggPSAoUlBDb21tb25TeW50 YXggKikkNjsKIAkJCQkJbi0+bG9jYXRpb24gPSBAMTsKIAkJCQkJJCQgPSBuOwogCQkJCX0KIAkJ OwogCiAvKgotICogSWYgd2Ugc2VlIFBBUlRJVElPTiwgUkFOR0UsIFJPV1Mgb3IgR1JPVVBTIGFz IHRoZSBmaXJzdCB0b2tlbiBhZnRlciB0aGUgJygnCi0gKiBvZiBhIHdpbmRvd19zcGVjaWZpY2F0 aW9uLCB3ZSB3YW50IHRoZSBhc3N1bXB0aW9uIHRvIGJlIHRoYXQgdGhlcmUgaXMKLSAqIG5vIGV4 aXN0aW5nX3dpbmRvd19uYW1lOyBidXQgdGhvc2Uga2V5d29yZHMgYXJlIHVucmVzZXJ2ZWQgYW5k IHNvIGNvdWxkCi0gKiBiZSBDb2xJZHMuICBXZSBmaXggdGhpcyBieSBtYWtpbmcgdGhlbSBoYXZl IHRoZSBzYW1lIHByZWNlZGVuY2UgYXMgSURFTlQKLSAqIGFuZCBnaXZpbmcgdGhlIGVtcHR5IHBy b2R1Y3Rpb24gaGVyZSBhIHNsaWdodGx5IGhpZ2hlciBwcmVjZWRlbmNlLCBzbwotICogdGhhdCB0 aGUgc2hpZnQvcmVkdWNlIGNvbmZsaWN0IGlzIHJlc29sdmVkIGluIGZhdm9yIG9mIHJlZHVjaW5n IHRoZSBydWxlLgotICogVGhlc2Uga2V5d29yZHMgYXJlIHRodXMgcHJlY2x1ZGVkIGZyb20gYmVp bmcgYW4gZXhpc3Rpbmdfd2luZG93X25hbWUgYnV0Ci0gKiBhcmUgbm90IHJlc2VydmVkIGZvciBh bnkgb3RoZXIgcHVycG9zZS4KKyAqIElmIHdlIHNlZSBQQVJUSVRJT04sIFJBTkdFLCBST1dTLCBH Uk9VUFMsIEFGVEVSLCBJTklUSUFMLCBTRUVLIG9yIFBBVFRFUk5fUAorICogYXMgdGhlIGZpcnN0 IHRva2VuIGFmdGVyIHRoZSAnKCcgb2YgYSB3aW5kb3dfc3BlY2lmaWNhdGlvbiwgd2Ugd2FudCB0 aGUKKyAqIGFzc3VtcHRpb24gdG8gYmUgdGhhdCB0aGVyZSBpcyBubyBleGlzdGluZ193aW5kb3df bmFtZTsgYnV0IHRob3NlIGtleXdvcmRzCisgKiBhcmUgdW5yZXNlcnZlZCBhbmQgc28gY291bGQg YmUgQ29sSWRzLiAgV2UgZml4IHRoaXMgYnkgbWFraW5nIHRoZW0gaGF2ZSB0aGUKKyAqIHNhbWUg cHJlY2VkZW5jZSBhcyBJREVOVCBhbmQgZ2l2aW5nIHRoZSBlbXB0eSBwcm9kdWN0aW9uIGhlcmUg YSBzbGlnaHRseQorICogaGlnaGVyIHByZWNlZGVuY2UsIHNvIHRoYXQgdGhlIHNoaWZ0L3JlZHVj ZSBjb25mbGljdCBpcyByZXNvbHZlZCBpbiBmYXZvcgorICogb2YgcmVkdWNpbmcgdGhlIHJ1bGUu ICBUaGVzZSBrZXl3b3JkcyBhcmUgdGh1cyBwcmVjbHVkZWQgZnJvbSBiZWluZyBhbgorICogZXhp c3Rpbmdfd2luZG93X25hbWUgYnV0IGFyZSBub3QgcmVzZXJ2ZWQgZm9yIGFueSBvdGhlciBwdXJw b3NlLgogICovCiBvcHRfZXhpc3Rpbmdfd2luZG93X25hbWU6IENvbElkCQkJCQkJeyAkJCA9ICQx OyB9CiAJCQl8IC8qRU1QVFkqLwkJCQklcHJlYyBPcAkJeyAkJCA9IE5VTEw7IH0KQEAgLTE3Mzg4 LDYgKzE3NDA2LDkgQEAgb3B0X2ZyYW1lX2NsYXVzZToKIAogCQkJCQluLT5mcmFtZU9wdGlvbnMg fD0gRlJBTUVPUFRJT05fTk9OREVGQVVMVCB8IEZSQU1FT1BUSU9OX1JBTkdFOwogCQkJCQluLT5m cmFtZU9wdGlvbnMgfD0gJDM7CisJCQkJCW4tPmZyYW1lTG9jYXRpb24gPSBAMTsKKwkJCQkJLyog LTEgd2hlbiBubyBFWENMVURFIGNsYXVzZSAob3B0X3dpbmRvd19leGNsdXNpb25fY2xhdXNlIHJl dHVybnMgMCkgKi8KKwkJCQkJbi0+ZXhjbHVkZUxvY2F0aW9uID0gKCQzICE9IDApID8gQDMgOiAt MTsKIAkJCQkJJCQgPSBuOwogCQkJCX0KIAkJCXwgUk9XUyBmcmFtZV9leHRlbnQgb3B0X3dpbmRv d19leGNsdXNpb25fY2xhdXNlCkBAIC0xNzM5Niw2ICsxNzQxNyw5IEBAIG9wdF9mcmFtZV9jbGF1 c2U6CiAKIAkJCQkJbi0+ZnJhbWVPcHRpb25zIHw9IEZSQU1FT1BUSU9OX05PTkRFRkFVTFQgfCBG UkFNRU9QVElPTl9ST1dTOwogCQkJCQluLT5mcmFtZU9wdGlvbnMgfD0gJDM7CisJCQkJCW4tPmZy YW1lTG9jYXRpb24gPSBAMTsKKwkJCQkJLyogLTEgd2hlbiBubyBFWENMVURFIGNsYXVzZSAob3B0 X3dpbmRvd19leGNsdXNpb25fY2xhdXNlIHJldHVybnMgMCkgKi8KKwkJCQkJbi0+ZXhjbHVkZUxv Y2F0aW9uID0gKCQzICE9IDApID8gQDMgOiAtMTsKIAkJCQkJJCQgPSBuOwogCQkJCX0KIAkJCXwg R1JPVVBTIGZyYW1lX2V4dGVudCBvcHRfd2luZG93X2V4Y2x1c2lvbl9jbGF1c2UKQEAgLTE3NDA0 LDYgKzE3NDI4LDkgQEAgb3B0X2ZyYW1lX2NsYXVzZToKIAogCQkJCQluLT5mcmFtZU9wdGlvbnMg fD0gRlJBTUVPUFRJT05fTk9OREVGQVVMVCB8IEZSQU1FT1BUSU9OX0dST1VQUzsKIAkJCQkJbi0+ ZnJhbWVPcHRpb25zIHw9ICQzOworCQkJCQluLT5mcmFtZUxvY2F0aW9uID0gQDE7CisJCQkJCS8q IC0xIHdoZW4gbm8gRVhDTFVERSBjbGF1c2UgKG9wdF93aW5kb3dfZXhjbHVzaW9uX2NsYXVzZSBy ZXR1cm5zIDApICovCisJCQkJCW4tPmV4Y2x1ZGVMb2NhdGlvbiA9ICgkMyAhPSAwKSA/IEAzIDog LTE7CiAJCQkJCSQkID0gbjsKIAkJCQl9CiAJCQl8IC8qRU1QVFkqLwpAQCAtMTc0MTMsNiArMTc0 NDAsOCBAQCBvcHRfZnJhbWVfY2xhdXNlOgogCQkJCQluLT5mcmFtZU9wdGlvbnMgPSBGUkFNRU9Q VElPTl9ERUZBVUxUUzsKIAkJCQkJbi0+c3RhcnRPZmZzZXQgPSBOVUxMOwogCQkJCQluLT5lbmRP ZmZzZXQgPSBOVUxMOworCQkJCQluLT5mcmFtZUxvY2F0aW9uID0gLTE7CisJCQkJCW4tPmV4Y2x1 ZGVMb2NhdGlvbiA9IC0xOwogCQkJCQkkJCA9IG47CiAJCQkJfQogCQk7CkBAIC0xNzQ4OCw2ICsx NzUxNyw4IEBAIGZyYW1lX2JvdW5kOgogCQkJCQluLT5mcmFtZU9wdGlvbnMgPSBGUkFNRU9QVElP Tl9TVEFSVF9VTkJPVU5ERURfUFJFQ0VESU5HOwogCQkJCQluLT5zdGFydE9mZnNldCA9IE5VTEw7 CiAJCQkJCW4tPmVuZE9mZnNldCA9IE5VTEw7CisJCQkJCW4tPmZyYW1lTG9jYXRpb24gPSAtMTsK KwkJCQkJbi0+ZXhjbHVkZUxvY2F0aW9uID0gLTE7CiAJCQkJCSQkID0gbjsKIAkJCQl9CiAJCQl8 IFVOQk9VTkRFRCBGT0xMT1dJTkcKQEAgLTE3NDk3LDYgKzE3NTI4LDggQEAgZnJhbWVfYm91bmQ6 CiAJCQkJCW4tPmZyYW1lT3B0aW9ucyA9IEZSQU1FT1BUSU9OX1NUQVJUX1VOQk9VTkRFRF9GT0xM T1dJTkc7CiAJCQkJCW4tPnN0YXJ0T2Zmc2V0ID0gTlVMTDsKIAkJCQkJbi0+ZW5kT2Zmc2V0ID0g TlVMTDsKKwkJCQkJbi0+ZnJhbWVMb2NhdGlvbiA9IC0xOworCQkJCQluLT5leGNsdWRlTG9jYXRp b24gPSAtMTsKIAkJCQkJJCQgPSBuOwogCQkJCX0KIAkJCXwgQ1VSUkVOVF9QIFJPVwpAQCAtMTc1 MDYsNiArMTc1MzksOCBAQCBmcmFtZV9ib3VuZDoKIAkJCQkJbi0+ZnJhbWVPcHRpb25zID0gRlJB TUVPUFRJT05fU1RBUlRfQ1VSUkVOVF9ST1c7CiAJCQkJCW4tPnN0YXJ0T2Zmc2V0ID0gTlVMTDsK IAkJCQkJbi0+ZW5kT2Zmc2V0ID0gTlVMTDsKKwkJCQkJbi0+ZnJhbWVMb2NhdGlvbiA9IC0xOwor CQkJCQluLT5leGNsdWRlTG9jYXRpb24gPSAtMTsKIAkJCQkJJCQgPSBuOwogCQkJCX0KIAkJCXwg YV9leHByIFBSRUNFRElORwpAQCAtMTc1MTUsNiArMTc1NTAsOCBAQCBmcmFtZV9ib3VuZDoKIAkJ CQkJbi0+ZnJhbWVPcHRpb25zID0gRlJBTUVPUFRJT05fU1RBUlRfT0ZGU0VUX1BSRUNFRElORzsK IAkJCQkJbi0+c3RhcnRPZmZzZXQgPSAkMTsKIAkJCQkJbi0+ZW5kT2Zmc2V0ID0gTlVMTDsKKwkJ CQkJbi0+ZnJhbWVMb2NhdGlvbiA9IC0xOworCQkJCQluLT5leGNsdWRlTG9jYXRpb24gPSAtMTsK IAkJCQkJJCQgPSBuOwogCQkJCX0KIAkJCXwgYV9leHByIEZPTExPV0lORwpAQCAtMTc1MjQsNiAr MTc1NjEsOCBAQCBmcmFtZV9ib3VuZDoKIAkJCQkJbi0+ZnJhbWVPcHRpb25zID0gRlJBTUVPUFRJ T05fU1RBUlRfT0ZGU0VUX0ZPTExPV0lORzsKIAkJCQkJbi0+c3RhcnRPZmZzZXQgPSAkMTsKIAkJ CQkJbi0+ZW5kT2Zmc2V0ID0gTlVMTDsKKwkJCQkJbi0+ZnJhbWVMb2NhdGlvbiA9IC0xOworCQkJ CQluLT5leGNsdWRlTG9jYXRpb24gPSAtMTsKIAkJCQkJJCQgPSBuOwogCQkJCX0KIAkJOwpAQCAt MTc1MzYsNiArMTc1NzUsMzMyIEBAIG9wdF93aW5kb3dfZXhjbHVzaW9uX2NsYXVzZToKIAkJCXwg LypFTVBUWSovCQkJCXsgJCQgPSAwOyB9CiAJCTsKIAorb3B0X3Jvd19wYXR0ZXJuX2NvbW1vbl9z eW50YXg6CitvcHRfcm93X3BhdHRlcm5fc2tpcF90byBvcHRfcm93X3BhdHRlcm5faW5pdGlhbF9v cl9zZWVrCisJCQkJUEFUVEVSTl9QICcoJyByb3dfcGF0dGVybiAnKScKKwkJCQlERUZJTkUgcm93 X3BhdHRlcm5fZGVmaW5pdGlvbl9saXN0CisJCQl7CisJCQkJUlBDb21tb25TeW50YXggKm4gPSBt YWtlTm9kZShSUENvbW1vblN5bnRheCk7CisJCQkJbi0+cnBTa2lwVG8gPSAkMTsKKwkJCQluLT5p bml0aWFsID0gJDI7CisJCQkJbi0+cnBQYXR0ZXJuID0gKFJQUlBhdHRlcm5Ob2RlICopICQ1Owor CQkJCW4tPnJwRGVmcyA9ICQ4OworCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCX0KKwkJCXwgLypF TVBUWSovCQl7ICQkID0gTlVMTDsgfQorCQk7CisKK29wdF9yb3dfcGF0dGVybl9za2lwX3RvOgor CQkJQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworCQkJCXsKKwkJCQkJJCQgPSBTVF9ORVhU X1JPVzsKKwkJCQl9CisJCQl8IEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUX1AgUk9XCisJCQkJ eworCQkJCQkkJCA9IFNUX1BBU1RfTEFTVF9ST1c7CisJCQkJfQorCQkJfCAvKkVNUFRZKi8KKwkJ CQl7CisJCQkJCSQkID0gU1RfUEFTVF9MQVNUX1JPVzsKKwkJCQl9CisJCTsKKworb3B0X3Jvd19w YXR0ZXJuX2luaXRpYWxfb3Jfc2VlazoKKwkJCUlOSVRJQUwJCXsgJCQgPSB0cnVlOyB9CisJCQl8 IFNFRUsKKwkJCQl7CisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJKGVycmNvZGUoRVJSQ09E RV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJCSBlcnJtc2coIlNFRUsgaXMgbm90IHN1 cHBvcnRlZCIpLAorCQkJCQkJCSBlcnJoaW50KCJVc2UgSU5JVElBTCBpbnN0ZWFkLiIpLAorCQkJ CQkJCSBwYXJzZXJfZXJycG9zaXRpb24oQDEpKSk7CisJCQkJfQorCQkJfCAvKkVNUFRZKi8JCXsg JCQgPSB0cnVlOyB9CisJCTsKKworcm93X3BhdHRlcm46CisJCQlyb3dfcGF0dGVybl9hbHQJCQkJ CQl7ICQkID0gJDE7IH0KKwkJOworCityb3dfcGF0dGVybl9hbHQ6CisJCQlyb3dfcGF0dGVybl9z ZXEJCQkJCQl7ICQkID0gJDE7IH0KKwkJCXwgcm93X3BhdHRlcm5fYWx0ICd8JyByb3dfcGF0dGVy bl9zZXEKKwkJCQl7CisJCQkJCVJQUlBhdHRlcm5Ob2RlICpuOworCQkJCQkvKiBJZiBsZWZ0IHNp ZGUgaXMgYWxyZWFkeSBBTFQsIGFwcGVuZCB0byBpdCAqLworCQkJCQlpZiAoSXNBKCQxLCBSUFJQ YXR0ZXJuTm9kZSkgJiYKKwkJCQkJCSgoUlBSUGF0dGVybk5vZGUgKikgJDEpLT5ub2RlVHlwZSA9 PSBSUFJfUEFUVEVSTl9BTFQpCisJCQkJCXsKKwkJCQkJCW4gPSAoUlBSUGF0dGVybk5vZGUgKikg JDE7CisJCQkJCQluLT5jaGlsZHJlbiA9IGxhcHBlbmQobi0+Y2hpbGRyZW4sICQzKTsKKwkJCQkJ CSQkID0gKE5vZGUgKikgbjsKKwkJCQkJfQorCQkJCQllbHNlCisJCQkJCXsKKwkJCQkJCW4gPSBt YWtlTm9kZShSUFJQYXR0ZXJuTm9kZSk7CisJCQkJCQluLT5ub2RlVHlwZSA9IFJQUl9QQVRURVJO X0FMVDsKKwkJCQkJCW4tPmNoaWxkcmVuID0gbGlzdF9tYWtlMigkMSwgJDMpOworCQkJCQkJbi0+ bWluID0gMTsKKwkJCQkJCW4tPm1heCA9IDE7CisJCQkJCQluLT5yZWx1Y3RhbnQgPSBmYWxzZTsK KwkJCQkJCW4tPnJlbHVjdGFudF9sb2NhdGlvbiA9IC0xOworCQkJCQkJbi0+bG9jYXRpb24gPSBA MTsKKwkJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQkJfQorCQkJCX0KKwkJOworCityb3dfcGF0 dGVybl9zZXE6CisJCQlyb3dfcGF0dGVybl90ZXJtCQkJCQl7ICQkID0gJDE7IH0KKwkJCXwgcm93 X3BhdHRlcm5fc2VxIHJvd19wYXR0ZXJuX3Rlcm0KKwkJCQl7CisJCQkJCVJQUlBhdHRlcm5Ob2Rl ICpuOworCQkJCQkvKiBJZiBsZWZ0IHNpZGUgaXMgYWxyZWFkeSBTRVEsIGFwcGVuZCB0byBpdCAq LworCQkJCQlpZiAoSXNBKCQxLCBSUFJQYXR0ZXJuTm9kZSkgJiYKKwkJCQkJCSgoUlBSUGF0dGVy bk5vZGUgKikgJDEpLT5ub2RlVHlwZSA9PSBSUFJfUEFUVEVSTl9TRVEpCisJCQkJCXsKKwkJCQkJ CW4gPSAoUlBSUGF0dGVybk5vZGUgKikgJDE7CisJCQkJCQluLT5jaGlsZHJlbiA9IGxhcHBlbmQo bi0+Y2hpbGRyZW4sICQyKTsKKwkJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQkJfQorCQkJCQll bHNlCisJCQkJCXsKKwkJCQkJCW4gPSBtYWtlTm9kZShSUFJQYXR0ZXJuTm9kZSk7CisJCQkJCQlu LT5ub2RlVHlwZSA9IFJQUl9QQVRURVJOX1NFUTsKKwkJCQkJCW4tPmNoaWxkcmVuID0gbGlzdF9t YWtlMigkMSwgJDIpOworCQkJCQkJbi0+bWluID0gMTsKKwkJCQkJCW4tPm1heCA9IDE7CisJCQkJ CQluLT5yZWx1Y3RhbnQgPSBmYWxzZTsKKwkJCQkJCW4tPnJlbHVjdGFudF9sb2NhdGlvbiA9IC0x OworCQkJCQkJbi0+bG9jYXRpb24gPSBAMTsKKwkJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQkJ fQorCQkJCX0KKwkJOworCityb3dfcGF0dGVybl90ZXJtOgorCQkJcm93X3BhdHRlcm5fcHJpbWFy eSByb3dfcGF0dGVybl9xdWFudGlmaWVyX29wdAorCQkJCXsKKwkJCQkJUlBSUGF0dGVybk5vZGUg Km4gPSAoUlBSUGF0dGVybk5vZGUgKikgJDE7CisJCQkJCVJQUlBhdHRlcm5Ob2RlICpxID0gKFJQ UlBhdHRlcm5Ob2RlICopICQyOworCisJCQkJCW4tPm1pbiA9IHEtPm1pbjsKKwkJCQkJbi0+bWF4 ID0gcS0+bWF4OworCQkJCQluLT5yZWx1Y3RhbnQgPSBxLT5yZWx1Y3RhbnQ7CisJCQkJCW4tPnJl bHVjdGFudF9sb2NhdGlvbiA9IHEtPnJlbHVjdGFudF9sb2NhdGlvbjsKKwkJCQkJJCQgPSAoTm9k ZSAqKSBuOworCQkJCX0KKwkJOworCityb3dfcGF0dGVybl9wcmltYXJ5OgorCQkJQ29sSWQKKwkJ CQl7CisJCQkJCVJQUlBhdHRlcm5Ob2RlICpuID0gbWFrZU5vZGUoUlBSUGF0dGVybk5vZGUpOwor CQkJCQluLT5ub2RlVHlwZSA9IFJQUl9QQVRURVJOX1ZBUjsKKwkJCQkJbi0+dmFyTmFtZSA9ICQx OworCQkJCQluLT5taW4gPSAxOworCQkJCQluLT5tYXggPSAxOworCQkJCQluLT5yZWx1Y3RhbnQg PSBmYWxzZTsKKwkJCQkJbi0+cmVsdWN0YW50X2xvY2F0aW9uID0gLTE7CisJCQkJCW4tPmNoaWxk cmVuID0gTklMOworCQkJCQluLT5sb2NhdGlvbiA9IEAxOworCQkJCQkkJCA9IChOb2RlICopIG47 CisJCQkJfQorCQkJfCAnKCcgcm93X3BhdHRlcm4gJyknCisJCQkJeworCQkJCQlSUFJQYXR0ZXJu Tm9kZSAqaW5uZXIgPSAoUlBSUGF0dGVybk5vZGUgKikgJDI7CisJCQkJCVJQUlBhdHRlcm5Ob2Rl ICpuID0gbWFrZU5vZGUoUlBSUGF0dGVybk5vZGUpOworCQkJCQluLT5ub2RlVHlwZSA9IFJQUl9Q QVRURVJOX0dST1VQOworCQkJCQluLT5jaGlsZHJlbiA9IGxpc3RfbWFrZTEoaW5uZXIpOworCQkJ CQluLT5taW4gPSAxOworCQkJCQluLT5tYXggPSAxOworCQkJCQluLT5yZWx1Y3RhbnQgPSBmYWxz ZTsKKwkJCQkJbi0+cmVsdWN0YW50X2xvY2F0aW9uID0gLTE7CisJCQkJCW4tPmxvY2F0aW9uID0g QDE7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCTsKKworcm93X3BhdHRlcm5fcXVh bnRpZmllcl9vcHQ6CisJCQkvKiBFTVBUWSAtIG5vIHF1YW50aWZpZXIgbWVhbnMgZXhhY3RseSBv bmNlOyBAJCBpcyB1bnVzZWQgc2luY2UKKwkJCSAqIG1pbj1tYXg9MSBuZXZlciBwcm9kdWNlcyBh biBlcnJvciAqLworCQkJeyAkJCA9IChOb2RlICopIG1ha2VSUFJRdWFudGlmaWVyKDEsIDEsIC0x LCBAJCwgeXlzY2FubmVyKTsgfQorCQkJfCAnKicJCQkJCXsgJCQgPSAoTm9kZSAqKSBtYWtlUlBS UXVhbnRpZmllcigwLCBJTlRfTUFYLCAtMSwgQDEsIHl5c2Nhbm5lcik7IH0KKwkJCXwgJysnCQkJ CQl7ICQkID0gKE5vZGUgKikgbWFrZVJQUlF1YW50aWZpZXIoMSwgSU5UX01BWCwgLTEsIEAxLCB5 eXNjYW5uZXIpOyB9CisJCQl8IE9wCisJCQkJeworCQkJCQkvKiBIYW5kbGUgc2luZ2xlIE9wOiA/ IG9yIHJlbHVjdGFudCBxdWFudGlmaWVycyAqPywgKz8sID8/ICovCisJCQkJCWlmIChzdHJjbXAo JDEsICI/IikgPT0gMCkKKwkJCQkJCSQkID0gKE5vZGUgKikgbWFrZVJQUlF1YW50aWZpZXIoMCwg MSwgLTEsIEAxLCB5eXNjYW5uZXIpOworCQkJCQllbHNlIGlmIChzdHJjbXAoJDEsICIqPyIpID09 IDApCisJCQkJCQkkJCA9IChOb2RlICopIG1ha2VSUFJRdWFudGlmaWVyKDAsIElOVF9NQVgsIEAx ICsgMSwgQDEsIHl5c2Nhbm5lcik7CisJCQkJCWVsc2UgaWYgKHN0cmNtcCgkMSwgIis/IikgPT0g MCkKKwkJCQkJCSQkID0gKE5vZGUgKikgbWFrZVJQUlF1YW50aWZpZXIoMSwgSU5UX01BWCwgQDEg KyAxLCBAMSwgeXlzY2FubmVyKTsKKwkJCQkJZWxzZSBpZiAoc3RyY21wKCQxLCAiPz8iKSA9PSAw KQorCQkJCQkJJCQgPSAoTm9kZSAqKSBtYWtlUlBSUXVhbnRpZmllcigwLCAxLCBAMSArIDEsIEAx LCB5eXNjYW5uZXIpOworCQkJCQllbHNlCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQko ZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQkJCSBlcnJtc2coInVuc3VwcG9y dGVkIHF1YW50aWZpZXIgXCIlc1wiIiwgJDEpLAorCQkJCQkJCQkgZXJyaGludCgiVmFsaWQgcXVh bnRpZmllcnMgYXJlOiAqLCArLCA/LCAqPywgKz8sID8/LCB7bn0sIHtuLH0sIHssbX0sIHtuLG19 IGFuZCB0aGVpciByZWx1Y3RhbnQgdmVyc2lvbnMuIiksCisJCQkJCQkJCSBwYXJzZXJfZXJycG9z aXRpb24oQDEpKSk7CisJCQkJfQorCQkJLyogUkVMVUNUQU5UIHF1YW50aWZpZXJzICh3aGVuIGxl eGVyIHNlcGFyYXRlcyB0b2tlbnMpICovCisJCQl8ICcqJyBPcAorCQkJCXsKKwkJCQkJaWYgKHN0 cmNtcCgkMiwgIj8iKSAhPSAwKQorCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJKGVycmNv ZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJCQkgZXJybXNnKCJpbnZhbGlkIHRva2Vu IGFmdGVyIFwiKlwiIHF1YW50aWZpZXIiKSwKKwkJCQkJCQkJIGVycmhpbnQoIkRpZCB5b3UgbWVh biBcIio/XCIgZm9yIHJlbHVjdGFudCBxdWFudGlmaWVyPyIpLAorCQkJCQkJCQkgcGFyc2VyX2Vy cnBvc2l0aW9uKEAyKSkpOworCQkJCQkkJCA9IChOb2RlICopIG1ha2VSUFJRdWFudGlmaWVyKDAs IElOVF9NQVgsIEAyLCBAMSwgeXlzY2FubmVyKTsKKwkJCQl9CisJCQl8ICcrJyBPcAorCQkJCXsK KwkJCQkJaWYgKHN0cmNtcCgkMiwgIj8iKSAhPSAwKQorCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJ CQkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJCQkgZXJybXNnKCJp bnZhbGlkIHRva2VuIGFmdGVyIFwiK1wiIHF1YW50aWZpZXIiKSwKKwkJCQkJCQkJIGVycmhpbnQo IkRpZCB5b3UgbWVhbiBcIis/XCIgZm9yIHJlbHVjdGFudCBxdWFudGlmaWVyPyIpLAorCQkJCQkJ CQkgcGFyc2VyX2VycnBvc2l0aW9uKEAyKSkpOworCQkJCQkkJCA9IChOb2RlICopIG1ha2VSUFJR dWFudGlmaWVyKDEsIElOVF9NQVgsIEAyLCBAMSwgeXlzY2FubmVyKTsKKwkJCQl9CisJCQl8IE9w IE9wCisJCQkJeworCQkJCQlpZiAoc3RyY21wKCQxLCAiPyIpICE9IDAgfHwgc3RyY21wKCQyLCAi PyIpICE9IDApCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RF X1NZTlRBWF9FUlJPUiksCisJCQkJCQkJCSBlcnJtc2coImludmFsaWQgcXVhbnRpZmllciBjb21i aW5hdGlvbiIpLAorCQkJCQkJCQkgZXJyaGludCgiRGlkIHlvdSBtZWFuIFwiPz9cIiBmb3IgcmVs dWN0YW50IHF1YW50aWZpZXI/IiksCisJCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24oQDEpKSk7 CisJCQkJCSQkID0gKE5vZGUgKikgbWFrZVJQUlF1YW50aWZpZXIoMCwgMSwgQDIsIEAxLCB5eXNj YW5uZXIpOworCQkJCX0KKwkJCS8qIHtufSwge24sfSwgeyxtfSwge24sbX0gcXVhbnRpZmllcnMg Ki8KKwkJCXwgJ3snIEljb25zdCAnfScKKwkJCQl7CisJCQkJCWlmICgkMiA8PSAwIHx8ICQyID49 IElOVF9NQVgpCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQllcnJjb2RlKEVSUkNPREVf U1lOVEFYX0VSUk9SKSwKKwkJCQkJCQkJZXJybXNnKCJxdWFudGlmaWVyIGJvdW5kIG11c3QgYmUg YmV0d2VlbiAxIGFuZCAlZCIsIElOVF9NQVggLSAxKSwKKwkJCQkJCQkJcGFyc2VyX2VycnBvc2l0 aW9uKEAyKSk7CisJCQkJCSQkID0gKE5vZGUgKikgbWFrZVJQUlF1YW50aWZpZXIoJDIsICQyLCAt MSwgQDEsIHl5c2Nhbm5lcik7CisJCQkJfQorCQkJfCAneycgSWNvbnN0ICcsJyAnfScKKwkJCQl7 CisJCQkJCWlmICgkMiA8IDAgfHwgJDIgPj0gSU5UX01BWCkKKwkJCQkJCWVyZXBvcnQoRVJST1Is CisJCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJCQllcnJtc2co InF1YW50aWZpZXIgYm91bmQgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kICVkIiwgSU5UX01BWCAtIDEp LAorCQkJCQkJCQlwYXJzZXJfZXJycG9zaXRpb24oQDIpKTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBt YWtlUlBSUXVhbnRpZmllcigkMiwgSU5UX01BWCwgLTEsIEAxLCB5eXNjYW5uZXIpOworCQkJCX0K KwkJCXwgJ3snICcsJyBJY29uc3QgJ30nCisJCQkJeworCQkJCQlpZiAoJDMgPD0gMCB8fCAkMyA+ PSBJTlRfTUFYKQorCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJZXJyY29kZShFUlJDT0RF X1NZTlRBWF9FUlJPUiksCisJCQkJCQkJCWVycm1zZygicXVhbnRpZmllciBib3VuZCBtdXN0IGJl IGJldHdlZW4gMSBhbmQgJWQiLCBJTlRfTUFYIC0gMSksCisJCQkJCQkJCXBhcnNlcl9lcnJwb3Np dGlvbihAMykpOworCQkJCQkkJCA9IChOb2RlICopIG1ha2VSUFJRdWFudGlmaWVyKDAsICQzLCAt MSwgQDEsIHl5c2Nhbm5lcik7CisJCQkJfQorCQkJfCAneycgSWNvbnN0ICcsJyBJY29uc3QgJ30n CisJCQkJeworCQkJCQlpZiAoJDIgPCAwIHx8ICQ0IDw9IDAgfHwgJDIgPj0gSU5UX01BWCB8fCAk NCA+PSBJTlRfTUFYKQorCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJZXJyY29kZShFUlJD T0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQkJCWVycm1zZygicXVhbnRpZmllciBib3VuZHMgbXVz dCBiZSBiZXR3ZWVuIDAgYW5kICVkIHdpdGggbWF4ID49IDEiLCBJTlRfTUFYIC0gMSksCisJCQkJ CQkJCXBhcnNlcl9lcnJwb3NpdGlvbihAMikpOworCQkJCQlpZiAoJDIgPiAkNCkKKwkJCQkJCWVy ZXBvcnQoRVJST1IsCisJCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJ CQkJCQllcnJtc2coInF1YW50aWZpZXIgbWluaW11bSBib3VuZCBtdXN0IG5vdCBleGNlZWQgbWF4 aW11bSIpLAorCQkJCQkJCQlwYXJzZXJfZXJycG9zaXRpb24oQDIpKTsKKwkJCQkJJCQgPSAoTm9k ZSAqKSBtYWtlUlBSUXVhbnRpZmllcigkMiwgJDQsIC0xLCBAMSwgeXlzY2FubmVyKTsKKwkJCQl9 CisJCQkvKiBSZWx1Y3RhbnQgdmVyc2lvbnM6IHtufT8sIHtuLH0/LCB7LG19Pywge24sbX0/ICov CisJCQl8ICd7JyBJY29uc3QgJ30nIE9wCisJCQkJeworCQkJCQlpZiAoc3RyY21wKCQ0LCAiPyIp ICE9IDApCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZ TlRBWF9FUlJPUiksCisJCQkJCQkJCSBlcnJtc2coImludmFsaWQgdG9rZW4gYWZ0ZXIgcmFuZ2Ug cXVhbnRpZmllciIpLAorCQkJCQkJCQkgZXJyaGludCgiT25seSBcIj9cIiBpcyBhbGxvd2VkIGFm dGVyIHtufSB0byBtYWtlIGl0IHJlbHVjdGFudC4iKSwKKwkJCQkJCQkJIHBhcnNlcl9lcnJwb3Np dGlvbihANCkpKTsKKwkJCQkJaWYgKCQyIDw9IDAgfHwgJDIgPj0gSU5UX01BWCkKKwkJCQkJCWVy ZXBvcnQoRVJST1IsCisJCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJ CQkJCQllcnJtc2coInF1YW50aWZpZXIgYm91bmQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kICVkIiwg SU5UX01BWCAtIDEpLAorCQkJCQkJCQlwYXJzZXJfZXJycG9zaXRpb24oQDIpKTsKKwkJCQkJJCQg PSAoTm9kZSAqKSBtYWtlUlBSUXVhbnRpZmllcigkMiwgJDIsIEA0LCBAMSwgeXlzY2FubmVyKTsK KwkJCQl9CisJCQl8ICd7JyBJY29uc3QgJywnICd9JyBPcAorCQkJCXsKKwkJCQkJaWYgKHN0cmNt cCgkNSwgIj8iKSAhPSAwKQorCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJKGVycmNvZGUo RVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJCQkgZXJybXNnKCJpbnZhbGlkIHRva2VuIGFm dGVyIHJhbmdlIHF1YW50aWZpZXIiKSwKKwkJCQkJCQkJIGVycmhpbnQoIk9ubHkgXCI/XCIgaXMg YWxsb3dlZCBhZnRlciB7bix9IG9yIHssbX0gdG8gbWFrZSBpdCByZWx1Y3RhbnQuIiksCisJCQkJ CQkJCSBwYXJzZXJfZXJycG9zaXRpb24oQDUpKSk7CisJCQkJCWlmICgkMiA8IDAgfHwgJDIgPj0g SU5UX01BWCkKKwkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9T WU5UQVhfRVJST1IpLAorCQkJCQkJCQllcnJtc2coInF1YW50aWZpZXIgYm91bmQgbXVzdCBiZSBi ZXR3ZWVuIDAgYW5kICVkIiwgSU5UX01BWCAtIDEpLAorCQkJCQkJCQlwYXJzZXJfZXJycG9zaXRp b24oQDIpKTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBtYWtlUlBSUXVhbnRpZmllcigkMiwgSU5UX01B WCwgQDUsIEAxLCB5eXNjYW5uZXIpOworCQkJCX0KKwkJCXwgJ3snICcsJyBJY29uc3QgJ30nIE9w CisJCQkJeworCQkJCQlpZiAoc3RyY21wKCQ1LCAiPyIpICE9IDApCisJCQkJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQkJCSBl cnJtc2coImludmFsaWQgdG9rZW4gYWZ0ZXIgcmFuZ2UgcXVhbnRpZmllciIpLAorCQkJCQkJCQkg ZXJyaGludCgiT25seSBcIj9cIiBpcyBhbGxvd2VkIGFmdGVyIHtuLH0gb3IgeyxtfSB0byBtYWtl IGl0IHJlbHVjdGFudC4iKSwKKwkJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihANSkpKTsKKwkJ CQkJaWYgKCQzIDw9IDAgfHwgJDMgPj0gSU5UX01BWCkKKwkJCQkJCWVyZXBvcnQoRVJST1IsCisJ CQkJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJCQllcnJtc2coInF1 YW50aWZpZXIgYm91bmQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kICVkIiwgSU5UX01BWCAtIDEpLAor CQkJCQkJCQlwYXJzZXJfZXJycG9zaXRpb24oQDMpKTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBtYWtl UlBSUXVhbnRpZmllcigwLCAkMywgQDUsIEAxLCB5eXNjYW5uZXIpOworCQkJCX0KKwkJCXwgJ3sn IEljb25zdCAnLCcgSWNvbnN0ICd9JyBPcAorCQkJCXsKKwkJCQkJaWYgKHN0cmNtcCgkNiwgIj8i KSAhPSAwKQorCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9T WU5UQVhfRVJST1IpLAorCQkJCQkJCQkgZXJybXNnKCJpbnZhbGlkIHRva2VuIGFmdGVyIHJhbmdl IHF1YW50aWZpZXIiKSwKKwkJCQkJCQkJIGVycmhpbnQoIk9ubHkgXCI/XCIgaXMgYWxsb3dlZCBh ZnRlciB7bixtfSB0byBtYWtlIGl0IHJlbHVjdGFudC4iKSwKKwkJCQkJCQkJIHBhcnNlcl9lcnJw b3NpdGlvbihANikpKTsKKwkJCQkJaWYgKCQyIDwgMCB8fCAkNCA8PSAwIHx8ICQyID49IElOVF9N QVggfHwgJDQgPj0gSU5UX01BWCkKKwkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCWVycmNv ZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJCQllcnJtc2coInF1YW50aWZpZXIgYm91 bmRzIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAlZCB3aXRoIG1heCA+PSAxIiwgSU5UX01BWCAtIDEp LAorCQkJCQkJCQlwYXJzZXJfZXJycG9zaXRpb24oQDIpKTsKKwkJCQkJaWYgKCQyID4gJDQpCisJ CQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQllcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9S KSwKKwkJCQkJCQkJZXJybXNnKCJxdWFudGlmaWVyIG1pbmltdW0gYm91bmQgbXVzdCBub3QgZXhj ZWVkIG1heGltdW0iKSwKKwkJCQkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKEAyKSk7CisJCQkJCSQk ID0gKE5vZGUgKikgbWFrZVJQUlF1YW50aWZpZXIoJDIsICQ0LCBANiwgQDEsIHl5c2Nhbm5lcik7 CisJCQkJfQorCQk7CisKK3Jvd19wYXR0ZXJuX2RlZmluaXRpb25fbGlzdDoKKwkJCXJvd19wYXR0 ZXJuX2RlZmluaXRpb24JCQkJCQkJCQkJeyAkJCA9IGxpc3RfbWFrZTEoJDEpOyB9CisJCQl8IHJv d19wYXR0ZXJuX2RlZmluaXRpb25fbGlzdCAnLCcgcm93X3BhdHRlcm5fZGVmaW5pdGlvbgl7ICQk ID0gbGFwcGVuZCgkMSwgJDMpOyB9CisJCTsKKworcm93X3BhdHRlcm5fZGVmaW5pdGlvbjoKKwkJ CUNvbElkIEFTIGFfZXhwcgorCQkJCXsKKwkJCQkJJCQgPSBtYWtlTm9kZShSZXNUYXJnZXQpOwor CQkJCQkkJC0+bmFtZSA9ICQxOworCQkJCQkkJC0+aW5kaXJlY3Rpb24gPSBOSUw7CisJCQkJCSQk LT52YWwgPSAoTm9kZSAqKSAkMzsKKwkJCQkJJCQtPmxvY2F0aW9uID0gQDE7CisJCQkJfQorCQk7 CiAKIC8qCiAgKiBTdXBwb3J0aW5nIG5vbnRlcm1pbmFscyBmb3IgZXhwcmVzc2lvbnMuCkBAIC0x ODg4NSw2ICsxOTI1MCw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgREVDTEFSRQogCQkJ fCBERUZBVUxUUwogCQkJfCBERUZFUlJFRAorCQkJfCBERUZJTkUKIAkJCXwgREVGSU5FUgogCQkJ fCBERUxFVEVfUAogCQkJfCBERUxJTUlURVIKQEAgLTE4OTUzLDYgKzE5MzE5LDcgQEAgdW5yZXNl cnZlZF9rZXl3b3JkOgogCQkJfCBJTkRFWEVTCiAJCQl8IElOSEVSSVQKIAkJCXwgSU5IRVJJVFMK KwkJCXwgSU5JVElBTAogCQkJfCBJTkxJTkVfUAogCQkJfCBJTlBVVF9QCiAJCQl8IElOU0VOU0lU SVZFCkBAIC0xOTAyOSw3ICsxOTM5Niw5IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgUEFS VElUSU9OUwogCQkJfCBQQVNTSU5HCiAJCQl8IFBBU1NXT1JECisJCQl8IFBBU1QKIAkJCXwgUEFU SAorCQkJfCBQQVRURVJOX1AKIAkJCXwgUEVSSU9ECiAJCQl8IFBMQU4KIAkJCXwgUExBTlMKQEAg LTE5MDg4LDYgKzE5NDU3LDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBTRUFSQ0gKIAkJ CXwgU0VDT05EX1AKIAkJCXwgU0VDVVJJVFkKKwkJCXwgU0VFSwogCQkJfCBTRVFVRU5DRQogCQkJ fCBTRVFVRU5DRVMKIAkJCXwgU0VSSUFMSVpBQkxFCkBAIC0xOTQ3Nyw2ICsxOTg0Nyw3IEBAIGJh cmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgREVGQVVMVFMKIAkJCXwgREVGRVJSQUJMRQogCQkJfCBE RUZFUlJFRAorCQkJfCBERUZJTkUKIAkJCXwgREVGSU5FUgogCQkJfCBERUxFVEVfUAogCQkJfCBE RUxJTUlURVIKQEAgLTE5NTU5LDYgKzE5OTMwLDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJ fCBJTkRFWEVTCiAJCQl8IElOSEVSSVQKIAkJCXwgSU5IRVJJVFMKKwkJCXwgSU5JVElBTAogCQkJ fCBJTklUSUFMTFkKIAkJCXwgSU5MSU5FX1AKIAkJCXwgSU5ORVJfUApAQCAtMTk2NzMsNyArMjAw NDUsOSBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IFBBUlRJVElPTlMKIAkJCXwgUEFTU0lO RwogCQkJfCBQQVNTV09SRAorCQkJfCBQQVNUCiAJCQl8IFBBVEgKKwkJCXwgUEFUVEVSTl9QCiAJ CQl8IFBFUklPRAogCQkJfCBQTEFDSU5HCiAJCQl8IFBMQU4KQEAgLTE5NzM3LDYgKzIwMTExLDcg QEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBTQ1JPTEwKIAkJCXwgU0VBUkNICiAJCQl8IFNF Q1VSSVRZCisJCQl8IFNFRUsKIAkJCXwgU0VMRUNUCiAJCQl8IFNFUVVFTkNFCiAJCQl8IFNFUVVF TkNFUwpAQCAtMjA5MzEsNiArMjEzMDYsMjQgQEAgbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hh ciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpCiAJcmV0dXJuIChOb2RlICop IHM7CiB9CiAKKy8qCisgKiBtYWtlUlBSUXVhbnRpZmllcgorICoJCUNyZWF0ZSBhbiBSUFJQYXR0 ZXJuTm9kZSB3aXRoIHNwZWNpZmllZCBxdWFudGlmaWVyIGJvdW5kcy4KKyAqLworc3RhdGljIFJQ UlBhdHRlcm5Ob2RlICoKK21ha2VSUFJRdWFudGlmaWVyKGludCBtaW4sIGludCBtYXgsIFBhcnNl TG9jIHJlbHVjdGFudF9sb2NhdGlvbiwgaW50IGxvY2F0aW9uLAorCQkJCSAgY29yZV95eXNjYW5f dCB5eXNjYW5uZXIpCit7CisJUlBSUGF0dGVybk5vZGUgKm4gPSBtYWtlTm9kZShSUFJQYXR0ZXJu Tm9kZSk7CisKKwluLT5taW4gPSBtaW47CisJbi0+bWF4ID0gbWF4OworCW4tPnJlbHVjdGFudCA9 IChyZWx1Y3RhbnRfbG9jYXRpb24gPj0gMCk7CisJbi0+cmVsdWN0YW50X2xvY2F0aW9uID0gcmVs dWN0YW50X2xvY2F0aW9uOworCW4tPmxvY2F0aW9uID0gbG9jYXRpb247CisJcmV0dXJuIG47Cit9 CisKIC8qIHBhcnNlcl9pbml0KCkKICAqIEluaXRpYWxpemUgdG8gcGFyc2Ugb25lIHF1ZXJ5IHN0 cmluZwogICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9z cmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggOTEzNzdhNmNkZTMuLjQ1NWRiMmNl YzYxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3Jj L2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC01ODEsNiArNTgxLDczIEBAIHR5cGVkZWYg c3RydWN0IFNvcnRCeQogCVBhcnNlTG9jCWxvY2F0aW9uOwkJLyogb3BlcmF0b3IgbG9jYXRpb24s IG9yIC0xIGlmIG5vbmUvdW5rbm93biAqLwogfSBTb3J0Qnk7CiAKKy8qCisgKiBBRlRFUiBNQVRD SCByb3cgcGF0dGVybiBza2lwIHRvIHR5cGVzIGluIHJvdyBwYXR0ZXJuIGNvbW1vbiBzeW50YXgK KyAqLwordHlwZWRlZiBlbnVtIFJQU2tpcFRvCit7CisJU1RfTk9ORSwJCQkJCS8qIG5vIEFGVEVS IE1BVENIIGNsYXVzZTsgZGVmYXVsdCBmb3Igbm9uLVJQUgorCQkJCQkJCQkgKiB3aW5kb3dzICov CisJU1RfTkVYVF9ST1csCQkJCS8qIFNLSVAgVE8gTkVYVCBST1cgKi8KKwlTVF9QQVNUX0xBU1Rf Uk9XCQkJLyogU0tJUCBUTyBQQVNUIExBU1QgUk9XICovCit9IFJQU2tpcFRvOworCisvKgorICog UlBSTmF2T2Zmc2V0S2luZCAtIHN0YXR1cyBvZiBuYXZpZ2F0aW9uIG9mZnNldCBmb3IgdHVwbGVz dG9yZSB0cmltLgorICoKKyAqIFRoZSBwbGFubmVyIGNvbXB1dGVzIG5hdk1heE9mZnNldC9uYXZG aXJzdE9mZnNldCBmb3IgdHVwbGVzdG9yZSBtYXJrCisgKiBvcHRpbWl6YXRpb24uICBUaGlzIGVu dW0gdHJhY2tzIHdoZXRoZXIgdGhlIHZhbHVlIGlzIGEgcmVzb2x2ZWQgY29uc3RhbnQsCisgKiBu ZWVkcyBydW50aW1lIGV2YWx1YXRpb24sIG9yIGNhbm5vdCBiZSBkZXRlcm1pbmVkIChyZXRhaW4g YWxsIHJvd3MpLgorICovCit0eXBlZGVmIGVudW0gUlBSTmF2T2Zmc2V0S2luZAoreworCVJQUl9O QVZfT0ZGU0VUX0ZJWEVELAkJLyogcmVzb2x2ZWQgY29uc3RhbnQ7IHVzZSB0aGUgb2Zmc2V0IHZh bHVlICovCisJUlBSX05BVl9PRkZTRVRfTkVFRFNfRVZBTCwJLyogbm9uLWNvbnN0YW50IG9mZnNl dDsgZXZhbHVhdGUgYXQgZXhlY3V0b3IKKwkJCQkJCQkJICogaW5pdCAqLworCVJQUl9OQVZfT0ZG U0VUX1JFVEFJTl9BTEwJLyogY2Fubm90IGRldGVybWluZTsgcmV0YWluIGFsbCByb3dzIChubyB0 cmltKSAqLworfSBSUFJOYXZPZmZzZXRLaW5kOworCisvKgorICogUlBSUGF0dGVybk5vZGVUeXBl IC0gUm93IFBhdHRlcm4gUmVjb2duaXRpb24gcGF0dGVybiBub2RlIHR5cGVzCisgKi8KK3R5cGVk ZWYgZW51bSBSUFJQYXR0ZXJuTm9kZVR5cGUKK3sKKwlSUFJfUEFUVEVSTl9WQVIsCQkJLyogdmFy aWFibGUgcmVmZXJlbmNlICovCisJUlBSX1BBVFRFUk5fU0VRLAkJCS8qIHNlcXVlbmNlIChjb25j YXRlbmF0aW9uKSAqLworCVJQUl9QQVRURVJOX0FMVCwJCQkvKiBhbHRlcm5hdGlvbiAofCkgKi8K KwlSUFJfUEFUVEVSTl9HUk9VUAkJCS8qIGdyb3VwIChwYXJlbnRoZXNlcykgKi8KK30gUlBSUGF0 dGVybk5vZGVUeXBlOworCisvKgorICogUlBSUGF0dGVybk5vZGUgLSBSb3cgUGF0dGVybiBSZWNv Z25pdGlvbiBwYXR0ZXJuIEFTVCBub2RlCisgKi8KK3R5cGVkZWYgc3RydWN0IFJQUlBhdHRlcm5O b2RlCit7CisJTm9kZVRhZwkJdHlwZTsJCQkvKiBUX1JQUlBhdHRlcm5Ob2RlICovCisJUlBSUGF0 dGVybk5vZGVUeXBlIG5vZGVUeXBlOwkvKiBWQVIsIFNFUSwgQUxULCBHUk9VUCAqLworCWludAkJ CW1pbjsJCQkvKiBtaW5pbXVtIHJlcGV0aXRpb25zICgwIGZvciAqLCA/KSAqLworCWludAkJCW1h eDsJCQkvKiBtYXhpbXVtIHJlcGV0aXRpb25zIChJTlRfTUFYIGZvciAqLCArKSAqLworCWJvb2wJ CXJlbHVjdGFudDsJCS8qIHRydWUgZm9yIHJlbHVjdGFudCAobm9uLWdyZWVkeSkgKi8KKwlQYXJz ZUxvYwlyZWx1Y3RhbnRfbG9jYXRpb247IC8qIGxvY2F0aW9uIG9mICc/JyB0b2tlbiwgb3IgLTEg Ki8KKwlQYXJzZUxvYwlsb2NhdGlvbjsJCS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSAqLworCWNo YXIJICAgKnZhck5hbWU7CQkvKiBWQVI6IHZhcmlhYmxlIG5hbWUgKi8KKwlMaXN0CSAgICpjaGls ZHJlbjsJCS8qIFNFUSwgQUxULCBHUk9VUDogY2hpbGQgbm9kZXMgKi8KK30gUlBSUGF0dGVybk5v ZGU7CisKKy8qCisgKiBSb3dQYXR0ZXJuQ29tbW9uU3ludGF4IC0gcmF3IHJlcHJlc2VudGF0aW9u IG9mIHJvdyBwYXR0ZXJuIGNvbW1vbiBzeW50YXgKKyAqLwordHlwZWRlZiBzdHJ1Y3QgUlBDb21t b25TeW50YXgKK3sKKwlOb2RlVGFnCQl0eXBlOworCVJQU2tpcFRvCXJwU2tpcFRvOwkJLyogUm93 IFBhdHRlcm4gQUZURVIgTUFUQ0ggU0tJUCB0eXBlICovCisJYm9vbAkJaW5pdGlhbDsJCS8qIHRy dWUgaWYgPHJvdyBwYXR0ZXJuIGluaXRpYWwgb3Igc2Vlaz4gaXMKKwkJCQkJCQkJICogaW5pdGlh bCAqLworCVJQUlBhdHRlcm5Ob2RlICpycFBhdHRlcm47CS8qIFBBVFRFUk4gY2xhdXNlIEFTVCAq LworCUxpc3QJICAgKnJwRGVmczsJCQkvKiByb3cgcGF0dGVybiBkZWZpbml0aW9ucyBjbGF1c2Ug KGxpc3Qgb2YKKwkJCQkJCQkJICogUmVzVGFyZ2V0KSAqLworfSBSUENvbW1vblN5bnRheDsKKwog LyoKICAqIFdpbmRvd0RlZiAtIHJhdyByZXByZXNlbnRhdGlvbiBvZiBXSU5ET1cgYW5kIE9WRVIg Y2xhdXNlcwogICoKQEAgLTU5NiwxMCArNjYzLDEzIEBAIHR5cGVkZWYgc3RydWN0IFdpbmRvd0Rl ZgogCWNoYXIJICAgKnJlZm5hbWU7CQkvKiByZWZlcmVuY2VkIHdpbmRvdyBuYW1lLCBpZiBhbnkg Ki8KIAlMaXN0CSAgICpwYXJ0aXRpb25DbGF1c2U7CS8qIFBBUlRJVElPTiBCWSBleHByZXNzaW9u IGxpc3QgKi8KIAlMaXN0CSAgICpvcmRlckNsYXVzZTsJLyogT1JERVIgQlkgKGxpc3Qgb2YgU29y dEJ5KSAqLworCVJQQ29tbW9uU3ludGF4ICpycENvbW1vblN5bnRheDsgLyogcm93IHBhdHRlcm4g Y29tbW9uIHN5bnRheCAqLwogCWludAkJCWZyYW1lT3B0aW9uczsJLyogZnJhbWVfY2xhdXNlIG9w dGlvbnMsIHNlZSBiZWxvdyAqLwogCU5vZGUJICAgKnN0YXJ0T2Zmc2V0OwkvKiBleHByZXNzaW9u IGZvciBzdGFydGluZyBib3VuZCwgaWYgYW55ICovCiAJTm9kZQkgICAqZW5kT2Zmc2V0OwkJLyog ZXhwcmVzc2lvbiBmb3IgZW5kaW5nIGJvdW5kLCBpZiBhbnkgKi8KIAlQYXJzZUxvYwlsb2NhdGlv bjsJCS8qIHBhcnNlIGxvY2F0aW9uLCBvciAtMSBpZiBub25lL3Vua25vd24gKi8KKwlQYXJzZUxv YwlmcmFtZUxvY2F0aW9uOwkvKiBST1dTL1JBTkdFL0dST1VQUyBsb2NhdGlvbiwgb3IgLTEgKi8K KwlQYXJzZUxvYwlleGNsdWRlTG9jYXRpb247CS8qIEVYQ0xVREUgbG9jYXRpb24sIG9yIC0xICov CiB9IFdpbmRvd0RlZjsKIAogLyoKQEAgLTE2NDgsNiArMTcxOCwxMSBAQCB0eXBlZGVmIHN0cnVj dCBHcm91cGluZ1NldAogICogdGhlIG9yZGVyQ2xhdXNlIG1pZ2h0IG9yIG1pZ2h0IG5vdCBiZSBj b3BpZWQgKHNlZSBjb3BpZWRPcmRlcik7IHRoZSBmcmFtaW5nCiAgKiBvcHRpb25zIGFyZSBuZXZl ciBjb3BpZWQsIHBlciBzcGVjLgogICoKKyAqICJkZWZpbmVDbGF1c2UiIGlzIFJvdyBQYXR0ZXJu IFJlY29nbml0aW9uIERFRklORSBjbGF1c2UgKGxpc3Qgb2YKKyAqIFRhcmdldEVudHJ5KS4gVGFy Z2V0RW50cnkucmVzbmFtZSByZXByZXNlbnRzIHJvdyBwYXR0ZXJuIGRlZmluaXRpb24KKyAqIHZh cmlhYmxlIG5hbWUuICJycFBhdHRlcm4iIHJlcHJlc2VudHMgUEFUVEVSTiBjbGF1c2UgYXMgYW4g QVNUIHRyZWUKKyAqIChSUFJQYXR0ZXJuTm9kZSkuCisgKgogICogVGhlIGluZm9ybWF0aW9uIHJl bGV2YW50IGZvciB0aGUgcXVlcnkganVtYmxpbmcgaXMgdGhlIHBhcnRpdGlvbiBjbGF1c2UKICAq IHR5cGUgYW5kIGl0cyBib3VuZHMuCiAgKi8KQEAgLTE2NzcsNiArMTc1MiwxNCBAQCB0eXBlZGVm IHN0cnVjdCBXaW5kb3dDbGF1c2UKIAlJbmRleAkJd2lucmVmOwkJCS8qIElEIHJlZmVyZW5jZWQg Ynkgd2luZG93IGZ1bmN0aW9ucyAqLwogCS8qIGRpZCB3ZSBjb3B5IG9yZGVyQ2xhdXNlIGZyb20g cmVmbmFtZT8gKi8KIAlib29sCQljb3BpZWRPcmRlciBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxl X2lnbm9yZSk7CisJLyogUm93IFBhdHRlcm4gQUZURVIgTUFUQ0ggU0tJUCBjbGF1c2UgKi8KKwlS UFNraXBUbwlycFNraXBUbzsJCS8qIFJvdyBQYXR0ZXJuIFNraXAgVG8gdHlwZSAqLworCWJvb2wJ CWluaXRpYWw7CQkvKiB0cnVlIGlmIDxyb3cgcGF0dGVybiBpbml0aWFsIG9yIHNlZWs+IGlzCisJ CQkJCQkJCSAqIGluaXRpYWwgKi8KKwkvKiBSb3cgUGF0dGVybiBERUZJTkUgY2xhdXNlIChsaXN0 IG9mIFRhcmdldEVudHJ5KSAqLworCUxpc3QJICAgKmRlZmluZUNsYXVzZTsKKwkvKiBSb3cgUGF0 dGVybiBQQVRURVJOIGNsYXVzZSBBU1QgKi8KKwlSUFJQYXR0ZXJuTm9kZSAqcnBQYXR0ZXJuOwog fSBXaW5kb3dDbGF1c2U7CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3ds aXN0LmggYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKaW5kZXggNTFlYWQ1NGYwMTUuLjM4 OTRmYWQ5MDIzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIv c3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCkBAIC0xMjksNiArMTI5LDcgQEAgUEdfS0VZV09S RCgiZGVmYXVsdCIsIERFRkFVTFQsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19L RVlXT1JEKCJkZWZhdWx0cyIsIERFRkFVTFRTLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFC RUwpCiBQR19LRVlXT1JEKCJkZWZlcnJhYmxlIiwgREVGRVJSQUJMRSwgUkVTRVJWRURfS0VZV09S RCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImRlZmVycmVkIiwgREVGRVJSRUQsIFVOUkVTRVJW RURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoImRlZmluZSIsIERFRklORSwgVU5S RVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZGVmaW5lciIsIERFRklO RVIsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImRlbGV0ZSIs IERFTEVURV9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJk ZWxpbWl0ZXIiLCBERUxJTUlURVIsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKQEAg LTIyMSw2ICsyMjIsNyBAQCBQR19LRVlXT1JEKCJpbmRleCIsIElOREVYLCBVTlJFU0VSVkVEX0tF WVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJpbmRleGVzIiwgSU5ERVhFUywgVU5SRVNF UlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiaW5oZXJpdCIsIElOSEVSSVQs IFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImluaGVyaXRzIiwg SU5IRVJJVFMsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoImlu aXRpYWwiLCBJTklUSUFMLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlX T1JEKCJpbml0aWFsbHkiLCBJTklUSUFMTFksIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwp CiBQR19LRVlXT1JEKCJpbmxpbmUiLCBJTkxJTkVfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJF X0xBQkVMKQogUEdfS0VZV09SRCgiaW5uZXIiLCBJTk5FUl9QLCBUWVBFX0ZVTkNfTkFNRV9LRVlX T1JELCBCQVJFX0xBQkVMKQpAQCAtMzQ3LDcgKzM0OSw5IEBAIFBHX0tFWVdPUkQoInBhcnRpdGlv biIsIFBBUlRJVElPTiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09S RCgicGFydGl0aW9ucyIsIFBBUlRJVElPTlMsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJF TCkKIFBHX0tFWVdPUkQoInBhc3NpbmciLCBQQVNTSU5HLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJB UkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwYXNzd29yZCIsIFBBU1NXT1JELCBVTlJFU0VSVkVEX0tF WVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJwYXN0IiwgUEFTVCwgVU5SRVNFUlZFRF9L RVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicGF0aCIsIFBBVEgsIFVOUkVTRVJWRURf S0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoInBhdHRlcm4iLCBQQVRURVJOX1AsIFVO UkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBlcmlvZCIsIFBFUklP RCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicGxhY2luZyIs IFBMQUNJTkcsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwbGFu IiwgUExBTiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQpAQCAtNDE1LDYgKzQxOSw3 IEBAIFBHX0tFWVdPUkQoInNjcm9sbCIsIFNDUk9MTCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJF X0xBQkVMKQogUEdfS0VZV09SRCgic2VhcmNoIiwgU0VBUkNILCBVTlJFU0VSVkVEX0tFWVdPUkQs IEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJzZWNvbmQiLCBTRUNPTkRfUCwgVU5SRVNFUlZFRF9L RVlXT1JELCBBU19MQUJFTCkKIFBHX0tFWVdPUkQoInNlY3VyaXR5IiwgU0VDVVJJVFksIFVOUkVT RVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoInNlZWsiLCBTRUVLLCBVTlJF U0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJzZWxlY3QiLCBTRUxFQ1Qs IFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJzZXF1ZW5jZSIsIFNF UVVFTkNFLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJzZXF1 ZW5jZXMiLCBTRVFVRU5DRVMsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggYi9zcmMvaW5jbHVkZS9wYXJz ZXIvcGFyc2Vfbm9kZS5oCmluZGV4IGY3ZjRiYTZjMmE4Li5jYjlkMDJjMDBjNCAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJz ZXIvcGFyc2Vfbm9kZS5oCkBAIC01MSw2ICs1MSw3IEBAIHR5cGVkZWYgZW51bSBQYXJzZUV4cHJL aW5kCiAJRVhQUl9LSU5EX1dJTkRPV19GUkFNRV9SQU5HRSwJLyogd2luZG93IGZyYW1lIGNsYXVz ZSB3aXRoIFJBTkdFICovCiAJRVhQUl9LSU5EX1dJTkRPV19GUkFNRV9ST1dTLAkvKiB3aW5kb3cg ZnJhbWUgY2xhdXNlIHdpdGggUk9XUyAqLwogCUVYUFJfS0lORF9XSU5ET1dfRlJBTUVfR1JPVVBT LAkvKiB3aW5kb3cgZnJhbWUgY2xhdXNlIHdpdGggR1JPVVBTICovCisJRVhQUl9LSU5EX1JQUl9E RUZJTkUsCQkvKiBERUZJTkUgKi8KIAlFWFBSX0tJTkRfU0VMRUNUX1RBUkdFVCwJLyogU0VMRUNU IHRhcmdldCBsaXN0IGl0ZW0gKi8KIAlFWFBSX0tJTkRfSU5TRVJUX1RBUkdFVCwJLyogSU5TRVJU IHRhcmdldCBsaXN0IGl0ZW0gKi8KIAlFWFBSX0tJTkRfVVBEQVRFX1NPVVJDRSwJLyogVVBEQVRF IGFzc2lnbm1lbnQgc291cmNlIGl0ZW0gKi8KQEAgLTIzMCw2ICsyMzEsNyBAQCBzdHJ1Y3QgUGFy c2VTdGF0ZQogCVBhcnNlTmFtZXNwYWNlSXRlbSAqcF9ncm91cGluZ19uc2l0ZW07CS8qIE5TSXRl bSBmb3IgZ3JvdXBpbmcsIG9yIE5VTEwgKi8KIAlMaXN0CSAgICpwX3dpbmRvd2RlZnM7CS8qIHJh dyByZXByZXNlbnRhdGlvbnMgb2Ygd2luZG93IGNsYXVzZXMgKi8KIAlQYXJzZUV4cHJLaW5kIHBf ZXhwcl9raW5kOwkvKiB3aGF0IGtpbmQgb2YgZXhwcmVzc2lvbiB3ZSdyZSBwYXJzaW5nICovCisJ TGlzdAkgICAqcF9ycHJfcGF0dGVybl92YXJzOyAvKiBSUFIgdmFyaWFibGUgbmFtZXMgZm9yIERF RklORSBjbGF1c2UgKi8KIAlpbnQJCQlwX25leHRfcmVzbm87CS8qIG5leHQgdGFyZ2V0bGlzdCBy ZXNubyB0byBhc3NpZ24gKi8KIAlMaXN0CSAgICpwX211bHRpYXNzaWduX2V4cHJzOwkvKiBqdW5r IHRsaXN0IGVudHJpZXMgZm9yIG11bHRpYXNzaWduICovCiAJTGlzdAkgICAqcF9sb2NraW5nX2Ns YXVzZTsJLyogcmF3IEZPUiBVUERBVEUvRk9SIFNIQVJFIGluZm8gKi8KLS0gCjIuNDMuMAoK ----Next_Part(Sat_May__2_14_03_04_2026_790)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v47-0002-Row-pattern-recognition-patch-parse-analysis.patch" RnJvbSA3M2NjYzBhMTQ3NzFjYTY0MTEwYWVlYTUzMDNkMTM0ZDk0ZmFkYjQyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYXRzdW8gSXNoaWkgPGlzaGlpQHBvc3RncmVzcWwub3JnPgpE YXRlOiBTYXQsIDIgTWF5IDIwMjYgMTM6NDA6MjkgKzA5MDAKU3ViamVjdDogW1BBVENIIHY0NyAy LzldIFJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIHBhdGNoIChwYXJzZS9hbmFseXNpcykuCgotLS0K IHNyYy9iYWNrZW5kL25vZGVzL2NvcHlmdW5jcy5jICAgICB8ICAyNyArKwogc3JjL2JhY2tlbmQv bm9kZXMvZXF1YWxmdW5jcy5jICAgIHwgIDM1ICsrCiBzcmMvYmFja2VuZC9ub2Rlcy9vdXRmdW5j cy5jICAgICAgfCAgNTEgKysrCiBzcmMvYmFja2VuZC9ub2Rlcy9yZWFkZnVuY3MuYyAgICAgfCAg ODUgKysrKysKIHNyYy9iYWNrZW5kL3BhcnNlci9NYWtlZmlsZSAgICAgICB8ICAgMSArCiBzcmMv YmFja2VuZC9wYXJzZXIvUkVBRE1FICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvcGFyc2Vy L21lc29uLmJ1aWxkICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyAg ICB8ICAgOSArLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NsYXVzZS5jIHwgIDEyICstCiBz cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgfCAgNDIgKysrCiBzcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfZnVuYy5jICAgfCAgODYgKysrKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9ycHIuYyAgICB8IDU5NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9pbmNs dWRlL25vZGVzL3ByaW1ub2Rlcy5oICAgICB8ICA1NCArKysKIHNyYy9pbmNsdWRlL3BhcnNlci9w YXJzZV9jbGF1c2UuaCB8ICAgMyArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcnByLmggICAg fCAgMjIgKysKIDE1IGZpbGVzIGNoYW5nZWQsIDEwMTcgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlv bnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcnByLmgKCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9jb3B5ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVz L2NvcHlmdW5jcy5jCmluZGV4IGZmMjJhMDRhYmU1Li5lNjdhZDM5YmRiOCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvbm9kZXMvY29weWZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvY29w eWZ1bmNzLmMKQEAgLTE2LDYgKzE2LDcgQEAKICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCiAjaW5j bHVkZSAibWlzY2FkbWluLmgiCisjaW5jbHVkZSAibm9kZXMvcGxhbm5vZGVzLmgiCiAjaW5jbHVk ZSAidXRpbHMvZGF0dW0uaCIKIAogCkBAIC0xNjYsNiArMTY3LDMyIEBAIF9jb3B5Qml0bWFwc2V0 KGNvbnN0IEJpdG1hcHNldCAqZnJvbSkKIAlyZXR1cm4gYm1zX2NvcHkoZnJvbSk7CiB9CiAKK3N0 YXRpYyBSUFJQYXR0ZXJuICoKK19jb3B5UlBSUGF0dGVybihjb25zdCBSUFJQYXR0ZXJuICpmcm9t KQoreworCVJQUlBhdHRlcm4gKm5ld25vZGUgPSBtYWtlTm9kZShSUFJQYXR0ZXJuKTsKKworCUNP UFlfU0NBTEFSX0ZJRUxEKG51bVZhcnMpOworCUNPUFlfU0NBTEFSX0ZJRUxEKG1heERlcHRoKTsK KwlDT1BZX1NDQUxBUl9GSUVMRChudW1FbGVtZW50cyk7CisKKwkvKiBEZWVwIGNvcHkgdGhlIHZh ck5hbWVzIGFycmF5IChERUZJTkUgY2xhdXNlIGlzIHJlcXVpcmVkKSAqLworCUFzc2VydChmcm9t LT5udW1WYXJzID4gMCk7CisJbmV3bm9kZS0+dmFyTmFtZXMgPSBwYWxsb2MwKGZyb20tPm51bVZh cnMgKiBzaXplb2YoY2hhciAqKSk7CisJZm9yIChpbnQgaSA9IDA7IGkgPCBmcm9tLT5udW1WYXJz OyBpKyspCisJCW5ld25vZGUtPnZhck5hbWVzW2ldID0gcHN0cmR1cChmcm9tLT52YXJOYW1lc1tp XSk7CisKKwkvKiBEZWVwIGNvcHkgdGhlIGVsZW1lbnRzIGFycmF5IChhbHdheXMgaGFzIGF0IGxl YXN0IG9uZSBlbGVtZW50ICsgRklOKSAqLworCUFzc2VydChmcm9tLT5udW1FbGVtZW50cyA+PSAy KTsKKwluZXdub2RlLT5lbGVtZW50cyA9IHBhbGxvYyhmcm9tLT5udW1FbGVtZW50cyAqIHNpemVv ZihSUFJQYXR0ZXJuRWxlbWVudCkpOworCW1lbWNweShuZXdub2RlLT5lbGVtZW50cywgZnJvbS0+ ZWxlbWVudHMsCisJCSAgIGZyb20tPm51bUVsZW1lbnRzICogc2l6ZW9mKFJQUlBhdHRlcm5FbGVt ZW50KSk7CisKKwlDT1BZX1NDQUxBUl9GSUVMRChpc0Fic29yYmFibGUpOworCisJcmV0dXJuIG5l d25vZGU7Cit9CisKIAogLyoKICAqIGNvcHlPYmplY3RJbXBsIC0tIGltcGxlbWVudGF0aW9uIG9m IGNvcHlPYmplY3QoKTsgc2VlIG5vZGVzL25vZGVzLmgKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L25vZGVzL2VxdWFsZnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL2VxdWFsZnVuY3MuYwppbmRl eCAzZDFhMWFkZjg2ZS4uMzI4MTk5OTE4YjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVz L2VxdWFsZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9lcXVhbGZ1bmNzLmMKQEAgLTIw LDYgKzIwLDcgQEAKICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCiAjaW5jbHVkZSAibWlzY2FkbWlu LmgiCisjaW5jbHVkZSAibm9kZXMvcGxhbm5vZGVzLmgiCiAjaW5jbHVkZSAidXRpbHMvZGF0dW0u aCIKIAogCkBAIC0xNDksNiArMTUwLDQwIEBAIF9lcXVhbEJpdG1hcHNldChjb25zdCBCaXRtYXBz ZXQgKmEsIGNvbnN0IEJpdG1hcHNldCAqYikKIAlyZXR1cm4gYm1zX2VxdWFsKGEsIGIpOwogfQog CitzdGF0aWMgYm9vbAorX2VxdWFsUlBSUGF0dGVybihjb25zdCBSUFJQYXR0ZXJuICphLCBjb25z dCBSUFJQYXR0ZXJuICpiKQoreworCUNPTVBBUkVfU0NBTEFSX0ZJRUxEKG51bVZhcnMpOworCUNP TVBBUkVfU0NBTEFSX0ZJRUxEKG1heERlcHRoKTsKKwlDT01QQVJFX1NDQUxBUl9GSUVMRChudW1F bGVtZW50cyk7CisKKwkvKiBDb21wYXJlIHZhck5hbWVzIGFycmF5ICovCisJaWYgKGEtPm51bVZh cnMgPiAwKQorCXsKKwkJaWYgKGEtPnZhck5hbWVzID09IE5VTEwgfHwgYi0+dmFyTmFtZXMgPT0g TlVMTCkKKwkJCXJldHVybiBmYWxzZTsKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBhLT5udW1WYXJz OyBpKyspCisJCXsKKwkJCWlmIChzdHJjbXAoYS0+dmFyTmFtZXNbaV0sIGItPnZhck5hbWVzW2ld KSAhPSAwKQorCQkJCXJldHVybiBmYWxzZTsKKwkJfQorCX0KKworCS8qIENvbXBhcmUgZWxlbWVu dHMgYXJyYXkgKi8KKwlpZiAoYS0+bnVtRWxlbWVudHMgPiAwKQorCXsKKwkJaWYgKGEtPmVsZW1l bnRzID09IE5VTEwgfHwgYi0+ZWxlbWVudHMgPT0gTlVMTCkKKwkJCXJldHVybiBmYWxzZTsKKwkJ aWYgKG1lbWNtcChhLT5lbGVtZW50cywgYi0+ZWxlbWVudHMsCisJCQkJICAgYS0+bnVtRWxlbWVu dHMgKiBzaXplb2YoUlBSUGF0dGVybkVsZW1lbnQpKSAhPSAwKQorCQkJcmV0dXJuIGZhbHNlOwor CX0KKworCUNPTVBBUkVfU0NBTEFSX0ZJRUxEKGlzQWJzb3JiYWJsZSk7CisKKwlyZXR1cm4gdHJ1 ZTsKK30KKwogLyoKICAqIExpc3RzIGFyZSBoYW5kbGVkIHNwZWNpYWxseQogICovCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9vdXRmdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvb3V0 ZnVuY3MuYwppbmRleCA5NTNjNTc5N2M1ZC4uZTZlYTljZTIyZDkgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL25vZGVzL291dGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvb3V0ZnVuY3Mu YwpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIm5vZGVzL2JpdG1hcHNldC5oIgogI2luY2x1 ZGUgIm5vZGVzL25vZGVzLmgiCiAjaW5jbHVkZSAibm9kZXMvcGdfbGlzdC5oIgorI2luY2x1ZGUg Im5vZGVzL3BsYW5ub2Rlcy5oIgogI2luY2x1ZGUgInV0aWxzL2RhdHVtLmgiCiAKIC8qIFN0YXRl IGZsYWcgdGhhdCBkZXRlcm1pbmVzIGhvdyBub2RlVG9TdHJpbmdJbnRlcm5hbCgpIHNob3VsZCB0 cmVhdCBsb2NhdGlvbiBmaWVsZHMgKi8KQEAgLTcyNyw2ICs3MjgsNTYgQEAgX291dEFfQ29uc3Qo U3RyaW5nSW5mbyBzdHIsIGNvbnN0IEFfQ29uc3QgKm5vZGUpCiAJV1JJVEVfTE9DQVRJT05fRklF TEQobG9jYXRpb24pOwogfQogCitzdGF0aWMgdm9pZAorX291dFJQUlBhdHRlcm4oU3RyaW5nSW5m byBzdHIsIGNvbnN0IFJQUlBhdHRlcm4gKm5vZGUpCit7CisJV1JJVEVfTk9ERV9UWVBFKCJSUFJQ QVRURVJOIik7CisKKwlXUklURV9JTlRfRklFTEQobnVtVmFycyk7CisJV1JJVEVfSU5UX0ZJRUxE KG1heERlcHRoKTsKKwlXUklURV9JTlRfRklFTEQobnVtRWxlbWVudHMpOworCisJLyogV3JpdGUg dmFyTmFtZXMgYXJyYXkgYXMgbGlzdCBvZiBzdHJpbmdzICovCisJYXBwZW5kU3RyaW5nSW5mb1N0 cmluZyhzdHIsICIgOnZhck5hbWVzIik7CisJaWYgKG5vZGUtPm51bVZhcnMgPiAwICYmIG5vZGUt PnZhck5hbWVzICE9IE5VTEwpCisJeworCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKHN0ciwgIiAo Iik7CisJCWZvciAoaW50IGkgPSAwOyBpIDwgbm9kZS0+bnVtVmFyczsgaSsrKQorCQl7CisJCQlp ZiAoaSA+IDApCisJCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoc3RyLCAnICcpOworCQkJb3V0VG9r ZW4oc3RyLCBub2RlLT52YXJOYW1lc1tpXSk7CisJCX0KKwkJYXBwZW5kU3RyaW5nSW5mb0NoYXIo c3RyLCAnKScpOworCX0KKwllbHNlCisJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoc3RyLCAiIDw+ Iik7CisKKwkvKiBXcml0ZSBlbGVtZW50cyBhcnJheSAqLworCWFwcGVuZFN0cmluZ0luZm9TdHJp bmcoc3RyLCAiIDplbGVtZW50cyIpOworCWlmIChub2RlLT5udW1FbGVtZW50cyA+IDAgJiYgbm9k ZS0+ZWxlbWVudHMgIT0gTlVMTCkKKwl7CisJCWFwcGVuZFN0cmluZ0luZm9DaGFyKHN0ciwgJyAn KTsKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBub2RlLT5udW1FbGVtZW50czsgaSsrKQorCQl7CisJ CQljb25zdCBSUFJQYXR0ZXJuRWxlbWVudCAqZWxlbSA9ICZub2RlLT5lbGVtZW50c1tpXTsKKwor CQkJYXBwZW5kU3RyaW5nSW5mbyhzdHIsICIoJWQgJWQgJXUgJWQgJWQgJWQgJWQpIiwKKwkJCQkJ CQkgKGludCkgZWxlbS0+dmFySWQsCisJCQkJCQkJIChpbnQpIGVsZW0tPmRlcHRoLAorCQkJCQkJ CSAodW5zaWduZWQpIGVsZW0tPmZsYWdzLAorCQkJCQkJCSAoaW50KSBlbGVtLT5taW4sCisJCQkJ CQkJIChpbnQpIGVsZW0tPm1heCwKKwkJCQkJCQkgKGludCkgZWxlbS0+bmV4dCwKKwkJCQkJCQkg KGludCkgZWxlbS0+anVtcCk7CisJCX0KKwl9CisJZWxzZQorCQlhcHBlbmRTdHJpbmdJbmZvU3Ry aW5nKHN0ciwgIiA8PiIpOworCisJV1JJVEVfQk9PTF9GSUVMRChpc0Fic29yYmFibGUpOworfQor CiAKIC8qCiAgKiBvdXROb2RlIC0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL3JlYWRm dW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvcmVhZGZ1bmNzLmMKaW5kZXggYjZiMmNlNmM3OTIu LjViYmRlNWJjYWQyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9yZWFkZnVuY3MuYwor KysgYi9zcmMvYmFja2VuZC9ub2Rlcy9yZWFkZnVuY3MuYwpAQCAtMjgsNiArMjgsNyBAQAogCiAj aW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvYml0bWFwc2V0LmgiCisjaW5j bHVkZSAibm9kZXMvcGxhbm5vZGVzLmgiCiAjaW5jbHVkZSAibm9kZXMvcmVhZGZ1bmNzLmgiCiAK IApAQCAtNTY3LDYgKzU2OCw5MCBAQCBfcmVhZEV4dGVuc2libGVOb2RlKHZvaWQpCiAJUkVBRF9E T05FKCk7CiB9CiAKK3N0YXRpYyBSUFJQYXR0ZXJuICoKK19yZWFkUlBSUGF0dGVybih2b2lkKQor eworCVJFQURfTE9DQUxTKFJQUlBhdHRlcm4pOworCisJUkVBRF9JTlRfRklFTEQobnVtVmFycyk7 CisJUkVBRF9JTlRfRklFTEQobWF4RGVwdGgpOworCVJFQURfSU5UX0ZJRUxEKG51bUVsZW1lbnRz KTsKKworCS8qIFJlYWQgdmFyTmFtZXMgYXJyYXkgKi8KKwl0b2tlbiA9IHBnX3N0cnRvaygmbGVu Z3RoKTsgLyogc2tpcCA6dmFyTmFtZXMgKi8KKwl0b2tlbiA9IHBnX3N0cnRvaygmbGVuZ3RoKTsg LyogZ2V0ICcoJyBvciAnPD4nICovCisJaWYgKGxvY2FsX25vZGUtPm51bVZhcnMgPiAwICYmIHRv a2VuWzBdID09ICcoJykKKwl7CisJCWxvY2FsX25vZGUtPnZhck5hbWVzID0gcGFsbG9jKGxvY2Fs X25vZGUtPm51bVZhcnMgKiBzaXplb2YoY2hhciAqKSk7CisJCWZvciAoaW50IGkgPSAwOyBpIDwg bG9jYWxfbm9kZS0+bnVtVmFyczsgaSsrKQorCQl7CisJCQl0b2tlbiA9IHBnX3N0cnRvaygmbGVu Z3RoKTsKKwkJCWxvY2FsX25vZGUtPnZhck5hbWVzW2ldID0gZGViYWNrc2xhc2godG9rZW4sIGxl bmd0aCk7CisJCX0KKwkJdG9rZW4gPSBwZ19zdHJ0b2soJmxlbmd0aCk7IC8qIHNraXAgJyknICov CisJfQorCWVsc2UKKwl7CisJCWxvY2FsX25vZGUtPnZhck5hbWVzID0gTlVMTDsKKwl9CisKKwkv KiBSZWFkIGVsZW1lbnRzIGFycmF5ICovCisJdG9rZW4gPSBwZ19zdHJ0b2soJmxlbmd0aCk7IC8q IHNraXAgOmVsZW1lbnRzICovCisJdG9rZW4gPSBwZ19zdHJ0b2soJmxlbmd0aCk7IC8qIGdldCAn KCcgb3IgJzw+JyAqLworCWlmIChsb2NhbF9ub2RlLT5udW1FbGVtZW50cyA+IDAgJiYgdG9rZW5b MF0gPT0gJygnKQorCXsKKwkJbG9jYWxfbm9kZS0+ZWxlbWVudHMgPSBwYWxsb2MwKGxvY2FsX25v ZGUtPm51bUVsZW1lbnRzICogc2l6ZW9mKFJQUlBhdHRlcm5FbGVtZW50KSk7CisJCWZvciAoaW50 IGkgPSAwOyBpIDwgbG9jYWxfbm9kZS0+bnVtRWxlbWVudHM7IGkrKykKKwkJeworCQkJUlBSUGF0 dGVybkVsZW1lbnQgKmVsZW0gPSAmbG9jYWxfbm9kZS0+ZWxlbWVudHNbaV07CisJCQlpbnQJCQl2 YXJJZCwKKwkJCQkJCWZsYWdzLAorCQkJCQkJZGVwdGgsCisJCQkJCQltaW4sCisJCQkJCQltYXgs CisJCQkJCQluZXh0LAorCQkJCQkJanVtcDsKKworCQkJLyogUGFyc2UgIih2YXJJZCBkZXB0aCBm bGFncyBtaW4gbWF4IG5leHQganVtcCkiICovCisJCQl0b2tlbiA9IHBnX3N0cnRvaygmbGVuZ3Ro KTsKKwkJCXZhcklkID0gYXRvaSh0b2tlbik7CisJCQl0b2tlbiA9IHBnX3N0cnRvaygmbGVuZ3Ro KTsKKwkJCWRlcHRoID0gYXRvaSh0b2tlbik7CisJCQl0b2tlbiA9IHBnX3N0cnRvaygmbGVuZ3Ro KTsKKwkJCWZsYWdzID0gYXRvaSh0b2tlbik7CisJCQl0b2tlbiA9IHBnX3N0cnRvaygmbGVuZ3Ro KTsKKwkJCW1pbiA9IGF0b2kodG9rZW4pOworCQkJdG9rZW4gPSBwZ19zdHJ0b2soJmxlbmd0aCk7 CisJCQltYXggPSBhdG9pKHRva2VuKTsKKwkJCXRva2VuID0gcGdfc3RydG9rKCZsZW5ndGgpOwor CQkJbmV4dCA9IGF0b2kodG9rZW4pOworCQkJdG9rZW4gPSBwZ19zdHJ0b2soJmxlbmd0aCk7CisJ CQlqdW1wID0gYXRvaSh0b2tlbik7CisJCQl0b2tlbiA9IHBnX3N0cnRvaygmbGVuZ3RoKTsgLyog c2tpcCAnKScgKi8KKworCQkJZWxlbS0+dmFySWQgPSAoUlBSVmFySWQpIHZhcklkOworCQkJZWxl bS0+ZmxhZ3MgPSAoUlBSRWxlbUZsYWdzKSBmbGFnczsKKwkJCWVsZW0tPmRlcHRoID0gKFJQUkRl cHRoKSBkZXB0aDsKKwkJCWVsZW0tPm1pbiA9IChSUFJRdWFudGl0eSkgbWluOworCQkJZWxlbS0+ bWF4ID0gKFJQUlF1YW50aXR5KSBtYXg7CisJCQllbGVtLT5uZXh0ID0gKFJQUkVsZW1JZHgpIG5l eHQ7CisJCQllbGVtLT5qdW1wID0gKFJQUkVsZW1JZHgpIGp1bXA7CisKKwkJCS8qIFJlYWQgbmV4 dCBlbGVtZW50J3MgJygnIG9yIGVuZCAqLworCQkJaWYgKGkgPCBsb2NhbF9ub2RlLT5udW1FbGVt ZW50cyAtIDEpCisJCQkJdG9rZW4gPSBwZ19zdHJ0b2soJmxlbmd0aCk7IC8qIGdldCAnKCcgKi8K KwkJfQorCX0KKwllbHNlCisJeworCQlsb2NhbF9ub2RlLT5lbGVtZW50cyA9IE5VTEw7CisJfQor CisJUkVBRF9CT09MX0ZJRUxEKGlzQWJzb3JiYWJsZSk7CisKKwlSRUFEX0RPTkUoKTsKK30KKwog CiAvKgogICogcGFyc2VOb2RlU3RyaW5nCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIv TWFrZWZpbGUgYi9zcmMvYmFja2VuZC9wYXJzZXIvTWFrZWZpbGUKaW5kZXggOGI1YTRhZjZiZjIu LjUxZTZiMWFkZmI4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvTWFrZWZpbGUKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL01ha2VmaWxlCkBAIC0zMCw2ICszMCw3IEBAIE9CSlMgPSBc CiAJcGFyc2Vfb3Blci5vIFwKIAlwYXJzZV9wYXJhbS5vIFwKIAlwYXJzZV9yZWxhdGlvbi5vIFwK KwlwYXJzZV9ycHIubyBcCiAJcGFyc2VfdGFyZ2V0Lm8gXAogCXBhcnNlX3R5cGUubyBcCiAJcGFy c2VfdXRpbGNtZC5vIFwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9SRUFETUUgYi9z cmMvYmFja2VuZC9wYXJzZXIvUkVBRE1FCmluZGV4IGUyNmViNDM3YTlmLi4yMmE1ZTkxYzhjZiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL1JFQURNRQorKysgYi9zcmMvYmFja2VuZC9w YXJzZXIvUkVBRE1FCkBAIC0yNiw2ICsyNiw3IEBAIHBhcnNlX25vZGUuYwljcmVhdGUgbm9kZXMg Zm9yIHZhcmlvdXMgc3RydWN0dXJlcwogcGFyc2Vfb3Blci5jCWhhbmRsZSBvcGVyYXRvcnMgaW4g ZXhwcmVzc2lvbnMKIHBhcnNlX3BhcmFtLmMJaGFuZGxlIFBhcmFtcyAoZm9yIHRoZSBjYXNlcyB1 c2VkIGluIHRoZSBjb3JlIGJhY2tlbmQpCiBwYXJzZV9yZWxhdGlvbi5jIHN1cHBvcnQgcm91dGlu ZXMgZm9yIHRhYmxlcyBhbmQgY29sdW1uIGhhbmRsaW5nCitwYXJzZV9ycHIuYwloYW5kbGUgUm93 IFBhdHRlcm4gUmVjb2duaXRpb24KIHBhcnNlX3RhcmdldC5jCWhhbmRsZSB0aGUgcmVzdWx0IGxp c3Qgb2YgdGhlIHF1ZXJ5CiBwYXJzZV90eXBlLmMJc3VwcG9ydCByb3V0aW5lcyBmb3IgZGF0YSB0 eXBlIGhhbmRsaW5nCiBwYXJzZV91dGlsY21kLmMJcGFyc2UgYW5hbHlzaXMgZm9yIHV0aWxpdHkg Y29tbWFuZHMgKGRvbmUgYXQgZXhlY3V0aW9uIHRpbWUpCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9wYXJzZXIvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9wYXJzZXIvbWVzb24uYnVpbGQKaW5k ZXggODZjMDliMjllYzIuLjgyZmU4NmUxMGRiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJz ZXIvbWVzb24uYnVpbGQKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL21lc29uLmJ1aWxkCkBAIC0x Nyw2ICsxNyw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAgJ3BhcnNlX29wZXIuYycs CiAgICdwYXJzZV9wYXJhbS5jJywKICAgJ3BhcnNlX3JlbGF0aW9uLmMnLAorICAncGFyc2VfcnBy LmMnLAogICAncGFyc2VfdGFyZ2V0LmMnLAogICAncGFyc2VfdHlwZS5jJywKICAgJ3BhcnNlX3V0 aWxjbWQuYycsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKaW5kZXggYWNiOTMzMzkyZGUuLmIxNmU1NGQ2 ZTMxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKKysrIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCkBAIC01OTcsNyArNTk3LDEwIEBAIGNoZWNrX2Fn Z2xldmVsc19hbmRfY29uc3RyYWludHMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByKQog CQkJCWVyciA9IF8oImFnZ3JlZ2F0ZSBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIHByb3Bl cnR5IGRlZmluaXRpb24gZXhwcmVzc2lvbnMiKTsKIAkJCWVsc2UKIAkJCQllcnIgPSBfKCJncm91 cGluZyBvcGVyYXRpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBwcm9wZXJ0eSBkZWZpbml0aW9uIGV4 cHJlc3Npb25zIik7CisJCQlicmVhazsKIAorCQljYXNlIEVYUFJfS0lORF9SUFJfREVGSU5FOgor CQkJZXJya2luZCA9IHRydWU7CiAJCQlicmVhazsKIAogCQkJLyoKQEAgLTEwNDUsNiArMTA0OCw5 IEBAIHRyYW5zZm9ybVdpbmRvd0Z1bmNDYWxsKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93RnVu YyAqd2Z1bmMsCiAJCWNhc2UgRVhQUl9LSU5EX0ZPUl9QT1JUSU9OOgogCQkJZXJyID0gXygid2lu ZG93IGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gRk9SIFBPUlRJT04gT0YgZXhwcmVzc2lv bnMiKTsKIAkJCWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9SUFJfREVGSU5FOgorCQkJZXJya2lu ZCA9IHRydWU7CisJCQlicmVhazsKIAogCQkJLyoKIAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFs bHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRoZQpAQCAtMTEyNSw3ICsxMTMxLDgg QEAgdHJhbnNmb3JtV2luZG93RnVuY0NhbGwoUGFyc2VTdGF0ZSAqcHN0YXRlLCBXaW5kb3dGdW5j ICp3ZnVuYywKIAkJCQllcXVhbChyZWZ3aW4tPm9yZGVyQ2xhdXNlLCB3aW5kZWYtPm9yZGVyQ2xh dXNlKSAmJgogCQkJCXJlZndpbi0+ZnJhbWVPcHRpb25zID09IHdpbmRlZi0+ZnJhbWVPcHRpb25z ICYmCiAJCQkJZXF1YWwocmVmd2luLT5zdGFydE9mZnNldCwgd2luZGVmLT5zdGFydE9mZnNldCkg JiYKLQkJCQllcXVhbChyZWZ3aW4tPmVuZE9mZnNldCwgd2luZGVmLT5lbmRPZmZzZXQpKQorCQkJ CWVxdWFsKHJlZndpbi0+ZW5kT2Zmc2V0LCB3aW5kZWYtPmVuZE9mZnNldCkgJiYKKwkJCQllcXVh bChyZWZ3aW4tPnJwQ29tbW9uU3ludGF4LCB3aW5kZWYtPnJwQ29tbW9uU3ludGF4KSkKIAkJCXsK IAkJCQkvKiBmb3VuZCBhIGR1cGxpY2F0ZSB3aW5kb3cgc3BlY2lmaWNhdGlvbiAqLwogCQkJCXdm dW5jLT53aW5yZWYgPSB3aW5yZWY7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfY2xhdXNlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY2xhdXNlLmMKaW5kZXggNDI3 MGMyMzgyYzQuLjZjNDQzYTMxZTc5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfY2xhdXNlLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NsYXVzZS5jCkBAIC0z OSw2ICszOSw3IEBACiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2dyYXBodGFibGUuaCIKICNpbmNs dWRlICJwYXJzZXIvcGFyc2Vfb3Blci5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9yZWxhdGlv bi5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9ycHIuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFy c2VfdGFyZ2V0LmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKICNpbmNsdWRlICJw YXJzZXIvcGFyc2VyLmgiCkBAIC04OCw4ICs4OSw2IEBAIHN0YXRpYyB2b2lkIGNoZWNrRXhwcklz VmFyRnJlZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKm4sCiAJCQkJCQkJICAgY29uc3QgY2hh ciAqY29uc3RydWN0TmFtZSk7CiBzdGF0aWMgVGFyZ2V0RW50cnkgKmZpbmRUYXJnZXRsaXN0RW50 cnlTUUw5MihQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKm5vZGUsCiAJCQkJCQkJCQkJCSBMaXN0 ICoqdGxpc3QsIFBhcnNlRXhwcktpbmQgZXhwcktpbmQpOwotc3RhdGljIFRhcmdldEVudHJ5ICpm aW5kVGFyZ2V0bGlzdEVudHJ5U1FMOTkoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpub2RlLAot CQkJCQkJCQkJCQkgTGlzdCAqKnRsaXN0LCBQYXJzZUV4cHJLaW5kIGV4cHJLaW5kKTsKIHN0YXRp YyBpbnQJZ2V0X21hdGNoaW5nX2xvY2F0aW9uKGludCBzb3J0Z3JvdXByZWYsCiAJCQkJCQkJCSAg TGlzdCAqc29ydGdyb3VwcmVmcywgTGlzdCAqZXhwcnMpOwogc3RhdGljIExpc3QgKnJlc29sdmVf dW5pcXVlX2luZGV4X2V4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBJbmZlckNsYXVzZSAqaW5mZXIs CkBAIC0xMDEsNyArMTAwLDYgQEAgc3RhdGljIE5vZGUgKnRyYW5zZm9ybUZyYW1lT2Zmc2V0KFBh cnNlU3RhdGUgKnBzdGF0ZSwgaW50IGZyYW1lT3B0aW9ucywKIAkJCQkJCQkJICBPaWQgcmFuZ2Vv cGZhbWlseSwgT2lkIHJhbmdlb3BjaW50eXBlLCBPaWQgKmluUmFuZ2VGdW5jLAogCQkJCQkJCQkg IE5vZGUgKmNsYXVzZSk7CiAKLQogLyoKICAqIHRyYW5zZm9ybUZyb21DbGF1c2UgLQogICoJICBQ cm9jZXNzIHRoZSBGUk9NIGNsYXVzZSBhbmQgYWRkIGl0ZW1zIHRvIHRoZSBxdWVyeSdzIHJhbmdl IHRhYmxlLApAQCAtMjMxMCw3ICsyMzA4LDcgQEAgZmluZFRhcmdldGxpc3RFbnRyeVNRTDkyKFBh cnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbm9kZSwgTGlzdCAqKnRsaXN0LAogICogdGxpc3QJdGhl IHRhcmdldCBsaXN0IChwYXNzZWQgYnkgcmVmZXJlbmNlIHNvIHdlIGNhbiBhcHBlbmQgdG8gaXQp CiAgKiBleHByS2luZCBpZGVudGlmaWVzIGNsYXVzZSB0eXBlIGJlaW5nIHByb2Nlc3NlZAogICov Ci1zdGF0aWMgVGFyZ2V0RW50cnkgKgorVGFyZ2V0RW50cnkgKgogZmluZFRhcmdldGxpc3RFbnRy eVNRTDk5KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbm9kZSwgTGlzdCAqKnRsaXN0LAogCQkJ CQkJIFBhcnNlRXhwcktpbmQgZXhwcktpbmQpCiB7CkBAIC0zMDMzLDYgKzMwMzEsOCBAQCB0cmFu c2Zvcm1XaW5kb3dEZWZpbml0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCSAqIEFuZCBwcmVw YXJlIHRoZSBuZXcgV2luZG93Q2xhdXNlLgogCQkgKi8KIAkJd2MgPSBtYWtlTm9kZShXaW5kb3dD bGF1c2UpOworCQl3Yy0+cnBTa2lwVG8gPSBTVF9OT05FOyAvKiBTVF9OT05FIG1hcmtzIHRoaXMg YXMgYSBub24tUlBSIHdpbmRvdzsKKwkJCQkJCQkJICogb3ZlcnJpZGRlbiBieSB0cmFuc2Zvcm1S UFIoKSBpZiBSUFIgaXMgdXNlZCAqLwogCQl3Yy0+bmFtZSA9IHdpbmRlZi0+bmFtZTsKIAkJd2Mt PnJlZm5hbWUgPSB3aW5kZWYtPnJlZm5hbWU7CiAKQEAgLTMxNjEsNiArMzE2MSwxMCBAQCB0cmFu c2Zvcm1XaW5kb3dEZWZpbml0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCSBy YW5nZW9wZmFtaWx5LCByYW5nZW9wY2ludHlwZSwKIAkJCQkJCQkJCQkJICZ3Yy0+ZW5kSW5SYW5n ZUZ1bmMsCiAJCQkJCQkJCQkJCSB3aW5kZWYtPmVuZE9mZnNldCk7CisKKwkJLyogUHJvY2VzcyBS b3cgUGF0dGVybiBSZWNvZ25pdGlvbiByZWxhdGVkIGNsYXVzZXMgKi8KKwkJdHJhbnNmb3JtUlBS KHBzdGF0ZSwgd2MsIHdpbmRlZiwgdGFyZ2V0bGlzdCk7CisKIAkJd2MtPndpbnJlZiA9IHdpbnJl ZjsKIAogCQlyZXN1bHQgPSBsYXBwZW5kKHJlc3VsdCwgd2MpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHBy LmMKaW5kZXggYzNjN2FhMjk3MjAuLmYxNDUzNDJlMWZiIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHBy LmMKQEAgLTU3OSw2ICs1NzksNyBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJCWNhc2UgRVhQUl9LSU5EX0dFTkVSQVRFRF9DT0xVTU46 CiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CiAJCWNhc2UgRVhQUl9LSU5EX1BST1BHUkFQ SF9QUk9QRVJUWToKKwkJY2FzZSBFWFBSX0tJTkRfUlBSX0RFRklORToKIAkJCS8qIG9rYXkgKi8K IAkJCWJyZWFrOwogCkBAIC02MjcsNiArNjI4LDQyIEBAIHRyYW5zZm9ybUNvbHVtblJlZihQYXJz ZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAlpZiAobm9kZSAhPSBOVUxMKQogCQly ZXR1cm4gbm9kZTsKIAorCS8qCisJICogUXVhbGlmaWVkIGNvbHVtbiByZWZlcmVuY2VzIGluIERF RklORSBhcmUgbm90IHN1cHBvcnRlZC4gIFRoaXMgY292ZXJzCisJICogYm90aCBGUk9NLWNsYXVz ZSByYW5nZSB2YXJpYWJsZXMgKHByb2hpYml0ZWQgYnkgwqc2LjUpIGFuZCBwYXR0ZXJuCisJICog dmFyaWFibGUgcXVhbGlmaWVkIG5hbWVzIChlLmcuIFVQLnByaWNlKSwgd2hpY2ggYXJlIHZhbGlk IHBlciDCpzQuMTYKKwkgKiBidXQgbm90IHlldCBpbXBsZW1lbnRlZC4KKwkgKi8KKwlpZiAocHN0 YXRlLT5wX2V4cHJfa2luZCA9PSBFWFBSX0tJTkRfUlBSX0RFRklORSAmJgorCQlsaXN0X2xlbmd0 aChjcmVmLT5maWVsZHMpICE9IDEpCisJeworCQljaGFyCSAgICpxdWFsaWZpZXIgPSBzdHJWYWwo bGluaXRpYWwoY3JlZi0+ZmllbGRzKSk7CisJCUxpc3RDZWxsICAgKmxjOworCQlib29sCQlpc19w YXR0ZXJuX3ZhciA9IGZhbHNlOworCisJCWZvcmVhY2gobGMsIHBzdGF0ZS0+cF9ycHJfcGF0dGVy bl92YXJzKQorCQl7CisJCQlpZiAoc3RyY21wKHN0clZhbChsZmlyc3QobGMpKSwgcXVhbGlmaWVy KSA9PSAwKQorCQkJeworCQkJCWlzX3BhdHRlcm5fdmFyID0gdHJ1ZTsKKwkJCQlicmVhazsKKwkJ CX0KKwkJfQorCisJCWlmIChpc19wYXR0ZXJuX3ZhcikKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJIGVycm1zZygi cGF0dGVybiB2YXJpYWJsZSBxdWFsaWZpZWQgY29sdW1uIHJlZmVyZW5jZSBcIiVzXCIgaXMgbm90 IHN1cHBvcnRlZCBpbiBERUZJTkUgY2xhdXNlIiwKKwkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKGNy ZWYtPmZpZWxkcykpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgY3JlZi0+bG9j YXRpb24pKSk7CisJCWVsc2UKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNP REVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJIGVycm1zZygicmFuZ2UgdmFyaWFibGUgcXVhbGlmaWVk IGNvbHVtbiByZWZlcmVuY2UgXCIlc1wiIGlzIG5vdCBhbGxvd2VkIGluIERFRklORSBjbGF1c2Ui LAorCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcoY3JlZi0+ZmllbGRzKSksCisJCQkJCSBwYXJzZXJf ZXJycG9zaXRpb24ocHN0YXRlLCBjcmVmLT5sb2NhdGlvbikpKTsKKwl9CisKIAkvKi0tLS0tLS0t LS0KIAkgKiBUaGUgYWxsb3dlZCBzeW50YXhlcyBhcmU6CiAJICoKQEAgLTE4OTIsNiArMTkyOSw5 IEBAIHRyYW5zZm9ybVN1YkxpbmsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTdWJMaW5rICpzdWJsaW5r KQogCQljYXNlIEVYUFJfS0lORF9GT1JfUE9SVElPTjoKIAkJCWVyciA9IF8oImNhbm5vdCB1c2Ug c3VicXVlcnkgaW4gRk9SIFBPUlRJT04gT0YgZXhwcmVzc2lvbiIpOwogCQkJYnJlYWs7CisJCWNh c2UgRVhQUl9LSU5EX1JQUl9ERUZJTkU6CisJCQllcnIgPSBfKCJjYW5ub3QgdXNlIHN1YnF1ZXJ5 IGluIERFRklORSBleHByZXNzaW9uIik7CisJCQlicmVhazsKIAogCQkJLyoKIAkJCSAqIFRoZXJl IGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRoZQpAQCAt MzI1NSw2ICszMjk1LDggQEAgUGFyc2VFeHByS2luZE5hbWUoUGFyc2VFeHByS2luZCBleHByS2lu ZCkKIAkJCXJldHVybiAicHJvcGVydHkgZGVmaW5pdGlvbiBleHByZXNzaW9uIjsKIAkJY2FzZSBF WFBSX0tJTkRfRk9SX1BPUlRJT046CiAJCQlyZXR1cm4gIkZPUiBQT1JUSU9OIE9GIjsKKwkJY2Fz ZSBFWFBSX0tJTkRfUlBSX0RFRklORToKKwkJCXJldHVybiAiREVGSU5FIjsKIAogCQkJLyoKIAkJ CSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0 IHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKaW5kZXggMzVmZjY0MjcxNDcuLjFlYWJjZGEwMmEx IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJw YXJzZXIvcGFyc2VfdGFyZ2V0LmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKICNp bmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2ZtZ3JvaWRzLmgiCiAj aW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIK IApAQCAtNzU2LDggKzc1Nyw4OCBAQCBQYXJzZUZ1bmNPckNvbHVtbihQYXJzZVN0YXRlICpwc3Rh dGUsIExpc3QgKmZ1bmNuYW1lLCBMaXN0ICpmYXJncywKIAlpZiAocmV0c2V0KQogCQljaGVja19z cmZfY2FsbF9wbGFjZW1lbnQocHN0YXRlLCBsYXN0X3NyZiwgbG9jYXRpb24pOwogCisJLyoKKwkg KiBSUFIgbmF2aWdhdGlvbiBmdW5jdGlvbnMgKFBSRVYvTkVYVC9GSVJTVC9MQVNUKSBhcmUgb25s eSBtZWFuaW5nZnVsCisJICogaW5zaWRlIGEgV0lORE9XIERFRklORSBjbGF1c2UuCisJICoKKwkg KiBPdXRzaWRlIERFRklORSwgdGhlc2UgcG9seW1vcnBoaWMgcGxhY2Vob2xkZXJzIGNhbiBzaGFk b3cgY29sdW1uIGFjY2VzcworCSAqIHZpYSBmdW5jdGlvbmFsIG5vdGF0aW9uIChlLmcuLCBsYXN0 KGYpIG1lYW5pbmcgZi5sYXN0KS4gRm9yIHRoZSAxLWFyZworCSAqIGZvcm0sIHRyeSBjb2x1bW4g cHJvamVjdGlvbiBmaXJzdDsgaWYgdGhhdCBzdWNjZWVkcywgdXNlIGl0IGluc3RlYWQuCisJICog T3RoZXJ3aXNlLCByZXBvcnQgYSBjbGVhciBwYXJzZXIgZXJyb3IuCisJICovCisJaWYgKGZkcmVz dWx0ID09IEZVTkNERVRBSUxfTk9STUFMICYmCisJCXBzdGF0ZS0+cF9leHByX2tpbmQgIT0gRVhQ Ul9LSU5EX1JQUl9ERUZJTkUgJiYKKwkJKGZ1bmNpZCA9PSBGX1BSRVZfQU5ZRUxFTUVOVCB8fCBm dW5jaWQgPT0gRl9ORVhUX0FOWUVMRU1FTlQgfHwKKwkJIGZ1bmNpZCA9PSBGX1BSRVZfQU5ZRUxF TUVOVF9JTlQ4IHx8IGZ1bmNpZCA9PSBGX05FWFRfQU5ZRUxFTUVOVF9JTlQ4IHx8CisJCSBmdW5j aWQgPT0gRl9GSVJTVF9BTllFTEVNRU5UIHx8IGZ1bmNpZCA9PSBGX0xBU1RfQU5ZRUxFTUVOVCB8 fAorCQkgZnVuY2lkID09IEZfRklSU1RfQU5ZRUxFTUVOVF9JTlQ4IHx8IGZ1bmNpZCA9PSBGX0xB U1RfQU5ZRUxFTUVOVF9JTlQ4KSkKKwl7CisJCS8qIDEtYXJnIGZvcm06IHRyeSBjb2x1bW4gcHJv amVjdGlvbiBiZWZvcmUgZXJyb3Jpbmcgb3V0ICovCisJCWlmIChuYXJncyA9PSAxICYmICFhZ2df c3RhciAmJiAhYWdnX2Rpc3RpbmN0ICYmIG92ZXIgPT0gTlVMTCAmJgorCQkJbGlzdF9sZW5ndGgo ZnVuY25hbWUpID09IDEpCisJCXsKKwkJCU5vZGUJICAgKnByb2plY3Rpb247CisKKwkJCXByb2pl Y3Rpb24gPSBQYXJzZUNvbXBsZXhQcm9qZWN0aW9uKHBzdGF0ZSwKKwkJCQkJCQkJCQkJCXN0clZh bChsaW5pdGlhbChmdW5jbmFtZSkpLAorCQkJCQkJCQkJCQkJbGluaXRpYWwoZmFyZ3MpLAorCQkJ CQkJCQkJCQkJbG9jYXRpb24pOworCQkJaWYgKHByb2plY3Rpb24pCisJCQkJcmV0dXJuIHByb2pl Y3Rpb247CisJCX0KKworCQkvKiBOb3QgYSBjb2x1bW4gcHJvamVjdGlvbiAtLSByZXBvcnQgZXJy b3IgKi8KKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJP UiksCisJCQkJIGVycm1zZygiY2Fubm90IHVzZSAlcyBvdXRzaWRlIGEgREVGSU5FIGNsYXVzZSIs CisJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKGZ1bmNuYW1lKSksCisJCQkJIHBhcnNlcl9lcnJwb3Np dGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOworCX0KKwogCS8qIGJ1aWxkIHRoZSBhcHByb3ByaWF0 ZSBvdXRwdXQgc3RydWN0dXJlICovCi0JaWYgKGZkcmVzdWx0ID09IEZVTkNERVRBSUxfTk9STUFM IHx8IGZkcmVzdWx0ID09IEZVTkNERVRBSUxfUFJPQ0VEVVJFKQorCWlmIChmZHJlc3VsdCA9PSBG VU5DREVUQUlMX05PUk1BTCAmJgorCQlwc3RhdGUtPnBfZXhwcl9raW5kID09IEVYUFJfS0lORF9S UFJfREVGSU5FICYmCisJCShmdW5jaWQgPT0gRl9QUkVWX0FOWUVMRU1FTlQgfHwgZnVuY2lkID09 IEZfTkVYVF9BTllFTEVNRU5UIHx8CisJCSBmdW5jaWQgPT0gRl9QUkVWX0FOWUVMRU1FTlRfSU5U OCB8fCBmdW5jaWQgPT0gRl9ORVhUX0FOWUVMRU1FTlRfSU5UOCB8fAorCQkgZnVuY2lkID09IEZf RklSU1RfQU5ZRUxFTUVOVCB8fCBmdW5jaWQgPT0gRl9MQVNUX0FOWUVMRU1FTlQgfHwKKwkJIGZ1 bmNpZCA9PSBGX0ZJUlNUX0FOWUVMRU1FTlRfSU5UOCB8fCBmdW5jaWQgPT0gRl9MQVNUX0FOWUVM RU1FTlRfSU5UOCkpCisJeworCQkvKgorCQkgKiBSUFIgbmF2aWdhdGlvbiBmdW5jdGlvbnMgKFBS RVYvTkVYVC9GSVJTVC9MQVNUKSBhcmUgY29tcGlsZWQgaW50bworCQkgKiBFRU9QX1JQUl9OQVZf U0VUIC8gRUVPUF9SUFJfTkFWX1JFU1RPUkUgb3Bjb2RlcyBpbnN0ZWFkIG9mIGEgbm9ybWFsCisJ CSAqIGZ1bmN0aW9uIGNhbGwuICBSZXByZXNlbnQgdGhlbSBhcyBSUFJOYXZFeHByIG5vZGVzIHNv IHRoYXQgbGF0ZXIKKwkJICogc3RhZ2VzIGNhbiBpZGVudGlmeSB0aGVtIHdpdGhvdXQgcmVseWlu ZyBvbiBmdW5jaWQgY29tcGFyaXNvbnMuCisJCSAqLworCQlSUFJOYXZLaW5kCWtpbmQ7CisJCWJv b2wJCWhhc19vZmZzZXQ7CisJCVJQUk5hdkV4cHIgKm5hdmV4cHI7CisKKwkJaWYgKGZ1bmNpZCA9 PSBGX1BSRVZfQU5ZRUxFTUVOVCB8fCBmdW5jaWQgPT0gRl9QUkVWX0FOWUVMRU1FTlRfSU5UOCkK KwkJCWtpbmQgPSBSUFJfTkFWX1BSRVY7CisJCWVsc2UgaWYgKGZ1bmNpZCA9PSBGX05FWFRfQU5Z RUxFTUVOVCB8fCBmdW5jaWQgPT0gRl9ORVhUX0FOWUVMRU1FTlRfSU5UOCkKKwkJCWtpbmQgPSBS UFJfTkFWX05FWFQ7CisJCWVsc2UgaWYgKGZ1bmNpZCA9PSBGX0ZJUlNUX0FOWUVMRU1FTlQgfHwg ZnVuY2lkID09IEZfRklSU1RfQU5ZRUxFTUVOVF9JTlQ4KQorCQkJa2luZCA9IFJQUl9OQVZfRklS U1Q7CisJCWVsc2UKKwkJCWtpbmQgPSBSUFJfTkFWX0xBU1Q7CisKKwkJaGFzX29mZnNldCA9IChm dW5jaWQgPT0gRl9QUkVWX0FOWUVMRU1FTlRfSU5UOCB8fAorCQkJCQkgIGZ1bmNpZCA9PSBGX05F WFRfQU5ZRUxFTUVOVF9JTlQ4IHx8CisJCQkJCSAgZnVuY2lkID09IEZfRklSU1RfQU5ZRUxFTUVO VF9JTlQ4IHx8CisJCQkJCSAgZnVuY2lkID09IEZfTEFTVF9BTllFTEVNRU5UX0lOVDgpOworCisJ CW5hdmV4cHIgPSBtYWtlTm9kZShSUFJOYXZFeHByKTsKKworCQluYXZleHByLT5raW5kID0ga2lu ZDsKKwkJbmF2ZXhwci0+YXJnID0gKEV4cHIgKikgbGluaXRpYWwoZmFyZ3MpOworCQluYXZleHBy LT5vZmZzZXRfYXJnID0gaGFzX29mZnNldCA/IChFeHByICopIGxzZWNvbmQoZmFyZ3MpIDogTlVM TDsKKwkJbmF2ZXhwci0+cmVzdWx0dHlwZSA9IHJldHR5cGU7CisJCS8qIHJlc3VsdGNvbGxpZCB3 aWxsIGJlIHNldCBieSBwYXJzZV9jb2xsYXRlLmMgKi8KKwkJbmF2ZXhwci0+bG9jYXRpb24gPSBs b2NhdGlvbjsKKworCQlyZXR2YWwgPSAoTm9kZSAqKSBuYXZleHByOworCX0KKwllbHNlIGlmIChm ZHJlc3VsdCA9PSBGVU5DREVUQUlMX05PUk1BTCB8fCBmZHJlc3VsdCA9PSBGVU5DREVUQUlMX1BS T0NFRFVSRSkKIAl7CiAJCUZ1bmNFeHByICAgKmZ1bmNleHByID0gbWFrZU5vZGUoRnVuY0V4cHIp OwogCkBAIC0yNzg5LDYgKzI4NzAsOSBAQCBjaGVja19zcmZfY2FsbF9wbGFjZW1lbnQoUGFyc2VT dGF0ZSAqcHN0YXRlLCBOb2RlICpsYXN0X3NyZiwgaW50IGxvY2F0aW9uKQogCQljYXNlIEVYUFJf S0lORF9GT1JfUE9SVElPTjoKIAkJCWVyciA9IF8oInNldC1yZXR1cm5pbmcgZnVuY3Rpb25zIGFy ZSBub3QgYWxsb3dlZCBpbiBGT1IgUE9SVElPTiBPRiBleHByZXNzaW9ucyIpOwogCQkJYnJlYWs7 CisJCWNhc2UgRVhQUl9LSU5EX1JQUl9ERUZJTkU6CisJCQllcnJraW5kID0gdHJ1ZTsKKwkJCWJy ZWFrOwogCiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50ZW50aW9uYWxseSBubyBkZWZhdWx0OiBj YXNlIGhlcmUsIHNvIHRoYXQgdGhlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfcnByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmY1NmI3ZGI1YmM4Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jCkBAIC0wLDAgKzEsNTk0IEBACisvKi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAqCisgKiBwYXJzZV9ycHIuYworICoJICBIYW5kbGUgUm93IFBhdHRlcm4g UmVjb2duaXRpb24gY2xhdXNlcyBpbiBwYXJzZXIuCisgKgorICogVGhpcyBmaWxlIHRyYW5zZm9y bXMgUlBSLXJlbGF0ZWQgY2xhdXNlcyBmcm9tIHJhdyBwYXJzZSB0cmVlIHRvIHBsYW5uZXIKKyAq IHN0cnVjdHVyZXMgZHVyaW5nIHF1ZXJ5IGFuYWx5c2lzOgorICogICAtIFZhbGlkYXRlcyBmcmFt ZSBvcHRpb25zIChtdXN0IHN0YXJ0IGF0IENVUlJFTlQgUk9XLCBubyBFWENMVURFKQorICogICAt IFZhbGlkYXRlcyBQQVRURVJOIHZhcmlhYmxlIGNvdW50IChtYXggUlBSX1ZBUklEX01BWCkKKyAq ICAgLSBUcmFuc2Zvcm1zIERFRklORSBjbGF1c2UgaW50byBUYXJnZXRFbnRyeSBsaXN0CisgKiAg IC0gU3RvcmVzIFBBVFRFUk4vU0tJUCBUTy9JTklUSUFMIGNsYXVzZXMgZm9yIHBsYW5uZXIKKyAq CisgKiBQYXR0ZXJuIG9wdGltaXphdGlvbiBhbmQgY29tcGlsYXRpb24gdG8gTkZBIGJ5dGVjb2Rl IGhhcHBlbnMgbGF0ZXIKKyAqIGluIHRoZSBwbGFubmVyIChzZWUgb3B0aW1pemVyL3BsYW4vcnBy LmMpLgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI2LCBQb3N0Z3JlU1FM IEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0 LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKgorICogSURF TlRJRklDQVRJT04KKyAqCSAgc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jCisgKgorICot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRl ICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKKyNpbmNsdWRlICJu b2Rlcy9ub2RlRnVuY3MuaCIKKyNpbmNsdWRlICJvcHRpbWl6ZXIvb3B0aW1pemVyLmgiCisjaW5j bHVkZSAib3B0aW1pemVyL3Jwci5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9jb2VyY2UuaCIK KyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfY29sbGF0ZS5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJz ZV9leHByLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3Jwci5oIgorI2luY2x1ZGUgInBhcnNl ci9wYXJzZV90YXJnZXQuaCIKKworLyogRm9yd2FyZCBkZWNsYXJhdGlvbnMgKi8KK3N0YXRpYyB2 b2lkIHZhbGlkYXRlUlBSUGF0dGVyblZhckNvdW50KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUlBSUGF0 dGVybk5vZGUgKm5vZGUsCisJCQkJCQkJCQkgICBMaXN0ICpycERlZnMsIExpc3QgKip2YXJOYW1l cyk7CitzdGF0aWMgTGlzdCAqdHJhbnNmb3JtRGVmaW5lQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgV2luZG93Q2xhdXNlICp3YywKKwkJCQkJCQkJICAgV2luZG93RGVmICp3aW5kZWYsIExpc3Qg Kip0YXJnZXRsaXN0KTsKK3N0YXRpYyB2b2lkIGNoZWNrX3Jwcl9uYXZfZXhwcihSUFJOYXZFeHBy ICpuYXYsIFBhcnNlU3RhdGUgKnBzdGF0ZSk7CitzdGF0aWMgYm9vbCBjaGVja19ycHJfbmF2X25l c3Rpbmdfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpOworCisvKgorICogdHJhbnNm b3JtUlBSCisgKgkJUHJvY2VzcyBSb3cgUGF0dGVybiBSZWNvZ25pdGlvbiByZWxhdGVkIGNsYXVz ZXMuCisgKgorICogVmFsaWRhdGVzIGFuZCB0cmFuc2Zvcm1zIFJQUiBjbGF1c2VzIGZyb20gcGFy c2UgdHJlZSB0byBwbGFubmVyIHN0cnVjdHVyZXM6CisgKiAgIC0gVmFsaWRhdGVzIGZyYW1lIG9w dGlvbnMgKG11c3Qgc3RhcnQgYXQgQ1VSUkVOVCBST1csIG5vIEVYQ0xVREUpCisgKiAgIC0gU3Rv cmVzIEFGVEVSIE1BVENIIFNLSVAgVE8gY2xhdXNlCisgKiAgIC0gU3RvcmVzIFNFRUsvSU5JVElB TCBjbGF1c2UKKyAqICAgLSBUcmFuc2Zvcm1zIERFRklORSBjbGF1c2UgaW50byBUYXJnZXRFbnRy eSBsaXN0CisgKiAgIC0gU3RvcmVzIFBBVFRFUk4gQVNUIGZvciBkZXBhcnNpbmcgKG9wdGltaXph dGlvbiBoYXBwZW5zIGluIHBsYW5uZXIpCisgKgorICogUmV0dXJucyBlYXJseSBpZiB3aW5kZWYg aGFzIG5vIHJwQ29tbW9uU3ludGF4IChub24tUlBSIHdpbmRvdykuCisgKi8KK3ZvaWQKK3RyYW5z Zm9ybVJQUihQYXJzZVN0YXRlICpwc3RhdGUsIFdpbmRvd0NsYXVzZSAqd2MsIFdpbmRvd0RlZiAq d2luZGVmLAorCQkJIExpc3QgKip0YXJnZXRsaXN0KQoreworCS8qIFdpbmRvdyBkZWZpbml0aW9u IG11c3QgZXhpc3Qgd2hlbiBjYWxsZWQgKi8KKwlBc3NlcnQod2luZGVmICE9IE5VTEwpOworCisJ LyoKKwkgKiBSb3cgUGF0dGVybiBDb21tb24gU3ludGF4IGNsYXVzZSBleGlzdHM/CisJICovCisJ aWYgKHdpbmRlZi0+cnBDb21tb25TeW50YXggPT0gTlVMTCkKKwkJcmV0dXJuOworCisJLyogQ2hl Y2sgRnJhbWUgb3B0aW9ucyAqLworCisJLyogRnJhbWUgdHlwZSBtdXN0IGJlICJST1ciICovCisJ aWYgKHdjLT5mcmFtZU9wdGlvbnMgJiBGUkFNRU9QVElPTl9HUk9VUFMpCisJCWVyZXBvcnQoRVJS T1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9XSU5ET1dJTkdfRVJST1IpLAorCQkJCSBlcnJtc2co ImNhbm5vdCB1c2UgRlJBTUUgb3B0aW9uIEdST1VQUyB3aXRoIHJvdyBwYXR0ZXJuIHJlY29nbml0 aW9uIiksCisJCQkJIGVycmhpbnQoIlVzZSBST1dTIGluc3RlYWQuIiksCisJCQkJIHBhcnNlcl9l cnJwb3NpdGlvbihwc3RhdGUsCisJCQkJCQkJCQl3aW5kZWYtPmZyYW1lTG9jYXRpb24gPj0gMCA/ CisJCQkJCQkJCQl3aW5kZWYtPmZyYW1lTG9jYXRpb24gOiB3aW5kZWYtPmxvY2F0aW9uKSkpOwor CWlmICh3Yy0+ZnJhbWVPcHRpb25zICYgRlJBTUVPUFRJT05fUkFOR0UpCisJCWVyZXBvcnQoRVJS T1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9XSU5ET1dJTkdfRVJST1IpLAorCQkJCSBlcnJtc2co ImNhbm5vdCB1c2UgRlJBTUUgb3B0aW9uIFJBTkdFIHdpdGggcm93IHBhdHRlcm4gcmVjb2duaXRp b24iKSwKKwkJCQkgZXJyaGludCgiVXNlIFJPV1MgaW5zdGVhZC4iKSwKKwkJCQkgcGFyc2VyX2Vy cnBvc2l0aW9uKHBzdGF0ZSwKKwkJCQkJCQkJCXdpbmRlZi0+ZnJhbWVMb2NhdGlvbiA+PSAwID8K KwkJCQkJCQkJCXdpbmRlZi0+ZnJhbWVMb2NhdGlvbiA6IHdpbmRlZi0+bG9jYXRpb24pKSk7CisK KwkvKiBGcmFtZSBtdXN0IHN0YXJ0IGF0IGN1cnJlbnQgcm93ICovCisJaWYgKCh3Yy0+ZnJhbWVP cHRpb25zICYgRlJBTUVPUFRJT05fU1RBUlRfQ1VSUkVOVF9ST1cpID09IDApCisJeworCQljb25z dCBjaGFyICpmcmFtZVR5cGUgPSAiUk9XUyI7CisJCWNvbnN0IGNoYXIgKnN0YXJ0Qm91bmQgPSAi dW5rbm93biI7CisKKwkJLyogRGV0ZXJtaW5lIGN1cnJlbnQgc3RhcnQgYm91bmQgKi8KKwkJaWYg KHdjLT5mcmFtZU9wdGlvbnMgJiBGUkFNRU9QVElPTl9TVEFSVF9VTkJPVU5ERURfUFJFQ0VESU5H KQorCQkJc3RhcnRCb3VuZCA9ICJVTkJPVU5ERUQgUFJFQ0VESU5HIjsKKwkJZWxzZSBpZiAod2Mt PmZyYW1lT3B0aW9ucyAmIEZSQU1FT1BUSU9OX1NUQVJUX09GRlNFVF9QUkVDRURJTkcpCisJCQlz dGFydEJvdW5kID0gIm9mZnNldCBQUkVDRURJTkciOworCQllbHNlIGlmICh3Yy0+ZnJhbWVPcHRp b25zICYgRlJBTUVPUFRJT05fU1RBUlRfT0ZGU0VUX0ZPTExPV0lORykKKwkJCXN0YXJ0Qm91bmQg PSAib2Zmc2V0IEZPTExPV0lORyI7CisKKwkJLyogQXQgbGVhc3Qgb25lIHZhbGlkIGZyYW1lIHN0 YXJ0IG9wdGlvbiBzaG91bGQgYmUgc2V0ICovCisJCUFzc2VydCgod2MtPmZyYW1lT3B0aW9ucyAm IEZSQU1FT1BUSU9OX1NUQVJUX1VOQk9VTkRFRF9QUkVDRURJTkcpIHx8CisJCQkgICAod2MtPmZy YW1lT3B0aW9ucyAmIEZSQU1FT1BUSU9OX1NUQVJUX09GRlNFVF9QUkVDRURJTkcpIHx8CisJCQkg ICAod2MtPmZyYW1lT3B0aW9ucyAmIEZSQU1FT1BUSU9OX1NUQVJUX09GRlNFVF9GT0xMT1dJTkcp KTsKKworCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfV0lORE9XSU5HX0VS Uk9SKSwKKwkJCQkgZXJybXNnKCJGUkFNRSBtdXN0IHN0YXJ0IGF0IENVUlJFTlQgUk9XIHdoZW4g dXNpbmcgcm93IHBhdHRlcm4gcmVjb2duaXRpb24iKSwKKwkJCQkgZXJyZGV0YWlsKCJDdXJyZW50 IGZyYW1lIHN0YXJ0cyB3aXRoICVzLiIsIHN0YXJ0Qm91bmQpLAorCQkJCSBlcnJoaW50KCJVc2U6 ICVzIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIC4uLiIsIGZyYW1lVHlwZSksCisJCQkJIHBhcnNl cl9lcnJwb3NpdGlvbihwc3RhdGUsIHdpbmRlZi0+ZnJhbWVMb2NhdGlvbiA+PSAwID8gd2luZGVm LT5mcmFtZUxvY2F0aW9uIDogd2luZGVmLT5sb2NhdGlvbikpKTsKKwl9CisKKwkvKiBFWENMVURF IG9wdGlvbnMgYXJlIG5vdCBwZXJtaXR0ZWQgKi8KKwlpZiAoKHdjLT5mcmFtZU9wdGlvbnMgJiBG UkFNRU9QVElPTl9FWENMVVNJT04pICE9IDApCisJeworCQljb25zdCBjaGFyICpleGNsdWRlVHlw ZSA9ICJFWENMVURFIjsKKworCQkvKiBEZXRlcm1pbmUgd2hpY2ggRVhDTFVERSBvcHRpb24gd2Fz IHVzZWQgKi8KKwkJaWYgKHdjLT5mcmFtZU9wdGlvbnMgJiBGUkFNRU9QVElPTl9FWENMVURFX0NV UlJFTlRfUk9XKQorCQkJZXhjbHVkZVR5cGUgPSAiRVhDTFVERSBDVVJSRU5UIFJPVyI7CisJCWVs c2UgaWYgKHdjLT5mcmFtZU9wdGlvbnMgJiBGUkFNRU9QVElPTl9FWENMVURFX0dST1VQKQorCQkJ ZXhjbHVkZVR5cGUgPSAiRVhDTFVERSBHUk9VUCI7CisJCWVsc2UgaWYgKHdjLT5mcmFtZU9wdGlv bnMgJiBGUkFNRU9QVElPTl9FWENMVURFX1RJRVMpCisJCQlleGNsdWRlVHlwZSA9ICJFWENMVURF IFRJRVMiOworCisJCS8qIEF0IGxlYXN0IG9uZSB2YWxpZCBleGNsdWRlIG9wdGlvbiBzaG91bGQg YmUgc2V0ICovCisJCUFzc2VydCgod2MtPmZyYW1lT3B0aW9ucyAmIEZSQU1FT1BUSU9OX0VYQ0xV REVfQ1VSUkVOVF9ST1cpIHx8CisJCQkgICAod2MtPmZyYW1lT3B0aW9ucyAmIEZSQU1FT1BUSU9O X0VYQ0xVREVfR1JPVVApIHx8CisJCQkgICAod2MtPmZyYW1lT3B0aW9ucyAmIEZSQU1FT1BUSU9O X0VYQ0xVREVfVElFUykpOworCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09E RV9XSU5ET1dJTkdfRVJST1IpLAorCQkJCSBlcnJtc2coImNhbm5vdCB1c2UgRVhDTFVERSBvcHRp b25zIHdpdGggcm93IHBhdHRlcm4gcmVjb2duaXRpb24iKSwKKwkJCQkgZXJyZGV0YWlsKCJGcmFt ZSBkZWZpbml0aW9uIGluY2x1ZGVzICVzLiIsIGV4Y2x1ZGVUeXBlKSwKKwkJCQkgZXJyaGludCgi UmVtb3ZlIHRoZSBFWENMVURFIGNsYXVzZSBmcm9tIHRoZSB3aW5kb3cgZGVmaW5pdGlvbi4iKSwK KwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgd2luZGVmLT5leGNsdWRlTG9jYXRpb24g Pj0gMCA/IHdpbmRlZi0+ZXhjbHVkZUxvY2F0aW9uIDogd2luZGVmLT5sb2NhdGlvbikpKTsKKwl9 CisKKwkvKiBUcmFuc2Zvcm0gQUZURVIgTUFUQ0ggU0tJUCBUTyBjbGF1c2UgKi8KKwl3Yy0+cnBT a2lwVG8gPSB3aW5kZWYtPnJwQ29tbW9uU3ludGF4LT5ycFNraXBUbzsKKworCS8qIFRyYW5zZm9y bSBTRUVLIG9yIElOSVRJQUwgY2xhdXNlICovCisJd2MtPmluaXRpYWwgPSB3aW5kZWYtPnJwQ29t bW9uU3ludGF4LT5pbml0aWFsOworCisJLyogVHJhbnNmb3JtIERFRklORSBjbGF1c2UgaW50byBs aXN0IG9mIFRhcmdldEVudHJ5J3MgKi8KKwl3Yy0+ZGVmaW5lQ2xhdXNlID0gdHJhbnNmb3JtRGVm aW5lQ2xhdXNlKHBzdGF0ZSwgd2MsIHdpbmRlZiwgdGFyZ2V0bGlzdCk7CisKKwkvKiBTdG9yZSBQ QVRURVJOIEFTVCBmb3IgZGVwYXJzaW5nICovCisJd2MtPnJwUGF0dGVybiA9IHdpbmRlZi0+cnBD b21tb25TeW50YXgtPnJwUGF0dGVybjsKK30KKworLyoKKyAqIHZhbGlkYXRlUlBSUGF0dGVyblZh ckNvdW50CisgKgkJVmFsaWRhdGUgdGhhdCBQQVRURVJOIHZhcmlhYmxlcyBkb24ndCBleGNlZWQg UlBSX1ZBUklEX01BWC4KKyAqCisgKiBSZWN1cnNpdmVseSB0cmF2ZXJzZXMgdGhlIHBhdHRlcm4g dHJlZSwgY29sbGVjdGluZyB1bmlxdWUgdmFyaWFibGUgbmFtZXMuCisgKiBUaHJvd3MgYW4gZXJy b3IgaWYgdGhlIG51bWJlciBvZiB1bmlxdWUgdmFyaWFibGVzIGV4Y2VlZHMgUlBSX1ZBUklEX01B WC4KKyAqCisgKiBJZiBycERlZnMgaXMgbm9uLU5VTEwsIERFRklORSB2YXJpYWJsZSBuYW1lcyBh cmUgYWxzbyBjb2xsZWN0ZWQgaW50bworICogdmFyTmFtZXMgc28gdGhhdCB0cmFuc2Zvcm1Db2x1 bW5SZWYgY2FuIGRpc3Rpbmd1aXNoIHBhdHRlcm4gdmFyaWFibGUKKyAqIHF1YWxpZmllcnMgZnJv bSBGUk9NLWNsYXVzZSByYW5nZSB2YXJpYWJsZXMuCisgKgorICogdmFyTmFtZXMgaXMgYm90aCBp bnB1dCBhbmQgb3V0cHV0OiBleGlzdGluZyBuYW1lcyBhcmUgcHJlc2VydmVkLCBuZXcgb25lcyBh ZGRlZC4KKyAqLworc3RhdGljIHZvaWQKK3ZhbGlkYXRlUlBSUGF0dGVyblZhckNvdW50KFBhcnNl U3RhdGUgKnBzdGF0ZSwgUlBSUGF0dGVybk5vZGUgKm5vZGUsCisJCQkJCQkgICBMaXN0ICpycERl ZnMsIExpc3QgKip2YXJOYW1lcykKK3sKKwlMaXN0Q2VsbCAgICpsYzsKKworCS8qIFBhdHRlcm4g bm9kZSBtdXN0IGV4aXN0IC0gcGFyc2VyIGFsd2F5cyBwcm92aWRlcyBub24tTlVMTCByb290ICov CisJQXNzZXJ0KG5vZGUgIT0gTlVMTCk7CisKKwljaGVja19zdGFja19kZXB0aCgpOworCisJc3dp dGNoIChub2RlLT5ub2RlVHlwZSkKKwl7CisJCWNhc2UgUlBSX1BBVFRFUk5fVkFSOgorCQkJLyog QWRkIHZhcmlhYmxlIG5hbWUgaWYgbm90IGFscmVhZHkgaW4gbGlzdCAqLworCQkJeworCQkJCWJv b2wJCWZvdW5kID0gZmFsc2U7CisKKwkJCQlmb3JlYWNoKGxjLCAqdmFyTmFtZXMpCisJCQkJewor CQkJCQlpZiAoc3RyY21wKHN0clZhbChsZmlyc3QobGMpKSwgbm9kZS0+dmFyTmFtZSkgPT0gMCkK KwkJCQkJeworCQkJCQkJZm91bmQgPSB0cnVlOworCQkJCQkJYnJlYWs7CisJCQkJCX0KKwkJCQl9 CisJCQkJaWYgKCFmb3VuZCkKKwkJCQl7CisJCQkJCS8qIENoZWNrIGFnYWluc3QgUlBSX1ZBUklE X01BWCBiZWZvcmUgYWRkaW5nICovCisJCQkJCWlmIChsaXN0X2xlbmd0aCgqdmFyTmFtZXMpID49 IFJQUl9WQVJJRF9NQVgpCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkoZXJyY29kZShF UlJDT0RFX1BST0dSQU1fTElNSVRfRVhDRUVERUQpLAorCQkJCQkJCQkgZXJybXNnKCJ0b28gbWFu eSBwYXR0ZXJuIHZhcmlhYmxlcyIpLAorCQkJCQkJCQkgZXJyZGV0YWlsKCJNYXhpbXVtIGlzICVk LiIsIFJQUl9WQVJJRF9NQVgpLAorCQkJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwK KwkJCQkJCQkJCQkJCQlleHByTG9jYXRpb24oKE5vZGUgKikgbm9kZSkpKSk7CisKKwkJCQkJKnZh ck5hbWVzID0gbGFwcGVuZCgqdmFyTmFtZXMsIG1ha2VTdHJpbmcocHN0cmR1cChub2RlLT52YXJO YW1lKSkpOworCQkJCX0KKwkJCX0KKwkJCWJyZWFrOworCisJCWNhc2UgUlBSX1BBVFRFUk5fU0VR OgorCQljYXNlIFJQUl9QQVRURVJOX0FMVDoKKwkJY2FzZSBSUFJfUEFUVEVSTl9HUk9VUDoKKwkJ CS8qIFJlY3Vyc2UgaW50byBjaGlsZHJlbiAqLworCQkJZm9yZWFjaChsYywgbm9kZS0+Y2hpbGRy ZW4pCisJCQl7CisJCQkJdmFsaWRhdGVSUFJQYXR0ZXJuVmFyQ291bnQocHN0YXRlLCAoUlBSUGF0 dGVybk5vZGUgKikgbGZpcnN0KGxjKSwKKwkJCQkJCQkJCQkgICBOVUxMLCB2YXJOYW1lcyk7CisJ CQl9CisJCQlicmVhazsKKwl9CisKKwkvKgorCSAqIEFmdGVyIHRoZSB0b3AtbGV2ZWwgY2FsbCwg YWxzbyBjb2xsZWN0IERFRklORSB2YXJpYWJsZSBuYW1lcyB0aGF0IGFyZQorCSAqIG5vdCBhbHJl YWR5IGluIHRoZSBsaXN0LiAgVGhpcyBpcyBvbmx5IGRvbmUgb25jZSBhdCB0aGUgb3V0ZXJtb3N0 CisJICogcmVjdXJzaW9uIGxldmVsLCBkZXRlY3RlZCBieSBycERlZnMgYmVpbmcgbm9uLU5VTEwg KHJlY3Vyc2l2ZSBjYWxscworCSAqIHBhc3MgTlVMTCkuCisJICovCisJaWYgKHJwRGVmcykKKwl7 CisJCWZvcmVhY2gobGMsIHJwRGVmcykKKwkJeworCQkJUmVzVGFyZ2V0ICAqcnQgPSAoUmVzVGFy Z2V0ICopIGxmaXJzdChsYyk7CisJCQlMaXN0Q2VsbCAgICpsYzI7CisJCQlib29sCQlmb3VuZCA9 IGZhbHNlOworCisJCQlmb3JlYWNoKGxjMiwgKnZhck5hbWVzKQorCQkJeworCQkJCWlmIChzdHJj bXAoc3RyVmFsKGxmaXJzdChsYzIpKSwgcnQtPm5hbWUpID09IDApCisJCQkJeworCQkJCQlmb3Vu ZCA9IHRydWU7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCX0KKwkJCWlmICghZm91bmQpCisJCQkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJ CQkJCSBlcnJtc2coIkRFRklORSB2YXJpYWJsZSBcIiVzXCIgaXMgbm90IHVzZWQgaW4gUEFUVEVS TiIsCisJCQkJCQkJCXJ0LT5uYW1lKSwKKwkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRl LCBydC0+bG9jYXRpb24pKSk7CisJCX0KKwl9Cit9CisKKy8qCisgKiB0cmFuc2Zvcm1EZWZpbmVD bGF1c2UKKyAqCQlQcm9jZXNzIERFRklORSBjbGF1c2UgYW5kIHRyYW5zZm9ybSBSZXNUYXJnZXQg aW50byBsaXN0IG9mIFRhcmdldEVudHJ5LgorICoKKyAqIEZpcnN0OgorICogICAxLiBWYWxpZGF0 ZXMgUEFUVEVSTiB2YXJpYWJsZSBjb3VudCBhbmQgY29sbGVjdHMgUlBSIHZhcmlhYmxlIG5hbWVz CisgKgorICogVGhlbiBmb3IgZWFjaCBERUZJTkUgdmFyaWFibGU6CisgKiAgIDIuIENoZWNrcyBm b3IgZHVwbGljYXRlIHZhcmlhYmxlIG5hbWVzIGluIERFRklORSBjbGF1c2UKKyAqICAgMy4gVHJh bnNmb3JtcyBleHByZXNzaW9uIHZpYSB0cmFuc2Zvcm1FeHByKCkgYW5kIGVuc3VyZXMgcmVmZXJl bmNlZAorICogICAgICBWYXIgbm9kZXMgYXJlIHByZXNlbnQgaW4gdGhlIHF1ZXJ5IHRhcmdldGxp c3QgKHZpYSBwdWxsX3Zhcl9jbGF1c2UpCisgKiAgIDQuIENyZWF0ZXMgZGVmaW5lQ2xhdXNlIGVu dHJ5IHdpdGggcHJvcGVyIHJlc25hbWUgKHBhdHRlcm4gdmFyaWFibGUgbmFtZSkKKyAqICAgNS4g Q29lcmNlcyBleHByZXNzaW9ucyB0byBib29sZWFuIHR5cGUKKyAqICAgNi4gTWFya3MgY29sdW1u IG9yaWdpbnMgYW5kIGFzc2lnbnMgY29sbGF0aW9uIGluZm9ybWF0aW9uCisgKgorICogTm90ZTog VmFyaWFibGVzIG5vdCBpbiBERUZJTkUgYXJlIGV2YWx1YXRlZCBhcyBUUlVFIGJ5IHRoZSBleGVj dXRvci4KKyAqIFZhcmlhYmxlcyBpbiBERUZJTkUgYnV0IG5vdCBpbiBQQVRURVJOIGFyZSByZWpl Y3RlZCBhcyBhbiBlcnJvci4KKyAqCisgKiBYWFggUGF0dGVybiB2YXJpYWJsZSBxdWFsaWZpZWQg Y29sdW1uIHJlZmVyZW5jZXMgaW4gREVGSU5FIChlLmcuCisgKiAiQS5wcmljZSIpIGFyZSBub3Qg eWV0IHN1cHBvcnRlZC4gIEN1cnJlbnRseSByZWplY3RlZCBieQorICogdHJhbnNmb3JtQ29sdW1u UmVmIGluIHBhcnNlX2V4cHIuYyB2aWEgdGhlIHBfcnByX3BhdHRlcm5fdmFycyBjaGVjay4KKyAq Lworc3RhdGljIExpc3QgKgordHJhbnNmb3JtRGVmaW5lQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgV2luZG93Q2xhdXNlICp3YywgV2luZG93RGVmICp3aW5kZWYsCisJCQkJCSAgTGlzdCAqKnRh cmdldGxpc3QpCit7CisJTGlzdENlbGwgICAqbGMsCisJCQkgICAqbDsKKwlSZXNUYXJnZXQgICpy ZXN0YXJnZXQsCisJCQkgICAqcjsKKwlMaXN0CSAgICpyZXN0YXJnZXRzOworCUxpc3QJICAgKmRl ZmluZUNsYXVzZSA9IE5JTDsKKwljaGFyCSAgICpuYW1lOworCUxpc3QJICAgKnBhdHRlcm5WYXJO YW1lcyA9IE5JTDsKKworCS8qCisJICogSWYgUm93IERlZmluaXRpb24gQ29tbW9uIFN5bnRheCBl eGlzdHMsIERFRklORSBjbGF1c2UgbXVzdCBleGlzdC4gKHRoZQorCSAqIHJhdyBwYXJzZXIgc2hv dWxkIGhhdmUgYWxyZWFkeSBjaGVja2VkIGl0LikKKwkgKi8KKwlBc3NlcnQod2luZGVmLT5ycENv bW1vblN5bnRheC0+cnBEZWZzICE9IE5VTEwpOworCisJLyoKKwkgKiBWYWxpZGF0ZSBQQVRURVJO IHZhcmlhYmxlIGNvdW50IGFuZCBjb2xsZWN0IGFsbCBSUFIgdmFyaWFibGUgbmFtZXMKKwkgKiAo UEFUVEVSTiArIERFRklORSkgZm9yIHVzZSBpbiB0cmFuc2Zvcm1Db2x1bW5SZWYuCisJICovCisJ dmFsaWRhdGVSUFJQYXR0ZXJuVmFyQ291bnQocHN0YXRlLCB3aW5kZWYtPnJwQ29tbW9uU3ludGF4 LT5ycFBhdHRlcm4sCisJCQkJCQkJICAgd2luZGVmLT5ycENvbW1vblN5bnRheC0+cnBEZWZzLAor CQkJCQkJCSAgICZwYXR0ZXJuVmFyTmFtZXMpOworCXBzdGF0ZS0+cF9ycHJfcGF0dGVybl92YXJz ID0gcGF0dGVyblZhck5hbWVzOworCisJLyoKKwkgKiBDaGVjayBmb3IgZHVwbGljYXRlIHJvdyBw YXR0ZXJuIGRlZmluaXRpb24gdmFyaWFibGVzLiAgVGhlIHN0YW5kYXJkCisJICogcmVxdWlyZXMg dGhhdCBubyB0d28gcm93IHBhdHRlcm4gZGVmaW5pdGlvbiB2YXJpYWJsZSBuYW1lcyBzaGFsbCBi ZQorCSAqIGVxdWl2YWxlbnQuCisJICovCisJcmVzdGFyZ2V0cyA9IE5JTDsKKwlmb3JlYWNoKGxj LCB3aW5kZWYtPnJwQ29tbW9uU3ludGF4LT5ycERlZnMpCisJeworCQlUYXJnZXRFbnRyeSAqdGVE ZWZpbmU7CisKKwkJcmVzdGFyZ2V0ID0gKFJlc1RhcmdldCAqKSBsZmlyc3QobGMpOworCQluYW1l ID0gcmVzdGFyZ2V0LT5uYW1lOworCisJCWZvcmVhY2gobCwgcmVzdGFyZ2V0cykKKwkJeworCQkJ Y2hhcgkgICAqbjsKKworCQkJciA9IChSZXNUYXJnZXQgKikgbGZpcnN0KGwpOworCQkJbiA9IHIt Pm5hbWU7CisKKwkJCWlmICghc3RyY21wKG4sIG5hbWUpKQorCQkJCWVyZXBvcnQoRVJST1IsCisJ CQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQkgZXJybXNnKCJERUZJ TkUgdmFyaWFibGUgXCIlc1wiIGFwcGVhcnMgbW9yZSB0aGFuIG9uY2UiLAorCQkJCQkJCQluYW1l KSwKKwkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oKE5vZGUg KikgcikpKSk7CisJCX0KKworCQlyZXN0YXJnZXRzID0gbGFwcGVuZChyZXN0YXJnZXRzLCByZXN0 YXJnZXQpOworCisJCS8qCisJCSAqIFRyYW5zZm9ybSB0aGUgREVGSU5FIGV4cHJlc3Npb24uICBX ZSBtdXN0IE5PVCBhZGQgdGhlIHdob2xlCisJCSAqIGV4cHJlc3Npb24gdG8gdGhlIHF1ZXJ5IHRh cmdldGxpc3QsIGJlY2F1c2UgaXQgbWF5IGNvbnRhaW4KKwkJICogUlBSTmF2RXhwciBub2RlcyAo UFJFVi9ORVhUL0ZJUlNUL0xBU1QpIHRoYXQgY2FuIG9ubHkgYmUgZXZhbHVhdGVkCisJCSAqIGlu c2lkZSB0aGUgb3duaW5nIFdpbmRvd0FnZy4KKwkJICoKKwkJICogSW5zdGVhZCwgd2UgdHJhbnNm b3JtIHRoZSBleHByZXNzaW9uIGRpcmVjdGx5IGFuZCBvbmx5IGVuc3VyZSB0aGF0CisJCSAqIHRo ZSBpbmRpdmlkdWFsIFZhciBub2RlcyBpdCByZWZlcmVuY2VzIGFyZSBwcmVzZW50IGluIHRoZQor CQkgKiB0YXJnZXRsaXN0LCBzbyB0aGUgcGxhbm5lciBjYW4gcHJvcGFnYXRlIHRoZSByZWZlcmVu Y2VkIGNvbHVtbnMuCisJCSAqLworCQl7CisJCQlOb2RlCSAgICpleHByOworCQkJTGlzdAkgICAq dmFyczsKKwkJCUxpc3RDZWxsICAgKmxjMjsKKworCQkJZXhwciA9IHRyYW5zZm9ybUV4cHIocHN0 YXRlLCByZXN0YXJnZXQtPnZhbCwKKwkJCQkJCQkJIEVYUFJfS0lORF9SUFJfREVGSU5FKTsKKwor CQkJLyoKKwkJCSAqIFB1bGwgb3V0IFZhciBub2RlcyBmcm9tIHRoZSB0cmFuc2Zvcm1lZCBleHBy ZXNzaW9uIGFuZCBlbnN1cmUKKwkJCSAqIGVhY2ggb25lIGlzIHByZXNlbnQgaW4gdGhlIHRhcmdl dGxpc3QuICBUaGlzIGlzIG5lZWRlZCBzbyB0aGUKKwkJCSAqIHBsYW5uZXIgcHJvcGFnYXRlcyB0 aGUgcmVmZXJlbmNlZCBjb2x1bW5zIHRocm91Z2ggdGhlIHBsYW4KKwkJCSAqIHRyZWUsIG1ha2lu ZyB0aGVtIGF2YWlsYWJsZSB0byB0aGUgV2luZG93QWdnJ3MgREVGSU5FCisJCQkgKiBldmFsdWF0 aW9uLgorCQkJICovCisJCQl2YXJzID0gcHVsbF92YXJfY2xhdXNlKGV4cHIsIDApOworCQkJZm9y ZWFjaChsYzIsIHZhcnMpCisJCQl7CisJCQkJVmFyCQkgICAqdmFyID0gKFZhciAqKSBsZmlyc3Qo bGMyKTsKKwkJCQlib29sCQlmb3VuZCA9IGZhbHNlOworCQkJCUxpc3RDZWxsICAgKnRsOworCisJ CQkJZm9yZWFjaCh0bCwgKnRhcmdldGxpc3QpCisJCQkJeworCQkJCQlUYXJnZXRFbnRyeSAqdGxl ID0gKFRhcmdldEVudHJ5ICopIGxmaXJzdCh0bCk7CisKKwkJCQkJaWYgKElzQSh0bGUtPmV4cHIs IFZhcikgJiYKKwkJCQkJCSgoVmFyICopIHRsZS0+ZXhwciktPnZhcm5vID09IHZhci0+dmFybm8g JiYKKwkJCQkJCSgoVmFyICopIHRsZS0+ZXhwciktPnZhcmF0dG5vID09IHZhci0+dmFyYXR0bm8p CisJCQkJCXsKKwkJCQkJCWZvdW5kID0gdHJ1ZTsKKwkJCQkJCWJyZWFrOworCQkJCQl9CisJCQkJ fQorCQkJCWlmICghZm91bmQpCisJCQkJeworCQkJCQlUYXJnZXRFbnRyeSAqbmV3dGxlOworCisJ CQkJCW5ld3RsZSA9IG1ha2VUYXJnZXRFbnRyeSgoRXhwciAqKSBjb3B5T2JqZWN0KHZhciksCisJ CQkJCQkJCQkJCSBsaXN0X2xlbmd0aCgqdGFyZ2V0bGlzdCkgKyAxLAorCQkJCQkJCQkJCQkgTlVM TCwKKwkJCQkJCQkJCQkJIHRydWUpOworCQkJCQkqdGFyZ2V0bGlzdCA9IGxhcHBlbmQoKnRhcmdl dGxpc3QsIG5ld3RsZSk7CisJCQkJfQorCQkJfQorCQkJbGlzdF9mcmVlKHZhcnMpOworCisJCQkv KiBCdWlsZCB0aGUgZGVmaW5lQ2xhdXNlIGVudHJ5IGRpcmVjdGx5IGZyb20gdGhlIHRyYW5zZm9y bWVkIGV4cHIgKi8KKwkJCXRlRGVmaW5lID0gbWFrZVRhcmdldEVudHJ5KChFeHByICopIGV4cHIs CisJCQkJCQkJCQkgICBsaXN0X2xlbmd0aChkZWZpbmVDbGF1c2UpICsgMSwKKwkJCQkJCQkJCSAg IHBzdHJkdXAobmFtZSksCisJCQkJCQkJCQkgICB0cnVlKTsKKwkJfQorCisJCS8qIGJ1aWxkIHRy YW5zZm9ybWVkIERFRklORSBjbGF1c2UgKGxpc3Qgb2YgVGFyZ2V0RW50cnkpICovCisJCWRlZmlu ZUNsYXVzZSA9IGxhcHBlbmQoZGVmaW5lQ2xhdXNlLCB0ZURlZmluZSk7CisJfQorCWxpc3RfZnJl ZShyZXN0YXJnZXRzKTsKKwlwc3RhdGUtPnBfcnByX3BhdHRlcm5fdmFycyA9IE5JTDsKKworCS8q CisJICogTWFrZSBzdXJlIHRoYXQgdGhlIHJvdyBwYXR0ZXJuIGRlZmluaXRpb24gc2VhcmNoIGNv bmRpdGlvbiBpcyBhIGJvb2xlYW4KKwkgKiBleHByZXNzaW9uLgorCSAqLworCWZvcmVhY2hfcHRy KFRhcmdldEVudHJ5LCB0ZSwgZGVmaW5lQ2xhdXNlKQorCQl0ZS0+ZXhwciA9IChFeHByICopIGNv ZXJjZV90b19ib29sZWFuKHBzdGF0ZSwgKE5vZGUgKikgdGUtPmV4cHIsICJERUZJTkUiKTsKKwor CS8qIGNoZWNrIGZvciBuZXN0ZWQgUFJFVi9ORVhUIGFuZCBtaXNzaW5nIGNvbHVtbiByZWZlcmVu Y2VzICovCisJZm9yZWFjaF9wdHIoVGFyZ2V0RW50cnksIHRlLCBkZWZpbmVDbGF1c2UpCisJCSh2 b2lkKSBjaGVja19ycHJfbmF2X25lc3Rpbmdfd2Fsa2VyKChOb2RlICopIHRlLT5leHByLCBwc3Rh dGUpOworCisJLyogbWFyayBjb2x1bW4gb3JpZ2lucyAqLworCW1hcmtUYXJnZXRMaXN0T3JpZ2lu cyhwc3RhdGUsIGRlZmluZUNsYXVzZSk7CisKKwkvKiBtYXJrIGFsbCBub2RlcyBpbiB0aGUgREVG SU5FIGNsYXVzZSB0cmVlIHdpdGggY29sbGF0aW9uIGluZm9ybWF0aW9uICovCisJYXNzaWduX2V4 cHJfY29sbGF0aW9ucyhwc3RhdGUsIChOb2RlICopIGRlZmluZUNsYXVzZSk7CisKKwlyZXR1cm4g ZGVmaW5lQ2xhdXNlOworfQorCisvKgorICogY2hlY2tfcnByX25hdl9leHByCisgKgkJVmFsaWRh dGUgYSBzaW5nbGUgUlBSTmF2RXhwciBub2RlIGJ5IHdhbGtpbmcgaXRzIGFyZyBhbmQgb2Zmc2V0 X2FyZworICoJCXN1YnRyZWVzIGluIGEgc2luZ2xlIHBhc3MgZWFjaC4gIENoZWNrIGZvciBpbGxl Z2FsIG5lc3RpbmcsIG1pc3NpbmcKKyAqCQljb2x1bW4gcmVmZXJlbmNlcywgYW5kIG5vbi1jb25z dGFudCBvZmZzZXQgZXhwcmVzc2lvbnMuCisgKgorICogTmVzdGluZyBydWxlcyAoU1FMIHN0YW5k YXJkIDUuNi40KToKKyAqICAgLSBQUkVWL05FWFQgd3JhcHBpbmcgRklSU1QvTEFTVDogYWxsb3dl ZCAoY29tcG91bmQgbmF2aWdhdGlvbikKKyAqICAgLSBGSVJTVC9MQVNUIHdyYXBwaW5nIFBSRVYv TkVYVDogcHJvaGliaXRlZAorICogICAtIFNhbWUtY2F0ZWdvcnkgbmVzdGluZyAoUFJFViBpbnNp ZGUgUFJFViwgRklSU1QgaW5zaWRlIEZJUlNULCBldGMuKToKKyAqICAgICBwcm9oaWJpdGVkCisg Ki8KK3R5cGVkZWYgc3RydWN0Cit7CisJaW50CQkJbmF2X2NvdW50OwkJLyogbnVtYmVyIG9mIFJQ Uk5hdkV4cHIgbm9kZXMgZm91bmQgKi8KKwlib29sCQloYXNfY29sdW1uX3JlZjsgLyogVmFyIGZv dW5kICovCisJUlBSTmF2S2luZAlpbm5lcl9raW5kOwkJLyoga2luZCBvZiBmaXJzdCAob3V0ZXJt b3N0KSBuZXN0ZWQgUlBSTmF2RXhwciAqLworfSBOYXZDaGVja1Jlc3VsdDsKKworc3RhdGljIGJv b2wKK25hdl9jaGVja193YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCkKK3sKKwlOYXZD aGVja1Jlc3VsdCAqcmVzdWx0ID0gKE5hdkNoZWNrUmVzdWx0ICopIGNvbnRleHQ7CisKKwlpZiAo bm9kZSA9PSBOVUxMKQorCQlyZXR1cm4gZmFsc2U7CisJaWYgKElzQShub2RlLCBSUFJOYXZFeHBy KSkKKwl7CisJCWlmIChyZXN1bHQtPm5hdl9jb3VudCA9PSAwKQorCQkJcmVzdWx0LT5pbm5lcl9r aW5kID0gKChSUFJOYXZFeHByICopIG5vZGUpLT5raW5kOworCQlyZXN1bHQtPm5hdl9jb3VudCsr OworCX0KKwlpZiAoSXNBKG5vZGUsIFZhcikpCisJCXJlc3VsdC0+aGFzX2NvbHVtbl9yZWYgPSB0 cnVlOworCisJcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgbmF2X2NoZWNrX3dh bGtlciwgY29udGV4dCk7Cit9CisKK3N0YXRpYyB2b2lkCitjaGVja19ycHJfbmF2X2V4cHIoUlBS TmF2RXhwciAqbmF2LCBQYXJzZVN0YXRlICpwc3RhdGUpCit7CisJTmF2Q2hlY2tSZXN1bHQgcmVz dWx0OworCWJvb2wJCW91dGVyX2lzX3BoeXNpY2FsID0gKG5hdi0+a2luZCA9PSBSUFJfTkFWX1BS RVYgfHwKKwkJCQkJCQkJCSBuYXYtPmtpbmQgPT0gUlBSX05BVl9ORVhUKTsKKworCS8qIENoZWNr IGFyZyBzdWJ0cmVlOiBuZXN0aW5nICsgY29sdW1uIHJlZmVyZW5jZSBpbiBvbmUgd2FsayAqLwor CW1lbXNldCgmcmVzdWx0LCAwLCBzaXplb2YocmVzdWx0KSk7CisJKHZvaWQpIG5hdl9jaGVja193 YWxrZXIoKE5vZGUgKikgbmF2LT5hcmcsICZyZXN1bHQpOworCisJaWYgKHJlc3VsdC5uYXZfY291 bnQgPiAwKQorCXsKKwkJYm9vbAkJaW5uZXJfaXNfcGh5c2ljYWwgPSAocmVzdWx0LmlubmVyX2tp bmQgPT0gUlBSX05BVl9QUkVWIHx8CisJCQkJCQkJCQkJIHJlc3VsdC5pbm5lcl9raW5kID09IFJQ Ul9OQVZfTkVYVCk7CisKKwkJaWYgKG91dGVyX2lzX3BoeXNpY2FsICYmICFpbm5lcl9pc19waHlz aWNhbCkKKwkJeworCQkJLyoKKwkJCSAqIFBSRVYvTkVYVCB3cmFwcGluZyBGSVJTVC9MQVNUOiBj b21wb3VuZCBuYXZpZ2F0aW9uIHBlciBTUUwKKwkJCSAqIHN0YW5kYXJkIDUuNi40LiAgRmxhdHRl biB0aGUgbmVzdGVkIFJQUk5hdkV4cHIgaW50byBhIHNpbmdsZQorCQkJICogY29tcG91bmQgbm9k ZS4gIFRoZSBpbm5lciBSUFJOYXZFeHByIG11c3QgYmUgdGhlIGRpcmVjdCBhcmcgb2YKKwkJCSAq IHRoZSBvdXRlcjsgZXhwcmVzc2lvbnMgbGlrZSBQUkVWKHZhbCArIEZJUlNUKHYpKSBhcmUgbm90 IHZhbGlkCisJCQkgKiBjb21wb3VuZCBuYXZpZ2F0aW9uLgorCQkJICovCisJCQlSUFJOYXZFeHBy ICppbm5lcjsKKworCQkJLyogUmVqZWN0IHRyaXBsZS1vci1kZWVwZXIgbmVzdGluZyAoZS5nLiBQ UkVWKEZJUlNUKFBSRVYoeCkpKSkgKi8KKwkJCWlmIChyZXN1bHQubmF2X2NvdW50ID4gMSkKKwkJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAor CQkJCQkJIGVycm1zZygiY2Fubm90IG5lc3Qgcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBtb3JlIHRo YW4gdHdvIGxldmVscyBkZWVwIiksCisJCQkJCQkgZXJyaGludCgiT25seSBQUkVWKEZJUlNUKCkp LCBQUkVWKExBU1QoKSksIE5FWFQoRklSU1QoKSksIGFuZCBORVhUKExBU1QoKSkgY29tcG91bmQg Zm9ybXMgYXJlIGFsbG93ZWQuIiksCisJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwg bmF2LT5sb2NhdGlvbikpKTsKKworCQkJaWYgKCFJc0EobmF2LT5hcmcsIFJQUk5hdkV4cHIpKQor CQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiks CisJCQkJCQkgZXJybXNnKCJyb3cgcGF0dGVybiBuYXZpZ2F0aW9uIG9wZXJhdGlvbiBtdXN0IGJl IGEgZGlyZWN0IGFyZ3VtZW50IG9mIHRoZSBvdXRlciBuYXZpZ2F0aW9uIiksCisJCQkJCQkgZXJy aGludCgiT25seSBQUkVWKEZJUlNUKCkpLCBQUkVWKExBU1QoKSksIE5FWFQoRklSU1QoKSksIGFu ZCBORVhUKExBU1QoKSkgY29tcG91bmQgZm9ybXMgYXJlIGFsbG93ZWQuIiksCisJCQkJCQkgcGFy c2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbmF2LT5sb2NhdGlvbikpKTsKKwkJCWlubmVyID0gKFJQ Uk5hdkV4cHIgKikgbmF2LT5hcmc7CisKKwkJCS8qIERldGVybWluZSBjb21wb3VuZCBraW5kICov CisJCQlpZiAobmF2LT5raW5kID09IFJQUl9OQVZfUFJFViAmJiBpbm5lci0+a2luZCA9PSBSUFJf TkFWX0ZJUlNUKQorCQkJCW5hdi0+a2luZCA9IFJQUl9OQVZfUFJFVl9GSVJTVDsKKwkJCWVsc2Ug aWYgKG5hdi0+a2luZCA9PSBSUFJfTkFWX1BSRVYgJiYgaW5uZXItPmtpbmQgPT0gUlBSX05BVl9M QVNUKQorCQkJCW5hdi0+a2luZCA9IFJQUl9OQVZfUFJFVl9MQVNUOworCQkJZWxzZSBpZiAobmF2 LT5raW5kID09IFJQUl9OQVZfTkVYVCAmJiBpbm5lci0+a2luZCA9PSBSUFJfTkFWX0ZJUlNUKQor CQkJCW5hdi0+a2luZCA9IFJQUl9OQVZfTkVYVF9GSVJTVDsKKwkJCWVsc2UgaWYgKG5hdi0+a2lu ZCA9PSBSUFJfTkFWX05FWFQgJiYgaW5uZXItPmtpbmQgPT0gUlBSX05BVl9MQVNUKQorCQkJCW5h di0+a2luZCA9IFJQUl9OQVZfTkVYVF9MQVNUOworCisJCQkvKiBNb3ZlIG91dGVyIG9mZnNldCB0 byBjb21wb3VuZF9vZmZzZXRfYXJnICovCisJCQluYXYtPmNvbXBvdW5kX29mZnNldF9hcmcgPSBu YXYtPm9mZnNldF9hcmc7CisKKwkJCS8qIE1vdmUgaW5uZXIgb2Zmc2V0IGFuZCBhcmcgdXAgKi8K KwkJCW5hdi0+b2Zmc2V0X2FyZyA9IGlubmVyLT5vZmZzZXRfYXJnOworCQkJbmF2LT5hcmcgPSBp bm5lci0+YXJnOworCisJCQkvKiBObyBmdXJ0aGVyIG5lc3RpbmcgY2hlY2sgbmVlZGVkIC0gYWxy ZWFkeSB2YWxpZGF0ZWQgKi8KKwkJCXJldHVybjsKKwkJfQorCQllbHNlIGlmICghb3V0ZXJfaXNf cGh5c2ljYWwgJiYgaW5uZXJfaXNfcGh5c2ljYWwpCisJCXsKKwkJCS8qIEZJUlNUL0xBU1Qgd3Jh cHBpbmcgUFJFVi9ORVhUOiBwcm9oaWJpdGVkIGJ5IHN0YW5kYXJkICovCisJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCSBlcnJtc2co IkZJUlNUIGFuZCBMQVNUIGNhbm5vdCBjb250YWluIFBSRVYgb3IgTkVYVCIpLAorCQkJCQkgZXJy aGludCgiT25seSBQUkVWKEZJUlNUKCkpLCBQUkVWKExBU1QoKSksIE5FWFQoRklSU1QoKSksIGFu ZCBORVhUKExBU1QoKSkgY29tcG91bmQgZm9ybXMgYXJlIGFsbG93ZWQuIiksCisJCQkJCSBwYXJz ZXJfZXJycG9zaXRpb24ocHN0YXRlLCBuYXYtPmxvY2F0aW9uKSkpOworCQl9CisJCWVsc2UgaWYg KG91dGVyX2lzX3BoeXNpY2FsICYmIGlubmVyX2lzX3BoeXNpY2FsKQorCQl7CisJCQkvKiBQUkVW L05FWFQgd3JhcHBpbmcgUFJFVi9ORVhUOiBwcm9oaWJpdGVkICovCisJCQllcmVwb3J0KEVSUk9S LAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCSBlcnJtc2coIlBS RVYgYW5kIE5FWFQgY2Fubm90IGNvbnRhaW4gUFJFViBvciBORVhUIiksCisJCQkJCSBlcnJoaW50 KCJPbmx5IFBSRVYoRklSU1QoKSksIFBSRVYoTEFTVCgpKSwgTkVYVChGSVJTVCgpKSwgYW5kIE5F WFQoTEFTVCgpKSBjb21wb3VuZCBmb3JtcyBhcmUgYWxsb3dlZC4iKSwKKwkJCQkJIHBhcnNlcl9l cnJwb3NpdGlvbihwc3RhdGUsIG5hdi0+bG9jYXRpb24pKSk7CisJCX0KKwkJZWxzZQorCQl7CisJ CQkvKiBGSVJTVC9MQVNUIHdyYXBwaW5nIEZJUlNUL0xBU1Q6IHByb2hpYml0ZWQgKi8KKwkJCWVy ZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJ IGVycm1zZygiRklSU1QgYW5kIExBU1QgY2Fubm90IGNvbnRhaW4gRklSU1Qgb3IgTEFTVCIpLAor CQkJCQkgZXJyaGludCgiT25seSBQUkVWKEZJUlNUKCkpLCBQUkVWKExBU1QoKSksIE5FWFQoRklS U1QoKSksIGFuZCBORVhUKExBU1QoKSkgY29tcG91bmQgZm9ybXMgYXJlIGFsbG93ZWQuIiksCisJ CQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBuYXYtPmxvY2F0aW9uKSkpOworCQl9CisJ fQorCWlmICghcmVzdWx0Lmhhc19jb2x1bW5fcmVmKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShl cnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkgZXJybXNnKCJhcmd1bWVudCBvZiBy b3cgcGF0dGVybiBuYXZpZ2F0aW9uIG9wZXJhdGlvbiBtdXN0IGluY2x1ZGUgYXQgbGVhc3Qgb25l IGNvbHVtbiByZWZlcmVuY2UiKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbmF2 LT5sb2NhdGlvbikpKTsKKworCS8qIENoZWNrIG9mZnNldF9hcmc6IGNvbHVtbiByZWYgKyB2b2xh dGlsZSBpbiBvbmUgd2FsayAqLworCWlmIChuYXYtPm9mZnNldF9hcmcgIT0gTlVMTCkKKwl7CisJ CW1lbXNldCgmcmVzdWx0LCAwLCBzaXplb2YocmVzdWx0KSk7CisJCSh2b2lkKSBuYXZfY2hlY2tf d2Fsa2VyKChOb2RlICopIG5hdi0+b2Zmc2V0X2FyZywgJnJlc3VsdCk7CisKKwkJaWYgKHJlc3Vs dC5oYXNfY29sdW1uX3JlZiB8fAorCQkJY29udGFpbl92b2xhdGlsZV9mdW5jdGlvbnMoKE5vZGUg KikgbmF2LT5vZmZzZXRfYXJnKSkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVS UkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJIGVycm1zZygicm93IHBhdHRlcm4g bmF2aWdhdGlvbiBvZmZzZXQgbXVzdCBiZSBhIHJ1bi10aW1lIGNvbnN0YW50IiksCisJCQkJCSBw YXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBuYXYtPmxvY2F0aW9uKSkpOworCX0KK30KKworLyoK KyAqIGNoZWNrX3Jwcl9uYXZfbmVzdGluZ193YWxrZXIKKyAqCQlXYWxrIHRoZSBERUZJTkUgY2xh dXNlIGV4cHJlc3Npb24gdHJlZSBhbmQgdmFsaWRhdGUgZWFjaCBSUFJOYXZFeHByLgorICovCitz dGF0aWMgYm9vbAorY2hlY2tfcnByX25hdl9uZXN0aW5nX3dhbGtlcihOb2RlICpub2RlLCB2b2lk ICpjb250ZXh0KQoreworCWlmIChub2RlID09IE5VTEwpCisJCXJldHVybiBmYWxzZTsKKwlpZiAo SXNBKG5vZGUsIFJQUk5hdkV4cHIpKQorCXsKKwkJY2hlY2tfcnByX25hdl9leHByKChSUFJOYXZF eHByICopIG5vZGUsIChQYXJzZVN0YXRlICopIGNvbnRleHQpOworCQkvKiBkb24ndCByZWN1cnNl IGludG8gYXJnOyBuZXN0aW5nIGFscmVhZHkgY2hlY2tlZCBhYm92ZSAqLworCQlyZXR1cm4gZmFs c2U7CisJfQorCXJldHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIGNoZWNrX3Jwcl9u YXZfbmVzdGluZ193YWxrZXIsIGNvbnRleHQpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv bm9kZXMvcHJpbW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRleCA3 OTc3ZWUyNDc4My4uNjU2YzU1MmIwYTggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3By aW1ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBAIC02NDgsNiAr NjQ4LDYwIEBAIHR5cGVkZWYgc3RydWN0IFdpbmRvd0Z1bmNSdW5Db25kaXRpb24KIAlFeHByCSAg ICphcmc7CiB9IFdpbmRvd0Z1bmNSdW5Db25kaXRpb247CiAKKy8qCisgKiBSUFJOYXZFeHByCisg KgorICogUmVwcmVzZW50cyBhIFBSRVYvTkVYVC9GSVJTVC9MQVNUIG5hdmlnYXRpb24gY2FsbCBp biBhbiBSUFIgREVGSU5FIGNsYXVzZS4KKyAqIEF0IGV4cHJlc3Npb24gY29tcGlsZSB0aW1lIHRo aXMgaXMgdHJhbnNsYXRlZCBpbnRvIEVFT1BfUlBSX05BVl9TRVQgLworICogRUVPUF9SUFJfTkFW X1JFU1RPUkUgb3Bjb2RlcyByYXRoZXIgdGhhbiBhIG5vcm1hbCBmdW5jdGlvbiBjYWxsLgorICoK KyAqIFNpbXBsZSBuYXZpZ2F0aW9uIChQUkVWL05FWFQvRklSU1QvTEFTVCk6CisgKiAgIGtpbmQ6 ICAgICAgIFJQUl9OQVZfUFJFViwgUlBSX05BVl9ORVhULCBSUFJfTkFWX0ZJUlNULCBvciBSUFJf TkFWX0xBU1QKKyAqICAgYXJnOiAgICAgICAgdGhlIGV4cHJlc3Npb24gdG8gZXZhbHVhdGUgYWdh aW5zdCB0aGUgdGFyZ2V0IHJvdworICogICBvZmZzZXRfYXJnOiBvcHRpb25hbCBleHBsaWNpdCBv ZmZzZXQgZXhwcmVzc2lvbiAoMi1hcmcgZm9ybSk7IE5VTEwgZm9yCisgKiAgICAgICAgICAgICAg IHRoZSAxLWFyZyBmb3JtIChpbXBsaWNpdCBvZmZzZXQ6IDEgZm9yIFBSRVYvTkVYVCwgMCBmb3IK KyAqICAgICAgICAgICAgICAgRklSU1QvTEFTVCkKKyAqCisgKiBDb21wb3VuZCBuYXZpZ2F0aW9u IChQUkVWL05FWFQgd3JhcHBpbmcgRklSU1QvTEFTVCk6CisgKiAgIGtpbmQ6ICAgICAgICAgICAg ICBSUFJfTkFWX1BSRVZfRklSU1QsIFBSRVZfTEFTVCwgTkVYVF9GSVJTVCwgTkVYVF9MQVNUCisg KiAgIGFyZzogICAgICAgICAgICAgICB0aGUgZXhwcmVzc2lvbiB0byBldmFsdWF0ZSBhZ2FpbnN0 IHRoZSBmaW5hbCB0YXJnZXQgcm93CisgKiAgIG9mZnNldF9hcmc6ICAgICAgICBpbm5lciBvZmZz ZXQgKEZJUlNUL0xBU1QpLCBOVUxMID0gaW1wbGljaXQgZGVmYXVsdAorICogICBjb21wb3VuZF9v ZmZzZXRfYXJnOiBvdXRlciBvZmZzZXQgKFBSRVYvTkVYVCksIE5VTEwgPSBpbXBsaWNpdCBkZWZh dWx0CisgKgorICogQ29tcG91bmQgdGFyZ2V0IGNvbXB1dGF0aW9uOgorICogICBQUkVWX0ZJUlNU OiAobWF0Y2hfc3RhcnQgKyBpbm5lcikgLSBvdXRlcgorICogICBORVhUX0ZJUlNUOiAobWF0Y2hf c3RhcnQgKyBpbm5lcikgKyBvdXRlcgorICogICBQUkVWX0xBU1Q6ICAoY3VycmVudHBvcyAgLSBp bm5lcikgLSBvdXRlcgorICogICBORVhUX0xBU1Q6ICAoY3VycmVudHBvcyAgLSBpbm5lcikgKyBv dXRlcgorICovCit0eXBlZGVmIGVudW0gUlBSTmF2S2luZAoreworCVJQUl9OQVZfUFJFViwKKwlS UFJfTkFWX05FWFQsCisJUlBSX05BVl9GSVJTVCwKKwlSUFJfTkFWX0xBU1QsCisJLyogY29tcG91 bmQ6IG91dGVyKGlubmVyKGFyZykpICovCisJUlBSX05BVl9QUkVWX0ZJUlNULAorCVJQUl9OQVZf UFJFVl9MQVNULAorCVJQUl9OQVZfTkVYVF9GSVJTVCwKKwlSUFJfTkFWX05FWFRfTEFTVAorfSBS UFJOYXZLaW5kOworCit0eXBlZGVmIHN0cnVjdCBSUFJOYXZFeHByCit7CisJRXhwcgkJeHByOwor CVJQUk5hdktpbmQJa2luZDsJCQkvKiBuYXZpZ2F0aW9uIGtpbmQgKi8KKwlFeHByCSAgICphcmc7 CQkJLyogYXJndW1lbnQgZXhwcmVzc2lvbiAqLworCUV4cHIJICAgKm9mZnNldF9hcmc7CQkvKiBv ZmZzZXQgZXhwcmVzc2lvbiwgb3IgTlVMTCBmb3IgZGVmYXVsdCAqLworCUV4cHIJICAgKmNvbXBv dW5kX29mZnNldF9hcmc7CS8qIG91dGVyIG9mZnNldCBmb3IgY29tcG91bmQgbmF2LCBvcgorCQkJ CQkJCQkJCSAqIE5VTEwgaWYgc2ltcGxlICovCisJT2lkCQkJcmVzdWx0dHlwZTsJCS8qIHJlc3Vs dCB0eXBlIChzYW1lIGFzIGFyZydzIHR5cGUpICovCisJLyogT0lEIG9mIGNvbGxhdGlvbiBvZiBy ZXN1bHQgKi8KKwlPaWQJCQlyZXN1bHRjb2xsaWQgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9p Z25vcmUpOworCS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCisJUGFyc2VM b2MJbG9jYXRpb247Cit9IFJQUk5hdkV4cHI7CisKIC8qCiAgKiBNZXJnZVN1cHBvcnRGdW5jCiAg KgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2NsYXVzZS5oIGIvc3JjL2lu Y2x1ZGUvcGFyc2VyL3BhcnNlX2NsYXVzZS5oCmluZGV4IGZlMjM0NjExMDA3Li44YWFhYzg4MWYy YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2NsYXVzZS5oCisrKyBiL3Ny Yy9pbmNsdWRlL3BhcnNlci9wYXJzZV9jbGF1c2UuaApAQCAtNTIsNiArNTIsOSBAQCBleHRlcm4g TGlzdCAqYWRkVGFyZ2V0VG9Tb3J0TGlzdChQYXJzZVN0YXRlICpwc3RhdGUsIFRhcmdldEVudHJ5 ICp0bGUsCiBleHRlcm4gSW5kZXggYXNzaWduU29ydEdyb3VwUmVmKFRhcmdldEVudHJ5ICp0bGUs IExpc3QgKnRsaXN0KTsKIGV4dGVybiBib29sIHRhcmdldElzSW5Tb3J0TGlzdChUYXJnZXRFbnRy eSAqdGxlLCBPaWQgc29ydG9wLCBMaXN0ICpzb3J0TGlzdCk7CiAKK2V4dGVybiBUYXJnZXRFbnRy eSAqZmluZFRhcmdldGxpc3RFbnRyeVNRTDk5KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbm9k ZSwKKwkJCQkJCQkJCQkJIExpc3QgKip0bGlzdCwgUGFyc2VFeHByS2luZCBleHByS2luZCk7CisK IC8qIGZ1bmN0aW9ucyBpbiBwYXJzZV9qc29udGFibGUuYyAqLwogZXh0ZXJuIFBhcnNlTmFtZXNw YWNlSXRlbSAqdHJhbnNmb3JtSnNvblRhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgSnNvblRhYmxl ICpqdCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ycHIuaCBiL3Ny Yy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ycHIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uN2ZhYjZmMjkyYWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2VfcnByLmgKQEAgLTAsMCArMSwyMiBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg KgorICogcGFyc2VfcnByLmgKKyAqCSAgaGFuZGxlIFJvdyBQYXR0ZXJuIFJlY29nbml0aW9uIGlu IHBhcnNlcgorICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNiwgUG9z dGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAo YykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICog c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3Jwci5oCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg Ki8KKyNpZm5kZWYgUEFSU0VfUlBSX0gKKyNkZWZpbmUgUEFSU0VfUlBSX0gKKworI2luY2x1ZGUg InBhcnNlci9wYXJzZV9ub2RlLmgiCisKK2V4dGVybiB2b2lkIHRyYW5zZm9ybVJQUihQYXJzZVN0 YXRlICpwc3RhdGUsIFdpbmRvd0NsYXVzZSAqd2MsCisJCQkJCQkgV2luZG93RGVmICp3aW5kZWYs IExpc3QgKip0YXJnZXRsaXN0KTsKKworI2VuZGlmCQkJCQkJCS8qIFBBUlNFX1JQUl9IICovCi0t IAoyLjQzLjAKCg== ----Next_Part(Sat_May__2_14_03_04_2026_790)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v47-0003-Row-pattern-recognition-patch-rewriter.patch" RnJvbSAxYWY0Y2NlZDZiNDQ1ODAyODU1ZTAzY2U4NWE0Y2NkNjAwM2VjY2FlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYXRzdW8gSXNoaWkgPGlzaGlpQHBvc3RncmVzcWwub3JnPgpE YXRlOiBTYXQsIDIgTWF5IDIwMjYgMTM6NDA6MjkgKzA5MDAKU3ViamVjdDogW1BBVENIIHY0NyAz LzldIFJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIHBhdGNoIChyZXdyaXRlcikuCgotLS0KIHNyYy9i YWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyB8IDI1NSArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAyNTUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9ydWxldXRpbHMuYwppbmRleCA3NWI3N2JiMzlmMS4uNzBiY2FkOWFhMzYgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGls cy9hZHQvcnVsZXV0aWxzLmMKQEAgLTQ0Nyw2ICs0NDcsMTAgQEAgc3RhdGljIHZvaWQgZ2V0X3J1 bGVfZ3JvdXBpbmdzZXQoR3JvdXBpbmdTZXQgKmdzZXQsIExpc3QgKnRhcmdldGxpc3QsCiAJCQkJ CQkJCSBib29sIG9taXRfcGFyZW5zLCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQpOwogc3RhdGlj IHZvaWQgZ2V0X3J1bGVfb3JkZXJieShMaXN0ICpvcmRlckxpc3QsIExpc3QgKnRhcmdldExpc3Qs CiAJCQkJCQkJIGJvb2wgZm9yY2VfY29sbm8sIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCk7Citz dGF0aWMgdm9pZCBhcHBlbmRfcGF0dGVybl9xdWFudGlmaWVyKFN0cmluZ0luZm8gYnVmLCBSUFJQ YXR0ZXJuTm9kZSAqbm9kZSk7CitzdGF0aWMgdm9pZCBnZXRfcnVsZV9wYXR0ZXJuX25vZGUoUlBS UGF0dGVybk5vZGUgKm5vZGUsIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCk7CitzdGF0aWMgdm9p ZCBnZXRfcnVsZV9wYXR0ZXJuKFJQUlBhdHRlcm5Ob2RlICpycFBhdHRlcm4sIGRlcGFyc2VfY29u dGV4dCAqY29udGV4dCk7CitzdGF0aWMgdm9pZCBnZXRfcnVsZV9kZWZpbmUoTGlzdCAqZGVmaW5l Q2xhdXNlLCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQpOwogc3RhdGljIHZvaWQgZ2V0X3J1bGVf d2luZG93Y2xhdXNlKFF1ZXJ5ICpxdWVyeSwgZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0KTsKIHN0 YXRpYyB2b2lkIGdldF9ydWxlX3dpbmRvd3NwZWMoV2luZG93Q2xhdXNlICp3YywgTGlzdCAqdGFy Z2V0TGlzdCwKIAkJCQkJCQkJZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0KTsKQEAgLTcxMDcsNiAr NzExMSwxMjkgQEAgZ2V0X3J1bGVfb3JkZXJieShMaXN0ICpvcmRlckxpc3QsIExpc3QgKnRhcmdl dExpc3QsCiAJfQogfQogCisvKgorICogSGVscGVyIGZ1bmN0aW9uIHRvIGFwcGVuZCBxdWFudGlm aWVyIHN0cmluZyBmb3IgcGF0dGVybiBub2RlCisgKi8KK3N0YXRpYyB2b2lkCithcHBlbmRfcGF0 dGVybl9xdWFudGlmaWVyKFN0cmluZ0luZm8gYnVmLCBSUFJQYXR0ZXJuTm9kZSAqbm9kZSkKK3sK Kwlib29sCQloYXNfcXVhbnRpZmllciA9IHRydWU7CisKKwlpZiAobm9kZS0+bWluID09IDEgJiYg bm9kZS0+bWF4ID09IDEpCisJeworCQkvKiB7MSwxfSA9IG5vIHF1YW50aWZpZXIgKi8KKwkJaGFz X3F1YW50aWZpZXIgPSBmYWxzZTsKKwl9CisJZWxzZSBpZiAobm9kZS0+bWluID09IDAgJiYgbm9k ZS0+bWF4ID09IElOVF9NQVgpCisJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJyonKTsKKwll bHNlIGlmIChub2RlLT5taW4gPT0gMSAmJiBub2RlLT5tYXggPT0gSU5UX01BWCkKKwkJYXBwZW5k U3RyaW5nSW5mb0NoYXIoYnVmLCAnKycpOworCWVsc2UgaWYgKG5vZGUtPm1pbiA9PSAwICYmIG5v ZGUtPm1heCA9PSAxKQorCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICc/Jyk7CisJZWxzZSBp ZiAobm9kZS0+bWF4ID09IElOVF9NQVgpCisJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAieyVkLH0i LCBub2RlLT5taW4pOworCWVsc2UgaWYgKG5vZGUtPm1pbiA9PSBub2RlLT5tYXgpCisJCWFwcGVu ZFN0cmluZ0luZm8oYnVmLCAieyVkfSIsIG5vZGUtPm1pbik7CisJZWxzZQorCQlhcHBlbmRTdHJp bmdJbmZvKGJ1ZiwgInslZCwlZH0iLCBub2RlLT5taW4sIG5vZGUtPm1heCk7CisKKwlpZiAobm9k ZS0+cmVsdWN0YW50KQorCXsKKwkJaWYgKCFoYXNfcXVhbnRpZmllcikKKwkJCWFwcGVuZFN0cmlu Z0luZm8oYnVmLCAiezF9Iik7CS8qIG1ha2UgcmVsdWN0YW50ID8gdW5hbWJpZ3VvdXMgKi8KKwkJ YXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnPycpOworCX0KK30KKworLyoKKyAqIFJlY3Vyc2l2 ZSBoZWxwZXIgdG8gZGlzcGxheSBSUFJQYXR0ZXJuTm9kZSB0cmVlCisgKi8KK3N0YXRpYyB2b2lk CitnZXRfcnVsZV9wYXR0ZXJuX25vZGUoUlBSUGF0dGVybk5vZGUgKm5vZGUsIGRlcGFyc2VfY29u dGV4dCAqY29udGV4dCkKK3sKKwlTdHJpbmdJbmZvCWJ1ZiA9IGNvbnRleHQtPmJ1ZjsKKwlMaXN0 Q2VsbCAgICpsYzsKKwljb25zdCBjaGFyICpzZXA7CisKKwlBc3NlcnQobm9kZSAhPSBOVUxMKTsK KworCXN3aXRjaCAobm9kZS0+bm9kZVR5cGUpCisJeworCQljYXNlIFJQUl9QQVRURVJOX1ZBUjoK KwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCBxdW90ZV9pZGVudGlmaWVyKG5vZGUtPnZh ck5hbWUpKTsKKwkJCWFwcGVuZF9wYXR0ZXJuX3F1YW50aWZpZXIoYnVmLCBub2RlKTsKKwkJCWJy ZWFrOworCisJCWNhc2UgUlBSX1BBVFRFUk5fU0VROgorCQkJc2VwID0gIiI7CisJCQlmb3JlYWNo KGxjLCBub2RlLT5jaGlsZHJlbikKKwkJCXsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1 Ziwgc2VwKTsKKwkJCQlnZXRfcnVsZV9wYXR0ZXJuX25vZGUoKFJQUlBhdHRlcm5Ob2RlICopIGxm aXJzdChsYyksIGNvbnRleHQpOworCQkJCXNlcCA9ICIgIjsKKwkJCX0KKwkJCWJyZWFrOworCisJ CWNhc2UgUlBSX1BBVFRFUk5fQUxUOgorCQkJc2VwID0gIiI7CisJCQlmb3JlYWNoKGxjLCBub2Rl LT5jaGlsZHJlbikKKwkJCXsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1Ziwgc2VwKTsK KwkJCQlnZXRfcnVsZV9wYXR0ZXJuX25vZGUoKFJQUlBhdHRlcm5Ob2RlICopIGxmaXJzdChsYyks IGNvbnRleHQpOworCQkJCXNlcCA9ICIgfCAiOworCQkJfQorCQkJYnJlYWs7CisKKwkJY2FzZSBS UFJfUEFUVEVSTl9HUk9VUDoKKwkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJygnKTsKKwkJ CXNlcCA9ICIiOworCQkJZm9yZWFjaChsYywgbm9kZS0+Y2hpbGRyZW4pCisJCQl7CisJCQkJYXBw ZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsIHNlcCk7CisJCQkJZ2V0X3J1bGVfcGF0dGVybl9ub2Rl KChSUFJQYXR0ZXJuTm9kZSAqKSBsZmlyc3QobGMpLCBjb250ZXh0KTsKKwkJCQlzZXAgPSAiICI7 CisJCQl9CisJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICcpJyk7CisJCQlhcHBlbmRfcGF0 dGVybl9xdWFudGlmaWVyKGJ1Ziwgbm9kZSk7CisJCQlicmVhazsKKwl9Cit9CisKKy8qCisgKiBE aXNwbGF5IGEgUEFUVEVSTiBjbGF1c2UuCisgKi8KK3N0YXRpYyB2b2lkCitnZXRfcnVsZV9wYXR0 ZXJuKFJQUlBhdHRlcm5Ob2RlICpycFBhdHRlcm4sIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCkK K3sKKwlTdHJpbmdJbmZvCWJ1ZiA9IGNvbnRleHQtPmJ1ZjsKKworCWFwcGVuZFN0cmluZ0luZm9D aGFyKGJ1ZiwgJygnKTsKKwlnZXRfcnVsZV9wYXR0ZXJuX25vZGUocnBQYXR0ZXJuLCBjb250ZXh0 KTsKKwlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICcpJyk7Cit9CisKKy8qCisgKiBEaXNwbGF5 IGEgREVGSU5FIGNsYXVzZS4KKyAqLworc3RhdGljIHZvaWQKK2dldF9ydWxlX2RlZmluZShMaXN0 ICpkZWZpbmVDbGF1c2UsIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCkKK3sKKwlTdHJpbmdJbmZv CWJ1ZiA9IGNvbnRleHQtPmJ1ZjsKKwljb25zdCBjaGFyICpzZXA7CisJTGlzdENlbGwgICAqbGNf ZGVmOworCisJc2VwID0gIiAgIjsKKworCWZvcmVhY2gobGNfZGVmLCBkZWZpbmVDbGF1c2UpCisJ eworCQlUYXJnZXRFbnRyeSAqdGUgPSAoVGFyZ2V0RW50cnkgKikgbGZpcnN0KGxjX2RlZik7CisK KwkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIlcyVzIEFTICIsIHNlcCwgcXVvdGVfaWRlbnRpZmll cih0ZS0+cmVzbmFtZSkpOworCQlnZXRfcnVsZV9leHByKChOb2RlICopIHRlLT5leHByLCBjb250 ZXh0LCBmYWxzZSk7CisJCXNlcCA9ICIsXG4gICI7CisJfQorfQorCiAvKgogICogRGlzcGxheSBh IFdJTkRPVyBjbGF1c2UuCiAgKgpAQCAtNzE4Nyw2ICs3MzE0LDcgQEAgZ2V0X3J1bGVfd2luZG93 c3BlYyhXaW5kb3dDbGF1c2UgKndjLCBMaXN0ICp0YXJnZXRMaXN0LAogCQlnZXRfcnVsZV9vcmRl cmJ5KHdjLT5vcmRlckNsYXVzZSwgdGFyZ2V0TGlzdCwgZmFsc2UsIGNvbnRleHQpOwogCQluZWVk c3BhY2UgPSB0cnVlOwogCX0KKwogCS8qIGZyYW1pbmcgY2xhdXNlIGlzIG5ldmVyIGluaGVyaXRl ZCwgc28gcHJpbnQgdW5sZXNzIGl0J3MgZGVmYXVsdCAqLwogCWlmICh3Yy0+ZnJhbWVPcHRpb25z ICYgRlJBTUVPUFRJT05fTk9OREVGQVVMVCkKIAl7CkBAIC03MTk1LDcgKzczMjMsNTEgQEAgZ2V0 X3J1bGVfd2luZG93c3BlYyhXaW5kb3dDbGF1c2UgKndjLCBMaXN0ICp0YXJnZXRMaXN0LAogCQln ZXRfd2luZG93X2ZyYW1lX29wdGlvbnMod2MtPmZyYW1lT3B0aW9ucywKIAkJCQkJCQkJIHdjLT5z dGFydE9mZnNldCwgd2MtPmVuZE9mZnNldCwKIAkJCQkJCQkJIGNvbnRleHQpOworCQluZWVkc3Bh Y2UgPSB0cnVlOworCX0KKworCS8qIFJQUiAqLworCWlmICh3Yy0+cnBTa2lwVG8gPT0gU1RfTkVY VF9ST1cpCisJeworCQlpZiAobmVlZHNwYWNlKQorCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVm LCAnICcpOworCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwKKwkJCQkJCQkgICAiXG4gIEFG VEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cgIik7CisJCW5lZWRzcGFjZSA9IHRydWU7CiAJfQor CWVsc2UgaWYgKHdjLT5ycFNraXBUbyA9PSBTVF9QQVNUX0xBU1RfUk9XKQorCXsKKwkJaWYgKG5l ZWRzcGFjZSkKKwkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJyAnKTsKKwkJYXBwZW5kU3Ry aW5nSW5mb1N0cmluZyhidWYsCisJCQkJCQkJICAgIlxuICBBRlRFUiBNQVRDSCBTS0lQIFBBU1Qg TEFTVCBST1cgIik7CisJCW5lZWRzcGFjZSA9IHRydWU7CisJfQorCWlmICh3Yy0+aW5pdGlhbCkK Kwl7CisJCWlmIChuZWVkc3BhY2UpCisJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICcgJyk7 CisJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiXG4gIElOSVRJQUwiKTsKKwkJbmVlZHNw YWNlID0gdHJ1ZTsKKwl9CisJaWYgKHdjLT5ycFBhdHRlcm4pCisJeworCQlpZiAobmVlZHNwYWNl KQorCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnICcpOworCQlhcHBlbmRTdHJpbmdJbmZv U3RyaW5nKGJ1ZiwgIlxuICBQQVRURVJOICIpOworCQlnZXRfcnVsZV9wYXR0ZXJuKHdjLT5ycFBh dHRlcm4sIGNvbnRleHQpOworCQluZWVkc3BhY2UgPSB0cnVlOworCX0KKworCWlmICh3Yy0+ZGVm aW5lQ2xhdXNlKQorCXsKKwkJaWYgKG5lZWRzcGFjZSkKKwkJCWFwcGVuZFN0cmluZ0luZm9DaGFy KGJ1ZiwgJyAnKTsKKwkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJcbiAgREVGSU5FXG4i KTsKKwkJZ2V0X3J1bGVfZGVmaW5lKHdjLT5kZWZpbmVDbGF1c2UsIGNvbnRleHQpOworCQlhcHBl bmRTdHJpbmdJbmZvQ2hhcihidWYsICcgJyk7CisJfQorCiAJYXBwZW5kU3RyaW5nSW5mb0NoYXIo YnVmLCAnKScpOwogfQogCkBAIC05OTM5LDYgKzEwMTExLDg5IEBAIGdldF9ydWxlX2V4cHIoTm9k ZSAqbm9kZSwgZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0LAogCQkJZ2V0X2Z1bmNfZXhwcigoRnVu Y0V4cHIgKikgbm9kZSwgY29udGV4dCwgc2hvd2ltcGxpY2l0KTsKIAkJCWJyZWFrOwogCisJCWNh c2UgVF9SUFJOYXZFeHByOgorCQkJeworCQkJCVJQUk5hdkV4cHIgKm5hdiA9IChSUFJOYXZFeHBy ICopIG5vZGU7CisJCQkJY29uc3QgY2hhciAqb3V0ZXJfZnVuYyA9IE5VTEw7CisJCQkJY29uc3Qg Y2hhciAqaW5uZXJfZnVuYzsKKworCQkJCXN3aXRjaCAobmF2LT5raW5kKQorCQkJCXsKKwkJCQkJ Y2FzZSBSUFJfTkFWX1BSRVY6CisJCQkJCQlpbm5lcl9mdW5jID0gIlBSRVYoIjsKKwkJCQkJCWJy ZWFrOworCQkJCQljYXNlIFJQUl9OQVZfTkVYVDoKKwkJCQkJCWlubmVyX2Z1bmMgPSAiTkVYVCgi OworCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgUlBSX05BVl9GSVJTVDoKKwkJCQkJCWlubmVyX2Z1 bmMgPSAiRklSU1QoIjsKKwkJCQkJCWJyZWFrOworCQkJCQljYXNlIFJQUl9OQVZfTEFTVDoKKwkJ CQkJCWlubmVyX2Z1bmMgPSAiTEFTVCgiOworCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgUlBSX05B Vl9QUkVWX0ZJUlNUOgorCQkJCQkJb3V0ZXJfZnVuYyA9ICJQUkVWKCI7CisJCQkJCQlpbm5lcl9m dW5jID0gIkZJUlNUKCI7CisJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBSUFJfTkFWX1BSRVZfTEFT VDoKKwkJCQkJCW91dGVyX2Z1bmMgPSAiUFJFVigiOworCQkJCQkJaW5uZXJfZnVuYyA9ICJMQVNU KCI7CisJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBSUFJfTkFWX05FWFRfRklSU1Q6CisJCQkJCQlv dXRlcl9mdW5jID0gIk5FWFQoIjsKKwkJCQkJCWlubmVyX2Z1bmMgPSAiRklSU1QoIjsKKwkJCQkJ CWJyZWFrOworCQkJCQljYXNlIFJQUl9OQVZfTkVYVF9MQVNUOgorCQkJCQkJb3V0ZXJfZnVuYyA9 ICJORVhUKCI7CisJCQkJCQlpbm5lcl9mdW5jID0gIkxBU1QoIjsKKwkJCQkJCWJyZWFrOworCQkJ CQlkZWZhdWx0OgorCQkJCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBSUFIgbmF2aWdhdGlv biBraW5kOiAlZCIsCisJCQkJCQkJIG5hdi0+a2luZCk7CisJCQkJCQlpbm5lcl9mdW5jID0gTlVM TDsJLyoga2VlcCBjb21waWxlciBxdWlldCAqLworCQkJCQkJYnJlYWs7CisJCQkJfQorCisJCQkJ aWYgKG91dGVyX2Z1bmMgIT0gTlVMTCkKKwkJCQl7CisJCQkJCS8qCisJCQkJCSAqIENvbXBvdW5k OiBQUkVWKEZJUlNUKGFyZyBbLCBpbm5lcl9vZmZzZXRdKSBbLAorCQkJCQkgKiBvdXRlcl9vZmZz ZXRdKQorCQkJCQkgKi8KKwkJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsIG91dGVyX2Z1 bmMpOworCQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgaW5uZXJfZnVuYyk7CisJCQkJ CWdldF9ydWxlX2V4cHIoKE5vZGUgKikgbmF2LT5hcmcsIGNvbnRleHQsIHNob3dpbXBsaWNpdCk7 CisJCQkJCWlmIChuYXYtPm9mZnNldF9hcmcgIT0gTlVMTCkKKwkJCQkJeworCQkJCQkJYXBwZW5k U3RyaW5nSW5mb1N0cmluZyhidWYsICIsICIpOworCQkJCQkJZ2V0X3J1bGVfZXhwcigoTm9kZSAq KSBuYXYtPm9mZnNldF9hcmcsIGNvbnRleHQsCisJCQkJCQkJCQkgIHNob3dpbXBsaWNpdCk7CisJ CQkJCX0KKwkJCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnKScpOworCQkJCQlpZiAobmF2 LT5jb21wb3VuZF9vZmZzZXRfYXJnICE9IE5VTEwpCisJCQkJCXsKKwkJCQkJCWFwcGVuZFN0cmlu Z0luZm9TdHJpbmcoYnVmLCAiLCAiKTsKKwkJCQkJCWdldF9ydWxlX2V4cHIoKE5vZGUgKikgbmF2 LT5jb21wb3VuZF9vZmZzZXRfYXJnLAorCQkJCQkJCQkJICBjb250ZXh0LCBzaG93aW1wbGljaXQp OworCQkJCQl9CisJCQkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJyknKTsKKwkJCQl9CisJ CQkJZWxzZQorCQkJCXsKKwkJCQkJLyogU2ltcGxlOiBGVU5DKGFyZyBbLCBvZmZzZXRdKSAqLwor CQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgaW5uZXJfZnVuYyk7CisJCQkJCWdldF9y dWxlX2V4cHIoKE5vZGUgKikgbmF2LT5hcmcsIGNvbnRleHQsIHNob3dpbXBsaWNpdCk7CisJCQkJ CWlmIChuYXYtPm9mZnNldF9hcmcgIT0gTlVMTCkKKwkJCQkJeworCQkJCQkJYXBwZW5kU3RyaW5n SW5mb1N0cmluZyhidWYsICIsICIpOworCQkJCQkJZ2V0X3J1bGVfZXhwcigoTm9kZSAqKSBuYXYt Pm9mZnNldF9hcmcsIGNvbnRleHQsCisJCQkJCQkJCQkgIHNob3dpbXBsaWNpdCk7CisJCQkJCX0K KwkJCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnKScpOworCQkJCX0KKwkJCX0KKwkJCWJy ZWFrOworCiAJCWNhc2UgVF9OYW1lZEFyZ0V4cHI6CiAJCQl7CiAJCQkJTmFtZWRBcmdFeHByICpu YSA9IChOYW1lZEFyZ0V4cHIgKikgbm9kZTsKLS0gCjIuNDMuMAoK ----Next_Part(Sat_May__2_14_03_04_2026_790)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v47-0004-Row-pattern-recognition-patch-planner.patch" RnJvbSAxYTlmMjA5Njc2YTlmMjA5NWJjZTAzNDExMzgwMjk2YjU5NzI5YjEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYXRzdW8gSXNoaWkgPGlzaGlpQHBvc3RncmVzcWwub3JnPgpE YXRlOiBTYXQsIDIgTWF5IDIwMjYgMTM6NDA6MjkgKzA5MDAKU3ViamVjdDogW1BBVENIIHY0NyA0 LzldIFJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIHBhdGNoIChwbGFubmVyKS4KCi0tLQogc3JjL2Jh Y2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgICAgICAgICAgICAgfCAgIDQyICsKIHNyYy9iYWNrZW5k L29wdGltaXplci9wYXRoL2FsbHBhdGhzLmMgICAgIHwgICA3OSArCiBzcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGF0aC9jb3N0c2l6ZS5jICAgICB8ICAgMjkgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BsYW4vTWFrZWZpbGUgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFu L2NyZWF0ZXBsYW4uYyAgIHwgIDQxNyArKysrLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4v bWVzb24uYnVpbGQgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5u ZXIuYyAgICAgIHwgICAxNyArLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcnByLmMgICAg ICAgICAgfCAxOTkzICsrKysrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BsYW4vc2V0cmVmcy5jICAgICAgfCAgIDI5ICstCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJl cC9wcmVwam9pbnRyZWUuYyB8ICAgIDkgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgg ICAgICAgICAgICAgfCAgMTAzICsrCiBzcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcnByLmggICAgICAg ICAgICAgICB8ICAgNjUgKwogMTIgZmlsZXMgY2hhbmdlZCwgMjc4MSBpbnNlcnRpb25zKCspLCA0 IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL29wdGltaXplci9w bGFuL3Jwci5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Jwci5o CgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2Vu ZC9ub2Rlcy9ub2RlRnVuY3MuYwppbmRleCBmOTY4YWM2ODMxNC4uNjUxZDA0OWNmYTIgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25v ZGVzL25vZGVGdW5jcy5jCkBAIC02OSw2ICs2OSw5IEBAIGV4cHJUeXBlKGNvbnN0IE5vZGUgKmV4 cHIpCiAJCWNhc2UgVF9NZXJnZVN1cHBvcnRGdW5jOgogCQkJdHlwZSA9ICgoY29uc3QgTWVyZ2VT dXBwb3J0RnVuYyAqKSBleHByKS0+bXNmdHlwZTsKIAkJCWJyZWFrOworCQljYXNlIFRfUlBSTmF2 RXhwcjoKKwkJCXR5cGUgPSAoKGNvbnN0IFJQUk5hdkV4cHIgKikgZXhwciktPnJlc3VsdHR5cGU7 CisJCQlicmVhazsKIAkJY2FzZSBUX1N1YnNjcmlwdGluZ1JlZjoKIAkJCXR5cGUgPSAoKGNvbnN0 IFN1YnNjcmlwdGluZ1JlZiAqKSBleHByKS0+cmVmcmVzdHlwZTsKIAkJCWJyZWFrOwpAQCAtODUz LDYgKzg1Niw5IEBAIGV4cHJDb2xsYXRpb24oY29uc3QgTm9kZSAqZXhwcikKIAkJY2FzZSBUX01l cmdlU3VwcG9ydEZ1bmM6CiAJCQljb2xsID0gKChjb25zdCBNZXJnZVN1cHBvcnRGdW5jICopIGV4 cHIpLT5tc2Zjb2xsaWQ7CiAJCQlicmVhazsKKwkJY2FzZSBUX1JQUk5hdkV4cHI6CisJCQljb2xs ID0gKChjb25zdCBSUFJOYXZFeHByICopIGV4cHIpLT5yZXN1bHRjb2xsaWQ7CisJCQlicmVhazsK IAkJY2FzZSBUX1N1YnNjcmlwdGluZ1JlZjoKIAkJCWNvbGwgPSAoKGNvbnN0IFN1YnNjcmlwdGlu Z1JlZiAqKSBleHByKS0+cmVmY29sbGlkOwogCQkJYnJlYWs7CkBAIC0xMTYyLDYgKzExNjgsOSBA QCBleHByU2V0Q29sbGF0aW9uKE5vZGUgKmV4cHIsIE9pZCBjb2xsYXRpb24pCiAJCWNhc2UgVF9N ZXJnZVN1cHBvcnRGdW5jOgogCQkJKChNZXJnZVN1cHBvcnRGdW5jICopIGV4cHIpLT5tc2Zjb2xs aWQgPSBjb2xsYXRpb247CiAJCQlicmVhazsKKwkJY2FzZSBUX1JQUk5hdkV4cHI6CisJCQkoKFJQ Uk5hdkV4cHIgKikgZXhwciktPnJlc3VsdGNvbGxpZCA9IGNvbGxhdGlvbjsKKwkJCWJyZWFrOwog CQljYXNlIFRfU3Vic2NyaXB0aW5nUmVmOgogCQkJKChTdWJzY3JpcHRpbmdSZWYgKikgZXhwcikt PnJlZmNvbGxpZCA9IGNvbGxhdGlvbjsKIAkJCWJyZWFrOwpAQCAtMTQzNyw2ICsxNDQ2LDkgQEAg ZXhwckxvY2F0aW9uKGNvbnN0IE5vZGUgKmV4cHIpCiAJCWNhc2UgVF9NZXJnZVN1cHBvcnRGdW5j OgogCQkJbG9jID0gKChjb25zdCBNZXJnZVN1cHBvcnRGdW5jICopIGV4cHIpLT5sb2NhdGlvbjsK IAkJCWJyZWFrOworCQljYXNlIFRfUlBSTmF2RXhwcjoKKwkJCWxvYyA9ICgoY29uc3QgUlBSTmF2 RXhwciAqKSBleHByKS0+bG9jYXRpb247CisJCQlicmVhazsKIAkJY2FzZSBUX1N1YnNjcmlwdGlu Z1JlZjoKIAkJCS8qIGp1c3QgdXNlIGNvbnRhaW5lciBhcmd1bWVudCdzIGxvY2F0aW9uICovCiAJ CQlsb2MgPSBleHByTG9jYXRpb24oKE5vZGUgKikgKChjb25zdCBTdWJzY3JpcHRpbmdSZWYgKikg ZXhwciktPnJlZmV4cHIpOwpAQCAtMjE5OCw2ICsyMjEwLDE4IEBAIGV4cHJlc3Npb25fdHJlZV93 YWxrZXJfaW1wbChOb2RlICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFr OworCQljYXNlIFRfUlBSTmF2RXhwcjoKKwkJCXsKKwkJCQlSUFJOYXZFeHByICpleHByID0gKFJQ Uk5hdkV4cHIgKikgbm9kZTsKKworCQkJCWlmIChXQUxLKGV4cHItPmFyZykpCisJCQkJCXJldHVy biB0cnVlOworCQkJCWlmIChleHByLT5vZmZzZXRfYXJnICYmIFdBTEsoZXhwci0+b2Zmc2V0X2Fy ZykpCisJCQkJCXJldHVybiB0cnVlOworCQkJCWlmIChleHByLT5jb21wb3VuZF9vZmZzZXRfYXJn ICYmIFdBTEsoZXhwci0+Y29tcG91bmRfb2Zmc2V0X2FyZykpCisJCQkJCXJldHVybiB0cnVlOwor CQkJfQorCQkJYnJlYWs7CiAJCWNhc2UgVF9TdWJzY3JpcHRpbmdSZWY6CiAJCQl7CiAJCQkJU3Vi c2NyaXB0aW5nUmVmICpzYnNyZWYgPSAoU3Vic2NyaXB0aW5nUmVmICopIG5vZGU7CkBAIC0yNDMx LDYgKzI0NTUsOCBAQCBleHByZXNzaW9uX3RyZWVfd2Fsa2VyX2ltcGwoTm9kZSAqbm9kZSwKIAkJ CQkJcmV0dXJuIHRydWU7CiAJCQkJaWYgKFdBTEsod2MtPmVuZE9mZnNldCkpCiAJCQkJCXJldHVy biB0cnVlOworCQkJCWlmIChXQUxLKHdjLT5kZWZpbmVDbGF1c2UpKQorCQkJCQlyZXR1cm4gdHJ1 ZTsKIAkJCX0KIAkJCWJyZWFrOwogCQljYXNlIFRfQ1RFQ3ljbGVDbGF1c2U6CkBAIC0yODIzLDYg KzI4NDksOCBAQCBxdWVyeV90cmVlX3dhbGtlcl9pbXBsKFF1ZXJ5ICpxdWVyeSwKIAkJCQlyZXR1 cm4gdHJ1ZTsKIAkJCWlmIChXQUxLKHdjLT5lbmRPZmZzZXQpKQogCQkJCXJldHVybiB0cnVlOwor CQkJaWYgKFdBTEsod2MtPmRlZmluZUNsYXVzZSkpCisJCQkJcmV0dXJuIHRydWU7CiAJCX0KIAl9 CiAKQEAgLTMxNDMsNiArMzE3MSwxOCBAQCBleHByZXNzaW9uX3RyZWVfbXV0YXRvcl9pbXBsKE5v ZGUgKm5vZGUsCiAJCQkJcmV0dXJuIChOb2RlICopIG5ld25vZGU7CiAJCQl9CiAJCQlicmVhazsK KwkJY2FzZSBUX1JQUk5hdkV4cHI6CisJCQl7CisJCQkJUlBSTmF2RXhwciAqbmF2ID0gKFJQUk5h dkV4cHIgKikgbm9kZTsKKwkJCQlSUFJOYXZFeHByICpuZXdub2RlOworCisJCQkJRkxBVENPUFko bmV3bm9kZSwgbmF2LCBSUFJOYXZFeHByKTsKKwkJCQlNVVRBVEUobmV3bm9kZS0+YXJnLCBuYXYt PmFyZywgRXhwciAqKTsKKwkJCQlNVVRBVEUobmV3bm9kZS0+b2Zmc2V0X2FyZywgbmF2LT5vZmZz ZXRfYXJnLCBFeHByICopOworCQkJCU1VVEFURShuZXdub2RlLT5jb21wb3VuZF9vZmZzZXRfYXJn LCBuYXYtPmNvbXBvdW5kX29mZnNldF9hcmcsIEV4cHIgKik7CisJCQkJcmV0dXJuIChOb2RlICop IG5ld25vZGU7CisJCQl9CisJCQlicmVhazsKIAkJY2FzZSBUX1N1YnNjcmlwdGluZ1JlZjoKIAkJ CXsKIAkJCQlTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiA9IChTdWJzY3JpcHRpbmdSZWYgKikgbm9k ZTsKQEAgLTM1NjUsNiArMzYwNSw3IEBAIGV4cHJlc3Npb25fdHJlZV9tdXRhdG9yX2ltcGwoTm9k ZSAqbm9kZSwKIAkJCQlNVVRBVEUobmV3bm9kZS0+b3JkZXJDbGF1c2UsIHdjLT5vcmRlckNsYXVz ZSwgTGlzdCAqKTsKIAkJCQlNVVRBVEUobmV3bm9kZS0+c3RhcnRPZmZzZXQsIHdjLT5zdGFydE9m ZnNldCwgTm9kZSAqKTsKIAkJCQlNVVRBVEUobmV3bm9kZS0+ZW5kT2Zmc2V0LCB3Yy0+ZW5kT2Zm c2V0LCBOb2RlICopOworCQkJCU1VVEFURShuZXdub2RlLT5kZWZpbmVDbGF1c2UsIHdjLT5kZWZp bmVDbGF1c2UsIExpc3QgKik7CiAJCQkJcmV0dXJuIChOb2RlICopIG5ld25vZGU7CiAJCQl9CiAJ CQlicmVhazsKQEAgLTM5MTQsNiArMzk1NSw3IEBAIHF1ZXJ5X3RyZWVfbXV0YXRvcl9pbXBsKFF1 ZXJ5ICpxdWVyeSwKIAkJCUZMQVRDT1BZKG5ld25vZGUsIHdjLCBXaW5kb3dDbGF1c2UpOwogCQkJ TVVUQVRFKG5ld25vZGUtPnN0YXJ0T2Zmc2V0LCB3Yy0+c3RhcnRPZmZzZXQsIE5vZGUgKik7CiAJ CQlNVVRBVEUobmV3bm9kZS0+ZW5kT2Zmc2V0LCB3Yy0+ZW5kT2Zmc2V0LCBOb2RlICopOworCQkJ TVVUQVRFKG5ld25vZGUtPmRlZmluZUNsYXVzZSwgd2MtPmRlZmluZUNsYXVzZSwgTGlzdCAqKTsK IAogCQkJcmVzdWx0bGlzdCA9IGxhcHBlbmQocmVzdWx0bGlzdCwgKE5vZGUgKikgbmV3bm9kZSk7 CiAJCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2FsbHBhdGhzLmMg Yi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9hbGxwYXRocy5jCmluZGV4IDYxMDkzZjIyMmEx Li40NzAwMjllNDJlMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvYWxs cGF0aHMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9hbGxwYXRocy5jCkBAIC0y NDYzLDYgKzI0NjMsMTcgQEAgZmluZF93aW5kb3dfcnVuX2NvbmRpdGlvbnMoUXVlcnkgKnN1YnF1 ZXJ5LCBBdHRyTnVtYmVyIGF0dG5vLAogCXdjbGF1c2UgPSAoV2luZG93Q2xhdXNlICopIGxpc3Rf bnRoKHN1YnF1ZXJ5LT53aW5kb3dDbGF1c2UsCiAJCQkJCQkJCQkJd2Z1bmMtPndpbnJlZiAtIDEp OwogCisJLyoKKwkgKiBJZiBhIERFRklORSBjbGF1c2UgZXhpc3RzLCB3ZSBjYW5ub3QgcHVzaCBk b3duIGEgcnVuIGNvbmRpdGlvbi4gSW4gdGhlCisJICogY2FzZSwgYSB3aW5kb3cgcGFydGl0aW9u IChvciBmcmFtZSkgaXMgZGl2aWRlZCBpbnRvIG11bHRpcGxlIHJlZHVjZWQKKwkgKiBmcmFtZXMg YW5kIGVhY2ggZnJhbWUgc2hvdWxkIGJlIGV2YWx1YXRlZCB0byB0aGUgZW5kIG9mIHRoZSBwYXJ0 aXRpb24KKwkgKiAob3IgZnVsbCBmcmFtZSBlbmQpLiBUaGlzIG1lYW5zIHdlIGNhbm5vdCBhcHBs eSB0aGUgcnVuIGNvbmRpdGlvbgorCSAqIG9wdGltaXphdGlvbiBiZWNhdXNlIGl0IHN0b3BzIGV2 YWx1YXRpb24gd2luZG93IGZ1bmN0aW9ucyBpbiBjZXJ0YWluCisJICogY2FzZXMuCisJICovCisJ aWYgKHdjbGF1c2UtPmRlZmluZUNsYXVzZSAhPSBOSUwpCisJCXJldHVybiBmYWxzZTsKKwogCXJl cS50eXBlID0gVF9TdXBwb3J0UmVxdWVzdFdGdW5jTW9ub3RvbmljOwogCXJlcS53aW5kb3dfZnVu YyA9IHdmdW5jOwogCXJlcS53aW5kb3dfY2xhdXNlID0gd2NsYXVzZTsKQEAgLTQ3MzksNiArNDc1 MCw3NCBAQCByZW1vdmVfdW51c2VkX3N1YnF1ZXJ5X291dHB1dHMoUXVlcnkgKnN1YnF1ZXJ5LCBS ZWxPcHRJbmZvICpyZWwsCiAJCWlmIChjb250YWluX3ZvbGF0aWxlX2Z1bmN0aW9ucyh0ZXhwcikp CiAJCQljb250aW51ZTsKIAorCQkvKgorCQkgKiBJZiBhbnkgUlBSIChSb3cgUGF0dGVybiBSZWNv Z25pdGlvbikgd2luZG93IGNsYXVzZSByZWZlcmVuY2VzIHRoaXMKKwkJICogY29sdW1uIGluIGl0 cyBERUZJTkUgY2xhdXNlLCBkb24ndCByZW1vdmUgaXQuICBUaGUgREVGSU5FCisJCSAqIGV4cHJl c3Npb24gbmVlZHMgdGhlc2UgY29sdW1ucyBpbiB0aGUgdHVwbGVzdG9yZSBzbG90IGZvciBwYXR0 ZXJuCisJCSAqIG1hdGNoaW5nIGV2YWx1YXRpb24sIGV2ZW4gaWYgdGhlIG91dGVyIHF1ZXJ5IGRv ZXNuJ3QgcmVmZXJlbmNlCisJCSAqIHRoZW0uCisJCSAqLworCQlpZiAoSXNBKHRleHByLCBWYXIp KQorCQl7CisJCQlWYXIJCSAgICp2YXIgPSAoVmFyICopIHRleHByOworCQkJTGlzdENlbGwgICAq d2xjOworCQkJYm9vbAkJbmVlZGVkX2J5X2RlZmluZSA9IGZhbHNlOworCisJCQlmb3JlYWNoKHds Yywgc3VicXVlcnktPndpbmRvd0NsYXVzZSkKKwkJCXsKKwkJCQlXaW5kb3dDbGF1c2UgKndjID0g bGZpcnN0X25vZGUoV2luZG93Q2xhdXNlLCB3bGMpOworCisJCQkJaWYgKHdjLT5kZWZpbmVDbGF1 c2UgIT0gTklMKQorCQkJCXsKKwkJCQkJTGlzdAkgICAqdmFycyA9IHB1bGxfdmFyX2NsYXVzZSgo Tm9kZSAqKSB3Yy0+ZGVmaW5lQ2xhdXNlLCAwKTsKKwkJCQkJTGlzdENlbGwgICAqdmxjOworCisJ CQkJCWZvcmVhY2godmxjLCB2YXJzKQorCQkJCQl7CisJCQkJCQlWYXIJCSAgICpkdmFyID0gKFZh ciAqKSBsZmlyc3QodmxjKTsKKworCQkJCQkJaWYgKGR2YXItPnZhcmF0dG5vID09IHZhci0+dmFy YXR0bm8pCisJCQkJCQl7CisJCQkJCQkJbmVlZGVkX2J5X2RlZmluZSA9IHRydWU7CisJCQkJCQkJ YnJlYWs7CisJCQkJCQl9CisJCQkJCX0KKwkJCQkJbGlzdF9mcmVlKHZhcnMpOworCQkJCQlpZiAo bmVlZGVkX2J5X2RlZmluZSkKKwkJCQkJCWJyZWFrOworCQkJCX0KKwkJCX0KKwkJCWlmIChuZWVk ZWRfYnlfZGVmaW5lKQorCQkJCWNvbnRpbnVlOworCQl9CisKKwkJLyoKKwkJICogSWYgaXQncyBh IHdpbmRvdyBmdW5jdGlvbiByZWZlcmVuY2luZyBhIHdpbmRvdyBjbGF1c2Ugd2l0aCBSUFIsCisJ CSAqIGRvbid0IHJlbW92ZSBpdC4gIEV2ZW4gd2hlbiB0aGUgd2luZG93IGZ1bmN0aW9uIHJlc3Vs dCBpcyB1bnVzZWQgYnkKKwkJICogdGhlIG91dGVyIHF1ZXJ5LCB0aGUgUlBSIHBhdHRlcm4gbWF0 Y2hpbmcgKGZyYW1lIHJlZHVjdGlvbiB2aWEKKwkJICogREVGSU5FL1BBVFRFUk4pIG11c3Qgc3Rp bGwgZXhlY3V0ZS4gIFJlcGxhY2luZyB0aGlzIHdpdGggTlVMTCB3b3VsZAorCQkgKiBsZWF2ZSBu byBhY3RpdmUgd2luZG93IGZ1bmN0aW9ucyBmb3IgdGhlIFdpbmRvd0NsYXVzZSwgY2F1c2luZyB0 aGUKKwkJICogcGxhbm5lciB0byBvbWl0IHRoZSBXaW5kb3dBZ2cgbm9kZSBlbnRpcmVseS4KKwkJ ICovCisJCWlmIChJc0EodGV4cHIsIFdpbmRvd0Z1bmMpKQorCQl7CisJCQlXaW5kb3dGdW5jICp3 ZnVuYyA9IChXaW5kb3dGdW5jICopIHRleHByOworCQkJTGlzdENlbGwgICAqd2xjOworCisJCQlm b3JlYWNoKHdsYywgc3VicXVlcnktPndpbmRvd0NsYXVzZSkKKwkJCXsKKwkJCQlXaW5kb3dDbGF1 c2UgKndjID0gbGZpcnN0X25vZGUoV2luZG93Q2xhdXNlLCB3bGMpOworCisJCQkJaWYgKHdjLT53 aW5yZWYgPT0gd2Z1bmMtPndpbnJlZiAmJgorCQkJCQl3Yy0+ZGVmaW5lQ2xhdXNlICE9IE5JTCkK KwkJCQl7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCX0KKwkJCWlmICh3bGMgIT0gTlVMTCkKKwkJ CQljb250aW51ZTsKKwkJfQorCiAJCS8qCiAJCSAqIE9LLCB3ZSBkb24ndCBuZWVkIGl0LiAgUmVw bGFjZSB0aGUgZXhwcmVzc2lvbiB3aXRoIGEgTlVMTCBjb25zdGFudC4KIAkJICogUHJlc2VydmUg dGhlIGV4cG9zZWQgdHlwZSBvZiB0aGUgZXhwcmVzc2lvbiwgaW4gY2FzZSBzb21ldGhpbmcKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2Nvc3RzaXplLmMgYi9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGF0aC9jb3N0c2l6ZS5jCmluZGV4IDFjNTc1ZTU2ZmY2Li5iMzhjYWQ5 ZjEyMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvY29zdHNpemUuYwor KysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9jb3N0c2l6ZS5jCkBAIC0xMDQsNiArMTA0 LDcgQEAKICNpbmNsdWRlICJvcHRpbWl6ZXIvcGxhY2Vob2xkZXIuaCIKICNpbmNsdWRlICJvcHRp bWl6ZXIvcGxhbmNhdC5oIgogI2luY2x1ZGUgIm9wdGltaXplci9yZXN0cmljdGluZm8uaCIKKyNp bmNsdWRlICJvcHRpbWl6ZXIvcnByLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNldHJlZS5oIgog I2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3NlbGZ1bmNzLmgi CkBAIC0zMjI4LDcgKzMyMjksMzUgQEAgY29zdF93aW5kb3dhZ2coUGF0aCAqcGF0aCwgUGxhbm5l ckluZm8gKnJvb3QsCiAJICogbWFueSByb3dzIHRoZSB3aW5kb3cgZnVuY3Rpb24gd2lsbCBmZXRj aCwgaXQncyBoYXJkIHRvIGRvIGJldHRlci4gIEluCiAJICogYW55IGNhc2UsIGl0J3MgYSBnb29k IGVzdGltYXRlIGZvciBhbGwgdGhlIGJ1aWx0LWluIHdpbmRvdyBmdW5jdGlvbnMsCiAJICogc28g d2UnbGwganVzdCBkbyB0aGlzIGZvciBub3cuCisJICoKKwkgKiBNb3Jlb3ZlciwgaWYgcm93IHBh dHRlcm4gcmVjb2duaXRpb24gaXMgdXNlZCwgd2UgY2hhcmdlIHRoZSBERUZJTkUKKwkgKiBleHBy ZXNzaW9ucyBvbmNlIHBlciB0dXBsZSBmb3IgZWFjaCB2YXJpYWJsZSB0aGF0IGFwcGVhcnMgaW4g UEFUVEVSTi4KIAkgKi8KKwlpZiAod2luY2xhdXNlLT5ycFBhdHRlcm4pCisJeworCQlMaXN0CSAg ICpwYXR0ZXJuX3ZhcnM7CisJCUxpc3RDZWxsICAgKmxjMjsKKwkJUXVhbENvc3QJZGVmY29zdHM7 CisKKwkJcGF0dGVybl92YXJzID0gY29sbGVjdFBhdHRlcm5WYXJpYWJsZXMod2luY2xhdXNlLT5y cFBhdHRlcm4pOworCisJCWZvcmVhY2gobGMyLCBwYXR0ZXJuX3ZhcnMpCisJCXsKKwkJCWNoYXIJ ICAgKnB0bmFtZSA9IHN0clZhbChsZmlyc3QobGMyKSk7CisKKwkJCWZvcmVhY2hfbm9kZShUYXJn ZXRFbnRyeSwgZGVmLCB3aW5jbGF1c2UtPmRlZmluZUNsYXVzZSkKKwkJCXsKKwkJCQlpZiAoIXN0 cmNtcChwdG5hbWUsIGRlZi0+cmVzbmFtZSkpCisJCQkJeworCQkJCQljb3N0X3F1YWxfZXZhbF9u b2RlKCZkZWZjb3N0cywgKE5vZGUgKikgZGVmLT5leHByLCByb290KTsKKwkJCQkJc3RhcnR1cF9j b3N0ICs9IGRlZmNvc3RzLnN0YXJ0dXA7CisJCQkJCXRvdGFsX2Nvc3QgKz0gZGVmY29zdHMucGVy X3R1cGxlICogaW5wdXRfdHVwbGVzOworCQkJCX0KKwkJCX0KKwkJfQorCQlsaXN0X2ZyZWVfZGVl cChwYXR0ZXJuX3ZhcnMpOworCX0KKwogCWZvcmVhY2gobGMsIHdpbmRvd0Z1bmNzKQogCXsKIAkJ V2luZG93RnVuYyAqd2Z1bmMgPSBsZmlyc3Rfbm9kZShXaW5kb3dGdW5jLCBsYyk7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL29w dGltaXplci9wbGFuL01ha2VmaWxlCmluZGV4IDgwZWYxNjJlNDg0Li43ZTAxNjc3ODlkOCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vTWFrZWZpbGUKKysrIGIvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3BsYW4vTWFrZWZpbGUKQEAgLTE5LDYgKzE5LDcgQEAgT0JKUyA9IFwK IAlwbGFuYWdnLm8gXAogCXBsYW5tYWluLm8gXAogCXBsYW5uZXIubyBcCisJcnByLm8gXAogCXNl dHJlZnMubyBcCiAJc3Vic2VsZWN0Lm8KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1p emVyL3BsYW4vY3JlYXRlcGxhbi5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRl cGxhbi5jCmluZGV4IGRlNmExODNkYTc5Li41MjIwNWNjNzE1OSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGlt aXplci9wbGFuL2NyZWF0ZXBsYW4uYwpAQCAtMTYsNiArMTYsNyBAQAogICovCiAjaW5jbHVkZSAi cG9zdGdyZXMuaCIKIAorI2luY2x1ZGUgImNvbW1vbi9pbnQuaCIKICNpbmNsdWRlICJhY2Nlc3Mv c3lzYXR0ci5oIgogI2luY2x1ZGUgImFjY2Vzcy90cmFuc2FtLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19jbGFzcy5oIgpAQCAtMzYsNiArMzcsNyBAQAogI2luY2x1ZGUgIm9wdGltaXplci9wcmVw LmgiCiAjaW5jbHVkZSAib3B0aW1pemVyL3Jlc3RyaWN0aW5mby5oIgogI2luY2x1ZGUgIm9wdGlt aXplci9zdWJzZWxlY3QuaCIKKyNpbmNsdWRlICJvcHRpbWl6ZXIvcnByLmgiCiAjaW5jbHVkZSAi b3B0aW1pemVyL3RsaXN0LmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2NsYXVzZS5oIgogI2lu Y2x1ZGUgInBhcnNlci9wYXJzZXRyZWUuaCIKQEAgLTI4OCw3ICsyOTAsMTEgQEAgc3RhdGljIE1l bW9pemUgKm1ha2VfbWVtb2l6ZShQbGFuICpsZWZ0dHJlZSwgT2lkICpoYXNob3BlcmF0b3JzLAog c3RhdGljIFdpbmRvd0FnZyAqbWFrZV93aW5kb3dhZ2coTGlzdCAqdGxpc3QsIFdpbmRvd0NsYXVz ZSAqd2MsCiAJCQkJCQkJCSBpbnQgcGFydE51bUNvbHMsIEF0dHJOdW1iZXIgKnBhcnRDb2xJZHgs IE9pZCAqcGFydE9wZXJhdG9ycywgT2lkICpwYXJ0Q29sbGF0aW9ucywKIAkJCQkJCQkJIGludCBv cmROdW1Db2xzLCBBdHRyTnVtYmVyICpvcmRDb2xJZHgsIE9pZCAqb3JkT3BlcmF0b3JzLCBPaWQg Km9yZENvbGxhdGlvbnMsCi0JCQkJCQkJCSBMaXN0ICpydW5Db25kaXRpb24sIExpc3QgKnF1YWws IGJvb2wgdG9wV2luZG93LAorCQkJCQkJCQkgTGlzdCAqcnVuQ29uZGl0aW9uLCBSUFNraXBUbyBy cFNraXBUbywKKwkJCQkJCQkJIFJQUlBhdHRlcm4gKmNvbXBpbGVkUGF0dGVybiwKKwkJCQkJCQkJ IExpc3QgKmRlZmluZUNsYXVzZSwKKwkJCQkJCQkJIEJpdG1hcHNldCAqZGVmaW5lTWF0Y2hTdGFy dERlcGVuZGVudCwKKwkJCQkJCQkJIExpc3QgKnF1YWwsIGJvb2wgdG9wV2luZG93LAogCQkJCQkJ CQkgUGxhbiAqbGVmdHRyZWUpOwogc3RhdGljIEdyb3VwICptYWtlX2dyb3VwKExpc3QgKnRsaXN0 LCBMaXN0ICpxdWFsLCBpbnQgbnVtR3JvdXBDb2xzLAogCQkJCQkJIEF0dHJOdW1iZXIgKmdycENv bElkeCwgT2lkICpncnBPcGVyYXRvcnMsIE9pZCAqZ3JwQ29sbGF0aW9ucywKQEAgLTI0NTcsNiAr MjQ2MywzNjMgQEAgY3JlYXRlX21pbm1heGFnZ19wbGFuKFBsYW5uZXJJbmZvICpyb290LCBNaW5N YXhBZ2dQYXRoICpiZXN0X3BhdGgpCiAJcmV0dXJuIHBsYW47CiB9CiAKKy8qCisgKiBOYXZPZmZz ZXRDb250ZXh0IC0gY29udGV4dCBmb3IgY29tcHV0ZV9uYXZfb2Zmc2V0cyB3YWxrZXIuCisgKgor ICogQ29sbGVjdHMgYm90aCBiYWNrd2FyZCByZWFjaCAoUFJFViwgTEFTVC13aXRoLW9mZnNldCwg Y29tcG91bmQKKyAqIFBSRVZfTEFTVC9ORVhUX0xBU1QpIGFuZCBmb3J3YXJkLWZyb20tbWF0Y2gt c3RhcnQgcmVhY2ggKEZJUlNULAorICogY29tcG91bmQgUFJFVl9GSVJTVC9ORVhUX0ZJUlNUKSBp biBhIHNpbmdsZSB0cmVlIHdhbGsuCisgKi8KK3R5cGVkZWYgc3RydWN0IE5hdk9mZnNldENvbnRl eHQKK3sKKwlpbnQ2NAkJbWF4T2Zmc2V0OwkJLyogbWF4IFBSRVYvTEFTVCBiYWNrd2FyZCBvZmZz ZXQgKD49IDApICovCisJYm9vbAkJbWF4TmVlZHNFdmFsOwkvKiBub24tY29uc3RhbnQgUFJFVi9M QVNUIG9mZnNldCBmb3VuZCAqLworCWJvb2wJCW1heE92ZXJmbG93OwkvKiBjb25zdGFudCBvZmZz ZXQgb3ZlcmZsb3cgZGV0ZWN0ZWQgKi8KKwlpbnQ2NAkJZmlyc3RPZmZzZXQ7CS8qIG1pbiBGSVJT VCBvZmZzZXQgKG1heSBiZSBuZWdhdGl2ZSBmb3IKKwkJCQkJCQkJICogUFJFVl9GSVJTVCkgKi8K Kwlib29sCQloYXNGaXJzdDsJCS8qIGFueSBGSVJTVCBub2RlIGZvdW5kICovCisJYm9vbAkJZmly c3ROZWVkc0V2YWw7IC8qIG5vbi1jb25zdGFudCBGSVJTVCBvZmZzZXQgZm91bmQgKi8KK30gTmF2 T2Zmc2V0Q29udGV4dDsKKworLyoKKyAqIEhlbHBlcjogZXh0cmFjdCBjb25zdGFudCBvZmZzZXQg ZnJvbSBhbiBleHByZXNzaW9uLCBoYW5kbGluZyBOVUxML25lZ2F0aXZlLgorICogSWYgZXhwciBp cyBOVUxMLCByZXR1cm5zIGRlZmF1bHRPZmZzZXQuCisgKiBSZXR1cm5zIHRydWUgaWYgY29uc3Rh bnQsIGZhbHNlIGlmIG5vbi1jb25zdGFudCAoUGFyYW0sIGNhc3QsIGV0Yy4pLgorICovCitzdGF0 aWMgYm9vbAorZXh0cmFjdF9jb25zdF9vZmZzZXQoRXhwciAqZXhwciwgaW50NjQgZGVmYXVsdE9m ZnNldCwgaW50NjQgKnJlc3VsdCkKK3sKKwlpZiAoZXhwciA9PSBOVUxMKQorCXsKKwkJKnJlc3Vs dCA9IGRlZmF1bHRPZmZzZXQ7CisJCXJldHVybiB0cnVlOworCX0KKworCWlmIChJc0EoZXhwciwg Q29uc3QpKQorCXsKKwkJQ29uc3QJICAgKmMgPSAoQ29uc3QgKikgZXhwcjsKKworCQlpZiAoYy0+ Y29uc3Rpc251bGwpCisJCQkqcmVzdWx0ID0gMDsJCS8qIHJ1bnRpbWUgZXJyb3I7IHNhZmUgcGxh Y2Vob2xkZXIgKi8KKwkJZWxzZQorCQl7CisJCQkqcmVzdWx0ID0gRGF0dW1HZXRJbnQ2NChjLT5j b25zdHZhbHVlKTsKKwkJCWlmICgqcmVzdWx0IDwgMCkKKwkJCQkqcmVzdWx0ID0gMDsJLyogcnVu dGltZSBlcnJvcjsgc2FmZSBwbGFjZWhvbGRlciAqLworCQl9CisJCXJldHVybiB0cnVlOworCX0K KworCXJldHVybiBmYWxzZTsJCQkJLyogbm9uLWNvbnN0YW50ICovCit9CisKKy8qCisgKiBuYXZf b2Zmc2V0X3dhbGtlcgorICoJCUV4cHJlc3Npb24gdHJlZSB3YWxrZXIgZm9yIGNvbXB1dGVfbmF2 X29mZnNldHMuCisgKgorICogRm9yIGVhY2ggUlBSTmF2RXhwciBmb3VuZCwgZXh0cmFjdCBpdHMg Y29uc3RhbnQgb2Zmc2V0KHMpIGFuZCB1cGRhdGUgdGhlCisgKiBOYXZPZmZzZXRDb250ZXh0IHdp dGggdGhlIG1heGltdW0gYmFja3dhcmQgcmVhY2ggKG1heE9mZnNldCkgYW5kIG1pbmltdW0KKyAq IGZvcndhcmQgcmVhY2ggKGZpcnN0T2Zmc2V0KS4gIEhhbmRsZXMgc2ltcGxlIG5hdmlnYXRpb24g KFBSRVYsIE5FWFQsCisgKiBGSVJTVCwgTEFTVCkgYW5kIGNvbXBvdW5kIGZvcm1zIChQUkVWX0ZJ UlNULCBORVhUX0ZJUlNULCBQUkVWX0xBU1QsCisgKiBORVhUX0xBU1QpIGJ5IGNvbWJpbmluZyBp bm5lciBhbmQgb3V0ZXIgb2Zmc2V0cy4KKyAqCisgKiBOb24tY29uc3RhbnQgb2Zmc2V0cyBzZXQg bWF4TmVlZHNFdmFsIG9yIGZpcnN0TmVlZHNFdmFsLiAgT3ZlcmZsb3cgc2V0cworICogbWF4T3Zl cmZsb3cgb3IgZmlyc3RPdmVyZmxvdyBmb3IgUkVUQUlOX0FMTCBmYWxsYmFjay4KKyAqLworc3Rh dGljIGJvb2wKK25hdl9vZmZzZXRfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmN0eCkKK3sKKwlO YXZPZmZzZXRDb250ZXh0ICpjb250ZXh0ID0gKE5hdk9mZnNldENvbnRleHQgKikgY3R4OworCisJ aWYgKG5vZGUgPT0gTlVMTCkKKwkJcmV0dXJuIGZhbHNlOworCisJaWYgKElzQShub2RlLCBSUFJO YXZFeHByKSkKKwl7CisJCVJQUk5hdkV4cHIgKm5hdiA9IChSUFJOYXZFeHByICopIG5vZGU7CisK KwkJLyoKKwkJICogU2ltcGxlIFBSRVYodiwgTikgYW5kIExBU1QodiwgTik6IGJhY2t3YXJkIHJl YWNoIGZyb20gY3VycmVudHBvcy4KKwkJICogTEFTVCB3aXRob3V0IG9mZnNldCA9IGN1cnJlbnRw b3MsIG5vIGJhY2t3YXJkIHJlYWNoLiBORVhUOiBmb3J3YXJkCisJCSAqIG9ubHksIGlycmVsZXZh bnQgZm9yIHRyaW0uCisJCSAqLworCQlpZiAobmF2LT5raW5kID09IFJQUl9OQVZfUFJFViB8fAor CQkJKG5hdi0+a2luZCA9PSBSUFJfTkFWX0xBU1QgJiYgbmF2LT5vZmZzZXRfYXJnICE9IE5VTEwp KQorCQl7CisJCQlpZiAoIWNvbnRleHQtPm1heE5lZWRzRXZhbCkKKwkJCXsKKwkJCQlpbnQ2NAkJ b2Zmc2V0OworCisJCQkJaWYgKGV4dHJhY3RfY29uc3Rfb2Zmc2V0KG5hdi0+b2Zmc2V0X2FyZywg MSwgJm9mZnNldCkpCisJCQkJCWNvbnRleHQtPm1heE9mZnNldCA9IE1heChjb250ZXh0LT5tYXhP ZmZzZXQsIG9mZnNldCk7CisJCQkJZWxzZQorCQkJCQljb250ZXh0LT5tYXhOZWVkc0V2YWwgPSB0 cnVlOworCQkJfQorCQl9CisKKwkJLyoKKwkJICogU2ltcGxlIEZJUlNUKHYsIE4pOiBmb3J3YXJk IHJlYWNoIGZyb20gbWF0Y2hfc3RhcnQuIFNtYWxsZXIgTiBtZWFucworCQkgKiBvbGRlciByb3dz IG5lZWRlZC4KKwkJICovCisJCWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9GSVJTVCkKKwkJewor CQkJY29udGV4dC0+aGFzRmlyc3QgPSB0cnVlOworCisJCQlpZiAoIWNvbnRleHQtPmZpcnN0TmVl ZHNFdmFsKQorCQkJeworCQkJCWludDY0CQlvZmZzZXQ7CisKKwkJCQlpZiAoZXh0cmFjdF9jb25z dF9vZmZzZXQobmF2LT5vZmZzZXRfYXJnLCAwLCAmb2Zmc2V0KSkKKwkJCQkJY29udGV4dC0+Zmly c3RPZmZzZXQgPSBNaW4oY29udGV4dC0+Zmlyc3RPZmZzZXQsIG9mZnNldCk7CisJCQkJZWxzZQor CQkJCQljb250ZXh0LT5maXJzdE5lZWRzRXZhbCA9IHRydWU7CisJCQl9CisJCX0KKworCQkvKgor CQkgKiBDb21wb3VuZCBQUkVWX0xBU1QgLyBORVhUX0xBU1Q6IGJhc2UgPSBjdXJyZW50cG9zLiBQ UkVWX0xBU1QodiwgTiwKKwkJICogTSk6IHRhcmdldCA9IGN1cnJlbnRwb3MgLSBOIC0gTSAtPiBs b29rYmFjayA9IE4gKyBNIE5FWFRfTEFTVCh2LCBOLAorCQkgKiBNKTogdGFyZ2V0ID0gY3VycmVu dHBvcyAtIE4gKyBNIC0+IGxvb2tiYWNrID0gbWF4KE4gLSBNLCAwKQorCQkgKi8KKwkJaWYgKG5h di0+a2luZCA9PSBSUFJfTkFWX1BSRVZfTEFTVCB8fAorCQkJbmF2LT5raW5kID09IFJQUl9OQVZf TkVYVF9MQVNUKQorCQl7CisJCQlpZiAoIWNvbnRleHQtPm1heE5lZWRzRXZhbCkKKwkJCXsKKwkJ CQlpbnQ2NAkJaW5uZXIsCisJCQkJCQkJb3V0ZXIsCisJCQkJCQkJY29tYmluZWQ7CisKKwkJCQlp ZiAoZXh0cmFjdF9jb25zdF9vZmZzZXQobmF2LT5vZmZzZXRfYXJnLCAwLCAmaW5uZXIpICYmCisJ CQkJCWV4dHJhY3RfY29uc3Rfb2Zmc2V0KG5hdi0+Y29tcG91bmRfb2Zmc2V0X2FyZywgMSwgJm91 dGVyKSkKKwkJCQl7CisJCQkJCWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWX0xBU1QpCisJ CQkJCXsKKwkJCQkJCWlmIChwZ19hZGRfczY0X292ZXJmbG93KGlubmVyLCBvdXRlciwgJmNvbWJp bmVkKSkKKwkJCQkJCXsKKwkJCQkJCQljb250ZXh0LT5tYXhPdmVyZmxvdyA9IHRydWU7CisJCQkJ CQkJcmV0dXJuIGZhbHNlOworCQkJCQkJfQorCQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJCWNvbWJp bmVkID0gKGlubmVyID4gb3V0ZXIpID8gaW5uZXIgLSBvdXRlciA6IDA7CisKKwkJCQkJY29udGV4 dC0+bWF4T2Zmc2V0ID0gTWF4KGNvbnRleHQtPm1heE9mZnNldCwgY29tYmluZWQpOworCQkJCX0K KwkJCQllbHNlCisJCQkJCWNvbnRleHQtPm1heE5lZWRzRXZhbCA9IHRydWU7CisJCQl9CisJCX0K KworCQkvKgorCQkgKiBDb21wb3VuZCBQUkVWX0ZJUlNUIC8gTkVYVF9GSVJTVDogYmFzZSA9IG1h dGNoX3N0YXJ0LiBQUkVWX0ZJUlNUKHYsCisJCSAqIE4sIE0pOiB0YXJnZXQgPSBtYXRjaF9zdGFy dCArIE4gLSBNIE5FWFRfRklSU1QodiwgTiwgTSk6IHRhcmdldCA9CisJCSAqIG1hdGNoX3N0YXJ0 ICsgTiArIE0gVGhlIGNvbWJpbmVkIG9mZnNldCAoTisvLU0pIGZyb20gbWF0Y2hfc3RhcnQKKwkJ ICogY2FuIGJlIG5lZ2F0aXZlLCBtZWFuaW5nIHJvd3MgYmVmb3JlIG1hdGNoX3N0YXJ0IGFyZSBu ZWVkZWQuCisJCSAqLworCQlpZiAobmF2LT5raW5kID09IFJQUl9OQVZfUFJFVl9GSVJTVCB8fAor CQkJbmF2LT5raW5kID09IFJQUl9OQVZfTkVYVF9GSVJTVCkKKwkJeworCQkJY29udGV4dC0+aGFz Rmlyc3QgPSB0cnVlOworCisJCQlpZiAoIWNvbnRleHQtPmZpcnN0TmVlZHNFdmFsKQorCQkJewor CQkJCWludDY0CQlpbm5lciwKKwkJCQkJCQlvdXRlciwKKwkJCQkJCQljb21iaW5lZDsKKworCQkJ CWlmIChleHRyYWN0X2NvbnN0X29mZnNldChuYXYtPm9mZnNldF9hcmcsIDAsICZpbm5lcikgJiYK KwkJCQkJZXh0cmFjdF9jb25zdF9vZmZzZXQobmF2LT5jb21wb3VuZF9vZmZzZXRfYXJnLCAxLCAm b3V0ZXIpKQorCQkJCXsKKwkJCQkJaWYgKG5hdi0+a2luZCA9PSBSUFJfTkFWX1BSRVZfRklSU1Qp CisJCQkJCXsKKwkJCQkJCS8qCisJCQkJCQkgKiBjb21iaW5lZCA9IGlubmVyIC0gb3V0ZXIuICBC b3RoIGFyZSBub24tbmVnYXRpdmUsCisJCQkJCQkgKiBzbyB0aGUgcmVzdWx0ID49IC1JTlQ2NF9N QVgsIHdoaWNoIGNhbm5vdCB1bmRlcmZsb3cKKwkJCQkJCSAqIGludDY0LiAgTm8gb3ZlcmZsb3cg Y2hlY2sgbmVlZGVkLgorCQkJCQkJICovCisJCQkJCQljb21iaW5lZCA9IGlubmVyIC0gb3V0ZXI7 CisJCQkJCX0KKwkJCQkJZWxzZQorCQkJCQl7CisJCQkJCQkvKgorCQkJCQkJICogTkVYVF9GSVJT VDogY29tYmluZWQgPSBpbm5lciArIG91dGVyLiAgVGhpcyBjYW4KKwkJCQkJCSAqIG92ZXJmbG93 LCBidXQgdGhlIHJlc3VsdCBpcyBhbHdheXMgPj0gMCwgc28gaXQKKwkJCQkJCSAqIG5ldmVyIHVw ZGF0ZXMgZmlyc3RPZmZzZXQgKHdoaWNoIHRyYWNrcyB0aGUKKwkJCQkJCSAqIG1pbmltdW0pLiAg Q2xhbXAgdG8gSU5UNjRfTUFYIG9uIG92ZXJmbG93LgorCQkJCQkJICovCisJCQkJCQlpZiAocGdf YWRkX3M2NF9vdmVyZmxvdyhpbm5lciwgb3V0ZXIsICZjb21iaW5lZCkpCisJCQkJCQkJY29tYmlu ZWQgPSBJTlQ2NF9NQVg7CisJCQkJCX0KKworCQkJCQljb250ZXh0LT5maXJzdE9mZnNldCA9IE1p bihjb250ZXh0LT5maXJzdE9mZnNldCwgY29tYmluZWQpOworCQkJCX0KKwkJCQllbHNlCisJCQkJ CWNvbnRleHQtPmZpcnN0TmVlZHNFdmFsID0gdHJ1ZTsKKwkJCX0KKwkJfQorCisJCS8qIERvbid0 IHdhbGsgaW50byBSUFJOYXZFeHByIGNoaWxkcmVuICovCisJCXJldHVybiBmYWxzZTsKKwl9CisK KwlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBuYXZfb2Zmc2V0X3dhbGtlciwg Y3R4KTsKK30KKworLyoKKyAqIGNvbXB1dGVfbmF2X29mZnNldHMKKyAqCQlDb21wdXRlIG5hdmln YXRpb24gb2Zmc2V0cyBmb3IgdHVwbGVzdG9yZSB0cmltIGluIGEgc2luZ2xlIHBhc3MuCisgKgor ICogV2Fsa3MgYWxsIERFRklORSBjbGF1c2UgZXhwcmVzc2lvbnMgb25jZSwgY29tcHV0aW5nOgor ICogICAtIG1heE9mZnNldDogbWF4IGJhY2t3YXJkIHJlYWNoIGZyb20gUFJFViwgTEFTVC13aXRo LW9mZnNldCwKKyAqICAgICBjb21wb3VuZCBQUkVWX0xBU1QvTkVYVF9MQVNUCisgKiAgIC0gaGFz Rmlyc3QvZmlyc3RPZmZzZXQ6IG1pbiBmb3J3YXJkLWZyb20tbWF0Y2gtc3RhcnQgcmVhY2ggZnJv bQorICogICAgIEZJUlNULCBjb21wb3VuZCBQUkVWX0ZJUlNUL05FWFRfRklSU1QKKyAqLworc3Rh dGljIHZvaWQKK2NvbXB1dGVfbmF2X29mZnNldHMoTGlzdCAqZGVmaW5lQ2xhdXNlLAorCQkJCQlS UFJOYXZPZmZzZXRLaW5kICptYXhLaW5kLCBpbnQ2NCAqbWF4UmVzdWx0LAorCQkJCQlib29sICpo YXNGaXJzdCwKKwkJCQkJUlBSTmF2T2Zmc2V0S2luZCAqZmlyc3RLaW5kLCBpbnQ2NCAqZmlyc3RS ZXN1bHQpCit7CisJTmF2T2Zmc2V0Q29udGV4dCBjdHg7CisJTGlzdENlbGwgICAqbGM7CisKKwlj dHgubWF4T2Zmc2V0ID0gMDsKKwljdHgubWF4TmVlZHNFdmFsID0gZmFsc2U7CisJY3R4Lm1heE92 ZXJmbG93ID0gZmFsc2U7CisJY3R4LmZpcnN0T2Zmc2V0ID0gSU5UNjRfTUFYOwkvKiBzZW50aW5l bDogbm8gRklSU1QgZm91bmQgeWV0ICovCisJY3R4Lmhhc0ZpcnN0ID0gZmFsc2U7CisJY3R4LmZp cnN0TmVlZHNFdmFsID0gZmFsc2U7CisKKwlmb3JlYWNoKGxjLCBkZWZpbmVDbGF1c2UpCisJewor CQlUYXJnZXRFbnRyeSAqdGUgPSAoVGFyZ2V0RW50cnkgKikgbGZpcnN0KGxjKTsKKworCQluYXZf b2Zmc2V0X3dhbGtlcigoTm9kZSAqKSB0ZS0+ZXhwciwgJmN0eCk7CisJfQorCisJLyogTWF4IGJh Y2t3YXJkIG9mZnNldCAqLworCWlmIChjdHgubWF4T3ZlcmZsb3cpCisJeworCQkqbWF4S2luZCA9 IFJQUl9OQVZfT0ZGU0VUX1JFVEFJTl9BTEw7CisJCSptYXhSZXN1bHQgPSAwOworCX0KKwllbHNl IGlmIChjdHgubWF4TmVlZHNFdmFsKQorCXsKKwkJKm1heEtpbmQgPSBSUFJfTkFWX09GRlNFVF9O RUVEU19FVkFMOworCQkqbWF4UmVzdWx0ID0gMDsKKwl9CisJZWxzZQorCXsKKwkJKm1heEtpbmQg PSBSUFJfTkFWX09GRlNFVF9GSVhFRDsKKwkJKm1heFJlc3VsdCA9IGN0eC5tYXhPZmZzZXQ7CisJ fQorCisJLyogRmlyc3Qgb2Zmc2V0IChjYW4gYmUgbmVnYXRpdmUgZm9yIGNvbXBvdW5kIFBSRVZf RklSU1QpICovCisJKmhhc0ZpcnN0ID0gY3R4Lmhhc0ZpcnN0OworCWlmIChjdHguaGFzRmlyc3Qp CisJeworCQlpZiAoY3R4LmZpcnN0TmVlZHNFdmFsKQorCQl7CisJCQkqZmlyc3RLaW5kID0gUlBS X05BVl9PRkZTRVRfTkVFRFNfRVZBTDsKKwkJCSpmaXJzdFJlc3VsdCA9IDA7CisJCX0KKwkJZWxz ZSBpZiAoY3R4LmZpcnN0T2Zmc2V0ID09IElOVDY0X01BWCkKKwkJeworCQkJKmZpcnN0S2luZCA9 IFJQUl9OQVZfT0ZGU0VUX0ZJWEVEOworCQkJKmZpcnN0UmVzdWx0ID0gMDsJLyogb25seSBpbXBs aWNpdCBGSVJTVCh2KSAqLworCQl9CisJCWVsc2UKKwkJeworCQkJKmZpcnN0S2luZCA9IFJQUl9O QVZfT0ZGU0VUX0ZJWEVEOworCQkJKmZpcnN0UmVzdWx0ID0gY3R4LmZpcnN0T2Zmc2V0OyAvKiBt YXkgYmUgbmVnYXRpdmUgKi8KKwkJfQorCX0KKwllbHNlCisJeworCQkqZmlyc3RLaW5kID0gUlBS X05BVl9PRkZTRVRfRklYRUQ7CisJCSpmaXJzdFJlc3VsdCA9IDA7CisJfQorfQorCisvKgorICog aGFzX21hdGNoX3N0YXJ0X2RlcGVuZGVuY3kKKyAqCQlDaGVjayBpZiBhbiBleHByZXNzaW9uIHRy ZWUgY29udGFpbnMgbmF2aWdhdGlvbiB0aGF0IGRlcGVuZHMgb24KKyAqCQltYXRjaF9zdGFydDog RklSU1QsIExBU1Qtd2l0aC1vZmZzZXQsIG9yIGNvbXBvdW5kIFBSRVZfRklSU1QvCisgKgkJTkVY VF9GSVJTVC9QUkVWX0xBU1QvTkVYVF9MQVNUIHdpdGggb2Zmc2V0LiAgU3VjaCBleHByZXNzaW9u cworICoJCXJlcXVpcmUgcGVyLWNvbnRleHQgcmUtZXZhbHVhdGlvbiBkdXJpbmcgTkZBIHByb2Nl c3NpbmcuCisgKgorICogTEFTVCB3aXRob3V0IG9mZnNldCBhbHdheXMgcmVzb2x2ZXMgdG8gY3Vy cmVudHBvcyBhbmQgaXMKKyAqIG1hdGNoX3N0YXJ0LWluZGVwZW5kZW50LgorICovCitzdGF0aWMg Ym9vbAoraGFzX21hdGNoX3N0YXJ0X2RlcGVuZGVuY3koTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4 dCkKK3sKKwlpZiAobm9kZSA9PSBOVUxMKQorCQlyZXR1cm4gZmFsc2U7CisKKwlpZiAoSXNBKG5v ZGUsIFJQUk5hdkV4cHIpKQorCXsKKwkJUlBSTmF2RXhwciAqbmF2ID0gKFJQUk5hdkV4cHIgKikg bm9kZTsKKworCQlpZiAobmF2LT5raW5kID09IFJQUl9OQVZfRklSU1QpCisJCQlyZXR1cm4gdHJ1 ZTsKKwkJaWYgKG5hdi0+a2luZCA9PSBSUFJfTkFWX0xBU1QgJiYgbmF2LT5vZmZzZXRfYXJnICE9 IE5VTEwpCisJCQlyZXR1cm4gdHJ1ZTsKKworCQkvKiBDb21wb3VuZCBraW5kcyB3aXRoIEZJUlNU IGJhc2UgZGVwZW5kIG9uIG1hdGNoX3N0YXJ0ICovCisJCWlmIChuYXYtPmtpbmQgPT0gUlBSX05B Vl9QUkVWX0ZJUlNUIHx8CisJCQluYXYtPmtpbmQgPT0gUlBSX05BVl9ORVhUX0ZJUlNUKQorCQkJ cmV0dXJuIHRydWU7CisKKwkJLyoKKwkJICogUFJFVl9MQVNUL05FWFRfTEFTVDogaW5uZXIgaXMg TEFTVCwgd2hpY2ggdXNlcyBjdXJyZW50cG9zLgorCQkgKiBtYXRjaF9zdGFydC1kZXBlbmRlbnQg b25seSBpZiBpbm5lciBoYXMgb2Zmc2V0IChjbGFtcGVkIHRvCisJCSAqIG1hdGNoX3N0YXJ0KS4K KwkJICovCisJCWlmICgobmF2LT5raW5kID09IFJQUl9OQVZfUFJFVl9MQVNUIHx8CisJCQkgbmF2 LT5raW5kID09IFJQUl9OQVZfTkVYVF9MQVNUKSAmJgorCQkJbmF2LT5vZmZzZXRfYXJnICE9IE5V TEwpCisJCQlyZXR1cm4gdHJ1ZTsKKworCQkvKiBDaGVjayBjaGlsZHJlbiAoYXJnIG1heSBjb250 YWluIGZ1cnRoZXIgbmF2IGV4cHJlc3Npb25zKSAqLworCQlyZXR1cm4gaGFzX21hdGNoX3N0YXJ0 X2RlcGVuZGVuY3koKE5vZGUgKikgbmF2LT5hcmcsIGNvbnRleHQpOworCX0KKworCXJldHVybiBl eHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIGhhc19tYXRjaF9zdGFydF9kZXBlbmRlbmN5LCBO VUxMKTsKK30KKworLyoKKyAqIGNvbXB1dGVfbWF0Y2hfc3RhcnRfZGVwZW5kZW50CisgKgkJQnVp bGQgYSBCaXRtYXBzZXQgb2YgREVGSU5FIHZhcmlhYmxlIGluZGljZXMgd2hvc2UgZXhwcmVzc2lv bnMKKyAqCQlkZXBlbmQgb24gbWF0Y2hfc3RhcnQgKGNvbnRhaW4gRklSU1QsIExBU1Qtd2l0aC1v ZmZzZXQsIG9yCisgKgkJY29tcG91bmQgUFJFVl9GSVJTVC9ORVhUX0ZJUlNUL1BSRVZfTEFTVC9O RVhUX0xBU1Qgd2l0aCBvZmZzZXQpLgorICoKKyAqIFZhcmlhYmxlcyBpbiB0aGlzIHNldCByZXF1 aXJlIHBlci1jb250ZXh0IHJlLWV2YWx1YXRpb24gZHVyaW5nIE5GQQorICogcHJvY2Vzc2luZywg YmVjYXVzZSBkaWZmZXJlbnQgY29udGV4dHMgbWF5IGhhdmUgZGlmZmVyZW50IG1hdGNoX3N0YXJ0 CisgKiB2YWx1ZXMuCisgKi8KK3N0YXRpYyBCaXRtYXBzZXQgKgorY29tcHV0ZV9tYXRjaF9zdGFy dF9kZXBlbmRlbnQoTGlzdCAqZGVmaW5lQ2xhdXNlKQoreworCUJpdG1hcHNldCAgKnJlc3VsdCA9 IE5VTEw7CisJTGlzdENlbGwgICAqbGM7CisJaW50CQkJdmFySWR4ID0gMDsKKworCWZvcmVhY2go bGMsIGRlZmluZUNsYXVzZSkKKwl7CisJCVRhcmdldEVudHJ5ICp0ZSA9IChUYXJnZXRFbnRyeSAq KSBsZmlyc3QobGMpOworCisJCWlmIChoYXNfbWF0Y2hfc3RhcnRfZGVwZW5kZW5jeSgoTm9kZSAq KSB0ZS0+ZXhwciwgTlVMTCkpCisJCQlyZXN1bHQgPSBibXNfYWRkX21lbWJlcihyZXN1bHQsIHZh cklkeCk7CisKKwkJdmFySWR4Kys7CisJfQorCisJcmV0dXJuIHJlc3VsdDsKK30KKwogLyoKICAq IGNyZWF0ZV93aW5kb3dhZ2dfcGxhbgogICoKQEAgLTI0ODEsNiArMjg0NCwxMSBAQCBjcmVhdGVf d2luZG93YWdnX3BsYW4oUGxhbm5lckluZm8gKnJvb3QsIFdpbmRvd0FnZ1BhdGggKmJlc3RfcGF0 aCkKIAlPaWQJCSAgICpvcmRPcGVyYXRvcnM7CiAJT2lkCQkgICAqb3JkQ29sbGF0aW9uczsKIAlM aXN0Q2VsbCAgICpsYzsKKwlMaXN0CSAgICpkZWZpbmVWYXJpYWJsZUxpc3QgPSBOSUw7CisJTGlz dAkgICAqZmlsdGVyZWREZWZpbmVDbGF1c2UgPSBOSUw7CisJUlBSUGF0dGVybiAqY29tcGlsZWRQ YXR0ZXJuID0gTlVMTDsKKwlCaXRtYXBzZXQgICptYXRjaFN0YXJ0RGVwZW5kZW50ID0gTlVMTDsK KwogCiAJLyoKIAkgKiBDaG9pY2Ugb2YgdGxpc3QgaGVyZSBpcyBtb3RpdmF0ZWQgYnkgdGhlIGZh Y3QgdGhhdCBXaW5kb3dBZ2cgd2lsbCBiZQpAQCAtMjUzMSw2ICsyODk5LDI4IEBAIGNyZWF0ZV93 aW5kb3dhZ2dfcGxhbihQbGFubmVySW5mbyAqcm9vdCwgV2luZG93QWdnUGF0aCAqYmVzdF9wYXRo KQogCQlvcmROdW1Db2xzKys7CiAJfQogCisJLyogQnVpbGQgUlBSIHBhdHRlcm4gYW5kIGRlZmlu ZVZhcmlhYmxlTGlzdCAqLworCWlmICh3Yy0+cnBQYXR0ZXJuKQorCXsKKwkJLyoKKwkJICogQnVp bGQgZGVmaW5lVmFyaWFibGVMaXN0IGZyb20gZGVmaW5lQ2xhdXNlLiAgVGhlIHBhcnNlciBhbHJl YWR5CisJCSAqIHJlamVjdHMgREVGSU5FIHZhcmlhYmxlcyBub3QgdXNlZCBpbiBQQVRURVJOLCBz byBubyBmaWx0ZXJpbmcgaXMKKwkJICogbmVlZGVkLgorCQkgKi8KKwkJYnVpbGREZWZpbmVWYXJp YWJsZUxpc3Qod2MtPmRlZmluZUNsYXVzZSwgJmRlZmluZVZhcmlhYmxlTGlzdCk7CisJCWZpbHRl cmVkRGVmaW5lQ2xhdXNlID0gd2MtPmRlZmluZUNsYXVzZTsKKworCQkvKiBJZGVudGlmeSBtYXRj aF9zdGFydC1kZXBlbmRlbnQgREVGSU5FIHZhcmlhYmxlcyAqLworCQltYXRjaFN0YXJ0RGVwZW5k ZW50ID0gY29tcHV0ZV9tYXRjaF9zdGFydF9kZXBlbmRlbnQod2MtPmRlZmluZUNsYXVzZSk7CisK KwkJLyogQ29tcGlsZSBhbmQgb3B0aW1pemUgUlBSIHBhdHRlcm5zICovCisJCWNvbXBpbGVkUGF0 dGVybiA9IGJ1aWxkUlBSUGF0dGVybih3Yy0+cnBQYXR0ZXJuLAorCQkJCQkJCQkJCSAgZGVmaW5l VmFyaWFibGVMaXN0LAorCQkJCQkJCQkJCSAgd2MtPnJwU2tpcFRvLAorCQkJCQkJCQkJCSAgd2Mt PmZyYW1lT3B0aW9ucywKKwkJCQkJCQkJCQkgICFibXNfaXNfZW1wdHkobWF0Y2hTdGFydERlcGVu ZGVudCkpOworCX0KKwogCS8qIEFuZCBmaW5hbGx5IHdlIGNhbiBtYWtlIHRoZSBXaW5kb3dBZ2cg bm9kZSAqLwogCXBsYW4gPSBtYWtlX3dpbmRvd2FnZyh0bGlzdCwKIAkJCQkJCSAgd2MsCkBAIC0y NTQzLDYgKzI5MzMsMTAgQEAgY3JlYXRlX3dpbmRvd2FnZ19wbGFuKFBsYW5uZXJJbmZvICpyb290 LCBXaW5kb3dBZ2dQYXRoICpiZXN0X3BhdGgpCiAJCQkJCQkgIG9yZE9wZXJhdG9ycywKIAkJCQkJ CSAgb3JkQ29sbGF0aW9ucywKIAkJCQkJCSAgYmVzdF9wYXRoLT5ydW5Db25kaXRpb24sCisJCQkJ CQkgIHdjLT5ycFNraXBUbywKKwkJCQkJCSAgY29tcGlsZWRQYXR0ZXJuLAorCQkJCQkJICBmaWx0 ZXJlZERlZmluZUNsYXVzZSwKKwkJCQkJCSAgbWF0Y2hTdGFydERlcGVuZGVudCwKIAkJCQkJCSAg YmVzdF9wYXRoLT5xdWFsLAogCQkJCQkJICBiZXN0X3BhdGgtPnRvcHdpbmRvdywKIAkJCQkJCSAg c3VicGxhbik7CkBAIC02NjEzLDcgKzcwMDcsMTEgQEAgc3RhdGljIFdpbmRvd0FnZyAqCiBtYWtl X3dpbmRvd2FnZyhMaXN0ICp0bGlzdCwgV2luZG93Q2xhdXNlICp3YywKIAkJCSAgIGludCBwYXJ0 TnVtQ29scywgQXR0ck51bWJlciAqcGFydENvbElkeCwgT2lkICpwYXJ0T3BlcmF0b3JzLCBPaWQg KnBhcnRDb2xsYXRpb25zLAogCQkJICAgaW50IG9yZE51bUNvbHMsIEF0dHJOdW1iZXIgKm9yZENv bElkeCwgT2lkICpvcmRPcGVyYXRvcnMsIE9pZCAqb3JkQ29sbGF0aW9ucywKLQkJCSAgIExpc3Qg KnJ1bkNvbmRpdGlvbiwgTGlzdCAqcXVhbCwgYm9vbCB0b3BXaW5kb3csIFBsYW4gKmxlZnR0cmVl KQorCQkJICAgTGlzdCAqcnVuQ29uZGl0aW9uLCBSUFNraXBUbyBycFNraXBUbywKKwkJCSAgIFJQ UlBhdHRlcm4gKmNvbXBpbGVkUGF0dGVybiwKKwkJCSAgIExpc3QgKmRlZmluZUNsYXVzZSwKKwkJ CSAgIEJpdG1hcHNldCAqZGVmaW5lTWF0Y2hTdGFydERlcGVuZGVudCwKKwkJCSAgIExpc3QgKnF1 YWwsIGJvb2wgdG9wV2luZG93LCBQbGFuICpsZWZ0dHJlZSkKIHsKIAlXaW5kb3dBZ2cgICpub2Rl ID0gbWFrZU5vZGUoV2luZG93QWdnKTsKIAlQbGFuCSAgICpwbGFuID0gJm5vZGUtPnBsYW47CkBA IC02NjQwLDYgKzcwMzgsMjEgQEAgbWFrZV93aW5kb3dhZ2coTGlzdCAqdGxpc3QsIFdpbmRvd0Ns YXVzZSAqd2MsCiAJbm9kZS0+aW5SYW5nZUFzYyA9IHdjLT5pblJhbmdlQXNjOwogCW5vZGUtPmlu UmFuZ2VOdWxsc0ZpcnN0ID0gd2MtPmluUmFuZ2VOdWxsc0ZpcnN0OwogCW5vZGUtPnRvcFdpbmRv dyA9IHRvcFdpbmRvdzsKKwlub2RlLT5ycFNraXBUbyA9IHJwU2tpcFRvOworCisJLyogU3RvcmUg Y29tcGlsZWQgcGF0dGVybiBmb3IgTkZBIGV4ZWN1dGlvbiAqLworCW5vZGUtPnJwUGF0dGVybiA9 IGNvbXBpbGVkUGF0dGVybjsKKworCW5vZGUtPmRlZmluZUNsYXVzZSA9IGRlZmluZUNsYXVzZTsK KworCS8qIFN0b3JlIHByZS1jb21wdXRlZCBtYXRjaF9zdGFydCBkZXBlbmRlbmN5IGJpdG1hcHNl dCAqLworCW5vZGUtPmRlZmluZU1hdGNoU3RhcnREZXBlbmRlbnQgPSBkZWZpbmVNYXRjaFN0YXJ0 RGVwZW5kZW50OworCisJLyogQ29tcHV0ZSBuYXYgb2Zmc2V0cyBmb3IgdHVwbGVzdG9yZSB0cmlt IG9wdGltaXphdGlvbiAqLworCWNvbXB1dGVfbmF2X29mZnNldHMoZGVmaW5lQ2xhdXNlLAorCQkJ CQkJJm5vZGUtPm5hdk1heE9mZnNldEtpbmQsICZub2RlLT5uYXZNYXhPZmZzZXQsCisJCQkJCQkm bm9kZS0+aGFzRmlyc3ROYXYsCisJCQkJCQkmbm9kZS0+bmF2Rmlyc3RPZmZzZXRLaW5kLCAmbm9k ZS0+bmF2Rmlyc3RPZmZzZXQpOwogCiAJcGxhbi0+dGFyZ2V0bGlzdCA9IHRsaXN0OwogCXBsYW4t PmxlZnR0cmVlID0gbGVmdHRyZWU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv cGxhbi9tZXNvbi5idWlsZCBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL21lc29uLmJ1aWxk CmluZGV4IGM1NjViMmFkYmNjLi41YjIzODFjZDc3NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3BsYW4vbWVzb24uYnVpbGQKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3Bs YW4vbWVzb24uYnVpbGQKQEAgLTcsNiArNyw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygK ICAgJ3BsYW5hZ2cuYycsCiAgICdwbGFubWFpbi5jJywKICAgJ3BsYW5uZXIuYycsCisgICdycHIu YycsCiAgICdzZXRyZWZzLmMnLAogICAnc3Vic2VsZWN0LmMnLAogKQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BsYW4vcGxhbm5lci5jCmluZGV4IDkzM2RjYmY1MDA0Li43MDNjNmFiNzQzMiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCisrKyBiL3NyYy9iYWNrZW5k L29wdGltaXplci9wbGFuL3BsYW5uZXIuYwpAQCAtMTA1Myw2ICsxMDUzLDkgQEAgc3VicXVlcnlf cGxhbm5lcihQbGFubmVyR2xvYmFsICpnbG9iLCBRdWVyeSAqcGFyc2UsIGNoYXIgKnBsYW5fbmFt ZSwKIAkJCQkJCQkJCQkJCUVYUFJLSU5EX0xJTUlUKTsKIAkJd2MtPmVuZE9mZnNldCA9IHByZXBy b2Nlc3NfZXhwcmVzc2lvbihyb290LCB3Yy0+ZW5kT2Zmc2V0LAogCQkJCQkJCQkJCQkgIEVYUFJL SU5EX0xJTUlUKTsKKwkJd2MtPmRlZmluZUNsYXVzZSA9IChMaXN0ICopIHByZXByb2Nlc3NfZXhw cmVzc2lvbihyb290LAorCQkJCQkJCQkJCQkJCQkgIChOb2RlICopIHdjLT5kZWZpbmVDbGF1c2Us CisJCQkJCQkJCQkJCQkJCSAgRVhQUktJTkRfVEFSR0VUKTsKIAl9CiAKIAlwYXJzZS0+bGltaXRP ZmZzZXQgPSBwcmVwcm9jZXNzX2V4cHJlc3Npb24ocm9vdCwgcGFyc2UtPmxpbWl0T2Zmc2V0LApA QCAtNjExMiw2ICs2MTE1LDE0IEBAIG9wdGltaXplX3dpbmRvd19jbGF1c2VzKFBsYW5uZXJJbmZv ICpyb290LCBXaW5kb3dGdW5jTGlzdHMgKndmbGlzdHMpCiAJCWlmICh3Zmxpc3RzLT53aW5kb3dG dW5jc1t3Yy0+d2lucmVmXSA9PSBOSUwpCiAJCQljb250aW51ZTsKIAorCQkvKgorCQkgKiBJZiBh IERFRklORSBjbGF1c2UgZXhpc3RzLCBkbyBub3QgbGV0IHN1cHBvcnQgZnVuY3Rpb25zIHJlcGxh Y2UgdGhlCisJCSAqIGZyYW1lIHdpdGggYSBub24tUlBSLWNvbXBhdGlibGUgb25lLiAgUlBSIHdp bmRvd3MgcmVxdWlyZSBST1dTCisJCSAqIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIC4uLgorCQkg Ki8KKwkJaWYgKHdjLT5kZWZpbmVDbGF1c2UgIT0gTklMKQorCQkJY29udGludWU7CisKIAkJZm9y ZWFjaChsYzIsIHdmbGlzdHMtPndpbmRvd0Z1bmNzW3djLT53aW5yZWZdKQogCQl7CiAJCQlTdXBw b3J0UmVxdWVzdE9wdGltaXplV2luZG93Q2xhdXNlIHJlcTsKQEAgLTYxOTUsNyArNjIwNiwxMSBA QCBvcHRpbWl6ZV93aW5kb3dfY2xhdXNlcyhQbGFubmVySW5mbyAqcm9vdCwgV2luZG93RnVuY0xp c3RzICp3Zmxpc3RzKQogCQkJCQllcXVhbCh3Yy0+b3JkZXJDbGF1c2UsIGV4aXN0aW5nX3djLT5v cmRlckNsYXVzZSkgJiYKIAkJCQkJd2MtPmZyYW1lT3B0aW9ucyA9PSBleGlzdGluZ193Yy0+ZnJh bWVPcHRpb25zICYmCiAJCQkJCWVxdWFsKHdjLT5zdGFydE9mZnNldCwgZXhpc3Rpbmdfd2MtPnN0 YXJ0T2Zmc2V0KSAmJgotCQkJCQllcXVhbCh3Yy0+ZW5kT2Zmc2V0LCBleGlzdGluZ193Yy0+ZW5k T2Zmc2V0KSkKKwkJCQkJZXF1YWwod2MtPmVuZE9mZnNldCwgZXhpc3Rpbmdfd2MtPmVuZE9mZnNl dCkgJiYKKwkJCQkJd2MtPnJwU2tpcFRvID09IGV4aXN0aW5nX3djLT5ycFNraXBUbyAmJgorCQkJ CQl3Yy0+aW5pdGlhbCA9PSBleGlzdGluZ193Yy0+aW5pdGlhbCAmJgorCQkJCQllcXVhbCh3Yy0+ ZGVmaW5lQ2xhdXNlLCBleGlzdGluZ193Yy0+ZGVmaW5lQ2xhdXNlKSAmJgorCQkJCQllcXVhbCh3 Yy0+cnBQYXR0ZXJuLCBleGlzdGluZ193Yy0+cnBQYXR0ZXJuKSkKIAkJCQl7CiAJCQkJCUxpc3RD ZWxsICAgKmxjNDsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcnBy LmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uMjU0MzE3MGMzNzQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMv YmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYwpAQCAtMCwwICsxLDE5OTMgQEAKKy8qLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICoKKyAqIHJwci5jCisgKgkgIFJvdyBQYXR0ZXJuIFJlY29nbml0aW9uIHBh dHRlcm4gY29tcGlsYXRpb24gZm9yIHBsYW5uZXIKKyAqCisgKiBUaGlzIGZpbGUgY29udGFpbnMg ZnVuY3Rpb25zIGZvciBvcHRpbWl6aW5nIFJQUiBwYXR0ZXJuIEFTVCBhbmQKKyAqIGNvbXBpbGlu ZyBpdCB0byBhIGZsYXQgZWxlbWVudCBhcnJheSBmb3IgTkZBIGV4ZWN1dGlvbiBieSBXaW5kb3dB Z2cuCisgKgorICogS2V5IGNvbXBvbmVudHM6CisgKiAgIDEuIFBhdHRlcm4gT3B0aW1pemF0aW9u OiBTaW1wbGlmaWVzIHBhdHRlcm5zIGJlZm9yZSBjb21waWxhdGlvbgorICogICAgICAoZS5nLiwg ZmxhdHRlbiBuZXN0ZWQgU0VRL0FMVCwgbWVyZ2UgY29uc2VjdXRpdmUgdmFycykKKyAqICAgMi4g UGF0dGVybiBDb21waWxhdGlvbjogQ29udmVydHMgQVNUIHRvIGZsYXQgZWxlbWVudCBhcnJheSBm b3IgTkZBCisgKiAgIDMuIEFic29ycHRpb24gQW5hbHlzaXM6IENvbXB1dGVzIGZsYWdzIGZvciBP KG5eMiktPk8obikgb3B0aW1pemF0aW9uCisgKgorICogQ29udGV4dCBBYnNvcnB0aW9uIE9wdGlt aXphdGlvbjoKKyAqICAgV2hlbiBhIHBhdHRlcm4gc3RhcnRzIHdpdGggYSBncmVlZHkgdW5ib3Vu ZGVkIGVsZW1lbnQgKGUuZy4sIEErIG9yIChBIEIpKyksCisgKiAgIG5ld2VyIGNvbnRleHRzIGNh bm5vdCBwcm9kdWNlIGxvbmdlciBtYXRjaGVzIHRoYW4gb2xkZXIgY29udGV4dHMuCisgKiAgIEJ5 IGFic29yYmluZyAoZWxpbWluYXRpbmcpIHJlZHVuZGFudCBuZXdlciBjb250ZXh0cywgd2UgcmVk dWNlCisgKiAgIGNvbXBsZXhpdHkgZnJvbSBPKG5eMikgdG8gTyhuKSBmb3IgcGF0dGVybnMgbGlr ZSBBKyBCLgorICoKKyAqICAgVGhlIGFic29ycHRpb24gYW5hbHlzaXMgdXNlcyB0d28gZWxlbWVu dCBmbGFnczoKKyAqICAgLSBSUFJfRUxFTV9BQlNPUkJBQkxFOiBtYXJrcyBXSEVSRSB0byBjb21w YXJlIChqdWRnbWVudCBwb2ludCkKKyAqICAgLSBSUFJfRUxFTV9BQlNPUkJBQkxFX0JSQU5DSDog bWFya3MgdGhlIGFic29yYmFibGUgcmVnaW9uCisgKgorICogICBTZWUgY29tcHV0ZUFic29yYmFi aWxpdHkoKSBhbmQgdGhlIGRldGFpbGVkIGNvbW1lbnRzIGJlZm9yZQorICogICBpc1VuYm91bmRl ZFN0YXJ0KCkgZm9yIHRoZSBmdWxsIGRlc2lnbiBleHBsYW5hdGlvbi4KKyAqCisgKiBQb3J0aW9u cyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQg R3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5p dmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkgIHNy Yy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg Ki8KKworI2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRlIDxsaW1pdHMuaD4KKworI2lu Y2x1ZGUgIm1pc2NhZG1pbi5oIgorI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgorI2luY2x1 ZGUgIm9wdGltaXplci9ycHIuaCIKKworLyogRm9yd2FyZCBkZWNsYXJhdGlvbnMgLSBwYXR0ZXJu IGNvbXBhcmlzb24gKi8KK3N0YXRpYyBib29sIHJwclBhdHRlcm5FcXVhbChSUFJQYXR0ZXJuTm9k ZSAqYSwgUlBSUGF0dGVybk5vZGUgKmIpOworc3RhdGljIGJvb2wgcnByUGF0dGVybkNoaWxkcmVu RXF1YWwoTGlzdCAqYSwgTGlzdCAqYik7CisKKy8qIEZvcndhcmQgZGVjbGFyYXRpb25zIC0gcGF0 dGVybiBvcHRpbWl6YXRpb24gKHNoYXJlZCkgKi8KK3N0YXRpYyBSUFJQYXR0ZXJuTm9kZSAqdHJ5 VW53cmFwU2luZ2xlQ2hpbGQoUlBSUGF0dGVybk5vZGUgKnBhdHRlcm4pOworCisvKiBGb3J3YXJk IGRlY2xhcmF0aW9ucyAtIFNFUSBvcHRpbWl6YXRpb24gKi8KK3N0YXRpYyBMaXN0ICpmbGF0dGVu U2VxQ2hpbGRyZW4oTGlzdCAqY2hpbGRyZW4pOworc3RhdGljIExpc3QgKm1lcmdlQ29uc2VjdXRp dmVWYXJzKExpc3QgKmNoaWxkcmVuKTsKK3N0YXRpYyBMaXN0ICptZXJnZUNvbnNlY3V0aXZlR3Jv dXBzKExpc3QgKmNoaWxkcmVuKTsKK3N0YXRpYyBMaXN0ICptZXJnZUNvbnNlY3V0aXZlQWx0cyhM aXN0ICpjaGlsZHJlbik7CitzdGF0aWMgTGlzdCAqbWVyZ2VHcm91cFByZWZpeFN1ZmZpeChMaXN0 ICpjaGlsZHJlbik7CitzdGF0aWMgUlBSUGF0dGVybk5vZGUgKm9wdGltaXplU2VxUGF0dGVybihS UFJQYXR0ZXJuTm9kZSAqcGF0dGVybik7CisKKy8qIEZvcndhcmQgZGVjbGFyYXRpb25zIC0gQUxU IG9wdGltaXphdGlvbiAqLworc3RhdGljIExpc3QgKmZsYXR0ZW5BbHRDaGlsZHJlbihMaXN0ICpj aGlsZHJlbik7CitzdGF0aWMgTGlzdCAqcmVtb3ZlRHVwbGljYXRlQWx0ZXJuYXRpdmVzKExpc3Qg KmNoaWxkcmVuKTsKK3N0YXRpYyBSUFJQYXR0ZXJuTm9kZSAqb3B0aW1pemVBbHRQYXR0ZXJuKFJQ UlBhdHRlcm5Ob2RlICpwYXR0ZXJuKTsKKworLyogRm9yd2FyZCBkZWNsYXJhdGlvbnMgLSBHUk9V UCBvcHRpbWl6YXRpb24gKi8KK3N0YXRpYyBSUFJQYXR0ZXJuTm9kZSAqdHJ5TXVsdGlwbHlRdWFu dGlmaWVycyhSUFJQYXR0ZXJuTm9kZSAqcGF0dGVybik7CitzdGF0aWMgUlBSUGF0dGVybk5vZGUg KnRyeVVud3JhcEdyb3VwKFJQUlBhdHRlcm5Ob2RlICpwYXR0ZXJuKTsKK3N0YXRpYyBSUFJQYXR0 ZXJuTm9kZSAqb3B0aW1pemVHcm91cFBhdHRlcm4oUlBSUGF0dGVybk5vZGUgKnBhdHRlcm4pOwor CisvKiBGb3J3YXJkIGRlY2xhcmF0aW9ucyAtIG9wdGltaXphdGlvbiBkaXNwYXRjaGVyICovCitz dGF0aWMgUlBSUGF0dGVybk5vZGUgKm9wdGltaXplUlBSUGF0dGVybihSUFJQYXR0ZXJuTm9kZSAq cGF0dGVybik7CisKKy8qIEZvcndhcmQgZGVjbGFyYXRpb25zIC0gcGF0dGVybiBjb21waWxhdGlv biAqLworc3RhdGljIGludAljb2xsZWN0RGVmaW5lVmFyaWFibGVzKExpc3QgKmRlZmluZVZhcmlh YmxlTGlzdCwgY2hhciAqKnZhck5hbWVzKTsKK3N0YXRpYyB2b2lkIHNjYW5SUFJQYXR0ZXJuUmVj dXJzaXZlKFJQUlBhdHRlcm5Ob2RlICpub2RlLCBjaGFyICoqdmFyTmFtZXMsCisJCQkJCQkJCQlp bnQgKm51bVZhcnMsIGludCAqbnVtRWxlbWVudHMsCisJCQkJCQkJCQlSUFJEZXB0aCBkZXB0aCwg UlBSRGVwdGggKm1heERlcHRoKTsKK3N0YXRpYyB2b2lkIHNjYW5SUFJQYXR0ZXJuKFJQUlBhdHRl cm5Ob2RlICpub2RlLCBjaGFyICoqdmFyTmFtZXMsIGludCAqbnVtVmFycywKKwkJCQkJCSAgIGlu dCAqbnVtRWxlbWVudHMsIFJQUkRlcHRoICptYXhEZXB0aCk7CitzdGF0aWMgUlBSUGF0dGVybiAq YWxsb2NhdGVSUFJQYXR0ZXJuKGludCBudW1WYXJzLCBpbnQgbnVtRWxlbWVudHMsCisJCQkJCQkJ CQkgIFJQUkRlcHRoIG1heERlcHRoLCBjaGFyICoqdmFyTmFtZXNTdGFjayk7CitzdGF0aWMgUlBS VmFySWQgZ2V0VmFySWRGcm9tUGF0dGVybihSUFJQYXR0ZXJuICpwYXQsIGNvbnN0IGNoYXIgKnZh ck5hbWUpOworc3RhdGljIGJvb2wgZmlsbFJQUlBhdHRlcm5WYXIoUlBSUGF0dGVybk5vZGUgKm5v ZGUsIFJQUlBhdHRlcm4gKnBhdCwKKwkJCQkJCQkgIGludCAqaWR4LCBSUFJEZXB0aCBkZXB0aCk7 CitzdGF0aWMgYm9vbCBmaWxsUlBSUGF0dGVybkdyb3VwKFJQUlBhdHRlcm5Ob2RlICpub2RlLCBS UFJQYXR0ZXJuICpwYXQsCisJCQkJCQkJCWludCAqaWR4LCBSUFJEZXB0aCBkZXB0aCk7CitzdGF0 aWMgYm9vbCBmaWxsUlBSUGF0dGVybkFsdChSUFJQYXR0ZXJuTm9kZSAqbm9kZSwgUlBSUGF0dGVy biAqcGF0LAorCQkJCQkJCSAgaW50ICppZHgsIFJQUkRlcHRoIGRlcHRoKTsKK3N0YXRpYyBib29s IGZpbGxSUFJQYXR0ZXJuKFJQUlBhdHRlcm5Ob2RlICpub2RlLCBSUFJQYXR0ZXJuICpwYXQsCisJ CQkJCQkgICBpbnQgKmlkeCwgUlBSRGVwdGggZGVwdGgpOworc3RhdGljIHZvaWQgZmluYWxpemVS UFJQYXR0ZXJuKFJQUlBhdHRlcm4gKnJlc3VsdCk7CisKKy8qIEZvcndhcmQgZGVjbGFyYXRpb25z IC0gY29udGV4dCBhYnNvcnB0aW9uICovCitzdGF0aWMgYm9vbCBpc0ZpeGVkTGVuZ3RoQ2hpbGRy ZW4oUlBSUGF0dGVybiAqcGF0dGVybiwgUlBSRWxlbUlkeCBpZHgsCisJCQkJCQkJCSAgUlBSRGVw dGggc2NvcGVEZXB0aCk7CitzdGF0aWMgYm9vbCBpc1VuYm91bmRlZFN0YXJ0KFJQUlBhdHRlcm4g KnBhdHRlcm4sIFJQUkVsZW1JZHggaWR4KTsKK3N0YXRpYyB2b2lkIGNvbXB1dGVBYnNvcmJhYmls aXR5UmVjdXJzaXZlKFJQUlBhdHRlcm4gKnBhdHRlcm4sCisJCQkJCQkJCQkJICBSUFJFbGVtSWR4 IHN0YXJ0SWR4LAorCQkJCQkJCQkJCSAgYm9vbCAqaGFzQWJzb3JiYWJsZSk7CitzdGF0aWMgdm9p ZCBjb21wdXRlQWJzb3JiYWJpbGl0eShSUFJQYXR0ZXJuICpwYXR0ZXJuKTsKKworLyoKKyAqIHJw clBhdHRlcm5FcXVhbAorICoJCUNvbXBhcmUgdHdvIFJQUlBhdHRlcm5Ob2RlIHRyZWVzIGZvciBl cXVhbGl0eS4KKyAqCisgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHRyZWVzIGFyZSBzdHJ1Y3R1cmFs bHkgaWRlbnRpY2FsLgorICovCitzdGF0aWMgYm9vbAorcnByUGF0dGVybkVxdWFsKFJQUlBhdHRl cm5Ob2RlICphLCBSUFJQYXR0ZXJuTm9kZSAqYikKK3sKKwkvKiBQYXR0ZXJuIG5vZGVzIGluIGNo aWxkcmVuIGxpc3RzIG11c3QgbmV2ZXIgYmUgTlVMTCAqLworCUFzc2VydChhICE9IE5VTEwgJiYg YiAhPSBOVUxMKTsKKworCS8qIE11c3QgaGF2ZSBzYW1lIG5vZGUgdHlwZSBhbmQgcXVhbnRpZmll cnMgKi8KKwlpZiAoYS0+bm9kZVR5cGUgIT0gYi0+bm9kZVR5cGUpCisJCXJldHVybiBmYWxzZTsK KwlpZiAoYS0+bWluICE9IGItPm1pbiB8fCBhLT5tYXggIT0gYi0+bWF4KQorCQlyZXR1cm4gZmFs c2U7CisJaWYgKGEtPnJlbHVjdGFudCAhPSBiLT5yZWx1Y3RhbnQpCisJCXJldHVybiBmYWxzZTsK KworCXN3aXRjaCAoYS0+bm9kZVR5cGUpCisJeworCQljYXNlIFJQUl9QQVRURVJOX1ZBUjoKKwkJ CXJldHVybiBzdHJjbXAoYS0+dmFyTmFtZSwgYi0+dmFyTmFtZSkgPT0gMDsKKworCQljYXNlIFJQ Ul9QQVRURVJOX1NFUToKKwkJY2FzZSBSUFJfUEFUVEVSTl9BTFQ6CisJCWNhc2UgUlBSX1BBVFRF Uk5fR1JPVVA6CisJCQlyZXR1cm4gcnByUGF0dGVybkNoaWxkcmVuRXF1YWwoYS0+Y2hpbGRyZW4s IGItPmNoaWxkcmVuKTsKKwl9CisKKwlyZXR1cm4gZmFsc2U7CQkJCS8qIGtlZXAgY29tcGlsZXIg cXVpZXQgKi8KK30KKworLyoKKyAqIHJwclBhdHRlcm5DaGlsZHJlbkVxdWFsCisgKgkJQ29tcGFy ZSBjaGlsZHJlbiBsaXN0cyBvZiB0d28gcGF0dGVybiBub2RlcyBmb3IgZXF1YWxpdHkuCisgKgor ICogUmV0dXJucyB0cnVlIGlmIHRoZSBjaGlsZHJlbiBsaXN0cyBhcmUgc3RydWN0dXJhbGx5IGlk ZW50aWNhbC4KKyAqLworc3RhdGljIGJvb2wKK3JwclBhdHRlcm5DaGlsZHJlbkVxdWFsKExpc3Qg KmEsIExpc3QgKmIpCit7CisJTGlzdENlbGwgICAqbGNhLAorCQkJICAgKmxjYjsKKworCWlmIChs aXN0X2xlbmd0aChhKSAhPSBsaXN0X2xlbmd0aChiKSkKKwkJcmV0dXJuIGZhbHNlOworCisJZm9y Ym90aChsY2EsIGEsIGxjYiwgYikKKwl7CisJCWlmICghcnByUGF0dGVybkVxdWFsKChSUFJQYXR0 ZXJuTm9kZSAqKSBsZmlyc3QobGNhKSwKKwkJCQkJCQkgKFJQUlBhdHRlcm5Ob2RlICopIGxmaXJz dChsY2IpKSkKKwkJCXJldHVybiBmYWxzZTsKKwl9CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworLyoK KyAqIHRyeVVud3JhcFNpbmdsZUNoaWxkCisgKgkJVHJ5IHRvIHVud3JhcCBwYXR0ZXJuIG5vZGUg d2l0aCBzaW5nbGUgY2hpbGQuCisgKgorICogRXhhbXBsZXMgKGludGVybmFsIG5vZGUgcmVwcmVz ZW50YXRpb24pOgorICogICBTRVFbQV0gLT4gQSAgICAoc2luZ2xlLWVsZW1lbnQgc2VxdWVuY2Ug YmVjb21lcyB0aGUgZWxlbWVudCkKKyAqICAgQUxUW0FdIC0+IEEgICAgKHNpbmdsZS1hbHRlcm5h dGl2ZSBiZWNvbWVzIHRoZSBhbHRlcm5hdGl2ZSkKKyAqCisgKiBJZiBwYXR0ZXJuIGhhcyBleGFj dGx5IG9uZSBjaGlsZCwgcmV0dXJuIHRoZSBjaGlsZCBkaXJlY3RseS4KKyAqIE90aGVyd2lzZSBy ZXR1cm5zIHRoZSBwYXR0ZXJuIHVuY2hhbmdlZC4KKyAqIFVzZWQgYnkgYm90aCBTRVEgYW5kIEFM VCBvcHRpbWl6YXRpb24uCisgKi8KK3N0YXRpYyBSUFJQYXR0ZXJuTm9kZSAqCit0cnlVbndyYXBT aW5nbGVDaGlsZChSUFJQYXR0ZXJuTm9kZSAqcGF0dGVybikKK3sKKwlpZiAobGlzdF9sZW5ndGgo cGF0dGVybi0+Y2hpbGRyZW4pID09IDEpCisJCXJldHVybiAoUlBSUGF0dGVybk5vZGUgKikgbGlu aXRpYWwocGF0dGVybi0+Y2hpbGRyZW4pOworCisJcmV0dXJuIHBhdHRlcm47Cit9CisKKy8qCisg KiBmbGF0dGVuU2VxQ2hpbGRyZW4KKyAqCQlSZWN1cnNpdmVseSBvcHRpbWl6ZSBjaGlsZHJlbiBh bmQgZmxhdHRlbiBuZXN0ZWQgU0VRLgorICoKKyAqIEV4YW1wbGU6CisgKiAgIFNFUShBLCBTRVEo QiwgQykpIC0+IFNFUShBLCBCLCBDKQorICoKKyAqIFJldHVybnMgYSBuZXcgbGlzdCB3aXRoIG9w dGltaXplZCBjaGlsZHJlbiwgd2l0aCBuZXN0ZWQgU0VRIGNoaWxkcmVuCisgKiBmbGF0dGVuZWQg aW50byB0aGUgcGFyZW50IGxpc3QuCisgKi8KK3N0YXRpYyBMaXN0ICoKK2ZsYXR0ZW5TZXFDaGls ZHJlbihMaXN0ICpjaGlsZHJlbikKK3sKKwlMaXN0Q2VsbCAgICpsYzsKKwlMaXN0CSAgICpuZXdD aGlsZHJlbiA9IE5JTDsKKworCWZvcmVhY2gobGMsIGNoaWxkcmVuKQorCXsKKwkJUlBSUGF0dGVy bk5vZGUgKmNoaWxkID0gKFJQUlBhdHRlcm5Ob2RlICopIGxmaXJzdChsYyk7CisJCVJQUlBhdHRl cm5Ob2RlICpvcHQgPSBvcHRpbWl6ZVJQUlBhdHRlcm4oY2hpbGQpOworCisJCS8qIEdST1VQezEs MX0gc2hvdWxkIGhhdmUgYmVlbiB1bndyYXBwZWQgYnkgb3B0aW1pemVHcm91cFBhdHRlcm4gKi8K KwkJQXNzZXJ0KCEob3B0LT5ub2RlVHlwZSA9PSBSUFJfUEFUVEVSTl9HUk9VUCAmJgorCQkJCSBv cHQtPm1pbiA9PSAxICYmIG9wdC0+bWF4ID09IDEgJiYgb3B0LT5yZWx1Y3RhbnQgPT0gZmFsc2Up KTsKKworCQlpZiAob3B0LT5ub2RlVHlwZSA9PSBSUFJfUEFUVEVSTl9TRVEpCisJCXsKKwkJCW5l d0NoaWxkcmVuID0gbGlzdF9jb25jYXQobmV3Q2hpbGRyZW4sCisJCQkJCQkJCQkgIGxpc3RfY29w eShvcHQtPmNoaWxkcmVuKSk7CisJCX0KKwkJZWxzZQorCQl7CisJCQluZXdDaGlsZHJlbiA9IGxh cHBlbmQobmV3Q2hpbGRyZW4sIG9wdCk7CisJCX0KKwl9CisKKwlyZXR1cm4gbmV3Q2hpbGRyZW47 Cit9CisKKy8qCisgKiBtZXJnZUNvbnNlY3V0aXZlVmFycworICoJCU1lcmdlIGNvbnNlY3V0aXZl IGlkZW50aWNhbCBWQVIgbm9kZXMuCisgKgorICogRXhhbXBsZXM6CisgKiAgIEF7bTEsTTF9IEF7 bTIsTTJ9IC0+IEF7bTErbTIsIE0xK00yfSB3aGVyZSBJTkYgKyB4ID0gSU5GLgorICoKKyAqIE9u bHkgbWVyZ2VzIG5vbi1yZWx1Y3RhbnQgVkFSIG5vZGVzIHdpdGggdGhlIHNhbWUgdmFyaWFibGUg bmFtZS4KKyAqLworc3RhdGljIExpc3QgKgorbWVyZ2VDb25zZWN1dGl2ZVZhcnMoTGlzdCAqY2hp bGRyZW4pCit7CisJTGlzdENlbGwgICAqbGM7CisJTGlzdAkgICAqbWVyZ2VkQ2hpbGRyZW4gPSBO SUw7CisJUlBSUGF0dGVybk5vZGUgKnByZXYgPSBOVUxMOworCisJZm9yZWFjaChsYywgY2hpbGRy ZW4pCisJeworCQlSUFJQYXR0ZXJuTm9kZSAqY2hpbGQgPSAoUlBSUGF0dGVybk5vZGUgKikgbGZp cnN0KGxjKTsKKworCQlpZiAoY2hpbGQtPm5vZGVUeXBlID09IFJQUl9QQVRURVJOX1ZBUiAmJiBj aGlsZC0+cmVsdWN0YW50ID09IGZhbHNlKQorCQl7CisJCQkvKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisJCQkgKiBDYW4gbWVyZ2UgY29uc2VjdXRpdmUgVkFSIG5vZGVzIGlmOgorCQkJICogMS4g U2FtZSB2YXJpYWJsZSBuYW1lCisJCQkgKiAyLiBObyBtaW4gb3ZlcmZsb3c6IHByZXYtPm1pbiAr IGNoaWxkLT5taW4gPD0gSU5GCisJCQkgKiAzLiBObyBtYXggb3ZlcmZsb3c6IHByZXYtPm1heCAr IGNoaWxkLT5tYXggPD0gSU5GIChvciBlaXRoZXIgaXMgSU5GKQorCQkJICovCisJCQlpZiAocHJl diAhPSBOVUxMICYmCisJCQkJc3RyY21wKHByZXYtPnZhck5hbWUsIGNoaWxkLT52YXJOYW1lKSA9 PSAwICYmCisJCQkJcHJldi0+bWluIDw9IFJQUl9RVUFOVElUWV9JTkYgLSBjaGlsZC0+bWluICYm CisJCQkJKHByZXYtPm1heCA8PSBSUFJfUVVBTlRJVFlfSU5GIC0gY2hpbGQtPm1heCB8fAorCQkJ CSBwcmV2LT5tYXggPT0gUlBSX1FVQU5USVRZX0lORiB8fAorCQkJCSBjaGlsZC0+bWF4ID09IFJQ Ul9RVUFOVElUWV9JTkYpKQorCQkJeworCQkJCS8qCisJCQkJICogTWVyZ2U6IGFjY3VtdWxhdGUg bWluL21heCBpbnRvIHByZXYuIHByZXYgaXMgZ3VhcmFudGVlZCB0bworCQkJCSAqIGJlIGEgbm9u LXJlbHVjdGFudCBWQVIgYnkgdGhlIG91dGVyIGNvbmRpdGlvbi4KKwkJCQkgKi8KKwkJCQlBc3Nl cnQocHJldi0+bm9kZVR5cGUgPT0gUlBSX1BBVFRFUk5fVkFSICYmIHByZXYtPnJlbHVjdGFudCA9 PSBmYWxzZSk7CisKKwkJCQlwcmV2LT5taW4gKz0gY2hpbGQtPm1pbjsKKworCQkJCWlmIChwcmV2 LT5tYXggPT0gUlBSX1FVQU5USVRZX0lORiB8fAorCQkJCQljaGlsZC0+bWF4ID09IFJQUl9RVUFO VElUWV9JTkYpCisJCQkJCXByZXYtPm1heCA9IFJQUl9RVUFOVElUWV9JTkY7CisJCQkJZWxzZQor CQkJCQlwcmV2LT5tYXggKz0gY2hpbGQtPm1heDsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQkv KiBGbHVzaCBwcmV2aW91cyBhbmQgc3RhcnQgbmV3ICovCisJCQkJaWYgKHByZXYgIT0gTlVMTCkK KwkJCQkJbWVyZ2VkQ2hpbGRyZW4gPSBsYXBwZW5kKG1lcmdlZENoaWxkcmVuLCBwcmV2KTsKKwkJ CQlwcmV2ID0gY2hpbGQ7CisJCQl9CisJCX0KKwkJZWxzZQorCQl7CisJCQkvKiBOb24tbWVyZ2Vh YmxlIC0gZmx1c2ggcHJldmlvdXMgKi8KKwkJCWlmIChwcmV2ICE9IE5VTEwpCisJCQkJbWVyZ2Vk Q2hpbGRyZW4gPSBsYXBwZW5kKG1lcmdlZENoaWxkcmVuLCBwcmV2KTsKKwkJCW1lcmdlZENoaWxk cmVuID0gbGFwcGVuZChtZXJnZWRDaGlsZHJlbiwgY2hpbGQpOworCQkJcHJldiA9IE5VTEw7CisJ CX0KKwl9CisKKwkvKiBGbHVzaCByZW1haW5pbmcgKi8KKwlpZiAocHJldiAhPSBOVUxMKQorCQlt ZXJnZWRDaGlsZHJlbiA9IGxhcHBlbmQobWVyZ2VkQ2hpbGRyZW4sIHByZXYpOworCisJcmV0dXJu IG1lcmdlZENoaWxkcmVuOworfQorCisvKgorICogbWVyZ2VDb25zZWN1dGl2ZUdyb3VwcworICoJ CU1lcmdlIGNvbnNlY3V0aXZlIGlkZW50aWNhbCBHUk9VUCBub2Rlcy4KKyAqCisgKiBFeGFtcGxl OgorICogICAoQSBCKSsgKEEgQikrIC0+IChBIEIpezIsfQorICoKKyAqIE9ubHkgbWVyZ2VzIG5v bi1yZWx1Y3RhbnQgR1JPVVAgbm9kZXMgd2l0aCBpZGVudGljYWwgY2hpbGRyZW4uCisgKi8KK3N0 YXRpYyBMaXN0ICoKK21lcmdlQ29uc2VjdXRpdmVHcm91cHMoTGlzdCAqY2hpbGRyZW4pCit7CisJ TGlzdENlbGwgICAqbGM7CisJTGlzdAkgICAqbWVyZ2VkQ2hpbGRyZW4gPSBOSUw7CisJUlBSUGF0 dGVybk5vZGUgKnByZXYgPSBOVUxMOworCisJZm9yZWFjaChsYywgY2hpbGRyZW4pCisJeworCQlS UFJQYXR0ZXJuTm9kZSAqY2hpbGQgPSAoUlBSUGF0dGVybk5vZGUgKikgbGZpcnN0KGxjKTsKKwor CQlpZiAoY2hpbGQtPm5vZGVUeXBlID09IFJQUl9QQVRURVJOX0dST1VQICYmIGNoaWxkLT5yZWx1 Y3RhbnQgPT0gZmFsc2UpCisJCXsKKwkJCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkJCSAq IENhbiBtZXJnZSBjb25zZWN1dGl2ZSBHUk9VUCBub2RlcyBpZjoKKwkJCSAqIDEuIElkZW50aWNh bCBjaGlsZHJlbgorCQkJICogMi4gTm8gbWluIG92ZXJmbG93OiBwcmV2LT5taW4gKyBjaGlsZC0+ bWluIDw9IElORgorCQkJICogMy4gTm8gbWF4IG92ZXJmbG93OiBwcmV2LT5tYXggKyBjaGlsZC0+ bWF4IDw9IElORiAob3IgZWl0aGVyIGlzIElORikKKwkJCSAqLworCQkJaWYgKHByZXYgIT0gTlVM TCAmJgorCQkJCXJwclBhdHRlcm5DaGlsZHJlbkVxdWFsKHByZXYtPmNoaWxkcmVuLCBjaGlsZC0+ Y2hpbGRyZW4pICYmCisJCQkJcHJldi0+bWluIDw9IFJQUl9RVUFOVElUWV9JTkYgLSBjaGlsZC0+ bWluICYmCisJCQkJKHByZXYtPm1heCA8PSBSUFJfUVVBTlRJVFlfSU5GIC0gY2hpbGQtPm1heCB8 fAorCQkJCSBwcmV2LT5tYXggPT0gUlBSX1FVQU5USVRZX0lORiB8fAorCQkJCSBjaGlsZC0+bWF4 ID09IFJQUl9RVUFOVElUWV9JTkYpKQorCQkJeworCQkJCS8qCisJCQkJICogTWVyZ2U6IGFjY3Vt dWxhdGUgbWluL21heCBpbnRvIHByZXYuIHByZXYgaXMgZ3VhcmFudGVlZCB0bworCQkJCSAqIGJl IGEgbm9uLXJlbHVjdGFudCBHUk9VUCBieSB0aGUgb3V0ZXIgY29uZGl0aW9uLgorCQkJCSAqLwor CQkJCUFzc2VydChwcmV2LT5ub2RlVHlwZSA9PSBSUFJfUEFUVEVSTl9HUk9VUCAmJiBwcmV2LT5y ZWx1Y3RhbnQgPT0gZmFsc2UpOworCisJCQkJcHJldi0+bWluICs9IGNoaWxkLT5taW47CisKKwkJ CQlpZiAocHJldi0+bWF4ID09IFJQUl9RVUFOVElUWV9JTkYgfHwKKwkJCQkJY2hpbGQtPm1heCA9 PSBSUFJfUVVBTlRJVFlfSU5GKQorCQkJCQlwcmV2LT5tYXggPSBSUFJfUVVBTlRJVFlfSU5GOwor CQkJCWVsc2UKKwkJCQkJcHJldi0+bWF4ICs9IGNoaWxkLT5tYXg7CisJCQl9CisJCQllbHNlCisJ CQl7CisJCQkJLyogRmx1c2ggcHJldmlvdXMgYW5kIHN0YXJ0IG5ldyAqLworCQkJCWlmIChwcmV2 ICE9IE5VTEwpCisJCQkJCW1lcmdlZENoaWxkcmVuID0gbGFwcGVuZChtZXJnZWRDaGlsZHJlbiwg cHJldik7CisJCQkJcHJldiA9IGNoaWxkOworCQkJfQorCQl9CisJCWVsc2UKKwkJeworCQkJLyog Tm9uLW1lcmdlYWJsZSAtIGZsdXNoIHByZXZpb3VzICovCisJCQlpZiAocHJldiAhPSBOVUxMKQor CQkJCW1lcmdlZENoaWxkcmVuID0gbGFwcGVuZChtZXJnZWRDaGlsZHJlbiwgcHJldik7CisJCQlt ZXJnZWRDaGlsZHJlbiA9IGxhcHBlbmQobWVyZ2VkQ2hpbGRyZW4sIGNoaWxkKTsKKwkJCXByZXYg PSBOVUxMOworCQl9CisJfQorCisJLyogRmx1c2ggcmVtYWluaW5nICovCisJaWYgKHByZXYgIT0g TlVMTCkKKwkJbWVyZ2VkQ2hpbGRyZW4gPSBsYXBwZW5kKG1lcmdlZENoaWxkcmVuLCBwcmV2KTsK KworCXJldHVybiBtZXJnZWRDaGlsZHJlbjsKK30KKworLyoKKyAqIG1lcmdlQ29uc2VjdXRpdmVB bHRzCisgKgkJTWVyZ2UgY29uc2VjdXRpdmUgaWRlbnRpY2FsIEFMVCBub2RlcyBpbnRvIGEgR1JP VVAuCisgKgorICogRXhhbXBsZToKKyAqICAgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgLT4gKEEg fCBCKXszfQorICoKKyAqIEFmdGVyIEdST1VQezEsMX0gdW53cmFwLCBiYXJlIGFsdGVybmF0aW9u cyBsaWtlIChBIHwgQikgYmVjb21lIEFMVCBub2RlcworICogaW4gdGhlIFNFUS4gIFRoaXMgc3Rl cCBkZXRlY3RzIGNvbnNlY3V0aXZlIGlkZW50aWNhbCBBTFQgbm9kZXMgYW5kIHdyYXBzCisgKiB0 aGVtIGluIGEgR1JPVVAgd2l0aCB0aGUgYXBwcm9wcmlhdGUgcXVhbnRpZmllci4KKyAqLworc3Rh dGljIExpc3QgKgorbWVyZ2VDb25zZWN1dGl2ZUFsdHMoTGlzdCAqY2hpbGRyZW4pCit7CisJTGlz dENlbGwgICAqbGM7CisJTGlzdAkgICAqbWVyZ2VkQ2hpbGRyZW4gPSBOSUw7CisJUlBSUGF0dGVy bk5vZGUgKnByZXYgPSBOVUxMOworCWludAkJCWNvdW50ID0gMDsKKworCWZvcmVhY2gobGMsIGNo aWxkcmVuKQorCXsKKwkJUlBSUGF0dGVybk5vZGUgKmNoaWxkID0gKFJQUlBhdHRlcm5Ob2RlICop IGxmaXJzdChsYyk7CisKKwkJaWYgKGNoaWxkLT5ub2RlVHlwZSA9PSBSUFJfUEFUVEVSTl9BTFQg JiYgY2hpbGQtPnJlbHVjdGFudCA9PSBmYWxzZSkKKwkJeworCQkJaWYgKHByZXYgIT0gTlVMTCAm JgorCQkJCXJwclBhdHRlcm5DaGlsZHJlbkVxdWFsKHByZXYtPmNoaWxkcmVuLCBjaGlsZC0+Y2hp bGRyZW4pKQorCQkJeworCQkJCS8qIFNhbWUgQUxUIGFzIHByZXYgLSBhY2N1bXVsYXRlICovCisJ CQkJY291bnQrKzsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQkvKiBEaWZmZXJlbnQgQUxUIG9y IGZpcnN0IEFMVCAtIGZsdXNoIHByZXZpb3VzICovCisJCQkJaWYgKHByZXYgIT0gTlVMTCkKKwkJ CQl7CisJCQkJCWlmIChjb3VudCA+IDEpCisJCQkJCXsKKwkJCQkJCS8qIFdyYXAgaW4gR1JPVVB7 Y291bnQsY291bnR9KEFMVCkgKi8KKwkJCQkJCVJQUlBhdHRlcm5Ob2RlICpncm91cCA9IG1ha2VO b2RlKFJQUlBhdHRlcm5Ob2RlKTsKKworCQkJCQkJZ3JvdXAtPm5vZGVUeXBlID0gUlBSX1BBVFRF Uk5fR1JPVVA7CisJCQkJCQlncm91cC0+bWluID0gY291bnQ7CisJCQkJCQlncm91cC0+bWF4ID0g Y291bnQ7CisJCQkJCQlncm91cC0+cmVsdWN0YW50ID0gZmFsc2U7CisJCQkJCQlncm91cC0+cmVs dWN0YW50X2xvY2F0aW9uID0gLTE7CisJCQkJCQlncm91cC0+bG9jYXRpb24gPSAtMTsKKwkJCQkJ CWdyb3VwLT5jaGlsZHJlbiA9IGxpc3RfbWFrZTEocHJldik7CisJCQkJCQltZXJnZWRDaGlsZHJl biA9IGxhcHBlbmQobWVyZ2VkQ2hpbGRyZW4sIGdyb3VwKTsKKwkJCQkJfQorCQkJCQllbHNlCisJ CQkJCQltZXJnZWRDaGlsZHJlbiA9IGxhcHBlbmQobWVyZ2VkQ2hpbGRyZW4sIHByZXYpOworCQkJ CX0KKwkJCQlwcmV2ID0gY2hpbGQ7CisJCQkJY291bnQgPSAxOworCQkJfQorCQl9CisJCWVsc2UK KwkJeworCQkJLyogTm9uLUFMVCAtIGZsdXNoIHByZXZpb3VzICovCisJCQlpZiAocHJldiAhPSBO VUxMKQorCQkJeworCQkJCWlmIChjb3VudCA+IDEpCisJCQkJeworCQkJCQlSUFJQYXR0ZXJuTm9k ZSAqZ3JvdXAgPSBtYWtlTm9kZShSUFJQYXR0ZXJuTm9kZSk7CisKKwkJCQkJZ3JvdXAtPm5vZGVU eXBlID0gUlBSX1BBVFRFUk5fR1JPVVA7CisJCQkJCWdyb3VwLT5taW4gPSBjb3VudDsKKwkJCQkJ Z3JvdXAtPm1heCA9IGNvdW50OworCQkJCQlncm91cC0+cmVsdWN0YW50ID0gZmFsc2U7CisJCQkJ CWdyb3VwLT5yZWx1Y3RhbnRfbG9jYXRpb24gPSAtMTsKKwkJCQkJZ3JvdXAtPmxvY2F0aW9uID0g LTE7CisJCQkJCWdyb3VwLT5jaGlsZHJlbiA9IGxpc3RfbWFrZTEocHJldik7CisJCQkJCW1lcmdl ZENoaWxkcmVuID0gbGFwcGVuZChtZXJnZWRDaGlsZHJlbiwgZ3JvdXApOworCQkJCX0KKwkJCQll bHNlCisJCQkJCW1lcmdlZENoaWxkcmVuID0gbGFwcGVuZChtZXJnZWRDaGlsZHJlbiwgcHJldik7 CisJCQl9CisJCQltZXJnZWRDaGlsZHJlbiA9IGxhcHBlbmQobWVyZ2VkQ2hpbGRyZW4sIGNoaWxk KTsKKwkJCXByZXYgPSBOVUxMOworCQkJY291bnQgPSAwOworCQl9CisJfQorCisJLyogRmx1c2gg cmVtYWluaW5nICovCisJaWYgKHByZXYgIT0gTlVMTCkKKwl7CisJCWlmIChjb3VudCA+IDEpCisJ CXsKKwkJCVJQUlBhdHRlcm5Ob2RlICpncm91cCA9IG1ha2VOb2RlKFJQUlBhdHRlcm5Ob2RlKTsK KworCQkJZ3JvdXAtPm5vZGVUeXBlID0gUlBSX1BBVFRFUk5fR1JPVVA7CisJCQlncm91cC0+bWlu ID0gY291bnQ7CisJCQlncm91cC0+bWF4ID0gY291bnQ7CisJCQlncm91cC0+cmVsdWN0YW50ID0g ZmFsc2U7CisJCQlncm91cC0+cmVsdWN0YW50X2xvY2F0aW9uID0gLTE7CisJCQlncm91cC0+bG9j YXRpb24gPSAtMTsKKwkJCWdyb3VwLT5jaGlsZHJlbiA9IGxpc3RfbWFrZTEocHJldik7CisJCQlt ZXJnZWRDaGlsZHJlbiA9IGxhcHBlbmQobWVyZ2VkQ2hpbGRyZW4sIGdyb3VwKTsKKwkJfQorCQll bHNlCisJCQltZXJnZWRDaGlsZHJlbiA9IGxhcHBlbmQobWVyZ2VkQ2hpbGRyZW4sIHByZXYpOwor CX0KKworCXJldHVybiBtZXJnZWRDaGlsZHJlbjsKK30KKworLyoKKyAqIG1lcmdlR3JvdXBQcmVm aXhTdWZmaXgKKyAqCQlNZXJnZSBzZXF1ZW5jZSBwcmVmaXgvc3VmZml4IGludG8gR1JPVVAgd2l0 aCBtYXRjaGluZyBjaGlsZHJlbi4KKyAqCisgKiBXaGVuIGEgR1JPVVAncyBjaGlsZHJlbiBhcHBl YXIgYXMgYSBwcmVmaXggYmVmb3JlIGFuZC9vciBzdWZmaXggYWZ0ZXIKKyAqIHRoZSBHUk9VUCBp biBhIFNFUSwgYWJzb3JiIHRoZW0gYnkgaW5jcmVtZW50aW5nIHRoZSBHUk9VUCdzIHF1YW50aWZp ZXIuCisgKiBUaGlzIHJ1bnMgaXRlcmF0aXZlbHk6IEEgQiBBIEIgKEEgQikrIEEgQiAtPiAoQSBC KXs1LH0uCisgKgorICogQWxnb3JpdGhtOgorICogICBGb3IgZWFjaCBHUk9VUCBlbmNvdW50ZXJl ZCBpbiB0aGUgc2VxdWVuY2U6CisgKiAgIDEuIFBSRUZJWCBwaGFzZTogY29tcGFyZSB0aGUgbGFz dCBOIGVsZW1lbnRzIGFscmVhZHkgaW4gdGhlIHJlc3VsdAorICogICAgICBsaXN0IGFnYWluc3Qg dGhlIEdST1VQJ3MgY2hpbGRyZW4uICBPbiBtYXRjaCwgcmVtb3ZlIHRoZW0gZnJvbQorICogICAg ICByZXN1bHQgYW5kIGluY3JlbWVudCB0aGUgR1JPVVAncyBtaW4vbWF4LiAgUmVwZWF0IHVudGls IG5vIG1hdGNoLgorICogICAyLiBTVUZGSVggcGhhc2U6IGNvbXBhcmUgdGhlIG5leHQgTiBlbGVt ZW50cyBpbiB0aGUgaW5wdXQgYWdhaW5zdAorICogICAgICB0aGUgR1JPVVAncyBjaGlsZHJlbi4g IE9uIG1hdGNoLCBza2lwIHRoZW0gKHZpYSBza2lwVW50aWwpIGFuZAorICogICAgICBpbmNyZW1l bnQgbWluL21heC4gIFJlcGVhdCB1bnRpbCBubyBtYXRjaC4KKyAqCisgKiBFeGFtcGxlczoKKyAq ICAgQSBCIChBIEIpKyAtPiAoQSBCKXsyLH0KKyAqICAgKEEgQikrIEEgQiAtPiAoQSBCKXsyLH0K KyAqICAgQSBCIChBIEIpKyBBIEIgLT4gKEEgQil7Myx9CisgKi8KK3N0YXRpYyBMaXN0ICoKK21l cmdlR3JvdXBQcmVmaXhTdWZmaXgoTGlzdCAqY2hpbGRyZW4pCit7CisJTGlzdAkgICAqcmVzdWx0 ID0gTklMOworCWludAkJCW51bUNoaWxkcmVuID0gbGlzdF9sZW5ndGgoY2hpbGRyZW4pOworCWlu dAkJCWk7CisJaW50CQkJc2tpcFVudGlsID0gLTE7IC8qIHNraXAgc3VmZml4IGVsZW1lbnRzIGFs cmVhZHkgYWJzb3JiZWQgKi8KKworCWZvciAoaSA9IDA7IGkgPCBudW1DaGlsZHJlbjsgaSsrKQor CXsKKwkJUlBSUGF0dGVybk5vZGUgKmNoaWxkID0gKFJQUlBhdHRlcm5Ob2RlICopIGxpc3RfbnRo KGNoaWxkcmVuLCBpKTsKKworCQkvKgorCQkgKiBUaGUgc3VmZml4IGFic29ycHRpb24gbG9naWMg YmVsb3cgYWRqdXN0cyBpIHRvIHNraXAgYWJzb3JiZWQKKwkJICogZWxlbWVudHMsIGVuc3VyaW5n IHdlIG5ldmVyIHJldmlzaXQgdGhlbS4gVmVyaWZ5IHRoaXMgaW52YXJpYW50LgorCQkgKi8KKwkJ QXNzZXJ0KGkgPj0gc2tpcFVudGlsKTsKKworCQkvKgorCQkgKiBJZiB0aGlzIGlzIGEgR1JPVVAs IHNlZSBpZiBwcmVjZWRpbmcvZm9sbG93aW5nIGVsZW1lbnRzIG1hdGNoIGl0cworCQkgKiBjaGls ZHJlbi4gR1JPVVAncyBjb250ZW50IG1heSBiZSB3cmFwcGVkIGluIGEgU0VRIC0gdW53cmFwIGZv cgorCQkgKiBjb21wYXJpc29uLgorCQkgKi8KKwkJaWYgKGNoaWxkLT5ub2RlVHlwZSA9PSBSUFJf UEFUVEVSTl9HUk9VUCAmJiBjaGlsZC0+cmVsdWN0YW50ID09IGZhbHNlKQorCQl7CisJCQlMaXN0 CSAgICpncm91cENvbnRlbnQgPSBjaGlsZC0+Y2hpbGRyZW47CisJCQlpbnQJCQlncm91cENoaWxk Q291bnQ7CisJCQlpbnQJCQlwcmVmaXhMZW4gPSBsaXN0X2xlbmd0aChyZXN1bHQpOworCQkJTGlz dAkgICAqdHJpbW1lZDsKKworCQkJLyoKKwkJCSAqIElmIEdST1VQIGhhcyBzaW5nbGUgU0VRIGNo aWxkLCBjb21wYXJlIHdpdGggU0VRJ3MgY2hpbGRyZW4uCisJCQkgKiBlLmcuLCAoQSBCKSsgaW50 ZXJuYWxseSBjb250YWlucyBzZXF1ZW5jZSBBIEI7IGNvbXBhcmUgYWdhaW5zdAorCQkJICogdGhh dC4KKwkJCSAqLworCQkJaWYgKGxpc3RfbGVuZ3RoKGdyb3VwQ29udGVudCkgPT0gMSkKKwkJCXsK KwkJCQlSUFJQYXR0ZXJuTm9kZSAqaW5uZXIgPSAoUlBSUGF0dGVybk5vZGUgKikgbGluaXRpYWwo Z3JvdXBDb250ZW50KTsKKworCQkJCWlmIChpbm5lci0+bm9kZVR5cGUgPT0gUlBSX1BBVFRFUk5f U0VRKQorCQkJCQlncm91cENvbnRlbnQgPSBpbm5lci0+Y2hpbGRyZW47CisJCQl9CisKKwkJCWdy b3VwQ2hpbGRDb3VudCA9IGxpc3RfbGVuZ3RoKGdyb3VwQ29udGVudCk7CisKKwkJCS8qCisJCQkg KiBQUkVGSVggTUVSR0U6IENoZWNrIGlmIHByZWNlZGluZyBlbGVtZW50cyBtYXRjaC4gS2VlcCBh YnNvcmJpbmcKKwkJCSAqIGFzIGxvbmcgYXMgd2UgaGF2ZSBtYXRjaGluZyBwcmVmaXhlcy4KKwkJ CSAqLworCQkJd2hpbGUgKHByZWZpeExlbiA+PSBncm91cENoaWxkQ291bnQgJiYgZ3JvdXBDaGls ZENvdW50ID4gMCkKKwkJCXsKKwkJCQlMaXN0CSAgICpwcmVmaXhFbGVtZW50cyA9IE5JTDsKKwkJ CQlpbnQJCQlqOworCisJCQkJLyogRXh0cmFjdCBsYXN0IGdyb3VwQ2hpbGRDb3VudCBlbGVtZW50 cyBmcm9tIHByZWZpeCAqLworCQkJCWZvciAoaiA9IHByZWZpeExlbiAtIGdyb3VwQ2hpbGRDb3Vu dDsgaiA8IHByZWZpeExlbjsgaisrKQorCQkJCXsKKwkJCQkJcHJlZml4RWxlbWVudHMgPSBsYXBw ZW5kKHByZWZpeEVsZW1lbnRzLAorCQkJCQkJCQkJCQkgbGlzdF9udGgocmVzdWx0LCBqKSk7CisJ CQkJfQorCisJCQkJLyogQ29tcGFyZSB3aXRoIEdST1VQJ3MgKHBvc3NpYmx5IHVud3JhcHBlZCkg Y2hpbGRyZW4gKi8KKwkJCQlpZiAocnByUGF0dGVybkNoaWxkcmVuRXF1YWwocHJlZml4RWxlbWVu dHMsIGdyb3VwQ29udGVudCkgJiYKKwkJCQkJY2hpbGQtPm1pbiA8IFJQUl9RVUFOVElUWV9JTkYg LSAxICYmCisJCQkJCShjaGlsZC0+bWF4ID09IFJQUl9RVUFOVElUWV9JTkYgfHwKKwkJCQkJIGNo aWxkLT5tYXggPCBSUFJfUVVBTlRJVFlfSU5GIC0gMSkpCisJCQkJeworCQkJCQkvKgorCQkJCQkg KiBNYXRjaCEgTWVyZ2UgYnkgaW5jcmVtZW50aW5nIEdST1VQJ3MgcXVhbnRpZmllci4gUmVtb3Zl CisJCQkJCSAqIHRoZSBwcmVmaXggZWxlbWVudHMgZnJvbSBvdXRwdXQuCisJCQkJCSAqLworCQkJ CQljaGlsZC0+bWluICs9IDE7CisJCQkJCWlmIChjaGlsZC0+bWF4ICE9IFJQUl9RVUFOVElUWV9J TkYpCisJCQkJCQljaGlsZC0+bWF4ICs9IDE7CisKKwkJCQkJLyogUmVidWlsZCByZXN1bHQgd2l0 aG91dCBtYXRjaGVkIHByZWZpeCAqLworCQkJCQl0cmltbWVkID0gTklMOworCQkJCQlmb3IgKGog PSAwOyBqIDwgcHJlZml4TGVuIC0gZ3JvdXBDaGlsZENvdW50OyBqKyspCisJCQkJCXsKKwkJCQkJ CXRyaW1tZWQgPSBsYXBwZW5kKHRyaW1tZWQsCisJCQkJCQkJCQkJICBsaXN0X250aChyZXN1bHQs IGopKTsKKwkJCQkJfQorCQkJCQlyZXN1bHQgPSB0cmltbWVkOworCQkJCQlwcmVmaXhMZW4gPSBs aXN0X2xlbmd0aChyZXN1bHQpOworCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQlsaXN0X2Zy ZWUocHJlZml4RWxlbWVudHMpOworCQkJCQlicmVhazsKKwkJCQl9CisKKwkJCQlsaXN0X2ZyZWUo cHJlZml4RWxlbWVudHMpOworCQkJfQorCisJCQkvKgorCQkJICogU1VGRklYIE1FUkdFOiBDaGVj ayBpZiBmb2xsb3dpbmcgZWxlbWVudHMgbWF0Y2guIEtlZXAgYWJzb3JiaW5nCisJCQkgKiBhcyBs b25nIGFzIHdlIGhhdmUgbWF0Y2hpbmcgc3VmZml4ZXMuCisJCQkgKi8KKwkJCXdoaWxlIChpICsg Z3JvdXBDaGlsZENvdW50IDwgbnVtQ2hpbGRyZW4gJiYgZ3JvdXBDaGlsZENvdW50ID4gMCkKKwkJ CXsKKwkJCQlMaXN0CSAgICpzdWZmaXhFbGVtZW50cyA9IE5JTDsKKwkJCQlpbnQJCQlqOworCQkJ CWludAkJCXN1ZmZpeFN0YXJ0ID0gaSArIDE7CisKKwkJCQkvKiBzdWZmaXhTdGFydCBhbHdheXMg Pj0gc2tpcFVudGlsIGFmdGVyIGkgYWRqdXN0bWVudCAqLworCQkJCUFzc2VydChza2lwVW50aWwg PD0gc3VmZml4U3RhcnQpOworCisJCQkJLyogRXh0cmFjdCBuZXh0IGdyb3VwQ2hpbGRDb3VudCBl bGVtZW50cyBhcyBzdWZmaXggKi8KKwkJCQlmb3IgKGogPSAwOyBqIDwgZ3JvdXBDaGlsZENvdW50 OyBqKyspCisJCQkJeworCQkJCQlpbnQJCQlpZHggPSBzdWZmaXhTdGFydCArIGo7CisKKwkJCQkJ Lyogd2hpbGUgY29uZGl0aW9uIGd1YXJhbnRlZXMgaWR4IDwgbnVtQ2hpbGRyZW4gKi8KKwkJCQkJ QXNzZXJ0KGlkeCA8IG51bUNoaWxkcmVuKTsKKwkJCQkJc3VmZml4RWxlbWVudHMgPSBsYXBwZW5k KHN1ZmZpeEVsZW1lbnRzLAorCQkJCQkJCQkJCQkgbGlzdF9udGgoY2hpbGRyZW4sIGlkeCkpOwor CQkJCX0KKworCQkJCS8qIENvbXBhcmUgd2l0aCBHUk9VUCdzIGNoaWxkcmVuICovCisJCQkJaWYg KGxpc3RfbGVuZ3RoKHN1ZmZpeEVsZW1lbnRzKSA9PSBncm91cENoaWxkQ291bnQgJiYKKwkJCQkJ cnByUGF0dGVybkNoaWxkcmVuRXF1YWwoc3VmZml4RWxlbWVudHMsIGdyb3VwQ29udGVudCkgJiYK KwkJCQkJY2hpbGQtPm1pbiA8IFJQUl9RVUFOVElUWV9JTkYgLSAxICYmCisJCQkJCShjaGlsZC0+ bWF4ID09IFJQUl9RVUFOVElUWV9JTkYgfHwKKwkJCQkJIGNoaWxkLT5tYXggPCBSUFJfUVVBTlRJ VFlfSU5GIC0gMSkpCisJCQkJeworCQkJCQkvKgorCQkJCQkgKiBNYXRjaCEgQWJzb3JiIHN1ZmZp eCBieSBpbmNyZW1lbnRpbmcgcXVhbnRpZmllciBhbmQKKwkJCQkJICogc2tpcHBpbmcuCisJCQkJ CSAqLworCQkJCQljaGlsZC0+bWluICs9IDE7CisJCQkJCWlmIChjaGlsZC0+bWF4ICE9IFJQUl9R VUFOVElUWV9JTkYpCisJCQkJCQljaGlsZC0+bWF4ICs9IDE7CisJCQkJCXNraXBVbnRpbCA9IHN1 ZmZpeFN0YXJ0ICsgZ3JvdXBDaGlsZENvdW50OworCisJCQkJCS8qCisJCQkJCSAqIFVwZGF0ZSBp IHRvIGNvbnRpbnVlIHN1ZmZpeCBjaGVjayBhZnRlciBhYnNvcmJlZAorCQkJCQkgKiBlbGVtZW50 cworCQkJCQkgKi8KKwkJCQkJaSA9IHNraXBVbnRpbCAtIDE7CisJCQkJfQorCQkJCWVsc2UKKwkJ CQl7CisJCQkJCWxpc3RfZnJlZShzdWZmaXhFbGVtZW50cyk7CisJCQkJCWJyZWFrOworCQkJCX0K KworCQkJCWxpc3RfZnJlZShzdWZmaXhFbGVtZW50cyk7CisJCQl9CisJCX0KKworCQlyZXN1bHQg PSBsYXBwZW5kKHJlc3VsdCwgY2hpbGQpOworCX0KKworCXJldHVybiByZXN1bHQ7Cit9CisKKy8q CisgKiBvcHRpbWl6ZVNlcVBhdHRlcm4KKyAqCQlPcHRpbWl6ZSBTRVEgcGF0dGVybiBub2RlLgor ICoKKyAqIE9wdGltaXphdGlvbnM6CisgKiAgIDEuIEZsYXR0ZW4gbmVzdGVkIFNFUSBhbmQgR1JP VVB7MSwxfQorICogICAyLiBNZXJnZSBjb25zZWN1dGl2ZSBpZGVudGljYWwgVkFSIG5vZGVzCisg KiAgIDMuIE1lcmdlIGNvbnNlY3V0aXZlIGlkZW50aWNhbCBHUk9VUCBub2RlcworICogICA0LiBN ZXJnZSBjb25zZWN1dGl2ZSBpZGVudGljYWwgQUxUIG5vZGVzIGludG8gR1JPVVAKKyAqICAgNS4g TWVyZ2UgcHJlZml4L3N1ZmZpeCBpbnRvIEdST1VQIHdpdGggbWF0Y2hpbmcgY2hpbGRyZW4KKyAq ICAgNi4gVW53cmFwIHNpbmdsZS1pdGVtIFNFUQorICovCitzdGF0aWMgUlBSUGF0dGVybk5vZGUg Kgorb3B0aW1pemVTZXFQYXR0ZXJuKFJQUlBhdHRlcm5Ob2RlICpwYXR0ZXJuKQoreworCS8qIFJl Y3Vyc2l2ZWx5IG9wdGltaXplIGNoaWxkcmVuIGFuZCBmbGF0dGVuIG5lc3RlZCBTRVEvR1JPVVB7 MSwxfSAqLworCXBhdHRlcm4tPmNoaWxkcmVuID0gZmxhdHRlblNlcUNoaWxkcmVuKHBhdHRlcm4t PmNoaWxkcmVuKTsKKworCS8qIE1lcmdlIGNvbnNlY3V0aXZlIGlkZW50aWNhbCBWQVIgbm9kZXMg Ki8KKwlwYXR0ZXJuLT5jaGlsZHJlbiA9IG1lcmdlQ29uc2VjdXRpdmVWYXJzKHBhdHRlcm4tPmNo aWxkcmVuKTsKKworCS8qIE1lcmdlIGNvbnNlY3V0aXZlIGlkZW50aWNhbCBHUk9VUCBub2RlcyAq LworCXBhdHRlcm4tPmNoaWxkcmVuID0gbWVyZ2VDb25zZWN1dGl2ZUdyb3VwcyhwYXR0ZXJuLT5j aGlsZHJlbik7CisKKwkvKiBNZXJnZSBjb25zZWN1dGl2ZSBpZGVudGljYWwgQUxUIG5vZGVzIGlu dG8gR1JPVVAgKi8KKwlwYXR0ZXJuLT5jaGlsZHJlbiA9IG1lcmdlQ29uc2VjdXRpdmVBbHRzKHBh dHRlcm4tPmNoaWxkcmVuKTsKKworCS8qIE1lcmdlIHByZWZpeC9zdWZmaXggaW50byBHUk9VUCB3 aXRoIG1hdGNoaW5nIGNoaWxkcmVuICovCisJcGF0dGVybi0+Y2hpbGRyZW4gPSBtZXJnZUdyb3Vw UHJlZml4U3VmZml4KHBhdHRlcm4tPmNoaWxkcmVuKTsKKworCS8qIFVud3JhcCBzaW5nbGUtaXRl bSBTRVEgKi8KKwlyZXR1cm4gdHJ5VW53cmFwU2luZ2xlQ2hpbGQocGF0dGVybik7Cit9CisKKy8q CisgKiBmbGF0dGVuQWx0Q2hpbGRyZW4KKyAqCQlSZWN1cnNpdmVseSBvcHRpbWl6ZSBjaGlsZHJl biBhbmQgZmxhdHRlbiBuZXN0ZWQgQUxUIG5vZGVzLgorICoKKyAqIEV4YW1wbGU6CisgKiAgIChB IHwgKEIgfCBDKSkgLT4gKEEgfCBCIHwgQykKKyAqCisgKiBSZXR1cm5zIGEgbmV3IGxpc3Qgd2l0 aCBvcHRpbWl6ZWQgY2hpbGRyZW4sIHdpdGggbmVzdGVkIEFMVCBjaGlsZHJlbgorICogZmxhdHRl bmVkIGludG8gdGhlIHBhcmVudCBsaXN0LgorICovCitzdGF0aWMgTGlzdCAqCitmbGF0dGVuQWx0 Q2hpbGRyZW4oTGlzdCAqY2hpbGRyZW4pCit7CisJTGlzdENlbGwgICAqbGM7CisJTGlzdAkgICAq bmV3Q2hpbGRyZW4gPSBOSUw7CisKKwlmb3JlYWNoKGxjLCBjaGlsZHJlbikKKwl7CisJCVJQUlBh dHRlcm5Ob2RlICpjaGlsZCA9IChSUFJQYXR0ZXJuTm9kZSAqKSBsZmlyc3QobGMpOworCQlSUFJQ YXR0ZXJuTm9kZSAqb3B0ID0gb3B0aW1pemVSUFJQYXR0ZXJuKGNoaWxkKTsKKworCQlpZiAob3B0 LT5ub2RlVHlwZSA9PSBSUFJfUEFUVEVSTl9BTFQpCisJCQluZXdDaGlsZHJlbiA9IGxpc3RfY29u Y2F0KG5ld0NoaWxkcmVuLCBsaXN0X2NvcHkob3B0LT5jaGlsZHJlbikpOworCQllbHNlCisJCQlu ZXdDaGlsZHJlbiA9IGxhcHBlbmQobmV3Q2hpbGRyZW4sIG9wdCk7CisJfQorCisJcmV0dXJuIG5l d0NoaWxkcmVuOworfQorCisvKgorICogcmVtb3ZlRHVwbGljYXRlQWx0ZXJuYXRpdmVzCisgKgkJ UmVtb3ZlIGR1cGxpY2F0ZSBhbHRlcm5hdGl2ZXMgZnJvbSBhIGxpc3QuCisgKgorICogRXhhbXBs ZXM6CisgKiAgIChBIHwgQiB8IEEpIC0+IChBIHwgQikKKyAqICAgKFggfCBZIHwgWCB8IFogfCBZ KSAtPiAoWCB8IFkgfCBaKQorICoKKyAqIFJldHVybnMgYSBuZXcgbGlzdCB3aXRoIG9ubHkgdW5p cXVlIGNoaWxkcmVuIChmaXJzdCBvY2N1cnJlbmNlIGtlcHQpLgorICovCitzdGF0aWMgTGlzdCAq CityZW1vdmVEdXBsaWNhdGVBbHRlcm5hdGl2ZXMoTGlzdCAqY2hpbGRyZW4pCit7CisJTGlzdENl bGwgICAqbGM7CisJTGlzdENlbGwgICAqbGMyOworCUxpc3QJICAgKnVuaXF1ZUNoaWxkcmVuID0g TklMOworCisJZm9yZWFjaChsYywgY2hpbGRyZW4pCisJeworCQlSUFJQYXR0ZXJuTm9kZSAqY2hp bGQgPSAoUlBSUGF0dGVybk5vZGUgKikgbGZpcnN0KGxjKTsKKwkJYm9vbAkJaXNEdXBsaWNhdGUg PSBmYWxzZTsKKworCQlmb3JlYWNoKGxjMiwgdW5pcXVlQ2hpbGRyZW4pCisJCXsKKwkJCWlmIChy cHJQYXR0ZXJuRXF1YWwoKFJQUlBhdHRlcm5Ob2RlICopIGxmaXJzdChsYzIpLCBjaGlsZCkpCisJ CQl7CisJCQkJaXNEdXBsaWNhdGUgPSB0cnVlOworCQkJCWJyZWFrOworCQkJfQorCQl9CisKKwkJ aWYgKCFpc0R1cGxpY2F0ZSkKKwkJCXVuaXF1ZUNoaWxkcmVuID0gbGFwcGVuZCh1bmlxdWVDaGls ZHJlbiwgY2hpbGQpOworCX0KKworCXJldHVybiB1bmlxdWVDaGlsZHJlbjsKK30KKworLyoKKyAq IG9wdGltaXplQWx0UGF0dGVybgorICoJCU9wdGltaXplIEFMVCBwYXR0ZXJuIG5vZGUuCisgKgor ICogT3B0aW1pemF0aW9uczoKKyAqICAgMS4gRmxhdHRlbiBuZXN0ZWQgQUxUCisgKiAgIDIuIFJl bW92ZSBkdXBsaWNhdGUgYWx0ZXJuYXRpdmVzCisgKiAgIDMuIFVud3JhcCBzaW5nbGUtaXRlbSBB TFQKKyAqLworc3RhdGljIFJQUlBhdHRlcm5Ob2RlICoKK29wdGltaXplQWx0UGF0dGVybihSUFJQ YXR0ZXJuTm9kZSAqcGF0dGVybikKK3sKKwkvKiBSZWN1cnNpdmVseSBvcHRpbWl6ZSBjaGlsZHJl biBhbmQgZmxhdHRlbiBuZXN0ZWQgQUxUICovCisJcGF0dGVybi0+Y2hpbGRyZW4gPSBmbGF0dGVu QWx0Q2hpbGRyZW4ocGF0dGVybi0+Y2hpbGRyZW4pOworCisJLyogUmVtb3ZlIGR1cGxpY2F0ZSBh bHRlcm5hdGl2ZXMgKi8KKwlwYXR0ZXJuLT5jaGlsZHJlbiA9IHJlbW92ZUR1cGxpY2F0ZUFsdGVy bmF0aXZlcyhwYXR0ZXJuLT5jaGlsZHJlbik7CisKKwkvKiBVbndyYXAgc2luZ2xlLWl0ZW0gQUxU ICovCisJcmV0dXJuIHRyeVVud3JhcFNpbmdsZUNoaWxkKHBhdHRlcm4pOworfQorCisvKgorICog dHJ5TXVsdGlwbHlRdWFudGlmaWVycworICoJCVRyeSB0byBtdWx0aXBseSBxdWFudGlmaWVycy4K KyAqCisgKiBNdWx0aXBsaWNhdGlvbiBpcyBTQUZFIHdoZW46CisgKiAgIDEuIEJvdGggdW5ib3Vu ZGVkOiAoQSopKiAtPiBBKiwgKEErKSsgLT4gQSsKKyAqICAgMi4gT3V0ZXIgZXhhY3Q6IChBe20s bn0pe2t9IC0+IEF7bSprLCBuKmt9CisgKiAgIDMuIE91dGVyIHJhbmdlICsgY2hpbGQgezEsMX06 IChBKXsyLH0gLT4gQXsyLH0KKyAqCisgKiBNdWx0aXBsaWNhdGlvbiBpcyBOT1Qgc2FmZSB3aGVu OgorICogICAtIE9ubHkgY2hpbGQgdW5ib3VuZGVkOiAoQSspezN9IGhhcyBkaWZmZXJlbnQgc2Vt YW50aWNzCisgKiAgIC0gT3V0ZXIgcmFuZ2UgKyBjaGlsZCBub3QgezEsMX06IGdhcHMgcG9zc2li bGUKKyAqICAgICBlLmcuLCAoQXsyfSl7MiwzfSB5aWVsZHMgNCw2IG9ubHkgKG5vdCA0LDUsNikK KyAqCisgKiBSZXR1cm5zIHRoZSBjaGlsZCBub2RlIHdpdGggbXVsdGlwbGllZCBxdWFudGlmaWVy cyBpZiBzdWNjZXNzZnVsLAorICogb3RoZXJ3aXNlIHJldHVybnMgdGhlIG9yaWdpbmFsIHBhdHRl cm4gdW5jaGFuZ2VkLgorICovCitzdGF0aWMgUlBSUGF0dGVybk5vZGUgKgordHJ5TXVsdGlwbHlR dWFudGlmaWVycyhSUFJQYXR0ZXJuTm9kZSAqcGF0dGVybikKK3sKKwlSUFJQYXR0ZXJuTm9kZSAq Y2hpbGQ7CisJaW50NjQJCW5ld19taW5fNjQ7CisJaW50NjQJCW5ld19tYXhfNjQ7CisKKwkvKiBQ YXJzZXIgYWx3YXlzIGNyZWF0ZXMgR1JPVVAgd2l0aCBleGFjdGx5IG9uZSBjaGlsZCAqLworCUFz c2VydChsaXN0X2xlbmd0aChwYXR0ZXJuLT5jaGlsZHJlbikgPT0gMSk7CisKKwlpZiAocGF0dGVy bi0+cmVsdWN0YW50KQorCQlyZXR1cm4gcGF0dGVybjsKKworCWNoaWxkID0gKFJQUlBhdHRlcm5O b2RlICopIGxpbml0aWFsKHBhdHRlcm4tPmNoaWxkcmVuKTsKKworCWlmICgoY2hpbGQtPm5vZGVU eXBlICE9IFJQUl9QQVRURVJOX1ZBUiAmJgorCQkgY2hpbGQtPm5vZGVUeXBlICE9IFJQUl9QQVRU RVJOX0dST1VQKSB8fAorCQljaGlsZC0+cmVsdWN0YW50KQorCQlyZXR1cm4gcGF0dGVybjsKKwor CS8qIENhc2UgMTogQm90aCB1bmJvdW5kZWQgLSAoQSopKiAtPiBBKiwgKEErKSsgLT4gQSsgKi8K KwlpZiAoY2hpbGQtPm1heCA9PSBSUFJfUVVBTlRJVFlfSU5GICYmIHBhdHRlcm4tPm1heCA9PSBS UFJfUVVBTlRJVFlfSU5GKQorCXsKKwkJbmV3X21pbl82NCA9IChpbnQ2NCkgY2hpbGQtPm1pbiAq IHBhdHRlcm4tPm1pbjsKKwkJaWYgKG5ld19taW5fNjQgPj0gUlBSX1FVQU5USVRZX0lORikKKwkJ CXJldHVybiBwYXR0ZXJuOwkJLyogb3ZlcmZsb3csIHNraXAgb3B0aW1pemF0aW9uICovCisKKwkJ Y2hpbGQtPm1pbiA9IChpbnQpIG5ld19taW5fNjQ7CisJCWNoaWxkLT5tYXggPSBSUFJfUVVBTlRJ VFlfSU5GOworCQlyZXR1cm4gY2hpbGQ7CisJfQorCisJLyotLS0tLS0tLS0tCisJICogQ2FzZSAy OiBPdXRlciBleGFjdCAobWluID09IG1heCk6IChBezIsM30pezR9IC0+IEF7OCwxMn0uCisJICog ICAgICAgICBTYWZlIGJlY2F1c2UgZXZlcnkgaXRlcmF0aW9uIHByb2R1Y2VzIHRoZSBzYW1lIHJh bmdlLgorCSAqCisJICogQ2FzZSAzOiBDaGlsZCB7MSwxfTogKEEpezIsNX0gLT4gQXsyLDV9Lgor CSAqICAgICAgICAgU2FmZSBiZWNhdXNlIHRoZSBjaGlsZCBjb250cmlidXRlcyBleGFjdGx5IG9u ZSBwZXIKKwkgKiAgICAgICAgIGl0ZXJhdGlvbiwgc28gdGhlIG91dGVyIHJhbmdlIG1hcHMgZGly ZWN0bHkuCisJICoKKwkgKiBVbnNhZmUgZXhhbXBsZTogKEF7Mn0pezIsM30gcHJvZHVjZXMgY291 bnRzIDQgb3IgNiBvbmx5LCBub3QgdGhlIGZ1bGwKKwkgKiByYW5nZSA0Li42LCBzbyB3ZSBjYW5u b3QgZmxhdHRlbiB3aGVuIGNoaWxkIGhhcyBhIG5vbi10cml2aWFsIHJhbmdlIEFORAorCSAqIG91 dGVyIGlzIGFsc28gYSByYW5nZS4KKwkgKi0tLS0tLS0tLS0KKwkgKi8KKwlpZiAoY2hpbGQtPm1h eCAhPSBSUFJfUVVBTlRJVFlfSU5GICYmCisJCShwYXR0ZXJuLT5taW4gPT0gcGF0dGVybi0+bWF4 IHx8CisJCSAoY2hpbGQtPm1pbiA9PSAxICYmIGNoaWxkLT5tYXggPT0gMSkpKQorCXsKKwkJbmV3 X21pbl82NCA9IChpbnQ2NCkgcGF0dGVybi0+bWluICogY2hpbGQtPm1pbjsKKwkJaWYgKG5ld19t aW5fNjQgPj0gUlBSX1FVQU5USVRZX0lORikKKwkJCXJldHVybiBwYXR0ZXJuOworCisJCS8qIE91 dGVyIHVuYm91bmRlZDogcmVzdWx0IGlzIHVuYm91bmRlZCByZWdhcmRsZXNzIG9mIGNoaWxkICov CisJCWlmIChwYXR0ZXJuLT5tYXggPT0gUlBSX1FVQU5USVRZX0lORikKKwkJCW5ld19tYXhfNjQg PSBSUFJfUVVBTlRJVFlfSU5GOworCQllbHNlCisJCXsKKwkJCW5ld19tYXhfNjQgPSAoaW50NjQp IHBhdHRlcm4tPm1heCAqIGNoaWxkLT5tYXg7CisKKwkJCWlmIChuZXdfbWF4XzY0ID49IFJQUl9R VUFOVElUWV9JTkYpCisJCQkJcmV0dXJuIHBhdHRlcm47CisJCX0KKworCQljaGlsZC0+bWluID0g KGludCkgbmV3X21pbl82NDsKKwkJY2hpbGQtPm1heCA9IChpbnQpIG5ld19tYXhfNjQ7CisJCXJl dHVybiBjaGlsZDsKKwl9CisKKwkvKiBOb3Qgc2FmZSB0byBtdWx0aXBseSAqLworCXJldHVybiBw YXR0ZXJuOworfQorCisvKgorICogdHJ5VW53cmFwR3JvdXAKKyAqCQlUcnkgdG8gdW53cmFwIEdS T1VQezEsMX0gbm9kZS4KKyAqCisgKiBFeGFtcGxlczoKKyAqICAgKEEpezEsMX0gICAtPiBBCisg KiAgIChBIEIpezEsMX0gLT4gU0VRKEEsIEIpICAodW53cmFwcyB0aGUgaW5uZXIgU0VRKQorICog ICAoQSk/ICAgICAgIC0+IEE/ICAgICAgICAgKHByb3BhZ2F0ZSBxdWFudGlmaWVyIHRvIHNpbmds ZSBWQVIgY2hpbGQpCisgKiAgIChBKSs/ICAgICAgLT4gQSs/ICAgICAgICAocHJvcGFnYXRlIHF1 YW50aWZpZXIgaW5jbHVkaW5nIHJlbHVjdGFudCkKKyAqCisgKiBJZiBHUk9VUCBoYXMgbWluPTEs IG1heD0xLCByZXR1cm4gdGhlIGNoaWxkIGRpcmVjdGx5IChyZWx1Y3RhbnQgb24KKyAqIHsxLDF9 IGlzIG1lYW5pbmdsZXNzKS4gIElmIEdST1VQIGhhcyBhIHNpbmdsZSBWQVIgY2hpbGQgd2l0aCBk ZWZhdWx0CisgKiBxdWFudGlmaWVyIHsxLDF9LCBwcm9wYWdhdGUgdGhlIEdST1VQJ3MgcXVhbnRp ZmllciB0byB0aGUgY2hpbGQgYW5kCisgKiB1bndyYXAuICBPdGhlcndpc2UgcmV0dXJucyB0aGUg cGF0dGVybiB1bmNoYW5nZWQuCisgKgorICogTm90ZTogUGFyc2VyIGFsd2F5cyBjcmVhdGVzIEdS T1VQIHdpdGggZXhhY3RseSBvbmUgY2hpbGQgdmlhIGxpc3RfbWFrZTEoKS4KKyAqLworc3RhdGlj IFJQUlBhdHRlcm5Ob2RlICoKK3RyeVVud3JhcEdyb3VwKFJQUlBhdHRlcm5Ob2RlICpwYXR0ZXJu KQoreworCVJQUlBhdHRlcm5Ob2RlICpjaGlsZDsKKworCS8qIFBhcnNlciBhbHdheXMgY3JlYXRl cyBHUk9VUCB3aXRoIHNpbmdsZSBjaGlsZCAqLworCUFzc2VydChsaXN0X2xlbmd0aChwYXR0ZXJu LT5jaGlsZHJlbikgPT0gMSk7CisKKwljaGlsZCA9IChSUFJQYXR0ZXJuTm9kZSAqKSBsaW5pdGlh bChwYXR0ZXJuLT5jaGlsZHJlbik7CisKKwkvKiBHUk9VUHsxLDF9OiB1bndyYXAgZGlyZWN0bHkg KHJlbHVjdGFudCBvbiB7MSwxfSBpcyBtZWFuaW5nbGVzcykgKi8KKwlpZiAocGF0dGVybi0+bWlu ID09IDEgJiYgcGF0dGVybi0+bWF4ID09IDEpCisJCXJldHVybiBjaGlsZDsKKworCS8qCisJICog U2luZ2xlIFZBUiBjaGlsZCB3aXRoIGRlZmF1bHQgezEsMX06IHByb3BhZ2F0ZSBHUk9VUCdzIHF1 YW50aWZpZXIgdG8KKwkgKiB0aGUgY2hpbGQgYW5kIHVud3JhcC4gIEUuZy4sIChBKT8/IC0+IEE/ PywgKEEpKz8gLT4gQSs/CisJICovCisJaWYgKGNoaWxkLT5ub2RlVHlwZSA9PSBSUFJfUEFUVEVS Tl9WQVIgJiYKKwkJY2hpbGQtPm1pbiA9PSAxICYmIGNoaWxkLT5tYXggPT0gMSAmJiBjaGlsZC0+ cmVsdWN0YW50ID09IGZhbHNlKQorCXsKKwkJY2hpbGQtPm1pbiA9IHBhdHRlcm4tPm1pbjsKKwkJ Y2hpbGQtPm1heCA9IHBhdHRlcm4tPm1heDsKKwkJY2hpbGQtPnJlbHVjdGFudCA9IHBhdHRlcm4t PnJlbHVjdGFudDsKKwkJY2hpbGQtPnJlbHVjdGFudF9sb2NhdGlvbiA9IHBhdHRlcm4tPnJlbHVj dGFudF9sb2NhdGlvbjsKKwkJcmV0dXJuIGNoaWxkOworCX0KKworCXJldHVybiBwYXR0ZXJuOwor fQorCisvKgorICogb3B0aW1pemVHcm91cFBhdHRlcm4KKyAqCQlPcHRpbWl6ZSBHUk9VUCBwYXR0 ZXJuIG5vZGUuCisgKgorICogT3B0aW1pemF0aW9uczoKKyAqICAgMS4gUXVhbnRpZmllciBtdWx0 aXBsaWNhdGlvbjogKEF7bX0pe259IC0+IEF7bSpufQorICogICAyLiBVbndyYXAgR1JPVVB7MSwx fQorICovCitzdGF0aWMgUlBSUGF0dGVybk5vZGUgKgorb3B0aW1pemVHcm91cFBhdHRlcm4oUlBS UGF0dGVybk5vZGUgKnBhdHRlcm4pCit7CisJTGlzdENlbGwgICAqbGM7CisJTGlzdAkgICAqbmV3 Q2hpbGRyZW47CisJUlBSUGF0dGVybk5vZGUgKnJlc3VsdDsKKworCS8qIFJlY3Vyc2l2ZWx5IG9w dGltaXplIGNoaWxkcmVuICovCisJbmV3Q2hpbGRyZW4gPSBOSUw7CisJZm9yZWFjaChsYywgcGF0 dGVybi0+Y2hpbGRyZW4pCisJeworCQlSUFJQYXR0ZXJuTm9kZSAqY2hpbGQgPSAoUlBSUGF0dGVy bk5vZGUgKikgbGZpcnN0KGxjKTsKKworCQluZXdDaGlsZHJlbiA9IGxhcHBlbmQobmV3Q2hpbGRy ZW4sIG9wdGltaXplUlBSUGF0dGVybihjaGlsZCkpOworCX0KKwlwYXR0ZXJuLT5jaGlsZHJlbiA9 IG5ld0NoaWxkcmVuOworCisJLyogVHJ5IHF1YW50aWZpZXIgbXVsdGlwbGljYXRpb24gKi8KKwly ZXN1bHQgPSB0cnlNdWx0aXBseVF1YW50aWZpZXJzKHBhdHRlcm4pOworCWlmIChyZXN1bHQgIT0g cGF0dGVybikKKwkJcmV0dXJuIHJlc3VsdDsKKworCS8qIFRyeSB1bndyYXBwaW5nIEdST1VQezEs MX0gKi8KKwlyZXR1cm4gdHJ5VW53cmFwR3JvdXAocGF0dGVybik7Cit9CisKKy8qCisgKiBvcHRp bWl6ZVJQUlBhdHRlcm4KKyAqCQlPcHRpbWl6ZSBSUFJQYXR0ZXJuTm9kZSB0cmVlIChkaXNwYXRj aGVyKS4KKyAqCisgKiBEaXNwYXRjaGVzIHRvIHR5cGUtc3BlY2lmaWMgb3B0aW1pemF0aW9uIGZ1 bmN0aW9ucy4KKyAqIFJldHVybnMgdGhlIG9wdGltaXplZCBwYXR0ZXJuIChtYXkgYmUgYSBkaWZm ZXJlbnQgbm9kZSkuCisgKi8KK3N0YXRpYyBSUFJQYXR0ZXJuTm9kZSAqCitvcHRpbWl6ZVJQUlBh dHRlcm4oUlBSUGF0dGVybk5vZGUgKnBhdHRlcm4pCit7CisJLyogUGF0dGVybiBub2RlcyBmcm9t IHBhcnNlciBhcmUgbmV2ZXIgTlVMTCAqLworCUFzc2VydChwYXR0ZXJuICE9IE5VTEwpOworCisJ Y2hlY2tfc3RhY2tfZGVwdGgoKTsKKworCXN3aXRjaCAocGF0dGVybi0+bm9kZVR5cGUpCisJewor CQljYXNlIFJQUl9QQVRURVJOX1ZBUjoKKwkJCXJldHVybiBwYXR0ZXJuOworCQljYXNlIFJQUl9Q QVRURVJOX1NFUToKKwkJCXJldHVybiBvcHRpbWl6ZVNlcVBhdHRlcm4ocGF0dGVybik7CisJCWNh c2UgUlBSX1BBVFRFUk5fQUxUOgorCQkJcmV0dXJuIG9wdGltaXplQWx0UGF0dGVybihwYXR0ZXJu KTsKKwkJY2FzZSBSUFJfUEFUVEVSTl9HUk9VUDoKKwkJCXJldHVybiBvcHRpbWl6ZUdyb3VwUGF0 dGVybihwYXR0ZXJuKTsKKwl9CisKKwlyZXR1cm4gcGF0dGVybjsJCQkJLyoga2VlcCBjb21waWxl ciBxdWlldCAqLworfQorCisvKgorICogY29sbGVjdERlZmluZVZhcmlhYmxlcworICoJCUNvbGxl Y3QgdmFyaWFibGUgbmFtZXMgZnJvbSBERUZJTkUgY2xhdXNlLgorICoKKyAqIFBvcHVsYXRlcyB2 YXJOYW1lcyBhcnJheSB3aXRoIHZhcmlhYmxlIG5hbWVzIGluIERFRklORSBvcmRlci4KKyAqIFRo aXMgZW5zdXJlcyB2YXJJZCA9PSBkZWZpbmVJZHgsIGVsaW1pbmF0aW5nIHJ1bnRpbWUgbWFwcGlu Zy4KKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiB2YXJpYWJsZXMgY29sbGVjdGVkLgorICovCitz dGF0aWMgaW50Citjb2xsZWN0RGVmaW5lVmFyaWFibGVzKExpc3QgKmRlZmluZVZhcmlhYmxlTGlz dCwgY2hhciAqKnZhck5hbWVzKQoreworCUxpc3RDZWxsICAgKmxjOworCWludAkJCW51bVZhcnMg PSAwOworCisJZm9yZWFjaChsYywgZGVmaW5lVmFyaWFibGVMaXN0KQorCXsKKwkJLyogUGFyc2Vy IGFscmVhZHkgY2hlY2tlZCB0aGlzIGxpbWl0IGluIHRyYW5zZm9ybURlZmluZUNsYXVzZSAqLwor CQlBc3NlcnQobnVtVmFycyA8IFJQUl9WQVJJRF9NQVgpOworCisJCXZhck5hbWVzW251bVZhcnMr K10gPSBzdHJWYWwobGZpcnN0KGxjKSk7CisJfQorCisJcmV0dXJuIG51bVZhcnM7Cit9CisKKy8q CisgKiBzY2FuUlBSUGF0dGVyblJlY3Vyc2l2ZQorICoJCVJlY3Vyc2l2ZWx5IHNjYW4gcGF0dGVy biBBU1QgKHBhc3MgMSBpbnRlcm5hbCkuCisgKgorICogQ29sbGVjdHMgdW5pcXVlIHZhcmlhYmxl IG5hbWVzIGFuZCBjb3VudHMgZWxlbWVudHMgd2hpbGUgdHJhY2tpbmcgZGVwdGguCisgKiBWYXJp YWJsZXMgZnJvbSBERUZJTkUgY2xhdXNlIGFyZSBhbHJlYWR5IGluIHZhck5hbWVzOyB0aGlzIGFk ZHMgYW55CisgKiBhZGRpdGlvbmFsIHZhcmlhYmxlcyBmb3VuZCBpbiB0aGUgcGF0dGVybi4KKyAq Lworc3RhdGljIHZvaWQKK3NjYW5SUFJQYXR0ZXJuUmVjdXJzaXZlKFJQUlBhdHRlcm5Ob2RlICpu b2RlLCBjaGFyICoqdmFyTmFtZXMsIGludCAqbnVtVmFycywKKwkJCQkJCWludCAqbnVtRWxlbWVu dHMsIFJQUkRlcHRoIGRlcHRoLCBSUFJEZXB0aCAqbWF4RGVwdGgpCit7CisJTGlzdENlbGwgICAq bGM7CisJaW50CQkJaTsKKworCS8qIFBhdHRlcm4gbm9kZXMgZnJvbSBwYXJzZXIgYXJlIG5ldmVy IE5VTEwgKi8KKwlBc3NlcnQobm9kZSAhPSBOVUxMKTsKKworCWNoZWNrX3N0YWNrX2RlcHRoKCk7 CisKKwkvKiBDaGVjayByZWN1cnNpb24gZGVwdGggbGltaXQgYmVmb3JlIG92ZXJmbG93IG9jY3Vy cyAqLworCWlmIChkZXB0aCA+PSBSUFJfREVQVEhfTUFYKQorCQllcmVwb3J0KEVSUk9SLAorCQkJ CShlcnJjb2RlKEVSUkNPREVfUFJPR1JBTV9MSU1JVF9FWENFRURFRCksCisJCQkJIGVycm1zZygi cGF0dGVybiBuZXN0aW5nIHRvbyBkZWVwIiksCisJCQkJIGVycmRldGFpbCgiUGF0dGVybiBuZXN0 aW5nIGRlcHRoICVkIGV4Y2VlZHMgbWF4aW11bSAlZC4iLAorCQkJCQkJICAgZGVwdGgsIFJQUl9E RVBUSF9NQVggLSAxKSkpOworCisJLyogVHJhY2sgbWF4aW11bSBkZXB0aCAqLworCWlmIChkZXB0 aCA+ICptYXhEZXB0aCkKKwkJKm1heERlcHRoID0gZGVwdGg7CisKKwlzd2l0Y2ggKG5vZGUtPm5v ZGVUeXBlKQorCXsKKwkJY2FzZSBSUFJfUEFUVEVSTl9WQVI6CisJCQkvKiBDb3VudCBlbGVtZW50 ICovCisJCQkoKm51bUVsZW1lbnRzKSsrOworCisJCQkvKiBDb2xsZWN0IHZhcmlhYmxlIG5hbWUg aWYgbm90IGFscmVhZHkgcHJlc2VudCAqLworCQkJZm9yIChpID0gMDsgaSA8ICpudW1WYXJzOyBp KyspCisJCQl7CisJCQkJaWYgKHN0cmNtcCh2YXJOYW1lc1tpXSwgbm9kZS0+dmFyTmFtZSkgPT0g MCkKKwkJCQkJcmV0dXJuOwkJLyogQWxyZWFkeSBoYXZlIHRoaXMgdmFyaWFibGUgKi8KKwkJCX0K KworCQkJLyoKKwkJCSAqIFZhcmlhYmxlIG5vdCBpbiBERUZJTkUgY2xhdXNlIC0gdGhpcyBpcyB2 YWxpZCBwZXIgU1FMIHN0YW5kYXJkLgorCQkJICogU3VjaCB2YXJpYWJsZXMgYXJlIGltcGxpY2l0 bHkgVFJVRS4gQWRkIHRvIHZhck5hbWVzIHNvIHRoZXkgZ2V0CisJCQkgKiBhIHZhcklkID49IGRl ZmluZVZhcmlhYmxlTGlzdCBsZW5ndGgsIHdoaWNoIGV4ZWN1dG9yIHRyZWF0cyBhcworCQkJICog VFJVRS4KKwkJCSAqLworCQkJQXNzZXJ0KCpudW1WYXJzIDwgUlBSX1ZBUklEX01BWCk7CisJCQl2 YXJOYW1lc1soKm51bVZhcnMpKytdID0gbm9kZS0+dmFyTmFtZTsKKwkJCWJyZWFrOworCisJCWNh c2UgUlBSX1BBVFRFUk5fU0VROgorCQkJLyogU2VxdWVuY2U6IGp1c3QgcmVjdXJzZSBpbnRvIGNo aWxkcmVuICovCisJCQlmb3JlYWNoKGxjLCBub2RlLT5jaGlsZHJlbikKKwkJCXsKKwkJCQlzY2Fu UlBSUGF0dGVyblJlY3Vyc2l2ZSgoUlBSUGF0dGVybk5vZGUgKikgbGZpcnN0KGxjKSwgdmFyTmFt ZXMsCisJCQkJCQkJCQkJbnVtVmFycywgbnVtRWxlbWVudHMsIGRlcHRoLCBtYXhEZXB0aCk7CisJ CQl9CisJCQlicmVhazsKKworCQljYXNlIFJQUl9QQVRURVJOX0dST1VQOgorCQkJLyogQWRkIEJF R0lOIGVsZW1lbnQgaWYgZ3JvdXAgaGFzIG5vbi10cml2aWFsIHF1YW50aWZpZXIgKi8KKwkJCWlm IChub2RlLT5taW4gIT0gMSB8fCBub2RlLT5tYXggIT0gMSkKKwkJCQkoKm51bUVsZW1lbnRzKSsr OworCisJCQkvKiBSZWN1cnNlIGludG8gY2hpbGRyZW4gYXQgaW5jcmVhc2VkIGRlcHRoICovCisJ CQlmb3JlYWNoKGxjLCBub2RlLT5jaGlsZHJlbikKKwkJCXsKKwkJCQlzY2FuUlBSUGF0dGVyblJl Y3Vyc2l2ZSgoUlBSUGF0dGVybk5vZGUgKikgbGZpcnN0KGxjKSwgdmFyTmFtZXMsCisJCQkJCQkJ CQkJbnVtVmFycywgbnVtRWxlbWVudHMsIGRlcHRoICsgMSwgbWF4RGVwdGgpOworCQkJfQorCisJ CQkvKiBBZGQgRU5EIGVsZW1lbnQgaWYgZ3JvdXAgaGFzIG5vbi10cml2aWFsIHF1YW50aWZpZXIg Ki8KKwkJCWlmIChub2RlLT5taW4gIT0gMSB8fCBub2RlLT5tYXggIT0gMSkKKwkJCQkoKm51bUVs ZW1lbnRzKSsrOworCQkJYnJlYWs7CisKKwkJY2FzZSBSUFJfUEFUVEVSTl9BTFQ6CisJCQkvKiBD b3VudCBBTFQgc3RhcnQgZWxlbWVudCAqLworCQkJKCpudW1FbGVtZW50cykrKzsKKworCQkJLyog UmVjdXJzZSBpbnRvIGNoaWxkcmVuIGF0IGluY3JlYXNlZCBkZXB0aCAqLworCQkJZm9yZWFjaChs Yywgbm9kZS0+Y2hpbGRyZW4pCisJCQl7CisJCQkJc2NhblJQUlBhdHRlcm5SZWN1cnNpdmUoKFJQ UlBhdHRlcm5Ob2RlICopIGxmaXJzdChsYyksIHZhck5hbWVzLAorCQkJCQkJCQkJCW51bVZhcnMs IG51bUVsZW1lbnRzLCBkZXB0aCArIDEsIG1heERlcHRoKTsKKwkJCX0KKwkJCWJyZWFrOworCX0K K30KKworLyoKKyAqIHNjYW5SUFJQYXR0ZXJuCisgKgkJU2NhbiBwYXR0ZXJuIEFTVCAocGFzcyAx IGVudHJ5IHBvaW50KS4KKyAqCisgKiBDb2xsZWN0cyB1bmlxdWUgdmFyaWFibGUgbmFtZXMgKGFw cGVuZGluZyB0byB0aG9zZSBmcm9tIERFRklORSBjbGF1c2UpLAorICogY291bnRzIHRvdGFsIGVs ZW1lbnRzIChpbmNsdWRpbmcgRklOIG1hcmtlciksIGFuZCB0cmFja3MgbWF4aW11bSBkZXB0aC4K KyAqIFJlcG9ydHMgZXJyb3IgaWYgZWxlbWVudCBjb3VudCBleGNlZWRzIFJQUl9FTEVNSURYX01B WC4KKyAqLworc3RhdGljIHZvaWQKK3NjYW5SUFJQYXR0ZXJuKFJQUlBhdHRlcm5Ob2RlICpub2Rl LCBjaGFyICoqdmFyTmFtZXMsIGludCAqbnVtVmFycywKKwkJCSAgIGludCAqbnVtRWxlbWVudHMs IFJQUkRlcHRoICptYXhEZXB0aCkKK3sKKwkqbnVtRWxlbWVudHMgPSAwOworCSptYXhEZXB0aCA9 IDA7CisKKwlzY2FuUlBSUGF0dGVyblJlY3Vyc2l2ZShub2RlLCB2YXJOYW1lcywgbnVtVmFycywg bnVtRWxlbWVudHMsIDAsIG1heERlcHRoKTsKKworCSgqbnVtRWxlbWVudHMpKys7CQkJLyogKzEg Zm9yIEZJTiBtYXJrZXIgKi8KKworCWlmICgqbnVtRWxlbWVudHMgPiBSUFJfRUxFTUlEWF9NQVgp CisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9QUk9HUkFNX0xJTUlUX0VY Q0VFREVEKSwKKwkJCQkgZXJybXNnKCJwYXR0ZXJuIHRvbyBjb21wbGV4IiksCisJCQkJIGVycmRl dGFpbCgiUGF0dGVybiBoYXMgJWQgZWxlbWVudHMsIG1heGltdW0gaXMgJWQuIiwKKwkJCQkJCSAg ICpudW1FbGVtZW50cywgUlBSX0VMRU1JRFhfTUFYKSkpOworfQorCisvKgorICogYWxsb2NhdGVS UFJQYXR0ZXJuCisgKgkJQWxsb2NhdGUgYW5kIGluaXRpYWxpemUgUlBSUGF0dGVybiBzdHJ1Y3R1 cmUuCisgKgorICogQ3JlYXRlcyB0aGUgcGF0dGVybiBzdHJ1Y3R1cmUsIGNvcGllcyB2YXJpYWJs ZSBuYW1lcywgYW5kIGFsbG9jYXRlcworICogdGhlIGVsZW1lbnRzIGFycmF5LiBUaGUgZWxlbWVu dHMgYXJyYXkgaXMgemVyby1pbml0aWFsaXplZC4KKyAqLworc3RhdGljIFJQUlBhdHRlcm4gKgor YWxsb2NhdGVSUFJQYXR0ZXJuKGludCBudW1WYXJzLCBpbnQgbnVtRWxlbWVudHMsIFJQUkRlcHRo IG1heERlcHRoLAorCQkJCSAgIGNoYXIgKip2YXJOYW1lc1N0YWNrKQoreworCVJQUlBhdHRlcm4g KnJlc3VsdDsKKwlpbnQJCQlpOworCisJcmVzdWx0ID0gbWFrZU5vZGUoUlBSUGF0dGVybik7CisJ cmVzdWx0LT5udW1WYXJzID0gbnVtVmFyczsKKwlyZXN1bHQtPm1heERlcHRoID0gbWF4RGVwdGgg KyAxOwkvKiArMTogZGVwdGggaXMgMC1iYXNlZCAqLworCXJlc3VsdC0+bnVtRWxlbWVudHMgPSBu dW1FbGVtZW50czsKKworCS8qIENvcHkgdmFyTmFtZXMgKHBhdHRlcm4gbXVzdCBoYXZlIGF0IGxl YXN0IG9uZSB2YXJpYWJsZSkgKi8KKwlBc3NlcnQobnVtVmFycyA+IDApOworCXJlc3VsdC0+dmFy TmFtZXMgPSBwYWxsb2MobnVtVmFycyAqIHNpemVvZihjaGFyICopKTsKKwlmb3IgKGkgPSAwOyBp IDwgbnVtVmFyczsgaSsrKQorCQlyZXN1bHQtPnZhck5hbWVzW2ldID0gcHN0cmR1cCh2YXJOYW1l c1N0YWNrW2ldKTsKKworCS8qIEFsbG9jYXRlIGVsZW1lbnRzIGFycmF5ICh6ZXJvLWluaXQgZm9y IHJlc2VydmVkIGZpZWxkcykgKi8KKwlBc3NlcnQobnVtRWxlbWVudHMgPj0gMik7CisJcmVzdWx0 LT5lbGVtZW50cyA9IHBhbGxvYzAobnVtRWxlbWVudHMgKiBzaXplb2YoUlBSUGF0dGVybkVsZW1l bnQpKTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKKy8qCisgKiBnZXRWYXJJZEZyb21QYXR0ZXJu CisgKgkJR2V0IHZhcmlhYmxlIElEIGZvciBhIHZhcmlhYmxlIG5hbWUgZnJvbSBSUFJQYXR0ZXJu LgorICoKKyAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSB2YXJpYWJsZSBpbiB0aGUgdmFyTmFt ZXMgYXJyYXkuCisgKi8KK3N0YXRpYyBSUFJWYXJJZAorZ2V0VmFySWRGcm9tUGF0dGVybihSUFJQ YXR0ZXJuICpwYXQsIGNvbnN0IGNoYXIgKnZhck5hbWUpCit7CisJZm9yIChpbnQgaSA9IDA7IGkg PCBwYXQtPm51bVZhcnM7IGkrKykKKwl7CisJCWlmIChzdHJjbXAocGF0LT52YXJOYW1lc1tpXSwg dmFyTmFtZSkgPT0gMCkKKwkJCXJldHVybiAoUlBSVmFySWQpIGk7CisJfQorCisJLyogU2hvdWxk IG5vdCBoYXBwZW4gLSB2YXJpYWJsZSBzaG91bGQgYWxyZWFkeSBiZSBjb2xsZWN0ZWQgKi8KKwll bG9nKEVSUk9SLCAicGF0dGVybiB2YXJpYWJsZSBcIiVzXCIgbm90IGZvdW5kIiwgdmFyTmFtZSk7 CisJcGdfdW5yZWFjaGFibGUoKTsKK30KKworLyoKKyAqIGZpbGxSUFJQYXR0ZXJuVmFyCisgKgkJ RmlsbCBhIFZBUiBwYXR0ZXJuIGVsZW1lbnQuCisgKgorICogUmV0dXJucyB0cnVlIGlmIHRoaXMg VkFSIGlzIG51bGxhYmxlIChjYW4gbWF0Y2ggemVybyByb3dzKS4KKyAqLworc3RhdGljIGJvb2wK K2ZpbGxSUFJQYXR0ZXJuVmFyKFJQUlBhdHRlcm5Ob2RlICpub2RlLCBSUFJQYXR0ZXJuICpwYXQs IGludCAqaWR4LCBSUFJEZXB0aCBkZXB0aCkKK3sKKwlSUFJQYXR0ZXJuRWxlbWVudCAqZWxlbSA9 ICZwYXQtPmVsZW1lbnRzWyppZHhdOworCisJbWVtc2V0KGVsZW0sIDAsIHNpemVvZihSUFJQYXR0 ZXJuRWxlbWVudCkpOworCWVsZW0tPnZhcklkID0gZ2V0VmFySWRGcm9tUGF0dGVybihwYXQsIG5v ZGUtPnZhck5hbWUpOworCWVsZW0tPmRlcHRoID0gZGVwdGg7CisJZWxlbS0+bWluID0gbm9kZS0+ bWluOworCWVsZW0tPm1heCA9IChub2RlLT5tYXggPT0gSU5UX01BWCkgPyBSUFJfUVVBTlRJVFlf SU5GIDogbm9kZS0+bWF4OworCUFzc2VydChlbGVtLT5taW4gPj0gMCAmJiBlbGVtLT5taW4gPCBS UFJfUVVBTlRJVFlfSU5GICYmCisJCSAgIGVsZW0tPm1heCA+PSAxICYmCisJCSAgIChlbGVtLT5t YXggPT0gUlBSX1FVQU5USVRZX0lORiB8fCBlbGVtLT5taW4gPD0gZWxlbS0+bWF4KSk7CisJZWxl bS0+bmV4dCA9IFJQUl9FTEVNSURYX0lOVkFMSUQ7CisJZWxlbS0+anVtcCA9IFJQUl9FTEVNSURY X0lOVkFMSUQ7CisJaWYgKG5vZGUtPnJlbHVjdGFudCkKKwkJZWxlbS0+ZmxhZ3MgfD0gUlBSX0VM RU1fUkVMVUNUQU5UOworCSgqaWR4KSsrOworCisJcmV0dXJuIChub2RlLT5taW4gPT0gMCk7Cit9 CisKKy8qCisgKiBmaWxsUlBSUGF0dGVybkdyb3VwCisgKgkJRmlsbCBhIEdST1VQIHBhdHRlcm4g YW5kIGl0cyBjaGlsZHJlbi4KKyAqCisgKiBDcmVhdGVzIGVsZW1lbnRzIGZvciBncm91cCBjb250 ZW50IGF0IGluY3JlYXNlZCBkZXB0aCwgcGx1cyBCRUdJTi9FTkQKKyAqIG1hcmtlciBwYWlyIGlm IHRoZSBncm91cCBoYXMgYSBub24tdHJpdmlhbCBxdWFudGlmaWVyIChub3QgezEsMX0pLgorICoK KyAqIEVsZW1lbnQgbGF5b3V0IGZvciAoQSBCKXsyLDN9OgorICoKKyAqICAgW0JFR0lOXSAgW0Fd ICBbQl0gIFtFTkRdICBbbmV4dCBlbGVtZW50Li4uXQorICogICAgIHwgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgIF4KKyAqICAgICB8ICAgICAgICAgICAgICAgICAgKy0tIGp1bXAgLS0rIChs b29wIGJhY2sgdG8gZmlyc3QgY2hpbGQpCisgKiAgICAgKy0tLS0ganVtcCAtLS0tLS0tLS0tLS0t LS0tLS0tKyAoc2tpcCB0byBhZnRlciBFTkQpCisgKgorICogQkVHSU4uanVtcCBwb2ludHMgcGFz dCBFTkQgKHNraXAgcGF0aCB3aGVuIGNvdW50ID49IG1heCBvciBtaW4gPT0gMCkuCisgKiBFTkQu anVtcCBwb2ludHMgdG8gdGhlIGZpcnN0IGNoaWxkIChsb29wLWJhY2sgcGF0aCkuCisgKiBCRUdJ Ti5uZXh0IGFuZCBFTkQubmV4dCBhcmUgc2V0IGxhdGVyIGJ5IGZpbmFsaXplUlBSUGF0dGVybigp LgorICoKKyAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGdyb3VwIGlzIG51bGxhYmxlLiAgQSBncm91 cCBpcyBudWxsYWJsZSB3aGVuIGl0cworICogbWluIGlzIDAgKGNhbiBiZSBza2lwcGVkIGVudGly ZWx5KSBvciBpdHMgYm9keSBpcyBudWxsYWJsZSAoZXZlcnkgcGF0aAorICogdGhyb3VnaCB0aGUg Ym9keSBjYW4gbWF0Y2ggemVybyByb3dzKS4KKyAqLworc3RhdGljIGJvb2wKK2ZpbGxSUFJQYXR0 ZXJuR3JvdXAoUlBSUGF0dGVybk5vZGUgKm5vZGUsIFJQUlBhdHRlcm4gKnBhdCwgaW50ICppZHgs IFJQUkRlcHRoIGRlcHRoKQoreworCUxpc3RDZWxsICAgKmxjOworCWludAkJCWdyb3VwU3RhcnRJ ZHggPSAqaWR4OworCWludAkJCWJlZ2luSWR4ID0gLTE7CisJYm9vbAkJYm9keU51bGxhYmxlID0g dHJ1ZTsKKworCS8qIEFkZCBCRUdJTiBtYXJrZXIgaWYgZ3JvdXAgaGFzIG5vbi10cml2aWFsIHF1 YW50aWZpZXIgKi8KKwlpZiAobm9kZS0+bWluICE9IDEgfHwgbm9kZS0+bWF4ICE9IDEpCisJewor CQlSUFJQYXR0ZXJuRWxlbWVudCAqZWxlbSA9ICZwYXQtPmVsZW1lbnRzWyppZHhdOworCisJCWJl Z2luSWR4ID0gKmlkeDsKKwkJbWVtc2V0KGVsZW0sIDAsIHNpemVvZihSUFJQYXR0ZXJuRWxlbWVu dCkpOworCQllbGVtLT52YXJJZCA9IFJQUl9WQVJJRF9CRUdJTjsKKwkJZWxlbS0+ZGVwdGggPSBk ZXB0aDsKKwkJZWxlbS0+bWluID0gbm9kZS0+bWluOworCQllbGVtLT5tYXggPSAobm9kZS0+bWF4 ID09IElOVF9NQVgpID8gUlBSX1FVQU5USVRZX0lORiA6IG5vZGUtPm1heDsKKwkJQXNzZXJ0KGVs ZW0tPm1pbiA+PSAwICYmIGVsZW0tPm1pbiA8IFJQUl9RVUFOVElUWV9JTkYgJiYKKwkJCSAgIGVs ZW0tPm1heCA+PSAxICYmCisJCQkgICAoZWxlbS0+bWF4ID09IFJQUl9RVUFOVElUWV9JTkYgfHwg ZWxlbS0+bWluIDw9IGVsZW0tPm1heCkpOworCQllbGVtLT5uZXh0ID0gUlBSX0VMRU1JRFhfSU5W QUxJRDsJLyogc2V0IGJ5IGZpbmFsaXplICovCisJCWVsZW0tPmp1bXAgPSBSUFJfRUxFTUlEWF9J TlZBTElEOwkvKiBzZXQgYWZ0ZXIgRU5EICovCisJCWlmIChub2RlLT5yZWx1Y3RhbnQpCisJCQll bGVtLT5mbGFncyB8PSBSUFJfRUxFTV9SRUxVQ1RBTlQ7CisJCSgqaWR4KSsrOworCQlncm91cFN0 YXJ0SWR4ID0gKmlkeDsJLyogY2hpbGRyZW4gc3RhcnQgYWZ0ZXIgQkVHSU4gKi8KKwl9CisKKwlm b3JlYWNoKGxjLCBub2RlLT5jaGlsZHJlbikKKwl7CisJCWlmICghZmlsbFJQUlBhdHRlcm4oKFJQ UlBhdHRlcm5Ob2RlICopIGxmaXJzdChsYyksIHBhdCwgaWR4LCBkZXB0aCArIDEpKQorCQkJYm9k eU51bGxhYmxlID0gZmFsc2U7CisJfQorCisJLyogQWRkIGdyb3VwIGVuZCBtYXJrZXIgaWYgZ3Jv dXAgaGFzIG5vbi10cml2aWFsIHF1YW50aWZpZXIgKi8KKwlpZiAobm9kZS0+bWluICE9IDEgfHwg bm9kZS0+bWF4ICE9IDEpCisJeworCQlSUFJQYXR0ZXJuRWxlbWVudCAqYmVnaW5FbGVtID0gJnBh dC0+ZWxlbWVudHNbYmVnaW5JZHhdOworCQlSUFJQYXR0ZXJuRWxlbWVudCAqZW5kRWxlbSA9ICZw YXQtPmVsZW1lbnRzWyppZHhdOworCisJCW1lbXNldChlbmRFbGVtLCAwLCBzaXplb2YoUlBSUGF0 dGVybkVsZW1lbnQpKTsKKwkJZW5kRWxlbS0+dmFySWQgPSBSUFJfVkFSSURfRU5EOworCQllbmRF bGVtLT5kZXB0aCA9IGRlcHRoOworCQllbmRFbGVtLT5taW4gPSBub2RlLT5taW47CisJCWVuZEVs ZW0tPm1heCA9IChub2RlLT5tYXggPT0gSU5UX01BWCkgPyBSUFJfUVVBTlRJVFlfSU5GIDogbm9k ZS0+bWF4OworCQlBc3NlcnQoZW5kRWxlbS0+bWluID49IDAgJiYgZW5kRWxlbS0+bWluIDwgUlBS X1FVQU5USVRZX0lORiAmJgorCQkJICAgZW5kRWxlbS0+bWF4ID49IDEgJiYKKwkJCSAgIChlbmRF bGVtLT5tYXggPT0gUlBSX1FVQU5USVRZX0lORiB8fCBlbmRFbGVtLT5taW4gPD0gZW5kRWxlbS0+ bWF4KSk7CisJCWVuZEVsZW0tPm5leHQgPSBSUFJfRUxFTUlEWF9JTlZBTElEOworCQllbmRFbGVt LT5qdW1wID0gZ3JvdXBTdGFydElkeDsJLyogbG9vcCB0byBmaXJzdCBjaGlsZCAqLworCQlpZiAo bm9kZS0+cmVsdWN0YW50KQorCQkJZW5kRWxlbS0+ZmxhZ3MgfD0gUlBSX0VMRU1fUkVMVUNUQU5U OworCisJCS8qCisJCSAqIElmIHRoZSBncm91cCBib2R5IGlzIG51bGxhYmxlIChhbGwgcGF0aHMg Y2FuIG1hdGNoIGVtcHR5KSwgbWFyayB0aGUKKwkJICogRU5EIGVsZW1lbnQgc28gdGhhdCBuZmFf YWR2YW5jZV9lbmQgY2FuIGZhc3QtZm9yd2FyZCB0aGUgaXRlcmF0aW9uCisJCSAqIGNvdW50IHRv IG1pbiB3aGVuIHJlYWNoZWQgdmlhIGVtcHR5LW1hdGNoIHNraXAgcGF0aHMuCisJCSAqLworCQlp ZiAoYm9keU51bGxhYmxlKQorCQkJZW5kRWxlbS0+ZmxhZ3MgfD0gUlBSX0VMRU1fRU1QVFlfTE9P UDsKKworCQkoKmlkeCkrKzsKKworCQkvKiBTZXQgQkVHSU4gc2tpcCBwb2ludGVyIChuZXh0IGlz IHNldCBieSBmaW5hbGl6ZSkgKi8KKwkJYmVnaW5FbGVtLT5qdW1wID0gKmlkeDsgLyogc2tpcDog Z28gdG8gYWZ0ZXIgRU5EICovCisJfQorCisJcmV0dXJuIChub2RlLT5taW4gPT0gMCB8fCBib2R5 TnVsbGFibGUpOworfQorCisvKgorICogZmlsbFJQUlBhdHRlcm5BbHQKKyAqCQlGaWxsIGFuIEFM VCBwYXR0ZXJuIGFuZCBpdHMgYWx0ZXJuYXRpdmVzLgorICoKKyAqIENyZWF0ZXMgQUxUX1NUQVJU IG1hcmtlciwgZmlsbHMgZWFjaCBhbHRlcm5hdGl2ZSBhdCBpbmNyZWFzZWQgZGVwdGgsCisgKiBz ZXRzIGp1bXAgcG9pbnRlcnMgZm9yIGJhY2t0cmFja2luZywgYW5kIG5leHQgcG9pbnRlcnMgZm9y IHN1Y2Nlc3NmdWwgcGF0aHMuCisgKgorICogUmV0dXJucyB0cnVlIGlmIGFueSBicmFuY2ggaXMg bnVsbGFibGUgKE9SIHNlbWFudGljczogb25lIG51bGxhYmxlCisgKiBicmFuY2ggc3VmZmljZXMg Zm9yIHRoZSBhbHRlcm5hdGlvbiB0byBwcm9kdWNlIGFuIGVtcHR5IG1hdGNoKS4KKyAqLworc3Rh dGljIGJvb2wKK2ZpbGxSUFJQYXR0ZXJuQWx0KFJQUlBhdHRlcm5Ob2RlICpub2RlLCBSUFJQYXR0 ZXJuICpwYXQsIGludCAqaWR4LCBSUFJEZXB0aCBkZXB0aCkKK3sKKwlMaXN0Q2VsbCAgICpsYzsK KwlMaXN0Q2VsbCAgICpsYzI7CisJUlBSUGF0dGVybkVsZW1lbnQgKmVsZW07CisJTGlzdAkgICAq YWx0QnJhbmNoU3RhcnRzID0gTklMOworCUxpc3QJICAgKmFsdEVuZFBvc2l0aW9ucyA9IE5JTDsK KwlpbnQJCQlhZnRlckFsdElkeDsKKwlib29sCQlhbnlOdWxsYWJsZSA9IGZhbHNlOworCisJLyog QWRkIGFsdGVybmF0aW9uIHN0YXJ0IG1hcmtlciAqLworCWVsZW0gPSAmcGF0LT5lbGVtZW50c1sq aWR4XTsKKwltZW1zZXQoZWxlbSwgMCwgc2l6ZW9mKFJQUlBhdHRlcm5FbGVtZW50KSk7CisJZWxl bS0+dmFySWQgPSBSUFJfVkFSSURfQUxUOworCWVsZW0tPmRlcHRoID0gZGVwdGg7CisJZWxlbS0+ bWluID0gMTsKKwllbGVtLT5tYXggPSAxOworCWVsZW0tPm5leHQgPSBSUFJfRUxFTUlEWF9JTlZB TElEOworCWVsZW0tPmp1bXAgPSBSUFJfRUxFTUlEWF9JTlZBTElEOworCSgqaWR4KSsrOworCisJ LyogRmlsbCBlYWNoIGFsdGVybmF0aXZlICovCisJZm9yZWFjaChsYywgbm9kZS0+Y2hpbGRyZW4p CisJeworCQlSUFJQYXR0ZXJuTm9kZSAqYWx0ID0gKFJQUlBhdHRlcm5Ob2RlICopIGxmaXJzdChs Yyk7CisJCWludAkJCWJyYW5jaFN0YXJ0ID0gKmlkeDsKKworCQlhbHRCcmFuY2hTdGFydHMgPSBs YXBwZW5kX2ludChhbHRCcmFuY2hTdGFydHMsIGJyYW5jaFN0YXJ0KTsKKwkJaWYgKGZpbGxSUFJQ YXR0ZXJuKGFsdCwgcGF0LCBpZHgsIGRlcHRoICsgMSkpCisJCQlhbnlOdWxsYWJsZSA9IHRydWU7 CisJCWFsdEVuZFBvc2l0aW9ucyA9IGxhcHBlbmRfaW50KGFsdEVuZFBvc2l0aW9ucywgKmlkeCAt IDEpOworCX0KKworCS8qIFNldCBqdW1wIG9uIGZpcnN0IGVsZW1lbnQgb2YgZWFjaCBhbHRlcm5h dGl2ZSB0byBuZXh0IGFsdGVybmF0aXZlICovCisJZm9yZWFjaChsYywgYWx0QnJhbmNoU3RhcnRz KQorCXsKKwkJaW50CQkJZmlyc3RFbGVtSWR4ID0gbGZpcnN0X2ludChsYyk7CisKKwkJaWYgKGxu ZXh0KGFsdEJyYW5jaFN0YXJ0cywgbGMpICE9IE5VTEwpCisJCQlwYXQtPmVsZW1lbnRzW2ZpcnN0 RWxlbUlkeF0uanVtcCA9IGxmaXJzdF9pbnQobG5leHQoYWx0QnJhbmNoU3RhcnRzLCBsYykpOwor CX0KKworCS8qIFNldCBuZXh0IG9uIGxhc3QgZWxlbWVudCBvZiBlYWNoIGFsdGVybmF0aXZlIHRv IGFmdGVyIHRoZSBhbHRlcm5hdGlvbiAqLworCWFmdGVyQWx0SWR4ID0gKmlkeDsKKwlsYzIgPSBs aXN0X2hlYWQoYWx0QnJhbmNoU3RhcnRzKTsKKworCWZvcmVhY2gobGMsIGFsdEVuZFBvc2l0aW9u cykKKwl7CisJCWludAkJCWVuZFBvcyA9IGxmaXJzdF9pbnQobGMpOworCQlpbnQJCQlicmFuY2hT dGFydCA9IGxmaXJzdF9pbnQobGMyKTsKKworCQlpZiAocGF0LT5lbGVtZW50c1tlbmRQb3NdLm5l eHQgIT0gUlBSX0VMRU1JRFhfSU5WQUxJRCkKKwkJeworCQkJLyoKKwkJCSAqIEFuIGlubmVyIEFM VCBhbHJlYWR5IHNldCBuZXh0IG9uIHRoaXMgZWxlbWVudC4gIFJlZGlyZWN0IGFsbAorCQkJICog ZWxlbWVudHMgaW4gdGhpcyBicmFuY2ggdGhhdCBzaGFyZSB0aGUgc2FtZSB0YXJnZXQgdG8gcG9p bnQgdG8KKwkJCSAqIGFmdGVyIHRoaXMgQUxUIGluc3RlYWQuCisJCQkgKi8KKwkJCWludAkJCW9s ZFRhcmdldCA9IHBhdC0+ZWxlbWVudHNbZW5kUG9zXS5uZXh0OworCQkJaW50CQkJajsKKworCQkJ Zm9yIChqID0gYnJhbmNoU3RhcnQ7IGogPD0gZW5kUG9zOyBqKyspCisJCQl7CisJCQkJaWYgKHBh dC0+ZWxlbWVudHNbal0ubmV4dCA9PSBvbGRUYXJnZXQpCisJCQkJCXBhdC0+ZWxlbWVudHNbal0u bmV4dCA9IGFmdGVyQWx0SWR4OworCQkJfQorCQl9CisJCWVsc2UKKwkJeworCQkJcGF0LT5lbGVt ZW50c1tlbmRQb3NdLm5leHQgPSBhZnRlckFsdElkeDsKKwkJfQorCisJCWxjMiA9IGxuZXh0KGFs dEJyYW5jaFN0YXJ0cywgbGMyKTsKKwl9CisKKwlsaXN0X2ZyZWUoYWx0QnJhbmNoU3RhcnRzKTsK KwlsaXN0X2ZyZWUoYWx0RW5kUG9zaXRpb25zKTsKKworCXJldHVybiBhbnlOdWxsYWJsZTsKK30K KworLyoKKyAqIGZpbGxSUFJQYXR0ZXJuCisgKgkJRmlsbCBwYXR0ZXJuIGVsZW1lbnRzIGFycmF5 IGZyb20gQVNUIChwYXNzIDIpLgorICoKKyAqIFJlY3Vyc2l2ZWx5IHRyYXZlcnNlcyBBU1QgYW5k IHBvcHVsYXRlcyBwcmUtYWxsb2NhdGVkIGVsZW1lbnRzIGFycmF5LgorICogRGlzcGF0Y2hlcyB0 byB0eXBlLXNwZWNpZmljIGZpbGwgZnVuY3Rpb25zLgorICoKKyAqIFJldHVybnMgdHJ1ZSBpZiB0 aGUgcGF0dGVybiBpcyBudWxsYWJsZSAoY2FuIG1hdGNoIHplcm8gcm93cykuCisgKiBGb3IgU0VR IG5vZGVzLCBhbGwgY2hpbGRyZW4gbXVzdCBiZSBudWxsYWJsZSAoQU5EKS4KKyAqLworc3RhdGlj IGJvb2wKK2ZpbGxSUFJQYXR0ZXJuKFJQUlBhdHRlcm5Ob2RlICpub2RlLCBSUFJQYXR0ZXJuICpw YXQsIGludCAqaWR4LCBSUFJEZXB0aCBkZXB0aCkKK3sKKwlMaXN0Q2VsbCAgICpsYzsKKwlib29s CQlhbGxOdWxsYWJsZSA9IHRydWU7CisKKwkvKiBQYXR0ZXJuIG5vZGVzIGZyb20gcGFyc2VyIGFy ZSBuZXZlciBOVUxMICovCisJQXNzZXJ0KG5vZGUgIT0gTlVMTCk7CisKKwljaGVja19zdGFja19k ZXB0aCgpOworCisJc3dpdGNoIChub2RlLT5ub2RlVHlwZSkKKwl7CisJCWNhc2UgUlBSX1BBVFRF Uk5fU0VROgorCQkJZm9yZWFjaChsYywgbm9kZS0+Y2hpbGRyZW4pCisJCQl7CisJCQkJaWYgKCFm aWxsUlBSUGF0dGVybigoUlBSUGF0dGVybk5vZGUgKikgbGZpcnN0KGxjKSwgcGF0LCBpZHgsIGRl cHRoKSkKKwkJCQkJYWxsTnVsbGFibGUgPSBmYWxzZTsKKwkJCX0KKwkJCXJldHVybiBhbGxOdWxs YWJsZTsKKworCQljYXNlIFJQUl9QQVRURVJOX1ZBUjoKKwkJCXJldHVybiBmaWxsUlBSUGF0dGVy blZhcihub2RlLCBwYXQsIGlkeCwgZGVwdGgpOworCisJCWNhc2UgUlBSX1BBVFRFUk5fR1JPVVA6 CisJCQlyZXR1cm4gZmlsbFJQUlBhdHRlcm5Hcm91cChub2RlLCBwYXQsIGlkeCwgZGVwdGgpOwor CisJCWNhc2UgUlBSX1BBVFRFUk5fQUxUOgorCQkJcmV0dXJuIGZpbGxSUFJQYXR0ZXJuQWx0KG5v ZGUsIHBhdCwgaWR4LCBkZXB0aCk7CisJfQorCisJcmV0dXJuIGZhbHNlOwkJCQkvKiB1bnJlYWNo YWJsZSAqLworfQorCisvKgorICogZmluYWxpemVSUFJQYXR0ZXJuCisgKgkJRmluYWxpemUgcGF0 dGVybiBzdHJ1Y3R1cmUgYWZ0ZXIgZmlsbGluZyBlbGVtZW50cy4KKyAqCisgKiBUaGlzIHBlcmZv cm1zOgorICogICAxLiBJbml0aWFsaXplIGFic29ycHRpb24gZmxhZyB0byBmYWxzZQorICogICAy LiBTZXQgdXAgbmV4dCBwb2ludGVycyBmb3Igc2VxdWVudGlhbCBmbG93CisgKiAgIDMuIEFkZCBG SU4gbWFya2VyIGF0IHRoZSBlbmQKKyAqLworc3RhdGljIHZvaWQKK2ZpbmFsaXplUlBSUGF0dGVy bihSUFJQYXR0ZXJuICpyZXN1bHQpCit7CisJaW50CQkJZmluSWR4ID0gcmVzdWx0LT5udW1FbGVt ZW50cyAtIDE7CisJaW50CQkJaTsKKwlSUFJQYXR0ZXJuRWxlbWVudCAqZmluRWxlbTsKKworCS8q IEluaXRpYWxpemUgYWJzb3JwdGlvbiBmbGFnICovCisJcmVzdWx0LT5pc0Fic29yYmFibGUgPSBm YWxzZTsKKworCS8qIFNldCB1cCBuZXh0IHBvaW50ZXJzIGZvciBlbGVtZW50cyB0aGF0IGRvbid0 IGhhdmUgb25lICovCisJZm9yIChpID0gMDsgaSA8IGZpbklkeDsgaSsrKQorCXsKKwkJUlBSUGF0 dGVybkVsZW1lbnQgKmVsZW0gPSAmcmVzdWx0LT5lbGVtZW50c1tpXTsKKworCQlpZiAoZWxlbS0+ bmV4dCA9PSBSUFJfRUxFTUlEWF9JTlZBTElEKQorCQkJZWxlbS0+bmV4dCA9IChpIDwgZmluSWR4 IC0gMSkgPyBpICsgMSA6IGZpbklkeDsKKworCQkvKiBWZXJpZnkgcXVhbnRpZmllciByYW5nZSBp cyB2YWxpZCAqLworCQlBc3NlcnQoZWxlbS0+bWluID49IDAgJiYgZWxlbS0+bWluIDwgUlBSX1FV QU5USVRZX0lORiAmJgorCQkJICAgZWxlbS0+bWF4ID49IDEgJiYKKwkJCSAgIChlbGVtLT5tYXgg PT0gUlBSX1FVQU5USVRZX0lORiB8fCBlbGVtLT5taW4gPD0gZWxlbS0+bWF4KSk7CisJfQorCisJ LyogQWRkIEZJTiBtYXJrZXIgYXQgdGhlIGVuZCAqLworCWZpbkVsZW0gPSAmcmVzdWx0LT5lbGVt ZW50c1tmaW5JZHhdOworCW1lbXNldChmaW5FbGVtLCAwLCBzaXplb2YoUlBSUGF0dGVybkVsZW1l bnQpKTsKKwlmaW5FbGVtLT52YXJJZCA9IFJQUl9WQVJJRF9GSU47CisJZmluRWxlbS0+ZGVwdGgg PSAwOworCWZpbkVsZW0tPm1pbiA9IDE7CisJZmluRWxlbS0+bWF4ID0gMTsKKwlmaW5FbGVtLT5u ZXh0ID0gUlBSX0VMRU1JRFhfSU5WQUxJRDsKKwlmaW5FbGVtLT5qdW1wID0gUlBSX0VMRU1JRFhf SU5WQUxJRDsKK30KKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBDT05URVhUIEFCU09SUFRJT046 IFRXTy1GTEFHIERFU0lHTgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogQ29udGV4dCBhYnNv cnB0aW9uIGVsaW1pbmF0ZXMgcmVkdW5kYW50IG1hdGNoIHNlYXJjaGVzIGJ5IGFic29yYmluZyBu ZXdlcgorICogY29udGV4dHMgdGhhdCBjYW5ub3QgcHJvZHVjZSBsb25nZXIgbWF0Y2hlcyB0aGFu IG9sZGVyIGNvbnRleHRzLiBUaGlzCisgKiBhY2hpZXZlcyBPKG5eMikgLT4gTyhuKSBwZXJmb3Jt YW5jZSBpbXByb3ZlbWVudCBmb3IgcGF0dGVybnMgbGlrZSBBKyBCLgorICoKKyAqIENvcmUgSW5z aWdodDoKKyAqICAgRm9yIHBhdHRlcm4gQSsgQiwgaWYgQ3R4MSBzdGFydHMgYXQgcm93IDAgYW5k IEN0eDIgc3RhcnRzIGF0IHJvdyAxLAorICogICBib3RoIG1hdGNoaW5nIEEgY29udGludW91c2x5 LCBDdHgxIHdpbGwgYWx3YXlzIGhhdmUgbW9yZSBBIG1hdGNoZXMuCisgKiAgIFdoZW4gQiBmaW5h bGx5IGFwcGVhcnMsIEN0eDEncyBtYXRjaCAoMCB0byBjdXJyZW50KSBpcyBhbHdheXMgbG9uZ2Vy CisgKiAgIHRoYW4gQ3R4MidzIG1hdGNoICgxIHRvIGN1cnJlbnQpLiBTbyBDdHgyIGNhbiBiZSBz YWZlbHkgZWxpbWluYXRlZC4KKyAqCisgKiBUd28gRmxhZ3M6CisgKiAgIDEuIFJQUl9FTEVNX0FC U09SQkFCTEUgLSAiQWJzb3JwdGlvbiBqdWRnbWVudCBwb2ludCIKKyAqICAgICAgV0hFUkUgY29u dGV4dHMgY2FuIGJlIGNvbXBhcmVkIGZvciBhYnNvcnB0aW9uLgorICogICAgICAtIFNpbXBsZSB1 bmJvdW5kZWQgVkFSIChBKyk6IHRoZSBWQVIgZWxlbWVudCBpdHNlbGYKKyAqICAgICAgLSBVbmJv dW5kZWQgR1JPVVAgKChBIEIpKyk6IHRoZSBFTkQgZWxlbWVudCBvbmx5CisgKgorICogICAyLiBS UFJfRUxFTV9BQlNPUkJBQkxFX0JSQU5DSCAtICJBYnNvcmJhYmxlIHJlZ2lvbiBtYXJrZXIiCisg KiAgICAgIEFMTCBlbGVtZW50cyB3aXRoaW4gdGhlIGFic29yYmFibGUgcmVnaW9uLgorICogICAg ICAtIFVzZWQgZm9yIHRyYWNraW5nIHN0YXRlLmlzQWJzb3JiYWJsZSBhdCBydW50aW1lCisgKiAg ICAgIC0gU3RhdGVzIGxlYXZpbmcgdGhpcyByZWdpb24gYmVjb21lIG5vbi1hYnNvcmJhYmxlIHBl cm1hbmVudGx5CisgKgorICogV2h5IFR3byBGbGFncz8KKyAqICAgRm9yIHBhdHRlcm4gIihBIEIp KyIsIGNvbnRleHRzIGF0IGRpZmZlcmVudCBwb3NpdGlvbnMgKG9uZSBhdCBBLAorICogICBhbm90 aGVyIGF0IEIpIGNhbm5vdCBiZSBjb21wYXJlZCAtIHRoZXkgbXVzdCBzeW5jaHJvbml6ZSBhdCBF TkQuCisgKgorICogICBFeGFtcGxlOiAiKEEgQikrIiB3aXRoIGlucHV0IEEgQiBBIEIgQSBCLi4u CisgKiAgICAgUm93IDAgKEEpOiBDdHgxIHN0YXJ0cywgbWF0Y2hlcyBBCisgKiAgICAgUm93IDEg KEIpOiBDdHgxIG1hdGNoZXMgQiAtPiBFTkQgKGNvdW50PTEpCisgKiAgICAgUm93IDIgKEEpOiBD dHgxIGxvb3BzIHRvIEEsIEN0eDIgc3RhcnRzIGF0IEEKKyAqICAgICBSb3cgMyAoQik6IEN0eDEg YXQgRU5EIChjb3VudD0yKSwgQ3R4MiBhdCBFTkQgKGNvdW50PTEpCisgKiAgICAgICAgICAgICAg ICAtPiBCb3RoIGF0IEVORCwgY29tcGFyYWJsZSEgQ3R4MSBhYnNvcmJzIEN0eDIuCisgKgorICog ICBDb250ZXh0cyBzeW5jaHJvbml6ZSBhdCBFTkQgZXZlcnkgZ3JvdXAtbGVuZ3RoIHJvd3MuIFRo ZXJlZm9yZToKKyAqICAgLSBBQlNPUkJBQkxFIG1hcmtzIEVORCBhcyBqdWRnbWVudCBwb2ludCAo d2hlcmUgdG8gY29tcGFyZSkKKyAqICAgLSBBQlNPUkJBQkxFX0JSQU5DSCBrZWVwcyBzdGF0ZS5p c0Fic29yYmFibGU9dHJ1ZSB0aHJvdWdoIEEtPkItPkVORAorICoKKyAqIFBhdHRlcm4gRXhhbXBs ZXM6CisgKgorICogICBQYXR0ZXJuOiBBKyBCCisgKiAgIEVsZW1lbnQgMCAoQSk6IEFCU09SQkFC TEUgfCBBQlNPUkJBQkxFX0JSQU5DSCAgPC0ganVkZ21lbnQgcG9pbnQKKyAqICAgRWxlbWVudCAx IChCKTogKG5vbmUpCisgKiAgIC0+IENvbXBhcmUgYXQgQSBldmVyeSByb3cuIFdoZW4gY29udGV4 dHMgbW92ZSB0byBCLCBhYnNvcnB0aW9uIHN0b3BzLgorICoKKyAqICAgUGF0dGVybjogKEEgQikr IEMKKyAqICAgRWxlbWVudCAwIChBKTogQUJTT1JCQUJMRV9CUkFOQ0gKKyAqICAgRWxlbWVudCAx IChCKTogQUJTT1JCQUJMRV9CUkFOQ0gKKyAqICAgRWxlbWVudCAyIChFTkQpOiBBQlNPUkJBQkxF IHwgQUJTT1JCQUJMRV9CUkFOQ0ggIDwtIGp1ZGdtZW50IHBvaW50CisgKiAgIEVsZW1lbnQgMyAo Qyk6IChub25lKQorICogICAtPiBDb21wYXJlIGF0IEVORCBldmVyeSAyIHJvd3MuIFdoZW4gY29u dGV4dHMgbW92ZSB0byBDLCBhYnNvcnB0aW9uIHN0b3BzLgorICoKKyAqICAgUGF0dGVybjogKEEr IEIrKSsgQworICogICBFbGVtZW50IDAgKEEpOiBBQlNPUkJBQkxFIHwgQUJTT1JCQUJMRV9CUkFO Q0ggIDwtIG9ubHkgZmlyc3QgQSsgZmxhZ2dlZAorICogICBFbGVtZW50IDEgKEIpOiAobm9uZSkK KyAqICAgRWxlbWVudCAyIChFTkQpOiAobm9uZSkKKyAqICAgRWxlbWVudCAzIChDKTogKG5vbmUp CisgKiAgIC0+IE9ubHkgZmlyc3QgdW5ib3VuZGVkIHBvcnRpb24gKEErKSBnZXRzIGZsYWdzLiBB YnNvcnB0aW9uIGhhcHBlbnMKKyAqICAgICAgYXQgQSBkdXJpbmcgZmlyc3QgaXRlcmF0aW9uLiBB ZnRlciBtb3ZpbmcgdG8gQissIGFic29ycHRpb24gc3RvcHMuCisgKgorICogRmlyc3QgVW5ib3Vu ZGVkIFBvcnRpb24gU3RyYXRlZ3k6CisgKiAgIFRoZSBhbGdvcml0aG0gb25seSBmbGFncyB0aGUg RklSU1QgdW5ib3VuZGVkIHBvcnRpb24gc3RhcnRpbmcgZnJvbQorICogICBlbGVtZW50IDAuIFRo aXMgaXMgc3VmZmljaWVudCBiZWNhdXNlOgorICogICAtIEFic29ycHRpb24gaW4gZmlyc3QgcG9y dGlvbiBhbHJlYWR5IGFjaGlldmVzIE8obikgY29tcGxleGl0eQorICogICAtIExhdGVyIHBvcnRp b25zIGhhdmUgZGlmZmVyZW50IHN5bmNocm9uaXphdGlvbiBjaGFyYWN0ZXJpc3RpY3MKKyAqICAg LSBOZXN0ZWQgdW5ib3VuZGVkIHBhdHRlcm5zIGFyZSB0b28gY29tcGxleCBmb3Igc2ltcGxlIGFi c29ycHRpb24KKyAqICAgLSBDb21wbGV4IHBhdHRlcm5zIChuZXN0ZWQgZ3JvdXBzLCBldGMuKSBu YXR1cmFsbHkgZGllIGZyb20gbWlzbWF0Y2gKKyAqCisgKiBSdW50aW1lIFVzYWdlIChpbiBub2Rl V2luZG93QWdnLmMpOgorICogICAtIHN0YXRlLmlzQWJzb3JiYWJsZSA9IChwcmV2aW91cyAmJiBl bGVtLkFCU09SQkFCTEVfQlJBTkNIKQorICogICAtIE1vbm90b25pYzogb25jZSBmYWxzZSwgc3Rh eXMgZmFsc2UgKGNhbm5vdCByZS1lbnRlciByZWdpb24pCisgKiAgIC0gY29udGV4dC5oYXNBYnNv cmJhYmxlU3RhdGU6IGNhbiBhYnNvcmIgb3RoZXJzICg+PTEgYWJzb3JiYWJsZSBzdGF0ZSkKKyAq ICAgLSBjb250ZXh0LmFsbFN0YXRlc0Fic29yYmFibGU6IGNhbiBiZSBhYnNvcmJlZCAoQUxMIHN0 YXRlcyBhYnNvcmJhYmxlKQorICogICAtIEFic29ycHRpb24gY2hlY2s6IGlmIEN0eDEuaGFzQWJz b3JiYWJsZSAmJiBDdHgyLmFsbEFic29yYmFibGUsCisgKiAgICAgY29tcGFyZSBjb3VudHMgYXQg c2FtZSBlbGVtSWR4LCBhYnNvcmIgaWYgQ3R4MS5jb3VudCA+PSBDdHgyLmNvdW50CisgKgorICot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgKi8KKworLyoKKyAqIGlzRml4ZWRMZW5ndGhDaGlsZHJlbgorICoJ CUNoZWNrIGlmIGFsbCBjaGlsZHJlbiBhdCBzY29wZURlcHRoIGhhdmUgZml4ZWQtbGVuZ3RoIHF1 YW50aWZpZXJzCisgKgkJKG1pbiA9PSBtYXgpLCByZWN1cnNpdmVseSBmb3IgbmVzdGVkIHN1Ymdy b3Vwcy4KKyAqCisgKiBBIGZpeGVkLWxlbmd0aCBncm91cCBpcyBzZW1hbnRpY2FsbHkgZXF1aXZh bGVudCB0byB1bnJvbGxpbmcgZWFjaCBjaGlsZAorICogdG8gezEsMX0gY29waWVzLCB3aGljaCBp cyB0aGUgZXhpc3RpbmcgQ2FzZSAyIGFscmVhZHkgcHJvdmVuIGNvcnJlY3QKKyAqIGZvciBhYnNv cnB0aW9uLiAgVGhpcyBjaGVjayByZWNvZ25pemVzIGZpeGVkLWxlbmd0aCBncm91cHMgYXQgY29t cGlsZQorICogdGltZSB3aXRob3V0IGFjdHVhbGx5IHVucm9sbGluZyB0aGVtLgorICoKKyAqIFRy YXZlcnNlcyB0aGUgZmxhdCBlbGVtZW50IGFycmF5IHN0YXJ0aW5nIGF0IGlkeC4gIEZvciBWQVIg ZWxlbWVudHMsCisgKiBjaGVja3MgbWluID09IG1heC4gIEZvciBCRUdJTiBlbGVtZW50cyAobmVz dGVkIHN1Ymdyb3VwcyksIHJlY3Vyc2VzCisgKiBpbnRvIHRoZSBzdWJncm91cCBhbmQgYWxzbyBj aGVja3MgdGhlIHN1Ymdyb3VwJ3MgRU5EIHF1YW50aWZpZXIuCisgKiBBTFQgZWxlbWVudHMgYXJl IHJlamVjdGVkIChhbHRlcm5hdGlvbiBpbnNpZGUgYWJzb3JiYWJsZSBncm91cCBpcworICogbm90 IHN1cHBvcnRlZCkuCisgKgorICogUmV0dXJucyB0cnVlIGlmIGFsbCBjaGlsZHJlbiBhcmUgZml4 ZWQtbGVuZ3RoLCBzdG9wcGluZyBhdCB0aGUgRU5ECisgKiBlbGVtZW50IGF0IHNjb3BlRGVwdGgg LSAxLgorICovCitzdGF0aWMgYm9vbAoraXNGaXhlZExlbmd0aENoaWxkcmVuKFJQUlBhdHRlcm4g KnBhdHRlcm4sIFJQUkVsZW1JZHggaWR4LCBSUFJEZXB0aCBzY29wZURlcHRoKQoreworCVJQUlBh dHRlcm5FbGVtZW50ICplID0gJnBhdHRlcm4tPmVsZW1lbnRzW2lkeF07CisKKwljaGVja19zdGFj a19kZXB0aCgpOworCisJd2hpbGUgKGUtPmRlcHRoID09IHNjb3BlRGVwdGgpCisJeworCQlpZiAo UlBSRWxlbUlzVmFyKGUpKQorCQl7CisJCQlpZiAoZS0+bWluICE9IGUtPm1heCkKKwkJCQlyZXR1 cm4gZmFsc2U7CisJCX0KKwkJZWxzZSBpZiAoUlBSRWxlbUlzQmVnaW4oZSkpCisJCXsKKwkJCVJQ UkVsZW1JZHgJY2hpbGRJZHggPSBlLT5uZXh0OworCisJCQkvKiBSZWN1cnNlIGludG8gc3ViZ3Jv dXAgY2hpbGRyZW4gYXQgc2NvcGVEZXB0aCArIDEgKi8KKwkJCWlmICghaXNGaXhlZExlbmd0aENo aWxkcmVuKHBhdHRlcm4sIGNoaWxkSWR4LCBzY29wZURlcHRoICsgMSkpCisJCQkJcmV0dXJuIGZh bHNlOworCisJCQkvKiBBZHZhbmNlIHBhc3QgdGhlIHN1Ymdyb3VwIHRvIGl0cyBFTkQgZWxlbWVu dCAqLworCQkJZSA9ICZwYXR0ZXJuLT5lbGVtZW50c1tlLT5uZXh0XTsKKwkJCXdoaWxlIChlLT5k ZXB0aCA+IHNjb3BlRGVwdGgpCisJCQkJZSA9ICZwYXR0ZXJuLT5lbGVtZW50c1tlLT5uZXh0XTsK KworCQkJLyogZSBpcyBub3cgdGhlIEVORCBhdCBzY29wZURlcHRoOyBjaGVjayBpdHMgcXVhbnRp ZmllciAqLworCQkJQXNzZXJ0KFJQUkVsZW1Jc0VuZChlKSAmJiBlLT5kZXB0aCA9PSBzY29wZURl cHRoKTsKKwkJCWlmIChlLT5taW4gIT0gZS0+bWF4KQorCQkJCXJldHVybiBmYWxzZTsKKwkJfQor CQllbHNlCisJCXsKKwkJCS8qIEFMVCBpbnNpZGUgZ3JvdXA6IG5vdCBzdXBwb3J0ZWQgZm9yIGFi c29ycHRpb24gKi8KKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCisJCUFzc2VydChlLT5uZXh0ICE9 IFJQUl9FTEVNSURYX0lOVkFMSUQpOworCQllID0gJnBhdHRlcm4tPmVsZW1lbnRzW2UtPm5leHRd OworCX0KKworCXJldHVybiB0cnVlOworfQorCisvKgorICogaXNVbmJvdW5kZWRTdGFydAorICoJ CUNoZWNrIGlmIHRoZSBlbGVtZW50IGF0IGlkeCBzdGFydHMgYW4gdW5ib3VuZGVkIGdyZWVkeSBz ZXF1ZW5jZS4KKyAqCisgKiBGb3IgY29udGV4dCBhYnNvcnB0aW9uIHRvIHdvcmssIHRoZSBzZXF1 ZW5jZSBzdGFydGluZyBhdCBpZHggbXVzdCBiZToKKyAqICAgLSBVbmJvdW5kZWQgKG1heCA9IGlu ZmluaXR5KQorICogICAtIEdyZWVkeSAobm90IHJlbHVjdGFudCkKKyAqICAgLSBBdCB0aGUgc3Rh cnQgb2YgY3VycmVudCBzY29wZQorICoKKyAqIFR3byBjYXNlcyBhcmUgaGFuZGxlZDoKKyAqICAg MS4gU2ltcGxlIFZBUjogQSsgQiBDIC0gQSBoYXMgbWF4PUlORiwgZ2V0cyBib3RoIGZsYWdzCisg KiAgIDIuIFVuYm91bmRlZCBHUk9VUCB3aXRoIGZpeGVkLWxlbmd0aCBjaGlsZHJlbjogKEEgQnsy fSkrIEMKKyAqICAgICAgQWxsIGNoaWxkcmVuIG11c3QgaGF2ZSBtaW4gPT0gbWF4IChyZWN1cnNp dmVseSBmb3IgbmVzdGVkIHN1Ymdyb3VwcykuCisgKiAgICAgIFRoaXMgaXMgZXF1aXZhbGVudCB0 byB1bnJvbGxpbmcgdG8gezEsMX0gVkFScywgZS5nLiwgKEEgQiBCKSsgQy4KKyAqICAgICAgQWxs IGVsZW1lbnRzIHdpdGhpbiB0aGUgZ3JvdXAgZ2V0IEFCU09SQkFCTEVfQlJBTkNILgorICogICAg ICBPbmx5IHRoZSB1bmJvdW5kZWQgRU5EIGdldHMgQUJTT1JCQUJMRSAoanVkZ21lbnQgcG9pbnQp LgorICogICAgICBFeGFtcGxlczoKKyAqICAgICAgICAoQSBCezJ9KSsgQyAgICAgICAgICAtIEJ7 Mn0gaGFzIG1pbj09bWF4LCBzdGVwPTMKKyAqICAgICAgICAoQSAoQiBDKXsyfSBEKSsgRSAgICAt IG5lc3RlZCB7Mn0gc3ViZ3JvdXAsIHN0ZXA9NgorICogICAgICAgICgoQSAoQiBDKXsyfSl7Mn0p KyAgIC0gZG91Ymx5IG5lc3RlZCB7Mn0sIHN0ZXA9MTAKKyAqICAgICAgICAoQSAoKEIgQ3szfSl7 Mn0gRCl7Mn0gRSkrIEYgIC0gZGVlcCBuZXN0aW5nLCBzdGVwPTIwCisgKgorICogUmV0dXJucyBm YWxzZSBmb3IgcGF0dGVybnMgd2hlcmUgYWJzb3JwdGlvbiBjYW5ub3Qgd29yazoKKyAqICAgLSBB IEIrICh1bmJvdW5kZWQgbm90IGF0IHN0YXJ0KQorICogICAtIEErPyBCIChyZWx1Y3RhbnQgcXVh bnRpZmllcikKKyAqICAgLSAoQSB8IEIpKyAoQUxUIGluc2lkZSBncm91cCkKKyAqICAgLSAoQSBC KykrICh2YXJpYWJsZS1sZW5ndGggZWxlbWVudCBpbnNpZGUgZ3JvdXApCisgKiAgIC0gKEEgQnsy LDV9KSsgKG1pbiAhPSBtYXggaW5zaWRlIGdyb3VwKQorICovCitzdGF0aWMgYm9vbAoraXNVbmJv dW5kZWRTdGFydChSUFJQYXR0ZXJuICpwYXR0ZXJuLCBSUFJFbGVtSWR4IGlkeCkKK3sKKwlSUFJQ YXR0ZXJuRWxlbWVudCAqZWxlbSA9ICZwYXR0ZXJuLT5lbGVtZW50c1tpZHhdOworCVJQUkRlcHRo CXN0YXJ0RGVwdGggPSBlbGVtLT5kZXB0aDsKKwlSUFJQYXR0ZXJuRWxlbWVudCAqZTsKKworCS8q IENhc2UgMTogU2ltcGxlIHVuYm91bmRlZCBWQVIgYXQgc3RhcnQgKGdyZWVkeSBvbmx5KSAqLwor CWlmIChSUFJFbGVtSXNWYXIoZWxlbSkgJiYgZWxlbS0+bWF4ID09IFJQUl9RVUFOVElUWV9JTkYg JiYKKwkJIVJQUkVsZW1Jc1JlbHVjdGFudChlbGVtKSkKKwl7CisJCS8qIFNldCBib3RoIGZsYWdz IG9uIGZpcnN0IGVsZW1lbnQgKi8KKwkJZWxlbS0+ZmxhZ3MgfD0gUlBSX0VMRU1fQUJTT1JCQUJM RV9CUkFOQ0ggfCBSUFJfRUxFTV9BQlNPUkJBQkxFOworCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwkv KgorCSAqIENhc2UgMjogVW5ib3VuZGVkIEdST1VQIHdpdGggZml4ZWQtbGVuZ3RoIGNoaWxkcmVu LiAgRWFjaCBjaGlsZCBtdXN0CisJICogaGF2ZSBtaW4gPT0gbWF4IChyZWN1cnNpdmVseSBmb3Ig bmVzdGVkIHN1Ymdyb3VwcyksIGVuc3VyaW5nIGEgZml4ZWQKKwkgKiBzdGVwIHNpemUgcGVyIGl0 ZXJhdGlvbiBzbyB0aGF0IGNvdW50LWRvbWluYW5jZSBob2xkcy4KKwkgKi8KKwlpZiAoIWlzRml4 ZWRMZW5ndGhDaGlsZHJlbihwYXR0ZXJuLCBpZHgsIHN0YXJ0RGVwdGgpKQorCQlyZXR1cm4gZmFs c2U7CisKKwkvKiBGaW5kIHRoZSBFTkQgZWxlbWVudCBhdCBzdGFydERlcHRoIC0gMSAqLworCWUg PSAmcGF0dGVybi0+ZWxlbWVudHNbaWR4XTsKKwl3aGlsZSAoZS0+ZGVwdGggPj0gc3RhcnREZXB0 aCkKKwkJZSA9ICZwYXR0ZXJuLT5lbGVtZW50c1tlLT5uZXh0XTsKKworCS8qIEVORCBtdXN0IGJl IHVuYm91bmRlZCBncmVlZHkgKi8KKwlpZiAoZS0+ZGVwdGggPT0gc3RhcnREZXB0aCAtIDEgJiYK KwkJUlBSRWxlbUlzRW5kKGUpICYmIGUtPm1heCA9PSBSUFJfUVVBTlRJVFlfSU5GICYmCisJCSFS UFJFbGVtSXNSZWx1Y3RhbnQoZSkpCisJeworCQlBc3NlcnQoZS0+anVtcCA9PSBpZHgpOyAvKiBF TkQgcG9pbnRzIGJhY2sgdG8gZmlyc3QgY2hpbGQgKi8KKworCQkvKiBTZXQgQUJTT1JCQUJMRV9C UkFOQ0ggb24gYWxsIGNoaWxkcmVuLCBBQlNPUkJBQkxFIG9uIEVORCBvbmx5ICovCisJCWZvciAo ZSA9IGVsZW07ICFSUFJFbGVtSXNFbmQoZSkgfHwgZS0+ZGVwdGggPj0gc3RhcnREZXB0aDsKKwkJ CSBlID0gJnBhdHRlcm4tPmVsZW1lbnRzW2UtPm5leHRdKQorCQkJZS0+ZmxhZ3MgfD0gUlBSX0VM RU1fQUJTT1JCQUJMRV9CUkFOQ0g7CisJCWUtPmZsYWdzIHw9IFJQUl9FTEVNX0FCU09SQkFCTEVf QlJBTkNIIHwgUlBSX0VMRU1fQUJTT1JCQUJMRTsKKwkJcmV0dXJuIHRydWU7CisJfQorCisJcmV0 dXJuIGZhbHNlOworfQorCisvKgorICogY29tcHV0ZUFic29yYmFiaWxpdHlSZWN1cnNpdmUKKyAq CQlSZWN1cnNpdmVseSBjaGVjayBhYnNvcmJhYmlsaXR5IHN0YXJ0aW5nIGZyb20gZ2l2ZW4gaW5k ZXguCisgKgorICogSWYgdGhlIGVsZW1lbnQgYXQgc3RhcnRJZHggaXMgQUxULCByZWN1cnNpdmVs eSBjaGVja3MgZWFjaCBicmFuY2ggaW5kZXBlbmRlbnRseS4KKyAqIEVhY2ggYnJhbmNoIGdldHMg aXRzIG93biBhYnNvcmJhYmlsaXR5IHN0YXR1cywgYW5kIGlmIGFueSBicmFuY2ggaXMgYWJzb3Ji YWJsZSwKKyAqIHRoZSBBTFQgZWxlbWVudCBpdHNlbGYgaXMgbWFya2VkIHdpdGggUlBSX0VMRU1f QUJTT1JCQUJMRV9CUkFOQ0guCisgKgorICogSWYgQkVHSU4sIHNraXBzIHRvIGZpcnN0IGNoaWxk LgorICoKKyAqIE90aGVyd2lzZSAoVkFSKSwgY2hlY2tzIGlmIHRoZSBlbGVtZW50IHN0YXJ0cyBh biB1bmJvdW5kZWQgc2VxdWVuY2UgdmlhCisgKiBpc1VuYm91bmRlZFN0YXJ0LgorICovCitzdGF0 aWMgdm9pZAorY29tcHV0ZUFic29yYmFiaWxpdHlSZWN1cnNpdmUoUlBSUGF0dGVybiAqcGF0dGVy biwgUlBSRWxlbUlkeCBzdGFydElkeCwKKwkJCQkJCQkgIGJvb2wgKmhhc0Fic29yYmFibGUpCit7 CisJUlBSUGF0dGVybkVsZW1lbnQgKmVsZW0gPSAmcGF0dGVybi0+ZWxlbWVudHNbc3RhcnRJZHhd OworCisJY2hlY2tfc3RhY2tfZGVwdGgoKTsKKworCWlmIChSUFJFbGVtSXNBbHQoZWxlbSkpCisJ eworCQkvKiBBTFQ6IHJlY3Vyc2l2ZWx5IGNoZWNrIGVhY2ggYnJhbmNoICovCisJCVJQUkVsZW1J ZHgJYnJhbmNoSWR4ID0gZWxlbS0+bmV4dDsKKwkJUlBSUGF0dGVybkVsZW1lbnQgKmJyYW5jaEZp cnN0OworCQlib29sCQlicmFuY2hBYnNvcmJhYmxlOworCisJCXdoaWxlIChicmFuY2hJZHggIT0g UlBSX0VMRU1JRFhfSU5WQUxJRCkKKwkJeworCQkJYnJhbmNoQWJzb3JiYWJsZSA9IGZhbHNlOwor CisJCQlBc3NlcnQoYnJhbmNoSWR4IDwgcGF0dGVybi0+bnVtRWxlbWVudHMpOworCQkJYnJhbmNo Rmlyc3QgPSAmcGF0dGVybi0+ZWxlbWVudHNbYnJhbmNoSWR4XTsKKworCQkJLyogU3RvcCBpZiBl bGVtZW50IGlzIG91dHNpZGUgQUxUIHNjb3BlIChub3QgYSBicmFuY2gpICovCisJCQlpZiAoYnJh bmNoRmlyc3QtPmRlcHRoIDw9IGVsZW0tPmRlcHRoKQorCQkJCWJyZWFrOworCisJCQkvKiBSZWN1 cnNpdmVseSBjaGVjayB0aGlzIGJyYW5jaCAqLworCQkJY29tcHV0ZUFic29yYmFiaWxpdHlSZWN1 cnNpdmUocGF0dGVybiwgYnJhbmNoSWR4LCAmYnJhbmNoQWJzb3JiYWJsZSk7CisJCQlpZiAoYnJh bmNoQWJzb3JiYWJsZSkKKwkJCXsKKwkJCQkqaGFzQWJzb3JiYWJsZSA9IHRydWU7CisJCQl9CisK KwkJCWJyYW5jaElkeCA9IGJyYW5jaEZpcnN0LT5qdW1wOworCQl9CisKKwkJLyogTWFyayBBTFQg ZWxlbWVudCBpZiBhbnkgYnJhbmNoIGlzIGFic29yYmFibGUgKi8KKwkJaWYgKCpoYXNBYnNvcmJh YmxlKQorCQkJZWxlbS0+ZmxhZ3MgfD0gUlBSX0VMRU1fQUJTT1JCQUJMRV9CUkFOQ0g7CisJfQor CWVsc2UgaWYgKFJQUkVsZW1Jc0JlZ2luKGVsZW0pKQorCXsKKwkJLyoKKwkJICogQkVHSU46IGZp cnN0IHRyeSB0byB0cmVhdCB0aGlzIEJFR0lOJ3MgY2hpbGRyZW4gYXMgYW4gdW5ib3VuZGVkCisJ CSAqIGdyb3VwIGRpcmVjdGx5IChoYW5kbGVzIG5lc3RlZCBmaXhlZC1sZW5ndGggZ3JvdXBzIGxp a2UgKChBezJ9CisJCSAqIEJ7M30pezJ9KSspLiAgSWYgdGhhdCBmYWlscywgc2tpcCB0byBmaXJz dCBjaGlsZCBhbmQgcmVjdXJzZSBhcworCQkgKiBiZWZvcmUuCisJCSAqLworCQlpZiAoaXNVbmJv dW5kZWRTdGFydChwYXR0ZXJuLCBlbGVtLT5uZXh0KSkKKwkJeworCQkJKmhhc0Fic29yYmFibGUg PSB0cnVlOworCQkJZWxlbS0+ZmxhZ3MgfD0gUlBSX0VMRU1fQUJTT1JCQUJMRV9CUkFOQ0g7CisJ CX0KKwkJZWxzZQorCQl7CisJCQljb21wdXRlQWJzb3JiYWJpbGl0eVJlY3Vyc2l2ZShwYXR0ZXJu LCBlbGVtLT5uZXh0LCBoYXNBYnNvcmJhYmxlKTsKKworCQkJLyogTWFyayBCRUdJTiBlbGVtZW50 IGlmIGNvbnRlbnRzIGFyZSBhYnNvcmJhYmxlICovCisJCQlpZiAoKmhhc0Fic29yYmFibGUpCisJ CQkJZWxlbS0+ZmxhZ3MgfD0gUlBSX0VMRU1fQUJTT1JCQUJMRV9CUkFOQ0g7CisJCX0KKwl9CisJ ZWxzZQorCXsKKwkJLyogU2hvdWxkIG5ldmVyIHJlYWNoIEVORCAtIHN0cnVjdHVyYWwgaW52YXJp YW50IG9mIHBhdHRlcm4gQVNUICovCisJCUFzc2VydCghUlBSRWxlbUlzRW5kKGVsZW0pKTsKKwor CQkvKiBOb24tQUxULCBub24tQkVHSU46IGNoZWNrIGlmIHVuYm91bmRlZCBzdGFydCAqLworCQlp ZiAoaXNVbmJvdW5kZWRTdGFydChwYXR0ZXJuLCBzdGFydElkeCkpCisJCXsKKwkJCSpoYXNBYnNv cmJhYmxlID0gdHJ1ZTsKKwkJfQorCX0KK30KKworLyoKKyAqIGNvbXB1dGVBYnNvcmJhYmlsaXR5 CisgKgkJRGV0ZXJtaW5lIGlmIHBhdHRlcm4gc3VwcG9ydHMgY29udGV4dCBhYnNvcnB0aW9uIG9w dGltaXphdGlvbi4KKyAqCisgKiBDb250ZXh0IGFic29ycHRpb24gZWxpbWluYXRlcyByZWR1bmRh bnQgbWF0Y2ggc2VhcmNoZXMgYnkgYWJzb3JiaW5nCisgKiBuZXdlciBjb250ZXh0cyB0aGF0IGNh bm5vdCBwcm9kdWNlIGxvbmdlciBtYXRjaGVzIHRoYW4gb2xkZXIgY29udGV4dHMuCisgKiBUaGlz IGFjaGlldmVzIE8obl4yKSAtPiBPKG4pIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50LgorICoKKyAq IE9ubHkgZ3JlZWR5IHVuYm91bmRlZCBxdWFudGlmaWVycyBhdCBwYXR0ZXJuIHN0YXJ0IGNhbiBi ZSBhYnNvcmJhYmxlLgorICogUmVsdWN0YW50IHF1YW50aWZpZXJzIGFyZSBleGNsdWRlZCBiZWNh dXNlIHRoZXkgZG9uJ3QgbWFpbnRhaW4gbW9ub3RvbmljCisgKiBkZWNyZWFzZSBwcm9wZXJ0eSBy ZXF1aXJlZCBmb3Igc2FmZSBhYnNvcnB0aW9uLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gc2V0cyB0 d28gZmxhZ3M6CisgKiAgIFJQUl9FTEVNX0FCU09SQkFCTEU6IEFic29ycHRpb24ganVkZ21lbnQg cG9pbnQKKyAqICAgICAtIFNpbXBsZSB1bmJvdW5kZWQgVkFSOiB0aGUgVkFSIGl0c2VsZiAoZS5n LiwgQSBpbiBBKykKKyAqICAgICAtIFVuYm91bmRlZCBHUk9VUDogdGhlIEVORCBlbGVtZW50IChl LmcuLCBFTkQgaW4gKEEgQikrKQorICogICBSUFJfRUxFTV9BQlNPUkJBQkxFX0JSQU5DSDogQWxs IGVsZW1lbnRzIGluIGFic29yYmFibGUgcmVnaW9uCisgKiAgICAgLSBBbGwgZWxlbWVudHMgd2l0 aGluIHRoZSBzYW1lIHNjb3BlIGFzIHVuYm91bmRlZCBzdGFydAorICoKKyAqIEV4YW1wbGVzOgor ICogICBBKyBCIEMgICAgICAgICAtIGFic29yYmFibGUgKEEgZ2V0cyBib3RoIGZsYWdzKQorICog ICAoQSBCKSsgQyAgICAgICAtIGFic29yYmFibGUgKEEsQixFTkQgZ2V0IEJSQU5DSCwgRU5EIGdl dHMgQUJTT1JCQUJMRSkKKyAqICAgQSBCKyAgICAgICAgICAgLSBOT1QgYWJzb3JiYWJsZSAodW5i b3VuZGVkIG5vdCBhdCBzdGFydCkKKyAqICAgQSs/IEIgQyAgICAgICAgLSBOT1QgYWJzb3JiYWJs ZSAocmVsdWN0YW50IHF1YW50aWZpZXIpCisgKiAgIChBKyBCKykrICAgICAgIC0gb25seSBmaXJz dCBBKyBvbiBmaXJzdCBpdGVyYXRpb24gKG5lc3RlZCB1bmJvdW5kZWQgbm90IHN1cHBvcnRlZCkK KyAqICAgQSsgfCBCKyAgICAgICAgLSBib3RoIGJyYW5jaGVzIGFic29yYmFibGUgaW5kZXBlbmRl bnRseQorICogICBBKyB8IEMgRCAgICAgICAtIG9ubHkgQSsgYnJhbmNoIGFic29yYmFibGUgKEMg RCBicmFuY2ggbm90IGFic29yYmFibGUpCisgKiAgICgoQSsgQikgfCBDKSBEIC0gbmVzdGVkIEFM VDogQSsgYnJhbmNoIGlzIGFic29yYmFibGUKKyAqLworc3RhdGljIHZvaWQKK2NvbXB1dGVBYnNv cmJhYmlsaXR5KFJQUlBhdHRlcm4gKnBhdHRlcm4pCit7CisJYm9vbAkJaGFzQWJzb3JiYWJsZSA9 IGZhbHNlOworCisJLyogUGFyc2VyIGFsd2F5cyBwcm9kdWNlcyBhdCBsZWFzdCBvbmUgZWxlbWVu dCArIEZJTiAqLworCUFzc2VydChwYXR0ZXJuLT5udW1FbGVtZW50cyA+PSAyKTsKKworCS8qIFN0 YXJ0IHJlY3Vyc2lvbiBmcm9tIGZpcnN0IGVsZW1lbnQgKi8KKwljb21wdXRlQWJzb3JiYWJpbGl0 eVJlY3Vyc2l2ZShwYXR0ZXJuLCAwLCAmaGFzQWJzb3JiYWJsZSk7CisJcGF0dGVybi0+aXNBYnNv cmJhYmxlID0gaGFzQWJzb3JiYWJsZTsKK30KKworLyoKKyAqIGNvbGxlY3RQYXR0ZXJuVmFyaWFi bGVzUmVjdXJzaXZlCisgKgkJUmVjdXJzaXZlbHkgY29sbGVjdCB2YXJpYWJsZSBuYW1lcyBmcm9t IHBhdHRlcm4gQVNULgorICovCitzdGF0aWMgdm9pZAorY29sbGVjdFBhdHRlcm5WYXJpYWJsZXNS ZWN1cnNpdmUoUlBSUGF0dGVybk5vZGUgKm5vZGUsIExpc3QgKip2YXJOYW1lcykKK3sKKwlMaXN0 Q2VsbCAgICpsYzsKKworCUFzc2VydChub2RlICE9IE5VTEwpOworCisJY2hlY2tfc3RhY2tfZGVw dGgoKTsKKworCXN3aXRjaCAobm9kZS0+bm9kZVR5cGUpCisJeworCQljYXNlIFJQUl9QQVRURVJO X1ZBUjoKKwkJCS8qIEFkZCB2YXJpYWJsZSBpZiBub3QgYWxyZWFkeSBpbiBsaXN0ICovCisJCQlm b3JlYWNoKGxjLCAqdmFyTmFtZXMpCisJCQl7CisJCQkJaWYgKHN0cmNtcChzdHJWYWwobGZpcnN0 KGxjKSksIG5vZGUtPnZhck5hbWUpID09IDApCisJCQkJCXJldHVybjsJCS8qIEFscmVhZHkgY29s bGVjdGVkICovCisJCQl9CisJCQkqdmFyTmFtZXMgPSBsYXBwZW5kKCp2YXJOYW1lcywgbWFrZVN0 cmluZyhwc3RyZHVwKG5vZGUtPnZhck5hbWUpKSk7CisJCQlicmVhazsKKworCQljYXNlIFJQUl9Q QVRURVJOX1NFUToKKwkJY2FzZSBSUFJfUEFUVEVSTl9BTFQ6CisJCWNhc2UgUlBSX1BBVFRFUk5f R1JPVVA6CisJCQlmb3JlYWNoKGxjLCBub2RlLT5jaGlsZHJlbikKKwkJCXsKKwkJCQljb2xsZWN0 UGF0dGVyblZhcmlhYmxlc1JlY3Vyc2l2ZSgoUlBSUGF0dGVybk5vZGUgKikgbGZpcnN0KGxjKSwK KwkJCQkJCQkJCQkJCSB2YXJOYW1lcyk7CisJCQl9CisJCQlicmVhazsKKwl9Cit9CisKKy8qCisg KiBjb2xsZWN0UGF0dGVyblZhcmlhYmxlcworICoJCUNvbGxlY3QgdW5pcXVlIHZhcmlhYmxlIG5h bWVzIHVzZWQgaW4gUEFUVEVSTiBjbGF1c2UuCisgKgorICogUmV0dXJucyBhIGxpc3Qgb2YgU3Ry aW5nIG5vZGVzIGNvbnRhaW5pbmcgdmFyaWFibGUgbmFtZXMuCisgKiBVc2VkIHRvIGZpbHRlciBk ZWZpbmVDbGF1c2UgYmVmb3JlIHZhcklkIGFzc2lnbm1lbnQuCisgKi8KK0xpc3QgKgorY29sbGVj dFBhdHRlcm5WYXJpYWJsZXMoUlBSUGF0dGVybk5vZGUgKnBhdHRlcm4pCit7CisJTGlzdAkgICAq dmFyTmFtZXMgPSBOSUw7CisKKwkvKiBDYWxsZXIgZW5zdXJlcyBwYXR0ZXJuIGlzIG5vdCBOVUxM ICovCisJQXNzZXJ0KHBhdHRlcm4gIT0gTlVMTCk7CisKKwljb2xsZWN0UGF0dGVyblZhcmlhYmxl c1JlY3Vyc2l2ZShwYXR0ZXJuLCAmdmFyTmFtZXMpOworCXJldHVybiB2YXJOYW1lczsKK30KKwor LyoKKyAqIGJ1aWxkRGVmaW5lVmFyaWFibGVMaXN0CisgKgkJQnVpbGQgZGVmaW5lVmFyaWFibGVM aXN0IGZyb20gZGVmaW5lQ2xhdXNlLgorICoKKyAqIFRoZSBwYXJzZXIgYWxyZWFkeSBlbnN1cmVz IHRoYXQgYWxsIERFRklORSB2YXJpYWJsZXMgYXBwZWFyIGluIFBBVFRFUk4sCisgKiBzbyBubyBm aWx0ZXJpbmcgaXMgbmVlZGVkIGhlcmUuCisgKgorICogU2V0cyAqZGVmaW5lVmFyaWFibGVMaXN0 IHRvIGxpc3Qgb2YgdmFyaWFibGUgbmFtZXMgKFN0cmluZyBub2RlcykuCisgKi8KK3ZvaWQKK2J1 aWxkRGVmaW5lVmFyaWFibGVMaXN0KExpc3QgKmRlZmluZUNsYXVzZSwgTGlzdCAqKmRlZmluZVZh cmlhYmxlTGlzdCkKK3sKKwlMaXN0Q2VsbCAgICpsYzsKKworCSpkZWZpbmVWYXJpYWJsZUxpc3Qg PSBOSUw7CisKKwlmb3JlYWNoKGxjLCBkZWZpbmVDbGF1c2UpCisJeworCQlUYXJnZXRFbnRyeSAq dGUgPSAoVGFyZ2V0RW50cnkgKikgbGZpcnN0KGxjKTsKKworCQkqZGVmaW5lVmFyaWFibGVMaXN0 ID0gbGFwcGVuZCgqZGVmaW5lVmFyaWFibGVMaXN0LAorCQkJCQkJCQkJICBtYWtlU3RyaW5nKHBz dHJkdXAodGUtPnJlc25hbWUpKSk7CisJfQorfQorCisvKgorICogYnVpbGRSUFJQYXR0ZXJuCisg KgkJQ29tcGlsZSBwYXR0ZXJuIEFTVCB0byBmbGF0IGJ5dGVjb2RlIGFycmF5LgorICoKKyAqIENv bXBpbGF0aW9uIHBoYXNlczoKKyAqICAgMS4gT3B0aW1pemUgQVNUIChmbGF0dGVuLCBtZXJnZSwg ZGVkdXBsaWNhdGUpCisgKiAgIDIuIFNjYW46IGNvbGxlY3QgdmFyaWFibGVzLCBjb3VudCBlbGVt ZW50cyAocGFzcyAxKQorICogICAzLiBBbGxvY2F0ZSByZXN1bHQgc3RydWN0dXJlCisgKiAgIDQu IEZpbGwgZWxlbWVudHMgZnJvbSBBU1QgKHBhc3MgMikKKyAqICAgNS4gRmluYWxpemUgcGF0dGVy biBzdHJ1Y3R1cmUKKyAqICAgNi4gQ29tcHV0ZSBjb250ZXh0IGFic29ycHRpb24gZWxpZ2liaWxp dHkKKyAqCisgKiBDYWxsZWQgZnJvbSBjcmVhdGVwbGFuLmMgZHVyaW5nIHBsYW4gY3JlYXRpb24u CisgKi8KK1JQUlBhdHRlcm4gKgorYnVpbGRSUFJQYXR0ZXJuKFJQUlBhdHRlcm5Ob2RlICpwYXR0 ZXJuLCBMaXN0ICpkZWZpbmVWYXJpYWJsZUxpc3QsCisJCQkJUlBTa2lwVG8gcnBTa2lwVG8sIGlu dCBmcmFtZU9wdGlvbnMsCisJCQkJYm9vbCBoYXNNYXRjaFN0YXJ0RGVwZW5kZW50KQoreworCVJQ UlBhdHRlcm4gKnJlc3VsdDsKKwlSUFJQYXR0ZXJuTm9kZSAqb3B0aW1pemVkOworCWNoYXIJICAg KnZhck5hbWVzU3RhY2tbUlBSX1ZBUklEX01BWF07CisJaW50CQkJbnVtVmFyczsKKwlpbnQJCQlu dW1FbGVtZW50czsKKwlSUFJEZXB0aAltYXhEZXB0aDsKKwlpbnQJCQlpZHg7CisJYm9vbAkJaGFz TGltaXRlZEZyYW1lOworCisJLyogQ2FsbGVyIG11c3QgY2hlY2sgZm9yIE5VTEwgcGF0dGVybiBi ZWZvcmUgY2FsbGluZyAqLworCUFzc2VydChwYXR0ZXJuICE9IE5VTEwpOworCisJLyogT3B0aW1p emUgdGhlIHBhdHRlcm4gdHJlZSAqLworCW9wdGltaXplZCA9IG9wdGltaXplUlBSUGF0dGVybihj b3B5T2JqZWN0KHBhdHRlcm4pKTsKKworCS8qIENvbGxlY3QgdmFyaWFibGUgbmFtZXMgZnJvbSBE RUZJTkUgY2xhdXNlICovCisJbnVtVmFycyA9IGNvbGxlY3REZWZpbmVWYXJpYWJsZXMoZGVmaW5l VmFyaWFibGVMaXN0LCB2YXJOYW1lc1N0YWNrKTsKKworCS8qIFNjYW4gcGF0dGVybjogY29sbGVj dCB2YXJpYWJsZXMsIGNvdW50IGVsZW1lbnRzLCB2YWxpZGF0ZSBsaW1pdHMgKi8KKwlzY2FuUlBS UGF0dGVybihvcHRpbWl6ZWQsIHZhck5hbWVzU3RhY2ssICZudW1WYXJzLCAmbnVtRWxlbWVudHMs ICZtYXhEZXB0aCk7CisKKwkvKiBBbGxvY2F0ZSByZXN1bHQgc3RydWN0dXJlICovCisJcmVzdWx0 ID0gYWxsb2NhdGVSUFJQYXR0ZXJuKG51bVZhcnMsIG51bUVsZW1lbnRzLCBtYXhEZXB0aCwgdmFy TmFtZXNTdGFjayk7CisKKwkvKiBGaWxsIGVsZW1lbnRzIChwYXNzIDIpICovCisJaWR4ID0gMDsK KwlmaWxsUlBSUGF0dGVybihvcHRpbWl6ZWQsIHJlc3VsdCwgJmlkeCwgMCk7CisKKwkvKiBGaW5h bGl6ZTogc2V0IHVwIG5leHQgcG9pbnRlcnMsIGZsYWdzLCBhbmQgYWRkIEZJTiBtYXJrZXIgKi8K KwlmaW5hbGl6ZVJQUlBhdHRlcm4ocmVzdWx0KTsKKworCS8qCisJICogQ29tcHV0ZSBjb250ZXh0 IGFic29ycHRpb24gZWxpZ2liaWxpdHkuIEFic29ycHRpb24gcmVxdWlyZXMgYm90aAorCSAqIHN0 cnVjdHVyYWwgYWJzb3JiYWJpbGl0eSBhbmQgcnVudGltZSBjb25kaXRpb25zLiBDaGVjayBydW50 aW1lCisJICogY29uZGl0aW9ucyBmaXJzdCB0byBhdm9pZCB1bm5lY2Vzc2FyeSBwYXR0ZXJuIGFu YWx5c2lzLgorCSAqCisJICogUnVudGltZSBjb25kaXRpb25zIGZvciBhYnNvcnB0aW9uOgorCSAq CisJICogMS4gU0tJUCBUTyBQQVNUIExBU1QgUk9XIHJlcXVpcmVkIChub3QgU0tJUCBUTyBORVhU IFJPVyk6IFdpdGggTkVYVAorCSAqIFJPVywgYWZ0ZXIgZWFjaCBtYXRjaCB0aGUgc2VhcmNoIHJl c3VtZXMgZnJvbSB0aGUgbmV4dCByb3csIHNvIGNvbnRleHRzCisJICogYXJlIGltbWVkaWF0ZWx5 IGRpc2NhcmRlZC4gTm8gcmVkdW5kYW50IGNvbnRleHRzIGFjY3VtdWxhdGUsIG1ha2luZworCSAq IGFic29ycHRpb24gdW5uZWNlc3NhcnkuCisJICoKKwkgKiAyLiBVbmJvdW5kZWQgZnJhbWUgZW5k IHJlcXVpcmVkIChub3QgUk9XUyB3aXRoIGJvdW5kZWQgZW5kKTogV2l0aCBhCisJICogYm91bmRl ZCBmcmFtZSAoZS5nLiwgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCAxMCBGT0xMT1dJTkcp LAorCSAqIG1hdGNoZXMgbWF5IGJlIHRydW5jYXRlZCBhdCBmcmFtZSBib3VuZGFyaWVzLiBUaGlz IGNoYW5nZXMgdGhlCisJICogYWJzb3JwdGlvbiBzZW1hbnRpY3MgLSBvbGRlciBjb250ZXh0cyBk b24ndCBuZWNlc3NhcmlseSBwcm9kdWNlIGxvbmdlcgorCSAqIG1hdGNoZXMgd2hlbiBmcmFtZSBs aW1pdHMgYXBwbHkgZGlmZmVyZW50bHkgdG8gZWFjaCBjb250ZXh0LgorCSAqLworCWhhc0xpbWl0 ZWRGcmFtZSA9IChmcmFtZU9wdGlvbnMgJiBGUkFNRU9QVElPTl9ST1dTKSAmJgorCQkhKGZyYW1l T3B0aW9ucyAmIEZSQU1FT1BUSU9OX0VORF9VTkJPVU5ERURfRk9MTE9XSU5HKTsKKworCWlmIChy cFNraXBUbyA9PSBTVF9QQVNUX0xBU1RfUk9XICYmICFoYXNMaW1pdGVkRnJhbWUgJiYKKwkJIWhh c01hdGNoU3RhcnREZXBlbmRlbnQpCisJeworCQkvKiBSdW50aW1lIGNvbmRpdGlvbnMgbWV0IC0g Y2hlY2sgc3RydWN0dXJhbCBhYnNvcmJhYmlsaXR5ICovCisJCWNvbXB1dGVBYnNvcmJhYmlsaXR5 KHJlc3VsdCk7CisJfQorCisJcmV0dXJuIHJlc3VsdDsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFu L3NldHJlZnMuYwppbmRleCBmZjBlODc1ZjJhMi4uODEzYTMyNmJkNzggMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYworKysgYi9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9zZXRyZWZzLmMKQEAgLTIxNCw3ICsyMTQsNiBAQCBzdGF0aWMgTGlzdCAqc2V0 X3dpbmRvd2FnZ19ydW5jb25kaXRpb25fcmVmZXJlbmNlcyhQbGFubmVySW5mbyAqcm9vdCwKIHN0 YXRpYyB2b2lkIHJlY29yZF9lbGlkZWRfbm9kZShQbGFubmVyR2xvYmFsICpnbG9iLCBpbnQgcGxh bl9ub2RlX2lkLAogCQkJCQkJCSAgIE5vZGVUYWcgZWxpZGVkX3R5cGUsIEJpdG1hcHNldCAqcmVs aWRzKTsKIAotCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKgkJU1VCUExBTiBSRUZFUkVO Q0VTCkBAIC0yNjMzLDYgKzI2MzIsMzQgQEAgc2V0X3VwcGVyX3JlZmVyZW5jZXMoUGxhbm5lcklu Zm8gKnJvb3QsIFBsYW4gKnBsYW4sIGludCBydG9mZnNldCkKIAkJCQkJICAgTlJNX0VRVUFMLAog CQkJCQkgICBOVU1fRVhFQ19RVUFMKHBsYW4pKTsKIAorCS8qCisJICogUmVwbGFjZSBhbiBleHBy ZXNzaW9uIHRyZWUgaW4gZWFjaCBERUZJTkUgY2xhdXNlIHNvIHRoYXQgYWxsIFZhcgorCSAqIG5v ZGVzJ3MgdmFybm8gcmVmZXJzIHRvIE9VVEVSX1ZBUi4KKwkgKi8KKwlpZiAoSXNBKHBsYW4sIFdp bmRvd0FnZykpCisJeworCQlXaW5kb3dBZ2cgICp3cGxhbiA9IChXaW5kb3dBZ2cgKikgcGxhbjsK KworCQlpZiAod3BsYW4tPmRlZmluZUNsYXVzZSAhPSBOSUwpCisJCXsKKwkJCWZvcmVhY2gobCwg d3BsYW4tPmRlZmluZUNsYXVzZSkKKwkJCXsKKwkJCQlUYXJnZXRFbnRyeSAqdGxlID0gKFRhcmdl dEVudHJ5ICopIGxmaXJzdChsKTsKKworCQkJCXRsZSA9IGZsYXRDb3B5VGFyZ2V0RW50cnkodGxl KTsKKwkJCQl0bGUtPmV4cHIgPSAoRXhwciAqKQorCQkJCQlmaXhfdXBwZXJfZXhwcihyb290LAor CQkJCQkJCQkgICAoTm9kZSAqKSB0bGUtPmV4cHIsCisJCQkJCQkJCSAgIHN1YnBsYW5faXRsaXN0 LAorCQkJCQkJCQkgICBPVVRFUl9WQVIsCisJCQkJCQkJCSAgIHJ0b2Zmc2V0LAorCQkJCQkJCQkg ICBOUk1fRVFVQUwsCisJCQkJCQkJCSAgIE5VTV9FWEVDX1FVQUwocGxhbikpOworCQkJCWxmaXJz dChsKSA9IHRsZTsKKwkJCX0KKwkJfQorCX0KKwogCXBmcmVlKHN1YnBsYW5faXRsaXN0KTsKIH0K IApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpvaW50cmVlLmMg Yi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYwppbmRleCA0NDI0ZmRi ZTkwNi4uMDI4OThhOTEwNmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVw L3ByZXBqb2ludHJlZS5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2lu dHJlZS5jCkBAIC0yNTkzLDYgKzI1OTMsMTUgQEAgcGVyZm9ybV9wdWxsdXBfcmVwbGFjZV92YXJz KFBsYW5uZXJJbmZvICpyb290LAogCXBhcnNlLT5yZXR1cm5pbmdMaXN0ID0gKExpc3QgKikKIAkJ cHVsbHVwX3JlcGxhY2VfdmFycygoTm9kZSAqKSBwYXJzZS0+cmV0dXJuaW5nTGlzdCwgcnZjb250 ZXh0KTsKIAorCWZvcmVhY2gobGMsIHBhcnNlLT53aW5kb3dDbGF1c2UpCisJeworCQlXaW5kb3dD bGF1c2UgKndjID0gbGZpcnN0X25vZGUoV2luZG93Q2xhdXNlLCBsYyk7CisKKwkJaWYgKHdjLT5k ZWZpbmVDbGF1c2UgIT0gTklMKQorCQkJd2MtPmRlZmluZUNsYXVzZSA9IChMaXN0ICopCisJCQkJ cHVsbHVwX3JlcGxhY2VfdmFycygoTm9kZSAqKSB3Yy0+ZGVmaW5lQ2xhdXNlLCBydmNvbnRleHQp OworCX0KKwogCWlmIChwYXJzZS0+b25Db25mbGljdCkKIAl7CiAJCXBhcnNlLT5vbkNvbmZsaWN0 LT5vbkNvbmZsaWN0U2V0ID0gKExpc3QgKikKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVz L3BsYW5ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKaW5kZXggMTRhMWRm ZWQyYjkuLmZkNGJkZjJjYjMxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9k ZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaApAQCAtMTgsNiArMTgsNyBA QAogI2luY2x1ZGUgImFjY2Vzcy9zdHJhdG51bS5oIgogI2luY2x1ZGUgIm5vZGVzL2JpdG1hcHNl dC5oIgogI2luY2x1ZGUgIm5vZGVzL2xvY2tvcHRpb25zLmgiCisjaW5jbHVkZSAibm9kZXMvcGFy c2Vub2Rlcy5oIgogI2luY2x1ZGUgIm5vZGVzL3ByaW1ub2Rlcy5oIgogCiAKQEAgLTEyNDQsNiAr MTI0NSw3MCBAQCB0eXBlZGVmIHN0cnVjdCBBZ2cKIAlMaXN0CSAgICpjaGFpbjsKIH0gQWdnOwog CisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJUm93IFBhdHRlcm4gUmVjb2duaXRpb24gY29tcGls ZWQgcGF0dGVybiB0eXBlcworICogLS0tLS0tLS0tLS0tLS0tLQorICovCisKKy8qIFR5cGUgZGVm aW5pdGlvbnMgZm9yIFJQUiBwYXR0ZXJuIGVsZW1lbnRzICovCit0eXBlZGVmIHVpbnQ4IFJQUlZh cklkOwkJCS8qIHBhdHRlcm4gdmFyaWFibGUgSUQgKi8KK3R5cGVkZWYgdWludDggUlBSRWxlbUZs YWdzOwkJLyogZWxlbWVudCBmbGFncyAqLwordHlwZWRlZiB1aW50OCBSUFJEZXB0aDsJCQkvKiBn cm91cCBuZXN0aW5nIGRlcHRoICovCit0eXBlZGVmIGludDMyIFJQUlF1YW50aXR5OwkJLyogcXVh bnRpZmllciBtaW4vbWF4ICovCit0eXBlZGVmIGludDE2IFJQUkVsZW1JZHg7CQkvKiBlbGVtZW50 IGFycmF5IGluZGV4ICovCisKKy8qCisgKiBSUFJQYXR0ZXJuRWxlbWVudCAtIGZsYXQgZWxlbWVu dCBmb3IgTkZBIHBhdHRlcm4gbWF0Y2hpbmcgKDE2IGJ5dGVzKQorICoKKyAqIExheW91dCBvcHRp bWl6ZWQgZm9yIGFsaWdubWVudCAobm8gcGFkZGluZyBob2xlcyk6CisgKiAgIHZhcklkKDEpICsg ZGVwdGgoMSkgKyBmbGFncygxKSArIHJlc2VydmVkKDEpICsgbWluKDQpICsgbWF4KDQpICsgbmV4 dCgyKSArIGp1bXAoMikKKyAqLwordHlwZWRlZiBzdHJ1Y3QgUlBSUGF0dGVybkVsZW1lbnQKK3sK KwlSUFJWYXJJZAl2YXJJZDsJCQkvKiB2YXJpYWJsZSBJRCwgb3Igc3BlY2lhbCB2YWx1ZSBmb3Ig Y29udHJvbCAqLworCVJQUkRlcHRoCWRlcHRoOwkJCS8qIGdyb3VwIG5lc3RpbmcgZGVwdGggKi8K KwlSUFJFbGVtRmxhZ3MgZmxhZ3M7CQkJLyogZmxhZ3MgKHJlbHVjdGFudCwgZXRjLikgKi8KKwl1 aW50OAkJcmVzZXJ2ZWQ7CQkvKiByZXNlcnZlZCBwYWRkaW5nIGJ5dGUgKi8KKwlSUFJRdWFudGl0 eSBtaW47CQkJLyogcXVhbnRpZmllciBtaW5pbXVtICovCisJUlBSUXVhbnRpdHkgbWF4OwkJCS8q IHF1YW50aWZpZXIgbWF4aW11bSAqLworCVJQUkVsZW1JZHgJbmV4dDsJCQkvKiBuZXh0IGVsZW1l bnQgaW5kZXggKi8KKwlSUFJFbGVtSWR4CWp1bXA7CQkJLyoganVtcCB0YXJnZXQgKGZvciBBTFQv R1JPVVApICovCit9IFJQUlBhdHRlcm5FbGVtZW50OworCisvKgorICogUlBSUGF0dGVybiAtIGNv bXBpbGVkIHBhdHRlcm4gZm9yIE5GQSBleGVjdXRpb24KKyAqCisgKiBSZXF1aXJlcyBjdXN0b20g Y29weS9vdXQvcmVhZCBmdW5jdGlvbnMgZHVlIHRvIGVsZW1lbnRzIGFycmF5LgorICovCit0eXBl ZGVmIHN0cnVjdCBSUFJQYXR0ZXJuCit7CisJcGdfbm9kZV9hdHRyKGN1c3RvbV9jb3B5X2VxdWFs LCBjdXN0b21fcmVhZF93cml0ZSkKKworCU5vZGVUYWcJCXR5cGU7CQkJLyogVF9SUFJQYXR0ZXJu ICovCisJaW50CQkJbnVtVmFyczsJCS8qIG51bWJlciBvZiBwYXR0ZXJuIHZhcmlhYmxlcyAqLwor CWNoYXIJICAqKnZhck5hbWVzOwkJLyogYXJyYXkgb2YgdmFyaWFibGUgbmFtZXMgKERFRklORSBv cmRlcgorCQkJCQkJCQkgKiBmaXJzdCkgKi8KKwlSUFJEZXB0aAltYXhEZXB0aDsJCS8qIG1heGlt dW0gZ3JvdXAgbmVzdGluZyBkZXB0aCAqLworCWludAkJCW51bUVsZW1lbnRzOwkvKiBudW1iZXIg b2YgZWxlbWVudHMgKi8KKwlSUFJQYXR0ZXJuRWxlbWVudCAqZWxlbWVudHM7CS8qIGFycmF5IG9m IHBhdHRlcm4gZWxlbWVudHMgKi8KKworCS8qLS0tLS0tLS0tLS0tLS0tLQorCSAqIENvbnRleHQg YWJzb3JwdGlvbiBvcHRpbWl6YXRpb24uCisJICoKKwkgKiBBYnNvcnB0aW9uIGlzIG9ubHkgc2Fm ZSB3aGVuIGxhdGVyIG1hdGNoZXMgYXJlIGd1YXJhbnRlZWQgdG8gYmUKKwkgKiBzdWZmaXhlcyBv ZiBlYXJsaWVyIG1hdGNoZXMuIFRoaXMgcmVxdWlyZXMgc2ltcGxlIHBhdHRlcm4gc3RydWN0dXJl OgorCSAqCisJICogQ2FzZSAxOiBObyBBTFQsIHNpbmdsZSB1bmJvdW5kZWQgZWxlbWVudCAoQSss IChBIEIpKykKKwkgKiBDYXNlIDI6IFRvcC1sZXZlbCBBTFQgd2l0aCBlYWNoIGJyYW5jaCBiZWlu ZyBzaW5nbGUgdW5ib3VuZGVkIChBKyB8IEIrKQorCSAqCisJICogQ29tcGxleCBwYXR0ZXJucyBs aWtlIEEgQiAoQSBCKSsgY291bGQgdGhlb3JldGljYWxseSBiZSB0cmFuc2Zvcm1lZCB0bworCSAq IChBIEIpezIsfSBmb3IgYWJzb3JwdGlvbiwgYnV0IHRoaXMgY2hhbmdlcyBsZXhpY2FsIG9yZGVy IGFuZCBpcyBub3QKKwkgKiBpbXBsZW1lbnRlZC4gU2ltaWxhcmx5LCAoQXxCKSsgY2Fubm90IGJl IGFic29yYmVkIGJlY2F1c2UgZGlmZmVyZW50CisJICogc3RhcnQgcG9zaXRpb25zIHByb2R1Y2Ug ZGlmZmVyZW50IG1hdGNoIGNvbnRlbnRzIChub3Qgc3VmZml4IHJlbGF0aW9uKS4KKwkgKi8KKwli b29sCQlpc0Fic29yYmFibGU7CS8qIHRydWUgaWYgcGF0dGVybiBzdXBwb3J0cyBjb250ZXh0IGFi c29ycHRpb24gKi8KK30gUlBSUGF0dGVybjsKKwogLyogLS0tLS0tLS0tLS0tLS0tLQogICoJCXdp bmRvdyBhZ2dyZWdhdGUgbm9kZQogICogLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTMxNCw2ICsxMzc5 LDQ0IEBAIHR5cGVkZWYgc3RydWN0IFdpbmRvd0FnZwogCS8qIG51bGxzIHNvcnQgZmlyc3QgZm9y IGluX3JhbmdlIHRlc3RzPyAqLwogCWJvb2wJCWluUmFuZ2VOdWxsc0ZpcnN0OwogCisJLyogUm93 IFBhdHRlcm4gUmVjb2duaXRpb24gQUZURVIgTUFUQ0ggU0tJUCBjbGF1c2UgKi8KKwlSUFNraXBU bwlycFNraXBUbzsJCS8qIFJvdyBQYXR0ZXJuIFNraXAgVG8gdHlwZSAqLworCisJLyogQ29tcGls ZWQgUm93IFBhdHRlcm4gZm9yIE5GQSBleGVjdXRpb24gKi8KKwlzdHJ1Y3QgUlBSUGF0dGVybiAq cnBQYXR0ZXJuOworCisJLyogUm93IFBhdHRlcm4gREVGSU5FIGNsYXVzZSAobGlzdCBvZiBUYXJn ZXRFbnRyeSkgKi8KKwlMaXN0CSAgICpkZWZpbmVDbGF1c2U7CisKKwkvKgorCSAqIEJpdG1hcHNl dCBvZiBERUZJTkUgdmFyaWFibGUgaW5kaWNlcyB3aG9zZSBleHByZXNzaW9ucyBkZXBlbmQgb24K KwkgKiBtYXRjaF9zdGFydCAoY29udGFpbiBGSVJTVCwgTEFTVC13aXRoLW9mZnNldCwgb3IgY29t cG91bmQKKwkgKiBQUkVWX0ZJUlNUL05FWFRfRklSU1QvUFJFVl9MQVNUL05FWFRfTEFTVCB3aXRo IG9mZnNldCkuICBWYXJpYWJsZXMgaW4KKwkgKiB0aGlzIHNldCByZXF1aXJlIHBlci1jb250ZXh0 IHJlLWV2YWx1YXRpb24gZHVyaW5nIE5GQSBwcm9jZXNzaW5nLgorCSAqLworCUJpdG1hcHNldCAg KmRlZmluZU1hdGNoU3RhcnREZXBlbmRlbnQ7CisKKwkvKgorCSAqIE5hdmlnYXRpb24gb2Zmc2V0 IHN0YXR1cyBhbmQgdmFsdWVzIGZvciB0dXBsZXN0b3JlIG1hcmsgb3B0aW1pemF0aW9uLgorCSAq IFNlZSBSUFJOYXZPZmZzZXRLaW5kIGluIG5vZGVzL3BhcnNlbm9kZXMuaC4KKwkgKgorCSAqIG5h dk1heE9mZnNldDogbWF4aW11bSBiYWNrd2FyZCByZWFjaCBmcm9tIGN1cnJlbnRwb3MgKGNvbnRy aWJ1dGVkIGJ5CisJICogUFJFViwgTEFTVC13aXRoLW9mZnNldCwgY29tcG91bmQgUFJFVl9MQVNU L05FWFRfTEFTVCkuICBPbmx5IHZhbGlkIHdoZW4KKwkgKiBuYXZNYXhPZmZzZXRLaW5kID09IFJQ Ul9OQVZfT0ZGU0VUX0ZJWEVELgorCSAqCisJICogbmF2Rmlyc3RPZmZzZXQ6IG1pbmltdW0gZm9y d2FyZCBvZmZzZXQgZnJvbSBtYXRjaF9zdGFydCAoY29udHJpYnV0ZWQgYnkKKwkgKiBGSVJTVCwg Y29tcG91bmQgUFJFVl9GSVJTVC9ORVhUX0ZJUlNUKS4gIENhbiBiZSBuZWdhdGl2ZSBmb3IgY29t cG91bmQKKwkgKiBQUkVWX0ZJUlNULiAgT25seSB2YWxpZCB3aGVuIG5hdkZpcnN0T2Zmc2V0S2lu ZCA9PSBSUFJfTkFWX09GRlNFVF9GSVhFRAorCSAqIGFuZCBoYXNGaXJzdE5hdiA9PSB0cnVlLgor CSAqLworCVJQUk5hdk9mZnNldEtpbmQgbmF2TWF4T2Zmc2V0S2luZDsKKwlpbnQ2NAkJbmF2TWF4 T2Zmc2V0OworCisJLyogdHJ1ZSBpZiBGSVJTVC1iYXNlZCBuYXZpZ2F0aW9uIChGSVJTVCwgUFJF Vl9GSVJTVCwgTkVYVF9GSVJTVCkgaXMgdXNlZCAqLworCWJvb2wJCWhhc0ZpcnN0TmF2OworCVJQ Uk5hdk9mZnNldEtpbmQgbmF2Rmlyc3RPZmZzZXRLaW5kOworCWludDY0CQluYXZGaXJzdE9mZnNl dDsKKwogCS8qCiAJICogZmFsc2UgZm9yIGFsbCBhcGFydCBmcm9tIHRoZSBXaW5kb3dBZ2cgdGhh dCdzIGNsb3Nlc3QgdG8gdGhlIHJvb3Qgb2YKIAkgKiB0aGUgcGxhbgpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvb3B0aW1pemVyL3Jwci5oIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Jwci5oCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wYTE0Y2ZhZDc5YgotLS0gL2Rl di9udWxsCisrKyBiL3NyYy9pbmNsdWRlL29wdGltaXplci9ycHIuaApAQCAtMCwwICsxLDY1IEBA CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBycHIuaAorICoJICBSb3cgUGF0dGVybiBSZWNv Z25pdGlvbiBwYXR0ZXJuIGNvbXBpbGF0aW9uIGZvciBwbGFubmVyCisgKgorICogUG9ydGlvbnMg Q29weXJpZ2h0IChjKSAxOTk2LTIwMjYsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdy b3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZl cnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL29wdGltaXplci9ycHIuaAor ICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaWZuZGVmIE9QVElNSVpFUl9SUFJfSAorI2Rl ZmluZSBPUFRJTUlaRVJfUlBSX0gKKworI2luY2x1ZGUgIm5vZGVzL3BhcnNlbm9kZXMuaCIKKyNp bmNsdWRlICJub2Rlcy9wbGFubm9kZXMuaCIKKworLyogTGltaXRzIGFuZCBzcGVjaWFsIHZhbHVl cyAqLworLyoKKyAqIE1heGltdW0gbnVtYmVyIG9mIHVuaXF1ZSBwYXR0ZXJuIHZhcmlhYmxlcyAo dmFySWQgMCB0byBSUFJfVkFSSURfTUFYIC0gMSkuCisgKiBWYWx1ZXMgZnJvbSBSUFJfVkFSSURf QkVHSU4gKDI1Mikgb253YXJkIGFyZSByZXNlcnZlZCBmb3IgY29udHJvbCBlbGVtZW50cy4KKyAq LworI2RlZmluZSBSUFJfVkFSSURfTUFYCQkyNTEKKyNkZWZpbmUgUlBSX1FVQU5USVRZX0lORglJ TlQzMl9NQVgJLyogdW5ib3VuZGVkIHF1YW50aWZpZXIgKi8KKyNkZWZpbmUgUlBSX0NPVU5UX01B WAkJSU5UMzJfTUFYCS8qIG1heCBydW50aW1lIGNvdW50IChORkEgc3RhdGUpICovCisjZGVmaW5l IFJQUl9FTEVNSURYX01BWAkJSU5UMTZfTUFYCS8qIG1heCBwYXR0ZXJuIGVsZW1lbnRzICovCisj ZGVmaW5lIFJQUl9FTEVNSURYX0lOVkFMSUQJKChSUFJFbGVtSWR4KSAtMSkJLyogaW52YWxpZCBp bmRleCAqLworI2RlZmluZSBSUFJfREVQVEhfTUFYCQkoVUlOVDhfTUFYIC0gMSkgLyogbWF4IHBh dHRlcm4gbmVzdGluZyBkZXB0aDogMjU0ICovCisjZGVmaW5lIFJQUl9ERVBUSF9OT05FCQlVSU5U OF9NQVgJLyogbm8gZW5jbG9zaW5nIGdyb3VwICh0b3AtbGV2ZWwpICovCisKKy8qIFNwZWNpYWwg dmFySWQgdmFsdWVzIGZvciBjb250cm9sIGVsZW1lbnRzICgyNTItMjU1KSAqLworI2RlZmluZSBS UFJfVkFSSURfQkVHSU4JCSgoUlBSVmFySWQpIDI1MikJLyogZ3JvdXAgYmVnaW4gKi8KKyNkZWZp bmUgUlBSX1ZBUklEX0VORAkJKChSUFJWYXJJZCkgMjUzKQkvKiBncm91cCBlbmQgKi8KKyNkZWZp bmUgUlBSX1ZBUklEX0FMVAkJKChSUFJWYXJJZCkgMjU0KQkvKiBhbHRlcm5hdGlvbiBzdGFydCAq LworI2RlZmluZSBSUFJfVkFSSURfRklOCQkoKFJQUlZhcklkKSAyNTUpCS8qIHBhdHRlcm4gZmlu aXNoICovCisKKy8qIEVsZW1lbnQgZmxhZ3MgKi8KKyNkZWZpbmUgUlBSX0VMRU1fUkVMVUNUQU5U CQkJMHgwMQkvKiByZWx1Y3RhbnQgKG5vbi1ncmVlZHkpCisJCQkJCQkJCQkJCSAqIHF1YW50aWZp ZXIgKi8KKyNkZWZpbmUgUlBSX0VMRU1fRU1QVFlfTE9PUAkJCTB4MDIJLyogRU5EOiBncm91cCBi b2R5IGNhbiBwcm9kdWNlCisJCQkJCQkJCQkJCSAqIGVtcHR5IG1hdGNoICovCisjZGVmaW5lIFJQ Ul9FTEVNX0FCU09SQkFCTEVfQlJBTkNICTB4MDQJLyogZWxlbWVudCBpbiBhYnNvcmJhYmxlIHJl Z2lvbiAqLworI2RlZmluZSBSUFJfRUxFTV9BQlNPUkJBQkxFCQkJMHgwOAkvKiBhYnNvcnB0aW9u IGp1ZGdtZW50IHBvaW50ICovCisKKy8qIEFjY2Vzc29yIG1hY3JvcyBmb3IgUlBSUGF0dGVybkVs ZW1lbnQgKi8KKyNkZWZpbmUgUlBSRWxlbUlzUmVsdWN0YW50KGUpCQkJKCgoZSktPmZsYWdzICYg UlBSX0VMRU1fUkVMVUNUQU5UKSAhPSAwKQorI2RlZmluZSBSUFJFbGVtQ2FuRW1wdHlMb29wKGUp CQkJKCgoZSktPmZsYWdzICYgUlBSX0VMRU1fRU1QVFlfTE9PUCkgIT0gMCkKKyNkZWZpbmUgUlBS RWxlbUlzQWJzb3JiYWJsZUJyYW5jaChlKQkoKChlKS0+ZmxhZ3MgJiBSUFJfRUxFTV9BQlNPUkJB QkxFX0JSQU5DSCkgIT0gMCkKKyNkZWZpbmUgUlBSRWxlbUlzQWJzb3JiYWJsZShlKQkJCSgoKGUp LT5mbGFncyAmIFJQUl9FTEVNX0FCU09SQkFCTEUpICE9IDApCisjZGVmaW5lIFJQUkVsZW1Jc1Zh cihlKQkJCSgoZSktPnZhcklkIDw9IFJQUl9WQVJJRF9NQVgpCisjZGVmaW5lIFJQUkVsZW1Jc0Jl Z2luKGUpCQkoKGUpLT52YXJJZCA9PSBSUFJfVkFSSURfQkVHSU4pCisjZGVmaW5lIFJQUkVsZW1J c0VuZChlKQkJCSgoZSktPnZhcklkID09IFJQUl9WQVJJRF9FTkQpCisjZGVmaW5lIFJQUkVsZW1J c0FsdChlKQkJCSgoZSktPnZhcklkID09IFJQUl9WQVJJRF9BTFQpCisjZGVmaW5lIFJQUkVsZW1J c0ZpbihlKQkJCSgoZSktPnZhcklkID09IFJQUl9WQVJJRF9GSU4pCisjZGVmaW5lIFJQUkVsZW1D YW5Ta2lwKGUpCQkoKGUpLT5taW4gPT0gMCkKKworZXh0ZXJuIExpc3QgKmNvbGxlY3RQYXR0ZXJu VmFyaWFibGVzKFJQUlBhdHRlcm5Ob2RlICpwYXR0ZXJuKTsKK2V4dGVybiB2b2lkIGJ1aWxkRGVm aW5lVmFyaWFibGVMaXN0KExpc3QgKmRlZmluZUNsYXVzZSwKKwkJCQkJCQkJCUxpc3QgKipkZWZp bmVWYXJpYWJsZUxpc3QpOworZXh0ZXJuIFJQUlBhdHRlcm4gKmJ1aWxkUlBSUGF0dGVybihSUFJQ YXR0ZXJuTm9kZSAqcGF0dGVybiwgTGlzdCAqZGVmaW5lVmFyaWFibGVMaXN0LAorCQkJCQkJCQkg ICBSUFNraXBUbyBycFNraXBUbywgaW50IGZyYW1lT3B0aW9ucywKKwkJCQkJCQkJICAgYm9vbCBo YXNNYXRjaFN0YXJ0RGVwZW5kZW50KTsKKworI2VuZGlmCQkJCQkJCS8qIE9QVElNSVpFUl9SUFJf SCAqLwotLSAKMi40My4wCgo= ----Next_Part(Sat_May__2_14_03_04_2026_790)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v47-0005-Row-pattern-recognition-patch-executor-and-comma.patch" RnJvbSA5YTQwMWEwOWI1NmIxOGJkMDhjYTU3NmJhNDRiNDAxN2JlMjMxZmMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYXRzdW8gSXNoaWkgPGlzaGlpQHBvc3RncmVzcWwub3JnPgpE YXRlOiBTYXQsIDIgTWF5IDIwMjYgMTM6NDA6MjkgKzA5MDAKU3ViamVjdDogW1BBVENIIHY0NyA1 LzldIFJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIHBhdGNoIChleGVjdXRvciBhbmQKIGNvbW1hbmRz KS4KCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jICAgICAgICB8ICA1MjIgKysr KysrKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxlICAgICAgICAgfCAgICAxICsKIHNy Yy9iYWNrZW5kL2V4ZWN1dG9yL1JFQURNRS5ycHIgICAgICAgfCAxNTc4ICsrKysrKysrKysrKysr KysrKysrKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgfCAgIDkyICsr CiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jIHwgIDI2NyArKysrCiBzcmMv YmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMgICAgICAgIHwgMTc3MiArKysrKysrKysrKysrKysr KysrKysrKysrCiBzcmMvYmFja2VuZC9leGVjdXRvci9tZXNvbi5idWlsZCAgICAgIHwgICAgMSAr CiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMgIHwgMTA2NiArKysrKysrKysr KysrKy0KIHNyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jICAgfCAgIDc4ICstCiBz cmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X3R5cGVzLmMgIHwgICAgMiArCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvd2luZG93ZnVuY3MuYyAgIHwgIDExOSArLQogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdCAgICAgICB8ICAgMjQgKwogc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4 cHIuaCAgICAgICB8ICAgMjAgKwogc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY1JQUi5oICAgICAg ICB8ICAgNDAgKwogc3JjL2luY2x1ZGUvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5oICB8ICAgIDMg Kwogc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggICAgICAgICB8ICAxMzAgKysKIDE2IGZp bGVzIGNoYW5nZWQsIDU3MDMgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvZXhlY3V0b3IvUkVBRE1FLnJwcgogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNSUFIuaAoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2V4cGxhaW4uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYwppbmRl eCAxMTJjMTdiMGQ2NC4uOTlkZTM2YjU3ZjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2V4cGxhaW4uYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKQEAgLTMw LDYgKzMwLDcgQEAKICNpbmNsdWRlICJub2Rlcy9leHRlbnNpYmxlLmgiCiAjaW5jbHVkZSAibm9k ZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgiCisjaW5jbHVkZSAi b3B0aW1pemVyL3Jwci5oIgogI2luY2x1ZGUgInBhcnNlci9hbmFseXplLmgiCiAjaW5jbHVkZSAi cGFyc2VyL3BhcnNldHJlZS5oIgogI2luY2x1ZGUgInJld3JpdGUvcmV3cml0ZUhhbmRsZXIuaCIK QEAgLTExOSw2ICsxMjAsMjAgQEAgc3RhdGljIHZvaWQgc2hvd193aW5kb3dfZGVmKFdpbmRvd0Fn Z1N0YXRlICpwbGFuc3RhdGUsCiBzdGF0aWMgdm9pZCBzaG93X3dpbmRvd19rZXlzKFN0cmluZ0lu Zm8gYnVmLCBQbGFuU3RhdGUgKnBsYW5zdGF0ZSwKIAkJCQkJCQkgaW50IG5rZXlzLCBBdHRyTnVt YmVyICprZXljb2xzLAogCQkJCQkJCSBMaXN0ICphbmNlc3RvcnMsIEV4cGxhaW5TdGF0ZSAqZXMp Oworc3RhdGljIHZvaWQgYXBwZW5kX3Jwcl9xdWFudGlmaWVyKFN0cmluZ0luZm8gYnVmLCBSUFJQ YXR0ZXJuRWxlbWVudCAqZWxlbSk7CitzdGF0aWMgY2hhciAqZGVwYXJzZV9ycHJfcGF0dGVybihS UFJQYXR0ZXJuICpwYXR0ZXJuKTsKK3N0YXRpYyB2b2lkIGRlcGFyc2VfcnByX2VsZW1lbnRzKFJQ UlBhdHRlcm4gKnBhdHRlcm4sIGludCAqaWR4LAorCQkJCQkJCQkgU3RyaW5nSW5mb0RhdGEgKmJ1 ZiwgUlBSRGVwdGggZ3JvdXBEZXB0aCwKKwkJCQkJCQkJIFJQUkRlcHRoICpwcmV2RGVwdGgsIGJv b2wgKm5lZWRTcGFjZSk7CitzdGF0aWMgdm9pZCBkZXBhcnNlX3Jwcl9ncm91cChSUFJQYXR0ZXJu ICpwYXR0ZXJuLCBpbnQgKmlkeCwKKwkJCQkJCQkgIFN0cmluZ0luZm9EYXRhICpidWYsIFJQUkRl cHRoICpwcmV2RGVwdGgsCisJCQkJCQkJICBib29sICpuZWVkU3BhY2UpOworc3RhdGljIHZvaWQg ZGVwYXJzZV9ycHJfYWx0KFJQUlBhdHRlcm4gKnBhdHRlcm4sIGludCAqaWR4LAorCQkJCQkJCVN0 cmluZ0luZm9EYXRhICpidWYsIFJQUkRlcHRoICpwcmV2RGVwdGgsCisJCQkJCQkJYm9vbCAqbmVl ZFNwYWNlLCBMaXN0ICoqYWx0U2Vwcyk7CitzdGF0aWMgdm9pZCBkZXBhcnNlX3Jwcl92YXIoUlBS UGF0dGVybiAqcGF0dGVybiwgaW50ICppZHgsCisJCQkJCQkJU3RyaW5nSW5mb0RhdGEgKmJ1Ziwg UlBSRGVwdGggKnByZXZEZXB0aCwKKwkJCQkJCQlib29sICpuZWVkU3BhY2UsIExpc3QgKiphbHRT ZXBzKTsKIHN0YXRpYyB2b2lkIHNob3dfc3RvcmFnZV9pbmZvKGNoYXIgKm1heFN0b3JhZ2VUeXBl LCBpbnQ2NCBtYXhTcGFjZVVzZWQsCiAJCQkJCQkJICBFeHBsYWluU3RhdGUgKmVzKTsKIHN0YXRp YyB2b2lkIHNob3dfdGFibGVzYW1wbGUoVGFibGVTYW1wbGVDbGF1c2UgKnRzYywgUGxhblN0YXRl ICpwbGFuc3RhdGUsCkBAIC0xMjksNiArMTQ0LDcgQEAgc3RhdGljIHZvaWQgc2hvd19pbmNyZW1l bnRhbF9zb3J0X2luZm8oSW5jcmVtZW50YWxTb3J0U3RhdGUgKmluY3Jzb3J0c3RhdGUsCiBzdGF0 aWMgdm9pZCBzaG93X2hhc2hfaW5mbyhIYXNoU3RhdGUgKmhhc2hzdGF0ZSwgRXhwbGFpblN0YXRl ICplcyk7CiBzdGF0aWMgdm9pZCBzaG93X21hdGVyaWFsX2luZm8oTWF0ZXJpYWxTdGF0ZSAqbXN0 YXRlLCBFeHBsYWluU3RhdGUgKmVzKTsKIHN0YXRpYyB2b2lkIHNob3dfd2luZG93YWdnX2luZm8o V2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBFeHBsYWluU3RhdGUgKmVzKTsKK3N0YXRpYyB2b2lk IHNob3dfcnByX25mYV9zdGF0cyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIEV4cGxhaW5TdGF0 ZSAqZXMpOwogc3RhdGljIHZvaWQgc2hvd19jdGVzY2FuX2luZm8oQ3RlU2NhblN0YXRlICpjdGVz Y2Fuc3RhdGUsIEV4cGxhaW5TdGF0ZSAqZXMpOwogc3RhdGljIHZvaWQgc2hvd190YWJsZV9mdW5j X3NjYW5faW5mbyhUYWJsZUZ1bmNTY2FuU3RhdGUgKnRzY2Fuc3RhdGUsCiAJCQkJCQkJCQkgIEV4 cGxhaW5TdGF0ZSAqZXMpOwpAQCAtMjg5OCw2ICsyOTE0LDI4NCBAQCBzaG93X3NvcnRvcmRlcl9v cHRpb25zKFN0cmluZ0luZm8gYnVmLCBOb2RlICpzb3J0ZXhwciwKIAl9CiB9CiAKKy8qCisgKiBB cHBlbmQgcXVhbnRpZmllciBzdWZmaXggZm9yIGEgcGF0dGVybiBlbGVtZW50LgorICovCitzdGF0 aWMgdm9pZAorYXBwZW5kX3Jwcl9xdWFudGlmaWVyKFN0cmluZ0luZm8gYnVmLCBSUFJQYXR0ZXJu RWxlbWVudCAqZWxlbSkKK3sKKwkvKiBBcHBlbmQgcXVhbnRpZmllciBpZiBub3QgezEsMX0gKi8K KwlpZiAoZWxlbS0+bWluID09IDAgJiYgZWxlbS0+bWF4ID09IFJQUl9RVUFOVElUWV9JTkYpCisJ CWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJyonKTsKKwllbHNlIGlmIChlbGVtLT5taW4gPT0g MSAmJiBlbGVtLT5tYXggPT0gUlBSX1FVQU5USVRZX0lORikKKwkJYXBwZW5kU3RyaW5nSW5mb0No YXIoYnVmLCAnKycpOworCWVsc2UgaWYgKGVsZW0tPm1pbiA9PSAwICYmIGVsZW0tPm1heCA9PSAx KQorCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICc/Jyk7CisJZWxzZSBpZiAoZWxlbS0+bWF4 ID09IFJQUl9RVUFOVElUWV9JTkYpCisJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAieyVkLH0iLCBl bGVtLT5taW4pOworCWVsc2UgaWYgKGVsZW0tPm1pbiA9PSBlbGVtLT5tYXggJiYgZWxlbS0+bWlu ICE9IDEpCisJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAieyVkfSIsIGVsZW0tPm1pbik7CisJZWxz ZSBpZiAoZWxlbS0+bWluICE9IDEgfHwgZWxlbS0+bWF4ICE9IDEpCisJCWFwcGVuZFN0cmluZ0lu Zm8oYnVmLCAieyVkLCVkfSIsIGVsZW0tPm1pbiwgZWxlbS0+bWF4KTsKKworCWlmIChSUFJFbGVt SXNSZWx1Y3RhbnQoZWxlbSkpCisJeworCQlpZiAoZWxlbS0+bWluID09IDEgJiYgZWxlbS0+bWF4 ID09IDEpCisJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgInsxfSIpOwkvKiBtYWtlIHJlbHVjdGFu dCA/IHVuYW1iaWd1b3VzICovCisJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJz8nKTsKKwl9 CisKKwkvKiBBcHBlbmQgYWJzb3JwdGlvbiBtYXJrZXJzOiAiIGZvciBqdWRnbWVudCBwb2ludCwg JyBmb3IgYnJhbmNoIG9ubHkgKi8KKwlpZiAoUlBSRWxlbUlzQWJzb3JiYWJsZShlbGVtKSkKKwl7 CisJCUFzc2VydChlbGVtLT5tYXggPT0gUlBSX1FVQU5USVRZX0lORik7CisJCWFwcGVuZFN0cmlu Z0luZm9DaGFyKGJ1ZiwgJyInKTsKKwl9CisJZWxzZSBpZiAoUlBSRWxlbUlzQWJzb3JiYWJsZUJy YW5jaChlbGVtKSkKKwkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnXCcnKTsKK30KKworLyoK KyAqIERlcGFyc2UgYSBjb21waWxlZCBSUFJQYXR0ZXJuIChieXRlY29kZSkgYmFjayB0byBwYXR0 ZXJuIHN0cmluZy4KKyAqCisgKiBXYWxrcyB0aGUgZmxhdCBieXRlY29kZSBhcnJheSB1c2luZyBt dXR1YWwgcmVjdXJzaW9uOiBkZXBhcnNlX3Jwcl9lbGVtZW50cworICogcHJvY2Vzc2VzIHNlcXVl bnRpYWwgZWxlbWVudHMsIGFuZCBkZXBhcnNlX3Jwcl9ncm91cCBoYW5kbGVzIEJFR0lOLi4uRU5E CisgKiBncm91cHMgYnkgcmVjdXJzaW5nIGJhY2sgaW50byBkZXBhcnNlX3Jwcl9lbGVtZW50cyBm b3IgdGhlIGdyb3VwIGNvbnRlbnQuCisgKi8KK3N0YXRpYyBjaGFyICoKK2RlcGFyc2VfcnByX3Bh dHRlcm4oUlBSUGF0dGVybiAqcGF0dGVybikKK3sKKwlTdHJpbmdJbmZvRGF0YSBidWY7CisJaW50 CQkJaWR4ID0gMDsKKwlSUFJEZXB0aAlwcmV2RGVwdGggPSAwOworCWJvb2wJCW5lZWRTcGFjZSA9 IGZhbHNlOworCisJQXNzZXJ0KHBhdHRlcm4gIT0gTlVMTCAmJiBwYXR0ZXJuLT5udW1FbGVtZW50 cyA+PSAyKTsKKworCWluaXRTdHJpbmdJbmZvKCZidWYpOworCisJZGVwYXJzZV9ycHJfZWxlbWVu dHMocGF0dGVybiwgJmlkeCwgJmJ1ZiwgUlBSX0RFUFRIX05PTkUsCisJCQkJCQkgJnByZXZEZXB0 aCwgJm5lZWRTcGFjZSk7CisKKwkvKiBDbG9zZSByZW1haW5pbmcgb3BlbiBwYXJlbnMgKi8KKwl3 aGlsZSAocHJldkRlcHRoID4gMCkKKwl7CisJCWFwcGVuZFN0cmluZ0luZm9DaGFyKCZidWYsICcp Jyk7CisJCXByZXZEZXB0aC0tOworCX0KKworCXJldHVybiBidWYuZGF0YTsKK30KKworLyoKKyAq IFByb2Nlc3MgcGF0dGVybiBlbGVtZW50cyBzZXF1ZW50aWFsbHkgdW50aWwgRklOIG9yIEVORCBh dCBncm91cERlcHRoLgorICoKKyAqIFdoZW4gZ3JvdXBEZXB0aCA+PSAwLCBzdG9wcyBhdCB0aGUg bWF0Y2hpbmcgRU5EIGVsZW1lbnQgKGxlYXZpbmcgaWR4CisgKiBwb2ludGluZyB0byBpdCkgc28g dGhlIGNhbGxlciAoZGVwYXJzZV9ycHJfZ3JvdXApIGNhbiBjb25zdW1lIGl0LgorICogV2hlbiBn cm91cERlcHRoIDwgMCwgcHJvY2Vzc2VzIHVudGlsIEZJTiAodG9wLWxldmVsIGNhbGwpLgorICov CitzdGF0aWMgdm9pZAorZGVwYXJzZV9ycHJfZWxlbWVudHMoUlBSUGF0dGVybiAqcGF0dGVybiwg aW50ICppZHgsIFN0cmluZ0luZm9EYXRhICpidWYsCisJCQkJCSBSUFJEZXB0aCBncm91cERlcHRo LCBSUFJEZXB0aCAqcHJldkRlcHRoLAorCQkJCQkgYm9vbCAqbmVlZFNwYWNlKQoreworCUxpc3QJ ICAgKmFsdFNlcHMgPSBOSUw7CS8qIHBlbmRpbmcgYWx0ZXJuYXRpb24gc2VwYXJhdG9yIGluZGlj ZXMgKi8KKworCXdoaWxlICgqaWR4IDwgcGF0dGVybi0+bnVtRWxlbWVudHMpCisJeworCQlSUFJQ YXR0ZXJuRWxlbWVudCAqZWxlbSA9ICZwYXR0ZXJuLT5lbGVtZW50c1sqaWR4XTsKKworCQlpZiAo UlBSRWxlbUlzRmluKGVsZW0pKQorCQkJYnJlYWs7CisKKwkJLyogU3RvcCBhdCBFTkQgbWF0Y2hp bmcgb3VyIGdyb3VwIGRlcHRoOyBjYWxsZXIgaGFuZGxlcyBpdCAqLworCQlpZiAoUlBSRWxlbUlz RW5kKGVsZW0pICYmIGVsZW0tPmRlcHRoID09IGdyb3VwRGVwdGgpCisJCQlicmVhazsKKworCQkv KiBBbHRlcm5hdGlvbiBzZXBhcmF0b3IgKi8KKwkJaWYgKGxpc3RfbWVtYmVyX2ludChhbHRTZXBz LCAqaWR4KSkKKwkJeworCQkJLyogQ2xvc2UgcGFyZW5zIHRvIG1hdGNoIHNlcGFyYXRvciBkZXB0 aCBmaXJzdCAqLworCQkJd2hpbGUgKCpwcmV2RGVwdGggPiBlbGVtLT5kZXB0aCkKKwkJCXsKKwkJ CQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICcpJyk7CisJCQkJKCpwcmV2RGVwdGgpLS07CisJ CQl9CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIiB8ICIpOworCQkJKm5lZWRTcGFj ZSA9IGZhbHNlOworCQkJYWx0U2VwcyA9IGxpc3RfZGVsZXRlX2ludChhbHRTZXBzLCAqaWR4KTsK KwkJfQorCisJCS8qIERpc3BhdGNoIHRvIGVsZW1lbnQtdHlwZSBoYW5kbGVycyAqLworCQlpZiAo UlBSRWxlbUlzQWx0KGVsZW0pKQorCQkJZGVwYXJzZV9ycHJfYWx0KHBhdHRlcm4sIGlkeCwgYnVm LCBwcmV2RGVwdGgsCisJCQkJCQkJbmVlZFNwYWNlLCAmYWx0U2Vwcyk7CisJCWVsc2UgaWYgKFJQ UkVsZW1Jc0JlZ2luKGVsZW0pKQorCQkJZGVwYXJzZV9ycHJfZ3JvdXAocGF0dGVybiwgaWR4LCBi dWYsIHByZXZEZXB0aCwKKwkJCQkJCQkgIG5lZWRTcGFjZSk7CisJCWVsc2UgaWYgKFJQUkVsZW1J c1ZhcihlbGVtKSkKKwkJCWRlcGFyc2VfcnByX3ZhcihwYXR0ZXJuLCBpZHgsIGJ1ZiwgcHJldkRl cHRoLAorCQkJCQkJCW5lZWRTcGFjZSwgJmFsdFNlcHMpOworCX0KKwlsaXN0X2ZyZWUoYWx0U2Vw cyk7Cit9CisKKy8qCisgKiBQcm9jZXNzIGEgQkVHSU4uLi5FTkQgZ3JvdXAuCisgKgorICogQ29u c3VtZXMgQkVHSU4sIHJlY3Vyc2VzIGludG8gZGVwYXJzZV9ycHJfZWxlbWVudHMgZm9yIGdyb3Vw IGNvbnRlbnQsCisgKiB0aGVuIGNvbnN1bWVzIEVORCBhbmQgb3V0cHV0cyB0aGUgZ3JvdXAgcXVh bnRpZmllci4KKyAqCisgKiBXaGVuIHRoZSBncm91cCB3cmFwcyBhIHNpbmdsZSBBTFQgd2l0aCBu byBzaWJsaW5ncywgdGhlIGdyb3VwLWxldmVsCisgKiBwYXJlbnRoZXNpcyBpcyBzdXBwcmVzc2Vk IHNpbmNlIHRoZSBBTFQtdG8tY2hpbGRyZW4gZGVwdGggdHJhbnNpdGlvbgorICogYWxyZWFkeSBw cm92aWRlcyBpdCAoYXZvaWRzIGRvdWJsZSBwYXJlbnMgbGlrZSAiKChhIHwgYikpKyIpLgorICov CitzdGF0aWMgdm9pZAorZGVwYXJzZV9ycHJfZ3JvdXAoUlBSUGF0dGVybiAqcGF0dGVybiwgaW50 ICppZHgsIFN0cmluZ0luZm9EYXRhICpidWYsCisJCQkJICBSUFJEZXB0aCAqcHJldkRlcHRoLCBi b29sICpuZWVkU3BhY2UpCit7CisJUlBSUGF0dGVybkVsZW1lbnQgKmJlZ2luID0gJnBhdHRlcm4t PmVsZW1lbnRzWyppZHhdOworCVJQUkRlcHRoCWNoaWxkRGVwdGggPSBiZWdpbi0+ZGVwdGggKyAx OworCWJvb2wJCXNpbmdsZUFsdCA9IGZhbHNlOworCVJQUlBhdHRlcm5FbGVtZW50ICplbmQ7CisK KwkvKgorCSAqIENoZWNrIGlmIHRoaXMgZ3JvdXAgd3JhcHMgYSBzaW5nbGUgQUxUIHdpdGggbm8g c2libGluZ3MuIFNjYW4gZnJvbQorCSAqIGFmdGVyIEFMVCB0byBFTkQ6IGlmIG5vIGVsZW1lbnQg YXQgY2hpbGREZXB0aCBleGlzdHMsIHRoZSBBTFQgaXMgdGhlCisJICogc29sZSBjaGlsZC4KKwkg Ki8KKwlpZiAoKmlkeCArIDEgPCBwYXR0ZXJuLT5udW1FbGVtZW50cyAmJgorCQlSUFJFbGVtSXNB bHQoJnBhdHRlcm4tPmVsZW1lbnRzWyppZHggKyAxXSkpCisJeworCQlpbnQJCQlqOworCisJCXNp bmdsZUFsdCA9IHRydWU7CisJCWZvciAoaiA9ICppZHggKyAyOyBqIDwgcGF0dGVybi0+bnVtRWxl bWVudHM7IGorKykKKwkJeworCQkJUlBSUGF0dGVybkVsZW1lbnQgKmUgPSAmcGF0dGVybi0+ZWxl bWVudHNbal07CisKKwkJCWlmIChSUFJFbGVtSXNFbmQoZSkgJiYgZS0+ZGVwdGggPT0gYmVnaW4t PmRlcHRoKQorCQkJCWJyZWFrOworCQkJaWYgKGUtPmRlcHRoIDw9IGNoaWxkRGVwdGgpCisJCQl7 CisJCQkJc2luZ2xlQWx0ID0gZmFsc2U7CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwl9CisKKwkv KiBPcGVuIGdyb3VwIHBhcmVuICh1bmxlc3Mgc2luZ2xlIEFMVCBwcm92aWRlcyBpdCkgKi8KKwlp ZiAoIXNpbmdsZUFsdCkKKwl7CisJCWlmICgqbmVlZFNwYWNlKQorCQkJYXBwZW5kU3RyaW5nSW5m b0NoYXIoYnVmLCAnICcpOworCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICcoJyk7CisJCSpu ZWVkU3BhY2UgPSBmYWxzZTsKKwl9CisJKnByZXZEZXB0aCA9IGNoaWxkRGVwdGg7CisJKCppZHgp Kys7CQkJCQkvKiBjb25zdW1lIEJFR0lOICovCisKKwkvKiBQcm9jZXNzIGdyb3VwIGNoaWxkcmVu OyBzdG9wcyBhdCBtYXRjaGluZyBFTkQgKi8KKwlkZXBhcnNlX3Jwcl9lbGVtZW50cyhwYXR0ZXJu LCBpZHgsIGJ1ZiwgYmVnaW4tPmRlcHRoLAorCQkJCQkJIHByZXZEZXB0aCwgbmVlZFNwYWNlKTsK KworCS8qIENvbnN1bWUgRU5EIGFuZCBvdXRwdXQgcXVhbnRpZmllciAqLworCUFzc2VydCgqaWR4 IDwgcGF0dGVybi0+bnVtRWxlbWVudHMpOworCWVuZCA9ICZwYXR0ZXJuLT5lbGVtZW50c1sqaWR4 XTsKKwlBc3NlcnQoUlBSRWxlbUlzRW5kKGVuZCkgJiYgZW5kLT5kZXB0aCA9PSBiZWdpbi0+ZGVw dGgpOworCisJd2hpbGUgKCpwcmV2RGVwdGggPiBlbmQtPmRlcHRoICsgMSkKKwl7CisJCWFwcGVu ZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJyknKTsKKwkJKCpwcmV2RGVwdGgpLS07CisJfQorCWlmICgh c2luZ2xlQWx0KQorCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICcpJyk7CisJYXBwZW5kX3Jw cl9xdWFudGlmaWVyKGJ1ZiwgZW5kKTsKKwkqcHJldkRlcHRoID0gZW5kLT5kZXB0aDsKKwkqbmVl ZFNwYWNlID0gdHJ1ZTsKKwkoKmlkeCkrKzsJCQkJCS8qIGNvbnN1bWUgRU5EICovCit9CisKKy8q CisgKiBQcm9jZXNzIGFuIEFMVCBlbGVtZW50OiBhZGp1c3QgZGVwdGggcGFyZW5zIGFuZCByZWdp c3RlciBzZXBhcmF0b3IgcG9zaXRpb25zLgorICovCitzdGF0aWMgdm9pZAorZGVwYXJzZV9ycHJf YWx0KFJQUlBhdHRlcm4gKnBhdHRlcm4sIGludCAqaWR4LCBTdHJpbmdJbmZvRGF0YSAqYnVmLAor CQkJCVJQUkRlcHRoICpwcmV2RGVwdGgsIGJvb2wgKm5lZWRTcGFjZSwgTGlzdCAqKmFsdFNlcHMp Cit7CisJUlBSUGF0dGVybkVsZW1lbnQgKmVsZW0gPSAmcGF0dGVybi0+ZWxlbWVudHNbKmlkeF07 CisKKwkvKiBDbG9zZSBwYXJlbnMgZm9yIGRlcHRoIGRlY3JlYXNlICovCisJd2hpbGUgKCpwcmV2 RGVwdGggPiBlbGVtLT5kZXB0aCkKKwl7CisJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJykn KTsKKwkJKCpwcmV2RGVwdGgpLS07CisJCSpuZWVkU3BhY2UgPSB0cnVlOworCX0KKworCS8qIE9w ZW4gcGFyZW5zIHVwIHRvIEFMVCdzIGRlcHRoICovCisJd2hpbGUgKCpwcmV2RGVwdGggPCBlbGVt LT5kZXB0aCkKKwl7CisJCWlmICgqbmVlZFNwYWNlKQorCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIo YnVmLCAnICcpOworCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICcoJyk7CisJCSgqcHJldkRl cHRoKSsrOworCQkqbmVlZFNwYWNlID0gZmFsc2U7CisJfQorCisJLyogUmVnaXN0ZXIgbmV4dCBh bHRlcm5hdGlvbiBzZXBhcmF0b3IgcG9zaXRpb24gKi8KKwlpZiAoZWxlbS0+bmV4dCAhPSBSUFJf RUxFTUlEWF9JTlZBTElEKQorCXsKKwkJUlBSUGF0dGVybkVsZW1lbnQgKmZpcnN0RWxlbSA9ICZw YXR0ZXJuLT5lbGVtZW50c1tlbGVtLT5uZXh0XTsKKworCQlpZiAoZmlyc3RFbGVtLT5qdW1wICE9 IFJQUl9FTEVNSURYX0lOVkFMSUQpCisJCQkqYWx0U2VwcyA9IGxhcHBlbmRfaW50KCphbHRTZXBz LCBmaXJzdEVsZW0tPmp1bXApOworCX0KKwlpZiAoZWxlbS0+anVtcCAhPSBSUFJfRUxFTUlEWF9J TlZBTElEKQorCQkqYWx0U2VwcyA9IGxhcHBlbmRfaW50KCphbHRTZXBzLCBlbGVtLT5qdW1wKTsK KwkoKmlkeCkrKzsKK30KKworLyoKKyAqIFByb2Nlc3MgYSBWQVIgZWxlbWVudDogYWRqdXN0IGRl cHRoIHBhcmVucyBhbmQgb3V0cHV0IHZhcmlhYmxlIG5hbWUuCisgKi8KK3N0YXRpYyB2b2lkCitk ZXBhcnNlX3Jwcl92YXIoUlBSUGF0dGVybiAqcGF0dGVybiwgaW50ICppZHgsIFN0cmluZ0luZm9E YXRhICpidWYsCisJCQkJUlBSRGVwdGggKnByZXZEZXB0aCwgYm9vbCAqbmVlZFNwYWNlLCBMaXN0 ICoqYWx0U2VwcykKK3sKKwlSUFJQYXR0ZXJuRWxlbWVudCAqZWxlbSA9ICZwYXR0ZXJuLT5lbGVt ZW50c1sqaWR4XTsKKworCS8qIE9wZW4gcGFyZW5zIGZvciBkZXB0aCBpbmNyZWFzZSAqLworCXdo aWxlICgqcHJldkRlcHRoIDwgZWxlbS0+ZGVwdGgpCisJeworCQlpZiAoKm5lZWRTcGFjZSkKKwkJ CWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJyAnKTsKKwkJYXBwZW5kU3RyaW5nSW5mb0NoYXIo YnVmLCAnKCcpOworCQkoKnByZXZEZXB0aCkrKzsKKwkJKm5lZWRTcGFjZSA9IGZhbHNlOworCX0K KworCS8qIENsb3NlIHBhcmVucyBmb3IgZGVwdGggZGVjcmVhc2UgKi8KKwl3aGlsZSAoKnByZXZE ZXB0aCA+IGVsZW0tPmRlcHRoKQorCXsKKwkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnKScp OworCQkoKnByZXZEZXB0aCktLTsKKwl9CisKKwlpZiAoKm5lZWRTcGFjZSkKKwkJYXBwZW5kU3Ry aW5nSW5mb0NoYXIoYnVmLCAnICcpOworCisJQXNzZXJ0KGVsZW0tPnZhcklkIDwgcGF0dGVybi0+ bnVtVmFycyk7CisJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsIHF1b3RlX2lkZW50aWZpZXIo cGF0dGVybi0+dmFyTmFtZXNbZWxlbS0+dmFySWRdKSk7CisJYXBwZW5kX3Jwcl9xdWFudGlmaWVy KGJ1ZiwgZWxlbSk7CisJKm5lZWRTcGFjZSA9IHRydWU7CisKKwlpZiAoZWxlbS0+anVtcCAhPSBS UFJfRUxFTUlEWF9JTlZBTElEKQorCQkqYWx0U2VwcyA9IGxhcHBlbmRfaW50KCphbHRTZXBzLCBl bGVtLT5qdW1wKTsKKwkoKmlkeCkrKzsKK30KKwogLyoKICAqIFNob3cgdGhlIHdpbmRvdyBkZWZp bml0aW9uIGZvciBhIFdpbmRvd0FnZyBub2RlLgogICovCkBAIC0yOTU2LDYgKzMyNTAsNzkgQEAg c2hvd193aW5kb3dfZGVmKFdpbmRvd0FnZ1N0YXRlICpwbGFuc3RhdGUsIExpc3QgKmFuY2VzdG9y cywgRXhwbGFpblN0YXRlICplcykKIAlhcHBlbmRTdHJpbmdJbmZvQ2hhcigmd2J1ZiwgJyknKTsK IAlFeHBsYWluUHJvcGVydHlUZXh0KCJXaW5kb3ciLCB3YnVmLmRhdGEsIGVzKTsKIAlwZnJlZSh3 YnVmLmRhdGEpOworCisJLyogU2hvdyBSb3cgUGF0dGVybiBSZWNvZ25pdGlvbiBwYXR0ZXJuIGlm IHByZXNlbnQgKi8KKwlpZiAod2FnZy0+cnBQYXR0ZXJuICE9IE5VTEwpCisJeworCQljaGFyCSAg ICpwYXR0ZXJuU3RyID0gZGVwYXJzZV9ycHJfcGF0dGVybih3YWdnLT5ycFBhdHRlcm4pOworCisJ CWlmIChwYXR0ZXJuU3RyICE9IE5VTEwpCisJCXsKKwkJCUV4cGxhaW5Qcm9wZXJ0eVRleHQoIlBh dHRlcm4iLCBwYXR0ZXJuU3RyLCBlcyk7CisJCQlwZnJlZShwYXR0ZXJuU3RyKTsKKwkJfQorCisJ CS8qCisJCSAqIFNob3cgbmF2aWdhdGlvbiBvZmZzZXRzIGZvciB0dXBsZXN0b3JlIHRyaW0uICBG b3IgRVhQTEFJTiBBTkFMWVpFLAorCQkgKiB1c2UgdGhlIGV4ZWN1dG9yLXJlc29sdmVkIHZhbHVl cyAod2hpY2ggbWF5IGRpZmZlciBmcm9tIHRoZSBwbGFuCisJCSAqIHdoZW4gTkVFRFNfRVZBTCB3 YXMgcmVzb2x2ZWQgdG8gRklYRUQgb3IgUkVUQUlOX0FMTCBhdCBpbml0KS4KKwkJICovCisJCXsK KwkJCVJQUk5hdk9mZnNldEtpbmQgbWF4S2luZCA9IHdhZ2ctPm5hdk1heE9mZnNldEtpbmQ7CisJ CQlpbnQ2NAkJbWF4T2Zmc2V0ID0gd2FnZy0+bmF2TWF4T2Zmc2V0OworCQkJUlBSTmF2T2Zmc2V0 S2luZCBmaXJzdEtpbmQgPSB3YWdnLT5uYXZGaXJzdE9mZnNldEtpbmQ7CisJCQlpbnQ2NAkJZmly c3RPZmZzZXQgPSB3YWdnLT5uYXZGaXJzdE9mZnNldDsKKworCQkJaWYgKGVzLT5hbmFseXplKQor CQkJeworCQkJCW1heEtpbmQgPSBwbGFuc3RhdGUtPm5hdk1heE9mZnNldEtpbmQ7CisJCQkJbWF4 T2Zmc2V0ID0gcGxhbnN0YXRlLT5uYXZNYXhPZmZzZXQ7CisJCQkJZmlyc3RLaW5kID0gcGxhbnN0 YXRlLT5uYXZGaXJzdE9mZnNldEtpbmQ7CisJCQkJZmlyc3RPZmZzZXQgPSBwbGFuc3RhdGUtPm5h dkZpcnN0T2Zmc2V0OworCQkJfQorCisJCQlzd2l0Y2ggKG1heEtpbmQpCisJCQl7CisJCQkJY2Fz ZSBSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFMOgorCQkJCQlFeHBsYWluUHJvcGVydHlUZXh0KCJO YXYgTWFyayBMb29rYmFjayIsICJydW50aW1lIiwgZXMpOworCQkJCQlicmVhazsKKwkJCQljYXNl IFJQUl9OQVZfT0ZGU0VUX1JFVEFJTl9BTEw6CisJCQkJCUV4cGxhaW5Qcm9wZXJ0eVRleHQoIk5h diBNYXJrIExvb2tiYWNrIiwgInJldGFpbiBhbGwiLCBlcyk7CisJCQkJCWJyZWFrOworCQkJCWNh c2UgUlBSX05BVl9PRkZTRVRfRklYRUQ6CisJCQkJCUV4cGxhaW5Qcm9wZXJ0eUludGVnZXIoIk5h diBNYXJrIExvb2tiYWNrIiwgTlVMTCwKKwkJCQkJCQkJCQkgICBtYXhPZmZzZXQsIGVzKTsKKwkJ CQkJYnJlYWs7CisJCQkJZGVmYXVsdDoKKwkJCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBS UFIgbmF2IG9mZnNldCBraW5kOiAlZCIsCisJCQkJCQkgbWF4S2luZCk7CisJCQkJCWJyZWFrOwor CQkJfQorCisJCQlpZiAod2FnZy0+aGFzRmlyc3ROYXYpCisJCQl7CisJCQkJc3dpdGNoIChmaXJz dEtpbmQpCisJCQkJeworCQkJCQljYXNlIFJQUl9OQVZfT0ZGU0VUX05FRURTX0VWQUw6CisJCQkJ CQlFeHBsYWluUHJvcGVydHlUZXh0KCJOYXYgTWFyayBMb29rYWhlYWQiLCAicnVudGltZSIsCisJ CQkJCQkJCQkJCWVzKTsKKwkJCQkJCWJyZWFrOworCQkJCQljYXNlIFJQUl9OQVZfT0ZGU0VUX1JF VEFJTl9BTEw6CisJCQkJCQlFeHBsYWluUHJvcGVydHlUZXh0KCJOYXYgTWFyayBMb29rYWhlYWQi LCAicmV0YWluIGFsbCIsCisJCQkJCQkJCQkJCWVzKTsKKwkJCQkJCWJyZWFrOworCQkJCQljYXNl IFJQUl9OQVZfT0ZGU0VUX0ZJWEVEOgorCQkJCQkJRXhwbGFpblByb3BlcnR5SW50ZWdlcigiTmF2 IE1hcmsgTG9va2FoZWFkIiwgTlVMTCwKKwkJCQkJCQkJCQkJICAgZmlyc3RPZmZzZXQsIGVzKTsK KwkJCQkJCWJyZWFrOworCQkJCQlkZWZhdWx0OgorCQkJCQkJZWxvZyhFUlJPUiwgInVucmVjb2du aXplZCBSUFIgbmF2IG9mZnNldCBraW5kOiAlZCIsCisJCQkJCQkJIGZpcnN0S2luZCk7CisJCQkJ CQlicmVhazsKKwkJCQl9CisJCQl9CisJCX0KKwl9CiB9CiAKIC8qCkBAIC0zNTA4LDYgKzM4NzUs NyBAQCBzaG93X3dpbmRvd2FnZ19pbmZvKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgRXhwbGFp blN0YXRlICplcykKIHsKIAljaGFyCSAgICptYXhTdG9yYWdlVHlwZTsKIAlpbnQ2NAkJbWF4U3Bh Y2VVc2VkOworCVdpbmRvd0FnZyAgKndhZ2cgPSAoV2luZG93QWdnICopIHdpbnN0YXRlLT5zcy5w cy5wbGFuOwogCiAJVHVwbGVzdG9yZXN0YXRlICp0dXBzdG9yZSA9IHdpbnN0YXRlLT5idWZmZXI7 CiAKQEAgLTM1MjAsNiArMzg4OCwxNjAgQEAgc2hvd193aW5kb3dhZ2dfaW5mbyhXaW5kb3dBZ2dT dGF0ZSAqd2luc3RhdGUsIEV4cGxhaW5TdGF0ZSAqZXMpCiAKIAl0dXBsZXN0b3JlX2dldF9zdGF0 cyh0dXBzdG9yZSwgJm1heFN0b3JhZ2VUeXBlLCAmbWF4U3BhY2VVc2VkKTsKIAlzaG93X3N0b3Jh Z2VfaW5mbyhtYXhTdG9yYWdlVHlwZSwgbWF4U3BhY2VVc2VkLCBlcyk7CisKKwkvKiBTaG93IE5G QSBzdGF0aXN0aWNzIGZvciBSb3cgUGF0dGVybiBSZWNvZ25pdGlvbiAqLworCWlmICh3YWdnLT5y cFBhdHRlcm4gIT0gTlVMTCkKKwkJc2hvd19ycHJfbmZhX3N0YXRzKHdpbnN0YXRlLCBlcyk7Cit9 CisKKy8qCisgKiBTaG93IE5GQSBzdGF0aXN0aWNzIGZvciBSb3cgUGF0dGVybiBSZWNvZ25pdGlv biBvbiBXaW5kb3dBZ2cgbm9kZS4KKyAqLworc3RhdGljIHZvaWQKK3Nob3dfcnByX25mYV9zdGF0 cyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIEV4cGxhaW5TdGF0ZSAqZXMpCit7CisJaWYgKGVz LT5mb3JtYXQgIT0gRVhQTEFJTl9GT1JNQVRfVEVYVCkKKwl7CisJCS8qIFN0YXRlIGFuZCBjb250 ZXh0IGNvdW50ZXJzICovCisJCUV4cGxhaW5Qcm9wZXJ0eUludGVnZXIoIk5GQSBTdGF0ZXMgUGVh ayIsIE5VTEwsIHdpbnN0YXRlLT5uZmFTdGF0ZXNNYXgsIGVzKTsKKwkJRXhwbGFpblByb3BlcnR5 SW50ZWdlcigiTkZBIFN0YXRlcyBUb3RhbCIsIE5VTEwsIHdpbnN0YXRlLT5uZmFTdGF0ZXNUb3Rh bENyZWF0ZWQsIGVzKTsKKwkJRXhwbGFpblByb3BlcnR5SW50ZWdlcigiTkZBIFN0YXRlcyBNZXJn ZWQiLCBOVUxMLCB3aW5zdGF0ZS0+bmZhU3RhdGVzTWVyZ2VkLCBlcyk7CisJCUV4cGxhaW5Qcm9w ZXJ0eUludGVnZXIoIk5GQSBDb250ZXh0cyBQZWFrIiwgTlVMTCwgd2luc3RhdGUtPm5mYUNvbnRl eHRzTWF4LCBlcyk7CisJCUV4cGxhaW5Qcm9wZXJ0eUludGVnZXIoIk5GQSBDb250ZXh0cyBUb3Rh bCIsIE5VTEwsIHdpbnN0YXRlLT5uZmFDb250ZXh0c1RvdGFsQ3JlYXRlZCwgZXMpOworCQlFeHBs YWluUHJvcGVydHlJbnRlZ2VyKCJORkEgQ29udGV4dHMgQWJzb3JiZWQiLCBOVUxMLCB3aW5zdGF0 ZS0+bmZhQ29udGV4dHNBYnNvcmJlZCwgZXMpOworCQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKCJO RkEgQ29udGV4dHMgU2tpcHBlZCIsIE5VTEwsIHdpbnN0YXRlLT5uZmFDb250ZXh0c1NraXBwZWQs IGVzKTsKKwkJRXhwbGFpblByb3BlcnR5SW50ZWdlcigiTkZBIENvbnRleHRzIFBydW5lZCIsIE5V TEwsIHdpbnN0YXRlLT5uZmFDb250ZXh0c1BydW5lZCwgZXMpOworCisJCS8qIE1hdGNoL21pc21h dGNoIGNvdW50cyBhbmQgbGVuZ3RoIHN0YXRpc3RpY3MgKi8KKwkJRXhwbGFpblByb3BlcnR5SW50 ZWdlcigiTkZBIE1hdGNoZWQiLCBOVUxMLCB3aW5zdGF0ZS0+bmZhTWF0Y2hlc1N1Y2NlZWRlZCwg ZXMpOworCQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKCJORkEgTWlzbWF0Y2hlZCIsIE5VTEwsIHdp bnN0YXRlLT5uZmFNYXRjaGVzRmFpbGVkLCBlcyk7CisJCWlmICh3aW5zdGF0ZS0+bmZhTWF0Y2hl c1N1Y2NlZWRlZCA+IDApCisJCXsKKwkJCUV4cGxhaW5Qcm9wZXJ0eUludGVnZXIoIk5GQSBNYXRj aCBMZW5ndGggTWluIiwgTlVMTCwgd2luc3RhdGUtPm5mYU1hdGNoTGVuLm1pbiwgZXMpOworCQkJ RXhwbGFpblByb3BlcnR5SW50ZWdlcigiTkZBIE1hdGNoIExlbmd0aCBNYXgiLCBOVUxMLCB3aW5z dGF0ZS0+bmZhTWF0Y2hMZW4ubWF4LCBlcyk7CisJCQlFeHBsYWluUHJvcGVydHlGbG9hdCgiTkZB IE1hdGNoIExlbmd0aCBBdmciLCBOVUxMLAorCQkJCQkJCQkgKGRvdWJsZSkgd2luc3RhdGUtPm5m YU1hdGNoTGVuLnRvdGFsIC8gd2luc3RhdGUtPm5mYU1hdGNoZXNTdWNjZWVkZWQsIDEsCisJCQkJ CQkJCSBlcyk7CisJCX0KKwkJaWYgKHdpbnN0YXRlLT5uZmFNYXRjaGVzRmFpbGVkID4gMCkKKwkJ eworCQkJRXhwbGFpblByb3BlcnR5SW50ZWdlcigiTkZBIE1pc21hdGNoIExlbmd0aCBNaW4iLCBO VUxMLCB3aW5zdGF0ZS0+bmZhRmFpbExlbi5taW4sIGVzKTsKKwkJCUV4cGxhaW5Qcm9wZXJ0eUlu dGVnZXIoIk5GQSBNaXNtYXRjaCBMZW5ndGggTWF4IiwgTlVMTCwgd2luc3RhdGUtPm5mYUZhaWxM ZW4ubWF4LCBlcyk7CisJCQlFeHBsYWluUHJvcGVydHlGbG9hdCgiTkZBIE1pc21hdGNoIExlbmd0 aCBBdmciLCBOVUxMLAorCQkJCQkJCQkgKGRvdWJsZSkgd2luc3RhdGUtPm5mYUZhaWxMZW4udG90 YWwgLyB3aW5zdGF0ZS0+bmZhTWF0Y2hlc0ZhaWxlZCwgMSwKKwkJCQkJCQkJIGVzKTsKKwkJfQor CisJCS8qIEFic29yYmVkL3NraXBwZWQgY29udGV4dCBsZW5ndGggc3RhdGlzdGljcyAqLworCQlp ZiAod2luc3RhdGUtPm5mYUNvbnRleHRzQWJzb3JiZWQgPiAwKQorCQl7CisJCQlFeHBsYWluUHJv cGVydHlJbnRlZ2VyKCJORkEgQWJzb3JiZWQgTGVuZ3RoIE1pbiIsIE5VTEwsIHdpbnN0YXRlLT5u ZmFBYnNvcmJlZExlbi5taW4sIGVzKTsKKwkJCUV4cGxhaW5Qcm9wZXJ0eUludGVnZXIoIk5GQSBB YnNvcmJlZCBMZW5ndGggTWF4IiwgTlVMTCwgd2luc3RhdGUtPm5mYUFic29yYmVkTGVuLm1heCwg ZXMpOworCQkJRXhwbGFpblByb3BlcnR5RmxvYXQoIk5GQSBBYnNvcmJlZCBMZW5ndGggQXZnIiwg TlVMTCwKKwkJCQkJCQkJIChkb3VibGUpIHdpbnN0YXRlLT5uZmFBYnNvcmJlZExlbi50b3RhbCAv IHdpbnN0YXRlLT5uZmFDb250ZXh0c0Fic29yYmVkLCAxLAorCQkJCQkJCQkgZXMpOworCQl9CisJ CWlmICh3aW5zdGF0ZS0+bmZhQ29udGV4dHNTa2lwcGVkID4gMCkKKwkJeworCQkJRXhwbGFpblBy b3BlcnR5SW50ZWdlcigiTkZBIFNraXBwZWQgTGVuZ3RoIE1pbiIsIE5VTEwsIHdpbnN0YXRlLT5u ZmFTa2lwcGVkTGVuLm1pbiwgZXMpOworCQkJRXhwbGFpblByb3BlcnR5SW50ZWdlcigiTkZBIFNr aXBwZWQgTGVuZ3RoIE1heCIsIE5VTEwsIHdpbnN0YXRlLT5uZmFTa2lwcGVkTGVuLm1heCwgZXMp OworCQkJRXhwbGFpblByb3BlcnR5RmxvYXQoIk5GQSBTa2lwcGVkIExlbmd0aCBBdmciLCBOVUxM LAorCQkJCQkJCQkgKGRvdWJsZSkgd2luc3RhdGUtPm5mYVNraXBwZWRMZW4udG90YWwgLyB3aW5z dGF0ZS0+bmZhQ29udGV4dHNTa2lwcGVkLCAxLAorCQkJCQkJCQkgZXMpOworCQl9CisJfQorCWVs c2UKKwl7CisJCS8qIFN0YXRlIGFuZCBjb250ZXh0IGNvdW50ZXJzICovCisJCUV4cGxhaW5JbmRl bnRUZXh0KGVzKTsKKwkJYXBwZW5kU3RyaW5nSW5mbyhlcy0+c3RyLAorCQkJCQkJICJORkEgU3Rh dGVzOiAiIElOVDY0X0ZPUk1BVCAiIHBlYWssICIgSU5UNjRfRk9STUFUICIgdG90YWwsICIgSU5U NjRfRk9STUFUICIgbWVyZ2VkXG4iLAorCQkJCQkJIHdpbnN0YXRlLT5uZmFTdGF0ZXNNYXgsCisJ CQkJCQkgd2luc3RhdGUtPm5mYVN0YXRlc1RvdGFsQ3JlYXRlZCwKKwkJCQkJCSB3aW5zdGF0ZS0+ bmZhU3RhdGVzTWVyZ2VkKTsKKwkJRXhwbGFpbkluZGVudFRleHQoZXMpOworCQlhcHBlbmRTdHJp bmdJbmZvKGVzLT5zdHIsCisJCQkJCQkgIk5GQSBDb250ZXh0czogIiBJTlQ2NF9GT1JNQVQgIiBw ZWFrLCAiIElOVDY0X0ZPUk1BVCAiIHRvdGFsLCAiIElOVDY0X0ZPUk1BVCAiIHBydW5lZFxuIiwK KwkJCQkJCSB3aW5zdGF0ZS0+bmZhQ29udGV4dHNNYXgsCisJCQkJCQkgd2luc3RhdGUtPm5mYUNv bnRleHRzVG90YWxDcmVhdGVkLAorCQkJCQkJIHdpbnN0YXRlLT5uZmFDb250ZXh0c1BydW5lZCk7 CisKKwkJLyogTWF0Y2gvbWlzbWF0Y2ggY291bnRzIHdpdGggbGVuZ3RoIG1pbi9tYXgvYXZnICov CisJCUV4cGxhaW5JbmRlbnRUZXh0KGVzKTsKKwkJYXBwZW5kU3RyaW5nSW5mbyhlcy0+c3RyLCAi TkZBOiAiKTsKKwkJaWYgKHdpbnN0YXRlLT5uZmFNYXRjaGVzU3VjY2VlZGVkID4gMCkKKwkJewor CQkJZG91YmxlCQlhdmdMZW4gPSAoZG91YmxlKSB3aW5zdGF0ZS0+bmZhTWF0Y2hMZW4udG90YWwg LyB3aW5zdGF0ZS0+bmZhTWF0Y2hlc1N1Y2NlZWRlZDsKKworCQkJYXBwZW5kU3RyaW5nSW5mbyhl cy0+c3RyLAorCQkJCQkJCSBJTlQ2NF9GT1JNQVQgIiBtYXRjaGVkIChsZW4gIiBJTlQ2NF9GT1JN QVQgIi8iIElOVDY0X0ZPUk1BVCAiLyUuMWYpIiwKKwkJCQkJCQkgd2luc3RhdGUtPm5mYU1hdGNo ZXNTdWNjZWVkZWQsCisJCQkJCQkJIHdpbnN0YXRlLT5uZmFNYXRjaExlbi5taW4sCisJCQkJCQkJ IHdpbnN0YXRlLT5uZmFNYXRjaExlbi5tYXgsCisJCQkJCQkJIGF2Z0xlbik7CisJCX0KKwkJZWxz ZQorCQl7CisJCQlhcHBlbmRTdHJpbmdJbmZvKGVzLT5zdHIsICIwIG1hdGNoZWQiKTsKKwkJfQor CQlpZiAod2luc3RhdGUtPm5mYU1hdGNoZXNGYWlsZWQgPiAwKQorCQl7CisJCQlkb3VibGUJCWF2 Z0ZhaWwgPSAoZG91YmxlKSB3aW5zdGF0ZS0+bmZhRmFpbExlbi50b3RhbCAvIHdpbnN0YXRlLT5u ZmFNYXRjaGVzRmFpbGVkOworCisJCQlhcHBlbmRTdHJpbmdJbmZvKGVzLT5zdHIsCisJCQkJCQkJ ICIsICIgSU5UNjRfRk9STUFUICIgbWlzbWF0Y2hlZCAobGVuICIgSU5UNjRfRk9STUFUICIvIiBJ TlQ2NF9GT1JNQVQgIi8lLjFmKSIsCisJCQkJCQkJIHdpbnN0YXRlLT5uZmFNYXRjaGVzRmFpbGVk LAorCQkJCQkJCSB3aW5zdGF0ZS0+bmZhRmFpbExlbi5taW4sCisJCQkJCQkJIHdpbnN0YXRlLT5u ZmFGYWlsTGVuLm1heCwKKwkJCQkJCQkgYXZnRmFpbCk7CisJCX0KKwkJZWxzZQorCQl7CisJCQlh cHBlbmRTdHJpbmdJbmZvKGVzLT5zdHIsICIsIDAgbWlzbWF0Y2hlZCIpOworCQl9CisJCWFwcGVu ZFN0cmluZ0luZm9DaGFyKGVzLT5zdHIsICdcbicpOworCisJCS8qIEFic29yYmVkL3NraXBwZWQg Y29udGV4dCBsZW5ndGggc3RhdGlzdGljcyAqLworCQlpZiAod2luc3RhdGUtPm5mYUNvbnRleHRz QWJzb3JiZWQgPiAwIHx8IHdpbnN0YXRlLT5uZmFDb250ZXh0c1NraXBwZWQgPiAwKQorCQl7CisJ CQlFeHBsYWluSW5kZW50VGV4dChlcyk7CisJCQlhcHBlbmRTdHJpbmdJbmZvKGVzLT5zdHIsICJO RkE6ICIpOworCisJCQlpZiAod2luc3RhdGUtPm5mYUNvbnRleHRzQWJzb3JiZWQgPiAwKQorCQkJ eworCQkJCWRvdWJsZQkJYXZnQWJzb3JiZWQgPSAoZG91YmxlKSB3aW5zdGF0ZS0+bmZhQWJzb3Ji ZWRMZW4udG90YWwgLyB3aW5zdGF0ZS0+bmZhQ29udGV4dHNBYnNvcmJlZDsKKworCQkJCWFwcGVu ZFN0cmluZ0luZm8oZXMtPnN0ciwKKwkJCQkJCQkJIElOVDY0X0ZPUk1BVCAiIGFic29yYmVkIChs ZW4gIiBJTlQ2NF9GT1JNQVQgIi8iIElOVDY0X0ZPUk1BVCAiLyUuMWYpIiwKKwkJCQkJCQkJIHdp bnN0YXRlLT5uZmFDb250ZXh0c0Fic29yYmVkLAorCQkJCQkJCQkgd2luc3RhdGUtPm5mYUFic29y YmVkTGVuLm1pbiwKKwkJCQkJCQkJIHdpbnN0YXRlLT5uZmFBYnNvcmJlZExlbi5tYXgsCisJCQkJ CQkJCSBhdmdBYnNvcmJlZCk7CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJYXBwZW5kU3RyaW5n SW5mbyhlcy0+c3RyLCAiMCBhYnNvcmJlZCIpOworCQkJfQorCisJCQlpZiAod2luc3RhdGUtPm5m YUNvbnRleHRzU2tpcHBlZCA+IDApCisJCQl7CisJCQkJZG91YmxlCQlhdmdTa2lwcGVkID0gKGRv dWJsZSkgd2luc3RhdGUtPm5mYVNraXBwZWRMZW4udG90YWwgLyB3aW5zdGF0ZS0+bmZhQ29udGV4 dHNTa2lwcGVkOworCisJCQkJYXBwZW5kU3RyaW5nSW5mbyhlcy0+c3RyLAorCQkJCQkJCQkgIiwg IiBJTlQ2NF9GT1JNQVQgIiBza2lwcGVkIChsZW4gIiBJTlQ2NF9GT1JNQVQgIi8iIElOVDY0X0ZP Uk1BVCAiLyUuMWYpIiwKKwkJCQkJCQkJIHdpbnN0YXRlLT5uZmFDb250ZXh0c1NraXBwZWQsCisJ CQkJCQkJCSB3aW5zdGF0ZS0+bmZhU2tpcHBlZExlbi5taW4sCisJCQkJCQkJCSB3aW5zdGF0ZS0+ bmZhU2tpcHBlZExlbi5tYXgsCisJCQkJCQkJCSBhdmdTa2lwcGVkKTsKKwkJCX0KKwkJCWVsc2UK KwkJCXsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKGVzLT5zdHIsICIsIDAgc2tpcHBlZCIpOworCQkJ fQorCisJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihlcy0+c3RyLCAnXG4nKTsKKwkJfQorCX0KIH0K IAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxlIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvTWFrZWZpbGUKaW5kZXggMTExMThkMGNlMDIuLjJiMjU3NDI3Nzk1IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9NYWtlZmlsZQorKysgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9NYWtlZmlsZQpAQCAtMjUsNiArMjUsNyBAQCBPQkpTID0gXAogCWV4ZWNQYXJh bGxlbC5vIFwKIAlleGVjUGFydGl0aW9uLm8gXAogCWV4ZWNQcm9jbm9kZS5vIFwKKwlleGVjUlBS Lm8gXAogCWV4ZWNSZXBsaWNhdGlvbi5vIFwKIAlleGVjU1JGLm8gXAogCWV4ZWNTY2FuLm8gXApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvUkVBRE1FLnJwciBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL1JFQURNRS5ycHIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLjUyYmNkNzczOTBjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv UkVBRE1FLnJwcgpAQCAtMCwwICsxLDE1NzggQEAKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgUG9z dGdyZVNRTCBSb3cgUGF0dGVybiBSZWNvZ25pdGlvbjogRmxhdC1BcnJheSBTdHJlYW0gTkZBIEd1 aWRlCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgVGFyZ2V0IGF1ZGllbmNlOiBEZXZlbG9wZXJz IHdpdGggYSBiYXNpYyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBQb3N0Z3JlU1FMCisgICAgICAgICAg ICAgICAgICAgZXhlY3V0b3IgYW5kIHBsYW5uZXIgYXJjaGl0ZWN0dXJlCisKKyAgU2NvcGU6IFRo ZSBlbnRpcmUgcHJvY2VzcyBmcm9tIFBBVFRFUk4vREVGSU5FIGNsYXVzZSBwYXJzaW5nIHRvIE5G QQorICAgICAgICAgcnVudGltZSBleGVjdXRpb24KKworICBSZWxhdGVkIGNvZGU6CisgICAgLSBz cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMgICAgICAgICAgKHBhcnNlciBwaGFzZSkKKyAg ICAtIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jICAgICAgICAob3B0aW1pemVyIHBo YXNlKQorICAgIC0gc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jICAgIChleGVj dXRvciBwaGFzZSwgd2luZG93IGFnZykKKyAgICAtIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNS UFIuYyAgICAgICAgICAoZXhlY3V0b3IgcGhhc2UsIE5GQSBlbmdpbmUpCisgICAgLSBzcmMvaW5j bHVkZS9leGVjdXRvci9leGVjUlBSLmggICAgICAgICAgKE5GQSBwdWJsaWMgQVBJKQorICAgIC0g c3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmggICAgICAgICAgIChwbGFuIG5vZGUgZGVmaW5p dGlvbnMpCisgICAgLSBzcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaCAgICAgICAgICAgKGV4 ZWN1dGlvbiBzdGF0ZSBkZWZpbml0aW9ucykKKyAgICAtIHNyYy9pbmNsdWRlL29wdGltaXplci9y cHIuaCAgICAgICAgICAgICAodHlwZXMgYW5kIGNvbnN0YW50cykKKyAgICAtIHNyYy9iYWNrZW5k L29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYyAobmF2IG9mZnNldCBjb21wdXRhdGlvbikKKwor PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorCitXaGF0IGlzIGEgRmxhdC1BcnJheSBTdHJlYW0gTkZBPwor CisgIFRoZSBORkEgaW4gdGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBub3QgYSB0cmFkaXRpb25hbCBz dGF0ZS10cmFuc2l0aW9uIGdyYXBoCisgIGJ1dCBhIGZsYXQgYXJyYXkgb2YgZml4ZWQtc2l6ZSAx Ni1ieXRlIGVsZW1lbnRzLiBBdCBydW50aW1lLCBpdCBwcm9jZXNzZXMKKyAgdGhlIHJvdyBzdHJl YW0gaW4gYSBmb3J3YXJkLW9ubHkgbWFubmVyLCBleHBhbmRpbmcgZXBzaWxvbiB0cmFuc2l0aW9u cworICBlYWdlcmx5IHdpdGhvdXQgYmFja3RyYWNraW5nLgorCisgIC0gRmxhdC1BcnJheTogUGF0 dGVybiBjb21waWxlZCBpbnRvIGEgZmxhdCBhcnJheSwKKyAgICAgICAgICAgICAgICBub3QgYSBn cmFwaCAoQ2hhcHRlciBJVikKKyAgLSBTdHJlYW06ICAgICBSb3dzIGNvbnN1bWVkIHNlcXVlbnRp YWxseSBpbiBvbmUgZGlyZWN0aW9uLAorICAgICAgICAgICAgICAgIG5ldmVyIHJldmlzaXRlZCAo Q2hhcHRlciBYSUkpCisgIC0gTkZBOiAgICAgICAgTm9uZGV0ZXJtaW5pc3RpYyBleGVjdXRpb24g d2hlcmUgbXVsdGlwbGUgc3RhdGVzCisgICAgICAgICAgICAgICAgY29leGlzdCB3aXRoaW4gYSBz aW5nbGUgY29udGV4dCAoQ2hhcHRlciBWSSkKKworQ2hhcHRlciBJICBSb3cgUGF0dGVybiBSZWNv Z25pdGlvbiBPdmVydmlldworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitSb3cgUGF0dGVybiBSZWNv Z25pdGlvbiAoaGVyZWFmdGVyIFJQUikgaXMgYSBmZWF0dXJlIGludHJvZHVjZWQgaW4gU1FMOjIw MTYKK3RoYXQgbWF0Y2hlcyByZWdleC1iYXNlZCBwYXR0ZXJucyBhZ2FpbnN0IG9yZGVyZWQgcm93 IHNldHMuCisKK1RoZSBTUUwgc3RhbmRhcmQgZGVmaW5lcyB0d28gZm9ybXM6CisKKyAgRmVhdHVy ZSBSMDEwOiBNQVRDSF9SRUNPR05JWkUgKEZST00gY2xhdXNlKQorICAgIC0gRGVkaWNhdGVkIHRh YmxlIG9wZXJhdG9yCisgICAgLSBQcm92aWRlcyBkZWRpY2F0ZWQgZnVuY3Rpb25zIHN1Y2ggYXMg TUFUQ0hfTlVNQkVSKCksIENMQVNTSUZJRVIoKQorICAgIC0gU3VwcG9ydHMgT05FIFJPVyBQRVIg TUFUQ0ggLyBBTEwgUk9XUyBQRVIgTUFUQ0gKKworICBGZWF0dXJlIFIwMjA6IFJQUiBpbiBhIHdp bmRvdyAoV0lORE9XIGNsYXVzZSkKKyAgICAtIEludGVncmF0ZWQgaW50byB0aGUgZXhpc3Rpbmcg d2luZG93IGZ1bmN0aW9uIGZyYW1ld29yaworICAgIC0gU3VwcG9ydHMgQUxMIFJPV1MgUEVSIE1B VENIIG9ubHkKKyAgICAtIE5vIE1BVENIX05VTUJFUigpCisKK1RoaXMgaW1wbGVtZW50YXRpb24g dGFyZ2V0cyBGZWF0dXJlIFIwMjAuCisKK1RoZSBiYXNpYyBzeW50YXggaXMgYXMgZm9sbG93czoK KworICBTRUxFQ1QgLi4uCisgIE9WRVIgKAorICAgIFBBUlRJVElPTiBCWSAuLi4KKyAgICBPUkRF UiBCWSAuLi4KKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBbSU5JVElBTCB8IFNFRUtdICAgLS0gU0VFSyBpcyBkZWZpbmVkIGluIHRoZSBz dGFuZGFyZCBidXQgbm90IGltcGxlbWVudGVkCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhU IFJPVyB8IFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKCA8cmVnZXg+ICkKKyAgICBE RUZJTkUgPHZhcmlhYmxlPiBBUyA8Y29uZGl0aW9uPiwgLi4uCisgICkKKworVGhlIFBBVFRFUk4g Y2xhdXNlIGlzIGEgcmVndWxhciBleHByZXNzaW9uIG92ZXIgcm93IHBhdHRlcm4gdmFyaWFibGVz LgorVGhlIERFRklORSBjbGF1c2Ugc3BlY2lmaWVzIGJvb2xlYW4gY29uZGl0aW9ucyB0aGF0IGRl dGVybWluZSB3aGV0aGVyIGVhY2gKK3ZhcmlhYmxlIGV2YWx1YXRlcyB0byB0cnVlIGZvciB0aGUg Y3VycmVudCByb3cuCisKK0V4YW1wbGU6CisKKyAgUEFUVEVSTiAoQSsgQikKKyAgREVGSU5FIEEg QVMgcHJpY2UgPiBQUkVWKHByaWNlKSwKKyAgICAgICAgIEIgQVMgcHJpY2UgPCBQUkVWKHByaWNl KQorCitUaGlzIHBhdHRlcm4gbWF0Y2hlcyAiYSBzcGFuIHdoZXJlIHByaWNlcyByaXNlIGNvbnNl Y3V0aXZlbHkgdGhlbiBkcm9wLiIKKworQ2hhcHRlciBJSSAgT3ZlcmFsbCBQcm9jZXNzaW5nIFBp cGVsaW5lCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1JQUiBwcm9jZXNzaW5nIGlzIGRpdmlkZWQg aW50byB0aHJlZSBwaGFzZXM6CisKKyAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgfCAgMS4gUGFyc2luZyAoUGFyc2VyKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgfCAgICAgU1FMIHRleHQg LT4gUEFUVEVSTiBBU1QgKyBERUZJTkUgZXhwcmVzc2lvbiB0cmVlICAgICAgIHwKKyAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwK KyAgfCAgMi4gQ29tcGlsYXRpb24gKE9wdGltaXplci9QbGFubmVyKSAgICAgICAgICAgICAgICAg ICAgICAgIHwKKyAgfCAgICAgUEFUVEVSTiBBU1QgLT4gb3B0aW1pemF0aW9uIC0+IGZsYXQgTkZB IGVsZW1lbnQgYXJyYXkgIHwKKyAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgfCAgMy4gRXhlY3V0aW9uIChFeGVjdXRvcikg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgfCAgICAgUm93LWJ5LXJvdyBt YXRjaGluZyB2aWEgTkZBIHNpbXVsYXRpb24gICAgICAgICAgICAgICAgIHwKKyAgKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKwor RWFjaCBwaGFzZSB1c2VzIGluZGVwZW5kZW50IGRhdGEgc3RydWN0dXJlcywgYW5kIHRoZSBpbnRl cmZhY2VzIGJldHdlZW4KK3BoYXNlcyBhcmUgd2VsbC1kZWZpbmVkOgorCisgIFBhcnNlciAtPiBQ bGFubmVyOiAgICBXaW5kb3dDbGF1c2UucnBQYXR0ZXJuIChSUFJQYXR0ZXJuTm9kZSB0cmVlKQor ICAgICAgICAgICAgICAgICAgICAgICAgV2luZG93Q2xhdXNlLmRlZmluZUNsYXVzZSAoVGFyZ2V0 RW50cnkgbGlzdCkKKworICBQbGFubmVyIC0+IEV4ZWN1dG9yOiAgV2luZG93QWdnLnJwUGF0dGVy biAoUlBSUGF0dGVybiBzdHJ1Y3QpCisgICAgICAgICAgICAgICAgICAgICAgICBXaW5kb3dBZ2cu ZGVmaW5lQ2xhdXNlIChUYXJnZXRFbnRyeSBsaXN0KQorCitDaGFwdGVyIElJSSAgUGFyc2luZyBQ aGFzZQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorCitJSUktMS4gRW50cnkgUG9pbnQKKworICB0cmFu c2Zvcm1XaW5kb3dEZWZpbml0aW9ucygpIChwYXJzZV9jbGF1c2UuYykKKyAgICArLS0gdHJhbnNm b3JtUlBSKCkgKHBhcnNlX3Jwci5jKQorCit0cmFuc2Zvcm1SUFIoKSBpcyBpbnZva2VkIHdoZW4g UlBDb21tb25TeW50YXggaXMgcHJlc2VudCBhbmQgcGVyZm9ybXMgdGhlCitmb2xsb3dpbmc6CisK KyAgKDEpIEZyYW1lIG9wdGlvbiB2YWxpZGF0aW9uCisgICAgICAtIE9ubHkgUk9XUyBpcyBhbGxv d2VkIChSQU5HRSwgR1JPVVBTIGFyZSBub3QpCisgICAgICAtIFRoZSBzdGFydCBib3VuZGFyeSBt dXN0IGJlIENVUlJFTlQgUk9XCisgICAgICAtIEVYQ0xVREUgb3B0aW9uIGlzIG5vdCBhbGxvd2Vk CisKKyAgKDIpIFRyYW5zY3JpcHRpb24gdG8gV2luZG93Q2xhdXNlCisgICAgICAtIENvcGllcyBy cFBhdHRlcm4sIHJwU2tpcFRvLCBpbml0aWFsIGZpZWxkcworCisgICgzKSBERUZJTkUgY2xhdXNl IHRyYW5zZm9ybWF0aW9uICh0cmFuc2Zvcm1EZWZpbmVDbGF1c2UpCisKK0lJSS0yLiBQQVRURVJO IEFTVAorCitUaGUgcGFyc2VyIHRyYW5zZm9ybXMgdGhlIFBBVFRFUk4gY2xhdXNlIGludG8gYW4g UlBSUGF0dGVybk5vZGUgdHJlZS4KK0VhY2ggbm9kZSBoYXMgb25lIG9mIHRoZSBmb2xsb3dpbmcg Zm91ciB0eXBlczoKKworICBSUFJfUEFUVEVSTl9WQVIgICAgVmFyaWFibGUgcmVmZXJlbmNlLiBO YW1lIHN0b3JlZCBpbiB2YXJOYW1lIGZpZWxkLgorICBSUFJfUEFUVEVSTl9TRVEgICAgQ29uY2F0 ZW5hdGlvbi4gQ2hpbGRyZW4gbm9kZSBsaXN0IGluIGNoaWxkcmVuLgorICBSUFJfUEFUVEVSTl9B TFQgICAgQWx0ZXJuYXRpb24uIEJyYW5jaCBub2RlIGxpc3QgaW4gY2hpbGRyZW4uCisgIFJQUl9Q QVRURVJOX0dST1VQICBHcm91cCAocGFyZW50aGVzZXMpLiBCb2R5IG5vZGUgbGlzdCBpbiBjaGls ZHJlbi4KKworQWxsIG5vZGVzIGhhdmUgbWluL21heCBmaWVsZHMgdG8gZXhwcmVzcyBxdWFudGlm aWVyczoKKworICBBICAgICAgIC0+IFZBUihBLCBtaW49MSwgbWF4PTEpCisgIEErICAgICAgLT4g VkFSKEEsIG1pbj0xLCBtYXg9SU5GKQorICBBKiAgICAgIC0+IFZBUihBLCBtaW49MCwgbWF4PUlO RikKKyAgQT8gICAgICAtPiBWQVIoQSwgbWluPTAsIG1heD0xKQorICBBezMsNX0gIC0+IFZBUihB LCBtaW49MywgbWF4PTUpCisKK0lmIHRoZSByZWx1Y3RhbnQgZmllbGQgaXMgdHJ1ZSwgdGhlIHF1 YW50aWZpZXIgaXMgcmVsdWN0YW50IChub24tZ3JlZWR5KS4KKyhSUFJQYXR0ZXJuTm9kZS5yZWx1 Y3RhbnQgaXMgYm9vbDsgcmVsdWN0YW50X2xvY2F0aW9uIGlzIHRoZSBzZXBhcmF0ZQorUGFyc2VM b2MgZmllbGQgaG9sZGluZyB0aGUgJz8nIHRva2VuIHBvc2l0aW9uLCBvciAtMSBpZiBhYnNlbnQu KQorCitFeGFtcGxlOiBQQVRURVJOICgoQSsgQikgfCBDKikKKworICBBTFQKKyAgKy0tIFNFUQor ICB8ICAgKy0tIFZBUihBLCAxLCBJTkYpCisgIHwgICArLS0gVkFSKEIsIDEsIDEpCisgICstLSBW QVIoQywgMCwgSU5GKQorCitJSUktMy4gREVGSU5FIENsYXVzZSBUcmFuc2Zvcm1hdGlvbgorCit0 cmFuc2Zvcm1EZWZpbmVDbGF1c2UoKSBwcm9jZXNzZXMgZWFjaCBERUZJTkUgdmFyaWFibGUgYXMg Zm9sbG93czoKKworICAoMSkgQ2hlY2tzIGZvciBkdXBsaWNhdGUgdmFyaWFibGUgbmFtZXMKKyAg KDIpIFRyYW5zZm9ybXMgdGhlIGV4cHJlc3Npb24gdmlhIHRyYW5zZm9ybUV4cHIoKQorICAoMykg RXh0cmFjdHMgVmFyIG5vZGVzIHZpYSBwdWxsX3Zhcl9jbGF1c2UoKSBhbmQgZW5zdXJlcyBlYWNo IGlzCisgICAgICBwcmVzZW50IGluIHRoZSBxdWVyeSB0YXJnZXRsaXN0LCBzbyB0aGUgcGxhbm5l ciBwcm9wYWdhdGVzIHRoZQorICAgICAgcmVmZXJlbmNlZCBjb2x1bW5zIHRocm91Z2ggdGhlIHBs YW4gdHJlZQorICAoNCkgV3JhcHMgaW4gYSBUYXJnZXRFbnRyeSB3aXRoIHRoZSB2YXJpYWJsZSBu YW1lIHNldCBpbiByZXNuYW1lCisKK0FmdGVyIGFsbCB2YXJpYWJsZXMgYXJlIHByb2Nlc3NlZDoK KyAgKDUpIENvZXJjZXMgZWFjaCBleHByZXNzaW9uIHRvIEJvb2xlYW4gdHlwZSAoY29lcmNlX3Rv X2Jvb2xlYW4pCisKK1ZhcmlhYmxlcyB0aGF0IGFyZSB1c2VkIGluIFBBVFRFUk4gYnV0IG5vdCBk ZWZpbmVkIGluIERFRklORSBhcmUgaW1wbGljaXRseQorZXZhbHVhdGVkIGFzIFRSVUUgKG1hdGNo aW5nIGFsbCByb3dzKS4KKworQ2hhcHRlciBJViAgQ29tcGlsYXRpb24gUGhhc2UKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKworSVYtMS4gRW50cnkgUG9pbnQKKworICBjcmVhdGVfd2luZG93YWdnX3Bs YW4oKSAoY3JlYXRlcGxhbi5jKQorICAgICstLSBidWlsZERlZmluZVZhcmlhYmxlTGlzdCgpICAg IEJ1aWxkIHZhcmlhYmxlIG5hbWUgbGlzdCBmcm9tIERFRklORQorICAgICstLSBidWlsZFJQUlBh dHRlcm4oKSAgICAgICAgICAgTkZBIGNvbXBpbGF0aW9uICg2IHBoYXNlcykKKworSVYtMi4gVGhl IDYgUGhhc2VzIG9mIGJ1aWxkUlBSUGF0dGVybigpCisKKyAgUGhhc2UgMTogQVNUIG9wdGltaXph dGlvbiAob3B0aW1pemVSUFJQYXR0ZXJuKQorICBQaGFzZSAyOiBTdGF0aXN0aWNzIGNvbGxlY3Rp b24gKHNjYW5SUFJQYXR0ZXJuKQorICBQaGFzZSAzOiBNZW1vcnkgYWxsb2NhdGlvbiAoYWxsb2Nh dGVSUFJQYXR0ZXJuKQorICBQaGFzZSA0OiBORkEgZWxlbWVudCBmaWxsIChmaWxsUlBSUGF0dGVy bikKKyAgUGhhc2UgNTogRmluYWxpemF0aW9uIChmaW5hbGl6ZVJQUlBhdHRlcm4pCisgIFBoYXNl IDY6IEFic29yYmFiaWxpdHkgYW5hbHlzaXMgKGNvbXB1dGVBYnNvcmJhYmlsaXR5KQorCitJVi0z LiBQaGFzZSAxOiBBU1QgT3B0aW1pemF0aW9uCisKK0FmdGVyIGNvcHlpbmcgdGhlIHBhcnNlci1n ZW5lcmF0ZWQgQVNULCB0aGUgZm9sbG93aW5nIG9wdGltaXphdGlvbnMgYXJlCithcHBsaWVkOgor CisgIChhKSBTRVEgZmxhdHRlbmluZzogVW53cmFwIG5lc3RlZCBTRVEgbm9kZXMKKyAgICAgIFNF UShBLCBTRVEoQiwgQykpIC0+IFNFUShBLCBCLCBDKQorCisgIChiKSBDb25zZWN1dGl2ZSB2YXJp YWJsZSBtZXJnaW5nOiBNZXJnZSBjb25zZWN1dGl2ZSBvY2N1cnJlbmNlcyBvZiB0aGUKKyAgICAg IHNhbWUgdmFyaWFibGUgaW50byBhIHNpbmdsZSBxdWFudGlmaWVyCisgICAgICBBIEEgLT4gQXsy fQorICAgICAgQXsyLDN9IEF7MSwyfSAtPiBBezMsNX0KKworICAoYykgQ29uc2VjdXRpdmUgZ3Jv dXAgbWVyZ2luZzogTWVyZ2UgcmVwZWF0ZWQgaWRlbnRpY2FsIGdyb3VwcworICAgICAgKEEgQikr IChBIEIpKyAtPiAoQSBCKXsyLElORn0KKworICAoZCkgQ29uc2VjdXRpdmUgQUxUIG1lcmdpbmc6 IE1lcmdlIHJlcGVhdGVkIGlkZW50aWNhbCBBTFQgbm9kZXMKKyAgICAgIChBIHwgQikgKEEgfCBC KSAoQSB8IEIpIC0+IChBIHwgQil7M30KKworICAoZSkgUHJlZml4L3N1ZmZpeCBhYnNvcnB0aW9u OiBBYnNvcmIgaWRlbnRpY2FsIHNlcXVlbmNlcyBiZWZvcmUvYWZ0ZXIKKyAgICAgIGEgZ3JvdXAK KyAgICAgIEEgQiAoQSBCKSsgLT4gKEEgQil7MixJTkZ9CisKKyAgKGYpIEFMVCBmbGF0dGVuaW5n IGFuZCBkZWR1cGxpY2F0aW9uCisgICAgICAoQSB8IChCIHwgQykpIC0+IChBIHwgQiB8IEMpCisg ICAgICAoQSB8IEIgfCBBKSAtPiAoQSB8IEIpCisKKyAgKGcpIFF1YW50aWZpZXIgbXVsdGlwbGlj YXRpb246IENvbGxhcHNlIG5lc3RlZCBxdWFudGlmaWVycyB3aGVuIHNhZmUKKyAgICAgIChBKykr IC0+IEErCisgICAgICAoQXsyLDN9KXs1fSAtPiBBezEwLDE1fQorCisgIChoKSBTaW5nbGUtY2hp bGQgdW53cmFwCisgICAgICBTRVEoQSkgLT4gQSwgIChBKXsxLDF9IC0+IEEKKworSVYtNC4gUGhh c2UgNDogTkZBIEVsZW1lbnQgQXJyYXkgR2VuZXJhdGlvbgorCitUcmFuc2Zvcm1zIHRoZSBvcHRp bWl6ZWQgQVNUIGludG8gYSBmbGF0IGFycmF5IG9mIFJQUlBhdHRlcm5FbGVtZW50LgorVGhpcyBp cyB0aGUgY29yZSBkYXRhIHN0cnVjdHVyZSB1c2VkIGZvciBORkEgc2ltdWxhdGlvbiBhdCBydW50 aW1lLgorCitSUFJQYXR0ZXJuRWxlbWVudCBzdHJ1Y3QgKDE2IGJ5dGVzKToKKworICBGaWVsZCAg ICAgIFNpemUgICAgIERlc2NyaXB0aW9uCisgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICB2YXJJZCAgICAgIDFCICAgICAgVmFyaWFi bGUgSUQgKDAtMjUxKSBvciBjb250cm9sIGNvZGUgKDI1Mi0yNTUpCisgIGRlcHRoICAgICAgMUIg ICAgICBHcm91cCBuZXN0aW5nIGRlcHRoCisgIGZsYWdzICAgICAgMUIgICAgICBCaXQgZmxhZ3Mg KHNlZSBiZWxvdykKKyAgcmVzZXJ2ZWQgICAxQiAgICAgIFBhZGRpbmcKKyAgbWluICAgICAgICA0 QiAgICAgIFF1YW50aWZpZXIgbG93ZXIgYm91bmQKKyAgbWF4ICAgICAgICA0QiAgICAgIFF1YW50 aWZpZXIgdXBwZXIgYm91bmQKKyAgbmV4dCAgICAgICAyQiAgICAgIE5leHQgZWxlbWVudCBpbmRl eCAoc2VxdWVudGlhbCBmbG93KQorICBqdW1wICAgICAgIDJCICAgICAgQnJhbmNoIHRhcmdldCBp bmRleCAoZm9yIEFMVC9HUk9VUCkKKworQ29udHJvbCBjb2RlczoKKworICBSUFJfVkFSSURfQkVH SU4gKDI1MikgIEdyb3VwIHN0YXJ0IG1hcmtlcgorICBSUFJfVkFSSURfRU5EICAgKDI1MykgIEdy b3VwIGVuZCBtYXJrZXIKKyAgUlBSX1ZBUklEX0FMVCAgICgyNTQpICBBbHRlcm5hdGlvbiBzdGFy dCBtYXJrZXIKKyAgUlBSX1ZBUklEX0ZJTiAgICgyNTUpICBQYXR0ZXJuIGNvbXBsZXRpb24gbWFy a2VyCisKK0VsZW1lbnQgZmxhZ3MgKDEgYnl0ZSwgYml0bWFzayk6CisKKyAgMHgwMSAgUlBSX0VM RU1fUkVMVUNUQU5UICAgICAgICAgIChWQVIsIEJFR0lOLCBFTkQpCisgICAgICAgIE5vbi1ncmVl ZHkgcXVhbnRpZmllci4gIFByZWZlcnMgc2hvcnRlciBtYXRjaDogdHJ5IGV4aXQtbG9vcAorICAg ICAgICBmaXJzdCwgdGhlbiByZXBlYXQuICBTZXQgb24gVkFSIGZvciBzaW1wbGUgKEErPyksCisg ICAgICAgIG9uIEJFR0lOK0VORCBmb3IgZ3JvdXAgKCguLi4pKz8pLgorCisgIDB4MDIgIFJQUl9F TEVNX0VNUFRZX0xPT1AgICAgICAgICAoRU5EKQorICAgICAgICBHcm91cCBib2R5IGNhbiBwcm9k dWNlIGVtcHR5IG1hdGNoIChhbGwgY2hpbGRyZW4gbnVsbGFibGUpLgorICAgICAgICBDcmVhdGVz IGEgZmFzdC1mb3J3YXJkIGV4aXQgY2xvbmUgYWxvbmdzaWRlIHRoZSBub3JtYWwKKyAgICAgICAg bG9vcC1iYWNrIHNvIGN5Y2xlIGRldGVjdGlvbiBkb2Vzbid0IGtpbGwgbGVnaXRpbWF0ZQorICAg ICAgICBtYXRjaGVzLiAoSVYtNGIpCisKKyAgMHgwNCAgUlBSX0VMRU1fQUJTT1JCQUJMRV9CUkFO Q0ggIChWQVIsIEJFR0lOLCBFTkQsIEFMVCkKKyAgICAgICAgRWxlbWVudCBsaWVzIHdpdGhpbiBh biBhYnNvcmJhYmxlIHJlZ2lvbi4gIFVzZWQgYXQgcnVudGltZQorICAgICAgICB0byB0cmFjayB3 aGV0aGVyIHRoZSBjdXJyZW50IE5GQSBzdGF0ZSBpcyBpbiBhbiBhYnNvcmJhYmxlCisgICAgICAg IGNvbnRleHQuCisKKyAgMHgwOCAgUlBSX0VMRU1fQUJTT1JCQUJMRSAgICAgICAgIChWQVIsIEVO RCkKKyAgICAgICAgQWJzb3JwdGlvbiBqdWRnbWVudCBwb2ludC4gIFdoZXJlIHRvIGNvbXBhcmUg Y29uc2VjdXRpdmUKKyAgICAgICAgaXRlcmF0aW9ucyBmb3IgYWJzb3JwdGlvbi4KKyAgICAgICAg ICAtIFNpbXBsZSB1bmJvdW5kZWQgVkFSIChBKyk6IHNldCBvbiB0aGUgVkFSIGl0c2VsZgorICAg ICAgICAgIC0gVW5ib3VuZGVkIEdST1VQICgoQSBCKSspOiBzZXQgb24gdGhlIEVORCBlbGVtZW50 IG9ubHkKKworICBBY2Nlc3NvciBtYWNyb3M6CisgICAgUlBSRWxlbUlzUmVsdWN0YW50KGUpICAg ICAgICAoZSktPmZsYWdzICYgMHgwMQorICAgIFJQUkVsZW1DYW5FbXB0eUxvb3AoZSkgICAgICAg KGUpLT5mbGFncyAmIDB4MDIKKyAgICBSUFJFbGVtSXNBYnNvcmJhYmxlQnJhbmNoKGUpIChlKS0+ ZmxhZ3MgJiAweDA0CisgICAgUlBSRWxlbUlzQWJzb3JiYWJsZShlKSAgICAgICAoZSktPmZsYWdz ICYgMHgwOAorCitFeGFtcGxlOiBQQVRURVJOIChBKyBCIHwgQykKKworICBBU1Q6IEFMVChTRVEo VkFSKEEsMSxJTkYpLCBWQVIoQiwxLDEpKSwgVkFSKEMsMSwxKSkKKworICBDb21waWxhdGlvbiBy ZXN1bHQ6CisKKyAgaWR4ICB2YXJJZCAgZGVwdGggIG1pbiAgbWF4ICBuZXh0ICBqdW1wICBEZXNj cmlwdGlvbgorICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgIDAgICBBTFQgICAgMCAgICAgIDEgICAgMSAgICAxICAgICAtMSAg ICBBbHRlcm5hdGlvbiBzdGFydAorICAgMSAgIEEoMCkgICAxICAgICAgMSAgICBJTkYgIDIgICAg IDMgICAgIEJyYW5jaCAxOiBBKworICAgMiAgIEIoMSkgICAxICAgICAgMSAgICAxICAgIDQgICAg IC0xICAgIEJyYW5jaCAxOiBCIC0+IEZJTgorICAgMyAgIEMoMikgICAxICAgICAgMSAgICAxICAg IDQgICAgIC0xICAgIEJyYW5jaCAyOiBDIC0+IEZJTgorICAgNCAgIEZJTiAgICAwICAgICAgMSAg ICAxICAgIC0xICAgIC0xICAgIFBhdHRlcm4gY29tcGxldGlvbgorCisgIC0gaWR4IDA6IEFMVCBt YXJrZXIuIG5leHQoPTEpIGlzIHRoZSBzdGFydCBvZiB0aGUgZmlyc3QgYnJhbmNoCisgIC0gaWR4 IDE6IFZhcmlhYmxlIEEuIG5leHQoPTIpIGlzIEIsIGp1bXAoPTMpIGlzIHRoZSBzdGFydCBvZiB0 aGUgc2Vjb25kCisgICAgICAgICAgIGJyYW5jaAorICAtIGlkeCAyOiBWYXJpYWJsZSBCLiBuZXh0 KD00KSBpcyBGSU4KKyAgLSBpZHggMzogVmFyaWFibGUgQy4gbmV4dCg9NCkgaXMgRklOCisgIC0g aWR4IDQ6IEZJTiBtYXJrZXIuIE1hdGNoIGNvbXBsZXRpb24gc2lnbmFsCisKK1JvbGVzIG9mIG5l eHQgYW5kIGp1bXA6CisKKyAgLSBuZXh0OiBUaGUgbmV4dCBlbGVtZW50IHRvIG1vdmUgdG8gImFm dGVyIGNvbnN1bWluZyIgdGhlIGN1cnJlbnQgZWxlbWVudC4KKyAgICAgICAgICBGb3IgVkFSLCB0 aGUgbmV4dCBwb3NpdGlvbiBhZnRlciBhIHN1Y2Nlc3NmdWwgbWF0Y2guCisgICAgICAgICAgRm9y IEJFR0lOL0VORCwgdGhlIG5leHQgcG9zaXRpb24gaW5zaWRlL291dHNpZGUgdGhlIGdyb3VwLgor CisgIC0ganVtcDogVGhlIGVsZW1lbnQgdG8gInNraXAgdG8uIgorICAgICAgICAgIEluIEFMVCwg YSBqdW1wIGZyb20gb25lIGJyYW5jaCB0byB0aGUgbmV4dCBicmFuY2guCisgICAgICAgICAgSW4g QkVHSU4sIGEgc2tpcCBwYXRoIHRvIEVORCsxIChmb3IgZ3JvdXBzIHdpdGggbWluPTApLgorICAg ICAgICAgIEluIEVORCwgYSBsb29wLWJhY2sgdG8gdGhlIHN0YXJ0IG9mIHRoZSBncm91cCBib2R5 LgorCitFeGFtcGxlOiBQQVRURVJOICgoQSBCKSspCisKKyAgaWR4ICB2YXJJZCAgICBkZXB0aCAg bWluICBtYXggIG5leHQgIGp1bXAgIERlc2NyaXB0aW9uCisgIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAwICAgQkVHSU4g ICAgMCAgICAgIDEgICAgSU5GICAxICAgICA0ICAgICBHcm91cCBzdGFydAorICAgMSAgIEEoMCkg ICAgIDEgICAgICAxICAgIDEgICAgMiAgICAgLTEgICAgQQorICAgMiAgIEIoMSkgICAgIDEgICAg ICAxICAgIDEgICAgMyAgICAgLTEgICAgQgorICAgMyAgIEVORCAgICAgIDAgICAgICAxICAgIElO RiAgNCAgICAgMSAgICAgR3JvdXAgZW5kCisgICA0ICAgRklOICAgICAgMCAgICAgIDEgICAgMSAg ICAtMSAgICAtMSAgICBQYXR0ZXJuIGNvbXBsZXRpb24KKworICAtIGlkeCAwOiBCRUdJTi4gbmV4 dCg9MSkgZW50ZXJzIHRoZSBncm91cCBib2R5LgorICAgICAgICAgICBqdW1wKD00KSBza2lwcyB0 byBhZnRlciBFTkQgPSBGSU4gKHVzZWQgd2hlbiBtaW49MCkuCisgIC0gaWR4IDM6IEVORC4gbmV4 dCg9NCkgZXhpdHMgdGhlIGdyb3VwLgorICAgICAgICAgICBqdW1wKD0xKSBsb29wcyBiYWNrIHRv IHRoZSBzdGFydCBvZiB0aGUgZ3JvdXAgYm9keS4KKworSVYtNGEuIFJlbHVjdGFudCBGbGFnIChS UFJfRUxFTV9SRUxVQ1RBTlQpCisKK1RoZSByZWx1Y3RhbnQgZmxhZyBpcyBzZXQgZHVyaW5nIFBo YXNlIDQgKGZpbGxSUFJQYXR0ZXJuKSB3aGVuIHRoZSBBU1Qgbm9kZQoraGFzIHJlbHVjdGFudCA9 PSB0cnVlLiBJdCByZXZlcnNlcyB0aGUgcHJpb3JpdHkgb2YgcXVhbnRpZmllciBleHBhbnNpb24g YXQKK3J1bnRpbWU6CisKKyAgR3JlZWR5IChkZWZhdWx0KTogIHRyeSBsb29wLWJhY2sgZmlyc3Qs IHRoZW4gZXhpdCAgKHByZWZlciBsb25nZXIgbWF0Y2gpCisgIFJlbHVjdGFudDogICAgICAgICB0 cnkgZXhpdCBmaXJzdCwgdGhlbiBsb29wLWJhY2sgICAocHJlZmVyIHNob3J0ZXIgbWF0Y2gpCisK K1RoZSBmbGFnIGlzIHNldCBvbiBhbGwgZWxlbWVudHMgdGhhdCBjYXJyeSB0aGUgcXVhbnRpZmll cjoKKworICBTaW1wbGUgVkFSIChBKz8pOiAgICAgUlBSX0VMRU1fUkVMVUNUQU5UIG9uIHRoZSBW QVIgZWxlbWVudAorICBHcm91cCAoKC4uLikrPyk6ICAgICAgUlBSX0VMRU1fUkVMVUNUQU5UIG9u IEJFR0lOIGFuZCBFTkQgZWxlbWVudHMKKworQXQgcnVudGltZSAobmZhX2FkdmFuY2UpLCB0aGUg ZmxhZyBjb250cm9scyBERlMgZXhwbG9yYXRpb24gb3JkZXI6CisKKyAgVkFSIHdpdGggcXVhbnRp ZmllcjoKKyAgICBHcmVlZHk6ICAgIHByaW1hcnkgcGF0aCA9IG5leHQgKGNvbnRpbnVlKSwgY2xv bmUgPSBqdW1wIChza2lwKQorICAgIFJlbHVjdGFudDogcHJpbWFyeSBwYXRoID0ganVtcCAoc2tp cCksIGNsb25lID0gbmV4dCAoY29udGludWUpCisKKyAgRU5EIGVsZW1lbnQ6CisgICAgR3JlZWR5 OiAgICBwcmltYXJ5IHBhdGggPSBqdW1wIChsb29wLWJhY2spLCBjbG9uZSA9IG5leHQgKGV4aXQp CisgICAgUmVsdWN0YW50OiBwcmltYXJ5IHBhdGggPSBuZXh0IChleGl0KSwgY2xvbmUgPSBqdW1w IChsb29wLWJhY2spCisKKyAgQkVHSU4gd2l0aCBtaW49MDoKKyAgICBHcmVlZHk6ICAgIHByaW1h cnkgcGF0aCA9IG5leHQgKGVudGVyIGdyb3VwKSwgY2xvbmUgPSBqdW1wIChza2lwKQorICAgIFJl bHVjdGFudDogcHJpbWFyeSBwYXRoID0ganVtcCAoc2tpcCksIGNsb25lID0gbmV4dCAoZW50ZXIg Z3JvdXApCisKK1RoZSBhYnNvcnB0aW9uIG9wdGltaXphdGlvbiByZXF1aXJlcyBncmVlZHkgcXVh bnRpZmllcnMuIFJlbHVjdGFudAorcXVhbnRpZmllcnMgYXJlIGV4Y2x1ZGVkIGZyb20gYWJzb3Ji YWJpbGl0eSBhbmFseXNpcyAoc2VlIElWLTUpLgorCitJVi00Yi4gRW1wdHkgTG9vcCBGbGFnIChS UFJfRUxFTV9FTVBUWV9MT09QKQorCitUaGUgZW1wdHktbG9vcCBmbGFnIGlzIHNldCBkdXJpbmcg UGhhc2UgNCAoZmlsbFJQUlBhdHRlcm5Hcm91cCkgb24gdGhlIEVORAorZWxlbWVudCB3aGVuIHRo ZSBncm91cCBib2R5IGlzIG51bGxhYmxlIC0tIGkuZS4sIGV2ZXJ5IHBhdGggdGhyb3VnaCB0aGUK K2JvZHkgY2FuIG1hdGNoIHplcm8gcm93cyAoYWxsIGNoaWxkcmVuIGFyZSBudWxsYWJsZSkuCisK K0V4YW1wbGUgcGF0dGVybnMgdGhhdCB0cmlnZ2VyIHRoaXMgZmxhZzoKKworICAoQT8pKiAgICBB IGlzIG51bGxhYmxlIChtaW49MCksIHNvIGdyb3VwIGJvZHkgaXMgbnVsbGFibGUgLT4gRU5EIGdl dHMgZmxhZworICAoQT8gQj8pKyBCb3RoIGNoaWxkcmVuIG51bGxhYmxlIC0+IGJvZHkgbnVsbGFi bGUgLT4gRU5EIGdldHMgZmxhZworICAoQSB8IEIqKSBCKiBpcyBudWxsYWJsZSwgbWFraW5nIHRo ZSBBTFQgbnVsbGFibGUgLT4gRU5EIGdldHMgZmxhZworCitUaGUgZmxhZyB3b3JrcyBpbiBjb25q dW5jdGlvbiB3aXRoIHRoZSBlbXB0eSBtYXRjaCBjeWNsZSBkZXRlY3Rpb24KKyhlbGVtSWR4IHZp c2l0ZWQgYml0bWFwKS4gV2l0aG91dCB0aGlzIGZsYWcsIGN5Y2xlIGRldGVjdGlvbiBhbG9uZSB3 b3VsZAorY2F1c2UgbGVnaXRpbWF0ZSBtYXRjaGVzIHRvIGZhaWwuCisKK1Byb2JsZW0gZXhhbXBs ZTogKEEqKXsyLDN9CisgIC0gSXRlcmF0aW9uIDE6IEEqIGNvbnN1bWVzIGFsbCBhdmFpbGFibGUg cm93cyAtPiBjb3VudD0xLCBFTkQgcmVhY2hlZAorICAtIExvb3AtYmFjayBmb3IgaXRlcmF0aW9u IDI6IEEqIG1hdGNoZXMgemVybyByb3dzIC0+IEVORCByZWFjaGVkIGFnYWluCisgIC0gQ3ljbGUg ZGV0ZWN0aW9uIHNlZXMgdGhlIHNhbWUgZWxlbUlkeCBvbiB0aGUgc2FtZSByb3cgLT4gc3RhdGUg a2lsbGVkCisgIC0gY291bnQgbmV2ZXIgcmVhY2hlcyBtaW4oMikgLT4gbWF0Y2ggZmFpbHMgKGlu Y29ycmVjdCkKKworV2l0aCB0aGUgUlBSX0VMRU1fRU1QVFlfTE9PUCBmbGFnLCBuZmFfYWR2YW5j ZV9lbmQgY3JlYXRlcyB0d28gcGF0aHM6Cit0aGUgbm9ybWFsIGxvb3AtYmFjayAod2hpY2ggY3lj bGUgZGV0ZWN0aW9uIHdpbGwgZXZlbnR1YWxseSBraWxsKSBhbmQKK2EgZmFzdC1mb3J3YXJkIGV4 aXQgY2xvbmUgdGhhdCBieXBhc3NlcyB0aGUgbG9vcCBlbnRpcmVseS4KKyhTZWUgSVgtNChjKSBm b3IgZGV0YWlsZWQgcnVudGltZSBiZWhhdmlvci4pCisKK0lWLTUuIEFic29yYmFiaWxpdHkgQW5h bHlzaXMgKFJQUl9FTEVNX0FCU09SQkFCTEUpCisKK0NvbnRleHQgYWJzb3JwdGlvbiBpcyBhbiBv cHRpbWl6YXRpb24gdGVjaG5pcXVlIHRoYXQgcmVkdWNlcyBPKG5eMikgdG8gTyhuKS4KKyhSdW50 aW1lIGJlaGF2aW9yIGlzIGRlc2NyaWJlZCBpbiBDaGFwdGVyIFZJSUkuKQorCitUaGlzIHBoYXNl IGRldGVybWluZXMgd2hldGhlciB0aGUgcGF0dGVybiBoYXMgYSBzdHJ1Y3R1cmUgc3VpdGFibGUg Zm9yIHRoZQorYWJzb3JwdGlvbiBvcHRpbWl6YXRpb24gYW5kIHNldHMgZmxhZ3Mgb24gdGhlIHJl bGV2YW50IGVsZW1lbnRzOgorCisgIFJQUl9FTEVNX0FCU09SQkFCTEUgICAgICAgICBBYnNvcnB0 aW9uIGNvbXBhcmlzb24gcG9pbnQKKyAgUlBSX0VMRU1fQUJTT1JCQUJMRV9CUkFOQ0ggIEVsZW1l bnQgd2l0aGluIGFuIGFic29yYmFibGUgcmVnaW9uCisKK0VsaWdpYmlsaXR5IGNvbmRpdGlvbnM6 CisKKyAgKDEpIFNLSVAgUEFTVCBMQVNUIFJPVyAobm90IE5FWFQgUk9XKQorICAoMikgRnJhbWUg ZW5kIGlzIFVOQk9VTkRFRCBGT0xMT1dJTkcKKworU3RydWN0dXJhbCBjb25kaXRpb25zIChpc1Vu Ym91bmRlZFN0YXJ0ICsgY29tcHV0ZUFic29yYmFiaWxpdHlSZWN1cnNpdmUpOgorCisgIENhc2Ug MTogU2ltcGxlIFZBUisgKGUuZy4sIEErKQorICAgICAgICAgIC0+IEFCU09SQkFCTEUgfCBBQlNP UkJBQkxFX0JSQU5DSCBzZXQgb24gdGhlIFZBUgorICBDYXNlIDI6IEdST1VQKyB3aXRoIGZpeGVk LWxlbmd0aCBjaGlsZHJlbiAobWluID09IG1heCwgcmVjdXJzaXZlbHkpCisgICAgICAgICAgZS5n LiwgKEEgQikrLCAoQSBCezJ9KSssICgoQSAoQiBDKXsyfSl7Mn0pKworICAgICAgICAgIC0+IEFC U09SQkFCTEVfQlJBTkNIIG9uIGFsbCBlbGVtZW50cyB3aXRoaW4gdGhlIGdyb3VwLAorICAgICAg ICAgICAgIEFCU09SQkFCTEUgfCBBQlNPUkJBQkxFX0JSQU5DSCBvbiBFTkQKKworICAgICAgICAg IFdoeSB0aGlzIGlzIHNhZmU6IHdoZW4gZXZlcnkgY2hpbGQgaGFzIG1pbiA9PSBtYXgsIHRoZSBn cm91cAorICAgICAgICAgIGlzIHNlbWFudGljYWxseSBlcXVpdmFsZW50IHRvIHVucm9sbGluZyBp dHMgYm9keSBpbnRvIHsxLDF9CisgICAgICAgICAgZWxlbWVudHMuICBFLmcuLCAoQSBCezJ9KSsg YmVoYXZlcyBsaWtlIChBIEIgQikrLiAgRWFjaAorICAgICAgICAgIGl0ZXJhdGlvbiBjb25zdW1l cyBhIGZpeGVkIG51bWJlciBvZiByb3dzLCBzbyBhbiBlYXJsaWVyCisgICAgICAgICAgY29udGV4 dCdzIGNvdW50IGFsd2F5cyBkb21pbmF0ZXMgYSBsYXRlciBvbmUncyAobW9ub3RvbmljaXR5KS4K KworICBDYXNlIDM6IEdST1VQKyB3aG9zZSBib2R5IHN0YXJ0cyB3aXRoIFZBUisgKGUuZy4sIChB KyBCKSspCisgICAgICAgICAgLT4gUmVjdXJzZXMgZnJvbSBCRUdJTiBpbnRvIHRoZSBib2R5LCBh cHBseWluZyBDYXNlIDEuCisgICAgICAgICAgICBBQlNPUkJBQkxFIHwgQUJTT1JCQUJMRV9CUkFO Q0ggc2V0IG9uIEEuCisgICAgICAgICAgICBCIGFuZCBFTkQgZ2V0IG5vIGZsYWdzIC0+IGFic29y cHRpb24gc3RvcHMgb25jZSBwYXN0IEEuCisKK0Fic29yYmFiaWxpdHkgaXMgZGV0ZXJtaW5lZCBw ZXItZWxlbWVudCwgbm90IHBlci1wYXR0ZXJuLgorQWJzb3JwdGlvbiBjb21wYXJpc29uIGlzIHBl cmZvcm1lZCBvbmx5IHdoZW4gYSBzdGF0ZSByZXNpZGVzIGF0IGFuCitlbGVtZW50IHdpdGggdGhl IFJQUl9FTEVNX0FCU09SQkFCTEUgZmxhZy4gT25jZSBhIHN0YXRlIGxlYXZlcyB0aGUKK2ZsYWdn ZWQgcmVnaW9uLCBhYnNvcnB0aW9uIGlzIHBlcm1hbmVudGx5IGRpc2FibGVkIGZvciB0aGF0IHN0 YXRlLgorCitUaHJvdWdoIHRoaXMgbWVjaGFuaXNtLCB0aGUgcnVudGltZSBndWFyYW50ZWVzIG1v bm90b25pY2l0eToKKyJhIGNvbnRleHQgdGhhdCBzdGFydGVkIGVhcmxpZXIgYWx3YXlzIHN1YnN1 bWVzIGEgY29udGV4dCB0aGF0CitzdGFydGVkIGxhdGVyLiIKKworQ2hhcHRlciBWICBORkEgUnVu dGltZSBEYXRhIFN0cnVjdHVyZXMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworVi0xLiBSUFJORkFT dGF0ZSAtLSBORkEgU3RhdGUKKworQSBzaW5nbGUgTkZBIHN0YXRlIHJlcHJlc2VudHMgImhvdyBm YXIgdGhlIHBhdHRlcm4gaGFzIHByb2dyZXNzZWQuIgorCisgIEZpZWxkICAgICAgICAgRGVzY3Jp cHRpb24KKyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAgZWxlbUlkeCAgICAgICBJbmRleCBvZiB0aGUgY3VycmVudCBwYXR0ZXJu IGVsZW1lbnQKKyAgY291bnRzW10gICAgICBSZXBldGl0aW9uIGNvdW50IHBlciBncm91cCBkZXB0 aAorICBpc0Fic29yYmFibGUgIFdoZXRoZXIgdGhlIHN0YXRlIGlzIGluIGFuIGFic29yYmFibGUg cmVnaW9uCisgIG5leHQgICAgICAgICAgTmV4dCBzdGF0ZSBpbiB0aGUgbGlua2VkIGxpc3QKKwor VGhlIHNpemUgb2YgdGhlIGNvdW50cyBhcnJheSBpcyBycFBhdHRlcm4tPm1heERlcHRoICg9IG1h eGltdW0gZ3JvdXAKK25lc3RpbmcgZGVwdGggKyAxKSwgYWxsb2NhdGVkIGFzIGEgZmxleGlibGUg YXJyYXkgbWVtYmVyIGF0IHRoZSBlbmQgb2YKK3RoZSBzdHJ1Y3QuCisKK0V4YW1wbGU6IEluIFBB VFRFUk4gKChBIEIpKyBDKSwgYSBzdGF0ZSB3YWl0aW5nIGZvciBCIGluIHRoZSAzcmQgaXRlcmF0 aW9uCisKKyAgRWxlbWVudCBhcnJheTogWzA6QkVHSU4oZDApIDE6QShkMSkgMjpCKGQxKSAzOkVO RChkMCkgNDpDKGQwKSA1OkZJTl0KKworICBlbGVtSWR4ID0gMiAoQiwgZGVwdGggMSkKKyAgY291 bnRzWzBdID0gMiAoZGVwdGggMDogZGVwdGggb2YgRU5ELiBHcm91cCBjb21wbGV0ZWQgMiBpdGVy YXRpb25zKQorICBjb3VudHNbMV0gPSAxIChkZXB0aCAxOiBkZXB0aCBvZiBCLiBBIG1hdGNoZWQg aW4gY3VycmVudCBpdGVyYXRpb24pCisKKyAgQ291bnRzIGFyZSBpbmRleGVkIGJ5IGRlcHRoLCBu b3QgYnkgZWxlbUlkeC4KKyAgY291bnRzWzBdIGlzIGluY3JlbWVudGVkIHdoZW4gcGFzc2luZyB0 aHJvdWdoIEVORChkZXB0aCAwKSwKKyAgYW5kIHRoZSBncm91cCByZXBldGl0aW9uIGNvdW50IGlz IHByZXNlcnZlZCBldmVuIHdoZW4KKyAgdGhlIHN0YXRlIGlzIGF0IEIoZGVwdGggMSkuCisKK0Rl ZmluaXRpb24gb2YgdHdvIHN0YXRlcyBiZWluZyAiZXF1YWwiOgorCisgIFR3byBzdGF0ZXMgYXJl IGVxdWFsIGlmIHRoZXkgaGF2ZSB0aGUgc2FtZSBlbGVtSWR4IGFuZCB0aGUgc2FtZSBjb3VudHMK KyAgdXAgdG8gdGhlIGRlcHRoIG9mIHRoYXQgZWxlbWVudC4KKyAgbmZhX3N0YXRlc19lcXVhbCgp IGNvbXBhcmVzIGNvdW50c1swLi5lbGVtLT5kZXB0aF0gdXNpbmcgbWVtY21wLgorICBPbmx5IGNv dW50cyBhdCBvciBiZWxvdyB0aGUgZGVwdGggb2YgdGhlIGN1cnJlbnQgZWxlbWVudCBhcmUgbWVh bmluZ2Z1bC4KKworVi0yLiBSUFJORkFDb250ZXh0IC0tIE1hdGNoaW5nIENvbnRleHQKKworQSBz aW5nbGUgY29udGV4dCByZXByZXNlbnRzICJhIG1hdGNoaW5nIGF0dGVtcHQgc3RhcnRlZCBmcm9t IGEgc3BlY2lmaWMKK3N0YXJ0IHJvdy4iCisKKyAgRmllbGQgICAgICAgICAgICAgICAgIERlc2Ny aXB0aW9uCisgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICBzdGF0ZXMgICAgICAgICAgICAgICAgTGlua2VkIGxp c3Qgb2YgYWN0aXZlIE5GQSBzdGF0ZXMKKyAgbWF0Y2hTdGFydFJvdyAgICAgICAgIFJvdyBudW1i ZXIgd2hlcmUgbWF0Y2hpbmcgc3RhcnRlZAorICBtYXRjaEVuZFJvdyAgICAgICAgICAgUm93IG51 bWJlciB3aGVyZSBtYXRjaGluZyBjb21wbGV0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICgt MSBpZiBpbmNvbXBsZXRlKQorICBsYXN0UHJvY2Vzc2VkUm93ICAgICAgTGFzdCByb3cgcHJvY2Vz c2VkCisgIG1hdGNoZWRTdGF0ZSAgICAgICAgICBTdGF0ZSB0aGF0IHJlYWNoZWQgRklOIChmb3Ig Z3JlZWR5IGZhbGxiYWNrKQorICBoYXNBYnNvcmJhYmxlU3RhdGUgICAgV2hldGhlciB0aGlzIGNv bnRleHQgY2FuIGFic29yYiBvdGhlciBjb250ZXh0cworICBhbGxTdGF0ZXNBYnNvcmJhYmxlICAg V2hldGhlciB0aGlzIGNvbnRleHQgY2FuIGJlIGFic29yYmVkCisgIG5leHQsIHByZXYgICAgICAg ICAgICBEb3VibHktbGlua2VkIGxpc3QKKworU2luY2UgdGhlIE5GQSBpcyBub25kZXRlcm1pbmlz dGljLCBtdWx0aXBsZSBzdGF0ZXMgY2FuIGNvZXhpc3QKK3NpbXVsdGFuZW91c2x5IHdpdGhpbiBh IHNpbmdsZSBjb250ZXh0LgorCitFeGFtcGxlOiBJbiBQQVRURVJOIChBIHwgQikgQywgaWYgdGhl IGZpcnN0IHJvdyBtYXRjaGVzIGJvdGggQSBhbmQgQiwKK3R3byBzdGF0ZXMgY29leGlzdCB3aXRo aW4gdGhlIGNvbnRleHQ6CisKKyAgU3RhdGUgMTogZWxlbUlkeD0zICh3YWl0aW5nIGZvciBDLCB2 aWEgYnJhbmNoIEEpCisgIFN0YXRlIDI6IGVsZW1JZHg9MyAod2FpdGluZyBmb3IgQywgdmlhIGJy YW5jaCBCKQorCitJbiB0aGlzIGNhc2UsIHNpbmNlIHRoZSAoZWxlbUlkeCwgY291bnRzKSBvZiB0 aGUgdHdvIHN0YXRlcyBhcmUgZXF1YWwsCituZmFfYWRkX3N0YXRlX3VuaXF1ZSgpIHJldGFpbnMg b25seSBTdGF0ZSAxIChicmFuY2ggQSksIHdoaWNoIHdhcworYWRkZWQgZmlyc3QuCitCZWNhdXNl IERGUyBwcm9jZXNzZXMgdGhlIGZpcnN0IGJyYW5jaCBvZiBBTFQgZmlyc3QsIHRoZSBzdGF0ZSB2 aWEgQQoraXMgcmVnaXN0ZXJlZCBmaXJzdCwgYW5kIHRoZSBzdGF0ZSB2aWEgQiBpcyBkaXNjYXJk ZWQgYXMgYSBkdXBsaWNhdGUuCitUaGlzIGlzIHRoZSBwcmVmZXJtZW50IGd1YXJhbnRlZS4KKwor Vi0zLiBSUFIgRmllbGRzIG9mIFdpbmRvd0FnZ1N0YXRlCisKKyAgbmZhQ29udGV4dCAvIG5mYUNv bnRleHRUYWlsICAgRG91Ymx5LWxpbmtlZCBsaXN0IG9mIGFjdGl2ZSBjb250ZXh0cworICBuZmFD b250ZXh0RnJlZSAgICAgICAgICAgICAgICBSZXVzZSBwb29sIGZvciBjb250ZXh0cworICBuZmFT dGF0ZUZyZWUgICAgICAgICAgICAgICAgICBSZXVzZSBwb29sIGZvciBzdGF0ZXMKKyAgbmZhVmFy TWF0Y2hlZCAgICAgICAgICAgICAgICAgUGVyLXJvdyBjYWNoZTogdmFyTWF0Y2hlZFt2YXJJZF0K KyAgbmZhVmlzaXRlZEVsZW1zICAgICAgICAgICAgICAgQml0bWFwIGZvciBjeWNsZSBkZXRlY3Rp b24KKyAgbmZhU3RhdGVTaXplICAgICAgICAgICAgICAgICAgUHJlY29tcHV0ZWQgc2l6ZSBvZiBS UFJORkFTdGF0ZQorCitNZW1vcnkgbWFuYWdlbWVudDoKKworICBTdGF0ZXMgYW5kIGNvbnRleHRz IGFyZSBtYW5hZ2VkIHRocm91Z2ggdGhlaXIgb3duIGZyZWUgbGlzdHMuCisgIEluc3RlYWQgb2Yg cGFsbG9jLCB0aGV5IGFyZSBvYnRhaW5lZCBmcm9tIHRoZSByZXVzZSBwb29sLCBhbmQKKyAgcmV0 dXJuZWQgdG8gdGhlIHBvb2wgdXBvbiBkZWFsbG9jYXRpb24uCisgIFRoaXMgcmVkdWNlcyB0aGUg b3ZlcmhlYWQgb2YgZnJlcXVlbnQgYWxsb2NhdGlvbi9kZWFsbG9jYXRpb24uCisKK0NoYXB0ZXIg VkkgIE5GQSBFeGVjdXRpb246IDMtUGhhc2UgTW9kZWwKKz09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKwor VkktMS4gRW50cnkgUG9pbnQgYW5kIE92ZXJhbGwgRmxvdworCitXaGVuIHRoZSB3aW5kb3cgZnVu Y3Rpb24gcHJvY2Vzc2VzIGVhY2ggcm93LCByb3dfaXNfaW5fcmVkdWNlZF9mcmFtZSgpCitpcyBj YWxsZWQuIFRoaXMgZnVuY3Rpb24gZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjdXJyZW50IHJvdyBi ZWxvbmdzIHRvCithIG1hdGNoZWQgZnJhbWUsIGFuZCBpZiBuZWNlc3NhcnksIGNhbGxzIHVwZGF0 ZV9yZWR1Y2VkX2ZyYW1lKCkgdG8KK2RyaXZlIHRoZSBORkEuCisKK0Zsb3cgb2YgdXBkYXRlX3Jl ZHVjZWRfZnJhbWUoKToKKworICAoMSkgRmluZCBvciBjcmVhdGUgYSBjb250ZXh0IGZvciB0aGUg dGFyZ2V0IHJvdworICAoMikgRW50ZXIgdGhlIHJvdyBwcm9jZXNzaW5nIGxvb3AKKyAgKDMpIEFm dGVyIHRoZSBsb29wIGVuZHMsIHJlY29yZCB0aGUgbWF0Y2ggcmVzdWx0CisKK1BzZXVkb2NvZGUg b2YgdGhlIHJvdyBwcm9jZXNzaW5nIGxvb3A6CisKKyAgdGFyZ2V0Q3R4ID0gRXhlY1JQUkdldEhl YWRDb250ZXh0KHBvcykKKyAgaWYgdGFyZ2V0Q3R4ID09IE5VTEw6CisgICAgICB0YXJnZXRDdHgg PSBFeGVjUlBSU3RhcnRDb250ZXh0KHBvcykKKworICBmb3IgY3VycmVudFBvcyA9IHN0YXJ0UG9z OyB0YXJnZXRDdHgtPnN0YXRlcyAhPSBOVUxMOyBjdXJyZW50UG9zKys6CisgICAgICBpZiBub3Qg bmZhX2V2YWx1YXRlX3JvdyhjdXJyZW50UG9zKTogIC0tIHJvdyBkb2VzIG5vdCBleGlzdAorICAg ICAgICAgIEV4ZWNSUFJGaW5hbGl6ZUFsbENvbnRleHRzKCkgICAgICAtLSBmaW5hbGl6ZSBhbGwg Y29udGV4dHMKKyAgICAgICAgICBFeGVjUlBSQ2xlYW51cERlYWRDb250ZXh0cygpICAgICAgLS0g Y2xlYW4gdXAgYWZ0ZXIgZmluYWxpemF0aW9uCisgICAgICAgICAgYnJlYWsKKworICAgICAgRXhl Y1JQUlByb2Nlc3NSb3coY3VycmVudFBvcykgICAgICAgICAtLSAzLXBoYXNlIHByb2Nlc3NpbmcK KyAgICAgIEV4ZWNSUFJTdGFydENvbnRleHQoY3VycmVudFBvcyArIDEpICAgLS0gcHJlLWNyZWF0 ZSBuZXh0IHN0YXJ0IHBvaW50CisgICAgICBFeGVjUlBSQ2xlYW51cERlYWRDb250ZXh0cygpICAg ICAgICAgIC0tIHJlbW92ZSBkZWFkIGNvbnRleHRzCisKK0tleSBwb2ludDogUHJvY2Vzc2luZyBh IHNpbmdsZSByb3cgbWF5IHJlcXVpcmUgcHJvY2Vzc2luZyBtdWx0aXBsZSByb3dzCithaGVhZC4g RHVlIHRvIHRoZSBuYXR1cmUgb2Ygd2luZG93IGZ1bmN0aW9ucywgZGV0ZXJtaW5pbmcgdGhlIGZy YW1lIGZvcgorcm93IE4gcmVxdWlyZXMgbG9va2luZyBhdCByb3dzIGJleW9uZCBOLgorCitWSS0y LiBDb250ZXh0IENyZWF0aW9uOiBFeGVjUlBSU3RhcnRDb250ZXh0KCkKKworQ3JlYXRlcyBhIG5l dyBjb250ZXh0IGFuZCBwZXJmb3JtcyB0aGUgaW5pdGlhbCBhZHZhbmNlLgorCisgICgxKSBBbGxv Y2F0ZSBjb250ZXh0IHZpYSBuZmFfY29udGV4dF9hbGxvYygpCisgICgyKSBTZXQgbWF0Y2hTdGFy dFJvdyA9IHBvcworICAoMykgQ3JlYXRlIGluaXRpYWwgc3RhdGU6IGVsZW1JZHg9MCAoZmlyc3Qg cGF0dGVybiBlbGVtZW50KSwKKyAgICAgIGNvdW50cz1hbGwgemVybworICAoNCkgQ2FsbCBuZmFf YWR2YW5jZShpbml0aWFsQWR2YW5jZT10cnVlKQorCitUaGUgaW5pdGlhbCBhZHZhbmNlIGV4cGFu ZHMgZXBzaWxvbiB0cmFuc2l0aW9ucyBhdCB0aGUgYmVnaW5uaW5nIG9mCit0aGUgcGF0dGVybi4g Rm9yIGV4YW1wbGUsIHRoZSBpbml0aWFsIGFkdmFuY2UgZm9yIFBBVFRFUk4gKChBIHwgQikgQyk6 CisKKyAgU3RhcnQ6IGVsZW1JZHg9MCAoQUxUKQorICAgIC0+IEV4cGFuZCBBTFQgYnJhbmNoZXMK KyAgICAgIC0+IGVsZW1JZHg9MSAoQSkgLS0gVkFSLCBzbyBhZGQgc3RhdGU7IHN0b3AgaGVyZQor ICAgICAgLT4gZWxlbUlkeD0yIChCKSAtLSBWQVIsIHNvIGFkZCBzdGF0ZTsgc3RvcCBoZXJlCisK KyAgUmVzdWx0OiBUd28gc3RhdGVzIGluIHRoZSBjb250ZXh0IHt3YWl0aW5nIGZvciBBLCB3YWl0 aW5nIGZvciBCfQorCitEdXJpbmcgdGhlIGluaXRpYWwgYWR2YW5jZSwgcmVhY2hpbmcgRklOIGlz IG5vdCByZWNvcmRlZCBhcyBhIG1hdGNoLgorVGhpcyBpcyB0byBwcmV2ZW50IGVtcHR5IG1hdGNo ZXMuCisKK1ZJLTMuIFJvdyBFdmFsdWF0aW9uOiBuZmFfZXZhbHVhdGVfcm93KCkKKworRXZhbHVh dGVzIGFsbCB2YXJpYWJsZSBjb25kaXRpb25zIGluIHRoZSBERUZJTkUgY2xhdXNlIGF0IG9uY2Ug Zm9yCit0aGUgY3VycmVudCByb3cuCisKKyAgZm9yIGVhY2ggZGVmaW5lQ2xhdXNlW2ldOgorICAg ICAgcmVzdWx0ID0gRXhlY0V2YWxFeHByKGRlZmluZUNsYXVzZVtpXSkKKyAgICAgIHZhck1hdGNo ZWRbaV0gPSAobm90IG51bGwgYW5kIHRydWUpCisKK1RvIHN1cHBvcnQgcm93IG5hdmlnYXRpb24g b3BlcmF0b3JzIChQUkVWLCBORVhULCBGSVJTVCwgTEFTVCksCithIDEtc2xvdCBtb2RlbCBpcyB1 c2VkOiBvbmx5IGVjeHRfb3V0ZXJ0dXBsZSBpcyBzZXQgdG8gdGhlIGN1cnJlbnQKK3Jvdy4gIE5h dmlnYXRpb24gaXMgaGFuZGxlZCBieSBFRU9QX1JQUl9OQVZfU0VUL1JFU1RPUkUgb3Bjb2Rlcwor ZW1pdHRlZCBkdXJpbmcgREVGSU5FIGV4cHJlc3Npb24gY29tcGlsYXRpb246CisKKyAgTkFWX1NF VDogICAgIHNhdmUgZWN4dF9vdXRlcnR1cGxlLCBzd2FwIGluIHRhcmdldCByb3cgdmlhIG5hdl9z bG90CisgIChldmFsdWF0ZSk6ICBhcmd1bWVudCBleHByZXNzaW9uIHJlYWRzIGZyb20gc3dhcHBl ZCBzbG90CisgIE5BVl9SRVNUT1JFOiByZXN0b3JlIG9yaWdpbmFsIGVjeHRfb3V0ZXJ0dXBsZQor CitDb21wb3VuZCBuYXZpZ2F0aW9uIChQUkVWKEZJUlNUKCkpLCBORVhUKEZJUlNUKCkpLCBQUkVW KExBU1QoKSksCitORVhUKExBU1QoKSkpIGlzIGZsYXR0ZW5lZCBieSB0aGUgcGFyc2VyIGludG8g YSBzaW5nbGUgUlBSTmF2RXhwcgord2l0aCBhIGNvbXBvdW5kIGtpbmQgKFJQUl9OQVZfUFJFVl9G SVJTVCwgZXRjLikuICBUaGUgZXhlY3V0b3IKK2NvbXB1dGVzIHRoZSB0YXJnZXQgcG9zaXRpb24g aW4gdHdvIHN0ZXBzOiBmaXJzdCB0aGUgaW5uZXIgcmVmZXJlbmNlCitwb2ludCAobWF0Y2hfc3Rh cnQgKyBOIG9yIGN1cnJlbnRwb3MgLSBOKSB3aXRoIG1hdGNoLXJhbmdlIHZhbGlkYXRpb24sCit0 aGVuIHRoZSBvdXRlciBhZGp1c3RtZW50ICgrLy0gTSkgd2l0aCBwYXJ0aXRpb24tcmFuZ2UgdmFs aWRhdGlvbi4KK0lmIGVpdGhlciBzdGVwIGlzIG91dCBvZiByYW5nZSwgdGhlIHJlc3VsdCBpcyBO VUxMLgorCituYXZfc2xvdCBjYWNoZXMgdGhlIGxhc3QgZmV0Y2hlZCBwb3NpdGlvbiAobmF2X3Ns b3RfcG9zKSB0byBhdm9pZAorcmVkdW5kYW50IHR1cGxlc3RvcmUgbG9va3VwcyB3aGVuIG11bHRp cGxlIG5hdmlnYXRpb24gY2FsbHMgdGFyZ2V0Cit0aGUgc2FtZSByb3cuCisKK1RoZSB2YXJNYXRj aGVkIGFycmF5IGlzIHJlZmVyZW5jZWQgbGF0ZXIgaW4gUGhhc2UgMSAoTWF0Y2gpLgorCitWSS00 LiBQZXItQ29udGV4dCBSZS1ldmFsdWF0aW9uIChtYXRjaF9zdGFydC1kZXBlbmRlbnQgdmFyaWFi bGVzKQorCitERUZJTkUgdmFyaWFibGVzIHRoYXQgZGVwZW5kIG9uIG1hdGNoX3N0YXJ0ICh0aG9z ZSBjb250YWluaW5nIEZJUlNULAorTEFTVC13aXRoLW9mZnNldCwgb3IgY29tcG91bmQgUFJFVl9G SVJTVC9ORVhUX0ZJUlNUL1BSRVZfTEFTVC9ORVhUX0xBU1QpCithcmUgaWRlbnRpZmllZCBhdCBw bGFuIHRpbWUgdmlhIGRlZmluZU1hdGNoU3RhcnREZXBlbmRlbnQuICBUaGUgc2hhcmVkCitldmFs dWF0aW9uIGluIG5mYV9ldmFsdWF0ZV9yb3coKSB1c2VzIHRoZSBoZWFkIGNvbnRleHQncyBtYXRj aFN0YXJ0Um93Citmb3IgRklSU1QvTEFTVCBiYXNlIHBvc2l0aW9uLgorCitXaGVuIHByb2Nlc3Np bmcgYSBjb250ZXh0IHdob3NlIG1hdGNoU3RhcnRSb3cgZGlmZmVycyBmcm9tIHRoZSBzaGFyZWQK K3ZhbHVlLCBuZmFfcmVldmFsdWF0ZV9kZXBlbmRlbnRfdmFycygpIHRlbXBvcmFyaWx5IHNldHMg bmF2X21hdGNoX3N0YXJ0Cit0byB0aGF0IGNvbnRleHQncyBtYXRjaFN0YXJ0Um93IGFuZCByZS1l dmFsdWF0ZXMgb25seSB0aGUgZGVwZW5kZW50Cit2YXJpYWJsZXMuICBUaGUgb3JpZ2luYWwgbmF2 X21hdGNoX3N0YXJ0IGFuZCBjdXJyZW50cG9zIGFyZSBzYXZlZCBhbmQKK3Jlc3RvcmVkIGFmdGVy IHJlLWV2YWx1YXRpb24uCisKK1N1bW1hcnkgb2YgZXZhbHVhdGlvbiBzdHJhdGVneSBieSBuYXZp Z2F0aW9uIGNvbnRlbnQ6CisKKyAgTmF2aWdhdGlvbiBjb250ZW50ICAgICAgICAgICAgICAgZXZh bHVhdGlvbgorICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgIE5vIG5hdmlnYXRpb24gICAgICAgICAgICAgICAgICAgIHNoYXJlZCAob25j ZSBwZXIgcm93KQorICBQUkVWL05FWFQgb25seSAgICAgICAgICAgICAgICAgICBzaGFyZWQgKG9u Y2UgcGVyIHJvdykKKyAgTEFTVCAobm8gb2Zmc2V0KSAgICAgICAgICAgICAgICAgc2hhcmVkIChv bmNlIHBlciByb3cpCisgIExBU1QgKHdpdGggb2Zmc2V0KSAgICAgICAgICAgICAgIHBlci1jb250 ZXh0CisgIEZJUlNUIChhbnkpICAgICAgICAgICAgICAgICAgICAgIHBlci1jb250ZXh0CisgIENv bXBvdW5kIChpbm5lciBGSVJTVCkgICAgICAgICAgIHBlci1jb250ZXh0CisgIENvbXBvdW5kIChp bm5lciBMQVNULCBubyBvZmYuKSAgIHNoYXJlZCAob25jZSBwZXIgcm93KQorICBDb21wb3VuZCAo aW5uZXIgTEFTVCwgdy9vZmYuKSAgICBwZXItY29udGV4dAorCitWSS01LiBUdXBsZXN0b3JlIE1h cmsgYW5kIFRyaW0gKG5vZGVXaW5kb3dBZ2cuYykKKworTmF2aWdhdGlvbiBmdW5jdGlvbnMgcmVx dWlyZSBhY2Nlc3MgdG8gcGFzdCByb3dzIHZpYSB0aGUgdHVwbGVzdG9yZS4KK1RvIGFsbG93IHR1 cGxlc3RvcmVfdHJpbSgpIHRvIGZyZWUgcm93cyB0aGF0IGFyZSBubyBsb25nZXIgcmVhY2hhYmxl LAordGhlIHBsYW5uZXIgY29tcHV0ZXMgdHdvIG9mZnNldHMgKHNlZSBjb21wdXRlX25hdl9vZmZz ZXRzKToKKworICBuYXZNYXhPZmZzZXQgKE5hdiBNYXJrIExvb2tiYWNrKToKKyAgICBNYXhpbXVt IGJhY2t3YXJkIHJlYWNoIGZyb20gY3VycmVudHBvcy4gIENvbnRyaWJ1dGVkIGJ5IFBSRVYsCisg ICAgTEFTVC13aXRoLW9mZnNldCwgYW5kIGNvbXBvdW5kIFBSRVZfTEFTVC9ORVhUX0xBU1QuCisg ICAgTWFyayBwb3NpdGlvbjogY3VycmVudHBvcyAtIG5hdk1heE9mZnNldC4KKworICBuYXZGaXJz dE9mZnNldCAoTmF2IE1hcmsgTG9va2FoZWFkKToKKyAgICBNaW5pbXVtIGZvcndhcmQgb2Zmc2V0 IGZyb20gbWF0Y2hfc3RhcnQuICBDb250cmlidXRlZCBieSBGSVJTVAorICAgIGFuZCBjb21wb3Vu ZCBQUkVWX0ZJUlNUL05FWFRfRklSU1QuICBDYW4gYmUgbmVnYXRpdmUgd2hlbgorICAgIGNvbXBv dW5kIFBSRVZfRklSU1QgbG9va3MgYmVmb3JlIG1hdGNoX3N0YXJ0LgorICAgIE1hcmsgcG9zaXRp b246IG9sZGVzdF9jb250ZXh0LT5tYXRjaFN0YXJ0Um93ICsgbmF2Rmlyc3RPZmZzZXQuCisKK1Ro ZSBhY3R1YWwgbWFyayBpcyBzZXQgdG86IG1pbihsb29rYmFja19tYXJrLCBsb29rYWhlYWRfbWFy aykuCitUaGlzIGVuc3VyZXMgYWxsIHJvd3MgcmVhY2hhYmxlIGJ5IGFueSBuYXZpZ2F0aW9uIGZ1 bmN0aW9uIGFyZSByZXRhaW5lZC4KKworV2hlbiBvZmZzZXRzIGNvbnRhaW4gbm9uLWNvbnN0YW50 IGV4cHJlc3Npb25zIChQYXJhbSksIHRoZSBwbGFubmVyIHNldHMKK25hdk1heE9mZnNldEtpbmQv bmF2Rmlyc3RPZmZzZXRLaW5kIHRvIFJQUl9OQVZfT0ZGU0VUX05FRURTX0VWQUwgYW5kIHRoZQor ZXhlY3V0b3IgZXZhbHVhdGVzIHRoZW0gYXQgaW5pdCB0aW1lLiAgT24gb3ZlcmZsb3csIHRoZSBr aW5kIGlzIHNldCB0bworUlBSX05BVl9PRkZTRVRfUkVUQUlOX0FMTCwgZGlzYWJsaW5nIHRyaW0g Zm9yIHRoYXQgZGltZW5zaW9uLgorCitWSS02LiBFeGVjUlBSUHJvY2Vzc1JvdygpOiAzLVBoYXNl IFByb2Nlc3NpbmcKKworTkZBIHByb2Nlc3NpbmcgZm9yIGEgc2luZ2xlIHJvdyBpcyBkaXZpZGVk IGludG8gdGhyZWUgcGhhc2VzOgorCisgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSsKKyAgfCAgUGhhc2UgMTogTUFUQ0ggKGNvbnZlcmdlbmNlKSAgICAgICAg ICAgICAgfAorICB8ICBDb21wYXJlIHRoZSBjdXJyZW50IHJvdyBhZ2FpbnN0IGVhY2ggVkFSICB8 CisgIHwgIHN0YXRlLiBSZW1vdmUgc3RhdGVzIHRoYXQgZmFpbCB0byBtYXRjaC4gIHwKKyAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICB8ICBQaGFzZSAy OiBBQlNPUkIgKGFic29ycHRpb24pICAgICAgICAgICAgICB8CisgIHwgIE1lcmdlIGR1cGxpY2F0 ZSBjb250ZXh0cyB0byBwcmV2ZW50ICAgICAgIHwKKyAgfCAgc3RhdGUgZXhwbG9zaW9uLiAgICAg ICAgICAgICAgICAgICAgICAgICAgfAorICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8CisgIHwgIFBoYXNlIDM6IEFEVkFOQ0UgKGV4cGFuc2lvbikgICAgICAg ICAgICAgIHwKKyAgfCAgRXhwYW5kIGVwc2lsb24gdHJhbnNpdGlvbnMgdG8gcHJlcGFyZSAgICAg fAorICB8ICBmb3IgdGhlIG5leHQgcm93LiAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKworVGhpcyBvcmRl cmluZyBpcyBpbXBvcnRhbnQ6CisKKyAgLSBNYXRjaCBleGVjdXRlcyBmaXJzdCB0byAiY29uc3Vt ZSB0aGUgY3VycmVudCByb3cuIgorICAtIEFic29yYiBleGVjdXRlcyBpbW1lZGlhdGVseSBhZnRl ciBNYXRjaCwgd2hlbiBzdGF0ZXMgaGF2ZSBiZWVuIHVwZGF0ZWQuCisgIC0gQWR2YW5jZSBleGVj dXRlcyBsYXN0IHRvIHByZXBhcmUgInN0YXRlcyB3YWl0aW5nIGZvciB0aGUgbmV4dCByb3cuIgor CitDaGFwdGVyIFZJSSAgUGhhc2UgMTogTWF0Y2gKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworbmZh X21hdGNoKCkgaXRlcmF0ZXMgdGhyb3VnaCBlYWNoIHN0YXRlIGluIHRoZSBjb250ZXh0OgorCisg ICgxKSBDaGVjayB3aGV0aGVyIHRoZSBzdGF0ZSdzIGVsZW1JZHggaXMgYSBWQVIgZWxlbWVudAor ICAoMikgQ29tcGFyZSBhZ2FpbnN0IHRoZSBjdXJyZW50IHJvdyB1c2luZyBuZmFfZXZhbF92YXJf bWF0Y2goKQorICAoMykgTWF0Y2ggc3VjY2VzczogaW5jcmVtZW50IHJlcGV0aXRpb24gY291bnQs IHJldGFpbiBzdGF0ZQorICAoNCkgTWF0Y2ggZmFpbHVyZTogcmVtb3ZlIHN0YXRlCisKK01hdGNo IGRldGVybWluYXRpb24gKG5mYV9ldmFsX3Zhcl9tYXRjaCk6CisKKyAgSWYgdmFySWQgaXMgd2l0 aGluIHRoZSByYW5nZSBvZiBkZWZpbmVWYXJpYWJsZUxpc3Q6CisgICAgICBVc2UgdGhlIHZhbHVl IG9mIHZhck1hdGNoZWRbdmFySWRdCisKKyAgSWYgdmFySWQgZXhjZWVkcyB0aGUgcmFuZ2UgKHZh cmlhYmxlIG5vdCBkZWZpbmVkIGluIERFRklORSk6CisgICAgICBVbmNvbmRpdGlvbmFsbHkgdHJ1 ZSAobWF0Y2hlcyBhbGwgcm93cykKKworSW1tZWRpYXRlIGFkdmFuY2UgZm9yIHNpbXBsZSBWQVJz OgorCisgIEZvciBhIFZBUiB3aXRoIG1pbj0xLCBtYXg9MSB3aGVyZSB0aGUgbmV4dCBlbGVtZW50 IGlzIEVORCwKKyAgdGhlIE1hdGNoIHBoYXNlIHByb2Nlc3NlcyB0aHJvdWdoIEVORCBpbW1lZGlh dGVseS4KKyAgVGhpcyBpcyBuZWNlc3NhcnkgZm9yIGFjY3VyYXRlIHN0YXRlIGNvbXBhcmlzb24g aW4gUGhhc2UgMiAoQWJzb3JiKS4KKworICBFeGFtcGxlOiBJbiBQQVRURVJOICgoQSBCKSspLCB3 aGVuIEEgbWF0Y2hlcywgaXQgaW1tZWRpYXRlbHkgYWR2YW5jZXMKKyAgdG8gQiwgYW5kIHdoZW4g QiBtYXRjaGVzLCBpdCBpbW1lZGlhdGVseSBhZHZhbmNlcyB0aHJvdWdoIEVORCB0bworICBjb21w bGV0ZSB0aGUgZ3JvdXAgY291bnQuIFRoaXMgZW5hYmxlcyBhYnNvcnB0aW9uIGNvbXBhcmlzb24g d2l0aAorICBvdGhlciBjb250ZXh0cy4KKworQ2hhcHRlciBWSUlJICBQaGFzZSAyOiBBYnNvcmIg KENvbnRleHQgQWJzb3JwdGlvbikKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworVklJSS0xLiBQcm9i bGVtCisKK0luIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uLCBhIG5ldyBjb250ZXh0IGlzIHN0 YXJ0ZWQgZm9yIGVhY2ggcm93Citwcm9jZXNzZWQuCitBcHBseWluZyBQQVRURVJOIChBKykgdG8g MTAgcm93cyBwcm9kdWNlcyAxMCBjb250ZXh0cywKK2VhY2ggb2Ygd2hpY2ggdHJhY2tzIHN0YXRl IGluZGVwZW5kZW50bHkuCisKK0lmIHRoZXJlIGFyZSBOIHJvd3MsIHRoZSB0b3RhbCBudW1iZXIg b2Ygc3RhdGVzIGJlY29tZXMgTyhOXjIpOgorCisgIENvbnRleHQgMSAoc3RhcnRlZCBhdCByb3cg MSk6IGNhbiBtYXRjaCBBIHVwIHRvIE4gdGltZXMKKyAgQ29udGV4dCAyIChzdGFydGVkIGF0IHJv dyAyKTogY2FuIG1hdGNoIEEgdXAgdG8gTi0xIHRpbWVzCisgIC4uLgorICBDb250ZXh0IE4gKHN0 YXJ0ZWQgYXQgcm93IE4pOiBjYW4gbWF0Y2ggQSAxIHRpbWUKKworVklJSS0yLiBTb2x1dGlvbjog Q29udGV4dCBBYnNvcnB0aW9uCisKK0tleSBvYnNlcnZhdGlvbjogYSBjb250ZXh0IHN0YXJ0ZWQg ZWFybGllciBjb250YWlucworYWxsIG1hdGNoZXMgb2YgYSBsYXRlci1zdGFydGVkIGNvbnRleHQg KG1vbm90b25pY2l0eSBwcmluY2lwbGUpLgorCitJZiBDb250ZXh0IDEgc3RhcnRlZCBhdCByb3cg MSBhbmQgbWF0Y2hlZCBBIDUgdGltZXMsCit0aGUgc3RhdGUgd2hlcmUgQ29udGV4dCAyIChzdGFy dGVkIGF0IHJvdyAyKSBtYXRjaGVkIEEgNCB0aW1lcworaXMgYWxyZWFkeSBjb250YWluZWQgd2l0 aGluIENvbnRleHQgMS4KKworVGhlcmVmb3JlIENvbnRleHQgMiBjYW4gYmUgImFic29yYmVkIiBp bnRvIENvbnRleHQgMS4KKworVklJSS0zLiBBYnNvcnB0aW9uIENvbmRpdGlvbnMKKworUGxhbm5l ci10aW1lIHByZXJlcXVpc2l0ZXMgKGFsbCBtdXN0IGhvbGQgZm9yIGFic29ycHRpb24gdG8gYmUg ZW5hYmxlZCk6CisKKyAgKGEpIFNLSVAgUEFTVCBMQVNUIFJPVy4gIFNLSVAgVE8gTkVYVCBST1cg Y3JlYXRlcyBvdmVybGFwcGluZworICAgICAgY29udGV4dHMgdGhhdCBjYW5ub3QgYmUgc2FmZWx5 IGFic29yYmVkLgorICAoYikgVW5ib3VuZGVkIGZyYW1lIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRAorICAgICAgRk9MTE9XSU5HKS4gIExpbWl0ZWQgZnJhbWVzIGFwcGx5 IGRpZmZlcmVudGx5IHRvIGVhY2ggY29udGV4dCwKKyAgICAgIGJyZWFraW5nIHRoZSBtb25vdG9u aWNpdHkgcHJpbmNpcGxlLgorICAoYykgTm8gbWF0Y2hfc3RhcnQtZGVwZW5kZW50IG5hdmlnYXRp b24gaW4gREVGSU5FLgorCisgICAgICBNZWNoYW5pc206IGVhY2ggY29udGV4dCBoYXMgYSBkaWZm ZXJlbnQgbWF0Y2hTdGFydFJvdywgc28gRklSU1QKKyAgICAgIHJlc29sdmVzIHRvIGEgZGlmZmVy ZW50IHJvdyBmb3IgZWFjaCBjb250ZXh0IGF0IHRoZSBzYW1lCisgICAgICBjdXJyZW50cG9zLiAg QW4gZWFybGllciBjb250ZXh0J3MgREVGSU5FIHJlc3VsdCBubyBsb25nZXIKKyAgICAgIHN1YnN1 bWVzIGEgbGF0ZXIgb25lJ3MsIG1ha2luZyBjb3VudC1kb21pbmFuY2UgY29tcGFyaXNvbgorICAg ICAgaW52YWxpZC4gIFJhdGhlciB0aGFuIGNvbXBhcmluZyBtYXRjaFN0YXJ0Um93IGF0IHJ1bnRp bWUKKyAgICAgICh3aGljaCB3b3VsZCBjb21wbGljYXRlIHRoZSBhYnNvcmIgcGF0aCksIGFueSBt YXRjaF9zdGFydAorICAgICAgZGVwZW5kZW5jeSBkaXNhYmxlcyBhYnNvcnB0aW9uIGVudGlyZWx5 LgorCisgICAgICBOYXZpZ2F0aW9uIGNvbnRlbnQgICAgICAgICAgICAgIG1hdGNoX3N0YXJ0IGRl cC4gIGFic29ycHRpb24KKyAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgTm8gbmF2aWdhdGlvbiAgICAgICAgICAg ICAgICAgICBub25lICAgICAgICAgICAgICBzYWZlCisgICAgICBQUkVWL05FWFQgb25seSAgICAg ICAgICAgICAgICAgIG5vbmUgICAgICAgICAgICAgIHNhZmUKKyAgICAgIExBU1QgKG5vIG9mZnNl dCkgICAgICAgICAgICAgICAgbm9uZSAgICAgICAgICAgICAgc2FmZQorICAgICAgTEFTVCAod2l0 aCBvZmZzZXQpICAgICAgICAgICAgICBib3VuZGFyeSBjaGVjayAgICB1bnNhZmUKKyAgICAgIEZJ UlNUIChhbnkpICAgICAgICAgICAgICAgICAgICAgZGlyZWN0ICAgICAgICAgICAgdW5zYWZlCisg ICAgICBDb21wb3VuZCAoaW5uZXIgRklSU1QpICAgICAgICAgIGRpcmVjdCAgICAgICAgICAgIHVu c2FmZQorICAgICAgQ29tcG91bmQgKGlubmVyIExBU1QsIG5vIG9mZi4pICBub25lICAgICAgICAg ICAgICBzYWZlCisgICAgICBDb21wb3VuZCAoaW5uZXIgTEFTVCwgdy9vZmYuKSAgIGJvdW5kYXJ5 IGNoayAgICAgIHVuc2FmZQorCitSdW50aW1lIGNvbmRpdGlvbnMgKGV2YWx1YXRlZCBwZXIgY29u dGV4dCBwYWlyKToKKworICAoMSkgVGhlIHBhdHRlcm4gaXMgbWFya2VkIGFzIGlzQWJzb3JiYWJs ZSAoc2VlIElWLTUpCisgICgyKSBhbGxTdGF0ZXNBYnNvcmJhYmxlIG9mIHRoZSB0YXJnZXQgY29u dGV4dCBpcyB0cnVlCisgICgzKSBBbiBlYXJsaWVyIGNvbnRleHQgImNvdmVycyIgYWxsIHN0YXRl cyBvZiB0aGUgdGFyZ2V0CisKK0NvdmVyIGNvbmRpdGlvbiAobmZhX3N0YXRlc19jb3ZlcmVkKToK KworICBBIHN0YXRlIHdpdGggdGhlIHNhbWUgZWxlbUlkeCBleGlzdHMgaW4gdGhlIGVhcmxpZXIg Y29udGV4dCwKKyAgYW5kIHRoZSBjb3VudCBhdCB0aGF0IGRlcHRoIGlzIGdyZWF0ZXIgdGhhbiBv ciBlcXVhbCAtLSB0aGVuIGl0IGlzIGNvdmVyZWQuCisKK1ZJSUktNC4gRHVhbC1GbGFnIERlc2ln bgorCitUd28gYm9vbGVhbiBmbGFncyBtYWtlIHRoZSBhYnNvcnB0aW9uIGRlY2lzaW9uIGVmZmlj aWVudDoKKworICBoYXNBYnNvcmJhYmxlU3RhdGUgKG1vbm90b25pYzogb25seSB0cnVlLT5mYWxz ZSB0cmFuc2l0aW9uIHBvc3NpYmxlKQorICAgICJEb2VzIHRoaXMgY29udGV4dCBoYXZlIHRoZSBh YmlsaXR5IHRvIGFic29yYiBvdGhlciBjb250ZXh0cz8iCisgICAgdHJ1ZSBpZiBhdCBsZWFzdCBv bmUgYWJzb3JiYWJsZSBzdGF0ZSBleGlzdHMuCisgICAgVHJhbnNpdGlvbnMgdG8gZmFsc2Ugd2hl biBzdGF0ZXMgYXJlIHJlbW92ZWQgbGVhdmluZyBubyBhYnNvcmJhYmxlCisgICAgc3RhdGVzLgor ICAgIE9uY2UgZmFsc2UsIGl0IG5ldmVyIGJlY29tZXMgdHJ1ZSBhZ2Fpbi4KKworICBhbGxTdGF0 ZXNBYnNvcmJhYmxlIChkeW5hbWljOiBjYW4gZmx1Y3R1YXRlKQorICAgICJDYW4gdGhpcyBjb250 ZXh0IGJlIGFic29yYmVkPyIKKyAgICB0cnVlIGlmIGFsbCBzdGF0ZXMgYXJlIGluIGFuIGFic29y YmFibGUgcmVnaW9uLgorICAgIEJlY29tZXMgZmFsc2Ugd2hlbiBhIG5vbi1hYnNvcmJhYmxlIHN0 YXRlIGlzIGFkZGVkOyByZXZlcnRzIHRvIHRydWUKKyAgICB3aGVuIGl0IGlzIHJlbW92ZWQuCisK K1ZJSUktNS4gQWJzb3JwdGlvbiBPcmRlcgorCituZmFfYWJzb3JiX2NvbnRleHRzKCkgdHJhdmVy c2VzIGZyb20gdGFpbCAobmV3ZXN0KSB0byBoZWFkIChvbGRlc3QpLgorCisgIGZvciBjdHggPSB0 YWlsIHRvIGhlYWQ6CisgICAgICBpZiBjdHguYWxsU3RhdGVzQWJzb3JiYWJsZToKKyAgICAgICAg ICBmb3Igb2xkZXIgPSBjdHgucHJldiB0byBoZWFkOgorICAgICAgICAgICAgICBpZiBvbGRlci5o YXNBYnNvcmJhYmxlU3RhdGU6CisgICAgICAgICAgICAgICAgICBpZiBuZmFfc3RhdGVzX2NvdmVy ZWQob2xkZXIsIGN0eCk6CisgICAgICAgICAgICAgICAgICAgICAgZnJlZShjdHgpICAtLSBhYnNv cmJlZAorICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisKK1NpbmNlIGluc3BlY3Rpb24gc3Rh cnRzIGZyb20gdGhlIG5ld2VzdCBjb250ZXh0LCB0aGUgbW9zdCByZWNlbnRseSBzdGFydGVkCiso PSBoYXZpbmcgdGhlIHNob3J0ZXN0IG1hdGNoKSBjb250ZXh0IGlzIGFic29yYmVkIGZpcnN0Lgor CitDaGFwdGVyIElYICBQaGFzZSAzOiBBZHZhbmNlIChFcHNpbG9uIFRyYW5zaXRpb24gRXhwYW5z aW9uKQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorCitJWC0xLiBPdmVydmlldworCituZmFfYWR2YW5j ZSgpIGV4cGFuZHMgZXBzaWxvbiB0cmFuc2l0aW9ucyBmcm9tIGVhY2ggc3RhdGUgYWZ0ZXIgTWF0 Y2gsCitnZW5lcmF0aW5nICJuZXcgc3RhdGVzIHdhaXRpbmcgZm9yIHRoZSBuZXh0IHJvdy4iCisK K0FuIGVwc2lsb24gdHJhbnNpdGlvbiBpcyBhIHRyYW5zaXRpb24gdGhhdCBtb3ZlcyB3aXRob3V0 IGNvbnN1bWluZyBhIHJvdzoKKworICAtIEFMVDogYnJhbmNoIHRvIGVhY2ggYWx0ZXJuYXRpdmUK KyAgLSBCRUdJTjogZW50ZXIgZ3JvdXAgKG9yIHNraXAgaWYgbWluPTApCisgIC0gRU5EOiBsb29w LWJhY2sgd2l0aGluIGdyb3VwIChvciBleGl0IHdoZW4gY29uZGl0aW9uIGlzIG1ldCkKKyAgLSBG SU46IHJlY29yZCBtYXRjaCBjb21wbGV0aW9uCisgIC0gVkFSIGxvb3AvZXhpdDogcmVwZWF0L2V4 aXQgYWNjb3JkaW5nIHRvIHRoZSBxdWFudGlmaWVyCisKK0V4cGFuc2lvbiBzdG9wcyB1cG9uIHJl YWNoaW5nIGEgVkFSIGVsZW1lbnQsIGFuZCB0aGUgc3RhdGUgaXMgYWRkZWQuCitUaGlzIGlzIGJl Y2F1c2UgVkFSIGlzIHRoZSBlbGVtZW50IHRoYXQgIndpbGwgY29uc3VtZSB0aGUgbmV4dCByb3cu IgorCitJWC0yLiBQcm9jZXNzaW5nIE9yZGVyOiBERlMgYW5kIFByZWZlcm1lbnQKKworYWR2YW5j ZSBwcm9jZXNzZXMgc3RhdGVzIGluIGxleGljb2dyYXBoaWMgb3JkZXIsCitwZXJmb3JtaW5nIERl cHRoLUZpcnN0IFNlYXJjaCAoREZTKSBvbiBlYWNoIHN0YXRlLgorCitUaGlzIERGUyBvcmRlciBp cyB3aGF0IGd1YXJhbnRlZXMgdGhlIFNRTCBzdGFuZGFyZCdzICJwcmVmZXJtZW50IjoKKworICBU aGUgYnJhbmNoIHRoYXQgYXBwZWFycyBmaXJzdCBpbiB0aGUgUEFUVEVSTiB0ZXh0IHRha2VzIHBy ZWNlZGVuY2UuCisKK0V4YW1wbGU6IFBBVFRFUk4gKEEgfCBCKSBDCisKKyAgVGhlIGZpcnN0IGJy YW5jaCBBIG9mIHRoZSBBTFQgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHRoZSBzZWNvbmQgYnJhbmNo IEIuCisgIFdoZW4gYm90aCBBIGFuZCBCIGNhbiBtYXRjaCwgdGhlIG1hdGNoIHZpYSBBIGlzIHNl bGVjdGVkLgorCituZmFfYWRkX3N0YXRlX3VuaXF1ZSgpIHByZXZlbnRzIGR1cGxpY2F0ZSBhZGRp dGlvbiBvZiB0aGUgc2FtZSBzdGF0ZSwKK3NvIHRoZSBzdGF0ZSBhZGRlZCBmaXJzdCAoPSBmcm9t IHRoZSBwcmVmZXJyZWQgYnJhbmNoKSBpcyByZXRhaW5lZC4KKworSVgtMy4gUm91dGluZyBGdW5j dGlvbjogbmZhX3JvdXRlX3RvX2VsZW0oKQorCitBbGwgaW50ZXItZWxlbWVudCB0cmFuc2l0aW9u cyBpbiB0aGUgYWR2YW5jZSBwaGFzZSBnbyB0aHJvdWdoCituZmFfcm91dGVfdG9fZWxlbSgpLgor VGhpcyBmdW5jdGlvbiBicmFuY2hlcyBpdHMgYmVoYXZpb3IgYmFzZWQgb24gdGhlIHR5cGUgb2Yg dGhlIG5leHQgZWxlbWVudDoKKworICBJZiB0aGUgbmV4dCBlbGVtZW50IGlzIFZBUjoKKyAgICAo MSkgQWRkIHRoZSBzdGF0ZSB0byB0aGUgY29udGV4dCAobmZhX2FkZF9zdGF0ZV91bmlxdWUpCisg ICAgKDIpIElmIHRoZSBWQVIgaGFzIG1pbj0wLCBhbHNvIGFkZCBhIHNraXAgcGF0aCAocmVjdXJz ZSB2aWEgbmV4dCkKKyAgICAtPiBFeHBhbnNpb24gc3RvcHMgaGVyZSAoVkFSIGlzIHRoZSBlbGVt ZW50IHRoYXQgIndpbGwgY29uc3VtZSB0aGUgbmV4dAorICAgICAgIHJvdyIpCisKKyAgSWYgdGhl IG5leHQgZWxlbWVudCBpcyBub24tVkFSIChBTFQsIEJFR0lOLCBFTkQsIEZJTik6CisgICAgLT4g UmVjdXJzaXZlbHkgY2FsbCBuZmFfYWR2YW5jZV9zdGF0ZSgpIHRvIGNvbnRpbnVlIGV4cGFuc2lv bgorCitXaXRoIHRoaXMgc3RydWN0dXJlLCBhZHZhbmNlIHJlY3Vyc2l2ZWx5IGZvbGxvd3MgZXBz aWxvbiB0cmFuc2l0aW9ucwordW50aWwgcmVhY2hpbmcgYSBWQVIsIGNvbnNpc3RlbnRseSBzdG9w cGluZyBvbmx5IGF0IFZBUiBlbGVtZW50cy4KKworSVgtNC4gUGVyLUVsZW1lbnQgYWR2YW5jZSBC ZWhhdmlvcgorCisoYSkgQUxUIChuZmFfYWR2YW5jZV9hbHQpCisKKyAgVXBvbiBlbmNvdW50ZXJp bmcgYW4gQUxUIGVsZW1lbnQsIGFsbCBicmFuY2hlcyBhcmUgZXhwYW5kZWQgaW4gb3JkZXIuCisg IFRoZSBmaXJzdCBlbGVtZW50IG9mIGVhY2ggYnJhbmNoIGlzIGNvbm5lY3RlZCB2aWEgYSBqdW1w IHBvaW50ZXIuCisKKyAgaWR4PTAgKEFMVCkgLT4gYnJhbmNoIDEgc3RhcnQgKG5leHQpIC0+IGJy YW5jaCAyIHN0YXJ0IChqdW1wKSAtPiAuLi4KKworICBuZmFfYWR2YW5jZV9zdGF0ZSgpIGlzIHJl Y3Vyc2l2ZWx5IGNhbGxlZCBmb3IgZWFjaCBicmFuY2guCisKKyhiKSBCRUdJTiAobmZhX2FkdmFu Y2VfYmVnaW4pCisKKyAgSGFuZGxlcyBncm91cCBlbnRyeS4KKyAganVtcCBwb2ludHMgdG8gdGhl IGVsZW1lbnQgYWZ0ZXIgRU5EICg9IGZpcnN0IGVsZW1lbnQgb3V0c2lkZSB0aGUgZ3JvdXApLgor CisgIEdyZWVkeSAoZGVmYXVsdCk6CisgICAgKDEpIEVudGVyIHRoZSBncm91cCBib2R5IChtb3Zl IHZpYSBuZXh0LCByZXNldCB0aGUgY291bnQgYXQgdGhhdCBkZXB0aCkKKyAgICAoMikgSWYgbWlu PTAsIGFsc28gYWRkIGEgZ3JvdXAgc2tpcCBwYXRoIChtb3ZlIHZpYSBqdW1wKQorCisgIFJlbHVj dGFudDoKKyAgICBPcmRlciByZXZlcnNlZCAtLSBza2lwIHBhdGggZmlyc3QsIGdyb3VwIGVudHJ5 IHNlY29uZC4KKyAgICBJZiB0aGUgc2tpcCBwYXRoIHJlYWNoZXMgRklOLCB0aGUgZ3JvdXAgZW50 cnkgcGF0aCBpcyBub3QgZ2VuZXJhdGVkCisgICAgKHNob3J0ZXN0IG1hdGNoIHByZWZlcnJlZCku CisKKyhjKSBFTkQgKG5mYV9hZHZhbmNlX2VuZCkKKworICBIYW5kbGVzIGdyb3VwIHRlcm1pbmF0 aW9uLiBUaGlzIGlzIHRoZSBjb3JlIG9mIHRoZSByZXBldGl0aW9uIGxvZ2ljLgorCisgIExldCBj b3VudCBiZSB0aGUgY291bnQgYXQgdGhlIGN1cnJlbnQgZGVwdGg6CisKKyAgY291bnQgPCBtaW46 CisgICAgTG9vcC1iYWNrIChtb3ZlIHZpYSBqdW1wLCByZXBlYXQgdGhlIGdyb3VwIGJvZHkpCisK KyAgICBJZiB0aGUgUlBSX0VMRU1fRU1QVFlfTE9PUCBmbGFnIGlzIHNldDoKKyAgICAgIEluIGFk ZGl0aW9uIHRvIGxvb3AtYmFjaywgYWxzbyBhZGQgYSBmYXN0LWZvcndhcmQgZXhpdCBwYXRoLgor ICAgICAgVGhpcyBpcyBiZWNhdXNlIHRoZSBib2R5IG1heSBwcm9kdWNlIGFuIGVtcHR5IG1hdGNo LCBjYXVzaW5nIGNvdW50CisgICAgICB0byBuZXZlciByZWFjaCBtaW4uIGZhc3QtZm9yd2FyZCBy ZXNldHMgY291bnRzW2RlcHRoXSB0byAwCisgICAgICBhbmQgZXhpdHMgdmlhIG5leHQgKHRyZWF0 aW5nIHRoZSByZW1haW5pbmcgcmVxdWlyZWQgaXRlcmF0aW9ucworICAgICAgYXMgZW1wdHkgbWF0 Y2hlcykuCisKKyAgbWluIDw9IGNvdW50IDwgbWF4OgorICAgIEdyZWVkeTogbG9vcC1iYWNrIGZp cnN0LCBleGl0IHNlY29uZAorICAgIFJlbHVjdGFudDogZXhpdCBmaXJzdCwgbG9vcC1iYWNrIHNl Y29uZAorICAgICAgICAgICAgICAgSWYgdGhlIGV4aXQgcGF0aCByZWFjaGVzIEZJTiwgbG9vcC1i YWNrIGlzIG9taXR0ZWQuCisKKyAgY291bnQgPj0gbWF4OgorICAgIFVuY29uZGl0aW9uYWwgZXhp dCAobW92ZSB2aWEgbmV4dCkKKworICBPbiBleGl0OiByZXNldCBjb3VudHNbZGVwdGhdID0gMCwg YW5kIGlmIHRoZSBuZXh0IGVsZW1lbnQgaXMgYW4gb3V0ZXIgRU5ELAorICBpbmNyZW1lbnQgdGhl IGNvdW50IGF0IHRoZSBvdXRlciBkZXB0aC4KKworKGQpIFZBUiAobmZhX2FkdmFuY2VfdmFyKQor CisgIEhhbmRsZXMgcmVwZWF0L2V4aXQgZm9yIGEgVkFSIGVsZW1lbnQgd2l0aCBhIHF1YW50aWZp ZXIuCisKKyAgTGV0IGNvdW50IGJlIHRoZSBjb3VudCBhdCB0aGUgY3VycmVudCBkZXB0aDoKKwor ICBjb3VudCA8IG1pbjoKKyAgICBVbmNvbmRpdGlvbmFsIGxvb3AgKHN0YXkgYXQgdGhlIHNhbWUg ZWxlbUlkeCwgd2FpdCBmb3IgdGhlIG5leHQgcm93KQorCisgIG1pbiA8PSBjb3VudCA8IG1heDoK KyAgICBHcmVlZHk6IGxvb3AgZmlyc3QsIGV4aXQgKG5leHQpIHNlY29uZAorICAgIFJlbHVjdGFu dDogZXhpdCBmaXJzdCwgbG9vcCBzZWNvbmQKKyAgICAgICAgICAgICAgIElmIHRoZSBleGl0IHBh dGggcmVhY2hlcyBGSU4sIGxvb3AgaXMgb21pdHRlZC4KKworICBjb3VudCA+PSBtYXg6CisgICAg VW5jb25kaXRpb25hbCBleGl0IChtb3ZlIHZpYSBuZXh0KQorCisgIE9uIGV4aXQ6IHJlc2V0IGNv dW50c1tkZXB0aF0gPSAwLgorCisoZSkgRklOCisKKyAgTWF0Y2ggc3VjY2Vzcy4gVGhlIGN1cnJl bnQgc3RhdGUgaXMgbW92ZWQgdG8gbWF0Y2hlZFN0YXRlIGZvciByZWNvcmRpbmcsCisgIGFuZCBt YXRjaEVuZFJvdyBpcyBzZXQgdG8gdGhlIGN1cnJlbnQgcm93LgorCisgIFVwb24gcmVhY2hpbmcg RklOLCBhbGwgcmVtYWluaW5nIHVucHJvY2Vzc2VkIHN0YXRlcyBhcmUgcmVtb3ZlZAorICAoZWFy bHkgdGVybWluYXRpb24pLiBCeSBERlMgb3JkZXIsIHRoZSBwYXRoIHRoYXQgcmVhY2hlZCBGSU4g Zmlyc3QKKyAgaGFzIHRoZSBoaWdoZXN0IHByZWZlcm1lbnQsIHNvIHRoZSByZXN0IGFyZSBpbmZl cmlvciBwYXRocy4KKyAgVGhpcyBpcyB0aGUgY29yZSBtZWNoYW5pc20gdGhhdCBndWFyYW50ZWVz IHByZWZlcm1lbnQuCisKKyAgSW4gU0tJUCBQQVNUIExBU1QgUk9XIG1vZGUsIHVwb24gcmVhY2hp bmcgRklOLCBzdWJzZXF1ZW50IGNvbnRleHRzCisgIHRoYXQgc3RhcnRlZCB3aXRoaW4gdGhlIG1h dGNoIHJhbmdlIGFyZSBpbW1lZGlhdGVseSBwcnVuZWQuCisKK0lYLTUuIFN0YXRlIERlZHVwbGlj YXRpb246IG5mYV9hZGRfc3RhdGVfdW5pcXVlKCkKKworV2hlbiBhZGRpbmcgYSBuZXcgc3RhdGUg dG8gYSBjb250ZXh0LCBpdCBpcyBjb21wYXJlZCBhZ2FpbnN0IGV4aXN0aW5nCitzdGF0ZXM7Citp ZiBhbiBpZGVudGljYWwgc3RhdGUgYWxyZWFkeSBleGlzdHMsIGl0IGlzIG5vdCBhZGRlZC4KKwor Q29tcGFyaXNvbiBjcml0ZXJpYTogZWxlbUlkeCArIGNvdW50c1swLi5lbGVtLT5kZXB0aF0gKHNl ZSBWLTEpCisKK1RoaXMgZGVkdXBsaWNhdGlvbiBpcyB0aGUgY29yZSBtZWNoYW5pc20gdGhhdCBz dXBwcmVzc2VzIE5GQSBzdGF0ZQorZXhwbG9zaW9uLgorQmVjYXVzZSBERlMgb3JkZXIgY2F1c2Vz IHByZWZlcnJlZC1icmFuY2ggc3RhdGVzIHRvIGJlIGFkZGVkIGZpcnN0LAoraWRlbnRpY2FsIHN0 YXRlcyBmcm9tIGxvd2VyLXByaW9yaXR5IGJyYW5jaGVzIGFyZSBhdXRvbWF0aWNhbGx5IGRpc2Nh cmRlZC4KKworSVgtNi4gQ3ljbGUgRGV0ZWN0aW9uOiBuZmFWaXNpdGVkRWxlbXMKKworV2hlbiBh IGdyb3VwIGJvZHkgY2FuIHByb2R1Y2UgYW4gZW1wdHkgbWF0Y2gsCitsb29waW5nIGJhY2sgZnJv bSBFTkQgbWF5IGNhdXNlIGFuIGluZmluaXRlIGxvb3AuCisKK0V4YW1wbGU6IFBBVFRFUk4gKChB PykqKQorCisgIEE/IGhhcyBtaW49MCwgc28gaXQgY2FuIHBhc3MgdGhyb3VnaCB3aXRob3V0IG1h dGNoaW5nLgorICBJZiB0aGUgb3V0ZXIgZ3JvdXAgcmVwZWF0czogQkVHSU4gLT4gQT8gc2tpcCAt PiBFTkQgLT4gQkVHSU4gLT4gLi4uCisKK1RvIHByZXZlbnQgdGhpczoKKworICAoMSkgQXQgY29t cGlsZSB0aW1lOiBzZXQgdGhlIFJQUl9FTEVNX0VNUFRZX0xPT1AgZmxhZyBvbiB0aGUgRU5ECisg ICAgICBvZiBncm91cHMgd2hvc2UgYm9keSBpcyBudWxsYWJsZS4KKyAgICAgIFRoZSBydW50aW1l IGVmZmVjdCBvZiB0aGlzIGZsYWcgaXMgZGVzY3JpYmVkIGluIElYLTQoYyk6CisgICAgICB3aGVu IGNvdW50IDwgbWluLCBhIGZhc3QtZm9yd2FyZCBleGl0IHBhdGggaXMgYWRkZWQsCisgICAgICBy ZXNvbHZpbmcgdGhlIGRlYWRsb2NrIHdoZXJlIGNvdW50IGNhbm5vdCBpbmNyZWFzZSBkdWUgdG8g ZW1wdHkKKyAgICAgIG1hdGNoZXMuCisKKyAgKDIpIEF0IHJ1bnRpbWU6IGluaXRpYWxpemUgdGhl IG5mYVZpc2l0ZWRFbGVtcyBiaXRtYXAgaW1tZWRpYXRlbHkgYmVmb3JlCisgICAgICBERlMgZXhw YW5zaW9uIG9mIGVhY2ggc3RhdGUgd2l0aGluIGFkdmFuY2UgKG9uY2UgcGVyIHN0YXRlKS4KKyAg ICAgIER1cmluZyBERlMsIGVwc2lsb24gZWxlbWVudHMgKEVORCwgQUxULCBCRUdJTikgYXJlIG1h cmtlZCBpbiB0aGUKKyAgICAgIGJpdG1hcCBhdCBuZmFfYWR2YW5jZV9zdGF0ZSBlbnRyeS4gIFZB UiBlbGVtZW50cyBhcmUgbWFya2VkIGxhdGVyCisgICAgICB3aGVuIGFkZGVkIHRvIHRoZSBzdGF0 ZSBsaXN0IChuZmFfYWRkX3N0YXRlX3VuaXF1ZSksIHNvIHRoYXQKKyAgICAgIGxlZ2l0aW1hdGUg bG9vcC1iYWNrIHRvIHRoZSBzYW1lIFZBUiBpbiBhIG5ldyBncm91cCBpdGVyYXRpb24KKyAgICAg IChlLmcuLCBFTkQgLT4gQUxUIC0+IHNhbWUgVkFSKSBpcyBub3QgYmxvY2tlZC4KKyAgICAgIElm IGEgcHJldmlvdXNseSB2aXNpdGVkIGVsZW1JZHggaXMgcmV2aXNpdGVkLCB0aGF0IHBhdGggaXMg dGVybWluYXRlZC4KKworICBOb3RlOiB0aGUgYml0bWFwIHRyYWNrcyBvbmx5IGVsZW1JZHggYW5k IGRvZXMgbm90IGNvbnNpZGVyIGNvdW50cy4KKyAgVGhlcmVmb3JlLCBsZWdpdGltYXRlIHJldmlz aXRzIHRvIHRoZSBzYW1lIGVsZW1JZHggYnV0IHdpdGggZGlmZmVyZW50CisgIGNvdW50cyBtYXkg YWxzbyBiZSBibG9ja2VkLiAgVGhpcyBvbmx5IG9jY3VycyB3aGVuIHRoZSBncm91cCBib2R5IGlz CisgIG51bGxhYmxlIChhbGwgcGF0aHMgY2FuIG1hdGNoIGVtcHR5KSwgY2F1c2luZyBFTkQgLT4g bG9vcC1iYWNrIC0+CisgIHNraXAgLT4gRU5EIHdpdGhpbiBhIHNpbmdsZSBERlMuICBJbiBzdWNo IGNhc2VzIHRoZSBFTkQgZWxlbWVudCBoYXMKKyAgdGhlIFJQUl9FTEVNX0VNUFRZX0xPT1AgZmxh Zywgc28gdGhlIGZhc3QtZm9yd2FyZCBleGl0IChJWC00KGMpKQorICBwcm92aWRlcyBhbiBhbHRl cm5hdGl2ZSBwYXRoIHRoYXQgYnlwYXNzZXMgdGhlIGN5Y2xlLgorCitDaGFwdGVyIFggIE1hdGNo IFJlc3VsdCBQcm9jZXNzaW5nCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1gtMS4gTWF0Y2ggUmVz dWx0CisKK1JQUiB0cmFja3MgdGhlIGN1cnJlbnQgbWF0Y2ggcmVzdWx0IGFzIGEgc2luZ2xlIGVu dHJ5IGluIFdpbmRvd0FnZ1N0YXRlCit3aXRoIGZvdXIgZmllbGRzOiBycHJfbWF0Y2hfdmFsaWQs IHJwcl9tYXRjaF9tYXRjaGVkLCBycHJfbWF0Y2hfc3RhcnQsCithbmQgcnByX21hdGNoX2xlbmd0 aC4gIFdoZW4gcnByX21hdGNoX3ZhbGlkIGlzIHRydWUsIHRoZSBlbnRyeSBkZXNjcmliZXMKK3Ro ZSBtYXRjaCByZXN1bHQgZm9yIHRoZSBwb3NpdGlvbiBhdCBycHJfbWF0Y2hfc3RhcnQ6IHJwcl9t YXRjaF9tYXRjaGVkCitpbmRpY2F0ZXMgc3VjY2VzcyBvciBmYWlsdXJlLCBhbmQgcnByX21hdGNo X2xlbmd0aCBnaXZlcyB0aGUgbnVtYmVyIG9mCityb3dzIGNvbnN1bWVkLiAgQSBtYXRjaCB3aXRo IHJwcl9tYXRjaF9sZW5ndGggMCByZXByZXNlbnRzIGFuIGVtcHR5IG1hdGNoCisocGF0dGVybiBt YXRjaGVkIGJ1dCBjb25zdW1lZCBubyByb3dzKS4gIFdoZW4gcnByX21hdGNoX3ZhbGlkIGlzIGZh bHNlLAordGhlIHBvc2l0aW9uIGhhcyBub3QgYmVlbiBldmFsdWF0ZWQgeWV0IChSRl9OT1RfREVU RVJNSU5FRCkuCisKK0Egcm93J3Mgc3RhdHVzIGFnYWluc3QgdGhlIGN1cnJlbnQgbWF0Y2ggcmVz dWx0IGNhbiBiZSBvYnRhaW5lZCBieQorY2FsbGluZyBnZXRfcmVkdWNlZF9mcmFtZV9zdGF0dXMo KS4KKworWC0yLiBBRlRFUiBNQVRDSCBTS0lQCisKK0RldGVybWluZXMgdGhlIHN0YXJ0aW5nIHBv aW50IGZvciB0aGUgbmV4dCBtYXRjaCBhdHRlbXB0IGFmdGVyIGEgc3VjY2Vzc2Z1bAorbWF0Y2g6 CisKKyAgU0tJUCBUTyBORVhUIFJPVzoKKyAgICBOZXcgbWF0Y2ggYXR0ZW1wdCBiZWdpbnMgZnJv bSB0aGUgcm93IGFmdGVyIHRoZSBtYXRjaCBzdGFydCByb3cuCisgICAgT3ZlcmxhcHBpbmcgbWF0 Y2hlcyBhcmUgcG9zc2libGUuCisKKyAgU0tJUCBQQVNUIExBU1QgUk9XOgorICAgIE5ldyBtYXRj aCBhdHRlbXB0IGJlZ2lucyBmcm9tIHRoZSByb3cgYWZ0ZXIgdGhlIG1hdGNoIGVuZCByb3cuCisg ICAgT25seSBub24tb3ZlcmxhcHBpbmcgbWF0Y2hlcyBhcmUgcG9zc2libGUuCisKK1gtMy4gSU5J VElBTCB2cyBTRUVLCisKKyAgU3RhbmRhcmQgZGVmaW5pdGlvbiAoc2VjdGlvbiA2LjEyKToKKyAg SU5JVElBTDogImlzIHVzZWQgdG8gbG9vayBmb3IgYSBtYXRjaCB3aG9zZSBmaXJzdCByb3cgaXMg Ui4iCisgIFNFRUs6ICAgICJpcyB1c2VkIHRvIHBlcm1pdCBhIHNlYXJjaCBmb3IgdGhlIGZpcnN0 IG1hdGNoIGFueXdoZXJlCisgICAgICAgICAgIGZyb20gUiB0aHJvdWdoIHRoZSBlbmQgb2YgdGhl IGZ1bGwgd2luZG93IGZyYW1lLiIKKyAgSW4gZWl0aGVyIGNhc2UsIGlmIHRoZXJlIGlzIG5vIG1h dGNoLCB0aGUgcmVkdWNlZCB3aW5kb3cgZnJhbWUgaXMgZW1wdHkuCisgIFRoZSBkZWZhdWx0IGlz IElOSVRJQUwuCisKKyAgQ3VycmVudCBpbXBsZW1lbnRhdGlvbjoKKyAgU0VFSyBpcyBub3Qgc3Vw cG9ydGVkICh0aGUgcGFyc2VyIHJhaXNlcyBhbiBlcnJvcikuCisgIE9ubHkgSU5JVElBTCBpcyBz dXBwb3J0ZWQsIHNlYXJjaGluZyBvbmx5IGZvciBtYXRjaGVzIHN0YXJ0aW5nIGF0IGVhY2gKKyAg cm93IHBvc2l0aW9uIHBvcy4KKworWC00LiBCb3VuZGVkIEZyYW1lIEhhbmRsaW5nCisKKyAgV2hl biB0aGUgZnJhbWUgaXMgYm91bmRlZCAoZS5nLiwgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCA1CisgIEZPTExPV0lORyksIEV4ZWNSUFJQcm9jZXNzUm93IHJlY2VpdmVzIGhhc0xpbWl0ZWRG cmFtZT10cnVlIGFuZAorICBmcmFtZU9mZnNldCBpbmRpY2F0aW5nIHRoZSB1cHBlciBib3VuZC4g IEJlZm9yZSB0aGUgbWF0Y2ggcGhhc2UsCisgIGFueSBjb250ZXh0IHdob3NlIG1hdGNoIGhhcyBl eGNlZWRlZCB0aGUgZnJhbWUgYm91bmRhcnkKKyAgKGN1cnJlbnRQb3MgPj0gbWF0Y2hTdGFydFJv dyArIGZyYW1lT2Zmc2V0ICsgMSkgaXMgZmluYWxpemVkIGVhcmx5CisgIGJ5IGZvcmNpbmcgYSBt aXNtYXRjaC4gIFRoaXMgcHJldmVudHMgbWF0Y2hlcyBmcm9tIGV4dGVuZGluZyBiZXlvbmQKKyAg dGhlIHdpbmRvdyBmcmFtZS4gIFRoZSBzdW0gaXMgY2xhbXBlZCB0byBQR19JTlQ2NF9NQVggb24g b3ZlcmZsb3cuCisKKyAgTm90ZSB0aGF0IGJvdW5kZWQgZnJhbWVzIGFsc28gZGlzYWJsZSBjb250 ZXh0IGFic29ycHRpb24gYXQgdGhlCisgIHBsYW5uZXIgbGV2ZWwgKHNlZSBWSUlJLTMoYikpLCBz aW5jZSB0aGUgZnJhbWUgYm91bmRhcnkgYnJlYWtzIHRoZQorICBtb25vdG9uaWNpdHkgYXNzdW1w dGlvbiByZXF1aXJlZCBmb3IgY29ycmVjdCBhYnNvcnB0aW9uLgorCitDaGFwdGVyIFhJICBXb3Jr ZWQgRXhhbXBsZTogRnVsbCBFeGVjdXRpb24gVHJhY2UKKz09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKwor WEktMS4gUXVlcnkKKworICBTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLAorICAgICAgICAg Zmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdyBBUyBzdGFydF9wcmljZSwKKyAgICAgICAgIGxhc3Rf dmFsdWUocHJpY2UpIE9WRVIgdyBBUyBlbmRfcHJpY2UKKyAgRlJPTSBzdG9jaworICBXSU5ET1cg dyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBPUkRFUiBCWSB0ZGF0ZQorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVG SU5FIEEgQVMgcHJpY2UgPiBQUkVWKHByaWNlKSwKKyAgICAgICAgICAgQiBBUyBwcmljZSA8IFBS RVYocHJpY2UpCisgICk7CisKK1hJLTIuIERhdGEKKworICBSb3cjICAgIHRkYXRlICAgICAgIHBy aWNlCisgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIDAgICAgICAgMjAyNC0wMS0wMSAg MTAwCisgIDEgICAgICAgMjAyNC0wMS0wMiAgMTEwCisgIDIgICAgICAgMjAyNC0wMS0wMyAgMTIw CisgIDMgICAgICAgMjAyNC0wMS0wNCAgMTE1CisgIDQgICAgICAgMjAyNC0wMS0wNSAgMTMwCisK K1hJLTMuIENvbXBpbGF0aW9uIFJlc3VsdAorCisgIFBBVFRFUk4gKEErIEIpIC0+IHVuY2hhbmdl ZCBhZnRlciBvcHRpbWl6YXRpb24KKworICBpZHggIHZhcklkICBkZXB0aCAgbWluICBtYXggIG5l eHQgIGp1bXAKKyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg IDAgICBBKDApICAgMCAgICAgIDEgICAgSU5GICAxICAgICAtMSAgICAgQSsKKyAgIDEgICBCKDEp ICAgMCAgICAgIDEgICAgMSAgICAyICAgICAtMSAgICAgQgorICAgMiAgIEZJTiAgICAwICAgICAg MSAgICAxICAgIC0xICAgIC0xCisKKyAgREVGSU5FOiBBIC0+ICJwcmljZSA+IFBSRVYocHJpY2Up IiwgQiAtPiAicHJpY2UgPCBQUkVWKHByaWNlKSIKKyAgaXNBYnNvcmJhYmxlID0gdHJ1ZSAoQSsg aXMgYSBzaW1wbGUgdW5ib3VuZGVkIFZBUikKKworWEktNC4gRXhlY3V0aW9uIFRyYWNlCisKKy0t LSBSb3cgMCAocHJpY2U9MTAwKSAtLS0KKworICB1cGRhdGVfcmVkdWNlZF9mcmFtZSgwKSBjYWxs ZWQuCisKKyAgQ29udGV4dCBDMCBjcmVhdGVkIChtYXRjaFN0YXJ0Um93PTApLgorICBJbml0aWFs IGFkdmFuY2U6IGVsZW1JZHg9MChBKSAtPiBWQVIsIHNvIHN0YXRlIGlzIGFkZGVkLgorICBDMC5z dGF0ZXMgPSBbe2VsZW1JZHg9MCwgY291bnRzPVswXX1dCisKKyAgbmZhX2V2YWx1YXRlX3Jvdygw KToKKyAgICBBOiBwcmljZSgxMDApID4gUFJFVihwcmljZSkgLT4gbm8gUFJFViAtPiBmYWxzZQor ICAgIEI6IHByaWNlKDEwMCkgPCBQUkVWKHByaWNlKSAtPiBubyBQUkVWIC0+IGZhbHNlCisgICAg dmFyTWF0Y2hlZCA9IFtmYWxzZSwgZmFsc2VdCisKKyAgRXhlY1JQUlByb2Nlc3NSb3coMCk6Cisg ICAgUGhhc2UgMSAoTWF0Y2gpOiBBKDApIHN0YXRlIHZzIHZhck1hdGNoZWRbMF09ZmFsc2UgLT4g c3RhdGUgcmVtb3ZlZAorICAgIEMwLnN0YXRlcyA9IFtdIChlbXB0eSkKKworICAgIFBoYXNlIDIg KEFic29yYik6IHNraXBwZWQgKG5vIHN0YXRlcykKKyAgICBQaGFzZSAzIChBZHZhbmNlKTogc2tp cHBlZCAobm8gc3RhdGVzKQorCisgIEMwLnN0YXRlcyBpcyBlbXB0eSwgc28gdGhlIGxvb3AgdGVy bWluYXRlcy4KKyAgbWF0Y2hFbmRSb3cgPCBtYXRjaFN0YXJ0Um93IC0+IHVubWF0Y2hlZC4KKwor LS0tIFJvdyAxIChwcmljZT0xMTApIC0tLQorCisgIHVwZGF0ZV9yZWR1Y2VkX2ZyYW1lKDEpIGNh bGxlZC4KKworICBDb250ZXh0IEMxIGNyZWF0ZWQgKG1hdGNoU3RhcnRSb3c9MSkuCisgIEluaXRp YWwgYWR2YW5jZTogQzEuc3RhdGVzID0gW3tlbGVtSWR4PTAsIGNvdW50cz1bMF19XQorCisgIG5m YV9ldmFsdWF0ZV9yb3coMSk6CisgICAgQTogMTEwID4gUFJFVigxMDApIC0+IHRydWUKKyAgICBC OiAxMTAgPCBQUkVWKDEwMCkgLT4gZmFsc2UKKyAgICB2YXJNYXRjaGVkID0gW3RydWUsIGZhbHNl XQorCisgIEV4ZWNSUFJQcm9jZXNzUm93KDEpOgorICAgIFBoYXNlIDEgKE1hdGNoKTogQSgwKSBt YXRjaCBzdWNjZWVkcyAtPiBjb3VudHNbMF0rKyAtPiBjb3VudHM9WzFdCisgICAgQzEuc3RhdGVz ID0gW3tlbGVtSWR4PTAsIGNvdW50cz1bMV19XQorCisgICAgUGhhc2UgMyAoQWR2YW5jZSk6Cisg ICAgICBTdGF0ZSB7ZWxlbUlkeD0wLCBjb3VudHM9WzFdfTogQSsgKG1pbj0xLCBjb3VudD0xLCBt YXg9SU5GKQorICAgICAgICBjb3VudCA+PSBtaW4sIHNvOgorICAgICAgICBHcmVlZHkgLT4gbG9v cCBmaXJzdDoga2VlcCB7ZWxlbUlkeD0wLCBjb3VudHM9WzFdfQorICAgICAgICAgICAgICAgICAg ZXhpdDogcmVzZXQgY291bnRzWzBdPTAsIG5leHQoPTEpIC0+IHtlbGVtSWR4PTEsCisgICAgICAg ICAgICAgICAgICAgICAgICBjb3VudHM9WzBdfQorICAgIEMxLnN0YXRlcyA9IFt7ZWxlbUlkeD0w LCBjb3VudHM9WzFdfSwge2VsZW1JZHg9MSwgY291bnRzPVswXX1dCisKKy0tLSBSb3cgMiAocHJp Y2U9MTIwKSAtLS0KKworICBDb250ZXh0IEMyIGNyZWF0ZWQgKG1hdGNoU3RhcnRSb3c9MikuCisg IEluaXRpYWwgYWR2YW5jZTogQzIuc3RhdGVzID0gW3tlbGVtSWR4PTAsIGNvdW50cz1bMF19XQor CisgIG5mYV9ldmFsdWF0ZV9yb3coMik6CisgICAgQTogMTIwID4gUFJFVigxMTApIC0+IHRydWUK KyAgICBCOiAxMjAgPCBQUkVWKDExMCkgLT4gZmFsc2UKKyAgICB2YXJNYXRjaGVkID0gW3RydWUs IGZhbHNlXQorCisgIEMxIEV4ZWNSUFJQcm9jZXNzUm93KDIpOgorICAgIFBoYXNlIDEgKE1hdGNo KToKKyAgICAgIHtlbGVtSWR4PTAsIGNvdW50cz1bMV19OiBBIG1hdGNoZXMgLT4gY291bnRzPVsy XQorICAgICAge2VsZW1JZHg9MSwgY291bnRzPVswXX06IEIgZG9lcyBub3QgbWF0Y2ggLT4gcmVt b3ZlZAorICAgIEMxLnN0YXRlcyA9IFt7ZWxlbUlkeD0wLCBjb3VudHM9WzJdfV0KKworICBDMiBF eGVjUlBSUHJvY2Vzc1JvdygyKToKKyAgICBQaGFzZSAxIChNYXRjaCk6CisgICAgICB7ZWxlbUlk eD0wLCBjb3VudHM9WzBdfTogQSBtYXRjaGVzIC0+IGNvdW50cz1bMV0KKyAgICBDMi5zdGF0ZXMg PSBbe2VsZW1JZHg9MCwgY291bnRzPVsxXX1dCisKKyAgICBQaGFzZSAyIChBYnNvcmIpOgorICAg ICAgRG9lcyBDMSAoc3RhcnRlZCBlYXJsaWVyKSBjb3ZlciBDMj8KKyAgICAgICAgQzE6IHtlbGVt SWR4PTAsIGNvdW50cz1bMl19LCBDMjoge2VsZW1JZHg9MCwgY291bnRzPVsxXX0KKyAgICAgICAg U2FtZSBlbGVtSWR4LCBDMS5jb3VudHMgPj0gQzIuY291bnRzIC0+IGNvdmVyZWQKKyAgICAgIEMy IGFic29yYmVkLiAtPiByZW1vdmVkLgorCisgICAgUGhhc2UgMyAoQWR2YW5jZSk6CisgICAgICB7 ZWxlbUlkeD0wLCBjb3VudHM9WzJdfTogR3JlZWR5IC0+IGxvb3AgKyBleGl0CisgICAgICAgIExv b3A6IHtlbGVtSWR4PTAsIGNvdW50cz1bMl19CisgICAgICAgIEV4aXQ6IHJlc2V0IGNvdW50c1sw XT0wLCBuZXh0KD0xKSAtPiB7ZWxlbUlkeD0xLCBjb3VudHM9WzBdfQorICAgIEMxLnN0YXRlcyA9 IFt7ZWxlbUlkeD0wLCBjb3VudHM9WzJdfSwge2VsZW1JZHg9MSwgY291bnRzPVswXX1dCisKKyAg Q29udGV4dCBDMyBjcmVhdGVkIChtYXRjaFN0YXJ0Um93PTMpLgorCistLS0gUm93IDMgKHByaWNl PTExNSkgLS0tCisKKyAgbmZhX2V2YWx1YXRlX3JvdygzKToKKyAgICBBOiAxMTUgPiBQUkVWKDEy MCkgLT4gZmFsc2UKKyAgICBCOiAxMTUgPCBQUkVWKDEyMCkgLT4gdHJ1ZQorICAgIHZhck1hdGNo ZWQgPSBbZmFsc2UsIHRydWVdCisKKyAgRXhlY1JQUlByb2Nlc3NSb3coMyk6CisgICAgUGhhc2Ug MSAoTWF0Y2gpOgorICAgICAge2VsZW1JZHg9MCwgY291bnRzPVsyXX06IEEgZG9lcyBub3QgbWF0 Y2ggLT4gcmVtb3ZlZAorICAgICAge2VsZW1JZHg9MSwgY291bnRzPVswXX06IEIgbWF0Y2hlcyAt PiBjb3VudHM9WzFdCisgICAgQzEuc3RhdGVzID0gW3tlbGVtSWR4PTEsIGNvdW50cz1bMV19XQor CisgICAgUGhhc2UgMyAoQWR2YW5jZSk6CisgICAgICB7ZWxlbUlkeD0xLCBjb3VudHM9WzFdfTog QiAobWluPTEsIG1heD0xKQorICAgICAgICBjb3VudCgxKSA+PSBtYXgoMSkgLT4gdW5jb25kaXRp b25hbCBleGl0CisgICAgICAgIFJlc2V0IGNvdW50c1swXT0wLCBuZXh0ID0gMiAoRklOKQorICAg ICAgRklOIHJlYWNoZWQgLT4gbWF0Y2hFbmRSb3cgPSAzLCBtYXRjaGVkU3RhdGUgcmVjb3JkZWQu CisgICAgICBFYXJseSB0ZXJtaW5hdGlvbjogbm8gcmVtYWluaW5nIHN0YXRlcywgc28gY29tcGxl dGVkIGltbWVkaWF0ZWx5LgorICAgIEMxLnN0YXRlcyA9IFtdIChlbXB0eSBhZnRlciByZWFjaGlu ZyBGSU4pCisKKyAgQzEuc3RhdGVzIGlzIGVtcHR5IGFuZCBtYXRjaEVuZFJvdz0zID49IG1hdGNo U3RhcnRSb3c9MSAtPiBtYXRjaCBzdWNjZWVkcy4KKworICBycHJfbWF0Y2hfc3RhcnQgPSAxLCBy cHJfbWF0Y2hfbGVuZ3RoID0gMworCistLS0gUm93IDQgKHByaWNlPTEzMCkgLS0tCisKKyAgdXBk YXRlX3JlZHVjZWRfZnJhbWUoNCkgY2FsbGVkLgorICBDMyB3YXMgYWxyZWFkeSBjcmVhdGVkIGJ1 dCBtYXRjaFN0YXJ0Um93PTMsIHNvIGl0IGlzIG5vdCBhcHBsaWNhYmxlLgorICBOZXcgY29udGV4 dCBDNCBjcmVhdGVkIChtYXRjaFN0YXJ0Um93PTQpLgorCisgIG5mYV9ldmFsdWF0ZV9yb3coNCk6 CisgICAgQTogMTMwID4gUFJFVigxMTUpIC0+IHRydWUKKyAgICBCOiAxMzAgPCBQUkVWKDExNSkg LT4gZmFsc2UKKworICAuLi4gTm8gc3Vic2VxdWVudCByb3dzLCBzbyBFeGVjUlBSRmluYWxpemVB bGxDb250ZXh0cygpIGlzIGNhbGxlZC4KKyAgTWF0Y2ggaW5jb21wbGV0ZSAtPiB1bm1hdGNoZWQu CisKK1hJLTUuIEZpbmFsIFJlc3VsdAorCisgIFJvdyAwOiB1bm1hdGNoZWQgICAgIC0+IGZyYW1l ID0gdGhlIHJvdyBpdHNlbGYKKyAgUm93IDE6IG1hdGNoIGhlYWQgICAgLT4gZnJhbWUgPSByb3dz IDEgdGhyb3VnaCAzCisgIFJvdyAyOiBpbnNpZGUgbWF0Y2ggIC0+IHNraXBwZWQKKyAgUm93IDM6 IGluc2lkZSBtYXRjaCAgLT4gc2tpcHBlZAorICBSb3cgNDogdW5tYXRjaGVkICAgICAtPiBmcmFt ZSA9IHRoZSByb3cgaXRzZWxmCisKK0NoYXB0ZXIgWElJICBTdW1tYXJ5IG9mIEtleSBEZXNpZ24g RGVjaXNpb25zCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1hJSS0xLiBGbGF0IEFycmF5IHZzIFRy ZWUtQmFzZWQgTkZBCisKKyAgQ2hvaWNlOiBGbGF0IGFycmF5IChSUFJQYXR0ZXJuRWxlbWVudFtd KQorCisgIFJhdGlvbmFsZToKKyAgLSBDYWNoZS1mcmllbmRseTogMTYtYnl0ZSBmaXhlZCBzaXpl LCBjb250aWd1b3VzIG1lbW9yeQorICAtIEluZGV4LWJhc2VkIHJlZmVyZW5jZXM6IDItYnl0ZSBp bmRpY2VzIGluc3RlYWQgb2YgcG9pbnRlcnMKKyAgLSBFYXN5IHRvIHNlcmlhbGl6ZTogY2FuIHVz ZSBtZW1jcHkgd2hlbiBwYXNzaW5nIHRvIHBsYW4gbm9kZXMKKworWElJLTIuIEZvcndhcmQtb25s eSBFeGVjdXRpb24gdnMgQmFja3RyYWNraW5nCisKKyAgQ2hvaWNlOiBGb3J3YXJkLW9ubHkgKHN0 YXRlIHNldCB0cmFja2luZykKKworICBSYXRpb25hbGU6CisgIC0gQmFja3RyYWNraW5nIHRha2Vz IGV4cG9uZW50aWFsIHRpbWUgaW4gdGhlIHdvcnN0IGNhc2UKKyAgLSBORkEgc2ltdWxhdGlvbiBn dWFyYW50ZWVzIHBvbHlub21pYWwgdGltZQorICAtIERGUyBvcmRlciBuYXR1cmFsbHkgZ3VhcmFu dGVlcyBwcmVmZXJtZW50LgorICAgIEdyZWVkeS9yZWx1Y3RhbnQgcGVyIHF1YW50aWZpZXIgcmVx dWlyZXMgb25seSByZXZlcnNpbmcgdGhlIERGUyBvcmRlcgorICAtIFdpbmRvdyBmdW5jdGlvbnMg cmVjZWl2ZSBzb3J0ZWQgcm93cyBzZXF1ZW50aWFsbHkuCisgICAgRm9yd2FyZC1vbmx5IGZpdHMg ZGlyZWN0bHkgaW50byB0aGlzIHBpcGVsaW5lLAorICAgIHdoZXJlYXMgYmFja3RyYWNraW5nIHJl cXVpcmVzIHJlLWZldGNoaW5nIHByZXZpb3VzIHJvd3MKKyAgLSBERUZJTkUgY29uZGl0aW9ucyBh cmUgU1FMIGV4cHJlc3Npb25zIChQUkVWLCBSVU5OSU5HIGFnZ3JlZ2F0ZXMsIGV0Yy4pCisgICAg d2l0aCBoaWdoIHJlLWV2YWx1YXRpb24gY29zdC4gRm9yd2FyZC1vbmx5IHJlcXVpcmVzIG9ubHkg b25lIGV2YWx1YXRpb24KKyAgICBwZXIgcm93CisKK1hJSS0zLiBQZXItQ29udGV4dCBNYW5hZ2Vt ZW50CisKKyAgQ2hvaWNlOiBJbmRlcGVuZGVudCBjb250ZXh0IHBlciBzdGFydCByb3cKKworICBS YXRpb25hbGU6CisgIC0gU3VwcG9ydHMgb3ZlcmxhcHBpbmcgbWF0Y2hlcyB1bmRlciBTS0lQIFRP IE5FWFQgUk9XCisgIC0gRGV0ZXJtaW5lcyB0aGUgZnJhbWUgZm9yIGVhY2ggcm93IGluZGVwZW5k ZW50bHkKKyAgLSBBYnNvcnB0aW9uIG9wdGltaXphdGlvbiBjYW4gZWxpbWluYXRlIHJlZHVuZGFu dCBjb250ZXh0cyBpbiBPKG4pCisKK1hJSS00LiBNZW1vcnkgUG9vbCBNYW5hZ2VtZW50CisKKyAg Q2hvaWNlOiBDdXN0b20gZnJlZSBsaXN0CisKKyAgUmF0aW9uYWxlOgorICAtIE5GQSBzdGF0ZXMg YXJlIGNyZWF0ZWQgYW5kIGRlc3Ryb3llZCBpbiBsYXJnZSBudW1iZXJzIHBlciByb3cKKyAgLSBB dm9pZHMgcGFsbG9jL3BmcmVlIG92ZXJoZWFkCisgIC0gU3RhdGUgc2l6ZSBpcyB2YXJpYWJsZSAo Y291bnRzW10gYXJyYXkpLCBidXQgd2l0aGluIGEgc2luZ2xlIHF1ZXJ5CisgICAgbWF4RGVwdGgg aXMgZml4ZWQsIHNvIGFsbCBzdGF0ZXMgaGF2ZSB0aGUgc2FtZSBzaXplCisKK1hJSS01LiBFeGVj dXRpb24gT3B0aW1pemF0aW9uIFN1bW1hcnkKKworICBUaGUgZm9sbG93aW5nIG9wdGltaXphdGlv bnMgbWFrZSB0aGUgTkZBIHNpbXVsYXRpb24gcHJhY3RpY2FsLgorCisgIC0tIENvbXBpbGUtdGlt ZSAtLQorCisgICgxKSBBU1QgT3B0aW1pemF0aW9uIChJVi0zKQorCisgICAgU2ltcGxpZmllcyB0 aGUgQVNUIGJlZm9yZSBjb252ZXJ0aW5nIHRoZSBwYXR0ZXJuIHRvIGFuIE5GQS4KKyAgICBSZWR1 Y2VzIHRoZSBudW1iZXIgb2YgTkZBIGVsZW1lbnRzIHRocm91Z2ggY29uc2VjdXRpdmUgdmFyaWFi bGUKKyAgICBtZXJnaW5nIChBIEEgLT4gQXsyfSksIFNFUSBmbGF0dGVuaW5nLCBxdWFudGlmaWVy IG11bHRpcGxpY2F0aW9uLAorICAgIGFuZCBvdGhlciB0cmFuc2Zvcm1hdGlvbnMuCisKKyAgICBT aWduaWZpY2FuY2U6IFJlZHVjaW5nIHRoZSBlbGVtZW50IGNvdW50IGRpcmVjdGx5IHNocmlua3Mg dGhlIHN0YXRlCisgICAgc3BhY2UsIGRlY3JlYXNpbmcgdGhlIGNvc3Qgb2YgYWxsIHN1YnNlcXVl bnQgcnVudGltZSBwaGFzZXMgKG1hdGNoLAorICAgIGFic29yYiwgYWR2YW5jZSkuCisKKyAgLS0g UnVudGltZTogYWR2YW5jZSBwaGFzZSAtLQorCisgICgyKSBHcm91cCBTa2lwIChJWC00KGIpKQor CisgICAgQXQgdGhlIEJFR0lOIG9mIGEgZ3JvdXAgd2l0aCBtaW49MCwgdXNlcyBqdW1wIHRvIHNr aXAgdGhlIGVudGlyZQorICAgIGdyb3VwLiBNb3ZlcyBkaXJlY3RseSB0byB0aGUgZmlyc3QgZWxl bWVudCBvdXRzaWRlIHRoZSBncm91cCB3aXRob3V0CisgICAgZXhwbG9yaW5nIHRoZSBncm91cCBi b2R5LiBHcmVlZHkgZW50ZXJzIHRoZW4gc2tpcHM7IFJlbHVjdGFudCBza2lwcworICAgIHRoZW4g ZW50ZXJzLgorCisgICAgU2lnbmlmaWNhbmNlOiBGb3Igb3B0aW9uYWwgZ3JvdXBzIChtaW49MCks IGltbWVkaWF0ZWx5IGdlbmVyYXRlcworICAgIGEgc2tpcCBwYXRoIHdpdGhvdXQgZXhwbG9yaW5n IHRoZSBib2R5LCBhdm9pZGluZyB1bm5lY2Vzc2FyeSBERlMKKyAgICBleHBhbnNpb24uCisKKyAg KDMpIFN0YXRlIERlZHVwbGljYXRpb24gKElYLTUpCisKKyAgICBEdXJpbmcgYWR2YW5jZSwgREZT IG1heSBnZW5lcmF0ZSBzdGF0ZXMgd2l0aCB0aGUgc2FtZSAoZWxlbUlkeCwKKyAgICBjb3VudHMp IGNvbWJpbmF0aW9uIHRocm91Z2ggbXVsdGlwbGUgcGF0aHMuIEFkZGl0aW9uYWxseSwgZm9yCisg ICAgZ3JvdXAgYWJzb3JwdGlvbiwgbmZhX21hdGNoIHBlcmZvcm1zIGlubGluZSBhZHZhbmNlIGZy b20gYm91bmRlZAorICAgIFZBUnMgKGNvdW50ID49IG1heCkgd2l0aGluIHRoZSBhYnNvcmJhYmxl IHJlZ2lvbiAoQUJTT1JCQUJMRV9CUkFOQ0gpCisgICAgdGhyb3VnaCBFTkQgY2hhaW5zIHRvIHJl YWNoIHRoZSBqdWRnbWVudCBwb2ludCAoQUJTT1JCQUJMRSBFTkQpLgorICAgIFRoaXMgcHJvY2Vz cyBjYW4gYWxzbyBwcm9kdWNlIGR1cGxpY2F0ZSBzdGF0ZXMgcmVhY2hpbmcgdGhlIHNhbWUgRU5E LgorICAgIG5mYV9hZGRfc3RhdGVfdW5pcXVlKCkgYmxvY2tzIGR1cGxpY2F0ZSBhZGRpdGlvbiBv ZiBpZGVudGljYWwgc3RhdGVzCisgICAgaW4gYm90aCBjYXNlcy4KKworICAgIFNpZ25pZmljYW5j ZTogUHJldmVudHMgZXhwb25lbnRpYWwgZ3Jvd3RoIG9mIHRoZSBzdGF0ZSBjb3VudCBpbgorICAg IEFMVCBicmFuY2hlcyBhbmQgcXVhbnRpZmllciBleHBhbnNpb24uIFNpbmNlIERGUyBvcmRlciBj YXVzZXMgdGhlCisgICAgcHJlZmVycmVkIGJyYW5jaCdzIHN0YXRlIHRvIGJlIHJlZ2lzdGVyZWQg Zmlyc3QsIGlkZW50aWNhbCBzdGF0ZXMKKyAgICBmcm9tIGxvd2VyLXByaW9yaXR5IGJyYW5jaGVz IGFyZSBhdXRvbWF0aWNhbGx5IGRpc2NhcmRlZCwgdGhlcmVieQorICAgIGFsc28gZ3VhcmFudGVl aW5nIHByZWZlcm1lbnQuCisKKyAgKDQpIEN5Y2xlIERldGVjdGlvbiBhbmQgRmFzdC1Gb3J3YXJk IChJWC02LCBJWC00KGMpKQorCisgICAgV2hlbiBhIG51bGxhYmxlIGdyb3VwIGJvZHkgKGUuZy4s IEE/KSByZXBlYXRzIGVtcHR5IG1hdGNoZXMsCisgICAgdGhlIEVORCAtPiBCRUdJTiBsb29wLWJh Y2sgY2FuIGNvbnRpbnVlIGluZGVmaW5pdGVseS4KKworICAgIFR3byBtZWNoYW5pc21zIHJlc29s dmUgdGhpczoKKyAgICAtIEEgdmlzaXRlZCBiaXRtYXAgKG5mYVZpc2l0ZWRFbGVtcykgYmxvY2tz IHJldmlzaXRhdGlvbiBvZiB0aGUKKyAgICAgIHNhbWUgZWxlbWVudCwgcHJldmVudGluZyBpbmZp bml0ZSBsb29wcyAoc2FmZXR5KQorICAgIC0gQXQgYW4gRU5EIHdpdGggdGhlIFJQUl9FTEVNX0VN UFRZX0xPT1AgZmxhZyBzZXQsIHdoZW4KKyAgICAgIGNvdW50IDwgbWluLCB0aGUgcmVtYWluaW5n IHJlcXVpcmVkIGl0ZXJhdGlvbnMgYXJlIHRyZWF0ZWQgYXMKKyAgICAgIGVtcHR5IG1hdGNoZXMg YW5kIGEgZmFzdC1mb3J3YXJkIGV4aXQgcGF0aCBvdXQgb2YgdGhlIGdyb3VwIGlzCisgICAgICBh ZGRlZCAoY29ycmVjdG5lc3MpCisKKyAgICBTaWduaWZpY2FuY2U6IEN5Y2xlIGRldGVjdGlvbiBn dWFyYW50ZWVzIHRlcm1pbmF0aW9uLCBhbmQKKyAgICBmYXN0LWZvcndhcmQgZ3VhcmFudGVlcyB0 aGF0IHRoZSBtaW4gY29uZGl0aW9uIGlzIHNhdGlzZmllZC4KKyAgICBXaXRob3V0IHRoZXNlLCBw YXR0ZXJucyBjb250YWluaW5nIG51bGxhYmxlIGdyb3VwcyB3b3VsZCBmYWxsCisgICAgaW50byBp bmZpbml0ZSBsb29wcyBvciBmYWlsIHRvIG1hdGNoLgorCisgICg1KSBNYXRjaCBQcnVuaW5nIChJ WC00KGUpKQorCisgICAgV2hlbiBhIHN0YXRlIHJlYWNoZXMgRklOIGR1cmluZyBhZHZhbmNlLCBh bGwgcmVtYWluaW5nIHVucHJvY2Vzc2VkCisgICAgc3RhdGVzIG9mIHRoYXQgY29udGV4dCBhcmUg cmVtb3ZlZC4gQmVjYXVzZSBvZiBERlMgb3JkZXIsIHRoZSBwYXRoCisgICAgdGhhdCByZWFjaGVz IEZJTiBmaXJzdCBoYXMgdGhlIGhpZ2hlc3QgcHJlZmVybWVudCwgc28gdGhlIHJlbWFpbmluZwor ICAgIHBhdGhzIGFyZSBpbmZlcmlvci4KKworICAgIFNpZ25pZmljYW5jZTogT25jZSB0aGUgYmVz dCBtYXRjaCBpcyBkZXRlcm1pbmVkLCBleHBsb3JhdGlvbiBvZgorICAgIGluZmVyaW9yIHBhdGhz IGlzIGltbWVkaWF0ZWx5IHRlcm1pbmF0ZWQuIFRoaXMgbWVjaGFuaXNtIGFjaGlldmVzCisgICAg Ym90aCBwcmVmZXJtZW50IGd1YXJhbnRlZXMgYW5kIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbi4K KworICAtLSBSdW50aW1lOiBpbnRlci1jb250ZXh0IC0tCisKKyAgKDYpIEVhcmx5IFRlcm1pbmF0 aW9uIChTS0lQIFBBU1QgTEFTVCBST1cpCisKKyAgICBJbiBTS0lQIFBBU1QgTEFTVCBST1cgbW9k ZSwgd2hlbiBhIG1hdGNoIGlzIGZvdW5kLCBzdWJzZXF1ZW50CisgICAgY29udGV4dHMgd2hvc2Ug c3RhcnQgcm93cyBmYWxsIHdpdGhpbiB0aGUgbWF0Y2ggcmFuZ2UgYXJlIHBydW5lZAorICAgIGlt bWVkaWF0ZWx5IHdpdGhvdXQgZnVydGhlciBwcm9jZXNzaW5nLgorICAgIEluIFNLSVAgVE8gTkVY VCBST1cgbW9kZSwgb3ZlcmxhcHBpbmcgY29udGV4dHMgYXJlIHByZXNlcnZlZAorICAgIGJlY2F1 c2UgZWFjaCByb3cgcmVxdWlyZXMgaXRzIG93biBpbmRlcGVuZGVudCBtYXRjaC4KKworICAgIFNp Z25pZmljYW5jZTogUHJ1bmVzIHN1YnNlcXVlbnQgY29udGV4dHMgd2hvc2Ugc3RhcnQgcm93cyBv dmVybGFwCisgICAgd2l0aCBhIHByaW9yIG1hdGNoIHJhbmdlLCBhdm9pZGluZyB1bm5lY2Vzc2Fy eSBwcm9jZXNzaW5nLgorCisgICg3KSBDb250ZXh0IEFic29ycHRpb24gKENoYXB0ZXIgVklJSSkK KworICAgIElmIGFuIGluZGVwZW5kZW50IGNvbnRleHQgaXMgY3JlYXRlZCBmb3IgZWFjaCByb3cs IE8obl4yKSBzdGF0ZXMKKyAgICBhY2N1bXVsYXRlLiBCeSBleHBsb2l0aW5nIHRoZSBtb25vdG9u aWNpdHkgdGhhdCBhbiBlYXJsaWVyLXN0YXJ0ZWQKKyAgICBjb250ZXh0IHN1YnN1bWVzIHRoZSBz dGF0ZXMgb2YgYSBsYXRlci1zdGFydGVkIGNvbnRleHQsIHJlZHVuZGFudAorICAgIGNvbnRleHRz IGFyZSBlbGltaW5hdGVkIGVhcmx5LgorCisgICAgQWJzb3JiYWJpbGl0eSBpcyBkZXRlcm1pbmVk IHBlci1lbGVtZW50OyBjb21wYXJpc29uIGlzIHBlcmZvcm1lZAorICAgIG9ubHkgYXQgZWxlbWVu dHMgd2l0aCB0aGUgUlBSX0VMRU1fQUJTT1JCQUJMRSBmbGFnIChzZWUgSVYtNSkuCisKKyAgICBT aWduaWZpY2FuY2U6IEtlZXBzIHRoZSBudW1iZXIgb2YgYWN0aXZlIGNvbnRleHRzIGF0IGEgY29u c3RhbnQKKyAgICBsZXZlbCwgYWNoaWV2aW5nIE8obl4yKSAtPiBPKG4pIHRpbWUgY29tcGxleGl0 eS4gV2l0aG91dCB0aGlzLAorICAgIHBlcmZvcm1hbmNlIGRlZ3JhZGVzIHNoYXJwbHkgb24gbG9u ZyBwYXJ0aXRpb25zLgorCitBcHBlbmRpeCBBLiBLZXkgRnVuY3Rpb24gSW5kZXgKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKworICBGdW5jdGlvbiAgICAgICAgICAgICAgICAgICAgICBGaWxlICAgICAg ICAgICAgICAgICAgUm9sZQorICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICB0cmFuc2Zvcm1SUFIgICAg ICAgICAgICAgICAgICBwYXJzZV9ycHIuYyAgICAgICAgICAgUGFyc2VyIGVudHJ5IHBvaW50Cisg IHRyYW5zZm9ybURlZmluZUNsYXVzZSAgICAgICAgIHBhcnNlX3Jwci5jICAgICAgICAgICBERUZJ TkUgdHJhbnNmb3JtYXRpb24KKyAgY29sbGVjdFBhdHRlcm5WYXJpYWJsZXMgICAgICAgcnByLmMg ICAgICAgICAgICAgICAgIFZhcmlhYmxlIGNvbGxlY3Rpb24KKyAgYnVpbGREZWZpbmVWYXJpYWJs ZUxpc3QgICAgICAgcnByLmMgICAgICAgICAgICAgICAgIERFRklORSB2YXJpYWJsZSBsaXN0Cisg IGJ1aWxkUlBSUGF0dGVybiAgICAgICAgICAgICAgIHJwci5jICAgICAgICAgICAgICAgICBORkEg Y29tcGlsYXRpb24gbWFpbgorICBvcHRpbWl6ZVJQUlBhdHRlcm4gICAgICAgICAgICBycHIuYyAg ICAgICAgICAgICAgICAgQVNUIG9wdGltaXphdGlvbgorICBmaWxsUlBSUGF0dGVybiAgICAgICAg ICAgICAgICBycHIuYyAgICAgICAgICAgICAgICAgTkZBIGVsZW1lbnQgZ2VuZXJhdGlvbgorICBm aW5hbGl6ZVJQUlBhdHRlcm4gICAgICAgICAgICBycHIuYyAgICAgICAgICAgICAgICAgRmluYWxp emF0aW9uCisgIGNvbXB1dGVBYnNvcmJhYmlsaXR5ICAgICAgICAgIHJwci5jICAgICAgICAgICAg ICAgICBBYnNvcnB0aW9uIGFuYWx5c2lzCisgIHVwZGF0ZV9yZWR1Y2VkX2ZyYW1lICAgICAgICAg IG5vZGVXaW5kb3dBZ2cuYyAgICAgICBFeGVjdXRpb24gbWFpbiBsb29wCisgIG5mYV9ldmFsdWF0 ZV9yb3cgICAgICAgICAgICAgIG5vZGVXaW5kb3dBZ2cuYyAgICAgICBERUZJTkUgZXZhbHVhdGlv bgorICBFeGVjUlBSU3RhcnRDb250ZXh0ICAgICAgICAgICBleGVjUlBSLmMgICAgICAgICAgICAg Q29udGV4dCBjcmVhdGlvbgorICBFeGVjUlBSUHJvY2Vzc1JvdyAgICAgICAgICAgICBleGVjUlBS LmMgICAgICAgICAgICAgMy1waGFzZSBwcm9jZXNzaW5nCisgIG5mYV9tYXRjaCAgICAgICAgICAg ICAgICAgICAgIGV4ZWNSUFIuYyAgICAgICAgICAgICBQaGFzZSAxCisgIG5mYV9hYnNvcmJfY29u dGV4dHMgICAgICAgICAgIGV4ZWNSUFIuYyAgICAgICAgICAgICBQaGFzZSAyCisgIG5mYV9hZHZh bmNlICAgICAgICAgICAgICAgICAgIGV4ZWNSUFIuYyAgICAgICAgICAgICBQaGFzZSAzCisgIG5m YV9hZHZhbmNlX3N0YXRlICAgICAgICAgICAgIGV4ZWNSUFIuYyAgICAgICAgICAgICBQZXItc3Rh dGUgYnJhbmNoaW5nCisgIG5mYV9yb3V0ZV90b19lbGVtICAgICAgICAgICAgIGV4ZWNSUFIuYyAg ICAgICAgICAgICBFbGVtZW50IHJvdXRpbmcKKyAgbmZhX2FkdmFuY2VfYWx0ICAgICAgICAgICAg ICAgZXhlY1JQUi5jICAgICAgICAgICAgIEFMVCBoYW5kbGluZworICBuZmFfYWR2YW5jZV9iZWdp biAgICAgICAgICAgICBleGVjUlBSLmMgICAgICAgICAgICAgQkVHSU4gaGFuZGxpbmcKKyAgbmZh X2FkdmFuY2VfZW5kICAgICAgICAgICAgICAgZXhlY1JQUi5jICAgICAgICAgICAgIEVORCBoYW5k bGluZworICBuZmFfYWR2YW5jZV92YXIgICAgICAgICAgICAgICBleGVjUlBSLmMgICAgICAgICAg ICAgVkFSIGhhbmRsaW5nCisgIG5mYV9hZGRfc3RhdGVfdW5pcXVlICAgICAgICAgIGV4ZWNSUFIu YyAgICAgICAgICAgICBEZWR1cGxpY2F0aW9uCisgIG5mYV9zdGF0ZXNfY292ZXJlZCAgICAgICAg ICAgIGV4ZWNSUFIuYyAgICAgICAgICAgICBBYnNvcnB0aW9uIGNoZWNrCisgIG5mYV9yZWV2YWx1 YXRlX2RlcGVuZGVudF92YXJzIGV4ZWNSUFIuYyAgICAgICAgICAgICBQZXItY29udGV4dCByZS1l dmFsCisgIEV4ZWNSUFJHZXRIZWFkQ29udGV4dCAgICAgICAgIGV4ZWNSUFIuYyAgICAgICAgICAg ICBDb250ZXh0IGxvb2t1cAorICBFeGVjUlBSRnJlZUNvbnRleHQgICAgICAgICAgICBleGVjUlBS LmMgICAgICAgICAgICAgQ29udGV4dCBkZWFsbG9jYXRpb24KKyAgRXhlY1JQUkNsZWFudXBEZWFk Q29udGV4dHMgICAgZXhlY1JQUi5jICAgICAgICAgICAgIERlYWQgY29udGV4dCBjbGVhbnVwCisg IEV4ZWNSUFJGaW5hbGl6ZUFsbENvbnRleHRzICAgIGV4ZWNSUFIuYyAgICAgICAgICAgICBQYXJ0 aXRpb24tZW5kIGZpbmFsaXplCisgIEV4ZWNSUFJSZWNvcmRDb250ZXh0U3VjY2VzcyAgIGV4ZWNS UFIuYyAgICAgICAgICAgICBTdGF0czogbWF0Y2ggc3VjY2VzcworICBFeGVjUlBSUmVjb3JkQ29u dGV4dEZhaWx1cmUgICBleGVjUlBSLmMgICAgICAgICAgICAgU3RhdHM6IG1hdGNoIGZhaWx1cmUK KyAgY29tcHV0ZV9uYXZfb2Zmc2V0cyAgICAgICAgICAgY3JlYXRlcGxhbi5jICAgICAgICAgIFRy aW0gb2Zmc2V0IGNvbXB1dGF0aW9uCisKK0FwcGVuZGl4IEIuIERhdGEgU3RydWN0dXJlIFJlbGF0 aW9uc2hpcCBEaWFncmFtCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgUGFyc2VyIExheWVyCisg IC0tLS0tLS0tCisgIFJQQ29tbW9uU3ludGF4CisgICAgfC0tLSBycFNraXBUbzogUlBTa2lwVG8K KyAgICB8LS0tIGluaXRpYWw6IGJvb2wKKyAgICArLS0tIHJwUGF0dGVybjogUlBSUGF0dGVybk5v ZGUqICh0cmVlKQorICAgICAgICAgfC0tLSBub2RlVHlwZTogVkFSIHwgU0VRIHwgQUxUIHwgR1JP VVAKKyAgICAgICAgIHwtLS0gbWluLCBtYXg6IHF1YW50aWZpZXIKKyAgICAgICAgIHwtLS0gdmFy TmFtZTogdmFyaWFibGUgbmFtZSAoVkFSIG9ubHkpCisgICAgICAgICArLS0tIGNoaWxkcmVuOiBM aXN0KiAoU0VRL0FMVC9HUk9VUCBvbmx5KQorCisgIFBsYW5uZXIgTGF5ZXIKKyAgLS0tLS0tLS0t LQorICBXaW5kb3dBZ2cgKHBsYW4gbm9kZSkKKyAgICB8LS0tIHJwU2tpcFRvOiBSUFNraXBUbwor ICAgIHwtLS0gZGVmaW5lQ2xhdXNlOiBMaXN0PFRhcmdldEVudHJ5PgorICAgICstLS0gcnBQYXR0 ZXJuOiBSUFJQYXR0ZXJuKgorICAgICAgICAgfC0tLSBudW1WYXJzOiBpbnQKKyAgICAgICAgIHwt LS0gdmFyTmFtZXM6IGNoYXIqKgorICAgICAgICAgfC0tLSBtYXhEZXB0aDogUlBSRGVwdGgKKyAg ICAgICAgIHwtLS0gaXNBYnNvcmJhYmxlOiBib29sCisgICAgICAgICB8LS0tIG51bUVsZW1lbnRz OiBpbnQKKyAgICAgICAgICstLS0gZWxlbWVudHM6IFJQUlBhdHRlcm5FbGVtZW50W10gIChmbGF0 IGFycmF5KQorICAgICAgICAgICAgICB8LS0tIHZhcklkICAgICAgKDFCKQorICAgICAgICAgICAg ICB8LS0tIGRlcHRoICAgICAgKDFCKQorICAgICAgICAgICAgICB8LS0tIGZsYWdzICAgICAgKDFC KQorICAgICAgICAgICAgICB8LS0tIHJlc2VydmVkICAgKDFCKQorICAgICAgICAgICAgICB8LS0t IG1pbiwgbWF4ICAgKDRCICsgNEIpCisgICAgICAgICAgICAgICstLS0gbmV4dCwganVtcCAoMkIg KyAyQikKKworICBFeGVjdXRvciBMYXllcgorICAtLS0tLS0tLS0tCisgIFdpbmRvd0FnZ1N0YXRl CisgICAgfC0tLSBycFNraXBUbzogUlBTa2lwVG8gKEFGVEVSIE1BVENIIFNLSVAgbW9kZSkKKyAg ICB8LS0tIHJwUGF0dGVybjogUlBSUGF0dGVybiogKGNvcGllZCBmcm9tIHBsYW4pCisgICAgfC0t LSBkZWZpbmVWYXJpYWJsZUxpc3Q6IExpc3Q8U3RyaW5nPiAodmFyaWFibGUgbmFtZXMsIERFRklO RSBvcmRlcikKKyAgICB8LS0tIGRlZmluZUNsYXVzZUxpc3Q6IExpc3Q8RXhwclN0YXRlPgorICAg IHwtLS0gbmZhVmFyTWF0Y2hlZDogYm9vbFtdIChwZXItcm93IGNhY2hlKQorICAgIHwtLS0gbmZh VmlzaXRlZEVsZW1zOiBiaXRtYXB3b3JkKiAoY3ljbGUgZGV0ZWN0aW9uKQorICAgIHwtLS0gbmZh U3RhdGVTaXplOiBTaXplIChwcmUtY2FsY3VsYXRlZCBSUFJORkFTdGF0ZSBhbGxvY2F0aW9uIHNp emUpCisgICAgfC0tLSBuZmFDb250ZXh0IDwtPiBuZmFDb250ZXh0VGFpbCAoZG91Ymx5LWxpbmtl ZCBsaXN0KQorICAgIHwgICArLS0tIFJQUk5GQUNvbnRleHQKKyAgICB8ICAgICAgIHwtLS0gc3Rh dGVzOiBSUFJORkFTdGF0ZSogKGxpbmtlZCBsaXN0KQorICAgIHwgICAgICAgfCAgIHwtLS0gZWxl bUlkeAorICAgIHwgICAgICAgfCAgIHwtLS0gY291bnRzW10KKyAgICB8ICAgICAgIHwgICArLS0t IGlzQWJzb3JiYWJsZQorICAgIHwgICAgICAgfC0tLSBtYXRjaFN0YXJ0Um93LCBtYXRjaEVuZFJv dworICAgIHwgICAgICAgfC0tLSBsYXN0UHJvY2Vzc2VkUm93CisgICAgfCAgICAgICB8LS0tIG1h dGNoZWRTdGF0ZSAoY2xvbmVkIG9uIEZJTiBhcnJpdmFsKQorICAgIHwgICAgICAgfC0tLSBoYXNB YnNvcmJhYmxlU3RhdGUKKyAgICB8ICAgICAgICstLS0gYWxsU3RhdGVzQWJzb3JiYWJsZQorICAg IHwtLS0gbmZhQ29udGV4dEZyZWUgKHJlY3ljbGluZyBwb29sKQorICAgICstLS0gbmZhU3RhdGVG cmVlIChyZWN5Y2xpbmcgcG9vbCkKKworQXBwZW5kaXggQy4gTkZBIEVsZW1lbnQgQXJyYXkgRXhh bXBsZXMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworQy0xLiBQQVRURVJOIChBIEIgQykKKworICBp ZHggIHZhcklkICBkZXB0aCAgbWluICBtYXggIG5leHQgIGp1bXAKKyAgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAwICAgQSAgICAgIDAgICAgICAxICAgIDEg ICAgMSAgICAgLTEKKyAgIDEgICBCICAgICAgMCAgICAgIDEgICAgMSAgICAyICAgICAtMQorICAg MiAgIEMgICAgICAwICAgICAgMSAgICAxICAgIDMgICAgIC0xCisgICAzICAgRklOICAgIDAgICAg ICAxICAgIDEgICAgLTEgICAgLTEKKworQy0yLiBQQVRURVJOIChBKyBCKikKKworICBpZHggIHZh cklkICBkZXB0aCAgbWluICBtYXggIG5leHQgIGp1bXAgIGZsYWdzCisgIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICAgMCAgIEEgICAgICAwICAgICAgMSAgICBJTkYgIDEgICAgIC0xICAgIEFCU09SQkFCTEUg fCBBQlNPUkJBQkxFX0JSQU5DSAorICAgMSAgIEIgICAgICAwICAgICAgMCAgICBJTkYgIDIgICAg IC0xCisgICAyICAgRklOICAgIDAgICAgICAxICAgIDEgICAgLTEgICAgLTEKKworICBPbmx5IEEr IGlzIHRoZSBhYnNvcnB0aW9uIHBvaW50IChDYXNlIDEpLiBPbmNlIHBhc3QgQSwKKyAgYWJzb3Jw dGlvbiBpcyBwZXJtYW5lbnRseSBkaXNhYmxlZCBmb3IgdGhhdCBzdGF0ZS4KKworQy0zLiBQQVRU RVJOIChBIHwgQiB8IEMpCisKKyAgaWR4ICB2YXJJZCAgZGVwdGggIG1pbiAgbWF4ICBuZXh0ICBq dW1wCisgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIDAgICBB TFQgICAgMCAgICAgIDEgICAgMSAgICAxICAgICAtMSAgICBhbHRlcm5hdGlvbiBzdGFydAorICAg MSAgIEEgICAgICAxICAgICAgMSAgICAxICAgIDQgICAgIDIgICAgIGJyYW5jaCAxIC0+IEZJTiwg anVtcCAtPiBicmFuY2ggMgorICAgMiAgIEIgICAgICAxICAgICAgMSAgICAxICAgIDQgICAgIDMg ICAgIGJyYW5jaCAyIC0+IEZJTiwganVtcCAtPiBicmFuY2ggMworICAgMyAgIEMgICAgICAxICAg ICAgMSAgICAxICAgIDQgICAgIC0xICAgIGJyYW5jaCAzIC0+IEZJTgorICAgNCAgIEZJTiAgICAw ICAgICAgMSAgICAxICAgIC0xICAgIC0xCisKK0MtNC4gUEFUVEVSTiAoKEEgQikrIEMpCisKKyAg aWR4ICB2YXJJZCAgICBkZXB0aCAgbWluICBtYXggIG5leHQgIGp1bXAgIGZsYWdzCisgIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgICAwICAgQkVHSU4gICAgMCAgICAgIDEgICAgSU5GICAxICAgICA0ICAg ICBBQlNPUkJBQkxFX0JSQU5DSAorICAgMSAgIEEgICAgICAgIDEgICAgICAxICAgIDEgICAgMiAg ICAgLTEgICAgQUJTT1JCQUJMRV9CUkFOQ0gKKyAgIDIgICBCICAgICAgICAxICAgICAgMSAgICAx ICAgIDMgICAgIC0xICAgIEFCU09SQkFCTEVfQlJBTkNICisgICAzICAgRU5EICAgICAgMCAgICAg IDEgICAgSU5GICA0ICAgICAxICAgICBBQlNPUkJBQkxFIHwgQUJTT1JCQUJMRV9CUkFOQ0gKKyAg IDQgICBDICAgICAgICAwICAgICAgMSAgICAxICAgIDUgICAgIC0xCisgICA1ICAgRklOICAgICAg MCAgICAgIDEgICAgMSAgICAtMSAgICAtMQorCisgIENhc2UgMjogR1JPVVArIHdpdGggezEsMX0g Ym9keSBWQVJzLiBBLCBCIGFyZSBicmFuY2hlczsKKyAgRU5EIGlzIHRoZSBhYnNvcnB0aW9uIHBv aW50LiBDb21wYXJlIHdpdGggQy02IChDYXNlIDMpLgorCitDLTUuIFBBVFRFUk4gKChBIHwgQikr PyBDKQorCisgIGlkeCAgdmFySWQgICAgZGVwdGggIG1pbiAgbWF4ICAgbmV4dCAganVtcCAgZmxh Z3MKKyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICAgMCAgIEJFR0lOICAgIDAgICAgICAxICAgIElORiAgIDEgICAg IDUgICAgIFJFTFVDVEFOVCwgZ3JvdXAgc3RhcnQKKyAgIDEgICBBTFQgICAgICAxICAgICAgMSAg ICAxICAgICAyICAgICAtMSAgICBhbHRlcm5hdGlvbiBzdGFydAorICAgMiAgIEEgICAgICAgIDIg ICAgICAxICAgIDEgICAgIDQgICAgIDMgICAgIGJyYW5jaCAxCisgICAzICAgQiAgICAgICAgMiAg ICAgIDEgICAgMSAgICAgNCAgICAgLTEgICAgYnJhbmNoIDIKKyAgIDQgICBFTkQgICAgICAwICAg ICAgMSAgICBJTkYgICA1ICAgICAxICAgICBSRUxVQ1RBTlQsIGdyb3VwIGVuZAorICAgNSAgIEMg ICAgICAgIDAgICAgICAxICAgIDEgICAgIDYgICAgIC0xCisgICA2ICAgRklOICAgICAgMCAgICAg IDEgICAgMSAgICAgLTEgICAgLTEKKworQy02LiBQQVRURVJOICgoQSsgQikrIEMpICAtLSBBYnNv cmJhYmlsaXR5IGZsYWcgZXhhbXBsZQorCisgIGlkeCAgdmFySWQgICAgZGVwdGggIG1pbiAgbWF4 ICAgbmV4dCAganVtcCAgZmxhZ3MKKyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAwICAgQkVHSU4g ICAgMCAgICAgIDEgICAgSU5GICAgMSAgICAgNCAgICAgQUJTT1JCQUJMRV9CUkFOQ0gsIGdyb3Vw IHN0YXJ0CisgICAxICAgQSAgICAgICAgMSAgICAgIDEgICAgSU5GICAgMiAgICAgLTEgICAgQUJT T1JCQUJMRSB8IEFCU09SQkFCTEVfQlJBTkNICisgICAyICAgQiAgICAgICAgMSAgICAgIDEgICAg MSAgICAgMyAgICAgLTEKKyAgIDMgICBFTkQgICAgICAwICAgICAgMSAgICBJTkYgICA0ICAgICAx ICAgICBncm91cCBlbmQKKyAgIDQgICBDICAgICAgICAwICAgICAgMSAgICAxICAgICA1ICAgICAt MQorICAgNSAgIEZJTiAgICAgIDAgICAgICAxICAgIDEgICAgIC0xICAgIC0xCisKKyAgUmVjdXJz ZXMgZnJvbSBCRUdJTiBpbnRvIHRoZSBib2R5IC0+IEEgbWF0Y2hlcyBDYXNlIDEgKHNpbXBsZSBW QVIrKS4KKyAgQSBnZXRzIEFCU09SQkFCTEUgfCBBQlNPUkJBQkxFX0JSQU5DSCwgQkVHSU4gZ2V0 cyBBQlNPUkJBQkxFX0JSQU5DSC4KKyAgQiBhbmQgRU5EIGdldCBubyBmbGFncyAtPiBhYnNvcnB0 aW9uIHN0b3BzIG9uY2UgdGhlIHN0YXRlIGFkdmFuY2VzIHRvIEIuCisgIChTZWUgSVYtNSBDYXNl IDMpCisKK0MtNy4gUEFUVEVSTiAoKEErIEIgfCBDKikrIEQpICAtLSBQZXItYnJhbmNoIGFic29y cHRpb24gaW4gQUxUCisKKyAgaWR4ICB2YXJJZCAgICBkZXB0aCAgbWluICBtYXggICBuZXh0ICBq dW1wICBmbGFncworICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIDAgICBCRUdJTiAgICAwICAgICAg MSAgICBJTkYgICAxICAgICA2ICAgICBBQlNPUkJBQkxFX0JSQU5DSAorICAgMSAgIEFMVCAgICAg IDEgICAgICAxICAgIDEgICAgIDIgICAgIC0xICAgIEFCU09SQkFCTEVfQlJBTkNICisgICAyICAg QSAgICAgICAgMiAgICAgIDEgICAgSU5GICAgMyAgICAgNCAgICAgQUJTT1JCQUJMRSB8IEFCU09S QkFCTEVfQlJBTkNICisgICAzICAgQiAgICAgICAgMiAgICAgIDEgICAgMSAgICAgNSAgICAgLTEK KyAgIDQgICBDICAgICAgICAyICAgICAgMCAgICBJTkYgICA1ICAgICAtMSAgICBBQlNPUkJBQkxF IHwgQUJTT1JCQUJMRV9CUkFOQ0gKKyAgIDUgICBFTkQgICAgICAwICAgICAgMSAgICBJTkYgICA2 ICAgICAxICAgICBFTVBUWV9MT09QCisgICA2ICAgRCAgICAgICAgMCAgICAgIDEgICAgMSAgICAg NyAgICAgLTEKKyAgIDcgICBGSU4gICAgICAwICAgICAgMSAgICAxICAgICAtMSAgICAtMQorCisg IEFMVCBicmFuY2hlcyBhcmUgY2hlY2tlZCBpbmRlcGVuZGVudGx5IGZvciBhYnNvcmJhYmlsaXR5 LgorICBCcmFuY2ggMTogQSsgbWF0Y2hlcyBDYXNlIDEgLT4gQSBnZXRzIEFCU09SQkFCTEUuIEIg aGFzIG5vIGZsYWcuCisgIEJyYW5jaCAyOiBDKiBtYXRjaGVzIENhc2UgMSAtPiBDIGdldHMgQUJT T1JCQUJMRS4KKyAgQm90aCBBIGFuZCBDIGdldCBBQlNPUkJBQkxFX0JSQU5DSCBhcyBwYXJ0IG9m IHRoZWlyIHJlc3BlY3RpdmUgYnJhbmNoCisgIHBhdGhzLgorICBFTkQgaGFzIEVNUFRZX0xPT1A6 IGJyYW5jaCAyIChDKikgaXMgbnVsbGFibGUsIG1ha2luZyB0aGUgZ3JvdXAgYm9keQorICBudWxs YWJsZS4KKyAgQkVHSU4gYW5kIEFMVCBnZXQgQUJTT1JCQUJMRV9CUkFOQ0ggKG9uIHRoZSBwYXRo IHRvIGFic29yYmFibGUgZWxlbWVudHMpLgorCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgIEVuZCBv ZiBkb2N1bWVudAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY0V4cHIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKaW5k ZXggNzcyMjkxNDFiMzguLjhkOGRhNjdlNzlmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVj dXRvci9leGVjRXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKQEAg LTEyMjIsNiArMTIyMiw5OCBAQCBFeGVjSW5pdEV4cHJSZWMoRXhwciAqbm9kZSwgRXhwclN0YXRl ICpzdGF0ZSwKIAkJCQlicmVhazsKIAkJCX0KIAorCQljYXNlIFRfUlBSTmF2RXhwcjoKKwkJCXsK KwkJCQkvKgorCQkJCSAqIFJQUiBuYXZpZ2F0aW9uIGZ1bmN0aW9ucyAoUFJFVi9ORVhUL0ZJUlNU L0xBU1QpIGFyZQorCQkJCSAqIGNvbXBpbGVkIGludG8gRUVPUF9SUFJfTkFWX1NFVCAvIEVFT1Bf UlBSX05BVl9SRVNUT1JFCisJCQkJICogb3Bjb2RlcyBpbnN0ZWFkIG9mIGEgbm9ybWFsIGZ1bmN0 aW9uIGNhbGwuICBUaGUgU0VUIG9wY29kZQorCQkJCSAqIHN3YXBzIGVjeHRfb3V0ZXJ0dXBsZSB0 byB0aGUgdGFyZ2V0IHJvdywgdGhlIGFyZ3VtZW50CisJCQkJICogZXhwcmVzc2lvbiBpcyBjb21w aWxlZCBub3JtYWxseSAocmVhZHMgZnJvbSB0aGUgc3dhcHBlZAorCQkJCSAqIHNsb3QpLCBhbmQg dGhlIFJFU1RPUkUgb3Bjb2RlIHJlc3RvcmVzIHRoZSBvcmlnaW5hbCBzbG90LgorCQkJCSAqCisJ CQkJICogRGVmYXVsdCBvZmZzZXQgd2hlbiBvZmZzZXRfYXJnIGlzIE5VTEw6IFBSRVYvTkVYVDog MQorCQkJCSAqIChwaHlzaWNhbCBvZmZzZXQgZnJvbSBjdXJyZW50cG9zKSBGSVJTVC9MQVNUOiAw IChsb2dpY2FsCisJCQkJICogb2Zmc2V0IGZyb20gbWF0Y2ggYm91bmRhcnkpCisJCQkJICovCisJ CQkJUlBSTmF2RXhwciAqbmF2ID0gKFJQUk5hdkV4cHIgKikgbm9kZTsKKwkJCQlXaW5kb3dBZ2dT dGF0ZSAqd2luc3RhdGU7CisKKwkJCQlBc3NlcnQoc3RhdGUtPnBhcmVudCAmJiBJc0Eoc3RhdGUt PnBhcmVudCwgV2luZG93QWdnU3RhdGUpKTsKKwkJCQl3aW5zdGF0ZSA9IChXaW5kb3dBZ2dTdGF0 ZSAqKSBzdGF0ZS0+cGFyZW50OworCisJCQkJLyogRW1pdCBTRVQgb3Bjb2RlOiBzd2FwIHNsb3Qg dG8gdGFyZ2V0IHJvdyAqLworCQkJCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9SUFJfTkFWX1NFVDsK KwkJCQlzY3JhdGNoLmQucnByX25hdi53aW5zdGF0ZSA9IHdpbnN0YXRlOworCQkJCXNjcmF0Y2gu ZC5ycHJfbmF2LmtpbmQgPSBuYXYtPmtpbmQ7CisKKwkJCQlpZiAobmF2LT5raW5kID49IFJQUl9O QVZfUFJFVl9GSVJTVCkKKwkJCQl7CisJCQkJCS8qCisJCQkJCSAqIENvbXBvdW5kIG5hdmlnYXRp b246IGFsbG9jYXRlIGFycmF5IG9mIDIgZm9yIGlubmVyIFswXQorCQkJCQkgKiBhbmQgb3V0ZXIg WzFdIG9mZnNldHMuCisJCQkJCSAqLworCQkJCQlEYXR1bQkgICAqb2Zmc2V0X3ZhbHVlcyA9IHBh bGxvY19hcnJheShEYXR1bSwgMik7CisJCQkJCWJvb2wJICAgKm9mZnNldF9pc251bGxzID0gcGFs bG9jX2FycmF5KGJvb2wsIDIpOworCisJCQkJCS8qIElubmVyIG9mZnNldCAoZGVmYXVsdCAwIGZv ciBGSVJTVC9MQVNUKSAqLworCQkJCQlpZiAobmF2LT5vZmZzZXRfYXJnICE9IE5VTEwpCisJCQkJ CQlFeGVjSW5pdEV4cHJSZWMobmF2LT5vZmZzZXRfYXJnLCBzdGF0ZSwKKwkJCQkJCQkJCQkmb2Zm c2V0X3ZhbHVlc1swXSwgJm9mZnNldF9pc251bGxzWzBdKTsKKwkJCQkJZWxzZQorCQkJCQl7CisJ CQkJCQlvZmZzZXRfdmFsdWVzWzBdID0gSW50NjRHZXREYXR1bSgwKTsKKwkJCQkJCW9mZnNldF9p c251bGxzWzBdID0gZmFsc2U7CisJCQkJCX0KKworCQkJCQkvKiBPdXRlciBvZmZzZXQgKGRlZmF1 bHQgMSBmb3IgUFJFVi9ORVhUKSAqLworCQkJCQlpZiAobmF2LT5jb21wb3VuZF9vZmZzZXRfYXJn ICE9IE5VTEwpCisJCQkJCQlFeGVjSW5pdEV4cHJSZWMobmF2LT5jb21wb3VuZF9vZmZzZXRfYXJn LCBzdGF0ZSwKKwkJCQkJCQkJCQkmb2Zmc2V0X3ZhbHVlc1sxXSwgJm9mZnNldF9pc251bGxzWzFd KTsKKwkJCQkJZWxzZQorCQkJCQl7CisJCQkJCQlvZmZzZXRfdmFsdWVzWzFdID0gSW50NjRHZXRE YXR1bSgxKTsKKwkJCQkJCW9mZnNldF9pc251bGxzWzFdID0gZmFsc2U7CisJCQkJCX0KKworCQkJ CQlzY3JhdGNoLmQucnByX25hdi5vZmZzZXRfdmFsdWUgPSBvZmZzZXRfdmFsdWVzOworCQkJCQlz Y3JhdGNoLmQucnByX25hdi5vZmZzZXRfaXNudWxsID0gb2Zmc2V0X2lzbnVsbHM7CisJCQkJfQor CQkJCWVsc2UgaWYgKG5hdi0+b2Zmc2V0X2FyZyAhPSBOVUxMKQorCQkJCXsKKwkJCQkJLyogU2lt cGxlIG5hdmlnYXRpb24gd2l0aCBleHBsaWNpdCBvZmZzZXQgKi8KKwkJCQkJRGF0dW0JICAgKm9m ZnNldF92YWx1ZSA9IHBhbGxvY19vYmplY3QoRGF0dW0pOworCQkJCQlib29sCSAgICpvZmZzZXRf aXNudWxsID0gcGFsbG9jX29iamVjdChib29sKTsKKworCQkJCQlFeGVjSW5pdEV4cHJSZWMobmF2 LT5vZmZzZXRfYXJnLCBzdGF0ZSwKKwkJCQkJCQkJCW9mZnNldF92YWx1ZSwgb2Zmc2V0X2lzbnVs bCk7CisJCQkJCXNjcmF0Y2guZC5ycHJfbmF2Lm9mZnNldF92YWx1ZSA9IG9mZnNldF92YWx1ZTsK KwkJCQkJc2NyYXRjaC5kLnJwcl9uYXYub2Zmc2V0X2lzbnVsbCA9IG9mZnNldF9pc251bGw7CisJ CQkJfQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCS8qIFNpbXBsZSBuYXZpZ2F0aW9uIHdpdGggZGVm YXVsdCBvZmZzZXQgKi8KKwkJCQkJc2NyYXRjaC5kLnJwcl9uYXYub2Zmc2V0X3ZhbHVlID0gTlVM TDsKKwkJCQkJc2NyYXRjaC5kLnJwcl9uYXYub2Zmc2V0X2lzbnVsbCA9IE5VTEw7CisJCQkJfQor CisJCQkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgJnNjcmF0Y2gpOworCisJCQkJLyogQ29tcGls ZSB0aGUgYXJndW1lbnQgZXhwcmVzc2lvbiBub3JtYWxseSAqLworCQkJCUV4ZWNJbml0RXhwclJl YyhuYXYtPmFyZywgc3RhdGUsIHJlc3YsIHJlc251bGwpOworCisJCQkJLyogRW1pdCBSRVNUT1JF IG9wY29kZTogcmVzdG9yZSBvcmlnaW5hbCBzbG90ICovCisJCQkJc2NyYXRjaC5vcGNvZGUgPSBF RU9QX1JQUl9OQVZfUkVTVE9SRTsKKwkJCQlzY3JhdGNoLnJlc3ZhbHVlID0gcmVzdjsKKwkJCQlz Y3JhdGNoLnJlc251bGwgPSByZXNudWxsOworCQkJCXNjcmF0Y2guZC5ycHJfbmF2LndpbnN0YXRl ID0gd2luc3RhdGU7CisJCQkJZ2V0X3R5cGxlbmJ5dmFsKG5hdi0+cmVzdWx0dHlwZSwKKwkJCQkJ CQkJJnNjcmF0Y2guZC5ycHJfbmF2LnJlc3VsdHR5cGxlbiwKKwkJCQkJCQkJJnNjcmF0Y2guZC5y cHJfbmF2LnJlc3VsdHR5cGJ5dmFsKTsKKwkJCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAmc2Ny YXRjaCk7CisJCQkJYnJlYWs7CisJCQl9CisKIAkJY2FzZSBUX0Z1bmNFeHByOgogCQkJewogCQkJ CUZ1bmNFeHByICAgKmZ1bmMgPSAoRnVuY0V4cHIgKikgbm9kZTsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjRXhwckludGVycC5jCmluZGV4IDA2MzRhZjk2NGE5Li4zMjRiOWE5NjJhOCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYworKysgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCkBAIC01NywxMSArNTcsMTMgQEAKICNpbmNsdWRl ICJwb3N0Z3Jlcy5oIgogCiAjaW5jbHVkZSAiYWNjZXNzL2hlYXB0b2FzdC5oIgorI2luY2x1ZGUg ImNvbW1vbi9pbnQuaCIKICNpbmNsdWRlICJhY2Nlc3MvdHVwY29udmVydC5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3NlcXVlbmNlLmgiCiAjaW5j bHVkZSAiZXhlY3V0b3IvZXhlY0V4cHIuaCIKICNpbmNsdWRlICJleGVjdXRvci9ub2RlU3VicGxh bi5oIgorI2luY2x1ZGUgImV4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuaCIKICNpbmNsdWRlICJmdW5j YXBpLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbWlzY25vZGVz LmgiCkBAIC01ODYsNiArNTg4LDggQEAgRXhlY0ludGVycEV4cHIoRXhwclN0YXRlICpzdGF0ZSwg RXhwckNvbnRleHQgKmVjb250ZXh0LCBib29sICppc251bGwpCiAJCSYmQ0FTRV9FRU9QX1dJTkRP V19GVU5DLAogCQkmJkNBU0VfRUVPUF9NRVJHRV9TVVBQT1JUX0ZVTkMsCiAJCSYmQ0FTRV9FRU9Q X1NVQlBMQU4sCisJCSYmQ0FTRV9FRU9QX1JQUl9OQVZfU0VULAorCQkmJkNBU0VfRUVPUF9SUFJf TkFWX1JFU1RPUkUsCiAJCSYmQ0FTRV9FRU9QX0FHR19TVFJJQ1RfREVTRVJJQUxJWkUsCiAJCSYm Q0FTRV9FRU9QX0FHR19ERVNFUklBTElaRSwKIAkJJiZDQVNFX0VFT1BfQUdHX1NUUklDVF9JTlBV VF9DSEVDS19BUkdTLApAQCAtMjAxMyw2ICsyMDE3LDI0IEBAIEV4ZWNJbnRlcnBFeHByKEV4cHJT dGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwgYm9vbCAqaXNudWxsKQogCQkJRUVP X05FWFQoKTsKIAkJfQogCisJCS8qIFJQUiBuYXZpZ2F0aW9uOiBzd2FwIHNsb3QgdG8gdGFyZ2V0 IHJvdyAqLworCQlFRU9fQ0FTRShFRU9QX1JQUl9OQVZfU0VUKQorCQl7CisJCQlFeGVjRXZhbFJQ Uk5hdlNldChzdGF0ZSwgb3AsIGVjb250ZXh0KTsKKwkJCW91dGVyc2xvdCA9IGVjb250ZXh0LT5l Y3h0X291dGVydHVwbGU7CisKKwkJCUVFT19ORVhUKCk7CisJCX0KKworCQkvKiBSUFIgbmF2aWdh dGlvbjogcmVzdG9yZSBzbG90IHRvIG9yaWdpbmFsIHJvdyAqLworCQlFRU9fQ0FTRShFRU9QX1JQ Ul9OQVZfUkVTVE9SRSkKKwkJeworCQkJRXhlY0V2YWxSUFJOYXZSZXN0b3JlKHN0YXRlLCBvcCwg ZWNvbnRleHQpOworCQkJb3V0ZXJzbG90ID0gZWNvbnRleHQtPmVjeHRfb3V0ZXJ0dXBsZTsKKwor CQkJRUVPX05FWFQoKTsKKwkJfQorCiAJCS8qIGV2YWx1YXRlIGEgc3RyaWN0IGFnZ3JlZ2F0ZSBk ZXNlcmlhbGl6YXRpb24gZnVuY3Rpb24gKi8KIAkJRUVPX0NBU0UoRUVPUF9BR0dfU1RSSUNUX0RF U0VSSUFMSVpFKQogCQl7CkBAIC01OTg4LDMgKzYwMTAsMjQ4IEBAIEV4ZWNBZ2dQbGFpblRyYW5z QnlSZWYoQWdnU3RhdGUgKmFnZ3N0YXRlLCBBZ2dTdGF0ZVBlclRyYW5zIHBlcnRyYW5zLAogCiAJ TWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZENvbnRleHQpOwogfQorCisvKgorICogRXh0cmFjdCBj b21wb3VuZCAob3V0ZXIpIG9mZnNldCBmcm9tIHN0ZXAgZGF0YS4KKyAqIEZvciBjb21wb3VuZCBu YXYsIG9mZnNldF92YWx1ZSBpcyBhbiBhcnJheTogWzBdPWlubmVyLCBbMV09b3V0ZXIuCisgKiBS ZXR1cm5zIHRoZSBvdXRlciBvZmZzZXQ7IGVycm9ycyBvbiBOVUxMIG9yIG5lZ2F0aXZlLgorICog RGVmYXVsdCBpcyAxIChsaWtlIFBSRVYvTkVYVCBpbXBsaWNpdCBvZmZzZXQpLgorICovCitzdGF0 aWMgaW50NjQKK3Jwcl9uYXZfZ2V0X2NvbXBvdW5kX29mZnNldChFeHByRXZhbFN0ZXAgKm9wKQor eworCWludDY0CQl2YWw7CisKKwlBc3NlcnQob3AtPmQucnByX25hdi5vZmZzZXRfdmFsdWUgIT0g TlVMTCk7CisKKwlpZiAob3AtPmQucnByX25hdi5vZmZzZXRfaXNudWxsWzFdKQorCQllcmVwb3J0 KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfTlVMTF9WQUxVRV9OT1RfQUxMT1dFRCksCisJ CQkJIGVycm1zZygicm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvZmZzZXQgbXVzdCBub3QgYmUgbnVs bCIpKSk7CisKKwl2YWwgPSBEYXR1bUdldEludDY0KG9wLT5kLnJwcl9uYXYub2Zmc2V0X3ZhbHVl WzFdKTsKKworCWlmICh2YWwgPCAwKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVS UkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCSBlcnJtc2coInJvdyBwYXR0ZXJu IG5hdmlnYXRpb24gb2Zmc2V0IG11c3Qgbm90IGJlIG5lZ2F0aXZlIikpKTsKKworCXJldHVybiB2 YWw7Cit9CisKKy8qCisgKiBFdmFsdWF0ZSBSUFIgbmF2aWdhdGlvbiAoUFJFVi9ORVhUL0ZJUlNU L0xBU1QpOiBzd2FwIHNsb3QgdG8gdGFyZ2V0IHJvdy4KKyAqCisgKiBTYXZlcyB0aGUgY3VycmVu dCBvdXRlcnR1cGxlIGludG8gd2luc3RhdGUgZm9yIGxhdGVyIHJlc3RvcmUsIGNvbXB1dGVzCisg KiB0aGUgdGFyZ2V0IHJvdyBwb3NpdGlvbiwgZmV0Y2hlcyB0aGUgY29ycmVzcG9uZGluZyBzbG90 IGZyb20gdGhlCisgKiB0dXBsZXN0b3JlLCBhbmQgcmVwbGFjZXMgZWNvbnRleHQtPmVjeHRfb3V0 ZXJ0dXBsZSB3aXRoIGl0LgorICoKKyAqIFRoaXMgaXMgY2FsbGVkIGJvdGggZnJvbSB0aGUgaW50 ZXJwcmV0ZXIgaW5saW5lIGhhbmRsZXIgYW5kIGZyb20KKyAqIEpJVC1jb21waWxlZCBleHByZXNz aW9ucyB2aWEgYnVpbGRfRXZhbFhGdW5jLgorICovCit2b2lkCitFeGVjRXZhbFJQUk5hdlNldChF eHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wLCBFeHByQ29udGV4dCAqZWNvbnRleHQp Cit7CisJV2luZG93QWdnU3RhdGUgKndpbnN0YXRlID0gb3AtPmQucnByX25hdi53aW5zdGF0ZTsK KwlpbnQ2NAkJb2Zmc2V0OworCWludDY0CQl0YXJnZXRfcG9zOworCVR1cGxlVGFibGVTbG90ICp0 YXJnZXRfc2xvdDsKKworCS8qIFNhdmUgY3VycmVudCBzbG90IGZvciBsYXRlciByZXN0b3JlICov CisJd2luc3RhdGUtPm5hdl9zYXZlZF9vdXRlcnR1cGxlID0gZWNvbnRleHQtPmVjeHRfb3V0ZXJ0 dXBsZTsKKworCS8qCisJICogRGV0ZXJtaW5lIHRoZSBpbm5lciBvZmZzZXQuICBOVUxMIG9yIG5l Z2F0aXZlIG9mZnNldHMgYXJlIGVycm9ycyBwZXIKKwkgKiB0aGUgU1FMIHN0YW5kYXJkLgorCSAq CisJICogRGVmYXVsdCBvZmZzZXQgd2hlbiBvZmZzZXRfYXJnIGlzIE5VTEw6IFBSRVYvTkVYVDog MSAoc3RhbmRhcmQgNS42LjIpCisJICogRklSU1QvTEFTVCBhbmQgY29tcG91bmQ6IDAgZm9yIGlu bmVyLCAxIGZvciBvdXRlcgorCSAqLworCWlmIChvcC0+ZC5ycHJfbmF2Lm9mZnNldF92YWx1ZSAh PSBOVUxMKQorCXsKKwkJaWYgKCpvcC0+ZC5ycHJfbmF2Lm9mZnNldF9pc251bGwpCisJCQllcmVw b3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX05VTExfVkFMVUVfTk9UX0FMTE9XRUQp LAorCQkJCQkgZXJybXNnKCJyb3cgcGF0dGVybiBuYXZpZ2F0aW9uIG9mZnNldCBtdXN0IG5vdCBi ZSBudWxsIikpKTsKKworCQlvZmZzZXQgPSBEYXR1bUdldEludDY0KCpvcC0+ZC5ycHJfbmF2Lm9m ZnNldF92YWx1ZSk7CisKKwkJaWYgKG9mZnNldCA8IDApCisJCQllcmVwb3J0KEVSUk9SLAorCQkJ CQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJIGVycm1z Zygicm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRpdmUiKSkp OworCX0KKwllbHNlCisJeworCQkvKiBEZWZhdWx0IG9mZnNldDogMSBmb3Igc2ltcGxlIFBSRVYv TkVYVCwgMCBvdGhlcndpc2UgKi8KKwkJaWYgKG9wLT5kLnJwcl9uYXYua2luZCA9PSBSUFJfTkFW X1BSRVYgfHwKKwkJCW9wLT5kLnJwcl9uYXYua2luZCA9PSBSUFJfTkFWX05FWFQpCisJCQlvZmZz ZXQgPSAxOworCQllbHNlCisJCQlvZmZzZXQgPSAwOworCX0KKworCS8qCisJICogQ2FsY3VsYXRl IHRhcmdldCBwb3NpdGlvbiBiYXNlZCBvbiBuYXZpZ2F0aW9uIGRpcmVjdGlvbi4gIE9uIG92ZXJm bG93LAorCSAqIHVzZSAtMSBzbyB0aGF0IEV4ZWNSUFJOYXZHZXRTbG90IHRyZWF0cyBpdCBhcyBv dXQgb2YgcmFuZ2UuCisJICovCisJc3dpdGNoIChvcC0+ZC5ycHJfbmF2LmtpbmQpCisJeworCQlj YXNlIFJQUl9OQVZfUFJFVjoKKwkJCWlmIChwZ19zdWJfczY0X292ZXJmbG93KHdpbnN0YXRlLT5j dXJyZW50cG9zLCBvZmZzZXQsICZ0YXJnZXRfcG9zKSkKKwkJCQl0YXJnZXRfcG9zID0gLTE7CisJ CQlicmVhazsKKwkJY2FzZSBSUFJfTkFWX05FWFQ6CisJCQlpZiAocGdfYWRkX3M2NF9vdmVyZmxv dyh3aW5zdGF0ZS0+Y3VycmVudHBvcywgb2Zmc2V0LCAmdGFyZ2V0X3BvcykpCisJCQkJdGFyZ2V0 X3BvcyA9IC0xOworCQkJYnJlYWs7CisJCWNhc2UgUlBSX05BVl9GSVJTVDoKKwkJCS8qIEZJUlNU OiBvZmZzZXQgZnJvbSBtYXRjaF9zdGFydCwgY2xhbXBlZCB0byBjdXJyZW50cG9zICovCisJCQlp ZiAocGdfYWRkX3M2NF9vdmVyZmxvdyh3aW5zdGF0ZS0+bmF2X21hdGNoX3N0YXJ0LCBvZmZzZXQs ICZ0YXJnZXRfcG9zKSkKKwkJCQl0YXJnZXRfcG9zID0gLTE7CisJCQllbHNlIGlmICh0YXJnZXRf cG9zID4gd2luc3RhdGUtPmN1cnJlbnRwb3MpCisJCQkJdGFyZ2V0X3BvcyA9IC0xOwkvKiBiZXlv bmQgY3VycmVudCBtYXRjaCByYW5nZSAqLworCQkJYnJlYWs7CisJCWNhc2UgUlBSX05BVl9MQVNU OgorCQkJLyogTEFTVDogb2Zmc2V0IGJhY2t3YXJkIGZyb20gY3VycmVudHBvcywgY2xhbXBlZCB0 byBtYXRjaF9zdGFydCAqLworCQkJaWYgKHBnX3N1Yl9zNjRfb3ZlcmZsb3cod2luc3RhdGUtPmN1 cnJlbnRwb3MsIG9mZnNldCwgJnRhcmdldF9wb3MpKQorCQkJCXRhcmdldF9wb3MgPSAtMTsKKwkJ CWVsc2UgaWYgKHRhcmdldF9wb3MgPCB3aW5zdGF0ZS0+bmF2X21hdGNoX3N0YXJ0KQorCQkJCXRh cmdldF9wb3MgPSAtMTsJLyogYmVmb3JlIG1hdGNoX3N0YXJ0ICovCisJCQlicmVhazsKKworCQlj YXNlIFJQUl9OQVZfUFJFVl9GSVJTVDoKKwkJY2FzZSBSUFJfTkFWX05FWFRfRklSU1Q6CisJCQl7 CisJCQkJaW50NjQJCWNvbXBvdW5kX29mZnNldDsKKwkJCQlpbnQ2NAkJaW5uZXJfcG9zOworCisJ CQkJLyogSW5uZXI6IG1hdGNoX3N0YXJ0ICsgb2Zmc2V0ICovCisJCQkJaWYgKHBnX2FkZF9zNjRf b3ZlcmZsb3cod2luc3RhdGUtPm5hdl9tYXRjaF9zdGFydCwgb2Zmc2V0LCAmaW5uZXJfcG9zKSkK KwkJCQl7CisJCQkJCXRhcmdldF9wb3MgPSAtMTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJCWlm IChpbm5lcl9wb3MgPiB3aW5zdGF0ZS0+Y3VycmVudHBvcyB8fCBpbm5lcl9wb3MgPCAwKQorCQkJ CXsKKwkJCQkJdGFyZ2V0X3BvcyA9IC0xOworCQkJCQlicmVhazsKKwkJCQl9CisKKwkJCQkvKiBP dXRlciBvZmZzZXQgKi8KKwkJCQljb21wb3VuZF9vZmZzZXQgPSBycHJfbmF2X2dldF9jb21wb3Vu ZF9vZmZzZXQob3ApOworCisJCQkJLyogQXBwbHkgb3V0ZXI6IFBSRVYgc3VidHJhY3RzLCBORVhU IGFkZHMgKi8KKwkJCQlpZiAob3AtPmQucnByX25hdi5raW5kID09IFJQUl9OQVZfUFJFVl9GSVJT VCkKKwkJCQl7CisJCQkJCWlmIChwZ19zdWJfczY0X292ZXJmbG93KGlubmVyX3BvcywgY29tcG91 bmRfb2Zmc2V0LCAmdGFyZ2V0X3BvcykpCisJCQkJCQl0YXJnZXRfcG9zID0gLTE7CisJCQkJfQor CQkJCWVsc2UKKwkJCQl7CisJCQkJCWlmIChwZ19hZGRfczY0X292ZXJmbG93KGlubmVyX3Bvcywg Y29tcG91bmRfb2Zmc2V0LCAmdGFyZ2V0X3BvcykpCisJCQkJCQl0YXJnZXRfcG9zID0gLTE7CisJ CQkJfQorCQkJfQorCQkJYnJlYWs7CisKKwkJY2FzZSBSUFJfTkFWX1BSRVZfTEFTVDoKKwkJY2Fz ZSBSUFJfTkFWX05FWFRfTEFTVDoKKwkJCXsKKwkJCQlpbnQ2NAkJY29tcG91bmRfb2Zmc2V0Owor CQkJCWludDY0CQlpbm5lcl9wb3M7CisKKwkJCQkvKiBJbm5lcjogY3VycmVudHBvcyAtIG9mZnNl dCAqLworCQkJCWlmIChwZ19zdWJfczY0X292ZXJmbG93KHdpbnN0YXRlLT5jdXJyZW50cG9zLCBv ZmZzZXQsICZpbm5lcl9wb3MpKQorCQkJCXsKKwkJCQkJdGFyZ2V0X3BvcyA9IC0xOworCQkJCQli cmVhazsKKwkJCQl9CisJCQkJaWYgKGlubmVyX3BvcyA8IHdpbnN0YXRlLT5uYXZfbWF0Y2hfc3Rh cnQpCisJCQkJeworCQkJCQl0YXJnZXRfcG9zID0gLTE7CisJCQkJCWJyZWFrOworCQkJCX0KKwor CQkJCS8qIE91dGVyIG9mZnNldCAqLworCQkJCWNvbXBvdW5kX29mZnNldCA9IHJwcl9uYXZfZ2V0 X2NvbXBvdW5kX29mZnNldChvcCk7CisKKwkJCQkvKiBBcHBseSBvdXRlcjogUFJFViBzdWJ0cmFj dHMsIE5FWFQgYWRkcyAqLworCQkJCWlmIChvcC0+ZC5ycHJfbmF2LmtpbmQgPT0gUlBSX05BVl9Q UkVWX0xBU1QpCisJCQkJeworCQkJCQlpZiAocGdfc3ViX3M2NF9vdmVyZmxvdyhpbm5lcl9wb3Ms IGNvbXBvdW5kX29mZnNldCwgJnRhcmdldF9wb3MpKQorCQkJCQkJdGFyZ2V0X3BvcyA9IC0xOwor CQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQlpZiAocGdfYWRkX3M2NF9vdmVyZmxvdyhpbm5l cl9wb3MsIGNvbXBvdW5kX29mZnNldCwgJnRhcmdldF9wb3MpKQorCQkJCQkJdGFyZ2V0X3BvcyA9 IC0xOworCQkJCX0KKwkJCX0KKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJZWxvZyhFUlJPUiwg InVucmVjb2duaXplZCBSUFIgbmF2aWdhdGlvbiBraW5kOiAlZCIsCisJCQkJIG9wLT5kLnJwcl9u YXYua2luZCk7CisJCQlicmVhazsKKwl9CisKKwkvKgorCSAqIFNsb3Qgc3dhcCBlbGlzaW9uOiBp ZiB0YXJnZXRfcG9zIGlzIHRoZSBjdXJyZW50IHJvdywgc2tpcCB0aGUKKwkgKiB0dXBsZXN0b3Jl IGZldGNoIGFuZCBzbG90IHN3YXAgZW50aXJlbHkuICBUaGlzIGJlbmVmaXRzIExBU1QoZXhwciks CisJICogUFJFVihleHByLCAwKSwgTkVYVChleHByLCAwKSwgYW5kIHNpbWlsYXIgY2FzZXMuCisJ ICoKKwkgKiBXZSBtdXN0IHN0aWxsIHNldCBuYXZfc2F2ZWRfb3V0ZXJ0dXBsZSAoZG9uZSBhYm92 ZSkgc28gdGhhdAorCSAqIEVFT1BfUlBSX05BVl9SRVNUT1JFIGlzIGEgaGFybWxlc3Mgbm8tb3Au CisJICovCisJaWYgKHRhcmdldF9wb3MgPT0gd2luc3RhdGUtPmN1cnJlbnRwb3MpCisJCXJldHVy bjsKKworCS8qIEZldGNoIHRhcmdldCByb3cgc2xvdCAocmV0dXJucyBuYXZfbnVsbF9zbG90IGlm IG91dCBvZiByYW5nZSkgKi8KKwl0YXJnZXRfc2xvdCA9IEV4ZWNSUFJOYXZHZXRTbG90KHdpbnN0 YXRlLCB0YXJnZXRfcG9zKTsKKworCS8qCisJICogVXBkYXRlIGVjb250ZXh0IHRvIHBvaW50IHRv IHRoZSB0YXJnZXQgc2xvdC4gIEFsc28gZGVjb21wcmVzcyB0aGUgbmV3CisJICogc2xvdCdzIGF0 dHJpYnV0ZXMgc2luY2UgRkVUQ0hTT01FIGFscmVhZHkgcmFuIGZvciB0aGUgb3JpZ2luYWwgc2xv dC4KKwkgKiBUaGUgY2FsbGVyIChpbnRlcnByZXRlciBvciBKSVQpIGlzIHJlc3BvbnNpYmxlIGZv ciB1cGRhdGluZyBhbnkgbG9jYWwKKwkgKiBzbG90IGNhY2hlIChlLmcuIG91dGVyc2xvdCkgZnJv bSBlY29udGV4dCBhZnRlciB3ZSByZXR1cm4uCisJICovCisJc2xvdF9nZXRhbGxhdHRycyh0YXJn ZXRfc2xvdCk7CisJZWNvbnRleHQtPmVjeHRfb3V0ZXJ0dXBsZSA9IHRhcmdldF9zbG90OworfQor CisvKgorICogRXZhbHVhdGUgUlBSIG5hdmlnYXRpb246IHJlc3RvcmUgc2xvdCB0byBvcmlnaW5h bCByb3cuCisgKgorICogUmVzdG9yZXMgZWNvbnRleHQtPmVjeHRfb3V0ZXJ0dXBsZSBmcm9tIHRo ZSBzYXZlZCBzbG90IGluIHdpbnN0YXRlLgorICogV2hlbiBzbG90IHN3YXAgd2FzIGVsaWRlZCAo dGFyZ2V0ID09IGN1cnJlbnRwb3MpLCB0aGlzIGlzIGEgaGFybWxlc3MKKyAqIG5vLW9wIHNpbmNl IHNhdmVkIGFuZCBjdXJyZW50IHNsb3RzIGFyZSBpZGVudGljYWwuCisgKiBUaGUgY2FsbGVyIGlz IHJlc3BvbnNpYmxlIGZvciB1cGRhdGluZyBhbnkgbG9jYWwgc2xvdCBjYWNoZS4KKyAqCisgKiBG b3IgcGFzcy1ieS1yZWZlcmVuY2UgcmVzdWx0IHR5cGVzLCB0aGUgcmVzdWx0IGRhdHVtIHBvaW50 cyBpbnRvCisgKiBuYXZfc2xvdCdzIHR1cGxlIG1lbW9yeS4gIElmIGEgc3Vic2VxdWVudCBuYXZp Z2F0aW9uIGluIHRoZSBzYW1lCisgKiBleHByZXNzaW9uIHJlLWZldGNoZXMgbmF2X3Nsb3QgZm9y IGEgZGlmZmVyZW50IHBvc2l0aW9uLCB0aGUgb2xkCisgKiB0dXBsZSBpcyBmcmVlZCwgbGVhdmlu ZyBhIGRhbmdsaW5nIHBvaW50ZXIuICBXZSBwcmV2ZW50IHRoaXMgYnkKKyAqIGNvcHlpbmcgcGFz cy1ieS1yZWYgcmVzdWx0cyBpbnRvIHBlci10dXBsZSBtZW1vcnksIHdoaWNoIHN1cnZpdmVzCisg KiB1bnRpbCB0aGUgbmV4dCBSZXNldEV4cHJDb250ZXh0LgorICovCit2b2lkCitFeGVjRXZhbFJQ Uk5hdlJlc3RvcmUoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwKKwkJCQkJICBF eHByQ29udGV4dCAqZWNvbnRleHQpCit7CisJV2luZG93QWdnU3RhdGUgKndpbnN0YXRlID0gb3At PmQucnByX25hdi53aW5zdGF0ZTsKKworCWVjb250ZXh0LT5lY3h0X291dGVydHVwbGUgPSB3aW5z dGF0ZS0+bmF2X3NhdmVkX291dGVydHVwbGU7CisKKwkvKiBTdGFiaWxpemUgcGFzcy1ieS1yZWYg cmVzdWx0IGFnYWluc3QgbmF2X3Nsb3QgcmUtZmV0Y2ggKi8KKwlpZiAoIW9wLT5kLnJwcl9uYXYu cmVzdWx0dHlwYnl2YWwgJiYKKwkJISpvcC0+cmVzbnVsbCkKKwl7CisJCU1lbW9yeUNvbnRleHQg b2xkQ29udGV4dDsKKworCQlvbGRDb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGVjb250 ZXh0LT5lY3h0X3Blcl90dXBsZV9tZW1vcnkpOworCQkqb3AtPnJlc3ZhbHVlID0gZGF0dW1Db3B5 KCpvcC0+cmVzdmFsdWUsCisJCQkJCQkJCSAgZmFsc2UsCisJCQkJCQkJCSAgb3AtPmQucnByX25h di5yZXN1bHR0eXBsZW4pOworCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkQ29udGV4dCk7CisJ fQorfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi4yNDJhZTljNmRjZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNSUFIuYwpAQCAtMCwwICsxLDE3NzIgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoK KyAqIGV4ZWNSUFIuYworICoJICBORkEtYmFzZWQgUm93IFBhdHRlcm4gUmVjb2duaXRpb24gZW5n aW5lIGZvciB3aW5kb3cgZnVuY3Rpb25zLgorICoKKyAqIFRoaXMgZmlsZSBpbXBsZW1lbnRzIHRo ZSBORkEgZXhlY3V0aW9uIGVuZ2luZSBmb3IgdGhlIFJPV1MgQkVUV0VFTgorICogUEFUVEVSTiBj bGF1c2UgKFNRTCBTdGFuZGFyZCBGZWF0dXJlIFIwMjA6IFJvdyBQYXR0ZXJuIFJlY29nbml0aW9u IGluCisgKiBXaW5kb3cgRnVuY3Rpb25zKS4KKyAqCisgKiBUaGUgZW5naW5lIGV4ZWN1dGVzIHRo ZSBjb21waWxlZCBSUFJQYXR0ZXJuIHN0cnVjdHVyZSBkaXJlY3RseSwgYXZvaWRpbmcKKyAqIHJl Z2V4IGNvbXBpbGF0aW9uIG92ZXJoZWFkLiAgSXQgaXMgY2FsbGVkIGJ5IG5vZGVXaW5kb3dBZ2cu YyBhbmQgZXhwb3NlcworICogdGhlIGludGVyZmFjZSBkZWNsYXJlZCBpbiBleGVjdXRvci9leGVj UlBSLmguCisgKgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI2LCBQb3N0 Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChj KSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBJ REVOVElGSUNBVElPTgorICoJICBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKKyAqCisg Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRl ICJjb21tb24vaW50LmgiCisjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY1JQUi5oIgorI2luY2x1ZGUg ImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCisjaW5jbHVkZSAibWlzY2FkbWluLmgiCisjaW5jbHVkZSAi b3B0aW1pemVyL3Jwci5oIgorI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzLmgiCisKKy8qCisgKiBG b3IgdGhlIGRlc2lnbiBhbmQgZXhlY3V0aW9uIG1vZGVsIG9mIHRoZSBORkEgZW5naW5lIGltcGxl bWVudGVkCisgKiBpbiB0aGlzIGZpbGUsIHNlZSBzcmMvYmFja2VuZC9leGVjdXRvci9SRUFETUUu cnByLgorICovCisKKy8qIEJpdG1hcCBtYWNyb3MgZm9yIE5GQSBjeWNsZSBkZXRlY3Rpb24gKGNm LiBiaXRtYXBzZXQuYywgdGlkYml0bWFwLmMpICovCisjZGVmaW5lIFdPUkROVU0oeCkJKCh4KSAv IEJJVFNfUEVSX0JJVE1BUFdPUkQpCisjZGVmaW5lIEJJVE5VTSh4KQkoKHgpICUgQklUU19QRVJf QklUTUFQV09SRCkKKworLyogRm9yd2FyZCBkZWNsYXJhdGlvbnMgLSBORkEgc3RhdGUgbWFuYWdl bWVudCAqLworc3RhdGljIFJQUk5GQVN0YXRlICpuZmFfc3RhdGVfYWxsb2MoV2luZG93QWdnU3Rh dGUgKndpbnN0YXRlKTsKK3N0YXRpYyB2b2lkIG5mYV9zdGF0ZV9mcmVlKFdpbmRvd0FnZ1N0YXRl ICp3aW5zdGF0ZSwgUlBSTkZBU3RhdGUgKnN0YXRlKTsKK3N0YXRpYyB2b2lkIG5mYV9zdGF0ZV9m cmVlX2xpc3QoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFTdGF0ZSAqbGlzdCk7Citz dGF0aWMgUlBSTkZBU3RhdGUgKm5mYV9zdGF0ZV9jcmVhdGUoV2luZG93QWdnU3RhdGUgKndpbnN0 YXRlLCBpbnQxNiBlbGVtSWR4LAorCQkJCQkJCQkJIGludDMyICpjb3VudHMsIGJvb2wgc291cmNl QWJzb3JiYWJsZSk7CitzdGF0aWMgYm9vbCBuZmFfc3RhdGVzX2VxdWFsKFdpbmRvd0FnZ1N0YXRl ICp3aW5zdGF0ZSwgUlBSTkZBU3RhdGUgKnMxLAorCQkJCQkJCSBSUFJORkFTdGF0ZSAqczIpOwor c3RhdGljIGJvb2wgbmZhX2FkZF9zdGF0ZV91bmlxdWUoV2luZG93QWdnU3RhdGUgKndpbnN0YXRl LCBSUFJORkFDb250ZXh0ICpjdHgsCisJCQkJCQkJCSBSUFJORkFTdGF0ZSAqc3RhdGUpOworc3Rh dGljIHZvaWQgbmZhX2FkZF9tYXRjaGVkX3N0YXRlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwg UlBSTkZBQ29udGV4dCAqY3R4LAorCQkJCQkJCQkgIFJQUk5GQVN0YXRlICpzdGF0ZSwgaW50NjQg bWF0Y2hFbmRSb3cpOworCisvKiBGb3J3YXJkIGRlY2xhcmF0aW9ucyAtIE5GQSBjb250ZXh0IG1h bmFnZW1lbnQgKGludGVybmFsKSAqLworc3RhdGljIFJQUk5GQUNvbnRleHQgKm5mYV9jb250ZXh0 X2FsbG9jKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSk7CitzdGF0aWMgdm9pZCBuZmFfdW5saW5r X2NvbnRleHQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgpOwor CisvKiBGb3J3YXJkIGRlY2xhcmF0aW9ucyAtIE5GQSBzdGF0aXN0aWNzICovCitzdGF0aWMgdm9p ZCBuZmFfdXBkYXRlX2xlbmd0aF9zdGF0cyhpbnQ2NCBjb3VudCwgTkZBTGVuZ3RoU3RhdHMgKnN0 YXRzLCBpbnQ2NCBuZXdMZW4pOworc3RhdGljIHZvaWQgbmZhX3JlY29yZF9jb250ZXh0X3NraXBw ZWQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQ2NCBza2lwcGVkTGVuKTsKK3N0YXRpYyB2 b2lkIG5mYV9yZWNvcmRfY29udGV4dF9hYnNvcmJlZChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUs IGludDY0IGFic29yYmVkTGVuKTsKKworLyogRm9yd2FyZCBkZWNsYXJhdGlvbnMgLSBORkEgYWJz b3JwdGlvbiAqLworc3RhdGljIHZvaWQgbmZhX3VwZGF0ZV9hYnNvcnB0aW9uX2ZsYWdzKFJQUk5G QUNvbnRleHQgKmN0eCk7CitzdGF0aWMgYm9vbCBuZmFfc3RhdGVzX2NvdmVyZWQoUlBSUGF0dGVy biAqcGF0dGVybiwgUlBSTkZBQ29udGV4dCAqb2xkZXIsCisJCQkJCQkJICAgUlBSTkZBQ29udGV4 dCAqbmV3ZXIpOworc3RhdGljIHZvaWQgbmZhX3RyeV9hYnNvcmJfY29udGV4dChXaW5kb3dBZ2dT dGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCk7CitzdGF0aWMgdm9pZCBuZmFfYWJz b3JiX2NvbnRleHRzKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSk7CisKKy8qIEZvcndhcmQgZGVj bGFyYXRpb25zIC0gTkZBIG1hdGNoIGFuZCBhZHZhbmNlICovCitzdGF0aWMgYm9vbCBuZmFfZXZh bF92YXJfbWF0Y2goV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLAorCQkJCQkJCSAgIFJQUlBhdHRl cm5FbGVtZW50ICplbGVtLCBib29sICp2YXJNYXRjaGVkKTsKK3N0YXRpYyB2b2lkIG5mYV9tYXRj aChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKKwkJCQkJICBi b29sICp2YXJNYXRjaGVkKTsKK3N0YXRpYyB2b2lkIG5mYV9hZHZhbmNlX3N0YXRlKFdpbmRvd0Fn Z1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAorCQkJCQkJCSAgUlBSTkZBU3Rh dGUgKnN0YXRlLCBpbnQ2NCBjdXJyZW50UG9zKTsKK3N0YXRpYyB2b2lkIG5mYV9yb3V0ZV90b19l bGVtKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAorCQkJCQkJ CSAgUlBSTkZBU3RhdGUgKnN0YXRlLCBSUFJQYXR0ZXJuRWxlbWVudCAqbmV4dEVsZW0sCisJCQkJ CQkJICBpbnQ2NCBjdXJyZW50UG9zKTsKK3N0YXRpYyB2b2lkIG5mYV9hZHZhbmNlX2FsdChXaW5k b3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKKwkJCQkJCQlSUFJORkFT dGF0ZSAqc3RhdGUsIFJQUlBhdHRlcm5FbGVtZW50ICplbGVtLAorCQkJCQkJCWludDY0IGN1cnJl bnRQb3MpOworc3RhdGljIHZvaWQgbmZhX2FkdmFuY2VfYmVnaW4oV2luZG93QWdnU3RhdGUgKndp bnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCisJCQkJCQkJICBSUFJORkFTdGF0ZSAqc3RhdGUs IFJQUlBhdHRlcm5FbGVtZW50ICplbGVtLAorCQkJCQkJCSAgaW50NjQgY3VycmVudFBvcyk7Citz dGF0aWMgdm9pZCBuZmFfYWR2YW5jZV9lbmQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJO RkFDb250ZXh0ICpjdHgsCisJCQkJCQkJUlBSTkZBU3RhdGUgKnN0YXRlLCBSUFJQYXR0ZXJuRWxl bWVudCAqZWxlbSwKKwkJCQkJCQlpbnQ2NCBjdXJyZW50UG9zKTsKK3N0YXRpYyB2b2lkIG5mYV9h ZHZhbmNlX3ZhcihXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwK KwkJCQkJCQlSUFJORkFTdGF0ZSAqc3RhdGUsIFJQUlBhdHRlcm5FbGVtZW50ICplbGVtLAorCQkJ CQkJCWludDY0IGN1cnJlbnRQb3MpOworc3RhdGljIHZvaWQgbmZhX2FkdmFuY2UoV2luZG93QWdn U3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCisJCQkJCQlpbnQ2NCBjdXJyZW50 UG9zKTsKKworLyoKKyAqIE5GQS1iYXNlZCBwYXR0ZXJuIG1hdGNoaW5nIGltcGxlbWVudGF0aW9u CisgKgorICogVGhlc2UgZnVuY3Rpb25zIGltcGxlbWVudCBkaXJlY3QgTkZBIGV4ZWN1dGlvbiB1 c2luZyB0aGUgY29tcGlsZWQKKyAqIFJQUlBhdHRlcm4gc3RydWN0dXJlLCBhdm9pZGluZyByZWdl eCBjb21waWxhdGlvbiBvdmVyaGVhZC4KKyAqCisgKiBFeGVjdXRpb24gRmxvdzogbWF0Y2ggLT4g YWJzb3JiIC0+IGFkdmFuY2UKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgKiBUaGUgTkZBIGV4ZWN1dGlvbiBmb2xsb3dzIGEgdGhyZWUtcGhhc2UgY3ljbGUg Zm9yIGVhY2ggcm93OgorICoKKyAqIDEuIE1BVENIIChjb252ZXJnZW5jZSk6IEV2YWx1YXRlIGFs bCB3YWl0aW5nIHN0YXRlcyBhZ2FpbnN0IGN1cnJlbnQgcm93LgorICogICAgU3RhdGVzIG9uIFZB UiBlbGVtZW50cyBhcmUgY2hlY2tlZCBhZ2FpbnN0IHRoZWlyIGRlZmluaW5nIGNvbmRpdGlvbnMu CisgKiAgICBGYWlsZWQgbWF0Y2hlcyBhcmUgcmVtb3ZlZCwgc3VjY2Vzc2Z1bCBvbmVzIG1heSB0 cmFuc2l0aW9uIGZvcndhcmQuCisgKiAgICBUaGlzIGlzIGEgImNvbnZlcmdlbmNlIiBwaGFzZSAt IHRoZSBudW1iZXIgb2Ygc3RhdGVzIHRlbmRzIHRvIGRlY3JlYXNlLgorICoKKyAqIDIuIEFCU09S QjogQWZ0ZXIgbWF0Y2hpbmcsIGNoZWNrIGlmIGFueSBjb250ZXh0IGNhbiBhYnNvcmIgYW5vdGhl ci4KKyAqICAgIENvbnRleHQgYWJzb3JwdGlvbiBpcyBhbiBvcHRpbWl6YXRpb24gdGhhdCBtZXJn ZXMgZXF1aXZhbGVudCBjb250ZXh0cy4KKyAqICAgIEEgY29udGV4dCBjYW4gb25seSBiZSBhYnNv cmJlZCBpZiBBTEwgaXRzIHN0YXRlcyBhcmUgYWJzb3JiYWJsZS4KKyAqCisgKiAzLiBBRFZBTkNF IChkaXZlcmdlbmNlKTogRXhwYW5kIHN0YXRlcyB0aHJvdWdoIGVwc2lsb24gdHJhbnNpdGlvbnMu CisgKiAgICBTdGF0ZXMgYWR2YW5jZSB0aHJvdWdoIEFMVCAoYWx0ZXJuYXRpb24pLCBFTkQgKGdy b3VwIGVuZCksIGFuZAorICogICAgb3B0aW9uYWwgZWxlbWVudHMgdW50aWwgcmVhY2hpbmcgVkFS IG9yIEZJTiBlbGVtZW50cyB3aGVyZSB0aGV5IHdhaXQuCisgKiAgICBUaGlzIGlzIGEgImRpdmVy Z2VuY2UiIHBoYXNlIC0gQUxUIGNyZWF0ZXMgbXVsdGlwbGUgYnJhbmNoIHN0YXRlcy4KKyAqCisg KiBLZXkgRGVzaWduIERlY2lzaW9uczoKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogLSBW QVItPkVORCB0cmFuc2l0aW9uIGluIG1hdGNoIHBoYXNlOiBXaGVuIGEgc2ltcGxlIFZBUiAobWF4 PTEpIG1hdGNoZXMKKyAqICAgYW5kIHRoZSBuZXh0IGVsZW1lbnQgaXMgRU5ELCB3ZSB0cmFuc2l0 aW9uIGltbWVkaWF0ZWx5IGluIHRoZSBtYXRjaAorICogICBwaGFzZSByYXRoZXIgdGhhbiB3YWl0 aW5nIGZvciBhZHZhbmNlLiBUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgY29ycmVjdAorICogICBhYnNv cnB0aW9uOiBzdGF0ZXMgbXVzdCBiZSBhdCBFTkQgdG8gYmUgbWFya2VkIGFic29yYmFibGUgYmVm b3JlIHRoZQorICogICBhYnNvcnB0aW9uIGNoZWNrIG9jY3Vycy4KKyAqCisgKiAtIE9wdGlvbmFs IFZBUiBza2lwIHBhdGhzOiBXaGVuIGFkdmFuY2UgbGFuZHMgb24gYSBWQVIgd2l0aCBtaW49MCwK KyAqICAgd2UgY3JlYXRlIGJvdGggYSB3YWl0aW5nIHN0YXRlIEFORCBhIHNraXAgc3RhdGUgKGxp a2UgQUxUIGJyYW5jaGVzKS4KKyAqICAgVGhpcyBlbnN1cmVzIHBhdHRlcm5zIGxpa2UgIkEgQj8g QyIgd29yayBjb3JyZWN0bHkgLSB3ZSBuZWVkIGEgc3RhdGUKKyAqICAgd2FpdGluZyBmb3IgQiBB TkQgYSBzdGF0ZSB0aGF0IGhhcyBhbHJlYWR5IHNraXBwZWQgdG8gQy4KKyAqCisgKiAtIEVORC0+ RU5EIGNvdW50IGluY3JlbWVudDogV2hlbiB0cmFuc2l0aW9uaW5nIGZyb20gb25lIEVORCB0byBh bm90aGVyCisgKiAgIEVORCB3aXRoaW4gYWR2YW5jZSwgd2UgbXVzdCBpbmNyZW1lbnQgdGhlIG91 dGVyIEVORCdzIGNvdW50LiBUaGlzCisgKiAgIGhhbmRsZXMgbmVzdGVkIGdyb3VwcyBsaWtlICIo KEF8QikrKSsiIGNvcnJlY3RseSAtIGV4aXRpbmcgdGhlIGlubmVyCisgKiAgIGdyb3VwIGNvdW50 cyBhcyBvbmUgaXRlcmF0aW9uIG9mIHRoZSBvdXRlciBncm91cC4KKyAqCisgKiAtIEVtcHR5IG1h dGNoIGhhbmRsaW5nOiBUaGUgaW5pdGlhbCBhZHZhbmNlIHVzZXMgY3VycmVudFBvcyA9CisgKiAg IHN0YXJ0UG9zIC0gMSAoYmVmb3JlIGFueSByb3cgaXMgY29uc3VtZWQpLiBJZiBGSU4gaXMgcmVh Y2hlZCB2aWEKKyAqICAgZXBzaWxvbiB0cmFuc2l0aW9ucyBhbG9uZSwgbWF0Y2hFbmRSb3cgPSBz dGFydFBvcyAtIDEgPCBtYXRjaFN0YXJ0Um93LgorICogICBJZiBtYXRjaGVkU3RhdGUgaXMgc2V0 IChGSU4gd2FzIHJlYWNoZWQpLCB0aGlzIGlzIGFuIGVtcHR5IG1hdGNoCisgKiAgIChSRl9FTVBU WV9NQVRDSCk7IG90aGVyd2lzZSBpdCBpcyB1bm1hdGNoZWQgKFJGX1VOTUFUQ0hFRCkuCisgKiAg IEZvciByZWx1Y3RhbnQgbWluPTAgcGF0dGVybnMgKEEqPywgQT8/KSwgdGhlIHNraXAgcGF0aCBy ZWFjaGVzCisgKiAgIEZJTiBmaXJzdCBhbmQgZWFybHkgdGVybWluYXRpb24gcHJ1bmVzIGVudGVy IHBhdGhzLCB5aWVsZGluZyBhbgorICogICBpbW1lZGlhdGUgZW1wdHkgbWF0Y2ggcmVzdWx0LiBG b3IgZ3JlZWR5IHBhdHRlcm5zIChBKiksIHRoZSBlbnRlcgorICogICBwYXRoIGFkZHMgVkFSIHN0 YXRlcyBmaXJzdCwgdGhlbiB0aGUgc2tpcCBGSU4gaXMgcmVjb3JkZWQgYnV0IFZBUgorICogICBz dGF0ZXMgc3Vydml2ZSBmb3IgbGF0ZXIgbWF0Y2hpbmcuCisgKgorICogQ29udGV4dCBBYnNvcnB0 aW9uIFJ1bnRpbWU6CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIEFic29ycHRp b24gdXNlcyBmbGFncyBjb21wdXRlZCBhdCBwbGFubmluZyB0aW1lIChpbiBycHIuYykgYW5kIHR3 bworICogY29udGV4dC1sZXZlbCBmbGFncyBtYWludGFpbmVkIGF0IHJ1bnRpbWU6CisgKgorICog U3RhdGUtbGV2ZWw6CisgKiAgIHN0YXRlLmlzQWJzb3JiYWJsZTogdHJ1ZSBpZiBzdGF0ZSBpcyBp biB0aGUgYWJzb3JiYWJsZSByZWdpb24uCisgKiAgICAgLSBTZXQgYXQgY3JlYXRpb246IGVsZW0t PmZsYWdzICYgUlBSX0VMRU1fQUJTT1JCQUJMRV9CUkFOQ0gKKyAqICAgICAtIEF0IHRyYW5zaXRp b246IHByZXZBYnNvcmJhYmxlICYmIChuZXdFbGVtLT5mbGFncyAmIEFCU09SQkFCTEVfQlJBTkNI KQorICogICAgIC0gTW9ub3RvbmljOiBvbmNlIGZhbHNlLCBzdGF5cyBmYWxzZSBmb3JldmVyCisg KgorICogQ29udGV4dC1sZXZlbDoKKyAqICAgY3R4Lmhhc0Fic29yYmFibGVTdGF0ZTogY2FuIHRo aXMgY29udGV4dCBhYnNvcmIgb3RoZXJzPworICogICAgIC0gVHJ1ZSBpZiBhdCBsZWFzdCBvbmUg c3RhdGUgaGFzIGlzQWJzb3JiYWJsZT10cnVlCisgKiAgICAgLSBNb25vdG9uaWM6IHRydWUtPmZh bHNlIG9ubHkgKG9wdGltaXphdGlvbjogc2tpcCByZWNhbGMgd2hlbiBmYWxzZSkKKyAqCisgKiAg IGN0eC5hbGxTdGF0ZXNBYnNvcmJhYmxlOiBjYW4gdGhpcyBjb250ZXh0IGJlIGFic29yYmVkPwor ICogICAgIC0gVHJ1ZSBpZiBBTEwgc3RhdGVzIGhhdmUgaXNBYnNvcmJhYmxlPXRydWUKKyAqICAg ICAtIER5bmFtaWM6IGNhbiBjaGFuZ2UgZmFsc2UtPnRydWUgKHdoZW4gbm9uLWFic29yYmFibGUg c3RhdGVzIGRpZSkKKyAqCisgKiBBYnNvcnB0aW9uIEFsZ29yaXRobToKKyAqICAgRm9yIGVhY2gg cGFpciAob2xkZXIgQ3R4MSwgbmV3ZXIgQ3R4Mik6CisgKiAgIDEuIFByZS1jaGVjazogQ3R4MS5o YXNBYnNvcmJhYmxlU3RhdGUgJiYgQ3R4Mi5hbGxTdGF0ZXNBYnNvcmJhYmxlCisgKiAgICAgIC0+ IElmIGZhbHNlLCBza2lwIChmYXN0IGZpbHRlcikKKyAqICAgMi4gQ292ZXJhZ2UgY2hlY2s6IEZv ciBlYWNoIEN0eDIgc3RhdGUgd2l0aCBpc0Fic29yYmFibGU9dHJ1ZSwKKyAqICAgICAgZmluZCBD dHgxIHN0YXRlIHdpdGggc2FtZSBlbGVtSWR4IGFuZCBjb3VudCA+PSBDdHgyLmNvdW50CisgKiAg IDMuIElmIGFsbCBDdHgyIGFic29yYmFibGUgc3RhdGVzIGFyZSBjb3ZlcmVkLCBhYnNvcmIgQ3R4 MgorICoKKyAqIEV4YW1wbGU6IFBhdHRlcm4gQSsgQgorICogICBSb3cgMTogQ3R4MSBhdCBBIChj b3VudD0xKQorICogICBSb3cgMjogQ3R4MSBhdCBBIChjb3VudD0yKSwgQ3R4MiBhdCBBIChjb3Vu dD0xKQorICogICAtPiBCb3RoIGF0IHNhbWUgZWxlbUlkeCAoQSksIEN0eDEuY291bnQgPj0gQ3R4 Mi5jb3VudAorICogICAtPiBDdHgyIGFic29yYmVkCisgKgorICogVGhlIGFzeW1tZXRyaWMgZGVz aWduIChDdHgxIG5lZWRzIGhhc0Fic29yYmFibGUsIEN0eDIgbmVlZHMgYWxsQWJzb3JiYWJsZSkK KyAqIGFsbG93cyBhYnNvcnB0aW9uIGV2ZW4gd2hlbiBDdHgxIGhhcyBleHRyYSBub24tYWJzb3Ji YWJsZSBzdGF0ZXMuCisgKi8KKworLyoKKyAqIG5mYV9zdGF0ZV9hbGxvYworICoKKyAqIEFsbG9j YXRlIGFuIE5GQSBzdGF0ZSwgcmV1c2luZyBmcm9tIGZyZWVMaXN0IGlmIGF2YWlsYWJsZS4KKyAq IGZyZWVMaXN0IGlzIHN0b3JlZCBpbiBXaW5kb3dBZ2dTdGF0ZSBmb3IgcmV1c2UgYWNyb3NzIG1h dGNoIGF0dGVtcHRzLgorICogVXNlcyBmbGV4aWJsZSBhcnJheSBtZW1iZXIgZm9yIGNvdW50c1td LgorICovCitzdGF0aWMgUlBSTkZBU3RhdGUgKgorbmZhX3N0YXRlX2FsbG9jKFdpbmRvd0FnZ1N0 YXRlICp3aW5zdGF0ZSkKK3sKKwlSUFJORkFTdGF0ZSAqc3RhdGU7CisKKwkvKiBUcnkgdG8gcmV1 c2UgZnJvbSBmcmVlIGxpc3QgZmlyc3QgKi8KKwlpZiAod2luc3RhdGUtPm5mYVN0YXRlRnJlZSAh PSBOVUxMKQorCXsKKwkJc3RhdGUgPSB3aW5zdGF0ZS0+bmZhU3RhdGVGcmVlOworCQl3aW5zdGF0 ZS0+bmZhU3RhdGVGcmVlID0gc3RhdGUtPm5leHQ7CisJfQorCWVsc2UKKwl7CisJCS8qIEFsbG9j YXRlIGluIHBhcnRpdGlvbiBjb250ZXh0IGZvciBwcm9wZXIgbGlmZXRpbWUgKi8KKwkJc3RhdGUg PSBNZW1vcnlDb250ZXh0QWxsb2Mod2luc3RhdGUtPnBhcnRjb250ZXh0LCB3aW5zdGF0ZS0+bmZh U3RhdGVTaXplKTsKKwl9CisKKwkvKiBJbml0aWFsaXplIGVudGlyZSBzdGF0ZSB0byB6ZXJvICov CisJbWVtc2V0KHN0YXRlLCAwLCB3aW5zdGF0ZS0+bmZhU3RhdGVTaXplKTsKKworCS8qIFVwZGF0 ZSBzdGF0aXN0aWNzICovCisJd2luc3RhdGUtPm5mYVN0YXRlc0FjdGl2ZSsrOworCXdpbnN0YXRl LT5uZmFTdGF0ZXNUb3RhbENyZWF0ZWQrKzsKKwl3aW5zdGF0ZS0+bmZhU3RhdGVzTWF4ID0gTWF4 KHdpbnN0YXRlLT5uZmFTdGF0ZXNNYXgsCisJCQkJCQkJCSB3aW5zdGF0ZS0+bmZhU3RhdGVzQWN0 aXZlKTsKKworCXJldHVybiBzdGF0ZTsKK30KKworLyoKKyAqIG5mYV9zdGF0ZV9mcmVlCisgKgor ICogUmV0dXJuIGEgc3RhdGUgdG8gdGhlIGZyZWUgbGlzdCBmb3IgbGF0ZXIgcmV1c2UuCisgKi8K K3N0YXRpYyB2b2lkCituZmFfc3RhdGVfZnJlZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQ Uk5GQVN0YXRlICpzdGF0ZSkKK3sKKwl3aW5zdGF0ZS0+bmZhU3RhdGVzQWN0aXZlLS07CisJc3Rh dGUtPm5leHQgPSB3aW5zdGF0ZS0+bmZhU3RhdGVGcmVlOworCXdpbnN0YXRlLT5uZmFTdGF0ZUZy ZWUgPSBzdGF0ZTsKK30KKworLyoKKyAqIG5mYV9zdGF0ZV9mcmVlX2xpc3QKKyAqCisgKiBSZXR1 cm4gYWxsIHN0YXRlcyBpbiBhIGxpc3QgdG8gdGhlIGZyZWUgbGlzdC4KKyAqLworc3RhdGljIHZv aWQKK25mYV9zdGF0ZV9mcmVlX2xpc3QoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFT dGF0ZSAqbGlzdCkKK3sKKwlSUFJORkFTdGF0ZSAqbmV4dDsKKworCWZvciAoOyBsaXN0ICE9IE5V TEw7IGxpc3QgPSBuZXh0KQorCXsKKwkJbmV4dCA9IGxpc3QtPm5leHQ7CisJCW5mYV9zdGF0ZV9m cmVlKHdpbnN0YXRlLCBsaXN0KTsKKwl9Cit9CisKKy8qCisgKiBuZmFfc3RhdGVfY3JlYXRlCisg KgorICogQ3JlYXRlIGEgbmV3IHN0YXRlIHdpdGggZ2l2ZW4gZWxlbUlkeCBhbmQgY291bnRzLgor ICogaXNBYnNvcmJhYmxlIGlzIGNvbXB1dGVkIGltbWVkaWF0ZWx5OiBpbmhlcml0ZWQgQU5EIG5l dyBlbGVtZW50J3MgZmxhZy4KKyAqIE1vbm90b25pYyBwcm9wZXJ0eTogb25jZSBmYWxzZSwgc3Rh eXMgZmFsc2UgdGhyb3VnaCBhbGwgdHJhbnNpdGlvbnMuCisgKgorICogQ2FsbGVyIGlzIHJlc3Bv bnNpYmxlIGZvciBsaW5raW5nIHRoZSByZXR1cm5lZCBzdGF0ZS4KKyAqLworc3RhdGljIFJQUk5G QVN0YXRlICoKK25mYV9zdGF0ZV9jcmVhdGUoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQx NiBlbGVtSWR4LAorCQkJCSBpbnQzMiAqY291bnRzLCBib29sIHNvdXJjZUFic29yYmFibGUpCit7 CisJUlBSUGF0dGVybiAqcGF0dGVybiA9IHdpbnN0YXRlLT5ycFBhdHRlcm47CisJaW50CQkJbWF4 RGVwdGggPSBwYXR0ZXJuLT5tYXhEZXB0aDsKKwlSUFJORkFTdGF0ZSAqc3RhdGUgPSBuZmFfc3Rh dGVfYWxsb2Mod2luc3RhdGUpOworCVJQUlBhdHRlcm5FbGVtZW50ICplbGVtID0gJnBhdHRlcm4t PmVsZW1lbnRzW2VsZW1JZHhdOworCisJc3RhdGUtPmVsZW1JZHggPSBlbGVtSWR4OworCWlmIChj b3VudHMgIT0gTlVMTCAmJiBtYXhEZXB0aCA+IDApCisJCW1lbWNweShzdGF0ZS0+Y291bnRzLCBj b3VudHMsIHNpemVvZihpbnQzMikgKiBtYXhEZXB0aCk7CisKKwkvKgorCSAqIENvbXB1dGUgaXNB YnNvcmJhYmxlIGltbWVkaWF0ZWx5IGF0IHRyYW5zaXRpb24gdGltZS4gaXNBYnNvcmJhYmxlID0K KwkgKiBzb3VyY2VBYnNvcmJhYmxlICYmIChlbGVtLT5mbGFncyAmIEFCU09SQkFCTEVfQlJBTkNI KSBNb25vdG9uaWM6IG9uY2UKKwkgKiBmYWxzZSwgc3RheXMgZmFsc2UgKGNhbid0IHJlLWVudGVy IGFic29yYmFibGUgcmVnaW9uKS4KKwkgKi8KKwlzdGF0ZS0+aXNBYnNvcmJhYmxlID0gc291cmNl QWJzb3JiYWJsZSAmJiBSUFJFbGVtSXNBYnNvcmJhYmxlQnJhbmNoKGVsZW0pOworCisJcmV0dXJu IHN0YXRlOworfQorCisvKgorICogbmZhX3N0YXRlc19lcXVhbAorICoKKyAqIENoZWNrIGlmIHR3 byBzdGF0ZXMgYXJlIGVxdWl2YWxlbnQgKHNhbWUgZWxlbUlkeCBhbmQgY291bnRzKS4KKyAqLwor c3RhdGljIGJvb2wKK25mYV9zdGF0ZXNfZXF1YWwoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBS UFJORkFTdGF0ZSAqczEsIFJQUk5GQVN0YXRlICpzMikKK3sKKwlSUFJQYXR0ZXJuICpwYXR0ZXJu ID0gd2luc3RhdGUtPnJwUGF0dGVybjsKKwlSUFJQYXR0ZXJuRWxlbWVudCAqZWxlbTsKKwlpbnQJ CQljb21wYXJlRGVwdGg7CisKKwlpZiAoczEtPmVsZW1JZHggIT0gczItPmVsZW1JZHgpCisJCXJl dHVybiBmYWxzZTsKKworCS8qIENvbXBhcmUgY291bnRzIHVwIHRvIGN1cnJlbnQgZWxlbWVudCdz IGRlcHRoICovCisJZWxlbSA9ICZwYXR0ZXJuLT5lbGVtZW50c1tzMS0+ZWxlbUlkeF07CisJY29t cGFyZURlcHRoID0gZWxlbS0+ZGVwdGggKyAxOyAvKiBkZXB0aCAwIG5lZWRzIDEgY291bnQsIGV0 Yy4gKi8KKworCWlmIChtZW1jbXAoczEtPmNvdW50cywgczItPmNvdW50cywgc2l6ZW9mKGludDMy KSAqIGNvbXBhcmVEZXB0aCkgIT0gMCkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuIHRydWU7 Cit9CisKKy8qCisgKiBuZmFfYWRkX3N0YXRlX3VuaXF1ZQorICoKKyAqIEFkZCBhIHN0YXRlIHRv IGN0eC0+c3RhdGVzIGF0IHRoZSBFTkQsIG9ubHkgaWYgbm8gZHVwbGljYXRlIGV4aXN0cy4KKyAq IFJldHVybnMgdHJ1ZSBpZiBzdGF0ZSB3YXMgYWRkZWQsIGZhbHNlIGlmIGR1cGxpY2F0ZSBmb3Vu ZCAoc3RhdGUgaXMgZnJlZWQpLgorICogRWFybGllciBzdGF0ZXMgaGF2ZSBiZXR0ZXIgbGV4aWNh bCBvcmRlciAoREZTIHRyYXZlcnNhbCBvcmRlciksIHNvIGV4aXN0aW5nIHdpbnMuCisgKi8KK3N0 YXRpYyBib29sCituZmFfYWRkX3N0YXRlX3VuaXF1ZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUs IFJQUk5GQUNvbnRleHQgKmN0eCwgUlBSTkZBU3RhdGUgKnN0YXRlKQoreworCVJQUk5GQVN0YXRl ICpzOworCVJQUk5GQVN0YXRlICp0YWlsID0gTlVMTDsKKworCS8qIE1hcmsgVkFSIGluIHZpc2l0 ZWQgYmVmb3JlIGR1cGxpY2F0ZSBjaGVjayB0byBwcmV2ZW50IERGUyBsb29wcyAqLworCXdpbnN0 YXRlLT5uZmFWaXNpdGVkRWxlbXNbV09SRE5VTShzdGF0ZS0+ZWxlbUlkeCldIHw9CisJCSgoYml0 bWFwd29yZCkgMSA8PCBCSVROVU0oc3RhdGUtPmVsZW1JZHgpKTsKKworCS8qIENoZWNrIGZvciBk dXBsaWNhdGUgYW5kIGZpbmQgdGFpbCAqLworCWZvciAocyA9IGN0eC0+c3RhdGVzOyBzICE9IE5V TEw7IHMgPSBzLT5uZXh0KQorCXsKKwkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKKworCQlpZiAo bmZhX3N0YXRlc19lcXVhbCh3aW5zdGF0ZSwgcywgc3RhdGUpKQorCQl7CisJCQkvKgorCQkJICog RHVwbGljYXRlIGZvdW5kIC0gZXhpc3RpbmcgaGFzIGJldHRlciBsZXhpY2FsIG9yZGVyLCBkaXNj YXJkCisJCQkgKiBuZXcKKwkJCSAqLworCQkJbmZhX3N0YXRlX2ZyZWUod2luc3RhdGUsIHN0YXRl KTsKKwkJCXdpbnN0YXRlLT5uZmFTdGF0ZXNNZXJnZWQrKzsKKwkJCXJldHVybiBmYWxzZTsKKwkJ fQorCQl0YWlsID0gczsKKwl9CisKKwkvKiBObyBkdXBsaWNhdGUsIGFkZCBhdCBlbmQgKi8KKwlz dGF0ZS0+bmV4dCA9IE5VTEw7CisJaWYgKHRhaWwgPT0gTlVMTCkKKwkJY3R4LT5zdGF0ZXMgPSBz dGF0ZTsKKwllbHNlCisJCXRhaWwtPm5leHQgPSBzdGF0ZTsKKworCXJldHVybiB0cnVlOworfQor CisvKgorICogbmZhX2FkZF9tYXRjaGVkX3N0YXRlCisgKgorICogUmVjb3JkIGEgc3RhdGUgdGhh dCByZWFjaGVkIEZJTiwgcmVwbGFjaW5nIGFueSBwcmV2aW91cyBtYXRjaC4KKyAqCisgKiBGb3Ig U0tJUCBQQVNUIExBU1QgUk9XLCBhbHNvIHBydW5lIHN1YnNlcXVlbnQgY29udGV4dHMgd2hvc2Ug c3RhcnQgcm93CisgKiBmYWxscyB3aXRoaW4gdGhlIG1hdGNoIHJhbmdlLCBhcyB0aGV5IGNhbm5v dCBwcm9kdWNlIG91dHB1dCByb3dzLgorICovCitzdGF0aWMgdm9pZAorbmZhX2FkZF9tYXRjaGVk X3N0YXRlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAorCQkJ CQkgIFJQUk5GQVN0YXRlICpzdGF0ZSwgaW50NjQgbWF0Y2hFbmRSb3cpCit7CisJaWYgKGN0eC0+ bWF0Y2hlZFN0YXRlICE9IE5VTEwpCisJCW5mYV9zdGF0ZV9mcmVlKHdpbnN0YXRlLCBjdHgtPm1h dGNoZWRTdGF0ZSk7CisKKwljdHgtPm1hdGNoZWRTdGF0ZSA9IHN0YXRlOworCXN0YXRlLT5uZXh0 ID0gTlVMTDsKKwljdHgtPm1hdGNoRW5kUm93ID0gbWF0Y2hFbmRSb3c7CisKKwkvKiBQcnVuZSBj b250ZXh0cyB0aGF0IHN0YXJ0ZWQgd2l0aGluIHRoaXMgbWF0Y2gncyByYW5nZSAqLworCWlmICh3 aW5zdGF0ZS0+cnBTa2lwVG8gPT0gU1RfUEFTVF9MQVNUX1JPVykKKwl7CisJCWludDY0CQlza2lw cGVkTGVuOworCisJCXdoaWxlIChjdHgtPm5leHQgIT0gTlVMTCAmJgorCQkJICAgY3R4LT5uZXh0 LT5tYXRjaFN0YXJ0Um93IDw9IG1hdGNoRW5kUm93KQorCQl7CisJCQlSUFJORkFDb250ZXh0ICpu ZXh0Q3R4ID0gY3R4LT5uZXh0OworCisJCQlBc3NlcnQobmV4dEN0eC0+bGFzdFByb2Nlc3NlZFJv dyA+PSBuZXh0Q3R4LT5tYXRjaFN0YXJ0Um93KTsKKwkJCXNraXBwZWRMZW4gPSBuZXh0Q3R4LT5s YXN0UHJvY2Vzc2VkUm93IC0gbmV4dEN0eC0+bWF0Y2hTdGFydFJvdyArIDE7CisJCQluZmFfcmVj b3JkX2NvbnRleHRfc2tpcHBlZCh3aW5zdGF0ZSwgc2tpcHBlZExlbik7CisKKwkJCUV4ZWNSUFJG cmVlQ29udGV4dCh3aW5zdGF0ZSwgbmV4dEN0eCk7CisJCX0KKwl9Cit9CisKKy8qCisgKiBuZmFf Y29udGV4dF9hbGxvYworICoKKyAqIEFsbG9jYXRlIGFuIE5GQSBjb250ZXh0LCByZXVzaW5nIGZy b20gZnJlZSBsaXN0IGlmIGF2YWlsYWJsZS4KKyAqLworc3RhdGljIFJQUk5GQUNvbnRleHQgKgor bmZhX2NvbnRleHRfYWxsb2MoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKQoreworCVJQUk5GQUNv bnRleHQgKmN0eDsKKworCWlmICh3aW5zdGF0ZS0+bmZhQ29udGV4dEZyZWUgIT0gTlVMTCkKKwl7 CisJCWN0eCA9IHdpbnN0YXRlLT5uZmFDb250ZXh0RnJlZTsKKwkJd2luc3RhdGUtPm5mYUNvbnRl eHRGcmVlID0gY3R4LT5uZXh0OworCX0KKwllbHNlCisJeworCQkvKiBBbGxvY2F0ZSBpbiBwYXJ0 aXRpb24gY29udGV4dCBmb3IgcHJvcGVyIGxpZmV0aW1lICovCisJCWN0eCA9IE1lbW9yeUNvbnRl eHRBbGxvYyh3aW5zdGF0ZS0+cGFydGNvbnRleHQsIHNpemVvZihSUFJORkFDb250ZXh0KSk7CisJ fQorCisJY3R4LT5uZXh0ID0gTlVMTDsKKwljdHgtPnByZXYgPSBOVUxMOworCWN0eC0+c3RhdGVz ID0gTlVMTDsKKwljdHgtPm1hdGNoU3RhcnRSb3cgPSAtMTsKKwljdHgtPm1hdGNoRW5kUm93ID0g LTE7CisJY3R4LT5sYXN0UHJvY2Vzc2VkUm93ID0gLTE7CisJY3R4LT5tYXRjaGVkU3RhdGUgPSBO VUxMOworCisJLyogSW5pdGlhbGl6ZSB0d28tZmxhZyBhYnNvcnB0aW9uIGRlc2lnbiBiYXNlZCBv biBwYXR0ZXJuICovCisJY3R4LT5oYXNBYnNvcmJhYmxlU3RhdGUgPSB3aW5zdGF0ZS0+cnBQYXR0 ZXJuLT5pc0Fic29yYmFibGU7CisJY3R4LT5hbGxTdGF0ZXNBYnNvcmJhYmxlID0gd2luc3RhdGUt PnJwUGF0dGVybi0+aXNBYnNvcmJhYmxlOworCisJLyogVXBkYXRlIHN0YXRpc3RpY3MgKi8KKwl3 aW5zdGF0ZS0+bmZhQ29udGV4dHNBY3RpdmUrKzsKKwl3aW5zdGF0ZS0+bmZhQ29udGV4dHNUb3Rh bENyZWF0ZWQrKzsKKwl3aW5zdGF0ZS0+bmZhQ29udGV4dHNNYXggPSBNYXgod2luc3RhdGUtPm5m YUNvbnRleHRzTWF4LAorCQkJCQkJCQkgICB3aW5zdGF0ZS0+bmZhQ29udGV4dHNBY3RpdmUpOwor CisJcmV0dXJuIGN0eDsKK30KKworLyoKKyAqIG5mYV91bmxpbmtfY29udGV4dAorICoKKyAqIFJl bW92ZSBhIGNvbnRleHQgZnJvbSB0aGUgZG91Ymx5LWxpbmtlZCBhY3RpdmUgY29udGV4dCBsaXN0 LgorICogVXBkYXRlcyBoZWFkIChuZmFDb250ZXh0KSBhbmQgdGFpbCAobmZhQ29udGV4dFRhaWwp IGFzIG5lZWRlZC4KKyAqLworc3RhdGljIHZvaWQKK25mYV91bmxpbmtfY29udGV4dChXaW5kb3dB Z2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCkKK3sKKwlpZiAoY3R4LT5wcmV2 ICE9IE5VTEwpCisJCWN0eC0+cHJldi0+bmV4dCA9IGN0eC0+bmV4dDsKKwllbHNlCisJCXdpbnN0 YXRlLT5uZmFDb250ZXh0ID0gY3R4LT5uZXh0OwkvKiB3YXMgaGVhZCAqLworCisJaWYgKGN0eC0+ bmV4dCAhPSBOVUxMKQorCQljdHgtPm5leHQtPnByZXYgPSBjdHgtPnByZXY7CisJZWxzZQorCQl3 aW5zdGF0ZS0+bmZhQ29udGV4dFRhaWwgPSBjdHgtPnByZXY7CS8qIHdhcyB0YWlsICovCisKKwlj dHgtPm5leHQgPSBOVUxMOworCWN0eC0+cHJldiA9IE5VTEw7Cit9CisKKy8qCisgKiBuZmFfdXBk YXRlX2xlbmd0aF9zdGF0cworICoKKyAqIEhlbHBlciBmdW5jdGlvbiB0byB1cGRhdGUgbWluL21h eC90b3RhbCBsZW5ndGggc3RhdGlzdGljcy4KKyAqIENhbGxlZCB3aGVuIHRyYWNraW5nIG1hdGNo L21pc21hdGNoL2Fic29yYmVkL3NraXBwZWQgbGVuZ3Rocy4KKyAqLworc3RhdGljIHZvaWQKK25m YV91cGRhdGVfbGVuZ3RoX3N0YXRzKGludDY0IGNvdW50LCBORkFMZW5ndGhTdGF0cyAqc3RhdHMs IGludDY0IG5ld0xlbikKK3sKKwlpZiAoY291bnQgPT0gMSkKKwl7CisJCXN0YXRzLT5taW4gPSBu ZXdMZW47CisJCXN0YXRzLT5tYXggPSBuZXdMZW47CisJfQorCWVsc2UKKwl7CisJCXN0YXRzLT5t aW4gPSBNaW4oc3RhdHMtPm1pbiwgbmV3TGVuKTsKKwkJc3RhdHMtPm1heCA9IE1heChzdGF0cy0+ bWF4LCBuZXdMZW4pOworCX0KKwlzdGF0cy0+dG90YWwgKz0gbmV3TGVuOworfQorCisvKgorICog bmZhX3JlY29yZF9jb250ZXh0X3NraXBwZWQKKyAqCisgKiBSZWNvcmQgYSBza2lwcGVkIGNvbnRl eHQgaW4gc3RhdGlzdGljcy4KKyAqLworc3RhdGljIHZvaWQKK25mYV9yZWNvcmRfY29udGV4dF9z a2lwcGVkKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgaW50NjQgc2tpcHBlZExlbikKK3sKKwl3 aW5zdGF0ZS0+bmZhQ29udGV4dHNTa2lwcGVkKys7CisJbmZhX3VwZGF0ZV9sZW5ndGhfc3RhdHMo d2luc3RhdGUtPm5mYUNvbnRleHRzU2tpcHBlZCwKKwkJCQkJCQkmd2luc3RhdGUtPm5mYVNraXBw ZWRMZW4sCisJCQkJCQkJc2tpcHBlZExlbik7Cit9CisKKy8qCisgKiBuZmFfcmVjb3JkX2NvbnRl eHRfYWJzb3JiZWQKKyAqCisgKiBSZWNvcmQgYW4gYWJzb3JiZWQgY29udGV4dCBpbiBzdGF0aXN0 aWNzLgorICovCitzdGF0aWMgdm9pZAorbmZhX3JlY29yZF9jb250ZXh0X2Fic29yYmVkKFdpbmRv d0FnZ1N0YXRlICp3aW5zdGF0ZSwgaW50NjQgYWJzb3JiZWRMZW4pCit7CisJd2luc3RhdGUtPm5m YUNvbnRleHRzQWJzb3JiZWQrKzsKKwluZmFfdXBkYXRlX2xlbmd0aF9zdGF0cyh3aW5zdGF0ZS0+ bmZhQ29udGV4dHNBYnNvcmJlZCwKKwkJCQkJCQkmd2luc3RhdGUtPm5mYUFic29yYmVkTGVuLAor CQkJCQkJCWFic29yYmVkTGVuKTsKK30KKworLyoKKyAqIG5mYV91cGRhdGVfYWJzb3JwdGlvbl9m bGFncworICoKKyAqIFVwZGF0ZSBjb250ZXh0J3MgYWJzb3JwdGlvbiBmbGFncyBhZnRlciBzdGF0 ZSBjaGFuZ2VzLgorICoKKyAqIFR3byBmbGFncyBjb250cm9sIGFic29ycHRpb24gYmVoYXZpb3I6 CisgKiAgIGhhc0Fic29yYmFibGVTdGF0ZTogdHJ1ZSBpZiBjb250ZXh0IGhhcyBhdCBsZWFzdCBv bmUgYWJzb3JiYWJsZSBzdGF0ZS4KKyAqICAgICBUaGlzIGZsYWcgaXMgbW9ub3RvbmljICh0cnVl IC0+IGZhbHNlIG9ubHkpLiBPbmNlIGFsbCBhYnNvcmJhYmxlIHN0YXRlcworICogICAgIGRpZSwg bm8gbmV3IGFic29yYmFibGUgc3RhdGVzIGNhbiBiZSBjcmVhdGVkIHRocm91Z2ggdHJhbnNpdGlv bnMuCisgKiAgIGFsbFN0YXRlc0Fic29yYmFibGU6IHRydWUgaWYgQUxMIHN0YXRlcyBpbiBjb250 ZXh0IGFyZSBhYnNvcmJhYmxlLgorICogICAgIFRoaXMgZmxhZyBpcyBkeW5hbWljIGFuZCBjYW4g Y2hhbmdlIGZhbHNlIC0+IHRydWUgd2hlbiBub24tYWJzb3JiYWJsZQorICogICAgIHN0YXRlcyBk aWUgb2ZmLgorICoKKyAqIE9wdGltaXphdGlvbjogT25jZSBoYXNBYnNvcmJhYmxlU3RhdGUgYmVj b21lcyBmYWxzZSwgYm90aCBmbGFncyByZW1haW4gZmFsc2UKKyAqIHBlcm1hbmVudGx5LCBzbyB3 ZSBza2lwIHJlY2FsY3VsYXRpb24uCisgKi8KK3N0YXRpYyB2b2lkCituZmFfdXBkYXRlX2Fic29y cHRpb25fZmxhZ3MoUlBSTkZBQ29udGV4dCAqY3R4KQoreworCVJQUk5GQVN0YXRlICpzdGF0ZTsK Kwlib29sCQloYXNBYnNvcmJhYmxlID0gZmFsc2U7CisJYm9vbAkJYWxsQWJzb3JiYWJsZSA9IHRy dWU7CisKKwkvKgorCSAqIE9wdGltaXphdGlvbjogT25jZSBoYXNBYnNvcmJhYmxlU3RhdGUgYmVj b21lcyBmYWxzZSwgaXQgc3RheXMgZmFsc2UuIE5vCisJICogbmVlZCB0byByZWNhbGN1bGF0ZSAt IGJvdGggZmxhZ3MgcmVtYWluIGZhbHNlIHBlcm1hbmVudGx5LgorCSAqLworCWlmICghY3R4LT5o YXNBYnNvcmJhYmxlU3RhdGUpCisJeworCQljdHgtPmFsbFN0YXRlc0Fic29yYmFibGUgPSBmYWxz ZTsKKwkJcmV0dXJuOworCX0KKworCS8qIE5vIHN0YXRlcyBtZWFucyBubyBhYnNvcmJhYmxlIHN0 YXRlcyAqLworCWlmIChjdHgtPnN0YXRlcyA9PSBOVUxMKQorCXsKKwkJY3R4LT5oYXNBYnNvcmJh YmxlU3RhdGUgPSBmYWxzZTsKKwkJY3R4LT5hbGxTdGF0ZXNBYnNvcmJhYmxlID0gZmFsc2U7CisJ CXJldHVybjsKKwl9CisKKwkvKgorCSAqIEl0ZXJhdGUgdGhyb3VnaCBhbGwgc3RhdGVzIHRvIGNo ZWNrIGFic29ycHRpb24gc3RhdHVzLiBVc2VzCisJICogc3RhdGUtPmlzQWJzb3JiYWJsZSB3aGlj aCB0cmFja3MgaWYgc3RhdGUgaXMgaW4gYWJzb3JiYWJsZSByZWdpb24uIFRoaXMKKwkgKiBpcyBk aWZmZXJlbnQgZnJvbSBSUFJFbGVtSXNBYnNvcmJhYmxlKGVsZW0pIHdoaWNoIGNoZWNrcyBqdWRn bWVudAorCSAqIHBvaW50LgorCSAqLworCWZvciAoc3RhdGUgPSBjdHgtPnN0YXRlczsgc3RhdGUg IT0gTlVMTDsgc3RhdGUgPSBzdGF0ZS0+bmV4dCkKKwl7CisJCUNIRUNLX0ZPUl9JTlRFUlJVUFRT KCk7CisKKwkJaWYgKHN0YXRlLT5pc0Fic29yYmFibGUpCisJCQloYXNBYnNvcmJhYmxlID0gdHJ1 ZTsKKwkJZWxzZQorCQkJYWxsQWJzb3JiYWJsZSA9IGZhbHNlOworCX0KKworCWN0eC0+aGFzQWJz b3JiYWJsZVN0YXRlID0gaGFzQWJzb3JiYWJsZTsKKwljdHgtPmFsbFN0YXRlc0Fic29yYmFibGUg PSBhbGxBYnNvcmJhYmxlOworfQorCisvKgorICogbmZhX3N0YXRlc19jb3ZlcmVkCisgKgorICog Q2hlY2sgaWYgYWxsIHN0YXRlcyBpbiBuZXdlciBjb250ZXh0IGFyZSAiY292ZXJlZCIgYnkgb2xk ZXIgY29udGV4dC4KKyAqCisgKiBBIG5ld2VyIHN0YXRlIGlzIGNvdmVyZWQgd2hlbiBvbGRlciBj b250ZXh0IGhhcyBhbiBhYnNvcmJhYmxlIHN0YXRlIGF0IHRoZQorICogc2FtZSBwYXR0ZXJuIGVs ZW1lbnQgKGVsZW1JZHgpIHdpdGggY291bnQgPj0gbmV3ZXIncyBjb3VudCBhdCB0aGF0IGRlcHRo LgorICogVGhlIGNvdmVyaW5nIHN0YXRlIG11c3QgYmUgYWJzb3JiYWJsZSBiZWNhdXNlIG9ubHkg YWJzb3JiYWJsZSBzdGF0ZXMgY2FuCisgKiBndWFyYW50ZWUgdG8gcHJvZHVjZSBzdXBlcnNldCBt YXRjaGVzLgorICoKKyAqIElmIGFsbCBuZXdlciBzdGF0ZXMgYXJlIGNvdmVyZWQsIG5ld2VyIGNv bnRleHQncyBldmVudHVhbCBtYXRjaGVzIHdpbGwgYmUKKyAqIGEgc3Vic2V0IG9mIG9sZGVyIGNv bnRleHQncyBtYXRjaGVzLCBtYWtpbmcgbmV3ZXIgcmVkdW5kYW50LgorICovCitzdGF0aWMgYm9v bAorbmZhX3N0YXRlc19jb3ZlcmVkKFJQUlBhdHRlcm4gKnBhdHRlcm4sIFJQUk5GQUNvbnRleHQg Km9sZGVyLCBSUFJORkFDb250ZXh0ICpuZXdlcikKK3sKKwlSUFJORkFTdGF0ZSAqbmV3ZXJTdGF0 ZTsKKworCWZvciAobmV3ZXJTdGF0ZSA9IG5ld2VyLT5zdGF0ZXM7IG5ld2VyU3RhdGUgIT0gTlVM TDsgbmV3ZXJTdGF0ZSA9IG5ld2VyU3RhdGUtPm5leHQpCisJeworCQlSUFJORkFTdGF0ZSAqb2xk ZXJTdGF0ZTsKKwkJUlBSUGF0dGVybkVsZW1lbnQgKmVsZW07CisJCWludAkJCWRlcHRoOworCQli b29sCQlmb3VuZCA9IGZhbHNlOworCisJCS8qIEFsbCBzdGF0ZXMgYXJlIGFic29yYmFibGUgKGNh bGxlciBjaGVja3MgYWxsU3RhdGVzQWJzb3JiYWJsZSkgKi8KKwkJZWxlbSA9ICZwYXR0ZXJuLT5l bGVtZW50c1tuZXdlclN0YXRlLT5lbGVtSWR4XTsKKwkJZGVwdGggPSBlbGVtLT5kZXB0aDsKKwor CQkvKgorCQkgKiBPbmx5IGNvbXBhcmUgYXQgYWJzb3JwdGlvbiBqdWRnbWVudCBwb2ludHMgKFJQ Ul9FTEVNX0FCU09SQkFCTEUpLgorCQkgKiBKdWRnbWVudCBwb2ludHMgYXJlIHdoZXJlIGNvdW50 LWRvbWluYW5jZSBndWFyYW50ZWVzIHRoZSBuZXdlcgorCQkgKiBjb250ZXh0J3MgZnV0dXJlIG1h dGNoZXMgYXJlIGEgc3Vic2V0IG9mIHRoZSBvbGRlcidzLgorCQkgKi8KKwkJaWYgKCFSUFJFbGVt SXNBYnNvcmJhYmxlKGVsZW0pKQorCQkJcmV0dXJuIGZhbHNlOworCisJCWZvciAob2xkZXJTdGF0 ZSA9IG9sZGVyLT5zdGF0ZXM7IG9sZGVyU3RhdGUgIT0gTlVMTDsgb2xkZXJTdGF0ZSA9IG9sZGVy U3RhdGUtPm5leHQpCisJCXsKKwkJCUNIRUNLX0ZPUl9JTlRFUlJVUFRTKCk7CisKKwkJCS8qIENv dmVyaW5nIHN0YXRlIG11c3QgYWxzbyBiZSBhYnNvcmJhYmxlICovCisJCQlpZiAob2xkZXJTdGF0 ZS0+aXNBYnNvcmJhYmxlICYmCisJCQkJb2xkZXJTdGF0ZS0+ZWxlbUlkeCA9PSBuZXdlclN0YXRl LT5lbGVtSWR4ICYmCisJCQkJb2xkZXJTdGF0ZS0+Y291bnRzW2RlcHRoXSA+PSBuZXdlclN0YXRl LT5jb3VudHNbZGVwdGhdKQorCQkJeworCQkJCWZvdW5kID0gdHJ1ZTsKKwkJCQlicmVhazsKKwkJ CX0KKwkJfQorCisJCWlmICghZm91bmQpCisJCQlyZXR1cm4gZmFsc2U7CisJfQorCisJcmV0dXJu IHRydWU7Cit9CisKKy8qCisgKiBuZmFfdHJ5X2Fic29yYl9jb250ZXh0CisgKgorICogVHJ5IHRv IGFic29yYiBjdHggKG5ld2VyKSBpbnRvIGFuIG9sZGVyIGluLXByb2dyZXNzIGNvbnRleHQuCisg KiBSZXR1cm5zIHRydWUgaWYgY3R4IHdhcyBhYnNvcmJlZCBhbmQgZnJlZWQuCisgKgorICogQWJz b3JwdGlvbiByZXF1aXJlcyB0aHJlZSBjb25kaXRpb25zOgorICogICAxLiBjdHggbXVzdCBoYXZl IGFsbCBzdGF0ZXMgYWJzb3JiYWJsZSAoYWxsU3RhdGVzQWJzb3JiYWJsZSkuCisgKiAgICAgIElm IGN0eCBoYXMgYW55IG5vbi1hYnNvcmJhYmxlIHN0YXRlLCBpdCBtYXkgcHJvZHVjZSB1bmlxdWUg bWF0Y2hlcy4KKyAqICAgMi4gb2xkZXIgbXVzdCBoYXZlIGF0IGxlYXN0IG9uZSBhYnNvcmJhYmxl IHN0YXRlIChoYXNBYnNvcmJhYmxlU3RhdGUpLgorICogICAgICBXaXRob3V0IGFic29yYmFibGUg c3RhdGVzLCBvbGRlciBjYW5ub3QgY292ZXIgbmV3ZXIncyBzdGF0ZXMuCisgKiAgIDMuIEFsbCBj dHggc3RhdGVzIG11c3QgYmUgY292ZXJlZCBieSBvbGRlcidzIGFic29yYmFibGUgc3RhdGVzLgor ICogICAgICBUaGlzIGVuc3VyZXMgb2xkZXIgd2lsbCBwcm9kdWNlIGFsbCBtYXRjaGVzIHRoYXQg Y3R4IHdvdWxkIHByb2R1Y2UuCisgKgorICogQ29udGV4dCBsaXN0IGlzIG9yZGVyZWQgYnkgY3Jl YXRpb24gdGltZSAob2xkZXN0IGZpcnN0IHZpYSBwcmV2IGNoYWluKS4KKyAqIEVhY2ggcm93IGNy ZWF0ZXMgYXQgbW9zdCBvbmUgY29udGV4dCwgc28gZWFybGllciBjb250ZXh0cyBoYXZlIHNtYWxs ZXIKKyAqIG1hdGNoU3RhcnRSb3cgdmFsdWVzLgorICovCitzdGF0aWMgdm9pZAorbmZhX3RyeV9h YnNvcmJfY29udGV4dChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0 eCkKK3sKKwlSUFJQYXR0ZXJuICpwYXR0ZXJuID0gd2luc3RhdGUtPnJwUGF0dGVybjsKKwlSUFJO RkFDb250ZXh0ICpvbGRlcjsKKworCS8qIEVhcmx5IGV4aXQ6IGN0eCBtdXN0IGhhdmUgYWxsIHN0 YXRlcyBhYnNvcmJhYmxlICovCisJaWYgKCFjdHgtPmFsbFN0YXRlc0Fic29yYmFibGUpCisJCXJl dHVybjsKKworCWZvciAob2xkZXIgPSBjdHgtPnByZXY7IG9sZGVyICE9IE5VTEw7IG9sZGVyID0g b2xkZXItPnByZXYpCisJeworCQlDSEVDS19GT1JfSU5URVJSVVBUUygpOworCisJCS8qCisJCSAq IEJ5IGludmFyaWFudDogY3R4LT5wcmV2IGNoYWluIGlzIGluIGNyZWF0aW9uIG9yZGVyIChvbGRl c3QgZmlyc3QpLAorCQkgKiBhbmQgZWFjaCByb3cgY3JlYXRlcyBhdCBtb3N0IG9uZSBjb250ZXh0 LiBTbyBhbGwgY29udGV4dHMgaW4gdGhpcworCQkgKiBjaGFpbiBoYXZlIG1hdGNoU3RhcnRSb3cg PCBjdHgtPm1hdGNoU3RhcnRSb3cuCisJCSAqLworCisJCS8qIE9sZGVyIG11c3QgYWxzbyBiZSBp bi1wcm9ncmVzcyAqLworCQlpZiAob2xkZXItPnN0YXRlcyA9PSBOVUxMKQorCQkJY29udGludWU7 CisKKwkJLyogT2xkZXIgbXVzdCBoYXZlIGF0IGxlYXN0IG9uZSBhYnNvcmJhYmxlIHN0YXRlICov CisJCWlmICghb2xkZXItPmhhc0Fic29yYmFibGVTdGF0ZSkKKwkJCWNvbnRpbnVlOworCisJCS8q IENoZWNrIGlmIGFsbCBuZXdlciBzdGF0ZXMgYXJlIGNvdmVyZWQgYnkgb2xkZXIgKi8KKwkJaWYg KG5mYV9zdGF0ZXNfY292ZXJlZChwYXR0ZXJuLCBvbGRlciwgY3R4KSkKKwkJeworCQkJaW50NjQJ CWFic29yYmVkTGVuID0gY3R4LT5sYXN0UHJvY2Vzc2VkUm93IC0gY3R4LT5tYXRjaFN0YXJ0Um93 ICsgMTsKKworCQkJRXhlY1JQUkZyZWVDb250ZXh0KHdpbnN0YXRlLCBjdHgpOworCQkJbmZhX3Jl Y29yZF9jb250ZXh0X2Fic29yYmVkKHdpbnN0YXRlLCBhYnNvcmJlZExlbik7CisJCQlyZXR1cm47 CisJCX0KKwl9Cit9CisKKy8qCisgKiBuZmFfYWJzb3JiX2NvbnRleHRzCisgKgorICogQWJzb3Ji IHJlZHVuZGFudCBjb250ZXh0cyB0byByZWR1Y2UgbWVtb3J5IHVzYWdlIGFuZCBjb21wdXRhdGlv bi4KKyAqCisgKiBGb3IgcGF0dGVybnMgbGlrZSBBKywgbmV3ZXIgY29udGV4dHMgc3RhcnRpbmcg bGF0ZXIgd2lsbCBwcm9kdWNlIHN1YnNldAorICogbWF0Y2hlcyBvZiBvbGRlciBjb250ZXh0cyB3 aXRoIGhpZ2hlciBjb3VudHMuIEJ5IGFic29yYmluZyB0aGVzZSByZWR1bmRhbnQKKyAqIGNvbnRl eHRzIGVhcmx5LCB3ZSBhdm9pZCBkdXBsaWNhdGUgd29yay4KKyAqCisgKiBJdGVyYXRlcyBmcm9t IHRhaWwgKG5ld2VzdCkgdG93YXJkIGhlYWQgKG9sZGVzdCkgdmlhIHByZXYgY2hhaW4uCisgKiBP bmx5IGluLXByb2dyZXNzIGNvbnRleHRzIChzdGF0ZXMgIT0gTlVMTCkgYXJlIGNhbmRpZGF0ZXMg Zm9yIGFic29ycHRpb247CisgKiBjb21wbGV0ZWQgY29udGV4dHMgcmVwcmVzZW50IHZhbGlkIG1h dGNoIHJlc3VsdHMuCisgKi8KK3N0YXRpYyB2b2lkCituZmFfYWJzb3JiX2NvbnRleHRzKFdpbmRv d0FnZ1N0YXRlICp3aW5zdGF0ZSkKK3sKKwlSUFJORkFDb250ZXh0ICpjdHg7CisJUlBSTkZBQ29u dGV4dCAqbmV4dEN0eDsKKworCWZvciAoY3R4ID0gd2luc3RhdGUtPm5mYUNvbnRleHRUYWlsOyBj dHggIT0gTlVMTDsgY3R4ID0gbmV4dEN0eCkKKwl7CisJCW5leHRDdHggPSBjdHgtPnByZXY7CisK KwkJLyoKKwkJICogT25seSBhYnNvcmIgaW4tcHJvZ3Jlc3MgY29udGV4dHM7IGNvbXBsZXRlZCBj b250ZXh0cyBhcmUgdmFsaWQKKwkJICogcmVzdWx0cworCQkgKi8KKwkJaWYgKGN0eC0+c3RhdGVz ICE9IE5VTEwpCisJCQluZmFfdHJ5X2Fic29yYl9jb250ZXh0KHdpbnN0YXRlLCBjdHgpOworCX0K K30KKworLyoKKyAqIG5mYV9ldmFsX3Zhcl9tYXRjaAorICoKKyAqIEV2YWx1YXRlIGlmIGEgVkFS IGVsZW1lbnQgbWF0Y2hlcyB0aGUgY3VycmVudCByb3cuCisgKgorICogdmFyTWF0Y2hlZCBpcyBh IHByZS1ldmFsdWF0ZWQgYm9vbGVhbiBhcnJheSBpbmRleGVkIGJ5IHZhcklkLCBjb21wdXRlZAor ICogb25jZSBwZXIgcm93IGJ5IGV2YWx1YXRpbmcgYWxsIERFRklORSBleHByZXNzaW9ucy4gIE5V TEwgbWVhbnMgbm8gREVGSU5FCisgKiBjbGF1c2VzIGV4aXN0IChvbmx5IHBvc3NpYmxlIGR1cmlu ZyBlYXJseSBkZXZlbG9wbWVudC90ZXN0aW5nKS4KKyAqCisgKiBQZXIgU1FMOjIwMTYgUjAyMCwg cGF0dGVybiB2YXJpYWJsZXMgbm90IGxpc3RlZCBpbiBERUZJTkUgYXJlIGltcGxpY2l0bHkKKyAq IFRSVUUgLS0gdGhleSBtYXRjaCBldmVyeSByb3cuICBUaGlzIGlzIGNoZWNrZWQgdmlhIHZhcklk ID49IGxpc3RfbGVuZ3RoLgorICovCitzdGF0aWMgYm9vbAorbmZhX2V2YWxfdmFyX21hdGNoKFdp bmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSUGF0dGVybkVsZW1lbnQgKmVsZW0sCisJCQkJICAg Ym9vbCAqdmFyTWF0Y2hlZCkKK3sKKwkvKiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBvbmx5IGJlIGNh bGxlZCBmb3IgVkFSIGVsZW1lbnRzICovCisJQXNzZXJ0KFJQUkVsZW1Jc1ZhcihlbGVtKSk7CisK KwlpZiAodmFyTWF0Y2hlZCA9PSBOVUxMKQorCQlyZXR1cm4gZmFsc2U7CisJaWYgKGVsZW0tPnZh cklkID49IGxpc3RfbGVuZ3RoKHdpbnN0YXRlLT5kZWZpbmVWYXJpYWJsZUxpc3QpKQorCQlyZXR1 cm4gdHJ1ZTsKKwlyZXR1cm4gdmFyTWF0Y2hlZFtlbGVtLT52YXJJZF07Cit9CisKKy8qCisgKiBu ZmFfbWF0Y2gKKyAqCisgKiBNYXRjaCBwaGFzZSAoY29udmVyZ2VuY2UpOiBldmFsdWF0ZSBWQVIg ZWxlbWVudHMgYWdhaW5zdCBjdXJyZW50IHJvdy4KKyAqIE9ubHkgdXBkYXRlcyBjb3VudHMgYW5k IHJlbW92ZXMgZGVhZCBzdGF0ZXMuIE1pbmltYWwgdHJhbnNpdGlvbnMuCisgKgorICogRm9yIFZB UiBlbGVtZW50czoKKyAqICAgLSBtYXRjaGVkOiBjb3VudCsrLCBrZWVwIHN0YXRlICh1bmxlc3Mg Y291bnQgPiBtYXgpCisgKiAgIC0gbm90IG1hdGNoZWQ6IHJlbW92ZSBzdGF0ZSAoZXhpdCBhbHRl cm5hdGl2ZXMgYWxyZWFkeSBleGlzdCBmcm9tCisgKiAgICAgcHJldmlvdXMgYWR2YW5jZSB3aGVu IGNvdW50ID49IG1pbiB3YXMgc2F0aXNmaWVkKQorICoKKyAqIEZvciBWQVJzIHRoYXQgcmVhY2hl ZCBtYXggY291bnQgZm9sbG93ZWQgYnkgRU5EOgorICogICAtIEFkdmFuY2UgdGhyb3VnaCBFTkQg Y2hhaW4gdG8gcmVhY2ggYWJzb3JwdGlvbiBqdWRnbWVudCBwb2ludAorICogICAtIE9ubHkgZGV0 ZXJtaW5pc3RpYyBleGl0cyAoY291bnQgPj0gbWF4LCBtYXggIT0gSU5GKSBhcmUgaGFuZGxlZAor ICogICAtIENoYWlucyB0aHJvdWdoIEVORCBlbGVtZW50cyB3aGlsZSBjb3VudCA+PSBtYXggKG11 c3QtZXhpdCBwYXRoKQorICoKKyAqIE5vbi1WQVIgZWxlbWVudHMgKEFMVCwgRU5ELCBGSU4pIGFy ZSBrZXB0IGFzLWlzIGZvciBhZHZhbmNlIHBoYXNlLgorICovCitzdGF0aWMgdm9pZAorbmZhX21h dGNoKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LCBib29sICp2 YXJNYXRjaGVkKQoreworCVJQUlBhdHRlcm4gKnBhdHRlcm4gPSB3aW5zdGF0ZS0+cnBQYXR0ZXJu OworCVJQUlBhdHRlcm5FbGVtZW50ICplbGVtZW50cyA9IHBhdHRlcm4tPmVsZW1lbnRzOworCVJQ Uk5GQVN0YXRlICoqcHJldlB0ciA9ICZjdHgtPnN0YXRlczsKKwlSUFJORkFTdGF0ZSAqc3RhdGU7 CisJUlBSTkZBU3RhdGUgKm5leHRTdGF0ZTsKKworCS8qCisJICogRXZhbHVhdGUgVkFSIGVsZW1l bnRzIGFnYWluc3QgY3VycmVudCByb3cuIEZvciBWQVJzIHRoYXQgcmVhY2ggbWF4CisJICogY291 bnQgd2l0aCBFTkQgbmV4dCwgYWR2YW5jZSB0aHJvdWdoIEVORCBjaGFpbiBpbmxpbmUgc28gYWJz b3JiIHBoYXNlCisJICogY2FuIGNvbXBhcmUgc3RhdGVzIGF0IGp1ZGdtZW50IHBvaW50cy4KKwkg Ki8KKwlmb3IgKHN0YXRlID0gY3R4LT5zdGF0ZXM7IHN0YXRlICE9IE5VTEw7IHN0YXRlID0gbmV4 dFN0YXRlKQorCXsKKwkJUlBSUGF0dGVybkVsZW1lbnQgKmVsZW0gPSAmZWxlbWVudHNbc3RhdGUt PmVsZW1JZHhdOworCisJCUNIRUNLX0ZPUl9JTlRFUlJVUFRTKCk7CisKKwkJbmV4dFN0YXRlID0g c3RhdGUtPm5leHQ7CisKKwkJaWYgKFJQUkVsZW1Jc1ZhcihlbGVtKSkKKwkJeworCQkJYm9vbAkJ bWF0Y2hlZDsKKwkJCWludAkJCWRlcHRoID0gZWxlbS0+ZGVwdGg7CisJCQlpbnQzMgkJY291bnQg PSBzdGF0ZS0+Y291bnRzW2RlcHRoXTsKKworCQkJbWF0Y2hlZCA9IG5mYV9ldmFsX3Zhcl9tYXRj aCh3aW5zdGF0ZSwgZWxlbSwgdmFyTWF0Y2hlZCk7CisKKwkJCWlmIChtYXRjaGVkKQorCQkJewor CQkJCS8qIEluY3JlbWVudCBjb3VudCAqLworCQkJCWlmIChjb3VudCA8IFJQUl9DT1VOVF9NQVgp CisJCQkJCWNvdW50Kys7CisKKwkJCQkvKiBNYXggY29uc3RyYWludCBzaG91bGQgbm90IGJlIGV4 Y2VlZGVkICovCisJCQkJQXNzZXJ0KGVsZW0tPm1heCA9PSBSUFJfUVVBTlRJVFlfSU5GIHx8IGNv dW50IDw9IGVsZW0tPm1heCk7CisKKwkJCQlzdGF0ZS0+Y291bnRzW2RlcHRoXSA9IGNvdW50Owor CisJCQkJLyoKKwkJCQkgKiBGb3IgVkFSIGF0IG1heCBjb3VudCB3aXRoIEVORCBuZXh0LCBhZHZh bmNlIHRocm91Z2ggRU5ECisJCQkJICogY2hhaW4gdG8gcmVhY2ggdGhlIGFic29ycHRpb24ganVk Z21lbnQgcG9pbnQuICBPbmx5CisJCQkJICogZGV0ZXJtaW5pc3RpYyBleGl0cyAoY291bnQgPj0g bWF4LCBtYXggZmluaXRlKSBhcmUgaGFuZGxlZDsKKwkJCQkgKiB1bmJvdW5kZWQgVkFScyBzdGF5 IGZvciBhZHZhbmNlIHBoYXNlLgorCQkJCSAqCisJCQkJICogSW4gbmVzdGVkIHBhdHRlcm5zIGxp a2UgKChBIEIpezJ9KXszfSwgYSBWQVIgcmVhY2hpbmcgaXRzCisJCQkJICogbWF4IHRyaWdnZXJz IGFuIGV4aXQgY2FzY2FkZTogaW5uZXIgRU5EIGluY3JlbWVudHMgaW5uZXIKKwkJCQkgKiBncm91 cCBjb3VudCwgd2hpY2ggbWF5IGl0c2VsZiByZWFjaCBtYXgsIHJlcXVpcmluZyBhbiBleGl0CisJ CQkJICogdG8gdGhlIG5leHQgb3V0ZXIgRU5ELiAgVGhlIGxvb3AgYmVsb3cgd2Fsa3MgdGhpcyBj aGFpbi4KKwkJCQkgKgorCQkJCSAqIEFCU09SQkFCTEVfQlJBTkNIIG1hcmtzIGVsZW1lbnRzIGlu c2lkZSB0aGUgYWJzb3JiYWJsZQorCQkJCSAqIHJlZ2lvbjsgQUJTT1JCQUJMRSBtYXJrcyB0aGUg b3V0ZXJtb3N0IGp1ZGdtZW50IHBvaW50IHdoZXJlCisJCQkJICogY291bnQtZG9taW5hbmNlIGlz IGV2YWx1YXRlZC4gIFdlIGNoYWluIHRocm91Z2ggQlJBTkNICisJCQkJICogZWxlbWVudHMgdW50 aWwgcmVhY2hpbmcgdGhlIEFCU09SQkFCTEUgcG9pbnQgb3IgYW4gZWxlbWVudAorCQkJCSAqIHRo YXQgY2FuIHN0aWxsIGxvb3AgKGNvdW50IDwgbWF4KS4KKwkJCQkgKi8KKwkJCQlpZiAoUlBSRWxl bUlzQWJzb3JiYWJsZUJyYW5jaChlbGVtKSAmJgorCQkJCQkhUlBSRWxlbUlzQWJzb3JiYWJsZShl bGVtKSAmJgorCQkJCQljb3VudCA+PSBlbGVtLT5tYXggJiYKKwkJCQkJUlBSRWxlbUlzRW5kKCZl bGVtZW50c1tlbGVtLT5uZXh0XSkpCisJCQkJeworCQkJCQlSUFJQYXR0ZXJuRWxlbWVudCAqZW5k RWxlbSA9ICZlbGVtZW50c1tlbGVtLT5uZXh0XTsKKwkJCQkJaW50CQkJZW5kRGVwdGggPSBlbmRF bGVtLT5kZXB0aDsKKwkJCQkJaW50MzIJCWVuZENvdW50ID0gc3RhdGUtPmNvdW50c1tlbmREZXB0 aF07CisKKwkJCQkJLyogSW5jcmVtZW50IGdyb3VwIGNvdW50ICovCisJCQkJCWlmIChlbmRDb3Vu dCA8IFJQUl9DT1VOVF9NQVgpCisJCQkJCQllbmRDb3VudCsrOworCQkJCQlBc3NlcnQoZW5kRWxl bS0+bWF4ID09IFJQUl9RVUFOVElUWV9JTkYgfHwKKwkJCQkJCSAgIGVuZENvdW50IDw9IGVuZEVs ZW0tPm1heCk7CisKKwkJCQkJc3RhdGUtPmVsZW1JZHggPSBlbGVtLT5uZXh0OworCQkJCQlzdGF0 ZS0+Y291bnRzW2VuZERlcHRoXSA9IGVuZENvdW50OworCisJCQkJCS8qCisJCQkJCSAqIENoYWlu IHRocm91Z2ggRU5EIGVsZW1lbnRzIHdpdGhpbiB0aGUgYWJzb3JiYWJsZSByZWdpb24KKwkJCQkJ ICogKEFCU09SQkFCTEVfQlJBTkNIKSB1bnRpbCByZWFjaGluZyB0aGUganVkZ21lbnQgcG9pbnQK KwkJCQkJICogKEFCU09SQkFCTEUpLiAgQ29udGludWUgb25seSBvbiBtdXN0LWV4aXQgcGF0aCAo Y291bnQKKwkJCQkJICogPj0gbWF4KSB3aXRoIEVORCBuZXh0LgorCQkJCQkgKi8KKwkJCQkJd2hp bGUgKFJQUkVsZW1Jc0Fic29yYmFibGVCcmFuY2goZW5kRWxlbSkgJiYKKwkJCQkJCSAgICFSUFJF bGVtSXNBYnNvcmJhYmxlKGVuZEVsZW0pICYmCisJCQkJCQkgICBlbmRDb3VudCA+PSBlbmRFbGVt LT5tYXggJiYKKwkJCQkJCSAgIFJQUkVsZW1Jc0VuZCgmZWxlbWVudHNbZW5kRWxlbS0+bmV4dF0p KQorCQkJCQl7CisJCQkJCQlSUFJQYXR0ZXJuRWxlbWVudCAqb3V0ZXJFbmQgPSAmZWxlbWVudHNb ZW5kRWxlbS0+bmV4dF07CisJCQkJCQlpbnQJCQlvdXRlckRlcHRoID0gb3V0ZXJFbmQtPmRlcHRo OworCQkJCQkJaW50MzIJCW91dGVyQ291bnQgPSBzdGF0ZS0+Y291bnRzW291dGVyRGVwdGhdOwor CisJCQkJCQkvKiBSZXNldCBleGl0ZWQgZ3JvdXAncyBjb3VudCAqLworCQkJCQkJc3RhdGUtPmNv dW50c1tlbmREZXB0aF0gPSAwOworCisJCQkJCQkvKiBJbmNyZW1lbnQgb3V0ZXIgZ3JvdXAgY291 bnQgKi8KKwkJCQkJCWlmIChvdXRlckNvdW50IDwgUlBSX0NPVU5UX01BWCkKKwkJCQkJCQlvdXRl ckNvdW50Kys7CisJCQkJCQlBc3NlcnQob3V0ZXJFbmQtPm1heCA9PSBSUFJfUVVBTlRJVFlfSU5G IHx8CisJCQkJCQkJICAgb3V0ZXJDb3VudCA8PSBvdXRlckVuZC0+bWF4KTsKKworCQkJCQkJc3Rh dGUtPmVsZW1JZHggPSBlbmRFbGVtLT5uZXh0OworCQkJCQkJc3RhdGUtPmNvdW50c1tvdXRlckRl cHRoXSA9IG91dGVyQ291bnQ7CisKKwkJCQkJCS8qIEFkdmFuY2UgdG8gbmV4dCBFTkQgaW4gY2hh aW4gKi8KKwkJCQkJCWVuZEVsZW0gPSBvdXRlckVuZDsKKwkJCQkJCWVuZERlcHRoID0gb3V0ZXJE ZXB0aDsKKwkJCQkJCWVuZENvdW50ID0gb3V0ZXJDb3VudDsKKwkJCQkJfQorCQkJCX0KKwkJCQkv KiBlbHNlOiBzdGF5IGF0IFZBUiBmb3IgYWR2YW5jZSBwaGFzZSAqLworCQkJfQorCQkJZWxzZQor CQkJeworCQkJCS8qCisJCQkJICogTm90IG1hdGNoZWQgLSByZW1vdmUgc3RhdGUuIEV4aXQgYWx0 ZXJuYXRpdmVzIHdlcmUgYWxyZWFkeQorCQkJCSAqIGNyZWF0ZWQgYnkgYWR2YW5jZSBwaGFzZSB3 aGVuIGNvdW50ID49IG1pbiB3YXMgc2F0aXNmaWVkLgorCQkJCSAqLworCQkJCSpwcmV2UHRyID0g bmV4dFN0YXRlOworCQkJCW5mYV9zdGF0ZV9mcmVlKHdpbnN0YXRlLCBzdGF0ZSk7CisJCQkJY29u dGludWU7CisJCQl9CisJCX0KKwkJLyogTm9uLVZBUiBlbGVtZW50czoga2VlcCBhcy1pcyBmb3Ig YWR2YW5jZSBwaGFzZSAqLworCisJCXByZXZQdHIgPSAmc3RhdGUtPm5leHQ7CisJfQorfQorCisv KgorICogbmZhX3JvdXRlX3RvX2VsZW0KKyAqCisgKiBSb3V0ZSBzdGF0ZSB0byBuZXh0IGVsZW1l bnQuIElmIFZBUiwgYWRkIHRvIGN0eC0+c3RhdGVzIGFuZCBwcm9jZXNzCisgKiBza2lwIHBhdGgg aWYgb3B0aW9uYWwuIE90aGVyd2lzZSwgY29udGludWUgZXBzaWxvbiBleHBhbnNpb24gdmlhIHJl Y3Vyc2lvbi4KKyAqLworc3RhdGljIHZvaWQKK25mYV9yb3V0ZV90b19lbGVtKFdpbmRvd0FnZ1N0 YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAorCQkJCSAgUlBSTkZBU3RhdGUgKnN0 YXRlLCBSUFJQYXR0ZXJuRWxlbWVudCAqbmV4dEVsZW0sCisJCQkJICBpbnQ2NCBjdXJyZW50UG9z KQoreworCWlmIChSUFJFbGVtSXNWYXIobmV4dEVsZW0pKQorCXsKKwkJUlBSTkZBU3RhdGUgKnNr aXBTdGF0ZSA9IE5VTEw7CisKKwkJLyogQ3JlYXRlIHNraXAgc3RhdGUgYmVmb3JlIGFkZF91bmlx dWUsIHdoaWNoIG1heSBmcmVlIHN0YXRlICovCisJCWlmIChSUFJFbGVtQ2FuU2tpcChuZXh0RWxl bSkpCisJCQlza2lwU3RhdGUgPSBuZmFfc3RhdGVfY3JlYXRlKHdpbnN0YXRlLCBuZXh0RWxlbS0+ bmV4dCwKKwkJCQkJCQkJCQkgc3RhdGUtPmNvdW50cywgc3RhdGUtPmlzQWJzb3JiYWJsZSk7CisK KwkJbmZhX2FkZF9zdGF0ZV91bmlxdWUod2luc3RhdGUsIGN0eCwgc3RhdGUpOworCisJCWlmIChz a2lwU3RhdGUgIT0gTlVMTCkKKwkJCW5mYV9hZHZhbmNlX3N0YXRlKHdpbnN0YXRlLCBjdHgsIHNr aXBTdGF0ZSwgY3VycmVudFBvcyk7CisJfQorCWVsc2UKKwl7CisJCW5mYV9hZHZhbmNlX3N0YXRl KHdpbnN0YXRlLCBjdHgsIHN0YXRlLCBjdXJyZW50UG9zKTsKKwl9Cit9CisKKy8qCisgKiBuZmFf YWR2YW5jZV9hbHQKKyAqCisgKiBIYW5kbGUgQUxUIGVsZW1lbnQ6IGV4cGFuZCBhbGwgYnJhbmNo ZXMgaW4gbGV4aWNhbCBvcmRlciB2aWEgREZTLgorICovCitzdGF0aWMgdm9pZAorbmZhX2FkdmFu Y2VfYWx0KFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAorCQkJ CVJQUk5GQVN0YXRlICpzdGF0ZSwgUlBSUGF0dGVybkVsZW1lbnQgKmVsZW0sCisJCQkJaW50NjQg Y3VycmVudFBvcykKK3sKKwlSUFJQYXR0ZXJuICpwYXR0ZXJuID0gd2luc3RhdGUtPnJwUGF0dGVy bjsKKwlSUFJQYXR0ZXJuRWxlbWVudCAqZWxlbWVudHMgPSBwYXR0ZXJuLT5lbGVtZW50czsKKwlS UFJFbGVtSWR4CWFsdElkeCA9IGVsZW0tPm5leHQ7CisKKwl3aGlsZSAoYWx0SWR4ID49IDAgJiYg YWx0SWR4IDwgcGF0dGVybi0+bnVtRWxlbWVudHMpCisJeworCQlSUFJQYXR0ZXJuRWxlbWVudCAq YWx0RWxlbSA9ICZlbGVtZW50c1thbHRJZHhdOworCQlSUFJORkFTdGF0ZSAqbmV3U3RhdGU7CisK KwkJLyogU3RvcCBpZiBlbGVtZW50IGlzIG91dHNpZGUgQUxUIHNjb3BlIChub3QgYSBicmFuY2gp ICovCisJCWlmIChhbHRFbGVtLT5kZXB0aCA8PSBlbGVtLT5kZXB0aCkKKwkJCWJyZWFrOworCisJ CS8qIENyZWF0ZSBpbmRlcGVuZGVudCBzdGF0ZSBmb3IgZWFjaCBicmFuY2ggKi8KKwkJbmV3U3Rh dGUgPSBuZmFfc3RhdGVfY3JlYXRlKHdpbnN0YXRlLCBhbHRJZHgsCisJCQkJCQkJCQlzdGF0ZS0+ Y291bnRzLCBzdGF0ZS0+aXNBYnNvcmJhYmxlKTsKKworCQkvKiBSZWN1cnNpdmVseSBwcm9jZXNz IHRoaXMgYnJhbmNoIGJlZm9yZSBuZXh0ICovCisJCW5mYV9hZHZhbmNlX3N0YXRlKHdpbnN0YXRl LCBjdHgsIG5ld1N0YXRlLCBjdXJyZW50UG9zKTsKKwkJYWx0SWR4ID0gYWx0RWxlbS0+anVtcDsK Kwl9CisKKwluZmFfc3RhdGVfZnJlZSh3aW5zdGF0ZSwgc3RhdGUpOworfQorCisvKgorICogbmZh X2FkdmFuY2VfYmVnaW4KKyAqCisgKiBIYW5kbGUgQkVHSU4gZWxlbWVudDogZ3JvdXAgZW50cnkg bG9naWMuCisgKiBCRUdJTiBpcyBvbmx5IHZpc2l0ZWQgYXQgaW5pdGlhbCBncm91cCBlbnRyeSAo Y291bnQgaXMgYWx3YXlzIDApLgorICogSWYgbWluPTAsIGNyZWF0ZXMgYSBza2lwIHBhdGggcGFz dCB0aGUgZ3JvdXAuCisgKiBMb29wLWJhY2sgZnJvbSBFTkQgZ29lcyBkaXJlY3RseSB0byBmaXJz dCBjaGlsZCwgYnlwYXNzaW5nIEJFR0lOLgorICovCitzdGF0aWMgdm9pZAorbmZhX2FkdmFuY2Vf YmVnaW4oV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsCisJCQkJ ICBSUFJORkFTdGF0ZSAqc3RhdGUsIFJQUlBhdHRlcm5FbGVtZW50ICplbGVtLAorCQkJCSAgaW50 NjQgY3VycmVudFBvcykKK3sKKwlSUFJQYXR0ZXJuICpwYXR0ZXJuID0gd2luc3RhdGUtPnJwUGF0 dGVybjsKKwlSUFJQYXR0ZXJuRWxlbWVudCAqZWxlbWVudHMgPSBwYXR0ZXJuLT5lbGVtZW50czsK KwlSUFJORkFTdGF0ZSAqc2tpcFN0YXRlID0gTlVMTDsKKworCXN0YXRlLT5jb3VudHNbZWxlbS0+ ZGVwdGhdID0gMDsKKworCS8qIE9wdGlvbmFsIGdyb3VwOiBjcmVhdGUgc2tpcCBwYXRoIChidXQg ZG9uJ3Qgcm91dGUgeWV0KSAqLworCWlmIChlbGVtLT5taW4gPT0gMCkKKwl7CisJCXNraXBTdGF0 ZSA9IG5mYV9zdGF0ZV9jcmVhdGUod2luc3RhdGUsIGVsZW0tPmp1bXAsCisJCQkJCQkJCQkgc3Rh dGUtPmNvdW50cywgc3RhdGUtPmlzQWJzb3JiYWJsZSk7CisJfQorCisJaWYgKHNraXBTdGF0ZSAh PSBOVUxMICYmIFJQUkVsZW1Jc1JlbHVjdGFudChlbGVtKSkKKwl7CisJCVJQUk5GQVN0YXRlICpz YXZlZE1hdGNoID0gY3R4LT5tYXRjaGVkU3RhdGU7CisKKwkJLyogUmVsdWN0YW50OiBza2lwIGZp cnN0IChwcmVmZXIgZmV3ZXIgaXRlcmF0aW9ucyksIGVudGVyIHNlY29uZCAqLworCQluZmFfcm91 dGVfdG9fZWxlbSh3aW5zdGF0ZSwgY3R4LCBza2lwU3RhdGUsCisJCQkJCQkgICZlbGVtZW50c1tl bGVtLT5qdW1wXSwgY3VycmVudFBvcyk7CisKKwkJLyoKKwkJICogSWYgc2tpcCBwYXRoIHJlYWNo ZWQgRklOLCBzaG9ydGVzdCBtYXRjaCBpcyBmb3VuZC4gU2tpcCBncm91cCBlbnRyeQorCQkgKiB0 byBwcmV2ZW50IGxvbmdlciBtYXRjaGVzLgorCQkgKi8KKwkJaWYgKGN0eC0+bWF0Y2hlZFN0YXRl ICE9IHNhdmVkTWF0Y2gpCisJCXsKKwkJCW5mYV9zdGF0ZV9mcmVlKHdpbnN0YXRlLCBzdGF0ZSk7 CisJCQlyZXR1cm47CisJCX0KKworCQlzdGF0ZS0+ZWxlbUlkeCA9IGVsZW0tPm5leHQ7CisJCW5m YV9yb3V0ZV90b19lbGVtKHdpbnN0YXRlLCBjdHgsIHN0YXRlLAorCQkJCQkJICAmZWxlbWVudHNb c3RhdGUtPmVsZW1JZHhdLCBjdXJyZW50UG9zKTsKKwl9CisJZWxzZQorCXsKKwkJLyogR3JlZWR5 OiBlbnRlciBmaXJzdCwgc2tpcCBzZWNvbmQgKi8KKwkJc3RhdGUtPmVsZW1JZHggPSBlbGVtLT5u ZXh0OworCQluZmFfcm91dGVfdG9fZWxlbSh3aW5zdGF0ZSwgY3R4LCBzdGF0ZSwKKwkJCQkJCSAg JmVsZW1lbnRzW3N0YXRlLT5lbGVtSWR4XSwgY3VycmVudFBvcyk7CisKKwkJaWYgKHNraXBTdGF0 ZSAhPSBOVUxMKQorCQl7CisJCQluZmFfcm91dGVfdG9fZWxlbSh3aW5zdGF0ZSwgY3R4LCBza2lw U3RhdGUsCisJCQkJCQkJICAmZWxlbWVudHNbZWxlbS0+anVtcF0sIGN1cnJlbnRQb3MpOworCQl9 CisJfQorfQorCisvKgorICogbmZhX2FkdmFuY2VfZW5kCisgKgorICogSGFuZGxlIEVORCBlbGVt ZW50OiBncm91cCByZXBldGl0aW9uIGxvZ2ljLgorICogRGVjaWRlcyB3aGV0aGVyIHRvIGxvb3Ag YmFjayBvciBleGl0IGJhc2VkIG9uIGNvdW50IHZzIG1pbi9tYXguCisgKi8KK3N0YXRpYyB2b2lk CituZmFfYWR2YW5jZV9lbmQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0 ICpjdHgsCisJCQkJUlBSTkZBU3RhdGUgKnN0YXRlLCBSUFJQYXR0ZXJuRWxlbWVudCAqZWxlbSwK KwkJCQlpbnQ2NCBjdXJyZW50UG9zKQoreworCVJQUlBhdHRlcm4gKnBhdHRlcm4gPSB3aW5zdGF0 ZS0+cnBQYXR0ZXJuOworCVJQUlBhdHRlcm5FbGVtZW50ICplbGVtZW50cyA9IHBhdHRlcm4tPmVs ZW1lbnRzOworCWludAkJCWRlcHRoID0gZWxlbS0+ZGVwdGg7CisJaW50MzIJCWNvdW50ID0gc3Rh dGUtPmNvdW50c1tkZXB0aF07CisKKwlpZiAoY291bnQgPCBlbGVtLT5taW4pCisJeworCQlSUFJQ YXR0ZXJuRWxlbWVudCAqanVtcEVsZW07CisJCVJQUk5GQVN0YXRlICpmZlN0YXRlID0gTlVMTDsK KworCQkvKi0tLS0tLS0tLS0KKwkJICogVHdvIHBhdGhzIGFyZSBleHBsb3JlZCBpbiBwYXJhbGxl bCB3aGVuIHRoZSBncm91cCBib2R5IGlzIG51bGxhYmxlCisJCSAqIChSUFJfRUxFTV9FTVBUWV9M T09QKToKKwkJICoKKwkJICogMS4gUHJpbWFyeSBwYXRoOiBsb29wIGJhY2sgYW5kIGF0dGVtcHQg cmVhbCBtYXRjaGVzIGluIHRoZQorCQkgKiAgICBuZXh0IGl0ZXJhdGlvbiAoc3RhdGUsIG1vZGlm aWVkIGJlbG93KS4KKwkJICoKKwkJICogMi4gRmFzdC1mb3J3YXJkIHBhdGg6IHNraXAgZGlyZWN0 bHkgdG8gYWZ0ZXIgdGhlIGdyb3VwLAorCQkgKiAgICB0cmVhdGluZyBhbGwgcmVtYWluaW5nIHJl cXVpcmVkIGl0ZXJhdGlvbnMgYXMgZW1wdHkKKwkJICogICAgbWF0Y2hlcyAoZmZTdGF0ZSwgaGFu ZGxlZCBhZnRlciB0aGUgcHJpbWFyeSBwYXRoKS4KKwkJICoKKwkJICogVGhlIHNuYXBzaG90IG11 c3QgYmUgdGFrZW4gQkVGT1JFIG1vZGlmeWluZyBzdGF0ZSBmb3IgdGhlIGxvb3AtYmFjaywKKwkJ ICogc2luY2UgYm90aCBwYXRocyBkaXZlcmdlIGZyb20gdGhlIHNhbWUgcG9pbnQuCisJCSAqLS0t LS0tLS0tLQorCQkgKi8KKwkJaWYgKFJQUkVsZW1DYW5FbXB0eUxvb3AoZWxlbSkpCisJCQlmZlN0 YXRlID0gbmZhX3N0YXRlX2NyZWF0ZSh3aW5zdGF0ZSwgc3RhdGUtPmVsZW1JZHgsCisJCQkJCQkJ CQkgICBzdGF0ZS0+Y291bnRzLCBzdGF0ZS0+aXNBYnNvcmJhYmxlKTsKKworCQkvKiBQcmltYXJ5 IHBhdGg6IGxvb3AgYmFjayBmb3IgcmVhbCBtYXRjaGVzICovCisJCWZvciAoaW50IGQgPSBkZXB0 aCArIDE7IGQgPCBwYXR0ZXJuLT5tYXhEZXB0aDsgZCsrKQorCQkJc3RhdGUtPmNvdW50c1tkXSA9 IDA7CisJCXN0YXRlLT5lbGVtSWR4ID0gZWxlbS0+anVtcDsKKwkJanVtcEVsZW0gPSAmZWxlbWVu dHNbc3RhdGUtPmVsZW1JZHhdOworCQluZmFfcm91dGVfdG9fZWxlbSh3aW5zdGF0ZSwgY3R4LCBz dGF0ZSwganVtcEVsZW0sCisJCQkJCQkgIGN1cnJlbnRQb3MpOworCisJCS8qCisJCSAqIEZhc3Qt Zm9yd2FyZCBwYXRoIGZvciBudWxsYWJsZSBib2RpZXMuICBFLmcuIChBPyl7MiwzfSB3aGVuIEEK KwkJICogZG9lc24ndCBtYXRjaDogdGhlIHByaW1hcnkgbG9vcC1iYWNrIHByb2R1Y2VzIGVtcHR5 IGl0ZXJhdGlvbnMgdGhhdAorCQkgKiBjeWNsZSBkZXRlY3Rpb24gd291bGQga2lsbC4gIEluc3Rl YWQsIGV4aXQgZGlyZWN0bHkgd2l0aCBjb3VudAorCQkgKiBzYXRpc2ZpZWQuICBSb3V0ZSB0byBl bGVtLT5uZXh0IChub3QgbmZhX2FkdmFuY2VfZW5kKSB0byBhdm9pZAorCQkgKiBjcmVhdGluZyBj b21wZXRpbmcgZ3JlZWR5L3JlbHVjdGFudCBsb29wIHN0YXRlcy4KKwkJICovCisJCWlmIChmZlN0 YXRlICE9IE5VTEwpCisJCXsKKwkJCVJQUlBhdHRlcm5FbGVtZW50ICpuZXh0RWxlbTsKKworCQkJ ZmZTdGF0ZS0+Y291bnRzW2RlcHRoXSA9IDA7CisJCQlmZlN0YXRlLT5lbGVtSWR4ID0gZWxlbS0+ bmV4dDsKKwkJCW5leHRFbGVtID0gJmVsZW1lbnRzW2ZmU3RhdGUtPmVsZW1JZHhdOworCisJCQkv KiBFTkQtPkVORDogaW5jcmVtZW50IG91dGVyIEVORCdzIGNvdW50ICovCisJCQlpZiAoUlBSRWxl bUlzRW5kKG5leHRFbGVtKSAmJgorCQkJCWZmU3RhdGUtPmNvdW50c1tuZXh0RWxlbS0+ZGVwdGhd IDwgUlBSX0NPVU5UX01BWCkKKwkJCQlmZlN0YXRlLT5jb3VudHNbbmV4dEVsZW0tPmRlcHRoXSsr OworCisJCQluZmFfcm91dGVfdG9fZWxlbSh3aW5zdGF0ZSwgY3R4LCBmZlN0YXRlLCBuZXh0RWxl bSwKKwkJCQkJCQkgIGN1cnJlbnRQb3MpOworCQl9CisJfQorCWVsc2UgaWYgKGVsZW0tPm1heCAh PSBSUFJfUVVBTlRJVFlfSU5GICYmIGNvdW50ID49IGVsZW0tPm1heCkKKwl7CisJCS8qIE11c3Qg ZXhpdDogcmVhY2hlZCBtYXggaXRlcmF0aW9ucy4gKi8KKwkJUlBSUGF0dGVybkVsZW1lbnQgKm5l eHRFbGVtOworCisJCXN0YXRlLT5jb3VudHNbZGVwdGhdID0gMDsKKwkJc3RhdGUtPmVsZW1JZHgg PSBlbGVtLT5uZXh0OworCQluZXh0RWxlbSA9ICZlbGVtZW50c1tzdGF0ZS0+ZWxlbUlkeF07CisK KwkJLyogVXBkYXRlIGlzQWJzb3JiYWJsZSBmb3IgdGFyZ2V0IGVsZW1lbnQgKG1vbm90b25pYykg Ki8KKwkJc3RhdGUtPmlzQWJzb3JiYWJsZSA9IHN0YXRlLT5pc0Fic29yYmFibGUgJiYKKwkJCVJQ UkVsZW1Jc0Fic29yYmFibGVCcmFuY2gobmV4dEVsZW0pOworCisJCS8qIEVORC0+RU5EOiBpbmNy ZW1lbnQgb3V0ZXIgRU5EJ3MgY291bnQgKi8KKwkJaWYgKFJQUkVsZW1Jc0VuZChuZXh0RWxlbSkg JiYgc3RhdGUtPmNvdW50c1tuZXh0RWxlbS0+ZGVwdGhdIDwgUlBSX0NPVU5UX01BWCkKKwkJCXN0 YXRlLT5jb3VudHNbbmV4dEVsZW0tPmRlcHRoXSsrOworCisJCW5mYV9yb3V0ZV90b19lbGVtKHdp bnN0YXRlLCBjdHgsIHN0YXRlLCBuZXh0RWxlbSwgY3VycmVudFBvcyk7CisJfQorCWVsc2UKKwl7 CisJCS8qCisJCSAqIEJldHdlZW4gbWluIGFuZCBtYXggKHdpdGggYXQgbGVhc3Qgb25lIGl0ZXJh dGlvbikgLSBjYW4gZXhpdCBvcgorCQkgKiBsb29wLiBHcmVlZHk6IGxvb3AgZmlyc3QgKHByZWZl ciBtb3JlIGl0ZXJhdGlvbnMpLiBSZWx1Y3RhbnQ6IGV4aXQKKwkJICogZmlyc3QgKHByZWZlciBm ZXdlciBpdGVyYXRpb25zKS4KKwkJICovCisJCVJQUk5GQVN0YXRlICpleGl0U3RhdGU7CisJCVJQ UlBhdHRlcm5FbGVtZW50ICpqdW1wRWxlbTsKKwkJUlBSUGF0dGVybkVsZW1lbnQgKm5leHRFbGVt OworCisJCS8qCisJCSAqIENyZWF0ZSBleGl0IHN0YXRlIGZpcnN0IChuZWVkIG9yaWdpbmFsIGNv dW50cyBiZWZvcmUgbW9kaWZ5aW5nCisJCSAqIHN0YXRlKQorCQkgKi8KKwkJZXhpdFN0YXRlID0g bmZhX3N0YXRlX2NyZWF0ZSh3aW5zdGF0ZSwgZWxlbS0+bmV4dCwKKwkJCQkJCQkJCSBzdGF0ZS0+ Y291bnRzLCBzdGF0ZS0+aXNBYnNvcmJhYmxlKTsKKwkJZXhpdFN0YXRlLT5jb3VudHNbZGVwdGhd ID0gMDsKKwkJbmV4dEVsZW0gPSAmZWxlbWVudHNbZXhpdFN0YXRlLT5lbGVtSWR4XTsKKworCQkv KiBFTkQtPkVORDogaW5jcmVtZW50IG91dGVyIEVORCdzIGNvdW50ICovCisJCWlmIChSUFJFbGVt SXNFbmQobmV4dEVsZW0pICYmIGV4aXRTdGF0ZS0+Y291bnRzW25leHRFbGVtLT5kZXB0aF0gPCBS UFJfQ09VTlRfTUFYKQorCQkJZXhpdFN0YXRlLT5jb3VudHNbbmV4dEVsZW0tPmRlcHRoXSsrOwor CisJCS8qIFByZXBhcmUgbG9vcCBzdGF0ZSAqLworCQlmb3IgKGludCBkID0gZGVwdGggKyAxOyBk IDwgcGF0dGVybi0+bWF4RGVwdGg7IGQrKykKKwkJCXN0YXRlLT5jb3VudHNbZF0gPSAwOworCQlz dGF0ZS0+ZWxlbUlkeCA9IGVsZW0tPmp1bXA7CisJCWp1bXBFbGVtID0gJmVsZW1lbnRzW3N0YXRl LT5lbGVtSWR4XTsKKworCQlpZiAoUlBSRWxlbUlzUmVsdWN0YW50KGVsZW0pKQorCQl7CisJCQlS UFJORkFTdGF0ZSAqc2F2ZWRNYXRjaCA9IGN0eC0+bWF0Y2hlZFN0YXRlOworCisJCQkvKiBFeGl0 IGZpcnN0IChwcmVmZXJyZWQgZm9yIHJlbHVjdGFudCkgKi8KKwkJCW5mYV9yb3V0ZV90b19lbGVt KHdpbnN0YXRlLCBjdHgsIGV4aXRTdGF0ZSwgbmV4dEVsZW0sCisJCQkJCQkJICBjdXJyZW50UG9z KTsKKworCQkJLyoKKwkJCSAqIElmIGV4aXQgcGF0aCByZWFjaGVkIEZJTiwgc2hvcnRlc3QgbWF0 Y2ggaXMgZm91bmQuIFNraXAgbG9vcCB0bworCQkJICogcHJldmVudCBsb25nZXIgbWF0Y2hlcyBm cm9tIHJlcGxhY2luZyBpdC4KKwkJCSAqLworCQkJaWYgKGN0eC0+bWF0Y2hlZFN0YXRlICE9IHNh dmVkTWF0Y2gpCisJCQl7CisJCQkJbmZhX3N0YXRlX2ZyZWUod2luc3RhdGUsIHN0YXRlKTsKKwkJ CQlyZXR1cm47CisJCQl9CisKKwkJCS8qIExvb3Agc2Vjb25kICovCisJCQluZmFfcm91dGVfdG9f ZWxlbSh3aW5zdGF0ZSwgY3R4LCBzdGF0ZSwganVtcEVsZW0sCisJCQkJCQkJICBjdXJyZW50UG9z KTsKKwkJfQorCQllbHNlCisJCXsKKwkJCS8qIExvb3AgZmlyc3QgKHByZWZlcnJlZCBmb3IgZ3Jl ZWR5KSAqLworCQkJbmZhX3JvdXRlX3RvX2VsZW0od2luc3RhdGUsIGN0eCwgc3RhdGUsIGp1bXBF bGVtLAorCQkJCQkJCSAgY3VycmVudFBvcyk7CisJCQkvKiBFeGl0IHNlY29uZCAqLworCQkJbmZh X3JvdXRlX3RvX2VsZW0od2luc3RhdGUsIGN0eCwgZXhpdFN0YXRlLCBuZXh0RWxlbSwKKwkJCQkJ CQkgIGN1cnJlbnRQb3MpOworCQl9CisJfQorfQorCisvKgorICogbmZhX2FkdmFuY2VfdmFyCisg KgorICogSGFuZGxlIFZBUiBlbGVtZW50OiBsb29wL2V4aXQgdHJhbnNpdGlvbnMuCisgKiBBZnRl ciBtYXRjaCBwaGFzZSwgYWxsIFZBUiBzdGF0ZXMgaGF2ZSBtYXRjaGVkIC0gZGVjaWRlIG5leHQg YWN0aW9uLgorICovCitzdGF0aWMgdm9pZAorbmZhX2FkdmFuY2VfdmFyKFdpbmRvd0FnZ1N0YXRl ICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAorCQkJCVJQUk5GQVN0YXRlICpzdGF0ZSwg UlBSUGF0dGVybkVsZW1lbnQgKmVsZW0sCisJCQkJaW50NjQgY3VycmVudFBvcykKK3sKKwlSUFJQ YXR0ZXJuICpwYXR0ZXJuID0gd2luc3RhdGUtPnJwUGF0dGVybjsKKwlSUFJQYXR0ZXJuRWxlbWVu dCAqZWxlbWVudHMgPSBwYXR0ZXJuLT5lbGVtZW50czsKKwlpbnQJCQlkZXB0aCA9IGVsZW0tPmRl cHRoOworCWludDMyCQljb3VudCA9IHN0YXRlLT5jb3VudHNbZGVwdGhdOworCWJvb2wJCWNhbkxv b3AgPSAoZWxlbS0+bWF4ID09IFJQUl9RVUFOVElUWV9JTkYgfHwgY291bnQgPCBlbGVtLT5tYXgp OworCWJvb2wJCWNhbkV4aXQgPSAoY291bnQgPj0gZWxlbS0+bWluKTsKKworCS8qIEFmdGVyIGEg c3VjY2Vzc2Z1bCBtYXRjaCwgY291bnQgPj0gMSwgc28gYXQgbGVhc3Qgb25lIG11c3QgYmUgdHJ1 ZSAqLworCUFzc2VydChjYW5Mb29wIHx8IGNhbkV4aXQpOworCisJaWYgKGNhbkxvb3AgJiYgY2Fu RXhpdCkKKwl7CisJCS8qCisJCSAqIEJvdGggbG9vcCBhbmQgZXhpdCBwb3NzaWJsZS4gR3JlZWR5 OiBsb29wIGZpcnN0IChwcmVmZXIgbG9uZ2VyCisJCSAqIG1hdGNoKS4gUmVsdWN0YW50OiBleGl0 IGZpcnN0IChwcmVmZXIgc2hvcnRlciBtYXRjaCkuCisJCSAqLworCQlSUFJORkFTdGF0ZSAqY2xv bmVTdGF0ZTsKKwkJUlBSUGF0dGVybkVsZW1lbnQgKm5leHRFbGVtOworCQlib29sCQlyZWx1Y3Rh bnQgPSBSUFJFbGVtSXNSZWx1Y3RhbnQoZWxlbSk7CisKKwkJLyoKKwkJICogQ2xvbmUgc3RhdGUg Zm9yIHRoZSBmaXJzdC1wcmlvcml0eSBwYXRoLiBGb3IgZ3JlZWR5LCBjbG9uZSBpcyB0aGUKKwkJ ICogbG9vcCBzdGF0ZTsgZm9yIHJlbHVjdGFudCwgY2xvbmUgaXMgdGhlIGV4aXQgc3RhdGUuCisJ CSAqLworCQlpZiAocmVsdWN0YW50KQorCQl7CisJCQlSUFJORkFTdGF0ZSAqc2F2ZWRNYXRjaCA9 IGN0eC0+bWF0Y2hlZFN0YXRlOworCisJCQkvKiBDbG9uZSBmb3IgZXhpdCwgb3JpZ2luYWwgc3Rh eXMgZm9yIGxvb3AgKi8KKwkJCWNsb25lU3RhdGUgPSBuZmFfc3RhdGVfY3JlYXRlKHdpbnN0YXRl LCBlbGVtLT5uZXh0LAorCQkJCQkJCQkJCSAgc3RhdGUtPmNvdW50cywgc3RhdGUtPmlzQWJzb3Ji YWJsZSk7CisJCQljbG9uZVN0YXRlLT5jb3VudHNbZGVwdGhdID0gMDsKKwkJCW5leHRFbGVtID0g JmVsZW1lbnRzW2Nsb25lU3RhdGUtPmVsZW1JZHhdOworCisJCQkvKiBXaGVuIGV4aXRpbmcgZGly ZWN0bHkgdG8gYW4gb3V0ZXIgRU5ELCBpbmNyZW1lbnQgaXRzIGNvdW50ICovCisJCQlpZiAoUlBS RWxlbUlzRW5kKG5leHRFbGVtKSkKKwkJCXsKKwkJCQlpZiAoY2xvbmVTdGF0ZS0+Y291bnRzW25l eHRFbGVtLT5kZXB0aF0gPCBSUFJfQ09VTlRfTUFYKQorCQkJCQljbG9uZVN0YXRlLT5jb3VudHNb bmV4dEVsZW0tPmRlcHRoXSsrOworCQkJfQorCisJCQkvKiBFeGl0IGZpcnN0IChwcmVmZXJyZWQg Zm9yIHJlbHVjdGFudCkgKi8KKwkJCW5mYV9yb3V0ZV90b19lbGVtKHdpbnN0YXRlLCBjdHgsIGNs b25lU3RhdGUsIG5leHRFbGVtLAorCQkJCQkJCSAgY3VycmVudFBvcyk7CisKKwkJCS8qCisJCQkg KiBJZiBleGl0IHBhdGggcmVhY2hlZCBGSU4sIHRoZSBzaG9ydGVzdCBtYXRjaCBpcyBmb3VuZC4g U2tpcAorCQkJICogbG9vcCBzdGF0ZSB0byBwcmV2ZW50IGxvbmdlciBtYXRjaGVzIGZyb20gcmVw bGFjaW5nIGl0LgorCQkJICovCisJCQlpZiAoY3R4LT5tYXRjaGVkU3RhdGUgIT0gc2F2ZWRNYXRj aCkKKwkJCXsKKwkJCQluZmFfc3RhdGVfZnJlZSh3aW5zdGF0ZSwgc3RhdGUpOworCQkJCXJldHVy bjsKKwkJCX0KKworCQkJLyogTG9vcCBzZWNvbmQgKi8KKwkJCW5mYV9hZGRfc3RhdGVfdW5pcXVl KHdpbnN0YXRlLCBjdHgsIHN0YXRlKTsKKwkJfQorCQllbHNlCisJCXsKKwkJCS8qIENsb25lIGZv ciBsb29wLCBvcmlnaW5hbCB1c2VkIGZvciBleGl0ICovCisJCQljbG9uZVN0YXRlID0gbmZhX3N0 YXRlX2NyZWF0ZSh3aW5zdGF0ZSwgc3RhdGUtPmVsZW1JZHgsCisJCQkJCQkJCQkJICBzdGF0ZS0+ Y291bnRzLCBzdGF0ZS0+aXNBYnNvcmJhYmxlKTsKKworCQkJLyogTG9vcCBmaXJzdCAocHJlZmVy cmVkIGZvciBncmVlZHkpICovCisJCQluZmFfYWRkX3N0YXRlX3VuaXF1ZSh3aW5zdGF0ZSwgY3R4 LCBjbG9uZVN0YXRlKTsKKworCQkJLyogRXhpdCBzZWNvbmQgKi8KKwkJCXN0YXRlLT5jb3VudHNb ZGVwdGhdID0gMDsKKwkJCXN0YXRlLT5lbGVtSWR4ID0gZWxlbS0+bmV4dDsKKwkJCW5leHRFbGVt ID0gJmVsZW1lbnRzW3N0YXRlLT5lbGVtSWR4XTsKKworCQkJLyoKKwkJCSAqIFVwZGF0ZSBpc0Fi c29yYmFibGUgZm9yIHRhcmdldCBlbGVtZW50IChtb25vdG9uaWM6IEFORAorCQkJICogcHJlc2Vy dmVzIGZhbHNlKQorCQkJICovCisJCQlzdGF0ZS0+aXNBYnNvcmJhYmxlID0gc3RhdGUtPmlzQWJz b3JiYWJsZSAmJgorCQkJCVJQUkVsZW1Jc0Fic29yYmFibGVCcmFuY2gobmV4dEVsZW0pOworCisJ CQkvKgorCQkJICogV2hlbiBleGl0aW5nIGRpcmVjdGx5IHRvIGFuIG91dGVyIEVORCwgaW5jcmVt ZW50IGl0cyBpdGVyYXRpb24KKwkJCSAqIGNvdW50LiAgU2ltcGxlIFZBUnMgKG1pbj1tYXg9MSkg aGFuZGxlIHRoaXMgdmlhIGlubGluZSBhZHZhbmNlCisJCQkgKiBpbiBuZmFfbWF0Y2gsIGJ1dCBx dWFudGlmaWVkIFZBUnMgYnlwYXNzIHRoYXQgcGF0aC4KKwkJCSAqLworCQkJaWYgKFJQUkVsZW1J c0VuZChuZXh0RWxlbSkpCisJCQl7CisJCQkJaWYgKHN0YXRlLT5jb3VudHNbbmV4dEVsZW0tPmRl cHRoXSA8IFJQUl9DT1VOVF9NQVgpCisJCQkJCXN0YXRlLT5jb3VudHNbbmV4dEVsZW0tPmRlcHRo XSsrOworCQkJfQorCisJCQluZmFfcm91dGVfdG9fZWxlbSh3aW5zdGF0ZSwgY3R4LCBzdGF0ZSwg bmV4dEVsZW0sCisJCQkJCQkJICBjdXJyZW50UG9zKTsKKwkJfQorCX0KKwllbHNlIGlmIChjYW5M b29wKQorCXsKKwkJLyogTG9vcCBvbmx5OiBrZWVwIHN0YXRlIGFzLWlzICovCisJCW5mYV9hZGRf c3RhdGVfdW5pcXVlKHdpbnN0YXRlLCBjdHgsIHN0YXRlKTsKKwl9CisJZWxzZSBpZiAoY2FuRXhp dCkKKwl7CisJCS8qIEV4aXQgb25seTogYWR2YW5jZSB0byBuZXh0IGVsZW1lbnQgKi8KKwkJUlBS UGF0dGVybkVsZW1lbnQgKm5leHRFbGVtOworCisJCXN0YXRlLT5jb3VudHNbZGVwdGhdID0gMDsK KwkJc3RhdGUtPmVsZW1JZHggPSBlbGVtLT5uZXh0OworCQluZXh0RWxlbSA9ICZlbGVtZW50c1tz dGF0ZS0+ZWxlbUlkeF07CisKKwkJLyoKKwkJICogVXBkYXRlIGlzQWJzb3JiYWJsZSBmb3IgdGFy Z2V0IGVsZW1lbnQgKG1vbm90b25pYzogQU5EIHByZXNlcnZlcworCQkgKiBmYWxzZSkKKwkJICov CisJCXN0YXRlLT5pc0Fic29yYmFibGUgPSBzdGF0ZS0+aXNBYnNvcmJhYmxlICYmCisJCQlSUFJF bGVtSXNBYnNvcmJhYmxlQnJhbmNoKG5leHRFbGVtKTsKKworCQkvKiBTZWUgY29tbWVudCBhYm92 ZTogaW5jcmVtZW50IG91dGVyIEVORCBjb3VudCBmb3IgcXVhbnRpZmllZCBWQVJzICovCisJCWlm IChSUFJFbGVtSXNFbmQobmV4dEVsZW0pKQorCQl7CisJCQlpZiAoc3RhdGUtPmNvdW50c1tuZXh0 RWxlbS0+ZGVwdGhdIDwgUlBSX0NPVU5UX01BWCkKKwkJCQlzdGF0ZS0+Y291bnRzW25leHRFbGVt LT5kZXB0aF0rKzsKKwkJfQorCisJCW5mYV9yb3V0ZV90b19lbGVtKHdpbnN0YXRlLCBjdHgsIHN0 YXRlLCBuZXh0RWxlbSwgY3VycmVudFBvcyk7CisJfQorfQorCisvKgorICogbmZhX2FkdmFuY2Vf c3RhdGUKKyAqCisgKiBSZWN1cnNpdmVseSBwcm9jZXNzIGEgc2luZ2xlIHN0YXRlIHRocm91Z2gg ZXBzaWxvbiB0cmFuc2l0aW9ucy4KKyAqIERGUyB0cmF2ZXJzYWwgZW5zdXJlcyBzdGF0ZXMgYXJl IGFkZGVkIHRvIGN0eC0+c3RhdGVzIGluIGxleGljYWwgb3JkZXIuCisgKi8KK3N0YXRpYyB2b2lk CituZmFfYWR2YW5jZV9zdGF0ZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRl eHQgKmN0eCwKKwkJCQkgIFJQUk5GQVN0YXRlICpzdGF0ZSwgaW50NjQgY3VycmVudFBvcykKK3sK KwlSUFJQYXR0ZXJuICpwYXR0ZXJuID0gd2luc3RhdGUtPnJwUGF0dGVybjsKKwlSUFJQYXR0ZXJu RWxlbWVudCAqZWxlbTsKKworCUFzc2VydChzdGF0ZS0+ZWxlbUlkeCA+PSAwICYmIHN0YXRlLT5l bGVtSWR4IDwgcGF0dGVybi0+bnVtRWxlbWVudHMpOworCisJLyogUHJvdGVjdCBhZ2FpbnN0IHN0 YWNrIG92ZXJmbG93IGZvciBkZWVwbHkgY29tcGxleCBwYXR0ZXJucyAqLworCWNoZWNrX3N0YWNr X2RlcHRoKCk7CisKKwkvKiBDeWNsZSBkZXRlY3Rpb246IGlmIHRoaXMgZWxlbUlkeCB3YXMgYWxy ZWFkeSB2aXNpdGVkIGluIHRoaXMgREZTLCBiYWlsICovCisJaWYgKHdpbnN0YXRlLT5uZmFWaXNp dGVkRWxlbXNbV09SRE5VTShzdGF0ZS0+ZWxlbUlkeCldICYKKwkJKChiaXRtYXB3b3JkKSAxIDw8 IEJJVE5VTShzdGF0ZS0+ZWxlbUlkeCkpKQorCXsKKwkJbmZhX3N0YXRlX2ZyZWUod2luc3RhdGUs IHN0YXRlKTsKKwkJcmV0dXJuOworCX0KKworCWVsZW0gPSAmcGF0dGVybi0+ZWxlbWVudHNbc3Rh dGUtPmVsZW1JZHhdOworCisJLyoKKwkgKiBNYXJrIGVwc2lsb24gZWxlbWVudHMgKEVORCwgQUxU LCBCRUdJTiwgRklOKSBpbiB2aXNpdGVkIHRvIHByZXZlbnQKKwkgKiBpbmZpbml0ZSBlcHNpbG9u IGN5Y2xlcy4gIFZBUiBlbGVtZW50cyBhcmUgbWFya2VkIGxhdGVyIHdoZW4gYWRkZWQgdG8KKwkg KiB0aGUgc3RhdGUgbGlzdCAobmZhX2FkZF9zdGF0ZV91bmlxdWUpLCBhbGxvd2luZyBsZWdpdGlt YXRlIGxvb3AtYmFjayB0bworCSAqIHRoZSBzYW1lIFZBUiBpbiBhIG5ldyBpdGVyYXRpb24uCisJ ICovCisJaWYgKCFSUFJFbGVtSXNWYXIoZWxlbSkpCisJCXdpbnN0YXRlLT5uZmFWaXNpdGVkRWxl bXNbV09SRE5VTShzdGF0ZS0+ZWxlbUlkeCldIHw9CisJCQkoKGJpdG1hcHdvcmQpIDEgPDwgQklU TlVNKHN0YXRlLT5lbGVtSWR4KSk7CisKKwlzd2l0Y2ggKGVsZW0tPnZhcklkKQorCXsKKwkJY2Fz ZSBSUFJfVkFSSURfRklOOgorCQkJLyogRklOOiByZWNvcmQgbWF0Y2ggKi8KKwkJCW5mYV9hZGRf bWF0Y2hlZF9zdGF0ZSh3aW5zdGF0ZSwgY3R4LCBzdGF0ZSwgY3VycmVudFBvcyk7CisJCQlicmVh azsKKworCQljYXNlIFJQUl9WQVJJRF9BTFQ6CisJCQluZmFfYWR2YW5jZV9hbHQod2luc3RhdGUs IGN0eCwgc3RhdGUsIGVsZW0sIGN1cnJlbnRQb3MpOworCQkJYnJlYWs7CisKKwkJY2FzZSBSUFJf VkFSSURfQkVHSU46CisJCQluZmFfYWR2YW5jZV9iZWdpbih3aW5zdGF0ZSwgY3R4LCBzdGF0ZSwg ZWxlbSwgY3VycmVudFBvcyk7CisJCQlicmVhazsKKworCQljYXNlIFJQUl9WQVJJRF9FTkQ6CisJ CQluZmFfYWR2YW5jZV9lbmQod2luc3RhdGUsIGN0eCwgc3RhdGUsIGVsZW0sIGN1cnJlbnRQb3Mp OworCQkJYnJlYWs7CisKKwkJZGVmYXVsdDoKKwkJCS8qIFZBUiBlbGVtZW50ICovCisJCQluZmFf YWR2YW5jZV92YXIod2luc3RhdGUsIGN0eCwgc3RhdGUsIGVsZW0sIGN1cnJlbnRQb3MpOworCQkJ YnJlYWs7CisJfQorfQorCisvKgorICogbmZhX2FkdmFuY2UKKyAqCisgKiBBZHZhbmNlIHBoYXNl IChkaXZlcmdlbmNlKTogdHJhbnNpdGlvbiBmcm9tIGFsbCBzdXJ2aXZpbmcgc3RhdGVzLgorICog Q2FsbGVkIGFmdGVyIG1hdGNoIHBoYXNlIHdpdGggbWF0Y2hlZCBWQVIgc3RhdGVzLCBvciBhdCBj b250ZXh0IGNyZWF0aW9uCisgKiBmb3IgaW5pdGlhbCBlcHNpbG9uIGV4cGFuc2lvbiAod2l0aCBj dXJyZW50UG9zID0gc3RhcnRQb3MgLSAxKS4KKyAqCisgKiBQcm9jZXNzZXMgc3RhdGVzIGluIG9y ZGVyLCB1c2luZyByZWN1cnNpdmUgREZTIHRvIG1haW50YWluIGxleGljYWwgb3JkZXIuCisgKi8K K3N0YXRpYyB2b2lkCituZmFfYWR2YW5jZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5G QUNvbnRleHQgKmN0eCwgaW50NjQgY3VycmVudFBvcykKK3sKKwlSUFJORkFTdGF0ZSAqc3RhdGVz ID0gY3R4LT5zdGF0ZXM7CisJUlBSTkZBU3RhdGUgKnN0YXRlOworCVJQUk5GQVN0YXRlICpzYXZl ZE1hdGNoZWRTdGF0ZTsKKworCWN0eC0+c3RhdGVzID0gTlVMTDsJCQkvKiBXaWxsIHJlYnVpbGQg Ki8KKworCS8qIFByb2Nlc3MgZWFjaCBzdGF0ZSBpbiBsZXhpY2FsIG9yZGVyIChERlMgb3JkZXIg ZnJvbSBwcmV2aW91cyBhZHZhbmNlKSAqLworCXdoaWxlIChzdGF0ZXMgIT0gTlVMTCkKKwl7CisJ CUNIRUNLX0ZPUl9JTlRFUlJVUFRTKCk7CisJCXNhdmVkTWF0Y2hlZFN0YXRlID0gY3R4LT5tYXRj aGVkU3RhdGU7CisKKwkJLyogQ2xlYXIgdmlzaXRlZCBiaXRtYXAgYmVmb3JlIGVhY2ggc3RhdGUn cyBERlMgZXhwYW5zaW9uICovCisJCW1lbXNldCh3aW5zdGF0ZS0+bmZhVmlzaXRlZEVsZW1zLCAw LAorCQkJICAgc2l6ZW9mKGJpdG1hcHdvcmQpICogd2luc3RhdGUtPm5mYVZpc2l0ZWROV29yZHMp OworCisJCXN0YXRlID0gc3RhdGVzOworCQlzdGF0ZXMgPSBzdGF0ZXMtPm5leHQ7CisJCXN0YXRl LT5uZXh0ID0gTlVMTDsKKworCQluZmFfYWR2YW5jZV9zdGF0ZSh3aW5zdGF0ZSwgY3R4LCBzdGF0 ZSwgY3VycmVudFBvcyk7CisKKwkJLyoKKwkJICogRWFybHkgdGVybWluYXRpb246IGlmIGEgRklO IHdhcyBuZXdseSByZWFjaGVkIGluIHRoaXMgYWR2YW5jZSwKKwkJICogcmVtYWluaW5nIG9sZCBz dGF0ZXMgaGF2ZSB3b3JzZSBsZXhpY2FsIG9yZGVyIGFuZCBjYW4gYmUgcHJ1bmVkLgorCQkgKiBP bmx5IGNoZWNrIGZvciBuZXcgRklOIGFycml2YWxzIChub3Qgb25lcyBmcm9tIHByZXZpb3VzIHJv d3MpLgorCQkgKi8KKwkJaWYgKGN0eC0+bWF0Y2hlZFN0YXRlICE9IHNhdmVkTWF0Y2hlZFN0YXRl ICYmIHN0YXRlcyAhPSBOVUxMKQorCQl7CisJCQluZmFfc3RhdGVfZnJlZV9saXN0KHdpbnN0YXRl LCBzdGF0ZXMpOworCQkJYnJlYWs7CisJCX0KKwl9Cit9CisKKworLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisg KiBBUEkgZXhwb3NlZCB0byBub2RlV2luZG93QWdnLmMKKyAqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoK KyAqIEV4ZWNSUFJTdGFydENvbnRleHQKKyAqCisgKiBTdGFydCBhIG5ldyBtYXRjaCBjb250ZXh0 IGF0IGdpdmVuIHBvc2l0aW9uLgorICogSW5pdGlhbGl6ZXMgY29udGV4dCwgc3RhdGUgYWJzb3Jw dGlvbiBmbGFncywgYW5kIHBlcmZvcm1zIGluaXRpYWwgYWR2YW5jZQorICogdG8gZXhwYW5kIGVw c2lsb24gdHJhbnNpdGlvbnMgKEFMVCBicmFuY2hlcywgb3B0aW9uYWwgZWxlbWVudHMpLgorICog QWRkcyBjb250ZXh0IHRvIHRoZSB0YWlsIG9mIHdpbnN0YXRlLT5uZmFDb250ZXh0IGxpc3QuCisg Ki8KK1JQUk5GQUNvbnRleHQgKgorRXhlY1JQUlN0YXJ0Q29udGV4dChXaW5kb3dBZ2dTdGF0ZSAq d2luc3RhdGUsIGludDY0IHN0YXJ0UG9zKQoreworCVJQUk5GQUNvbnRleHQgKmN0eDsKKwlSUFJQ YXR0ZXJuICpwYXR0ZXJuID0gd2luc3RhdGUtPnJwUGF0dGVybjsKKwlSUFJQYXR0ZXJuRWxlbWVu dCAqZWxlbTsKKworCWN0eCA9IG5mYV9jb250ZXh0X2FsbG9jKHdpbnN0YXRlKTsKKwljdHgtPm1h dGNoU3RhcnRSb3cgPSBzdGFydFBvczsKKwljdHgtPnN0YXRlcyA9IG5mYV9zdGF0ZV9hbGxvYyh3 aW5zdGF0ZSk7CS8qIGluaXRpYWwgc3RhdGUgYXQgZWxlbSAwICovCisKKwllbGVtID0gJnBhdHRl cm4tPmVsZW1lbnRzWzBdOworCisJaWYgKFJQUkVsZW1Jc0Fic29yYmFibGVCcmFuY2goZWxlbSkp CisJeworCQljdHgtPnN0YXRlcy0+aXNBYnNvcmJhYmxlID0gdHJ1ZTsKKwl9CisJZWxzZQorCXsK KwkJY3R4LT5oYXNBYnNvcmJhYmxlU3RhdGUgPSBmYWxzZTsKKwkJY3R4LT5hbGxTdGF0ZXNBYnNv cmJhYmxlID0gZmFsc2U7CisJCWN0eC0+c3RhdGVzLT5pc0Fic29yYmFibGUgPSBmYWxzZTsKKwl9 CisKKwkvKiBBZGQgdG8gdGFpbCBvZiBhY3RpdmUgY29udGV4dCBsaXN0IChkb3VibHktbGlua2Vk LCBvbGRlc3QtZmlyc3QpICovCisJY3R4LT5wcmV2ID0gd2luc3RhdGUtPm5mYUNvbnRleHRUYWls OworCWN0eC0+bmV4dCA9IE5VTEw7CisJaWYgKHdpbnN0YXRlLT5uZmFDb250ZXh0VGFpbCAhPSBO VUxMKQorCQl3aW5zdGF0ZS0+bmZhQ29udGV4dFRhaWwtPm5leHQgPSBjdHg7CisJZWxzZQorCQl3 aW5zdGF0ZS0+bmZhQ29udGV4dCA9IGN0eDsgLyogZmlyc3QgY29udGV4dCBiZWNvbWVzIGhlYWQg Ki8KKwl3aW5zdGF0ZS0+bmZhQ29udGV4dFRhaWwgPSBjdHg7CisKKwkvKgorCSAqIEluaXRpYWwg YWR2YW5jZSAoZGl2ZXJnZW5jZSk6IGV4cGFuZCBBTFQgYnJhbmNoZXMgYW5kIGNyZWF0ZSBleGl0 CisJICogc3RhdGVzIGZvciBWQVIgZWxlbWVudHMgd2l0aCBtaW49MC4gVGhpcyBwcmVwYXJlcyB0 aGUgY29udGV4dCBmb3IgdGhlCisJICogZmlyc3Qgcm93J3MgbWF0Y2ggcGhhc2UuCisJICoKKwkg KiBVc2Ugc3RhcnRQb3MgLSAxIGFzIGN1cnJlbnRQb3Mgc2luY2Ugbm8gcm93IGhhcyBiZWVuIGNv bnN1bWVkIHlldC4gSWYKKwkgKiBGSU4gaXMgcmVhY2hlZCB2aWEgZXBzaWxvbiB0cmFuc2l0aW9u cywgbWF0Y2hFbmRSb3cgPSBzdGFydFBvcyAtIDEKKwkgKiB3aGljaCBpcyBsZXNzIHRoYW4gbWF0 Y2hTdGFydFJvdywgcmVzdWx0aW5nIGluIFVOTUFUQ0hFRCB0cmVhdG1lbnQuCisJICovCisJbmZh X2FkdmFuY2Uod2luc3RhdGUsIGN0eCwgc3RhcnRQb3MgLSAxKTsKKworCXJldHVybiBjdHg7Cit9 CisKKy8qCisgKiBFeGVjUlBSR2V0SGVhZENvbnRleHQKKyAqCisgKiBSZXR1cm4gdGhlIGhlYWQg Y29udGV4dCBpZiBpdHMgc3RhcnQgcG9zaXRpb24gbWF0Y2hlcyBwb3MuCisgKiBSZXR1cm5zIE5V TEwgaWYgbm8gY29udGV4dCBleGlzdHMgb3IgaGVhZCBkb2Vzbid0IG1hdGNoIHBvcy4KKyAqLwor UlBSTkZBQ29udGV4dCAqCitFeGVjUlBSR2V0SGVhZENvbnRleHQoV2luZG93QWdnU3RhdGUgKndp bnN0YXRlLCBpbnQ2NCBwb3MpCit7CisJUlBSTkZBQ29udGV4dCAqY3R4ID0gd2luc3RhdGUtPm5m YUNvbnRleHQ7CisKKwkvKgorCSAqIENvbnRleHRzIGFyZSBzb3J0ZWQgYnkgbWF0Y2hTdGFydFJv dyBhc2NlbmRpbmcuICBJZiB0aGUgaGVhZCBjb250ZXh0CisJICogZG9lc24ndCBtYXRjaCBwb3Ms IG5vIGNvbnRleHQgZXhpc3RzIGZvciB0aGlzIHBvc2l0aW9uLgorCSAqLworCWlmIChjdHggPT0g TlVMTCB8fCBjdHgtPm1hdGNoU3RhcnRSb3cgIT0gcG9zKQorCQlyZXR1cm4gTlVMTDsKKworCXJl dHVybiBjdHg7Cit9CisKKy8qCisgKiBFeGVjUlBSRnJlZUNvbnRleHQKKyAqCisgKiBVbmxpbmsg Y29udGV4dCBmcm9tIGFjdGl2ZSBsaXN0IGFuZCByZXR1cm4gaXQgdG8gZnJlZSBsaXN0LgorICog QWxzbyBmcmVlcyBhbnkgc3RhdGVzIGluIHRoZSBjb250ZXh0LgorICovCit2b2lkCitFeGVjUlBS RnJlZUNvbnRleHQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgp Cit7CisJLyogVW5saW5rIGZyb20gYWN0aXZlIGxpc3QgZmlyc3QgKi8KKwluZmFfdW5saW5rX2Nv bnRleHQod2luc3RhdGUsIGN0eCk7CisKKwkvKiBVcGRhdGUgc3RhdGlzdGljcyAqLworCXdpbnN0 YXRlLT5uZmFDb250ZXh0c0FjdGl2ZS0tOworCisJaWYgKGN0eC0+c3RhdGVzICE9IE5VTEwpCisJ CW5mYV9zdGF0ZV9mcmVlX2xpc3Qod2luc3RhdGUsIGN0eC0+c3RhdGVzKTsKKwlpZiAoY3R4LT5t YXRjaGVkU3RhdGUgIT0gTlVMTCkKKwkJbmZhX3N0YXRlX2ZyZWUod2luc3RhdGUsIGN0eC0+bWF0 Y2hlZFN0YXRlKTsKKworCWN0eC0+c3RhdGVzID0gTlVMTDsKKwljdHgtPm1hdGNoZWRTdGF0ZSA9 IE5VTEw7CisJY3R4LT5uZXh0ID0gd2luc3RhdGUtPm5mYUNvbnRleHRGcmVlOworCXdpbnN0YXRl LT5uZmFDb250ZXh0RnJlZSA9IGN0eDsKK30KKworLyoKKyAqIEV4ZWNSUFJSZWNvcmRDb250ZXh0 U3VjY2VzcworICoKKyAqIFJlY29yZCBhIHN1Y2Nlc3NmdWwgY29udGV4dCBpbiBzdGF0aXN0aWNz LgorICovCit2b2lkCitFeGVjUlBSUmVjb3JkQ29udGV4dFN1Y2Nlc3MoV2luZG93QWdnU3RhdGUg KndpbnN0YXRlLCBpbnQ2NCBtYXRjaExlbikKK3sKKwl3aW5zdGF0ZS0+bmZhTWF0Y2hlc1N1Y2Nl ZWRlZCsrOworCW5mYV91cGRhdGVfbGVuZ3RoX3N0YXRzKHdpbnN0YXRlLT5uZmFNYXRjaGVzU3Vj Y2VlZGVkLAorCQkJCQkJCSZ3aW5zdGF0ZS0+bmZhTWF0Y2hMZW4sCisJCQkJCQkJbWF0Y2hMZW4p OworfQorCisvKgorICogRXhlY1JQUlJlY29yZENvbnRleHRGYWlsdXJlCisgKgorICogUmVjb3Jk IGEgZmFpbGVkIGNvbnRleHQgaW4gc3RhdGlzdGljcy4KKyAqIElmIGZhaWxlZExlbiA9PSAxLCBj b3VudCBhcyBwcnVuZWQgKGZhaWxlZCBvbiBmaXJzdCByb3cpLgorICogSWYgZmFpbGVkTGVuID4g MSwgY291bnQgYXMgbWlzbWF0Y2hlZCBhbmQgdXBkYXRlIGxlbmd0aCBzdGF0cy4KKyAqLwordm9p ZAorRXhlY1JQUlJlY29yZENvbnRleHRGYWlsdXJlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwg aW50NjQgZmFpbGVkTGVuKQoreworCWlmIChmYWlsZWRMZW4gPT0gMSkKKwl7CisJCXdpbnN0YXRl LT5uZmFDb250ZXh0c1BydW5lZCsrOworCX0KKwllbHNlCisJeworCQl3aW5zdGF0ZS0+bmZhTWF0 Y2hlc0ZhaWxlZCsrOworCQluZmFfdXBkYXRlX2xlbmd0aF9zdGF0cyh3aW5zdGF0ZS0+bmZhTWF0 Y2hlc0ZhaWxlZCwKKwkJCQkJCQkJJndpbnN0YXRlLT5uZmFGYWlsTGVuLAorCQkJCQkJCQlmYWls ZWRMZW4pOworCX0KK30KKworLyoKKyAqIG5mYV9yZWV2YWx1YXRlX2RlcGVuZGVudF92YXJzCisg KgkJUmUtZXZhbHVhdGUgbWF0Y2hfc3RhcnQtZGVwZW5kZW50IERFRklORSB2YXJpYWJsZXMgZm9y IGEgc3BlY2lmaWMKKyAqCQljb250ZXh0IHdob3NlIG1hdGNoU3RhcnRSb3cgZGlmZmVycyBmcm9t IHRoZSBzaGFyZWQgZXZhbHVhdGlvbidzCisgKgkJbmF2X21hdGNoX3N0YXJ0LgorICoKKyAqIE9u bHkgdmFyaWFibGVzIGluIGRlZmluZU1hdGNoU3RhcnREZXBlbmRlbnQgYXJlIHJlLWV2YWx1YXRl ZC4gIFRoZQorICogY3VycmVudCByb3cncyBzbG90IChlY3h0X291dGVydHVwbGUpIG11c3QgYWxy ZWFkeSBiZSBzZXQgdXAgYnkKKyAqIG5mYV9ldmFsdWF0ZV9yb3coKS4KKyAqLworc3RhdGljIHZv aWQKK25mYV9yZWV2YWx1YXRlX2RlcGVuZGVudF92YXJzKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0 ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAorCQkJCQkJCSAgaW50NjQgY3VycmVudFBvcykKK3sKKwlF eHByQ29udGV4dCAqZWNvbnRleHQgPSB3aW5zdGF0ZS0+c3MucHMucHNfRXhwckNvbnRleHQ7CisJ aW50NjQJCXNhdmVkX21hdGNoX3N0YXJ0ID0gd2luc3RhdGUtPm5hdl9tYXRjaF9zdGFydDsKKwlp bnQ2NAkJc2F2ZWRfcG9zID0gd2luc3RhdGUtPmN1cnJlbnRwb3M7CisJaW50CQkJdmFySWR4ID0g MDsKKwlMaXN0Q2VsbCAgICpsYzsKKworCS8qIFRlbXBvcmFyaWx5IHNldCBuYXZfbWF0Y2hfc3Rh cnQgYW5kIGN1cnJlbnRwb3MgZm9yIEZJUlNUL0xBU1QgKi8KKwl3aW5zdGF0ZS0+bmF2X21hdGNo X3N0YXJ0ID0gY3R4LT5tYXRjaFN0YXJ0Um93OworCXdpbnN0YXRlLT5jdXJyZW50cG9zID0gY3Vy cmVudFBvczsKKworCS8qIEludmFsaWRhdGUgbmF2X3Nsb3QgY2FjaGUgc2luY2UgbWF0Y2hfc3Rh cnQgY2hhbmdlZCAqLworCXdpbnN0YXRlLT5uYXZfc2xvdF9wb3MgPSAtMTsKKworCWZvcmVhY2go bGMsIHdpbnN0YXRlLT5kZWZpbmVDbGF1c2VMaXN0KQorCXsKKwkJaWYgKGJtc19pc19tZW1iZXIo dmFySWR4LCB3aW5zdGF0ZS0+ZGVmaW5lTWF0Y2hTdGFydERlcGVuZGVudCkpCisJCXsKKwkJCUV4 cHJTdGF0ZSAgKmV4cHJTdGF0ZSA9IChFeHByU3RhdGUgKikgbGZpcnN0KGxjKTsKKwkJCURhdHVt CQlyZXN1bHQ7CisJCQlib29sCQlpc251bGw7CisKKwkJCXJlc3VsdCA9IEV4ZWNFdmFsRXhwcihl eHByU3RhdGUsIGVjb250ZXh0LCAmaXNudWxsKTsKKwkJCXdpbnN0YXRlLT5uZmFWYXJNYXRjaGVk W3ZhcklkeF0gPSAoIWlzbnVsbCAmJiBEYXR1bUdldEJvb2wocmVzdWx0KSk7CisJCX0KKworCQl2 YXJJZHgrKzsKKwkJaWYgKHZhcklkeCA+PSBsaXN0X2xlbmd0aCh3aW5zdGF0ZS0+ZGVmaW5lVmFy aWFibGVMaXN0KSkKKwkJCWJyZWFrOworCX0KKworCS8qIFJlc3RvcmUgb3JpZ2luYWwgbWF0Y2hf c3RhcnQsIGN1cnJlbnRwb3MsIGFuZCBpbnZhbGlkYXRlIGNhY2hlICovCisJd2luc3RhdGUtPm5h dl9tYXRjaF9zdGFydCA9IHNhdmVkX21hdGNoX3N0YXJ0OworCXdpbnN0YXRlLT5jdXJyZW50cG9z ID0gc2F2ZWRfcG9zOworCXdpbnN0YXRlLT5uYXZfc2xvdF9wb3MgPSAtMTsKK30KKworLyoKKyAq IEV4ZWNSUFJQcm9jZXNzUm93CisgKgorICogUHJvY2VzcyBhbGwgY29udGV4dHMgZm9yIG9uZSBy b3c6CisgKiAgIDEuIE1hdGNoIGFsbCBjb250ZXh0cyAoY29udmVyZ2VuY2UpIC0gZXZhbHVhdGUg VkFScywgcHJ1bmUgZGVhZCBzdGF0ZXMKKyAqICAgMi4gQWJzb3JiIHJlZHVuZGFudCBjb250ZXh0 cyAtIGlkZWFsIHRpbWluZyBhZnRlciBjb252ZXJnZW5jZQorICogICAzLiBBZHZhbmNlIGFsbCBj b250ZXh0cyAoZGl2ZXJnZW5jZSkgLSBjcmVhdGUgbmV3IHN0YXRlcyBmb3IgbmV4dCByb3cKKyAq Lwordm9pZAorRXhlY1JQUlByb2Nlc3NSb3coV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQ2 NCBjdXJyZW50UG9zLAorCQkJCSAgYm9vbCBoYXNMaW1pdGVkRnJhbWUsIGludDY0IGZyYW1lT2Zm c2V0KQoreworCVJQUk5GQUNvbnRleHQgKmN0eDsKKwlib29sCSAgICp2YXJNYXRjaGVkID0gd2lu c3RhdGUtPm5mYVZhck1hdGNoZWQ7CisJYm9vbAkJaGFzRGVwZW5kZW50ID0gIWJtc19pc19lbXB0 eSh3aW5zdGF0ZS0+ZGVmaW5lTWF0Y2hTdGFydERlcGVuZGVudCk7CisKKwkvKiBBbGxvdyBxdWVy eSBjYW5jZWxsYXRpb24gb25jZSBwZXIgcm93IGZvciBzaW1wbGUvbG93LXN0YXRlIHBhdHRlcm5z ICovCisJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKKworCS8qCisJICogUGhhc2UgMTogTWF0Y2gg YWxsIGNvbnRleHRzIChjb252ZXJnZW5jZSkuICBFdmFsdWF0ZSBWQVIgZWxlbWVudHMsCisJICog dXBkYXRlIGNvdW50cywgcmVtb3ZlIGRlYWQgc3RhdGVzLgorCSAqLworCWZvciAoY3R4ID0gd2lu c3RhdGUtPm5mYUNvbnRleHQ7IGN0eCAhPSBOVUxMOyBjdHggPSBjdHgtPm5leHQpCisJeworCQlp ZiAoY3R4LT5zdGF0ZXMgPT0gTlVMTCkKKwkJCWNvbnRpbnVlOworCisJCS8qIENoZWNrIGZyYW1l IGJvdW5kYXJ5IC0gZmluYWxpemUgaWYgZXhjZWVkZWQgKi8KKwkJaWYgKGhhc0xpbWl0ZWRGcmFt ZSkKKwkJeworCQkJaW50NjQJCWN0eEZyYW1lRW5kOworCisJCQkvKiBDbGFtcCB0byBJTlQ2NF9N QVggb24gb3ZlcmZsb3cgKi8KKwkJCWlmIChwZ19hZGRfczY0X292ZXJmbG93KGN0eC0+bWF0Y2hT dGFydFJvdywgZnJhbWVPZmZzZXQgKyAxLAorCQkJCQkJCQkJJmN0eEZyYW1lRW5kKSkKKwkJCQlj dHhGcmFtZUVuZCA9IFBHX0lOVDY0X01BWDsKKworCQkJaWYgKGN1cnJlbnRQb3MgPj0gY3R4RnJh bWVFbmQpCisJCQl7CisJCQkJLyogRnJhbWUgYm91bmRhcnkgZXhjZWVkZWQ6IGZvcmNlIG1pc21h dGNoICovCisJCQkJbmZhX21hdGNoKHdpbnN0YXRlLCBjdHgsIE5VTEwpOworCQkJCWNvbnRpbnVl OworCQkJfQorCQl9CisKKwkJLyoKKwkJICogSWYgdGhpcyBjb250ZXh0IGhhcyBhIGRpZmZlcmVu dCBtYXRjaFN0YXJ0Um93IHRoYW4gdGhlIG9uZSB1c2VkIGluCisJCSAqIHRoZSBzaGFyZWQgZXZh bHVhdGlvbiwgcmUtZXZhbHVhdGUgbWF0Y2hfc3RhcnQtZGVwZW5kZW50IHZhcmlhYmxlcworCQkg KiB3aXRoIHRoaXMgY29udGV4dCdzIG1hdGNoU3RhcnRSb3cuCisJCSAqLworCQlpZiAoaGFzRGVw ZW5kZW50ICYmIGN0eC0+bWF0Y2hTdGFydFJvdyAhPSB3aW5zdGF0ZS0+bmF2X21hdGNoX3N0YXJ0 KQorCQkJbmZhX3JlZXZhbHVhdGVfZGVwZW5kZW50X3ZhcnMod2luc3RhdGUsIGN0eCwgY3VycmVu dFBvcyk7CisJCW5mYV9tYXRjaCh3aW5zdGF0ZSwgY3R4LCB2YXJNYXRjaGVkKTsKKwkJY3R4LT5s YXN0UHJvY2Vzc2VkUm93ID0gY3VycmVudFBvczsKKwl9CisKKwkvKgorCSAqIFBoYXNlIDI6IEFi c29yYiByZWR1bmRhbnQgY29udGV4dHMuICBBZnRlciBtYXRjaCBwaGFzZSwgc3RhdGVzIGhhdmUK KwkgKiBjb252ZXJnZWQgLSBpZGVhbCBmb3IgYWJzb3JwdGlvbi4gIEZpcnN0IHVwZGF0ZSBhYnNv cnB0aW9uIGZsYWdzIHRoYXQKKwkgKiBtYXkgaGF2ZSBjaGFuZ2VkIGR1ZSB0byBzdGF0ZSByZW1v dmFsLgorCSAqLworCWlmICh3aW5zdGF0ZS0+cnBQYXR0ZXJuLT5pc0Fic29yYmFibGUpCisJewor CQlmb3IgKGN0eCA9IHdpbnN0YXRlLT5uZmFDb250ZXh0OyBjdHggIT0gTlVMTDsgY3R4ID0gY3R4 LT5uZXh0KQorCQkJbmZhX3VwZGF0ZV9hYnNvcnB0aW9uX2ZsYWdzKGN0eCk7CisKKwkJbmZhX2Fi c29yYl9jb250ZXh0cyh3aW5zdGF0ZSk7CisJfQorCisJLyoKKwkgKiBQaGFzZSAzOiBBZHZhbmNl IGFsbCBjb250ZXh0cyAoZGl2ZXJnZW5jZSkuICBDcmVhdGUgbmV3IHN0YXRlcworCSAqIChsb29w L2V4aXQpIGZyb20gc3Vydml2aW5nIG1hdGNoZWQgc3RhdGVzLgorCSAqLworCWZvciAoY3R4ID0g d2luc3RhdGUtPm5mYUNvbnRleHQ7IGN0eCAhPSBOVUxMOyBjdHggPSBjdHgtPm5leHQpCisJewor CQlpZiAoY3R4LT5zdGF0ZXMgPT0gTlVMTCkKKwkJCWNvbnRpbnVlOworCisJCS8qCisJCSAqIFBo YXNlIDEgYWxyZWFkeSBoYW5kbGVkIGZyYW1lIGJvdW5kYXJ5IGV4Y2VlZGVkIGNvbnRleHRzIGJ5 IGZvcmNpbmcKKwkJICogbWlzbWF0Y2ggKG5mYV9tYXRjaCB3aXRoIE5VTEwpLCB3aGljaCByZW1v dmVzIGFsbCBzdGF0ZXMgKGFsbAorCQkgKiBzdGF0ZXMgYXJlIGF0IFZBUiBwb3NpdGlvbnMgYWZ0 ZXIgYWR2YW5jZSkuIFNvIGFueSBzdXJ2aXZpbmcKKwkJICogY29udGV4dCBoZXJlIG11c3QgYmUg d2l0aGluIGl0cyBmcmFtZSBib3VuZGFyeS4KKwkJICovCisJCUFzc2VydCghaGFzTGltaXRlZEZy YW1lIHx8CisJCQkgICBjdHgtPm1hdGNoU3RhcnRSb3cgPiBQR19JTlQ2NF9NQVggLSBmcmFtZU9m ZnNldCAtIDEgfHwKKwkJCSAgIGN1cnJlbnRQb3MgPCBjdHgtPm1hdGNoU3RhcnRSb3cgKyBmcmFt ZU9mZnNldCArIDEpOworCisJCW5mYV9hZHZhbmNlKHdpbnN0YXRlLCBjdHgsIGN1cnJlbnRQb3Mp OworCX0KK30KKworLyoKKyAqIEV4ZWNSUFJDbGVhbnVwRGVhZENvbnRleHRzCisgKgorICogUmVt b3ZlIGNvbnRleHRzIHRoYXQgaGF2ZSBmYWlsZWQgKG5vIGFjdGl2ZSBzdGF0ZXMgYW5kIG5vIG1h dGNoKS4KKyAqIFRoZXNlIGFyZSBjb250ZXh0cyB0aGF0IGZhaWxlZCBkdXJpbmcgbm9ybWFsIHBy b2Nlc3NpbmcgYW5kIHNob3VsZCBiZQorICogY291bnRlZCBhcyBwcnVuZWQgKGlmIGxlbmd0aCAx KSBvciBtaXNtYXRjaGVkIChpZiBsZW5ndGggPiAxKS4KKyAqLwordm9pZAorRXhlY1JQUkNsZWFu dXBEZWFkQ29udGV4dHMoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpl eGNsdWRlQ3R4KQoreworCVJQUk5GQUNvbnRleHQgKmN0eDsKKwlSUFJORkFDb250ZXh0ICpuZXh0 OworCisJZm9yIChjdHggPSB3aW5zdGF0ZS0+bmZhQ29udGV4dDsgY3R4ICE9IE5VTEw7IGN0eCA9 IG5leHQpCisJeworCQlDSEVDS19GT1JfSU5URVJSVVBUUygpOworCisJCW5leHQgPSBjdHgtPm5l eHQ7CisKKwkJLyogU2tpcCB0aGUgdGFyZ2V0IGNvbnRleHQgYW5kIGNvbnRleHRzIHN0aWxsIHBy b2Nlc3NpbmcgKi8KKwkJaWYgKGN0eCA9PSBleGNsdWRlQ3R4IHx8IGN0eC0+c3RhdGVzICE9IE5V TEwpCisJCQljb250aW51ZTsKKworCQkvKiBTa2lwIHN1Y2Nlc3NmdWxseSBtYXRjaGVkIGNvbnRl eHRzICh3aWxsIGJlIGhhbmRsZWQgYnkgU0tJUCBsb2dpYykgKi8KKwkJaWYgKGN0eC0+bWF0Y2hF bmRSb3cgPj0gY3R4LT5tYXRjaFN0YXJ0Um93KQorCQkJY29udGludWU7CisKKwkJLyoKKwkJICog VGhpcyBpcyBhIGZhaWxlZCBjb250ZXh0IC0gY291bnQgYW5kIHJlbW92ZSBpdC4gT25seSBjb3Vu dCBpZiBpdAorCQkgKiBhY3R1YWxseSBwcm9jZXNzZWQgaXRzIHN0YXJ0IHJvdy4gQ29udGV4dHMg Y3JlYXRlZCBmb3IKKwkJICogYmV5b25kLXBhcnRpdGlvbiByb3dzIGFyZSBzaWxlbnRseSByZW1v dmVkLgorCQkgKi8KKwkJaWYgKGN0eC0+bGFzdFByb2Nlc3NlZFJvdyA+PSBjdHgtPm1hdGNoU3Rh cnRSb3cpCisJCXsKKwkJCWludDY0CQlmYWlsZWRMZW4gPSBjdHgtPmxhc3RQcm9jZXNzZWRSb3cg LSBjdHgtPm1hdGNoU3RhcnRSb3cgKyAxOworCisJCQlFeGVjUlBSUmVjb3JkQ29udGV4dEZhaWx1 cmUod2luc3RhdGUsIGZhaWxlZExlbik7CisJCX0KKwkJLyogZWxzZTogY29udGV4dCB3YXMgbmV2 ZXIgcHJvY2Vzc2VkIChiZXlvbmQtcGFydGl0aW9uKSwganVzdCByZW1vdmUgKi8KKworCQlFeGVj UlBSRnJlZUNvbnRleHQod2luc3RhdGUsIGN0eCk7CisJfQorfQorCisvKgorICogRXhlY1JQUkZp bmFsaXplQWxsQ29udGV4dHMKKyAqCisgKiBGaW5hbGl6ZSBhbGwgYWN0aXZlIGNvbnRleHRzIHdo ZW4gcGFydGl0aW9uIGVuZHMuCisgKiBNYXRjaCB3aXRoIE5VTEwgdG8gZm9yY2UgbWlzbWF0Y2gs IHRoZW4gYWR2YW5jZSB0byBwcm9jZXNzIGVwc2lsb24gdHJhbnNpdGlvbnMuCisgKi8KK3ZvaWQK K0V4ZWNSUFJGaW5hbGl6ZUFsbENvbnRleHRzKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgaW50 NjQgbGFzdFBvcykKK3sKKwlSUFJORkFDb250ZXh0ICpjdHg7CisKKwlmb3IgKGN0eCA9IHdpbnN0 YXRlLT5uZmFDb250ZXh0OyBjdHggIT0gTlVMTDsgY3R4ID0gY3R4LT5uZXh0KQorCXsKKwkJQ0hF Q0tfRk9SX0lOVEVSUlVQVFMoKTsKKworCQlpZiAoY3R4LT5zdGF0ZXMgIT0gTlVMTCkKKwkJewor CQkJbmZhX21hdGNoKHdpbnN0YXRlLCBjdHgsIE5VTEwpOworCQkJbmZhX2FkdmFuY2Uod2luc3Rh dGUsIGN0eCwgbGFzdFBvcyk7CisJCX0KKwl9Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9l eGVjdXRvci9tZXNvbi5idWlsZCBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL21lc29uLmJ1aWxkCmlu ZGV4IGRjNDViZTBiMmNlLi4wZmY0YTViMWQ4MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvbWVzb24uYnVpbGQKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvbWVzb24uYnVpbGQK QEAgLTEzLDYgKzEzLDcgQEAgYmFja2VuZF9zb3VyY2VzICs9IGZpbGVzKAogICAnZXhlY1BhcmFs bGVsLmMnLAogICAnZXhlY1BhcnRpdGlvbi5jJywKICAgJ2V4ZWNQcm9jbm9kZS5jJywKKyAgJ2V4 ZWNSUFIuYycsCiAgICdleGVjUmVwbGljYXRpb24uYycsCiAgICdleGVjU1JGLmMnLAogICAnZXhl Y1NjYW4uYycsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdn LmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKaW5kZXggZjUyYTdhYWU4 NDMuLjkzY2I5YmJkZDExIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2lu ZG93QWdnLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCkBAIC0z NiwxNSArMzYsMTkgQEAKICNpbmNsdWRlICJhY2Nlc3MvaHR1cF9kZXRhaWxzLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9vYmplY3RhY2Nlc3MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2FnZ3JlZ2F0 ZS5oIgorI2luY2x1ZGUgImNvbW1vbi9pbnQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2Mu aCIKICNpbmNsdWRlICJjb21tb24vaW50LmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3Iu aCIKKyNpbmNsdWRlICJleGVjdXRvci9leGVjUlBSLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvaW5z dHJ1bWVudC5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuaCIKICNpbmNsdWRl ICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9ub2RlRnVuY3MuaCIKKyNpbmNsdWRlICJu b2Rlcy9wbGFubm9kZXMuaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvY2xhdXNlcy5oIgogI2luY2x1 ZGUgIm9wdGltaXplci9vcHRpbWl6ZXIuaCIKKyNpbmNsdWRlICJvcHRpbWl6ZXIvcnByLmgiCiAj aW5jbHVkZSAicGFyc2VyL3BhcnNlX2FnZy5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9jb2Vy Y2UuaCIKICNpbmNsdWRlICJ1dGlscy9hY2wuaCIKQEAgLTE3Myw2ICsxNzcsNyBAQCB0eXBlZGVm IHN0cnVjdCBXaW5kb3dTdGF0ZVBlckFnZ0RhdGEKIAlib29sCQlyZXN0YXJ0OwkJLyogbmVlZCB0 byByZXN0YXJ0IHRoaXMgYWdnIGluIHRoaXMgY3ljbGU/ICovCiB9IFdpbmRvd1N0YXRlUGVyQWdn RGF0YTsKIAorCiBzdGF0aWMgdm9pZCBpbml0aWFsaXplX3dpbmRvd2FnZ3JlZ2F0ZShXaW5kb3dB Z2dTdGF0ZSAqd2luc3RhdGUsCiAJCQkJCQkJCQkgICBXaW5kb3dTdGF0ZVBlckZ1bmMgcGVyZnVu Y3N0YXRlLAogCQkJCQkJCQkJICAgV2luZG93U3RhdGVQZXJBZ2cgcGVyYWdnc3RhdGUpOwpAQCAt MjA5LDYgKzIxNCw5IEBAIHN0YXRpYyBEYXR1bSBHZXRBZ2dJbml0VmFsKERhdHVtIHRleHRJbml0 VmFsLCBPaWQgdHJhbnN0eXBlKTsKIAogc3RhdGljIGJvb2wgYXJlX3BlZXJzKFdpbmRvd0FnZ1N0 YXRlICp3aW5zdGF0ZSwgVHVwbGVUYWJsZVNsb3QgKnNsb3QxLAogCQkJCQkgIFR1cGxlVGFibGVT bG90ICpzbG90Mik7CitzdGF0aWMgaW50CVdpbkdldFNsb3RJbkZyYW1lKFdpbmRvd09iamVjdCB3 aW5vYmosIFR1cGxlVGFibGVTbG90ICpzbG90LAorCQkJCQkJCSAgaW50IHJlbHBvcywgaW50IHNl ZWt0eXBlLCBib29sIHNldF9tYXJrLAorCQkJCQkJCSAgYm9vbCAqaXNudWxsLCBib29sICppc291 dCk7CiBzdGF0aWMgYm9vbCB3aW5kb3dfZ2V0dHVwbGVzbG90KFdpbmRvd09iamVjdCB3aW5vYmos IGludDY0IHBvcywKIAkJCQkJCQkJVHVwbGVUYWJsZVNsb3QgKnNsb3QpOwogCkBAIC0yMjcsNiAr MjM1LDE5IEBAIHN0YXRpYyB1aW50OCBnZXRfbm90bnVsbF9pbmZvKFdpbmRvd09iamVjdCB3aW5v YmosCiAJCQkJCQkJICBpbnQ2NCBwb3MsIGludCBhcmdubyk7CiBzdGF0aWMgdm9pZCBwdXRfbm90 bnVsbF9pbmZvKFdpbmRvd09iamVjdCB3aW5vYmosCiAJCQkJCQkJIGludDY0IHBvcywgaW50IGFy Z25vLCBib29sIGlzbnVsbCk7CitzdGF0aWMgYm9vbCBycHJfaXNfZGVmaW5lZChXaW5kb3dBZ2dT dGF0ZSAqd2luc3RhdGUpOworc3RhdGljIGludDY0IHJvd19pc19pbl9yZWR1Y2VkX2ZyYW1lKFdp bmRvd09iamVjdCB3aW5vYmosIGludDY0IHBvcyk7CisKK3N0YXRpYyB2b2lkIGNsZWFyX3JlZHVj ZWRfZnJhbWUoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKTsKK3N0YXRpYyBpbnQJZ2V0X3JlZHVj ZWRfZnJhbWVfc3RhdHVzKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgaW50NjQgcG9zKTsKK3N0 YXRpYyB2b2lkIHVwZGF0ZV9yZWR1Y2VkX2ZyYW1lKFdpbmRvd09iamVjdCB3aW5vYmosIGludDY0 IHBvcyk7CisKKy8qIEZvcndhcmQgZGVjbGFyYXRpb25zIC0gTkZBIHJvdyBldmFsdWF0aW9uICov CitzdGF0aWMgYm9vbCBuZmFfZXZhbHVhdGVfcm93KFdpbmRvd09iamVjdCB3aW5vYmosIGludDY0 IHBvcywgYm9vbCAqdmFyTWF0Y2hlZCk7CisKKy8qIEZvcndhcmQgZGVjbGFyYXRpb25zIC0gbmF2 aWdhdGlvbiBvZmZzZXQgZXZhbHVhdGlvbiAqLworc3RhdGljIHZvaWQgZXZhbF9uYXZfbWF4X29m ZnNldChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIExpc3QgKmRlZmluZUNsYXVzZSk7CitzdGF0 aWMgdm9pZCBldmFsX25hdl9maXJzdF9vZmZzZXQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBM aXN0ICpkZWZpbmVDbGF1c2UpOwogCiAvKgogICogTm90IG51bGwgaW5mbyBiaXQgYXJyYXkgY29u c2lzdHMgb2YgMi1iaXQgaXRlbXMKQEAgLTgyMCw2ICs4NDEsOSBAQCBldmFsX3dpbmRvd2FnZ3Jl Z2F0ZXMoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKQogCSAqCSAgIHRyYW5zaXRpb24gZnVuY3Rp b24sIG9yCiAJICoJIC0gd2UgaGF2ZSBhbiBFWENMVVNJT04gY2xhdXNlLCBvcgogCSAqCSAtIGlm IHRoZSBuZXcgZnJhbWUgZG9lc24ndCBvdmVybGFwIHRoZSBvbGQgb25lCisJICogICAtIGlmIFJQ UiAoUm93IFBhdHRlcm4gUmVjb2duaXRpb24pIGlzIGVuYWJsZWQsIGJlY2F1c2UgdGhlIHJlZHVj ZWQKKwkgKiAgICAgZnJhbWUgZGVwZW5kcyBvbiBwYXR0ZXJuIG1hdGNoaW5nIHJlc3VsdHMgd2hp Y2ggY2FuIGRpZmZlciBlbnRpcmVseQorCSAqICAgICBmcm9tIHJvdyB0byByb3csIG1ha2luZyBp bnZlcnNlIHRyYW5zaXRpb24gb3B0aW1pemF0aW9uIGluYXBwbGljYWJsZQogCSAqCiAJICogTm90 ZSB0aGF0IHdlIGRvbid0IHN0cmljdGx5IG5lZWQgdG8gcmVzdGFydCBpbiB0aGUgbGFzdCBjYXNl LCBidXQgaWYKIAkgKiB3ZSdyZSBnb2luZyB0byByZW1vdmUgYWxsIHJvd3MgZnJvbSB0aGUgYWdn cmVnYXRpb24gYW55d2F5LCBhIHJlc3RhcnQKQEAgLTgzNCw3ICs4NTgsOCBAQCBldmFsX3dpbmRv d2FnZ3JlZ2F0ZXMoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKQogCQkJKHdpbnN0YXRlLT5hZ2dy ZWdhdGVkYmFzZSAhPSB3aW5zdGF0ZS0+ZnJhbWVoZWFkcG9zICYmCiAJCQkgIU9pZElzVmFsaWQo cGVyYWdnc3RhdGUtPmludnRyYW5zZm5fb2lkKSkgfHwKIAkJCSh3aW5zdGF0ZS0+ZnJhbWVPcHRp b25zICYgRlJBTUVPUFRJT05fRVhDTFVTSU9OKSB8fAotCQkJd2luc3RhdGUtPmFnZ3JlZ2F0ZWR1 cHRvIDw9IHdpbnN0YXRlLT5mcmFtZWhlYWRwb3MpCisJCQl3aW5zdGF0ZS0+YWdncmVnYXRlZHVw dG8gPD0gd2luc3RhdGUtPmZyYW1laGVhZHBvcyB8fAorCQkJcnByX2lzX2RlZmluZWQod2luc3Rh dGUpKQogCQl7CiAJCQlwZXJhZ2dzdGF0ZS0+cmVzdGFydCA9IHRydWU7CiAJCQludW1hZ2dzX3Jl c3RhcnQrKzsKQEAgLTk2Myw2ICs5ODgsMTQgQEAgZXZhbF93aW5kb3dhZ2dyZWdhdGVzKFdpbmRv d0FnZ1N0YXRlICp3aW5zdGF0ZSkKIAl7CiAJCXdpbnN0YXRlLT5hZ2dyZWdhdGVkdXB0byA9IHdp bnN0YXRlLT5mcmFtZWhlYWRwb3M7CiAJCUV4ZWNDbGVhclR1cGxlKGFnZ19yb3dfc2xvdCk7CisK KwkJLyoKKwkJICogSWYgUlBSIGlzIGRlZmluZWQsIHdlIGRvIG5vdCB1c2UgYWdncmVnYXRlZHVw dG9fbm9ucmVzdGFydGVkLiAgVG8KKwkJICogYXZvaWQgYXNzZXJ0aW9uIGZhaWx1cmUgYmVsb3cs IHdlIHJlc2V0IGFnZ3JlZ2F0ZWR1cHRvX25vbnJlc3RhcnRlZAorCQkgKiB0byBmcmFtZWhlYWRw b3MuCisJCSAqLworCQlpZiAocnByX2lzX2RlZmluZWQod2luc3RhdGUpKQorCQkJYWdncmVnYXRl ZHVwdG9fbm9ucmVzdGFydGVkID0gd2luc3RhdGUtPmZyYW1laGVhZHBvczsKIAl9CiAKIAkvKgpA QCAtOTc0LDcgKzEwMDcsNyBAQCBldmFsX3dpbmRvd2FnZ3JlZ2F0ZXMoV2luZG93QWdnU3RhdGUg KndpbnN0YXRlKQogCSAqLwogCWZvciAoOzspCiAJewotCQlpbnQJCQlyZXQ7CisJCWludDY0CQly ZXQ7CiAKIAkJLyogRmV0Y2ggbmV4dCByb3cgaWYgd2UgZGlkbid0IGFscmVhZHkgKi8KIAkJaWYg KFR1cElzTnVsbChhZ2dfcm93X3Nsb3QpKQpAQCAtOTkyLDkgKzEwMjUsNDAgQEAgZXZhbF93aW5k b3dhZ2dyZWdhdGVzKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSkKIAkJCQkJCQkgIGFnZ19yb3df c2xvdCwgZmFsc2UpOwogCQlpZiAocmV0IDwgMCkKIAkJCWJyZWFrOworCiAJCWlmIChyZXQgPT0g MCkKIAkJCWdvdG8gbmV4dF90dXBsZTsKIAorCQlpZiAocnByX2lzX2RlZmluZWQod2luc3RhdGUp KQorCQl7CisJCQkvKgorCQkJICogSWYgY3VycmVudHBvcyBpcyBhbHJlYWR5IGRlY2lkZWQgYnV0 IGFnZ3JlZ2F0ZWR1cHRvIGlzIG5vdCB5ZXQKKwkJCSAqIGRldGVybWluZWQsIHdlJ3ZlIHBhc3Nl ZCB0aGUgbGFzdCByZWR1Y2VkIGZyYW1lLgorCQkJICovCisJCQlpZiAoZ2V0X3JlZHVjZWRfZnJh bWVfc3RhdHVzKHdpbnN0YXRlLCB3aW5zdGF0ZS0+Y3VycmVudHBvcykKKwkJCQkhPSBSRl9OT1Rf REVURVJNSU5FRCAmJgorCQkJCWdldF9yZWR1Y2VkX2ZyYW1lX3N0YXR1cyh3aW5zdGF0ZSwgd2lu c3RhdGUtPmFnZ3JlZ2F0ZWR1cHRvKQorCQkJCT09IFJGX05PVF9ERVRFUk1JTkVEKQorCQkJCWJy ZWFrOworCisJCQkvKgorCQkJICogQ2FsY3VsYXRlIHRoZSByZWR1Y2VkIGZyYW1lIGZvciBhZ2dy ZWdhdGVkdXB0by4KKwkJCSAqLworCQkJcmV0ID0gcm93X2lzX2luX3JlZHVjZWRfZnJhbWUod2lu c3RhdGUtPmFnZ193aW5vYmosCisJCQkJCQkJCQkJICB3aW5zdGF0ZS0+YWdncmVnYXRlZHVwdG8p OworCQkJaWYgKHJldCA9PSAtMSkJCS8qIHVubWF0Y2hlZCByb3cgKi8KKwkJCQlicmVhazsKKwor CQkJLyoKKwkJCSAqIENoZWNrIGlmIGN1cnJlbnQgcm93IGlzIGluc2lkZSBhIG1hdGNoIGJ1dCBu b3QgdGhlIGhlYWQKKwkJCSAqIChza2lwcGVkKSwgYW5kIGl0J3MgdGhlIGJhc2Ugcm93IGZvciBh Z2dyZWdhdGlvbi4KKwkJCSAqLworCQkJaWYgKGdldF9yZWR1Y2VkX2ZyYW1lX3N0YXR1cyh3aW5z dGF0ZSwKKwkJCQkJCQkJCQkgd2luc3RhdGUtPmFnZ3JlZ2F0ZWR1cHRvKSA9PSBSRl9TS0lQUEVE ICYmCisJCQkJd2luc3RhdGUtPmFnZ3JlZ2F0ZWR1cHRvID09IHdpbnN0YXRlLT5hZ2dyZWdhdGVk YmFzZSkKKwkJCQlicmVhazsKKwkJfQorCiAJCS8qIFNldCB0dXBsZSBjb250ZXh0IGZvciBldmFs dWF0aW9uIG9mIGFnZ3JlZ2F0ZSBhcmd1bWVudHMgKi8KIAkJd2luc3RhdGUtPnRtcGNvbnRleHQt PmVjeHRfb3V0ZXJ0dXBsZSA9IGFnZ19yb3dfc2xvdDsKIApAQCAtMTAyMyw2ICsxMDg3LDcgQEAg bmV4dF90dXBsZToKIAkJRXhlY0NsZWFyVHVwbGUoYWdnX3Jvd19zbG90KTsKIAl9CiAKKwogCS8q IFRoZSBmcmFtZSdzIGVuZCBpcyBub3Qgc3VwcG9zZWQgdG8gbW92ZSBiYWNrd2FyZHMsIGV2ZXIg Ki8KIAlBc3NlcnQoYWdncmVnYXRlZHVwdG9fbm9ucmVzdGFydGVkIDw9IHdpbnN0YXRlLT5hZ2dy ZWdhdGVkdXB0byk7CiAKQEAgLTExOTAsNiArMTI1NSwyOCBAQCBwcmVwYXJlX3R1cGxlc3RvcmUo V2luZG93QWdnU3RhdGUgKndpbnN0YXRlKQogCQl9CiAJfQogCisJLyogQ3JlYXRlIHJlYWQvbWFy ayBwb2ludGVycyBmb3IgUlBSIG5hdmlnYXRpb24gaWYgbmVlZGVkICovCisJaWYgKHdpbnN0YXRl LT5uYXZfd2lub2JqKQorCXsKKwkJLyoKKwkJICogQWxsb2NhdGUgbWFyayBhbmQgcmVhZCBwb2lu dGVycyBmb3IgUlBSIG5hdmlnYXRpb24uCisJCSAqCisJCSAqIElmIG5hdk1heE9mZnNldEtpbmQg PT0gUlBSX05BVl9PRkZTRVRfRklYRUQsIHdlIGFkdmFuY2UgdGhlIG1hcmsKKwkJICogYmFzZWQg b24gKGN1cnJlbnRwb3MgLSBuYXZNYXhPZmZzZXQpIGFuZCBvcHRpb25hbGx5CisJCSAqIChuZmFD b250ZXh0LT5tYXRjaFN0YXJ0Um93ICsgbmF2Rmlyc3RPZmZzZXQpLCBhbGxvd2luZworCQkgKiB0 dXBsZXN0b3JlX3RyaW0oKSB0byBmcmVlIHJvd3MgdGhhdCBhcmUgbm8gbG9uZ2VyIHJlYWNoYWJs ZS4KKwkJICoKKwkJICogUlBSX05BVl9PRkZTRVRfTkVFRFNfRVZBTCBpcyByZXNvbHZlZCBhdCBl eGVjdXRvciBpbml0OyBieSB0aGlzCisJCSAqIHBvaW50IGl0IGlzIGVpdGhlciBGSVhFRCBvciBS RVRBSU5fQUxMLgorCQkgKi8KKwkJd2luc3RhdGUtPm5hdl93aW5vYmotPm1hcmtwdHIgPQorCQkJ dHVwbGVzdG9yZV9hbGxvY19yZWFkX3BvaW50ZXIod2luc3RhdGUtPmJ1ZmZlciwgMCk7CisJCXdp bnN0YXRlLT5uYXZfd2lub2JqLT5yZWFkcHRyID0KKwkJCXR1cGxlc3RvcmVfYWxsb2NfcmVhZF9w b2ludGVyKHdpbnN0YXRlLT5idWZmZXIsCisJCQkJCQkJCQkJICBFWEVDX0ZMQUdfQkFDS1dBUkQp OworCQl3aW5zdGF0ZS0+bmF2X3dpbm9iai0+bWFya3BvcyA9IDA7CisJfQorCiAJLyoKIAkgKiBJ ZiB3ZSBhcmUgaW4gUkFOR0Ugb3IgR1JPVVBTIG1vZGUsIHRoZW4gZGV0ZXJtaW5pbmcgZnJhbWUg Ym91bmRhcmllcwogCSAqIHJlcXVpcmVzIHBoeXNpY2FsIGFjY2VzcyB0byB0aGUgZnJhbWUgZW5k cG9pbnQgcm93cywgZXhjZXB0IGluIGNlcnRhaW4KQEAgLTEyNDYsNiArMTMzMyw4IEBAIGJlZ2lu X3BhcnRpdGlvbihXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpCiAJd2luc3RhdGUtPmZyYW1laGVh ZF92YWxpZCA9IGZhbHNlOwogCXdpbnN0YXRlLT5mcmFtZXRhaWxfdmFsaWQgPSBmYWxzZTsKIAl3 aW5zdGF0ZS0+Z3JvdXB0YWlsX3ZhbGlkID0gZmFsc2U7CisJaWYgKHJwcl9pc19kZWZpbmVkKHdp bnN0YXRlKSkKKwkJY2xlYXJfcmVkdWNlZF9mcmFtZSh3aW5zdGF0ZSk7CiAJd2luc3RhdGUtPnNw b29sZWRfcm93cyA9IDA7CiAJd2luc3RhdGUtPmN1cnJlbnRwb3MgPSAwOwogCXdpbnN0YXRlLT5m cmFtZWhlYWRwb3MgPSAwOwpAQCAtMTI5OSw2ICsxMzg4LDEzIEBAIGJlZ2luX3BhcnRpdGlvbihX aW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpCiAJCXdpbnN0YXRlLT5hZ2dyZWdhdGVkdXB0byA9IDA7 CiAJfQogCisJLyogcmVzZXQgbWFyayBhbmQgc2VlayBwb3NpdGlvbnMgZm9yIFJQUiBuYXZpZ2F0 aW9uICovCisJaWYgKHdpbnN0YXRlLT5uYXZfd2lub2JqKQorCXsKKwkJd2luc3RhdGUtPm5hdl93 aW5vYmotPm1hcmtwb3MgPSAtMTsKKwkJd2luc3RhdGUtPm5hdl93aW5vYmotPnNlZWtwb3MgPSAt MTsKKwl9CisKIAkvKiByZXNldCBtYXJrIGFuZCBzZWVrIHBvc2l0aW9ucyBmb3IgZWFjaCByZWFs IHdpbmRvdyBmdW5jdGlvbiAqLwogCWZvciAoaW50IGkgPSAwOyBpIDwgbnVtZnVuY3M7IGkrKykK IAl7CkBAIC0xNDY3LDYgKzE1NjMsMTggQEAgcmVsZWFzZV9wYXJ0aXRpb24oV2luZG93QWdnU3Rh dGUgKndpbnN0YXRlKQogCQl0dXBsZXN0b3JlX2NsZWFyKHdpbnN0YXRlLT5idWZmZXIpOwogCXdp bnN0YXRlLT5wYXJ0aXRpb25fc3Bvb2xlZCA9IGZhbHNlOwogCXdpbnN0YXRlLT5uZXh0X3BhcnRp dGlvbiA9IHRydWU7CisKKwkvKiBSZXNldCBSUFIgbWF0Y2ggcmVzdWx0cyAqLworCWNsZWFyX3Jl ZHVjZWRfZnJhbWUod2luc3RhdGUpOworCisJLyogUmVzZXQgTkZBIHN0YXRlIGZvciBuZXcgcGFy dGl0aW9uICovCisJd2luc3RhdGUtPm5mYUNvbnRleHQgPSBOVUxMOworCXdpbnN0YXRlLT5uZmFD b250ZXh0VGFpbCA9IE5VTEw7CisJd2luc3RhdGUtPm5mYUNvbnRleHRGcmVlID0gTlVMTDsKKwl3 aW5zdGF0ZS0+bmZhU3RhdGVGcmVlID0gTlVMTDsKKwl3aW5zdGF0ZS0+bmZhTGFzdFByb2Nlc3Nl ZFJvdyA9IC0xOworCXdpbnN0YXRlLT5uZmFTdGF0ZXNBY3RpdmUgPSAwOworCXdpbnN0YXRlLT5u ZmFDb250ZXh0c0FjdGl2ZSA9IDA7CiB9CiAKIC8qCkBAIC0yMzk1LDYgKzI1MDMsMTYgQEAgRXhl Y1dpbmRvd0FnZyhQbGFuU3RhdGUgKnBzdGF0ZSkKIAkJLyogZG9uJ3QgZXZhbHVhdGUgdGhlIHdp bmRvdyBmdW5jdGlvbnMgd2hlbiB3ZSdyZSBpbiBwYXNzLXRocm91Z2ggbW9kZSAqLwogCQlpZiAo d2luc3RhdGUtPnN0YXR1cyA9PSBXSU5ET1dBR0dfUlVOKQogCQl7CisJCQkvKgorCQkJICogSWYg UlBSIGlzIGRlZmluZWQgYW5kIHNraXAgbW9kZSBpcyBuZXh0IHJvdywgY2xlYXIgdGhlIGN1cnJl bnQKKwkJCSAqIG1hdGNoIHNvIHRoZSBuZXh0IHJvdyB0cmlnZ2VycyByZS1ldmFsdWF0aW9uLgor CQkJICovCisJCQlpZiAocnByX2lzX2RlZmluZWQod2luc3RhdGUpKQorCQkJeworCQkJCWlmICh3 aW5zdGF0ZS0+cnBTa2lwVG8gPT0gU1RfTkVYVF9ST1cpCisJCQkJCWNsZWFyX3JlZHVjZWRfZnJh bWUod2luc3RhdGUpOworCQkJfQorCiAJCQkvKgogCQkJICogRXZhbHVhdGUgdHJ1ZSB3aW5kb3cg ZnVuY3Rpb25zCiAJCQkgKi8KQEAgLTI0MzQsNiArMjU1Miw0NSBAQCBFeGVjV2luZG93QWdnKFBs YW5TdGF0ZSAqcHN0YXRlKQogCQlpZiAod2luc3RhdGUtPmdyb3VwdGFpbF9wdHIgPj0gMCkKIAkJ CXVwZGF0ZV9ncm91cHRhaWxwb3Mod2luc3RhdGUpOwogCisJCS8qCisJCSAqIEFkdmFuY2UgUlBS IG5hdmlnYXRpb24gbWFyayBwb2ludGVyIGlmIHBvc3NpYmxlLCBzbyB0aGF0CisJCSAqIHR1cGxl c3RvcmVfdHJpbSgpIGNhbiBmcmVlIHJvd3Mgbm8gbG9uZ2VyIHJlYWNoYWJsZSBieSBuYXZpZ2F0 aW9uLgorCQkgKi8KKwkJaWYgKHdpbnN0YXRlLT5uYXZfd2lub2JqICYmCisJCQl3aW5zdGF0ZS0+ cnBQYXR0ZXJuICE9IE5VTEwgJiYKKwkJCXdpbnN0YXRlLT5uYXZNYXhPZmZzZXRLaW5kID09IFJQ Ul9OQVZfT0ZGU0VUX0ZJWEVEKQorCQl7CisJCQlpbnQ2NAkJbmF2bWFya3BvczsKKworCQkJLyog QmFja3dhcmQgcmVhY2ggZnJvbSBQUkVWL0xBU1QvY29tcG91bmQgUFJFVl9MQVNUL05FWFRfTEFT VCAqLworCQkJaWYgKHdpbnN0YXRlLT5jdXJyZW50cG9zID4gd2luc3RhdGUtPm5hdk1heE9mZnNl dCkKKwkJCQluYXZtYXJrcG9zID0gd2luc3RhdGUtPmN1cnJlbnRwb3MgLSB3aW5zdGF0ZS0+bmF2 TWF4T2Zmc2V0OworCQkJZWxzZQorCQkJCW5hdm1hcmtwb3MgPSAwOworCisJCQkvKgorCQkJICog SWYgRklSU1QgaXMgdXNlZCwgYWxzbyBjb25zaWRlciBtYXRjaF9zdGFydCArIG5hdkZpcnN0T2Zm c2V0LgorCQkJICogVGhlIG9sZGVzdCBhY3RpdmUgY29udGV4dCAobmZhQ29udGV4dCkgaGFzIHRo ZSBzbWFsbGVzdAorCQkJICogbWF0Y2hTdGFydFJvdy4KKwkJCSAqLworCQkJaWYgKHdpbnN0YXRl LT5oYXNGaXJzdE5hdiAmJgorCQkJCXdpbnN0YXRlLT5uYXZGaXJzdE9mZnNldEtpbmQgPT0gUlBS X05BVl9PRkZTRVRfRklYRUQgJiYKKwkJCQl3aW5zdGF0ZS0+bmZhQ29udGV4dCAhPSBOVUxMKQor CQkJeworCQkJCWludDY0CQlmaXJzdHJlYWNoOworCisJCQkJaWYgKHdpbnN0YXRlLT5uYXZGaXJz dE9mZnNldCA+IC13aW5zdGF0ZS0+bmZhQ29udGV4dC0+bWF0Y2hTdGFydFJvdykKKwkJCQkJZmly c3RyZWFjaCA9IHdpbnN0YXRlLT5uZmFDb250ZXh0LT5tYXRjaFN0YXJ0Um93CisJCQkJCQkrIHdp bnN0YXRlLT5uYXZGaXJzdE9mZnNldDsKKwkJCQllbHNlCisJCQkJCWZpcnN0cmVhY2ggPSAwOwor CQkJCW5hdm1hcmtwb3MgPSBNaW4obmF2bWFya3BvcywgZmlyc3RyZWFjaCk7CisJCQl9CisKKwkJ CWlmIChuYXZtYXJrcG9zID4gd2luc3RhdGUtPm5hdl93aW5vYmotPm1hcmtwb3MpCisJCQkJV2lu U2V0TWFya1Bvc2l0aW9uKHdpbnN0YXRlLT5uYXZfd2lub2JqLCBuYXZtYXJrcG9zKTsKKwkJfQor CiAJCS8qCiAJCSAqIFRydW5jYXRlIGFueSBuby1sb25nZXItbmVlZGVkIHJvd3MgZnJvbSB0aGUg dHVwbGVzdG9yZS4KIAkJICovCkBAIC0yNjU5LDYgKzI4MTYsMjAgQEAgRXhlY0luaXRXaW5kb3dB Z2coV2luZG93QWdnICpub2RlLCBFU3RhdGUgKmVzdGF0ZSwgaW50IGVmbGFncykKIAl3aW5zdGF0 ZS0+dGVtcF9zbG90XzIgPSBFeGVjSW5pdEV4dHJhVHVwbGVTbG90KGVzdGF0ZSwgc2NhbkRlc2Ms CiAJCQkJCQkJCQkJCQkgICAmVFRTT3BzTWluaW1hbFR1cGxlKTsKIAorCWlmIChub2RlLT5ycFBh dHRlcm4gIT0gTlVMTCkKKwl7CisJCXdpbnN0YXRlLT5uYXZfc2xvdCA9IEV4ZWNJbml0RXh0cmFU dXBsZVNsb3QoZXN0YXRlLCBzY2FuRGVzYywKKwkJCQkJCQkJCQkJCQkmVFRTT3BzTWluaW1hbFR1 cGxlKTsKKwkJd2luc3RhdGUtPm5hdl9zbG90X3BvcyA9IC0xOworCisJCXdpbnN0YXRlLT5uYXZf bnVsbF9zbG90ID0gRXhlY0luaXRFeHRyYVR1cGxlU2xvdChlc3RhdGUsIHNjYW5EZXNjLAorCQkJ CQkJCQkJCQkJCQkgJlRUU09wc01pbmltYWxUdXBsZSk7CisJCXdpbnN0YXRlLT5uYXZfbnVsbF9z bG90ID0gRXhlY1N0b3JlQWxsTnVsbFR1cGxlKHdpbnN0YXRlLT5uYXZfbnVsbF9zbG90KTsKKwor CQl3aW5zdGF0ZS0+bmF2X3NhdmVkX291dGVydHVwbGUgPSBOVUxMOworCQl3aW5zdGF0ZS0+bmF2 X21hdGNoX3N0YXJ0ID0gMDsKKwl9CisKIAkvKgogCSAqIGNyZWF0ZSBmcmFtZSBoZWFkIGFuZCB0 YWlsIHNsb3RzIG9ubHkgaWYgbmVlZGVkIChtdXN0IGNyZWF0ZSBzbG90cyBpbgogCSAqIGV4YWN0 bHkgdGhlIHNhbWUgY2FzZXMgdGhhdCB1cGRhdGVfZnJhbWVoZWFkcG9zIGFuZCB1cGRhdGVfZnJh bWV0YWlscG9zCkBAIC0yODI3LDYgKzI5OTgsMjMgQEAgRXhlY0luaXRXaW5kb3dBZ2coV2luZG93 QWdnICpub2RlLCBFU3RhdGUgKmVzdGF0ZSwgaW50IGVmbGFncykKIAkJd2luc3RhdGUtPmFnZ193 aW5vYmogPSBhZ2dfd2lub2JqOwogCX0KIAorCS8qCisJICogU2V0IHVwIFdpbmRvd09iamVjdCBm b3IgUlBSIG5hdmlnYXRpb24gb3Bjb2Rlcy4gIFRoaXMgaXMgc2VwYXJhdGUgZnJvbQorCSAqIGFn Z193aW5vYmogYmVjYXVzZSBpdCBuZWVkcyBpdHMgb3duIHJlYWQgcG9pbnRlciB0byBhdm9pZCBp bnRlcmZlcmluZworCSAqIHdpdGggYWdncmVnYXRlIHByb2Nlc3NpbmcuCisJICovCisJaWYgKG5v ZGUtPnJwUGF0dGVybiAhPSBOVUxMKQorCXsKKwkJV2luZG93T2JqZWN0IG5hdl93aW5vYmogPSBt YWtlTm9kZShXaW5kb3dPYmplY3REYXRhKTsKKworCQluYXZfd2lub2JqLT53aW5zdGF0ZSA9IHdp bnN0YXRlOworCQluYXZfd2lub2JqLT5hcmdzdGF0ZXMgPSBOSUw7CisJCW5hdl93aW5vYmotPmxv Y2FsbWVtID0gTlVMTDsKKwkJbmF2X3dpbm9iai0+bWFya3B0ciA9IC0xOworCQluYXZfd2lub2Jq LT5yZWFkcHRyID0gLTE7CisJCXdpbnN0YXRlLT5uYXZfd2lub2JqID0gbmF2X3dpbm9iajsKKwl9 CisKIAkvKiBTZXQgdGhlIHN0YXR1cyB0byBydW5uaW5nICovCiAJd2luc3RhdGUtPnN0YXR1cyA9 IFdJTkRPV0FHR19SVU47CiAKQEAgLTI4NDUsNiArMzAzMyw4MSBAQCBFeGVjSW5pdFdpbmRvd0Fn ZyhXaW5kb3dBZ2cgKm5vZGUsIEVTdGF0ZSAqZXN0YXRlLCBpbnQgZWZsYWdzKQogCXdpbnN0YXRl LT5pblJhbmdlQXNjID0gbm9kZS0+aW5SYW5nZUFzYzsKIAl3aW5zdGF0ZS0+aW5SYW5nZU51bGxz Rmlyc3QgPSBub2RlLT5pblJhbmdlTnVsbHNGaXJzdDsKIAorCS8qIFNldCB1cCBTS0lQIFRPIHR5 cGUgKi8KKwl3aW5zdGF0ZS0+cnBTa2lwVG8gPSBub2RlLT5ycFNraXBUbzsKKwkvKiBTZXQgdXAg cm93IHBhdHRlcm4gcmVjb2duaXRpb24gUEFUVEVSTiBjbGF1c2UgKGNvbXBpbGVkIE5GQSkgKi8K Kwl3aW5zdGF0ZS0+cnBQYXR0ZXJuID0gbm9kZS0+cnBQYXR0ZXJuOworCS8qIFNldCB1cCBuYXYg b2Zmc2V0cyBmb3IgdHVwbGVzdG9yZSB0cmltICovCisJd2luc3RhdGUtPm5hdk1heE9mZnNldEtp bmQgPSBub2RlLT5uYXZNYXhPZmZzZXRLaW5kOworCXdpbnN0YXRlLT5uYXZNYXhPZmZzZXQgPSBu b2RlLT5uYXZNYXhPZmZzZXQ7CisJaWYgKHdpbnN0YXRlLT5uYXZNYXhPZmZzZXRLaW5kID09IFJQ Ul9OQVZfT0ZGU0VUX05FRURTX0VWQUwpCisJCWV2YWxfbmF2X21heF9vZmZzZXQod2luc3RhdGUs IG5vZGUtPmRlZmluZUNsYXVzZSk7CisJd2luc3RhdGUtPmhhc0ZpcnN0TmF2ID0gbm9kZS0+aGFz Rmlyc3ROYXY7CisJd2luc3RhdGUtPm5hdkZpcnN0T2Zmc2V0S2luZCA9IG5vZGUtPm5hdkZpcnN0 T2Zmc2V0S2luZDsKKwl3aW5zdGF0ZS0+bmF2Rmlyc3RPZmZzZXQgPSBub2RlLT5uYXZGaXJzdE9m ZnNldDsKKwlpZiAod2luc3RhdGUtPmhhc0ZpcnN0TmF2ICYmCisJCXdpbnN0YXRlLT5uYXZGaXJz dE9mZnNldEtpbmQgPT0gUlBSX05BVl9PRkZTRVRfTkVFRFNfRVZBTCkKKwkJZXZhbF9uYXZfZmly c3Rfb2Zmc2V0KHdpbnN0YXRlLCBub2RlLT5kZWZpbmVDbGF1c2UpOworCisJLyogQ29weSBtYXRj aF9zdGFydCBkZXBlbmRlbmN5IGJpdG1hcHNldCBmb3IgcGVyLWNvbnRleHQgZXZhbHVhdGlvbiAq LworCXdpbnN0YXRlLT5kZWZpbmVNYXRjaFN0YXJ0RGVwZW5kZW50ID0gYm1zX2NvcHkobm9kZS0+ ZGVmaW5lTWF0Y2hTdGFydERlcGVuZGVudCk7CisKKwkvKiBDYWxjdWxhdGUgTkZBIHN0YXRlIHNp emUgYW5kIGFsbG9jYXRlIGN5Y2xlIGRldGVjdGlvbiBiaXRtYXAgKi8KKwlpZiAobm9kZS0+cnBQ YXR0ZXJuICE9IE5VTEwpCisJeworCQl3aW5zdGF0ZS0+bmZhU3RhdGVTaXplID0gb2Zmc2V0b2Yo UlBSTkZBU3RhdGUsIGNvdW50cykgKworCQkJc2l6ZW9mKGludDMyKSAqIG5vZGUtPnJwUGF0dGVy bi0+bWF4RGVwdGg7CisJCXdpbnN0YXRlLT5uZmFWaXNpdGVkTldvcmRzID0KKwkJCShub2RlLT5y cFBhdHRlcm4tPm51bUVsZW1lbnRzIC0gMSkgLyBCSVRTX1BFUl9CSVRNQVBXT1JEICsgMTsKKwkJ d2luc3RhdGUtPm5mYVZpc2l0ZWRFbGVtcyA9IHBhbGxvYzAoc2l6ZW9mKGJpdG1hcHdvcmQpICoK KwkJCQkJCQkJCQkJd2luc3RhdGUtPm5mYVZpc2l0ZWROV29yZHMpOworCX0KKworCS8qIFNldCB1 cCByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBERUZJTkUgY2xhdXNlICovCisJd2luc3RhdGUtPmRl ZmluZVZhcmlhYmxlTGlzdCA9IE5JTDsKKwl3aW5zdGF0ZS0+ZGVmaW5lQ2xhdXNlTGlzdCA9IE5J TDsKKwlpZiAobm9kZS0+ZGVmaW5lQ2xhdXNlICE9IE5JTCkKKwl7CisJCS8qCisJCSAqIENvbXBp bGUgREVGSU5FIGNsYXVzZSBleHByZXNzaW9ucy4gIFBSRVYvTkVYVCBuYXZpZ2F0aW9uIGlzIGhh bmRsZWQKKwkJICogYnkgRUVPUF9SUFJfTkFWX1NFVC9SRVNUT1JFIG9wY29kZXMgZW1pdHRlZCBk dXJpbmcgRXhlY0luaXRFeHByLCBzbworCQkgKiBubyB2YXJubyByZXdyaXRpbmcgaXMgbmVlZGVk IGhlcmUuCisJCSAqLworCQlmb3JlYWNoKGwsIG5vZGUtPmRlZmluZUNsYXVzZSkKKwkJeworCQkJ VGFyZ2V0RW50cnkgKnRlID0gbGZpcnN0KGwpOworCQkJY2hhcgkgICAqbmFtZSA9IHRlLT5yZXNu YW1lOworCQkJRXhwcgkgICAqZXhwciA9IHRlLT5leHByOworCQkJRXhwclN0YXRlICAqZXhwczsK KworCQkJd2luc3RhdGUtPmRlZmluZVZhcmlhYmxlTGlzdCA9CisJCQkJbGFwcGVuZCh3aW5zdGF0 ZS0+ZGVmaW5lVmFyaWFibGVMaXN0LAorCQkJCQkJbWFrZVN0cmluZyhwc3RyZHVwKG5hbWUpKSk7 CisJCQlleHBzID0gRXhlY0luaXRFeHByKGV4cHIsIChQbGFuU3RhdGUgKikgd2luc3RhdGUpOwor CQkJd2luc3RhdGUtPmRlZmluZUNsYXVzZUxpc3QgPQorCQkJCWxhcHBlbmQod2luc3RhdGUtPmRl ZmluZUNsYXVzZUxpc3QsIGV4cHMpOworCQl9CisJfQorCisJLyogSW5pdGlhbGl6ZSBORkEgZnJl ZSBsaXN0cyBmb3Igcm93IHBhdHRlcm4gbWF0Y2hpbmcgKi8KKwl3aW5zdGF0ZS0+bmZhQ29udGV4 dCA9IE5VTEw7CisJd2luc3RhdGUtPm5mYUNvbnRleHRUYWlsID0gTlVMTDsKKwl3aW5zdGF0ZS0+ bmZhQ29udGV4dEZyZWUgPSBOVUxMOworCXdpbnN0YXRlLT5uZmFTdGF0ZUZyZWUgPSBOVUxMOwor CXdpbnN0YXRlLT5uZmFMYXN0UHJvY2Vzc2VkUm93ID0gLTE7CisJd2luc3RhdGUtPm5mYVN0YXRl c0FjdGl2ZSA9IDA7CisJd2luc3RhdGUtPm5mYUNvbnRleHRzQWN0aXZlID0gMDsKKworCS8qCisJ ICogQWxsb2NhdGUgdmFyTWF0Y2hlZCBhcnJheSBmb3IgTkZBIGV2YWx1YXRpb24uIFdpdGggdGhl IG5ldyB2YXJOYW1lcworCSAqIG9yZGVyaW5nIChERUZJTkUgb3JkZXIgZmlyc3QpLCB2YXJJZCA9 PSBkZWZpbmVJZHggZm9yIGFsbCBkZWZpbmVkCisJICogdmFyaWFibGVzLCBzbyBubyBtYXBwaW5n IGlzIG5lZWRlZC4KKwkgKi8KKwlpZiAobGlzdF9sZW5ndGgod2luc3RhdGUtPmRlZmluZVZhcmlh YmxlTGlzdCkgPiAwKQorCQl3aW5zdGF0ZS0+bmZhVmFyTWF0Y2hlZCA9IHBhbGxvYzAoc2l6ZW9m KGJvb2wpICoKKwkJCQkJCQkJCQkgIGxpc3RfbGVuZ3RoKHdpbnN0YXRlLT5kZWZpbmVWYXJpYWJs ZUxpc3QpKTsKKwllbHNlCisJCXdpbnN0YXRlLT5uZmFWYXJNYXRjaGVkID0gTlVMTDsKIAl3aW5z dGF0ZS0+YWxsX2ZpcnN0ID0gdHJ1ZTsKIAl3aW5zdGF0ZS0+cGFydGl0aW9uX3Nwb29sZWQgPSBm YWxzZTsKIAl3aW5zdGF0ZS0+bW9yZV9wYXJ0aXRpb25zID0gZmFsc2U7CkBAIC0yODUzLDYgKzMx MTYsNDIgQEAgRXhlY0luaXRXaW5kb3dBZ2coV2luZG93QWdnICpub2RlLCBFU3RhdGUgKmVzdGF0 ZSwgaW50IGVmbGFncykKIAlyZXR1cm4gd2luc3RhdGU7CiB9CiAKKy8qCisgKiBFeGVjUlBSTmF2 R2V0U2xvdAorICoKKyAqIEZldGNoIHR1cGxlIGF0IGdpdmVuIHBvc2l0aW9uIGZvciBSUFIgbmF2 aWdhdGlvbiBvcGNvZGVzLgorICogUmV0dXJucyBuYXZfc2xvdCB3aXRoIHRoZSB0dXBsZSBsb2Fk ZWQsIG9yIG5hdl9udWxsX3Nsb3QgaWYgb3V0IG9mIHJhbmdlLgorICovCitUdXBsZVRhYmxlU2xv dCAqCitFeGVjUlBSTmF2R2V0U2xvdChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IHBv cykKK3sKKwlXaW5kb3dPYmplY3Qgd2lub2JqID0gd2luc3RhdGUtPm5hdl93aW5vYmo7CisJVHVw bGVUYWJsZVNsb3QgKnNsb3QgPSB3aW5zdGF0ZS0+bmF2X3Nsb3Q7CisKKwlpZiAocG9zIDwgMCkK KwkJcmV0dXJuIHdpbnN0YXRlLT5uYXZfbnVsbF9zbG90OworCisJLyoKKwkgKiBJZiBuYXZfc2xv dCBhbHJlYWR5IGhvbGRzIHRoaXMgcG9zaXRpb24sIHJldHVybiBpdCB3aXRob3V0IHJlLWZldGNo aW5nLgorCSAqIFRoaXMgaXMgY3JpdGljYWwgd2hlbiBtdWx0aXBsZSBQUkVWL05FWFQgY2FsbHMg aW4gdGhlIHNhbWUgZXhwcmVzc2lvbgorCSAqIG5hdmlnYXRlIHRvIHRoZSBzYW1lIHJvdywgYmVj YXVzZSByZS1mZXRjaGluZyB3b3VsZCBmcmVlIHRoZSBzbG90J3MKKwkgKiB0dXBsZSBtZW1vcnkg YW5kIGludmFsaWRhdGUgYW55IHBhc3MtYnktcmVmIERhdHVtIHBvaW50ZXJzIGZyb20gZWFybGll cgorCSAqIG5hdmlnYXRpb24gcmVzdWx0cy4KKwkgKi8KKwlpZiAod2luc3RhdGUtPm5hdl9zbG90 X3BvcyA9PSBwb3MpCisJCXJldHVybiBzbG90OworCisJaWYgKCF3aW5kb3dfZ2V0dHVwbGVzbG90 KHdpbm9iaiwgcG9zLCBzbG90KSkKKwl7CisJCXdpbnN0YXRlLT5uYXZfc2xvdF9wb3MgPSAtMTsK KwkJcmV0dXJuIHdpbnN0YXRlLT5uYXZfbnVsbF9zbG90OworCX0KKworCXdpbnN0YXRlLT5uYXZf c2xvdF9wb3MgPSBwb3M7CisJcmV0dXJuIHNsb3Q7Cit9CisKKwogLyogLS0tLS0tLS0tLS0tLS0t LS0KICAqIEV4ZWNFbmRXaW5kb3dBZ2cKICAqIC0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yOTEwLDYg KzMyMDksOCBAQCBFeGVjUmVTY2FuV2luZG93QWdnKFdpbmRvd0FnZ1N0YXRlICpub2RlKQogCUV4 ZWNDbGVhclR1cGxlKG5vZGUtPmFnZ19yb3dfc2xvdCk7CiAJRXhlY0NsZWFyVHVwbGUobm9kZS0+ dGVtcF9zbG90XzEpOwogCUV4ZWNDbGVhclR1cGxlKG5vZGUtPnRlbXBfc2xvdF8yKTsKKwlpZiAo bm9kZS0+bmF2X3Nsb3QpCisJCUV4ZWNDbGVhclR1cGxlKG5vZGUtPm5hdl9zbG90KTsKIAlpZiAo bm9kZS0+ZnJhbWVoZWFkX3Nsb3QpCiAJCUV4ZWNDbGVhclR1cGxlKG5vZGUtPmZyYW1laGVhZF9z bG90KTsKIAlpZiAobm9kZS0+ZnJhbWV0YWlsX3Nsb3QpCkBAIC0zMjcwLDcgKzM1NzEsOCBAQCB3 aW5kb3dfZ2V0dHVwbGVzbG90KFdpbmRvd09iamVjdCB3aW5vYmosIGludDY0IHBvcywgVHVwbGVU YWJsZVNsb3QgKnNsb3QpCiAJCXJldHVybiBmYWxzZTsKIAogCWlmIChwb3MgPCB3aW5vYmotPm1h cmtwb3MpCi0JCWVsb2coRVJST1IsICJjYW5ub3QgZmV0Y2ggcm93IGJlZm9yZSBXaW5kb3dPYmpl Y3QncyBtYXJrIHBvc2l0aW9uIik7CisJCWVsb2coRVJST1IsICJjYW5ub3QgZmV0Y2ggcm93OiAi IElOVDY0X0ZPUk1BVCAiIGJlZm9yZSBXaW5kb3dPYmplY3QncyBtYXJrIHBvc2l0aW9uOiAiIElO VDY0X0ZPUk1BVCwKKwkJCSBwb3MsIHdpbm9iai0+bWFya3Bvcyk7CiAKIAlvbGRjb250ZXh0ID0g TWVtb3J5Q29udGV4dFN3aXRjaFRvKHdpbnN0YXRlLT5zcy5wcy5wc19FeHByQ29udGV4dC0+ZWN4 dF9wZXJfcXVlcnlfbWVtb3J5KTsKIApAQCAtMzM4Nyw2ICszNjg5LDcgQEAgaWdub3JlbnVsbHNf Z2V0ZnVuY2FyZ2luZnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwgaW50IGFyZ25vLAogCWludAkJ CW5vdG51bGxfb2Zmc2V0OwogCWludAkJCW5vdG51bGxfcmVscG9zOwogCWludAkJCWZvcndhcmQ7 CisJaW50NjQJCW51bV9yZWR1Y2VkX2ZyYW1lOwogCiAJQXNzZXJ0KFdpbmRvd09iamVjdElzVmFs aWQod2lub2JqKSk7CiAJd2luc3RhdGUgPSB3aW5vYmotPndpbnN0YXRlOwpAQCAtMzQxNSw2ICsz NzE4LDEzIEBAIGlnbm9yZW51bGxzX2dldGZ1bmNhcmdpbmZyYW1lKFdpbmRvd09iamVjdCB3aW5v YmosIGludCBhcmdubywKIAkJCS8qIHJlamVjdGluZyByZWxwb3MgPiAwIGlzIGVhc3kgYW5kIHNp bXBsaWZpZXMgY29kZSBiZWxvdyAqLwogCQkJaWYgKHJlbHBvcyA+IDApCiAJCQkJZ290byBvdXRf b2ZfZnJhbWU7CisKKwkJCS8qCisJCQkgKiBSUFIgY2FyZXMgYWJvdXQgZnJhbWUgaGVhZCBwb3Mu IE5lZWQgdG8gY2FsbAorCQkJICogdXBkYXRlX2ZyYW1laGVhZHBvcworCQkJICovCisJCQl1cGRh dGVfZnJhbWVoZWFkcG9zKHdpbnN0YXRlKTsKKwogCQkJdXBkYXRlX2ZyYW1ldGFpbHBvcyh3aW5z dGF0ZSk7CiAJCQlhYnNfcG9zID0gd2luc3RhdGUtPmZyYW1ldGFpbHBvcyAtIDE7CiAJCQltYXJr X3BvcyA9IDA7CQkvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCkBAIC0zNDMwLDYgKzM3NDAsMzUg QEAgaWdub3JlbnVsbHNfZ2V0ZnVuY2FyZ2luZnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwgaW50 IGFyZ25vLAogCSAqIEdldCB0aGUgbmV4dCBub25udWxsIHZhbHVlIGluIHRoZSBmcmFtZSwgbW92 aW5nIGZvcndhcmQgb3IgYmFja3dhcmQKIAkgKiB1bnRpbCB3ZSBmaW5kIGEgdmFsdWUgb3IgcmVh Y2ggdGhlIGZyYW1lJ3MgZW5kLgogCSAqLworCisJLyoKKwkgKiBDaGVjayB3aGV0aGVyIGN1cnJl bnQgcm93IGlzIGluIHJlZHVjZWQgZnJhbWUuCisJICovCisJbnVtX3JlZHVjZWRfZnJhbWUgPSBy b3dfaXNfaW5fcmVkdWNlZF9mcmFtZSh3aW5vYmosIHdpbnN0YXRlLT5mcmFtZWhlYWRwb3MpOwor CWlmIChudW1fcmVkdWNlZF9mcmFtZSA8IDApCS8qIHVubWF0Y2hlZCBvciBza2lwcGVkIHJvdyAq LworCQlnb3RvIG91dF9vZl9mcmFtZTsKKwllbHNlIGlmIChudW1fcmVkdWNlZF9mcmFtZSA+IDAp IC8qIHRoZSBmaXJzdCByb3cgb2YgdGhlIHJlZHVjZWQgZnJhbWUgKi8KKwl7CisJCS8qCisJCSAq IEVhcmx5IGNoZWNrIGlmIHJvdyBjb3VsZCBiZSBvdXQgb2YgcmVkdWNlZCBmcmFtZS4gIFdoZW4g UlBSIGlzCisJCSAqIGVuYWJsZWQsIEVYQ0xVREUgY2xhdXNlIGNhbm5vdCBiZSBzcGVjaWZpZWQg YW5kIHRoZSBmcmFtZSBpcyBhbHdheXMKKwkJICogY29udGlndW91cy4gIFNvIHdlIGNhbiBzYWZl bHkgcGVyZm9ybSB0aGUgZm9sbG93aW5nIGNoZWNrcy4gTm90ZSwKKwkJICogaG93ZXZlciwgaXQg aXMgcG9zc2libGUgdGhhdCBhIHJvdyBpcyBvdXQgb2YgcmVkdWNlZCBmcmFtZSBpZgorCQkgKiB0 aGVyZSdzIGEgTlVMTCBpbiB0aGUgbWlkZGxlLiBTbyB3ZSBuZWVkIHRvIGNoZWNrIGl0IGluIHRo ZQorCQkgKiBmb2xsb3dpbmcgZG8gbG9vcC4KKwkJICovCisJCWlmIChzZWVrdHlwZSA9PSBXSU5E T1dfU0VFS19IRUFEICYmIHJlbHBvcyA+PSBudW1fcmVkdWNlZF9mcmFtZSkKKwkJCWdvdG8gb3V0 X29mX2ZyYW1lOworCQlpZiAoc2Vla3R5cGUgPT0gV0lORE9XX1NFRUtfVEFJTCkKKwkJeworCQkJ aWYgKG5vdG51bGxfcmVscG9zID49IG51bV9yZWR1Y2VkX2ZyYW1lKQorCQkJCWdvdG8gb3V0X29m X2ZyYW1lOworCisJCQkvKiBub3Qgb3V0IG9mIHJlZHVjZWQgZnJhbWUuIFNldCBhYnNwb3MgYXMg YSBzdGFydGluZyBwb2ludCAqLworCQkJYWJzX3BvcyA9IHdpbnN0YXRlLT5mcmFtZWhlYWRwb3Mg KyBudW1fcmVkdWNlZF9mcmFtZSAtIDE7CisJCX0KKwl9CisKIAlkbwogCXsKIAkJaW50CQkJaW5m cmFtZTsKQEAgLTM0OTEsNiArMzgzMCwxNiBAQCBpZ25vcmVudWxsc19nZXRmdW5jYXJnaW5mcmFt ZShXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQgYXJnbm8sCiAJCX0KIGFkdmFuY2U6CiAJCWFic19w b3MgKz0gZm9yd2FyZDsKKwkJaWYgKHJwcl9pc19kZWZpbmVkKHdpbnN0YXRlKSkKKwkJeworCQkJ LyoKKwkJCSAqIENoZWNrIHdoZXRoZXIgd2UgYXJlIHN0aWxsIGluIHRoZSByZWR1Y2VkIGZyYW1l LiAgKGFsc28gY2hlY2sKKwkJCSAqIGlmIHdlIHN1Y2NlZWRlZCBpbiBnZXR0aW5nIHRoZSB0YXJn ZXQgcm93KS4KKwkJCSAqLworCQkJbnVtX3JlZHVjZWRfZnJhbWUtLTsKKwkJCWlmIChudW1fcmVk dWNlZF9mcmFtZSA8PSAwICYmIG5vdG51bGxfb2Zmc2V0IDw9IG5vdG51bGxfcmVscG9zKQorCQkJ CWdvdG8gb3V0X29mX2ZyYW1lOworCQl9CiAJfSB3aGlsZSAobm90bnVsbF9vZmZzZXQgPD0gbm90 bnVsbF9yZWxwb3MpOwogCiAJaWYgKHNldF9tYXJrKQpAQCAtMzYxMiw2ICszOTYxLDYzMSBAQCBw dXRfbm90bnVsbF9pbmZvKFdpbmRvd09iamVjdCB3aW5vYmosIGludDY0IHBvcywgaW50IGFyZ25v LCBib29sIGlzbnVsbCkKIAltYnBbYnBvc10gPSBtYjsKIH0KIAorLyoKKyAqIGV2YWxfbmF2X29m ZnNldF9oZWxwZXIKKyAqCQlFdmFsdWF0ZSBhbiBvZmZzZXQgZXhwcmVzc2lvbiBhdCBleGVjdXRv ciBpbml0IHRpbWUgZm9yIHRyaW0KKyAqCQlvcHRpbWl6YXRpb24uICBSZXR1cm5zIHRoZSBvZmZz ZXQgdmFsdWUsIG9yIDAgZm9yIE5VTEwvbmVnYXRpdmUKKyAqCQkodGhlc2Ugd2lsbCBjYXVzZSBh IHJ1bnRpbWUgZXJyb3IgZHVyaW5nIGFjdHVhbCBuYXZpZ2F0aW9uLCBzbyB0aGUKKyAqCQl0cmlt IHZhbHVlIGlzIGlycmVsZXZhbnQpLgorICovCitzdGF0aWMgaW50NjQKK2V2YWxfbmF2X29mZnNl dF9oZWxwZXIoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBFeHByICpvZmZzZXRfZXhwciwKKwkJ CQkJICAgaW50NjQgZGVmYXVsdE9mZnNldCkKK3sKKwlFeHByQ29udGV4dCAqZWNvbnRleHQgPSB3 aW5zdGF0ZS0+c3MucHMucHNfRXhwckNvbnRleHQ7CisJRXhwclN0YXRlICAqZXN0YXRlOworCURh dHVtCQl2YWw7CisJYm9vbAkJaXNudWxsOworCWludDY0CQlvZmZzZXQ7CisKKwlpZiAob2Zmc2V0 X2V4cHIgPT0gTlVMTCkKKwkJcmV0dXJuIGRlZmF1bHRPZmZzZXQ7CisKKwllc3RhdGUgPSBFeGVj SW5pdEV4cHIob2Zmc2V0X2V4cHIsIChQbGFuU3RhdGUgKikgd2luc3RhdGUpOworCXZhbCA9IEV4 ZWNFdmFsRXhwclN3aXRjaENvbnRleHQoZXN0YXRlLCBlY29udGV4dCwgJmlzbnVsbCk7CisKKwlp ZiAoaXNudWxsKQorCQlyZXR1cm4gMDsKKworCW9mZnNldCA9IERhdHVtR2V0SW50NjQodmFsKTsK KwlpZiAob2Zmc2V0IDwgMCkKKwkJcmV0dXJuIDA7CisKKwlyZXR1cm4gb2Zmc2V0OworfQorCit0 eXBlZGVmIHN0cnVjdAoreworCVdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZTsKKwlpbnQ2NAkJbWF4 T2Zmc2V0OworCWJvb2wJCW92ZXJmbG93OwkJLyogdHJ1ZSBpZiBvdmVyZmxvdyBkZXRlY3RlZCAq LworfSBFdmFsTmF2TWF4Q29udGV4dDsKKworLyoKKyAqIGV2YWxfbmF2X21heF9vZmZzZXRfd2Fs a2VyCisgKgkJV2FsayBleHByZXNzaW9uIHRyZWUgZXZhbHVhdGluZyBiYWNrd2FyZC1yZWFjaCBv ZmZzZXRzIGF0IHJ1bnRpbWUuCisgKgorICogSGFuZGxlcyBzaW1wbGUgUFJFViwgTEFTVC13aXRo LW9mZnNldCwgYW5kIGNvbXBvdW5kIFBSRVZfTEFTVC9ORVhUX0xBU1QuCisgKi8KK3N0YXRpYyBi b29sCitldmFsX25hdl9tYXhfb2Zmc2V0X3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjdHgpCit7 CisJRXZhbE5hdk1heENvbnRleHQgKmNvbnRleHQgPSAoRXZhbE5hdk1heENvbnRleHQgKikgY3R4 OworCisJaWYgKG5vZGUgPT0gTlVMTCkKKwkJcmV0dXJuIGZhbHNlOworCisJLyogU2hvcnQtY2ly Y3VpdCBpZiBvdmVyZmxvdyBhbHJlYWR5IGRldGVjdGVkICovCisJaWYgKGNvbnRleHQtPm92ZXJm bG93KQorCQlyZXR1cm4gZmFsc2U7CisKKwlpZiAoSXNBKG5vZGUsIFJQUk5hdkV4cHIpKQorCXsK KwkJUlBSTmF2RXhwciAqbmF2ID0gKFJQUk5hdkV4cHIgKikgbm9kZTsKKwkJaW50NjQJCXJlYWNo ID0gMDsKKworCQlpZiAobmF2LT5raW5kID09IFJQUl9OQVZfUFJFVikKKwkJeworCQkJcmVhY2gg PSBldmFsX25hdl9vZmZzZXRfaGVscGVyKGNvbnRleHQtPndpbnN0YXRlLAorCQkJCQkJCQkJCSAg IG5hdi0+b2Zmc2V0X2FyZywgMSk7CisJCX0KKwkJZWxzZSBpZiAobmF2LT5raW5kID09IFJQUl9O QVZfTEFTVCAmJiBuYXYtPm9mZnNldF9hcmcgIT0gTlVMTCkKKwkJeworCQkJcmVhY2ggPSBldmFs X25hdl9vZmZzZXRfaGVscGVyKGNvbnRleHQtPndpbnN0YXRlLAorCQkJCQkJCQkJCSAgIG5hdi0+ b2Zmc2V0X2FyZywgMCk7CisJCX0KKwkJZWxzZSBpZiAobmF2LT5raW5kID09IFJQUl9OQVZfUFJF Vl9MQVNUIHx8CisJCQkJIG5hdi0+a2luZCA9PSBSUFJfTkFWX05FWFRfTEFTVCkKKwkJeworCQkJ aW50NjQJCWlubmVyID0gZXZhbF9uYXZfb2Zmc2V0X2hlbHBlcihjb250ZXh0LT53aW5zdGF0ZSwK KwkJCQkJCQkJCQkJCQkgICBuYXYtPm9mZnNldF9hcmcsIDApOworCQkJaW50NjQJCW91dGVyID0g ZXZhbF9uYXZfb2Zmc2V0X2hlbHBlcihjb250ZXh0LT53aW5zdGF0ZSwKKwkJCQkJCQkJCQkJCQkg ICBuYXYtPmNvbXBvdW5kX29mZnNldF9hcmcsIDEpOworCisJCQlpZiAobmF2LT5raW5kID09IFJQ Ul9OQVZfUFJFVl9MQVNUKQorCQkJeworCQkJCWlmIChwZ19hZGRfczY0X292ZXJmbG93KGlubmVy LCBvdXRlciwgJnJlYWNoKSkKKwkJCQl7CisJCQkJCWNvbnRleHQtPm92ZXJmbG93ID0gdHJ1ZTsK KwkJCQkJcmV0dXJuIGZhbHNlOworCQkJCX0KKwkJCX0KKwkJCWVsc2UKKwkJCQlyZWFjaCA9IChp bm5lciA+IG91dGVyKSA/IGlubmVyIC0gb3V0ZXIgOiAwOworCQl9CisKKwkJY29udGV4dC0+bWF4 T2Zmc2V0ID0gTWF4KGNvbnRleHQtPm1heE9mZnNldCwgcmVhY2gpOworCisJCXJldHVybiBmYWxz ZTsJCQkvKiBkb24ndCB3YWxrIGludG8gY2hpbGRyZW4gKi8KKwl9CisKKwlyZXR1cm4gZXhwcmVz c2lvbl90cmVlX3dhbGtlcihub2RlLCBldmFsX25hdl9tYXhfb2Zmc2V0X3dhbGtlciwgY3R4KTsK K30KKworLyoKKyAqIGV2YWxfbmF2X21heF9vZmZzZXQKKyAqCQlFdmFsdWF0ZSBub24tY29uc3Rh bnQgYmFja3dhcmQtcmVhY2ggb2Zmc2V0cyBhdCBleGVjdXRvciBpbml0IHRpbWUuCisgKgorICog Q2FsbGVkIHdoZW4gdGhlIHBsYW5uZXIgc2V0IG5hdk1heE9mZnNldEtpbmQgdG8gUlBSX05BVl9P RkZTRVRfTkVFRFNfRVZBTAorICogYmVjYXVzZSBzb21lIG9mZnNldCBpbiBQUkVWLCBMQVNULXdp dGgtb2Zmc2V0LCBvciBjb21wb3VuZCBQUkVWX0xBU1QvCisgKiBORVhUX0xBU1QgY29udGFpbnMg YSBwYXJhbWV0ZXIgb3Igbm9uLWZvbGRhYmxlIGV4cHJlc3Npb24uCisgKgorICogT24gb3ZlcmZs b3csIHNldHMgbmF2TWF4T2Zmc2V0S2luZCB0byBSUFJfTkFWX09GRlNFVF9SRVRBSU5fQUxMIHNv IHRoYXQKKyAqIHR1cGxlc3RvcmUgdHJpbSBpcyBkaXNhYmxlZCBmb3IgYmFja3dhcmQgbmF2aWdh dGlvbi4KKyAqLworc3RhdGljIHZvaWQKK2V2YWxfbmF2X21heF9vZmZzZXQoV2luZG93QWdnU3Rh dGUgKndpbnN0YXRlLCBMaXN0ICpkZWZpbmVDbGF1c2UpCit7CisJRXZhbE5hdk1heENvbnRleHQg Y3R4OworCUxpc3RDZWxsICAgKmxjOworCisJY3R4LndpbnN0YXRlID0gd2luc3RhdGU7CisJY3R4 Lm1heE9mZnNldCA9IDA7CisJY3R4Lm92ZXJmbG93ID0gZmFsc2U7CisKKwlmb3JlYWNoKGxjLCBk ZWZpbmVDbGF1c2UpCisJeworCQlUYXJnZXRFbnRyeSAqdGUgPSAoVGFyZ2V0RW50cnkgKikgbGZp cnN0KGxjKTsKKworCQlldmFsX25hdl9tYXhfb2Zmc2V0X3dhbGtlcigoTm9kZSAqKSB0ZS0+ZXhw ciwgJmN0eCk7CisJfQorCisJaWYgKGN0eC5vdmVyZmxvdykKKwl7CisJCXdpbnN0YXRlLT5uYXZN YXhPZmZzZXRLaW5kID0gUlBSX05BVl9PRkZTRVRfUkVUQUlOX0FMTDsKKwkJd2luc3RhdGUtPm5h dk1heE9mZnNldCA9IDA7CisJfQorCWVsc2UKKwl7CisJCXdpbnN0YXRlLT5uYXZNYXhPZmZzZXRL aW5kID0gUlBSX05BVl9PRkZTRVRfRklYRUQ7CisJCXdpbnN0YXRlLT5uYXZNYXhPZmZzZXQgPSBj dHgubWF4T2Zmc2V0OworCX0KK30KKwordHlwZWRlZiBzdHJ1Y3QKK3sKKwlXaW5kb3dBZ2dTdGF0 ZSAqd2luc3RhdGU7CisJaW50NjQJCW1pbk9mZnNldDsKKwlib29sCQlmb3VuZDsKK30gRXZhbE5h dkZpcnN0Q29udGV4dDsKKworLyoKKyAqIGV2YWxfbmF2X2ZpcnN0X29mZnNldF93YWxrZXIKKyAq CQlXYWxrIGV4cHJlc3Npb24gdHJlZSBldmFsdWF0aW5nIGZvcndhcmQtZnJvbS1tYXRjaF9zdGFy dCBvZmZzZXRzLgorICoKKyAqIEhhbmRsZXMgc2ltcGxlIEZJUlNUIGFuZCBjb21wb3VuZCBQUkVW X0ZJUlNUL05FWFRfRklSU1QuCisgKi8KK3N0YXRpYyBib29sCitldmFsX25hdl9maXJzdF9vZmZz ZXRfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmN0eCkKK3sKKwlFdmFsTmF2Rmlyc3RDb250ZXh0 ICpjb250ZXh0ID0gKEV2YWxOYXZGaXJzdENvbnRleHQgKikgY3R4OworCisJaWYgKG5vZGUgPT0g TlVMTCkKKwkJcmV0dXJuIGZhbHNlOworCisJaWYgKElzQShub2RlLCBSUFJOYXZFeHByKSkKKwl7 CisJCVJQUk5hdkV4cHIgKm5hdiA9IChSUFJOYXZFeHByICopIG5vZGU7CisJCWludDY0CQljb21i aW5lZCA9IElOVDY0X01BWDsKKworCQlpZiAobmF2LT5raW5kID09IFJQUl9OQVZfRklSU1QpCisJ CXsKKwkJCWNvbnRleHQtPmZvdW5kID0gdHJ1ZTsKKwkJCWNvbWJpbmVkID0gZXZhbF9uYXZfb2Zm c2V0X2hlbHBlcihjb250ZXh0LT53aW5zdGF0ZSwKKwkJCQkJCQkJCQkJICBuYXYtPm9mZnNldF9h cmcsIDApOworCQl9CisJCWVsc2UgaWYgKG5hdi0+a2luZCA9PSBSUFJfTkFWX1BSRVZfRklSU1Qg fHwKKwkJCQkgbmF2LT5raW5kID09IFJQUl9OQVZfTkVYVF9GSVJTVCkKKwkJeworCQkJaW50NjQJ CWlubmVyID0gZXZhbF9uYXZfb2Zmc2V0X2hlbHBlcihjb250ZXh0LT53aW5zdGF0ZSwKKwkJCQkJ CQkJCQkJCQkgICBuYXYtPm9mZnNldF9hcmcsIDApOworCQkJaW50NjQJCW91dGVyID0gZXZhbF9u YXZfb2Zmc2V0X2hlbHBlcihjb250ZXh0LT53aW5zdGF0ZSwKKwkJCQkJCQkJCQkJCQkgICBuYXYt PmNvbXBvdW5kX29mZnNldF9hcmcsIDEpOworCisJCQljb250ZXh0LT5mb3VuZCA9IHRydWU7CisJ CQlpZiAobmF2LT5raW5kID09IFJQUl9OQVZfUFJFVl9GSVJTVCkKKwkJCXsKKwkJCQkvKgorCQkJ CSAqIGNvbWJpbmVkID0gaW5uZXIgLSBvdXRlci4gIEJvdGggYXJlIG5vbi1uZWdhdGl2ZSwgc28g dGhlCisJCQkJICogcmVzdWx0ID49IC1JTlQ2NF9NQVgsIHdoaWNoIGNhbm5vdCB1bmRlcmZsb3cg aW50NjQuCisJCQkJICovCisJCQkJY29tYmluZWQgPSBpbm5lciAtIG91dGVyOworCQkJfQorCQkJ ZWxzZQorCQkJeworCQkJCS8qCisJCQkJICogTkVYVF9GSVJTVDogY29tYmluZWQgPSBpbm5lciAr IG91dGVyLiAgVGhpcyBjYW4gb3ZlcmZsb3csCisJCQkJICogYnV0IHRoZSByZXN1bHQgaXMgYWx3 YXlzID49IDAsIHNvIGl0IG5ldmVyIHVwZGF0ZXMKKwkJCQkgKiBtaW5PZmZzZXQgKHdoaWNoIHRy YWNrcyB0aGUgbWluaW11bSkuICBDbGFtcCB0byBJTlQ2NF9NQVgKKwkJCQkgKiBvbiBvdmVyZmxv dy4KKwkJCQkgKi8KKwkJCQlpZiAocGdfYWRkX3M2NF9vdmVyZmxvdyhpbm5lciwgb3V0ZXIsICZj b21iaW5lZCkpCisJCQkJCWNvbWJpbmVkID0gSU5UNjRfTUFYOworCQkJfQorCQl9CisKKwkJY29u dGV4dC0+bWluT2Zmc2V0ID0gTWluKGNvbnRleHQtPm1pbk9mZnNldCwgY29tYmluZWQpOworCisJ CXJldHVybiBmYWxzZTsKKwl9CisKKwlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2Rl LCBldmFsX25hdl9maXJzdF9vZmZzZXRfd2Fsa2VyLCBjdHgpOworfQorCisvKgorICogZXZhbF9u YXZfZmlyc3Rfb2Zmc2V0CisgKgkJRXZhbHVhdGUgbm9uLWNvbnN0YW50IGZvcndhcmQtZnJvbS1t YXRjaF9zdGFydCBvZmZzZXRzIGF0IGV4ZWN1dG9yCisgKgkJaW5pdCB0aW1lLgorICoKKyAqIENh bGxlZCB3aGVuIHRoZSBwbGFubmVyIHNldCBuYXZGaXJzdE9mZnNldEtpbmQgdG8gUlBSX05BVl9P RkZTRVRfTkVFRFNfRVZBTAorICogYmVjYXVzZSBzb21lIG9mZnNldCBpbiBGSVJTVCBvciBjb21w b3VuZCBQUkVWX0ZJUlNUL05FWFRfRklSU1QgY29udGFpbnMKKyAqIGEgcGFyYW1ldGVyIG9yIG5v bi1mb2xkYWJsZSBleHByZXNzaW9uLgorICovCitzdGF0aWMgdm9pZAorZXZhbF9uYXZfZmlyc3Rf b2Zmc2V0KFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgTGlzdCAqZGVmaW5lQ2xhdXNlKQorewor CUV2YWxOYXZGaXJzdENvbnRleHQgY3R4OworCUxpc3RDZWxsICAgKmxjOworCisJY3R4LndpbnN0 YXRlID0gd2luc3RhdGU7CisJY3R4Lm1pbk9mZnNldCA9IElOVDY0X01BWDsKKwljdHguZm91bmQg PSBmYWxzZTsKKworCWZvcmVhY2gobGMsIGRlZmluZUNsYXVzZSkKKwl7CisJCVRhcmdldEVudHJ5 ICp0ZSA9IChUYXJnZXRFbnRyeSAqKSBsZmlyc3QobGMpOworCisJCWV2YWxfbmF2X2ZpcnN0X29m ZnNldF93YWxrZXIoKE5vZGUgKikgdGUtPmV4cHIsICZjdHgpOworCX0KKworCWlmIChjdHguZm91 bmQgJiYgY3R4Lm1pbk9mZnNldCA8IElOVDY0X01BWCkKKwl7CisJCXdpbnN0YXRlLT5uYXZGaXJz dE9mZnNldEtpbmQgPSBSUFJfTkFWX09GRlNFVF9GSVhFRDsKKwkJd2luc3RhdGUtPm5hdkZpcnN0 T2Zmc2V0ID0gY3R4Lm1pbk9mZnNldDsKKwl9CisJZWxzZQorCXsKKwkJd2luc3RhdGUtPm5hdkZp cnN0T2Zmc2V0S2luZCA9IFJQUl9OQVZfT0ZGU0VUX0ZJWEVEOworCQl3aW5zdGF0ZS0+bmF2Rmly c3RPZmZzZXQgPSAwOworCX0KK30KKworLyoKKyAqIHJwcl9pc19kZWZpbmVkCisgKiBSZXR1cm4g dHJ1ZSBpZiByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBpcyBkZWZpbmVkLgorICovCitzdGF0aWMg Ym9vbAorcnByX2lzX2RlZmluZWQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKQoreworCXJldHVy biB3aW5zdGF0ZS0+cnBQYXR0ZXJuICE9IE5VTEw7Cit9CisKKy8qCisgKiAtLS0tLS0tLS0tLS0t LS0tLQorICogcm93X2lzX2luX3JlZHVjZWRfZnJhbWUKKyAqIERldGVybWluZSB3aGV0aGVyIGEg cm93IGlzIGluIHRoZSBjdXJyZW50IHJvdydzIHJlZHVjZWQgd2luZG93IGZyYW1lCisgKiBhY2Nv cmRpbmcgdG8gcm93IHBhdHRlcm4gbWF0Y2hpbmcKKyAqCisgKiBUaGUgcm93IG11c3QgaGF2ZSBh bHJlYWR5IGJlZW4gZGV0ZXJtaW5lZCB0byBiZSBpbiBhIGZ1bGwgd2luZG93IGZyYW1lCisgKiBh bmQgZmV0Y2hlZCBpbnRvIHRoZSBzbG90LgorICoKKyAqIFJldHVybnM6CisgKiA9IDAsIFJQUiBp cyBub3QgZGVmaW5lZC4KKyAqID4wLCBpZiB0aGUgcm93IGlzIHRoZSBmaXJzdCBpbiB0aGUgcmVk dWNlZCBmcmFtZS4gUmV0dXJuIHRoZSBudW1iZXIgb2Ygcm93cworICogaW4gdGhlIHJlZHVjZWQg ZnJhbWUuCisgKiAtMSwgaWYgdGhlIHJvdyBpcyBhbiB1bm1hdGNoZWQgcm93CisgKiAtMiwgaWYg dGhlIHJvdyBpcyBpbiB0aGUgcmVkdWNlZCBmcmFtZSBidXQgbmVlZGVkIHRvIGJlIHNraXBwZWQg YmVjYXVzZSBvZgorICogQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgKiAtLS0tLS0t LS0tLS0tLS0tLQorICovCitzdGF0aWMgaW50NjQKK3Jvd19pc19pbl9yZWR1Y2VkX2ZyYW1lKFdp bmRvd09iamVjdCB3aW5vYmosIGludDY0IHBvcykKK3sKKwlXaW5kb3dBZ2dTdGF0ZSAqd2luc3Rh dGUgPSB3aW5vYmotPndpbnN0YXRlOworCWludAkJCXN0YXRlOworCWludDY0CQlydG47CisKKwlp ZiAoIXJwcl9pc19kZWZpbmVkKHdpbnN0YXRlKSkKKwl7CisJCS8qCisJCSAqIFJQUiBpcyBub3Qg ZGVmaW5lZC4gQXNzdW1lIHRoYXQgd2UgYXJlIGFsd2F5cyBpbiB0aGUgcmVkdWNlZCB3aW5kb3cK KwkJICogZnJhbWUuCisJCSAqLworCQlydG4gPSAwOworCQlyZXR1cm4gcnRuOworCX0KKworCXN0 YXRlID0gZ2V0X3JlZHVjZWRfZnJhbWVfc3RhdHVzKHdpbnN0YXRlLCBwb3MpOworCisJaWYgKHN0 YXRlID09IFJGX05PVF9ERVRFUk1JTkVEKQorCXsKKwkJdXBkYXRlX2ZyYW1laGVhZHBvcyh3aW5z dGF0ZSk7CisJCXVwZGF0ZV9yZWR1Y2VkX2ZyYW1lKHdpbm9iaiwgcG9zKTsKKwl9CisKKwlzdGF0 ZSA9IGdldF9yZWR1Y2VkX2ZyYW1lX3N0YXR1cyh3aW5zdGF0ZSwgcG9zKTsKKworCXN3aXRjaCAo c3RhdGUpCisJeworCQljYXNlIFJGX0ZSQU1FX0hFQUQ6CisJCQlydG4gPSB3aW5zdGF0ZS0+cnBy X21hdGNoX2xlbmd0aDsKKwkJCWJyZWFrOworCisJCWNhc2UgUkZfU0tJUFBFRDoKKwkJCXJ0biA9 IC0yOworCQkJYnJlYWs7CisKKwkJY2FzZSBSRl9VTk1BVENIRUQ6CisJCWNhc2UgUkZfRU1QVFlf TUFUQ0g6CisJCQlydG4gPSAtMTsKKwkJCWJyZWFrOworCisJCWRlZmF1bHQ6CisJCQllbG9nKEVS Uk9SLCAidW5yZWNvZ25pemVkIHN0YXRlOiAlZCBhdDogIiBJTlQ2NF9GT1JNQVQsCisJCQkJIHN0 YXRlLCBwb3MpOworCQkJYnJlYWs7CisJfQorCisJcmV0dXJuIHJ0bjsKK30KKworLyoKKyAqIGNs ZWFyX3JlZHVjZWRfZnJhbWUKKyAqIENsZWFyIHJlZHVjZWQgZnJhbWUgc3RhdHVzCisgKi8KK3N0 YXRpYyB2b2lkCitjbGVhcl9yZWR1Y2VkX2ZyYW1lKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSkK K3sKKwl3aW5zdGF0ZS0+cnByX21hdGNoX3ZhbGlkID0gZmFsc2U7CisJd2luc3RhdGUtPnJwcl9t YXRjaF9tYXRjaGVkID0gZmFsc2U7CisJd2luc3RhdGUtPnJwcl9tYXRjaF9zdGFydCA9IC0xOwor CXdpbnN0YXRlLT5ycHJfbWF0Y2hfbGVuZ3RoID0gMDsKK30KKworLyoKKyAqIGdldF9yZWR1Y2Vk X2ZyYW1lX3N0YXR1cworICoJCUxvb2sgdXAgYSBwb3NpdGlvbiBhZ2FpbnN0IHRoZSBjdXJyZW50 IG1hdGNoLgorICoKKyAqIFJldHVybnMgb25lIG9mIHRoZSBSRl8qIGNvbnN0YW50czoKKyAqICAg UkZfTk9UX0RFVEVSTUlORUQgIHBvcyBoYXMgbm90IGJlZW4gcHJvY2Vzc2VkIHlldAorICogICBS Rl9GUkFNRV9IRUFEICAgICAgcG9zIGlzIHRoZSBzdGFydCBvZiB0aGUgY3VycmVudCBtYXRjaAor ICogICBSRl9TS0lQUEVEICAgICAgICAgcG9zIGlzIGluc2lkZSB0aGUgY3VycmVudCBtYXRjaCBi dXQgbm90IHRoZSBzdGFydAorICogICBSRl9VTk1BVENIRUQgICAgICAgcG9zIGlzIHByb2Nlc3Nl ZCBidXQgbm90IHBhcnQgb2YgYW55IG1hdGNoCisgKi8KK3N0YXRpYyBpbnQKK2dldF9yZWR1Y2Vk X2ZyYW1lX3N0YXR1cyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IHBvcykKK3sKKwlp bnQ2NAkJc3RhcnQgPSB3aW5zdGF0ZS0+cnByX21hdGNoX3N0YXJ0OworCWludDY0CQlsZW5ndGgg PSB3aW5zdGF0ZS0+cnByX21hdGNoX2xlbmd0aDsKKworCWlmICghd2luc3RhdGUtPnJwcl9tYXRj aF92YWxpZCkKKwkJcmV0dXJuIFJGX05PVF9ERVRFUk1JTkVEOworCisJLyogRW1wdHkgbWF0Y2g6 IGNvdmVycyBvbmx5IHRoZSBzdGFydCBwb3NpdGlvbiAqLworCWlmIChwb3MgPT0gc3RhcnQgJiYg d2luc3RhdGUtPnJwcl9tYXRjaF9tYXRjaGVkICYmIGxlbmd0aCA9PSAwKQorCQlyZXR1cm4gUkZf RU1QVFlfTUFUQ0g7CisKKwkvKiBPdXRzaWRlIHRoZSByZXN1bHQgcmFuZ2UgKi8KKwlpZiAocG9z IDwgc3RhcnQgfHwgcG9zID49IHN0YXJ0ICsgbGVuZ3RoKQorCQlyZXR1cm4gUkZfTk9UX0RFVEVS TUlORUQ7CisKKwlpZiAoIXdpbnN0YXRlLT5ycHJfbWF0Y2hfbWF0Y2hlZCkKKwkJcmV0dXJuIFJG X1VOTUFUQ0hFRDsKKworCWlmIChwb3MgPT0gc3RhcnQpCisJCXJldHVybiBSRl9GUkFNRV9IRUFE OworCisJcmV0dXJuIFJGX1NLSVBQRUQ7Cit9CisKKy8qCisgKiB1cGRhdGVfcmVkdWNlZF9mcmFt ZQorICoJCVVwZGF0ZSByZWR1Y2VkIGZyYW1lIGluZm8gdXNpbmcgbXVsdGktY29udGV4dCBORkEg cGF0dGVybiBtYXRjaGluZy4KKyAqCisgKiBNYWludGFpbnMgbXVsdGlwbGUgTkZBIGNvbnRleHRz IHNpbXVsdGFuZW91c2x5LCBvbmUgZm9yIGVhY2ggcG90ZW50aWFsCisgKiBtYXRjaCBzdGFydCBw b3NpdGlvbi4gVGhpcyBhbGxvd3Mgc2hhcmluZyByb3cgZXZhbHVhdGlvbnMgYWNyb3NzIGNvbnRl eHRzLAorICogYXZvaWRpbmcgcmVkdW5kYW50IERFRklORSBjbGF1c2UgZXZhbHVhdGlvbnMgd2hl biByZXdpbmRpbmcgZm9yIFNLSVAgVE8KKyAqIE5FWFQgUk9XIG1vZGUuCisgKgorICogS2V5IG9w dGltaXphdGlvbnM6CisgKiAtIFJvdyBldmFsdWF0aW9ucyAoZXhwZW5zaXZlIERFRklORSBjbGF1 c2VzKSBoYXBwZW4gb25seSBvbmNlIHBlciByb3cKKyAqIC0gQWxsIGFjdGl2ZSBjb250ZXh0cyBz aGFyZSB0aGUgc2FtZSBldmFsdWF0aW9uIHJlc3VsdHMKKyAqIC0gQ29udGV4dHMgcGVyc2lzdCBh Y3Jvc3MgY2FsbHMsIGVuYWJsaW5nIE8obikgREVGSU5FIGV2YWx1YXRpb25zCisgKi8KK3N0YXRp YyB2b2lkCit1cGRhdGVfcmVkdWNlZF9mcmFtZShXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBw b3MpCit7CisJV2luZG93QWdnU3RhdGUgKndpbnN0YXRlID0gd2lub2JqLT53aW5zdGF0ZTsKKwlS UFJORkFDb250ZXh0ICp0YXJnZXRDdHg7CisJaW50NjQJCWN1cnJlbnRQb3M7CisJaW50NjQJCXN0 YXJ0UG9zOworCWludAkJCWZyYW1lT3B0aW9ucyA9IHdpbnN0YXRlLT5mcmFtZU9wdGlvbnM7CisJ Ym9vbAkJaGFzTGltaXRlZEZyYW1lOworCWludDY0CQlmcmFtZU9mZnNldCA9IDA7CisJaW50NjQJ CW1hdGNoTGVuOworCisJLyoKKwkgKiBDaGVjayBpZiB3ZSBoYXZlIGEgbGltaXRlZCBmcmFtZSAo Uk9XUyAuLi4gTiBGT0xMT1dJTkcpLiBFYWNoIGNvbnRleHQKKwkgKiBuZWVkcyBpdHMgb3duIGZy YW1lIGVuZCBiYXNlZCBvbiBtYXRjaFN0YXJ0Um93ICsgb2Zmc2V0LgorCSAqLworCWhhc0xpbWl0 ZWRGcmFtZSA9IChmcmFtZU9wdGlvbnMgJiBGUkFNRU9QVElPTl9ST1dTKSAmJgorCQkhKGZyYW1l T3B0aW9ucyAmIEZSQU1FT1BUSU9OX0VORF9VTkJPVU5ERURfRk9MTE9XSU5HKTsKKwlpZiAoaGFz TGltaXRlZEZyYW1lICYmIHdpbnN0YXRlLT5lbmRPZmZzZXRWYWx1ZSAhPSAwKQorCQlmcmFtZU9m ZnNldCA9IERhdHVtR2V0SW50NjQod2luc3RhdGUtPmVuZE9mZnNldFZhbHVlKTsKKworCS8qCisJ ICogQ2FzZSAxOiBwb3MgaXMgYmVmb3JlIGFueSBleGlzdGluZyBjb250ZXh0J3Mgc3RhcnQgcG9z aXRpb24uIFRoaXMgbWVhbnMKKwkgKiB0aGUgcG9zaXRpb24gd2FzIGFscmVhZHkgcHJvY2Vzc2Vk IGFuZCBkZXRlcm1pbmVkIHVubWF0Y2hlZC4gSGVhZCBpcworCSAqIHRoZSBvbGRlc3QgY29udGV4 dCAobG93ZXN0IG1hdGNoU3RhcnRSb3cpIHNpbmNlIGNvbnRleHRzIGFyZSBhZGRlZCBhdAorCSAq IHRhaWwgd2l0aCBpbmNyZWFzaW5nIHBvc2l0aW9ucy4KKwkgKi8KKwlpZiAod2luc3RhdGUtPm5m YUNvbnRleHQgIT0gTlVMTCAmJgorCQlwb3MgPCB3aW5zdGF0ZS0+bmZhQ29udGV4dC0+bWF0Y2hT dGFydFJvdykKKwl7CisJCS8qIGFscmVhZHkgcHJvY2Vzc2VkLCB1bm1hdGNoZWQgKi8KKwkJd2lu c3RhdGUtPnJwcl9tYXRjaF92YWxpZCA9IHRydWU7CisJCXdpbnN0YXRlLT5ycHJfbWF0Y2hfbWF0 Y2hlZCA9IGZhbHNlOworCQl3aW5zdGF0ZS0+cnByX21hdGNoX3N0YXJ0ID0gcG9zOworCQl3aW5z dGF0ZS0+cnByX21hdGNoX2xlbmd0aCA9IDE7CisJCXJldHVybjsKKwl9CisKKwkvKgorCSAqIENh c2UgMjogRmluZCBleGlzdGluZyBjb250ZXh0IGZvciB0aGlzIHBvcywgb3IgY3JlYXRlIG5ldyBv bmUuCisJICovCisJdGFyZ2V0Q3R4ID0gRXhlY1JQUkdldEhlYWRDb250ZXh0KHdpbnN0YXRlLCBw b3MpOworCWlmICh0YXJnZXRDdHggPT0gTlVMTCkKKwl7CisJCS8qCisJCSAqIE5vIGNvbnRleHQg ZXhpc3RzLiBJZiBwb3MgaXMgYWxyZWFkeSBwcm9jZXNzZWQsIGl0IG1lYW5zIHRoaXMgcm93CisJ CSAqIHdhcyBhbHJlYWR5IGRldGVybWluZWQgdG8gYmUgdW5tYXRjaGVkIG9yIHNraXBwZWQgLSBu byBuZWVkIHRvCisJCSAqIHJlcHJvY2Vzcy4KKwkJICovCisJCWlmIChwb3MgPD0gd2luc3RhdGUt Pm5mYUxhc3RQcm9jZXNzZWRSb3cpCisJCXsKKwkJCS8qIGFscmVhZHkgcHJvY2Vzc2VkLCB1bm1h dGNoZWQgKi8KKwkJCXdpbnN0YXRlLT5ycHJfbWF0Y2hfdmFsaWQgPSB0cnVlOworCQkJd2luc3Rh dGUtPnJwcl9tYXRjaF9tYXRjaGVkID0gZmFsc2U7CisJCQl3aW5zdGF0ZS0+cnByX21hdGNoX3N0 YXJ0ID0gcG9zOworCQkJd2luc3RhdGUtPnJwcl9tYXRjaF9sZW5ndGggPSAxOworCQkJcmV0dXJu OworCQl9CisJCS8qIE5vdCB5ZXQgcHJvY2Vzc2VkIC0gY3JlYXRlIG5ldyBjb250ZXh0IGFuZCBz dGFydCBmcmVzaCAqLworCQl0YXJnZXRDdHggPSBFeGVjUlBSU3RhcnRDb250ZXh0KHdpbnN0YXRl LCBwb3MpOworCX0KKwllbHNlIGlmICh0YXJnZXRDdHgtPnN0YXRlcyA9PSBOVUxMKQorCXsKKwkJ LyogQ29udGV4dCBhbHJlYWR5IGNvbXBsZXRlZCAtIHNraXAgdG8gcmVzdWx0IHJlZ2lzdHJhdGlv biAqLworCQlnb3RvIHJlZ2lzdGVyX3Jlc3VsdDsKKwl9CisKKwkvKgorCSAqIERldGVybWluZSB3 aGVyZSB0byBzdGFydCBwcm9jZXNzaW5nLiBVc3VhbGx5IG5mYUxhc3RQcm9jZXNzZWRSb3crMSA+ PQorCSAqIHBvcyBzaW5jZSBjb250ZXh0cyBhcmUgY3JlYXRlZCBhdCBjdXJyZW50UG9zKzEgZHVy aW5nIHByb2Nlc3NpbmcuCisJICogSG93ZXZlciwgcG9zIGNhbiBleGNlZWQgdGhpcyB3aGVuIHJv d3MgYXJlIHNraXBwZWQgKGUuZy4sIHVubWF0Y2hlZAorCSAqIHJvd3MgZG9uJ3QgdXBkYXRlIG5m YUxhc3RQcm9jZXNzZWRSb3cpLgorCSAqLworCXN0YXJ0UG9zID0gTWF4KHBvcywgd2luc3RhdGUt Pm5mYUxhc3RQcm9jZXNzZWRSb3cgKyAxKTsKKworCS8qCisJICogUHJvY2VzcyByb3dzIHVudGls IHRhcmdldCBjb250ZXh0IGNvbXBsZXRlcyBvciB3ZSBoaXQgYm91bmRhcmllcy4gRWFjaAorCSAq IHJvdyBldmFsdWF0aW9uIGlzIHNoYXJlZCBhY3Jvc3MgYWxsIGFjdGl2ZSBjb250ZXh0cy4KKwkg Ki8KKwlmb3IgKGN1cnJlbnRQb3MgPSBzdGFydFBvczsgdGFyZ2V0Q3R4LT5zdGF0ZXMgIT0gTlVM TDsgY3VycmVudFBvcysrKQorCXsKKwkJYm9vbAkJcm93RXhpc3RzOworCisJCS8qCisJCSAqIEV2 YWx1YXRlIHZhcmlhYmxlcyBmb3IgdGhpcyByb3cgLSBkb25lIG9ubHkgb25jZSwgc2hhcmVkIGJ5 IGFsbAorCQkgKiBjb250ZXh0cy4KKwkJICoKKwkJICogU2V0IG5hdl9tYXRjaF9zdGFydCB0byB0 aGUgaGVhZCBjb250ZXh0J3MgbWF0Y2hTdGFydFJvdyBmb3IKKwkJICogRklSU1QvTEFTVCBuYXZp Z2F0aW9uLiAgTWF0Y2hfc3RhcnQtZGVwZW5kZW50IHZhcmlhYmxlcyAoRklSU1QsCisJCSAqIExB U1Qtd2l0aC1vZmZzZXQpIGFyZSByZS1ldmFsdWF0ZWQgcGVyLWNvbnRleHQgaW4gRXhlY1JQUlBy b2Nlc3NSb3cKKwkJICogd2hlbiBtYXRjaFN0YXJ0Um93IGRpZmZlcnMuCisJCSAqLworCQl3aW5z dGF0ZS0+bmF2X21hdGNoX3N0YXJ0ID0gdGFyZ2V0Q3R4LT5tYXRjaFN0YXJ0Um93OworCQlyb3dF eGlzdHMgPSBuZmFfZXZhbHVhdGVfcm93KHdpbm9iaiwgY3VycmVudFBvcywgd2luc3RhdGUtPm5m YVZhck1hdGNoZWQpOworCisJCS8qIE5vIG1vcmUgcm93cyBpbiBwYXJ0aXRpb24/IEZpbmFsaXpl IGFsbCBjb250ZXh0cyAqLworCQlpZiAoIXJvd0V4aXN0cykKKwkJeworCQkJRXhlY1JQUkZpbmFs aXplQWxsQ29udGV4dHMod2luc3RhdGUsIGN1cnJlbnRQb3MgLSAxKTsKKwkJCS8qIENsZWFuIHVw IGRlYWQgY29udGV4dHMgZnJvbSBmaW5hbGl6YXRpb24gKi8KKwkJCUV4ZWNSUFJDbGVhbnVwRGVh ZENvbnRleHRzKHdpbnN0YXRlLCB0YXJnZXRDdHgpOworCQkJYnJlYWs7CisJCX0KKworCQkvKiBV cGRhdGUgbGFzdCBwcm9jZXNzZWQgcm93ICovCisJCXdpbnN0YXRlLT5uZmFMYXN0UHJvY2Vzc2Vk Um93ID0gY3VycmVudFBvczsKKworCQkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJCSAq IFByb2Nlc3MgYWxsIGNvbnRleHRzIGZvciB0aGlzIHJvdzoKKwkJICogICAxLiBNYXRjaCBhbGwg KGNvbnZlcmdlbmNlKQorCQkgKiAgIDIuIEFic29yYiByZWR1bmRhbnQKKwkJICogICAzLiBBZHZh bmNlIGFsbCAoZGl2ZXJnZW5jZSkKKwkJICovCisJCUV4ZWNSUFJQcm9jZXNzUm93KHdpbnN0YXRl LCBjdXJyZW50UG9zLCBoYXNMaW1pdGVkRnJhbWUsIGZyYW1lT2Zmc2V0KTsKKworCQkvKgorCQkg KiBDcmVhdGUgYSBuZXcgY29udGV4dCBmb3IgdGhlIG5leHQgcG90ZW50aWFsIHN0YXJ0IHBvc2l0 aW9uLiBUaGlzCisJCSAqIGVuYWJsZXMgb3ZlcmxhcHBpbmcgbWF0Y2ggZGV0ZWN0aW9uIGZvciBT S0lQIFRPIE5FWFQgUk9XLgorCQkgKi8KKwkJRXhlY1JQUlN0YXJ0Q29udGV4dCh3aW5zdGF0ZSwg Y3VycmVudFBvcyArIDEpOworCisJCS8qCisJCSAqIENsZWFuIHVwIGRlYWQgY29udGV4dHMgKGZh aWxlZCB3aXRoIG5vIGFjdGl2ZSBzdGF0ZXMgYW5kIG5vIG1hdGNoKS4KKwkJICogVGhpcyByZW1v dmVzIGNvbnRleHRzIHRoYXQgZmFpbGVkIGR1cmluZyBwcm9jZXNzaW5nIGFuZCBjb3VudHMgdGhl bQorCQkgKiBhcHByb3ByaWF0ZWx5IGFzIHBydW5lZCBvciBtaXNtYXRjaGVkLgorCQkgKi8KKwkJ RXhlY1JQUkNsZWFudXBEZWFkQ29udGV4dHMod2luc3RhdGUsIHRhcmdldEN0eCk7CisJfQorCity ZWdpc3Rlcl9yZXN1bHQ6CisJQXNzZXJ0KHBvcyA9PSB0YXJnZXRDdHgtPm1hdGNoU3RhcnRSb3cp OworCisJLyoKKwkgKiBSZWNvcmQgbWF0Y2ggcmVzdWx0LgorCSAqLworCXdpbnN0YXRlLT5ycHJf bWF0Y2hfdmFsaWQgPSB0cnVlOworCXdpbnN0YXRlLT5ycHJfbWF0Y2hfc3RhcnQgPSB0YXJnZXRD dHgtPm1hdGNoU3RhcnRSb3c7CisKKwlpZiAodGFyZ2V0Q3R4LT5tYXRjaEVuZFJvdyA8IHRhcmdl dEN0eC0+bWF0Y2hTdGFydFJvdykKKwl7CisJCW1hdGNoTGVuID0gdGFyZ2V0Q3R4LT5sYXN0UHJv Y2Vzc2VkUm93IC0gdGFyZ2V0Q3R4LT5tYXRjaFN0YXJ0Um93ICsgMTsKKworCQlpZiAodGFyZ2V0 Q3R4LT5tYXRjaGVkU3RhdGUgIT0gTlVMTCkKKwkJeworCQkJLyogRW1wdHkgbWF0Y2g6IEZJTiBy ZWFjaGVkIGJ1dCAwIHJvd3MgY29uc3VtZWQgKi8KKwkJCXdpbnN0YXRlLT5ycHJfbWF0Y2hfbWF0 Y2hlZCA9IHRydWU7CisJCQl3aW5zdGF0ZS0+cnByX21hdGNoX2xlbmd0aCA9IDA7CisJCQlFeGVj UlBSUmVjb3JkQ29udGV4dFN1Y2Nlc3Mod2luc3RhdGUsIDApOworCQl9CisJCWVsc2UKKwkJewor CQkJLyogTm8gbWF0Y2ggKi8KKwkJCXdpbnN0YXRlLT5ycHJfbWF0Y2hfbWF0Y2hlZCA9IGZhbHNl OworCQkJd2luc3RhdGUtPnJwcl9tYXRjaF9sZW5ndGggPSAxOworCQkJRXhlY1JQUlJlY29yZENv bnRleHRGYWlsdXJlKHdpbnN0YXRlLCBtYXRjaExlbik7CisJCX0KKwkJRXhlY1JQUkZyZWVDb250 ZXh0KHdpbnN0YXRlLCB0YXJnZXRDdHgpOworCQlyZXR1cm47CisJfQorCisJLyogTWF0Y2ggc3Vj Y2VlZGVkICovCisJbWF0Y2hMZW4gPSB0YXJnZXRDdHgtPm1hdGNoRW5kUm93IC0gdGFyZ2V0Q3R4 LT5tYXRjaFN0YXJ0Um93ICsgMTsKKworCXdpbnN0YXRlLT5ycHJfbWF0Y2hfbWF0Y2hlZCA9IHRy dWU7CisJd2luc3RhdGUtPnJwcl9tYXRjaF9sZW5ndGggPSBtYXRjaExlbjsKKwlFeGVjUlBSUmVj b3JkQ29udGV4dFN1Y2Nlc3Mod2luc3RhdGUsIG1hdGNoTGVuKTsKKworCS8qIFJlbW92ZSB0aGUg bWF0Y2hlZCBjb250ZXh0ICovCisJRXhlY1JQUkZyZWVDb250ZXh0KHdpbnN0YXRlLCB0YXJnZXRD dHgpOworfQorCisvKgorICogbmZhX2V2YWx1YXRlX3JvdworICoKKyAqIEV2YWx1YXRlIGFsbCBE RUZJTkUgdmFyaWFibGVzIGZvciBjdXJyZW50IHJvdy4KKyAqIFJldHVybnMgdHJ1ZSBpZiB0aGUg cm93IGV4aXN0cywgZmFsc2UgaWYgb3V0IG9mIHBhcnRpdGlvbi4KKyAqIElmIHJvdyBleGlzdHMs IGZpbGxzIHZhck1hdGNoZWQgYXJyYXkuCisgKiB2YXJNYXRjaGVkW2ldID0gdHJ1ZSBpZiB2YXJp YWJsZSBpIG1hdGNoZWQgYXQgY3VycmVudCByb3cuCisgKgorICogVXNlcyAxLXNsb3QgbW9kZWw6 IG9ubHkgZWN4dF9vdXRlcnR1cGxlIGlzIHNldCB0byB0aGUgY3VycmVudCByb3cuCisgKiBQUkVW L05FWFQvRklSU1QvTEFTVCBuYXZpZ2F0aW9uIGlzIGhhbmRsZWQgYnkgRUVPUF9SUFJfTkFWX1NF VC9SRVNUT1JFCisgKiBvcGNvZGVzIGR1cmluZyBleHByZXNzaW9uIGV2YWx1YXRpb24sIHdoaWNo IHRlbXBvcmFyaWx5IHN3YXAgdGhlIHNsb3QuCisgKi8KK3N0YXRpYyBib29sCituZmFfZXZhbHVh dGVfcm93KFdpbmRvd09iamVjdCB3aW5vYmosIGludDY0IHBvcywgYm9vbCAqdmFyTWF0Y2hlZCkK K3sKKwlXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUgPSB3aW5vYmotPndpbnN0YXRlOworCUV4cHJD b250ZXh0ICplY29udGV4dCA9IHdpbnN0YXRlLT5zcy5wcy5wc19FeHByQ29udGV4dDsKKwlpbnQJ CQludW1EZWZpbmVWYXJzID0gbGlzdF9sZW5ndGgod2luc3RhdGUtPmRlZmluZVZhcmlhYmxlTGlz dCk7CisJTGlzdENlbGwgICAqbGM7CisJaW50CQkJdmFySWR4ID0gMDsKKwlUdXBsZVRhYmxlU2xv dCAqc2xvdDsKKwlpbnQ2NAkJc2F2ZWRfcG9zOworCisJLyogRmV0Y2ggY3VycmVudCByb3cgaW50 byB0ZW1wX3Nsb3RfMSAqLworCXNsb3QgPSB3aW5zdGF0ZS0+dGVtcF9zbG90XzE7CisJaWYgKCF3 aW5kb3dfZ2V0dHVwbGVzbG90KHdpbm9iaiwgcG9zLCBzbG90KSkKKwkJcmV0dXJuIGZhbHNlOwkJ CS8qIE5vIHJvdyBleGlzdHMgKi8KKworCS8qIFNldCB1cCAxLXNsb3QgY29udGV4dDogb25seSBl Y3h0X291dGVydHVwbGUgKi8KKwllY29udGV4dC0+ZWN4dF9vdXRlcnR1cGxlID0gc2xvdDsKKwor CS8qCisJICogU2F2ZSBhbmQgc2V0IGN1cnJlbnRwb3Mgc28gdGhhdCBFRU9QX1JQUl9OQVZfU0VU IG9wY29kZXMgY2FuIGNhbGN1bGF0ZQorCSAqIHRhcmdldCBwb3NpdGlvbnMgKGN1cnJlbnRwb3Mg Ky8tIG9mZnNldCkuCisJICovCisJc2F2ZWRfcG9zID0gd2luc3RhdGUtPmN1cnJlbnRwb3M7CisJ d2luc3RhdGUtPmN1cnJlbnRwb3MgPSBwb3M7CisKKwkvKiBJbnZhbGlkYXRlIG5hdl9zbG90IGNh Y2hlIHNvIFBSRVYvTkVYVCByZS1mZXRjaCBmb3IgbmV3IHJvdyAqLworCXdpbnN0YXRlLT5uYXZf c2xvdF9wb3MgPSAtMTsKKworCWZvcmVhY2gobGMsIHdpbnN0YXRlLT5kZWZpbmVDbGF1c2VMaXN0 KQorCXsKKwkJRXhwclN0YXRlICAqZXhwclN0YXRlID0gKEV4cHJTdGF0ZSAqKSBsZmlyc3QobGMp OworCQlEYXR1bQkJcmVzdWx0OworCQlib29sCQlpc251bGw7CisKKwkJLyogRXZhbHVhdGUgREVG SU5FIGV4cHJlc3Npb24gKi8KKwkJcmVzdWx0ID0gRXhlY0V2YWxFeHByKGV4cHJTdGF0ZSwgZWNv bnRleHQsICZpc251bGwpOworCisJCXZhck1hdGNoZWRbdmFySWR4XSA9ICghaXNudWxsICYmIERh dHVtR2V0Qm9vbChyZXN1bHQpKTsKKworCQl2YXJJZHgrKzsKKwkJaWYgKHZhcklkeCA+PSBudW1E ZWZpbmVWYXJzKQorCQkJYnJlYWs7CisJfQorCisJd2luc3RhdGUtPmN1cnJlbnRwb3MgPSBzYXZl ZF9wb3M7CisKKwlyZXR1cm4gdHJ1ZTsJCQkJLyogUm93IGV4aXN0cyAqLworfQorCisKIC8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgogICogQVBJIGV4cG9zZWQgdG8gd2luZG93IGZ1bmN0aW9ucwogICoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLwpAQCAtMzk3Miw4ICs0OTQ2LDYgQEAgV2luR2V0RnVuY0FyZ0luRnJhbWUoV2luZG93 T2JqZWN0IHdpbm9iaiwgaW50IGFyZ25vLAogCVdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZTsKIAlF eHByQ29udGV4dCAqZWNvbnRleHQ7CiAJVHVwbGVUYWJsZVNsb3QgKnNsb3Q7Ci0JaW50NjQJCWFi c19wb3M7Ci0JaW50NjQJCW1hcmtfcG9zOwogCiAJQXNzZXJ0KFdpbmRvd09iamVjdElzVmFsaWQo d2lub2JqKSk7CiAJd2luc3RhdGUgPSB3aW5vYmotPndpbnN0YXRlOwpAQCAtMzk4NCw2ICs0OTU2 LDQ4IEBAIFdpbkdldEZ1bmNBcmdJbkZyYW1lKFdpbmRvd09iamVjdCB3aW5vYmosIGludCBhcmdu bywKIAkJcmV0dXJuIGlnbm9yZW51bGxzX2dldGZ1bmNhcmdpbmZyYW1lKHdpbm9iaiwgYXJnbm8s IHJlbHBvcywgc2Vla3R5cGUsCiAJCQkJCQkJCQkJCSBzZXRfbWFyaywgaXNudWxsLCBpc291dCk7 CiAKKwlpZiAoV2luR2V0U2xvdEluRnJhbWUod2lub2JqLCBzbG90LAorCQkJCQkJICByZWxwb3Ms IHNlZWt0eXBlLCBzZXRfbWFyaywKKwkJCQkJCSAgaXNudWxsLCBpc291dCkgPT0gMCkKKwl7CisJ CWVjb250ZXh0LT5lY3h0X291dGVydHVwbGUgPSBzbG90OworCQlyZXR1cm4gRXhlY0V2YWxFeHBy KChFeHByU3RhdGUgKikgbGlzdF9udGgod2lub2JqLT5hcmdzdGF0ZXMsIGFyZ25vKSwKKwkJCQkJ CQllY29udGV4dCwgaXNudWxsKTsKKwl9CisKKwlpZiAoaXNvdXQpCisJCSppc291dCA9IHRydWU7 CisJKmlzbnVsbCA9IHRydWU7CisJcmV0dXJuIChEYXR1bSkgMDsKK30KKworLyoKKyAqIFdpbkdl dFNsb3RJbkZyYW1lCisgKiBzbG90OiBUdXBsZVRhYmxlU2xvdCB0byBzdG9yZSB0aGUgcmVzdWx0 CisgKiByZWxwb3M6IHNpZ25lZCByb3djb3VudCBvZmZzZXQgZnJvbSB0aGUgc2VlayBwb3NpdGlv bgorICogc2Vla3R5cGU6IFdJTkRPV19TRUVLX0hFQUQgb3IgV0lORE9XX1NFRUtfVEFJTAorICog c2V0X21hcms6IElmIHRoZSByb3cgaXMgZm91bmQvaW4gZnJhbWUgYW5kIHNldF9tYXJrIGlzIHRy dWUsIHRoZSBtYXJrIGlzCisgKgkJbW92ZWQgdG8gdGhlIHJvdyBhcyBhIHNpZGUtZWZmZWN0Lgor ICogaXNudWxsOiBvdXRwdXQgYXJndW1lbnQsIHJlY2VpdmVzIGlzbnVsbCBzdGF0dXMgb2YgcmVz dWx0CisgKiBpc291dDogb3V0cHV0IGFyZ3VtZW50LCBzZXQgdG8gaW5kaWNhdGUgd2hldGhlciB0 YXJnZXQgcm93IHBvc2l0aW9uCisgKgkJaXMgb3V0IG9mIGZyYW1lIChjYW4gcGFzcyBOVUxMIGlm IGNhbGxlciBkb2Vzbid0IGNhcmUgYWJvdXQgdGhpcykKKyAqCisgKiBSZXR1cm5zIDAgaWYgd2Ug c3VjY2Vzc2Z1bGx5IGdvdCB0aGUgc2xvdCwgb3Igbm9uemVybyBpZiBvdXQgb2YgZnJhbWUuCisg KiAoaXNvdXQgaXMgYWxzbyBzZXQgaW4gdGhlIGxhdHRlciBjYXNlLikKKyAqLworc3RhdGljIGlu dAorV2luR2V0U2xvdEluRnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwgVHVwbGVUYWJsZVNsb3Qg KnNsb3QsCisJCQkJICBpbnQgcmVscG9zLCBpbnQgc2Vla3R5cGUsIGJvb2wgc2V0X21hcmssCisJ CQkJICBib29sICppc251bGwsIGJvb2wgKmlzb3V0KQoreworCVdpbmRvd0FnZ1N0YXRlICp3aW5z dGF0ZTsKKwlpbnQ2NAkJYWJzX3BvczsKKwlpbnQ2NAkJbWFya19wb3M7CisJaW50NjQJCW51bV9y ZWR1Y2VkX2ZyYW1lOworCisJQXNzZXJ0KFdpbmRvd09iamVjdElzVmFsaWQod2lub2JqKSk7CisJ d2luc3RhdGUgPSB3aW5vYmotPndpbnN0YXRlOworCiAJc3dpdGNoIChzZWVrdHlwZSkKIAl7CiAJ CWNhc2UgV0lORE9XX1NFRUtfQ1VSUkVOVDoKQEAgLTQwNTAsMTEgKzUwNjQsMjUgQEAgV2luR2V0 RnVuY0FyZ0luRnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwgaW50IGFyZ25vLAogCQkJCQkJIHdp bnN0YXRlLT5mcmFtZU9wdGlvbnMpOwogCQkJCQlicmVhazsKIAkJCX0KKwkJCW51bV9yZWR1Y2Vk X2ZyYW1lID0gcm93X2lzX2luX3JlZHVjZWRfZnJhbWUod2lub2JqLAorCQkJCQkJCQkJCQkJCQl3 aW5zdGF0ZS0+ZnJhbWVoZWFkcG9zKTsKKwkJCWlmIChudW1fcmVkdWNlZF9mcmFtZSA8IDApCisJ CQkJZ290byBvdXRfb2ZfZnJhbWU7CisJCQllbHNlIGlmIChudW1fcmVkdWNlZF9mcmFtZSA+IDAp CisJCQkJaWYgKHJlbHBvcyA+PSBudW1fcmVkdWNlZF9mcmFtZSkKKwkJCQkJZ290byBvdXRfb2Zf ZnJhbWU7CiAJCQlicmVhazsKIAkJY2FzZSBXSU5ET1dfU0VFS19UQUlMOgogCQkJLyogcmVqZWN0 aW5nIHJlbHBvcyA+IDAgaXMgZWFzeSBhbmQgc2ltcGxpZmllcyBjb2RlIGJlbG93ICovCiAJCQlp ZiAocmVscG9zID4gMCkKIAkJCQlnb3RvIG91dF9vZl9mcmFtZTsKKworCQkJLyoKKwkJCSAqIFJQ UiBjYXJlcyBhYm91dCBmcmFtZSBoZWFkIHBvcy4gTmVlZCB0byBjYWxsCisJCQkgKiB1cGRhdGVf ZnJhbWVoZWFkcG9zCisJCQkgKi8KKwkJCXVwZGF0ZV9mcmFtZWhlYWRwb3Mod2luc3RhdGUpOwor CiAJCQl1cGRhdGVfZnJhbWV0YWlscG9zKHdpbnN0YXRlKTsKIAkJCWFic19wb3MgPSB3aW5zdGF0 ZS0+ZnJhbWV0YWlscG9zIC0gMSArIHJlbHBvczsKIApAQCAtNDEyMSw2ICs1MTQ5LDE4IEBAIFdp bkdldEZ1bmNBcmdJbkZyYW1lKFdpbmRvd09iamVjdCB3aW5vYmosIGludCBhcmdubywKIAkJCQkJ bWFya19wb3MgPSAwOwkvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCiAJCQkJCWJyZWFrOwogCQkJ fQorCisJCQludW1fcmVkdWNlZF9mcmFtZSA9IHJvd19pc19pbl9yZWR1Y2VkX2ZyYW1lKHdpbm9i aiwKKwkJCQkJCQkJCQkJCQkJd2luc3RhdGUtPmZyYW1laGVhZHBvcyk7CisJCQlpZiAobnVtX3Jl ZHVjZWRfZnJhbWUgPCAwKQorCQkJCWdvdG8gb3V0X29mX2ZyYW1lOworCQkJZWxzZSBpZiAobnVt X3JlZHVjZWRfZnJhbWUgPiAwKQorCQkJeworCQkJCWlmICgtcmVscG9zID49IG51bV9yZWR1Y2Vk X2ZyYW1lKQorCQkJCQlnb3RvIG91dF9vZl9mcmFtZTsKKwkJCQlhYnNfcG9zID0gd2luc3RhdGUt PmZyYW1laGVhZHBvcyArIHJlbHBvcyArCisJCQkJCW51bV9yZWR1Y2VkX2ZyYW1lIC0gMTsKKwkJ CX0KIAkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCB3 aW5kb3cgc2VlayB0eXBlOiAlZCIsIHNlZWt0eXBlKTsKQEAgLTQxMzgsMTYgKzUxNzgsMjQgQEAg V2luR2V0RnVuY0FyZ0luRnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwgaW50IGFyZ25vLAogCWlm IChpc291dCkKIAkJKmlzb3V0ID0gZmFsc2U7CiAJaWYgKHNldF9tYXJrKQorCXsKKwkJLyoKKwkJ ICogSWYgUlBSIGlzIGVuYWJsZWQgYW5kIHNlZWsgdHlwZSBpcyBXSU5ET1dfU0VFS19UQUlMLCB3 ZSBzZXQgdGhlCisJCSAqIG1hcmsgcG9zaXRpb24gdW5jb25kaXRpb25hbGx5IHRvIGZyYW1laGVh ZHBvcy4gSW4gdGhpcyBjYXNlIHRoZQorCQkgKiBmcmFtZSBhbHdheXMgc3RhcnRzIGF0IENVUlJF TlRfUk9XIGFuZCBuZXZlciBnb2VzIGJhY2ssIHRodXMKKwkJICogc2V0dGluZyB0aGUgbWFyayBh dCB0aGUgcG9zaXRpb24gaXMgc2FmZS4KKwkJICovCisJCWlmICh3aW5zdGF0ZS0+cnBQYXR0ZXJu ICE9IE5VTEwgJiYgc2Vla3R5cGUgPT0gV0lORE9XX1NFRUtfVEFJTCkKKwkJCW1hcmtfcG9zID0g d2luc3RhdGUtPmZyYW1laGVhZHBvczsKIAkJV2luU2V0TWFya1Bvc2l0aW9uKHdpbm9iaiwgbWFy a19wb3MpOwotCWVjb250ZXh0LT5lY3h0X291dGVydHVwbGUgPSBzbG90OwotCXJldHVybiBFeGVj RXZhbEV4cHIoKEV4cHJTdGF0ZSAqKSBsaXN0X250aCh3aW5vYmotPmFyZ3N0YXRlcywgYXJnbm8p LAotCQkJCQkJZWNvbnRleHQsIGlzbnVsbCk7CisJfQorCXJldHVybiAwOwogCiBvdXRfb2ZfZnJh bWU6CiAJaWYgKGlzb3V0KQogCQkqaXNvdXQgPSB0cnVlOwogCSppc251bGwgPSB0cnVlOwotCXJl dHVybiAoRGF0dW0pIDA7CisJcmV0dXJuIC0xOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMgYi9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZt aml0X2V4cHIuYwppbmRleCAwZTE2MGI4NTAyYy4uZTQyYzVkNjViYjYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2ppdC9s bHZtL2xsdm1qaXRfZXhwci5jCkBAIC0xMjksNiArMTI5LDkgQEAgbGx2bV9jb21waWxlX2V4cHIo RXhwclN0YXRlICpzdGF0ZSkKIAlMTFZNVmFsdWVSZWYgdl9hZ2d2YWx1ZXM7CiAJTExWTVZhbHVl UmVmIHZfYWdnbnVsbHM7CiAKKwkvKiBSUFIgbmF2aWdhdGlvbjogd2hlbiB0cnVlLCBFRU9QX09V VEVSX1ZBUiByZWxvYWRzIGZyb20gZWNvbnRleHQgKi8KKwlib29sCQloYXNfcnByX25hdjsKKwog CWluc3RyX3RpbWUJc3RhcnR0aW1lOwogCWluc3RyX3RpbWUJZGVmb3JtX3N0YXJ0dGltZTsKIAlp bnN0cl90aW1lCWVuZHRpbWU7CkBAIC0yOTgsNiArMzAxLDM2IEBAIGxsdm1fY29tcGlsZV9leHBy KEV4cHJTdGF0ZSAqc3RhdGUpCiAJCQkJCQkJCSAgIEZJRUxETk9fRVhQUkNPTlRFWFRfQUdHTlVM TFMsCiAJCQkJCQkJCSAgICJ2LmVjb250ZXh0LmFnZ251bGxzIik7CiAKKwkvKgorCSAqIFJQUiBu YXZpZ2F0aW9uIG9wY29kZXMgKFBSRVYvTkVYVCkgc3dhcCBlY3h0X291dGVydHVwbGUgdG8gYSBk aWZmZXJlbnQKKwkgKiByb3cgbWlkLWV4cHJlc3Npb24uICBUaGUgSklUIGNvZGUgbG9hZHMgdl9v dXRlcnZhbHVlcyBhbmQgdl9vdXRlcm51bGxzCisJICogb25jZSBpbiB0aGUgZW50cnkgYmxvY2sg YW5kIHJldXNlcyB0aGVtIGZvciBhbGwgRUVPUF9PVVRFUl9WQVIgc3RlcHMuCisJICogQWZ0ZXIg YSBzbG90IHN3YXAsIHRoZXNlIGNhY2hlZCBwb2ludGVycyBiZWNvbWUgc3RhbGUgYmVjYXVzZSB0 aGUgbmV3CisJICogc2xvdCBoYXMgaXRzIG93biB0dHNfdmFsdWVzL3R0c19pc251bGwgYXJyYXlz LgorCSAqCisJICogV2hlbiBSUFIgbmF2aWdhdGlvbiBvcGNvZGVzIGFyZSBwcmVzZW50LCBFRU9Q X09VVEVSX1ZBUiByZWxvYWRzIHRoZQorCSAqIHNsb3QgcG9pbnRlciBmcm9tIGVjb250ZXh0LT5l Y3h0X291dGVydHVwbGUgb24gZXZlcnkgYWNjZXNzIGluc3RlYWQgb2YKKwkgKiB1c2luZyB0aGUg Y2FjaGVkIGVudHJ5LWJsb2NrIHZhbHVlcy4gIFRoaXMgYXZvaWRzIHRoZSBTU0EvUEhJCisJICog Y29tcGxleGl0eSB3aGlsZSBrZWVwaW5nIHRoZSByZXN0IG9mIHRoZSBleHByZXNzaW9uIEpJVC1j b21waWxlZC4KKwkgKiBFeHByZXNzaW9ucyB3aXRob3V0IFJQUiBuYXZpZ2F0aW9uIHVzZSB0aGUg Y2FjaGVkIHZhbHVlcyBhcyBiZWZvcmUuCisJICovCisJaGFzX3Jwcl9uYXYgPSBmYWxzZTsKKwlp ZiAocGFyZW50ICYmIElzQShwYXJlbnQsIFdpbmRvd0FnZ1N0YXRlKSAmJgorCQkoKFdpbmRvd0Fn ZyAqKSBwYXJlbnQtPnBsYW4pLT5ycFBhdHRlcm4gIT0gTlVMTCkKKwl7CisJCWZvciAoaW50IG9w bm8gPSAwOyBvcG5vIDwgc3RhdGUtPnN0ZXBzX2xlbjsgb3BubysrKQorCQl7CisJCQlFeHByRXZh bE9wCW9wY29kZSA9IEV4ZWNFdmFsU3RlcE9wKHN0YXRlLCAmc3RhdGUtPnN0ZXBzW29wbm9dKTsK KworCQkJaWYgKG9wY29kZSA9PSBFRU9QX1JQUl9OQVZfU0VUIHx8CisJCQkJb3Bjb2RlID09IEVF T1BfUlBSX05BVl9SRVNUT1JFKQorCQkJeworCQkJCWhhc19ycHJfbmF2ID0gdHJ1ZTsKKwkJCQli cmVhazsKKwkJCX0KKwkJfQorCX0KKwogCS8qIGFsbG9jYXRlIGJsb2NrcyBmb3IgZWFjaCBvcCB1 cGZyb250LCBzbyB3ZSBjYW4gZG8ganVtcHMgZWFzaWx5ICovCiAJb3BibG9ja3MgPSBwYWxsb2Nf YXJyYXkoTExWTUJhc2ljQmxvY2tSZWYsIHN0YXRlLT5zdGVwc19sZW4pOwogCWZvciAoaW50IG9w bm8gPSAwOyBvcG5vIDwgc3RhdGUtPnN0ZXBzX2xlbjsgb3BubysrKQpAQCAtNDYwLDggKzQ5Mywz NyBAQCBsbHZtX2NvbXBpbGVfZXhwcihFeHByU3RhdGUgKnN0YXRlKQogCQkJCQl9CiAJCQkJCWVs c2UgaWYgKG9wY29kZSA9PSBFRU9QX09VVEVSX1ZBUikKIAkJCQkJewotCQkJCQkJdl92YWx1ZXMg PSB2X291dGVydmFsdWVzOwotCQkJCQkJdl9udWxscyA9IHZfb3V0ZXJudWxsczsKKwkJCQkJCWlm IChoYXNfcnByX25hdikKKwkJCQkJCXsKKwkJCQkJCQkvKgorCQkJCQkJCSAqIFJQUiBuYXZpZ2F0 aW9uIHN3YXBzIGVjeHRfb3V0ZXJ0dXBsZQorCQkJCQkJCSAqIG1pZC1leHByZXNzaW9uLiAgUmVs b2FkIHNsb3QgcG9pbnRlciBmcm9tCisJCQkJCQkJICogZWNvbnRleHQgb24gZXZlcnkgYWNjZXNz IHNvIHdlIHJlYWQgZnJvbSB0aGUKKwkJCQkJCQkgKiBjdXJyZW50IChwb3NzaWJseSBzd2FwcGVk KSBzbG90LgorCQkJCQkJCSAqLworCQkJCQkJCUxMVk1WYWx1ZVJlZiB2X3RtcHNsb3Q7CisKKwkJ CQkJCQl2X3RtcHNsb3QgPSBsX2xvYWRfc3RydWN0X2dlcChiLAorCQkJCQkJCQkJCQkJCQkgIFN0 cnVjdEV4cHJDb250ZXh0LAorCQkJCQkJCQkJCQkJCQkgIHZfZWNvbnRleHQsCisJCQkJCQkJCQkJ CQkJCSAgRklFTEROT19FWFBSQ09OVEVYVF9PVVRFUlRVUExFLAorCQkJCQkJCQkJCQkJCQkgICJ2 X291dGVyc2xvdF9yZWxvYWQiKTsKKwkJCQkJCQl2X3ZhbHVlcyA9IGxfbG9hZF9zdHJ1Y3RfZ2Vw KGIsCisJCQkJCQkJCQkJCQkJCSBTdHJ1Y3RUdXBsZVRhYmxlU2xvdCwKKwkJCQkJCQkJCQkJCQkJ IHZfdG1wc2xvdCwKKwkJCQkJCQkJCQkJCQkJIEZJRUxETk9fVFVQTEVUQUJMRVNMT1RfVkFMVUVT LAorCQkJCQkJCQkJCQkJCQkgInZfb3V0ZXJ2YWx1ZXNfcmVsb2FkIik7CisJCQkJCQkJdl9udWxs cyA9IGxfbG9hZF9zdHJ1Y3RfZ2VwKGIsCisJCQkJCQkJCQkJCQkJCVN0cnVjdFR1cGxlVGFibGVT bG90LAorCQkJCQkJCQkJCQkJCQl2X3RtcHNsb3QsCisJCQkJCQkJCQkJCQkJCUZJRUxETk9fVFVQ TEVUQUJMRVNMT1RfSVNOVUxMLAorCQkJCQkJCQkJCQkJCQkidl9vdXRlcm51bGxzX3JlbG9hZCIp OworCQkJCQkJfQorCQkJCQkJZWxzZQorCQkJCQkJeworCQkJCQkJCXZfdmFsdWVzID0gdl9vdXRl cnZhbHVlczsKKwkJCQkJCQl2X251bGxzID0gdl9vdXRlcm51bGxzOworCQkJCQkJfQogCQkJCQl9 CiAJCQkJCWVsc2UgaWYgKG9wY29kZSA9PSBFRU9QX1NDQU5fVkFSKQogCQkJCQl7CkBAIC0yNDM0 LDYgKzI0OTYsMTggQEAgbGx2bV9jb21waWxlX2V4cHIoRXhwclN0YXRlICpzdGF0ZSkKIAkJCQlM TFZNQnVpbGRCcihiLCBvcGJsb2Nrc1tvcG5vICsgMV0pOwogCQkJCWJyZWFrOwogCisJCQljYXNl IEVFT1BfUlBSX05BVl9TRVQ6CisJCQkJYnVpbGRfRXZhbFhGdW5jKGIsIG1vZCwgIkV4ZWNFdmFs UlBSTmF2U2V0IiwKKwkJCQkJCQkJdl9zdGF0ZSwgb3AsIHZfZWNvbnRleHQpOworCQkJCUxMVk1C dWlsZEJyKGIsIG9wYmxvY2tzW29wbm8gKyAxXSk7CisJCQkJYnJlYWs7CisKKwkJCWNhc2UgRUVP UF9SUFJfTkFWX1JFU1RPUkU6CisJCQkJYnVpbGRfRXZhbFhGdW5jKGIsIG1vZCwgIkV4ZWNFdmFs UlBSTmF2UmVzdG9yZSIsCisJCQkJCQkJCXZfc3RhdGUsIG9wLCB2X2Vjb250ZXh0KTsKKwkJCQlM TFZNQnVpbGRCcihiLCBvcGJsb2Nrc1tvcG5vICsgMV0pOworCQkJCWJyZWFrOworCiAJCQljYXNl IEVFT1BfQUdHX1NUUklDVF9ERVNFUklBTElaRToKIAkJCWNhc2UgRUVPUF9BR0dfREVTRVJJQUxJ WkU6CiAJCQkJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF90eXBl cy5jIGIvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF90eXBlcy5jCmluZGV4IGM4YTFmODQx MjkzLi5lNzhiMzFkNzc1ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWpp dF90eXBlcy5jCisrKyBiL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfdHlwZXMuYwpAQCAt MTY4LDYgKzE2OCw4IEBAIHZvaWQJICAgKnJlZmVyZW5jZWRfZnVuY3Rpb25zW10gPQogCUV4ZWNF dmFsU2NhbGFyQXJyYXlPcCwKIAlFeGVjRXZhbEhhc2hlZFNjYWxhckFycmF5T3AsCiAJRXhlY0V2 YWxTdWJQbGFuLAorCUV4ZWNFdmFsUlBSTmF2U2V0LAorCUV4ZWNFdmFsUlBSTmF2UmVzdG9yZSwK IAlFeGVjRXZhbFN5c1ZhciwKIAlFeGVjRXZhbFdob2xlUm93VmFyLAogCUV4ZWNFdmFsWG1sRXhw ciwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC93aW5kb3dmdW5jcy5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3dpbmRvd2Z1bmNzLmMKaW5kZXggNzhiN2YwNWFiYTIuLjQ2ZTdh MDNhNjY2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvd2luZG93ZnVuY3MuYwor KysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvd2luZG93ZnVuY3MuYwpAQCAtNDEsNyArNDEsNiBA QCBzdGF0aWMgYm9vbCByYW5rX3VwKFdpbmRvd09iamVjdCB3aW5vYmopOwogc3RhdGljIERhdHVt IGxlYWRsYWdfY29tbW9uKEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLAogCQkJCQkJCWJvb2wgZm9y d2FyZCwgYm9vbCB3aXRob2Zmc2V0LCBib29sIHdpdGhkZWZhdWx0KTsKIAotCiAvKgogICogdXRp bGl0eSByb3V0aW5lIGZvciAqX3JhbmsgZnVuY3Rpb25zLgogICovCkBAIC03MjQsMyArNzIzLDEy MSBAQCB3aW5kb3dfbnRoX3ZhbHVlKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlQR19SRVRVUk5fREFU VU0ocmVzdWx0KTsKIH0KKworLyoKKyAqIHByZXYKKyAqIENhdGFsb2cgcGxhY2Vob2xkZXIgZm9y IFJQUidzIFBSRVYgbmF2aWdhdGlvbiBvcGVyYXRvci4KKyAqCisgKiBUaGUgcGFyc2VyIHRyYW5z Zm9ybXMgcHJldigpIGNhbGxzIGluc2lkZSBERUZJTkUgaW50byBSUFJOYXZFeHByIG5vZGVzLAor ICogc28gdGhpcyBmdW5jdGlvbiBpcyBuZXZlciByZWFjaGVkIGR1cmluZyBub3JtYWwgUlBSIGV4 ZWN1dGlvbi4gIEl0IGV4aXN0cworICogb25seSBzbyB0aGF0IHRoZSBwYXJzZXIgY2FuIHJlc29s dmUgdGhlIGZ1bmN0aW9uIG5hbWUgZnJvbSBwZ19wcm9jLgorICogQ2FsbHMgb3V0c2lkZSBERUZJ TkUgYXJlIHJlamVjdGVkIGJ5IHBhcnNlX2Z1bmMuYyAoRVhQUl9LSU5EX1JQUl9ERUZJTkUKKyAq IGNoZWNrKS4gIFRoZSBlcnJvciBiZWxvdyBpcyBhIGRlZmVuc2l2ZSBtZWFzdXJlIGluIGNhc2Ug dGhhdCBjaGVjayBpcworICogYnlwYXNzZWQgKGUuZy4sIGRpcmVjdCBDLWxldmVsIGZ1bmN0aW9u IGludm9jYXRpb24pLgorICovCitEYXR1bQord2luZG93X3ByZXYoUEdfRlVOQ1RJT05fQVJHUykK K3sKKwllcmVwb3J0KEVSUk9SLAorCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQ T1JURUQpLAorCQkJIGVycm1zZygiY2Fubm90IHVzZSBQUkVWKCkgb3V0c2lkZSBhIERFRklORSBj bGF1c2UiKSkpOworCVBHX1JFVFVSTl9OVUxMKCk7CQkJLyogbm90IHJlYWNoZWQgKi8KK30KKwor LyoKKyAqIG5leHQKKyAqIENhdGFsb2cgcGxhY2Vob2xkZXIgZm9yIFJQUidzIE5FWFQgbmF2aWdh dGlvbiBvcGVyYXRvci4KKyAqIFNlZSB3aW5kb3dfcHJldigpIGZvciBkZXRhaWxzLgorICovCitE YXR1bQord2luZG93X25leHQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwllcmVwb3J0KEVSUk9SLAor CQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJIGVycm1zZygi Y2Fubm90IHVzZSBORVhUKCkgb3V0c2lkZSBhIERFRklORSBjbGF1c2UiKSkpOworCVBHX1JFVFVS Tl9OVUxMKCk7CQkJLyogbm90IHJlYWNoZWQgKi8KK30KKworLyoKKyAqIHByZXYodmFsdWUsIG9m ZnNldCkKKyAqIENhdGFsb2cgcGxhY2Vob2xkZXIgZm9yIFJQUidzIFBSRVYgbmF2aWdhdGlvbiBv cGVyYXRvciB3aXRoIG9mZnNldC4KKyAqIFNlZSB3aW5kb3dfcHJldigpIGZvciBkZXRhaWxzLgor ICovCitEYXR1bQord2luZG93X3ByZXZfb2Zmc2V0KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJZXJl cG9ydChFUlJPUiwKKwkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwK KwkJCSBlcnJtc2coImNhbm5vdCB1c2UgUFJFVigpIG91dHNpZGUgYSBERUZJTkUgY2xhdXNlIikp KTsKKwlQR19SRVRVUk5fTlVMTCgpOwkJCS8qIG5vdCByZWFjaGVkICovCit9CisKKy8qCisgKiBu ZXh0KHZhbHVlLCBvZmZzZXQpCisgKiBDYXRhbG9nIHBsYWNlaG9sZGVyIGZvciBSUFIncyBORVhU IG5hdmlnYXRpb24gb3BlcmF0b3Igd2l0aCBvZmZzZXQuCisgKiBTZWUgd2luZG93X3ByZXYoKSBm b3IgZGV0YWlscy4KKyAqLworRGF0dW0KK3dpbmRvd19uZXh0X29mZnNldChQR19GVU5DVElPTl9B UkdTKQoreworCWVyZXBvcnQoRVJST1IsCisJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9U X1NVUFBPUlRFRCksCisJCQkgZXJybXNnKCJjYW5ub3QgdXNlIE5FWFQoKSBvdXRzaWRlIGEgREVG SU5FIGNsYXVzZSIpKSk7CisJUEdfUkVUVVJOX05VTEwoKTsJCQkvKiBub3QgcmVhY2hlZCAqLwor fQorCisvKgorICogZmlyc3QKKyAqIENhdGFsb2cgcGxhY2Vob2xkZXIgZm9yIFJQUidzIEZJUlNU IG5hdmlnYXRpb24gb3BlcmF0b3IuCisgKiBTZWUgd2luZG93X3ByZXYoKSBmb3IgZGV0YWlscy4K KyAqLworRGF0dW0KK3dpbmRvd19maXJzdChQR19GVU5DVElPTl9BUkdTKQoreworCWVyZXBvcnQo RVJST1IsCisJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkg ZXJybXNnKCJjYW5ub3QgdXNlIEZJUlNUKCkgb3V0c2lkZSBhIERFRklORSBjbGF1c2UiKSkpOwor CVBHX1JFVFVSTl9OVUxMKCk7CQkJLyogbm90IHJlYWNoZWQgKi8KK30KKworLyoKKyAqIGxhc3QK KyAqIENhdGFsb2cgcGxhY2Vob2xkZXIgZm9yIFJQUidzIExBU1QgbmF2aWdhdGlvbiBvcGVyYXRv ci4KKyAqIFNlZSB3aW5kb3dfcHJldigpIGZvciBkZXRhaWxzLgorICovCitEYXR1bQord2luZG93 X2xhc3QoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwllcmVwb3J0KEVSUk9SLAorCQkJKGVycmNvZGUo RVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJIGVycm1zZygiY2Fubm90IHVzZSBM QVNUKCkgb3V0c2lkZSBhIERFRklORSBjbGF1c2UiKSkpOworCVBHX1JFVFVSTl9OVUxMKCk7CQkJ Lyogbm90IHJlYWNoZWQgKi8KK30KKworLyoKKyAqIGZpcnN0KHZhbHVlLCBvZmZzZXQpCisgKiBD YXRhbG9nIHBsYWNlaG9sZGVyIGZvciBSUFIncyBGSVJTVCBuYXZpZ2F0aW9uIG9wZXJhdG9yIHdp dGggb2Zmc2V0LgorICogU2VlIHdpbmRvd19wcmV2KCkgZm9yIGRldGFpbHMuCisgKi8KK0RhdHVt Cit3aW5kb3dfZmlyc3Rfb2Zmc2V0KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJZXJlcG9ydChFUlJP UiwKKwkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCSBlcnJt c2coImNhbm5vdCB1c2UgRklSU1QoKSBvdXRzaWRlIGEgREVGSU5FIGNsYXVzZSIpKSk7CisJUEdf UkVUVVJOX05VTEwoKTsJCQkvKiBub3QgcmVhY2hlZCAqLworfQorCisvKgorICogbGFzdCh2YWx1 ZSwgb2Zmc2V0KQorICogQ2F0YWxvZyBwbGFjZWhvbGRlciBmb3IgUlBSJ3MgTEFTVCBuYXZpZ2F0 aW9uIG9wZXJhdG9yIHdpdGggb2Zmc2V0LgorICogU2VlIHdpbmRvd19wcmV2KCkgZm9yIGRldGFp bHMuCisgKi8KK0RhdHVtCit3aW5kb3dfbGFzdF9vZmZzZXQoUEdfRlVOQ1RJT05fQVJHUykKK3sK KwllcmVwb3J0KEVSUk9SLAorCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JU RUQpLAorCQkJIGVycm1zZygiY2Fubm90IHVzZSBMQVNUKCkgb3V0c2lkZSBhIERFRklORSBjbGF1 c2UiKSkpOworCVBHX1JFVFVSTl9OVUxMKCk7CQkJLyogbm90IHJlYWNoZWQgKi8KK30KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3Byb2MuZGF0CmluZGV4IGZhOWFlNzkwODJiLi4wMmI2NjhmYzRjNSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3Byb2MuZGF0CkBAIC0xMTAxNyw2ICsxMTAxNywzMCBAQAogeyBvaWQgPT4gJzMxMTQn LCBkZXNjciA9PiAnZmV0Y2ggdGhlIE50aCByb3cgdmFsdWUnLAogICBwcm9uYW1lID0+ICdudGhf dmFsdWUnLCBwcm9raW5kID0+ICd3JywgcHJvcmV0dHlwZSA9PiAnYW55ZWxlbWVudCcsCiAgIHBy b2FyZ3R5cGVzID0+ICdhbnllbGVtZW50IGludDQnLCBwcm9zcmMgPT4gJ3dpbmRvd19udGhfdmFs dWUnIH0sCit7IG9pZCA9PiAnODEyNicsIGRlc2NyID0+ICdmZXRjaCB0aGUgcHJlY2VkaW5nIHJv dyB2YWx1ZScsCisgIHByb25hbWUgPT4gJ3ByZXYnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3Jl dHR5cGUgPT4gJ2FueWVsZW1lbnQnLAorICBwcm9hcmd0eXBlcyA9PiAnYW55ZWxlbWVudCcsIHBy b3NyYyA9PiAnd2luZG93X3ByZXYnIH0sCit7IG9pZCA9PiAnODEyOCcsIGRlc2NyID0+ICdmZXRj aCB0aGUgTnRoIHByZWNlZGluZyByb3cgdmFsdWUnLAorICBwcm9uYW1lID0+ICdwcmV2JywgcHJv dm9sYXRpbGUgPT4gJ3MnLCBwcm9pc3N0cmljdCA9PiAnZicsIHByb3JldHR5cGUgPT4gJ2FueWVs ZW1lbnQnLAorICBwcm9hcmd0eXBlcyA9PiAnYW55ZWxlbWVudCBpbnQ4JywgcHJvc3JjID0+ICd3 aW5kb3dfcHJldl9vZmZzZXQnIH0sCit7IG9pZCA9PiAnODEyNycsIGRlc2NyID0+ICdmZXRjaCB0 aGUgZm9sbG93aW5nIHJvdyB2YWx1ZScsCisgIHByb25hbWUgPT4gJ25leHQnLCBwcm92b2xhdGls ZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ2FueWVsZW1lbnQnLAorICBwcm9hcmd0eXBlcyA9PiAn YW55ZWxlbWVudCcsIHByb3NyYyA9PiAnd2luZG93X25leHQnIH0sCit7IG9pZCA9PiAnODEyOScs IGRlc2NyID0+ICdmZXRjaCB0aGUgTnRoIGZvbGxvd2luZyByb3cgdmFsdWUnLAorICBwcm9uYW1l ID0+ICduZXh0JywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9pc3N0cmljdCA9PiAnZicsIHByb3Jl dHR5cGUgPT4gJ2FueWVsZW1lbnQnLAorICBwcm9hcmd0eXBlcyA9PiAnYW55ZWxlbWVudCBpbnQ4 JywgcHJvc3JjID0+ICd3aW5kb3dfbmV4dF9vZmZzZXQnIH0sCit7IG9pZCA9PiAnODEzMCcsIGRl c2NyID0+ICdmZXRjaCB0aGUgZmlyc3Qgcm93IHZhbHVlIHdpdGhpbiBtYXRjaCcsCisgIHByb25h bWUgPT4gJ2ZpcnN0JywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBlID0+ICdhbnllbGVt ZW50JywKKyAgcHJvYXJndHlwZXMgPT4gJ2FueWVsZW1lbnQnLCBwcm9zcmMgPT4gJ3dpbmRvd19m aXJzdCcgfSwKK3sgb2lkID0+ICc4MTMyJywgZGVzY3IgPT4gJ2ZldGNoIHRoZSBOdGggcm93IHZh bHVlIHdpdGhpbiBtYXRjaCcsCisgIHByb25hbWUgPT4gJ2ZpcnN0JywgcHJvdm9sYXRpbGUgPT4g J3MnLCBwcm9pc3N0cmljdCA9PiAnZicsIHByb3JldHR5cGUgPT4gJ2FueWVsZW1lbnQnLAorICBw cm9hcmd0eXBlcyA9PiAnYW55ZWxlbWVudCBpbnQ4JywgcHJvc3JjID0+ICd3aW5kb3dfZmlyc3Rf b2Zmc2V0JyB9LAoreyBvaWQgPT4gJzgxMzEnLCBkZXNjciA9PiAnZmV0Y2ggdGhlIGxhc3Qgcm93 IHZhbHVlIHdpdGhpbiBtYXRjaCcsCisgIHByb25hbWUgPT4gJ2xhc3QnLCBwcm92b2xhdGlsZSA9 PiAncycsIHByb3JldHR5cGUgPT4gJ2FueWVsZW1lbnQnLAorICBwcm9hcmd0eXBlcyA9PiAnYW55 ZWxlbWVudCcsIHByb3NyYyA9PiAnd2luZG93X2xhc3QnIH0sCit7IG9pZCA9PiAnODEzMycsIGRl c2NyID0+ICdmZXRjaCB0aGUgTnRoLWZyb20tbGFzdCByb3cgdmFsdWUgd2l0aGluIG1hdGNoJywK KyAgcHJvbmFtZSA9PiAnbGFzdCcsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvaXNzdHJpY3QgPT4g J2YnLCBwcm9yZXR0eXBlID0+ICdhbnllbGVtZW50JywKKyAgcHJvYXJndHlwZXMgPT4gJ2FueWVs ZW1lbnQgaW50OCcsIHByb3NyYyA9PiAnd2luZG93X2xhc3Rfb2Zmc2V0JyB9LAogCiAjIGZ1bmN0 aW9ucyBmb3IgcmFuZ2UgdHlwZXMKIHsgb2lkID0+ICczODMyJywgZGVzY3IgPT4gJ0kvTycsCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oIGIvc3JjL2luY2x1ZGUv ZXhlY3V0b3IvZXhlY0V4cHIuaAppbmRleCBjNjFiM2Q2MjRkNS4uZGI2NmViZTMxM2MgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmgKKysrIGIvc3JjL2luY2x1ZGUv ZXhlY3V0b3IvZXhlY0V4cHIuaApAQCAtMjc0LDYgKzI3NCwxMCBAQCB0eXBlZGVmIGVudW0gRXhw ckV2YWxPcAogCUVFT1BfTUVSR0VfU1VQUE9SVF9GVU5DLAogCUVFT1BfU1VCUExBTiwKIAorCS8q IHJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gKFJQUiBQUkVWL05FWFQpICovCisJRUVPUF9SUFJfTkFW X1NFVCwKKwlFRU9QX1JQUl9OQVZfUkVTVE9SRSwKKwogCS8qIGFnZ3JlZ2F0aW9uIHJlbGF0ZWQg bm9kZXMgKi8KIAlFRU9QX0FHR19TVFJJQ1RfREVTRVJJQUxJWkUsCiAJRUVPUF9BR0dfREVTRVJJ QUxJWkUsCkBAIC02OTUsNiArNjk5LDE4IEBAIHR5cGVkZWYgc3RydWN0IEV4cHJFdmFsU3RlcAog CQkJU3ViUGxhblN0YXRlICpzc3RhdGU7CiAJCX0JCQlzdWJwbGFuOwogCisJCS8qIGZvciBFRU9Q X1JQUl9OQVZfU0VUIC8gRUVPUF9SUFJfTkFWX1JFU1RPUkUgKi8KKwkJc3RydWN0CisJCXsKKwkJ CVdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZTsKKwkJCVJQUk5hdktpbmQJa2luZDsJLyogbmF2aWdh dGlvbiBraW5kIChzaW1wbGUgb3IgY29tcG91bmQpICovCisJCQlEYXR1bQkgICAqb2Zmc2V0X3Zh bHVlOwkvKiBvZmZzZXQgdmFsdWUocyksIG9yIE5VTEwgKi8KKwkJCWJvb2wJICAgKm9mZnNldF9p c251bGw7CS8qIG9mZnNldCBudWxsIGZsYWcocykgKi8KKwkJCS8qIEZvciBjb21wb3VuZCBuYXY6 IG9mZnNldF92YWx1ZVswXSA9IGlubmVyLCBbMV0gPSBvdXRlciAqLworCQkJaW50MTYJCXJlc3Vs dHR5cGxlbjsJLyogUkVTVE9SRTogcmVzdWx0IHR5cGUgbGVuZ3RoICovCisJCQlib29sCQlyZXN1 bHR0eXBieXZhbDsgLyogUkVTVE9SRTogcmVzdWx0IHBhc3MtYnktdmFsdWU/ICovCisJCX0JCQly cHJfbmF2OworCiAJCS8qIGZvciBFRU9QX0FHR18qREVTRVJJQUxJWkUgKi8KIAkJc3RydWN0CiAJ CXsKQEAgLTkwMiw2ICs5MTgsMTAgQEAgZXh0ZXJuIHZvaWQgRXhlY0V2YWxNZXJnZVN1cHBvcnRG dW5jKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAqb3AsCiAJCQkJCQkJCQkgRXhwckNv bnRleHQgKmVjb250ZXh0KTsKIGV4dGVybiB2b2lkIEV4ZWNFdmFsU3ViUGxhbihFeHByU3RhdGUg KnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wLAogCQkJCQkJCUV4cHJDb250ZXh0ICplY29udGV4dCk7 CitleHRlcm4gdm9pZCBFeGVjRXZhbFJQUk5hdlNldChFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZh bFN0ZXAgKm9wLAorCQkJCQkJCSAgRXhwckNvbnRleHQgKmVjb250ZXh0KTsKK2V4dGVybiB2b2lk IEV4ZWNFdmFsUlBSTmF2UmVzdG9yZShFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9w LAorCQkJCQkJCQkgIEV4cHJDb250ZXh0ICplY29udGV4dCk7CiBleHRlcm4gdm9pZCBFeGVjRXZh bFdob2xlUm93VmFyKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAqb3AsCiAJCQkJCQkJ CUV4cHJDb250ZXh0ICplY29udGV4dCk7CiBleHRlcm4gdm9pZCBFeGVjRXZhbFN5c1ZhcihFeHBy U3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv ZXhlY3V0b3IvZXhlY1JQUi5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY1JQUi5oCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43YjJiMGZlYmI3NgotLS0gL2Rldi9u dWxsCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNSUFIuaApAQCAtMCwwICsxLDQwIEBA CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBleGVjUlBSLmgKKyAqCSAgcHJvdG90eXBlcyBm b3IgZXhlY1JQUi5jIChORkEtYmFzZWQgUm93IFBhdHRlcm4gUmVjb2duaXRpb24gZW5naW5lKQor ICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNiwgUG9zdGdyZVNRTCBH bG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwg UmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogc3JjL2luY2x1 ZGUvZXhlY3V0b3IvZXhlY1JQUi5oCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpZm5k ZWYgRVhFQ1JQUl9ICisjZGVmaW5lIEVYRUNSUFJfSAorCisjaW5jbHVkZSAibm9kZXMvZXhlY25v ZGVzLmgiCisjaW5jbHVkZSAid2luZG93YXBpLmgiCisKKy8qIE5GQSBjb250ZXh0IG1hbmFnZW1l bnQgKi8KK2V4dGVybiBSUFJORkFDb250ZXh0ICpFeGVjUlBSU3RhcnRDb250ZXh0KFdpbmRvd0Fn Z1N0YXRlICp3aW5zdGF0ZSwKKwkJCQkJCQkJCQkgIGludDY0IHN0YXJ0UG9zKTsKK2V4dGVybiBS UFJORkFDb250ZXh0ICpFeGVjUlBSR2V0SGVhZENvbnRleHQoV2luZG93QWdnU3RhdGUgKndpbnN0 YXRlLAorCQkJCQkJCQkJCQlpbnQ2NCBwb3MpOworZXh0ZXJuIHZvaWQgRXhlY1JQUkZyZWVDb250 ZXh0KFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4KTsKKworLyog TkZBIHByb2Nlc3NpbmcgKi8KK2V4dGVybiB2b2lkIEV4ZWNSUFJQcm9jZXNzUm93KFdpbmRvd0Fn Z1N0YXRlICp3aW5zdGF0ZSwgaW50NjQgY3VycmVudFBvcywKKwkJCQkJCQkgIGJvb2wgaGFzTGlt aXRlZEZyYW1lLCBpbnQ2NCBmcmFtZU9mZnNldCk7CitleHRlcm4gdm9pZCBFeGVjUlBSQ2xlYW51 cERlYWRDb250ZXh0cyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsCisJCQkJCQkJCQkgICBSUFJO RkFDb250ZXh0ICpleGNsdWRlQ3R4KTsKK2V4dGVybiB2b2lkIEV4ZWNSUFJGaW5hbGl6ZUFsbENv bnRleHRzKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgaW50NjQgbGFzdFBvcyk7CisKKy8qIE5G QSBzdGF0aXN0aWNzICovCitleHRlcm4gdm9pZCBFeGVjUlBSUmVjb3JkQ29udGV4dFN1Y2Nlc3Mo V2luZG93QWdnU3RhdGUgKndpbnN0YXRlLAorCQkJCQkJCQkJCWludDY0IG1hdGNoTGVuKTsKK2V4 dGVybiB2b2lkIEV4ZWNSUFJSZWNvcmRDb250ZXh0RmFpbHVyZShXaW5kb3dBZ2dTdGF0ZSAqd2lu c3RhdGUsCisJCQkJCQkJCQkJaW50NjQgZmFpbGVkTGVuKTsKKworI2VuZGlmCQkJCQkJCS8qIEVY RUNSUFJfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3Ivbm9kZVdpbmRvd0Fn Zy5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5oCmluZGV4IGFkYTRhMWM0 NThjLi5mNmY2NjQ1MTMxYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3Ivbm9kZVdp bmRvd0FnZy5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuaApAQCAt MjAsNCArMjAsNyBAQCBleHRlcm4gV2luZG93QWdnU3RhdGUgKkV4ZWNJbml0V2luZG93QWdnKFdp bmRvd0FnZyAqbm9kZSwgRVN0YXRlICplc3RhdGUsIGludCBlZgogZXh0ZXJuIHZvaWQgRXhlY0Vu ZFdpbmRvd0FnZyhXaW5kb3dBZ2dTdGF0ZSAqbm9kZSk7CiBleHRlcm4gdm9pZCBFeGVjUmVTY2Fu V2luZG93QWdnKFdpbmRvd0FnZ1N0YXRlICpub2RlKTsKIAorLyogUlBSIG5hdmlnYXRpb24gc3Vw cG9ydCBmb3IgZXhwcmVzc2lvbiBldmFsdWF0aW9uIG9wY29kZXMgKi8KK2V4dGVybiBUdXBsZVRh YmxlU2xvdCAqRXhlY1JQUk5hdkdldFNsb3QoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQ2 NCBwb3MpOworCiAjZW5kaWYJCQkJCQkJLyogTk9ERVdJTkRPV0FHR19IICovCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNu b2Rlcy5oCmluZGV4IDEzMzU5MTgwZDI1Li4wY2IwMWJhYTk0OSAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVz LmgKQEAgLTM4LDYgKzM4LDkgQEAKICNpbmNsdWRlICJub2Rlcy9wbGFubm9kZXMuaCIKICNpbmNs dWRlICJwYXJ0aXRpb25pbmcvcGFydGRlZnMuaCIKICNpbmNsdWRlICJzdG9yYWdlL2J1Zi5oIgor I2luY2x1ZGUgInN0b3JhZ2UvY29uZGl0aW9uX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAidXRpbHMv aHNlYXJjaC5oIgorI2luY2x1ZGUgInV0aWxzL3F1ZXJ5ZW52aXJvbm1lbnQuaCIKICNpbmNsdWRl ICJ1dGlscy9yZWx0cmlnZ2VyLmgiCiAjaW5jbHVkZSAidXRpbHMvdHlwY2FjaGUuaCIKIApAQCAt MjUyNCw2ICsyNTI3LDcxIEBAIHR5cGVkZWYgZW51bSBXaW5kb3dBZ2dTdGF0dXMKIAkJCQkJCQkJ CSAqIHR1cGxlcyBkdXJpbmcgc3Bvb2wgKi8KIH0gV2luZG93QWdnU3RhdHVzOwogCisvKiBSUFIg cmVkdWNlZCBmcmFtZSBzdGF0ZXMgcmV0dXJuZWQgYnkgZ2V0X3JlZHVjZWRfZnJhbWVfc3RhdHVz KCkgKi8KKyNkZWZpbmUJUkZfTk9UX0RFVEVSTUlORUQJMAkvKiBub3QgeWV0IHByb2Nlc3NlZCAq LworI2RlZmluZQlSRl9GUkFNRV9IRUFECQkxCS8qIHN0YXJ0IHJvdyBvZiBhIG1hdGNoICovCisj ZGVmaW5lCVJGX1NLSVBQRUQJCQkyCS8qIGludGVyaW9yIHJvdyBvZiBhIG1hdGNoICovCisjZGVm aW5lCVJGX1VOTUFUQ0hFRAkJMwkvKiBubyBtYXRjaCBhdCB0aGlzIHJvdyAqLworI2RlZmluZQlS Rl9FTVBUWV9NQVRDSAkJNAkvKiBlbXB0eSBtYXRjaCAoMCByb3dzKTsgdHJlYXRlZCBhcyB1bm1h dGNoZWQgKi8KKworLyoKKyAqIFJQUk5GQVN0YXRlIC0gc2luZ2xlIE5GQSBzdGF0ZSBmb3IgcGF0 dGVybiBtYXRjaGluZworICoKKyAqIGNvdW50c1tdIHRyYWNrcyByZXBldGl0aW9uIGNvdW50cyBh dCBlYWNoIG5lc3RpbmcgZGVwdGguCisgKgorICogaXNBYnNvcmJhYmxlIHRyYWNrcyBpZiBzdGF0 ZSBpcyBpbiBhYnNvcmJhYmxlIHJlZ2lvbiAoQUJTT1JCQUJMRV9CUkFOQ0gpLgorICogTW9ub3Rv bmljIHByb3BlcnR5OiBvbmNlIGZhbHNlLCBzdGF5cyBmYWxzZSAoY2FuJ3QgcmUtZW50ZXIgcmVn aW9uKS4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgUlBSTkZBU3RhdGUKK3sKKwlzdHJ1Y3QgUlBSTkZB U3RhdGUgKm5leHQ7CS8qIG5leHQgc3RhdGUgaW4gbGlua2VkIGxpc3QgKi8KKwlpbnQxNgkJZWxl bUlkeDsJCS8qIGN1cnJlbnQgcGF0dGVybiBlbGVtZW50IGluZGV4ICovCisJYm9vbAkJaXNBYnNv cmJhYmxlOwkvKiB0cnVlIGlmIHN0YXRlIGlzIGluIGFic29yYmFibGUgcmVnaW9uICovCisJaW50 MzIJCWNvdW50c1tGTEVYSUJMRV9BUlJBWV9NRU1CRVJdOwkvKiByZXBldGl0aW9uIGNvdW50cyBi eSBkZXB0aCAqLworfSBSUFJORkFTdGF0ZTsKKworLyoKKyAqIFJQUk5GQUNvbnRleHQgLSBjb250 ZXh0IGZvciBORkEgcGF0dGVybiBtYXRjaGluZyBleGVjdXRpb24KKyAqCisgKiBUd28tZmxhZyBh YnNvcnB0aW9uIGRlc2lnbjoKKyAqICAgaGFzQWJzb3JiYWJsZVN0YXRlOiBjYW4gdGhpcyBjb250 ZXh0IGFic29yYiBvdGhlcnM/ICg+PTEgYWJzb3JiYWJsZSBzdGF0ZSkKKyAqICAgICAtIE1vbm90 b25pYzogdHJ1ZS0+ZmFsc2Ugb25seSwgY2Fubm90IHJlY292ZXIgb25jZSBmYWxzZQorICogICAg IC0gVXNlZCB0byBza2lwIGFic29ycHRpb24gYXR0ZW1wdHMgb25jZSBhbGwgYWJzb3JiYWJsZSBz dGF0ZXMgYXJlIGdvbmUKKyAqICAgYWxsU3RhdGVzQWJzb3JiYWJsZTogY2FuIHRoaXMgY29udGV4 dCBiZSBhYnNvcmJlZD8gKEFMTCBzdGF0ZXMgYWJzb3JiYWJsZSkKKyAqICAgICAtIER5bmFtaWM6 IGNhbiBjaGFuZ2UgZmFsc2UtPnRydWUgKHdoZW4gbm9uLWFic29yYmFibGUgc3RhdGVzIGRpZSkK KyAqICAgICAtIFVzZWQgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgY29udGV4dCBpcyBlbGlnaWJsZSBm b3IgYWJzb3JwdGlvbgorICovCit0eXBlZGVmIHN0cnVjdCBSUFJORkFDb250ZXh0Cit7CisJc3Ry dWN0IFJQUk5GQUNvbnRleHQgKm5leHQ7IC8qIG5leHQgY29udGV4dCBpbiBsaW5rZWQgbGlzdCAq LworCXN0cnVjdCBSUFJORkFDb250ZXh0ICpwcmV2OyAvKiBwcmV2aW91cyBjb250ZXh0IChmb3Ig cmV2ZXJzZSB0cmF2ZXJzYWwpICovCisJUlBSTkZBU3RhdGUgKnN0YXRlczsJCS8qIGFjdGl2ZSBz dGF0ZXMgKGxpbmtlZCBsaXN0KSAqLworCisJaW50NjQJCW1hdGNoU3RhcnRSb3c7CS8qIHJvdyB3 aGVyZSBtYXRjaCBzdGFydGVkICovCisJaW50NjQJCW1hdGNoRW5kUm93OwkvKiByb3cgd2hlcmUg bWF0Y2ggZW5kZWQgKC0xID0gbm8gbWF0Y2gpICovCisJaW50NjQJCWxhc3RQcm9jZXNzZWRSb3c7 CS8qIGxhc3Qgcm93IHByb2Nlc3NlZCAoZm9yIGZhaWwgZGVwdGgpICovCisJUlBSTkZBU3RhdGUg Km1hdGNoZWRTdGF0ZTsJLyogRklOIHN0YXRlIGZvciBncmVlZHkgZmFsbGJhY2sgKGNsb25lZCkg Ki8KKworCS8qIFR3by1mbGFnIGFic29ycHRpb24gb3B0aW1pemF0aW9uICovCisJYm9vbAkJaGFz QWJzb3JiYWJsZVN0YXRlOyAvKiBjYW4gYWJzb3JiIG90aGVycyAoPj0xIGFic29yYmFibGUKKwkJ CQkJCQkJCSAqIHN0YXRlKSAqLworCWJvb2wJCWFsbFN0YXRlc0Fic29yYmFibGU7CS8qIGNhbiBi ZSBhYnNvcmJlZCAoQUxMIHN0YXRlcworCQkJCQkJCQkJCSAqIGFic29yYmFibGUpICovCit9IFJQ Uk5GQUNvbnRleHQ7CisKKy8qCisgKiBORkFMZW5ndGhTdGF0cworICoKKyAqIFN0YXRpc3RpY3Mg Zm9yIGxlbmd0aCBtZWFzdXJlbWVudHMgKG1pbi9tYXgvdG90YWwpIHVzZWQgZm9yIGNvbXB1dGlu ZworICogYXZlcmFnZSBsZW5ndGhzIGluIEVYUExBSU4gQU5BTFlaRSBvdXRwdXQuCisgKi8KK3R5 cGVkZWYgc3RydWN0IE5GQUxlbmd0aFN0YXRzCit7CisJaW50NjQJCW1pbjsJCQkvKiBtaW5pbXVt IGxlbmd0aCAqLworCWludDY0CQltYXg7CQkJLyogbWF4aW11bSBsZW5ndGggKi8KKwlpbnQ2NAkJ dG90YWw7CQkJLyogdG90YWwgbGVuZ3RoIChmb3IgY29tcHV0aW5nIGF2ZXJhZ2UpICovCit9IE5G QUxlbmd0aFN0YXRzOworCiB0eXBlZGVmIHN0cnVjdCBXaW5kb3dBZ2dTdGF0ZQogewogCVNjYW5T dGF0ZQlzczsJCQkJLyogaXRzIGZpcnN0IGZpZWxkIGlzIE5vZGVUYWcgKi8KQEAgLTI1ODMsNiAr MjY1MSw0OSBAQCB0eXBlZGVmIHN0cnVjdCBXaW5kb3dBZ2dTdGF0ZQogCWludDY0CQlncm91cGhl YWRwb3M7CS8qIGN1cnJlbnQgcm93J3MgcGVlciBncm91cCBoZWFkIHBvc2l0aW9uICovCiAJaW50 NjQJCWdyb3VwdGFpbHBvczsJLyogIiAiICIgIiB0YWlsIHBvc2l0aW9uIChncm91cCBlbmQrMSkg Ki8KIAorCS8qIHRoZXNlIGZpZWxkcyBhcmUgdXNlZCBpbiBSb3cgcGF0dGVybiByZWNvZ25pdGlv bjogKi8KKwlSUFNraXBUbwlycFNraXBUbzsJCS8qIFJvdyBQYXR0ZXJuIFNraXAgVG8gdHlwZSAq LworCXN0cnVjdCBSUFJQYXR0ZXJuICpycFBhdHRlcm47CS8qIGNvbXBpbGVkIHBhdHRlcm4gZm9y IE5GQSBleGVjdXRpb24gKi8KKwlMaXN0CSAgICpkZWZpbmVWYXJpYWJsZUxpc3Q7IC8qIGxpc3Qg b2Ygcm93IHBhdHRlcm4gZGVmaW5pdGlvbgorCQkJCQkJCQkJICogdmFyaWFibGVzIChsaXN0IG9m IFN0cmluZykgKi8KKwlMaXN0CSAgICpkZWZpbmVDbGF1c2VMaXN0OwkvKiBleHByZXNzaW9uIGZv ciByb3cgcGF0dGVybiBkZWZpbml0aW9uCisJCQkJCQkJCQkgKiBzZWFyY2ggY29uZGl0aW9ucyBF eHByU3RhdGUgbGlzdCAqLworCVJQUk5GQUNvbnRleHQgKm5mYUNvbnRleHQ7CS8qIGFjdGl2ZSBt YXRjaGluZyBjb250ZXh0cyAoaGVhZCkgKi8KKwlSUFJORkFDb250ZXh0ICpuZmFDb250ZXh0VGFp bDsJLyogdGFpbCBvZiBhY3RpdmUgY29udGV4dHMgKGZvciByZXZlcnNlCisJCQkJCQkJCQkgKiB0 cmF2ZXJzYWwpICovCisJUlBSTkZBQ29udGV4dCAqbmZhQ29udGV4dEZyZWU7CS8qIHJlY3ljbGVk IE5GQSBjb250ZXh0IG5vZGVzICovCisJUlBSTkZBU3RhdGUgKm5mYVN0YXRlRnJlZTsJLyogcmVj eWNsZWQgTkZBIHN0YXRlIG5vZGVzICovCisJU2l6ZQkJbmZhU3RhdGVTaXplOwkvKiBwcmUtY2Fs Y3VsYXRlZCBSUFJORkFTdGF0ZSBzaXplICovCisJYm9vbAkgICAqbmZhVmFyTWF0Y2hlZDsJLyog cGVyLXJvdyBjYWNoZTogdmFyTWF0Y2hlZFt2YXJJZF0gZm9yIHZhcklkCisJCQkJCQkJCSAqIDwg bnVtRGVmaW5lcyAqLworCUJpdG1hcHNldCAgKmRlZmluZU1hdGNoU3RhcnREZXBlbmRlbnQ7CS8q IERFRklORSB2YXJzIG5lZWRpbmcgcGVyLWNvbnRleHQKKwkJCQkJCQkJCQkJICogZXZhbHVhdGlv bgorCQkJCQkJCQkJCQkgKiAobWF0Y2hfc3RhcnQtZGVwZW5kZW50KSAqLworCWJpdG1hcHdvcmQg Km5mYVZpc2l0ZWRFbGVtczsJLyogZWxlbUlkeCB2aXNpdGVkIGJpdG1hcCBmb3IgY3ljbGUKKwkJ CQkJCQkJCSAqIGRldGVjdGlvbiAqLworCWludAkJCW5mYVZpc2l0ZWROV29yZHM7CS8qIG51bWJl ciBvZiBiaXRtYXB3b3JkcyBpbgorCQkJCQkJCQkJICogbmZhVmlzaXRlZEVsZW1zICovCisJaW50 NjQJCW5mYUxhc3RQcm9jZXNzZWRSb3c7CS8qIGxhc3Qgcm93IHByb2Nlc3NlZCBieSBORkEgKC0x ID0KKwkJCQkJCQkJCQkgKiBub25lKSAqLworCisJLyogTkZBIHN0YXRpc3RpY3MgZm9yIEVYUExB SU4gQU5BTFlaRSAqLworCWludDY0CQluZmFTdGF0ZXNBY3RpdmU7CS8qIGN1cnJlbnQgYWN0aXZl IHN0YXRlcyAoaW50ZXJuYWwpICovCisJaW50NjQJCW5mYVN0YXRlc01heDsJLyogcGVhayBhY3Rp dmUgc3RhdGVzICovCisJaW50NjQJCW5mYVN0YXRlc1RvdGFsQ3JlYXRlZDsJLyogdG90YWwgc3Rh dGVzIGFsbG9jYXRlZCAqLworCWludDY0CQluZmFTdGF0ZXNNZXJnZWQ7CS8qIHN0YXRlcyBtZXJn ZWQgKGRlZHVwbGljYXRlZCkgKi8KKwlpbnQ2NAkJbmZhQ29udGV4dHNBY3RpdmU7CS8qIGN1cnJl bnQgYWN0aXZlIGNvbnRleHRzIChpbnRlcm5hbCkgKi8KKwlpbnQ2NAkJbmZhQ29udGV4dHNNYXg7 IC8qIHBlYWsgYWN0aXZlIGNvbnRleHRzICovCisJaW50NjQJCW5mYUNvbnRleHRzVG90YWxDcmVh dGVkOwkvKiB0b3RhbCBjb250ZXh0cyBhbGxvY2F0ZWQgKi8KKwlpbnQ2NAkJbmZhQ29udGV4dHNB YnNvcmJlZDsJLyogY29udGV4dHMgYWJzb3JiZWQgKG9wdGltaXphdGlvbikgKi8KKwlpbnQ2NAkJ bmZhQ29udGV4dHNTa2lwcGVkOyAvKiBjb250ZXh0cyBza2lwcGVkIChTS0lQIFBBU1QgTEFTVCBS T1cpICovCisJaW50NjQJCW5mYUNvbnRleHRzUHJ1bmVkOwkvKiBjb250ZXh0cyBwcnVuZWQgb24g Zmlyc3Qgcm93ICovCisJaW50NjQJCW5mYU1hdGNoZXNTdWNjZWVkZWQ7CS8qIHN1Y2Nlc3NmdWwg cGF0dGVybiBtYXRjaGVzICovCisJaW50NjQJCW5mYU1hdGNoZXNGYWlsZWQ7CS8qIGZhaWxlZCBw YXR0ZXJuIG1hdGNoZXMgKi8KKwlORkFMZW5ndGhTdGF0cyBuZmFNYXRjaExlbjsgLyogc3VjY2Vz c2Z1bCBtYXRjaCBsZW5ndGggc3RhdHMgKi8KKwlORkFMZW5ndGhTdGF0cyBuZmFGYWlsTGVuOwkv KiBtaXNtYXRjaCBsZW5ndGggc3RhdHMgKi8KKwlORkFMZW5ndGhTdGF0cyBuZmFBYnNvcmJlZExl bjsJLyogYWJzb3JiZWQgY29udGV4dCBsZW5ndGggc3RhdHMgKi8KKwlORkFMZW5ndGhTdGF0cyBu ZmFTa2lwcGVkTGVuOwkvKiBza2lwcGVkIGNvbnRleHQgbGVuZ3RoIHN0YXRzICovCisKIAlNZW1v cnlDb250ZXh0IHBhcnRjb250ZXh0OwkvKiBjb250ZXh0IGZvciBwYXJ0aXRpb24tbGlmZXNwYW4g ZGF0YSAqLwogCU1lbW9yeUNvbnRleHQgYWdnY29udGV4dDsJLyogc2hhcmVkIGNvbnRleHQgZm9y IGFnZ3JlZ2F0ZSB3b3JraW5nIGRhdGEgKi8KIAlNZW1vcnlDb250ZXh0IGN1cmFnZ2NvbnRleHQ7 CS8qIGN1cnJlbnQgYWdncmVnYXRlJ3Mgd29ya2luZyBkYXRhICovCkBAIC0yNjEwLDYgKzI3MjEs MjUgQEAgdHlwZWRlZiBzdHJ1Y3QgV2luZG93QWdnU3RhdGUKIAlUdXBsZVRhYmxlU2xvdCAqYWdn X3Jvd19zbG90OwogCVR1cGxlVGFibGVTbG90ICp0ZW1wX3Nsb3RfMTsKIAlUdXBsZVRhYmxlU2xv dCAqdGVtcF9zbG90XzI7CisKKwkvKiBSUFIgbmF2aWdhdGlvbiAqLworCVJQUk5hdk9mZnNldEtp bmQgbmF2TWF4T2Zmc2V0S2luZDsJLyogc3RhdHVzIG9mIG5hdk1heE9mZnNldCAqLworCWludDY0 CQluYXZNYXhPZmZzZXQ7CS8qIG1heCBiYWNrd2FyZCBuYXYgb2Zmc2V0ICh3aGVuIEZJWEVEKSAq LworCWJvb2wJCWhhc0ZpcnN0TmF2OwkvKiBGSVJTVCgpIHByZXNlbnQgaW4gREVGSU5FICovCisJ UlBSTmF2T2Zmc2V0S2luZCBuYXZGaXJzdE9mZnNldEtpbmQ7CS8qIHN0YXR1cyBvZiBuYXZGaXJz dE9mZnNldCAqLworCWludDY0CQluYXZGaXJzdE9mZnNldDsgLyogbWluIEZJUlNUKCkgb2Zmc2V0 ICh3aGVuIEZJWEVEKSAqLworCXN0cnVjdCBXaW5kb3dPYmplY3REYXRhICpuYXZfd2lub2JqOwkv KiB3aW5vYmogZm9yIFJQUiBuYXYgZmV0Y2ggKi8KKwlpbnQ2NAkJbmF2X3Nsb3RfcG9zOwkvKiBw b3NpdGlvbiBjYWNoZWQgaW4gbmF2X3Nsb3QsIG9yIC0xICovCisJVHVwbGVUYWJsZVNsb3QgKm5h dl9zbG90OwkvKiBzbG90IGZvciBQUkVWL05FWFQvRklSU1QvTEFTVCB0YXJnZXQgcm93ICovCisJ VHVwbGVUYWJsZVNsb3QgKm5hdl9zYXZlZF9vdXRlcnR1cGxlOwkvKiBzYXZlZCBzbG90IGR1cmlu ZyBuYXYgc3dhcCAqLworCVR1cGxlVGFibGVTbG90ICpuYXZfbnVsbF9zbG90OwkvKiBhbGwgTlVM TCBzbG90ICovCisJaW50NjQJCW5hdl9tYXRjaF9zdGFydDsJLyogbWF0Y2hfc3RhcnQgZm9yIEZJ UlNUL0xBU1QgbmF2ICovCisKKwkvKiBSUFIgY3VycmVudCBtYXRjaCByZXN1bHQgKi8KKwlib29s CQlycHJfbWF0Y2hfdmFsaWQ7CS8qIHRydWUgaWYgYSBtYXRjaCByZXN1bHQgaXMgc2V0ICovCisJ Ym9vbAkJcnByX21hdGNoX21hdGNoZWQ7CS8qIHRydWUgaWYgdGhlIHJlc3VsdCB3YXMgYSBtYXRj aCAqLworCWludDY0CQlycHJfbWF0Y2hfc3RhcnQ7CS8qIHN0YXJ0IHBvc2l0aW9uIG9mIHRoZSBt YXRjaCByZXN1bHQgKi8KKwlpbnQ2NAkJcnByX21hdGNoX2xlbmd0aDsJLyogbnVtYmVyIG9mIHJv d3MgbWF0Y2hlZCAoMCA9IGVtcHR5KSAqLwogfSBXaW5kb3dBZ2dTdGF0ZTsKIAogLyogLS0tLS0t LS0tLS0tLS0tLQotLSAKMi40My4wCgo= ----Next_Part(Sat_May__2_14_03_04_2026_790)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v47-0006-Row-pattern-recognition-patch-docs.patch" RnJvbSA1OTdjY2QyNGU0MDU5NDllNWQzMjBlZWUwY2IxZjcyNjJhZDMwNjhlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYXRzdW8gSXNoaWkgPGlzaGlpQHBvc3RncmVzcWwub3JnPgpE YXRlOiBTYXQsIDIgTWF5IDIwMjYgMTM6NDA6MjkgKzA5MDAKU3ViamVjdDogW1BBVENIIHY0NyA2 LzldIFJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIHBhdGNoIChkb2NzKS4KCi0tLQogZG9jL3NyYy9z Z21sL2FkdmFuY2VkLnNnbWwgICAgICAgICB8IDE0NSArKysrKysrKysrKysrKysrKysrKysrKysr KysrLQogZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy13aW5kb3cuc2dtbCB8IDEyMSArKysrKysrKysr KysrKysrKysrKysrKysKIGRvYy9zcmMvc2dtbC9yZWYvc2VsZWN0LnNnbWwgICAgICAgfCAgOTEg KysrKysrKysrKysrKysrKystCiAzIGZpbGVzIGNoYW5nZWQsIDM1MCBpbnNlcnRpb25zKCspLCA3 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9hZHZhbmNlZC5zZ21sIGIv ZG9jL3NyYy9zZ21sL2FkdmFuY2VkLnNnbWwKaW5kZXggMzI4NmMyY2YwYjIuLjExYzI0MTZkZjUx IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvYWR2YW5jZWQuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvYWR2YW5jZWQuc2dtbApAQCAtNTUyLDEzICs1NTIsMTUwIEBAIFdIRVJFIHBvcyAmbHQ7IDM7 CiAgICAgdHdvIHJvd3MgZm9yIGVhY2ggZGVwYXJ0bWVudCkuCiAgICA8L3BhcmE+CiAKKyAgIDxw YXJhPgorICAgIFJvdyBQYXR0ZXJuIENvbW1vbiBTeW50YXggY2FuIGJlIHVzZWQgdG8gcGVyZm9y bSBSb3cgUGF0dGVybiBSZWNvZ25pdGlvbgorICAgIGluIGEgcXVlcnkuIFRoZSBSb3cgUGF0dGVy biBDb21tb24gU3ludGF4IGluY2x1ZGVzIHR3byBzdWIKKyAgICBjbGF1c2VzOiA8bGl0ZXJhbD5E RUZJTkU8L2xpdGVyYWw+CisgICAgYW5kIDxsaXRlcmFsPlBBVFRFUk48L2xpdGVyYWw+LiA8bGl0 ZXJhbD5ERUZJTkU8L2xpdGVyYWw+IGRlZmluZXMKKyAgICByb3cgcGF0dGVybiB2YXJpYWJsZXMg YWxvbmcgd2l0aCBhbiBleHByZXNzaW9uLiBUaGUgZXhwcmVzc2lvbiBtdXN0IGJlIGEKKyAgICBs b2dpY2FsIGV4cHJlc3Npb24sIHdoaWNoIG1lYW5zIGl0IG11c3QKKyAgICByZXR1cm4gPGxpdGVy YWw+VFJVRTwvbGl0ZXJhbD4sIDxsaXRlcmFsPkZBTFNFPC9saXRlcmFsPgorICAgIG9yIDxsaXRl cmFsPk5VTEw8L2xpdGVyYWw+LiBUaGUgZXhwcmVzc2lvbiBtYXkgY29tcHJpc2UgY29sdW1uIHJl ZmVyZW5jZXMKKyAgICBhbmQgZnVuY3Rpb25zLiBXaW5kb3cgZnVuY3Rpb25zLCBhZ2dyZWdhdGUg ZnVuY3Rpb25zIGFuZCBzdWJxdWVyaWVzIGFyZQorICAgIG5vdCBhbGxvd2VkLiBBbiBleGFtcGxl IG9mIDxsaXRlcmFsPkRFRklORTwvbGl0ZXJhbD4gaXMgYXMgZm9sbG93cy4KKworPHByb2dyYW1s aXN0aW5nPgorREVGSU5FCisgTE9XUFJJQ0UgQVMgcHJpY2UgJmx0Oz0gMTAwLAorIFVQIEFTIHBy aWNlICZndDsgUFJFVihwcmljZSksCisgRE9XTiBBUyBwcmljZSAmbHQ7IFBSRVYocHJpY2UpCis8 L3Byb2dyYW1saXN0aW5nPgorCisgICAgTm90ZSB0aGF0IDxmdW5jdGlvbj5QUkVWPC9mdW5jdGlv bj4gcmV0dXJucyB0aGUgPGxpdGVyYWw+cHJpY2U8L2xpdGVyYWw+CisgICAgY29sdW1uIGluIHRo ZSBwcmV2aW91cyByb3cgaWYgaXQncyBjYWxsZWQgaW4gYSBjb250ZXh0IG9mIHJvdyBwYXR0ZXJu CisgICAgcmVjb2duaXRpb24uIFRodXMgaW4gdGhlIHNlY29uZCBsaW5lIHRoZSByb3cgcGF0dGVy biB2YXJpYWJsZSAiVVAiCisgICAgaXMgPGxpdGVyYWw+VFJVRTwvbGl0ZXJhbD4gd2hlbiB0aGUg cHJpY2UgY29sdW1uIGluIHRoZSBjdXJyZW50IHJvdyBpcworICAgIGdyZWF0ZXIgdGhhbiB0aGUg cHJpY2UgY29sdW1uIGluIHRoZSBwcmV2aW91cyByb3cuIExpa2V3aXNlLCAiRE9XTiIKKyAgICBp cyA8bGl0ZXJhbD5UUlVFPC9saXRlcmFsPiB3aGVuIHRoZQorICAgIDxsaXRlcmFsPnByaWNlPC9s aXRlcmFsPiBjb2x1bW4gaW4gdGhlIGN1cnJlbnQgcm93IGlzIGxvd2VyIHRoYW4KKyAgICB0aGUg PGxpdGVyYWw+cHJpY2U8L2xpdGVyYWw+IGNvbHVtbiBpbiB0aGUgcHJldmlvdXMgcm93LgorICAg PC9wYXJhPgorICAgPHBhcmE+CisgICAgT25jZSA8bGl0ZXJhbD5ERUZJTkU8L2xpdGVyYWw+IGV4 aXN0cywgPGxpdGVyYWw+UEFUVEVSTjwvbGl0ZXJhbD4gY2FuIGJlCisgICAgdXNlZC4gPGxpdGVy YWw+UEFUVEVSTjwvbGl0ZXJhbD4gZGVmaW5lcyBhIHNlcXVlbmNlIG9mIHJvd3MgdGhhdCBzYXRp c2ZpZXMKKyAgICBjb25kaXRpb25zIGRlZmluZWQgaW4gdGhlIDxsaXRlcmFsPkRFRklORTwvbGl0 ZXJhbD4gY2xhdXNlLiAgRm9yIGV4YW1wbGUKKyAgICB0aGUgZm9sbG93aW5nIDxsaXRlcmFsPlBB VFRFUk48L2xpdGVyYWw+IGRlZmluZXMgYSBzZXF1ZW5jZSBvZiByb3dzIHN0YXJ0aW5nCisgICAg d2l0aCBhIHJvdyBzYXRpc2Z5aW5nICJMT1dQUklDRSIsIHRoZW4gb25lIG9yIG1vcmUgcm93cyBz YXRpc2Z5aW5nCisgICAgIlVQIiBhbmQgZmluYWxseSBvbmUgb3IgbW9yZSByb3dzIHNhdGlzZnlp bmcgIkRPV04iLiBQYXR0ZXJuIHZhcmlhYmxlcyBjYW4KKyAgICBiZSBmb2xsb3dlZCBieSBxdWFu dGlmaWVyczogIisiIG1lYW5zIG9uZSBvciBtb3JlIG1hdGNoZXMsICIqIiBtZWFucyB6ZXJvCisg ICAgb3IgbW9yZSBtYXRjaGVzLCAiPyIgbWVhbnMgemVybyBvciBvbmUgbWF0Y2gsICJ7bn0iIChu ICZndDsgMCkgbWVhbnMgZXhhY3RseQorICAgIG4gbWF0Y2hlcywgIntuLH0iIChuICZndDs9IDAp IG1lYW5zIGF0IGxlYXN0IG4gbWF0Y2hlcywgInssbX0iIChtICZndDsgMCkgbWVhbnMKKyAgICBh dCBtb3N0IG0gbWF0Y2hlcywgYW5kICJ7bixtfSIgKDAgJmx0Oz0gbiAmbHQ7PSBtLCAwICZsdDsg bSkgbWVhbnMgYmV0d2VlbiBuIGFuZCBtCisgICAgbWF0Y2hlcy4gIFBhdHRlcm5zIGNhbiBiZSBn cm91cGVkIHVzaW5nIHBhcmVudGhlc2VzIGFuZCBjb21iaW5lZCB1c2luZworICAgIGFsdGVybmF0 aW9uICh0aGUgdmVydGljYWwgYmFyICJ8IiBmb3IgT1IpLiBGb3IgZXhhbXBsZSwgIihVUCBET1dO KSsiCisgICAgbWF0Y2hlcyBvbmUgb3IgbW9yZSByZXBldGl0aW9ucyBvZiBVUCBmb2xsb3dlZCBi eSBET1dOLiAgSWYgYSBzZXF1ZW5jZSBvZgorICAgIHJvd3Mgd2hpY2ggc2F0aXNmaWVzIHRoZSBQ QVRURVJOIGlzIGZvdW5kLCBpbiB0aGUgc3RhcnRpbmcgcm93IGFsbCBjb2x1bW5zCisgICAgb3Ig ZnVuY3Rpb25zIGFyZSBzaG93biBpbiB0aGUgdGFyZ2V0IGxpc3QuIE5vdGUgdGhhdCBhZ2dyZWdh dGlvbnMgb25seQorICAgIGxvb2sgaW50byB0aGUgbWF0Y2hlZCByb3dzLCByYXRoZXIgdGhhbiB0 aGUgd2hvbGUgZnJhbWUuIE9uIHRoZSBzZWNvbmQgb3IKKyAgICBzdWJzZXF1ZW50IHJvd3MgYWxs IHdpbmRvdyBmdW5jdGlvbnMgYXJlIHNob3duIGFzIE5VTEwuIEFnZ3JlZ2F0ZXMgb24KKyAgICBu b24tc3RhcnRpbmcgcm93cyByZXR1cm4gdGhlaXIgaW5pdGlhbCB2YWx1ZTogZm9yIGV4YW1wbGUs CisgICAgPGZ1bmN0aW9uPmNvdW50KCk8L2Z1bmN0aW9uPiByZXR1cm5zIDAgYW5kIDxmdW5jdGlv bj5zdW0oKTwvZnVuY3Rpb24+CisgICAgcmV0dXJucyBOVUxMLiBGb3Igcm93cyB0aGF0IGRvIG5v dCBtYXRjaCB0aGUgUEFUVEVSTiwgY29sdW1ucyBhcmUgc2hvd24KKyAgICBhcyBOVUxMIHRvby4g RXhhbXBsZSBvZiBhIDxsaXRlcmFsPlNFTEVDVDwvbGl0ZXJhbD4gdXNpbmcKKyAgICB0aGUgPGxp dGVyYWw+REVGSU5FPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+UEFUVEVSTjwvbGl0ZXJhbD4gY2xh dXNlIGlzIGFzCisgICAgZm9sbG93cy4KKworPHByb2dyYW1saXN0aW5nPgorU0VMRUNUIGNvbXBh bnksIHRkYXRlLCBwcmljZSwKKyBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3LAorIG1heChwcmlj ZSkgT1ZFUiB3LAorIGNvdW50KHByaWNlKSBPVkVSIHcKK0ZST00gc3RvY2sKKyBXSU5ET1cgdyBB UyAoCisgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyBPUkRFUiBCWSB0ZGF0ZQorIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworIEFGVEVSIE1BVENIIFNLSVAg UEFTVCBMQVNUIFJPVworIElOSVRJQUwKKyBQQVRURVJOIChMT1dQUklDRSBVUCsgRE9XTispCisg REVGSU5FCisgIExPV1BSSUNFIEFTIHByaWNlICZsdDs9IDEwMCwKKyAgVVAgQVMgcHJpY2UgJmd0 OyBQUkVWKHByaWNlKSwKKyAgRE9XTiBBUyBwcmljZSAmbHQ7IFBSRVYocHJpY2UpCispOworPC9w cm9ncmFtbGlzdGluZz4KKzxzY3JlZW4+CisgY29tcGFueSAgfCAgIHRkYXRlICAgIHwgcHJpY2Ug fCBmaXJzdF92YWx1ZSB8IG1heCB8IGNvdW50IAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tKy0tLS0tLS0KKyBjb21wYW55MSB8IDIwMjMtMDctMDEg fCAgIDEwMCB8ICAgICAgICAgMTAwIHwgMjAwIHwgICAgIDQKKyBjb21wYW55MSB8IDIwMjMtMDct MDIgfCAgIDIwMCB8ICAgICAgICAgICAgIHwgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDIwMjMt MDctMDMgfCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDIw MjMtMDctMDQgfCAgIDE0MCB8ICAgICAgICAgICAgIHwgICAgIHwgICAgIDAKKyBjb21wYW55MSB8 IDIwMjMtMDctMDUgfCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAgIHwgICAgIDAKKyBjb21wYW55 MSB8IDIwMjMtMDctMDYgfCAgICA5MCB8ICAgICAgICAgIDkwIHwgMTMwIHwgICAgIDQKKyBjb21w YW55MSB8IDIwMjMtMDctMDcgfCAgIDExMCB8ICAgICAgICAgICAgIHwgICAgIHwgICAgIDAKKyBj b21wYW55MSB8IDIwMjMtMDctMDggfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAgIHwgICAgIDAK KyBjb21wYW55MSB8IDIwMjMtMDctMDkgfCAgIDEyMCB8ICAgICAgICAgICAgIHwgICAgIHwgICAg IDAKKyBjb21wYW55MSB8IDIwMjMtMDctMTAgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAgIHwg ICAgIDAKKygxMCByb3dzKQorPC9zY3JlZW4+CisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAg IFJvdyBQYXR0ZXJuIFJlY29nbml0aW9uIGludGVybmFsbHkgdXNlcyBhIG5vbmRldGVybWluaXN0 aWMgZmluaXRlCisgICAgYXV0b21hdG9uIChORkEpIHRvIG1hdGNoIHBhdHRlcm5zLiBGb3IgcGF0 dGVybnMgd2l0aCB1bmJvdW5kZWQKKyAgICBxdWFudGlmaWVycyAoZS5nLiwgPGxpdGVyYWw+QSs8 L2xpdGVyYWw+IG9yIDxsaXRlcmFsPihBIEIpKzwvbGl0ZXJhbD4pLAorICAgIHRoZSBORkEgbWF5 IG5lZWQgdG8gdHJhY2sgbWFueSBhY3RpdmUgbWF0Y2hpbmcgY29udGV4dHMgc2ltdWx0YW5lb3Vz bHksCisgICAgd2hpY2ggY291bGQgcG90ZW50aWFsbHkgbGVhZCB0byBPKG48c3VwZXJzY3JpcHQ+ Mjwvc3VwZXJzY3JpcHQ+KQorICAgIGNvbXBsZXhpdHkgYXMgdGhlIG51bWJlciBvZiByb3dzIGlu Y3JlYXNlcy4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgQmVmb3JlIGV4ZWN1dGlvbiwg PHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBhdXRvbWF0aWNhbGx5CisgICAg b3B0aW1pemVzIHBhdHRlcm5zIHRvIHNpbXBsaWZ5IHRoZWlyIHN0cnVjdHVyZS4gVGhpcyBpbmNs dWRlcyBmbGF0dGVuaW5nCisgICAgbmVzdGVkIHNlcXVlbmNlcyBhbmQgYWx0ZXJuYXRpb25zLCBt ZXJnaW5nIGNvbnNlY3V0aXZlIGlkZW50aWNhbCB2YXJpYWJsZXMKKyAgICAoZS5nLiwgPGxpdGVy YWw+QXsyLDN9IEF7MSwyfTwvbGl0ZXJhbD4gYmVjb21lcyA8bGl0ZXJhbD5BezMsNX08L2xpdGVy YWw+KSwKKyAgICByZW1vdmluZyBkdXBsaWNhdGUgYWx0ZXJuYXRpdmVzCisgICAgKGUuZy4sIDxs aXRlcmFsPihBIHwgQiB8IEEpPC9saXRlcmFsPiBiZWNvbWVzIDxsaXRlcmFsPihBIHwgQik8L2xp dGVyYWw+KSwKKyAgICBhbmQgc2ltcGxpZnlpbmcgbmVzdGVkIHF1YW50aWZpZXJzCisgICAgKGUu Zy4sIDxsaXRlcmFsPihBKikqPC9saXRlcmFsPiBiZWNvbWVzIDxsaXRlcmFsPkEqPC9saXRlcmFs PikuCisgICAgVGhlc2Ugb3B0aW1pemF0aW9ucyByZWR1Y2UgcGF0dGVybiBjb21wbGV4aXR5IGFu ZCBhbHNvIGRlY3JlYXNlCisgICAgbmVzdGluZyBkZXB0aCwgbWFraW5nIHRoZSAyNTMtbGV2ZWwg ZGVwdGggbGltaXQgcmFyZWx5IGVuY291bnRlcmVkLgorICAgIFRoZXkgYXJlIGFwcGxpZWQgdHJh bnNwYXJlbnRseSBhbmQgY2FuIGJlIG9ic2VydmVkCisgICAgaW4gPGNvbW1hbmQ+RVhQTEFJTjwv Y29tbWFuZD4gb3V0cHV0LgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUbyBtaXRpZ2F0 ZSB0aGUgTyhuPHN1cGVyc2NyaXB0PjI8L3N1cGVyc2NyaXB0PikgY29tcGxleGl0eSBkZXNjcmli ZWQKKyAgICBhYm92ZSwgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBhbHNv IGVtcGxveXMKKyAgICBhIGNvbnRleHQgYWJzb3JwdGlvbiBvcHRpbWl6YXRpb24uIFdoZW4gYSBw YXR0ZXJuIHN0YXJ0cyB3aXRoIGEgZ3JlZWR5CisgICAgdW5ib3VuZGVkIGVsZW1lbnQsIG5ld2Vy IG1hdGNoaW5nIGNvbnRleHRzIGNhbm5vdCBwcm9kdWNlIGxvbmdlciBtYXRjaGVzCisgICAgdGhh biBvbGRlciBjb250ZXh0cy4gQnkgZGV0ZWN0aW5nIGFuZCBlbGltaW5hdGluZyB0aGVzZSByZWR1 bmRhbnQKKyAgICBjb250ZXh0cywgdGhlIG1hdGNoaW5nIGNvbXBsZXhpdHkgaXMgcmVkdWNlZCBm cm9tCisgICAgTyhuPHN1cGVyc2NyaXB0PjI8L3N1cGVyc2NyaXB0PikgdG8gTyhuKSBmb3IgbWFu eSBjb21tb24gcGF0dGVybnMuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFdoZW4gZXhh bWluaW5nIHF1ZXJ5IHBsYW5zIGZvciBSb3cgUGF0dGVybiBSZWNvZ25pdGlvbiB3aXRoCisgICAg PGNvbW1hbmQ+RVhQTEFJTjwvY29tbWFuZD4sIHRoZSBwYXR0ZXJuIG91dHB1dCBtYXkgaW5jbHVk ZSBzcGVjaWFsCisgICAgbWFya2VycyB0aGF0IGluZGljYXRlIG9wdGltaXphdGlvbiBvcHBvcnR1 bml0aWVzLiBBIGRvdWJsZSBxdW90ZQorICAgIDxsaXRlcmFsPiI8L2xpdGVyYWw+IG1hcmtzIHdo ZXJlIHBhdHRlcm4gYWJzb3JwdGlvbiBjYW4gb2NjdXIsCisgICAgYW5kIGEgc2luZ2xlIHF1b3Rl IDxsaXRlcmFsPic8L2xpdGVyYWw+IG1hcmtzIGFic29yYmFibGUgZWxlbWVudHMKKyAgICB3aXRo aW4gYSBicmFuY2guIEZvciBleGFtcGxlLCA8bGl0ZXJhbD5hKyI8L2xpdGVyYWw+IGluZGljYXRl cyB0aGF0CisgICAgcmVwZWF0ZWQgbWF0Y2hlcyBvZiA8bGl0ZXJhbD5hPC9saXRlcmFsPiBjYW4g YmUgYWJzb3JiZWQsIHdoaWxlCisgICAgPGxpdGVyYWw+KGEnIGInKSsiPC9saXRlcmFsPiBzaG93 cyB0aGF0IGJvdGggPGxpdGVyYWw+YTwvbGl0ZXJhbD4KKyAgICBhbmQgPGxpdGVyYWw+YjwvbGl0 ZXJhbD4gd2l0aGluIHRoZSBncm91cCBhcmUgYWJzb3JiYWJsZS4KKyAgICBUaGVzZSBtYXJrZXJz IGFyZSBwcmltYXJpbHkgdXNlZnVsIGZvciB1bmRlcnN0YW5kaW5nIGludGVybmFsCisgICAgb3B0 aW1pemF0aW9uIGJlaGF2aW9yLgorICAgPC9wYXJhPgorCiAgICA8cGFyYT4KICAgICBXaGVuIGEg cXVlcnkgaW52b2x2ZXMgbXVsdGlwbGUgd2luZG93IGZ1bmN0aW9ucywgaXQgaXMgcG9zc2libGUg dG8gd3JpdGUKICAgICBvdXQgZWFjaCBvbmUgd2l0aCBhIHNlcGFyYXRlIDxsaXRlcmFsPk9WRVI8 L2xpdGVyYWw+IGNsYXVzZSwgYnV0IHRoaXMgaXMKLSAgICBkdXBsaWNhdGl2ZSBhbmQgZXJyb3It cHJvbmUgaWYgdGhlIHNhbWUgd2luZG93aW5nIGJlaGF2aW9yIGlzIHdhbnRlZAotICAgIGZvciBz ZXZlcmFsIGZ1bmN0aW9ucy4gIEluc3RlYWQsIGVhY2ggd2luZG93aW5nIGJlaGF2aW9yIGNhbiBi ZSBuYW1lZAotICAgIGluIGEgPGxpdGVyYWw+V0lORE9XPC9saXRlcmFsPiBjbGF1c2UgYW5kIHRo ZW4gcmVmZXJlbmNlZCBpbiA8bGl0ZXJhbD5PVkVSPC9saXRlcmFsPi4KLSAgICBGb3IgZXhhbXBs ZToKKyAgICBkdXBsaWNhdGl2ZSBhbmQgZXJyb3ItcHJvbmUgaWYgdGhlIHNhbWUgd2luZG93aW5n IGJlaGF2aW9yIGlzIHdhbnRlZCBmb3IKKyAgICBzZXZlcmFsIGZ1bmN0aW9ucy4gIEluc3RlYWQs IGVhY2ggd2luZG93aW5nIGJlaGF2aW9yIGNhbiBiZSBuYW1lZCBpbgorICAgIGEgPGxpdGVyYWw+ V0lORE9XPC9saXRlcmFsPiBjbGF1c2UgYW5kIHRoZW4gcmVmZXJlbmNlZAorICAgIGluIDxsaXRl cmFsPk9WRVI8L2xpdGVyYWw+LiAgRm9yIGV4YW1wbGU6CiAKIDxwcm9ncmFtbGlzdGluZz4KIFNF TEVDVCBzdW0oc2FsYXJ5KSBPVkVSIHcsIGF2ZyhzYWxhcnkpIE9WRVIgdwpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy13aW5kb3cuc2dtbCBiL2RvYy9zcmMvc2dtbC9mdW5jL2Z1 bmMtd2luZG93LnNnbWwKaW5kZXggYmNmNzU1YzllYmMuLmQxZGExMDVhZDBmIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXdpbmRvdy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9m dW5jL2Z1bmMtd2luZG93LnNnbWwKQEAgLTI3OCw2ICsyNzgsMTI3IEBACiAgICA8ZnVuY3Rpb24+ bnRoX3ZhbHVlPC9mdW5jdGlvbj4uCiAgIDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIFJvdyBQYXR0 ZXJuIFJlY29nbml0aW9uIG5hdmlnYXRpb24gZnVuY3Rpb25zIGFyZSBsaXN0ZWQgaW4KKyAgIDx4 cmVmIGxpbmtlbmQ9ImZ1bmN0aW9ucy1ycHItbmF2aWdhdGlvbi10YWJsZSIvPi4gIFRoZXNlIGZ1 bmN0aW9ucworICAgY2FuIGJlIHVzZWQgdG8gZGVzY3JpYmUgdGhlIERFRklORSBjbGF1c2Ugb2Yg Um93IFBhdHRlcm4gUmVjb2duaXRpb24uCisgIDwvcGFyYT4KKworICAgPHRhYmxlIGlkPSJmdW5j dGlvbnMtcnByLW5hdmlnYXRpb24tdGFibGUiPgorICAgIDx0aXRsZT5Sb3cgUGF0dGVybiBOYXZp Z2F0aW9uIEZ1bmN0aW9uczwvdGl0bGU+CisgICAgPHRncm91cCBjb2xzPSIxIj4KKyAgICAgPHRo ZWFkPgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnkgcm9sZT0iZnVuY190YWJsZV9lbnRyeSI+ PHBhcmEgcm9sZT0iZnVuY19zaWduYXR1cmUiPgorICAgICAgICBGdW5jdGlvbgorICAgICAgIDwv cGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgRGVzY3JpcHRpb24KKyAgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgIDwvcm93PgorICAgICA8L3RoZWFkPgorCisgICAgIDx0Ym9keT4KKyAg ICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImZ1bmNfc2lnbmF0dXJlIj4KKyAgICAgICAgPGluZGV4dGVybT4KKyAgICAgICAgIDxwcmlt YXJ5PnByZXY8L3ByaW1hcnk+CisgICAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgICA8ZnVuY3Rp b24+cHJldjwvZnVuY3Rpb24+ICggPHBhcmFtZXRlcj52YWx1ZTwvcGFyYW1ldGVyPiA8dHlwZT5h bnllbGVtZW50PC90eXBlPiBbLCA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPiA8dHlwZT5i aWdpbnQ8L3R5cGU+IF0gKQorICAgICAgICA8cmV0dXJudmFsdWU+YW55ZWxlbWVudDwvcmV0dXJu dmFsdWU+CisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBSZXR1cm5zIDxw YXJhbWV0ZXI+dmFsdWU8L3BhcmFtZXRlcj4gZXZhbHVhdGVkIGF0IHRoZSByb3cgdGhhdCBpcwor ICAgICAgICA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPiByb3dzIGJlZm9yZSB0aGUgY3Vy cmVudCByb3cgd2l0aGluCisgICAgICAgIHRoZSBwYXJ0aXRpb247CisgICAgICAgIHJldHVybnMg TlVMTCBpZiB0aGUgdGFyZ2V0IHJvdyBpcyBvdXRzaWRlIHRoZSBwYXJ0aXRpb24uCisgICAgICAg IDxwYXJhbWV0ZXI+b2Zmc2V0PC9wYXJhbWV0ZXI+IGRlZmF1bHRzIHRvIDEgaWYgb21pdHRlZC4K KyAgICAgICAgPHBhcmFtZXRlcj5vZmZzZXQ8L3BhcmFtZXRlcj4gbXVzdCBiZSBhIG5vbi1uZWdh dGl2ZSBpbnRlZ2VyOworICAgICAgICBhbiBvZmZzZXQgb2YgMCByZWZlcnMgdG8gdGhlIGN1cnJl bnQgcm93IGl0c2VsZi4KKyAgICAgICAgPHBhcmFtZXRlcj5vZmZzZXQ8L3BhcmFtZXRlcj4gbXVz dCBub3QgYmUgTlVMTC4KKyAgICAgICAgQ2FuIG9ubHkgYmUgdXNlZCBpbiBhIDxsaXRlcmFsPkRF RklORTwvbGl0ZXJhbD4gY2xhdXNlLgorICAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICAgPC9y b3c+CisKKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImZ1bmNfc2lnbmF0dXJlIj4KKyAgICAgICAgPGluZGV4dGVybT4KKyAgICAg ICAgIDxwcmltYXJ5Pm5leHQ8L3ByaW1hcnk+CisgICAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAg ICA8ZnVuY3Rpb24+bmV4dDwvZnVuY3Rpb24+ICggPHBhcmFtZXRlcj52YWx1ZTwvcGFyYW1ldGVy PiA8dHlwZT5hbnllbGVtZW50PC90eXBlPiBbLCA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVy PiA8dHlwZT5iaWdpbnQ8L3R5cGU+IF0gKQorICAgICAgICA8cmV0dXJudmFsdWU+YW55ZWxlbWVu dDwvcmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBS ZXR1cm5zIDxwYXJhbWV0ZXI+dmFsdWU8L3BhcmFtZXRlcj4gZXZhbHVhdGVkIGF0IHRoZSByb3cg dGhhdCBpcworICAgICAgICA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPiByb3dzIGFmdGVy IHRoZSBjdXJyZW50IHJvdyB3aXRoaW4KKyAgICAgICAgdGhlIHBhcnRpdGlvbjsKKyAgICAgICAg cmV0dXJucyBOVUxMIGlmIHRoZSB0YXJnZXQgcm93IGlzIG91dHNpZGUgdGhlIHBhcnRpdGlvbi4K KyAgICAgICAgPHBhcmFtZXRlcj5vZmZzZXQ8L3BhcmFtZXRlcj4gZGVmYXVsdHMgdG8gMSBpZiBv bWl0dGVkLgorICAgICAgICA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPiBtdXN0IGJlIGEg bm9uLW5lZ2F0aXZlIGludGVnZXI7CisgICAgICAgIGFuIG9mZnNldCBvZiAwIHJlZmVycyB0byB0 aGUgY3VycmVudCByb3cgaXRzZWxmLgorICAgICAgICA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1l dGVyPiBtdXN0IG5vdCBiZSBOVUxMLgorICAgICAgICBDYW4gb25seSBiZSB1c2VkIGluIGEgPGxp dGVyYWw+REVGSU5FPC9saXRlcmFsPiBjbGF1c2UuCisgICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgICA8L3Jvdz4KKworICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnkgcm9sZT0iZnVuY190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iZnVuY19zaWduYXR1cmUiPgorICAgICAgICA8aW5kZXh0ZXJt PgorICAgICAgICAgPHByaW1hcnk+Zmlyc3Q8L3ByaW1hcnk+CisgICAgICAgIDwvaW5kZXh0ZXJt PgorICAgICAgICA8ZnVuY3Rpb24+Zmlyc3Q8L2Z1bmN0aW9uPiAoIDxwYXJhbWV0ZXI+dmFsdWU8 L3BhcmFtZXRlcj4gPHR5cGU+YW55ZWxlbWVudDwvdHlwZT4gWywgPHBhcmFtZXRlcj5vZmZzZXQ8 L3BhcmFtZXRlcj4gPHR5cGU+YmlnaW50PC90eXBlPiBdICkKKyAgICAgICAgPHJldHVybnZhbHVl PmFueWVsZW1lbnQ8L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4K KyAgICAgICAgUmV0dXJucyA8cGFyYW1ldGVyPnZhbHVlPC9wYXJhbWV0ZXI+IGV2YWx1YXRlZCBh dCB0aGUgcm93IHRoYXQgaXMKKyAgICAgICAgPHBhcmFtZXRlcj5vZmZzZXQ8L3BhcmFtZXRlcj4g cm93cyBhZnRlciB0aGUgbWF0Y2ggc3RhcnQgcm93OworICAgICAgICByZXR1cm5zIE5VTEwgaWYg dGhlIHRhcmdldCByb3cgaXMgYmV5b25kIHRoZSBjdXJyZW50IHJvdy4KKyAgICAgICAgPHBhcmFt ZXRlcj5vZmZzZXQ8L3BhcmFtZXRlcj4gZGVmYXVsdHMgdG8gMCBpZiBvbWl0dGVkLCByZWZlcnJp bmcgdG8gdGhlCisgICAgICAgIG1hdGNoIHN0YXJ0IHJvdyBpdHNlbGYuCisgICAgICAgIDxwYXJh bWV0ZXI+b2Zmc2V0PC9wYXJhbWV0ZXI+IG11c3QgYmUgYSBub24tbmVnYXRpdmUgaW50ZWdlci4K KyAgICAgICAgPHBhcmFtZXRlcj5vZmZzZXQ8L3BhcmFtZXRlcj4gbXVzdCBub3QgYmUgTlVMTC4K KyAgICAgICAgQ2FuIG9ubHkgYmUgdXNlZCBpbiBhIDxsaXRlcmFsPkRFRklORTwvbGl0ZXJhbD4g Y2xhdXNlLgorICAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICAgPC9yb3c+CisKKyAgICAgIDxy b3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImZ1 bmNfc2lnbmF0dXJlIj4KKyAgICAgICAgPGluZGV4dGVybT4KKyAgICAgICAgIDxwcmltYXJ5Pmxh c3Q8L3ByaW1hcnk+CisgICAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgICA8ZnVuY3Rpb24+bGFz dDwvZnVuY3Rpb24+ICggPHBhcmFtZXRlcj52YWx1ZTwvcGFyYW1ldGVyPiA8dHlwZT5hbnllbGVt ZW50PC90eXBlPiBbLCA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPiA8dHlwZT5iaWdpbnQ8 L3R5cGU+IF0gKQorICAgICAgICA8cmV0dXJudmFsdWU+YW55ZWxlbWVudDwvcmV0dXJudmFsdWU+ CisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBSZXR1cm5zIDxwYXJhbWV0 ZXI+dmFsdWU8L3BhcmFtZXRlcj4gZXZhbHVhdGVkIGF0IHRoZSByb3cgdGhhdCBpcworICAgICAg ICA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPiByb3dzIGJlZm9yZSB0aGUgY3VycmVudCBy b3cgd2l0aGluCisgICAgICAgIHRoZSBtYXRjaDsKKyAgICAgICAgcmV0dXJucyBOVUxMIGlmIHRo ZSB0YXJnZXQgcm93IGlzIGJlZm9yZSB0aGUgbWF0Y2ggc3RhcnQgcm93LgorICAgICAgICA8cGFy YW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPiBkZWZhdWx0cyB0byAwIGlmIG9taXR0ZWQsIHJlZmVy cmluZyB0byB0aGUKKyAgICAgICAgY3VycmVudCByb3cgaXRzZWxmLgorICAgICAgICA8cGFyYW1l dGVyPm9mZnNldDwvcGFyYW1ldGVyPiBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIuCisg ICAgICAgIDxwYXJhbWV0ZXI+b2Zmc2V0PC9wYXJhbWV0ZXI+IG11c3Qgbm90IGJlIE5VTEwuCisg ICAgICAgIENhbiBvbmx5IGJlIHVzZWQgaW4gYSA8bGl0ZXJhbD5ERUZJTkU8L2xpdGVyYWw+IGNs YXVzZS4KKyAgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgIDwvcm93PgorCisgICAgIDwvdGJv ZHk+CisgICAgPC90Z3JvdXA+CisgICA8L3RhYmxlPgorCisgICA8cGFyYT4KKyAgICA8ZnVuY3Rp b24+UFJFVjwvZnVuY3Rpb24+IGFuZCA8ZnVuY3Rpb24+TkVYVDwvZnVuY3Rpb24+IG1heSB3cmFw CisgICAgPGZ1bmN0aW9uPkZJUlNUPC9mdW5jdGlvbj4gb3IgPGZ1bmN0aW9uPkxBU1Q8L2Z1bmN0 aW9uPiBmb3IgY29tcG91bmQKKyAgICBuYXZpZ2F0aW9uLiBGb3IgZXhhbXBsZSwKKyAgICA8bGl0 ZXJhbD5QUkVWKEZJUlNUKHZhbCwgMiksIDMpPC9saXRlcmFsPiBmZXRjaGVzIHRoZSB2YWx1ZSBh dAorICAgIDMgcm93cyBiZWZvcmUgdGhlIHJvdyB0aGF0IGlzIDIgcm93cyBhZnRlciB0aGUgbWF0 Y2ggc3RhcnQuCisgICAgVGhlIHJldmVyc2UgbmVzdGluZyAoPGZ1bmN0aW9uPkZJUlNUPC9mdW5j dGlvbj4vPGZ1bmN0aW9uPkxBU1Q8L2Z1bmN0aW9uPgorICAgIHdyYXBwaW5nIDxmdW5jdGlvbj5Q UkVWPC9mdW5jdGlvbj4vPGZ1bmN0aW9uPk5FWFQ8L2Z1bmN0aW9uPikgaXMgbm90CisgICAgcGVy bWl0dGVkLiBTYW1lLWNhdGVnb3J5IG5lc3RpbmcgKGUuZy4sCisgICAgPGZ1bmN0aW9uPlBSRVY8 L2Z1bmN0aW9uPiBpbnNpZGUgPGZ1bmN0aW9uPlBSRVY8L2Z1bmN0aW9uPikgaXMgYWxzbworICAg IHByb2hpYml0ZWQuCisgICA8L3BhcmE+CisKICAgPG5vdGU+CiAgICA8cGFyYT4KICAgICBUaGUg U1FMIHN0YW5kYXJkIGRlZmluZXMgYSA8bGl0ZXJhbD5GUk9NIEZJUlNUPC9saXRlcmFsPiBvciA8 bGl0ZXJhbD5GUk9NIExBU1Q8L2xpdGVyYWw+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVm L3NlbGVjdC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9zZWxlY3Quc2dtbAppbmRleCAwOWI2Y2U4 MDliYi4uNTI3MmQ2YzBiZmEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvc2VsZWN0LnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9zZWxlY3Quc2dtbApAQCAtMTAyMiw4ICsxMDIyLDgg QEAgV0lORE9XIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj53aW5kb3dfbmFtZTwvcmVw bGFjZWFibGU+IEFTICggPHJlcGxhY2VhYmwKICAgICBUaGUgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmZyYW1lX2NsYXVzZTwvcmVwbGFjZWFibGU+IGNhbiBiZSBvbmUgb2YKIAogPHN5 bm9wc2lzPgoteyBSQU5HRSB8IFJPV1MgfCBHUk9VUFMgfSA8cmVwbGFjZWFibGU+ZnJhbWVfc3Rh cnQ8L3JlcGxhY2VhYmxlPiBbIDxyZXBsYWNlYWJsZT5mcmFtZV9leGNsdXNpb248L3JlcGxhY2Vh YmxlPiBdCi17IFJBTkdFIHwgUk9XUyB8IEdST1VQUyB9IEJFVFdFRU4gPHJlcGxhY2VhYmxlPmZy YW1lX3N0YXJ0PC9yZXBsYWNlYWJsZT4gQU5EIDxyZXBsYWNlYWJsZT5mcmFtZV9lbmQ8L3JlcGxh Y2VhYmxlPiBbIDxyZXBsYWNlYWJsZT5mcmFtZV9leGNsdXNpb248L3JlcGxhY2VhYmxlPiBdCit7 IFJBTkdFIHwgUk9XUyB8IEdST1VQUyB9IDxyZXBsYWNlYWJsZT5mcmFtZV9zdGFydDwvcmVwbGFj ZWFibGU+IFsgPHJlcGxhY2VhYmxlPmZyYW1lX2V4Y2x1c2lvbjwvcmVwbGFjZWFibGU+IF0gWyA8 cmVwbGFjZWFibGU+cm93X3BhdHRlcm5fY29tbW9uX3N5bnRheDwvcmVwbGFjZWFibGU+IF0KK3sg UkFOR0UgfCBST1dTIHwgR1JPVVBTIH0gQkVUV0VFTiA8cmVwbGFjZWFibGU+ZnJhbWVfc3RhcnQ8 L3JlcGxhY2VhYmxlPiBBTkQgPHJlcGxhY2VhYmxlPmZyYW1lX2VuZDwvcmVwbGFjZWFibGU+IFsg PHJlcGxhY2VhYmxlPmZyYW1lX2V4Y2x1c2lvbjwvcmVwbGFjZWFibGU+IF0gWyA8cmVwbGFjZWFi bGU+cm93X3BhdHRlcm5fY29tbW9uX3N5bnRheDwvcmVwbGFjZWFibGU+IF0KIDwvc3lub3BzaXM+ CiAKICAgICB3aGVyZSA8cmVwbGFjZWFibGU+ZnJhbWVfc3RhcnQ8L3JlcGxhY2VhYmxlPgpAQCAt MTEzMCw5ICsxMTMwLDk0IEBAIEVYQ0xVREUgTk8gT1RIRVJTCiAgICAgYSBnaXZlbiBwZWVyIGdy b3VwIHdpbGwgYmUgaW4gdGhlIGZyYW1lIG9yIGV4Y2x1ZGVkIGZyb20gaXQuCiAgICA8L3BhcmE+ CiAKKyAgIDxwYXJhPgorICAgIFRoZQorICAgIG9wdGlvbmFsIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5yb3dfcGF0dGVybl9jb21tb25fc3ludGF4PC9yZXBsYWNlYWJsZT4KKyAgICBk ZWZpbmVzIHRoZSA8Zmlyc3R0ZXJtPlJvdyBQYXR0ZXJuIFJlY29nbml0aW9uIGNvbmRpdGlvbjwv Zmlyc3R0ZXJtPiBmb3IKKyAgICB0aGlzCisgICAgd2luZG93LiA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+cm93X3BhdHRlcm5fY29tbW9uX3N5bnRheDwvcmVwbGFjZWFibGU+CisgICAg aW5jbHVkZXMgdGhlIGZvbGxvd2luZyBzdWJjbGF1c2VzLgorCis8c3lub3BzaXM+CitbIHsgQUZU RVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XIHwgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJP VyB9IF0KK1sgSU5JVElBTCB8IFNFRUsgXQorUEFUVEVSTiAoIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5wYXR0ZXJuX3ZhcmlhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbIDxyZXBsYWNl YWJsZT5xdWFudGlmaWVyPC9yZXBsYWNlYWJsZT4gXSBbIC4uLiBdICkKK0RFRklORSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGVmaW5pdGlvbl92YXJpYWJsZV9uYW1lPC9yZXBsYWNl YWJsZT4gQVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxh Y2VhYmxlPiBbLCAuLi5dCis8L3N5bm9wc2lzPgorICAgIDxsaXRlcmFsPkFGVEVSIE1BVENIIFNL SVAgUEFTVCBMQVNUIFJPVzwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+QUZURVIgTUFUQ0gKKyAgICBT S0lQIFRPIE5FWFQgUk9XPC9saXRlcmFsPiBjb250cm9scyBob3cgdG8gcHJvY2VlZCB0byB0aGUg bmV4dCByb3cgcG9zaXRpb24KKyAgICBhZnRlciBhIG1hdGNoIGlzIGZvdW5kLiBXaXRoIDxsaXRl cmFsPkFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUCisgICAgUk9XPC9saXRlcmFsPiAodGhlIGRl ZmF1bHQpIHRoZSBuZXh0IHJvdyBwb3NpdGlvbiBpcyBuZXh0IHRvIHRoZSBsYXN0IHJvdyBvZgor ICAgIHRoZSBwcmV2aW91cyBtYXRjaC4gT24gdGhlIG90aGVyIGhhbmQsIHdpdGggPGxpdGVyYWw+ QUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUCisgICAgUk9XPC9saXRlcmFsPiB0aGUgbmV4dCByb3cg cG9zaXRpb24gaXMgbmV4dCB0byB0aGUgZmlyc3Qgcm93IG9mIHRoZSBwcmV2aW91cworICAgIG1h dGNoLiA8bGl0ZXJhbD5JTklUSUFMPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5TRUVLPC9saXRlcmFs PiBzcGVjaWZpZXMgZnJvbQorICAgIHdoaWNoIHJvdyBpbiB0aGUgZnJhbWUgcGF0dGVybiBtYXRj aGluZyBiZWdpbnMuCisgICAgSWYgPGxpdGVyYWw+SU5JVElBTDwvbGl0ZXJhbD4gaXMgc3BlY2lm aWVkLCB0aGUgbWF0Y2ggbXVzdCBzdGFydAorICAgIGZyb20gdGhlIGZpcnN0IHJvdyBpbiB0aGUg ZnJhbWUuIElmIDxsaXRlcmFsPlNFRUs8L2xpdGVyYWw+IGlzIHNwZWNpZmllZCwKKyAgICB0aGUg c2V0IG9mIG1hdGNoaW5nIHJvd3MgZG9lcyBub3QgbmVjZXNzYXJpbHkgc3RhcnQgZnJvbSB0aGUg Zmlyc3Qgcm93LiBUaGUKKyAgICBkZWZhdWx0IGlzIDxsaXRlcmFsPklOSVRJQUw8L2xpdGVyYWw+ LiBDdXJyZW50bHkKKyAgICBvbmx5IDxsaXRlcmFsPklOSVRJQUw8L2xpdGVyYWw+IGlzIHN1cHBv cnRlZC4gPGxpdGVyYWw+REVGSU5FPC9saXRlcmFsPgorICAgIGRlZmluZXMgZGVmaW5pdGlvbiB2 YXJpYWJsZXMgYWxvbmcgd2l0aCBhIGJvb2xlYW4KKyAgICBleHByZXNzaW9uLiA8bGl0ZXJhbD5Q QVRURVJOPC9saXRlcmFsPiBkZWZpbmVzIGEgc2VxdWVuY2Ugb2Ygcm93cyB0aGF0CisgICAgc2F0 aXNmaWVzIGNlcnRhaW4gY29uZGl0aW9ucyB1c2luZyB2YXJpYWJsZXMgZGVmaW5lZAorICAgIGlu IHRoZSA8bGl0ZXJhbD5ERUZJTkU8L2xpdGVyYWw+IGNsYXVzZSAoYW4gZW1wdHkgPGxpdGVyYWw+ UEFUVEVSTigpPC9saXRlcmFsPgorICAgIGlzIG5vdCBzdXBwb3J0ZWQpLiBFYWNoIHBhdHRlcm4g dmFyaWFibGUgY2FuIGJlIGZvbGxvd2VkIGJ5IGEgcXVhbnRpZmllcgorICAgIHRvIHNwZWNpZnkg aG93IG1hbnkgdGltZXMgaXQgc2hvdWxkIG1hdGNoOgorICAgIDxsaXRlcmFsPio8L2xpdGVyYWw+ ICh6ZXJvIG9yIG1vcmUpLAorICAgIDxsaXRlcmFsPis8L2xpdGVyYWw+IChvbmUgb3IgbW9yZSks CisgICAgPGxpdGVyYWw+PzwvbGl0ZXJhbD4gKHplcm8gb3Igb25lKSwKKyAgICA8bGl0ZXJhbD57 PC9saXRlcmFsPjxyZXBsYWNlYWJsZT5uPC9yZXBsYWNlYWJsZT48bGl0ZXJhbD59PC9saXRlcmFs PiAoZXhhY3RseSA8cmVwbGFjZWFibGU+bjwvcmVwbGFjZWFibGU+IHRpbWVzLCBuICZndDsgMCks CisgICAgPGxpdGVyYWw+ezwvbGl0ZXJhbD48cmVwbGFjZWFibGU+bjwvcmVwbGFjZWFibGU+PGxp dGVyYWw+LH08L2xpdGVyYWw+IChhdCBsZWFzdCA8cmVwbGFjZWFibGU+bjwvcmVwbGFjZWFibGU+ IHRpbWVzLCBuICZndDs9IDApLAorICAgIDxsaXRlcmFsPnssPC9saXRlcmFsPjxyZXBsYWNlYWJs ZT5tPC9yZXBsYWNlYWJsZT48bGl0ZXJhbD59PC9saXRlcmFsPiAoYXQgbW9zdCA8cmVwbGFjZWFi bGU+bTwvcmVwbGFjZWFibGU+IHRpbWVzLCBtICZndDsgMCksIG9yCisgICAgPGxpdGVyYWw+ezwv bGl0ZXJhbD48cmVwbGFjZWFibGU+bjwvcmVwbGFjZWFibGU+PGxpdGVyYWw+LDwvbGl0ZXJhbD48 cmVwbGFjZWFibGU+bTwvcmVwbGFjZWFibGU+PGxpdGVyYWw+fTwvbGl0ZXJhbD4KKyAgICAoYmV0 d2VlbiA8cmVwbGFjZWFibGU+bjwvcmVwbGFjZWFibGU+IGFuZCA8cmVwbGFjZWFibGU+bTwvcmVw bGFjZWFibGU+IHRpbWVzLCAwICZsdDs9IG4gJmx0Oz0gbSwgMCAmbHQ7IG0pLgorICAgIFJlbHVj dGFudCBxdWFudGlmaWVycyAoZS5nLiwgPGxpdGVyYWw+Kj88L2xpdGVyYWw+LCA8bGl0ZXJhbD4r PzwvbGl0ZXJhbD4sCisgICAgPGxpdGVyYWw+Pz88L2xpdGVyYWw+LCA8bGl0ZXJhbD57PC9saXRl cmFsPjxyZXBsYWNlYWJsZT5uPC9yZXBsYWNlYWJsZT48bGl0ZXJhbD4sPC9saXRlcmFsPjxyZXBs YWNlYWJsZT5tPC9yZXBsYWNlYWJsZT48bGl0ZXJhbD59PzwvbGl0ZXJhbD4pCisgICAgYXJlIHN1 cHBvcnRlZC4KKyAgICBUaGUgZXhjbHVzaW9uICg8bGl0ZXJhbD57LTwvbGl0ZXJhbD4gYW5kIDxs aXRlcmFsPi19PC9saXRlcmFsPikKKyAgICBpcyBub3Qgc3VwcG9ydGVkLgorICAgIFBhdHRlcm5z IGNhbiBiZSBncm91cGVkIHVzaW5nIHBhcmVudGhlc2VzLCBhbmQgYWx0ZXJuYXRpb24gKE9SKSBj YW4gYmUKKyAgICBleHByZXNzZWQgdXNpbmcgdGhlIHZlcnRpY2FsIGJhciA8bGl0ZXJhbD58PC9s aXRlcmFsPi4KKyAgICBGb3IgZXhhbXBsZSwgPGxpdGVyYWw+KEEgQikrPC9saXRlcmFsPiBtYXRj aGVzIG9uZSBvciBtb3JlIHJlcGV0aXRpb25zCisgICAgb2YgdGhlIHNlcXVlbmNlIEEgZm9sbG93 ZWQgYnkgQiwgYW5kIDxsaXRlcmFsPkEgfCBCPC9saXRlcmFsPiBtYXRjaGVzCisgICAgZWl0aGVy IEEgb3IgQi4KKyAgICBJZiBhIHBhdHRlcm4gdmFyaWFibGUgaXMgbm90IGRlZmluZWQgaW4KKyAg ICB0aGUgPGxpdGVyYWw+REVGSU5FPC9saXRlcmFsPiBjbGF1c2UsIGl0IGlzIG5vdCBhdXRvbWF0 aWNhbGx5IGFkZGVkCisgICAgdG8gdGhlIDxsaXRlcmFsPkRFRklORTwvbGl0ZXJhbD4gY2xhdXNl LiBJbnN0ZWFkLCB0aGUgZXhlY3V0b3IgZXZhbHVhdGVzCisgICAgdGhlIHZhcmlhYmxlIGFzIDxs aXRlcmFsPlRSVUU8L2xpdGVyYWw+IGF0IGV4ZWN1dGlvbiB0aW1lLCBiZWhhdmluZyBhcyBpZgor ICAgIHRoZSBmb2xsb3dpbmcgZGVmaW5pdGlvbiBleGlzdGVkLgorCis8c3lub3BzaXM+Cis8bGl0 ZXJhbD52YXJpYWJsZV9uYW1lPC9saXRlcmFsPiBBUyBUUlVFCis8L3N5bm9wc2lzPgorCisgICAg Q29udmVyc2VseSwgdmFyaWFibGVzIGRlZmluZWQgaW4gdGhlIDxsaXRlcmFsPkRFRklORTwvbGl0 ZXJhbD4gY2xhdXNlCisgICAgYnV0IG5vdCB1c2VkIGluIHRoZSA8bGl0ZXJhbD5QQVRURVJOPC9s aXRlcmFsPiBjbGF1c2UgYXJlIGZpbHRlcmVkIG91dAorICAgIGR1cmluZyBxdWVyeSBwbGFubmlu Zy4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgTm90ZSB0aGF0IHRoZSBtYXhpbXVtIG51 bWJlciBvZiB1bmlxdWUgcGF0dGVybiB2YXJpYWJsZXMKKyAgICB1c2VkIGluIHRoZSA8bGl0ZXJh bD5QQVRURVJOPC9saXRlcmFsPiBjbGF1c2UgaXMgMjUxLgorICAgIElmIHRoaXMgbGltaXQgaXMg ZXhjZWVkZWQsIGFuIGVycm9yIHdpbGwgYmUgcmFpc2VkLgorICAgIEFkZGl0aW9uYWxseSwgdGhl IG1heGltdW0gbmVzdGluZyBkZXB0aCBvZiBwYXR0ZXJuIGdyb3VwcworICAgIChwYXJlbnRoZXNl cykgaXMgMjUzIGxldmVscy4KKyAgICBIb3dldmVyLCBwYXR0ZXJuIG9wdGltaXphdGlvbnMgc3Vj aCBhcyBmbGF0dGVuaW5nIG5lc3RlZCBzZXF1ZW5jZXMKKyAgICBhbmQgc2ltcGxpZnlpbmcgbmVz dGVkIHF1YW50aWZpZXJzIG1heSByZWR1Y2UgdGhlIGVmZmVjdGl2ZSBkZXB0aCwKKyAgICBzbyB0 aGlzIGxpbWl0IGlzIHJhcmVseSByZWFjaGVkIGluIHByYWN0aWNlLgorICAgPC9wYXJhPgorCisg ICA8cGFyYT4KKyAgICBUaGUgU1FMIHN0YW5kYXJkIGRlZmluZXMgbW9yZSBzdWJjbGF1c2VzOiA8 bGl0ZXJhbD5NRUFTVVJFUzwvbGl0ZXJhbD4KKyAgICBhbmQgPGxpdGVyYWw+U1VCU0VUPC9saXRl cmFsPi4gVGhleSBhcmUgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQKKyAgICBpbiA8cHJvZHVjdG5h bWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+LiBBbHNvIGluIHRoZSBzdGFuZGFyZCB0aGVyZSBh cmUKKyAgICBtb3JlIHZhcmlhdGlvbnMgaW4gPGxpdGVyYWw+QUZURVIgTUFUQ0g8L2xpdGVyYWw+ IGNsYXVzZS4KKyAgIDwvcGFyYT4KKwogICAgPHBhcmE+CiAgICAgVGhlIHB1cnBvc2Ugb2YgYSA8 bGl0ZXJhbD5XSU5ET1c8L2xpdGVyYWw+IGNsYXVzZSBpcyB0byBzcGVjaWZ5IHRoZQotICAgIGJl aGF2aW9yIG9mIDxmaXJzdHRlcm0+d2luZG93IGZ1bmN0aW9uczwvZmlyc3R0ZXJtPiBhcHBlYXJp bmcgaW4gdGhlIHF1ZXJ5J3MKKyAgICBiZWhhdmlvciBvZiA8Zmlyc3R0ZXJtPndpbmRvdyBmdW5j dGlvbnM8L2ZpcnN0dGVybT4gYXBwZWFyaW5nIGluIHRoZQorICAgIHF1ZXJ5J3MKICAgICA8bGlu ayBsaW5rZW5kPSJzcWwtc2VsZWN0LWxpc3QiPjxjb21tYW5kPlNFTEVDVDwvY29tbWFuZD4gbGlz dDwvbGluaz4gb3IKICAgICA8bGluayBsaW5rZW5kPSJzcWwtb3JkZXJieSI+PGxpdGVyYWw+T1JE RVIgQlk8L2xpdGVyYWw+PC9saW5rPiBjbGF1c2UuCiAgICAgVGhlc2UgZnVuY3Rpb25zCi0tIAoy LjQzLjAKCg== ----Next_Part(Sat_May__2_14_03_04_2026_790)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v47-0007-Row-pattern-recognition-patch-tests-SQL-data.patch" RnJvbSBkOTljZDY5MjVkZmFkMzBhOWM3OTFkZmUwYTdmMzFjNzU1ODIxNjE5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYXRzdW8gSXNoaWkgPGlzaGlpQHBvc3RncmVzcWwub3JnPgpE YXRlOiBTYXQsIDIgTWF5IDIwMjYgMTM6NDA6MjkgKzA5MDAKU3ViamVjdDogW1BBVENIIHY0NyA3 LzldIFJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIHBhdGNoICh0ZXN0czogU1FMLCBkYXRhKS4KCi0t LQogc3JjL3Rlc3QvcmVncmVzcy9kYXRhL3N0b2NrLmRhdGEgICAgICAgICB8IDE2MzIgKysrKysr KysrCiBzcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlICAgICAgIHwgICAgNSArCiBz cmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsICAgICAgICAgICAgIHwgMTk2MCArKysrKysrKysr CiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwgICAgICAgIHwgNDEzMCArKysrKysr KysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfZXhwbGFpbi5zcWwgICAg IHwgMjc4MyArKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9pbnRlZ3Jh dGlvbi5zcWwgfCAgOTQwICsrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbCAg ICAgICAgIHwgMzQ0NiArKysrKysrKysrKysrKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgMTQ4OTYg aW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3MvZGF0YS9z dG9jay5kYXRhCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByLnNx bAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9pbnRlZ3JhdGlvbi5z cWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbAoK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZGF0YS9zdG9jay5kYXRhIGIvc3JjL3Rlc3Qv cmVncmVzcy9kYXRhL3N0b2NrLmRhdGEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLjY0NWJiNjQzZGY3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9k YXRhL3N0b2NrLmRhdGEKQEAgLTAsMCArMSwxNjMyIEBACisxCTEJMzY0Ljc1MAkxNTgwMAkwLjAw MAkwLjAwMAkwLjAwMAorMQkyCTM2OC4yNTAJMjEyMDAJMC4wMDAJMC4wMDAJMC4wMDAKKzEJMwkz NjguNTAwCTI0NDAwCTAuMDAwCTAuMDAwCTAuMDAwCisxCTQJMzY4Ljc1MAkyMjkwMAkwLjAwMAkw LjAwMAkwLjAwMAorMQk1CTM2OS41MDAJMzU0MDAJMC4wMDAJMC4wMDAJMC4wMDAKKzEJNgkzNjku MDAwCTI5MzAwCTAuMDAwCTAuMDAwCTAuMDAwCisxCTcJMzY3Ljc1MAkxOTAwMAkwLjAwMAkwLjAw MAkwLjAwMAorMQk4CTM3NC4xMjUJMzcyMDAJMC4wMDAJMC4wMDAJMC4wMDAKKzIJOQkzNDMuMjUw CTU2ODAwCTAuMDAwCTAuMDAwCTAuMDAwCisyCTEwCTMzOC41MDAJNDUyMDAJMC4wMDAJMC4wMDAJ MC4wMDAKKzIJMTEJMzM4Ljc1MAk0MDkwMAkwLjAwMAkwLjAwMAkwLjAwMAorMgkxMgkzNDQuNzUw CTM1MjAwCTAuMDAwCTAuMDAwCTAuMDAwCisyCTEzCTM0OS43NTAJMjg1MDAJMC4wMDAJMC4wMDAJ MC4wMDAKKzIJMTQJMzQ2LjAwMAkyNTYwMAkwLjAwMAkwLjAwMAkwLjAwMAorMwkxNQkzNDkuMDAw CTI0OTAwCTAuMDAwCTAuMDAwCTAuMDAwCiszCTE2CTM0OS4yNTAJMjA3MDAJMC4wMDAJMC4wMDAJ MC4wMDAKKzMJMTcJMzQ5Ljc1MAkyMjIwMAkwLjAwMAkwLjAwMAkwLjAwMAorMwkxOAkzNTEuMjUw CTE5NjAwCTAuMDAwCTAuMDAwCTAuMDAwCiszCTE5CTM1Mi4wMDAJMzI1MDAJMC4wMDAJMC4wMDAJ MC4wMDAKKzMJMjAJMzQ5LjUwMAkzMjIwMAkwLjAwMAkwLjAwMAkwLjAwMAorMwkyMQkzNDQuNTAw CTE4NjAwCTAuMDAwCTAuMDAwCTAuMDAwCiszCTIyCTM0NS4wMDAJNjEyMDAJMC4wMDAJMC4wMDAJ MC4wMDAKKzQJMjMJMjM4LjI1MAkzNzEwMAkwLjAwMAkwLjAwMAkwLjAwMAorNAkyNAkyMzAuNjI1 CTYxNTAwCTAuMDAwCTAuMDAwCTAuMDAwCis0CTI1CTIyMy4wMDAJMTYxNzAwCTAuMDAwCTAuMDAw CTAuMDAwCis0CTI2CTIyOS44NzUJNTUzMDAJMC4wMDAJMC4wMDAJMC4wMDAKKzQJMjcJMjM1LjI1 MAkzODUwMAkwLjAwMAkwLjAwMAkwLjAwMAorNQkyOAkzMTAuMDAwCTM2MDAwCTAuMDAwCTAuMDAw CTAuMDAwCis1CTI5CTMxMS43NTAJMjY4MDAJMC4wMDAJMC4wMDAJMC4wMDAKKzUJMzAJMzEyLjc1 MAkzMTkwMAkwLjAwMAkwLjAwMAkwLjAwMAorNQkzMQkzMTQuNzUwCTIxMTAwCTAuMDAwCTAuMDAw CTAuMDAwCis1CTMyCTMxNS41MDAJMjc0MDAJMC4wMDAJMC4wMDAJMC4wMDAKKzUJMzMJMzE2LjUw MAk0MDcwMAkwLjAwMAkwLjAwMAkwLjAwMAorNQkzNAkzMjEuNzUwCTUzNTAwCTAuMDAwCTAuMDAw CTAuMDAwCis1CTM1CTMyNi4wMDAJNDg3MDAJMC4wMDAJMC4wMDAJMC4wMDAKKzUJMzYJMzIyLjUw MAk0NjAwMAkwLjAwMAkwLjAwMAkwLjAwMAorNQkzNwkzMTcuNTAwCTM1NjAwCTAuMDAwCTAuMDAw CTAuMDAwCis1CTM4CTMyNS41MDAJMzQwMDAJMC4wMDAJMC4wMDAJMC4wMDAKKzUJMzkJMzI3LjI1 MAkzMDcwMAkwLjAwMAkwLjAwMAkwLjAwMAorNQk0MAkzMjcuNzUwCTM2NzAwCTAuMDAwCTAuMDAw CTAuMDAwCis1CTQxCTMyOC42MjUJMjMyMDAJMC4wMDAJMC4wMDAJMC4wMDAKKzUJNDIJMzMwLjUw MAkyOTcwMAkwLjAwMAkwLjAwMAkwLjAwMAorNQk0MwkzMzYuNTAwCTM5MjAwCTAuMDAwCTAuMDAw CTAuMDAwCis1CTQ0CTM0MC43NTAJMzQ0MDAJMC4wMDAJMC4wMDAJMC4wMDAKKzUJNDUJMzM4LjUw MAkzMjIwMAkwLjAwMAkwLjAwMAkwLjAwMAorNgk0NgkzNTMuMDAwCTI3ODAwCTAuMDAwCTAuMDAw CTAuMDAwCis2CTQ3CTM1Mi4wMDAJNTU2MDAJMC4wMDAJMC4wMDAJMC4wMDAKKzYJNDgJMzU1LjAw MAkzMTMwMAkwLjAwMAkwLjAwMAkwLjAwMAorNgk0OQkzNTYuMDAwCTI2OTAwCTAuMDAwCTAuMDAw CTAuMDAwCis2CTUwCTM1OC4wMDAJMTg5MDAJMC4wMDAJMC4wMDAJMC4wMDAKKzYJNTEJMzYxLjI1 MAkyNjQwMAkwLjAwMAkwLjAwMAkwLjAwMAorNwk1MgkzMTEuNzUwCTI1MTAwCTAuMDAwCTAuMDAw CTAuMDAwCis3CTUzCTMxNC4wMDAJMzc5MDAJMC4wMDAJMC4wMDAJMC4wMDAKKzcJNTQJMzE3LjAw MAkzNDAwMAkwLjAwMAkwLjAwMAkwLjAwMAorNwk1NQkzMTcuNzUwCTIzNzAwCTAuMDAwCTAuMDAw CTAuMDAwCis3CTU2CTMxOS4wMDAJMjM0MDAJMC4wMDAJMC4wMDAJMC4wMDAKKzcJNTcJMzE2LjUw MAkyNDIwMAkwLjAwMAkwLjAwMAkwLjAwMAorOAk1OAkzMTYuMDAwCTM3MjAwCTAuMDAwCTAuMDAw CTAuMDAwCis4CTU5CTMxNS4wMDAJMzE1MDAJMC4wMDAJMC4wMDAJMC4wMDAKKzgJNjAJMzAyLjAw MAkxMjQ3MDAJMC4wMDAJMC4wMDAJMC4wMDAKKzgJNjEJMzAwLjAwMAkxOTYxMDAJMC4wMDAJMC4w MDAJMC4wMDAKKzgJNjIJMjk4LjAwMAk3MDAwMAkwLjAwMAkwLjAwMAkwLjAwMAorOAk2MwkyOTQu NTAwCTg4MjAwCTAuMDAwCTAuMDAwCTAuMDAwCis4CTY0CTI5Ni41MDAJNTM4MDAJMC4wMDAJMC4w MDAJMC4wMDAKKzgJNjUJMjk5LjAwMAk0NzkwMAkwLjAwMAkwLjAwMAkwLjAwMAorOAk2NgkzMDEu NzUwCTMzMzAwCTAuMDAwCTAuMDAwCTAuMDAwCis4CTY3CTI5OS41MDAJMzE4MDAJMC4wMDAJMC4w MDAJMC4wMDAKKzkJNjgJMjk5LjUwMAk3NjcwMAkwLjAwMAkwLjAwMAkwLjAwMAorOQk2OQkyOTYu NzUwCTQxOTAwCTAuMDAwCTAuMDAwCTAuMDAwCis5CTcwCTI5MS4yNTAJNDY3MDAJMC4wMDAJMC4w MDAJMC4wMDAKKzkJNzEJMjkzLjc1MAkzMTEwMAkwLjAwMAkwLjAwMAkwLjAwMAorOQk3MgkyOTAu MDAwCTQ4OTAwCTAuMDAwCTAuMDAwCTAuMDAwCis5CTczCTI4Ny4wMDAJNTYzMDAJMC4wMDAJMC4w MDAJMC4wMDAKKzkJNzQJMjg3LjAwMAk0MDcwMAkwLjAwMAkwLjAwMAkwLjAwMAorOQk3NQkyODUu NTAwCTI3OTAwCTAuMDAwCTAuMDAwCTAuMDAwCis5CTc2CTI4NC4wMDAJMjc0MDAJMC4wMDAJMC4w MDAJMC4wMDAKKzkJNzcJMjg2LjAwMAkyMzUwMAkwLjAwMAkwLjAwMAkwLjAwMAorOQk3OAkyOTEu MjUwCTM4MDAwCTAuMDAwCTAuMDAwCTAuMDAwCis5CTc5CTI5Ni43NTAJNDI5MDAJMC4wMDAJMC4w MDAJMC4wMDAKKzkJODAJMjk1LjAwMAkxOTUwMAkwLjAwMAkwLjAwMAkwLjAwMAorOQk4MQkzMTQu MDAwCTEwMjkwMAkwLjAwMAkwLjAwMAkwLjAwMAorOQk4MgkzMTUuNzUwCTg0MTAwCTAuMDAwCTAu MDAwCTAuMDAwCisxMAk4MwkzMDIuMDAwCTQ0NjAwCTAuMDAwCTAuMDAwCTAuMDAwCisxMAk4NAkz MDEuMDAwCTQ1MDAwCTAuMDAwCTAuMDAwCTAuMDAwCisxMAk4NQkyOTQuNzUwCTI3OTAwCTAuMDAw CTAuMDAwCTAuMDAwCisxMAk4NgkyOTMuNTAwCTE3NjAwCTAuMDAwCTAuMDAwCTAuMDAwCisxMAk4 NwkyOTEuNzUwCTIxNjAwCTAuMDAwCTAuMDAwCTAuMDAwCisxMAk4OAkyOTAuNTAwCTMwMzAwCTAu MDAwCTAuMDAwCTAuMDAwCisxMAk4OQkyOTEuNzUwCTIyNzAwCTAuMDAwCTAuMDAwCTAuMDAwCisx MAk5MAkyOTguNzUwCTE2MjAwCTAuMDAwCTAuMDAwCTAuMDAwCisxMAk5MQkzMDIuMjUwCTQ5MTAw CTAuMDAwCTAuMDAwCTAuMDAwCisxMAk5MgkzMDUuNTAwCTM1NTAwCTAuMDAwCTAuMDAwCTAuMDAw CisxMAk5MwkzMDkuNzUwCTYzMjAwCTAuMDAwCTAuMDAwCTAuMDAwCisxMAk5NAkzMDkuNTAwCTQz MjAwCTAuMDAwCTAuMDAwCTAuMDAwCisxMQk5NQkzODMuNzUwCTE5MzAwCTAuMDAwCTAuMDAwCTAu MDAwCisxMQk5NgkzODkuNTAwCTI4OTAwCTAuMDAwCTAuMDAwCTAuMDAwCisxMQk5NwkzOTQuNTAw CTQxNzAwCTAuMDAwCTAuMDAwCTAuMDAwCisxMQk5OAkzOTYuMjUwCTI4MjAwCTAuMDAwCTAuMDAw CTAuMDAwCisxMQk5OQk0MDEuMDAwCTU1MDAwCTAuMDAwCTAuMDAwCTAuMDAwCisxMQkxMDAJNDAy LjAwMAk0MTEwMAkwLjAwMAkwLjAwMAkwLjAwMAorMTEJMTAxCTQwMy4wMDAJMzg1MDAJMC4wMDAJ MC4wMDAJMC4wMDAKKzExCTEwMgk0MDQuMDAwCTMzMTAwCTAuMDAwCTAuMDAwCTAuMDAwCisxMQkx MDMJNDA0LjAwMAkzMzgwMAkwLjAwMAkwLjAwMAkwLjAwMAorMTIJMTA0CTM4OC4wMDAJMjU4MDAJ MC4wMDAJMC4wMDAJMC4wMDAKKzEyCTEwNQkzODguNTAwCTQ0OTAwCTAuMDAwCTAuMDAwCTAuMDAw CisxMgkxMDYJMzkwLjAwMAkzODQwMAkwLjAwMAkwLjAwMAkwLjAwMAorMTIJMTA3CTM5MC43NTAJ MjMyMDAJMC4wMDAJMC4wMDAJMC4wMDAKKzEyCTEwOAkzOTYuNTAwCTI1MTAwCTAuMDAwCTAuMDAw CTAuMDAwCisxMgkxMDkJMzk4Ljc1MAkzODAwMAkwLjAwMAkwLjAwMAkwLjAwMAorMTIJMTEwCTM5 OC4wMDAJMzM2MDAJMC4wMDAJMC4wMDAJMC4wMDAKKzEyCTExMQkzOTQuNTAwCTU0MDAwCTAuMDAw CTAuMDAwCTAuMDAwCisxMgkxMTIJMzk3LjAwMAkyMDkwMAkwLjAwMAkwLjAwMAkwLjAwMAorMTMJ MTEzCTM5OC4xMjUJMjg1MDAJMC4wMDAJMzk2LjAwMAk0MDEuMDAwCisxMwkxMTQJMzk0LjUwMAkz OTkwMAkwLjAwMAkzOTIuNTAwCTM5Ny41MDAKKzEzCTExNQkzOTAuMDAwCTM3NjAwCTAuMDAwCTM5 MC4wMDAJMzkzLjc1MAorMTMJMTE2CTM4OS41MDAJMzEwMDAJMC4wMDAJMzg2LjAwMAkzOTIuNzUw CisxMwkxMTcJMzg1LjUwMAkyNTgwMAkwLjAwMAkzODUuNTAwCTM4OS43NTAKKzEzCTExOAkzOTAu NTAwCTE4MDAwCTAuMDAwCTM4NS4wMDAJMzkwLjUwMAorMTMJMTE5CTM5MS43NTAJMTQ2MDAJMC4w MDAJMzkxLjUwMAkzOTUuNTAwCisxMwkxMjAJMzk5LjAwMAkyNzgwMAkwLjAwMAkzOTIuMjUwCTM5 OS4wMDAKKzEzCTEyMQk0MDIuMDAwCTQ2NTAwCTAuMDAwCTM5OS4wMDAJNDAzLjAwMAorMTMJMTIy CTQwOS4wMDAJMzYzMDAJMC4wMDAJNDA0LjUwMAk0MDkuNTAwCisxMwkxMjMJNDA5LjI1MAk1NDUw MAkwLjAwMAk0MDkuMjUwCTQxMy43NTAKKzEzCTEyNAk0MTEuNzUwCTQ2MjAwCTAuMDAwCTQwNi4w MDAJNDEyLjUwMAorMTMJMTI1CTQxOC43NTAJNjAyMDAJMC4wMDAJNDEyLjc1MAk0MTkuNTAwCisx MwkxMjYJNDE4Ljc1MAkzMjcwMAkwLjAwMAk0MTYuMDAwCTQyMC4wMDAKKzE0CTEyNwk0MTEuNTAw CTI0ODAwCTAuMDAwCTQxMS4yNTAJNDE1LjUwMAorMTQJMTI4CTQxNS4yNTAJNTMwMDAJMC4wMDAJ NDEyLjAwMAk0MjMuMDAwCisxNAkxMjkJNDIwLjAwMAk0OTcwMAkwLjAwMAk0MTcuMjUwCTQyNS4w MDAKKzE0CTEzMAk0MjMuMjUwCTY4NzAwCTAuMDAwCTQyMi43NTAJNDI5LjAwMAorMTQJMTMxCTQy Mi41MDAJNDU0MDAJMC4wMDAJNDIwLjc1MAk0MjQuNzUwCisxNAkxMzIJNDI0LjAwMAkyMDkwMAkw LjAwMAk0MjAuNzUwCTQyNC4yNTAKKzE0CTEzMwk0MjguODc1CTM3NjAwCTAuMDAwCTQyNy4wMDAJ NDMwLjAwMAorMTQJMTM0CTQzOS4wMDAJNTk4MDAJMC4wMDAJNDI3LjI1MAk0MzkuMDAwCisxNQkx MzUJNDQ4Ljc1MAkyOTMwMAkwLjAwMAk0NDQuNzUwCTQ0OS41MDAKKzE1CTEzNgk0NDQuMDAwCTI3 NDAwCTAuMDAwCTQ0NC4wMDAJNDQ5Ljc1MAorMTUJMTM3CTQ0My41MDAJMzA5MDAJMC4wMDAJNDQw LjUwMAk0NDguNTAwCisxNQkxMzgJNDM3Ljg3NQkyNjUwMAkwLjAwMAk0MzcuNTAwCTQ0Mi44NzUK KzE1CTEzOQk0MzcuNzUwCTI5MDAwCTAuMDAwCTQzMy41MDAJNDQwLjAwMAorMTUJMTQwCTQzMC41 MDAJMjc1MDAJMC4wMDAJNDMwLjI1MAk0NDEuMjUwCisxNQkxNDEJNDI1LjUwMAk1MjMwMAkwLjAw MAk0MjQuMjUwCTQyOC44ODAKKzE1CTE0Mgk0MjguMDAwCTU5OTAwCTAuMDAwCTQxOS41MDAJNDI5 LjAwMAorMTUJMTQzCTQzMi41MDAJMzQ2MDAJMC4wMDAJNDI3LjI1MAk0MzUuMDAwCisxNQkxNDQJ NDM3LjUwMAkzMzEwMAkwLjAwMAk0MzIuMDAwCTQzOC41MDAKKzE1CTE0NQk0MzQuNTAwCTI0MzAw CTAuMDAwCTQzNC4wMDAJNDM3Ljc1MAorMTUJMTQ2CTQzMS41MDAJMjg1MDAJMC4wMDAJNDMwLjUw MAk0MzcuNTAwCisxNQkxNDcJNDI4LjAwMAkxNTUwMAkwLjAwMAk0MjcuMDAwCTQzMi43NTAKKzE1 CTE0OAk0MjQuMjUwCTQ0OTAwCTAuMDAwCTQyNC4wMDAJNDI4Ljc1MAorMTUJMTQ5CTQyMy4wMDAJ MzQwMDAJMC4wMDAJNDIwLjAwMAk0MjYuNTAwCisxNQkxNTAJNDIyLjg3NQkzNzgwMAkwLjAwMAk0 MjAuMDAwCTQyNC4wMDAKKzE1CTE1MQk0MjMuNTAwCTI0MDAwCTAuMDAwCTQyMy4yNTAJNDI4LjAw MAorMTUJMTUyCTQyOS41MDAJMjMyMDAJMC4wMDAJNDIwLjUwMAk0MjkuNTAwCisxNQkxNTMJNDM0 LjI1MAkzMTgwMAkwLjAwMAk0MjkuNzUwCTQzNS4wMDAKKzE1CTE1NAk0MzAuMjUwCTM2NTAwCTAu MDAwCTQyNi41MDAJNDM2LjI1MAorMTYJMTU1CTMwOS43NTAJNDE0MDAJMC4wMDAJMzA3LjEyNQkz MTAuNzUwCisxNgkxNTYJMzE3LjAwMAk0NDUwMAkwLjAwMAkzMDkuNzUwCTMxNy4wMDAKKzE2CTE1 NwkzMTUuMDAwCTM5OTAwCTAuMDAwCTMxMy4xMjUJMzE5Ljc1MAorMTYJMTU4CTMyMi4wMDAJNDA2 MDAJMC4wMDAJMzE4LjUwMAkzMjIuNTAwCisxNgkxNTkJMzI0LjI1MAkzNTMwMAkwLjAwMAkzMjEu MDAwCTMyNS4yNTAKKzE2CTE2MAkzMjMuMDAwCTMyMzAwCTAuMDAwCTMyMi41MDAJMzI3LjAwMAor MTYJMTYxCTMyOS4yNTAJNDc3MDAJMC4wMDAJMzIzLjI1MAkzMzAuMDAwCisxNgkxNjIJMzI5LjUw MAk1NjcwMAkwLjAwMAkzMjguNTAwCTMzMy41MDAKKzE2CTE2MwkzMjEuMDAwCTQ1NDAwCTAuMDAw CTMyMC4wMDAJMzI4LjUwMAorMTcJMTY0CTI5OC4wMDAJMzE5MDAJMC4wMDAJMjkwLjUwMAkyOTgu MDAwCisxNwkxNjUJMjcyLjAwMAkxNjUwMDAJMC4wMDAJMjcwLjc1MAkyODUuMTI1CisxNwkxNjYJ MjU5LjUwMAkyOTA0MDAJMC4wMDAJMjUyLjc1MAkyNjEuMDAwCisxNwkxNjcJMjcwLjc1MAkxMzYw MDAJMC4wMDAJMjY2LjAwMAkyNzAuNzUwCisxNwkxNjgJMjY4Ljc1MAk5NjYwMAkwLjAwMAkyNjYu MDAwCTI3MS43NTAKKzE3CTE2OQkyNjAuMDAwCTk5MTAwCTAuMDAwCTI1OC4wMDAJMjY0LjUwMAor MTcJMTcwCTI1MS41MDAJMTAwOTAwCTAuMDAwCTI1MC41MDAJMjYwLjc1MAorMTcJMTcxCTI1OS41 MDAJNzgxMDAJMC4wMDAJMjUzLjAwMAkyNjEuMDAwCisxNwkxNzIJMjYwLjUwMAk2NDYwMAkwLjAw MAkyNjAuNTAwCTI2Ny41MDAKKzE3CTE3MwkyNjAuMDAwCTUxNDAwCTAuMDAwCTI1OS4wMDAJMjY0 LjUwMAorMTcJMTc0CTI1OC4wMDAJNDA4MDAJMC4wMDAJMjU3LjAwMAkyNjEuMDAwCisxNwkxNzUJ MjU3Ljc1MAkzOTQwMAkwLjAwMAkyNTUuMDAwCTI1Ny43NTAKKzE3CTE3NgkyNTUuNTAwCTQ3NTAw CTAuMDAwCTI1My41MDAJMjU3LjUwMAorMTcJMTc3CTI0OC41MDAJMTQ3NDAwCTAuMDAwCTI0Ny4y NTAJMjU0LjAwMAorMTcJMTc4CTI1MS41MDAJMTA3MTAwCTAuMDAwCTI0NS4wMDAJMjUxLjUwMAor MTcJMTc5CTI1OS41MDAJNzAxMDAJMC4wMDAJMjUyLjUwMAkyNjIuMDAwCisxNwkxODAJMjYxLjc1 MAk0OTgwMAkwLjAwMAkyNTUuMDAwCTI2My41MDAKKzE3CTE4MQkyNzQuMDAwCTE0NjcwMAkwLjAw MAkyNzAuNTAwCTI4NC41MDAKKzE3CTE4MgkyODEuMDAwCTgyODAwCTAuMDAwCTI3Ny41MDAJMjgz Ljc1MAorMTcJMTgzCTI4Mi4wMDAJNTIwMDAJMC4wMDAJMjgxLjAwMAkyODQuNTAwCisxNwkxODQJ Mjc5LjI1MAkzOTYwMAkwLjAwMAkyNzguMDAwCTI4MC4yNTAKKzE4CTE4NQkyNDguMDAwCTM4MDAw CTAuMDAwCTI0Ny43NTAJMjUwLjAwMAorMTgJMTg2CTI0Ni41MDAJMjUxMDAJMC4wMDAJMjQ0LjAw MAkyNDguMjUwCisxOAkxODcJMjQ3LjAwMAkyNzEwMAkwLjAwMAkyNDUuMDAwCTI0OC43NTAKKzE4 CTE4OAkyNDQuMzc1CTMwNTAwCTAuMDAwCTI0NC4wMDAJMjQ4LjAwMAorMTgJMTg5CTI0My4yNTAJ MzE2MDAJMC4wMDAJMjQwLjUwMAkyNDQuMjUwCisxOAkxOTAJMjQ2LjI1MAkzNDkwMAkwLjAwMAky NDUuMjUwCTI0OC41MDAKKzE4CTE5MQkyNDUuMjUwCTM1MzAwCTAuMDAwCTI0NS4xMzAJMjQ5Ljc1 MAorMTgJMTkyCTI0MS4yNTAJMzA3MDAJMC4wMDAJMjQwLjI1MAkyNDQuNTAwCisxOQkxOTMJMjQw LjUwMAkzNDgwMAkwLjAwMAkyMzcuNTAwCTI0My4yNTAKKzE5CTE5NAkyNDYuNTAwCTQzNjAwCTAu MDAwCTIzNi41MDAJMjQ2LjUwMAorMTkJMTk1CTI0OS41MDAJNjgzMDAJMC4wMDAJMjQ2LjUwMAky NTEuNTAwCisxOQkxOTYJMjUwLjAwMAkzNTEwMAkwLjAwMAkyNDkuMTI1CTI1NC4wMDAKKzE5CTE5 NwkyNDguNzUwCTU2NDAwCTAuMDAwCTI0Ny4wMDAJMjUxLjUwMAorMTkJMTk4CTI0OS4yNTAJMzIx MDAJMC4wMDAJMjQ2Ljc1MAkyNTAuNTAwCisxOQkxOTkJMjQ3LjUwMAkyOTMwMAkwLjAwMAkyNDcu Mzc1CTI1MC43NTAKKzE5CTIwMAkyNDUuNzUwCTIwMDAwCTAuMDAwCTI0NS4yNTAJMjQ3LjUwMAor MTkJMjAxCTI0Ni4yNTAJMjI1MDAJMC4wMDAJMjQ1LjEyNQkyNDYuNzUwCisxOQkyMDIJMjQzLjAw MAkzODgwMAkwLjAwMAkyNDIuNTAwCTI0Ny43NTAKKzIwCTIwMwkxODIuMjUwCTg0MzAwCTAuMDAw CTE3Ni41MDAJMTgzLjUwMAorMjAJMjA0CTE3OS4wMDAJNjMzMDAJMC4wMDAJMTc5LjAwMAkxODUu NTAwCisyMAkyMDUJMTczLjAwMAk1OTIwMAkwLjAwMAkxNzEuNzUwCTE3OC41MDAKKzIwCTIwNgkx NzEuNTAwCTY5NjAwCTAuMDAwCTE3MC4yNTAJMTc1LjI1MAorMjAJMjA3CTE2NS4xMjUJNzA1MDAJ MC4wMDAJMTY1LjEyNQkxNzIuMjUwCisyMAkyMDgJMTU2LjUwMAkxMTMyMDAJMC4wMDAJMTU1LjI1 MAkxNjUuMDAwCisyMAkyMDkJMTUyLjAwMAkxMzEwMDAJMC4wMDAJMTUwLjUwMAkxNTcuMjUwCisy MAkyMTAJMTU5LjYyNQkxMDkxMDAJMC4wMDAJMTUwLjUwMAkxNTkuNzUwCisyMAkyMTEJMTYxLjg4 MAk4NzgwMAkwLjAwMAkxNjEuNzUwCTE2OC41MDAKKzIwCTIxMgkxNjYuNTAwCTc1ODAwCTAuMDAw CTE1OC4wMDAJMTY2LjUwMAorMjAJMjEzCTE3MC41MDAJOTU5MDAJMC4wMDAJMTY5LjI1MAkxNzMu NzUwCisyMAkyMTQJMTcxLjUwMAk4MDYwMAkwLjAwMAkxNjYuNTAwCTE3My41MDAKKzIwCTIxNQkx NjkuMjUwCTU5NTAwCTAuMDAwCTE2OC4yNTAJMTc1LjAwMAorMjAJMjE2CTE2Ni43NTAJNDcwMDAJ MC4wMDAJMTY0Ljc1MAkxNjguMDAwCisyMAkyMTcJMTY1LjAwMAk1OTcwMAkwLjAwMAkxNjUuMDAw CTE3MS4wMDAKKzIwCTIxOAkxNjQuMDAwCTI1ODAwCTAuMDAwCTE2MC4yNTAJMTY0LjAwMAorMjAJ MjE5CTE2MC44NzUJNTE5MDAJMC4wMDAJMTYwLjAwMAkxNjYuNzUwCisyMAkyMjAJMTU5LjAwMAk4 NDEwMAkwLjAwMAkxNTMuNTAwCTE1OS41MDAKKzIwCTIyMQkxNjAuMjUwCTEyNTgwMAkwLjAwMAkx NTQuMjUwCTE2MS43NTAKKzIwCTIyMgkxNTkuNTAwCTYzOTAwCTAuMDAwCTE1OC41MDAJMTYzLjUw MAorMjAJMjIzCTE1Ny43NTAJNTYxMDAJMC4wMDAJMTU1LjYyNQkxNjAuNTAwCisyMAkyMjQJMTU2 LjI1MAk3NDIwMAkwLjAwMAkxNTQuMjUwCTE1OS41MDAKKzIwCTIyNQkxNjQuMTI1CTYwOTAwCTAu MDAwCTE1OS4yNTAJMTY0Ljc1MAorMjAJMjI2CTE2Mi4wMDAJODcwMDAJMC4wMDAJMTYwLjc1MAkx NjQuNTAwCisyMQkyMjcJMTYyLjI1MAk1MTgwMAkwLjAwMAkxNjEuNzUwCTE2Ni4wMDAKKzIxCTIy OAkxNjQuMjUwCTY1MzAwCTAuMDAwCTE2MC4xMzAJMTY0LjI1MAorMjEJMjI5CTE2OC4wMDAJNDg5 MDAJMC4wMDAJMTY2LjAwMAkxNjguODc1CisyMQkyMzAJMTY4Ljg3NQk0NTEwMAkwLjAwMAkxNjgu MjUwCTE3MS4zNzUKKzIxCTIzMQkxNjcuNTAwCTc4MDAwCTAuMDAwCTE2Ni43NTAJMTcxLjI1MAor MjEJMjMyCTE2Ni42MjUJNTMwMDAJMC4wMDAJMTY1LjUwMAkxNzAuMjUwCisyMQkyMzMJMTY1Ljc1 MAk0OTAwMAkwLjAwMAkxNjMuNTAwCTE2Ni41MDAKKzIxCTIzNAkxNjMuMjUwCTU4NzAwCTAuMDAw CTE2My4yNTAJMTY3LjEyNQorMjEJMjM1CTE2OC41MDAJNTY3MDAJMC4wMDAJMTYyLjYzMAkxNjgu NTAwCisyMgkyMzYJMjEyLjAwMAk4OTIwMAkwLjAwMAkyMTIuMDAwCTIxNy43NTAKKzIyCTIzNwky MDcuNTAwCTExNzcwMAkwLjAwMAkyMDYuMDAwCTIwOS43NTAKKzIyCTIzOAkyMTIuMDAwCTk1MTAw CTAuMDAwCTIwNy41MDAJMjEyLjUwMAorMjIJMjM5CTIxMi4yNTAJNzQwMDAJMC4wMDAJMjExLjUw MAkyMTQuMDAwCisyMgkyNDAJMjE1LjUwMAk2ODQwMAkwLjAwMAkyMTEuODgwCTIxNS43NTAKKzIy CTI0MQkyMjAuMDAwCTc5MjAwCTAuMDAwCTIxNi4wMDAJMjIwLjAwMAorMjMJMjQyCTIyMi41MDAJ NDU3MDAJMC4wMDAJMjIyLjI1MAkyMjQuNjMwCisyMwkyNDMJMjIzLjI1MAk0MzAwMAkwLjAwMAky MjEuNTAwCTIyMy41MDAKKzIzCTI0NAkyMjQuMjUwCTQ3NzAwCTAuMDAwCTIyMy41MDAJMjI1LjI1 MAorMjMJMjQ1CTIyNi41MDAJNDM4MDAJMC4wMDAJMjIzLjM4MAkyMjYuNTAwCisyMwkyNDYJMjMw LjAwMAk4ODgwMAkwLjAwMAkyMjYuMjUwCTIzMC4wMDAKKzIzCTI0NwkyMjkuMzgwCTExODAwMAkw LjAwMAkyMjkuMDAwCTIzMC44ODAKKzIzCTI0OAkyMjguNTAwCTEyNzEwMAkwLjAwMAkyMjguMzc1 CTIzMS4wMDAKKzIzCTI0OQkyMzAuMzgwCTEzNjQwMAkwLjAwMAkyMjguNTAwCTIzMC43NTAKKzI0 CTI1MAkyNDkuODgwCTk3NTAwCTAuMDAwCTI0OS42MzAJMjU1LjAwMAorMjQJMjUxCTI1MS4wMDAJ OTA0MDAJMC4wMDAJMjQ4LjEzMAkyNTIuMjUwCisyNAkyNTIJMjU2LjUwMAk5MDQwMAkwLjAwMAky NTEuMDAwCTI1Ny4wMDAKKzI0CTI1MwkyNTcuNzUwCTExMTAwMAkwLjAwMAkyNTcuNjI1CTI1OS43 NTAKKzI0CTI1NAkyNTkuMjUwCTg3MjAwCTAuMDAwCTI1Ni4wMDAJMjU5LjI1MAorMjQJMjU1CTI2 MS4wMDAJMTExMTAwCTAuMDAwCTI1OC4yNTAJMjYxLjI1MAorMjQJMjU2CTI2My43NTAJNzU5MDAJ MC4wMDAJMjYxLjI1MAkyNjQuNTAwCisyNAkyNTcJMjU4LjAwMAkxMjExMDAJMC4wMDAJMjU3Ljc1 MAkyNjMuMjUwCisyNAkyNTgJMjU0LjAwMAkxMjU1MDAJMC4wMDAJMjU0LjAwMAkyNTcuMjUwCisy NAkyNTkJMjUzLjUwMAk3ODQwMAkwLjAwMAkyNTIuNzUwCTI1Ny43NTAKKzI0CTI2MAkyNTguMDAw CTc0NzAwCTAuMDAwCTI1My4wMDAJMjU4LjAwMAorMjUJMjYxCTI3OS43NTAJNjI3MDAJMC4wMDAJ Mjc3LjEzMAkyODAuMDAwCisyNQkyNjIJMjc3LjYyNQk4NTUwMAkwLjAwMAkyNzYuNzUwCTI4MC4z NzUKKzI1CTI2MwkyNzYuNjMwCTk5ODAwCTAuMDAwCTI3Ni42MzAJMjgwLjM4MAorMjUJMjY0CTI3 Ni4yNTAJMTEzNjAwCTAuMDAwCTI3Ni4wMDAJMjc5LjUwMAorMjUJMjY1CTI3NC4yNTAJMTg3MTAw CTAuMDAwCTI3Mi43NTAJMjc2LjM4MAorMjUJMjY2CTI3Mi4wMDAJMTA1MzAwCTAuMDAwCTI3Mi4w MDAJMjc1LjUwMAorMjUJMjY3CTI3MC41MDAJMTExMDAwCTAuMDAwCTI2OC4wMDAJMjcyLjc1MAor MjUJMjY4CTI3MS4wMDAJNjYwMDAJMC4wMDAJMjcwLjUwMAkyNzIuNTAwCisyNQkyNjkJMjcyLjUw MAk0MzAwMAkwLjAwMAkyNzAuMjUwCTI3Mi41MDAKKzI1CTI3MAkyNzMuMDAwCTU2MjAwCTAuMDAw CTI3Mi4wMDAJMjczLjg4MAorMjUJMjcxCTI3NS41MDAJNTUyMDAJMC4wMDAJMjczLjc1MAkyNzUu NTAwCisyNQkyNzIJMjcyLjI1MAk3MzQwMAkwLjAwMAkyNzIuMDAwCTI3NS41MDAKKzI2CTI3Mwky NjIuMjUwCTg5MDAwCTAuMDAwCTI2Mi4wMDAJMjY3Ljc1MAorMjYJMjc0CTI1OS41MDAJMTQ2MTAw CTAuMDAwCTI1Ny41MDAJMjYxLjc1MAorMjYJMjc1CTI2MC4yNTAJOTAzMDAJMC4wMDAJMjU3LjUw MAkyNjAuNjI1CisyNgkyNzYJMjYxLjAwMAk3NDEwMAkwLjAwMAkyNTguODgwCTI2MS44ODAKKzI2 CTI3NwkyNjQuNTAwCTQ0NDAwCTAuMDAwCTI2MC4yNTAJMjY0Ljg4MAorMjYJMjc4CTI2Mi4wMDAJ Nzg5MDAJMC4wMDAJMjYxLjI1MAkyNjQuNTAwCisyNwkyNzkJMjcyLjUwMAkxMzIwMDAJMC4wMDAJ MjcwLjEzMAkyNzIuNTAwCisyNwkyODAJMjcyLjAwMAk3OTgwMAkwLjAwMAkyNzEuMzc1CTI3Mi42 MjUKKzI3CTI4MQkyNzEuMTMwCTc1NjAwCTAuMDAwCTI3MC43NTAJMjcyLjg4MAorMjcJMjgyCTI3 MC4wMDAJMTEzODAwCTAuMDAwCTI2OS44ODAJMjcxLjUwMAorMjcJMjgzCTI2NC4wMDAJMTc5NTAw CTAuMDAwCTI2My41MDAJMjcwLjUwMAorMjcJMjg0CTI1OC4wMDAJMjE1MzAwCTAuMDAwCTI1Ny41 MDAJMjYzLjI1MAorMjcJMjg1CTI1OC4yNTAJMTU0MjAwCTAuMDAwCTI1Ni41MDAJMjU5LjYyNQor MjcJMjg2CTI1OS41MDAJOTU2MDAJMC4wMDAJMjU3LjUwMAkyNjAuNTAwCisyNwkyODcJMjYxLjI1 MAk5NjUwMAkwLjAwMAkyNTkuMjUwCTI2Mi4wMDAKKzI3CTI4OAkyNTkuNzUwCTExOTAwMAkwLjAw MAkyNTkuMjUwCTI2MS42MjUKKzI3CTI4OQkyNTguNzUwCTgxNTAwCTAuMDAwCTI1Ny4xMzAJMjU5 Ljc1MAorMjgJMjkwCTI1Ny4zODAJNTM3MDAJMC4wMDAJMjU3LjI1MAkyNTkuMjUwCisyOAkyOTEJ MjU2LjAwMAk1MjIwMAkwLjAwMAkyNTUuMzc1CTI1Ny41MDAKKzI4CTI5MgkyNTcuNzUwCTc2MjAw CTAuMDAwCTI1NS42MzAJMjU4LjYzMAorMjgJMjkzCTI1OC43NTAJOTM0MDAJMC4wMDAJMjU3LjM4 MAkyNTkuNTAwCisyOAkyOTQJMjU4Ljc1MAk5OTAwMAkwLjAwMAkyNTguNTAwCTI1OS42MzAKKzI4 CTI5NQkyNTcuMjUwCTEyMzEwMAkwLjAwMAkyNTUuNzUwCTI1Ny41MDAKKzI4CTI5NgkyNjAuNTAw CTE4ODMwMAkwLjAwMAkyNTcuMDAwCTI2MS4wMDAKKzI4CTI5NwkyNjAuMjUwCTEwMzMwMAkwLjAw MAkyNTkuMDAwCTI2MS4yNTAKKzI5CTI5OAkyNjQuMjUwCTExMDEwMAkwLjAwMAkyNjEuNjMwCTI2 NC4zODAKKzI5CTI5OQkyNjYuMDAwCTk4MTAwCTAuMDAwCTI2NC4yNTAJMjY2Ljc1MAorMjkJMzAw CTI2Ny41MDAJMTQ2MTAwCTAuMDAwCTI2Ni42MjUJMjY4LjAwMAorMjkJMzAxCTI3MC4yNTAJMTk5 NDAwCTAuMDAwCTI2Ny41MDAJMjcwLjI1MAorMjkJMzAyCTI3MC4yNTAJODk4MDAJMC4wMDAJMjY5 LjAwMAkyNzAuNjI1CisyOQkzMDMJMjcxLjAwMAk3ODYwMAkwLjAwMAkyNjkuMjUwCTI3MS4yNTAK KzI5CTMwNAkyNzIuNzUwCTEwNzYwMAkwLjAwMAkyNjkuODgwCTI3My41MDAKKzI5CTMwNQkyNzMu NTAwCTExOTIwMAkwLjAwMAkyNzIuNzUwCTI3NS4yNTAKKzI5CTMwNgkyNzMuNTAwCTAJMC4wMDAJ MC4wMDAJMC4wMDAKKzMwCTMwNwkyMzYuMjUwCTE0NjEwMAkwLjAwMAkyMzYuMjUwCTI0Mi4wMDAK KzMwCTMwOAkyMzkuNTAwCTM1ODEwMAkwLjAwMAkyMzUuNTAwCTIzOS41MDAKKzMwCTMwOQkyNDMu NTAwCTI0MTUwMAkwLjAwMAkyNDAuNTAwCTI0NC4wMDAKKzMwCTMxMAkyNTEuMTI1CTMwNDgwMAkw LjAwMAkyNDguMzc1CTI1My42MjUKKzMwCTMxMQkyNTEuMjUwCTIzMTAwMAkwLjAwMAkyNDguODc1 CTI1My4wMDAKKzMwCTMxMgkyNTMuMDAwCTE1MjgwMAkwLjAwMAkyNDkuNjI1CTI1NC4wMDAKKzMw CTMxMwkyNTMuNTAwCTE3NTEwMAkwLjAwMAkyNTIuNTAwCTI1Ny44ODAKKzMwCTMxNAkyNTQuMDAw CTE0MTgwMAkwLjAwMAkyNTIuMTI1CTI1NS41MDAKKzMwCTMxNQkyNTguMDAwCTExMDAwMAkwLjAw MAkyNTMuMDAwCTI1OC4yNTAKKzMwCTMxNgkyNjEuNzUwCTM3NDIwMAkwLjAwMAkyNjEuMjUwCTI2 NC4wMDAKKzMwCTMxNwkyNjIuMzgwCTI3NTEwMAkwLjAwMAkyNjEuMzgwCTI2NS4wMDAKKzMwCTMx OAkyNjEuNTAwCTE2OTcwMAkwLjAwMAkyNTkuODc1CTI2MS43NTAKKzMxCTMxOQkyNjIuNTAwCTg3 MTAwCTAuMDAwCTI2Mi4yNTAJMjY2LjUwMAorMzEJMzIwCTI1OC4yNTAJOTExMDAJMC4wMDAJMjU3 Ljc1MAkyNjIuNTAwCiszMQkzMjEJMjYwLjg4MAkxMDU2MDAJMC4wMDAJMjU4LjI1MAkyNjIuMDAw CiszMQkzMjIJMjYxLjc1MAk4NTAwMAkwLjAwMAkyNTguNTAwCTI2MS44ODAKKzMxCTMyMwkyNTku NjMwCTY4NDAwCTAuMDAwCTI1OS4wMDAJMjYyLjI1MAorMzEJMzI0CTI1Ny4yNTAJNDU1MDAJMC4w MDAJMjU3LjI1MAkyNjAuMjUwCiszMQkzMjUJMjU2Ljc1MAkzOTkwMAkwLjAwMAkyNTUuMDAwCTI1 Ny41MDAKKzMxCTMyNgkyNTguMDAwCTEwMjQwMAkwLjAwMAkyNTUuMjUwCTI1OS41MDAKKzMyCTMy NwkyNjguMTI1CTE4MDcwMAkwLjAwMAkyNjcuNzUwCTI3Mi4wMDAKKzMyCTMyOAkyNzAuMjUwCTgw OTAwCTAuMDAwCTI2Ny4wMDAJMjcwLjI1MAorMzIJMzI5CTI3MS4wMDAJMTA3MjAwCTAuMDAwCTI2 Ny43NTAJMjcxLjAwMAorMzIJMzMwCTI3My4wMDAJMTQ5NDAwCTAuMDAwCTI2OS4yNTAJMjczLjAw MAorMzIJMzMxCTI3My41MDAJMjYyOTAwCTAuMDAwCTI3My4wMDAJMjc2Ljc1MAorMzIJMzMyCTI3 Ni4yNTAJMTUwMzAwCTAuMDAwCTI3My4wMDAJMjc2LjI1MAorMzIJMzMzCTI3OC42MzAJMTcyODAw CTAuMDAwCTI3NS41MDAJMjc5LjUwMAorMzIJMzM0CTI4MS4wMDAJMTMyNzAwCTAuMDAwCTI3OC43 NTAJMjgxLjUwMAorMzIJMzM1CTI3OS4xMjUJMTc4NDAwCTAuMDAwCTI3OS4wMDAJMjgxLjc1MAor MzMJMzM2CTMxMS4wMDAJOTY5MDAJMC4wMDAJMzA4LjEzMAkzMTEuMDAwCiszMwkzMzcJMzA4LjI1 MAk4NTAwMAkwLjAwMAkzMDcuNjI1CTMxMS4wMDAKKzMzCTMzOAkzMDUuNzUwCTExOTIwMAkwLjAw MAkzMDQuNTAwCTMwNi42MjUKKzMzCTMzOQkzMDMuNTAwCTEzMzIwMAkwLjAwMAkzMDMuMDAwCTMw Ni41MDAKKzMzCTM0MAkyOTguNTAwCTE2ODQwMAkwLjAwMAkyOTcuMTMwCTI5OS43NTAKKzMzCTM0 MQkyOTkuNjMwCTc3OTAwCTAuMDAwCTI5OS4xMzAJMzAwLjYzMAorMzMJMzQyCTMwMS43NTAJOTEx MDAJMC4wMDAJMzAwLjEzMAkzMDEuODgwCiszMwkzNDMJMzA2LjYzMAk3ODcwMAkwLjAwMAkyOTku NzUwCTMwNy4wMDAKKzMzCTM0NAkzMDguMTI1CTEzMjYwMAkwLjAwMAkzMDYuNzUwCTMxMC4wMDAK KzMzCTM0NQkzMDUuNTAwCTgyNDAwCTAuMDAwCTMwNC4wMDAJMzA4LjI1MAorMzQJMzQ2CTMwOC44 NzUJODA2MDAJMC4wMDAJMzA4LjI1MAkzMTIuODc1CiszNAkzNDcJMzA2Ljc1MAkxMjQwMDAJMC4w MDAJMzA2LjI1MAkzMDkuMjUwCiszNAkzNDgJMzEwLjAwMAkxMjMzMDAJMC4wMDAJMzA3LjAwMAkz MTAuMjUwCiszNAkzNDkJMzEwLjI1MAkxMDI2MDAJMC4wMDAJMzA5Ljc1MAkzMTIuODc1CiszNAkz NTAJMzEyLjAwMAk4MDQwMAkwLjAwMAkzMDkuODgwCTMxMi4yNTAKKzM0CTM1MQkzMDguODgwCTEx NTkwMAkwLjAwMAkzMDguNTAwCTMxMi4wMDAKKzM0CTM1MgkzMTAuNTAwCTk4MzAwCTAuMDAwCTMw Ny41MDAJMzEwLjUwMAorMzQJMzUzCTMxNC4yNTAJMTE2OTAwCTAuMDAwCTMwOS43NTAJMzE0LjI1 MAorMzQJMzU0CTMxNS42MjUJMTE4NjAwCTAuMDAwCTMxNC4yNTAJMzE3LjUwMAorMzQJMzU1CTMx OC4wMDAJOTg3MDAJMC4wMDAJMzE1LjAwMAkzMTguNTAwCiszNAkzNTYJMzE5Ljc1MAkxNDkwMDAJ MC4wMDAJMzE4LjAwMAkzMjEuNTAwCiszNAkzNTcJMzExLjI1MAkxMjE5MDAJMC4wMDAJMzExLjAw MAkzMTcuNTAwCiszNAkzNTgJMzA5LjAwMAk4NDQwMAkwLjAwMAkzMDguMTMwCTMwOS44ODAKKzM0 CTM1OQkzMTIuMDAwCTEyNjUwMAkwLjAwMAkzMDguNjI1CTMxMi4yNTAKKzM1CTM2MAk3OC4wMDAJ NTEyMTAwCTAuMDAwCTc3LjUwMAk3OC41MDAKKzM1CTM2MQk3NS4zNzUJNjA3NzAwCTAuMDAwCTc1 LjI1MAk3OC4wMDAKKzM1CTM2Mgk3NC42MjUJNjI4MzAwCTAuMDAwCTczLjc1MAk3NS4yNTAKKzM1 CTM2Mwk3NC4yNTAJNTE3MzAwCTAuMDAwCTczLjg3NQk3NS4wMDAKKzM1CTM2NAk3Mi43NTAJMzU4 MzAwCTAuMDAwCTcyLjYyNQk3NC4wMDAKKzM1CTM2NQk3Mi42MzAJMzk0NjAwCTAuMDAwCTcyLjI1 MAk3My41MDAKKzM1CTM2Ngk3My4wMDAJNTk5MjAwCTAuMDAwCTcyLjEzMAk3My43NTAKKzM1CTM2 Nwk3My41MDAJNDUwMjAwCTAuMDAwCTcyLjg3NQk3NC41MDAKKzM1CTM2OAk3NC4xMzAJMzA0NDAw CTAuMDAwCTczLjg4MAk3NC4yNTAKKzM1CTM2OQk3My44NzUJMjg5MjAwCTAuMDAwCTczLjM3NQk3 NC41MDAKKzM2CTM3MAk3Mi4yNTAJNDk4MzAwCTAuMDAwCTY5Ljg3NQk3Mi4zNzUKKzM2CTM3MQk3 MS42MzAJNDc2ODAwCTAuMDAwCTcxLjAwMAk3Mi41MDAKKzM2CTM3Mgk3MS4yNTAJMjgyNjAwCTAu MDAwCTcxLjAwMAk3MS44ODAKKzM2CTM3Mwk3MS42MzAJMzUwMzAwCTAuMDAwCTcwLjg4MAk3MS44 ODAKKzM2CTM3NAk3MC44ODAJMjYxNTAwCTAuMDAwCTcwLjUwMAk3MS42MzAKKzM2CTM3NQk3MC41 MDAJNTMxNzAwCTAuMDAwCTcwLjM4MAk3MS4xMzAKKzM2CTM3Ngk2OS42MjUJMzkxOTAwCTAuMDAw CTY5LjUwMAk3MC43NTAKKzM2CTM3Nwk2OS42MjUJMzM3MDAwCTAuMDAwCTY5LjEyNQk3MC41MDAK KzM2CTM3OAk3MC4wMDAJMzM4OTAwCTAuMDAwCTY5LjUwMAk3MC42MjUKKzM2CTM3OQk3MC4wMDAJ MzkzNDAwCTAuMDAwCTY5LjYyNQk3MC4xMjUKKzM2CTM4MAk2OS42MzAJMjkzMjAwCTAuMDAwCTY5 LjYzMAk3MC4yNTAKKzM2CTM4MQk2OS41MDAJMjA1MzAwCTAuMDAwCTY5LjUwMAk3MC4wMDAKKzM2 CTM4Mgk3MC4wMDAJMjY4MzAwCTAuMDAwCTY5Ljc1MAk3MC4wMDAKKzM2CTM4Mwk2OC42MzAJMzgx NTAwCTAuMDAwCTY4LjUwMAk2OS44ODAKKzM2CTM4NAk2OC4yNTAJNjkzMjAwCTAuMDAwCTY3LjI1 MAk2OC41MDAKKzM2CTM4NQk2Ny42MzAJMzE2MTAwCTAuMDAwCTY3LjUwMAk2OC4yNTAKKzM2CTM4 Ngk2Ny43NTAJNDA2NjAwCTAuMDAwCTY3LjM4MAk2OC4wMDAKKzM2CTM4Nwk2Ny41MDAJMzA1ODAw CTAuMDAwCTY3LjM3NQk2Ny44NzUKKzM2CTM4OAk2Ni41MDAJNDY2NTAwCTAuMDAwCTY2LjEyNQk2 Ny43NTAKKzM2CTM4OQk2Ni4yNTAJNjUyODAwCTAuMDAwCTY1Ljc1MAk2Ni42MjUKKzM2CTM5MAk2 Ni43NTAJMzk5MzAwCTAuMDAwCTY2LjEyNQk2Ni44NzUKKzM2CTM5MQk2Ny44ODAJNTAyMTAwCTAu MDAwCTY2LjUwMAk2OC4zODAKKzM2CTM5Mgk2OC41MDAJNTM4OTAwCTAuMDAwCTY4LjM4MAk2OS4y NTAKKzM2CTM5Mwk2Ny44ODAJNDA3NzAwCTAuMDAwCTY3Ljc1MAk2OC41MDAKKzM2CTM5NAk2Ny43 NTAJMzk2NTAwCTAuMDAwCTY3Ljc1MAk2OC42MzAKKzM2CTM5NQk3MS4yNTAJNDM5OTAwCTAuMDAw CTY3LjYyNQk3MS4zNzUKKzM2CTM5Ngk3MC4wMDAJNjI2MTAwCTAuMDAwCTY5LjM4MAk3MS4wMDAK KzM3CTM5Nwk2NS4wMDAJMjA4OTAwCTAuMDAwCTY0LjUwMAk2NS4xMjUKKzM3CTM5OAk2NS4zODAJ MjkxODAwCTAuMDAwCTY0Ljg4MAk2NS4zODAKKzM3CTM5OQk2NS43NTAJMzc3NjAwCTAuMDAwCTY1 LjUwMAk2Ni4zODAKKzM3CTQwMAk2Ny4yNTAJMjgzNTAwCTAuMDAwCTY1LjM4MAk2Ny4yNTAKKzM3 CTQwMQk2Ni42MzAJNTgyNDAwCTAuMDAwCTY2LjM4MAk2Ny42MzAKKzM3CTQwMgk2Ni4zNzUJMjU3 MjAwCTAuMDAwCTY2LjEyNQk2Ni42MjUKKzM3CTQwMwk2NS42MjUJMzkzOTAwCTAuMDAwCTY1LjYy NQk2Ni43NTAKKzM3CTQwNAk2NS4yNTAJMjk1NTAwCTAuMDAwCTY1LjEzMAk2NS43NTAKKzM3CTQw NQk2NS4wMDAJMzI5NzAwCTAuMDAwCTY0LjYzMAk2NS4yNTAKKzM3CTQwNgk2Ni4wMDAJNDEyNDAw CTAuMDAwCTY0Ljg4MAk2Ni4xMzAKKzM4CTQwNwk2NC44NzUJMTc2MzAwCTAuMDAwCTY0LjAwMAk2 NC44NzUKKzM4CTQwOAk2NC44NzUJMTYzMzAwCTAuMDAwCTY0LjM3NQk2NS4xMjUKKzM4CTQwOQk2 NC43NTAJMjUzODAwCTAuMDAwCTY0LjI1MAk2NS4wMDAKKzM4CTQxMAk2NC4yNTAJMjc5MjAwCTAu MDAwCTY0LjAwMAk2NC42MzAKKzM4CTQxMQk2NC4zODAJMzA4NjAwCTAuMDAwCTY0LjAwMAk2NC42 MzAKKzM4CTQxMgk2Mi41MDAJNDEyMDAwCTAuMDAwCTYyLjUwMAk2NC41MDAKKzM4CTQxMwk2My41 MDAJNjEwMzAwCTAuMDAwCTYxLjI1MAk2My41MDAKKzM4CTQxNAk2My4zODAJNDcyODAwCTAuMDAw CTYzLjAwMAk2My43NTAKKzM5CTQxNQk1NC42MjUJNTEyOTAwCTAuMDAwCTUzLjM3NQk1NC43NTAK KzM5CTQxNgk1NC4yNTAJNTA0OTAwCTAuMDAwCTU0LjAwMAk1NS4yNTAKKzM5CTQxNwk1My41MDAJ NjUxNzAwCTAuMDAwCTUzLjUwMAk1NS4wMDAKKzM5CTQxOAk1My4wMDAJMzM0MTAwCTAuMDAwCTUy Ljc1MAk1My43NTAKKzM5CTQxOQk1Mi4wMDAJNTc5OTAwCTAuMDAwCTUxLjg3NQk1My41MDAKKzM5 CTQyMAk1MS4xMjUJNjcyMzAwCTAuMDAwCTUxLjAwMAk1Mi44NzUKKzM5CTQyMQk1MS4yNTAJNDUx MDAwCTAuMDAwCTUwLjM4MAk1MS42MzAKKzM5CTQyMgk1MS4yNTAJNDExOTAwCTAuMDAwCTUwLjg3 NQk1MS43NTAKKzM5CTQyMwk1MS4yNTAJNjYzODAwCTAuMDAwCTUwLjUwMAk1MS42MjUKKzM5CTQy NAk1My44NzUJODIxODAwCTAuMDAwCTUyLjAwMAk1NC41MDAKKzM5CTQyNQk1My41MDAJNzYxNDAw CTAuMDAwCTUzLjI1MAk1NC4zNzUKKzQwCTQyNgk2Ni4wMDAJNDM3MjAwCTAuMDAwCTY0LjI1MAk2 Ni4wMDAKKzQwCTQyNwk2NS4xMzAJNTUzMDAwCTAuMDAwCTY0Ljc1MAk2Ni4xMzAKKzQwCTQyOAk2 NC44ODAJNDQ5MDAwCTAuMDAwCTY0LjM4MAk2NS4zODAKKzQwCTQyOQk2NC43NTAJMzk3NDAwCTAu MDAwCTY0LjI1MAk2NS4wMDAKKzQwCTQzMAk2NC4zODAJMzc1ODAwCTAuMDAwCTYzLjg4MAk2NC42 MzAKKzQwCTQzMQk2NS4wMDAJMjcwODAwCTAuMDAwCTY0LjAwMAk2NS4yNTAKKzQwCTQzMgk2NS4x MjUJNDEwNjAwCTAuMDAwCTY0LjM3NQk2NS41MDAKKzQwCTQzMwk2NS41MDAJNTU1NzAwCTAuMDAw CTY1LjEzMAk2Ni4wMDAKKzQwCTQzNAk2NS4yNTAJNjQ0MTAwCTAuMDAwCTY0LjM4MAk2NS4zODAK KzQxCTQzNQk1Ni43NTAJNDkyNTAwCTAuMDAwCTU2LjI1MAk1Ni44ODAKKzQxCTQzNgk1Ni42MzAJ NjE2MjAwCTAuMDAwCTU1Ljc1MAk1Ni42MzAKKzQxCTQzNwk1Ni4zODAJMzQ4MDAwCTAuMDAwCTU2 LjEzMAk1Ni42MzAKKzQxCTQzOAk1NS42MjUJNDYxODAwCTAuMDAwCTU1LjUwMAk1Ni4zNzUKKzQx CTQzOQk1NS41MDAJNDM4NDAwCTAuMDAwCTU1LjI1MAk1NS44NzUKKzQxCTQ0MAk1Ni4xMzAJNTE0 OTAwCTAuMDAwCTU1LjEzMAk1Ni4zODAKKzQxCTQ0MQk1Ny44ODAJNjczOTAwCTAuMDAwCTU1Ljg4 MAk1OC4xMzAKKzQxCTQ0Mgk1OC4wMDAJNzAwMjAwCTAuMDAwCTU3LjI1MAk1OC41MDAKKzQxCTQ0 Mwk1OC43NTAJNzk2OTAwCTAuMDAwCTU3Ljg4MAk1OS4xMzAKKzQxCTQ0NAk2MC4yNTAJMTA4OTIw MAkwLjAwMAk1OS43NTAJNjAuNzUwCis0MQk0NDUJNTkuODgwCTc0NzYwMAkwLjAwMAk1OS44ODAJ NjAuNTAwCis0Mgk0NDYJNTUuODc1CTM4NzMwMAkwLjAwMAk1NS4wMDAJNTYuNzUwCis0Mgk0NDcJ NTUuNTAwCTM5NjYwMAkwLjAwMAk1NS41MDAJNTYuNTAwCis0Mgk0NDgJNTQuODgwCTM3MjUwMAkw LjAwMAk1NC41MDAJNTUuMzgwCis0Mgk0NDkJNTQuMTMwCTU1MTYwMAkwLjAwMAk1My41MDAJNTUu MTMwCis0Mgk0NTAJNTQuMDAwCTM0NjEwMAkwLjAwMAk1My44NzUJNTQuNTAwCis0Mgk0NTEJNTQu Mzc1CTQyNzMwMAkwLjAwMAk1NC4xMjUJNTUuMDAwCis0Mgk0NTIJNTQuNTAwCTM4OTgwMAkwLjAw MAk1My4zODAJNTQuNjMwCis0Mgk0NTMJNTQuNjI1CTQ5NzYwMAkwLjAwMAk1NC4yNTAJNTUuMjUw Cis0Mgk0NTQJNTMuNjI1CTUyNDIwMAkwLjAwMAk1My4yNTAJNTQuMjUwCis0Mwk0NTUJNjQuNjI1 CTEwNTg4MDAJMC4wMDAJNjMuMzc1CTY0LjYyNQorNDMJNDU2CTY0LjUwMAk2ODk0MDAJMC4wMDAJ NjQuMjUwCTY0Ljg4MAorNDMJNDU3CTYzLjc1MAkxMTQwNjAwCTAuMDAwCTYzLjYyNQk2NS4xMjUK KzQzCTQ1OAk2My4yNTAJODkyODAwCTAuMDAwCTYzLjAwMAk2My44ODAKKzQzCTQ1OQk2My44NzUJ NTEyMjAwCTAuMDAwCTYzLjI1MAk2My44NzUKKzQzCTQ2MAk2NC4zNzUJNjQ1ODAwCTAuMDAwCTY0 LjAwMAk2NC43NTAKKzQzCTQ2MQk2NS43NTAJMTIxNDEwMAkwLjAwMAk2NC41MDAJNjUuNzUwCis0 Mwk0NjIJNjYuMDAwCTkxMTcwMAkwLjAwMAk2NS4wMDAJNjYuMTMwCis0Mwk0NjMJNjUuMTI1CTY4 NTYwMAkwLjAwMAk2NC42MjUJNjUuNzUwCis0Mwk0NjQJNjQuODgwCTcxNzIwMAkwLjAwMAk2NC41 MDAJNjUuMjUwCis0Mwk0NjUJNjQuMTI1CTQ5MTYwMAkwLjAwMAk2NC4xMjUJNjQuNjI1Cis0Mwk0 NjYJNjQuMjUwCTc1OTIwMAkwLjAwMAk2NC4wMDAJNjQuNzUwCis0Mwk0NjcJNjQuNTAwCTM4NDYw MAkwLjAwMAk2NC4wMDAJNjQuNzUwCis0Mwk0NjgJNjQuNzUwCTQ5NzUwMAkwLjAwMAk2NC41MDAJ NjUuMjUwCis0Mwk0NjkJNjUuMTI1CTg1NTYwMAkwLjAwMAk2NC43NTAJNjUuMjUwCis0Mwk0NzAJ NjQuODc1CTc3NzIwMAkwLjAwMAk2NC43NTAJNjUuMTI1Cis0Mwk0NzEJNjQuNzUwCTQ4NzkwMAkw LjAwMAk2NC43NTAJNjUuMTMwCis0Mwk0NzIJNjMuODc1CTU2OTgwMAkwLjAwMAk2My44NzUJNjQu ODc1Cis0Mwk0NzMJNjQuMzgwCTM3MjQwMAkwLjAwMAk2NC4wMDAJNjQuNzUwCis0NAk0NzQJNjAu MDAwCTI5MDEwMAkwLjAwMAk2MC4wMDAJNjAuNjMwCis0NAk0NzUJNjAuMzgwCTM1ODgwMAkwLjAw MAk1OS4zODAJNjAuNzUwCis0NAk0NzYJNjEuMDAwCTYzODMwMAkwLjAwMAk2MC4zODAJNjEuMjUw Cis0NAk0NzcJNjEuNTAwCTk2MzkwMAkwLjAwMAk1OS43NTAJNjEuNjMwCis0NAk0NzgJNjIuNTAw CTEyNDcxMDAJMC4wMDAJNjEuMzgwCTYyLjUwMAorNDQJNDc5CTYzLjUwMAk5ODUxMDAJMC4wMDAJ NjIuODgwCTYzLjYzMAorNDQJNDgwCTY0LjUwMAkxNTU2MzAwCTAuMDAwCTYzLjEyNQk2NS4wMDAK KzQ0CTQ4MQk2Ni44NzUJMTY4ODEwMAkwLjAwMAk2NC43NTAJNjYuODc1Cis0NAk0ODIJNjYuNzUw CTE1Nzg3MDAJMC4wMDAJNjYuMzc1CTY3LjUwMAorNDUJNDgzCTc2Ljc1MAkxMzIxNzAwCTAuMDAw CTc0Ljc1MAk3Ni43NTAKKzQ1CTQ4NAk3NS41MDAJMTYwNDEwMAkwLjAwMAk3NS41MDAJNzcuNjMw Cis0NQk0ODUJNzYuMzgwCTEyNTQwMDAJMC4wMDAJNzUuMjUwCTc2LjYzMAorNDUJNDg2CTc2LjAw MAk4ODcxMDAJMC4wMDAJNzUuNjMwCTc2LjUwMAorNDUJNDg3CTc2LjYzMAk0OTA1MDAJMC4wMDAJ NzUuNzUwCTc3LjAwMAorNDUJNDg4CTc2LjI1MAk4NjgzMDAJMC4wMDAJNzYuMjUwCTc3LjI1MAor NDUJNDg5CTc0Ljc1MAk4MzEwMDAJMC4wMDAJNzQuNTAwCTc2LjM3NQorNDUJNDkwCTczLjM3NQk5 OTc5MDAJMC4wMDAJNzMuMjUwCTc0Ljg3NQorNDUJNDkxCTc0LjEzMAk3NDc1MDAJMC4wMDAJNzMu MzgwCTc0LjYzMAorNDUJNDkyCTc0LjUwMAk2MTQ5MDAJMC4wMDAJNzMuMjUwCTc0LjYzMAorNDUJ NDkzCTc1LjEzMAk3NTIzMDAJMC4wMDAJNzQuNjMwCTc2LjEzMAorNDUJNDk0CTc5LjAwMAkxMzQ2 MTAwCTAuMDAwCTc1LjM3NQk3OS4wMDAKKzQ1CTQ5NQk4MC4zODAJMjIwNzYwMAkwLjAwMAk3OC4z ODAJODAuMzgwCis0NQk0OTYJODEuMTMwCTEzNDI1MDAJMC4wMDAJNzkuMjUwCTgxLjEzMAorNDUJ NDk3CTgzLjUwMAkxNDM5MzAwCTAuMDAwCTgxLjM4MAk4NC41MDAKKzQ1CTQ5OAk4Mi43NTAJMTUw MDQwMAkwLjAwMAk4Mi4zNzUJODQuMzc1Cis0Ngk0OTkJOTYuMTMwCTcyNTQwMAkwLjAwMAk5NS43 NTAJOTguMDAwCis0Ngk1MDAJOTYuMjUwCTM3MzcwMAkwLjAwMAk5Ni4xMjUJOTcuMTI1Cis0Ngk1 MDEJOTMuMDAwCTc2MDYwMAkwLjAwMAk5Mi41MDAJOTcuMDAwCis0Ngk1MDIJOTUuNjI1CTkxNTEw MAkwLjAwMAk5Mi4zNzUJOTUuNjI1Cis0Ngk1MDMJOTYuMDAwCTk1MDkwMAkwLjAwMAk5NS4wMDAJ OTYuNzUwCis0Ngk1MDQJOTcuNjI1CTEwMjQyMDAJMC4wMDAJOTUuNTAwCTk4LjUwMAorNDYJNTA1 CTk2LjYzMAkxMDYwNjAwCTAuMDAwCTk2LjUwMAk5OC4zODAKKzQ2CTUwNgk5OC4wMDAJMTExNDIw MAkwLjAwMAk5Ni4wMDAJOTkuMjUwCis0Ngk1MDcJOTguMDAwCTg1MDkwMAkwLjAwMAk5Ny4wMDAJ OTguMzgwCis0Nwk1MDgJMTAyLjAwMAk3MTE4MDAJMC4wMDAJMTAxLjg4MAkxMDMuMjUwCis0Nwk1 MDkJMTAyLjYyNQk4NTgwMDAJMC4wMDAJMTAxLjI1MAkxMDIuODc1Cis0Nwk1MTAJMTAzLjI1MAk2 MDcxMDAJMC4wMDAJMTAyLjAwMAkxMDMuMzc1Cis0Nwk1MTEJMTAzLjg3NQk4OTQyMDAJMC4wMDAJ MTAyLjYyNQkxMDQuMDAwCis0Nwk1MTIJMTA2LjYyNQkxNjUxMjAwCTAuMDAwCTEwNC42MjUJMTA2 Ljc1MAorNDcJNTEzCTEwNy4wMDAJMTA0OTAwMAkwLjAwMAkxMDYuMDAwCTEwNy4zODAKKzQ3CTUx NAkxMDguNzUwCTk3ODgwMAkwLjAwMAkxMDcuMzc1CTEwOS4wMDAKKzQ3CTUxNQkxMDkuNTAwCTEw MDc1MDAJMC4wMDAJMTA3LjI1MAkxMTAuMDAwCis0Nwk1MTYJMTEwLjEyNQk3OTQxMDAJMC4wMDAJ MTA5LjYyNQkxMTAuNTAwCis0Nwk1MTcJMTEyLjYzMAkxMDIwNDAwCTAuMDAwCTExMC4wMDAJMTEy LjYzMAorNDcJNTE4CTExMS41MDAJOTI5NDAwCTAuMDAwCTExMS4wMDAJMTEyLjEzMAorNDgJNTE5 CTExNi41MDAJNDI0NzAwCTAuMDAwCTExNS42MjUJMTE2LjYyNQorNDgJNTIwCTExNS4yNTAJNjY4 OTAwCTAuMDAwCTExNC4wMDAJMTE1LjI1MAorNDgJNTIxCTExNC4wMDAJNzIyMDAwCTAuMDAwCTEx My4xMjUJMTE1LjAwMAorNDgJNTIyCTExMS43NTAJODAyMzAwCTAuMDAwCTExMC43NTAJMTE0Ljc1 MAorNDgJNTIzCTExMS4yNTAJNjczNTAwCTAuMDAwCTExMC41MDAJMTEyLjUwMAorNDgJNTI0CTEx MC43NTAJNTM4OTAwCTAuMDAwCTExMC4yNTAJMTExLjc1MAorNDgJNTI1CTExMi41MDAJODEzMDAw CTAuMDAwCTEwOS43NTAJMTEyLjg3NQorNDgJNTI2CTExNC42MzAJNjY1NDAwCTAuMDAwCTExMy4w MDAJMTE1LjAwMAorNDgJNTI3CTExNS42MzAJODQzNjAwCTAuMDAwCTExMy4zODAJMTE1LjYzMAor NDgJNTI4CTExNC4zODAJNjQ3ODAwCTAuMDAwCTExNC4yNTAJMTE1Ljg4MAorNDgJNTI5CTExMy4w MDAJNDA0NDAwCTAuMDAwCTExMi44NzUJMTE1LjAwMAorNDgJNTMwCTExMS4yNTAJNzM0ODAwCTAu MDAwCTExMC4yNTAJMTEyLjg4MAorNDgJNTMxCTExMS44NzUJODkwMzAwCTAuMDAwCTExMC4yNTAJ MTExLjg3NQorNDgJNTMyCTExMy41MDAJODAzMDAwCTAuMDAwCTExMS4yNTAJMTEzLjg3NQorNDgJ NTMzCTExNC4wMDAJNjYyMTAwCTAuMDAwCTExMy4wMDAJMTE0Ljg4MAorNDgJNTM0CTExNS43NTAJ NTczOTAwCTAuMDAwCTExMy42MzAJMTE2LjEzMAorNDgJNTM1CTExMy4xMzAJNzkxNDAwCTAuMDAw CTExMy4wMDAJMTE2LjI1MAorNDgJNTM2CTExMy4zNzUJODMxNzAwCTAuMDAwCTExMi42MjUJMTE0 Ljc1MAorNDgJNTM3CTExMy43NTAJNjcyMzAwCTAuMDAwCTExMy4xMzAJMTE0LjUwMAorNDgJNTM4 CTExNC4yNTAJNDE5NjAwCTAuMDAwCTExMy42MzAJMTE0LjYzMAorNDgJNTM5CTExNy4yNTAJNzM3 ODAwCTAuMDAwCTExNC4xMjUJMTE3LjI1MAorNDgJNTQwCTExOC4wMDAJOTcxNTAwCTAuMDAwCTEx Ny4wMDAJMTE5Ljc1MAorNDgJNTQxCTEyMS4wMDAJMTE3MDMwMAkwLjAwMAkxMTguMTMwCTEyMS4w MDAKKzQ4CTU0MgkxMjEuNzUwCTEyMzM0MDAJMC4wMDAJMTIxLjUwMAkxMjIuODc1Cis0OAk1NDMJ MTIxLjEzMAk2MjU1MDAJMC4wMDAJMTIwLjI1MAkxMjIuMjUwCis0OQk1NDQJMTIwLjg3NQk1NDI5 MDAJMC4wMDAJMTIwLjI1MAkxMjIuNzUwCis0OQk1NDUJMTE4LjAwMAk4NjUzMDAJMC4wMDAJMTE3 Ljc1MAkxMjEuMzgwCis0OQk1NDYJMTIwLjAwMAk2Njk4MDAJMC4wMDAJMTE3Ljg4MAkxMjAuODgw Cis0OQk1NDcJMTIwLjI1MAk1NTYyMDAJMC4wMDAJMTE5Ljc1MAkxMjEuMDAwCis0OQk1NDgJMTIx LjAwMAkzNzMxMDAJMC4wMDAJMTIwLjM3NQkxMjEuMjUwCis0OQk1NDkJMTE5LjI1MAk5NDMzMDAJ MC4wMDAJMTE4LjYyNQkxMTkuNjI1Cis1MAk1NTAJMTIyLjg4MAk4MTQzMDAJMC4wMDAJMTIxLjYz MAkxMjMuNTAwCis1MAk1NTEJMTIxLjc1MAk2OTExMDAJMC4wMDAJMTIxLjUwMAkxMjMuMjUwCis1 MAk1NTIJMTIzLjEyNQk4MTk3MDAJMC4wMDAJMTIxLjUwMAkxMjQuMjUwCis1MAk1NTMJMTIzLjc1 MAk5MTE1MDAJMC4wMDAJMTIyLjYyNQkxMjQuODc1Cis1MAk1NTQJMTIzLjg3NQk5NDIzMDAJMC4w MDAJMTIzLjEyNQkxMjQuNTAwCis1MAk1NTUJMTIzLjAwMAkxMDcwOTAwCTAuMDAwCTEyMi44NzUJ MTI0LjEyNQorNTAJNTU2CTEyNC42MjUJMTA5OTMwMAkwLjAwMAkxMjIuNzUwCTEyNC43NTAKKzUw CTU1NwkxMjYuNjI1CTExMTE5MDAJMC4wMDAJMTI0LjI1MAkxMjYuNjI1Cis1MAk1NTgJMTI4LjYy NQkyMDk3NTAwCTAuMDAwCTEyNi4wMDAJMTI5LjUwMAorNTAJNTU5CTEyNy44NzUJMTI3MTUwMAkw LjAwMAkxMjYuNTAwCTEyOC4zNzUKKzUxCTU2MAkxMjkuODc1CTExOTAyMDAJMC4wMDAJMTI4Ljg3 NQkxMzAuMTI1Cis1MQk1NjEJMTMxLjEzMAkxMzkxMjAwCTAuMDAwCTEyOS4xMzAJMTMxLjI1MAor NTEJNTYyCTEzMi4xMzAJMTEwNDYwMAkwLjAwMAkxMzEuMDAwCTEzMi4yNTAKKzUxCTU2MwkxMzIu MjUwCTgwMzMwMAkwLjAwMAkxMzEuNzUwCTEzMi41MDAKKzUxCTU2NAkxMzQuMjUwCTY1ODQwMAkw LjAwMAkxMzEuNTAwCTEzNC4yNTAKKzUxCTU2NQkxMzMuMDAwCTY4NzEwMAkwLjAwMAkxMzIuNzUw CTEzNC4wMDAKKzUyCTU2NgkxMjYuNzUwCTE0MTMyMDAJMC4wMDAJMTI1LjAwMAkxMjcuMjUwCis1 Mgk1NjcJMTI2LjUwMAk5NDY0MDAJMC4wMDAJMTI1LjUwMAkxMjcuMDAwCis1Mgk1NjgJMTIzLjg4 MAk5MjI2MDAJMC4wMDAJMTIzLjUwMAkxMjYuNTAwCis1Mgk1NjkJMTIyLjI1MAkxNDc0NTAwCTAu MDAwCTEyMS43NTAJMTIzLjI1MAorNTIJNTcwCTEyMi4xMjUJODAzNjAwCTAuMDAwCTEyMi4wMDAJ MTIzLjM3NQorNTIJNTcxCTEyMi4yNTAJNjUwOTAwCTAuMDAwCTEyMS44ODAJMTIyLjg4MAorNTIJ NTcyCTEyMy42MjUJODU4OTAwCTAuMDAwCTEyMi4zNzUJMTIzLjYyNQorNTIJNTczCTEyNS4yNTAJ MTE2NTgwMAkwLjAwMAkxMjQuMDAwCTEyNS43NTAKKzUyCTU3NAkxMjYuODc1CTc4NDgwMAkwLjAw MAkxMjUuMTI1CTEyNy4yNTAKKzUyCTU3NQkxMjcuNTAwCTEwMzA2MDAJMC4wMDAJMTI3LjAwMAkx MjguMjUwCis1Mgk1NzYJMTI0LjUwMAkxMzU0MzAwCTAuMDAwCTEyNC4wMDAJMTI3LjYzMAorNTMJ NTc3CTExMS4yNTAJMTA0MzIwMAkwLjAwMAkxMDkuMjUwCTExMS41MDAKKzUzCTU3OAkxMTIuODgw CTE0NTg5MDAJMC4wMDAJMTEwLjc1MAkxMTMuNTAwCis1Mwk1NzkJMTEwLjAwMAkxMjQxMzAwCTAu MDAwCTEwOS44NzUJMTEyLjUwMAorNTMJNTgwCTExMC4yNTAJMTExNzAwMAkwLjAwMAkxMDkuMzc1 CTExMS43NTAKKzUzCTU4MQkxMTEuNTAwCTgxMjkwMAkwLjAwMAkxMDkuNzUwCTExMS42MjUKKzUz CTU4MgkxMTIuMDAwCTEwMDUwMDAJMC4wMDAJMTExLjYyNQkxMTIuODc1Cis1Mwk1ODMJMTExLjAw MAk3Nzk0MDAJMC4wMDAJMTEwLjM3NQkxMTEuNTAwCis1Mwk1ODQJMTA5LjI1MAk4Njg1MDAJMC4w MDAJMTA5LjEyNQkxMTEuNjI1Cis1NAk1ODUJMTA4LjAwMAk3Mjk2MDAJMC4wMDAJMTA3LjM3NQkx MDguNjI1Cis1NAk1ODYJMTEwLjI1MAkxNDU1OTAwCTAuMDAwCTEwOC41MDAJMTEwLjUwMAorNTQJ NTg3CTExMC42MjUJMTQzMjMwMAkwLjAwMAkxMTAuMzc1CTExMi4wMDAKKzU0CTU4OAkxMTEuMDAw CTk5MDcwMAkwLjAwMAkxMTAuMzc1CTExMS41MDAKKzU0CTU4OQkxMTIuMDAwCTk1NDcwMAkwLjAw MAkxMTEuMTI1CTExMi41MDAKKzU0CTU5MAkxMTMuNzUwCTIxMTA1MDAJMC4wMDAJMTEyLjc1MAkx MTQuMjUwCis1NAk1OTEJMTE0LjAwMAk4MTc2MDAJMC4wMDAJMTEyLjUwMAkxMTQuMDAwCis1NAk1 OTIJMTE0Ljc1MAkxMjQxMDAwCTAuMDAwCTExMy41MDAJMTE1LjM4MAorNTQJNTkzCTExNC4wMDAJ OTE0OTAwCTAuMDAwCTExNC4wMDAJMTE1LjUwMAorNTQJNTk0CTExMi43NTAJODgxNDAwCTAuMDAw CTExMi4zNzUJMTE0LjAwMAorNTQJNTk1CTExMi4yNTAJODM2NzAwCTAuMDAwCTExMS41MDAJMTEz LjAwMAorNTQJNTk2CTExMi4yNTAJNjk0MjAwCTAuMDAwCTExMS43NTAJMTEzLjI1MAorNTUJNTk3 CTExMi43NTAJNzcwNTAwCTAuMDAwCTExMC42MzAJMTEyLjg4MAorNTUJNTk4CTExMi4yNTAJOTMx NTAwCTAuMDAwCTExMi4wMDAJMTEzLjUwMAorNTUJNTk5CTExMS4xMjUJNzIwNzAwCTAuMDAwCTEx MC41MDAJMTEyLjI1MAorNTUJNjAwCTExMC43NTAJMTAyODcwMAkwLjAwMAkxMTAuMTI1CTExMS4x MjUKKzU1CTYwMQkxMDkuODgwCTgzNjQwMAkwLjAwMAkxMDkuNjMwCTExMS4zODAKKzU1CTYwMgkx MTAuNzUwCTExMDQ0MDAJMC4wMDAJMTA5LjUwMAkxMTEuNjI1Cis1NQk2MDMJMTExLjg3NQk4OTk0 MDAJMC4wMDAJMTEwLjYyNQkxMTIuMjUwCis1NQk2MDQJMTEzLjI1MAkxMDkwMDAwCTAuMDAwCTEx MS44NzUJMTEzLjUwMAorNTUJNjA1CTExMy4zODAJMTAyMjkwMAkwLjAwMAkxMTIuNjMwCTExNC4y NTAKKzU1CTYwNgkxMTMuNzUwCTExMjI1MDAJMC4wMDAJMTEyLjc1MAkxMTQuNjMwCis1NQk2MDcJ MTE2LjUwMAkxNDYzNTAwCTAuMDAwCTExNC4wMDAJMTE2LjUwMAorNTUJNjA4CTExNi4yNTAJMTMz NzkwMAkwLjAwMAkxMTYuMDAwCTExNy4yNTAKKzU2CTYwOQkxMDcuMjUwCTcwNDcwMAkwLjAwMAkx MDUuMzc1CTEwNy41MDAKKzU2CTYxMAkxMDcuMTI1CTgwMjQwMAkwLjAwMAkxMDYuMjUwCTEwNy4z NzUKKzU2CTYxMQkxMDUuMjUwCTg5NzUwMAkwLjAwMAkxMDUuMjUwCTEwNy4xMzAKKzU2CTYxMgkx MDQuMzc1CTEwNzY5MDAJMC4wMDAJMTA0LjEyNQkxMDUuNjI1Cis1Ngk2MTMJMTA1LjI1MAk4NTYx MDAJMC4wMDAJMTA0LjAwMAkxMDUuNzUwCis1Ngk2MTQJMTA3LjI1MAk5MjU3MDAJMC4wMDAJMTA0 LjUwMAkxMDcuMjUwCis1Ngk2MTUJMTA4LjEzMAkxMDQ3MTAwCTAuMDAwCTEwNi43NTAJMTA4LjM4 MAorNTYJNjE2CTEwNy41MDAJNjI1MTAwCTAuMDAwCTEwNy4xMjUJMTA4LjEyNQorNTYJNjE3CTEw Ny4wMDAJODk1OTAwCTAuMDAwCTEwNi4yNTAJMTA3LjM3NQorNTYJNjE4CTEwNi41MDAJODEwMDAw CTAuMDAwCTEwNS41MDAJMTA3LjI1MAorNTYJNjE5CTEwNi4xMjUJOTMxMTAwCTAuMDAwCTEwNS4x MjUJMTA2LjM3NQorNTYJNjIwCTEwNS4zODAJNzEwMjAwCTAuMDAwCTEwNS4xMzAJMTA3LjAwMAor NTYJNjIxCTEwNy4xMjUJMTU5MTgwMAkwLjAwMAkxMDQuNTAwCTEwNy43NTAKKzU2CTYyMgkxMDgu MjUwCTEwMDI3MDAJMC4wMDAJMTA2Ljc1MAkxMDguNzUwCis1Ngk2MjMJMTA5LjAwMAkxMDU5MzAw CTAuMDAwCTEwNy44NzUJMTA5LjYyNQorNTYJNjI0CTEwOC4zODAJNjEwNDAwCTAuMDAwCTEwOC4y NTAJMTA5LjM4MAorNTcJNjI1CTEyNC42MjUJOTI5NTAwCTAuMDAwCTEyNC42MjUJMTI2LjEyNQor NTcJNjI2CTEyNS43NTAJMTIwMDEwMAkwLjAwMAkxMjUuMjUwCTEyNi44NzUKKzU3CTYyNwkxMjUu ODgwCTc2MzIwMAkwLjAwMAkxMjUuNzUwCTEyNi41MDAKKzU3CTYyOAkxMjYuNzUwCTU4OTcwMAkw LjAwMAkxMjMuNzUwCTEyNi44NzUKKzU3CTYyOQkxMjcuNTAwCTEyNzA2MDAJMC4wMDAJMTI2LjUw MAkxMjcuNzUwCis1Nwk2MzAJMTI1Ljc1MAkxNjY4NDAwCTAuMDAwCTEyNS4zNzUJMTI3LjEyNQor NTcJNjMxCTEyNC44ODAJMTA1NjcwMAkwLjAwMAkxMjQuMjUwCTEyNS43NTAKKzU3CTYzMgkxMjMu MjUwCTk0NDMwMAkwLjAwMAkxMjMuMjUwCTEyNS41MDAKKzU3CTYzMwkxMjQuMDAwCTc4MjcwMAkw LjAwMAkxMjIuNzUwCTEyNC4wMDAKKzU4CTYzNAkxMjQuMjUwCTc1NDIwMAkwLjAwMAkxMjMuMjUw CTEyNC41MDAKKzU4CTYzNQkxMjMuNzUwCTQxODMwMAkwLjAwMAkxMjMuNjI1CTEyNC4yNTAKKzU4 CTYzNgkxMjMuMTI1CTUwNTIwMAkwLjAwMAkxMjIuNzUwCTEyNC4yNTAKKzU4CTYzNwkxMjMuNTAw CTU3MzYwMAkwLjAwMAkxMjIuNzUwCTEyNC4wMDAKKzU4CTYzOAkxMjMuMTI1CTY4NTAwMAkwLjAw MAkxMjIuODc1CTEyMy44NzUKKzU4CTYzOQkxMjEuMDAwCTg3MjUwMAkwLjAwMAkxMjAuNzUwCTEy Mi42MzAKKzU4CTY0MAkxMjAuMDAwCTEzODgxMDAJMC4wMDAJMTE5Ljg3NQkxMjIuMjUwCis1OAk2 NDEJMTE5Ljc1MAkxMDA3MDAwCTAuMDAwCTExOS4wMDAJMTIwLjM3NQorNTkJNjQyCTEyMy42MjUJ MTA2OTYwMAkwLjAwMAkxMjMuMjUwCTEyNC42MjUKKzU5CTY0MwkxMjQuMTMwCTExNjMzMDAJMC4w MDAJMTIzLjYzMAkxMjUuMDAwCis1OQk2NDQJMTI4LjI1MAkyMTM4ODAwCTAuMDAwCTEyNC42MzAJ MTI4LjUwMAorNTkJNjQ1CTEyOS42MzAJMjUzOTAwMAkwLjAwMAkxMjkuMTMwCTEzMC42MzAKKzU5 CTY0NgkxMzIuNTAwCTIyNzAyMDAJMC4wMDAJMTI5LjM3NQkxMzIuNjI1Cis1OQk2NDcJMTMzLjEz MAkxODI1MjAwCTAuMDAwCTEzMi4zODAJMTM0LjUwMAorNTkJNjQ4CTEzMy4yNTAJMTIxMjMwMAkw LjAwMAkxMzIuNjI1CTEzNC4xMjUKKzU5CTY0OQkxMzQuNjI1CTE5MzY1MDAJMC4wMDAJMTMzLjI1 MAkxMzUuMjUwCis1OQk2NTAJMTM3LjAwMAkxMTI4NzAwCTAuMDAwCTEzMy43NTAJMTM3LjAwMAor NTkJNjUxCTEzNi42MzAJMTU2MzYwMAkwLjAwMAkxMzYuMTMwCTEzNy42MzAKKzYwCTY1MgkxMzAu NTAwCTEwMzcyMDAJMC4wMDAJMTI4LjI1MAkxMzEuMTI1Cis2MAk2NTMJMTI5LjM3NQkxMTE4ODAw CTAuMDAwCTEyOS4wMDAJMTMwLjYyNQorNjAJNjU0CTEyOC43NTAJMTU1MjIwMAkwLjAwMAkxMjgu MTI1CTEzMC4wMDAKKzYwCTY1NQkxMjcuNzUwCTExOTc4MDAJMC4wMDAJMTI3Ljc1MAkxMjguNzUw Cis2MAk2NTYJMTI0LjUwMAkyMDU3OTAwCTAuMDAwCTEyNC41MDAJMTI4LjAwMAorNjAJNjU3CTEy NS4zNzUJMTQwNDQwMAkwLjAwMAkxMjQuMTI1CTEyNS42MjUKKzYwCTY1OAkxMjYuMzgwCTEwOTg0 MDAJMC4wMDAJMTI1LjUwMAkxMjYuNjMwCis2MAk2NTkJMTI2LjYyNQk5OTM0MDAJMC4wMDAJMTI2 LjM3NQkxMjcuNjI1Cis2MAk2NjAJMTI4LjEyNQk4NDA4MDAJMC4wMDAJMTI2Ljg3NQkxMjguMjUw Cis2MAk2NjEJMTI3Ljc1MAk5NDkwMDAJMC4wMDAJMTI3LjUwMAkxMjkuNTAwCis2MQk2NjIJMTI2 LjUwMAkxMjgwMzAwCTAuMDAwCTEyNS41MDAJMTI2Ljc1MAorNjEJNjYzCTEyNS42MzAJMTEzNTAw MAkwLjAwMAkxMjUuMTMwCTEyNi44ODAKKzYxCTY2NAkxMjUuMzc1CTEyNTg4MDAJMC4wMDAJMTI0 Ljc1MAkxMjYuMzc1Cis2MQk2NjUJMTI1LjAwMAk3NzA1MDAJMC4wMDAJMTI0LjYzMAkxMjUuNjMw Cis2MQk2NjYJMTI0Ljc1MAk1Nzk0MDAJMC4wMDAJMTI0Ljc1MAkxMjUuNjI1Cis2MQk2NjcJMTI1 Ljc1MAk3NzI5MDAJMC4wMDAJMTI1LjAwMAkxMjYuMjUwCis2MQk2NjgJMTI3LjEyNQk5MjU3MDAJ MC4wMDAJMTI1LjM3NQkxMjcuMjUwCis2MQk2NjkJMTI3Ljg4MAk5NzgzMDAJMC4wMDAJMTI3LjAw MAkxMjguMjUwCis2MQk2NzAJMTMwLjEzMAkyMjM5MDAwCTAuMDAwCTEyOC41MDAJMTMwLjg4MAor NjEJNjcxCTEzMC4yNTAJMTE1NzYwMAkwLjAwMAkxMjkuNzUwCTEzMC42MjUKKzYxCTY3MgkxMjgu MDAwCTE1NTEyMDAJMC4wMDAJMTI3Ljc1MAkxMzAuODc1Cis2Mgk2NzMJMTMzLjAwMAkxMjE1MDAw CTAuMDAwCTEzMi4zODAJMTMzLjI1MAorNjIJNjc0CTEzMi4zNzUJODU3MTAwCTAuMDAwCTEzMS44 NzUJMTMyLjc1MAorNjIJNjc1CTEzMS4zNzUJODI5MzAwCTAuMDAwCTEzMS4yNTAJMTMyLjM3NQor NjIJNjc2CTEzMC44ODAJNjc1MjAwCTAuMDAwCTEzMC43NTAJMTMxLjYzMAorNjIJNjc3CTEzMC4z NzUJOTIxOTAwCTAuMDAwCTEyOS43NTAJMTMxLjc1MAorNjIJNjc4CTEyOS43NTAJOTM5NzAwCTAu MDAwCTEyOS4yNTAJMTMwLjI1MAorNjIJNjc5CTEyOC4wMDAJMTY2NjYwMAkwLjAwMAkxMjcuMjUw CTEyOS41MDAKKzYyCTY4MAkxMjguNjI1CTEzNzE5MDAJMC4wMDAJMTI3LjI1MAkxMzAuMDAwCis2 Mgk2ODEJMTI5LjEyNQkxMjY1NjAwCTAuMDAwCTEyOC4yNTAJMTI5LjUwMAorNjIJNjgyCTEyOS43 NTAJMTE3NjEwMAkwLjAwMAkxMjguNzUwCTEzMC4xMzAKKzYyCTY4MwkxMjguNTAwCTE2NDQ1MDAJ MC4wMDAJMTI4LjUwMAkxMzAuNjMwCis2Mwk2ODQJMTIxLjEzMAkxNzUzMDAwCTAuMDAwCTExOS4z ODAJMTIxLjEzMAorNjMJNjg1CTEyMC4xMzAJMTMxNjYwMAkwLjAwMAkxMTkuMjUwCTEyMC41MDAK KzYzCTY4NgkxMTkuODc1CTE4MTkwMDAJMC4wMDAJMTE5LjEyNQkxMjEuNjI1Cis2Mwk2ODcJMTE5 LjM3NQkxMjY4OTAwCTAuMDAwCTExOS4yNTAJMTIwLjg3NQorNjMJNjg4CTExOC43NTAJMTQwMDMw MAkwLjAwMAkxMTcuMzc1CTExOS43NTAKKzYzCTY4OQkxMTkuMzgwCTEzNjUxMDAJMC4wMDAJMTE4 LjM4MAkxMTkuNzUwCis2Mwk2OTAJMTIwLjg3NQkxMTI1MzAwCTAuMDAwCTExOC43NTAJMTIxLjEy NQorNjMJNjkxCTEyMi4wMDAJMTc1MzAwMAkwLjAwMAkxMjEuMzgwCTEyMy4zODAKKzYzCTY5Mgkx MjMuMTMwCTkxNDMwMAkwLjAwMAkxMjIuMDAwCTEyMy4yNTAKKzYzCTY5MwkxMjQuMDAwCTExNTE1 MDAJMC4wMDAJMTIzLjEyNQkxMjQuMjUwCis2Mwk2OTQJMTIzLjc1MAk4MjA1MDAJMC4wMDAJMTIz LjUwMAkxMjQuNTAwCis2NAk2OTUJMTQxLjc1MAkxNjM4NDAwCTAuMDAwCTE0MC4yNTAJMTQxLjc1 MAorNjQJNjk2CTE0NC42MzAJMTY2MjUwMAkwLjAwMAkxNDIuMTMwCTE0NC44ODAKKzY0CTY5Nwkx NDYuNjI1CTE5NDAyMDAJMC4wMDAJMTQ0LjI1MAkxNDguMDAwCis2NAk2OTgJMTQ5LjAwMAkxOTg1 NjAwCTAuMDAwCTE0Ni42MjUJMTQ5LjM3NQorNjQJNjk5CTE0OC42MzAJMTQwNzYwMAkwLjAwMAkx NDcuMDAwCTE0OS4zODAKKzY0CTcwMAkxNTAuMjUwCTE4OTAxMDAJMC4wMDAJMTQ5LjEzMAkxNTEu NTAwCis2NAk3MDEJMTUyLjI1MAkxNTg2MTAwCTAuMDAwCTE1MC4wMDAJMTUzLjUwMAorNjQJNzAy CTE1Mi41MDAJMTc4NjEwMAkwLjAwMAkxNTEuNTAwCTE1NC41MDAKKzY0CTcwMwkxNTIuODc1CTE1 MjQxMDAJMC4wMDAJMTUxLjYyNQkxNTMuODc1Cis2NAk3MDQJMTUzLjc1MAkxMTA1OTAwCTAuMDAw CTE1Mi4zNzUJMTU0LjAwMAorNjQJNzA1CTE1NC4yNTAJMjEyNzgwMAkwLjAwMAkxNTMuNzUwCTE1 Ni42MjUKKzY0CTcwNgkxNTQuMDAwCTEyMjA5MDAJMC4wMDAJMTUzLjM4MAkxNTUuMTMwCis2NAk3 MDcJMTUyLjc1MAkxMDExNjAwCTAuMDAwCTE1MS4yNTAJMTU0LjYzMAorNjQJNzA4CTE1My4yNTAJ NTYyNzAwCTAuMDAwCTE1Mi4xMjUJMTUzLjc1MAorNjUJNzA5CTE0MS4xMzAJMTg1ODYwMAkwLjAw MAkxMzguODgwCTE0MS4yNTAKKzY1CTcxMAkxNDEuMTI1CTE1NjE2MDAJMC4wMDAJMTQwLjUwMAkx NDIuMDAwCis2NQk3MTEJMTQwLjAwMAkxMjI5MDAwCTAuMDAwCTEzOS41MDAJMTQwLjM4MAorNjUJ NzEyCTEzOC43NTAJODg3NjAwCTAuMDAwCTEzOC4wMDAJMTQwLjAwMAorNjUJNzEzCTEzNi4wMDAJ MTkzODMwMAkwLjAwMAkxMzUuNTAwCTEzOC44NzUKKzY1CTcxNAkxMzYuMTI1CTE2Mjg2MDAJMC4w MDAJMTM1LjEyNQkxMzYuMzc1Cis2NQk3MTUJMTM5LjM4MAkxNjMwMDAwCTAuMDAwCTEzNi4wMDAJ MTM5LjUwMAorNjUJNzE2CTE0MC4zNzUJMjYxODEwMAkwLjAwMAkxMzguNTAwCTE0MS4wMDAKKzY1 CTcxNwkxNDMuNzUwCTI2MjkxMDAJMC4wMDAJMTQwLjg3NQkxNDMuODc1Cis2NQk3MTgJMTQzLjg4 MAkyMjUxMTAwCTAuMDAwCTE0My41MDAJMTQ1LjUwMAorNjUJNzE5CTE0NC4xMzAJMTc2NjkwMAkw LjAwMAkxNDIuODgwCTE0NC41MDAKKzY1CTcyMAkxMzkuMjUwCTI4NjYxMDAJMC4wMDAJMTM4Ljc1 MAkxNDIuODgwCis2NQk3MjEJMTM3LjM4MAk0Mzc5NTAwCTAuMDAwCTEzNi4yNTAJMTM5Ljg4MAor NjUJNzIyCTEzNy4wMDAJMjE5NDUwMAkwLjAwMAkxMzYuMDAwCTEzOC41MDAKKzY1CTcyMwkxMzgu MjUwCTE0MTMxMDAJMC4wMDAJMTM1LjYyNQkxMzguNTAwCis2Ngk3MjQJMTIzLjYyNQkyNDMxMTAw CTAuMDAwCTEyMi4zNzUJMTI0LjUwMAorNjYJNzI1CTEyMi4wMDAJMTYwOTMwMAkwLjAwMAkxMjEu ODgwCTEyNS4yNTAKKzY2CTcyNgkxMjAuODgwCTMxNDIyMDAJMC4wMDAJMTE5Ljc1MAkxMjMuMDAw Cis2Ngk3MjcJMTIzLjAwMAkyMjM5NTAwCTAuMDAwCTEyMC4zNzUJMTIzLjAwMAorNjYJNzI4CTEy MS4xMzAJMjIyMDQwMAkwLjAwMAkxMjAuODgwCTEyMy4zODAKKzY2CTcyOQkxMjEuODc1CTE5NDc2 MDAJMC4wMDAJMTIwLjUwMAkxMjIuMzc1Cis2Ngk3MzAJMTIwLjI1MAkxNDg0NzAwCTAuMDAwCTEx OS44NzUJMTIxLjI1MAorNjYJNzMxCTEyMS4zNzUJMTY5NzAwMAkwLjAwMAkxMjAuMjUwCTEyMS4z NzUKKzY2CTczMgkxMjAuMzc1CTEyODM5MDAJMC4wMDAJMTIwLjEyNQkxMjEuNTAwCis2Nwk3MzMJ MTIzLjEzMAkyMTA3NzAwCTAuMDAwCTEyMi41MDAJMTI0Ljc1MAorNjcJNzM0CTEyMS4zODAJMjU4 MTIwMAkwLjAwMAkxMTkuMjUwCTEyMi4wMDAKKzY3CTczNQkxMjEuNTAwCTExMDM0MDAJMC4wMDAJ MTIwLjAwMAkxMjEuODgwCis2Nwk3MzYJMTIzLjEyNQk5OTgyMDAJMC4wMDAJMTIxLjI1MAkxMjMu MjUwCis2Nwk3MzcJMTIzLjc1MAk3NTE0MDAJMC4wMDAJMTIyLjg3NQkxMjQuMjUwCis2Nwk3MzgJ MTIyLjc1MAkxMTMwNDAwCTAuMDAwCTEyMS44NzUJMTI0LjM3NQorNjgJNzM5CTE1MS43NTAJMTgw NDcwMAkwLjAwMAkxNTEuNTAwCTE1NC4xMzAKKzY4CTc0MAkxNTQuMjUwCTMzMDg5MDAJMC4wMDAJ MTQ5LjUwMAkxNTYuMDAwCis2OAk3NDEJMTU1LjI1MAkyOTQ1OTAwCTAuMDAwCTE1NC42MjUJMTU2 LjYyNQorNjgJNzQyCTE1OC42MzAJMzI0ODgwMAkwLjAwMAkxNTUuODgwCTE1OS42MzAKKzY4CTc0 MwkxNjAuMTI1CTMyNzIyMDAJMC4wMDAJMTU3Ljc1MAkxNjEuNTAwCis2OAk3NDQJMTYwLjYzMAky Mzg1MDAwCTAuMDAwCTE1OS4xMzAJMTYyLjM4MAorNjgJNzQ1CTE2My4wMDAJMTU2MTcwMAkwLjAw MAkxNTkuNzUwCTE2My4wMDAKKzY4CTc0NgkxNjYuODc1CTI3OTI1MDAJMC4wMDAJMTY0LjI1MAkx NjcuNjI1Cis2OAk3NDcJMTY2Ljc1MAkyMTg3OTAwCTAuMDAwCTE2Ni4wMDAJMTY3LjYzMAorNjgJ NzQ4CTE2NC44ODAJMTY1MjIwMAkwLjAwMAkxNjMuODgwCTE2Ni43NTAKKzY4CTc0OQkxNjMuNzUw CTE0MzA1MDAJMC4wMDAJMTYzLjI1MAkxNjUuODc1Cis2OAk3NTAJMTYzLjAwMAkyMjY5NjAwCTAu MDAwCTE2My4wMDAJMTY3LjM4MAorNjgJNzUxCTE2NS4zODAJMTk5ODIwMAkwLjAwMAkxNjIuMjUw CTE2Ni4xMzAKKzY5CTc1MgkxNTkuMjUwCTIwNTc5MDAJMC4wMDAJMTU4Ljc1MAkxNjAuODgwCis2 OQk3NTMJMTU5LjM4MAkxNjY4NDAwCTAuMDAwCTE1OC41MDAJMTYwLjAwMAorNjkJNzU0CTE2MC4y NTAJMjQzNTgwMAkwLjAwMAkxNTkuNzUwCTE2MS4wMDAKKzY5CTc1NQkxNjMuMDAwCTIyODQwMDAJ MC4wMDAJMTU5LjEyNQkxNjMuMjUwCis2OQk3NTYJMTY0LjM3NQkyMzg2OTAwCTAuMDAwCTE2My4w MDAJMTY1LjYyNQorNjkJNzU3CTE2Ni43NTAJMTYzMjIwMAkwLjAwMAkxNjQuNTAwCTE2Ni43NTAK KzY5CTc1OAkxNjkuMDAwCTMyMDMzMDAJMC4wMDAJMTY3LjEzMAkxNjkuNjMwCis2OQk3NTkJMTcw LjM4MAkzMjk5OTAwCTAuMDAwCTE2OC4wMDAJMTcyLjEzMAorNjkJNzYwCTE3My4zODAJMjU4NjYw MAkwLjAwMAkxNzAuMzgwCTE3NC4wMDAKKzY5CTc2MQkxNzMuMjUwCTIxMDkyMDAJMC4wMDAJMTcy LjAwMAkxNzUuMDAwCis3MAk3NjIJMTUwLjUwMAkyNjMwNTAwCTAuMDAwCTE0OS41MDAJMTUzLjc1 MAorNzAJNzYzCTE1MC43NTAJMzA3MzMwMAkwLjAwMAkxNDguNTAwCTE1MS44ODAKKzcwCTc2NAkx NTQuNjMwCTE5MDg0MDAJMC4wMDAJMTUxLjAwMAkxNTQuNzUwCis3MAk3NjUJMTU1LjI1MAkxODY4 NTAwCTAuMDAwCTE1NC43NTAJMTU2Ljg4MAorNzAJNzY2CTE1Ni41MDAJMTU0NDMwMAkwLjAwMAkx NTQuNTAwCTE1Ny4yNTAKKzcwCTc2NwkxNTEuMDAwCTIwNDQyMDAJMC4wMDAJMTUxLjAwMAkxNTYu Mzc1Cis3MQk3NjgJMTQ1LjI1MAkyOTIyMTAwCTAuMDAwCTE0NC4xMzAJMTQ3LjM4MAorNzEJNzY5 CTE0MC4xMjUJMzkyMzkwMAkwLjAwMAkxNDAuMDAwCTE0NS43NTAKKzcxCTc3MAkxMzUuMDAwCTQ2 NjUwMDAJMC4wMDAJMTMyLjAwMAkxNDEuMjUwCis3MQk3NzEJMTA0LjAwMAk2Mzg0NDAwCTAuMDAw CTEwMi4wMDAJMTMwLjc1MAorNzEJNzcyCTExNS4wMDAJMAkwLjAwMAkxMTAuMTMwCTEyMi4wMDAK KzcxCTc3MwkxMjIuNzUwCTUzODY2MDAJMC4wMDAJMTIwLjAwMAkxMjUuNTAwCis3Mgk3NzQJMTE4 Ljg4MAkyMjMzNjAwCTAuMDAwCTExNS4wMDAJMTE5LjI1MAorNzIJNzc1CTExNS41MDAJMTgyNDcw MAkwLjAwMAkxMTUuMDAwCTExOS41MDAKKzcyCTc3NgkxMTcuMjUwCTI3OTg5MDAJMC4wMDAJMTE1 LjI1MAkxMTguMjUwCis3Mgk3NzcJMTE4LjI1MAkxNTUwMjAwCTAuMDAwCTExNi44ODAJMTE5LjUw MAorNzIJNzc4CTExOC4yNTAJMTIxNzAwMAkwLjAwMAkxMTYuNTAwCTExOC4zNzUKKzcyCTc3OQkx MTkuNTAwCTE2NDY0MDAJMC4wMDAJMTE4Ljc1MAkxMjAuMzgwCis3Mgk3ODAJMTE5Ljg3NQk2MzAz MDAJMC4wMDAJMTE5LjAwMAkxMTkuODc1Cis3Mgk3ODEJMTE1Ljc1MAkxMDg2ODAwCTAuMDAwCTEx NS4xMzAJMTE3LjYzMAorNzMJNzgyCTExMS42MzAJMTIzMDMwMAkwLjAwMAkxMTAuNzUwCTExMi4x MzAKKzczCTc4MwkxMTIuMjUwCTc2OTAwMAkwLjAwMAkxMTEuNTAwCTExMi43NTAKKzczCTc4NAkx MTMuMzgwCTg2NzQwMAkwLjAwMAkxMTIuNzUwCTExNC4wMDAKKzczCTc4NQkxMTIuODc1CTg5Njgw MAkwLjAwMAkxMTIuNjI1CTExMy43NTAKKzczCTc4NgkxMTEuNTAwCTkzMjIwMAkwLjAwMAkxMTAu NzUwCTExMy41MDAKKzczCTc4NwkxMTAuMjUwCTE0ODkwMDAJMC4wMDAJMTA5LjUwMAkxMTEuMTMw Cis3Mwk3ODgJMTE0LjAwMAkxNTY0OTAwCTAuMDAwCTExMS42MzAJMTE0Ljc1MAorNzMJNzg5CTEx Mi44NzUJOTU4MjAwCTAuMDAwCTExMi4zNzUJMTEzLjg3NQorNzQJNzkwCTExNC4xMjUJMTY1Mjcw MAkwLjAwMAkxMTIuNTAwCTExNC4zNzUKKzc0CTc5MQkxMTMuNTAwCTk0NzQwMAkwLjAwMAkxMTMu Mzc1CTExNC4xMjUKKzc0CTc5MgkxMTIuNzUwCTExMDAyMDAJMC4wMDAJMTEyLjUwMAkxMTQuMzgw Cis3NAk3OTMJMTEyLjUwMAkyMTk1OTAwCTAuMDAwCTExMC42MzAJMTEyLjYzMAorNzQJNzk0CTEx My4wMDAJMTU1ODEwMAkwLjAwMAkxMTEuODgwCTExMy4wMDAKKzc0CTc5NQkxMTMuMzgwCTExODc3 MDAJMC4wMDAJMTEzLjEzMAkxMTQuMjUwCis3NAk3OTYJMTE1LjAwMAkxMzY1MzAwCTAuMDAwCTEx My42MzAJMTE1LjI1MAorNzQJNzk3CTExNC42MjUJMTk5MjAwMAkwLjAwMAkxMTQuNTAwCTExNi41 MDAKKzc0CTc5OAkxMTQuMDAwCTE1ODIxMDAJMC4wMDAJMTEzLjYyNQkxMTUuMDAwCis3NAk3OTkJ MTEzLjc1MAkyMjI1MDAwCTAuMDAwCTExMi42MjUJMTE0LjAwMAorNzQJODAwCTExNS41MDAJMjQw NjQwMAkwLjAwMAkxMTMuMjUwCTExNS43NTAKKzc0CTgwMQkxMTcuMzc1CTIyMDk1MDAJMC4wMDAJ MTE1Ljc1MAkxMTcuNjI1Cis3NAk4MDIJMTE4LjI1MAkyNjQ4MjAwCTAuMDAwCTExNy43NTAJMTE5 LjM3NQorNzQJODAzCTExNy4xMjUJMTYxOTgwMAkwLjAwMAkxMTcuMTI1CTExOS4xMjUKKzc1CTgw NAkxMTYuMzgwCTEzMzM4MDAJMC4wMDAJMTE2LjAwMAkxMTguMzgwCis3NQk4MDUJMTE2Ljg3NQkx NTA5ODAwCTAuMDAwCTExNi4xMjUJMTE3LjUwMAorNzUJODA2CTExNy4xMzAJOTM5MDAwCTAuMDAw CTExNi44ODAJMTE3LjYzMAorNzUJODA3CTExNy4zODAJMTA0OTgwMAkwLjAwMAkxMTYuODgwCTEx OC4yNTAKKzc1CTgwOAkxMTcuNzUwCTE3MDgzMDAJMC4wMDAJMTE3LjM3NQkxMTguNzUwCis3NQk4 MDkJMTE2Ljc1MAkxMTA1NjAwCTAuMDAwCTExNi4wMDAJMTE3LjYzMAorNzUJODEwCTExNi4yNTAJ MTE0MTIwMAkwLjAwMAkxMTUuODc1CTExNy4wMDAKKzc1CTgxMQkxMTYuMDAwCTExNzM0MDAJMC4w MDAJMTE1LjAwMAkxMTYuMzgwCis3NQk4MTIJMTE2LjI1MAk5NDY2MDAJMC4wMDAJMTE1LjM3NQkx MTYuMzc1Cis3Ngk4MTMJOTguNzUwCTEyNDk3MDAJMC4wMDAJOTguMDAwCTk5LjM4MAorNzYJODE0 CTk5LjUwMAkxMTI3OTAwCTAuMDAwCTk4LjUwMAk5OS43NTAKKzc2CTgxNQkxMDAuMTI1CTExMjk0 MDAJMC4wMDAJOTkuMzc1CTEwMC41MDAKKzc2CTgxNgkxMDAuMzc1CTYzODgwMAkwLjAwMAkxMDAu MjUwCTEwMC43NTAKKzc2CTgxNwk5OS4zODAJMTI0NTQwMAkwLjAwMAk5OC4yNTAJMTAwLjc1MAor NzYJODE4CTk4Ljg4MAkxMTU3NzAwCTAuMDAwCTk4LjUwMAk5OS4zODAKKzc2CTgxOQk5Ny43NTAJ OTU2NTAwCTAuMDAwCTk3LjUwMAk5OC42MjUKKzc2CTgyMAk5Ny42MzAJMTAwMTMwMAkwLjAwMAk5 Ni44ODAJOTguMTMwCis3Ngk4MjEJOTcuMTMwCTE0MzQyMDAJMC4wMDAJOTYuODgwCTk4LjEzMAor NzYJODIyCTk5LjI1MAkyMDI2OTAwCTAuMDAwCTk3LjM4MAk5OS41MDAKKzc3CTgyMwk5NS4zNzUJ MTAwNTEwMAkwLjAwMAk5NS4xMjUJOTUuNzUwCis3Nwk4MjQJOTQuNTAwCTY4MjIwMAkwLjAwMAk5 NC4yNTAJOTUuNTAwCis3Nwk4MjUJOTQuNzUwCTExNjU3MDAJMC4wMDAJOTQuNTAwCTk1LjM3NQor NzcJODI2CTk0LjEzMAkxMTkyMzAwCTAuMDAwCTk0LjAwMAk5NS4xMzAKKzc3CTgyNwk5NC4xMzAJ MTYzNzEwMAkwLjAwMAk5NC4wMDAJOTQuNjMwCis3Nwk4MjgJOTguMDAwCTE3NjA0MDAJMC4wMDAJ OTQuNTAwCTk4LjEzMAorNzcJODI5CTk4Ljg3NQkyMzY2MDAwCTAuMDAwCTk4LjM3NQk5OS41MDAK Kzc3CTgzMAkxMDAuMDAwCTI0MTg3MDAJMC4wMDAJOTguODgwCTEwMC4zODAKKzc3CTgzMQk5OS43 NTAJMTg5MDUwMAkwLjAwMAk5OS41MDAJMTAxLjYzMAorNzgJODMyCTEwNi42MjUJMTA1MDQwMAkw LjAwMAkxMDYuMDAwCTEwNi43NTAKKzc4CTgzMwkxMDYuNTAwCTE3MTYyMDAJMC4wMDAJMTA1Ljg4 MAkxMDcuNzUwCis3OAk4MzQJMTA2LjEzMAk4Njg0MDAJMC4wMDAJMTA1Ljg4MAkxMDYuODgwCis3 OAk4MzUJMTA1Ljg3NQk3NTIzMDAJMC4wMDAJMTA1LjI1MAkxMDYuMzc1Cis3OAk4MzYJMTA1LjUw MAk3ODI4MDAJMC4wMDAJMTA1LjI1MAkxMDUuODgwCis3OAk4MzcJMTA1Ljg3NQk5MzQ4MDAJMC4w MDAJMTA1LjEyNQkxMDYuMzc1Cis3OAk4MzgJMTA2LjM3NQk2NDUyMDAJMC4wMDAJMTA1Ljg3NQkx MDYuNTAwCis3OAk4MzkJMTA3LjEyNQk5MjE2MDAJMC4wMDAJMTA3LjAwMAkxMDguMDAwCis3OAk4 NDAJMTEwLjg4MAk0MTIwNzAwCTAuMDAwCTExMC4xMzAJMTExLjI1MAorNzgJODQxCTExMS4xMjUJ MTkxNjkwMAkwLjAwMAkxMDkuODc1CTExMS4yNTAKKzc4CTg0MgkxMDkuODc1CTE1MzEwMDAJMC4w MDAJMTA5LjUwMAkxMTAuODc1Cis3OQk4NDMJMTAyLjM4MAkxMzQ3MDAwCTAuMDAwCTEwMS41MDAJ MTAzLjUwMAorNzkJODQ0CTEwNS41MDAJMTYzNDcwMAkwLjAwMAkxMDEuODgwCTEwNS41MDAKKzc5 CTg0NQkxMDUuODgwCTE2MDk0MDAJMC4wMDAJMTA1LjUwMAkxMDcuNjMwCis3OQk4NDYJMTA3LjUw MAkxNDM4MjAwCTAuMDAwCTEwNS44ODAJMTA3Ljc1MAorNzkJODQ3CTEwNy44ODAJMTE5MjkwMAkw LjAwMAkxMDcuMTMwCTEwOC4zODAKKzc5CTg0OAkxMDUuMDAwCTEwNzcwMDAJMC4wMDAJMTA0Ljc1 MAkxMDcuNzUwCis4MAk4NDkJMTA3LjM3NQkxMTAxNzAwCTAuMDAwCTEwNy4xMjUJMTA5LjAwMAor ODAJODUwCTEwNy44ODAJMTE2MjAwMAkwLjAwMAkxMDYuMzgwCTEwOC4yNTAKKzgwCTg1MQkxMDgu MjUwCTE1NzAwMDAJMC4wMDAJMTA2LjAwMAkxMDkuMDAwCis4MAk4NTIJMTA5LjUwMAk5MDEzMDAJ MC4wMDAJMTA4LjYyNQkxMDkuNTAwCis4MAk4NTMJMTA1LjM3NQkxNDE4NjAwCTAuMDAwCTEwNS4z NzUJMTA4LjYyNQorODAJODU0CTEwMy41MDAJMjI1ODYwMAkwLjAwMAkxMDIuODc1CTEwNi42MjUK KzgwCTg1NQkxMDEuMDAwCTMxMTM4MDAJMC4wMDAJOTkuNzUwCTEwMy44ODAKKzgwCTg1NgkxMDAu MjUwCTIzMDgxMDAJMC4wMDAJOTkuNTAwCTEwMi4wMDAKKzgwCTg1Nwk5OS4yNTAJMzEyMTQwMAkw LjAwMAk5Ni4yNTAJMTAwLjg3NQorODAJODU4CTk5LjM4MAkxNjkwMjAwCTAuMDAwCTk4LjI1MAkx MDAuMzgwCis4MAk4NTkJMTAwLjc1MAkxMzMwMzAwCTAuMDAwCTk5LjM4MAkxMDEuNjMwCis4MAk4 NjAJMTA1LjM3NQkxODY2NTAwCTAuMDAwCTEwMS43NTAJMTA1LjM3NQorODAJODYxCTEwNy42MjUJ MjY1ODYwMAkwLjAwMAkxMDQuNjI1CTEwOS4wMDAKKzgwCTg2MgkxMDcuNzUwCTE5MTgzMDAJMC4w MDAJMTA2LjUwMAkxMDguNzUwCis4MAk4NjMJMTA2Ljc1MAkxMjcwNzAwCTAuMDAwCTEwNi42MjUJ MTA4LjI1MAorODEJODY0CTExMS41MDAJMzM4OTgwMAkwLjAwMAkxMTEuMjUwCTExNi4wMDAKKzgx CTg2NQkxMTIuNTAwCTE5MDk0MDAJMC4wMDAJMTEwLjc1MAkxMTIuODc1Cis4MQk4NjYJMTEzLjM4 MAkxMTczODAwCTAuMDAwCTExMi4xMzAJMTEzLjc1MAorODEJODY3CTExMi44NzUJOTk3OTAwCTAu MDAwCTExMi4zNzUJMTEzLjEyNQorODEJODY4CTExNC4zNzUJMTQ3MTkwMAkwLjAwMAkxMTIuNjI1 CTExNC41MDAKKzgxCTg2OQkxMTIuODgwCTEwOTMxMDAJMC4wMDAJMTEyLjg4MAkxMTQuNjMwCis4 MQk4NzAJMTExLjI1MAkxNDM1MjAwCTAuMDAwCTExMS4wMDAJMTEyLjUwMAorODEJODcxCTExMS41 MDAJOTU0OTAwCTAuMDAwCTExMC42MjUJMTExLjc1MAorODEJODcyCTExMy41MDAJMTYxNzEwMAkw LjAwMAkxMTEuNTAwCTExMy41MDAKKzgxCTg3MwkxMTIuNzUwCTI0NjM5MDAJMC4wMDAJMTEyLjEz MAkxMTQuMDAwCis4MQk4NzQJMTEzLjc1MAkxODk2MDAwCTAuMDAwCTExMi4yNTAJMTE0LjYzMAor ODEJODc1CTExMy44NzUJMjA4NDYwMAkwLjAwMAkxMTMuMzc1CTExNC4zNzUKKzgxCTg3NgkxMTMu ODgwCTM0MTMwMAkwLjAwMAkxMTMuNzUwCTExNC4yNTAKKzgxCTg3NwkxMTMuNTAwCTM5NjgwMAkw LjAwMAkxMTMuNTAwCTExNC4yNTAKKzgxCTg3OAkxMTMuNjMwCTcxNDEwMAkwLjAwMAkxMTMuMDAw CTExMy44ODAKKzgxCTg3OQkxMTMuMzc1CTcyODIwMAkwLjAwMAkxMTMuMjUwCTExMy44NzUKKzgx CTg4MAkxMTMuMDAwCTQ2MTMwMAkwLjAwMAkxMTIuODgwCTExMy41MDAKKzgxCTg4MQkxMTIuMTI1 CTEwMzc3MDAJMC4wMDAJMTEyLjEyNQkxMTMuNzUwCis4MQk4ODIJMTEyLjUwMAkxMzA3NDAwCTAu MDAwCTExMi4yNTAJMTEzLjg4MAorODEJODgzCTExMi4xMzAJMTA4NTEwMAkwLjAwMAkxMTEuODgw CTExMy4wMDAKKzgxCTg4NAkxMTAuMjUwCTExODk0MDAJMC4wMDAJMTEwLjAwMAkxMTEuODc1Cis4 MQk4ODUJMTA5LjAwMAkxNzE1NTAwCTAuMDAwCTEwOC43NTAJMTEwLjM3NQorODEJODg2CTEwNi44 ODAJMjA3ODAwMAkwLjAwMAkxMDYuNzUwCTExMC43NTAKKzgxCTg4NwkxMDguMzgwCTk2MjAwMAkw LjAwMAkxMDcuMjUwCTEwOC4zODAKKzgxCTg4OAkxMDguMTMwCTYwODcwMAkwLjAwMAkxMDcuNzUw CTEwOC4yNTAKKzgxCTg4OQkxMDYuNzUwCTE3NDY1MDAJMC4wMDAJMTA1LjUwMAkxMDcuMTMwCis4 MQk4OTAJMTA3LjUwMAkxMTY4MTAwCTAuMDAwCTEwNi43NTAJMTA3Ljc1MAorODEJODkxCTEwOS4x MzAJMTU4MjAwMAkwLjAwMAkxMDYuNjMwCTEwOS4yNTAKKzgxCTg5MgkxMTUuNzUwCTQzMzA0MDAJ MC4wMDAJMTE0LjI1MAkxMTYuMTMwCis4MQk4OTMJMTE3LjYyNQk0NTkyNTAwCTAuMDAwCTExNC44 NzUJMTE4LjI1MAorODIJODk0CTExOC4wMDAJMTk2MzcwMAkwLjAwMAkxMTcuNzUwCTExOS42MjUK KzgyCTg5NQkxMTkuMjUwCTIyMTEwMDAJMC4wMDAJMTE3Ljg3NQkxMjAuMTI1Cis4Mgk4OTYJMTIx LjAwMAkyODQxMjAwCTAuMDAwCTExOS44ODAJMTIxLjYzMAorODIJODk3CTEyMi42MjUJMjQ0MTEw MAkwLjAwMAkxMjAuNTAwCTEyMi42MjUKKzgyCTg5OAkxMjQuMjUwCTI0Nzg0MDAJMC4wMDAJMTIy LjM4MAkxMjUuMDAwCis4Mgk4OTkJMTI0LjUwMAkxOTQ5MjAwCTAuMDAwCTEyMy4wMDAJMTI1LjM4 MAorODIJOTAwCTEyNy4wMDAJMjUyNDMwMAkwLjAwMAkxMjQuNjMwCTEyNy4wMDAKKzgyCTkwMQkx MjYuNzUwCTE3MTgzMDAJMC4wMDAJMTI2LjI1MAkxMjcuMTMwCis4Mgk5MDIJMTI2Ljg4MAkxOTE5 MTAwCTAuMDAwCTEyNS42MzAJMTI3LjYzMAorODMJOTAzCTEyOC41MDAJMjUzMjAwMAkwLjAwMAkx MjguMzgwCTEzMS4wMDAKKzgzCTkwNAkxMjkuNTAwCTE3NTE3MDAJMC4wMDAJMTI4LjI1MAkxMjku ODc1Cis4Mwk5MDUJMTMyLjM3NQkxODY1MzAwCTAuMDAwCTEyOS42MjUJMTMyLjUwMAorODMJOTA2 CTEzMi43NTAJMjM3MjQwMAkwLjAwMAkxMzEuNTAwCTEzMy44NzUKKzgzCTkwNwkxMzQuNjMwCTE5 MjM4MDAJMC4wMDAJMTMyLjI1MAkxMzUuMDAwCis4Mwk5MDgJMTM1LjAwMAkyNDg1NDAwCTAuMDAw CTEzMy44ODAJMTM2LjI1MAorODMJOTA5CTEzNy4zNzUJMjczODkwMAkwLjAwMAkxMzUuMzc1CTEz Ny43NTAKKzgzCTkxMAkxMzkuNTAwCTIyNzgxMDAJMC4wMDAJMTM3LjAwMAkxMzkuNzUwCis4Mwk5 MTEJMTM3Ljg4MAkxODU0MjAwCTAuMDAwCTEzNy44ODAJMTM4Ljc1MAorODQJOTEyCTExMC42MzAJ MjIxNDcwMAkwLjAwMAkxMTAuMTMwCTExMS44ODAKKzg0CTkxMwkxMDguNTAwCTM1NTU1MDAJMC4w MDAJMTA4LjEzMAkxMTEuMDAwCis4NAk5MTQJMTA2Ljg3NQkzMDI2ODAwCTAuMDAwCTEwNS42MjUJ MTA4LjM3NQorODQJOTE1CTEwOS4yNTAJMjA4NjcwMAkwLjAwMAkxMDYuNzUwCTEwOS4yNTAKKzg0 CTkxNgkxMDkuODgwCTIwODkwMDAJMC4wMDAJMTA5LjI1MAkxMTAuNzUwCis4NAk5MTcJMTA5Ljc1 MAkxNDYzODAwCTAuMDAwCTEwOS4zNzUJMTEwLjc1MAorODQJOTE4CTEwOS41MDAJMjEwOTMwMAkw LjAwMAkxMDkuMDAwCTExMC4yNTAKKzg0CTkxOQkxMDguNTAwCTE1NzA0MDAJMC4wMDAJMTA4LjEy NQkxMDkuMzc1Cis4NQk5MjAJOTguMDAwCTE0Mzg4MDAJMC4wMDAJOTcuNjMwCTk5LjM4MAorODUJ OTIxCTk3LjI1MAkxOTA5NTAwCTAuMDAwCTk2Ljc1MAk5OC4yNTAKKzg1CTkyMgk5OS43NTAJMTQx NzIwMAkwLjAwMAk5Ny4wMDAJOTkuODc1Cis4NQk5MjMJOTkuODgwCTg5MzYwMAkwLjAwMAk5OS41 MDAJMTAwLjUwMAorODUJOTI0CTEwMS4yNTAJNzkxMDAwCTAuMDAwCTk5LjEyNQkxMDEuNjI1Cis4 NQk5MjUJMTA0LjI1MAkzMDMzNjAwCTAuMDAwCTk5Ljc1MAkxMDQuNzUwCis4NQk5MjYJMTAxLjYy NQkyMDI1OTAwCTAuMDAwCTEwMS4zNzUJMTAzLjc1MAorODUJOTI3CTk5Ljg3NQkxNjMxOTAwCTAu MDAwCTk5LjM3NQkxMDEuMjUwCis4NQk5MjgJMTAwLjM4MAkxMzE1NzAwCTAuMDAwCTk5LjYzMAkx MDAuMzgwCis4Ngk5MjkJOTQuNjI1CTE5NzMwMDAJOTIuMDAwCTkxLjg3NQk5NC43NTAKKzg2CTkz MAk5Mi4zODAJMjUxNTkwMAk5NC4wMDAJOTIuMjUwCTk1LjAwMAorODYJOTMxCTkxLjI1MAkyMDQw MTAwCTkyLjYyNQk5MS4yNTAJOTQuMjUwCis4Ngk5MzIJOTAuODc1CTE2MTE1MDAJOTEuMzc1CTkw LjYyNQk5Mi41MDAKKzg2CTkzMwk5MC4yNTAJMTMzMzMwMAk5MC43NTAJODkuNzUwCTkwLjg3NQor ODYJOTM0CTkyLjM3NQkxMzM4NDAwCTkwLjM3NQk5MC4yNTAJOTIuNTAwCis4Ngk5MzUJOTUuMzgw CTMxMDM5MDAJOTQuMDAwCTkzLjUwMAk5NS43NTAKKzg2CTkzNgk5NS41MDAJMjI1MzIwMAk5NS4x MjUJOTUuMDAwCTk3LjEyNQorODYJOTM3CTk2LjM3NQkzNTgyMDAwCTk1LjAwMAk5Mi42MjUJOTgu MTI1Cis4Ngk5MzgJOTUuMjUwCTEyMDk1MDAJOTYuMjUwCTk1LjI1MAk5Ni4zNzUKKzg2CTkzOQk5 Mi44ODAJMTQyNjQwMAk5NS4yNTAJOTIuODgwCTk1LjUwMAorODYJOTQwCTk1LjYzMAkxMjczNDAw CTkyLjg4MAk5Mi44ODAJOTUuNjMwCis4Nwk5NDEJOTIuMjUwCTE1MDI2MDAJOTEuMTI1CTkwLjAw MAk5Mi4yNTAKKzg3CTk0Mgk5MS4yNTAJMTYzMjUwMAk5MS43NTAJOTEuMDAwCTkyLjEzMAorODcJ OTQzCTg5Ljg4MAkxNDAxNzAwCTkwLjM4MAk4OS42MzAJOTAuODgwCis4Nwk5NDQJODkuMjUwCTE3 MjQyMDAJOTAuMDAwCTg4LjYyNQk5MC4zNzUKKzg3CTk0NQk4OS43NTAJOTQ1ODAwCTg5LjYyNQk4 OS4xMjUJODkuODc1Cis4Nwk5NDYJOTAuMjUwCTExMzA3MDAJODkuNzUwCTg5Ljc1MAk5MC44NzUK Kzg3CTk0Nwk5Mi4xMjUJMTU4MTUwMAk5MC41MDAJODkuODc1CTkyLjM3NQorODcJOTQ4CTkwLjc1 MAkxOTU0MDAwCTkyLjc1MAk5MC4xMzAJOTMuMjUwCis4Nwk5NDkJODkuNzUwCTEyOTUxMDAJOTAu NTAwCTg5LjUwMAk5MS4xMzAKKzg3CTk1MAk4OS42MjUJMTMxNDUwMAk5MC4wMDAJODkuMTI1CTkx LjEyNQorODcJOTUxCTg5LjYzMAkxMTQ4NDAwCTkwLjAwMAk4OS4zODAJOTAuNzUwCis4Nwk5NTIJ ODkuNzUwCTEzNjMyMDAJODkuNzUwCTg5LjEyNQk5MC42MjUKKzg3CTk1Mwk4OS44NzUJMTQ0NjEw MAk4OS43NTAJODkuMjUwCTkwLjM3NQorODcJOTU0CTg5LjM4MAkxMDU2NTAwCTg5Ljg4MAk4OC43 NTAJOTAuMjUwCis4OAk5NTUJODIuMzgwCTE5MjY0MDAJODMuMzgwCTgyLjI1MAk4NC44ODAKKzg4 CTk1Ngk4NC44NzUJMzAyMDEwMAk4Mi42MjUJODIuNjI1CTg1LjAwMAorODgJOTU3CTg1LjEyNQky Mjc1NjAwCTg1LjM3NQk4NC42MjUJODUuODc1Cis4OAk5NTgJODYuMDAwCTIwNTI5MDAJODUuNjMw CTg0LjUwMAk4Ni4xMzAKKzg4CTk1OQk4Ny41MDAJMTcxMjMwMAk4Ni4xMzAJODUuODgwCTg3LjUw MAorODgJOTYwCTg4LjI1MAkzMzE2NjAwCTg5LjUwMAk4OC4xMjUJODkuNzUwCis4OAk5NjEJODgu NTAwCTIyMTU2MDAJODguNzUwCTg3LjYyNQk4OC44NzUKKzg4CTk2Mgk4OC42MjUJMjA2MzEwMAk4 OC41MDAJODcuNTAwCTg4LjYyNQorODgJOTYzCTg5LjUwMAkxNzkyODAwCTg4LjUwMAk4OC4yNTAJ ODkuNzUwCis4OAk5NjQJOTAuMDAwCTIxMTcyMDAJODkuNjMwCTg5LjUwMAk5MC4yNTAKKzg4CTk2 NQk5MC4xMjUJMTMyNDkwMAk4OS44NzUJODkuNjI1CTkwLjEyNQorODgJOTY2CTg5LjI1MAkxNDc1 NDAwCTkwLjAwMAk4OS4wMDAJOTAuNjMwCis4OQk5NjcJODkuMjUwCTE0NzU0MDAJOTAuMDAwCTg5 LjAwMAk5MC42MzAKKzg5CTk2OAk4OC4xMzAJOTkzMTAwCTg5LjEzMAk4OC4xMzAJODkuMjUwCis4 OQk5NjkJODguMTI1CTEwMDA5MDAJODcuODc1CTg3Ljc1MAk4OC43NTAKKzg5CTk3MAk4OC41MDAJ MTEwODkwMAk4OC4xMzAJODcuMzgwCTg4LjUwMAorODkJOTcxCTg4LjEzMAkxMjY4NjAwCTg4Ljg4 MAk4Ny43NTAJODguODgwCis4OQk5NzIJOTAuNzUwCTE2ODE5MDAJODguNTAwCTg4LjI1MAk5MC43 NTAKKzg5CTk3Mwk5MC42MjUJMjA3NDQwMAk5MS4yNTAJOTAuMzc1CTkyLjEyNQorODkJOTc0CTky LjUwMAkyMzQxMjAwCTkyLjUwMAk5Mi4xMjUJOTMuMDAwCis4OQk5NzUJOTMuODc1CTIwNDQ5MDAJ OTIuNTAwCTkyLjM3NQk5NC4wMDAKKzkwCTk3Ngk2Mi44ODAJMjU0MTgwMAk2Mi4zODAJNjIuMzgw CTYzLjM4MAorOTAJOTc3CTU2LjEzMAkxMjE5MzUwMAkwLjAwMAk1Ni4wMDAJNTkuODgwCis5MAk5 NzgJNTEuODc1CTEzNDIxMjAwCTUzLjYyNQk1MC43NTAJNTQuODc1Cis5MAk5NzkJNTMuMDAwCTgw MjU0MDAJMC4wMDAJNTEuMjUwCTUzLjM4MAorOTAJOTgwCTUxLjM3NQk3NjU4MDAwCTUzLjEyNQk1 MC4yNTAJNTMuMjUwCis5MAk5ODEJNDguODc1CTczODQ2MDAJNTEuMjUwCTQ4Ljc1MAk1MS42MjUK KzkwCTk4Mgk1MS43NTAJNjExNTcwMAk1MC4wMDAJNDkuMDAwCTUyLjAwMAorOTAJOTgzCTUxLjI1 MAk0MTg2MjAwCTUxLjYyNQk1MS4wMDAJNTIuNjI1Cis5MQk5ODQJNDYuMzgwCTM2Mzg5MDAJNDcu MDAwCTQ1Ljg4MAk0Ny4wMDAKKzkxCTk4NQk0OC42MjUJMzQyMDUwMAk0Ni41MDAJNDYuNTAwCTQ4 Ljc1MAorOTEJOTg2CTQ4Ljg3NQkzMDU0NTAwCTQ4Ljc1MAk0Ny41MDAJNDkuMjUwCis5MQk5ODcJ NDkuMDAwCTc4MDI0MDAJNTIuODc1CTQ4Ljc1MAk1My4yNTAKKzkxCTk4OAk0OS42MjUJMzMwNzUw MAk0OS4xMjUJNDguMjUwCTUwLjAwMAorOTEJOTg5CTUwLjI1MAkzMDk1NzAwCTUwLjAwMAk0OS43 NTAJNTAuODc1Cis5MQk5OTAJNTEuNTAwCTI5ODE1MDAJNTEuMDAwCTUwLjg3NQk1MS42MjUKKzkx CTk5MQk1Mi42MjUJMzAzOTUwMAk1Mi4wMDAJNTIuMDAwCTUyLjYyNQorOTEJOTkyCTUyLjEyNQky NjM1NDAwCTUyLjI1MAk1Mi4wMDAJNTMuMDAwCis5Mgk5OTMJNDIuMjUwCTI0OTQyMDAJNDMuNjI1 CTQyLjAwMAk0My42MjUKKzkyCTk5NAk0Mi4zNzUJMzkyMjMwMAk0MS44NzUJNDEuMTI1CTQyLjM3 NQorOTIJOTk1CTQ1LjYzMAk2MjYwMzAwCTQ0Ljg4MAk0NC41MDAJNDUuODgwCis5Mgk5OTYJNDQu MDAwCTQyMTY3MDAJNDYuMDAwCTQzLjg3NQk0Ni4zNzUKKzkzCTk5Nwk1MS44NzUJMjMzMTcwMAk1 Mi4yNTAJNTEuNTAwCTUyLjYyNQorOTMJOTk4CTUyLjAwMAkyNTk1MzAwCTUxLjg3NQk1MS42MjUJ NTIuNTAwCis5Mwk5OTkJNTMuMTI1CTIwNjcyMDAJNTIuMzc1CTUxLjg3NQk1My4yNTAKKzkzCTEw MDAJNTUuMTI1CTQxODQwMDAJNTQuMDAwCTUzLjc1MAk1NS4yNTAKKzkzCTEwMDEJNTUuNzUwCTEy MTEwMDAJNTUuNTAwCTU1LjEyNQk1Ni4wMDAKKzkzCTEwMDIJNTQuMzgwCTI0ODc5MDAJNTYuMDAw CTU0LjM4MAk1Ni4xMzAKKzkzCTEwMDMJNTMuODc1CTE5NzY4MDAJNTQuNTAwCTUzLjc1MAk1NS4x MjUKKzkzCTEwMDQJNTMuMTMwCTIzODUzMDAJNTQuNzUwCTUzLjEzMAk1NC43NTAKKzkzCTEwMDUJ NTMuNzUwCTE4NjU4MDAJNTMuMjUwCTUzLjI1MAk1NC4xMjUKKzk0CTEwMDYJNTkuMDAwCTE4NDY4 MDAJNTguMTMwCTU4LjAwMAk1OS4xMzAKKzk0CTEwMDcJNTkuNTAwCTI1NzAwMDAJNTkuMDAwCTU4 LjUwMAk1OS44NzUKKzk0CTEwMDgJNTguNTAwCTIzNzk4MDAJNjAuMDAwCTU4LjUwMAk2MC4wMDAK Kzk0CTEwMDkJNTguODc1CTE0NTg2MDAJNTguNTAwCTU4LjAwMAk1OS4zNzUKKzk0CTEwMTAJNTku MjUwCTE3MzQ5MDAJNTguODc1CTU4LjUwMAk1OS41MDAKKzk0CTEwMTEJNTguNjMwCTE2OTA2MDAJ NTkuMTMwCTU4LjUwMAk1OS4zODAKKzk0CTEwMTIJNTguMTMwCTE1MDMxMDAJNTguNzUwCTU4LjEz MAk1OC44ODAKKzk0CTEwMTMJNTguNzUwCTE4MDQyMDAJNTguMjUwCTU4LjI1MAk1OS4wMDAKKzk0 CTEwMTQJNTguNjMwCTE1ODYwMDAJNTguNzUwCTU4LjM4MAk1OS41MDAKKzk0CTEwMTUJNTcuNTAw CTE1MjgxMDAJNTguNTAwCTU3LjEzMAk1OC41MDAKKzk0CTEwMTYJNTcuMTI1CTIyNTU5MDAJNTcu Mzc1CTU2LjM3NQk1Ny4zNzUKKzk0CTEwMTcJNTYuMDAwCTE5NTk1MDAJNTYuNzUwCTU1Ljc1MAk1 Ny4wMDAKKzk0CTEwMTgJNTUuMjUwCTIyNzg1MDAJNTUuODc1CTU1LjEyNQk1NS44NzUKKzk0CTEw MTkJNTUuMjUwCTMxNzY2MDAJNTUuMTI1CTU0Ljc1MAk1NS42MjUKKzk0CTEwMjAJNTguNjMwCTQy MTkzMDAJNTUuNzUwCTU1Ljc1MAk1OC43NTAKKzk0CTEwMjEJNTguMjUwCTEwMTU0OTAwCTU4Ljg4 MAk1NS4zODAJNTkuMzgwCis5NQkxMDIyCTUyLjg4MAkxNTY1NjAwCTUzLjM4MAk1Mi43NTAJNTMu NjMwCis5NQkxMDIzCTUzLjI1MAkxOTg1NTAwCTUyLjUwMAk1Mi4wMDAJNTMuMzgwCis5NQkxMDI0 CTU0LjAwMAkxODczNzAwCTUzLjM3NQk1My4zNzUJNTQuNjI1Cis5NQkxMDI1CTU0LjUwMAkxNzI3 NDAwCTU0LjM4MAk1NC4wMDAJNTQuNjMwCis5NQkxMDI2CTU0LjYyNQkxNDk1NzAwCTU1LjI1MAk1 NC41MDAJNTUuMjUwCis5NQkxMDI3CTUyLjc1MAkyMjkwMjAwCTU0Ljg4MAk1Mi41MDAJNTUuMDAw Cis5NgkxMDI4CTUzLjM4MAkyMDk3NTAwCTUzLjUwMAk1MS4zODAJNTMuNzUwCis5NgkxMDI5CTUy LjI1MAkyMjA3NzAwCTUzLjI1MAk1MS43NTAJNTMuNTAwCis5NgkxMDMwCTU4LjM4MAk4NzU4MTAw CTU1LjAwMAk1NC4wMDAJNTguNjMwCis5NgkxMDMxCTU4Ljc1MAk1NjYwNTAwCTU4LjM3NQk1OC4w MDAJNTkuNTAwCis5NwkxMDMyCTU4LjUwMAkyMjE3MjAwCTU4Ljg4MAk1OC41MDAJNTkuMjUwCis5 NwkxMDMzCTU3LjEyNQkyMjk3NTAwCTU3Ljg3NQk1Ni43NTAJNTguMjUwCis5NwkxMDM0CTU3LjUw MAkxOTA4NjAwCTU3LjM3NQk1Ni44NzUJNTcuODc1Cis5NwkxMDM1CTU4LjAwMAkxNjA4NTAwCTU3 LjUwMAk1Ni44NzUJNTguMzc1Cis5NwkxMDM2CTU4LjM4MAkxMzc2NjAwCTU4LjEzMAk1Ny44ODAJ NTguNjMwCis5NwkxMDM3CTU3Ljc1MAkxNTAwMzAwCTU4LjI1MAk1Ny41MDAJNTguMjUwCis5OAkx MDM4CTU1LjYyNQkxODE3MjAwCTU2Ljc1MAk1NS42MjUJNTYuODc1Cis5OAkxMDM5CTU1Ljg4MAkz MTg5MzAwCTU1Ljc1MAk1NC41MDAJNTYuMjUwCis5OAkxMDQwCTYyLjM4MAk4ODA3NTAwCTU5LjAw MAk1OC4wMDAJNjIuNjMwCis5OAkxMDQxCTYxLjM4MAkzNzE0MTAwCTYyLjI1MAk2MS4xMzAJNjIu MzgwCis5OQkxMDQyCTcyLjI1MAkyMzQxNjAwCTczLjYyNQk3Mi4yNTAJNzQuMTI1Cis5OQkxMDQz CTczLjEyNQkyMDQwODAwCTcyLjUwMAk3MS44NzUJNzMuMTI1Cis5OQkxMDQ0CTczLjI1MAkxNTM2 NDAwCTcyLjg4MAk3Mi43NTAJNzMuNzUwCis5OQkxMDQ1CTc0LjM3NQkyNDYzNDAwCTczLjUwMAk3 My4zNzUJNzQuNTAwCis5OQkxMDQ2CTc1LjM4MAkzOTMzOTAwCTc0LjAwMAk3My43NTAJNzUuNzUw Cis5OQkxMDQ3CTc1LjAwMAk1MjE2OTAwCTc1LjUwMAk3My44NzUJNzYuMTI1Cis5OQkxMDQ4CTc0 LjYyNQkzMzcyNTAwCTc0LjYyNQk3NC4xMjUJNzUuMzc1Cis5OQkxMDQ5CTczLjAwMAkyNjE1MjAw CTc0LjYyNQk3Mi44NzUJNzQuNjI1Cis5OQkxMDUwCTczLjg4MAkyODI5NjAwCTcyLjYzMAk3Mi42 MzAJNzQuMzgwCisxMDAJMTA1MQk3MS43NTAJMTQxODUwMAk3Mi43NTAJNzEuNTAwCTczLjAwMAor MTAwCTEwNTIJNzIuMTMwCTI3NDI0MDAJNzIuMDAwCTcwLjI1MAk3Mi44ODAKKzEwMAkxMDUzCTcz LjYyNQkzMjkyMDAwCTcyLjM3NQk3Mi4yNTAJNzMuODc1CisxMDAJMTA1NAk3NC4zODAJMTQ1ODYw MAk3My42MzAJNzMuNTAwCTc0LjM4MAorMTAwCTEwNTUJNzQuNjI1CTI1NjI4MDAJNzQuODc1CTc0 LjUwMAk3NS4yNTAKKzEwMAkxMDU2CTc0LjM4MAkxMzUyMTAwCTc0LjM4MAk3NC4xMzAJNzQuODgw CisxMDAJMTA1Nwk3NC4yNTAJMTQ1MDcwMAk3NC4yNTAJNzMuODc1CTc0LjM3NQorMTAwCTEwNTgJ NzQuMjUwCTE0OTY0MDAJNzQuMTI1CTc0LjEyNQk3NC44NzUKKzEwMQkxMDU5CTg3LjEzMAkyNTc2 NDAwCTg3Ljg4MAk4Ni4wMDAJODguMjUwCisxMDEJMTA2MAk4OS4wMDAJNTk3NzcwMAk5MC41MDAJ ODguNjMwCTkwLjUwMAorMTAxCTEwNjEJOTEuNjI1CTU4ODY0MDAJODkuMzc1CTg5LjEyNQk5Mi4w MDAKKzEwMQkxMDYyCTkzLjUwMAk0MzE4OTAwCTkxLjUwMAk5MS4wMDAJOTMuODgwCisxMDEJMTA2 Mwk5My42MjUJMzM0NjMwMAk5My4xMjUJOTIuODc1CTkzLjg3NQorMTAxCTEwNjQJOTUuMjUwCTM2 OTQ1MDAJOTMuMTI1CTkyLjg3NQk5NS42MjUKKzEwMgkxMDY1CTg5LjM3NQkzMzk0MDAwCTkwLjEy NQk4OC4zNzUJOTAuNzUwCisxMDIJMTA2Ngk4OS4xMzAJMzMwODQwMAk4OS42MzAJODguNjMwCTkw LjI1MAorMTAyCTEwNjcJOTAuMjUwCTI5OTU3MDAJOTAuNTAwCTg5Ljc1MAk5MC43NTAKKzEwMgkx MDY4CTkxLjc1MAkyOTA1MjAwCTkxLjM4MAk5MC44ODAJOTIuMjUwCisxMDIJMTA2OQk5My4wMDAJ MjU2MjUwMAk5MS44NzUJOTEuODc1CTkzLjM3NQorMTAyCTEwNzAJOTMuMDAwCTIxOTI5MDAJOTMu NjMwCTkzLjAwMAk5NC4wMDAKKzEwMwkxMDcxCTEwOS4wMDAJMzI4NTYwMAkxMDYuNTAwCTEwNS42 MjUJMTA5LjUwMAorMTAzCTEwNzIJMTA4LjYyNQkxMjU3MjAwCTEwOS4xMjUJMTA4LjUwMAkxMDku NzUwCisxMDMJMTA3MwkxMDguODc1CTE0MzA4MDAJMTA5LjEyNQkxMDguNjI1CTEwOS4zNzUKKzEw MwkxMDc0CTEwOS42MzAJMTc5NTMwMAkxMDguODgwCTEwOC44ODAJMTEwLjAwMAorMTAzCTEwNzUJ MTA5Ljg3NQkxOTY2ODAwCTExMC4wMDAJMTA5LjYyNQkxMTAuMzc1CisxMDMJMTA3NgkxMDkuMTI1 CTE5NzE0MDAJMTA5Ljg3NQkxMDguODc1CTExMC4zNzUKKzEwMwkxMDc3CTEwOS4yNTAJMjMyNzcw MAkxMDkuNTAwCTEwOC4zODAJMTA5LjYzMAorMTAzCTEwNzgJMTEwLjc1MAkxNzQ4MzAwCTEwOS4y NTAJMTA5LjI1MAkxMTAuODc1CisxMDMJMTA3OQkxMTIuMDAwCTI3MDEwMDAJMTExLjAwMAkxMTAu MjUwCTExMi4xMjUKKzEwMwkxMDgwCTExMi4zNzUJMjk0NjgwMAkxMTIuMTI1CTExMC43NTAJMTEy Ljc1MAorMTAzCTEwODEJMTEzLjYyNQkzMDI5NzAwCTExMi4zNzUJMTEyLjI1MAkxMTQuNjI1Cisx MDMJMTA4MgkxMTEuMzc1CTM2OTgxMDAJMTEzLjg3NQkxMTEuMTI1CTExNC4wMDAKKzEwMwkxMDgz CTEwNi43NTAJNDcwMDcwMAkxMTEuMzgwCTEwNi41MDAJMTExLjM4MAorMTAzCTEwODQJMTA3LjYz MAk1NTE0MzAwCTEwNy4wMDAJMTA1LjYzMAkxMDguMjUwCisxMDMJMTA4NQkxMDYuNjI1CTMyMzkw MDAJMTA4LjEyNQkxMDYuNTAwCTEwOC41MDAKKzEwNAkxMDg2CTkxLjg4MAkzNzQ0NDAwCTg5LjEz MAk4OS4xMzAJOTEuODgwCisxMDQJMTA4Nwk4OS4zNzUJMzYwNTgwMAk5Mi4wMDAJODkuMTI1CTky LjAwMAorMTA0CTEwODgJOTAuODc1CTI2NzQwMDAJODkuODc1CTg5Ljc1MAk5MS4xMjUKKzEwNAkx MDg5CTkxLjI1MAkxODc3NDAwCTkwLjg4MAk5MC44ODAJOTEuODgwCisxMDQJMTA5MAk5MS43NTAJ OTQ1NDAwCTkyLjAwMAk5MS42MjUJOTIuMTI1CisxMDQJMTA5MQk5Mi4wMDAJMTU3MjAwMAk5MS43 NTAJOTAuNzUwCTkyLjAwMAorMTA1CTEwOTIJODcuMjUwCTQ2MjQ2MDAJODguMTMwCTg2LjAwMAk4 OC41MDAKKzEwNQkxMDkzCTg2LjM3NQkyNjY0NDAwCTg3LjI1MAk4Ni4xMjUJODcuMjUwCisxMDUJ MTA5NAk4My4xMjUJMzc0MjgwMAk4Ni41MDAJODMuMTI1CTg2LjUwMAorMTA1CTEwOTUJODcuMDAw CTQ2MTMwMDAJODQuMTI1CTgzLjUwMAk4Ny43NTAKKzEwNQkxMDk2CTg3LjYyNQk0ODIxMTAwCTg2 Ljc1MAk4NS43NTAJODkuMjUwCisxMDUJMTA5Nwk5Ni4yNTAJOTg1NjkwMAk5MC4wMDAJODkuNjI1 CTk2LjI1MAorMTA1CTEwOTgJMTAyLjAwMAkxMzE0NTkwMAk5Ni42MjUJOTYuNTAwCTEwNC4xMjUK KzEwNQkxMDk5CTEwMi4yNTAJNTI5MzAwMAkxMDEuNTAwCTEwMS4zNzUJMTAzLjg3NQorMTA1CTEx MDAJMTAzLjAwMAk0OTU5MTAwCTEwMC43NTAJMTAwLjc1MAkxMDQuNTAwCisxMDUJMTEwMQkxMDcu MDAwCTc5ODkwMDAJMTAzLjEzMAkxMDMuMTMwCTEwOS4wMDAKKzEwNQkxMTAyCTEwNC4xMjUJNDcy MTgwMAkxMDcuNjI1CTEwNC4xMjUJMTA4LjAwMAorMTA2CTExMDMJMTEzLjYyNQkzNDY3OTAwCTEx NC4wMDAJMTEzLjUwMAkxMTQuODc1CisxMDYJMTEwNAkxMTQuMjUwCTMyMzc0MDAJMTEzLjg4MAkx MTMuNzUwCTExNS4wMDAKKzEwNgkxMTA1CTExNy42MjUJNTgzNTMwMAkxMTQuMzc1CTExNC4yNTAJ MTE4LjUwMAorMTA2CTExMDYJMTE4LjAwMAk0OTg1OTAwCTExOC4wMDAJMTE3LjUwMAkxMTguODgw CisxMDYJMTEwNwkxMTkuMTI1CTUzMjIyMDAJMTE2Ljc1MAkxMTYuNzUwCTEyMC44NzUKKzEwNgkx MTA4CTEyMC4yNTAJNDA5NzMwMAkxMTkuMDAwCTExOC42MzAJMTIwLjYzMAorMTA2CTExMDkJMTI0 LjEyNQk1MzU1ODAwCTEyMS43NTAJMTIxLjI1MAkxMjUuNjI1CisxMDYJMTExMAkxMjUuNjMwCTQx MjYyMDAJMTI1LjAwMAkxMjQuMDAwCTEyNi4xMzAKKzEwNgkxMTExCTEyNC44ODAJMjg4MjUwMAkx MjMuODgwCTEyMy44ODAJMTI1LjUwMAorMTA3CTExMTIJMTA4Ljc1MAk0NzIyOTAwCTExNC44NzUJ MTA4LjM3NQkxMTUuMTI1CisxMDcJMTExMwkxMTAuNzUwCTQ1NTg5MDAJMTA4LjM3NQkxMDcuNjI1 CTExMi4wMDAKKzEwNwkxMTE0CTExMS4yNTAJMzYxOTgwMAkxMTEuMTMwCTExMC4yNTAJMTEzLjc1 MAorMTA3CTExMTUJMTA5Ljc1MAkzMDQ2NjAwCTExMS44NzUJMTA5LjUwMAkxMTIuMzc1CisxMDcJ MTExNgkxMTEuMjUwCTI5MzE2MDAJMTEwLjM4MAkxMTAuMzgwCTExMy43NTAKKzEwNwkxMTE3CTEx MC4zODAJMjM3OTUwMAkxMTIuMTMwCTExMC4wMDAJMTEyLjc1MAorMTA3CTExMTgJMTE3LjYyNQk1 NDA3NzAwCTExMS4wMDAJMTEwLjUwMAkxMTguMTI1CisxMDcJMTExOQkxMTkuNzUwCTQxNDk5MDAJ MTE3LjUwMAkxMTYuMTMwCTEyMC41MDAKKzEwOAkxMTIwCTkxLjc1MAkzNjgzNjAwCTg5LjYzMAk4 OS4xMzAJOTIuNjMwCisxMDgJMTEyMQkxMDMuNjMwCTkwMTQ5MDAJOTYuMDAwCTk1LjYzMAkxMDMu NzUwCisxMDgJMTEyMgkxMDMuODc1CTM5OTA0MDAJMTAzLjEyNQkxMDEuNjI1CTEwNC4xMjUKKzEw OAkxMTIzCTEwNC43NTAJMzMzODIwMAkxMDMuNTAwCTEwMy4zODAJMTA1LjUwMAorMTA4CTExMjQJ MTA3LjM4MAkzOTkyODAwCTEwNS4yNTAJMTAzLjc1MAkxMDguMDAwCisxMDgJMTEyNQkxMDcuNTAw CTM1MDUzMDAJMTA3LjEyNQkxMDcuMDAwCTEwOC44NzUKKzEwOAkxMTI2CTEwNy4yNTAJMzEyMDYw MAkxMDguMDAwCTEwNy4yNTAJMTA5LjAwMAorMTA4CTExMjcJMTA4Ljg3NQkyMjY1ODAwCTEwOC4z NzUJMTA3Ljc1MAkxMDkuMzc1CisxMDgJMTEyOAkxMDkuMjUwCTIxNTExMDAJMTA4LjAwMAkxMDgu MDAwCTEwOS4zNzUKKzEwOQkxMTI5CTEyNC43NTAJMTMxMjIwMAkxMjQuNzUwCTEyNC4wMDAJMTI1 LjUwMAorMTA5CTExMzAJMTI0LjUwMAkxODY0NDAwCTEyNC44NzUJMTI0LjEyNQkxMjcuMTI1Cisx MDkJMTEzMQkxMjMuNzUwCTI0NDY1MDAJMTI0LjAwMAkxMjMuMTMwCTEyNS4yNTAKKzEwOQkxMTMy CTEyNS44ODAJMjAxMzIwMAkxMjQuMjUwCTEyNC4wMDAJMTI1Ljg4MAorMTA5CTExMzMJMTI1LjAw MAkxODQ1MTAwCTEyNS43NTAJMTI0LjYyNQkxMjYuMjUwCisxMDkJMTEzNAkxMjYuNjI1CTIzMDIz MDAJMTI1Ljg3NQkxMjUuNjI1CTEyNy4xMjUKKzEwOQkxMTM1CTEyNy44NzUJMTgzNTQwMAkxMjYu ODc1CTEyNi44NzUJMTI4LjAwMAorMTA5CTExMzYJMTI4LjM4MAkzMTQ4MDAwCTEyOC4wMDAJMTI3 LjYzMAkxMjkuNTAwCisxMDkJMTEzNwkxMjYuMjUwCTI0MDI0MDAJMTI5LjAwMAkxMjYuMTMwCTEy OS4zODAKKzEwOQkxMTM4CTEyNy43NTAJMjI0ODUwMAkxMjUuNTAwCTEyNS41MDAJMTI4LjAwMAor MTA5CTExMzkJMTI5Ljg3NQkyODU4MzAwCTEyOC41MDAJMTI4LjI1MAkxMzAuMTI1CisxMDkJMTE0 MAkxMzAuMDAwCTE0MDA5MDAJMTI5Ljg4MAkxMjkuMTMwCTEzMC4wMDAKKzEwOQkxMTQxCTEyOS41 MDAJMjg2MzkwMAkxMzAuNzUwCTEyOC42MzAJMTMxLjI1MAorMTA5CTExNDIJMTI3LjYyNQkxODc1 NzAwCTEyOS41MDAJMTI3LjM3NQkxMjkuNTAwCisxMDkJMTE0MwkxMjUuNjI1CTIxMzU0MDAJMTI4 Ljc1MAkxMjUuMjUwCTEyOS4xMjUKKzEwOQkxMTQ0CTEyOS4zNzUJMzQ3MzcwMAkxMjUuNTAwCTEy NC4wMDAJMTI5LjUwMAorMTEwCTExNDUJMTMzLjM3NQkyODg2NDAwCTEzMC42MjUJMTMwLjI1MAkx MzMuODc1CisxMTAJMTE0NgkxMzMuNzUwCTM0ODE2MDAJMTMzLjEyNQkxMzIuNzUwCTEzNS4xMjUK KzExMAkxMTQ3CTEzNC4zNzUJMTU2OTQwMAkxMzMuMzc1CTEzMi44NzUJMTM0LjUwMAorMTEwCTEx NDgJMTM0LjUwMAkxNDI5MjAwCTEzNC4zNzUJMTM0LjAwMAkxMzQuODc1CisxMTAJMTE0OQkxMzMu MjUwCTI3MjQxMDAJMTM1LjAwMAkxMzMuMDAwCTEzNS43NTAKKzExMAkxMTUwCTEzNC43NTAJMjM5 MjMwMAkxMzMuNTAwCTEzMy4yNTAJMTM1Ljg3NQorMTEwCTExNTEJMTM2Ljg4MAkyNzc0NTAwCTEz NC42MzAJMTM0LjYzMAkxMzcuNjMwCisxMTAJMTE1MgkxNDUuMDAwCTc4MDM4MDAJMTM3LjYzMAkx MzcuMzgwCTE0NS41MDAKKzExMAkxMTUzCTE0Ni43NTAJNTc3NzEwMAkxNDQuNzUwCTE0My4wMDAJ MTUwLjAwMAorMTExCTExNTQJMTU3LjYyNQkyODMzMDAwCTE1OC4xMjUJMTU2LjEyNQkxNTguNTAw CisxMTEJMTE1NQkxNTguMDAwCTU1MTU0MDAJMTU3LjUwMAkxNTcuMDAwCTE2MC43NTAKKzExMQkx MTU2CTE1OC4xMjUJMjc5OTcwMAkxNTguMjUwCTE1Ny43NTAJMTYwLjI1MAorMTExCTExNTcJMTU5 LjM3NQk5MzEzMDAJMTU4LjEyNQkxNTguMTI1CTE1OS42MjUKKzExMQkxMTU4CTE2My4wMDAJMzMx NjAwMAkxNTkuNjMwCTE1OS42MzAJMTYzLjUwMAorMTExCTExNTkJMTYyLjYyNQk0Njc3ODAwCTE2 My42MjUJMTYyLjYyNQkxNjYuMDAwCisxMTEJMTE2MAkxNjIuMDAwCTQ0Mzc0MDAJMTYyLjg3NQkx NTkuMTI1CTE2NC4wMDAKKzExMQkxMTYxCTE1OC41MDAJMzAzNjMwMAkxNjEuMzc1CTE1OC4zNzUJ MTYyLjYyNQorMTExCTExNjIJMTU1LjYyNQk2MDUxOTAwCTE1MS4wMDAJMTUxLjAwMAkxNTguMDAw CisxMTEJMTE2MwkxNjAuMDAwCTI3Njk5MDAJMTU2LjYzMAkxNTYuMjUwCTE2MC4xMzAKKzExMgkx MTY0CTE0MS4yNTAJMzU4MzAwMAkxNDMuMTMwCTE0MC4yNTAJMTQzLjUwMAorMTEyCTExNjUJMTM3 LjYyNQk2MzA4NTAwCTE0MC43NTAJMTM3LjEyNQkxNDAuODc1CisxMTIJMTE2NgkxNDMuODc1CTQy ODI3MDAJMTM3LjYyNQkwLjAwMAkxNDQuMDAwCisxMTIJMTE2NwkxNDYuNTAwCTQxOTg0MDAJMTQ0 LjM4MAkxNDQuMTMwCTE0OC4wMDAKKzExMgkxMTY4CTE0Ni44NzUJMzY3MDQwMAkxNDcuMDAwCTE0 NC4wMDAJMTQ3LjUwMAorMTEyCTExNjkJMTQzLjAwMAkxNzcyMjAwCTE0Ni44ODAJMTQzLjAwMAkx NDYuODgwCisxMTMJMTE3MAkxMzYuNTAwCTI2MzQ0MDAJMTM0LjUwMAkxMzMuMjUwCTEzNi44ODAK KzExMwkxMTcxCTEzNy44ODAJMzkzMTkwMAkxMzguNjMwCTEzNC4zODAJMTM5LjAwMAorMTEzCTEx NzIJMTM3LjUwMAkxODQ1MzAwCTEzNy4zODAJMTM1Ljc1MAkxMzguMzgwCisxMTMJMTE3MwkxMzcu NzUwCTI2NTUxMDAJMTM3LjM3NQkxMzYuNzUwCTEzOS43NTAKKzExMwkxMTc0CTEzOS43NTAJMjM0 MzIwMAkxMzguMDAwCTEzNy43NTAJMTQwLjEzMAorMTEzCTExNzUJMTM3LjM4MAkyMzU2NzAwCTEz OS42MzAJMTM2LjYzMAkxNDEuMjUwCisxMTMJMTE3NgkxNDAuMDAwCTMwMjIyMDAJMTM3LjI1MAkx MzQuNzUwCTE0MC4xMzAKKzExMwkxMTc3CTE0Mi4zODAJMzkxNzEwMAkxNDAuMDAwCTEzOS4wMDAJ MTQzLjc1MAorMTEzCTExNzgJMTUzLjYyNQkxMDY1OTEwMAkxNTAuNTAwCTE0OS41MDAJMTU3LjAw MAorMTEzCTExNzkJMTUwLjc1MAkzMDA1MDAwCTE1Mi4yNTAJMTUwLjYyNQkxNTIuODc1CisxMTQJ MTE4MAk5OC42MjUJMjk0OTYwMAkxMDIuNDM3CTk4LjYyNQkxMDQuMTI1CisxMTQJMTE4MQk5OS4x MzAJMjA2MDAwMAkxMDAuMTMwCTk5LjAwMAkxMDAuODEwCisxMTQJMTE4MgkxMDEuNjkwCTEwNjkx MDAJOTkuMzgwCTk5LjI1MAkxMDEuNzUwCisxMTQJMTE4MwkxMDIuNzUwCTIzMDczMDAJMTAyLjg3 NQkxMDIuNzUwCTEwMy42ODcKKzExNAkxMTg0CTEwMy4xMzAJMzU1ODAwMAkxMDMuNjkwCTEwMi45 NDAJMTA1LjUwMAorMTE0CTExODUJMTA0LjYyNQkyNzM2NTAwCTEwNC4wMDAJMTAzLjE4NwkxMDUu MTg3CisxMTQJMTE4NgkxMDUuNjI1CTI2MzUwMDAJMTA0LjUwMAkxMDQuMDYyCTEwNS43NTAKKzEx NAkxMTg3CTEwNi40MzcJNTAxNzAwMAkxMDUuNTYyCTEwNS4wMDAJMTA2LjgxMgorMTE0CTExODgJ MTA1LjI1MAkzNTU1NjAwCTEwNS4zNzUJMTA1LjA2MgkxMDcuMTg3CisxMTQJMTE4OQkxMDQuMjUw CTQzMDgyMDAJMTA1LjAwMAkxMDIuNjI1CTEwNS4wMDAKKzExNAkxMTkwCTEwNC4xOTAJNDA1OTQw MAkxMDMuNTAwCTEwMi45NDAJMTA1LjUwMAorMTE0CTExOTEJMTAwLjA2Mgk3MTgyODAwCTEwNC4z MTIJOTkuMzc1CTEwNC44NzUKKzExNAkxMTkyCTEwMC4xMzAJNjQxMDcwMAk5OC4yNTAJOTcuNTAw CTEwMS4xMzAKKzExNAkxMTkzCTEwMi4xMzAJMzQxNDUwMAkxMDAuNTYwCTEwMC4zMTAJMTAyLjQ0 MAorMTE0CTExOTQJMTAyLjYyNQk0Mjc1NDAwCTEwMy41MDAJMTAxLjI1MAkxMDQuMDAwCisxMTQJ MTE5NQkxMDMuNDM3CTYzMjE3MDAJMTAzLjE4NwkxMDIuMzc1CTEwNC45MzcKKzExNAkxMTk2CTEw NS4wMDAJNDE4OTEwMAkxMDQuODc1CTEwNC41MDAJMTA1LjE4NworMTE0CTExOTcJMTA4LjM4MAk0 OTcwNjAwCTEwNS4xOTAJMTA0LjY5MAkxMDguMzgwCisxMTQJMTE5OAkxMDAuMTI1CTEzOTA3ODAw CTEwMC4yNTAJOTkuNjI1CTEwMi4wMDAKKzExNAkxMTk5CTk5LjM4MAk2NTgzNTAwCTk5LjgxMAk5 OC41MDAJMTAwLjYzMAorMTE0CTEyMDAJOTkuMTg3CTM5MTE1MDAJOTkuODEyCTk4LjkzNwkxMDAu MDAwCisxMTQJMTIwMQk5OC4xMjUJMjgwNzkwMAk5OS4yNTAJOTguMDAwCTk5LjkzNworMTE0CTEy MDIJOTYuNTAwCTcwMTk3MDAJOTYuNzUwCTk1LjYzMAk5Ny44ODAKKzExNAkxMjAzCTk3LjAwMAk1 MTkyNDAwCTk3LjEzMAk5Ni41MDAJOTguMDAwCisxMTQJMTIwNAk5OC4xODcJNDQxMzYwMAk5Ny4w MDAJOTcuMDAwCTk5LjMxMgorMTE0CTEyMDUJOTguNzUwCTI5MDAxMDAJOTguMzEyCTk4LjAwMAk5 OS41NjIKKzExNAkxMjA2CTEwMC41NjIJMzQzNzcwMAkxMDAuMDAwCTEwMC4wMDAJMTAxLjI1MAor MTE0CTEyMDcJOTkuMzgwCTM1ODU2MDAJMTAwLjEzMAk5OC42OTAJMTAwLjI1MAorMTE1CTEyMDgJ OTguMTI1CTUyMDUxMDAJOTkuMTI1CTk4LjEyNQk5OS44MTIKKzExNQkxMjA5CTk2LjEyNQk2NDY0 MjAwCTk3LjEyNQk5NS44NzUJOTguMjUwCisxMTUJMTIxMAk5Ny41MDAJNDE2NzEwMAk5Ny4zODAJ OTYuNjkwCTk4LjE5MAorMTE1CTEyMTEJOTkuMTMwCTM0MDM0MDAJOTcuODgwCTk3LjQ0MAk5OS44 ODAKKzExNQkxMjEyCTEwMC4yNTAJMjk1MTcwMAk5OS4xODcJOTguMTg3CTEwMC42MjUKKzExNQkx MjEzCTk5LjYzMAkyOTI1MzAwCTEwMC44ODAJOTkuMDAwCTEwMS4xMzAKKzExNQkxMjE0CTEwMS4y NTAJMzQyMDcwMAk5OS42OTAJOTkuMjUwCTEwMS4zODAKKzExNQkxMjE1CTEwMC44ODAJMzU4NTEw MAkxMDEuMzEwCTk5LjU2MAkxMDEuODEwCisxMTUJMTIxNgkxMDEuNTYwCTM1OTQ3MDAJMTAwLjYz MAkxMDAuNTYwCTEwMi4zMTAKKzExNQkxMjE3CTEwMi44NzUJMjU4NTAwMAkxMDEuNjg3CTEwMS40 MzcJMTAzLjAwMAorMTE1CTEyMTgJMTAyLjA2Mgk0MTA3ODAwCTEwMy4wMDAJMTAxLjQzNwkxMDMu MjUwCisxMTYJMTIxOQkxMDguODEyCTQyNDA3MDAJMTA5LjAwMAkxMDcuNjI1CTEwOS4xMjUKKzEx NgkxMjIwCTEwNi4xMzAJNDg4NDAwMAkxMDguNzUwCTEwNi4wMDAJMTA5LjI1MAorMTE2CTEyMjEJ MTA4LjEzMAk0Mjc2OTAwCTEwNi4yNTAJMTA2LjE5MAkxMDkuNTAwCisxMTYJMTIyMgkxMTEuNzUw CTQwMzkyMDAJMTEwLjAwMAkxMDkuOTQwCTExMi4zMTAKKzExNgkxMjIzCTExMi4wMDAJMzAzMDAw MAkxMTEuODgwCTExMC4wNjAJMTEyLjEzMAorMTE2CTEyMjQJMTEyLjQ0MAkzMTg3ODAwCTExMi41 MDAJMTEyLjAwMAkxMTQuNjkwCisxMTYJMTIyNQkxMTMuMDAwCTE2MzY0MDAJMTEyLjM4MAkxMTIu MzEwCTExMy40NDAKKzExNgkxMjI2CTExNC4xMjUJMjE4NDYwMAkxMTQuMTI1CTExMy41NjIJMTE0 LjgxMgorMTE2CTEyMjcJMTE0LjgxMAk0MzU2MDAwCTExNC4xMzAJMTEzLjUwMAkxMTYuMzEwCisx MTYJMTIyOAkxMTYuNzUwCTMxNjY0MDAJMTE2LjAwMAkxMTUuNTAwCTExNi45MzcKKzExNgkxMjI5 CTExNS4xOTAJMzIxOTgwMAkxMTYuNTYwCTExNC41MDAJMTE2LjYzMAorMTE3CTEyMzAJMTE1LjAw MAkyMjU4MjAwCTExMy43NTAJMTEzLjYzMAkxMTUuNTYwCisxMTcJMTIzMQkxMTcuMDYyCTMxODk1 MDAJMTE0Ljc1MAkxMTQuNjI1CTExOC41MDAKKzExNwkxMjMyCTExOC41MDAJMzA3MDEwMAkxMTgu MjUwCTExNy4zNzUJMTE5LjI1MAorMTE3CTEyMzMJMTE5LjM4MAkyMzM5ODAwCTExOC41MDAJMTE4 LjI1MAkxMjAuMDAwCisxMTcJMTIzNAkxMTkuNjI1CTIyNjg2MDAJMTE5Ljc1MAkxMTkuMDAwCTEy MC42MjUKKzExNwkxMjM1CTExNy4wMDAJMjU1NzgwMAkxMTkuMjUwCTExNy4wMDAJMTIwLjAwMAor MTE3CTEyMzYJMTE4LjM4MAkyMTgwMTAwCTExNy4xMzAJMTE2LjAwMAkxMTguOTQwCisxMTcJMTIz NwkxMjAuMTg3CTMxNjg0MDAJMTE4LjU2MgkxMTguNTAwCTEyMC4zNzUKKzExNwkxMjM4CTEyMi4w MDAJNDQ4OTIwMAkxMjEuMDAwCTEyMC4zMTIJMTIzLjAwMAorMTE3CTEyMzkJMTI4LjEzMAkxMjMw ODYwMAkxMjguMjUwCTEyNy43NTAJMTMxLjAwMAorMTE3CTEyNDAJMTI3LjQ0MAk2MDQ5OTAwCTEy Ni4wMDAJMTI0LjUwMAkxMjguNDQwCisxMTcJMTI0MQkxMjMuODgwCTQxNTMxMDAJMTI3LjE5MAkx MjMuNjkwCTEyOS4wMDAKKzExNwkxMjQyCTEyNC4yNTAJMjg3NDYwMAkxMjUuODc1CTEyMi41MDAJ MTI1LjkzNworMTE4CTEyNDMJMTIzLjUwMAk0OTk0NzAwCTEyNS43NTAJMTIzLjM3NQkxMjcuNDM3 CisxMTgJMTI0NAkxMjIuNTAwCTU1Nzk4MDAJMTIyLjEzMAkxMTguMTkwCTEyMi41MDAKKzExOAkx MjQ1CTEyNi41NjIJNDk2NTEwMAkxMjEuMzc1CTEyMC42MjUJMTI2LjU2MgorMTE4CTEyNDYJMTI5 LjEzMAk0NTU3MTAwCTEyOC4wMDAJMTI3LjYzMAkxMjkuOTQwCisxMTgJMTI0NwkxMzAuMDAwCTMy NDY4MDAJMTI5LjAwMAkxMjguNTAwCTEzMC42ODcKKzExOAkxMjQ4CTEzMC41MDAJMzMxOTQwMAkx MzAuMDAwCTEyOC4xOTAJMTMwLjk0MAorMTE5CTEyNDkJMTMzLjYyNQkzODIwNDAwCTEzNC41MDAJ MTMyLjE4NwkxMzYuMTg3CisxMTkJMTI1MAkxMzEuNDM3CTM1NDQ5MDAJMTMzLjc1MAkxMzAuMDAw CTEzNC4xMjUKKzExOQkxMjUxCTEyOC41MDAJNDE0OTcwMAkxMzAuNzUwCTEyNy42MzAJMTMxLjUw MAorMTE5CTEyNTIJMTI1LjM3NQk2MjY4NzAwCTEyNS4wNjIJMTIzLjM3NQkxMjYuNDM3CisxMTkJ MTI1MwkxMjQuODEwCTczMDI2MDAJMTI0LjEzMAkxMTguOTQwCTEyNS4yNTAKKzExOQkxMjU0CTEy MC4yNTAJNjcyMTAwMAkxMjMuNzUwCTExNy4zMTAJMTIzLjc1MAorMTE5CTEyNTUJMTE5LjI1MAk3 MTgzNzAwCTEyNC4wMDAJMTE4Ljc1MAkxMjQuMDAwCisxMTkJMTI1NgkxMjAuNzUwCTY1ODI0MDAJ MTE5LjUwMAkxMTguMTI1CTEyMi44NzUKKzExOQkxMjU3CTEyMy41MDAJOTE1NjMwMAkxMjAuNzUw CTExNi44MTIJMTIzLjUwMAorMTE5CTEyNTgJMTI3LjMxMgk1ODQxNjAwCTEyNC40MzcJMTIyLjUw MAkxMjcuOTM3CisxMTkJMTI1OQkxMzAuODc1CTU0MDI1MDAJMTMwLjEyNQkxMjkuNTYyCTEzMi44 NzUKKzExOQkxMjYwCTEyOC4xOTAJNDY5NjgwMAkxMzAuNTAwCTEyNi41NjAJMTMwLjUwMAorMTIw CTEyNjEJMTQ3LjM4MAkzNDU2NTAwCTE0OC41MDAJMTQ3LjE5MAkxNDkuOTQwCisxMjAJMTI2Mgkx NDcuODgwCTQwOTYzMDAJMTQ4Ljg4MAkxNDUuNzUwCTE0OS43NTAKKzEyMAkxMjYzCTE0OS4wMDAJ MzI5MzAwMAkxNDcuNjkwCTE0Ni44MTAJMTQ5LjU2MAorMTIwCTEyNjQJMTQ5Ljk0MAkzNTY5MDAw CTE0OC44ODAJMTQ3LjUwMAkxNTAuOTQwCisxMjAJMTI2NQkxNTEuMzgwCTM3ODg3MDAJMTUwLjc1 MAkxNDkuOTQwCTE1Mi4xOTAKKzEyMAkxMjY2CTE1Ni4wMDAJNDM3MTUwMAkxNTAuODgwCTE1MC42 OTAJMTU2Ljc1MAorMTIwCTEyNjcJMTU3LjEyNQk1MTA5MTAwCTE1Ny4wMDAJMTU2LjUwMAkxNTgu ODc1CisxMjAJMTI2OAkxNTcuODgwCTQzMzM5MDAJMTU2LjY5MAkxNTYuNjMwCTE1OS44ODAKKzEy MAkxMjY5CTE1Ny40MzcJMjk5NzYwMAkxNTcuMDAwCTE1NS43NTAJMTU3LjUwMAorMTIxCTEyNzAJ MTY1LjAwMAkzODg1ODAwCTE2My41MDAJMTYyLjUwMAkxNjUuODEwCisxMjEJMTI3MQkxNjQuMzc1 CTI4MjY0MDAJMTY2Ljg3NQkxNjQuMzEyCTE2Ni44NzUKKzEyMQkxMjcyCTE2Ni4wNjIJNDM4MTYw MAkxNjUuNDM3CTE2NS4wNjIJMTY5LjYyNQorMTIxCTEyNzMJMTcxLjU2MAk0OTA4NDAwCTE2Ni42 MzAJMTY2LjYzMAkxNzIuMTkwCisxMjEJMTI3NAkxNzYuMzc1CTM3MzkzMDAJMTcxLjU2MgkxNzEu NTYyCTE3OC45MzcKKzEyMQkxMjc1CTE4Mi4yNTAJNDM1MjMwMAkxNzcuNTAwCTE3NS4yNTAJMTgz LjAwMAorMTIxCTEyNzYJMTg1LjAwMAkzNTM1MDAwCTE4Mi42OTAJMTgxLjEzMAkxODUuMzgwCisx MjEJMTI3NwkxODcuOTM3CTE1MjQ5MDAJMTg0Ljc1MAkxODQuMDYyCTE4Ny45MzcKKzEyMQkxMjc4 CTE4OS4yNTAJMjYzNDYwMAkxODYuNTAwCTE4Ni4wMDAJMTg5LjkzNworMTIxCTEyNzkJMTg3LjEy NQkxODgxMTAwCTE4OC42MjUJMTg3LjAwMAkxODguOTM3CisxMjEJMTI4MAkxODYuNzUwCTI0MDY2 MDAJMTg2Ljg3NQkxODYuMzEyCTE4OC42MjUKKzEyMQkxMjgxCTE4NC4zNzUJMTkzMjQwMAkxODYu NzUwCTE4My41MDAJMTg3LjE4NworMTIxCTEyODIJMTgzLjAwMAk0MDc0ODAwCTE4NS4wMDAJMTgx LjUwMAkxODYuNTAwCisxMjEJMTI4MwkxODkuNjMwCTQ5NTM4MDAJMTgzLjAwMAkxODIuODEwCTE4 OS44ODAKKzEyMgkxMjg0CTE3Ny45MzcJNDYwMDEwMAkxNzIuMjUwCTE3MS4wNjIJMTc3LjkzNwor MTIyCTEyODUJMTc2Ljk0MAk0NTU0NjAwCTE3OC4wMDAJMTc1Ljc1MAkxODAuMDAwCisxMjIJMTI4 NgkxNzMuNzUwCTQzMTg3MDAJMTc3LjI1MAkxNzMuMTMwCTE3OS42OTAKKzEyMgkxMjg3CTE3My42 MjUJNTIzNDgwMAkxNzIuMDAwCTE2OS4zMTIJMTczLjkzNworMTIyCTEyODgJMTY5Ljc1MAk3Mzk5 MDAwCTE3MS4wMDAJMTY2LjUwMAkxNzEuODgwCisxMjIJMTI4OQkxNjguMzc1CTQ3OTU0MDAJMTY5 LjUwMAkxNjUuMTI1CTE2OS41MDAKKzEyMgkxMjkwCTE2Ny43NTAJNDM3MTIwMAkxNzAuNTAwCTE2 Ni44ODAJMTcwLjk0MAorMTIyCTEyOTEJMTY2Ljc1MAkzODcxNTAwCTE2OC41MDAJMTY1LjA2Mgkx NjguOTM3CisxMjIJMTI5MgkxNzEuMDAwCTEwNzUwNTAwCTE3My41MDAJMTcwLjEyNQkxNzcuMDAw CisxMjIJMTI5MwkxNzguMzgwCTU4MDMyMDAJMTczLjg4MAkxNzMuNzUwCTE3OC45NDAKKzEyMgkx Mjk0CTE3OC44NzUJMzc3OTkwMAkxNzguNjI1CTE3Ny4wNjIJMTgwLjAwMAorMTIyCTEyOTUJMTgy LjE5MAk1MDA5NTAwCTE3OS44ODAJMTc4LjU2MAkxODQuODgwCisxMjIJMTI5NgkxODEuNTAwCTM1 MDQ5MDAJMTgxLjYzMAkxODAuMjUwCTE4Mi44ODAKKzEyMwkxMjk3CTE4Mi4wMDAJMzk1MTQwMAkx NzkuMTg3CTE3Ny4xMjUJMTgyLjMxMgorMTIzCTEyOTgJMTgxLjAwMAkzMzAzMDAwCTE4Mi4wMDAJ MTgwLjE5MAkxODMuNTAwCisxMjMJMTI5OQkxNzguMDYwCTM0NTI3MDAJMTc5LjUwMAkxNzguMDAw CTE4MC4wMDAKKzEyMwkxMzAwCTE3Ny42MzAJNzI1MjUwMAkxNzcuNTAwCTE3Mi45NDAJMTc3Ljc1 MAorMTIzCTEzMDEJMTY4LjU2Mgk5NzQ4NDAwCTE3Ni42MjUJMTY4LjAwMAkxNzguMDAwCisxMjMJ MTMwMgkxNjcuMDAwCTU5NDgzMDAJMTY4LjY4NwkxNjYuNjI1CTE3MC41MDAKKzEyMwkxMzAzCTE2 NS4zODAJNTAwNzUwMAkxNjcuMDAwCTE2NC4wMDAJMTY3LjYzMAorMTIzCTEzMDQJMTY5LjUwMAk1 OTEwNTAwCTE2OC4wMDAJMTY2LjUwMAkxNzAuNTAwCisxMjMJMTMwNQkxNzEuMzEyCTQ5MTQ0MDAJ MTcyLjAwMAkxNjkuNTAwCTE3My4yNTAKKzEyMwkxMzA2CTE3Mi4zODAJNDEzMzIwMAkxNzEuMDYw CTE3MC41NjAJMTc1Ljg4MAorMTIzCTEzMDcJMTc4LjU2MgkzNzMzNDAwCTE3Ny4wMDAJMTc2Ljg3 NQkxODEuMjUwCisxMjMJMTMwOAkxNzcuMjUwCTI5MTc2MDAJMTgwLjAwMAkxNzYuNTAwCTE4MS41 MDAKKzEyNAkxMzA5CTE4Ny4wMDAJNDI2NTUwMAkxODYuMDAwCTE4Mi4zMTIJMTg4LjA2MgorMTI0 CTEzMTAJMTg2LjMxMAkzMDU1OTAwCTE4NS42MzAJMTg0LjAwMAkxODguMDYwCisxMjQJMTMxMQkx ODMuNDQwCTQ0ODk5MDAJMTgzLjUwMAkxODEuMDYwCTE4My42MzAKKzEyNAkxMzEyCTE4MC4wMDAJ MzQyMzIwMAkxODQuMDAwCTE3OS45NDAJMTg0LjAwMAorMTI0CTEzMTMJMTc5LjM4MAkzNjMwNTAw CTE4Mi43NTAJMTc3LjYzMAkxODMuODgwCisxMjQJMTMxNAkxNzcuNzUwCTQxNjUyMDAJMTc5LjUw MAkxNzMuNTAwCTE3OS41MDAKKzEyNAkxMzE1CTE3MC4zNzUJNTk2NDQwMAkxNzcuNTAwCTE3MC4x MjUJMTc3LjUwMAorMTI0CTEzMTYJMTY2Ljc1MAk3NjkxODAwCTE3MC44ODAJMTY0LjA2MAkxNzIu MzEwCisxMjQJMTMxNwkxNjkuNzUwCTczNTgwMDAJMTY3LjAwMAkxNjMuMDAwCTE2OS43NTAKKzEy NAkxMzE4CTE3MS44NzUJNjU4MDgwMAkxNjkuNzUwCTE2NS4xMjUJMTcxLjg3NQorMTI0CTEzMTkJ MTk0LjUwMAkxOTU4NDkwMAkxOTcuMjUwCTE5Mi42ODcJMTk4Ljc1MAorMTI0CTEzMjAJMTk5Ljc1 MAkxMDM3NTUwMAkxOTMuMzgwCTE5Mi45NDAJMjA2LjU2MAorMTI0CTEzMjEJMjA5Ljg4MAk5MzMz MDAwCTIwNC43NTAJMjAyLjMxMAkyMTAuNzUwCisxMjQJMTMyMgkyMTIuMDAwCTEwNDY0NjAwCTIx Mi4wMDAJMjA4LjUwMAkyMTUuMjUwCisxMjQJMTMyMwkyMDUuMDAwCTU2NzA5MDAJMjA5LjI1MAky MDMuNTAwCTIxMC41MDAKKzEyNQkxMzI0CTIwOS4yNTAJNDE2OTgwMAkyMTEuODgwCTIwOC4wMDAJ MjE0LjAwMAorMTI1CTEzMjUJMjE3LjI1MAk0OTkzNDAwCTIxMS4yNTAJMjExLjA2MgkyMTcuNTAw CisxMjUJMTMyNgkyMTguNjMwCTQ3NzQyMDAJMjE3LjI1MAkyMTcuMDYwCTIyMS44ODAKKzEyNQkx MzI3CTIyMS4wMDAJNDE4NjQwMAkyMjAuNTAwCTIxNy41MDAJMjIxLjg3NQorMTI1CTEzMjgJMjI1 LjUwMAk2MDMzNDAwCTIyMS4xMjUJMjE1LjUwMAkyMjguNDM3CisxMjUJMTMyOQkyNDYuMDAwCTEy MTY1NzAwCTIzNC4wMDAJMjM0LjAwMAkyNDYuMDAwCisxMjUJMTMzMAkyMzkuMjUwCTkwMzY5MDAJ MjQxLjUwMAkyMzYuMDAwCTI0My41MDAKKzEyNQkxMzMxCTIzNy41MDAJNTc4MDIwMAkyMzYuMDAw CTIzMi4wMDAJMjM5LjYyNQorMTI1CTEzMzIJMjM4LjUwMAk0MzE2OTAwCTIzOC4yNTAJMjM3LjAw MAkyNDAuNjI1CisxMjUJMTMzMwkyMzUuODc1CTM4OTU4MDAJMjM4LjI1MAkyMzMuMDYyCTIzOC43 NTAKKzEyNQkxMzM0CTIzMi44NzUJMzIyMDkwMAkyMzUuNjI1CTIzMi41MDAJMjM2LjM3NQorMTI1 CTEzMzUJMjMwLjM4MAkzNDUyMzAwCTIzMi43NTAJMjI5LjE5MAkyMzMuMzgwCisxMjUJMTMzNgky MjMuNzUwCTQyOTkxMDAJMjMwLjMxMAkyMjEuNzUwCTIzMC42OTAKKzEyNQkxMzM3CTIyMS4xODcJ NDcwMjUwMAkyMjIuNTAwCTIyMS4wMDAJMjI2LjAwMAorMTI1CTEzMzgJMjM2LjI1MAk4MzE0MDAw CTIyMy4wMDAJMjIxLjQ0MAkyMzYuNjMwCisxMjUJMTMzOQkxMTYuMDAwCTEwNTUyNjAwCTExNi42 ODcJMTEyLjYyNQkxMTYuODc1CisxMjUJMTM0MAkxMTYuMDAwCTYzNzk1MDAJMTE2LjAwMAkxMTQu MTg3CTExNi43NTAKKzEyNgkxMzQxCTEyNC40NDAJNjA0MzUwMAkxMjIuNzUwCTEyMi4zMTAJMTI0 Ljg4MAorMTI2CTEzNDIJMTIyLjAwMAk4NDQyMTAwCTEyMy4zNzUJMTIxLjAwMAkxMjMuNjI1Cisx MjYJMTM0MwkxMjIuMzgwCTY0NjMwMDAJMTIyLjAwMAkxMjAuODgwCTEyNC4wNjAKKzEyNgkxMzQ0 CTEyMi45NDAJNjI0NTMwMAkxMjIuNjMwCTEyMi4wNjAJMTI1Ljg4MAorMTI2CTEzNDUJMTI0LjAw MAk0MzU0NjAwCTEyNS4wMDAJMTIyLjc1MAkxMjUuMTkwCisxMjYJMTM0NgkxMjMuMTg3CTQ3NzMw MDAJMTI0LjI1MAkxMjIuNjg3CTEyNS42MjUKKzEyNwkxMzQ3CTk4LjAwMAkxODcyMDQwMAk5NC4w MDAJOTMuNTYyCTk4LjI1MAorMTI3CTEzNDgJMTA0Ljc1MAkxOTY3MzMwMAk5OS4wMDAJOTguMzgw CTEwNS4wMDAKKzEyNwkxMzQ5CTEwNy44ODAJMTM2ODE1MDAJMTA1LjUwMAkxMDQuNDQwCTEwOC40 NDAKKzEyNwkxMzUwCTEwNi4xMjUJMTA2NjUwMDAJMTA4LjgxMgkxMDYuMDAwCTEwOS44NzUKKzEy NwkxMzUxCTEwNC4wNjAJOTcxMDMwMAkxMDUuMDAwCTEwMS44MTAJMTA1LjAwMAorMTI3CTEzNTIJ MTA1LjAwMAkzMTA4NDAwCTEwNS45MzcJMTA0LjEyNQkxMDYuMDAwCisxMjcJMTM1MwkxMDQuMTg3 CTU2Nzc3MDAJMTA0LjkzNwkxMDMuMzc1CTEwNC45MzcKKzEyNwkxMzU0CTEwMy4wNjAJNTcxOTkw MAkxMDMuNjkwCTEwMi4xMzAJMTA0LjUwMAorMTI3CTEzNTUJMTAzLjc1MAk1MzM2MDAwCTEwMi41 NjIJMTAyLjI1MAkxMDQuNDM3CisxMjcJMTM1NgkxMDUuNTYwCTYyMDg2MDAJMTAzLjQ0MAkxMDMu MzgwCTEwNi4zMTAKKzEyNwkxMzU3CTExMi4wMDAJMTQ2Nzk5MDAJMTA5LjgxMgkxMDcuOTM3CTEx Mi44NzUKKzEyNwkxMzU4CTExNi4wMDAJOTkyNDQwMAkxMTMuMDAwCTExMi41MDAJMTE2LjUwMAor MTI4CTEzNTkJMTA5LjE5MAk3MTE3MzAwCTEwOC4wMDAJMTA1Ljc1MAkxMDkuNjkwCisxMjgJMTM2 MAkxMDkuMTI1CTc2ODA3MDAJMTEwLjY4NwkxMDguNjI1CTExMS4wNjIKKzEyOAkxMzYxCTEwOC4w NjAJNDgzNDkwMAkxMDkuMDYwCTEwNy43NTAJMTEwLjQ0MAorMTI4CTEzNjIJMTEwLjEyNQk0Nzcz NTAwCTEwOC41MDAJMTA4LjA2MgkxMTAuMTI1CisxMjgJMTM2MwkxMDguMzc1CTQwMDU1MDAJMTA5 Ljg3NQkxMDguMjUwCTExMC4zMTIKKzEyOAkxMzY0CTEwOC42MjUJNDUyODcwMAkxMDkuMTI1CTEw OC4xODcJMTEwLjQzNworMTI4CTEzNjUJMTA5Ljc1MAkzNzQwNzAwCTEwOS42ODcJMTA4LjEyNQkx MTAuMDAwCisxMjgJMTM2NgkxMDkuMjUwCTQwODEzMDAJMTA5LjU2MAkxMDkuMDYwCTExMC43NTAK KzEyOAkxMzY3CTEwOS4wNjAJMjY4MzEwMAkxMTAuNDQwCTEwOC43NTAJMTEwLjUwMAorMTI4CTEz NjgJMTA4Ljc1MAkzNDM1MTAwCTEwOS42OTAJMTA4LjU2MAkxMTAuNTAwCisxMjgJMTM2OQkxMDcu ODc1CTI4NzAzMDAJMTA5LjE4NwkxMDYuNjI1CTEwOS41MDAKKzEyOAkxMzcwCTExNS42MjUJMTAz NDY4MDAJMTEyLjQzNwkxMTEuODc1CTExNS44MTIKKzEyOAkxMzcxCTExMi4wNjAJODIyNzgwMAkx MTQuMDAwCTExMC44ODAJMTE0LjUwMAorMTI5CTEzNzIJMTA3LjAwMAk1NjY1OTAwCTEwNy41MDAJ MTA2LjEzMAkxMDguMjUwCisxMjkJMTM3MwkxMDkuMDAwCTY2MjI1MDAJMTA5LjAwMAkxMDcuODgw CTEwOS44MTAKKzEyOQkxMzc0CTExMC4wMDAJODg1NjQwMAkxMDguMjUwCTEwNy42ODcJMTExLjY4 NworMTI5CTEzNzUJMTEyLjc1MAk2NTYzNTAwCTExMC4wMDAJMTA5Ljk0MAkxMTMuMzgwCisxMjkJ MTM3NgkxMTMuNTAwCTY3NzE0MDAJMTEyLjgxMAkxMTEuOTQwCTExNC42OTAKKzEyOQkxMzc3CTEx NC4yNTAJNjEzNzgwMAkxMTQuNTAwCTExMy44NzUJMTE1LjM3NQorMTI5CTEzNzgJMTE1LjI1MAk2 NDkyNDAwCTExNS44NzUJMTExLjYyNQkxMTUuODc1CisxMjkJMTM3OQkxMjEuNTAwCTEyMTI0MzAw CTExNS4zNzUJMTE1LjA2MgkxMjIuMjUwCisxMjkJMTM4MAkxMjYuODgwCTExODYyOTAwCTEyNS4w MDAJMTI0LjYzMAkxMjguMjUwCisxMjkJMTM4MQkxMjIuNTAwCTgxNjMwMDAJMTI1Ljc1MAkxMjIu MDYwCTEyNy4wMDAKKzEzMAkxMzgyCTEwMi45NDAJNjQwMjgwMAkxMDQuMTMwCTEwMi42MzAJMTA0 LjgxMAorMTMwCTEzODMJMTAzLjUwMAk3NDI4MTAwCTEwMi4zODAJMTAxLjAwMAkxMDQuMzgwCisx MzAJMTM4NAkxMTcuMDAwCTIyOTI3OTAwCTExMi4wMDAJMTExLjc1MAkxMTcuODEyCisxMzAJMTM4 NQkxMTQuNDQwCTg3NjQ3MDAJMTE3LjAwMAkxMTMuNzUwCTExNy4wMDAKKzEzMQkxMzg2CTkwLjEz MAk3NzA1MzAwCTkwLjE5MAk4OS44MTAJOTQuNDQwCisxMzEJMTM4Nwk4Ni4wMDAJMTI1Nzk1MDAJ ODUuODgwCTg0LjgxMAk4OC4wMDAKKzEzMQkxMzg4CTgxLjU2MAkxMjcyNDkwMAk4NS41MDAJODAu MDYwCTg3Ljk0MAorMTMxCTEzODkJODkuMDAwCTk1MTQwMDAJODQuNTAwCTg0LjUwMAk4OS4zNzUK KzEzMQkxMzkwCTg0LjgxMAk2MDUyMzAwCTg5LjAwMAk4NC4yNTAJODkuNTYwCisxMzIJMTM5MQk5 Mi43NTAJNTY3MTgwMAk5My43NTAJOTEuODEwCTk0LjAwMAorMTMyCTEzOTIJOTYuNjg3CTk3MTI5 MDAJOTUuMzc1CTk0LjMxMgk5Ny43NTAKKzEzMgkxMzkzCTEwOC4zMTIJMjUyNDMzMDAJMTA0LjM3 NQkxMDMuNTAwCTExMC4wMDAKKzEzMgkxMzk0CTExMS4yNTAJMTQ3NjA0MDAJMTA3LjUwMAkxMDcu MjUwCTExMy45MzcKKzEzMwkxMzk1CTEwNi40NzAJNjc5MzEwMAkxMDcuMTcwCTEwNS4zNzAJMTA3 LjM0MAorMTMzCTEzOTYJOTkuMjkwCTE2Njg4MTAwCTEwNS4wMDAJOTcuOTA1CTEwNS4wMTAKKzEz MwkxMzk3CTk1LjQ5MAkxNDQ5NDgwMAk5Ny45MDAJOTUuMDIwCTk4LjQwMAorMTMzCTEzOTgJOTgu MzkwCTEyMTI3OTAwCTk1LjEwMAk5NC4yMDAJOTguNDQwCisxMzMJMTM5OQk5NC45NjAJMTQyNDY2 MDAJOTUuNDAwCTkzLjM0MAk5OC45MDAKKzEzNAkxNDAwCTk5LjcwMAk5OTU3MzAwCTk3LjAwMAk5 Ny4wMDAJOTkuODgwCisxMzQJMTQwMQkxMDYuNTAwCTE5ODQ5NTAwCTEwMy4wMDAJMTAyLjMwMAkx MTAuMDAwCisxMzQJMTQwMgkxMTQuNDcwCTI1ODIyNDAwCTExMi4wMDAJMTEwLjQ1MAkxMTUuOTAw CisxMzQJMTQwMwkxMTQuODMwCTEyNzU5MTAwCTExNC4zNTAJMTEzLjc1MAkxMTYuNDAwCisxMzUJ MTQwNAkxMTkuNjAwCTc3MjY5MDAJMTE3LjUwMAkxMTcuNTAwCTExOS42MDAKKzEzNQkxNDA1CTEx Ny44MDAJNTYyOTEwMAkxMTkuNTIwCTExNy43NjAJMTE5LjkwMAorMTM1CTE0MDYJMTE1LjI3MAk1 ODE4MDAwCTExNy4zNTAJMTE1LjA4MAkxMTcuNTkwCisxMzUJMTQwNwkxMTIuNjUwCTk1OTg3MDAJ MTE0LjAwMAkxMTIuMDAwCTExNC4xMDAKKzEzNQkxNDA4CTExMS44MDAJNjc1NzYwMAkxMTIuNjUw CTExMS42NDAJMTEzLjg2MAorMTM1CTE0MDkJMTEyLjg5MAk1MTM4OTAwCTExMi41MDAJMTExLjkw MAkxMTMuNjAwCisxMzUJMTQxMAkxMTMuNjQwCTM4MTIyMDAJMTEzLjI1MAkxMTIuODUwCTExNC43 NTAKKzEzNQkxNDExCTExNi45NzAJNjE1NDQwMAkxMTMuNjQwCTExMy41NjAJMTE3LjYwMAorMTM1 CTE0MTIJMTE3LjUwMAk5NjI1NzAwCTExNy42MDAJMTE2LjUwMAkxMTkuMDAwCisxMzUJMTQxMwkx MTcuMjUwCTY0MjM3MDAJMTE3LjAwMAkxMTcuMDAwCTExOC4yNTAKKzEzNQkxNDE0CTExNi4xMDAJ MzA5OTEwMAkxMTcuNTAwCTExNS42MDAJMTE3LjUwMAorMTM1CTE0MTUJMTE3LjM2MAk2NTQyNzAw CTExNi4zMDAJMTE2LjEwMAkxMTguMTQwCisxMzYJMTQxNgkxMDQuNzIwCTkzMTI2MDAJMTA2LjUw MAkxMDMuNjUwCTEwNi45NTAKKzEzNgkxNDE3CTEwMS45NjAJMTAyNjY4MDAJMTA0LjczMAkxMDEu NjAwCTEwNS40MDAKKzEzNgkxNDE4CTEwMy44NTAJODg5NDgwMAkxMDEuNjAwCTEwMS41NjAJMTA0 LjEzMAorMTM2CTE0MTkJMTA3LjI1MAk4NzY3MjAwCTEwNS45MDAJMTA1LjYyMAkxMDcuODAwCisx MzYJMTQyMAkxMDguNTMwCTc4NDE4MDAJMTA2LjE1MAkxMDYuMTEwCTEwOS4zMDAKKzEzNgkxNDIx CTEwNy44MjAJNTMzMDEwMAkxMDguNTMwCTEwNy4yODAJMTA5LjM4MAorMTM3CTE0MjIJMTA4Ljgw MAk1Njc1MTAwCTEwOC41MDAJMTA3LjIxMAkxMDkuNDcwCisxMzcJMTQyMwkxMDguMTgwCTM3MDQx MDAJMTA3LjgwMAkxMDcuMTAwCTExMC4wOTAKKzEzNwkxNDI0CTEwNi41MTAJNDE3NjgwMAkxMDcu MjUwCTEwNS43OTAJMTA3LjM3MAorMTM3CTE0MjUJMTA2LjI1MAk0MDI4MzAwCTEwNS44MDAJMTA1 LjI2MAkxMDcuMzcwCisxMzcJMTQyNgkxMDQuMTkwCTYzOTgwMDAJMTA1LjAwMAkxMDQuMTAwCTEw Ni4xMDAKKzEzNwkxNDI3CTEwNC4wODAJNjc2MzIwMAkxMDMuNzAwCTEwMi43MDAJMTA0LjU0MAor MTM3CTE0MjgJMTA0Ljk1MAk1MjU0ODAwCTEwMy44NTAJMTAyLjgxMAkxMDQuOTUwCisxMzcJMTQy OQkxMDUuODYwCTYwMjQ0MDAJMTA1LjAwMAkxMDQuNjUwCTEwNi42NDAKKzEzNwkxNDMwCTEwNi4y MDAJNTczMDIwMAkxMDYuNTAwCTEwNS40MDAJMTA2Ljg1MAorMTM3CTE0MzEJMTA1LjAxMAk0NzEz MTAwCTEwNi4zNTAJMTA1LjAxMAkxMDYuNTkwCisxMzgJMTQzMgk5MS4zMDAJMTM3ODMxMDAJOTQu NDUwCTkwLjMwMAk5NC40NTAKKzEzOAkxNDMzCTkwLjAwMAkxMzE3MjIwMAk5MS4zMDAJODcuNDkw CTkxLjUwMAorMTM4CTE0MzQJOTEuNzIwCTExMDc3MjAwCTkwLjIwMAk4OS45MDAJOTIuNzEwCisx MzgJMTQzNQk5Mi43MTAJODY3NjIwMAk5MS43MjAJOTEuMzQwCTkzLjQ4MAorMTM4CTE0MzYJOTMu NzcwCTcyMjEyMDAJOTIuMzAwCTkyLjEwMAk5My45MDAKKzEzOAkxNDM3CTk2Ljk1MAkxMTExODgw MAk5Mi45MDAJOTIuNDAwCTk3LjYyMAorMTM4CTE0MzgJOTcuMzEwCTk3ODUxMDAJOTcuMTUwCTk2 LjgwMAk5OC44ODAKKzEzOAkxNDM5CTk4LjAyMAk5NzMzMDAwCTk2LjY1MAk5NS4zNzAJOTguNDUw CisxMzgJMTQ0MAk5OC41MDAJNzA5MzQwMAk5OC4wMzAJOTYuNzUwCTk5LjAwMAorMTM4CTE0NDEJ OTcuMTQwCTc1MjUzMDAJOTguNTAwCTk2Ljc2MAk5OC41MDAKKzEzOQkxNDQyCTEyMy4yMDAJNzk1 MDQwMAkxMjEuMTIwCTEyMC4wNjAJMTIzLjIxMAorMTM5CTE0NDMJMTIwLjI1MAk4MDYxMDAwCTEy MS41NTAJMTIwLjEyMAkxMjIuMzAwCisxMzkJMTQ0NAkxMjEuMTAwCTcwMzYwMDAJMTIwLjgwMAkx MTkuNDEwCTEyMS40ODAKKzEzOQkxNDQ1CTEyMS4zNDAJNjIyNTUwMAkxMjAuMTUwCTEyMC4xNTAJ MTIyLjE0MAorMTM5CTE0NDYJMTIyLjIwMAk1NTk2MjAwCTEyMS41MTAJMTIxLjM1MAkxMjIuOTcw CisxMzkJMTQ0NwkxMjMuODkwCTgwNTQyMDAJMTIxLjkwMAkxMjEuMDEwCTEyNC43MDAKKzE0MAkx NDQ4CTc1LjQ5MAk3OTUzMDAwCTc3Ljg1MAk3NS4yMDAJNzguMjUwCisxNDAJMTQ0OQk3NC42NTAJ MTMyOTYxMDAJNzUuNDAwCTczLjI1MAk3NS45NTAKKzE0MAkxNDUwCTc1LjYwMAk4OTA5NzAwCTc1 LjQ1MAk3NS4zMDAJNzcuNDAwCisxNDAJMTQ1MQk3Ni4xNzAJODU5MjAwMAk3NC4yMDAJNzMuMjUw CTc2Ljc3MAorMTQwCTE0NTIJNzcuMTQwCTc3NzU4MDAJNzYuMTgwCTc1LjE2MAk3Ny43NTAKKzE0 MAkxNDUzCTc1Ljk0MAk3MjQwOTAwCTc1LjYwMAk3NS40NzAJNzYuOTAwCisxNDEJMTQ1NAk3Mi4w MDAJMTA5NDU2MDAJNzEuMzUwCTcxLjI1MAk3My42MjAKKzE0MQkxNDU1CTY3LjYwMAkxMjA1NjAw MAk3Mi4wMTAJNjcuMTYwCTcyLjQxMAorMTQxCTE0NTYJNjguNTgwCTEyMDEyOTAwCTY3Ljg1MAk2 Ny43MDAJNjkuNDAwCisxNDEJMTQ1Nwk3MC41MTAJODQ2OTkwMAk2Ny45NTAJNjcuODcwCTcwLjcx MAorMTQxCTE0NTgJNzMuNTAwCTUyNDMwMDAJNzIuNDUwCTcyLjAwMAk3My45MDAKKzE0MQkxNDU5 CTcxLjMwMAk5NDg4MTAwCTczLjAwMAk3MS4wMzAJNzMuNDgwCisxNDEJMTQ2MAk2OS42NzAJMTEx NjUxMDAJNzEuNDAwCTY5LjQ1MAk3Mi4yNTAKKzE0MQkxNDYxCTY4Ljc2MAkxMDA3MzQwMAk3MC42 MDAJNjguNTMwCTcxLjI1MAorMTQxCTE0NjIJNjkuNDEwCTExMDM0NjAwCTY4LjAwMAk2Ny41NTAJ NjkuNzUwCisxNDIJMTQ2Mwk2OS4zNTAJMTA5ODk4MDAJNjguOTAwCTY3LjMwMAk3MC4wMDAKKzE0 MgkxNDY0CTY2LjQwMAkxMTU3NjQwMAk2OC43NTAJNjUuNzYwCTY5LjQ3MAorMTQyCTE0NjUJNzEu MTgwCTExOTE4NjAwCTcwLjM3MAk2OC4wMDAJNzEuNDAwCisxNDIJMTQ2Ngk3MS43OTAJMTAxMzY0 MDAJNzAuNTAwCTcwLjAyMAk3Mi43MDAKKzE0MgkxNDY3CTcwLjQwMAkxMjcwODEwMAk3MC43NTAJ NjkuMTEwCTcxLjYwMAorMTQyCTE0NjgJNjguMjUwCTg4MzIwMDAJNzAuNDAwCTY3LjIyMAk3MC43 MDAKKzE0MgkxNDY5CTY3Ljg4MAk2OTE1MDAwCTY4LjIxMAk2Ny4xMjMJNjguMjMwCisxNDIJMTQ3 MAk2NS45OTAJNzEyNjkwMAk2Ny45NDAJNjUuODUwCTY4LjM1MAorMTQyCTE0NzEJNjcuOTAwCTgz NzA4MDAJNjcuMDAwCTY2LjYxMAk2OS40MjAKKzE0MgkxNDcyCTY5LjE3MAk4MDM2ODAwCTY5LjAw MAk2Ni44MDAJNjkuOTAwCisxNDIJMTQ3Mwk3MS42MTAJODQzMjUwMAk2OS4yMDAJNjguMzUwCTcy LjA1MAorMTQyCTE0NzQJNzEuODMwCTY5NDA5MDAJNzAuNjEwCTcwLjQwMAk3NC4zMDAKKzE0Mgkx NDc1CTcxLjc3MAk1MjYzMzAwCTcxLjA1MAk3MC42MTAJNzIuNjQwCisxNDMJMTQ3Ngk1NS4wNzAJ MTIxNTU4MDAJNTYuMDUwCTU0LjgxMAk1Ni43MDAKKzE0MwkxNDc3CTU3LjU4MAkxMjY3MjYwMAk1 NC42NTAJNTQuMDEwCTU4LjQ4MAorMTQzCTE0NzgJNjMuOTIwCTE3ODUyNTAwCTYyLjAwMAk2MS41 MDAJNjMuOTIwCisxNDMJMTQ3OQk2My40MjAJNzkyNTMwMAk2MS41NDAJNjEuNTQwCTYzLjgwMAor MTQzCTE0ODAJNjguNDgwCTE0NjAwMjAwCTY3Ljc1MAk2Ni41ODAJNjguNDgwCisxNDMJMTQ4MQk2 NC45MDAJMTU4Mjg5MDAJNjYuNjAwCTY0LjI0MAk2Ny4wMDUKKzE0MwkxNDgyCTcyLjIwMAkyMTM0 NDUwMAk3Mi44MDAJNzEuMjMwCTczLjAwMAorMTQzCTE0ODMJNzQuMjUwCTEyNTMyNzAwCTcxLjcz MAk3MC4yNjAJNzQuMjUwCisxNDQJMTQ4NAk3Mi4xMDAJMTA1NzAwMDAJNzUuNTAwCTcxLjc1MAk3 NS41NTAKKzE0NAkxNDg1CTc0LjU2MAk3NTM4ODAwCTcyLjUwMAk3Mi4xNjAJNzQuNjIwCisxNDQJ MTQ4Ngk3Ni41NjAJMTI1NDQ4MDAJNzUuMTUwCTc0LjU2MAk3Ny41MDAKKzE0NAkxNDg3CTc2Ljc0 MAkxMTY0ODUwMAk3Ni41NjAJNzQuMjAwCTc3LjA1MAorMTQ0CTE0ODgJNzguNjcwCTEyODY1ODAw CTc3LjAwMAk3Ni4wMjAJNzkuNDAwCisxNDQJMTQ4OQk3OC45NDAJOTg0NDMwMAk3OC42NzAJNzgu NTAwCTc5Ljc5MAorMTQ0CTE0OTAJODAuNDAwCTkzOTUyMDAJNzguOTAwCTc4LjMyMAk4MC41MDAK KzE0NAkxNDkxCTgyLjUwMAkxMjAwNTEwMAk4Mi4wMDAJODEuNzAwCTgzLjgxMAorMTQ0CTE0OTIJ ODEuNjgwCTEwNDY2NzAwCTgxLjc1MAk4MC40NzAJODIuMDEwCisxNDUJMTQ5Mwk4MC4yNjAJNTky MjcwMAk3OS43NTAJNzkuNDQwCTgxLjUwNworMTQ1CTE0OTQJNzkuNzYwCTI0MjAyMDAJODAuMjAw CTc5Ljc2MAk4MS4wMDAKKzE0NQkxNDk1CTc4LjUwMAk1Nzg0MzAwCTc5LjgxMAk3OC4yNjAJODAu NzAwCisxNDUJMTQ5Ngk3Ny4zNjAJNjMzNDQwMAk3OC41MDAJNzYuNjEwCTc5LjE4MAorMTQ1CTE0 OTcJNzYuMjUwCTgwNjY2MDAJNzcuMDAwCTc1LjYwMAk3Ny40MzAKKzE0NQkxNDk4CTc3LjUwMAk3 ODcxNDAwCTc3LjEwMAk3Ny4xMDAJNzguNDYwCisxNDUJMTQ5OQk4MC41NzAJNzg2NDUwMAk3OC44 MDAJNzguMTkwCTgwLjU3MAorMTQ1CTE1MDAJODEuNjUwCTU5NjM0MDAJODAuNzAwCTgwLjIxMAk4 MS42NTAKKzE0NQkxNTAxCTgzLjU5MAk3OTIzMzAwCTgxLjkwMAk4MS44MTAJODQuNTkwCisxNDUJ MTUwMgk4Ni4wMDAJMTE5MDcwMDAJODMuOTUwCTgzLjc1MAk4Ni4xODAKKzE0NQkxNTAzCTg0LjE5 MAk5NTA5NzAwCTg1LjU1MAk4NC4wNzAJODUuNjkwCisxNDYJMTUwNAk3Ni41MDAJNTYxNzcwMAk3 Ny41MDAJNzYuNTAwCTc4LjA5MAorMTQ2CTE1MDUJNzUuODYwCTExMjE4NjAwCTc2LjEwMAk3NC4z MTAJNzYuMzUwCisxNDYJMTUwNgk3Ny40NTAJODMwMDEwMAk3Ni40MDAJNzUuMzUwCTc3LjQ1MAor MTQ2CTE1MDcJNzkuMzMwCTc3OTMwMDAJNzguMDIwCTc3LjkxMAk3OS41MTAKKzE0NgkxNTA4CTc5 LjUxMAk1NDQxMzAwCTc5LjA4MAk3OC44MjYJNzkuNzAwCisxNDYJMTUwOQk3OS4wNDAJNjI5NTYw MAk3OS41NzAJNzguNzEwCTgwLjA1MAorMTQ3CTE1MTAJNzkuODUwCTcwMjQ3MDAJODEuMTMwCTc5 LjgwMAk4MS4zMzAKKzE0NwkxNTExCTc5Ljc1MAk3NDcyMjAwCTc5LjcwMAk3OC43MzAJODAuNjgw CisxNDcJMTUxMgk4MC42OTAJNTI5ODUwMAk3OS42OTAJNzkuMzgwCTgwLjgyMAorMTQ3CTE1MTMJ ODAuODgwCTQ2MTU2MDAJODEuMDUwCTgwLjM1MAk4MS4yNzAKKzE0NwkxNTE0CTgxLjAyMAk0MjYy MjAwCTgwLjg3MAk4MC4yODAJODEuNTAwCisxNDcJMTUxNQk4MS41MTAJNDYzNDIwMAk4MS40NTAJ ODAuNjUwCTgxLjU0MAorMTQ4CTE1MTYJODkuNzAwCTg4NDI1MDAJOTEuNDUwCTg5LjAxMAk5MS41 MTAKKzE0OAkxNTE3CTkwLjMxMAk1NTI5NzAwCTg5LjkwMAk4OS43NTAJOTAuNDYwCisxNDgJMTUx OAk5NC4wMjAJMTk4MTM2MDAJOTUuMDcwCTkzLjU1MAk5NS42NTAKKzE0OAkxNTE5CTk1LjMyMAk5 MzAyMTAwCTk1LjAwMAk5NC43MTAJOTUuMzUwCisxNDgJMTUyMAk5Ny4xMDAJOTI4NTMwMAk5Ni4w MDAJOTUuNzMwCTk3LjQ0MAorMTQ4CTE1MjEJOTcuNzAwCTY5NTI3MDAJOTcuMjMwCTk2LjY0MAk5 OC4wNDAKKzE0OAkxNTIyCTk3LjUxMAk0MzcxNjAwCTk3Ljg0MAk5Ny4zMjAJOTguMTYwCisxNDkJ MTUyMwk5OS4zMDAJMzYxMTcwMAkxMDAuMDYwCTk5LjMwMAkxMDAuMzAwCisxNDkJMTUyNAk5OS43 MTAJMzU2MjQwMAk5OS4xMDAJOTkuMDgwCTEwMC4wOTAKKzE0OQkxNTI1CTk5LjM3MAkzOTMwNTAw CTk5Ljk5MAk5OS4zMjAJMTAwLjAwMAorMTQ5CTE1MjYJOTguNDIwCTQ4MzA1MDAJOTkuMzEwCTk4 LjE1MAk5OS43NzAKKzE0OQkxNTI3CTk3LjgwMAk1NDQ3NzAwCTk4LjQyMAk5Ny41MjAJOTkuMjMw CisxNDkJMTUyOAk5Ny4zMTAJNTY5MDIwMAk5OC42MDAJOTcuMTkwCTk4LjYwMAorMTQ5CTE1MjkJ OTUuOTYwCTY2Mjk2MDAJOTcuNDAwCTk1LjQ2MAk5Ny41MTAKKzE0OQkxNTMwCTk2Ljc5MAk3MDEy MTAwCTk1LjIwMAk5NS4yMDAJOTcuNDYwCisxNDkJMTUzMQk5Ni41NDAJMzM2MjUwMAk5Ni41MDAJ OTYuMjMwCTk3LjA5MAorMTUwCTE1MzIJOTYuODQwCTQ4MDcwMDAJOTYuNTcwCTk1LjYwMAk5Ni44 OTAKKzE1MAkxNTMzCTk2LjM5MAkzNTQ4NTAwCTk2LjU4MAk5Ni4xMzAJOTYuOTIwCisxNTAJMTUz NAk5Ni40NTAJMzk3MTgwMAk5NS45NTAJOTUuNTYwCTk2Ljk4MAorMTUwCTE1MzUJOTQuNTkwCTUw ODQyMDAJOTYuNDkwCTk0LjU5MAk5Ni44ODAKKzE1MAkxNTM2CTk0LjUzMAk2MzkxNDAwCTk0LjMw MAk5My43NzAJOTUuMjgwCisxNTAJMTUzNwk5My4wNjAJNjUzNjQwMAk5NC4zODAJOTIuNjgwCTk0 Ljc0MAorMTUwCTE1MzgJOTEuMjEwCTg1NjA4MDAJOTIuMDAwCTkxLjE1MAk5Mi45ODAKKzE1MAkx NTM5CTkzLjMwMAk2MjkwNjAwCTkyLjAwMAk5MS42ODAJOTMuMzgwCisxNTEJMTU0MAk4NS4zNTAJ NTY3NzMwMAk4NS4zMDAJODUuMDUwCTg1Ljk0MAorMTUxCTE1NDEJODMuNjUwCTc1MzAxMDAJODUu MDAwCTgzLjU4MAk4NS4wMTAKKzE1MQkxNTQyCTgzLjg5MAk2NTk1MjAwCTg0LjQwMAk4My41MTAJ ODQuNTAwCisxNTEJMTU0Mwk4NC45NTAJNjAwOTIwMAk4NC4wMDAJODMuNDIwCTg1LjI1MAorMTUx CTE1NDQJODUuMjUwCTYwMDE1MDAJODUuOTAwCTg1LjIwMAk4Ni4wOTAKKzE1MQkxNTQ1CTg0LjEz MAk2Mjk4NzAwCTg0Ljg0MAk4My43ODAJODUuMjQwCisxNTIJMTU0Ngk4My42OTAJNTI2ODUwMAk4 My43MDAJODMuMTAwCTgzLjk4MAorMTUyCTE1NDcJODIuMjEwCTcxMzQ5MDAJODMuMDUwCTgxLjkw MAk4My4wNTAKKzE1MgkxNTQ4CTgzLjkxMAk1OTE2OTAwCTgyLjU0MAk4Mi41MTAJODMuOTQwCisx NTIJMTU0OQk4NC4wMjAJNDM2MTUwMAk4My43MDAJODMuNTEwCTg0LjU2MAorMTUyCTE1NTAJODQu MDQwCTM1NTk1MDAJODQuMTAwCTgzLjY2MAk4NC41NDAKKzE1MgkxNTUxCTg1LjEzMAk0ODMzNzAw CTgzLjYwMAk4My41NzAJODUuMTMwCisxNTMJMTU1Mgk4NC4xNjAJNDY1MDMwMAk4NC4xMDAJODMu OTgwCTg0LjQ0MAorMTUzCTE1NTMJODQuNDgwCTM4NzQyMDAJODQuMzUwCTgzLjg4MAk4NC42NTAK KzE1MwkxNTU0CTg0Ljk4MAk0MjA0NjAwCTg0LjQ4MAk4NC4xNTAJODQuOTgwCisxNTMJMTU1NQk4 NS43NDAJNTE5ODAwMAk4NS4xNDAJODUuMDEwCTg1Ljk4MAorMTUzCTE1NTYJODYuNzIwCTQ1NDI3 MDAJODUuOTUwCTg1Ljg4MAk4Ni45ODAKKzE1MwkxNTU3CTg3LjE2MAk1MDAxNDAwCTg3LjAwMAk4 Ni43MjAJODguMTAwCisxNTMJMTU1OAk4Ny4zMjAJNTE1MDgwMAk4Ny45NTAJODcuMTMwCTg4LjAz MAorMTUzCTE1NTkJODguMDQwCTM5ODQ0MDAJODcuMTQwCTg3LjEwMAk4OC4xMDAKKzE1MwkxNTYw CTg3LjQyMAkzMDc2OTAwCTg4LjA0MAk4Ny40MDAJODguMTAwCisxNTMJMTU2MQk4Ni43MTAJNDA5 MDAwMAk4Ny40MzAJODYuNTEwCTg3LjkxMAorMTUzCTE1NjIJODYuNjMwCTMwMTYzMDAJODYuNzcw CTg2LjI3MAk4Ny4yMDAKKzE1MwkxNTYzCTg2LjAwMAk0NjI2NjAwCTg2LjAyMAk4NS41ODAJODYu MjAwCisxNTMJMTU2NAk4NC45ODAJNjY2NTIwMAk4Ni4yNjAJODQuNDMwCTg2LjQ4MAorMTUzCTE1 NjUJODQuNzgwCTQyMzM3MDAJODQuNzUwCTg0LjMwMAk4NC45ODAKKzE1MwkxNTY2CTg0Ljg1MAk1 OTI4NTAwCTg0Ljc4MAk4NC42MDAJODUuMjUwCisxNTMJMTU2Nwk4NS45MjAJNzI3NTYwMAk4NC4z MDAJODQuMjkwCTg2LjE1MAorMTUzCTE1NjgJODkuMzcwCTEzODI0NTAwCTg4LjIwMAk4OC4wMDAJ ODkuNzMwCisxNTMJMTU2OQk4OC44MjAJNzA3OTgwMAk4OC40NTAJODguMjkwCTg5LjE5MAorMTUz CTE1NzAJODguMTAwCTYyNzIxMDAJODguNDAwCTg3LjY2MAk4OC43NjAKKzE1MwkxNTcxCTg3LjM5 MAk1OTk4OTAwCTg4LjIyMAk4Ny4yOTAJODguNDUwCisxNTMJMTU3Mgk4OC40MzAJNTc3NTAwMAk4 Ny4zNjAJODcuMzEwCTg4LjkwMAorMTUzCTE1NzMJODkuMDAwCTczMzczMDAJODguMzMwCTg4LjI1 MAk4OS41NzAKKzE1MwkxNTc0CTkwLjAwMAk2MDM1MTAwCTg4LjU4MAk4OC41MDAJOTAuMjcwCisx NTMJMTU3NQk4OS41MDAJNDIyNjUwMAk4OS44MDAJODkuNDMwCTkwLjI0MAorMTUzCTE1NzYJODku NzUwCTQ1MTg1MDAJODkuNDAwCTg4Ljk1MAk4OS45MDAKKzE1MwkxNTc3CTkwLjExMAk1MTYwOTAw CTg5LjMzMAk4OS4yMzAJOTAuNjAwCisxNTMJMTU3OAk5MC40NzAJNTM5MTEwMAk4OS41NTAJODku NTAwCTkxLjIyMAorMTUzCTE1NzkJOTEuMjAwCTY1NTMzMDAJOTEuMjUwCTkwLjk3MAk5MS45MDAK KzE1MwkxNTgwCTkyLjM4MAk2OTUyMTAwCTkxLjA1MAk5MC44MjAJOTIuNzAwCisxNTMJMTU4MQk5 My4yODAJNjcwODUwMAk5Mi40MDAJOTIuNDAwCTkzLjUyMAorMTUzCTE1ODIJOTMuMzcwCTQ5MDcz MDAJOTIuNTAwCTkyLjUwMAk5My43MDAKKzE1MwkxNTgzCTkzLjM3MAk0NTEzMTAwCTkzLjAwMAk5 My4wMDAJOTMuOTUwCisxNTQJMTU4NAk5NC4xMzAJMzU0MTIwMAk5NC4yODAJOTQuMTMwCTk0LjY0 MAorMTU0CTE1ODUJOTIuNzAwCTU2NjQyMDAJOTQuMTQwCTkyLjU0MAk5NC44MzAKKzE1NAkxNTg2 CTkyLjc2MAk0ODM4NzAwCTkyLjk1MAk5Mi4zMDAJOTMuMTAwCisxNTQJMTU4Nwk5My4zMDAJNDIz MzAwMAk5Mi43MDAJOTIuNTAwCTkzLjk3MAorMTU0CTE1ODgJOTMuNTcwCTI4Njg4MDAJOTMuMTYw CTkzLjE2MAk5NC4wMjAKKzE1NAkxNTg5CTk0LjMzMAk0Mjk5MjAwCTkzLjUwMAk5My40ODAJOTQu NjcwCisxNTUJMTU5MAk5My4zMDAJMzgyMTkwMAk5Mi42NDAJOTIuNTkwCTkzLjQzMAorMTU1CTE1 OTEJOTIuOTIwCTQ1NDEyMDAJOTIuNzUwCTkyLjc1MAk5My43MzAKKzE1NQkxNTkyCTkyLjQxMAk0 MDM3OTAwCTkzLjE1MAk5Mi4yMDAJOTMuMjEwCisxNTUJMTU5Mwk5Mi4zNzAJNDc1NDAwMAk5Mi45 NDAJOTIuMzYwCTkzLjE4MAorMTU1CTE1OTQJOTEuNjAwCTgwNTEwMDAJOTIuMzUwCTkxLjU5MAk5 Mi41MTAKKzE1NQkxNTk1CTkyLjEzMAk1MDg3ODAwCTkxLjcwMAk5MS43MDAJOTIuNTYwCisxNTUJ MTU5Ngk5Mi4zNTAJNDUxMzkwMAk5Mi4wMjAJOTIuMDEwCTkzLjAwMAorMTU1CTE1OTcJOTIuNDEw CTM0MjQ4MDAJOTIuMzUwCTkyLjA5MAk5Mi44MDAKKzE1NQkxNTk4CTkxLjUxMAk0NDk0MzAwCTky LjI1MAk5MS4yMDAJOTIuNDEwCisxNTYJMTU5OQk5MS4zODAJNDQxOTEwMAk5MC40NjAJOTAuMjIw CTkxLjQxMAorMTU2CTE2MDAJOTAuNDQwCTU3NDA4MDAJOTEuNDkwCTkwLjA0MAk5MS43NjAKKzE1 NgkxNjAxCTkwLjMyMAkzNzM3OTAwCTkwLjA4MAk4OS43NzMJOTAuNjIwCisxNTYJMTYwMgk4OS41 NzAJNDU3OTMwMAk5MC4yMzAJODkuMjYwCTkwLjMzMAorMTU2CTE2MDMJODkuMDAwCTc4MzY4MDAJ ODkuMDUwCTg4LjcwNgk4OS4zODAKKzE1NgkxNjA0CTg4LjQ0MAk2Mzc2NTAwCTg5LjAwMAk4OC4x MDAJODkuMjAwCisxNTYJMTYwNQk4Ny42MDAJNTI3MzQwMAk4OC4yODAJODcuNTAwCTg4LjQ2MAor MTU2CTE2MDYJODYuMjAwCTgyOTY1MDAJODcuMzUwCTg2LjA5MAk4Ny41NjAKKzE1NgkxNjA3CTg1 Ljc1MAk4NDUwMDAwCTg1LjkwMAk4NS4xNzAJODYuMjQwCisxNTYJMTYwOAk4NC41NzAJNzA5MDgw MAk4NS43NjAJODQuMjQwCTg1Ljk3MgorMTU2CTE2MDkJODMuNjQwCTEwNzA4MzAwCTg0LjYzMAk4 My40NzAJODUuNDEwCisxNTYJMTYxMAk3Ni43MDAJMjc5MzI0MDAJNzkuNDkwCTc2LjMzMAk3OS42 NjAKKzE1NgkxNjExCTc2LjY1MAkxMzI1NjEwMAk3Ny4xNTAJNzYuMTQwCTc3Ljc1MAorMTU2CTE2 MTIJNzUuNDgwCTkyOTI3MDAJNzYuOTgwCTc1LjI1MAk3Ny4yMDAKKzE1NgkxNjEzCTcyLjAxMAky MDM4OTgwMAk3NS40ODAJNzEuODUwCTc1Ljg3MAorMTU2CTE2MTQJNzQuMDMwCTE2MjczNjAwCTcy Ljk5MAk3Mi44MDAJNzQuMTAwCisxNTYJMTYxNQk3NC4yMTAJMTA5ODUyMDAJNzQuMDUwCTczLjI2 MAk3NC43MDAKKzE1NgkxNjE2CTc0LjYxMAkxMDIyMzQwMAk3NS4yNDAJNzQuMDUwCTc1LjcyMAor MTU2CTE2MTcJNzUuNDMwCTEyNTAwMjAwCTc0LjY4MAk3NC42NTAJNzYuOTgwCisxNTYJMTYxOAk3 Ny4wNTAJMTE3MDY4MDAJNzUuNjkwCTc1LjUwMAk3Ny4xODAKKzE1NgkxNjE5CTc1LjkxMAk4NjM4 MzAwCTc3LjA1MAk3NS42NTAJNzcuMTEwCisxNTcJMTYyMAk4My4xNDAJNTM0MDkwMAk4Mi45MzAJ ODIuNTAwCTgzLjc4MAorMTU3CTE2MjEJODQuMDAwCTQ0OTAyMDAJODMuMTQwCTgzLjAwMAk4NC4w ODAKKzE1NwkxNjIyCTg0LjE5MAk0NzEyOTAwCTgzLjcxMAk4My41NjAJODQuNjMwCisxNTcJMTYy Mwk4NC4xOTAJNTIxMDYwMAk4NC4xNTAJODMuNzkwCTg0LjY5MAorMTU3CTE2MjQJODQuNzAwCTQ2 NjE3MDAJODQuMjAwCTg0LjEwMAk4NC45MDAKKzE1NwkxNjI1CTg2LjA4MAk3Nzg4NjAwCTg0LjQ1 MAk4NC40NDAJODYuMjEwCisxNTcJMTYyNgk4Ni43MTAJODYzMzYwMAk4Ni4wODAJODUuNzUwCTg3 LjYwMAorMTU3CTE2MjcJODYuOTUwCTEzMzI4MzAwCTg2LjMzMAk4Ni4yMjAJODcuOTQwCisxNTcJ MTYyOAk4OS44MjAJMjc4NzYyMDAJOTAuNTEwCTg5LjczMAk5Mi4wNDAKKzE1NwkxNjI5CTg5Ljg2 MAkxMDY3NjQwMAk4OS44MDAJODkuMzEwCTkwLjk4MAorMTU3CTE2MzAJOTAuNDgwCTczOTE2MDAJ OTAuMDQwCTg5LjU1MAk5MC43MDAKKzE1NwkxNjMxCTkxLjU2MAk4ODYyMzAwCTkwLjA1MAk5MC4w MTAJOTIuMDAwCisxNTcJMTYzMgk5MS40OTAJOTIyMjUwMAk5MC45MTAJOTAuODAwCTkxLjk1MApk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0 L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggOGZhMGE2YzQ3ZmIuLmZjNDhlZDJhZmM1 IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTEwNCw2ICsxMDQsMTEgQEAgdGVz dDogcHVibGljYXRpb24gc3Vic2NyaXB0aW9uCiAjIC0tLS0tLS0tLS0KIHRlc3Q6IHNlbGVjdF92 aWV3cyBwb3J0YWxzX3AyIGZvcmVpZ25fa2V5IGRlcGVuZGVuY3kgZ3VjIGJpdG1hcG9wcyBjb21i b2NpZCB0c2VhcmNoIHRzZGljdHMgZm9yZWlnbl9kYXRhIHdpbmRvdyB4bWxtYXAgZnVuY3Rpb25h bF9kZXBzIGFkdmlzb3J5X2xvY2sgaW5kaXJlY3RfdG9hc3QgZXF1aXZjbGFzcyBzdGF0c19yZXdy aXRlIGdyYXBoX3RhYmxlCiAKKyMgLS0tLS0tLS0tLQorIyBSb3cgUGF0dGVybiBSZWNvZ25pdGlv biB0ZXN0cworIyAtLS0tLS0tLS0tCit0ZXN0OiBycHIgcnByX2Jhc2UgcnByX2V4cGxhaW4gcnBy X25mYSBycHJfaW50ZWdyYXRpb24KKwogIyAtLS0tLS0tLS0tCiAjIEFub3RoZXIgZ3JvdXAgb2Yg cGFyYWxsZWwgdGVzdHMgKEpTT04gcmVsYXRlZCkKICMgLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU1NjNlMDYyY2RlCi0t LSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByLnNxbApAQCAtMCwwICsx LDE5NjAgQEAKKy0tCistLSBUZXN0IGZvciByb3cgcGF0dGVybiByZWNvZ25pdGlvbjogV0lORE9X IGNsYXVzZSBpbnRlZ3JhdGlvbiBhbmQKKy0tIHNjZW5hcmlvIHRlc3RzIHVzaW5nIHN5bnRoZXRp YyBzdG9jayBkYXRhLgorLS0KKy0tIFBhcnNlci9wbGFubmVyIHRlc3RzOiBycHJfYmFzZS5zcWwK Ky0tIE5GQSBlbmdpbmUgdGVzdHM6IHJwcl9uZmEuc3FsCistLSBFWFBMQUlOIHN0YXRpc3RpY3Mg dGVzdHM6IHJwcl9leHBsYWluLnNxbAorLS0KKworXGdldGVudiBhYnNfc3JjZGlyIFBHX0FCU19T UkNESVIKKworLS0gU3ludGhldGljIHN0b2NrIGRhdGEgZm9yIFJQUiBwYXR0ZXJuIG1hdGNoaW5n IHRlc3RzCitDUkVBVEUgVEFCTEUgcnByX3N0b2NrICgKKyAgICAgICBwYXJ0X2lkIGludGVnZXIs CisgICAgICAgcm4gICAgICBpbnRlZ2VyLAorICAgICAgIHByaWNlICAgbnVtZXJpYygxMCwzKSwK KyAgICAgICB2b2x1bWUgIGJpZ2ludCwKKyAgICAgICBvcGVuICAgIG51bWVyaWMoMTAsMyksCisg ICAgICAgbG93ICAgICBudW1lcmljKDEwLDMpLAorICAgICAgIGhpZ2ggICAgbnVtZXJpYygxMCwz KQorKTsKKworXHNldCBmaWxlbmFtZSA6YWJzX3NyY2RpciAnL2RhdGEvc3RvY2suZGF0YScKK0NP UFkgcnByX3N0b2NrIEZST00gOidmaWxlbmFtZSc7CitBTkFMWVpFIHJwcl9zdG9jazsKKworQ1JF QVRFIFRFTVAgVEFCTEUgc3RvY2sgKAorICAgICAgIGNvbXBhbnkgVEVYVCwKKyAgICAgICB0ZGF0 ZSBEQVRFLAorICAgICAgIHByaWNlIElOVEVHRVIKKyk7CitJTlNFUlQgSU5UTyBzdG9jayBWQUxV RVMgKCdjb21wYW55MScsICcyMDIzLTA3LTAxJywgMTAwKTsKK0lOU0VSVCBJTlRPIHN0b2NrIFZB TFVFUyAoJ2NvbXBhbnkxJywgJzIwMjMtMDctMDInLCAyMDApOworSU5TRVJUIElOVE8gc3RvY2sg VkFMVUVTICgnY29tcGFueTEnLCAnMjAyMy0wNy0wMycsIDE1MCk7CitJTlNFUlQgSU5UTyBzdG9j ayBWQUxVRVMgKCdjb21wYW55MScsICcyMDIzLTA3LTA0JywgMTQwKTsKK0lOU0VSVCBJTlRPIHN0 b2NrIFZBTFVFUyAoJ2NvbXBhbnkxJywgJzIwMjMtMDctMDUnLCAxNTApOworSU5TRVJUIElOVE8g c3RvY2sgVkFMVUVTICgnY29tcGFueTEnLCAnMjAyMy0wNy0wNicsIDkwKTsKK0lOU0VSVCBJTlRP IHN0b2NrIFZBTFVFUyAoJ2NvbXBhbnkxJywgJzIwMjMtMDctMDcnLCAxMTApOworSU5TRVJUIElO VE8gc3RvY2sgVkFMVUVTICgnY29tcGFueTEnLCAnMjAyMy0wNy0wOCcsIDEzMCk7CitJTlNFUlQg SU5UTyBzdG9jayBWQUxVRVMgKCdjb21wYW55MScsICcyMDIzLTA3LTA5JywgMTIwKTsKK0lOU0VS VCBJTlRPIHN0b2NrIFZBTFVFUyAoJ2NvbXBhbnkxJywgJzIwMjMtMDctMTAnLCAxMzApOworSU5T RVJUIElOVE8gc3RvY2sgVkFMVUVTICgnY29tcGFueTInLCAnMjAyMy0wNy0wMScsIDUwKTsKK0lO U0VSVCBJTlRPIHN0b2NrIFZBTFVFUyAoJ2NvbXBhbnkyJywgJzIwMjMtMDctMDInLCAyMDAwKTsK K0lOU0VSVCBJTlRPIHN0b2NrIFZBTFVFUyAoJ2NvbXBhbnkyJywgJzIwMjMtMDctMDMnLCAxNTAw KTsKK0lOU0VSVCBJTlRPIHN0b2NrIFZBTFVFUyAoJ2NvbXBhbnkyJywgJzIwMjMtMDctMDQnLCAx NDAwKTsKK0lOU0VSVCBJTlRPIHN0b2NrIFZBTFVFUyAoJ2NvbXBhbnkyJywgJzIwMjMtMDctMDUn LCAxNTAwKTsKK0lOU0VSVCBJTlRPIHN0b2NrIFZBTFVFUyAoJ2NvbXBhbnkyJywgJzIwMjMtMDct MDYnLCA2MCk7CitJTlNFUlQgSU5UTyBzdG9jayBWQUxVRVMgKCdjb21wYW55MicsICcyMDIzLTA3 LTA3JywgMTEwMCk7CitJTlNFUlQgSU5UTyBzdG9jayBWQUxVRVMgKCdjb21wYW55MicsICcyMDIz LTA3LTA4JywgMTMwMCk7CitJTlNFUlQgSU5UTyBzdG9jayBWQUxVRVMgKCdjb21wYW55MicsICcy MDIzLTA3LTA5JywgMTIwMCk7CitJTlNFUlQgSU5UTyBzdG9jayBWQUxVRVMgKCdjb21wYW55Mics ICcyMDIzLTA3LTEwJywgMTMwMCk7CisKK1NFTEVDVCAqIEZST00gc3RvY2s7CisKKy0tCistLSBC YXNpYyBwYXR0ZXJuIG1hdGNoaW5nIHdpdGggUFJFVi9ORVhUCistLQorCistLSBiYXNpYyB0ZXN0 IHVzaW5nIFBSRVYKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3ZhbHVlKHBy aWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdywKKyBudGhfdmFsdWUodGRhdGUs IDIpIE9WRVIgdyBBUyBudGhfc2Vjb25kCisgRlJPTSBzdG9jaworIFdJTkRPVyB3IEFTICgKKyBQ QVJUSVRJT04gQlkgY29tcGFueQorIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworIElOSVRJQUwKKyBQQVRURVJOIChTVEFSVCBVUCsgRE9XTispCisgREVG SU5FCisgIFNUQVJUIEFTIFRSVUUsCisgIFVQIEFTIHByaWNlID4gUFJFVihwcmljZSksCisgIERP V04gQVMgcHJpY2UgPCBQUkVWKHByaWNlKQorKTsKKworLS0gYmFzaWMgdGVzdCB1c2luZyBQUkVW LiBVUCBhcHBlYXJzIHR3aWNlCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92 YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsCisgbnRoX3ZhbHVl KHRkYXRlLCAyKSBPVkVSIHcgQVMgbnRoX3NlY29uZAorIEZST00gc3RvY2sKKyBXSU5ET1cgdyBB UyAoCisgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyBJTklUSUFMCisgUEFUVEVSTiAoU1RBUlQgVVArIERPV04r IFVQKykKKyBERUZJTkUKKyAgU1RBUlQgQVMgVFJVRSwKKyAgVVAgQVMgcHJpY2UgPiBQUkVWKHBy aWNlKSwKKyAgRE9XTiBBUyBwcmljZSA8IFBSRVYocHJpY2UpCispOworCistLSBiYXNpYyB0ZXN0 IHVzaW5nIFBSRVYuIFVzZSAnKicKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0 X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdywKKyBudGhfdmFs dWUodGRhdGUsIDIpIE9WRVIgdyBBUyBudGhfc2Vjb25kCisgRlJPTSBzdG9jaworIFdJTkRPVyB3 IEFTICgKKyBQQVJUSVRJT04gQlkgY29tcGFueQorIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworIElOSVRJQUwKKyBQQVRURVJOIChTVEFSVCBVUCogRE9X TispCisgREVGSU5FCisgIFNUQVJUIEFTIFRSVUUsCisgIFVQIEFTIHByaWNlID4gUFJFVihwcmlj ZSksCisgIERPV04gQVMgcHJpY2UgPCBQUkVWKHByaWNlKQorKTsKKworLS0gYmFzaWMgdGVzdCB1 c2luZyBQUkVWLiBVc2UgJz8nCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92 YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsCisgbnRoX3ZhbHVl KHRkYXRlLCAyKSBPVkVSIHcgQVMgbnRoX3NlY29uZAorIEZST00gc3RvY2sKKyBXSU5ET1cgdyBB UyAoCisgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyBJTklUSUFMCisgUEFUVEVSTiAoU1RBUlQgVVA/IERPV04r KQorIERFRklORQorICBTVEFSVCBBUyBUUlVFLAorICBVUCBBUyBwcmljZSA+IFBSRVYocHJpY2Up LAorICBET1dOIEFTIHByaWNlIDwgUFJFVihwcmljZSkKKyk7CisKKy0tIHRlc3QgdXNpbmcgYWx0 ZXJuYXRpb24gKHwpIHdpdGggc2VxdWVuY2UKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2Us IGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdworIEZS T00gc3RvY2sKKyBXSU5ET1cgdyBBUyAoCisgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyBJTklUSUFMCisgUEFU VEVSTiAoU1RBUlQgKFVQIHwgRE9XTikpCisgREVGSU5FCisgIFNUQVJUIEFTIFRSVUUsCisgIFVQ IEFTIHByaWNlID4gUFJFVihwcmljZSksCisgIERPV04gQVMgcHJpY2UgPCBQUkVWKHByaWNlKQor KTsKKworLS0gdGVzdCB1c2luZyBhbHRlcm5hdGlvbiAofCkgd2l0aCBncm91cCBxdWFudGlmaWVy CitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3 LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcKKyBGUk9NIHN0b2NrCisgV0lORE9XIHcgQVMgKAor IFBBUlRJVElPTiBCWSBjb21wYW55CisgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgSU5JVElBTAorIFBBVFRFUk4gKFNUQVJUIChVUCB8IERPV04pKykK KyBERUZJTkUKKyAgU1RBUlQgQVMgVFJVRSwKKyAgVVAgQVMgcHJpY2UgPiBQUkVWKHByaWNlKSwK KyAgRE9XTiBBUyBwcmljZSA8IFBSRVYocHJpY2UpCispOworCistLSB0ZXN0IHVzaW5nIG5lc3Rl ZCBhbHRlcm5hdGlvbgorU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmlyc3RfdmFsdWUo cHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3CisgRlJPTSBzdG9jaworIFdJ TkRPVyB3IEFTICgKKyBQQVJUSVRJT04gQlkgY29tcGFueQorIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworIElOSVRJQUwKKyBQQVRURVJOIChTVEFSVCAo KFVQIERPV04pIHwgRkxBVCkrKQorIERFRklORQorICBTVEFSVCBBUyBUUlVFLAorICBVUCBBUyBw cmljZSA+IFBSRVYocHJpY2UpLAorICBET1dOIEFTIHByaWNlIDwgUFJFVihwcmljZSksCisgIEZM QVQgQVMgcHJpY2UgPSBQUkVWKHByaWNlKQorKTsKKworLS0gdGVzdCB1c2luZyBncm91cCB3aXRo IHF1YW50aWZpZXIKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3ZhbHVlKHBy aWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdworIEZST00gc3RvY2sKKyBXSU5E T1cgdyBBUyAoCisgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyBJTklUSUFMCisgUEFUVEVSTiAoKFVQIERPV04p KykKKyBERUZJTkUKKyAgVVAgQVMgcHJpY2UgPiBQUkVWKHByaWNlKSwKKyAgRE9XTiBBUyBwcmlj ZSA8IFBSRVYocHJpY2UpCispOworCistLSB0ZXN0IHVzaW5nIGFic29sdXRlIHRocmVzaG9sZCB2 YWx1ZXMgKG5vdCByZWxhdGl2ZSBQUkVWKQorLS0gSElHSDogcHJpY2UgPiAxNTAsIExPVzogcHJp Y2UgPCAxMDAsIE1JRDogbmV1dHJhbCByYW5nZQorU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmlj ZSwgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3Cisg RlJPTSBzdG9jaworIFdJTkRPVyB3IEFTICgKKyBQQVJUSVRJT04gQlkgY29tcGFueQorIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworIElOSVRJQUwKKyBQ QVRURVJOIChMT1cgTUlEKiBISUdIKQorIERFRklORQorICBMT1cgQVMgcHJpY2UgPCAxMDAsCisg IE1JRCBBUyBwcmljZSA+PSAxMDAgQU5EIHByaWNlIDw9IDE1MCwKKyAgSElHSCBBUyBwcmljZSA+ IDE1MAorKTsKKworLS0gdGVzdCB0aHJlc2hvbGQtYmFzZWQgcGF0dGVybiB3aXRoIGFsdGVybmF0 aW9uCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmljZSkgT1ZF UiB3LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcKKyBGUk9NIHN0b2NrCisgV0lORE9XIHcgQVMg KAorIFBBUlRJVElPTiBCWSBjb21wYW55CisgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgSU5JVElBTAorIFBBVFRFUk4gKExPVyAoTUlEIHwgSElHSCkr KQorIERFRklORQorICBMT1cgQVMgcHJpY2UgPCAxMDAsCisgIE1JRCBBUyBwcmljZSA+PSAxMDAg QU5EIHByaWNlIDw9IDE1MCwKKyAgSElHSCBBUyBwcmljZSA+IDE1MAorKTsKKworLS0gYmFzaWMg dGVzdCB3aXRoIGZpeGVkLWxlbmd0aCBwYXR0ZXJuIChBIEEgQSA9IGV4YWN0bHkgMykKK1NFTEVD VCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGNvdW50KCopIE9WRVIgdworIEZST00gc3RvY2sKKyBX SU5ET1cgdyBBUyAoCisgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyBJTklUSUFMCisgUEFUVEVSTiAoQSBBIEEp CisgREVGSU5FCisgIEEgQVMgcHJpY2UgPj0gMTQwIEFORCBwcmljZSA8PSAxNTAKKyk7CisKKy0t IHRlc3QgdXNpbmcge259IHF1YW50aWZpZXIgKEEgQSBBIHNob3VsZCBiZSBvcHRpbWl6ZWQgdG8g QXszfSkKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGNvdW50KCopIE9WRVIgdworIEZS T00gc3RvY2sKKyBXSU5ET1cgdyBBUyAoCisgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyBJTklUSUFMCisgUEFU VEVSTiAoQXszfSkKKyBERUZJTkUKKyAgQSBBUyBwcmljZSA+PSAxNDAgQU5EIHByaWNlIDw9IDE1 MAorKTsKKworLS0gdGVzdCB1c2luZyB7bix9IHF1YW50aWZpZXIgKDIgb3IgbW9yZSkKK1NFTEVD VCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGNvdW50KCopIE9WRVIgdworIEZST00gc3RvY2sKKyBX SU5ET1cgdyBBUyAoCisgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyBJTklUSUFMCisgUEFUVEVSTiAoQXsyLH0p CisgREVGSU5FCisgIEEgQVMgcHJpY2UgPiAxMDAKKyk7CisKKy0tIHRlc3QgdXNpbmcge24sbX0g cXVhbnRpZmllciAoMiB0byA0KQorU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgY291bnQo KikgT1ZFUiB3CisgRlJPTSBzdG9jaworIFdJTkRPVyB3IEFTICgKKyBQQVJUSVRJT04gQlkgY29t cGFueQorIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor IElOSVRJQUwKKyBQQVRURVJOIChBezIsNH0pCisgREVGSU5FCisgIEEgQVMgcHJpY2UgPiAxMDAK Kyk7CisKKy0tIHRlc3QgcHJlZml4L3N1ZmZpeCBtZXJnZSBvcHRpbWl6YXRpb24gd2l0aCBib3Vu ZGVkIHF1YW50aWZpZXIKKy0tIFBhdHRlcm4gQSBCIChBIEIpezEsMn0gQSBCIHNob3VsZCBiZSBv cHRpbWl6ZWQgdG8gKEEgQil7Myw0fQorQ1JFQVRFIFRFTVAgVEFCTEUgcnByX3QgKGlkIGludCwg dmFsIHRleHQpOworSU5TRVJUIElOVE8gcnByX3QgVkFMVUVTCisgICgxLCdBJyksKDIsJ0InKSwK KyAgKDMsJ0EnKSwoNCwnQicpLAorICAoNSwnQScpLCg2LCdCJyksCisgICg3LCdBJyksKDgsJ0In KSwKKyAgKDksJ1gnKTsKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgbWF0Y2hf Y291bnQKK0ZST00gcnByX3QKK1dJTkRPVyB3IEFTICgKKyAgT1JERVIgQlkgaWQKKyAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgIEFGVEVSIE1BVENI IFNLSVAgVE8gTkVYVCBST1cKKyAgSU5JVElBTAorICBQQVRURVJOIChBIEIgKEEgQil7MSwyfSBB IEIpCisgIERFRklORQorICAgIEEgQVMgdmFsID0gJ0EnLAorICAgIEIgQVMgdmFsID0gJ0InCisp OworRFJPUCBUQUJMRSBycHJfdDsKKworLS0gbGFzdF92YWx1ZSgpIHNob3VsZCByZW1haW4gY29u c2lzdGVudAorU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgbGFzdF92YWx1ZShwcmljZSkg T1ZFUiB3CisgRlJPTSBzdG9jaworIFdJTkRPVyB3IEFTICgKKyBQQVJUSVRJT04gQlkgY29tcGFu eQorIE9SREVSIEJZIHRkYXRlCisgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgSU5JVElBTAorIFBBVFRFUk4gKFNUQVJUIFVQKyBET1dOKykKKyBERUZJ TkUKKyAgU1RBUlQgQVMgVFJVRSwKKyAgVVAgQVMgcHJpY2UgPiBQUkVWKHByaWNlKSwKKyAgRE9X TiBBUyBwcmljZSA8IFBSRVYocHJpY2UpCispOworCistLSBvbWl0ICJTVEFSVCIgaW4gREVGSU5F IGJ1dCBpdCBpcyBvayBiZWNhdXNlICJTVEFSVCBBUyBUUlVFIiBpcworLS0gaW1wbGljaXRseSBk ZWZpbmVkLiBwZXIgc3BlYy4KK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3Zh bHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdywKKyBudGhfdmFsdWUo dGRhdGUsIDIpIE9WRVIgdyBBUyBudGhfc2Vjb25kCisgRlJPTSBzdG9jaworIFdJTkRPVyB3IEFT ICgKKyBQQVJUSVRJT04gQlkgY29tcGFueQorIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworIElOSVRJQUwKKyBQQVRURVJOIChTVEFSVCBVUCsgRE9XTisp CisgREVGSU5FCisgIFVQIEFTIHByaWNlID4gUFJFVihwcmljZSksCisgIERPV04gQVMgcHJpY2Ug PCBQUkVWKHByaWNlKQorKTsKKworLS0gdGhlIGZpcnN0IHJvdyBzdGFydCB3aXRoIGxlc3MgdGhh biBvciBlcXVhbCB0byAxMDAKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3Zh bHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdworIEZST00gc3RvY2sK KyBXSU5ET1cgdyBBUyAoCisgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyBJTklUSUFMCisgUEFUVEVSTiAoTE9X UFJJQ0UgVVArIERPV04rKQorIERFRklORQorICBMT1dQUklDRSBBUyBwcmljZSA8PSAxMDAsCisg IFVQIEFTIHByaWNlID4gUFJFVihwcmljZSksCisgIERPV04gQVMgcHJpY2UgPCBQUkVWKHByaWNl KQorKTsKKworLS0gc2Vjb25kIHJvdyByYWlzZXMgMTIwJQorU0VMRUNUIGNvbXBhbnksIHRkYXRl LCBwcmljZSwgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZF UiB3CisgRlJPTSBzdG9jaworIFdJTkRPVyB3IEFTICgKKyBQQVJUSVRJT04gQlkgY29tcGFueQor IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworIElOSVRJ QUwKKyBQQVRURVJOIChMT1dQUklDRSBVUCsgRE9XTispCisgREVGSU5FCisgIExPV1BSSUNFIEFT IHByaWNlIDw9IDEwMCwKKyAgVVAgQVMgcHJpY2UgPiBQUkVWKHByaWNlKSAqIDEuMiwKKyAgRE9X TiBBUyBwcmljZSA8IFBSRVYocHJpY2UpCispOworCistLSB1c2luZyBORVhUCitTRUxFQ1QgY29t cGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVl KHByaWNlKSBPVkVSIHcKKyBGUk9NIHN0b2NrCisgV0lORE9XIHcgQVMgKAorIFBBUlRJVElPTiBC WSBjb21wYW55CisgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgSU5JVElBTAorIFBBVFRFUk4gKFNUQVJUIFVQRE9XTikKKyBERUZJTkUKKyAgU1RBUlQg QVMgVFJVRSwKKyAgVVBET1dOIEFTIHByaWNlID4gUFJFVihwcmljZSkgQU5EIHByaWNlID4gTkVY VChwcmljZSkKKyk7CisKKy0tIHVzaW5nIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cgKHNh bWUgcGF0dGVybiBhcyBhYm92ZTsKKy0tIG1hdGNoIGxlbmd0aCBpcyBhbHdheXMgMiwgc28gcmVz dWx0IGlzIGlkZW50aWNhbCB0byBTS0lQIFBBU1QgTEFTVCBST1cuCistLSBTS0lQIFRPIE5FWFQg Uk9XJ3MgZGlzdGluY3QgZWZmZWN0IGlzIHRlc3RlZCBpbiBiYWNrdHJhY2tpbmcgc2VjdGlvbi4p CitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3 LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcKKyBGUk9NIHN0b2NrCisgV0lORE9XIHcgQVMgKAor IFBBUlRJVElPTiBCWSBjb21wYW55CisgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworIElOSVRJQUwK KyBQQVRURVJOIChTVEFSVCBVUERPV04pCisgREVGSU5FCisgIFNUQVJUIEFTIFRSVUUsCisgIFVQ RE9XTiBBUyBwcmljZSA+IFBSRVYocHJpY2UpIEFORCBwcmljZSA+IE5FWFQocHJpY2UpCispOwor CistLSBQUkVWIHJldHVybnMgTlVMTCBhdCBwYXJ0aXRpb24ncyBmaXJzdCByb3cgKG51bGxfc2xv dCBwYXRoKQorU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgY291bnQoKikgT1ZFUiB3CitG Uk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyBPUkRFUiBC WSB0ZGF0ZQorIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworIFBBVFRFUk4gKEJPVU5EQVJZIFJFU1QrKQorIERFRklORQorICBCT1VOREFSWSBBUyBQUkVW KHByaWNlKSBJUyBOVUxMLAorICBSRVNUIEFTIFBSRVYocHJpY2UpIElTIE5PVCBOVUxMCispOwor CistLSBORVhUIHJldHVybnMgTlVMTCBhdCBwYXJ0aXRpb24ncyBsYXN0IHJvdyAobnVsbF9zbG90 IHBhdGgpCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBjb3VudCgqKSBPVkVSIHcKK0ZS T00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyBQQVJUSVRJT04gQlkgY29tcGFueQorIE9SREVSIEJZ IHRkYXRlCisgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgUEFUVEVSTiAoQSsgQk9VTkRBUlkp CisgREVGSU5FCisgIEEgQVMgTkVYVChwcmljZSkgSVMgTk9UIE5VTEwsCisgIEJPVU5EQVJZIEFT IE5FWFQocHJpY2UpIElTIE5VTEwKKyk7CisKKy0tIERFU0Mgb3JkZXI6IFBSRVYgcmVmZXJzIHRv IHRoZSByb3cgd2l0aCBsYXRlciBkYXRlCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBj b3VudCgqKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyBQQVJUSVRJT04gQlkg Y29tcGFueQorIE9SREVSIEJZIHRkYXRlIERFU0MKKyBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyBQQVRURVJOIChTVEFSVCBET1dOKyBVUCspCisgREVGSU5FCisgIFNUQVJUIEFTIFRSVUUsCisg IERPV04gQVMgcHJpY2UgPCBQUkVWKHByaWNlKSwKKyAgVVAgQVMgcHJpY2UgPiBQUkVWKHByaWNl KQorKTsKKworLS0gTXVsdGlwbGUgcGFydGl0aW9ucyB3aXRoIHVuZXF1YWwgc2l6ZXMKK1dJVEgg bXVsdGlfcGFydCBBUyAoCisgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICgnYScsIDEsIDEwKSwg KCdhJywgMiwgMjApLCAoJ2EnLCAzLCAxNSksCisgICgnYicsIDEsIDUpLAorICAoJ2MnLCAxLCAx MDApLCAoJ2MnLCAyLCAyMDApLCAoJ2MnLCAzLCAxNTApLCAoJ2MnLCA0LCAxNDApLCAoJ2MnLCA1 LCAzMDApCisgKSBBUyB0KGdycCwgaWQsIHZhbCkKKykKK1NFTEVDVCBncnAsIGlkLCB2YWwsIGNv dW50KCopIE9WRVIgdworRlJPTSBtdWx0aV9wYXJ0CitXSU5ET1cgdyBBUyAoCisgUEFSVElUSU9O IEJZIGdycAorIE9SREVSIEJZIGlkCisgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgUEFUVEVS TiAoQSBCKykKKyBERUZJTkUKKyAgQSBBUyB2YWwgPD0gTkVYVCh2YWwpLAorICBCIEFTIHZhbCA+ IFBSRVYodmFsKSBPUiB2YWwgPCBQUkVWKHZhbCkKKyk7CisKKy0tIEZMT0FUL05VTUVSSUMgREVG SU5FIGNvbmRpdGlvbnMKK1dJVEggZmxvYXRfZGF0YSBBUyAoCisgU0VMRUNUICogRlJPTSAoVkFM VUVTCisgICgxLCAxLjA6OmZsb2F0OCksICgyLCAxLjUpLCAoMywgMS40OTk5KSwgKDQsIDEuNTAw MDEpLCAoNSwgMC4xKQorICkgQVMgdChpZCwgdmFsKQorKQorU0VMRUNUIGlkLCB2YWwsIGNvdW50 KCopIE9WRVIgdworRlJPTSBmbG9hdF9kYXRhCitXSU5ET1cgdyBBUyAoCisgT1JERVIgQlkgaWQK KyBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyBQQVRURVJOIChBIEIrKQorIERFRklORQorICBB IEFTIFRSVUUsCisgIEIgQVMgdmFsID4gUFJFVih2YWwpICogMC45OQorKTsKKworLS0KKy0tIEVy cm9yIGNhc2VzOiBQUkVWL05FWFQgdXNhZ2UgcmVzdHJpY3Rpb25zCistLQorCistLSBQUkVWIG91 dHNpZGUgREVGSU5FIGNsYXVzZQorU0VMRUNUIHByZXYocHJpY2UpIEZST00gc3RvY2s7CisKKy0t IE5FWFQgb3V0c2lkZSBERUZJTkUgY2xhdXNlCitTRUxFQ1QgbmV4dChwcmljZSkgRlJPTSBzdG9j azsKKworLS0gTmVzdGVkIFBSRVYKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitXSU5ET1cgdyBB UyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVSTiAoQSkK KyAgICBERUZJTkUgQSBBUyBwcmljZSA+IFBSRVYoUFJFVihwcmljZSkpCispOworCistLSBOZXN0 ZWQgTkVYVAorU0VMRUNUIHByaWNlIEZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJU SVRJT04gQlkgY29tcGFueQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIElOSVRJQUwKKyAgICBQQVRURVJOIChBKQorICAgIERFRklORSBB IEFTIHByaWNlID4gTkVYVChORVhUKHByaWNlKSkKKyk7CisKKy0tIFBSRVYgbmVzdGVkIGluc2lk ZSBORVhUCitTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJ VElPTiBCWSBjb21wYW55CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgSU5JVElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEg QVMgcHJpY2UgPiBORVhUKFBSRVYocHJpY2UpKQorKTsKKworLS0gUFJFViBuZXN0ZWQgaW5zaWRl IGV4cHJlc3Npb24gaW5zaWRlIE5FWFQKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitXSU5ET1cg dyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVSTiAo QSkKKyAgICBERUZJTkUgQSBBUyBwcmljZSA+IE5FWFQocHJpY2UgKiBQUkVWKHByaWNlKSkKKyk7 CisKKy0tIFRyaXBsZSBuZXN0aW5nOiBlcnJvciByZXBvcnRlZCBhdCBvdXRlcm1vc3QgUFJFVgor U0VMRUNUIHByaWNlIEZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkg Y29tcGFueQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIElOSVRJQUwKKyAgICBQQVRURVJOIChBKQorICAgIERFRklORSBBIEFTIHByaWNl ID4gUFJFVihQUkVWKFBSRVYocHJpY2UpKSkKKyk7CisKKy0tIE5vIGNvbHVtbiByZWZlcmVuY2Ug aW4gUFJFVi9ORVhUIGFyZ3VtZW50CistLSBQUkVWKDEpOiBjb25zdGFudCBvbmx5LCBubyBjb2x1 bW4gcmVmZXJlbmNlCitTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAg IFBBUlRJVElPTiBCWSBjb21wYW55CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgSU5JVElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVG SU5FIEEgQVMgUFJFVigxKSA+IDAKKyk7CisKKy0tIE5FWFQoMSArIDIpOiBjb25zdGFudCBleHBy ZXNzaW9uLCBubyBjb2x1bW4gcmVmZXJlbmNlCitTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jaworV0lO RE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55CisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgSU5JVElBTAorICAgIFBBVFRF Uk4gKEEpCisgICAgREVGSU5FIEEgQVMgTkVYVCgxICsgMikgPiAwCispOworCistLSAyLWFyZyBm b3JtOiBQUkVWKDEsIDEpOiBjb25zdGFudCBleHByZXNzaW9uIGFzIGZpcnN0IGFyZworU0VMRUNU IHByaWNlIEZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFu eQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIElOSVRJQUwKKyAgICBQQVRURVJOIChBKQorICAgIERFRklORSBBIEFTIFBSRVYoMSwgMSkg PiAwCispOworCistLSBOb24tY29uc3RhbnQgb2Zmc2V0OiBjb2x1bW4gcmVmZXJlbmNlIGFzIG9m ZnNldAorU0VMRUNUIHByaWNlIEZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJ T04gQlkgY29tcGFueQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIElOSVRJQUwKKyAgICBQQVRURVJOIChBKQorICAgIERFRklORSBBIEFT IFBSRVYocHJpY2UsIHByaWNlKSA+IDAKKyk7CisKKy0tIE5vbi1jb25zdGFudCBvZmZzZXQ6IHZv bGF0aWxlIGZ1bmN0aW9uIGFzIG9mZnNldAorU0VMRUNUIHByaWNlIEZST00gc3RvY2sKK1dJTkRP VyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueQorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIElOSVRJQUwKKyAgICBQQVRURVJO IChBKQorICAgIERFRklORSBBIEFTIFBSRVYocHJpY2UsIHJhbmRvbSgpOjppbnQpID4gMAorKTsK KworLS0gTm9uLWNvbnN0YW50IG9mZnNldDogc3VicXVlcnkgYXMgb2Zmc2V0CitTRUxFQ1QgcHJp Y2UgRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55Cisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg SU5JVElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgUFJFVihwcmljZSwgKFNF TEVDVCAxKSkgPiAwCispOworCistLSBGaXJzdCBhcmc6IHN1YnF1ZXJ5IChjYXVnaHQgYnkgREVG SU5FLWxldmVsIHN1YnF1ZXJ5IHJlc3RyaWN0aW9uKQorU0VMRUNUIHByaWNlIEZST00gc3RvY2sK K1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueQorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIElOSVRJQUwKKyAgICBQ QVRURVJOIChBKQorICAgIERFRklORSBBIEFTIFBSRVYocHJpY2UgKyAoU0VMRUNUIDEpKSA+IDAK Kyk7CisKKy0tIEZpcnN0IGFyZzogdm9sYXRpbGUgZnVuY3Rpb24gaXMgYWxsb3dlZCAoZXZhbHVh dGVkIG9uIHRhcmdldCByb3cpCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLAorICAgICAg IGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgY291 bnQoKikgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZ IGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQ UkVWKHByaWNlICsgcmFuZG9tKCkgKiAwKSA+PSAwCispOworCistLQorLS0gMi1hcmcgUFJFVi9O RVhUOiBmdW5jdGlvbmFsIHRlc3RzCistLQorCistLSBQUkVWKHByaWNlLCAyKTogbWF0Y2ggcm93 cyB3aGVyZSBjdXJyZW50IHByaWNlID4gcHJpY2UgMiByb3dzIGJhY2sKKy0tIHN0b2NrOiAxMDAs IDkwLCA4MCwgOTUsIDExMAorLS0gUGF0dGVybiAoQSBCKyk6IEE9YW55LCBCIHdoZXJlIHByaWNl ID4gUFJFVihwcmljZSwgMikKKy0tIEF0IHBvcyAyICg4MCk6IEEgbWF0Y2hlcy4gcG9zIDMgKDk1 KTogOTUgPiBQUkVWKDk1LDIpPTkwIFRSVUUuCistLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcG9zIDQgKDExMCk6IDExMCA+IFBSRVYoMTEwLDIpPTgwIFRSVUUuIE1hdGNoIQorU0VMRUNU IGNvbXBhbnksIHRkYXRlLCBwcmljZSwKKyAgICAgICBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3 LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGNvdW50KCopIE9WRVIgdworRlJPTSBzdG9jawor V0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55IE9SREVSIEJZIHRkYXRlCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg UEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyBUUlVFLAorICAgICAgICBC IEFTIHByaWNlID4gUFJFVihwcmljZSwgMikKKyk7CisKKy0tIE5FWFQocHJpY2UsIDIpOiBtYXRj aCByb3dzIHdoZXJlIGN1cnJlbnQgcHJpY2UgPiBwcmljZSAyIHJvd3MgYWhlYWQKKy0tIHBvcyAw ICgxMDApOiBORVhUKDEwMCwyKT04MCwgMTAwPjgwIFRSVUUuIHBvcyAxICg5MCk6IE5FWFQoOTAs Mik9OTUsIDkwPjk1IEZBTFNFLiBNYXRjaCBlbmRzLgorU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBw cmljZSwKKyAgICAgICBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNl KSBPVkVSIHcsIGNvdW50KCopIE9WRVIgdworRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAg IFBBUlRJVElPTiBCWSBjb21wYW55IE9SREVSIEJZIHRkYXRlCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAg REVGSU5FIEEgQVMgcHJpY2UgPiBORVhUKHByaWNlLCAyKQorKTsKKworLS0gRXhwcmVzc2lvbnMg aW5zaWRlIFBSRVYvTkVYVCBhcmc6IGV4cHIgaXMgZXZhbHVhdGVkIG9uIHRhcmdldCByb3cKKy0t IFBSRVYocHJpY2UgLSA1MCwgMSk6IGZldGNoZXMgKHByaWNlIC0gNTApIGZyb20gMSByb3cgYmFj aworU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwKKyAgICAgICBmaXJzdF92YWx1ZShwcmlj ZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGNvdW50KCopIE9WRVIgdworRlJP TSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55IE9SREVSIEJZ IHRkYXRlCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBQUkVWKHByaWNl IC0gNTAsIDEpCispOworCistLSBORVhUKHByaWNlICogMiwgMSk6IGZldGNoZXMgKHByaWNlICog MikgZnJvbSAxIHJvdyBhaGVhZAorU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwKKyAgICAg ICBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGNv dW50KCopIE9WRVIgdworRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBC WSBjb21wYW55IE9SREVSIEJZIHRkYXRlCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMg cHJpY2UgPCBORVhUKHByaWNlICogMiwgMSkKKyk7CisKKy0tIExhcmdlIG9mZnNldDogUFJFVih2 YWwsIDk5OSkgb24gMTAwMC1yb3cgc2VyaWVzIG1hdGNoZXMgb25seSBsYXN0IHJvdworLS0gTkVY VCh2YWwsIDk5OSkgbWF0Y2hlcyBvbmx5IGZpcnN0IHJvdworU0VMRUNUIHZhbCwgZmlyc3RfdmFs dWUodmFsKSBPVkVSIHcsIGxhc3RfdmFsdWUodmFsKSBPVkVSIHcsIGNvdW50KCopIE9WRVIgdwor RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwMCkgQVMgdCh2YWwpCitXSU5ET1cgdyBBUyAoCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg UEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgUFJFVih2YWwsIDk5OSkgPSAxCispCitPUkRF UiBCWSB2YWwgREVTQyBMSU1JVCAzOworCitTRUxFQ1QgdmFsLCBmaXJzdF92YWx1ZSh2YWwpIE9W RVIgdywgbGFzdF92YWx1ZSh2YWwpIE9WRVIgdywgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVy YXRlX3NlcmllcygxLCAxMDAwKSBBUyB0KHZhbCkKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChB KykKKyAgICBERUZJTkUgQSBBUyBORVhUKHZhbCwgOTk5KSA9IDEwMDAKKykKK0xJTUlUIDM7CisK Ky0tIFBSRVYocHJpY2UsIDApOiBvZmZzZXQgMCBtZWFucyBjdXJyZW50IHJvdywgYWx3YXlzIGVx dWFsIHRvIHByaWNlCistLSBBKyBtYXRjaGVzIGVudGlyZSBwYXJ0aXRpb24gYXMgb25lIGdyb3Vw OyBjb3VudCA9IHBhcnRpdGlvbiBzaXplCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLAor ICAgICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIg dywgY291bnQoKikgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElU SU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUg QSBBUyBQUkVWKHByaWNlLCAwKSA9IHByaWNlCispOworCistLSAyLWFyZyBQUkVWL05FWFQgb3V0 c2lkZSBERUZJTkUgY2xhdXNlCitTRUxFQ1QgcHJldihwcmljZSwgMikgRlJPTSBzdG9jazsKK1NF TEVDVCBuZXh0KHByaWNlLCAyKSBGUk9NIHN0b2NrOworCistLSAyLWFyZyBQUkVWL05FWFQ6IG5l Z2F0aXZlIG9mZnNldAorU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmlyc3RfdmFsdWUo cHJpY2UpIE9WRVIgdworRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBC WSBjb21wYW55IE9SREVSIEJZIHRkYXRlCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMg UFJFVihwcmljZSwgLTEpIElTIE5PVCBOVUxMCispOworCistLSAyLWFyZyBQUkVWL05FWFQ6IE5V TEwgb2Zmc2V0ICh0eXBlZCkKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3Zh bHVlKHByaWNlKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJ T04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBB IEFTIFBSRVYocHJpY2UsIE5VTEw6OmludDgpIElTIE5PVCBOVUxMCispOworCistLSAyLWFyZyBQ UkVWL05FWFQ6IE5VTEwgb2Zmc2V0ICh1bnR5cGVkKQorU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBw cmljZSwgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdworRlJPTSBzdG9jaworV0lORE9XIHcgQVMg KAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55IE9SREVSIEJZIHRkYXRlCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSsp CisgICAgREVGSU5FIEEgQVMgUFJFVihwcmljZSwgTlVMTCkgSVMgTk9UIE5VTEwKKyk7CisKKy0t IDItYXJnIFBSRVYvTkVYVDogaG9zdCB2YXJpYWJsZSBuZWdhdGl2ZSBhbmQgTlVMTAorUFJFUEFS RSB0ZXN0X3ByZXZfb2Zmc2V0KGludDgpIEFTCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNl LCBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisg ICAgUEFSVElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAg ICBERUZJTkUgQSBBUyBwcmljZSA+IFBSRVYocHJpY2UsICQxKQorKTsKK0VYRUNVVEUgdGVzdF9w cmV2X29mZnNldCgtMSk7CitFWEVDVVRFIHRlc3RfcHJldl9vZmZzZXQoTlVMTCk7CitERUFMTE9D QVRFIHRlc3RfcHJldl9vZmZzZXQ7CisKKy0tIDItYXJnIFBSRVYvTkVYVDogaG9zdCB2YXJpYWJs ZSB3aXRoIGV4cHJlc3Npb24gKDAgKyAkMSkKK1BSRVBBUkUgdGVzdF9wcmV2X29mZnNldChpbnQ4 KSBBUworU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmlyc3RfdmFsdWUocHJpY2UpIE9W RVIgdworRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55 IE9SREVSIEJZIHRkYXRlCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBQ UkVWKHByaWNlLCAwICsgJDEpCispOworRVhFQ1VURSB0ZXN0X3ByZXZfb2Zmc2V0KC0xKTsKK0VY RUNVVEUgdGVzdF9wcmV2X29mZnNldChOVUxMKTsKK0RFQUxMT0NBVEUgdGVzdF9wcmV2X29mZnNl dDsKKworLS0gMi1hcmcgUFJFVi9ORVhUOiBob3N0IHZhcmlhYmxlIHdpdGggcG9zaXRpdmUgdmFs dWUKKy0tIEV4ZXJjaXNlcyBSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFMIC0+IGV2YWxfbmF2X21h eF9vZmZzZXQoKSBwYXRoCitQUkVQQVJFIHRlc3RfcHJldl9vZmZzZXQoaW50OCkgQVMKK1NFTEVD VCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGNvdW50 KCopIE9WRVIgdworRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBj b21wYW55IE9SREVSIEJZIHRkYXRlCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisg ICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIHByaWNlID4gUFJF VihwcmljZSwgJDEpCispOworRVhFQ1VURSB0ZXN0X3ByZXZfb2Zmc2V0KDEpOworRVhFQ1VURSB0 ZXN0X3ByZXZfb2Zmc2V0KDIpOworREVBTExPQ0FURSB0ZXN0X3ByZXZfb2Zmc2V0OworCistLSAy LWFyZzogdHdvIFBSRVYgd2l0aCBkaWZmZXJlbnQgb2Zmc2V0cyBpbiBzYW1lIERFRklORSBjbGF1 c2UKKy0tIEI6IHByaWNlIGV4Y2VlZHMgYm90aCAxLWJhY2sgYW5kIDItYmFjayB2YWx1ZXMKK1NF TEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsCisgICAgICAgZmlyc3RfdmFsdWUocHJpY2UpIE9W RVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcKK0ZST00gc3Rv Y2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0 ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisg ICAgREVGSU5FCisgICAgICAgIEEgQVMgVFJVRSwKKyAgICAgICAgQiBBUyBwcmljZSA+IFBSRVYo cHJpY2UsIDEpIEFORCBwcmljZSA+IFBSRVYocHJpY2UsIDIpCispOworCistLSAyLWFyZzogUFJF ViBhbmQgTkVYVCB3aXRoIGV4cGxpY2l0IG9mZnNldHMgaW4gc2FtZSBERUZJTkUgY2xhdXNlCist LSBBOiBwcmljZSBleGNlZWRzIDEtYmFjayBhbmQgaXMgYmVsb3cgMS1haGVhZCAoYXNjZW5kaW5n IGludGVyaW9yIHBvaW50KQorU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwKKyAgICAgICBm aXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGNvdW50 KCopIE9WRVIgdworRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBj b21wYW55IE9SREVSIEJZIHRkYXRlCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisg ICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBQUkVWKHByaWNlLCAxKSBB TkQgcHJpY2UgPCBORVhUKHByaWNlLCAxKQorKTsKKworLS0gUGFzcy1ieS1yZWYgdHlwZXM6IHR3 byBQUkVWIGNhbGxzIHRhcmdldGluZyBkaWZmZXJlbnQgcG9zaXRpb25zLgorLS0gVmVyaWZpZXMg dGhhdCBkYXR1bUNvcHkgaW4gUkVTVE9SRSBwcmV2ZW50cyBkYW5nbGluZyBwb2ludGVycyB3aGVu CistLSBuYXZfc2xvdCBpcyByZS1mZXRjaGVkIGZvciB0aGUgc2Vjb25kIG5hdmlnYXRpb24uCist LSB0ZGF0ZTo6dGV4dCBnaXZlcyBkaXN0aW5jdCB0ZXh0IHZhbHVlcyBwZXIgcm93IChlLmcuICcw Ny0wMS0yMDIzJykuCistLSBCIG1hdGNoZXMgd2hlbiAxLWJhY2sgZGF0ZSB0ZXh0ID4gMi1iYWNr IGRhdGUgdGV4dCAoYWx3YXlzIHRydWUgZm9yCistLSBhc2NlbmRpbmcgZGF0ZXMpLCBzbyBCKyBl eHRlbmRzIHRoZSBmdWxsIHBhcnRpdGlvbiBhZnRlciBBLgorU0VMRUNUIGNvbXBhbnksIHRkYXRl LCB0ZGF0ZTo6dGV4dCBBUyB0ZGF0ZV90ZXh0LAorICAgICAgIGZpcnN0X3ZhbHVlKHRkYXRlOjp0 ZXh0KSBPVkVSIHcsIGxhc3RfdmFsdWUodGRhdGU6OnRleHQpIE9WRVIgdywgY291bnQoKikgT1ZF UiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkg T1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRU RVJOIChBIEIrKQorICAgIERFRklORQorICAgICAgICBBIEFTIFRSVUUsCisgICAgICAgIEIgQVMg UFJFVih0ZGF0ZTo6dGV4dCwgMSkgPiBQUkVWKHRkYXRlOjp0ZXh0LCAyKQorKTsKKworLS0gbnVt ZXJpYzogUFJFVihwcmljZTo6bnVtZXJpYywgMSkgPiBQUkVWKHByaWNlOjpudW1lcmljLCAyKQor LS0gQiBtYXRjaGVzIHdoZW4gcHJpY2UgMS1iYWNrID4gcHJpY2UgMi1iYWNrIChhc2NlbmRpbmcg cGFpcikuCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlOjpudW1lcmljIEFTIG5wcmljZSwK KyAgICAgICBmaXJzdF92YWx1ZShwcmljZTo6bnVtZXJpYykgT1ZFUiB3LCBsYXN0X3ZhbHVlKHBy aWNlOjpudW1lcmljKSBPVkVSIHcsIGNvdW50KCopIE9WRVIgdworRlJPTSBzdG9jaworV0lORE9X IHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55IE9SREVSIEJZIHRkYXRlCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUK KyAgICAgICAgQSBBUyBUUlVFLAorICAgICAgICBCIEFTIFBSRVYocHJpY2U6Om51bWVyaWMsIDEp ID4gUFJFVihwcmljZTo6bnVtZXJpYywgMikKKyk7CisKKy0tCistLSBGSVJTVC9MQVNUIG5hdmln YXRpb24KKy0tCisKKy0tIFRlc3QgZGF0YSBmb3IgRklSU1QvTEFTVDogdmFsdWVzIGN5Y2xlIGJh Y2sgc28gRklSU1QodmFsKSA9IExBU1QodmFsKQorLS0gYXQgc3BlY2lmaWMgcG9zaXRpb25zLgor Q1JFQVRFIFRFTVAgVEFCTEUgcnByX25hdiAoaWQgaW50LCB2YWwgaW50KTsKK0lOU0VSVCBJTlRP IHJwcl9uYXYgVkFMVUVTICgxLDEwKSwoMiwyMCksKDMsMzApLCg0LDEwKSwoNSw1MCksKDYsMTAp OworCistLSBGSVJTVCh2YWwpID0gY29uc3RhbnQ6IEIgbWF0Y2hlcyB3aGVuIG1hdGNoX3N0YXJ0 IGhhcyB2YWw9MTAKKy0tIG1hdGNoX3N0YXJ0PTEoMTApOiBBPWlkMSwgQj1pZDIsIEZJUlNUKHZh bCk9MTAgLT4gbWF0Y2ggezEsMn0KKy0tIG1hdGNoX3N0YXJ0PTMoMzApOiBBPWlkMywgQj1pZDQs IEZJUlNUKHZhbCk9MzAhPTEwIC0+IG5vIG1hdGNoCistLSBtYXRjaF9zdGFydD00KDEwKTogQT1p ZDQsIEI9aWQ1LCBGSVJTVCh2YWwpPTEwIC0+IG1hdGNoIHs0LDV9CitTRUxFQ1QgaWQsIHZhbCwg Zmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1s CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKQorICAgIERFRklORSBBIEFT IFRSVUUsIEIgQVMgRklSU1QodmFsKSA9IDEwCispOworCistLSBMQVNUKHZhbCk6IGFsd2F5cyBl cXVhbHMgY3VycmVudCByb3cncyB2YWwgKG9mZnNldCAwIGRlZmF1bHQpCistLSBFcXVpdmFsZW50 IHRvOiBCIEFTIHZhbCA+IDE1CitTRUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIg dyBBUyBtZiwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1sCitGUk9NIHJwcl9uYXYgV0lORE9X IHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X CisgICAgUEFUVEVSTiAoQSBCKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgTEFTVCh2YWwp ID4gMTUKKyk7CisKKy0tIFJlbHVjdGFudCBBKz8gd2l0aCBGSVJTVCh2YWwpID0gTEFTVCh2YWwp OiBmaW5kIHNob3J0ZXN0IG1hdGNoIHdoZXJlCistLSBmaXJzdCBhbmQgbGFzdCByb3dzIGhhdmUg dGhlIHNhbWUgdmFsLgorLS0gbWF0Y2hfc3RhcnQ9MSgxMCk6IHJlbHVjdGFudCB0cmllcyBCIGVh cmx5OgorLS0gICBpZDIoMjAhPTEwKSwgaWQzKDMwIT0xMCksIGlkNCgxMD0xMCkgLT4gbWF0Y2gg ezEsMiwzLDR9CistLSBtYXRjaF9zdGFydD01KDUwKTogaWQ2KDEwIT01MCkgLT4gbm8gbWF0Y2gK K1NFTEVDVCBpZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1mLCBsYXN0X3ZhbHVl KGlkKSBPVkVSIHcgQVMgbWwKK0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIg QlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKz8g QikKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIEZJUlNUKHZhbCkgPSBMQVNUKHZhbCkKKyk7 CisKKy0tIEdyZWVkeSBBKyB3aXRoIEZJUlNUKHZhbCkgPSBMQVNUKHZhbCk6IGZpbmQgbG9uZ2Vz dCBtYXRjaCB3aGVyZQorLS0gZmlyc3QgYW5kIGxhc3Qgcm93cyBoYXZlIHRoZSBzYW1lIHZhbC4K Ky0tIG1hdGNoX3N0YXJ0PTEoMTApOiBncmVlZHkgQSBlYXRzIGFsbCwgQiB0cmllcyBsYXN0Ogor LS0gICBpZDYoMTA9MTApIC0+IG1hdGNoIHsxLDIsMyw0LDUsNn0KK1NFTEVDVCBpZCwgdmFsLCBm aXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1mLCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWwK K0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRD SCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFT IFRSVUUsIEIgQVMgRklSU1QodmFsKSA9IExBU1QodmFsKQorKTsKKworLS0gU0tJUCBUTyBORVhU IFJPVyB3aXRoIEZJUlNUKHZhbCkgPSBMQVNUKHZhbCk6IG92ZXJsYXBwaW5nIG1hdGNoIGF0dGVt cHRzLgorLS0gV2l0aCBPTkUgUk9XIFBFUiBNQVRDSCwgZWFjaCByb3cgc2hvd3Mgb25seSBpdHMg Zmlyc3QgbWF0Y2ggcmVzdWx0LgorU0VMRUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVS IHcgQVMgbWYsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtbAorRlJPTSBycHJfbmF2IFdJTkRP VyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cK KyAgICBQQVRURVJOIChBKz8gQikKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIEZJUlNUKHZh bCkgPSBMQVNUKHZhbCkKKyk7CisKKy0tIEZJUlNUL0xBU1QgMi1hcmcgb2Zmc2V0IGZvcm0KKy0t CistLSBGSVJTVCh2YWwsIDApID0gRklSU1QodmFsKTogbWF0Y2hfc3RhcnQgcm93CitTRUxFQ1Qg aWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgY291bnQoKikgT1ZFUiB3IEFT IGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVS IE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5F IEEgQVMgVFJVRSwgQiBBUyBGSVJTVCh2YWwsIDApID0gMTAKKyk7CisKKy0tIEZJUlNUKHZhbCwg MSk6IG1hdGNoX3N0YXJ0ICsgMSByb3cgKHNlY29uZCByb3cgb2YgbWF0Y2gpCistLSBtYXRjaF9z dGFydD0xKDEwKTogRklSU1QodmFsLDEpPTIwLCBCIG5lZWRzIHZhbD0yMCAtPiBpZDIoMjApIG1h dGNoLCBpZDMoMzApIG5vCistLSBtYXRjaF9zdGFydD0zKDMwKTogRklSU1QodmFsLDEpPTEwLCBC IG5lZWRzIHZhbD0xMCAtPiBpZDQoMTApIG1hdGNoCitTRUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFs dWUoaWQpIE9WRVIgdyBBUyBtZiwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2 IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBM QVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyB2 YWwgPSBGSVJTVCh2YWwsIDEpCispOworCistLSBGSVJTVCh2YWwsIDk5KTogb2Zmc2V0IGJleW9u ZCBtYXRjaCByYW5nZSAtPiBOVUxMLCBubyBtYXRjaAorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCop IE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkg aWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQor ICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgRklSU1QodmFsLCA5OSkgSVMgTk9UIE5VTEwKKyk7 CisKKy0tIExBU1QodmFsLCAwKSA9IExBU1QodmFsKTogY3VycmVudCByb3cKK1NFTEVDVCBpZCwg dmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1mLCBjb3VudCgqKSBPVkVSIHcgQVMgY250 CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQSBB UyBUUlVFLCBCIEFTIExBU1QodmFsLCAwKSA+IDE1CispOworCistLSBMQVNUKHZhbCwgMSk6IG9u ZSByb3cgYmFjayBmcm9tIGN1cnJlbnQgKHByZXZpb3VzIG1hdGNoIHJvdykKKy0tIEF0IEIgZXZh bHVhdGlvbiBvbiBpZDI6IExBU1QodmFsLDEpID0gdmFsIGF0IGlkMSA9IDEwCistLSBCIG1hdGNo ZXMgd2hlbiBwcmV2aW91cyByb3cgdmFsIDwgMzAKK1NFTEVDVCBpZCwgdmFsLCBmaXJzdF92YWx1 ZShpZCkgT1ZFUiB3IEFTIG1mLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9uYXYg V0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExB U1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIExB U1QodmFsLCAxKSA8IDMwCispOworCistLSBMQVNUKHZhbCwgOTkpOiBvZmZzZXQgYmVmb3JlIG1h dGNoX3N0YXJ0IC0+IE5VTEwKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250 CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQSBB UyBUUlVFLCBCIEFTIExBU1QodmFsLCA5OSkgSVMgTk9UIE5VTEwKKyk7CisKKy0tIEVycm9yOiBO VUxMIG9mZnNldAorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBGUk9NIHJwcl9uYXYg V0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5F IEEgQVMgRklSU1QodmFsLCBOVUxMOjppbnQ4KSBJUyBOVUxMCispOworCistLSBFcnJvcjogbmVn YXRpdmUgb2Zmc2V0CitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEZST00gcnByX25h diBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJ TkUgQSBBUyBMQVNUKHZhbCwgLTEpIElTIE5VTEwKKyk7CisKKy0tIEZJUlNUL0xBU1Qgb3V0c2lk ZSBERUZJTkUgY2xhdXNlIChlcnJvciBjYXNlcykKK1NFTEVDVCBmaXJzdCh2YWwpIEZST00gcnBy X25hdjsKK1NFTEVDVCBsYXN0KHZhbCkgRlJPTSBycHJfbmF2OworU0VMRUNUIGZpcnN0KHZhbCwg MSkgRlJPTSBycHJfbmF2OworCistLSBGdW5jdGlvbmFsIG5vdGF0aW9uOiBzaG91bGQgYWNjZXNz IGNvbHVtbiwgbm90IFJQUiBuYXZpZ2F0aW9uCitDUkVBVEUgVEVNUCBUQUJMRSBycHJfbmFtZXMg KHByZXYgaW50LCBuZXh0IGludCwgZmlyc3QgdGV4dCwgbGFzdCB0ZXh0KTsKK0lOU0VSVCBJTlRP IHJwcl9uYW1lcyBWQUxVRVMgKDEsIDIsICdKb2UnLCAnQmxvdycpOworU0VMRUNUIHByZXYoZiks IG5leHQoZiksIGZpcnN0KGYpLCBsYXN0KGYpIEZST00gcnByX25hbWVzIGY7CitEUk9QIFRBQkxF IHJwcl9uYW1lczsKKworLS0gQ29tcG91bmQgbmF2aWdhdGlvbjogUFJFVihGSVJTVCh2YWwpLCBN KQorLS0gcnByX25hdjogKDEsMTApLCgyLDIwKSwoMywzMCksKDQsMTApLCg1LDUwKSwoNiwxMCkK Ky0tIFBSRVYoRklSU1QodmFsKSwgMSk6IHRhcmdldCA9IG1hdGNoX3N0YXJ0ICsgMCAtIDEgPSBt YXRjaF9zdGFydCAtIDEKKy0tIEF0IG1hdGNoX3N0YXJ0PTE6IHRhcmdldD0wIC0+IG91dCBvZiBy YW5nZSAtPiBOVUxMCistLSBBdCBtYXRjaF9zdGFydD0zOiB0YXJnZXQ9Mih2YWw9MjApIC0+IDIw ID4gMCAtPiB0cnVlCitTRUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBt ZiwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAg ICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRF Uk4gKEEgQispCisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBQUkVWKEZJUlNUKHZhbCksIDEp ID4gMAorKTsKKworLS0gTkVYVChGSVJTVCh2YWwsIDEpLCAxKTogdGFyZ2V0ID0gbWF0Y2hfc3Rh cnQgKyAxICsgMSA9IG1hdGNoX3N0YXJ0ICsgMgorLS0gQXQgbWF0Y2hfc3RhcnQ9MSwgQiBvbiBp ZDI6IHRhcmdldD0xKzErMT0zKHZhbD0zMCksIDMwPjAgLT4gdHJ1ZQorU0VMRUNUIGlkLCB2YWws IGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZS T00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBT S0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFTIFRS VUUsIEIgQVMgTkVYVChGSVJTVCh2YWwsIDEpLCAxKSA+IDAKKyk7CisKKy0tIFBSRVYoTEFTVCh2 YWwpLCAyKTogdGFyZ2V0ID0gY3VycmVudHBvcyAtIDAgLSAyID0gY3VycmVudHBvcyAtIDIKKy0t IFNhbWUgYmFja3dhcmQgcmVhY2ggYXMgUFJFVih2YWwsIDIpCitTRUxFQ1QgaWQsIHZhbCwgZmly c3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBy cHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAg UEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEEgQVMgVFJVRSwg QiBBUyBQUkVWKExBU1QodmFsKSwgMikgSVMgTk9UIE5VTEwKKyk7CisKKy0tIE5FWFQoTEFTVCh2 YWwsIDEpLCAyKTogdGFyZ2V0ID0gY3VycmVudHBvcyAtIDEgKyAyID0gY3VycmVudHBvcyArIDEK Ky0tIExvb2tzIDEgcm93IGFoZWFkOiBzYW1lIGFzIE5FWFQodmFsLCAxKQorU0VMRUNUIGlkLCB2 YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQK K0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRD SCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFT IFRSVUUsIEIgQVMgTkVYVChMQVNUKHZhbCwgMSksIDIpIElTIE5PVCBOVUxMCispOworCistLSBD b21wb3VuZDogb3V0ZXIgb2Zmc2V0IGJleW9uZCBwYXJ0aXRpb24gKFBSRVYgZmFyIGJhY2spCitT RUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRP VyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEEg QVMgVFJVRSwgQiBBUyBQUkVWKEZJUlNUKHZhbCksIDk5KSBJUyBOT1QgTlVMTAorKTsKKworLS0g Q29tcG91bmQ6IG91dGVyIG9mZnNldCBiZXlvbmQgcGFydGl0aW9uIChORVhUIGZhciBmb3J3YXJk KQorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX25hdiBX SU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklO RSBBIEFTIFRSVUUsIEIgQVMgTkVYVChGSVJTVCh2YWwpLCA5OSkgSVMgTk9UIE5VTEwKKyk7CisK Ky0tIENvbXBvdW5kOiBpbm5lciBvZmZzZXQgYmV5b25kIG1hdGNoIHJhbmdlIChGSVJTVCBvZmZz ZXQgdG9vIGxhcmdlKQorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZS T00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIr KQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgUFJFVihGSVJTVCh2YWwsIDk5KSwgMSkgSVMg Tk9UIE5VTEwKKyk7CisKKy0tIENvbXBvdW5kOiBpbm5lciBvZmZzZXQgYmV5b25kIG1hdGNoIHJh bmdlIChMQVNUIG9mZnNldCB0b28gbGFyZ2UpCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZF UiB3IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBORVhUKExBU1QodmFs LCA5OSksIDEpIElTIE5PVCBOVUxMCispOworCistLSBDb21wb3VuZDogTlVMTCBvdXRlciBvZmZz ZXQgKHJ1bnRpbWUgZXJyb3IpCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEZST00g cnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAg ICBERUZJTkUgQSBBUyBQUkVWKEZJUlNUKHZhbCksIE5VTEw6OmludDgpIElTIE5VTEwKKyk7CisK Ky0tIENvbXBvdW5kOiBuZWdhdGl2ZSBvdXRlciBvZmZzZXQgKHJ1bnRpbWUgZXJyb3IpCitTRUxF Q1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisg ICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBORVhUKExBU1Qo dmFsKSwgLTEpIElTIE5VTEwKKyk7CisKKy0tIENvbXBvdW5kOiBkZWZhdWx0IG9mZnNldHMgb24g Ym90aCBzaWRlcworLS0gUFJFVihGSVJTVCh2YWwpKTogaW5uZXI9MCAobWF0Y2hfc3RhcnQpLCBv dXRlcj0xIC0+IHRhcmdldCA9IG1hdGNoX3N0YXJ0IC0gMQorU0VMRUNUIGlkLCB2YWwsIGZpcnN0 X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnBy X25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIg QVMgUFJFVihGSVJTVCh2YWwpKSBJUyBOT1QgTlVMTAorKTsKKworLS0gTkVYVChMQVNUKHZhbCkp OiBpbm5lcj0wIChjdXJyZW50cG9zKSwgb3V0ZXI9MSAtPiB0YXJnZXQgPSBjdXJyZW50cG9zICsg MQorU0VMRUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCop IE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkg aWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQor ICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgTkVYVChMQVNUKHZhbCkpIElTIE5PVCBOVUxMCisp OworCistLSBDb21wb3VuZDogaW5uZXIgTlVMTCBvZmZzZXQgKHJ1bnRpbWUgZXJyb3IpCitTRUxF Q1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisg ICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVWKEZJUlNU KHZhbCwgTlVMTDo6aW50OCksIDEpIElTIE5VTEwKKyk7CisKKy0tIENvbXBvdW5kOiBpbm5lciBu ZWdhdGl2ZSBvZmZzZXQgKHJ1bnRpbWUgZXJyb3IpCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikg T1ZFUiB3IEZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRU RVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBORVhUKExBU1QodmFsLCAtMSksIDEpIElTIE5VTEwK Kyk7CisKKy0tIENvbXBvdW5kICsgaG9zdCB2YXJpYWJsZSBvZmZzZXRzCitQUkVQQVJFIHRlc3Rf Y29tcG91bmRfb2Zmc2V0KGludDgsIGludDgpIEFTCitTRUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFs dWUoaWQpIE9WRVIgdyBBUyBtZiwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2 IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBM QVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBQ UkVWKEZJUlNUKHZhbCwgJDEpLCAkMikgSVMgTk9UIE5VTEwKKyk7CitFWEVDVVRFIHRlc3RfY29t cG91bmRfb2Zmc2V0KDAsIDEpOworRVhFQ1VURSB0ZXN0X2NvbXBvdW5kX29mZnNldCgxLCAxKTsK K0RFQUxMT0NBVEUgdGVzdF9jb21wb3VuZF9vZmZzZXQ7CisKKy0tIENvbXBvdW5kICsgU0tJUCBU TyBORVhUIFJPVzogb3ZlcmxhcHBpbmcgbWF0Y2hlcyB3aXRoIFBSRVYoRklSU1QoKSkKK1NFTEVD VCBpZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1mLCBjb3VudCgqKSBPVkVSIHcg QVMgY250CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZU RVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5F IEEgQVMgVFJVRSwgQiBBUyBQUkVWKEZJUlNUKHZhbCksIDEpID4gMAorKTsKKworLS0gQ29tcG91 bmQgKyBtdWx0aXBsZSBwYXJ0aXRpb25zCitDUkVBVEUgVEVNUCBUQUJMRSBycHJfbmF2X3BhcnQg KGdpZCBpbnQsIGlkIGludCwgdmFsIGludCk7CitJTlNFUlQgSU5UTyBycHJfbmF2X3BhcnQgVkFM VUVTCisgICAgKDEsMSwxMCksKDEsMiwyMCksKDEsMywzMCksCisgICAgKDIsMSw0MCksKDIsMiw1 MCksKDIsMyw2MCk7CitTRUxFQ1QgZ2lkLCBpZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3 IEFTIG1mLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9uYXZfcGFydCBXSU5ET1cg dyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGdpZCBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNL SVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEEgQVMgVFJV RSwgQiBBUyBORVhUKEZJUlNUKHZhbCksIDEpID4gMAorKTsKK0RST1AgVEFCTEUgcnByX25hdl9w YXJ0OworCistLSBSZXZlcnNlIG5lc3Rpbmc6IEZJUlNUIHdyYXBwaW5nIFBSRVYgaXMgcHJvaGli aXRlZAorU0VMRUNUIGlkLCB2YWwgRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRF UiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIFBBVFRFUk4gKEEgQikKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIEZJUlNU KFBSRVYodmFsKSkgPiAwCispOworCistLSBSZXZlcnNlIG5lc3Rpbmc6IExBU1Qgd3JhcHBpbmcg TkVYVCBpcyBwcm9oaWJpdGVkCitTRUxFQ1QgaWQsIHZhbCBGUk9NIHJwcl9uYXYgV0lORE9XIHcg QVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKQorICAgIERFRklORSBBIEFTIFRS VUUsIEIgQVMgTEFTVChORVhUKHZhbCkpID4gMAorKTsKKworRFJPUCBUQUJMRSBycHJfbmF2Owor CistLQorLS0gU0tJUCBUTyAvIEJhY2t0cmFja2luZyAvIEZyYW1lIGJvdW5kYXJ5CistLQorCist LSBtYXRjaCBldmVyeXRoaW5nCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92 YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcKKyBGUk9NIHN0b2Nr CisgV0lORE9XIHcgQVMgKAorIFBBUlRJVElPTiBCWSBjb21wYW55CisgT1JERVIgQlkgdGRhdGUK KyBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyBJTklUSUFMCisgUEFUVEVSTiAoQSspCisgREVG SU5FCisgIEEgQVMgVFJVRQorKTsKKworLS0gbnRoX3ZhbHVlIGJleW9uZCByZWR1Y2VkIGZyYW1l IChubyBJR05PUkUgTlVMTFMpCistLSBUZXN0cyBXaW5HZXRTbG90SW5GcmFtZS9XaW5HZXRGdW5j QXJnSW5GcmFtZSBvdXQtb2YtZnJhbWUgd2l0aCBSUFIKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwg cHJpY2UsCisgbnRoX3ZhbHVlKHByaWNlLCA1KSBPVkVSIHcgQVMgbnRoXzUKK0ZST00gc3RvY2sK K1dJTkRPVyB3IEFTICgKKyBQQVJUSVRJT04gQlkgY29tcGFueQorIE9SREVSIEJZIHRkYXRlCisg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgUEFUVEVSTiAoU1RBUlQgVVArIERPV04rKQorIERF RklORQorICBTVEFSVCBBUyBUUlVFLAorICBVUCBBUyBwcmljZSA+IFBSRVYocHJpY2UpLAorICBE T1dOIEFTIHByaWNlIDwgUFJFVihwcmljZSkKKyk7CisKKy0tIGJhY2t0cmFja2luZyB3aXRoIHJl Y2xhc3NpZmljYXRpb24gb2Ygcm93cworLS0gdXNpbmcgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExB U1QgUk9XCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZSh0ZGF0ZSkg T1ZFUiB3LCBsYXN0X3ZhbHVlKHRkYXRlKSBPVkVSIHcKKyBGUk9NIHN0b2NrCisgV0lORE9XIHcg QVMgKAorIFBBUlRJVElPTiBCWSBjb21wYW55CisgT1JERVIgQlkgdGRhdGUKKyBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyBBRlRFUiBNQVRDSCBTS0lQ IFBBU1QgTEFTVCBST1cKKyBJTklUSUFMCisgUEFUVEVSTiAoQSsgQispCisgREVGSU5FCisgIEEg QVMgcHJpY2UgPiAxMDAsCisgIEIgQVMgcHJpY2UgPiAxMDAKKyk7CisKKy0tIGJhY2t0cmFja2lu ZyB3aXRoIHJlY2xhc3NpZmljYXRpb24gb2Ygcm93cworLS0gdXNpbmcgQUZURVIgTUFUQ0ggU0tJ UCBUTyBORVhUIFJPVworU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmlyc3RfdmFsdWUo dGRhdGUpIE9WRVIgdywgbGFzdF92YWx1ZSh0ZGF0ZSkgT1ZFUiB3CisgRlJPTSBzdG9jaworIFdJ TkRPVyB3IEFTICgKKyBQQVJUSVRJT04gQlkgY29tcGFueQorIE9SREVSIEJZIHRkYXRlCisgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgQUZURVIgTUFU Q0ggU0tJUCBUTyBORVhUIFJPVworIElOSVRJQUwKKyBQQVRURVJOIChBKyBCKykKKyBERUZJTkUK KyAgQSBBUyBwcmljZSA+IDEwMCwKKyAgQiBBUyBwcmljZSA+IDEwMAorKTsKKworLS0gU0tJUCBU TyBORVhUIFJPVyB3aXRoIGxpbWl0ZWQgZnJhbWUgKElzaGlpLXNhbidzIHRlc3QgY2FzZSkKKy0t IEVhY2ggcm93IHNob3VsZCBwcm9kdWNlIGl0cyBvd24gbWF0Y2ggd2l0aGluIGl0cyBmcmFtZQor V0lUSCBkYXRhIEFTICgKKyBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgKCdBJywgMSksICgnQScs IDIpLAorICAoJ0InLCAzKSwgKCdCJywgNCkKKyApIEFTIHQoZ2lkLCBpZCkKKykKK1NFTEVDVCBn aWQsIGlkLCBhcnJheV9hZ2coaWQpIE9WRVIgdworRlJPTSBkYXRhCitXSU5ET1cgdyBBUyAoCisg UEFSVElUSU9OIEJZIGdpZAorIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgMiBGT0xMT1dJ TkcKKyBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgUEFUVEVSTiAoQSspCisgREVGSU5F IEEgQVMgaWQgPCAxMAorKTsKKworLS0gTGltaXRlZCBmcmFtZSB3aXRoIGFic29ycHRpb24gdGVz dAorLS0gUm93IDA6IGZyYW1lIFswLDJdLCBjYW4ndCBzZWUgQiBhdCByb3cgMyAtPiBubyBtYXRj aAorLS0gUm93IDE6IGZyYW1lIFsxLDNdLCBjYW4gc2VlIEEgQSBCIC0+IHNob3VsZCBtYXRjaCBy b3dzIDEtMworV0lUSCBmcmFtZV9hYnNvcmJfdGVzdCBBUyAoCisgU0VMRUNUICogRlJPTSAoVkFM VUVTCisgICgwLCAnQScpLCAoMSwgJ0EnKSwgKDIsICdBJyksICgzLCAnQicpCisgKSBBUyB0KGlk LCBmbGFnKQorKQorU0VMRUNUIGlkLCBmbGFnLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1h dGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIGZyYW1l X2Fic29yYl90ZXN0CitXSU5ET1cgdyBBUyAoCisgT1JERVIgQlkgaWQKKyBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIDIgRk9MTE9XSU5HCisgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1Qg Uk9XCisgUEFUVEVSTiAoQSsgQikKKyBERUZJTkUKKyAgQSBBUyBmbGFnID0gJ0EnLAorICBCIEFT IGZsYWcgPSAnQicKKyk7CisKKy0tIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgb2Zmc2V0 IEZPTExPV0lORworU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmlyc3RfdmFsdWUodGRh dGUpIE9WRVIgdywgbGFzdF92YWx1ZSh0ZGF0ZSkgT1ZFUiB3LAorIGNvdW50KCopIE9WRVIgdwor IEZST00gc3RvY2sKKyBXSU5ET1cgdyBBUyAoCisgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyBPUkRF UiBCWSB0ZGF0ZQorIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgMiBGT0xMT1dJTkcKKyBB RlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyBQQVRURVJOIChTVEFSVCBVUCsgRE9XTisp CisgREVGSU5FCisgIFNUQVJUIEFTIFRSVUUsCisgIFVQIEFTIHByaWNlID4gUFJFVihwcmljZSks CisgIERPV04gQVMgcHJpY2UgPCBQUkVWKHByaWNlKQorKTsKKworLS0KKy0tIEFnZ3JlZ2F0ZXMK Ky0tCisKKy0tIHVzaW5nIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworU0VMRUNUIGNv bXBhbnksIHRkYXRlLCBwcmljZSwKKyBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3LAorIGxhc3Rf dmFsdWUocHJpY2UpIE9WRVIgdywKKyBtYXgocHJpY2UpIE9WRVIgdywKKyBtaW4ocHJpY2UpIE9W RVIgdywKKyBzdW0ocHJpY2UpIE9WRVIgdywKKyBhdmcocHJpY2UpIE9WRVIgdywKKyBjb3VudChw cmljZSkgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCitQQVJUSVRJT04gQlkgY29t cGFueQorUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCitB RlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKK0lOSVRJQUwKK1BBVFRFUk4gKFNUQVJUIFVQ KyBET1dOKykKK0RFRklORQorU1RBUlQgQVMgVFJVRSwKK1VQIEFTIHByaWNlID4gUFJFVihwcmlj ZSksCitET1dOIEFTIHByaWNlIDwgUFJFVihwcmljZSkKKyk7CisKKy0tIHVzaW5nIEFGVEVSIE1B VENIIFNLSVAgVE8gTkVYVCBST1cKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsCisgZmly c3RfdmFsdWUocHJpY2UpIE9WRVIgdywKKyBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsCisgbWF4 KHByaWNlKSBPVkVSIHcsCisgbWluKHByaWNlKSBPVkVSIHcsCisgc3VtKHByaWNlKSBPVkVSIHcs CisgYXZnKHByaWNlKSBPVkVSIHcsCisgY291bnQocHJpY2UpIE9WRVIgdworRlJPTSBzdG9jawor V0lORE9XIHcgQVMgKAorUEFSVElUSU9OIEJZIGNvbXBhbnkKK1JPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJP VworSU5JVElBTAorUEFUVEVSTiAoU1RBUlQgVVArIERPV04rKQorREVGSU5FCitTVEFSVCBBUyBU UlVFLAorVVAgQVMgcHJpY2UgPiBQUkVWKHByaWNlKSwKK0RPV04gQVMgcHJpY2UgPCBQUkVWKHBy aWNlKQorKTsKKworLS0gcm93X251bWJlcigpIHdpdGhpbiBSUFIgcmVkdWNlZCBmcmFtZQorU0VM RUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgcm93X251bWJlcigpIE9WRVIgdywgY291bnQoKikg T1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgUEFSVElUSU9OIEJZIGNvbXBhbnkK KyBPUkRFUiBCWSB0ZGF0ZQorIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworIFBBVFRFUk4gKFNU QVJUIFVQKyBET1dOKykKKyBERUZJTkUKKyAgU1RBUlQgQVMgVFJVRSwKKyAgVVAgQVMgcHJpY2Ug PiBQUkVWKHByaWNlKSwKKyAgRE9XTiBBUyBwcmljZSA8IFBSRVYocHJpY2UpCispOworCistLQor LS0gU1FMIEludGVncmF0aW9uOiBKT0lOLCBDVEUsIExBVEVSQUwKKy0tCisKKy0tIEpPSU4gY2Fz ZQorQ1JFQVRFIFRFTVAgVEFCTEUgdDEgKGkgaW50LCB2MSBpbnQpOworQ1JFQVRFIFRFTVAgVEFC TEUgdDIgKGogaW50LCB2MiBpbnQpOworSU5TRVJUIElOVE8gdDEgVkFMVUVTKDEsMTApOworSU5T RVJUIElOVE8gdDEgVkFMVUVTKDEsMTEpOworSU5TRVJUIElOVE8gdDEgVkFMVUVTKDEsMTIpOwor SU5TRVJUIElOVE8gdDIgVkFMVUVTKDIsMTApOworSU5TRVJUIElOVE8gdDIgVkFMVUVTKDIsMTEp OworSU5TRVJUIElOVE8gdDIgVkFMVUVTKDIsMTIpOworCitTRUxFQ1QgKiBGUk9NIHQxLCB0MiBX SEVSRSB0MS52MSA8PSAxMSBBTkQgdDIudjIgPD0gMTE7CisKK1NFTEVDVCAqLCBjb3VudCgqKSBP VkVSIHcgRlJPTSB0MSwgdDIKK1dJTkRPVyB3IEFTICgKKyBQQVJUSVRJT04gQlkgdDEuaQorIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworIElOSVRJQUwK KyBQQVRURVJOIChBKQorIERFRklORQorIEEgQVMgdjEgPD0gMTEgQU5EIHYyIDw9IDExCispOwor CistLSBXSVRIIGNhc2UKK1dJVEggd3N0b2NrIEFTICgKKyAgU0VMRUNUICogRlJPTSBzdG9jayBX SEVSRSB0ZGF0ZSA8ICcyMDIzLTA3LTA4JworKQorU0VMRUNUIHRkYXRlLCBwcmljZSwKK2ZpcnN0 X3ZhbHVlKHRkYXRlKSBPVkVSIHcsCitjb3VudCgqKSBPVkVSIHcKKyBGUk9NIHdzdG9jaworIFdJ TkRPVyB3IEFTICgKKyBQQVJUSVRJT04gQlkgY29tcGFueQorIE9SREVSIEJZIHRkYXRlCisgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgSU5JVElBTAor IFBBVFRFUk4gKFNUQVJUIFVQKyBET1dOKykKKyBERUZJTkUKKyAgU1RBUlQgQVMgVFJVRSwKKyAg VVAgQVMgcHJpY2UgPiBQUkVWKHByaWNlKSwKKyAgRE9XTiBBUyBwcmljZSA8IFBSRVYocHJpY2Up CispOworCistLSBSZVNjYW4gdGVzdDogTEFURVJBTCBqb2luIGZvcmNlcyBXaW5kb3dBZ2cgcmVz Y2FuIHdpdGggUlBSCistLSBUZXN0cyBFeGVjUmVTY2FuV2luZG93QWdnIGNsZWFyaW5nIG5hdl9z bG90CitTRUxFQ1QgZy54LCBzdWIuKgorRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMikgZyh4KSwK K0xBVEVSQUwgKAorICBTRUxFQ1QgaWQsIHByaWNlLCBjb3VudCgqKSBPVkVSIHcgQVMgYworICBG Uk9NIChWQUxVRVMgKDEsIDEwMCksICgyLCAyMDApLCAoMywgMTUwKSkgQVMgdChpZCwgcHJpY2Up CisgIFdIRVJFIGlkIDw9IGcueCArIDEKKyAgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlk CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgUEFUVEVSTiAoU1RBUlQgVVArKQorICAgIERFRklORQorICAgICAgU1RBUlQgQVMgVFJVRSwK KyAgICAgIFVQIEFTIHByaWNlID4gUFJFVihwcmljZSkKKyAgKQorKSBzdWIKK09SREVSIEJZIGcu eCwgc3ViLmlkOworCistLSBQUkVWIGhhcyBtdWx0aXBsZSBjb2x1bW4gcmVmZXJlbmNlCitDUkVB VEUgVEVNUCBUQUJMRSBycHIxIChpZCBJTlRFR0VSLCBpIFNFUklBTCwgaiBJTlRFR0VSKTsKK0lO U0VSVCBJTlRPIHJwcjEoaWQsIGopIFNFTEVDVCAxLCBnKjIgRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwgMTApIEFTIGc7CitTRUxFQ1QgaWQsIGksIGosIGNvdW50KCopIE9WRVIgdworIEZST00gcnBy MQorIFdJTkRPVyB3IEFTICgKKyBQQVJUSVRJT04gQlkgaWQKKyBPUkRFUiBCWSBpCisgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgQUZURVIgTUFUQ0gg U0tJUCBQQVNUIExBU1QgUk9XCisgSU5JVElBTAorIFBBVFRFUk4gKFNUQVJUIENPTkQrKQorIERF RklORQorICBTVEFSVCBBUyBUUlVFLAorICBDT05EIEFTIFBSRVYoaSArIGogKyAxKSA8IDEwCisp OworCistLQorLS0gTGFyZ2Utc2NhbGUgLyBzY2FsYWJpbGl0eSB0ZXN0cworLS0KKworLS0gU21v a2UgdGVzdCBmb3IgbGFyZ2VyIHBhcnRpdGlvbnMuCitXSVRIIHMgQVMgKAorIFNFTEVDVCB2LCBj b3VudCgqKSBPVkVSIHcgQVMgYworIEZST00gKFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwgNTAw MCkgdikKKyBXSU5ET1cgdyBBUyAoCisgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgSU5J VElBTAorICBQQVRURVJOICggcisgKQorICBERUZJTkUgciBBUyBUUlVFCisgKQorKQorLS0gU2hv dWxkIGJlIGV4YWN0bHkgb25lIGxvbmcgbWF0Y2ggYWNyb3NzIGFsbCByb3dzLgorU0VMRUNUICog RlJPTSBzIFdIRVJFIGMgPiAwOworCitXSVRIIHMgQVMgKAorIFNFTEVDVCB2LCBjb3VudCgqKSBP VkVSIHcgQVMgYworIEZST00gKFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwgNTAwMCkgdikKKyBX SU5ET1cgdyBBUyAoCisgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgSU5JVElBTAorICBQ QVRURVJOICggciApCisgIERFRklORSByIEFTIFRSVUUKKyApCispCistLSBFdmVyeSByb3cgc2hv dWxkIGJlIGl0cyBvd24gbWF0Y2guCitTRUxFQ1QgY291bnQoKikgRlJPTSBzIFdIRVJFIGMgPiAw OworCistLSBMYXJnZSBwYXJ0aXRpb24gdGVzdDogMTAwSyByb3dzIHdpdGggQSsgQiogQ3sxMDAw MCx9IHBhdHRlcm4KKy0tIFRlc3RzIHRoYXQgaW50MzIgY291bnQgZG9lc24ndCBvdmVyZmxvdyB3 aXRoIGxhcmdlIHJlcGV0aXRpb25zCitXSVRIIGRhdGEgQVMgKAorIFNFTEVDVCBnZW5lcmF0ZV9z ZXJpZXMoMCwgMTAwMDAwKSBBUyB2CispLAorcmVzdWx0IEFTICgKKyBTRUxFQ1QgdiwKKyAgICAg ICAgY291bnQoKikgT1ZFUiB3IEFTIG1hdGNoX2xlbiwKKyAgICAgICAgZmlyc3RfdmFsdWUodikg T1ZFUiB3IEFTIG1hdGNoX2ZpcnN0LAorICAgICAgICBsYXN0X3ZhbHVlKHYpIE9WRVIgdyBBUyBt YXRjaF9sYXN0CisgRlJPTSBkYXRhCisgV0lORE9XIHcgQVMgKAorICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgQUZURVIgTUFUQ0ggU0tJUCBQQVNU IExBU1QgUk9XCisgIElOSVRJQUwKKyAgUEFUVEVSTiAoQSsgQiogQ3sxMDAwMCx9KQorICBERUZJ TkUKKyAgIEEgQVMgdiA8IDMzMzMzLAorICAgQiBBUyB2ID49IDMzMzMzIEFORCB2IDwgNjY2NjYs CisgICBDIEFTIHYgPj0gNjY2NjYgQU5EIHYgPCA5OTk5OQorICkKKykKKy0tIFNob3VsZCBtYXRj aDogQSAoMzMzMzMgcm93cykgKyBCICgzMzMzMyByb3dzKSArIEMgKDMzMzMzIHJvd3MpID0gOTk5 OTkgcm93cworU0VMRUNUIG1hdGNoX2ZpcnN0LCBtYXRjaF9sYXN0LCBtYXRjaF9sZW4gRlJPTSBy ZXN1bHQgV0hFUkUgbWF0Y2hfbGVuID4gMDsKKworLS0gSklUIFBSRVYvTkVYVCBuYXZpZ2F0aW9u IHRlc3Q6IDEwMEsgcm93cyB3aXRoIFBSRVYgaW4gREVGSU5FLgorLS0gRXhlcmNpc2VzIEVFT1Bf UlBSX05BVl9TRVQvUkVTVE9SRSBKSVQgY29kZSBwYXRocyAoaGFzX3Jwcl9uYXYgcmVsb2FkKQor LS0gYXQgc2NhbGUuIFYtc2hhcGU6IHByaWNlIHJpc2VzIHRoZW4gZmFsbHMsIHJlcGVhdGVkIGFj cm9zcyBwYXJ0aXRpb24uCitTRVQgaml0ID0gb247CitTRVQgaml0X2Fib3ZlX2Nvc3QgPSAwOwor V0lUSCBkYXRhIEFTICgKKyBTRUxFQ1QgaSwgYWJzKDUwMDAwIC0gaSkgQVMgcHJpY2UKKyBGUk9N IGdlbmVyYXRlX3NlcmllcygxLCAxMDAwMDApIGkKKyksCityZXN1bHQgQVMgKAorIFNFTEVDVCBp LCBwcmljZSwKKyAgICAgICAgY291bnQoKikgT1ZFUiB3IEFTIG1hdGNoX2xlbiwKKyAgICAgICAg Zmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdyBBUyBtYXRjaF9maXJzdAorIEZST00gZGF0YQorIFdJ TkRPVyB3IEFTICgKKyAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICBJTklUSUFMCisgIFBB VFRFUk4gKERPV04rIFVQKykKKyAgREVGSU5FCisgICBET1dOIEFTIHByaWNlIDwgUFJFVihwcmlj ZSksCisgICBVUCBBUyBwcmljZSA+IFBSRVYocHJpY2UpCisgKQorKQorU0VMRUNUIGNvdW50KCop IEFTIG1hdGNoZWRfcm93cywgbWF4KG1hdGNoX2xlbikgQVMgbG9uZ2VzdF9tYXRjaAorRlJPTSBy ZXN1bHQgV0hFUkUgbWF0Y2hfbGVuID4gMDsKK1JFU0VUIGppdF9hYm92ZV9jb3N0OworUkVTRVQg aml0OworCistLSBKSVQgY29tcG91bmQgbmF2aWdhdGlvbiB0ZXN0CitTRVQgaml0ID0gb247CitT RVQgaml0X2Fib3ZlX2Nvc3QgPSAwOworU0VMRUNUIGNvdW50KCopIEFTIG1hdGNoZWRfcm93cwor RlJPTSAoCisgU0VMRUNUIHYsIGNvdW50KCopIE9WRVIgdyBBUyBtYXRjaF9sZW4KKyBGUk9NIGdl bmVyYXRlX3NlcmllcygxLCAxMDAwKSBBUyB0KHYpCisgV0lORE9XIHcgQVMgKAorICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgQUZURVIgTUFUQ0gg U0tJUCBQQVNUIExBU1QgUk9XCisgIFBBVFRFUk4gKEEgQispCisgIERFRklORSBBIEFTIFRSVUUs IEIgQVMgUFJFVihGSVJTVCh2KSwgMSkgPiAwCisgKQorKSBzdWIgV0hFUkUgbWF0Y2hfbGVuID4g MDsKK1JFU0VUIGppdF9hYm92ZV9jb3N0OworUkVTRVQgaml0OworCistLQorLS0gSUdOT1JFIE5V TExTCistLQorCistLSBubyBOVUxMIHJvd3MgY2FzZS4gVGhlIHJlc3VsdCBzaG91bGQgYmUgaWRl bnRpY2FsIHdpdGggImJhc2ljIHRlc3QgdXNpbmcgUFJFViIKK1NFTEVDVCBjb21wYW55LCB0ZGF0 ZSwgcHJpY2UsIGZpcnN0X3ZhbHVlKHByaWNlKSBJR05PUkUgTlVMTFMgT1ZFUiB3LAorIGxhc3Rf dmFsdWUocHJpY2UpIElHTk9SRSBOVUxMUyBPVkVSIHcsCisgbnRoX3ZhbHVlKHRkYXRlLCAyKSBJ R05PUkUgTlVMTFMgT1ZFUiB3IEFTIG50aF9zZWNvbmQKKyBGUk9NIHN0b2NrCisgV0lORE9XIHcg QVMgKAorIFBBUlRJVElPTiBCWSBjb21wYW55CisgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgSU5JVElBTAorIFBBVFRFUk4gKFNUQVJUIFVQKyBET1dO KykKKyBERUZJTkUKKyAgU1RBUlQgQVMgVFJVRSwKKyAgVVAgQVMgcHJpY2UgPiBQUkVWKHByaWNl KSwKKyAgRE9XTiBBUyBwcmljZSA8IFBSRVYocHJpY2UpCispOworCistLSBudGhfdmFsdWUgd2l0 aCBJR05PUkUgTlVMTFMgb3B0aW9uIHdhbnRzIHRvIGZpbmQgdGhlIHNlY29uZCByb3cgYnV0Cist LSBkdWUgdG8gYSBOVUxMIGluIHRoZSBtaWRkbGUsIGl0IHJldHVybnMgdGhlIHRoaXJkIHJvdy4K K1dJVEggZGF0YSBBUyAoCisgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICgxMCwgMSksICgxMSwg TlVMTCksICgxMiwgMyksICgxMywgNCkKKyAgKSBBUyB0KGdpZCwgaWQpKQorICBTRUxFQ1QgZ2lk LCBpZCwgbnRoX3ZhbHVlKGlkLCAyKSBJR05PUkUgTlVMTFMgT1ZFUiB3IEFTIHNlY29uZF92YWws CisgIGFycmF5X2FnZyhpZCkgT1ZFUiB3CisgIEZST00gZGF0YQorICBXSU5ET1cgdyBBUyAoCisg ICBPUkRFUiBCWSBnaWQKKyAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICBQQVRURVJO IChBKykKKyAgIERFRklORSBBIEFTIGdpZCA8IDEzCisgICk7CisKKy0tIG50aF92YWx1ZSB3aXRo IElHTk9SRSBOVUxMUyBvcHRpb24gd2FudHMgdG8gZmluZCB0aGUgdGhpcmQgcm93IGJ1dAorLS0g ZHVlIHRvIGEgTlVMTCBpbiB0aGUgbWlkZGxlLCBpdCByZWFjaGVzIHRoZSBlbmQgb2YgcmVkdWNl ZCBmcmFtZSBhbmQKKy0tIHJldHVybnMgTlVMTAorV0lUSCBkYXRhIEFTICgKKyBTRUxFQ1QgKiBG Uk9NIChWQUxVRVMKKyAgKDEwLCAxKSwgKDExLCBOVUxMKSwgKDEyLCAzKSwgKDEzLCA0KQorICAp IEFTIHQoZ2lkLCBpZCkpCisgIFNFTEVDVCBnaWQsIGlkLCBudGhfdmFsdWUoaWQsIDMpIElHTk9S RSBOVUxMUyBPVkVSIHcgQVMgdGhyaWRfdmFsLAorICBhcnJheV9hZ2coaWQpIE9WRVIgdworICBG Uk9NIGRhdGEKKyAgV0lORE9XIHcgQVMgKAorICAgT1JERVIgQlkgZ2lkCisgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgIEFGVEVSIE1BVENIIFNL SVAgUEFTVCBMQVNUIFJPVworICAgUEFUVEVSTiAoQSspCisgICBERUZJTkUgQSBBUyBnaWQgPCAx MworICApOworCistLSBudGhfdmFsdWUgYmV5b25kIHJlZHVjZWQgZnJhbWUgd2l0aCBJR05PUkUg TlVMTFMKKy0tIFRlc3RzIGlnbm9yZW51bGxzX2dldGZ1bmNhcmdpbmZyYW1lIGVhcmx5IG91dC1v Zi1mcmFtZSBjaGVjaworU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwKKyBudGhfdmFsdWUo cHJpY2UsIDUpIElHTk9SRSBOVUxMUyBPVkVSIHcgQVMgbnRoXzVfaW4KK0ZST00gc3RvY2sKK1dJ TkRPVyB3IEFTICgKKyBQQVJUSVRJT04gQlkgY29tcGFueQorIE9SREVSIEJZIHRkYXRlCisgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XCisgUEFUVEVSTiAoU1RBUlQgVVArIERPV04rKQorIERFRklO RQorICBTVEFSVCBBUyBUUlVFLAorICBVUCBBUyBwcmljZSA+IFBSRVYocHJpY2UpLAorICBET1dO IEFTIHByaWNlIDwgUFJFVihwcmljZSkKKyk7CisKKy0tIElHTk9SRSBOVUxMUyArIGZpcnN0X3Zh bHVlIHdoZXJlIGZpcnN0IHZhbHVlIGluIHJlZHVjZWQgZnJhbWUgaXMgTlVMTAorV0lUSCBkYXRh IEFTICgKKyBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgKDEsIE5VTEwpLCAoMiwgTlVMTCksICgz LCAzMCksICg0LCA0MCkKKyApIEFTIHQoaWQsIHZhbCkpCitTRUxFQ1QgaWQsIHZhbCwKKyBmaXJz dF92YWx1ZSh2YWwpIElHTk9SRSBOVUxMUyBPVkVSIHcgQVMgZnZfaWdudWxsLAorIGNvdW50KCop IE9WRVIgdworRlJPTSBkYXRhCitXSU5ET1cgdyBBUyAoCisgT1JERVIgQlkgaWQKKyBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyBBRlRFUiBNQVRDSCBT S0lQIFBBU1QgTEFTVCBST1cKKyBQQVRURVJOIChBKykKKyBERUZJTkUgQSBBUyBUUlVFCispOwor CistLSBJR05PUkUgTlVMTFMgKyBhbGwgdmFsdWVzIE5VTEwgaW4gcmVkdWNlZCBmcmFtZQorV0lU SCBkYXRhIEFTICgKKyBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgKDEsIE5VTEwpLCAoMiwgTlVM TCksICgzLCBOVUxMKQorICkgQVMgdChpZCwgdmFsKSkKK1NFTEVDVCBpZCwgdmFsLAorIGZpcnN0 X3ZhbHVlKHZhbCkgSUdOT1JFIE5VTExTIE9WRVIgdyBBUyBmdl9pZ251bGwsCisgbGFzdF92YWx1 ZSh2YWwpIElHTk9SRSBOVUxMUyBPVkVSIHcgQVMgbHZfaWdudWxsLAorIGNvdW50KCopIE9WRVIg dworRlJPTSBkYXRhCitXSU5ET1cgdyBBUyAoCisgT1JERVIgQlkgaWQKKyBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cKKyBQQVRURVJOIChBKykKKyBERUZJTkUgQSBBUyBUUlVFCispOworCistLQor LS0gbGFzdF92YWx1ZSBJR05PUkUgTlVMTFMgd2l0aCByZWR1Y2VkIGZyYW1lIGNvbnRhaW5pbmcg YWxsIE5VTExzCistLSBFeGVyY2lzZXMgaWdub3JlbnVsbHNfZ2V0ZnVuY2FyZ2luZnJhbWUgU0VF S19UQUlMIG91dC1vZi1mcmFtZSBwYXRoCistLSB3aGVuIG5vdG51bGxfcmVscG9zID49IG51bV9y ZWR1Y2VkX2ZyYW1lLgorLS0KK0NSRUFURSBURU1QIFRBQkxFIHJwcl9udWxsdmFsIChpZCBJTlQs IHZhbCBJTlQpOworSU5TRVJUIElOVE8gcnByX251bGx2YWwgVkFMVUVTICgxLCAxMCksICgyLCBO VUxMKSwgKDMsIE5VTEwpLCAoNCwgMjApOworCitTRUxFQ1QgaWQsIHZhbCwKKyAgICAgICBsYXN0 X3ZhbHVlKHZhbCkgSUdOT1JFIE5VTExTIE9WRVIgdyBBUyBsdl9pZ251bGwsCisgICAgICAgY291 bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbnVsbHZhbAorV0lORE9XIHcgQVMgKAorICBP UkRFUiBCWSBpZAorICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgIFBBVFRFUk4gKEEgQisp CisgIERFRklORQorICAgIEEgQVMgdmFsIElTIE5PVCBOVUxMLAorICAgIEIgQVMgdmFsIElTIE5V TEwKKyk7CisKKy0tCistLSBOVUxMIGhhbmRsaW5nCistLQorCitDUkVBVEUgVEVNUCBUQUJMRSBz dG9ja19udWxsIChjb21wYW55IFRFWFQsIHRkYXRlIERBVEUsIHByaWNlIElOVEVHRVIpOworSU5T RVJUIElOVE8gc3RvY2tfbnVsbCBWQUxVRVMgKCdjMScsICcyMDIzLTA3LTAxJywgMTAwKTsKK0lO U0VSVCBJTlRPIHN0b2NrX251bGwgVkFMVUVTICgnYzEnLCAnMjAyMy0wNy0wMicsIE5VTEwpOyAg LS0gTlVMTCBpbiBtaWRkbGUKK0lOU0VSVCBJTlRPIHN0b2NrX251bGwgVkFMVUVTICgnYzEnLCAn MjAyMy0wNy0wMycsIDIwMCk7CitJTlNFUlQgSU5UTyBzdG9ja19udWxsIFZBTFVFUyAoJ2MxJywg JzIwMjMtMDctMDQnLCAxNTApOworCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBjb3Vu dCgqKSBPVkVSIHcgQVMgbWF0Y2hfY291bnQKK0ZST00gc3RvY2tfbnVsbAorV0lORE9XIHcgQVMg KAorICBQQVJUSVRJT04gQlkgY29tcGFueQorICBPUkRFUiBCWSB0ZGF0ZQorICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgUEFUVEVSTiAoU1RBUlQg VVAgRE9XTikKKyAgREVGSU5FIFNUQVJUIEFTIFRSVUUsIFVQIEFTIHByaWNlID4gUFJFVihwcmlj ZSksIERPV04gQVMgcHJpY2UgPAorUFJFVihwcmljZSkKKyk7CisKKy0tIENvbnNlY3V0aXZlIE5V TExzOiBQUkVWIG5hdmlnYXRlcyB0aHJvdWdoIE5VTEwgdmFsdWVzCitDUkVBVEUgVEVNUCBUQUJM RSBycHJfY29uc2VjX251bGwgKGlkIElOVCwgdmFsIElOVCk7CitJTlNFUlQgSU5UTyBycHJfY29u c2VjX251bGwgVkFMVUVTCisgKDEsIDEwMCksICgyLCBOVUxMKSwgKDMsIE5VTEwpLCAoNCwgTlVM TCksICg1LCAyMDApLCAoNiwgMzAwKTsKKworLS0gUFJFVih2YWwpIElTIE5VTEwgc3VjY2VlZHMg Zm9yIGJvdGggbnVsbF9zbG90IChmaXJzdCByb3cpIGFuZCBhY3R1YWwgTlVMTAorU0VMRUNUIGlk LCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX2NvbnNlY19udWxsCitXSU5E T1cgdyBBUyAoCisgT1JERVIgQlkgaWQKKyBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyBQQVRU RVJOIChBIEIrIEMpCisgREVGSU5FCisgIEEgQVMgdmFsIElTIE5VTEwsCisgIEIgQVMgdmFsIElT IE5VTEwgQU5EIFBSRVYodmFsKSBJUyBOVUxMLAorICBDIEFTIHZhbCBJUyBOT1QgTlVMTAorKTsK KworLS0gTkVYVCh2YWwpIHRocm91Z2ggY29uc2VjdXRpdmUgTlVMTHMKK1NFTEVDVCBpZCwgdmFs LCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9jb25zZWNfbnVsbAorV0lORE9XIHcg QVMgKAorIE9SREVSIEJZIGlkCisgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgUEFUVEVSTiAo QSBCKyBDKQorIERFRklORQorICBBIEFTIHZhbCBJUyBOT1QgTlVMTCwKKyAgQiBBUyB2YWwgSVMg TlVMTCBBTkQgTkVYVCh2YWwpIElTIE5VTEwsCisgIEMgQVMgdmFsIElTIE5VTEwgQU5EIE5FWFQo dmFsKSBJUyBOT1QgTlVMTAorKTsKKworRFJPUCBUQUJMRSBycHJfY29uc2VjX251bGw7CisKKy0t ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0gU3RvY2sgU2NlbmFyaW8gVGVzdHMgKDE2MzIgcm93cywgcGFydGl0aW9uZWQgcmVn aW9ucykKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorCistLSBDb25zZWN1dGl2ZSByaXNpbmcgZGF5czogZmluZCBzdHJlYWtz IG9mIDcrIGRheXMKK1NFTEVDVCAqIEZST00gKAorICAgIFNFTEVDVCBmaXJzdF92YWx1ZShybikg T1ZFUiB3IEFTIHN0YXJ0X3JuLAorICAgICAgICAgICBsYXN0X3ZhbHVlKHJuKSBPVkVSIHcgQVMg ZW5kX3JuLAorICAgICAgICAgICBjb3VudCgqKSBPVkVSIHcgQVMgZGF5cworICAgIEZST00gcnBy X3N0b2NrCisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBQQVJUSVRJT04gQlkgcGFydF9pZAor ICAgICAgICBPUkRFUiBCWSBybgorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1Qg Uk9XCisgICAgICAgIFBBVFRFUk4gKFVQezcsfSkKKyAgICAgICAgREVGSU5FIFVQIEFTIHByaWNl ID4gUFJFVihwcmljZSkKKyAgICApCispIHQgV0hFUkUgZGF5cyA+IDAgT1JERVIgQlkgc3RhcnRf cm47CisKKy0tIFYtc2hhcGUgcmVjb3Zlcnk6IDQrIGRheXMgZGVjbGluZSBmb2xsb3dlZCBieSA0 KyBkYXlzIHJpc2UKK1NFTEVDVCAqIEZST00gKAorICAgIFNFTEVDVCBmaXJzdF92YWx1ZShybikg T1ZFUiB3IEFTIHN0YXJ0X3JuLAorICAgICAgICAgICBsYXN0X3ZhbHVlKHJuKSBPVkVSIHcgQVMg ZW5kX3JuLAorICAgICAgICAgICBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3IEFTIHN0YXJ0X3By aWNlLAorICAgICAgICAgICBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcgQVMgZW5kX3ByaWNlLAor ICAgICAgICAgICBjb3VudCgqKSBPVkVSIHcgQVMgZGF5cworICAgIEZST00gcnByX3N0b2NrCisg ICAgV0lORE9XIHcgQVMgKAorICAgICAgICBQQVJUSVRJT04gQlkgcGFydF9pZAorICAgICAgICBP UkRFUiBCWSBybgorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAg ICAgIFBBVFRFUk4gKERFQ0xJTkV7NCx9IFJJU0V7NCx9KQorICAgICAgICBERUZJTkUKKyAgICAg ICAgICAgIERFQ0xJTkUgQVMgcHJpY2UgPCBQUkVWKHByaWNlKSwKKyAgICAgICAgICAgIFJJU0Ug QVMgcHJpY2UgPiBQUkVWKHByaWNlKQorICAgICkKKykgdCBXSEVSRSBkYXlzID4gMCBPUkRFUiBC WSBzdGFydF9ybjsKKworLS0gVy1ib3R0b206IGRlY2xpbmUsIGJvdW5jZSwgcmUtZGVjbGluZSwg cmVjb3ZlcnkKK1NFTEVDVCAqIEZST00gKAorICAgIFNFTEVDVCBmaXJzdF92YWx1ZShybikgT1ZF UiB3IEFTIHN0YXJ0X3JuLAorICAgICAgICAgICBsYXN0X3ZhbHVlKHJuKSBPVkVSIHcgQVMgZW5k X3JuLAorICAgICAgICAgICBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3IEFTIHN0YXJ0X3ByaWNl LAorICAgICAgICAgICBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcgQVMgZW5kX3ByaWNlLAorICAg ICAgICAgICBjb3VudCgqKSBPVkVSIHcgQVMgZGF5cworICAgIEZST00gcnByX3N0b2NrCisgICAg V0lORE9XIHcgQVMgKAorICAgICAgICBQQVJUSVRJT04gQlkgcGFydF9pZAorICAgICAgICBPUkRF UiBCWSBybgorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgICAg IFBBVFRFUk4gKERFQ0xJTkV7Myx9IEJPVU5DRXszLH0gRElQezMsfSBSRUNPVkVSezMsfSkKKyAg ICAgICAgREVGSU5FCisgICAgICAgICAgICBERUNMSU5FIEFTIHByaWNlIDwgUFJFVihwcmljZSks CisgICAgICAgICAgICBCT1VOQ0UgQVMgcHJpY2UgPiBQUkVWKHByaWNlKSwKKyAgICAgICAgICAg IERJUCBBUyBwcmljZSA8IFBSRVYocHJpY2UpLAorICAgICAgICAgICAgUkVDT1ZFUiBBUyBwcmlj ZSA+IFBSRVYocHJpY2UpCisgICAgKQorKSB0IFdIRVJFIGRheXMgPiAwIE9SREVSIEJZIHN0YXJ0 X3JuOworCistLSBWb2x1bWUgc3VyZ2Ugc3RyZWFrOiA2KyBjb25zZWN1dGl2ZSBkYXlzIG9mIGlu Y3JlYXNpbmcgdm9sdW1lCitTRUxFQ1QgKiBGUk9NICgKKyAgICBTRUxFQ1QgZmlyc3RfdmFsdWUo cm4pIE9WRVIgdyBBUyBzdGFydF9ybiwKKyAgICAgICAgICAgbGFzdF92YWx1ZShybikgT1ZFUiB3 IEFTIGVuZF9ybiwKKyAgICAgICAgICAgZmlyc3RfdmFsdWUodm9sdW1lKSBPVkVSIHcgQVMgc3Rh cnRfdm9sLAorICAgICAgICAgICBsYXN0X3ZhbHVlKHZvbHVtZSkgT1ZFUiB3IEFTIGVuZF92b2ws CisgICAgICAgICAgIGNvdW50KCopIE9WRVIgdyBBUyBkYXlzCisgICAgRlJPTSBycHJfc3RvY2sK KyAgICBXSU5ET1cgdyBBUyAoCisgICAgICAgIFBBUlRJVElPTiBCWSBwYXJ0X2lkCisgICAgICAg IE9SREVSIEJZIHJuCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICAgICAgUEFUVEVSTiAoSU5JVCBTVVJHRXs1LH0pCisgICAgICAgIERFRklORQorICAgICAgICAg ICAgU1VSR0UgQVMgdm9sdW1lID4gUFJFVih2b2x1bWUpCisgICAgKQorKSB0IFdIRVJFIGRheXMg PiAwIE9SREVSIEJZIHN0YXJ0X3JuOworCistLSBWb2xhdGlsaXR5IHNxdWVlemU6IGNvbnNlY3V0 aXZlIG5hcnJvd2luZyBvZiBkYWlseSBwcmljZSByYW5nZQorU0VMRUNUICogRlJPTSAoCisgICAg U0VMRUNUIGZpcnN0X3ZhbHVlKHJuKSBPVkVSIHcgQVMgc3RhcnRfcm4sCisgICAgICAgICAgIGxh c3RfdmFsdWUocm4pIE9WRVIgdyBBUyBlbmRfcm4sCisgICAgICAgICAgIGZpcnN0X3ZhbHVlKGhp Z2ggLSBsb3cpIE9WRVIgdyBBUyBzdGFydF9yYW5nZSwKKyAgICAgICAgICAgbGFzdF92YWx1ZSho aWdoIC0gbG93KSBPVkVSIHcgQVMgZW5kX3JhbmdlLAorICAgICAgICAgICBjb3VudCgqKSBPVkVS IHcgQVMgZGF5cworICAgIEZST00gcnByX3N0b2NrCisgICAgV0lORE9XIHcgQVMgKAorICAgICAg ICBQQVJUSVRJT04gQlkgcGFydF9pZAorICAgICAgICBPUkRFUiBCWSBybgorICAgICAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgQUZU RVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgICAgIFBBVFRFUk4gKElOSVQgTkFSUk9X ezUsfSkKKyAgICAgICAgREVGSU5FCisgICAgICAgICAgICBOQVJST1cgQVMgKGhpZ2ggLSBsb3cp IDwgUFJFVihoaWdoKSAtIFBSRVYobG93KQorICAgICkKKykgdCBXSEVSRSBkYXlzID4gMCBPUkRF UiBCWSBzdGFydF9ybjsKKworLS0gR2FwIHVwOiBvcGVuIHNpZ25pZmljYW50bHkgaGlnaGVyIHRo YW4gcHJldmlvdXMgY2xvc2UgKDUlKykKK1NFTEVDVCAqIEZST00gKAorICAgIFNFTEVDVCBmaXJz dF92YWx1ZShybikgT1ZFUiB3IEFTIGdhcF9ybiwKKyAgICAgICAgICAgZmlyc3RfdmFsdWUocHJp Y2UpIE9WRVIgdyBBUyBwcmV2X2Nsb3NlLAorICAgICAgICAgICBsYXN0X3ZhbHVlKG9wZW4pIE9W RVIgdyBBUyBnYXBfb3BlbiwKKyAgICAgICAgICAgY291bnQoKikgT1ZFUiB3IEFTIGNudAorICAg IEZST00gcnByX3N0b2NrCisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBQQVJUSVRJT04gQlkg cGFydF9pZAorICAgICAgICBPUkRFUiBCWSBybgorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQ QVNUIExBU1QgUk9XCisgICAgICAgIFBBVFRFUk4gKFBSRVZfREFZIEdBUF9VUCkKKyAgICAgICAg REVGSU5FCisgICAgICAgICAgICBHQVBfVVAgQVMgb3BlbiA+IFBSRVYocHJpY2UpICogMS4wNQor ICAgICkKKykgdCBXSEVSRSBjbnQgPiAwIE9SREVSIEJZIGdhcF9ybjsKKworLS0gUHJpY2Utdm9s dW1lIGRpdmVyZ2VuY2U6IHByaWNlIHJpc2luZyB3aGlsZSB2b2x1bWUgZGVjbGluaW5nIChiZWFy aXNoIHNpZ25hbCkKK1NFTEVDVCAqIEZST00gKAorICAgIFNFTEVDVCBmaXJzdF92YWx1ZShybikg T1ZFUiB3IEFTIHN0YXJ0X3JuLAorICAgICAgICAgICBsYXN0X3ZhbHVlKHJuKSBPVkVSIHcgQVMg ZW5kX3JuLAorICAgICAgICAgICBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3IEFTIHN0YXJ0X3By aWNlLAorICAgICAgICAgICBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcgQVMgZW5kX3ByaWNlLAor ICAgICAgICAgICBjb3VudCgqKSBPVkVSIHcgQVMgZGF5cworICAgIEZST00gcnByX3N0b2NrCisg ICAgV0lORE9XIHcgQVMgKAorICAgICAgICBQQVJUSVRJT04gQlkgcGFydF9pZAorICAgICAgICBP UkRFUiBCWSBybgorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAg ICAgIFBBVFRFUk4gKElOSVQgRElWRVJHRXszLH0pCisgICAgICAgIERFRklORQorICAgICAgICAg ICAgRElWRVJHRSBBUyBwcmljZSA+IFBSRVYocHJpY2UpIEFORCB2b2x1bWUgPCBQUkVWKHZvbHVt ZSkKKyAgICApCispIHQgV0hFUkUgZGF5cyA+IDAgT1JERVIgQlkgc3RhcnRfcm47CisKKy0tIENv bnNvbGlkYXRpb24gdGhlbiBicmVha291dDogc2lkZXdheXMgbW92ZW1lbnQgZm9sbG93ZWQgYnkg c2hhcnAgcmlzZQorU0VMRUNUICogRlJPTSAoCisgICAgU0VMRUNUIGZpcnN0X3ZhbHVlKHJuKSBP VkVSIHcgQVMgc3RhcnRfcm4sCisgICAgICAgICAgIGxhc3RfdmFsdWUocm4pIE9WRVIgdyBBUyBl bmRfcm4sCisgICAgICAgICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcgQVMgc3RhcnRfcHJp Y2UsCisgICAgICAgICAgIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdyBBUyBlbmRfcHJpY2UsCisg ICAgICAgICAgIGNvdW50KCopIE9WRVIgdyBBUyBkYXlzCisgICAgRlJPTSBycHJfc3RvY2sKKyAg ICBXSU5ET1cgdyBBUyAoCisgICAgICAgIFBBUlRJVElPTiBCWSBwYXJ0X2lkCisgICAgICAgIE9S REVSIEJZIHJuCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICAg ICAgUEFUVEVSTiAoRkxBVHs1LH0gQlJFQUtPVVQpCisgICAgICAgIERFRklORQorICAgICAgICAg ICAgRkxBVCBBUyBwcmljZSBCRVRXRUVOIFBSRVYocHJpY2UpICogMC45OCBBTkQgUFJFVihwcmlj ZSkgKiAxLjAyLAorICAgICAgICAgICAgQlJFQUtPVVQgQVMgcHJpY2UgPiBQUkVWKHByaWNlKSAq IDEuMDUKKyAgICApCispIHQgV0hFUkUgZGF5cyA+IDAgT1JERVIgQlkgc3RhcnRfcm47CisKKy0t IERlYWQgY2F0IGJvdW5jZTogZGVjbGluZSBmb2xsb3dlZCBieSB3ZWFrIHJlY292ZXJ5ICg8MSUg cGVyIGRheSkKK1NFTEVDVCAqIEZST00gKAorICAgIFNFTEVDVCBmaXJzdF92YWx1ZShybikgT1ZF UiB3IEFTIHN0YXJ0X3JuLAorICAgICAgICAgICBsYXN0X3ZhbHVlKHJuKSBPVkVSIHcgQVMgZW5k X3JuLAorICAgICAgICAgICBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3IEFTIHN0YXJ0X3ByaWNl LAorICAgICAgICAgICBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcgQVMgZW5kX3ByaWNlLAorICAg ICAgICAgICBjb3VudCgqKSBPVkVSIHcgQVMgZGF5cworICAgIEZST00gcnByX3N0b2NrCisgICAg V0lORE9XIHcgQVMgKAorICAgICAgICBQQVJUSVRJT04gQlkgcGFydF9pZAorICAgICAgICBPUkRF UiBCWSBybgorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgICAg IFBBVFRFUk4gKERFQ0xJTkV7NCx9IEJPVU5DRXszLH0pCisgICAgICAgIERFRklORQorICAgICAg ICAgICAgREVDTElORSBBUyBwcmljZSA8IFBSRVYocHJpY2UpLAorICAgICAgICAgICAgQk9VTkNF IEFTIHByaWNlID4gUFJFVihwcmljZSkgQU5EIHByaWNlIDwgUFJFVihwcmljZSkgKiAxLjAxCisg ICAgKQorKSB0IFdIRVJFIGRheXMgPiAwIE9SREVSIEJZIHN0YXJ0X3JuOworCistLSBVcHRyZW5k OiA3KyBjb25zZWN1dGl2ZSBkYXlzIG9mIGhpZ2hlciBoaWdocyBBTkQgaGlnaGVyIGxvd3MKK1NF TEVDVCAqIEZST00gKAorICAgIFNFTEVDVCBmaXJzdF92YWx1ZShybikgT1ZFUiB3IEFTIHN0YXJ0 X3JuLAorICAgICAgICAgICBsYXN0X3ZhbHVlKHJuKSBPVkVSIHcgQVMgZW5kX3JuLAorICAgICAg ICAgICBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3IEFTIHN0YXJ0X3ByaWNlLAorICAgICAgICAg ICBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcgQVMgZW5kX3ByaWNlLAorICAgICAgICAgICBjb3Vu dCgqKSBPVkVSIHcgQVMgZGF5cworICAgIEZST00gcnByX3N0b2NrCisgICAgV0lORE9XIHcgQVMg KAorICAgICAgICBQQVJUSVRJT04gQlkgcGFydF9pZAorICAgICAgICBPUkRFUiBCWSBybgorICAg ICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgICAgIFBBVFRFUk4gKFVQ VFJFTkR7Nyx9KQorICAgICAgICBERUZJTkUKKyAgICAgICAgICAgIFVQVFJFTkQgQVMgaGlnaCA+ IFBSRVYoaGlnaCkgQU5EIGxvdyA+IFBSRVYobG93KQorICAgICkKKykgdCBXSEVSRSBkYXlzID4g MCBPUkRFUiBCWSBzdGFydF9ybjsKKworLS0gUGFuaWMgYW5kIHNuYXAtYmFjazogMyUrIGRhaWx5 IGRyb3BzIGZvbGxvd2VkIGJ5IDIlKyByZWJvdW5kCitTRUxFQ1QgKiBGUk9NICgKKyAgICBTRUxF Q1QgZmlyc3RfdmFsdWUocm4pIE9WRVIgdyBBUyBzdGFydF9ybiwKKyAgICAgICAgICAgbGFzdF92 YWx1ZShybikgT1ZFUiB3IEFTIGVuZF9ybiwKKyAgICAgICAgICAgZmlyc3RfdmFsdWUocHJpY2Up IE9WRVIgdyBBUyBzdGFydF9wcmljZSwKKyAgICAgICAgICAgbGFzdF92YWx1ZShwcmljZSkgT1ZF UiB3IEFTIGVuZF9wcmljZSwKKyAgICAgICAgICAgY291bnQoKikgT1ZFUiB3IEFTIGRheXMKKyAg ICBGUk9NIHJwcl9zdG9jaworICAgIFdJTkRPVyB3IEFTICgKKyAgICAgICAgUEFSVElUSU9OIEJZ IHBhcnRfaWQKKyAgICAgICAgT1JERVIgQlkgcm4KKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIEFGVEVSIE1BVENIIFNLSVAg UEFTVCBMQVNUIFJPVworICAgICAgICBQQVRURVJOIChQQU5JQ3syLH0gU05BUCkKKyAgICAgICAg REVGSU5FCisgICAgICAgICAgICBQQU5JQyBBUyBwcmljZSA8IFBSRVYocHJpY2UpICogMC45NywK KyAgICAgICAgICAgIFNOQVAgQVMgcHJpY2UgPiBQUkVWKHByaWNlKSAqIDEuMDIKKyAgICApCisp IHQgV0hFUkUgZGF5cyA+IDAgT1JERVIgQlkgc3RhcnRfcm47CisKKy0tIFZvbHVtZSBjbGltYXgg cmV2ZXJzYWw6IHVwdHJlbmQsIHZvbHVtZSBzcGlrZSAoMS41eCksIHRoZW4gZGVjbGluZQorU0VM RUNUICogRlJPTSAoCisgICAgU0VMRUNUIGZpcnN0X3ZhbHVlKHJuKSBPVkVSIHcgQVMgc3RhcnRf cm4sCisgICAgICAgICAgIGxhc3RfdmFsdWUocm4pIE9WRVIgdyBBUyBlbmRfcm4sCisgICAgICAg ICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcgQVMgc3RhcnRfcHJpY2UsCisgICAgICAgICAg IGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdyBBUyBlbmRfcHJpY2UsCisgICAgICAgICAgIGNvdW50 KCopIE9WRVIgdyBBUyBkYXlzCisgICAgRlJPTSBycHJfc3RvY2sKKyAgICBXSU5ET1cgdyBBUyAo CisgICAgICAgIFBBUlRJVElPTiBCWSBwYXJ0X2lkCisgICAgICAgIE9SREVSIEJZIHJuCisgICAg ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg ICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICAgICAgUEFUVEVSTiAoUkFM TFl7Myx9IENMSU1BWCBTRUxMT0ZGezIsfSkKKyAgICAgICAgREVGSU5FCisgICAgICAgICAgICBS QUxMWSBBUyBwcmljZSA+IFBSRVYocHJpY2UpLAorICAgICAgICAgICAgQ0xJTUFYIEFTIHZvbHVt ZSA+IFBSRVYodm9sdW1lKSAqIDEuNSwKKyAgICAgICAgICAgIFNFTExPRkYgQVMgcHJpY2UgPCBQ UkVWKHByaWNlKQorICAgICkKKykgdCBXSEVSRSBkYXlzID4gMCBPUkRFUiBCWSBzdGFydF9ybjsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbCBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Jwcl9iYXNlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uODZlZDA2ZmVjNjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9ycHJfYmFzZS5zcWwKQEAgLTAsMCArMSw0MTMwIEBACistLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFJQUiBCYXNl IFRlc3RzCistLSBUZXN0cyBmb3IgUm93IFBhdHRlcm4gUmVjb2duaXRpb24gKElTTy9JRUMgMTkw NzUtNToyMDE2KQorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CistLQorLS0gUGFyc2VyIExheWVyOgorLS0gICBLZXl3b3JkIFVz YWdlIFRlc3RzCistLSAgIERFRklORSBDbGF1c2UgVGVzdHMKKy0tICAgRlJBTUUgT3B0aW9ucyBU ZXN0cworLS0gICBQQVJUSVRJT04gQlkgKyBGUkFNRSBUZXN0cworLS0gICBQQVRURVJOIFN5bnRh eCBUZXN0cworLS0gICBRdWFudGlmaWVycyBUZXN0cworLS0gICBOYXZpZ2F0aW9uIEZ1bmN0aW9u cyBUZXN0cworLS0gICBTS0lQIFRPIC8gSU5JVElBTCBUZXN0cworLS0gICBTZXJpYWxpemF0aW9u L0Rlc2VyaWFsaXphdGlvbiBUZXN0cyAob2JqZWN0cyBrZXB0IGZvciBwZ191cGdyYWRlL3BnX2R1 bXApCistLSAgIEVycm9yIENhc2VzIFRlc3RzCistLSAgIFdpbmRvdyBEZWR1cGxpY2F0aW9uIFRl c3RzCistLQorLS0gUGxhbm5lciBMYXllcjoKKy0tICAgUGF0dGVybiBPcHRpbWl6YXRpb24gVGVz dHMKKy0tICAgQWJzb3JwdGlvbiBGbGFnIERpc3BsYXkgVGVzdHMKKy0tICAgQWJzb3JwdGlvbiBB bmFseXNpcyBUZXN0cworLS0gICBFZGdlIENhc2UgVGVzdHMKKy0tICAgT3B0aW1pemF0aW9uIEZh bGxiYWNrIFRlc3RzCistLSAgIFBsYW5uZXIgSW50ZWdyYXRpb24gVGVzdHMKKy0tICAgU3VicXVl cnkgYW5kIENURSBUZXN0cworLS0gICBKT0lOIFRlc3RzCistLSAgIENvbXBsZXggRXhwcmVzc2lv biBUZXN0cworLS0gICBTZXQgT3BlcmF0aW9ucyBUZXN0cworLS0gICBTb3J0aW5nIGFuZCBHcm91 cGluZyBUZXN0cworLS0gICBTUUwgRnVuY3Rpb24gSW5saW5pbmcgVGVzdHMKKy0tICAgU3RyZXNz IFRlc3RzCistLSAgIEVycm9yIExpbWl0IFRlc3RzCistLQorLS0gQ29udHJpYnV0ZWQgVGVzdHM6 CistLSAgIEphY29iJ3MgUGF0dGVybnMKKy0tICAgUGF0aG9sb2dpY2FsIFBhdHRlcm5zCistLSA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKworU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSBXQVJOSU5HOworCistLSA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEtl eXdvcmQgVXNhZ2UgVGVzdHMKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorCistLSBSUFIga2V5d29yZHMgYXMgY29sdW1uIG5h bWVzCistLSBLZXl3b3JkczogZGVmaW5lLCBpbml0aWFsLCBwYXN0LCBwYXR0ZXJuLCBzZWVrCisK K0NSRUFURSBUQUJMRSBycHJfa2V5d29yZHMgKAorICAgIGlkIElOVCwKKyAgICBkZWZpbmUgSU5U LCAgICAgIC0tIERFRklORSBrZXl3b3JkCisgICAgaW5pdGlhbCBJTlQsICAgICAtLSBJTklUSUFM IGtleXdvcmQKKyAgICBwYXN0IElOVCwgICAgICAgIC0tIFBBU1Qga2V5d29yZAorICAgIHBhdHRl cm4gSU5ULCAgICAgLS0gUEFUVEVSTiBrZXl3b3JkCisgICAgc2VlayBJTlQsICAgICAgICAtLSBT RUVLIGtleXdvcmQKKyAgICBza2lwIElOVCAgICAgICAgIC0tIFNLSVAga2V5d29yZCAocHJlLWV4 aXN0aW5nKQorKTsKKworSU5TRVJUIElOVE8gcnByX2tleXdvcmRzIFZBTFVFUyAoMSwgMTAsIDIw LCAzMCwgNDAsIDUwLCA2MCk7CisKK1NFTEVDVCBpZCwgZGVmaW5lLCBpbml0aWFsLCBwYXN0LCBw YXR0ZXJuLCBzZWVrLCBza2lwCitGUk9NIHJwcl9rZXl3b3JkcworT1JERVIgQlkgaWQ7CisKK0RS T1AgVEFCTEUgcnByX2tleXdvcmRzOworCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIERFRklORSBDbGF1c2UgVGVzdHMK Ky0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorCisKKy0tIFNpbXBsZSBjb2x1bW4gcmVmZXJlbmNlcworQ1JFQVRFIFRBQkxFIHN0 b2NrX3ByaWNlICgKKyAgICBkdCBEQVRFLAorICAgIHN5bWJvbCBURVhULAorICAgIHByaWNlIE5V TUVSSUMsCisgICAgdm9sdW1lIElOVAorKTsKKworSU5TRVJUIElOVE8gc3RvY2tfcHJpY2UgVkFM VUVTCisgICAgKCcyMDI0LTAxLTAxJywgJ0FBUEwnLCAxNTAsIDEwMDApLAorICAgICgnMjAyNC0w MS0wMicsICdBQVBMJywgMTU1LCAxMjAwKSwKKyAgICAoJzIwMjQtMDEtMDMnLCAnQUFQTCcsIDE1 MiwgOTAwKSwKKyAgICAoJzIwMjQtMDEtMDQnLCAnQUFQTCcsIDE2MCwgMTUwMCksCisgICAgKCcy MDI0LTAxLTA1JywgJ0FBUEwnLCAxNTgsIDExMDApOworCistLSBTaW1wbGUgY29sdW1uIHJlZmVy ZW5jZQorU0VMRUNUIGR0LCBwcmljZSwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBzdG9j a19wcmljZQorV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBzeW1ib2wKKyAgICBPUkRF UiBCWSBkdAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIFBBVFRFUk4gKFVQKykKKyAgICBERUZJTkUgVVAgQVMgcHJpY2UgPiAxNTAKKykK K09SREVSIEJZIGR0OworCistLSBNdWx0aXBsZSBjb2x1bW4gcmVmZXJlbmNlcworU0VMRUNUIGR0 LCBwcmljZSwgdm9sdW1lLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHN0b2NrX3ByaWNl CitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIHN5bWJvbAorICAgIE9SREVSIEJZIGR0 CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgUEFUVEVSTiAoR09PRCspCisgICAgREVGSU5FIEdPT0QgQVMgcHJpY2UgPiAxNTAgQU5EIHZv bHVtZSA+IDEwMDAKKykKK09SREVSIEJZIGR0OworCistLSBFeHByZXNzaW9uIGluIERFRklORQor U0VMRUNUIGR0LCBwcmljZSwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBzdG9ja19wcmlj ZQorV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBzeW1ib2wKKyAgICBPUkRFUiBCWSBk dAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIFBBVFRFUk4gKEhJR0grKQorICAgIERFRklORSBISUdIIEFTIHByaWNlICogMS4xID4gMTY1 CispCitPUkRFUiBCWSBkdDsKKworLS0gQXJpdGhtZXRpYyBhbmQgZnVuY3Rpb25zCitTRUxFQ1Qg ZHQsIHByaWNlLCB2b2x1bWUsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gc3RvY2tfcHJp Y2UKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgc3ltYm9sCisgICAgT1JERVIgQlkg ZHQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBQQVRURVJOIChDQUxDKykKKyAgICBERUZJTkUgQ0FMQyBBUyAocHJpY2UgKyB2b2x1bWUg LyAxMDApID4gMTYwCispCitPUkRFUiBCWSBkdDsKKworRFJPUCBUQUJMRSBzdG9ja19wcmljZTsK KworLS0gQXV0by1nZW5lcmF0ZWQgREVGSU5FCitDUkVBVEUgVEFCTEUgcnByX2F1dG8gKGlkIElO VCwgdmFsIElOVCk7CitJTlNFUlQgSU5UTyBycHJfYXV0byBWQUxVRVMgKDEsIDEwKSwgKDIsIDIw KSwgKDMsIDMwKSwgKDQsIDE1KTsKKworLS0gT25lIHZhcmlhYmxlIHVuZGVmaW5lZCAoQiBhdXRv LWdlbmVyYXRlZCBhcyAiQiBJUyBUUlVFIikKK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVS IHcgYXMgY250CitGUk9NIHJwcl9hdXRvCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBQQVRURVJOIChBKyBCKikKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAxNQorKQorT1JERVIgQlkg aWQ7CisKKy0tIE11bHRpcGxlIHVuZGVmaW5lZCB2YXJpYWJsZXMKK1NFTEVDVCBpZCwgdmFsLCBD T1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9hdXRvCitXSU5ET1cgdyBBUyAoCisgICAg T1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIgQykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCisg ICAgLS0gQiBhbmQgQyBhdXRvLWdlbmVyYXRlZCBhcyAiQiBJUyBUUlVFIiwgIkMgSVMgVFJVRSIK KykKK09SREVSIEJZIGlkOworCistLSBBbGwgdmFyaWFibGVzIGRlZmluZWQgZXhwbGljaXRseQor U0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX2F1dG8KK1dJ TkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKFggWSBaKQorICAgIERFRklO RQorICAgICAgICBYIEFTIHZhbCA+IDEwLAorICAgICAgICBZIEFTIHZhbCA+IDIwLAorICAgICAg ICBaIEFTIHZhbCA8IDIwCispCitPUkRFUiBCWSBpZDsKKworRFJPUCBUQUJMRSBycHJfYXV0bzsK KworLS0gRHVwbGljYXRlIHZhcmlhYmxlIG5hbWVzCitDUkVBVEUgVEFCTEUgcnByX2R1cCAoaWQg SU5UKTsKK0lOU0VSVCBJTlRPIHJwcl9kdXAgVkFMVUVTICgxKSwgKDIpOworCistLSBEdXBsaWNh dGUgREVGSU5FIGVudHJpZXMKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZST00gcnByX2R1cAor V0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5F IEEgQVMgaWQgPiAwLCBBIEFTIGlkIDwgMTAKKyk7CistLSBFeHBlY3RlZDogRVJST1I6IHJvdyBw YXR0ZXJuIGRlZmluaXRpb24gdmFyaWFibGUgbmFtZSAiYSIgYXBwZWFycyBtb3JlIHRoYW4gb25j ZSBpbiBERUZJTkUgY2xhdXNlCisKK0RST1AgVEFCTEUgcnByX2R1cDsKKworLS0gQm9vbGVhbiBj b2VyY2lvbgorQ1JFQVRFIFRBQkxFIHJwcl9ib29sIChpZCBJTlQsIGZsYWcgQk9PTEVBTik7CitJ TlNFUlQgSU5UTyBycHJfYm9vbCBWQUxVRVMgKDEsIHRydWUpLCAoMiwgZmFsc2UpOworCistLSBO b24tYm9vbGVhbiBleHByZXNzaW9uCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CitGUk9NIHJwcl9i b29sCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBE RUZJTkUgQSBBUyBpZAorKTsKKy0tIEV4cGVjdGVkOiBFUlJPUjogYXJndW1lbnQgb2YgREVGSU5F IG11c3QgYmUgdHlwZSBib29sZWFuCisKKy0tIEJvb2xlYW4gY29sdW1uIHJlZmVyZW5jZQorU0VM RUNUIGlkLCBmbGFnLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9ib29sCitXSU5E T1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChUKykKKyAgICBERUZJTkUgVCBB UyBmbGFnCispCitPUkRFUiBCWSBpZDsKKworLS0gTlVMTDo6Ym9vbGVhbgorU0VMRUNUIGlkLCBD T1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9ib29sCitXSU5ET1cgdyBBUyAoCisgICAg T1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBQQVRURVJOIChOKykKKyAgICBERUZJTkUgTiBBUyBOVUxMOjpib29sZWFu CispCitPUkRFUiBCWSBpZDsKKworLS0gSW1wbGljaXQgY2FzdCB0byBib29sZWFuIHZpYSBjdXN0 b20gdHlwZQorQ1JFQVRFIFRZUEUgdHJ1dGh5aW50IEFTICh2IGludCk7CitDUkVBVEUgRlVOQ1RJ T04gdHJ1dGh5aW50X3RvX2Jvb2wodHJ1dGh5aW50KSBSRVRVUk5TIGJvb2xlYW4gQVMgJCQKKyAg U0VMRUNUICgkMSkudiA8PiAwOworJCQgTEFOR1VBR0UgU1FMIElNTVVUQUJMRSBTVFJJQ1Q7CitD UkVBVEUgQ0FTVCAodHJ1dGh5aW50IEFTIGJvb2xlYW4pCisgIFdJVEggRlVOQ1RJT04gdHJ1dGh5 aW50X3RvX2Jvb2wodHJ1dGh5aW50KQorICBBUyBBU1NJR05NRU5UOworCitDUkVBVEUgVEFCTEUg cnByX2NvZXJjZSAoaWQgaW50LCB2YWwgdHJ1dGh5aW50KTsKK0lOU0VSVCBJTlRPIHJwcl9jb2Vy Y2UgVkFMVUVTICgxLCBST1coMSkpLCAoMiwgUk9XKDApKSwgKDMsIFJPVyg1KSksICg0LCBST1co MCkpOworCitTRUxFQ1QgaWQsIHZhbCwgY250CitGUk9NIChTRUxFQ1QgaWQsIHZhbCwKKyAgICAg ICAgICAgICBDT1VOVCgqKSBPVkVSIHcgQVMgY250CisgICAgICBGUk9NIHJwcl9jb2VyY2UKKyAg ICAgIFdJTkRPVyB3IEFTICgKKyAgICAgICAgICBPUkRFUiBCWSBpZAorICAgICAgICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgIFBB VFRFUk4gKEErKQorICAgICAgICAgIERFRklORSBBIEFTIHZhbAorICAgICAgKQorKSBzIE9SREVS IEJZIGlkOworCitEUk9QIFRBQkxFIHJwcl9jb2VyY2U7CitEUk9QIENBU1QgKHRydXRoeWludCBB UyBib29sZWFuKTsKK0RST1AgRlVOQ1RJT04gdHJ1dGh5aW50X3RvX2Jvb2wodHJ1dGh5aW50KTsK K0RST1AgVFlQRSB0cnV0aHlpbnQ7CisKK0RST1AgVEFCTEUgcnByX2Jvb2w7CisKKy0tIENvbXBs ZXggZXhwcmVzc2lvbnMKK0NSRUFURSBUQUJMRSBycHJfY29tcGxleCAoaWQgSU5ULCB2YWwxIElO VCwgdmFsMiBJTlQpOworSU5TRVJUIElOVE8gcnByX2NvbXBsZXggVkFMVUVTICgxLCAxMCwgMjAp LCAoMiwgMTUsIDI1KSwgKDMsIDIwLCAzMCk7CisKKy0tIENBU0UgZXhwcmVzc2lvbgorU0VMRUNU IGlkLCB2YWwxLCB2YWwyLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9jb21wbGV4 CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChDKykKKyAgICBERUZJ TkUgQyBBUyBDQVNFIFdIRU4gdmFsMSA+IDEwIFRIRU4gdmFsMiA+IDIwIEVMU0UgZmFsc2UgRU5E CispCitPUkRFUiBCWSBpZDsKKworRFJPUCBUQUJMRSBycHJfY29tcGxleDsKKworLS0gUGF0dGVy biB2YXJpYWJsZSBub3QgaW4gUEFUVEVSTiAoc2hvdWxkIGJlIGlnbm9yZWQpCitDUkVBVEUgVEFC TEUgcnByX3VudXNlZCAoaWQgSU5UKTsKK0lOU0VSVCBJTlRPIHJwcl91bnVzZWQgVkFMVUVTICgx KSwgKDIpOworCistLSBFeHRyYSBERUZJTkUgdmFyaWFibGUKK1NFTEVDVCBpZCwgQ09VTlQoKikg T1ZFUiB3IGFzIGNudAorRlJPTSBycHJfdW51c2VkCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIg QlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBpZCA+IDAsIEIgQVMgaWQgPiA1 ICAtLSBCIG5vdCBpbiBwYXR0ZXJuCispCitPUkRFUiBCWSBpZDsKKworRFJPUCBUQUJMRSBycHJf dW51c2VkOworCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tIEZSQU1FIE9wdGlvbnMgVGVzdHMKKy0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisKK0NS RUFURSBUQUJMRSBycHJfZnJhbWUgKGlkIElOVCwgdmFsIElOVCk7CitJTlNFUlQgSU5UTyBycHJf ZnJhbWUgVkFMVUVTCisgICAgKDEsIDEwKSwgKDIsIDEwKSwgKDMsIDEwKSwgIC0tIFNhbWUgdmFs OiAxMAorICAgICg0LCAyMCksICg1LCAyMCksICAgICAgICAgICAtLSBTYW1lIHZhbDogMjAKKyAg ICAoNiwgMzApOworCistLSBWYWxpZCBmcmFtZSBvcHRpb25zCisKKy0tIFJPV1M6IGNvdW50cyBw aHlzaWNhbCByb3dzICgxIEZPTExPV0lORyA9IG5leHQgMSBwaHlzaWNhbCByb3cpCistLSBFeHBl Y3RlZCByZXN1bHQ6IEVhY2ggcm93IGNhbiBzZWUgMSBwaHlzaWNhbCByb3cgYWhlYWQKKy0tIGlk PTEsMiwzICh2YWw9MTApOiBjYW4gc2VlIG5leHQgcm93IC0+IGNudD0yCistLSBpZD00LDUgKHZh bD0yMCk6IGNhbiBzZWUgbmV4dCByb3cgLT4gY250PTIKKy0tIGlkPTYgKHZhbD0zMCk6IG5vIG5l eHQgcm93IC0+IGNudD0xCistLSBSZXN1bHQ6IFsyLDIsMiwyLDIsMV0KK1NFTEVDVCBpZCwgdmFs LCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9mcmFtZQorV0lORE9XIHcgQVMgKAor ICAgIE9SREVSIEJZIHZhbAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgMSBGT0xM T1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSBC PykKKyAgICBERUZJTkUgQSBBUyB2YWwgPj0gMCwgQiBBUyB2YWwgPj0gMAorKQorT1JERVIgQlkg aWQ7CisKKy0tIEludmFsaWQgZnJhbWUgc3RhcnQgcG9zaXRpb25zCisKKy0tIE5vdCBzdGFydGlu ZyBhdCBDVVJSRU5UIFJPVworU0VMRUNUIENPVU5UKCopIE9WRVIgdworRlJPTSBycHJfZnJhbWUK K1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBVTkJPVU5E RUQgUFJFQ0VESU5HIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisg ICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKKy0tIEV4cGVjdGVkOiBFUlJPUjogRlJBTUUgbXVz dCBzdGFydCBhdCBjdXJyZW50IHJvdyB3aGVuIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGlzIHVz ZWQKKworLS0gRVhDTFVERSBvcHRpb25zCisKKy0tIEVYQ0xVREUgbm90IHBlcm1pdHRlZAorU0VM RUNUIENPVU5UKCopIE9WRVIgdworRlJPTSBycHJfZnJhbWUKK1dJTkRPVyB3IEFTICgKKyAgICBP UkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIEVYQ0xVREUgQ1VSUkVOVCBST1cKKyAgICBQQVRURVJOIChBKykKKyAgICBE RUZJTkUgQSBBUyB2YWwgPiAwCispOworLS0gRXhwZWN0ZWQ6IEVSUk9SOiBjYW5ub3QgdXNlIEVY Q0xVREUgb3B0aW9ucyB3aXRoIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uCisKKy0tIEVYQ0xVREUg R1JPVVAgbm90IHBlcm1pdHRlZAorU0VMRUNUIENPVU5UKCopIE9WRVIgdworRlJPTSBycHJfZnJh bWUKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEVYQ0xVREUgR1JPVVAKKyAgICBQ QVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCispOworLS0gRXhwZWN0ZWQ6IEVS Uk9SOiBjYW5ub3QgdXNlIEVYQ0xVREUgb3B0aW9ucyB3aXRoIHJvdyBwYXR0ZXJuIHJlY29nbml0 aW9uCisKKy0tIEVYQ0xVREUgVElFUyBub3QgcGVybWl0dGVkCitTRUxFQ1QgQ09VTlQoKikgT1ZF UiB3CitGUk9NIHJwcl9mcmFtZQorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgRVhD TFVERSBUSUVTCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsK Ky0tIEV4cGVjdGVkOiBFUlJPUjogY2Fubm90IHVzZSBFWENMVURFIG9wdGlvbnMgd2l0aCByb3cg cGF0dGVybiByZWNvZ25pdGlvbgorCistLSBSQU5HRSBmcmFtZSBub3Qgc3RhcnRpbmcgYXQgQ1VS UkVOVCBST1cKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZST00gcnByX2ZyYW1lCitXSU5ET1cg dyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBSQU5HRSBCRVRXRUVOIFVOQk9VTkRFRCBQUkVD RURJTkcgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJ TkUgQSBBUyB2YWwgPiAwCispOworLS0gRXhwZWN0ZWQ6IEVSUk9SOiBjYW5ub3QgdXNlIEZSQU1F IG9wdGlvbiBSQU5HRSB3aXRoIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uCisKKy0tIEdST1VQUyBm cmFtZSBub3Qgc3RhcnRpbmcgYXQgQ1VSUkVOVCBST1cKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcK K0ZST00gcnByX2ZyYW1lCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBHUk9V UFMgQkVUV0VFTiBVTkJPVU5ERUQgUFJFQ0VESU5HIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKKy0tIEV4cGVjdGVk OiBFUlJPUjogY2Fubm90IHVzZSBGUkFNRSBvcHRpb24gR1JPVVBTIHdpdGggcm93IHBhdHRlcm4g cmVjb2duaXRpb24KKworLS0gU3RhcnRpbmcgd2l0aCBOIFBSRUNFRElORworU0VMRUNUIENPVU5U KCopIE9WRVIgdworRlJPTSBycHJfZnJhbWUKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBp ZAorICAgIFJPV1MgQkVUV0VFTiAxIFBSRUNFRElORyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHZhbCA+IDAKKyk7CistLSBFeHBlY3Rl ZDogRVJST1I6IEZSQU1FIG11c3Qgc3RhcnQgYXQgY3VycmVudCByb3cgd2hlbiByb3cgcGF0dGVy biByZWNvZ25pdGlvbiBpcyB1c2VkCisKKy0tIFN0YXJ0aW5nIHdpdGggTiBGT0xMT1dJTkcKK1NF TEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZST00gcnByX2ZyYW1lCitXSU5ET1cgdyBBUyAoCisgICAg T1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gMSBGT0xMT1dJTkcgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCispOwor LS0gRXhwZWN0ZWQ6IEVSUk9SOiBGUkFNRSBtdXN0IHN0YXJ0IGF0IGN1cnJlbnQgcm93IHdoZW4g cm93IHBhdHRlcm4gcmVjb2duaXRpb24gaXMgdXNlZAorCistLSBGcmFtZSBlbmQgYm91bmQgZWRn ZSBjYXNlcworCistLSBFbmQgYmVmb3JlIHN0YXJ0OiBDVVJSRU5UIFJPVyBBTkQgMSBQUkVDRURJ TkcKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZST00gcnByX2ZyYW1lCitXSU5ET1cgdyBBUyAo CisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDEgUFJF Q0VESU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKKy0t IEV4cGVjdGVkOiBFUlJPUjogZnJhbWUgc3RhcnRpbmcgZnJvbSBjdXJyZW50IHJvdyBjYW5ub3Qg aGF2ZSBwcmVjZWRpbmcgcm93cworCistLSBFbmQgYmVmb3JlIHN0YXJ0OiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIFBSRUNFRElORworU0VMRUNUIENPVU5UKCopIE9WRVIgdworRlJPTSBycHJf ZnJhbWUKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIFBSRUNFRElORworICAgIFBBVFRFUk4gKEErKQorICAg IERFRklORSBBIEFTIHZhbCA+IDAKKyk7CistLSBFeHBlY3RlZDogRVJST1I6IGZyYW1lIGVuZCBj YW5ub3QgYmUgVU5CT1VOREVEIFBSRUNFRElORworCistLSBTaW5nbGUgcm93IGZyYW1lOiBDVVJS RU5UIFJPVyBBTkQgQ1VSUkVOVCBST1cKK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcg YXMgY250CitGUk9NIHJwcl9mcmFtZQorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBDVVJSRU5UIFJPVworICAgIEFGVEVSIE1B VENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBKQorICAgIERFRklORSBBIEFTIHZh bCA+IDAKKykKK09SREVSIEJZIGlkOworCistLSBaZXJvIG9mZnNldDogQ1VSUkVOVCBST1cgQU5E IDAgRk9MTE9XSU5HIChlcXVpdmFsZW50IHRvIENVUlJFTlQgUk9XKQorU0VMRUNUIGlkLCB2YWws IENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX2ZyYW1lCitXSU5ET1cgdyBBUyAoCisg ICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDAgRk9MTE9X SU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEEpCisg ICAgREVGSU5FIEEgQVMgdmFsID4gMAorKQorT1JERVIgQlkgaWQ7CisKKy0tIExhcmdlIG9mZnNl dDogQ1VSUkVOVCBST1cgQU5EIDEwMDAgRk9MTE9XSU5HCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQo KikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfZnJhbWUKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRF UiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgMTAwMCBGT0xMT1dJTkcK KyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSspCisgICAg REVGSU5FIEEgQVMgdmFsID4gMAorKQorT1JERVIgQlkgaWQ7CisKKy0tIE1heGltdW0gb2Zmc2V0 OiBDVVJSRU5UIFJPVyBBTkQgMjE0NzQ4MzY0NiBGT0xMT1dJTkcgKElOVF9NQVggLSAxKQorU0VM RUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX2ZyYW1lCitXSU5E T1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIDIxNDc0ODM2NDYgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJP VworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHZhbCA+IDAKKykKK09SREVSIEJZ IGlkOworCistLSBSQU5HRSBmcmFtZSB3aXRoIFJQUiAobm90IHBlcm1pdHRlZCkKK1NFTEVDVCBp ZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9mcmFtZQorV0lORE9XIHcg QVMgKAorICAgIE9SREVSIEJZIHZhbAorICAgIFJBTkdFIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IDEwIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRU RVJOIChBIEI/KQorICAgIERFRklORSBBIEFTIHZhbCA+PSAwLCBCIEFTIHZhbCA+PSAwCispCitP UkRFUiBCWSBpZDsKKy0tIEV4cGVjdGVkOiBFUlJPUjogY2Fubm90IHVzZSBGUkFNRSBvcHRpb24g UkFOR0Ugd2l0aCByb3cgcGF0dGVybiByZWNvZ25pdGlvbgorCistLSBHUk9VUFMgZnJhbWUgd2l0 aCBSUFIgKG5vdCBwZXJtaXR0ZWQpCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFz IGNudAorRlJPTSBycHJfZnJhbWUKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSB2YWwKKyAg ICBHUk9VUFMgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgMSBGT0xMT1dJTkcKKyAgICBBRlRFUiBN QVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSBCPykKKyAgICBERUZJTkUgQSBB UyB2YWwgPj0gMCwgQiBBUyB2YWwgPj0gMAorKQorT1JERVIgQlkgaWQ7CistLSBFeHBlY3RlZDog RVJST1I6IGNhbm5vdCB1c2UgRlJBTUUgb3B0aW9uIEdST1VQUyB3aXRoIHJvdyBwYXR0ZXJuIHJl Y29nbml0aW9uCisKK0RST1AgVEFCTEUgcnByX2ZyYW1lOworCistLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFBBUlRJVElP TiBCWSArIEZSQU1FIFRlc3RzCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLS0gVGVzdCBQQVJUSVRJT04gQlkgd2l0aCBS UFIgdG8gZW5zdXJlIHByb3BlciBwYXJ0aXRpb25pbmcgYmVoYXZpb3IKK0NSRUFURSBUQUJMRSBy cHJfcGFydGl0aW9uIChpZCBJTlQsIGdycCBJTlQsIHZhbCBJTlQpOworSU5TRVJUIElOVE8gcnBy X3BhcnRpdGlvbiBWQUxVRVMKKyAgICAoMSwgMSwgMTApLCAoMiwgMSwgMjApLCAoMywgMSwgMzAp LAorICAgICg0LCAyLCAxNSksICg1LCAyLCAyNSksICg2LCAyLCAzNSk7CisKKy0tIFBBUlRJVElP TiBCWSB3aXRoIFJPV1MgZnJhbWUKK1NFTEVDVCBpZCwgZ3JwLCB2YWwsIENPVU5UKCopIE9WRVIg dyBhcyBjbnQKK0ZST00gcnByX3BhcnRpdGlvbgorV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElP TiBCWSBncnAKKyAgICBPUkRFUiBCWSB2YWwKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9X CisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyB2YWwgPj0gMTAsIEIgQVMgdmFs ID4gMTUKKykKK09SREVSIEJZIGlkOworLS0gRXhwZWN0ZWQ6IFBhdHRlcm4gbWF0Y2hpbmcgc2hv dWxkIHJlc2V0IGZvciBlYWNoIHBhcnRpdGlvbgorCistLSBQQVJUSVRJT04gQlkgd2l0aCBSQU5H RSBmcmFtZQorU0VMRUNUIGlkLCBncnAsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJP TSBycHJfcGFydGl0aW9uCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGdycAorICAg IE9SREVSIEJZIHZhbAorICAgIFJBTkdFIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDEwIEZPTExP V0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBIEI/ KQorICAgIERFRklORSBBIEFTIHZhbCA+PSAxMCwgQiBBUyB2YWwgPj0gMjAKKykKK09SREVSIEJZ IGlkOworLS0gRXhwZWN0ZWQ6IEVSUk9SOiBjYW5ub3QgdXNlIEZSQU1FIG9wdGlvbiBSQU5HRSB3 aXRoIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uCisKK0RST1AgVEFCTEUgcnByX3BhcnRpdGlvbjsK KworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLSBQQVRURVJOIFN5bnRheCBUZXN0cworLS0gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKworQ1JFQVRFIFRB QkxFIHJwcl9wYXR0ZXJuIChpZCBJTlQsIHZhbCBJTlQpOworSU5TRVJUIElOVE8gcnByX3BhdHRl cm4gVkFMVUVTCisgICAgKDEsIDUpLCAoMiwgMTApLCAoMywgMTUpLCAoNCwgMjApLCAoNSwgMjUp LAorICAgICg2LCAzMCksICg3LCAzNSksICg4LCA0MCksICg5LCA0NSksICgxMCwgNTApOworCist LSBBbHRlcm5hdGlvbiAofCkKKworLS0gTXVsdGlwbGUgYWx0ZXJuYXRpdmVzCitTRUxFQ1QgaWQs IHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfcGF0dGVybgorV0lORE9XIHcg QVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSsgfCBCKyB8IEMrKQorICAgIERFRklO RSBBIEFTIHZhbCA+IDM1LCBCIEFTIHZhbCBCRVRXRUVOIDE1IEFORCAzNSwgQyBBUyB2YWwgPCAx NQorKQorT1JERVIgQlkgaWQ7CisKKy0tIEdyb3VwaW5nCisKKy0tIE5lc3RlZCBncm91cGluZyB3 aXRoIHF1YW50aWZpZXIKK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitG Uk9NIHJwcl9wYXR0ZXJuCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJO ICgoKEEgQikgQykrKQorICAgIERFRklORSBBIEFTIHZhbCA+IDEwLCBCIEFTIHZhbCA+IDIwLCBD IEFTIHZhbCA+IDMwCispCitPUkRFUiBCWSBpZDsKKworLS0gU2VxdWVuY2UKKworLS0gTXVsdGkt ZWxlbWVudCBzZXF1ZW5jZQorU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQK K0ZST00gcnByX3BhdHRlcm4KK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRF Uk4gKEEgQiBDIEQgRSkKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyB2YWwgPCAxNSwKKyAgICAg ICAgQiBBUyB2YWwgQkVUV0VFTiAxNSBBTkQgMjUsCisgICAgICAgIEMgQVMgdmFsIEJFVFdFRU4g MjUgQU5EIDM1LAorICAgICAgICBEIEFTIHZhbCBCRVRXRUVOIDM1IEFORCA0NSwKKyAgICAgICAg RSBBUyB2YWwgPj0gNDUKKykKK09SREVSIEJZIGlkOworCistLSBDb21wbGV4IGNvbWJpbmF0aW9u cworCistLSBBbHRlcm5hdGlvbiB3aXRoIGdyb3VwaW5nCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQo KikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfcGF0dGVybgorV0lORE9XIHcgQVMgKAorICAgIE9S REVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgUEFUVEVSTiAoKEEgQikgfCAoQyBEKSkKKyAgICBERUZJTkUgQSBBUyB2YWwg PCAyMCwgQiBBUyB2YWwgPj0gMjAsIEMgQVMgdmFsIDwgMzAsIEQgQVMgdmFsID49IDMwCispCitP UkRFUiBCWSBpZDsKKworLS0gQWx0ZXJuYXRpb24gKyBzZXF1ZW5jZSArIGdyb3VwaW5nCitTRUxF Q1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfcGF0dGVybgorV0lO RE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoU1RBUlQgKFVQezIsfSBET1dO PyB8IEZMQVQrKSBGSU5JU0gpCisgICAgREVGSU5FCisgICAgICAgIFNUQVJUIEFTIHZhbCA+PSAw LAorICAgICAgICBVUCBBUyB2YWwgPiAyMCwKKyAgICAgICAgRE9XTiBBUyB2YWwgPD0gMzAsCisg ICAgICAgIEZMQVQgQVMgdmFsIEJFVFdFRU4gMjUgQU5EIDM1LAorICAgICAgICBGSU5JU0ggQVMg dmFsID4gNDAKKykKK09SREVSIEJZIGlkOworCistLSBOZXN0ZWQgYWx0ZXJuYXRpb24gaW4gZ3Jv dXBzCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfcGF0 dGVybgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoKEEgfCBCKSAo QyB8IEQpKQorICAgIERFRklORSBBIEFTIHZhbCA8IDE1LCBCIEFTIHZhbCBCRVRXRUVOIDE1IEFO RCAyNSwgQyBBUyB2YWwgQkVUV0VFTiAyNSBBTkQgMzUsIEQgQVMgdmFsID4gMzUKKykKK09SREVS IEJZIGlkOworCitEUk9QIFRBQkxFIHJwcl9wYXR0ZXJuOworCistLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFF1YW50aWZp ZXJzIFRlc3RzCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKworCitDUkVBVEUgVEFCTEUgcnByX3F1YW50IChpZCBJTlQsIHZh bCBJTlQpOworSU5TRVJUIElOVE8gcnByX3F1YW50IFZBTFVFUworICAgICgxLCAxMCksICgyLCAy MCksICgzLCAzMCksICg0LCA0MCksICg1LCA1MCksCisgICAgKDYsIDYwKSwgKDcsIDcwKSwgKDgs IDgwKSwgKDksIDkwKSwgKDEwLCAxMDApOworCistLSBCYXNpYyBncmVlZHkgcXVhbnRpZmllcnMK KworLS0gKiAoemVybyBvciBtb3JlKQorU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBh cyBjbnQKK0ZST00gcnByX3F1YW50CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQ QVRURVJOIChBKikKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCispCitPUkRFUiBCWSBpZDsKKwor LS0gKyAob25lIG9yIG1vcmUpCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNu dAorRlJPTSBycHJfcXVhbnQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRF Uk4gKEErKQorICAgIERFRklORSBBIEFTIHZhbCA+IDUwCispCitPUkRFUiBCWSBpZDsKKworLS0g PyAoemVybyBvciBvbmUpCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAor RlJPTSBycHJfcXVhbnQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4g KEE/KQorICAgIERFRklORSBBIEFTIHZhbCA9IDUwCispCitPUkRFUiBCWSBpZDsKKworLS0gRWRn ZSBjYXNlIHF1YW50aWZpZXJzCisKKy0tIHswfSBpcyBub3QgYWxsb3dlZCAobWluIG11c3QgYmUg Pj0gMSkKK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9x dWFudAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQXswfSBCKQor ICAgIERFRklORSBBIEFTIHZhbCA+IDEwMDAsIEIgQVMgdmFsID4gMAorKQorT1JERVIgQlkgaWQ7 CistLSBFeHBlY3RlZDogRVJST1I6IHF1YW50aWZpZXIgYm91bmQgbXVzdCBiZSBiZXR3ZWVuIDEg YW5kIDIxNDc0ODM2NDYKKworLS0gezAsMH0gaXMgbm90IGFsbG93ZWQgKG1heCBtdXN0IGJlID49 IDEpCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfcXVh bnQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEF7MCwwfSBCKQor ICAgIERFRklORSBBIEFTIHZhbCA+IDEwMDAsIEIgQVMgdmFsID4gMAorKQorT1JERVIgQlkgaWQ7 CistLSBFeHBlY3RlZDogRVJST1I6IHF1YW50aWZpZXIgYm91bmRzIG11c3QgYmUgYmV0d2VlbiAw IGFuZCAyMTQ3NDgzNjQ2IHdpdGggbWF4ID49IDEKKworLS0gezAsMX0gKGVxdWl2YWxlbnQgdG8g PykKK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9xdWFu dAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQXswLDF9KQorICAg IERFRklORSBBIEFTIHZhbCA9IDUwCispCitPUkRFUiBCWSBpZDsKKworLS0gRXhhY3QgcXVhbnRp ZmllcnMge259CisKKy0tIHszfSAocmVwcmVzZW50YXRpdmUgZXhhY3QgcXVhbnRpZmllcikKK1NF TEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9xdWFudAorV0lO RE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQXszfSkKKyAgICBERUZJTkUg QSBBUyB2YWwgPiAwCispCitPUkRFUiBCWSBpZDsKKworLS0gUmFuZ2UgcXVhbnRpZmllcnMge24s fQorCistLSB7Mix9IChyZXByZXNlbnRhdGl2ZSBuIG9yIG1vcmUpCitTRUxFQ1QgaWQsIHZhbCwg Q09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfcXVhbnQKK1dJTkRPVyB3IEFTICgKKyAg ICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIFBBVFRFUk4gKEF7Mix9KQorICAgIERFRklORSBBIEFTIHZhbCA+IDQw CispCitPUkRFUiBCWSBpZDsKKworLS0gVXBwZXIgYm91bmQgcXVhbnRpZmllcnMgeyxtfQorCist LSB7LDN9IChyZXByZXNlbnRhdGl2ZSB1cCB0byBtKQorU0VMRUNUIGlkLCB2YWwsIENPVU5UKCop IE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX3F1YW50CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIg QlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBQQVRURVJOIChBeywzfSkKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCispCitPUkRF UiBCWSBpZDsKKworLS0gUmFuZ2UgcXVhbnRpZmllcnMge24sbX0KKworLS0gezMsN30gKHJlcHJl c2VudGF0aXZlIHJhbmdlKQorU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQK K0ZST00gcnByX3F1YW50CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJO IChBezMsN30pCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKQorT1JERVIgQlkgaWQ7CisKK0RS T1AgVEFCTEUgcnByX3F1YW50OworCistLSBSZWx1Y3RhbnQgcXVhbnRpZmllcnMKK0NSRUFURSBU QUJMRSBycHJfcmVsdWN0YW50IChpZCBJTlQsIHZhbCBJTlQpOworSU5TRVJUIElOVE8gcnByX3Jl bHVjdGFudCBWQUxVRVMgKDEsIDEwKSwgKDIsIDIwKSwgKDMsIDMwKTsKKworLS0gKj8gKHplcm8g b3IgbW9yZSwgcmVsdWN0YW50KQorU0VMRUNUIENPVU5UKCopIE9WRVIgdworRlJPTSBycHJfcmVs dWN0YW50CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKj8pCisg ICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKKy0tIFJlbHVjdGFudCBxdWFudGlmaWVyOiBwcmVm ZXIgc2hvcnRlc3QgbWF0Y2gKKworLS0gKz8gKG9uZSBvciBtb3JlLCByZWx1Y3RhbnQpCitTRUxF Q1QgQ09VTlQoKikgT1ZFUiB3CitGUk9NIHJwcl9yZWx1Y3RhbnQKK1dJTkRPVyB3IEFTICgKKyAg ICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIFBBVFRFUk4gKEErPykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCisp OworLS0gUmVsdWN0YW50IHF1YW50aWZpZXI6IHByZWZlciBzaG9ydGVzdCBtYXRjaAorCistLSA/ PyAoemVybyBvciBvbmUsIHJlbHVjdGFudCkKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZST00g cnByX3JlbHVjdGFudAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAo QT8/KQorICAgIERFRklORSBBIEFTIHZhbCA+IDAKKyk7CistLSBSZWx1Y3RhbnQgcXVhbnRpZmll cjogcHJlZmVyIHNob3J0ZXN0IG1hdGNoCisKKy0tIHtuLH0/IChuIG9yIG1vcmUsIHJlbHVjdGFu dCkKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZST00gcnByX3JlbHVjdGFudAorV0lORE9XIHcg QVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQXsyLH0/KQorICAgIERFRklORSBBIEFT IHZhbCA+IDAKKyk7CistLSBSZWx1Y3RhbnQgcXVhbnRpZmllcjogcHJlZmVyIHNob3J0ZXN0IG1h dGNoCisKKy0tIHtuLG19PyAobiB0byBtLCByZWx1Y3RhbnQpCitTRUxFQ1QgQ09VTlQoKikgT1ZF UiB3CitGUk9NIHJwcl9yZWx1Y3RhbnQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IFBBVFRFUk4gKEF7MSwzfT8pCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKKy0tIFJlbHVj dGFudCBxdWFudGlmaWVyOiBwcmVmZXIgc2hvcnRlc3QgbWF0Y2gKKworLS0ge259PyAoZXhhY3Rs eSBuLCByZWx1Y3RhbnQpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CitGUk9NIHJwcl9yZWx1Y3Rh bnQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEF7Mn0/KQorICAg IERFRklORSBBIEFTIHZhbCA+IDAKKyk7CistLSBSZWx1Y3RhbnQgcXVhbnRpZmllcjogcHJlZmVy IHNob3J0ZXN0IG1hdGNoCisKKy0tIHssbX0/ICh1cCB0byBtLCByZWx1Y3RhbnQpIC0gQ09NUExF VEVMWSBVTlRFU1RFRCBSVUxFIQorU0VMRUNUIENPVU5UKCopIE9WRVIgdworRlJPTSBycHJfcmVs dWN0YW50CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBeywzfT8p CisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKKy0tIFJlbHVjdGFudCBxdWFudGlmaWVyOiBw cmVmZXIgc2hvcnRlc3QgbWF0Y2gKKworLS0gSW52YWxpZCByZWx1Y3RhbnQgcGF0dGVybnMgKHdy b25nIHRva2VuIGFmdGVyIHF1YW50aWZpZXIpCisKKy0tIHsyfSsgKHNob3VsZCBiZSB7Mn0/IG5v dCB7Mn0rKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdworRlJPTSBycHJfcmVsdWN0YW50CitXSU5E T1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBezJ9KykKKyAgICBERUZJTkUg QSBBUyB2YWwgPiAwCispOworLS0gRXhwZWN0ZWQ6IEVSUk9SOiBzeW50YXggZXJyb3IgYXQgb3Ig bmVhciAiKyIKKworLS0gezIsfSogKHNob3VsZCBiZSB7Mix9PyBub3QgezIsfSopCitTRUxFQ1Qg Q09VTlQoKikgT1ZFUiB3CitGUk9NIHJwcl9yZWx1Y3RhbnQKK1dJTkRPVyB3IEFTICgKKyAgICBP UkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIFBBVFRFUk4gKEF7Mix9KikKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCisp OworLS0gRXhwZWN0ZWQ6IEVSUk9SOiBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiKiIKKworLS0g eywzfSogKHNob3VsZCBiZSB7LDN9PyBub3QgeywzfSopCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3 CitGUk9NIHJwcl9yZWx1Y3RhbnQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBB VFRFUk4gKEF7LDN9KikKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCispOworLS0gRXhwZWN0ZWQ6 IEVSUk9SOiBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiKiIKKworLS0gezEsM30rIChzaG91bGQg YmUgezEsM30/IG5vdCB7MSwzfSspCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CitGUk9NIHJwcl9y ZWx1Y3RhbnQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEF7MSwz fSspCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKKy0tIEV4cGVjdGVkOiBFUlJPUjogc3lu dGF4IGVycm9yIGF0IG9yIG5lYXIgIisiCisKKy0tIEJvdW5kYXJ5IGVycm9ycyBpbiByZWx1Y3Rh bnQgcXVhbnRpZmllcnMKKworLS0gey0xfT8gKG5lZ2F0aXZlIGJvdW5kKQorU0VMRUNUIENPVU5U KCopIE9WRVIgdworRlJPTSBycHJfcmVsdWN0YW50CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIg QlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBQQVRURVJOIChBey0xfT8pCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKKy0t IEV4cGVjdGVkOiBFUlJPUjogc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIi0iCisKKy0tIHsyMTQ3 NDgzNjQ3fT8gKElOVF9NQVgpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CitGUk9NIHJwcl9yZWx1 Y3RhbnQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEF7MjE0NzQ4 MzY0N30/KQorICAgIERFRklORSBBIEFTIHZhbCA+IDAKKyk7CistLSBFeHBlY3RlZDogRVJST1I6 IHF1YW50aWZpZXIgYm91bmQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDIxNDc0ODM2NDYKKworLS0g ey0xLH0/IChuZWdhdGl2ZSBsb3dlciBib3VuZCkKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZS T00gcnByX3JlbHVjdGFudAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVS TiAoQXstMSx9PykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCispOworLS0gRXhwZWN0ZWQ6IEVS Uk9SOiBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiLSIKKworLS0gezIxNDc0ODM2NDcsfT8gKElO VF9NQVggbG93ZXIgYm91bmQpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CitGUk9NIHJwcl9yZWx1 Y3RhbnQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEF7MjE0NzQ4 MzY0Nyx9PykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCispOworLS0gRXhwZWN0ZWQ6IEVSUk9S OiBxdWFudGlmaWVyIGJvdW5kIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMTQ3NDgzNjQ2CisKKy0t IHssMH0/ICh6ZXJvIHVwcGVyIGJvdW5kKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdworRlJPTSBy cHJfcmVsdWN0YW50CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChB eywwfT8pCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKKy0tIEV4cGVjdGVkOiBFUlJPUjog cXVhbnRpZmllciBib3VuZCBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMjE0NzQ4MzY0NgorCistLSB7 LDIxNDc0ODM2NDd9PyAoSU5UX01BWCB1cHBlciBib3VuZCkKK1NFTEVDVCBDT1VOVCgqKSBPVkVS IHcKK0ZST00gcnByX3JlbHVjdGFudAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg UEFUVEVSTiAoQXssMjE0NzQ4MzY0N30/KQorICAgIERFRklORSBBIEFTIHZhbCA+IDAKKyk7Cist LSBFeHBlY3RlZDogRVJST1I6IHF1YW50aWZpZXIgYm91bmQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5k IDIxNDc0ODM2NDYKKworLS0gey0xLDN9PyAobmVnYXRpdmUgbG93ZXIgaW4gcmFuZ2UpCitTRUxF Q1QgQ09VTlQoKikgT1ZFUiB3CitGUk9NIHJwcl9yZWx1Y3RhbnQKK1dJTkRPVyB3IEFTICgKKyAg ICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIFBBVFRFUk4gKEF7LTEsM30/KQorICAgIERFRklORSBBIEFTIHZhbCA+ IDAKKyk7CistLSBFeHBlY3RlZDogRVJST1I6IHN5bnRheCBlcnJvciBhdCBvciBuZWFyICItIgor CistLSB7MSwyMTQ3NDgzNjQ3fT8gKElOVF9NQVggdXBwZXIgaW4gcmFuZ2UpCitTRUxFQ1QgQ09V TlQoKikgT1ZFUiB3CitGUk9NIHJwcl9yZWx1Y3RhbnQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRF UiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIFBBVFRFUk4gKEF7MSwyMTQ3NDgzNjQ3fT8pCisgICAgREVGSU5FIEEgQVMgdmFs ID4gMAorKTsKKy0tIEV4cGVjdGVkOiBFUlJPUjogcXVhbnRpZmllciBib3VuZHMgbXVzdCBiZSBi ZXR3ZWVuIDAgYW5kIDIxNDc0ODM2NDYgd2l0aCBtYXggPj0gMQorCistLSB7NSwzfT8gKG1pbiA+ IG1heCkKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZST00gcnByX3JlbHVjdGFudAorV0lORE9X IHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQXs1LDN9PykKKyAgICBERUZJTkUg QSBBUyB2YWwgPiAwCispOworLS0gRXhwZWN0ZWQ6IEVSUk9SOiBxdWFudGlmaWVyIG1pbmltdW0g Ym91bmQgbXVzdCBub3QgZXhjZWVkIG1heGltdW0KKworLS0gVG9rZW4tc2VwYXJhdGVkIHJlbHVj dGFudCBxdWFudGlmaWVycyAoc3BhY2UgYmV0d2VlbiBxdWFudGlmaWVyIGFuZCA/KQorLS0gVGhl c2UgbWF5IGJlIHRva2VuaXplZCBkaWZmZXJlbnRseSBieSB0aGUgbGV4ZXIKKworLS0gKiA/ICh0 b2tlbiBzZXBhcmF0ZWQpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CitGUk9NIHJwcl9yZWx1Y3Rh bnQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEqID8pCisgICAg REVGSU5FIEEgQVMgdmFsID4gMAorKTsKKy0tIFJlbHVjdGFudCBxdWFudGlmaWVyOiBwcmVmZXIg c2hvcnRlc3QgbWF0Y2gKKworLS0gKyA/ICh0b2tlbiBzZXBhcmF0ZWQpCitTRUxFQ1QgQ09VTlQo KikgT1ZFUiB3CitGUk9NIHJwcl9yZWx1Y3RhbnQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBC WSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIFBBVFRFUk4gKEErID8pCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKKy0tIFJl bHVjdGFudCBxdWFudGlmaWVyOiBwcmVmZXIgc2hvcnRlc3QgbWF0Y2gKKworLS0gezIsfSA/ICh0 b2tlbiBzZXBhcmF0ZWQpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CitGUk9NIHJwcl9yZWx1Y3Rh bnQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEF7Mix9ID8pCisg ICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKKy0tIFJlbHVjdGFudCBxdWFudGlmaWVyOiBwcmVm ZXIgc2hvcnRlc3QgbWF0Y2gKKworLS0gSW52YWxpZCB0b2tlbiBjb21iaW5hdGlvbnMKKworLS0g KiArIChpbnZhbGlkIGNvbWJpbmF0aW9uKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdworRlJPTSBy cHJfcmVsdWN0YW50CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChB KiArKQorICAgIERFRklORSBBIEFTIHZhbCA+IDAKKyk7CistLSBFeHBlY3RlZDogRVJST1I6IHN5 bnRheCBlcnJvciBhdCBvciBuZWFyICIrIgorCistLSArICogKGludmFsaWQgY29tYmluYXRpb24p CitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CitGUk9NIHJwcl9yZWx1Y3RhbnQKK1dJTkRPVyB3IEFT ICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErICopCisgICAgREVGSU5FIEEgQVMgdmFs ID4gMAorKTsKKy0tIEV4cGVjdGVkOiBFUlJPUjogc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIioi CisKKy0tID8gPyAocGFyc2VkIGFzID8/IHJlbHVjdGFudCBxdWFudGlmaWVyKQorU0VMRUNUIENP VU5UKCopIE9WRVIgdworRlJPTSBycHJfcmVsdWN0YW50CitXSU5ET1cgdyBBUyAoCisgICAgT1JE RVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBQQVRURVJOIChBPyA/KQorICAgIERFRklORSBBIEFTIHZhbCA+IDAKKyk7Cist LSBSZWx1Y3RhbnQgcXVhbnRpZmllcjogcHJlZmVyIHNob3J0ZXN0IG1hdGNoCisKK0RST1AgVEFC TEUgcnByX3JlbHVjdGFudDsKKworLS0gUXVhbnRpZmllciBib3VuZGFyeSBjb25kaXRpb25zCisK K0NSRUFURSBUQUJMRSBycHJfYm91bmRzIChpZCBJTlQpOworSU5TRVJUIElOVE8gcnByX2JvdW5k cyBWQUxVRVMgKDEpLCAoMik7CisKKy0tIG1pbiA+IG1heAorU0VMRUNUIENPVU5UKCopIE9WRVIg dworRlJPTSBycHJfYm91bmRzCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRU RVJOIChBezUsM30pCisgICAgREVGSU5FIEEgQVMgaWQgPiAwCispOworLS0gRXhwZWN0ZWQ6IEVS Uk9SOiBxdWFudGlmaWVyIG1pbmltdW0gYm91bmQgbXVzdCBub3QgZXhjZWVkIG1heGltdW0KKwor LS0gTGFyZ2UgYm91bmRzCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CitGUk9NIHJwcl9ib3VuZHMK K1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEF7MTAwMCwyMDAwfSkK KyAgICBERUZJTkUgQSBBUyBpZCA+IDAKKyk7CisKKy0tIFZlcnkgbGFyZ2UgYm91bmQKK1NFTEVD VCBDT1VOVCgqKSBPVkVSIHcKK0ZST00gcnByX2JvdW5kcworV0lORE9XIHcgQVMgKAorICAgIE9S REVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgUEFUVEVSTiAoQXsxMDAwMDB9KQorICAgIERFRklORSBBIEFTIGlkID4gMAor KTsKKworLS0gSU5UX01BWCAtIDEgPSAyMTQ3NDgzNjQ2IChhdCBsaW1pdCkKK1NFTEVDVCBDT1VO VCgqKSBPVkVSIHcKK0ZST00gcnByX2JvdW5kcworV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZ IGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgUEFUVEVSTiAoQXsyMTQ3NDgzNjQ2fSkKKyAgICBERUZJTkUgQSBBUyBpZCA+IDAKKyk7 CisKKy0tIElOVF9NQVggPSAyMTQ3NDgzNjQ3IChvdmVyIGxpbWl0KQorU0VMRUNUIENPVU5UKCop IE9WRVIgdworRlJPTSBycHJfYm91bmRzCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBQQVRURVJOIChBezIxNDc0ODM2NDd9KQorICAgIERFRklORSBBIEFTIGlkID4gMAorKTsKKy0t IEV4cGVjdGVkOiBFUlJPUjogcXVhbnRpZmllciBib3VuZCBtdXN0IGJlIGJldHdlZW4gMSBhbmQg MjE0NzQ4MzY0NgorCistLSB7bix9IGJvdW5kYXJ5IGVycm9ycworCistLSBOZWdhdGl2ZSBsb3dl ciBib3VuZCBpbiB7bix9CitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CitGUk9NIHJwcl9ib3VuZHMK K1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEF7LTEsfSkKKyAgICBE RUZJTkUgQSBBUyBpZCA+IDAKKyk7CistLSBFeHBlY3RlZDogRVJST1I6IHN5bnRheCBlcnJvciBh dCBvciBuZWFyICItIgorCistLSBJTlRfTUFYIGluIHtuLH0KK1NFTEVDVCBDT1VOVCgqKSBPVkVS IHcKK0ZST00gcnByX2JvdW5kcworV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFU VEVSTiAoQXsyMTQ3NDgzNjQ3LH0pCisgICAgREVGSU5FIEEgQVMgaWQgPiAwCispOworLS0gRXhw ZWN0ZWQ6IEVSUk9SOiBxdWFudGlmaWVyIGJvdW5kIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMTQ3 NDgzNjQ2CisKKy0tIHssbX0gYm91bmRhcnkgZXJyb3JzCisKKy0tIFplcm8gdXBwZXIgYm91bmQg aW4geyxtfQorU0VMRUNUIENPVU5UKCopIE9WRVIgdworRlJPTSBycHJfYm91bmRzCitXSU5ET1cg dyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBeywwfSkKKyAgICBERUZJTkUgQSBB UyBpZCA+IDAKKyk7CistLSBFeHBlY3RlZDogRVJST1I6IHF1YW50aWZpZXIgYm91bmQgbXVzdCBi ZSBiZXR3ZWVuIDEgYW5kIDIxNDc0ODM2NDYKKworLS0gSU5UX01BWCBpbiB7LG19CitTRUxFQ1Qg Q09VTlQoKikgT1ZFUiB3CitGUk9NIHJwcl9ib3VuZHMKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRF UiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIFBBVFRFUk4gKEF7LDIxNDc0ODM2NDd9KQorICAgIERFRklORSBBIEFTIGlkID4g MAorKTsKKy0tIEV4cGVjdGVkOiBFUlJPUjogcXVhbnRpZmllciBib3VuZCBtdXN0IGJlIGJldHdl ZW4gMSBhbmQgMjE0NzQ4MzY0NgorCitEUk9QIFRBQkxFIHJwcl9ib3VuZHM7CisKKy0tID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0gTmF2aWdhdGlvbiBGdW5jdGlvbnMgVGVzdHMgKFBSRVYgLyBORVhUIC8gRklSU1QgLyBMQVNU KQorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CisKKworQ1JFQVRFIFRBQkxFIHJwcl9uYXYgKGlkIElOVCwgdmFsIElOVCk7CitJ TlNFUlQgSU5UTyBycHJfbmF2IFZBTFVFUworICAgICgxLCAxMCksICgyLCAyMCksICgzLCAxNSks ICg0LCAyNSksICg1LCAzMCk7CisKKy0tIFBSRVYgZnVuY3Rpb24gLSByZWZlcmVuY2UgcHJldmlv dXMgcm93IGluIHBhdHRlcm4KK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250 CitGUk9NIHJwcl9uYXYKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4g KEEgQispCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgdmFsID4gMCwKKyAgICAgICAgQiBBUyB2 YWwgPiBQUkVWKHZhbCkKKykKK09SREVSIEJZIGlkOworCistLSBORVhUIGZ1bmN0aW9uIC0gcmVm ZXJlbmNlIG5leHQgcm93IGluIHBhdHRlcm4KK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVS IHcgYXMgY250CitGUk9NIHJwcl9uYXYKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgdmFsIDwgTkVYVCh2YWwp LAorICAgICAgICBCIEFTIHZhbCA+IDAKKykKK09SREVSIEJZIGlkOworCistLSBDb21iaW5lZCBQ UkVWIGFuZCBORVhUCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJP TSBycHJfbmF2CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIg QykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyB2YWwgPiAwLAorICAgICAgICBCIEFTIHZhbCA+ IFBSRVYodmFsKSBBTkQgdmFsIDwgTkVYVCh2YWwpLAorICAgICAgICBDIEFTIHZhbCA+IFBSRVYo dmFsKQorKQorT1JERVIgQlkgaWQ7CisKKy0tIFBSRVYgZnVuY3Rpb24gY2Fubm90IGJlIHVzZWQg b3RoZXIgdGhhbiBpbiBERUZJTkUKK1NFTEVDVCBQUkVWKGlkKSwgaWQsIHZhbCwgQ09VTlQoKikg T1ZFUiB3IGFzIGNudAorRlJPTSBycHJfbmF2CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkg aWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORQorICAgICAgICBBIEFTIHZhbCA+IDAsCisg ICAgICAgIEIgQVMgdmFsID4gUFJFVih2YWwpCispCitPUkRFUiBCWSBpZDsKKy0tIEV4cGVjdGVk OiBFUlJPUjogY2Fubm90IHVzZSBwcmV2IG91dHNpZGUgYSBERUZJTkUgY2xhdXNlCisKKy0tIE5F WFQgZnVuY3Rpb24gY2Fubm90IGJlIHVzZWQgb3RoZXIgdGhhbiBpbiBERUZJTkUKK1NFTEVDVCBO RVhUKGlkKSwgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfbmF2CitX SU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklO RQorICAgICAgICBBIEFTIHZhbCA+IDAsCisgICAgICAgIEIgQVMgdmFsID4gUFJFVih2YWwpCisp CitPUkRFUiBCWSBpZDsKKy0tIEV4cGVjdGVkOiBFUlJPUjogY2Fubm90IHVzZSBuZXh0IG91dHNp ZGUgYSBERUZJTkUgY2xhdXNlCisKKy0tIEZJUlNUIGZ1bmN0aW9uIC0gcmVmZXJlbmNlIG1hdGNo X3N0YXJ0IHJvdworU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00g cnByX25hdgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykK KyAgICBERUZJTkUKKyAgICAgICAgQSBBUyB2YWwgPiAwLAorICAgICAgICBCIEFTIHZhbCA+IEZJ UlNUKHZhbCkKKykKK09SREVSIEJZIGlkOworCistLSBMQVNUIGZ1bmN0aW9uIHdpdGhvdXQgb2Zm c2V0IC0gZXF1aXZhbGVudCB0byBjdXJyZW50IHJvdydzIHZhbHVlCitTRUxFQ1QgaWQsIHZhbCwg Q09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfbmF2CitXSU5ET1cgdyBBUyAoCisgICAg T1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORQorICAgICAgICBBIEFTIHZh bCA+IDAsCisgICAgICAgIEIgQVMgTEFTVCh2YWwpID4gUFJFVih2YWwpCispCitPUkRFUiBCWSBp ZDsKKworLS0gRklSU1QgYW5kIExBU1QgY29tYmluZWQKK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgq KSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9uYXYKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBC WSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgdmFsID4gMCwK KyAgICAgICAgQiBBUyB2YWwgPiBGSVJTVCh2YWwpIEFORCBMQVNUKHZhbCkgPiBQUkVWKHZhbCkK KykKK09SREVSIEJZIGlkOworCistLSBGSVJTVCBmdW5jdGlvbiBjYW5ub3QgYmUgdXNlZCBvdGhl ciB0aGFuIGluIERFRklORQorU0VMRUNUIEZJUlNUKGlkKSwgaWQsIHZhbCBGUk9NIHJwcl9uYXY7 CistLSBFeHBlY3RlZDogRVJST1I6IGNhbm5vdCB1c2UgZmlyc3Qgb3V0c2lkZSBhIERFRklORSBj bGF1c2UKKworLS0gTEFTVCBmdW5jdGlvbiBjYW5ub3QgYmUgdXNlZCBvdGhlciB0aGFuIGluIERF RklORQorU0VMRUNUIExBU1QoaWQpLCBpZCwgdmFsIEZST00gcnByX25hdjsKKy0tIEV4cGVjdGVk OiBFUlJPUjogY2Fubm90IHVzZSBsYXN0IG91dHNpZGUgYSBERUZJTkUgY2xhdXNlCisKK0RST1Ag VEFCTEUgcnByX25hdjsKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CistLSBTS0lQIFRPIC8gSU5JVElBTCBUZXN0cworLS0g PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CisKKworQ1JFQVRFIFRBQkxFIHJwcl9za2lwIChpZCBJTlQsIHZhbCBJTlQpOworSU5TRVJU IElOVE8gcnByX3NraXAgVkFMVUVTCisgICAgKDEsIDEpLCAoMiwgMiksICgzLCAzKSwgKDQsIDQp LCAoNSwgNSksCisgICAgKDYsIDYpLCAoNywgNyksICg4LCA4KTsKKworLS0gU0tJUCBUTyBORVhU IFJPVworCistLSBTS0lQIFRPIE5FWFQgUk9XCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZF UiB3IGFzIGNudAorRlJPTSBycHJfc2tpcAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlk CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEEgQiBDKQorICAg IERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsID4gMiwgQyBBUyB2YWwgPiA0CispCitPUkRF UiBCWSBpZDsKKworLS0gU0tJUCBQQVNUIExBU1QgUk9XCisKKy0tIFNLSVAgUEFTVCBMQVNUIFJP VworU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX3NraXAK K1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBM QVNUIFJPVworICAgIFBBVFRFUk4gKEEgQiBDKQorICAgIERFRklORSBBIEFTIHZhbCA+IDAsIEIg QVMgdmFsID4gMiwgQyBBUyB2YWwgPiA0CispCitPUkRFUiBCWSBpZDsKKworLS0gRGVmYXVsdCBi ZWhhdmlvciAoc2hvdWxkIGJlIFNLSVAgUEFTVCBMQVNUIFJPVykKKworLS0gTm8gU0tJUCBUTyBj bGF1c2UgKGRlZmF1bHQpCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAor RlJPTSBycHJfc2tpcAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAo QSBCKQorICAgIERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsID4gMQorKQorT1JERVIgQlkg aWQ7CisKKy0tIENvbXBhcmUgZGVmYXVsdCB3aXRoIGV4cGxpY2l0IFBBU1QgTEFTVCBST1cKKy0t IFJlc3VsdHMgc2hvdWxkIGJlIGlkZW50aWNhbAorV0lUSCBkZWZhdWx0X3NraXAgQVMgKAorICAg IFNFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CisgICAgRlJPTSBycHJfc2tp cAorICAgIFdJTkRPVyB3IEFTICgKKyAgICAgICAgT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRF Uk4gKEEgQiBDKQorICAgICAgICBERUZJTkUgQSBBUyB2YWwgPiAwLCBCIEFTIHZhbCA+IDIsIEMg QVMgdmFsID4gNAorICAgICkKKyksCitleHBsaWNpdF9za2lwIEFTICgKKyAgICBTRUxFQ1QgaWQs IHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorICAgIEZST00gcnByX3NraXAKKyAgICBXSU5E T1cgdyBBUyAoCisgICAgICAgIE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBBRlRFUiBNQVRDSCBTS0lQ IFBBU1QgTEFTVCBST1cKKyAgICAgICAgUEFUVEVSTiAoQSBCIEMpCisgICAgICAgIERFRklORSBB IEFTIHZhbCA+IDAsIEIgQVMgdmFsID4gMiwgQyBBUyB2YWwgPiA0CisgICAgKQorKQorU0VMRUNU ICdkZWZhdWx0JyBhcyB0eXBlLCAqIEZST00gZGVmYXVsdF9za2lwCitVTklPTiBBTEwKK1NFTEVD VCAnZXhwbGljaXQnIGFzIHR5cGUsICogRlJPTSBleHBsaWNpdF9za2lwCitPUkRFUiBCWSB0eXBl LCBpZDsKKworRFJPUCBUQUJMRSBycHJfc2tpcDsKKworLS0gSU5JVElBTCBjbGF1c2UKKworQ1JF QVRFIFRBQkxFIHJwcl9pbml0IChpZCBJTlQsIHZhbCBJTlQpOworSU5TRVJUIElOVE8gcnByX2lu aXQgVkFMVUVTICgxLCAxMCksICgyLCAyMCksICgzLCAzMCksICg0LCA0MCk7CisKKy0tIEV4cGxp Y2l0IElOSVRJQUwKK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9N IHJwcl9pbml0CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAg UEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKQorT1JERVIgQlkgaWQ7CisK Ky0tIEltcGxpY2l0IElOSVRJQUwgKGRlZmF1bHQpCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikg T1ZFUiB3IGFzIGNudAorRlJPTSBycHJfaW5pdAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZ IGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKQorT1JERVIgQlkg aWQ7CisKK0RST1AgVEFCTEUgcnByX2luaXQ7CisKKy0tIFNFRUsKKworQ1JFQVRFIFRBQkxFIHJw cl9zZWVrIChpZCBJTlQsIHZhbCBJTlQpOworSU5TRVJUIElOVE8gcnByX3NlZWsgVkFMVUVTICgx LCAxMCk7CisKKy0tIFNFRUsga2V5d29yZAorU0VMRUNUIENPVU5UKCopIE9WRVIgdworRlJPTSBy cHJfc2VlaworV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgU0VFSworICAgIFBBVFRF Uk4gKEErKQorICAgIERFRklORSBBIEFTIHZhbCA+IDAKKyk7CistLSBFeHBlY3RlZDogRVJST1I6 IFNFRUsgaXMgbm90IHN1cHBvcnRlZAorLS0gSElOVDogVXNlIElOSVRJQUwgaW5zdGVhZC4KKwor RFJPUCBUQUJMRSBycHJfc2VlazsKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBTZXJpYWxpemF0aW9uL0Rlc2VyaWFs aXphdGlvbiBUZXN0cworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CisKKworLS0gVmlldyBjcmVhdGlvbiBhbmQgZGVwYXJzaW5n CisKK0NSRUFURSBUQUJMRSBycHJfc2VyaWFsIChpZCBJTlQsIHZhbCBJTlQpOworSU5TRVJUIElO VE8gcnByX3NlcmlhbCBWQUxVRVMKKyAgICAoMSwgMTApLCAoMiwgMjApLCAoMywgMTUpLCAoNCwg MjUpLCAoNSwgMzApOworCistLSBTaW1wbGUgcGF0dGVybgorQ1JFQVRFIFZJRVcgcnByX3Nlcmlh bF92MSBBUworU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnBy X3NlcmlhbAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisg ICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKKworLS0gVmVyaWZ5IHZpZXcgd29ya3MgKHRlc3Rz IGRlc2VyaWFsaXphdGlvbikKK1NFTEVDVCAqIEZST00gcnByX3NlcmlhbF92MSBPUkRFUiBCWSBp ZDsKKworLS0gVmVyaWZ5IGRlcGFyc2luZworU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdycHJfc2Vy aWFsX3YxJzo6cmVnY2xhc3MpOworCistLSBDb21wbGV4IHBhdHRlcm4gd2l0aCBhbHRlcm5hdGlv bgorQ1JFQVRFIFZJRVcgcnByX3NlcmlhbF92MiBBUworU0VMRUNUIGlkLCB2YWwsIENPVU5UKCop IE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX3NlcmlhbAorV0lORE9XIHcgQVMgKAorICAgIE9SREVS IEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgUEFUVEVSTiAoQSsgfCBCKikKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAyMCwgQiBB UyB2YWwgPD0gMjAKKyk7CisKK1NFTEVDVCAqIEZST00gcnByX3NlcmlhbF92MiBPUkRFUiBCWSBp ZDsKK1NFTEVDVCBwZ19nZXRfdmlld2RlZigncnByX3NlcmlhbF92Mic6OnJlZ2NsYXNzKTsKKwor LS0gUGF0dGVybiB3aXRoIGdyb3VwaW5nIGFuZCBxdWFudGlmaWVycworQ1JFQVRFIFZJRVcgcnBy X3NlcmlhbF92MyBBUworU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZS T00gcnByX3NlcmlhbAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAo KEEgQil7Miw1fSB8IEMqKQorICAgIERFRklORQorICAgICAgICBBIEFTIHZhbCA+IDEwLAorICAg ICAgICBCIEFTIHZhbCA+IDIwLAorICAgICAgICBDIEFTIHZhbCA8PSAxMAorKTsKKworU0VMRUNU ICogRlJPTSBycHJfc2VyaWFsX3YzIE9SREVSIEJZIGlkOworU0VMRUNUIHBnX2dldF92aWV3ZGVm KCdycHJfc2VyaWFsX3YzJzo6cmVnY2xhc3MpOworCistLSBBbGwgZmVhdHVyZXMgY29tYmluZWQK K0NSRUFURSBWSUVXIHJwcl9zZXJpYWxfdjQgQVMKK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBP VkVSIHcgYXMgY250CitGUk9NIHJwcl9zZXJpYWwKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBC WSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBJTklUSUFMCisgICAgUEFU VEVSTiAoU1RBUlQgKE1JRHsxLDN9IHwgQUxUKykgRklOSVNIKQorICAgIERFRklORQorICAgICAg ICBTVEFSVCBBUyB2YWwgPiA1LAorICAgICAgICBNSUQgQVMgdmFsIEJFVFdFRU4gMTAgQU5EIDI1 LAorICAgICAgICBBTFQgQVMgdmFsID4gMjUsCisgICAgICAgIEZJTklTSCBBUyB2YWwgPiAxNQor KTsKKworU0VMRUNUICogRlJPTSBycHJfc2VyaWFsX3Y0IE9SREVSIEJZIGlkOworU0VMRUNUIHBn X2dldF92aWV3ZGVmKCdycHJfc2VyaWFsX3Y0Jzo6cmVnY2xhc3MpOworCistLSBBZGRpdGlvbmFs IHF1YW50aWZpZXJzIGZvciBkZXBhcnNpbmcgY292ZXJhZ2UKKworLS0gPyBxdWFudGlmaWVyICh6 ZXJvIG9yIG9uZSkKK0NSRUFURSBWSUVXIHJwcl9zZXJpYWxfdjUgQVMKK1NFTEVDVCBpZCwgdmFs LCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9zZXJpYWwKK1dJTkRPVyB3IEFTICgK KyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQj8pCisgICAgREVGSU5FIEEgQVMgdmFsID4g MTAsIEIgQVMgdmFsID4gMjAKKyk7CisKK1NFTEVDVCAqIEZST00gcnByX3NlcmlhbF92NSBPUkRF UiBCWSBpZDsKK1NFTEVDVCBwZ19nZXRfdmlld2RlZigncnByX3NlcmlhbF92NSc6OnJlZ2NsYXNz KTsKKworLS0ge24sfSBxdWFudGlmaWVyIChuIG9yIG1vcmUpCitDUkVBVEUgVklFVyBycHJfc2Vy aWFsX3Y2IEFTCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBy cHJfc2VyaWFsCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBezIs fSkKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAxNQorKTsKKworU0VMRUNUICogRlJPTSBycHJfc2Vy aWFsX3Y2IE9SREVSIEJZIGlkOworU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdycHJfc2VyaWFsX3Y2 Jzo6cmVnY2xhc3MpOworCistLSB7bn0gcXVhbnRpZmllciAoZXhhY3RseSBuKQorQ1JFQVRFIFZJ RVcgcnByX3NlcmlhbF92NyBBUworU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBj bnQKK0ZST00gcnByX3NlcmlhbAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFU VEVSTiAoQXszfSkKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCispOworCitTRUxFQ1QgKiBGUk9N IHJwcl9zZXJpYWxfdjcgT1JERVIgQlkgaWQ7CitTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9z ZXJpYWxfdjcnOjpyZWdjbGFzcyk7CisKKy0tIE5lc3RlZCBBTFQgcGF0dGVybiAodGVzdHMgZGVw YXJzZSBvZiBjb21wbGV4IG5lc3RlZCBzdHJ1Y3R1cmUpCitDUkVBVEUgVklFVyBycHJfc2VyaWFs X3Y4IEFTCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJf c2VyaWFsCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOICgoKEErIEIp IHwgQykgRCB8IEEgQiBDKQorICAgIERFRklORSBBIEFTIHZhbCA8PSAxNSwgQiBBUyB2YWwgPD0g MjUsIEMgQVMgdmFsIDw9IDMwLCBEIEFTIHZhbCA+IDMwCispOworCitTRUxFQ1QgKiBGUk9NIHJw cl9zZXJpYWxfdjggT1JERVIgQlkgaWQ7CitTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9zZXJp YWxfdjgnOjpyZWdjbGFzcyk7CisKKy0tIE5hdmlnYXRpb24gZnVuY3Rpb24gc2VyaWFsaXphdGlv bjogUFJFViB3aXRoIG9mZnNldAorQ1JFQVRFIFZJRVcgcnByX3NlcmlhbF9uYXYxIEFTCitTRUxF Q1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9zZXJpYWwKK1dJTkRPVyB3IEFT IChPUkRFUiBCWSBpZAorICAgICAgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAg ICAgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyB2YWwgPiBQUkVWKHZhbCwgMikpOworU0VMRUNU IHBnX2dldF92aWV3ZGVmKCdycHJfc2VyaWFsX25hdjEnOjpyZWdjbGFzcyk7CisKKy0tIE5hdmln YXRpb24gZnVuY3Rpb24gc2VyaWFsaXphdGlvbjogRklSU1QgYW5kIExBU1QKK0NSRUFURSBWSUVX IHJwcl9zZXJpYWxfbmF2MiBBUworU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdworRlJP TSBycHJfc2VyaWFsCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgICAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAg ICBQQVRURVJOIChBIEIrKQorICAgICAgICAgICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgRklS U1QodmFsKSA8IExBU1QodmFsLCAxKSk7CitTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9zZXJp YWxfbmF2Mic6OnJlZ2NsYXNzKTsKKworLS0gTmF2aWdhdGlvbiBmdW5jdGlvbiBzZXJpYWxpemF0 aW9uOiBjb21wb3VuZCBQUkVWKEZJUlNUKCkpCitDUkVBVEUgVklFVyBycHJfc2VyaWFsX25hdjMg QVMKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcKK0ZST00gcnByX3NlcmlhbAorV0lO RE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoQSBCKykK KyAgICAgICAgICAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIFBSRVYoRklSU1QodmFsLCAxKSwg MikgPiAwKTsKK1NFTEVDVCBwZ19nZXRfdmlld2RlZigncnByX3NlcmlhbF9uYXYzJzo6cmVnY2xh c3MpOworCistLSBOYXZpZ2F0aW9uIGZ1bmN0aW9uIHNlcmlhbGl6YXRpb246IGNvbXBvdW5kIE5F WFQoTEFTVCgpKQorQ1JFQVRFIFZJRVcgcnByX3NlcmlhbF9uYXY0IEFTCitTRUxFQ1QgaWQsIHZh bCwgY291bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9zZXJpYWwKK1dJTkRPVyB3IEFTIChPUkRFUiBC WSBpZAorICAgICAgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgICAgICAgREVG SU5FIEEgQVMgVFJVRSwgQiBBUyBORVhUKExBU1QodmFsKSwgMikgSVMgTk9UIE5VTEwpOworU0VM RUNUIHBnX2dldF92aWV3ZGVmKCdycHJfc2VyaWFsX25hdjQnOjpyZWdjbGFzcyk7CisKKy0tIE5h dmlnYXRpb24gZnVuY3Rpb24gc2VyaWFsaXphdGlvbjogY29tcG91bmQgUFJFVihMQVNUKCkpCitD UkVBVEUgVklFVyBycHJfc2VyaWFsX25hdjUgQVMKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBP VkVSIHcKK0ZST00gcnByX3NlcmlhbAorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAg ICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgICAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgICAgICBERUZJTkUgQSBBUyBUUlVF LCBCIEFTIFBSRVYoTEFTVCh2YWwsIDEpLCAyKSA+IDApOworU0VMRUNUIHBnX2dldF92aWV3ZGVm KCdycHJfc2VyaWFsX25hdjUnOjpyZWdjbGFzcyk7CisKKy0tIE5hdmlnYXRpb24gZnVuY3Rpb24g c2VyaWFsaXphdGlvbjogY29tcG91bmQgTkVYVChGSVJTVCgpKQorQ1JFQVRFIFZJRVcgcnByX3Nl cmlhbF9uYXY2IEFTCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9z ZXJpYWwKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICAgICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRF Uk4gKEEgQispCisgICAgICAgICAgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBORVhUKEZJUlNU KHZhbCksIDMpID4gMCk7CitTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9zZXJpYWxfbmF2Nic6 OnJlZ2NsYXNzKTsKKworLS0gUmVsdWN0YW50IHsxfT8gcXVhbnRpZmllciBkZXBhcnNlIHRocm91 Z2ggcnVsZXV0aWxzCitDUkVBVEUgVklFVyBycHJfcXVhbnRfcmVsdWN0YW50X3YgQVMKK1NFTEVD VCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcKK0ZST00gcnByX3NlcmlhbAorV0lORE9XIHcgQVMg KE9SREVSIEJZIGlkCisgICAgICAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgSU5JVElBTAorICAgICAgICAgICAgIFBB VFRFUk4gKEF7MX0/IEIpCisgICAgICAgICAgICAgREVGSU5FIEEgQVMgdmFsID4gMCwgQiBBUyB2 YWwgPiAwKTsKK1NFTEVDVCBwZ19nZXRfdmlld2RlZigncnByX3F1YW50X3JlbHVjdGFudF92Jzo6 cmVnY2xhc3MpOworCistLSBRdW90ZWQgaWRlbnRpZmllciByb3VuZC10cmlwOiBtaXhlZCBjYXNl IGFuZCByZXNlcnZlZCB3b3JkcyBuZWVkIHF1b3RpbmcKK0NSRUFURSBWSUVXIHJwcl9zZXJpYWxf cXVvdGVkIEFTCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9zZXJp YWwKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICAgICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4g KCJTdGFydCIgIlVwIispCisgICAgICAgICAgICAgREVGSU5FICJTdGFydCIgQVMgVFJVRSwgIlVw IiBBUyB2YWwgPiBQUkVWKHZhbCkpOworU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdycHJfc2VyaWFs X3F1b3RlZCc6OnJlZ2NsYXNzKTsKKworLS0gTWF0ZXJpYWxpemVkIHZpZXcgKGlmIHN1cHBvcnRl ZCkKKworQ1JFQVRFIFRBQkxFIHJwcl9tdmlldyAoaWQgSU5ULCB2YWwgSU5UKTsKK0lOU0VSVCBJ TlRPIHJwcl9tdmlldyBWQUxVRVMgKDEsIDEwKSwgKDIsIDIwKSwgKDMsIDMwKTsKKworQ1JFQVRF IE1BVEVSSUFMSVpFRCBWSUVXIHJwcl9tdmlld192MSBBUworU0VMRUNUIGlkLCB2YWwsIENPVU5U KCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX212aWV3CitXSU5ET1cgdyBBUyAoCisgICAgT1JE RVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCispOworCitT RUxFQ1QgKiBGUk9NIHJwcl9tdmlld192MSBPUkRFUiBCWSBpZDsKK1NFTEVDVCBwZ19nZXRfdmll d2RlZigncnByX212aWV3X3YxJzo6cmVnY2xhc3MpOworCistLSBSZWZyZXNoIHRlc3QKK1JFRlJF U0ggTUFURVJJQUxJWkVEIFZJRVcgcnByX212aWV3X3YxOworU0VMRUNUICogRlJPTSBycHJfbXZp ZXdfdjEgT1JERVIgQlkgaWQ7CisKKy0tIENSRUFURSBUQUJMRSBBUyBTRUxFQ1Qgd2l0aCBSUFIK K0NSRUFURSBUQUJMRSBycHJfY3RhcyAoaWQgSU5ULCB2YWwgSU5UKTsKK0lOU0VSVCBJTlRPIHJw cl9jdGFzIFZBTFVFUyAoMSwgMTApLCAoMiwgMjApLCAoMywgMTUpLCAoNCwgMjUpOworCitDUkVB VEUgVEFCTEUgcnByX2N0YXNfcmVzdWx0IEFTCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZF UiB3IEFTIGNudAorRlJPTSBycHJfY3RhcworV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlk CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAg ICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIHZhbCA+IFBSRVYodmFsKQorKTsKK1NFTEVDVCAqIEZS T00gcnByX2N0YXNfcmVzdWx0IE9SREVSIEJZIGlkOworCistLSBJTlNFUlQgSU5UTyAuLi4gU0VM RUNUIHdpdGggUlBSCitDUkVBVEUgVEFCTEUgcnByX2luc2VydF90YXJnZXQgKGlkIElOVCwgdmFs IElOVCwgY250IEJJR0lOVCk7CitJTlNFUlQgSU5UTyBycHJfaW5zZXJ0X3RhcmdldAorU0VMRUNU IGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdworRlJPTSBycHJfY3RhcworV0lORE9XIHcgQVMgKAor ICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFU VEVSTiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIHZhbCA+IFBSRVYodmFsKQor KTsKK1NFTEVDVCAqIEZST00gcnByX2luc2VydF90YXJnZXQgT1JERVIgQlkgaWQ7CisKK0RST1Ag VEFCTEUgcnByX2N0YXNfcmVzdWx0OworRFJPUCBUQUJMRSBycHJfaW5zZXJ0X3RhcmdldDsKK0RS T1AgVEFCTEUgcnByX2N0YXM7CisKKy0tIFByZXBhcmVkIHN0YXRlbWVudHMgKHRlc3RzIG91dGZ1 bmNzLmMgLyByZWFkZnVuY3MuYykKKworQ1JFQVRFIFRBQkxFIHJwcl9wcmVwIChpZCBJTlQsIHZh bCBJTlQpOworSU5TRVJUIElOVE8gcnByX3ByZXAgVkFMVUVTICgxLCAxMCksICgyLCAyMCksICgz LCAzMCk7CisKKy0tIFNpbXBsZSBwcmVwYXJlZCBzdGF0ZW1lbnQKK1BSRVBBUkUgcnByX3ByZXBf c2ltcGxlIEFTCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBy cHJfcHJlcAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisg ICAgREVGSU5FIEEgQVMgdmFsID4gMAorKQorT1JERVIgQlkgaWQ7CisKK0VYRUNVVEUgcnByX3By ZXBfc2ltcGxlOworRVhFQ1VURSBycHJfcHJlcF9zaW1wbGU7CisKK0RFQUxMT0NBVEUgcnByX3By ZXBfc2ltcGxlOworCistLSBQcmVwYXJlZCBzdGF0ZW1lbnQgd2l0aCBwYXJhbWV0ZXJzCitQUkVQ QVJFIHJwcl9wcmVwX3BhcmFtKGludCkgQVMKK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVS IHcgYXMgY250CitGUk9NIHJwcl9wcmVwCitXSEVSRSBpZCA8PSAkMQorV0lORE9XIHcgQVMgKAor ICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgdmFsID4gMTAK KykKK09SREVSIEJZIGlkOworCitFWEVDVVRFIHJwcl9wcmVwX3BhcmFtKDIpOworRVhFQ1VURSBy cHJfcHJlcF9wYXJhbSgzKTsKKworREVBTExPQ0FURSBycHJfcHJlcF9wYXJhbTsKKworLS0gQ29t cGxleCBwcmVwYXJlZCBzdGF0ZW1lbnQKK1BSRVBBUkUgcnByX3ByZXBfY29tcGxleCBBUworU0VM RUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX3ByZXAKK1dJTkRP VyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cK KyAgICBQQVRURVJOICgoQSBCKXsxLDJ9IHwgQyspCisgICAgREVGSU5FCisgICAgICAgIEEgQVMg dmFsID4gNSwKKyAgICAgICAgQiBBUyB2YWwgPiAxNSwKKyAgICAgICAgQyBBUyB2YWwgPD0gMTUK KykKK09SREVSIEJZIGlkOworCitFWEVDVVRFIHJwcl9wcmVwX2NvbXBsZXg7CitFWEVDVVRFIHJw cl9wcmVwX2NvbXBsZXg7CisKK0RFQUxMT0NBVEUgcnByX3ByZXBfY29tcGxleDsKKworRFJPUCBU QUJMRSBycHJfcHJlcDsKKworLS0gQ1RFIGFuZCBTdWJxdWVyeSAodGVzdHMgY29weWZ1bmNzLmMp CisKK0NSRUFURSBUQUJMRSBycHJfY29weSAoaWQgSU5ULCB2YWwgSU5UKTsKK0lOU0VSVCBJTlRP IHJwcl9jb3B5IFZBTFVFUyAoMSwgMTApLCAoMiwgMjApLCAoMywgMzApLCAoNCwgNDApOworCist LSBTaW1wbGUgQ1RFCitXSVRIIHJwcl9jdGUgQVMgKAorICAgIFNFTEVDVCBpZCwgdmFsLCBDT1VO VCgqKSBPVkVSIHcgYXMgY250CisgICAgRlJPTSBycHJfY29weQorICAgIFdJTkRPVyB3IEFTICgK KyAgICAgICAgT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEErKQorICAgICAgICBERUZJ TkUgQSBBUyB2YWwgPiAwCisgICAgKQorKQorU0VMRUNUICogRlJPTSBycHJfY3RlIE9SREVSIEJZ IGlkOworCistLSBDVEUgd2l0aCBtdWx0aXBsZSByZWZlcmVuY2VzIChmb3JjZXMgbm9kZSBjb3B5 KQorV0lUSCBycHJfY3RlIEFTICgKKyAgICBTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3 IGFzIGNudAorICAgIEZST00gcnByX2NvcHkKKyAgICBXSU5ET1cgdyBBUyAoCisgICAgICAgIE9S REVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBKykKKyAgICAgICAgREVGSU5FIEEgQVMgdmFs ID4gMTUKKyAgICApCispCitTRUxFQ1QgYzEuaWQsIGMxLmNudCBhcyBjbnQxLCBjMi5jbnQgYXMg Y250MgorRlJPTSBycHJfY3RlIGMxCitKT0lOIHJwcl9jdGUgYzIgT04gYzEuaWQgPSBjMi5pZAor T1JERVIgQlkgYzEuaWQ7CisKKy0tIFN1YnF1ZXJ5IGluIEZST00gY2xhdXNlCitTRUxFQ1QgKgor RlJPTSAoCisgICAgU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKKyAgICBG Uk9NIHJwcl9jb3B5CisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBPUkRFUiBCWSBpZAorICAg ICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICAgICAgUEFUVEVSTiAoQSBCPykKKyAgICAgICAgREVGSU5FIEEgQVMgdmFsID4gMTAsIEIgQVMg dmFsID4gMjAKKyAgICApCispIHN1YgorV0hFUkUgY250ID4gMAorT1JERVIgQlkgaWQ7CisKKy0t IE5lc3RlZCBzdWJxdWVyaWVzCitTRUxFQ1QgKgorRlJPTSAoCisgICAgU0VMRUNUICoKKyAgICBG Uk9NICgKKyAgICAgICAgU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKKyAg ICAgICAgRlJPTSBycHJfY29weQorICAgICAgICBXSU5ET1cgdyBBUyAoCisgICAgICAgICAgICBP UkRFUiBCWSBpZAorICAgICAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICBQQVRURVJOIChBKykKKyAgICAgICAgICAgIERF RklORSBBIEFTIHZhbCA+PSAxMAorICAgICAgICApCisgICAgKSBpbm5lcl9zdWIKKyAgICBXSEVS RSBjbnQgPiAwCispIG91dGVyX3N1YgorT1JERVIgQlkgaWQ7CisKK0RST1AgVEFCTEUgcnByX2Nv cHk7CisKKy0tIERJU1RJTkNUIGFuZCBzZXQgb3BlcmF0aW9ucyAodGVzdHMgZXF1YWxmdW5jcy5j KQorCitDUkVBVEUgVEFCTEUgcnByX2VxdWFsIChpZCBJTlQsIHZhbCBJTlQpOworSU5TRVJUIElO VE8gcnByX2VxdWFsIFZBTFVFUyAoMSwgMTApLCAoMiwgMjApLCAoMywgMTApLCAoNCwgMjApOwor CistLSBESVNUSU5DVCB3aXRoIFJQUgorU0VMRUNUIERJU1RJTkNUIGNudAorRlJPTSAoCisgICAg U0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKKyAgICBGUk9NIHJwcl9lcXVh bAorICAgIFdJTkRPVyB3IEFTICgKKyAgICAgICAgT1JERVIgQlkgdmFsCisgICAgICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBBRlRF UiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgICAgIFBBVFRFUk4gKEErKQorICAgICAgICBE RUZJTkUgQSBBUyB2YWwgPiAwCisgICAgKQorKSBzdWIKK09SREVSIEJZIGNudDsKKworLS0gVU5J T04gd2l0aCBSUFIgaW4gYm90aCBzaWRlcworU0VMRUNUIGlkLCB2YWwsIGNudCBGUk9NICgKKyAg ICBTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorICAgIEZST00gcnByX2Vx dWFsCisgICAgV0hFUkUgdmFsID0gMTAKKyAgICBXSU5ET1cgdyBBUyAoCisgICAgICAgIE9SREVS IEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgICAgICBQQVRURVJOIChBKykKKyAgICAgICAgREVGSU5FIEEgQVMgdmFsID4g MAorICAgICkKKykgc3ViMQorVU5JT04KK1NFTEVDVCBpZCwgdmFsLCBjbnQgRlJPTSAoCisgICAg U0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKKyAgICBGUk9NIHJwcl9lcXVh bAorICAgIFdIRVJFIHZhbCA9IDIwCisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBPUkRFUiBC WSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSspCisgICAgICAgIERFRklORSBBIEFTIHZhbCA+IDAK KyAgICApCispIHN1YjIKK09SREVSIEJZIGlkOworCistLSBVTklPTiBBTEwKK1NFTEVDVCBpZCwg Y250IEZST00gKAorICAgIFNFTEVDVCBpZCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorICAgIEZS T00gcnByX2VxdWFsCisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBPUkRFUiBCWSBpZAorICAg ICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICAgICAgUEFUVEVSTiAoQSspCisgICAgICAgIERFRklORSBBIEFTIHZhbCA+IDEwCisgICAgKQor KSBzdWIKK1VOSU9OIEFMTAorU0VMRUNUIGlkLCBjbnQgRlJPTSAoCisgICAgU0VMRUNUIGlkLCBD T1VOVCgqKSBPVkVSIHcgYXMgY250CisgICAgRlJPTSBycHJfZXF1YWwKKyAgICBXSU5ET1cgdyBB UyAoCisgICAgICAgIE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChCKykKKyAgICAgICAg REVGSU5FIEIgQVMgdmFsIDw9IDEwCisgICAgKQorKSBzdWIKK09SREVSIEJZIGlkLCBjbnQ7CisK Ky0tIElOVEVSU0VDVAorU0VMRUNUIGlkLCBjbnQgRlJPTSAoCisgICAgU0VMRUNUIGlkLCBDT1VO VCgqKSBPVkVSIHcgYXMgY250CisgICAgRlJPTSBycHJfZXF1YWwKKyAgICBXSEVSRSBpZCA8PSAz CisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVS TiAoQSspCisgICAgICAgIERFRklORSBBIEFTIHZhbCA+IDAKKyAgICApCispIHN1YjEKK0lOVEVS U0VDVAorU0VMRUNUIGlkLCBjbnQgRlJPTSAoCisgICAgU0VMRUNUIGlkLCBDT1VOVCgqKSBPVkVS IHcgYXMgY250CisgICAgRlJPTSBycHJfZXF1YWwKKyAgICBXSEVSRSBpZCA+PSAyCisgICAgV0lO RE9XIHcgQVMgKAorICAgICAgICBPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSspCisg ICAgICAgIERFRklORSBBIEFTIHZhbCA+IDAKKyAgICApCispIHN1YjIKK09SREVSIEJZIGlkOwor CitEUk9QIFRBQkxFIHJwcl9lcXVhbDsKKworLS0gVmlldyB3aXRoIG11bHRpcGxlIHdpbmRvdyBk ZWZpbml0aW9ucworCitDUkVBVEUgVEFCTEUgcnByX211bHRpd2luIChpZCBJTlQsIHZhbCBJTlQp OworSU5TRVJUIElOVE8gcnByX211bHRpd2luIFZBTFVFUyAoMSwgMTApLCAoMiwgMjApLCAoMywg MzApOworCitDUkVBVEUgVklFVyBycHJfbXVsdGl3aW5fdiBBUworU0VMRUNUCisgICAgaWQsCisg ICAgdmFsLAorICAgIENPVU5UKCopIE9WRVIgdzEgYXMgY250MSwKKyAgICBDT1VOVCgqKSBPVkVS IHcyIGFzIGNudDIKK0ZST00gcnByX211bHRpd2luCitXSU5ET1cKKyAgICB3MSBBUyAoCisgICAg ICAgIE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBKykKKyAgICAgICAgREVGSU5FIEEg QVMgdmFsID4gMTUKKyAgICApLAorICAgIHcyIEFTICgKKyAgICAgICAgT1JERVIgQlkgaWQKKyAg ICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgICAgIFBBVFRFUk4gKEIqKQorICAgICAgICBERUZJTkUgQiBBUyB2YWwgPD0gMTUKKyAgICAp OworCitTRUxFQ1QgKiBGUk9NIHJwcl9tdWx0aXdpbl92IE9SREVSIEJZIGlkOworU0VMRUNUIHBn X2dldF92aWV3ZGVmKCdycHJfbXVsdGl3aW5fdic6OnJlZ2NsYXNzKTsKKworLS0ge259IHF1YW50 aWZpZXIgZGlzcGxheSBpbiB2aWV3CitDUkVBVEUgVklFVyBycHJfcXVhbnRfbl92IEFTCitTRUxF Q1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9zZXJpYWwKK1dJTkRPVyB3IEFT IChPUkRFUiBCWSBpZAorICAgICAgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIElOSVRJQUwKKyAgICAgICAgICAgICBQ QVRURVJOIChBezN9KQorICAgICAgICAgICAgIERFRklORSBBIEFTIHZhbCA+IDApOworU0VMRUNU IHBnX2dldF92aWV3ZGVmKCdycHJfcXVhbnRfbl92Jzo6cmVnY2xhc3MpOworCistLSB7bix9IHF1 YW50aWZpZXIgZGlzcGxheSBpbiB2aWV3CitDUkVBVEUgVklFVyBycHJfcXVhbnRfbl9wbHVzX3Yg QVMKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcKK0ZST00gcnByX3NlcmlhbAorV0lO RE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgSU5JVElBTAorICAgICAg ICAgICAgIFBBVFRFUk4gKEF7Mix9KQorICAgICAgICAgICAgIERFRklORSBBIEFTIHZhbCA+IDAp OworU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdycHJfcXVhbnRfbl9wbHVzX3YnOjpyZWdjbGFzcyk7 CisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0gRXJyb3IgQ2FzZXMgVGVzdHMKKy0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisKK0RST1AgVEFCTEUg SUYgRVhJU1RTIHJwcl9lcnI7CitDUkVBVEUgVEFCTEUgcnByX2VyciAoaWQgSU5ULCB2YWwgSU5U KTsKK0lOU0VSVCBJTlRPIHJwcl9lcnIgVkFMVUVTICgxLCAxMCksICgyLCAyMCk7CisKKy0tIFN5 bnRheCBlcnJvcnMKKworLS0gSW52YWxpZCBxdWFudGlmaWVyIHN5bnRheAorU0VMRUNUIENPVU5U KCopIE9WRVIgdworRlJPTSBycHJfZXJyCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBQQVRURVJOIChBKyEpCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKKy0tIEV4cGVjdGVk OiBTeW50YXggZXJyb3IKKworLS0gVW5tYXRjaGVkIHBhcmVudGhlc2VzCitTRVQgY2xpZW50X21p bl9tZXNzYWdlcyA9IE5PVElDRTsKK0RPICQkCitCRUdJTgorICAgIEVYRUNVVEUgJ1NFTEVDVCBD T1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfZXJyIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgUEFUVEVSTiAoKEEg QikgREVGSU5FIEEgQVMgdmFsID4gMCwgQiBBUyB2YWwgPiAxMCknOworICAgIFJBSVNFIE5PVElD RSAnVW5tYXRjaGVkIHBhcmVudGhlc2VzOiBVTkVYUEVDVEVEIFNVQ0NFU1MnOworRVhDRVBUSU9O CisgICAgV0hFTiBzeW50YXhfZXJyb3IgVEhFTgorICAgICAgICBSQUlTRSBOT1RJQ0UgJ1VubWF0 Y2hlZCBwYXJlbnRoZXNlczogRVhQRUNURUQgRVJST1IgLSAlJywgU1FMRVJSTTsKKyAgICBXSEVO IE9USEVSUyBUSEVOCisgICAgICAgIFJBSVNFIE5PVElDRSAnVW5tYXRjaGVkIHBhcmVudGhlc2Vz OiBVTkVYUEVDVEVEIEVSUk9SIC0gJScsIFNRTEVSUk07CitFTkQgJCQ7CitTRVQgY2xpZW50X21p bl9tZXNzYWdlcyA9IFdBUk5JTkc7CisKKy0tIEVtcHR5IERFRklORQorU0VMRUNUIENPVU5UKCop IE9WRVIgdworRlJPTSBycHJfZXJyCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQ QVRURVJOIChBKykKKyAgICBERUZJTkUKKyk7CistLSBFeHBlY3RlZDogU3ludGF4IGVycm9yCisK Ky0tIEVtcHR5IFBBVFRFUk4KK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZST00gcnByX2Vycgor V0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoKQorICAgIERFRklORSBB IEFTIHZhbCA+IDAKKyk7CistLSBFeHBlY3RlZDogU3ludGF4IGVycm9yCisKKy0tIERFRklORSB3 aXRob3V0IFBBVFRFUk4gKFBBVFRFUk4gYW5kIERFRklORSBtdXN0IGJlIHVzZWQgdG9nZXRoZXIp CitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CitGUk9NIHJwcl9lcnIKK1dJTkRPVyB3IEFTICgKKyAg ICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIERFRklORSBBIEFTIHZhbCA+IDAKKyk7CistLSBFeHBlY3RlZDogU3lu dGF4IGVycm9yCisKKy0tIFF1YWxpZmllZCBjb2x1bW4gcmVmZXJlbmNlcyAoTk9UIFNVUFBPUlRF RCkKKworLS0gUGF0dGVybiB2YXJpYWJsZSBxdWFsaWZpZWQgbmFtZTogbm90IHN1cHBvcnRlZCAo dmFsaWQgcGVyIFNRTCBzdGFuZGFyZCA0LjE2LCBub3QgeWV0IGltcGxlbWVudGVkKQorU0VMRUNU IENPVU5UKCopIE9WRVIgdworRlJPTSBycHJfZXJyCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIg QlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBBLnZhbCA+IDAKKyk7CistLSBF eHBlY3RlZDogRVJST1I6IHBhdHRlcm4gdmFyaWFibGUgcXVhbGlmaWVkIGNvbHVtbiByZWZlcmVu Y2UgImEudmFsIiBpcyBub3Qgc3VwcG9ydGVkCisKKy0tIFBBVFRFUk4tb25seSB2YXJpYWJsZSBx dWFsaWZpZWQgbmFtZTogbm90IHN1cHBvcnRlZCBldmVuIHdpdGhvdXQgREVGSU5FIGVudHJ5CitT RUxFQ1QgQ09VTlQoKikgT1ZFUiB3CitGUk9NIHJwcl9lcnIKK1dJTkRPVyB3IEFTICgKKyAgICBP UkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIFBBVFRFUk4gKEErIEIrKQorICAgIERFRklORSBBIEFTIEIudmFsID4gMAor KTsKKy0tIEV4cGVjdGVkOiBFUlJPUjogcGF0dGVybiB2YXJpYWJsZSBxdWFsaWZpZWQgY29sdW1u IHJlZmVyZW5jZSAiYi52YWwiIGlzIG5vdCBzdXBwb3J0ZWQKKworLS0gREVGSU5FLW9ubHkgdmFy aWFibGUgcXVhbGlmaWVkIG5hbWU6IHN0aWxsIGEgcGF0dGVybiB2YXJpYWJsZSwgbm90IGEgcmFu Z2UgdmFyaWFibGUKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZST00gcnByX2VycgorV0lORE9X IHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMg dmFsID4gMCwgQiBBUyBCLnZhbCA+IDAKKyk7CistLSBFeHBlY3RlZDogRVJST1I6IHBhdHRlcm4g dmFyaWFibGUgcXVhbGlmaWVkIGNvbHVtbiByZWZlcmVuY2UgImIudmFsIiBpcyBub3Qgc3VwcG9y dGVkCisKKy0tIEZST00tY2xhdXNlIHJhbmdlIHZhcmlhYmxlIHF1YWxpZmllZCBuYW1lOiBub3Qg YWxsb3dlZCAocHJvaGliaXRlZCBieSBTUUwgc3RhbmRhcmQgNi41KQorU0VMRUNUIENPVU5UKCop IE9WRVIgdworRlJPTSBycHJfZXJyCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQ QVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBycHJfZXJyLnZhbCA+IDAKKyk7CistLSBFeHBl Y3RlZDogRVJST1I6IHJhbmdlIHZhcmlhYmxlIHF1YWxpZmllZCBjb2x1bW4gcmVmZXJlbmNlICJy cHJfZXJyLnZhbCIgaXMgbm90IGFsbG93ZWQKKworLS0gU2VtYW50aWMgZXJyb3JzCisKKy0tIFVu ZGVmaW5lZCBjb2x1bW4gaW4gREVGSU5FCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CitGUk9NIHJw cl9lcnIKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAg IERFRklORSBBIEFTIG5vbmV4aXN0ZW50X2NvbHVtbiA+IDAKKyk7CistLSBFeHBlY3RlZDogRVJS T1I6IGNvbHVtbiAibm9uZXhpc3RlbnRfY29sdW1uIiBkb2VzIG5vdCBleGlzdAorCistLSBUeXBl IG1pc21hdGNoCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CitGUk9NIHJwcl9lcnIKK1dJTkRPVyB3 IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHZh bCA+ICdzdHJpbmcnCispOworLS0gRXhwZWN0ZWQ6IEVSUk9SOiBpbnZhbGlkIGlucHV0IHN5bnRh eCBmb3IgdHlwZSBpbnRlZ2VyOiAic3RyaW5nIgorCistLSBBZ2dyZWdhdGUgZnVuY3Rpb24gaW4g REVGSU5FIChpZiBub3QgYWxsb3dlZCkKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZST00gcnBy X2VycgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAg REVGSU5FIEEgQVMgQ09VTlQoKikgPiAwCispOworLS0gRXhwZWN0ZWQ6IEVSUk9SOiBhZ2dyZWdh dGUgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBERUZJTkUKKworLS0gU3VicXVlcnkgaW4g REVGSU5FIChOT1QgU1VQUE9SVEVEKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdworRlJPTSBycHJf ZXJyCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBE RUZJTkUgQSBBUyB2YWwgPiAoU0VMRUNUIG1heCh2YWwpIEZST00gcnByX2VycikKKyk7CistLSBF eHBlY3RlZDogRVJST1I6IGNhbm5vdCB1c2Ugc3VicXVlcnkgaW4gREVGSU5FIGV4cHJlc3Npb24K KworLS0gRWRnZSBjYXNlcworCistLSBQYXR0ZXJuIHZhcmlhYmxlIG5vdCB1c2VkIChzaG91bGQg d29yaywgZXh0cmEgdmFycyBpZ25vcmVkKQorU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIg dyBhcyBjbnQKK0ZST00gcnByX2VycgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg UEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgdmFsID4gMCwgQiBBUyB2YWwgPiA1LCBDIEFT IHZhbCA+IDEwCispCitPUkRFUiBCWSBpZDsKKworRFJPUCBUQUJMRSBycHJfZXJyOworCistLSBO VUxMIGhhbmRsaW5nCisKK0NSRUFURSBUQUJMRSBycHJfbnVsbCAoaWQgSU5ULCB2YWwgSU5UKTsK K0lOU0VSVCBJTlRPIHJwcl9udWxsIFZBTFVFUyAoMSwgMTApLCAoMiwgTlVMTCksICgzLCAzMCk7 CisKKy0tIE5VTEwgaW4gREVGSU5FIGV4cHJlc3Npb24KK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgq KSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9udWxsCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIg QlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAxNQorKQorT1JERVIg QlkgaWQ7CisKKy0tIElTIE5VTEwgaW4gREVGSU5FCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikg T1ZFUiB3IGFzIGNudAorRlJPTSBycHJfbnVsbAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZ IGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgUEFUVEVSTiAoTispCisgICAgREVGSU5FIE4gQVMgdmFsIElTIE5VTEwKKykKK09SREVS IEJZIGlkOworCistLSBJUyBOT1QgTlVMTCBpbiBERUZJTkUKK1NFTEVDVCBpZCwgdmFsLCBDT1VO VCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9udWxsCitXSU5ET1cgdyBBUyAoCisgICAgT1JE RVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBQQVRURVJOIChOTispCisgICAgREVGSU5FIE5OIEFTIHZhbCBJUyBOT1QgTlVM TAorKQorT1JERVIgQlkgaWQ7CisKK0RST1AgVEFCTEUgcnByX251bGw7CisKKy0tIENvbXBvdW5k IG5hdmlnYXRpb246IGlubmVyIG5hdiBtdXN0IGJlIGRpcmVjdCBhcmcgKG5vdCBuZXN0ZWQgaW4g ZXhwcmVzc2lvbikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVz KDEsMTApIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBB UyBQUkVWKHYgKyBGSVJTVCh2KSkgPiAwCispOworCistLSBGSVJTVC9MQVNUIHdyYXBwaW5nIEZJ UlNUL0xBU1Q6IHByb2hpYml0ZWQKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJh dGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBE RUZJTkUgQSBBUyBGSVJTVChGSVJTVCh2KSkgPiAwCispOworCistLSBUcmlwbGUgbmVzdGluZzog cHJvaGliaXRlZCAoMy1sZXZlbCBkZWVwIG5hdmlnYXRpb24pCitTRUxFQ1QgY291bnQoKikgT1ZF UiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFU VEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgUFJFVihGSVJTVChQUkVWKHYpKSkgPiAwCispOwor CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tIFdpbmRvdyBEZWR1cGxpY2F0aW9uIFRlc3RzCistLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLS0gbm9u LVJQUiBhbmQgUlBSIHdpbmRvd3Mgd2l0aCBpZGVudGljYWwgYmFzZSBmcmFtZSBhcmUga2VwdCBz ZXBhcmF0ZS4KK1NFTEVDVCBpZCwgdmFsLAorICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSICgKKyAg ICAgICAgT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgKSBBUyBmdl9ub3JtYWwsCisgICAgZmlyc3RfdmFsdWUo aWQpIE9WRVIgdzEgQVMgZnZfcnByCitGUk9NIChWQUxVRVMgKDEsIDEwKSwgKDIsIDIwKSwgKDMs IDMwKSwgKDQsIDQwKSkgQVMgdChpZCwgdmFsKQorV0lORE9XIHcxIEFTICgKKyAgICBPUkRFUiBC WSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHZhbCA+IDEwCispOworCistLSA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tIFBhdHRlcm4gT3B0aW1pemF0aW9uIFRlc3RzCistLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFRlc3RzIGZvciBw YXR0ZXJuIG9wdGltaXphdGlvbiBpbiBvcHRpbWl6ZXIvcGxhbi9ycHIuYworLS0gVXNlIEVYUExB SU4gdG8gdmVyaWZ5IG9wdGltaXplZCBwYXR0ZXJuIChzaG93biBhcyAiUGF0dGVybjogLi4uIikK KworQ1JFQVRFIFRBQkxFIHJwcl9wbGFuIChpZCBJTlQsIHZhbCBJTlQpOworSU5TRVJUIElOVE8g cnByX3BsYW4gVkFMVUVTCisgICAgKDEsIDEwKSwgKDIsIDIwKSwgKDMsIDMwKSwgKDQsIDQwKSwg KDUsIDUwKSwKKyAgICAoNiwgNjApLCAoNywgNzApLCAoOCwgODApLCAoOSwgOTApLCAoMTAsIDEw MCk7CisKKy0tIENvbnNlY3V0aXZlIFZBUiBtZXJnZTogQSBBIEEgLT4gYXszfQorRVhQTEFJTiAo Q09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cg dyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoQSBBIEEpIERFRklORSBBIEFTIHZhbCA+ IDApOworCistLSBDb25zZWN1dGl2ZSBWQVIgbWVyZ2U6IEF7Mn0gQXszfSAtPiBhezV9CitFWFBM QUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJ TkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOIChBezJ9IEF7M30pIERFRklORSBB IEFTIHZhbCA+IDApOworCistLSBDb25zZWN1dGl2ZSBWQVIgbWVyZ2U6IEErIEEqIC0+IGErCitF WFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4K K1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOIChBKyBBKikgREVGSU5FIEEg QVMgdmFsID4gMCk7CisKKy0tIENvbnNlY3V0aXZlIFZBUiBtZXJnZTogQSBBKyAtPiBhezIsfQor LS0gVGVzdHMgbGluZSAyNTE6IGNoaWxkLT5tYXggPT0gUlBSX1FVQU5USVRZX0lORiBicmFuY2gg aW4gbWVyZ2VDb25zZWN1dGl2ZVZhcnMKKy0tIHByZXY6IEF7MSwxfSAoZmluaXRlKSwgY2hpbGQ6 IEErIChpbmZpbml0ZSkgdHJpZ2dlcnMgbGluZSAyNTEgZXZhbHVhdGlvbgorRVhQTEFJTiAoQ09T VFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBB UyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoQSBBKykgREVGSU5FIEEgQVMgdmFsID4gMCk7 CisKKy0tIENvbnNlY3V0aXZlIEdST1VQIG1lcmdlIHdpdGggZmluaXRlIHF1YW50aWZpZXJzOiAo KEEgQil7NX0pICgoQSBCKXsxMH0pIC0+IG1lcmdlZAorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VM RUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkg aWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg ICAgICAgICAgUEFUVEVSTiAoKChBIEIpezV9KSAoKEEgQil7MTB9KSkgREVGSU5FIEEgQVMgdmFs IDw9IDUwLCBCIEFTIHZhbCA+IDUwKTsKKworLS0gQ29uc2VjdXRpdmUgR1JPVVAgbWVyZ2Ugd2l0 aCB1bmJvdW5kZWQ6IChBIEIpKyAoQSBCKSsgLT4gKGEgYil7Mix9CitFWFBMQUlOIChDT1NUUyBP RkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChP UkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICAgICAgICAgICBQQVRURVJOICgoQSBCKSsgKEEgQikrKSBERUZJTkUgQSBBUyB2YWwg PD0gNTAsIEIgQVMgdmFsID4gNTApOworCistLSBDb25zZWN1dGl2ZSBHUk9VUCBtZXJnZTogKEEg Qil7Mn0gKEEgQikrIC0+IChhIGIpezMsfQorLS0gVGVzdHMgbGluZSAzMjU6IGNoaWxkLT5tYXgg PT0gUlBSX1FVQU5USVRZX0lORiBicmFuY2ggaW4gbWVyZ2VDb25zZWN1dGl2ZUdyb3VwcworLS0g cHJldjogKEEgQil7MiwyfSAoZmluaXRlKSwgY2hpbGQ6IChBIEIpKyAoaW5maW5pdGUpIHRyaWdn ZXJzIGxpbmUgMzI1IGV2YWx1YXRpb24KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VO VCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAg IFBBVFRFUk4gKChBIEIpezJ9IChBIEIpKykgREVGSU5FIEEgQVMgdmFsIDw9IDUwLCBCIEFTIHZh bCA+IDUwKTsKKworLS0gUFJFRklYIG1lcmdlOiBBIEIgKEEgQikrIC0+IChhIGIpezIsfQorRVhQ TEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitX SU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoQSBCIChBIEIpKykgREVGSU5F IEEgQVMgdmFsIDw9IDUwLCBCIEFTIHZhbCA+IDUwKTsKKworLS0gUFJFRklYIGFuZCBTVUZGSVgg bWVyZ2U6IEEgQiAoQSBCKSsgQSBCIC0+IChhIGIpezMsfQorRVhQTEFJTiAoQ09TVFMgT0ZGKQor U0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIg QlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgICAgICAgICAgUEFUVEVSTiAoQSBCIChBIEIpKyBBIEIpIERFRklORSBBIEFTIHZhbCA8PSA0 MCwgQiBBUyB2YWwgPiA0MCk7CisKKy0tIEZsYXR0ZW4gbmVzdGVkOiBBICgoQikgKEMpKSAtPiBh IGIgYworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJw cl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoQSAoKEIpIChD KSkpIERFRklORSBBIEFTIHZhbCA8PSAzMCwgQiBBUyB2YWwgPD0gNjAsIEMgQVMgdmFsID4gNjAp OworCistLSBEYXRhIGV4ZWN1dGlvbjogU0VRIGZsYXR0ZW4gcHJvZHVjZXMgY29ycmVjdCByZXN1 bHRzCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfcGxh bgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVY VCBST1cKKyAgICAgICAgICAgICBQQVRURVJOIChBICgoQikgKEMpKSkgREVGSU5FIEEgQVMgdmFs IDw9IDMwLCBCIEFTIHZhbCA8PSA2MCwgQyBBUyB2YWwgPiA2MCk7CisKKy0tIEFMVCBmbGF0dGVu OiAoQSB8IChCIHwgQykpKyAtPiAoYSB8IGIgfCBjKSsKK0VYUExBSU4gKENPU1RTIE9GRikKK1NF TEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZ IGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg ICAgICAgICAgIFBBVFRFUk4gKChBIHwgKEIgfCBDKSkrKSBERUZJTkUgQSBBUyB2YWwgPD0gMzAs IEIgQVMgdmFsIDw9IDYwLCBDIEFTIHZhbCA+IDYwKTsKKworLS0gQUxUIGRlZHVwbGljYXRlOiAo QSB8IEIgfCBBKSAtPiAoYSB8IGIpCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQo KikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQ QVRURVJOICgoQSB8IEIgfCBBKSspIERFRklORSBBIEFTIHZhbCA8PSA1MCwgQiBBUyB2YWwgPiA1 MCk7CisKKy0tIERhdGEgZXhlY3V0aW9uOiBBTFQgZGVkdXAgcHJvZHVjZXMgY29ycmVjdCByZXN1 bHRzCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfcGxh bgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBM QVNUIFJPVworICAgICAgICAgICAgIFBBVFRFUk4gKChBIHwgQiB8IEEpKykgREVGSU5FIEEgQVMg dmFsIDw9IDUwLCBCIEFTIHZhbCA+IDUwKTsKKworLS0gUXVhbnRpZmllciBtdWx0aXBseTogKEF7 Mn0pezN9IC0+IGF7Nn0KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVS IHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4g KChBezJ9KXszfSkgREVGSU5FIEEgQVMgdmFsID4gMCk7CisKKy0tIFF1YW50aWZpZXIgbXVsdGlw bHkgd2l0aCBjaGlsZCByYW5nZTogKEF7MiwzfSl7M30gLT4gYXs2LDl9CistLSBvdXRlciBleGFj dCwgY2hpbGQgcmFuZ2UgLSBvcHRpbWl6YXRpb24gYXBwbGllcworRVhQTEFJTiAoQ09TVFMgT0ZG KQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JE RVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgICAgICAgICAgUEFUVEVSTiAoKEF7MiwzfSl7M30pIERFRklORSBBIEFTIHZhbCA+IDAp OworCistLSBRdWFudGlmaWVyIE5PIG11bHRpcGx5OiAoQXsyfSl7MiwzfSBzdGF5cyBhcyAoYXsy fSl7MiwzfQorLS0gb3V0ZXIgcmFuZ2UgLSBnYXBzIHdvdWxkIG9jY3VyICg0LDYgbm90IDQsNSw2 KSwgbm8gb3B0aW1pemF0aW9uCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikg T1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRU RVJOICgoQXsyfSl7MiwzfSkgREVGSU5FIEEgQVMgdmFsID4gMCk7CisKKy0tIFF1YW50aWZpZXIg Tk8gbXVsdGlwbHk6IChBezJ9KXsyLH0gc3RheXMgYXMgKGF7Mn0pezIsfQorLS0gb3V0ZXIgdW5i b3VuZGVkIC0gZ2FwcyB3b3VsZCBvY2N1ciAoNCw2LDgsLi4uIG5vdCA0LDUsNiwuLi4pLCBubyBv cHRpbWl6YXRpb24KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcg RlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKChB ezJ9KXsyLH0pIERFRklORSBBIEFTIHZhbCA+IDApOworCistLSBRdWFudGlmaWVyIG11bHRpcGx5 OiAoQSl7Mix9IC0+IGF7Mix9CistLSBjaGlsZCBleGFjdCAxIC0gbm8gZ2Fwcywgb3B0aW1pemF0 aW9uIGFwcGxpZXMKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcg RlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKChB KXsyLH0pIERFRklORSBBIEFTIHZhbCA+IDApOworCistLSBRdWFudGlmaWVyIG11bHRpcGx5OiAo QSkrIC0+IGErCistLSBjaGlsZCBleGFjdCAxIC0gbm8gZ2Fwcywgb3B0aW1pemF0aW9uIGFwcGxp ZXMKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJf cGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKChBKSspIERFRklO RSBBIEFTIHZhbCA+IDApOworCistLSBRdWFudGlmaWVyIE5PIG11bHRpcGx5OiAoQXsyfSl7Myw1 fSBzdGF5cyBhcyAoYXsyfSl7Myw1fQorLS0gb3V0ZXIgcmFuZ2UsIGNoaWxkIGV4YWN0ID4gMSAt IGdhcHMgd291bGQgb2NjdXIgKDYsOCwxMCBub3QgNiw3LDgsOSwxMCkKK0VYUExBSU4gKENPU1RT IE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMg KE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgICAgICAgICAgIFBBVFRFUk4gKChBezJ9KXszLDV9KSBERUZJTkUgQSBBUyB2YWwg PiAwKTsKKworLS0gUXVhbnRpZmllciBOTyBtdWx0aXBseTogKEF7MiwzfSl7MiwzfSBzdGF5cyBh cyAoYXsyLDN9KXsyLDN9CistLSBvdXRlciByYW5nZSwgY2hpbGQgcmFuZ2UgLSBnYXBzIHBvc3Np YmxlIChlLmcuLCAoQXs0LDV9KXsyLDN9IG1pc3NlcyAxMSkKK0VYUExBSU4gKENPU1RTIE9GRikK K1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVS IEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgICAgICAgICAgIFBBVFRFUk4gKChBezIsM30pezIsM30pIERFRklORSBBIEFTIHZhbCA+IDAp OworCistLSBOZXN0ZWQgdW5ib3VuZGVkOiAoQSopKiAtPiBhKgorRVhQTEFJTiAoQ09TVFMgT0ZG KQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JE RVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgICAgICAgICAgUEFUVEVSTiAoKEEqKSopIERFRklORSBBIEFTIHZhbCA+IDApOworCist LSBOZXN0ZWQgdW5ib3VuZGVkOiAoQSspKiAtPiBhKgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VM RUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkg aWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg ICAgICAgICAgUEFUVEVSTiAoKEErKSopIERFRklORSBBIEFTIHZhbCA+IDApOworCistLSBOZXN0 ZWQgdW5ib3VuZGVkOiAoQSspKyAtPiBhKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENP VU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAg ICAgUEFUVEVSTiAoKEErKSspIERFRklORSBBIEFTIHZhbCA+IDApOworCistLSBVbndyYXAgR1JP VVB7MSwxfTogKEEpIC0+IGEKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBP VkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRF Uk4gKChBKSkgREVGSU5FIEEgQVMgdmFsID4gMCk7CisKKy0tIFVud3JhcCBHUk9VUHsxLDF9OiAo QSBCKSAtPiBhIGIKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcg RlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKChB IEIpKSBERUZJTkUgQSBBUyB2YWwgPD0gNTAsIEIgQVMgdmFsID4gNTApOworCistLSBDb21iaW5l ZCBvcHRpbWl6YXRpb246IEEgQSAoQiBCKSsgQiBCIEMgQyBDIC0+IGF7Mn0gKGJ7Mn0pezIsfSBj ezN9CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnBy X3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOIChBIEEgKEIgQikr IEIgQiBDIEMgQykKKyAgICAgICAgICAgICBERUZJTkUgQSBBUyB2YWwgPD0gMjAsIEIgQVMgdmFs ID4gMjAgQU5EIHZhbCA8PSA3MCwgQyBBUyB2YWwgPiA3MCk7CisKKy0tIENvbnNlY3V0aXZlIEdS T1VQIG1lcmdlIHdpdGggdW5ib3VuZGVkOiAoQSspIChBKykgLT4gYXsyLH0KKy0tIFRlc3RzIG1l cmdlQ29uc2VjdXRpdmVHcm91cHMgd2l0aCBjaGlsZC0+bWF4ID09IElORgorRVhQTEFJTiAoQ09T VFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBB UyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoKEErKSAoQSspKSBERUZJTkUgQSBBUyB2YWwg PiAwKTsKKworLS0gQ29uc2VjdXRpdmUgR1JPVVAgbWVyZ2UgZmluaXRlOiAoQXsxMH0pezIwfSAt PiBhezIwMH0KKy0tIFRlc3RzIG1lcmdlQ29uc2VjdXRpdmVHcm91cHMgd2l0aCBib3RoIGZpbml0 ZQorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9w bGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoKEF7MTB9KXsyMH0p IERFRklORSBBIEFTIHZhbCA+IDApOworCistLSBEaWZmZXJlbnQgR1JPVVAgcHJldmVudHMgbWVy Z2U6IChBIEIpezJ9IChDIEQpezN9CistLSBUZXN0cyBtZXJnZUNvbnNlY3V0aXZlR3JvdXBzIGZs dXNoIHByZXZpb3VzCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3 IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOICgo QSBCKXsyfSAoQyBEKXszfSkKKyAgICAgICAgICAgICBERUZJTkUgQSBBUyB2YWwgPD0gMjUsIEIg QVMgdmFsID4gMjUgQU5EIHZhbCA8PSA1MCwKKyAgICAgICAgICAgICAgICAgICAgQyBBUyB2YWwg PiA1MCBBTkQgdmFsIDw9IDc1LCBEIEFTIHZhbCA+IDc1KTsKKworLS0gRGlmZmVyZW50IGNoaWxk cmVuIGNvdW50IHByZXZlbnRzIG1lcmdlOiAoQSBCKSsgKEEgQiBDKSsKKy0tIFRlc3RzIHJwclBh dHRlcm5DaGlsZHJlbkVxdWFsIGxlbmd0aCBjaGVjaworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VM RUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkg aWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg ICAgICAgICAgUEFUVEVSTiAoKEEgQikrIChBIEIgQykrKQorICAgICAgICAgICAgIERFRklORSBB IEFTIHZhbCA8PSAzMywgQiBBUyB2YWwgPiAzMyBBTkQgdmFsIDw9IDY2LCBDIEFTIHZhbCA+IDY2 KTsKKworLS0gUFJFRklYIG9ubHkgbWVyZ2U6IEEgQiAoQSBCKSsgLT4gKGEgYil7Mix9CistLSBU ZXN0cyBtZXJnZUdyb3VwUHJlZml4U3VmZml4OiBhYnNvcmIgcHJlY2VkaW5nIGVsZW1lbnRzIGlu dG8gR1JPVVAgbWluCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3 IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOIChB IEIgKEEgQikrKSBERUZJTkUgQSBBUyB2YWwgPD0gNTAsIEIgQVMgdmFsID4gNTApOworCistLSBT VUZGSVggb25seSBtZXJnZTogKEEgQikrIEEgQiAtPiAoYSBiKXsyLH0KKy0tIFRlc3RzIG1lcmdl R3JvdXBQcmVmaXhTdWZmaXg6IGFic29yYiBmb2xsb3dpbmcgZWxlbWVudHMgaW50byBHUk9VUCBt aW4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJf cGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKChBIEIpKyBBIEIp IERFRklORSBBIEFTIHZhbCA8PSA1MCwgQiBBUyB2YWwgPiA1MCk7CisKKy0tIE11bHRpcGxlIFNV RkZJWCBhYnNvcnB0aW9uIHdpdGggc2tpcFVudGlsOiAoQSBCKSsgQSBCIEEgQiBDCistLSBUZXN0 cyBtZXJnZUdyb3VwUHJlZml4U3VmZml4OiBza2lwIGFic29yYmVkIHN1ZmZpeCBlbGVtZW50cwor RVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFu CitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoKEEgQikrIEEgQiBBIEIg QykKKyAgICAgICAgICAgICBERUZJTkUgQSBBUyB2YWwgPD0gNTAsIEIgQVMgdmFsID4gNTAgQU5E IHZhbCA8PSA3NSwgQyBBUyB2YWwgPiA3NSk7CisKKy0tIFBSRUZJWCBtZXJnZSB3aXRoIHJlbWFp bmluZyBwcmVmaXg6IEEgQiBDIEQgKEMgRCkrCistLSBUZXN0cyBtZXJnZUdyb3VwUHJlZml4U3Vm Zml4OiB0cmltbWVkIGxpc3QgcmVjb25zdHJ1Y3Rpb24KK0VYUExBSU4gKENPU1RTIE9GRikKK1NF TEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZ IGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg ICAgICAgICAgIFBBVFRFUk4gKEEgQiBDIEQgKEMgRCkrKQorICAgICAgICAgICAgIERFRklORSBB IEFTIHZhbCA8PSAyNSwgQiBBUyB2YWwgPiAyNSBBTkQgdmFsIDw9IDUwLAorICAgICAgICAgICAg ICAgICAgICBDIEFTIHZhbCA+IDUwIEFORCB2YWwgPD0gNzUsIEQgQVMgdmFsID4gNzUpOworCist LSBQUkVGSVggbWVyZ2Ugd2l0aCBxdWFudGlmaWVyczogQSBCKiAoQSBCKikrIC0+IChhIGIqKXsy LH0KKy0tIFRlc3RzIG1lcmdlR3JvdXBQcmVmaXhTdWZmaXg6IHF1YW50aWZpZXIgY29tcGFyaXNv biBpbiBycHJQYXR0ZXJuRXF1YWwKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgq KSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBB VFRFUk4gKEEgQiogKEEgQiopKykKKyAgICAgICAgICAgICBERUZJTkUgQSBBUyB2YWwgPD0gNTAs IEIgQVMgdmFsID4gNTApOworCistLSBQUkVGSVggbWVyZ2Ugd2l0aCBtdWx0aXBsZSBxdWFudGlm aWVyczogQSsgQiogQz8gKEErIEIqIEM/KSsgLT4gKGErIGIqIGM/KXsyLH0KKy0tIFRlc3RzIG1l cmdlR3JvdXBQcmVmaXhTdWZmaXg6IGNvbXBsZXggcXVhbnRpZmllciBwYXR0ZXJucworRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5E T1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoQSsgQiogQz8gKEErIEIqIEM/KSsp CisgICAgICAgICAgICAgREVGSU5FIEEgQVMgdmFsIDw9IDMwLCBCIEFTIHZhbCA+IDMwIEFORCB2 YWwgPD0gNjAsIEMgQVMgdmFsID4gNjApOworCistLSBTVUZGSVggbWVyZ2Ugd2l0aCBxdWFudGlm aWVyczogKEEgQiopKyBBIEIqIC0+IChhIGIqKXsyLH0KKy0tIFRlc3RzIG1lcmdlR3JvdXBQcmVm aXhTdWZmaXg6IHN1ZmZpeCB3aXRoIHF1YW50aWZpZXJzCitFWFBMQUlOIChDT1NUUyBPRkYpCitT RUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBC WSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICAgICAgICAgICBQQVRURVJOICgoQSBCKikrIEEgQiopCisgICAgICAgICAgICAgREVGSU5FIEEg QVMgdmFsIDw9IDUwLCBCIEFTIHZhbCA+IDUwKTsKKworLS0gVW53cmFwIEdST1VQezEsMX06ICgo QSB8IEIgfCBDKSkgLT4gKGEgfCBiIHwgYykKKy0tIFRlc3RzIHRyeVVud3JhcEdyb3VwIHJlbW92 aW5nIHJlZHVuZGFudCBvdXRlciBHUk9VUAorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENP VU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAg ICAgUEFUVEVSTiAoKEEgfCBCIHwgQykpIERFRklORSBBIEFTIHZhbCA8PSAzMCwgQiBBUyB2YWwg PD0gNjAsIEMgQVMgdmFsID4gNjApOworCistLSBEYXRhIGV4ZWN1dGlvbjogR1JPVVAgdW53cmFw IHByb2R1Y2VzIGNvcnJlY3QgcmVzdWx0cworU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIg dyBBUyBjbnQKK0ZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBB RlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgICAgICAgICAgUEFUVEVSTiAoKEEgfCBC IHwgQykpIERFRklORSBBIEFTIHZhbCA8PSAzMCwgQiBBUyB2YWwgPD0gNjAsIEMgQVMgdmFsID4g NjApOworCistLSBSZWx1Y3RhbnQgb3B0aW1pemF0aW9uIGJ5cGFzczogVkFSIG1lcmdlCistLSBB Kz8gQSBzdGF5cyBhcyBhKz8gYSAoZ3JlZWR5IEErIEEgbWVyZ2VzIHRvIGF7Mix9KQorRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5E T1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoQSs/IEEpIERFRklORSBBIEFTIHZh bCA+IDApOworCistLSBSZWx1Y3RhbnQgb3B0aW1pemF0aW9uIGJ5cGFzczogR1JPVVAgbWVyZ2UK Ky0tIChBIEIpKz8gKEEgQikgc3RheXMgc2VwYXJhdGUgKGdyZWVkeSBtZXJnZXMgdG8gKGEgYil7 Mix9KQorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJw cl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoKEEgQikrPyAo QSBCKSkgREVGSU5FIEEgQVMgdmFsIDw9IDUwLCBCIEFTIHZhbCA+IDUwKTsKKworLS0gUmVsdWN0 YW50IG9wdGltaXphdGlvbiBieXBhc3M6IHF1YW50aWZpZXIgbXVsdGlwbHkgKG91dGVyIHJlbHVj dGFudCkKKy0tIChBezJ9KXszfT8gc3RheXMgYXMgKGF7Mn0pezN9PyAoZ3JlZWR5IG1lcmdlcyB0 byBhezZ9KQorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9N IHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoKEF7Mn0p ezN9PykgREVGSU5FIEEgQVMgdmFsID4gMCk7CisKKy0tIFJlbHVjdGFudCBvcHRpbWl6YXRpb24g YnlwYXNzOiBxdWFudGlmaWVyIG11bHRpcGx5IChpbm5lciByZWx1Y3RhbnQpCistLSAoQXsyfT8p ezN9IHN0YXlzIGFzIChhezJ9Pyl7M30gKGdyZWVkeSBtZXJnZXMgdG8gYXs2fSkKK0VYUExBSU4g KENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9X IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKChBezJ9Pyl7M30pIERFRklORSBBIEFT IHZhbCA+IDApOworCistLSBSZWx1Y3RhbnQgb3B0aW1pemF0aW9uIGJ5cGFzczogUFJFRklYIG1l cmdlCistLSBBIEIgKEEgQikrPyBzdGF5cyBzZXBhcmF0ZSAoZ3JlZWR5IG1lcmdlcyB0byAoYSBi KXsyLH0pCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00g cnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOIChBIEIgKEEg QikrPykgREVGSU5FIEEgQVMgdmFsIDw9IDUwLCBCIEFTIHZhbCA+IDUwKTsKKworLS0gUmVsdWN0 YW50IG9wdGltaXphdGlvbiBieXBhc3M6IFNVRkZJWCBtZXJnZQorLS0gKEEgQikrPyBBIEIgc3Rh eXMgc2VwYXJhdGUgKGdyZWVkeSBtZXJnZXMgdG8gKGEgYil7Mix9KQorRVhQTEFJTiAoQ09TVFMg T0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAo T1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoKEEgQikrPyBBIEIpIERFRklORSBBIEFTIHZhbCA8 PSA1MCwgQiBBUyB2YWwgPiA1MCk7CisKKy0tIEdST1VQIHVud3JhcCB3aXRoIHF1YW50aWZpZXIg cHJvcGFnYXRpb246IChBKT8/IEIgLT4gYT8/IGIKKy0tIFNpbmdsZSBWQVIgY2hpbGQgezEsMX0g cmVjZWl2ZXMgR1JPVVAncyBxdWFudGlmaWVyIGFuZCByZWx1Y3RhbnQKK0VYUExBSU4gKENPU1RT IE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMg KE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgICAgICAgICAgIFBBVFRFUk4gKChBKT8/IEIpIERFRklORSBBIEFTIHZhbCA8PSA1 MCwgQiBBUyB2YWwgPiA1MCk7CisKKy0tIFJlbHVjdGFudCBwcmVzZXJ2ZWQgdGhyb3VnaCBBTFQg ZmxhdHRlbgorLS0gKEEgfCAoQiB8IEMpKSs/IGZsYXR0ZW5zIHRvIChhIHwgYiB8IGMpKz8gLSBp bm5lciBBTFQgZmxhdHRlbmVkLCByZWx1Y3RhbnQga2VwdAorRVhQTEFJTiAoQ09TVFMgT0ZGKQor U0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIg QlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgICAgICAgICAgUEFUVEVSTiAoKEEgfCAoQiB8IEMpKSs/KSBERUZJTkUgQSBBUyB2YWwgPD0g MzAsIEIgQVMgdmFsIDw9IDYwLCBDIEFTIHZhbCA+IDYwKTsKKworLS0gUmVsdWN0YW50IG9wdGlt aXphdGlvbiBieXBhc3M6IGFic29ycHRpb24gZmxhZ3MKKy0tIEErPyB3aXRoIFNLSVAgUEFTVCBM QVNUIFJPVyAtIG5vIGFic29ycHRpb24gbWFya2VycyAoZ3JlZWR5IEErIGdldHMgYSsiKQorRVhQ TEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitX SU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1Qg Uk9XIFBBVFRFUk4gKEErPykgREVGSU5FIEEgQVMgdmFsID4gMCk7CisKKy0tIER1cGxpY2F0ZSBH Uk9VUCByZW1vdmFsOiAoKEEgfCBCKSsgfCAoQSB8IEIpKykgLT4gKGEgfCBiKSsKK0VYUExBSU4g KENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9X IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKChBIHwgQikrIHwgKEEgfCBCKSspIERF RklORSBBIEFTIHZhbCA8PSA1MCwgQiBBUyB2YWwgPiA1MCk7CisKKy0tIENvbnNlY3V0aXZlIFZB UiBtZXJnZSB3aXRoIHplcm8tbWluOiBBKiBBKyAtPiBhKworRVhQTEFJTiAoQ09TVFMgT0ZGKQor U0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIg QlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgICAgICAgICAgUEFUVEVSTiAoQSogQSspIERFRklORSBBIEFTIHZhbCA+IDApOworCistLSBD b25zZWN1dGl2ZSBWQVIgbWVyZ2UgKDQtZWxlbWVudCk6IEEgQXsyfSBBKyBBezN9IC0+IGF7Nyx9 CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3Bs YW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOIChBIEF7Mn0gQSsgQXsz fSkgREVGSU5FIEEgQVMgdmFsID4gMCk7CisKKy0tIFBSRUZJWCtTVUZGSVggbWVyZ2UgKDUtd2F5 KTogQSBCIEEgQiAoQSBCKSsgQSBCIEEgQiAtPiAoYSBiKXs1LH0KK0VYUExBSU4gKENPU1RTIE9G RikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9S REVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgICAgICAgICAgIFBBVFRFUk4gKEEgQiBBIEIgKEEgQikrIEEgQiBBIEIpCisgICAgICAg ICAgICAgREVGSU5FIEEgQVMgdmFsIDw9IDUwLCBCIEFTIHZhbCA+IDUwKTsKKworLS0gVW53cmFw IHNpbmdsZS1pdGVtIEFMVCBhZnRlciBkZWR1cDogKEEgfCBBKSsgLT4gYSsKKy0tIEFMVCBkZWR1 cCByZWR1Y2VzIHRvIHNpbmdsZS1pdGVtLCB0aGVuIEdST1VQIHVud3JhcAorRVhQTEFJTiAoQ09T VFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBB UyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoKEEgfCBBKSspIERFRklORSBBIEFTIHZhbCA+ IDApOworCistLSBHUk9VUHsxLDF9IHRvIFNFUSB3aXRoIGZsYXR0ZW46ICgoQSBCKShDIEQpKSAt PiBhIGIgYyBkCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZS T00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOICgoKEEg QikoQyBEKSkpCisgICAgICAgICAgICAgREVGSU5FIEEgQVMgdmFsIDw9IDI1LCBCIEFTIHZhbCA+ IDI1IEFORCB2YWwgPD0gNTAsCisgICAgICAgICAgICAgICAgICAgIEMgQVMgdmFsID4gNTAgQU5E IHZhbCA8PSA3NSwgRCBBUyB2YWwgPiA3NSk7CisKKy0tIE5lc3RlZCBBTFQgcGF0dGVybjogKChB IEIpIHwgQykgRCB8IEEgQiBDCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikg T1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRU RVJOICgoKEEgQikgfCBDKSBEIHwgQSBCIEMpCisgICAgICAgICAgICAgREVGSU5FIEEgQVMgdmFs IDw9IDI1LCBCIEFTIHZhbCA+IDI1IEFORCB2YWwgPD0gNTAsCisgICAgICAgICAgICAgICAgICAg IEMgQVMgdmFsID4gNTAgQU5EIHZhbCA8PSA3NSwgRCBBUyB2YWwgPiA3NSk7CisKKy0tIE5lc3Rl ZCBBTFQgd2l0aCB1bmJvdW5kZWQ6ICgoQSsgQikgfCBDKSBEIHwgQSBCIEMKK0VYUExBSU4gKENP U1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcg QVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKCgoQSsgQikgfCBDKSBEIHwgQSBCIEMpCisg ICAgICAgICAgICAgREVGSU5FIEEgQVMgdmFsIDw9IDI1LCBCIEFTIHZhbCA+IDI1IEFORCB2YWwg PD0gNTAsCisgICAgICAgICAgICAgICAgICAgIEMgQVMgdmFsID4gNTAgQU5EIHZhbCA8PSA3NSwg RCBBUyB2YWwgPiA3NSk7CisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gQWJzb3JwdGlvbiBGbGFnIERpc3BsYXkgVGVz dHMKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0gVGVzdHMgYWJzb3JwdGlvbiBtYXJrZXIgZGlzcGxheSBpbiBFWFBMQUlO IG91dHB1dAorLS0gTWFya2VyczogJyA9IGJyYW5jaCBlbGVtZW50LCAiID0ganVkZ21lbnQgcG9p bnQKKy0tIEZpbGVzOiBleHBsYWluLmMgKGFwcGVuZF9ycHJfcXVhbnRpZmllciwgZGVwYXJzZV9y cHJfcGF0dGVybikKKworLS0gU2ltcGxlIFZBUjogQSsgLT4gYSsiIChqdWRnbWVudCBwb2ludCkK K0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxh bgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBM QVNUIFJPVyBQQVRURVJOIChBKykgREVGSU5FIEEgQVMgdmFsID4gMCk7CisKKy0tIEdST1VQIHVu Ym91bmRlZDogKEEgQikrIC0+IChhJyBiJykrIiAoYnJhbmNoICsganVkZ21lbnQpCitFWFBMQUlO IChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRP VyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cg UEFUVEVSTiAoKEEgQikrKSBERUZJTkUgQSBBUyB2YWwgPD0gNTAsIEIgQVMgdmFsID4gNTApOwor CistLSBBTFQgYm90aCBhYnNvcmJhYmxlOiBBKyB8IEIrIC0+IChhKyIgfCBiKyIpCitFWFBMQUlO IChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRP VyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cg UEFUVEVSTiAoQSsgfCBCKykgREVGSU5FIEEgQVMgdmFsIDw9IDUwLCBCIEFTIHZhbCA+IDUwKTsK KworLS0gQUxUIG9uZSBhYnNvcmJhYmxlOiBBKyB8IEIgLT4gKGErIiB8IGIpCitFWFBMQUlOIChD T1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3 IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICAgICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgUEFU VEVSTiAoQSsgfCBCKSBERUZJTkUgQSBBUyB2YWwgPD0gNTAsIEIgQVMgdmFsID4gNTApOworCist LSBTZXF1ZW5jZSB3aXRoIGFic29yYmFibGUgc3RhcnQ6IEErIEIgLT4gYSsiIGIKK0VYUExBSU4g KENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9X IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgICAgICAgICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVyBQ QVRURVJOIChBKyBCKSBERUZJTkUgQSBBUyB2YWwgPD0gNTAsIEIgQVMgdmFsID4gNTApOworCist LSBDb21wbGV4IG5lc3RlZDogKChBKyBCKSB8IEMpIEQgfCBBIEIgQyAtIGRlZXBseSBuZXN0ZWQg QUxUCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnBy X3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cgUEFUVEVSTiAoKChBKyBCKSB8IEMpIEQgfCBBIEIgQykKKyAgICAgICAgICAg ICBERUZJTkUgQSBBUyB2YWwgPD0gMzAsIEIgQVMgdmFsIDw9IDYwLCBDIEFTIHZhbCA8PSA4MCwg RCBBUyB2YWwgPiA4MCk7CisKKy0tIE5lc3RlZCB1bmJvdW5kZWQ6IChBKyB8IEIpKyAtPiAoYSsi IHwgYikrIChmaXJzdCBpdGVyYXRpb24gYWJzb3JiYWJsZSkKK0VYUExBSU4gKENPU1RTIE9GRikK K1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVS IEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgICAgICAgICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVyBQQVRURVJOICgoQSsg fCBCKSspCisgICAgICAgICAgICAgREVGSU5FIEEgQVMgdmFsIDw9IDUwLCBCIEFTIHZhbCA+IDUw KTsKKworLS0gQUxUIGluc2lkZSB1bmJvdW5kZWQgR1JPVVA6IChBKyBCIHwgQSBCKSogLT4gKGEr IiBiIHwgYSBiKSogKGZpcnN0IGl0ZXJhdGlvbiBhYnNvcmJhYmxlKQorRVhQTEFJTiAoQ09TVFMg T0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAo T1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgICAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XIFBBVFRFUk4g KChBKyBCIHwgQSBCKSopCisgICAgICAgICAgICAgREVGSU5FIEEgQVMgdmFsIDw9IDUwLCBCIEFT IHZhbCA+IDUwKTsKKworLS0gRml4ZWQtbGVuZ3RoIGdyb3VwIGFic29yYmFibGU6IChBezJ9IEJ7 M30pKyAtPiAoYXsyfScgYnszfScpezIsfSIKKy0tIEFsbCBjaGlsZHJlbiBoYXZlIG1pbiA9PSBt YXgsIGVxdWl2YWxlbnQgdG8gdW5yb2xsaW5nIHRvIHsxLDF9CitFWFBMQUlOIChDT1NUUyBPRkYp CitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRF UiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICAgICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgUEFUVEVSTiAoKEF7 Mn0gQnszfSkrKQorICAgICAgICAgICAgIERFRklORSBBIEFTIHZhbCA8PSA1MCwgQiBBUyB2YWwg PiA1MCk7CisKKy0tIE5lc3RlZCBmaXhlZC1sZW5ndGggZ3JvdXA6IChBIChCIEMpezJ9IEQpKyAt PiBhYnNvcmJhYmxlCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3 IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBBRlRFUiBNQVRD SCBTS0lQIFBBU1QgTEFTVCBST1cgUEFUVEVSTiAoKEEgKEIgQyl7Mn0gRCkrKQorICAgICAgICAg ICAgIERFRklORSBBIEFTIHZhbCA8PSAyMCwgQiBBUyB2YWwgPD0gNDAsIEMgQVMgdmFsIDw9IDYw LCBEIEFTIHZhbCA+IDYwKTsKKworLS0gTmVzdGVkIGZpeGVkLWxlbmd0aCB3aXRoIGlubmVyIHF1 YW50aWZpZXI6ICgoQXsyfSBCezN9KXsyfSkrIC0+IGFic29yYmFibGUKK0VYUExBSU4gKENPU1RT IE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMg KE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgICAgICAgICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVyBQQVRURVJO ICgoKEF7Mn0gQnszfSl7Mn0pKykKKyAgICAgICAgICAgICBERUZJTkUgQSBBUyB2YWwgPD0gNTAs IEIgQVMgdmFsID4gNTApOworCistLSBOb24tYWJzb3JiYWJsZSBmaXhlZC1sZW5ndGg6IChBIEJ7 Miw1fSkrIC0+IG5vIG1hcmtlcnMgKG1pbiAhPSBtYXgpCitFWFBMQUlOIChDT1NUUyBPRkYpCitT RUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBC WSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICAgICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgUEFUVEVSTiAoKEEgQnsy LDV9KSspCisgICAgICAgICAgICAgREVGSU5FIEEgQVMgdmFsIDw9IDUwLCBCIEFTIHZhbCA+IDUw KTsKKworLS0gTm9uLWFic29yYmFibGUgZml4ZWQtbGVuZ3RoOiAoQSBCPykrIC0+IG5vIG1hcmtl cnMgKG1pbiAhPSBtYXgpCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZF UiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBBRlRFUiBN QVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgUEFUVEVSTiAoKEEgQj8pKykKKyAgICAgICAgICAgICBE RUZJTkUgQSBBUyB2YWwgPD0gNTAsIEIgQVMgdmFsID4gNTApOworCistLSBOb24tYWJzb3JiYWJs ZSAodW5ib3VuZGVkIG5vdCBhdCBzdGFydCk6IEEgQisgLT4gYSBiKyAobm8gbWFya2VycykKK0VY UExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgor V0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNU IFJPVyBQQVRURVJOIChBIEIrKSBERUZJTkUgQSBBUyB2YWwgPD0gNTAsIEIgQVMgdmFsID4gNTAp OworCistLSBOb24tYWJzb3JiYWJsZSAobm8gdW5ib3VuZGVkIGJyYW5jaCk6IChBIHwgQil7Mix9 IC0+IChhIHwgYil7Mix9IChubyBtYXJrZXJzKQorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNU IENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAg ICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XIFBBVFRFUk4gKChBIHwgQil7Mix9 KSBERUZJTkUgQSBBUyB2YWwgPD0gNTAsIEIgQVMgdmFsID4gNTApOworCistLSBOb24tYWJzb3Ji YWJsZSAoU0tJUCBUTyBORVhUIFJPVyk6IEErIC0+IGErIChubyBtYXJrZXJzKQorRVhQTEFJTiAo Q09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cg dyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgICAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVyBQQVRU RVJOIChBKykgREVGSU5FIEEgQVMgdmFsID4gMCk7CisKKy0tIE5vbi1hYnNvcmJhYmxlIChsaW1p dGVkIGZyYW1lKTogQSsgLT4gYSsgKG5vIG1hcmtlcnMpCitFWFBMQUlOIChDT1NUUyBPRkYpCitT RUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBC WSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDEwIEZPTExPV0lORworICAgICAgICAg ICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVyBQQVRURVJOIChBKykgREVGSU5FIEEg QVMgdmFsID4gMCk7CisKKy0tIFJlbHVjdGFudCB7MX0/IHF1YW50aWZpZXIgZGVwYXJzZQorLS0g QXsxfT8gaXMgYSByZWx1Y3RhbnQgezEsMX0gcXVhbnRpZmllci4gIFRoZSBkZXBhcnNlIGNvZGUg bXVzdAorLS0gb3V0cHV0ICJ7MX0iIGV4cGxpY2l0bHkgdG8gZGlzYW1iaWd1YXRlIGZyb20gYSBi YXJlICI/IiBxdWFudGlmaWVyCistLSAod2hpY2ggd291bGQgbWVhbiB7MCwxfSkuCitFWFBMQUlO IChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gcnByX3BsYW4KK1dJTkRP VyB3IEFTICgKKyAgICBPUkRFUiBCWSB2YWwKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBezF9PyBCKQorICAgIERFRklO RSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsID4gMAorKTsKKworLS0gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBBYnNvcnB0aW9u IEFuYWx5c2lzIFRlc3RzCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFRlc3RzIGNvbnRleHQgYWJzb3JwdGlvbiBvcHRp bWl6YXRpb24gKE8obl4yKSAtPiBPKG4pKQorLS0gRmlsZXM6IHJwci5jIChjb21wdXRlQWJzb3Ji YWJpbGl0eSkKKworLS0gU2ltcGxlIEFic29yYmFibGUgUGF0dGVybjogQSsgQgorLS0gUGF0dGVy biBzdGFydHMgd2l0aCB1bmJvdW5kZWQgVkFSCisKK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBP VkVSIHcgYXMgY250CitGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkg aWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQor ICAgIERFRklORSBBIEFTIHZhbCA8PSA1MCwgQiBBUyB2YWwgPiA1MAorKQorT1JERVIgQlkgaWQ7 CisKKy0tIEFic29yYmFibGUgR1JPVVAgUGF0dGVybjogKEEgQikrIEMKKy0tIFBhdHRlcm4gc3Rh cnRzIHdpdGggdW5ib3VuZGVkIEdST1VQCisKK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVS IHcgYXMgY250CitGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSBCKSsgQykK KyAgICBERUZJTkUgQSBBUyB2YWwgPD0gMzAsIEIgQVMgdmFsID4gMzAgQU5EIHZhbCA8PSA2MCwg QyBBUyB2YWwgPiA2MAorKQorT1JERVIgQlkgaWQ7CisKKy0tIE5vbi1BYnNvcmJhYmxlOiBVbmJv dW5kZWQgTm90IGF0IFN0YXJ0CistLSBQYXR0ZXJuOiBBIEIrICh1bmJvdW5kZWQgbm90IGF0IHN0 YXJ0KQorCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJf cGxhbgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQ QVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyB2YWwgPD0g NTAsIEIgQVMgdmFsID4gNTAKKykKK09SREVSIEJZIGlkOworCistLSBBTFQgd2l0aCBBYnNvcmJh YmxlIEJyYW5jaGVzCistLSBQYXR0ZXJuOiAoQSsgfCBCKykgQyAtIGJvdGggYnJhbmNoZXMgYWJz b3JiYWJsZQorCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBy cHJfcGxhbgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJ UCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEErIHwgQispIEMpCisgICAgREVGSU5FIEEg QVMgdmFsIDw9IDMwLCBCIEFTIHZhbCA+IDMwIEFORCB2YWwgPD0gNjAsIEMgQVMgdmFsID4gNjAK KykKK09SREVSIEJZIGlkOworCistLSBBTFQgd2l0aCBNaXhlZCBCcmFuY2hlcworLS0gUGF0dGVy bjogKEErIHwgQiBDKSAtIG9ubHkgZmlyc3QgYnJhbmNoIGFic29yYmFibGUKKworU0VMRUNUIGlk LCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFT ICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAg IFBBVFRFUk4gKChBKyB8IEIgQykrKQorICAgIERFRklORSBBIEFTIHZhbCA8PSAzMCwgQiBBUyB2 YWwgPiAzMCBBTkQgdmFsIDw9IDYwLCBDIEFTIHZhbCA+IDYwCispCitPUkRFUiBCWSBpZDsKKwor LS0gTm9uLUFic29yYmFibGU6IEFMVCBJbnNpZGUgR1JPVVAKKy0tIFBhdHRlcm46IChBIHwgQil7 Mix9IC0gQUxUIGluc2lkZSB1bmJvdW5kZWQgR1JPVVAKKworU0VMRUNUIGlkLCB2YWwsIENPVU5U KCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTICgKKyAgICBPUkRF UiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChB IHwgQil7Mix9KQorICAgIERFRklORSBBIEFTIHZhbCA8PSA1MCwgQiBBUyB2YWwgPiA1MAorKQor T1JERVIgQlkgaWQ7CisKKy0tIE5vbi1BYnNvcmJhYmxlOiBOZXN0ZWQgVW5ib3VuZGVkCistLSBQ YXR0ZXJuOiAoKEEgQikrIEMpKyAtIG5lc3RlZCBHUk9VUCBzdHJ1Y3R1cmUKKworU0VMRUNUIGlk LCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFT ICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAg IFBBVFRFUk4gKCgoQSBCKSsgQykrKQorICAgIERFRklORSBBIEFTIHZhbCA8PSAzMCwgQiBBUyB2 YWwgPiAzMCBBTkQgdmFsIDw9IDYwLCBDIEFTIHZhbCA+IDYwCispCitPUkRFUiBCWSBpZDsKKwor LS0gTm9uLUFic29yYmFibGU6IFVuYm91bmRlZCBFbGVtZW50IEluc2lkZSBHUk9VUAorLS0gUGF0 dGVybjogKEEgQispezIsfSAtIHVuYm91bmRlZCBpbnNpZGUgR1JPVVAKKworU0VMRUNUIGlkLCB2 YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTICgK KyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBB VFRFUk4gKChBIEIrKXsyLH0pCisgICAgREVGSU5FIEEgQVMgdmFsIDw9IDUwLCBCIEFTIHZhbCA+ IDUwCispCitPUkRFUiBCWSBpZDsKKworLS0gUnVudGltZSBDb25kaXRpb25zOiBTS0lQIFRPIE5F WFQgUk9XCistLSBBYnNvcnB0aW9uIGRpc2FibGVkIHdpdGggU0tJUCBUTyBORVhUIFJPVworCitT RUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfcGxhbgorV0lO RE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJP VworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMgdmFsIDw9IDUwLCBCIEFTIHZh bCA+IDUwCispCitPUkRFUiBCWSBpZDsKKworLS0gUnVudGltZSBDb25kaXRpb25zOiBMaW1pdGVk IEZyYW1lCistLSBBYnNvcnB0aW9uIGRpc2FibGVkIHdpdGggbGltaXRlZCBmcmFtZSBlbmQKKwor U0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX3BsYW4KK1dJ TkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgNSBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHZhbCA8PSA1MCwgQiBBUyB2YWwgPiA1 MAorKQorT1JERVIgQlkgaWQ7CisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gRWRnZSBDYXNlIFRlc3RzCistLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tIFRlc3RzIGJvdW5kYXJ5IGNvbmRpdGlvbnMgYW5kIGNvbXBsZXggc2NlbmFyaW9zCisKKy0t IEVtcHR5IE1hdGNoIFByZXZlbnRpb24KKy0tIFBhdHRlcm4gdGhhdCBjb3VsZCBtYXRjaCBlbXB0 eTogQSoKKworU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnBy X3BsYW4KK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEqKQorICAg IERFRklORSBBIEFTIHZhbCA+IDEwMDAgIC0tIE5ldmVyIG1hdGNoZXMKKykKK09SREVSIEJZIGlk OworCistLSBBbGwgUm93cyBNYXRjaAorLS0gUGF0dGVybiB3aGVyZSBldmVyeSByb3cgbWF0Y2hl cworCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfcGxh bgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVG SU5FIEEgQVMgdmFsID49IDAgIC0tIEFsd2F5cyB0cnVlCispCitPUkRFUiBCWSBpZDsKKworLS0g TGFyZ2UgUXVhbnRpZmllcnMKKy0tIFBhdHRlcm46IEF7MTAwfSAobGFyZ2UgZXhhY3QgcXVhbnRp ZmllcikKKworU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnBy X3BsYW4KK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEF7MTAwfSkK KyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCispCitPUkRFUiBCWSBpZDsKKworLS0gUGF0dGVybjog QXsxMCwyMH0gKGxhcmdlIHJhbmdlIHF1YW50aWZpZXIpCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQo KikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKAorICAgIE9SREVS IEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgUEFUVEVSTiAoQXsxMCwyMH0pCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKQor T1JERVIgQlkgaWQ7CisKKy0tIENvbXBsZXggTXVsdGktTGV2ZWwgTmVzdGluZworLS0gUGF0dGVy bjogKCgoQSBCKSB8IEMpKyBEKSsKKworU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBh cyBjbnQKK0ZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBB VFRFUk4gKCgoKEEgQikgfCBDKSsgRCkrKQorICAgIERFRklORSBBIEFTIHZhbCA8PSAyMCwgQiBB UyB2YWwgPiAyMCBBTkQgdmFsIDw9IDQwLAorICAgICAgICAgICBDIEFTIHZhbCA+IDQwIEFORCB2 YWwgPD0gNjAsIEQgQVMgdmFsID4gNjAKKykKK09SREVSIEJZIGlkOworCistLSBMb25nIEFsdGVy bmF0aW9uIENoYWluCistLSBQYXR0ZXJuOiBBIHwgQiB8IEMgfCBEIHwgRSAoNS13YXkgQUxUKQor CitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfcGxhbgor V0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSB8IEIgfCBDIHwgRCB8 IEUpCisgICAgREVGSU5FIEEgQVMgdmFsID0gMTAsIEIgQVMgdmFsID0gMzAsIEMgQVMgdmFsID0g NTAsCisgICAgICAgICAgIEQgQVMgdmFsID0gNzAsIEUgQVMgdmFsID0gOTAKKykKK09SREVSIEJZ IGlkOworCistLSBMb25nIFNlcXVlbmNlCistLSBQYXR0ZXJuOiBBIEIgQyBEIEUgRiBHIEggKDgt ZWxlbWVudCBTRVEpCisKK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitG Uk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChB IEIgQyBEIEUgRiBHIEgpCisgICAgREVGSU5FIEEgQVMgdmFsID49IDEwLCBCIEFTIHZhbCA+PSAy MCwgQyBBUyB2YWwgPj0gMzAsCisgICAgICAgICAgIEQgQVMgdmFsID49IDQwLCBFIEFTIHZhbCA+ PSA1MCwgRiBBUyB2YWwgPj0gNjAsCisgICAgICAgICAgIEcgQVMgdmFsID49IDcwLCBIIEFTIHZh bCA+PSA4MAorKQorT1JERVIgQlkgaWQ7CisKKy0tIEludGVybGVhdmVkIFF1YW50aWZpZXJzCist LSBQYXR0ZXJuOiBBezJ9IEIrIEN7Myw1fSBEKiBFezEsfQorCitTRUxFQ1QgaWQsIHZhbCwgQ09V TlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKAorICAgIE9S REVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgUEFUVEVSTiAoQXsyfSBCKyBDezMsNX0gRCogRXsxLH0pCisgICAgREVGSU5F IEEgQVMgdmFsID4gMCwgQiBBUyB2YWwgPiAwLCBDIEFTIHZhbCA+IDAsCisgICAgICAgICAgIEQg QVMgdmFsID4gMCwgRSBBUyB2YWwgPiAwCispCitPUkRFUiBCWSBpZDsKKworLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBP cHRpbWl6YXRpb24gRmFsbGJhY2sgVGVzdHMKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gVGVzdHMgZm9yIG9wdGltaXph dGlvbiBlZGdlIGNhc2VzIGFuZCBmYWxsYmFjayBiZWhhdmlvcgorCitDUkVBVEUgVEFCTEUgcnBy X2ZhbGxiYWNrIChpZCBJTlQsIHZhbCBJTlQpOworSU5TRVJUIElOVE8gcnByX2ZhbGxiYWNrIFZB TFVFUyAoMSwgMTApLCAoMiwgMjApOworCistLSBUZXN0OiBtaW4gcXVhbnRpZmllciBvdmVyZmxv dyBjYXVzZXMgb3B0aW1pemF0aW9uIGZhbGxiYWNrIChtaW4gPT0gbWF4IGNhc2UpCitFWFBMQUlO IChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX2ZhbGxiYWNrCitX SU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOICgoQXsyMDAwMDAwMDAwfSl7 Mn0pCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKKy0tIEV4cGVjdGVkOiBGYWxsYmFjayAt IHBhdHRlcm4gbm90IG1lcmdlZCBkdWUgdG8gbWluIG92ZXJmbG93ICg0MDAwMDAwMDAwID4gSU5U MzJfTUFYKQorCistLSBUZXN0OiBtYXgtb25seSBxdWFudGlmaWVyIG92ZXJmbG93IGNhdXNlcyBv cHRpbWl6YXRpb24gZmFsbGJhY2sKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgq KSBPVkVSIHcgRlJPTSBycHJfZmFsbGJhY2sKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBp ZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIFBBVFRFUk4gKChBezEsMjAwMDAwMDAwMH0pezJ9KQorICAgIERFRklORSBBIEFTIHZhbCA+ IDAKKyk7CistLSBFeHBlY3RlZDogRmFsbGJhY2sgLSBtaW4gT0sgKDIqMT0yKSwgYnV0IG1heCBv dmVyZmxvdyAoMioyMDAwMDAwMDAwID4gSU5UMzJfTUFYKQorCistLSBUZXN0OiBtYXggcXVhbnRp ZmllciBleGNlZWRzIHZhbGlkIHJhbmdlICgyMTQ3NDgzNjQ3ID0gSU5UX01BWCwgbGltaXQgaXMg MjE0NzQ4MzY0NikKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcg RlJPTSBycHJfZmFsbGJhY2sKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRF Uk4gKChBezIwMDAwMDAwMDAsMjE0NzQ4MzY0N30pezJ9KQorICAgIERFRklORSBBIEFTIHZhbCA+ IDAKKyk7CistLSBFeHBlY3RlZDogRVJST1IgYXQgcGFyc2UgdGltZSBiZWZvcmUgb3B0aW1pemF0 aW9uCisKKy0tIFRlc3Q6IG5lc3RlZCB1bmJvdW5kZWQgd2l0aCBsYXJnZSBtaW4gY2F1c2VzIG92 ZXJmbG93IGZhbGxiYWNrCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZF UiB3IEZST00gcnByX2ZhbGxiYWNrCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQ QVRURVJOICgoQXsyMDAwMDAwMDAwLH0pezIwMDAwMDAwMDAsfSkKKyAgICBERUZJTkUgQSBBUyB2 YWwgPiAwCispOworLS0gRXhwZWN0ZWQ6IEZhbGxiYWNrIC0gbWluIG92ZXJmbG93ICgyMDAwMDAw MDAwICogMjAwMDAwMDAwMCA+IElOVDMyX01BWCkKKworLS0gVGVzdDogcHJlZml4IG1pc21hdGNo IGNhdXNlcyBvcHRpbWl6YXRpb24gZmFsbGJhY2sKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVD VCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfZmFsbGJhY2sKK1dJTkRPVyB3IEFTICgKKyAgICBP UkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIFBBVFRFUk4gKEEgQiAoQyBEKSspCisgICAgREVGSU5FIEEgQVMgdmFsID4g MCwgQiBBUyB2YWwgPiA1LCBDIEFTIHZhbCA+IDEwLCBEIEFTIHZhbCA+IDE1CispOworLS0gRXhw ZWN0ZWQ6IEZhbGxiYWNrIC0gcHJlZml4IGVsZW1lbnRzIGRvbid0IG1hdGNoIEdST1VQIGNvbnRl bnQKKworRFJPUCBUQUJMRSBycHJfZmFsbGJhY2s7CisKKy0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gUGxhbm5lciBJbnRl Z3JhdGlvbiBUZXN0cworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLSBUZXN0cyBmdWxsIHBsYW5uaW5nIHBpcGVsaW5lIGFu ZCBXaW5kb3dBZ2cgcGxhbiBub2RlIGNyZWF0aW9uCistLSBGaWxlczogcGxhbm5lci5jLCBjcmVh dGVwbGFuLmMKKworQ1JFQVRFIFRBQkxFIHJwcl9wbGFubmVyIChpZCBJTlQsIGNhdGVnb3J5IFZB UkNIQVIoMTApLCB2YWwgSU5UKTsKK0lOU0VSVCBJTlRPIHJwcl9wbGFubmVyIFZBTFVFUworICAg ICgxLCAnQScsIDEwKSwgKDIsICdBJywgMjApLCAoMywgJ0EnLCAzMCksCisgICAgKDQsICdCJywg NDApLCAoNSwgJ0InLCA1MCksICg2LCAnQicsIDYwKSwKKyAgICAoNywgJ0MnLCA3MCksICg4LCAn QycsIDgwKSwgKDksICdDJywgOTApOworCistLSBNdWx0aXBsZSBXaW5kb3cgRnVuY3Rpb25zIGlu IFNhbWUgUXVlcnkKK1NFTEVDVCBpZCwgY2F0ZWdvcnksIHZhbCwKKyAgICAgICBDT1VOVCgqKSBP VkVSIHcxIGFzIGNudDEsCisgICAgICAgQ09VTlQoKikgT1ZFUiB3MiBhcyBjbnQyCitGUk9NIHJw cl9wbGFubmVyCitXSU5ET1cgdzEgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSsp CisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKSwKK3cyIEFTICgKKyAgICBQQVJUSVRJT04gQlkg Y2F0ZWdvcnkKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEIrKQorICAgIERFRklORSBCIEFT IHZhbCA+PSA0MAorKQorT1JERVIgQlkgaWQ7CisKKy0tIFdpbmRvdyBGdW5jdGlvbiB3aXRoIFBB UlRJVElPTiBCWQorCitTRUxFQ1QgaWQsIGNhdGVnb3J5LCB2YWwsCisgICAgICAgQ09VTlQoKikg T1ZFUiB3IGFzIGNudAorRlJPTSBycHJfcGxhbm5lcgorV0lORE9XIHcgQVMgKAorICAgIFBBUlRJ VElPTiBCWSBjYXRlZ29yeQorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVG SU5FIEEgQVMgdmFsID4gMAorKQorT1JERVIgQlkgY2F0ZWdvcnksIGlkOworCistLSBXaW5kb3cg RnVuY3Rpb24gd2l0aCBDb21wbGV4IE9SREVSIEJZCisKK1NFTEVDVCBpZCwgY2F0ZWdvcnksIHZh bCwKKyAgICAgICBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9wbGFubmVyCitXSU5E T1cgdyBBUyAoCisgICAgT1JERVIgQlkgY2F0ZWdvcnkgREVTQywgdmFsIEFTQworICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4g KEErKQorICAgIERFRklORSBBIEFTIHZhbCA+IDAKKykKK09SREVSIEJZIGNhdGVnb3J5IERFU0Ms IHZhbCBBU0M7CisKKy0tIE5hbWVkIFdpbmRvdyBSZWZlcmVuY2UKKworU0VMRUNUIGlkLCBjYXRl Z29yeSwgdmFsLAorICAgICAgIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX3BsYW5u ZXIKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERF RklORSBBIEFTIHZhbCA+IDAKKykKK09SREVSIEJZIGlkOworCistLSBJbmxpbmUgV2luZG93IERl ZmluaXRpb24KKworU0VMRUNUIGlkLCBjYXRlZ29yeSwgdmFsLAorICAgICAgIENPVU5UKCopIE9W RVIgKAorICAgICAgICAgICBPUkRFUiBCWSBpZAorICAgICAgICAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgUEFUVEVSTiAoQSsp CisgICAgICAgICAgIERFRklORSBBIEFTIHZhbCA+IDAKKyAgICAgICApIGFzIGNudAorRlJPTSBy cHJfcGxhbm5lcgorT1JERVIgQlkgaWQ7CisKKy0tIFdpbmRvdyB3aXRoIEFnZ3JlZ2F0ZSBGdW5j dGlvbnMKK1NFTEVDVCBjYXRlZ29yeSwKKyAgICAgICBDT1VOVCgqKSBPVkVSIHcgYXMgd2luZG93 X2NudCwKKyAgICAgICBDT1VOVCgqKSBhcyBhZ2dfY250CitGUk9NIHJwcl9wbGFubmVyCitXSU5E T1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNhdGVnb3J5CisgICAgT1JERVIgQlkgaWQKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQ QVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCispCitHUk9VUCBCWSBjYXRlZ29y eQorT1JERVIgQlkgY2F0ZWdvcnk7CistLSBFeHBlY3RlZDogRVJST1I6IHN5bnRheCBlcnJvciBh dCBvciBuZWFyICJHUk9VUCIKKy0tIChHUk9VUCBCWSBhZnRlciBXSU5ET1cgY2xhdXNlIGlzIG5v dCB2YWxpZCBTUUwgc3ludGF4KQorCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFN1YnF1ZXJ5IGFuZCBDVEUgVGVzdHMK Ky0tIEZpbGVzOiBwbGFubmVyLmMsIHByZXBqb2ludHJlZS5jCistLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFRlc3RzIFJQ UiB3aXRoIHN1YnF1ZXJpZXMgYW5kIENURXMKKworLS0gUlBSIGluIFN1YnF1ZXJ5IChGUk9NIGNs YXVzZSkKKworU0VMRUNUICogRlJPTSAoCisgICAgU0VMRUNUIGlkLCBjYXRlZ29yeSwgdmFsLAor ICAgICAgICAgICBDT1VOVCgqKSBPVkVSIHcgYXMgY250CisgICAgRlJPTSBycHJfcGxhbm5lcgor ICAgIFdJTkRPVyB3IEFTICgKKyAgICAgICAgT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4g KEErKQorICAgICAgICBERUZJTkUgQSBBUyB2YWwgPiAwCisgICAgKQorKSBzdWIKK1dIRVJFIGNu dCA+IDUKK09SREVSIEJZIGlkOworCistLSBSUFIgd2l0aCBTdWJxdWVyeSBpbiBXSEVSRQorCitT RUxFQ1QgaWQsIGNhdGVnb3J5LCB2YWwsCisgICAgICAgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAor RlJPTSBycHJfcGxhbm5lcgorV0hFUkUgdmFsID4gKFNFTEVDVCBBVkcodmFsKSBGUk9NIHJwcl9w bGFubmVyKQorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisg ICAgREVGSU5FIEEgQVMgdmFsID4gNTAKKykKK09SREVSIEJZIGlkOworCistLSBDVEUgd2l0aCBS UFIKKworV0lUSCBycHJfY3RlIEFTICgKKyAgICBTRUxFQ1QgaWQsIGNhdGVnb3J5LCB2YWwsCisg ICAgICAgICAgIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKKyAgICBGUk9NIHJwcl9wbGFubmVyCisg ICAgV0lORE9XIHcgQVMgKAorICAgICAgICBPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAo QSspCisgICAgICAgIERFRklORSBBIEFTIHZhbCA+IDAKKyAgICApCispCitTRUxFQ1QgKiBGUk9N IHJwcl9jdGUgV0hFUkUgY250ID4gNSBPUkRFUiBCWSBpZDsKKworLS0gTXVsdGlwbGUgQ1RFIFJl ZmVyZW5jZXMKKworV0lUSCBycHJfY3RlIEFTICgKKyAgICBTRUxFQ1QgaWQsIGNhdGVnb3J5LCB2 YWwsCisgICAgICAgICAgIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKKyAgICBGUk9NIHJwcl9wbGFu bmVyCisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBPUkRFUiBCWSBpZAorICAgICAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFU VEVSTiAoQSspCisgICAgICAgIERFRklORSBBIEFTIHZhbCA+IDAKKyAgICApCispCitTRUxFQ1Qg YzEuaWQsIGMxLmNudCwgYzIuY250IGFzIGNudDIKK0ZST00gcnByX2N0ZSBjMQorSk9JTiBycHJf Y3RlIGMyIE9OIGMxLmlkID0gYzIuaWQKK09SREVSIEJZIGMxLmlkOworCistLSBOZXN0ZWQgQ1RF cworCitXSVRIIGN0ZTEgQVMgKAorICAgIFNFTEVDVCBpZCwgY2F0ZWdvcnksIHZhbCBGUk9NIHJw cl9wbGFubmVyIFdIRVJFIHZhbCA+IDMwCispLAorY3RlMiBBUyAoCisgICAgU0VMRUNUIGlkLCBj YXRlZ29yeSwgdmFsLAorICAgICAgICAgICBDT1VOVCgqKSBPVkVSIHcgYXMgY250CisgICAgRlJP TSBjdGUxCisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBPUkRFUiBCWSBpZAorICAgICAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAg UEFUVEVSTiAoQSspCisgICAgICAgIERFRklORSBBIEFTIHZhbCA+IDAKKyAgICApCispCitTRUxF Q1QgKiBGUk9NIGN0ZTIgT1JERVIgQlkgaWQ7CisKKy0tID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gSk9JTiBUZXN0cworLS0g RmlsZXM6IHByZXBqb2ludHJlZS5jLCBzZXRyZWZzLmMKKy0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gVGVzdHMgUlBSIHdp dGggSk9JTnMgYW5kIG11bHRpcGxlIHRhYmxlIHJlZmVyZW5jZXMKKworQ1JFQVRFIFRBQkxFIHJw cl9qb2luMSAoaWQgSU5ULCB2YWwxIElOVCk7CitDUkVBVEUgVEFCTEUgcnByX2pvaW4yIChpZCBJ TlQsIHZhbDIgSU5UKTsKKworSU5TRVJUIElOVE8gcnByX2pvaW4xIFZBTFVFUyAoMSwgMTApLCAo MiwgMjApLCAoMywgMzApLCAoNCwgNDApLCAoNSwgNTApOworSU5TRVJUIElOVE8gcnByX2pvaW4y IFZBTFVFUyAoMSwgMTAwKSwgKDIsIDIwMCksICgzLCAzMDApLCAoNCwgNDAwKSwgKDUsIDUwMCk7 CisKKy0tIFJQUiBBZnRlciBJTk5FUiBKT0lOCisKK1NFTEVDVCB0MS5pZCwgdDEudmFsMSwgdDIu dmFsMiwKKyAgICAgICBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9qb2luMSB0MQor SU5ORVIgSk9JTiBycHJfam9pbjIgdDIgT04gdDEuaWQgPSB0Mi5pZAorV0lORE9XIHcgQVMgKAor ICAgIE9SREVSIEJZIHQxLmlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgdmFsMSAr IHZhbDIgPiAxMDAKKykKK09SREVSIEJZIHQxLmlkOworCistLSBSUFIgQWZ0ZXIgTEVGVCBKT0lO CisKK1NFTEVDVCB0MS5pZCwgdDEudmFsMSwgdDIudmFsMiwKKyAgICAgICBDT1VOVCgqKSBPVkVS IHcgYXMgY250CitGUk9NIHJwcl9qb2luMSB0MQorTEVGVCBKT0lOIHJwcl9qb2luMiB0MiBPTiB0 MS5pZCA9IHQyLmlkCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgdDEuaWQKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJO IChBKykKKyAgICBERUZJTkUgQSBBUyB2YWwxID4gMAorKQorT1JERVIgQlkgdDEuaWQ7CisKKy0t IFJQUiB3aXRoIE11bHRpcGxlIFRhYmxlcyBpbiBERUZJTkUKKworU0VMRUNUIHQxLmlkLCB0MS52 YWwxLCB0Mi52YWwyLAorICAgICAgIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX2pv aW4xIHQxCitJTk5FUiBKT0lOIHJwcl9qb2luMiB0MiBPTiB0MS5pZCA9IHQyLmlkCitXSU5ET1cg dyBBUyAoCisgICAgT1JERVIgQlkgdDEuaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBB IEFTIHZhbDEgPiAyMCwKKyAgICAgICAgICAgQiBBUyB2YWwyID4gMjAwCispCitPUkRFUiBCWSB0 MS5pZDsKKworLS0gUlBSIEFmdGVyIENyb3NzIEpvaW4KKworU0VMRUNUIHQxLmlkIGFzIGlkMSwg dDIuaWQgYXMgaWQyLCB0MS52YWwxLCB0Mi52YWwyLAorICAgICAgIENPVU5UKCopIE9WRVIgdyBh cyBjbnQKK0ZST00gcnByX2pvaW4xIHQxCitDUk9TUyBKT0lOIHJwcl9qb2luMiB0MgorV0hFUkUg dDEuaWQgPD0gMiBBTkQgdDIuaWQgPD0gMgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIHQx LmlkLCB0Mi5pZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHZhbDEgKyB2YWwyID4g MAorKQorT1JERVIgQlkgdDEuaWQsIHQyLmlkOworCistLSBTZWxmLUpvaW4gd2l0aCBSUFIKKwor U0VMRUNUIGlkLCB2YWwxLCB2YWwxX25leHQsCisgICAgICAgQ09VTlQoKikgT1ZFUiB3IGFzIGNu dAorRlJPTSAoU0VMRUNUIGEuaWQsIGEudmFsMSwgYi52YWwxIGFzIHZhbDFfbmV4dAorICAgICAg RlJPTSBycHJfam9pbjEgYQorICAgICAgSU5ORVIgSk9JTiBycHJfam9pbjEgYiBPTiBhLmlkICsg MSA9IGIuaWQpIHN1YgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAo WCspCisgICAgREVGSU5FIFggQVMgdmFsMSA8IHZhbDFfbmV4dAorKQorT1JERVIgQlkgaWQ7CisK K0RST1AgVEFCTEUgcnByX2pvaW4xLCBycHJfam9pbjI7CisKKy0tID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gQ29tcGxleCBF eHByZXNzaW9uIFRlc3RzCistLSBGaWxlczogY3JlYXRlcGxhbi5jLCBzZXRyZWZzLmMKKy0tID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorLS0gVGVzdHMgY29tcGxleCB0YXJnZXQgbGlzdCBleHByZXNzaW9ucworCitDUkVBVEUgVEFC TEUgcnByX3RhcmdldCAoaWQgSU5ULCB2YWwgSU5UKTsKK0lOU0VSVCBJTlRPIHJwcl90YXJnZXQg VkFMVUVTICgxLCAxMCksICgyLCAyMCksICgzLCAzMCksICg0LCA0MCksICg1LCA1MCk7CisKKy0t IEV4cHJlc3Npb25zIGluIFRhcmdldCBMaXN0CisKK1NFTEVDVCBpZCwKKyAgICAgICB2YWwgKiAy IGFzIGRvdWJsZWQsCisgICAgICAgdmFsICsgMTAgYXMgYWRkZWQsCisgICAgICAgQ09VTlQoKikg T1ZFUiB3IGFzIGNudAorRlJPTSBycHJfdGFyZ2V0CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIg QlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCispCitPUkRFUiBC WSBpZDsKKworLS0gQ0FTRSBFeHByZXNzaW9uIGluIFRhcmdldCBMaXN0CisKK1NFTEVDVCBpZCwg dmFsLAorICAgICAgIENBU0UKKyAgICAgICAgICAgV0hFTiB2YWwgPCAzMCBUSEVOICdsb3cnCisg ICAgICAgICAgIFdIRU4gdmFsIDwgNTAgVEhFTiAnbWVkaXVtJworICAgICAgICAgICBFTFNFICdo aWdoJworICAgICAgIEVORCBhcyBjYXRlZ29yeSwKKyAgICAgICBDT1VOVCgqKSBPVkVSIHcgYXMg Y250CitGUk9NIHJwcl90YXJnZXQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBB VFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHZhbCA+IDAKKykKK09SREVSIEJZIGlkOworCist LSBTdWJxdWVyeSBpbiBUYXJnZXQgTGlzdAorCitTRUxFQ1QgaWQsIHZhbCwKKyAgICAgICAoU0VM RUNUIE1BWCh2YWwpIEZST00gcnByX3RhcmdldCkgYXMgbWF4X3ZhbCwKKyAgICAgICBDT1VOVCgq KSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl90YXJnZXQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRF UiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHZhbCA+IDAKKykKK09SREVS IEJZIGlkOworCistLSBGdW5jdGlvbiBDYWxscyBpbiBUYXJnZXQgTGlzdAorCitTRUxFQ1QgaWQs IHZhbCwKKyAgICAgICBDT0FMRVNDRSh2YWwsIDApIGFzIGNvYWxlc2NlZCwKKyAgICAgICBBQlMo dmFsIC0gMzApIGFzIGRpc3RhbmNlLAorICAgICAgIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZS T00gcnByX3RhcmdldAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAo QSspCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKQorT1JERVIgQlkgaWQ7CisKKy0tIENvbHVt biBBbGlhc2VzIGFuZCBSZWZlcmVuY2VzCisKK1NFTEVDVCBpZCBhcyByb3dfaWQsCisgICAgICAg dmFsIGFzIHZhbHVlLAorICAgICAgIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX3Rh cmdldAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAg REVGSU5FIEEgQVMgdmFsID4gMAorKQorT1JERVIgQlkgcm93X2lkOworCitEUk9QIFRBQkxFIHJw cl90YXJnZXQ7CisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0gU2V0IE9wZXJhdGlvbnMgVGVzdHMKKy0tIEZpbGVzOiBw bGFubmVyLmMKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0gVGVzdHMgUlBSIHdpdGggVU5JT04sIElOVEVSU0VDVCwgRVhD RVBUCisKK0NSRUFURSBUQUJMRSBycHJfc2V0MSAoaWQgSU5ULCB2YWwgSU5UKTsKK0NSRUFURSBU QUJMRSBycHJfc2V0MiAoaWQgSU5ULCB2YWwgSU5UKTsKKworSU5TRVJUIElOVE8gcnByX3NldDEg VkFMVUVTICgxLCAxMCksICgyLCAyMCksICgzLCAzMCk7CitJTlNFUlQgSU5UTyBycHJfc2V0MiBW QUxVRVMgKDIsIDIwKSwgKDMsIDMwKSwgKDQsIDQwKTsKKworLS0gVU5JT04gd2l0aCBSUFIKKwor KFNFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CisgRlJPTSBycHJfc2V0MQor IFdJTkRPVyB3IEFTICgKKyAgICAgT1JERVIgQlkgaWQKKyAgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgIFBBVFRFUk4gKEErKQorICAgICBE RUZJTkUgQSBBUyB2YWwgPiAwCisgKSkKK1VOSU9OCisoU0VMRUNUIGlkLCB2YWwsIENPVU5UKCop IE9WRVIgdyBhcyBjbnQKKyBGUk9NIHJwcl9zZXQyCisgV0lORE9XIHcgQVMgKAorICAgICBPUkRF UiBCWSBpZAorICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICAgUEFUVEVSTiAoQSspCisgICAgIERFRklORSBBIEFTIHZhbCA+IDAKKyApKQor T1JERVIgQlkgaWQ7CisKKy0tIFVOSU9OIEFMTCB3aXRoIFJQUgorCisoU0VMRUNUIGlkLCB2YWws IENPVU5UKCopIE9WRVIgdyBhcyBjbnQKKyBGUk9NIHJwcl9zZXQxCisgV0lORE9XIHcgQVMgKAor ICAgICBPUkRFUiBCWSBpZAorICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICAgUEFUVEVSTiAoQSspCisgICAgIERFRklORSBBIEFTIHZhbCA+ IDAKKyApKQorVU5JT04gQUxMCisoU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBj bnQKKyBGUk9NIHJwcl9zZXQyCisgV0lORE9XIHcgQVMgKAorICAgICBPUkRFUiBCWSBpZAorICAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAg UEFUVEVSTiAoQSspCisgICAgIERFRklORSBBIEFTIHZhbCA+IDAKKyApKQorT1JERVIgQlkgaWQs IHZhbDsKKworLS0gSU5URVJTRUNUIHdpdGggUlBSCisKKyhTRUxFQ1QgaWQsIHZhbCwgQ09VTlQo KikgT1ZFUiB3IGFzIGNudAorIEZST00gcnByX3NldDEKKyBXSU5ET1cgdyBBUyAoCisgICAgIE9S REVSIEJZIGlkCisgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgICBQQVRURVJOIChBKykKKyAgICAgREVGSU5FIEEgQVMgdmFsID4gMAorICkp CitJTlRFUlNFQ1QKKyhTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorIEZS T00gcnByX3NldDIKKyBXSU5ET1cgdyBBUyAoCisgICAgIE9SREVSIEJZIGlkCisgICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICBQQVRURVJO IChBKykKKyAgICAgREVGSU5FIEEgQVMgdmFsID4gMAorICkpCitPUkRFUiBCWSBpZDsKKworLS0g RVhDRVBUIHdpdGggUlBSCisKKyhTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNu dAorIEZST00gcnByX3NldDEKKyBXSU5ET1cgdyBBUyAoCisgICAgIE9SREVSIEJZIGlkCisgICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICBQ QVRURVJOIChBKykKKyAgICAgREVGSU5FIEEgQVMgdmFsID4gMAorICkpCitFWENFUFQKKyhTRUxF Q1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorIEZST00gcnByX3NldDIKKyBXSU5E T1cgdyBBUyAoCisgICAgIE9SREVSIEJZIGlkCisgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICBQQVRURVJOIChBKykKKyAgICAgREVGSU5F IEEgQVMgdmFsID4gMAorICkpCitPUkRFUiBCWSBpZDsKKworRFJPUCBUQUJMRSBycHJfc2V0MSwg cnByX3NldDI7CisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0gU29ydGluZyBhbmQgR3JvdXBpbmcgVGVzdHMKKy0tIEZp bGVzOiBwbGFubmVyLmMsIGNyZWF0ZXBsYW4uYworLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBUZXN0cyBSUFIgaW50ZXJh Y3Rpb24gd2l0aCBzb3J0aW5nIGFuZCBncm91cGluZworCitDUkVBVEUgVEFCTEUgcnByX3NvcnQg KGlkIElOVCwgY2F0ZWdvcnkgVkFSQ0hBUigxMCksIHZhbCBJTlQpOworSU5TRVJUIElOVE8gcnBy X3NvcnQgVkFMVUVTCisgICAgKDEsICdBJywgMzApLCAoMiwgJ0InLCAyMCksICgzLCAnQScsIDEw KSwKKyAgICAoNCwgJ0InLCA0MCksICg1LCAnQScsIDUwKSwgKDYsICdCJywgNjApOworCistLSBS UFIgd2l0aCBHUk9VUCBCWSAoYWdncmVnYXRlIGluIERFRklORSAtPiBFUlJPUiBiZWZvcmUgR1JP VVAgQlkgaW50ZXJhY3Rpb24pCistLSBFeHBlY3RlZDogRVJST1I6IGFnZ3JlZ2F0ZSBmdW5jdGlv bnMgYXJlIG5vdCBhbGxvd2VkIGluIERFRklORQorCitTRUxFQ1QgY2F0ZWdvcnksCisgICAgICAg Q09VTlQoKikgYXMgZ3JvdXBfY250LAorICAgICAgIE1BWCh2YWwpIGFzIG1heF92YWwsCisgICAg ICAgQ09VTlQoKikgT1ZFUiB3IGFzIHdpbmRvd19jbnQKK0ZST00gcnByX3NvcnQKK0dST1VQIEJZ IGNhdGVnb3J5CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgY2F0ZWdvcnkKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJO IChBKykKKyAgICBERUZJTkUgQSBBUyBDT1VOVCgqKSA+IDAKKykKK09SREVSIEJZIGNhdGVnb3J5 OworCistLSBSUFIgd2l0aCBIQVZJTkcgKHNhbWUgYWdncmVnYXRlLWluLURFRklORSBlcnJvcikK Ky0tIEV4cGVjdGVkOiBFUlJPUjogYWdncmVnYXRlIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQg aW4gREVGSU5FCisKK1NFTEVDVCBjYXRlZ29yeSwKKyAgICAgICBDT1VOVCgqKSBhcyBncm91cF9j bnQsCisgICAgICAgQ09VTlQoKikgT1ZFUiB3IGFzIHdpbmRvd19jbnQKK0ZST00gcnByX3NvcnQK K0dST1VQIEJZIGNhdGVnb3J5CitIQVZJTkcgQ09VTlQoKikgPiAyCitXSU5ET1cgdyBBUyAoCisg ICAgT1JERVIgQlkgY2F0ZWdvcnkKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBDT1VO VCgqKSA+IDAKKykKK09SREVSIEJZIGNhdGVnb3J5OworCistLSBSUFIgd2l0aCBESVNUSU5DVAor CitTRUxFQ1QgRElTVElOQ1QgY2F0ZWdvcnksCisgICAgICAgQ09VTlQoKikgT1ZFUiB3IGFzIGNu dAorRlJPTSBycHJfc29ydAorV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjYXRlZ29y eQorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgdmFsID4g MAorKQorT1JERVIgQlkgY2F0ZWdvcnk7CisKKy0tIFJQUiB3aXRoIE9SREVSIEJZIChkaWZmZXJl bnQgZnJvbSB3aW5kb3cgT1JERVIgQlkpCisKK1NFTEVDVCBpZCwgY2F0ZWdvcnksIHZhbCwKKyAg ICAgICBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9zb3J0CitXSU5ET1cgdyBBUyAo CisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAw CispCitPUkRFUiBCWSB2YWwgREVTQzsKKworLS0gUlBSIHdpdGggTElNSVQgYW5kIE9GRlNFVAor CitTRUxFQ1QgaWQsIGNhdGVnb3J5LCB2YWwsCisgICAgICAgQ09VTlQoKikgT1ZFUiB3IGFzIGNu dAorRlJPTSBycHJfc29ydAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVS TiAoQSspCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKQorT1JERVIgQlkgaWQKK0xJTUlUIDMg T0ZGU0VUIDE7CisKK0RST1AgVEFCTEUgcnByX3NvcnQ7CisKKy0tIFNRTCBmdW5jdGlvbiBpbmxp bmluZzogJDEgaW4gREVGSU5FIG11c3QgYmUgc3Vic3RpdHV0ZWQgYnkKKy0tIHN1YnN0aXR1dGVf YWN0dWFsX3BhcmFtZXRlcnNfaW5fZnJvbSB2aWEgcXVlcnlfdHJlZV9tdXRhdG9yLgorQ1JFQVRF IFRBQkxFIHJwcl9zcmZfdCAodiBpbnQpOworSU5TRVJUIElOVE8gcnByX3NyZl90IFNFTEVDVCBn ZW5lcmF0ZV9zZXJpZXMoMSwgNSk7CisKK0NSRUFURSBGVU5DVElPTiBycHJfc3JmX2YodGhyZXNo b2xkIGludCkKK1JFVFVSTlMgVEFCTEUgKHYgaW50LCBjbnQgYmlnaW50KQorTEFOR1VBR0Ugc3Fs IFNUQUJMRSBBUyAkJAorICAgIFNFTEVDVCB2OjppbnQsIGNvdW50KCopIE9WRVIgdworICAgIEZS T00gcnByX3NyZl90CisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBPUkRFUiBCWSB2CisgICAg ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg ICAgICBQQVRURVJOIChBKykKKyAgICAgICAgREVGSU5FIEEgQVMgdiA+ICQxCisgICAgKQorJCQ7 CisKK1NFTEVDVCB2LCBjbnQgRlJPTSBycHJfc3JmX2YoMykgT1JERVIgQlkgdjsKKworRFJPUCBU QUJMRSBycHJfc3JmX3Q7CitEUk9QIEZVTkNUSU9OIHJwcl9zcmZfZihpbnQpOworCitEUk9QIFRB QkxFIHJwcl9wbGFubmVyOworCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFN0cmVzcyBUZXN0cworLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBF ZGdlIGNhc2VzIGFuZCBzdHJlc3Mgc2NlbmFyaW9zCisKK0NSRUFURSBUQUJMRSBycHJfc3RyZXNz IChpZCBJTlQsIHZhbCBJTlQpOworSU5TRVJUIElOVE8gcnByX3N0cmVzcyBTRUxFQ1QgaSwgaSAq IDEwIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBpOworCistLSBWZXJ5IExvbmcgUXVlcnkg d2l0aCBNYW55IFdpbmRvd3MKK1NFTEVDVCBpZCwgdmFsLAorICAgICAgIENPVU5UKCopIE9WRVIg dzEgYXMgY250MSwKKyAgICAgICBDT1VOVCgqKSBPVkVSIHcyIGFzIGNudDIsCisgICAgICAgQ09V TlQoKikgT1ZFUiB3MyBhcyBjbnQzCitGUk9NIHJwcl9zdHJlc3MKK1dJTkRPVyB3MSBBUyAoCisg ICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCisp LAordzIgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQispCisgICAgREVGSU5FIEIg QVMgdmFsID4gNTAKKyksCit3MyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChDKykK KyAgICBERUZJTkUgQyBBUyB2YWwgPiAxMDAKKykKK09SREVSIEJZIGlkOworCistLSBEZWVwbHkg TmVzdGVkIFN1YnF1ZXJpZXMgd2l0aCBSUFIKKworU0VMRUNUICogRlJPTSAoCisgICAgU0VMRUNU ICogRlJPTSAoCisgICAgICAgIFNFTEVDVCAqIEZST00gKAorICAgICAgICAgICAgU0VMRUNUIGlk LCB2YWwsCisgICAgICAgICAgICAgICAgICAgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorICAgICAg ICAgICAgRlJPTSBycHJfc3RyZXNzCisgICAgICAgICAgICBXSU5ET1cgdyBBUyAoCisgICAgICAg ICAgICAgICAgT1JERVIgQlkgaWQKKyAgICAgICAgICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICAgICBQQVRURVJOIChB KykKKyAgICAgICAgICAgICAgICBERUZJTkUgQSBBUyB2YWwgPiAwCisgICAgICAgICAgICApCisg ICAgICAgICkgc3ViMQorICAgICkgc3ViMgorKSBzdWIzCitXSEVSRSBjbnQgPiAxMAorT1JERVIg QlkgaWQ7CisKKy0tIENvbXBsZXggRXhwcmVzc2lvbiBpbiBERUZJTkUgQ2xhdXNlCisKK1NFTEVD VCBpZCwgdmFsLAorICAgICAgIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX3N0cmVz cworV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBE RUZJTkUgQSBBUyAodmFsICUgMyA9IDAgT1IgdmFsICUgNSA9IDApLAorICAgICAgICAgICBCIEFT ICh2YWwgKiAyID4gMTAwIEFORCB2YWwgLyAyIDwgMTAwKQorKQorT1JERVIgQlkgaWQ7CisKKy0t IFdpbmRvdyB3aXRoIE5vIE1hdGNoaW5nIFJvd3MKKworU0VMRUNUIGlkLCB2YWwsCisgICAgICAg Q09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfc3RyZXNzCitXSEVSRSB2YWwgPiAxMDAw ICAtLSBObyByb3dzIG1hdGNoCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRU RVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCispCitPUkRFUiBCWSBpZDsKKworLS0g V2luZG93IG9uIFNpbmdsZSBSb3cKKworU0VMRUNUIGlkLCB2YWwsCisgICAgICAgQ09VTlQoKikg T1ZFUiB3IGFzIGNudAorRlJPTSBycHJfc3RyZXNzCitXSEVSRSBpZCA9IDEwCitXSU5ET1cgdyBB UyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2YWwg PiAwCispCitPUkRFUiBCWSBpZDsKKworRFJPUCBUQUJMRSBycHJfc3RyZXNzOworCistLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tIEVycm9yIExpbWl0IFRlc3RzCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFRlc3RzIGZvciBlcnJvciBjb25kaXRp b25zIGluIHJwci5jCisKK0NSRUFURSBUQUJMRSBycHJfZXJyb3JzIChpZCBJTlQsIHZhbCBJTlQp OworSU5TRVJUIElOVE8gcnByX2Vycm9ycyBWQUxVRVMgKDEsIDEwKSwgKDIsIDIwKTsKKworLS0g VGVzdDogREVGSU5FIHZhcmlhYmxlIG5vdCBpbiBQQVRURVJOIChlcnJvcikKK1NFTEVDVCBpZCwg dmFsLCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfZXJyb3JzCitXSU5ET1cgdyBBUyAoCisgICAg T1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBQQVRURVJOIChBKQorICAgIERFRklORQorICAgICAgQiBBUyBUUlVFCisp OworLS0gRXhwZWN0ZWQ6IEVycm9yIC0gQiBpcyBub3QgdXNlZCBpbiBQQVRURVJOCisKKy0tIFRl c3Q6IDI1MSB2YXJpYWJsZXMgaW4gUEFUVEVSTiBhbmQgREVGSU5FIChib3VuZGFyeSAtIHNob3Vs ZCBzdWNjZWVkKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9lcnJvcnMKK1dJTkRP VyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKFYxIFYyIFYzIFY0IFY1IFY2IFY3 IFY4IFY5IFYxMCBWMTEgVjEyIFYxMyBWMTQgVjE1IFYxNiBWMTcgVjE4IFYxOSBWMjAgVjIxIFYy MiBWMjMgVjI0IFYyNSBWMjYgVjI3IFYyOCBWMjkgVjMwIFYzMSBWMzIgVjMzIFYzNCBWMzUgVjM2 IFYzNyBWMzggVjM5IFY0MCBWNDEgVjQyIFY0MyBWNDQgVjQ1IFY0NiBWNDcgVjQ4IFY0OSBWNTAg VjUxIFY1MiBWNTMgVjU0IFY1NSBWNTYgVjU3IFY1OCBWNTkgVjYwIFY2MSBWNjIgVjYzIFY2NCBW NjUgVjY2IFY2NyBWNjggVjY5IFY3MCBWNzEgVjcyIFY3MyBWNzQgVjc1IFY3NiBWNzcgVjc4IFY3 OSBWODAgVjgxIFY4MiBWODMgVjg0IFY4NSBWODYgVjg3IFY4OCBWODkgVjkwIFY5MSBWOTIgVjkz IFY5NCBWOTUgVjk2IFY5NyBWOTggVjk5IFYxMDAgVjEwMSBWMTAyIFYxMDMgVjEwNCBWMTA1IFYx MDYgVjEwNyBWMTA4IFYxMDkgVjExMCBWMTExIFYxMTIgVjExMyBWMTE0IFYxMTUgVjExNiBWMTE3 IFYxMTggVjExOSBWMTIwIFYxMjEgVjEyMiBWMTIzIFYxMjQgVjEyNSBWMTI2IFYxMjcgVjEyOCBW MTI5IFYxMzAgVjEzMSBWMTMyIFYxMzMgVjEzNCBWMTM1IFYxMzYgVjEzNyBWMTM4IFYxMzkgVjE0 MCBWMTQxIFYxNDIgVjE0MyBWMTQ0IFYxNDUgVjE0NiBWMTQ3IFYxNDggVjE0OSBWMTUwIFYxNTEg VjE1MiBWMTUzIFYxNTQgVjE1NSBWMTU2IFYxNTcgVjE1OCBWMTU5IFYxNjAgVjE2MSBWMTYyIFYx NjMgVjE2NCBWMTY1IFYxNjYgVjE2NyBWMTY4IFYxNjkgVjE3MCBWMTcxIFYxNzIgVjE3MyBWMTc0 IFYxNzUgVjE3NiBWMTc3IFYxNzggVjE3OSBWMTgwIFYxODEgVjE4MiBWMTgzIFYxODQgVjE4NSBW MTg2IFYxODcgVjE4OCBWMTg5IFYxOTAgVjE5MSBWMTkyIFYxOTMgVjE5NCBWMTk1IFYxOTYgVjE5 NyBWMTk4IFYxOTkgVjIwMCBWMjAxIFYyMDIgVjIwMyBWMjA0IFYyMDUgVjIwNiBWMjA3IFYyMDgg VjIwOSBWMjEwIFYyMTEgVjIxMiBWMjEzIFYyMTQgVjIxNSBWMjE2IFYyMTcgVjIxOCBWMjE5IFYy MjAgVjIyMSBWMjIyIFYyMjMgVjIyNCBWMjI1IFYyMjYgVjIyNyBWMjI4IFYyMjkgVjIzMCBWMjMx IFYyMzIgVjIzMyBWMjM0IFYyMzUgVjIzNiBWMjM3IFYyMzggVjIzOSBWMjQwIFYyNDEgVjI0MiBW MjQzIFYyNDQgVjI0NSBWMjQ2IFYyNDcgVjI0OCBWMjQ5IFYyNTAgVjI1MSkKKyAgICBERUZJTkUK KyAgICBWMSBBUyB2YWwgPiAwLCBWMiBBUyB2YWwgPiAwLCBWMyBBUyB2YWwgPiAwLCBWNCBBUyB2 YWwgPiAwLCBWNSBBUyB2YWwgPiAwLCBWNiBBUyB2YWwgPiAwLCBWNyBBUyB2YWwgPiAwLCBWOCBB UyB2YWwgPiAwLCBWOSBBUyB2YWwgPiAwLCBWMTAgQVMgdmFsID4gMCwKKyAgICBWMTEgQVMgdmFs ID4gMCwgVjEyIEFTIHZhbCA+IDAsIFYxMyBBUyB2YWwgPiAwLCBWMTQgQVMgdmFsID4gMCwgVjE1 IEFTIHZhbCA+IDAsIFYxNiBBUyB2YWwgPiAwLCBWMTcgQVMgdmFsID4gMCwgVjE4IEFTIHZhbCA+ IDAsIFYxOSBBUyB2YWwgPiAwLCBWMjAgQVMgdmFsID4gMCwKKyAgICBWMjEgQVMgdmFsID4gMCwg VjIyIEFTIHZhbCA+IDAsIFYyMyBBUyB2YWwgPiAwLCBWMjQgQVMgdmFsID4gMCwgVjI1IEFTIHZh bCA+IDAsIFYyNiBBUyB2YWwgPiAwLCBWMjcgQVMgdmFsID4gMCwgVjI4IEFTIHZhbCA+IDAsIFYy OSBBUyB2YWwgPiAwLCBWMzAgQVMgdmFsID4gMCwKKyAgICBWMzEgQVMgdmFsID4gMCwgVjMyIEFT IHZhbCA+IDAsIFYzMyBBUyB2YWwgPiAwLCBWMzQgQVMgdmFsID4gMCwgVjM1IEFTIHZhbCA+IDAs IFYzNiBBUyB2YWwgPiAwLCBWMzcgQVMgdmFsID4gMCwgVjM4IEFTIHZhbCA+IDAsIFYzOSBBUyB2 YWwgPiAwLCBWNDAgQVMgdmFsID4gMCwKKyAgICBWNDEgQVMgdmFsID4gMCwgVjQyIEFTIHZhbCA+ IDAsIFY0MyBBUyB2YWwgPiAwLCBWNDQgQVMgdmFsID4gMCwgVjQ1IEFTIHZhbCA+IDAsIFY0NiBB UyB2YWwgPiAwLCBWNDcgQVMgdmFsID4gMCwgVjQ4IEFTIHZhbCA+IDAsIFY0OSBBUyB2YWwgPiAw LCBWNTAgQVMgdmFsID4gMCwKKyAgICBWNTEgQVMgdmFsID4gMCwgVjUyIEFTIHZhbCA+IDAsIFY1 MyBBUyB2YWwgPiAwLCBWNTQgQVMgdmFsID4gMCwgVjU1IEFTIHZhbCA+IDAsIFY1NiBBUyB2YWwg PiAwLCBWNTcgQVMgdmFsID4gMCwgVjU4IEFTIHZhbCA+IDAsIFY1OSBBUyB2YWwgPiAwLCBWNjAg QVMgdmFsID4gMCwKKyAgICBWNjEgQVMgdmFsID4gMCwgVjYyIEFTIHZhbCA+IDAsIFY2MyBBUyB2 YWwgPiAwLCBWNjQgQVMgdmFsID4gMCwgVjY1IEFTIHZhbCA+IDAsIFY2NiBBUyB2YWwgPiAwLCBW NjcgQVMgdmFsID4gMCwgVjY4IEFTIHZhbCA+IDAsIFY2OSBBUyB2YWwgPiAwLCBWNzAgQVMgdmFs ID4gMCwKKyAgICBWNzEgQVMgdmFsID4gMCwgVjcyIEFTIHZhbCA+IDAsIFY3MyBBUyB2YWwgPiAw LCBWNzQgQVMgdmFsID4gMCwgVjc1IEFTIHZhbCA+IDAsIFY3NiBBUyB2YWwgPiAwLCBWNzcgQVMg dmFsID4gMCwgVjc4IEFTIHZhbCA+IDAsIFY3OSBBUyB2YWwgPiAwLCBWODAgQVMgdmFsID4gMCwK KyAgICBWODEgQVMgdmFsID4gMCwgVjgyIEFTIHZhbCA+IDAsIFY4MyBBUyB2YWwgPiAwLCBWODQg QVMgdmFsID4gMCwgVjg1IEFTIHZhbCA+IDAsIFY4NiBBUyB2YWwgPiAwLCBWODcgQVMgdmFsID4g MCwgVjg4IEFTIHZhbCA+IDAsIFY4OSBBUyB2YWwgPiAwLCBWOTAgQVMgdmFsID4gMCwKKyAgICBW OTEgQVMgdmFsID4gMCwgVjkyIEFTIHZhbCA+IDAsIFY5MyBBUyB2YWwgPiAwLCBWOTQgQVMgdmFs ID4gMCwgVjk1IEFTIHZhbCA+IDAsIFY5NiBBUyB2YWwgPiAwLCBWOTcgQVMgdmFsID4gMCwgVjk4 IEFTIHZhbCA+IDAsIFY5OSBBUyB2YWwgPiAwLCBWMTAwIEFTIHZhbCA+IDAsCisgICAgVjEwMSBB UyB2YWwgPiAwLCBWMTAyIEFTIHZhbCA+IDAsIFYxMDMgQVMgdmFsID4gMCwgVjEwNCBBUyB2YWwg PiAwLCBWMTA1IEFTIHZhbCA+IDAsIFYxMDYgQVMgdmFsID4gMCwgVjEwNyBBUyB2YWwgPiAwLCBW MTA4IEFTIHZhbCA+IDAsIFYxMDkgQVMgdmFsID4gMCwgVjExMCBBUyB2YWwgPiAwLAorICAgIFYx MTEgQVMgdmFsID4gMCwgVjExMiBBUyB2YWwgPiAwLCBWMTEzIEFTIHZhbCA+IDAsIFYxMTQgQVMg dmFsID4gMCwgVjExNSBBUyB2YWwgPiAwLCBWMTE2IEFTIHZhbCA+IDAsIFYxMTcgQVMgdmFsID4g MCwgVjExOCBBUyB2YWwgPiAwLCBWMTE5IEFTIHZhbCA+IDAsIFYxMjAgQVMgdmFsID4gMCwKKyAg ICBWMTIxIEFTIHZhbCA+IDAsIFYxMjIgQVMgdmFsID4gMCwgVjEyMyBBUyB2YWwgPiAwLCBWMTI0 IEFTIHZhbCA+IDAsIFYxMjUgQVMgdmFsID4gMCwgVjEyNiBBUyB2YWwgPiAwLCBWMTI3IEFTIHZh bCA+IDAsIFYxMjggQVMgdmFsID4gMCwgVjEyOSBBUyB2YWwgPiAwLCBWMTMwIEFTIHZhbCA+IDAs CisgICAgVjEzMSBBUyB2YWwgPiAwLCBWMTMyIEFTIHZhbCA+IDAsIFYxMzMgQVMgdmFsID4gMCwg VjEzNCBBUyB2YWwgPiAwLCBWMTM1IEFTIHZhbCA+IDAsIFYxMzYgQVMgdmFsID4gMCwgVjEzNyBB UyB2YWwgPiAwLCBWMTM4IEFTIHZhbCA+IDAsIFYxMzkgQVMgdmFsID4gMCwgVjE0MCBBUyB2YWwg PiAwLAorICAgIFYxNDEgQVMgdmFsID4gMCwgVjE0MiBBUyB2YWwgPiAwLCBWMTQzIEFTIHZhbCA+ IDAsIFYxNDQgQVMgdmFsID4gMCwgVjE0NSBBUyB2YWwgPiAwLCBWMTQ2IEFTIHZhbCA+IDAsIFYx NDcgQVMgdmFsID4gMCwgVjE0OCBBUyB2YWwgPiAwLCBWMTQ5IEFTIHZhbCA+IDAsIFYxNTAgQVMg dmFsID4gMCwKKyAgICBWMTUxIEFTIHZhbCA+IDAsIFYxNTIgQVMgdmFsID4gMCwgVjE1MyBBUyB2 YWwgPiAwLCBWMTU0IEFTIHZhbCA+IDAsIFYxNTUgQVMgdmFsID4gMCwgVjE1NiBBUyB2YWwgPiAw LCBWMTU3IEFTIHZhbCA+IDAsIFYxNTggQVMgdmFsID4gMCwgVjE1OSBBUyB2YWwgPiAwLCBWMTYw IEFTIHZhbCA+IDAsCisgICAgVjE2MSBBUyB2YWwgPiAwLCBWMTYyIEFTIHZhbCA+IDAsIFYxNjMg QVMgdmFsID4gMCwgVjE2NCBBUyB2YWwgPiAwLCBWMTY1IEFTIHZhbCA+IDAsIFYxNjYgQVMgdmFs ID4gMCwgVjE2NyBBUyB2YWwgPiAwLCBWMTY4IEFTIHZhbCA+IDAsIFYxNjkgQVMgdmFsID4gMCwg VjE3MCBBUyB2YWwgPiAwLAorICAgIFYxNzEgQVMgdmFsID4gMCwgVjE3MiBBUyB2YWwgPiAwLCBW MTczIEFTIHZhbCA+IDAsIFYxNzQgQVMgdmFsID4gMCwgVjE3NSBBUyB2YWwgPiAwLCBWMTc2IEFT IHZhbCA+IDAsIFYxNzcgQVMgdmFsID4gMCwgVjE3OCBBUyB2YWwgPiAwLCBWMTc5IEFTIHZhbCA+ IDAsIFYxODAgQVMgdmFsID4gMCwKKyAgICBWMTgxIEFTIHZhbCA+IDAsIFYxODIgQVMgdmFsID4g MCwgVjE4MyBBUyB2YWwgPiAwLCBWMTg0IEFTIHZhbCA+IDAsIFYxODUgQVMgdmFsID4gMCwgVjE4 NiBBUyB2YWwgPiAwLCBWMTg3IEFTIHZhbCA+IDAsIFYxODggQVMgdmFsID4gMCwgVjE4OSBBUyB2 YWwgPiAwLCBWMTkwIEFTIHZhbCA+IDAsCisgICAgVjE5MSBBUyB2YWwgPiAwLCBWMTkyIEFTIHZh bCA+IDAsIFYxOTMgQVMgdmFsID4gMCwgVjE5NCBBUyB2YWwgPiAwLCBWMTk1IEFTIHZhbCA+IDAs IFYxOTYgQVMgdmFsID4gMCwgVjE5NyBBUyB2YWwgPiAwLCBWMTk4IEFTIHZhbCA+IDAsIFYxOTkg QVMgdmFsID4gMCwgVjIwMCBBUyB2YWwgPiAwLAorICAgIFYyMDEgQVMgdmFsID4gMCwgVjIwMiBB UyB2YWwgPiAwLCBWMjAzIEFTIHZhbCA+IDAsIFYyMDQgQVMgdmFsID4gMCwgVjIwNSBBUyB2YWwg PiAwLCBWMjA2IEFTIHZhbCA+IDAsIFYyMDcgQVMgdmFsID4gMCwgVjIwOCBBUyB2YWwgPiAwLCBW MjA5IEFTIHZhbCA+IDAsIFYyMTAgQVMgdmFsID4gMCwKKyAgICBWMjExIEFTIHZhbCA+IDAsIFYy MTIgQVMgdmFsID4gMCwgVjIxMyBBUyB2YWwgPiAwLCBWMjE0IEFTIHZhbCA+IDAsIFYyMTUgQVMg dmFsID4gMCwgVjIxNiBBUyB2YWwgPiAwLCBWMjE3IEFTIHZhbCA+IDAsIFYyMTggQVMgdmFsID4g MCwgVjIxOSBBUyB2YWwgPiAwLCBWMjIwIEFTIHZhbCA+IDAsCisgICAgVjIyMSBBUyB2YWwgPiAw LCBWMjIyIEFTIHZhbCA+IDAsIFYyMjMgQVMgdmFsID4gMCwgVjIyNCBBUyB2YWwgPiAwLCBWMjI1 IEFTIHZhbCA+IDAsIFYyMjYgQVMgdmFsID4gMCwgVjIyNyBBUyB2YWwgPiAwLCBWMjI4IEFTIHZh bCA+IDAsIFYyMjkgQVMgdmFsID4gMCwgVjIzMCBBUyB2YWwgPiAwLAorICAgIFYyMzEgQVMgdmFs ID4gMCwgVjIzMiBBUyB2YWwgPiAwLCBWMjMzIEFTIHZhbCA+IDAsIFYyMzQgQVMgdmFsID4gMCwg VjIzNSBBUyB2YWwgPiAwLCBWMjM2IEFTIHZhbCA+IDAsIFYyMzcgQVMgdmFsID4gMCwgVjIzOCBB UyB2YWwgPiAwLCBWMjM5IEFTIHZhbCA+IDAsIFYyNDAgQVMgdmFsID4gMCwKKyAgICBWMjQxIEFT IHZhbCA+IDAsIFYyNDIgQVMgdmFsID4gMCwgVjI0MyBBUyB2YWwgPiAwLCBWMjQ0IEFTIHZhbCA+ IDAsIFYyNDUgQVMgdmFsID4gMCwgVjI0NiBBUyB2YWwgPiAwLCBWMjQ3IEFTIHZhbCA+IDAsIFYy NDggQVMgdmFsID4gMCwgVjI0OSBBUyB2YWwgPiAwLCBWMjUwIEFTIHZhbCA+IDAsCisgICAgVjI1 MSBBUyB2YWwgPiAwCispOworLS0gRXhwZWN0ZWQ6IFN1Y2Nlc3MgLSBleGFjdGx5IGF0IFJQUl9W QVJJRF9NQVggYm91bmRhcnkKKworLS0gVGVzdDogMjUyIHZhcmlhYmxlcyBpbiBQQVRURVJOLCAy NTEgaW4gREVGSU5FIChleGNlZWRzIGxpbWl0IHdpdGggaW1wbGljaXQgVFJVRSkKK1NFTEVDVCBD T1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfZXJyb3JzCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIg QlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBQQVRURVJOIChWMSBWMiBWMyBWNCBWNSBWNiBWNyBWOCBWOSBWMTAgVjExIFYxMiBW MTMgVjE0IFYxNSBWMTYgVjE3IFYxOCBWMTkgVjIwIFYyMSBWMjIgVjIzIFYyNCBWMjUgVjI2IFYy NyBWMjggVjI5IFYzMCBWMzEgVjMyIFYzMyBWMzQgVjM1IFYzNiBWMzcgVjM4IFYzOSBWNDAgVjQx IFY0MiBWNDMgVjQ0IFY0NSBWNDYgVjQ3IFY0OCBWNDkgVjUwIFY1MSBWNTIgVjUzIFY1NCBWNTUg VjU2IFY1NyBWNTggVjU5IFY2MCBWNjEgVjYyIFY2MyBWNjQgVjY1IFY2NiBWNjcgVjY4IFY2OSBW NzAgVjcxIFY3MiBWNzMgVjc0IFY3NSBWNzYgVjc3IFY3OCBWNzkgVjgwIFY4MSBWODIgVjgzIFY4 NCBWODUgVjg2IFY4NyBWODggVjg5IFY5MCBWOTEgVjkyIFY5MyBWOTQgVjk1IFY5NiBWOTcgVjk4 IFY5OSBWMTAwIFYxMDEgVjEwMiBWMTAzIFYxMDQgVjEwNSBWMTA2IFYxMDcgVjEwOCBWMTA5IFYx MTAgVjExMSBWMTEyIFYxMTMgVjExNCBWMTE1IFYxMTYgVjExNyBWMTE4IFYxMTkgVjEyMCBWMTIx IFYxMjIgVjEyMyBWMTI0IFYxMjUgVjEyNiBWMTI3IFYxMjggVjEyOSBWMTMwIFYxMzEgVjEzMiBW MTMzIFYxMzQgVjEzNSBWMTM2IFYxMzcgVjEzOCBWMTM5IFYxNDAgVjE0MSBWMTQyIFYxNDMgVjE0 NCBWMTQ1IFYxNDYgVjE0NyBWMTQ4IFYxNDkgVjE1MCBWMTUxIFYxNTIgVjE1MyBWMTU0IFYxNTUg VjE1NiBWMTU3IFYxNTggVjE1OSBWMTYwIFYxNjEgVjE2MiBWMTYzIFYxNjQgVjE2NSBWMTY2IFYx NjcgVjE2OCBWMTY5IFYxNzAgVjE3MSBWMTcyIFYxNzMgVjE3NCBWMTc1IFYxNzYgVjE3NyBWMTc4 IFYxNzkgVjE4MCBWMTgxIFYxODIgVjE4MyBWMTg0IFYxODUgVjE4NiBWMTg3IFYxODggVjE4OSBW MTkwIFYxOTEgVjE5MiBWMTkzIFYxOTQgVjE5NSBWMTk2IFYxOTcgVjE5OCBWMTk5IFYyMDAgVjIw MSBWMjAyIFYyMDMgVjIwNCBWMjA1IFYyMDYgVjIwNyBWMjA4IFYyMDkgVjIxMCBWMjExIFYyMTIg VjIxMyBWMjE0IFYyMTUgVjIxNiBWMjE3IFYyMTggVjIxOSBWMjIwIFYyMjEgVjIyMiBWMjIzIFYy MjQgVjIyNSBWMjI2IFYyMjcgVjIyOCBWMjI5IFYyMzAgVjIzMSBWMjMyIFYyMzMgVjIzNCBWMjM1 IFYyMzYgVjIzNyBWMjM4IFYyMzkgVjI0MCBWMjQxIFYyNDIgVjI0MyBWMjQ0IFYyNDUgVjI0NiBW MjQ3IFYyNDggVjI0OSBWMjUwIFYyNTEgVjI1MikKKyAgICBERUZJTkUKKyAgICBWMSBBUyB2YWwg PiAwLCBWMiBBUyB2YWwgPiAwLCBWMyBBUyB2YWwgPiAwLCBWNCBBUyB2YWwgPiAwLCBWNSBBUyB2 YWwgPiAwLCBWNiBBUyB2YWwgPiAwLCBWNyBBUyB2YWwgPiAwLCBWOCBBUyB2YWwgPiAwLCBWOSBB UyB2YWwgPiAwLCBWMTAgQVMgdmFsID4gMCwKKyAgICBWMTEgQVMgdmFsID4gMCwgVjEyIEFTIHZh bCA+IDAsIFYxMyBBUyB2YWwgPiAwLCBWMTQgQVMgdmFsID4gMCwgVjE1IEFTIHZhbCA+IDAsIFYx NiBBUyB2YWwgPiAwLCBWMTcgQVMgdmFsID4gMCwgVjE4IEFTIHZhbCA+IDAsIFYxOSBBUyB2YWwg PiAwLCBWMjAgQVMgdmFsID4gMCwKKyAgICBWMjEgQVMgdmFsID4gMCwgVjIyIEFTIHZhbCA+IDAs IFYyMyBBUyB2YWwgPiAwLCBWMjQgQVMgdmFsID4gMCwgVjI1IEFTIHZhbCA+IDAsIFYyNiBBUyB2 YWwgPiAwLCBWMjcgQVMgdmFsID4gMCwgVjI4IEFTIHZhbCA+IDAsIFYyOSBBUyB2YWwgPiAwLCBW MzAgQVMgdmFsID4gMCwKKyAgICBWMzEgQVMgdmFsID4gMCwgVjMyIEFTIHZhbCA+IDAsIFYzMyBB UyB2YWwgPiAwLCBWMzQgQVMgdmFsID4gMCwgVjM1IEFTIHZhbCA+IDAsIFYzNiBBUyB2YWwgPiAw LCBWMzcgQVMgdmFsID4gMCwgVjM4IEFTIHZhbCA+IDAsIFYzOSBBUyB2YWwgPiAwLCBWNDAgQVMg dmFsID4gMCwKKyAgICBWNDEgQVMgdmFsID4gMCwgVjQyIEFTIHZhbCA+IDAsIFY0MyBBUyB2YWwg PiAwLCBWNDQgQVMgdmFsID4gMCwgVjQ1IEFTIHZhbCA+IDAsIFY0NiBBUyB2YWwgPiAwLCBWNDcg QVMgdmFsID4gMCwgVjQ4IEFTIHZhbCA+IDAsIFY0OSBBUyB2YWwgPiAwLCBWNTAgQVMgdmFsID4g MCwKKyAgICBWNTEgQVMgdmFsID4gMCwgVjUyIEFTIHZhbCA+IDAsIFY1MyBBUyB2YWwgPiAwLCBW NTQgQVMgdmFsID4gMCwgVjU1IEFTIHZhbCA+IDAsIFY1NiBBUyB2YWwgPiAwLCBWNTcgQVMgdmFs ID4gMCwgVjU4IEFTIHZhbCA+IDAsIFY1OSBBUyB2YWwgPiAwLCBWNjAgQVMgdmFsID4gMCwKKyAg ICBWNjEgQVMgdmFsID4gMCwgVjYyIEFTIHZhbCA+IDAsIFY2MyBBUyB2YWwgPiAwLCBWNjQgQVMg dmFsID4gMCwgVjY1IEFTIHZhbCA+IDAsIFY2NiBBUyB2YWwgPiAwLCBWNjcgQVMgdmFsID4gMCwg VjY4IEFTIHZhbCA+IDAsIFY2OSBBUyB2YWwgPiAwLCBWNzAgQVMgdmFsID4gMCwKKyAgICBWNzEg QVMgdmFsID4gMCwgVjcyIEFTIHZhbCA+IDAsIFY3MyBBUyB2YWwgPiAwLCBWNzQgQVMgdmFsID4g MCwgVjc1IEFTIHZhbCA+IDAsIFY3NiBBUyB2YWwgPiAwLCBWNzcgQVMgdmFsID4gMCwgVjc4IEFT IHZhbCA+IDAsIFY3OSBBUyB2YWwgPiAwLCBWODAgQVMgdmFsID4gMCwKKyAgICBWODEgQVMgdmFs ID4gMCwgVjgyIEFTIHZhbCA+IDAsIFY4MyBBUyB2YWwgPiAwLCBWODQgQVMgdmFsID4gMCwgVjg1 IEFTIHZhbCA+IDAsIFY4NiBBUyB2YWwgPiAwLCBWODcgQVMgdmFsID4gMCwgVjg4IEFTIHZhbCA+ IDAsIFY4OSBBUyB2YWwgPiAwLCBWOTAgQVMgdmFsID4gMCwKKyAgICBWOTEgQVMgdmFsID4gMCwg VjkyIEFTIHZhbCA+IDAsIFY5MyBBUyB2YWwgPiAwLCBWOTQgQVMgdmFsID4gMCwgVjk1IEFTIHZh bCA+IDAsIFY5NiBBUyB2YWwgPiAwLCBWOTcgQVMgdmFsID4gMCwgVjk4IEFTIHZhbCA+IDAsIFY5 OSBBUyB2YWwgPiAwLCBWMTAwIEFTIHZhbCA+IDAsCisgICAgVjEwMSBBUyB2YWwgPiAwLCBWMTAy IEFTIHZhbCA+IDAsIFYxMDMgQVMgdmFsID4gMCwgVjEwNCBBUyB2YWwgPiAwLCBWMTA1IEFTIHZh bCA+IDAsIFYxMDYgQVMgdmFsID4gMCwgVjEwNyBBUyB2YWwgPiAwLCBWMTA4IEFTIHZhbCA+IDAs IFYxMDkgQVMgdmFsID4gMCwgVjExMCBBUyB2YWwgPiAwLAorICAgIFYxMTEgQVMgdmFsID4gMCwg VjExMiBBUyB2YWwgPiAwLCBWMTEzIEFTIHZhbCA+IDAsIFYxMTQgQVMgdmFsID4gMCwgVjExNSBB UyB2YWwgPiAwLCBWMTE2IEFTIHZhbCA+IDAsIFYxMTcgQVMgdmFsID4gMCwgVjExOCBBUyB2YWwg PiAwLCBWMTE5IEFTIHZhbCA+IDAsIFYxMjAgQVMgdmFsID4gMCwKKyAgICBWMTIxIEFTIHZhbCA+ IDAsIFYxMjIgQVMgdmFsID4gMCwgVjEyMyBBUyB2YWwgPiAwLCBWMTI0IEFTIHZhbCA+IDAsIFYx MjUgQVMgdmFsID4gMCwgVjEyNiBBUyB2YWwgPiAwLCBWMTI3IEFTIHZhbCA+IDAsIFYxMjggQVMg dmFsID4gMCwgVjEyOSBBUyB2YWwgPiAwLCBWMTMwIEFTIHZhbCA+IDAsCisgICAgVjEzMSBBUyB2 YWwgPiAwLCBWMTMyIEFTIHZhbCA+IDAsIFYxMzMgQVMgdmFsID4gMCwgVjEzNCBBUyB2YWwgPiAw LCBWMTM1IEFTIHZhbCA+IDAsIFYxMzYgQVMgdmFsID4gMCwgVjEzNyBBUyB2YWwgPiAwLCBWMTM4 IEFTIHZhbCA+IDAsIFYxMzkgQVMgdmFsID4gMCwgVjE0MCBBUyB2YWwgPiAwLAorICAgIFYxNDEg QVMgdmFsID4gMCwgVjE0MiBBUyB2YWwgPiAwLCBWMTQzIEFTIHZhbCA+IDAsIFYxNDQgQVMgdmFs ID4gMCwgVjE0NSBBUyB2YWwgPiAwLCBWMTQ2IEFTIHZhbCA+IDAsIFYxNDcgQVMgdmFsID4gMCwg VjE0OCBBUyB2YWwgPiAwLCBWMTQ5IEFTIHZhbCA+IDAsIFYxNTAgQVMgdmFsID4gMCwKKyAgICBW MTUxIEFTIHZhbCA+IDAsIFYxNTIgQVMgdmFsID4gMCwgVjE1MyBBUyB2YWwgPiAwLCBWMTU0IEFT IHZhbCA+IDAsIFYxNTUgQVMgdmFsID4gMCwgVjE1NiBBUyB2YWwgPiAwLCBWMTU3IEFTIHZhbCA+ IDAsIFYxNTggQVMgdmFsID4gMCwgVjE1OSBBUyB2YWwgPiAwLCBWMTYwIEFTIHZhbCA+IDAsCisg ICAgVjE2MSBBUyB2YWwgPiAwLCBWMTYyIEFTIHZhbCA+IDAsIFYxNjMgQVMgdmFsID4gMCwgVjE2 NCBBUyB2YWwgPiAwLCBWMTY1IEFTIHZhbCA+IDAsIFYxNjYgQVMgdmFsID4gMCwgVjE2NyBBUyB2 YWwgPiAwLCBWMTY4IEFTIHZhbCA+IDAsIFYxNjkgQVMgdmFsID4gMCwgVjE3MCBBUyB2YWwgPiAw LAorICAgIFYxNzEgQVMgdmFsID4gMCwgVjE3MiBBUyB2YWwgPiAwLCBWMTczIEFTIHZhbCA+IDAs IFYxNzQgQVMgdmFsID4gMCwgVjE3NSBBUyB2YWwgPiAwLCBWMTc2IEFTIHZhbCA+IDAsIFYxNzcg QVMgdmFsID4gMCwgVjE3OCBBUyB2YWwgPiAwLCBWMTc5IEFTIHZhbCA+IDAsIFYxODAgQVMgdmFs ID4gMCwKKyAgICBWMTgxIEFTIHZhbCA+IDAsIFYxODIgQVMgdmFsID4gMCwgVjE4MyBBUyB2YWwg PiAwLCBWMTg0IEFTIHZhbCA+IDAsIFYxODUgQVMgdmFsID4gMCwgVjE4NiBBUyB2YWwgPiAwLCBW MTg3IEFTIHZhbCA+IDAsIFYxODggQVMgdmFsID4gMCwgVjE4OSBBUyB2YWwgPiAwLCBWMTkwIEFT IHZhbCA+IDAsCisgICAgVjE5MSBBUyB2YWwgPiAwLCBWMTkyIEFTIHZhbCA+IDAsIFYxOTMgQVMg dmFsID4gMCwgVjE5NCBBUyB2YWwgPiAwLCBWMTk1IEFTIHZhbCA+IDAsIFYxOTYgQVMgdmFsID4g MCwgVjE5NyBBUyB2YWwgPiAwLCBWMTk4IEFTIHZhbCA+IDAsIFYxOTkgQVMgdmFsID4gMCwgVjIw MCBBUyB2YWwgPiAwLAorICAgIFYyMDEgQVMgdmFsID4gMCwgVjIwMiBBUyB2YWwgPiAwLCBWMjAz IEFTIHZhbCA+IDAsIFYyMDQgQVMgdmFsID4gMCwgVjIwNSBBUyB2YWwgPiAwLCBWMjA2IEFTIHZh bCA+IDAsIFYyMDcgQVMgdmFsID4gMCwgVjIwOCBBUyB2YWwgPiAwLCBWMjA5IEFTIHZhbCA+IDAs IFYyMTAgQVMgdmFsID4gMCwKKyAgICBWMjExIEFTIHZhbCA+IDAsIFYyMTIgQVMgdmFsID4gMCwg VjIxMyBBUyB2YWwgPiAwLCBWMjE0IEFTIHZhbCA+IDAsIFYyMTUgQVMgdmFsID4gMCwgVjIxNiBB UyB2YWwgPiAwLCBWMjE3IEFTIHZhbCA+IDAsIFYyMTggQVMgdmFsID4gMCwgVjIxOSBBUyB2YWwg PiAwLCBWMjIwIEFTIHZhbCA+IDAsCisgICAgVjIyMSBBUyB2YWwgPiAwLCBWMjIyIEFTIHZhbCA+ IDAsIFYyMjMgQVMgdmFsID4gMCwgVjIyNCBBUyB2YWwgPiAwLCBWMjI1IEFTIHZhbCA+IDAsIFYy MjYgQVMgdmFsID4gMCwgVjIyNyBBUyB2YWwgPiAwLCBWMjI4IEFTIHZhbCA+IDAsIFYyMjkgQVMg dmFsID4gMCwgVjIzMCBBUyB2YWwgPiAwLAorICAgIFYyMzEgQVMgdmFsID4gMCwgVjIzMiBBUyB2 YWwgPiAwLCBWMjMzIEFTIHZhbCA+IDAsIFYyMzQgQVMgdmFsID4gMCwgVjIzNSBBUyB2YWwgPiAw LCBWMjM2IEFTIHZhbCA+IDAsIFYyMzcgQVMgdmFsID4gMCwgVjIzOCBBUyB2YWwgPiAwLCBWMjM5 IEFTIHZhbCA+IDAsIFYyNDAgQVMgdmFsID4gMCwKKyAgICBWMjQxIEFTIHZhbCA+IDAsIFYyNDIg QVMgdmFsID4gMCwgVjI0MyBBUyB2YWwgPiAwLCBWMjQ0IEFTIHZhbCA+IDAsIFYyNDUgQVMgdmFs ID4gMCwgVjI0NiBBUyB2YWwgPiAwLCBWMjQ3IEFTIHZhbCA+IDAsIFYyNDggQVMgdmFsID4gMCwg VjI0OSBBUyB2YWwgPiAwLCBWMjUwIEFTIHZhbCA+IDAsCisgICAgVjI1MSBBUyB2YWwgPiAwCisp OworLS0gRXhwZWN0ZWQ6IEVSUk9SIC0gdG9vIG1hbnkgcGF0dGVybiB2YXJpYWJsZXMgKE1heGlt dW0gaXMgMjUxKQorCistLSBUZXN0OiBQYXR0ZXJuIG5lc3RpbmcgYXQgbWF4aW11bSBkZXB0aCAo ZGVwdGggMjUzKQorLS0gTm90ZTogMjUzIG5lc3RlZCBHUk9VUHszLDd9IHF1YW50aWZpZXJzIHBy b2R1Y2UgZGVwdGggMjUzIGFmdGVyIG9wdGltaXphdGlvbgorU0VMRUNUIGlkLCB2YWwsIENPVU5U KCopIE9WRVIgdyBGUk9NIHJwcl9lcnJvcnMKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBp ZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIFBBVFRFUk4gKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKChBezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKKy0t IEV4cGVjdGVkOiBTaG91bGQgc3VjY2VlZAorCistLSBUZXN0OiBQYXR0ZXJuIG5lc3RpbmcgZGVw dGggZXhjZWVkcyBtYXhpbXVtIChkZXB0aCAyNTQpCistLSBOb3RlOiAyNTQgbmVzdGVkIEdST1VQ ezMsN30gcXVhbnRpZmllcnMgcHJvZHVjZSBkZXB0aCAyNTQgYWZ0ZXIgb3B0aW1pemF0aW9uCitT RUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX2Vycm9ycworV0lORE9XIHcg QVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KChBezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30p ezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMs N30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pezMsN30pCisgICAg REVGSU5FIEEgQVMgdmFsID4gMAorKTsKKy0tIEV4cGVjdGVkOiBFUlJPUiAtIHBhdHRlcm4gbmVz dGluZyB0b28gZGVlcAorCitEUk9QIFRBQkxFIHJwcl9lcnJvcnM7CisKKy0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gSmFj b2IncyBQYXR0ZXJucworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLSBCYXNpYyBwYXR0ZXJuIG1hdGNoaW5nIHRlc3RzIGZy b20gamFjb2IgYnJhbmNoCisKKy0tIFRlc3Q6IEE/IChvcHRpb25hbCwgZ3JlZWR5KQorU0VMRUNU IGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjCitGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBB UyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOIChBPykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiA1MAorKTsKKworLS0gVGVzdDog QXsyfSAoZXhhY3QgY291bnQpCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGMK K0ZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEF7Mn0pCisgICAgREVGSU5FIEEg QVMgdmFsIDw9IDUwCispOworCistLSBUZXN0OiBBezEsM30gKGJvdW5kZWQgcmFuZ2UsIGdyZWVk eSkKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgYworRlJPTSBycHJfcGxhbgor V0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExB U1QgUk9XCisgICAgUEFUVEVSTiAoQXsxLDN9KQorICAgIERFRklORSBBIEFTIHZhbCA8PSA1MAor KTsKKworLS0gVGVzdDogQSB8IEIgKHNpbXBsZSBhbHRlcm5hdGlvbikKK1NFTEVDVCBpZCwgdmFs LCBjb3VudCgqKSBPVkVSIHcgQVMgYworRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKAorICAg IE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVS TiAoQSB8IEIpCisgICAgREVGSU5FIEEgQVMgdmFsIDw9IDMwLCBCIEFTIHZhbCA+IDcwCispOwor CistLSBUZXN0OiBBIHwgQiB8IEMgKHRocmVlLXdheSBhbHRlcm5hdGlvbikKK1NFTEVDVCBpZCwg dmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgYworRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKAor ICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFU VEVSTiAoQSB8IEIgfCBDKQorICAgIERFRklORSBBIEFTIHZhbCA8PSAyMCwgQiBBUyB2YWwgQkVU V0VFTiA0MCBBTkQgNjAsIEMgQVMgdmFsID4gODAKKyk7CisKKy0tIFRlc3Q6IEEgQiBDIChjb25j YXRlbmF0aW9uKQorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjCitGUk9NIHJw cl9wbGFuCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQ IFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIgQykKKyAgICBERUZJTkUgQSBBUyB2YWwg PD0gMzAsIEIgQVMgdmFsIEJFVFdFRU4gMzEgQU5EIDYwLCBDIEFTIHZhbCA+IDYwCispOworCist LSBUZXN0OiBBIEI/IEMgKG9wdGlvbmFsIG1pZGRsZSkKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgq KSBPVkVSIHcgQVMgYworRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZ IGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCPyBD KQorICAgIERFRklORSBBIEFTIHZhbCA8PSAzMCwgQiBBUyB2YWwgQkVUV0VFTiAzMSBBTkQgNjAs IEMgQVMgdmFsID4gNjAKKyk7CisKKy0tIFRlc3Q6IChBIEIpKyAoZ3JvdXBlZCBxdWFudGlmaWVy KQorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjCitGUk9NIHJwcl9wbGFuCitX SU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFT VCBST1cKKyAgICBQQVRURVJOICgoQSBCKSspCisgICAgREVGSU5FIEEgQVMgdmFsIDw9IDUwLCBC IEFTIHZhbCA+IDUwCispOworCistLSBUZXN0OiAoQSB8IEIpKyBDIChhbHRlcm5hdGlvbiB3aXRo IHF1YW50aWZpZXIpCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGMKK0ZST00g cnByX3BsYW4KK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNL SVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIHwgQikrIEMpCisgICAgREVGSU5FIEEg QVMgdmFsIDw9IDMwLCBCIEFTIHZhbCBCRVRXRUVOIDMxIEFORCA2MCwgQyBBUyB2YWwgPiA4MAor KTsKKworLS0gVGVzdDogKEErIHwgKEEgfCBCKSspKiAtIG5lc3RlZCBhbHRlcm5hdGlvbiBpbnNp ZGUgcXVhbnRpZmllZCBncm91cAorLS0gUHJldmlvdXNseSBjYXVzZWQgaW5maW5pdGUgcmVjdXJz aW9uIGluIG5mYV9hZHZhbmNlX2FsdCB3aGVuIHRoZSBpbm5lcgorLS0gQkVHSU4oKykncyBza2lw IGp1bXAgd2FzIGZvbGxvd2VkIGFzIGFuIEFMVCBicmFuY2ggcG9pbnRlci4KK1NFTEVDVCBpZCwg ZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUo aWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gKFZBTFVFUworICAgICgxLCBBUlJBWVsnQScs ICdCJ10pLAorICAgICgyLCBBUlJBWVsnQiddKSwKKyAgICAoMywgQVJSQVlbJ0MnXSkKKykgQVMg dChpZCwgZmxhZ3MpCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRD SCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSsgfCAoQSB8IEIpKykqKQorICAg IERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0In ID0gQU5ZKGZsYWdzKQorKTsKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBQYXRob2xvZ2ljYWwgUGF0dGVybnMKKy0t ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0gVGhlc2UgcGF0dGVybnMgcHJldmlvdXNseSBjYXVzZWQgaXNzdWVzLiBOb3cgb3B0 aW1pemVkIG9yIGhhbmRsZWQgc2FmZWx5LgorCistLSBUZXN0OiAoQSopKiAtIG5lc3RlZCB1bmJv dW5kZWQgKG9wdGltaXplZCB0byBBKikKK1NFTEVDVCB2LCBjb3VudCgqKSBPVkVSIHcgQVMgYwor RlJPTSAoU0VMRUNUIGdlbmVyYXRlX3NlcmllcygxLCA1KSB2KQorV0lORE9XIHcgQVMgKAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIElOSVRJQUwKKyAgICBQQVRURVJOICgo QSopKikKKyAgICBERUZJTkUgQSBBUyBUUlVFCispOworCistLSBUZXN0OiAoQSopKyAtIGlubmVy IG51bGxhYmxlIChvcHRpbWl6ZWQgdG8gQSopCitTRUxFQ1QgdiwgY291bnQoKikgT1ZFUiB3IEFT IGMKK0ZST00gKFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwgNSkgdikKK1dJTkRPVyB3IEFTICgK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBJTklUSUFMCisgICAgUEFUVEVS TiAoKEEqKSspCisgICAgREVGSU5FIEEgQVMgVFJVRQorKTsKKworLS0gVGVzdDogKEErKSogLSBv dXRlciBudWxsYWJsZSAob3B0aW1pemVkIHRvIEEqKQorU0VMRUNUIHYsIGNvdW50KCopIE9WRVIg dyBBUyBjCitGUk9NIChTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVzKDEsIDUpIHYpCitXSU5ET1cgdyBB UyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgSU5JVElBTAorICAgIFBB VFRFUk4gKChBKykqKQorICAgIERFRklORSBBIEFTIFRSVUUKKyk7CisKKy0tIFRlc3Q6IChBKykr IC0gYm90aCByZXF1aXJlIG1hdGNoIChvcHRpbWl6ZWQgdG8gQSspCitTRUxFQ1QgdiwgY291bnQo KikgT1ZFUiB3IEFTIGMKK0ZST00gKFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwgNSkgdikKK1dJ TkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBJTklUSUFM CisgICAgUEFUVEVSTiAoKEErKSspCisgICAgREVGSU5FIEEgQVMgVFJVRQorKTsKKworLS0gVGVz dDogKCgoQSkqKSopKiAgLSB0cmlwbGUgbmVzdGVkIChvcHRpbWl6ZWQgdG8gQSopCitTRUxFQ1Qg diwgY291bnQoKikgT1ZFUiB3IEFTIGMKK0ZST00gKFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwg MykgdikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBJTklUSUFMCisgICAgUEFUVEVSTiAoKCgoQSkqKSopKikKKyAgICBERUZJTkUgQSBBUyBUUlVF CispOworCistLSBPcHRpb25hbCBncm91cCB3aXRoIGFsdGVybmF0aW9uOiBBICgoQiB8IEMpIChE IHwgRSkpKiBGPworLS0gV2hlbiBvbmx5IEEgbWF0Y2hlcywgdGhlICogZ3JvdXAgbWF0Y2hlcyAw IHRpbWVzIGFuZCBGPyBtYXRjaGVzIDAgdGltZXMKK1NFTEVDVCBpZCwgdmFsLCBtYXRjaF9sZW4K K0ZST00gKFNFTEVDVCBpZCwgdmFsLAorICAgICAgICAgICAgIENPVU5UKCopIE9WRVIgdyBBUyBt YXRjaF9sZW4KKyAgICAgIEZST00gKFZBTFVFUyAoMSwgMSksICgyLCA5OSkpIEFTIHQoaWQsIHZh bCkKKyAgICAgIFdJTkRPVyB3IEFTICgKKyAgICAgICAgICBPUkRFUiBCWSBpZAorICAgICAgICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAg ICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgICAgICAgIFBBVFRFUk4gKEEg KChCIHwgQykgKEQgfCBFKSkqIEY/KQorICAgICAgICAgIERFRklORSBBIEFTIHZhbCA9IDEsCisg ICAgICAgICAgICAgICAgIEIgQVMgdmFsID0gMiwgQyBBUyB2YWwgPSAzLAorICAgICAgICAgICAg ICAgICBEIEFTIHZhbCA9IDQsIEUgQVMgdmFsID0gNSwKKyAgICAgICAgICAgICAgICAgRiBBUyB2 YWwgPSA2CisgICAgICApCispIHM7CisKK0RST1AgVEFCTEUgcnByX3BsYW47CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfZXhwbGFpbi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9ycHJfZXhwbGFpbi5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLmEzNzg5ZTkyNjMxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv cnByX2V4cGxhaW4uc3FsCkBAIC0wLDAgKzEsMjc4MyBAQAorLS0gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBSUFIgRVhQTEFJ TiBUZXN0cworLS0gVGVzdHMgZm9yIFJvdyBQYXR0ZXJuIFJlY29nbml0aW9uIEVYUExBSU4gb3V0 cHV0CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tCistLSBWaWV3cyBhbmQgdGFibGVzIGluIHRoaXMgZmlsZSBhcmUgaW50 ZW50aW9uYWxseSBub3QgZHJvcHBlZCwKKy0tIHNvIHRoYXQgcGdfdXBncmFkZS9wZ19kdW1wIGNh biB0ZXN0IFJQUiBzeW50YXggc2VyaWFsaXphdGlvbi4KKy0tCistLSBUaGlzIHRlc3Qgc3VpdGUg dmFsaWRhdGVzIEVYUExBSU4gb3V0cHV0IGZvciBSUFIgcXVlcmllcywKKy0tIGluY2x1ZGluZyBO RkEgc3RhdGlzdGljcyBzaG93biBpbiBFWFBMQUlOIEFOQUxZWkU6CistLSAgIC0gTkZBIFN0YXRl czogcGVhaywgdG90YWwsIG1lcmdlZAorLS0gICAtIE5GQSBDb250ZXh0czogcGVhaywgdG90YWws IHBydW5lZAorLS0gICAtIE5GQTogbWF0Y2hlZCAobGVuIG1pbi9tYXgvYXZnKSwgbWlzbWF0Y2hl ZCAobGVuIG1pbi9tYXgvYXZnKQorLS0gICAtIE5GQTogYWJzb3JiZWQgKGxlbiBtaW4vbWF4L2F2 ZyksIHNraXBwZWQgKGxlbiBtaW4vbWF4L2F2ZykKKy0tICAgLSBQYXR0ZXJuIGRlcGFyc2UgZm9y bWF0dGluZworLS0gICAtIE11bHRpcGxlIG91dHB1dCBmb3JtYXRzICh0ZXh0LCBKU09OLCBYTUwp CistLQorLS0gVGVzdCBDb3ZlcmFnZToKKy0tICAgQmFzaWMgTkZBIFN0YXRpc3RpY3MgVGVzdHMK Ky0tICAgU3RhdGUgU3RhdGlzdGljcyBUZXN0cworLS0gICBDb250ZXh0IFN0YXRpc3RpY3MgVGVz dHMKKy0tICAgTWF0Y2ggTGVuZ3RoIFN0YXRpc3RpY3MgVGVzdHMKKy0tICAgTWlzbWF0Y2ggTGVu Z3RoIFN0YXRpc3RpY3MgVGVzdHMKKy0tICAgSlNPTiBGb3JtYXQgVGVzdHMKKy0tICAgWE1MIEZv cm1hdCBUZXN0cworLS0gICBNdWx0aXBsZSBQYXJ0aXRpb25zIFRlc3RzCistLSAgIEVkZ2UgQ2Fz ZXMKKy0tICAgQ29tcGxleCBQYXR0ZXJuIFRlc3RzCistLSAgIFJlYWwtd29ybGQgUGF0dGVybiBF eGFtcGxlcworLS0gICBQZXJmb3JtYW5jZS1vcmllbnRlZCBUZXN0cworLS0gICBJTklUSUFMIHZz IG5vIElOSVRJQUwgY29tcGFyaXNvbgorLS0gICBRdWFudGlmaWVyIFZhcmlhdGlvbnMKKy0tICAg UmVncmVzc2lvbiBUZXN0cyBmb3IgU3RhdGlzdGljcyBBY2N1cmFjeQorLS0gICBBbHRlcm5hdGlv biBQYXR0ZXJuIFRlc3RzCistLSAgIEdyb3VwIFBhdHRlcm4gVGVzdHMKKy0tICAgV2luZG93IEZ1 bmN0aW9uIENvbWJpbmF0aW9ucworLS0gICBERUZJTkUgRXhwcmVzc2lvbiBWYXJpYXRpb25zCist LSAgIExhcmdlIFNjYWxlIFN0YXRpc3RpY3MgVmVyaWZpY2F0aW9uCistLSAgIE5hdiBNYXJrIExv b2tiYWNrL0xvb2thaGVhZCAodHVwbGVzdG9yZSB0cmltKQorLS0gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0tIEZpbHRlciBm dW5jdGlvbiB0byBub3JtYWxpemUgcGxhdGZvcm0tZGVwZW5kZW50IG1lbW9yeSB2YWx1ZXMgKG5v dCBORkEgc3RhdGlzdGljcykuCistLSBORkEgc3RhdGlzdGljcyBzaG91bGQgbm90IGNoYW5nZSBi ZXR3ZWVuIHBsYXRmb3JtczsgaWYgdGhleSBkbywgaXQgY291bGQKKy0tIGluZGljYXRlIGlzc3Vl cyBzdWNoIGFzIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGFjY2Vzcy4KKy0tIFdvcmtzIGZvciB0ZXh0 LCBKU09OLCBhbmQgWE1MIGZvcm1hdHMuCitjcmVhdGUgZnVuY3Rpb24gcnByX2V4cGxhaW5fZmls dGVyKHRleHQpIHJldHVybnMgc2V0b2YgdGV4dAorbGFuZ3VhZ2UgcGxwZ3NxbCBhcworJCQKK2Rl Y2xhcmUKKyAgICBsbiB0ZXh0OworYmVnaW4KKyAgICBmb3IgbG4gaW4gZXhlY3V0ZSAkMQorICAg IGxvb3AKKyAgICAgICAgLS0gTm9ybWFsaXplIHBsYXRmb3JtLWRlcGVuZGVudCBtZW1vcnkgdmFs dWVzCisgICAgICAgIC0tIEtlZXAgTkZBIHN0YXRpc3RpY3MgbnVtYmVycyB1bmNoYW5nZWQgKHRo ZXkgYXJlIHRlc3QgYXNzZXJ0aW9ucykKKworICAgICAgICAtLSBUZXh0IGZvcm1hdDogIlN0b3Jh Z2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiAxOGtCIgorICAgICAgICBpZiBsbiB+ICdTdG9y YWdlOi4qTWF4aW11bSBTdG9yYWdlOicgdGhlbgorICAgICAgICAgICAgbG4gOj0gcmVnZXhwX3Jl cGxhY2UobG4sICdcbVxkK2tCJywgJ05rQicsICdnJyk7CisgICAgICAgIGVuZCBpZjsKKworICAg ICAgICAtLSBKU09OIGZvcm1hdDogIk1heGltdW0gU3RvcmFnZSI6IDE3IChudW1iZXIgaW4ga0Ig dW5pdHMpCisgICAgICAgIGlmIGxuIH4gJyJNYXhpbXVtIFN0b3JhZ2UiOicgdGhlbgorICAgICAg ICAgICAgbG4gOj0gcmVnZXhwX3JlcGxhY2UobG4sICciTWF4aW11bSBTdG9yYWdlIjogXGQrJywg JyJNYXhpbXVtIFN0b3JhZ2UiOiAwJywgJ2cnKTsKKyAgICAgICAgZW5kIGlmOworCisgICAgICAg IC0tIFhNTCBmb3JtYXQ6IDxNYXhpbXVtLVN0b3JhZ2U+MTc8L01heGltdW0tU3RvcmFnZT4gKG51 bWJlciBpbiBrQiB1bml0cykKKyAgICAgICAgaWYgbG4gfiAnPE1heGltdW0tU3RvcmFnZT4nIHRo ZW4KKyAgICAgICAgICAgIGxuIDo9IHJlZ2V4cF9yZXBsYWNlKGxuLCAnPE1heGltdW0tU3RvcmFn ZT5cZCs8L01heGltdW0tU3RvcmFnZT4nLCAnPE1heGltdW0tU3RvcmFnZT4wPC9NYXhpbXVtLVN0 b3JhZ2U+JywgJ2cnKTsKKyAgICAgICAgZW5kIGlmOworCisgICAgICAgIC0tIFNvcnQgTWV0aG9k IG1lbW9yeSBpcyBwbGF0Zm9ybS1kZXBlbmRlbnQgKDMyLWJpdCB2cyA2NC1iaXQpCisgICAgICAg IGlmIGxuIH4gJ1NvcnQgTWV0aG9kOi4qTWVtb3J5OicgdGhlbgorICAgICAgICAgICAgbG4gOj0g cmVnZXhwX3JlcGxhY2UobG4sICdNZW1vcnk6IFxkK2tCJywgJ01lbW9yeTogTmtCJyk7CisgICAg ICAgIGVuZCBpZjsKKworICAgICAgICByZXR1cm4gbmV4dCBsbjsKKyAgICBlbmQgbG9vcDsKK2Vu ZDsKKyQkOworCistLSBTZXR1cDogQ3JlYXRlIHRlc3QgdGFibGVzCitDUkVBVEUgVEFCTEUgcnBy X25mYV90ZXN0ICgKKyAgICBpZCBzZXJpYWwsCisgICAgdiBpbnQsCisgICAgY2F0IGNoYXIoMSkK Kyk7CisKKy0tIEluc2VydCB0ZXN0IGRhdGE6IDEwMCByb3dzIHdpdGggcHJlZGljdGFibGUgcGF0 dGVybgorSU5TRVJUIElOVE8gcnByX25mYV90ZXN0ICh2LCBjYXQpCitTRUxFQ1QgaSwKKyAgICAg ICBDQVNFCisgICAgICAgICAgIFdIRU4gaSAlIDUgPSAxIFRIRU4gJ0EnCisgICAgICAgICAgIFdI RU4gaSAlIDUgPSAyIFRIRU4gJ0InCisgICAgICAgICAgIFdIRU4gaSAlIDUgPSAzIFRIRU4gJ0Mn CisgICAgICAgICAgIFdIRU4gaSAlIDUgPSA0IFRIRU4gJ0QnCisgICAgICAgICAgIEVMU0UgJ0Un CisgICAgICAgRU5ECitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIGk7CisKKy0tIEFkZGl0 aW9uYWwgdGVzdCB0YWJsZSB3aXRoIG1vcmUgY29tcGxleCBwYXR0ZXJucworQ1JFQVRFIFRBQkxF IHJwcl9uZmFfY29tcGxleCAoCisgICAgaWQgc2VyaWFsLAorICAgIHByaWNlIGludCwKKyAgICB0 cmVuZCBjaGFyKDEpICAtLSBVPXVwLCBEPWRvd24sIFM9c3RhYmxlCispOworCitJTlNFUlQgSU5U TyBycHJfbmZhX2NvbXBsZXggKHByaWNlLCB0cmVuZCkKK1ZBTFVFUworICAgICgxMDAsICdTJyks ICgxMDUsICdVJyksICgxMTAsICdVJyksICgxMDgsICdEJyksICgxMTIsICdVJyksCisgICAgKDEx NSwgJ1UnKSwgKDExMywgJ0QnKSwgKDExMSwgJ0QnKSwgKDEwOSwgJ0QnKSwgKDExMCwgJ1UnKSwK KyAgICAoMTIwLCAnVScpLCAoMTI1LCAnVScpLCAoMTMwLCAnVScpLCAoMTI4LCAnRCcpLCAoMTI2 LCAnRCcpLAorICAgICgxMjQsICdEJyksICgxMjIsICdEJyksICgxMjAsICdEJyksICgxMTgsICdE JyksICgxMTksICdVJyksCisgICAgKDEyMSwgJ1UnKSwgKDEyMywgJ1UnKSwgKDEyNSwgJ1UnKSwg KDEyNywgJ1UnKSwgKDEyOSwgJ1UnKSwKKyAgICAoMTMxLCAnVScpLCAoMTMzLCAnVScpLCAoMTMw LCAnRCcpLCAoMTI3LCAnRCcpLCAoMTI0LCAnRCcpOworCistLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEJhc2ljIE5GQSBT dGF0aXN0aWNzIFRlc3RzCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKworLS0gU2ltcGxlIHBhdHRlcm4gLSBzaG91bGQgc2hv dyBiYXNpYyBzdGF0aXN0aWNzCitDUkVBVEUgVklFVyBycHJfZXZfYmFzaWNfc2ltcGxlIEFTCitT RUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9uZmFfdGVzdAorV0lORE9XIHcgQVMgKAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQikKKyAgICBE RUZJTkUgQSBBUyBjYXQgPSAnQScsIEIgQVMgY2F0ID0gJ0InCispOworU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYmFzaWNfc2lt cGxlJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJw cl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMg T0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZS T00gcnByX25mYV90ZXN0CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExB U1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKQorICAgIERFRklORSBBIEFTIGNhdCA9ICcnQScnLCBC IEFTIGNhdCA9ICcnQicnCispJyk7CisKKy0tIFBhdHRlcm4gd2l0aCBubyBtYXRjaGVzIC0gMCBt YXRjaGVkCitDUkVBVEUgVklFVyBycHJfZXZfYmFzaWNfbm9tYXRjaCBBUworU0VMRUNUIGNvdW50 KCopIE9WRVIgdworRlJPTSBycHJfbmZhX3Rlc3QKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRD SCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChYIFkgWikKKyAgICBERUZJTkUgWCBB UyBjYXQgPSAnWCcsIFkgQVMgY2F0ID0gJ1knLCBaIEFTIGNhdCA9ICdaJworKTsKK1NFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2Jh c2ljX25vbWF0Y2gnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitT RUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZG LCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9W RVIgdworRlJPTSBycHJfbmZhX3Rlc3QKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQ IFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChYIFkgWikKKyAgICBERUZJTkUgWCBBUyBjYXQg PSAnJ1gnJywgWSBBUyBjYXQgPSAnJ1knJywgWiBBUyBjYXQgPSAnJ1onJworKTsnKTsKKworLS0g UGF0dGVybiBtYXRjaGluZyBldmVyeSByb3cgLSBoaWdoIG1hdGNoIGNvdW50CitDUkVBVEUgVklF VyBycHJfZXZfYmFzaWNfYWxscm93cyBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBy cHJfbmZhX3Rlc3QKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBS T1cKKyAgICBQQVRURVJOIChSKQorICAgIERFRklORSBSIEFTIFRSVUUKKyk7CitTRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9iYXNp Y19hbGxyb3dzJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VM RUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwg Q09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVS IHcKK0ZST00gcnByX25mYV90ZXN0CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQ QVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoUikKKyAgICBERUZJTkUgUiBBUyBUUlVFCispOycp OworCistLSBSZWdyZXNzaW9uIHRlc3Q6IFNwYWNlIGJlZm9yZSBwYXJlbnRoZXNpcyBpbiBwYXR0 ZXJuIGRlcGFyc2UKKy0tIFZlcmlmaWVzIHRoYXQgIkEgKEIgfCBDKSIgY29ycmVjdGx5IG91dHB1 dHMgYXMgImEgKGIgfCBjKSIgd2l0aCBzcGFjZQorQ1JFQVRFIFZJRVcgcnByX2V2X2Jhc2ljX2Rl cGFyc2Vfc3BhY2UgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDIwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSAoQiB8IEMpKQor ICAgIERFRklORSBBIEFTIHYgJSAzID0gMSwgQiBBUyB2ICUgMyA9IDIsIEMgQVMgdiAlIDMgPSAw CispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3 ZGVmKCdycHJfZXZfYmFzaWNfZGVwYXJzZV9zcGFjZScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAo QU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYp CitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkgQVMg cyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgKEIgfCBDKSkKKyAgICBERUZJTkUgQSBB UyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyLCBDIEFTIHYgJSAzID0gMAorKTsnKTsKKworLS0g UmVncmVzc2lvbiB0ZXN0OiBTZXF1ZW50aWFsIGFsdGVybmF0aW9ucyBhdCBzYW1lIGRlcHRoCist LSBWZXJpZmllcyB0aGF0ICIoKEIgfCBDKSAoRCB8IEUpKSIgY29ycmVjdGx5IG91dHB1dHMgYXMg IihiIHwgYykgKGQgfCBlKSIKKy0tIFByZXZpb3VzbHkgZmFpbGVkIGR1ZSB0byBtaXNzaW5nIHBh cmVudGhlc2VzIG9uIEFMVCBkZXB0aCBkZWNyZWFzZQorQ1JFQVRFIFZJRVcgcnByX2V2X2Jhc2lj X2RlcGFyc2Vfc2VxYWx0IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRl X3NlcmllcygxLCAzMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgKChCIHwg QykgKEQgfCBFKSkqKQorICAgIERFRklORSBBIEFTIHYgJSA1ID0gMSwgQiBBUyB2ICUgNSA9IDIs IEMgQVMgdiAlIDUgPSAzLCBEIEFTIHYgJSA1ID0gNCwgRSBBUyB2ICUgNSA9IDAKKyk7CitTRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l dl9iYXNpY19kZXBhcnNlX3NlcWFsdCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQ QVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwg QlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1Qg Y291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQorV0lO RE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIFBBVFRFUk4gKEEgKChCIHwgQykgKEQgfCBFKSkqKQorICAgIERFRklORSBB IEFTIHYgJSA1ID0gMSwgQiBBUyB2ICUgNSA9IDIsIEMgQVMgdiAlIDUgPSAzLCBEIEFTIHYgJSA1 ID0gNCwgRSBBUyB2ICUgNSA9IDAKKyk7Jyk7CisKKy0tIFJlZ3Jlc3Npb24gdGVzdDogUXVvdGVk IGlkZW50aWZpZXJzIGluIEVYUExBSU4gcGF0dGVybiBkZXBhcnNlCistLSBNaXhlZCBjYXNlIG5h bWVzIG11c3QgYmUgcXVvdGVkIHRvIHByZXNlcnZlIHJvdW5kLXRyaXAgc2FmZXR5CitTRUxFQ1Qg cnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBjb3VudCgq KSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwKSBBUyBzKHYpCitXSU5ET1cgdyBB UyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgUEFUVEVSTiAoIlN0YXJ0IiAiVXAiKykKKyAgICBERUZJTkUgIlN0YXJ0IiBBUyBUUlVF LCAiVXAiIEFTIHYgPiBQUkVWKHYpCispOycpOworCistLSA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFN0YXRlIFN0YXRpc3Rp Y3MgVGVzdHMgKHBlYWssIHRvdGFsLCBtZXJnZWQpCistLSA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLS0gU2ltcGxlIHF1YW50 aWZpZXIgcGF0dGVybiAtIEErIHdpdGggc2hvcnQgbWF0Y2hlcyAobm8gbWVyZ2luZykKK0NSRUFU RSBWSUVXIHJwcl9ldl9zdGF0ZV9zaW1wbGVfcXVhbnQgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVS IHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg QUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSspCisgICAgREVG SU5FIEEgQVMgdiAlIDIgPSAxCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfc3RhdGVfc2ltcGxlX3F1YW50JyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWluX2Zp bHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcg T0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVf c2VyaWVzKDEsIDUwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQ QVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAx CispOycpOworCistLSBBbHRlcm5hdGlvbiBwYXR0ZXJuIC0gbXVsdGlwbGUgc3RhdGUgYnJhbmNo ZXMKK0NSRUFURSBWSUVXIHJwcl9ldl9zdGF0ZV9hbHQgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVS IHcKK0ZST00gcnByX25mYV90ZXN0CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQ QVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgfCBCIHwgQykgKEQgfCBFKSkKKyAgICBERUZJ TkUKKyAgICAgICAgQSBBUyBjYXQgPSAnQScsIEIgQVMgY2F0ID0gJ0InLCBDIEFTIGNhdCA9ICdD JywKKyAgICAgICAgRCBBUyBjYXQgPSAnRCcsIEUgQVMgY2F0ID0gJ0UnCispOworU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfc3Rh dGVfYWx0JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNU IHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09T VFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcK K0ZST00gcnByX25mYV90ZXN0CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNU IExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgfCBCIHwgQykgKEQgfCBFKSkKKyAgICBERUZJTkUK KyAgICAgICAgQSBBUyBjYXQgPSAnJ0EnJywgQiBBUyBjYXQgPSAnJ0InJywgQyBBUyBjYXQgPSAn J0MnJywKKyAgICAgICAgRCBBUyBjYXQgPSAnJ0QnJywgRSBBUyBjYXQgPSAnJ0UnJworKTsnKTsK KworLS0gQ29tcGxleCBwYXR0ZXJuIHdpdGggaGlnaCBzdGF0ZSBjb3VudAorQ1JFQVRFIFZJRVcg cnByX2V2X3N0YXRlX2NvbXBsZXggQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENI IFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIqIEMrKQorICAgIERFRklORQor ICAgICAgICBBIEFTIHYgJSAzID0gMSwKKyAgICAgICAgQiBBUyB2ICUgMyA9IDIsCisgICAgICAg IEMgQVMgdiAlIDMgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfc3RhdGVfY29tcGxleCcpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwor RVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VN TUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmllcygx LCAxMDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFT VCBST1cKKyAgICBQQVRURVJOIChBKyBCKiBDKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyB2 ICUgMyA9IDEsCisgICAgICAgIEIgQVMgdiAlIDMgPSAyLAorICAgICAgICBDIEFTIHYgJSAzID0g MAorKTsnKTsKKworLS0gR3JvdXBlZCBwYXR0ZXJuIHdpdGggcXVhbnRpZmllciAtIHN0YXRlIGNv dW50IHdpdGggZ3JvdXBpbmcKK0NSRUFURSBWSUVXIHJwcl9ldl9zdGF0ZV9ncm91cF9xdWFudCBB UworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFT IHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOICgoQSBCKSspCisgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYgJSAy ID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2X3N0YXRlX2dyb3VwX3F1YW50JyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlO IChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9G RikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBB UyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisg ICAgUEFUVEVSTiAoKEEgQikrKQorICAgIERFRklORSBBIEFTIHYgJSAyID0gMSwgQiBBUyB2ICUg MiA9IDAKKyk7Jyk7CisKKy0tIFN0YXRlIGV4cGxvc2lvbiBwYXR0ZXJuIC0gbWFueSBhbHRlcm5h dGlvbnMKKy0tIFBhdHRlcm4gKEF8QikoQXxCKShBfEIpKEF8QikgY2FuIGNyZWF0ZSBtYW55IHBh cmFsbGVsIHN0YXRlcworQ1JFQVRFIFZJRVcgcnByX2V2X3N0YXRlX2V4cGxvc2lvbiBBUworU0VM RUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYp CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFU VEVSTiAoKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEg fCBCKSAoQSB8IEIpKQorICAgIERFRklORSBBIEFTIHYgJSAyID0gMSwgQiBBUyB2ICUgMiA9IDAK Kyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldl9zdGF0ZV9leHBsb3Npb24nKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZ WkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VM RUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYp CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFU VEVSTiAoKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEg fCBCKSAoQSB8IEIpKQorICAgIERFRklORSBBIEFTIHYgJSAyID0gMSwgQiBBUyB2ICUgMiA9IDAK Kyk7Jyk7CisKKy0tIENvbnNlY3V0aXZlIEFMVCBtZXJnZSBmb2xsb3dlZCBieSBkaWZmZXJlbnQg QUxUCistLSBUZXN0cyBtZXJnZUNvbnNlY3V0aXZlQWx0cyBmbHVzaCBvbiBBTFQgY2hhbmdlOiAo QXxCKXsyfSAoQ3xEKQorQ1JFQVRFIFZJRVcgcnByX2V2X3N0YXRlX2FsdF9tZXJnZV9hbHQgQVMK K1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBz KHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAg UEFUVEVSTiAoKEEgfCBCKSAoQSB8IEIpIChDIHwgRCkpCisgICAgREVGSU5FIEEgQVMgdiAlIDQg PSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIsIEQgQVMgdiAlIDQgPSAzCispOwor U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXZfc3RhdGVfYWx0X21lcmdlX2FsdCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFla RSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxF Q1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkgQVMgcyh2KQor V0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRF Uk4gKChBIHwgQikgKEEgfCBCKSAoQyB8IEQpKQorICAgIERFRklORSBBIEFTIHYgJSA0ID0gMCwg QiBBUyB2ICUgNCA9IDEsIEMgQVMgdiAlIDQgPSAyLCBEIEFTIHYgJSA0ID0gMworKTsnKTsKKwor LS0gQ29uc2VjdXRpdmUgQUxUIG1lcmdlIGZvbGxvd2VkIGJ5IG5vbi1BTFQgZWxlbWVudAorLS0g VGVzdHMgbWVyZ2VDb25zZWN1dGl2ZUFsdHMgZmx1c2ggb24gbm9uLUFMVDogKEF8Qil7Mn0gYwor Q1JFQVRFIFZJRVcgcnByX2V2X3N0YXRlX2FsdF9tZXJnZV9ub25hbHQgQVMKK1NFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCitXSU5ET1cg dyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEg fCBCKSAoQSB8IEIpIEMpCisgICAgREVGSU5FIEEgQVMgdiAlIDMgPSAwLCBCIEFTIHYgJSAzID0g MSwgQyBBUyB2ICUgMyA9IDIKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9zdGF0ZV9hbHRfbWVyZ2Vfbm9uYWx0JyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWlu X2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1J TkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJ UCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgfCBCKSAoQSB8IEIpIEMpCisgICAgREVG SU5FIEEgQVMgdiAlIDMgPSAwLCBCIEFTIHYgJSAzID0gMSwgQyBBUyB2ICUgMyA9IDIKKyk7Jyk7 CisKKy0tIEFMVCBwcmVmaXgvc3VmZml4IGFic29yYmVkIGludG8gR1JPVVA6IChBfEIpIChBfEIp KyAoQXxCKSAtPiAoQXxCKXszLH0KK0NSRUFURSBWSUVXIHJwcl9ldl9zdGF0ZV9hbHRfYWJzb3Ji X2dyb3VwIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmllcygx LCA0MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNU IFJPVworICAgIFBBVFRFUk4gKChBIHwgQikgKEEgfCBCKSsgKEEgfCBCKSkKKyAgICBERUZJTkUg QSBBUyB2ICUgMiA9IDAsIEIgQVMgdiAlIDIgPSAxCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfc3RhdGVfYWx0X2Fic29y Yl9ncm91cCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVD VCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENP U1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3 CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIHwgQikgKEEgfCBC KSsgKEEgfCBCKSkKKyAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDAsIEIgQVMgdiAlIDIgPSAxCisp OycpOworCistLSBIaWdoIHN0YXRlIGNvdW50IC0gYWx0ZXJuYXRpb24gd2l0aCBwbHVzIHF1YW50 aWZpZXIKK0NSRUFURSBWSUVXIHJwcl9ldl9zdGF0ZV9hbHRfcGx1cyBBUworU0VMRUNUIGNvdW50 KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCitXSU5ET1cg dyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEg fCBCIHwgQykrIEQpCisgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAxLCBCIEFTIHYgJSA0ID0gMiwg QyBBUyB2ICUgNCA9IDMsIEQgQVMgdiAlIDQgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfc3RhdGVfYWx0X3BsdXMn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4 cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYs IFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgfCBCIHwgQykrIEQpCisgICAg REVGSU5FIEEgQVMgdiAlIDQgPSAxLCBCIEFTIHYgJSA0ID0gMiwgQyBBUyB2ICUgNCA9IDMsIEQg QVMgdiAlIDQgPSAwCispOycpOworCistLSBFYXJseSB0ZXJtaW5hdGlvbjogZmlyc3QgQUxUIGJy YW5jaCAoQSkgcmVhY2hlcyBGSU4gaW1tZWRpYXRlbHksCistLSBwcnVuaW5nIHNlY29uZCBicmFu Y2ggKEEgQispIGJlZm9yZSBpdCBjYW4gYWNjdW11bGF0ZSBCIHJlcGV0aXRpb25zLgorQ1JFQVRF IFZJRVcgcnByX2V2X3N0YXRlX2FsdF9wcnVuZSBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdwor RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZU RVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgfCBBIEIpKykKKyAg ICBERUZJTkUgQSBBUyB2ID0gMSwgQiBBUyB2ID4gMQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3N0YXRlX2FsdF9wcnVu ZScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJf ZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9G RiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9N IGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBN QVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSB8IEEgQikrKQorICAgIERF RklORSBBIEFTIHYgPSAxLCBCIEFTIHYgPiAxCispOycpOworCistLSBOZXN0ZWQgcXVhbnRpZmll cnMgY2F1c2luZyBzdGF0ZSBncm93dGgKK0NSRUFURSBWSUVXIHJwcl9ldl9zdGF0ZV9uZXN0ZWRf cXVhbnQgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDEwMDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFT VCBST1cKKyAgICBQQVRURVJOICgoKEEgfCBCKSspKykKKyAgICBERUZJTkUgQSBBUyB2ICUgMyA9 IDEsIEIgQVMgdiAlIDMgPSAyCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfc3RhdGVfbmVzdGVkX3F1YW50JyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWluX2Zp bHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcg T0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVf c2VyaWVzKDEsIDEwMDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQ IFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoKEEgfCBCKSspKykKKyAgICBERUZJTkUgQSBB UyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyCispOycpOworCistLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIENvbnRleHQg U3RhdGlzdGljcyBUZXN0cyAocGVhaywgdG90YWwsIHBydW5lZCArIGFic29yYmVkL3NraXBwZWQp CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKworLS0gQ29udGV4dCBhYnNvcnB0aW9uIHdpdGggdW5ib3VuZGVkIHF1YW50aWZp ZXIgYXQgc3RhcnQKK0NSRUFURSBWSUVXIHJwcl9ldl9jdHhfYWJzb3JiX3VuYm91bmRlZCBBUwor U0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHMo dikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQ QVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAw CispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3 ZGVmKCdycHJfZXZfY3R4X2Fic29yYl91bmJvdW5kZWQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4g KEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZG KQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFT IHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUg PSAwCispOycpOworCistLSBObyBhYnNvcnB0aW9uIC0gYm91bmRlZCBxdWFudGlmaWVyCitDUkVB VEUgVklFVyBycHJfZXZfY3R4X25vX2Fic29yYiBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdwor RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBezIsNH0gQikKKyAgICBE RUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAorKTsKK1NFTEVDVCBsaW5lIEZS T00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2N0eF9ub19h YnNvcmInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1Qg cnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NU UyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdwor RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBezIsNH0gQikKKyAgICBE RUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAorKTsnKTsKKworLS0gQ29udGV4 dHMgc2tpcHBlZCBieSBTS0lQIFBBU1QgTEFTVCBST1cKK0NSRUFURSBWSUVXIHJwcl9ldl9jdHhf c2tpcCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg MTAwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1Qg Uk9XCisgICAgUEFUVEVSTiAoQSBCIEMpCisgICAgREVGSU5FIEEgQVMgdiAlIDEwID0gMSwgQiBB UyB2ICUgMTAgPSAyLCBDIEFTIHYgJSAxMCA9IDMKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9jdHhfc2tpcCcpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9m aWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5H IE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRl X3NlcmllcygxLCAxMDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQ IFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIgQykKKyAgICBERUZJTkUgQSBBUyB2ICUg MTAgPSAxLCBCIEFTIHYgJSAxMCA9IDIsIEMgQVMgdiAlIDEwID0gMworKTsnKTsKKworLS0gSGln aCBjb250ZXh0IGFic29ycHRpb24gLSB1bmJvdW5kZWQgZ3JvdXAKK0NSRUFURSBWSUVXIHJwcl9l dl9jdHhfYWJzb3JiX2dyb3VwIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVy YXRlX3NlcmllcygxLCAxMDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBT S0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSBCKSsgQykKKyAgICBERUZJTkUgQSBB UyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyLCBDIEFTIHYgJSAzID0gMAorKTsKK1NFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2N0 eF9hYnNvcmJfZ3JvdXAnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMg T0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCop IE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCitXSU5ET1cgdyBB UyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgQikr IEMpCisgICAgREVGSU5FIEEgQVMgdiAlIDMgPSAxLCBCIEFTIHYgJSAzID0gMiwgQyBBUyB2ICUg MyA9IDAKKyk7Jyk7CisKKy0tIEZpeGVkLWxlbmd0aCBncm91cCBhYnNvcnB0aW9uOiAoQSBCIEIp KyBDCistLSBCIEIgbWVyZ2VkIHRvIEJ7Mn07IGFic29yYmFibGUgd2l0aCBmaXhlZC1sZW5ndGgg Y2hlY2sKKy0tIHN0ZXBfc2l6ZT0zIChBICsgQiArIEIpOyB2ICUgNyBjeWNsZSBnaXZlcyAyIGl0 ZXJhdGlvbnMgcGVyIG1hdGNoCitDUkVBVEUgVklFVyBycHJfZXZfY3R4X2Fic29yYl9maXhlZHZh ciBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNzAp IEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgICBQQVRURVJOICgoQSBCIEIpKyBDKQorICAgIERFRklORSBBIEFTIHYgJSA3IElOICgxLCA0 KSwgQiBBUyB2ICUgNyBJTiAoMiwgMywgNSwgNiksIEMgQVMgdiAlIDcgPSAwCispOworU0VMRUNU IGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZf Y3R4X2Fic29yYl9maXhlZHZhcicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVG RkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA3MCkgQVMgcyh2KQorV0lORE9X IHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChB IEIgQikrIEMpCisgICAgREVGSU5FIEEgQVMgdiAlIDcgSU4gKDEsIDQpLCBCIEFTIHYgJSA3IElO ICgyLCAzLCA1LCA2KSwgQyBBUyB2ICUgNyA9IDAKKyk7Jyk7CisKKy0tIE5lc3RlZCBmaXhlZC1s ZW5ndGggZ3JvdXAgYWJzb3JwdGlvbjogKEEgKEIgQyl7Mn0gRCkrIEUKKy0tIHN0ZXBfc2l6ZSA9 IDEgKyAoMSsxKSoyICsgMSA9IDY7IHYgJSAxMyBjeWNsZSBnaXZlcyAyIGl0ZXJhdGlvbnMgKyBF CitDUkVBVEUgVklFVyBycHJfZXZfY3R4X2Fic29yYl9uZXN0ZWQgQVMKK1NFTEVDVCBjb3VudCgq KSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDY1KSBBUyBzKHYpCitXSU5ET1cgdyBB UyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgKEIg Qyl7Mn0gRCkrIEUpCisgICAgREVGSU5FIEEgQVMgdiAlIDEzIElOICgxLCA3KSwgQiBBUyB2ICUg MTMgSU4gKDIsIDQsIDgsIDEwKSwKKyAgICAgICAgICAgQyBBUyB2ICUgMTMgSU4gKDMsIDUsIDks IDExKSwgRCBBUyB2ICUgMTMgSU4gKDYsIDEyKSwKKyAgICAgICAgICAgRSBBUyB2ICUgMTMgPSAw CispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3 ZGVmKCdycHJfZXZfY3R4X2Fic29yYl9uZXN0ZWQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxp bmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFO QUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQor U0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjUpIEFTIHMo dikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQ QVRURVJOICgoQSAoQiBDKXsyfSBEKSsgRSkKKyAgICBERUZJTkUgQSBBUyB2ICUgMTMgSU4gKDEs IDcpLCBCIEFTIHYgJSAxMyBJTiAoMiwgNCwgOCwgMTApLAorICAgICAgICAgICBDIEFTIHYgJSAx MyBJTiAoMywgNSwgOSwgMTEpLCBEIEFTIHYgJSAxMyBJTiAoNiwgMTIpLAorICAgICAgICAgICBF IEFTIHYgJSAxMyA9IDAKKyk7Jyk7CisKKy0tIERvdWJseSBuZXN0ZWQgZml4ZWQtbGVuZ3RoIGdy b3VwIGFic29ycHRpb246IChBICgoQiBDezN9KXsyfSBEKXsyfSBFKSsgRgorLS0gc3RlcF9zaXpl ID0gMSArICgoMSszKSoyKzEpKjIgKyAxID0gMjA7IHYgJSA0MSBjeWNsZSBnaXZlcyAyIGl0ZXJh dGlvbnMgKyBGCitDUkVBVEUgVklFVyBycHJfZXZfY3R4X2Fic29yYl9kZWVwIEFTCitTRUxFQ1Qg Y291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA4MikgQVMgcyh2KQorV0lO RE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4g KChBICgoQiBDIEMgQyl7Mn0gRCl7Mn0gRSkrIEYpCisgICAgREVGSU5FIEEgQVMgdiAlIDQxIElO ICgxLCAyMSksCisgICAgICAgICAgIEIgQVMgdiAlIDQxIElOICgyLCA2LCAxMSwgMTUsIDIyLCAy NiwgMzEsIDM1KSwKKyAgICAgICAgICAgQyBBUyB2ICUgNDEgSU4gKDMsNCw1LCA3LDgsOSwgMTIs MTMsMTQsIDE2LDE3LDE4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMjMsMjQsMjUsIDI3 LDI4LDI5LCAzMiwzMywzNCwgMzYsMzcsMzgpLAorICAgICAgICAgICBEIEFTIHYgJSA0MSBJTiAo MTAsIDE5LCAzMCwgMzkpLAorICAgICAgICAgICBFIEFTIHYgJSA0MSBJTiAoMjAsIDQwKSwKKyAg ICAgICAgICAgRiBBUyB2ICUgNDEgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3R4X2Fic29yYl9kZWVwJyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWlu X2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1J TkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDgyKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJ UCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgKChCIEMgQyBDKXsyfSBEKXsyfSBFKSsg RikKKyAgICBERUZJTkUgQSBBUyB2ICUgNDEgSU4gKDEsIDIxKSwKKyAgICAgICAgICAgQiBBUyB2 ICUgNDEgSU4gKDIsIDYsIDExLCAxNSwgMjIsIDI2LCAzMSwgMzUpLAorICAgICAgICAgICBDIEFT IHYgJSA0MSBJTiAoMyw0LDUsIDcsOCw5LCAxMiwxMywxNCwgMTYsMTcsMTgsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAyMywyNCwyNSwgMjcsMjgsMjksIDMyLDMzLDM0LCAzNiwzNywzOCks CisgICAgICAgICAgIEQgQVMgdiAlIDQxIElOICgxMCwgMTksIDMwLCAzOSksCisgICAgICAgICAg IEUgQVMgdiAlIDQxIElOICgyMCwgNDApLAorICAgICAgICAgICBGIEFTIHYgJSA0MSA9IDAKKyk7 Jyk7CisKKy0tIDMtbGV2ZWwgRU5EIGNoYWluIGFic29ycHRpb246ICgoQSAoQiBDKXsyfSl7Mn0p KworLS0gc3RlcF9zaXplID0gKDEgKyAoMSsxKSoyKSAqIDIgPSAxMDsgdiAlIDIxIGN5Y2xlIGdp dmVzIDIgaXRlcmF0aW9ucworLS0gRU5EIGNoYWluOiBFTkQoQkN7Mn0pIC0+IEVORChBLi57Mn0p IC0+IEVORCgrLCBBQlNPUkJBQkxFKQorQ1JFQVRFIFZJRVcgcnByX2V2X2N0eF9hYnNvcmJfZW5k Y2hhaW4gQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDQyKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1Qg Uk9XCisgICAgUEFUVEVSTiAoKChBIChCIEMpezJ9KXsyfSkrKQorICAgIERFRklORSBBIEFTIHYg JSAyMSBJTiAoMSwgNiwgMTEsIDE2KSwKKyAgICAgICAgICAgQiBBUyB2ICUgMjEgSU4gKDIsIDQs IDcsIDksIDEyLCAxNCwgMTcsIDE5KSwKKyAgICAgICAgICAgQyBBUyB2ICUgMjEgSU4gKDMsIDUs IDgsIDEwLCAxMywgMTUsIDE4LCAyMCkKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9jdHhfYWJzb3JiX2VuZGNoYWluJyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBs YWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBU SU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDQyKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0gg U0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKChBIChCIEMpezJ9KXsyfSkrKQorICAg IERFRklORSBBIEFTIHYgJSAyMSBJTiAoMSwgNiwgMTEsIDE2KSwKKyAgICAgICAgICAgQiBBUyB2 ICUgMjEgSU4gKDIsIDQsIDcsIDksIDEyLCAxNCwgMTcsIDE5KSwKKyAgICAgICAgICAgQyBBUyB2 ICUgMjEgSU4gKDMsIDUsIDgsIDEwLCAxMywgMTUsIDE4LCAyMCkKKyk7Jyk7CisKKy0tIE5vIGFi c29ycHRpb24gd2hlbiBERUZJTkUgdXNlcyBGSVJTVCAobWF0Y2hfc3RhcnQtZGVwZW5kZW50KQor LS0gU2FtZSBwYXR0ZXJuIGFzIHJwcl9ldl9jdHhfYWJzb3JiX3VuYm91bmRlZCBidXQgd2l0aCBG SVJTVCBpbiBERUZJTkUuCistLSBDb21wYXJlOiBhYnNvcmJlZCBjb3VudCBzaG91bGQgYmUgMCBo ZXJlIHZzID4wIGFib3ZlLgorQ1JFQVRFIFZJRVcgcnByX2V2X2N0eF9ub19hYnNvcmJfZmlyc3Qg QVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBB UyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisg ICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1 ID0gMCBBTkQgdiA+IEZJUlNUKHYpCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3R4X25vX2Fic29yYl9maXJzdCcpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFp bl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElN SU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVy YXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNL SVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMgdiAl IDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAgQU5EIHYgPiBGSVJTVCh2KQorKTsnKTsKKworLS0gQWJz b3JwdGlvbiBwcmVzZXJ2ZWQgd2hlbiBERUZJTkUgdXNlcyBvbmx5IExBU1Qgd2l0aG91dCBvZmZz ZXQKKy0tIExBU1QodikgaXMgbWF0Y2hfc3RhcnQtaW5kZXBlbmRlbnQgKGFsd2F5cyBjdXJyZW50 cG9zKSwgc28gYWJzb3JwdGlvbgorLS0gcmVtYWlucyBhY3RpdmUuICBDb21wYXJlOiBhYnNvcmJl ZCBjb3VudCBzaG91bGQgYmUgPjAsIGxpa2UgdGhlCistLSBQUkVWLW9ubHkgY2FzZSBhYm92ZS4K K0NSRUFURSBWSUVXIHJwcl9ldl9jdHhfYWJzb3JiX2xhc3QgQVMKK1NFTEVDVCBjb3VudCgqKSBP VkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAo CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSsgQikKKyAg ICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIExBU1QodikgJSA1ID0gMAorKTsKK1NFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2 X2N0eF9hYnNvcmJfbGFzdCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVS UyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQo KikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcg QVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIp CisgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyBMQVNUKHYpICUgNSA9IDAKKyk7Jyk7 CisKKy0tIE5vIGFic29ycHRpb24gd2l0aCBjb21wb3VuZCBQUkVWKEZJUlNUKCkpIChtYXRjaF9z dGFydC1kZXBlbmRlbnQpCitDUkVBVEUgVklFVyBycHJfZXZfY3R4X25vX2Fic29yYl9jb21wb3Vu ZCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTAp IEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAl IDUgPSAwIEFORCBQUkVWKEZJUlNUKHYpLCAxKSBJUyBOT1QgTlVMTAorKTsKK1NFTEVDVCBycHJf ZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9G RiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9N IGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEg QVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAgQU5EIFBSRVYoRklSU1QodiksIDEpIElTIE5P VCBOVUxMCispOycpOworCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIE1hdGNoIExlbmd0aCBTdGF0aXN0aWNzIFRlc3Rz CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKworLS0gRml4ZWQgbGVuZ3RoIG1hdGNoZXMgLSBhbGwgc2FtZSBsZW5ndGgKK0NS RUFURSBWSUVXIHJwcl9ldl9tbGVuX2ZpeGVkIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitG Uk9NIHJwcl9uZmFfdGVzdAorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBM QVNUIFJPVworICAgIFBBVFRFUk4gKEEgQiBDIEQgRSkKKyAgICBERUZJTkUKKyAgICAgICAgQSBB UyBjYXQgPSAnQScsIEIgQVMgY2F0ID0gJ0InLCBDIEFTIGNhdCA9ICdDJywKKyAgICAgICAgRCBB UyBjYXQgPSAnRCcsIEUgQVMgY2F0ID0gJ0UnCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfbWxlbl9maXhlZCcpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9m aWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5H IE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9uZmFf dGVzdAorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAg IFBBVFRFUk4gKEEgQiBDIEQgRSkKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyBjYXQgPSAnJ0En JywgQiBBUyBjYXQgPSAnJ0InJywgQyBBUyBjYXQgPSAnJ0MnJywKKyAgICAgICAgRCBBUyBjYXQg PSAnJ0QnJywgRSBBUyBjYXQgPSAnJ0UnJworKTsnKTsKKworLS0gVmFyaWFibGUgbGVuZ3RoIG1h dGNoZXMgLSBtaW4vbWF4L2F2ZyBkaWZmZXIKK0NSRUFURSBWSUVXIHJwcl9ldl9tbGVuX3Zhcmlh YmxlIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAx MDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBS T1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHYgJSAxMCA8PiAwLCBCIEFT IHYgJSAxMCA9IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9tbGVuX3ZhcmlhYmxlJyksIEUnXG4nKSkgQVMgbGluZSBX SEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBM QUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZ IE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEw MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJP VworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDEwIDw+IDAsIEIgQVMg diAlIDEwID0gMAorKTsnKTsKKworLS0gVmVyeSBsb25nIG1hdGNoZXMKK0NSRUFURSBWSUVXIHJw cl9ldl9tbGVuX2xvbmcgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVf c2VyaWVzKDEsIDIwMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAg UEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMgdiA8PSAx OTUsIEIgQVMgdiA+IDE5NQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X21sZW5fbG9uZycpLCBFJ1xuJykpIEFTIGxpbmUg V0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQ TEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFS WSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAy MDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBS T1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHYgPD0gMTk1LCBCIEFTIHYg PiAxOTUKKyk7Jyk7CisKKy0tIFVuaWZvcm0gbWF0Y2ggbGVuZ3RoIHdpdGggbWlzbWF0Y2hlcyBm cm9tIGdhcCByb3dzICh2JTIwID0gMTEuLjE1KQorQ1JFQVRFIFZJRVcgcnByX2V2X21sZW5fd2l0 aF9taXNtYXRjaCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwgMTAwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNU IExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAo diAlIDIwIDw+IDApIEFORCAodiAlIDIwIDw9IDEwIE9SIHYgJSAyMCA+IDE1KSwKKyAgICAgICAg QiBBUyB2ICUgMjAgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfbWxlbl93aXRoX21pc21hdGNoJyksIEUnXG4nKSkg QVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRl cignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZG LCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDEwMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFT VCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMg KHYgJSAyMCA8PiAwKSBBTkQgKHYgJSAyMCA8PSAxMCBPUiB2ICUgMjAgPiAxNSksCisgICAgICAg IEIgQVMgdiAlIDIwID0gMAorKTsnKTsKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBNaXNtYXRjaCBMZW5ndGggU3Rh dGlzdGljcyBUZXN0cworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CisKKy0tIFBhdHRlcm4gd2l0aCBjb21wbGV0ZSBtYXRjaCBl dmVyeSBjeWNsZTogMCBtaXNtYXRjaGVkCistLSBBKDEsMiwzKSBCKDQsNSkgQyg2KSByZXBlYXRz IHBlcmZlY3RseTsgWCByb3dzIGFyZSBwcnVuZWQsIG5vdCBtaXNtYXRjaGVkCitDUkVBVEUgVklF VyBycHJfZXZfbWxlbl9ub19taXNtYXRjaCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJP TSAoCisgICAgU0VMRUNUIHYsCisgICAgICAgICAgIENBU0UgV0hFTiB2ICUgMTAgSU4gKDEsMiwz KSBUSEVOICdBJworICAgICAgICAgICAgICAgIFdIRU4gdiAlIDEwIElOICg0LDUpIFRIRU4gJ0In CisgICAgICAgICAgICAgICAgV0hFTiB2ICUgMTAgPSA2IFRIRU4gJ0MnCisgICAgICAgICAgICAg ICAgRUxTRSAnWCcgRU5EIEFTIGNhdAorICAgIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkg QVMgcyh2KQorKSB0CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1Qg Uk9XCisgICAgUEFUVEVSTiAoQSsgQisgQykKKyAgICBERUZJTkUgQSBBUyBjYXQgPSAnQScsIEIg QVMgY2F0ID0gJ0InLCBDIEFTIGNhdCA9ICdDJworKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X21sZW5fbm9fbWlzbWF0Y2gn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4 cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYs IFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSAo CisgICAgU0VMRUNUIHYsCisgICAgICAgICAgIENBU0UgV0hFTiB2ICUgMTAgSU4gKDEsMiwzKSBU SEVOICcnQScnCisgICAgICAgICAgICAgICAgV0hFTiB2ICUgMTAgSU4gKDQsNSkgVEhFTiAnJ0In JworICAgICAgICAgICAgICAgIFdIRU4gdiAlIDEwID0gNiBUSEVOICcnQycnCisgICAgICAgICAg ICAgICAgRUxTRSAnJ1gnJyBFTkQgQVMgY2F0CisgICAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg MTAwKSBBUyBzKHYpCispIHQKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1Qg TEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKyBDKQorICAgIERFRklORSBBIEFTIGNhdCA9ICcn QScnLCBCIEFTIGNhdCA9ICcnQicnLCBDIEFTIGNhdCA9ICcnQycnCispOycpOworCistLSBMb25n IHBhcnRpYWwgbWF0Y2hlcyB0aGF0IGZhaWwKK0NSRUFURSBWSUVXIHJwcl9ldl9tbGVuX2xvbmdf cGFydGlhbCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSAoCisgICAgU0VMRUNUIGkg QVMgdiwKKyAgICAgICAgICAgQ0FTRQorICAgICAgICAgICAgICAgV0hFTiBpIDw9IDIwIFRIRU4g J0EnCisgICAgICAgICAgICAgICBXSEVOIGkgPD0gMjUgVEhFTiAnQicKKyAgICAgICAgICAgICAg IFdIRU4gaSA9IDI2IFRIRU4gJ1gnICAtLSBicmVha3MgdGhlIHBhdHRlcm4KKyAgICAgICAgICAg ICAgIFdIRU4gaSA8PSA1MCBUSEVOICdBJworICAgICAgICAgICAgICAgV0hFTiBpIDw9IDU1IFRI RU4gJ0InCisgICAgICAgICAgICAgICBXSEVOIGkgPSA1NiBUSEVOICdDJyAgLS0gY29tcGxldGVz IHBhdHRlcm4KKyAgICAgICAgICAgICAgIEVMU0UgJ1knCisgICAgICAgICAgIEVORCBBUyBjYXQK KyAgICBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA2MCkgaQorKSB0CitXSU5ET1cgdyBBUyAoCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg QUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSsgQisgQykKKyAg ICBERUZJTkUgQSBBUyBjYXQgPSAnQScsIEIgQVMgY2F0ID0gJ0InLCBDIEFTIGNhdCA9ICdDJwor KTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2X21sZW5fbG9uZ19wYXJ0aWFsJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5l IH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFM WVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NF TEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gKAorICAgIFNFTEVDVCBpIEFTIHYsCisgICAgICAg ICAgIENBU0UKKyAgICAgICAgICAgICAgIFdIRU4gaSA8PSAyMCBUSEVOICcnQScnCisgICAgICAg ICAgICAgICBXSEVOIGkgPD0gMjUgVEhFTiAnJ0InJworICAgICAgICAgICAgICAgV0hFTiBpID0g MjYgVEhFTiAnJ1gnJyAgLS0gYnJlYWtzIHRoZSBwYXR0ZXJuCisgICAgICAgICAgICAgICBXSEVO IGkgPD0gNTAgVEhFTiAnJ0EnJworICAgICAgICAgICAgICAgV0hFTiBpIDw9IDU1IFRIRU4gJydC JycKKyAgICAgICAgICAgICAgIFdIRU4gaSA9IDU2IFRIRU4gJydDJycgIC0tIGNvbXBsZXRlcyBw YXR0ZXJuCisgICAgICAgICAgICAgICBFTFNFICcnWScnCisgICAgICAgICAgIEVORCBBUyBjYXQK KyAgICBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA2MCkgaQorKSB0CitXSU5ET1cgdyBBUyAoCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg QUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSsgQisgQykKKyAg ICBERUZJTkUgQSBBUyBjYXQgPSAnJ0EnJywgQiBBUyBjYXQgPSAnJ0InJywgQyBBUyBjYXQgPSAn J0MnJworKTsnKTsKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLSBKU09OIEZvcm1hdCBUZXN0cworLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0t IEpTT04gZm9ybWF0IG91dHB1dCB3aXRoIGFsbCBzdGF0aXN0aWNzCitDUkVBVEUgVklFVyBycHJf ZXZfanNvbl9iYXNpYyBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgNTApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKykKKyAgICBERUZJTkUgQSBBUyB2ICUgMyA9 IDEsIEIgQVMgdiAlIDMgPSAyCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfanNvbl9iYXNpYycpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwor RVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VN TUFSWSBPRkYsIEZPUk1BVCBKU09OKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBT S0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKykKKyAgICBERUZJTkUgQSBBUyB2 ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyCispJyk7CisKKy0tIEpTT04gZm9ybWF0IHdpdGggbWF0 Y2ggbGVuZ3RoIHN0YXRpc3RpY3MKK0NSRUFURSBWSUVXIHJwcl9ldl9qc29uX21hdGNobGVuIEFT CitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFT IHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHYgJSAxMCA8PiAwLCBCIEFTIHYgJSAx MCA9IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldl9qc29uX21hdGNobGVuJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChB TkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRiwg Rk9STUFUIEpTT04pCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCAxMDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1Qg TEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHYgJSAxMCA8PiAw LCBCIEFTIHYgJSAxMCA9IDAKKyknKTsKKworLS0gSlNPTiBmb3JtYXQgd2l0aCBtaXNtYXRjaCBz dGF0aXN0aWNzCistLSBQYXR0ZXJuIEEgQiBDIGV4cGVjdHMgMSwyLDMgYnV0IGdldHMgMSwyLDQg dHdpY2UgY2F1c2luZyBtaXNtYXRjaGVzCitDUkVBVEUgVklFVyBycHJfZXZfanNvbl9taXNtYXRj aCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSAoVkFMVUVTICgxKSwoMiksKDQpLCAo MSksKDIpLCg0KSwgKDEpLCgyKSwoMykpIEFTIHQodikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBN QVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIgQykKKyAgICBERUZJTkUg QSBBUyB2ID0gMSwgQiBBUyB2ID0gMiwgQyBBUyB2ID0gMworKTsKK1NFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2pzb25fbWlzbWF0 Y2gnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnBy X2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBP RkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGLCBGT1JNQVQgSlNPTikKK1NFTEVDVCBjb3VudCgq KSBPVkVSIHcKK0ZST00gKFZBTFVFUyAoMSksKDIpLCg0KSwgKDEpLCgyKSwoNCksICgxKSwoMiks KDMpKSBBUyB0KHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1Qg Uk9XCisgICAgUEFUVEVSTiAoQSBCIEMpCisgICAgREVGSU5FIEEgQVMgdiA9IDEsIEIgQVMgdiA9 IDIsIEMgQVMgdiA9IDMKKyknKTsKKworLS0gSlNPTiBmb3JtYXQgd2l0aCBza2lwcGVkIGNvbnRl eHQgc3RhdGlzdGljcworLS0gQWx0ZXJuYXRpb24gcGF0dGVybiB3aXRoIFNLSVAgUEFTVCBMQVNU IFJPVyBjYXVzZXMgbWFueSBjb250ZXh0cyB0byBiZSBza2lwcGVkCitDUkVBVEUgVklFVyBycHJf ZXZfanNvbl9za2lwIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCAxMDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSB8IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIp IChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikpCisgICAgREVGSU5FIEEgQVMgdiAlIDIg PSAxLCBCIEFTIHYgJSAyID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190 b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2pzb25fc2tpcCcpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwor RVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VN TUFSWSBPRkYsIEZPUk1BVCBKU09OKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0gg U0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgfCBCKSAoQSB8IEIpIChBIHwgQikg KEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIpKQorICAgIERFRklORSBBIEFT IHYgJSAyID0gMSwgQiBBUyB2ICUgMiA9IDAKKyknKTsKKworLS0gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBYTUwgRm9ybWF0 IFRlc3RzCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKworLS0gWE1MIGZvcm1hdCBvdXRwdXQKK0NSRUFURSBWSUVXIHJwcl9l dl94bWxfYmFzaWMgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDMwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNU IExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKQorICAgIERFRklORSBBIEFTIHYgJSAyID0gMSwg QiBBUyB2ICUgMiA9IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl94bWxfYmFzaWMnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExB SU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkg T0ZGLCBGT1JNQVQgWE1MKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMzApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAx LCBCIEFTIHYgJSAyID0gMAorKScpOworCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIE11bHRpcGxlIFBhcnRpdGlvbnMg VGVzdHMKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorCistLSBTdGF0aXN0aWNzIGFjcm9zcyBtdWx0aXBsZSBwYXJ0aXRpb25z CitDUkVBVEUgVklFVyBycHJfZXZfcGFydF9tdWx0aSBBUworU0VMRUNUIGNvdW50KCopIE9WRVIg dworRlJPTSAoCisgICAgU0VMRUNUIHAsIHYKKyAgICBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAz KSBwLAorICAgICAgICAgZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSB2CispIHQKK1dJTkRPVyB3IEFT ICgKKyAgICBQQVJUSVRJT04gQlkgcAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwor ICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUg NSA9IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldl9wYXJ0X211bHRpJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5l IH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFM WVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NF TEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gKAorICAgIFNFTEVDVCBwLCB2CisgICAgRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgMykgcCwKKyAgICAgICAgIGdlbmVyYXRlX3NlcmllcygxLCAzMCkg dgorKSB0CitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIHAKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBT S0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHYg JSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCispOycpOworCistLSBEaWZmZXJlbnQgcGF0dGVybiBi ZWhhdmlvciBwZXIgcGFydGl0aW9uCitDUkVBVEUgVklFVyBycHJfZXZfcGFydF9kaWZmIEFTCitT RUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NICgKKyAgICBTRUxFQ1QKKyAgICAgICAgQ0FTRSBX SEVOIHYgPD0gMjUgVEhFTiAxIEVMU0UgMiBFTkQgQVMgcCwKKyAgICAgICAgdiAlIDEwIEFTIHZh bAorICAgIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSB2CispIHQKK1dJTkRPVyB3IEFTICgK KyAgICBQQVJUSVRJT04gQlkgcAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAg IFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMgdmFsIDwgNSwgQiBBUyB2YWwgPj0gNQor KTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2X3BhcnRfZGlmZicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVG RkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CitGUk9NICgKKyAgICBTRUxFQ1QKKyAgICAgICAgQ0FTRSBXSEVOIHYgPD0g MjUgVEhFTiAxIEVMU0UgMiBFTkQgQVMgcCwKKyAgICAgICAgdiAlIDEwIEFTIHZhbAorICAgIEZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSB2CispIHQKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJU SVRJT04gQlkgcAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4g KEErIEIpCisgICAgREVGSU5FIEEgQVMgdmFsIDwgNSwgQiBBUyB2YWwgPj0gNQorKTsnKTsKKwor LS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLSBFZGdlIENhc2VzCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLS0gRW1wdHkgcmVzdWx0IHNldAorQ1JF QVRFIFZJRVcgcnByX2V2X2VkZ2VfZW1wdHkgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBN QVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIpCisgICAgREVGSU5FIEEg QVMgdiA9IDEsIEIgQVMgdiA9IDIKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9lZGdlX2VtcHR5JyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcign CitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBT VU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFT VCBST1cKKyAgICBQQVRURVJOIChBIEIpCisgICAgREVGSU5FIEEgQVMgdiA9IDEsIEIgQVMgdiA9 IDIKKyk7Jyk7CisKKy0tIFNpbmdsZSByb3cKK0NSRUFURSBWSUVXIHJwcl9ldl9lZGdlX3Npbmds ZV9yb3cgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDEpIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBS T1cKKyAgICBQQVRURVJOIChBKQorICAgIERFRklORSBBIEFTIFRSVUUKKyk7CitTRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9lZGdl X3NpbmdsZV9yb3cnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitT RUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZG LCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9W RVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMSkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEpCisgICAgREVG SU5FIEEgQVMgVFJVRQorKTsnKTsKKworLS0gUGF0dGVybiBsb25nZXIgdGhhbiBkYXRhCitDUkVB VEUgVklFVyBycHJfZXZfZWRnZV9wYXR0ZXJuX2xvbmdlciBBUworU0VMRUNUIGNvdW50KCopIE9W RVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNSkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQiBDIEQgRSBG IEcgSCBJIEopCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgdiA9IDEsIEIgQVMgdiA9IDIsIEMg QVMgdiA9IDMsIEQgQVMgdiA9IDQsIEUgQVMgdiA9IDUsCisgICAgICAgIEYgQVMgdiA9IDYsIEcg QVMgdiA9IDcsIEggQVMgdiA9IDgsIEkgQVMgdiA9IDksIEogQVMgdiA9IDEwCispOworU0VMRUNU IGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZf ZWRnZV9wYXR0ZXJuX2xvbmdlcicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVG RkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1KSBBUyBzKHYpCitXSU5ET1cg dyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBC IEMgRCBFIEYgRyBIIEkgSikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyB2ID0gMSwgQiBBUyB2 ID0gMiwgQyBBUyB2ID0gMywgRCBBUyB2ID0gNCwgRSBBUyB2ID0gNSwKKyAgICAgICAgRiBBUyB2 ID0gNiwgRyBBUyB2ID0gNywgSCBBUyB2ID0gOCwgSSBBUyB2ID0gOSwgSiBBUyB2ID0gMTAKKyk7 Jyk7CisKKy0tIEFsbCByb3dzIG1hdGNoIGFzIHNpbmdsZSBtYXRjaAorQ1JFQVRFIFZJRVcgcnBy X2V2X2VkZ2Vfc2luZ2xlX21hdGNoIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdl bmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENI IFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFRS VUUKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl9ldl9lZGdlX3NpbmdsZV9tYXRjaCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAo QU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYp CitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMg cyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAg IFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFRSVUUKKyk7Jyk7CisKKy0tID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0g Q29tcGxleCBQYXR0ZXJuIFRlc3RzCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLS0gTmVzdGVkIGdyb3VwcworQ1JFQVRF IFZJRVcgcnByX2V2X2NweF9uZXN0ZWQgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKChBIEIpIEMpKykKKyAgICBERUZJ TkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyLCBDIEFTIHYgJSAzID0gMAorKTsKK1NF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X2V2X2NweF9uZXN0ZWQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMg T0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCop IE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKK1dJTkRPVyB3IEFT ICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoKEEgQikg QykrKQorICAgIERFRklORSBBIEFTIHYgJSAzID0gMSwgQiBBUyB2ICUgMyA9IDIsIEMgQVMgdiAl IDMgPSAwCispOycpOworCistLSBNdWx0aXBsZSBhbHRlcm5hdGlvbnMKK0NSRUFURSBWSUVXIHJw cl9ldl9jcHhfbXVsdGlfYWx0IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9u ZmFfdGVzdAorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwor ICAgIFBBVFRFUk4gKChBIHwgQikgKEMgfCBEIHwgRSkpCisgICAgREVGSU5FCisgICAgICAgIEEg QVMgY2F0ID0gJ0EnLCBCIEFTIGNhdCA9ICdCJywgQyBBUyBjYXQgPSAnQycsCisgICAgICAgIEQg QVMgY2F0ID0gJ0QnLCBFIEFTIGNhdCA9ICdFJworKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2NweF9tdWx0aV9hbHQnKSwg RSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4cGxh aW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJ TUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBycHJf bmZhX3Rlc3QKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgICBQQVRURVJOICgoQSB8IEIpIChDIHwgRCB8IEUpKQorICAgIERFRklORQorICAgICAgICBB IEFTIGNhdCA9ICcnQScnLCBCIEFTIGNhdCA9ICcnQicnLCBDIEFTIGNhdCA9ICcnQycnLAorICAg ICAgICBEIEFTIGNhdCA9ICcnRCcnLCBFIEFTIGNhdCA9ICcnRScnCispOycpOworCistLSBPcHRp b25hbCBlbGVtZW50cworQ1JFQVRFIFZJRVcgcnByX2V2X2NweF9vcHRpb25hbCBBUworU0VMRUNU IGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKK1dJ TkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJO IChBIEI/IEMpCisgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAxLCBCIEFTIHYgJSA0ID0gMiwgQyBB UyB2ICUgNCA9IDMKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9jcHhfb3B0aW9uYWwnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExB SU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkg T0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTAp IEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgICBQQVRURVJOIChBIEI/IEMpCisgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAxLCBCIEFTIHYg JSA0ID0gMiwgQyBBUyB2ICUgNCA9IDMKKyk7Jyk7CisKKy0tIEJvdW5kZWQgcXVhbnRpZmllcnMK K0NSRUFURSBWSUVXIHJwcl9ldl9jcHhfYm91bmRlZCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIg dworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg QUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQXsyLDV9IEIpCisg ICAgREVGSU5FIEEgQVMgdiAlIDEwIDw+IDAsIEIgQVMgdiAlIDEwID0gMAorKTsKK1NFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2Nw eF9ib3VuZGVkJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VM RUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwg Q09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVS IHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEF7Miw1fSBCKQor ICAgIERFRklORSBBIEFTIHYgJSAxMCA8PiAwLCBCIEFTIHYgJSAxMCA9IDAKKyk7Jyk7CisKKy0t IFN0YXIgcXVhbnRpZmllcgorQ1JFQVRFIFZJRVcgcnByX2V2X2NweF9zdGFyIEFTCitTRUxFQ1Qg Y291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lO RE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4g KEEgQiogQykKKyAgICBERUZJTkUgQSBBUyB2ICUgMTAgPSAxLCBCIEFTIHYgJSAxMCBJTiAoMiwz LDQsNSw2LDcsOCksIEMgQVMgdiAlIDEwID0gOQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2NweF9zdGFyJyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWluX2Zp bHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcg T0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVf c2VyaWVzKDEsIDUwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQ QVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKiBDKQorICAgIERFRklORSBBIEFTIHYgJSAx MCA9IDEsIEIgQVMgdiAlIDEwIElOICgyLDMsNCw1LDYsNyw4KSwgQyBBUyB2ICUgMTAgPSA5Cisp OycpOworCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tIFJlYWwtd29ybGQgUGF0dGVybiBFeGFtcGxlcworLS0gPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisK Ky0tIFN0b2NrIHByaWNlIHBhdHRlcm4gLSBWLXNoYXBlIChkb3duIHRoZW4gdXApCitDUkVBVEUg VklFVyBycHJfZXZfcmVhbF92c2hhcGUgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00g cnByX25mYV9jb21wbGV4CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExB U1QgUk9XCisgICAgUEFUVEVSTiAoRCsgVSspCisgICAgREVGSU5FIEQgQVMgdHJlbmQgPSAnRCcs IFUgQVMgdHJlbmQgPSAnVScKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9yZWFsX3ZzaGFwZScpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwor RVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VN TUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9uZmFfY29tcGxleAor V0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRF Uk4gKEQrIFUrKQorICAgIERFRklORSBEIEFTIHRyZW5kID0gJydEJycsIFUgQVMgdHJlbmQgPSAn J1UnJworKTsnKTsKKworLS0gU3RvY2sgcHJpY2UgcGF0dGVybiAtIHBlYWsgKHVwLCBzdGFibGUs IGRvd24pCitDUkVBVEUgVklFVyBycHJfZXZfcmVhbF9wZWFrIEFTCitTRUxFQ1QgY291bnQoKikg T1ZFUiB3CitGUk9NIHJwcl9uZmFfY29tcGxleAorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENI IFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKFUrIFMqIEQrKQorICAgIERFRklORSBV IEFTIHRyZW5kID0gJ1UnLCBTIEFTIHRyZW5kID0gJ1MnLCBEIEFTIHRyZW5kID0gJ0QnCispOwor U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXZfcmVhbF9wZWFrJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJT IE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgq KSBPVkVSIHcKK0ZST00gcnByX25mYV9jb21wbGV4CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoVSsgUyogRCspCisgICAgREVGSU5F IFUgQVMgdHJlbmQgPSAnJ1UnJywgUyBBUyB0cmVuZCA9ICcnUycnLCBEIEFTIHRyZW5kID0gJydE JycKKyk7Jyk7CisKKy0tIENvbnNlY3V0aXZlIGluY3JlYXNpbmcgdmFsdWVzICh1c2luZyBQUkVW KQorQ1JFQVRFIFZJRVcgcnByX2V2X3JlYWxfaW5jcmVhc2luZyBBUworU0VMRUNUIGNvdW50KCop IE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKK1dJTkRPVyB3IEFT ICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBezMsfSkK KyAgICBERUZJTkUgQSBBUyB2ID4gUFJFVih2KSBPUiBQUkVWKHYpIElTIE5VTEwKKyk7CitTRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l dl9yZWFsX2luY3JlYXNpbmcnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZF UlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50 KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKK1dJTkRPVyB3 IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBezMs fSkKKyAgICBERUZJTkUgQSBBUyB2ID4gUFJFVih2KSBPUiBQUkVWKHYpIElTIE5VTEwKKyk7Jyk7 CisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0gUGVyZm9ybWFuY2Utb3JpZW50ZWQgVGVzdHMKKy0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCistLSBM YXJnZSBkYXRhc2V0IHdpdGggc2ltcGxlIHBhdHRlcm4KK0NSRUFURSBWSUVXIHJwcl9ldl9wZXJm X2xhcmdlX3NpbXBsZSBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMTAwMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAg UEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQikKKyAgICBERUZJTkUgQSBBUyB2ICUgMiA9 IDEsIEIgQVMgdiAlIDIgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfcGVyZl9sYXJnZV9zaW1wbGUnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4cGxhaW5fZmls dGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBP RkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMTAwMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAg UEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQikKKyAgICBERUZJTkUgQSBBUyB2ICUgMiA9 IDEsIEIgQVMgdiAlIDIgPSAwCispOycpOworCistLSBMYXJnZSBkYXRhc2V0IHdpdGggYWJzb3Jw dGlvbgorQ1JFQVRFIFZJRVcgcnByX2V2X3BlcmZfbGFyZ2VfYWJzb3JiIEFTCitTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDAwKSBBUyBzKHYpCitXSU5E T1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAo QSsgQikKKyAgICBERUZJTkUgQSBBUyB2ICUgMTAwIDw+IDAsIEIgQVMgdiAlIDEwMCA9IDAKKyk7 CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl9ldl9wZXJmX2xhcmdlX2Fic29yYicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFla RSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxF Q1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDAwKSBBUyBzKHYp CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFU VEVSTiAoQSsgQikKKyAgICBERUZJTkUgQSBBUyB2ICUgMTAwIDw+IDAsIEIgQVMgdiAlIDEwMCA9 IDAKKyk7Jyk7CisKKy0tIEhpZ2ggc3RhdGUgbWVyZ2UgcmF0aW8KK0NSRUFURSBWSUVXIHJwcl9l dl9wZXJmX2hpZ2hfbWVyZ2UgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDUwMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNL SVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIHwgQikrIEMpCisgICAgREVGSU5FIEEg QVMgdiAlIDMgPSAxLCBCIEFTIHYgJSAzID0gMiwgQyBBUyB2ICUgMyA9IDAKKyk7CitTRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9w ZXJmX2hpZ2hfbWVyZ2UnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMg T0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCop IE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTAwKSBBUyBzKHYpCitXSU5ET1cgdyBB UyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgfCBC KSsgQykKKyAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyLCBDIEFTIHYg JSAzID0gMAorKTsnKTsKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CistLSBJTklUSUFMIHZzIG5vIElOSVRJQUwgY29tcGFy aXNvbgorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CisKKy0tIFdpdGggSU5JVElBTCBrZXl3b3JkCitDUkVBVEUgVklFVyBycHJf ZXZfaW5pdGlhbF93aXRoIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRl X3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAg UEFTVCBMQVNUIFJPVworICAgIElOSVRJQUwKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklO RSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfaW5pdGlhbF93aXRo JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9l eHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZG LCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgSU5JVElBTAorICAgIFBBVFRFUk4gKEErIEIpCisg ICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKKyk7Jyk7CisKKy0tIFdp dGhvdXQgSU5JVElBTCBrZXl3b3JkIChzYW1lIGJlaGF2aW9yIGN1cnJlbnRseSkKK0NSRUFURSBW SUVXIHJwcl9ldl9pbml0aWFsX3dpdGhvdXQgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUg QSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2luaXRpYWxfd2l0aG91 dCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJf ZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9G RiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9N IGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEg QVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKKyk7Jyk7CisKKy0tID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gUXVhbnRp ZmllciBWYXJpYXRpb25zCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKworLS0gUGx1cyBxdWFudGlmaWVyCitDUkVBVEUgVklF VyBycHJfZXZfcXVhbnRfcGx1cyBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwgNDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBT S0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2ICUg NCA8PiAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfZXZfcXVhbnRfcGx1cycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5B TFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitT RUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkgQVMgcyh2 KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBB VFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHYgJSA0IDw+IDAKKyk7Jyk7CisKKy0tIFN0YXIg cXVhbnRpZmllciAoemVybyBvciBtb3JlKQorQ1JFQVRFIFZJRVcgcnByX2V2X3F1YW50X3N0YXIg QVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBB UyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisg ICAgUEFUVEVSTiAoQSogQikKKyAgICBERUZJTkUgQSBBUyB2ICUgNCBJTiAoMSwgMiksIEIgQVMg diAlIDQgPSAzCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBn X2dldF92aWV3ZGVmKCdycHJfZXZfcXVhbnRfc3RhcicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAo QU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYp CitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkgQVMg cyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAg IFBBVFRFUk4gKEEqIEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDQgSU4gKDEsIDIpLCBCIEFTIHYg JSA0ID0gMworKTsnKTsKKworLS0gUXVlc3Rpb24gbWFyayAoemVybyBvciBvbmUpCitDUkVBVEUg VklFVyBycHJfZXZfcXVhbnRfcXVlc3Rpb24gQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQT8gQiBDKQorICAgIERFRklO RSBBIEFTIHYgJSA0ID0gMSwgQiBBUyB2ICUgNCA9IDIsIEMgQVMgdiAlIDQgPSAzCispOworU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf ZXZfcXVhbnRfcXVlc3Rpb24nKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZF UlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50 KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNDApIEFTIHModikKK1dJTkRPVyB3 IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBPyBC IEMpCisgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAxLCBCIEFTIHYgJSA0ID0gMiwgQyBBUyB2ICUg NCA9IDMKKyk7Jyk7CisKKy0tIEV4YWN0IGNvdW50IHtufQorQ1JFQVRFIFZJRVcgcnByX2V2X3F1 YW50X2V4YWN0IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBM QVNUIFJPVworICAgIFBBVFRFUk4gKEF7M30gQikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAw LCBCIEFTIHYgJSA1ID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3F1YW50X2V4YWN0JyksIEUnXG4nKSkgQVMgbGlu ZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitF WFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1N QVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDUwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1Qg Uk9XCisgICAgUEFUVEVSTiAoQXszfSBCKQorICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIg QVMgdiAlIDUgPSAwCispOycpOworCistLSBSYW5nZSB7bixtfQorQ1JFQVRFIFZJRVcgcnByX2V2 X3F1YW50X3JhbmdlIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFT VCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEF7Miw0fSBCKQorICAgIERFRklORSBBIEFTIHYgJSA1 IDw+IDAsIEIgQVMgdiAlIDUgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfcXVhbnRfcmFuZ2UnKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVy KCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYs IFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwgNTApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1Qg TEFTVCBST1cKKyAgICBQQVRURVJOIChBezIsNH0gQikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA8 PiAwLCBCIEFTIHYgJSA1ID0gMAorKTsnKTsKKworLS0gQXQgbGVhc3Qge24sfQorQ1JFQVRFIFZJ RVcgcnByX2V2X3F1YW50X2F0bGVhc3QgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQXszLH0gQikKKyAgICBERUZJTkUg QSBBUyB2ICUgMTAgPD4gMCwgQiBBUyB2ICUgMTAgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfcXVhbnRfYXRsZWFz dCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJf ZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9G RiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9N IGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEF7Myx9IEIpCisgICAgREVGSU5F IEEgQVMgdiAlIDEwIDw+IDAsIEIgQVMgdiAlIDEwID0gMAorKTsnKTsKKworLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBS ZWdyZXNzaW9uIFRlc3RzIGZvciBTdGF0aXN0aWNzIEFjY3VyYWN5CistLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLS0gVmVy aWZ5IHN0YXRlIGNvdW50IGFjY3VyYWN5CistLSBQYXR0ZXJuIEErIEIgd2l0aCAyMCByb3dzIHNo b3VsZCBzaG93IHByZWRpY3RhYmxlIHN0YXRlIGJlaGF2aW9yCitDUkVBVEUgVklFVyBycHJfZXZf cmVnX3N0YXRlX2NvdW50IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRl X3NlcmllcygxLCAyMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAg UEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDUg PD4gMCwgQiBBUyB2ICUgNSA9IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9yZWdfc3RhdGVfY291bnQnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4cGxhaW5fZmls dGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBP RkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHYgJSA1IDw+ IDAsIEIgQVMgdiAlIDUgPSAwCispOycpOworCistLSBWZXJpZnkgY29udGV4dCBjb3VudCB3aXRo IGtub3duIGFic29ycHRpb24KK0NSRUFURSBWSUVXIHJwcl9ldl9yZWdfY3R4X2Fic29yYiBBUwor U0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFTIHMo dikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQ QVRURVJOIChBKyBCIEMpCisgICAgREVGSU5FIEEgQVMgdiAlIDEwIElOICgxLDIsMyw0LDUsNiw3 KSwgQiBBUyB2ICUgMTAgPSA4LCBDIEFTIHYgJSAxMCA9IDkKKyk7CitTRUxFQ1QgbGluZSBGUk9N IHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9yZWdfY3R4X2Fi c29yYicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBy cHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RT IE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVS IE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIgQykKKyAgICBERUZJ TkUgQSBBUyB2ICUgMTAgSU4gKDEsMiwzLDQsNSw2LDcpLCBCIEFTIHYgJSAxMCA9IDgsIEMgQVMg diAlIDEwID0gOQorKTsnKTsKKworLS0gVmVyaWZ5IG1hdGNoIGxlbmd0aCB3aXRoIGZpeGVkLWxl bmd0aCBwYXR0ZXJuCitDUkVBVEUgVklFVyBycHJfZXZfcmVnX21hdGNobGVuIEFTCitTRUxFQ1Qg Y291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQorV0lO RE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4g KEEgQiBDKQorICAgIERFRklORSBBIEFTIHYgJSAzID0gMSwgQiBBUyB2ICUgMyA9IDIsIEMgQVMg diAlIDMgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBn X2dldF92aWV3ZGVmKCdycHJfZXZfcmVnX21hdGNobGVuJyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlO IChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9G RikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSBB UyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisg ICAgUEFUVEVSTiAoQSBCIEMpCisgICAgREVGSU5FIEEgQVMgdiAlIDMgPSAxLCBCIEFTIHYgJSAz ID0gMiwgQyBBUyB2ICUgMyA9IDAKKyk7Jyk7CisKKy0tID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gQWx0ZXJuYXRpb24gUGF0 dGVybiBUZXN0cworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CisKKy0tIFNpbXBsZSBhbHRlcm5hdGlvbgorQ1JFQVRFIFZJRVcg cnByX2V2X2FsdF9zaW1wbGUgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gcnByX25m YV90ZXN0CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisg ICAgUEFUVEVSTiAoKEEgfCBCKSBDKQorICAgIERFRklORSBBIEFTIGNhdCA9ICdBJywgQiBBUyBj YXQgPSAnQicsIEMgQVMgY2F0ID0gJ0MnCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYWx0X3NpbXBsZScpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0 ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9G RiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9uZmFfdGVz dAorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBB VFRFUk4gKChBIHwgQikgQykKKyAgICBERUZJTkUgQSBBUyBjYXQgPSAnJ0EnJywgQiBBUyBjYXQg PSAnJ0InJywgQyBBUyBjYXQgPSAnJ0MnJworKTsnKTsKKworLS0gTXVsdGlwbGUgaXRlbXMgaW4g YWx0ZXJuYXRpb24KK0NSRUFURSBWSUVXIHJwcl9ldl9hbHRfbXVsdGlfaXRlbSBBUworU0VMRUNU IGNvdW50KCopIE9WRVIgdworRlJPTSBycHJfbmZhX3Rlc3QKK1dJTkRPVyB3IEFTICgKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSB8IEIgfCBDIHwgRCkg RSkKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyBjYXQgPSAnQScsIEIgQVMgY2F0ID0gJ0InLCBD IEFTIGNhdCA9ICdDJywKKyAgICAgICAgRCBBUyBjYXQgPSAnRCcsIEUgQVMgY2F0ID0gJ0UnCisp OworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXZfYWx0X211bHRpX2l0ZW0nKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUs IEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNU IGNvdW50KCopIE9WRVIgdworRlJPTSBycHJfbmZhX3Rlc3QKK1dJTkRPVyB3IEFTICgKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSB8IEIgfCBDIHwgRCkg RSkKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyBjYXQgPSAnJ0EnJywgQiBBUyBjYXQgPSAnJ0In JywgQyBBUyBjYXQgPSAnJ0MnJywKKyAgICAgICAgRCBBUyBjYXQgPSAnJ0QnJywgRSBBUyBjYXQg PSAnJ0UnJworKTsnKTsKKworLS0gQWx0ZXJuYXRpb24gd2l0aCBxdWFudGlmaWVycworQ1JFQVRF IFZJRVcgcnByX2V2X2FsdF93aXRoX3F1YW50IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVS IE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIHwgQikrIEMpCisgICAg REVGSU5FIEEgQVMgdiAlIDMgPSAxLCBCIEFTIHYgJSAzID0gMiwgQyBBUyB2ICUgMyA9IDAKKyk7 CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl9ldl9hbHRfd2l0aF9xdWFudCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQ QVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwg QlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1Qg Y291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lO RE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4g KChBIHwgQikrIEMpCisgICAgREVGSU5FIEEgQVMgdiAlIDMgPSAxLCBCIEFTIHYgJSAzID0gMiwg QyBBUyB2ICUgMyA9IDAKKyk7Jyk7CisKKy0tIE11bHRpcGxlIGFsdGVybmF0aXZlcyAoNCspCitD UkVBVEUgVklFVyBycHJfZXZfYWx0X2ZvdXJfcGx1cyBBUworU0VMRUNUIGNvdW50KCopIE9WRVIg dworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg UEFUVEVSTiAoQSB8IEIgfCBDIHwgRCB8IEUpCisgICAgREVGSU5FIEEgQVMgdiAlIDUgPSAwLCBC IEFTIHYgJSA1ID0gMSwgQyBBUyB2ICUgNSA9IDIsIEQgQVMgdiAlIDUgPSAzLCBFIEFTIHYgJSA1 ID0gNAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2X2FsdF9mb3VyX3BsdXMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxp bmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFO QUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQor U0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBz KHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSB8IEIgfCBDIHwgRCB8IEUpCisgICAgREVG SU5FIEEgQVMgdiAlIDUgPSAwLCBCIEFTIHYgJSA1ID0gMSwgQyBBUyB2ICUgNSA9IDIsIEQgQVMg diAlIDUgPSAzLCBFIEFTIHYgJSA1ID0gNAorKTsnKTsKKworLS0gQWx0ZXJuYXRpb24gYXQgc3Rh cnQKK0NSRUFURSBWSUVXIHJwcl9ldl9hbHRfYXRfc3RhcnQgQVMKK1NFTEVDVCBjb3VudCgqKSBP VkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAo CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgUEFUVEVSTiAoKEEgfCBCKSBDIEQpCisgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAwLCBCIEFT IHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIsIEQgQVMgdiAlIDQgPSAzCispOworU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYWx0 X2F0X3N0YXJ0JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VM RUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwg Q09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVS IHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg UEFUVEVSTiAoKEEgfCBCKSBDIEQpCisgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAwLCBCIEFTIHYg JSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIsIEQgQVMgdiAlIDQgPSAzCispOycpOworCistLSBNdWx0 aXBsZSBzZXF1ZW50aWFsIGFsdGVybmF0aW9ucworQ1JFQVRFIFZJRVcgcnByX2V2X2FsdF9zZXF1 ZW50aWFsIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmllcygx LCAxMDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOICgoQSB8IEIpIEMgKEQgfCBF KSBGKQorICAgIERFRklORSBBIEFTIHYgJSA2ID0gMCwgQiBBUyB2ICUgNiA9IDEsIEMgQVMgdiAl IDYgPSAyLCBEIEFTIHYgJSA2ID0gMywgRSBBUyB2ICUgNiA9IDQsIEYgQVMgdiAlIDYgPSA1Cisp OworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXZfYWx0X3NlcXVlbnRpYWwnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUs IEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNU IGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCitX SU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgUEFUVEVSTiAoKEEgfCBCKSBDIChEIHwgRSkgRikKKyAgICBERUZJTkUg QSBBUyB2ICUgNiA9IDAsIEIgQVMgdiAlIDYgPSAxLCBDIEFTIHYgJSA2ID0gMiwgRCBBUyB2ICUg NiA9IDMsIEUgQVMgdiAlIDYgPSA0LCBGIEFTIHYgJSA2ID0gNQorKTsnKTsKKworLS0gUXVhbnRp ZmllZCBhbHRlcm5hdGl2ZXMKK0NSRUFURSBWSUVXIHJwcl9ldl9hbHRfcXVhbnRpZmllZCBBUwor U0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHMo dikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOICgoQSsgfCBCKykgQykKKyAgICBERUZJTkUgQSBB UyB2ICUgMyA9IDAsIEIgQVMgdiAlIDMgPSAxLCBDIEFTIHYgJSAzID0gMgorKTsKK1NFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2Fs dF9xdWFudGlmaWVkJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwor U0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9G RiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBP VkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAo CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgUEFUVEVSTiAoKEErIHwgQispIEMpCisgICAgREVGSU5FIEEgQVMgdiAlIDMgPSAwLCBCIEFT IHYgJSAzID0gMSwgQyBBUyB2ICUgMyA9IDIKKyk7Jyk7CisKKy0tIEFsdGVybmF0aW9uIGF0IGVu ZAorQ1JFQVRFIFZJRVcgcnByX2V2X2FsdF9hdF9lbmQgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVS IHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg UEFUVEVSTiAoQSBCIChDIHwgRCkpCisgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAwLCBCIEFTIHYg JSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIsIEQgQVMgdiAlIDQgPSAzCispOworU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYWx0X2F0 X2VuZCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBy cHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RT IE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCA2MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRF Uk4gKEEgQiAoQyB8IEQpKQorICAgIERFRklORSBBIEFTIHYgJSA0ID0gMCwgQiBBUyB2ICUgNCA9 IDEsIEMgQVMgdiAlIDQgPSAyLCBEIEFTIHYgJSA0ID0gMworKTsnKTsKKworLS0gTmVzdGVkIEFM VCBhdCBzdGFydCBvZiBicmFuY2ggaW5zaWRlIG91dGVyIEFMVAorLS0gUGF0dGVybjogKEEgKChC IHwgQykgRCB8IEUpKSAtIHByZWNlZGluZyBWQVIgKyBpbm5lciBBTFQgYXMgZmlyc3QgYnJhbmNo IGVsZW1lbnQKK0NSRUFURSBWSUVXIHJwcl9ldl9hbHRfbmVzdGVkX3N0YXJ0IEFTCitTRUxFQ1Qg Y291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkgQVMgcyh2KQorV0lO RE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIFBBVFRFUk4gKEEgKChCIHwgQykgRCB8IEUpKQorICAgIERFRklORSBBIEFT IHYgJSA1ID0gMCwgQiBBUyB2ICUgNSA9IDEsIEMgQVMgdiAlIDUgPSAyLCBEIEFTIHYgJSA1ID0g MywgRSBBUyB2ICUgNSA9IDQKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9hbHRfbmVzdGVkX3N0YXJ0JyksIEUnXG4nKSkg QVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRl cignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZG LCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDIwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSAoKEIgfCBDKSBE IHwgRSkpCisgICAgREVGSU5FIEEgQVMgdiAlIDUgPSAwLCBCIEFTIHYgJSA1ID0gMSwgQyBBUyB2 ICUgNSA9IDIsIEQgQVMgdiAlIDUgPSAzLCBFIEFTIHYgJSA1ID0gNAorKTsnKTsKKworLS0gTmVz dGVkIEFMVCBhdCBlbmQgb2YgYnJhbmNoIGluc2lkZSBvdXRlciBBTFQKKy0tIFBhdHRlcm46IChD IChBIHwgQikgfCBEKSAtIGlubmVyIEFMVCBpcyBsYXN0IGVsZW1lbnQgaW4gb3V0ZXIgYnJhbmNo CitDUkVBVEUgVklFVyBycHJfZXZfYWx0X25lc3RlZF9lbmQgQVMKK1NFTEVDVCBjb3VudCgqKSBP VkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAo CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgUEFUVEVSTiAoQyAoQSB8IEIpIHwgRCkKKyAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIg QVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMKKyk7CitTRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9h bHRfbmVzdGVkX2VuZCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsK K1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBP RkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikg T1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkgQVMgcyh2KQorV0lORE9XIHcgQVMg KAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIFBBVFRFUk4gKEMgKEEgfCBCKSB8IEQpCisgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAwLCBC IEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIsIEQgQVMgdiAlIDQgPSAzCispOycpOworCist LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tIEdyb3VwIFBhdHRlcm4gVGVzdHMKKy0tID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCistLSBTaW1wbGUgZ3JvdXAK K0NSRUFURSBWSUVXIHJwcl9ldl9ncnBfc2ltcGxlIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3 CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIEIpKykKKyAgICBE RUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCispOworU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfZ3JwX3NpbXBs ZScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJf ZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9G RiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9N IGdlbmVyYXRlX3NlcmllcygxLCA0MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIEIpKykKKyAgICBERUZJTkUg QSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCispOycpOworCistLSBHcm91cCB3aXRoIGJv dW5kZWQgcXVhbnRpZmllcgorQ1JFQVRFIFZJRVcgcnByX2V2X2dycF9ib3VuZGVkIEFTCitTRUxF Q1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkgQVMgcyh2KQor V0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRF Uk4gKChBIEIpezIsNH0pCisgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYgJSAyID0g MAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX2V2X2dycF9ib3VuZGVkJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpF LCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVD VCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCitX SU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVS TiAoKEEgQil7Miw0fSkKKyAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAw CispOycpOworCistLSBOZXN0ZWQgZ3JvdXBzCitDUkVBVEUgVklFVyBycHJfZXZfZ3JwX25lc3Rl ZCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjAp IEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgICBQQVRURVJOICgoKEEgQil7Mn0pKykKKyAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIg QVMgdiAlIDIgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfZ3JwX25lc3RlZCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJ TiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBP RkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA2MCkg QVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwor ICAgIFBBVFRFUk4gKCgoQSBCKXsyfSkrKQorICAgIERFRklORSBBIEFTIHYgJSAyID0gMSwgQiBB UyB2ICUgMiA9IDAKKyk7Jyk7CisKKy0tIERlZXAgbmVzdGluZyAoMysgbGV2ZWxzKQorQ1JFQVRF IFZJRVcgcnByX2V2X2dycF9kZWVwIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdl bmVyYXRlX3NlcmllcygxLCA0MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKCgo KEEgfCBCKSspKykrKQorICAgIERFRklORSBBIEFTIHYgJSAyID0gMCwgQiBBUyB2ICUgMiA9IDEK Kyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldl9ncnBfZGVlcCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVG RkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkgQVMgcyh2KQorV0lORE9X IHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIFBBVFRFUk4gKCgoKEEgfCBCKSspKykrKQorICAgIERFRklORSBBIEFTIHYgJSAy ID0gMCwgQiBBUyB2ICUgMiA9IDEKKyk7Jyk7CisKKy0tIEJvdW5kZWQgcXVhbnRpZmllciBvbiBh bHRlcm5hdGlvbgorQ1JFQVRFIFZJRVcgcnByX2V2X2dycF9ib3VuZGVkX2FsdCBBUworU0VMRUNU IGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKK1dJ TkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBQQVRURVJOICgoQSB8IEIpezIsM30gQykKKyAgICBERUZJTkUgQSBBUyB2 ICUgMyA9IDAsIEIgQVMgdiAlIDMgPSAxLCBDIEFTIHYgJSAzID0gMgorKTsKK1NFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2dycF9i b3VuZGVkX2FsdCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NF TEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYs IENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZF UiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA2MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IFBBVFRFUk4gKChBIHwgQil7MiwzfSBDKQorICAgIERFRklORSBBIEFTIHYgJSAzID0gMCwgQiBB UyB2ICUgMyA9IDEsIEMgQVMgdiAlIDMgPSAyCispOycpOworCistLSBOZXN0ZWQgZ3JvdXBzIHdp dGggcXVhbnRpZmllcnMKK0NSRUFURSBWSUVXIHJwcl9ldl9ncnBfbmVzdGVkX3F1YW50IEFTCitT RUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA2MCkgQVMgcyh2 KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKCgoQSBCKSsgQykqKQorICAgIERFRklORSBBIEFT IHYgJSAzID0gMCwgQiBBUyB2ICUgMyA9IDEsIEMgQVMgdiAlIDMgPSAyCispOworU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfZ3Jw X25lc3RlZF9xdWFudCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsK K1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBP RkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikg T1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA2MCkgQVMgcyh2KQorV0lORE9XIHcgQVMg KAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIFBBVFRFUk4gKCgoQSBCKSsgQykqKQorICAgIERFRklORSBBIEFTIHYgJSAzID0gMCwgQiBB UyB2ICUgMyA9IDEsIEMgQVMgdiAlIDMgPSAyCispOycpOworCistLSBQYXJ0aWFsIG5lc3RlZCBx dWFudGlmaWNhdGlvbgorQ1JFQVRFIFZJRVcgcnByX2V2X2dycF9wYXJ0aWFsX3F1YW50IEFTCitT RUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA2MCkgQVMgcyh2 KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKChBIChCIEMpKykqKQorICAgIERFRklORSBBIEFT IHYgJSAzID0gMCwgQiBBUyB2ICUgMyA9IDEsIEMgQVMgdiAlIDMgPSAyCispOworU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfZ3Jw X3BhcnRpYWxfcXVhbnQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMg T0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCop IE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKK1dJTkRPVyB3IEFT ICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBQQVRURVJOICgoQSAoQiBDKSspKikKKyAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDAsIEIg QVMgdiAlIDMgPSAxLCBDIEFTIHYgJSAzID0gMgorKTsnKTsKKworLS0gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBXaW5kb3cg RnVuY3Rpb24gQ29tYmluYXRpb25zCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLS0gY291bnQoKikgd2l0aCBwYXR0ZXJu CitDUkVBVEUgVklFVyBycHJfZXZfd2ZuX2NvdW50IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3 CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVG SU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9N IHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl93Zm5fY291bnQn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4 cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYs IFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRD SCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFT IHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCispOycpOworCistLSBmaXJzdF92YWx1ZSB3aXRo IHBhdHRlcm4KK0NSRUFURSBWSUVXIHJwcl9ldl93Zm5fZmlyc3RfdmFsdWUgQVMKK1NFTEVDVCBm aXJzdF92YWx1ZSh2KSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYp CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFU VEVSTiAoQSsgQikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAor KTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2X3dmbl9maXJzdF92YWx1ZScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFla RSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxF Q1QgZmlyc3RfdmFsdWUodikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMg cyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAg IFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9 IDAKKyk7Jyk7CisKKy0tIGxhc3RfdmFsdWUgd2l0aCBwYXR0ZXJuCitDUkVBVEUgVklFVyBycHJf ZXZfd2ZuX2xhc3RfdmFsdWUgQVMKK1NFTEVDVCBsYXN0X3ZhbHVlKHYpIE9WRVIgdworRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRD SCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFT IHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfd2ZuX2xhc3RfdmFsdWUnKSwg RSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4cGxh aW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJ TUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGxhc3RfdmFsdWUodikgT1ZFUiB3CitGUk9N IGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEg QVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKKyk7Jyk7CisKKy0tIE11bHRpcGxlIHdpbmRv dyBmdW5jdGlvbnMKK0NSRUFURSBWSUVXIHJwcl9ldl93Zm5fbXVsdGkgQVMKK1NFTEVDVAorICAg IGNvdW50KCopIE9WRVIgdywKKyAgICBmaXJzdF92YWx1ZSh2KSBPVkVSIHcsCisgICAgbGFzdF92 YWx1ZSh2KSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYpCitXSU5E T1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAo QSsgQikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAorKTsKK1NF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X2V2X3dmbl9tdWx0aScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsK K1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBP RkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QKKyAgICBjb3Vu dCgqKSBPVkVSIHcsCisgICAgZmlyc3RfdmFsdWUodikgT1ZFUiB3LAorICAgIGxhc3RfdmFsdWUo dikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQorV0lORE9XIHcg QVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIp CisgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKKyk7Jyk7CisKKy0t ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0gREVGSU5FIEV4cHJlc3Npb24gVmFyaWF0aW9ucworLS0gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0tIENvbXBs ZXggYm9vbGVhbiBleHByZXNzaW9ucworQ1JFQVRFIFZJRVcgcnByX2V2X2RlZl9jb21wbGV4X2Jv b2wgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUw KSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X CisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAodiAlIDUgPD4g MCkgQU5EICh2ICUgMyA8PiAwKSwKKyAgICAgICAgQiBBUyAodiAlIDUgPSAwKSBPUiAodiAlIDMg PSAwKQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2X2RlZl9jb21wbGV4X2Jvb2wnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4g KEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZG KQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFT IHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOIChBKyBCKQorICAgIERFRklORQorICAgICAgICBBIEFTICh2ICUgNSA8PiAwKSBB TkQgKHYgJSAzIDw+IDApLAorICAgICAgICBCIEFTICh2ICUgNSA9IDApIE9SICh2ICUgMyA9IDAp CispOycpOworCistLSBVc2luZyBQUkVWIGZ1bmN0aW9uCitDUkVBVEUgVklFVyBycHJfZXZfZGVm X3ByZXYgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDMwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1Qg Uk9XCisgICAgUEFUVEVSTiAoUyBVKyBEKykKKyAgICBERUZJTkUKKyAgICAgICAgUyBBUyBUUlVF LAorICAgICAgICBVIEFTIHYgPiBQUkVWKHYpLAorICAgICAgICBEIEFTIHYgPCBQUkVWKHYpCisp OworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXZfZGVmX3ByZXYnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZF UlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50 KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFTIHModikKK1dJTkRPVyB3 IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChTIFUr IEQrKQorICAgIERFRklORQorICAgICAgICBTIEFTIFRSVUUsCisgICAgICAgIFUgQVMgdiA+IFBS RVYodiksCisgICAgICAgIEQgQVMgdiA8IFBSRVYodikKKyk7Jyk7CisKKy0tIFVzaW5nIDEtYXJn IFBSRVYgKGltcGxpY2l0IG9mZnNldCAxKQorQ1JFQVRFIFZJRVcgcnByX2V2X25hdl9wcmV2MSBB UworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFT IHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOIChBIEIrKQorICAgIERFRklORQorICAgICAgICBBIEFTIFRSVUUsCisgICAgICAg IEIgQVMgdiA+IFBSRVYodikKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9uYXZfcHJldjEnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTnxERUZJTkV8UFJFVnxORVhUJzsKKworLS0gVXNpbmcgMS1h cmcgTkVYVCAoaW1wbGljaXQgb2Zmc2V0IDEpCitDUkVBVEUgVklFVyBycHJfZXZfbmF2X25leHQx IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkg QVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwor ICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgVFJVRSwKKyAgICAg ICAgQiBBUyB2IDwgTkVYVCh2KQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190 b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X25hdl9uZXh0MScpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOfERFRklORXxQUkVWfE5FWFQnOworCistLSBVc2luZyAy LWFyZyBQUkVWIChleHBsaWNpdCBvZmZzZXQpCitDUkVBVEUgVklFVyBycHJfZXZfbmF2X3ByZXYy IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkg QVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwor ICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgVFJVRSwKKyAgICAg ICAgQiBBUyB2ID4gUFJFVih2LCAyKQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X25hdl9wcmV2MicpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOfERFRklORXxQUkVWfE5FWFQnOworCistLSBVc2lu ZyAyLWFyZyBORVhUIChleHBsaWNpdCBvZmZzZXQpCitDUkVBVEUgVklFVyBycHJfZXZfbmF2X25l eHQyIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAz MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJP VworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgVFJVRSwKKyAg ICAgICAgQiBBUyB2IDwgTkVYVCh2LCAyKQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X25hdl9uZXh0MicpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOfERFRklORXxQUkVWfE5FWFQnOworCistLSBV c2luZyBOVUxMIGNvbXBhcmlzb25zCitDUkVBVEUgVklFVyBycHJfZXZfZGVmX251bGwgQVMKK1NF TEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gKAorICAgIFNFTEVDVCBDQVNFIFdIRU4gdiAlIDUg PSAwIFRIRU4gTlVMTCBFTFNFIHYgRU5EIEFTIHYKKyAgICBGUk9NIGdlbmVyYXRlX3Nlcmllcygx LCAzMCkgdgorKSB0CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1Qg Uk9XCisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUgQSBBUyB2IElTIE5PVCBOVUxMLCBC IEFTIHYgSVMgTlVMTAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2X2RlZl9udWxsJyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlO IChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9G RikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gKAorICAgIFNFTEVDVCBDQVNFIFdIRU4g diAlIDUgPSAwIFRIRU4gTlVMTCBFTFNFIHYgRU5EIEFTIHYKKyAgICBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCAzMCkgdgorKSB0CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNU IExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUgQSBBUyB2IElTIE5PVCBO VUxMLCBCIEFTIHYgSVMgTlVMTAorKTsnKTsKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBMYXJnZSBTY2FsZSBTdGF0 aXN0aWNzIFZlcmlmaWNhdGlvbgorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0tIDUwMCByb3dzIC0gdmVyaWZ5IHN0YXRp c3RpY3Mgc2NhbGUgY29ycmVjdGx5CitDUkVBVEUgVklFVyBycHJfZXZfc2NhbGVfNTAwcm93cyBB UworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTAwKSBB UyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisg ICAgUEFUVEVSTiAoQSsgQiBDKQorICAgIERFRklORSBBIEFTIHYgJSAxMCA8IDcsIEIgQVMgdiAl IDEwID0gNywgQyBBUyB2ICUgMTAgPSA4CispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfc2NhbGVfNTAwcm93cycpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJfZXhwbGFpbl9m aWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5H IE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRl X3NlcmllcygxLCA1MDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQ IFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCIEMpCisgICAgREVGSU5FIEEgQVMgdiAl IDEwIDwgNywgQiBBUyB2ICUgMTAgPSA3LCBDIEFTIHYgJSAxMCA9IDgKKyk7Jyk7CisKKy0tIEhp Z2ggbWF0Y2ggY291bnQgc2NlbmFyaW8KK0NSRUFURSBWSUVXIHJwcl9ldl9zY2FsZV9oaWdoX21h dGNoIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1 MDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBS T1cKKyAgICBQQVRURVJOIChBIEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYg JSAyID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2X3NjYWxlX2hpZ2hfbWF0Y2gnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExB SU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkg T0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTAw KSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X CisgICAgUEFUVEVSTiAoQSBCKQorICAgIERFRklORSBBIEFTIHYgJSAyID0gMSwgQiBBUyB2ICUg MiA9IDAKKyk7Jyk7CisKKy0tIEhpZ2ggc2tpcCBjb3VudCBzY2VuYXJpbworQ1JFQVRFIFZJRVcg cnByX2V2X3NjYWxlX2hpZ2hfc2tpcCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgNTAwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCIEMgRCBFKQorICAgIERFRklO RQorICAgICAgICBBIEFTIHYgJSAxMDAgPSAxLAorICAgICAgICBCIEFTIHYgJSAxMDAgPSAyLAor ICAgICAgICBDIEFTIHYgJSAxMDAgPSAzLAorICAgICAgICBEIEFTIHYgJSAxMDAgPSA0LAorICAg ICAgICBFIEFTIHYgJSAxMDAgPSA1CispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfc2NhbGVfaGlnaF9za2lwJyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWluX2Zp bHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcg T0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVf c2VyaWVzKDEsIDUwMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAg UEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQiBDIEQgRSkKKyAgICBERUZJTkUKKyAgICAg ICAgQSBBUyB2ICUgMTAwID0gMSwKKyAgICAgICAgQiBBUyB2ICUgMTAwID0gMiwKKyAgICAgICAg QyBBUyB2ICUgMTAwID0gMywKKyAgICAgICAgRCBBUyB2ICUgMTAwID0gNCwKKyAgICAgICAgRSBB UyB2ICUgMTAwID0gNQorKTsnKTsKKworLS0KKy0tIFBsYW5uZXIgb3B0aW1pemF0aW9uOiBvcHRp bWl6ZV93aW5kb3dfY2xhdXNlcyBtdXN0IG5vdCBhbHRlciBSUFIgZnJhbWUKKy0tCistLSBvcHRp bWl6ZV93aW5kb3dfY2xhdXNlcygpIHJlcGxhY2VzIGZyYW1lIG9wdGlvbnMgdmlhIHByb3N1cHBv cnQgZnVuY3Rpb25zLgorLS0gQWZmZWN0ZWQgZnVuY3Rpb25zOiByb3dfbnVtYmVyLCByYW5rLCBk ZW5zZV9yYW5rLCBwZXJjZW50X3JhbmssIGN1bWVfZGlzdCwKKy0tIG50aWxlLiAgQWxsIHdvdWxk IGNoYW5nZSB0aGUgZnJhbWUgdG8gUk9XUyBVTkJPVU5ERUQgUFJFQ0VESU5HLCBicmVha2luZwor LS0gUlBSJ3MgcmVxdWlyZWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HLgorLS0gVGVzdCB3aXRoIHJvd19udW1iZXIoKSBhcyByZXByZXNlbnRhdGl2ZSBj YXNlLgorLS0KKworLS0gV2l0aG91dCBSUFI6IHJvd19udW1iZXIoKSBmcmFtZSBpcyBvcHRpbWl6 ZWQgdG8gUk9XUyBVTkJPVU5ERUQgUFJFQ0VESU5HCitDUkVBVEUgVklFVyBycHJfZXZfb3B0X25v X3JwciBBUworU0VMRUNUIHJvd19udW1iZXIoKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDEwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgdgorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworKTsKKworRVhQTEFJ TiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJwcl9ldl9vcHRfbm9fcnByOworCistLSBXaXRo IFJQUjogZnJhbWUgbXVzdCByZW1haW4gUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCitDUkVBVEUgVklFVyBycHJfZXZfb3B0X3dpdGhfcnByIEFTCitTRUxF Q1Qgcm93X251bWJlcigpIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTApIEFTIHMo dikKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSB2CisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNU IExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUKKyAgICAgICAgQiBBUyB2 ID4gUFJFVih2KQorKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJwcl9l dl9vcHRfd2l0aF9ycHI7CisKKy0tCistLSBQbGFubmVyIG9wdGltaXphdGlvbjogbm9uLVJQUiBh bmQgUlBSIHdpbmRvd3MgdGhhdCBzaGFyZSB0aGUgc2FtZSBiYXNlIGZyYW1lCistLSBhZnRlciBm cmFtZSBvcHRpbWl6YXRpb24gYXJlIGtlcHQgYXMgc2VwYXJhdGUgV2luZG93QWdnIG5vZGVzLgor LS0KK0NSRUFURSBWSUVXIHJwcl9ldl9vcHRfbWl4ZWQgQVMKK1NFTEVDVAorICAgIHJvd19udW1i ZXIoKSBPVkVSIHdfbm9ybWFsIEFTIHJuX25vcm1hbCwKKyAgICByb3dfbnVtYmVyKCkgT1ZFUiB3 X3JwciBBUyBybl9ycHIKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUpIEFTIHModikKK1dJTkRP VworICAgIHdfbm9ybWFsIEFTIChPUkRFUiBCWSB2IFJBTkdFIEJFVFdFRU4gVU5CT1VOREVEIFBS RUNFRElORyBBTkQgQ1VSUkVOVCBST1cpLAorICAgIHdfcnByIEFTICgKKyAgICAgICAgT1JERVIg QlkgdgorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSspCisgICAgICAgIERFRklORSBBIEFTIHYgPiAxCisg ICAgKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJwcl9ldl9vcHRfbWl4 ZWQ7CisKKy0tCistLSBQbGFubmVyIG9wdGltaXphdGlvbjogZmluZF93aW5kb3dfcnVuX2NvbmRp dGlvbnMgbXVzdCBub3QgcHVzaCBkb3duCistLSBSUFIgd2luZG93IGZ1bmN0aW9uIHJlc3VsdHMg YXMgUnVuIENvbmRpdGlvbnMuCistLQorLS0gZmluZF93aW5kb3dfcnVuX2NvbmRpdGlvbnMoKSBw dXNoZXMgV0hFUkUgZmlsdGVycyBvbiBtb25vdG9uaWMgd2luZG93CistLSBmdW5jdGlvbnMgaW50 byBXaW5kb3dBZ2cgYXMgUnVuIENvbmRpdGlvbnMgZm9yIGVhcmx5IHRlcm1pbmF0aW9uLgorLS0g V2l0aCBSUFIncyByZXF1aXJlZCBmcmFtZSAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQKKy0tIEZPTExPV0lORyksIHRoZSBtb25vdG9uaWMgZGlyZWN0aW9uIGRldGVybWlu ZXMgd2hpY2ggb3BlcmF0b3JzIHRyaWdnZXIKKy0tIFJ1biBDb25kaXRpb24gcHVzaGRvd246Cist LSAgIElOQ1JFQVNJTkcgKDw9KTogcm93X251bWJlciwgcmFuaywgZGVuc2VfcmFuaywgcGVyY2Vu dF9yYW5rLAorLS0gICAgICAgICAgICAgICAgICAgIGN1bWVfZGlzdCwgbnRpbGUKKy0tICAgREVD UkVBU0lORyAoPik6ICBjb3VudCgqKSAodmlhIGludDhpbmMsIEVORF9VTkJPVU5ERURfRk9MTE9X SU5HKQorLS0gUlBSIHdpbmRvdyBmdW5jdGlvbiByZXN1bHRzIGFyZSBtYXRjaC1kZXBlbmRlbnQs IG5vdCBtb25vdG9uaWMuCistLSBUZXN0IHdpdGggY291bnQoKikgPiAwIGFzIHJlcHJlc2VudGF0 aXZlIGNhc2UuCistLQorCistLSBXaXRob3V0IFJQUjogY291bnQoKikgPiAwIGlzIHB1c2hlZCBk b3duIGFzIFJ1biBDb25kaXRpb24KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCAqIEZST00g KAorICAgIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMTApIEFTIHModikKKyAgICBXSU5ET1cgdyBBUyAoCisgICAgICAgIE9SREVSIEJZ IHYKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgKQorKSB0IFdIRVJFIGNudCA+IDA7CisKKy0tIFdpdGggUlBSOiBjb3VudCgqKSA+ IDAgbXVzdCBub3QgYmUgcHVzaGVkIGRvd24gYXMgUnVuIENvbmRpdGlvbgorRVhQTEFJTiAoQ09T VFMgT0ZGKQorU0VMRUNUICogRlJPTSAoCisgICAgU0VMRUNUIGNvdW50KCopIE9WRVIgdyBBUyBj bnQKKyAgICBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMCkgQVMgcyh2KQorICAgIFdJTkRPVyB3 IEFTICgKKyAgICAgICAgT1JERVIgQlkgdgorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNU IExBU1QgUk9XCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORQorICAgICAg ICAgICAgQiBBUyB2ID4gUFJFVih2KQorICAgICkKKykgdCBXSEVSRSBjbnQgPiAwOworCistLSA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tIE5hdiBNYXJrIExvb2tiYWNrL0xvb2thaGVhZCBUZXN0cworLS0gVmVyaWZpZXMgcGxh bm5lci1jb21wdXRlZCBuYXZpZ2F0aW9uIG9mZnNldHMgZm9yIHR1cGxlc3RvcmUgdHJpbS4KKy0t IExvb2tiYWNrOiBob3cgZmFyIGJhY2sgZnJvbSBjdXJyZW50cG9zIChQUkVWLCBMQVNULCBjb21w b3VuZCBQUkVWX0xBU1QvTkVYVF9MQVNUKS4KKy0tIExvb2thaGVhZDogaG93IGZhciBmb3J3YXJk IGZyb20gbWF0Y2hfc3RhcnQgKEZJUlNULCBjb21wb3VuZCBQUkVWX0ZJUlNUL05FWFRfRklSU1Qp LgorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CisKKy0tIFByZXBhcmUgc3RhdGVtZW50IGZvciBob3N0IHZhcmlhYmxlIG9mZnNl dCB0ZXN0IGJlbG93CitQUkVQQVJFIHJwcl9uYXZfb2Zmc2V0X3ByZXAoaW50OCkgQVMKK1NFTEVD VCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRP VyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2ID4gUFJFVih2LCAkMSkK Kyk7CisKKy0tIE5vIG5hdmlnYXRpb24gZnVuY3Rpb246IG9mZnNldCAwCitFWFBMQUlOIChDT1NU UyBPRkYpIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAp IHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2ID4g MAorKTsKKworLS0gTkVYVCBvbmx5OiBubyBiYWNrd2FyZCBuYXZpZ2F0aW9uLCBvZmZzZXQgMAor RVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRl X3NlcmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVG SU5FIEEgQVMgdiA8IE5FWFQodikKKyk7CisKKy0tIFBSRVYodik6IGltcGxpY2l0IG9mZnNldCAx CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJh dGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBE RUZJTkUgQSBBUyB2ID4gUFJFVih2KQorKTsKKworLS0gUFJFVih2LCAzKTogZXhwbGljaXQgY29u c3RhbnQgb2Zmc2V0IDMKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIE9WRVIg dworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRF Uk4gKEErKQorICAgIERFRklORSBBIEFTIHYgPiBQUkVWKHYsIDMpCispOworCistLSBUd28gUFJF ViB3aXRoIGRpZmZlcmVudCBvZmZzZXRzOiBtYXgoMSwgNSkgPSA1CitFWFBMQUlOIChDT1NUUyBP RkYpIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHMo dikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVWKHYs IDEpIDwgdiBBTkQgUFJFVih2LCA1KSA8IHYKKyk7CisKKy0tIEhvc3QgdmFyaWFibGUgb2Zmc2V0 OiBjdXN0b20gcGxhbiByZXNvbHZlcyAkMT0yIHRvIGNvbnN0YW50IDIKK0VYUExBSU4gKENPU1RT IE9GRikgRVhFQ1VURSBycHJfbmF2X29mZnNldF9wcmVwKDIpOworCistLSBGb3JjZSBnZW5lcmlj IHBsYW46IG9mZnNldCBiZWNvbWVzICJydW50aW1lIiAoUGFyYW0gbm9kZSkKK1NFVCBwbGFuX2Nh Y2hlX21vZGUgPSBmb3JjZV9nZW5lcmljX3BsYW47CitFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNV VEUgcnByX25hdl9vZmZzZXRfcHJlcCgyKTsKK1JFU0VUIHBsYW5fY2FjaGVfbW9kZTsKK0RFQUxM T0NBVEUgcnByX25hdl9vZmZzZXRfcHJlcDsKKworLS0gRklSU1Qodik6IHJldGFpbiBhbGwgKHJl ZmVyZW5jZXMgbWF0Y2hfc3RhcnQgcm93KQorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBB UyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgdiA+IEZJUlNUKHYpCispOworCist LSBMQVNUKHYsIDEpOiBiYWNrd2FyZCByZWFjaCAxLCBzYW1lIGFzIFBSRVYodiwgMSkKK0VYUExB SU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBB IEFTIExBU1QodiwgMSkgPiAwCispOworCistLSBMQVNUKHYpIHdpdGhvdXQgb2Zmc2V0ICsgUFJF Vih2KTogbm8gbWF0Y2hfc3RhcnQgZGVwZW5kZW5jeSwgb2Zmc2V0IDEKK0VYUExBSU4gKENPU1RT IE9GRikgU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkg cyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIExBU1Qo dikgPiBQUkVWKHYpCispOworCistLSBDb21wb3VuZCBQUkVWKEZJUlNUKHZhbCwgMSksIDIpOiBs b29rYmFjayBmcm9tIG1hdGNoX3N0YXJ0LCBmaXJzdE9mZnNldCA9IDEtMiA9IC0xCitFWFBMQUlO IChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVz KDEsMTApIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBB UyBQUkVWKEZJUlNUKHYsIDEpLCAyKSA+IDAKKyk7CisKKy0tIENvbXBvdW5kIE5FWFQoRklSU1Qo dmFsKSwgMyk6IGZpcnN0T2Zmc2V0ID0gMCszID0gMworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxF Q1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5E T1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgTkVYVChGSVJTVCh2KSwg MykgPiAwCispOworCistLSBDb21wb3VuZCBQUkVWKExBU1QodmFsKSwgMik6IGxvb2tiYWNrID0g MCsyID0gMgorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9N IGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSsp CisgICAgREVGSU5FIEEgQVMgUFJFVihMQVNUKHYpLCAyKSA+IDAKKyk7CisKKy0tIENvbXBvdW5k IE5FWFQoTEFTVCh2YWwsIDEpLCAzKTogbG9va2JhY2sgPSBtYXgoMS0zLCAwKSA9IDAKK0VYUExB SU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBB IEFTIE5FWFQoTEFTVCh2LCAxKSwgMykgPiAwCispOworCistLSBDb21wb3VuZCBQUkVWKExBU1Qo dmFsLCBOKSwgTSk6IGNvbnN0YW50IG5lYXItb3ZlcmZsb3cgKE4rTSBqdXN0IGZpdHMgaW50NjQp CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJh dGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBE RUZJTkUgQSBBUyBQUkVWKExBU1QodiwgNDYxMTY4NjAxODQyNzM4NzkwMyksIDQ2MTE2ODYwMTg0 MjczODc5MDMpIElTIE5PVCBOVUxMCispOworCistLSBDb21wb3VuZCBQUkVWKExBU1QodmFsLCBO KSwgTSk6IGNvbnN0YW50IG92ZXJmbG93IC0+IHJldGFpbiBhbGwKK0VYUExBSU4gKENPU1RTIE9G RikgU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2 KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYoTEFT VCh2LCA0NjExNjg2MDE4NDI3Mzg3OTA0KSwgNDYxMTY4NjAxODQyNzM4NzkwNCkgSVMgTk9UIE5V TEwKKyk7CisKKy0tIENvbXBvdW5kIE5FWFQoRklSU1QodmFsLCBOKSwgTSk6IGNvbnN0YW50IGxv b2thaGVhZCBvdmVyZmxvdyAtPiBubyB0cmltIGltcGFjdAorLS0gTiArIE0gb3ZlcmZsb3dzIGlu dDY0LCBidXQgdGFyZ2V0IGlzIGZvcndhcmQgZnJvbSBtYXRjaF9zdGFydCBzbyBpdCBuZXZlcgor LS0gY29uc3RyYWlucyB0cmltLiAgTG9va2FoZWFkIHJlbWFpbnMgYXQgZGVmYXVsdCAoMCkuCitF WFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVf c2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJ TkUgQSBBUyBORVhUKEZJUlNUKHYsIDQ2MTE2ODYwMTg0MjczODc5MDQpLCA0NjExNjg2MDE4NDI3 Mzg3OTA0KSBJUyBOT1QgTlVMTAorKTsKKworLS0gQ29tcG91bmQgUFJFVihMQVNUKHZhbCwgJDEp LCAkMik6IHBhcmFtZXRlciBsb29rYmFjayBvdmVyZmxvdyAtPiByZXRhaW4gYWxsCistLSBFWFBM QUlOIHNob3dzICJydW50aW1lIiAocGxhbi1sZXZlbCk7IEVYUExBSU4gQU5BTFlaRSBzaG93cyAi cmV0YWluIGFsbCIKKy0tIChleGVjdXRvci1yZXNvbHZlZCkuCitQUkVQQVJFIHRlc3Rfb3ZlcmZs b3dfbG9va2JhY2soaW50OCwgaW50OCkgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00g Z2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykK KyAgICBERUZJTkUgQSBBUyBQUkVWKExBU1QodiwgJDEpLCAkMikgSVMgTk9UIE5VTEwKKyk7CitT RVQgcGxhbl9jYWNoZV9tb2RlID0gZm9yY2VfZ2VuZXJpY19wbGFuOworRVhQTEFJTiAoQ09TVFMg T0ZGKSBFWEVDVVRFIHRlc3Rfb3ZlcmZsb3dfbG9va2JhY2soNDYxMTY4NjAxODQyNzM4NzkwNCwg NDYxMTY4NjAxODQyNzM4NzkwNCk7CitFWFBMQUlOIChDT1NUUyBPRkYsIEFOQUxZWkUsIFRJTUlO RyBPRkYsIFNVTU1BUlkgT0ZGKQorICAgIEVYRUNVVEUgdGVzdF9vdmVyZmxvd19sb29rYmFjayg0 NjExNjg2MDE4NDI3Mzg3OTA0LCA0NjExNjg2MDE4NDI3Mzg3OTA0KTsKK1JFU0VUIHBsYW5fY2Fj aGVfbW9kZTsKK0RFQUxMT0NBVEUgdGVzdF9vdmVyZmxvd19sb29rYmFjazsKKworLS0gQ29tcG91 bmQgTkVYVChGSVJTVCh2YWwsICQxKSwgJDIpOiBwYXJhbWV0ZXIgbG9va2FoZWFkIG92ZXJmbG93 IC0+IG5vIHRyaW0gaW1wYWN0CitQUkVQQVJFIHRlc3Rfb3ZlcmZsb3dfbG9va2FoZWFkKGludDgs IGludDgpIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmllcygx LDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMg TkVYVChGSVJTVCh2LCAkMSksICQyKSBJUyBOT1QgTlVMTAorKTsKK1NFVCBwbGFuX2NhY2hlX21v ZGUgPSBmb3JjZV9nZW5lcmljX3BsYW47CitFWFBMQUlOIChDT1NUUyBPRkYsIEFOQUxZWkUsIFRJ TUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorICAgIEVYRUNVVEUgdGVzdF9vdmVyZmxvd19sb29rYWhl YWQoNDYxMTY4NjAxODQyNzM4NzkwNCwgNDYxMTY4NjAxODQyNzM4NzkwNCk7CitSRVNFVCBwbGFu X2NhY2hlX21vZGU7CitERUFMTE9DQVRFIHRlc3Rfb3ZlcmZsb3dfbG9va2FoZWFkOworCistLSBQ UkVWKHYpICsgUFJFVih2LCAkMSk6IE5FRURTX0VWQUwgcGF0aCBtdXN0IGFjY291bnQgZm9yIGlt cGxpY2l0IGxvb2tiYWNrPTEKKy0tIFByZXZpb3VzbHksIGV2YWxfbmF2X21heF9vZmZzZXRfd2Fs a2VyIHNraXBwZWQgUFJFVih2KSB3aGVuIG9mZnNldF9hcmcgd2FzCistLSBOVUxMLCBjYXVzaW5n IG1heE9mZnNldD0wIHdoZW4gJDE9MCwgd2hpY2ggd291bGQgdHJpbSB0aGUgcm93IG5lZWRlZCBi eQorLS0gUFJFVih2KS4gIFZlcmlmeSB0aGlzIGV4ZWN1dGVzIHdpdGhvdXQgImNhbm5vdCBmZXRj aCByb3cgYmVmb3JlIG1hcmsiIGVycm9yLgorUFJFUEFSRSB0ZXN0X3ByZXZfaW1wbGljaXRfb2Zm c2V0KGludDgpIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmll cygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEg QVMgUFJFVih2KSBJUyBOT1QgTlVMTCBBTkQgUFJFVih2LCAkMSkgSVMgTk9UIE5VTEwKKyk7CitF WEVDVVRFIHRlc3RfcHJldl9pbXBsaWNpdF9vZmZzZXQoMCk7CitERUFMTE9DQVRFIHRlc3RfcHJl dl9pbXBsaWNpdF9vZmZzZXQ7CisKKy0tIFJ1bnRpbWUgZXJyb3I6IG5lZ2F0aXZlIG9mZnNldCBh dCBleGVjdXRpb24gdGltZQorUFJFUEFSRSB0ZXN0X3J1bnRpbWVfbmVnX29mZnNldChpbnQ4KSBB UworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2 KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYodiwg JDEpIElTIE5PVCBOVUxMCispOworRVhFQ1VURSB0ZXN0X3J1bnRpbWVfbmVnX29mZnNldCgtMSk7 CitERUFMTE9DQVRFIHRlc3RfcnVudGltZV9uZWdfb2Zmc2V0OworCistLSBSdW50aW1lIGVycm9y OiBudWxsIG9mZnNldCBhdCBleGVjdXRpb24gdGltZQorUFJFUEFSRSB0ZXN0X3J1bnRpbWVfbnVs bF9vZmZzZXQoaW50OCkgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVf c2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJ TkUgQSBBUyBQUkVWKHYsICQxKSBJUyBOT1QgTlVMTAorKTsKK0VYRUNVVEUgdGVzdF9ydW50aW1l X251bGxfb2Zmc2V0KE5VTEwpOworREVBTExPQ0FURSB0ZXN0X3J1bnRpbWVfbnVsbF9vZmZzZXQ7 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfaW50ZWdyYXRpb24uc3FsIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2ludGVncmF0aW9uLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmQ0NzcyOGU5MTEKLS0tIC9kZXYvbnVsbAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfaW50ZWdyYXRpb24uc3FsCkBAIC0wLDAgKzEsOTQwIEBA CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tIFJQUiBJbnRlZ3JhdGlvbiBUZXN0cworLS0gUGxhbm5lciBvcHRpbWl6YXRp b24gaW50ZXJhY3Rpb24gdGVzdHMgZm9yIFJvdyBQYXR0ZXJuIFJlY29nbml0aW9uCistLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tCistLSBWZXJpZmllcyB0aGF0IGVhY2ggcGxhbm5lciBvcHRpbWl6YXRpb24gY29ycmVjdGx5 IGhhbmRsZXMgUlBSIHdpbmRvd3MuCistLSBFdmVuIGlmIGluZGl2aWR1YWwgb3B0aW1pemF0aW9u cyBhcmUgdGVzdGVkIGVsc2V3aGVyZSwgdGhpcyBmaWxlCistLSBwcm92aWRlcyBhIHNpbmdsZSBj aGVja3BvaW50IGZvciBhbGwgcGxhbm5lci9SUFIgaW50ZXJhY3Rpb25zLgorLS0KKy0tIEEuIFBs YW5uZXIgT3B0aW1pemF0aW9uIFByb3RlY3Rpb24gVGVzdHMKKy0tICAgIEExLiBGcmFtZSBvcHRp bWl6YXRpb24gYnlwYXNzCistLSAgICBBMi4gUnVuIGNvbmRpdGlvbiBwdXNoZG93biBieXBhc3MK Ky0tICAgIEEzLiBXaW5kb3cgZGVkdXAgcHJldmVudGlvbiAoUlBSIHZzIG5vbi1SUFIpCistLSAg ICBBNC4gV2luZG93IGRlZHVwIHByZXZlbnRpb24gKHNhbWUgUEFUVEVSTiwgZGlmZmVyZW50IERF RklORSkKKy0tICAgIEE1LiBVbnVzZWQgd2luZG93IHJlbW92YWwgcHJldmVudGlvbgorLS0gICAg QTYuIEludmVyc2UgdHJhbnNpdGlvbiBieXBhc3MKKy0tICAgIEE3LiBDb3N0IGVzdGltYXRpb24g UlBSIGF3YXJlbmVzcworLS0gICAgQTguIFN1YnF1ZXJ5IGZsYXR0ZW5pbmcgcHJldmVudGlvbgor LS0gICAgQTkuIERFRklORSBleHByZXNzaW9uIG5vbi1wcm9wYWdhdGlvbgorLS0gICAgQTEwLiBS UFIgKyBMSU1JVAorLS0KKy0tIEIuIEludGVncmF0aW9uIFNjZW5hcmlvIFRlc3RzCistLSAgICBC MS4gUlBSICsgQ1RFCistLSAgICBCMi4gUlBSICsgSk9JTgorLS0gICAgQjMuIFJQUiArIFNldCBv cGVyYXRpb25zCistLSAgICBCNC4gUlBSICsgUHJlcGFyZWQgc3RhdGVtZW50cworLS0gICAgQjUu IFJQUiArIFBhcnRpdGlvbmVkIHRhYmxlCistLSAgICBCNi4gUlBSICsgTEFURVJBTAorLS0gICAg QjcuIFJQUiArIFJlY3Vyc2l2ZSBDVEUKKy0tICAgIEI4LiBSUFIgKyBJbmNyZW1lbnRhbCBzb3J0 CistLSAgICBCOS4gUlBSICsgVm9sYXRpbGUgZnVuY3Rpb24gaW4gREVGSU5FCistLSAgICBCMTAu IFJQUiArIENvcnJlbGF0ZWQgc3VicXVlcnkKKy0tCisKK0NSRUFURSBUQUJMRSBycHJfaW50ZWcg KGlkIElOVCwgdmFsIElOVCk7CitJTlNFUlQgSU5UTyBycHJfaW50ZWcgVkFMVUVTCisgICAgKDEs IDEwKSwgKDIsIDIwKSwgKDMsIDE1KSwgKDQsIDI1KSwgKDUsIDUpLAorICAgICg2LCAzMCksICg3 LCAzNSksICg4LCAyMCksICg5LCA0MCksICgxMCwgNDUpOworCistLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEExLiBGcmFt ZSBvcHRpbWl6YXRpb24gYnlwYXNzCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFZlcmlmeSB0aGF0IG9wdGltaXplX3dp bmRvd19jbGF1c2VzKCkgZG9lcyBub3QgYXBwbHkgZnJhbWUKKy0tIG9wdGltaXphdGlvbiB0byBS UFIgd2luZG93cy4gIEJvdGggcXVlcmllcyBiZWxvdyB1c2UgdGhlIHNhbWUgaW5wdXQKKy0tIGZy YW1lIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpIHdp dGgKKy0tIHJvd19udW1iZXIoKSwgd2hvc2UgcHJvc3VwcG9ydCBoYW5kbGVzCistLSBTdXBwb3J0 UmVxdWVzdE9wdGltaXplV2luZG93Q2xhdXNlIGFuZCB0cmlnZ2VycyBmcmFtZSByZXdyaXRpbmcu CistLSBJbiB0aGUgbm9uLVJQUiBiYXNlbGluZSB0aGUgcGxhbm5lciByZXdyaXRlcyB0aGUgZnJh bWUgdG8gUk9XUworLS0gVU5CT1VOREVEIFBSRUNFRElORywgd2hpbGUgaW4gdGhlIFJQUiBjYXNl IHRoZSBndWFyZCBpbgorLS0gb3B0aW1pemVfd2luZG93X2NsYXVzZXMoKSBibG9ja3MgdGhlIHJl d3JpdGUgYW5kIHRoZSBmcmFtZSBpcworLS0gcHJlc2VydmVkIGFzIHNwZWNpZmllZC4KKworLS0g Tm9uLVJQUiBiYXNlbGluZTogdGhlIHBsYW5uZXIgcmV3cml0ZXMgdGhlIGZyYW1lIHRvIFJPV1Mg VU5CT1VOREVEIFBSRUNFRElORy4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCByb3dfbnVt YmVyKCkgT1ZFUiB3IEZST00gcnByX2ludGVnCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpOworCist LSBSUFIgY2FzZTogdGhlIGZyYW1lIGlzIHByZXNlcnZlZCBhcyBzcGVjaWZpZWQuCitFWFBMQUlO IChDT1NUUyBPRkYpCitTRUxFQ1Qgcm93X251bWJlcigpIE9WRVIgdyBGUk9NIHJwcl9pbnRlZwor V0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQiBB UyB2YWwgPiBQUkVWKHZhbCkpOworCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEEyLiBSdW4gY29uZGl0aW9uIHB1c2hk b3duIGJ5cGFzcworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CistLSBWZXJpZnkgdGhhdCBmaW5kX3dpbmRvd19ydW5fY29uZGl0 aW9ucygpIGRvZXMgbm90IHB1c2ggYSBtb25vdG9uaWMKKy0tIGZpbHRlciBkb3duIGFzIGEgUnVu IENvbmRpdGlvbiBvbiBSUFIgd2luZG93cy4gIFJQUiBtYXRjaCBjb3VudHMgYXJlCistLSBkZXRl cm1pbmVkIGJ5IHBhdHRlcm4gbWF0Y2hpbmcgcmF0aGVyIHRoYW4gYnkgYSBtb25vdG9uaWMKKy0t IGFjY3VtdWxhdGlvbiBvdmVyIHRoZSBmcmFtZSwgc28gYSBmaWx0ZXIgc3VjaCBhcyAiY250ID4g MCIgY2Fubm90IGJlCistLSB1c2VkIHRvIHN0b3AgZXZhbHVhdGluZyB0aGUgd2luZG93IGZ1bmN0 aW9uIGVhcmx5LgorCistLSBOb24tUlBSIGJhc2VsaW5lOiB0aGUgZmlsdGVyIGlzIGV4cGVjdGVk IHRvIGFwcGVhciBhcyBhIFJ1biBDb25kaXRpb24uCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxF Q1QgKiBGUk9NICgKKyAgICBTRUxFQ1QgY291bnQoKikgT1ZFUiB3IEFTIGNudAorICAgIEZST00g cnByX2ludGVnCisgICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKykgdCBXSEVSRSBjbnQg PiAwOworCistLSBSUFIgY2FzZTogdGhlIGZpbHRlciBtdXN0IGFwcGVhciBhcyBhIEZpbHRlciBh Ym92ZSB0aGUgV2luZG93QWdnLAorLS0gbm90IGFzIGEgUnVuIENvbmRpdGlvbi4KK0VYUExBSU4g KENPU1RTIE9GRikKK1NFTEVDVCAqIEZST00gKAorICAgIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcg QVMgY250CisgICAgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQK KyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYo dmFsKSkKKykgdCBXSEVSRSBjbnQgPiAwOworCistLSBWZXJpZnkgdGhhdCB0aGUgUlBSIHF1ZXJ5 IHN0aWxsIHJldHVybnMgZXZlcnkgcm93IHdob3NlIG1hdGNoIGNvdW50IGlzCistLSBncmVhdGVy IHRoYW4gemVybywgY29uZmlybWluZyB0aGUgZmlsdGVyIGlzIGV2YWx1YXRlZCBhYm92ZSB0aGUK Ky0tIFdpbmRvd0FnZyByYXRoZXIgdGhhbiBjdXR0aW5nIG9mZiBwYXR0ZXJuIG1hdGNoaW5nIHBy ZW1hdHVyZWx5LgorU0VMRUNUICogRlJPTSAoCisgICAgU0VMRUNUIGlkLCB2YWwsIGNvdW50KCop IE9WRVIgdyBBUyBjbnQKKyAgICBGUk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFTIChPUkRF UiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFs ID4gUFJFVih2YWwpKQorKSB0IFdIRVJFIGNudCA+IDAKK09SREVSIEJZIGlkOworCistLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tIEEzLiBXaW5kb3cgZGVkdXAgcHJldmVudGlvbiAoUlBSIHZzIG5vbi1SUFIpCistLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tIFZlcmlmeSB0aGF0IFBvc3RncmVTUUwgZG9lcyBub3QgbWVyZ2UgYW4gUlBSIHdpbmRvdyB3 aXRoIGEgbm9uLVJQUgorLS0gd2luZG93IGV2ZW4gd2hlbiBib3RoIHNoYXJlIHRoZSBzYW1lIE9S REVSIEJZIGFuZCBmcmFtZQorLS0gc3BlY2lmaWNhdGlvbi4gIFJQUiBwYXR0ZXJuIG1hdGNoaW5n IHByb2R1Y2VzIHJlc3VsdHMgdGhhdCBhcmUKKy0tIHNlbWFudGljYWxseSBkaWZmZXJlbnQgZnJv bSBhIHBsYWluIGZyYW1lLWJhc2VkIGFnZ3JlZ2F0ZSwgc28gdGhlCistLSB0d28gd2luZG93cyBt dXN0IHJlbWFpbiBhcyBzZXBhcmF0ZSBXaW5kb3dBZ2cgbm9kZXMuICBJbmxpbmUgd2luZG93Cist LSBzcGVjcyBhcmUgdXNlZCB0aHJvdWdob3V0IHRoaXMgc2VjdGlvbiBiZWNhdXNlIG9ubHkgaW5s aW5lIHdpbmRvd3MKKy0tIGFyZSBzdWJqZWN0IHRvIHRoZSBkZWR1cCBwYXRoOyBkaXN0aW5jdCBu YW1lZCB3aW5kb3dzIGFyZSBhbHdheXMKKy0tIGtlcHQgc2VwYXJhdGUgcmVnYXJkbGVzcyBvZiBl cXVpdmFsZW5jZS4KKworLS0gTm9uLVJQUiBiYXNlbGluZTogdHdvIGlubGluZSB3aW5kb3dzIHdp dGggaWRlbnRpY2FsIHNwZWMgYXJlCistLSBkZWR1cGVkIGJ5IHRoZSBwbGFubmVyIGludG8gYSBz aW5nbGUgV2luZG93QWdnIG5vZGUsIGNvbmZpcm1pbmcKKy0tIHRoYXQgdGhlIGRlZHVwIHBhdGgg aXMgYWN0aXZlIGZvciBub24tUlBSIHdpbmRvd3MuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxF Q1QKKyAgICBjb3VudCgqKSBPVkVSIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpIEFTIGNudCwKKyAgICBzdW0odmFs KSAgT1ZFUiAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKSBBUyB0b3RhbAorRlJPTSBycHJfaW50ZWc7CisKKy0tIEFu IGlubGluZSBSUFIgd2luZG93IGFuZCBhbiBpbmxpbmUgbm9uLVJQUiB3aW5kb3cgc2hhcmUgdGhl IHNhbWUKKy0tIE9SREVSIEJZIGFuZCBmcmFtZSBidXQgbXVzdCByZW1haW4gYXMgZGlzdGluY3Qg V2luZG93QWdnIG5vZGVzLgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUCisgICAgY291bnQo KikgT1ZFUiAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERF RklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkgQVMgcnByX2NudCwKKyAgICBjb3VudCgqKSBPVkVS IChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcpIEFTIG5vcm1hbF9jbnQKK0ZST00gcnByX2ludGVnOworCistLSBWZXJp ZnkgdGhhdCB0aGUgdHdvIHdpbmRvd3MgcmV0dXJuIGluZGVwZW5kZW50IGNvdW50cyBwZXIgcm93 LAorLS0gY29uZmlybWluZyB0aGV5IHdlcmUgbm90IG1lcmdlZCBpbnRvIGEgc2luZ2xlIFdpbmRv d0FnZy4KK1NFTEVDVAorICAgIGlkLCB2YWwsCisgICAgY291bnQoKikgT1ZFUiAoT1JERVIgQlkg aWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBS RVYodmFsKSkgQVMgcnByX2NudCwKKyAgICBjb3VudCgqKSBPVkVSIChPUkRFUiBCWSBpZAorICAg ICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpIEFT IG5vcm1hbF9jbnQKK0ZST00gcnByX2ludGVnCitPUkRFUiBCWSBpZDsKKworLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBB NC4gV2luZG93IGRlZHVwIHByZXZlbnRpb24gKHNhbWUgUEFUVEVSTiwgZGlmZmVyZW50IERFRklO RSkKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0gVmVyaWZ5IHRoYXQgaW5saW5lLXdpbmRvdyBkZWR1cCBkb2VzIG5vdCBt ZXJnZSB0d28gUlBSIHdpbmRvd3MKKy0tIHRoYXQgc2hhcmUgdGhlIHNhbWUgUEFUVEVSTiBzdHJ1 Y3R1cmUgYnV0IGhhdmUgZGlmZmVyZW50IERFRklORQorLS0gY29uZGl0aW9ucy4gIEV2ZW4gdGhv dWdoIHRoZSBPUkRFUiBCWSwgZnJhbWUsIGFuZCBQQVRURVJOIGNvaW5jaWRlLAorLS0gdGhlIGRp ZmZlcmluZyBERUZJTkUgZXhwcmVzc2lvbnMgY2xhc3NpZnkgcm93cyBkaWZmZXJlbnRseSBhbmQK Ky0tIG11c3QgdGhlcmVmb3JlIHlpZWxkIHR3byBzZXBhcmF0ZSBXaW5kb3dBZ2cgbm9kZXMuICBJ bmxpbmUgc3BlY3MKKy0tIGFyZSB1c2VkIGhlcmUgYmVjYXVzZSBkZWR1cCBvbmx5IGFwcGxpZXMg dG8gaW5saW5lIHdpbmRvd3MuCisKKy0tIEJhc2VsaW5lOiB0d28gaW5saW5lIFJQUiB3aW5kb3dz IHRoYXQgYXJlIHN0cnVjdHVyYWxseSBpZGVudGljYWwKKy0tIChzYW1lIE9SREVSIEJZLCBmcmFt ZSwgUEFUVEVSTiwgYW5kIERFRklORSkgYXJlIGRlZHVwZWQgYnkgdGhlCistLSBwYXJzZXIgaW50 byBhIHNpbmdsZSBXaW5kb3dBZ2cgbm9kZSwgY29uZmlybWluZyB0aGF0IHBhcnNlci1sZXZlbAor LS0gZGVkdXAgaXMgYWN0aXZlIGZvciBSUFIgd2luZG93cyB3aG9zZSBERUZJTkUgbWF0Y2hlcy4K K0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVAorICAgIGNvdW50KCopIE9WRVIgKE9SREVSIEJZ IGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAgICBERUZJTkUgQiBBUyB2YWwgPiBQ UkVWKHZhbCkpIEFTIGNudCwKKyAgICBzdW0odmFsKSAgT1ZFUiAoT1JERVIgQlkgaWQKKyAgICAg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg ICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkg QVMgdG90YWwKK0ZST00gcnByX2ludGVnOworCistLSBUd28gaW5saW5lIFJQUiB3aW5kb3dzIHdp dGggdGhlIHNhbWUgUEFUVEVSTiBidXQgb3Bwb3NpdGUgREVGSU5FCistLSBjb25kaXRpb25zIG11 c3QgcmVtYWluIGFzIHNlcGFyYXRlIFdpbmRvd0FnZyBub2Rlcy4KK0VYUExBSU4gKENPU1RTIE9G RikKK1NFTEVDVAorICAgIGNvdW50KCopIE9WRVIgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRU RVJOIChBIEIrKQorICAgICAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpIEFTIGNudF91 cCwKKyAgICBjb3VudCgqKSBPVkVSIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBC KykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsIDwgUFJFVih2YWwpKSBBUyBjbnRfZG93bgorRlJP TSBycHJfaW50ZWc7CisKKy0tIFZlcmlmeSB0aGF0IHRoZSB0d28gd2luZG93cyByZXR1cm4gZGlm ZmVyZW50IGNvdW50cyBwZXIgcm93LAorLS0gY29uZmlybWluZyB0aGUgREVGSU5FIGNvbmRpdGlv bnMgd2VyZSBub3QgY29sbGFwc2VkIGJ5IGRlZHVwLgorU0VMRUNUCisgICAgaWQsIHZhbCwKKyAg ICBjb3VudCgqKSBPVkVSIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAg ICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKSBBUyBjbnRfdXAsCisgICAgY291bnQo KikgT1ZFUiAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERF RklORSBCIEFTIHZhbCA8IFBSRVYodmFsKSkgQVMgY250X2Rvd24KK0ZST00gcnByX2ludGVnCitP UkRFUiBCWSBpZDsKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLSBBNS4gVW51c2VkIHdpbmRvdyByZW1vdmFsIHByZXZl bnRpb24KKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0gVmVyaWZ5IHRoYXQgcmVtb3ZlX3VudXNlZF9zdWJxdWVyeV9vdXRw dXRzKCkgZG9lcyBub3QgZHJvcCBhbiBSUFIKKy0tIHdpbmRvdyBmdW5jdGlvbiBldmVuIHdoZW4g dGhlIG91dGVyIHF1ZXJ5IGRvZXMgbm90IHJlZmVyZW5jZSBpdHMKKy0tIHJlc3VsdC4gIFRoZSBS UFIgV2luZG93QWdnIG5vZGUgaXMgcmVzcG9uc2libGUgZm9yIHBlcmZvcm1pbmcgcGF0dGVybgor LS0gbWF0Y2hpbmcsIHNvIHJlbW92aW5nIHRoZSB3aW5kb3cgZnVuY3Rpb24gd291bGQgc2lsZW50 bHkgc2tpcCB0aGUKKy0tIHBhdHRlcm4gbWF0Y2ggZXZlbiB0aG91Z2ggdGhlIHN1cnJvdW5kaW5n IHF1ZXJ5IHN0aWxsIGRlcGVuZHMgb24KKy0tIFJQUiBzZW1hbnRpY3MuCisKKy0tIFRoZSBvdXRl ciBxdWVyeSBpZ25vcmVzIHRoZSBwZXItcm93IHdpbmRvdyByZXN1bHQsIHlldCBwYXR0ZXJuCist LSBtYXRjaGluZyBtdXN0IHN0aWxsIGV4ZWN1dGUuICBUaGUgcGxhbiBtdXN0IHN0aWxsIGNvbnRh aW4gYQorLS0gV2luZG93QWdnIG5vZGUgYmVsb3cgdGhlIG91dGVyIEFnZ3JlZ2F0ZTsgaWYgdGhl IHdpbmRvdyB3ZXJlCistLSByZW1vdmVkLCBvbmx5IEFnZ3JlZ2F0ZSArIFNlcSBTY2FuIHdvdWxk IGFwcGVhci4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBjb3VudCgqKSBGUk9NICgKKyAg ICBTRUxFQ1QgY291bnQoKikgT1ZFUiB3IEZST00gcnByX2ludGVnCisgICAgV0lORE9XIHcgQVMg KAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICAgICAgUEFUVEVSTiAoQSspCisgICAgICAgIERFRklORSBBIEFTIHZhbCA+IFBSRVYo dmFsKSkKKykgdDsKKworU0VMRUNUIGNvdW50KCopIEZST00gKAorICAgIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoCisgICAgICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRU RVJOIChBKykKKyAgICAgICAgREVGSU5FIEEgQVMgdmFsID4gUFJFVih2YWwpKQorKSB0OworCist LSBUaGUgREVGSU5FIGV4cHJlc3Npb24gcmVmZXJlbmNlcyBQUkVWKHZhbCksIHNvIHRoZSB3aW5k b3cgbXVzdCBiZQorLS0gcHJlc2VydmVkIGV2ZW4gaWYgdGhlIG91dGVyIHF1ZXJ5IG9ubHkgYWdn cmVnYXRlcyBvdmVyIHRoZSBjb3VudC4KKy0tIFRoZSBwbGFuIG11c3Qgc3RpbGwgY29udGFpbiBh IFdpbmRvd0FnZyB3aXRoIHRoZSBQQVRURVJOL0RFRklORQorLS0gaW50YWN0LgorRVhQTEFJTiAo Q09TVFMgT0ZGKQorU0VMRUNUIGNvdW50KCopLCBzdW0oYykgRlJPTSAoCisgICAgU0VMRUNUIGNv dW50KCopIE9WRVIgdyBBUyBjIEZST00gcnByX2ludGVnCisgICAgV0lORE9XIHcgQVMgKAorICAg ICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICAgICAgUEFUVEVSTiAoQSspCisgICAgICAgIERFRklORSBBIEFTIHZhbCA+IFBSRVYodmFsKSkK KykgdDsKKworU0VMRUNUIGNvdW50KCopLCBzdW0oYykgRlJPTSAoCisgICAgU0VMRUNUIGNvdW50 KCopIE9WRVIgdyBBUyBjIEZST00gcnByX2ludGVnCisgICAgV0lORE9XIHcgQVMgKAorICAgICAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAg ICAgUEFUVEVSTiAoQSspCisgICAgICAgIERFRklORSBBIEFTIHZhbCA+IFBSRVYodmFsKSkKKykg dDsKKworLS0gVGhlIERFRklORSBleHByZXNzaW9uIGNvbnRhaW5zIG5vIG5hdmlnYXRpb24sIGJ1 dCB0aGUgUlBSIHdpbmRvdworLS0gbXVzdCBzdGlsbCBiZSBwcmVzZXJ2ZWQgYmVjYXVzZSB0aGUg bWF0Y2ggc3RydWN0dXJlIGl0c2VsZiBhZmZlY3RzCistLSB0aGUgY291bnQuICBUaGUgcGxhbiBt dXN0IHJldGFpbiB0aGUgV2luZG93QWdnLgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGNv dW50KCopLCBzdW0oYykgRlJPTSAoCisgICAgU0VMRUNUIGNvdW50KCopIE9WRVIgdyBBUyBjIEZS T00gcnByX2ludGVnCisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSspCisg ICAgICAgIERFRklORSBBIEFTIFRSVUUpCispIHQ7CisKK1NFTEVDVCBjb3VudCgqKSwgc3VtKGMp IEZST00gKAorICAgIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcgQVMgYyBGUk9NIHJwcl9pbnRlZwor ICAgIFdJTkRPVyB3IEFTICgKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEErKQorICAgICAgICBERUZJTkUg QSBBUyBUUlVFKQorKSB0OworCistLSBYWFg6ICJ2YWwiIGlzIG5vbi1yZXNqdW5rIGluIHRoZSBz dWJxdWVyeSBvdXRwdXQgYW5kIGlzIG5vdAorLS0gcmVmZXJlbmNlZCBieSB0aGUgb3V0ZXIgcXVl cnkuICBXaXRob3V0IGEgZ3VhcmQsCistLSByZW1vdmVfdW51c2VkX3N1YnF1ZXJ5X291dHB1dHMo KSB3b3VsZCByZXBsYWNlIGl0IHdpdGggTlVMTCBpbgorLS0gdGhlIHN1YnF1ZXJ5IG91dHB1dCwg YW5kIHRoYXQgcmVwbGFjZW1lbnQgcHJvcGFnYXRlcyB0byB0aGUKKy0tIHNjYW4ncyB0YXJnZXRs aXN0IC0tIERFRklORSB3b3VsZCB0aGVuIGV2YWx1YXRlIHdpdGggTlVMTAorLS0gaW5wdXRzLiAg VGhlIHRhcmdldGxpc3QgaGFzIG5vIHdheSB0byBkaXN0aW5ndWlzaCAiZXhwb3NlZCB0bworLS0g dGhlIG91dGVyIHF1ZXJ5IiBmcm9tICJyZWZlcmVuY2VkIG9ubHkgYnkgREVGSU5FIiwgc28gdGhl CistLSBvcHRpbWl6YXRpb24gY2Fubm90IGJlIGFwcGxpZWQgc2VsZWN0aXZlbHkuICBUaGUgY29s dW1uIGd1YXJkCistLSBpbiBhbGxwYXRocy5jIGJsb2NrcyB0aGlzIHJlcGxhY2VtZW50IGZvciBh bnkgY29sdW1uIHJlZmVyZW5jZWQKKy0tIGJ5IGFuIFJQUiBERUZJTkUgY2xhdXNlLCBrZWVwaW5n IHRoZSBXaW5kb3dBZ2cgd2l0aCBERUZJTkUKKy0tIGFjdGl2ZSBpbiB0aGUgcGxhbi4KK0VYUExB SU4gKENPU1RTIE9GRikKK1NFTEVDVCBjb3VudCgqKSBGUk9NICgKKyAgICBTRUxFQ1QgdmFsLCBj b3VudCgqKSBPVkVSIHcgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkg aWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBS RVYodmFsKSkKKykgdDsKKworU0VMRUNUIGNvdW50KCopIEZST00gKAorICAgIFNFTEVDVCB2YWws IGNvdW50KCopIE9WRVIgdyBGUk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFTIChPUkRFUiBC WSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4g UFJFVih2YWwpKQorKSB0OworCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEE2LiBJbnZlcnNlIHRyYW5zaXRpb24gYnlw YXNzCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tIFZlcmlmeSB0aGF0IFJQUiB3aW5kb3dzIGRvIG5vdCB1c2UgdGhlIG1v dmluZyBhZ2dyZWdhdGUgKGludmVyc2UKKy0tIHRyYW5zaXRpb24pIG9wdGltaXphdGlvbi4gIE1v dmluZyBhZ2dyZWdhdGVzIG1haW50YWluIHN0YXRlIGJ5CistLSBhZGRpbmcgYXJyaXZpbmcgcm93 cyBhbmQgc3VidHJhY3RpbmcgbGVhdmluZyByb3dzLCBidXQgYW4gUlBSCistLSByZWR1Y2VkIGZy YW1lIGlzIG5vdCBhIHNsaWRpbmcgd2luZG93OyB0aGUgc2V0IG9mIHJvd3MgaW5jbHVkZWQgaW4K Ky0tIHRoZSBmcmFtZSBpcyBkZXRlcm1pbmVkIGJ5IHBhdHRlcm4gbWF0Y2hpbmcgYW5kIGNhbm5v dCBiZSBkZXJpdmVkCistLSBpbmNyZW1lbnRhbGx5IGZyb20gdGhlIHByZXZpb3VzIGZyYW1lLgor CistLSBzdW0oKSB3b3VsZCBub3JtYWxseSBiZSBlbGlnaWJsZSBmb3IgdGhlIG1vdmluZyBhZ2dy ZWdhdGUKKy0tIG9wdGltaXphdGlvbjsgdW5kZXIgUlBSIGl0IG11c3QgYmUgY29tcHV0ZWQgZnJv bSBzY3JhdGNoIG92ZXIgZWFjaAorLS0gcmVkdWNlZCBmcmFtZSwgYW5kIHRoZSByZXR1cm5lZCB2 YWx1ZXMgbXVzdCBtYXRjaCB0aGUgcGF0dGVybi4KKy0tIE5vdGU6IGludmVyc2UtdHJhbnNpdGlv biBzZWxlY3Rpb24gaXMgbm90IGV4cG9zZWQgaW4gdGhlIHBsYW4sIHNvCistLSB0aGVyZSBpcyBu byBkaXJlY3QgRVhQTEFJTiBhc3NlcnRpb24gZm9yIGl0LiAgVGhlIHN0cnVjdHVyYWwKKy0tIGd1 YXJhbnRlZSBpcyB0aGF0IFJQUiB1c2VzIGl0cyBvd24gbmF2aWdhdGlvbiBtYXJrLCBkaXN0aW5j dCBmcm9tCistLSB0aGUgbW92aW5nLWFnZ3JlZ2F0ZSBtYXJrLCBzbyB0aGUgaW52ZXJzZS10cmFu c2l0aW9uIHBhdGggaXMKKy0tIG5ldmVyIHJlYWNoZWQgb24gdGhlIFJQUiBzaWRlLiAgVGhpcyB0 ZXN0IHZlcmlmaWVzIHRoYXQKKy0tIHNlcGFyYXRpb24gaW5kaXJlY3RseTogaWYgaW52ZXJzZSB0 cmFuc2l0aW9uIGxlYWtlZCBpbnRvIHRoZSBSUFIKKy0tIHBhdGgsIHN0YXRlIHdvdWxkIG1peCBh Y3Jvc3MgbWF0Y2ggYm91bmRhcmllcyBhbmQgcGF0dGVybl9zdW0KKy0tIHdvdWxkIGRpdmVyZ2Ug ZnJvbSB0aGUgZXhwZWN0ZWQgb3V0cHV0LCBmYWlsaW5nIHRoZSByZWdyZXNzaW9uLgorU0VMRUNU IGlkLCB2YWwsCisgICAgc3VtKHZhbCkgT1ZFUiB3IEFTIHBhdHRlcm5fc3VtCitGUk9NIHJwcl9p bnRlZworV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJ TkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpCitPUkRFUiBCWSBpZDsKKworLS0gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBBNy4g Q29zdCBlc3RpbWF0aW9uIFJQUiBhd2FyZW5lc3MKKy0tID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gY29zdF93aW5kb3dhZ2co KSBtdXN0IGFjY291bnQgZm9yIERFRklORSBleHByZXNzaW9uIGV2YWx1YXRpb24gY29zdC4KKy0t IFZlcmlmeSBSUFIgV2luZG93QWdnIGNvc3QgPiBub24tUlBSIFdpbmRvd0FnZyBjb3N0LgorCitD UkVBVEUgRlVOQ1RJT04gZ2V0X3dpbmRvd2FnZ19jb3N0KHF1ZXJ5IHRleHQpIFJFVFVSTlMgbnVt ZXJpYyBBUyAkJAorREVDTEFSRQorICAgIHBsYW4ganNvbjsKKyAgICBjb3N0IG51bWVyaWM7CitC RUdJTgorICAgIEVYRUNVVEUgJ0VYUExBSU4gKEZPUk1BVCBKU09OKSAnIHx8IHF1ZXJ5IElOVE8g cGxhbjsKKyAgICBjb3N0IDo9IChwbGFuLT4wLT4nUGxhbictPj4nVG90YWwgQ29zdCcpOjpudW1l cmljOworICAgIFJFVFVSTiBjb3N0OworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworU0VM RUNUIGdldF93aW5kb3dhZ2dfY29zdCgKKyAgICAnU0VMRUNUIGNvdW50KCopIE9WRVIgdyBGUk9N IHJwcl9pbnRlZworICAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgICAgICBQQVRU RVJOIChBIEIrIEMrKSBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCksIEMgQVMgdmFsIDwgUFJF Vih2YWwpKScpCisgICAgPgorICAgIGdldF93aW5kb3dhZ2dfY29zdCgKKyAgICAnU0VMRUNUIGNv dW50KCopIE9WRVIgdyBGUk9NIHJwcl9pbnRlZworICAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkg aWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKScpCisg ICAgQVMgcnByX2Nvc3RfaXNfaGlnaGVyOworCitEUk9QIEZVTkNUSU9OIGdldF93aW5kb3dhZ2df Y29zdCh0ZXh0KTsKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLSBBOC4gU3VicXVlcnkgZmxhdHRlbmluZyBwcmV2ZW50 aW9uCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tIFZlcmlmeSB0aGF0IGEgc3VicXVlcnkgY29udGFpbmluZyBhbiBSUFIg d2luZG93IGlzIG5vdCBmbGF0dGVuZWQKKy0tIGludG8gdGhlIG91dGVyIHF1ZXJ5LiAgaXNfc2lt cGxlX3N1YnF1ZXJ5KCkgYWxyZWFkeSBibG9ja3MgcHVsbHVwCistLSBmb3Igc3VicXVlcmllcyB3 aXRoIHdpbmRvdyBmdW5jdGlvbnMgaW4gZ2VuZXJhbDsgdGhpcyB0ZXN0IGNvbmZpcm1zCistLSB0 aGUgcnVsZSBjb250aW51ZXMgdG8gYXBwbHkgdG8gUlBSIHdpbmRvd3MsIHNvIEVYUExBSU4gbXVz dCBzdGlsbAorLS0gc2hvdyBhIFN1YnF1ZXJ5IFNjYW4gYWJvdmUgdGhlIFJQUiBXaW5kb3dBZ2cu CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCAqIEZST00gKAorICAgIFNFTEVDVCBpZCwg dmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5E T1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERF RklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKykgc3ViCitXSEVSRSBjbnQgPiAwOworCistLSA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tIEE5LiBERUZJTkUgZXhwcmVzc2lvbiBub24tcHJvcGFnYXRpb24KKy0tID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0g VmVyaWZ5IHRoYXQgREVGSU5FIGV4cHJlc3Npb25zIGFyZSBub3QgcHJvcGFnYXRlZCBpbnRvIHRo ZQorLS0gdGFyZ2V0bGlzdCBvZiBhbnkgdXBwZXIgV2luZG93QWdnIG5vZGUuICBPbmx5IHRoZSBj b2x1bW4gcmVmZXJlbmNlcworLS0gY29uc3VtZWQgYnkgREVGSU5FIHNob3VsZCBiZSBwYXNzZWQg dXA7IHRoZSBmdWxsIERFRklORSBleHByZXNzaW9uCistLSBpcyBtZWFuaW5nZnVsIG9ubHkgaW5z aWRlIHRoZSBSUFIgV2luZG93QWdnIHRoYXQgb3ducyBpdC4KKy0tIEVYUExBSU4gVkVSQk9TRSBp cyB0aGVyZWZvcmUgZXhwZWN0ZWQgdG8gc2hvdyBhIGNsZWFuIHRhcmdldGxpc3Qgb24KKy0tIHRo ZSBvdXRlciBXaW5kb3dBZ2csIHdpdGggbm8gREVGSU5FLWRlcml2ZWQgZXhwcmVzc2lvbiBsZWFr aW5nIGluLgorLS0gTm90ZTogY29sdW1ucyByZWZlcmVuY2VkIGJ5IERFRklORSAoZS5nLiwgInZh bCIpIG1heSBhcHBlYXIgYXMKKy0tIHJlc2p1bmsgZW50cmllcyBpbiB1cHBlciBXaW5kb3dBZ2cg dGFyZ2V0bGlzdHMgLS0gdGhhdCBpcyBhCistLSBoYXJtbGVzcyBieXByb2R1Y3Qgb2YgdGhlIGNv bHVtbiBndWFyZCdzIGJyb2FkIHNjb3BlIGFuZCBkb2VzIG5vdAorLS0gYWZmZWN0IGNsaWVudCBv dXRwdXQuICBUaGUgY2xhaW0gaGVyZSBpcyBsaW1pdGVkIHRvIHRoZSBmdWxsCistLSBERUZJTkUg Ym9vbGVhbiBleHByZXNzaW9uLgorCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCitTRUxF Q1QKKyAgICBjb3VudCgqKSBPVkVSIHdfcnByIEFTIHJwcl9jbnQsCisgICAgY291bnQoKikgT1ZF UiB3X25vcm1hbCBBUyBub3JtYWxfY250CitGUk9NIHJwcl9pbnRlZworV0lORE9XCisgICAgd19y cHIgQVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAgICBERUZJ TkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpLAorICAgIHdfbm9ybWFsIEFTIChPUkRFUiBCWSBpZAor ICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcp OworCistLSBFeGVjdXRpbmcgdGhlIHNhbWUgcXVlcnkgc2hvd3MgdGhlIGNsaWVudCByZXN1bHQg aXMgbGltaXRlZCB0bworLS0gdGhlIHR3byBwcm9qZWN0ZWQgY29sdW1uczsgImlkIiBhbmQgInZh bCIgdGhhdCBhcHBlYXJlZCBpbiB0aGUKKy0tIHVwcGVyIFdpbmRvd0FnZyBPdXRwdXQgbGluZSBh cmUgcmVzanVuay1vbmx5IGFuZCBkbyBub3QgcmVhY2gKKy0tIHRoZSBjbGllbnQuCitTRUxFQ1QK KyAgICBjb3VudCgqKSBPVkVSIHdfcnByIEFTIHJwcl9jbnQsCisgICAgY291bnQoKikgT1ZFUiB3 X25vcm1hbCBBUyBub3JtYWxfY250CitGUk9NIHJwcl9pbnRlZworV0lORE9XCisgICAgd19ycHIg QVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAgICBERUZJTkUg QiBBUyB2YWwgPiBQUkVWKHZhbCkpLAorICAgIHdfbm9ybWFsIEFTIChPUkRFUiBCWSBpZAorICAg ICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCitP UkRFUiBCWSBycHJfY250IERFU0MsIG5vcm1hbF9jbnQgREVTQzsKKworLS0gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBBMTAu IFJQUiArIExJTUlUCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tIExJTUlUIG11c3Qgbm90IGludGVyZmVyZSB3aXRoIFJQ UiBwYXR0ZXJuIG1hdGNoaW5nLiAgVGhlIExpbWl0CistLSBub2RlIG11c3Qgc2l0IGFib3ZlIHRo ZSBXaW5kb3dBZ2cgc28gdGhhdCBwYXR0ZXJuIG1hdGNoaW5nIHJ1bnMKKy0tIG9uIHRoZSBmdWxs IHBhcnRpdGlvbiBmaXJzdDsgdGhlIHJlc3VsdCBpcyB0aGVuIGEgcHJlZml4IG9mIHRoZQorLS0g dW4tTElNSVRlZCBvdXRwdXQuICBQdXNoaW5nIExpbWl0IGJlbG93IHRoZSBXaW5kb3dBZ2cgd291 bGQKKy0tIHRydW5jYXRlIGlucHV0IGJlZm9yZSBtYXRjaGluZyBhbmQgc2lsZW50bHkgZHJvcCB2 YWxpZCBtYXRjaGVzLgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGlkLCB2YWwsIGNvdW50 KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX2ludGVnCitXSU5ET1cgdyBBUyAoT1JERVIgQlkg aWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKK0xJ TUlUIDU7CisKKy0tIFJlZmVyZW5jZTogdW4tTElNSVRlZCByZXN1bHQgYWdhaW5zdCB3aGljaCB0 aGUgTElNSVQgNSByZXN1bHQgaXMKKy0tIGNvbXBhcmVkLgorU0VMRUNUIGlkLCB2YWwsIGNvdW50 KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX2ludGVnCitXSU5ET1cgdyBBUyAoT1JERVIgQlkg aWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKK09S REVSIEJZIGlkOworCistLSBMSU1JVCA1IGNhc2U7IHRoZSBmaXJzdCBmaXZlIHJvd3MgbXVzdCBt YXRjaCB0aGUgcmVmZXJlbmNlIGFib3ZlLgorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIg dyBBUyBjbnQKK0ZST00gcnByX2ludGVnCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRU RVJOIChBIEIrKQorICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKK0xJTUlUIDU7CisK Ky0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0gQjEuIFJQUiArIENURQorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBWZXJpZnkgdGhhdCBhbiBSUFIg d2luZG93IGVtYmVkZGVkIGluc2lkZSBhIENURSBiZWhhdmVzIHRoZSBzYW1lIGFzCistLSBhIGRp cmVjdCBSUFIgcXVlcnk6CistLSAgICgxKSBBIHNpbmdsZS1yZWZlcmVuY2UgQ1RFIGlzIGlubGlu ZWQgYnkgdGhlIHBsYW5uZXIgYW5kIHlpZWxkcworLS0gICAgICAgcGVyLXJvdyByZXN1bHRzIGlk ZW50aWNhbCB0byB0aGUgZGlyZWN0IFJQUiBxdWVyeS4KKy0tICAgKDIpIEEgbXVsdGktcmVmZXJl bmNlIENURSBpcyBtYXRlcmlhbGl6ZWQgKENURSBTY2FuIGFwcGVhcnMgaW4KKy0tICAgICAgIHRo ZSBwbGFuKSBzbyBwYXR0ZXJuIG1hdGNoaW5nIHJ1bnMgb25jZSwgYW5kIGV2ZXJ5IHJlZmVyZW5j ZQorLS0gICAgICAgb2JzZXJ2ZXMgdGhlIHNhbWUgbWF0Y2ggcmVzdWx0cy4KKworLS0gQmFzZWxp bmU6IGRpcmVjdCBSUFIgcHJvZHVjZXMgdGhlIHBlci1yb3cgcmVmZXJlbmNlIG91dHB1dC4KK1NF TEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9pbnRlZworV0lO RE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQiBBUyB2 YWwgPiBQUkVWKHZhbCkpCitPUkRFUiBCWSBpZDsKKworLS0gU2luZ2xlLXJlZmVyZW5jZSBDVEU6 IHBsYW4gaGFzIG5vICJDVEUgcnByX3Jlc3VsdCIgc2NvcGUsIHNob3dpbmcKKy0tIHRoZSBDVEUg d2FzIGlubGluZWQgaW50byB0aGUgc3Vycm91bmRpbmcgcXVlcnkuCitFWFBMQUlOIChDT1NUUyBP RkYpCitXSVRIIHJwcl9yZXN1bHQgQVMgKAorICAgIFNFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBP VkVSIHcgQVMgY250CisgICAgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoT1JERVIg QlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+ IFBSRVYodmFsKSkKKykKK1NFTEVDVCBpZCwgdmFsLCBjbnQgRlJPTSBycHJfcmVzdWx0IE9SREVS IEJZIGlkOworCistLSBSZXN1bHQgbXVzdCBtYXRjaCB0aGUgYmFzZWxpbmUgcm93LWZvci1yb3cu CitXSVRIIHJwcl9yZXN1bHQgQVMgKAorICAgIFNFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVS IHcgQVMgY250CisgICAgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkg aWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBS RVYodmFsKSkKKykKK1NFTEVDVCBpZCwgdmFsLCBjbnQgRlJPTSBycHJfcmVzdWx0IE9SREVSIEJZ IGlkOworCistLSBNdWx0aS1yZWZlcmVuY2UgQ1RFIChzZWxmLWpvaW4pOiBwbGFuIGhhcyBhICJD VEUgcnByX3Jlc3VsdCIgc2NvcGUKKy0tIGFuZCBDVEUgU2NhbiBub2RlcyBvbiBib3RoIHNpZGVz LCBzaG93aW5nIHRoZSBDVEUgd2FzIG1hdGVyaWFsaXplZAorLS0gYW5kIHBhdHRlcm4gbWF0Y2hp bmcgcmFuIG9ubHkgb25jZS4KK0VYUExBSU4gKENPU1RTIE9GRikKK1dJVEggcnByX3Jlc3VsdCBB UyAoCisgICAgU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKKyAgICBGUk9N IHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVS TiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorKQorU0VMRUNU IHIxLmlkLCByMS5jbnQKK0ZST00gcnByX3Jlc3VsdCByMQorSk9JTiBycHJfcmVzdWx0IHIyIE9O IHIxLmlkID0gcjIuaWQgQU5EIHIxLmNudCA9IHIyLmNudAorV0hFUkUgcjEuY250ID4gMAorT1JE RVIgQlkgcjEuaWQ7CisKKy0tIFJlc3VsdDogYm90aCByZWZlcmVuY2VzIHNlZSB0aGUgc2FtZSBt YXRjaCBjb3VudHMsIHNvIHRoZSBzZWxmLWpvaW4KKy0tIHByZXNlcnZlcyBhbGwgbWF0Y2hlZCBy b3dzIGZyb20gdGhlIGJhc2VsaW5lLgorV0lUSCBycHJfcmVzdWx0IEFTICgKKyAgICBTRUxFQ1Qg aWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorICAgIEZST00gcnByX2ludGVnCisgICAg V0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAg ICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpCispCitTRUxFQ1QgcjEuaWQsIHIxLmNudAor RlJPTSBycHJfcmVzdWx0IHIxCitKT0lOIHJwcl9yZXN1bHQgcjIgT04gcjEuaWQgPSByMi5pZCBB TkQgcjEuY250ID0gcjIuY250CitXSEVSRSByMS5jbnQgPiAwCitPUkRFUiBCWSByMS5pZDsKKwor LS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLSBCMi4gUlBSICsgSk9JTgorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBWZXJpZnkgdGhhdCBhbiBSUFIg c3VicXVlcnkgY2FuIGJlIGpvaW5lZCB3aXRoIGFub3RoZXIgcmVsYXRpb24uCistLSBUd28gYXNw ZWN0cyBhcmUgY2hlY2tlZCBhZ2FpbnN0IGEgbm9uLVJQUiBiYXNlbGluZToKKy0tICAgKDEpIEZs YXR0ZW5pbmc6IGEgbm9uLVJQUiBzdWJxdWVyeSBpcyBwdWxsZWQgdXAgYnkgdGhlIHBsYW5uZXIK Ky0tICAgICAgIChubyBTdWJxdWVyeSBTY2FuIGluIHRoZSBwbGFuKTsgYW4gUlBSIHN1YnF1ZXJ5 IGlzIGtlcHQKKy0tICAgICAgIHVuLWZsYXR0ZW5lZCAoU3VicXVlcnkgU2NhbiBhYm92ZSBXaW5k b3dBZ2cpLgorLS0gICAoMikgSm9pbiBjb3JyZWN0bmVzczogdGhlIGpvaW4gYWxpZ25zIGVhY2gg UlBSIG1hdGNoIHJvdyB3aXRoCistLSAgICAgICB0aGUgZGltZW5zaW9uLXRhYmxlIHJvdyBvbiB0 aGUgc2FtZSBrZXkuCisKK0NSRUFURSBUQUJMRSBycHJfaW50ZWcyIChpZCBJTlQsIGxhYmVsIFRF WFQpOworSU5TRVJUIElOVE8gcnByX2ludGVnMiBWQUxVRVMKKyAgICAoMSwgJ2EnKSwgKDIsICdi JyksICgzLCAnYycpLCAoNCwgJ2QnKSwgKDUsICdlJyksCisgICAgKDYsICdmJyksICg3LCAnZycp LCAoOCwgJ2gnKSwgKDksICdpJyksICgxMCwgJ2onKTsKKworLS0gQmFzZWxpbmU6IGEgbm9uLVJQ UiBzdWJxdWVyeSBpcyBmbGF0dGVuZWQgYnkgdGhlIHBsYW5uZXIuICBObworLS0gU3VicXVlcnkg U2NhbiBub2RlIGFwcGVhcnM7IHRoZSBpbm5lciBTRUxFQ1QgaXMgbWVyZ2VkIGludG8gdGhlCist LSBvdXRlciBqb2luLgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIHIuaWQsIHIudmFsLCBq LmxhYmVsCitGUk9NIChTRUxFQ1QgaWQsIHZhbCBGUk9NIHJwcl9pbnRlZykgcgorSk9JTiBycHJf aW50ZWcyIGogT04gci5pZCA9IGouaWQKK09SREVSIEJZIHIuaWQ7CisKKy0tIFJQUiBzdWJxdWVy eSBKT0lOOiB0aGUgU3VicXVlcnkgU2NhbiBpcyBwcmVzZXJ2ZWQgYWJvdmUgdGhlCistLSBXaW5k b3dBZ2csIGNvbmZpcm1pbmcgdGhlIFJQUiBzdWJxdWVyeSBpcyBub3QgZmxhdHRlbmVkLgorRVhQ TEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIHIuaWQsIHIuY250LCBqLmxhYmVsCitGUk9NICgKKyAg ICBTRUxFQ1QgaWQsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKKyAgICBGUk9NIHJwcl9pbnRlZwor ICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAg ICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorKSByCitKT0lOIHJwcl9pbnRlZzIg aiBPTiByLmlkID0gai5pZAorV0hFUkUgci5jbnQgPiAwCitPUkRFUiBCWSByLmlkOworCistLSBS ZXN1bHQ6IG1hdGNoZWQgUlBSIHJvd3MgYWxpZ24gd2l0aCBkaW1lbnNpb24gcm93cyBvbiBpZCwg c2hvd2luZworLS0gdGhlIGpvaW4gY29ycmVjdGx5IHBhaXJzIHBlci1yb3cgbWF0Y2ggY291bnRz IHdpdGggdGhlaXIgbGFiZWxzLgorU0VMRUNUIHIuaWQsIHIuY250LCBqLmxhYmVsCitGUk9NICgK KyAgICBTRUxFQ1QgaWQsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKKyAgICBGUk9NIHJwcl9pbnRl ZworICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykK KyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorKSByCitKT0lOIHJwcl9pbnRl ZzIgaiBPTiByLmlkID0gai5pZAorV0hFUkUgci5jbnQgPiAwCitPUkRFUiBCWSByLmlkOworCist LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tIEIzLiBSUFIgKyBTZXQgb3BlcmF0aW9ucworLS0gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBWZXJpZnkgdGhh dCBSUFIgcmVzdWx0cyBjb21iaW5lIGNvcnJlY3RseSB3aXRoIG5vbi1SUFIgcmVzdWx0cworLS0g dW5kZXIgYSBVTklPTiBBTEwuICBUaGUgcGxhbiBtdXN0IHNob3cgYW4gQXBwZW5kIG5vZGUgd2l0 aCB0d28KKy0tIGluZGVwZW5kZW50IGNoaWxkIHBsYW5zOiB0aGUgUlBSIGJyYW5jaCB3aXRoIFBh dHRlcm4vREVGSU5FIGFjdGl2ZSwKKy0tIGFuZCB0aGUgbm9uLVJQUiBicmFuY2ggd2l0aCBhIHBs YWluIFdpbmRvd0FnZy4gIEVhY2ggY2hpbGQgc2NhbnMKKy0tIHRoZSBiYXNlIHJlbGF0aW9uIG9u IGl0cyBvd24gYW5kIGNvbnRyaWJ1dGVzIGl0cyByb3dzIHRvIHRoZQorLS0gdW5pb25lZCBvdXRw dXQuCisKKy0tIFBsYW46IEFwcGVuZCB3aXRoIHR3byBpbmRlcGVuZGVudCBjaGlsZHJlbi4gIFRo ZSBSUFIgYnJhbmNoIGhhcyBhCistLSBXaW5kb3dBZ2cgY2FycnlpbmcgUGF0dGVybi9OYXYgTWFy ayBMb29rYmFjazsgdGhlIG5vbi1SUFIgYnJhbmNoCistLSBoYXMgYSBwbGFpbiBXaW5kb3dBZ2cg d2l0aCBubyBwYXR0ZXJuIG1ldGFkYXRhLgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGlk LCBjbnQsICdycHInIEFTIHNvdXJjZSBGUk9NICgKKyAgICBTRUxFQ1QgaWQsIGNvdW50KCopIE9W RVIgdyBBUyBjbnQKKyAgICBGUk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFTIChPUkRFUiBC WSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4g UFJFVih2YWwpKQorKSB0IFdIRVJFIGNudCA+IDAKK1VOSU9OIEFMTAorU0VMRUNUIGlkLCBjb3Vu dCgqKSBPVkVSIChPUkRFUiBCWSBpZCkgQVMgY250LCAnbm9ybWFsJyBBUyBzb3VyY2UKK0ZST00g cnByX2ludGVnCitPUkRFUiBCWSBzb3VyY2UsIGlkOworCistLSBSZXN1bHQ6IHJvd3MgZnJvbSBi b3RoIGJyYW5jaGVzIGFyZSBwcmVzZW50IGluIHRoZSB1bmlvbmVkIG91dHB1dC4KKy0tIFRoZSBS UFIgYnJhbmNoIGVtaXRzIG9ubHkgbWF0Y2hlZCByb3dzIChjbnQgPiAwKSwgd2hpbGUgdGhlCist LSBub24tUlBSIGJyYW5jaCBlbWl0cyBhbGwgcm93cyB3aXRoIGl0cyBvd24gY291bnQgdmFsdWVz LgorU0VMRUNUIGlkLCBjbnQsICdycHInIEFTIHNvdXJjZSBGUk9NICgKKyAgICBTRUxFQ1QgaWQs IGNvdW50KCopIE9WRVIgdyBBUyBjbnQKKyAgICBGUk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3 IEFTIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5F IEIgQVMgdmFsID4gUFJFVih2YWwpKQorKSB0IFdIRVJFIGNudCA+IDAKK1VOSU9OIEFMTAorU0VM RUNUIGlkLCBjb3VudCgqKSBPVkVSIChPUkRFUiBCWSBpZCkgQVMgY250LCAnbm9ybWFsJyBBUyBz b3VyY2UKK0ZST00gcnByX2ludGVnCitPUkRFUiBCWSBzb3VyY2UsIGlkOworCistLSA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t IEI0LiBSUFIgKyBQcmVwYXJlZCBzdGF0ZW1lbnRzCistLSA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFZlcmlmeSB0aGF0IFJQ UiBxdWVyaWVzIHN1cnZpdmUgdGhlIHByZXBhcmVkLXN0YXRlbWVudCBwYXRoIGJ5CistLSBleGVy Y2lzaW5nIGJvdGggcGxhbmNhY2hlIG1vZGVzIHdpdGggYSBwYXJhbWV0ZXIgdGhhdCBmZWVkcyBp bnRvCistLSBSUFIncyBuYXZpZ2F0aW9uIG9mZnNldCAoUFJFVih2YWwsICQxKSkuICBUaGUgcGFy YW1ldGVyIHN1cmZhY2VzCistLSB0aGUgUlBSLXNwZWNpZmljIHBsYW5jYWNoZSBkaWZmZXJlbmNl OgorLS0gICAtIGN1c3RvbSBwbGFuOiAiTmF2IE1hcmsgTG9va2JhY2siIGlzIHJlc29sdmVkIHRv IHRoZSBsaXRlcmFsCistLSAgICAgcGFyYW1ldGVyIHZhbHVlIGF0IHBsYW4gdGltZSAoZS5nLiwg Ik5hdiBNYXJrIExvb2tiYWNrOiAxIikuCistLSAgIC0gZ2VuZXJpYyBwbGFuOiAiTmF2IE1hcmsg TG9va2JhY2siIGlzIGRlZmVycmVkIHRvIGV4ZWN1dGlvbiBhbmQKKy0tICAgICBhcHBlYXJzIGFz ICJOYXYgTWFyayBMb29rYmFjazogcnVudGltZSIgaW4gdGhlIHBsYW4uCistLSBUaGUgcmVzdWx0 IG11c3QgYmUgaWRlbnRpY2FsIHVuZGVyIGJvdGggbW9kZXMuCisKKy0tIFJlZ2lzdGVyIHRoZSBw cmVwYXJlZCBzdGF0ZW1lbnQ7IERFRklORSB1c2VzIFBSRVYodmFsLCAkMSkgc28gdGhlCistLSBw YXJhbWV0ZXIgcmVhY2hlcyBSUFIncyBuYXZpZ2F0aW9uIG1hY2hpbmVyeS4KK1BSRVBBUkUgcnBy X3ByZXYoaW50KSBBUworU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZS T00gcnByX2ludGVnCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQor ICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsLCAkMSkpCitPUkRFUiBCWSBpZDsKKworLS0g Q3VzdG9tIHBsYW46IE5hdiBNYXJrIExvb2tiYWNrIHJlc29sdmVkIHRvIHRoZSBsaXRlcmFsIDEu CitTRVQgcGxhbl9jYWNoZV9tb2RlID0gZm9yY2VfY3VzdG9tX3BsYW47CitFWFBMQUlOIChDT1NU UyBPRkYpIEVYRUNVVEUgcnByX3ByZXYoMSk7CitFWEVDVVRFIHJwcl9wcmV2KDEpOworCistLSBH ZW5lcmljIHBsYW46IE5hdiBNYXJrIExvb2tiYWNrIGRlZmVycmVkIHRvIGV4ZWN1dGlvbiwgc2hv d24gYXMKKy0tICJydW50aW1lIiBpbiB0aGUgcGxhbi4gIFJlc3VsdCBtdXN0IG1hdGNoIHRoZSBj dXN0b20tcGxhbiByZXN1bHQKKy0tIGV4YWN0bHkuCitTRVQgcGxhbl9jYWNoZV9tb2RlID0gZm9y Y2VfZ2VuZXJpY19wbGFuOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHJwcl9wcmV2KDEp OworRVhFQ1VURSBycHJfcHJldigxKTsKKworUkVTRVQgcGxhbl9jYWNoZV9tb2RlOworREVBTExP Q0FURSBycHJfcHJldjsKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CistLSBCNS4gUlBSICsgUGFydGl0aW9uZWQgdGFibGUK Ky0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0gVmVyaWZ5IHRoYXQgUlBSIHBhdHRlcm4gbWF0Y2hpbmcgd29ya3MgY29ycmVj dGx5IHdoZW4gdGhlIHNvdXJjZQorLS0gcmVsYXRpb24gaXMgcGFydGl0aW9uZWQuICBUaGUgcGxh bm5lciBtdXN0IGdhdGhlciByb3dzIGZyb20gZXZlcnkKKy0tIHBhcnRpdGlvbiBpbnRvIGEgc2lu Z2xlIG9yZGVyZWQgc3RyZWFtIGJlZm9yZSBSUFIgY2FuIHNlZSB0aGVtLAorLS0gYmVjYXVzZSBw YXR0ZXJuIG1hdGNoaW5nIGlzIHNlcXVlbnRpYWwgYWNyb3NzIHRoZSBlbnRpcmUKKy0tIHBhcnRp dGlvbi1ieSBncm91cCBhbmQgY2Fubm90IGJlIHBlcmZvcm1lZCBpbmRlcGVuZGVudGx5IG9uIGVh Y2gKKy0tIHRhYmxlIHBhcnRpdGlvbi4KKworQ1JFQVRFIFRBQkxFIHJwcl9wYXJ0IChpZCBJTlQs IHZhbCBJTlQpIFBBUlRJVElPTiBCWSBSQU5HRSAoaWQpOworQ1JFQVRFIFRBQkxFIHJwcl9wYXJ0 XzEgUEFSVElUSU9OIE9GIHJwcl9wYXJ0IEZPUiBWQUxVRVMgRlJPTSAoMSkgVE8gKDYpOworQ1JF QVRFIFRBQkxFIHJwcl9wYXJ0XzIgUEFSVElUSU9OIE9GIHJwcl9wYXJ0IEZPUiBWQUxVRVMgRlJP TSAoNikgVE8gKDExKTsKK0lOU0VSVCBJTlRPIHJwcl9wYXJ0IFNFTEVDVCBpZCwgdmFsIEZST00g cnByX2ludGVnOworCistLSBQbGFuOiBwYXJ0aXRpb24gc2NhbnMgYXJlIGNvbWJpbmVkIHdpdGgg QXBwZW5kIChvciBNZXJnZSBBcHBlbmQpLAorLS0gc29ydGVkIGludG8gYSBzaW5nbGUgb3JkZXJl ZCBzdHJlYW0sIGFuZCBmZWQgaW50byBvbmUgV2luZG93QWdnCistLSB0aGF0IHBlcmZvcm1zIFJQ UiBwYXR0ZXJuIG1hdGNoaW5nIGFjcm9zcyB0aGUgY29tYmluZWQgc3RyZWFtLgorRVhQTEFJTiAo Q09TVFMgT0ZGKQorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00g cnByX3BhcnQKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAg REVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorT1JERVIgQlkgaWQ7CisKKy0tIEJhc2VsaW5l OiB0aGUgc2FtZSBxdWVyeSBhZ2FpbnN0IHRoZSBub24tcGFydGl0aW9uZWQgcnByX2ludGVnCist LSBwcm9kdWNlcyB0aGUgcGVyLXJvdyByZWZlcmVuY2Ugb3V0cHV0LgorU0VMRUNUIGlkLCB2YWws IGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX2ludGVnCitXSU5ET1cgdyBBUyAoT1JE RVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFs KSkKK09SREVSIEJZIGlkOworCistLSBSZXN1bHQgYWdhaW5zdCB0aGUgcGFydGl0aW9uZWQgdGFi bGUgbXVzdCBtYXRjaCB0aGUgYmFzZWxpbmUKKy0tIHJvdy1mb3Itcm93LgorU0VMRUNUIGlkLCB2 YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX3BhcnQKK1dJTkRPVyB3IEFTIChP UkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2 YWwpKQorT1JERVIgQlkgaWQ7CisKK0RST1AgVEFCTEUgcnByX3BhcnQ7CisKKy0tID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0g QjYuIFJQUiArIExBVEVSQUwKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gUlBSIGluc2lkZSBhIExBVEVSQUwgc3VicXVl cnkuICBRdWFsaWZpZWQgY29sdW1uIHJlZmVyZW5jZXMgZnJvbQorLS0gdGhlIG91dGVyIHF1ZXJ5 IGFyZSBub3QgeWV0IHN1cHBvcnRlZCBpbiBERUZJTkUsIHNvIHRoaXMgdGVzdHMKKy0tIHRoZSBi YXNpYyBjYXNlIHdoZXJlIExBVEVSQUwgcHJvdmlkZXMgdGhlIGNvcnJlbGF0aW9uIGZpbHRlcgor LS0gKFdIRVJFIGlkIDw9IG8uaWQpIGFuZCBERUZJTkUgdXNlcyBvbmx5IGxvY2FsIGNvbHVtbnMu ICBUaGUgcGxhbgorLS0gbXVzdCBzaG93IGEgTmVzdGVkIExvb3AgZHJpdmluZyB0aGUgb3V0ZXIg cmVsYXRpb24gaW50byB0aGUgaW5uZXIKKy0tIHN1YnF1ZXJ5IHNjYW4sIHdpdGggdGhlIFJQUiBX aW5kb3dBZ2cgcmUtZXhlY3V0ZWQgZm9yIGVhY2ggb3V0ZXIKKy0tIHJvdyBhbmQgdGhlIGNvcnJl bGF0aW9uIHN1cmZhY2luZyBhcyBhIHNjYW4tbGV2ZWwgRmlsdGVyIG9uCistLSAiaWQgPD0gby5p ZCIuCisKKy0tIFBsYW46IE5lc3RlZCBMb29wIHdpdGggdGhlIFJQUiBXaW5kb3dBZ2cgaW4gdGhl IGlubmVyIGxlZywgZHJpdmVuCistLSBieSB0aGUgZmlsdGVyZWQgb3V0ZXIgcm93cyAoby5pZCBJ TiAoNSwgMTApKS4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBvLmlkIEFTIG91dGVyX2lk LCByLmlkLCByLmNudAorRlJPTSBycHJfaW50ZWcgbywKK0xBVEVSQUwgKAorICAgIFNFTEVDVCBp ZCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorICAgIEZST00gcnByX2ludGVnCisgICAgV0hFUkUg aWQgPD0gby5pZAorICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVS TiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorKSByCitXSEVS RSByLmNudCA+IDAgQU5EIG8uaWQgSU4gKDUsIDEwKQorT1JERVIgQlkgby5pZCwgci5pZDsKKwor LS0gUmVzdWx0OiBmb3IgZWFjaCBvZiB0aGUgdHdvIG91dGVyIGlkcyAoNSBhbmQgMTApLCB0aGUg TEFURVJBTAorLS0gc3VicXVlcnkgcHJvZHVjZXMgUlBSIG1hdGNoIGNvdW50cyBvdmVyIHRoZSBy ZXN0cmljdGVkIGlucHV0LgorU0VMRUNUIG8uaWQgQVMgb3V0ZXJfaWQsIHIuaWQsIHIuY250CitG Uk9NIHJwcl9pbnRlZyBvLAorTEFURVJBTCAoCisgICAgU0VMRUNUIGlkLCBjb3VudCgqKSBPVkVS IHcgQVMgY250CisgICAgRlJPTSBycHJfaW50ZWcKKyAgICBXSEVSRSBpZCA8PSBvLmlkCisgICAg V0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAg ICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpCispIHIKK1dIRVJFIHIuY250ID4gMCBBTkQg by5pZCBJTiAoNSwgMTApCitPUkRFUiBCWSBvLmlkLCByLmlkOworCistLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEI3LiBS UFIgKyBSZWN1cnNpdmUgQ1RFCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFZlcmlmeSB0aGF0IGFuIFJQUiB3aW5kb3cg Y2FuIGFwcGVhciBpbnNpZGUgdGhlIG5vbi1yZWN1cnNpdmUKKy0tIChiYXNlKSBsZWcgb2YgYSBy ZWN1cnNpdmUgQ1RFLiAgVGhlIHBsYW4gbXVzdCBzaG93IHRoZSBSUFIKKy0tIFdpbmRvd0FnZyBz aXR0aW5nIHVuZGVyIHRoZSBSZWN1cnNpdmUgVW5pb24gYXMgdGhlIGJhc2UtbGVnCistLSBjaGls ZCwgd2l0aCB0aGUgV29ya1RhYmxlIFNjYW4gZmVlZGluZyB0aGUgcmVjdXJzaXZlIGxlZyBhYm92 ZQorLS0gaXQuICBUaGlzIGNvbmZpcm1zIHRoYXQgUlBSIG91dHB1dCBjYW4gc2VlZCBhIHJlY3Vy c2l2ZSBDVEUKKy0tICh3aW5kb3cgZnVuY3Rpb25zIGNhbm5vdCBhcHBlYXIgaW4gdGhlIHJlY3Vy c2l2ZSBsZWcgaXRzZWxmLCBhCistLSBQb3N0Z3JlU1FMIHJlc3RyaWN0aW9uLCBzbyB0aGlzIGlz IHRoZSBuYXR1cmFsIHBsYWNlIHRvIGV4ZXJjaXNlCistLSAiUlBSIHVuZGVyIFJlY3Vyc2l2ZSBV bmlvbiIpLgorLS0KKy0tIFhYWDogV2hldGhlciB0aGlzIGNhc2UgZmFsbHMgdW5kZXIgdGhlIElT Ty9JRUMgOTA3NS0yIDQuMTguNSAvCistLSA2LjE3LjUgcHJvaGliaXRpb24gaXMgbm90IHNvbWV0 aGluZyBJIGNhbiBqdWRnZS4gIElmIHRoaXMgY2FzZQorLS0gaXMgbm90IHByb2hpYml0ZWQsIHRo ZSBvcGVuIHF1ZXN0aW9uIGlzIHdoZXRoZXIgYSBxdWVyeSB0aGF0CistLSBkb2VzIHRyaWdnZXIg dGhlIHByb2hpYml0aW9uIGNhbiBiZSBjb25zdHJ1Y3RlZCBhdCBhbGwuCistLSBXaGV0aGVyIHRv IHByb2hpYml0IHRoaXMgY2FzZSBpcyBsZWZ0IHRvIHRoZSBjb21tdW5pdHkuCisKKy0tIFBsYW46 IFJlY3Vyc2l2ZSBVbmlvbiB3aXRoIHRoZSBSUFIgV2luZG93QWdnIG9uIHRoZSBiYXNlIGxlZyBh bmQKKy0tIHRoZSBXb3JrVGFibGUgU2NhbiBvbiB0aGUgcmVjdXJzaXZlIGxlZy4KK0VYUExBSU4g KENPU1RTIE9GRikKK1dJVEggUkVDVVJTSVZFIHNlcSBBUyAoCisgICAgU0VMRUNUIGlkLCB2YWws IGNvdW50KCopIE9WRVIgdyBBUyBjbnQKKyAgICBGUk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3 IEFTIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5F IEIgQVMgdmFsID4gUFJFVih2YWwpKQorICAgIFVOSU9OIEFMTAorICAgIFNFTEVDVCBpZCArIDEw MCwgdmFsLCBjbnQgRlJPTSBzZXEgV0hFUkUgaWQgPCAzCispCitTRUxFQ1QgaWQsIHZhbCwgY250 IEZST00gc2VxIE9SREVSIEJZIGlkOworCistLSBSZXN1bHQ6IHRoZSBiYXNlIGxlZyBjb250cmli dXRlcyB0aGUgUlBSIG1hdGNoIGNvdW50czsgdGhlCistLSByZWN1cnNpdmUgbGVnIHByb3BhZ2F0 ZXMgdGhvc2UgY291bnRzIHdpdGggc2hpZnRlZCBpZHMuCitXSVRIIFJFQ1VSU0lWRSBzZXEgQVMg KAorICAgIFNFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBy cHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4g KEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKyAgICBVTklPTiBB TEwKKyAgICBTRUxFQ1QgaWQgKyAxMDAsIHZhbCwgY250IEZST00gc2VxIFdIRVJFIGlkIDwgMwor KQorU0VMRUNUIGlkLCB2YWwsIGNudCBGUk9NIHNlcSBPUkRFUiBCWSBpZDsKKworLS0gPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LSBCOC4gUlBSICsgSW5jcmVtZW50YWwgc29ydAorLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBWZXJpZnkgdGhhdCBSUFIg cGF0dGVybiBtYXRjaGluZyB3b3JrcyBjb3JyZWN0bHkgd2hlbiB0aGUgaW5wdXQKKy0tIHRvIFdp bmRvd0FnZyBhcnJpdmVzIHZpYSBhbiBpbmNyZW1lbnRhbCBzb3J0LiAgVGhlIGluZGV4IG9uIChp ZCkKKy0tIHByb3ZpZGVzIHByZXNvcnRlZCBpbnB1dCBmb3IgdGhlIGZpcnN0IE9SREVSIEJZIGtl eSwgc28KKy0tICJPUkRFUiBCWSBpZCwgdmFsIiBsZXRzIHRoZSBwbGFubmVyIHVzZSBJbmNyZW1l bnRhbCBTb3J0IHRvIG9yZGVyCistLSBvbmx5IG9uIHRoZSBzZWNvbmQga2V5LiAgVGhlIHBsYW4g bXVzdCBzaG93IEluY3JlbWVudGFsIFNvcnQKKy0tIGJlbG93IHRoZSBSUFIgV2luZG93QWdnLCBh bmQgUlBSIG11c3QgcHJvZHVjZSB0aGUgc2FtZSBwZXItcm93CistLSBtYXRjaCBjb3VudHMgYXMg aXQgd291bGQgd2l0aCBhIHBsYWluIFNvcnQuCisKK0NSRUFURSBJTkRFWCBycHJfaW50ZWdfaWRf aWR4IE9OIHJwcl9pbnRlZyAoaWQpOworU0VUIGVuYWJsZV9zZXFzY2FuID0gb2ZmOworCistLSBQ bGFuOiBSUFIgV2luZG93QWdnIGFib3ZlIGFuIEluY3JlbWVudGFsIFNvcnQgYWJvdmUgYW4gSW5k ZXggU2Nhbi4KKy0tIFRoZSBJbmNyZW1lbnRhbCBTb3J0IGRlY2xhcmVzICJQcmVzb3J0ZWQgS2V5 OiBpZCIgYW5kIHNvcnRzIG9ubHkKKy0tIG9uIHZhbCB3aXRoaW4gZWFjaCBpZCBncm91cC4KK0VY UExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250 CitGUk9NIHJwcl9pbnRlZworV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkLCB2YWwKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJO IChBIEIrKQorICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSk7CisKKy0tIFJlc3VsdDog UlBSIG92ZXIgdGhlIGluY3JlbWVudGFsbHkgc29ydGVkIHN0cmVhbSBwcm9kdWNlcyBtYXRjaAor LS0gY291bnRzIHBlciByb3cuCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNu dAorRlJPTSBycHJfaW50ZWcKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCwgdmFsCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVS TiAoQSBCKykKKyAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpCitPUkRFUiBCWSBpZCwg dmFsOworCitSRVNFVCBlbmFibGVfc2Vxc2NhbjsKK0RST1AgSU5ERVggcnByX2ludGVnX2lkX2lk eDsKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CistLSBCOS4gUlBSICsgVm9sYXRpbGUgZnVuY3Rpb24gaW4gREVGSU5FCist LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tIFJlY29yZHMgdGhlIGN1cnJlbnQgYmVoYXZpb3VyOiBERUZJTkUgdG9kYXkgYWNj ZXB0cyB2b2xhdGlsZQorLS0gZnVuY3Rpb25zIHN1Y2ggYXMgcmFuZG9tKCkgYW5kIHRoZSBxdWVy eSBydW5zIHRvIGNvbXBsZXRpb24uCistLSBUbyBrZWVwIHRoZSBleHBlY3RlZCBvdXRwdXQgZGV0 ZXJtaW5pc3RpYyB0aGUgcHJlZGljYXRlIHVzZXMKKy0tICJyYW5kb20oKSA+PSAwLjAiLCB3aGlj aCBpcyBzdHJ1Y3R1cmFsbHkgZXF1aXZhbGVudCB0byBUUlVFIGFuZAorLS0gdGhlcmVmb3JlIGRv ZXMgbm90IHBlcnR1cmIgdGhlIG1hdGNoIHJlc3VsdC4gIFRoZSBpbnRlcmVzdGluZworLS0gcHJv cGVydHkgaXMgdGhhdCB2b2xhdGlsZSBpbnZvY2F0aW9uIGRvZXMgbm90IGNyYXNoIG9yIHNob3J0 LQorLS0gY2lyY3VpdCBwYXR0ZXJuIG1hdGNoaW5nLgorLS0KKy0tIFhYWDogdm9sYXRpbGUgZnVu Y3Rpb25zIGluIERFRklORSBhcmUgc2xhdGVkIHRvIGJlIHJlamVjdGVkIGF0CistLSBwYXJzZSB0 aW1lLiAgVW5kZXIgUlBSJ3MgTkZBIGVuZ2luZSB0aGUgc2FtZSByb3cncyBERUZJTkUKKy0tIHBy ZWRpY2F0ZSBtYXkgYmUgZXZhbHVhdGVkIG11bHRpcGxlIHRpbWVzIChiYWNrdHJhY2tpbmcsCist LSBQUkVWL05FWFQgbmF2aWdhdGlvbiksIHNvIGEgdHJ1bHkgdm9sYXRpbGUgcmVzdWx0IHdvdWxk IG1ha2UKKy0tIHBhdHRlcm4gbWF0Y2hpbmcgbm9uLWRldGVybWluaXN0aWMuICBXaGVuIHRoZSBw cm9oaWJpdGlvbiBsYW5kcywKKy0tIHRoaXMgdGVzdCBtdXN0IGJlIHJlcGxhY2VkIHdpdGggYW4g ZXJyb3ItY2FzZSB0ZXN0IHRoYXQgZXhwZWN0cworLS0gcmFuZG9tKCkgaW4gREVGSU5FIHRvIGJl IHJlamVjdGVkLgorCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJP TSBycHJfaW50ZWcKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisg ICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpIEFORCByYW5kb20oKSA+PSAwLjApCitPUkRF UiBCWSBpZDsKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CistLSBCMTAuIFJQUiArIENvcnJlbGF0ZWQgc3VicXVlcnkgaW4g V0hFUkUKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0gVmVyaWZ5IHRoYXQgYW4gUlBSIHdpbmRvdyBwbGFjZWQgaW5zaWRl IGEgY29ycmVsYXRlZCBzY2FsYXIKKy0tIHN1YnF1ZXJ5IGlzIGV4ZWN1dGVkIG9uY2UgcGVyIG91 dGVyIHJvdy4gIERFRklORSBzdGlsbCByZWZlcmVuY2VzCistLSBvbmx5IGxvY2FsIGNvbHVtbnMg KHF1YWxpZmllZCByZWZzIGZyb20gdGhlIG91dGVyIHF1ZXJ5IGFyZSBub3QKKy0tIHN1cHBvcnRl ZCBpbiBERUZJTkUpOyB0aGUgY29ycmVsYXRpb24gbGl2ZXMgaW4gdGhlIHN1YnF1ZXJ5J3MKKy0t IFdIRVJFIGNsYXVzZSBhcyAiaS5pZCA8PSBvLmlkIi4gIFRoZSBwbGFuIG11c3Qgc2hvdyBhIFN1 YlBsYW4KKy0tIGF0dGFjaGVkIHRvIHRoZSBvdXRlciBzY2FuLCB3aXRoIHRoZSBSUFIgV2luZG93 QWdnIGRyaXZlbiBieSBhCistLSBwZXItcm93IHNjYW4gZmlsdGVyIGNhcnJ5aW5nIHRoZSBjb3Jy ZWxhdGlvbiBwcmVkaWNhdGUuCisKKy0tIFBsYW46IFN1YlBsYW4gYXR0YWNoZWQgdG8gdGhlIG91 dGVyIFNlcSBTY2FuOyB0aGUgaW5uZXIgc2NhbgorLS0gY2FycmllcyAiRmlsdGVyOiAoaWQgPD0g by5pZCkiLCBjb25maXJtaW5nIHRoZSBjb3JyZWxhdGlvbiBpcworLS0gZXZhbHVhdGVkIHBlciBv dXRlciByb3cuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1Qgby5pZCwgby52YWwsCisgICAg KFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKKyAgICAgRlJPTSBycHJfaW50ZWcgaQorICAgICBXSEVS RSBpLmlkIDw9IG8uaWQKKyAgICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAg IFBBVFRFUk4gKEEgQispCisgICAgICAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpCisg ICAgIE9SREVSIEJZIGlkCisgICAgIExJTUlUIDEpIEFTIGZpcnN0X2NudAorRlJPTSBycHJfaW50 ZWcgbworT1JERVIgQlkgby5pZDsKKworLS0gUmVzdWx0OiBlYWNoIG91dGVyIHJvdyByZWNlaXZl cyB0aGUgZmlyc3RfY250IGZyb20gaXRzIG93bgorLS0gY29ycmVsYXRlZCBSUFIgc3VicXVlcnku CitTRUxFQ1Qgby5pZCwgby52YWwsCisgICAgKFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKKyAgICAg RlJPTSBycHJfaW50ZWcgaQorICAgICBXSEVSRSBpLmlkIDw9IG8uaWQKKyAgICAgV0lORE9XIHcg QVMgKE9SREVSIEJZIGlkCisgICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgICBERUZJ TkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpCisgICAgIE9SREVSIEJZIGlkCisgICAgIExJTUlUIDEp IEFTIGZpcnN0X2NudAorRlJPTSBycHJfaW50ZWcgbworT1JERVIgQlkgby5pZDsKKworLS0gQ2xl YW51cAorRFJPUCBUQUJMRSBycHJfaW50ZWc7CitEUk9QIFRBQkxFIHJwcl9pbnRlZzI7CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbCBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Jwcl9uZmEuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li4xZDI3ZTBkYzA5ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jw cl9uZmEuc3FsCkBAIC0wLDAgKzEsMzQ0NiBAQAorLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBSUFIgTkZBIFRlc3RzCist LSBUZXN0cyBmb3IgUm93IFBhdHRlcm4gUmVjb2duaXRpb24gTkZBIFJ1bnRpbWUgRXhlY3V0aW9u CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tCistLSBUaGlzIHRlc3Qgc3VpdGUgdmFsaWRhdGVzIHRoZSBORkEgKE5vbi1k ZXRlcm1pbmlzdGljIEZpbml0ZQorLS0gQXV0b21hdG9uKSBydW50aW1lIGV4ZWN1dGlvbiBlbmdp bmUgaW4gbm9kZVdpbmRvd0FnZy5jLAorLS0gZm9jdXNpbmcgb24gdXBkYXRlX3JlZHVjZWRfZnJh bWUgYW5kIHJlbGF0ZWQgZnVuY3Rpb25zLgorLS0KKy0tIFRlc3QgU3RyYXRlZ3k6CistLSAgIERp YWdvbmFsIHBhdHRlcm4gc3R5bGUgdXNpbmcgQVJSQVkgZmxhZ3MgdG8gZXhwbGljaXRseQorLS0g ICBjb250cm9sIHdoaWNoIHBhdHRlcm4gdmFyaWFibGVzIG1hdGNoIGF0IGVhY2ggcm93LgorLS0K Ky0tIFRlc3QgQ292ZXJhZ2U6CistLSAgIEJhc2ljIE5GQSBGbG93IChtYXRjaC0+YWJzb3JiLT5h ZHZhbmNlKQorLS0gICBBYnNvcnB0aW9uIE9wdGltaXphdGlvbgorLS0gICBDb250ZXh0IExpZmVj eWNsZSBNYW5hZ2VtZW50CistLSAgIEFkdmFuY2UgUGhhc2UgKEVwc2lsb24gVHJhbnNpdGlvbnMp CistLSAgIE1hdGNoIFBoYXNlIChWYXJpYWJsZSBNYXRjaGluZykKKy0tICAgRnJhbWUgQm91bmRh cnkgSGFuZGxpbmcKKy0tICAgU3RhdGUgTWFuYWdlbWVudCAoRGVkdXBsaWNhdGlvbikKKy0tICAg U3RhdGlzdGljcyBhbmQgRGlhZ25vc3RpY3MKKy0tICAgUXVhbnRpZmllciBSdW50aW1lIEJlaGF2 aW9yCistLSAgIFBhdGhvbG9naWNhbCBQYXR0ZXJuIFByb3RlY3Rpb24KKy0tICAgQWx0ZXJuYXRp b24gUnVudGltZSBCZWhhdmlvcgorLS0gICBEZWVwIE5lc3RlZCBHcm91cHMKKy0tICAgU0tJUCBP cHRpb25zIChSdW50aW1lKQorLS0gICBJTklUSUFMIE1vZGUgKFJ1bnRpbWUpCistLSAgIEZyYW1l IEJvdW5kYXJ5IFZhcmlhdGlvbnMKKy0tICAgU3BlY2lhbCBQYXJ0aXRpb24gQ2FzZXMKKy0tICAg REVGSU5FIFNwZWNpYWwgQ2FzZXMKKy0tICAgQWJzb3JwdGlvbiBEeW5hbWljIEZsYWdzCistLSAg IFplcm8tQ29uc3VtcHRpb24gQ3ljbGUgRGV0ZWN0aW9uCistLQorLS0gUmVzcG9uc2liaWxpdHk6 CistLSAgIC0gTkZBIHJ1bnRpbWUgZXhlY3V0aW9uIHBhdGhzCistLSAgIC0gQ29udGV4dC9TdGF0 ZSBsaWZlY3ljbGUgbWFuYWdlbWVudAorLS0gICAtIFJ1bnRpbWUgYm91bmRhcnkgY29uZGl0aW9u cyBhbmQgcHJvdGVjdGlvbnMKKy0tCistLSBOT1QgdGVzdGVkIGhlcmUgKGNvdmVyZWQgaW4gb3Ro ZXIgZmlsZXMpOgorLS0gICAtIFBhdHRlcm4gcGFyc2luZy9vcHRpbWl6YXRpb24gKHJwcl9iYXNl LnNxbCkKKy0tICAgLSBFWFBMQUlOIG91dHB1dCAocnByX2V4cGxhaW4uc3FsKQorLS0gICAtIFBS RVYvTkVYVCBzZW1hbnRpY3MgKHJwci5zcWwpCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLS0gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBCYXNpYyBO RkEgRmxvdworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CisKKy0tIFNpbXBsZSBzZXF1ZW50aWFsIHBhdHRlcm4KK1dJVEggdGVz dF9zZXF1ZW50aWFsIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEs IEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0InXSksCisgICAgICAgICgzLCBBUlJB WVsnQyddKSwKKyAgICAgICAgKDQsIEFSUkFZWydEJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ18n XSkgIC0tIE5vIG1hdGNoCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxh Z3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAg ICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3Rfc2VxdWVudGlh bAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBO RVhUIFJPVworICAgIFBBVFRFUk4gKEEgQiBDIEQpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMg J0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAorICAgICAg ICBDIEFTICdDJyA9IEFOWShmbGFncyksCisgICAgICAgIEQgQVMgJ0QnID0gQU5ZKGZsYWdzKQor KTsKKworLS0gUXVhbnRpZmllZCBwYXR0ZXJuIChBKyBCKyBDKykKK1dJVEggdGVzdF9xdWFudGlm aWVkIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydB J10pLAorICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwK KyAgICAgICAgKDQsIEFSUkFZWydCJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ0InXSksCisgICAg ICAgICg2LCBBUlJBWVsnQyddKSwKKyAgICAgICAgKDcsIEFSUkFZWydDJ10pLAorICAgICAgICAo OCwgQVJSQVlbJ18nXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFn cywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAg IGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9xdWFudGlmaWVk CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5F WFQgUk9XCisgICAgUEFUVEVSTiAoQSsgQisgQyspCisgICAgREVGSU5FCisgICAgICAgIEEgQVMg J0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAorICAgICAg ICBDIEFTICdDJyA9IEFOWShmbGFncykKKyk7CisKKy0tIE9wdGlvbmFsIHBhdHRlcm4gKEEgQj8g QykKK1dJVEggdGVzdF9vcHRpb25hbCBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisg ICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydDJ10pLCAgLS0gQiBz a2lwcGVkCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQsIEFSUkFZWydCJ10p LAorICAgICAgICAoNSwgQVJSQVlbJ0MnXSksICAtLSBCIG1hdGNoZWQKKyAgICAgICAgKDYsIEFS UkFZWydfJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisg ICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0 X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3Rfb3B0aW9uYWwKK1dJTkRP VyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cK KyAgICBQQVRURVJOIChBIEI/IEMpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5Z KGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAorICAgICAgICBDIEFTICdD JyA9IEFOWShmbGFncykKKyk7CisKKy0tIEFsdGVybmF0aW9uIHBhdHRlcm4gKEEgKEJ8QykgRCkK K1dJVEggdGVzdF9hbHRlcm5hdGlvbiBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisg ICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydCJ10pLCAgLS0gRmly c3QgYnJhbmNoCisgICAgICAgICgzLCBBUlJBWVsnRCddKSwKKyAgICAgICAgKDQsIEFSUkFZWydB J10pLAorICAgICAgICAoNSwgQVJSQVlbJ0MnXSksICAtLSBTZWNvbmQgYnJhbmNoCisgICAgICAg ICg2LCBBUlJBWVsnRCddKSwKKyAgICAgICAgKDcsIEFSUkFZWydfJ10pCisgICAgKSBBUyB0KGlk LCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9W RVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0 Y2hfZW5kCitGUk9NIHRlc3RfYWx0ZXJuYXRpb24KK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBC WSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBIChCIHwg QykgRCkKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAg ICBCIEFTICdCJyA9IEFOWShmbGFncyksCisgICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKSwK KyAgICAgICAgRCBBUyAnRCcgPSBBTlkoZmxhZ3MpCispOworCistLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEFic29ycHRp b24gT3B0aW1pemF0aW9uCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKworLS0gQWJzb3JiYWJsZSBwYXR0ZXJuIChBKykKK1dJ VEggdGVzdF9hYnNvcmJhYmxlIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAg ICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgz LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQsIEFSUkFZWydBJ10pLAorICAgICAgICAoNSwgQVJS QVlbJ18nXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAg ICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3Rf dmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9hYnNvcmJhYmxlCitXSU5E T1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9X CisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZs YWdzKQorKTsKKworLS0gTWl4ZWQgYWJzb3JiYWJsZS9ub24tYWJzb3JiYWJsZSAoKEErKSB8IEIp CitXSVRIIHRlc3RfbWl4ZWRfYWJzb3JwdGlvbiBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFM VUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydBJ10pLAor ICAgICAgICAoMywgQVJSQVlbJ0EnXSksCisgICAgICAgICg0LCBBUlJBWVsnQiddKSwKKyAgICAg ICAgKDUsIEFSUkFZWydfJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwg ZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAg ICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfbWl4ZWRf YWJzb3JwdGlvbgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0gg U0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKChBKykgfCBCKQorICAgIERFRklORQorICAg ICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdz KQorKTsKKworLS0gU3RhdGUgY292ZXJhZ2UgKHNhbWUgZWxlbUlkeCwgZGlmZmVyZW50IGNvdW50 KQorV0lUSCB0ZXN0X3N0YXRlX2NvdmVyYWdlIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxV RVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCisg ICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQsIEFSUkFZWydCJ10pLAorICAgICAg ICAoNSwgQVJSQVlbJ18nXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBm bGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAg ICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9zdGF0ZV9j b3ZlcmFnZQorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJ UCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEF7Mix9IEIpCisgICAgREVGSU5FCisgICAgICAg IEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCisp OworCistLSBSZWx1Y3RhbnQgcGF0dGVybiAoQSs/KSAtIG5vdCBhYnNvcmJhYmxlCistLSBDb21w YXJlIHdpdGggZ3JlZWR5IEErIGFib3ZlOiByZWx1Y3RhbnQgZXhjbHVkZWQgZnJvbSBhYnNvcnB0 aW9uLgorLS0gRWFjaCBjb250ZXh0IHByb2R1Y2VzIG1pbmltdW0gbWF0Y2ggaW5kZXBlbmRlbnRs eS4KK1dJVEggdGVzdF9yZWx1Y3RhbnRfYWJzb3JwdGlvbiBBUyAoCisgICAgU0VMRUNUICogRlJP TSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydB J10pLAorICAgICAgICAoMywgQVJSQVlbJ0EnXSksCisgICAgICAgICg0LCBBUlJBWVsnQSddKSwK KyAgICAgICAgKDUsIEFSUkFZWydfJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVD VCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFy dCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3Rf cmVsdWN0YW50X2Fic29ycHRpb24KK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBKz8pCisgICAgREVGSU5F CisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKQorKTsKKworLS0gQWJzb3JwdGlvbiB3aXRo IGZpeGVkIHN1ZmZpeDogQSsgQgorV0lUSCB0ZXN0X2Fic29yYl9zdWZmaXggQVMgKAorICAgIFNF TEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgy LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10pLAorICAgICAgICAoNCwgQVJS QVlbJ0InXSksCisgICAgICAgICg1LCBBUlJBWVsnWCddKQorICAgICkgQVMgdChpZCwgZmxhZ3Mp CispCitTRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0 YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfYWJzb3Ji X3N1ZmZpeAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJ UCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FCisgICAgICAgIEEg QVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOwor CistLSBQZXItYnJhbmNoIGFic29ycHRpb24gd2l0aCBBTFQ6IEIrIEMgfCBCKyBECitXSVRIIHRl c3RfYWJzb3JiX2FsdCBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgx LCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDIsIEFSUkFZWydCJ10pLAorICAgICAgICAoMywgQVJS QVlbJ0InXSksCisgICAgICAgICg0LCBBUlJBWVsnRCddKSwKKyAgICAgICAgKDUsIEFSUkFZWydY J10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3Zh bHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBt YXRjaF9lbmQKK0ZST00gdGVzdF9hYnNvcmJfYWx0CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIg QlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQisgQyB8 IEIrIEQpCisgICAgREVGSU5FCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKKyAgICAg ICAgQyBBUyAnQycgPSBBTlkoZmxhZ3MpLAorICAgICAgICBEIEFTICdEJyA9IEFOWShmbGFncykK Kyk7CisKKy0tIE5vbi1hYnNvcmJhYmxlOiBBIEIrICh1bmJvdW5kZWQgbm90IGluIGZpcnN0IHBv c2l0aW9uKQorV0lUSCB0ZXN0X25vX2Fic29yYiBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFM VUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydCJ10pLAor ICAgICAgICAoMywgQVJSQVlbJ0InXSksCisgICAgICAgICg0LCBBUlJBWVsnQiddKSwKKyAgICAg ICAgKDUsIEFSUkFZWydYJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwg ZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUo aWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9ub19hYnNvcmIKK1dJTkRPVyB3IEFT ICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQ QVRURVJOIChBIEIrKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyks CisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKworLS0gR1JPVVAgbWVyZ2UgZW5h YmxlcyBhYnNvcnB0aW9uOiAoQSBCKSAoQSBCKSsgb3B0aW1pemVkIHRvIChBIEIpezIsfQorV0lU SCB0ZXN0X2Fic29yYl9ncm91cCBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAg ICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydCJ10pLAorICAgICAgICAo MywgQVJSQVlbJ0EnXSksCisgICAgICAgICg0LCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDUsIEFS UkFZWydBJ10pLAorICAgICAgICAoNiwgQVJSQVlbJ0InXSksCisgICAgICAgICg3LCBBUlJBWVsn WCddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92 YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMg bWF0Y2hfZW5kCitGUk9NIHRlc3RfYWJzb3JiX2dyb3VwCitXSU5ET1cgdyBBUyAoCisgICAgT1JE RVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoKEEg QikgKEEgQikrKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisg ICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKworLS0gRml4ZWQtbGVuZ3RoIGdyb3Vw IGFic29ycHRpb246IChBIEJ7Mn0pKyBDCistLSBCezJ9IGhhcyBtaW4gPT0gbWF4LCBlcXVpdmFs ZW50IHRvIHVucm9sbGluZyB0byAoQSBCIEIpKyBDCitXSVRIIHRlc3RfYWJzb3JiX2ZpeGVkbGVu IEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsICBBUlJBWVsnQSdd KSwKKyAgICAgICAgKDIsICBBUlJBWVsnQiddKSwKKyAgICAgICAgKDMsICBBUlJBWVsnQiddKSwK KyAgICAgICAgKDQsICBBUlJBWVsnQSddKSwKKyAgICAgICAgKDUsICBBUlJBWVsnQiddKSwKKyAg ICAgICAgKDYsICBBUlJBWVsnQiddKSwKKyAgICAgICAgKDcsICBBUlJBWVsnQSddKSwKKyAgICAg ICAgKDgsICBBUlJBWVsnQiddKSwKKyAgICAgICAgKDksICBBUlJBWVsnQiddKSwKKyAgICAgICAg KDEwLCBBUlJBWVsnQyddKSwKKyAgICAgICAgKDExLCBBUlJBWVsnWCddKQorICAgICkgQVMgdChp ZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFT IG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRl c3RfYWJzb3JiX2ZpeGVkbGVuCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSBCezJ9KSsgQykKKyAg ICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdC JyA9IEFOWShmbGFncyksCisgICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKQorKTsKKworLS0g Q29uc2VjdXRpdmUgdmFycyBtZXJnZWQgdG8gZml4ZWQtbGVuZ3RoOiAoQSBCIEIpKyAtPiAoQSBC ezJ9KSsKKy0tIG1lcmdlQ29uc2VjdXRpdmVWYXJzIHByb2R1Y2VzIEJ7Mn07IG5vdyBhYnNvcmJh YmxlIHdpdGggZml4ZWQtbGVuZ3RoIGNoZWNrCitXSVRIIHRlc3RfYWJzb3JiX2NvbnNlY3V0aXZl IEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsICBBUlJBWVsnQSdd KSwKKyAgICAgICAgKDIsICBBUlJBWVsnQiddKSwKKyAgICAgICAgKDMsICBBUlJBWVsnQiddKSwK KyAgICAgICAgKDQsICBBUlJBWVsnQSddKSwKKyAgICAgICAgKDUsICBBUlJBWVsnQiddKSwKKyAg ICAgICAgKDYsICBBUlJBWVsnQiddKSwKKyAgICAgICAgKDcsICBBUlJBWVsnQSddKSwKKyAgICAg ICAgKDgsICBBUlJBWVsnQiddKSwKKyAgICAgICAgKDksICBBUlJBWVsnQiddKSwKKyAgICAgICAg KDEwLCBBUlJBWVsnWCddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZs YWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlk KSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfYWJzb3JiX2NvbnNlY3V0aXZlCitXSU5E T1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBS T1cKKyAgICBQQVRURVJOICgoQSBCIEIpKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScg PSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisKKy0tIE5l c3RlZCBmaXhlZC1sZW5ndGggZ3JvdXAgYWJzb3JwdGlvbjogKEEgKEIgQyl7Mn0gRCkrIEUKKy0t IElubmVyIGdyb3VwIHsyfSBoYXMgbWluID09IG1heDsgYWJzb3JiYWJsZSB2aWEgcmVjdXJzaXZl IGNoZWNrCistLSBzdGVwX3NpemUgPSAxICsgKDErMSkqMiArIDEgPSA2CitXSVRIIHRlc3RfYWJz b3JiX25lc3RlZF9maXhlZGxlbiBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAg ICAgICgxLCAgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCAgQVJSQVlbJ0InXSksCisgICAgICAg ICgzLCAgQVJSQVlbJ0MnXSksCisgICAgICAgICg0LCAgQVJSQVlbJ0InXSksCisgICAgICAgICg1 LCAgQVJSQVlbJ0MnXSksCisgICAgICAgICg2LCAgQVJSQVlbJ0QnXSksCisgICAgICAgICg3LCAg QVJSQVlbJ0EnXSksCisgICAgICAgICg4LCAgQVJSQVlbJ0InXSksCisgICAgICAgICg5LCAgQVJS QVlbJ0MnXSksCisgICAgICAgICgxMCwgQVJSQVlbJ0InXSksCisgICAgICAgICgxMSwgQVJSQVlb J0MnXSksCisgICAgICAgICgxMiwgQVJSQVlbJ0QnXSksCisgICAgICAgICgxMywgQVJSQVlbJ0Un XSksCisgICAgICAgICgxNCwgQVJSQVlbJ1gnXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQor U0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwg bGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2Fic29yYl9uZXN0 ZWRfZml4ZWRsZW4KK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENI IFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIChCIEMpezJ9IEQpKyBFKQorICAg IERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0In ID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQyBBUyAnQycgPSBBTlkoZmxhZ3MpLAorICAgICAgICBE IEFTICdEJyA9IEFOWShmbGFncyksCisgICAgICAgIEUgQVMgJ0UnID0gQU5ZKGZsYWdzKQorKTsK KworLS0gRG91Ymx5IG5lc3RlZCBmaXhlZC1sZW5ndGggZ3JvdXAgYWJzb3JwdGlvbjogKEEgKChC IEN7M30pezJ9IEQpezJ9IEUpKyBGCistLSBzdGVwX3NpemUgPSAxICsgKCgxKzMpKjIrMSkqMiAr IDEgPSAyMDsgMiBpdGVyYXRpb25zICsgRiA9IDQxIHJvd3MKK1dJVEggdGVzdF9hYnNvcmJfZG91 Ymx5X25lc3RlZCBBUyAoCisgICAgU0VMRUNUIHYgQVMgaWQsIEFSUkFZWworICAgICAgICBDQVNF CisgICAgICAgICAgICBXSEVOIHYgJSA0MSBJTiAoMSwgMjEpICBUSEVOICdBJworICAgICAgICAg ICAgV0hFTiB2ICUgNDEgSU4gKDIsIDYsIDExLCAxNSwgMjIsIDI2LCAzMSwgMzUpIFRIRU4gJ0In CisgICAgICAgICAgICBXSEVOIHYgJSA0MSBJTiAoMyw0LDUsIDcsOCw5LCAxMiwxMywxNCwgMTYs MTcsMTgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjMsMjQsMjUsIDI3LDI4LDI5LCAz MiwzMywzNCwgMzYsMzcsMzgpIFRIRU4gJ0MnCisgICAgICAgICAgICBXSEVOIHYgJSA0MSBJTiAo MTAsIDE5LCAzMCwgMzkpIFRIRU4gJ0QnCisgICAgICAgICAgICBXSEVOIHYgJSA0MSBJTiAoMjAs IDQwKSBUSEVOICdFJworICAgICAgICAgICAgV0hFTiB2ICUgNDEgPSAwIFRIRU4gJ0YnCisgICAg ICAgICAgICBFTFNFICdYJworICAgICAgICBFTkQKKyAgICBdIEFTIGZsYWdzCisgICAgRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgODIpIEFTIHModikKKykKK1NFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0 X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBB UyBtYXRjaF9lbmQKK0ZST00gdGVzdF9hYnNvcmJfZG91Ymx5X25lc3RlZAorV0lORE9XIHcgQVMg KAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAg UEFUVEVSTiAoKEEgKChCIEMgQyBDKXsyfSBEKXsyfSBFKSsgRikKKyAgICBERUZJTkUKKyAgICAg ICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncyks CisgICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgRCBBUyAnRCcgPSBBTlko ZmxhZ3MpLAorICAgICAgICBFIEFTICdFJyA9IEFOWShmbGFncyksCisgICAgICAgIEYgQVMgJ0Yn ID0gQU5ZKGZsYWdzKQorKTsKKworLS0gMy1sZXZlbCBFTkQgY2hhaW46ICgoQSAoQiBDKXsyfSl7 Mn0pKworLS0gVGVzdHMgRU5EKEJDezJ9KSAtPiBFTkQoQS4uezJ9KSAtPiBFTkQoKykgY2hhaW5p bmcKKy0tIDIgaXRlcmF0aW9ucyBvZiArLCBlYWNoIDEwIHJvd3M6IChBIEIgQyBCIEMpKEEgQiBD IEIgQykKK1dJVEggdGVzdF9hYnNvcmJfM2xldmVsX2VuZCBBUyAoCisgICAgU0VMRUNUICogRlJP TSAoVkFMVUVTCisgICAgICAgICgxLCAgQVJSQVlbJ0EnXSksICAtLSAxc3QgKyBpdGVyLCAxc3Qg ezJ9LCBBCisgICAgICAgICgyLCAgQVJSQVlbJ0InXSksCisgICAgICAgICgzLCAgQVJSQVlbJ0Mn XSksCisgICAgICAgICg0LCAgQVJSQVlbJ0InXSksCisgICAgICAgICg1LCAgQVJSQVlbJ0MnXSks ICAtLSAxc3QgKEJDKXsyfSBkb25lCisgICAgICAgICg2LCAgQVJSQVlbJ0EnXSksICAtLSAxc3Qg KyBpdGVyLCAybmQgezJ9LCBBCisgICAgICAgICg3LCAgQVJSQVlbJ0InXSksCisgICAgICAgICg4 LCAgQVJSQVlbJ0MnXSksCisgICAgICAgICg5LCAgQVJSQVlbJ0InXSksCisgICAgICAgICgxMCwg QVJSQVlbJ0MnXSksICAtLSAybmQgKEJDKXsyfSBkb25lLCAxc3QgezJ9IGRvbmUsIDFzdCArIGl0 ZXIgZG9uZQorICAgICAgICAoMTEsIEFSUkFZWydBJ10pLCAgLS0gMm5kICsgaXRlciwgMXN0IHsy fSwgQQorICAgICAgICAoMTIsIEFSUkFZWydCJ10pLAorICAgICAgICAoMTMsIEFSUkFZWydDJ10p LAorICAgICAgICAoMTQsIEFSUkFZWydCJ10pLAorICAgICAgICAoMTUsIEFSUkFZWydDJ10pLAor ICAgICAgICAoMTYsIEFSUkFZWydBJ10pLCAgLS0gMm5kICsgaXRlciwgMm5kIHsyfSwgQQorICAg ICAgICAoMTcsIEFSUkFZWydCJ10pLAorICAgICAgICAoMTgsIEFSUkFZWydDJ10pLAorICAgICAg ICAoMTksIEFSUkFZWydCJ10pLAorICAgICAgICAoMjAsIEFSUkFZWydDJ10pLCAgLS0gMm5kICsg aXRlciBkb25lCisgICAgICAgICgyMSwgQVJSQVlbJ1gnXSkgICAtLSBubyBtYXRjaCwgKyBlbmRz CisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVl KGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRj aF9lbmQKK0ZST00gdGVzdF9hYnNvcmJfM2xldmVsX2VuZAorV0lORE9XIHcgQVMgKAorICAgIE9S REVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAo KChBIChCIEMpezJ9KXsyfSkrKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShm bGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQyBBUyAnQycg PSBBTlkoZmxhZ3MpCispOworCistLSBNdWx0aXBsZSB1bmJvdW5kZWQ6IEErIEIrIChmaXJzdCBl bGVtZW50IHVuYm91bmRlZCBlbmFibGVzIGFic29ycHRpb24pCitXSVRIIHRlc3RfbXVsdGlfdW5i b3VuZGVkIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZ WydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnQidd KSwKKyAgICAgICAgKDQsIEFSUkFZWydCJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ1gnXSkKKyAg ICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQp IE9WRVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2Vu ZAorRlJPTSB0ZXN0X211bHRpX3VuYm91bmRlZAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZ IGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEErIEIrKQor ICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMg J0InID0gQU5ZKGZsYWdzKQorKTsKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBDb250ZXh0IExpZmVjeWNsZQorLS0g PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CisKKy0tIE11bHRpcGxlIG92ZXJsYXBwaW5nIGNvbnRleHRzIChTS0lQIFRPIE5FWFQgUk9X KQorV0lUSCB0ZXN0X292ZXJsYXBwaW5nX2NvbnRleHRzIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9N IChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0En XSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQsIEFSUkFZWydCJ10pLAor ICAgICAgICAoNSwgQVJSQVlbJ18nXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNU IGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0 LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9v dmVybGFwcGluZ19jb250ZXh0cworV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZU RVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5F CisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlko ZmxhZ3MpCispOworCistLSBGYWlsZWQgY29udGV4dCBjbGVhbnVwIChlYXJseSBmYWlsdXJlKQor V0lUSCB0ZXN0X2NvbnRleHRfY2xlYW51cCBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVT CisgICAgICAgICgxLCBBUlJBWVsnXyddKSwgIC0tIFBydW5lZCBhdCBmaXJzdCByb3cKKyAgICAg ICAgKDIsIEFSUkFZWydBJ10pLAorICAgICAgICAoMywgQVJSQVlbJ18nXSksICAtLSBNaXNtYXRj aGVkIGFmdGVyIHJvdyAyCisgICAgICAgICg0LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDUsIEFS UkFZWydCJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisg ICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0 X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfY29udGV4dF9jbGVhbnVw CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5F WFQgUk9XCisgICAgUEFUVEVSTiAoQSBCKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9 IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKworLS0gUGFy dGl0aW9uIGVuZCAoaW5jb21wbGV0ZSBjb250ZXh0cykKK1dJVEggdGVzdF9wYXJ0aXRpb25fZW5k IEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10p LAorICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKQorICAg ICAgICAtLSBQYXR0ZXJuIHJlcXVpcmVzIEIsIGJ1dCBwYXJ0aXRpb24gZW5kcworICAgICkgQVMg dChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlk KSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFT IG1hdGNoX2VuZAorRlJPTSB0ZXN0X3BhcnRpdGlvbl9lbmQKK1dJTkRPVyB3IEFTICgKKyAgICBP UkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChB KyBCKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAg IEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKworLS0gQ29tcGxldGVkIGNvbnRleHQgZW5jb3Vu dGVyZWQgZHVyaW5nIHByb2Nlc3NpbmcKKy0tIFBhdHRlcm4gKEEgfCBCIEMgRCk6IEN0eDEgdGFr ZXMgbG9uZyBCLT5DLT5EIHBhdGgsIHdoaWxlIEN0eDIgdGFrZXMKKy0tIHNob3J0IEEgcGF0aCBh bmQgY29tcGxldGVzIGZpcnN0LiBOZXh0IHJvdyBzZWVzIEN0eDIKKy0tIHdpdGggc3RhdGVzPU5V TEwgYW5kIHNraXBzIGl0LgorV0lUSCB0ZXN0X2NvbXBsZXRlZF9jdHggQVMgKAorICAgIFNFTEVD VCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0InLCAnXyddKSwKKyAgICAgICAg KDIsIEFSUkFZWydDJywgJ0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnRCcsICdfJ10pLAorICAg ICAgICAoNCwgQVJSQVlbJ18nLCAnXyddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxF Q1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3Rh cnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0 X2NvbXBsZXRlZF9jdHgKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1B VENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBIHwgQiBDIEQpCisgICAgREVGSU5F CisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlko ZmxhZ3MpLAorICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncyksCisgICAgICAgIEQgQVMgJ0Qn ID0gQU5ZKGZsYWdzKQorKTsKKworLS0gUmVsdWN0YW50IGNvbnRleHQgbGlmZWN5Y2xlIChBKz8g QiB3aXRoIFNLSVAgVE8gTkVYVCBST1cpCistLSBBKz8gZXhpdHMgZWFybHkgYnV0IGlmIEIgbm90 IGF2YWlsYWJsZSwgZmFsbHMgYmFjayB0byBsb29wLgorLS0gQ29udGV4dHMgbm90IGFic29yYmVk IChyZWx1Y3RhbnQpLCBzbyBtdWx0aXBsZSBzdXJ2aXZlLgorV0lUSCB0ZXN0X3JlbHVjdGFudF9j b250ZXh0IEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZ WydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnQidd KSwKKyAgICAgICAgKDQsIEFSUkFZWydfJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NF TEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9z dGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRl c3RfcmVsdWN0YW50X2NvbnRleHQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBKz8gQikKKyAgICBERUZJ TkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFO WShmbGFncykKKyk7CisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0gQWR2YW5jZSBQaGFzZSAoRXBzaWxvbiBUcmFuc2l0 aW9ucykKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorCistLSBOZXN0ZWQgZ3JvdXBzICgoQSBCKSspCitXSVRIIHRlc3RfbmVz dGVkX2dyb3VwcyBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBB UlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydCJ10pLAorICAgICAgICAoMywgQVJSQVlb J0EnXSksCisgICAgICAgICg0LCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDUsIEFSUkFZWydBJ10p LAorICAgICAgICAoNiwgQVJSQVlbJ0InXSksCisgICAgICAgICg3LCBBUlJBWVsnXyddKQorICAg ICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3Zh bHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZF UiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X25lc3RlZF9ncm91cHMKK1dJTkRPVyB3IEFTICgK KyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRU RVJOICgoQSBCKSspCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwK KyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOworCistLSBNdWx0aXBsZSBhbHRlcm5h dGlvbiBicmFuY2hlcyAoQSAoQnxDfEQpIEUpCitXSVRIIHRlc3RfbXVsdGlfYWx0IEFTICgKKyAg ICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAg ICAoMiwgQVJSQVlbJ0InXSksCisgICAgICAgICgzLCBBUlJBWVsnRSddKSwKKyAgICAgICAgKDQs IEFSUkFZWydBJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ0MnXSksCisgICAgICAgICg2LCBBUlJB WVsnRSddKSwKKyAgICAgICAgKDcsIEFSUkFZWydBJ10pLAorICAgICAgICAoOCwgQVJSQVlbJ0Qn XSksCisgICAgICAgICg5LCBBUlJBWVsnRSddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitT RUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hf c3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0 ZXN0X211bHRpX2FsdAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFU Q0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEEgKEIgfCBDIHwgRCkgRSkKKyAgICBE RUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9 IEFOWShmbGFncyksCisgICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgRCBB UyAnRCcgPSBBTlkoZmxhZ3MpLAorICAgICAgICBFIEFTICdFJyA9IEFOWShmbGFncykKKyk7CisK Ky0tIE9wdGlvbmFsIFZBUiBhdCBzdGFydCAoQT8gQiBDKQorV0lUSCB0ZXN0X29wdGlvbmFsX3Zh ciBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQidd KSwgIC0tIEEgc2tpcHBlZAorICAgICAgICAoMiwgQVJSQVlbJ0MnXSksCisgICAgICAgICgzLCBB UlJBWVsnQSddKSwgIC0tIEEgbWF0Y2hlZAorICAgICAgICAoNCwgQVJSQVlbJ0InXSksCisgICAg ICAgICg1LCBBUlJBWVsnQyddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQs IGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisg ICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X29wdGlv bmFsX3ZhcgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJ UCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEE/IEIgQykKKyAgICBERUZJTkUKKyAgICAgICAg QSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncyksCisg ICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKQorKTsKKworLS0gTmVzdGVkIGFsdGVybmF0aW9u ICgoQXxCKSAoQ3xEKSkKK1dJVEggdGVzdF9uZXN0ZWRfYWx0IEFTICgKKyAgICBTRUxFQ1QgKiBG Uk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlb J0MnXSksICAtLSBBIEMKKyAgICAgICAgKDMsIEFSUkFZWydBJ10pLAorICAgICAgICAoNCwgQVJS QVlbJ0QnXSksICAtLSBBIEQKKyAgICAgICAgKDUsIEFSUkFZWydCJ10pLAorICAgICAgICAoNiwg QVJSQVlbJ0MnXSksICAtLSBCIEMKKyAgICAgICAgKDcsIEFSUkFZWydCJ10pLAorICAgICAgICAo OCwgQVJSQVlbJ0QnXSkgICAtLSBCIEQKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNU IGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0 LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9u ZXN0ZWRfYWx0CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBT S0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoKEEgfCBCKSAoQyB8IEQpKQorICAgIERFRklO RQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5Z KGZsYWdzKSwKKyAgICAgICAgQyBBUyAnQycgPSBBTlkoZmxhZ3MpLAorICAgICAgICBEIEFTICdE JyA9IEFOWShmbGFncykKKyk7CisKKy0tIE1peGVkIGdyZWVkeS9yZWx1Y3RhbnQgc2VxdWVuY2U6 IEErPyBCKyAocmVsdWN0YW50IEEsIGdyZWVkeSBCKQorLS0gQSBleGl0cyBhcyBlYXJseSBhcyBw b3NzaWJsZSwgQiBjb25zdW1lcyB0aGUgcmVzdCBncmVlZGlseQorV0lUSCB0ZXN0X21peGVkX3Jl bHVjdGFudCBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJB WVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydBJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0En LCdCJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0InXSksCisgICAgICAgICg1LCBBUlJBWVsnQidd KQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZp cnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShp ZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X21peGVkX3JlbHVjdGFudAorV0lORE9X IHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X CisgICAgUEFUVEVSTiAoQSs/IEIrKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFO WShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKworLS0gT3B0aW9u YWwgcmVsdWN0YW50IGdyb3VwOiAoQSBCKT8/IEMKKy0tIG5mYV9hZHZhbmNlX2JlZ2luOiByZWx1 Y3RhbnQgdHJpZXMgc2tpcCBmaXJzdCwgYnV0IHNraXAgcGF0aCBuZWVkcyBDCistLSBhdCByb3cg MSB3aGljaCBpcyBBIC0+IHNraXAgZmFpbHMuIEVudGVyIHBhdGggc3VjY2VlZHM6IEEoMSkgQigy KSBDKDMpLgorV0lUSCB0ZXN0X29wdGlvbmFsX3JlbHVjdGFudCBBUyAoCisgICAgU0VMRUNUICog RlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZ WydCJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0MnXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQor KQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1h dGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZS T00gdGVzdF9vcHRpb25hbF9yZWx1Y3RhbnQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBp ZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIEIpPz8g QykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBC IEFTICdCJyA9IEFOWShmbGFncyksCisgICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKQorKTsK KworLS0gR3JlZWR5L3JlbHVjdGFudCBzZXF1ZW5jZTogQSsgQis/IChncmVlZHkgQSwgcmVsdWN0 YW50IEIgYXQgZW5kKQorLS0gQSBjb25zdW1lcyBncmVlZGlseSwgQis/IGV4aXRzIHRvIEZJTiBh ZnRlciBtaW5pbXVtIG1hdGNoCitXSVRIIHRlc3RfZ3JlZWR5X3RoZW5fcmVsdWN0YW50IEFTICgK KyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAg ICAgICAoMiwgQVJSQVlbJ0EnLCdCJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0InXSksCisgICAg ICAgICg0LCBBUlJBWVsnQiddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQs IGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisg ICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2dyZWVk eV90aGVuX3JlbHVjdGFudAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSsgQis/KQorICAgIERFRklO RQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5Z KGZsYWdzKQorKTsKKworLS0gUmVsdWN0YW50IG9wdGlvbmFsIGdyb3VwIHNraXAtdG8tRklOCist LSBXaGVuIGEgcmVsdWN0YW50IG9wdGlvbmFsIGdyb3VwJ3Mgc2tpcCBwYXRoIHJlYWNoZXMgRklO LCB0aGUgZ3JvdXAKKy0tIGVudHJ5IHBhdGggaXMgYWJhbmRvbmVkIChub2RlV2luZG93QWdnLmMg bmZhX2FkdmFuY2VfYmVnaW4pLgorLS0gUGF0dGVybjogQyAoQSBCKT8/IC0tIGFmdGVyIEMgbWF0 Y2hlcywgdGhlIHJlbHVjdGFudCBncm91cCAoQSBCKT8/CistLSBwcmVmZXJzIHRvIHNraXAuICBT a2lwIGdvZXMgdG8gRklOIChncm91cCBpcyBsYXN0IGVsZW1lbnQpLCBzbworLS0gdGhlIG1hdGNo IGNvbXBsZXRlcyB3aXRoIGp1c3QgQy4KK1dJVEggdGVzdF9iZWdpbl9za2lwX2ZpbiBBUyAoCisg ICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQyddKSwKKyAgICAg ICAgKDIsIEFSUkFZWydBJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0InXSksCisgICAgICAgICg0 LCBBUlJBWVsnQycsJ0EnXSksCisgICAgICAgICg1LCBBUlJBWVsnQiddKQorICAgICkgQVMgdChp ZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBP VkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1h dGNoX2VuZAorRlJPTSB0ZXN0X2JlZ2luX3NraXBfZmluCitXSU5ET1cgdyBBUyAoCisgICAgT1JE RVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQyAo QSBCKT8/KQorICAgIERFRklORQorICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncyksCisgICAg ICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3Mp CispOworCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tIE1hdGNoIFBoYXNlCistLSA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLS0gU2ltcGxlIFZBUiB3 aXRoIEVORCBuZXh0IChBIEIgQyBhbGwgbWluPW1heD0xKQorV0lUSCB0ZXN0X3NpbXBsZV92YXIg QVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSks CisgICAgICAgICgyLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDMsIEFSUkFZWydDJ10pLAorICAg ICAgICAoNCwgQVJSQVlbJ18nXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlk LCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAor ICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9zaW1w bGVfdmFyCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQ IFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSBCIEMpCisgICAgREVGSU5FCisgICAgICAgIEEg QVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAorICAg ICAgICBDIEFTICdDJyA9IEFOWShmbGFncykKKyk7CisKKy0tIFZBUiBtYXggZXhjZWVkZWQgKEF7 MiwzfSkKK1dJVEggdGVzdF9tYXhfZXhjZWVkZWQgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZB TFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQSddKSwK KyAgICAgICAgKDMsIEFSUkFZWydBJ10pLCAgLS0gTWF4ID0gMworICAgICAgICAoNCwgQVJSQVlb J0EnXSksICAtLSBFeGNlZWRzIG1heCwgc3RhdGUgcmVtb3ZlZAorICAgICAgICAoNSwgQVJSQVlb J0InXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAg ICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFs dWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9tYXhfZXhjZWVkZWQKK1dJTkRP VyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cK KyAgICBQQVRURVJOIChBezIsM30gQikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBB TlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisKKy0tIE5vbi1t YXRjaGluZyBWQVIgKERFRklORSBmYWxzZSkKK1dJVEggdGVzdF9ub25fbWF0Y2hpbmcgQVMgKAor ICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAg ICAgICgyLCBBUlJBWVsnXyddKSwgIC0tIEIgbm90IG1hdGNoZWQgKERFRklORSBmYWxzZSkKKyAg ICAgICAgKDMsIEFSUkFZWydBJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0InXSksICAtLSBCIG1h dGNoZWQKKyAgICAgICAgKDUsIEFSUkFZWydDJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykK K1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRj aF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9N IHRlc3Rfbm9uX21hdGNoaW5nCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSBCIEMpCisgICAgREVGSU5F CisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlko ZmxhZ3MpLAorICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncykKKyk7CisKKy0tID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0g RnJhbWUgQm91bmRhcnkgSGFuZGxpbmcKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCistLSBMaW1pdGVkIGZyYW1lIChST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDMgRk9MTE9XSU5HKQorV0lUSCB0ZXN0X2xpbWl0ZWRf ZnJhbWUgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlb J0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10p LAorICAgICAgICAoNCwgQVJSQVlbJ0InXSksICAtLSBXaXRoaW4gMyBGT0xMT1dJTkcKKyAgICAg ICAgKDUsIEFSUkFZWydCJ10pLCAgLS0gQmV5b25kIDMgRk9MTE9XSU5HIGZyb20gcm93IDEKKyAg ICAgICAgKDYsIEFSUkFZWydfJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBp ZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwK KyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfbGlt aXRlZF9mcmFtZQorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCAzIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8g TkVYVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORQorICAgICAgICBBIEFTICdB JyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKworLS0g VW5ib3VuZGVkIGZyYW1lIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcpCitXSVRIIHRlc3RfdW5ib3VuZGVkX2ZyYW1lIEFTICgKKyAgICBTRUxFQ1QgKiBG Uk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlb J0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQsIEFSUkFZWydBJ10p LAorICAgICAgICAoNSwgQVJSQVlbJ0EnXSksCisgICAgICAgICg2LCBBUlJBWVsnQiddKSAgLS0g RmFyIGZyb20gc3RhcnQsIGJ1dCB1bmJvdW5kZWQKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQor U0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNo X3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00g dGVzdF91bmJvdW5kZWRfZnJhbWUKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklO RQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5Z KGZsYWdzKQorKTsKKworLS0gTWF0Y2ggZXhjZWVkcyBmcmFtZSBib3VuZGFyeQorV0lUSCB0ZXN0 X2ZyYW1lX2V4Y2VlZGVkIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAg KDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgzLCBB UlJBWVsnQSddKQorICAgICAgICAtLSBGcmFtZSBlbmRzIGF0IHJvdyAzICgyIEZPTExPV0lORyks IEIgbmV2ZXIgYXBwZWFycworICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZs YWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAg ICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2ZyYW1lX2V4 Y2VlZGVkCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIDIgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhU IFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0g QU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOworCistLSBGcmFt ZSBib3VuZGFyeSBmb3JjZWQgbWlzbWF0Y2gKKy0tIExpbWl0ZWQgZnJhbWUgd2l0aCBlbm91Z2gg cm93cyBzbyB0aGF0IGEgY29udGV4dCdzIGZyYW1lIGJvdW5kYXJ5CistLSBpcyBleGNlZWRlZCB3 aGlsZSBzdGlsbCBwcm9jZXNzaW5nLgorV0lUSCB0ZXN0X2ZyYW1lX2JvdW5kYXJ5IEFTICgKKyAg ICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAg ICAoMiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQs IEFSUkFZWydBJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ0EnXSksCisgICAgICAgICg2LCBBUlJB WVsnQiddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAg ICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92 YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2ZyYW1lX2JvdW5kYXJ5CitX SU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIDIgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAg IFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdz KSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOworCistLSBSZWx1Y3RhbnQgd2l0 aCBsaW1pdGVkIGZyYW1lIChBKz8gQiB3aXRoIDIgRk9MTE9XSU5HKQorLS0gUmVsdWN0YW50IGV4 aXRzIGVhcmx5LCBCIG11c3QgYmUgd2l0aGluIGZyYW1lIGJvdW5kYXJ5CitXSVRIIHRlc3RfcmVs dWN0YW50X2ZyYW1lIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEs IEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJB WVsnQiddKSwKKyAgICAgICAgKDQsIEFSUkFZWydfJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykK KykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBt YXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitG Uk9NIHRlc3RfcmVsdWN0YW50X2ZyYW1lCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDIgRk9MTE9XSU5HCisgICAgQUZURVIg TUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEErPyBCKQorICAgIERFRklORQor ICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZs YWdzKQorKTsKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CistLSBTdGF0ZSBNYW5hZ2VtZW50CistLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLS0gRHVw bGljYXRlIHN0YXRlIGNyZWF0aW9uCitXSVRIIHRlc3RfZHVwbGljYXRlX3N0YXRlcyBBUyAoCisg ICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQScsICdCJ10pLCAg LS0gQm90aCBBIGFuZCBCIG1hdGNoIChjcmVhdGVzIGR1cGxpY2F0ZSBzdGF0ZXMgdmlhIGRpZmZl cmVudCBwYXRocykKKyAgICAgICAgKDIsIEFSUkFZWydDJywgJ18nXSksCisgICAgICAgICgzLCBB UlJBWVsnRCcsICdfJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxh Z3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAg ICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfZHVwbGljYXRl X3N0YXRlcworV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJ UCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKChBIHwgQikgQyBEKQorICAgIERFRklORQorICAg ICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdz KSwKKyAgICAgICAgQyBBUyAnQycgPSBBTlkoZmxhZ3MpLAorICAgICAgICBEIEFTICdEJyA9IEFO WShmbGFncykKKyk7CisKKy0tIFJlbHVjdGFudCBkdXBsaWNhdGUgc3RhdGUgaGFuZGxpbmcKKy0t IChBKz8gfCBCKz8pIGNyZWF0ZXMgZXhpdCBhbmQgbG9vcCBzdGF0ZXM7IGV4aXQgcGF0aHMgbWF5 IGNvbnZlcmdlCitXSVRIIHRlc3RfcmVsdWN0YW50X2RlZHVwIEFTICgKKyAgICBTRUxFQ1QgKiBG Uk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJywnQiddKSwKKyAgICAgICAgKDIsIEFS UkFZWydBJywnQiddKSwKKyAgICAgICAgKDMsIEFSUkFZWydfJ10pCisgICAgKSBBUyB0KGlkLCBm bGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIg dyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hf ZW5kCitGUk9NIHRlc3RfcmVsdWN0YW50X2RlZHVwCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIg QlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoKEErPyB8 IEIrPykpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAg ICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOworCistLSBMYXJnZSBwYXR0ZXJuIChzdHJlc3Mg ZnJlZSBsaXN0KQorV0lUSCB0ZXN0X2xhcmdlX3BhdHRlcm4gQVMgKAorICAgIFNFTEVDVCAqIEZS T00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsn QiddKSwKKyAgICAgICAgKDMsIEFSUkFZWydDJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0QnXSks CisgICAgICAgICg1LCBBUlJBWVsnRSddKSwKKyAgICAgICAgKDYsIEFSUkFZWydGJ10pLAorICAg ICAgICAoNywgQVJSQVlbJ0cnXSksCisgICAgICAgICg4LCBBUlJBWVsnSCddKSwKKyAgICAgICAg KDksIEFSUkFZWydJJ10pLAorICAgICAgICAoMTAsIEFSUkFZWydKJ10pCisgICAgKSBBUyB0KGlk LCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9W RVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0 Y2hfZW5kCitGUk9NIHRlc3RfbGFyZ2VfcGF0dGVybgorV0lORE9XIHcgQVMgKAorICAgIE9SREVS IEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEEgQiBD IEQgRSBGIEcgSCBJIEopCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdz KSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAorICAgICAgICBDIEFTICdDJyA9IEFO WShmbGFncyksCisgICAgICAgIEQgQVMgJ0QnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgRSBBUyAn RScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBGIEFTICdGJyA9IEFOWShmbGFncyksCisgICAgICAg IEcgQVMgJ0cnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgSCBBUyAnSCcgPSBBTlkoZmxhZ3MpLAor ICAgICAgICBJIEFTICdJJyA9IEFOWShmbGFncyksCisgICAgICAgIEogQVMgJ0onID0gQU5ZKGZs YWdzKQorKTsKKworLS0gUmVkdWNlZCBmcmFtZSBtYXAgcmVhbGxvY2F0aW9uICg+IDEwMjQgcm93 cykKK1dJVEggdGVzdF9tYXBfcmVhbGxvYyBBUyAoCisgICAgU0VMRUNUIGlkLCBDQVNFIFdIRU4g aWQgJSAyID0gMSBUSEVOIEFSUkFZWydBJ10gRUxTRSBBUlJBWVsnQiddIEVORCBBUyBmbGFncwor ICAgIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDExMDApIEFTIGlkCispCitTRUxFQ1QgY291bnQo KiksIG1pbihtYXRjaF9zdGFydCksIG1heChtYXRjaF9lbmQpCitGUk9NICgKKyAgICBTRUxFQ1Qg aWQsIGZsYWdzLAorICAgICAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0 YXJ0LAorICAgICAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCisgICAg RlJPTSB0ZXN0X21hcF9yZWFsbG9jCisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBPUkRFUiBC WSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgICAgICBQQVRU RVJOIChBIEIpCisgICAgICAgIERFRklORQorICAgICAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxh Z3MpLAorICAgICAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCisgICAgKQorKSBzdWI7CisK Ky0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0gU3RhdGlzdGljcyBhbmQgRGlhZ25vc3RpY3MKKy0tID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCistLSBNYXRj aGVkIGNvbnRleHRzCitXSVRIIHRlc3RfbWF0Y2hlZCBBUyAoCisgICAgU0VMRUNUICogRlJPTSAo VkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydCJ10p LAorICAgICAgICAoMywgQVJSQVlbJ0EnXSksCisgICAgICAgICg0LCBBUlJBWVsnQiddKQorICAg ICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3Zh bHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZF UiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X21hdGNoZWQKK1dJTkRPVyB3IEFTICgKKyAgICBP UkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChB IEIpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAg QiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOworCistLSBQcnVuZWQgY29udGV4dHMgKGZhaWxlZCBh dCBmaXJzdCByb3cpCitXSVRIIHRlc3RfcHJ1bmVkIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChW QUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydfJ10pLCAgLS0gUHJ1bmVkCisgICAgICAgICgyLCBB UlJBWVsnXyddKSwgIC0tIFBydW5lZAorICAgICAgICAoMywgQVJSQVlbJ0EnXSksCisgICAgICAg ICg0LCBBUlJBWVsnQiddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZs YWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAg ICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X3BydW5lZAor V0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhU IFJPVworICAgIFBBVFRFUk4gKEEgQikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBB TlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisKKy0tIE1pc21h dGNoZWQgY29udGV4dHMgKGZhaWxlZCBhZnRlciBtdWx0aXBsZSByb3dzKQorV0lUSCB0ZXN0X21p c21hdGNoZWQgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJS QVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZWydf J10pLCAgLS0gTWlzbWF0Y2hlZCBhZnRlciAyIHJvd3MKKyAgICAgICAgKDQsIEFSUkFZWydBJ10p LAorICAgICAgICAoNSwgQVJSQVlbJ0InXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VM RUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0 YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVz dF9taXNtYXRjaGVkCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRD SCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUKKyAgICAg ICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykK Kyk7CisKKy0tIFJlbHVjdGFudCBub3QgYWJzb3JiZWQgKEErPyB3aXRoIFNLSVAgVE8gTkVYVCBS T1cpCistLSBDb21wYXJlIHdpdGggZ3JlZWR5IEErIGJlbG93OiByZWx1Y3RhbnQgaXMgbm90IGFi c29yYmFibGUsCistLSBzbyBhbGwgY29udGV4dHMgc3Vydml2ZSBpbmRlcGVuZGVudGx5LgorV0lU SCB0ZXN0X3JlbHVjdGFudF9zdGF0cyBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisg ICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydBJ10pLAorICAgICAg ICAoMywgQVJSQVlbJ0EnXSksCisgICAgICAgICg0LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDUs IEFSUkFZWydfJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3Ms CisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBs YXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfcmVsdWN0YW50X3N0 YXRzCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRP IE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSs/KQorICAgIERFRklORQorICAgICAgICBBIEFTICdB JyA9IEFOWShmbGFncykKKyk7CisKKy0tIEFic29yYmVkIGNvbnRleHRzCitXSVRIIHRlc3RfYWJz b3JiZWQgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlb J0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10p LAorICAgICAgICAoNCwgQVJSQVlbJ0EnXSksCisgICAgICAgICg1LCBBUlJBWVsnXyddKQorICAg ICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3Zh bHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZF UiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2Fic29yYmVkCitXSU5ET1cgdyBBUyAoCisgICAg T1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAo QSspCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKQorKTsKKworLS0g U2tpcHBlZCBjb250ZXh0cyAoU0tJUCBUTyBORVhUIFJPVykKK1dJVEggdGVzdF9za2lwcGVkIEFT ICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAor ICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAgICAg ICAgKDQsIEFSUkFZWydCJ10pICAtLSBDb21wbGV0ZXMgbWF0Y2ggc3RhcnRpbmcgYXQgcm93IDEK KyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJz dF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQp IE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9za2lwcGVkCitXSU5ET1cgdyBBUyAoCisg ICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVS TiAoQSsgQikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAg ICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisKKy0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gUXVhbnRpZmllciBS dW50aW1lIEJlaGF2aW9yCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKworLS0gTGFyZ2UgY291bnQgaGFuZGxpbmcgKEF7MTAw fSkKK1dJVEggdGVzdF9sYXJnZV9jb3VudCBBUyAoCisgICAgU0VMRUNUIGkgQVMgaWQsIEFSUkFZ WydBJ10gQVMgZmxhZ3MKKyAgICBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDUpIGkKKykKK1NF TEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9z dGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRl c3RfbGFyZ2VfY291bnQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1B VENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBezEwMH0pCisgICAgREVGSU5FCisg ICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKQorKTsKKworLS0gVW5saW1pdGVkIHF1YW50aWZp ZXIgKEF7MTAsfSkKK1dJVEggdGVzdF91bmxpbWl0ZWQgQVMgKAorICAgIFNFTEVDVCBpIEFTIGlk LCBBUlJBWVsnQSddIEFTIGZsYWdzCisgICAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTUpIGkK KyAgICBVTklPTiBBTEwKKyAgICBTRUxFQ1QgMTYsIEFSUkFZWydCJ10KKykKK1NFTEVDVCBpZCwg ZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAg ICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfdW5saW1p dGVkCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRP IE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQXsxMCx9IEIpCisgICAgREVGSU5FCisgICAgICAgIEEg QVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOwor CistLSBNaW4gYm91bmRhcnkgKEF7Myw1fSkKK1dJVEggdGVzdF9taW5fYm91bmRhcnkgQVMgKAor ICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAg ICAgICgyLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10pLCAgLS0gTWluPTMg cmVhY2hlZCwgZXhpdCBwYXRoIGF2YWlsYWJsZQorICAgICAgICAoNCwgQVJSQVlbJ0InXSksICAt LSBNYXRjaCBlbmRzIGF0IG1pbgorICAgICAgICAoNSwgQVJSQVlbJ0EnXSksCisgICAgICAgICg2 LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDcsIEFSUkFZWydBJ10pLAorICAgICAgICAoOCwgQVJS QVlbJ0EnXSksCisgICAgICAgICg5LCBBUlJBWVsnQSddKSwgIC0tIENvdW50PTUsIG1heCByZWFj aGVkCisgICAgICAgICgxMCwgQVJSQVlbJ0InXSkgIC0tIE1hdGNoIGVuZHMgYXQgbWF4CisgICAg KSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFs dWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVS IHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfbWluX2JvdW5kYXJ5CitXSU5ET1cgdyBBUyAoCisg ICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVS TiAoQXszLDV9IEIpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwK KyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOworCistLSBNYXggYm91bmRhcnkgZXhj ZWVkZWQgKEF7Myw1fSkKK1dJVEggdGVzdF9tYXhfYm91bmRhcnkgQVMgKAorICAgIFNFTEVDVCAq IEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJB WVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0En XSksCisgICAgICAgICg1LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDYsIEFSUkFZWydBJ10pLCAg LS0gQ291bnQ9NiA+IG1heD01LCByb3cgMSBjb250ZXh0IHJlbW92ZWQKKyAgICAgICAgKDcsIEFS UkFZWydCJ10pICAgLS0gUm93IDEgY29udGV4dDogbm8gbWF0Y2ggKGV4Y2VlZGVkIG1heCkKKyAg ICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92 YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9W RVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9tYXhfYm91bmRhcnkKK1dJTkRPVyB3IEFTICgK KyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRU RVJOIChBezMsNX0gQikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3Mp LAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisKKy0tIEdyZWVkeSB2cyByZWx1 Y3RhbnQ6IEErIG1hdGNoZXMgYWxsIHJvd3MsIEErPyBtYXRjaGVzIG1pbmltdW0KK1dJVEggdGVz dF9ncmVlZHlfdnNfcmVsdWN0YW50IEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAg ICAgICAgKDEsIEFSUkFZWydBJywnXyddKSwKKyAgICAgICAgKDIsIEFSUkFZWydBJywnXyddKSwK KyAgICAgICAgKDMsIEFSUkFZWydBJywnQiddKSwKKyAgICAgICAgKDQsIEFSUkFZWydCJywnXydd KQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZp cnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShp ZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2dyZWVkeV92c19yZWx1Y3RhbnQKK1dJ TkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNU IFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0g QU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOworCistLSBTYW1l IGRhdGEsIHJlbHVjdGFudCBBKz8gZXhpdHMgYXQgcm93IDMgd2hlcmUgQiBpcyBmaXJzdCBhdmFp bGFibGUKK1dJVEggdGVzdF9ncmVlZHlfdnNfcmVsdWN0YW50IEFTICgKKyAgICBTRUxFQ1QgKiBG Uk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJywnXyddKSwKKyAgICAgICAgKDIsIEFS UkFZWydBJywnXyddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJywnQiddKSwKKyAgICAgICAgKDQs IEFSUkFZWydCJywnXyddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZs YWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAg ICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2dyZWVkeV92 c19yZWx1Y3RhbnQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENI IFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErPyBCKQorICAgIERFRklORQorICAg ICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdz KQorKTsKKworLS0gUmVsdWN0YW50IGdyb3VwOiAoQSBCKSs/IG1hdGNoZXMgbWluaW11bSAxIGl0 ZXJhdGlvbgorV0lUSCB0ZXN0X3JlbHVjdGFudF9ncm91cCBBUyAoCisgICAgU0VMRUNUICogRlJP TSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydC J10pLAorICAgICAgICAoMywgQVJSQVlbJ0EnXSksCisgICAgICAgICg0LCBBUlJBWVsnQiddKQor ICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0 X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkg T1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X3JlbHVjdGFudF9ncm91cAorV0lORE9XIHcg QVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisg ICAgUEFUVEVSTiAoKEEgQikrPykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlko ZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisKKy0tIEErPyBCIChy ZWx1Y3RhbnQgcGx1cyk6IGV4aXRzIEEgYXQgZmlyc3QgQiBhdmFpbGFiaWxpdHkKKy0tIChTYW1l IHNjZW5hcmlvIGFzIGdyZWVkeS12cy1yZWx1Y3RhbnQgY29tcGFyaXNvbiBhYm92ZTsgcmV0YWlu ZWQgZm9yCistLSBzdGFuZGFsb25lIHF1YW50aWZpZXIgY292ZXJhZ2UgYWxvbmdzaWRlIEF7MSwz fT8gYW5kIEF7MiwzfT8gYmVsb3cpCitXSVRIIHRlc3RfcmVsdWN0YW50X3BsdXMgQVMgKAorICAg IFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnLCdfJ10pLAorICAg ICAgICAoMiwgQVJSQVlbJ0EnLCdfJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0EnLCdCJ10pLAor ICAgICAgICAoNCwgQVJSQVlbJ0InLCdfJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NF TEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxh c3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9yZWx1Y3RhbnRfcGx1 cworV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNU IExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSs/IEIpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMg J0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOworCist LSBBezEsM30/IEIgKHJlbHVjdGFudCBib3VuZGVkKTogc2FtZSBkYXRhLCBib3VuZGVkIHF1YW50 aWZpZXIKK1dJVEggdGVzdF9yZWx1Y3RhbnRfYm91bmRlZCBBUyAoCisgICAgU0VMRUNUICogRlJP TSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQScsJ18nXSksCisgICAgICAgICgyLCBBUlJB WVsnQScsJ18nXSksCisgICAgICAgICgzLCBBUlJBWVsnQScsJ0InXSksCisgICAgICAgICg0LCBB UlJBWVsnQicsJ18nXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFn cywgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkg T1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X3JlbHVjdGFudF9ib3VuZGVkCitXSU5ET1cg dyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgICBQQVRURVJOIChBezEsM30/IEIpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0g QU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOworCistLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tIFBhdGhvbG9naWNhbCBQYXR0ZXJuIFJ1bnRpbWUgUHJvdGVjdGlvbgorLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0t IENvbXBsZXggbmVzdGVkIG51bGxhYmxlICgoQSogQiopKikgLSBSdW50aW1lIHByb3RlY3Rpb24K K1dJVEggdGVzdF9jb21wbGV4X25lc3RlZCBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVT CisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydBJ10pLAorICAg ICAgICAoMywgQVJSQVlbJ0InXSksCisgICAgICAgICg0LCBBUlJBWVsnQiddKSwKKyAgICAgICAg KDUsIEFSUkFZWydDJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxh Z3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAg ICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfY29tcGxleF9u ZXN0ZWQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAg VE8gTkVYVCBST1cKKyAgICBQQVRURVJOICgoQSogQiopKikKKyAgICBERUZJTkUKKyAgICAgICAg QSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7 CisKKy0tIE5lc3RlZCBudWxsYWJsZSB3aXRoIHF1YW50aWZpZXIgKChBezAsM30pKikKK1dJVEgg dGVzdF9uZXN0ZWRfcXVhbnRpZmllciBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisg ICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydBJ10pLAorICAgICAg ICAoMywgQVJSQVlbJ0EnXSksCisgICAgICAgICg0LCBBUlJBWVsnQiddKQorICAgICkgQVMgdChp ZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBP VkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1h dGNoX2VuZAorRlJPTSB0ZXN0X25lc3RlZF9xdWFudGlmaWVyCitXSU5ET1cgdyBBUyAoCisgICAg T1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAo KEF7MCwzfSkqKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncykKKyk7 CisKKy0tIFJlbHVjdGFudCBudWxsYWJsZTogQSo/IChwcmVmZXJzIDAgbWF0Y2hlcykKKy0tIEEq PyBhbHdheXMgdGFrZXMgc2tpcCBwYXRoICgwIGl0ZXJhdGlvbnMgcHJlZmVycmVkKQorV0lUSCB0 ZXN0X3JlbHVjdGFudF9udWxsYWJsZSBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisg ICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydBJ10pLAorICAgICAg ICAoMywgQVJSQVlbJ0EnXSksCisgICAgICAgICg0LCBBUlJBWVsnXyddKQorICAgICkgQVMgdChp ZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBP VkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1h dGNoX2VuZAorRlJPTSB0ZXN0X3JlbHVjdGFudF9udWxsYWJsZQorV0lORE9XIHcgQVMgKAorICAg IE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4g KEEqPyBCKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAg ICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKworLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBBbHRlcm5hdGlvbiBS dW50aW1lIEJlaGF2aW9yCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKworLS0gTXVsdGktYnJhbmNoIGFsdGVybmF0aW9uIChB IChCfEN8RHxFKSBGKQorV0lUSCB0ZXN0X211bHRpX2JyYW5jaCBBUyAoCisgICAgU0VMRUNUICog RlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZ WydCJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0YnXSksCisgICAgICAgICg0LCBBUlJBWVsnQSdd KSwKKyAgICAgICAgKDUsIEFSUkFZWydDJ10pLAorICAgICAgICAoNiwgQVJSQVlbJ0YnXSksCisg ICAgICAgICg3LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDgsIEFSUkFZWydEJ10pLAorICAgICAg ICAoOSwgQVJSQVlbJ0YnXSksCisgICAgICAgICgxMCwgQVJSQVlbJ0EnXSksCisgICAgICAgICgx MSwgQVJSQVlbJ0UnXSksCisgICAgICAgICgxMiwgQVJSQVlbJ0YnXSkKKyAgICApIEFTIHQoaWQs IGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZF UiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRj aF9lbmQKK0ZST00gdGVzdF9tdWx0aV9icmFuY2gKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBC WSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBIChCIHwg QyB8IEQgfCBFKSBGKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyks CisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQyBBUyAnQycgPSBBTlko ZmxhZ3MpLAorICAgICAgICBEIEFTICdEJyA9IEFOWShmbGFncyksCisgICAgICAgIEUgQVMgJ0Un ID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgRiBBUyAnRicgPSBBTlkoZmxhZ3MpCispOworCistLSBB bHRlcm5hdGlvbiB3aXRoIHF1YW50aWZpZXJzIChBKyB8IEIrIHwgQyspCitXSVRIIHRlc3RfYWx0 X3F1YW50aWZpZXJzIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEs IEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJB WVsnQSddKSwKKyAgICAgICAgKDQsIEFSUkFZWydCJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ0In XSksCisgICAgICAgICg2LCBBUlJBWVsnQyddKSwKKyAgICAgICAgKDcsIEFSUkFZWydDJ10pLAor ICAgICAgICAoOCwgQVJSQVlbJ0MnXSksCisgICAgICAgICg5LCBBUlJBWVsnQyddKQorICAgICkg QVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVl KGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3 IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2FsdF9xdWFudGlmaWVycworV0lORE9XIHcgQVMgKAor ICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRF Uk4gKEErIHwgQisgfCBDKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxh Z3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncyksCisgICAgICAgIEMgQVMgJ0MnID0g QU5ZKGZsYWdzKQorKTsKKworLS0gYWx0UHJpb3JpdHkgcmVwbGFjZW1lbnQgKEEgQiBDIHwgRCkK Ky0tIEQgYnJhbmNoIChoaWdoZXIgYWx0UHJpb3JpdHkpIG1hdGNoZXMgZmlyc3QgYXQgcm93IDEs CistLSB0aGVuIEEgQiBDIGJyYW5jaCAobG93ZXIgYWx0UHJpb3JpdHkpIHJlcGxhY2VzIGl0IGF0 IHJvdyAzLgorV0lUSCB0ZXN0X2FsdF9yZXBsYWNlIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChW QUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJywgJ0QnXSksCisgICAgICAgICgyLCBBUlJBWVsn QicsICdfJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0MnLCAnXyddKSwKKyAgICAgICAgKDQsIEFS UkFZWydfJywgJ18nXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFn cywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAg IGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9hbHRfcmVwbGFj ZQorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBO RVhUIFJPVworICAgIFBBVFRFUk4gKEEgQiBDIHwgRCkKKyAgICBERUZJTkUKKyAgICAgICAgQSBB UyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncyksCisgICAg ICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgRCBBUyAnRCcgPSBBTlkoZmxhZ3Mp CispOworCistLSBBTFQgbGV4aWNhbCBvcmRlciB0YWtlcyBwcmlvcml0eSBvdmVyIGdyZWVkeSAo bG9uZ2VyIG1hdGNoKS4KKy0tIFJvdyAxIG1hdGNoZXMgYm90aCBBIGFuZCBCOyBBIHdpbnMgYnkg bGV4aWNhbCBvcmRlciAobWF0Y2ggMS0xKS4KK1dJVEggdGVzdF9hbHRfbGV4aWNhbF9vcmRlciBB UyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQScsJ0In XSksICAtLSBBIGFuZCBCIGJvdGggbWF0Y2gKKyAgICAgICAgKDIsIEFSUkFZWydfJywnQyddKSAg IC0tIG9ubHkgQyBtYXRjaGVzICh3b3VsZCBjb250aW51ZSBCIEMpCisgICAgKSBBUyB0KGlkLCBm bGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIg dyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hf ZW5kCitGUk9NIHRlc3RfYWx0X2xleGljYWxfb3JkZXIKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRF UiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChB IHwgQiBDKSspCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAg ICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAorICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFn cykKKyk7CisKKy0tIEFMVCB3aXRoIHJlbHVjdGFudDogKEErPyB8IEIrKSAtIEEgYnJhbmNoIGlz IHJlbHVjdGFudCwgQiBpcyBncmVlZHkuCistLSBSb3cgMSBtYXRjaGVzIGJvdGggQSBhbmQgQi4g QSs/IGV4aXRzIGltbWVkaWF0ZWx5IChtYXRjaCAxLTEpLgorV0lUSCB0ZXN0X2FsdF9yZWx1Y3Rh bnQgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0En LCdCJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0InLCdfJ10pLAorICAgICAgICAoMywgQVJSQVlb J0InLCdfJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisg ICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0 X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfYWx0X3JlbHVjdGFudAor V0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExB U1QgUk9XCisgICAgUEFUVEVSTiAoKEErPyB8IEIrKSkKKyAgICBERUZJTkUKKyAgICAgICAgQSBB UyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisK Ky0tIE9wdGlvbmFsIGZpcnN0IGJyYW5jaCBpbiBBTFQgd2l0aCBxdWFudGlmaWVyOiAoQT8gfCBC KXsxLDJ9CistLSBGaXJzdCBicmFuY2ggQT8gZXhpdCBwYXRoIG1heSBsb29wIGJhY2sgdG8gQUxU IGFuZCB0cmlnZ2VyIGN5Y2xlCistLSBkZXRlY3Rpb24gZHVyaW5nIERGUy4gIEFsbCBicmFuY2hl cyBtdXN0IHJlY2VpdmUgY29ycmVjdCBjb3VudHMuCitXSVRIIHRlc3RfYWx0X29wdF9maXJzdCBB UyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQiddKSwK KyAgICAgICAgKDIsIEFSUkFZWydCJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0InXSkKKyAgICAp IEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1 ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIg dyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9hbHRfb3B0X2ZpcnN0CitXSU5ET1cgdyBBUyAoCisg ICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVS TiAoKChBPyB8IEIpezEsMn0pKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShm bGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKworLS0gTWl4ZWQgQS9C IHJvd3MgYWNyb3NzIGl0ZXJhdGlvbnMgb2YgKEE/IHwgQil7MSwyfQorV0lUSCB0ZXN0X2FsdF9v cHRfbWl4ZWQgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJS QVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDMsIEFSUkFZWydB JywnQiddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAg ICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92 YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2FsdF9vcHRfbWl4ZWQKK1dJ TkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBS T1cKKyAgICBQQVRURVJOICgoKEE/IHwgQil7MSwyfSkpCisgICAgREVGSU5FCisgICAgICAgIEEg QVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOwor CistLSBSZWx1Y3RhbnQgdmFyaWFudDogKEE/PyB8IEIpezEsMn0KK1dJVEggdGVzdF9hbHRfb3B0 X3JlbHVjdGFudCBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBB UlJBWVsnQiddKSwKKyAgICAgICAgKDIsIEFSUkFZWydCJ10pLAorICAgICAgICAoMywgQVJSQVlb J0InXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAg ICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFs dWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9hbHRfb3B0X3JlbHVjdGFudAor V0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhU IFJPVworICAgIFBBVFRFUk4gKCgoQT8/IHwgQil7MSwyfSkpCisgICAgREVGSU5FCisgICAgICAg IEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCisp OworCistLSBPdmVybGFwcGluZyBtYXRjaDogQSBCIEMgRCBFIHwgQiBDIEQgfCBDIEQgRSBGIChT S0lQIFBBU1QgTEFTVCBST1cpCitXSVRIIHRlc3Rfb3ZlcmxhcDEgQVMgKAorICAgIFNFTEVDVCAq IEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJB WVsnQiddKSwKKyAgICAgICAgKDMsIEFSUkFZWydDJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0Qn XSksCisgICAgICAgICg1LCBBUlJBWVsnRSddKSwKKyAgICAgICAgKDYsIEFSUkFZWydGJ10pCisg ICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlk KSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9l bmQKK0ZST00gdGVzdF9vdmVybGFwMQorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg QUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCIEMgRCBFIHwg QiBDIEQgfCBDIEQgRSBGKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFn cyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQyBBUyAnQycgPSBB TlkoZmxhZ3MpLAorICAgICAgICBEIEFTICdEJyA9IEFOWShmbGFncyksCisgICAgICAgIEUgQVMg J0UnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgRiBBUyAnRicgPSBBTlkoZmxhZ3MpCispOworCist LSBTYW1lIHdpdGggU0tJUCBUTyBORVhUIFJPVzogdGhyZWUgb3ZlcmxhcHBpbmcgbWF0Y2hlcwor V0lUSCB0ZXN0X292ZXJsYXAxIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAg ICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0InXSksCisgICAgICAgICgz LCBBUlJBWVsnQyddKSwKKyAgICAgICAgKDQsIEFSUkFZWydEJ10pLAorICAgICAgICAoNSwgQVJS QVlbJ0UnXSksCisgICAgICAgICg2LCBBUlJBWVsnRiddKQorICAgICkgQVMgdChpZCwgZmxhZ3Mp CispCitTRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0 YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3Rfb3Zlcmxh cDEKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8g TkVYVCBST1cKKyAgICBQQVRURVJOIChBIEIgQyBEIEUgfCBCIEMgRCB8IEMgRCBFIEYpCisgICAg REVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicg PSBBTlkoZmxhZ3MpLAorICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncyksCisgICAgICAgIEQg QVMgJ0QnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgRSBBUyAnRScgPSBBTlkoZmxhZ3MpLAorICAg ICAgICBGIEFTICdGJyA9IEFOWShmbGFncykKKyk7CisKKy0tIExvbmdlciBwYXR0ZXJuIGZhaWxz LCBzaG9ydGVyIHN1cnZpdmVzOiBBKyBCIEMgRCBFIHwgQisgQworV0lUSCB0ZXN0X292ZXJsYXAx YiBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSdd KSwKKyAgICAgICAgKDIsIEFSUkFZWydCJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0MnXSksCisg ICAgICAgICg0LCBBUlJBWVsnRCddKSwKKyAgICAgICAgKDUsIEFSUkFZWydYJ10pCisgICAgKSBB UyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVS IHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZS T00gdGVzdF9vdmVybGFwMWIKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVS IE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIgQyBEIEUgfCBCKyBD KQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIg QVMgJ0InID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQyBBUyAnQycgPSBBTlkoZmxhZ3MpLAorICAg ICAgICBEIEFTICdEJyA9IEFOWShmbGFncyksCisgICAgICAgIEUgQVMgJ0UnID0gQU5ZKGZsYWdz KQorKTsKKworLS0gTG9uZyBCIHNlcXVlbmNlIHdpdGggZGlmZmVyZW50IGVuZGluZ3M6IEEgQisg QyB8IEIrIEQKK1dJVEggdGVzdF9vdmVybGFwMiBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFM VUVTCisgICAgICAgICgxLCAgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCAgQVJSQVlbJ0InXSks CisgICAgICAgICgzLCAgQVJSQVlbJ0InXSksCisgICAgICAgICg0LCAgQVJSQVlbJ0InXSksCisg ICAgICAgICg1LCAgQVJSQVlbJ0InXSksCisgICAgICAgICg2LCAgQVJSQVlbJ0MnXSksCisgICAg ICAgICg3LCAgQVJSQVlbJ0InXSksCisgICAgICAgICg4LCAgQVJSQVlbJ0InXSksCisgICAgICAg ICg5LCAgQVJSQVlbJ0InXSksCisgICAgICAgICgxMCwgQVJSQVlbJ0QnXSkKKyAgICApIEFTIHQo aWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBB UyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0 ZXN0X292ZXJsYXAyCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRD SCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSBCKyBDIHwgQisgRCkKKyAgICBERUZJ TkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFO WShmbGFncyksCisgICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgRCBBUyAn RCcgPSBBTlkoZmxhZ3MpCispOworCistLSBHcmVlZHkgd2l0aCBsYXRlIGZhaWx1cmUgKCJiZXRy YXlhbCIpOiBBIEIgQysgRCB8IEEgQgorV0lUSCB0ZXN0X2JldHJheWFsIEFTICgKKyAgICBTRUxF Q1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwg QVJSQVlbJ0InXSksCisgICAgICAgICgzLCBBUlJBWVsnQyddKSwKKyAgICAgICAgKDQsIEFSUkFZ WydDJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ0MnXSksCisgICAgICAgICg2LCBBUlJBWVsnRSdd KQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1 ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0 Y2hfZW5kCitGUk9NIHRlc3RfYmV0cmF5YWwKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBp ZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQiBDKyBE IHwgQSBCKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAg ICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQyBBUyAnQycgPSBBTlkoZmxhZ3Mp LAorICAgICAgICBEIEFTICdEJyA9IEFOWShmbGFncykKKyk7CisKKy0tIE11bHRpcGxlIFRSVUUg cGVyIHJvdzogb3ZlcmxhcHBpbmcgcGF0dGVybiB2YXJpYWJsZXMKK1dJVEggdGVzdF9tdWx0aV90 cnVlIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydB JywnQiddKSwKKyAgICAgICAgKDIsIEFSUkFZWydCJywnQyddKSwKKyAgICAgICAgKDMsIEFSUkFZ WydDJywnRCddKSwKKyAgICAgICAgKDQsIEFSUkFZWydEJywnRSddKSwKKyAgICAgICAgKDUsIEFS UkFZWydFJywnXyddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdz LCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBP VkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfbXVsdGlfdHJ1ZQorV0lORE9XIHcgQVMgKAor ICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFU VEVSTiAoQSBCIEMgRCBFKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFn cyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQyBBUyAnQycgPSBB TlkoZmxhZ3MpLAorICAgICAgICBEIEFTICdEJyA9IEFOWShmbGFncyksCisgICAgICAgIEUgQVMg J0UnID0gQU5ZKGZsYWdzKQorKTsKKworLS0gRGlhZ29uYWwgcGF0dGVybiB3aXRoIHNoaWZ0ZWQg bXVsdGktVFJVRSBvdmVybGFwCitXSVRIIHRlc3RfZGlhZ29uYWwgQVMgKAorICAgIFNFTEVDVCAq IEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnLCdfJ10pLAorICAgICAgICAoMiwg QVJSQVlbJ0InLCdBJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0MnLCdCJ10pLAorICAgICAgICAo NCwgQVJSQVlbJ0QnLCdDJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ18nLCdEJ10pCisgICAgKSBB UyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVS IHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZS T00gdGVzdF9kaWFnb25hbAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIg TUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEEgQiBDIEQpCisgICAgREVGSU5F CisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlko ZmxhZ3MpLAorICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncyksCisgICAgICAgIEQgQVMgJ0Qn ID0gQU5ZKGZsYWdzKQorKTsKKworLS0gKChBIHwgQikgQykrIC0gYWx0ZXJuYXRpb24gaW5zaWRl IGdyb3VwIHdpdGggb3V0ZXIgcXVhbnRpZmllcgorV0lUSCB0ZXN0X2FsdF9ncm91cCBBUyAoCisg ICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAg ICAgKDIsIEFSUkFZWydDJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0InXSksCisgICAgICAgICg0 LCBBUlJBWVsnQyddKSwKKyAgICAgICAgKDUsIEFSUkFZWydYJ10pCisgICAgKSBBUyB0KGlkLCBm bGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0 Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9h bHRfZ3JvdXAKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNL SVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKCgoQSB8IEIpIEMpKykKKyAgICBERUZJTkUK KyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShm bGFncyksCisgICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKQorKTsKKworLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBE ZWVwIE5lc3RlZCBHcm91cHMKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorCistLSBUaHJlZS1sZXZlbCBuZXN0aW5nICgoKChB IEIpKykrKSspCitXSVRIIHRlc3RfZGVlcF9uZXN0aW5nIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9N IChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0In XSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQsIEFSUkFZWydCJ10pLAor ICAgICAgICAoNSwgQVJSQVlbJ0EnXSksCisgICAgICAgICg2LCBBUlJBWVsnQiddKSwKKyAgICAg ICAgKDcsIEFSUkFZWydfJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwg ZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAg ICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfZGVlcF9u ZXN0aW5nCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQ IFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoKCgoQSBCKSspKykrKQorICAgIERFRklORQorICAg ICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdz KQorKTsKKworLS0gTXVsdGlwbGUgZ3JvdXBzIGluIG5lc3RpbmcgKCgoQSBCKSAoQyBEKSkrKQor V0lUSCB0ZXN0X25lc3RlZF9zZXF1ZW50aWFsIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxV RVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0InXSksCisg ICAgICAgICgzLCBBUlJBWVsnQyddKSwKKyAgICAgICAgKDQsIEFSUkFZWydEJ10pLAorICAgICAg ICAoNSwgQVJSQVlbJ0EnXSksCisgICAgICAgICg2LCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDcs IEFSUkFZWydDJ10pLAorICAgICAgICAoOCwgQVJSQVlbJ0QnXSksCisgICAgICAgICg5LCBBUlJB WVsnXyddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAg ICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92 YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X25lc3RlZF9zZXF1ZW50aWFs CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5F WFQgUk9XCisgICAgUEFUVEVSTiAoKChBIEIpIChDIEQpKSspCisgICAgREVGSU5FCisgICAgICAg IEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAor ICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncyksCisgICAgICAgIEQgQVMgJ0QnID0gQU5ZKGZs YWdzKQorKTsKKworLS0gTmVzdGVkIEVORC0+RU5EIG1heCByZWFjaGVkCistLSBJbm5lciBncm91 cCAoQSBCKXsyfSByZWFjaGVzIG1heD0yIC0+IGV4aXRzIHRvIG91dGVyIEVORAorV0lUSCB0ZXN0 X2VuZF9uZXN0ZWRfbWF4IEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAg KDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0InXSksCisgICAgICAgICgzLCBB UlJBWVsnQSddKSwKKyAgICAgICAgKDQsIEFSUkFZWydCJ10pLAorICAgICAgICAoNSwgQVJSQVlb J0EnXSksCisgICAgICAgICg2LCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDcsIEFSUkFZWydBJ10p LAorICAgICAgICAoOCwgQVJSQVlbJ0InXSksCisgICAgICAgICg5LCBBUlJBWVsnXyddKQorICAg ICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3Zh bHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZF UiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2VuZF9uZXN0ZWRfbWF4CitXSU5ET1cgdyBBUyAo CisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFU VEVSTiAoKChBIEIpezJ9KSspCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZs YWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOworCistLSBOZXN0ZWQgRU5E LT5FTkQgYmV0d2VlbiBtaW4vbWF4CistLSBJbm5lciBncm91cCAoQSBCKXsxLDN9IGV4aXRzIGJl dHdlZW4gbWluL21heCAtPiBvdXRlciBFTkQgY291bnQrKworV0lUSCB0ZXN0X2VuZF9uZXN0ZWRf bWlkIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydB J10pLAorICAgICAgICAoMiwgQVJSQVlbJ0InXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwK KyAgICAgICAgKDQsIEFSUkFZWydCJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ0EnXSksCisgICAg ICAgICg2LCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDcsIEFSUkFZWydBJ10pLAorICAgICAgICAo OCwgQVJSQVlbJ0InXSksCisgICAgICAgICg5LCBBUlJBWVsnXyddKQorICAgICkgQVMgdChpZCwg ZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVS IHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNo X2VuZAorRlJPTSB0ZXN0X2VuZF9uZXN0ZWRfbWlkCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIg QlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoKChBIEIp ezEsM30pKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAg ICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisKKy0tIE5lc3RlZCByZWx1Y3RhbnQgZ3Jv dXAgKChBIEIpKz8pIHdpdGggZm9sbG93aW5nIGVsZW1lbnQgQworLS0gSW5uZXIgZ3JvdXAgZXhp dHMgYWZ0ZXIgbWluaW11bSAxIGl0ZXJhdGlvbgorV0lUSCB0ZXN0X25lc3RlZF9yZWx1Y3RhbnQg QVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSks CisgICAgICAgICgyLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10pLAorICAg ICAgICAoNCwgQVJSQVlbJ0InXSksCisgICAgICAgICg1LCBBUlJBWVsnQyddKQorICAgICkgQVMg dChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlk KSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFT IG1hdGNoX2VuZAorRlJPTSB0ZXN0X25lc3RlZF9yZWx1Y3RhbnQKK1dJTkRPVyB3IEFTICgKKyAg ICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJO ICgoQSBCKSs/IEMpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwK KyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAorICAgICAgICBDIEFTICdDJyA9IEFOWShm bGFncykKKyk7CisKKy0tIChBIEIpezJ9IC0gZ3JvdXAgd2l0aCBleGFjdCBxdWFudGlmaWVyCitX SVRIIHRlc3RfZ3JvdXBfZXhhY3QgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAg ICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQiddKSwKKyAgICAgICAg KDMsIEFSUkFZWydBJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0InXSksCisgICAgICAgICg1LCBB UlJBWVsnWCddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLCBm aXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVS IHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfZ3JvdXBfZXhhY3QKK1dJTkRPVyB3IEFTICgKKyAg ICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRF Uk4gKChBIEIpezJ9KQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyks CisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKworLS0gTmVzdGVkIEVORC0+RU5E IGZhc3QtZm9yd2FyZAorLS0gV2hlbiBhbiBpbm5lciBncm91cCBoYXMgYSBudWxsYWJsZSBib2R5 IGFuZCBjb3VudCA8IG1pbiwgdGhlCistLSBmYXN0LWZvcndhcmQgcGF0aCBleGl0cyB0aHJvdWdo IHRoZSBvdXRlciBFTkQsIGluY3JlbWVudGluZworLS0gdGhlIG91dGVyIGdyb3VwJ3MgY291bnQg KG5vZGVXaW5kb3dBZ2cuYyBuZmFfYWR2YW5jZV9lbmQpLgorLS0gUGF0dGVybjogKChBPyl7Miwz fSl7MiwzfSAtLSBuZXN0ZWQgZ3JvdXBzLCBuZWl0aGVyIGNvbGxhcHNlcworLS0gYmVjYXVzZSB0 aGUgb3B0aW1pemVyIGNhbm5vdCBzYWZlbHkgbXVsdGlwbHkgbm9uLWV4YWN0IHF1YW50aWZpZXJz LgorLS0gRGF0YSBoYXMgbm8gQSByb3dzLCBmb3JjaW5nIGFsbC1lbXB0eSBpdGVyYXRpb25zIHZp YSBmYXN0LWZvcndhcmQuCitXSVRIIHRlc3RfbmVzdGVkX2ZmIEFTICgKKyAgICBTRUxFQ1QgKiBG Uk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydCJ10pLAorICAgICAgICAoMiwgQVJSQVlb J0InXSksCisgICAgICAgICgzLCBBUlJBWVsnQiddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCisp CitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0 Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJP TSB0ZXN0X25lc3RlZF9mZgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIg TUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKCgoQT8pezIsM30pezIsM30pCisg ICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKQorKTsKKworLS0gPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LSBTS0lQIE9wdGlvbnMgKFJ1bnRpbWUpCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLS0gU0tJUCBQQVNUIExBU1QgUk9X IChub24tb3ZlcmxhcHBpbmcgbWF0Y2hlcykKK1dJVEggdGVzdF9za2lwX3Bhc3QgQVMgKAorICAg IFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAg ICgyLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10pLAorICAgICAgICAoNCwg QVJSQVlbJ0EnXSksCisgICAgICAgICg1LCBBUlJBWVsnXyddKQorICAgICkgQVMgdChpZCwgZmxh Z3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcg QVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2Vu ZAorRlJPTSB0ZXN0X3NraXBfcGFzdAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg QUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSspCisgICAgREVG SU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKQorKTsKKworLS0gU0tJUCBUTyBORVhU IFJPVyAob3ZlcmxhcHBpbmcgbWF0Y2hlcykKK1dJVEggdGVzdF9za2lwX25leHQgQVMgKAorICAg IFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAg ICgyLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10pLAorICAgICAgICAoNCwg QVJSQVlbJ0EnXSksCisgICAgICAgICg1LCBBUlJBWVsnXyddKQorICAgICkgQVMgdChpZCwgZmxh Z3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcg QVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2Vu ZAorRlJPTSB0ZXN0X3NraXBfbmV4dAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg QUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklO RQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncykKKyk7CisKKy0tIFNLSVAgZGlmZmVyZW5j ZSB2ZXJpZmljYXRpb24KK1dJVEggdGVzdF9za2lwX2RpZmYgQVMgKAorICAgIFNFTEVDVCAqIEZS T00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsn QiddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0InXSkK KyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUICdTS0lQIFBBU1QnIEFTIG1vZGUsIGlk LCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAor ICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9za2lw X2RpZmYKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAg UEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQikKKyAgICBERUZJTkUKKyAgICAgICAgQSBB UyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKykKK1VO SU9OIEFMTAorU0VMRUNUICdTS0lQIE5FWFQnIEFTIG1vZGUsIGlkLCBmbGFncywKKyAgICAgICBm aXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUo aWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9za2lwX2RpZmYKK1dJTkRPVyB3IEFT ICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQ QVRURVJOIChBIEIpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwK KyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispCitPUkRFUiBCWSBtb2RlLCBpZDsKKwor LS0gUmVsdWN0YW50IFNLSVAgY29tcGFyaXNvbjogQSs/IHdpdGggU0tJUCBQQVNUIHZzIFNLSVAg TkVYVAorV0lUSCB0ZXN0X3JlbHVjdGFudF9za2lwIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChW QUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0EnXSks CisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQsIEFSUkFZWydfJ10pCisgICAg KSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCAnU0tJUCBQQVNUJyBBUyBtb2RlLCBpZCwgZmxh Z3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAg ICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfcmVsdWN0YW50 X3NraXAKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAg UEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErPykKKyAgICBERUZJTkUKKyAgICAgICAgQSBB UyAnQScgPSBBTlkoZmxhZ3MpCispCitVTklPTiBBTEwKK1NFTEVDVCAnU0tJUCBORVhUJyBBUyBt b2RlLCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9z dGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRl c3RfcmVsdWN0YW50X3NraXAKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVS IE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBKz8pCisgICAgREVGSU5FCisg ICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKQorKQorT1JERVIgQlkgbW9kZSwgaWQ7CisKKy0t ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0gSU5JVElBTCBNb2RlIChSdW50aW1lKQorLS0gUGxhY2Vob2xkZXI6IElOSVRJQUwg aXMgbm90IHlldCBpbXBsZW1lbnRlZCAoc3ludGF4IGVycm9yKS4KKy0tIEtlcHQgaGVyZSBzbyB0 ZXN0cyBjb252ZXJ0IHRvIHJ1bnRpbWUgdGVzdHMgd2hlbiBpbXBsZW1lbnRlZC4KKy0tID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor CistLSBJTklUSUFMIG1vZGUgKG5vdCB5ZXQgc3VwcG9ydGVkIC0gcHJvZHVjZXMgc3ludGF4IGVy cm9yKQorV0lUSCB0ZXN0X2luaXRpYWxfbW9kZSBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFM VUVTCisgICAgICAgICgxLCBBUlJBWVsnXyddKSwgIC0tIFVubWF0Y2hlZAorICAgICAgICAoMiwg QVJSQVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQsIEFSUkFZ WydfJ10pLCAgLS0gVW5tYXRjaGVkCisgICAgICAgICg1LCBBUlJBWVsnQSddKQorICAgICkgQVMg dChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlk KSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFT IG1hdGNoX2VuZAorRlJPTSB0ZXN0X2luaXRpYWxfbW9kZQorV0lORE9XIHcgQVMgKAorICAgIE9S REVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgSU5JVElBTAorICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAg ICBQQVRURVJOIChBKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3Mp CispOworCistLSBEZWZhdWx0IG1vZGUgKGluY2x1ZGUgYWxsIHJvd3MpCitXSVRIIHRlc3RfZGVm YXVsdF9tb2RlIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFS UkFZWydfJ10pLCAgLS0gVW5tYXRjaGVkLCBidXQgaW5jbHVkZWQKKyAgICAgICAgKDIsIEFSUkFZ WydBJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0EnXSksCisgICAgICAgICg0LCBBUlJBWVsnXydd KSwgIC0tIFVubWF0Y2hlZCwgYnV0IGluY2x1ZGVkCisgICAgICAgICg1LCBBUlJBWVsnQSddKQor ICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0 X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkg T1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2RlZmF1bHRfbW9kZQorV0lORE9XIHcgQVMg KAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBB VFRFUk4gKEErKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncykKKyk7 CisKKy0tIE1vZGUgZGlmZmVyZW5jZSB2ZXJpZmljYXRpb24gKElOSVRJQUwgbm90IHlldCBzdXBw b3J0ZWQgLSBwcm9kdWNlcyBzeW50YXggZXJyb3IpCitXSVRIIHRlc3RfbW9kZV9kaWZmIEFTICgK KyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydfJ10pLAorICAg ICAgICAoMiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnXyddKQorICAgICkgQVMg dChpZCwgZmxhZ3MpCispCitTRUxFQ1QgJ0lOSVRJQUwnIEFTIG1vZGUsIENPVU5UKCopIEFTIHJv d19jb3VudAorRlJPTSAoCisgICAgU0VMRUNUIGlkIEZST00gdGVzdF9tb2RlX2RpZmYKKyAgICBX SU5ET1cgdyBBUyAoCisgICAgICAgIE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBJTklUSUFMCisgICAg ICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICAgICAgUEFUVEVSTiAoQSkKKyAg ICAgICAgREVGSU5FIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKQorICAgICkKKykgc3ViCitVTklPTiBB TEwKK1NFTEVDVCAnREVGQVVMVCcgQVMgbW9kZSwgQ09VTlQoKikgQVMgcm93X2NvdW50CitGUk9N ICgKKyAgICBTRUxFQ1QgaWQgRlJPTSB0ZXN0X21vZGVfZGlmZgorICAgIFdJTkRPVyB3IEFTICgK KyAgICAgICAgT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBS T1cKKyAgICAgICAgUEFUVEVSTiAoQSkKKyAgICAgICAgREVGSU5FIEEgQVMgJ0EnID0gQU5ZKGZs YWdzKQorICAgICkKKykgc3ViCitPUkRFUiBCWSBtb2RlOworCistLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEZyYW1lIEJv dW5kYXJ5IFZhcmlhdGlvbnMKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorCistLSBWZXJ5IGxpbWl0ZWQgZnJhbWUgKDEgRk9M TE9XSU5HKQorV0lUSCB0ZXN0X29uZV9mb2xsb3dpbmcgQVMgKAorICAgIFNFTEVDVCAqIEZST00g KFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQidd KSwgIC0tIFdpdGhpbiAxIEZPTExPV0lORworICAgICAgICAoMywgQVJSQVlbJ0EnXSksICAtLSBC ZXlvbmQgMSBGT0xMT1dJTkcgZnJvbSByb3cgMQorICAgICAgICAoNCwgQVJSQVlbJ0InXSkKKyAg ICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92 YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9W RVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9vbmVfZm9sbG93aW5nCitXSU5ET1cgdyBBUyAo CisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDEgRk9M TE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEEg QikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBC IEFTICdCJyA9IEFOWShmbGFncykKKyk7CisKKy0tIE1lZGl1bSBmcmFtZSAoMTAgRk9MTE9XSU5H KQorV0lUSCB0ZXN0X3Rlbl9mb2xsb3dpbmcgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVF UworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQSddKSwKKyAg ICAgICAgKDMsIEFSUkFZWydBJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0EnXSksCisgICAgICAg ICg1LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDYsIEFSUkFZWydBJ10pLAorICAgICAgICAoNywg QVJSQVlbJ0EnXSksCisgICAgICAgICg4LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDksIEFSUkFZ WydBJ10pLAorICAgICAgICAoMTAsIEFSUkFZWydBJ10pLAorICAgICAgICAoMTEsIEFSUkFZWydC J10pLCAgLS0gV2l0aGluIDEwIEZPTExPV0lORyBmcm9tIHJvdyAxCisgICAgICAgICgxMiwgQVJS QVlbJ0EnXSksCisgICAgICAgICgxMywgQVJSQVlbJ0InXSkgICAtLSBCZXlvbmQgMTAgRk9MTE9X SU5HIGZyb20gcm93IDEKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFn cywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAg IGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF90ZW5fZm9sbG93 aW5nCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIDEwIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBS T1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFO WShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKworLS0gRXhhY3Qg Ym91bmRhcnkgbWF0Y2gKK1dJVEggdGVzdF9leGFjdF9ib3VuZGFyeSBBUyAoCisgICAgU0VMRUNU ICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFS UkFZWydBJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0EnXSksCisgICAgICAgICg0LCBBUlJBWVsn QSddKSwKKyAgICAgICAgKDUsIEFSUkFZWydCJ10pICAgLS0gRXhhY3RseSBhdCA0IEZPTExPV0lO RyAoZnJhbWUgZW5kKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdz LAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAg bGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2V4YWN0X2JvdW5k YXJ5CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIDQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJP VworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5Z KGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOworCistLSBOIEZPTExP V0lORyArIFNLSVAgVE8gTkVYVCBST1c6IG92ZXJsYXBwaW5nIG1hdGNoZXMgYm91bmRlZCBieSBm cmFtZQorLS0gUm93IDE6IGZyYW1lIFsxLDRdLCBBKDEtMykgQig0KSAtPiBtYXRjaAorLS0gUm93 IDI6IGZyYW1lIFsyLDVdLCBBKDItMykgQig0KSAtPiBtYXRjaAorLS0gUm93IDM6IGZyYW1lIFsz LDZdLCBBKDMpIEIoNCkgLT4gbWF0Y2gKKy0tIFJvdyA1OiBmcmFtZSBbNSw2XSwgQSg1KSBCKDYp IC0+IG1hdGNoCitXSVRIIHRlc3Rfbl9za2lwX25leHQgQVMgKAorICAgIFNFTEVDVCAqIEZST00g KFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQSdd KSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0InXSksCisg ICAgICAgICg1LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDYsIEFSUkFZWydCJ10pCisgICAgKSBB UyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUo aWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcg QVMgbWF0Y2hfZW5kCitGUk9NIHRlc3Rfbl9za2lwX25leHQKK1dJTkRPVyB3IEFTICgKKyAgICBP UkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgMyBGT0xMT1dJTkcK KyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSsgQikKKyAg ICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdC JyA9IEFOWShmbGFncykKKyk7CisKKy0tIEZyYW1lIGV4YWN0bHkgMSByb3cgc2hvcnQgb2YgcG90 ZW50aWFsIG1hdGNoCistLSBGcm9tIHJvdyAxOiBBIEEgQSBCIG5lZWRzIDQgcm93cyBidXQgZnJh bWUgaG9sZHMgMyAtPiBubyBtYXRjaAorLS0gRnJvbSByb3cgMjogQSBBIEIgZml0cyBpbiAzLXJv dyBmcmFtZSAtPiBtYXRjaAorV0lUSCB0ZXN0X2ZyYW1lX29uZV9zaG9ydCBBUyAoCisgICAgU0VM RUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIs IEFSUkFZWydBJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0EnXSksCisgICAgICAgICg0LCBBUlJB WVsnQiddKSwKKyAgICAgICAgKDUsIEFSUkFZWydBJ10pLAorICAgICAgICAoNiwgQVJSQVlbJ0In XSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBm aXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUo aWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9mcmFtZV9vbmVfc2hvcnQKK1dJTkRP VyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgMiBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFU VEVSTiAoQSsgQikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAor ICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisKKy0tID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gU3BlY2lhbCBQ YXJ0aXRpb24gQ2FzZXMKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorCistLSBFbXB0eSBwYXJ0aXRpb24gKDAgcm93cykKK1dJ VEggdGVzdF9lbXB0eV9wYXJ0aXRpb24gQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwor ICAgICAgICAoMSwgMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCAyLCBBUlJBWVsnXyddKSAg LS0gRGlmZmVyZW50IHBhcnRpdGlvbgorICAgICkgQVMgdChpZCwgcGFydCwgZmxhZ3MpCispCitT RUxFQ1QgaWQsIHBhcnQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMg bWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAor RlJPTSB0ZXN0X2VtcHR5X3BhcnRpdGlvbgorV0hFUkUgcGFydCA9IDk5ICAtLSBObyByb3dzIG1h dGNoCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIHBhcnQKKyAgICBPUkRFUiBCWSBp ZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBKQorICAgIERF RklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncykKKyk7CisKKy0tIFNpbmdsZSByb3cg cGFydGl0aW9uCitXSVRIIHRlc3Rfc2luZ2xlX3JvdyBBUyAoCisgICAgU0VMRUNUICogRlJPTSAo VkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCisp CitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0 Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJP TSB0ZXN0X3NpbmdsZV9yb3cKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVS IE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBKQorICAgIERFRklORQorICAg ICAgICBBIEFTICdBJyA9IEFOWShmbGFncykKKyk7CisKKy0tIEFsbCByb3dzIGZhaWwgbWF0Y2hp bmcgKGFsbCBERUZJTkUgZmFsc2UpCitXSVRIIHRlc3RfYWxsX2ZhaWwgQVMgKAorICAgIFNFTEVD VCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBB UlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10pCisgICAgKSBBUyB0KGlkLCBmbGFn cykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBB UyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5k CitGUk9NIHRlc3RfYWxsX2ZhaWwKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUK KyAgICAgICAgQSBBUyBmYWxzZSAgLS0gQWxsIHJvd3MgZmFpbAorKTsKKworLS0gUGFydGl0aW9u IGVuZCB3aXRoIGFic29yYmFibGUgcGF0dGVybgorLS0gU0tJUCBQQVNUIExBU1QgUk9XICsgdW5i b3VuZGVkIGZyYW1lICsgYWxsIHJvd3MgbWF0Y2ggQQorLS0gVHJpZ2dlcnMgYWJzb3JiIGluICFy b3dFeGlzdHMgcGF0aCBhdCBwYXJ0aXRpb24gYm91bmRhcnkuCitXSVRIIHRlc3RfYWJzb3JiX3Bh cnRpdGlvbl9lbmQgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwg QVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZ WydBJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0EnXSksCisgICAgICAgICg1LCBBUlJBWVsnQSdd KQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZp cnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShp ZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2Fic29yYl9wYXJ0aXRpb25fZW5kCitX SU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFT VCBST1cKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBB TlkoZmxhZ3MpCispOworCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIERFRklORSBTcGVjaWFsIENhc2VzCistLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K KworLS0gVW5kZWZpbmVkIHZhcmlhYmxlIGluIERFRklORQorV0lUSCB0ZXN0X3VuZGVmaW5lZF92 YXIgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0En XSksCisgICAgICAgICgyLCBBUlJBWVsnWCddKSwgIC0tIEIgbm90IGRlZmluZWQsIGRlZmF1bHRz IHRvIFRSVUUKKyAgICAgICAgKDMsIEFSUkFZWydDJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0En XSksCisgICAgICAgICg1LCBBUlJBWVsnXyddKSwgIC0tIEIgZGVmYXVsdHMgdG8gVFJVRSwgYnV0 IG5vIGZsYWdzCisgICAgICAgICg2LCBBUlJBWVsnQyddKQorICAgICkgQVMgdChpZCwgZmxhZ3Mp CispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMg bWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAor RlJPTSB0ZXN0X3VuZGVmaW5lZF92YXIKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBIEIgQykKKyAgICBE RUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICAtLSBCIGlzIHVu ZGVmaW5lZCwgZGVmYXVsdHMgdG8gVFJVRQorICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncykK Kyk7CisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0gQWJzb3JwdGlvbiBEeW5hbWljIEZsYWdzCistLSA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLS0g UGFydGlhbCBhYnNvcmJhYmxlIHBhdHRlcm4gKChBKykgQikKK1dJVEggdGVzdF9wYXJ0aWFsX2Fi c29yYmFibGUgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJS QVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZWydB J10pLAorICAgICAgICAoNCwgQVJSQVlbJ0InXSksCisgICAgICAgICg1LCBBUlJBWVsnXyddKQor ICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0 X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkg T1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X3BhcnRpYWxfYWJzb3JiYWJsZQorV0lORE9X IHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVwor ICAgIFBBVFRFUk4gKChBKykgQikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlko ZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisKKy0tIER5bmFtaWMg ZmxhZyB1cGRhdGUgKChBKykgfCBCKQorV0lUSCB0ZXN0X2R5bmFtaWNfZmxhZ3MgQVMgKAorICAg IFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAg ICgyLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10pLAorICAgICAgICAoNCwg QVJSQVlbJ0InXSksCisgICAgICAgICg1LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDYsIEFSUkFZ WydCJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAg ICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3Zh bHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfZHluYW1pY19mbGFncworV0lO RE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJP VworICAgIFBBVFRFUk4gKChBKykgfCBCKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9 IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKworLS0gTm9u LWFic29yYmFibGUgY29udGV4dCBkdXJpbmcgYWJzb3JwdGlvbgorLS0gUGF0dGVybiAoQSBCKSsg QzogQSxCIGluIGFic29yYmFibGUgZ3JvdXAsIEMgaXMgbm90LgorLS0gV2hlbiBFTkQgZXhpdHMg dG8gQyB2aWEgbmZhX3N0YXRlX2NyZWF0ZSwgaXNBYnNvcmJhYmxlIGJlY29tZXMgZmFsc2UuCitX SVRIIHRlc3Rfbm9uX2Fic29yYmFibGUgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwor ICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQiddKSwKKyAgICAg ICAgKDMsIEFSUkFZWydBJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0InXSksCisgICAgICAgICg1 LCBBUlJBWVsnQyddKSwKKyAgICAgICAgKDYsIEFSUkFZWydfJ10pCisgICAgKSBBUyB0KGlkLCBm bGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIg dyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hf ZW5kCitGUk9NIHRlc3Rfbm9uX2Fic29yYmFibGUKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBC WSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIEIp KyBDKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAg IEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQyBBUyAnQycgPSBBTlkoZmxhZ3MpCisp OworCistLSBBYnNvcnB0aW9uIGZsYWdzIGVhcmx5IHJldHVybiAoIWhhc0Fic29yYmFibGVTdGF0 ZSkKKy0tIFBhdHRlcm4gKEEgQikrIEMgRCB3aXRoIFNLSVAgUEFTVCBMQVNUIFJPVworLS0gQWZ0 ZXIgcmVhY2hpbmcgQyAobm9uLWFic29yYmFibGUpLCBoYXNBYnNvcmJhYmxlU3RhdGUgYmVjb21l cyBmYWxzZS4KKy0tIE9uIG5leHQgcm93IChEKSwgdGhlIGVhcmx5IHJldHVybiBmaXJlcy4KK1dJ VEggdGVzdF9hYnNvcnB0aW9uX2Vhcmx5X3JldHVybiBBUyAoCisgICAgU0VMRUNUICogRlJPTSAo VkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydCJ10p LAorICAgICAgICAoMywgQVJSQVlbJ0EnXSksCisgICAgICAgICg0LCBBUlJBWVsnQiddKSwKKyAg ICAgICAgKDUsIEFSUkFZWydDJ10pLAorICAgICAgICAoNiwgQVJSQVlbJ0QnXSksCisgICAgICAg ICg3LCBBUlJBWVsnXyddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZs YWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAg ICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2Fic29ycHRp b25fZWFybHlfcmV0dXJuCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBN QVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSBCKSsgQyBEKQorICAgIERF RklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0g QU5ZKGZsYWdzKSwKKyAgICAgICAgQyBBUyAnQycgPSBBTlkoZmxhZ3MpLAorICAgICAgICBEIEFT ICdEJyA9IEFOWShmbGFncykKKyk7CisKKy0tIENvdmVyYWdlIGZhaWx1cmU6IG9sZGVyIGNhbid0 IGNvdmVyIG5ld2VyJ3Mgc3RhdGVzCistLSBQYXR0ZXJuIEErIHwgQisgd2l0aCBTS0lQIFBBU1Qg TEFTVCBST1cuCistLSBSb3cgMTogb25seSBBIC0+IEN0eDEgdGFrZXMgQSBicmFuY2ggb25seSAo QiBmYWlscykuCistLSBSb3cgMjogQSBhbmQgQiAtPiBDdHgyIHRha2VzIGJvdGggYnJhbmNoZXMu CistLSBBYnNvcnB0aW9uOiBDdHgxIGhhcyBBIGJ1dCBubyBCIC0+IGNhbid0IGNvdmVyIEN0eDIn cyBCIHN0YXRlIC0+IGZhaWxzLgorV0lUSCB0ZXN0X2NvdmVyYWdlX2ZhaWwgQVMgKAorICAgIFNF TEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnLCAnXyddKSwKKyAgICAg ICAgKDIsIEFSUkFZWydBJywgJ0InXSksCisgICAgICAgICgzLCBBUlJBWVsnQScsICdfJ10pLAor ICAgICAgICAoNCwgQVJSQVlbJ0EnLCAnXyddKSwKKyAgICAgICAgKDUsIEFSUkFZWydfJywgJ18n XSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBm aXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUo aWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9jb3ZlcmFnZV9mYWlsCitXSU5ET1cg dyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgICBQQVRURVJOIChBKyB8IEIrKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFO WShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKworLS0gQWJzb3Ji IHNraXBzIGNvbXBsZXRlZCBjb250ZXh0IChvbGRlci0+c3RhdGVzPT1OVUxMKQorLS0gUGF0dGVy biBBKyB8IEIrIHdpdGggU0tJUCBQQVNUIExBU1QgUk9XLgorLS0gUm93IDE6IEEgb25seSAtPiBD dHgxIHRha2VzIEEgYnJhbmNoLiBSb3cgMjogQiBvbmx5IC0+IEN0eDEgQSBmYWlscyAoY29tcGxl dGVkKS4KKy0tIEN0eDIgdGFrZXMgQiBicmFuY2guIEFic29ycHRpb246IEN0eDEgc3RhdGVzPT1O VUxMIC0+IHNraXAuCitXSVRIIHRlc3Rfb2xkZXJfY29tcGxldGVkIEFTICgKKyAgICBTRUxFQ1Qg KiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJS QVlbJ0InXSksCisgICAgICAgICgzLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDQsIEFSUkFZWydf J10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAg Zmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVl KGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3Rfb2xkZXJfY29tcGxldGVkCitXSU5E T1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBS T1cKKyAgICBQQVRURVJOIChBKyB8IEIrKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9 IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKworLS0gQWJz b3JiIHNraXBzIG5vbi1hYnNvcmJhYmxlIGNvbnRleHQgKCFoYXNBYnNvcmJhYmxlU3RhdGUpCist LSBQYXR0ZXJuIEErIHwgQiBDIHdpdGggU0tJUCBQQVNUIExBU1QgUk9XIChvbmx5IEErIGJyYW5j aCBhYnNvcmJhYmxlKS4KKy0tIFJvdyAxOiBCIG9ubHkgLT4gQ3R4MSB0YWtlcyBCIGJyYW5jaCAo bm9uLWFic29yYmFibGUpLCBhZHZhbmNlcyB0byBDLgorLS0gUm93IDI6IEMsQSAtPiBDdHgxIEMg bWF0Y2hlcyAoaGFzQWJzb3JiYWJsZVN0YXRlPWZhbHNlKS4gQ3R4MiB0YWtlcyBBIChhYnNvcmJh YmxlKS4KKy0tIEFic29ycHRpb246IEN0eDEgIWhhc0Fic29yYmFibGVTdGF0ZSAtPiBza2lwLgor V0lUSCB0ZXN0X29sZGVyX25vbl9hYnNvcmJhYmxlIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChW QUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydCJywgJ18nXSksCisgICAgICAgICgyLCBBUlJBWVsn QycsICdBJ10pLAorICAgICAgICAoMywgQVJSQVlbJ18nLCAnQSddKSwKKyAgICAgICAgKDQsIEFS UkFZWydfJywgJ18nXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFn cywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAg IGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9vbGRlcl9ub25f YWJzb3JiYWJsZQorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0gg U0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSsgfCBCIEMpCisgICAgREVGSU5FCisg ICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxh Z3MpLAorICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncykKKyk7CisKKy0tIFJlbHVjdGFudCBi cmFuY2ggaW4gQUxUIG5vdCBhYnNvcmJhYmxlOiAoQSs/KSB8IEIKKy0tIEErPyBpcyByZWx1Y3Rh bnQgc28gbm90IGFic29yYmFibGUuIENvbXBhcmUgd2l0aCBncmVlZHkgKEErKSB8IEIgYWJvdmUu CitXSVRIIHRlc3RfcmVsdWN0YW50X2FsdF9hYnNvcnB0aW9uIEFTICgKKyAgICBTRUxFQ1QgKiBG Uk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlb J0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQsIEFSUkFZWydCJ10p LAorICAgICAgICAoNSwgQVJSQVlbJ18nXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VM RUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0 YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVz dF9yZWx1Y3RhbnRfYWx0X2Fic29ycHRpb24KK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBp ZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOICgoQSs/KSB8IEIp CisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBB UyAnQicgPSBBTlkoZmxhZ3MpCispOworCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFplcm8tQ29uc3VtcHRpb24gQ3lj bGUgRGV0ZWN0aW9uCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKworLS0gQ3ljbGUgcHJldmVudGlvbiBhdCBjb3VudCA+IDA6 IChBKikqIGlubmVyIHNraXAgY3ljbGVzIGF0IGNvdW50PTMKK1dJVEggdGVzdF9jeWNsZV9ub256 ZXJvIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydB J10pLAorICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwK KyAgICAgICAgKDQsIEFSUkFZWydCJ10pICAtLSBJbm5lciBBKiBtYXRjaGVzIDAsIGN5Y2xlcyBh dCBjb3VudD0zCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisg ICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0 X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfY3ljbGVfbm9uemVybwor V0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhU IFJPVworICAgIFBBVFRFUk4gKChBKikqKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9 IEFOWShmbGFncykKKyk7CisKKy0tIEN5Y2xlIHdpdGggbWl4ZWQgbnVsbGFibGVzOiAoQSogQiop KiBtdWx0aXBsZSBudWxsYWJsZSBwYXRocworV0lUSCB0ZXN0X2N5Y2xlX21peGVkIEFTICgKKyAg ICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAg ICAoMiwgQVJSQVlbJ0InXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQs IEFSUkFZWydDJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3Ms CisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBs YXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfY3ljbGVfbWl4ZWQK K1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVY VCBST1cKKyAgICBQQVRURVJOICgoQSogQiopKikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAn QScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisKKy0t ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0gU3RhbmRhcmQgQ2xhdXNlIDc6IEZvcm1hbCBQYXR0ZXJuIE1hdGNoaW5nIFJ1bGVz CistLSBJU08vSUVDIDE5MDc1LTU6MjAyMSwgQ2xhdXNlIDcKKy0tID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCistLSAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy0t IDcuMi4yIEFsdGVybmF0aW9uOiBmaXJzdCBhbHRlcm5hdGl2ZSBpcyBwcmVmZXJyZWQKKy0tIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorCistLSAoQSB8IEIpOiBBIHByZWZlcnJlZCBvdmVyIEIgd2hlbiBib3RoIGNvdWxkIG1hdGNo CistLSBSb3cgMSBoYXMgYm90aCBBIGFuZCBCIGZsYWdzOiBBIHNob3VsZCBiZSBjaG9zZW4gKGZp cnN0IGFsdGVybmF0aXZlKQorV0lUSCB0ZXN0X2FsdF9wcmVmZXIgQVMgKAorICAgIFNFTEVDVCAq IEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnLCdCJ10pLAorICAgICAgICAoMiwg QVJSQVlbJ0InXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKQorICAgICkgQVMgdChpZCwgZmxh Z3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcg QVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2Vu ZAorRlJPTSB0ZXN0X2FsdF9wcmVmZXIKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOICgoQSB8IEIpKQorICAg IERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0In ID0gQU5ZKGZsYWdzKQorKTsKKworLS0gKEF7MSwyfSB8IEJ7MiwzfSk6IGFsbCBBLW1hdGNoZXMg YmVmb3JlIGFsbCBCLW1hdGNoZXMKKy0tIFN0YW5kYXJkIGV4YW1wbGU6IHByZWZlcm1lbnQgb3Jk ZXIgaXMgQUEsIEEsIEJCQiwgQkIKKy0tIFJvd3MgMS0yIGhhdmUgYm90aCBBIGFuZCBCOiBncmVl ZHkgQXsxLDJ9IHNob3VsZCBtYXRjaCAxLTIKK1dJVEggdGVzdF9hbHRfcXVhbnRpZmllZCBBUyAo CisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQScsJ0InXSks CisgICAgICAgICgyLCBBUlJBWVsnQScsJ0InXSksCisgICAgICAgICgzLCBBUlJBWVsnQiddKSwK KyAgICAgICAgKDQsIEFSUkFZWydCJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ0InXSkKKyAgICAp IEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1 ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIg dyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9hbHRfcXVhbnRpZmllZAorV0lORE9XIHcgQVMgKAor ICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRF Uk4gKChBezEsMn0gfCBCezIsM30pKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFO WShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKworLS0gLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCist LSA3LjIuMyBDb25jYXRlbmF0aW9uOiBsZXhpY29ncmFwaGljIG9yZGVyaW5nCistLSAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor LS0gKChBIHwgQikgKEMgfCBEKSk6IHByZWZlcm1lbnQgb3JkZXIgaXMgQUMsIEFELCBCQywgQkQK Ky0tIFJvdyAxIG1hdGNoZXMgQSBhbmQgQiwgUm93IDIgbWF0Y2hlcyBDIGFuZCBECistLSBQcmVm ZXJyZWQgbWF0Y2g6IEEgdGhlbiBDIChmaXJzdCBhbHRlcm5hdGl2ZXMgaW4gYm90aCBwb3NpdGlv bnMpCitXSVRIIHRlc3RfY29uY2F0X2xleCBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVT CisgICAgICAgICgxLCBBUlJBWVsnQScsJ0InXSksCisgICAgICAgICgyLCBBUlJBWVsnQycsJ0Qn XSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBm aXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUo aWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9jb25jYXRfbGV4CitXSU5ET1cgdyBB UyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOICgoQSB8IEIpIChDIHwgRCkpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0En ID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAorICAgICAgICBD IEFTICdDJyA9IEFOWShmbGFncyksCisgICAgICAgIEQgQVMgJ0QnID0gQU5ZKGZsYWdzKQorKTsK KworLS0gKChBIHwgQikgQyk6IGZpcnN0IGFsdCAoQSkgZmFpbHMsIHNlY29uZCBhbHQgKEIpIHN1 Y2NlZWRzCistLSBUZXN0cyBiYWNrdHJhY2tpbmc6IHJvdyAxIGhhcyBvbmx5IEIsIHJvdyAyIGhh cyBDCitXSVRIIHRlc3RfY29uY2F0X2JhY2t0cmFjayBBUyAoCisgICAgU0VMRUNUICogRlJPTSAo VkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDIsIEFSUkFZWydDJ10p LAorICAgICAgICAoMywgQVJSQVlbJ0EnXSksCisgICAgICAgICg0LCBBUlJBWVsnQyddKQorICAg ICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3Zh bHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZF UiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2NvbmNhdF9iYWNrdHJhY2sKK1dJTkRPVyB3IEFT ICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQ QVRURVJOICgoQSB8IEIpIEMpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZs YWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAorICAgICAgICBDIEFTICdDJyA9 IEFOWShmbGFncykKKyk7CisKKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS0gNy4yLjQgUXVhbnRpZmljYXRpb246IGdyZWVk eS9yZWx1Y3RhbnQsIGxleGljb2dyYXBoaWMgPiBsZW5ndGgKKy0tIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistLSBWezIsNH0g Z3JlZWR5OiBsb25nZXIgbWF0Y2ggcHJlZmVycmVkCitXSVRIIHRlc3RfcXVhbnRfZ3JlZWR5IEFT ICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAor ICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAgICAg ICAgKDQsIEFSUkFZWydCJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwg ZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAg ICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfcXVhbnRf Z3JlZWR5CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQ IFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBezIsNH0pCisgICAgREVGSU5FCisgICAgICAg IEEgQVMgJ0EnID0gQU5ZKGZsYWdzKQorKTsKKworLS0gVnsyLDR9PyByZWx1Y3RhbnQ6IHNob3J0 ZXIgbWF0Y2ggcHJlZmVycmVkCitXSVRIIHRlc3RfcXVhbnRfcmVsdWN0YW50IEFTICgKKyAgICBT RUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAo MiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQsIEFS UkFZWydCJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisg ICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0 X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfcXVhbnRfcmVsdWN0YW50 CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1Qg TEFTVCBST1cKKyAgICBQQVRURVJOIChBezIsNH0/KQorICAgIERFRklORQorICAgICAgICBBIEFT ICdBJyA9IEFOWShmbGFncykKKyk7CisKKy0tICgoQXxCKXsxLDJ9KSBncmVlZHk6IGxleGljb2dy YXBoaWMgPiBsZW5ndGgKKy0tIFN0YW5kYXJkIGV4YW1wbGU6IHByZWZlcm1lbnQgQUEsIEFCLCBB LCBCQSwgQkIsIEIKKy0tIFNpbmdsZSBBIHByZWZlcnJlZCBvdmVyIEItc3RhcnRpbmcgbG9uZ2Vy IG1hdGNoCitXSVRIIHRlc3RfcXVhbnRfbGV4X2dyZWVkeSBBUyAoCisgICAgU0VMRUNUICogRlJP TSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQScsJ0InXSksCisgICAgICAgICgyLCBBUlJB WVsnQiddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAg ICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92 YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X3F1YW50X2xleF9ncmVlZHkK K1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBM QVNUIFJPVworICAgIFBBVFRFUk4gKCgoQSB8IEIpezEsMn0pKQorICAgIERFRklORQorICAgICAg ICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQor KTsKKworLS0gKChBfEIpezEsMn0/KSByZWx1Y3RhbnQ6IGxleGljb2dyYXBoaWMgPiBsZW5ndGgK Ky0tIFN0YW5kYXJkIGV4YW1wbGU6IHByZWZlcm1lbnQgQSwgQUEsIEFCLCBCLCBCQSwgQkIKKy0t IFNpbmdsZSBBIHByZWZlcnJlZCBvdmVyIGFueSBCLXN0YXJ0aW5nIG1hdGNoCitXSVRIIHRlc3Rf cXVhbnRfbGV4X3JlbHVjdGFudCBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAg ICAgICgxLCBBUlJBWVsnQScsJ0InXSksCisgICAgICAgICgyLCBBUlJBWVsnQiddKQorICAgICkg QVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVl KGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3 IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X3F1YW50X2xleF9yZWx1Y3RhbnQKK1dJTkRPVyB3IEFT ICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAg IFBBVFRFUk4gKCgoQSB8IEIpezEsMn0/KSkKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScg PSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisKKy0tIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorLS0gNy4yLjYgQW5jaG9ycyAobm90IHlldCBpbXBsZW1lbnRlZCAtIHN5bnRheCBlcnJvciBl eHBlY3RlZCkKKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorCistLSBeIGFuY2hvcjogbm90IHlldCBzdXBwb3J0ZWQKK1NFTEVD VCBjb3VudCgqKSBPVkVSIHcgRlJPTSAoU0VMRUNUIDEgQVMgdikgdAorV0lORE9XIHcgQVMgKE9S REVSIEJZIHYgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgUEFUVEVSTiAoXiBBKSBERUZJTkUgQSBBUyBUUlVFKTsKKworLS0gJCBhbmNob3I6IG5v dCB5ZXQgc3VwcG9ydGVkCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3IEZST00gKFNFTEVDVCAxIEFT IHYpIHQKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSB2IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgJCkgREVGSU5FIEEgQVMgVFJV RSk7CisKKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorLS0gNy4yLjggSW5maW5pdGUgcmVwZXRpdGlvbnMgb2YgZW1wdHkgbWF0 Y2hlcworLS0gKFBlcmwgbG93ZXItYm91bmQgc3RvcHBpbmcgcnVsZSkKKy0tIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS0gU3Rh bmRhcmQgZXhhbXBsZXMgZnJvbSA3LjIuODoKKy0tICAgKEE/KXswLDN9OiBhbGxvd2VkIHN0cmlu Z3MgaW5jbHVkZSBTVFIwMD0oKSwgU1RSMDE9KEEpLCBTVFIwMj0oZW1wdHkpLAorLS0gICAgICAg ICAgICAgIFNUUjAzPShBQSksIFNUUjA0PShBLGVtcHR5KSwgU1RSMDc9KEFBQSksIFNUUjA4PShB QSxlbXB0eSkKKy0tICAgKEE/KXsxLDN9OiBzYW1lIGFzIHswLDN9IGJ1dCBTVFIwMCBleGNsdWRl ZCAobWluPTEgbm90IG1ldCkKKy0tICAgKEE/KXsyLDN9OiBTVFIwMy0wNiAobGVuIDIpIGFuZCBT VFIwNywwOCwxMSwxMiAobGVuIDMpIGFyZSB2YWxpZAorLS0gICAgICAgICAgICAgIFNUUjA2PShT VFJFLFNUUkUpIElTIHZhbGlkIGJlY2F1c2Ugbm9uLWZpbmFsIFNUUkUgYXQKKy0tICAgICAgICAg ICAgICBwb3NpdGlvbiAxIGZpbGxzIHRoZSBsb3dlciBib3VuZAorCistLSAoQT8/KSpCOiBTdGFu ZGFyZCA3LjIuOCBpbnRyb2R1Y3RvcnkgZXhhbXBsZQorLS0gIm1hdGNoZWQgYWdhaW5zdCBhIHNl cXVlbmNlIG9mIHJvd3MgZm9yIHdoaWNoIHRoZSBvbmx5IGZlYXNpYmxlCistLSAgbWF0Y2hpbmcg aXM6IEIiCistLSBBPz8gaXMgcmVsdWN0YW50LCBwcmVmZXJzIGVtcHR5LiAqIGlzIGdyZWVkeSBi dXQgUGVybCBydWxlIHN0b3BzCistLSBhZnRlciBlbXB0eSBtYXRjaCB3aXRoIG1pbig9MCkgc2F0 aXNmaWVkLgorLS0gRXhwZWN0ZWQ6IGVhY2ggQiByb3cgbWF0Y2hlcyBhbG9uZSAoQT8/IGVtcHR5 LCAqIHN0b3BzLCBCIG1hdGNoZXMpCitXSVRIIHRlc3RfZW1wdHlfcmVsdWN0YW50X3N0YXIgQVMg KAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0InXSksCisg ICAgICAgICgyLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDMsIEFSUkFZWydDJ10pCisgICAgKSBB UyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUo aWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcg QVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfZW1wdHlfcmVsdWN0YW50X3N0YXIKK1dJTkRPVyB3IEFT ICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQ QVRURVJOICgoQT8/KSogQikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxh Z3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisKKy0tIChBPyl7MCwzfTog bWluPTAsIG51bGxhYmxlIGlubmVyLgorLS0gQSBuZXZlciBtYXRjaGVzLiBBPyBtYXRjaGVzIGVt cHR5LCBtaW49MCBzYXRpc2ZpZWQgaW1tZWRpYXRlbHkuCistLSBQZXIgc3RhbmRhcmQ6IGVtcHR5 IG1hdGNoIGV4cGVjdGVkIGZvciBldmVyeSByb3cuCistLSBYWFg6IHZpc2l0ZWQgYml0bWFwIGJs b2NrcyBlbXB0eSBpdGVyYXRpb24gLT4gbm8gbWF0Y2ggKHNhbWUgYXMgezIsM30pCitXSVRIIHRl c3RfNzI4X21pbjAgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwg QVJSQVlbJ0InXSksCisgICAgICAgICgyLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDMsIEFSUkFZ WydCJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAg ICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3Zh bHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfNzI4X21pbjAKK1dJTkRPVyB3 IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAg ICBQQVRURVJOICgoQT8pezAsM30pCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5Z KGZsYWdzKQorKTsKKworLS0gKEE/KXsxLDN9OiBtaW49MSwgbnVsbGFibGUgaW5uZXIuCistLSBB IG5ldmVyIG1hdGNoZXMuIE5lZWQgMSBlbXB0eSBpdGVyYXRpb24gdG8gc2F0aXNmeSBtaW49MS4K Ky0tIFBlciBzdGFuZGFyZDogZW1wdHkgbWF0Y2ggZXhwZWN0ZWQgZm9yIGV2ZXJ5IHJvdy4KKy0t IFhYWDogdmlzaXRlZCBiaXRtYXAgYmxvY2tzIGVtcHR5IGl0ZXJhdGlvbiAtPiBubyBtYXRjaCAo c2FtZSBhcyB7MiwzfSkKK1dJVEggdGVzdF83MjhfbWluMSBBUyAoCisgICAgU0VMRUNUICogRlJP TSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDIsIEFSUkFZWydC J10pLAorICAgICAgICAoMywgQVJSQVlbJ0InXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQor U0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNo X3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00g dGVzdF83MjhfbWluMQorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFU Q0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKChBPyl7MSwzfSkKKyAgICBERUZJTkUK KyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpCispOworCistLSAoQT8pezIsM306IG1pbj0y LCBudWxsYWJsZSBpbm5lci4KKy0tIEEgbmV2ZXIgbWF0Y2hlcy4gTmVlZCAyIGVtcHR5IGl0ZXJh dGlvbnMgdG8gc2F0aXNmeSBtaW49Mi4KKy0tIFBlciBzdGFuZGFyZDogU1RSMDY9KFNUUkUgU1RS RSkgaXMgdmFsaWQgZm9yIG1pbj0yLgorLS0gRXhwZWN0ZWQ6IGVtcHR5IG1hdGNoIGZvciBldmVy eSByb3cKKy0tIFhYWDogdmlzaXRlZCBiaXRtYXAgYmxvY2tzIHNlY29uZCBlbXB0eSBpdGVyYXRp b24gLT4gbWF0Y2ggZmFpbHVyZQorV0lUSCB0ZXN0XzcyOF9taW4yIEFTICgKKyAgICBTRUxFQ1Qg KiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydCJ10pLAorICAgICAgICAoMiwgQVJS QVlbJ0InXSksCisgICAgICAgICgzLCBBUlJBWVsnQiddKQorICAgICkgQVMgdChpZCwgZmxhZ3Mp CispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMg bWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAor RlJPTSB0ZXN0XzcyOF9taW4yCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoKEE/KXsyLDN9KQorICAgIERF RklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncykKKyk7CisKKy0tIChBPyl7MiwzfSBt aXhlZDogc29tZSByb3dzIG1hdGNoIEEsIHNvbWUgZG9uJ3QKKy0tIFJvd3MgMS0yOiBBIG1hdGNo ZXMsIGdyZWVkeSB0YWtlcyAyIC0+IG1pbiBzYXRpc2ZpZWQKKy0tIFJvdyAzOiBBIGRvZXNuJ3Qg bWF0Y2gsIG5lZWRzIDIgZW1wdHkgaXRlcmF0aW9ucyBmb3IgbWluPTIKKy0tIFhYWDogUm93IDMg ZmFpbHMgZHVlIHRvIHZpc2l0ZWQgYml0bWFwIChzYW1lIGFzIHB1cmUgZW1wdHkgezIsM30pCist LSBSb3cgNDogQSBtYXRjaGVzIDEgcmVhbCBpdGVyICsgMSBmZiBlbXB0eSBleGl0IC0+IG1hdGNo IDQtNAorV0lUSCB0ZXN0XzcyOF9taW4yX21peGVkIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChW QUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0EnXSks CisgICAgICAgICgzLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDQsIEFSUkFZWydBJ10pCisgICAg KSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFs dWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVS IHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfNzI4X21pbjJfbWl4ZWQKK1dJTkRPVyB3IEFTICgK KyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRU RVJOICgoQT8pezIsM30pCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdz KQorKTsKKworLS0gKEE/IEI/KXsyLDN9OiBtdWx0aS1lbGVtZW50IG51bGxhYmxlIGJvZHkgd2l0 aCByZWFsIG1hdGNoZXMKKy0tIEJvZHkgQT8gQj8gaXMgbnVsbGFibGUgKGJvdGggb3B0aW9uYWwp LCBidXQgQSBhbmQgQiBETyBtYXRjaCByb3dzLgorLS0gUmVhbCAobm9uLWVtcHR5KSBpdGVyYXRp b25zIGxvb3AgYmFjayBub3JtYWxseTsgZmFzdC1mb3J3YXJkIG9ubHkKKy0tIGZpcmVzIGFzIGEg cGFyYWxsZWwgZXhpdCBwYXRoIChFWElUIE9OTFksIG5vIGdyZWVkeS9yZWx1Y3RhbnQgbG9vcCku CistLSBEYXRhOiBhbHRlcm5hdGluZyBBLCBCIHJvd3MgKDYgcm93cykKKy0tIEdyZWVkeTogZWFj aCByb3cgZ2V0cyB0aGUgbG9uZ2VzdCBtYXRjaCBmcm9tIGl0cyBzdGFydGluZyBwb3NpdGlvbi4K Ky0tIFJvdyAxOiAzIGl0ZXJzIChBQDEsQkAyKShBQDMsQkA0KShBQDUsQkA2KSAtPiAxLTYKKy0t IFJvdyA1OiAxIHJlYWwgaXRlciArIDEgZmYgZW1wdHkgZXhpdCAtPiA1LTYKK1dJVEggdGVzdF83 MjhfbXVsdGlfYm9keSBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgx LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydCJ10pLAorICAgICAgICAoMywgQVJS QVlbJ0EnXSksCisgICAgICAgICg0LCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDUsIEFSUkFZWydB J10pLAorICAgICAgICAoNiwgQVJSQVlbJ0InXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQor U0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNo X3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00g dGVzdF83MjhfbXVsdGlfYm9keQorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZU RVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKChBPyBCPyl7MiwzfSkKKyAg ICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdC JyA9IEFOWShmbGFncykKKyk7CisKKy0tIChBPyBCPyl7MiwzfTogcHVyZSBlbXB0eSBib2R5IChu b3RoaW5nIG1hdGNoZXMpCistLSBYWFg6IEFsbCBOVUxMOiBzYW1lIGlzc3VlIGFzIHRlc3RfNzI4 X21pbjIgKGVtcHR5IG1hdGNoIGF0IGNvbnRleHQKKy0tIHN0YXJ0IHlpZWxkcyBVTk1BVENIRUQg dmlhIHN0YXJ0UG9zLTEgaW5pdGlhbCBhZHZhbmNlKQorV0lUSCB0ZXN0XzcyOF9tdWx0aV9lbXB0 eSBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQydd KSwKKyAgICAgICAgKDIsIEFSUkFZWydDJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0MnXSkKKyAg ICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92 YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9W RVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF83MjhfbXVsdGlfZW1wdHkKK1dJTkRPVyB3IEFT ICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQ QVRURVJOICgoQT8gQj8pezIsM30pCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5Z KGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOworCistLSAoQT8gQj8p ezIsM306IG1peGVkIHJlYWwgYW5kIGVtcHR5IGl0ZXJhdGlvbnMKKy0tIFJvdyAxOiBpdGVyMSBy ZWFsIChBQDEsQkAyKSwgaXRlcjIgYXQgcm93IDMgZW1wdHkgLT4gZmYgZXhpdCwgbWF0Y2ggMS0y CistLSBSb3cgMzogQyBkb2Vzbid0IG1hdGNoIEEgb3IgQiAtPiBOVUxMCistLSBSb3cgNDogaXRl cjEgcmVhbCAoQUA0LEJANSksIGl0ZXIyIGF0IGVuZCBlbXB0eSAtPiBmZiBleGl0LCBtYXRjaCA0 LTUKK1dJVEggdGVzdF83MjhfbXVsdGlfbWl4ZWQgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZB TFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQiddKSwK KyAgICAgICAgKDMsIEFSUkFZWydDJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0EnXSksCisgICAg ICAgICg1LCBBUlJBWVsnQiddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQs IGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisg ICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0XzcyOF9t dWx0aV9taXhlZAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0gg U0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKChBPyBCPyl7MiwzfSkKKyAgICBERUZJTkUK KyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShm bGFncykKKyk7CisKKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorLS0gNy4zIFBhdHRlcm4gbWF0Y2hpbmcgaW4gdGhlb3J5IGFu ZCBwcmFjdGljZQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisKKy0tIFN0YW5kYXJkJ3Mgd29ya2VkIGV4YW1wbGU6IEE/IEIr IHdpdGggc3BlY2lmaWMgZGF0YQorLS0gUHJlZmVybWVudCBvcmRlcjogKEEpKEJCQiksIChBKShC QiksIChBKShCKSwgKCkoQkJCKSwgKCkoQkIpLCAoKShCKQorLS0gUm93IDE6IEEgY29uZGl0aW9u IChwcmljZT4xMDApIGlzIGZhbHNlIC0+IEEgZmFpbHMKKy0tIEJhY2t0cmFjazogZW1wdHkgQT8s IHRoZW4gQisgZnJvbSByb3cgMQorLS0gRXhwZWN0ZWQ6IHJvd3MgMS0zIG1hdGNoIGFzIEIgKEE/ IHRha2VzIGVtcHR5IG1hdGNoKQorV0lUSCB0ZXN0XzczX2V4YW1wbGUgQVMgKAorICAgIFNFTEVD VCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgNjApLAorICAgICAgICAoMiwgNzApLAorICAg ICAgICAoMywgNDApCisgICAgKSBBUyB0KGlkLCBwcmljZSkKKykKK1NFTEVDVCBpZCwgcHJpY2Us CisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBs YXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfNzNfZXhhbXBsZQor V0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExB U1QgUk9XCisgICAgUEFUVEVSTiAoQT8gQispCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgcHJp Y2UgPiAxMDAsCisgICAgICAgIEIgQVMgVFJVRQorKTsKLS0gCjIuNDMuMAoK ----Next_Part(Sat_May__2_14_03_04_2026_790)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v47-0008-Row-pattern-recognition-patch-tests-expected.patch" RnJvbSBkN2YxNzA2MTUwYWM3NTFlMzBmOGI2NGVjOTUxZTZlY2UyZGNmNDA0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYXRzdW8gSXNoaWkgPGlzaGlpQHBvc3RncmVzcWwub3JnPgpE YXRlOiBTYXQsIDIgTWF5IDIwMjYgMTM6NDA6MjkgKzA5MDAKU3ViamVjdDogW1BBVENIIHY0NyA4 LzldIFJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIHBhdGNoICh0ZXN0czogZXhwZWN0ZWQpLgoKLS0t CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQgICAgICAgICAgICAgfCAzNzQwICsr KysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0ICAgICAgICB8 IDY1ODkgKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4 cGxhaW4ub3V0ICAgICB8IDQ4ODUgKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Jwcl9pbnRlZ3JhdGlvbi5vdXQgfCAxNTE4ICsrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcnByX25mYS5vdXQgICAgICAgICB8IDQ2NjEgKysrKysrKysrKysrCiA1IGZpbGVzIGNo YW5nZWQsIDIxMzkzIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9ycHJfaW50ZWdyYXRpb24ub3V0CiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfbmZhLm91dAoKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcnByLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODUzODRm NmIwOTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5v dXQKQEAgLTAsMCArMSwzNzQwIEBACistLQorLS0gVGVzdCBmb3Igcm93IHBhdHRlcm4gcmVjb2du aXRpb246IFdJTkRPVyBjbGF1c2UgaW50ZWdyYXRpb24gYW5kCistLSBzY2VuYXJpbyB0ZXN0cyB1 c2luZyBzeW50aGV0aWMgc3RvY2sgZGF0YS4KKy0tCistLSBQYXJzZXIvcGxhbm5lciB0ZXN0czog cnByX2Jhc2Uuc3FsCistLSBORkEgZW5naW5lIHRlc3RzOiBycHJfbmZhLnNxbAorLS0gRVhQTEFJ TiBzdGF0aXN0aWNzIHRlc3RzOiBycHJfZXhwbGFpbi5zcWwKKy0tCitcZ2V0ZW52IGFic19zcmNk aXIgUEdfQUJTX1NSQ0RJUgorLS0gU3ludGhldGljIHN0b2NrIGRhdGEgZm9yIFJQUiBwYXR0ZXJu IG1hdGNoaW5nIHRlc3RzCitDUkVBVEUgVEFCTEUgcnByX3N0b2NrICgKKyAgICAgICBwYXJ0X2lk IGludGVnZXIsCisgICAgICAgcm4gICAgICBpbnRlZ2VyLAorICAgICAgIHByaWNlICAgbnVtZXJp YygxMCwzKSwKKyAgICAgICB2b2x1bWUgIGJpZ2ludCwKKyAgICAgICBvcGVuICAgIG51bWVyaWMo MTAsMyksCisgICAgICAgbG93ICAgICBudW1lcmljKDEwLDMpLAorICAgICAgIGhpZ2ggICAgbnVt ZXJpYygxMCwzKQorKTsKK1xzZXQgZmlsZW5hbWUgOmFic19zcmNkaXIgJy9kYXRhL3N0b2NrLmRh dGEnCitDT1BZIHJwcl9zdG9jayBGUk9NIDonZmlsZW5hbWUnOworQU5BTFlaRSBycHJfc3RvY2s7 CitDUkVBVEUgVEVNUCBUQUJMRSBzdG9jayAoCisgICAgICAgY29tcGFueSBURVhULAorICAgICAg IHRkYXRlIERBVEUsCisgICAgICAgcHJpY2UgSU5URUdFUgorKTsKK0lOU0VSVCBJTlRPIHN0b2Nr IFZBTFVFUyAoJ2NvbXBhbnkxJywgJzIwMjMtMDctMDEnLCAxMDApOworSU5TRVJUIElOVE8gc3Rv Y2sgVkFMVUVTICgnY29tcGFueTEnLCAnMjAyMy0wNy0wMicsIDIwMCk7CitJTlNFUlQgSU5UTyBz dG9jayBWQUxVRVMgKCdjb21wYW55MScsICcyMDIzLTA3LTAzJywgMTUwKTsKK0lOU0VSVCBJTlRP IHN0b2NrIFZBTFVFUyAoJ2NvbXBhbnkxJywgJzIwMjMtMDctMDQnLCAxNDApOworSU5TRVJUIElO VE8gc3RvY2sgVkFMVUVTICgnY29tcGFueTEnLCAnMjAyMy0wNy0wNScsIDE1MCk7CitJTlNFUlQg SU5UTyBzdG9jayBWQUxVRVMgKCdjb21wYW55MScsICcyMDIzLTA3LTA2JywgOTApOworSU5TRVJU IElOVE8gc3RvY2sgVkFMVUVTICgnY29tcGFueTEnLCAnMjAyMy0wNy0wNycsIDExMCk7CitJTlNF UlQgSU5UTyBzdG9jayBWQUxVRVMgKCdjb21wYW55MScsICcyMDIzLTA3LTA4JywgMTMwKTsKK0lO U0VSVCBJTlRPIHN0b2NrIFZBTFVFUyAoJ2NvbXBhbnkxJywgJzIwMjMtMDctMDknLCAxMjApOwor SU5TRVJUIElOVE8gc3RvY2sgVkFMVUVTICgnY29tcGFueTEnLCAnMjAyMy0wNy0xMCcsIDEzMCk7 CitJTlNFUlQgSU5UTyBzdG9jayBWQUxVRVMgKCdjb21wYW55MicsICcyMDIzLTA3LTAxJywgNTAp OworSU5TRVJUIElOVE8gc3RvY2sgVkFMVUVTICgnY29tcGFueTInLCAnMjAyMy0wNy0wMicsIDIw MDApOworSU5TRVJUIElOVE8gc3RvY2sgVkFMVUVTICgnY29tcGFueTInLCAnMjAyMy0wNy0wMycs IDE1MDApOworSU5TRVJUIElOVE8gc3RvY2sgVkFMVUVTICgnY29tcGFueTInLCAnMjAyMy0wNy0w NCcsIDE0MDApOworSU5TRVJUIElOVE8gc3RvY2sgVkFMVUVTICgnY29tcGFueTInLCAnMjAyMy0w Ny0wNScsIDE1MDApOworSU5TRVJUIElOVE8gc3RvY2sgVkFMVUVTICgnY29tcGFueTInLCAnMjAy My0wNy0wNicsIDYwKTsKK0lOU0VSVCBJTlRPIHN0b2NrIFZBTFVFUyAoJ2NvbXBhbnkyJywgJzIw MjMtMDctMDcnLCAxMTAwKTsKK0lOU0VSVCBJTlRPIHN0b2NrIFZBTFVFUyAoJ2NvbXBhbnkyJywg JzIwMjMtMDctMDgnLCAxMzAwKTsKK0lOU0VSVCBJTlRPIHN0b2NrIFZBTFVFUyAoJ2NvbXBhbnky JywgJzIwMjMtMDctMDknLCAxMjAwKTsKK0lOU0VSVCBJTlRPIHN0b2NrIFZBTFVFUyAoJ2NvbXBh bnkyJywgJzIwMjMtMDctMTAnLCAxMzAwKTsKK1NFTEVDVCAqIEZST00gc3RvY2s7CisgY29tcGFu eSAgfCAgIHRkYXRlICAgIHwgcHJpY2UgCistLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t CisgY29tcGFueTEgfCAwNy0wMS0yMDIzIHwgICAxMDAKKyBjb21wYW55MSB8IDA3LTAyLTIwMjMg fCAgIDIwMAorIGNvbXBhbnkxIHwgMDctMDMtMjAyMyB8ICAgMTUwCisgY29tcGFueTEgfCAwNy0w NC0yMDIzIHwgICAxNDAKKyBjb21wYW55MSB8IDA3LTA1LTIwMjMgfCAgIDE1MAorIGNvbXBhbnkx IHwgMDctMDYtMjAyMyB8ICAgIDkwCisgY29tcGFueTEgfCAwNy0wNy0yMDIzIHwgICAxMTAKKyBj b21wYW55MSB8IDA3LTA4LTIwMjMgfCAgIDEzMAorIGNvbXBhbnkxIHwgMDctMDktMjAyMyB8ICAg MTIwCisgY29tcGFueTEgfCAwNy0xMC0yMDIzIHwgICAxMzAKKyBjb21wYW55MiB8IDA3LTAxLTIw MjMgfCAgICA1MAorIGNvbXBhbnkyIHwgMDctMDItMjAyMyB8ICAyMDAwCisgY29tcGFueTIgfCAw Ny0wMy0yMDIzIHwgIDE1MDAKKyBjb21wYW55MiB8IDA3LTA0LTIwMjMgfCAgMTQwMAorIGNvbXBh bnkyIHwgMDctMDUtMjAyMyB8ICAxNTAwCisgY29tcGFueTIgfCAwNy0wNi0yMDIzIHwgICAgNjAK KyBjb21wYW55MiB8IDA3LTA3LTIwMjMgfCAgMTEwMAorIGNvbXBhbnkyIHwgMDctMDgtMjAyMyB8 ICAxMzAwCisgY29tcGFueTIgfCAwNy0wOS0yMDIzIHwgIDEyMDAKKyBjb21wYW55MiB8IDA3LTEw LTIwMjMgfCAgMTMwMAorKDIwIHJvd3MpCisKKy0tCistLSBCYXNpYyBwYXR0ZXJuIG1hdGNoaW5n IHdpdGggUFJFVi9ORVhUCistLQorLS0gYmFzaWMgdGVzdCB1c2luZyBQUkVWCitTRUxFQ1QgY29t cGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVl KHByaWNlKSBPVkVSIHcsCisgbnRoX3ZhbHVlKHRkYXRlLCAyKSBPVkVSIHcgQVMgbnRoX3NlY29u ZAorIEZST00gc3RvY2sKKyBXSU5ET1cgdyBBUyAoCisgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyBJTklUSUFM CisgUEFUVEVSTiAoU1RBUlQgVVArIERPV04rKQorIERFRklORQorICBTVEFSVCBBUyBUUlVFLAor ICBVUCBBUyBwcmljZSA+IFBSRVYocHJpY2UpLAorICBET1dOIEFTIHByaWNlIDwgUFJFVihwcmlj ZSkKKyk7CisgY29tcGFueSAgfCAgIHRkYXRlICAgIHwgcHJpY2UgfCBmaXJzdF92YWx1ZSB8IGxh c3RfdmFsdWUgfCBudGhfc2Vjb25kIAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBjb21wYW55MSB8IDA3LTAx LTIwMjMgfCAgIDEwMCB8ICAgICAgICAgMTAwIHwgICAgICAgIDE0MCB8IDA3LTAyLTIwMjMKKyBj b21wYW55MSB8IDA3LTAyLTIwMjMgfCAgIDIwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8 IAorIGNvbXBhbnkxIHwgMDctMDMtMjAyMyB8ICAgMTUwIHwgICAgICAgICAgICAgfCAgICAgICAg ICAgIHwgCisgY29tcGFueTEgfCAwNy0wNC0yMDIzIHwgICAxNDAgfCAgICAgICAgICAgICB8ICAg ICAgICAgICAgfCAKKyBjb21wYW55MSB8IDA3LTA1LTIwMjMgfCAgIDE1MCB8ICAgICAgICAgICAg IHwgICAgICAgICAgICB8IAorIGNvbXBhbnkxIHwgMDctMDYtMjAyMyB8ICAgIDkwIHwgICAgICAg ICAgOTAgfCAgICAgICAgMTIwIHwgMDctMDctMjAyMworIGNvbXBhbnkxIHwgMDctMDctMjAyMyB8 ICAgMTEwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgCisgY29tcGFueTEgfCAwNy0wOC0y MDIzIHwgICAxMzAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAKKyBjb21wYW55MSB8IDA3 LTA5LTIwMjMgfCAgIDEyMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAorIGNvbXBhbnkx IHwgMDctMTAtMjAyMyB8ICAgMTMwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgCisgY29t cGFueTIgfCAwNy0wMS0yMDIzIHwgICAgNTAgfCAgICAgICAgICA1MCB8ICAgICAgIDE0MDAgfCAw Ny0wMi0yMDIzCisgY29tcGFueTIgfCAwNy0wMi0yMDIzIHwgIDIwMDAgfCAgICAgICAgICAgICB8 ICAgICAgICAgICAgfCAKKyBjb21wYW55MiB8IDA3LTAzLTIwMjMgfCAgMTUwMCB8ICAgICAgICAg ICAgIHwgICAgICAgICAgICB8IAorIGNvbXBhbnkyIHwgMDctMDQtMjAyMyB8ICAxNDAwIHwgICAg ICAgICAgICAgfCAgICAgICAgICAgIHwgCisgY29tcGFueTIgfCAwNy0wNS0yMDIzIHwgIDE1MDAg fCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAKKyBjb21wYW55MiB8IDA3LTA2LTIwMjMgfCAg ICA2MCB8ICAgICAgICAgIDYwIHwgICAgICAgMTIwMCB8IDA3LTA3LTIwMjMKKyBjb21wYW55MiB8 IDA3LTA3LTIwMjMgfCAgMTEwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAorIGNvbXBh bnkyIHwgMDctMDgtMjAyMyB8ICAxMzAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgCisg Y29tcGFueTIgfCAwNy0wOS0yMDIzIHwgIDEyMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAg fCAKKyBjb21wYW55MiB8IDA3LTEwLTIwMjMgfCAgMTMwMCB8ICAgICAgICAgICAgIHwgICAgICAg ICAgICB8IAorKDIwIHJvd3MpCisKKy0tIGJhc2ljIHRlc3QgdXNpbmcgUFJFVi4gVVAgYXBwZWFy cyB0d2ljZQorU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmlyc3RfdmFsdWUocHJpY2Up IE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3LAorIG50aF92YWx1ZSh0ZGF0ZSwgMikg T1ZFUiB3IEFTIG50aF9zZWNvbmQKKyBGUk9NIHN0b2NrCisgV0lORE9XIHcgQVMgKAorIFBBUlRJ VElPTiBCWSBjb21wYW55CisgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgSU5JVElBTAorIFBBVFRFUk4gKFNUQVJUIFVQKyBET1dOKyBVUCspCisgREVG SU5FCisgIFNUQVJUIEFTIFRSVUUsCisgIFVQIEFTIHByaWNlID4gUFJFVihwcmljZSksCisgIERP V04gQVMgcHJpY2UgPCBQUkVWKHByaWNlKQorKTsKKyBjb21wYW55ICB8ICAgdGRhdGUgICAgfCBw cmljZSB8IGZpcnN0X3ZhbHVlIHwgbGFzdF92YWx1ZSB8IG50aF9zZWNvbmQgCistLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorIGNvbXBhbnkxIHwgMDctMDEtMjAyMyB8ICAgMTAwIHwgICAgICAgICAxMDAgfCAgICAg ICAgMTUwIHwgMDctMDItMjAyMworIGNvbXBhbnkxIHwgMDctMDItMjAyMyB8ICAgMjAwIHwgICAg ICAgICAgICAgfCAgICAgICAgICAgIHwgCisgY29tcGFueTEgfCAwNy0wMy0yMDIzIHwgICAxNTAg fCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAKKyBjb21wYW55MSB8IDA3LTA0LTIwMjMgfCAg IDE0MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAorIGNvbXBhbnkxIHwgMDctMDUtMjAy MyB8ICAgMTUwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgCisgY29tcGFueTEgfCAwNy0w Ni0yMDIzIHwgICAgOTAgfCAgICAgICAgICA5MCB8ICAgICAgICAxMzAgfCAwNy0wNy0yMDIzCisg Y29tcGFueTEgfCAwNy0wNy0yMDIzIHwgICAxMTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAg fCAKKyBjb21wYW55MSB8IDA3LTA4LTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAgICAg ICAgICB8IAorIGNvbXBhbnkxIHwgMDctMDktMjAyMyB8ICAgMTIwIHwgICAgICAgICAgICAgfCAg ICAgICAgICAgIHwgCisgY29tcGFueTEgfCAwNy0xMC0yMDIzIHwgICAxMzAgfCAgICAgICAgICAg ICB8ICAgICAgICAgICAgfCAKKyBjb21wYW55MiB8IDA3LTAxLTIwMjMgfCAgICA1MCB8ICAgICAg ICAgIDUwIHwgICAgICAgMTUwMCB8IDA3LTAyLTIwMjMKKyBjb21wYW55MiB8IDA3LTAyLTIwMjMg fCAgMjAwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAorIGNvbXBhbnkyIHwgMDctMDMt MjAyMyB8ICAxNTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgCisgY29tcGFueTIgfCAw Ny0wNC0yMDIzIHwgIDE0MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAKKyBjb21wYW55 MiB8IDA3LTA1LTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAorIGNv bXBhbnkyIHwgMDctMDYtMjAyMyB8ICAgIDYwIHwgICAgICAgICAgNjAgfCAgICAgICAxMzAwIHwg MDctMDctMjAyMworIGNvbXBhbnkyIHwgMDctMDctMjAyMyB8ICAxMTAwIHwgICAgICAgICAgICAg fCAgICAgICAgICAgIHwgCisgY29tcGFueTIgfCAwNy0wOC0yMDIzIHwgIDEzMDAgfCAgICAgICAg ICAgICB8ICAgICAgICAgICAgfCAKKyBjb21wYW55MiB8IDA3LTA5LTIwMjMgfCAgMTIwMCB8ICAg ICAgICAgICAgIHwgICAgICAgICAgICB8IAorIGNvbXBhbnkyIHwgMDctMTAtMjAyMyB8ICAxMzAw IHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgCisoMjAgcm93cykKKworLS0gYmFzaWMgdGVz dCB1c2luZyBQUkVWLiBVc2UgJyonCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJz dF92YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsCisgbnRoX3Zh bHVlKHRkYXRlLCAyKSBPVkVSIHcgQVMgbnRoX3NlY29uZAorIEZST00gc3RvY2sKKyBXSU5ET1cg dyBBUyAoCisgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyBJTklUSUFMCisgUEFUVEVSTiAoU1RBUlQgVVAqIERP V04rKQorIERFRklORQorICBTVEFSVCBBUyBUUlVFLAorICBVUCBBUyBwcmljZSA+IFBSRVYocHJp Y2UpLAorICBET1dOIEFTIHByaWNlIDwgUFJFVihwcmljZSkKKyk7CisgY29tcGFueSAgfCAgIHRk YXRlICAgIHwgcHJpY2UgfCBmaXJzdF92YWx1ZSB8IGxhc3RfdmFsdWUgfCBudGhfc2Vjb25kIAor LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0KKyBjb21wYW55MSB8IDA3LTAxLTIwMjMgfCAgIDEwMCB8ICAgICAgICAg MTAwIHwgICAgICAgIDE0MCB8IDA3LTAyLTIwMjMKKyBjb21wYW55MSB8IDA3LTAyLTIwMjMgfCAg IDIwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAorIGNvbXBhbnkxIHwgMDctMDMtMjAy MyB8ICAgMTUwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgCisgY29tcGFueTEgfCAwNy0w NC0yMDIzIHwgICAxNDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAKKyBjb21wYW55MSB8 IDA3LTA1LTIwMjMgfCAgIDE1MCB8ICAgICAgICAgMTUwIHwgICAgICAgICA5MCB8IDA3LTA2LTIw MjMKKyBjb21wYW55MSB8IDA3LTA2LTIwMjMgfCAgICA5MCB8ICAgICAgICAgICAgIHwgICAgICAg ICAgICB8IAorIGNvbXBhbnkxIHwgMDctMDctMjAyMyB8ICAgMTEwIHwgICAgICAgICAxMTAgfCAg ICAgICAgMTIwIHwgMDctMDgtMjAyMworIGNvbXBhbnkxIHwgMDctMDgtMjAyMyB8ICAgMTMwIHwg ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgCisgY29tcGFueTEgfCAwNy0wOS0yMDIzIHwgICAx MjAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAKKyBjb21wYW55MSB8IDA3LTEwLTIwMjMg fCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAorIGNvbXBhbnkyIHwgMDctMDEt MjAyMyB8ICAgIDUwIHwgICAgICAgICAgNTAgfCAgICAgICAxNDAwIHwgMDctMDItMjAyMworIGNv bXBhbnkyIHwgMDctMDItMjAyMyB8ICAyMDAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwg CisgY29tcGFueTIgfCAwNy0wMy0yMDIzIHwgIDE1MDAgfCAgICAgICAgICAgICB8ICAgICAgICAg ICAgfCAKKyBjb21wYW55MiB8IDA3LTA0LTIwMjMgfCAgMTQwMCB8ICAgICAgICAgICAgIHwgICAg ICAgICAgICB8IAorIGNvbXBhbnkyIHwgMDctMDUtMjAyMyB8ICAxNTAwIHwgICAgICAgIDE1MDAg fCAgICAgICAgIDYwIHwgMDctMDYtMjAyMworIGNvbXBhbnkyIHwgMDctMDYtMjAyMyB8ICAgIDYw IHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgCisgY29tcGFueTIgfCAwNy0wNy0yMDIzIHwg IDExMDAgfCAgICAgICAgMTEwMCB8ICAgICAgIDEyMDAgfCAwNy0wOC0yMDIzCisgY29tcGFueTIg fCAwNy0wOC0yMDIzIHwgIDEzMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAKKyBjb21w YW55MiB8IDA3LTA5LTIwMjMgfCAgMTIwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAor IGNvbXBhbnkyIHwgMDctMTAtMjAyMyB8ICAxMzAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgCisoMjAgcm93cykKKworLS0gYmFzaWMgdGVzdCB1c2luZyBQUkVWLiBVc2UgJz8nCitTRUxF Q1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0 X3ZhbHVlKHByaWNlKSBPVkVSIHcsCisgbnRoX3ZhbHVlKHRkYXRlLCAyKSBPVkVSIHcgQVMgbnRo X3NlY29uZAorIEZST00gc3RvY2sKKyBXSU5ET1cgdyBBUyAoCisgUEFSVElUSU9OIEJZIGNvbXBh bnkKKyBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyBJ TklUSUFMCisgUEFUVEVSTiAoU1RBUlQgVVA/IERPV04rKQorIERFRklORQorICBTVEFSVCBBUyBU UlVFLAorICBVUCBBUyBwcmljZSA+IFBSRVYocHJpY2UpLAorICBET1dOIEFTIHByaWNlIDwgUFJF VihwcmljZSkKKyk7CisgY29tcGFueSAgfCAgIHRkYXRlICAgIHwgcHJpY2UgfCBmaXJzdF92YWx1 ZSB8IGxhc3RfdmFsdWUgfCBudGhfc2Vjb25kIAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBjb21wYW55MSB8 IDA3LTAxLTIwMjMgfCAgIDEwMCB8ICAgICAgICAgMTAwIHwgICAgICAgIDE0MCB8IDA3LTAyLTIw MjMKKyBjb21wYW55MSB8IDA3LTAyLTIwMjMgfCAgIDIwMCB8ICAgICAgICAgICAgIHwgICAgICAg ICAgICB8IAorIGNvbXBhbnkxIHwgMDctMDMtMjAyMyB8ICAgMTUwIHwgICAgICAgICAgICAgfCAg ICAgICAgICAgIHwgCisgY29tcGFueTEgfCAwNy0wNC0yMDIzIHwgICAxNDAgfCAgICAgICAgICAg ICB8ICAgICAgICAgICAgfCAKKyBjb21wYW55MSB8IDA3LTA1LTIwMjMgfCAgIDE1MCB8ICAgICAg ICAgMTUwIHwgICAgICAgICA5MCB8IDA3LTA2LTIwMjMKKyBjb21wYW55MSB8IDA3LTA2LTIwMjMg fCAgICA5MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAorIGNvbXBhbnkxIHwgMDctMDct MjAyMyB8ICAgMTEwIHwgICAgICAgICAxMTAgfCAgICAgICAgMTIwIHwgMDctMDgtMjAyMworIGNv bXBhbnkxIHwgMDctMDgtMjAyMyB8ICAgMTMwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwg CisgY29tcGFueTEgfCAwNy0wOS0yMDIzIHwgICAxMjAgfCAgICAgICAgICAgICB8ICAgICAgICAg ICAgfCAKKyBjb21wYW55MSB8IDA3LTEwLTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAg ICAgICAgICB8IAorIGNvbXBhbnkyIHwgMDctMDEtMjAyMyB8ICAgIDUwIHwgICAgICAgICAgNTAg fCAgICAgICAxNDAwIHwgMDctMDItMjAyMworIGNvbXBhbnkyIHwgMDctMDItMjAyMyB8ICAyMDAw IHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgCisgY29tcGFueTIgfCAwNy0wMy0yMDIzIHwg IDE1MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAKKyBjb21wYW55MiB8IDA3LTA0LTIw MjMgfCAgMTQwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAorIGNvbXBhbnkyIHwgMDct MDUtMjAyMyB8ICAxNTAwIHwgICAgICAgIDE1MDAgfCAgICAgICAgIDYwIHwgMDctMDYtMjAyMwor IGNvbXBhbnkyIHwgMDctMDYtMjAyMyB8ICAgIDYwIHwgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgCisgY29tcGFueTIgfCAwNy0wNy0yMDIzIHwgIDExMDAgfCAgICAgICAgMTEwMCB8ICAgICAg IDEyMDAgfCAwNy0wOC0yMDIzCisgY29tcGFueTIgfCAwNy0wOC0yMDIzIHwgIDEzMDAgfCAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAKKyBjb21wYW55MiB8IDA3LTA5LTIwMjMgfCAgMTIwMCB8 ICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAorIGNvbXBhbnkyIHwgMDctMTAtMjAyMyB8ICAx MzAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgCisoMjAgcm93cykKKworLS0gdGVzdCB1 c2luZyBhbHRlcm5hdGlvbiAofCkgd2l0aCBzZXF1ZW5jZQorU0VMRUNUIGNvbXBhbnksIHRkYXRl LCBwcmljZSwgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZF UiB3CisgRlJPTSBzdG9jaworIFdJTkRPVyB3IEFTICgKKyBQQVJUSVRJT04gQlkgY29tcGFueQor IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworIElOSVRJ QUwKKyBQQVRURVJOIChTVEFSVCAoVVAgfCBET1dOKSkKKyBERUZJTkUKKyAgU1RBUlQgQVMgVFJV RSwKKyAgVVAgQVMgcHJpY2UgPiBQUkVWKHByaWNlKSwKKyAgRE9XTiBBUyBwcmljZSA8IFBSRVYo cHJpY2UpCispOworIGNvbXBhbnkgIHwgICB0ZGF0ZSAgICB8IHByaWNlIHwgZmlyc3RfdmFsdWUg fCBsYXN0X3ZhbHVlIAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLQorIGNvbXBhbnkxIHwgMDctMDEtMjAyMyB8ICAgMTAwIHwgICAgICAg ICAxMDAgfCAgICAgICAgMjAwCisgY29tcGFueTEgfCAwNy0wMi0yMDIzIHwgICAyMDAgfCAgICAg ICAgICAgICB8ICAgICAgICAgICAKKyBjb21wYW55MSB8IDA3LTAzLTIwMjMgfCAgIDE1MCB8ICAg ICAgICAgMTUwIHwgICAgICAgIDE0MAorIGNvbXBhbnkxIHwgMDctMDQtMjAyMyB8ICAgMTQwIHwg ICAgICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFueTEgfCAwNy0wNS0yMDIzIHwgICAxNTAg fCAgICAgICAgIDE1MCB8ICAgICAgICAgOTAKKyBjb21wYW55MSB8IDA3LTA2LTIwMjMgfCAgICA5 MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAorIGNvbXBhbnkxIHwgMDctMDctMjAyMyB8ICAg MTEwIHwgICAgICAgICAxMTAgfCAgICAgICAgMTMwCisgY29tcGFueTEgfCAwNy0wOC0yMDIzIHwg ICAxMzAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAKKyBjb21wYW55MSB8IDA3LTA5LTIwMjMg fCAgIDEyMCB8ICAgICAgICAgMTIwIHwgICAgICAgIDEzMAorIGNvbXBhbnkxIHwgMDctMTAtMjAy MyB8ICAgMTMwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFueTIgfCAwNy0wMS0y MDIzIHwgICAgNTAgfCAgICAgICAgICA1MCB8ICAgICAgIDIwMDAKKyBjb21wYW55MiB8IDA3LTAy LTIwMjMgfCAgMjAwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAorIGNvbXBhbnkyIHwgMDct MDMtMjAyMyB8ICAxNTAwIHwgICAgICAgIDE1MDAgfCAgICAgICAxNDAwCisgY29tcGFueTIgfCAw Ny0wNC0yMDIzIHwgIDE0MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAKKyBjb21wYW55MiB8 IDA3LTA1LTIwMjMgfCAgMTUwMCB8ICAgICAgICAxNTAwIHwgICAgICAgICA2MAorIGNvbXBhbnky IHwgMDctMDYtMjAyMyB8ICAgIDYwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFu eTIgfCAwNy0wNy0yMDIzIHwgIDExMDAgfCAgICAgICAgMTEwMCB8ICAgICAgIDEzMDAKKyBjb21w YW55MiB8IDA3LTA4LTIwMjMgfCAgMTMwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAorIGNv bXBhbnkyIHwgMDctMDktMjAyMyB8ICAxMjAwIHwgICAgICAgIDEyMDAgfCAgICAgICAxMzAwCisg Y29tcGFueTIgfCAwNy0xMC0yMDIzIHwgIDEzMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAK KygyMCByb3dzKQorCistLSB0ZXN0IHVzaW5nIGFsdGVybmF0aW9uICh8KSB3aXRoIGdyb3VwIHF1 YW50aWZpZXIKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3ZhbHVlKHByaWNl KSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdworIEZST00gc3RvY2sKKyBXSU5ET1cg dyBBUyAoCisgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyBJTklUSUFMCisgUEFUVEVSTiAoU1RBUlQgKFVQIHwg RE9XTikrKQorIERFRklORQorICBTVEFSVCBBUyBUUlVFLAorICBVUCBBUyBwcmljZSA+IFBSRVYo cHJpY2UpLAorICBET1dOIEFTIHByaWNlIDwgUFJFVihwcmljZSkKKyk7CisgY29tcGFueSAgfCAg IHRkYXRlICAgIHwgcHJpY2UgfCBmaXJzdF92YWx1ZSB8IGxhc3RfdmFsdWUgCistLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgY29tcGFu eTEgfCAwNy0wMS0yMDIzIHwgICAxMDAgfCAgICAgICAgIDEwMCB8ICAgICAgICAxMzAKKyBjb21w YW55MSB8IDA3LTAyLTIwMjMgfCAgIDIwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAorIGNv bXBhbnkxIHwgMDctMDMtMjAyMyB8ICAgMTUwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgCisg Y29tcGFueTEgfCAwNy0wNC0yMDIzIHwgICAxNDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAK KyBjb21wYW55MSB8IDA3LTA1LTIwMjMgfCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAgICAgICAg IAorIGNvbXBhbnkxIHwgMDctMDYtMjAyMyB8ICAgIDkwIHwgICAgICAgICAgICAgfCAgICAgICAg ICAgCisgY29tcGFueTEgfCAwNy0wNy0yMDIzIHwgICAxMTAgfCAgICAgICAgICAgICB8ICAgICAg ICAgICAKKyBjb21wYW55MSB8IDA3LTA4LTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAg ICAgICAgIAorIGNvbXBhbnkxIHwgMDctMDktMjAyMyB8ICAgMTIwIHwgICAgICAgICAgICAgfCAg ICAgICAgICAgCisgY29tcGFueTEgfCAwNy0xMC0yMDIzIHwgICAxMzAgfCAgICAgICAgICAgICB8 ICAgICAgICAgICAKKyBjb21wYW55MiB8IDA3LTAxLTIwMjMgfCAgICA1MCB8ICAgICAgICAgIDUw IHwgICAgICAgMTMwMAorIGNvbXBhbnkyIHwgMDctMDItMjAyMyB8ICAyMDAwIHwgICAgICAgICAg ICAgfCAgICAgICAgICAgCisgY29tcGFueTIgfCAwNy0wMy0yMDIzIHwgIDE1MDAgfCAgICAgICAg ICAgICB8ICAgICAgICAgICAKKyBjb21wYW55MiB8IDA3LTA0LTIwMjMgfCAgMTQwMCB8ICAgICAg ICAgICAgIHwgICAgICAgICAgIAorIGNvbXBhbnkyIHwgMDctMDUtMjAyMyB8ICAxNTAwIHwgICAg ICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFueTIgfCAwNy0wNi0yMDIzIHwgICAgNjAgfCAg ICAgICAgICAgICB8ICAgICAgICAgICAKKyBjb21wYW55MiB8IDA3LTA3LTIwMjMgfCAgMTEwMCB8 ICAgICAgICAgICAgIHwgICAgICAgICAgIAorIGNvbXBhbnkyIHwgMDctMDgtMjAyMyB8ICAxMzAw IHwgICAgICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFueTIgfCAwNy0wOS0yMDIzIHwgIDEy MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAKKyBjb21wYW55MiB8IDA3LTEwLTIwMjMgfCAg MTMwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAorKDIwIHJvd3MpCisKKy0tIHRlc3QgdXNp bmcgbmVzdGVkIGFsdGVybmF0aW9uCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJz dF92YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcKKyBGUk9NIHN0 b2NrCisgV0lORE9XIHcgQVMgKAorIFBBUlRJVElPTiBCWSBjb21wYW55CisgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgSU5JVElBTAorIFBBVFRFUk4g KFNUQVJUICgoVVAgRE9XTikgfCBGTEFUKSspCisgREVGSU5FCisgIFNUQVJUIEFTIFRSVUUsCisg IFVQIEFTIHByaWNlID4gUFJFVihwcmljZSksCisgIERPV04gQVMgcHJpY2UgPCBQUkVWKHByaWNl KSwKKyAgRkxBVCBBUyBwcmljZSA9IFBSRVYocHJpY2UpCispOworIGNvbXBhbnkgIHwgICB0ZGF0 ZSAgICB8IHByaWNlIHwgZmlyc3RfdmFsdWUgfCBsYXN0X3ZhbHVlIAorLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIGNvbXBhbnkxIHwg MDctMDEtMjAyMyB8ICAgMTAwIHwgICAgICAgICAxMDAgfCAgICAgICAgMTUwCisgY29tcGFueTEg fCAwNy0wMi0yMDIzIHwgICAyMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAKKyBjb21wYW55 MSB8IDA3LTAzLTIwMjMgfCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAorIGNvbXBh bnkxIHwgMDctMDQtMjAyMyB8ICAgMTQwIHwgICAgICAgICAxNDAgfCAgICAgICAgIDkwCisgY29t cGFueTEgfCAwNy0wNS0yMDIzIHwgICAxNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAKKyBj b21wYW55MSB8IDA3LTA2LTIwMjMgfCAgICA5MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAor IGNvbXBhbnkxIHwgMDctMDctMjAyMyB8ICAgMTEwIHwgICAgICAgICAxMTAgfCAgICAgICAgMTIw CisgY29tcGFueTEgfCAwNy0wOC0yMDIzIHwgICAxMzAgfCAgICAgICAgICAgICB8ICAgICAgICAg ICAKKyBjb21wYW55MSB8IDA3LTA5LTIwMjMgfCAgIDEyMCB8ICAgICAgICAgICAgIHwgICAgICAg ICAgIAorIGNvbXBhbnkxIHwgMDctMTAtMjAyMyB8ICAgMTMwIHwgICAgICAgICAgICAgfCAgICAg ICAgICAgCisgY29tcGFueTIgfCAwNy0wMS0yMDIzIHwgICAgNTAgfCAgICAgICAgICA1MCB8ICAg ICAgIDE1MDAKKyBjb21wYW55MiB8IDA3LTAyLTIwMjMgfCAgMjAwMCB8ICAgICAgICAgICAgIHwg ICAgICAgICAgIAorIGNvbXBhbnkyIHwgMDctMDMtMjAyMyB8ICAxNTAwIHwgICAgICAgICAgICAg fCAgICAgICAgICAgCisgY29tcGFueTIgfCAwNy0wNC0yMDIzIHwgIDE0MDAgfCAgICAgICAgMTQw MCB8ICAgICAgICAgNjAKKyBjb21wYW55MiB8IDA3LTA1LTIwMjMgfCAgMTUwMCB8ICAgICAgICAg ICAgIHwgICAgICAgICAgIAorIGNvbXBhbnkyIHwgMDctMDYtMjAyMyB8ICAgIDYwIHwgICAgICAg ICAgICAgfCAgICAgICAgICAgCisgY29tcGFueTIgfCAwNy0wNy0yMDIzIHwgIDExMDAgfCAgICAg ICAgMTEwMCB8ICAgICAgIDEyMDAKKyBjb21wYW55MiB8IDA3LTA4LTIwMjMgfCAgMTMwMCB8ICAg ICAgICAgICAgIHwgICAgICAgICAgIAorIGNvbXBhbnkyIHwgMDctMDktMjAyMyB8ICAxMjAwIHwg ICAgICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFueTIgfCAwNy0xMC0yMDIzIHwgIDEzMDAg fCAgICAgICAgICAgICB8ICAgICAgICAgICAKKygyMCByb3dzKQorCistLSB0ZXN0IHVzaW5nIGdy b3VwIHdpdGggcXVhbnRpZmllcgorU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmlyc3Rf dmFsdWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3CisgRlJPTSBzdG9j aworIFdJTkRPVyB3IEFTICgKKyBQQVJUSVRJT04gQlkgY29tcGFueQorIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworIElOSVRJQUwKKyBQQVRURVJOICgo VVAgRE9XTikrKQorIERFRklORQorICBVUCBBUyBwcmljZSA+IFBSRVYocHJpY2UpLAorICBET1dO IEFTIHByaWNlIDwgUFJFVihwcmljZSkKKyk7CisgY29tcGFueSAgfCAgIHRkYXRlICAgIHwgcHJp Y2UgfCBmaXJzdF92YWx1ZSB8IGxhc3RfdmFsdWUgCistLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgY29tcGFueTEgfCAwNy0wMS0yMDIz IHwgICAxMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAKKyBjb21wYW55MSB8IDA3LTAyLTIw MjMgfCAgIDIwMCB8ICAgICAgICAgMjAwIHwgICAgICAgIDE1MAorIGNvbXBhbnkxIHwgMDctMDMt MjAyMyB8ICAgMTUwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFueTEgfCAwNy0w NC0yMDIzIHwgICAxNDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAKKyBjb21wYW55MSB8IDA3 LTA1LTIwMjMgfCAgIDE1MCB8ICAgICAgICAgMTUwIHwgICAgICAgICA5MAorIGNvbXBhbnkxIHwg MDctMDYtMjAyMyB8ICAgIDkwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFueTEg fCAwNy0wNy0yMDIzIHwgICAxMTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAKKyBjb21wYW55 MSB8IDA3LTA4LTIwMjMgfCAgIDEzMCB8ICAgICAgICAgMTMwIHwgICAgICAgIDEyMAorIGNvbXBh bnkxIHwgMDctMDktMjAyMyB8ICAgMTIwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgCisgY29t cGFueTEgfCAwNy0xMC0yMDIzIHwgICAxMzAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAKKyBj b21wYW55MiB8IDA3LTAxLTIwMjMgfCAgICA1MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAor IGNvbXBhbnkyIHwgMDctMDItMjAyMyB8ICAyMDAwIHwgICAgICAgIDIwMDAgfCAgICAgICAxNTAw CisgY29tcGFueTIgfCAwNy0wMy0yMDIzIHwgIDE1MDAgfCAgICAgICAgICAgICB8ICAgICAgICAg ICAKKyBjb21wYW55MiB8IDA3LTA0LTIwMjMgfCAgMTQwMCB8ICAgICAgICAgICAgIHwgICAgICAg ICAgIAorIGNvbXBhbnkyIHwgMDctMDUtMjAyMyB8ICAxNTAwIHwgICAgICAgIDE1MDAgfCAgICAg ICAgIDYwCisgY29tcGFueTIgfCAwNy0wNi0yMDIzIHwgICAgNjAgfCAgICAgICAgICAgICB8ICAg ICAgICAgICAKKyBjb21wYW55MiB8IDA3LTA3LTIwMjMgfCAgMTEwMCB8ICAgICAgICAgICAgIHwg ICAgICAgICAgIAorIGNvbXBhbnkyIHwgMDctMDgtMjAyMyB8ICAxMzAwIHwgICAgICAgIDEzMDAg fCAgICAgICAxMjAwCisgY29tcGFueTIgfCAwNy0wOS0yMDIzIHwgIDEyMDAgfCAgICAgICAgICAg ICB8ICAgICAgICAgICAKKyBjb21wYW55MiB8IDA3LTEwLTIwMjMgfCAgMTMwMCB8ICAgICAgICAg ICAgIHwgICAgICAgICAgIAorKDIwIHJvd3MpCisKKy0tIHRlc3QgdXNpbmcgYWJzb2x1dGUgdGhy ZXNob2xkIHZhbHVlcyAobm90IHJlbGF0aXZlIFBSRVYpCistLSBISUdIOiBwcmljZSA+IDE1MCwg TE9XOiBwcmljZSA8IDEwMCwgTUlEOiBuZXV0cmFsIHJhbmdlCitTRUxFQ1QgY29tcGFueSwgdGRh dGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNlKSBP VkVSIHcKKyBGUk9NIHN0b2NrCisgV0lORE9XIHcgQVMgKAorIFBBUlRJVElPTiBCWSBjb21wYW55 CisgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgSU5J VElBTAorIFBBVFRFUk4gKExPVyBNSUQqIEhJR0gpCisgREVGSU5FCisgIExPVyBBUyBwcmljZSA8 IDEwMCwKKyAgTUlEIEFTIHByaWNlID49IDEwMCBBTkQgcHJpY2UgPD0gMTUwLAorICBISUdIIEFT IHByaWNlID4gMTUwCispOworIGNvbXBhbnkgIHwgICB0ZGF0ZSAgICB8IHByaWNlIHwgZmlyc3Rf dmFsdWUgfCBsYXN0X3ZhbHVlIAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIGNvbXBhbnkxIHwgMDctMDEtMjAyMyB8ICAgMTAwIHwg ICAgICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFueTEgfCAwNy0wMi0yMDIzIHwgICAyMDAg fCAgICAgICAgICAgICB8ICAgICAgICAgICAKKyBjb21wYW55MSB8IDA3LTAzLTIwMjMgfCAgIDE1 MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAorIGNvbXBhbnkxIHwgMDctMDQtMjAyMyB8ICAg MTQwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFueTEgfCAwNy0wNS0yMDIzIHwg ICAxNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAKKyBjb21wYW55MSB8IDA3LTA2LTIwMjMg fCAgICA5MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAorIGNvbXBhbnkxIHwgMDctMDctMjAy MyB8ICAgMTEwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFueTEgfCAwNy0wOC0y MDIzIHwgICAxMzAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAKKyBjb21wYW55MSB8IDA3LTA5 LTIwMjMgfCAgIDEyMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAorIGNvbXBhbnkxIHwgMDct MTAtMjAyMyB8ICAgMTMwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFueTIgfCAw Ny0wMS0yMDIzIHwgICAgNTAgfCAgICAgICAgICA1MCB8ICAgICAgIDIwMDAKKyBjb21wYW55MiB8 IDA3LTAyLTIwMjMgfCAgMjAwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAorIGNvbXBhbnky IHwgMDctMDMtMjAyMyB8ICAxNTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFu eTIgfCAwNy0wNC0yMDIzIHwgIDE0MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAKKyBjb21w YW55MiB8IDA3LTA1LTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAorIGNv bXBhbnkyIHwgMDctMDYtMjAyMyB8ICAgIDYwIHwgICAgICAgICAgNjAgfCAgICAgICAxMTAwCisg Y29tcGFueTIgfCAwNy0wNy0yMDIzIHwgIDExMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAK KyBjb21wYW55MiB8IDA3LTA4LTIwMjMgfCAgMTMwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAg IAorIGNvbXBhbnkyIHwgMDctMDktMjAyMyB8ICAxMjAwIHwgICAgICAgICAgICAgfCAgICAgICAg ICAgCisgY29tcGFueTIgfCAwNy0xMC0yMDIzIHwgIDEzMDAgfCAgICAgICAgICAgICB8ICAgICAg ICAgICAKKygyMCByb3dzKQorCistLSB0ZXN0IHRocmVzaG9sZC1iYXNlZCBwYXR0ZXJuIHdpdGgg YWx0ZXJuYXRpb24KK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3ZhbHVlKHBy aWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdworIEZST00gc3RvY2sKKyBXSU5E T1cgdyBBUyAoCisgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyBJTklUSUFMCisgUEFUVEVSTiAoTE9XIChNSUQg fCBISUdIKSspCisgREVGSU5FCisgIExPVyBBUyBwcmljZSA8IDEwMCwKKyAgTUlEIEFTIHByaWNl ID49IDEwMCBBTkQgcHJpY2UgPD0gMTUwLAorICBISUdIIEFTIHByaWNlID4gMTUwCispOworIGNv bXBhbnkgIHwgICB0ZGF0ZSAgICB8IHByaWNlIHwgZmlyc3RfdmFsdWUgfCBsYXN0X3ZhbHVlIAor LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LQorIGNvbXBhbnkxIHwgMDctMDEtMjAyMyB8ICAgMTAwIHwgICAgICAgICAgICAgfCAgICAgICAg ICAgCisgY29tcGFueTEgfCAwNy0wMi0yMDIzIHwgICAyMDAgfCAgICAgICAgICAgICB8ICAgICAg ICAgICAKKyBjb21wYW55MSB8IDA3LTAzLTIwMjMgfCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAg ICAgICAgIAorIGNvbXBhbnkxIHwgMDctMDQtMjAyMyB8ICAgMTQwIHwgICAgICAgICAgICAgfCAg ICAgICAgICAgCisgY29tcGFueTEgfCAwNy0wNS0yMDIzIHwgICAxNTAgfCAgICAgICAgICAgICB8 ICAgICAgICAgICAKKyBjb21wYW55MSB8IDA3LTA2LTIwMjMgfCAgICA5MCB8ICAgICAgICAgIDkw IHwgICAgICAgIDEzMAorIGNvbXBhbnkxIHwgMDctMDctMjAyMyB8ICAgMTEwIHwgICAgICAgICAg ICAgfCAgICAgICAgICAgCisgY29tcGFueTEgfCAwNy0wOC0yMDIzIHwgICAxMzAgfCAgICAgICAg ICAgICB8ICAgICAgICAgICAKKyBjb21wYW55MSB8IDA3LTA5LTIwMjMgfCAgIDEyMCB8ICAgICAg ICAgICAgIHwgICAgICAgICAgIAorIGNvbXBhbnkxIHwgMDctMTAtMjAyMyB8ICAgMTMwIHwgICAg ICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFueTIgfCAwNy0wMS0yMDIzIHwgICAgNTAgfCAg ICAgICAgICA1MCB8ICAgICAgIDE1MDAKKyBjb21wYW55MiB8IDA3LTAyLTIwMjMgfCAgMjAwMCB8 ICAgICAgICAgICAgIHwgICAgICAgICAgIAorIGNvbXBhbnkyIHwgMDctMDMtMjAyMyB8ICAxNTAw IHwgICAgICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFueTIgfCAwNy0wNC0yMDIzIHwgIDE0 MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAKKyBjb21wYW55MiB8IDA3LTA1LTIwMjMgfCAg MTUwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAorIGNvbXBhbnkyIHwgMDctMDYtMjAyMyB8 ICAgIDYwIHwgICAgICAgICAgNjAgfCAgICAgICAxMzAwCisgY29tcGFueTIgfCAwNy0wNy0yMDIz IHwgIDExMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAKKyBjb21wYW55MiB8IDA3LTA4LTIw MjMgfCAgMTMwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAorIGNvbXBhbnkyIHwgMDctMDkt MjAyMyB8ICAxMjAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFueTIgfCAwNy0x MC0yMDIzIHwgIDEzMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAKKygyMCByb3dzKQorCist LSBiYXNpYyB0ZXN0IHdpdGggZml4ZWQtbGVuZ3RoIHBhdHRlcm4gKEEgQSBBID0gZXhhY3RseSAz KQorU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgY291bnQoKikgT1ZFUiB3CisgRlJPTSBz dG9jaworIFdJTkRPVyB3IEFTICgKKyBQQVJUSVRJT04gQlkgY29tcGFueQorIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworIElOSVRJQUwKKyBQQVRURVJO IChBIEEgQSkKKyBERUZJTkUKKyAgQSBBUyBwcmljZSA+PSAxNDAgQU5EIHByaWNlIDw9IDE1MAor KTsKKyBjb21wYW55ICB8ICAgdGRhdGUgICAgfCBwcmljZSB8IGNvdW50IAorLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tCisgY29tcGFueTEgfCAwNy0wMS0yMDIzIHwgICAx MDAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDItMjAyMyB8ICAgMjAwIHwgICAgIDAKKyBjb21w YW55MSB8IDA3LTAzLTIwMjMgfCAgIDE1MCB8ICAgICAzCisgY29tcGFueTEgfCAwNy0wNC0yMDIz IHwgICAxNDAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDUtMjAyMyB8ICAgMTUwIHwgICAgIDAK KyBjb21wYW55MSB8IDA3LTA2LTIwMjMgfCAgICA5MCB8ICAgICAwCisgY29tcGFueTEgfCAwNy0w Ny0yMDIzIHwgICAxMTAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDgtMjAyMyB8ICAgMTMwIHwg ICAgIDAKKyBjb21wYW55MSB8IDA3LTA5LTIwMjMgfCAgIDEyMCB8ICAgICAwCisgY29tcGFueTEg fCAwNy0xMC0yMDIzIHwgICAxMzAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDEtMjAyMyB8ICAg IDUwIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAyLTIwMjMgfCAgMjAwMCB8ICAgICAwCisgY29t cGFueTIgfCAwNy0wMy0yMDIzIHwgIDE1MDAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDQtMjAy MyB8ICAxNDAwIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA1LTIwMjMgfCAgMTUwMCB8ICAgICAw CisgY29tcGFueTIgfCAwNy0wNi0yMDIzIHwgICAgNjAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDct MDctMjAyMyB8ICAxMTAwIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA4LTIwMjMgfCAgMTMwMCB8 ICAgICAwCisgY29tcGFueTIgfCAwNy0wOS0yMDIzIHwgIDEyMDAgfCAgICAgMAorIGNvbXBhbnky IHwgMDctMTAtMjAyMyB8ICAxMzAwIHwgICAgIDAKKygyMCByb3dzKQorCistLSB0ZXN0IHVzaW5n IHtufSBxdWFudGlmaWVyIChBIEEgQSBzaG91bGQgYmUgb3B0aW1pemVkIHRvIEF7M30pCitTRUxF Q1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBjb3VudCgqKSBPVkVSIHcKKyBGUk9NIHN0b2NrCisg V0lORE9XIHcgQVMgKAorIFBBUlRJVElPTiBCWSBjb21wYW55CisgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgSU5JVElBTAorIFBBVFRFUk4gKEF7M30p CisgREVGSU5FCisgIEEgQVMgcHJpY2UgPj0gMTQwIEFORCBwcmljZSA8PSAxNTAKKyk7CisgY29t cGFueSAgfCAgIHRkYXRlICAgIHwgcHJpY2UgfCBjb3VudCAKKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0rLS0tLS0tLQorIGNvbXBhbnkxIHwgMDctMDEtMjAyMyB8ICAgMTAwIHwgICAg IDAKKyBjb21wYW55MSB8IDA3LTAyLTIwMjMgfCAgIDIwMCB8ICAgICAwCisgY29tcGFueTEgfCAw Ny0wMy0yMDIzIHwgICAxNTAgfCAgICAgMworIGNvbXBhbnkxIHwgMDctMDQtMjAyMyB8ICAgMTQw IHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA1LTIwMjMgfCAgIDE1MCB8ICAgICAwCisgY29tcGFu eTEgfCAwNy0wNi0yMDIzIHwgICAgOTAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDctMjAyMyB8 ICAgMTEwIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA4LTIwMjMgfCAgIDEzMCB8ICAgICAwCisg Y29tcGFueTEgfCAwNy0wOS0yMDIzIHwgICAxMjAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMTAt MjAyMyB8ICAgMTMwIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAxLTIwMjMgfCAgICA1MCB8ICAg ICAwCisgY29tcGFueTIgfCAwNy0wMi0yMDIzIHwgIDIwMDAgfCAgICAgMAorIGNvbXBhbnkyIHwg MDctMDMtMjAyMyB8ICAxNTAwIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA0LTIwMjMgfCAgMTQw MCB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNS0yMDIzIHwgIDE1MDAgfCAgICAgMAorIGNvbXBh bnkyIHwgMDctMDYtMjAyMyB8ICAgIDYwIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA3LTIwMjMg fCAgMTEwMCB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wOC0yMDIzIHwgIDEzMDAgfCAgICAgMAor IGNvbXBhbnkyIHwgMDctMDktMjAyMyB8ICAxMjAwIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTEw LTIwMjMgfCAgMTMwMCB8ICAgICAwCisoMjAgcm93cykKKworLS0gdGVzdCB1c2luZyB7bix9IHF1 YW50aWZpZXIgKDIgb3IgbW9yZSkKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGNvdW50 KCopIE9WRVIgdworIEZST00gc3RvY2sKKyBXSU5ET1cgdyBBUyAoCisgUEFSVElUSU9OIEJZIGNv bXBhbnkKKyBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyBJTklUSUFMCisgUEFUVEVSTiAoQXsyLH0pCisgREVGSU5FCisgIEEgQVMgcHJpY2UgPiAxMDAK Kyk7CisgY29tcGFueSAgfCAgIHRkYXRlICAgIHwgcHJpY2UgfCBjb3VudCAKKy0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLQorIGNvbXBhbnkxIHwgMDctMDEtMjAyMyB8ICAg MTAwIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTAyLTIwMjMgfCAgIDIwMCB8ICAgICA0CisgY29t cGFueTEgfCAwNy0wMy0yMDIzIHwgICAxNTAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDQtMjAy MyB8ICAgMTQwIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA1LTIwMjMgfCAgIDE1MCB8ICAgICAw CisgY29tcGFueTEgfCAwNy0wNi0yMDIzIHwgICAgOTAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDct MDctMjAyMyB8ICAgMTEwIHwgICAgIDQKKyBjb21wYW55MSB8IDA3LTA4LTIwMjMgfCAgIDEzMCB8 ICAgICAwCisgY29tcGFueTEgfCAwNy0wOS0yMDIzIHwgICAxMjAgfCAgICAgMAorIGNvbXBhbnkx IHwgMDctMTAtMjAyMyB8ICAgMTMwIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAxLTIwMjMgfCAg ICA1MCB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wMi0yMDIzIHwgIDIwMDAgfCAgICAgNAorIGNv bXBhbnkyIHwgMDctMDMtMjAyMyB8ICAxNTAwIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA0LTIw MjMgfCAgMTQwMCB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNS0yMDIzIHwgIDE1MDAgfCAgICAg MAorIGNvbXBhbnkyIHwgMDctMDYtMjAyMyB8ICAgIDYwIHwgICAgIDAKKyBjb21wYW55MiB8IDA3 LTA3LTIwMjMgfCAgMTEwMCB8ICAgICA0CisgY29tcGFueTIgfCAwNy0wOC0yMDIzIHwgIDEzMDAg fCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDktMjAyMyB8ICAxMjAwIHwgICAgIDAKKyBjb21wYW55 MiB8IDA3LTEwLTIwMjMgfCAgMTMwMCB8ICAgICAwCisoMjAgcm93cykKKworLS0gdGVzdCB1c2lu ZyB7bixtfSBxdWFudGlmaWVyICgyIHRvIDQpCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNl LCBjb3VudCgqKSBPVkVSIHcKKyBGUk9NIHN0b2NrCisgV0lORE9XIHcgQVMgKAorIFBBUlRJVElP TiBCWSBjb21wYW55CisgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgSU5JVElBTAorIFBBVFRFUk4gKEF7Miw0fSkKKyBERUZJTkUKKyAgQSBBUyBwcmlj ZSA+IDEwMAorKTsKKyBjb21wYW55ICB8ICAgdGRhdGUgICAgfCBwcmljZSB8IGNvdW50IAorLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tCisgY29tcGFueTEgfCAwNy0wMS0y MDIzIHwgICAxMDAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDItMjAyMyB8ICAgMjAwIHwgICAg IDQKKyBjb21wYW55MSB8IDA3LTAzLTIwMjMgfCAgIDE1MCB8ICAgICAwCisgY29tcGFueTEgfCAw Ny0wNC0yMDIzIHwgICAxNDAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDUtMjAyMyB8ICAgMTUw IHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA2LTIwMjMgfCAgICA5MCB8ICAgICAwCisgY29tcGFu eTEgfCAwNy0wNy0yMDIzIHwgICAxMTAgfCAgICAgNAorIGNvbXBhbnkxIHwgMDctMDgtMjAyMyB8 ICAgMTMwIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA5LTIwMjMgfCAgIDEyMCB8ICAgICAwCisg Y29tcGFueTEgfCAwNy0xMC0yMDIzIHwgICAxMzAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDEt MjAyMyB8ICAgIDUwIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAyLTIwMjMgfCAgMjAwMCB8ICAg ICA0CisgY29tcGFueTIgfCAwNy0wMy0yMDIzIHwgIDE1MDAgfCAgICAgMAorIGNvbXBhbnkyIHwg MDctMDQtMjAyMyB8ICAxNDAwIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA1LTIwMjMgfCAgMTUw MCB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNi0yMDIzIHwgICAgNjAgfCAgICAgMAorIGNvbXBh bnkyIHwgMDctMDctMjAyMyB8ICAxMTAwIHwgICAgIDQKKyBjb21wYW55MiB8IDA3LTA4LTIwMjMg fCAgMTMwMCB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wOS0yMDIzIHwgIDEyMDAgfCAgICAgMAor IGNvbXBhbnkyIHwgMDctMTAtMjAyMyB8ICAxMzAwIHwgICAgIDAKKygyMCByb3dzKQorCistLSB0 ZXN0IHByZWZpeC9zdWZmaXggbWVyZ2Ugb3B0aW1pemF0aW9uIHdpdGggYm91bmRlZCBxdWFudGlm aWVyCistLSBQYXR0ZXJuIEEgQiAoQSBCKXsxLDJ9IEEgQiBzaG91bGQgYmUgb3B0aW1pemVkIHRv IChBIEIpezMsNH0KK0NSRUFURSBURU1QIFRBQkxFIHJwcl90IChpZCBpbnQsIHZhbCB0ZXh0KTsK K0lOU0VSVCBJTlRPIHJwcl90IFZBTFVFUworICAoMSwnQScpLCgyLCdCJyksCisgICgzLCdBJyks KDQsJ0InKSwKKyAgKDUsJ0EnKSwoNiwnQicpLAorICAoNywnQScpLCg4LCdCJyksCisgICg5LCdY Jyk7CitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIG1hdGNoX2NvdW50CitGUk9N IHJwcl90CitXSU5ET1cgdyBBUyAoCisgIE9SREVSIEJZIGlkCisgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5F WFQgUk9XCisgIElOSVRJQUwKKyAgUEFUVEVSTiAoQSBCIChBIEIpezEsMn0gQSBCKQorICBERUZJ TkUKKyAgICBBIEFTIHZhbCA9ICdBJywKKyAgICBCIEFTIHZhbCA9ICdCJworKTsKKyBpZCB8IHZh bCB8IG1hdGNoX2NvdW50IAorLS0tLSstLS0tLSstLS0tLS0tLS0tLS0tCisgIDEgfCBBICAgfCAg ICAgICAgICAgOAorICAyIHwgQiAgIHwgICAgICAgICAgIDAKKyAgMyB8IEEgICB8ICAgICAgICAg ICA2CisgIDQgfCBCICAgfCAgICAgICAgICAgMAorICA1IHwgQSAgIHwgICAgICAgICAgIDAKKyAg NiB8IEIgICB8ICAgICAgICAgICAwCisgIDcgfCBBICAgfCAgICAgICAgICAgMAorICA4IHwgQiAg IHwgICAgICAgICAgIDAKKyAgOSB8IFggICB8ICAgICAgICAgICAwCisoOSByb3dzKQorCitEUk9Q IFRBQkxFIHJwcl90OworLS0gbGFzdF92YWx1ZSgpIHNob3VsZCByZW1haW4gY29uc2lzdGVudAor U0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3Cisg RlJPTSBzdG9jaworIFdJTkRPVyB3IEFTICgKKyBQQVJUSVRJT04gQlkgY29tcGFueQorIE9SREVS IEJZIHRkYXRlCisgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgSU5JVElBTAorIFBBVFRFUk4gKFNUQVJUIFVQKyBET1dOKykKKyBERUZJTkUKKyAgU1RB UlQgQVMgVFJVRSwKKyAgVVAgQVMgcHJpY2UgPiBQUkVWKHByaWNlKSwKKyAgRE9XTiBBUyBwcmlj ZSA8IFBSRVYocHJpY2UpCispOworIGNvbXBhbnkgIHwgICB0ZGF0ZSAgICB8IHByaWNlIHwgbGFz dF92YWx1ZSAKKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tCisg Y29tcGFueTEgfCAwNy0wMS0yMDIzIHwgICAxMDAgfCAgICAgICAgMTQwCisgY29tcGFueTEgfCAw Ny0wMi0yMDIzIHwgICAyMDAgfCAgICAgICAgICAgCisgY29tcGFueTEgfCAwNy0wMy0yMDIzIHwg ICAxNTAgfCAgICAgICAgICAgCisgY29tcGFueTEgfCAwNy0wNC0yMDIzIHwgICAxNDAgfCAgICAg ICAgICAgCisgY29tcGFueTEgfCAwNy0wNS0yMDIzIHwgICAxNTAgfCAgICAgICAgICAgCisgY29t cGFueTEgfCAwNy0wNi0yMDIzIHwgICAgOTAgfCAgICAgICAgMTIwCisgY29tcGFueTEgfCAwNy0w Ny0yMDIzIHwgICAxMTAgfCAgICAgICAgICAgCisgY29tcGFueTEgfCAwNy0wOC0yMDIzIHwgICAx MzAgfCAgICAgICAgICAgCisgY29tcGFueTEgfCAwNy0wOS0yMDIzIHwgICAxMjAgfCAgICAgICAg ICAgCisgY29tcGFueTEgfCAwNy0xMC0yMDIzIHwgICAxMzAgfCAgICAgICAgICAgCisgY29tcGFu eTIgfCAwNy0wMS0yMDIzIHwgICAgNTAgfCAgICAgICAxNDAwCisgY29tcGFueTIgfCAwNy0wMi0y MDIzIHwgIDIwMDAgfCAgICAgICAgICAgCisgY29tcGFueTIgfCAwNy0wMy0yMDIzIHwgIDE1MDAg fCAgICAgICAgICAgCisgY29tcGFueTIgfCAwNy0wNC0yMDIzIHwgIDE0MDAgfCAgICAgICAgICAg CisgY29tcGFueTIgfCAwNy0wNS0yMDIzIHwgIDE1MDAgfCAgICAgICAgICAgCisgY29tcGFueTIg fCAwNy0wNi0yMDIzIHwgICAgNjAgfCAgICAgICAxMjAwCisgY29tcGFueTIgfCAwNy0wNy0yMDIz IHwgIDExMDAgfCAgICAgICAgICAgCisgY29tcGFueTIgfCAwNy0wOC0yMDIzIHwgIDEzMDAgfCAg ICAgICAgICAgCisgY29tcGFueTIgfCAwNy0wOS0yMDIzIHwgIDEyMDAgfCAgICAgICAgICAgCisg Y29tcGFueTIgfCAwNy0xMC0yMDIzIHwgIDEzMDAgfCAgICAgICAgICAgCisoMjAgcm93cykKKwor LS0gb21pdCAiU1RBUlQiIGluIERFRklORSBidXQgaXQgaXMgb2sgYmVjYXVzZSAiU1RBUlQgQVMg VFJVRSIgaXMKKy0tIGltcGxpY2l0bHkgZGVmaW5lZC4gcGVyIHNwZWMuCitTRUxFQ1QgY29tcGFu eSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHBy aWNlKSBPVkVSIHcsCisgbnRoX3ZhbHVlKHRkYXRlLCAyKSBPVkVSIHcgQVMgbnRoX3NlY29uZAor IEZST00gc3RvY2sKKyBXSU5ET1cgdyBBUyAoCisgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyBJTklUSUFMCisg UEFUVEVSTiAoU1RBUlQgVVArIERPV04rKQorIERFRklORQorICBVUCBBUyBwcmljZSA+IFBSRVYo cHJpY2UpLAorICBET1dOIEFTIHByaWNlIDwgUFJFVihwcmljZSkKKyk7CisgY29tcGFueSAgfCAg IHRkYXRlICAgIHwgcHJpY2UgfCBmaXJzdF92YWx1ZSB8IGxhc3RfdmFsdWUgfCBudGhfc2Vjb25k IAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KKyBjb21wYW55MSB8IDA3LTAxLTIwMjMgfCAgIDEwMCB8ICAgICAg ICAgMTAwIHwgICAgICAgIDE0MCB8IDA3LTAyLTIwMjMKKyBjb21wYW55MSB8IDA3LTAyLTIwMjMg fCAgIDIwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAorIGNvbXBhbnkxIHwgMDctMDMt MjAyMyB8ICAgMTUwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgCisgY29tcGFueTEgfCAw Ny0wNC0yMDIzIHwgICAxNDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAKKyBjb21wYW55 MSB8IDA3LTA1LTIwMjMgfCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAorIGNv bXBhbnkxIHwgMDctMDYtMjAyMyB8ICAgIDkwIHwgICAgICAgICAgOTAgfCAgICAgICAgMTIwIHwg MDctMDctMjAyMworIGNvbXBhbnkxIHwgMDctMDctMjAyMyB8ICAgMTEwIHwgICAgICAgICAgICAg fCAgICAgICAgICAgIHwgCisgY29tcGFueTEgfCAwNy0wOC0yMDIzIHwgICAxMzAgfCAgICAgICAg ICAgICB8ICAgICAgICAgICAgfCAKKyBjb21wYW55MSB8IDA3LTA5LTIwMjMgfCAgIDEyMCB8ICAg ICAgICAgICAgIHwgICAgICAgICAgICB8IAorIGNvbXBhbnkxIHwgMDctMTAtMjAyMyB8ICAgMTMw IHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgCisgY29tcGFueTIgfCAwNy0wMS0yMDIzIHwg ICAgNTAgfCAgICAgICAgICA1MCB8ICAgICAgIDE0MDAgfCAwNy0wMi0yMDIzCisgY29tcGFueTIg fCAwNy0wMi0yMDIzIHwgIDIwMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAKKyBjb21w YW55MiB8IDA3LTAzLTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAor IGNvbXBhbnkyIHwgMDctMDQtMjAyMyB8ICAxNDAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgCisgY29tcGFueTIgfCAwNy0wNS0yMDIzIHwgIDE1MDAgfCAgICAgICAgICAgICB8ICAgICAg ICAgICAgfCAKKyBjb21wYW55MiB8IDA3LTA2LTIwMjMgfCAgICA2MCB8ICAgICAgICAgIDYwIHwg ICAgICAgMTIwMCB8IDA3LTA3LTIwMjMKKyBjb21wYW55MiB8IDA3LTA3LTIwMjMgfCAgMTEwMCB8 ICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAorIGNvbXBhbnkyIHwgMDctMDgtMjAyMyB8ICAx MzAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgCisgY29tcGFueTIgfCAwNy0wOS0yMDIz IHwgIDEyMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAKKyBjb21wYW55MiB8IDA3LTEw LTIwMjMgfCAgMTMwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAorKDIwIHJvd3MpCisK Ky0tIHRoZSBmaXJzdCByb3cgc3RhcnQgd2l0aCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMTAwCitT RUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBs YXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcKKyBGUk9NIHN0b2NrCisgV0lORE9XIHcgQVMgKAorIFBB UlRJVElPTiBCWSBjb21wYW55CisgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgSU5JVElBTAorIFBBVFRFUk4gKExPV1BSSUNFIFVQKyBET1dOKykKKyBE RUZJTkUKKyAgTE9XUFJJQ0UgQVMgcHJpY2UgPD0gMTAwLAorICBVUCBBUyBwcmljZSA+IFBSRVYo cHJpY2UpLAorICBET1dOIEFTIHByaWNlIDwgUFJFVihwcmljZSkKKyk7CisgY29tcGFueSAgfCAg IHRkYXRlICAgIHwgcHJpY2UgfCBmaXJzdF92YWx1ZSB8IGxhc3RfdmFsdWUgCistLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgY29tcGFu eTEgfCAwNy0wMS0yMDIzIHwgICAxMDAgfCAgICAgICAgIDEwMCB8ICAgICAgICAxNDAKKyBjb21w YW55MSB8IDA3LTAyLTIwMjMgfCAgIDIwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAorIGNv bXBhbnkxIHwgMDctMDMtMjAyMyB8ICAgMTUwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgCisg Y29tcGFueTEgfCAwNy0wNC0yMDIzIHwgICAxNDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAK KyBjb21wYW55MSB8IDA3LTA1LTIwMjMgfCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAgICAgICAg IAorIGNvbXBhbnkxIHwgMDctMDYtMjAyMyB8ICAgIDkwIHwgICAgICAgICAgOTAgfCAgICAgICAg MTIwCisgY29tcGFueTEgfCAwNy0wNy0yMDIzIHwgICAxMTAgfCAgICAgICAgICAgICB8ICAgICAg ICAgICAKKyBjb21wYW55MSB8IDA3LTA4LTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAg ICAgICAgIAorIGNvbXBhbnkxIHwgMDctMDktMjAyMyB8ICAgMTIwIHwgICAgICAgICAgICAgfCAg ICAgICAgICAgCisgY29tcGFueTEgfCAwNy0xMC0yMDIzIHwgICAxMzAgfCAgICAgICAgICAgICB8 ICAgICAgICAgICAKKyBjb21wYW55MiB8IDA3LTAxLTIwMjMgfCAgICA1MCB8ICAgICAgICAgIDUw IHwgICAgICAgMTQwMAorIGNvbXBhbnkyIHwgMDctMDItMjAyMyB8ICAyMDAwIHwgICAgICAgICAg ICAgfCAgICAgICAgICAgCisgY29tcGFueTIgfCAwNy0wMy0yMDIzIHwgIDE1MDAgfCAgICAgICAg ICAgICB8ICAgICAgICAgICAKKyBjb21wYW55MiB8IDA3LTA0LTIwMjMgfCAgMTQwMCB8ICAgICAg ICAgICAgIHwgICAgICAgICAgIAorIGNvbXBhbnkyIHwgMDctMDUtMjAyMyB8ICAxNTAwIHwgICAg ICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFueTIgfCAwNy0wNi0yMDIzIHwgICAgNjAgfCAg ICAgICAgICA2MCB8ICAgICAgIDEyMDAKKyBjb21wYW55MiB8IDA3LTA3LTIwMjMgfCAgMTEwMCB8 ICAgICAgICAgICAgIHwgICAgICAgICAgIAorIGNvbXBhbnkyIHwgMDctMDgtMjAyMyB8ICAxMzAw IHwgICAgICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFueTIgfCAwNy0wOS0yMDIzIHwgIDEy MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAKKyBjb21wYW55MiB8IDA3LTEwLTIwMjMgfCAg MTMwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAorKDIwIHJvd3MpCisKKy0tIHNlY29uZCBy b3cgcmFpc2VzIDEyMCUKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3ZhbHVl KHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdworIEZST00gc3RvY2sKKyBX SU5ET1cgdyBBUyAoCisgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyBJTklUSUFMCisgUEFUVEVSTiAoTE9XUFJJ Q0UgVVArIERPV04rKQorIERFRklORQorICBMT1dQUklDRSBBUyBwcmljZSA8PSAxMDAsCisgIFVQ IEFTIHByaWNlID4gUFJFVihwcmljZSkgKiAxLjIsCisgIERPV04gQVMgcHJpY2UgPCBQUkVWKHBy aWNlKQorKTsKKyBjb21wYW55ICB8ICAgdGRhdGUgICAgfCBwcmljZSB8IGZpcnN0X3ZhbHVlIHwg bGFzdF92YWx1ZSAKKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0KKyBjb21wYW55MSB8IDA3LTAxLTIwMjMgfCAgIDEwMCB8ICAgICAgICAg MTAwIHwgICAgICAgIDE0MAorIGNvbXBhbnkxIHwgMDctMDItMjAyMyB8ICAgMjAwIHwgICAgICAg ICAgICAgfCAgICAgICAgICAgCisgY29tcGFueTEgfCAwNy0wMy0yMDIzIHwgICAxNTAgfCAgICAg ICAgICAgICB8ICAgICAgICAgICAKKyBjb21wYW55MSB8IDA3LTA0LTIwMjMgfCAgIDE0MCB8ICAg ICAgICAgICAgIHwgICAgICAgICAgIAorIGNvbXBhbnkxIHwgMDctMDUtMjAyMyB8ICAgMTUwIHwg ICAgICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFueTEgfCAwNy0wNi0yMDIzIHwgICAgOTAg fCAgICAgICAgICAgICB8ICAgICAgICAgICAKKyBjb21wYW55MSB8IDA3LTA3LTIwMjMgfCAgIDEx MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAorIGNvbXBhbnkxIHwgMDctMDgtMjAyMyB8ICAg MTMwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFueTEgfCAwNy0wOS0yMDIzIHwg ICAxMjAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAKKyBjb21wYW55MSB8IDA3LTEwLTIwMjMg fCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAorIGNvbXBhbnkyIHwgMDctMDEtMjAy MyB8ICAgIDUwIHwgICAgICAgICAgNTAgfCAgICAgICAxNDAwCisgY29tcGFueTIgfCAwNy0wMi0y MDIzIHwgIDIwMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAKKyBjb21wYW55MiB8IDA3LTAz LTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAorIGNvbXBhbnkyIHwgMDct MDQtMjAyMyB8ICAxNDAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFueTIgfCAw Ny0wNS0yMDIzIHwgIDE1MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAKKyBjb21wYW55MiB8 IDA3LTA2LTIwMjMgfCAgICA2MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAorIGNvbXBhbnky IHwgMDctMDctMjAyMyB8ICAxMTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFu eTIgfCAwNy0wOC0yMDIzIHwgIDEzMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAKKyBjb21w YW55MiB8IDA3LTA5LTIwMjMgfCAgMTIwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAorIGNv bXBhbnkyIHwgMDctMTAtMjAyMyB8ICAxMzAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgCiso MjAgcm93cykKKworLS0gdXNpbmcgTkVYVAorU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwg Zmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3CisgRlJP TSBzdG9jaworIFdJTkRPVyB3IEFTICgKKyBQQVJUSVRJT04gQlkgY29tcGFueQorIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworIElOSVRJQUwKKyBQQVRU RVJOIChTVEFSVCBVUERPV04pCisgREVGSU5FCisgIFNUQVJUIEFTIFRSVUUsCisgIFVQRE9XTiBB UyBwcmljZSA+IFBSRVYocHJpY2UpIEFORCBwcmljZSA+IE5FWFQocHJpY2UpCispOworIGNvbXBh bnkgIHwgICB0ZGF0ZSAgICB8IHByaWNlIHwgZmlyc3RfdmFsdWUgfCBsYXN0X3ZhbHVlIAorLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQor IGNvbXBhbnkxIHwgMDctMDEtMjAyMyB8ICAgMTAwIHwgICAgICAgICAxMDAgfCAgICAgICAgMjAw CisgY29tcGFueTEgfCAwNy0wMi0yMDIzIHwgICAyMDAgfCAgICAgICAgICAgICB8ICAgICAgICAg ICAKKyBjb21wYW55MSB8IDA3LTAzLTIwMjMgfCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAgICAg ICAgIAorIGNvbXBhbnkxIHwgMDctMDQtMjAyMyB8ICAgMTQwIHwgICAgICAgICAxNDAgfCAgICAg ICAgMTUwCisgY29tcGFueTEgfCAwNy0wNS0yMDIzIHwgICAxNTAgfCAgICAgICAgICAgICB8ICAg ICAgICAgICAKKyBjb21wYW55MSB8IDA3LTA2LTIwMjMgfCAgICA5MCB8ICAgICAgICAgICAgIHwg ICAgICAgICAgIAorIGNvbXBhbnkxIHwgMDctMDctMjAyMyB8ICAgMTEwIHwgICAgICAgICAxMTAg fCAgICAgICAgMTMwCisgY29tcGFueTEgfCAwNy0wOC0yMDIzIHwgICAxMzAgfCAgICAgICAgICAg ICB8ICAgICAgICAgICAKKyBjb21wYW55MSB8IDA3LTA5LTIwMjMgfCAgIDEyMCB8ICAgICAgICAg ICAgIHwgICAgICAgICAgIAorIGNvbXBhbnkxIHwgMDctMTAtMjAyMyB8ICAgMTMwIHwgICAgICAg ICAgICAgfCAgICAgICAgICAgCisgY29tcGFueTIgfCAwNy0wMS0yMDIzIHwgICAgNTAgfCAgICAg ICAgICA1MCB8ICAgICAgIDIwMDAKKyBjb21wYW55MiB8IDA3LTAyLTIwMjMgfCAgMjAwMCB8ICAg ICAgICAgICAgIHwgICAgICAgICAgIAorIGNvbXBhbnkyIHwgMDctMDMtMjAyMyB8ICAxNTAwIHwg ICAgICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFueTIgfCAwNy0wNC0yMDIzIHwgIDE0MDAg fCAgICAgICAgMTQwMCB8ICAgICAgIDE1MDAKKyBjb21wYW55MiB8IDA3LTA1LTIwMjMgfCAgMTUw MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAorIGNvbXBhbnkyIHwgMDctMDYtMjAyMyB8ICAg IDYwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFueTIgfCAwNy0wNy0yMDIzIHwg IDExMDAgfCAgICAgICAgMTEwMCB8ICAgICAgIDEzMDAKKyBjb21wYW55MiB8IDA3LTA4LTIwMjMg fCAgMTMwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAorIGNvbXBhbnkyIHwgMDctMDktMjAy MyB8ICAxMjAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFueTIgfCAwNy0xMC0y MDIzIHwgIDEzMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAKKygyMCByb3dzKQorCistLSB1 c2luZyBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XIChzYW1lIHBhdHRlcm4gYXMgYWJvdmU7 CistLSBtYXRjaCBsZW5ndGggaXMgYWx3YXlzIDIsIHNvIHJlc3VsdCBpcyBpZGVudGljYWwgdG8g U0tJUCBQQVNUIExBU1QgUk9XLgorLS0gU0tJUCBUTyBORVhUIFJPVydzIGRpc3RpbmN0IGVmZmVj dCBpcyB0ZXN0ZWQgaW4gYmFja3RyYWNraW5nIHNlY3Rpb24uKQorU0VMRUNUIGNvbXBhbnksIHRk YXRlLCBwcmljZSwgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkg T1ZFUiB3CisgRlJPTSBzdG9jaworIFdJTkRPVyB3IEFTICgKKyBQQVJUSVRJT04gQlkgY29tcGFu eQorIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworIEFG VEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyBJTklUSUFMCisgUEFUVEVSTiAoU1RBUlQgVVBE T1dOKQorIERFRklORQorICBTVEFSVCBBUyBUUlVFLAorICBVUERPV04gQVMgcHJpY2UgPiBQUkVW KHByaWNlKSBBTkQgcHJpY2UgPiBORVhUKHByaWNlKQorKTsKKyBjb21wYW55ICB8ICAgdGRhdGUg ICAgfCBwcmljZSB8IGZpcnN0X3ZhbHVlIHwgbGFzdF92YWx1ZSAKKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBjb21wYW55MSB8IDA3 LTAxLTIwMjMgfCAgIDEwMCB8ICAgICAgICAgMTAwIHwgICAgICAgIDIwMAorIGNvbXBhbnkxIHwg MDctMDItMjAyMyB8ICAgMjAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFueTEg fCAwNy0wMy0yMDIzIHwgICAxNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAKKyBjb21wYW55 MSB8IDA3LTA0LTIwMjMgfCAgIDE0MCB8ICAgICAgICAgMTQwIHwgICAgICAgIDE1MAorIGNvbXBh bnkxIHwgMDctMDUtMjAyMyB8ICAgMTUwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgCisgY29t cGFueTEgfCAwNy0wNi0yMDIzIHwgICAgOTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAKKyBj b21wYW55MSB8IDA3LTA3LTIwMjMgfCAgIDExMCB8ICAgICAgICAgMTEwIHwgICAgICAgIDEzMAor IGNvbXBhbnkxIHwgMDctMDgtMjAyMyB8ICAgMTMwIHwgICAgICAgICAgICAgfCAgICAgICAgICAg CisgY29tcGFueTEgfCAwNy0wOS0yMDIzIHwgICAxMjAgfCAgICAgICAgICAgICB8ICAgICAgICAg ICAKKyBjb21wYW55MSB8IDA3LTEwLTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAgICAg ICAgIAorIGNvbXBhbnkyIHwgMDctMDEtMjAyMyB8ICAgIDUwIHwgICAgICAgICAgNTAgfCAgICAg ICAyMDAwCisgY29tcGFueTIgfCAwNy0wMi0yMDIzIHwgIDIwMDAgfCAgICAgICAgICAgICB8ICAg ICAgICAgICAKKyBjb21wYW55MiB8IDA3LTAzLTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwg ICAgICAgICAgIAorIGNvbXBhbnkyIHwgMDctMDQtMjAyMyB8ICAxNDAwIHwgICAgICAgIDE0MDAg fCAgICAgICAxNTAwCisgY29tcGFueTIgfCAwNy0wNS0yMDIzIHwgIDE1MDAgfCAgICAgICAgICAg ICB8ICAgICAgICAgICAKKyBjb21wYW55MiB8IDA3LTA2LTIwMjMgfCAgICA2MCB8ICAgICAgICAg ICAgIHwgICAgICAgICAgIAorIGNvbXBhbnkyIHwgMDctMDctMjAyMyB8ICAxMTAwIHwgICAgICAg IDExMDAgfCAgICAgICAxMzAwCisgY29tcGFueTIgfCAwNy0wOC0yMDIzIHwgIDEzMDAgfCAgICAg ICAgICAgICB8ICAgICAgICAgICAKKyBjb21wYW55MiB8IDA3LTA5LTIwMjMgfCAgMTIwMCB8ICAg ICAgICAgICAgIHwgICAgICAgICAgIAorIGNvbXBhbnkyIHwgMDctMTAtMjAyMyB8ICAxMzAwIHwg ICAgICAgICAgICAgfCAgICAgICAgICAgCisoMjAgcm93cykKKworLS0gUFJFViByZXR1cm5zIE5V TEwgYXQgcGFydGl0aW9uJ3MgZmlyc3Qgcm93IChudWxsX3Nsb3QgcGF0aCkKK1NFTEVDVCBjb21w YW55LCB0ZGF0ZSwgcHJpY2UsIGNvdW50KCopIE9WRVIgdworRlJPTSBzdG9jaworV0lORE9XIHcg QVMgKAorIFBBUlRJVElPTiBCWSBjb21wYW55CisgT1JERVIgQlkgdGRhdGUKKyBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyBQQVRURVJOIChCT1VOREFS WSBSRVNUKykKKyBERUZJTkUKKyAgQk9VTkRBUlkgQVMgUFJFVihwcmljZSkgSVMgTlVMTCwKKyAg UkVTVCBBUyBQUkVWKHByaWNlKSBJUyBOT1QgTlVMTAorKTsKKyBjb21wYW55ICB8ICAgdGRhdGUg ICAgfCBwcmljZSB8IGNvdW50IAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0t LS0tCisgY29tcGFueTEgfCAwNy0wMS0yMDIzIHwgICAxMDAgfCAgICAxMAorIGNvbXBhbnkxIHwg MDctMDItMjAyMyB8ICAgMjAwIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTAzLTIwMjMgfCAgIDE1 MCB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wNC0yMDIzIHwgICAxNDAgfCAgICAgMAorIGNvbXBh bnkxIHwgMDctMDUtMjAyMyB8ICAgMTUwIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA2LTIwMjMg fCAgICA5MCB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wNy0yMDIzIHwgICAxMTAgfCAgICAgMAor IGNvbXBhbnkxIHwgMDctMDgtMjAyMyB8ICAgMTMwIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA5 LTIwMjMgfCAgIDEyMCB8ICAgICAwCisgY29tcGFueTEgfCAwNy0xMC0yMDIzIHwgICAxMzAgfCAg ICAgMAorIGNvbXBhbnkyIHwgMDctMDEtMjAyMyB8ICAgIDUwIHwgICAgMTAKKyBjb21wYW55MiB8 IDA3LTAyLTIwMjMgfCAgMjAwMCB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wMy0yMDIzIHwgIDE1 MDAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDQtMjAyMyB8ICAxNDAwIHwgICAgIDAKKyBjb21w YW55MiB8IDA3LTA1LTIwMjMgfCAgMTUwMCB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNi0yMDIz IHwgICAgNjAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDctMjAyMyB8ICAxMTAwIHwgICAgIDAK KyBjb21wYW55MiB8IDA3LTA4LTIwMjMgfCAgMTMwMCB8ICAgICAwCisgY29tcGFueTIgfCAwNy0w OS0yMDIzIHwgIDEyMDAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMTAtMjAyMyB8ICAxMzAwIHwg ICAgIDAKKygyMCByb3dzKQorCistLSBORVhUIHJldHVybnMgTlVMTCBhdCBwYXJ0aXRpb24ncyBs YXN0IHJvdyAobnVsbF9zbG90IHBhdGgpCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBj b3VudCgqKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyBQQVJUSVRJT04gQlkg Y29tcGFueQorIE9SREVSIEJZIHRkYXRlCisgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgUEFU VEVSTiAoQSsgQk9VTkRBUlkpCisgREVGSU5FCisgIEEgQVMgTkVYVChwcmljZSkgSVMgTk9UIE5V TEwsCisgIEJPVU5EQVJZIEFTIE5FWFQocHJpY2UpIElTIE5VTEwKKyk7CisgY29tcGFueSAgfCAg IHRkYXRlICAgIHwgcHJpY2UgfCBjb3VudCAKKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0rLS0tLS0tLQorIGNvbXBhbnkxIHwgMDctMDEtMjAyMyB8ICAgMTAwIHwgICAgMTAKKyBjb21w YW55MSB8IDA3LTAyLTIwMjMgfCAgIDIwMCB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wMy0yMDIz IHwgICAxNTAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDQtMjAyMyB8ICAgMTQwIHwgICAgIDAK KyBjb21wYW55MSB8IDA3LTA1LTIwMjMgfCAgIDE1MCB8ICAgICAwCisgY29tcGFueTEgfCAwNy0w Ni0yMDIzIHwgICAgOTAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDctMjAyMyB8ICAgMTEwIHwg ICAgIDAKKyBjb21wYW55MSB8IDA3LTA4LTIwMjMgfCAgIDEzMCB8ICAgICAwCisgY29tcGFueTEg fCAwNy0wOS0yMDIzIHwgICAxMjAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMTAtMjAyMyB8ICAg MTMwIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAxLTIwMjMgfCAgICA1MCB8ICAgIDEwCisgY29t cGFueTIgfCAwNy0wMi0yMDIzIHwgIDIwMDAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDMtMjAy MyB8ICAxNTAwIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA0LTIwMjMgfCAgMTQwMCB8ICAgICAw CisgY29tcGFueTIgfCAwNy0wNS0yMDIzIHwgIDE1MDAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDct MDYtMjAyMyB8ICAgIDYwIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA3LTIwMjMgfCAgMTEwMCB8 ICAgICAwCisgY29tcGFueTIgfCAwNy0wOC0yMDIzIHwgIDEzMDAgfCAgICAgMAorIGNvbXBhbnky IHwgMDctMDktMjAyMyB8ICAxMjAwIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTEwLTIwMjMgfCAg MTMwMCB8ICAgICAwCisoMjAgcm93cykKKworLS0gREVTQyBvcmRlcjogUFJFViByZWZlcnMgdG8g dGhlIHJvdyB3aXRoIGxhdGVyIGRhdGUKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGNv dW50KCopIE9WRVIgdworRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorIFBBUlRJVElPTiBCWSBj b21wYW55CisgT1JERVIgQlkgdGRhdGUgREVTQworIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwor IFBBVFRFUk4gKFNUQVJUIERPV04rIFVQKykKKyBERUZJTkUKKyAgU1RBUlQgQVMgVFJVRSwKKyAg RE9XTiBBUyBwcmljZSA8IFBSRVYocHJpY2UpLAorICBVUCBBUyBwcmljZSA+IFBSRVYocHJpY2Up CispOworIGNvbXBhbnkgIHwgICB0ZGF0ZSAgICB8IHByaWNlIHwgY291bnQgCistLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0KKyBjb21wYW55MSB8IDA3LTEwLTIwMjMgfCAg IDEzMCB8ICAgICAzCisgY29tcGFueTEgfCAwNy0wOS0yMDIzIHwgICAxMjAgfCAgICAgMAorIGNv bXBhbnkxIHwgMDctMDgtMjAyMyB8ICAgMTMwIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA3LTIw MjMgfCAgIDExMCB8ICAgICAzCisgY29tcGFueTEgfCAwNy0wNi0yMDIzIHwgICAgOTAgfCAgICAg MAorIGNvbXBhbnkxIHwgMDctMDUtMjAyMyB8ICAgMTUwIHwgICAgIDAKKyBjb21wYW55MSB8IDA3 LTA0LTIwMjMgfCAgIDE0MCB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wMy0yMDIzIHwgICAxNTAg fCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDItMjAyMyB8ICAgMjAwIHwgICAgIDAKKyBjb21wYW55 MSB8IDA3LTAxLTIwMjMgfCAgIDEwMCB8ICAgICAwCisgY29tcGFueTIgfCAwNy0xMC0yMDIzIHwg IDEzMDAgfCAgICAgMworIGNvbXBhbnkyIHwgMDctMDktMjAyMyB8ICAxMjAwIHwgICAgIDAKKyBj b21wYW55MiB8IDA3LTA4LTIwMjMgfCAgMTMwMCB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNy0y MDIzIHwgIDExMDAgfCAgICAgMworIGNvbXBhbnkyIHwgMDctMDYtMjAyMyB8ICAgIDYwIHwgICAg IDAKKyBjb21wYW55MiB8IDA3LTA1LTIwMjMgfCAgMTUwMCB8ICAgICAwCisgY29tcGFueTIgfCAw Ny0wNC0yMDIzIHwgIDE0MDAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDMtMjAyMyB8ICAxNTAw IHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAyLTIwMjMgfCAgMjAwMCB8ICAgICAwCisgY29tcGFu eTIgfCAwNy0wMS0yMDIzIHwgICAgNTAgfCAgICAgMAorKDIwIHJvd3MpCisKKy0tIE11bHRpcGxl IHBhcnRpdGlvbnMgd2l0aCB1bmVxdWFsIHNpemVzCitXSVRIIG11bHRpX3BhcnQgQVMgKAorIFNF TEVDVCAqIEZST00gKFZBTFVFUworICAoJ2EnLCAxLCAxMCksICgnYScsIDIsIDIwKSwgKCdhJywg MywgMTUpLAorICAoJ2InLCAxLCA1KSwKKyAgKCdjJywgMSwgMTAwKSwgKCdjJywgMiwgMjAwKSwg KCdjJywgMywgMTUwKSwgKCdjJywgNCwgMTQwKSwgKCdjJywgNSwgMzAwKQorICkgQVMgdChncnAs IGlkLCB2YWwpCispCitTRUxFQ1QgZ3JwLCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcKK0ZST00g bXVsdGlfcGFydAorV0lORE9XIHcgQVMgKAorIFBBUlRJVElPTiBCWSBncnAKKyBPUkRFUiBCWSBp ZAorIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworIEFG VEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworIFBBVFRFUk4gKEEgQispCisgREVGSU5FCisg IEEgQVMgdmFsIDw9IE5FWFQodmFsKSwKKyAgQiBBUyB2YWwgPiBQUkVWKHZhbCkgT1IgdmFsIDwg UFJFVih2YWwpCispOworIGdycCB8IGlkIHwgdmFsIHwgY291bnQgCistLS0tLSstLS0tKy0tLS0t Ky0tLS0tLS0KKyBhICAgfCAgMSB8ICAxMCB8ICAgICAzCisgYSAgIHwgIDIgfCAgMjAgfCAgICAg MAorIGEgICB8ICAzIHwgIDE1IHwgICAgIDAKKyBiICAgfCAgMSB8ICAgNSB8ICAgICAwCisgYyAg IHwgIDEgfCAxMDAgfCAgICAgNQorIGMgICB8ICAyIHwgMjAwIHwgICAgIDAKKyBjICAgfCAgMyB8 IDE1MCB8ICAgICAwCisgYyAgIHwgIDQgfCAxNDAgfCAgICAgMAorIGMgICB8ICA1IHwgMzAwIHwg ICAgIDAKKyg5IHJvd3MpCisKKy0tIEZMT0FUL05VTUVSSUMgREVGSU5FIGNvbmRpdGlvbnMKK1dJ VEggZmxvYXRfZGF0YSBBUyAoCisgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICgxLCAxLjA6OmZs b2F0OCksICgyLCAxLjUpLCAoMywgMS40OTk5KSwgKDQsIDEuNTAwMDEpLCAoNSwgMC4xKQorICkg QVMgdChpZCwgdmFsKQorKQorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdworRlJPTSBm bG9hdF9kYXRhCitXSU5ET1cgdyBBUyAoCisgT1JERVIgQlkgaWQKKyBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyBBRlRFUiBNQVRDSCBTS0lQIFBBU1Qg TEFTVCBST1cKKyBQQVRURVJOIChBIEIrKQorIERFRklORQorICBBIEFTIFRSVUUsCisgIEIgQVMg dmFsID4gUFJFVih2YWwpICogMC45OQorKTsKKyBpZCB8ICAgdmFsICAgfCBjb3VudCAKKy0tLS0r LS0tLS0tLS0tKy0tLS0tLS0KKyAgMSB8ICAgICAgIDEgfCAgICAgNAorICAyIHwgICAgIDEuNSB8 ICAgICAwCisgIDMgfCAgMS40OTk5IHwgICAgIDAKKyAgNCB8IDEuNTAwMDEgfCAgICAgMAorICA1 IHwgICAgIDAuMSB8ICAgICAwCisoNSByb3dzKQorCistLQorLS0gRXJyb3IgY2FzZXM6IFBSRVYv TkVYVCB1c2FnZSByZXN0cmljdGlvbnMKKy0tCistLSBQUkVWIG91dHNpZGUgREVGSU5FIGNsYXVz ZQorU0VMRUNUIHByZXYocHJpY2UpIEZST00gc3RvY2s7CitFUlJPUjogIGNhbm5vdCB1c2UgcHJl diBvdXRzaWRlIGEgREVGSU5FIGNsYXVzZQorTElORSAxOiBTRUxFQ1QgcHJldihwcmljZSkgRlJP TSBzdG9jazsKKyAgICAgICAgICAgICAgIF4KKy0tIE5FWFQgb3V0c2lkZSBERUZJTkUgY2xhdXNl CitTRUxFQ1QgbmV4dChwcmljZSkgRlJPTSBzdG9jazsKK0VSUk9SOiAgY2Fubm90IHVzZSBuZXh0 IG91dHNpZGUgYSBERUZJTkUgY2xhdXNlCitMSU5FIDE6IFNFTEVDVCBuZXh0KHByaWNlKSBGUk9N IHN0b2NrOworICAgICAgICAgICAgICAgXgorLS0gTmVzdGVkIFBSRVYKK1NFTEVDVCBwcmljZSBG Uk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklU SUFMCisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJTkUgQSBBUyBwcmljZSA+IFBSRVYoUFJFVihw cmljZSkpCispOworRVJST1I6ICBQUkVWIGFuZCBORVhUIGNhbm5vdCBjb250YWluIFBSRVYgb3Ig TkVYVAorTElORSA3OiAgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBQUkVWKFBSRVYocHJpY2UpKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitISU5UOiAgT25seSBQUkVWKEZJUlNU KCkpLCBQUkVWKExBU1QoKSksIE5FWFQoRklSU1QoKSksIGFuZCBORVhUKExBU1QoKSkgY29tcG91 bmQgZm9ybXMgYXJlIGFsbG93ZWQuCistLSBOZXN0ZWQgTkVYVAorU0VMRUNUIHByaWNlIEZST00g c3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueQorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIElOSVRJQUwK KyAgICBQQVRURVJOIChBKQorICAgIERFRklORSBBIEFTIHByaWNlID4gTkVYVChORVhUKHByaWNl KSkKKyk7CitFUlJPUjogIFBSRVYgYW5kIE5FWFQgY2Fubm90IGNvbnRhaW4gUFJFViBvciBORVhU CitMSU5FIDc6ICAgICBERUZJTkUgQSBBUyBwcmljZSA+IE5FWFQoTkVYVChwcmljZSkpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBPbmx5IFBSRVYoRklSU1QoKSks IFBSRVYoTEFTVCgpKSwgTkVYVChGSVJTVCgpKSwgYW5kIE5FWFQoTEFTVCgpKSBjb21wb3VuZCBm b3JtcyBhcmUgYWxsb3dlZC4KKy0tIFBSRVYgbmVzdGVkIGluc2lkZSBORVhUCitTRUxFQ1QgcHJp Y2UgRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55Cisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg SU5JVElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBORVhUKFBS RVYocHJpY2UpKQorKTsKK0VSUk9SOiAgUFJFViBhbmQgTkVYVCBjYW5ub3QgY29udGFpbiBQUkVW IG9yIE5FWFQKK0xJTkUgNzogICAgIERFRklORSBBIEFTIHByaWNlID4gTkVYVChQUkVWKHByaWNl KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorSElOVDogIE9ubHkgUFJFVihG SVJTVCgpKSwgUFJFVihMQVNUKCkpLCBORVhUKEZJUlNUKCkpLCBhbmQgTkVYVChMQVNUKCkpIGNv bXBvdW5kIGZvcm1zIGFyZSBhbGxvd2VkLgorLS0gUFJFViBuZXN0ZWQgaW5zaWRlIGV4cHJlc3Np b24gaW5zaWRlIE5FWFQKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisg ICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVSTiAoQSkKKyAgICBE RUZJTkUgQSBBUyBwcmljZSA+IE5FWFQocHJpY2UgKiBQUkVWKHByaWNlKSkKKyk7CitFUlJPUjog IFBSRVYgYW5kIE5FWFQgY2Fubm90IGNvbnRhaW4gUFJFViBvciBORVhUCitMSU5FIDc6ICAgICBE RUZJTkUgQSBBUyBwcmljZSA+IE5FWFQocHJpY2UgKiBQUkVWKHByaWNlKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgorSElOVDogIE9ubHkgUFJFVihGSVJTVCgpKSwgUFJFVihM QVNUKCkpLCBORVhUKEZJUlNUKCkpLCBhbmQgTkVYVChMQVNUKCkpIGNvbXBvdW5kIGZvcm1zIGFy ZSBhbGxvd2VkLgorLS0gVHJpcGxlIG5lc3Rpbmc6IGVycm9yIHJlcG9ydGVkIGF0IG91dGVybW9z dCBQUkVWCitTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJ VElPTiBCWSBjb21wYW55CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgSU5JVElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEg QVMgcHJpY2UgPiBQUkVWKFBSRVYoUFJFVihwcmljZSkpKQorKTsKK0VSUk9SOiAgUFJFViBhbmQg TkVYVCBjYW5ub3QgY29udGFpbiBQUkVWIG9yIE5FWFQKK0xJTkUgNzogICAgIERFRklORSBBIEFT IHByaWNlID4gUFJFVihQUkVWKFBSRVYocHJpY2UpKSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgorSElOVDogIE9ubHkgUFJFVihGSVJTVCgpKSwgUFJFVihMQVNUKCkpLCBORVhU KEZJUlNUKCkpLCBhbmQgTkVYVChMQVNUKCkpIGNvbXBvdW5kIGZvcm1zIGFyZSBhbGxvd2VkLgor LS0gTm8gY29sdW1uIHJlZmVyZW5jZSBpbiBQUkVWL05FWFQgYXJndW1lbnQKKy0tIFBSRVYoMSk6 IGNvbnN0YW50IG9ubHksIG5vIGNvbHVtbiByZWZlcmVuY2UKK1NFTEVDVCBwcmljZSBGUk9NIHN0 b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisg ICAgUEFUVEVSTiAoQSkKKyAgICBERUZJTkUgQSBBUyBQUkVWKDEpID4gMAorKTsKK0VSUk9SOiAg YXJndW1lbnQgb2Ygcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvcGVyYXRpb24gbXVzdCBpbmNsdWRl IGF0IGxlYXN0IG9uZSBjb2x1bW4gcmVmZXJlbmNlCitMSU5FIDc6ICAgICBERUZJTkUgQSBBUyBQ UkVWKDEpID4gMAorICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gTkVYVCgxICsgMik6IGNv bnN0YW50IGV4cHJlc3Npb24sIG5vIGNvbHVtbiByZWZlcmVuY2UKK1NFTEVDVCBwcmljZSBGUk9N IHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFM CisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJTkUgQSBBUyBORVhUKDEgKyAyKSA+IDAKKyk7CitF UlJPUjogIGFyZ3VtZW50IG9mIHJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb3BlcmF0aW9uIG11c3Qg aW5jbHVkZSBhdCBsZWFzdCBvbmUgY29sdW1uIHJlZmVyZW5jZQorTElORSA3OiAgICAgREVGSU5F IEEgQVMgTkVYVCgxICsgMikgPiAwCisgICAgICAgICAgICAgICAgICAgICAgICBeCistLSAyLWFy ZyBmb3JtOiBQUkVWKDEsIDEpOiBjb25zdGFudCBleHByZXNzaW9uIGFzIGZpcnN0IGFyZworU0VM RUNUIHByaWNlIEZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29t cGFueQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIElOSVRJQUwKKyAgICBQQVRURVJOIChBKQorICAgIERFRklORSBBIEFTIFBSRVYoMSwg MSkgPiAwCispOworRVJST1I6ICBhcmd1bWVudCBvZiByb3cgcGF0dGVybiBuYXZpZ2F0aW9uIG9w ZXJhdGlvbiBtdXN0IGluY2x1ZGUgYXQgbGVhc3Qgb25lIGNvbHVtbiByZWZlcmVuY2UKK0xJTkUg NzogICAgIERFRklORSBBIEFTIFBSRVYoMSwgMSkgPiAwCisgICAgICAgICAgICAgICAgICAgICAg ICBeCistLSBOb24tY29uc3RhbnQgb2Zmc2V0OiBjb2x1bW4gcmVmZXJlbmNlIGFzIG9mZnNldAor U0VMRUNUIHByaWNlIEZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkg Y29tcGFueQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIElOSVRJQUwKKyAgICBQQVRURVJOIChBKQorICAgIERFRklORSBBIEFTIFBSRVYo cHJpY2UsIHByaWNlKSA+IDAKKyk7CitFUlJPUjogIHJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb2Zm c2V0IG11c3QgYmUgYSBydW4tdGltZSBjb25zdGFudAorTElORSA3OiAgICAgREVGSU5FIEEgQVMg UFJFVihwcmljZSwgcHJpY2UpID4gMAorICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gTm9u LWNvbnN0YW50IG9mZnNldDogdm9sYXRpbGUgZnVuY3Rpb24gYXMgb2Zmc2V0CitTRUxFQ1QgcHJp Y2UgRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55Cisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg SU5JVElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgUFJFVihwcmljZSwgcmFu ZG9tKCk6OmludCkgPiAwCispOworRVJST1I6ICByb3cgcGF0dGVybiBuYXZpZ2F0aW9uIG9mZnNl dCBtdXN0IGJlIGEgcnVuLXRpbWUgY29uc3RhbnQKK0xJTkUgNzogICAgIERFRklORSBBIEFTIFBS RVYocHJpY2UsIHJhbmRvbSgpOjppbnQpID4gMAorICAgICAgICAgICAgICAgICAgICAgICAgXgor LS0gTm9uLWNvbnN0YW50IG9mZnNldDogc3VicXVlcnkgYXMgb2Zmc2V0CitTRUxFQ1QgcHJpY2Ug RlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55CisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgSU5J VElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgUFJFVihwcmljZSwgKFNFTEVD VCAxKSkgPiAwCispOworRVJST1I6ICBjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIERFRklORSBleHBy ZXNzaW9uCitMSU5FIDc6ICAgICBERUZJTkUgQSBBUyBQUkVWKHByaWNlLCAoU0VMRUNUIDEpKSA+ IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIEZpcnN0IGFyZzog c3VicXVlcnkgKGNhdWdodCBieSBERUZJTkUtbGV2ZWwgc3VicXVlcnkgcmVzdHJpY3Rpb24pCitT RUxFQ1QgcHJpY2UgRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBj b21wYW55CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgSU5JVElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgUFJFVihw cmljZSArIChTRUxFQ1QgMSkpID4gMAorKTsKK0VSUk9SOiAgY2Fubm90IHVzZSBzdWJxdWVyeSBp biBERUZJTkUgZXhwcmVzc2lvbgorTElORSA3OiAgICAgREVGSU5FIEEgQVMgUFJFVihwcmljZSAr IChTRUxFQ1QgMSkpID4gMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K Ky0tIEZpcnN0IGFyZzogdm9sYXRpbGUgZnVuY3Rpb24gaXMgYWxsb3dlZCAoZXZhbHVhdGVkIG9u IHRhcmdldCByb3cpCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLAorICAgICAgIGZpcnN0 X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgY291bnQoKikg T1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBh bnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVWKHBy aWNlICsgcmFuZG9tKCkgKiAwKSA+PSAwCispOworIGNvbXBhbnkgIHwgICB0ZGF0ZSAgICB8IHBy aWNlIHwgZmlyc3RfdmFsdWUgfCBsYXN0X3ZhbHVlIHwgY291bnQgCistLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBjb21w YW55MSB8IDA3LTAxLTIwMjMgfCAgIDEwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAg ICAwCisgY29tcGFueTEgfCAwNy0wMi0yMDIzIHwgICAyMDAgfCAgICAgICAgIDIwMCB8ICAgICAg ICAxMzAgfCAgICAgOQorIGNvbXBhbnkxIHwgMDctMDMtMjAyMyB8ICAgMTUwIHwgICAgICAgICAg ICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA0LTIwMjMgfCAgIDE0MCB8 ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wNS0yMDIz IHwgICAxNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwg MDctMDYtMjAyMyB8ICAgIDkwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBj b21wYW55MSB8IDA3LTA3LTIwMjMgfCAgIDExMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8 ICAgICAwCisgY29tcGFueTEgfCAwNy0wOC0yMDIzIHwgICAxMzAgfCAgICAgICAgICAgICB8ICAg ICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDktMjAyMyB8ICAgMTIwIHwgICAgICAg ICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTEwLTIwMjMgfCAgIDEz MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wMS0y MDIzIHwgICAgNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnky IHwgMDctMDItMjAyMyB8ICAyMDAwIHwgICAgICAgIDIwMDAgfCAgICAgICAxMzAwIHwgICAgIDkK KyBjb21wYW55MiB8IDA3LTAzLTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNC0yMDIzIHwgIDE0MDAgfCAgICAgICAgICAgICB8 ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDUtMjAyMyB8ICAxNTAwIHwgICAg ICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA2LTIwMjMgfCAg ICA2MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0w Ny0yMDIzIHwgIDExMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBh bnkyIHwgMDctMDgtMjAyMyB8ICAxMzAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAg IDAKKyBjb21wYW55MiB8IDA3LTA5LTIwMjMgfCAgMTIwMCB8ICAgICAgICAgICAgIHwgICAgICAg ICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0xMC0yMDIzIHwgIDEzMDAgfCAgICAgICAgICAg ICB8ICAgICAgICAgICAgfCAgICAgMAorKDIwIHJvd3MpCisKKy0tCistLSAyLWFyZyBQUkVWL05F WFQ6IGZ1bmN0aW9uYWwgdGVzdHMKKy0tCistLSBQUkVWKHByaWNlLCAyKTogbWF0Y2ggcm93cyB3 aGVyZSBjdXJyZW50IHByaWNlID4gcHJpY2UgMiByb3dzIGJhY2sKKy0tIHN0b2NrOiAxMDAsIDkw LCA4MCwgOTUsIDExMAorLS0gUGF0dGVybiAoQSBCKyk6IEE9YW55LCBCIHdoZXJlIHByaWNlID4g UFJFVihwcmljZSwgMikKKy0tIEF0IHBvcyAyICg4MCk6IEEgbWF0Y2hlcy4gcG9zIDMgKDk1KTog OTUgPiBQUkVWKDk1LDIpPTkwIFRSVUUuCistLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cG9zIDQgKDExMCk6IDExMCA+IFBSRVYoMTEwLDIpPTgwIFRSVUUuIE1hdGNoIQorU0VMRUNUIGNv bXBhbnksIHRkYXRlLCBwcmljZSwKKyAgICAgICBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBs YXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGNvdW50KCopIE9WRVIgdworRlJPTSBzdG9jaworV0lO RE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55IE9SREVSIEJZIHRkYXRlCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFU VEVSTiAoQSBCKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyBUUlVFLAorICAgICAgICBCIEFT IHByaWNlID4gUFJFVihwcmljZSwgMikKKyk7CisgY29tcGFueSAgfCAgIHRkYXRlICAgIHwgcHJp Y2UgfCBmaXJzdF92YWx1ZSB8IGxhc3RfdmFsdWUgfCBjb3VudCAKKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLQorIGNvbXBh bnkxIHwgMDctMDEtMjAyMyB8ICAgMTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAg IDAKKyBjb21wYW55MSB8IDA3LTAyLTIwMjMgfCAgIDIwMCB8ICAgICAgICAgMjAwIHwgICAgICAg IDE1MCB8ICAgICAyCisgY29tcGFueTEgfCAwNy0wMy0yMDIzIHwgICAxNTAgfCAgICAgICAgICAg ICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDQtMjAyMyB8ICAgMTQwIHwg ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA1LTIwMjMg fCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAw Ny0wNi0yMDIzIHwgICAgOTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNv bXBhbnkxIHwgMDctMDctMjAyMyB8ICAgMTEwIHwgICAgICAgICAxMTAgfCAgICAgICAgMTIwIHwg ICAgIDMKKyBjb21wYW55MSB8IDA3LTA4LTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAg ICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wOS0yMDIzIHwgICAxMjAgfCAgICAgICAg ICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMTAtMjAyMyB8ICAgMTMw IHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAxLTIw MjMgfCAgICA1MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIg fCAwNy0wMi0yMDIzIHwgIDIwMDAgfCAgICAgICAgMjAwMCB8ICAgICAgIDE1MDAgfCAgICAgMgor IGNvbXBhbnkyIHwgMDctMDMtMjAyMyB8ICAxNTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA0LTIwMjMgfCAgMTQwMCB8ICAgICAgICAgICAgIHwg ICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNS0yMDIzIHwgIDE1MDAgfCAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDYtMjAyMyB8ICAg IDYwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA3 LTIwMjMgfCAgMTEwMCB8ICAgICAgICAxMTAwIHwgICAgICAgMTIwMCB8ICAgICAzCisgY29tcGFu eTIgfCAwNy0wOC0yMDIzIHwgIDEzMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAg MAorIGNvbXBhbnkyIHwgMDctMDktMjAyMyB8ICAxMjAwIHwgICAgICAgICAgICAgfCAgICAgICAg ICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTEwLTIwMjMgfCAgMTMwMCB8ICAgICAgICAgICAg IHwgICAgICAgICAgICB8ICAgICAwCisoMjAgcm93cykKKworLS0gTkVYVChwcmljZSwgMik6IG1h dGNoIHJvd3Mgd2hlcmUgY3VycmVudCBwcmljZSA+IHByaWNlIDIgcm93cyBhaGVhZAorLS0gcG9z IDAgKDEwMCk6IE5FWFQoMTAwLDIpPTgwLCAxMDA+ODAgVFJVRS4gcG9zIDEgKDkwKTogTkVYVCg5 MCwyKT05NSwgOTA+OTUgRkFMU0UuIE1hdGNoIGVuZHMuCitTRUxFQ1QgY29tcGFueSwgdGRhdGUs IHByaWNlLAorICAgICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJp Y2UpIE9WRVIgdywgY291bnQoKikgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisg ICAgUEFSVElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAg ICBERUZJTkUgQSBBUyBwcmljZSA+IE5FWFQocHJpY2UsIDIpCispOworIGNvbXBhbnkgIHwgICB0 ZGF0ZSAgICB8IHByaWNlIHwgZmlyc3RfdmFsdWUgfCBsYXN0X3ZhbHVlIHwgY291bnQgCistLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0KKyBjb21wYW55MSB8IDA3LTAxLTIwMjMgfCAgIDEwMCB8ICAgICAgICAgICAgIHwgICAg ICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wMi0yMDIzIHwgICAyMDAgfCAgICAgICAg IDIwMCB8ICAgICAgICAyMDAgfCAgICAgMQorIGNvbXBhbnkxIHwgMDctMDMtMjAyMyB8ICAgMTUw IHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA0LTIw MjMgfCAgIDE0MCB8ICAgICAgICAgMTQwIHwgICAgICAgIDE1MCB8ICAgICAyCisgY29tcGFueTEg fCAwNy0wNS0yMDIzIHwgICAxNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAor IGNvbXBhbnkxIHwgMDctMDYtMjAyMyB8ICAgIDkwIHwgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA3LTIwMjMgfCAgIDExMCB8ICAgICAgICAgICAgIHwg ICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wOC0yMDIzIHwgICAxMzAgfCAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDktMjAyMyB8ICAg MTIwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTEw LTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFu eTIgfCAwNy0wMS0yMDIzIHwgICAgNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAg MAorIGNvbXBhbnkyIHwgMDctMDItMjAyMyB8ICAyMDAwIHwgICAgICAgIDIwMDAgfCAgICAgICAy MDAwIHwgICAgIDEKKyBjb21wYW55MiB8IDA3LTAzLTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAg IHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNC0yMDIzIHwgIDE0MDAgfCAg ICAgICAgMTQwMCB8ICAgICAgIDE1MDAgfCAgICAgMgorIGNvbXBhbnkyIHwgMDctMDUtMjAyMyB8 ICAxNTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3 LTA2LTIwMjMgfCAgICA2MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29t cGFueTIgfCAwNy0wNy0yMDIzIHwgIDExMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAg ICAgMAorIGNvbXBhbnkyIHwgMDctMDgtMjAyMyB8ICAxMzAwIHwgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA5LTIwMjMgfCAgMTIwMCB8ICAgICAgICAg ICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0xMC0yMDIzIHwgIDEzMDAg fCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorKDIwIHJvd3MpCisKKy0tIEV4cHJl c3Npb25zIGluc2lkZSBQUkVWL05FWFQgYXJnOiBleHByIGlzIGV2YWx1YXRlZCBvbiB0YXJnZXQg cm93CistLSBQUkVWKHByaWNlIC0gNTAsIDEpOiBmZXRjaGVzIChwcmljZSAtIDUwKSBmcm9tIDEg cm93IGJhY2sKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsCisgICAgICAgZmlyc3RfdmFs dWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBjb3VudCgqKSBPVkVS IHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueSBP UkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHByaWNlID4gUFJF VihwcmljZSAtIDUwLCAxKQorKTsKKyBjb21wYW55ICB8ICAgdGRhdGUgICAgfCBwcmljZSB8IGZp cnN0X3ZhbHVlIHwgbGFzdF92YWx1ZSB8IGNvdW50IAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tCisgY29tcGFueTEgfCAw Ny0wMS0yMDIzIHwgICAxMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNv bXBhbnkxIHwgMDctMDItMjAyMyB8ICAgMjAwIHwgICAgICAgICAyMDAgfCAgICAgICAgMjAwIHwg ICAgIDEKKyBjb21wYW55MSB8IDA3LTAzLTIwMjMgfCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAg ICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wNC0yMDIzIHwgICAxNDAgfCAgICAgICAg IDE0MCB8ICAgICAgICAxNTAgfCAgICAgMgorIGNvbXBhbnkxIHwgMDctMDUtMjAyMyB8ICAgMTUw IHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA2LTIw MjMgfCAgICA5MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEg fCAwNy0wNy0yMDIzIHwgICAxMTAgfCAgICAgICAgIDExMCB8ICAgICAgICAxMzAgfCAgICAgNAor IGNvbXBhbnkxIHwgMDctMDgtMjAyMyB8ICAgMTMwIHwgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA5LTIwMjMgfCAgIDEyMCB8ICAgICAgICAgICAgIHwg ICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0xMC0yMDIzIHwgICAxMzAgfCAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDEtMjAyMyB8ICAg IDUwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAy LTIwMjMgfCAgMjAwMCB8ICAgICAgICAyMDAwIHwgICAgICAgMjAwMCB8ICAgICAxCisgY29tcGFu eTIgfCAwNy0wMy0yMDIzIHwgIDE1MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAg MAorIGNvbXBhbnkyIHwgMDctMDQtMjAyMyB8ICAxNDAwIHwgICAgICAgICAgICAgfCAgICAgICAg ICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA1LTIwMjMgfCAgMTUwMCB8ICAgICAgICAxNTAw IHwgICAgICAgMTUwMCB8ICAgICAxCisgY29tcGFueTIgfCAwNy0wNi0yMDIzIHwgICAgNjAgfCAg ICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDctMjAyMyB8 ICAxMTAwIHwgICAgICAgIDExMDAgfCAgICAgICAxMzAwIHwgICAgIDIKKyBjb21wYW55MiB8IDA3 LTA4LTIwMjMgfCAgMTMwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29t cGFueTIgfCAwNy0wOS0yMDIzIHwgIDEyMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAg ICAgMAorIGNvbXBhbnkyIHwgMDctMTAtMjAyMyB8ICAxMzAwIHwgICAgICAgIDEzMDAgfCAgICAg ICAxMzAwIHwgICAgIDEKKygyMCByb3dzKQorCistLSBORVhUKHByaWNlICogMiwgMSk6IGZldGNo ZXMgKHByaWNlICogMikgZnJvbSAxIHJvdyBhaGVhZAorU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBw cmljZSwKKyAgICAgICBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNl KSBPVkVSIHcsIGNvdW50KCopIE9WRVIgdworRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAg IFBBUlRJVElPTiBCWSBjb21wYW55IE9SREVSIEJZIHRkYXRlCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAg REVGSU5FIEEgQVMgcHJpY2UgPCBORVhUKHByaWNlICogMiwgMSkKKyk7CisgY29tcGFueSAgfCAg IHRkYXRlICAgIHwgcHJpY2UgfCBmaXJzdF92YWx1ZSB8IGxhc3RfdmFsdWUgfCBjb3VudCAKKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLQorIGNvbXBhbnkxIHwgMDctMDEtMjAyMyB8ICAgMTAwIHwgICAgICAgICAxMDAgfCAg ICAgICAgMTIwIHwgICAgIDkKKyBjb21wYW55MSB8IDA3LTAyLTIwMjMgfCAgIDIwMCB8ICAgICAg ICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wMy0yMDIzIHwgICAx NTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDQt MjAyMyB8ICAgMTQwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55 MSB8IDA3LTA1LTIwMjMgfCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAw CisgY29tcGFueTEgfCAwNy0wNi0yMDIzIHwgICAgOTAgfCAgICAgICAgICAgICB8ICAgICAgICAg ICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDctMjAyMyB8ICAgMTEwIHwgICAgICAgICAgICAg fCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA4LTIwMjMgfCAgIDEzMCB8ICAg ICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wOS0yMDIzIHwg ICAxMjAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDct MTAtMjAyMyB8ICAgMTMwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21w YW55MiB8IDA3LTAxLTIwMjMgfCAgICA1MCB8ICAgICAgICAgIDUwIHwgICAgICAgMTQwMCB8ICAg ICA0CisgY29tcGFueTIgfCAwNy0wMi0yMDIzIHwgIDIwMDAgfCAgICAgICAgICAgICB8ICAgICAg ICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDMtMjAyMyB8ICAxNTAwIHwgICAgICAgICAg ICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA0LTIwMjMgfCAgMTQwMCB8 ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNS0yMDIz IHwgIDE1MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwg MDctMDYtMjAyMyB8ICAgIDYwIHwgICAgICAgICAgNjAgfCAgICAgICAxMjAwIHwgICAgIDQKKyBj b21wYW55MiB8IDA3LTA3LTIwMjMgfCAgMTEwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8 ICAgICAwCisgY29tcGFueTIgfCAwNy0wOC0yMDIzIHwgIDEzMDAgfCAgICAgICAgICAgICB8ICAg ICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDktMjAyMyB8ICAxMjAwIHwgICAgICAg ICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTEwLTIwMjMgfCAgMTMw MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisoMjAgcm93cykKKworLS0gTGFy Z2Ugb2Zmc2V0OiBQUkVWKHZhbCwgOTk5KSBvbiAxMDAwLXJvdyBzZXJpZXMgbWF0Y2hlcyBvbmx5 IGxhc3Qgcm93CistLSBORVhUKHZhbCwgOTk5KSBtYXRjaGVzIG9ubHkgZmlyc3Qgcm93CitTRUxF Q1QgdmFsLCBmaXJzdF92YWx1ZSh2YWwpIE9WRVIgdywgbGFzdF92YWx1ZSh2YWwpIE9WRVIgdywg Y291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDAwKSBBUyB0KHZhbCkK K1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVWKHZhbCwg OTk5KSA9IDEKKykKK09SREVSIEJZIHZhbCBERVNDIExJTUlUIDM7CisgdmFsICB8IGZpcnN0X3Zh bHVlIHwgbGFzdF92YWx1ZSB8IGNvdW50IAorLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0KKyAxMDAwIHwgICAgICAgIDEwMDAgfCAgICAgICAxMDAwIHwgICAgIDEKKyAg OTk5IHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyAgOTk4IHwgICAgICAgICAg ICAgfCAgICAgICAgICAgIHwgICAgIDAKKygzIHJvd3MpCisKK1NFTEVDVCB2YWwsIGZpcnN0X3Zh bHVlKHZhbCkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHZhbCkgT1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcK K0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMDApIEFTIHQodmFsKQorV0lORE9XIHcgQVMgKAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIE5FWFQodmFsLCA5OTkpID0gMTAwMAorKQor TElNSVQgMzsKKyB2YWwgfCBmaXJzdF92YWx1ZSB8IGxhc3RfdmFsdWUgfCBjb3VudCAKKy0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyAgIDEgfCAgICAgICAgICAgMSB8 ICAgICAgICAgIDEgfCAgICAgMQorICAgMiB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAg ICAwCisgICAzIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKygzIHJvd3MpCisK Ky0tIFBSRVYocHJpY2UsIDApOiBvZmZzZXQgMCBtZWFucyBjdXJyZW50IHJvdywgYWx3YXlzIGVx dWFsIHRvIHByaWNlCistLSBBKyBtYXRjaGVzIGVudGlyZSBwYXJ0aXRpb24gYXMgb25lIGdyb3Vw OyBjb3VudCA9IHBhcnRpdGlvbiBzaXplCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLAor ICAgICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIg dywgY291bnQoKikgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElU SU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUg QSBBUyBQUkVWKHByaWNlLCAwKSA9IHByaWNlCispOworIGNvbXBhbnkgIHwgICB0ZGF0ZSAgICB8 IHByaWNlIHwgZmlyc3RfdmFsdWUgfCBsYXN0X3ZhbHVlIHwgY291bnQgCistLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBj b21wYW55MSB8IDA3LTAxLTIwMjMgfCAgIDEwMCB8ICAgICAgICAgMTAwIHwgICAgICAgIDEzMCB8 ICAgIDEwCisgY29tcGFueTEgfCAwNy0wMi0yMDIzIHwgICAyMDAgfCAgICAgICAgICAgICB8ICAg ICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDMtMjAyMyB8ICAgMTUwIHwgICAgICAg ICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA0LTIwMjMgfCAgIDE0 MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wNS0y MDIzIHwgICAxNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkx IHwgMDctMDYtMjAyMyB8ICAgIDkwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAK KyBjb21wYW55MSB8IDA3LTA3LTIwMjMgfCAgIDExMCB8ICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wOC0yMDIzIHwgICAxMzAgfCAgICAgICAgICAgICB8 ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDktMjAyMyB8ICAgMTIwIHwgICAg ICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTEwLTIwMjMgfCAg IDEzMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0w MS0yMDIzIHwgICAgNTAgfCAgICAgICAgICA1MCB8ICAgICAgIDEzMDAgfCAgICAxMAorIGNvbXBh bnkyIHwgMDctMDItMjAyMyB8ICAyMDAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAg IDAKKyBjb21wYW55MiB8IDA3LTAzLTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgICAg ICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNC0yMDIzIHwgIDE0MDAgfCAgICAgICAgICAg ICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDUtMjAyMyB8ICAxNTAwIHwg ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA2LTIwMjMg fCAgICA2MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAw Ny0wNy0yMDIzIHwgIDExMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNv bXBhbnkyIHwgMDctMDgtMjAyMyB8ICAxMzAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwg ICAgIDAKKyBjb21wYW55MiB8IDA3LTA5LTIwMjMgfCAgMTIwMCB8ICAgICAgICAgICAgIHwgICAg ICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0xMC0yMDIzIHwgIDEzMDAgfCAgICAgICAg ICAgICB8ICAgICAgICAgICAgfCAgICAgMAorKDIwIHJvd3MpCisKKy0tIDItYXJnIFBSRVYvTkVY VCBvdXRzaWRlIERFRklORSBjbGF1c2UKK1NFTEVDVCBwcmV2KHByaWNlLCAyKSBGUk9NIHN0b2Nr OworRVJST1I6ICBjYW5ub3QgdXNlIHByZXYgb3V0c2lkZSBhIERFRklORSBjbGF1c2UKK0xJTkUg MTogU0VMRUNUIHByZXYocHJpY2UsIDIpIEZST00gc3RvY2s7CisgICAgICAgICAgICAgICBeCitT RUxFQ1QgbmV4dChwcmljZSwgMikgRlJPTSBzdG9jazsKK0VSUk9SOiAgY2Fubm90IHVzZSBuZXh0 IG91dHNpZGUgYSBERUZJTkUgY2xhdXNlCitMSU5FIDE6IFNFTEVDVCBuZXh0KHByaWNlLCAyKSBG Uk9NIHN0b2NrOworICAgICAgICAgICAgICAgXgorLS0gMi1hcmcgUFJFVi9ORVhUOiBuZWdhdGl2 ZSBvZmZzZXQKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3ZhbHVlKHByaWNl KSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29t cGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYo cHJpY2UsIC0xKSBJUyBOT1QgTlVMTAorKTsKK0VSUk9SOiAgcm93IHBhdHRlcm4gbmF2aWdhdGlv biBvZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRpdmUKKy0tIDItYXJnIFBSRVYvTkVYVDogTlVMTCBv ZmZzZXQgKHR5cGVkKQorU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmlyc3RfdmFsdWUo cHJpY2UpIE9WRVIgdworRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBC WSBjb21wYW55IE9SREVSIEJZIHRkYXRlCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMg UFJFVihwcmljZSwgTlVMTDo6aW50OCkgSVMgTk9UIE5VTEwKKyk7CitFUlJPUjogIHJvdyBwYXR0 ZXJuIG5hdmlnYXRpb24gb2Zmc2V0IG11c3Qgbm90IGJlIG51bGwKKy0tIDItYXJnIFBSRVYvTkVY VDogTlVMTCBvZmZzZXQgKHVudHlwZWQpCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBm aXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAg UEFSVElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBE RUZJTkUgQSBBUyBQUkVWKHByaWNlLCBOVUxMKSBJUyBOT1QgTlVMTAorKTsKK0VSUk9SOiAgcm93 IHBhdHRlcm4gbmF2aWdhdGlvbiBvZmZzZXQgbXVzdCBub3QgYmUgbnVsbAorLS0gMi1hcmcgUFJF Vi9ORVhUOiBob3N0IHZhcmlhYmxlIG5lZ2F0aXZlIGFuZCBOVUxMCitQUkVQQVJFIHRlc3RfcHJl dl9vZmZzZXQoaW50OCkgQVMKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3Zh bHVlKHByaWNlKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJ T04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBB IEFTIHByaWNlID4gUFJFVihwcmljZSwgJDEpCispOworRVhFQ1VURSB0ZXN0X3ByZXZfb2Zmc2V0 KC0xKTsKK0VSUk9SOiAgcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvZmZzZXQgbXVzdCBub3QgYmUg bmVnYXRpdmUKK0VYRUNVVEUgdGVzdF9wcmV2X29mZnNldChOVUxMKTsKK0VSUk9SOiAgcm93IHBh dHRlcm4gbmF2aWdhdGlvbiBvZmZzZXQgbXVzdCBub3QgYmUgbnVsbAorREVBTExPQ0FURSB0ZXN0 X3ByZXZfb2Zmc2V0OworLS0gMi1hcmcgUFJFVi9ORVhUOiBob3N0IHZhcmlhYmxlIHdpdGggZXhw cmVzc2lvbiAoMCArICQxKQorUFJFUEFSRSB0ZXN0X3ByZXZfb2Zmc2V0KGludDgpIEFTCitTRUxF Q1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3CitGUk9N IHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkg dGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBwcmljZSA+IFBSRVYocHJpY2Us IDAgKyAkMSkKKyk7CitFWEVDVVRFIHRlc3RfcHJldl9vZmZzZXQoLTEpOworRVJST1I6ICByb3cg cGF0dGVybiBuYXZpZ2F0aW9uIG9mZnNldCBtdXN0IG5vdCBiZSBuZWdhdGl2ZQorRVhFQ1VURSB0 ZXN0X3ByZXZfb2Zmc2V0KE5VTEwpOworRVJST1I6ICByb3cgcGF0dGVybiBuYXZpZ2F0aW9uIG9m ZnNldCBtdXN0IG5vdCBiZSBudWxsCitERUFMTE9DQVRFIHRlc3RfcHJldl9vZmZzZXQ7CistLSAy LWFyZyBQUkVWL05FWFQ6IGhvc3QgdmFyaWFibGUgd2l0aCBwb3NpdGl2ZSB2YWx1ZQorLS0gRXhl cmNpc2VzIFJQUl9OQVZfT0ZGU0VUX05FRURTX0VWQUwgLT4gZXZhbF9uYXZfbWF4X29mZnNldCgp IHBhdGgKK1BSRVBBUkUgdGVzdF9wcmV2X29mZnNldChpbnQ4KSBBUworU0VMRUNUIGNvbXBhbnks IHRkYXRlLCBwcmljZSwgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgY291bnQoKikgT1ZFUiB3 CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkgT1JE RVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJO IChBIEIrKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgcHJpY2UgPiBQUkVWKHByaWNlLCAk MSkKKyk7CitFWEVDVVRFIHRlc3RfcHJldl9vZmZzZXQoMSk7CisgY29tcGFueSAgfCAgIHRkYXRl ICAgIHwgcHJpY2UgfCBmaXJzdF92YWx1ZSB8IGNvdW50IAorLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBjb21wYW55MSB8IDA3LTAxLTIwMjMg fCAgIDEwMCB8ICAgICAgICAgMTAwIHwgICAgIDIKKyBjb21wYW55MSB8IDA3LTAyLTIwMjMgfCAg IDIwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTAzLTIwMjMgfCAgIDE1 MCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA0LTIwMjMgfCAgIDE0MCB8 ICAgICAgICAgMTQwIHwgICAgIDIKKyBjb21wYW55MSB8IDA3LTA1LTIwMjMgfCAgIDE1MCB8ICAg ICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA2LTIwMjMgfCAgICA5MCB8ICAgICAg ICAgIDkwIHwgICAgIDMKKyBjb21wYW55MSB8IDA3LTA3LTIwMjMgfCAgIDExMCB8ICAgICAgICAg ICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA4LTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAg IHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA5LTIwMjMgfCAgIDEyMCB8ICAgICAgICAgMTIwIHwg ICAgIDIKKyBjb21wYW55MSB8IDA3LTEwLTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAg IDAKKyBjb21wYW55MiB8IDA3LTAxLTIwMjMgfCAgICA1MCB8ICAgICAgICAgIDUwIHwgICAgIDIK KyBjb21wYW55MiB8IDA3LTAyLTIwMjMgfCAgMjAwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBj b21wYW55MiB8IDA3LTAzLTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21w YW55MiB8IDA3LTA0LTIwMjMgfCAgMTQwMCB8ICAgICAgICAxNDAwIHwgICAgIDIKKyBjb21wYW55 MiB8IDA3LTA1LTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8 IDA3LTA2LTIwMjMgfCAgICA2MCB8ICAgICAgICAgIDYwIHwgICAgIDMKKyBjb21wYW55MiB8IDA3 LTA3LTIwMjMgfCAgMTEwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA4 LTIwMjMgfCAgMTMwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA5LTIw MjMgfCAgMTIwMCB8ICAgICAgICAxMjAwIHwgICAgIDIKKyBjb21wYW55MiB8IDA3LTEwLTIwMjMg fCAgMTMwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKygyMCByb3dzKQorCitFWEVDVVRFIHRlc3Rf cHJldl9vZmZzZXQoMik7CisgY29tcGFueSAgfCAgIHRkYXRlICAgIHwgcHJpY2UgfCBmaXJzdF92 YWx1ZSB8IGNvdW50IAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0KKyBjb21wYW55MSB8IDA3LTAxLTIwMjMgfCAgIDEwMCB8ICAgICAgICAgICAg IHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTAyLTIwMjMgfCAgIDIwMCB8ICAgICAgICAgMjAwIHwg ICAgIDIKKyBjb21wYW55MSB8IDA3LTAzLTIwMjMgfCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAg IDAKKyBjb21wYW55MSB8IDA3LTA0LTIwMjMgfCAgIDE0MCB8ICAgICAgICAgICAgIHwgICAgIDAK KyBjb21wYW55MSB8IDA3LTA1LTIwMjMgfCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBj b21wYW55MSB8IDA3LTA2LTIwMjMgfCAgICA5MCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21w YW55MSB8IDA3LTA3LTIwMjMgfCAgIDExMCB8ICAgICAgICAgMTEwIHwgICAgIDMKKyBjb21wYW55 MSB8IDA3LTA4LTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8 IDA3LTA5LTIwMjMgfCAgIDEyMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3 LTEwLTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAx LTIwMjMgfCAgICA1MCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAyLTIw MjMgfCAgMjAwMCB8ICAgICAgICAyMDAwIHwgICAgIDIKKyBjb21wYW55MiB8IDA3LTAzLTIwMjMg fCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA0LTIwMjMgfCAg MTQwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA1LTIwMjMgfCAgMTUw MCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA2LTIwMjMgfCAgICA2MCB8 ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA3LTIwMjMgfCAgMTEwMCB8ICAg ICAgICAxMTAwIHwgICAgIDMKKyBjb21wYW55MiB8IDA3LTA4LTIwMjMgfCAgMTMwMCB8ICAgICAg ICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA5LTIwMjMgfCAgMTIwMCB8ICAgICAgICAg ICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTEwLTIwMjMgfCAgMTMwMCB8ICAgICAgICAgICAg IHwgICAgIDAKKygyMCByb3dzKQorCitERUFMTE9DQVRFIHRlc3RfcHJldl9vZmZzZXQ7CistLSAy LWFyZzogdHdvIFBSRVYgd2l0aCBkaWZmZXJlbnQgb2Zmc2V0cyBpbiBzYW1lIERFRklORSBjbGF1 c2UKKy0tIEI6IHByaWNlIGV4Y2VlZHMgYm90aCAxLWJhY2sgYW5kIDItYmFjayB2YWx1ZXMKK1NF TEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsCisgICAgICAgZmlyc3RfdmFsdWUocHJpY2UpIE9W RVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcKK0ZST00gc3Rv Y2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0 ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisg ICAgREVGSU5FCisgICAgICAgIEEgQVMgVFJVRSwKKyAgICAgICAgQiBBUyBwcmljZSA+IFBSRVYo cHJpY2UsIDEpIEFORCBwcmljZSA+IFBSRVYocHJpY2UsIDIpCispOworIGNvbXBhbnkgIHwgICB0 ZGF0ZSAgICB8IHByaWNlIHwgZmlyc3RfdmFsdWUgfCBsYXN0X3ZhbHVlIHwgY291bnQgCistLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0KKyBjb21wYW55MSB8IDA3LTAxLTIwMjMgfCAgIDEwMCB8ICAgICAgICAgICAgIHwgICAg ICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wMi0yMDIzIHwgICAyMDAgfCAgICAgICAg ICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDMtMjAyMyB8ICAgMTUw IHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA0LTIw MjMgfCAgIDE0MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEg fCAwNy0wNS0yMDIzIHwgICAxNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAor IGNvbXBhbnkxIHwgMDctMDYtMjAyMyB8ICAgIDkwIHwgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA3LTIwMjMgfCAgIDExMCB8ICAgICAgICAgMTEwIHwg ICAgICAgIDEzMCB8ICAgICAyCisgY29tcGFueTEgfCAwNy0wOC0yMDIzIHwgICAxMzAgfCAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDktMjAyMyB8ICAg MTIwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTEw LTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFu eTIgfCAwNy0wMS0yMDIzIHwgICAgNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAg MAorIGNvbXBhbnkyIHwgMDctMDItMjAyMyB8ICAyMDAwIHwgICAgICAgICAgICAgfCAgICAgICAg ICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAzLTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAg IHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNC0yMDIzIHwgIDE0MDAgfCAg ICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDUtMjAyMyB8 ICAxNTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3 LTA2LTIwMjMgfCAgICA2MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29t cGFueTIgfCAwNy0wNy0yMDIzIHwgIDExMDAgfCAgICAgICAgMTEwMCB8ICAgICAgIDEzMDAgfCAg ICAgMgorIGNvbXBhbnkyIHwgMDctMDgtMjAyMyB8ICAxMzAwIHwgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA5LTIwMjMgfCAgMTIwMCB8ICAgICAgICAg ICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0xMC0yMDIzIHwgIDEzMDAg fCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorKDIwIHJvd3MpCisKKy0tIDItYXJn OiBQUkVWIGFuZCBORVhUIHdpdGggZXhwbGljaXQgb2Zmc2V0cyBpbiBzYW1lIERFRklORSBjbGF1 c2UKKy0tIEE6IHByaWNlIGV4Y2VlZHMgMS1iYWNrIGFuZCBpcyBiZWxvdyAxLWFoZWFkIChhc2Nl bmRpbmcgaW50ZXJpb3IgcG9pbnQpCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLAorICAg ICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdywg Y291bnQoKikgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9O IEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBS T1cKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBwcmljZSA+IFBSRVYocHJpY2Us IDEpIEFORCBwcmljZSA8IE5FWFQocHJpY2UsIDEpCispOworIGNvbXBhbnkgIHwgICB0ZGF0ZSAg ICB8IHByaWNlIHwgZmlyc3RfdmFsdWUgfCBsYXN0X3ZhbHVlIHwgY291bnQgCistLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0K KyBjb21wYW55MSB8IDA3LTAxLTIwMjMgfCAgIDEwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wMi0yMDIzIHwgICAyMDAgfCAgICAgICAgICAgICB8 ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDMtMjAyMyB8ICAgMTUwIHwgICAg ICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA0LTIwMjMgfCAg IDE0MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0w NS0yMDIzIHwgICAxNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBh bnkxIHwgMDctMDYtMjAyMyB8ICAgIDkwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAg IDAKKyBjb21wYW55MSB8IDA3LTA3LTIwMjMgfCAgIDExMCB8ICAgICAgICAgMTEwIHwgICAgICAg IDExMCB8ICAgICAxCisgY29tcGFueTEgfCAwNy0wOC0yMDIzIHwgICAxMzAgfCAgICAgICAgICAg ICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDktMjAyMyB8ICAgMTIwIHwg ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTEwLTIwMjMg fCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAw Ny0wMS0yMDIzIHwgICAgNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNv bXBhbnkyIHwgMDctMDItMjAyMyB8ICAyMDAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwg ICAgIDAKKyBjb21wYW55MiB8IDA3LTAzLTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAg ICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNC0yMDIzIHwgIDE0MDAgfCAgICAgICAg ICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDUtMjAyMyB8ICAxNTAw IHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA2LTIw MjMgfCAgICA2MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIg fCAwNy0wNy0yMDIzIHwgIDExMDAgfCAgICAgICAgMTEwMCB8ICAgICAgIDExMDAgfCAgICAgMQor IGNvbXBhbnkyIHwgMDctMDgtMjAyMyB8ICAxMzAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA5LTIwMjMgfCAgMTIwMCB8ICAgICAgICAgICAgIHwg ICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0xMC0yMDIzIHwgIDEzMDAgfCAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorKDIwIHJvd3MpCisKKy0tIFBhc3MtYnktcmVm IHR5cGVzOiB0d28gUFJFViBjYWxscyB0YXJnZXRpbmcgZGlmZmVyZW50IHBvc2l0aW9ucy4KKy0t IFZlcmlmaWVzIHRoYXQgZGF0dW1Db3B5IGluIFJFU1RPUkUgcHJldmVudHMgZGFuZ2xpbmcgcG9p bnRlcnMgd2hlbgorLS0gbmF2X3Nsb3QgaXMgcmUtZmV0Y2hlZCBmb3IgdGhlIHNlY29uZCBuYXZp Z2F0aW9uLgorLS0gdGRhdGU6OnRleHQgZ2l2ZXMgZGlzdGluY3QgdGV4dCB2YWx1ZXMgcGVyIHJv dyAoZS5nLiAnMDctMDEtMjAyMycpLgorLS0gQiBtYXRjaGVzIHdoZW4gMS1iYWNrIGRhdGUgdGV4 dCA+IDItYmFjayBkYXRlIHRleHQgKGFsd2F5cyB0cnVlIGZvcgorLS0gYXNjZW5kaW5nIGRhdGVz KSwgc28gQisgZXh0ZW5kcyB0aGUgZnVsbCBwYXJ0aXRpb24gYWZ0ZXIgQS4KK1NFTEVDVCBjb21w YW55LCB0ZGF0ZSwgdGRhdGU6OnRleHQgQVMgdGRhdGVfdGV4dCwKKyAgICAgICBmaXJzdF92YWx1 ZSh0ZGF0ZTo6dGV4dCkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHRkYXRlOjp0ZXh0KSBPVkVSIHcsIGNv dW50KCopIE9WRVIgdworRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBC WSBjb21wYW55IE9SREVSIEJZIHRkYXRlCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X CisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyBUUlVFLAorICAg ICAgICBCIEFTIFBSRVYodGRhdGU6OnRleHQsIDEpID4gUFJFVih0ZGF0ZTo6dGV4dCwgMikKKyk7 CisgY29tcGFueSAgfCAgIHRkYXRlICAgIHwgdGRhdGVfdGV4dCB8IGZpcnN0X3ZhbHVlIHwgbGFz dF92YWx1ZSB8IGNvdW50IAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBjb21wYW55MSB8IDA3LTAxLTIwMjMg fCAwNy0wMS0yMDIzIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55 MSB8IDA3LTAyLTIwMjMgfCAwNy0wMi0yMDIzIHwgMDctMDItMjAyMyAgfCAwNy0xMC0yMDIzIHwg ICAgIDkKKyBjb21wYW55MSB8IDA3LTAzLTIwMjMgfCAwNy0wMy0yMDIzIHwgICAgICAgICAgICAg fCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA0LTIwMjMgfCAwNy0wNC0yMDIz IHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA1LTIw MjMgfCAwNy0wNS0yMDIzIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21w YW55MSB8IDA3LTA2LTIwMjMgfCAwNy0wNi0yMDIzIHwgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA3LTIwMjMgfCAwNy0wNy0yMDIzIHwgICAgICAgICAg ICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA4LTIwMjMgfCAwNy0wOC0y MDIzIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA5 LTIwMjMgfCAwNy0wOS0yMDIzIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBj b21wYW55MSB8IDA3LTEwLTIwMjMgfCAwNy0xMC0yMDIzIHwgICAgICAgICAgICAgfCAgICAgICAg ICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAxLTIwMjMgfCAwNy0wMS0yMDIzIHwgICAgICAg ICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAyLTIwMjMgfCAwNy0w Mi0yMDIzIHwgMDctMDItMjAyMyAgfCAwNy0xMC0yMDIzIHwgICAgIDkKKyBjb21wYW55MiB8IDA3 LTAzLTIwMjMgfCAwNy0wMy0yMDIzIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAK KyBjb21wYW55MiB8IDA3LTA0LTIwMjMgfCAwNy0wNC0yMDIzIHwgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA1LTIwMjMgfCAwNy0wNS0yMDIzIHwgICAg ICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA2LTIwMjMgfCAw Ny0wNi0yMDIzIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8 IDA3LTA3LTIwMjMgfCAwNy0wNy0yMDIzIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAg IDAKKyBjb21wYW55MiB8IDA3LTA4LTIwMjMgfCAwNy0wOC0yMDIzIHwgICAgICAgICAgICAgfCAg ICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA5LTIwMjMgfCAwNy0wOS0yMDIzIHwg ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTEwLTIwMjMg fCAwNy0xMC0yMDIzIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKygyMCByb3dz KQorCistLSBudW1lcmljOiBQUkVWKHByaWNlOjpudW1lcmljLCAxKSA+IFBSRVYocHJpY2U6Om51 bWVyaWMsIDIpCistLSBCIG1hdGNoZXMgd2hlbiBwcmljZSAxLWJhY2sgPiBwcmljZSAyLWJhY2sg KGFzY2VuZGluZyBwYWlyKS4KK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2U6Om51bWVyaWMg QVMgbnByaWNlLAorICAgICAgIGZpcnN0X3ZhbHVlKHByaWNlOjpudW1lcmljKSBPVkVSIHcsIGxh c3RfdmFsdWUocHJpY2U6Om51bWVyaWMpIE9WRVIgdywgY291bnQoKikgT1ZFUiB3CitGUk9NIHN0 b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRh dGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQor ICAgIERFRklORQorICAgICAgICBBIEFTIFRSVUUsCisgICAgICAgIEIgQVMgUFJFVihwcmljZTo6 bnVtZXJpYywgMSkgPiBQUkVWKHByaWNlOjpudW1lcmljLCAyKQorKTsKKyBjb21wYW55ICB8ICAg dGRhdGUgICAgfCBucHJpY2UgfCBmaXJzdF92YWx1ZSB8IGxhc3RfdmFsdWUgfCBjb3VudCAKKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0KKyBjb21wYW55MSB8IDA3LTAxLTIwMjMgfCAgICAxMDAgfCAgICAgICAgICAgICB8 ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDItMjAyMyB8ICAgIDIwMCB8ICAg ICAgICAgMjAwIHwgICAgICAgIDE1MCB8ICAgICAyCisgY29tcGFueTEgfCAwNy0wMy0yMDIzIHwg ICAgMTUwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3 LTA0LTIwMjMgfCAgICAxNDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNv bXBhbnkxIHwgMDctMDUtMjAyMyB8ICAgIDE1MCB8ICAgICAgICAgMTUwIHwgICAgICAgICA5MCB8 ICAgICAyCisgY29tcGFueTEgfCAwNy0wNi0yMDIzIHwgICAgIDkwIHwgICAgICAgICAgICAgfCAg ICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA3LTIwMjMgfCAgICAxMTAgfCAgICAg ICAgIDExMCB8ICAgICAgICAxMjAgfCAgICAgMworIGNvbXBhbnkxIHwgMDctMDgtMjAyMyB8ICAg IDEzMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0w OS0yMDIzIHwgICAgMTIwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21w YW55MSB8IDA3LTEwLTIwMjMgfCAgICAxMzAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAg ICAgMAorIGNvbXBhbnkyIHwgMDctMDEtMjAyMyB8ICAgICA1MCB8ICAgICAgICAgICAgIHwgICAg ICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wMi0yMDIzIHwgICAyMDAwIHwgICAgICAg IDIwMDAgfCAgICAgICAxNTAwIHwgICAgIDIKKyBjb21wYW55MiB8IDA3LTAzLTIwMjMgfCAgIDE1 MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDQt MjAyMyB8ICAgMTQwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFu eTIgfCAwNy0wNS0yMDIzIHwgICAxNTAwIHwgICAgICAgIDE1MDAgfCAgICAgICAgIDYwIHwgICAg IDIKKyBjb21wYW55MiB8IDA3LTA2LTIwMjMgfCAgICAgNjAgfCAgICAgICAgICAgICB8ICAgICAg ICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDctMjAyMyB8ICAgMTEwMCB8ICAgICAgICAx MTAwIHwgICAgICAgMTIwMCB8ICAgICAzCisgY29tcGFueTIgfCAwNy0wOC0yMDIzIHwgICAxMzAw IHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA5LTIw MjMgfCAgIDEyMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnky IHwgMDctMTAtMjAyMyB8ICAgMTMwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAw CisoMjAgcm93cykKKworLS0KKy0tIEZJUlNUL0xBU1QgbmF2aWdhdGlvbgorLS0KKy0tIFRlc3Qg ZGF0YSBmb3IgRklSU1QvTEFTVDogdmFsdWVzIGN5Y2xlIGJhY2sgc28gRklSU1QodmFsKSA9IExB U1QodmFsKQorLS0gYXQgc3BlY2lmaWMgcG9zaXRpb25zLgorQ1JFQVRFIFRFTVAgVEFCTEUgcnBy X25hdiAoaWQgaW50LCB2YWwgaW50KTsKK0lOU0VSVCBJTlRPIHJwcl9uYXYgVkFMVUVTICgxLDEw KSwoMiwyMCksKDMsMzApLCg0LDEwKSwoNSw1MCksKDYsMTApOworLS0gRklSU1QodmFsKSA9IGNv bnN0YW50OiBCIG1hdGNoZXMgd2hlbiBtYXRjaF9zdGFydCBoYXMgdmFsPTEwCistLSBtYXRjaF9z dGFydD0xKDEwKTogQT1pZDEsIEI9aWQyLCBGSVJTVCh2YWwpPTEwIC0+IG1hdGNoIHsxLDJ9Cist LSBtYXRjaF9zdGFydD0zKDMwKTogQT1pZDMsIEI9aWQ0LCBGSVJTVCh2YWwpPTMwIT0xMCAtPiBu byBtYXRjaAorLS0gbWF0Y2hfc3RhcnQ9NCgxMCk6IEE9aWQ0LCBCPWlkNSwgRklSU1QodmFsKT0x MCAtPiBtYXRjaCB7NCw1fQorU0VMRUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcg QVMgbWYsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtbAorRlJPTSBycHJfbmF2IFdJTkRPVyB3 IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwor ICAgIFBBVFRFUk4gKEEgQikKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIEZJUlNUKHZhbCkg PSAxMAorKTsKKyBpZCB8IHZhbCB8IG1mIHwgbWwgCistLS0tKy0tLS0tKy0tLS0rLS0tLQorICAx IHwgIDEwIHwgIDEgfCAgMgorICAyIHwgIDIwIHwgICAgfCAgIAorICAzIHwgIDMwIHwgICAgfCAg IAorICA0IHwgIDEwIHwgIDQgfCAgNQorICA1IHwgIDUwIHwgICAgfCAgIAorICA2IHwgIDEwIHwg ICAgfCAgIAorKDYgcm93cykKKworLS0gTEFTVCh2YWwpOiBhbHdheXMgZXF1YWxzIGN1cnJlbnQg cm93J3MgdmFsIChvZmZzZXQgMCBkZWZhdWx0KQorLS0gRXF1aXZhbGVudCB0bzogQiBBUyB2YWwg PiAxNQorU0VMRUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGxhc3Rf dmFsdWUoaWQpIE9WRVIgdyBBUyBtbAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBP UkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4g KEEgQikKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIExBU1QodmFsKSA+IDE1CispOworIGlk IHwgdmFsIHwgbWYgfCBtbCAKKy0tLS0rLS0tLS0rLS0tLSstLS0tCisgIDEgfCAgMTAgfCAgMSB8 ICAyCisgIDIgfCAgMjAgfCAgICB8ICAgCisgIDMgfCAgMzAgfCAgICB8ICAgCisgIDQgfCAgMTAg fCAgNCB8ICA1CisgIDUgfCAgNTAgfCAgICB8ICAgCisgIDYgfCAgMTAgfCAgICB8ICAgCisoNiBy b3dzKQorCistLSBSZWx1Y3RhbnQgQSs/IHdpdGggRklSU1QodmFsKSA9IExBU1QodmFsKTogZmlu ZCBzaG9ydGVzdCBtYXRjaCB3aGVyZQorLS0gZmlyc3QgYW5kIGxhc3Qgcm93cyBoYXZlIHRoZSBz YW1lIHZhbC4KKy0tIG1hdGNoX3N0YXJ0PTEoMTApOiByZWx1Y3RhbnQgdHJpZXMgQiBlYXJseToK Ky0tICAgaWQyKDIwIT0xMCksIGlkMygzMCE9MTApLCBpZDQoMTA9MTApIC0+IG1hdGNoIHsxLDIs Myw0fQorLS0gbWF0Y2hfc3RhcnQ9NSg1MCk6IGlkNigxMCE9NTApIC0+IG5vIG1hdGNoCitTRUxF Q1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgbGFzdF92YWx1ZShpZCkg T1ZFUiB3IEFTIG1sCitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlk CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSs/IEIpCisg ICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBGSVJTVCh2YWwpID0gTEFTVCh2YWwpCispOworIGlk IHwgdmFsIHwgbWYgfCBtbCAKKy0tLS0rLS0tLS0rLS0tLSstLS0tCisgIDEgfCAgMTAgfCAgMSB8 ICA0CisgIDIgfCAgMjAgfCAgICB8ICAgCisgIDMgfCAgMzAgfCAgICB8ICAgCisgIDQgfCAgMTAg fCAgICB8ICAgCisgIDUgfCAgNTAgfCAgICB8ICAgCisgIDYgfCAgMTAgfCAgICB8ICAgCisoNiBy b3dzKQorCistLSBHcmVlZHkgQSsgd2l0aCBGSVJTVCh2YWwpID0gTEFTVCh2YWwpOiBmaW5kIGxv bmdlc3QgbWF0Y2ggd2hlcmUKKy0tIGZpcnN0IGFuZCBsYXN0IHJvd3MgaGF2ZSB0aGUgc2FtZSB2 YWwuCistLSBtYXRjaF9zdGFydD0xKDEwKTogZ3JlZWR5IEEgZWF0cyBhbGwsIEIgdHJpZXMgbGFz dDoKKy0tICAgaWQ2KDEwPTEwKSAtPiBtYXRjaCB7MSwyLDMsNCw1LDZ9CitTRUxFQ1QgaWQsIHZh bCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFT IG1sCitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUg QSBBUyBUUlVFLCBCIEFTIEZJUlNUKHZhbCkgPSBMQVNUKHZhbCkKKyk7CisgaWQgfCB2YWwgfCBt ZiB8IG1sIAorLS0tLSstLS0tLSstLS0tKy0tLS0KKyAgMSB8ICAxMCB8ICAxIHwgIDYKKyAgMiB8 ICAyMCB8ICAgIHwgICAKKyAgMyB8ICAzMCB8ICAgIHwgICAKKyAgNCB8ICAxMCB8ICAgIHwgICAK KyAgNSB8ICA1MCB8ICAgIHwgICAKKyAgNiB8ICAxMCB8ICAgIHwgICAKKyg2IHJvd3MpCisKKy0t IFNLSVAgVE8gTkVYVCBST1cgd2l0aCBGSVJTVCh2YWwpID0gTEFTVCh2YWwpOiBvdmVybGFwcGlu ZyBtYXRjaCBhdHRlbXB0cy4KKy0tIFdpdGggT05FIFJPVyBQRVIgTUFUQ0gsIGVhY2ggcm93IHNo b3dzIG9ubHkgaXRzIGZpcnN0IG1hdGNoIHJlc3VsdC4KK1NFTEVDVCBpZCwgdmFsLCBmaXJzdF92 YWx1ZShpZCkgT1ZFUiB3IEFTIG1mLCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWwKK0ZST00g cnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQ IFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSs/IEIpCisgICAgREVGSU5FIEEgQVMgVFJVRSwg QiBBUyBGSVJTVCh2YWwpID0gTEFTVCh2YWwpCispOworIGlkIHwgdmFsIHwgbWYgfCBtbCAKKy0t LS0rLS0tLS0rLS0tLSstLS0tCisgIDEgfCAgMTAgfCAgMSB8ICA0CisgIDIgfCAgMjAgfCAgICB8 ICAgCisgIDMgfCAgMzAgfCAgICB8ICAgCisgIDQgfCAgMTAgfCAgNCB8ICA2CisgIDUgfCAgNTAg fCAgICB8ICAgCisgIDYgfCAgMTAgfCAgICB8ICAgCisoNiByb3dzKQorCistLSBGSVJTVC9MQVNU IDItYXJnIG9mZnNldCBmb3JtCistLQorLS0gRklSU1QodmFsLCAwKSA9IEZJUlNUKHZhbCk6IG1h dGNoX3N0YXJ0IHJvdworU0VMRUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMg bWYsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisg ICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRU RVJOIChBIEIrKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgRklSU1QodmFsLCAwKSA9IDEw CispOworIGlkIHwgdmFsIHwgbWYgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0rLS0tLS0KKyAgMSB8 ICAxMCB8ICAxIHwgICA2CisgIDIgfCAgMjAgfCAgICB8ICAgMAorICAzIHwgIDMwIHwgICAgfCAg IDAKKyAgNCB8ICAxMCB8ICAgIHwgICAwCisgIDUgfCAgNTAgfCAgICB8ICAgMAorICA2IHwgIDEw IHwgICAgfCAgIDAKKyg2IHJvd3MpCisKKy0tIEZJUlNUKHZhbCwgMSk6IG1hdGNoX3N0YXJ0ICsg MSByb3cgKHNlY29uZCByb3cgb2YgbWF0Y2gpCistLSBtYXRjaF9zdGFydD0xKDEwKTogRklSU1Qo dmFsLDEpPTIwLCBCIG5lZWRzIHZhbD0yMCAtPiBpZDIoMjApIG1hdGNoLCBpZDMoMzApIG5vCist LSBtYXRjaF9zdGFydD0zKDMwKTogRklSU1QodmFsLDEpPTEwLCBCIG5lZWRzIHZhbD0xMCAtPiBp ZDQoMTApIG1hdGNoCitTRUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBt ZiwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAg ICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRF Uk4gKEEgQispCisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyB2YWwgPSBGSVJTVCh2YWwsIDEp CispOworIGlkIHwgdmFsIHwgbWYgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0rLS0tLS0KKyAgMSB8 ICAxMCB8ICAxIHwgICAyCisgIDIgfCAgMjAgfCAgICB8ICAgMAorICAzIHwgIDMwIHwgIDMgfCAg IDIKKyAgNCB8ICAxMCB8ICAgIHwgICAwCisgIDUgfCAgNTAgfCAgNSB8ICAgMgorICA2IHwgIDEw IHwgICAgfCAgIDAKKyg2IHJvd3MpCisKKy0tIEZJUlNUKHZhbCwgOTkpOiBvZmZzZXQgYmV5b25k IG1hdGNoIHJhbmdlIC0+IE5VTEwsIG5vIG1hdGNoCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikg T1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBp ZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisg ICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBGSVJTVCh2YWwsIDk5KSBJUyBOT1QgTlVMTAorKTsK KyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAgMAorICAy IHwgIDIwIHwgICAwCisgIDMgfCAgMzAgfCAgIDAKKyAgNCB8ICAxMCB8ICAgMAorICA1IHwgIDUw IHwgICAwCisgIDYgfCAgMTAgfCAgIDAKKyg2IHJvd3MpCisKKy0tIExBU1QodmFsLCAwKSA9IExB U1QodmFsKTogY3VycmVudCByb3cKK1NFTEVDVCBpZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZF UiB3IEFTIG1mLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9uYXYgV0lORE9XIHcg QVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisg ICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIExBU1QodmFsLCAw KSA+IDE1CispOworIGlkIHwgdmFsIHwgbWYgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0rLS0tLS0K KyAgMSB8ICAxMCB8ICAxIHwgICAzCisgIDIgfCAgMjAgfCAgICB8ICAgMAorICAzIHwgIDMwIHwg ICAgfCAgIDAKKyAgNCB8ICAxMCB8ICA0IHwgICAyCisgIDUgfCAgNTAgfCAgICB8ICAgMAorICA2 IHwgIDEwIHwgICAgfCAgIDAKKyg2IHJvd3MpCisKKy0tIExBU1QodmFsLCAxKTogb25lIHJvdyBi YWNrIGZyb20gY3VycmVudCAocHJldmlvdXMgbWF0Y2ggcm93KQorLS0gQXQgQiBldmFsdWF0aW9u IG9uIGlkMjogTEFTVCh2YWwsMSkgPSB2YWwgYXQgaWQxID0gMTAKKy0tIEIgbWF0Y2hlcyB3aGVu IHByZXZpb3VzIHJvdyB2YWwgPCAzMAorU0VMRUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBP VkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX25hdiBXSU5ET1cg dyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgTEFTVCh2YWws IDEpIDwgMzAKKyk7CisgaWQgfCB2YWwgfCBtZiB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLSstLS0t LQorICAxIHwgIDEwIHwgIDEgfCAgIDMKKyAgMiB8ICAyMCB8ICAgIHwgICAwCisgIDMgfCAgMzAg fCAgICB8ICAgMAorICA0IHwgIDEwIHwgIDQgfCAgIDIKKyAgNSB8ICA1MCB8ICAgIHwgICAwCisg IDYgfCAgMTAgfCAgICB8ICAgMAorKDYgcm93cykKKworLS0gTEFTVCh2YWwsIDk5KTogb2Zmc2V0 IGJlZm9yZSBtYXRjaF9zdGFydCAtPiBOVUxMCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZF UiB3IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAg REVGSU5FIEEgQVMgVFJVRSwgQiBBUyBMQVNUKHZhbCwgOTkpIElTIE5PVCBOVUxMCispOworIGlk IHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAwCisgIDIgfCAg MjAgfCAgIDAKKyAgMyB8ICAzMCB8ICAgMAorICA0IHwgIDEwIHwgICAwCisgIDUgfCAgNTAgfCAg IDAKKyAgNiB8ICAxMCB8ICAgMAorKDYgcm93cykKKworLS0gRXJyb3I6IE5VTEwgb2Zmc2V0CitT RUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEZST00gcnByX25hdiBXSU5ET1cgdyBBUyAo CisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBGSVJTVCh2 YWwsIE5VTEw6OmludDgpIElTIE5VTEwKKyk7CitFUlJPUjogIHJvdyBwYXR0ZXJuIG5hdmlnYXRp b24gb2Zmc2V0IG11c3Qgbm90IGJlIG51bGwKKy0tIEVycm9yOiBuZWdhdGl2ZSBvZmZzZXQKK1NF TEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgK KyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIExBU1QodmFs LCAtMSkgSVMgTlVMTAorKTsKK0VSUk9SOiAgcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvZmZzZXQg bXVzdCBub3QgYmUgbmVnYXRpdmUKKy0tIEZJUlNUL0xBU1Qgb3V0c2lkZSBERUZJTkUgY2xhdXNl IChlcnJvciBjYXNlcykKK1NFTEVDVCBmaXJzdCh2YWwpIEZST00gcnByX25hdjsKK0VSUk9SOiAg Y2Fubm90IHVzZSBmaXJzdCBvdXRzaWRlIGEgREVGSU5FIGNsYXVzZQorTElORSAxOiBTRUxFQ1Qg Zmlyc3QodmFsKSBGUk9NIHJwcl9uYXY7CisgICAgICAgICAgICAgICBeCitTRUxFQ1QgbGFzdCh2 YWwpIEZST00gcnByX25hdjsKK0VSUk9SOiAgY2Fubm90IHVzZSBsYXN0IG91dHNpZGUgYSBERUZJ TkUgY2xhdXNlCitMSU5FIDE6IFNFTEVDVCBsYXN0KHZhbCkgRlJPTSBycHJfbmF2OworICAgICAg ICAgICAgICAgXgorU0VMRUNUIGZpcnN0KHZhbCwgMSkgRlJPTSBycHJfbmF2OworRVJST1I6ICBj YW5ub3QgdXNlIGZpcnN0IG91dHNpZGUgYSBERUZJTkUgY2xhdXNlCitMSU5FIDE6IFNFTEVDVCBm aXJzdCh2YWwsIDEpIEZST00gcnByX25hdjsKKyAgICAgICAgICAgICAgIF4KKy0tIEZ1bmN0aW9u YWwgbm90YXRpb246IHNob3VsZCBhY2Nlc3MgY29sdW1uLCBub3QgUlBSIG5hdmlnYXRpb24KK0NS RUFURSBURU1QIFRBQkxFIHJwcl9uYW1lcyAocHJldiBpbnQsIG5leHQgaW50LCBmaXJzdCB0ZXh0 LCBsYXN0IHRleHQpOworSU5TRVJUIElOVE8gcnByX25hbWVzIFZBTFVFUyAoMSwgMiwgJ0pvZScs ICdCbG93Jyk7CitTRUxFQ1QgcHJldihmKSwgbmV4dChmKSwgZmlyc3QoZiksIGxhc3QoZikgRlJP TSBycHJfbmFtZXMgZjsKKyBwcmV2IHwgbmV4dCB8IGZpcnN0IHwgbGFzdCAKKy0tLS0tLSstLS0t LS0rLS0tLS0tLSstLS0tLS0KKyAgICAxIHwgICAgMiB8IEpvZSAgIHwgQmxvdworKDEgcm93KQor CitEUk9QIFRBQkxFIHJwcl9uYW1lczsKKy0tIENvbXBvdW5kIG5hdmlnYXRpb246IFBSRVYoRklS U1QodmFsKSwgTSkKKy0tIHJwcl9uYXY6ICgxLDEwKSwoMiwyMCksKDMsMzApLCg0LDEwKSwoNSw1 MCksKDYsMTApCistLSBQUkVWKEZJUlNUKHZhbCksIDEpOiB0YXJnZXQgPSBtYXRjaF9zdGFydCAr IDAgLSAxID0gbWF0Y2hfc3RhcnQgLSAxCistLSBBdCBtYXRjaF9zdGFydD0xOiB0YXJnZXQ9MCAt PiBvdXQgb2YgcmFuZ2UgLT4gTlVMTAorLS0gQXQgbWF0Y2hfc3RhcnQ9MzogdGFyZ2V0PTIodmFs PTIwKSAtPiAyMCA+IDAgLT4gdHJ1ZQorU0VMRUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBP VkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX25hdiBXSU5ET1cg dyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgUFJFVihGSVJT VCh2YWwpLCAxKSA+IDAKKyk7CisgaWQgfCB2YWwgfCBtZiB8IGNudCAKKy0tLS0rLS0tLS0rLS0t LSstLS0tLQorICAxIHwgIDEwIHwgICAgfCAgIDAKKyAgMiB8ICAyMCB8ICAyIHwgICA1CisgIDMg fCAgMzAgfCAgICB8ICAgMAorICA0IHwgIDEwIHwgICAgfCAgIDAKKyAgNSB8ICA1MCB8ICAgIHwg ICAwCisgIDYgfCAgMTAgfCAgICB8ICAgMAorKDYgcm93cykKKworLS0gTkVYVChGSVJTVCh2YWws IDEpLCAxKTogdGFyZ2V0ID0gbWF0Y2hfc3RhcnQgKyAxICsgMSA9IG1hdGNoX3N0YXJ0ICsgMgor LS0gQXQgbWF0Y2hfc3RhcnQ9MSwgQiBvbiBpZDI6IHRhcmdldD0xKzErMT0zKHZhbD0zMCksIDMw PjAgLT4gdHJ1ZQorU0VMRUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYs IGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAg T1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJO IChBIEIrKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgTkVYVChGSVJTVCh2YWwsIDEpLCAx KSA+IDAKKyk7CisgaWQgfCB2YWwgfCBtZiB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLSstLS0tLQor ICAxIHwgIDEwIHwgIDEgfCAgIDYKKyAgMiB8ICAyMCB8ICAgIHwgICAwCisgIDMgfCAgMzAgfCAg ICB8ICAgMAorICA0IHwgIDEwIHwgICAgfCAgIDAKKyAgNSB8ICA1MCB8ICAgIHwgICAwCisgIDYg fCAgMTAgfCAgICB8ICAgMAorKDYgcm93cykKKworLS0gUFJFVihMQVNUKHZhbCksIDIpOiB0YXJn ZXQgPSBjdXJyZW50cG9zIC0gMCAtIDIgPSBjdXJyZW50cG9zIC0gMgorLS0gU2FtZSBiYWNrd2Fy ZCByZWFjaCBhcyBQUkVWKHZhbCwgMikKK1NFTEVDVCBpZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkg T1ZFUiB3IEFTIG1mLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9uYXYgV0lORE9X IHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X CisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIFBSRVYoTEFT VCh2YWwpLCAyKSBJUyBOT1QgTlVMTAorKTsKKyBpZCB8IHZhbCB8IG1mIHwgY250IAorLS0tLSst LS0tLSstLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgICB8ICAgMAorICAyIHwgIDIwIHwgIDIgfCAg IDUKKyAgMyB8ICAzMCB8ICAgIHwgICAwCisgIDQgfCAgMTAgfCAgICB8ICAgMAorICA1IHwgIDUw IHwgICAgfCAgIDAKKyAgNiB8ICAxMCB8ICAgIHwgICAwCisoNiByb3dzKQorCistLSBORVhUKExB U1QodmFsLCAxKSwgMik6IHRhcmdldCA9IGN1cnJlbnRwb3MgLSAxICsgMiA9IGN1cnJlbnRwb3Mg KyAxCistLSBMb29rcyAxIHJvdyBhaGVhZDogc2FtZSBhcyBORVhUKHZhbCwgMSkKK1NFTEVDVCBp ZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1mLCBjb3VudCgqKSBPVkVSIHcgQVMg Y250CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUg QSBBUyBUUlVFLCBCIEFTIE5FWFQoTEFTVCh2YWwsIDEpLCAyKSBJUyBOT1QgTlVMTAorKTsKKyBp ZCB8IHZhbCB8IG1mIHwgY250IAorLS0tLSstLS0tLSstLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAg MSB8ICAgNQorICAyIHwgIDIwIHwgICAgfCAgIDAKKyAgMyB8ICAzMCB8ICAgIHwgICAwCisgIDQg fCAgMTAgfCAgICB8ICAgMAorICA1IHwgIDUwIHwgICAgfCAgIDAKKyAgNiB8ICAxMCB8ICAgIHwg ICAwCisoNiByb3dzKQorCistLSBDb21wb3VuZDogb3V0ZXIgb2Zmc2V0IGJleW9uZCBwYXJ0aXRp b24gKFBSRVYgZmFyIGJhY2spCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNu dAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4g KEEgQispCisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBQUkVWKEZJUlNUKHZhbCksIDk5KSBJ UyBOT1QgTlVMTAorKTsKKyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLS0KKyAgMSB8 ICAxMCB8ICAgMAorICAyIHwgIDIwIHwgICAwCisgIDMgfCAgMzAgfCAgIDAKKyAgNCB8ICAxMCB8 ICAgMAorICA1IHwgIDUwIHwgICAwCisgIDYgfCAgMTAgfCAgIDAKKyg2IHJvd3MpCisKKy0tIENv bXBvdW5kOiBvdXRlciBvZmZzZXQgYmV5b25kIHBhcnRpdGlvbiAoTkVYVCBmYXIgZm9yd2FyZCkK K1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9uYXYgV0lO RE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUg QSBBUyBUUlVFLCBCIEFTIE5FWFQoRklSU1QodmFsKSwgOTkpIElTIE5PVCBOVUxMCispOworIGlk IHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAwCisgIDIgfCAg MjAgfCAgIDAKKyAgMyB8ICAzMCB8ICAgMAorICA0IHwgIDEwIHwgICAwCisgIDUgfCAgNTAgfCAg IDAKKyAgNiB8ICAxMCB8ICAgMAorKDYgcm93cykKKworLS0gQ29tcG91bmQ6IGlubmVyIG9mZnNl dCBiZXlvbmQgbWF0Y2ggcmFuZ2UgKEZJUlNUIG9mZnNldCB0b28gbGFyZ2UpCitTRUxFQ1QgaWQs IHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgK KyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEEgQVMgVFJVRSwg QiBBUyBQUkVWKEZJUlNUKHZhbCwgOTkpLCAxKSBJUyBOT1QgTlVMTAorKTsKKyBpZCB8IHZhbCB8 IGNudCAKKy0tLS0rLS0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAgMAorICAyIHwgIDIwIHwgICAw CisgIDMgfCAgMzAgfCAgIDAKKyAgNCB8ICAxMCB8ICAgMAorICA1IHwgIDUwIHwgICAwCisgIDYg fCAgMTAgfCAgIDAKKyg2IHJvd3MpCisKKy0tIENvbXBvdW5kOiBpbm5lciBvZmZzZXQgYmV5b25k IG1hdGNoIHJhbmdlIChMQVNUIG9mZnNldCB0b28gbGFyZ2UpCitTRUxFQ1QgaWQsIHZhbCwgY291 bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRF UiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBORVhU KExBU1QodmFsLCA5OSksIDEpIElTIE5PVCBOVUxMCispOworIGlkIHwgdmFsIHwgY250IAorLS0t LSstLS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAwCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAz MCB8ICAgMAorICA0IHwgIDEwIHwgICAwCisgIDUgfCAgNTAgfCAgIDAKKyAgNiB8ICAxMCB8ICAg MAorKDYgcm93cykKKworLS0gQ29tcG91bmQ6IE5VTEwgb3V0ZXIgb2Zmc2V0IChydW50aW1lIGVy cm9yKQorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBGUk9NIHJwcl9uYXYgV0lORE9X IHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMg UFJFVihGSVJTVCh2YWwpLCBOVUxMOjppbnQ4KSBJUyBOVUxMCispOworRVJST1I6ICByb3cgcGF0 dGVybiBuYXZpZ2F0aW9uIG9mZnNldCBtdXN0IG5vdCBiZSBudWxsCistLSBDb21wb3VuZDogbmVn YXRpdmUgb3V0ZXIgb2Zmc2V0IChydW50aW1lIGVycm9yKQorU0VMRUNUIGlkLCB2YWwsIGNvdW50 KCopIE9WRVIgdyBGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg UEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgTkVYVChMQVNUKHZhbCksIC0xKSBJUyBOVUxM CispOworRVJST1I6ICByb3cgcGF0dGVybiBuYXZpZ2F0aW9uIG9mZnNldCBtdXN0IG5vdCBiZSBu ZWdhdGl2ZQorLS0gQ29tcG91bmQ6IGRlZmF1bHQgb2Zmc2V0cyBvbiBib3RoIHNpZGVzCistLSBQ UkVWKEZJUlNUKHZhbCkpOiBpbm5lcj0wIChtYXRjaF9zdGFydCksIG91dGVyPTEgLT4gdGFyZ2V0 ID0gbWF0Y2hfc3RhcnQgLSAxCitTRUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIg dyBBUyBtZiwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFT ICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAg IFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBQUkVWKEZJUlNUKHZh bCkpIElTIE5PVCBOVUxMCispOworIGlkIHwgdmFsIHwgbWYgfCBjbnQgCistLS0tKy0tLS0tKy0t LS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAgIHwgICAwCisgIDIgfCAgMjAgfCAgMiB8ICAgNQorICAz IHwgIDMwIHwgICAgfCAgIDAKKyAgNCB8ICAxMCB8ICAgIHwgICAwCisgIDUgfCAgNTAgfCAgICB8 ICAgMAorICA2IHwgIDEwIHwgICAgfCAgIDAKKyg2IHJvd3MpCisKKy0tIE5FWFQoTEFTVCh2YWwp KTogaW5uZXI9MCAoY3VycmVudHBvcyksIG91dGVyPTEgLT4gdGFyZ2V0ID0gY3VycmVudHBvcyAr IDEKK1NFTEVDVCBpZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1mLCBjb3VudCgq KSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZ IGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykK KyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIE5FWFQoTEFTVCh2YWwpKSBJUyBOT1QgTlVMTAor KTsKKyBpZCB8IHZhbCB8IG1mIHwgY250IAorLS0tLSstLS0tLSstLS0tKy0tLS0tCisgIDEgfCAg MTAgfCAgMSB8ICAgNQorICAyIHwgIDIwIHwgICAgfCAgIDAKKyAgMyB8ICAzMCB8ICAgIHwgICAw CisgIDQgfCAgMTAgfCAgICB8ICAgMAorICA1IHwgIDUwIHwgICAgfCAgIDAKKyAgNiB8ICAxMCB8 ICAgIHwgICAwCisoNiByb3dzKQorCistLSBDb21wb3VuZDogaW5uZXIgTlVMTCBvZmZzZXQgKHJ1 bnRpbWUgZXJyb3IpCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEZST00gcnByX25h diBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJ TkUgQSBBUyBQUkVWKEZJUlNUKHZhbCwgTlVMTDo6aW50OCksIDEpIElTIE5VTEwKKyk7CitFUlJP UjogIHJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb2Zmc2V0IG11c3Qgbm90IGJlIG51bGwKKy0tIENv bXBvdW5kOiBpbm5lciBuZWdhdGl2ZSBvZmZzZXQgKHJ1bnRpbWUgZXJyb3IpCitTRUxFQ1QgaWQs IHZhbCwgY291bnQoKikgT1ZFUiB3IEZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JE RVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBORVhUKExBU1QodmFsLCAt MSksIDEpIElTIE5VTEwKKyk7CitFUlJPUjogIHJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb2Zmc2V0 IG11c3Qgbm90IGJlIG5lZ2F0aXZlCistLSBDb21wb3VuZCArIGhvc3QgdmFyaWFibGUgb2Zmc2V0 cworUFJFUEFSRSB0ZXN0X2NvbXBvdW5kX29mZnNldChpbnQ4LCBpbnQ4KSBBUworU0VMRUNUIGlk LCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBBUyBj bnQKK0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBN QVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBB IEFTIFRSVUUsIEIgQVMgUFJFVihGSVJTVCh2YWwsICQxKSwgJDIpIElTIE5PVCBOVUxMCispOwor RVhFQ1VURSB0ZXN0X2NvbXBvdW5kX29mZnNldCgwLCAxKTsKKyBpZCB8IHZhbCB8IG1mIHwgY250 IAorLS0tLSstLS0tLSstLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgICB8ICAgMAorICAyIHwgIDIw IHwgIDIgfCAgIDUKKyAgMyB8ICAzMCB8ICAgIHwgICAwCisgIDQgfCAgMTAgfCAgICB8ICAgMAor ICA1IHwgIDUwIHwgICAgfCAgIDAKKyAgNiB8ICAxMCB8ICAgIHwgICAwCisoNiByb3dzKQorCitF WEVDVVRFIHRlc3RfY29tcG91bmRfb2Zmc2V0KDEsIDEpOworIGlkIHwgdmFsIHwgbWYgfCBjbnQg CistLS0tKy0tLS0tKy0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAxIHwgICA2CisgIDIgfCAgMjAg fCAgICB8ICAgMAorICAzIHwgIDMwIHwgICAgfCAgIDAKKyAgNCB8ICAxMCB8ICAgIHwgICAwCisg IDUgfCAgNTAgfCAgICB8ICAgMAorICA2IHwgIDEwIHwgICAgfCAgIDAKKyg2IHJvd3MpCisKK0RF QUxMT0NBVEUgdGVzdF9jb21wb3VuZF9vZmZzZXQ7CistLSBDb21wb3VuZCArIFNLSVAgVE8gTkVY VCBST1c6IG92ZXJsYXBwaW5nIG1hdGNoZXMgd2l0aCBQUkVWKEZJUlNUKCkpCitTRUxFQ1QgaWQs IHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgY291bnQoKikgT1ZFUiB3IEFTIGNu dAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1B VENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFT IFRSVUUsIEIgQVMgUFJFVihGSVJTVCh2YWwpLCAxKSA+IDAKKyk7CisgaWQgfCB2YWwgfCBtZiB8 IGNudCAKKy0tLS0rLS0tLS0rLS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAgfCAgIDAKKyAgMiB8 ICAyMCB8ICAyIHwgICA1CisgIDMgfCAgMzAgfCAgMyB8ICAgNAorICA0IHwgIDEwIHwgIDQgfCAg IDMKKyAgNSB8ICA1MCB8ICA1IHwgICAyCisgIDYgfCAgMTAgfCAgICB8ICAgMAorKDYgcm93cykK KworLS0gQ29tcG91bmQgKyBtdWx0aXBsZSBwYXJ0aXRpb25zCitDUkVBVEUgVEVNUCBUQUJMRSBy cHJfbmF2X3BhcnQgKGdpZCBpbnQsIGlkIGludCwgdmFsIGludCk7CitJTlNFUlQgSU5UTyBycHJf bmF2X3BhcnQgVkFMVUVTCisgICAgKDEsMSwxMCksKDEsMiwyMCksKDEsMywzMCksCisgICAgKDIs MSw0MCksKDIsMiw1MCksKDIsMyw2MCk7CitTRUxFQ1QgZ2lkLCBpZCwgdmFsLCBmaXJzdF92YWx1 ZShpZCkgT1ZFUiB3IEFTIG1mLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9uYXZf cGFydCBXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGdpZCBPUkRFUiBCWSBpZAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVG SU5FIEEgQVMgVFJVRSwgQiBBUyBORVhUKEZJUlNUKHZhbCksIDEpID4gMAorKTsKKyBnaWQgfCBp ZCB8IHZhbCB8IG1mIHwgY250IAorLS0tLS0rLS0tLSstLS0tLSstLS0tKy0tLS0tCisgICAxIHwg IDEgfCAgMTAgfCAgMSB8ICAgMworICAgMSB8ICAyIHwgIDIwIHwgICAgfCAgIDAKKyAgIDEgfCAg MyB8ICAzMCB8ICAgIHwgICAwCisgICAyIHwgIDEgfCAgNDAgfCAgMSB8ICAgMworICAgMiB8ICAy IHwgIDUwIHwgICAgfCAgIDAKKyAgIDIgfCAgMyB8ICA2MCB8ICAgIHwgICAwCisoNiByb3dzKQor CitEUk9QIFRBQkxFIHJwcl9uYXZfcGFydDsKKy0tIFJldmVyc2UgbmVzdGluZzogRklSU1Qgd3Jh cHBpbmcgUFJFViBpcyBwcm9oaWJpdGVkCitTRUxFQ1QgaWQsIHZhbCBGUk9NIHJwcl9uYXYgV0lO RE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKQorICAgIERFRklORSBB IEFTIFRSVUUsIEIgQVMgRklSU1QoUFJFVih2YWwpKSA+IDAKKyk7CitFUlJPUjogIEZJUlNUIGFu ZCBMQVNUIGNhbm5vdCBjb250YWluIFBSRVYgb3IgTkVYVAorTElORSA1OiAgICAgREVGSU5FIEEg QVMgVFJVRSwgQiBBUyBGSVJTVChQUkVWKHZhbCkpID4gMAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCitISU5UOiAgT25seSBQUkVWKEZJUlNUKCkpLCBQUkVWKExBU1QoKSks IE5FWFQoRklSU1QoKSksIGFuZCBORVhUKExBU1QoKSkgY29tcG91bmQgZm9ybXMgYXJlIGFsbG93 ZWQuCistLSBSZXZlcnNlIG5lc3Rpbmc6IExBU1Qgd3JhcHBpbmcgTkVYVCBpcyBwcm9oaWJpdGVk CitTRUxFQ1QgaWQsIHZhbCBGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZ IGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgUEFUVEVSTiAoQSBCKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgTEFTVChORVhU KHZhbCkpID4gMAorKTsKK0VSUk9SOiAgRklSU1QgYW5kIExBU1QgY2Fubm90IGNvbnRhaW4gUFJF ViBvciBORVhUCitMSU5FIDU6ICAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIExBU1QoTkVYVCh2 YWwpKSA+IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorSElOVDogIE9u bHkgUFJFVihGSVJTVCgpKSwgUFJFVihMQVNUKCkpLCBORVhUKEZJUlNUKCkpLCBhbmQgTkVYVChM QVNUKCkpIGNvbXBvdW5kIGZvcm1zIGFyZSBhbGxvd2VkLgorRFJPUCBUQUJMRSBycHJfbmF2Owor LS0KKy0tIFNLSVAgVE8gLyBCYWNrdHJhY2tpbmcgLyBGcmFtZSBib3VuZGFyeQorLS0KKy0tIG1h dGNoIGV2ZXJ5dGhpbmcKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3ZhbHVl KHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdworIEZST00gc3RvY2sKKyBX SU5ET1cgdyBBUyAoCisgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyBPUkRFUiBCWSB0ZGF0ZQorIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVworIElOSVRJQUwKKyBQQVRURVJOIChBKykKKyBERUZJTkUK KyAgQSBBUyBUUlVFCispOworIGNvbXBhbnkgIHwgICB0ZGF0ZSAgICB8IHByaWNlIHwgZmlyc3Rf dmFsdWUgfCBsYXN0X3ZhbHVlIAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIGNvbXBhbnkxIHwgMDctMDEtMjAyMyB8ICAgMTAwIHwg ICAgICAgICAxMDAgfCAgICAgICAgMTMwCisgY29tcGFueTEgfCAwNy0wMi0yMDIzIHwgICAyMDAg fCAgICAgICAgICAgICB8ICAgICAgICAgICAKKyBjb21wYW55MSB8IDA3LTAzLTIwMjMgfCAgIDE1 MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAorIGNvbXBhbnkxIHwgMDctMDQtMjAyMyB8ICAg MTQwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFueTEgfCAwNy0wNS0yMDIzIHwg ICAxNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAKKyBjb21wYW55MSB8IDA3LTA2LTIwMjMg fCAgICA5MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAorIGNvbXBhbnkxIHwgMDctMDctMjAy MyB8ICAgMTEwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFueTEgfCAwNy0wOC0y MDIzIHwgICAxMzAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAKKyBjb21wYW55MSB8IDA3LTA5 LTIwMjMgfCAgIDEyMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAorIGNvbXBhbnkxIHwgMDct MTAtMjAyMyB8ICAgMTMwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFueTIgfCAw Ny0wMS0yMDIzIHwgICAgNTAgfCAgICAgICAgICA1MCB8ICAgICAgIDEzMDAKKyBjb21wYW55MiB8 IDA3LTAyLTIwMjMgfCAgMjAwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAorIGNvbXBhbnky IHwgMDctMDMtMjAyMyB8ICAxNTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgCisgY29tcGFu eTIgfCAwNy0wNC0yMDIzIHwgIDE0MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAKKyBjb21w YW55MiB8IDA3LTA1LTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgIAorIGNv bXBhbnkyIHwgMDctMDYtMjAyMyB8ICAgIDYwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgCisg Y29tcGFueTIgfCAwNy0wNy0yMDIzIHwgIDExMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAK KyBjb21wYW55MiB8IDA3LTA4LTIwMjMgfCAgMTMwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAg IAorIGNvbXBhbnkyIHwgMDctMDktMjAyMyB8ICAxMjAwIHwgICAgICAgICAgICAgfCAgICAgICAg ICAgCisgY29tcGFueTIgfCAwNy0xMC0yMDIzIHwgIDEzMDAgfCAgICAgICAgICAgICB8ICAgICAg ICAgICAKKygyMCByb3dzKQorCistLSBudGhfdmFsdWUgYmV5b25kIHJlZHVjZWQgZnJhbWUgKG5v IElHTk9SRSBOVUxMUykKKy0tIFRlc3RzIFdpbkdldFNsb3RJbkZyYW1lL1dpbkdldEZ1bmNBcmdJ bkZyYW1lIG91dC1vZi1mcmFtZSB3aXRoIFJQUgorU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmlj ZSwKKyBudGhfdmFsdWUocHJpY2UsIDUpIE9WRVIgdyBBUyBudGhfNQorRlJPTSBzdG9jaworV0lO RE9XIHcgQVMgKAorIFBBUlRJVElPTiBCWSBjb21wYW55CisgT1JERVIgQlkgdGRhdGUKKyBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyBBRlRFUiBNQVRD SCBTS0lQIFBBU1QgTEFTVCBST1cKKyBQQVRURVJOIChTVEFSVCBVUCsgRE9XTispCisgREVGSU5F CisgIFNUQVJUIEFTIFRSVUUsCisgIFVQIEFTIHByaWNlID4gUFJFVihwcmljZSksCisgIERPV04g QVMgcHJpY2UgPCBQUkVWKHByaWNlKQorKTsKKyBjb21wYW55ICB8ICAgdGRhdGUgICAgfCBwcmlj ZSB8IG50aF81IAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tCisgY29t cGFueTEgfCAwNy0wMS0yMDIzIHwgICAxMDAgfCAgICAgIAorIGNvbXBhbnkxIHwgMDctMDItMjAy MyB8ICAgMjAwIHwgICAgICAKKyBjb21wYW55MSB8IDA3LTAzLTIwMjMgfCAgIDE1MCB8ICAgICAg CisgY29tcGFueTEgfCAwNy0wNC0yMDIzIHwgICAxNDAgfCAgICAgIAorIGNvbXBhbnkxIHwgMDct MDUtMjAyMyB8ICAgMTUwIHwgICAgICAKKyBjb21wYW55MSB8IDA3LTA2LTIwMjMgfCAgICA5MCB8 ICAgICAgCisgY29tcGFueTEgfCAwNy0wNy0yMDIzIHwgICAxMTAgfCAgICAgIAorIGNvbXBhbnkx IHwgMDctMDgtMjAyMyB8ICAgMTMwIHwgICAgICAKKyBjb21wYW55MSB8IDA3LTA5LTIwMjMgfCAg IDEyMCB8ICAgICAgCisgY29tcGFueTEgfCAwNy0xMC0yMDIzIHwgICAxMzAgfCAgICAgIAorIGNv bXBhbnkyIHwgMDctMDEtMjAyMyB8ICAgIDUwIHwgICAgICAKKyBjb21wYW55MiB8IDA3LTAyLTIw MjMgfCAgMjAwMCB8ICAgICAgCisgY29tcGFueTIgfCAwNy0wMy0yMDIzIHwgIDE1MDAgfCAgICAg IAorIGNvbXBhbnkyIHwgMDctMDQtMjAyMyB8ICAxNDAwIHwgICAgICAKKyBjb21wYW55MiB8IDA3 LTA1LTIwMjMgfCAgMTUwMCB8ICAgICAgCisgY29tcGFueTIgfCAwNy0wNi0yMDIzIHwgICAgNjAg fCAgICAgIAorIGNvbXBhbnkyIHwgMDctMDctMjAyMyB8ICAxMTAwIHwgICAgICAKKyBjb21wYW55 MiB8IDA3LTA4LTIwMjMgfCAgMTMwMCB8ICAgICAgCisgY29tcGFueTIgfCAwNy0wOS0yMDIzIHwg IDEyMDAgfCAgICAgIAorIGNvbXBhbnkyIHwgMDctMTAtMjAyMyB8ICAxMzAwIHwgICAgICAKKygy MCByb3dzKQorCistLSBiYWNrdHJhY2tpbmcgd2l0aCByZWNsYXNzaWZpY2F0aW9uIG9mIHJvd3MK Ky0tIHVzaW5nIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworU0VMRUNUIGNvbXBhbnks IHRkYXRlLCBwcmljZSwgZmlyc3RfdmFsdWUodGRhdGUpIE9WRVIgdywgbGFzdF92YWx1ZSh0ZGF0 ZSkgT1ZFUiB3CisgRlJPTSBzdG9jaworIFdJTkRPVyB3IEFTICgKKyBQQVJUSVRJT04gQlkgY29t cGFueQorIE9SREVSIEJZIHRkYXRlCisgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgSU5JVElB TAorIFBBVFRFUk4gKEErIEIrKQorIERFRklORQorICBBIEFTIHByaWNlID4gMTAwLAorICBCIEFT IHByaWNlID4gMTAwCispOworIGNvbXBhbnkgIHwgICB0ZGF0ZSAgICB8IHByaWNlIHwgZmlyc3Rf dmFsdWUgfCBsYXN0X3ZhbHVlIAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIGNvbXBhbnkxIHwgMDctMDEtMjAyMyB8ICAgMTAwIHwg ICAgICAgICAgICAgfCAKKyBjb21wYW55MSB8IDA3LTAyLTIwMjMgfCAgIDIwMCB8IDA3LTAyLTIw MjMgIHwgMDctMDUtMjAyMworIGNvbXBhbnkxIHwgMDctMDMtMjAyMyB8ICAgMTUwIHwgICAgICAg ICAgICAgfCAKKyBjb21wYW55MSB8IDA3LTA0LTIwMjMgfCAgIDE0MCB8ICAgICAgICAgICAgIHwg CisgY29tcGFueTEgfCAwNy0wNS0yMDIzIHwgICAxNTAgfCAgICAgICAgICAgICB8IAorIGNvbXBh bnkxIHwgMDctMDYtMjAyMyB8ICAgIDkwIHwgICAgICAgICAgICAgfCAKKyBjb21wYW55MSB8IDA3 LTA3LTIwMjMgfCAgIDExMCB8IDA3LTA3LTIwMjMgIHwgMDctMTAtMjAyMworIGNvbXBhbnkxIHwg MDctMDgtMjAyMyB8ICAgMTMwIHwgICAgICAgICAgICAgfCAKKyBjb21wYW55MSB8IDA3LTA5LTIw MjMgfCAgIDEyMCB8ICAgICAgICAgICAgIHwgCisgY29tcGFueTEgfCAwNy0xMC0yMDIzIHwgICAx MzAgfCAgICAgICAgICAgICB8IAorIGNvbXBhbnkyIHwgMDctMDEtMjAyMyB8ICAgIDUwIHwgICAg ICAgICAgICAgfCAKKyBjb21wYW55MiB8IDA3LTAyLTIwMjMgfCAgMjAwMCB8IDA3LTAyLTIwMjMg IHwgMDctMDUtMjAyMworIGNvbXBhbnkyIHwgMDctMDMtMjAyMyB8ICAxNTAwIHwgICAgICAgICAg ICAgfCAKKyBjb21wYW55MiB8IDA3LTA0LTIwMjMgfCAgMTQwMCB8ICAgICAgICAgICAgIHwgCisg Y29tcGFueTIgfCAwNy0wNS0yMDIzIHwgIDE1MDAgfCAgICAgICAgICAgICB8IAorIGNvbXBhbnky IHwgMDctMDYtMjAyMyB8ICAgIDYwIHwgICAgICAgICAgICAgfCAKKyBjb21wYW55MiB8IDA3LTA3 LTIwMjMgfCAgMTEwMCB8IDA3LTA3LTIwMjMgIHwgMDctMTAtMjAyMworIGNvbXBhbnkyIHwgMDct MDgtMjAyMyB8ICAxMzAwIHwgICAgICAgICAgICAgfCAKKyBjb21wYW55MiB8IDA3LTA5LTIwMjMg fCAgMTIwMCB8ICAgICAgICAgICAgIHwgCisgY29tcGFueTIgfCAwNy0xMC0yMDIzIHwgIDEzMDAg fCAgICAgICAgICAgICB8IAorKDIwIHJvd3MpCisKKy0tIGJhY2t0cmFja2luZyB3aXRoIHJlY2xh c3NpZmljYXRpb24gb2Ygcm93cworLS0gdXNpbmcgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJP VworU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmlyc3RfdmFsdWUodGRhdGUpIE9WRVIg dywgbGFzdF92YWx1ZSh0ZGF0ZSkgT1ZFUiB3CisgRlJPTSBzdG9jaworIFdJTkRPVyB3IEFTICgK KyBQQVJUSVRJT04gQlkgY29tcGFueQorIE9SREVSIEJZIHRkYXRlCisgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgQUZURVIgTUFUQ0ggU0tJUCBUTyBO RVhUIFJPVworIElOSVRJQUwKKyBQQVRURVJOIChBKyBCKykKKyBERUZJTkUKKyAgQSBBUyBwcmlj ZSA+IDEwMCwKKyAgQiBBUyBwcmljZSA+IDEwMAorKTsKKyBjb21wYW55ICB8ICAgdGRhdGUgICAg fCBwcmljZSB8IGZpcnN0X3ZhbHVlIHwgbGFzdF92YWx1ZSAKKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBjb21wYW55MSB8IDA3LTAx LTIwMjMgfCAgIDEwMCB8ICAgICAgICAgICAgIHwgCisgY29tcGFueTEgfCAwNy0wMi0yMDIzIHwg ICAyMDAgfCAwNy0wMi0yMDIzICB8IDA3LTA1LTIwMjMKKyBjb21wYW55MSB8IDA3LTAzLTIwMjMg fCAgIDE1MCB8IDA3LTAzLTIwMjMgIHwgMDctMDUtMjAyMworIGNvbXBhbnkxIHwgMDctMDQtMjAy MyB8ICAgMTQwIHwgMDctMDQtMjAyMyAgfCAwNy0wNS0yMDIzCisgY29tcGFueTEgfCAwNy0wNS0y MDIzIHwgICAxNTAgfCAgICAgICAgICAgICB8IAorIGNvbXBhbnkxIHwgMDctMDYtMjAyMyB8ICAg IDkwIHwgICAgICAgICAgICAgfCAKKyBjb21wYW55MSB8IDA3LTA3LTIwMjMgfCAgIDExMCB8IDA3 LTA3LTIwMjMgIHwgMDctMTAtMjAyMworIGNvbXBhbnkxIHwgMDctMDgtMjAyMyB8ICAgMTMwIHwg MDctMDgtMjAyMyAgfCAwNy0xMC0yMDIzCisgY29tcGFueTEgfCAwNy0wOS0yMDIzIHwgICAxMjAg fCAwNy0wOS0yMDIzICB8IDA3LTEwLTIwMjMKKyBjb21wYW55MSB8IDA3LTEwLTIwMjMgfCAgIDEz MCB8ICAgICAgICAgICAgIHwgCisgY29tcGFueTIgfCAwNy0wMS0yMDIzIHwgICAgNTAgfCAgICAg ICAgICAgICB8IAorIGNvbXBhbnkyIHwgMDctMDItMjAyMyB8ICAyMDAwIHwgMDctMDItMjAyMyAg fCAwNy0wNS0yMDIzCisgY29tcGFueTIgfCAwNy0wMy0yMDIzIHwgIDE1MDAgfCAwNy0wMy0yMDIz ICB8IDA3LTA1LTIwMjMKKyBjb21wYW55MiB8IDA3LTA0LTIwMjMgfCAgMTQwMCB8IDA3LTA0LTIw MjMgIHwgMDctMDUtMjAyMworIGNvbXBhbnkyIHwgMDctMDUtMjAyMyB8ICAxNTAwIHwgICAgICAg ICAgICAgfCAKKyBjb21wYW55MiB8IDA3LTA2LTIwMjMgfCAgICA2MCB8ICAgICAgICAgICAgIHwg CisgY29tcGFueTIgfCAwNy0wNy0yMDIzIHwgIDExMDAgfCAwNy0wNy0yMDIzICB8IDA3LTEwLTIw MjMKKyBjb21wYW55MiB8IDA3LTA4LTIwMjMgfCAgMTMwMCB8IDA3LTA4LTIwMjMgIHwgMDctMTAt MjAyMworIGNvbXBhbnkyIHwgMDctMDktMjAyMyB8ICAxMjAwIHwgMDctMDktMjAyMyAgfCAwNy0x MC0yMDIzCisgY29tcGFueTIgfCAwNy0xMC0yMDIzIHwgIDEzMDAgfCAgICAgICAgICAgICB8IAor KDIwIHJvd3MpCisKKy0tIFNLSVAgVE8gTkVYVCBST1cgd2l0aCBsaW1pdGVkIGZyYW1lIChJc2hp aS1zYW4ncyB0ZXN0IGNhc2UpCistLSBFYWNoIHJvdyBzaG91bGQgcHJvZHVjZSBpdHMgb3duIG1h dGNoIHdpdGhpbiBpdHMgZnJhbWUKK1dJVEggZGF0YSBBUyAoCisgU0VMRUNUICogRlJPTSAoVkFM VUVTCisgICgnQScsIDEpLCAoJ0EnLCAyKSwKKyAgKCdCJywgMyksICgnQicsIDQpCisgKSBBUyB0 KGdpZCwgaWQpCispCitTRUxFQ1QgZ2lkLCBpZCwgYXJyYXlfYWdnKGlkKSBPVkVSIHcKK0ZST00g ZGF0YQorV0lORE9XIHcgQVMgKAorIFBBUlRJVElPTiBCWSBnaWQKKyBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIDIgRk9MTE9XSU5HCisgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVwor IFBBVFRFUk4gKEErKQorIERFRklORSBBIEFTIGlkIDwgMTAKKyk7CisgZ2lkIHwgaWQgfCBhcnJh eV9hZ2cgCistLS0tLSstLS0tKy0tLS0tLS0tLS0tCisgQSAgIHwgIDEgfCB7MSwyfQorIEEgICB8 ICAyIHwgezJ9CisgQiAgIHwgIDMgfCB7Myw0fQorIEIgICB8ICA0IHwgezR9CisoNCByb3dzKQor CistLSBMaW1pdGVkIGZyYW1lIHdpdGggYWJzb3JwdGlvbiB0ZXN0CistLSBSb3cgMDogZnJhbWUg WzAsMl0sIGNhbid0IHNlZSBCIGF0IHJvdyAzIC0+IG5vIG1hdGNoCistLSBSb3cgMTogZnJhbWUg WzEsM10sIGNhbiBzZWUgQSBBIEIgLT4gc2hvdWxkIG1hdGNoIHJvd3MgMS0zCitXSVRIIGZyYW1l X2Fic29yYl90ZXN0IEFTICgKKyBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgKDAsICdBJyksICgx LCAnQScpLCAoMiwgJ0EnKSwgKDMsICdCJykKKyApIEFTIHQoaWQsIGZsYWcpCispCitTRUxFQ1Qg aWQsIGZsYWcsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFs dWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gZnJhbWVfYWJzb3JiX3Rlc3QKK1dJTkRP VyB3IEFTICgKKyBPUkRFUiBCWSBpZAorIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgMiBG T0xMT1dJTkcKKyBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyBQQVRURVJOIChBKyBC KQorIERFRklORQorICBBIEFTIGZsYWcgPSAnQScsCisgIEIgQVMgZmxhZyA9ICdCJworKTsKKyBp ZCB8IGZsYWcgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0KKyAgMCB8IEEgICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAor ICAxIHwgQSAgICB8ICAgICAgICAgICAxIHwgICAgICAgICAzCisgIDIgfCBBICAgIHwgICAgICAg ICAgICAgfCAgICAgICAgICAKKyAgMyB8IEIgICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAor KDQgcm93cykKKworLS0gUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBvZmZzZXQgRk9MTE9X SU5HCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZSh0ZGF0ZSkgT1ZF UiB3LCBsYXN0X3ZhbHVlKHRkYXRlKSBPVkVSIHcsCisgY291bnQoKikgT1ZFUiB3CisgRlJPTSBz dG9jaworIFdJTkRPVyB3IEFTICgKKyBQQVJUSVRJT04gQlkgY29tcGFueQorIE9SREVSIEJZIHRk YXRlCisgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCAyIEZPTExPV0lORworIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVworIFBBVFRFUk4gKFNUQVJUIFVQKyBET1dOKykKKyBERUZJ TkUKKyAgU1RBUlQgQVMgVFJVRSwKKyAgVVAgQVMgcHJpY2UgPiBQUkVWKHByaWNlKSwKKyAgRE9X TiBBUyBwcmljZSA8IFBSRVYocHJpY2UpCispOworIGNvbXBhbnkgIHwgICB0ZGF0ZSAgICB8IHBy aWNlIHwgZmlyc3RfdmFsdWUgfCBsYXN0X3ZhbHVlIHwgY291bnQgCistLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBjb21w YW55MSB8IDA3LTAxLTIwMjMgfCAgIDEwMCB8IDA3LTAxLTIwMjMgIHwgMDctMDMtMjAyMyB8ICAg ICAzCisgY29tcGFueTEgfCAwNy0wMi0yMDIzIHwgICAyMDAgfCAgICAgICAgICAgICB8ICAgICAg ICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDMtMjAyMyB8ICAgMTUwIHwgICAgICAgICAg ICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA0LTIwMjMgfCAgIDE0MCB8 IDA3LTA0LTIwMjMgIHwgMDctMDYtMjAyMyB8ICAgICAzCisgY29tcGFueTEgfCAwNy0wNS0yMDIz IHwgICAxNTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwg MDctMDYtMjAyMyB8ICAgIDkwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBj b21wYW55MSB8IDA3LTA3LTIwMjMgfCAgIDExMCB8IDA3LTA3LTIwMjMgIHwgMDctMDktMjAyMyB8 ICAgICAzCisgY29tcGFueTEgfCAwNy0wOC0yMDIzIHwgICAxMzAgfCAgICAgICAgICAgICB8ICAg ICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDktMjAyMyB8ICAgMTIwIHwgICAgICAg ICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTEwLTIwMjMgfCAgIDEz MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wMS0y MDIzIHwgICAgNTAgfCAwNy0wMS0yMDIzICB8IDA3LTAzLTIwMjMgfCAgICAgMworIGNvbXBhbnky IHwgMDctMDItMjAyMyB8ICAyMDAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAK KyBjb21wYW55MiB8IDA3LTAzLTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNC0yMDIzIHwgIDE0MDAgfCAwNy0wNC0yMDIzICB8 IDA3LTA2LTIwMjMgfCAgICAgMworIGNvbXBhbnkyIHwgMDctMDUtMjAyMyB8ICAxNTAwIHwgICAg ICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA2LTIwMjMgfCAg ICA2MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0w Ny0yMDIzIHwgIDExMDAgfCAwNy0wNy0yMDIzICB8IDA3LTA5LTIwMjMgfCAgICAgMworIGNvbXBh bnkyIHwgMDctMDgtMjAyMyB8ICAxMzAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAg IDAKKyBjb21wYW55MiB8IDA3LTA5LTIwMjMgfCAgMTIwMCB8ICAgICAgICAgICAgIHwgICAgICAg ICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0xMC0yMDIzIHwgIDEzMDAgfCAgICAgICAgICAg ICB8ICAgICAgICAgICAgfCAgICAgMAorKDIwIHJvd3MpCisKKy0tCistLSBBZ2dyZWdhdGVzCist LQorLS0gdXNpbmcgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCitTRUxFQ1QgY29tcGFu eSwgdGRhdGUsIHByaWNlLAorIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsCisgbGFzdF92YWx1 ZShwcmljZSkgT1ZFUiB3LAorIG1heChwcmljZSkgT1ZFUiB3LAorIG1pbihwcmljZSkgT1ZFUiB3 LAorIHN1bShwcmljZSkgT1ZFUiB3LAorIGF2ZyhwcmljZSkgT1ZFUiB3LAorIGNvdW50KHByaWNl KSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKK1BBUlRJVElPTiBCWSBjb21wYW55 CitST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKK0FGVEVS IE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworSU5JVElBTAorUEFUVEVSTiAoU1RBUlQgVVArIERP V04rKQorREVGSU5FCitTVEFSVCBBUyBUUlVFLAorVVAgQVMgcHJpY2UgPiBQUkVWKHByaWNlKSwK K0RPV04gQVMgcHJpY2UgPCBQUkVWKHByaWNlKQorKTsKKyBjb21wYW55ICB8ICAgdGRhdGUgICAg fCBwcmljZSB8IGZpcnN0X3ZhbHVlIHwgbGFzdF92YWx1ZSB8IG1heCAgfCBtaW4gfCBzdW0gIHwg ICAgICAgICAgYXZnICAgICAgICAgIHwgY291bnQgCistLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLSstLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLQorIGNvbXBhbnkxIHwgMDctMDEtMjAyMyB8ICAg MTAwIHwgICAgICAgICAxMDAgfCAgICAgICAgMTQwIHwgIDIwMCB8IDEwMCB8ICA1OTAgfCAgMTQ3 LjUwMDAwMDAwMDAwMDAwMDAgfCAgICAgNAorIGNvbXBhbnkxIHwgMDctMDItMjAyMyB8ICAgMjAw IHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICB8ICAgICB8ICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDMtMjAyMyB8ICAgMTUwIHwg ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICB8ICAgICB8ICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDQtMjAyMyB8ICAgMTQwIHwgICAg ICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICB8ICAgICB8ICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDUtMjAyMyB8ICAgMTUwIHwgICAgICAg ICAgICAgfCAgICAgICAgICAgIHwgICAgICB8ICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDYtMjAyMyB8ICAgIDkwIHwgICAgICAgICAg OTAgfCAgICAgICAgMTIwIHwgIDEzMCB8ICA5MCB8ICA0NTAgfCAgMTEyLjUwMDAwMDAwMDAwMDAw MDAgfCAgICAgNAorIGNvbXBhbnkxIHwgMDctMDctMjAyMyB8ICAgMTEwIHwgICAgICAgICAgICAg fCAgICAgICAgICAgIHwgICAgICB8ICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDgtMjAyMyB8ICAgMTMwIHwgICAgICAgICAgICAgfCAg ICAgICAgICAgIHwgICAgICB8ICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgMAorIGNvbXBhbnkxIHwgMDctMDktMjAyMyB8ICAgMTIwIHwgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgICB8ICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg MAorIGNvbXBhbnkxIHwgMDctMTAtMjAyMyB8ICAgMTMwIHwgICAgICAgICAgICAgfCAgICAgICAg ICAgIHwgICAgICB8ICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgMAor IGNvbXBhbnkyIHwgMDctMDEtMjAyMyB8ICAgIDUwIHwgICAgICAgICAgNTAgfCAgICAgICAxNDAw IHwgMjAwMCB8ICA1MCB8IDQ5NTAgfCAxMjM3LjUwMDAwMDAwMDAwMDAwMDAgfCAgICAgNAorIGNv bXBhbnkyIHwgMDctMDItMjAyMyB8ICAyMDAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwg ICAgICB8ICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgMAorIGNvbXBh bnkyIHwgMDctMDMtMjAyMyB8ICAxNTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAg ICB8ICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnky IHwgMDctMDQtMjAyMyB8ICAxNDAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICB8 ICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwg MDctMDUtMjAyMyB8ICAxNTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICB8ICAg ICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDct MDYtMjAyMyB8ICAgIDYwIHwgICAgICAgICAgNjAgfCAgICAgICAxMjAwIHwgMTMwMCB8ICA2MCB8 IDM2NjAgfCAgOTE1LjAwMDAwMDAwMDAwMDAwMDAgfCAgICAgNAorIGNvbXBhbnkyIHwgMDctMDct MjAyMyB8ICAxMTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICB8ICAgICB8ICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDgtMjAy MyB8ICAxMzAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICB8ICAgICB8ICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDktMjAyMyB8 ICAxMjAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICB8ICAgICB8ICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMTAtMjAyMyB8ICAx MzAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICB8ICAgICB8ICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgMAorKDIwIHJvd3MpCisKKy0tIHVzaW5nIEFGVEVSIE1B VENIIFNLSVAgVE8gTkVYVCBST1cKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsCisgZmly c3RfdmFsdWUocHJpY2UpIE9WRVIgdywKKyBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsCisgbWF4 KHByaWNlKSBPVkVSIHcsCisgbWluKHByaWNlKSBPVkVSIHcsCisgc3VtKHByaWNlKSBPVkVSIHcs CisgYXZnKHByaWNlKSBPVkVSIHcsCisgY291bnQocHJpY2UpIE9WRVIgdworRlJPTSBzdG9jawor V0lORE9XIHcgQVMgKAorUEFSVElUSU9OIEJZIGNvbXBhbnkKK1JPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJP VworSU5JVElBTAorUEFUVEVSTiAoU1RBUlQgVVArIERPV04rKQorREVGSU5FCitTVEFSVCBBUyBU UlVFLAorVVAgQVMgcHJpY2UgPiBQUkVWKHByaWNlKSwKK0RPV04gQVMgcHJpY2UgPCBQUkVWKHBy aWNlKQorKTsKKyBjb21wYW55ICB8ICAgdGRhdGUgICAgfCBwcmljZSB8IGZpcnN0X3ZhbHVlIHwg bGFzdF92YWx1ZSB8IG1heCAgfCBtaW4gIHwgc3VtICB8ICAgICAgICAgIGF2ZyAgICAgICAgICB8 IGNvdW50IAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tCisgY29tcGFueTEgfCAwNy0wMS0yMDIzIHwgICAxMDAgfCAgICAgICAgIDEwMCB8ICAg ICAgICAxNDAgfCAgMjAwIHwgIDEwMCB8ICA1OTAgfCAgMTQ3LjUwMDAwMDAwMDAwMDAwMDAgfCAg ICAgNAorIGNvbXBhbnkxIHwgMDctMDItMjAyMyB8ICAgMjAwIHwgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgICB8ICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAg IDAKKyBjb21wYW55MSB8IDA3LTAzLTIwMjMgfCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAgICAg ICAgICB8ICAgICAgfCAgICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAw CisgY29tcGFueTEgfCAwNy0wNC0yMDIzIHwgICAxNDAgfCAgICAgICAgIDE0MCB8ICAgICAgICAg OTAgfCAgMTUwIHwgICA5MCB8ICAzODAgfCAgMTI2LjY2NjY2NjY2NjY2NjY2NjcgfCAgICAgMwor IGNvbXBhbnkxIHwgMDctMDUtMjAyMyB8ICAgMTUwIHwgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgICB8ICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIDAKKyBj b21wYW55MSB8IDA3LTA2LTIwMjMgfCAgICA5MCB8ICAgICAgICAgIDkwIHwgICAgICAgIDEyMCB8 ICAxMzAgfCAgIDkwIHwgIDQ1MCB8ICAxMTIuNTAwMDAwMDAwMDAwMDAwMCB8ICAgICA0CisgY29t cGFueTEgfCAwNy0wNy0yMDIzIHwgICAxMTAgfCAgICAgICAgIDExMCB8ICAgICAgICAxMjAgfCAg MTMwIHwgIDExMCB8ICAzNjAgfCAgMTIwLjAwMDAwMDAwMDAwMDAwMDAgfCAgICAgMworIGNvbXBh bnkxIHwgMDctMDgtMjAyMyB8ICAgMTMwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAg ICB8ICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55 MSB8IDA3LTA5LTIwMjMgfCAgIDEyMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAg fCAgICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEg fCAwNy0xMC0yMDIzIHwgICAxMzAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgIHwg ICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwg MDctMDEtMjAyMyB8ICAgIDUwIHwgICAgICAgICAgNTAgfCAgICAgICAxNDAwIHwgMjAwMCB8ICAg NTAgfCA0OTUwIHwgMTIzNy41MDAwMDAwMDAwMDAwMDAwIHwgICAgIDQKKyBjb21wYW55MiB8IDA3 LTAyLTIwMjMgfCAgMjAwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgfCAgICAg IHwgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0w My0yMDIzIHwgIDE1MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgIHwgICAgICB8 ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDQt MjAyMyB8ICAxNDAwIHwgICAgICAgIDE0MDAgfCAgICAgICAgIDYwIHwgMTUwMCB8ICAgNjAgfCAy OTYwIHwgIDk4Ni42NjY2NjY2NjY2NjY2NjY3IHwgICAgIDMKKyBjb21wYW55MiB8IDA3LTA1LTIw MjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgfCAgICAgIHwgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNi0yMDIz IHwgICAgNjAgfCAgICAgICAgICA2MCB8ICAgICAgIDEyMDAgfCAxMzAwIHwgICA2MCB8IDM2NjAg fCAgOTE1LjAwMDAwMDAwMDAwMDAwMDAgfCAgICAgNAorIGNvbXBhbnkyIHwgMDctMDctMjAyMyB8 ICAxMTAwIHwgICAgICAgIDExMDAgfCAgICAgICAxMjAwIHwgMTMwMCB8IDExMDAgfCAzNjAwIHwg MTIwMC4wMDAwMDAwMDAwMDAwMDAwIHwgICAgIDMKKyBjb21wYW55MiB8IDA3LTA4LTIwMjMgfCAg MTMwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgfCAgICAgIHwgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wOS0yMDIzIHwgIDEy MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgIHwgICAgICB8ICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMTAtMjAyMyB8ICAxMzAw IHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICB8ICAgICAgfCAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgIDAKKygyMCByb3dzKQorCistLSByb3dfbnVtYmVyKCkgd2l0 aGluIFJQUiByZWR1Y2VkIGZyYW1lCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCByb3df bnVtYmVyKCkgT1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFT ICgKKyBQQVJUSVRJT04gQlkgY29tcGFueQorIE9SREVSIEJZIHRkYXRlCisgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgQUZURVIgTUFUQ0ggU0tJUCBQ QVNUIExBU1QgUk9XCisgUEFUVEVSTiAoU1RBUlQgVVArIERPV04rKQorIERFRklORQorICBTVEFS VCBBUyBUUlVFLAorICBVUCBBUyBwcmljZSA+IFBSRVYocHJpY2UpLAorICBET1dOIEFTIHByaWNl IDwgUFJFVihwcmljZSkKKyk7CisgY29tcGFueSAgfCAgIHRkYXRlICAgIHwgcHJpY2UgfCByb3df bnVtYmVyIHwgY291bnQgCistLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tCisgY29tcGFueTEgfCAwNy0wMS0yMDIzIHwgICAxMDAgfCAgICAgICAgICAx IHwgICAgIDQKKyBjb21wYW55MSB8IDA3LTAyLTIwMjMgfCAgIDIwMCB8ICAgICAgICAgIDIgfCAg ICAgMAorIGNvbXBhbnkxIHwgMDctMDMtMjAyMyB8ICAgMTUwIHwgICAgICAgICAgMyB8ICAgICAw CisgY29tcGFueTEgfCAwNy0wNC0yMDIzIHwgICAxNDAgfCAgICAgICAgICA0IHwgICAgIDAKKyBj b21wYW55MSB8IDA3LTA1LTIwMjMgfCAgIDE1MCB8ICAgICAgICAgIDUgfCAgICAgMAorIGNvbXBh bnkxIHwgMDctMDYtMjAyMyB8ICAgIDkwIHwgICAgICAgICAgNiB8ICAgICA0CisgY29tcGFueTEg fCAwNy0wNy0yMDIzIHwgICAxMTAgfCAgICAgICAgICA3IHwgICAgIDAKKyBjb21wYW55MSB8IDA3 LTA4LTIwMjMgfCAgIDEzMCB8ICAgICAgICAgIDggfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDkt MjAyMyB8ICAgMTIwIHwgICAgICAgICAgOSB8ICAgICAwCisgY29tcGFueTEgfCAwNy0xMC0yMDIz IHwgICAxMzAgfCAgICAgICAgIDEwIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAxLTIwMjMgfCAg ICA1MCB8ICAgICAgICAgIDEgfCAgICAgNAorIGNvbXBhbnkyIHwgMDctMDItMjAyMyB8ICAyMDAw IHwgICAgICAgICAgMiB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wMy0yMDIzIHwgIDE1MDAgfCAg ICAgICAgICAzIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA0LTIwMjMgfCAgMTQwMCB8ICAgICAg ICAgIDQgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDUtMjAyMyB8ICAxNTAwIHwgICAgICAgICAg NSB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNi0yMDIzIHwgICAgNjAgfCAgICAgICAgICA2IHwg ICAgIDQKKyBjb21wYW55MiB8IDA3LTA3LTIwMjMgfCAgMTEwMCB8ICAgICAgICAgIDcgfCAgICAg MAorIGNvbXBhbnkyIHwgMDctMDgtMjAyMyB8ICAxMzAwIHwgICAgICAgICAgOCB8ICAgICAwCisg Y29tcGFueTIgfCAwNy0wOS0yMDIzIHwgIDEyMDAgfCAgICAgICAgICA5IHwgICAgIDAKKyBjb21w YW55MiB8IDA3LTEwLTIwMjMgfCAgMTMwMCB8ICAgICAgICAgMTAgfCAgICAgMAorKDIwIHJvd3Mp CisKKy0tCistLSBTUUwgSW50ZWdyYXRpb246IEpPSU4sIENURSwgTEFURVJBTAorLS0KKy0tIEpP SU4gY2FzZQorQ1JFQVRFIFRFTVAgVEFCTEUgdDEgKGkgaW50LCB2MSBpbnQpOworQ1JFQVRFIFRF TVAgVEFCTEUgdDIgKGogaW50LCB2MiBpbnQpOworSU5TRVJUIElOVE8gdDEgVkFMVUVTKDEsMTAp OworSU5TRVJUIElOVE8gdDEgVkFMVUVTKDEsMTEpOworSU5TRVJUIElOVE8gdDEgVkFMVUVTKDEs MTIpOworSU5TRVJUIElOVE8gdDIgVkFMVUVTKDIsMTApOworSU5TRVJUIElOVE8gdDIgVkFMVUVT KDIsMTEpOworSU5TRVJUIElOVE8gdDIgVkFMVUVTKDIsMTIpOworU0VMRUNUICogRlJPTSB0MSwg dDIgV0hFUkUgdDEudjEgPD0gMTEgQU5EIHQyLnYyIDw9IDExOworIGkgfCB2MSB8IGogfCB2MiAK Ky0tLSstLS0tKy0tLSstLS0tCisgMSB8IDEwIHwgMiB8IDEwCisgMSB8IDEwIHwgMiB8IDExCisg MSB8IDExIHwgMiB8IDEwCisgMSB8IDExIHwgMiB8IDExCisoNCByb3dzKQorCitTRUxFQ1QgKiwg Y291bnQoKikgT1ZFUiB3IEZST00gdDEsIHQyCitXSU5ET1cgdyBBUyAoCisgUEFSVElUSU9OIEJZ IHQxLmkKKyBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyBJTklUSUFMCisgUEFUVEVSTiAoQSkKKyBERUZJTkUKKyBBIEFTIHYxIDw9IDExIEFORCB2MiA8 PSAxMQorKTsKKyBpIHwgdjEgfCBqIHwgdjIgfCBjb3VudCAKKy0tLSstLS0tKy0tLSstLS0tKy0t LS0tLS0KKyAxIHwgMTAgfCAyIHwgMTAgfCAgICAgMQorIDEgfCAxMCB8IDIgfCAxMSB8ICAgICAx CisgMSB8IDEwIHwgMiB8IDEyIHwgICAgIDAKKyAxIHwgMTEgfCAyIHwgMTAgfCAgICAgMQorIDEg fCAxMSB8IDIgfCAxMSB8ICAgICAxCisgMSB8IDExIHwgMiB8IDEyIHwgICAgIDAKKyAxIHwgMTIg fCAyIHwgMTAgfCAgICAgMAorIDEgfCAxMiB8IDIgfCAxMSB8ICAgICAwCisgMSB8IDEyIHwgMiB8 IDEyIHwgICAgIDAKKyg5IHJvd3MpCisKKy0tIFdJVEggY2FzZQorV0lUSCB3c3RvY2sgQVMgKAor ICBTRUxFQ1QgKiBGUk9NIHN0b2NrIFdIRVJFIHRkYXRlIDwgJzIwMjMtMDctMDgnCispCitTRUxF Q1QgdGRhdGUsIHByaWNlLAorZmlyc3RfdmFsdWUodGRhdGUpIE9WRVIgdywKK2NvdW50KCopIE9W RVIgdworIEZST00gd3N0b2NrCisgV0lORE9XIHcgQVMgKAorIFBBUlRJVElPTiBCWSBjb21wYW55 CisgT1JERVIgQlkgdGRhdGUKKyBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyBJTklUSUFMCisgUEFUVEVSTiAoU1RBUlQgVVArIERPV04rKQorIERFRklO RQorICBTVEFSVCBBUyBUUlVFLAorICBVUCBBUyBwcmljZSA+IFBSRVYocHJpY2UpLAorICBET1dO IEFTIHByaWNlIDwgUFJFVihwcmljZSkKKyk7CisgICB0ZGF0ZSAgICB8IHByaWNlIHwgZmlyc3Rf dmFsdWUgfCBjb3VudCAKKy0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LQorIDA3LTAxLTIwMjMgfCAgIDEwMCB8IDA3LTAxLTIwMjMgIHwgICAgIDQKKyAwNy0wMi0yMDIz IHwgICAyMDAgfCAgICAgICAgICAgICB8ICAgICAwCisgMDctMDMtMjAyMyB8ICAgMTUwIHwgICAg ICAgICAgICAgfCAgICAgMAorIDA3LTA0LTIwMjMgfCAgIDE0MCB8ICAgICAgICAgICAgIHwgICAg IDAKKyAwNy0wNS0yMDIzIHwgICAxNTAgfCAgICAgICAgICAgICB8ICAgICAwCisgMDctMDYtMjAy MyB8ICAgIDkwIHwgICAgICAgICAgICAgfCAgICAgMAorIDA3LTA3LTIwMjMgfCAgIDExMCB8ICAg ICAgICAgICAgIHwgICAgIDAKKyAwNy0wMS0yMDIzIHwgICAgNTAgfCAwNy0wMS0yMDIzICB8ICAg ICA0CisgMDctMDItMjAyMyB8ICAyMDAwIHwgICAgICAgICAgICAgfCAgICAgMAorIDA3LTAzLTIw MjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyAwNy0wNC0yMDIzIHwgIDE0MDAgfCAg ICAgICAgICAgICB8ICAgICAwCisgMDctMDUtMjAyMyB8ICAxNTAwIHwgICAgICAgICAgICAgfCAg ICAgMAorIDA3LTA2LTIwMjMgfCAgICA2MCB8ICAgICAgICAgICAgIHwgICAgIDAKKyAwNy0wNy0y MDIzIHwgIDExMDAgfCAgICAgICAgICAgICB8ICAgICAwCisoMTQgcm93cykKKworLS0gUmVTY2Fu IHRlc3Q6IExBVEVSQUwgam9pbiBmb3JjZXMgV2luZG93QWdnIHJlc2NhbiB3aXRoIFJQUgorLS0g VGVzdHMgRXhlY1JlU2NhbldpbmRvd0FnZyBjbGVhcmluZyBuYXZfc2xvdAorU0VMRUNUIGcueCwg c3ViLioKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIpIGcoeCksCitMQVRFUkFMICgKKyAgU0VM RUNUIGlkLCBwcmljZSwgY291bnQoKikgT1ZFUiB3IEFTIGMKKyAgRlJPTSAoVkFMVUVTICgxLCAx MDApLCAoMiwgMjAwKSwgKDMsIDE1MCkpIEFTIHQoaWQsIHByaWNlKQorICBXSEVSRSBpZCA8PSBn LnggKyAxCisgIFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKFNUQVJU IFVQKykKKyAgICBERUZJTkUKKyAgICAgIFNUQVJUIEFTIFRSVUUsCisgICAgICBVUCBBUyBwcmlj ZSA+IFBSRVYocHJpY2UpCisgICkKKykgc3ViCitPUkRFUiBCWSBnLngsIHN1Yi5pZDsKKyB4IHwg aWQgfCBwcmljZSB8IGMgCistLS0rLS0tLSstLS0tLS0tKy0tLQorIDEgfCAgMSB8ICAgMTAwIHwg MgorIDEgfCAgMiB8ICAgMjAwIHwgMAorIDIgfCAgMSB8ICAgMTAwIHwgMgorIDIgfCAgMiB8ICAg MjAwIHwgMAorIDIgfCAgMyB8ICAgMTUwIHwgMAorKDUgcm93cykKKworLS0gUFJFViBoYXMgbXVs dGlwbGUgY29sdW1uIHJlZmVyZW5jZQorQ1JFQVRFIFRFTVAgVEFCTEUgcnByMSAoaWQgSU5URUdF UiwgaSBTRVJJQUwsIGogSU5URUdFUik7CitJTlNFUlQgSU5UTyBycHIxKGlkLCBqKSBTRUxFQ1Qg MSwgZyoyIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwKSBBUyBnOworU0VMRUNUIGlkLCBpLCBq LCBjb3VudCgqKSBPVkVSIHcKKyBGUk9NIHJwcjEKKyBXSU5ET1cgdyBBUyAoCisgUEFSVElUSU9O IEJZIGlkCisgT1JERVIgQlkgaQorIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworIElOSVRJQUwK KyBQQVRURVJOIChTVEFSVCBDT05EKykKKyBERUZJTkUKKyAgU1RBUlQgQVMgVFJVRSwKKyAgQ09O RCBBUyBQUkVWKGkgKyBqICsgMSkgPCAxMAorKTsKKyBpZCB8IGkgIHwgaiAgfCBjb3VudCAKKy0t LS0rLS0tLSstLS0tKy0tLS0tLS0KKyAgMSB8ICAxIHwgIDIgfCAgICAgMworICAxIHwgIDIgfCAg NCB8ICAgICAwCisgIDEgfCAgMyB8ICA2IHwgICAgIDAKKyAgMSB8ICA0IHwgIDggfCAgICAgMAor ICAxIHwgIDUgfCAxMCB8ICAgICAwCisgIDEgfCAgNiB8IDEyIHwgICAgIDAKKyAgMSB8ICA3IHwg MTQgfCAgICAgMAorICAxIHwgIDggfCAxNiB8ICAgICAwCisgIDEgfCAgOSB8IDE4IHwgICAgIDAK KyAgMSB8IDEwIHwgMjAgfCAgICAgMAorKDEwIHJvd3MpCisKKy0tCistLSBMYXJnZS1zY2FsZSAv IHNjYWxhYmlsaXR5IHRlc3RzCistLQorLS0gU21va2UgdGVzdCBmb3IgbGFyZ2VyIHBhcnRpdGlv bnMuCitXSVRIIHMgQVMgKAorIFNFTEVDVCB2LCBjb3VudCgqKSBPVkVSIHcgQVMgYworIEZST00g KFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwgNTAwMCkgdikKKyBXSU5ET1cgdyBBUyAoCisgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICBBRlRFUiBN QVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgSU5JVElBTAorICBQQVRURVJOICggcisgKQorICBE RUZJTkUgciBBUyBUUlVFCisgKQorKQorLS0gU2hvdWxkIGJlIGV4YWN0bHkgb25lIGxvbmcgbWF0 Y2ggYWNyb3NzIGFsbCByb3dzLgorU0VMRUNUICogRlJPTSBzIFdIRVJFIGMgPiAwOworIHYgfCAg YyAgIAorLS0tKy0tLS0tLQorIDEgfCA1MDAwCisoMSByb3cpCisKK1dJVEggcyBBUyAoCisgU0VM RUNUIHYsIGNvdW50KCopIE9WRVIgdyBBUyBjCisgRlJPTSAoU0VMRUNUIGdlbmVyYXRlX3Nlcmll cygxLCA1MDAwKSB2KQorIFdJTkRPVyB3IEFTICgKKyAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJP VworICBJTklUSUFMCisgIFBBVFRFUk4gKCByICkKKyAgREVGSU5FIHIgQVMgVFJVRQorICkKKykK Ky0tIEV2ZXJ5IHJvdyBzaG91bGQgYmUgaXRzIG93biBtYXRjaC4KK1NFTEVDVCBjb3VudCgqKSBG Uk9NIHMgV0hFUkUgYyA+IDA7CisgY291bnQgCistLS0tLS0tCisgIDUwMDAKKygxIHJvdykKKwor LS0gTGFyZ2UgcGFydGl0aW9uIHRlc3Q6IDEwMEsgcm93cyB3aXRoIEErIEIqIEN7MTAwMDAsfSBw YXR0ZXJuCistLSBUZXN0cyB0aGF0IGludDMyIGNvdW50IGRvZXNuJ3Qgb3ZlcmZsb3cgd2l0aCBs YXJnZSByZXBldGl0aW9ucworV0lUSCBkYXRhIEFTICgKKyBTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVz KDAsIDEwMDAwMCkgQVMgdgorKSwKK3Jlc3VsdCBBUyAoCisgU0VMRUNUIHYsCisgICAgICAgIGNv dW50KCopIE9WRVIgdyBBUyBtYXRjaF9sZW4sCisgICAgICAgIGZpcnN0X3ZhbHVlKHYpIE9WRVIg dyBBUyBtYXRjaF9maXJzdCwKKyAgICAgICAgbGFzdF92YWx1ZSh2KSBPVkVSIHcgQVMgbWF0Y2hf bGFzdAorIEZST00gZGF0YQorIFdJTkRPVyB3IEFTICgKKyAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNU IFJPVworICBJTklUSUFMCisgIFBBVFRFUk4gKEErIEIqIEN7MTAwMDAsfSkKKyAgREVGSU5FCisg ICBBIEFTIHYgPCAzMzMzMywKKyAgIEIgQVMgdiA+PSAzMzMzMyBBTkQgdiA8IDY2NjY2LAorICAg QyBBUyB2ID49IDY2NjY2IEFORCB2IDwgOTk5OTkKKyApCispCistLSBTaG91bGQgbWF0Y2g6IEEg KDMzMzMzIHJvd3MpICsgQiAoMzMzMzMgcm93cykgKyBDICgzMzMzMyByb3dzKSA9IDk5OTk5IHJv d3MKK1NFTEVDVCBtYXRjaF9maXJzdCwgbWF0Y2hfbGFzdCwgbWF0Y2hfbGVuIEZST00gcmVzdWx0 IFdIRVJFIG1hdGNoX2xlbiA+IDA7CisgbWF0Y2hfZmlyc3QgfCBtYXRjaF9sYXN0IHwgbWF0Y2hf bGVuIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgICAgICAgICAg MCB8ICAgICAgOTk5OTggfCAgICAgOTk5OTkKKygxIHJvdykKKworLS0gSklUIFBSRVYvTkVYVCBu YXZpZ2F0aW9uIHRlc3Q6IDEwMEsgcm93cyB3aXRoIFBSRVYgaW4gREVGSU5FLgorLS0gRXhlcmNp c2VzIEVFT1BfUlBSX05BVl9TRVQvUkVTVE9SRSBKSVQgY29kZSBwYXRocyAoaGFzX3Jwcl9uYXYg cmVsb2FkKQorLS0gYXQgc2NhbGUuIFYtc2hhcGU6IHByaWNlIHJpc2VzIHRoZW4gZmFsbHMsIHJl cGVhdGVkIGFjcm9zcyBwYXJ0aXRpb24uCitTRVQgaml0ID0gb247CitTRVQgaml0X2Fib3ZlX2Nv c3QgPSAwOworV0lUSCBkYXRhIEFTICgKKyBTRUxFQ1QgaSwgYWJzKDUwMDAwIC0gaSkgQVMgcHJp Y2UKKyBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDAwMDApIGkKKyksCityZXN1bHQgQVMgKAor IFNFTEVDVCBpLCBwcmljZSwKKyAgICAgICAgY291bnQoKikgT1ZFUiB3IEFTIG1hdGNoX2xlbiwK KyAgICAgICAgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdyBBUyBtYXRjaF9maXJzdAorIEZST00g ZGF0YQorIFdJTkRPVyB3IEFTICgKKyAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICBJTklU SUFMCisgIFBBVFRFUk4gKERPV04rIFVQKykKKyAgREVGSU5FCisgICBET1dOIEFTIHByaWNlIDwg UFJFVihwcmljZSksCisgICBVUCBBUyBwcmljZSA+IFBSRVYocHJpY2UpCisgKQorKQorU0VMRUNU IGNvdW50KCopIEFTIG1hdGNoZWRfcm93cywgbWF4KG1hdGNoX2xlbikgQVMgbG9uZ2VzdF9tYXRj aAorRlJPTSByZXN1bHQgV0hFUkUgbWF0Y2hfbGVuID4gMDsKKyBtYXRjaGVkX3Jvd3MgfCBsb25n ZXN0X21hdGNoIAorLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAx IHwgICAgICAgICA5OTk5OQorKDEgcm93KQorCitSRVNFVCBqaXRfYWJvdmVfY29zdDsKK1JFU0VU IGppdDsKKy0tIEpJVCBjb21wb3VuZCBuYXZpZ2F0aW9uIHRlc3QKK1NFVCBqaXQgPSBvbjsKK1NF VCBqaXRfYWJvdmVfY29zdCA9IDA7CitTRUxFQ1QgY291bnQoKikgQVMgbWF0Y2hlZF9yb3dzCitG Uk9NICgKKyBTRUxFQ1QgdiwgY291bnQoKikgT1ZFUiB3IEFTIG1hdGNoX2xlbgorIEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDEwMDApIEFTIHQodikKKyBXSU5ET1cgdyBBUyAoCisgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICBBRlRFUiBNQVRDSCBT S0lQIFBBU1QgTEFTVCBST1cKKyAgUEFUVEVSTiAoQSBCKykKKyAgREVGSU5FIEEgQVMgVFJVRSwg QiBBUyBQUkVWKEZJUlNUKHYpLCAxKSA+IDAKKyApCispIHN1YiBXSEVSRSBtYXRjaF9sZW4gPiAw OworIG1hdGNoZWRfcm93cyAKKy0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAxCisoMSByb3cp CisKK1JFU0VUIGppdF9hYm92ZV9jb3N0OworUkVTRVQgaml0OworLS0KKy0tIElHTk9SRSBOVUxM UworLS0KKy0tIG5vIE5VTEwgcm93cyBjYXNlLiBUaGUgcmVzdWx0IHNob3VsZCBiZSBpZGVudGlj YWwgd2l0aCAiYmFzaWMgdGVzdCB1c2luZyBQUkVWIgorU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBw cmljZSwgZmlyc3RfdmFsdWUocHJpY2UpIElHTk9SRSBOVUxMUyBPVkVSIHcsCisgbGFzdF92YWx1 ZShwcmljZSkgSUdOT1JFIE5VTExTIE9WRVIgdywKKyBudGhfdmFsdWUodGRhdGUsIDIpIElHTk9S RSBOVUxMUyBPVkVSIHcgQVMgbnRoX3NlY29uZAorIEZST00gc3RvY2sKKyBXSU5ET1cgdyBBUyAo CisgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyBJTklUSUFMCisgUEFUVEVSTiAoU1RBUlQgVVArIERPV04rKQor IERFRklORQorICBTVEFSVCBBUyBUUlVFLAorICBVUCBBUyBwcmljZSA+IFBSRVYocHJpY2UpLAor ICBET1dOIEFTIHByaWNlIDwgUFJFVihwcmljZSkKKyk7CisgY29tcGFueSAgfCAgIHRkYXRlICAg IHwgcHJpY2UgfCBmaXJzdF92YWx1ZSB8IGxhc3RfdmFsdWUgfCBudGhfc2Vjb25kIAorLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0KKyBjb21wYW55MSB8IDA3LTAxLTIwMjMgfCAgIDEwMCB8ICAgICAgICAgMTAwIHwg ICAgICAgIDE0MCB8IDA3LTAyLTIwMjMKKyBjb21wYW55MSB8IDA3LTAyLTIwMjMgfCAgIDIwMCB8 ICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAorIGNvbXBhbnkxIHwgMDctMDMtMjAyMyB8ICAg MTUwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgCisgY29tcGFueTEgfCAwNy0wNC0yMDIz IHwgICAxNDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAKKyBjb21wYW55MSB8IDA3LTA1 LTIwMjMgfCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAorIGNvbXBhbnkxIHwg MDctMDYtMjAyMyB8ICAgIDkwIHwgICAgICAgICAgOTAgfCAgICAgICAgMTIwIHwgMDctMDctMjAy MworIGNvbXBhbnkxIHwgMDctMDctMjAyMyB8ICAgMTEwIHwgICAgICAgICAgICAgfCAgICAgICAg ICAgIHwgCisgY29tcGFueTEgfCAwNy0wOC0yMDIzIHwgICAxMzAgfCAgICAgICAgICAgICB8ICAg ICAgICAgICAgfCAKKyBjb21wYW55MSB8IDA3LTA5LTIwMjMgfCAgIDEyMCB8ICAgICAgICAgICAg IHwgICAgICAgICAgICB8IAorIGNvbXBhbnkxIHwgMDctMTAtMjAyMyB8ICAgMTMwIHwgICAgICAg ICAgICAgfCAgICAgICAgICAgIHwgCisgY29tcGFueTIgfCAwNy0wMS0yMDIzIHwgICAgNTAgfCAg ICAgICAgICA1MCB8ICAgICAgIDE0MDAgfCAwNy0wMi0yMDIzCisgY29tcGFueTIgfCAwNy0wMi0y MDIzIHwgIDIwMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAKKyBjb21wYW55MiB8IDA3 LTAzLTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAorIGNvbXBhbnky IHwgMDctMDQtMjAyMyB8ICAxNDAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgCisgY29t cGFueTIgfCAwNy0wNS0yMDIzIHwgIDE1MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAK KyBjb21wYW55MiB8IDA3LTA2LTIwMjMgfCAgICA2MCB8ICAgICAgICAgIDYwIHwgICAgICAgMTIw MCB8IDA3LTA3LTIwMjMKKyBjb21wYW55MiB8IDA3LTA3LTIwMjMgfCAgMTEwMCB8ICAgICAgICAg ICAgIHwgICAgICAgICAgICB8IAorIGNvbXBhbnkyIHwgMDctMDgtMjAyMyB8ICAxMzAwIHwgICAg ICAgICAgICAgfCAgICAgICAgICAgIHwgCisgY29tcGFueTIgfCAwNy0wOS0yMDIzIHwgIDEyMDAg fCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAKKyBjb21wYW55MiB8IDA3LTEwLTIwMjMgfCAg MTMwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8IAorKDIwIHJvd3MpCisKKy0tIG50aF92 YWx1ZSB3aXRoIElHTk9SRSBOVUxMUyBvcHRpb24gd2FudHMgdG8gZmluZCB0aGUgc2Vjb25kIHJv dyBidXQKKy0tIGR1ZSB0byBhIE5VTEwgaW4gdGhlIG1pZGRsZSwgaXQgcmV0dXJucyB0aGUgdGhp cmQgcm93LgorV0lUSCBkYXRhIEFTICgKKyBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgKDEwLCAx KSwgKDExLCBOVUxMKSwgKDEyLCAzKSwgKDEzLCA0KQorICApIEFTIHQoZ2lkLCBpZCkpCisgIFNF TEVDVCBnaWQsIGlkLCBudGhfdmFsdWUoaWQsIDIpIElHTk9SRSBOVUxMUyBPVkVSIHcgQVMgc2Vj b25kX3ZhbCwKKyAgYXJyYXlfYWdnKGlkKSBPVkVSIHcKKyAgRlJPTSBkYXRhCisgIFdJTkRPVyB3 IEFTICgKKyAgIE9SREVSIEJZIGdpZAorICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg IFBBVFRFUk4gKEErKQorICAgREVGSU5FIEEgQVMgZ2lkIDwgMTMKKyAgKTsKKyBnaWQgfCBpZCB8 IHNlY29uZF92YWwgfCBhcnJheV9hZ2cgIAorLS0tLS0rLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCisgIDEwIHwgIDEgfCAgICAgICAgICAzIHwgezEsTlVMTCwzfQorICAxMSB8ICAgIHwg ICAgICAgICAgICB8IAorICAxMiB8ICAzIHwgICAgICAgICAgICB8IAorICAxMyB8ICA0IHwgICAg ICAgICAgICB8IAorKDQgcm93cykKKworLS0gbnRoX3ZhbHVlIHdpdGggSUdOT1JFIE5VTExTIG9w dGlvbiB3YW50cyB0byBmaW5kIHRoZSB0aGlyZCByb3cgYnV0CistLSBkdWUgdG8gYSBOVUxMIGlu IHRoZSBtaWRkbGUsIGl0IHJlYWNoZXMgdGhlIGVuZCBvZiByZWR1Y2VkIGZyYW1lIGFuZAorLS0g cmV0dXJucyBOVUxMCitXSVRIIGRhdGEgQVMgKAorIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAo MTAsIDEpLCAoMTEsIE5VTEwpLCAoMTIsIDMpLCAoMTMsIDQpCisgICkgQVMgdChnaWQsIGlkKSkK KyAgU0VMRUNUIGdpZCwgaWQsIG50aF92YWx1ZShpZCwgMykgSUdOT1JFIE5VTExTIE9WRVIgdyBB UyB0aHJpZF92YWwsCisgIGFycmF5X2FnZyhpZCkgT1ZFUiB3CisgIEZST00gZGF0YQorICBXSU5E T1cgdyBBUyAoCisgICBPUkRFUiBCWSBnaWQKKyAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X CisgICBQQVRURVJOIChBKykKKyAgIERFRklORSBBIEFTIGdpZCA8IDEzCisgICk7CisgZ2lkIHwg aWQgfCB0aHJpZF92YWwgfCBhcnJheV9hZ2cgIAorLS0tLS0rLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0KKyAgMTAgfCAgMSB8ICAgICAgICAgICB8IHsxLE5VTEwsM30KKyAgMTEgfCAgICB8 ICAgICAgICAgICB8IAorICAxMiB8ICAzIHwgICAgICAgICAgIHwgCisgIDEzIHwgIDQgfCAgICAg ICAgICAgfCAKKyg0IHJvd3MpCisKKy0tIG50aF92YWx1ZSBiZXlvbmQgcmVkdWNlZCBmcmFtZSB3 aXRoIElHTk9SRSBOVUxMUworLS0gVGVzdHMgaWdub3JlbnVsbHNfZ2V0ZnVuY2FyZ2luZnJhbWUg ZWFybHkgb3V0LW9mLWZyYW1lIGNoZWNrCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLAor IG50aF92YWx1ZShwcmljZSwgNSkgSUdOT1JFIE5VTExTIE9WRVIgdyBBUyBudGhfNV9pbgorRlJP TSBzdG9jaworV0lORE9XIHcgQVMgKAorIFBBUlRJVElPTiBCWSBjb21wYW55CisgT1JERVIgQlkg dGRhdGUKKyBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyBQQVRURVJOIChTVEFSVCBVUCsgRE9X TispCisgREVGSU5FCisgIFNUQVJUIEFTIFRSVUUsCisgIFVQIEFTIHByaWNlID4gUFJFVihwcmlj ZSksCisgIERPV04gQVMgcHJpY2UgPCBQUkVWKHByaWNlKQorKTsKKyBjb21wYW55ICB8ICAgdGRh dGUgICAgfCBwcmljZSB8IG50aF81X2luIAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LSstLS0tLS0tLS0tCisgY29tcGFueTEgfCAwNy0wMS0yMDIzIHwgICAxMDAgfCAgICAgICAgIAor IGNvbXBhbnkxIHwgMDctMDItMjAyMyB8ICAgMjAwIHwgICAgICAgICAKKyBjb21wYW55MSB8IDA3 LTAzLTIwMjMgfCAgIDE1MCB8ICAgICAgICAgCisgY29tcGFueTEgfCAwNy0wNC0yMDIzIHwgICAx NDAgfCAgICAgICAgIAorIGNvbXBhbnkxIHwgMDctMDUtMjAyMyB8ICAgMTUwIHwgICAgICAgICAK KyBjb21wYW55MSB8IDA3LTA2LTIwMjMgfCAgICA5MCB8ICAgICAgICAgCisgY29tcGFueTEgfCAw Ny0wNy0yMDIzIHwgICAxMTAgfCAgICAgICAgIAorIGNvbXBhbnkxIHwgMDctMDgtMjAyMyB8ICAg MTMwIHwgICAgICAgICAKKyBjb21wYW55MSB8IDA3LTA5LTIwMjMgfCAgIDEyMCB8ICAgICAgICAg CisgY29tcGFueTEgfCAwNy0xMC0yMDIzIHwgICAxMzAgfCAgICAgICAgIAorIGNvbXBhbnkyIHwg MDctMDEtMjAyMyB8ICAgIDUwIHwgICAgICAgICAKKyBjb21wYW55MiB8IDA3LTAyLTIwMjMgfCAg MjAwMCB8ICAgICAgICAgCisgY29tcGFueTIgfCAwNy0wMy0yMDIzIHwgIDE1MDAgfCAgICAgICAg IAorIGNvbXBhbnkyIHwgMDctMDQtMjAyMyB8ICAxNDAwIHwgICAgICAgICAKKyBjb21wYW55MiB8 IDA3LTA1LTIwMjMgfCAgMTUwMCB8ICAgICAgICAgCisgY29tcGFueTIgfCAwNy0wNi0yMDIzIHwg ICAgNjAgfCAgICAgICAgIAorIGNvbXBhbnkyIHwgMDctMDctMjAyMyB8ICAxMTAwIHwgICAgICAg ICAKKyBjb21wYW55MiB8IDA3LTA4LTIwMjMgfCAgMTMwMCB8ICAgICAgICAgCisgY29tcGFueTIg fCAwNy0wOS0yMDIzIHwgIDEyMDAgfCAgICAgICAgIAorIGNvbXBhbnkyIHwgMDctMTAtMjAyMyB8 ICAxMzAwIHwgICAgICAgICAKKygyMCByb3dzKQorCistLSBJR05PUkUgTlVMTFMgKyBmaXJzdF92 YWx1ZSB3aGVyZSBmaXJzdCB2YWx1ZSBpbiByZWR1Y2VkIGZyYW1lIGlzIE5VTEwKK1dJVEggZGF0 YSBBUyAoCisgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICgxLCBOVUxMKSwgKDIsIE5VTEwpLCAo MywgMzApLCAoNCwgNDApCisgKSBBUyB0KGlkLCB2YWwpKQorU0VMRUNUIGlkLCB2YWwsCisgZmly c3RfdmFsdWUodmFsKSBJR05PUkUgTlVMTFMgT1ZFUiB3IEFTIGZ2X2lnbnVsbCwKKyBjb3VudCgq KSBPVkVSIHcKK0ZST00gZGF0YQorV0lORE9XIHcgQVMgKAorIE9SREVSIEJZIGlkCisgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgQUZURVIgTUFUQ0gg U0tJUCBQQVNUIExBU1QgUk9XCisgUEFUVEVSTiAoQSspCisgREVGSU5FIEEgQVMgVFJVRQorKTsK KyBpZCB8IHZhbCB8IGZ2X2lnbnVsbCB8IGNvdW50IAorLS0tLSstLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tCisgIDEgfCAgICAgfCAgICAgICAgMzAgfCAgICAgNAorICAyIHwgICAgIHwgICAgICAg ICAgIHwgICAgIDAKKyAgMyB8ICAzMCB8ICAgICAgICAgICB8ICAgICAwCisgIDQgfCAgNDAgfCAg ICAgICAgICAgfCAgICAgMAorKDQgcm93cykKKworLS0gSUdOT1JFIE5VTExTICsgYWxsIHZhbHVl cyBOVUxMIGluIHJlZHVjZWQgZnJhbWUKK1dJVEggZGF0YSBBUyAoCisgU0VMRUNUICogRlJPTSAo VkFMVUVTCisgICgxLCBOVUxMKSwgKDIsIE5VTEwpLCAoMywgTlVMTCkKKyApIEFTIHQoaWQsIHZh bCkpCitTRUxFQ1QgaWQsIHZhbCwKKyBmaXJzdF92YWx1ZSh2YWwpIElHTk9SRSBOVUxMUyBPVkVS IHcgQVMgZnZfaWdudWxsLAorIGxhc3RfdmFsdWUodmFsKSBJR05PUkUgTlVMTFMgT1ZFUiB3IEFT IGx2X2lnbnVsbCwKKyBjb3VudCgqKSBPVkVSIHcKK0ZST00gZGF0YQorV0lORE9XIHcgQVMgKAor IE9SREVSIEJZIGlkCisgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgUEFUVEVSTiAoQSspCisg REVGSU5FIEEgQVMgVFJVRQorKTsKKyBpZCB8IHZhbCB8IGZ2X2lnbnVsbCB8IGx2X2lnbnVsbCB8 IGNvdW50IAorLS0tLSstLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tCisgIDEg fCAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgMworICAyIHwgICAgIHwgICAgICAg ICAgIHwgICAgICAgICAgIHwgICAgIDAKKyAgMyB8ICAgICB8ICAgICAgICAgICB8ICAgICAgICAg ICB8ICAgICAwCisoMyByb3dzKQorCistLQorLS0gbGFzdF92YWx1ZSBJR05PUkUgTlVMTFMgd2l0 aCByZWR1Y2VkIGZyYW1lIGNvbnRhaW5pbmcgYWxsIE5VTExzCistLSBFeGVyY2lzZXMgaWdub3Jl bnVsbHNfZ2V0ZnVuY2FyZ2luZnJhbWUgU0VFS19UQUlMIG91dC1vZi1mcmFtZSBwYXRoCistLSB3 aGVuIG5vdG51bGxfcmVscG9zID49IG51bV9yZWR1Y2VkX2ZyYW1lLgorLS0KK0NSRUFURSBURU1Q IFRBQkxFIHJwcl9udWxsdmFsIChpZCBJTlQsIHZhbCBJTlQpOworSU5TRVJUIElOVE8gcnByX251 bGx2YWwgVkFMVUVTICgxLCAxMCksICgyLCBOVUxMKSwgKDMsIE5VTEwpLCAoNCwgMjApOworU0VM RUNUIGlkLCB2YWwsCisgICAgICAgbGFzdF92YWx1ZSh2YWwpIElHTk9SRSBOVUxMUyBPVkVSIHcg QVMgbHZfaWdudWxsLAorICAgICAgIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX251 bGx2YWwKK1dJTkRPVyB3IEFTICgKKyAgT1JERVIgQlkgaWQKKyAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBM QVNUIFJPVworICBQQVRURVJOIChBIEIrKQorICBERUZJTkUKKyAgICBBIEFTIHZhbCBJUyBOT1Qg TlVMTCwKKyAgICBCIEFTIHZhbCBJUyBOVUxMCispOworIGlkIHwgdmFsIHwgbHZfaWdudWxsIHwg Y250IAorLS0tLSstLS0tLSstLS0tLS0tLS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAgICAgIDEw IHwgICAzCisgIDIgfCAgICAgfCAgICAgICAgICAgfCAgIDAKKyAgMyB8ICAgICB8ICAgICAgICAg ICB8ICAgMAorICA0IHwgIDIwIHwgICAgICAgICAgIHwgICAwCisoNCByb3dzKQorCistLQorLS0g TlVMTCBoYW5kbGluZworLS0KK0NSRUFURSBURU1QIFRBQkxFIHN0b2NrX251bGwgKGNvbXBhbnkg VEVYVCwgdGRhdGUgREFURSwgcHJpY2UgSU5URUdFUik7CitJTlNFUlQgSU5UTyBzdG9ja19udWxs IFZBTFVFUyAoJ2MxJywgJzIwMjMtMDctMDEnLCAxMDApOworSU5TRVJUIElOVE8gc3RvY2tfbnVs bCBWQUxVRVMgKCdjMScsICcyMDIzLTA3LTAyJywgTlVMTCk7ICAtLSBOVUxMIGluIG1pZGRsZQor SU5TRVJUIElOVE8gc3RvY2tfbnVsbCBWQUxVRVMgKCdjMScsICcyMDIzLTA3LTAzJywgMjAwKTsK K0lOU0VSVCBJTlRPIHN0b2NrX251bGwgVkFMVUVTICgnYzEnLCAnMjAyMy0wNy0wNCcsIDE1MCk7 CitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBjb3VudCgqKSBPVkVSIHcgQVMgbWF0Y2hf Y291bnQKK0ZST00gc3RvY2tfbnVsbAorV0lORE9XIHcgQVMgKAorICBQQVJUSVRJT04gQlkgY29t cGFueQorICBPUkRFUiBCWSB0ZGF0ZQorICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgUEFUVEVSTiAoU1RBUlQgVVAgRE9XTikKKyAgREVGSU5FIFNU QVJUIEFTIFRSVUUsIFVQIEFTIHByaWNlID4gUFJFVihwcmljZSksIERPV04gQVMgcHJpY2UgPAor UFJFVihwcmljZSkKKyk7CisgY29tcGFueSB8ICAgdGRhdGUgICAgfCBwcmljZSB8IG1hdGNoX2Nv dW50IAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBjMSAg ICAgIHwgMDctMDEtMjAyMyB8ICAgMTAwIHwgICAgICAgICAgIDAKKyBjMSAgICAgIHwgMDctMDIt MjAyMyB8ICAgICAgIHwgICAgICAgICAgIDAKKyBjMSAgICAgIHwgMDctMDMtMjAyMyB8ICAgMjAw IHwgICAgICAgICAgIDAKKyBjMSAgICAgIHwgMDctMDQtMjAyMyB8ICAgMTUwIHwgICAgICAgICAg IDAKKyg0IHJvd3MpCisKKy0tIENvbnNlY3V0aXZlIE5VTExzOiBQUkVWIG5hdmlnYXRlcyB0aHJv dWdoIE5VTEwgdmFsdWVzCitDUkVBVEUgVEVNUCBUQUJMRSBycHJfY29uc2VjX251bGwgKGlkIElO VCwgdmFsIElOVCk7CitJTlNFUlQgSU5UTyBycHJfY29uc2VjX251bGwgVkFMVUVTCisgKDEsIDEw MCksICgyLCBOVUxMKSwgKDMsIE5VTEwpLCAoNCwgTlVMTCksICg1LCAyMDApLCAoNiwgMzAwKTsK Ky0tIFBSRVYodmFsKSBJUyBOVUxMIHN1Y2NlZWRzIGZvciBib3RoIG51bGxfc2xvdCAoZmlyc3Qg cm93KSBhbmQgYWN0dWFsIE5VTEwKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMg Y250CitGUk9NIHJwcl9jb25zZWNfbnVsbAorV0lORE9XIHcgQVMgKAorIE9SREVSIEJZIGlkCisg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgUEFUVEVSTiAoQSBCKyBDKQorIERFRklORQorICBB IEFTIHZhbCBJUyBOVUxMLAorICBCIEFTIHZhbCBJUyBOVUxMIEFORCBQUkVWKHZhbCkgSVMgTlVM TCwKKyAgQyBBUyB2YWwgSVMgTk9UIE5VTEwKKyk7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0t LS0tKy0tLS0tCisgIDEgfCAxMDAgfCAgIDAKKyAgMiB8ICAgICB8ICAgNAorICAzIHwgICAgIHwg ICAwCisgIDQgfCAgICAgfCAgIDAKKyAgNSB8IDIwMCB8ICAgMAorICA2IHwgMzAwIHwgICAwCiso NiByb3dzKQorCistLSBORVhUKHZhbCkgdGhyb3VnaCBjb25zZWN1dGl2ZSBOVUxMcworU0VMRUNU IGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX2NvbnNlY19udWxsCitX SU5ET1cgdyBBUyAoCisgT1JERVIgQlkgaWQKKyBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyBQ QVRURVJOIChBIEIrIEMpCisgREVGSU5FCisgIEEgQVMgdmFsIElTIE5PVCBOVUxMLAorICBCIEFT IHZhbCBJUyBOVUxMIEFORCBORVhUKHZhbCkgSVMgTlVMTCwKKyAgQyBBUyB2YWwgSVMgTlVMTCBB TkQgTkVYVCh2YWwpIElTIE5PVCBOVUxMCispOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0t LSstLS0tLQorICAxIHwgMTAwIHwgICA0CisgIDIgfCAgICAgfCAgIDAKKyAgMyB8ICAgICB8ICAg MAorICA0IHwgICAgIHwgICAwCisgIDUgfCAyMDAgfCAgIDAKKyAgNiB8IDMwMCB8ICAgMAorKDYg cm93cykKKworRFJPUCBUQUJMRSBycHJfY29uc2VjX251bGw7CistLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFN0b2NrIFNj ZW5hcmlvIFRlc3RzICgxNjMyIHJvd3MsIHBhcnRpdGlvbmVkIHJlZ2lvbnMpCistLSA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t IENvbnNlY3V0aXZlIHJpc2luZyBkYXlzOiBmaW5kIHN0cmVha3Mgb2YgNysgZGF5cworU0VMRUNU ICogRlJPTSAoCisgICAgU0VMRUNUIGZpcnN0X3ZhbHVlKHJuKSBPVkVSIHcgQVMgc3RhcnRfcm4s CisgICAgICAgICAgIGxhc3RfdmFsdWUocm4pIE9WRVIgdyBBUyBlbmRfcm4sCisgICAgICAgICAg IGNvdW50KCopIE9WRVIgdyBBUyBkYXlzCisgICAgRlJPTSBycHJfc3RvY2sKKyAgICBXSU5ET1cg dyBBUyAoCisgICAgICAgIFBBUlRJVElPTiBCWSBwYXJ0X2lkCisgICAgICAgIE9SREVSIEJZIHJu CisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICAgICAgUEFUVEVS TiAoVVB7Nyx9KQorICAgICAgICBERUZJTkUgVVAgQVMgcHJpY2UgPiBQUkVWKHByaWNlKQorICAg ICkKKykgdCBXSEVSRSBkYXlzID4gMCBPUkRFUiBCWSBzdGFydF9ybjsKKyBzdGFydF9ybiB8IGVu ZF9ybiB8IGRheXMgCistLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLQorICAgICAgIDI5IHwgICAg IDM1IHwgICAgNworICAgICAgIDM4IHwgICAgIDQ0IHwgICAgNworICAgICAgIDk2IHwgICAgMTAy IHwgICAgNworICAgICAgMTE4IHwgICAgMTI1IHwgICAgOAorICAgICAgMzA4IHwgICAgMzE3IHwg ICAxMAorICAgICAgMzI4IHwgICAgMzM0IHwgICAgNworICAgICAgNDc1IHwgICAgNDgxIHwgICAg NworICAgICAgNDkxIHwgICAgNDk3IHwgICAgNworICAgICAgNTA5IHwgICAgNTE3IHwgICAgOQor ICAgICAgNTM2IHwgICAgNTQyIHwgICAgNworICAgICAgNTg2IHwgICAgNTkyIHwgICAgNworICAg ICAgNjQzIHwgICAgNjUwIHwgICAgOAorICAgICAgNzQwIHwgICAgNzQ2IHwgICAgNworICAgICAg NzUzIHwgICAgNzYwIHwgICAgOAorICAgICAgOTA0IHwgICAgOTEwIHwgICAgNworICAgICAgOTU2 IHwgICAgOTY1IHwgICAxMAorICAgICAgOTg1IHwgICAgOTkxIHwgICAgNworICAgICAxMDk1IHwg ICAxMTAxIHwgICAgNworICAgICAxMTA0IHwgICAxMTEwIHwgICAgNworICAgICAxMTgxIHwgICAx MTg3IHwgICAgNworICAgICAxMjIxIHwgICAxMjI4IHwgICAgOAorICAgICAxMjYyIHwgICAxMjY4 IHwgICAgNworICAgICAxMjcyIHwgICAxMjc4IHwgICAgNworICAgICAxMzczIHwgICAxMzgwIHwg ICAgOAorICAgICAxNDM0IHwgICAxNDQwIHwgICAgNworICAgICAxNDg1IHwgICAxNDkxIHwgICAg NworICAgICAxNTUzIHwgICAxNTU5IHwgICAgNworICAgICAxNTc2IHwgICAxNTgyIHwgICAgNwor ICAgICAxNjI0IHwgICAxNjMxIHwgICAgOAorKDI5IHJvd3MpCisKKy0tIFYtc2hhcGUgcmVjb3Zl cnk6IDQrIGRheXMgZGVjbGluZSBmb2xsb3dlZCBieSA0KyBkYXlzIHJpc2UKK1NFTEVDVCAqIEZS T00gKAorICAgIFNFTEVDVCBmaXJzdF92YWx1ZShybikgT1ZFUiB3IEFTIHN0YXJ0X3JuLAorICAg ICAgICAgICBsYXN0X3ZhbHVlKHJuKSBPVkVSIHcgQVMgZW5kX3JuLAorICAgICAgICAgICBmaXJz dF92YWx1ZShwcmljZSkgT1ZFUiB3IEFTIHN0YXJ0X3ByaWNlLAorICAgICAgICAgICBsYXN0X3Zh bHVlKHByaWNlKSBPVkVSIHcgQVMgZW5kX3ByaWNlLAorICAgICAgICAgICBjb3VudCgqKSBPVkVS IHcgQVMgZGF5cworICAgIEZST00gcnByX3N0b2NrCisgICAgV0lORE9XIHcgQVMgKAorICAgICAg ICBQQVJUSVRJT04gQlkgcGFydF9pZAorICAgICAgICBPUkRFUiBCWSBybgorICAgICAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgQUZU RVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgICAgIFBBVFRFUk4gKERFQ0xJTkV7NCx9 IFJJU0V7NCx9KQorICAgICAgICBERUZJTkUKKyAgICAgICAgICAgIERFQ0xJTkUgQVMgcHJpY2Ug PCBQUkVWKHByaWNlKSwKKyAgICAgICAgICAgIFJJU0UgQVMgcHJpY2UgPiBQUkVWKHByaWNlKQor ICAgICkKKykgdCBXSEVSRSBkYXlzID4gMCBPUkRFUiBCWSBzdGFydF9ybjsKKyBzdGFydF9ybiB8 IGVuZF9ybiB8IHN0YXJ0X3ByaWNlIHwgZW5kX3ByaWNlIHwgZGF5cyAKKy0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0KKyAgICAgICA4NCB8ICAgICA5 MyB8ICAgICAzMDEuMDAwIHwgICAzMDkuNzUwIHwgICAxMAorICAgICAgMTE0IHwgICAgMTI1IHwg ICAgIDM5NC41MDAgfCAgIDQxOC43NTAgfCAgIDEyCisgICAgICAxNzMgfCAgICAxODMgfCAgICAg MjYwLjAwMCB8ICAgMjgyLjAwMCB8ICAgMTEKKyAgICAgIDIwNCB8ICAgIDIxNCB8ICAgICAxNzku MDAwIHwgICAxNzEuNTAwIHwgICAxMQorICAgICAgMjYyIHwgICAgMjcxIHwgICAgIDI3Ny42MjUg fCAgIDI3NS41MDAgfCAgIDEwCisgICAgICAzMzcgfCAgICAzNDQgfCAgICAgMzA4LjI1MCB8ICAg MzA4LjEyNSB8ICAgIDgKKyAgICAgIDQzNiB8ICAgIDQ0NCB8ICAgICAgNTYuNjMwIHwgICAgNjAu MjUwIHwgICAgOQorICAgICAgNTY3IHwgICAgNTc1IHwgICAgIDEyNi41MDAgfCAgIDEyNy41MDAg fCAgICA5CisgICAgICA1OTggfCAgICA2MDcgfCAgICAgMTEyLjI1MCB8ICAgMTE2LjUwMCB8ICAg MTAKKyAgICAgIDY1MyB8ICAgIDY2MCB8ICAgICAxMjkuMzc1IHwgICAxMjguMTI1IHwgICAgOAor ICAgICAgNjYzIHwgICAgNjcxIHwgICAgIDEyNS42MzAgfCAgIDEzMC4yNTAgfCAgICA5CisgICAg ICA2ODUgfCAgICA2OTMgfCAgICAgMTIwLjEzMCB8ICAgMTI0LjAwMCB8ICAgIDkKKyAgICAgIDcx MCB8ICAgIDcxOSB8ICAgICAxNDEuMTI1IHwgICAxNDQuMTMwIHwgICAxMAorICAgICAgODMzIHwg ICAgODQxIHwgICAgIDEwNi41MDAgfCAgIDExMS4xMjUgfCAgICA5CisgICAgICA4NTMgfCAgICA4 NjIgfCAgICAgMTA1LjM3NSB8ICAgMTA3Ljc1MCB8ICAgMTAKKyAgICAgIDkzMCB8ICAgIDkzNyB8 ICAgICAgOTIuMzgwIHwgICAgOTYuMzc1IHwgICAgOAorICAgICAxMTg4IHwgICAxMTk3IHwgICAg IDEwNS4yNTAgfCAgIDEwOC4zODAgfCAgIDEwCisgICAgIDExOTggfCAgIDEyMDYgfCAgICAgMTAw LjEyNSB8ICAgMTAwLjU2MiB8ICAgIDkKKyAgICAgMTI1MCB8ICAgMTI1OSB8ICAgICAxMzEuNDM3 IHwgICAxMzAuODc1IHwgICAxMAorICAgICAxMjg1IHwgICAxMjk1IHwgICAgIDE3Ni45NDAgfCAg IDE4Mi4xOTAgfCAgIDExCisgICAgIDEyOTggfCAgIDEzMDcgfCAgICAgMTgxLjAwMCB8ICAgMTc4 LjU2MiB8ICAgMTAKKyAgICAgMTMxMCB8ICAgMTMyMiB8ICAgICAxODYuMzEwIHwgICAyMTIuMDAw IHwgICAxMworICAgICAxNDA1IHwgICAxNDEyIHwgICAgIDExNy44MDAgfCAgIDExNy41MDAgfCAg ICA4CisgICAgIDE0NjcgfCAgIDE0NzQgfCAgICAgIDcwLjQwMCB8ICAgIDcxLjgzMCB8ICAgIDgK KyAgICAgMTQ5NCB8ICAgMTUwMiB8ICAgICAgNzkuNzYwIHwgICAgODYuMDAwIHwgICAgOQorICAg ICAxNjAwIHwgICAxNjE4IHwgICAgICA5MC40NDAgfCAgICA3Ny4wNTAgfCAgIDE5CisoMjYgcm93 cykKKworLS0gVy1ib3R0b206IGRlY2xpbmUsIGJvdW5jZSwgcmUtZGVjbGluZSwgcmVjb3ZlcnkK K1NFTEVDVCAqIEZST00gKAorICAgIFNFTEVDVCBmaXJzdF92YWx1ZShybikgT1ZFUiB3IEFTIHN0 YXJ0X3JuLAorICAgICAgICAgICBsYXN0X3ZhbHVlKHJuKSBPVkVSIHcgQVMgZW5kX3JuLAorICAg ICAgICAgICBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3IEFTIHN0YXJ0X3ByaWNlLAorICAgICAg ICAgICBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcgQVMgZW5kX3ByaWNlLAorICAgICAgICAgICBj b3VudCgqKSBPVkVSIHcgQVMgZGF5cworICAgIEZST00gcnByX3N0b2NrCisgICAgV0lORE9XIHcg QVMgKAorICAgICAgICBQQVJUSVRJT04gQlkgcGFydF9pZAorICAgICAgICBPUkRFUiBCWSBybgor ICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgICAgIFBBVFRFUk4g KERFQ0xJTkV7Myx9IEJPVU5DRXszLH0gRElQezMsfSBSRUNPVkVSezMsfSkKKyAgICAgICAgREVG SU5FCisgICAgICAgICAgICBERUNMSU5FIEFTIHByaWNlIDwgUFJFVihwcmljZSksCisgICAgICAg ICAgICBCT1VOQ0UgQVMgcHJpY2UgPiBQUkVWKHByaWNlKSwKKyAgICAgICAgICAgIERJUCBBUyBw cmljZSA8IFBSRVYocHJpY2UpLAorICAgICAgICAgICAgUkVDT1ZFUiBBUyBwcmljZSA+IFBSRVYo cHJpY2UpCisgICAgKQorKSB0IFdIRVJFIGRheXMgPiAwIE9SREVSIEJZIHN0YXJ0X3JuOworIHN0 YXJ0X3JuIHwgZW5kX3JuIHwgc3RhcnRfcHJpY2UgfCBlbmRfcHJpY2UgfCBkYXlzIAorLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLQorICAgICAgMTM2 IHwgICAgMTUzIHwgICAgIDQ0NC4wMDAgfCAgIDQzNC4yNTAgfCAgIDE4CisgICAgICA0NTYgfCAg ICA0NjkgfCAgICAgIDY0LjUwMCB8ICAgIDY1LjEyNSB8ICAgMTQKKyAgICAgIDUyMCB8ICAgIDUz NCB8ICAgICAxMTUuMjUwIHwgICAxMTUuNzUwIHwgICAxNQorICAgICAgNjEwIHwgICAgNjIzIHwg ICAgIDEwNy4xMjUgfCAgIDEwOS4wMDAgfCAgIDE0CisgICAgICA3OTEgfCAgICA4MDIgfCAgICAg MTEzLjUwMCB8ICAgMTE4LjI1MCB8ICAgMTIKKyAgICAgIDk0MiB8ICAgIDk1MyB8ICAgICAgOTEu MjUwIHwgICAgODkuODc1IHwgICAxMgorICAgICAxMTg4IHwgICAxMjA2IHwgICAgIDEwNS4yNTAg fCAgIDEwMC41NjIgfCAgIDE5CisgICAgIDE1NjAgfCAgIDE1NzQgfCAgICAgIDg3LjQyMCB8ICAg IDkwLjAwMCB8ICAgMTUKKyg4IHJvd3MpCisKKy0tIFZvbHVtZSBzdXJnZSBzdHJlYWs6IDYrIGNv bnNlY3V0aXZlIGRheXMgb2YgaW5jcmVhc2luZyB2b2x1bWUKK1NFTEVDVCAqIEZST00gKAorICAg IFNFTEVDVCBmaXJzdF92YWx1ZShybikgT1ZFUiB3IEFTIHN0YXJ0X3JuLAorICAgICAgICAgICBs YXN0X3ZhbHVlKHJuKSBPVkVSIHcgQVMgZW5kX3JuLAorICAgICAgICAgICBmaXJzdF92YWx1ZSh2 b2x1bWUpIE9WRVIgdyBBUyBzdGFydF92b2wsCisgICAgICAgICAgIGxhc3RfdmFsdWUodm9sdW1l KSBPVkVSIHcgQVMgZW5kX3ZvbCwKKyAgICAgICAgICAgY291bnQoKikgT1ZFUiB3IEFTIGRheXMK KyAgICBGUk9NIHJwcl9zdG9jaworICAgIFdJTkRPVyB3IEFTICgKKyAgICAgICAgUEFSVElUSU9O IEJZIHBhcnRfaWQKKyAgICAgICAgT1JERVIgQlkgcm4KKyAgICAgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIEFGVEVSIE1BVENIIFNL SVAgUEFTVCBMQVNUIFJPVworICAgICAgICBQQVRURVJOIChJTklUIFNVUkdFezUsfSkKKyAgICAg ICAgREVGSU5FCisgICAgICAgICAgICBTVVJHRSBBUyB2b2x1bWUgPiBQUkVWKHZvbHVtZSkKKyAg ICApCispIHQgV0hFUkUgZGF5cyA+IDAgT1JERVIgQlkgc3RhcnRfcm47Cisgc3RhcnRfcm4gfCBl bmRfcm4gfCBzdGFydF92b2wgfCBlbmRfdm9sICB8IGRheXMgCistLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tCisgICAgICAxODYgfCAgICAxOTEgfCAgICAg MjUxMDAgfCAgICAzNTMwMCB8ICAgIDYKKyAgICAgIDI5MSB8ICAgIDI5NiB8ICAgICA1MjIwMCB8 ICAgMTg4MzAwIHwgICAgNgorICAgICAgNDA4IHwgICAgNDEzIHwgICAgMTYzMzAwIHwgICA2MTAz MDAgfCAgICA2CisgICAgICA0MzkgfCAgICA0NDQgfCAgICA0Mzg0MDAgfCAgMTA4OTIwMCB8ICAg IDYKKyAgICAgIDUwMCB8ICAgIDUwNiB8ICAgIDM3MzcwMCB8ICAxMTE0MjAwIHwgICAgNworICAg ICAgNTUxIHwgICAgNTU4IHwgICAgNjkxMTAwIHwgIDIwOTc1MDAgfCAgICA4CisgICAgICA2MzUg fCAgICA2NDAgfCAgICA0MTgzMDAgfCAgMTM4ODEwMCB8ICAgIDYKKyAgICAgIDc4MyB8ICAgIDc4 OCB8ICAgIDc2OTAwMCB8ICAxNTY0OTAwIHwgICAgNgorICAgICAgODI0IHwgICAgODMwIHwgICAg NjgyMjAwIHwgIDI0MTg3MDAgfCAgICA3CisgICAgICA5NjggfCAgICA5NzQgfCAgICA5OTMxMDAg fCAgMjM0MTIwMCB8ICAgIDcKKyAgICAgMTA3MiB8ICAgMTA3NyB8ICAgMTI1NzIwMCB8ICAyMzI3 NzAwIHwgICAgNgorICAgICAxMDc4IHwgICAxMDg0IHwgICAxNzQ4MzAwIHwgIDU1MTQzMDAgfCAg ICA3CisgICAgIDEwOTMgfCAgIDEwOTggfCAgIDI2NjQ0MDAgfCAxMzE0NTkwMCB8ICAgIDYKKyAg ICAgMTMzNCB8ICAgMTMzOSB8ICAgMzIyMDkwMCB8IDEwNTUyNjAwIHwgICAgNgorICAgICAxNTI0 IHwgICAxNTMwIHwgICAzNTYyNDAwIHwgIDcwMTIxMDAgfCAgICA3CisgICAgIDE1MzMgfCAgIDE1 MzggfCAgIDM1NDg1MDAgfCAgODU2MDgwMCB8ICAgIDYKKyAgICAgMTU3NSB8ICAgMTU4MCB8ICAg NDIyNjUwMCB8ICA2OTUyMTAwIHwgICAgNgorKDE3IHJvd3MpCisKKy0tIFZvbGF0aWxpdHkgc3F1 ZWV6ZTogY29uc2VjdXRpdmUgbmFycm93aW5nIG9mIGRhaWx5IHByaWNlIHJhbmdlCitTRUxFQ1Qg KiBGUk9NICgKKyAgICBTRUxFQ1QgZmlyc3RfdmFsdWUocm4pIE9WRVIgdyBBUyBzdGFydF9ybiwK KyAgICAgICAgICAgbGFzdF92YWx1ZShybikgT1ZFUiB3IEFTIGVuZF9ybiwKKyAgICAgICAgICAg Zmlyc3RfdmFsdWUoaGlnaCAtIGxvdykgT1ZFUiB3IEFTIHN0YXJ0X3JhbmdlLAorICAgICAgICAg ICBsYXN0X3ZhbHVlKGhpZ2ggLSBsb3cpIE9WRVIgdyBBUyBlbmRfcmFuZ2UsCisgICAgICAgICAg IGNvdW50KCopIE9WRVIgdyBBUyBkYXlzCisgICAgRlJPTSBycHJfc3RvY2sKKyAgICBXSU5ET1cg dyBBUyAoCisgICAgICAgIFBBUlRJVElPTiBCWSBwYXJ0X2lkCisgICAgICAgIE9SREVSIEJZIHJu CisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICAgICAgUEFUVEVS TiAoSU5JVCBOQVJST1d7NSx9KQorICAgICAgICBERUZJTkUKKyAgICAgICAgICAgIE5BUlJPVyBB UyAoaGlnaCAtIGxvdykgPCBQUkVWKGhpZ2gpIC0gUFJFVihsb3cpCisgICAgKQorKSB0IFdIRVJF IGRheXMgPiAwIE9SREVSIEJZIHN0YXJ0X3JuOworIHN0YXJ0X3JuIHwgZW5kX3JuIHwgc3RhcnRf cmFuZ2UgfCBlbmRfcmFuZ2UgfCBkYXlzIAorLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLQorICAgICAgMTI4IHwgICAgMTMzIHwgICAgICAxMS4wMDAg fCAgICAgMy4wMDAgfCAgICA2CisgICAgICAxNzAgfCAgICAxNzUgfCAgICAgIDEwLjI1MCB8ICAg ICAyLjc1MCB8ICAgIDYKKyAgICAgIDE5NCB8ICAgIDIwMSB8ICAgICAgMTAuMDAwIHwgICAgIDEu NjI1IHwgICAgOAorICAgICAgMjgzIHwgICAgMjg4IHwgICAgICAgNy4wMDAgfCAgICAgMi4zNzUg fCAgICA2CisgICAgICAzMjAgfCAgICAzMjUgfCAgICAgICA0Ljc1MCB8ICAgICAyLjUwMCB8ICAg IDYKKyAgICAgIDU3OCB8ICAgIDU4MyB8ICAgICAgIDIuNzUwIHwgICAgIDEuMTI1IHwgICAgNgor ICAgICAgNzI1IHwgICAgNzMxIHwgICAgICAgMy4zNzAgfCAgICAgMS4xMjUgfCAgICA3CisgICAg ICA3NzUgfCAgICA3ODAgfCAgICAgICA0LjUwMCB8ICAgICAwLjg3NSB8ICAgIDYKKyAgICAgIDkx MyB8ICAgIDkxOCB8ICAgICAgIDIuODcwIHwgICAgIDEuMjUwIHwgICAgNgorICAgICAxMTMwIHwg ICAxMTM1IHwgICAgICAgMy4wMDAgfCAgICAgMS4xMjUgfCAgICA2CisgICAgIDEzNDggfCAgIDEz NTMgfCAgICAgICA2LjYyMCB8ICAgICAxLjU2MiB8ICAgIDYKKygxMSByb3dzKQorCistLSBHYXAg dXA6IG9wZW4gc2lnbmlmaWNhbnRseSBoaWdoZXIgdGhhbiBwcmV2aW91cyBjbG9zZSAoNSUrKQor U0VMRUNUICogRlJPTSAoCisgICAgU0VMRUNUIGZpcnN0X3ZhbHVlKHJuKSBPVkVSIHcgQVMgZ2Fw X3JuLAorICAgICAgICAgICBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3IEFTIHByZXZfY2xvc2Us CisgICAgICAgICAgIGxhc3RfdmFsdWUob3BlbikgT1ZFUiB3IEFTIGdhcF9vcGVuLAorICAgICAg ICAgICBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBycHJfc3RvY2sKKyAgICBXSU5E T1cgdyBBUyAoCisgICAgICAgIFBBUlRJVElPTiBCWSBwYXJ0X2lkCisgICAgICAgIE9SREVSIEJZ IHJuCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICAgICAgUEFU VEVSTiAoUFJFVl9EQVkgR0FQX1VQKQorICAgICAgICBERUZJTkUKKyAgICAgICAgICAgIEdBUF9V UCBBUyBvcGVuID4gUFJFVihwcmljZSkgKiAxLjA1CisgICAgKQorKSB0IFdIRVJFIGNudCA+IDAg T1JERVIgQlkgZ2FwX3JuOworIGdhcF9ybiB8IHByZXZfY2xvc2UgfCBnYXBfb3BlbiB8IGNudCAK Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tCisgICAgOTg2IHwgICAgIDQ4 Ljg3NSB8ICAgNTIuODc1IHwgICAyCisgICAgOTk0IHwgICAgIDQyLjM3NSB8ICAgNDQuODgwIHwg ICAyCisgICAxMDI5IHwgICAgIDUyLjI1MCB8ICAgNTUuMDAwIHwgICAyCisgICAxMDM5IHwgICAg IDU1Ljg4MCB8ICAgNTkuMDAwIHwgICAyCisgICAxMTc3IHwgICAgMTQyLjM4MCB8ICAxNTAuNTAw IHwgICAyCisgICAxMjM4IHwgICAgMTIyLjAwMCB8ICAxMjguMjUwIHwgICAyCisgICAxMzE4IHwg ICAgMTcxLjg3NSB8ICAxOTcuMjUwIHwgICAyCisgICAxMzgzIHwgICAgMTAzLjUwMCB8ICAxMTIu MDAwIHwgICAyCisgICAxMzkyIHwgICAgIDk2LjY4NyB8ICAxMDQuMzc1IHwgICAyCisgICAxNDAx IHwgICAgMTA2LjUwMCB8ICAxMTIuMDAwIHwgICAyCisgICAxNDY0IHwgICAgIDY2LjQwMCB8ICAg NzAuMzcwIHwgICAyCisgICAxNDc3IHwgICAgIDU3LjU4MCB8ICAgNjIuMDAwIHwgICAyCisgICAx NDc5IHwgICAgIDYzLjQyMCB8ICAgNjcuNzUwIHwgICAyCisgICAxNDgxIHwgICAgIDY0LjkwMCB8 ICAgNzIuODAwIHwgICAyCisgICAxNTE3IHwgICAgIDkwLjMxMCB8ICAgOTUuMDcwIHwgICAyCiso MTUgcm93cykKKworLS0gUHJpY2Utdm9sdW1lIGRpdmVyZ2VuY2U6IHByaWNlIHJpc2luZyB3aGls ZSB2b2x1bWUgZGVjbGluaW5nIChiZWFyaXNoIHNpZ25hbCkKK1NFTEVDVCAqIEZST00gKAorICAg IFNFTEVDVCBmaXJzdF92YWx1ZShybikgT1ZFUiB3IEFTIHN0YXJ0X3JuLAorICAgICAgICAgICBs YXN0X3ZhbHVlKHJuKSBPVkVSIHcgQVMgZW5kX3JuLAorICAgICAgICAgICBmaXJzdF92YWx1ZShw cmljZSkgT1ZFUiB3IEFTIHN0YXJ0X3ByaWNlLAorICAgICAgICAgICBsYXN0X3ZhbHVlKHByaWNl KSBPVkVSIHcgQVMgZW5kX3ByaWNlLAorICAgICAgICAgICBjb3VudCgqKSBPVkVSIHcgQVMgZGF5 cworICAgIEZST00gcnByX3N0b2NrCisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBQQVJUSVRJ T04gQlkgcGFydF9pZAorICAgICAgICBPUkRFUiBCWSBybgorICAgICAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgQUZURVIgTUFUQ0gg U0tJUCBQQVNUIExBU1QgUk9XCisgICAgICAgIFBBVFRFUk4gKElOSVQgRElWRVJHRXszLH0pCisg ICAgICAgIERFRklORQorICAgICAgICAgICAgRElWRVJHRSBBUyBwcmljZSA+IFBSRVYocHJpY2Up IEFORCB2b2x1bWUgPCBQUkVWKHZvbHVtZSkKKyAgICApCispIHQgV0hFUkUgZGF5cyA+IDAgT1JE RVIgQlkgc3RhcnRfcm47Cisgc3RhcnRfcm4gfCBlbmRfcm4gfCBzdGFydF9wcmljZSB8IGVuZF9w cmljZSB8IGRheXMgCistLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tCisgICAgICAgMTAgfCAgICAgMTMgfCAgICAgMzM4LjUwMCB8ICAgMzQ5Ljc1MCB8 ICAgIDQKKyAgICAgICA0NyB8ICAgICA1MCB8ICAgICAzNTIuMDAwIHwgICAzNTguMDAwIHwgICAg NAorICAgICAgIDUzIHwgICAgIDU2IHwgICAgIDMxNC4wMDAgfCAgIDMxOS4wMDAgfCAgICA0Cisg ICAgICAgNjMgfCAgICAgNjYgfCAgICAgMjk0LjUwMCB8ICAgMzAxLjc1MCB8ICAgIDQKKyAgICAg ICA5OSB8ICAgIDEwMiB8ICAgICA0MDEuMDAwIHwgICA0MDQuMDAwIHwgICAgNAorICAgICAgMTc3 IHwgICAgMTgwIHwgICAgIDI0OC41MDAgfCAgIDI2MS43NTAgfCAgICA0CisgICAgICAyMDkgfCAg ICAyMTIgfCAgICAgMTUyLjAwMCB8ICAgMTY2LjUwMCB8ICAgIDQKKyAgICAgIDIzNyB8ICAgIDI0 MCB8ICAgICAyMDcuNTAwIHwgICAyMTUuNTAwIHwgICAgNAorICAgICAgMjc0IHwgICAgMjc3IHwg ICAgIDI1OS41MDAgfCAgIDI2NC41MDAgfCAgICA0CisgICAgICAzNDcgfCAgICAzNTAgfCAgICAg MzA2Ljc1MCB8ICAgMzEyLjAwMCB8ICAgIDQKKyAgICAgIDUzMSB8ICAgIDUzNCB8ICAgICAxMTEu ODc1IHwgICAxMTUuNzUwIHwgICAgNAorICAgICAgNTQ1IHwgICAgNTQ4IHwgICAgIDExOC4wMDAg fCAgIDEyMS4wMDAgfCAgICA0CisgICAgICA1NjEgfCAgICA1NjQgfCAgICAgMTMxLjEzMCB8ICAg MTM0LjI1MCB8ICAgIDQKKyAgICAgIDU4NiB8ICAgIDU4OSB8ICAgICAxMTAuMjUwIHwgICAxMTIu MDAwIHwgICAgNAorICAgICAgNjQ1IHwgICAgNjQ4IHwgICAgIDEyOS42MzAgfCAgIDEzMy4yNTAg fCAgICA0CisgICAgICA2NTYgfCAgICA2NjAgfCAgICAgMTI0LjUwMCB8ICAgMTI4LjEyNSB8ICAg IDUKKyAgICAgIDY3OSB8ICAgIDY4MiB8ICAgICAxMjguMDAwIHwgICAxMjkuNzUwIHwgICAgNAor ICAgICAgNzM0IHwgICAgNzM3IHwgICAgIDEyMS4zODAgfCAgIDEyMy43NTAgfCAgICA0CisgICAg ICA3NjMgfCAgICA3NjYgfCAgICAgMTUwLjc1MCB8ICAgMTU2LjUwMCB8ICAgIDQKKyAgICAgIDg0 NCB8ICAgIDg0NyB8ICAgICAxMDUuNTAwIHwgICAxMDcuODgwIHwgICAgNAorICAgICAgOTIxIHwg ICAgOTI0IHwgICAgICA5Ny4yNTAgfCAgIDEwMS4yNTAgfCAgICA0CisgICAgICA5NTYgfCAgICA5 NTkgfCAgICAgIDg0Ljg3NSB8ICAgIDg3LjUwMCB8ICAgIDQKKyAgICAgIDk2MCB8ICAgIDk2MyB8 ICAgICAgODguMjUwIHwgICAgODkuNTAwIHwgICAgNAorICAgICAgOTg3IHwgICAgOTkwIHwgICAg ICA0OS4wMDAgfCAgICA1MS41MDAgfCAgICA0CisgICAgIDEwMjMgfCAgIDEwMjYgfCAgICAgIDUz LjI1MCB8ICAgIDU0LjYyNSB8ICAgIDQKKyAgICAgMTAzMyB8ICAgMTAzNiB8ICAgICAgNTcuMTI1 IHwgICAgNTguMzgwIHwgICAgNAorICAgICAxMDYwIHwgICAxMDYzIHwgICAgICA4OS4wMDAgfCAg ICA5My42MjUgfCAgICA0CisgICAgIDEwNjYgfCAgIDEwNjkgfCAgICAgIDg5LjEzMCB8ICAgIDkz LjAwMCB8ICAgIDQKKyAgICAgMTA4NyB8ICAgMTA5MCB8ICAgICAgODkuMzc1IHwgICAgOTEuNzUw IHwgICAgNAorICAgICAxMTY1IHwgICAxMTY4IHwgICAgIDEzNy42MjUgfCAgIDE0Ni44NzUgfCAg ICA0CisgICAgIDEyMDIgfCAgIDEyMDUgfCAgICAgIDk2LjUwMCB8ICAgIDk4Ljc1MCB8ICAgIDQK KyAgICAgMTIwOSB8ICAgMTIxMiB8ICAgICAgOTYuMTI1IHwgICAxMDAuMjUwIHwgICAgNAorICAg ICAxMjIwIHwgICAxMjIzIHwgICAgIDEwNi4xMzAgfCAgIDExMi4wMDAgfCAgICA0CisgICAgIDEy MzEgfCAgIDEyMzQgfCAgICAgMTE3LjA2MiB8ICAgMTE5LjYyNSB8ICAgIDQKKyAgICAgMTI0NCB8 ICAgMTI0NyB8ICAgICAxMjIuNTAwIHwgICAxMzAuMDAwIHwgICAgNAorICAgICAxMzA0IHwgICAx MzA3IHwgICAgIDE2OS41MDAgfCAgIDE3OC41NjIgfCAgICA0CisgICAgIDEzNDIgfCAgIDEzNDUg fCAgICAgMTIyLjAwMCB8ICAgMTI0LjAwMCB8ICAgIDQKKyAgICAgMTQxNyB8ICAgMTQyMCB8ICAg ICAxMDEuOTYwIHwgICAxMDguNTMwIHwgICAgNAorICAgICAxNDMzIHwgICAxNDM2IHwgICAgICA5 MC4wMDAgfCAgICA5My43NzAgfCAgICA0CisgICAgIDE0MzcgfCAgIDE0NDAgfCAgICAgIDk2Ljk1 MCB8ICAgIDk4LjUwMCB8ICAgIDQKKyAgICAgMTQ0MyB8ICAgMTQ0NiB8ICAgICAxMjAuMjUwIHwg ICAxMjIuMjAwIHwgICAgNAorICAgICAxNDQ5IHwgICAxNDUyIHwgICAgICA3NC42NTAgfCAgICA3 Ny4xNDAgfCAgICA0CisgICAgIDE0NTUgfCAgIDE0NTggfCAgICAgIDY3LjYwMCB8ICAgIDczLjUw MCB8ICAgIDQKKyAgICAgMTQ5NyB8ICAgMTUwMCB8ICAgICAgNzYuMjUwIHwgICAgODEuNjUwIHwg ICAgNAorICAgICAxNTA1IHwgICAxNTA4IHwgICAgICA3NS44NjAgfCAgICA3OS41MTAgfCAgICA0 CisgICAgIDE1MTEgfCAgIDE1MTQgfCAgICAgIDc5Ljc1MCB8ICAgIDgxLjAyMCB8ICAgIDQKKyAg ICAgMTUxOCB8ICAgMTUyMSB8ICAgICAgOTQuMDIwIHwgICAgOTcuNzAwIHwgICAgNAorICAgICAx NTQxIHwgICAxNTQ0IHwgICAgICA4My42NTAgfCAgICA4NS4yNTAgfCAgICA0CisgICAgIDE1NDcg fCAgIDE1NTAgfCAgICAgIDgyLjIxMCB8ICAgIDg0LjA0MCB8ICAgIDQKKyAgICAgMTU4NSB8ICAg MTU4OCB8ICAgICAgOTIuNzAwIHwgICAgOTMuNTcwIHwgICAgNAorICAgICAxNTk0IHwgICAxNTk3 IHwgICAgICA5MS42MDAgfCAgICA5Mi40MTAgfCAgICA0CisgICAgIDE2MTMgfCAgIDE2MTYgfCAg ICAgIDcyLjAxMCB8ICAgIDc0LjYxMCB8ICAgIDQKKyg1MiByb3dzKQorCistLSBDb25zb2xpZGF0 aW9uIHRoZW4gYnJlYWtvdXQ6IHNpZGV3YXlzIG1vdmVtZW50IGZvbGxvd2VkIGJ5IHNoYXJwIHJp c2UKK1NFTEVDVCAqIEZST00gKAorICAgIFNFTEVDVCBmaXJzdF92YWx1ZShybikgT1ZFUiB3IEFT IHN0YXJ0X3JuLAorICAgICAgICAgICBsYXN0X3ZhbHVlKHJuKSBPVkVSIHcgQVMgZW5kX3JuLAor ICAgICAgICAgICBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3IEFTIHN0YXJ0X3ByaWNlLAorICAg ICAgICAgICBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcgQVMgZW5kX3ByaWNlLAorICAgICAgICAg ICBjb3VudCgqKSBPVkVSIHcgQVMgZGF5cworICAgIEZST00gcnByX3N0b2NrCisgICAgV0lORE9X IHcgQVMgKAorICAgICAgICBQQVJUSVRJT04gQlkgcGFydF9pZAorICAgICAgICBPUkRFUiBCWSBy bgorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgICAgIFBBVFRF Uk4gKEZMQVR7NSx9IEJSRUFLT1VUKQorICAgICAgICBERUZJTkUKKyAgICAgICAgICAgIEZMQVQg QVMgcHJpY2UgQkVUV0VFTiBQUkVWKHByaWNlKSAqIDAuOTggQU5EIFBSRVYocHJpY2UpICogMS4w MiwKKyAgICAgICAgICAgIEJSRUFLT1VUIEFTIHByaWNlID4gUFJFVihwcmljZSkgKiAxLjA1Cisg ICAgKQorKSB0IFdIRVJFIGRheXMgPiAwIE9SREVSIEJZIHN0YXJ0X3JuOworIHN0YXJ0X3JuIHwg ZW5kX3JuIHwgc3RhcnRfcHJpY2UgfCBlbmRfcHJpY2UgfCBkYXlzIAorLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLQorICAgICAgIDY5IHwgICAgIDgx IHwgICAgIDI5Ni43NTAgfCAgIDMxNC4wMDAgfCAgIDEzCisgICAgICAyMTQgfCAgICAyMjUgfCAg ICAgMTcxLjUwMCB8ICAgMTY0LjEyNSB8ICAgMTIKKyAgICAgIDM3MSB8ICAgIDM5NSB8ICAgICAg NzEuNjMwIHwgICAgNzEuMjUwIHwgICAyNQorICAgICAgNDE2IHwgICAgNDI0IHwgICAgICA1NC4y NTAgfCAgICA1My44NzUgfCAgICA5CisgICAgICA0ODQgfCAgICA0OTQgfCAgICAgIDc1LjUwMCB8 ICAgIDc5LjAwMCB8ICAgMTEKKyAgICAgIDg2NSB8ICAgIDg5MiB8ICAgICAxMTIuNTAwIHwgICAx MTUuNzUwIHwgICAyOAorICAgICAxMDA3IHwgICAxMDIwIHwgICAgICA1OS41MDAgfCAgICA1OC42 MzAgfCAgIDE0CisgICAgIDExMTMgfCAgIDExMTggfCAgICAgMTEwLjc1MCB8ICAgMTE3LjYyNSB8 ICAgIDYKKyAgICAgMTE0NiB8ICAgMTE1MiB8ICAgICAxMzMuNzUwIHwgICAxNDUuMDAwIHwgICAg NworICAgICAxMTcxIHwgICAxMTc4IHwgICAgIDEzNy44ODAgfCAgIDE1My42MjUgfCAgICA4Cisg ICAgIDEzNTAgfCAgIDEzNTcgfCAgICAgMTA2LjEyNSB8ICAgMTEyLjAwMCB8ICAgIDgKKyAgICAg MTM2MCB8ICAgMTM3MCB8ICAgICAxMDkuMTI1IHwgICAxMTUuNjI1IHwgICAxMQorKDEyIHJvd3Mp CisKKy0tIERlYWQgY2F0IGJvdW5jZTogZGVjbGluZSBmb2xsb3dlZCBieSB3ZWFrIHJlY292ZXJ5 ICg8MSUgcGVyIGRheSkKK1NFTEVDVCAqIEZST00gKAorICAgIFNFTEVDVCBmaXJzdF92YWx1ZShy bikgT1ZFUiB3IEFTIHN0YXJ0X3JuLAorICAgICAgICAgICBsYXN0X3ZhbHVlKHJuKSBPVkVSIHcg QVMgZW5kX3JuLAorICAgICAgICAgICBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3IEFTIHN0YXJ0 X3ByaWNlLAorICAgICAgICAgICBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcgQVMgZW5kX3ByaWNl LAorICAgICAgICAgICBjb3VudCgqKSBPVkVSIHcgQVMgZGF5cworICAgIEZST00gcnByX3N0b2Nr CisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBQQVJUSVRJT04gQlkgcGFydF9pZAorICAgICAg ICBPUkRFUiBCWSBybgorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisg ICAgICAgIFBBVFRFUk4gKERFQ0xJTkV7NCx9IEJPVU5DRXszLH0pCisgICAgICAgIERFRklORQor ICAgICAgICAgICAgREVDTElORSBBUyBwcmljZSA8IFBSRVYocHJpY2UpLAorICAgICAgICAgICAg Qk9VTkNFIEFTIHByaWNlID4gUFJFVihwcmljZSkgQU5EIHByaWNlIDwgUFJFVihwcmljZSkgKiAx LjAxCisgICAgKQorKSB0IFdIRVJFIGRheXMgPiAwIE9SREVSIEJZIHN0YXJ0X3JuOworIHN0YXJ0 X3JuIHwgZW5kX3JuIHwgc3RhcnRfcHJpY2UgfCBlbmRfcHJpY2UgfCBkYXlzIAorLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLQorICAgICAgIDU5IHwg ICAgIDY2IHwgICAgIDMxNS4wMDAgfCAgIDMwMS43NTAgfCAgICA4CisgICAgICAyNjIgfCAgICAy NzEgfCAgICAgMjc3LjYyNSB8ICAgMjc1LjUwMCB8ICAgMTAKKyAgICAgIDI4MCB8ICAgIDI4NyB8 ICAgICAyNzIuMDAwIHwgICAyNjEuMjUwIHwgICAgOAorICAgICAgMzYxIHwgICAgMzY4IHwgICAg ICA3NS4zNzUgfCAgICA3NC4xMzAgfCAgICA4CisgICAgICA0MjcgfCAgICA0MzMgfCAgICAgIDY1 LjEzMCB8ICAgIDY1LjUwMCB8ICAgIDcKKyAgICAgIDQ0NyB8ICAgIDQ1MyB8ICAgICAgNTUuNTAw IHwgICAgNTQuNjI1IHwgICAgNworICAgICAgNjUzIHwgICAgNjU5IHwgICAgIDEyOS4zNzUgfCAg IDEyNi42MjUgfCAgICA3CisgICAgICA2NzQgfCAgICA2ODIgfCAgICAgMTMyLjM3NSB8ICAgMTI5 Ljc1MCB8ICAgIDkKKyAgICAgIDgzMyB8ICAgIDgzOSB8ICAgICAxMDYuNTAwIHwgICAxMDcuMTI1 IHwgICAgNworICAgICAxNDIzIHwgICAxNDMwIHwgICAgIDEwOC4xODAgfCAgIDEwNi4yMDAgfCAg ICA4CisgICAgIDE1OTEgfCAgIDE1OTcgfCAgICAgIDkyLjkyMCB8ICAgIDkyLjQxMCB8ICAgIDcK KygxMSByb3dzKQorCistLSBVcHRyZW5kOiA3KyBjb25zZWN1dGl2ZSBkYXlzIG9mIGhpZ2hlciBo aWdocyBBTkQgaGlnaGVyIGxvd3MKK1NFTEVDVCAqIEZST00gKAorICAgIFNFTEVDVCBmaXJzdF92 YWx1ZShybikgT1ZFUiB3IEFTIHN0YXJ0X3JuLAorICAgICAgICAgICBsYXN0X3ZhbHVlKHJuKSBP VkVSIHcgQVMgZW5kX3JuLAorICAgICAgICAgICBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3IEFT IHN0YXJ0X3ByaWNlLAorICAgICAgICAgICBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcgQVMgZW5k X3ByaWNlLAorICAgICAgICAgICBjb3VudCgqKSBPVkVSIHcgQVMgZGF5cworICAgIEZST00gcnBy X3N0b2NrCisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBQQVJUSVRJT04gQlkgcGFydF9pZAor ICAgICAgICBPUkRFUiBCWSBybgorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1Qg Uk9XCisgICAgICAgIFBBVFRFUk4gKFVQVFJFTkR7Nyx9KQorICAgICAgICBERUZJTkUKKyAgICAg ICAgICAgIFVQVFJFTkQgQVMgaGlnaCA+IFBSRVYoaGlnaCkgQU5EIGxvdyA+IFBSRVYobG93KQor ICAgICkKKykgdCBXSEVSRSBkYXlzID4gMCBPUkRFUiBCWSBzdGFydF9ybjsKKyBzdGFydF9ybiB8 IGVuZF9ybiB8IHN0YXJ0X3ByaWNlIHwgZW5kX3ByaWNlIHwgZGF5cyAKKy0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0KKyAgICAgIDE1NiB8ICAgIDE2 MiB8ICAgICAzMTcuMDAwIHwgICAzMjkuNTAwIHwgICAgNworICAgICAgMjk5IHwgICAgMzA1IHwg ICAgIDI2Ni4wMDAgfCAgIDI3My41MDAgfCAgICA3CisgICAgICA2OTYgfCAgICA3MDIgfCAgICAg MTQ0LjYzMCB8ICAgMTUyLjUwMCB8ICAgIDcKKyAgICAgIDc0MSB8ICAgIDc0NyB8ICAgICAxNTUu MjUwIHwgICAxNjYuNzUwIHwgICAgNworICAgICAgODk1IHwgICAgOTAxIHwgICAgIDExOS4yNTAg fCAgIDEyNi43NTAgfCAgICA3CisgICAgIDExMjEgfCAgIDExMjcgfCAgICAgMTAzLjYzMCB8ICAg MTA4Ljg3NSB8ICAgIDcKKyAgICAgMTIxMSB8ICAgMTIxNyB8ICAgICAgOTkuMTMwIHwgICAxMDIu ODc1IHwgICAgNworICAgICAxMjcxIHwgICAxMjc4IHwgICAgIDE2NC4zNzUgfCAgIDE4OS4yNTAg fCAgICA4CisgICAgIDE2MjEgfCAgIDE2MjggfCAgICAgIDg0LjAwMCB8ICAgIDg5LjgyMCB8ICAg IDgKKyg5IHJvd3MpCisKKy0tIFBhbmljIGFuZCBzbmFwLWJhY2s6IDMlKyBkYWlseSBkcm9wcyBm b2xsb3dlZCBieSAyJSsgcmVib3VuZAorU0VMRUNUICogRlJPTSAoCisgICAgU0VMRUNUIGZpcnN0 X3ZhbHVlKHJuKSBPVkVSIHcgQVMgc3RhcnRfcm4sCisgICAgICAgICAgIGxhc3RfdmFsdWUocm4p IE9WRVIgdyBBUyBlbmRfcm4sCisgICAgICAgICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcg QVMgc3RhcnRfcHJpY2UsCisgICAgICAgICAgIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdyBBUyBl bmRfcHJpY2UsCisgICAgICAgICAgIGNvdW50KCopIE9WRVIgdyBBUyBkYXlzCisgICAgRlJPTSBy cHJfc3RvY2sKKyAgICBXSU5ET1cgdyBBUyAoCisgICAgICAgIFBBUlRJVElPTiBCWSBwYXJ0X2lk CisgICAgICAgIE9SREVSIEJZIHJuCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFT VCBST1cKKyAgICAgICAgUEFUVEVSTiAoUEFOSUN7Mix9IFNOQVApCisgICAgICAgIERFRklORQor ICAgICAgICAgICAgUEFOSUMgQVMgcHJpY2UgPCBQUkVWKHByaWNlKSAqIDAuOTcsCisgICAgICAg ICAgICBTTkFQIEFTIHByaWNlID4gUFJFVihwcmljZSkgKiAxLjAyCisgICAgKQorKSB0IFdIRVJF IGRheXMgPiAwIE9SREVSIEJZIHN0YXJ0X3JuOworIHN0YXJ0X3JuIHwgZW5kX3JuIHwgc3RhcnRf cHJpY2UgfCBlbmRfcHJpY2UgfCBkYXlzIAorLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLQorICAgICAgIDI0IHwgICAgIDI2IHwgICAgIDIzMC42MjUg fCAgIDIyOS44NzUgfCAgICAzCisgICAgICAxNjUgfCAgICAxNjcgfCAgICAgMjcyLjAwMCB8ICAg MjcwLjc1MCB8ICAgIDMKKyAgICAgIDE2OSB8ICAgIDE3MSB8ICAgICAyNjAuMDAwIHwgICAyNTku NTAwIHwgICAgMworICAgICAgNzY5IHwgICAgNzcyIHwgICAgIDE0MC4xMjUgfCAgIDExNS4wMDAg fCAgICA0CisgICAgICA5NzcgfCAgICA5NzkgfCAgICAgIDU2LjEzMCB8ICAgIDUzLjAwMCB8ICAg IDMKKyAgICAgIDk4MCB8ICAgIDk4MiB8ICAgICAgNTEuMzc1IHwgICAgNTEuNzUwIHwgICAgMwor ICAgICAxMzg3IHwgICAxMzg5IHwgICAgICA4Ni4wMDAgfCAgICA4OS4wMDAgfCAgICAzCisgICAg IDEzOTYgfCAgIDEzOTggfCAgICAgIDk5LjI5MCB8ICAgIDk4LjM5MCB8ICAgIDMKKyg4IHJvd3Mp CisKKy0tIFZvbHVtZSBjbGltYXggcmV2ZXJzYWw6IHVwdHJlbmQsIHZvbHVtZSBzcGlrZSAoMS41 eCksIHRoZW4gZGVjbGluZQorU0VMRUNUICogRlJPTSAoCisgICAgU0VMRUNUIGZpcnN0X3ZhbHVl KHJuKSBPVkVSIHcgQVMgc3RhcnRfcm4sCisgICAgICAgICAgIGxhc3RfdmFsdWUocm4pIE9WRVIg dyBBUyBlbmRfcm4sCisgICAgICAgICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcgQVMgc3Rh cnRfcHJpY2UsCisgICAgICAgICAgIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdyBBUyBlbmRfcHJp Y2UsCisgICAgICAgICAgIGNvdW50KCopIE9WRVIgdyBBUyBkYXlzCisgICAgRlJPTSBycHJfc3Rv Y2sKKyAgICBXSU5ET1cgdyBBUyAoCisgICAgICAgIFBBUlRJVElPTiBCWSBwYXJ0X2lkCisgICAg ICAgIE9SREVSIEJZIHJuCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgICAgICAgUEFUVEVSTiAoUkFMTFl7Myx9IENMSU1BWCBTRUxMT0ZGezIsfSkKKyAgICAgICAg REVGSU5FCisgICAgICAgICAgICBSQUxMWSBBUyBwcmljZSA+IFBSRVYocHJpY2UpLAorICAgICAg ICAgICAgQ0xJTUFYIEFTIHZvbHVtZSA+IFBSRVYodm9sdW1lKSAqIDEuNSwKKyAgICAgICAgICAg IFNFTExPRkYgQVMgcHJpY2UgPCBQUkVWKHByaWNlKQorICAgICkKKykgdCBXSEVSRSBkYXlzID4g MCBPUkRFUiBCWSBzdGFydF9ybjsKKyBzdGFydF9ybiB8IGVuZF9ybiB8IHN0YXJ0X3ByaWNlIHwg ZW5kX3ByaWNlIHwgZGF5cyAKKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0KKyAgICAgICAgMiB8ICAgICAgNyB8ICAgICAzNjguMjUwIHwgICAzNjcu NzUwIHwgICAgNgorICAgICAgIDE2IHwgICAgIDIxIHwgICAgIDM0OS4yNTAgfCAgIDM0NC41MDAg fCAgICA2CisgICAgICAxMDUgfCAgICAxMTEgfCAgICAgMzg4LjUwMCB8ICAgMzk0LjUwMCB8ICAg IDcKKyAgICAgIDIyOCB8ICAgIDIzNCB8ICAgICAxNjQuMjUwIHwgICAxNjMuMjUwIHwgICAgNwor ICAgICAgMjQzIHwgICAgMjQ4IHwgICAgIDIyMy4yNTAgfCAgIDIyOC41MDAgfCAgICA2CisgICAg ICAyNTEgfCAgICAyNTkgfCAgICAgMjUxLjAwMCB8ICAgMjUzLjUwMCB8ICAgIDkKKyAgICAgIDM1 MiB8ICAgIDM1OCB8ICAgICAzMTAuNTAwIHwgICAzMDkuMDAwIHwgICAgNworICAgICAgMzk4IHwg ICAgNDA1IHwgICAgICA2NS4zODAgfCAgICA2NS4wMDAgfCAgICA4CisgICAgICA0NjYgfCAgICA0 NzIgfCAgICAgIDY0LjI1MCB8ICAgIDYzLjg3NSB8ICAgIDcKKyAgICAgIDU4NiB8ICAgIDU5NSB8 ICAgICAxMTAuMjUwIHwgICAxMTIuMjUwIHwgICAxMAorICAgICAgNjI2IHwgICAgNjMyIHwgICAg IDEyNS43NTAgfCAgIDEyMy4yNTAgfCAgICA3CisgICAgICA3MDAgfCAgICA3MDcgfCAgICAgMTUw LjI1MCB8ICAgMTUyLjc1MCB8ICAgIDgKKyAgICAgIDcxNCB8ICAgIDcyMiB8ICAgICAxMzYuMTI1 IHwgICAxMzcuMDAwIHwgICAgOQorICAgICAgNzQwIHwgICAgNzUwIHwgICAgIDE1NC4yNTAgfCAg IDE2My4wMDAgfCAgIDExCisgICAgICA4MDUgfCAgICA4MTEgfCAgICAgMTE2Ljg3NSB8ICAgMTE2 LjAwMCB8ICAgIDcKKyAgICAgIDgxNCB8ICAgIDgyMSB8ICAgICAgOTkuNTAwIHwgICAgOTcuMTMw IHwgICAgOAorICAgICAgODUwIHwgICAgODU3IHwgICAgIDEwNy44ODAgfCAgICA5OS4yNTAgfCAg ICA4CisgICAgICA5MjIgfCAgICA5MjcgfCAgICAgIDk5Ljc1MCB8ICAgIDk5Ljg3NSB8ICAgIDYK KyAgICAgIDkzNCB8ICAgIDkzOSB8ICAgICAgOTIuMzc1IHwgICAgOTIuODgwIHwgICAgNgorICAg ICAgOTk4IHwgICAxMDA0IHwgICAgICA1Mi4wMDAgfCAgICA1My4xMzAgfCAgICA3CisgICAgIDEw NDMgfCAgIDEwNDkgfCAgICAgIDczLjEyNSB8ICAgIDczLjAwMCB8ICAgIDcKKyAgICAgMTA1MiB8 ICAgMTA1NyB8ICAgICAgNzIuMTMwIHwgICAgNzQuMjUwIHwgICAgNgorICAgICAxMTM4IHwgICAx MTQzIHwgICAgIDEyNy43NTAgfCAgIDEyNS42MjUgfCAgICA2CisgICAgIDExNTUgfCAgIDExNjIg fCAgICAgMTU4LjAwMCB8ICAgMTU1LjYyNSB8ICAgIDgKKyAgICAgMTE4MSB8ICAgMTE5MSB8ICAg ICAgOTkuMTMwIHwgICAxMDAuMDYyIHwgICAxMQorICAgICAxMTkyIHwgICAxMjAyIHwgICAgIDEw MC4xMzAgfCAgICA5Ni41MDAgfCAgIDExCisgICAgIDEyMzYgfCAgIDEyNDEgfCAgICAgMTE4LjM4 MCB8ICAgMTIzLjg4MCB8ICAgIDYKKyAgICAgMTI3MiB8ICAgMTI4MiB8ICAgICAxNjYuMDYyIHwg ICAxODMuMDAwIHwgICAxMQorICAgICAxMzI1IHwgICAxMzMxIHwgICAgIDIxNy4yNTAgfCAgIDIz Ny41MDAgfCAgICA3CisgICAgIDE0MDkgfCAgIDE0MTQgfCAgICAgMTEyLjg5MCB8ICAgMTE2LjEw MCB8ICAgIDYKKyAgICAgMTQ1NiB8ICAgMTQ2MSB8ICAgICAgNjguNTgwIHwgICAgNjguNzYwIHwg ICAgNgorKDMxIHJvd3MpCisKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cnByX2Jhc2Uub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE2MzIxMWZmMzY0Ci0tLSAvZGV2 L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKQEAgLTAs MCArMSw2NTg5IEBACistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tIFJQUiBCYXNlIFRlc3RzCistLSBUZXN0cyBmb3IgUm93 IFBhdHRlcm4gUmVjb2duaXRpb24gKElTTy9JRUMgMTkwNzUtNToyMDE2KQorLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLQor LS0gUGFyc2VyIExheWVyOgorLS0gICBLZXl3b3JkIFVzYWdlIFRlc3RzCistLSAgIERFRklORSBD bGF1c2UgVGVzdHMKKy0tICAgRlJBTUUgT3B0aW9ucyBUZXN0cworLS0gICBQQVJUSVRJT04gQlkg KyBGUkFNRSBUZXN0cworLS0gICBQQVRURVJOIFN5bnRheCBUZXN0cworLS0gICBRdWFudGlmaWVy cyBUZXN0cworLS0gICBOYXZpZ2F0aW9uIEZ1bmN0aW9ucyBUZXN0cworLS0gICBTS0lQIFRPIC8g SU5JVElBTCBUZXN0cworLS0gICBTZXJpYWxpemF0aW9uL0Rlc2VyaWFsaXphdGlvbiBUZXN0cyAo b2JqZWN0cyBrZXB0IGZvciBwZ191cGdyYWRlL3BnX2R1bXApCistLSAgIEVycm9yIENhc2VzIFRl c3RzCistLSAgIFdpbmRvdyBEZWR1cGxpY2F0aW9uIFRlc3RzCistLQorLS0gUGxhbm5lciBMYXll cjoKKy0tICAgUGF0dGVybiBPcHRpbWl6YXRpb24gVGVzdHMKKy0tICAgQWJzb3JwdGlvbiBGbGFn IERpc3BsYXkgVGVzdHMKKy0tICAgQWJzb3JwdGlvbiBBbmFseXNpcyBUZXN0cworLS0gICBFZGdl IENhc2UgVGVzdHMKKy0tICAgT3B0aW1pemF0aW9uIEZhbGxiYWNrIFRlc3RzCistLSAgIFBsYW5u ZXIgSW50ZWdyYXRpb24gVGVzdHMKKy0tICAgU3VicXVlcnkgYW5kIENURSBUZXN0cworLS0gICBK T0lOIFRlc3RzCistLSAgIENvbXBsZXggRXhwcmVzc2lvbiBUZXN0cworLS0gICBTZXQgT3BlcmF0 aW9ucyBUZXN0cworLS0gICBTb3J0aW5nIGFuZCBHcm91cGluZyBUZXN0cworLS0gICBTUUwgRnVu Y3Rpb24gSW5saW5pbmcgVGVzdHMKKy0tICAgU3RyZXNzIFRlc3RzCistLSAgIEVycm9yIExpbWl0 IFRlc3RzCistLQorLS0gQ29udHJpYnV0ZWQgVGVzdHM6CistLSAgIEphY29iJ3MgUGF0dGVybnMK Ky0tICAgUGF0aG9sb2dpY2FsIFBhdHRlcm5zCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK1NFVCBjbGllbnRfbWluX21lc3Nh Z2VzID0gV0FSTklORzsKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0gS2V5d29yZCBVc2FnZSBUZXN0cworLS0gPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LSBSUFIga2V5d29yZHMgYXMgY29sdW1uIG5hbWVzCistLSBLZXl3b3JkczogZGVmaW5lLCBpbml0 aWFsLCBwYXN0LCBwYXR0ZXJuLCBzZWVrCitDUkVBVEUgVEFCTEUgcnByX2tleXdvcmRzICgKKyAg ICBpZCBJTlQsCisgICAgZGVmaW5lIElOVCwgICAgICAtLSBERUZJTkUga2V5d29yZAorICAgIGlu aXRpYWwgSU5ULCAgICAgLS0gSU5JVElBTCBrZXl3b3JkCisgICAgcGFzdCBJTlQsICAgICAgICAt LSBQQVNUIGtleXdvcmQKKyAgICBwYXR0ZXJuIElOVCwgICAgIC0tIFBBVFRFUk4ga2V5d29yZAor ICAgIHNlZWsgSU5ULCAgICAgICAgLS0gU0VFSyBrZXl3b3JkCisgICAgc2tpcCBJTlQgICAgICAg ICAtLSBTS0lQIGtleXdvcmQgKHByZS1leGlzdGluZykKKyk7CitJTlNFUlQgSU5UTyBycHJfa2V5 d29yZHMgVkFMVUVTICgxLCAxMCwgMjAsIDMwLCA0MCwgNTAsIDYwKTsKK1NFTEVDVCBpZCwgZGVm aW5lLCBpbml0aWFsLCBwYXN0LCBwYXR0ZXJuLCBzZWVrLCBza2lwCitGUk9NIHJwcl9rZXl3b3Jk cworT1JERVIgQlkgaWQ7CisgaWQgfCBkZWZpbmUgfCBpbml0aWFsIHwgcGFzdCB8IHBhdHRlcm4g fCBzZWVrIHwgc2tpcCAKKy0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0r LS0tLS0tKy0tLS0tLQorICAxIHwgICAgIDEwIHwgICAgICAyMCB8ICAgMzAgfCAgICAgIDQwIHwg ICA1MCB8ICAgNjAKKygxIHJvdykKKworRFJPUCBUQUJMRSBycHJfa2V5d29yZHM7CistLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tIERFRklORSBDbGF1c2UgVGVzdHMKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gU2ltcGxlIGNvbHVtbiByZWZlcmVu Y2VzCitDUkVBVEUgVEFCTEUgc3RvY2tfcHJpY2UgKAorICAgIGR0IERBVEUsCisgICAgc3ltYm9s IFRFWFQsCisgICAgcHJpY2UgTlVNRVJJQywKKyAgICB2b2x1bWUgSU5UCispOworSU5TRVJUIElO VE8gc3RvY2tfcHJpY2UgVkFMVUVTCisgICAgKCcyMDI0LTAxLTAxJywgJ0FBUEwnLCAxNTAsIDEw MDApLAorICAgICgnMjAyNC0wMS0wMicsICdBQVBMJywgMTU1LCAxMjAwKSwKKyAgICAoJzIwMjQt MDEtMDMnLCAnQUFQTCcsIDE1MiwgOTAwKSwKKyAgICAoJzIwMjQtMDEtMDQnLCAnQUFQTCcsIDE2 MCwgMTUwMCksCisgICAgKCcyMDI0LTAxLTA1JywgJ0FBUEwnLCAxNTgsIDExMDApOworLS0gU2lt cGxlIGNvbHVtbiByZWZlcmVuY2UKK1NFTEVDVCBkdCwgcHJpY2UsIENPVU5UKCopIE9WRVIgdyBh cyBjbnQKK0ZST00gc3RvY2tfcHJpY2UKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkg c3ltYm9sCisgICAgT1JERVIgQlkgZHQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChVUCspCisgICAgREVGSU5FIFVQIEFT IHByaWNlID4gMTUwCispCitPUkRFUiBCWSBkdDsKKyAgICAgZHQgICAgIHwgcHJpY2UgfCBjbnQg CistLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLQorIDAxLTAxLTIwMjQgfCAgIDE1MCB8ICAgMAor IDAxLTAyLTIwMjQgfCAgIDE1NSB8ICAgNAorIDAxLTAzLTIwMjQgfCAgIDE1MiB8ICAgMAorIDAx LTA0LTIwMjQgfCAgIDE2MCB8ICAgMAorIDAxLTA1LTIwMjQgfCAgIDE1OCB8ICAgMAorKDUgcm93 cykKKworLS0gTXVsdGlwbGUgY29sdW1uIHJlZmVyZW5jZXMKK1NFTEVDVCBkdCwgcHJpY2UsIHZv bHVtZSwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBzdG9ja19wcmljZQorV0lORE9XIHcg QVMgKAorICAgIFBBUlRJVElPTiBCWSBzeW1ib2wKKyAgICBPUkRFUiBCWSBkdAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4g KEdPT0QrKQorICAgIERFRklORSBHT09EIEFTIHByaWNlID4gMTUwIEFORCB2b2x1bWUgPiAxMDAw CispCitPUkRFUiBCWSBkdDsKKyAgICAgZHQgICAgIHwgcHJpY2UgfCB2b2x1bWUgfCBjbnQgCist LS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLSstLS0tLQorIDAxLTAxLTIwMjQgfCAgIDE1MCB8 ICAgMTAwMCB8ICAgMAorIDAxLTAyLTIwMjQgfCAgIDE1NSB8ICAgMTIwMCB8ICAgMQorIDAxLTAz LTIwMjQgfCAgIDE1MiB8ICAgIDkwMCB8ICAgMAorIDAxLTA0LTIwMjQgfCAgIDE2MCB8ICAgMTUw MCB8ICAgMgorIDAxLTA1LTIwMjQgfCAgIDE1OCB8ICAgMTEwMCB8ICAgMAorKDUgcm93cykKKwor LS0gRXhwcmVzc2lvbiBpbiBERUZJTkUKK1NFTEVDVCBkdCwgcHJpY2UsIENPVU5UKCopIE9WRVIg dyBhcyBjbnQKK0ZST00gc3RvY2tfcHJpY2UKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04g Qlkgc3ltYm9sCisgICAgT1JERVIgQlkgZHQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChISUdIKykKKyAgICBERUZJTkUg SElHSCBBUyBwcmljZSAqIDEuMSA+IDE2NQorKQorT1JERVIgQlkgZHQ7CisgICAgIGR0ICAgICB8 IHByaWNlIHwgY250IAorLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0KKyAwMS0wMS0yMDI0IHwg ICAxNTAgfCAgIDAKKyAwMS0wMi0yMDI0IHwgICAxNTUgfCAgIDQKKyAwMS0wMy0yMDI0IHwgICAx NTIgfCAgIDAKKyAwMS0wNC0yMDI0IHwgICAxNjAgfCAgIDAKKyAwMS0wNS0yMDI0IHwgICAxNTgg fCAgIDAKKyg1IHJvd3MpCisKKy0tIEFyaXRobWV0aWMgYW5kIGZ1bmN0aW9ucworU0VMRUNUIGR0 LCBwcmljZSwgdm9sdW1lLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHN0b2NrX3ByaWNl CitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIHN5bWJvbAorICAgIE9SREVSIEJZIGR0 CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgUEFUVEVSTiAoQ0FMQyspCisgICAgREVGSU5FIENBTEMgQVMgKHByaWNlICsgdm9sdW1lIC8g MTAwKSA+IDE2MAorKQorT1JERVIgQlkgZHQ7CisgICAgIGR0ICAgICB8IHByaWNlIHwgdm9sdW1l IHwgY250IAorLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0rLS0tLS0KKyAwMS0wMS0yMDI0 IHwgICAxNTAgfCAgIDEwMDAgfCAgIDAKKyAwMS0wMi0yMDI0IHwgICAxNTUgfCAgIDEyMDAgfCAg IDQKKyAwMS0wMy0yMDI0IHwgICAxNTIgfCAgICA5MDAgfCAgIDAKKyAwMS0wNC0yMDI0IHwgICAx NjAgfCAgIDE1MDAgfCAgIDAKKyAwMS0wNS0yMDI0IHwgICAxNTggfCAgIDExMDAgfCAgIDAKKyg1 IHJvd3MpCisKK0RST1AgVEFCTEUgc3RvY2tfcHJpY2U7CistLSBBdXRvLWdlbmVyYXRlZCBERUZJ TkUKK0NSRUFURSBUQUJMRSBycHJfYXV0byAoaWQgSU5ULCB2YWwgSU5UKTsKK0lOU0VSVCBJTlRP IHJwcl9hdXRvIFZBTFVFUyAoMSwgMTApLCAoMiwgMjApLCAoMywgMzApLCAoNCwgMTUpOworLS0g T25lIHZhcmlhYmxlIHVuZGVmaW5lZCAoQiBhdXRvLWdlbmVyYXRlZCBhcyAiQiBJUyBUUlVFIikK K1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9hdXRvCitX SU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKyBCKikKKyAgICBERUZJ TkUgQSBBUyB2YWwgPiAxNQorKQorT1JERVIgQlkgaWQ7CisgaWQgfCB2YWwgfCBjbnQgCistLS0t Ky0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDAKKyAgMiB8ICAyMCB8ICAgMworICAzIHwgIDMw IHwgICAwCisgIDQgfCAgMTUgfCAgIDAKKyg0IHJvd3MpCisKKy0tIE11bHRpcGxlIHVuZGVmaW5l ZCB2YXJpYWJsZXMKK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9N IHJwcl9hdXRvCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIg QykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCisgICAgLS0gQiBhbmQgQyBhdXRvLWdlbmVyYXRl ZCBhcyAiQiBJUyBUUlVFIiwgIkMgSVMgVFJVRSIKKykKK09SREVSIEJZIGlkOworIGlkIHwgdmFs IHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAzCisgIDIgfCAgMjAgfCAg IDAKKyAgMyB8ICAzMCB8ICAgMAorICA0IHwgIDE1IHwgICAwCisoNCByb3dzKQorCistLSBBbGwg dmFyaWFibGVzIGRlZmluZWQgZXhwbGljaXRseQorU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9W RVIgdyBhcyBjbnQKK0ZST00gcnByX2F1dG8KK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBp ZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIFBBVFRFUk4gKFggWSBaKQorICAgIERFRklORQorICAgICAgICBYIEFTIHZhbCA+IDEwLAor ICAgICAgICBZIEFTIHZhbCA+IDIwLAorICAgICAgICBaIEFTIHZhbCA8IDIwCispCitPUkRFUiBC WSBpZDsKKyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAg MAorICAyIHwgIDIwIHwgICAzCisgIDMgfCAgMzAgfCAgIDAKKyAgNCB8ICAxNSB8ICAgMAorKDQg cm93cykKKworRFJPUCBUQUJMRSBycHJfYXV0bzsKKy0tIER1cGxpY2F0ZSB2YXJpYWJsZSBuYW1l cworQ1JFQVRFIFRBQkxFIHJwcl9kdXAgKGlkIElOVCk7CitJTlNFUlQgSU5UTyBycHJfZHVwIFZB TFVFUyAoMSksICgyKTsKKy0tIER1cGxpY2F0ZSBERUZJTkUgZW50cmllcworU0VMRUNUIENPVU5U KCopIE9WRVIgdworRlJPTSBycHJfZHVwCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBpZCA+IDAsIEEgQVMgaWQgPCAxMAorKTsK K0VSUk9SOiAgREVGSU5FIHZhcmlhYmxlICJhIiBhcHBlYXJzIG1vcmUgdGhhbiBvbmNlCitMSU5F IDc6ICAgICBERUZJTkUgQSBBUyBpZCA+IDAsIEEgQVMgaWQgPCAxMAorICAgICAgICAgICAgICAg ICAgIF4KKy0tIEV4cGVjdGVkOiBFUlJPUjogcm93IHBhdHRlcm4gZGVmaW5pdGlvbiB2YXJpYWJs ZSBuYW1lICJhIiBhcHBlYXJzIG1vcmUgdGhhbiBvbmNlIGluIERFRklORSBjbGF1c2UKK0RST1Ag VEFCTEUgcnByX2R1cDsKKy0tIEJvb2xlYW4gY29lcmNpb24KK0NSRUFURSBUQUJMRSBycHJfYm9v bCAoaWQgSU5ULCBmbGFnIEJPT0xFQU4pOworSU5TRVJUIElOVE8gcnByX2Jvb2wgVkFMVUVTICgx LCB0cnVlKSwgKDIsIGZhbHNlKTsKKy0tIE5vbi1ib29sZWFuIGV4cHJlc3Npb24KK1NFTEVDVCBD T1VOVCgqKSBPVkVSIHcKK0ZST00gcnByX2Jvb2wKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBC WSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIGlkCispOworRVJST1I6ICBhcmd1 bWVudCBvZiBERUZJTkUgbXVzdCBiZSB0eXBlIGJvb2xlYW4sIG5vdCB0eXBlIGludGVnZXIKK0xJ TkUgNzogICAgIERFRklORSBBIEFTIGlkCisgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBF eHBlY3RlZDogRVJST1I6IGFyZ3VtZW50IG9mIERFRklORSBtdXN0IGJlIHR5cGUgYm9vbGVhbgor LS0gQm9vbGVhbiBjb2x1bW4gcmVmZXJlbmNlCitTRUxFQ1QgaWQsIGZsYWcsIENPVU5UKCopIE9W RVIgdyBhcyBjbnQKK0ZST00gcnByX2Jvb2wKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBp ZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIFBBVFRFUk4gKFQrKQorICAgIERFRklORSBUIEFTIGZsYWcKKykKK09SREVSIEJZIGlkOwor IGlkIHwgZmxhZyB8IGNudCAKKy0tLS0rLS0tLS0tKy0tLS0tCisgIDEgfCB0ICAgIHwgICAxCisg IDIgfCBmICAgIHwgICAwCisoMiByb3dzKQorCistLSBOVUxMOjpib29sZWFuCitTRUxFQ1QgaWQs IENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX2Jvb2wKK1dJTkRPVyB3IEFTICgKKyAg ICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIFBBVFRFUk4gKE4rKQorICAgIERFRklORSBOIEFTIE5VTEw6OmJvb2xl YW4KKykKK09SREVSIEJZIGlkOworIGlkIHwgY250IAorLS0tLSstLS0tLQorICAxIHwgICAwCisg IDIgfCAgIDAKKygyIHJvd3MpCisKKy0tIEltcGxpY2l0IGNhc3QgdG8gYm9vbGVhbiB2aWEgY3Vz dG9tIHR5cGUKK0NSRUFURSBUWVBFIHRydXRoeWludCBBUyAodiBpbnQpOworQ1JFQVRFIEZVTkNU SU9OIHRydXRoeWludF90b19ib29sKHRydXRoeWludCkgUkVUVVJOUyBib29sZWFuIEFTICQkCisg IFNFTEVDVCAoJDEpLnYgPD4gMDsKKyQkIExBTkdVQUdFIFNRTCBJTU1VVEFCTEUgU1RSSUNUOwor Q1JFQVRFIENBU1QgKHRydXRoeWludCBBUyBib29sZWFuKQorICBXSVRIIEZVTkNUSU9OIHRydXRo eWludF90b19ib29sKHRydXRoeWludCkKKyAgQVMgQVNTSUdOTUVOVDsKK0NSRUFURSBUQUJMRSBy cHJfY29lcmNlIChpZCBpbnQsIHZhbCB0cnV0aHlpbnQpOworSU5TRVJUIElOVE8gcnByX2NvZXJj ZSBWQUxVRVMgKDEsIFJPVygxKSksICgyLCBST1coMCkpLCAoMywgUk9XKDUpKSwgKDQsIFJPVygw KSk7CitTRUxFQ1QgaWQsIHZhbCwgY250CitGUk9NIChTRUxFQ1QgaWQsIHZhbCwKKyAgICAgICAg ICAgICBDT1VOVCgqKSBPVkVSIHcgQVMgY250CisgICAgICBGUk9NIHJwcl9jb2VyY2UKKyAgICAg IFdJTkRPVyB3IEFTICgKKyAgICAgICAgICBPUkRFUiBCWSBpZAorICAgICAgICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgIFBBVFRF Uk4gKEErKQorICAgICAgICAgIERFRklORSBBIEFTIHZhbAorICAgICAgKQorKSBzIE9SREVSIEJZ IGlkOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgKDEpIHwgICAx CisgIDIgfCAoMCkgfCAgIDAKKyAgMyB8ICg1KSB8ICAgMQorICA0IHwgKDApIHwgICAwCisoNCBy b3dzKQorCitEUk9QIFRBQkxFIHJwcl9jb2VyY2U7CitEUk9QIENBU1QgKHRydXRoeWludCBBUyBi b29sZWFuKTsKK0RST1AgRlVOQ1RJT04gdHJ1dGh5aW50X3RvX2Jvb2wodHJ1dGh5aW50KTsKK0RS T1AgVFlQRSB0cnV0aHlpbnQ7CitEUk9QIFRBQkxFIHJwcl9ib29sOworLS0gQ29tcGxleCBleHBy ZXNzaW9ucworQ1JFQVRFIFRBQkxFIHJwcl9jb21wbGV4IChpZCBJTlQsIHZhbDEgSU5ULCB2YWwy IElOVCk7CitJTlNFUlQgSU5UTyBycHJfY29tcGxleCBWQUxVRVMgKDEsIDEwLCAyMCksICgyLCAx NSwgMjUpLCAoMywgMjAsIDMwKTsKKy0tIENBU0UgZXhwcmVzc2lvbgorU0VMRUNUIGlkLCB2YWwx LCB2YWwyLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9jb21wbGV4CitXSU5ET1cg dyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChDKykKKyAgICBERUZJTkUgQyBBUyBD QVNFIFdIRU4gdmFsMSA+IDEwIFRIRU4gdmFsMiA+IDIwIEVMU0UgZmFsc2UgRU5ECispCitPUkRF UiBCWSBpZDsKKyBpZCB8IHZhbDEgfCB2YWwyIHwgY250IAorLS0tLSstLS0tLS0rLS0tLS0tKy0t LS0tCisgIDEgfCAgIDEwIHwgICAyMCB8ICAgMAorICAyIHwgICAxNSB8ICAgMjUgfCAgIDIKKyAg MyB8ICAgMjAgfCAgIDMwIHwgICAwCisoMyByb3dzKQorCitEUk9QIFRBQkxFIHJwcl9jb21wbGV4 OworLS0gUGF0dGVybiB2YXJpYWJsZSBub3QgaW4gUEFUVEVSTiAoc2hvdWxkIGJlIGlnbm9yZWQp CitDUkVBVEUgVEFCTEUgcnByX3VudXNlZCAoaWQgSU5UKTsKK0lOU0VSVCBJTlRPIHJwcl91bnVz ZWQgVkFMVUVTICgxKSwgKDIpOworLS0gRXh0cmEgREVGSU5FIHZhcmlhYmxlCitTRUxFQ1QgaWQs IENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX3VudXNlZAorV0lORE9XIHcgQVMgKAor ICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgaWQgPiAwLCBC IEFTIGlkID4gNSAgLS0gQiBub3QgaW4gcGF0dGVybgorKQorT1JERVIgQlkgaWQ7CitFUlJPUjog IERFRklORSB2YXJpYWJsZSAiYiIgaXMgbm90IHVzZWQgaW4gUEFUVEVSTgorTElORSA3OiAgICAg REVGSU5FIEEgQVMgaWQgPiAwLCBCIEFTIGlkID4gNSAgLS0gQiBub3QgaW4gcGF0dGVybgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitEUk9QIFRBQkxFIHJwcl91bnVzZWQ7Cist LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tIEZSQU1FIE9wdGlvbnMgVGVzdHMKKy0tID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorQ1JFQVRFIFRBQkxFIHJwcl9m cmFtZSAoaWQgSU5ULCB2YWwgSU5UKTsKK0lOU0VSVCBJTlRPIHJwcl9mcmFtZSBWQUxVRVMKKyAg ICAoMSwgMTApLCAoMiwgMTApLCAoMywgMTApLCAgLS0gU2FtZSB2YWw6IDEwCisgICAgKDQsIDIw KSwgKDUsIDIwKSwgICAgICAgICAgIC0tIFNhbWUgdmFsOiAyMAorICAgICg2LCAzMCk7CistLSBW YWxpZCBmcmFtZSBvcHRpb25zCistLSBST1dTOiBjb3VudHMgcGh5c2ljYWwgcm93cyAoMSBGT0xM T1dJTkcgPSBuZXh0IDEgcGh5c2ljYWwgcm93KQorLS0gRXhwZWN0ZWQgcmVzdWx0OiBFYWNoIHJv dyBjYW4gc2VlIDEgcGh5c2ljYWwgcm93IGFoZWFkCistLSBpZD0xLDIsMyAodmFsPTEwKTogY2Fu IHNlZSBuZXh0IHJvdyAtPiBjbnQ9MgorLS0gaWQ9NCw1ICh2YWw9MjApOiBjYW4gc2VlIG5leHQg cm93IC0+IGNudD0yCistLSBpZD02ICh2YWw9MzApOiBubyBuZXh0IHJvdyAtPiBjbnQ9MQorLS0g UmVzdWx0OiBbMiwyLDIsMiwyLDFdCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFz IGNudAorRlJPTSBycHJfZnJhbWUKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSB2YWwKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDEgRk9MTE9XSU5HCisgICAgQUZURVIgTUFU Q0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEEgQj8pCisgICAgREVGSU5FIEEgQVMg dmFsID49IDAsIEIgQVMgdmFsID49IDAKKykKK09SREVSIEJZIGlkOworIGlkIHwgdmFsIHwgY250 IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAyCisgIDIgfCAgMTAgfCAgIDIKKyAg MyB8ICAxMCB8ICAgMgorICA0IHwgIDIwIHwgICAyCisgIDUgfCAgMjAgfCAgIDIKKyAgNiB8ICAz MCB8ICAgMQorKDYgcm93cykKKworLS0gSW52YWxpZCBmcmFtZSBzdGFydCBwb3NpdGlvbnMKKy0t IE5vdCBzdGFydGluZyBhdCBDVVJSRU5UIFJPVworU0VMRUNUIENPVU5UKCopIE9WRVIgdworRlJP TSBycHJfZnJhbWUKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVU V0VFTiBVTkJPVU5ERUQgUFJFQ0VESU5HIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFU VEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKK0VSUk9SOiAgRlJBTUUgbXVz dCBzdGFydCBhdCBDVVJSRU5UIFJPVyB3aGVuIHVzaW5nIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9u CitMSU5FIDU6ICAgICBST1dTIEJFVFdFRU4gVU5CT1VOREVEIFBSRUNFRElORyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgICAgICAgICAgXgorREVUQUlMOiAgQ3VycmVudCBmcmFtZSBzdGFy dHMgd2l0aCBVTkJPVU5ERUQgUFJFQ0VESU5HLgorSElOVDogIFVzZTogUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCAuLi4KKy0tIEV4cGVjdGVkOiBFUlJPUjogRlJBTUUgbXVzdCBzdGFydCBh dCBjdXJyZW50IHJvdyB3aGVuIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGlzIHVzZWQKKy0tIEVY Q0xVREUgb3B0aW9ucworLS0gRVhDTFVERSBub3QgcGVybWl0dGVkCitTRUxFQ1QgQ09VTlQoKikg T1ZFUiB3CitGUk9NIHJwcl9mcmFtZQorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg RVhDTFVERSBDVVJSRU5UIFJPVworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHZh bCA+IDAKKyk7CitFUlJPUjogIGNhbm5vdCB1c2UgRVhDTFVERSBvcHRpb25zIHdpdGggcm93IHBh dHRlcm4gcmVjb2duaXRpb24KK0xJTkUgNjogICAgIEVYQ0xVREUgQ1VSUkVOVCBST1cKKyAgICAg ICAgICAgIF4KK0RFVEFJTDogIEZyYW1lIGRlZmluaXRpb24gaW5jbHVkZXMgRVhDTFVERSBDVVJS RU5UIFJPVy4KK0hJTlQ6ICBSZW1vdmUgdGhlIEVYQ0xVREUgY2xhdXNlIGZyb20gdGhlIHdpbmRv dyBkZWZpbml0aW9uLgorLS0gRXhwZWN0ZWQ6IEVSUk9SOiBjYW5ub3QgdXNlIEVYQ0xVREUgb3B0 aW9ucyB3aXRoIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uCistLSBFWENMVURFIEdST1VQIG5vdCBw ZXJtaXR0ZWQKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZST00gcnByX2ZyYW1lCitXSU5ET1cg dyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBFWENMVURFIEdST1VQCisgICAgUEFUVEVSTiAoQSsp CisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKK0VSUk9SOiAgY2Fubm90IHVzZSBFWENMVURF IG9wdGlvbnMgd2l0aCByb3cgcGF0dGVybiByZWNvZ25pdGlvbgorTElORSA2OiAgICAgRVhDTFVE RSBHUk9VUAorICAgICAgICAgICAgXgorREVUQUlMOiAgRnJhbWUgZGVmaW5pdGlvbiBpbmNsdWRl cyBFWENMVURFIEdST1VQLgorSElOVDogIFJlbW92ZSB0aGUgRVhDTFVERSBjbGF1c2UgZnJvbSB0 aGUgd2luZG93IGRlZmluaXRpb24uCistLSBFeHBlY3RlZDogRVJST1I6IGNhbm5vdCB1c2UgRVhD TFVERSBvcHRpb25zIHdpdGggcm93IHBhdHRlcm4gcmVjb2duaXRpb24KKy0tIEVYQ0xVREUgVElF UyBub3QgcGVybWl0dGVkCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CitGUk9NIHJwcl9mcmFtZQor V0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgRVhDTFVERSBUSUVTCisgICAgUEFUVEVS TiAoQSspCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKK0VSUk9SOiAgY2Fubm90IHVzZSBF WENMVURFIG9wdGlvbnMgd2l0aCByb3cgcGF0dGVybiByZWNvZ25pdGlvbgorTElORSA2OiAgICAg RVhDTFVERSBUSUVTCisgICAgICAgICAgICBeCitERVRBSUw6ICBGcmFtZSBkZWZpbml0aW9uIGlu Y2x1ZGVzIEVYQ0xVREUgVElFUy4KK0hJTlQ6ICBSZW1vdmUgdGhlIEVYQ0xVREUgY2xhdXNlIGZy b20gdGhlIHdpbmRvdyBkZWZpbml0aW9uLgorLS0gRXhwZWN0ZWQ6IEVSUk9SOiBjYW5ub3QgdXNl IEVYQ0xVREUgb3B0aW9ucyB3aXRoIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uCistLSBSQU5HRSBm cmFtZSBub3Qgc3RhcnRpbmcgYXQgQ1VSUkVOVCBST1cKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcK K0ZST00gcnByX2ZyYW1lCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBSQU5H RSBCRVRXRUVOIFVOQk9VTkRFRCBQUkVDRURJTkcgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCispOworRVJST1I6ICBjYW5u b3QgdXNlIEZSQU1FIG9wdGlvbiBSQU5HRSB3aXRoIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uCitM SU5FIDU6ICAgICBSQU5HRSBCRVRXRUVOIFVOQk9VTkRFRCBQUkVDRURJTkcgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTi4uLgorICAgICAgICAgICAgXgorSElOVDogIFVzZSBST1dTIGluc3RlYWQuCist LSBFeHBlY3RlZDogRVJST1I6IGNhbm5vdCB1c2UgRlJBTUUgb3B0aW9uIFJBTkdFIHdpdGggcm93 IHBhdHRlcm4gcmVjb2duaXRpb24KKy0tIEdST1VQUyBmcmFtZSBub3Qgc3RhcnRpbmcgYXQgQ1VS UkVOVCBST1cKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZST00gcnByX2ZyYW1lCitXSU5ET1cg dyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBHUk9VUFMgQkVUV0VFTiBVTkJPVU5ERUQgUFJF Q0VESU5HIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVG SU5FIEEgQVMgdmFsID4gMAorKTsKK0VSUk9SOiAgY2Fubm90IHVzZSBGUkFNRSBvcHRpb24gR1JP VVBTIHdpdGggcm93IHBhdHRlcm4gcmVjb2duaXRpb24KK0xJTkUgNTogICAgIEdST1VQUyBCRVRX RUVOIFVOQk9VTkRFRCBQUkVDRURJTkcgQU5EIFVOQk9VTkRFRCBGT0xMT1dJLi4uCisgICAgICAg ICAgICBeCitISU5UOiAgVXNlIFJPV1MgaW5zdGVhZC4KKy0tIEV4cGVjdGVkOiBFUlJPUjogY2Fu bm90IHVzZSBGUkFNRSBvcHRpb24gR1JPVVBTIHdpdGggcm93IHBhdHRlcm4gcmVjb2duaXRpb24K Ky0tIFN0YXJ0aW5nIHdpdGggTiBQUkVDRURJTkcKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZS T00gcnByX2ZyYW1lCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJF VFdFRU4gMSBQUkVDRURJTkcgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChB KykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCispOworRVJST1I6ICBGUkFNRSBtdXN0IHN0YXJ0 IGF0IENVUlJFTlQgUk9XIHdoZW4gdXNpbmcgcm93IHBhdHRlcm4gcmVjb2duaXRpb24KK0xJTkUg NTogICAgIFJPV1MgQkVUV0VFTiAxIFBSRUNFRElORyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgICAgICAgICAgXgorREVUQUlMOiAgQ3VycmVudCBmcmFtZSBzdGFydHMgd2l0aCBvZmZzZXQg UFJFQ0VESU5HLgorSElOVDogIFVzZTogUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCAuLi4K Ky0tIEV4cGVjdGVkOiBFUlJPUjogRlJBTUUgbXVzdCBzdGFydCBhdCBjdXJyZW50IHJvdyB3aGVu IHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGlzIHVzZWQKKy0tIFN0YXJ0aW5nIHdpdGggTiBGT0xM T1dJTkcKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZST00gcnByX2ZyYW1lCitXSU5ET1cgdyBB UyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gMSBGT0xMT1dJTkcgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2YWwg PiAwCispOworRVJST1I6ICBGUkFNRSBtdXN0IHN0YXJ0IGF0IENVUlJFTlQgUk9XIHdoZW4gdXNp bmcgcm93IHBhdHRlcm4gcmVjb2duaXRpb24KK0xJTkUgNTogICAgIFJPV1MgQkVUV0VFTiAxIEZP TExPV0lORyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgXgorREVUQUlMOiAg Q3VycmVudCBmcmFtZSBzdGFydHMgd2l0aCBvZmZzZXQgRk9MTE9XSU5HLgorSElOVDogIFVzZTog Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCAuLi4KKy0tIEV4cGVjdGVkOiBFUlJPUjogRlJB TUUgbXVzdCBzdGFydCBhdCBjdXJyZW50IHJvdyB3aGVuIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9u IGlzIHVzZWQKKy0tIEZyYW1lIGVuZCBib3VuZCBlZGdlIGNhc2VzCistLSBFbmQgYmVmb3JlIHN0 YXJ0OiBDVVJSRU5UIFJPVyBBTkQgMSBQUkVDRURJTkcKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcK K0ZST00gcnByX2ZyYW1lCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDEgUFJFQ0VESU5HCisgICAgUEFUVEVSTiAoQSspCisg ICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKK0VSUk9SOiAgZnJhbWUgc3RhcnRpbmcgZnJvbSBj dXJyZW50IHJvdyBjYW5ub3QgaGF2ZSBwcmVjZWRpbmcgcm93cworTElORSA1OiAgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCAxIFBSRUNFRElORworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCistLSBFeHBlY3RlZDogRVJST1I6IGZyYW1lIHN0YXJ0aW5n IGZyb20gY3VycmVudCByb3cgY2Fubm90IGhhdmUgcHJlY2VkaW5nIHJvd3MKKy0tIEVuZCBiZWZv cmUgc3RhcnQ6IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgUFJFQ0VESU5HCitTRUxFQ1QgQ09V TlQoKikgT1ZFUiB3CitGUk9NIHJwcl9mcmFtZQorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZ IGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgUFJFQ0VESU5H CisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKK0VSUk9SOiAg ZnJhbWUgZW5kIGNhbm5vdCBiZSBVTkJPVU5ERUQgUFJFQ0VESU5HCitMSU5FIDU6ICAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBQUkVDRURJTkcKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gRXhwZWN0ZWQ6IEVSUk9SOiBmcmFt ZSBlbmQgY2Fubm90IGJlIFVOQk9VTkRFRCBQUkVDRURJTkcKKy0tIFNpbmdsZSByb3cgZnJhbWU6 IENVUlJFTlQgUk9XIEFORCBDVVJSRU5UIFJPVworU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9W RVIgdyBhcyBjbnQKK0ZST00gcnByX2ZyYW1lCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkg aWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIENVUlJFTlQgUk9XCisgICAgQUZU RVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEg QVMgdmFsID4gMAorKQorT1JERVIgQlkgaWQ7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0t Ky0tLS0tCisgIDEgfCAgMTAgfCAgIDEKKyAgMiB8ICAxMCB8ICAgMQorICAzIHwgIDEwIHwgICAx CisgIDQgfCAgMjAgfCAgIDEKKyAgNSB8ICAyMCB8ICAgMQorICA2IHwgIDMwIHwgICAxCisoNiBy b3dzKQorCistLSBaZXJvIG9mZnNldDogQ1VSUkVOVCBST1cgQU5EIDAgRk9MTE9XSU5HIChlcXVp dmFsZW50IHRvIENVUlJFTlQgUk9XKQorU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBh cyBjbnQKK0ZST00gcnByX2ZyYW1lCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDAgRk9MTE9XSU5HCisgICAgQUZURVIgTUFU Q0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgdmFs ID4gMAorKQorT1JERVIgQlkgaWQ7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0t CisgIDEgfCAgMTAgfCAgIDEKKyAgMiB8ICAxMCB8ICAgMQorICAzIHwgIDEwIHwgICAxCisgIDQg fCAgMjAgfCAgIDEKKyAgNSB8ICAyMCB8ICAgMQorICA2IHwgIDMwIHwgICAxCisoNiByb3dzKQor CistLSBMYXJnZSBvZmZzZXQ6IENVUlJFTlQgUk9XIEFORCAxMDAwIEZPTExPV0lORworU0VMRUNU IGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX2ZyYW1lCitXSU5ET1cg dyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IDEwMDAgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBB VFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHZhbCA+IDAKKykKK09SREVSIEJZIGlkOworIGlk IHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEwIHwgICA2CisgIDIgfCAg MTAgfCAgIDUKKyAgMyB8ICAxMCB8ICAgNAorICA0IHwgIDIwIHwgICAzCisgIDUgfCAgMjAgfCAg IDIKKyAgNiB8ICAzMCB8ICAgMQorKDYgcm93cykKKworLS0gTWF4aW11bSBvZmZzZXQ6IENVUlJF TlQgUk9XIEFORCAyMTQ3NDgzNjQ2IEZPTExPV0lORyAoSU5UX01BWCAtIDEpCitTRUxFQ1QgaWQs IHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfZnJhbWUKK1dJTkRPVyB3IEFT ICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgMjE0 NzQ4MzY0NiBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAg UEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKQorT1JERVIgQlkgaWQ7Cisg aWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDYKKyAgMiB8 ICAxMCB8ICAgNQorICAzIHwgIDEwIHwgICA0CisgIDQgfCAgMjAgfCAgIDMKKyAgNSB8ICAyMCB8 ICAgMgorICA2IHwgIDMwIHwgICAxCisoNiByb3dzKQorCistLSBSQU5HRSBmcmFtZSB3aXRoIFJQ UiAobm90IHBlcm1pdHRlZCkKK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250 CitGUk9NIHJwcl9mcmFtZQorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIHZhbAorICAgIFJB TkdFIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDEwIEZPTExPV0lORworICAgIEFGVEVSIE1BVENI IFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBIEI/KQorICAgIERFRklORSBBIEFTIHZh bCA+PSAwLCBCIEFTIHZhbCA+PSAwCispCitPUkRFUiBCWSBpZDsKK0VSUk9SOiAgY2Fubm90IHVz ZSBGUkFNRSBvcHRpb24gUkFOR0Ugd2l0aCByb3cgcGF0dGVybiByZWNvZ25pdGlvbgorTElORSA1 OiAgICAgUkFOR0UgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgMTAgRk9MTE9XSU5HCisgICAgICAg ICAgICBeCitISU5UOiAgVXNlIFJPV1MgaW5zdGVhZC4KKy0tIEV4cGVjdGVkOiBFUlJPUjogY2Fu bm90IHVzZSBGUkFNRSBvcHRpb24gUkFOR0Ugd2l0aCByb3cgcGF0dGVybiByZWNvZ25pdGlvbgor LS0gR1JPVVBTIGZyYW1lIHdpdGggUlBSIChub3QgcGVybWl0dGVkKQorU0VMRUNUIGlkLCB2YWws IENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX2ZyYW1lCitXSU5ET1cgdyBBUyAoCisg ICAgT1JERVIgQlkgdmFsCisgICAgR1JPVVBTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDEgRk9M TE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEEg Qj8pCisgICAgREVGSU5FIEEgQVMgdmFsID49IDAsIEIgQVMgdmFsID49IDAKKykKK09SREVSIEJZ IGlkOworRVJST1I6ICBjYW5ub3QgdXNlIEZSQU1FIG9wdGlvbiBHUk9VUFMgd2l0aCByb3cgcGF0 dGVybiByZWNvZ25pdGlvbgorTElORSA1OiAgICAgR1JPVVBTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIDEgRk9MTE9XSU5HCisgICAgICAgICAgICBeCitISU5UOiAgVXNlIFJPV1MgaW5zdGVhZC4K Ky0tIEV4cGVjdGVkOiBFUlJPUjogY2Fubm90IHVzZSBGUkFNRSBvcHRpb24gR1JPVVBTIHdpdGgg cm93IHBhdHRlcm4gcmVjb2duaXRpb24KK0RST1AgVEFCTEUgcnByX2ZyYW1lOworLS0gPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LSBQQVJUSVRJT04gQlkgKyBGUkFNRSBUZXN0cworLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBUZXN0IFBBUlRJVElPTiBC WSB3aXRoIFJQUiB0byBlbnN1cmUgcHJvcGVyIHBhcnRpdGlvbmluZyBiZWhhdmlvcgorQ1JFQVRF IFRBQkxFIHJwcl9wYXJ0aXRpb24gKGlkIElOVCwgZ3JwIElOVCwgdmFsIElOVCk7CitJTlNFUlQg SU5UTyBycHJfcGFydGl0aW9uIFZBTFVFUworICAgICgxLCAxLCAxMCksICgyLCAxLCAyMCksICgz LCAxLCAzMCksCisgICAgKDQsIDIsIDE1KSwgKDUsIDIsIDI1KSwgKDYsIDIsIDM1KTsKKy0tIFBB UlRJVElPTiBCWSB3aXRoIFJPV1MgZnJhbWUKK1NFTEVDVCBpZCwgZ3JwLCB2YWwsIENPVU5UKCop IE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX3BhcnRpdGlvbgorV0lORE9XIHcgQVMgKAorICAgIFBB UlRJVElPTiBCWSBncnAKKyAgICBPUkRFUiBCWSB2YWwKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5F WFQgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyB2YWwgPj0gMTAsIEIg QVMgdmFsID4gMTUKKykKK09SREVSIEJZIGlkOworIGlkIHwgZ3JwIHwgdmFsIHwgY250IAorLS0t LSstLS0tLSstLS0tLSstLS0tLQorICAxIHwgICAxIHwgIDEwIHwgICAzCisgIDIgfCAgIDEgfCAg MjAgfCAgIDIKKyAgMyB8ICAgMSB8ICAzMCB8ICAgMAorICA0IHwgICAyIHwgIDE1IHwgICAzCisg IDUgfCAgIDIgfCAgMjUgfCAgIDIKKyAgNiB8ICAgMiB8ICAzNSB8ICAgMAorKDYgcm93cykKKwor LS0gRXhwZWN0ZWQ6IFBhdHRlcm4gbWF0Y2hpbmcgc2hvdWxkIHJlc2V0IGZvciBlYWNoIHBhcnRp dGlvbgorLS0gUEFSVElUSU9OIEJZIHdpdGggUkFOR0UgZnJhbWUKK1NFTEVDVCBpZCwgZ3JwLCB2 YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX3BhcnRpdGlvbgorV0lORE9XIHcg QVMgKAorICAgIFBBUlRJVElPTiBCWSBncnAKKyAgICBPUkRFUiBCWSB2YWwKKyAgICBSQU5HRSBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCAxMCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQ IFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSBCPykKKyAgICBERUZJTkUgQSBBUyB2YWwgPj0g MTAsIEIgQVMgdmFsID49IDIwCispCitPUkRFUiBCWSBpZDsKK0VSUk9SOiAgY2Fubm90IHVzZSBG UkFNRSBvcHRpb24gUkFOR0Ugd2l0aCByb3cgcGF0dGVybiByZWNvZ25pdGlvbgorTElORSA2OiAg ICAgUkFOR0UgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgMTAgRk9MTE9XSU5HCisgICAgICAgICAg ICBeCitISU5UOiAgVXNlIFJPV1MgaW5zdGVhZC4KKy0tIEV4cGVjdGVkOiBFUlJPUjogY2Fubm90 IHVzZSBGUkFNRSBvcHRpb24gUkFOR0Ugd2l0aCByb3cgcGF0dGVybiByZWNvZ25pdGlvbgorRFJP UCBUQUJMRSBycHJfcGFydGl0aW9uOworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBQQVRURVJOIFN5bnRheCBUZXN0cwor LS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CitDUkVBVEUgVEFCTEUgcnByX3BhdHRlcm4gKGlkIElOVCwgdmFsIElOVCk7CitJTlNF UlQgSU5UTyBycHJfcGF0dGVybiBWQUxVRVMKKyAgICAoMSwgNSksICgyLCAxMCksICgzLCAxNSks ICg0LCAyMCksICg1LCAyNSksCisgICAgKDYsIDMwKSwgKDcsIDM1KSwgKDgsIDQwKSwgKDksIDQ1 KSwgKDEwLCA1MCk7CistLSBBbHRlcm5hdGlvbiAofCkKKy0tIE11bHRpcGxlIGFsdGVybmF0aXZl cworU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX3BhdHRl cm4KK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErIHwgQisgfCBD KykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAzNSwgQiBBUyB2YWwgQkVUV0VFTiAxNSBBTkQgMzUs IEMgQVMgdmFsIDwgMTUKKykKK09SREVSIEJZIGlkOworIGlkIHwgdmFsIHwgY250IAorLS0tLSst LS0tLSstLS0tLQorICAxIHwgICA1IHwgICAyCisgIDIgfCAgMTAgfCAgIDAKKyAgMyB8ICAxNSB8 ICAgNQorICA0IHwgIDIwIHwgICAwCisgIDUgfCAgMjUgfCAgIDAKKyAgNiB8ICAzMCB8ICAgMAor ICA3IHwgIDM1IHwgICAwCisgIDggfCAgNDAgfCAgIDMKKyAgOSB8ICA0NSB8ICAgMAorIDEwIHwg IDUwIHwgICAwCisoMTAgcm93cykKKworLS0gR3JvdXBpbmcKKy0tIE5lc3RlZCBncm91cGluZyB3 aXRoIHF1YW50aWZpZXIKK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitG Uk9NIHJwcl9wYXR0ZXJuCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJO ICgoKEEgQikgQykrKQorICAgIERFRklORSBBIEFTIHZhbCA+IDEwLCBCIEFTIHZhbCA+IDIwLCBD IEFTIHZhbCA+IDMwCispCitPUkRFUiBCWSBpZDsKKyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0t LS0rLS0tLS0KKyAgMSB8ICAgNSB8ICAgMAorICAyIHwgIDEwIHwgICAwCisgIDMgfCAgMTUgfCAg IDAKKyAgNCB8ICAyMCB8ICAgMAorICA1IHwgIDI1IHwgICA2CisgIDYgfCAgMzAgfCAgIDAKKyAg NyB8ICAzNSB8ICAgMAorICA4IHwgIDQwIHwgICAwCisgIDkgfCAgNDUgfCAgIDAKKyAxMCB8ICA1 MCB8ICAgMAorKDEwIHJvd3MpCisKKy0tIFNlcXVlbmNlCistLSBNdWx0aS1lbGVtZW50IHNlcXVl bmNlCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfcGF0 dGVybgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCIEMgRCBF KQorICAgIERFRklORQorICAgICAgICBBIEFTIHZhbCA8IDE1LAorICAgICAgICBCIEFTIHZhbCBC RVRXRUVOIDE1IEFORCAyNSwKKyAgICAgICAgQyBBUyB2YWwgQkVUV0VFTiAyNSBBTkQgMzUsCisg ICAgICAgIEQgQVMgdmFsIEJFVFdFRU4gMzUgQU5EIDQ1LAorICAgICAgICBFIEFTIHZhbCA+PSA0 NQorKQorT1JERVIgQlkgaWQ7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisg IDEgfCAgIDUgfCAgIDAKKyAgMiB8ICAxMCB8ICAgMAorICAzIHwgIDE1IHwgICAwCisgIDQgfCAg MjAgfCAgIDAKKyAgNSB8ICAyNSB8ICAgMAorICA2IHwgIDMwIHwgICAwCisgIDcgfCAgMzUgfCAg IDAKKyAgOCB8ICA0MCB8ICAgMAorICA5IHwgIDQ1IHwgICAwCisgMTAgfCAgNTAgfCAgIDAKKygx MCByb3dzKQorCistLSBDb21wbGV4IGNvbWJpbmF0aW9ucworLS0gQWx0ZXJuYXRpb24gd2l0aCBn cm91cGluZworU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnBy X3BhdHRlcm4KK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKChBIEIp IHwgKEMgRCkpCisgICAgREVGSU5FIEEgQVMgdmFsIDwgMjAsIEIgQVMgdmFsID49IDIwLCBDIEFT IHZhbCA8IDMwLCBEIEFTIHZhbCA+PSAzMAorKQorT1JERVIgQlkgaWQ7CisgaWQgfCB2YWwgfCBj bnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgIDUgfCAgIDAKKyAgMiB8ICAxMCB8ICAgMAor ICAzIHwgIDE1IHwgICAyCisgIDQgfCAgMjAgfCAgIDAKKyAgNSB8ICAyNSB8ICAgMgorICA2IHwg IDMwIHwgICAwCisgIDcgfCAgMzUgfCAgIDAKKyAgOCB8ICA0MCB8ICAgMAorICA5IHwgIDQ1IHwg ICAwCisgMTAgfCAgNTAgfCAgIDAKKygxMCByb3dzKQorCistLSBBbHRlcm5hdGlvbiArIHNlcXVl bmNlICsgZ3JvdXBpbmcKK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitG Uk9NIHJwcl9wYXR0ZXJuCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJO IChTVEFSVCAoVVB7Mix9IERPV04/IHwgRkxBVCspIEZJTklTSCkKKyAgICBERUZJTkUKKyAgICAg ICAgU1RBUlQgQVMgdmFsID49IDAsCisgICAgICAgIFVQIEFTIHZhbCA+IDIwLAorICAgICAgICBE T1dOIEFTIHZhbCA8PSAzMCwKKyAgICAgICAgRkxBVCBBUyB2YWwgQkVUV0VFTiAyNSBBTkQgMzUs CisgICAgICAgIEZJTklTSCBBUyB2YWwgPiA0MAorKQorT1JERVIgQlkgaWQ7CisgaWQgfCB2YWwg fCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgIDUgfCAgIDAKKyAgMiB8ICAxMCB8ICAg MAorICAzIHwgIDE1IHwgICAwCisgIDQgfCAgMjAgfCAgIDcKKyAgNSB8ICAyNSB8ICAgMAorICA2 IHwgIDMwIHwgICAwCisgIDcgfCAgMzUgfCAgIDAKKyAgOCB8ICA0MCB8ICAgMAorICA5IHwgIDQ1 IHwgICAwCisgMTAgfCAgNTAgfCAgIDAKKygxMCByb3dzKQorCistLSBOZXN0ZWQgYWx0ZXJuYXRp b24gaW4gZ3JvdXBzCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJP TSBycHJfcGF0dGVybgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAo KEEgfCBCKSAoQyB8IEQpKQorICAgIERFRklORSBBIEFTIHZhbCA8IDE1LCBCIEFTIHZhbCBCRVRX RUVOIDE1IEFORCAyNSwgQyBBUyB2YWwgQkVUV0VFTiAyNSBBTkQgMzUsIEQgQVMgdmFsID4gMzUK KykKK09SREVSIEJZIGlkOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAx IHwgICA1IHwgICAwCisgIDIgfCAgMTAgfCAgIDAKKyAgMyB8ICAxNSB8ICAgMAorICA0IHwgIDIw IHwgICAyCisgIDUgfCAgMjUgfCAgIDAKKyAgNiB8ICAzMCB8ICAgMAorICA3IHwgIDM1IHwgICAw CisgIDggfCAgNDAgfCAgIDAKKyAgOSB8ICA0NSB8ICAgMAorIDEwIHwgIDUwIHwgICAwCisoMTAg cm93cykKKworRFJPUCBUQUJMRSBycHJfcGF0dGVybjsKKy0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gUXVhbnRpZmllcnMg VGVzdHMKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorQ1JFQVRFIFRBQkxFIHJwcl9xdWFudCAoaWQgSU5ULCB2YWwgSU5UKTsK K0lOU0VSVCBJTlRPIHJwcl9xdWFudCBWQUxVRVMKKyAgICAoMSwgMTApLCAoMiwgMjApLCAoMywg MzApLCAoNCwgNDApLCAoNSwgNTApLAorICAgICg2LCA2MCksICg3LCA3MCksICg4LCA4MCksICg5 LCA5MCksICgxMCwgMTAwKTsKKy0tIEJhc2ljIGdyZWVkeSBxdWFudGlmaWVycworLS0gKiAoemVy byBvciBtb3JlKQorU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00g cnByX3F1YW50CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKikK KyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCispCitPUkRFUiBCWSBpZDsKKyBpZCB8IHZhbCB8IGNu dCAKKy0tLS0rLS0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAxMAorICAyIHwgIDIwIHwgICAwCisg IDMgfCAgMzAgfCAgIDAKKyAgNCB8ICA0MCB8ICAgMAorICA1IHwgIDUwIHwgICAwCisgIDYgfCAg NjAgfCAgIDAKKyAgNyB8ICA3MCB8ICAgMAorICA4IHwgIDgwIHwgICAwCisgIDkgfCAgOTAgfCAg IDAKKyAxMCB8IDEwMCB8ICAgMAorKDEwIHJvd3MpCisKKy0tICsgKG9uZSBvciBtb3JlKQorU0VM RUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX3F1YW50CitXSU5E T1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBB UyB2YWwgPiA1MAorKQorT1JERVIgQlkgaWQ7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0t Ky0tLS0tCisgIDEgfCAgMTAgfCAgIDAKKyAgMiB8ICAyMCB8ICAgMAorICAzIHwgIDMwIHwgICAw CisgIDQgfCAgNDAgfCAgIDAKKyAgNSB8ICA1MCB8ICAgMAorICA2IHwgIDYwIHwgICA1CisgIDcg fCAgNzAgfCAgIDAKKyAgOCB8ICA4MCB8ICAgMAorICA5IHwgIDkwIHwgICAwCisgMTAgfCAxMDAg fCAgIDAKKygxMCByb3dzKQorCistLSA/ICh6ZXJvIG9yIG9uZSkKK1NFTEVDVCBpZCwgdmFsLCBD T1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9xdWFudAorV0lORE9XIHcgQVMgKAorICAg IE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQT8pCisgICAgREVGSU5FIEEgQVMgdmFsID0gNTAKKykK K09SREVSIEJZIGlkOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwg IDEwIHwgICAwCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAzMCB8ICAgMAorICA0IHwgIDQwIHwg ICAwCisgIDUgfCAgNTAgfCAgIDEKKyAgNiB8ICA2MCB8ICAgMAorICA3IHwgIDcwIHwgICAwCisg IDggfCAgODAgfCAgIDAKKyAgOSB8ICA5MCB8ICAgMAorIDEwIHwgMTAwIHwgICAwCisoMTAgcm93 cykKKworLS0gRWRnZSBjYXNlIHF1YW50aWZpZXJzCistLSB7MH0gaXMgbm90IGFsbG93ZWQgKG1p biBtdXN0IGJlID49IDEpCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAor RlJPTSBycHJfcXVhbnQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4g KEF7MH0gQikKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAxMDAwLCBCIEFTIHZhbCA+IDAKKykKK09S REVSIEJZIGlkOworRVJST1I6ICBxdWFudGlmaWVyIGJvdW5kIG11c3QgYmUgYmV0d2VlbiAxIGFu ZCAyMTQ3NDgzNjQ2CitMSU5FIDY6ICAgICBQQVRURVJOIChBezB9IEIpCisgICAgICAgICAgICAg ICAgICAgICAgIF4KKy0tIEV4cGVjdGVkOiBFUlJPUjogcXVhbnRpZmllciBib3VuZCBtdXN0IGJl IGJldHdlZW4gMSBhbmQgMjE0NzQ4MzY0NgorLS0gezAsMH0gaXMgbm90IGFsbG93ZWQgKG1heCBt dXN0IGJlID49IDEpCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJP TSBycHJfcXVhbnQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEF7 MCwwfSBCKQorICAgIERFRklORSBBIEFTIHZhbCA+IDEwMDAsIEIgQVMgdmFsID4gMAorKQorT1JE RVIgQlkgaWQ7CitFUlJPUjogIHF1YW50aWZpZXIgYm91bmRzIG11c3QgYmUgYmV0d2VlbiAwIGFu ZCAyMTQ3NDgzNjQ2IHdpdGggbWF4ID49IDEKK0xJTkUgNjogICAgIFBBVFRFUk4gKEF7MCwwfSBC KQorICAgICAgICAgICAgICAgICAgICAgICBeCistLSBFeHBlY3RlZDogRVJST1I6IHF1YW50aWZp ZXIgYm91bmRzIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMTQ3NDgzNjQ2IHdpdGggbWF4ID49IDEK Ky0tIHswLDF9IChlcXVpdmFsZW50IHRvID8pCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZF UiB3IGFzIGNudAorRlJPTSBycHJfcXVhbnQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBp ZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIFBBVFRFUk4gKEF7MCwxfSkKKyAgICBERUZJTkUgQSBBUyB2YWwgPSA1MAorKQorT1JERVIg QlkgaWQ7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAg IDAKKyAgMiB8ICAyMCB8ICAgMAorICAzIHwgIDMwIHwgICAwCisgIDQgfCAgNDAgfCAgIDAKKyAg NSB8ICA1MCB8ICAgMQorICA2IHwgIDYwIHwgICAwCisgIDcgfCAgNzAgfCAgIDAKKyAgOCB8ICA4 MCB8ICAgMAorICA5IHwgIDkwIHwgICAwCisgMTAgfCAxMDAgfCAgIDAKKygxMCByb3dzKQorCist LSBFeGFjdCBxdWFudGlmaWVycyB7bn0KKy0tIHszfSAocmVwcmVzZW50YXRpdmUgZXhhY3QgcXVh bnRpZmllcikKK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJw cl9xdWFudAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQXszfSkK KyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCispCitPUkRFUiBCWSBpZDsKKyBpZCB8IHZhbCB8IGNu dCAKKy0tLS0rLS0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAgMworICAyIHwgIDIwIHwgICAwCisg IDMgfCAgMzAgfCAgIDAKKyAgNCB8ICA0MCB8ICAgMworICA1IHwgIDUwIHwgICAwCisgIDYgfCAg NjAgfCAgIDAKKyAgNyB8ICA3MCB8ICAgMworICA4IHwgIDgwIHwgICAwCisgIDkgfCAgOTAgfCAg IDAKKyAxMCB8IDEwMCB8ICAgMAorKDEwIHJvd3MpCisKKy0tIFJhbmdlIHF1YW50aWZpZXJzIHtu LH0KKy0tIHsyLH0gKHJlcHJlc2VudGF0aXZlIG4gb3IgbW9yZSkKK1NFTEVDVCBpZCwgdmFsLCBD T1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9xdWFudAorV0lORE9XIHcgQVMgKAorICAg IE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQXsyLH0pCisgICAgREVGSU5FIEEgQVMgdmFsID4gNDAK KykKK09SREVSIEJZIGlkOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAx IHwgIDEwIHwgICAwCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAzMCB8ICAgMAorICA0IHwgIDQw IHwgICAwCisgIDUgfCAgNTAgfCAgIDYKKyAgNiB8ICA2MCB8ICAgMAorICA3IHwgIDcwIHwgICAw CisgIDggfCAgODAgfCAgIDAKKyAgOSB8ICA5MCB8ICAgMAorIDEwIHwgMTAwIHwgICAwCisoMTAg cm93cykKKworLS0gVXBwZXIgYm91bmQgcXVhbnRpZmllcnMgeyxtfQorLS0geywzfSAocmVwcmVz ZW50YXRpdmUgdXAgdG8gbSkKK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250 CitGUk9NIHJwcl9xdWFudAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVS TiAoQXssM30pCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKQorT1JERVIgQlkgaWQ7CisgaWQg fCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDMKKyAgMiB8ICAy MCB8ICAgMAorICAzIHwgIDMwIHwgICAwCisgIDQgfCAgNDAgfCAgIDMKKyAgNSB8ICA1MCB8ICAg MAorICA2IHwgIDYwIHwgICAwCisgIDcgfCAgNzAgfCAgIDMKKyAgOCB8ICA4MCB8ICAgMAorICA5 IHwgIDkwIHwgICAwCisgMTAgfCAxMDAgfCAgIDEKKygxMCByb3dzKQorCistLSBSYW5nZSBxdWFu dGlmaWVycyB7bixtfQorLS0gezMsN30gKHJlcHJlc2VudGF0aXZlIHJhbmdlKQorU0VMRUNUIGlk LCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX3F1YW50CitXSU5ET1cgdyBB UyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBezMsN30pCisgICAgREVGSU5FIEEgQVMg dmFsID4gMAorKQorT1JERVIgQlkgaWQ7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0t LS0tCisgIDEgfCAgMTAgfCAgIDcKKyAgMiB8ICAyMCB8ICAgMAorICAzIHwgIDMwIHwgICAwCisg IDQgfCAgNDAgfCAgIDAKKyAgNSB8ICA1MCB8ICAgMAorICA2IHwgIDYwIHwgICAwCisgIDcgfCAg NzAgfCAgIDAKKyAgOCB8ICA4MCB8ICAgMworICA5IHwgIDkwIHwgICAwCisgMTAgfCAxMDAgfCAg IDAKKygxMCByb3dzKQorCitEUk9QIFRBQkxFIHJwcl9xdWFudDsKKy0tIFJlbHVjdGFudCBxdWFu dGlmaWVycworQ1JFQVRFIFRBQkxFIHJwcl9yZWx1Y3RhbnQgKGlkIElOVCwgdmFsIElOVCk7CitJ TlNFUlQgSU5UTyBycHJfcmVsdWN0YW50IFZBTFVFUyAoMSwgMTApLCAoMiwgMjApLCAoMywgMzAp OworLS0gKj8gKHplcm8gb3IgbW9yZSwgcmVsdWN0YW50KQorU0VMRUNUIENPVU5UKCopIE9WRVIg dworRlJPTSBycHJfcmVsdWN0YW50CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQ QVRURVJOIChBKj8pCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKKyBjb3VudCAKKy0tLS0t LS0KKyAgICAgMAorICAgICAwCisgICAgIDAKKygzIHJvd3MpCisKKy0tIFJlbHVjdGFudCBxdWFu dGlmaWVyOiBwcmVmZXIgc2hvcnRlc3QgbWF0Y2gKKy0tICs/IChvbmUgb3IgbW9yZSwgcmVsdWN0 YW50KQorU0VMRUNUIENPVU5UKCopIE9WRVIgdworRlJPTSBycHJfcmVsdWN0YW50CitXSU5ET1cg dyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKz8pCisgICAgREVGSU5FIEEgQVMg dmFsID4gMAorKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMQorICAgICAxCisgICAgIDEKKygz IHJvd3MpCisKKy0tIFJlbHVjdGFudCBxdWFudGlmaWVyOiBwcmVmZXIgc2hvcnRlc3QgbWF0Y2gK Ky0tID8/ICh6ZXJvIG9yIG9uZSwgcmVsdWN0YW50KQorU0VMRUNUIENPVU5UKCopIE9WRVIgdwor RlJPTSBycHJfcmVsdWN0YW50CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRU RVJOIChBPz8pCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKKyBjb3VudCAKKy0tLS0tLS0K KyAgICAgMAorICAgICAwCisgICAgIDAKKygzIHJvd3MpCisKKy0tIFJlbHVjdGFudCBxdWFudGlm aWVyOiBwcmVmZXIgc2hvcnRlc3QgbWF0Y2gKKy0tIHtuLH0/IChuIG9yIG1vcmUsIHJlbHVjdGFu dCkKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZST00gcnByX3JlbHVjdGFudAorV0lORE9XIHcg QVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQXsyLH0/KQorICAgIERFRklORSBBIEFT IHZhbCA+IDAKKyk7CisgY291bnQgCistLS0tLS0tCisgICAgIDIKKyAgICAgMAorICAgICAwCiso MyByb3dzKQorCistLSBSZWx1Y3RhbnQgcXVhbnRpZmllcjogcHJlZmVyIHNob3J0ZXN0IG1hdGNo CistLSB7bixtfT8gKG4gdG8gbSwgcmVsdWN0YW50KQorU0VMRUNUIENPVU5UKCopIE9WRVIgdwor RlJPTSBycHJfcmVsdWN0YW50CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRU RVJOIChBezEsM30/KQorICAgIERFRklORSBBIEFTIHZhbCA+IDAKKyk7CisgY291bnQgCistLS0t LS0tCisgICAgIDEKKyAgICAgMQorICAgICAxCisoMyByb3dzKQorCistLSBSZWx1Y3RhbnQgcXVh bnRpZmllcjogcHJlZmVyIHNob3J0ZXN0IG1hdGNoCistLSB7bn0/IChleGFjdGx5IG4sIHJlbHVj dGFudCkKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZST00gcnByX3JlbHVjdGFudAorV0lORE9X IHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQXsyfT8pCisgICAgREVGSU5FIEEg QVMgdmFsID4gMAorKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMgorICAgICAwCisgICAgIDAK KygzIHJvd3MpCisKKy0tIFJlbHVjdGFudCBxdWFudGlmaWVyOiBwcmVmZXIgc2hvcnRlc3QgbWF0 Y2gKKy0tIHssbX0/ICh1cCB0byBtLCByZWx1Y3RhbnQpIC0gQ09NUExFVEVMWSBVTlRFU1RFRCBS VUxFIQorU0VMRUNUIENPVU5UKCopIE9WRVIgdworRlJPTSBycHJfcmVsdWN0YW50CitXSU5ET1cg dyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBeywzfT8pCisgICAgREVGSU5FIEEg QVMgdmFsID4gMAorKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorICAgICAwCisgICAgIDAK KygzIHJvd3MpCisKKy0tIFJlbHVjdGFudCBxdWFudGlmaWVyOiBwcmVmZXIgc2hvcnRlc3QgbWF0 Y2gKKy0tIEludmFsaWQgcmVsdWN0YW50IHBhdHRlcm5zICh3cm9uZyB0b2tlbiBhZnRlciBxdWFu dGlmaWVyKQorLS0gezJ9KyAoc2hvdWxkIGJlIHsyfT8gbm90IHsyfSspCitTRUxFQ1QgQ09VTlQo KikgT1ZFUiB3CitGUk9NIHJwcl9yZWx1Y3RhbnQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBC WSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIFBBVFRFUk4gKEF7Mn0rKQorICAgIERFRklORSBBIEFTIHZhbCA+IDAKKyk7CitFUlJP UjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICIrIgorTElORSA2OiAgICAgUEFUVEVSTiAoQXsy fSspCisgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gRXhwZWN0ZWQ6IEVSUk9SOiBzeW50 YXggZXJyb3IgYXQgb3IgbmVhciAiKyIKKy0tIHsyLH0qIChzaG91bGQgYmUgezIsfT8gbm90IHsy LH0qKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdworRlJPTSBycHJfcmVsdWN0YW50CitXSU5ET1cg dyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBezIsfSopCisgICAgREVGSU5FIEEg QVMgdmFsID4gMAorKTsKK0VSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIioiCitMSU5F IDY6ICAgICBQQVRURVJOIChBezIsfSopCisgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0t IEV4cGVjdGVkOiBFUlJPUjogc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIioiCistLSB7LDN9KiAo c2hvdWxkIGJlIHssM30/IG5vdCB7LDN9KikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZST00g cnByX3JlbHVjdGFudAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAo QXssM30qKQorICAgIERFRklORSBBIEFTIHZhbCA+IDAKKyk7CitFUlJPUjogIHN5bnRheCBlcnJv ciBhdCBvciBuZWFyICIqIgorTElORSA2OiAgICAgUEFUVEVSTiAoQXssM30qKQorICAgICAgICAg ICAgICAgICAgICAgICAgICBeCistLSBFeHBlY3RlZDogRVJST1I6IHN5bnRheCBlcnJvciBhdCBv ciBuZWFyICIqIgorLS0gezEsM30rIChzaG91bGQgYmUgezEsM30/IG5vdCB7MSwzfSspCitTRUxF Q1QgQ09VTlQoKikgT1ZFUiB3CitGUk9NIHJwcl9yZWx1Y3RhbnQKK1dJTkRPVyB3IEFTICgKKyAg ICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIFBBVFRFUk4gKEF7MSwzfSspCisgICAgREVGSU5FIEEgQVMgdmFsID4g MAorKTsKK0VSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIisiCitMSU5FIDY6ICAgICBQ QVRURVJOIChBezEsM30rKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gRXhwZWN0 ZWQ6IEVSUk9SOiBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiKyIKKy0tIEJvdW5kYXJ5IGVycm9y cyBpbiByZWx1Y3RhbnQgcXVhbnRpZmllcnMKKy0tIHstMX0/IChuZWdhdGl2ZSBib3VuZCkKK1NF TEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZST00gcnByX3JlbHVjdGFudAorV0lORE9XIHcgQVMgKAor ICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQXstMX0/KQorICAgIERFRklORSBBIEFTIHZhbCA+ IDAKKyk7CitFUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICItIgorTElORSA2OiAgICAg UEFUVEVSTiAoQXstMX0/KQorICAgICAgICAgICAgICAgICAgICAgICBeCistLSBFeHBlY3RlZDog RVJST1I6IHN5bnRheCBlcnJvciBhdCBvciBuZWFyICItIgorLS0gezIxNDc0ODM2NDd9PyAoSU5U X01BWCkKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZST00gcnByX3JlbHVjdGFudAorV0lORE9X IHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQXsyMTQ3NDgzNjQ3fT8pCisgICAg REVGSU5FIEEgQVMgdmFsID4gMAorKTsKK0VSUk9SOiAgcXVhbnRpZmllciBib3VuZCBtdXN0IGJl IGJldHdlZW4gMSBhbmQgMjE0NzQ4MzY0NgorTElORSA2OiAgICAgUEFUVEVSTiAoQXsyMTQ3NDgz NjQ3fT8pCisgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIEV4cGVjdGVkOiBFUlJPUjogcXVh bnRpZmllciBib3VuZCBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMjE0NzQ4MzY0NgorLS0gey0xLH0/ IChuZWdhdGl2ZSBsb3dlciBib3VuZCkKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZST00gcnBy X3JlbHVjdGFudAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQXst MSx9PykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCispOworRVJST1I6ICBzeW50YXggZXJyb3Ig YXQgb3IgbmVhciAiLSIKK0xJTkUgNjogICAgIFBBVFRFUk4gKEF7LTEsfT8pCisgICAgICAgICAg ICAgICAgICAgICAgIF4KKy0tIEV4cGVjdGVkOiBFUlJPUjogc3ludGF4IGVycm9yIGF0IG9yIG5l YXIgIi0iCistLSB7MjE0NzQ4MzY0Nyx9PyAoSU5UX01BWCBsb3dlciBib3VuZCkKK1NFTEVDVCBD T1VOVCgqKSBPVkVSIHcKK0ZST00gcnByX3JlbHVjdGFudAorV0lORE9XIHcgQVMgKAorICAgIE9S REVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgUEFUVEVSTiAoQXsyMTQ3NDgzNjQ3LH0/KQorICAgIERFRklORSBBIEFTIHZh bCA+IDAKKyk7CitFUlJPUjogIHF1YW50aWZpZXIgYm91bmQgbXVzdCBiZSBiZXR3ZWVuIDAgYW5k IDIxNDc0ODM2NDYKK0xJTkUgNjogICAgIFBBVFRFUk4gKEF7MjE0NzQ4MzY0Nyx9PykKKyAgICAg ICAgICAgICAgICAgICAgICAgXgorLS0gRXhwZWN0ZWQ6IEVSUk9SOiBxdWFudGlmaWVyIGJvdW5k IG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMTQ3NDgzNjQ2CistLSB7LDB9PyAoemVybyB1cHBlciBi b3VuZCkKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZST00gcnByX3JlbHVjdGFudAorV0lORE9X IHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQXssMH0/KQorICAgIERFRklORSBB IEFTIHZhbCA+IDAKKyk7CitFUlJPUjogIHF1YW50aWZpZXIgYm91bmQgbXVzdCBiZSBiZXR3ZWVu IDEgYW5kIDIxNDc0ODM2NDYKK0xJTkUgNjogICAgIFBBVFRFUk4gKEF7LDB9PykKKyAgICAgICAg ICAgICAgICAgICAgICAgIF4KKy0tIEV4cGVjdGVkOiBFUlJPUjogcXVhbnRpZmllciBib3VuZCBt dXN0IGJlIGJldHdlZW4gMSBhbmQgMjE0NzQ4MzY0NgorLS0geywyMTQ3NDgzNjQ3fT8gKElOVF9N QVggdXBwZXIgYm91bmQpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CitGUk9NIHJwcl9yZWx1Y3Rh bnQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEF7LDIxNDc0ODM2 NDd9PykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCispOworRVJST1I6ICBxdWFudGlmaWVyIGJv dW5kIG11c3QgYmUgYmV0d2VlbiAxIGFuZCAyMTQ3NDgzNjQ2CitMSU5FIDY6ICAgICBQQVRURVJO IChBeywyMTQ3NDgzNjQ3fT8pCisgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBFeHBlY3Rl ZDogRVJST1I6IHF1YW50aWZpZXIgYm91bmQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDIxNDc0ODM2 NDYKKy0tIHstMSwzfT8gKG5lZ2F0aXZlIGxvd2VyIGluIHJhbmdlKQorU0VMRUNUIENPVU5UKCop IE9WRVIgdworRlJPTSBycHJfcmVsdWN0YW50CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkg aWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBQQVRURVJOIChBey0xLDN9PykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCispOworRVJS T1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiLSIKK0xJTkUgNjogICAgIFBBVFRFUk4gKEF7 LTEsM30/KQorICAgICAgICAgICAgICAgICAgICAgICBeCistLSBFeHBlY3RlZDogRVJST1I6IHN5 bnRheCBlcnJvciBhdCBvciBuZWFyICItIgorLS0gezEsMjE0NzQ4MzY0N30/IChJTlRfTUFYIHVw cGVyIGluIHJhbmdlKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdworRlJPTSBycHJfcmVsdWN0YW50 CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBezEsMjE0NzQ4MzY0 N30/KQorICAgIERFRklORSBBIEFTIHZhbCA+IDAKKyk7CitFUlJPUjogIHF1YW50aWZpZXIgYm91 bmRzIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMTQ3NDgzNjQ2IHdpdGggbWF4ID49IDEKK0xJTkUg NjogICAgIFBBVFRFUk4gKEF7MSwyMTQ3NDgzNjQ3fT8pCisgICAgICAgICAgICAgICAgICAgICAg IF4KKy0tIEV4cGVjdGVkOiBFUlJPUjogcXVhbnRpZmllciBib3VuZHMgbXVzdCBiZSBiZXR3ZWVu IDAgYW5kIDIxNDc0ODM2NDYgd2l0aCBtYXggPj0gMQorLS0gezUsM30/IChtaW4gPiBtYXgpCitT RUxFQ1QgQ09VTlQoKikgT1ZFUiB3CitGUk9NIHJwcl9yZWx1Y3RhbnQKK1dJTkRPVyB3IEFTICgK KyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEF7NSwzfT8pCisgICAgREVGSU5FIEEgQVMgdmFs ID4gMAorKTsKK0VSUk9SOiAgcXVhbnRpZmllciBtaW5pbXVtIGJvdW5kIG11c3Qgbm90IGV4Y2Vl ZCBtYXhpbXVtCitMSU5FIDY6ICAgICBQQVRURVJOIChBezUsM30/KQorICAgICAgICAgICAgICAg ICAgICAgICBeCistLSBFeHBlY3RlZDogRVJST1I6IHF1YW50aWZpZXIgbWluaW11bSBib3VuZCBt dXN0IG5vdCBleGNlZWQgbWF4aW11bQorLS0gVG9rZW4tc2VwYXJhdGVkIHJlbHVjdGFudCBxdWFu dGlmaWVycyAoc3BhY2UgYmV0d2VlbiBxdWFudGlmaWVyIGFuZCA/KQorLS0gVGhlc2UgbWF5IGJl IHRva2VuaXplZCBkaWZmZXJlbnRseSBieSB0aGUgbGV4ZXIKKy0tICogPyAodG9rZW4gc2VwYXJh dGVkKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdworRlJPTSBycHJfcmVsdWN0YW50CitXSU5ET1cg dyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKiA/KQorICAgIERFRklORSBBIEFT IHZhbCA+IDAKKyk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKyAgICAgMAorICAgICAwCiso MyByb3dzKQorCistLSBSZWx1Y3RhbnQgcXVhbnRpZmllcjogcHJlZmVyIHNob3J0ZXN0IG1hdGNo CistLSArID8gKHRva2VuIHNlcGFyYXRlZCkKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZST00g cnByX3JlbHVjdGFudAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAo QSsgPykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCispOworIGNvdW50IAorLS0tLS0tLQorICAg ICAxCisgICAgIDEKKyAgICAgMQorKDMgcm93cykKKworLS0gUmVsdWN0YW50IHF1YW50aWZpZXI6 IHByZWZlciBzaG9ydGVzdCBtYXRjaAorLS0gezIsfSA/ICh0b2tlbiBzZXBhcmF0ZWQpCitTRUxF Q1QgQ09VTlQoKikgT1ZFUiB3CitGUk9NIHJwcl9yZWx1Y3RhbnQKK1dJTkRPVyB3IEFTICgKKyAg ICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIFBBVFRFUk4gKEF7Mix9ID8pCisgICAgREVGSU5FIEEgQVMgdmFsID4g MAorKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMgorICAgICAwCisgICAgIDAKKygzIHJvd3Mp CisKKy0tIFJlbHVjdGFudCBxdWFudGlmaWVyOiBwcmVmZXIgc2hvcnRlc3QgbWF0Y2gKKy0tIElu dmFsaWQgdG9rZW4gY29tYmluYXRpb25zCistLSAqICsgKGludmFsaWQgY29tYmluYXRpb24pCitT RUxFQ1QgQ09VTlQoKikgT1ZFUiB3CitGUk9NIHJwcl9yZWx1Y3RhbnQKK1dJTkRPVyB3IEFTICgK KyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEqICspCisgICAgREVGSU5FIEEgQVMgdmFsID4g MAorKTsKK0VSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIisiCitMSU5FIDY6ICAgICBQ QVRURVJOIChBKiArKQorICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gRXhwZWN0ZWQ6IEVS Uk9SOiBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiKyIKKy0tICsgKiAoaW52YWxpZCBjb21iaW5h dGlvbikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZST00gcnByX3JlbHVjdGFudAorV0lORE9X IHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSsgKikKKyAgICBERUZJTkUgQSBB UyB2YWwgPiAwCispOworRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiKiIKK0xJTkUg NjogICAgIFBBVFRFUk4gKEErICopCisgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBFeHBl Y3RlZDogRVJST1I6IHN5bnRheCBlcnJvciBhdCBvciBuZWFyICIqIgorLS0gPyA/IChwYXJzZWQg YXMgPz8gcmVsdWN0YW50IHF1YW50aWZpZXIpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CitGUk9N IHJwcl9yZWx1Y3RhbnQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4g KEE/ID8pCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAg ICAgMAorICAgICAwCisgICAgIDAKKygzIHJvd3MpCisKKy0tIFJlbHVjdGFudCBxdWFudGlmaWVy OiBwcmVmZXIgc2hvcnRlc3QgbWF0Y2gKK0RST1AgVEFCTEUgcnByX3JlbHVjdGFudDsKKy0tIFF1 YW50aWZpZXIgYm91bmRhcnkgY29uZGl0aW9ucworQ1JFQVRFIFRBQkxFIHJwcl9ib3VuZHMgKGlk IElOVCk7CitJTlNFUlQgSU5UTyBycHJfYm91bmRzIFZBTFVFUyAoMSksICgyKTsKKy0tIG1pbiA+ IG1heAorU0VMRUNUIENPVU5UKCopIE9WRVIgdworRlJPTSBycHJfYm91bmRzCitXSU5ET1cgdyBB UyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBezUsM30pCisgICAgREVGSU5FIEEgQVMg aWQgPiAwCispOworRVJST1I6ICBxdWFudGlmaWVyIG1pbmltdW0gYm91bmQgbXVzdCBub3QgZXhj ZWVkIG1heGltdW0KK0xJTkUgNjogICAgIFBBVFRFUk4gKEF7NSwzfSkKKyAgICAgICAgICAgICAg ICAgICAgICAgXgorLS0gRXhwZWN0ZWQ6IEVSUk9SOiBxdWFudGlmaWVyIG1pbmltdW0gYm91bmQg bXVzdCBub3QgZXhjZWVkIG1heGltdW0KKy0tIExhcmdlIGJvdW5kcworU0VMRUNUIENPVU5UKCop IE9WRVIgdworRlJPTSBycHJfYm91bmRzCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBQQVRURVJOIChBezEwMDAsMjAwMH0pCisgICAgREVGSU5FIEEgQVMgaWQgPiAwCispOworIGNv dW50IAorLS0tLS0tLQorICAgICAwCisgICAgIDAKKygyIHJvd3MpCisKKy0tIFZlcnkgbGFyZ2Ug Ym91bmQKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZST00gcnByX2JvdW5kcworV0lORE9XIHcg QVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQXsxMDAwMDB9KQorICAgIERFRklORSBB IEFTIGlkID4gMAorKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorICAgICAwCisoMiByb3dz KQorCistLSBJTlRfTUFYIC0gMSA9IDIxNDc0ODM2NDYgKGF0IGxpbWl0KQorU0VMRUNUIENPVU5U KCopIE9WRVIgdworRlJPTSBycHJfYm91bmRzCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkg aWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBQQVRURVJOIChBezIxNDc0ODM2NDZ9KQorICAgIERFRklORSBBIEFTIGlkID4gMAorKTsK KyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorICAgICAwCisoMiByb3dzKQorCistLSBJTlRfTUFY ID0gMjE0NzQ4MzY0NyAob3ZlciBsaW1pdCkKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZST00g cnByX2JvdW5kcworV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQXsy MTQ3NDgzNjQ3fSkKKyAgICBERUZJTkUgQSBBUyBpZCA+IDAKKyk7CitFUlJPUjogIHF1YW50aWZp ZXIgYm91bmQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDIxNDc0ODM2NDYKK0xJTkUgNjogICAgIFBB VFRFUk4gKEF7MjE0NzQ4MzY0N30pCisgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIEV4cGVj dGVkOiBFUlJPUjogcXVhbnRpZmllciBib3VuZCBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMjE0NzQ4 MzY0NgorLS0ge24sfSBib3VuZGFyeSBlcnJvcnMKKy0tIE5lZ2F0aXZlIGxvd2VyIGJvdW5kIGlu IHtuLH0KK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZST00gcnByX2JvdW5kcworV0lORE9XIHcg QVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQXstMSx9KQorICAgIERFRklORSBBIEFT IGlkID4gMAorKTsKK0VSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIi0iCitMSU5FIDY6 ICAgICBQQVRURVJOIChBey0xLH0pCisgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIEV4cGVj dGVkOiBFUlJPUjogc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIi0iCistLSBJTlRfTUFYIGluIHtu LH0KK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZST00gcnByX2JvdW5kcworV0lORE9XIHcgQVMg KAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQXsyMTQ3NDgzNjQ3LH0pCisgICAgREVGSU5F IEEgQVMgaWQgPiAwCispOworRVJST1I6ICBxdWFudGlmaWVyIGJvdW5kIG11c3QgYmUgYmV0d2Vl biAwIGFuZCAyMTQ3NDgzNjQ2CitMSU5FIDY6ICAgICBQQVRURVJOIChBezIxNDc0ODM2NDcsfSkK KyAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gRXhwZWN0ZWQ6IEVSUk9SOiBxdWFudGlmaWVy IGJvdW5kIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyMTQ3NDgzNjQ2CistLSB7LG19IGJvdW5kYXJ5 IGVycm9ycworLS0gWmVybyB1cHBlciBib3VuZCBpbiB7LG19CitTRUxFQ1QgQ09VTlQoKikgT1ZF UiB3CitGUk9NIHJwcl9ib3VuZHMKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBB VFRFUk4gKEF7LDB9KQorICAgIERFRklORSBBIEFTIGlkID4gMAorKTsKK0VSUk9SOiAgcXVhbnRp ZmllciBib3VuZCBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMjE0NzQ4MzY0NgorTElORSA2OiAgICAg UEFUVEVSTiAoQXssMH0pCisgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBFeHBlY3RlZDog RVJST1I6IHF1YW50aWZpZXIgYm91bmQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDIxNDc0ODM2NDYK Ky0tIElOVF9NQVggaW4geyxtfQorU0VMRUNUIENPVU5UKCopIE9WRVIgdworRlJPTSBycHJfYm91 bmRzCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBeywyMTQ3NDgz NjQ3fSkKKyAgICBERUZJTkUgQSBBUyBpZCA+IDAKKyk7CitFUlJPUjogIHF1YW50aWZpZXIgYm91 bmQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDIxNDc0ODM2NDYKK0xJTkUgNjogICAgIFBBVFRFUk4g KEF7LDIxNDc0ODM2NDd9KQorICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gRXhwZWN0ZWQ6 IEVSUk9SOiBxdWFudGlmaWVyIGJvdW5kIG11c3QgYmUgYmV0d2VlbiAxIGFuZCAyMTQ3NDgzNjQ2 CitEUk9QIFRBQkxFIHJwcl9ib3VuZHM7CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIE5hdmlnYXRpb24gRnVuY3Rpb25z IFRlc3RzIChQUkVWIC8gTkVYVCAvIEZJUlNUIC8gTEFTVCkKKy0tID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorQ1JFQVRFIFRBQkxF IHJwcl9uYXYgKGlkIElOVCwgdmFsIElOVCk7CitJTlNFUlQgSU5UTyBycHJfbmF2IFZBTFVFUwor ICAgICgxLCAxMCksICgyLCAyMCksICgzLCAxNSksICg0LCAyNSksICg1LCAzMCk7CistLSBQUkVW IGZ1bmN0aW9uIC0gcmVmZXJlbmNlIHByZXZpb3VzIHJvdyBpbiBwYXR0ZXJuCitTRUxFQ1QgaWQs IHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfbmF2CitXSU5ET1cgdyBBUyAo CisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORQorICAgICAgICBB IEFTIHZhbCA+IDAsCisgICAgICAgIEIgQVMgdmFsID4gUFJFVih2YWwpCispCitPUkRFUiBCWSBp ZDsKKyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAgMgor ICAyIHwgIDIwIHwgICAwCisgIDMgfCAgMTUgfCAgIDMKKyAgNCB8ICAyNSB8ICAgMAorICA1IHwg IDMwIHwgICAwCisoNSByb3dzKQorCistLSBORVhUIGZ1bmN0aW9uIC0gcmVmZXJlbmNlIG5leHQg cm93IGluIHBhdHRlcm4KK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitG Uk9NIHJwcl9uYXYKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEr IEIpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgdmFsIDwgTkVYVCh2YWwpLAorICAgICAgICBC IEFTIHZhbCA+IDAKKykKK09SREVSIEJZIGlkOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0t LSstLS0tLQorICAxIHwgIDEwIHwgICAyCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAxNSB8ICAg MworICA0IHwgIDI1IHwgICAwCisgIDUgfCAgMzAgfCAgIDAKKyg1IHJvd3MpCisKKy0tIENvbWJp bmVkIFBSRVYgYW5kIE5FWFQKK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250 CitGUk9NIHJwcl9uYXYKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4g KEEgQiBDKQorICAgIERFRklORQorICAgICAgICBBIEFTIHZhbCA+IDAsCisgICAgICAgIEIgQVMg dmFsID4gUFJFVih2YWwpIEFORCB2YWwgPCBORVhUKHZhbCksCisgICAgICAgIEMgQVMgdmFsID4g UFJFVih2YWwpCispCitPUkRFUiBCWSBpZDsKKyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0r LS0tLS0KKyAgMSB8ICAxMCB8ICAgMAorICAyIHwgIDIwIHwgICAwCisgIDMgfCAgMTUgfCAgIDMK KyAgNCB8ICAyNSB8ICAgMAorICA1IHwgIDMwIHwgICAwCisoNSByb3dzKQorCistLSBQUkVWIGZ1 bmN0aW9uIGNhbm5vdCBiZSB1c2VkIG90aGVyIHRoYW4gaW4gREVGSU5FCitTRUxFQ1QgUFJFVihp ZCksIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX25hdgorV0lORE9X IHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUKKyAg ICAgICAgQSBBUyB2YWwgPiAwLAorICAgICAgICBCIEFTIHZhbCA+IFBSRVYodmFsKQorKQorT1JE RVIgQlkgaWQ7CitFUlJPUjogIGNhbm5vdCB1c2UgcHJldiBvdXRzaWRlIGEgREVGSU5FIGNsYXVz ZQorTElORSAxOiBTRUxFQ1QgUFJFVihpZCksIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBj bnQKKyAgICAgICAgICAgICAgIF4KKy0tIEV4cGVjdGVkOiBFUlJPUjogY2Fubm90IHVzZSBwcmV2 IG91dHNpZGUgYSBERUZJTkUgY2xhdXNlCistLSBORVhUIGZ1bmN0aW9uIGNhbm5vdCBiZSB1c2Vk IG90aGVyIHRoYW4gaW4gREVGSU5FCitTRUxFQ1QgTkVYVChpZCksIGlkLCB2YWwsIENPVU5UKCop IE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX25hdgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZ IGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyB2YWwgPiAwLAor ICAgICAgICBCIEFTIHZhbCA+IFBSRVYodmFsKQorKQorT1JERVIgQlkgaWQ7CitFUlJPUjogIGNh bm5vdCB1c2UgbmV4dCBvdXRzaWRlIGEgREVGSU5FIGNsYXVzZQorTElORSAxOiBTRUxFQ1QgTkVY VChpZCksIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKKyAgICAgICAgICAgICAgIF4K Ky0tIEV4cGVjdGVkOiBFUlJPUjogY2Fubm90IHVzZSBuZXh0IG91dHNpZGUgYSBERUZJTkUgY2xh dXNlCistLSBGSVJTVCBmdW5jdGlvbiAtIHJlZmVyZW5jZSBtYXRjaF9zdGFydCByb3cKK1NFTEVD VCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9uYXYKK1dJTkRPVyB3 IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FCisgICAg ICAgIEEgQVMgdmFsID4gMCwKKyAgICAgICAgQiBBUyB2YWwgPiBGSVJTVCh2YWwpCispCitPUkRF UiBCWSBpZDsKKyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8 ICAgNQorICAyIHwgIDIwIHwgICAwCisgIDMgfCAgMTUgfCAgIDAKKyAgNCB8ICAyNSB8ICAgMAor ICA1IHwgIDMwIHwgICAwCisoNSByb3dzKQorCistLSBMQVNUIGZ1bmN0aW9uIHdpdGhvdXQgb2Zm c2V0IC0gZXF1aXZhbGVudCB0byBjdXJyZW50IHJvdydzIHZhbHVlCitTRUxFQ1QgaWQsIHZhbCwg Q09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfbmF2CitXSU5ET1cgdyBBUyAoCisgICAg T1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORQorICAgICAgICBBIEFTIHZh bCA+IDAsCisgICAgICAgIEIgQVMgTEFTVCh2YWwpID4gUFJFVih2YWwpCispCitPUkRFUiBCWSBp ZDsKKyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAgMgor ICAyIHwgIDIwIHwgICAwCisgIDMgfCAgMTUgfCAgIDMKKyAgNCB8ICAyNSB8ICAgMAorICA1IHwg IDMwIHwgICAwCisoNSByb3dzKQorCistLSBGSVJTVCBhbmQgTEFTVCBjb21iaW5lZAorU0VMRUNU IGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX25hdgorV0lORE9XIHcg QVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUKKyAgICAg ICAgQSBBUyB2YWwgPiAwLAorICAgICAgICBCIEFTIHZhbCA+IEZJUlNUKHZhbCkgQU5EIExBU1Qo dmFsKSA+IFBSRVYodmFsKQorKQorT1JERVIgQlkgaWQ7CisgaWQgfCB2YWwgfCBjbnQgCistLS0t Ky0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDIKKyAgMiB8ICAyMCB8ICAgMAorICAzIHwgIDE1 IHwgICAzCisgIDQgfCAgMjUgfCAgIDAKKyAgNSB8ICAzMCB8ICAgMAorKDUgcm93cykKKworLS0g RklSU1QgZnVuY3Rpb24gY2Fubm90IGJlIHVzZWQgb3RoZXIgdGhhbiBpbiBERUZJTkUKK1NFTEVD VCBGSVJTVChpZCksIGlkLCB2YWwgRlJPTSBycHJfbmF2OworRVJST1I6ICBjYW5ub3QgdXNlIGZp cnN0IG91dHNpZGUgYSBERUZJTkUgY2xhdXNlCitMSU5FIDE6IFNFTEVDVCBGSVJTVChpZCksIGlk LCB2YWwgRlJPTSBycHJfbmF2OworICAgICAgICAgICAgICAgXgorLS0gRXhwZWN0ZWQ6IEVSUk9S OiBjYW5ub3QgdXNlIGZpcnN0IG91dHNpZGUgYSBERUZJTkUgY2xhdXNlCistLSBMQVNUIGZ1bmN0 aW9uIGNhbm5vdCBiZSB1c2VkIG90aGVyIHRoYW4gaW4gREVGSU5FCitTRUxFQ1QgTEFTVChpZCks IGlkLCB2YWwgRlJPTSBycHJfbmF2OworRVJST1I6ICBjYW5ub3QgdXNlIGxhc3Qgb3V0c2lkZSBh IERFRklORSBjbGF1c2UKK0xJTkUgMTogU0VMRUNUIExBU1QoaWQpLCBpZCwgdmFsIEZST00gcnBy X25hdjsKKyAgICAgICAgICAgICAgIF4KKy0tIEV4cGVjdGVkOiBFUlJPUjogY2Fubm90IHVzZSBs YXN0IG91dHNpZGUgYSBERUZJTkUgY2xhdXNlCitEUk9QIFRBQkxFIHJwcl9uYXY7CistLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tIFNLSVAgVE8gLyBJTklUSUFMIFRlc3RzCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK0NSRUFURSBUQUJMRSBycHJfc2tp cCAoaWQgSU5ULCB2YWwgSU5UKTsKK0lOU0VSVCBJTlRPIHJwcl9za2lwIFZBTFVFUworICAgICgx LCAxKSwgKDIsIDIpLCAoMywgMyksICg0LCA0KSwgKDUsIDUpLAorICAgICg2LCA2KSwgKDcsIDcp LCAoOCwgOCk7CistLSBTS0lQIFRPIE5FWFQgUk9XCistLSBTS0lQIFRPIE5FWFQgUk9XCitTRUxF Q1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfc2tpcAorV0lORE9X IHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVwor ICAgIFBBVFRFUk4gKEEgQiBDKQorICAgIERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsID4g MiwgQyBBUyB2YWwgPiA0CispCitPUkRFUiBCWSBpZDsKKyBpZCB8IHZhbCB8IGNudCAKKy0tLS0r LS0tLS0rLS0tLS0KKyAgMSB8ICAgMSB8ICAgMAorICAyIHwgICAyIHwgICAwCisgIDMgfCAgIDMg fCAgIDMKKyAgNCB8ICAgNCB8ICAgMworICA1IHwgICA1IHwgICAzCisgIDYgfCAgIDYgfCAgIDMK KyAgNyB8ICAgNyB8ICAgMAorICA4IHwgICA4IHwgICAwCisoOCByb3dzKQorCistLSBTS0lQIFBB U1QgTEFTVCBST1cKKy0tIFNLSVAgUEFTVCBMQVNUIFJPVworU0VMRUNUIGlkLCB2YWwsIENPVU5U KCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX3NraXAKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRF UiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEg QiBDKQorICAgIERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsID4gMiwgQyBBUyB2YWwgPiA0 CispCitPUkRFUiBCWSBpZDsKKyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLS0KKyAg MSB8ICAgMSB8ICAgMAorICAyIHwgICAyIHwgICAwCisgIDMgfCAgIDMgfCAgIDMKKyAgNCB8ICAg NCB8ICAgMAorICA1IHwgICA1IHwgICAwCisgIDYgfCAgIDYgfCAgIDMKKyAgNyB8ICAgNyB8ICAg MAorICA4IHwgICA4IHwgICAwCisoOCByb3dzKQorCistLSBEZWZhdWx0IGJlaGF2aW9yIChzaG91 bGQgYmUgU0tJUCBQQVNUIExBU1QgUk9XKQorLS0gTm8gU0tJUCBUTyBjbGF1c2UgKGRlZmF1bHQp CitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfc2tpcAor V0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKQorICAgIERFRklO RSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsID4gMQorKQorT1JERVIgQlkgaWQ7CisgaWQgfCB2YWwg fCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgIDEgfCAgIDIKKyAgMiB8ICAgMiB8ICAg MAorICAzIHwgICAzIHwgICAyCisgIDQgfCAgIDQgfCAgIDAKKyAgNSB8ICAgNSB8ICAgMgorICA2 IHwgICA2IHwgICAwCisgIDcgfCAgIDcgfCAgIDIKKyAgOCB8ICAgOCB8ICAgMAorKDggcm93cykK KworLS0gQ29tcGFyZSBkZWZhdWx0IHdpdGggZXhwbGljaXQgUEFTVCBMQVNUIFJPVworLS0gUmVz dWx0cyBzaG91bGQgYmUgaWRlbnRpY2FsCitXSVRIIGRlZmF1bHRfc2tpcCBBUyAoCisgICAgU0VM RUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKKyAgICBGUk9NIHJwcl9za2lwCisg ICAgV0lORE9XIHcgQVMgKAorICAgICAgICBPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAo QSBCIEMpCisgICAgICAgIERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsID4gMiwgQyBBUyB2 YWwgPiA0CisgICAgKQorKSwKK2V4cGxpY2l0X3NraXAgQVMgKAorICAgIFNFTEVDVCBpZCwgdmFs LCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CisgICAgRlJPTSBycHJfc2tpcAorICAgIFdJTkRPVyB3 IEFTICgKKyAgICAgICAgT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIEFGVEVSIE1BVENIIFNLSVAgUEFT VCBMQVNUIFJPVworICAgICAgICBQQVRURVJOIChBIEIgQykKKyAgICAgICAgREVGSU5FIEEgQVMg dmFsID4gMCwgQiBBUyB2YWwgPiAyLCBDIEFTIHZhbCA+IDQKKyAgICApCispCitTRUxFQ1QgJ2Rl ZmF1bHQnIGFzIHR5cGUsICogRlJPTSBkZWZhdWx0X3NraXAKK1VOSU9OIEFMTAorU0VMRUNUICdl eHBsaWNpdCcgYXMgdHlwZSwgKiBGUk9NIGV4cGxpY2l0X3NraXAKK09SREVSIEJZIHR5cGUsIGlk OworICAgdHlwZSAgIHwgaWQgfCB2YWwgfCBjbnQgCistLS0tLS0tLS0tKy0tLS0rLS0tLS0rLS0t LS0KKyBkZWZhdWx0ICB8ICAxIHwgICAxIHwgICAwCisgZGVmYXVsdCAgfCAgMiB8ICAgMiB8ICAg MAorIGRlZmF1bHQgIHwgIDMgfCAgIDMgfCAgIDMKKyBkZWZhdWx0ICB8ICA0IHwgICA0IHwgICAw CisgZGVmYXVsdCAgfCAgNSB8ICAgNSB8ICAgMAorIGRlZmF1bHQgIHwgIDYgfCAgIDYgfCAgIDMK KyBkZWZhdWx0ICB8ICA3IHwgICA3IHwgICAwCisgZGVmYXVsdCAgfCAgOCB8ICAgOCB8ICAgMAor IGV4cGxpY2l0IHwgIDEgfCAgIDEgfCAgIDAKKyBleHBsaWNpdCB8ICAyIHwgICAyIHwgICAwCisg ZXhwbGljaXQgfCAgMyB8ICAgMyB8ICAgMworIGV4cGxpY2l0IHwgIDQgfCAgIDQgfCAgIDAKKyBl eHBsaWNpdCB8ICA1IHwgICA1IHwgICAwCisgZXhwbGljaXQgfCAgNiB8ICAgNiB8ICAgMworIGV4 cGxpY2l0IHwgIDcgfCAgIDcgfCAgIDAKKyBleHBsaWNpdCB8ICA4IHwgICA4IHwgICAwCisoMTYg cm93cykKKworRFJPUCBUQUJMRSBycHJfc2tpcDsKKy0tIElOSVRJQUwgY2xhdXNlCitDUkVBVEUg VEFCTEUgcnByX2luaXQgKGlkIElOVCwgdmFsIElOVCk7CitJTlNFUlQgSU5UTyBycHJfaW5pdCBW QUxVRVMgKDEsIDEwKSwgKDIsIDIwKSwgKDMsIDMwKSwgKDQsIDQwKTsKKy0tIEV4cGxpY2l0IElO SVRJQUwKK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9p bml0CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVS TiAoQSspCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKQorT1JERVIgQlkgaWQ7CisgaWQgfCB2 YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDQKKyAgMiB8ICAyMCB8 ICAgMAorICAzIHwgIDMwIHwgICAwCisgIDQgfCAgNDAgfCAgIDAKKyg0IHJvd3MpCisKKy0tIElt cGxpY2l0IElOSVRJQUwgKGRlZmF1bHQpCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3 IGFzIGNudAorRlJPTSBycHJfaW5pdAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg UEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKQorT1JERVIgQlkgaWQ7Cisg aWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDQKKyAgMiB8 ICAyMCB8ICAgMAorICAzIHwgIDMwIHwgICAwCisgIDQgfCAgNDAgfCAgIDAKKyg0IHJvd3MpCisK K0RST1AgVEFCTEUgcnByX2luaXQ7CistLSBTRUVLCitDUkVBVEUgVEFCTEUgcnByX3NlZWsgKGlk IElOVCwgdmFsIElOVCk7CitJTlNFUlQgSU5UTyBycHJfc2VlayBWQUxVRVMgKDEsIDEwKTsKKy0t IFNFRUsga2V5d29yZAorU0VMRUNUIENPVU5UKCopIE9WRVIgdworRlJPTSBycHJfc2VlaworV0lO RE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgU0VFSworICAgIFBBVFRFUk4gKEErKQorICAg IERFRklORSBBIEFTIHZhbCA+IDAKKyk7CitFUlJPUjogIFNFRUsgaXMgbm90IHN1cHBvcnRlZAor TElORSA2OiAgICAgU0VFSworICAgICAgICAgICAgXgorSElOVDogIFVzZSBJTklUSUFMIGluc3Rl YWQuCistLSBFeHBlY3RlZDogRVJST1I6IFNFRUsgaXMgbm90IHN1cHBvcnRlZAorLS0gSElOVDog VXNlIElOSVRJQUwgaW5zdGVhZC4KK0RST1AgVEFCTEUgcnByX3NlZWs7CistLSA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFNl cmlhbGl6YXRpb24vRGVzZXJpYWxpemF0aW9uIFRlc3RzCistLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFZpZXcgY3JlYXRp b24gYW5kIGRlcGFyc2luZworQ1JFQVRFIFRBQkxFIHJwcl9zZXJpYWwgKGlkIElOVCwgdmFsIElO VCk7CitJTlNFUlQgSU5UTyBycHJfc2VyaWFsIFZBTFVFUworICAgICgxLCAxMCksICgyLCAyMCks ICgzLCAxNSksICg0LCAyNSksICg1LCAzMCk7CistLSBTaW1wbGUgcGF0dGVybgorQ1JFQVRFIFZJ RVcgcnByX3NlcmlhbF92MSBBUworU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBj bnQKK0ZST00gcnByX3NlcmlhbAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFU VEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKKy0tIFZlcmlmeSB2aWV3IHdv cmtzICh0ZXN0cyBkZXNlcmlhbGl6YXRpb24pCitTRUxFQ1QgKiBGUk9NIHJwcl9zZXJpYWxfdjEg T1JERVIgQlkgaWQ7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAg MTAgfCAgIDUKKyAgMiB8ICAyMCB8ICAgMAorICAzIHwgIDE1IHwgICAwCisgIDQgfCAgMjUgfCAg IDAKKyAgNSB8ICAzMCB8ICAgMAorKDUgcm93cykKKworLS0gVmVyaWZ5IGRlcGFyc2luZworU0VM RUNUIHBnX2dldF92aWV3ZGVmKCdycHJfc2VyaWFsX3YxJzo6cmVnY2xhc3MpOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfdmlld2RlZiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgU0VMRUNUIGlkLCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICB2YWwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIGNvdW50KCopIE9WRVIgdyBBUyBjbnQgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICBGUk9N IHJwcl9zZXJpYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyArCisgICBBRlRFUiBNQVRDSCBTS0lQ IFBBU1QgTEFTVCBST1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgIElOSVRJQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgUEFUVEVSTiAoYSspICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBERUZJ TkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKKyAgIGEgQVMgKHZhbCA+IDApICk7CisoMSByb3cpCisKKy0tIENvbXBs ZXggcGF0dGVybiB3aXRoIGFsdGVybmF0aW9uCitDUkVBVEUgVklFVyBycHJfc2VyaWFsX3YyIEFT CitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfc2VyaWFs CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKyB8IEIqKQorICAg IERFRklORSBBIEFTIHZhbCA+IDIwLCBCIEFTIHZhbCA8PSAyMAorKTsKK1NFTEVDVCAqIEZST00g cnByX3NlcmlhbF92MiBPUkRFUiBCWSBpZDsKKyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0r LS0tLS0KKyAgMSB8ICAxMCB8ICAgMworICAyIHwgIDIwIHwgICAwCisgIDMgfCAgMTUgfCAgIDAK KyAgNCB8ICAyNSB8ICAgMgorICA1IHwgIDMwIHwgICAwCisoNSByb3dzKQorCitTRUxFQ1QgcGdf Z2V0X3ZpZXdkZWYoJ3Jwcl9zZXJpYWxfdjInOjpyZWdjbGFzcyk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHBnX2dldF92aWV3ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICBTRUxFQ1QgaWQsICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAg IHZhbCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKKyAgICAgY291bnQoKikgT1ZFUiB3IEFTIGNudCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgIEZST00gcnByX3Nl cmlhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCisgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HICsKKyAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBM QVNUIFJPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg SU5JVElBTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICBQQVRURVJOIChhKyB8IGIqKSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIERFRklORSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgYSBBUyAodmFsID4gMjApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBiIEFTICh2YWwgPD0gMjApICk7Ciso MSByb3cpCisKKy0tIFBhdHRlcm4gd2l0aCBncm91cGluZyBhbmQgcXVhbnRpZmllcnMKK0NSRUFU RSBWSUVXIHJwcl9zZXJpYWxfdjMgQVMKK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcg YXMgY250CitGUk9NIHJwcl9zZXJpYWwKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IFBBVFRFUk4gKChBIEIpezIsNX0gfCBDKikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyB2YWwg PiAxMCwKKyAgICAgICAgQiBBUyB2YWwgPiAyMCwKKyAgICAgICAgQyBBUyB2YWwgPD0gMTAKKyk7 CitTRUxFQ1QgKiBGUk9NIHJwcl9zZXJpYWxfdjMgT1JERVIgQlkgaWQ7CisgaWQgfCB2YWwgfCBj bnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDEKKyAgMiB8ICAyMCB8ICAgMAor ICAzIHwgIDE1IHwgICAwCisgIDQgfCAgMjUgfCAgIDAKKyAgNSB8ICAzMCB8ICAgMAorKDUgcm93 cykKKworU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdycHJfc2VyaWFsX3YzJzo6cmVnY2xhc3MpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfdmlld2RlZiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgU0VMRUNUIGlk LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICB2YWwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIGNvdW50KCopIE9WRVIgdyBB UyBjbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICBGUk9NIHJwcl9zZXJpYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyArCisgICBBRlRFUiBN QVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKKyAgIElOSVRJQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgUEFUVEVSTiAoKGEgYil7Miw1 fSB8IGMqKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICBERUZJTkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgIGEgQVMgKHZhbCA+IDEwKSwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgYiBBUyAo dmFsID4gMjApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgICBjIEFTICh2YWwgPD0gMTApICk7CisoMSByb3cpCisKKy0tIEFsbCBm ZWF0dXJlcyBjb21iaW5lZAorQ1JFQVRFIFZJRVcgcnByX3NlcmlhbF92NCBBUworU0VMRUNUIGlk LCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX3NlcmlhbAorV0lORE9XIHcg QVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAg IElOSVRJQUwKKyAgICBQQVRURVJOIChTVEFSVCAoTUlEezEsM30gfCBBTFQrKSBGSU5JU0gpCisg ICAgREVGSU5FCisgICAgICAgIFNUQVJUIEFTIHZhbCA+IDUsCisgICAgICAgIE1JRCBBUyB2YWwg QkVUV0VFTiAxMCBBTkQgMjUsCisgICAgICAgIEFMVCBBUyB2YWwgPiAyNSwKKyAgICAgICAgRklO SVNIIEFTIHZhbCA+IDE1CispOworU0VMRUNUICogRlJPTSBycHJfc2VyaWFsX3Y0IE9SREVSIEJZ IGlkOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEwIHwgICA1 CisgIDIgfCAgMjAgfCAgIDQKKyAgMyB8ICAxNSB8ICAgMworICA0IHwgIDI1IHwgICAwCisgIDUg fCAgMzAgfCAgIDAKKyg1IHJvd3MpCisKK1NFTEVDVCBwZ19nZXRfdmlld2RlZigncnByX3Nlcmlh bF92NCc6OnJlZ2NsYXNzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0 X3ZpZXdkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgIFNFTEVDVCBpZCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgdmFsLCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICBjb3VudCgqKSBPVkVSIHcgQVMgY250ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICAgRlJPTSBycHJfc2VyaWFsICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIFdJTkRPVyB3IEFT IChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcgKworICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBJTklUSUFMICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAg IFBBVFRFUk4gKHN0YXJ0IChtaWR7MSwzfSB8IGFsdCspIGZpbmlzaCkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgREVGSU5FICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBzdGFydCBBUyAo dmFsID4gNSksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgIG1pZCBBUyAoKHZhbCA+PSAxMCkgQU5EICh2YWwgPD0gMjUpKSwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgYWx0IEFTICh2YWwgPiAyNSksICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICBmaW5pc2ggQVMgKHZhbCA+IDE1KSApOworKDEgcm93KQorCistLSBBZGRpdGlvbmFsIHF1YW50 aWZpZXJzIGZvciBkZXBhcnNpbmcgY292ZXJhZ2UKKy0tID8gcXVhbnRpZmllciAoemVybyBvciBv bmUpCitDUkVBVEUgVklFVyBycHJfc2VyaWFsX3Y1IEFTCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQo KikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfc2VyaWFsCitXSU5ET1cgdyBBUyAoCisgICAgT1JE RVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBQQVRURVJOIChBIEI/KQorICAgIERFRklORSBBIEFTIHZhbCA+IDEwLCBCIEFT IHZhbCA+IDIwCispOworU0VMRUNUICogRlJPTSBycHJfc2VyaWFsX3Y1IE9SREVSIEJZIGlkOwor IGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAwCisgIDIg fCAgMjAgfCAgIDEKKyAgMyB8ICAxNSB8ICAgMgorICA0IHwgIDI1IHwgICAwCisgIDUgfCAgMzAg fCAgIDEKKyg1IHJvd3MpCisKK1NFTEVDVCBwZ19nZXRfdmlld2RlZigncnByX3NlcmlhbF92NSc6 OnJlZ2NsYXNzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdk ZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgIFNFTEVDVCBpZCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgdmFsLCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICBjb3Vu dCgqKSBPVkVSIHcgQVMgY250ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgICAgRlJPTSBycHJfc2VyaWFsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIFdJTkRPVyB3IEFTIChPUkRF UiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcg KworICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICBJTklUSUFMICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIFBBVFRF Uk4gKGEgYj8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgREVGSU5FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBhIEFTICh2YWwgPiAxMCks ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgIGIgQVMgKHZhbCA+IDIwKSApOworKDEgcm93KQorCistLSB7bix9IHF1YW50aWZpZXIg KG4gb3IgbW9yZSkKK0NSRUFURSBWSUVXIHJwcl9zZXJpYWxfdjYgQVMKK1NFTEVDVCBpZCwgdmFs LCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9zZXJpYWwKK1dJTkRPVyB3IEFTICgK KyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEF7Mix9KQorICAgIERFRklORSBBIEFTIHZhbCA+ IDE1CispOworU0VMRUNUICogRlJPTSBycHJfc2VyaWFsX3Y2IE9SREVSIEJZIGlkOworIGlkIHwg dmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAwCisgIDIgfCAgMjAg fCAgIDAKKyAgMyB8ICAxNSB8ICAgMAorICA0IHwgIDI1IHwgICAyCisgIDUgfCAgMzAgfCAgIDAK Kyg1IHJvd3MpCisKK1NFTEVDVCBwZ19nZXRfdmlld2RlZigncnByX3NlcmlhbF92Nic6OnJlZ2Ns YXNzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIFNF TEVDVCBpZCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKKyAgICAgdmFsLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICBjb3VudCgqKSBP VkVSIHcgQVMgY250ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCisgICAgRlJPTSBycHJfc2VyaWFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBp ZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgKworICAg QUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICBJTklUSUFMICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIFBBVFRFUk4gKGF7 Mix9KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgREVGSU5FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBhIEFTICh2YWwgPiAxNSkgKTsKKygx IHJvdykKKworLS0ge259IHF1YW50aWZpZXIgKGV4YWN0bHkgbikKK0NSRUFURSBWSUVXIHJwcl9z ZXJpYWxfdjcgQVMKK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9N IHJwcl9zZXJpYWwKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEF7 M30pCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKK1NFTEVDVCAqIEZST00gcnByX3Nlcmlh bF92NyBPUkRFUiBCWSBpZDsKKyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLS0KKyAg MSB8ICAxMCB8ICAgMworICAyIHwgIDIwIHwgICAwCisgIDMgfCAgMTUgfCAgIDAKKyAgNCB8ICAy NSB8ICAgMAorICA1IHwgIDMwIHwgICAwCisoNSByb3dzKQorCitTRUxFQ1QgcGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9zZXJpYWxfdjcnOjpyZWdjbGFzcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBnX2dldF92aWV3ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICBTRUxFQ1QgaWQsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIHZhbCwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgY291bnQoKikgT1ZFUiB3IEFTIGNudCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgIEZST00gcnByX3NlcmlhbCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HICsKKyAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgSU5JVElBTCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICBQQVRURVJOIChhezN9KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIERFRklORSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgYSBBUyAodmFsID4gMCkgKTsKKygxIHJvdykKKworLS0gTmVzdGVkIEFMVCBwYXR0ZXJuICh0 ZXN0cyBkZXBhcnNlIG9mIGNvbXBsZXggbmVzdGVkIHN0cnVjdHVyZSkKK0NSRUFURSBWSUVXIHJw cl9zZXJpYWxfdjggQVMKK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitG Uk9NIHJwcl9zZXJpYWwKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4g KCgoQSsgQikgfCBDKSBEIHwgQSBCIEMpCisgICAgREVGSU5FIEEgQVMgdmFsIDw9IDE1LCBCIEFT IHZhbCA8PSAyNSwgQyBBUyB2YWwgPD0gMzAsIEQgQVMgdmFsID4gMzAKKyk7CitTRUxFQ1QgKiBG Uk9NIHJwcl9zZXJpYWxfdjggT1JERVIgQlkgaWQ7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0t LS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDMKKyAgMiB8ICAyMCB8ICAgMAorICAzIHwgIDE1IHwg ICAwCisgIDQgfCAgMjUgfCAgIDAKKyAgNSB8ICAzMCB8ICAgMAorKDUgcm93cykKKworU0VMRUNU IHBnX2dldF92aWV3ZGVmKCdycHJfc2VyaWFsX3Y4Jzo6cmVnY2xhc3MpOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwZ19nZXRfdmlld2RlZiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgU0VMRUNUIGlkLCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICB2YWwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgIGNvdW50KCopIE9WRVIgdyBBUyBjbnQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICBGUk9NIHJw cl9zZXJpYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyArCisgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgIElOSVRJQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgUEFUVEVSTiAoKChhKyBiKSB8IGMpIGQgfCBhIGIg YykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBERUZJTkUg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKKyAgIGEgQVMgKHZhbCA8PSAxNSksICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgYiBBUyAodmFsIDw9IDI1KSwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICBjIEFTICh2YWwgPD0gMzApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgIGQgQVMgKHZhbCA+IDMwKSApOworKDEgcm93KQor CistLSBOYXZpZ2F0aW9uIGZ1bmN0aW9uIHNlcmlhbGl6YXRpb246IFBSRVYgd2l0aCBvZmZzZXQK K0NSRUFURSBWSUVXIHJwcl9zZXJpYWxfbmF2MSBBUworU0VMRUNUIGlkLCB2YWwsIGNvdW50KCop IE9WRVIgdworRlJPTSBycHJfc2VyaWFsCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAg ICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICAgICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAgICAgICAgIERFRklORSBBIEFTIFRS VUUsIEIgQVMgdmFsID4gUFJFVih2YWwsIDIpKTsKK1NFTEVDVCBwZ19nZXRfdmlld2RlZigncnBy X3NlcmlhbF9uYXYxJzo6cmVnY2xhc3MpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwZ19nZXRfdmlld2RlZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgU0VMRUNUIGlkLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICB2YWwsICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICAgIGNvdW50KCopIE9WRVIgdyBBUyBjb3VudCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICBGUk9NIHJwcl9zZXJpYWwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgV0lO RE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORyArCisgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIElOSVRJQUwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgUEFUVEVSTiAoYSBiKykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBERUZJTkUgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIGEg QVMgdHJ1ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgYiBBUyAodmFsID4gUFJFVih2YWwsICgyKTo6YmlnaW50KSkg KTsKKygxIHJvdykKKworLS0gTmF2aWdhdGlvbiBmdW5jdGlvbiBzZXJpYWxpemF0aW9uOiBGSVJT VCBhbmQgTEFTVAorQ1JFQVRFIFZJRVcgcnByX3NlcmlhbF9uYXYyIEFTCitTRUxFQ1QgaWQsIHZh bCwgY291bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9zZXJpYWwKK1dJTkRPVyB3IEFTIChPUkRFUiBC WSBpZAorICAgICAgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgICAgICAgREVG SU5FIEEgQVMgVFJVRSwgQiBBUyBGSVJTVCh2YWwpIDwgTEFTVCh2YWwsIDEpKTsKK1NFTEVDVCBw Z19nZXRfdmlld2RlZigncnByX3NlcmlhbF9uYXYyJzo6cmVnY2xhc3MpOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwZ19nZXRfdmlld2RlZiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgU0VMRUNUIGlkLCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICB2YWwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgIGNvdW50KCopIE9WRVIgdyBBUyBjb3VudCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICBGUk9NIHJw cl9zZXJpYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyArCisgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgIElOSVRJQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgUEFUVEVSTiAoYSBiKykgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBERUZJTkUg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKKyAgIGEgQVMgdHJ1ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgYiBBUyAoRklSU1QodmFsKSA8 IExBU1QodmFsLCAoMSk6OmJpZ2ludCkpICk7CisoMSByb3cpCisKKy0tIE5hdmlnYXRpb24gZnVu Y3Rpb24gc2VyaWFsaXphdGlvbjogY29tcG91bmQgUFJFVihGSVJTVCgpKQorQ1JFQVRFIFZJRVcg cnByX3NlcmlhbF9uYXYzIEFTCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3CitGUk9N IHJwcl9zZXJpYWwKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICAgICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAg IFBBVFRFUk4gKEEgQispCisgICAgICAgICAgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBQUkVW KEZJUlNUKHZhbCwgMSksIDIpID4gMCk7CitTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9zZXJp YWxfbmF2Myc6OnJlZ2NsYXNzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdf Z2V0X3ZpZXdkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgIFNFTEVDVCBpZCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgdmFsLCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICBjb3VudCgqKSBPVkVSIHcgQVMgY291bnQgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgRlJPTSBycHJfc2VyaWFsICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIFdJTkRPVyB3 IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcgKworICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBJTklUSUFMICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgIFBBVFRFUk4gKGEgYispICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgREVGSU5FICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBhIEFTIHRy dWUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKKyAgIGIgQVMgKFBSRVYoRklSU1QodmFsLCAoMSk6OmJpZ2ludCksICgyKTo6 YmlnaW50KSA+IDApICk7CisoMSByb3cpCisKKy0tIE5hdmlnYXRpb24gZnVuY3Rpb24gc2VyaWFs aXphdGlvbjogY29tcG91bmQgTkVYVChMQVNUKCkpCitDUkVBVEUgVklFVyBycHJfc2VyaWFsX25h djQgQVMKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcKK0ZST00gcnByX3NlcmlhbAor V0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoQSBC KykKKyAgICAgICAgICAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIE5FWFQoTEFTVCh2YWwpLCAy KSBJUyBOT1QgTlVMTCk7CitTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9zZXJpYWxfbmF2NCc6 OnJlZ2NsYXNzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdk ZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgIFNFTEVDVCBpZCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgdmFsLCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICBjb3Vu dCgqKSBPVkVSIHcgQVMgY291bnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgICAgRlJPTSBycHJfc2VyaWFsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIFdJTkRPVyB3IEFTIChPUkRF UiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcg KworICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICBJTklUSUFMICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIFBBVFRF Uk4gKGEgYispICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgREVGSU5FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBhIEFTIHRydWUsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgIGIgQVMgKE5FWFQoTEFTVCh2YWwpLCAoMik6OmJpZ2ludCkgSVMgTk9UIE5VTEwpICk7 CisoMSByb3cpCisKKy0tIE5hdmlnYXRpb24gZnVuY3Rpb24gc2VyaWFsaXphdGlvbjogY29tcG91 bmQgUFJFVihMQVNUKCkpCitDUkVBVEUgVklFVyBycHJfc2VyaWFsX25hdjUgQVMKK1NFTEVDVCBp ZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcKK0ZST00gcnByX3NlcmlhbAorV0lORE9XIHcgQVMgKE9S REVSIEJZIGlkCisgICAgICAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgICAg ICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIFBSRVYoTEFTVCh2YWwsIDEpLCAyKSA+IDApOworU0VM RUNUIHBnX2dldF92aWV3ZGVmKCdycHJfc2VyaWFsX25hdjUnOjpyZWdjbGFzcyk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF92aWV3ZGVmICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICBTRUxFQ1QgaWQsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICAgIHZhbCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgY291bnQoKikgT1ZFUiB3IEFTIGNvdW50 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgIEZS T00gcnByX3NlcmlhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HICsKKyAgIEFGVEVSIE1BVENIIFNL SVAgUEFTVCBMQVNUIFJPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgSU5JVElBTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBQQVRURVJOIChhIGIrKSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIERF RklORSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgYSBBUyB0cnVlLCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBiIEFTIChQUkVWKExB U1QodmFsLCAoMSk6OmJpZ2ludCksICgyKTo6YmlnaW50KSA+IDApICk7CisoMSByb3cpCisKKy0t IE5hdmlnYXRpb24gZnVuY3Rpb24gc2VyaWFsaXphdGlvbjogY29tcG91bmQgTkVYVChGSVJTVCgp KQorQ1JFQVRFIFZJRVcgcnByX3NlcmlhbF9uYXY2IEFTCitTRUxFQ1QgaWQsIHZhbCwgY291bnQo KikgT1ZFUiB3CitGUk9NIHJwcl9zZXJpYWwKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAg ICAgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgICAgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgICAgICAgREVGSU5FIEEgQVMg VFJVRSwgQiBBUyBORVhUKEZJUlNUKHZhbCksIDMpID4gMCk7CitTRUxFQ1QgcGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9zZXJpYWxfbmF2Nic6OnJlZ2NsYXNzKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIFNFTEVDVCBpZCwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgdmFsLCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICBjb3VudCgqKSBPVkVSIHcgQVMgY291bnQgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgRlJPTSBycHJfc2VyaWFsICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcgKworICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBJTklUSUFM ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKKyAgIFBBVFRFUk4gKGEgYispICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgREVGSU5FICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICBhIEFTIHRydWUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgIGIgQVMgKE5FWFQoRklSU1QodmFsKSwgKDMpOjpi aWdpbnQpID4gMCkgKTsKKygxIHJvdykKKworLS0gUmVsdWN0YW50IHsxfT8gcXVhbnRpZmllciBk ZXBhcnNlIHRocm91Z2ggcnVsZXV0aWxzCitDUkVBVEUgVklFVyBycHJfcXVhbnRfcmVsdWN0YW50 X3YgQVMKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcKK0ZST00gcnByX3NlcmlhbAor V0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgSU5JVElBTAorICAg ICAgICAgICAgIFBBVFRFUk4gKEF7MX0/IEIpCisgICAgICAgICAgICAgREVGSU5FIEEgQVMgdmFs ID4gMCwgQiBBUyB2YWwgPiAwKTsKK1NFTEVDVCBwZ19nZXRfdmlld2RlZigncnByX3F1YW50X3Jl bHVjdGFudF92Jzo6cmVnY2xhc3MpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw Z19nZXRfdmlld2RlZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAgU0VMRUNUIGlkLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICB2YWwsICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICAgIGNvdW50KCopIE9WRVIgdyBBUyBjb3VudCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICBGUk9NIHJwcl9zZXJpYWwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgV0lORE9X IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORyArCisgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIElOSVRJQUwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgUEFUVEVSTiAoYXsxfT8gYikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICBERUZJTkUgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIGEgQVMg KHZhbCA+IDApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgYiBBUyAodmFsID4gMCkgKTsKKygxIHJvdykKKworLS0gUXVvdGVk IGlkZW50aWZpZXIgcm91bmQtdHJpcDogbWl4ZWQgY2FzZSBhbmQgcmVzZXJ2ZWQgd29yZHMgbmVl ZCBxdW90aW5nCitDUkVBVEUgVklFVyBycHJfc2VyaWFsX3F1b3RlZCBBUworU0VMRUNUIGlkLCB2 YWwsIGNvdW50KCopIE9WRVIgdworRlJPTSBycHJfc2VyaWFsCitXSU5ET1cgdyBBUyAoT1JERVIg QlkgaWQKKyAgICAgICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOICgiU3RhcnQiICJVcCIrKQorICAgICAg ICAgICAgIERFRklORSAiU3RhcnQiIEFTIFRSVUUsICJVcCIgQVMgdmFsID4gUFJFVih2YWwpKTsK K1NFTEVDVCBwZ19nZXRfdmlld2RlZigncnByX3NlcmlhbF9xdW90ZWQnOjpyZWdjbGFzcyk7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF92aWV3ZGVmICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICBTRUxFQ1QgaWQs ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgIHZhbCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgY291bnQoKikgT1ZFUiB3IEFT IGNvdW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgIEZST00gcnByX3NlcmlhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HICsKKyAgIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgSU5JVElBTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBQQVRURVJOICgiU3RhcnQiICJV cCIrKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgIERFRklORSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgIlN0YXJ0IiBBUyB0cnVlLCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAiVXAiIEFT ICh2YWwgPiBQUkVWKHZhbCkpICk7CisoMSByb3cpCisKKy0tIE1hdGVyaWFsaXplZCB2aWV3IChp ZiBzdXBwb3J0ZWQpCitDUkVBVEUgVEFCTEUgcnByX212aWV3IChpZCBJTlQsIHZhbCBJTlQpOwor SU5TRVJUIElOVE8gcnByX212aWV3IFZBTFVFUyAoMSwgMTApLCAoMiwgMjApLCAoMywgMzApOwor Q1JFQVRFIE1BVEVSSUFMSVpFRCBWSUVXIHJwcl9tdmlld192MSBBUworU0VMRUNUIGlkLCB2YWws IENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX212aWV3CitXSU5ET1cgdyBBUyAoCisg ICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCisp OworU0VMRUNUICogRlJPTSBycHJfbXZpZXdfdjEgT1JERVIgQlkgaWQ7CisgaWQgfCB2YWwgfCBj bnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDMKKyAgMiB8ICAyMCB8ICAgMAor ICAzIHwgIDMwIHwgICAwCisoMyByb3dzKQorCitTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9t dmlld192MSc6OnJlZ2NsYXNzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdf Z2V0X3ZpZXdkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgIFNFTEVDVCBpZCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgdmFsLCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICBjb3VudCgqKSBPVkVSIHcgQVMgY250ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgRlJPTSBycHJfbXZpZXcgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIFdJTkRPVyB3 IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcgKworICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBJTklUSUFMICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgIFBBVFRFUk4gKGErKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgREVGSU5FICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBhIEFTICh2 YWwgPiAwKSApOworKDEgcm93KQorCistLSBSZWZyZXNoIHRlc3QKK1JFRlJFU0ggTUFURVJJQUxJ WkVEIFZJRVcgcnByX212aWV3X3YxOworU0VMRUNUICogRlJPTSBycHJfbXZpZXdfdjEgT1JERVIg QlkgaWQ7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAg IDMKKyAgMiB8ICAyMCB8ICAgMAorICAzIHwgIDMwIHwgICAwCisoMyByb3dzKQorCistLSBDUkVB VEUgVEFCTEUgQVMgU0VMRUNUIHdpdGggUlBSCitDUkVBVEUgVEFCTEUgcnByX2N0YXMgKGlkIElO VCwgdmFsIElOVCk7CitJTlNFUlQgSU5UTyBycHJfY3RhcyBWQUxVRVMgKDEsIDEwKSwgKDIsIDIw KSwgKDMsIDE1KSwgKDQsIDI1KTsKK0NSRUFURSBUQUJMRSBycHJfY3Rhc19yZXN1bHQgQVMKK1NF TEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9jdGFzCitXSU5E T1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBS T1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgdmFsID4g UFJFVih2YWwpCispOworU0VMRUNUICogRlJPTSBycHJfY3Rhc19yZXN1bHQgT1JERVIgQlkgaWQ7 CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDIKKyAg MiB8ICAyMCB8ICAgMAorICAzIHwgIDE1IHwgICAyCisgIDQgfCAgMjUgfCAgIDAKKyg0IHJvd3Mp CisKKy0tIElOU0VSVCBJTlRPIC4uLiBTRUxFQ1Qgd2l0aCBSUFIKK0NSRUFURSBUQUJMRSBycHJf aW5zZXJ0X3RhcmdldCAoaWQgSU5ULCB2YWwgSU5ULCBjbnQgQklHSU5UKTsKK0lOU0VSVCBJTlRP IHJwcl9pbnNlcnRfdGFyZ2V0CitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3CitGUk9N IHJwcl9jdGFzCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBT S0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFTIFRS VUUsIEIgQVMgdmFsID4gUFJFVih2YWwpCispOworU0VMRUNUICogRlJPTSBycHJfaW5zZXJ0X3Rh cmdldCBPUkRFUiBCWSBpZDsKKyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLS0KKyAg MSB8ICAxMCB8ICAgMgorICAyIHwgIDIwIHwgICAwCisgIDMgfCAgMTUgfCAgIDIKKyAgNCB8ICAy NSB8ICAgMAorKDQgcm93cykKKworRFJPUCBUQUJMRSBycHJfY3Rhc19yZXN1bHQ7CitEUk9QIFRB QkxFIHJwcl9pbnNlcnRfdGFyZ2V0OworRFJPUCBUQUJMRSBycHJfY3RhczsKKy0tIFByZXBhcmVk IHN0YXRlbWVudHMgKHRlc3RzIG91dGZ1bmNzLmMgLyByZWFkZnVuY3MuYykKK0NSRUFURSBUQUJM RSBycHJfcHJlcCAoaWQgSU5ULCB2YWwgSU5UKTsKK0lOU0VSVCBJTlRPIHJwcl9wcmVwIFZBTFVF UyAoMSwgMTApLCAoMiwgMjApLCAoMywgMzApOworLS0gU2ltcGxlIHByZXBhcmVkIHN0YXRlbWVu dAorUFJFUEFSRSBycHJfcHJlcF9zaW1wbGUgQVMKK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBP VkVSIHcgYXMgY250CitGUk9NIHJwcl9wcmVwCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkg aWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCispCitPUkRFUiBCWSBp ZDsKK0VYRUNVVEUgcnByX3ByZXBfc2ltcGxlOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0t LSstLS0tLQorICAxIHwgIDEwIHwgICAzCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAzMCB8ICAg MAorKDMgcm93cykKKworRVhFQ1VURSBycHJfcHJlcF9zaW1wbGU7CisgaWQgfCB2YWwgfCBjbnQg CistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDMKKyAgMiB8ICAyMCB8ICAgMAorICAz IHwgIDMwIHwgICAwCisoMyByb3dzKQorCitERUFMTE9DQVRFIHJwcl9wcmVwX3NpbXBsZTsKKy0t IFByZXBhcmVkIHN0YXRlbWVudCB3aXRoIHBhcmFtZXRlcnMKK1BSRVBBUkUgcnByX3ByZXBfcGFy YW0oaW50KSBBUworU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00g cnByX3ByZXAKK1dIRVJFIGlkIDw9ICQxCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAxMAorKQorT1JERVIgQlkgaWQ7 CitFWEVDVVRFIHJwcl9wcmVwX3BhcmFtKDIpOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0t LSstLS0tLQorICAxIHwgIDEwIHwgICAwCisgIDIgfCAgMjAgfCAgIDEKKygyIHJvd3MpCisKK0VY RUNVVEUgcnByX3ByZXBfcGFyYW0oMyk7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0t LS0tCisgIDEgfCAgMTAgfCAgIDAKKyAgMiB8ICAyMCB8ICAgMgorICAzIHwgIDMwIHwgICAwCiso MyByb3dzKQorCitERUFMTE9DQVRFIHJwcl9wcmVwX3BhcmFtOworLS0gQ29tcGxleCBwcmVwYXJl ZCBzdGF0ZW1lbnQKK1BSRVBBUkUgcnByX3ByZXBfY29tcGxleCBBUworU0VMRUNUIGlkLCB2YWws IENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX3ByZXAKK1dJTkRPVyB3IEFTICgKKyAg ICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJO ICgoQSBCKXsxLDJ9IHwgQyspCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgdmFsID4gNSwKKyAg ICAgICAgQiBBUyB2YWwgPiAxNSwKKyAgICAgICAgQyBBUyB2YWwgPD0gMTUKKykKK09SREVSIEJZ IGlkOworRVhFQ1VURSBycHJfcHJlcF9jb21wbGV4OworIGlkIHwgdmFsIHwgY250IAorLS0tLSst LS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAyCisgIDIgfCAgMjAgfCAgIDIKKyAgMyB8ICAzMCB8 ICAgMAorKDMgcm93cykKKworRVhFQ1VURSBycHJfcHJlcF9jb21wbGV4OworIGlkIHwgdmFsIHwg Y250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAyCisgIDIgfCAgMjAgfCAgIDIK KyAgMyB8ICAzMCB8ICAgMAorKDMgcm93cykKKworREVBTExPQ0FURSBycHJfcHJlcF9jb21wbGV4 OworRFJPUCBUQUJMRSBycHJfcHJlcDsKKy0tIENURSBhbmQgU3VicXVlcnkgKHRlc3RzIGNvcHlm dW5jcy5jKQorQ1JFQVRFIFRBQkxFIHJwcl9jb3B5IChpZCBJTlQsIHZhbCBJTlQpOworSU5TRVJU IElOVE8gcnByX2NvcHkgVkFMVUVTICgxLCAxMCksICgyLCAyMCksICgzLCAzMCksICg0LCA0MCk7 CistLSBTaW1wbGUgQ1RFCitXSVRIIHJwcl9jdGUgQVMgKAorICAgIFNFTEVDVCBpZCwgdmFsLCBD T1VOVCgqKSBPVkVSIHcgYXMgY250CisgICAgRlJPTSBycHJfY29weQorICAgIFdJTkRPVyB3IEFT ICgKKyAgICAgICAgT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEErKQorICAgICAgICBE RUZJTkUgQSBBUyB2YWwgPiAwCisgICAgKQorKQorU0VMRUNUICogRlJPTSBycHJfY3RlIE9SREVS IEJZIGlkOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEwIHwg ICA0CisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAzMCB8ICAgMAorICA0IHwgIDQwIHwgICAwCiso NCByb3dzKQorCistLSBDVEUgd2l0aCBtdWx0aXBsZSByZWZlcmVuY2VzIChmb3JjZXMgbm9kZSBj b3B5KQorV0lUSCBycHJfY3RlIEFTICgKKyAgICBTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZF UiB3IGFzIGNudAorICAgIEZST00gcnByX2NvcHkKKyAgICBXSU5ET1cgdyBBUyAoCisgICAgICAg IE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBKykKKyAgICAgICAgREVGSU5FIEEgQVMg dmFsID4gMTUKKyAgICApCispCitTRUxFQ1QgYzEuaWQsIGMxLmNudCBhcyBjbnQxLCBjMi5jbnQg YXMgY250MgorRlJPTSBycHJfY3RlIGMxCitKT0lOIHJwcl9jdGUgYzIgT04gYzEuaWQgPSBjMi5p ZAorT1JERVIgQlkgYzEuaWQ7CisgaWQgfCBjbnQxIHwgY250MiAKKy0tLS0rLS0tLS0tKy0tLS0t LQorICAxIHwgICAgMCB8ICAgIDAKKyAgMiB8ICAgIDMgfCAgICAzCisgIDMgfCAgICAwIHwgICAg MAorICA0IHwgICAgMCB8ICAgIDAKKyg0IHJvd3MpCisKKy0tIFN1YnF1ZXJ5IGluIEZST00gY2xh dXNlCitTRUxFQ1QgKgorRlJPTSAoCisgICAgU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIg dyBhcyBjbnQKKyAgICBGUk9NIHJwcl9jb3B5CisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBP UkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCPykKKyAgICAgICAgREVGSU5FIEEgQVMg dmFsID4gMTAsIEIgQVMgdmFsID4gMjAKKyAgICApCispIHN1YgorV0hFUkUgY250ID4gMAorT1JE RVIgQlkgaWQ7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDIgfCAgMjAg fCAgIDIKKyAgNCB8ICA0MCB8ICAgMQorKDIgcm93cykKKworLS0gTmVzdGVkIHN1YnF1ZXJpZXMK K1NFTEVDVCAqCitGUk9NICgKKyAgICBTRUxFQ1QgKgorICAgIEZST00gKAorICAgICAgICBTRUxF Q1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorICAgICAgICBGUk9NIHJwcl9jb3B5 CisgICAgICAgIFdJTkRPVyB3IEFTICgKKyAgICAgICAgICAgIE9SREVSIEJZIGlkCisgICAgICAg ICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICAgICAgICAgIFBBVFRFUk4gKEErKQorICAgICAgICAgICAgREVGSU5FIEEgQVMgdmFsID49IDEw CisgICAgICAgICkKKyAgICApIGlubmVyX3N1YgorICAgIFdIRVJFIGNudCA+IDAKKykgb3V0ZXJf c3ViCitPUkRFUiBCWSBpZDsKKyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLS0KKyAg MSB8ICAxMCB8ICAgNAorKDEgcm93KQorCitEUk9QIFRBQkxFIHJwcl9jb3B5OworLS0gRElTVElO Q1QgYW5kIHNldCBvcGVyYXRpb25zICh0ZXN0cyBlcXVhbGZ1bmNzLmMpCitDUkVBVEUgVEFCTEUg cnByX2VxdWFsIChpZCBJTlQsIHZhbCBJTlQpOworSU5TRVJUIElOVE8gcnByX2VxdWFsIFZBTFVF UyAoMSwgMTApLCAoMiwgMjApLCAoMywgMTApLCAoNCwgMjApOworLS0gRElTVElOQ1Qgd2l0aCBS UFIKK1NFTEVDVCBESVNUSU5DVCBjbnQKK0ZST00gKAorICAgIFNFTEVDVCBpZCwgdmFsLCBDT1VO VCgqKSBPVkVSIHcgYXMgY250CisgICAgRlJPTSBycHJfZXF1YWwKKyAgICBXSU5ET1cgdyBBUyAo CisgICAgICAgIE9SREVSIEJZIHZhbAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhU IFJPVworICAgICAgICBQQVRURVJOIChBKykKKyAgICAgICAgREVGSU5FIEEgQVMgdmFsID4gMAor ICAgICkKKykgc3ViCitPUkRFUiBCWSBjbnQ7CisgY250IAorLS0tLS0KKyAgIDEKKyAgIDIKKyAg IDMKKyAgIDQKKyg0IHJvd3MpCisKKy0tIFVOSU9OIHdpdGggUlBSIGluIGJvdGggc2lkZXMKK1NF TEVDVCBpZCwgdmFsLCBjbnQgRlJPTSAoCisgICAgU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9W RVIgdyBhcyBjbnQKKyAgICBGUk9NIHJwcl9lcXVhbAorICAgIFdIRVJFIHZhbCA9IDEwCisgICAg V0lORE9XIHcgQVMgKAorICAgICAgICBPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSsp CisgICAgICAgIERFRklORSBBIEFTIHZhbCA+IDAKKyAgICApCispIHN1YjEKK1VOSU9OCitTRUxF Q1QgaWQsIHZhbCwgY250IEZST00gKAorICAgIFNFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVS IHcgYXMgY250CisgICAgRlJPTSBycHJfZXF1YWwKKyAgICBXSEVSRSB2YWwgPSAyMAorICAgIFdJ TkRPVyB3IEFTICgKKyAgICAgICAgT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEErKQor ICAgICAgICBERUZJTkUgQSBBUyB2YWwgPiAwCisgICAgKQorKSBzdWIyCitPUkRFUiBCWSBpZDsK KyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAgMgorICAy IHwgIDIwIHwgICAyCisgIDMgfCAgMTAgfCAgIDAKKyAgNCB8ICAyMCB8ICAgMAorKDQgcm93cykK KworLS0gVU5JT04gQUxMCitTRUxFQ1QgaWQsIGNudCBGUk9NICgKKyAgICBTRUxFQ1QgaWQsIENP VU5UKCopIE9WRVIgdyBhcyBjbnQKKyAgICBGUk9NIHJwcl9lcXVhbAorICAgIFdJTkRPVyB3IEFT ICgKKyAgICAgICAgT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEErKQorICAgICAgICBE RUZJTkUgQSBBUyB2YWwgPiAxMAorICAgICkKKykgc3ViCitVTklPTiBBTEwKK1NFTEVDVCBpZCwg Y250IEZST00gKAorICAgIFNFTEVDVCBpZCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorICAgIEZS T00gcnByX2VxdWFsCisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBPUkRFUiBCWSBpZAorICAg ICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICAgICAgUEFUVEVSTiAoQispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA8PSAxMAorICAgICkK Kykgc3ViCitPUkRFUiBCWSBpZCwgY250OworIGlkIHwgY250IAorLS0tLSstLS0tLQorICAxIHwg ICAwCisgIDEgfCAgIDEKKyAgMiB8ICAgMAorICAyIHwgICAxCisgIDMgfCAgIDAKKyAgMyB8ICAg MQorICA0IHwgICAwCisgIDQgfCAgIDEKKyg4IHJvd3MpCisKKy0tIElOVEVSU0VDVAorU0VMRUNU IGlkLCBjbnQgRlJPTSAoCisgICAgU0VMRUNUIGlkLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250Cisg ICAgRlJPTSBycHJfZXF1YWwKKyAgICBXSEVSRSBpZCA8PSAzCisgICAgV0lORE9XIHcgQVMgKAor ICAgICAgICBPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSspCisgICAgICAgIERFRklO RSBBIEFTIHZhbCA+IDAKKyAgICApCispIHN1YjEKK0lOVEVSU0VDVAorU0VMRUNUIGlkLCBjbnQg RlJPTSAoCisgICAgU0VMRUNUIGlkLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CisgICAgRlJPTSBy cHJfZXF1YWwKKyAgICBXSEVSRSBpZCA+PSAyCisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBP UkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSspCisgICAgICAgIERFRklORSBBIEFTIHZh bCA+IDAKKyAgICApCispIHN1YjIKK09SREVSIEJZIGlkOworIGlkIHwgY250IAorLS0tLSstLS0t LQorICAzIHwgICAwCisoMSByb3cpCisKK0RST1AgVEFCTEUgcnByX2VxdWFsOworLS0gVmlldyB3 aXRoIG11bHRpcGxlIHdpbmRvdyBkZWZpbml0aW9ucworQ1JFQVRFIFRBQkxFIHJwcl9tdWx0aXdp biAoaWQgSU5ULCB2YWwgSU5UKTsKK0lOU0VSVCBJTlRPIHJwcl9tdWx0aXdpbiBWQUxVRVMgKDEs IDEwKSwgKDIsIDIwKSwgKDMsIDMwKTsKK0NSRUFURSBWSUVXIHJwcl9tdWx0aXdpbl92IEFTCitT RUxFQ1QKKyAgICBpZCwKKyAgICB2YWwsCisgICAgQ09VTlQoKikgT1ZFUiB3MSBhcyBjbnQxLAor ICAgIENPVU5UKCopIE9WRVIgdzIgYXMgY250MgorRlJPTSBycHJfbXVsdGl3aW4KK1dJTkRPVwor ICAgIHcxIEFTICgKKyAgICAgICAgT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEErKQor ICAgICAgICBERUZJTkUgQSBBUyB2YWwgPiAxNQorICAgICksCisgICAgdzIgQVMgKAorICAgICAg ICBPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQiopCisgICAgICAgIERFRklORSBCIEFT IHZhbCA8PSAxNQorICAgICk7CitTRUxFQ1QgKiBGUk9NIHJwcl9tdWx0aXdpbl92IE9SREVSIEJZ IGlkOworIGlkIHwgdmFsIHwgY250MSB8IGNudDIgCistLS0tKy0tLS0tKy0tLS0tLSstLS0tLS0K KyAgMSB8ICAxMCB8ICAgIDAgfCAgICAxCisgIDIgfCAgMjAgfCAgICAyIHwgICAgMAorICAzIHwg IDMwIHwgICAgMCB8ICAgIDAKKygzIHJvd3MpCisKK1NFTEVDVCBwZ19nZXRfdmlld2RlZigncnBy X211bHRpd2luX3YnOjpyZWdjbGFzcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBnX2dldF92aWV3ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIFNFTEVDVCBpZCwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICAgIHZhbCwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgIGNvdW50KCopIE9WRVIgdzEgQVMgY250MSwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIGNvdW50KCopIE9WRVIgdzIg QVMgY250MiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgICAgRlJPTSBycHJfbXVsdGl3aW4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBXSU5E T1cgdzEgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORyAgICAgICAgICAgICArCisgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFT VCBST1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCisgICBJTklUSUFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBQQVRURVJOIChh KykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICBERUZJTkUgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICBhIEFTICh2YWwgPiAxNSkgKSwgdzIgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyArCisgICBBRlRFUiBNQVRDSCBTS0lQ IFBBU1QgTEFTVCBST1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICBJTklUSUFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBQ QVRURVJOIChiKikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBERUZJTkUgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICBiIEFTICh2YWwgPD0gMTUpICk7CisoMSByb3cpCisKKy0tIHtufSBxdWFu dGlmaWVyIGRpc3BsYXkgaW4gdmlldworQ1JFQVRFIFZJRVcgcnByX3F1YW50X25fdiBBUworU0VM RUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdworRlJPTSBycHJfc2VyaWFsCitXSU5ET1cgdyBB UyAoT1JERVIgQlkgaWQKKyAgICAgICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBJTklUSUFMCisgICAgICAgICAgICAg UEFUVEVSTiAoQXszfSkKKyAgICAgICAgICAgICBERUZJTkUgQSBBUyB2YWwgPiAwKTsKK1NFTEVD VCBwZ19nZXRfdmlld2RlZigncnByX3F1YW50X25fdic6OnJlZ2NsYXNzKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIFNFTEVDVCBpZCwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgdmFsLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICBjb3VudCgqKSBPVkVSIHcgQVMgY291bnQgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgRlJPTSBy cHJfc2VyaWFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKKyAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgKworICAgQUZURVIgTUFUQ0ggU0tJUCBQ QVNUIExBU1QgUk9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICBJTklUSUFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgIFBBVFRFUk4gKGF7M30pICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgREVGSU5F ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgICBhIEFTICh2YWwgPiAwKSApOworKDEgcm93KQorCistLSB7bix9IHF1 YW50aWZpZXIgZGlzcGxheSBpbiB2aWV3CitDUkVBVEUgVklFVyBycHJfcXVhbnRfbl9wbHVzX3Yg QVMKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcKK0ZST00gcnByX3NlcmlhbAorV0lO RE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgSU5JVElBTAorICAgICAg ICAgICAgIFBBVFRFUk4gKEF7Mix9KQorICAgICAgICAgICAgIERFRklORSBBIEFTIHZhbCA+IDAp OworU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdycHJfcXVhbnRfbl9wbHVzX3YnOjpyZWdjbGFzcyk7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF92aWV3ZGVmICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICBTRUxFQ1Qg aWQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgICAgIHZhbCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgY291bnQoKikgT1ZFUiB3 IEFTIGNvdW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgIEZST00gcnByX3NlcmlhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HICsKKyAgIEFGVEVS IE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgSU5JVElBTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBQQVRURVJOIChhezIsfSkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgIERFRklORSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgYSBBUyAodmFsID4gMCkgKTsKKygxIHJvdykK KworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLSBFcnJvciBDYXNlcyBUZXN0cworLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CitEUk9QIFRBQkxFIElGIEVY SVNUUyBycHJfZXJyOworQ1JFQVRFIFRBQkxFIHJwcl9lcnIgKGlkIElOVCwgdmFsIElOVCk7CitJ TlNFUlQgSU5UTyBycHJfZXJyIFZBTFVFUyAoMSwgMTApLCAoMiwgMjApOworLS0gU3ludGF4IGVy cm9ycworLS0gSW52YWxpZCBxdWFudGlmaWVyIHN5bnRheAorU0VMRUNUIENPVU5UKCopIE9WRVIg dworRlJPTSBycHJfZXJyCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJO IChBKyEpCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKK0VSUk9SOiAgdW5zdXBwb3J0ZWQg cXVhbnRpZmllciAiKyEiCitMSU5FIDY6ICAgICBQQVRURVJOIChBKyEpCisgICAgICAgICAgICAg ICAgICAgICAgXgorSElOVDogIFZhbGlkIHF1YW50aWZpZXJzIGFyZTogKiwgKywgPywgKj8sICs/ LCA/Pywge259LCB7bix9LCB7LG19LCB7bixtfSBhbmQgdGhlaXIgcmVsdWN0YW50IHZlcnNpb25z LgorLS0gRXhwZWN0ZWQ6IFN5bnRheCBlcnJvcgorLS0gVW5tYXRjaGVkIHBhcmVudGhlc2VzCitT RVQgY2xpZW50X21pbl9tZXNzYWdlcyA9IE5PVElDRTsKK0RPICQkCitCRUdJTgorICAgIEVYRUNV VEUgJ1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfZXJyIFdJTkRPVyB3IEFTIChPUkRF UiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcg UEFUVEVSTiAoKEEgQikgREVGSU5FIEEgQVMgdmFsID4gMCwgQiBBUyB2YWwgPiAxMCknOworICAg IFJBSVNFIE5PVElDRSAnVW5tYXRjaGVkIHBhcmVudGhlc2VzOiBVTkVYUEVDVEVEIFNVQ0NFU1Mn OworRVhDRVBUSU9OCisgICAgV0hFTiBzeW50YXhfZXJyb3IgVEhFTgorICAgICAgICBSQUlTRSBO T1RJQ0UgJ1VubWF0Y2hlZCBwYXJlbnRoZXNlczogRVhQRUNURUQgRVJST1IgLSAlJywgU1FMRVJS TTsKKyAgICBXSEVOIE9USEVSUyBUSEVOCisgICAgICAgIFJBSVNFIE5PVElDRSAnVW5tYXRjaGVk IHBhcmVudGhlc2VzOiBVTkVYUEVDVEVEIEVSUk9SIC0gJScsIFNRTEVSUk07CitFTkQgJCQ7CitO T1RJQ0U6ICBVbm1hdGNoZWQgcGFyZW50aGVzZXM6IEVYUEVDVEVEIEVSUk9SIC0gc3ludGF4IGVy cm9yIGF0IG9yIG5lYXIgIkFTIgorU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSBXQVJOSU5HOwor LS0gRW1wdHkgREVGSU5FCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CitGUk9NIHJwcl9lcnIKK1dJ TkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORQor KTsKK0VSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIikiCitMSU5FIDg6ICk7CisgICAg ICAgIF4KKy0tIEV4cGVjdGVkOiBTeW50YXggZXJyb3IKKy0tIEVtcHR5IFBBVFRFUk4KK1NFTEVD VCBDT1VOVCgqKSBPVkVSIHcKK0ZST00gcnByX2VycgorV0lORE9XIHcgQVMgKAorICAgIE9SREVS IEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgUEFUVEVSTiAoKQorICAgIERFRklORSBBIEFTIHZhbCA+IDAKKyk7CitFUlJPUjog IHN5bnRheCBlcnJvciBhdCBvciBuZWFyICIpIgorTElORSA2OiAgICAgUEFUVEVSTiAoKQorICAg ICAgICAgICAgICAgICAgICAgXgorLS0gRXhwZWN0ZWQ6IFN5bnRheCBlcnJvcgorLS0gREVGSU5F IHdpdGhvdXQgUEFUVEVSTiAoUEFUVEVSTiBhbmQgREVGSU5FIG11c3QgYmUgdXNlZCB0b2dldGhl cikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZST00gcnByX2VycgorV0lORE9XIHcgQVMgKAor ICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKK0VSUk9SOiAgc3ludGF4 IGVycm9yIGF0IG9yIG5lYXIgIkRFRklORSIKK0xJTkUgNjogICAgIERFRklORSBBIEFTIHZhbCA+ IDAKKyAgICAgICAgICAgIF4KKy0tIEV4cGVjdGVkOiBTeW50YXggZXJyb3IKKy0tIFF1YWxpZmll ZCBjb2x1bW4gcmVmZXJlbmNlcyAoTk9UIFNVUFBPUlRFRCkKKy0tIFBhdHRlcm4gdmFyaWFibGUg cXVhbGlmaWVkIG5hbWU6IG5vdCBzdXBwb3J0ZWQgKHZhbGlkIHBlciBTUUwgc3RhbmRhcmQgNC4x Niwgbm90IHlldCBpbXBsZW1lbnRlZCkKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcKK0ZST00gcnBy X2VycgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAg REVGSU5FIEEgQVMgQS52YWwgPiAwCispOworRVJST1I6ICBwYXR0ZXJuIHZhcmlhYmxlIHF1YWxp ZmllZCBjb2x1bW4gcmVmZXJlbmNlICJhLnZhbCIgaXMgbm90IHN1cHBvcnRlZCBpbiBERUZJTkUg Y2xhdXNlCitMSU5FIDc6ICAgICBERUZJTkUgQSBBUyBBLnZhbCA+IDAKKyAgICAgICAgICAgICAg ICAgICAgICAgIF4KKy0tIEV4cGVjdGVkOiBFUlJPUjogcGF0dGVybiB2YXJpYWJsZSBxdWFsaWZp ZWQgY29sdW1uIHJlZmVyZW5jZSAiYS52YWwiIGlzIG5vdCBzdXBwb3J0ZWQKKy0tIFBBVFRFUk4t b25seSB2YXJpYWJsZSBxdWFsaWZpZWQgbmFtZTogbm90IHN1cHBvcnRlZCBldmVuIHdpdGhvdXQg REVGSU5FIGVudHJ5CitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CitGUk9NIHJwcl9lcnIKK1dJTkRP VyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErIEIrKQorICAgIERFRklORSBB IEFTIEIudmFsID4gMAorKTsKK0VSUk9SOiAgcGF0dGVybiB2YXJpYWJsZSBxdWFsaWZpZWQgY29s dW1uIHJlZmVyZW5jZSAiYi52YWwiIGlzIG5vdCBzdXBwb3J0ZWQgaW4gREVGSU5FIGNsYXVzZQor TElORSA3OiAgICAgREVGSU5FIEEgQVMgQi52YWwgPiAwCisgICAgICAgICAgICAgICAgICAgICAg ICBeCistLSBFeHBlY3RlZDogRVJST1I6IHBhdHRlcm4gdmFyaWFibGUgcXVhbGlmaWVkIGNvbHVt biByZWZlcmVuY2UgImIudmFsIiBpcyBub3Qgc3VwcG9ydGVkCistLSBERUZJTkUtb25seSB2YXJp YWJsZSBxdWFsaWZpZWQgbmFtZTogc3RpbGwgYSBwYXR0ZXJuIHZhcmlhYmxlLCBub3QgYSByYW5n ZSB2YXJpYWJsZQorU0VMRUNUIENPVU5UKCopIE9WRVIgdworRlJPTSBycHJfZXJyCitXSU5ET1cg dyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2 YWwgPiAwLCBCIEFTIEIudmFsID4gMAorKTsKK0VSUk9SOiAgREVGSU5FIHZhcmlhYmxlICJiIiBp cyBub3QgdXNlZCBpbiBQQVRURVJOCitMSU5FIDc6ICAgICBERUZJTkUgQSBBUyB2YWwgPiAwLCBC IEFTIEIudmFsID4gMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gRXhw ZWN0ZWQ6IEVSUk9SOiBwYXR0ZXJuIHZhcmlhYmxlIHF1YWxpZmllZCBjb2x1bW4gcmVmZXJlbmNl ICJiLnZhbCIgaXMgbm90IHN1cHBvcnRlZAorLS0gRlJPTS1jbGF1c2UgcmFuZ2UgdmFyaWFibGUg cXVhbGlmaWVkIG5hbWU6IG5vdCBhbGxvd2VkIChwcm9oaWJpdGVkIGJ5IFNRTCBzdGFuZGFyZCA2 LjUpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CitGUk9NIHJwcl9lcnIKK1dJTkRPVyB3IEFTICgK KyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHJwcl9lcnIu dmFsID4gMAorKTsKK0VSUk9SOiAgcmFuZ2UgdmFyaWFibGUgcXVhbGlmaWVkIGNvbHVtbiByZWZl cmVuY2UgInJwcl9lcnIudmFsIiBpcyBub3QgYWxsb3dlZCBpbiBERUZJTkUgY2xhdXNlCitMSU5F IDc6ICAgICBERUZJTkUgQSBBUyBycHJfZXJyLnZhbCA+IDAKKyAgICAgICAgICAgICAgICAgICAg ICAgIF4KKy0tIEV4cGVjdGVkOiBFUlJPUjogcmFuZ2UgdmFyaWFibGUgcXVhbGlmaWVkIGNvbHVt biByZWZlcmVuY2UgInJwcl9lcnIudmFsIiBpcyBub3QgYWxsb3dlZAorLS0gU2VtYW50aWMgZXJy b3JzCistLSBVbmRlZmluZWQgY29sdW1uIGluIERFRklORQorU0VMRUNUIENPVU5UKCopIE9WRVIg dworRlJPTSBycHJfZXJyCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJO IChBKykKKyAgICBERUZJTkUgQSBBUyBub25leGlzdGVudF9jb2x1bW4gPiAwCispOworRVJST1I6 ICBjb2x1bW4gIm5vbmV4aXN0ZW50X2NvbHVtbiIgZG9lcyBub3QgZXhpc3QKK0xJTkUgNzogICAg IERFRklORSBBIEFTIG5vbmV4aXN0ZW50X2NvbHVtbiA+IDAKKyAgICAgICAgICAgICAgICAgICAg ICAgIF4KKy0tIEV4cGVjdGVkOiBFUlJPUjogY29sdW1uICJub25leGlzdGVudF9jb2x1bW4iIGRv ZXMgbm90IGV4aXN0CistLSBUeXBlIG1pc21hdGNoCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CitG Uk9NIHJwcl9lcnIKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEr KQorICAgIERFRklORSBBIEFTIHZhbCA+ICdzdHJpbmcnCispOworRVJST1I6ICBpbnZhbGlkIGlu cHV0IHN5bnRheCBmb3IgdHlwZSBpbnRlZ2VyOiAic3RyaW5nIgorTElORSA3OiAgICAgREVGSU5F IEEgQVMgdmFsID4gJ3N0cmluZycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0t IEV4cGVjdGVkOiBFUlJPUjogaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgaW50ZWdlcjog InN0cmluZyIKKy0tIEFnZ3JlZ2F0ZSBmdW5jdGlvbiBpbiBERUZJTkUgKGlmIG5vdCBhbGxvd2Vk KQorU0VMRUNUIENPVU5UKCopIE9WRVIgdworRlJPTSBycHJfZXJyCitXSU5ET1cgdyBBUyAoCisg ICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBDT1VOVCgqKSA+ IDAKKyk7CitFUlJPUjogIGFnZ3JlZ2F0ZSBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIERF RklORQorTElORSA3OiAgICAgREVGSU5FIEEgQVMgQ09VTlQoKikgPiAwCisgICAgICAgICAgICAg ICAgICAgICAgICBeCistLSBFeHBlY3RlZDogRVJST1I6IGFnZ3JlZ2F0ZSBmdW5jdGlvbnMgYXJl IG5vdCBhbGxvd2VkIGluIERFRklORQorLS0gU3VicXVlcnkgaW4gREVGSU5FIChOT1QgU1VQUE9S VEVEKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdworRlJPTSBycHJfZXJyCitXSU5ET1cgdyBBUyAo CisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAo U0VMRUNUIG1heCh2YWwpIEZST00gcnByX2VycikKKyk7CitFUlJPUjogIGNhbm5vdCB1c2Ugc3Vi cXVlcnkgaW4gREVGSU5FIGV4cHJlc3Npb24KK0xJTkUgNzogICAgIERFRklORSBBIEFTIHZhbCA+ IChTRUxFQ1QgbWF4KHZhbCkgRlJPTSBycHJfZXJyKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgorLS0gRXhwZWN0ZWQ6IEVSUk9SOiBjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIERFRklO RSBleHByZXNzaW9uCistLSBFZGdlIGNhc2VzCistLSBQYXR0ZXJuIHZhcmlhYmxlIG5vdCB1c2Vk IChzaG91bGQgd29yaywgZXh0cmEgdmFycyBpZ25vcmVkKQorU0VMRUNUIGlkLCB2YWwsIENPVU5U KCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX2VycgorV0lORE9XIHcgQVMgKAorICAgIE9SREVS IEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgdmFsID4gMCwgQiBBUyB2YWwg PiA1LCBDIEFTIHZhbCA+IDEwCispCitPUkRFUiBCWSBpZDsKK0VSUk9SOiAgREVGSU5FIHZhcmlh YmxlICJiIiBpcyBub3QgdXNlZCBpbiBQQVRURVJOCitMSU5FIDc6ICAgICBERUZJTkUgQSBBUyB2 YWwgPiAwLCBCIEFTIHZhbCA+IDUsIEMgQVMgdmFsID4gMTAKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KK0RST1AgVEFCTEUgcnByX2VycjsKKy0tIE5VTEwgaGFuZGxpbmcKK0NS RUFURSBUQUJMRSBycHJfbnVsbCAoaWQgSU5ULCB2YWwgSU5UKTsKK0lOU0VSVCBJTlRPIHJwcl9u dWxsIFZBTFVFUyAoMSwgMTApLCAoMiwgTlVMTCksICgzLCAzMCk7CistLSBOVUxMIGluIERFRklO RSBleHByZXNzaW9uCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJP TSBycHJfbnVsbAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSsp CisgICAgREVGSU5FIEEgQVMgdmFsID4gMTUKKykKK09SREVSIEJZIGlkOworIGlkIHwgdmFsIHwg Y250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAwCisgIDIgfCAgICAgfCAgIDAK KyAgMyB8ICAzMCB8ICAgMQorKDMgcm93cykKKworLS0gSVMgTlVMTCBpbiBERUZJTkUKK1NFTEVD VCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9udWxsCitXSU5ET1cg dyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChOKykKKyAgICBERUZJTkUgTiBBUyB2 YWwgSVMgTlVMTAorKQorT1JERVIgQlkgaWQ7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0t Ky0tLS0tCisgIDEgfCAgMTAgfCAgIDAKKyAgMiB8ICAgICB8ICAgMQorICAzIHwgIDMwIHwgICAw CisoMyByb3dzKQorCistLSBJUyBOT1QgTlVMTCBpbiBERUZJTkUKK1NFTEVDVCBpZCwgdmFsLCBD T1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9udWxsCitXSU5ET1cgdyBBUyAoCisgICAg T1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBQQVRURVJOIChOTispCisgICAgREVGSU5FIE5OIEFTIHZhbCBJUyBOT1Qg TlVMTAorKQorT1JERVIgQlkgaWQ7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0t CisgIDEgfCAgMTAgfCAgIDEKKyAgMiB8ICAgICB8ICAgMAorICAzIHwgIDMwIHwgICAxCisoMyBy b3dzKQorCitEUk9QIFRBQkxFIHJwcl9udWxsOworLS0gQ29tcG91bmQgbmF2aWdhdGlvbjogaW5u ZXIgbmF2IG11c3QgYmUgZGlyZWN0IGFyZyAobm90IG5lc3RlZCBpbiBleHByZXNzaW9uKQorU0VM RUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lO RE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYodiArIEZJUlNU KHYpKSA+IDAKKyk7CitFUlJPUjogIHJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb3BlcmF0aW9uIG11 c3QgYmUgYSBkaXJlY3QgYXJndW1lbnQgb2YgdGhlIG91dGVyIG5hdmlnYXRpb24KK0xJTkUgNjog ICAgIERFRklORSBBIEFTIFBSRVYodiArIEZJUlNUKHYpKSA+IDAKKyAgICAgICAgICAgICAgICAg ICAgICAgIF4KK0hJTlQ6ICBPbmx5IFBSRVYoRklSU1QoKSksIFBSRVYoTEFTVCgpKSwgTkVYVChG SVJTVCgpKSwgYW5kIE5FWFQoTEFTVCgpKSBjb21wb3VuZCBmb3JtcyBhcmUgYWxsb3dlZC4KKy0t IEZJUlNUL0xBU1Qgd3JhcHBpbmcgRklSU1QvTEFTVDogcHJvaGliaXRlZAorU0VMRUNUIGNvdW50 KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMg KAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIEZJUlNUKEZJUlNUKHYpKSA+IDAKKyk7 CitFUlJPUjogIEZJUlNUIGFuZCBMQVNUIGNhbm5vdCBjb250YWluIEZJUlNUIG9yIExBU1QKK0xJ TkUgNjogICAgIERFRklORSBBIEFTIEZJUlNUKEZJUlNUKHYpKSA+IDAKKyAgICAgICAgICAgICAg ICAgICAgICAgIF4KK0hJTlQ6ICBPbmx5IFBSRVYoRklSU1QoKSksIFBSRVYoTEFTVCgpKSwgTkVY VChGSVJTVCgpKSwgYW5kIE5FWFQoTEFTVCgpKSBjb21wb3VuZCBmb3JtcyBhcmUgYWxsb3dlZC4K Ky0tIFRyaXBsZSBuZXN0aW5nOiBwcm9oaWJpdGVkICgzLWxldmVsIGRlZXAgbmF2aWdhdGlvbikK K1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikK K1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVWKEZJUlNU KFBSRVYodikpKSA+IDAKKyk7CitFUlJPUjogIGNhbm5vdCBuZXN0IHJvdyBwYXR0ZXJuIG5hdmln YXRpb24gbW9yZSB0aGFuIHR3byBsZXZlbHMgZGVlcAorTElORSA2OiAgICAgREVGSU5FIEEgQVMg UFJFVihGSVJTVChQUkVWKHYpKSkgPiAwCisgICAgICAgICAgICAgICAgICAgICAgICBeCitISU5U OiAgT25seSBQUkVWKEZJUlNUKCkpLCBQUkVWKExBU1QoKSksIE5FWFQoRklSU1QoKSksIGFuZCBO RVhUKExBU1QoKSkgY29tcG91bmQgZm9ybXMgYXJlIGFsbG93ZWQuCistLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFdpbmRv dyBEZWR1cGxpY2F0aW9uIFRlc3RzCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIG5vbi1SUFIgYW5kIFJQUiB3aW5kb3dz IHdpdGggaWRlbnRpY2FsIGJhc2UgZnJhbWUgYXJlIGtlcHQgc2VwYXJhdGUuCitTRUxFQ1QgaWQs IHZhbCwKKyAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiAoCisgICAgICAgIE9SREVSIEJZIGlkCisg ICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgICkgQVMgZnZfbm9ybWFsLAorICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcxIEFTIGZ2X3Jw cgorRlJPTSAoVkFMVUVTICgxLCAxMCksICgyLCAyMCksICgzLCAzMCksICg0LCA0MCkpIEFTIHQo aWQsIHZhbCkKK1dJTkRPVyB3MSBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykK KyAgICBERUZJTkUgQSBBUyB2YWwgPiAxMAorKTsKKyBpZCB8IHZhbCB8IGZ2X25vcm1hbCB8IGZ2 X3JwciAKKy0tLS0rLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0KKyAgMSB8ICAxMCB8ICAgICAg ICAgMSB8ICAgICAgIAorICAyIHwgIDIwIHwgICAgICAgICAyIHwgICAgICAyCisgIDMgfCAgMzAg fCAgICAgICAgIDMgfCAgICAgICAKKyAgNCB8ICA0MCB8ICAgICAgICAgNCB8ICAgICAgIAorKDQg cm93cykKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLSBQYXR0ZXJuIE9wdGltaXphdGlvbiBUZXN0cworLS0gPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LSBUZXN0cyBmb3IgcGF0dGVybiBvcHRpbWl6YXRpb24gaW4gb3B0aW1pemVyL3BsYW4vcnByLmMK Ky0tIFVzZSBFWFBMQUlOIHRvIHZlcmlmeSBvcHRpbWl6ZWQgcGF0dGVybiAoc2hvd24gYXMgIlBh dHRlcm46IC4uLiIpCitDUkVBVEUgVEFCTEUgcnByX3BsYW4gKGlkIElOVCwgdmFsIElOVCk7CitJ TlNFUlQgSU5UTyBycHJfcGxhbiBWQUxVRVMKKyAgICAoMSwgMTApLCAoMiwgMjApLCAoMywgMzAp LCAoNCwgNDApLCAoNSwgNTApLAorICAgICg2LCA2MCksICg3LCA3MCksICg4LCA4MCksICg5LCA5 MCksICgxMCwgMTAwKTsKKy0tIENvbnNlY3V0aXZlIFZBUiBtZXJnZTogQSBBIEEgLT4gYXszfQor RVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFu CitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoQSBBIEEpIERFRklORSBB IEFTIHZhbCA+IDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBM QU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhezN9 CisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5 OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCisoNyByb3dzKQorCistLSBD b25zZWN1dGl2ZSBWQVIgbWVyZ2U6IEF7Mn0gQXszfSAtPiBhezV9CitFWFBMQUlOIChDT1NUUyBP RkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChP UkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICAgICAgICAgICBQQVRURVJOIChBezJ9IEF7M30pIERFRklORSBBIEFTIHZhbCA+IDAp OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRv d0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhezV9CisgICBOYXYgTWFy ayBMb29rYmFjazogMAorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAg ICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCisoNyByb3dzKQorCistLSBDb25zZWN1dGl2ZSBW QVIgbWVyZ2U6IEErIEEqIC0+IGErCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQo KikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQ QVRURVJOIChBKyBBKikgREVGSU5FIEEgQVMgdmFsID4gMCk7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMg KE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORykKKyAgIFBhdHRlcm46IGErIgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIC0+ICBT b3J0CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJf cGxhbgorKDcgcm93cykKKworLS0gQ29uc2VjdXRpdmUgVkFSIG1lcmdlOiBBIEErIC0+IGF7Mix9 CistLSBUZXN0cyBsaW5lIDI1MTogY2hpbGQtPm1heCA9PSBSUFJfUVVBTlRJVFlfSU5GIGJyYW5j aCBpbiBtZXJnZUNvbnNlY3V0aXZlVmFycworLS0gcHJldjogQXsxLDF9IChmaW5pdGUpLCBjaGls ZDogQSsgKGluZmluaXRlKSB0cmlnZ2VycyBsaW5lIDI1MSBldmFsdWF0aW9uCitFWFBMQUlOIChD T1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3 IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOIChBIEErKSBERUZJTkUgQSBBUyB2YWwgPiAw KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5k b3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYXsyLH0iCisgICBOYXYg TWFyayBMb29rYmFjazogMAorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAg ICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCisoNyByb3dzKQorCistLSBDb25zZWN1dGl2 ZSBHUk9VUCBtZXJnZSB3aXRoIGZpbml0ZSBxdWFudGlmaWVyczogKChBIEIpezV9KSAoKEEgQil7 MTB9KSAtPiBtZXJnZWQKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVS IHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4g KCgoQSBCKXs1fSkgKChBIEIpezEwfSkpIERFRklORSBBIEFTIHZhbCA8PSA1MCwgQiBBUyB2YWwg PiA1MCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg V2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhIGIpezE1fQor ICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTog aWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgorKDcgcm93cykKKworLS0gQ29u c2VjdXRpdmUgR1JPVVAgbWVyZ2Ugd2l0aCB1bmJvdW5kZWQ6IChBIEIpKyAoQSBCKSsgLT4gKGEg Yil7Mix9CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00g cnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOICgoQSBCKSsg KEEgQikrKSBERUZJTkUgQSBBUyB2YWwgPD0gNTAsIEIgQVMgdmFsID4gNTApOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2lu ZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYScgYicpezIsfSIKKyAgIE5hdiBNYXJrIExv b2tiYWNrOiAwCisgICAtPiAgU29ydAorICAgICAgICAgU29ydCBLZXk6IGlkCisgICAgICAgICAt PiAgU2VxIFNjYW4gb24gcnByX3BsYW4KKyg3IHJvd3MpCisKKy0tIENvbnNlY3V0aXZlIEdST1VQ IG1lcmdlOiAoQSBCKXsyfSAoQSBCKSsgLT4gKGEgYil7Myx9CistLSBUZXN0cyBsaW5lIDMyNTog Y2hpbGQtPm1heCA9PSBSUFJfUVVBTlRJVFlfSU5GIGJyYW5jaCBpbiBtZXJnZUNvbnNlY3V0aXZl R3JvdXBzCistLSBwcmV2OiAoQSBCKXsyLDJ9IChmaW5pdGUpLCBjaGlsZDogKEEgQikrIChpbmZp bml0ZSkgdHJpZ2dlcnMgbGluZSAzMjUgZXZhbHVhdGlvbgorRVhQTEFJTiAoQ09TVFMgT0ZGKQor U0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIg QlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgICAgICAgICAgUEFUVEVSTiAoKEEgQil7Mn0gKEEgQikrKSBERUZJTkUgQSBBUyB2YWwgPD0g NTAsIEIgQVMgdmFsID4gNTApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJu OiAoYScgYicpezMsfSIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICAtPiAgU29ydAorICAg ICAgICAgU29ydCBLZXk6IGlkCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KKyg3 IHJvd3MpCisKKy0tIFBSRUZJWCBtZXJnZTogQSBCIChBIEIpKyAtPiAoYSBiKXsyLH0KK0VYUExB SU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lO RE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKEEgQiAoQSBCKSspIERFRklORSBB IEFTIHZhbCA8PSA1MCwgQiBBUyB2YWwgPiA1MCk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVS IEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykK KyAgIFBhdHRlcm46IChhJyBiJyl7Mix9IgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIC0+ ICBTb3J0CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBy cHJfcGxhbgorKDcgcm93cykKKworLS0gUFJFRklYIGFuZCBTVUZGSVggbWVyZ2U6IEEgQiAoQSBC KSsgQSBCIC0+IChhIGIpezMsfQorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCop IE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFU VEVSTiAoQSBCIChBIEIpKyBBIEIpIERFRklORSBBIEFTIHZhbCA8PSA0MCwgQiBBUyB2YWwgPiA0 MCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2lu ZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhJyBiJyl7Myx9Igor ICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTog aWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgorKDcgcm93cykKKworLS0gRmxh dHRlbiBuZXN0ZWQ6IEEgKChCKSAoQykpIC0+IGEgYiBjCitFWFBMQUlOIChDT1NUUyBPRkYpCitT RUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBC WSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICAgICAgICAgICBQQVRURVJOIChBICgoQikgKEMpKSkgREVGSU5FIEEgQVMgdmFsIDw9IDMwLCBC IEFTIHZhbCA8PSA2MCwgQyBBUyB2YWwgPiA2MCk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVS IEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykK KyAgIFBhdHRlcm46IGEgYiBjCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgLT4gIFNvcnQK KyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFu CisoNyByb3dzKQorCistLSBEYXRhIGV4ZWN1dGlvbjogU0VRIGZsYXR0ZW4gcHJvZHVjZXMgY29y cmVjdCByZXN1bHRzCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJP TSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIEFGVEVSIE1BVENIIFNL SVAgVE8gTkVYVCBST1cKKyAgICAgICAgICAgICBQQVRURVJOIChBICgoQikgKEMpKSkgREVGSU5F IEEgQVMgdmFsIDw9IDMwLCBCIEFTIHZhbCA8PSA2MCwgQyBBUyB2YWwgPiA2MCk7CisgaWQgfCB2 YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDAKKyAgMiB8ICAyMCB8 ICAgMAorICAzIHwgIDMwIHwgICAwCisgIDQgfCAgNDAgfCAgIDAKKyAgNSB8ICA1MCB8ICAgMAor ICA2IHwgIDYwIHwgICAwCisgIDcgfCAgNzAgfCAgIDAKKyAgOCB8ICA4MCB8ICAgMAorICA5IHwg IDkwIHwgICAwCisgMTAgfCAxMDAgfCAgIDAKKygxMCByb3dzKQorCistLSBBTFQgZmxhdHRlbjog KEEgfCAoQiB8IEMpKSsgLT4gKGEgfCBiIHwgYykrCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxF Q1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBp ZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAg ICAgICAgICBQQVRURVJOICgoQSB8IChCIHwgQykpKykgREVGSU5FIEEgQVMgdmFsIDw9IDMwLCBC IEFTIHZhbCA8PSA2MCwgQyBBUyB2YWwgPiA2MCk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVS IEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykK KyAgIFBhdHRlcm46IChhIHwgYiB8IGMpKworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIC0+ ICBTb3J0CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBy cHJfcGxhbgorKDcgcm93cykKKworLS0gQUxUIGRlZHVwbGljYXRlOiAoQSB8IEIgfCBBKSAtPiAo YSB8IGIpCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00g cnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOICgoQSB8IEIg fCBBKSspIERFRklORSBBIEFTIHZhbCA8PSA1MCwgQiBBUyB2YWwgPiA1MCk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5k b3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhIHwgYikrCisgICBOYXYgTWFyayBMb29rYmFj azogMAorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNl cSBTY2FuIG9uIHJwcl9wbGFuCisoNyByb3dzKQorCistLSBEYXRhIGV4ZWN1dGlvbjogQUxUIGRl ZHVwIHByb2R1Y2VzIGNvcnJlY3QgcmVzdWx0cworU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9W RVIgdyBBUyBjbnQKK0ZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAg ICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICAgICAgICAgICBQQVRURVJOICgo QSB8IEIgfCBBKSspIERFRklORSBBIEFTIHZhbCA8PSA1MCwgQiBBUyB2YWwgPiA1MCk7CisgaWQg fCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgMTAKKyAgMiB8ICAy MCB8ICAgMAorICAzIHwgIDMwIHwgICAwCisgIDQgfCAgNDAgfCAgIDAKKyAgNSB8ICA1MCB8ICAg MAorICA2IHwgIDYwIHwgICAwCisgIDcgfCAgNzAgfCAgIDAKKyAgOCB8ICA4MCB8ICAgMAorICA5 IHwgIDkwIHwgICAwCisgMTAgfCAxMDAgfCAgIDAKKygxMCByb3dzKQorCistLSBRdWFudGlmaWVy IG11bHRpcGx5OiAoQXsyfSl7M30gLT4gYXs2fQorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNU IENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAg ICAgICAgUEFUVEVSTiAoKEF7Mn0pezN9KSBERUZJTkUgQSBBUyB2YWwgPiAwKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdp bmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYXs2fQorICAgTmF2IE1hcmsgTG9va2JhY2s6 IDAKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAgIC0+ICBTZXEg U2NhbiBvbiBycHJfcGxhbgorKDcgcm93cykKKworLS0gUXVhbnRpZmllciBtdWx0aXBseSB3aXRo IGNoaWxkIHJhbmdlOiAoQXsyLDN9KXszfSAtPiBhezYsOX0KKy0tIG91dGVyIGV4YWN0LCBjaGls ZCByYW5nZSAtIG9wdGltaXphdGlvbiBhcHBsaWVzCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxF Q1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBp ZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAg ICAgICAgICBQQVRURVJOICgoQXsyLDN9KXszfSkgREVGSU5FIEEgQVMgdmFsID4gMCk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisg ICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGF7Niw5fQorICAgTmF2IE1hcmsgTG9v a2JhY2s6IDAKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAgIC0+ ICBTZXEgU2NhbiBvbiBycHJfcGxhbgorKDcgcm93cykKKworLS0gUXVhbnRpZmllciBOTyBtdWx0 aXBseTogKEF7Mn0pezIsM30gc3RheXMgYXMgKGF7Mn0pezIsM30KKy0tIG91dGVyIHJhbmdlIC0g Z2FwcyB3b3VsZCBvY2N1ciAoNCw2IG5vdCA0LDUsNiksIG5vIG9wdGltaXphdGlvbgorRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5E T1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoKEF7Mn0pezIsM30pIERFRklORSBB IEFTIHZhbCA+IDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBM QU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYXsy fSl7MiwzfQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIC0+ICBTb3J0CisgICAgICAgICBT b3J0IEtleTogaWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgorKDcgcm93cykK KworLS0gUXVhbnRpZmllciBOTyBtdWx0aXBseTogKEF7Mn0pezIsfSBzdGF5cyBhcyAoYXsyfSl7 Mix9CistLSBvdXRlciB1bmJvdW5kZWQgLSBnYXBzIHdvdWxkIG9jY3VyICg0LDYsOCwuLi4gbm90 IDQsNSw2LC4uLiksIG5vIG9wdGltaXphdGlvbgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNU IENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAg ICAgICAgUEFUVEVSTiAoKEF7Mn0pezIsfSkgREVGSU5FIEEgQVMgdmFsID4gMCk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBX aW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhezJ9Jyl7Mix9IgorICAgTmF2IE1hcmsg TG9va2JhY2s6IDAKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAg IC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgorKDcgcm93cykKKworLS0gUXVhbnRpZmllciBtdWx0 aXBseTogKEEpezIsfSAtPiBhezIsfQorLS0gY2hpbGQgZXhhY3QgMSAtIG5vIGdhcHMsIG9wdGlt aXphdGlvbiBhcHBsaWVzCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZF UiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJO ICgoQSl7Mix9KSBERUZJTkUgQSBBUyB2YWwgPiAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoT1JE RVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H KQorICAgUGF0dGVybjogYXsyLH0iCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgLT4gIFNv cnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9w bGFuCisoNyByb3dzKQorCistLSBRdWFudGlmaWVyIG11bHRpcGx5OiAoQSkrIC0+IGErCistLSBj aGlsZCBleGFjdCAxIC0gbm8gZ2Fwcywgb3B0aW1pemF0aW9uIGFwcGxpZXMKK0VYUExBSU4gKENP U1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcg QVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKChBKSspIERFRklORSBBIEFTIHZhbCA+IDAp OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRv d0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhKyIKKyAgIE5hdiBNYXJr IExvb2tiYWNrOiAwCisgICAtPiAgU29ydAorICAgICAgICAgU29ydCBLZXk6IGlkCisgICAgICAg ICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KKyg3IHJvd3MpCisKKy0tIFF1YW50aWZpZXIgTk8g bXVsdGlwbHk6IChBezJ9KXszLDV9IHN0YXlzIGFzIChhezJ9KXszLDV9CistLSBvdXRlciByYW5n ZSwgY2hpbGQgZXhhY3QgPiAxIC0gZ2FwcyB3b3VsZCBvY2N1ciAoNiw4LDEwIG5vdCA2LDcsOCw5 LDEwKQorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJw cl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoKEF7Mn0pezMs NX0pIERFRklORSBBIEFTIHZhbCA+IDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBp ZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQ YXR0ZXJuOiAoYXsyfSl7Myw1fQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIC0+ICBTb3J0 CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxh bgorKDcgcm93cykKKworLS0gUXVhbnRpZmllciBOTyBtdWx0aXBseTogKEF7MiwzfSl7MiwzfSBz dGF5cyBhcyAoYXsyLDN9KXsyLDN9CistLSBvdXRlciByYW5nZSwgY2hpbGQgcmFuZ2UgLSBnYXBz IHBvc3NpYmxlIChlLmcuLCAoQXs0LDV9KXsyLDN9IG1pc3NlcyAxMSkKK0VYUExBSU4gKENPU1RT IE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMg KE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgICAgICAgICAgIFBBVFRFUk4gKChBezIsM30pezIsM30pIERFRklORSBBIEFTIHZh bCA+IDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYXsyLDN9KXsy LDN9CisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQg S2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCisoNyByb3dzKQorCist LSBOZXN0ZWQgdW5ib3VuZGVkOiAoQSopKiAtPiBhKgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VM RUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkg aWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg ICAgICAgICAgUEFUVEVSTiAoKEEqKSopIERFRklORSBBIEFTIHZhbCA+IDApOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2lu ZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhKiIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAw CisgICAtPiAgU29ydAorICAgICAgICAgU29ydCBLZXk6IGlkCisgICAgICAgICAtPiAgU2VxIFNj YW4gb24gcnByX3BsYW4KKyg3IHJvd3MpCisKKy0tIE5lc3RlZCB1bmJvdW5kZWQ6IChBKykqIC0+ IGEqCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnBy X3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOICgoQSspKikgREVG SU5FIEEgQVMgdmFsID4gMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVF UlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46 IGEqIgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0 IEtleTogaWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgorKDcgcm93cykKKwor LS0gTmVzdGVkIHVuYm91bmRlZDogKEErKSsgLT4gYSsKK0VYUExBSU4gKENPU1RTIE9GRikKK1NF TEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZ IGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg ICAgICAgICAgIFBBVFRFUk4gKChBKykrKSBERUZJTkUgQSBBUyB2YWwgPiAwKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdp bmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSsiCisgICBOYXYgTWFyayBMb29rYmFjazog MAorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBT Y2FuIG9uIHJwcl9wbGFuCisoNyByb3dzKQorCistLSBVbndyYXAgR1JPVVB7MSwxfTogKEEpIC0+ IGEKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJf cGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKChBKSkgREVGSU5F IEEgQVMgdmFsID4gMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGEK KyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICAtPiAgU29ydAorICAgICAgICAgU29ydCBLZXk6 IGlkCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KKyg3IHJvd3MpCisKKy0tIFVu d3JhcCBHUk9VUHsxLDF9OiAoQSBCKSAtPiBhIGIKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVD VCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlk IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAg ICAgICAgIFBBVFRFUk4gKChBIEIpKSBERUZJTkUgQSBBUyB2YWwgPD0gNTAsIEIgQVMgdmFsID4g NTApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdp bmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhIGIKKyAgIE5hdiBN YXJrIExvb2tiYWNrOiAwCisgICAtPiAgU29ydAorICAgICAgICAgU29ydCBLZXk6IGlkCisgICAg ICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KKyg3IHJvd3MpCisKKy0tIENvbWJpbmVkIG9w dGltaXphdGlvbjogQSBBIChCIEIpKyBCIEIgQyBDIEMgLT4gYXsyfSAoYnsyfSl7Mix9IGN7M30K K0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxh bgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKEEgQSAoQiBCKSsgQiBC IEMgQyBDKQorICAgICAgICAgICAgIERFRklORSBBIEFTIHZhbCA8PSAyMCwgQiBBUyB2YWwgPiAy MCBBTkQgdmFsIDw9IDcwLCBDIEFTIHZhbCA+IDcwKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoT1JE RVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H KQorICAgUGF0dGVybjogYXsyfSAoYnsyfSl7Mix9IGN7M30KKyAgIE5hdiBNYXJrIExvb2tiYWNr OiAwCisgICAtPiAgU29ydAorICAgICAgICAgU29ydCBLZXk6IGlkCisgICAgICAgICAtPiAgU2Vx IFNjYW4gb24gcnByX3BsYW4KKyg3IHJvd3MpCisKKy0tIENvbnNlY3V0aXZlIEdST1VQIG1lcmdl IHdpdGggdW5ib3VuZGVkOiAoQSspIChBKykgLT4gYXsyLH0KKy0tIFRlc3RzIG1lcmdlQ29uc2Vj dXRpdmVHcm91cHMgd2l0aCBjaGlsZC0+bWF4ID09IElORgorRVhQTEFJTiAoQ09TVFMgT0ZGKQor U0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIg QlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgICAgICAgICAgUEFUVEVSTiAoKEErKSAoQSspKSBERUZJTkUgQSBBUyB2YWwgPiAwKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cK KyAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYXsyLH0iCisgICBOYXYgTWFyayBM b29rYmFjazogMAorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAg LT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCisoNyByb3dzKQorCistLSBDb25zZWN1dGl2ZSBHUk9V UCBtZXJnZSBmaW5pdGU6IChBezEwfSl7MjB9IC0+IGF7MjAwfQorLS0gVGVzdHMgbWVyZ2VDb25z ZWN1dGl2ZUdyb3VwcyB3aXRoIGJvdGggZmluaXRlCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxF Q1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBp ZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAg ICAgICAgICBQQVRURVJOICgoQXsxMH0pezIwfSkgREVGSU5FIEEgQVMgdmFsID4gMCk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisg ICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGF7MjAwfQorICAgTmF2IE1hcmsgTG9v a2JhY2s6IDAKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAgIC0+ ICBTZXEgU2NhbiBvbiBycHJfcGxhbgorKDcgcm93cykKKworLS0gRGlmZmVyZW50IEdST1VQIHBy ZXZlbnRzIG1lcmdlOiAoQSBCKXsyfSAoQyBEKXszfQorLS0gVGVzdHMgbWVyZ2VDb25zZWN1dGl2 ZUdyb3VwcyBmbHVzaCBwcmV2aW91cworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5U KCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAg UEFUVEVSTiAoKEEgQil7Mn0gKEMgRCl7M30pCisgICAgICAgICAgICAgREVGSU5FIEEgQVMgdmFs IDw9IDI1LCBCIEFTIHZhbCA+IDI1IEFORCB2YWwgPD0gNTAsCisgICAgICAgICAgICAgICAgICAg IEMgQVMgdmFsID4gNTAgQU5EIHZhbCA8PSA3NSwgRCBBUyB2YWwgPiA3NSk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5k b3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhIGIpezJ9IChjIGQpezN9CisgICBOYXYgTWFy ayBMb29rYmFjazogMAorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAg ICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCisoNyByb3dzKQorCistLSBEaWZmZXJlbnQgY2hp bGRyZW4gY291bnQgcHJldmVudHMgbWVyZ2U6IChBIEIpKyAoQSBCIEMpKworLS0gVGVzdHMgcnBy UGF0dGVybkNoaWxkcmVuRXF1YWwgbGVuZ3RoIGNoZWNrCitFWFBMQUlOIChDT1NUUyBPRkYpCitT RUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBC WSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICAgICAgICAgICBQQVRURVJOICgoQSBCKSsgKEEgQiBDKSspCisgICAgICAgICAgICAgREVGSU5F IEEgQVMgdmFsIDw9IDMzLCBCIEFTIHZhbCA+IDMzIEFORCB2YWwgPD0gNjYsIEMgQVMgdmFsID4g NjYpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdp bmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYScgYicpKyIgKGEg YiBjKSsKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICAtPiAgU29ydAorICAgICAgICAgU29y dCBLZXk6IGlkCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KKyg3IHJvd3MpCisK Ky0tIFBSRUZJWCBvbmx5IG1lcmdlOiBBIEIgKEEgQikrIC0+IChhIGIpezIsfQorLS0gVGVzdHMg bWVyZ2VHcm91cFByZWZpeFN1ZmZpeDogYWJzb3JiIHByZWNlZGluZyBlbGVtZW50cyBpbnRvIEdS T1VQIG1pbgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9N IHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoQSBCIChB IEIpKykgREVGSU5FIEEgQVMgdmFsIDw9IDUwLCBCIEFTIHZhbCA+IDUwKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRv dzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogKGEnIGInKXsyLH0iCisgICBOYXYgTWFyayBMb29r YmFjazogMAorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4g IFNlcSBTY2FuIG9uIHJwcl9wbGFuCisoNyByb3dzKQorCistLSBTVUZGSVggb25seSBtZXJnZTog KEEgQikrIEEgQiAtPiAoYSBiKXsyLH0KKy0tIFRlc3RzIG1lcmdlR3JvdXBQcmVmaXhTdWZmaXg6 IGFic29yYiBmb2xsb3dpbmcgZWxlbWVudHMgaW50byBHUk9VUCBtaW4KK0VYUExBSU4gKENPU1RT IE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMg KE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgICAgICAgICAgIFBBVFRFUk4gKChBIEIpKyBBIEIpIERFRklORSBBIEFTIHZhbCA8 PSA1MCwgQiBBUyB2YWwgPiA1MCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRl cm46IChhJyBiJyl7Mix9IgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIC0+ICBTb3J0Cisg ICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgor KDcgcm93cykKKworLS0gTXVsdGlwbGUgU1VGRklYIGFic29ycHRpb24gd2l0aCBza2lwVW50aWw6 IChBIEIpKyBBIEIgQSBCIEMKKy0tIFRlc3RzIG1lcmdlR3JvdXBQcmVmaXhTdWZmaXg6IHNraXAg YWJzb3JiZWQgc3VmZml4IGVsZW1lbnRzCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09V TlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAg ICBQQVRURVJOICgoQSBCKSsgQSBCIEEgQiBDKQorICAgICAgICAgICAgIERFRklORSBBIEFTIHZh bCA8PSA1MCwgQiBBUyB2YWwgPiA1MCBBTkQgdmFsIDw9IDc1LCBDIEFTIHZhbCA+IDc1KTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cK KyAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogKGEnIGInKXszLH0iIGMKKyAgIE5h diBNYXJrIExvb2tiYWNrOiAwCisgICAtPiAgU29ydAorICAgICAgICAgU29ydCBLZXk6IGlkCisg ICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KKyg3IHJvd3MpCisKKy0tIFBSRUZJWCBt ZXJnZSB3aXRoIHJlbWFpbmluZyBwcmVmaXg6IEEgQiBDIEQgKEMgRCkrCistLSBUZXN0cyBtZXJn ZUdyb3VwUHJlZml4U3VmZml4OiB0cmltbWVkIGxpc3QgcmVjb25zdHJ1Y3Rpb24KK0VYUExBSU4g KENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9X IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKEEgQiBDIEQgKEMgRCkrKQorICAgICAg ICAgICAgIERFRklORSBBIEFTIHZhbCA8PSAyNSwgQiBBUyB2YWwgPiAyNSBBTkQgdmFsIDw9IDUw LAorICAgICAgICAgICAgICAgICAgICBDIEFTIHZhbCA+IDUwIEFORCB2YWwgPD0gNzUsIEQgQVMg dmFsID4gNzUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhIGIgKGMg ZCl7Mix9CisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgLT4gIFNvcnQKKyAgICAgICAgIFNv cnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCisoNyByb3dzKQor CistLSBQUkVGSVggbWVyZ2Ugd2l0aCBxdWFudGlmaWVyczogQSBCKiAoQSBCKikrIC0+IChhIGIq KXsyLH0KKy0tIFRlc3RzIG1lcmdlR3JvdXBQcmVmaXhTdWZmaXg6IHF1YW50aWZpZXIgY29tcGFy aXNvbiBpbiBycHJQYXR0ZXJuRXF1YWwKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VO VCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAg IFBBVFRFUk4gKEEgQiogKEEgQiopKykKKyAgICAgICAgICAgICBERUZJTkUgQSBBUyB2YWwgPD0g NTAsIEIgQVMgdmFsID4gNTApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJu OiAoYSBiKil7Mix9CisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgLT4gIFNvcnQKKyAgICAg ICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCisoNyBy b3dzKQorCistLSBQUkVGSVggbWVyZ2Ugd2l0aCBtdWx0aXBsZSBxdWFudGlmaWVyczogQSsgQiog Qz8gKEErIEIqIEM/KSsgLT4gKGErIGIqIGM/KXsyLH0KKy0tIFRlc3RzIG1lcmdlR3JvdXBQcmVm aXhTdWZmaXg6IGNvbXBsZXggcXVhbnRpZmllciBwYXR0ZXJucworRVhQTEFJTiAoQ09TVFMgT0ZG KQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JE RVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgICAgICAgICAgUEFUVEVSTiAoQSsgQiogQz8gKEErIEIqIEM/KSspCisgICAgICAgICAg ICAgREVGSU5FIEEgQVMgdmFsIDw9IDMwLCBCIEFTIHZhbCA+IDMwIEFORCB2YWwgPD0gNjAsIEMg QVMgdmFsID4gNjApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBM QU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYSsi IGIqIGM/KXsyLH0KKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICAtPiAgU29ydAorICAgICAg ICAgU29ydCBLZXk6IGlkCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KKyg3IHJv d3MpCisKKy0tIFNVRkZJWCBtZXJnZSB3aXRoIHF1YW50aWZpZXJzOiAoQSBCKikrIEEgQiogLT4g KGEgYiopezIsfQorLS0gVGVzdHMgbWVyZ2VHcm91cFByZWZpeFN1ZmZpeDogc3VmZml4IHdpdGgg cXVhbnRpZmllcnMKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcg RlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKChB IEIqKSsgQSBCKikKKyAgICAgICAgICAgICBERUZJTkUgQSBBUyB2YWwgPD0gNTAsIEIgQVMgdmFs ID4gNTApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYSBiKil7Mix9 CisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5 OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCisoNyByb3dzKQorCistLSBV bndyYXAgR1JPVVB7MSwxfTogKChBIHwgQiB8IEMpKSAtPiAoYSB8IGIgfCBjKQorLS0gVGVzdHMg dHJ5VW53cmFwR3JvdXAgcmVtb3ZpbmcgcmVkdW5kYW50IG91dGVyIEdST1VQCitFWFBMQUlOIChD T1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3 IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOICgoQSB8IEIgfCBDKSkgREVGSU5FIEEgQVMg dmFsIDw9IDMwLCBCIEFTIHZhbCA8PSA2MCwgQyBBUyB2YWwgPiA2MCk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6 IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhIHwgYiB8IGMpCisgICBOYXYgTWFyayBMb29rYmFj azogMAorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNl cSBTY2FuIG9uIHJwcl9wbGFuCisoNyByb3dzKQorCistLSBEYXRhIGV4ZWN1dGlvbjogR1JPVVAg dW53cmFwIHByb2R1Y2VzIGNvcnJlY3QgcmVzdWx0cworU0VMRUNUIGlkLCB2YWwsIGNvdW50KCop IE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAg ICAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgICAgICAgICAgUEFUVEVSTiAo KEEgfCBCIHwgQykpIERFRklORSBBIEFTIHZhbCA8PSAzMCwgQiBBUyB2YWwgPD0gNjAsIEMgQVMg dmFsID4gNjApOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEw IHwgICAxCisgIDIgfCAgMjAgfCAgIDEKKyAgMyB8ICAzMCB8ICAgMQorICA0IHwgIDQwIHwgICAx CisgIDUgfCAgNTAgfCAgIDEKKyAgNiB8ICA2MCB8ICAgMQorICA3IHwgIDcwIHwgICAxCisgIDgg fCAgODAgfCAgIDEKKyAgOSB8ICA5MCB8ICAgMQorIDEwIHwgMTAwIHwgICAxCisoMTAgcm93cykK KworLS0gUmVsdWN0YW50IG9wdGltaXphdGlvbiBieXBhc3M6IFZBUiBtZXJnZQorLS0gQSs/IEEg c3RheXMgYXMgYSs/IGEgKGdyZWVkeSBBKyBBIG1lcmdlcyB0byBhezIsfSkKK0VYUExBSU4gKENP U1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcg QVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKEErPyBBKSBERUZJTkUgQSBBUyB2YWwgPiAw KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5k b3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSs/IGEKKyAgIE5hdiBN YXJrIExvb2tiYWNrOiAwCisgICAtPiAgU29ydAorICAgICAgICAgU29ydCBLZXk6IGlkCisgICAg ICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KKyg3IHJvd3MpCisKKy0tIFJlbHVjdGFudCBv cHRpbWl6YXRpb24gYnlwYXNzOiBHUk9VUCBtZXJnZQorLS0gKEEgQikrPyAoQSBCKSBzdGF5cyBz ZXBhcmF0ZSAoZ3JlZWR5IG1lcmdlcyB0byAoYSBiKXsyLH0pCitFWFBMQUlOIChDT1NUUyBPRkYp CitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRF UiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICAgICAgICAgICBQQVRURVJOICgoQSBCKSs/IChBIEIpKSBERUZJTkUgQSBBUyB2YWwgPD0g NTAsIEIgQVMgdmFsID4gNTApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJu OiAoYSBiKSs/IGEgYgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIC0+ICBTb3J0CisgICAg ICAgICBTb3J0IEtleTogaWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgorKDcg cm93cykKKworLS0gUmVsdWN0YW50IG9wdGltaXphdGlvbiBieXBhc3M6IHF1YW50aWZpZXIgbXVs dGlwbHkgKG91dGVyIHJlbHVjdGFudCkKKy0tIChBezJ9KXszfT8gc3RheXMgYXMgKGF7Mn0pezN9 PyAoZ3JlZWR5IG1lcmdlcyB0byBhezZ9KQorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENP VU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAg ICAgUEFUVEVSTiAoKEF7Mn0pezN9PykgREVGSU5FIEEgQVMgdmFsID4gMCk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5k b3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhezJ9KXszfT8KKyAgIE5hdiBNYXJrIExvb2ti YWNrOiAwCisgICAtPiAgU29ydAorICAgICAgICAgU29ydCBLZXk6IGlkCisgICAgICAgICAtPiAg U2VxIFNjYW4gb24gcnByX3BsYW4KKyg3IHJvd3MpCisKKy0tIFJlbHVjdGFudCBvcHRpbWl6YXRp b24gYnlwYXNzOiBxdWFudGlmaWVyIG11bHRpcGx5IChpbm5lciByZWx1Y3RhbnQpCistLSAoQXsy fT8pezN9IHN0YXlzIGFzIChhezJ9Pyl7M30gKGdyZWVkeSBtZXJnZXMgdG8gYXs2fSkKK0VYUExB SU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lO RE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKChBezJ9Pyl7M30pIERFRklORSBB IEFTIHZhbCA+IDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBM QU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYXsy fT8pezN9CisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgLT4gIFNvcnQKKyAgICAgICAgIFNv cnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCisoNyByb3dzKQor CistLSBSZWx1Y3RhbnQgb3B0aW1pemF0aW9uIGJ5cGFzczogUFJFRklYIG1lcmdlCistLSBBIEIg KEEgQikrPyBzdGF5cyBzZXBhcmF0ZSAoZ3JlZWR5IG1lcmdlcyB0byAoYSBiKXsyLH0pCitFWFBM QUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJ TkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOIChBIEIgKEEgQikrPykgREVGSU5F IEEgQVMgdmFsIDw9IDUwLCBCIEFTIHZhbCA+IDUwKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoT1JE RVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H KQorICAgUGF0dGVybjogYSBiIChhIGIpKz8KKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICAt PiAgU29ydAorICAgICAgICAgU29ydCBLZXk6IGlkCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24g cnByX3BsYW4KKyg3IHJvd3MpCisKKy0tIFJlbHVjdGFudCBvcHRpbWl6YXRpb24gYnlwYXNzOiBT VUZGSVggbWVyZ2UKKy0tIChBIEIpKz8gQSBCIHN0YXlzIHNlcGFyYXRlIChncmVlZHkgbWVyZ2Vz IHRvIChhIGIpezIsfSkKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVS IHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4g KChBIEIpKz8gQSBCKSBERUZJTkUgQSBBUyB2YWwgPD0gNTAsIEIgQVMgdmFsID4gNTApOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZwor ICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYSBiKSs/IGEgYgorICAgTmF2IE1h cmsgTG9va2JhY2s6IDAKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAg ICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgorKDcgcm93cykKKworLS0gR1JPVVAgdW53cmFw IHdpdGggcXVhbnRpZmllciBwcm9wYWdhdGlvbjogKEEpPz8gQiAtPiBhPz8gYgorLS0gU2luZ2xl IFZBUiBjaGlsZCB7MSwxfSByZWNlaXZlcyBHUk9VUCdzIHF1YW50aWZpZXIgYW5kIHJlbHVjdGFu dAorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9w bGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoKEEpPz8gQikgREVG SU5FIEEgQVMgdmFsIDw9IDUwLCBCIEFTIHZhbCA+IDUwKTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAo T1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HKQorICAgUGF0dGVybjogYT8/IGIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICAtPiAg U29ydAorICAgICAgICAgU29ydCBLZXk6IGlkCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnBy X3BsYW4KKyg3IHJvd3MpCisKKy0tIFJlbHVjdGFudCBwcmVzZXJ2ZWQgdGhyb3VnaCBBTFQgZmxh dHRlbgorLS0gKEEgfCAoQiB8IEMpKSs/IGZsYXR0ZW5zIHRvIChhIHwgYiB8IGMpKz8gLSBpbm5l ciBBTFQgZmxhdHRlbmVkLCByZWx1Y3RhbnQga2VwdAorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VM RUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkg aWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg ICAgICAgICAgUEFUVEVSTiAoKEEgfCAoQiB8IEMpKSs/KSBERUZJTkUgQSBBUyB2YWwgPD0gMzAs IEIgQVMgdmFsIDw9IDYwLCBDIEFTIHZhbCA+IDYwKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoT1JE RVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H KQorICAgUGF0dGVybjogKGEgfCBiIHwgYykrPworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAg IC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBv biBycHJfcGxhbgorKDcgcm93cykKKworLS0gUmVsdWN0YW50IG9wdGltaXphdGlvbiBieXBhc3M6 IGFic29ycHRpb24gZmxhZ3MKKy0tIEErPyB3aXRoIFNLSVAgUEFTVCBMQVNUIFJPVyAtIG5vIGFi c29ycHRpb24gbWFya2VycyAoZ3JlZWR5IEErIGdldHMgYSsiKQorRVhQTEFJTiAoQ09TVFMgT0ZG KQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JE RVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgICAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XIFBBVFRFUk4gKEEr PykgREVGSU5FIEEgQVMgdmFsID4gMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlk IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBh dHRlcm46IGErPworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIC0+ICBTb3J0CisgICAgICAg ICBTb3J0IEtleTogaWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgorKDcgcm93 cykKKworLS0gRHVwbGljYXRlIEdST1VQIHJlbW92YWw6ICgoQSB8IEIpKyB8IChBIHwgQikrKSAt PiAoYSB8IGIpKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBG Uk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoKEEg fCBCKSsgfCAoQSB8IEIpKykgREVGSU5FIEEgQVMgdmFsIDw9IDUwLCBCIEFTIHZhbCA+IDUwKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dB Z2cKKyAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogKGEgfCBiKSsKKyAgIE5hdiBN YXJrIExvb2tiYWNrOiAwCisgICAtPiAgU29ydAorICAgICAgICAgU29ydCBLZXk6IGlkCisgICAg ICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KKyg3IHJvd3MpCisKKy0tIENvbnNlY3V0aXZl IFZBUiBtZXJnZSB3aXRoIHplcm8tbWluOiBBKiBBKyAtPiBhKworRVhQTEFJTiAoQ09TVFMgT0ZG KQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JE RVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgICAgICAgICAgUEFUVEVSTiAoQSogQSspIERFRklORSBBIEFTIHZhbCA+IDApOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZwor ICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhKyIKKyAgIE5hdiBNYXJrIExvb2ti YWNrOiAwCisgICAtPiAgU29ydAorICAgICAgICAgU29ydCBLZXk6IGlkCisgICAgICAgICAtPiAg U2VxIFNjYW4gb24gcnByX3BsYW4KKyg3IHJvd3MpCisKKy0tIENvbnNlY3V0aXZlIFZBUiBtZXJn ZSAoNC1lbGVtZW50KTogQSBBezJ9IEErIEF7M30gLT4gYXs3LH0KK0VYUExBSU4gKENPU1RTIE9G RikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9S REVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgICAgICAgICAgIFBBVFRFUk4gKEEgQXsyfSBBKyBBezN9KSBERUZJTkUgQSBBUyB2YWwg PiAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBX aW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYXs3LH0iCisgICBO YXYgTWFyayBMb29rYmFjazogMAorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAor ICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCisoNyByb3dzKQorCistLSBQUkVGSVgr U1VGRklYIG1lcmdlICg1LXdheSk6IEEgQiBBIEIgKEEgQikrIEEgQiBBIEIgLT4gKGEgYil7NSx9 CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3Bs YW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOIChBIEIgQSBCIChBIEIp KyBBIEIgQSBCKQorICAgICAgICAgICAgIERFRklORSBBIEFTIHZhbCA8PSA1MCwgQiBBUyB2YWwg PiA1MCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg V2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhJyBiJyl7NSx9 IgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtl eTogaWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgorKDcgcm93cykKKworLS0g VW53cmFwIHNpbmdsZS1pdGVtIEFMVCBhZnRlciBkZWR1cDogKEEgfCBBKSsgLT4gYSsKKy0tIEFM VCBkZWR1cCByZWR1Y2VzIHRvIHNpbmdsZS1pdGVtLCB0aGVuIEdST1VQIHVud3JhcAorRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5E T1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoKEEgfCBBKSspIERFRklORSBBIEFT IHZhbCA+IDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhKyIKKyAg IE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICAtPiAgU29ydAorICAgICAgICAgU29ydCBLZXk6IGlk CisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KKyg3IHJvd3MpCisKKy0tIEdST1VQ ezEsMX0gdG8gU0VRIHdpdGggZmxhdHRlbjogKChBIEIpKEMgRCkpIC0+IGEgYiBjIGQKK0VYUExB SU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lO RE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKCgoQSBCKShDIEQpKSkKKyAgICAg ICAgICAgICBERUZJTkUgQSBBUyB2YWwgPD0gMjUsIEIgQVMgdmFsID4gMjUgQU5EIHZhbCA8PSA1 MCwKKyAgICAgICAgICAgICAgICAgICAgQyBBUyB2YWwgPiA1MCBBTkQgdmFsIDw9IDc1LCBEIEFT IHZhbCA+IDc1KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSBiIGMg ZAorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtl eTogaWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgorKDcgcm93cykKKworLS0g TmVzdGVkIEFMVCBwYXR0ZXJuOiAoKEEgQikgfCBDKSBEIHwgQSBCIEMKK0VYUExBSU4gKENPU1RT IE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMg KE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgICAgICAgICAgIFBBVFRFUk4gKCgoQSBCKSB8IEMpIEQgfCBBIEIgQykKKyAgICAg ICAgICAgICBERUZJTkUgQSBBUyB2YWwgPD0gMjUsIEIgQVMgdmFsID4gMjUgQU5EIHZhbCA8PSA1 MCwKKyAgICAgICAgICAgICAgICAgICAgQyBBUyB2YWwgPiA1MCBBTkQgdmFsIDw9IDc1LCBEIEFT IHZhbCA+IDc1KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogKChhIGIg fCBjKSBkIHwgYSBiIGMpCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgLT4gIFNvcnQKKyAg ICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCiso NyByb3dzKQorCistLSBOZXN0ZWQgQUxUIHdpdGggdW5ib3VuZGVkOiAoKEErIEIpIHwgQykgRCB8 IEEgQiBDCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00g cnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOICgoKEErIEIp IHwgQykgRCB8IEEgQiBDKQorICAgICAgICAgICAgIERFRklORSBBIEFTIHZhbCA8PSAyNSwgQiBB UyB2YWwgPiAyNSBBTkQgdmFsIDw9IDUwLAorICAgICAgICAgICAgICAgICAgICBDIEFTIHZhbCA+ IDUwIEFORCB2YWwgPD0gNzUsIEQgQVMgdmFsID4gNzUpOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChP UkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcpCisgICBQYXR0ZXJuOiAoKGErIiBiIHwgYykgZCB8IGEgYiBjKQorICAgTmF2IE1hcmsgTG9v a2JhY2s6IDAKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAgIC0+ ICBTZXEgU2NhbiBvbiBycHJfcGxhbgorKDcgcm93cykKKworLS0gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBBYnNvcnB0aW9u IEZsYWcgRGlzcGxheSBUZXN0cworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBUZXN0cyBhYnNvcnB0aW9uIG1hcmtlciBk aXNwbGF5IGluIEVYUExBSU4gb3V0cHV0CistLSBNYXJrZXJzOiAnID0gYnJhbmNoIGVsZW1lbnQs ICIgPSBqdWRnbWVudCBwb2ludAorLS0gRmlsZXM6IGV4cGxhaW4uYyAoYXBwZW5kX3Jwcl9xdWFu dGlmaWVyLCBkZXBhcnNlX3Jwcl9wYXR0ZXJuKQorLS0gU2ltcGxlIFZBUjogQSsgLT4gYSsiIChq dWRnbWVudCBwb2ludCkKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVS IHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVyBQQVRURVJOIChBKykgREVGSU5FIEEgQVMgdmFsID4gMCk7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93 QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGErIgorICAgTmF2IE1hcmsg TG9va2JhY2s6IDAKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAg IC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgorKDcgcm93cykKKworLS0gR1JPVVAgdW5ib3VuZGVk OiAoQSBCKSsgLT4gKGEnIGInKSsiIChicmFuY2ggKyBqdWRnbWVudCkKK0VYUExBSU4gKENPU1RT IE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMg KE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgICAgICAgICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVyBQQVRURVJO ICgoQSBCKSspIERFRklORSBBIEFTIHZhbCA8PSA1MCwgQiBBUyB2YWwgPiA1MCk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBX aW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhJyBiJykrIgorICAgTmF2IE1hcmsgTG9v a2JhY2s6IDAKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAgIC0+ ICBTZXEgU2NhbiBvbiBycHJfcGxhbgorKDcgcm93cykKKworLS0gQUxUIGJvdGggYWJzb3JiYWJs ZTogQSsgfCBCKyAtPiAoYSsiIHwgYisiKQorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENP VU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAg ICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XIFBBVFRFUk4gKEErIHwgQispIERFRklO RSBBIEFTIHZhbCA8PSA1MCwgQiBBUyB2YWwgPiA1MCk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9S REVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RykKKyAgIFBhdHRlcm46IChhKyIgfCBiKyIpCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAg LT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9u IHJwcl9wbGFuCisoNyByb3dzKQorCistLSBBTFQgb25lIGFic29yYmFibGU6IEErIHwgQiAtPiAo YSsiIHwgYikKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJP TSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIEFGVEVSIE1BVENIIFNL SVAgUEFTVCBMQVNUIFJPVyBQQVRURVJOIChBKyB8IEIpIERFRklORSBBIEFTIHZhbCA8PSA1MCwg QiBBUyB2YWwgPiA1MCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChh KyIgfCBiKQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIC0+ICBTb3J0CisgICAgICAgICBT b3J0IEtleTogaWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgorKDcgcm93cykK KworLS0gU2VxdWVuY2Ugd2l0aCBhYnNvcmJhYmxlIHN0YXJ0OiBBKyBCIC0+IGErIiBiCitFWFBM QUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJ TkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBS T1cgUEFUVEVSTiAoQSsgQikgREVGSU5FIEEgQVMgdmFsIDw9IDUwLCBCIEFTIHZhbCA+IDUwKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dB Z2cKKyAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSsiIGIKKyAgIE5hdiBNYXJr IExvb2tiYWNrOiAwCisgICAtPiAgU29ydAorICAgICAgICAgU29ydCBLZXk6IGlkCisgICAgICAg ICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KKyg3IHJvd3MpCisKKy0tIENvbXBsZXggbmVzdGVk OiAoKEErIEIpIHwgQykgRCB8IEEgQiBDIC0gZGVlcGx5IG5lc3RlZCBBTFQKK0VYUExBSU4gKENP U1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcg QVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgICAgICAgICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVyBQQVRU RVJOICgoKEErIEIpIHwgQykgRCB8IEEgQiBDKQorICAgICAgICAgICAgIERFRklORSBBIEFTIHZh bCA8PSAzMCwgQiBBUyB2YWwgPD0gNjAsIEMgQVMgdmFsIDw9IDgwLCBEIEFTIHZhbCA+IDgwKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dB Z2cKKyAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogKChhKyIgYiB8IGMpIGQgfCBh IGIgYykKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICAtPiAgU29ydAorICAgICAgICAgU29y dCBLZXk6IGlkCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KKyg3IHJvd3MpCisK Ky0tIE5lc3RlZCB1bmJvdW5kZWQ6IChBKyB8IEIpKyAtPiAoYSsiIHwgYikrIChmaXJzdCBpdGVy YXRpb24gYWJzb3JiYWJsZSkKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBP VkVSIHcgRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIEFGVEVS IE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVyBQQVRURVJOICgoQSsgfCBCKSspCisgICAgICAgICAg ICAgREVGSU5FIEEgQVMgdmFsIDw9IDUwLCBCIEFTIHZhbCA+IDUwKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzog dyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HKQorICAgUGF0dGVybjogKGErIiB8IGIpKworICAgTmF2IE1hcmsgTG9va2JhY2s6 IDAKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAgIC0+ICBTZXEg U2NhbiBvbiBycHJfcGxhbgorKDcgcm93cykKKworLS0gQUxUIGluc2lkZSB1bmJvdW5kZWQgR1JP VVA6IChBKyBCIHwgQSBCKSogLT4gKGErIiBiIHwgYSBiKSogKGZpcnN0IGl0ZXJhdGlvbiBhYnNv cmJhYmxlKQorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9N IHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgQUZURVIgTUFUQ0ggU0tJ UCBQQVNUIExBU1QgUk9XIFBBVFRFUk4gKChBKyBCIHwgQSBCKSopCisgICAgICAgICAgICAgREVG SU5FIEEgQVMgdmFsIDw9IDUwLCBCIEFTIHZhbCA+IDUwKTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAo T1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HKQorICAgUGF0dGVybjogKGErIiBiIHwgYSBiKSoKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAw CisgICAtPiAgU29ydAorICAgICAgICAgU29ydCBLZXk6IGlkCisgICAgICAgICAtPiAgU2VxIFNj YW4gb24gcnByX3BsYW4KKyg3IHJvd3MpCisKKy0tIEZpeGVkLWxlbmd0aCBncm91cCBhYnNvcmJh YmxlOiAoQXsyfSBCezN9KSsgLT4gKGF7Mn0nIGJ7M30nKXsyLH0iCistLSBBbGwgY2hpbGRyZW4g aGF2ZSBtaW4gPT0gbWF4LCBlcXVpdmFsZW50IHRvIHVucm9sbGluZyB0byB7MSwxfQorRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5E T1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X IFBBVFRFUk4gKChBezJ9IEJ7M30pKykKKyAgICAgICAgICAgICBERUZJTkUgQSBBUyB2YWwgPD0g NTAsIEIgQVMgdmFsID4gNTApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJu OiAoYXsyfScgYnszfScpKyIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICAtPiAgU29ydAor ICAgICAgICAgU29ydCBLZXk6IGlkCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4K Kyg3IHJvd3MpCisKKy0tIE5lc3RlZCBmaXhlZC1sZW5ndGggZ3JvdXA6IChBIChCIEMpezJ9IEQp KyAtPiBhYnNvcmJhYmxlCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZF UiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBBRlRFUiBN QVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgUEFUVEVSTiAoKEEgKEIgQyl7Mn0gRCkrKQorICAgICAg ICAgICAgIERFRklORSBBIEFTIHZhbCA8PSAyMCwgQiBBUyB2YWwgPD0gNDAsIEMgQVMgdmFsIDw9 IDYwLCBEIEFTIHZhbCA+IDYwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVy bjogKGEnIChiJyBjJyl7Mn0nIGQnKSsiCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgLT4g IFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJw cl9wbGFuCisoNyByb3dzKQorCistLSBOZXN0ZWQgZml4ZWQtbGVuZ3RoIHdpdGggaW5uZXIgcXVh bnRpZmllcjogKChBezJ9IEJ7M30pezJ9KSsgLT4gYWJzb3JiYWJsZQorRVhQTEFJTiAoQ09TVFMg T0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAo T1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgICAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XIFBBVFRFUk4g KCgoQXsyfSBCezN9KXsyfSkrKQorICAgICAgICAgICAgIERFRklORSBBIEFTIHZhbCA8PSA1MCwg QiBBUyB2YWwgPiA1MCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46ICgo YXsyfScgYnszfScpezJ9JykrIgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIC0+ICBTb3J0 CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxh bgorKDcgcm93cykKKworLS0gTm9uLWFic29yYmFibGUgZml4ZWQtbGVuZ3RoOiAoQSBCezIsNX0p KyAtPiBubyBtYXJrZXJzIChtaW4gIT0gbWF4KQorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNU IENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAg ICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XIFBBVFRFUk4gKChBIEJ7Miw1fSkr KQorICAgICAgICAgICAgIERFRklORSBBIEFTIHZhbCA8PSA1MCwgQiBBUyB2YWwgPiA1MCk7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdn CisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhIGJ7Miw1fSkrCisgICBOYXYg TWFyayBMb29rYmFjazogMAorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAg ICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCisoNyByb3dzKQorCistLSBOb24tYWJzb3Ji YWJsZSBmaXhlZC1sZW5ndGg6IChBIEI/KSsgLT4gbm8gbWFya2VycyAobWluICE9IG1heCkKK0VY UExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfcGxhbgor V0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNU IFJPVyBQQVRURVJOICgoQSBCPykrKQorICAgICAgICAgICAgIERFRklORSBBIEFTIHZhbCA8PSA1 MCwgQiBBUyB2YWwgPiA1MCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVF UlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46 IChhIGI/KSsKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICAtPiAgU29ydAorICAgICAgICAg U29ydCBLZXk6IGlkCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KKyg3IHJvd3Mp CisKKy0tIE5vbi1hYnNvcmJhYmxlICh1bmJvdW5kZWQgbm90IGF0IHN0YXJ0KTogQSBCKyAtPiBh IGIrIChubyBtYXJrZXJzKQorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9W RVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XIFBBVFRFUk4gKEEgQispIERFRklORSBBIEFTIHZhbCA8 PSA1MCwgQiBBUyB2YWwgPiA1MCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRl cm46IGEgYisKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICAtPiAgU29ydAorICAgICAgICAg U29ydCBLZXk6IGlkCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KKyg3IHJvd3Mp CisKKy0tIE5vbi1hYnNvcmJhYmxlIChubyB1bmJvdW5kZWQgYnJhbmNoKTogKEEgfCBCKXsyLH0g LT4gKGEgfCBiKXsyLH0gKG5vIG1hcmtlcnMpCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1Qg Q09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAg ICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgUEFUVEVSTiAoKEEgfCBCKXsyLH0p IERFRklORSBBIEFTIHZhbCA8PSA1MCwgQiBBUyB2YWwgPiA1MCk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcg QVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORykKKyAgIFBhdHRlcm46IChhIHwgYil7Mix9CisgICBOYXYgTWFyayBMb29rYmFjazog MAorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBT Y2FuIG9uIHJwcl9wbGFuCisoNyByb3dzKQorCistLSBOb24tYWJzb3JiYWJsZSAoU0tJUCBUTyBO RVhUIFJPVyk6IEErIC0+IGErIChubyBtYXJrZXJzKQorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VM RUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkg aWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg ICAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVyBQQVRURVJOIChBKykgREVGSU5F IEEgQVMgdmFsID4gMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGEr CisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5 OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCisoNyByb3dzKQorCistLSBO b24tYWJzb3JiYWJsZSAobGltaXRlZCBmcmFtZSk6IEErIC0+IGErIChubyBtYXJrZXJzKQorRVhQ TEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitX SU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCAxMCBG T0xMT1dJTkcKKyAgICAgICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgUEFU VEVSTiAoQSspIERFRklORSBBIEFTIHZhbCA+IDApOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFT IChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EICcxMCc6OmJpZ2ludCBG T0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhKworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIC0+ ICBTb3J0CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBy cHJfcGxhbgorKDcgcm93cykKKworLS0gUmVsdWN0YW50IHsxfT8gcXVhbnRpZmllciBkZXBhcnNl CistLSBBezF9PyBpcyBhIHJlbHVjdGFudCB7MSwxfSBxdWFudGlmaWVyLiAgVGhlIGRlcGFyc2Ug Y29kZSBtdXN0CistLSBvdXRwdXQgInsxfSIgZXhwbGljaXRseSB0byBkaXNhbWJpZ3VhdGUgZnJv bSBhIGJhcmUgIj8iIHF1YW50aWZpZXIKKy0tICh3aGljaCB3b3VsZCBtZWFuIHswLDF9KS4KK0VY UExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBycHJfcGxhbgor V0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIHZhbAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEF7MX0/IEIpCisgICAg REVGSU5FIEEgQVMgdmFsID4gMCwgQiBBUyB2YWwgPiAwCispOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcg QVMgKE9SREVSIEJZIHZhbCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhezF9PyBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAor ICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiB2YWwKKyAgICAgICAgIC0+ICBTZXEgU2Nh biBvbiBycHJfcGxhbgorKDcgcm93cykKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBBYnNvcnB0aW9uIEFuYWx5c2lz IFRlc3RzCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tIFRlc3RzIGNvbnRleHQgYWJzb3JwdGlvbiBvcHRpbWl6YXRpb24g KE8obl4yKSAtPiBPKG4pKQorLS0gRmlsZXM6IHJwci5jIChjb21wdXRlQWJzb3JiYWJpbGl0eSkK Ky0tIFNpbXBsZSBBYnNvcmJhYmxlIFBhdHRlcm46IEErIEIKKy0tIFBhdHRlcm4gc3RhcnRzIHdp dGggdW5ib3VuZGVkIFZBUgorU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQK K0ZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEg QVMgdmFsIDw9IDUwLCBCIEFTIHZhbCA+IDUwCispCitPUkRFUiBCWSBpZDsKKyBpZCB8IHZhbCB8 IGNudCAKKy0tLS0rLS0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAgNgorICAyIHwgIDIwIHwgICAw CisgIDMgfCAgMzAgfCAgIDAKKyAgNCB8ICA0MCB8ICAgMAorICA1IHwgIDUwIHwgICAwCisgIDYg fCAgNjAgfCAgIDAKKyAgNyB8ICA3MCB8ICAgMAorICA4IHwgIDgwIHwgICAwCisgIDkgfCAgOTAg fCAgIDAKKyAxMCB8IDEwMCB8ICAgMAorKDEwIHJvd3MpCisKKy0tIEFic29yYmFibGUgR1JPVVAg UGF0dGVybjogKEEgQikrIEMKKy0tIFBhdHRlcm4gc3RhcnRzIHdpdGggdW5ib3VuZGVkIEdST1VQ CitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfcGxhbgor V0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExB U1QgUk9XCisgICAgUEFUVEVSTiAoKEEgQikrIEMpCisgICAgREVGSU5FIEEgQVMgdmFsIDw9IDMw LCBCIEFTIHZhbCA+IDMwIEFORCB2YWwgPD0gNjAsIEMgQVMgdmFsID4gNjAKKykKK09SREVSIEJZ IGlkOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAw CisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAzMCB8ICAgMAorICA0IHwgIDQwIHwgICAwCisgIDUg fCAgNTAgfCAgIDAKKyAgNiB8ICA2MCB8ICAgMAorICA3IHwgIDcwIHwgICAwCisgIDggfCAgODAg fCAgIDAKKyAgOSB8ICA5MCB8ICAgMAorIDEwIHwgMTAwIHwgICAwCisoMTAgcm93cykKKworLS0g Tm9uLUFic29yYmFibGU6IFVuYm91bmRlZCBOb3QgYXQgU3RhcnQKKy0tIFBhdHRlcm46IEEgQisg KHVuYm91bmRlZCBub3QgYXQgc3RhcnQpCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3 IGFzIGNudAorRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg QUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBE RUZJTkUgQSBBUyB2YWwgPD0gNTAsIEIgQVMgdmFsID4gNTAKKykKK09SREVSIEJZIGlkOworIGlk IHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAwCisgIDIgfCAg MjAgfCAgIDAKKyAgMyB8ICAzMCB8ICAgMAorICA0IHwgIDQwIHwgICAwCisgIDUgfCAgNTAgfCAg IDYKKyAgNiB8ICA2MCB8ICAgMAorICA3IHwgIDcwIHwgICAwCisgIDggfCAgODAgfCAgIDAKKyAg OSB8ICA5MCB8ICAgMAorIDEwIHwgMTAwIHwgICAwCisoMTAgcm93cykKKworLS0gQUxUIHdpdGgg QWJzb3JiYWJsZSBCcmFuY2hlcworLS0gUGF0dGVybjogKEErIHwgQispIEMgLSBib3RoIGJyYW5j aGVzIGFic29yYmFibGUKK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitG Uk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRD SCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSsgfCBCKykgQykKKyAgICBERUZJ TkUgQSBBUyB2YWwgPD0gMzAsIEIgQVMgdmFsID4gMzAgQU5EIHZhbCA8PSA2MCwgQyBBUyB2YWwg PiA2MAorKQorT1JERVIgQlkgaWQ7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0t CisgIDEgfCAgMTAgfCAgIDAKKyAgMiB8ICAyMCB8ICAgMAorICAzIHwgIDMwIHwgICAwCisgIDQg fCAgNDAgfCAgIDQKKyAgNSB8ICA1MCB8ICAgMAorICA2IHwgIDYwIHwgICAwCisgIDcgfCAgNzAg fCAgIDAKKyAgOCB8ICA4MCB8ICAgMAorICA5IHwgIDkwIHwgICAwCisgMTAgfCAxMDAgfCAgIDAK KygxMCByb3dzKQorCistLSBBTFQgd2l0aCBNaXhlZCBCcmFuY2hlcworLS0gUGF0dGVybjogKEEr IHwgQiBDKSAtIG9ubHkgZmlyc3QgYnJhbmNoIGFic29yYmFibGUKK1NFTEVDVCBpZCwgdmFsLCBD T1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoCisgICAg T1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJO ICgoQSsgfCBCIEMpKykKKyAgICBERUZJTkUgQSBBUyB2YWwgPD0gMzAsIEIgQVMgdmFsID4gMzAg QU5EIHZhbCA8PSA2MCwgQyBBUyB2YWwgPiA2MAorKQorT1JERVIgQlkgaWQ7CisgaWQgfCB2YWwg fCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDMKKyAgMiB8ICAyMCB8ICAg MAorICAzIHwgIDMwIHwgICAwCisgIDQgfCAgNDAgfCAgIDAKKyAgNSB8ICA1MCB8ICAgMAorICA2 IHwgIDYwIHwgICAyCisgIDcgfCAgNzAgfCAgIDAKKyAgOCB8ICA4MCB8ICAgMAorICA5IHwgIDkw IHwgICAwCisgMTAgfCAxMDAgfCAgIDAKKygxMCByb3dzKQorCistLSBOb24tQWJzb3JiYWJsZTog QUxUIEluc2lkZSBHUk9VUAorLS0gUGF0dGVybjogKEEgfCBCKXsyLH0gLSBBTFQgaW5zaWRlIHVu Ym91bmRlZCBHUk9VUAorU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZS T00gcnByX3BsYW4KK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENI IFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIHwgQil7Mix9KQorICAgIERFRklO RSBBIEFTIHZhbCA8PSA1MCwgQiBBUyB2YWwgPiA1MAorKQorT1JERVIgQlkgaWQ7CisgaWQgfCB2 YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgMTAKKyAgMiB8ICAyMCB8 ICAgMAorICAzIHwgIDMwIHwgICAwCisgIDQgfCAgNDAgfCAgIDAKKyAgNSB8ICA1MCB8ICAgMAor ICA2IHwgIDYwIHwgICAwCisgIDcgfCAgNzAgfCAgIDAKKyAgOCB8ICA4MCB8ICAgMAorICA5IHwg IDkwIHwgICAwCisgMTAgfCAxMDAgfCAgIDAKKygxMCByb3dzKQorCistLSBOb24tQWJzb3JiYWJs ZTogTmVzdGVkIFVuYm91bmRlZAorLS0gUGF0dGVybjogKChBIEIpKyBDKSsgLSBuZXN0ZWQgR1JP VVAgc3RydWN0dXJlCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJP TSBycHJfcGxhbgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0gg U0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKChBIEIpKyBDKSspCisgICAgREVGSU5F IEEgQVMgdmFsIDw9IDMwLCBCIEFTIHZhbCA+IDMwIEFORCB2YWwgPD0gNjAsIEMgQVMgdmFsID4g NjAKKykKK09SREVSIEJZIGlkOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQor ICAxIHwgIDEwIHwgICAwCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAzMCB8ICAgMAorICA0IHwg IDQwIHwgICAwCisgIDUgfCAgNTAgfCAgIDAKKyAgNiB8ICA2MCB8ICAgMAorICA3IHwgIDcwIHwg ICAwCisgIDggfCAgODAgfCAgIDAKKyAgOSB8ICA5MCB8ICAgMAorIDEwIHwgMTAwIHwgICAwCiso MTAgcm93cykKKworLS0gTm9uLUFic29yYmFibGU6IFVuYm91bmRlZCBFbGVtZW50IEluc2lkZSBH Uk9VUAorLS0gUGF0dGVybjogKEEgQispezIsfSAtIHVuYm91bmRlZCBpbnNpZGUgR1JPVVAKK1NF TEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9wbGFuCitXSU5E T1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBS T1cKKyAgICBQQVRURVJOICgoQSBCKyl7Mix9KQorICAgIERFRklORSBBIEFTIHZhbCA8PSA1MCwg QiBBUyB2YWwgPiA1MAorKQorT1JERVIgQlkgaWQ7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0t LS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDAKKyAgMiB8ICAyMCB8ICAgMAorICAzIHwgIDMwIHwg ICAwCisgIDQgfCAgNDAgfCAgIDAKKyAgNSB8ICA1MCB8ICAgMAorICA2IHwgIDYwIHwgICAwCisg IDcgfCAgNzAgfCAgIDAKKyAgOCB8ICA4MCB8ICAgMAorICA5IHwgIDkwIHwgICAwCisgMTAgfCAx MDAgfCAgIDAKKygxMCByb3dzKQorCistLSBSdW50aW1lIENvbmRpdGlvbnM6IFNLSVAgVE8gTkVY VCBST1cKKy0tIEFic29ycHRpb24gZGlzYWJsZWQgd2l0aCBTS0lQIFRPIE5FWFQgUk9XCitTRUxF Q1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfcGxhbgorV0lORE9X IHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVwor ICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMgdmFsIDw9IDUwLCBCIEFTIHZhbCA+ IDUwCispCitPUkRFUiBCWSBpZDsKKyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLS0K KyAgMSB8ICAxMCB8ICAgNgorICAyIHwgIDIwIHwgICA1CisgIDMgfCAgMzAgfCAgIDQKKyAgNCB8 ICA0MCB8ICAgMworICA1IHwgIDUwIHwgICAyCisgIDYgfCAgNjAgfCAgIDAKKyAgNyB8ICA3MCB8 ICAgMAorICA4IHwgIDgwIHwgICAwCisgIDkgfCAgOTAgfCAgIDAKKyAxMCB8IDEwMCB8ICAgMAor KDEwIHJvd3MpCisKKy0tIFJ1bnRpbWUgQ29uZGl0aW9uczogTGltaXRlZCBGcmFtZQorLS0gQWJz b3JwdGlvbiBkaXNhYmxlZCB3aXRoIGxpbWl0ZWQgZnJhbWUgZW5kCitTRUxFQ1QgaWQsIHZhbCwg Q09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKAorICAg IE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCA1IEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIp CisgICAgREVGSU5FIEEgQVMgdmFsIDw9IDUwLCBCIEFTIHZhbCA+IDUwCispCitPUkRFUiBCWSBp ZDsKKyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAgNgor ICAyIHwgIDIwIHwgICAwCisgIDMgfCAgMzAgfCAgIDAKKyAgNCB8ICA0MCB8ICAgMAorICA1IHwg IDUwIHwgICAwCisgIDYgfCAgNjAgfCAgIDAKKyAgNyB8ICA3MCB8ICAgMAorICA4IHwgIDgwIHwg ICAwCisgIDkgfCAgOTAgfCAgIDAKKyAxMCB8IDEwMCB8ICAgMAorKDEwIHJvd3MpCisKKy0tID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorLS0gRWRnZSBDYXNlIFRlc3RzCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFRlc3RzIGJvdW5kYXJ5IGNvbmRpdGlv bnMgYW5kIGNvbXBsZXggc2NlbmFyaW9zCistLSBFbXB0eSBNYXRjaCBQcmV2ZW50aW9uCistLSBQ YXR0ZXJuIHRoYXQgY291bGQgbWF0Y2ggZW1wdHk6IEEqCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQo KikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKAorICAgIE9SREVS IEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgUEFUVEVSTiAoQSopCisgICAgREVGSU5FIEEgQVMgdmFsID4gMTAwMCAgLS0gTmV2 ZXIgbWF0Y2hlcworKQorT1JERVIgQlkgaWQ7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0t Ky0tLS0tCisgIDEgfCAgMTAgfCAgIDAKKyAgMiB8ICAyMCB8ICAgMAorICAzIHwgIDMwIHwgICAw CisgIDQgfCAgNDAgfCAgIDAKKyAgNSB8ICA1MCB8ICAgMAorICA2IHwgIDYwIHwgICAwCisgIDcg fCAgNzAgfCAgIDAKKyAgOCB8ICA4MCB8ICAgMAorICA5IHwgIDkwIHwgICAwCisgMTAgfCAxMDAg fCAgIDAKKygxMCByb3dzKQorCistLSBBbGwgUm93cyBNYXRjaAorLS0gUGF0dGVybiB3aGVyZSBl dmVyeSByb3cgbWF0Y2hlcworU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQK K0ZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4g KEErKQorICAgIERFRklORSBBIEFTIHZhbCA+PSAwICAtLSBBbHdheXMgdHJ1ZQorKQorT1JERVIg QlkgaWQ7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAg MTAKKyAgMiB8ICAyMCB8ICAgMAorICAzIHwgIDMwIHwgICAwCisgIDQgfCAgNDAgfCAgIDAKKyAg NSB8ICA1MCB8ICAgMAorICA2IHwgIDYwIHwgICAwCisgIDcgfCAgNzAgfCAgIDAKKyAgOCB8ICA4 MCB8ICAgMAorICA5IHwgIDkwIHwgICAwCisgMTAgfCAxMDAgfCAgIDAKKygxMCByb3dzKQorCist LSBMYXJnZSBRdWFudGlmaWVycworLS0gUGF0dGVybjogQXsxMDB9IChsYXJnZSBleGFjdCBxdWFu dGlmaWVyKQorU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnBy X3BsYW4KK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEF7MTAwfSkK KyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCispCitPUkRFUiBCWSBpZDsKKyBpZCB8IHZhbCB8IGNu dCAKKy0tLS0rLS0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAgMAorICAyIHwgIDIwIHwgICAwCisg IDMgfCAgMzAgfCAgIDAKKyAgNCB8ICA0MCB8ICAgMAorICA1IHwgIDUwIHwgICAwCisgIDYgfCAg NjAgfCAgIDAKKyAgNyB8ICA3MCB8ICAgMAorICA4IHwgIDgwIHwgICAwCisgIDkgfCAgOTAgfCAg IDAKKyAxMCB8IDEwMCB8ICAgMAorKDEwIHJvd3MpCisKKy0tIFBhdHRlcm46IEF7MTAsMjB9IChs YXJnZSByYW5nZSBxdWFudGlmaWVyKQorU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBh cyBjbnQKK0ZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBB VFRFUk4gKEF7MTAsMjB9KQorICAgIERFRklORSBBIEFTIHZhbCA+IDAKKykKK09SREVSIEJZIGlk OworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEwIHwgIDEwCisg IDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAzMCB8ICAgMAorICA0IHwgIDQwIHwgICAwCisgIDUgfCAg NTAgfCAgIDAKKyAgNiB8ICA2MCB8ICAgMAorICA3IHwgIDcwIHwgICAwCisgIDggfCAgODAgfCAg IDAKKyAgOSB8ICA5MCB8ICAgMAorIDEwIHwgMTAwIHwgICAwCisoMTAgcm93cykKKworLS0gQ29t cGxleCBNdWx0aS1MZXZlbCBOZXN0aW5nCistLSBQYXR0ZXJuOiAoKChBIEIpIHwgQykrIEQpKwor U0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX3BsYW4KK1dJ TkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKCgoKEEgQikgfCBDKSsgRCkr KQorICAgIERFRklORSBBIEFTIHZhbCA8PSAyMCwgQiBBUyB2YWwgPiAyMCBBTkQgdmFsIDw9IDQw LAorICAgICAgICAgICBDIEFTIHZhbCA+IDQwIEFORCB2YWwgPD0gNjAsIEQgQVMgdmFsID4gNjAK KykKK09SREVSIEJZIGlkOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAx IHwgIDEwIHwgICAwCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAzMCB8ICAgMAorICA0IHwgIDQw IHwgICAwCisgIDUgfCAgNTAgfCAgIDMKKyAgNiB8ICA2MCB8ICAgMAorICA3IHwgIDcwIHwgICAw CisgIDggfCAgODAgfCAgIDAKKyAgOSB8ICA5MCB8ICAgMAorIDEwIHwgMTAwIHwgICAwCisoMTAg cm93cykKKworLS0gTG9uZyBBbHRlcm5hdGlvbiBDaGFpbgorLS0gUGF0dGVybjogQSB8IEIgfCBD IHwgRCB8IEUgKDUtd2F5IEFMVCkKK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMg Y250CitGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRU RVJOIChBIHwgQiB8IEMgfCBEIHwgRSkKKyAgICBERUZJTkUgQSBBUyB2YWwgPSAxMCwgQiBBUyB2 YWwgPSAzMCwgQyBBUyB2YWwgPSA1MCwKKyAgICAgICAgICAgRCBBUyB2YWwgPSA3MCwgRSBBUyB2 YWwgPSA5MAorKQorT1JERVIgQlkgaWQ7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0t LS0tCisgIDEgfCAgMTAgfCAgIDEKKyAgMiB8ICAyMCB8ICAgMAorICAzIHwgIDMwIHwgICAxCisg IDQgfCAgNDAgfCAgIDAKKyAgNSB8ICA1MCB8ICAgMQorICA2IHwgIDYwIHwgICAwCisgIDcgfCAg NzAgfCAgIDEKKyAgOCB8ICA4MCB8ICAgMAorICA5IHwgIDkwIHwgICAxCisgMTAgfCAxMDAgfCAg IDAKKygxMCByb3dzKQorCistLSBMb25nIFNlcXVlbmNlCistLSBQYXR0ZXJuOiBBIEIgQyBEIEUg RiBHIEggKDgtZWxlbWVudCBTRVEpCitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFz IGNudAorRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFU VEVSTiAoQSBCIEMgRCBFIEYgRyBIKQorICAgIERFRklORSBBIEFTIHZhbCA+PSAxMCwgQiBBUyB2 YWwgPj0gMjAsIEMgQVMgdmFsID49IDMwLAorICAgICAgICAgICBEIEFTIHZhbCA+PSA0MCwgRSBB UyB2YWwgPj0gNTAsIEYgQVMgdmFsID49IDYwLAorICAgICAgICAgICBHIEFTIHZhbCA+PSA3MCwg SCBBUyB2YWwgPj0gODAKKykKK09SREVSIEJZIGlkOworIGlkIHwgdmFsIHwgY250IAorLS0tLSst LS0tLSstLS0tLQorICAxIHwgIDEwIHwgICA4CisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAzMCB8 ICAgMAorICA0IHwgIDQwIHwgICAwCisgIDUgfCAgNTAgfCAgIDAKKyAgNiB8ICA2MCB8ICAgMAor ICA3IHwgIDcwIHwgICAwCisgIDggfCAgODAgfCAgIDAKKyAgOSB8ICA5MCB8ICAgMAorIDEwIHwg MTAwIHwgICAwCisoMTAgcm93cykKKworLS0gSW50ZXJsZWF2ZWQgUXVhbnRpZmllcnMKKy0tIFBh dHRlcm46IEF7Mn0gQisgQ3szLDV9IEQqIEV7MSx9CitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikg T1ZFUiB3IGFzIGNudAorRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZ IGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgUEFUVEVSTiAoQXsyfSBCKyBDezMsNX0gRCogRXsxLH0pCisgICAgREVGSU5FIEEgQVMg dmFsID4gMCwgQiBBUyB2YWwgPiAwLCBDIEFTIHZhbCA+IDAsCisgICAgICAgICAgIEQgQVMgdmFs ID4gMCwgRSBBUyB2YWwgPiAwCispCitPUkRFUiBCWSBpZDsKKyBpZCB8IHZhbCB8IGNudCAKKy0t LS0rLS0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAxMAorICAyIHwgIDIwIHwgICAwCisgIDMgfCAg MzAgfCAgIDAKKyAgNCB8ICA0MCB8ICAgMAorICA1IHwgIDUwIHwgICAwCisgIDYgfCAgNjAgfCAg IDAKKyAgNyB8ICA3MCB8ICAgMAorICA4IHwgIDgwIHwgICAwCisgIDkgfCAgOTAgfCAgIDAKKyAx MCB8IDEwMCB8ICAgMAorKDEwIHJvd3MpCisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gT3B0aW1pemF0aW9uIEZhbGxi YWNrIFRlc3RzCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tIFRlc3RzIGZvciBvcHRpbWl6YXRpb24gZWRnZSBjYXNlcyBh bmQgZmFsbGJhY2sgYmVoYXZpb3IKK0NSRUFURSBUQUJMRSBycHJfZmFsbGJhY2sgKGlkIElOVCwg dmFsIElOVCk7CitJTlNFUlQgSU5UTyBycHJfZmFsbGJhY2sgVkFMVUVTICgxLCAxMCksICgyLCAy MCk7CistLSBUZXN0OiBtaW4gcXVhbnRpZmllciBvdmVyZmxvdyBjYXVzZXMgb3B0aW1pemF0aW9u IGZhbGxiYWNrIChtaW4gPT0gbWF4IGNhc2UpCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1Qg Q09VTlQoKikgT1ZFUiB3IEZST00gcnByX2ZhbGxiYWNrCitXSU5ET1cgdyBBUyAoCisgICAgT1JE RVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBQQVRURVJOICgoQXsyMDAwMDAwMDAwfSl7Mn0pCisgICAgREVGSU5FIEEgQVMg dmFsID4gMAorKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogKGF7MjAw MDAwMDAwMH0pezJ9CisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgLT4gIFNvcnQKKyAgICAg ICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9mYWxsYmFjawor KDcgcm93cykKKworLS0gRXhwZWN0ZWQ6IEZhbGxiYWNrIC0gcGF0dGVybiBub3QgbWVyZ2VkIGR1 ZSB0byBtaW4gb3ZlcmZsb3cgKDQwMDAwMDAwMDAgPiBJTlQzMl9NQVgpCistLSBUZXN0OiBtYXgt b25seSBxdWFudGlmaWVyIG92ZXJmbG93IGNhdXNlcyBvcHRpbWl6YXRpb24gZmFsbGJhY2sKK0VY UExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBycHJfZmFsbGJh Y2sKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKChBezEsMjAwMDAw MDAwMH0pezJ9KQorICAgIERFRklORSBBIEFTIHZhbCA+IDAKKyk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcg QVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORykKKyAgIFBhdHRlcm46IChhezEsMjAwMDAwMDAwMH0pezJ9CisgICBOYXYgTWFyayBM b29rYmFjazogMAorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAg LT4gIFNlcSBTY2FuIG9uIHJwcl9mYWxsYmFjaworKDcgcm93cykKKworLS0gRXhwZWN0ZWQ6IEZh bGxiYWNrIC0gbWluIE9LICgyKjE9MiksIGJ1dCBtYXggb3ZlcmZsb3cgKDIqMjAwMDAwMDAwMCA+ IElOVDMyX01BWCkKKy0tIFRlc3Q6IG1heCBxdWFudGlmaWVyIGV4Y2VlZHMgdmFsaWQgcmFuZ2Ug KDIxNDc0ODM2NDcgPSBJTlRfTUFYLCBsaW1pdCBpcyAyMTQ3NDgzNjQ2KQorRVhQTEFJTiAoQ09T VFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9mYWxsYmFjaworV0lORE9X IHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoKEF7MjAwMDAwMDAwMCwyMTQ3NDgz NjQ3fSl7Mn0pCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKTsKK0VSUk9SOiAgcXVhbnRpZmll ciBib3VuZHMgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDIxNDc0ODM2NDYgd2l0aCBtYXggPj0gMQor TElORSA2OiAgICAgUEFUVEVSTiAoKEF7MjAwMDAwMDAwMCwyMTQ3NDgzNjQ3fSl7Mn0pCisgICAg ICAgICAgICAgICAgICAgICAgICBeCistLSBFeHBlY3RlZDogRVJST1IgYXQgcGFyc2UgdGltZSBi ZWZvcmUgb3B0aW1pemF0aW9uCistLSBUZXN0OiBuZXN0ZWQgdW5ib3VuZGVkIHdpdGggbGFyZ2Ug bWluIGNhdXNlcyBvdmVyZmxvdyBmYWxsYmFjaworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNU IENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9mYWxsYmFjaworV0lORE9XIHcgQVMgKAorICAgIE9S REVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgUEFUVEVSTiAoKEF7MjAwMDAwMDAwMCx9KXsyMDAwMDAwMDAwLH0pCisgICAg REVGSU5FIEEgQVMgdmFsID4gMAorKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0 dGVybjogKGF7MjAwMDAwMDAwMCx9Iil7MjAwMDAwMDAwMCx9CisgICBOYXYgTWFyayBMb29rYmFj azogMAorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNl cSBTY2FuIG9uIHJwcl9mYWxsYmFjaworKDcgcm93cykKKworLS0gRXhwZWN0ZWQ6IEZhbGxiYWNr IC0gbWluIG92ZXJmbG93ICgyMDAwMDAwMDAwICogMjAwMDAwMDAwMCA+IElOVDMyX01BWCkKKy0t IFRlc3Q6IHByZWZpeCBtaXNtYXRjaCBjYXVzZXMgb3B0aW1pemF0aW9uIGZhbGxiYWNrCitFWFBM QUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX2ZhbGxiYWNr CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIgKEMgRCkrKQor ICAgIERFRklORSBBIEFTIHZhbCA+IDAsIEIgQVMgdmFsID4gNSwgQyBBUyB2YWwgPiAxMCwgRCBB UyB2YWwgPiAxNQorKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSBi IChjIGQpKworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIC0+ICBTb3J0CisgICAgICAgICBT b3J0IEtleTogaWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfZmFsbGJhY2sKKyg3IHJv d3MpCisKKy0tIEV4cGVjdGVkOiBGYWxsYmFjayAtIHByZWZpeCBlbGVtZW50cyBkb24ndCBtYXRj aCBHUk9VUCBjb250ZW50CitEUk9QIFRBQkxFIHJwcl9mYWxsYmFjazsKKy0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gUGxh bm5lciBJbnRlZ3JhdGlvbiBUZXN0cworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBUZXN0cyBmdWxsIHBsYW5uaW5nIHBp cGVsaW5lIGFuZCBXaW5kb3dBZ2cgcGxhbiBub2RlIGNyZWF0aW9uCistLSBGaWxlczogcGxhbm5l ci5jLCBjcmVhdGVwbGFuLmMKK0NSRUFURSBUQUJMRSBycHJfcGxhbm5lciAoaWQgSU5ULCBjYXRl Z29yeSBWQVJDSEFSKDEwKSwgdmFsIElOVCk7CitJTlNFUlQgSU5UTyBycHJfcGxhbm5lciBWQUxV RVMKKyAgICAoMSwgJ0EnLCAxMCksICgyLCAnQScsIDIwKSwgKDMsICdBJywgMzApLAorICAgICg0 LCAnQicsIDQwKSwgKDUsICdCJywgNTApLCAoNiwgJ0InLCA2MCksCisgICAgKDcsICdDJywgNzAp LCAoOCwgJ0MnLCA4MCksICg5LCAnQycsIDkwKTsKKy0tIE11bHRpcGxlIFdpbmRvdyBGdW5jdGlv bnMgaW4gU2FtZSBRdWVyeQorU0VMRUNUIGlkLCBjYXRlZ29yeSwgdmFsLAorICAgICAgIENPVU5U KCopIE9WRVIgdzEgYXMgY250MSwKKyAgICAgICBDT1VOVCgqKSBPVkVSIHcyIGFzIGNudDIKK0ZS T00gcnByX3BsYW5uZXIKK1dJTkRPVyB3MSBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJO IChBKykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCispLAordzIgQVMgKAorICAgIFBBUlRJVElP TiBCWSBjYXRlZ29yeQorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQispCisgICAgREVGSU5F IEIgQVMgdmFsID49IDQwCispCitPUkRFUiBCWSBpZDsKKyBpZCB8IGNhdGVnb3J5IHwgdmFsIHwg Y250MSB8IGNudDIgCistLS0tKy0tLS0tLS0tLS0rLS0tLS0rLS0tLS0tKy0tLS0tLQorICAxIHwg QSAgICAgICAgfCAgMTAgfCAgICA5IHwgICAgMAorICAyIHwgQSAgICAgICAgfCAgMjAgfCAgICAw IHwgICAgMAorICAzIHwgQSAgICAgICAgfCAgMzAgfCAgICAwIHwgICAgMAorICA0IHwgQiAgICAg ICAgfCAgNDAgfCAgICAwIHwgICAgMworICA1IHwgQiAgICAgICAgfCAgNTAgfCAgICAwIHwgICAg MAorICA2IHwgQiAgICAgICAgfCAgNjAgfCAgICAwIHwgICAgMAorICA3IHwgQyAgICAgICAgfCAg NzAgfCAgICAwIHwgICAgMworICA4IHwgQyAgICAgICAgfCAgODAgfCAgICAwIHwgICAgMAorICA5 IHwgQyAgICAgICAgfCAgOTAgfCAgICAwIHwgICAgMAorKDkgcm93cykKKworLS0gV2luZG93IEZ1 bmN0aW9uIHdpdGggUEFSVElUSU9OIEJZCitTRUxFQ1QgaWQsIGNhdGVnb3J5LCB2YWwsCisgICAg ICAgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfcGxhbm5lcgorV0lORE9XIHcgQVMg KAorICAgIFBBUlRJVElPTiBCWSBjYXRlZ29yeQorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAo QSspCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKQorT1JERVIgQlkgY2F0ZWdvcnksIGlkOwor IGlkIHwgY2F0ZWdvcnkgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tLS0tLS0rLS0tLS0rLS0tLS0K KyAgMSB8IEEgICAgICAgIHwgIDEwIHwgICAzCisgIDIgfCBBICAgICAgICB8ICAyMCB8ICAgMAor ICAzIHwgQSAgICAgICAgfCAgMzAgfCAgIDAKKyAgNCB8IEIgICAgICAgIHwgIDQwIHwgICAzCisg IDUgfCBCICAgICAgICB8ICA1MCB8ICAgMAorICA2IHwgQiAgICAgICAgfCAgNjAgfCAgIDAKKyAg NyB8IEMgICAgICAgIHwgIDcwIHwgICAzCisgIDggfCBDICAgICAgICB8ICA4MCB8ICAgMAorICA5 IHwgQyAgICAgICAgfCAgOTAgfCAgIDAKKyg5IHJvd3MpCisKKy0tIFdpbmRvdyBGdW5jdGlvbiB3 aXRoIENvbXBsZXggT1JERVIgQlkKK1NFTEVDVCBpZCwgY2F0ZWdvcnksIHZhbCwKKyAgICAgICBD T1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9wbGFubmVyCitXSU5ET1cgdyBBUyAoCisg ICAgT1JERVIgQlkgY2F0ZWdvcnkgREVTQywgdmFsIEFTQworICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERF RklORSBBIEFTIHZhbCA+IDAKKykKK09SREVSIEJZIGNhdGVnb3J5IERFU0MsIHZhbCBBU0M7Cisg aWQgfCBjYXRlZ29yeSB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0tLS0tLSstLS0tLSstLS0tLQor ICA3IHwgQyAgICAgICAgfCAgNzAgfCAgIDkKKyAgOCB8IEMgICAgICAgIHwgIDgwIHwgICAwCisg IDkgfCBDICAgICAgICB8ICA5MCB8ICAgMAorICA0IHwgQiAgICAgICAgfCAgNDAgfCAgIDAKKyAg NSB8IEIgICAgICAgIHwgIDUwIHwgICAwCisgIDYgfCBCICAgICAgICB8ICA2MCB8ICAgMAorICAx IHwgQSAgICAgICAgfCAgMTAgfCAgIDAKKyAgMiB8IEEgICAgICAgIHwgIDIwIHwgICAwCisgIDMg fCBBICAgICAgICB8ICAzMCB8ICAgMAorKDkgcm93cykKKworLS0gTmFtZWQgV2luZG93IFJlZmVy ZW5jZQorU0VMRUNUIGlkLCBjYXRlZ29yeSwgdmFsLAorICAgICAgIENPVU5UKCopIE9WRVIgdyBh cyBjbnQKK0ZST00gcnByX3BsYW5uZXIKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHZhbCA+IDAKKykKK09SREVSIEJZIGlkOwor IGlkIHwgY2F0ZWdvcnkgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tLS0tLS0rLS0tLS0rLS0tLS0K KyAgMSB8IEEgICAgICAgIHwgIDEwIHwgICA5CisgIDIgfCBBICAgICAgICB8ICAyMCB8ICAgMAor ICAzIHwgQSAgICAgICAgfCAgMzAgfCAgIDAKKyAgNCB8IEIgICAgICAgIHwgIDQwIHwgICAwCisg IDUgfCBCICAgICAgICB8ICA1MCB8ICAgMAorICA2IHwgQiAgICAgICAgfCAgNjAgfCAgIDAKKyAg NyB8IEMgICAgICAgIHwgIDcwIHwgICAwCisgIDggfCBDICAgICAgICB8ICA4MCB8ICAgMAorICA5 IHwgQyAgICAgICAgfCAgOTAgfCAgIDAKKyg5IHJvd3MpCisKKy0tIElubGluZSBXaW5kb3cgRGVm aW5pdGlvbgorU0VMRUNUIGlkLCBjYXRlZ29yeSwgdmFsLAorICAgICAgIENPVU5UKCopIE9WRVIg KAorICAgICAgICAgICBPUkRFUiBCWSBpZAorICAgICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgUEFUVEVSTiAoQSspCisg ICAgICAgICAgIERFRklORSBBIEFTIHZhbCA+IDAKKyAgICAgICApIGFzIGNudAorRlJPTSBycHJf cGxhbm5lcgorT1JERVIgQlkgaWQ7CisgaWQgfCBjYXRlZ29yeSB8IHZhbCB8IGNudCAKKy0tLS0r LS0tLS0tLS0tLSstLS0tLSstLS0tLQorICAxIHwgQSAgICAgICAgfCAgMTAgfCAgIDkKKyAgMiB8 IEEgICAgICAgIHwgIDIwIHwgICAwCisgIDMgfCBBICAgICAgICB8ICAzMCB8ICAgMAorICA0IHwg QiAgICAgICAgfCAgNDAgfCAgIDAKKyAgNSB8IEIgICAgICAgIHwgIDUwIHwgICAwCisgIDYgfCBC ICAgICAgICB8ICA2MCB8ICAgMAorICA3IHwgQyAgICAgICAgfCAgNzAgfCAgIDAKKyAgOCB8IEMg ICAgICAgIHwgIDgwIHwgICAwCisgIDkgfCBDICAgICAgICB8ICA5MCB8ICAgMAorKDkgcm93cykK KworLS0gV2luZG93IHdpdGggQWdncmVnYXRlIEZ1bmN0aW9ucworU0VMRUNUIGNhdGVnb3J5LAor ICAgICAgIENPVU5UKCopIE9WRVIgdyBhcyB3aW5kb3dfY250LAorICAgICAgIENPVU5UKCopIGFz IGFnZ19jbnQKK0ZST00gcnByX3BsYW5uZXIKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04g QlkgY2F0ZWdvcnkKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBB IEFTIHZhbCA+IDAKKykKK0dST1VQIEJZIGNhdGVnb3J5CitPUkRFUiBCWSBjYXRlZ29yeTsKK0VS Uk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIkdST1VQIgorTElORSAxMjogR1JPVVAgQlkg Y2F0ZWdvcnkKKyAgICAgICAgIF4KKy0tIEV4cGVjdGVkOiBFUlJPUjogc3ludGF4IGVycm9yIGF0 IG9yIG5lYXIgIkdST1VQIgorLS0gKEdST1VQIEJZIGFmdGVyIFdJTkRPVyBjbGF1c2UgaXMgbm90 IHZhbGlkIFNRTCBzeW50YXgpCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFN1YnF1ZXJ5IGFuZCBDVEUgVGVzdHMKKy0t IEZpbGVzOiBwbGFubmVyLmMsIHByZXBqb2ludHJlZS5jCistLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFRlc3RzIFJQUiB3 aXRoIHN1YnF1ZXJpZXMgYW5kIENURXMKKy0tIFJQUiBpbiBTdWJxdWVyeSAoRlJPTSBjbGF1c2Up CitTRUxFQ1QgKiBGUk9NICgKKyAgICBTRUxFQ1QgaWQsIGNhdGVnb3J5LCB2YWwsCisgICAgICAg ICAgIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKKyAgICBGUk9NIHJwcl9wbGFubmVyCisgICAgV0lO RE9XIHcgQVMgKAorICAgICAgICBPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSspCisg ICAgICAgIERFRklORSBBIEFTIHZhbCA+IDAKKyAgICApCispIHN1YgorV0hFUkUgY250ID4gNQor T1JERVIgQlkgaWQ7CisgaWQgfCBjYXRlZ29yeSB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0tLS0t LSstLS0tLSstLS0tLQorICAxIHwgQSAgICAgICAgfCAgMTAgfCAgIDkKKygxIHJvdykKKworLS0g UlBSIHdpdGggU3VicXVlcnkgaW4gV0hFUkUKK1NFTEVDVCBpZCwgY2F0ZWdvcnksIHZhbCwKKyAg ICAgICBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9wbGFubmVyCitXSEVSRSB2YWwg PiAoU0VMRUNUIEFWRyh2YWwpIEZST00gcnByX3BsYW5uZXIpCitXSU5ET1cgdyBBUyAoCisgICAg T1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiA1MAorKQor T1JERVIgQlkgaWQ7CisgaWQgfCBjYXRlZ29yeSB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0tLS0t LSstLS0tLSstLS0tLQorICA2IHwgQiAgICAgICAgfCAgNjAgfCAgIDQKKyAgNyB8IEMgICAgICAg IHwgIDcwIHwgICAwCisgIDggfCBDICAgICAgICB8ICA4MCB8ICAgMAorICA5IHwgQyAgICAgICAg fCAgOTAgfCAgIDAKKyg0IHJvd3MpCisKKy0tIENURSB3aXRoIFJQUgorV0lUSCBycHJfY3RlIEFT ICgKKyAgICBTRUxFQ1QgaWQsIGNhdGVnb3J5LCB2YWwsCisgICAgICAgICAgIENPVU5UKCopIE9W RVIgdyBhcyBjbnQKKyAgICBGUk9NIHJwcl9wbGFubmVyCisgICAgV0lORE9XIHcgQVMgKAorICAg ICAgICBPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSspCisgICAgICAgIERFRklORSBB IEFTIHZhbCA+IDAKKyAgICApCispCitTRUxFQ1QgKiBGUk9NIHJwcl9jdGUgV0hFUkUgY250ID4g NSBPUkRFUiBCWSBpZDsKKyBpZCB8IGNhdGVnb3J5IHwgdmFsIHwgY250IAorLS0tLSstLS0tLS0t LS0tKy0tLS0tKy0tLS0tCisgIDEgfCBBICAgICAgICB8ICAxMCB8ICAgOQorKDEgcm93KQorCist LSBNdWx0aXBsZSBDVEUgUmVmZXJlbmNlcworV0lUSCBycHJfY3RlIEFTICgKKyAgICBTRUxFQ1Qg aWQsIGNhdGVnb3J5LCB2YWwsCisgICAgICAgICAgIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKKyAg ICBGUk9NIHJwcl9wbGFubmVyCisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBPUkRFUiBCWSBp ZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICAgICAgUEFUVEVSTiAoQSspCisgICAgICAgIERFRklORSBBIEFTIHZhbCA+IDAKKyAg ICApCispCitTRUxFQ1QgYzEuaWQsIGMxLmNudCwgYzIuY250IGFzIGNudDIKK0ZST00gcnByX2N0 ZSBjMQorSk9JTiBycHJfY3RlIGMyIE9OIGMxLmlkID0gYzIuaWQKK09SREVSIEJZIGMxLmlkOwor IGlkIHwgY250IHwgY250MiAKKy0tLS0rLS0tLS0rLS0tLS0tCisgIDEgfCAgIDkgfCAgICA5Cisg IDIgfCAgIDAgfCAgICAwCisgIDMgfCAgIDAgfCAgICAwCisgIDQgfCAgIDAgfCAgICAwCisgIDUg fCAgIDAgfCAgICAwCisgIDYgfCAgIDAgfCAgICAwCisgIDcgfCAgIDAgfCAgICAwCisgIDggfCAg IDAgfCAgICAwCisgIDkgfCAgIDAgfCAgICAwCisoOSByb3dzKQorCistLSBOZXN0ZWQgQ1RFcwor V0lUSCBjdGUxIEFTICgKKyAgICBTRUxFQ1QgaWQsIGNhdGVnb3J5LCB2YWwgRlJPTSBycHJfcGxh bm5lciBXSEVSRSB2YWwgPiAzMAorKSwKK2N0ZTIgQVMgKAorICAgIFNFTEVDVCBpZCwgY2F0ZWdv cnksIHZhbCwKKyAgICAgICAgICAgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorICAgIEZST00gY3Rl MQorICAgIFdJTkRPVyB3IEFTICgKKyAgICAgICAgT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRF Uk4gKEErKQorICAgICAgICBERUZJTkUgQSBBUyB2YWwgPiAwCisgICAgKQorKQorU0VMRUNUICog RlJPTSBjdGUyIE9SREVSIEJZIGlkOworIGlkIHwgY2F0ZWdvcnkgfCB2YWwgfCBjbnQgCistLS0t Ky0tLS0tLS0tLS0rLS0tLS0rLS0tLS0KKyAgNCB8IEIgICAgICAgIHwgIDQwIHwgICA2CisgIDUg fCBCICAgICAgICB8ICA1MCB8ICAgMAorICA2IHwgQiAgICAgICAgfCAgNjAgfCAgIDAKKyAgNyB8 IEMgICAgICAgIHwgIDcwIHwgICAwCisgIDggfCBDICAgICAgICB8ICA4MCB8ICAgMAorICA5IHwg QyAgICAgICAgfCAgOTAgfCAgIDAKKyg2IHJvd3MpCisKKy0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gSk9JTiBUZXN0cwor LS0gRmlsZXM6IHByZXBqb2ludHJlZS5jLCBzZXRyZWZzLmMKKy0tID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gVGVzdHMgUlBS IHdpdGggSk9JTnMgYW5kIG11bHRpcGxlIHRhYmxlIHJlZmVyZW5jZXMKK0NSRUFURSBUQUJMRSBy cHJfam9pbjEgKGlkIElOVCwgdmFsMSBJTlQpOworQ1JFQVRFIFRBQkxFIHJwcl9qb2luMiAoaWQg SU5ULCB2YWwyIElOVCk7CitJTlNFUlQgSU5UTyBycHJfam9pbjEgVkFMVUVTICgxLCAxMCksICgy LCAyMCksICgzLCAzMCksICg0LCA0MCksICg1LCA1MCk7CitJTlNFUlQgSU5UTyBycHJfam9pbjIg VkFMVUVTICgxLCAxMDApLCAoMiwgMjAwKSwgKDMsIDMwMCksICg0LCA0MDApLCAoNSwgNTAwKTsK Ky0tIFJQUiBBZnRlciBJTk5FUiBKT0lOCitTRUxFQ1QgdDEuaWQsIHQxLnZhbDEsIHQyLnZhbDIs CisgICAgICAgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfam9pbjEgdDEKK0lOTkVS IEpPSU4gcnByX2pvaW4yIHQyIE9OIHQxLmlkID0gdDIuaWQKK1dJTkRPVyB3IEFTICgKKyAgICBP UkRFUiBCWSB0MS5pZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHZhbDEgKyB2YWwy ID4gMTAwCispCitPUkRFUiBCWSB0MS5pZDsKKyBpZCB8IHZhbDEgfCB2YWwyIHwgY250IAorLS0t LSstLS0tLS0rLS0tLS0tKy0tLS0tCisgIDEgfCAgIDEwIHwgIDEwMCB8ICAgNQorICAyIHwgICAy MCB8ICAyMDAgfCAgIDAKKyAgMyB8ICAgMzAgfCAgMzAwIHwgICAwCisgIDQgfCAgIDQwIHwgIDQw MCB8ICAgMAorICA1IHwgICA1MCB8ICA1MDAgfCAgIDAKKyg1IHJvd3MpCisKKy0tIFJQUiBBZnRl ciBMRUZUIEpPSU4KK1NFTEVDVCB0MS5pZCwgdDEudmFsMSwgdDIudmFsMiwKKyAgICAgICBDT1VO VCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9qb2luMSB0MQorTEVGVCBKT0lOIHJwcl9qb2lu MiB0MiBPTiB0MS5pZCA9IHQyLmlkCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgdDEuaWQK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2YWwxID4gMAorKQorT1JERVIgQlkgdDEu aWQ7CisgaWQgfCB2YWwxIHwgdmFsMiB8IGNudCAKKy0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLQor ICAxIHwgICAxMCB8ICAxMDAgfCAgIDUKKyAgMiB8ICAgMjAgfCAgMjAwIHwgICAwCisgIDMgfCAg IDMwIHwgIDMwMCB8ICAgMAorICA0IHwgICA0MCB8ICA0MDAgfCAgIDAKKyAgNSB8ICAgNTAgfCAg NTAwIHwgICAwCisoNSByb3dzKQorCistLSBSUFIgd2l0aCBNdWx0aXBsZSBUYWJsZXMgaW4gREVG SU5FCitTRUxFQ1QgdDEuaWQsIHQxLnZhbDEsIHQyLnZhbDIsCisgICAgICAgQ09VTlQoKikgT1ZF UiB3IGFzIGNudAorRlJPTSBycHJfam9pbjEgdDEKK0lOTkVSIEpPSU4gcnByX2pvaW4yIHQyIE9O IHQxLmlkID0gdDIuaWQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSB0MS5pZAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRF Uk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMgdmFsMSA+IDIwLAorICAgICAgICAgICBCIEFTIHZh bDIgPiAyMDAKKykKK09SREVSIEJZIHQxLmlkOworIGlkIHwgdmFsMSB8IHZhbDIgfCBjbnQgCist LS0tKy0tLS0tLSstLS0tLS0rLS0tLS0KKyAgMSB8ICAgMTAgfCAgMTAwIHwgICAwCisgIDIgfCAg IDIwIHwgIDIwMCB8ICAgMAorICAzIHwgICAzMCB8ICAzMDAgfCAgIDMKKyAgNCB8ICAgNDAgfCAg NDAwIHwgICAwCisgIDUgfCAgIDUwIHwgIDUwMCB8ICAgMAorKDUgcm93cykKKworLS0gUlBSIEFm dGVyIENyb3NzIEpvaW4KK1NFTEVDVCB0MS5pZCBhcyBpZDEsIHQyLmlkIGFzIGlkMiwgdDEudmFs MSwgdDIudmFsMiwKKyAgICAgICBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9qb2lu MSB0MQorQ1JPU1MgSk9JTiBycHJfam9pbjIgdDIKK1dIRVJFIHQxLmlkIDw9IDIgQU5EIHQyLmlk IDw9IDIKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSB0MS5pZCwgdDIuaWQKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJO IChBKykKKyAgICBERUZJTkUgQSBBUyB2YWwxICsgdmFsMiA+IDAKKykKK09SREVSIEJZIHQxLmlk LCB0Mi5pZDsKKyBpZDEgfCBpZDIgfCB2YWwxIHwgdmFsMiB8IGNudCAKKy0tLS0tKy0tLS0tKy0t LS0tLSstLS0tLS0rLS0tLS0KKyAgIDEgfCAgIDEgfCAgIDEwIHwgIDEwMCB8ICAgNAorICAgMSB8 ICAgMiB8ICAgMTAgfCAgMjAwIHwgICAwCisgICAyIHwgICAxIHwgICAyMCB8ICAxMDAgfCAgIDAK KyAgIDIgfCAgIDIgfCAgIDIwIHwgIDIwMCB8ICAgMAorKDQgcm93cykKKworLS0gU2VsZi1Kb2lu IHdpdGggUlBSCitTRUxFQ1QgaWQsIHZhbDEsIHZhbDFfbmV4dCwKKyAgICAgICBDT1VOVCgqKSBP VkVSIHcgYXMgY250CitGUk9NIChTRUxFQ1QgYS5pZCwgYS52YWwxLCBiLnZhbDEgYXMgdmFsMV9u ZXh0CisgICAgICBGUk9NIHJwcl9qb2luMSBhCisgICAgICBJTk5FUiBKT0lOIHJwcl9qb2luMSBi IE9OIGEuaWQgKyAxID0gYi5pZCkgc3ViCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBQQVRURVJOIChYKykKKyAgICBERUZJTkUgWCBBUyB2YWwxIDwgdmFsMV9uZXh0CispCitPUkRF UiBCWSBpZDsKKyBpZCB8IHZhbDEgfCB2YWwxX25leHQgfCBjbnQgCistLS0tKy0tLS0tLSstLS0t LS0tLS0tLSstLS0tLQorICAxIHwgICAxMCB8ICAgICAgICAyMCB8ICAgNAorICAyIHwgICAyMCB8 ICAgICAgICAzMCB8ICAgMAorICAzIHwgICAzMCB8ICAgICAgICA0MCB8ICAgMAorICA0IHwgICA0 MCB8ICAgICAgICA1MCB8ICAgMAorKDQgcm93cykKKworRFJPUCBUQUJMRSBycHJfam9pbjEsIHJw cl9qb2luMjsKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0gQ29tcGxleCBFeHByZXNzaW9uIFRlc3RzCistLSBGaWxlczog Y3JlYXRlcGxhbi5jLCBzZXRyZWZzLmMKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gVGVzdHMgY29tcGxleCB0YXJnZXQg bGlzdCBleHByZXNzaW9ucworQ1JFQVRFIFRBQkxFIHJwcl90YXJnZXQgKGlkIElOVCwgdmFsIElO VCk7CitJTlNFUlQgSU5UTyBycHJfdGFyZ2V0IFZBTFVFUyAoMSwgMTApLCAoMiwgMjApLCAoMywg MzApLCAoNCwgNDApLCAoNSwgNTApOworLS0gRXhwcmVzc2lvbnMgaW4gVGFyZ2V0IExpc3QKK1NF TEVDVCBpZCwKKyAgICAgICB2YWwgKiAyIGFzIGRvdWJsZWQsCisgICAgICAgdmFsICsgMTAgYXMg YWRkZWQsCisgICAgICAgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfdGFyZ2V0CitX SU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUg QSBBUyB2YWwgPiAwCispCitPUkRFUiBCWSBpZDsKKyBpZCB8IGRvdWJsZWQgfCBhZGRlZCB8IGNu dCAKKy0tLS0rLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0KKyAgMSB8ICAgICAgMjAgfCAgICAyMCB8 ICAgNQorICAyIHwgICAgICA0MCB8ICAgIDMwIHwgICAwCisgIDMgfCAgICAgIDYwIHwgICAgNDAg fCAgIDAKKyAgNCB8ICAgICAgODAgfCAgICA1MCB8ICAgMAorICA1IHwgICAgIDEwMCB8ICAgIDYw IHwgICAwCisoNSByb3dzKQorCistLSBDQVNFIEV4cHJlc3Npb24gaW4gVGFyZ2V0IExpc3QKK1NF TEVDVCBpZCwgdmFsLAorICAgICAgIENBU0UKKyAgICAgICAgICAgV0hFTiB2YWwgPCAzMCBUSEVO ICdsb3cnCisgICAgICAgICAgIFdIRU4gdmFsIDwgNTAgVEhFTiAnbWVkaXVtJworICAgICAgICAg ICBFTFNFICdoaWdoJworICAgICAgIEVORCBhcyBjYXRlZ29yeSwKKyAgICAgICBDT1VOVCgqKSBP VkVSIHcgYXMgY250CitGUk9NIHJwcl90YXJnZXQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBC WSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHZhbCA+IDAKKykKK09SREVSIEJZ IGlkOworIGlkIHwgdmFsIHwgY2F0ZWdvcnkgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0tLS0tLS0r LS0tLS0KKyAgMSB8ICAxMCB8IGxvdyAgICAgIHwgICA1CisgIDIgfCAgMjAgfCBsb3cgICAgICB8 ICAgMAorICAzIHwgIDMwIHwgbWVkaXVtICAgfCAgIDAKKyAgNCB8ICA0MCB8IG1lZGl1bSAgIHwg ICAwCisgIDUgfCAgNTAgfCBoaWdoICAgICB8ICAgMAorKDUgcm93cykKKworLS0gU3VicXVlcnkg aW4gVGFyZ2V0IExpc3QKK1NFTEVDVCBpZCwgdmFsLAorICAgICAgIChTRUxFQ1QgTUFYKHZhbCkg RlJPTSBycHJfdGFyZ2V0KSBhcyBtYXhfdmFsLAorICAgICAgIENPVU5UKCopIE9WRVIgdyBhcyBj bnQKK0ZST00gcnByX3RhcmdldAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFU VEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKQorT1JERVIgQlkgaWQ7CisgaWQg fCB2YWwgfCBtYXhfdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLS0tLS0rLS0tLS0KKyAgMSB8 ICAxMCB8ICAgICAgNTAgfCAgIDUKKyAgMiB8ICAyMCB8ICAgICAgNTAgfCAgIDAKKyAgMyB8ICAz MCB8ICAgICAgNTAgfCAgIDAKKyAgNCB8ICA0MCB8ICAgICAgNTAgfCAgIDAKKyAgNSB8ICA1MCB8 ICAgICAgNTAgfCAgIDAKKyg1IHJvd3MpCisKKy0tIEZ1bmN0aW9uIENhbGxzIGluIFRhcmdldCBM aXN0CitTRUxFQ1QgaWQsIHZhbCwKKyAgICAgICBDT0FMRVNDRSh2YWwsIDApIGFzIGNvYWxlc2Nl ZCwKKyAgICAgICBBQlModmFsIC0gMzApIGFzIGRpc3RhbmNlLAorICAgICAgIENPVU5UKCopIE9W RVIgdyBhcyBjbnQKK0ZST00gcnByX3RhcmdldAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZ IGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKQorT1JERVIgQlkg aWQ7CisgaWQgfCB2YWwgfCBjb2FsZXNjZWQgfCBkaXN0YW5jZSB8IGNudCAKKy0tLS0rLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAgICAgIDEwIHwgICAg ICAgMjAgfCAgIDUKKyAgMiB8ICAyMCB8ICAgICAgICAyMCB8ICAgICAgIDEwIHwgICAwCisgIDMg fCAgMzAgfCAgICAgICAgMzAgfCAgICAgICAgMCB8ICAgMAorICA0IHwgIDQwIHwgICAgICAgIDQw IHwgICAgICAgMTAgfCAgIDAKKyAgNSB8ICA1MCB8ICAgICAgICA1MCB8ICAgICAgIDIwIHwgICAw CisoNSByb3dzKQorCistLSBDb2x1bW4gQWxpYXNlcyBhbmQgUmVmZXJlbmNlcworU0VMRUNUIGlk IGFzIHJvd19pZCwKKyAgICAgICB2YWwgYXMgdmFsdWUsCisgICAgICAgQ09VTlQoKikgT1ZFUiB3 IGFzIGNudAorRlJPTSBycHJfdGFyZ2V0CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCispCitPUkRFUiBCWSByb3df aWQ7Cisgcm93X2lkIHwgdmFsdWUgfCBjbnQgCistLS0tLS0tLSstLS0tLS0tKy0tLS0tCisgICAg ICAxIHwgICAgMTAgfCAgIDUKKyAgICAgIDIgfCAgICAyMCB8ICAgMAorICAgICAgMyB8ICAgIDMw IHwgICAwCisgICAgICA0IHwgICAgNDAgfCAgIDAKKyAgICAgIDUgfCAgICA1MCB8ICAgMAorKDUg cm93cykKKworRFJPUCBUQUJMRSBycHJfdGFyZ2V0OworLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBTZXQgT3BlcmF0aW9u cyBUZXN0cworLS0gRmlsZXM6IHBsYW5uZXIuYworLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBUZXN0cyBSUFIgd2l0aCBV TklPTiwgSU5URVJTRUNULCBFWENFUFQKK0NSRUFURSBUQUJMRSBycHJfc2V0MSAoaWQgSU5ULCB2 YWwgSU5UKTsKK0NSRUFURSBUQUJMRSBycHJfc2V0MiAoaWQgSU5ULCB2YWwgSU5UKTsKK0lOU0VS VCBJTlRPIHJwcl9zZXQxIFZBTFVFUyAoMSwgMTApLCAoMiwgMjApLCAoMywgMzApOworSU5TRVJU IElOVE8gcnByX3NldDIgVkFMVUVTICgyLCAyMCksICgzLCAzMCksICg0LCA0MCk7CistLSBVTklP TiB3aXRoIFJQUgorKFNFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CisgRlJP TSBycHJfc2V0MQorIFdJTkRPVyB3IEFTICgKKyAgICAgT1JERVIgQlkgaWQKKyAgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgIFBBVFRFUk4g KEErKQorICAgICBERUZJTkUgQSBBUyB2YWwgPiAwCisgKSkKK1VOSU9OCisoU0VMRUNUIGlkLCB2 YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKKyBGUk9NIHJwcl9zZXQyCisgV0lORE9XIHcgQVMg KAorICAgICBPUkRFUiBCWSBpZAorICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgUEFUVEVSTiAoQSspCisgICAgIERFRklORSBBIEFTIHZh bCA+IDAKKyApKQorT1JERVIgQlkgaWQ7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0t LS0tCisgIDEgfCAgMTAgfCAgIDMKKyAgMiB8ICAyMCB8ICAgMAorICAyIHwgIDIwIHwgICAzCisg IDMgfCAgMzAgfCAgIDAKKyAgNCB8ICA0MCB8ICAgMAorKDUgcm93cykKKworLS0gVU5JT04gQUxM IHdpdGggUlBSCisoU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKKyBGUk9N IHJwcl9zZXQxCisgV0lORE9XIHcgQVMgKAorICAgICBPUkRFUiBCWSBpZAorICAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgUEFUVEVSTiAo QSspCisgICAgIERFRklORSBBIEFTIHZhbCA+IDAKKyApKQorVU5JT04gQUxMCisoU0VMRUNUIGlk LCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKKyBGUk9NIHJwcl9zZXQyCisgV0lORE9XIHcg QVMgKAorICAgICBPUkRFUiBCWSBpZAorICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgUEFUVEVSTiAoQSspCisgICAgIERFRklORSBBIEFT IHZhbCA+IDAKKyApKQorT1JERVIgQlkgaWQsIHZhbDsKKyBpZCB8IHZhbCB8IGNudCAKKy0tLS0r LS0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAgMworICAyIHwgIDIwIHwgICAwCisgIDIgfCAgMjAg fCAgIDMKKyAgMyB8ICAzMCB8ICAgMAorICAzIHwgIDMwIHwgICAwCisgIDQgfCAgNDAgfCAgIDAK Kyg2IHJvd3MpCisKKy0tIElOVEVSU0VDVCB3aXRoIFJQUgorKFNFTEVDVCBpZCwgdmFsLCBDT1VO VCgqKSBPVkVSIHcgYXMgY250CisgRlJPTSBycHJfc2V0MQorIFdJTkRPVyB3IEFTICgKKyAgICAg T1JERVIgQlkgaWQKKyAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgIFBBVFRFUk4gKEErKQorICAgICBERUZJTkUgQSBBUyB2YWwgPiAwCisg KSkKK0lOVEVSU0VDVAorKFNFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250Cisg RlJPTSBycHJfc2V0MgorIFdJTkRPVyB3IEFTICgKKyAgICAgT1JERVIgQlkgaWQKKyAgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgIFBBVFRF Uk4gKEErKQorICAgICBERUZJTkUgQSBBUyB2YWwgPiAwCisgKSkKK09SREVSIEJZIGlkOworIGlk IHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAzIHwgIDMwIHwgICAwCisoMSByb3cp CisKKy0tIEVYQ0VQVCB3aXRoIFJQUgorKFNFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcg YXMgY250CisgRlJPTSBycHJfc2V0MQorIFdJTkRPVyB3IEFTICgKKyAgICAgT1JERVIgQlkgaWQK KyAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgIFBBVFRFUk4gKEErKQorICAgICBERUZJTkUgQSBBUyB2YWwgPiAwCisgKSkKK0VYQ0VQVAor KFNFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CisgRlJPTSBycHJfc2V0Mgor IFdJTkRPVyB3IEFTICgKKyAgICAgT1JERVIgQlkgaWQKKyAgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgIFBBVFRFUk4gKEErKQorICAgICBE RUZJTkUgQSBBUyB2YWwgPiAwCisgKSkKK09SREVSIEJZIGlkOworIGlkIHwgdmFsIHwgY250IAor LS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAzCisgIDIgfCAgMjAgfCAgIDAKKygyIHJv d3MpCisKK0RST1AgVEFCTEUgcnByX3NldDEsIHJwcl9zZXQyOworLS0gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBTb3J0aW5n IGFuZCBHcm91cGluZyBUZXN0cworLS0gRmlsZXM6IHBsYW5uZXIuYywgY3JlYXRlcGxhbi5jCist LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tIFRlc3RzIFJQUiBpbnRlcmFjdGlvbiB3aXRoIHNvcnRpbmcgYW5kIGdyb3VwaW5n CitDUkVBVEUgVEFCTEUgcnByX3NvcnQgKGlkIElOVCwgY2F0ZWdvcnkgVkFSQ0hBUigxMCksIHZh bCBJTlQpOworSU5TRVJUIElOVE8gcnByX3NvcnQgVkFMVUVTCisgICAgKDEsICdBJywgMzApLCAo MiwgJ0InLCAyMCksICgzLCAnQScsIDEwKSwKKyAgICAoNCwgJ0InLCA0MCksICg1LCAnQScsIDUw KSwgKDYsICdCJywgNjApOworLS0gUlBSIHdpdGggR1JPVVAgQlkgKGFnZ3JlZ2F0ZSBpbiBERUZJ TkUgLT4gRVJST1IgYmVmb3JlIEdST1VQIEJZIGludGVyYWN0aW9uKQorLS0gRXhwZWN0ZWQ6IEVS Uk9SOiBhZ2dyZWdhdGUgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBERUZJTkUKK1NFTEVD VCBjYXRlZ29yeSwKKyAgICAgICBDT1VOVCgqKSBhcyBncm91cF9jbnQsCisgICAgICAgTUFYKHZh bCkgYXMgbWF4X3ZhbCwKKyAgICAgICBDT1VOVCgqKSBPVkVSIHcgYXMgd2luZG93X2NudAorRlJP TSBycHJfc29ydAorR1JPVVAgQlkgY2F0ZWdvcnkKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBC WSBjYXRlZ29yeQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIENPVU5UKCopID4gMAor KQorT1JERVIgQlkgY2F0ZWdvcnk7CitFUlJPUjogIGFnZ3JlZ2F0ZSBmdW5jdGlvbnMgYXJlIG5v dCBhbGxvd2VkIGluIERFRklORQorTElORSAxMTogICAgIERFRklORSBBIEFTIENPVU5UKCopID4g MAorICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIFJQUiB3aXRoIEhBVklORyAoc2FtZSBh Z2dyZWdhdGUtaW4tREVGSU5FIGVycm9yKQorLS0gRXhwZWN0ZWQ6IEVSUk9SOiBhZ2dyZWdhdGUg ZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBERUZJTkUKK1NFTEVDVCBjYXRlZ29yeSwKKyAg ICAgICBDT1VOVCgqKSBhcyBncm91cF9jbnQsCisgICAgICAgQ09VTlQoKikgT1ZFUiB3IGFzIHdp bmRvd19jbnQKK0ZST00gcnByX3NvcnQKK0dST1VQIEJZIGNhdGVnb3J5CitIQVZJTkcgQ09VTlQo KikgPiAyCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgY2F0ZWdvcnkKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChB KykKKyAgICBERUZJTkUgQSBBUyBDT1VOVCgqKSA+IDAKKykKK09SREVSIEJZIGNhdGVnb3J5Owor RVJST1I6ICBhZ2dyZWdhdGUgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBERUZJTkUKK0xJ TkUgMTE6ICAgICBERUZJTkUgQSBBUyBDT1VOVCgqKSA+IDAKKyAgICAgICAgICAgICAgICAgICAg ICAgICBeCistLSBSUFIgd2l0aCBESVNUSU5DVAorU0VMRUNUIERJU1RJTkNUIGNhdGVnb3J5LAor ICAgICAgIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX3NvcnQKK1dJTkRPVyB3IEFT ICgKKyAgICBQQVJUSVRJT04gQlkgY2F0ZWdvcnkKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4g KEErKQorICAgIERFRklORSBBIEFTIHZhbCA+IDAKKykKK09SREVSIEJZIGNhdGVnb3J5OworIGNh dGVnb3J5IHwgY250IAorLS0tLS0tLS0tLSstLS0tLQorIEEgICAgICAgIHwgICAzCisgQSAgICAg ICAgfCAgIDAKKyBCICAgICAgICB8ICAgMAorIEIgICAgICAgIHwgICAzCisoNCByb3dzKQorCist LSBSUFIgd2l0aCBPUkRFUiBCWSAoZGlmZmVyZW50IGZyb20gd2luZG93IE9SREVSIEJZKQorU0VM RUNUIGlkLCBjYXRlZ29yeSwgdmFsLAorICAgICAgIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZS T00gcnByX3NvcnQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEr KQorICAgIERFRklORSBBIEFTIHZhbCA+IDAKKykKK09SREVSIEJZIHZhbCBERVNDOworIGlkIHwg Y2F0ZWdvcnkgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tLS0tLS0rLS0tLS0rLS0tLS0KKyAgNiB8 IEIgICAgICAgIHwgIDYwIHwgICAwCisgIDUgfCBBICAgICAgICB8ICA1MCB8ICAgMAorICA0IHwg QiAgICAgICAgfCAgNDAgfCAgIDAKKyAgMSB8IEEgICAgICAgIHwgIDMwIHwgICA2CisgIDIgfCBC ICAgICAgICB8ICAyMCB8ICAgMAorICAzIHwgQSAgICAgICAgfCAgMTAgfCAgIDAKKyg2IHJvd3Mp CisKKy0tIFJQUiB3aXRoIExJTUlUIGFuZCBPRkZTRVQKK1NFTEVDVCBpZCwgY2F0ZWdvcnksIHZh bCwKKyAgICAgICBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9zb3J0CitXSU5ET1cg dyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2 YWwgPiAwCispCitPUkRFUiBCWSBpZAorTElNSVQgMyBPRkZTRVQgMTsKKyBpZCB8IGNhdGVnb3J5 IHwgdmFsIHwgY250IAorLS0tLSstLS0tLS0tLS0tKy0tLS0tKy0tLS0tCisgIDIgfCBCICAgICAg ICB8ICAyMCB8ICAgMAorICAzIHwgQSAgICAgICAgfCAgMTAgfCAgIDAKKyAgNCB8IEIgICAgICAg IHwgIDQwIHwgICAwCisoMyByb3dzKQorCitEUk9QIFRBQkxFIHJwcl9zb3J0OworLS0gU1FMIGZ1 bmN0aW9uIGlubGluaW5nOiAkMSBpbiBERUZJTkUgbXVzdCBiZSBzdWJzdGl0dXRlZCBieQorLS0g c3Vic3RpdHV0ZV9hY3R1YWxfcGFyYW1ldGVyc19pbl9mcm9tIHZpYSBxdWVyeV90cmVlX211dGF0 b3IuCitDUkVBVEUgVEFCTEUgcnByX3NyZl90ICh2IGludCk7CitJTlNFUlQgSU5UTyBycHJfc3Jm X3QgU0VMRUNUIGdlbmVyYXRlX3NlcmllcygxLCA1KTsKK0NSRUFURSBGVU5DVElPTiBycHJfc3Jm X2YodGhyZXNob2xkIGludCkKK1JFVFVSTlMgVEFCTEUgKHYgaW50LCBjbnQgYmlnaW50KQorTEFO R1VBR0Ugc3FsIFNUQUJMRSBBUyAkJAorICAgIFNFTEVDVCB2OjppbnQsIGNvdW50KCopIE9WRVIg dworICAgIEZST00gcnByX3NyZl90CisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBPUkRFUiBC WSB2CisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgICAgICBQQVRURVJOIChBKykKKyAgICAgICAgREVGSU5FIEEgQVMgdiA+ICQxCisg ICAgKQorJCQ7CitTRUxFQ1QgdiwgY250IEZST00gcnByX3NyZl9mKDMpIE9SREVSIEJZIHY7Cisg diB8IGNudCAKKy0tLSstLS0tLQorIDEgfCAgIDAKKyAyIHwgICAwCisgMyB8ICAgMAorIDQgfCAg IDIKKyA1IHwgICAwCisoNSByb3dzKQorCitEUk9QIFRBQkxFIHJwcl9zcmZfdDsKK0RST1AgRlVO Q1RJT04gcnByX3NyZl9mKGludCk7CitEUk9QIFRBQkxFIHJwcl9wbGFubmVyOworLS0gPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LSBTdHJlc3MgVGVzdHMKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0gRWRnZSBjYXNlcyBhbmQgc3RyZXNzIHNjZW5hcmlv cworQ1JFQVRFIFRBQkxFIHJwcl9zdHJlc3MgKGlkIElOVCwgdmFsIElOVCk7CitJTlNFUlQgSU5U TyBycHJfc3RyZXNzIFNFTEVDVCBpLCBpICogMTAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjAp IGk7CistLSBWZXJ5IExvbmcgUXVlcnkgd2l0aCBNYW55IFdpbmRvd3MKK1NFTEVDVCBpZCwgdmFs LAorICAgICAgIENPVU5UKCopIE9WRVIgdzEgYXMgY250MSwKKyAgICAgICBDT1VOVCgqKSBPVkVS IHcyIGFzIGNudDIsCisgICAgICAgQ09VTlQoKikgT1ZFUiB3MyBhcyBjbnQzCitGUk9NIHJwcl9z dHJlc3MKK1dJTkRPVyB3MSBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAg ICBERUZJTkUgQSBBUyB2YWwgPiAwCispLAordzIgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFU VEVSTiAoQispCisgICAgREVGSU5FIEIgQVMgdmFsID4gNTAKKyksCit3MyBBUyAoCisgICAgT1JE RVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBQQVRURVJOIChDKykKKyAgICBERUZJTkUgQyBBUyB2YWwgPiAxMDAKKykKK09S REVSIEJZIGlkOworIGlkIHwgdmFsIHwgY250MSB8IGNudDIgfCBjbnQzIAorLS0tLSstLS0tLSst LS0tLS0rLS0tLS0tKy0tLS0tLQorICAxIHwgIDEwIHwgICAyMCB8ICAgIDAgfCAgICAwCisgIDIg fCAgMjAgfCAgICAwIHwgICAgMCB8ICAgIDAKKyAgMyB8ICAzMCB8ICAgIDAgfCAgICAwIHwgICAg MAorICA0IHwgIDQwIHwgICAgMCB8ICAgIDAgfCAgICAwCisgIDUgfCAgNTAgfCAgICAwIHwgICAg MCB8ICAgIDAKKyAgNiB8ICA2MCB8ICAgIDAgfCAgIDE1IHwgICAgMAorICA3IHwgIDcwIHwgICAg MCB8ICAgIDAgfCAgICAwCisgIDggfCAgODAgfCAgICAwIHwgICAgMCB8ICAgIDAKKyAgOSB8ICA5 MCB8ICAgIDAgfCAgICAwIHwgICAgMAorIDEwIHwgMTAwIHwgICAgMCB8ICAgIDAgfCAgICAwCisg MTEgfCAxMTAgfCAgICAwIHwgICAgMCB8ICAgMTAKKyAxMiB8IDEyMCB8ICAgIDAgfCAgICAwIHwg ICAgMAorIDEzIHwgMTMwIHwgICAgMCB8ICAgIDAgfCAgICAwCisgMTQgfCAxNDAgfCAgICAwIHwg ICAgMCB8ICAgIDAKKyAxNSB8IDE1MCB8ICAgIDAgfCAgICAwIHwgICAgMAorIDE2IHwgMTYwIHwg ICAgMCB8ICAgIDAgfCAgICAwCisgMTcgfCAxNzAgfCAgICAwIHwgICAgMCB8ICAgIDAKKyAxOCB8 IDE4MCB8ICAgIDAgfCAgICAwIHwgICAgMAorIDE5IHwgMTkwIHwgICAgMCB8ICAgIDAgfCAgICAw CisgMjAgfCAyMDAgfCAgICAwIHwgICAgMCB8ICAgIDAKKygyMCByb3dzKQorCistLSBEZWVwbHkg TmVzdGVkIFN1YnF1ZXJpZXMgd2l0aCBSUFIKK1NFTEVDVCAqIEZST00gKAorICAgIFNFTEVDVCAq IEZST00gKAorICAgICAgICBTRUxFQ1QgKiBGUk9NICgKKyAgICAgICAgICAgIFNFTEVDVCBpZCwg dmFsLAorICAgICAgICAgICAgICAgICAgIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKKyAgICAgICAg ICAgIEZST00gcnByX3N0cmVzcworICAgICAgICAgICAgV0lORE9XIHcgQVMgKAorICAgICAgICAg ICAgICAgIE9SREVSIEJZIGlkCisgICAgICAgICAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgICAgUEFUVEVSTiAoQSsp CisgICAgICAgICAgICAgICAgREVGSU5FIEEgQVMgdmFsID4gMAorICAgICAgICAgICAgKQorICAg ICAgICApIHN1YjEKKyAgICApIHN1YjIKKykgc3ViMworV0hFUkUgY250ID4gMTAKK09SREVSIEJZ IGlkOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEwIHwgIDIw CisoMSByb3cpCisKKy0tIENvbXBsZXggRXhwcmVzc2lvbiBpbiBERUZJTkUgQ2xhdXNlCitTRUxF Q1QgaWQsIHZhbCwKKyAgICAgICBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9zdHJl c3MKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErIEIpCisgICAg REVGSU5FIEEgQVMgKHZhbCAlIDMgPSAwIE9SIHZhbCAlIDUgPSAwKSwKKyAgICAgICAgICAgQiBB UyAodmFsICogMiA+IDEwMCBBTkQgdmFsIC8gMiA8IDEwMCkKKykKK09SREVSIEJZIGlkOworIGlk IHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEwIHwgIDE5CisgIDIgfCAg MjAgfCAgIDAKKyAgMyB8ICAzMCB8ICAgMAorICA0IHwgIDQwIHwgICAwCisgIDUgfCAgNTAgfCAg IDAKKyAgNiB8ICA2MCB8ICAgMAorICA3IHwgIDcwIHwgICAwCisgIDggfCAgODAgfCAgIDAKKyAg OSB8ICA5MCB8ICAgMAorIDEwIHwgMTAwIHwgICAwCisgMTEgfCAxMTAgfCAgIDAKKyAxMiB8IDEy MCB8ICAgMAorIDEzIHwgMTMwIHwgICAwCisgMTQgfCAxNDAgfCAgIDAKKyAxNSB8IDE1MCB8ICAg MAorIDE2IHwgMTYwIHwgICAwCisgMTcgfCAxNzAgfCAgIDAKKyAxOCB8IDE4MCB8ICAgMAorIDE5 IHwgMTkwIHwgICAwCisgMjAgfCAyMDAgfCAgIDAKKygyMCByb3dzKQorCistLSBXaW5kb3cgd2l0 aCBObyBNYXRjaGluZyBSb3dzCitTRUxFQ1QgaWQsIHZhbCwKKyAgICAgICBDT1VOVCgqKSBPVkVS IHcgYXMgY250CitGUk9NIHJwcl9zdHJlc3MKK1dIRVJFIHZhbCA+IDEwMDAgIC0tIE5vIHJvd3Mg bWF0Y2gKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAg IERFRklORSBBIEFTIHZhbCA+IDAKKykKK09SREVSIEJZIGlkOworIGlkIHwgdmFsIHwgY250IAor LS0tLSstLS0tLSstLS0tLQorKDAgcm93cykKKworLS0gV2luZG93IG9uIFNpbmdsZSBSb3cKK1NF TEVDVCBpZCwgdmFsLAorICAgICAgIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX3N0 cmVzcworV0hFUkUgaWQgPSAxMAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFU VEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgdmFsID4gMAorKQorT1JERVIgQlkgaWQ7CisgaWQg fCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgMTAgfCAxMDAgfCAgIDEKKygxIHJvdykK KworRFJPUCBUQUJMRSBycHJfc3RyZXNzOworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBFcnJvciBMaW1pdCBUZXN0cwor LS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLSBUZXN0cyBmb3IgZXJyb3IgY29uZGl0aW9ucyBpbiBycHIuYworQ1JFQVRFIFRB QkxFIHJwcl9lcnJvcnMgKGlkIElOVCwgdmFsIElOVCk7CitJTlNFUlQgSU5UTyBycHJfZXJyb3Jz IFZBTFVFUyAoMSwgMTApLCAoMiwgMjApOworLS0gVGVzdDogREVGSU5FIHZhcmlhYmxlIG5vdCBp biBQQVRURVJOIChlcnJvcikKK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgRlJPTSBy cHJfZXJyb3JzCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKQor ICAgIERFRklORQorICAgICAgQiBBUyBUUlVFCispOworRVJST1I6ICBERUZJTkUgdmFyaWFibGUg ImIiIGlzIG5vdCB1c2VkIGluIFBBVFRFUk4KK0xJTkUgNzogICAgICAgQiBBUyBUUlVFCisgICAg ICAgICAgICAgIF4KKy0tIEV4cGVjdGVkOiBFcnJvciAtIEIgaXMgbm90IHVzZWQgaW4gUEFUVEVS TgorLS0gVGVzdDogMjUxIHZhcmlhYmxlcyBpbiBQQVRURVJOIGFuZCBERUZJTkUgKGJvdW5kYXJ5 IC0gc2hvdWxkIHN1Y2NlZWQpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX2Vycm9y cworV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoVjEgVjIgVjMgVjQg VjUgVjYgVjcgVjggVjkgVjEwIFYxMSBWMTIgVjEzIFYxNCBWMTUgVjE2IFYxNyBWMTggVjE5IFYy MCBWMjEgVjIyIFYyMyBWMjQgVjI1IFYyNiBWMjcgVjI4IFYyOSBWMzAgVjMxIFYzMiBWMzMgVjM0 IFYzNSBWMzYgVjM3IFYzOCBWMzkgVjQwIFY0MSBWNDIgVjQzIFY0NCBWNDUgVjQ2IFY0NyBWNDgg VjQ5IFY1MCBWNTEgVjUyIFY1MyBWNTQgVjU1IFY1NiBWNTcgVjU4IFY1OSBWNjAgVjYxIFY2MiBW NjMgVjY0IFY2NSBWNjYgVjY3IFY2OCBWNjkgVjcwIFY3MSBWNzIgVjczIFY3NCBWNzUgVjc2IFY3 NyBWNzggVjc5IFY4MCBWODEgVjgyIFY4MyBWODQgVjg1IFY4NiBWODcgVjg4IFY4OSBWOTAgVjkx IFY5MiBWOTMgVjk0IFY5NSBWOTYgVjk3IFY5OCBWOTkgVjEwMCBWMTAxIFYxMDIgVjEwMyBWMTA0 IFYxMDUgVjEwNiBWMTA3IFYxMDggVjEwOSBWMTEwIFYxMTEgVjExMiBWMTEzIFYxMTQgVjExNSBW MTE2IFYxMTcgVjExOCBWMTE5IFYxMjAgVjEyMSBWMTIyIFYxMjMgVjEyNCBWMTI1IFYxMjYgVjEy NyBWMTI4IFYxMjkgVjEzMCBWMTMxIFYxMzIgVjEzMyBWMTM0IFYxMzUgVjEzNiBWMTM3IFYxMzgg VjEzOSBWMTQwIFYxNDEgVjE0MiBWMTQzIFYxNDQgVjE0NSBWMTQ2IFYxNDcgVjE0OCBWMTQ5IFYx NTAgVjE1MSBWMTUyIFYxNTMgVjE1NCBWMTU1IFYxNTYgVjE1NyBWMTU4IFYxNTkgVjE2MCBWMTYx IFYxNjIgVjE2MyBWMTY0IFYxNjUgVjE2NiBWMTY3IFYxNjggVjE2OSBWMTcwIFYxNzEgVjE3MiBW MTczIFYxNzQgVjE3NSBWMTc2IFYxNzcgVjE3OCBWMTc5IFYxODAgVjE4MSBWMTgyIFYxODMgVjE4 NCBWMTg1IFYxODYgVjE4NyBWMTg4IFYxODkgVjE5MCBWMTkxIFYxOTIgVjE5MyBWMTk0IFYxOTUg VjE5NiBWMTk3IFYxOTggVjE5OSBWMjAwIFYyMDEgVjIwMiBWMjAzIFYyMDQgVjIwNSBWMjA2IFYy MDcgVjIwOCBWMjA5IFYyMTAgVjIxMSBWMjEyIFYyMTMgVjIxNCBWMjE1IFYyMTYgVjIxNyBWMjE4 IFYyMTkgVjIyMCBWMjIxIFYyMjIgVjIyMyBWMjI0IFYyMjUgVjIyNiBWMjI3IFYyMjggVjIyOSBW MjMwIFYyMzEgVjIzMiBWMjMzIFYyMzQgVjIzNSBWMjM2IFYyMzcgVjIzOCBWMjM5IFYyNDAgVjI0 MSBWMjQyIFYyNDMgVjI0NCBWMjQ1IFYyNDYgVjI0NyBWMjQ4IFYyNDkgVjI1MCBWMjUxKQorICAg IERFRklORQorICAgIFYxIEFTIHZhbCA+IDAsIFYyIEFTIHZhbCA+IDAsIFYzIEFTIHZhbCA+IDAs IFY0IEFTIHZhbCA+IDAsIFY1IEFTIHZhbCA+IDAsIFY2IEFTIHZhbCA+IDAsIFY3IEFTIHZhbCA+ IDAsIFY4IEFTIHZhbCA+IDAsIFY5IEFTIHZhbCA+IDAsIFYxMCBBUyB2YWwgPiAwLAorICAgIFYx MSBBUyB2YWwgPiAwLCBWMTIgQVMgdmFsID4gMCwgVjEzIEFTIHZhbCA+IDAsIFYxNCBBUyB2YWwg PiAwLCBWMTUgQVMgdmFsID4gMCwgVjE2IEFTIHZhbCA+IDAsIFYxNyBBUyB2YWwgPiAwLCBWMTgg QVMgdmFsID4gMCwgVjE5IEFTIHZhbCA+IDAsIFYyMCBBUyB2YWwgPiAwLAorICAgIFYyMSBBUyB2 YWwgPiAwLCBWMjIgQVMgdmFsID4gMCwgVjIzIEFTIHZhbCA+IDAsIFYyNCBBUyB2YWwgPiAwLCBW MjUgQVMgdmFsID4gMCwgVjI2IEFTIHZhbCA+IDAsIFYyNyBBUyB2YWwgPiAwLCBWMjggQVMgdmFs ID4gMCwgVjI5IEFTIHZhbCA+IDAsIFYzMCBBUyB2YWwgPiAwLAorICAgIFYzMSBBUyB2YWwgPiAw LCBWMzIgQVMgdmFsID4gMCwgVjMzIEFTIHZhbCA+IDAsIFYzNCBBUyB2YWwgPiAwLCBWMzUgQVMg dmFsID4gMCwgVjM2IEFTIHZhbCA+IDAsIFYzNyBBUyB2YWwgPiAwLCBWMzggQVMgdmFsID4gMCwg VjM5IEFTIHZhbCA+IDAsIFY0MCBBUyB2YWwgPiAwLAorICAgIFY0MSBBUyB2YWwgPiAwLCBWNDIg QVMgdmFsID4gMCwgVjQzIEFTIHZhbCA+IDAsIFY0NCBBUyB2YWwgPiAwLCBWNDUgQVMgdmFsID4g MCwgVjQ2IEFTIHZhbCA+IDAsIFY0NyBBUyB2YWwgPiAwLCBWNDggQVMgdmFsID4gMCwgVjQ5IEFT IHZhbCA+IDAsIFY1MCBBUyB2YWwgPiAwLAorICAgIFY1MSBBUyB2YWwgPiAwLCBWNTIgQVMgdmFs ID4gMCwgVjUzIEFTIHZhbCA+IDAsIFY1NCBBUyB2YWwgPiAwLCBWNTUgQVMgdmFsID4gMCwgVjU2 IEFTIHZhbCA+IDAsIFY1NyBBUyB2YWwgPiAwLCBWNTggQVMgdmFsID4gMCwgVjU5IEFTIHZhbCA+ IDAsIFY2MCBBUyB2YWwgPiAwLAorICAgIFY2MSBBUyB2YWwgPiAwLCBWNjIgQVMgdmFsID4gMCwg VjYzIEFTIHZhbCA+IDAsIFY2NCBBUyB2YWwgPiAwLCBWNjUgQVMgdmFsID4gMCwgVjY2IEFTIHZh bCA+IDAsIFY2NyBBUyB2YWwgPiAwLCBWNjggQVMgdmFsID4gMCwgVjY5IEFTIHZhbCA+IDAsIFY3 MCBBUyB2YWwgPiAwLAorICAgIFY3MSBBUyB2YWwgPiAwLCBWNzIgQVMgdmFsID4gMCwgVjczIEFT IHZhbCA+IDAsIFY3NCBBUyB2YWwgPiAwLCBWNzUgQVMgdmFsID4gMCwgVjc2IEFTIHZhbCA+IDAs IFY3NyBBUyB2YWwgPiAwLCBWNzggQVMgdmFsID4gMCwgVjc5IEFTIHZhbCA+IDAsIFY4MCBBUyB2 YWwgPiAwLAorICAgIFY4MSBBUyB2YWwgPiAwLCBWODIgQVMgdmFsID4gMCwgVjgzIEFTIHZhbCA+ IDAsIFY4NCBBUyB2YWwgPiAwLCBWODUgQVMgdmFsID4gMCwgVjg2IEFTIHZhbCA+IDAsIFY4NyBB UyB2YWwgPiAwLCBWODggQVMgdmFsID4gMCwgVjg5IEFTIHZhbCA+IDAsIFY5MCBBUyB2YWwgPiAw LAorICAgIFY5MSBBUyB2YWwgPiAwLCBWOTIgQVMgdmFsID4gMCwgVjkzIEFTIHZhbCA+IDAsIFY5 NCBBUyB2YWwgPiAwLCBWOTUgQVMgdmFsID4gMCwgVjk2IEFTIHZhbCA+IDAsIFY5NyBBUyB2YWwg PiAwLCBWOTggQVMgdmFsID4gMCwgVjk5IEFTIHZhbCA+IDAsIFYxMDAgQVMgdmFsID4gMCwKKyAg ICBWMTAxIEFTIHZhbCA+IDAsIFYxMDIgQVMgdmFsID4gMCwgVjEwMyBBUyB2YWwgPiAwLCBWMTA0 IEFTIHZhbCA+IDAsIFYxMDUgQVMgdmFsID4gMCwgVjEwNiBBUyB2YWwgPiAwLCBWMTA3IEFTIHZh bCA+IDAsIFYxMDggQVMgdmFsID4gMCwgVjEwOSBBUyB2YWwgPiAwLCBWMTEwIEFTIHZhbCA+IDAs CisgICAgVjExMSBBUyB2YWwgPiAwLCBWMTEyIEFTIHZhbCA+IDAsIFYxMTMgQVMgdmFsID4gMCwg VjExNCBBUyB2YWwgPiAwLCBWMTE1IEFTIHZhbCA+IDAsIFYxMTYgQVMgdmFsID4gMCwgVjExNyBB UyB2YWwgPiAwLCBWMTE4IEFTIHZhbCA+IDAsIFYxMTkgQVMgdmFsID4gMCwgVjEyMCBBUyB2YWwg PiAwLAorICAgIFYxMjEgQVMgdmFsID4gMCwgVjEyMiBBUyB2YWwgPiAwLCBWMTIzIEFTIHZhbCA+ IDAsIFYxMjQgQVMgdmFsID4gMCwgVjEyNSBBUyB2YWwgPiAwLCBWMTI2IEFTIHZhbCA+IDAsIFYx MjcgQVMgdmFsID4gMCwgVjEyOCBBUyB2YWwgPiAwLCBWMTI5IEFTIHZhbCA+IDAsIFYxMzAgQVMg dmFsID4gMCwKKyAgICBWMTMxIEFTIHZhbCA+IDAsIFYxMzIgQVMgdmFsID4gMCwgVjEzMyBBUyB2 YWwgPiAwLCBWMTM0IEFTIHZhbCA+IDAsIFYxMzUgQVMgdmFsID4gMCwgVjEzNiBBUyB2YWwgPiAw LCBWMTM3IEFTIHZhbCA+IDAsIFYxMzggQVMgdmFsID4gMCwgVjEzOSBBUyB2YWwgPiAwLCBWMTQw IEFTIHZhbCA+IDAsCisgICAgVjE0MSBBUyB2YWwgPiAwLCBWMTQyIEFTIHZhbCA+IDAsIFYxNDMg QVMgdmFsID4gMCwgVjE0NCBBUyB2YWwgPiAwLCBWMTQ1IEFTIHZhbCA+IDAsIFYxNDYgQVMgdmFs ID4gMCwgVjE0NyBBUyB2YWwgPiAwLCBWMTQ4IEFTIHZhbCA+IDAsIFYxNDkgQVMgdmFsID4gMCwg VjE1MCBBUyB2YWwgPiAwLAorICAgIFYxNTEgQVMgdmFsID4gMCwgVjE1MiBBUyB2YWwgPiAwLCBW MTUzIEFTIHZhbCA+IDAsIFYxNTQgQVMgdmFsID4gMCwgVjE1NSBBUyB2YWwgPiAwLCBWMTU2IEFT IHZhbCA+IDAsIFYxNTcgQVMgdmFsID4gMCwgVjE1OCBBUyB2YWwgPiAwLCBWMTU5IEFTIHZhbCA+ IDAsIFYxNjAgQVMgdmFsID4gMCwKKyAgICBWMTYxIEFTIHZhbCA+IDAsIFYxNjIgQVMgdmFsID4g MCwgVjE2MyBBUyB2YWwgPiAwLCBWMTY0IEFTIHZhbCA+IDAsIFYxNjUgQVMgdmFsID4gMCwgVjE2 NiBBUyB2YWwgPiAwLCBWMTY3IEFTIHZhbCA+IDAsIFYxNjggQVMgdmFsID4gMCwgVjE2OSBBUyB2 YWwgPiAwLCBWMTcwIEFTIHZhbCA+IDAsCisgICAgVjE3MSBBUyB2YWwgPiAwLCBWMTcyIEFTIHZh bCA+IDAsIFYxNzMgQVMgdmFsID4gMCwgVjE3NCBBUyB2YWwgPiAwLCBWMTc1IEFTIHZhbCA+IDAs IFYxNzYgQVMgdmFsID4gMCwgVjE3NyBBUyB2YWwgPiAwLCBWMTc4IEFTIHZhbCA+IDAsIFYxNzkg QVMgdmFsID4gMCwgVjE4MCBBUyB2YWwgPiAwLAorICAgIFYxODEgQVMgdmFsID4gMCwgVjE4MiBB UyB2YWwgPiAwLCBWMTgzIEFTIHZhbCA+IDAsIFYxODQgQVMgdmFsID4gMCwgVjE4NSBBUyB2YWwg PiAwLCBWMTg2IEFTIHZhbCA+IDAsIFYxODcgQVMgdmFsID4gMCwgVjE4OCBBUyB2YWwgPiAwLCBW MTg5IEFTIHZhbCA+IDAsIFYxOTAgQVMgdmFsID4gMCwKKyAgICBWMTkxIEFTIHZhbCA+IDAsIFYx OTIgQVMgdmFsID4gMCwgVjE5MyBBUyB2YWwgPiAwLCBWMTk0IEFTIHZhbCA+IDAsIFYxOTUgQVMg dmFsID4gMCwgVjE5NiBBUyB2YWwgPiAwLCBWMTk3IEFTIHZhbCA+IDAsIFYxOTggQVMgdmFsID4g MCwgVjE5OSBBUyB2YWwgPiAwLCBWMjAwIEFTIHZhbCA+IDAsCisgICAgVjIwMSBBUyB2YWwgPiAw LCBWMjAyIEFTIHZhbCA+IDAsIFYyMDMgQVMgdmFsID4gMCwgVjIwNCBBUyB2YWwgPiAwLCBWMjA1 IEFTIHZhbCA+IDAsIFYyMDYgQVMgdmFsID4gMCwgVjIwNyBBUyB2YWwgPiAwLCBWMjA4IEFTIHZh bCA+IDAsIFYyMDkgQVMgdmFsID4gMCwgVjIxMCBBUyB2YWwgPiAwLAorICAgIFYyMTEgQVMgdmFs ID4gMCwgVjIxMiBBUyB2YWwgPiAwLCBWMjEzIEFTIHZhbCA+IDAsIFYyMTQgQVMgdmFsID4gMCwg VjIxNSBBUyB2YWwgPiAwLCBWMjE2IEFTIHZhbCA+IDAsIFYyMTcgQVMgdmFsID4gMCwgVjIxOCBB UyB2YWwgPiAwLCBWMjE5IEFTIHZhbCA+IDAsIFYyMjAgQVMgdmFsID4gMCwKKyAgICBWMjIxIEFT IHZhbCA+IDAsIFYyMjIgQVMgdmFsID4gMCwgVjIyMyBBUyB2YWwgPiAwLCBWMjI0IEFTIHZhbCA+ IDAsIFYyMjUgQVMgdmFsID4gMCwgVjIyNiBBUyB2YWwgPiAwLCBWMjI3IEFTIHZhbCA+IDAsIFYy MjggQVMgdmFsID4gMCwgVjIyOSBBUyB2YWwgPiAwLCBWMjMwIEFTIHZhbCA+IDAsCisgICAgVjIz MSBBUyB2YWwgPiAwLCBWMjMyIEFTIHZhbCA+IDAsIFYyMzMgQVMgdmFsID4gMCwgVjIzNCBBUyB2 YWwgPiAwLCBWMjM1IEFTIHZhbCA+IDAsIFYyMzYgQVMgdmFsID4gMCwgVjIzNyBBUyB2YWwgPiAw LCBWMjM4IEFTIHZhbCA+IDAsIFYyMzkgQVMgdmFsID4gMCwgVjI0MCBBUyB2YWwgPiAwLAorICAg IFYyNDEgQVMgdmFsID4gMCwgVjI0MiBBUyB2YWwgPiAwLCBWMjQzIEFTIHZhbCA+IDAsIFYyNDQg QVMgdmFsID4gMCwgVjI0NSBBUyB2YWwgPiAwLCBWMjQ2IEFTIHZhbCA+IDAsIFYyNDcgQVMgdmFs ID4gMCwgVjI0OCBBUyB2YWwgPiAwLCBWMjQ5IEFTIHZhbCA+IDAsIFYyNTAgQVMgdmFsID4gMCwK KyAgICBWMjUxIEFTIHZhbCA+IDAKKyk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKyAgICAg MAorKDIgcm93cykKKworLS0gRXhwZWN0ZWQ6IFN1Y2Nlc3MgLSBleGFjdGx5IGF0IFJQUl9WQVJJ RF9NQVggYm91bmRhcnkKKy0tIFRlc3Q6IDI1MiB2YXJpYWJsZXMgaW4gUEFUVEVSTiwgMjUxIGlu IERFRklORSAoZXhjZWVkcyBsaW1pdCB3aXRoIGltcGxpY2l0IFRSVUUpCitTRUxFQ1QgQ09VTlQo KikgT1ZFUiB3IEZST00gcnByX2Vycm9ycworV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlk CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgUEFUVEVSTiAoVjEgVjIgVjMgVjQgVjUgVjYgVjcgVjggVjkgVjEwIFYxMSBWMTIgVjEzIFYx NCBWMTUgVjE2IFYxNyBWMTggVjE5IFYyMCBWMjEgVjIyIFYyMyBWMjQgVjI1IFYyNiBWMjcgVjI4 IFYyOSBWMzAgVjMxIFYzMiBWMzMgVjM0IFYzNSBWMzYgVjM3IFYzOCBWMzkgVjQwIFY0MSBWNDIg VjQzIFY0NCBWNDUgVjQ2IFY0NyBWNDggVjQ5IFY1MCBWNTEgVjUyIFY1MyBWNTQgVjU1IFY1NiBW NTcgVjU4IFY1OSBWNjAgVjYxIFY2MiBWNjMgVjY0IFY2NSBWNjYgVjY3IFY2OCBWNjkgVjcwIFY3 MSBWNzIgVjczIFY3NCBWNzUgVjc2IFY3NyBWNzggVjc5IFY4MCBWODEgVjgyIFY4MyBWODQgVjg1 IFY4NiBWODcgVjg4IFY4OSBWOTAgVjkxIFY5MiBWOTMgVjk0IFY5NSBWOTYgVjk3IFY5OCBWOTkg VjEwMCBWMTAxIFYxMDIgVjEwMyBWMTA0IFYxMDUgVjEwNiBWMTA3IFYxMDggVjEwOSBWMTEwIFYx MTEgVjExMiBWMTEzIFYxMTQgVjExNSBWMTE2IFYxMTcgVjExOCBWMTE5IFYxMjAgVjEyMSBWMTIy IFYxMjMgVjEyNCBWMTI1IFYxMjYgVjEyNyBWMTI4IFYxMjkgVjEzMCBWMTMxIFYxMzIgVjEzMyBW MTM0IFYxMzUgVjEzNiBWMTM3IFYxMzggVjEzOSBWMTQwIFYxNDEgVjE0MiBWMTQzIFYxNDQgVjE0 NSBWMTQ2IFYxNDcgVjE0OCBWMTQ5IFYxNTAgVjE1MSBWMTUyIFYxNTMgVjE1NCBWMTU1IFYxNTYg VjE1NyBWMTU4IFYxNTkgVjE2MCBWMTYxIFYxNjIgVjE2MyBWMTY0IFYxNjUgVjE2NiBWMTY3IFYx NjggVjE2OSBWMTcwIFYxNzEgVjE3MiBWMTczIFYxNzQgVjE3NSBWMTc2IFYxNzcgVjE3OCBWMTc5 IFYxODAgVjE4MSBWMTgyIFYxODMgVjE4NCBWMTg1IFYxODYgVjE4NyBWMTg4IFYxODkgVjE5MCBW MTkxIFYxOTIgVjE5MyBWMTk0IFYxOTUgVjE5NiBWMTk3IFYxOTggVjE5OSBWMjAwIFYyMDEgVjIw MiBWMjAzIFYyMDQgVjIwNSBWMjA2IFYyMDcgVjIwOCBWMjA5IFYyMTAgVjIxMSBWMjEyIFYyMTMg VjIxNCBWMjE1IFYyMTYgVjIxNyBWMjE4IFYyMTkgVjIyMCBWMjIxIFYyMjIgVjIyMyBWMjI0IFYy MjUgVjIyNiBWMjI3IFYyMjggVjIyOSBWMjMwIFYyMzEgVjIzMiBWMjMzIFYyMzQgVjIzNSBWMjM2 IFYyMzcgVjIzOCBWMjM5IFYyNDAgVjI0MSBWMjQyIFYyNDMgVjI0NCBWMjQ1IFYyNDYgVjI0NyBW MjQ4IFYyNDkgVjI1MCBWMjUxIFYyNTIpCisgICAgREVGSU5FCisgICAgVjEgQVMgdmFsID4gMCwg VjIgQVMgdmFsID4gMCwgVjMgQVMgdmFsID4gMCwgVjQgQVMgdmFsID4gMCwgVjUgQVMgdmFsID4g MCwgVjYgQVMgdmFsID4gMCwgVjcgQVMgdmFsID4gMCwgVjggQVMgdmFsID4gMCwgVjkgQVMgdmFs ID4gMCwgVjEwIEFTIHZhbCA+IDAsCisgICAgVjExIEFTIHZhbCA+IDAsIFYxMiBBUyB2YWwgPiAw LCBWMTMgQVMgdmFsID4gMCwgVjE0IEFTIHZhbCA+IDAsIFYxNSBBUyB2YWwgPiAwLCBWMTYgQVMg dmFsID4gMCwgVjE3IEFTIHZhbCA+IDAsIFYxOCBBUyB2YWwgPiAwLCBWMTkgQVMgdmFsID4gMCwg VjIwIEFTIHZhbCA+IDAsCisgICAgVjIxIEFTIHZhbCA+IDAsIFYyMiBBUyB2YWwgPiAwLCBWMjMg QVMgdmFsID4gMCwgVjI0IEFTIHZhbCA+IDAsIFYyNSBBUyB2YWwgPiAwLCBWMjYgQVMgdmFsID4g MCwgVjI3IEFTIHZhbCA+IDAsIFYyOCBBUyB2YWwgPiAwLCBWMjkgQVMgdmFsID4gMCwgVjMwIEFT IHZhbCA+IDAsCisgICAgVjMxIEFTIHZhbCA+IDAsIFYzMiBBUyB2YWwgPiAwLCBWMzMgQVMgdmFs ID4gMCwgVjM0IEFTIHZhbCA+IDAsIFYzNSBBUyB2YWwgPiAwLCBWMzYgQVMgdmFsID4gMCwgVjM3 IEFTIHZhbCA+IDAsIFYzOCBBUyB2YWwgPiAwLCBWMzkgQVMgdmFsID4gMCwgVjQwIEFTIHZhbCA+ IDAsCisgICAgVjQxIEFTIHZhbCA+IDAsIFY0MiBBUyB2YWwgPiAwLCBWNDMgQVMgdmFsID4gMCwg VjQ0IEFTIHZhbCA+IDAsIFY0NSBBUyB2YWwgPiAwLCBWNDYgQVMgdmFsID4gMCwgVjQ3IEFTIHZh bCA+IDAsIFY0OCBBUyB2YWwgPiAwLCBWNDkgQVMgdmFsID4gMCwgVjUwIEFTIHZhbCA+IDAsCisg ICAgVjUxIEFTIHZhbCA+IDAsIFY1MiBBUyB2YWwgPiAwLCBWNTMgQVMgdmFsID4gMCwgVjU0IEFT IHZhbCA+IDAsIFY1NSBBUyB2YWwgPiAwLCBWNTYgQVMgdmFsID4gMCwgVjU3IEFTIHZhbCA+IDAs IFY1OCBBUyB2YWwgPiAwLCBWNTkgQVMgdmFsID4gMCwgVjYwIEFTIHZhbCA+IDAsCisgICAgVjYx IEFTIHZhbCA+IDAsIFY2MiBBUyB2YWwgPiAwLCBWNjMgQVMgdmFsID4gMCwgVjY0IEFTIHZhbCA+ IDAsIFY2NSBBUyB2YWwgPiAwLCBWNjYgQVMgdmFsID4gMCwgVjY3IEFTIHZhbCA+IDAsIFY2OCBB UyB2YWwgPiAwLCBWNjkgQVMgdmFsID4gMCwgVjcwIEFTIHZhbCA+IDAsCisgICAgVjcxIEFTIHZh bCA+IDAsIFY3MiBBUyB2YWwgPiAwLCBWNzMgQVMgdmFsID4gMCwgVjc0IEFTIHZhbCA+IDAsIFY3 NSBBUyB2YWwgPiAwLCBWNzYgQVMgdmFsID4gMCwgVjc3IEFTIHZhbCA+IDAsIFY3OCBBUyB2YWwg PiAwLCBWNzkgQVMgdmFsID4gMCwgVjgwIEFTIHZhbCA+IDAsCisgICAgVjgxIEFTIHZhbCA+IDAs IFY4MiBBUyB2YWwgPiAwLCBWODMgQVMgdmFsID4gMCwgVjg0IEFTIHZhbCA+IDAsIFY4NSBBUyB2 YWwgPiAwLCBWODYgQVMgdmFsID4gMCwgVjg3IEFTIHZhbCA+IDAsIFY4OCBBUyB2YWwgPiAwLCBW ODkgQVMgdmFsID4gMCwgVjkwIEFTIHZhbCA+IDAsCisgICAgVjkxIEFTIHZhbCA+IDAsIFY5MiBB UyB2YWwgPiAwLCBWOTMgQVMgdmFsID4gMCwgVjk0IEFTIHZhbCA+IDAsIFY5NSBBUyB2YWwgPiAw LCBWOTYgQVMgdmFsID4gMCwgVjk3IEFTIHZhbCA+IDAsIFY5OCBBUyB2YWwgPiAwLCBWOTkgQVMg dmFsID4gMCwgVjEwMCBBUyB2YWwgPiAwLAorICAgIFYxMDEgQVMgdmFsID4gMCwgVjEwMiBBUyB2 YWwgPiAwLCBWMTAzIEFTIHZhbCA+IDAsIFYxMDQgQVMgdmFsID4gMCwgVjEwNSBBUyB2YWwgPiAw LCBWMTA2IEFTIHZhbCA+IDAsIFYxMDcgQVMgdmFsID4gMCwgVjEwOCBBUyB2YWwgPiAwLCBWMTA5 IEFTIHZhbCA+IDAsIFYxMTAgQVMgdmFsID4gMCwKKyAgICBWMTExIEFTIHZhbCA+IDAsIFYxMTIg QVMgdmFsID4gMCwgVjExMyBBUyB2YWwgPiAwLCBWMTE0IEFTIHZhbCA+IDAsIFYxMTUgQVMgdmFs ID4gMCwgVjExNiBBUyB2YWwgPiAwLCBWMTE3IEFTIHZhbCA+IDAsIFYxMTggQVMgdmFsID4gMCwg VjExOSBBUyB2YWwgPiAwLCBWMTIwIEFTIHZhbCA+IDAsCisgICAgVjEyMSBBUyB2YWwgPiAwLCBW MTIyIEFTIHZhbCA+IDAsIFYxMjMgQVMgdmFsID4gMCwgVjEyNCBBUyB2YWwgPiAwLCBWMTI1IEFT IHZhbCA+IDAsIFYxMjYgQVMgdmFsID4gMCwgVjEyNyBBUyB2YWwgPiAwLCBWMTI4IEFTIHZhbCA+ IDAsIFYxMjkgQVMgdmFsID4gMCwgVjEzMCBBUyB2YWwgPiAwLAorICAgIFYxMzEgQVMgdmFsID4g MCwgVjEzMiBBUyB2YWwgPiAwLCBWMTMzIEFTIHZhbCA+IDAsIFYxMzQgQVMgdmFsID4gMCwgVjEz NSBBUyB2YWwgPiAwLCBWMTM2IEFTIHZhbCA+IDAsIFYxMzcgQVMgdmFsID4gMCwgVjEzOCBBUyB2 YWwgPiAwLCBWMTM5IEFTIHZhbCA+IDAsIFYxNDAgQVMgdmFsID4gMCwKKyAgICBWMTQxIEFTIHZh bCA+IDAsIFYxNDIgQVMgdmFsID4gMCwgVjE0MyBBUyB2YWwgPiAwLCBWMTQ0IEFTIHZhbCA+IDAs IFYxNDUgQVMgdmFsID4gMCwgVjE0NiBBUyB2YWwgPiAwLCBWMTQ3IEFTIHZhbCA+IDAsIFYxNDgg QVMgdmFsID4gMCwgVjE0OSBBUyB2YWwgPiAwLCBWMTUwIEFTIHZhbCA+IDAsCisgICAgVjE1MSBB UyB2YWwgPiAwLCBWMTUyIEFTIHZhbCA+IDAsIFYxNTMgQVMgdmFsID4gMCwgVjE1NCBBUyB2YWwg PiAwLCBWMTU1IEFTIHZhbCA+IDAsIFYxNTYgQVMgdmFsID4gMCwgVjE1NyBBUyB2YWwgPiAwLCBW MTU4IEFTIHZhbCA+IDAsIFYxNTkgQVMgdmFsID4gMCwgVjE2MCBBUyB2YWwgPiAwLAorICAgIFYx NjEgQVMgdmFsID4gMCwgVjE2MiBBUyB2YWwgPiAwLCBWMTYzIEFTIHZhbCA+IDAsIFYxNjQgQVMg dmFsID4gMCwgVjE2NSBBUyB2YWwgPiAwLCBWMTY2IEFTIHZhbCA+IDAsIFYxNjcgQVMgdmFsID4g MCwgVjE2OCBBUyB2YWwgPiAwLCBWMTY5IEFTIHZhbCA+IDAsIFYxNzAgQVMgdmFsID4gMCwKKyAg ICBWMTcxIEFTIHZhbCA+IDAsIFYxNzIgQVMgdmFsID4gMCwgVjE3MyBBUyB2YWwgPiAwLCBWMTc0 IEFTIHZhbCA+IDAsIFYxNzUgQVMgdmFsID4gMCwgVjE3NiBBUyB2YWwgPiAwLCBWMTc3IEFTIHZh bCA+IDAsIFYxNzggQVMgdmFsID4gMCwgVjE3OSBBUyB2YWwgPiAwLCBWMTgwIEFTIHZhbCA+IDAs CisgICAgVjE4MSBBUyB2YWwgPiAwLCBWMTgyIEFTIHZhbCA+IDAsIFYxODMgQVMgdmFsID4gMCwg VjE4NCBBUyB2YWwgPiAwLCBWMTg1IEFTIHZhbCA+IDAsIFYxODYgQVMgdmFsID4gMCwgVjE4NyBB UyB2YWwgPiAwLCBWMTg4IEFTIHZhbCA+IDAsIFYxODkgQVMgdmFsID4gMCwgVjE5MCBBUyB2YWwg PiAwLAorICAgIFYxOTEgQVMgdmFsID4gMCwgVjE5MiBBUyB2YWwgPiAwLCBWMTkzIEFTIHZhbCA+ IDAsIFYxOTQgQVMgdmFsID4gMCwgVjE5NSBBUyB2YWwgPiAwLCBWMTk2IEFTIHZhbCA+IDAsIFYx OTcgQVMgdmFsID4gMCwgVjE5OCBBUyB2YWwgPiAwLCBWMTk5IEFTIHZhbCA+IDAsIFYyMDAgQVMg dmFsID4gMCwKKyAgICBWMjAxIEFTIHZhbCA+IDAsIFYyMDIgQVMgdmFsID4gMCwgVjIwMyBBUyB2 YWwgPiAwLCBWMjA0IEFTIHZhbCA+IDAsIFYyMDUgQVMgdmFsID4gMCwgVjIwNiBBUyB2YWwgPiAw LCBWMjA3IEFTIHZhbCA+IDAsIFYyMDggQVMgdmFsID4gMCwgVjIwOSBBUyB2YWwgPiAwLCBWMjEw IEFTIHZhbCA+IDAsCisgICAgVjIxMSBBUyB2YWwgPiAwLCBWMjEyIEFTIHZhbCA+IDAsIFYyMTMg QVMgdmFsID4gMCwgVjIxNCBBUyB2YWwgPiAwLCBWMjE1IEFTIHZhbCA+IDAsIFYyMTYgQVMgdmFs ID4gMCwgVjIxNyBBUyB2YWwgPiAwLCBWMjE4IEFTIHZhbCA+IDAsIFYyMTkgQVMgdmFsID4gMCwg VjIyMCBBUyB2YWwgPiAwLAorICAgIFYyMjEgQVMgdmFsID4gMCwgVjIyMiBBUyB2YWwgPiAwLCBW MjIzIEFTIHZhbCA+IDAsIFYyMjQgQVMgdmFsID4gMCwgVjIyNSBBUyB2YWwgPiAwLCBWMjI2IEFT IHZhbCA+IDAsIFYyMjcgQVMgdmFsID4gMCwgVjIyOCBBUyB2YWwgPiAwLCBWMjI5IEFTIHZhbCA+ IDAsIFYyMzAgQVMgdmFsID4gMCwKKyAgICBWMjMxIEFTIHZhbCA+IDAsIFYyMzIgQVMgdmFsID4g MCwgVjIzMyBBUyB2YWwgPiAwLCBWMjM0IEFTIHZhbCA+IDAsIFYyMzUgQVMgdmFsID4gMCwgVjIz NiBBUyB2YWwgPiAwLCBWMjM3IEFTIHZhbCA+IDAsIFYyMzggQVMgdmFsID4gMCwgVjIzOSBBUyB2 YWwgPiAwLCBWMjQwIEFTIHZhbCA+IDAsCisgICAgVjI0MSBBUyB2YWwgPiAwLCBWMjQyIEFTIHZh bCA+IDAsIFYyNDMgQVMgdmFsID4gMCwgVjI0NCBBUyB2YWwgPiAwLCBWMjQ1IEFTIHZhbCA+IDAs IFYyNDYgQVMgdmFsID4gMCwgVjI0NyBBUyB2YWwgPiAwLCBWMjQ4IEFTIHZhbCA+IDAsIFYyNDkg QVMgdmFsID4gMCwgVjI1MCBBUyB2YWwgPiAwLAorICAgIFYyNTEgQVMgdmFsID4gMAorKTsKK0VS Uk9SOiAgdG9vIG1hbnkgcGF0dGVybiB2YXJpYWJsZXMKK0RFVEFJTDogIE1heGltdW0gaXMgMjUx LgorLS0gRXhwZWN0ZWQ6IEVSUk9SIC0gdG9vIG1hbnkgcGF0dGVybiB2YXJpYWJsZXMgKE1heGlt dW0gaXMgMjUxKQorLS0gVGVzdDogUGF0dGVybiBuZXN0aW5nIGF0IG1heGltdW0gZGVwdGggKGRl cHRoIDI1MykKKy0tIE5vdGU6IDI1MyBuZXN0ZWQgR1JPVVB7Myw3fSBxdWFudGlmaWVycyBwcm9k dWNlIGRlcHRoIDI1MyBhZnRlciBvcHRpbWl6YXRpb24KK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgq KSBPVkVSIHcgRlJPTSBycHJfZXJyb3JzCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBQQVRURVJOICgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoQXszLDd9KXszLDd9KXszLDd9KXsz LDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9 KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXsz LDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9 KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXsz LDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9 KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXsz LDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9 KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXsz LDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9 KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXsz LDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9 KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXsz LDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9 KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXsz LDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9 KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXsz LDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9 KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXsz LDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9 KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXsz LDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9 KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXsz LDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9 KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXsz LDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9 KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXszLDd9KXsz LDd9KXszLDd9KXszLDd9KXszLDd9KQorICAgIERFRklORSBBIEFTIHZhbCA+IDAKKyk7CisgaWQg fCB2YWwgfCBjb3VudCAKKy0tLS0rLS0tLS0rLS0tLS0tLQorICAxIHwgIDEwIHwgICAgIDAKKyAg MiB8ICAyMCB8ICAgICAwCisoMiByb3dzKQorCistLSBFeHBlY3RlZDogU2hvdWxkIHN1Y2NlZWQK Ky0tIFRlc3Q6IFBhdHRlcm4gbmVzdGluZyBkZXB0aCBleGNlZWRzIG1heGltdW0gKGRlcHRoIDI1 NCkKKy0tIE5vdGU6IDI1NCBuZXN0ZWQgR1JPVVB7Myw3fSBxdWFudGlmaWVycyBwcm9kdWNlIGRl cHRoIDI1NCBhZnRlciBvcHRpbWl6YXRpb24KK1NFTEVDVCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVS IHcgRlJPTSBycHJfZXJyb3JzCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRU RVJOICgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKEF7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3 fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSl7 Myw3fSl7Myw3fSl7Myw3fSl7Myw3fSkKKyAgICBERUZJTkUgQSBBUyB2YWwgPiAwCispOworRVJS T1I6ICBwYXR0ZXJuIG5lc3RpbmcgdG9vIGRlZXAKK0RFVEFJTDogIFBhdHRlcm4gbmVzdGluZyBk ZXB0aCAyNTQgZXhjZWVkcyBtYXhpbXVtIDI1My4KKy0tIEV4cGVjdGVkOiBFUlJPUiAtIHBhdHRl cm4gbmVzdGluZyB0b28gZGVlcAorRFJPUCBUQUJMRSBycHJfZXJyb3JzOworLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBK YWNvYidzIFBhdHRlcm5zCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEJhc2ljIHBhdHRlcm4gbWF0Y2hpbmcgdGVzdHMg ZnJvbSBqYWNvYiBicmFuY2gKKy0tIFRlc3Q6IEE/IChvcHRpb25hbCwgZ3JlZWR5KQorU0VMRUNU IGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjCitGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBB UyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOIChBPykKKyAgICBERUZJTkUgQSBBUyB2YWwgPiA1MAorKTsKKyBpZCB8IHZhbCB8 IGMgCistLS0tKy0tLS0tKy0tLQorICAxIHwgIDEwIHwgMAorICAyIHwgIDIwIHwgMAorICAzIHwg IDMwIHwgMAorICA0IHwgIDQwIHwgMAorICA1IHwgIDUwIHwgMAorICA2IHwgIDYwIHwgMQorICA3 IHwgIDcwIHwgMQorICA4IHwgIDgwIHwgMQorICA5IHwgIDkwIHwgMQorIDEwIHwgMTAwIHwgMQor KDEwIHJvd3MpCisKKy0tIFRlc3Q6IEF7Mn0gKGV4YWN0IGNvdW50KQorU0VMRUNUIGlkLCB2YWws IGNvdW50KCopIE9WRVIgdyBBUyBjCitGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoCisgICAg T1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJO IChBezJ9KQorICAgIERFRklORSBBIEFTIHZhbCA8PSA1MAorKTsKKyBpZCB8IHZhbCB8IGMgCist LS0tKy0tLS0tKy0tLQorICAxIHwgIDEwIHwgMgorICAyIHwgIDIwIHwgMAorICAzIHwgIDMwIHwg MgorICA0IHwgIDQwIHwgMAorICA1IHwgIDUwIHwgMAorICA2IHwgIDYwIHwgMAorICA3IHwgIDcw IHwgMAorICA4IHwgIDgwIHwgMAorICA5IHwgIDkwIHwgMAorIDEwIHwgMTAwIHwgMAorKDEwIHJv d3MpCisKKy0tIFRlc3Q6IEF7MSwzfSAoYm91bmRlZCByYW5nZSwgZ3JlZWR5KQorU0VMRUNUIGlk LCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjCitGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAo CisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQ QVRURVJOIChBezEsM30pCisgICAgREVGSU5FIEEgQVMgdmFsIDw9IDUwCispOworIGlkIHwgdmFs IHwgYyAKKy0tLS0rLS0tLS0rLS0tCisgIDEgfCAgMTAgfCAzCisgIDIgfCAgMjAgfCAwCisgIDMg fCAgMzAgfCAwCisgIDQgfCAgNDAgfCAyCisgIDUgfCAgNTAgfCAwCisgIDYgfCAgNjAgfCAwCisg IDcgfCAgNzAgfCAwCisgIDggfCAgODAgfCAwCisgIDkgfCAgOTAgfCAwCisgMTAgfCAxMDAgfCAw CisoMTAgcm93cykKKworLS0gVGVzdDogQSB8IEIgKHNpbXBsZSBhbHRlcm5hdGlvbikKK1NFTEVD VCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgYworRlJPTSBycHJfcGxhbgorV0lORE9XIHcg QVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisg ICAgUEFUVEVSTiAoQSB8IEIpCisgICAgREVGSU5FIEEgQVMgdmFsIDw9IDMwLCBCIEFTIHZhbCA+ IDcwCispOworIGlkIHwgdmFsIHwgYyAKKy0tLS0rLS0tLS0rLS0tCisgIDEgfCAgMTAgfCAxCisg IDIgfCAgMjAgfCAxCisgIDMgfCAgMzAgfCAxCisgIDQgfCAgNDAgfCAwCisgIDUgfCAgNTAgfCAw CisgIDYgfCAgNjAgfCAwCisgIDcgfCAgNzAgfCAwCisgIDggfCAgODAgfCAxCisgIDkgfCAgOTAg fCAxCisgMTAgfCAxMDAgfCAxCisoMTAgcm93cykKKworLS0gVGVzdDogQSB8IEIgfCBDICh0aHJl ZS13YXkgYWx0ZXJuYXRpb24pCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGMK K0ZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgfCBCIHwgQykKKyAgICBERUZJ TkUgQSBBUyB2YWwgPD0gMjAsIEIgQVMgdmFsIEJFVFdFRU4gNDAgQU5EIDYwLCBDIEFTIHZhbCA+ IDgwCispOworIGlkIHwgdmFsIHwgYyAKKy0tLS0rLS0tLS0rLS0tCisgIDEgfCAgMTAgfCAxCisg IDIgfCAgMjAgfCAxCisgIDMgfCAgMzAgfCAwCisgIDQgfCAgNDAgfCAxCisgIDUgfCAgNTAgfCAx CisgIDYgfCAgNjAgfCAxCisgIDcgfCAgNzAgfCAwCisgIDggfCAgODAgfCAwCisgIDkgfCAgOTAg fCAxCisgMTAgfCAxMDAgfCAxCisoMTAgcm93cykKKworLS0gVGVzdDogQSBCIEMgKGNvbmNhdGVu YXRpb24pCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGMKK0ZST00gcnByX3Bs YW4KK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFT VCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQiBDKQorICAgIERFRklORSBBIEFTIHZhbCA8PSAz MCwgQiBBUyB2YWwgQkVUV0VFTiAzMSBBTkQgNjAsIEMgQVMgdmFsID4gNjAKKyk7CisgaWQgfCB2 YWwgfCBjIAorLS0tLSstLS0tLSstLS0KKyAgMSB8ICAxMCB8IDAKKyAgMiB8ICAyMCB8IDAKKyAg MyB8ICAzMCB8IDAKKyAgNCB8ICA0MCB8IDAKKyAgNSB8ICA1MCB8IDAKKyAgNiB8ICA2MCB8IDAK KyAgNyB8ICA3MCB8IDAKKyAgOCB8ICA4MCB8IDAKKyAgOSB8ICA5MCB8IDAKKyAxMCB8IDEwMCB8 IDAKKygxMCByb3dzKQorCistLSBUZXN0OiBBIEI/IEMgKG9wdGlvbmFsIG1pZGRsZSkKK1NFTEVD VCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgYworRlJPTSBycHJfcGxhbgorV0lORE9XIHcg QVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisg ICAgUEFUVEVSTiAoQSBCPyBDKQorICAgIERFRklORSBBIEFTIHZhbCA8PSAzMCwgQiBBUyB2YWwg QkVUV0VFTiAzMSBBTkQgNjAsIEMgQVMgdmFsID4gNjAKKyk7CisgaWQgfCB2YWwgfCBjIAorLS0t LSstLS0tLSstLS0KKyAgMSB8ICAxMCB8IDAKKyAgMiB8ICAyMCB8IDAKKyAgMyB8ICAzMCB8IDAK KyAgNCB8ICA0MCB8IDAKKyAgNSB8ICA1MCB8IDAKKyAgNiB8ICA2MCB8IDAKKyAgNyB8ICA3MCB8 IDAKKyAgOCB8ICA4MCB8IDAKKyAgOSB8ICA5MCB8IDAKKyAxMCB8IDEwMCB8IDAKKygxMCByb3dz KQorCistLSBUZXN0OiAoQSBCKSsgKGdyb3VwZWQgcXVhbnRpZmllcikKK1NFTEVDVCBpZCwgdmFs LCBjb3VudCgqKSBPVkVSIHcgQVMgYworRlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKAorICAg IE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVS TiAoKEEgQikrKQorICAgIERFRklORSBBIEFTIHZhbCA8PSA1MCwgQiBBUyB2YWwgPiA1MAorKTsK KyBpZCB8IHZhbCB8IGMgCistLS0tKy0tLS0tKy0tLQorICAxIHwgIDEwIHwgMAorICAyIHwgIDIw IHwgMAorICAzIHwgIDMwIHwgMAorICA0IHwgIDQwIHwgMAorICA1IHwgIDUwIHwgMgorICA2IHwg IDYwIHwgMAorICA3IHwgIDcwIHwgMAorICA4IHwgIDgwIHwgMAorICA5IHwgIDkwIHwgMAorIDEw IHwgMTAwIHwgMAorKDEwIHJvd3MpCisKKy0tIFRlc3Q6IChBIHwgQikrIEMgKGFsdGVybmF0aW9u IHdpdGggcXVhbnRpZmllcikKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgYwor RlJPTSBycHJfcGxhbgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgfCBCKSsgQykKKyAgICBERUZJ TkUgQSBBUyB2YWwgPD0gMzAsIEIgQVMgdmFsIEJFVFdFRU4gMzEgQU5EIDYwLCBDIEFTIHZhbCA+ IDgwCispOworIGlkIHwgdmFsIHwgYyAKKy0tLS0rLS0tLS0rLS0tCisgIDEgfCAgMTAgfCAwCisg IDIgfCAgMjAgfCAwCisgIDMgfCAgMzAgfCAwCisgIDQgfCAgNDAgfCAwCisgIDUgfCAgNTAgfCAw CisgIDYgfCAgNjAgfCAwCisgIDcgfCAgNzAgfCAwCisgIDggfCAgODAgfCAwCisgIDkgfCAgOTAg fCAwCisgMTAgfCAxMDAgfCAwCisoMTAgcm93cykKKworLS0gVGVzdDogKEErIHwgKEEgfCBCKSsp KiAtIG5lc3RlZCBhbHRlcm5hdGlvbiBpbnNpZGUgcXVhbnRpZmllZCBncm91cAorLS0gUHJldmlv dXNseSBjYXVzZWQgaW5maW5pdGUgcmVjdXJzaW9uIGluIG5mYV9hZHZhbmNlX2FsdCB3aGVuIHRo ZSBpbm5lcgorLS0gQkVHSU4oKykncyBza2lwIGp1bXAgd2FzIGZvbGxvd2VkIGFzIGFuIEFMVCBi cmFuY2ggcG9pbnRlci4KK1NFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcg QVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00g KFZBTFVFUworICAgICgxLCBBUlJBWVsnQScsICdCJ10pLAorICAgICgyLCBBUlJBWVsnQiddKSwK KyAgICAoMywgQVJSQVlbJ0MnXSkKKykgQVMgdChpZCwgZmxhZ3MpCitXSU5ET1cgdyBBUyAoCisg ICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRU RVJOICgoQSsgfCAoQSB8IEIpKykqKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFO WShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKyBpZCB8IGZsYWdz IHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLQorICAxIHwge0EsQn0gfCAgICAgICAgICAgMSB8ICAgICAgICAgMgorICAyIHwg e0J9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICAzIHwge0N9ICAgfCAgICAgICAgICAg ICB8ICAgICAgICAgIAorKDMgcm93cykKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBQYXRob2xvZ2ljYWwgUGF0dGVy bnMKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0gVGhlc2UgcGF0dGVybnMgcHJldmlvdXNseSBjYXVzZWQgaXNzdWVzLiBO b3cgb3B0aW1pemVkIG9yIGhhbmRsZWQgc2FmZWx5LgorLS0gVGVzdDogKEEqKSogLSBuZXN0ZWQg dW5ib3VuZGVkIChvcHRpbWl6ZWQgdG8gQSopCitTRUxFQ1QgdiwgY291bnQoKikgT1ZFUiB3IEFT IGMKK0ZST00gKFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwgNSkgdikKK1dJTkRPVyB3IEFTICgK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBJTklUSUFMCisgICAgUEFUVEVS TiAoKEEqKSopCisgICAgREVGSU5FIEEgQVMgVFJVRQorKTsKKyB2IHwgYyAKKy0tLSstLS0KKyAx IHwgNQorIDIgfCAwCisgMyB8IDAKKyA0IHwgMAorIDUgfCAwCisoNSByb3dzKQorCistLSBUZXN0 OiAoQSopKyAtIGlubmVyIG51bGxhYmxlIChvcHRpbWl6ZWQgdG8gQSopCitTRUxFQ1QgdiwgY291 bnQoKikgT1ZFUiB3IEFTIGMKK0ZST00gKFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwgNSkgdikK K1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBJTklU SUFMCisgICAgUEFUVEVSTiAoKEEqKSspCisgICAgREVGSU5FIEEgQVMgVFJVRQorKTsKKyB2IHwg YyAKKy0tLSstLS0KKyAxIHwgNQorIDIgfCAwCisgMyB8IDAKKyA0IHwgMAorIDUgfCAwCisoNSBy b3dzKQorCistLSBUZXN0OiAoQSspKiAtIG91dGVyIG51bGxhYmxlIChvcHRpbWl6ZWQgdG8gQSop CitTRUxFQ1QgdiwgY291bnQoKikgT1ZFUiB3IEFTIGMKK0ZST00gKFNFTEVDVCBnZW5lcmF0ZV9z ZXJpZXMoMSwgNSkgdikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFT VCBST1cKKyAgICBJTklUSUFMCisgICAgUEFUVEVSTiAoKEErKSopCisgICAgREVGSU5FIEEgQVMg VFJVRQorKTsKKyB2IHwgYyAKKy0tLSstLS0KKyAxIHwgNQorIDIgfCAwCisgMyB8IDAKKyA0IHwg MAorIDUgfCAwCisoNSByb3dzKQorCistLSBUZXN0OiAoQSspKyAtIGJvdGggcmVxdWlyZSBtYXRj aCAob3B0aW1pemVkIHRvIEErKQorU0VMRUNUIHYsIGNvdW50KCopIE9WRVIgdyBBUyBjCitGUk9N IChTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVzKDEsIDUpIHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgSU5JVElBTAorICAgIFBBVFRFUk4gKChBKykr KQorICAgIERFRklORSBBIEFTIFRSVUUKKyk7CisgdiB8IGMgCistLS0rLS0tCisgMSB8IDUKKyAy IHwgMAorIDMgfCAwCisgNCB8IDAKKyA1IHwgMAorKDUgcm93cykKKworLS0gVGVzdDogKCgoQSkq KSopKiAgLSB0cmlwbGUgbmVzdGVkIChvcHRpbWl6ZWQgdG8gQSopCitTRUxFQ1QgdiwgY291bnQo KikgT1ZFUiB3IEFTIGMKK0ZST00gKFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwgMykgdikKK1dJ TkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBJTklUSUFM CisgICAgUEFUVEVSTiAoKCgoQSkqKSopKikKKyAgICBERUZJTkUgQSBBUyBUUlVFCispOworIHYg fCBjIAorLS0tKy0tLQorIDEgfCAzCisgMiB8IDAKKyAzIHwgMAorKDMgcm93cykKKworLS0gT3B0 aW9uYWwgZ3JvdXAgd2l0aCBhbHRlcm5hdGlvbjogQSAoKEIgfCBDKSAoRCB8IEUpKSogRj8KKy0t IFdoZW4gb25seSBBIG1hdGNoZXMsIHRoZSAqIGdyb3VwIG1hdGNoZXMgMCB0aW1lcyBhbmQgRj8g bWF0Y2hlcyAwIHRpbWVzCitTRUxFQ1QgaWQsIHZhbCwgbWF0Y2hfbGVuCitGUk9NIChTRUxFQ1Qg aWQsIHZhbCwKKyAgICAgICAgICAgICBDT1VOVCgqKSBPVkVSIHcgQVMgbWF0Y2hfbGVuCisgICAg ICBGUk9NIChWQUxVRVMgKDEsIDEpLCAoMiwgOTkpKSBBUyB0KGlkLCB2YWwpCisgICAgICBXSU5E T1cgdyBBUyAoCisgICAgICAgICAgT1JERVIgQlkgaWQKKyAgICAgICAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICBBRlRFUiBNQVRD SCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICAgICAgICBQQVRURVJOIChBICgoQiB8IEMpIChEIHwg RSkpKiBGPykKKyAgICAgICAgICBERUZJTkUgQSBBUyB2YWwgPSAxLAorICAgICAgICAgICAgICAg ICBCIEFTIHZhbCA9IDIsIEMgQVMgdmFsID0gMywKKyAgICAgICAgICAgICAgICAgRCBBUyB2YWwg PSA0LCBFIEFTIHZhbCA9IDUsCisgICAgICAgICAgICAgICAgIEYgQVMgdmFsID0gNgorICAgICAg KQorKSBzOworIGlkIHwgdmFsIHwgbWF0Y2hfbGVuIAorLS0tLSstLS0tLSstLS0tLS0tLS0tLQor ICAxIHwgICAxIHwgICAgICAgICAxCisgIDIgfCAgOTkgfCAgICAgICAgIDAKKygyIHJvd3MpCisK K0RST1AgVEFCTEUgcnByX3BsYW47CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Jwcl9leHBsYWluLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxh aW4ub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kYzM1MjJmOTMw ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxh aW4ub3V0CkBAIC0wLDAgKzEsNDg4NSBAQAorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBSUFIgRVhQTEFJTiBUZXN0cwor LS0gVGVzdHMgZm9yIFJvdyBQYXR0ZXJuIFJlY29nbml0aW9uIEVYUExBSU4gb3V0cHV0CistLSA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tCistLSBWaWV3cyBhbmQgdGFibGVzIGluIHRoaXMgZmlsZSBhcmUgaW50ZW50aW9uYWxs eSBub3QgZHJvcHBlZCwKKy0tIHNvIHRoYXQgcGdfdXBncmFkZS9wZ19kdW1wIGNhbiB0ZXN0IFJQ UiBzeW50YXggc2VyaWFsaXphdGlvbi4KKy0tCistLSBUaGlzIHRlc3Qgc3VpdGUgdmFsaWRhdGVz IEVYUExBSU4gb3V0cHV0IGZvciBSUFIgcXVlcmllcywKKy0tIGluY2x1ZGluZyBORkEgc3RhdGlz dGljcyBzaG93biBpbiBFWFBMQUlOIEFOQUxZWkU6CistLSAgIC0gTkZBIFN0YXRlczogcGVhaywg dG90YWwsIG1lcmdlZAorLS0gICAtIE5GQSBDb250ZXh0czogcGVhaywgdG90YWwsIHBydW5lZAor LS0gICAtIE5GQTogbWF0Y2hlZCAobGVuIG1pbi9tYXgvYXZnKSwgbWlzbWF0Y2hlZCAobGVuIG1p bi9tYXgvYXZnKQorLS0gICAtIE5GQTogYWJzb3JiZWQgKGxlbiBtaW4vbWF4L2F2ZyksIHNraXBw ZWQgKGxlbiBtaW4vbWF4L2F2ZykKKy0tICAgLSBQYXR0ZXJuIGRlcGFyc2UgZm9ybWF0dGluZwor LS0gICAtIE11bHRpcGxlIG91dHB1dCBmb3JtYXRzICh0ZXh0LCBKU09OLCBYTUwpCistLQorLS0g VGVzdCBDb3ZlcmFnZToKKy0tICAgQmFzaWMgTkZBIFN0YXRpc3RpY3MgVGVzdHMKKy0tICAgU3Rh dGUgU3RhdGlzdGljcyBUZXN0cworLS0gICBDb250ZXh0IFN0YXRpc3RpY3MgVGVzdHMKKy0tICAg TWF0Y2ggTGVuZ3RoIFN0YXRpc3RpY3MgVGVzdHMKKy0tICAgTWlzbWF0Y2ggTGVuZ3RoIFN0YXRp c3RpY3MgVGVzdHMKKy0tICAgSlNPTiBGb3JtYXQgVGVzdHMKKy0tICAgWE1MIEZvcm1hdCBUZXN0 cworLS0gICBNdWx0aXBsZSBQYXJ0aXRpb25zIFRlc3RzCistLSAgIEVkZ2UgQ2FzZXMKKy0tICAg Q29tcGxleCBQYXR0ZXJuIFRlc3RzCistLSAgIFJlYWwtd29ybGQgUGF0dGVybiBFeGFtcGxlcwor LS0gICBQZXJmb3JtYW5jZS1vcmllbnRlZCBUZXN0cworLS0gICBJTklUSUFMIHZzIG5vIElOSVRJ QUwgY29tcGFyaXNvbgorLS0gICBRdWFudGlmaWVyIFZhcmlhdGlvbnMKKy0tICAgUmVncmVzc2lv biBUZXN0cyBmb3IgU3RhdGlzdGljcyBBY2N1cmFjeQorLS0gICBBbHRlcm5hdGlvbiBQYXR0ZXJu IFRlc3RzCistLSAgIEdyb3VwIFBhdHRlcm4gVGVzdHMKKy0tICAgV2luZG93IEZ1bmN0aW9uIENv bWJpbmF0aW9ucworLS0gICBERUZJTkUgRXhwcmVzc2lvbiBWYXJpYXRpb25zCistLSAgIExhcmdl IFNjYWxlIFN0YXRpc3RpY3MgVmVyaWZpY2F0aW9uCistLSAgIE5hdiBNYXJrIExvb2tiYWNrL0xv b2thaGVhZCAodHVwbGVzdG9yZSB0cmltKQorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBGaWx0ZXIgZnVuY3Rpb24gdG8g bm9ybWFsaXplIHBsYXRmb3JtLWRlcGVuZGVudCBtZW1vcnkgdmFsdWVzIChub3QgTkZBIHN0YXRp c3RpY3MpLgorLS0gTkZBIHN0YXRpc3RpY3Mgc2hvdWxkIG5vdCBjaGFuZ2UgYmV0d2VlbiBwbGF0 Zm9ybXM7IGlmIHRoZXkgZG8sIGl0IGNvdWxkCistLSBpbmRpY2F0ZSBpc3N1ZXMgc3VjaCBhcyB1 bmluaXRpYWxpemVkIG1lbW9yeSBhY2Nlc3MuCistLSBXb3JrcyBmb3IgdGV4dCwgSlNPTiwgYW5k IFhNTCBmb3JtYXRzLgorY3JlYXRlIGZ1bmN0aW9uIHJwcl9leHBsYWluX2ZpbHRlcih0ZXh0KSBy ZXR1cm5zIHNldG9mIHRleHQKK2xhbmd1YWdlIHBscGdzcWwgYXMKKyQkCitkZWNsYXJlCisgICAg bG4gdGV4dDsKK2JlZ2luCisgICAgZm9yIGxuIGluIGV4ZWN1dGUgJDEKKyAgICBsb29wCisgICAg ICAgIC0tIE5vcm1hbGl6ZSBwbGF0Zm9ybS1kZXBlbmRlbnQgbWVtb3J5IHZhbHVlcworICAgICAg ICAtLSBLZWVwIE5GQSBzdGF0aXN0aWNzIG51bWJlcnMgdW5jaGFuZ2VkICh0aGV5IGFyZSB0ZXN0 IGFzc2VydGlvbnMpCisKKyAgICAgICAgLS0gVGV4dCBmb3JtYXQ6ICJTdG9yYWdlOiBNZW1vcnkg IE1heGltdW0gU3RvcmFnZTogMThrQiIKKyAgICAgICAgaWYgbG4gfiAnU3RvcmFnZTouKk1heGlt dW0gU3RvcmFnZTonIHRoZW4KKyAgICAgICAgICAgIGxuIDo9IHJlZ2V4cF9yZXBsYWNlKGxuLCAn XG1cZCtrQicsICdOa0InLCAnZycpOworICAgICAgICBlbmQgaWY7CisKKyAgICAgICAgLS0gSlNP TiBmb3JtYXQ6ICJNYXhpbXVtIFN0b3JhZ2UiOiAxNyAobnVtYmVyIGluIGtCIHVuaXRzKQorICAg ICAgICBpZiBsbiB+ICciTWF4aW11bSBTdG9yYWdlIjonIHRoZW4KKyAgICAgICAgICAgIGxuIDo9 IHJlZ2V4cF9yZXBsYWNlKGxuLCAnIk1heGltdW0gU3RvcmFnZSI6IFxkKycsICciTWF4aW11bSBT dG9yYWdlIjogMCcsICdnJyk7CisgICAgICAgIGVuZCBpZjsKKworICAgICAgICAtLSBYTUwgZm9y bWF0OiA8TWF4aW11bS1TdG9yYWdlPjE3PC9NYXhpbXVtLVN0b3JhZ2U+IChudW1iZXIgaW4ga0Ig dW5pdHMpCisgICAgICAgIGlmIGxuIH4gJzxNYXhpbXVtLVN0b3JhZ2U+JyB0aGVuCisgICAgICAg ICAgICBsbiA6PSByZWdleHBfcmVwbGFjZShsbiwgJzxNYXhpbXVtLVN0b3JhZ2U+XGQrPC9NYXhp bXVtLVN0b3JhZ2U+JywgJzxNYXhpbXVtLVN0b3JhZ2U+MDwvTWF4aW11bS1TdG9yYWdlPicsICdn Jyk7CisgICAgICAgIGVuZCBpZjsKKworICAgICAgICAtLSBTb3J0IE1ldGhvZCBtZW1vcnkgaXMg cGxhdGZvcm0tZGVwZW5kZW50ICgzMi1iaXQgdnMgNjQtYml0KQorICAgICAgICBpZiBsbiB+ICdT b3J0IE1ldGhvZDouKk1lbW9yeTonIHRoZW4KKyAgICAgICAgICAgIGxuIDo9IHJlZ2V4cF9yZXBs YWNlKGxuLCAnTWVtb3J5OiBcZCtrQicsICdNZW1vcnk6IE5rQicpOworICAgICAgICBlbmQgaWY7 CisKKyAgICAgICAgcmV0dXJuIG5leHQgbG47CisgICAgZW5kIGxvb3A7CitlbmQ7CiskJDsKKy0t IFNldHVwOiBDcmVhdGUgdGVzdCB0YWJsZXMKK0NSRUFURSBUQUJMRSBycHJfbmZhX3Rlc3QgKAor ICAgIGlkIHNlcmlhbCwKKyAgICB2IGludCwKKyAgICBjYXQgY2hhcigxKQorKTsKKy0tIEluc2Vy dCB0ZXN0IGRhdGE6IDEwMCByb3dzIHdpdGggcHJlZGljdGFibGUgcGF0dGVybgorSU5TRVJUIElO VE8gcnByX25mYV90ZXN0ICh2LCBjYXQpCitTRUxFQ1QgaSwKKyAgICAgICBDQVNFCisgICAgICAg ICAgIFdIRU4gaSAlIDUgPSAxIFRIRU4gJ0EnCisgICAgICAgICAgIFdIRU4gaSAlIDUgPSAyIFRI RU4gJ0InCisgICAgICAgICAgIFdIRU4gaSAlIDUgPSAzIFRIRU4gJ0MnCisgICAgICAgICAgIFdI RU4gaSAlIDUgPSA0IFRIRU4gJ0QnCisgICAgICAgICAgIEVMU0UgJ0UnCisgICAgICAgRU5ECitG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIGk7CistLSBBZGRpdGlvbmFsIHRlc3QgdGFibGUg d2l0aCBtb3JlIGNvbXBsZXggcGF0dGVybnMKK0NSRUFURSBUQUJMRSBycHJfbmZhX2NvbXBsZXgg KAorICAgIGlkIHNlcmlhbCwKKyAgICBwcmljZSBpbnQsCisgICAgdHJlbmQgY2hhcigxKSAgLS0g VT11cCwgRD1kb3duLCBTPXN0YWJsZQorKTsKK0lOU0VSVCBJTlRPIHJwcl9uZmFfY29tcGxleCAo cHJpY2UsIHRyZW5kKQorVkFMVUVTCisgICAgKDEwMCwgJ1MnKSwgKDEwNSwgJ1UnKSwgKDExMCwg J1UnKSwgKDEwOCwgJ0QnKSwgKDExMiwgJ1UnKSwKKyAgICAoMTE1LCAnVScpLCAoMTEzLCAnRCcp LCAoMTExLCAnRCcpLCAoMTA5LCAnRCcpLCAoMTEwLCAnVScpLAorICAgICgxMjAsICdVJyksICgx MjUsICdVJyksICgxMzAsICdVJyksICgxMjgsICdEJyksICgxMjYsICdEJyksCisgICAgKDEyNCwg J0QnKSwgKDEyMiwgJ0QnKSwgKDEyMCwgJ0QnKSwgKDExOCwgJ0QnKSwgKDExOSwgJ1UnKSwKKyAg ICAoMTIxLCAnVScpLCAoMTIzLCAnVScpLCAoMTI1LCAnVScpLCAoMTI3LCAnVScpLCAoMTI5LCAn VScpLAorICAgICgxMzEsICdVJyksICgxMzMsICdVJyksICgxMzAsICdEJyksICgxMjcsICdEJyks ICgxMjQsICdEJyk7CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tIEJhc2ljIE5GQSBTdGF0aXN0aWNzIFRlc3RzCistLSA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tIFNpbXBsZSBwYXR0ZXJuIC0gc2hvdWxkIHNob3cgYmFzaWMgc3RhdGlzdGljcworQ1JF QVRFIFZJRVcgcnByX2V2X2Jhc2ljX3NpbXBsZSBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdwor RlJPTSBycHJfbmZhX3Rlc3QKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1Qg TEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIpCisgICAgREVGSU5FIEEgQVMgY2F0ID0gJ0EnLCBC IEFTIGNhdCA9ICdCJworKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2X2Jhc2ljX3NpbXBsZScpLCBFJ1xuJykpIEFTIGxpbmUg V0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICBsaW5lICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tCisgICBQQVRURVJOIChhIGIpIAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5f ZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlO RyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBycHJfbmZh X3Rlc3QKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOIChBIEIpCisgICAgREVGSU5FIEEgQVMgY2F0ID0gJydBJycsIEIgQVMgY2F0ID0g JydCJycKKyknKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRlciAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cgKGFjdHVhbCBy b3dzPTEwMC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhIGIKKyAgIE5hdiBN YXJrIExvb2tiYWNrOiAwCisgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtC CisgICBORkEgU3RhdGVzOiAyIHBlYWssIDEwMSB0b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250 ZXh0czogMiBwZWFrLCAxMDEgdG90YWwsIDYwIHBydW5lZAorICAgTkZBOiAyMCBtYXRjaGVkIChs ZW4gMi8yLzIuMCksIDAgbWlzbWF0Y2hlZAorICAgTkZBOiAwIGFic29yYmVkLCAyMCBza2lwcGVk IChsZW4gMS8xLzEuMCkKKyAgIC0+ICBTZXEgU2NhbiBvbiBycHJfbmZhX3Rlc3QgKGFjdHVhbCBy b3dzPTEwMC4wMCBsb29wcz0xKQorKDEwIHJvd3MpCisKKy0tIFBhdHRlcm4gd2l0aCBubyBtYXRj aGVzIC0gMCBtYXRjaGVkCitDUkVBVEUgVklFVyBycHJfZXZfYmFzaWNfbm9tYXRjaCBBUworU0VM RUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBycHJfbmZhX3Rlc3QKK1dJTkRPVyB3IEFTICgKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBB RlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChYIFkgWikKKyAgICBE RUZJTkUgWCBBUyBjYXQgPSAnWCcsIFkgQVMgY2F0ID0gJ1knLCBaIEFTIGNhdCA9ICdaJworKTsK K1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX2V2X2Jhc2ljX25vbWF0Y2gnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CisgICAgICAgIGxpbmUgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBB VFRFUk4gKHggeSB6KSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitF WFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1N QVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gcnByX25mYV90ZXN0CitXSU5E T1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAo WCBZIFopCisgICAgREVGSU5FIFggQVMgY2F0ID0gJydYJycsIFkgQVMgY2F0ID0gJydZJycsIFog QVMgY2F0ID0gJydaJycKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFp bl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdn IChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogeCB5 IHoKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0g U3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVzOiAxIHBlYWssIDEwMSB0b3RhbCwgMCBtZXJnZWQK KyAgIE5GQSBDb250ZXh0czogMiBwZWFrLCAxMDEgdG90YWwsIDEwMCBwcnVuZWQKKyAgIE5GQTog MCBtYXRjaGVkLCAwIG1pc21hdGNoZWQKKyAgIC0+ICBTZXEgU2NhbiBvbiBycHJfbmZhX3Rlc3Qg KGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQorKDkgcm93cykKKworLS0gUGF0dGVybiBtYXRj aGluZyBldmVyeSByb3cgLSBoaWdoIG1hdGNoIGNvdW50CitDUkVBVEUgVklFVyBycHJfZXZfYmFz aWNfYWxscm93cyBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBycHJfbmZhX3Rlc3QK K1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRU RVJOIChSKQorICAgIERFRklORSBSIEFTIFRSVUUKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9iYXNpY19hbGxyb3dzJyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgbGluZSAgICAg IAorLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAocikgCisoMSByb3cpCisKK1NFTEVDVCBy cHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RT IE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitG Uk9NIHJwcl9uZmFfdGVzdAorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBM QVNUIFJPVworICAgIFBBVFRFUk4gKFIpCisgICAgREVGSU5FIFIgQVMgVFJVRQorKTsnKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29w cz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiByCisgICBOYXYgTWFyayBMb29rYmFjazogMAor ICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAgTkZBIFN0YXRlczog MiBwZWFrLCAxMDEgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDIgcGVhaywgMTAx IHRvdGFsLCAwIHBydW5lZAorICAgTkZBOiAxMDAgbWF0Y2hlZCAobGVuIDEvMS8xLjApLCAwIG1p c21hdGNoZWQKKyAgIC0+ICBTZXEgU2NhbiBvbiBycHJfbmZhX3Rlc3QgKGFjdHVhbCByb3dzPTEw MC4wMCBsb29wcz0xKQorKDkgcm93cykKKworLS0gUmVncmVzc2lvbiB0ZXN0OiBTcGFjZSBiZWZv cmUgcGFyZW50aGVzaXMgaW4gcGF0dGVybiBkZXBhcnNlCistLSBWZXJpZmllcyB0aGF0ICJBIChC IHwgQykiIGNvcnJlY3RseSBvdXRwdXRzIGFzICJhIChiIHwgYykiIHdpdGggc3BhY2UKK0NSRUFU RSBWSUVXIHJwcl9ldl9iYXNpY19kZXBhcnNlX3NwYWNlIEFTCitTRUxFQ1QgY291bnQoKikgT1ZF UiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IFBBVFRFUk4gKEEgKEIgfCBDKSkKKyAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAl IDMgPSAyLCBDIEFTIHYgJSAzID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2Jhc2ljX2RlcGFyc2Vfc3BhY2UnKSwg RSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgICAgbGluZSAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYSAoYiB8IGMp KSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFM WVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NF TEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYp CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSAoQiB8IEMpKQorICAgIERFRklORSBBIEFTIHYg JSAzID0gMSwgQiBBUyB2ICUgMyA9IDIsIEMgQVMgdiAlIDMgPSAwCispOycpOworICAgICAgICAg ICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MjAuMDAgbG9vcHM9 MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSAoYiB8IGMpCisgICBOYXYgTWFyayBMb29rYmFj azogMAorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAgTkZBIFN0 YXRlczogMyBwZWFrLCAzNSB0b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czogMiBwZWFr LCAyMSB0b3RhbCwgNiBwcnVuZWQKKyAgIE5GQTogNyBtYXRjaGVkIChsZW4gMi8yLzIuMCksIDAg bWlzbWF0Y2hlZAorICAgTkZBOiAwIGFic29yYmVkLCA3IHNraXBwZWQgKGxlbiAxLzEvMS4wKQor ICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTIw LjAwIGxvb3BzPTEpCisoMTAgcm93cykKKworLS0gUmVncmVzc2lvbiB0ZXN0OiBTZXF1ZW50aWFs IGFsdGVybmF0aW9ucyBhdCBzYW1lIGRlcHRoCistLSBWZXJpZmllcyB0aGF0ICIoKEIgfCBDKSAo RCB8IEUpKSIgY29ycmVjdGx5IG91dHB1dHMgYXMgIihiIHwgYykgKGQgfCBlKSIKKy0tIFByZXZp b3VzbHkgZmFpbGVkIGR1ZSB0byBtaXNzaW5nIHBhcmVudGhlc2VzIG9uIEFMVCBkZXB0aCBkZWNy ZWFzZQorQ1JFQVRFIFZJRVcgcnByX2V2X2Jhc2ljX2RlcGFyc2Vfc2VxYWx0IEFTCitTRUxFQ1Qg Y291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQorV0lO RE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIFBBVFRFUk4gKEEgKChCIHwgQykgKEQgfCBFKSkqKQorICAgIERFRklORSBB IEFTIHYgJSA1ID0gMSwgQiBBUyB2ICUgNSA9IDIsIEMgQVMgdiAlIDUgPSAzLCBEIEFTIHYgJSA1 ID0gNCwgRSBBUyB2ICUgNSA9IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9iYXNpY19kZXBhcnNlX3NlcWFsdCcpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAgICAgICAgIGxp bmUgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICAgUEFUVEVSTiAoYSAoKGIgfCBjKSAoZCB8IGUpKSopIAorKDEgcm93KQorCitTRUxFQ1QgcnBy X2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBP RkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJO IChBICgoQiB8IEMpIChEIHwgRSkpKikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA9IDEsIEIgQVMg diAlIDUgPSAyLCBDIEFTIHYgJSA1ID0gMywgRCBBUyB2ICUgNSA9IDQsIEUgQVMgdiAlIDUgPSAw CispOycpOworICAgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAg ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFs IHJvd3M9MzAuMDAgbG9vcHM9MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSAoKGIgfCBjKSAo ZCB8IGUpKSoKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBTdG9yYWdlOiBNZW1vcnkgIE1h eGltdW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVzOiA0IHBlYWssIDYxIHRvdGFsLCAwIG1l cmdlZAorICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDMxIHRvdGFsLCAyNCBwcnVuZWQKKyAgIE5G QTogNiBtYXRjaGVkIChsZW4gMS8xLzEuMCksIDAgbWlzbWF0Y2hlZAorICAgLT4gIEZ1bmN0aW9u IFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTMwLjAwIGxvb3BzPTEpCiso OSByb3dzKQorCistLSBSZWdyZXNzaW9uIHRlc3Q6IFF1b3RlZCBpZGVudGlmaWVycyBpbiBFWFBM QUlOIHBhdHRlcm4gZGVwYXJzZQorLS0gTWl4ZWQgY2FzZSBuYW1lcyBtdXN0IGJlIHF1b3RlZCB0 byBwcmVzZXJ2ZSByb3VuZC10cmlwIHNhZmV0eQorU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcign CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVy YXRlX3NlcmllcygxLCAxMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKCJTdGFy dCIgIlVwIispCisgICAgREVGSU5FICJTdGFydCIgQVMgVFJVRSwgIlVwIiBBUyB2ID4gUFJFVih2 KQorKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzog dyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQor ICAgUGF0dGVybjogIlN0YXJ0IiAiVXAiKworICAgTmF2IE1hcmsgTG9va2JhY2s6IDEKKyAgIC0+ ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzCisoNSByb3dzKQorCistLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tIFN0YXRlIFN0YXRpc3RpY3MgVGVzdHMgKHBlYWssIHRvdGFsLCBtZXJnZWQpCistLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tIFNpbXBsZSBxdWFudGlmaWVyIHBhdHRlcm4gLSBBKyB3aXRoIHNob3J0IG1hdGNoZXMgKG5v IG1lcmdpbmcpCitDUkVBVEUgVklFVyBycHJfZXZfc3RhdGVfc2ltcGxlX3F1YW50IEFTCitTRUxF Q1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQor V0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRF Uk4gKEErKQorICAgIERFRklORSBBIEFTIHYgJSAyID0gMQorKTsKK1NFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3N0YXRlX3NpbXBs ZV9xdWFudCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAg IGxpbmUgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYSspIAorKDEgcm93 KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZF UlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50 KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKK1dJTkRPVyB3 IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKykK KyAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQorICAgV2luZG93 OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcp CisgICBQYXR0ZXJuOiBhKyIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBTdG9yYWdlOiBN ZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVzOiAzIHBlYWssIDc2IHRv dGFsLCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDUxIHRvdGFsLCAyNSBwcnVu ZWQKKyAgIE5GQTogMjUgbWF0Y2hlZCAobGVuIDEvMS8xLjApLCAwIG1pc21hdGNoZWQKKyAgIC0+ ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz01MC4wMCBs b29wcz0xKQorKDkgcm93cykKKworLS0gQWx0ZXJuYXRpb24gcGF0dGVybiAtIG11bHRpcGxlIHN0 YXRlIGJyYW5jaGVzCitDUkVBVEUgVklFVyBycHJfZXZfc3RhdGVfYWx0IEFTCitTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9uZmFfdGVzdAorV0lORE9XIHcgQVMgKAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIHwgQiB8IEMpIChEIHwgRSkp CisgICAgREVGSU5FCisgICAgICAgIEEgQVMgY2F0ID0gJ0EnLCBCIEFTIGNhdCA9ICdCJywgQyBB UyBjYXQgPSAnQycsCisgICAgICAgIEQgQVMgY2F0ID0gJ0QnLCBFIEFTIGNhdCA9ICdFJworKTsK K1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX2V2X3N0YXRlX2FsdCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKKyAgICAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKChhIHwgYiB8IGMpIChkIHwgZSkpIAorKDEg cm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJV RkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNv dW50KCopIE9WRVIgdworRlJPTSBycHJfbmZhX3Rlc3QKK1dJTkRPVyB3IEFTICgKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBN QVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSB8IEIgfCBDKSAoRCB8IEUp KQorICAgIERFRklORQorICAgICAgICBBIEFTIGNhdCA9ICcnQScnLCBCIEFTIGNhdCA9ICcnQicn LCBDIEFTIGNhdCA9ICcnQycnLAorICAgICAgICBEIEFTIGNhdCA9ICcnRCcnLCBFIEFTIGNhdCA9 ICcnRScnCispOycpOworICAgICAgICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5fZmlsdGVy ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFs IHJvd3M9MTAwLjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhIHwgYiB8IGMp IChkIHwgZSkKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBTdG9yYWdlOiBNZW1vcnkgIE1h eGltdW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVzOiA2IHBlYWssIDUyNCB0b3RhbCwgMCBt ZXJnZWQKKyAgIE5GQSBDb250ZXh0czogMyBwZWFrLCAxMDEgdG90YWwsIDIwIHBydW5lZAorICAg TkZBOiAyMCBtYXRjaGVkIChsZW4gMi8yLzIuMCksIDQwIG1pc21hdGNoZWQgKGxlbiAyLzIvMi4w KQorICAgTkZBOiAwIGFic29yYmVkLCAyMCBza2lwcGVkIChsZW4gMS8xLzEuMCkKKyAgIC0+ICBT ZXEgU2NhbiBvbiBycHJfbmZhX3Rlc3QgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQorKDEw IHJvd3MpCisKKy0tIENvbXBsZXggcGF0dGVybiB3aXRoIGhpZ2ggc3RhdGUgY291bnQKK0NSRUFU RSBWSUVXIHJwcl9ldl9zdGF0ZV9jb21wbGV4IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKiBDKykKKyAgICBE RUZJTkUKKyAgICAgICAgQSBBUyB2ICUgMyA9IDEsCisgICAgICAgIEIgQVMgdiAlIDMgPSAyLAor ICAgICAgICBDIEFTIHYgJSAzID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3N0YXRlX2NvbXBsZXgnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgICBsaW5lICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGErIGIqIGMrKSAKKygxIHJv dykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZG RVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMgcyh2KQorV0lORE9X IHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEr IEIqIEMrKQorICAgIERFRklORQorICAgICAgICBBIEFTIHYgJSAzID0gMSwKKyAgICAgICAgQiBB UyB2ICUgMyA9IDIsCisgICAgICAgIEMgQVMgdiAlIDMgPSAwCispOycpOworICAgICAgICAgICAg ICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9 MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSsiIGIqIGMrCisgICBOYXYgTWFyayBMb29rYmFj azogMAorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAgTkZBIFN0 YXRlczogNSBwZWFrLCAyMzUgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDMgcGVh aywgMTAxIHRvdGFsLCAzNCBwcnVuZWQKKyAgIE5GQTogMzMgbWF0Y2hlZCAobGVuIDMvMy8zLjAp LCAwIG1pc21hdGNoZWQKKyAgIE5GQTogMCBhYnNvcmJlZCwgMzMgc2tpcHBlZCAobGVuIDEvMS8x LjApCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJv d3M9MTAwLjAwIGxvb3BzPTEpCisoMTAgcm93cykKKworLS0gR3JvdXBlZCBwYXR0ZXJuIHdpdGgg cXVhbnRpZmllciAtIHN0YXRlIGNvdW50IHdpdGggZ3JvdXBpbmcKK0NSRUFURSBWSUVXIHJwcl9l dl9zdGF0ZV9ncm91cF9xdWFudCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBT S0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSBCKSspCisgICAgREVGSU5FIEEgQVMg diAlIDIgPSAxLCBCIEFTIHYgJSAyID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3N0YXRlX2dyb3VwX3F1YW50Jyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgICBsaW5lICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKChhIGIpKykgCisoMSBy b3cpCisKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVG RkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA2MCkgQVMgcyh2KQorV0lORE9X IHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChB IEIpKykKKyAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCispOycpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAg ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NjAu MDAgbG9vcHM9MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogKGEnIGInKSsiCisgICBOYXYgTWFy ayBMb29rYmFjazogMAorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgor ICAgTkZBIFN0YXRlczogNCBwZWFrLCA5MSB0b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0 czogMyBwZWFrLCA2MSB0b3RhbCwgMCBwcnVuZWQKKyAgIE5GQTogMSBtYXRjaGVkIChsZW4gNjAv NjAvNjAuMCksIDAgbWlzbWF0Y2hlZAorICAgTkZBOiAyOSBhYnNvcmJlZCAobGVuIDIvMi8yLjAp LCAzMCBza2lwcGVkIChsZW4gMS8xLzEuMCkKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVy YXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz02MC4wMCBsb29wcz0xKQorKDEwIHJvd3MpCisKKy0t IFN0YXRlIGV4cGxvc2lvbiBwYXR0ZXJuIC0gbWFueSBhbHRlcm5hdGlvbnMKKy0tIFBhdHRlcm4g KEF8QikoQXxCKShBfEIpKEF8QikgY2FuIGNyZWF0ZSBtYW55IHBhcmFsbGVsIHN0YXRlcworQ1JF QVRFIFZJRVcgcnByX2V2X3N0YXRlX2V4cGxvc2lvbiBBUworU0VMRUNUIGNvdW50KCopIE9WRVIg dworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg QUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgfCBCKSAoQSB8 IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIpKQorICAg IERFRklORSBBIEFTIHYgJSAyID0gMSwgQiBBUyB2ICUgMiA9IDAKKyk7CitTRUxFQ1QgbGluZSBG Uk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9zdGF0ZV9l eHBsb3Npb24nKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoKGEg fCBiKSAoYSB8IGIpIChhIHwgYikgKGEgfCBiKSAoYSB8IGIpIChhIHwgYikgKGEgfCBiKSAoYSB8 IGIpKSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChB TkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikK K1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMg cyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAg IFBBVFRFUk4gKChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIp IChBIHwgQikgKEEgfCBCKSkKKyAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIg PSAwCispOycpOworICAgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIg ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChh Y3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogKGEgfCBi KXs4fQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11 bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDE3IHBlYWssIDk5NSB0b3RhbCwgMCBtZXJn ZWQKKyAgIE5GQSBDb250ZXh0czogOCBwZWFrLCAxMDEgdG90YWwsIDEgcHJ1bmVkCisgICBORkE6 IDEyIG1hdGNoZWQgKGxlbiA4LzgvOC4wKSwgMyBtaXNtYXRjaGVkIChsZW4gMi80LzMuMCkKKyAg IE5GQTogMCBhYnNvcmJlZCwgODQgc2tpcHBlZCAobGVuIDEvNy80LjApCisgICAtPiAgRnVuY3Rp b24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEp CisoMTAgcm93cykKKworLS0gQ29uc2VjdXRpdmUgQUxUIG1lcmdlIGZvbGxvd2VkIGJ5IGRpZmZl cmVudCBBTFQKKy0tIFRlc3RzIG1lcmdlQ29uc2VjdXRpdmVBbHRzIGZsdXNoIG9uIEFMVCBjaGFu Z2U6IChBfEIpezJ9IChDfEQpCitDUkVBVEUgVklFVyBycHJfZXZfc3RhdGVfYWx0X21lcmdlX2Fs dCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNDAp IEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgICBQQVRURVJOICgoQSB8IEIpIChBIHwgQikgKEMgfCBEKSkKKyAgICBERUZJTkUgQSBBUyB2 ICUgNCA9IDAsIEIgQVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMK Kyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldl9zdGF0ZV9hbHRfbWVyZ2VfYWx0JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk4nOworICAgICAgICAgICAgICAgICBsaW5lICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOICgoYSB8 IGIpIChhIHwgYikgKGMgfCBkKSkgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0 ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9G RiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCA0MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFT VCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIHwgQikgKEEgfCBCKSAoQyB8IEQpKQorICAgIERF RklORSBBIEFTIHYgJSA0ID0gMCwgQiBBUyB2ICUgNCA9IDEsIEMgQVMgdiAlIDQgPSAyLCBEIEFT IHYgJSA0ID0gMworKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5f ZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dB Z2cgKGFjdHVhbCByb3dzPTQwLjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChh IHwgYil7Mn0gKGMgfCBkKQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3JhZ2U6IE1l bW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDcgcGVhaywgMTgxIHRv dGFsLCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDQxIHRvdGFsLCAxMiBwcnVu ZWQKKyAgIE5GQTogOSBtYXRjaGVkIChsZW4gMy8zLzMuMCksIDEgbWlzbWF0Y2hlZCAobGVuIDIv Mi8yLjApCisgICBORkE6IDAgYWJzb3JiZWQsIDE4IHNraXBwZWQgKGxlbiAxLzIvMS41KQorICAg LT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTQwLjAw IGxvb3BzPTEpCisoMTAgcm93cykKKworLS0gQ29uc2VjdXRpdmUgQUxUIG1lcmdlIGZvbGxvd2Vk IGJ5IG5vbi1BTFQgZWxlbWVudAorLS0gVGVzdHMgbWVyZ2VDb25zZWN1dGl2ZUFsdHMgZmx1c2gg b24gbm9uLUFMVDogKEF8Qil7Mn0gYworQ1JFQVRFIFZJRVcgcnByX2V2X3N0YXRlX2FsdF9tZXJn ZV9ub25hbHQgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDQwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExB U1QgUk9XCisgICAgUEFUVEVSTiAoKEEgfCBCKSAoQSB8IEIpIEMpCisgICAgREVGSU5FIEEgQVMg diAlIDMgPSAwLCBCIEFTIHYgJSAzID0gMSwgQyBBUyB2ICUgMyA9IDIKKyk7CitTRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9zdGF0 ZV9hbHRfbWVyZ2Vfbm9uYWx0JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOworICAgICAgICAgICAgICBsaW5lICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOICgoYSB8IGIpIChhIHwgYikgYykgCisoMSByb3cp CisKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVS UyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQo KikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkgQVMgcyh2KQorV0lORE9XIHcg QVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIHwg QikgKEEgfCBCKSBDKQorICAgIERFRklORSBBIEFTIHYgJSAzID0gMCwgQiBBUyB2ICUgMyA9IDEs IEMgQVMgdiAlIDMgPSAyCispOycpOworICAgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhw bGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdp bmRvd0FnZyAoYWN0dWFsIHJvd3M9NDAuMDAgbG9vcHM9MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVy bjogKGEgfCBiKXsyfSBjCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgU3RvcmFnZTogTWVt b3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAgTkZBIFN0YXRlczogNiBwZWFrLCAxNzcgdG90 YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDMgcGVhaywgNDEgdG90YWwsIDIgcHJ1bmVk CisgICBORkE6IDEyIG1hdGNoZWQgKGxlbiAzLzMvMy4wKSwgMiBtaXNtYXRjaGVkIChsZW4gMi8y LzIuMCkKKyAgIE5GQTogMCBhYnNvcmJlZCwgMjQgc2tpcHBlZCAobGVuIDEvMi8xLjUpCisgICAt PiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NDAuMDAg bG9vcHM9MSkKKygxMCByb3dzKQorCistLSBBTFQgcHJlZml4L3N1ZmZpeCBhYnNvcmJlZCBpbnRv IEdST1VQOiAoQXxCKSAoQXxCKSsgKEF8QikgLT4gKEF8Qil7Myx9CitDUkVBVEUgVklFVyBycHJf ZXZfc3RhdGVfYWx0X2Fic29yYl9ncm91cCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwgNDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBN QVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSB8IEIpIChBIHwgQikrIChB IHwgQikpCisgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAwLCBCIEFTIHYgJSAyID0gMQorKTsKK1NF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X2V2X3N0YXRlX2FsdF9hYnNvcmJfZ3JvdXAnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CisgICAgICAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoKGEgfCBi KSAoYSB8IGIpKyAoYSB8IGIpKSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRl cignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZG LCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDQwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNU IExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgfCBCKSAoQSB8IEIpKyAoQSB8IEIpKQorICAgIERF RklORSBBIEFTIHYgJSAyID0gMCwgQiBBUyB2ICUgMiA9IDEKKyk7Jyk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93cz00MC4wMCBsb29wcz0xKQor ICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYSB8IGIpezMsfQorICAgTmF2IE1hcmsgTG9va2JhY2s6 IDAKKyAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0 ZXM6IDcgcGVhaywgMjQzIHRvdGFsLCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRzOiAzIHBlYWss IDQxIHRvdGFsLCAwIHBydW5lZAorICAgTkZBOiAxIG1hdGNoZWQgKGxlbiA0MC80MC80MC4wKSwg MCBtaXNtYXRjaGVkCisgICBORkE6IDAgYWJzb3JiZWQsIDM5IHNraXBwZWQgKGxlbiAxLzIvMS4w KQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dz PTQwLjAwIGxvb3BzPTEpCisoMTAgcm93cykKKworLS0gSGlnaCBzdGF0ZSBjb3VudCAtIGFsdGVy bmF0aW9uIHdpdGggcGx1cyBxdWFudGlmaWVyCitDUkVBVEUgVklFVyBycHJfZXZfc3RhdGVfYWx0 X3BsdXMgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDEwMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNU IFJPVworICAgIFBBVFRFUk4gKChBIHwgQiB8IEMpKyBEKQorICAgIERFRklORSBBIEFTIHYgJSA0 ID0gMSwgQiBBUyB2ICUgNCA9IDIsIEMgQVMgdiAlIDQgPSAzLCBEIEFTIHYgJSA0ID0gMAorKTsK K1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX2V2X3N0YXRlX2FsdF9wbHVzJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOworICAgICAgICAgICAgbGluZSAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgICBQQVRURVJOICgoYSB8IGIgfCBjKSsgZCkgCisoMSByb3cpCisKK1NF TEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYs IENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZF UiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFTIHModikKK1dJTkRPVyB3IEFTICgK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSB8IEIgfCBD KSsgRCkKKyAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDEsIEIgQVMgdiAlIDQgPSAyLCBDIEFTIHYg JSA0ID0gMywgRCBBUyB2ICUgNCA9IDAKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAg IHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQorICAgV2luZG93 OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcp CisgICBQYXR0ZXJuOiAoYSB8IGIgfCBjKSsgZAorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAg IFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDE2 IHBlYWssIDEwMDQgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDQgcGVhaywgMTAx IHRvdGFsLCAwIHBydW5lZAorICAgTkZBOiAyNSBtYXRjaGVkIChsZW4gNC80LzQuMCksIDAgbWlz bWF0Y2hlZAorICAgTkZBOiAwIGFic29yYmVkLCA3NSBza2lwcGVkIChsZW4gMS8zLzIuMCkKKyAg IC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0xMDAu MDAgbG9vcHM9MSkKKygxMCByb3dzKQorCistLSBFYXJseSB0ZXJtaW5hdGlvbjogZmlyc3QgQUxU IGJyYW5jaCAoQSkgcmVhY2hlcyBGSU4gaW1tZWRpYXRlbHksCistLSBwcnVuaW5nIHNlY29uZCBi cmFuY2ggKEEgQispIGJlZm9yZSBpdCBjYW4gYWNjdW11bGF0ZSBCIHJlcGV0aXRpb25zLgorQ1JF QVRFIFZJRVcgcnByX2V2X3N0YXRlX2FsdF9wcnVuZSBBUworU0VMRUNUIGNvdW50KCopIE9WRVIg dworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg QUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgfCBBIEIpKykK KyAgICBERUZJTkUgQSBBUyB2ID0gMSwgQiBBUyB2ID4gMQorKTsKK1NFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3N0YXRlX2FsdF9w cnVuZScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAg ICBsaW5lICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4g KChhIHwgYSBiKSspIAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VY UExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1B UlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg MTAwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1Qg Uk9XCisgICAgUEFUVEVSTiAoKEEgfCBBIEIpKykKKyAgICBERUZJTkUgQSBBUyB2ID0gMSwgQiBB UyB2ID4gMQorKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5fZmls dGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0Fn ZyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChh IHwgYSBiKSsKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBTdG9yYWdlOiBNZW1vcnkgIE1h eGltdW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVzOiA2IHBlYWssIDMwNiB0b3RhbCwgMCBt ZXJnZWQKKyAgIE5GQSBDb250ZXh0czogMyBwZWFrLCAxMDEgdG90YWwsIDk5IHBydW5lZAorICAg TkZBOiAxIG1hdGNoZWQgKGxlbiAxLzEvMS4wKSwgMCBtaXNtYXRjaGVkCisgICAtPiAgRnVuY3Rp b24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEp CisoOSByb3dzKQorCistLSBOZXN0ZWQgcXVhbnRpZmllcnMgY2F1c2luZyBzdGF0ZSBncm93dGgK K0NSRUFURSBWSUVXIHJwcl9ldl9zdGF0ZV9uZXN0ZWRfcXVhbnQgQVMKK1NFTEVDVCBjb3VudCgq KSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMDApIEFTIHModikKK1dJTkRPVyB3 IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoKEEg fCBCKSspKykKKyAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyCispOwor U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXZfc3RhdGVfbmVzdGVkX3F1YW50JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOworICAgICAgICAgICBsaW5lICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgICBQQVRURVJOICgoKGEgfCBiKSspKykgCisoMSByb3cpCisKK1NFTEVDVCBy cHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RT IE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDAwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZU RVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKChBIHwgQikrKSspCisg ICAgREVGSU5FIEEgQVMgdiAlIDMgPSAxLCBCIEFTIHYgJSAzID0gMgorKTsnKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93cz0xMDAwLjAw IGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhIHwgYikrCisgICBOYXYgTWFyayBM b29rYmFjazogMAorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAg TkZBIFN0YXRlczogNiBwZWFrLCA1MDA0IHRvdGFsLCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRz OiAzIHBlYWssIDEwMDEgdG90YWwsIDMzMyBwcnVuZWQKKyAgIE5GQTogMzM0IG1hdGNoZWQgKGxl biAxLzIvMi4wKSwgMCBtaXNtYXRjaGVkCisgICBORkE6IDAgYWJzb3JiZWQsIDMzMyBza2lwcGVk IChsZW4gMS8xLzEuMCkKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBz IChhY3R1YWwgcm93cz0xMDAwLjAwIGxvb3BzPTEpCisoMTAgcm93cykKKworLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBD b250ZXh0IFN0YXRpc3RpY3MgVGVzdHMgKHBlYWssIHRvdGFsLCBwcnVuZWQgKyBhYnNvcmJlZC9z a2lwcGVkKQorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLSBDb250ZXh0IGFic29ycHRpb24gd2l0aCB1bmJvdW5kZWQgcXVh bnRpZmllciBhdCBzdGFydAorQ1JFQVRFIFZJRVcgcnByX2V2X2N0eF9hYnNvcmJfdW5ib3VuZGVk IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkg QVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwor ICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUg NSA9IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldl9jdHhfYWJzb3JiX3VuYm91bmRlZCcpLCBFJ1xuJykpIEFTIGxpbmUg V0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICBsaW5lICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgIFBBVFRFUk4gKGErIGIpIAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxh aW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJ TUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBT S0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHYg JSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCispOycpOworICAgICAgICAgICAgICAgICAgICAgICAg ICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKKyAgIFdpbmRvdzog dyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQor ICAgUGF0dGVybjogYSsiIGIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBTdG9yYWdlOiBN ZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVzOiAzIHBlYWssIDkxIHRv dGFsLCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRzOiAyIHBlYWssIDUxIHRvdGFsLCAwIHBydW5l ZAorICAgTkZBOiAxMCBtYXRjaGVkIChsZW4gNS81LzUuMCksIDAgbWlzbWF0Y2hlZAorICAgTkZB OiAzMCBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCAxMCBza2lwcGVkIChsZW4gMS8xLzEuMCkKKyAg IC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz01MC4w MCBsb29wcz0xKQorKDEwIHJvd3MpCisKKy0tIE5vIGFic29ycHRpb24gLSBib3VuZGVkIHF1YW50 aWZpZXIKK0NSRUFURSBWSUVXIHJwcl9ldl9jdHhfbm9fYWJzb3JiIEFTCitTRUxFQ1QgY291bnQo KikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcg QVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEF7Miw0 fSBCKQorICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCispOworU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf ZXZfY3R4X25vX2Fic29yYicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKKyAgICAgICAgIGxpbmUgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg UEFUVEVSTiAoYXsyLDR9IGIpIAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVy KCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYs IFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwgNTApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1Qg TEFTVCBST1cKKyAgICBQQVRURVJOIChBezIsNH0gQikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA8 PiAwLCBCIEFTIHYgJSA1ID0gMAorKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcnBy X2V4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMg KFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBh dHRlcm46IGF7Miw0fSBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgU3RvcmFnZTogTWVt b3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAgTkZBIFN0YXRlczogNyBwZWFrLCAxMDEgdG90 YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDUgcGVhaywgNTEgdG90YWwsIDAgcHJ1bmVk CisgICBORkE6IDEwIG1hdGNoZWQgKGxlbiA1LzUvNS4wKSwgMCBtaXNtYXRjaGVkCisgICBORkE6 IDAgYWJzb3JiZWQsIDQwIHNraXBwZWQgKGxlbiAxLzQvMi41KQorICAgLT4gIEZ1bmN0aW9uIFNj YW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCisoMTAg cm93cykKKworLS0gQ29udGV4dHMgc2tpcHBlZCBieSBTS0lQIFBBU1QgTEFTVCBST1cKK0NSRUFU RSBWSUVXIHJwcl9ldl9jdHhfc2tpcCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCIEMpCisgICAgREVGSU5FIEEg QVMgdiAlIDEwID0gMSwgQiBBUyB2ICUgMTAgPSAyLCBDIEFTIHYgJSAxMCA9IDMKKyk7CitTRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l dl9jdHhfc2tpcCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAg ICAgICAgbGluZSAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYSBi IGMpIAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFO QUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQor U0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBz KHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAg UEFUVEVSTiAoQSBCIEMpCisgICAgREVGSU5FIEEgQVMgdiAlIDEwID0gMSwgQiBBUyB2ICUgMTAg PSAyLCBDIEFTIHYgJSAxMCA9IDMKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJw cl9leHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3 IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisg ICBQYXR0ZXJuOiBhIGIgYworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3JhZ2U6IE1l bW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDIgcGVhaywgMTAxIHRv dGFsLCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDEwMSB0b3RhbCwgODAgcHJ1 bmVkCisgICBORkE6IDEwIG1hdGNoZWQgKGxlbiAzLzMvMy4wKSwgMCBtaXNtYXRjaGVkCisgICBO RkE6IDAgYWJzb3JiZWQsIDEwIHNraXBwZWQgKGxlbiAxLzEvMS4wKQorICAgLT4gIEZ1bmN0aW9u IFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQor KDEwIHJvd3MpCisKKy0tIEhpZ2ggY29udGV4dCBhYnNvcnB0aW9uIC0gdW5ib3VuZGVkIGdyb3Vw CitDUkVBVEUgVklFVyBycHJfZXZfY3R4X2Fic29yYl9ncm91cCBBUworU0VMRUNUIGNvdW50KCop IE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCitXSU5ET1cgdyBB UyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgQikr IEMpCisgICAgREVGSU5FIEEgQVMgdiAlIDMgPSAxLCBCIEFTIHYgJSAzID0gMiwgQyBBUyB2ICUg MyA9IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldl9jdHhfYWJzb3JiX2dyb3VwJyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgICAgbGluZSAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgICBQQVRURVJOICgoYSBiKSsgYykgCisoMSByb3cpCisKK1NFTEVDVCBy cHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RT IE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSBCKSsgQykKKyAgICBE RUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyLCBDIEFTIHYgJSAzID0gMAorKTsn KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5fZmlsdGVyICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHJv d3M9MTAwLjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhJyBiJykrIiBjCisg ICBOYXYgTWFyayBMb29rYmFjazogMAorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3Jh Z2U6IE5rQgorICAgTkZBIFN0YXRlczogMyBwZWFrLCAxMzQgdG90YWwsIDAgbWVyZ2VkCisgICBO RkEgQ29udGV4dHM6IDMgcGVhaywgMTAxIHRvdGFsLCAzNCBwcnVuZWQKKyAgIE5GQTogMzMgbWF0 Y2hlZCAobGVuIDMvMy8zLjApLCAwIG1pc21hdGNoZWQKKyAgIE5GQTogMCBhYnNvcmJlZCwgMzMg c2tpcHBlZCAobGVuIDEvMS8xLjApCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9z ZXJpZXMgcyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCisoMTAgcm93cykKKworLS0gRml4 ZWQtbGVuZ3RoIGdyb3VwIGFic29ycHRpb246IChBIEIgQikrIEMKKy0tIEIgQiBtZXJnZWQgdG8g QnsyfTsgYWJzb3JiYWJsZSB3aXRoIGZpeGVkLWxlbmd0aCBjaGVjaworLS0gc3RlcF9zaXplPTMg KEEgKyBCICsgQik7IHYgJSA3IGN5Y2xlIGdpdmVzIDIgaXRlcmF0aW9ucyBwZXIgbWF0Y2gKK0NS RUFURSBWSUVXIHJwcl9ldl9jdHhfYWJzb3JiX2ZpeGVkdmFyIEFTCitTRUxFQ1QgY291bnQoKikg T1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA3MCkgQVMgcyh2KQorV0lORE9XIHcgQVMg KAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIEIgQikr IEMpCisgICAgREVGSU5FIEEgQVMgdiAlIDcgSU4gKDEsIDQpLCBCIEFTIHYgJSA3IElOICgyLCAz LCA1LCA2KSwgQyBBUyB2ICUgNyA9IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9jdHhfYWJzb3JiX2ZpeGVkdmFyJyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgICAgIGxpbmUg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoKGEgYiBi KSsgYykgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAo QU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYp CitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA3MCkgQVMg cyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAg IFBBVFRFUk4gKChBIEIgQikrIEMpCisgICAgREVGSU5FIEEgQVMgdiAlIDcgSU4gKDEsIDQpLCBC IEFTIHYgJSA3IElOICgyLCAzLCA1LCA2KSwgQyBBUyB2ICUgNyA9IDAKKyk7Jyk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93cz03MC4wMCBsb29w cz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYScgYnsyfScpKyIgYworICAgTmF2IE1hcmsg TG9va2JhY2s6IDAKKyAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAg IE5GQSBTdGF0ZXM6IDMgcGVhaywgOTEgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6 IDQgcGVhaywgNzEgdG90YWwsIDQwIHBydW5lZAorICAgTkZBOiAxMCBtYXRjaGVkIChsZW4gNy83 LzcuMCksIDAgbWlzbWF0Y2hlZAorICAgTkZBOiAxMCBhYnNvcmJlZCAobGVuIDMvMy8zLjApLCAx MCBza2lwcGVkIChsZW4gMS8xLzEuMCkKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRl X3NlcmllcyBzIChhY3R1YWwgcm93cz03MC4wMCBsb29wcz0xKQorKDEwIHJvd3MpCisKKy0tIE5l c3RlZCBmaXhlZC1sZW5ndGggZ3JvdXAgYWJzb3JwdGlvbjogKEEgKEIgQyl7Mn0gRCkrIEUKKy0t IHN0ZXBfc2l6ZSA9IDEgKyAoMSsxKSoyICsgMSA9IDY7IHYgJSAxMyBjeWNsZSBnaXZlcyAyIGl0 ZXJhdGlvbnMgKyBFCitDUkVBVEUgVklFVyBycHJfZXZfY3R4X2Fic29yYl9uZXN0ZWQgQVMKK1NF TEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDY1KSBBUyBzKHYp CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFU VEVSTiAoKEEgKEIgQyl7Mn0gRCkrIEUpCisgICAgREVGSU5FIEEgQVMgdiAlIDEzIElOICgxLCA3 KSwgQiBBUyB2ICUgMTMgSU4gKDIsIDQsIDgsIDEwKSwKKyAgICAgICAgICAgQyBBUyB2ICUgMTMg SU4gKDMsIDUsIDksIDExKSwgRCBBUyB2ICUgMTMgSU4gKDYsIDEyKSwKKyAgICAgICAgICAgRSBB UyB2ICUgMTMgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3R4X2Fic29yYl9uZXN0ZWQnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgICAgICAgIGxpbmUgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKChhIChi IGMpezJ9IGQpKyBlKSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitF WFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1N QVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDY1KSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1Qg Uk9XCisgICAgUEFUVEVSTiAoKEEgKEIgQyl7Mn0gRCkrIEUpCisgICAgREVGSU5FIEEgQVMgdiAl IDEzIElOICgxLCA3KSwgQiBBUyB2ICUgMTMgSU4gKDIsIDQsIDgsIDEwKSwKKyAgICAgICAgICAg QyBBUyB2ICUgMTMgSU4gKDMsIDUsIDksIDExKSwgRCBBUyB2ICUgMTMgSU4gKDYsIDEyKSwKKyAg ICAgICAgICAgRSBBUyB2ICUgMTMgPSAwCispOycpOworICAgICAgICAgICAgICAgICAgICAgICAg ICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NjUuMDAgbG9vcHM9MSkKKyAgIFdpbmRvdzog dyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQor ICAgUGF0dGVybjogKGEnIChiJyBjJyl7Mn0nIGQnKSsiIGUKKyAgIE5hdiBNYXJrIExvb2tiYWNr OiAwCisgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCisgICBORkEgU3Rh dGVzOiAzIHBlYWssIDc2IHRvdGFsLCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRzOiA0IHBlYWss IDY2IHRvdGFsLCA1MCBwcnVuZWQKKyAgIE5GQTogNSBtYXRjaGVkIChsZW4gMTMvMTMvMTMuMCks IDAgbWlzbWF0Y2hlZAorICAgTkZBOiA1IGFic29yYmVkIChsZW4gNi82LzYuMCksIDUgc2tpcHBl ZCAobGVuIDEvMS8xLjApCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMg cyAoYWN0dWFsIHJvd3M9NjUuMDAgbG9vcHM9MSkKKygxMCByb3dzKQorCistLSBEb3VibHkgbmVz dGVkIGZpeGVkLWxlbmd0aCBncm91cCBhYnNvcnB0aW9uOiAoQSAoKEIgQ3szfSl7Mn0gRCl7Mn0g RSkrIEYKKy0tIHN0ZXBfc2l6ZSA9IDEgKyAoKDErMykqMisxKSoyICsgMSA9IDIwOyB2ICUgNDEg Y3ljbGUgZ2l2ZXMgMiBpdGVyYXRpb25zICsgRgorQ1JFQVRFIFZJRVcgcnByX2V2X2N0eF9hYnNv cmJfZGVlcCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwgODIpIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFT VCBST1cKKyAgICBQQVRURVJOICgoQSAoKEIgQyBDIEMpezJ9IEQpezJ9IEUpKyBGKQorICAgIERF RklORSBBIEFTIHYgJSA0MSBJTiAoMSwgMjEpLAorICAgICAgICAgICBCIEFTIHYgJSA0MSBJTiAo MiwgNiwgMTEsIDE1LCAyMiwgMjYsIDMxLCAzNSksCisgICAgICAgICAgIEMgQVMgdiAlIDQxIElO ICgzLDQsNSwgNyw4LDksIDEyLDEzLDE0LCAxNiwxNywxOCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIDIzLDI0LDI1LCAyNywyOCwyOSwgMzIsMzMsMzQsIDM2LDM3LDM4KSwKKyAgICAgICAg ICAgRCBBUyB2ICUgNDEgSU4gKDEwLCAxOSwgMzAsIDM5KSwKKyAgICAgICAgICAgRSBBUyB2ICUg NDEgSU4gKDIwLCA0MCksCisgICAgICAgICAgIEYgQVMgdiAlIDQxID0gMAorKTsKK1NFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2N0 eF9hYnNvcmJfZGVlcCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsK KyAgICAgICAgICAgICAgICAgICBsaW5lICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKChhICgoYiBjIGMg Yyl7Mn0gZCl7Mn0gZSkrIGYpIAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVy KCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYs IFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwgODIpIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1Qg TEFTVCBST1cKKyAgICBQQVRURVJOICgoQSAoKEIgQyBDIEMpezJ9IEQpezJ9IEUpKyBGKQorICAg IERFRklORSBBIEFTIHYgJSA0MSBJTiAoMSwgMjEpLAorICAgICAgICAgICBCIEFTIHYgJSA0MSBJ TiAoMiwgNiwgMTEsIDE1LCAyMiwgMjYsIDMxLCAzNSksCisgICAgICAgICAgIEMgQVMgdiAlIDQx IElOICgzLDQsNSwgNyw4LDksIDEyLDEzLDE0LCAxNiwxNywxOCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIDIzLDI0LDI1LCAyNywyOCwyOSwgMzIsMzMsMzQsIDM2LDM3LDM4KSwKKyAgICAg ICAgICAgRCBBUyB2ICUgNDEgSU4gKDEwLCAxOSwgMzAsIDM5KSwKKyAgICAgICAgICAgRSBBUyB2 ICUgNDEgSU4gKDIwLCA0MCksCisgICAgICAgICAgIEYgQVMgdiAlIDQxID0gMAorKTsnKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTgyLjAw IGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhJyAoKGInIGN7M30nKXsyfScgZCcp ezJ9JyBlJykrIiBmCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgU3RvcmFnZTogTWVtb3J5 ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAgTkZBIFN0YXRlczogMyBwZWFrLCA4NyB0b3RhbCwg MCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czogNCBwZWFrLCA4MyB0b3RhbCwgNzYgcHJ1bmVkCisg ICBORkE6IDIgbWF0Y2hlZCAobGVuIDQxLzQxLzQxLjApLCAwIG1pc21hdGNoZWQKKyAgIE5GQTog MiBhYnNvcmJlZCAobGVuIDIwLzIwLzIwLjApLCAyIHNraXBwZWQgKGxlbiAxLzEvMS4wKQorICAg LT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTgyLjAw IGxvb3BzPTEpCisoMTAgcm93cykKKworLS0gMy1sZXZlbCBFTkQgY2hhaW4gYWJzb3JwdGlvbjog KChBIChCIEMpezJ9KXsyfSkrCistLSBzdGVwX3NpemUgPSAoMSArICgxKzEpKjIpICogMiA9IDEw OyB2ICUgMjEgY3ljbGUgZ2l2ZXMgMiBpdGVyYXRpb25zCistLSBFTkQgY2hhaW46IEVORChCQ3sy fSkgLT4gRU5EKEEuLnsyfSkgLT4gRU5EKCssIEFCU09SQkFCTEUpCitDUkVBVEUgVklFVyBycHJf ZXZfY3R4X2Fic29yYl9lbmRjaGFpbiBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgNDIpIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRD SCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoKEEgKEIgQyl7Mn0pezJ9KSspCisg ICAgREVGSU5FIEEgQVMgdiAlIDIxIElOICgxLCA2LCAxMSwgMTYpLAorICAgICAgICAgICBCIEFT IHYgJSAyMSBJTiAoMiwgNCwgNywgOSwgMTIsIDE0LCAxNywgMTkpLAorICAgICAgICAgICBDIEFT IHYgJSAyMSBJTiAoMywgNSwgOCwgMTAsIDEzLCAxNSwgMTgsIDIwKQorKTsKK1NFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2N0eF9h YnNvcmJfZW5kY2hhaW4nKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CisgICAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoKChhIChiIGMpezJ9KXsyfSkrKSAKKygxIHJvdykK KworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJT IE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgq KSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQyKSBBUyBzKHYpCitXSU5ET1cgdyBB UyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKChBIChC IEMpezJ9KXsyfSkrKQorICAgIERFRklORSBBIEFTIHYgJSAyMSBJTiAoMSwgNiwgMTEsIDE2KSwK KyAgICAgICAgICAgQiBBUyB2ICUgMjEgSU4gKDIsIDQsIDcsIDksIDEyLCAxNCwgMTcsIDE5KSwK KyAgICAgICAgICAgQyBBUyB2ICUgMjEgSU4gKDMsIDUsIDgsIDEwLCAxMywgMTUsIDE4LCAyMCkK Kyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwg cm93cz00Mi4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoKGEnIChiJyBjJyl7 Mn0nKXsyfScpKyIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBTdG9yYWdlOiBNZW1vcnkg IE1heGltdW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVzOiA1IHBlYWssIDQ3IHRvdGFsLCAw IG1lcmdlZAorICAgTkZBIENvbnRleHRzOiA1IHBlYWssIDQzIHRvdGFsLCAzMCBwcnVuZWQKKyAg IE5GQTogMiBtYXRjaGVkIChsZW4gMjAvMjAvMjAuMCksIDAgbWlzbWF0Y2hlZAorICAgTkZBOiAy IGFic29yYmVkIChsZW4gMTAvMTAvMTAuMCksIDggc2tpcHBlZCAobGVuIDEvNS8zLjApCisgICAt PiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NDIuMDAg bG9vcHM9MSkKKygxMCByb3dzKQorCistLSBObyBhYnNvcnB0aW9uIHdoZW4gREVGSU5FIHVzZXMg RklSU1QgKG1hdGNoX3N0YXJ0LWRlcGVuZGVudCkKKy0tIFNhbWUgcGF0dGVybiBhcyBycHJfZXZf Y3R4X2Fic29yYl91bmJvdW5kZWQgYnV0IHdpdGggRklSU1QgaW4gREVGSU5FLgorLS0gQ29tcGFy ZTogYWJzb3JiZWQgY291bnQgc2hvdWxkIGJlIDAgaGVyZSB2cyA+MCBhYm92ZS4KK0NSRUFURSBW SUVXIHJwcl9ldl9jdHhfbm9fYWJzb3JiX2ZpcnN0IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3 CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVG SU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAgQU5EIHYgPiBGSVJTVCh2KQorKTsK K1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX2V2X2N0eF9ub19hYnNvcmJfZmlyc3QnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CisgICAgICAgbGluZSAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tCisg ICBQQVRURVJOIChhKyBiKSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcign CitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBT VU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDUwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExB U1QgUk9XCisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBC IEFTIHYgJSA1ID0gMCBBTkQgdiA+IEZJUlNUKHYpCispOycpOworICAgICAgICAgICAgICAgICAg ICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKKyAgIFdp bmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HKQorICAgUGF0dGVybjogYSsgYgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIE5hdiBN YXJrIExvb2thaGVhZDogMAorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5r QgorICAgTkZBIFN0YXRlczogOSBwZWFrLCAxNTEgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29u dGV4dHM6IDUgcGVhaywgNTEgdG90YWwsIDAgcHJ1bmVkCisgICBORkE6IDEwIG1hdGNoZWQgKGxl biA1LzUvNS4wKSwgMCBtaXNtYXRjaGVkCisgICBORkE6IDAgYWJzb3JiZWQsIDQwIHNraXBwZWQg KGxlbiAxLzQvMi41KQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMg KGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCisoMTEgcm93cykKKworLS0gQWJzb3JwdGlvbiBw cmVzZXJ2ZWQgd2hlbiBERUZJTkUgdXNlcyBvbmx5IExBU1Qgd2l0aG91dCBvZmZzZXQKKy0tIExB U1QodikgaXMgbWF0Y2hfc3RhcnQtaW5kZXBlbmRlbnQgKGFsd2F5cyBjdXJyZW50cG9zKSwgc28g YWJzb3JwdGlvbgorLS0gcmVtYWlucyBhY3RpdmUuICBDb21wYXJlOiBhYnNvcmJlZCBjb3VudCBz aG91bGQgYmUgPjAsIGxpa2UgdGhlCistLSBQUkVWLW9ubHkgY2FzZSBhYm92ZS4KK0NSRUFURSBW SUVXIHJwcl9ldl9jdHhfYWJzb3JiX2xhc3QgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUg QSBBUyB2ICUgNSA8PiAwLCBCIEFTIExBU1QodikgJSA1ID0gMAorKTsKK1NFTEVDVCBsaW5lIEZS T00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2N0eF9hYnNv cmJfbGFzdCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAg ICBsaW5lICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGErIGIpIAor KDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUs IEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNU IGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKK1dJ TkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJO IChBKyBCKQorICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgTEFTVCh2KSAlIDUgPSAw CispOycpOworICAgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAg ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFs IHJvd3M9NTAuMDAgbG9vcHM9MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSsiIGIKKyAgIE5h diBNYXJrIExvb2tiYWNrOiAwCisgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTog TmtCCisgICBORkEgU3RhdGVzOiAzIHBlYWssIDkxIHRvdGFsLCAwIG1lcmdlZAorICAgTkZBIENv bnRleHRzOiAyIHBlYWssIDUxIHRvdGFsLCAwIHBydW5lZAorICAgTkZBOiAxMCBtYXRjaGVkIChs ZW4gNS81LzUuMCksIDAgbWlzbWF0Y2hlZAorICAgTkZBOiAzMCBhYnNvcmJlZCAobGVuIDEvMS8x LjApLCAxMCBza2lwcGVkIChsZW4gMS8xLzEuMCkKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdl bmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQorKDEwIHJvd3MpCisK Ky0tIE5vIGFic29ycHRpb24gd2l0aCBjb21wb3VuZCBQUkVWKEZJUlNUKCkpIChtYXRjaF9zdGFy dC1kZXBlbmRlbnQpCitDUkVBVEUgVklFVyBycHJfZXZfY3R4X25vX2Fic29yYl9jb21wb3VuZCBB UworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFT IHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUg PSAwIEFORCBQUkVWKEZJUlNUKHYpLCAxKSBJUyBOT1QgTlVMTAorKTsKK1NFTEVDVCBycHJfZXhw bGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwg VElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdl bmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENI IFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMg diAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAgQU5EIFBSRVYoRklSU1QodiksIDEpIElTIE5PVCBO VUxMCispOycpOworICAgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIg ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0 dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSsgYgorICAg TmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIE5hdiBNYXJrIExvb2thaGVhZDogLTEKKyAgIFN0b3Jh Z2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDkgcGVhaywg MTUxIHRvdGFsLCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRzOiA1IHBlYWssIDUxIHRvdGFsLCAw IHBydW5lZAorICAgTkZBOiAxMCBtYXRjaGVkIChsZW4gNC81LzQuOSksIDEgbWlzbWF0Y2hlZCAo bGVuIDUvNS81LjApCisgICBORkE6IDAgYWJzb3JiZWQsIDM5IHNraXBwZWQgKGxlbiAxLzQvMi41 KQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dz PTUwLjAwIGxvb3BzPTEpCisoMTEgcm93cykKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBNYXRjaCBMZW5ndGggU3Rh dGlzdGljcyBUZXN0cworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLSBGaXhlZCBsZW5ndGggbWF0Y2hlcyAtIGFsbCBzYW1l IGxlbmd0aAorQ1JFQVRFIFZJRVcgcnByX2V2X21sZW5fZml4ZWQgQVMKK1NFTEVDVCBjb3VudCgq KSBPVkVSIHcKK0ZST00gcnByX25mYV90ZXN0CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0gg U0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCIEMgRCBFKQorICAgIERFRklORQor ICAgICAgICBBIEFTIGNhdCA9ICdBJywgQiBBUyBjYXQgPSAnQicsIEMgQVMgY2F0ID0gJ0MnLAor ICAgICAgICBEIEFTIGNhdCA9ICdEJywgRSBBUyBjYXQgPSAnRScKKyk7CitTRUxFQ1QgbGluZSBG Uk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9tbGVuX2Zp eGVkJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgICAg IGxpbmUgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGEg YiBjIGQgZSkgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJ TiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBP RkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9uZmFfdGVzdAorV0lORE9XIHcg QVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQiBD IEQgRSkKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyBjYXQgPSAnJ0EnJywgQiBBUyBjYXQgPSAn J0InJywgQyBBUyBjYXQgPSAnJ0MnJywKKyAgICAgICAgRCBBUyBjYXQgPSAnJ0QnJywgRSBBUyBj YXQgPSAnJ0UnJworKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2Zp bHRlciAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cgKGFj dHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhIGIgYyBk IGUKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0g U3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVzOiAyIHBlYWssIDEwMSB0b3RhbCwgMCBtZXJnZWQK KyAgIE5GQSBDb250ZXh0czogMyBwZWFrLCAxMDEgdG90YWwsIDYwIHBydW5lZAorICAgTkZBOiAy MCBtYXRjaGVkIChsZW4gNS81LzUuMCksIDAgbWlzbWF0Y2hlZAorICAgTkZBOiAwIGFic29yYmVk LCAyMCBza2lwcGVkIChsZW4gMS8xLzEuMCkKKyAgIC0+ICBTZXEgU2NhbiBvbiBycHJfbmZhX3Rl c3QgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQorKDEwIHJvd3MpCisKKy0tIFZhcmlhYmxl IGxlbmd0aCBtYXRjaGVzIC0gbWluL21heC9hdmcgZGlmZmVyCitDUkVBVEUgVklFVyBycHJfZXZf bWxlbl92YXJpYWJsZSBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMTAwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQ QVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUgQSBBUyB2ICUgMTAg PD4gMCwgQiBBUyB2ICUgMTAgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfbWxlbl92YXJpYWJsZScpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICBsaW5lICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGErIGIpIAorKDEgcm93KQorCitTRUxFQ1Qg cnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NU UyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdwor RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZU RVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJ TkUgQSBBUyB2ICUgMTAgPD4gMCwgQiBBUyB2ICUgMTAgPSAwCispOycpOworICAgICAgICAgICAg ICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9 MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSsiIGIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAw CisgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVz OiAzIHBlYWssIDE5MSB0b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czogMiBwZWFrLCAx MDEgdG90YWwsIDAgcHJ1bmVkCisgICBORkE6IDEwIG1hdGNoZWQgKGxlbiAxMC8xMC8xMC4wKSwg MCBtaXNtYXRjaGVkCisgICBORkE6IDgwIGFic29yYmVkIChsZW4gMS8xLzEuMCksIDEwIHNraXBw ZWQgKGxlbiAxLzEvMS4wKQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVz IHMgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQorKDEwIHJvd3MpCisKKy0tIFZlcnkgbG9u ZyBtYXRjaGVzCitDUkVBVEUgVklFVyBycHJfZXZfbWxlbl9sb25nIEFTCitTRUxFQ1QgY291bnQo KikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMDApIEFTIHModikKK1dJTkRPVyB3 IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBC KQorICAgIERFRklORSBBIEFTIHYgPD0gMTk1LCBCIEFTIHYgPiAxOTUKKyk7CitTRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9tbGVu X2xvbmcnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAg bGluZSAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOIChhKyBiKSAKKygx IHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBC VUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBj b3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwMCkgQVMgcyh2KQorV0lO RE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4g KEErIEIpCisgICAgREVGSU5FIEEgQVMgdiA8PSAxOTUsIEIgQVMgdiA+IDE5NQorKTsnKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MjAw LjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGErIiBiCisgICBOYXYgTWFyayBM b29rYmFjazogMAorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAg TkZBIFN0YXRlczogMyBwZWFrLCAzOTYgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6 IDIgcGVhaywgMjAxIHRvdGFsLCA0IHBydW5lZAorICAgTkZBOiAxIG1hdGNoZWQgKGxlbiAxOTYv MTk2LzE5Ni4wKSwgMCBtaXNtYXRjaGVkCisgICBORkE6IDE5NCBhYnNvcmJlZCAobGVuIDEvMS8x LjApLCAxIHNraXBwZWQgKGxlbiAxLzEvMS4wKQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2Vu ZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTIwMC4wMCBsb29wcz0xKQorKDEwIHJvd3MpCisK Ky0tIFVuaWZvcm0gbWF0Y2ggbGVuZ3RoIHdpdGggbWlzbWF0Y2hlcyBmcm9tIGdhcCByb3dzICh2 JTIwID0gMTEuLjE1KQorQ1JFQVRFIFZJRVcgcnByX2V2X21sZW5fd2l0aF9taXNtYXRjaCBBUwor U0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBz KHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAg UEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAodiAlIDIwIDw+IDApIEFO RCAodiAlIDIwIDw9IDEwIE9SIHYgJSAyMCA+IDE1KSwKKyAgICAgICAgQiBBUyB2ICUgMjAgPSAw CispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3 ZGVmKCdycHJfZXZfbWxlbl93aXRoX21pc21hdGNoJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk4nOworICAgICAgIGxpbmUgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LQorICAgUEFUVEVSTiAoYSsgYikgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0 ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9G RiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCAxMDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORQorICAgICAgICBBIEFT ICh2ICUgMjAgPD4gMCkgQU5EICh2ICUgMjAgPD0gMTAgT1IgdiAlIDIwID4gMTUpLAorICAgICAg ICBCIEFTIHYgJSAyMCA9IDAKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9l eHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFT IChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQ YXR0ZXJuOiBhKyIgYgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3JhZ2U6IE1lbW9y eSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDMgcGVhaywgMTcxIHRvdGFs LCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDEwMSB0b3RhbCwgMjUgcHJ1bmVk CisgICBORkE6IDUgbWF0Y2hlZCAobGVuIDUvNS81LjApLCA1IG1pc21hdGNoZWQgKGxlbiAxMS8x MS8xMS4wKQorICAgTkZBOiA2MCBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCA1IHNraXBwZWQgKGxl biAxLzEvMS4wKQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFj dHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQorKDEwIHJvd3MpCisKKy0tID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gTWlzbWF0 Y2ggTGVuZ3RoIFN0YXRpc3RpY3MgVGVzdHMKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gUGF0dGVybiB3aXRoIGNvbXBs ZXRlIG1hdGNoIGV2ZXJ5IGN5Y2xlOiAwIG1pc21hdGNoZWQKKy0tIEEoMSwyLDMpIEIoNCw1KSBD KDYpIHJlcGVhdHMgcGVyZmVjdGx5OyBYIHJvd3MgYXJlIHBydW5lZCwgbm90IG1pc21hdGNoZWQK K0NSRUFURSBWSUVXIHJwcl9ldl9tbGVuX25vX21pc21hdGNoIEFTCitTRUxFQ1QgY291bnQoKikg T1ZFUiB3CitGUk9NICgKKyAgICBTRUxFQ1QgdiwKKyAgICAgICAgICAgQ0FTRSBXSEVOIHYgJSAx MCBJTiAoMSwyLDMpIFRIRU4gJ0EnCisgICAgICAgICAgICAgICAgV0hFTiB2ICUgMTAgSU4gKDQs NSkgVEhFTiAnQicKKyAgICAgICAgICAgICAgICBXSEVOIHYgJSAxMCA9IDYgVEhFTiAnQycKKyAg ICAgICAgICAgICAgICBFTFNFICdYJyBFTkQgQVMgY2F0CisgICAgRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwgMTAwKSBBUyBzKHYpCispIHQKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQ IFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKyBDKQorICAgIERFRklORSBBIEFTIGNh dCA9ICdBJywgQiBBUyBjYXQgPSAnQicsIEMgQVMgY2F0ID0gJ0MnCispOworU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfbWxlbl9u b19taXNtYXRjaCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAg ICAgICAgIGxpbmUgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4g KGErIGIrIGMpIAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExB SU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkg T0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSAoCisgICAgU0VMRUNUIHYsCisgICAg ICAgICAgIENBU0UgV0hFTiB2ICUgMTAgSU4gKDEsMiwzKSBUSEVOICcnQScnCisgICAgICAgICAg ICAgICAgV0hFTiB2ICUgMTAgSU4gKDQsNSkgVEhFTiAnJ0InJworICAgICAgICAgICAgICAgIFdI RU4gdiAlIDEwID0gNiBUSEVOICcnQycnCisgICAgICAgICAgICAgICAgRUxTRSAnJ1gnJyBFTkQg QVMgY2F0CisgICAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCispIHQKK1dJ TkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJO IChBKyBCKyBDKQorICAgIERFRklORSBBIEFTIGNhdCA9ICcnQScnLCBCIEFTIGNhdCA9ICcnQicn LCBDIEFTIGNhdCA9ICcnQycnCispOycpOworICAgICAgICAgICAgICAgICAgICAgICAgICBycHJf ZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgV2luZG93QWdnIChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKKyAgIFdpbmRvdzogdyBB UyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAg UGF0dGVybjogYSsiIGIrIGMKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBTdG9yYWdlOiBN ZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVzOiAzIHBlYWssIDE1MSB0 b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czogMyBwZWFrLCAxMDEgdG90YWwsIDYwIHBy dW5lZAorICAgTkZBOiAxMCBtYXRjaGVkIChsZW4gNi82LzYuMCksIDAgbWlzbWF0Y2hlZAorICAg TkZBOiAyMCBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCAxMCBza2lwcGVkIChsZW4gMS8xLzEuMCkK KyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0x MDAuMDAgbG9vcHM9MSkKKygxMCByb3dzKQorCistLSBMb25nIHBhcnRpYWwgbWF0Y2hlcyB0aGF0 IGZhaWwKK0NSRUFURSBWSUVXIHJwcl9ldl9tbGVuX2xvbmdfcGFydGlhbCBBUworU0VMRUNUIGNv dW50KCopIE9WRVIgdworRlJPTSAoCisgICAgU0VMRUNUIGkgQVMgdiwKKyAgICAgICAgICAgQ0FT RQorICAgICAgICAgICAgICAgV0hFTiBpIDw9IDIwIFRIRU4gJ0EnCisgICAgICAgICAgICAgICBX SEVOIGkgPD0gMjUgVEhFTiAnQicKKyAgICAgICAgICAgICAgIFdIRU4gaSA9IDI2IFRIRU4gJ1gn ICAtLSBicmVha3MgdGhlIHBhdHRlcm4KKyAgICAgICAgICAgICAgIFdIRU4gaSA8PSA1MCBUSEVO ICdBJworICAgICAgICAgICAgICAgV0hFTiBpIDw9IDU1IFRIRU4gJ0InCisgICAgICAgICAgICAg ICBXSEVOIGkgPSA1NiBUSEVOICdDJyAgLS0gY29tcGxldGVzIHBhdHRlcm4KKyAgICAgICAgICAg ICAgIEVMU0UgJ1knCisgICAgICAgICAgIEVORCBBUyBjYXQKKyAgICBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCA2MCkgaQorKSB0CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNU IExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSsgQisgQykKKyAgICBERUZJTkUgQSBBUyBjYXQgPSAn QScsIEIgQVMgY2F0ID0gJ0InLCBDIEFTIGNhdCA9ICdDJworKTsKK1NFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X21sZW5fbG9uZ19w YXJ0aWFsJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAg ICAgbGluZSAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYSsg YisgYykgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAo QU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYp CitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NICgKKyAgICBTRUxFQ1QgaSBBUyB2LAorICAg ICAgICAgICBDQVNFCisgICAgICAgICAgICAgICBXSEVOIGkgPD0gMjAgVEhFTiAnJ0EnJworICAg ICAgICAgICAgICAgV0hFTiBpIDw9IDI1IFRIRU4gJydCJycKKyAgICAgICAgICAgICAgIFdIRU4g aSA9IDI2IFRIRU4gJydYJycgIC0tIGJyZWFrcyB0aGUgcGF0dGVybgorICAgICAgICAgICAgICAg V0hFTiBpIDw9IDUwIFRIRU4gJydBJycKKyAgICAgICAgICAgICAgIFdIRU4gaSA8PSA1NSBUSEVO ICcnQicnCisgICAgICAgICAgICAgICBXSEVOIGkgPSA1NiBUSEVOICcnQycnICAtLSBjb21wbGV0 ZXMgcGF0dGVybgorICAgICAgICAgICAgICAgRUxTRSAnJ1knJworICAgICAgICAgICBFTkQgQVMg Y2F0CisgICAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIGkKKykgdAorV0lORE9XIHcgQVMg KAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIrIEMp CisgICAgREVGSU5FIEEgQVMgY2F0ID0gJydBJycsIEIgQVMgY2F0ID0gJydCJycsIEMgQVMgY2F0 ID0gJydDJycKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2Zp bHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdn IChhY3R1YWwgcm93cz02MC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhKyIg YisgYworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11 bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDMgcGVhaywgMTE1IHRvdGFsLCAwIG1lcmdl ZAorICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDYxIHRvdGFsLCAxNSBwcnVuZWQKKyAgIE5GQTog MSBtYXRjaGVkIChsZW4gMzAvMzAvMzAuMCksIDEgbWlzbWF0Y2hlZCAobGVuIDI2LzI2LzI2LjAp CisgICBORkE6IDQyIGFic29yYmVkIChsZW4gMS8xLzEuMCksIDEgc2tpcHBlZCAobGVuIDEvMS8x LjApCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgaSAoYWN0dWFsIHJv d3M9NjAuMDAgbG9vcHM9MSkKKygxMCByb3dzKQorCistLSA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEpTT04gRm9ybWF0IFRl c3RzCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tIEpTT04gZm9ybWF0IG91dHB1dCB3aXRoIGFsbCBzdGF0aXN0aWNzCitD UkVBVEUgVklFVyBycHJfZXZfanNvbl9iYXNpYyBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdwor RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKykKKyAgICBERUZJ TkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyCispOworU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfanNvbl9iYXNpYycp LCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAgbGluZSAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYSsgYispIAorKDEgcm93 KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZF UlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGLCBGT1JNQVQgSlNPTikK K1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBz KHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAg UEFUVEVSTiAoQSsgQispCisgICAgREVGSU5FIEEgQVMgdiAlIDMgPSAxLCBCIEFTIHYgJSAzID0g MgorKScpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAiUGxhbiI6IHsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgICJOb2RlIFR5cGUiOiAiV2luZG93QWdnIiwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICJQYXJhbGxlbCBBd2FyZSI6IGZhbHNlLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJBc3luYyBD YXBhYmxlIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgICJBY3R1YWwgUm93cyI6IDUwLjAwLCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJBY3R1YWwgTG9vcHMiOiAxLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJE aXNhYmxlZCI6IGZhbHNlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICAgICJXaW5kb3ciOiAidyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKSIsKworICAgICAgICJQYXR0ZXJuIjogImErXCIg YisiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICJOYXYgTWFyayBMb29rYmFjayI6IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgICAgICJTdG9yYWdlIjogIk1lbW9yeSIsICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJNYXhpbXVtIFN0 b3JhZ2UiOiAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICJORkEgU3RhdGVzIFBlYWsiOiAzLCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgU3RhdGVzIFRvdGFsIjogODUsICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEg U3RhdGVzIE1lcmdlZCI6IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICJORkEgQ29udGV4dHMgUGVhayI6IDMsICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgQ29udGV4dHMgVG90YWwi OiA1MSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICJORkEgQ29udGV4dHMgQWJzb3JiZWQiOiAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICJORkEgQ29udGV4dHMgU2tpcHBlZCI6IDE3LCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgQ29udGV4dHMg UHJ1bmVkIjogMTYsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgICJORkEgTWF0Y2hlZCI6IDE3LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgTWlzbWF0Y2hlZCI6IDAsICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgTWF0 Y2ggTGVuZ3RoIE1pbiI6IDIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgICJORkEgTWF0Y2ggTGVuZ3RoIE1heCI6IDIsICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgTWF0Y2ggTGVuZ3RoIEF2ZyI6 IDIuMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJO RkEgU2tpcHBlZCBMZW5ndGggTWluIjogMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICAgICJORkEgU2tpcHBlZCBMZW5ndGggTWF4IjogMSwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgU2tpcHBlZCBMZW5n dGggQXZnIjogMS4wLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICJQbGFucyI6IFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAiTm9kZSBU eXBlIjogIkZ1bmN0aW9uIFNjYW4iLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICAgICAiUGFyZW50IFJlbGF0aW9uc2hpcCI6ICJPdXRlciIsICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAiUGFyYWxsZWwgQXdhcmUiOiBmYWxz ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAi QXN5bmMgQ2FwYWJsZSI6IGZhbHNlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICAgICAiRnVuY3Rpb24gTmFtZSI6ICJnZW5lcmF0ZV9zZXJpZXMiLCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAiQWxpYXMiOiAicyIsICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICAgICAiQWN0dWFsIFJvd3MiOiA1MC4wMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICAgICAiQWN0dWFsIExvb3BzIjogMSwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAiRGlzYWJsZWQi OiBmYWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgIF0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICB9LCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAiVHJpZ2dlcnMiOiBbICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICBdICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgfSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworIF0KKygxIHJvdykKKworLS0gSlNPTiBmb3JtYXQgd2l0aCBtYXRjaCBsZW5n dGggc3RhdGlzdGljcworQ1JFQVRFIFZJRVcgcnByX2V2X2pzb25fbWF0Y2hsZW4gQVMKK1NFTEVD VCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMgcyh2KQor V0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRF Uk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDEwIDw+IDAsIEIgQVMgdiAlIDEwID0gMAor KTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2X2pzb25fbWF0Y2hsZW4nKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CisgICAgICAgbGluZSAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQ QVRURVJOIChhKyBiKSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitF WFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1N QVJZIE9GRiwgRk9STUFUIEpTT04pCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVy YXRlX3NlcmllcygxLCAxMDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBT S0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHYg JSAxMCA8PiAwLCBCIEFTIHYgJSAxMCA9IDAKKyknKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcnByX2V4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBbICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIHsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgIlBsYW4iOiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAiTm9kZSBUeXBlIjogIldpbmRvd0FnZyIs ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAiUGFy YWxsZWwgQXdhcmUiOiBmYWxzZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgICAiQXN5bmMgQ2FwYWJsZSI6IGZhbHNlLCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAiQWN0dWFsIFJvd3MiOiAxMDAu MDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAg ICAiQWN0dWFsIExvb3BzIjogMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKKyAgICAgICAiRGlzYWJsZWQiOiBmYWxzZSwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAiV2luZG93IjogIncg QVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykiLCsK KyAgICAgICAiUGF0dGVybiI6ICJhK1wiIGIiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAiTmF2IE1hcmsgTG9va2JhY2siOiAwLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAiU3RvcmFn ZSI6ICJNZW1vcnkiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKKyAgICAgICAiTWF4aW11bSBTdG9yYWdlIjogMCwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAiTkZBIFN0YXRlcyBQZWFrIjogMywg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAi TkZBIFN0YXRlcyBUb3RhbCI6IDE5MSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKKyAgICAgICAiTkZBIFN0YXRlcyBNZXJnZWQiOiAwLCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAiTkZBIENvbnRleHRzIFBl YWsiOiAyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgICAiTkZBIENvbnRleHRzIFRvdGFsIjogMTAxLCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKKyAgICAgICAiTkZBIENvbnRleHRzIEFic29yYmVkIjogODAsICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAiTkZBIENvbnRl eHRzIFNraXBwZWQiOiAxMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgICAiTkZBIENvbnRleHRzIFBydW5lZCI6IDAsICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAiTkZBIE1hdGNoZWQiOiAxMCwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAiTkZB IE1pc21hdGNoZWQiOiAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgICAiTkZBIE1hdGNoIExlbmd0aCBNaW4iOiAxMCwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAiTkZBIE1hdGNoIExlbmd0aCBN YXgiOiAxMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAg ICAiTkZBIE1hdGNoIExlbmd0aCBBdmciOiAxMC4wLCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKKyAgICAgICAiTkZBIEFic29yYmVkIExlbmd0aCBNaW4iOiAxLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAiTkZBIEFic29yYmVk IExlbmd0aCBNYXgiOiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgICAiTkZBIEFic29yYmVkIExlbmd0aCBBdmciOiAxLjAsICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAiTkZBIFNraXBwZWQgTGVuZ3RoIE1pbiI6IDEs ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAiTkZBIFNr aXBwZWQgTGVuZ3RoIE1heCI6IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKKyAgICAgICAiTkZBIFNraXBwZWQgTGVuZ3RoIEF2ZyI6IDEuMCwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAiUGxhbnMiOiBbICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAg IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKKyAgICAgICAgICAgIk5vZGUgVHlwZSI6ICJGdW5jdGlvbiBTY2FuIiwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgIlBhcmVudCBSZWxh dGlvbnNoaXAiOiAiT3V0ZXIiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgICAgICAgIlBhcmFsbGVsIEF3YXJlIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgIkFzeW5jIENhcGFibGUiOiBmYWxzZSwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgIkZ1bmN0 aW9uIE5hbWUiOiAiZ2VuZXJhdGVfc2VyaWVzIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgICAgICAgIkFsaWFzIjogInMiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgIkFjdHVhbCBSb3dzIjogMTAwLjAw LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAg IkFjdHVhbCBMb29wcyI6IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgICAgICAgIkRpc2FibGVkIjogZmFsc2UgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgIH0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAg ICBdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKKyAgICAgfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgIlRyaWdnZXJzIjogWyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyBdCisoMSByb3cpCisK Ky0tIEpTT04gZm9ybWF0IHdpdGggbWlzbWF0Y2ggc3RhdGlzdGljcworLS0gUGF0dGVybiBBIEIg QyBleHBlY3RzIDEsMiwzIGJ1dCBnZXRzIDEsMiw0IHR3aWNlIGNhdXNpbmcgbWlzbWF0Y2hlcwor Q1JFQVRFIFZJRVcgcnByX2V2X2pzb25fbWlzbWF0Y2ggQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVS IHcKK0ZST00gKFZBTFVFUyAoMSksKDIpLCg0KSwgKDEpLCgyKSwoNCksICgxKSwoMiksKDMpKSBB UyB0KHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisg ICAgUEFUVEVSTiAoQSBCIEMpCisgICAgREVGSU5FIEEgQVMgdiA9IDEsIEIgQVMgdiA9IDIsIEMg QVMgdiA9IDMKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdf Z2V0X3ZpZXdkZWYoJ3Jwcl9ldl9qc29uX21pc21hdGNoJyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgICBsaW5lICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tCisgICBQQVRURVJOIChhIGIgYykgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFp bl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElN SU5HIE9GRiwgU1VNTUFSWSBPRkYsIEZPUk1BVCBKU09OKQorU0VMRUNUIGNvdW50KCopIE9WRVIg dworRlJPTSAoVkFMVUVTICgxKSwoMiksKDQpLCAoMSksKDIpLCg0KSwgKDEpLCgyKSwoMykpIEFT IHQodikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOIChBIEIgQykKKyAgICBERUZJTkUgQSBBUyB2ID0gMSwgQiBBUyB2ID0gMiwgQyBB UyB2ID0gMworKScpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9m aWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAiUGxhbiI6IHsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgICJOb2RlIFR5cGUiOiAiV2luZG93QWdnIiwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJQYXJhbGxlbCBBd2FyZSI6IGZhbHNl LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJB c3luYyBDYXBhYmxlIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICAgICJBY3R1YWwgUm93cyI6IDkuMDAsICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJBY3R1YWwgTG9vcHMiOiAx LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICJEaXNhYmxlZCI6IGZhbHNlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgICAgICJXaW5kb3ciOiAidyBBUyAoUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKSIsKworICAgICAgICJQYXR0ZXJuIjog ImEgYiBjIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICJOYXYgTWFyayBMb29rYmFjayI6IDAsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJTdG9yYWdlIjogIk1lbW9yeSIsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJNYXhp bXVtIFN0b3JhZ2UiOiAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICJORkEgU3RhdGVzIFBlYWsiOiAyLCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgU3RhdGVzIFRvdGFsIjog MTAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICJORkEgU3RhdGVzIE1lcmdlZCI6IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICJORkEgQ29udGV4dHMgUGVhayI6IDMsICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgQ29udGV4dHMg VG90YWwiOiAxMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgICJORkEgQ29udGV4dHMgQWJzb3JiZWQiOiAwLCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgQ29udGV4dHMgU2tpcHBlZCI6IDEsICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgQ29u dGV4dHMgUHJ1bmVkIjogNSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgICJORkEgTWF0Y2hlZCI6IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgTWlzbWF0Y2hlZCI6IDIsICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJO RkEgTWF0Y2ggTGVuZ3RoIE1pbiI6IDMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICAgICJORkEgTWF0Y2ggTGVuZ3RoIE1heCI6IDMsICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgTWF0Y2ggTGVuZ3Ro IEF2ZyI6IDMuMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICJORkEgTWlzbWF0Y2ggTGVuZ3RoIE1pbiI6IDMsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgICAgICJORkEgTWlzbWF0Y2ggTGVuZ3RoIE1heCI6IDMsICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgTWlzbWF0 Y2ggTGVuZ3RoIEF2ZyI6IDMuMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICJORkEgU2tpcHBlZCBMZW5ndGggTWluIjogMSwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEgU2tpcHBlZCBMZW5ndGggTWF4Ijog MSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICJORkEg U2tpcHBlZCBMZW5ndGggQXZnIjogMS4wLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICJQbGFucyI6IFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgeyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICAgICAiTm9kZSBUeXBlIjogIlZhbHVlcyBTY2FuIiwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICAgICAiUGFyZW50IFJlbGF0aW9uc2hpcCI6ICJPdXRlciIs ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAiUGFyYWxsZWwg QXdhcmUiOiBmYWxzZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgICAgICAiQXN5bmMgQ2FwYWJsZSI6IGZhbHNlLCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAiQWxpYXMiOiAiKlZBTFVFUyoiLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAiQWN0 dWFsIFJvd3MiOiA5LjAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgICAgICAiQWN0dWFsIExvb3BzIjogMSwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAiRGlzYWJsZWQiOiBmYWxzZSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAg fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICAgIF0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICB9LCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICAiVHJpZ2dlcnMiOiBbICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgICBdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgfSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworIF0KKygxIHJvdykKKworLS0gSlNPTiBmb3JtYXQgd2l0aCBza2lwcGVkIGNvbnRleHQgc3Rh dGlzdGljcworLS0gQWx0ZXJuYXRpb24gcGF0dGVybiB3aXRoIFNLSVAgUEFTVCBMQVNUIFJPVyBj YXVzZXMgbWFueSBjb250ZXh0cyB0byBiZSBza2lwcGVkCitDUkVBVEUgVklFVyBycHJfZXZfanNv bl9za2lwIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmllcygx LCAxMDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFT VCBST1cKKyAgICBQQVRURVJOICgoQSB8IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwg QikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikpCisgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBC IEFTIHYgJSAyID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2X2pzb25fc2tpcCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsaW5lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgICBQQVRURVJOICgoYSB8IGIpIChhIHwgYikgKGEgfCBiKSAoYSB8IGIpIChh IHwgYikgKGEgfCBiKSAoYSB8IGIpIChhIHwgYikpIAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4 cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYs IFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGLCBGT1JNQVQgSlNPTikKK1NFTEVDVCBjb3VudCgqKSBP VkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMgcyh2KQorV0lORE9XIHcgQVMg KAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIHwgQikg KEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSkK KyAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCispJyk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICAgICJQbGFuIjogeyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgIk5vZGUgVHlw ZSI6ICJXaW5kb3dBZ2ciLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICAgICAgIlBhcmFsbGVsIEF3YXJlIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgIkFzeW5jIENhcGFibGUiOiBmYWxzZSwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgIkFj dHVhbCBSb3dzIjogMTAwLjAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgICAgIkFjdHVhbCBMb29wcyI6IDEsICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgIkRpc2FibGVkIjogZmFsc2Us ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAg ICAgIldpbmRvdyI6ICJ3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcpIiwrCisgICAgICAgIlBhdHRlcm4iOiAiKGEgfCBiKXs4fSIsICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgIk5hdiBNYXJrIExv b2tiYWNrIjogMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICAgICAgIlN0b3JhZ2UiOiAiTWVtb3J5IiwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgICAgIk1heGltdW0gU3RvcmFnZSI6IDAsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgIk5GQSBT dGF0ZXMgUGVhayI6IDE3LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCisgICAgICAgIk5GQSBTdGF0ZXMgVG90YWwiOiA5OTUsICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgIk5GQSBTdGF0ZXMgTWVyZ2VkIjog MCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAg Ik5GQSBDb250ZXh0cyBQZWFrIjogOCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgICAgICAgIk5GQSBDb250ZXh0cyBUb3RhbCI6IDEwMSwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgIk5GQSBDb250ZXh0cyBB YnNvcmJlZCI6IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgICAgIk5GQSBDb250ZXh0cyBTa2lwcGVkIjogODQsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICAgICAgIk5GQSBDb250ZXh0cyBQcnVuZWQiOiAxLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgIk5GQSBNYXRj aGVkIjogMTIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICAgICAgIk5GQSBNaXNtYXRjaGVkIjogMywgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgIk5GQSBNYXRjaCBMZW5ndGggTWluIjog OCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgIk5G QSBNYXRjaCBMZW5ndGggTWF4IjogOCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgICAgIk5GQSBNYXRjaCBMZW5ndGggQXZnIjogOC4wLCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgIk5GQSBNaXNtYXRjaCBMZW5n dGggTWluIjogMiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAg ICAgIk5GQSBNaXNtYXRjaCBMZW5ndGggTWF4IjogNCwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICAgICAgIk5GQSBNaXNtYXRjaCBMZW5ndGggQXZnIjogMy4wLCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgIk5GQSBTa2lwcGVk IExlbmd0aCBNaW4iOiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICAgICAgIk5GQSBTa2lwcGVkIExlbmd0aCBNYXgiOiA3LCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgICAgIk5GQSBTa2lwcGVkIExlbmd0aCBBdmciOiA0 LjAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgIlBsYW5z IjogWyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCisgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICJOb2RlIFR5cGUiOiAiRnVu Y3Rpb24gU2NhbiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAg ICAgICJQYXJlbnQgUmVsYXRpb25zaGlwIjogIk91dGVyIiwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgICAgICAgICAgICJQYXJhbGxlbCBBd2FyZSI6IGZhbHNlLCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICJBc3luYyBDYXBh YmxlIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgICAgICAgICJGdW5jdGlvbiBOYW1lIjogImdlbmVyYXRlX3NlcmllcyIsICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICJBbGlhcyI6ICJzIiwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICJBY3R1 YWwgUm93cyI6IDEwMC4wMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICAgICAgICAgICJBY3R1YWwgTG9vcHMiOiAxLCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICJEaXNhYmxlZCI6IGZhbHNlICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICB9 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgICAgXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIH0sICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAg ICJUcmlnZ2VycyI6IFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICAgIF0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICB9ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgXQorKDEgcm93KQorCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFhNTCBGb3JtYXQgVGVzdHMKKy0tID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0g WE1MIGZvcm1hdCBvdXRwdXQKK0NSRUFURSBWSUVXIHJwcl9ldl94bWxfYmFzaWMgQVMKK1NFTEVD VCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYpCitX SU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVS TiAoQSBCKQorICAgIERFRklORSBBIEFTIHYgJSAyID0gMSwgQiBBUyB2ICUgMiA9IDAKKyk7CitT RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl9ldl94bWxfYmFzaWMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CisgICAgICAgbGluZSAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYSBi KSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFM WVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRiwgRk9S TUFUIFhNTCkKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDMwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1Qg Uk9XCisgICAgUEFUVEVSTiAoQSBCKQorICAgIERFRklORSBBIEFTIHYgJSAyID0gMSwgQiBBUyB2 ICUgMiA9IDAKKyknKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFp bl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIDxleHBsYWluIHhtbG5zPSJodHRwOi8vd3d3LnBvc3RncmVzcWwub3JnLzIwMDkv ZXhwbGFpbiI+ICAgICAgICAgICAgICAgICAgICAgICsKKyAgIDxRdWVyeT4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICAgIDxQbGFuPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgIDxOb2RlLVR5cGU+V2luZG93QWdnPC9O b2RlLVR5cGU+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAg ICA8UGFyYWxsZWwtQXdhcmU+ZmFsc2U8L1BhcmFsbGVsLUF3YXJlPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICAgICAgPEFzeW5jLUNhcGFibGU+ZmFsc2U8L0FzeW5jLUNh cGFibGU+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgIDxBY3R1 YWwtUm93cz4zMC4wMDwvQWN0dWFsLVJvd3M+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKKyAgICAgICA8QWN0dWFsLUxvb3BzPjE8L0FjdHVhbC1Mb29wcz4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgPERpc2FibGVkPmZh bHNlPC9EaXNhYmxlZD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgIDxXaW5kb3c+dyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HKTwvV2luZG93PisKKyAgICAgICA8UGF0dGVybj5hIGI8L1BhdHRl cm4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgICAgPE5hdi1NYXJrLUxvb2tiYWNrPjA8L05hdi1NYXJrLUxvb2tiYWNrPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgIDxTdG9yYWdlPk1lbW9yeTwvU3RvcmFnZT4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICA8 TWF4aW11bS1TdG9yYWdlPjA8L01heGltdW0tU3RvcmFnZT4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICAgICAgPE5GQS1TdGF0ZXMtUGVhaz4yPC9ORkEtU3RhdGVzLVBl YWs+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgIDxORkEtU3Rh dGVzLVRvdGFsPjMxPC9ORkEtU3RhdGVzLVRvdGFsPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgICA8TkZBLVN0YXRlcy1NZXJnZWQ+MDwvTkZBLVN0YXRlcy1NZXJnZWQ+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgPE5GQS1Db250ZXh0cy1Q ZWFrPjI8L05GQS1Db250ZXh0cy1QZWFrPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgIDxORkEtQ29udGV4dHMtVG90YWw+MzE8L05GQS1Db250ZXh0cy1Ub3RhbD4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICA8TkZBLUNvbnRleHRzLUFic29yYmVk PjA8L05GQS1Db250ZXh0cy1BYnNvcmJlZD4gICAgICAgICAgICAgICAgICAgICAgICArCisgICAg ICAgPE5GQS1Db250ZXh0cy1Ta2lwcGVkPjE1PC9ORkEtQ29udGV4dHMtU2tpcHBlZD4gICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgIDxORkEtQ29udGV4dHMtUHJ1bmVkPjA8L05GQS1D b250ZXh0cy1QcnVuZWQ+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICA8TkZB LU1hdGNoZWQ+MTU8L05GQS1NYXRjaGVkPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgICAgICAgPE5GQS1NaXNtYXRjaGVkPjA8L05GQS1NaXNtYXRjaGVkPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgIDxORkEtTWF0Y2gt TGVuZ3RoLU1pbj4yPC9ORkEtTWF0Y2gtTGVuZ3RoLU1pbj4gICAgICAgICAgICAgICAgICAgICAg ICAgICsKKyAgICAgICA8TkZBLU1hdGNoLUxlbmd0aC1NYXg+MjwvTkZBLU1hdGNoLUxlbmd0aC1N YXg+ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgPE5GQS1NYXRjaC1MZW5ndGgt QXZnPjIuMDwvTkZBLU1hdGNoLUxlbmd0aC1Bdmc+ICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgIDxORkEtU2tpcHBlZC1MZW5ndGgtTWluPjE8L05GQS1Ta2lwcGVkLUxlbmd0aC1NaW4+ ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICA8TkZBLVNraXBwZWQtTGVuZ3RoLU1heD4x PC9ORkEtU2tpcHBlZC1MZW5ndGgtTWF4PiAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAg PE5GQS1Ta2lwcGVkLUxlbmd0aC1Bdmc+MS4wPC9ORkEtU2tpcHBlZC1MZW5ndGgtQXZnPiAgICAg ICAgICAgICAgICAgICAgKworICAgICAgIDxQbGFucz4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgIDxQbGFu PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgICAgICAgIDxOb2RlLVR5cGU+RnVuY3Rpb24gU2NhbjwvTm9kZS1UeXBl PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICA8UGFyZW50LVJl bGF0aW9uc2hpcD5PdXRlcjwvUGFyZW50LVJlbGF0aW9uc2hpcD4gICAgICAgICAgICAgICAgICAg ICsKKyAgICAgICAgICAgPFBhcmFsbGVsLUF3YXJlPmZhbHNlPC9QYXJhbGxlbC1Bd2FyZT4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgIDxBc3luYy1DYXBhYmxlPmZh bHNlPC9Bc3luYy1DYXBhYmxlPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICAgICA8RnVuY3Rpb24tTmFtZT5nZW5lcmF0ZV9zZXJpZXM8L0Z1bmN0aW9uLU5hbWU+ICAg ICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgPEFsaWFzPnM8L0FsaWFzPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAg IDxBY3R1YWwtUm93cz4zMC4wMDwvQWN0dWFsLVJvd3M+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICAgICA8QWN0dWFsLUxvb3BzPjE8L0FjdHVhbC1Mb29wcz4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgPERpc2Fi bGVkPmZhbHNlPC9EaXNhYmxlZD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCisgICAgICAgICA8L1BsYW4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgIDwvUGxhbnM+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgPC9QbGFuPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIDxUcmlnZ2Vycz4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICA8 L1RyaWdnZXJzPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKKyAgIDwvUXVlcnk+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgPC9leHBsYWluPgor KDEgcm93KQorCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tIE11bHRpcGxlIFBhcnRpdGlvbnMgVGVzdHMKKy0tID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0gU3RhdGlzdGljcyBhY3Jvc3MgbXVsdGlwbGUgcGFydGl0aW9ucworQ1JFQVRFIFZJRVcgcnBy X2V2X3BhcnRfbXVsdGkgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gKAorICAgIFNF TEVDVCBwLCB2CisgICAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMykgcCwKKyAgICAgICAgIGdl bmVyYXRlX3NlcmllcygxLCAzMCkgdgorKSB0CitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9O IEJZIHAKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBC KQorICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCispOworU0VMRUNU IGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZf cGFydF9tdWx0aScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAg ICAgICBsaW5lICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGErIGIp IAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZ WkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VM RUNUIGNvdW50KCopIE9WRVIgdworRlJPTSAoCisgICAgU0VMRUNUIHAsIHYKKyAgICBGUk9NIGdl bmVyYXRlX3NlcmllcygxLCAzKSBwLAorICAgICAgICAgZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSB2 CispIHQKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgcAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNL SVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMgdiAl IDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9 OTAuMDAgbG9vcHM9MSkKKyAgIFdpbmRvdzogdyBBUyAoUEFSVElUSU9OIEJZIHAucCBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBh KyIgYgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11 bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDMgcGVhaywgMTY1IHRvdGFsLCAwIG1lcmdl ZAorICAgTkZBIENvbnRleHRzOiAyIHBlYWssIDkzIHRvdGFsLCAwIHBydW5lZAorICAgTkZBOiAx OCBtYXRjaGVkIChsZW4gNS81LzUuMCksIDAgbWlzbWF0Y2hlZAorICAgTkZBOiA1NCBhYnNvcmJl ZCAobGVuIDEvMS8xLjApLCAxOCBza2lwcGVkIChsZW4gMS8xLzEuMCkKKyAgIC0+ICBTb3J0IChh Y3R1YWwgcm93cz05MC4wMCBsb29wcz0xKQorICAgICAgICAgU29ydCBLZXk6IHAucAorICAgICAg ICAgU29ydCBNZXRob2Q6IHF1aWNrc29ydCAgTWVtb3J5OiBOa0IKKyAgICAgICAgIC0+ICBOZXN0 ZWQgTG9vcCAoYWN0dWFsIHJvd3M9OTAuMDAgbG9vcHM9MSkKKyAgICAgICAgICAgICAgIC0+ICBG dW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBwIChhY3R1YWwgcm93cz0zLjAwIGxvb3Bz PTEpCisgICAgICAgICAgICAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMg diAoYWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MykKKygxNSByb3dzKQorCistLSBEaWZmZXJlbnQg cGF0dGVybiBiZWhhdmlvciBwZXIgcGFydGl0aW9uCitDUkVBVEUgVklFVyBycHJfZXZfcGFydF9k aWZmIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NICgKKyAgICBTRUxFQ1QKKyAgICAg ICAgQ0FTRSBXSEVOIHYgPD0gMjUgVEhFTiAxIEVMU0UgMiBFTkQgQVMgcCwKKyAgICAgICAgdiAl IDEwIEFTIHZhbAorICAgIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSB2CispIHQKK1dJTkRP VyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgcAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNU IFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMgdmFsIDwgNSwgQiBBUyB2 YWwgPj0gNQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2X3BhcnRfZGlmZicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKKyAgICAgICBsaW5lICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0K KyAgIFBBVFRFUk4gKGErIGIpIAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVy KCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYs IFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSAoCisgICAgU0VMRUNU CisgICAgICAgIENBU0UgV0hFTiB2IDw9IDI1IFRIRU4gMSBFTFNFIDIgRU5EIEFTIHAsCisgICAg ICAgIHYgJSAxMCBBUyB2YWwKKyAgICBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgdgorKSB0 CitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIHAKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHZhbCA8IDUs IEIgQVMgdmFsID49IDUKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cgKGFj dHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFBBUlRJVElPTiBCWSAo Q0FTRSBXSEVOICh2LnYgPD0gMjUpIFRIRU4gMSBFTFNFIDIgRU5EKSBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhKyIgYgorICAg TmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdl OiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDMgcGVhaywgNzcgdG90YWwsIDAgbWVyZ2VkCisgICBORkEg Q29udGV4dHM6IDIgcGVhaywgNTIgdG90YWwsIDIxIHBydW5lZAorICAgTkZBOiA1IG1hdGNoZWQg KGxlbiA1LzYvNS44KSwgMCBtaXNtYXRjaGVkCisgICBORkE6IDE5IGFic29yYmVkIChsZW4gMS8x LzEuMCksIDUgc2tpcHBlZCAobGVuIDEvMS8xLjApCisgICAtPiAgU29ydCAoYWN0dWFsIHJvd3M9 NTAuMDAgbG9vcHM9MSkKKyAgICAgICAgIFNvcnQgS2V5OiAoQ0FTRSBXSEVOICh2LnYgPD0gMjUp IFRIRU4gMSBFTFNFIDIgRU5EKQorICAgICAgICAgU29ydCBNZXRob2Q6IHF1aWNrc29ydCAgTWVt b3J5OiBOa0IKKyAgICAgICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyB2 IChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQorKDEzIHJvd3MpCisKKy0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gRWRn ZSBDYXNlcworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLSBFbXB0eSByZXN1bHQgc2V0CitDUkVBVEUgVklFVyBycHJfZXZf ZWRnZV9lbXB0eSBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwgMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBM QVNUIFJPVworICAgIFBBVFRFUk4gKEEgQikKKyAgICBERUZJTkUgQSBBUyB2ID0gMSwgQiBBUyB2 ID0gMgorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2X2VkZ2VfZW1wdHknKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CisgICAgICAgbGluZSAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLQorICAg UEFUVEVSTiAoYSBiKSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitF WFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1N QVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBS T1cKKyAgICBQQVRURVJOIChBIEIpCisgICAgREVGSU5FIEEgQVMgdiA9IDEsIEIgQVMgdiA9IDIK Kyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5fZmlsdGVyICAgICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHJv d3M9MC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhIGIKKyAgIE5hdiBNYXJr IExvb2tiYWNrOiAwCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAo YWN0dWFsIHJvd3M9MC4wMCBsb29wcz0xKQorKDUgcm93cykKKworLS0gU2luZ2xlIHJvdworQ1JF QVRFIFZJRVcgcnByX2V2X2VkZ2Vfc2luZ2xlX3JvdyBBUworU0VMRUNUIGNvdW50KCopIE9WRVIg dworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMSkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5F IEEgQVMgVFJVRQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2X2VkZ2Vfc2luZ2xlX3JvdycpLCBFJ1xuJykpIEFTIGxpbmUg V0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgIGxpbmUgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0KKyAgIFBBVFRFUk4gKGEpIAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVy KCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYs IFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwgMSkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBM QVNUIFJPVworICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgVFJVRQorKTsnKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93cz0xLjAwIGxv b3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGEKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAw CisgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVz OiAyIHBlYWssIDIgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDIgcGVhaywgMiB0 b3RhbCwgMCBwcnVuZWQKKyAgIE5GQTogMSBtYXRjaGVkIChsZW4gMS8xLzEuMCksIDAgbWlzbWF0 Y2hlZAorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCBy b3dzPTEuMDAgbG9vcHM9MSkKKyg5IHJvd3MpCisKKy0tIFBhdHRlcm4gbG9uZ2VyIHRoYW4gZGF0 YQorQ1JFQVRFIFZJRVcgcnByX2V2X2VkZ2VfcGF0dGVybl9sb25nZXIgQVMKK1NFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUpIEFTIHModikKK1dJTkRPVyB3 IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIg QyBEIEUgRiBHIEggSSBKKQorICAgIERFRklORQorICAgICAgICBBIEFTIHYgPSAxLCBCIEFTIHYg PSAyLCBDIEFTIHYgPSAzLCBEIEFTIHYgPSA0LCBFIEFTIHYgPSA1LAorICAgICAgICBGIEFTIHYg PSA2LCBHIEFTIHYgPSA3LCBIIEFTIHYgPSA4LCBJIEFTIHYgPSA5LCBKIEFTIHYgPSAxMAorKTsK K1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX2V2X2VkZ2VfcGF0dGVybl9sb25nZXInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CisgICAgICAgICAgICAgICBsaW5lICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOIChhIGIgYyBkIGUgZiBnIGgg aSBqKSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChB TkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikK K1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUpIEFTIHMo dikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQ QVRURVJOIChBIEIgQyBEIEUgRiBHIEggSSBKKQorICAgIERFRklORQorICAgICAgICBBIEFTIHYg PSAxLCBCIEFTIHYgPSAyLCBDIEFTIHYgPSAzLCBEIEFTIHYgPSA0LCBFIEFTIHYgPSA1LAorICAg ICAgICBGIEFTIHYgPSA2LCBHIEFTIHYgPSA3LCBIIEFTIHYgPSA4LCBJIEFTIHYgPSA5LCBKIEFT IHYgPSAxMAorKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0 ZXIgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChh Y3R1YWwgcm93cz01LjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGEgYiBjIGQg ZSBmIGcgaCBpIGoKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBTdG9yYWdlOiBNZW1vcnkg IE1heGltdW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVzOiAyIHBlYWssIDYgdG90YWwsIDAg bWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDMgcGVhaywgNiB0b3RhbCwgNCBwcnVuZWQKKyAgIE5G QTogMCBtYXRjaGVkLCAxIG1pc21hdGNoZWQgKGxlbiA1LzUvNS4wKQorICAgLT4gIEZ1bmN0aW9u IFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUuMDAgbG9vcHM9MSkKKyg5 IHJvd3MpCisKKy0tIEFsbCByb3dzIG1hdGNoIGFzIHNpbmdsZSBtYXRjaAorQ1JFQVRFIFZJRVcg cnByX2V2X2VkZ2Vfc2luZ2xlX21hdGNoIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9N IGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFT IFRSVUUKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldl9lZGdlX3NpbmdsZV9tYXRjaCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgIGxpbmUgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LQorICAgUEFUVEVSTiAoYSspIAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVy KCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYs IFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwgNTApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1Qg TEFTVCBST1cKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBUUlVFCispOycpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAg ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NTAu MDAgbG9vcHM9MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSsiCisgICBOYXYgTWFyayBMb29r YmFjazogMAorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAgTkZB IFN0YXRlczogMyBwZWFrLCAxMDEgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDIg cGVhaywgNTEgdG90YWwsIDAgcHJ1bmVkCisgICBORkE6IDEgbWF0Y2hlZCAobGVuIDUwLzUwLzUw LjApLCAwIG1pc21hdGNoZWQKKyAgIE5GQTogNDkgYWJzb3JiZWQgKGxlbiAxLzEvMS4wKSwgMCBz a2lwcGVkCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFs IHJvd3M9NTAuMDAgbG9vcHM9MSkKKygxMCByb3dzKQorCistLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIENvbXBsZXggUGF0 dGVybiBUZXN0cworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CistLSBOZXN0ZWQgZ3JvdXBzCitDUkVBVEUgVklFVyBycHJfZXZf Y3B4X25lc3RlZCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwgNjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1Qg TEFTVCBST1cKKyAgICBQQVRURVJOICgoKEEgQikgQykrKQorICAgIERFRklORSBBIEFTIHYgJSAz ID0gMSwgQiBBUyB2ICUgMyA9IDIsIEMgQVMgdiAlIDMgPSAwCispOworU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3B4X25lc3Rl ZCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAgICBs aW5lICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKCgo YSBiKSBjKSspIAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExB SU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkg T0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjAp IEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgICBQQVRURVJOICgoKEEgQikgQykrKQorICAgIERFRklORSBBIEFTIHYgJSAzID0gMSwgQiBB UyB2ICUgMyA9IDIsIEMgQVMgdiAlIDMgPSAwCispOycpOworICAgICAgICAgICAgICAgICAgICAg ICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NjAuMDAgbG9vcHM9MSkKKyAgIFdpbmRv dzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H KQorICAgUGF0dGVybjogKGEnIGInIGMnKSsiCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAg U3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAgTkZBIFN0YXRlczogNCBw ZWFrLCA4MSB0b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czogNCBwZWFrLCA2MSB0b3Rh bCwgMjAgcHJ1bmVkCisgICBORkE6IDEgbWF0Y2hlZCAobGVuIDYwLzYwLzYwLjApLCAwIG1pc21h dGNoZWQKKyAgIE5GQTogMTkgYWJzb3JiZWQgKGxlbiAzLzMvMy4wKSwgMjAgc2tpcHBlZCAobGVu IDEvMS8xLjApCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0 dWFsIHJvd3M9NjAuMDAgbG9vcHM9MSkKKygxMCByb3dzKQorCistLSBNdWx0aXBsZSBhbHRlcm5h dGlvbnMKK0NSRUFURSBWSUVXIHJwcl9ldl9jcHhfbXVsdGlfYWx0IEFTCitTRUxFQ1QgY291bnQo KikgT1ZFUiB3CitGUk9NIHJwcl9uZmFfdGVzdAorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENI IFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIHwgQikgKEMgfCBEIHwgRSkpCisg ICAgREVGSU5FCisgICAgICAgIEEgQVMgY2F0ID0gJ0EnLCBCIEFTIGNhdCA9ICdCJywgQyBBUyBj YXQgPSAnQycsCisgICAgICAgIEQgQVMgY2F0ID0gJ0QnLCBFIEFTIGNhdCA9ICdFJworKTsKK1NF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X2V2X2NweF9tdWx0aV9hbHQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CisgICAgICAgICAgICAgICBsaW5lICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOICgoYSB8IGIpIChjIHwgZCB8IGUpKSAKKygx IHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBC VUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBj b3VudCgqKSBPVkVSIHcKK0ZST00gcnByX25mYV90ZXN0CitXSU5ET1cgdyBBUyAoCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgfCBCKSAoQyB8IEQgfCBF KSkKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyBjYXQgPSAnJ0EnJywgQiBBUyBjYXQgPSAnJ0In JywgQyBBUyBjYXQgPSAnJ0MnJywKKyAgICAgICAgRCBBUyBjYXQgPSAnJ0QnJywgRSBBUyBjYXQg PSAnJ0UnJworKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRl ciAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cgKGFjdHVh bCByb3dzPTEwMC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYSB8IGIpIChj IHwgZCB8IGUpCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgU3RvcmFnZTogTWVtb3J5ICBN YXhpbXVtIFN0b3JhZ2U6IE5rQgorICAgTkZBIFN0YXRlczogNiBwZWFrLCA0MjMgdG90YWwsIDAg bWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDMgcGVhaywgMTAxIHRvdGFsLCA0MCBwcnVuZWQKKyAg IE5GQTogMjAgbWF0Y2hlZCAobGVuIDIvMi8yLjApLCAyMCBtaXNtYXRjaGVkIChsZW4gMi8yLzIu MCkKKyAgIE5GQTogMCBhYnNvcmJlZCwgMjAgc2tpcHBlZCAobGVuIDEvMS8xLjApCisgICAtPiAg U2VxIFNjYW4gb24gcnByX25mYV90ZXN0IChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKKygx MCByb3dzKQorCistLSBPcHRpb25hbCBlbGVtZW50cworQ1JFQVRFIFZJRVcgcnByX2V2X2NweF9v cHRpb25hbCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwgNTApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFT VCBST1cKKyAgICBQQVRURVJOIChBIEI/IEMpCisgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAxLCBC IEFTIHYgJSA0ID0gMiwgQyBBUyB2ICUgNCA9IDMKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9jcHhfb3B0aW9uYWwnKSwg RSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgIGxpbmUgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYSBiPyBjKSAKKygxIHJv dykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZG RVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCitXSU5ET1cg dyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBC PyBDKQorICAgIERFRklORSBBIEFTIHYgJSA0ID0gMSwgQiBBUyB2ICUgNCA9IDIsIEMgQVMgdiAl IDQgPSAzCispOycpOworICAgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0 ZXIgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAo YWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSBiPyBj CisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0 b3JhZ2U6IE5rQgorICAgTkZBIFN0YXRlczogMyBwZWFrLCA2NCB0b3RhbCwgMCBtZXJnZWQKKyAg IE5GQSBDb250ZXh0czogMyBwZWFrLCA1MSB0b3RhbCwgMjUgcHJ1bmVkCisgICBORkE6IDEyIG1h dGNoZWQgKGxlbiAzLzMvMy4wKSwgMSBtaXNtYXRjaGVkIChsZW4gMi8yLzIuMCkKKyAgIE5GQTog MCBhYnNvcmJlZCwgMTIgc2tpcHBlZCAobGVuIDEvMS8xLjApCisgICAtPiAgRnVuY3Rpb24gU2Nh biBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKKygxMCBy b3dzKQorCistLSBCb3VuZGVkIHF1YW50aWZpZXJzCitDUkVBVEUgVklFVyBycHJfZXZfY3B4X2Jv dW5kZWQgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDEwMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNU IFJPVworICAgIFBBVFRFUk4gKEF7Miw1fSBCKQorICAgIERFRklORSBBIEFTIHYgJSAxMCA8PiAw LCBCIEFTIHYgJSAxMCA9IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9jcHhfYm91bmRlZCcpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAgIGxpbmUgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYXsyLDV9IGIpIAorKDEgcm93KQorCitT RUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZG LCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9W RVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAo CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQXsyLDV9IEIp CisgICAgREVGSU5FIEEgQVMgdiAlIDEwIDw+IDAsIEIgQVMgdiAlIDEwID0gMAorKTsnKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MTAw LjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGF7Miw1fSBiCisgICBOYXYgTWFy ayBMb29rYmFjazogMAorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgor ICAgTkZBIFN0YXRlczogOSBwZWFrLCAzMTEgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4 dHM6IDcgcGVhaywgMTAxIHRvdGFsLCAwIHBydW5lZAorICAgTkZBOiAxMCBtYXRjaGVkIChsZW4g Ni82LzYuMCksIDQwIG1pc21hdGNoZWQgKGxlbiA2LzYvNi4wKQorICAgTkZBOiAwIGFic29yYmVk LCA1MCBza2lwcGVkIChsZW4gMS81LzMuMCkKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVy YXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKKygxMCByb3dzKQorCist LSBTdGFyIHF1YW50aWZpZXIKK0NSRUFURSBWSUVXIHJwcl9ldl9jcHhfc3RhciBBUworU0VMRUNU IGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKK1dJ TkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJO IChBIEIqIEMpCisgICAgREVGSU5FIEEgQVMgdiAlIDEwID0gMSwgQiBBUyB2ICUgMTAgSU4gKDIs Myw0LDUsNiw3LDgpLCBDIEFTIHYgJSAxMCA9IDkKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9jcHhfc3RhcicpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAgbGluZSAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOIChhIGIqIGMpIAorKDEgcm93KQor CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMg T0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCop IE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKK1dJTkRPVyB3IEFT ICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIqIEMp CisgICAgREVGSU5FIEEgQVMgdiAlIDEwID0gMSwgQiBBUyB2ICUgMTAgSU4gKDIsMyw0LDUsNiw3 LDgpLCBDIEFTIHYgJSAxMCA9IDkKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJw cl9leHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgV2luZG93QWdnIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFT IChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQ YXR0ZXJuOiBhIGIqIGMKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBTdG9yYWdlOiBNZW1v cnkgIE1heGltdW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVzOiAzIHBlYWssIDkxIHRvdGFs LCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDUxIHRvdGFsLCA0MCBwcnVuZWQK KyAgIE5GQTogNSBtYXRjaGVkIChsZW4gOS85LzkuMCksIDAgbWlzbWF0Y2hlZAorICAgTkZBOiAw IGFic29yYmVkLCA1IHNraXBwZWQgKGxlbiAxLzEvMS4wKQorICAgLT4gIEZ1bmN0aW9uIFNjYW4g b24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCisoMTAgcm93 cykKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CistLSBSZWFsLXdvcmxkIFBhdHRlcm4gRXhhbXBsZXMKKy0tID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0g U3RvY2sgcHJpY2UgcGF0dGVybiAtIFYtc2hhcGUgKGRvd24gdGhlbiB1cCkKK0NSRUFURSBWSUVX IHJwcl9ldl9yZWFsX3ZzaGFwZSBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBycHJf bmZhX2NvbXBsZXgKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBS T1cKKyAgICBQQVRURVJOIChEKyBVKykKKyAgICBERUZJTkUgRCBBUyB0cmVuZCA9ICdEJywgVSBB UyB0cmVuZCA9ICdVJworKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2X3JlYWxfdnNoYXBlJyksIEUnXG4nKSkgQVMgbGluZSBX SEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgICBsaW5lICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tCisgICBQQVRURVJOIChkKyB1KykgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhw bGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwg VElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIHJw cl9uZmFfY29tcGxleAorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNU IFJPVworICAgIFBBVFRFUk4gKEQrIFUrKQorICAgIERFRklORSBEIEFTIHRyZW5kID0gJydEJycs IFUgQVMgdHJlbmQgPSAnJ1UnJworKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9l eHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5k b3dBZ2cgKGFjdHVhbCByb3dzPTMwLjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46 IGQrIiB1KworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4 aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDQgcGVhaywgNTggdG90YWwsIDAgbWVy Z2VkCisgICBORkEgQ29udGV4dHM6IDMgcGVhaywgMzEgdG90YWwsIDMgcHJ1bmVkCisgICBORkE6 IDMgbWF0Y2hlZCAobGVuIDMvMTQvOC4wKSwgMSBtaXNtYXRjaGVkIChsZW4gMy8zLzMuMCkKKyAg IE5GQTogOSBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCAxNCBza2lwcGVkIChsZW4gMS8xLzEuMCkK KyAgIC0+ICBTZXEgU2NhbiBvbiBycHJfbmZhX2NvbXBsZXggKGFjdHVhbCByb3dzPTMwLjAwIGxv b3BzPTEpCisoMTAgcm93cykKKworLS0gU3RvY2sgcHJpY2UgcGF0dGVybiAtIHBlYWsgKHVwLCBz dGFibGUsIGRvd24pCitDUkVBVEUgVklFVyBycHJfZXZfcmVhbF9wZWFrIEFTCitTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9uZmFfY29tcGxleAorV0lORE9XIHcgQVMgKAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVS IE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKFUrIFMqIEQrKQorICAgIERF RklORSBVIEFTIHRyZW5kID0gJ1UnLCBTIEFTIHRyZW5kID0gJ1MnLCBEIEFTIHRyZW5kID0gJ0Qn CispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3 ZGVmKCdycHJfZXZfcmVhbF9wZWFrJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOworICAgICAgICAgbGluZSAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICBQQVRURVJOICh1KyBzKiBkKykgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFpbl9m aWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5H IE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9uZmFf Y29tcGxleAorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwor ICAgIFBBVFRFUk4gKFUrIFMqIEQrKQorICAgIERFRklORSBVIEFTIHRyZW5kID0gJydVJycsIFMg QVMgdHJlbmQgPSAnJ1MnJywgRCBBUyB0cmVuZCA9ICcnRCcnCispOycpOworICAgICAgICAgICAg ICAgICAgICAgICAgcnByX2V4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkKKyAgIFdp bmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HKQorICAgUGF0dGVybjogdSsiIHMqIGQrCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAg U3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAgTkZBIFN0YXRlczogNSBw ZWFrLCA3NiB0b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czogMyBwZWFrLCAzMSB0b3Rh bCwgMSBwcnVuZWQKKyAgIE5GQTogNCBtYXRjaGVkIChsZW4gMy8xMS83LjIpLCAwIG1pc21hdGNo ZWQKKyAgIE5GQTogMTIgYWJzb3JiZWQgKGxlbiAxLzEvMS4wKSwgMTMgc2tpcHBlZCAobGVuIDEv MS8xLjApCisgICAtPiAgU2VxIFNjYW4gb24gcnByX25mYV9jb21wbGV4IChhY3R1YWwgcm93cz0z MC4wMCBsb29wcz0xKQorKDEwIHJvd3MpCisKKy0tIENvbnNlY3V0aXZlIGluY3JlYXNpbmcgdmFs dWVzICh1c2luZyBQUkVWKQorQ1JFQVRFIFZJRVcgcnByX2V2X3JlYWxfaW5jcmVhc2luZyBBUwor U0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHMo dikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQ QVRURVJOIChBezMsfSkKKyAgICBERUZJTkUgQSBBUyB2ID4gUFJFVih2KSBPUiBQUkVWKHYpIElT IE5VTEwKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldl9yZWFsX2luY3JlYXNpbmcnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgIGxpbmUgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAgIFBBVFRFUk4gKGF7Myx9KSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWlu X2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1J TkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJ UCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQXszLH0pCisgICAgREVGSU5FIEEgQVMgdiA+ IFBSRVYodikgT1IgUFJFVih2KSBJUyBOVUxMCispOycpOworICAgICAgICAgICAgICAgICAgICAg ICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKKyAgIFdpbmRv dzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H KQorICAgUGF0dGVybjogYXszLH0iCisgICBOYXYgTWFyayBMb29rYmFjazogMQorICAgU3RvcmFn ZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAgTkZBIFN0YXRlczogMyBwZWFrLCA5 OSB0b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czogMiBwZWFrLCA1MSB0b3RhbCwgMCBw cnVuZWQKKyAgIE5GQTogMSBtYXRjaGVkIChsZW4gNTAvNTAvNTAuMCksIDAgbWlzbWF0Y2hlZAor ICAgTkZBOiA0OSBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCAwIHNraXBwZWQKKyAgIC0+ICBGdW5j dGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0x KQorKDEwIHJvd3MpCisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0gUGVyZm9ybWFuY2Utb3JpZW50ZWQgVGVzdHMKKy0t ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0gTGFyZ2UgZGF0YXNldCB3aXRoIHNpbXBsZSBwYXR0ZXJuCitDUkVBVEUgVklFVyBy cHJfZXZfcGVyZl9sYXJnZV9zaW1wbGUgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDEwMDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBN QVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIpCisgICAgREVGSU5FIEEg QVMgdiAlIDIgPSAxLCBCIEFTIHYgJSAyID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3BlcmZfbGFyZ2Vfc2ltcGxl JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgIGxpbmUg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGEgYikgCisoMSByb3cpCisK K1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBP RkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikg T1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDAwKSBBUyBzKHYpCitXSU5ET1cgdyBB UyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKQor ICAgIERFRklORSBBIEFTIHYgJSAyID0gMSwgQiBBUyB2ICUgMiA9IDAKKyk7Jyk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MTAwMC4w MCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhIGIKKyAgIE5hdiBNYXJrIExvb2ti YWNrOiAwCisgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCisgICBORkEg U3RhdGVzOiAyIHBlYWssIDEwMDEgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDIg cGVhaywgMTAwMSB0b3RhbCwgMCBwcnVuZWQKKyAgIE5GQTogNTAwIG1hdGNoZWQgKGxlbiAyLzIv Mi4wKSwgMCBtaXNtYXRjaGVkCisgICBORkE6IDAgYWJzb3JiZWQsIDUwMCBza2lwcGVkIChsZW4g MS8xLzEuMCkKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1 YWwgcm93cz0xMDAwLjAwIGxvb3BzPTEpCisoMTAgcm93cykKKworLS0gTGFyZ2UgZGF0YXNldCB3 aXRoIGFic29ycHRpb24KK0NSRUFURSBWSUVXIHJwcl9ldl9wZXJmX2xhcmdlX2Fic29yYiBBUwor U0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwMCkgQVMg cyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAg IFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDEwMCA8PiAwLCBCIEFTIHYgJSAx MDAgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfZXZfcGVyZl9sYXJnZV9hYnNvcmInKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgbGluZSAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tCisgICBQQVRURVJOIChhKyBiKSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWlu X2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1J TkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDEwMDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBT S0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHYg JSAxMDAgPD4gMCwgQiBBUyB2ICUgMTAwID0gMAorKTsnKTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93cz0xMDAwLjAwIGxvb3BzPTEpCisg ICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORykKKyAgIFBhdHRlcm46IGErIiBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAg U3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAgTkZBIFN0YXRlczogMyBw ZWFrLCAxOTkxIHRvdGFsLCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRzOiAyIHBlYWssIDEwMDEg dG90YWwsIDAgcHJ1bmVkCisgICBORkE6IDEwIG1hdGNoZWQgKGxlbiAxMDAvMTAwLzEwMC4wKSwg MCBtaXNtYXRjaGVkCisgICBORkE6IDk4MCBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCAxMCBza2lw cGVkIChsZW4gMS8xLzEuMCkKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3Nlcmll cyBzIChhY3R1YWwgcm93cz0xMDAwLjAwIGxvb3BzPTEpCisoMTAgcm93cykKKworLS0gSGlnaCBz dGF0ZSBtZXJnZSByYXRpbworQ1JFQVRFIFZJRVcgcnByX2V2X3BlcmZfaGlnaF9tZXJnZSBBUwor U0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTAwKSBBUyBz KHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAg UEFUVEVSTiAoKEEgfCBCKSsgQykKKyAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAl IDMgPSAyLCBDIEFTIHYgJSAzID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3BlcmZfaGlnaF9tZXJnZScpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAgICBsaW5lICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKChhIHwgYikrIGMp IAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZ WkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VM RUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTAwKSBBUyBzKHYp CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFU VEVSTiAoKEEgfCBCKSsgQykKKyAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMg PSAyLCBDIEFTIHYgJSAzID0gMAorKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcnBy X2V4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NTAwLjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcg QVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAg IFBhdHRlcm46IChhIHwgYikrIGMKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBTdG9yYWdl OiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVzOiA5IHBlYWssIDMw MDYgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDMgcGVhaywgNTAxIHRvdGFsLCAx IHBydW5lZAorICAgTkZBOiAxNjYgbWF0Y2hlZCAobGVuIDMvMy8zLjApLCAxIG1pc21hdGNoZWQg KGxlbiAyLzIvMi4wKQorICAgTkZBOiAwIGFic29yYmVkLCAzMzIgc2tpcHBlZCAobGVuIDEvMi8x LjUpCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJv d3M9NTAwLjAwIGxvb3BzPTEpCisoMTAgcm93cykKKworLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBJTklUSUFMIHZzIG5v IElOSVRJQUwgY29tcGFyaXNvbgorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBXaXRoIElOSVRJQUwga2V5d29yZAorQ1JF QVRFIFZJRVcgcnByX2V2X2luaXRpYWxfd2l0aCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdwor RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBJTklUSUFMCisgICAgUEFUVEVSTiAoQSsg QikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAorKTsKK1NFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2 X2luaXRpYWxfd2l0aCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsK KyAgICAgICBsaW5lICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGEr IGIpIAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFO QUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQor U0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHMo dikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBJ TklUSUFMCisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBC IEFTIHYgJSA1ID0gMAorKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcnByX2V4cGxh aW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5k b3dBZ2cgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46 IGErIiBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhp bXVtIFN0b3JhZ2U6IE5rQgorICAgTkZBIFN0YXRlczogMyBwZWFrLCA5MSB0b3RhbCwgMCBtZXJn ZWQKKyAgIE5GQSBDb250ZXh0czogMiBwZWFrLCA1MSB0b3RhbCwgMCBwcnVuZWQKKyAgIE5GQTog MTAgbWF0Y2hlZCAobGVuIDUvNS81LjApLCAwIG1pc21hdGNoZWQKKyAgIE5GQTogMzAgYWJzb3Ji ZWQgKGxlbiAxLzEvMS4wKSwgMTAgc2tpcHBlZCAobGVuIDEvMS8xLjApCisgICAtPiAgRnVuY3Rp b24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkK KygxMCByb3dzKQorCistLSBXaXRob3V0IElOSVRJQUwga2V5d29yZCAoc2FtZSBiZWhhdmlvciBj dXJyZW50bHkpCitDUkVBVEUgVklFVyBycHJfZXZfaW5pdGlhbF93aXRob3V0IEFTCitTRUxFQ1Qg Y291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lO RE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4g KEErIEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKKyk7CitT RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl9ldl9pbml0aWFsX3dpdGhvdXQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CisgICAgICAgbGluZSAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRU RVJOIChhKyBiKSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBM QUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZ IE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUw KSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X CisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYg JSA1ID0gMAorKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5fZmls dGVyICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cg KGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGErIiBi CisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0 b3JhZ2U6IE5rQgorICAgTkZBIFN0YXRlczogMyBwZWFrLCA5MSB0b3RhbCwgMCBtZXJnZWQKKyAg IE5GQSBDb250ZXh0czogMiBwZWFrLCA1MSB0b3RhbCwgMCBwcnVuZWQKKyAgIE5GQTogMTAgbWF0 Y2hlZCAobGVuIDUvNS81LjApLCAwIG1pc21hdGNoZWQKKyAgIE5GQTogMzAgYWJzb3JiZWQgKGxl biAxLzEvMS4wKSwgMTAgc2tpcHBlZCAobGVuIDEvMS8xLjApCisgICAtPiAgRnVuY3Rpb24gU2Nh biBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKKygxMCBy b3dzKQorCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tIFF1YW50aWZpZXIgVmFyaWF0aW9ucworLS0gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBQbHVz IHF1YW50aWZpZXIKK0NSRUFURSBWSUVXIHJwcl9ldl9xdWFudF9wbHVzIEFTCitTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkgQVMgcyh2KQorV0lORE9X IHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEr KQorICAgIERFRklORSBBIEFTIHYgJSA0IDw+IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9xdWFudF9wbHVzJyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgbGluZSAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOIChhKykgCisoMSByb3cpCisKK1NFTEVDVCBy cHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RT IE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVS IE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBB IEFTIHYgJSA0IDw+IDAKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBs YWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2lu ZG93QWdnIChhY3R1YWwgcm93cz00MC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJu OiBhKyIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBTdG9yYWdlOiBNZW1vcnkgIE1heGlt dW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVzOiAzIHBlYWssIDcxIHRvdGFsLCAwIG1lcmdl ZAorICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDQxIHRvdGFsLCAxMCBwcnVuZWQKKyAgIE5GQTog MTAgbWF0Y2hlZCAobGVuIDMvMy8zLjApLCAwIG1pc21hdGNoZWQKKyAgIE5GQTogMjAgYWJzb3Ji ZWQgKGxlbiAxLzEvMS4wKSwgMCBza2lwcGVkCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5l cmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NDAuMDAgbG9vcHM9MSkKKygxMCByb3dzKQorCist LSBTdGFyIHF1YW50aWZpZXIgKHplcm8gb3IgbW9yZSkKK0NSRUFURSBWSUVXIHJwcl9ldl9xdWFu dF9zdGFyIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmllcygx LCA0MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNU IFJPVworICAgIFBBVFRFUk4gKEEqIEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDQgSU4gKDEsIDIp LCBCIEFTIHYgJSA0ID0gMworKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3F1YW50X3N0YXInKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgbGluZSAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tCisgICBQQVRURVJOIChhKiBiKSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBs YWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBU SU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0gg U0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSogQikKKyAgICBERUZJTkUgQSBBUyB2 ICUgNCBJTiAoMSwgMiksIEIgQVMgdiAlIDQgPSAzCispOycpOworICAgICAgICAgICAgICAgICAg ICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NDAuMDAgbG9vcHM9MSkKKyAgIFdp bmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HKQorICAgUGF0dGVybjogYSoiIGIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBTdG9y YWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVzOiA0IHBlYWss IDEwMiB0b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czogMiBwZWFrLCA0MSB0b3RhbCwg MTAgcHJ1bmVkCisgICBORkE6IDEwIG1hdGNoZWQgKGxlbiAzLzMvMy4wKSwgMCBtaXNtYXRjaGVk CisgICBORkE6IDEwIGFic29yYmVkIChsZW4gMS8xLzEuMCksIDEwIHNraXBwZWQgKGxlbiAxLzEv MS4wKQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCBy b3dzPTQwLjAwIGxvb3BzPTEpCisoMTAgcm93cykKKworLS0gUXVlc3Rpb24gbWFyayAoemVybyBv ciBvbmUpCitDUkVBVEUgVklFVyBycHJfZXZfcXVhbnRfcXVlc3Rpb24gQVMKK1NFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCitXSU5ET1cg dyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQT8g QiBDKQorICAgIERFRklORSBBIEFTIHYgJSA0ID0gMSwgQiBBUyB2ICUgNCA9IDIsIEMgQVMgdiAl IDQgPSAzCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfZXZfcXVhbnRfcXVlc3Rpb24nKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgIGxpbmUgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgUEFUVEVSTiAoYT8gYiBjKSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBs YWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBU SU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0gg U0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQT8gQiBDKQorICAgIERFRklORSBBIEFT IHYgJSA0ID0gMSwgQiBBUyB2ICUgNCA9IDIsIEMgQVMgdiAlIDQgPSAzCispOycpOworICAgICAg ICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NDAuMDAgbG9v cHM9MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYT8gYiBjCisgICBOYXYgTWFyayBMb29rYmFj azogMAorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAgTkZBIFN0 YXRlczogNCBwZWFrLCA4MiB0b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czogMyBwZWFr LCA0MSB0b3RhbCwgMTAgcHJ1bmVkCisgICBORkE6IDEwIG1hdGNoZWQgKGxlbiAzLzMvMy4wKSwg MCBtaXNtYXRjaGVkCisgICBORkE6IDAgYWJzb3JiZWQsIDIwIHNraXBwZWQgKGxlbiAxLzIvMS41 KQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dz PTQwLjAwIGxvb3BzPTEpCisoMTAgcm93cykKKworLS0gRXhhY3QgY291bnQge259CitDUkVBVEUg VklFVyBycHJfZXZfcXVhbnRfZXhhY3QgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQXszfSBCKQorICAgIERFRklORSBB IEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfcXVhbnRfZXhhY3QnKSwg RSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgIGxpbmUgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYXszfSBiKSAKKygxIHJv dykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZG RVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCitXSU5ET1cg dyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQXsz fSBCKQorICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCispOycpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAg ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NTAu MDAgbG9vcHM9MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYXszfSBiCisgICBOYXYgTWFyayBM b29rYmFjazogMAorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAg TkZBIFN0YXRlczogNCBwZWFrLCA1MSB0b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czog NSBwZWFrLCA1MSB0b3RhbCwgMCBwcnVuZWQKKyAgIE5GQTogMTAgbWF0Y2hlZCAobGVuIDQvNC80 LjApLCAxMCBtaXNtYXRjaGVkIChsZW4gNC80LzQuMCkKKyAgIE5GQTogMCBhYnNvcmJlZCwgMzAg c2tpcHBlZCAobGVuIDEvMy8yLjApCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9z ZXJpZXMgcyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKKygxMCByb3dzKQorCistLSBSYW5n ZSB7bixtfQorQ1JFQVRFIFZJRVcgcnByX2V2X3F1YW50X3JhbmdlIEFTCitTRUxFQ1QgY291bnQo KikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcg QVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEF7Miw0 fSBCKQorICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCispOworU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf ZXZfcXVhbnRfcmFuZ2UnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CisgICAgICAgICBsaW5lICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBB VFRFUk4gKGF7Miw0fSBiKSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcign CitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBT VU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDUwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExB U1QgUk9XCisgICAgUEFUVEVSTiAoQXsyLDR9IEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4g MCwgQiBBUyB2ICUgNSA9IDAKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9l eHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg V2luZG93QWdnIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0 ZXJuOiBhezIsNH0gYgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3JhZ2U6IE1lbW9y eSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDcgcGVhaywgMTAxIHRvdGFs LCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRzOiA1IHBlYWssIDUxIHRvdGFsLCAwIHBydW5lZAor ICAgTkZBOiAxMCBtYXRjaGVkIChsZW4gNS81LzUuMCksIDAgbWlzbWF0Y2hlZAorICAgTkZBOiAw IGFic29yYmVkLCA0MCBza2lwcGVkIChsZW4gMS80LzIuNSkKKyAgIC0+ICBGdW5jdGlvbiBTY2Fu IG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQorKDEwIHJv d3MpCisKKy0tIEF0IGxlYXN0IHtuLH0KK0NSRUFURSBWSUVXIHJwcl9ldl9xdWFudF9hdGxlYXN0 IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkg QVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwor ICAgIFBBVFRFUk4gKEF7Myx9IEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDEwIDw+IDAsIEIgQVMg diAlIDEwID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2X3F1YW50X2F0bGVhc3QnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgICBsaW5lICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgICBQQVRURVJOIChhezMsfSBiKSAKKygxIHJvdykKKworU0VMRUNUIHJw cl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMg T0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQXszLH0gQikKKyAgICBERUZJ TkUgQSBBUyB2ICUgMTAgPD4gMCwgQiBBUyB2ICUgMTAgPSAwCispOycpOworICAgICAgICAgICAg ICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkK KyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HKQorICAgUGF0dGVybjogYXszLH0iIGIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAw CisgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVz OiAzIHBlYWssIDg2IHRvdGFsLCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRzOiAyIHBlYWssIDUx IHRvdGFsLCAwIHBydW5lZAorICAgTkZBOiA1IG1hdGNoZWQgKGxlbiAxMC8xMC8xMC4wKSwgMCBt aXNtYXRjaGVkCisgICBORkE6IDQwIGFic29yYmVkIChsZW4gMS8xLzEuMCksIDUgc2tpcHBlZCAo bGVuIDEvMS8xLjApCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAo YWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKKygxMCByb3dzKQorCistLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFJlZ3Jl c3Npb24gVGVzdHMgZm9yIFN0YXRpc3RpY3MgQWNjdXJhY3kKKy0tID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gVmVyaWZ5IHN0 YXRlIGNvdW50IGFjY3VyYWN5CistLSBQYXR0ZXJuIEErIEIgd2l0aCAyMCByb3dzIHNob3VsZCBz aG93IHByZWRpY3RhYmxlIHN0YXRlIGJlaGF2aW9yCitDUkVBVEUgVklFVyBycHJfZXZfcmVnX3N0 YXRlX2NvdW50IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCAyMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBM QVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwg QiBBUyB2ICUgNSA9IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9yZWdfc3RhdGVfY291bnQnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgbGluZSAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tCisgICBQQVRURVJOIChhKyBiKSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9l eHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZG LCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUgQSBB UyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAorKTsnKTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgcnByX2V4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTIwLjAwIGxvb3BzPTEpCisgICBXaW5k b3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RykKKyAgIFBhdHRlcm46IGErIiBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgU3RvcmFn ZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAgTkZBIFN0YXRlczogMyBwZWFrLCAz NyB0b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czogMiBwZWFrLCAyMSB0b3RhbCwgMCBw cnVuZWQKKyAgIE5GQTogNCBtYXRjaGVkIChsZW4gNS81LzUuMCksIDAgbWlzbWF0Y2hlZAorICAg TkZBOiAxMiBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCA0IHNraXBwZWQgKGxlbiAxLzEvMS4wKQor ICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTIw LjAwIGxvb3BzPTEpCisoMTAgcm93cykKKworLS0gVmVyaWZ5IGNvbnRleHQgY291bnQgd2l0aCBr bm93biBhYnNvcnB0aW9uCitDUkVBVEUgVklFVyBycHJfZXZfcmVnX2N0eF9hYnNvcmIgQVMKK1NF TEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYp CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFU VEVSTiAoQSsgQiBDKQorICAgIERFRklORSBBIEFTIHYgJSAxMCBJTiAoMSwyLDMsNCw1LDYsNyks IEIgQVMgdiAlIDEwID0gOCwgQyBBUyB2ICUgMTAgPSA5CispOworU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfcmVnX2N0eF9hYnNv cmInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgIGxp bmUgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYSsgYiBjKSAK KygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpF LCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVD VCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYpCitX SU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVS TiAoQSsgQiBDKQorICAgIERFRklORSBBIEFTIHYgJSAxMCBJTiAoMSwyLDMsNCw1LDYsNyksIEIg QVMgdiAlIDEwID0gOCwgQyBBUyB2ICUgMTAgPSA5CispOycpOworICAgICAgICAgICAgICAgICAg ICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkKKyAgIFdp bmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HKQorICAgUGF0dGVybjogYSsiIGIgYworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0 b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDMgcGVh aywgNTIgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDMgcGVhaywgMzEgdG90YWws IDYgcHJ1bmVkCisgICBORkE6IDMgbWF0Y2hlZCAobGVuIDkvOS85LjApLCAwIG1pc21hdGNoZWQK KyAgIE5GQTogMTggYWJzb3JiZWQgKGxlbiAxLzEvMS4wKSwgMyBza2lwcGVkIChsZW4gMS8xLzEu MCkKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93 cz0zMC4wMCBsb29wcz0xKQorKDEwIHJvd3MpCisKKy0tIFZlcmlmeSBtYXRjaCBsZW5ndGggd2l0 aCBmaXhlZC1sZW5ndGggcGF0dGVybgorQ1JFQVRFIFZJRVcgcnByX2V2X3JlZ19tYXRjaGxlbiBB UworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFT IHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOIChBIEIgQykKKyAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMg PSAyLCBDIEFTIHYgJSAzID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190 b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3JlZ19tYXRjaGxlbicpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAgbGluZSAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYSBiIGMpIAorKDEgcm93KQorCitTRUxFQ1Qg cnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NU UyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdwor RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIgQykKKyAgICBERUZJ TkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyLCBDIEFTIHYgJSAzID0gMAorKTsnKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5fZmlsdGVyICAgICAgICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTMw LjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGEgYiBjCisgICBOYXYgTWFyayBM b29rYmFjazogMAorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAg TkZBIFN0YXRlczogMiBwZWFrLCAzMSB0b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czog MyBwZWFrLCAzMSB0b3RhbCwgMTAgcHJ1bmVkCisgICBORkE6IDEwIG1hdGNoZWQgKGxlbiAzLzMv My4wKSwgMCBtaXNtYXRjaGVkCisgICBORkE6IDAgYWJzb3JiZWQsIDEwIHNraXBwZWQgKGxlbiAx LzEvMS4wKQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVh bCByb3dzPTMwLjAwIGxvb3BzPTEpCisoMTAgcm93cykKKworLS0gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBBbHRlcm5hdGlv biBQYXR0ZXJuIFRlc3RzCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFNpbXBsZSBhbHRlcm5hdGlvbgorQ1JFQVRFIFZJ RVcgcnByX2V2X2FsdF9zaW1wbGUgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gcnBy X25mYV90ZXN0CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X CisgICAgUEFUVEVSTiAoKEEgfCBCKSBDKQorICAgIERFRklORSBBIEFTIGNhdCA9ICdBJywgQiBB UyBjYXQgPSAnQicsIEMgQVMgY2F0ID0gJ0MnCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYWx0X3NpbXBsZScpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAgICBsaW5lICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOICgoYSB8IGIpIGMpIAor KDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUs IEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNU IGNvdW50KCopIE9WRVIgdworRlJPTSBycHJfbmZhX3Rlc3QKK1dJTkRPVyB3IEFTICgKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSB8IEIpIEMpCisgICAg REVGSU5FIEEgQVMgY2F0ID0gJydBJycsIEIgQVMgY2F0ID0gJydCJycsIEMgQVMgY2F0ID0gJydD JycKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93 cz0xMDAuMDAgbG9vcHM9MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogKGEgfCBiKSBjCisgICBO YXYgTWFyayBMb29rYmFjazogMAorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6 IE5rQgorICAgTkZBIFN0YXRlczogNCBwZWFrLCAzMDMgdG90YWwsIDAgbWVyZ2VkCisgICBORkEg Q29udGV4dHM6IDMgcGVhaywgMTAxIHRvdGFsLCA0MCBwcnVuZWQKKyAgIE5GQTogMjAgbWF0Y2hl ZCAobGVuIDIvMi8yLjApLCAyMCBtaXNtYXRjaGVkIChsZW4gMi8yLzIuMCkKKyAgIE5GQTogMCBh YnNvcmJlZCwgMjAgc2tpcHBlZCAobGVuIDEvMS8xLjApCisgICAtPiAgU2VxIFNjYW4gb24gcnBy X25mYV90ZXN0IChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKKygxMCByb3dzKQorCistLSBN dWx0aXBsZSBpdGVtcyBpbiBhbHRlcm5hdGlvbgorQ1JFQVRFIFZJRVcgcnByX2V2X2FsdF9tdWx0 aV9pdGVtIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9uZmFfdGVzdAorV0lO RE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4g KChBIHwgQiB8IEMgfCBEKSBFKQorICAgIERFRklORQorICAgICAgICBBIEFTIGNhdCA9ICdBJywg QiBBUyBjYXQgPSAnQicsIEMgQVMgY2F0ID0gJ0MnLAorICAgICAgICBEIEFTIGNhdCA9ICdEJywg RSBBUyBjYXQgPSAnRScKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9hbHRfbXVsdGlfaXRlbScpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAgICAgICAgbGluZSAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoKGEgfCBi IHwgYyB8IGQpIGUpIAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VY UExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1B UlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBycHJfbmZhX3Rlc3QKK1dJTkRP VyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgo QSB8IEIgfCBDIHwgRCkgRSkKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyBjYXQgPSAnJ0EnJywg QiBBUyBjYXQgPSAnJ0InJywgQyBBUyBjYXQgPSAnJ0MnJywKKyAgICAgICAgRCBBUyBjYXQgPSAn J0QnJywgRSBBUyBjYXQgPSAnJ0UnJworKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJw cl9leHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBX aW5kb3dBZ2cgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0 ZXJuOiAoYSB8IGIgfCBjIHwgZCkgZQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3Jh Z2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDYgcGVhaywg NTA1IHRvdGFsLCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDEwMSB0b3RhbCwg MCBwcnVuZWQKKyAgIE5GQTogMjAgbWF0Y2hlZCAobGVuIDIvMi8yLjApLCA2MCBtaXNtYXRjaGVk IChsZW4gMi8yLzIuMCkKKyAgIE5GQTogMCBhYnNvcmJlZCwgMjAgc2tpcHBlZCAobGVuIDEvMS8x LjApCisgICAtPiAgU2VxIFNjYW4gb24gcnByX25mYV90ZXN0IChhY3R1YWwgcm93cz0xMDAuMDAg bG9vcHM9MSkKKygxMCByb3dzKQorCistLSBBbHRlcm5hdGlvbiB3aXRoIHF1YW50aWZpZXJzCitD UkVBVEUgVklFVyBycHJfZXZfYWx0X3dpdGhfcXVhbnQgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVS IHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg QUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgfCBCKSsgQykK KyAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyLCBDIEFTIHYgJSAzID0g MAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX2V2X2FsdF93aXRoX3F1YW50JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5l IH4gJ1BBVFRFUk4nOworICAgICAgICAgIGxpbmUgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICAgUEFUVEVSTiAoKGEgfCBiKSsgYykgCisoMSByb3cpCisKK1NFTEVDVCBy cHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RT IE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVS IE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIHwgQikrIEMpCisgICAg REVGSU5FIEEgQVMgdiAlIDMgPSAxLCBCIEFTIHYgJSAzID0gMiwgQyBBUyB2ICUgMyA9IDAKKyk7 Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93 cz01MC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYSB8IGIpKyBjCisgICBO YXYgTWFyayBMb29rYmFjazogMAorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6 IE5rQgorICAgTkZBIFN0YXRlczogOSBwZWFrLCAzMDYgdG90YWwsIDAgbWVyZ2VkCisgICBORkEg Q29udGV4dHM6IDMgcGVhaywgNTEgdG90YWwsIDEgcHJ1bmVkCisgICBORkE6IDE2IG1hdGNoZWQg KGxlbiAzLzMvMy4wKSwgMSBtaXNtYXRjaGVkIChsZW4gMi8yLzIuMCkKKyAgIE5GQTogMCBhYnNv cmJlZCwgMzIgc2tpcHBlZCAobGVuIDEvMi8xLjUpCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBn ZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKKygxMCByb3dzKQor CistLSBNdWx0aXBsZSBhbHRlcm5hdGl2ZXMgKDQrKQorQ1JFQVRFIFZJRVcgcnByX2V2X2FsdF9m b3VyX3BsdXMgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDEwMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgfCBCIHwgQyB8IEQg fCBFKQorICAgIERFRklORSBBIEFTIHYgJSA1ID0gMCwgQiBBUyB2ICUgNSA9IDEsIEMgQVMgdiAl IDUgPSAyLCBEIEFTIHYgJSA1ID0gMywgRSBBUyB2ICUgNSA9IDQKKyk7CitTRUxFQ1QgbGluZSBG Uk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9hbHRfZm91 cl9wbHVzJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAg ICAgICAgICBsaW5lICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgICBQQVRURVJOIChhIHwgYiB8IGMgfCBkIHwgZSkgCisoMSByb3cpCisKK1NFTEVDVCBy cHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RT IE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRU RVJOIChBIHwgQiB8IEMgfCBEIHwgRSkKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA9IDAsIEIgQVMg diAlIDUgPSAxLCBDIEFTIHYgJSA1ID0gMiwgRCBBUyB2ICUgNSA9IDMsIEUgQVMgdiAlIDUgPSA0 CispOycpOworICAgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1 YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogKGEgfCBiIHwg YyB8IGQgfCBlKQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3JhZ2U6IE1lbW9yeSAg TWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDcgcGVhaywgNjA2IHRvdGFsLCAw IG1lcmdlZAorICAgTkZBIENvbnRleHRzOiAyIHBlYWssIDEwMSB0b3RhbCwgMCBwcnVuZWQKKyAg IE5GQTogMTAwIG1hdGNoZWQgKGxlbiAxLzEvMS4wKSwgMCBtaXNtYXRjaGVkCisgICAtPiAgRnVu Y3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3Bz PTEpCisoOSByb3dzKQorCistLSBBbHRlcm5hdGlvbiBhdCBzdGFydAorQ1JFQVRFIFZJRVcgcnBy X2V2X2FsdF9hdF9zdGFydCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0 ZV9zZXJpZXMoMSwgNjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOICgoQSB8IEIp IEMgRCkKKyAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMgdiAlIDQgPSAxLCBDIEFTIHYg JSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9hbHRfYXRfc3RhcnQnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgICAgIGxpbmUgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKChhIHwgYikgYyBk KSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFM WVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NF TEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBzKHYp CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoKEEgfCBCKSBDIEQpCisgICAgREVGSU5FIEEgQVMg diAlIDQgPSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIsIEQgQVMgdiAlIDQgPSAz CispOycpOworICAgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAg ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFs IHJvd3M9NjAuMDAgbG9vcHM9MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogKGEgfCBiKSBjIGQK KyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3Rv cmFnZTogTmtCCisgICBORkEgU3RhdGVzOiA0IHBlYWssIDE4MyB0b3RhbCwgMCBtZXJnZWQKKyAg IE5GQSBDb250ZXh0czogMyBwZWFrLCA2MSB0b3RhbCwgMTYgcHJ1bmVkCisgICBORkE6IDE1IG1h dGNoZWQgKGxlbiAzLzMvMy4wKSwgMTQgbWlzbWF0Y2hlZCAobGVuIDIvMi8yLjApCisgICBORkE6 IDAgYWJzb3JiZWQsIDE1IHNraXBwZWQgKGxlbiAxLzEvMS4wKQorICAgLT4gIEZ1bmN0aW9uIFNj YW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTYwLjAwIGxvb3BzPTEpCisoMTAg cm93cykKKworLS0gTXVsdGlwbGUgc2VxdWVudGlhbCBhbHRlcm5hdGlvbnMKK0NSRUFURSBWSUVX IHJwcl9ldl9hbHRfc2VxdWVudGlhbCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAo KEEgfCBCKSBDIChEIHwgRSkgRikKKyAgICBERUZJTkUgQSBBUyB2ICUgNiA9IDAsIEIgQVMgdiAl IDYgPSAxLCBDIEFTIHYgJSA2ID0gMiwgRCBBUyB2ICUgNiA9IDMsIEUgQVMgdiAlIDYgPSA0LCBG IEFTIHYgJSA2ID0gNQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2X2FsdF9zZXF1ZW50aWFsJyksIEUnXG4nKSkgQVMgbGlu ZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgICAgICAgICAgbGluZSAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoKGEg fCBiKSBjIChkIHwgZSkgZikgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIo JworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwg U1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCAxMDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOICgoQSB8IEIpIEMgKEQg fCBFKSBGKQorICAgIERFRklORSBBIEFTIHYgJSA2ID0gMCwgQiBBUyB2ICUgNiA9IDEsIEMgQVMg diAlIDYgPSAyLCBEIEFTIHYgJSA2ID0gMywgRSBBUyB2ICUgNiA9IDQsIEYgQVMgdiAlIDYgPSA1 CispOycpOworICAgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1 YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogKGEgfCBiKSBj IChkIHwgZSkgZgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3JhZ2U6IE1lbW9yeSAg TWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDUgcGVhaywgMzM3IHRvdGFsLCAw IG1lcmdlZAorICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDEwMSB0b3RhbCwgNjcgcHJ1bmVkCisg ICBORkE6IDAgbWF0Y2hlZCwgMzMgbWlzbWF0Y2hlZCAobGVuIDIvNC8zLjApCisgICAtPiAgRnVu Y3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3Bz PTEpCisoOSByb3dzKQorCistLSBRdWFudGlmaWVkIGFsdGVybmF0aXZlcworQ1JFQVRFIFZJRVcg cnByX2V2X2FsdF9xdWFudGlmaWVkIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdl bmVyYXRlX3NlcmllcygxLCA2MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKChB KyB8IEIrKSBDKQorICAgIERFRklORSBBIEFTIHYgJSAzID0gMCwgQiBBUyB2ICUgMyA9IDEsIEMg QVMgdiAlIDMgPSAyCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYWx0X3F1YW50aWZpZWQnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgICAgIGxpbmUgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKChhKyB8IGIrKSBjKSAKKygxIHJv dykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZG RVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBzKHYpCitXSU5ET1cg dyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgUEFUVEVSTiAoKEErIHwgQispIEMpCisgICAgREVGSU5FIEEgQVMgdiAlIDMgPSAw LCBCIEFTIHYgJSAzID0gMSwgQyBBUyB2ICUgMyA9IDIKKyk7Jyk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93cz02MC4wMCBsb29wcz0xKQorICAg V2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcpCisgICBQYXR0ZXJuOiAoYSsiIHwgYisiKSBjCisgICBOYXYgTWFyayBMb29rYmFjazog MAorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAgTkZBIFN0YXRl czogNSBwZWFrLCAyMjMgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDMgcGVhaywg NjEgdG90YWwsIDEgcHJ1bmVkCisgICBORkE6IDIwIG1hdGNoZWQgKGxlbiAyLzIvMi4wKSwgMTkg bWlzbWF0Y2hlZCAobGVuIDIvMi8yLjApCisgICBORkE6IDAgYWJzb3JiZWQsIDIwIHNraXBwZWQg KGxlbiAxLzEvMS4wKQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMg KGFjdHVhbCByb3dzPTYwLjAwIGxvb3BzPTEpCisoMTAgcm93cykKKworLS0gQWx0ZXJuYXRpb24g YXQgZW5kCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X2F0X2VuZCBBUworU0VMRUNUIGNvdW50KCop IE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKK1dJTkRPVyB3IEFT ICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBQQVRURVJOIChBIEIgKEMgfCBEKSkKKyAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIg QVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMKKyk7CitTRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9h bHRfYXRfZW5kJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAg ICAgICAgICBsaW5lICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQ QVRURVJOIChhIGIgKGMgfCBkKSkgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0 ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9G RiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCA2MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQiAoQyB8IEQp KQorICAgIERFRklORSBBIEFTIHYgJSA0ID0gMCwgQiBBUyB2ICUgNCA9IDEsIEMgQVMgdiAlIDQg PSAyLCBEIEFTIHYgJSA0ID0gMworKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcnBy X2V4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTYwLjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMg KFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBh dHRlcm46IGEgYiAoYyB8IGQpCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgU3RvcmFnZTog TWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAgTkZBIFN0YXRlczogMyBwZWFrLCA4OSB0 b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czogMyBwZWFrLCA2MSB0b3RhbCwgMzIgcHJ1 bmVkCisgICBORkE6IDE0IG1hdGNoZWQgKGxlbiAzLzMvMy4wKSwgMCBtaXNtYXRjaGVkCisgICBO RkE6IDAgYWJzb3JiZWQsIDE0IHNraXBwZWQgKGxlbiAxLzEvMS4wKQorICAgLT4gIEZ1bmN0aW9u IFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTYwLjAwIGxvb3BzPTEpCiso MTAgcm93cykKKworLS0gTmVzdGVkIEFMVCBhdCBzdGFydCBvZiBicmFuY2ggaW5zaWRlIG91dGVy IEFMVAorLS0gUGF0dGVybjogKEEgKChCIHwgQykgRCB8IEUpKSAtIHByZWNlZGluZyBWQVIgKyBp bm5lciBBTFQgYXMgZmlyc3QgYnJhbmNoIGVsZW1lbnQKK0NSRUFURSBWSUVXIHJwcl9ldl9hbHRf bmVzdGVkX3N0YXJ0IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCAyMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgKChCIHwgQykg RCB8IEUpKQorICAgIERFRklORSBBIEFTIHYgJSA1ID0gMCwgQiBBUyB2ICUgNSA9IDEsIEMgQVMg diAlIDUgPSAyLCBEIEFTIHYgJSA1ID0gMywgRSBBUyB2ICUgNSA9IDQKKyk7CitTRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9hbHRf bmVzdGVkX3N0YXJ0JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwor ICAgICAgICAgICAgICBsaW5lICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgICBQQVRURVJOIChhICgoYiB8IGMpIGQgfCBlKSkgCisoMSByb3cpCisKK1NF TEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYs IENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZF UiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IFBBVFRFUk4gKEEgKChCIHwgQykgRCB8IEUpKQorICAgIERFRklORSBBIEFTIHYgJSA1ID0gMCwg QiBBUyB2ICUgNSA9IDEsIEMgQVMgdiAlIDUgPSAyLCBEIEFTIHYgJSA1ID0gMywgRSBBUyB2ICUg NSA9IDQKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRl ciAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChh Y3R1YWwgcm93cz0yMC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhICgoYiB8 IGMpIGQgfCBlKQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3JhZ2U6IE1lbW9yeSAg TWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDQgcGVhaywgMzcgdG90YWwsIDAg bWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDMgcGVhaywgMjEgdG90YWwsIDE3IHBydW5lZAorICAg TkZBOiAwIG1hdGNoZWQsIDMgbWlzbWF0Y2hlZCAobGVuIDMvMy8zLjApCisgICAtPiAgRnVuY3Rp b24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MjAuMDAgbG9vcHM9MSkK Kyg5IHJvd3MpCisKKy0tIE5lc3RlZCBBTFQgYXQgZW5kIG9mIGJyYW5jaCBpbnNpZGUgb3V0ZXIg QUxUCistLSBQYXR0ZXJuOiAoQyAoQSB8IEIpIHwgRCkgLSBpbm5lciBBTFQgaXMgbGFzdCBlbGVt ZW50IGluIG91dGVyIGJyYW5jaAorQ1JFQVRFIFZJRVcgcnByX2V2X2FsdF9uZXN0ZWRfZW5kIEFT CitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMCkgQVMg cyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEMgKEEgfCBCKSB8IEQpCisgICAgREVGSU5F IEEgQVMgdiAlIDQgPSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIsIEQgQVMgdiAl IDQgPSAzCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfZXZfYWx0X25lc3RlZF9lbmQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgICAgICBsaW5lICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOIChjIChhIHwgYikgfCBkKSAKKygxIHJv dykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZG RVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCitXSU5ET1cg dyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgUEFUVEVSTiAoQyAoQSB8IEIpIHwgRCkKKyAgICBERUZJTkUgQSBBUyB2ICUgNCA9 IDAsIEIgQVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMKKyk7Jyk7 CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93cz0y MC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYyAoYSB8IGIpIHwgZCkKKyAg IE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFn ZTogTmtCCisgICBORkEgU3RhdGVzOiA1IHBlYWssIDczIHRvdGFsLCAwIG1lcmdlZAorICAgTkZB IENvbnRleHRzOiAzIHBlYWssIDIxIHRvdGFsLCAxMCBwcnVuZWQKKyAgIE5GQTogNSBtYXRjaGVk IChsZW4gMS8xLzEuMCksIDUgbWlzbWF0Y2hlZCAobGVuIDIvMi8yLjApCisgICAtPiAgRnVuY3Rp b24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MjAuMDAgbG9vcHM9MSkK Kyg5IHJvd3MpCisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0gR3JvdXAgUGF0dGVybiBUZXN0cworLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBT aW1wbGUgZ3JvdXAKK0NSRUFURSBWSUVXIHJwcl9ldl9ncnBfc2ltcGxlIEFTCitTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkgQVMgcyh2KQorV0lORE9X IHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChB IEIpKykKKyAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCispOworU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf ZXZfZ3JwX3NpbXBsZScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsK KyAgICAgICAgbGluZSAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJO ICgoYSBiKSspIAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExB SU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkg T0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNDAp IEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgICBQQVRURVJOICgoQSBCKSspCisgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYg JSAyID0gMAorKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5fZmls dGVyICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cg KGFjdHVhbCByb3dzPTQwLjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhJyBi JykrIgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11 bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDQgcGVhaywgNjEgdG90YWwsIDAgbWVyZ2Vk CisgICBORkEgQ29udGV4dHM6IDMgcGVhaywgNDEgdG90YWwsIDAgcHJ1bmVkCisgICBORkE6IDEg bWF0Y2hlZCAobGVuIDQwLzQwLzQwLjApLCAwIG1pc21hdGNoZWQKKyAgIE5GQTogMTkgYWJzb3Ji ZWQgKGxlbiAyLzIvMi4wKSwgMjAgc2tpcHBlZCAobGVuIDEvMS8xLjApCisgICAtPiAgRnVuY3Rp b24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NDAuMDAgbG9vcHM9MSkK KygxMCByb3dzKQorCistLSBHcm91cCB3aXRoIGJvdW5kZWQgcXVhbnRpZmllcgorQ1JFQVRFIFZJ RVcgcnByX2V2X2dycF9ib3VuZGVkIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdl bmVyYXRlX3NlcmllcygxLCA0MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENI IFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIEIpezIsNH0pCisgICAgREVGSU5F IEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYgJSAyID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2dycF9ib3VuZGVkJyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgICAgIGxpbmUg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoKGEgYil7 Miw0fSkgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAo QU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYp CitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkgQVMg cyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAg IFBBVFRFUk4gKChBIEIpezIsNH0pCisgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYg JSAyID0gMAorKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5fZmls dGVyICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cg KGFjdHVhbCByb3dzPTQwLjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhIGIp ezIsNH0KKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBTdG9yYWdlOiBNZW1vcnkgIE1heGlt dW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVzOiA0IHBlYWssIDUxIHRvdGFsLCAwIG1lcmdl ZAorICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDQxIHRvdGFsLCA1IHBydW5lZAorICAgTkZBOiA1 IG1hdGNoZWQgKGxlbiA4LzgvOC4wKSwgMCBtaXNtYXRjaGVkCisgICBORkE6IDAgYWJzb3JiZWQs IDMwIHNraXBwZWQgKGxlbiAxLzIvMS41KQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJh dGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTQwLjAwIGxvb3BzPTEpCisoMTAgcm93cykKKworLS0g TmVzdGVkIGdyb3VwcworQ1JFQVRFIFZJRVcgcnByX2V2X2dycF9uZXN0ZWQgQVMKK1NFTEVDVCBj b3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBzKHYpCitXSU5E T1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAo KChBIEIpezJ9KSspCisgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYgJSAyID0gMAor KTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2X2dycF9uZXN0ZWQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CisgICAgICAgICAgIGxpbmUgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAgIFBBVFRFUk4gKCgoYSBiKXsyfSkrKSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9l eHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZG LCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKChBIEIpezJ9KSspCisgICAgREVG SU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYgJSAyID0gMAorKTsnKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgcnByX2V4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTYwLjAwIGxvb3BzPTEpCisg ICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORykKKyAgIFBhdHRlcm46ICgoYScgYicpezJ9JykrIgorICAgTmF2IE1hcmsgTG9va2Jh Y2s6IDAKKyAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBT dGF0ZXM6IDUgcGVhaywgNzYgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDQgcGVh aywgNjEgdG90YWwsIDE1IHBydW5lZAorICAgTkZBOiAxIG1hdGNoZWQgKGxlbiA2MC82MC82MC4w KSwgMCBtaXNtYXRjaGVkCisgICBORkE6IDE0IGFic29yYmVkIChsZW4gNC80LzQuMCksIDMwIHNr aXBwZWQgKGxlbiAxLzIvMS41KQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2Vy aWVzIHMgKGFjdHVhbCByb3dzPTYwLjAwIGxvb3BzPTEpCisoMTAgcm93cykKKworLS0gRGVlcCBu ZXN0aW5nICgzKyBsZXZlbHMpCitDUkVBVEUgVklFVyBycHJfZXZfZ3JwX2RlZXAgQVMKK1NFTEVD VCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCitX SU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgUEFUVEVSTiAoKCgoQSB8IEIpKykrKSspCisgICAgREVGSU5FIEEgQVMg diAlIDIgPSAwLCBCIEFTIHYgJSAyID0gMQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2dycF9kZWVwJyksIEUnXG4nKSkg QVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgICAgICAgbGluZSAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOICgoKChhIHwg YikrKSspKykgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJ TiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBP RkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkg QVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKCgoKEEgfCBCKSspKykrKQorICAgIERF RklORSBBIEFTIHYgJSAyID0gMCwgQiBBUyB2ICUgMiA9IDEKKyk7Jyk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93cz00MC4wMCBsb29wcz0xKQor ICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYSB8IGIpKworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAK KyAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6 IDYgcGVhaywgMjQzIHRvdGFsLCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRzOiAyIHBlYWssIDQx IHRvdGFsLCAwIHBydW5lZAorICAgTkZBOiAxIG1hdGNoZWQgKGxlbiA0MC80MC80MC4wKSwgMCBt aXNtYXRjaGVkCisgICBORkE6IDAgYWJzb3JiZWQsIDM5IHNraXBwZWQgKGxlbiAxLzEvMS4wKQor ICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTQw LjAwIGxvb3BzPTEpCisoMTAgcm93cykKKworLS0gQm91bmRlZCBxdWFudGlmaWVyIG9uIGFsdGVy bmF0aW9uCitDUkVBVEUgVklFVyBycHJfZXZfZ3JwX2JvdW5kZWRfYWx0IEFTCitTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA2MCkgQVMgcyh2KQorV0lORE9X IHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIFBBVFRFUk4gKChBIHwgQil7MiwzfSBDKQorICAgIERFRklORSBBIEFTIHYgJSAz ID0gMCwgQiBBUyB2ICUgMyA9IDEsIEMgQVMgdiAlIDMgPSAyCispOworU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfZ3JwX2JvdW5k ZWRfYWx0JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAg ICAgICAgbGluZSAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg ICBQQVRURVJOICgoYSB8IGIpezIsM30gYykgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFp bl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElN SU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVy YXRlX3NlcmllcygxLCA2MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKChBIHwg Qil7MiwzfSBDKQorICAgIERFRklORSBBIEFTIHYgJSAzID0gMCwgQiBBUyB2ICUgMyA9IDEsIEMg QVMgdiAlIDMgPSAyCispOycpOworICAgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFp bl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRv d0FnZyAoYWN0dWFsIHJvd3M9NjAuMDAgbG9vcHM9MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjog KGEgfCBiKXsyLDN9IGMKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBTdG9yYWdlOiBNZW1v cnkgIE1heGltdW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVzOiA4IHBlYWssIDMyMCB0b3Rh bCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czogMyBwZWFrLCA2MSB0b3RhbCwgMiBwcnVuZWQK KyAgIE5GQTogMTkgbWF0Y2hlZCAobGVuIDMvMy8zLjApLCAxIG1pc21hdGNoZWQgKGxlbiAyLzIv Mi4wKQorICAgTkZBOiAwIGFic29yYmVkLCAzOCBza2lwcGVkIChsZW4gMS8yLzEuNSkKKyAgIC0+ ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz02MC4wMCBs b29wcz0xKQorKDEwIHJvd3MpCisKKy0tIE5lc3RlZCBncm91cHMgd2l0aCBxdWFudGlmaWVycwor Q1JFQVRFIFZJRVcgcnByX2V2X2dycF9uZXN0ZWRfcXVhbnQgQVMKK1NFTEVDVCBjb3VudCgqKSBP VkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAo CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgUEFUVEVSTiAoKChBIEIpKyBDKSopCisgICAgREVGSU5FIEEgQVMgdiAlIDMgPSAwLCBCIEFT IHYgJSAzID0gMSwgQyBBUyB2ICUgMyA9IDIKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChz dHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9ncnBfbmVzdGVkX3F1YW50Jyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgICAgICBsaW5l ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOICgoKGEg YikrIGMpKikgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJ TiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBP RkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA2MCkg QVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKCgoQSBCKSsgQykqKQorICAgIERFRklO RSBBIEFTIHYgJSAzID0gMCwgQiBBUyB2ICUgMyA9IDEsIEMgQVMgdiAlIDMgPSAyCispOycpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAg ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NjAu MDAgbG9vcHM9MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogKChhJyBiJykrIiBjKSoKKyAgIE5h diBNYXJrIExvb2tiYWNrOiAwCisgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTog TmtCCisgICBORkEgU3RhdGVzOiA5IHBlYWssIDE3OCB0b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBD b250ZXh0czogNCBwZWFrLCA2MSB0b3RhbCwgMjAgcHJ1bmVkCisgICBORkE6IDMgbWF0Y2hlZCAo bGVuIDAvNTcvMTkuMCksIDAgbWlzbWF0Y2hlZAorICAgTkZBOiAwIGFic29yYmVkLCAzNyBza2lw cGVkIChsZW4gMS8zLzIuMCkKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3Nlcmll cyBzIChhY3R1YWwgcm93cz02MC4wMCBsb29wcz0xKQorKDEwIHJvd3MpCisKKy0tIFBhcnRpYWwg bmVzdGVkIHF1YW50aWZpY2F0aW9uCitDUkVBVEUgVklFVyBycHJfZXZfZ3JwX3BhcnRpYWxfcXVh bnQgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYw KSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoKEEgKEIgQykrKSopCisgICAgREVG SU5FIEEgQVMgdiAlIDMgPSAwLCBCIEFTIHYgJSAzID0gMSwgQyBBUyB2ICUgMyA9IDIKKyk7CitT RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl9ldl9ncnBfcGFydGlhbF9xdWFudCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQ QVRURVJOJzsKKyAgICAgICAgICAgbGluZSAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgUEFUVEVSTiAoKGEgKGIgYykrKSopIAorKDEgcm93KQorCitTRUxFQ1QgcnBy X2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBP RkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJO ICgoQSAoQiBDKSspKikKKyAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDAsIEIgQVMgdiAlIDMgPSAx LCBDIEFTIHYgJSAzID0gMgorKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcnByX2V4 cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBX aW5kb3dBZ2cgKGFjdHVhbCByb3dzPTYwLjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRl cm46IChhIChiIGMpKykqCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgU3RvcmFnZTogTWVt b3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAgTkZBIFN0YXRlczogNyBwZWFrLCAxNjAgdG90 YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDQgcGVhaywgNjEgdG90YWwsIDIwIHBydW5l ZAorICAgTkZBOiAzIG1hdGNoZWQgKGxlbiAwLzU3LzE5LjApLCAwIG1pc21hdGNoZWQKKyAgIE5G QTogMCBhYnNvcmJlZCwgMzcgc2tpcHBlZCAobGVuIDEvMy8yLjApCisgICAtPiAgRnVuY3Rpb24g U2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NjAuMDAgbG9vcHM9MSkKKygx MCByb3dzKQorCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tIFdpbmRvdyBGdW5jdGlvbiBDb21iaW5hdGlvbnMKKy0tID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorLS0gY291bnQoKikgd2l0aCBwYXR0ZXJuCitDUkVBVEUgVklFVyBycHJfZXZfd2ZuX2NvdW50 IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkg QVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwor ICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUg NSA9IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldl93Zm5fY291bnQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CisgICAgICAgbGluZSAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tCisg ICBQQVRURVJOIChhKyBiKSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcign CitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBT VU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDMwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExB U1QgUk9XCisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBC IEFTIHYgJSA1ID0gMAorKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcnByX2V4cGxh aW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5k b3dBZ2cgKGFjdHVhbCByb3dzPTMwLjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46 IGErIiBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhp bXVtIFN0b3JhZ2U6IE5rQgorICAgTkZBIFN0YXRlczogMyBwZWFrLCA1NSB0b3RhbCwgMCBtZXJn ZWQKKyAgIE5GQSBDb250ZXh0czogMiBwZWFrLCAzMSB0b3RhbCwgMCBwcnVuZWQKKyAgIE5GQTog NiBtYXRjaGVkIChsZW4gNS81LzUuMCksIDAgbWlzbWF0Y2hlZAorICAgTkZBOiAxOCBhYnNvcmJl ZCAobGVuIDEvMS8xLjApLCA2IHNraXBwZWQgKGxlbiAxLzEvMS4wKQorICAgLT4gIEZ1bmN0aW9u IFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTMwLjAwIGxvb3BzPTEpCiso MTAgcm93cykKKworLS0gZmlyc3RfdmFsdWUgd2l0aCBwYXR0ZXJuCitDUkVBVEUgVklFVyBycHJf ZXZfd2ZuX2ZpcnN0X3ZhbHVlIEFTCitTRUxFQ1QgZmlyc3RfdmFsdWUodikgT1ZFUiB3CitGUk9N IGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEg QVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl93Zm5fZmlyc3RfdmFsdWUn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgbGluZSAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOIChhKyBiKSAKKygxIHJvdykK KworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJT IE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBmaXJzdF92 YWx1ZSh2KSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYpCitXSU5E T1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAo QSsgQikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAorKTsnKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5fZmlsdGVyICAgICAgICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTMw LjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGErIiBiCisgICBOYXYgTWFyayBM b29rYmFjazogMAorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAg TkZBIFN0YXRlczogMyBwZWFrLCA1NSB0b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czog MiBwZWFrLCAzMSB0b3RhbCwgMCBwcnVuZWQKKyAgIE5GQTogNiBtYXRjaGVkIChsZW4gNS81LzUu MCksIDAgbWlzbWF0Y2hlZAorICAgTkZBOiAxOCBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCA2IHNr aXBwZWQgKGxlbiAxLzEvMS4wKQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2Vy aWVzIHMgKGFjdHVhbCByb3dzPTMwLjAwIGxvb3BzPTEpCisoMTAgcm93cykKKworLS0gbGFzdF92 YWx1ZSB3aXRoIHBhdHRlcm4KK0NSRUFURSBWSUVXIHJwcl9ldl93Zm5fbGFzdF92YWx1ZSBBUwor U0VMRUNUIGxhc3RfdmFsdWUodikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkg QVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwor ICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUg NSA9IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldl93Zm5fbGFzdF92YWx1ZScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKKyAgICAgICBsaW5lICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0KKyAgIFBBVFRFUk4gKGErIGIpIAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmls dGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBP RkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGxhc3RfdmFsdWUodikgT1ZFUiB3CitGUk9NIGdlbmVy YXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNL SVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMgdiAl IDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAg IHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93cz0zMC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3 IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisg ICBQYXR0ZXJuOiBhKyIgYgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3JhZ2U6IE1l bW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDMgcGVhaywgNTUgdG90 YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDIgcGVhaywgMzEgdG90YWwsIDAgcHJ1bmVk CisgICBORkE6IDYgbWF0Y2hlZCAobGVuIDUvNS81LjApLCAwIG1pc21hdGNoZWQKKyAgIE5GQTog MTggYWJzb3JiZWQgKGxlbiAxLzEvMS4wKSwgNiBza2lwcGVkIChsZW4gMS8xLzEuMCkKKyAgIC0+ ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0zMC4wMCBs b29wcz0xKQorKDEwIHJvd3MpCisKKy0tIE11bHRpcGxlIHdpbmRvdyBmdW5jdGlvbnMKK0NSRUFU RSBWSUVXIHJwcl9ldl93Zm5fbXVsdGkgQVMKK1NFTEVDVAorICAgIGNvdW50KCopIE9WRVIgdywK KyAgICBmaXJzdF92YWx1ZSh2KSBPVkVSIHcsCisgICAgbGFzdF92YWx1ZSh2KSBPVkVSIHcKK0ZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUg QSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3dmbl9tdWx0aScpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICBsaW5lICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGErIGIpIAorKDEgcm93KQorCitT RUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZG LCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUCisgICAgY291bnQo KikgT1ZFUiB3LAorICAgIGZpcnN0X3ZhbHVlKHYpIE9WRVIgdywKKyAgICBsYXN0X3ZhbHVlKHYp IE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFTIHModikKK1dJTkRPVyB3IEFT ICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQor ICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCispOycpOworICAgICAg ICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MzAuMDAgbG9v cHM9MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSsiIGIKKyAgIE5hdiBNYXJrIExvb2tiYWNr OiAwCisgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCisgICBORkEgU3Rh dGVzOiAzIHBlYWssIDU1IHRvdGFsLCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRzOiAyIHBlYWss IDMxIHRvdGFsLCAwIHBydW5lZAorICAgTkZBOiA2IG1hdGNoZWQgKGxlbiA1LzUvNS4wKSwgMCBt aXNtYXRjaGVkCisgICBORkE6IDE4IGFic29yYmVkIChsZW4gMS8xLzEuMCksIDYgc2tpcHBlZCAo bGVuIDEvMS8xLjApCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAo YWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkKKygxMCByb3dzKQorCistLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIERFRklO RSBFeHByZXNzaW9uIFZhcmlhdGlvbnMKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gQ29tcGxleCBib29sZWFuIGV4cHJl c3Npb25zCitDUkVBVEUgVklFVyBycHJfZXZfZGVmX2NvbXBsZXhfYm9vbCBBUworU0VMRUNUIGNv dW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKK1dJTkRP VyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChB KyBCKQorICAgIERFRklORQorICAgICAgICBBIEFTICh2ICUgNSA8PiAwKSBBTkQgKHYgJSAzIDw+ IDApLAorICAgICAgICBCIEFTICh2ICUgNSA9IDApIE9SICh2ICUgMyA9IDApCispOworU0VMRUNU IGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZf ZGVmX2NvbXBsZXhfYm9vbCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKKyAgICAgICBsaW5lICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4g KGErIGIpIAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4g KEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZG KQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFT IHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOIChBKyBCKQorICAgIERFRklORQorICAgICAgICBBIEFTICh2ICUgNSA8PiAwKSBB TkQgKHYgJSAzIDw+IDApLAorICAgICAgICBCIEFTICh2ICUgNSA9IDApIE9SICh2ICUgMyA9IDAp CispOycpOworICAgICAgICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAg ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFs IHJvd3M9NTAuMDAgbG9vcHM9MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSsiIGIKKyAgIE5h diBNYXJrIExvb2tiYWNrOiAwCisgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTog TmtCCisgICBORkEgU3RhdGVzOiAzIHBlYWssIDc4IHRvdGFsLCAwIG1lcmdlZAorICAgTkZBIENv bnRleHRzOiAyIHBlYWssIDUxIHRvdGFsLCA2IHBydW5lZAorICAgTkZBOiAxNyBtYXRjaGVkIChs ZW4gMi8zLzIuNiksIDAgbWlzbWF0Y2hlZAorICAgTkZBOiAxMCBhYnNvcmJlZCAobGVuIDEvMS8x LjApLCAxNyBza2lwcGVkIChsZW4gMS8xLzEuMCkKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdl bmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQorKDEwIHJvd3MpCisK Ky0tIFVzaW5nIFBSRVYgZnVuY3Rpb24KK0NSRUFURSBWSUVXIHJwcl9ldl9kZWZfcHJldiBBUwor U0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFTIHMo dikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQ QVRURVJOIChTIFUrIEQrKQorICAgIERFRklORQorICAgICAgICBTIEFTIFRSVUUsCisgICAgICAg IFUgQVMgdiA+IFBSRVYodiksCisgICAgICAgIEQgQVMgdiA8IFBSRVYodikKKyk7CitTRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9k ZWZfcHJldicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAg ICAgIGxpbmUgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKHMg dSsgZCspIAorKDEgcm93KQorCitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4g KEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZG KQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFT IHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOIChTIFUrIEQrKQorICAgIERFRklORQorICAgICAgICBTIEFTIFRSVUUsCisgICAg ICAgIFUgQVMgdiA+IFBSRVYodiksCisgICAgICAgIEQgQVMgdiA8IFBSRVYodikKKyk7Jyk7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93cz0zMC4w MCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBzIHUrIGQrCisgICBOYXYgTWFyayBM b29rYmFjazogMQorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAg TkZBIFN0YXRlczogNjAgcGVhaywgNDY2IHRvdGFsLCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRz OiAzMSBwZWFrLCAzMSB0b3RhbCwgMSBwcnVuZWQKKyAgIE5GQTogMCBtYXRjaGVkLCAyOSBtaXNt YXRjaGVkIChsZW4gMi8zMC8xNi4wKQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVf c2VyaWVzIHMgKGFjdHVhbCByb3dzPTMwLjAwIGxvb3BzPTEpCisoOSByb3dzKQorCistLSBVc2lu ZyAxLWFyZyBQUkVWIChpbXBsaWNpdCBvZmZzZXQgMSkKK0NSRUFURSBWSUVXIHJwcl9ldl9uYXZf cHJldjEgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDMwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1Qg Uk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyBUUlVFLAor ICAgICAgICBCIEFTIHYgPiBQUkVWKHYpCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfbmF2X3ByZXYxJyksIEUnXG4nKSkg QVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk58REVGSU5FfFBSRVZ8TkVYVCc7CisgICAgICAg ICAgbGluZSAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJO IChhIGIrKSAKKyAgIERFRklORQorICAgYiBBUyAodiA+IFBSRVYodikpICk7CisoMyByb3dzKQor CistLSBVc2luZyAxLWFyZyBORVhUIChpbXBsaWNpdCBvZmZzZXQgMSkKK0NSRUFURSBWSUVXIHJw cl9ldl9uYXZfbmV4dDEgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVf c2VyaWVzKDEsIDMwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQ QVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBB UyBUUlVFLAorICAgICAgICBCIEFTIHYgPCBORVhUKHYpCispOworU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfbmF2X25leHQxJyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk58REVGSU5FfFBSRVZ8TkVYVCc7 CisgICAgICAgICAgbGluZSAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg ICBQQVRURVJOIChhIGIrKSAKKyAgIERFRklORQorICAgYiBBUyAodiA8IE5FWFQodikpICk7Ciso MyByb3dzKQorCistLSBVc2luZyAyLWFyZyBQUkVWIChleHBsaWNpdCBvZmZzZXQpCitDUkVBVEUg VklFVyBycHJfZXZfbmF2X3ByZXYyIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdl bmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENI IFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FCisgICAg ICAgIEEgQVMgVFJVRSwKKyAgICAgICAgQiBBUyB2ID4gUFJFVih2LCAyKQorKTsKK1NFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X25h dl9wcmV2MicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOfERFRklORXxQ UkVWfE5FWFQnOworICAgICAgICAgICAgICAgICBsaW5lICAgICAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOIChhIGIrKSAKKyAg IERFRklORQorICAgYiBBUyAodiA+IFBSRVYodiwgKDIpOjpiaWdpbnQpKSApOworKDMgcm93cykK KworLS0gVXNpbmcgMi1hcmcgTkVYVCAoZXhwbGljaXQgb2Zmc2V0KQorQ1JFQVRFIFZJRVcgcnBy X2V2X25hdl9uZXh0MiBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMzApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORQorICAgICAgICBBIEFT IFRSVUUsCisgICAgICAgIEIgQVMgdiA8IE5FWFQodiwgMikKKyk7CitTRUxFQ1QgbGluZSBGUk9N IHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9uYXZfbmV4dDIn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTnxERUZJTkV8UFJFVnxORVhU JzsKKyAgICAgICAgICAgICAgICAgbGluZSAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYSBiKykgCisgICBERUZJTkUK KyAgIGIgQVMgKHYgPCBORVhUKHYsICgyKTo6YmlnaW50KSkgKTsKKygzIHJvd3MpCisKKy0tIFVz aW5nIE5VTEwgY29tcGFyaXNvbnMKK0NSRUFURSBWSUVXIHJwcl9ldl9kZWZfbnVsbCBBUworU0VM RUNUIGNvdW50KCopIE9WRVIgdworRlJPTSAoCisgICAgU0VMRUNUIENBU0UgV0hFTiB2ICUgNSA9 IDAgVEhFTiBOVUxMIEVMU0UgdiBFTkQgQVMgdgorICAgIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDMwKSB2CispIHQKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBS T1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHYgSVMgTk9UIE5VTEwsIEIg QVMgdiBJUyBOVUxMCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfZGVmX251bGwnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgbGluZSAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tCisgICBQQVRURVJOIChhKyBiKSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2Zp bHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcg T0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gKAorICAgIFNF TEVDVCBDQVNFIFdIRU4gdiAlIDUgPSAwIFRIRU4gTlVMTCBFTFNFIHYgRU5EIEFTIHYKKyAgICBG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgdgorKSB0CitXSU5ET1cgdyBBUyAoCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUg QSBBUyB2IElTIE5PVCBOVUxMLCBCIEFTIHYgSVMgTlVMTAorKTsnKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgcnByX2V4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTMwLjAwIGxvb3BzPTEpCisg ICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORykKKyAgIFBhdHRlcm46IGErIiBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAg U3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAgTkZBIFN0YXRlczogMyBw ZWFrLCA1NSB0b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czogMiBwZWFrLCAzMSB0b3Rh bCwgMCBwcnVuZWQKKyAgIE5GQTogNiBtYXRjaGVkIChsZW4gNS81LzUuMCksIDAgbWlzbWF0Y2hl ZAorICAgTkZBOiAxOCBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCA2IHNraXBwZWQgKGxlbiAxLzEv MS4wKQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHYgKGFjdHVhbCBy b3dzPTMwLjAwIGxvb3BzPTEpCisoMTAgcm93cykKKworLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBMYXJnZSBTY2FsZSBT dGF0aXN0aWNzIFZlcmlmaWNhdGlvbgorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSA1MDAgcm93cyAtIHZlcmlmeSBzdGF0 aXN0aWNzIHNjYWxlIGNvcnJlY3RseQorQ1JFQVRFIFZJRVcgcnByX2V2X3NjYWxlXzUwMHJvd3Mg QVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwMCkg QVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwor ICAgIFBBVFRFUk4gKEErIEIgQykKKyAgICBERUZJTkUgQSBBUyB2ICUgMTAgPCA3LCBCIEFTIHYg JSAxMCA9IDcsIEMgQVMgdiAlIDEwID0gOAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3NjYWxlXzUwMHJvd3MnKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgIGxpbmUgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYSsgYiBjKSAKKygxIHJvdykK KworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJT IE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgq KSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwMCkgQVMgcyh2KQorV0lORE9XIHcg QVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIg QykKKyAgICBERUZJTkUgQSBBUyB2ICUgMTAgPCA3LCBCIEFTIHYgJSAxMCA9IDcsIEMgQVMgdiAl IDEwID0gOAorKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5fZmls dGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0Fn ZyAoYWN0dWFsIHJvd3M9NTAwLjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGEr IiBiIGMKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBTdG9yYWdlOiBNZW1vcnkgIE1heGlt dW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVzOiAzIHBlYWssIDg1MSB0b3RhbCwgMCBtZXJn ZWQKKyAgIE5GQSBDb250ZXh0czogMyBwZWFrLCA1MDEgdG90YWwsIDEwMSBwcnVuZWQKKyAgIE5G QTogNTAgbWF0Y2hlZCAobGVuIDgvOS85LjApLCAwIG1pc21hdGNoZWQKKyAgIE5GQTogMjk5IGFi c29yYmVkIChsZW4gMS8xLzEuMCksIDUwIHNraXBwZWQgKGxlbiAxLzEvMS4wKQorICAgLT4gIEZ1 bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUwMC4wMCBsb29w cz0xKQorKDEwIHJvd3MpCisKKy0tIEhpZ2ggbWF0Y2ggY291bnQgc2NlbmFyaW8KK0NSRUFURSBW SUVXIHJwcl9ldl9zY2FsZV9oaWdoX21hdGNoIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIpCisgICAgREVGSU5F IEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYgJSAyID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3NjYWxlX2hpZ2hfbWF0 Y2gnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgbGlu ZSAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoYSBiKSAKKygxIHJvdykK KworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJT IE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgq KSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwMCkgQVMgcyh2KQorV0lORE9XIHcg QVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQikK KyAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCispOycpOworICAgICAg ICAgICAgICAgICAgICAgICAgICBycHJfZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93cz01MDAuMDAg bG9vcHM9MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSBiCisgICBOYXYgTWFyayBMb29rYmFj azogMAorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAgTkZBIFN0 YXRlczogMiBwZWFrLCA1MDEgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDIgcGVh aywgNTAxIHRvdGFsLCAwIHBydW5lZAorICAgTkZBOiAyNTAgbWF0Y2hlZCAobGVuIDIvMi8yLjAp LCAwIG1pc21hdGNoZWQKKyAgIE5GQTogMCBhYnNvcmJlZCwgMjUwIHNraXBwZWQgKGxlbiAxLzEv MS4wKQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCBy b3dzPTUwMC4wMCBsb29wcz0xKQorKDEwIHJvd3MpCisKKy0tIEhpZ2ggc2tpcCBjb3VudCBzY2Vu YXJpbworQ1JFQVRFIFZJRVcgcnByX2V2X3NjYWxlX2hpZ2hfc2tpcCBBUworU0VMRUNUIGNvdW50 KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTAwKSBBUyBzKHYpCitXSU5ET1cg dyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBC IEMgRCBFKQorICAgIERFRklORQorICAgICAgICBBIEFTIHYgJSAxMDAgPSAxLAorICAgICAgICBC IEFTIHYgJSAxMDAgPSAyLAorICAgICAgICBDIEFTIHYgJSAxMDAgPSAzLAorICAgICAgICBEIEFT IHYgJSAxMDAgPSA0LAorICAgICAgICBFIEFTIHYgJSAxMDAgPSA1CispOworU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfc2NhbGVf aGlnaF9za2lwJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAg ICAgICAgIGxpbmUgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRF Uk4gKGEgYiBjIGQgZSkgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwor RVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VN TUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmllcygx LCA1MDApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFT VCBST1cKKyAgICBQQVRURVJOIChBIEIgQyBEIEUpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMg diAlIDEwMCA9IDEsCisgICAgICAgIEIgQVMgdiAlIDEwMCA9IDIsCisgICAgICAgIEMgQVMgdiAl IDEwMCA9IDMsCisgICAgICAgIEQgQVMgdiAlIDEwMCA9IDQsCisgICAgICAgIEUgQVMgdiAlIDEw MCA9IDUKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRl ciAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cg KGFjdHVhbCByb3dzPTUwMC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhIGIg YyBkIGUKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBTdG9yYWdlOiBNZW1vcnkgIE1heGlt dW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVzOiAyIHBlYWssIDUwMSB0b3RhbCwgMCBtZXJn ZWQKKyAgIE5GQSBDb250ZXh0czogMyBwZWFrLCA1MDEgdG90YWwsIDQ5MCBwcnVuZWQKKyAgIE5G QTogNSBtYXRjaGVkIChsZW4gNS81LzUuMCksIDAgbWlzbWF0Y2hlZAorICAgTkZBOiAwIGFic29y YmVkLCA1IHNraXBwZWQgKGxlbiAxLzEvMS4wKQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2Vu ZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUwMC4wMCBsb29wcz0xKQorKDEwIHJvd3MpCisK Ky0tCistLSBQbGFubmVyIG9wdGltaXphdGlvbjogb3B0aW1pemVfd2luZG93X2NsYXVzZXMgbXVz dCBub3QgYWx0ZXIgUlBSIGZyYW1lCistLQorLS0gb3B0aW1pemVfd2luZG93X2NsYXVzZXMoKSBy ZXBsYWNlcyBmcmFtZSBvcHRpb25zIHZpYSBwcm9zdXBwb3J0IGZ1bmN0aW9ucy4KKy0tIEFmZmVj dGVkIGZ1bmN0aW9uczogcm93X251bWJlciwgcmFuaywgZGVuc2VfcmFuaywgcGVyY2VudF9yYW5r LCBjdW1lX2Rpc3QsCistLSBudGlsZS4gIEFsbCB3b3VsZCBjaGFuZ2UgdGhlIGZyYW1lIHRvIFJP V1MgVU5CT1VOREVEIFBSRUNFRElORywgYnJlYWtpbmcKKy0tIFJQUidzIHJlcXVpcmVkIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORy4KKy0tIFRlc3Qgd2l0 aCByb3dfbnVtYmVyKCkgYXMgcmVwcmVzZW50YXRpdmUgY2FzZS4KKy0tCistLSBXaXRob3V0IFJQ Ujogcm93X251bWJlcigpIGZyYW1lIGlzIG9wdGltaXplZCB0byBST1dTIFVOQk9VTkRFRCBQUkVD RURJTkcKK0NSRUFURSBWSUVXIHJwcl9ldl9vcHRfbm9fcnByIEFTCitTRUxFQ1Qgcm93X251bWJl cigpIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTApIEFTIHModikKK1dJTkRPVyB3 IEFTICgKKyAgICBPUkRFUiBCWSB2CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCispOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9N IHJwcl9ldl9vcHRfbm9fcnByOworICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU3VicXVlcnkgU2NhbiBvbiBycHJf ZXZfb3B0X25vX3JwcgorICAgLT4gIFdpbmRvd0FnZworICAgICAgICAgV2luZG93OiB3IEFTIChP UkRFUiBCWSBzLnYgUk9XUyBVTkJPVU5ERUQgUFJFQ0VESU5HKQorICAgICAgICAgLT4gIFNvcnQK KyAgICAgICAgICAgICAgIFNvcnQgS2V5OiBzLnYKKyAgICAgICAgICAgICAgIC0+ICBGdW5jdGlv biBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzCisoNiByb3dzKQorCistLSBXaXRoIFJQUjogZnJh bWUgbXVzdCByZW1haW4gUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCitDUkVBVEUgVklFVyBycHJfZXZfb3B0X3dpdGhfcnByIEFTCitTRUxFQ1Qgcm93X251 bWJlcigpIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTApIEFTIHModikKK1dJTkRP VyB3IEFTICgKKyAgICBPUkRFUiBCWSB2CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X CisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUKKyAgICAgICAgQiBBUyB2ID4gUFJFVih2 KQorKTsKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBycHJfZXZfb3B0X3dpdGhf cnByOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgU3VicXVlcnkgU2NhbiBvbiBycHJfZXZfb3B0X3dpdGhfcnByCisgICAtPiAg V2luZG93QWdnCisgICAgICAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIHMudiBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICAgICAgICBQYXR0ZXJu OiBhIGIrCisgICAgICAgICBOYXYgTWFyayBMb29rYmFjazogMQorICAgICAgICAgLT4gIFNvcnQK KyAgICAgICAgICAgICAgIFNvcnQgS2V5OiBzLnYKKyAgICAgICAgICAgICAgIC0+ICBGdW5jdGlv biBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzCisoOCByb3dzKQorCistLQorLS0gUGxhbm5lciBv cHRpbWl6YXRpb246IG5vbi1SUFIgYW5kIFJQUiB3aW5kb3dzIHRoYXQgc2hhcmUgdGhlIHNhbWUg YmFzZSBmcmFtZQorLS0gYWZ0ZXIgZnJhbWUgb3B0aW1pemF0aW9uIGFyZSBrZXB0IGFzIHNlcGFy YXRlIFdpbmRvd0FnZyBub2Rlcy4KKy0tCitDUkVBVEUgVklFVyBycHJfZXZfb3B0X21peGVkIEFT CitTRUxFQ1QKKyAgICByb3dfbnVtYmVyKCkgT1ZFUiB3X25vcm1hbCBBUyBybl9ub3JtYWwsCisg ICAgcm93X251bWJlcigpIE9WRVIgd19ycHIgQVMgcm5fcnByCitGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCA1KSBBUyBzKHYpCitXSU5ET1cKKyAgICB3X25vcm1hbCBBUyAoT1JERVIgQlkgdiBSQU5H RSBCRVRXRUVOIFVOQk9VTkRFRCBQUkVDRURJTkcgQU5EIENVUlJFTlQgUk9XKSwKKyAgICB3X3Jw ciBBUyAoCisgICAgICAgIE9SREVSIEJZIHYKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEErKQorICAgICAg ICBERUZJTkUgQSBBUyB2ID4gMQorICAgICk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAq IEZST00gcnByX2V2X29wdF9taXhlZDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU3VicXVlcnkgU2NhbiBvbiBy cHJfZXZfb3B0X21peGVkCisgICAtPiAgV2luZG93QWdnCisgICAgICAgICBXaW5kb3c6IHdfcnBy IEFTIChPUkRFUiBCWSBzLnYgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HKQorICAgICAgICAgUGF0dGVybjogYSsiCisgICAgICAgICBOYXYgTWFyayBMb29r YmFjazogMAorICAgICAgICAgLT4gIFdpbmRvd0FnZworICAgICAgICAgICAgICAgV2luZG93OiB3 X25vcm1hbCBBUyAoT1JERVIgQlkgcy52IFJPV1MgVU5CT1VOREVEIFBSRUNFRElORykKKyAgICAg ICAgICAgICAgIC0+ICBTb3J0CisgICAgICAgICAgICAgICAgICAgICBTb3J0IEtleTogcy52Cisg ICAgICAgICAgICAgICAgICAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMg cworKDEwIHJvd3MpCisKKy0tCistLSBQbGFubmVyIG9wdGltaXphdGlvbjogZmluZF93aW5kb3df cnVuX2NvbmRpdGlvbnMgbXVzdCBub3QgcHVzaCBkb3duCistLSBSUFIgd2luZG93IGZ1bmN0aW9u IHJlc3VsdHMgYXMgUnVuIENvbmRpdGlvbnMuCistLQorLS0gZmluZF93aW5kb3dfcnVuX2NvbmRp dGlvbnMoKSBwdXNoZXMgV0hFUkUgZmlsdGVycyBvbiBtb25vdG9uaWMgd2luZG93CistLSBmdW5j dGlvbnMgaW50byBXaW5kb3dBZ2cgYXMgUnVuIENvbmRpdGlvbnMgZm9yIGVhcmx5IHRlcm1pbmF0 aW9uLgorLS0gV2l0aCBSUFIncyByZXF1aXJlZCBmcmFtZSAoUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQKKy0tIEZPTExPV0lORyksIHRoZSBtb25vdG9uaWMgZGlyZWN0aW9u IGRldGVybWluZXMgd2hpY2ggb3BlcmF0b3JzIHRyaWdnZXIKKy0tIFJ1biBDb25kaXRpb24gcHVz aGRvd246CistLSAgIElOQ1JFQVNJTkcgKDw9KTogcm93X251bWJlciwgcmFuaywgZGVuc2VfcmFu aywgcGVyY2VudF9yYW5rLAorLS0gICAgICAgICAgICAgICAgICAgIGN1bWVfZGlzdCwgbnRpbGUK Ky0tICAgREVDUkVBU0lORyAoPik6ICBjb3VudCgqKSAodmlhIGludDhpbmMsIEVORF9VTkJPVU5E RURfRk9MTE9XSU5HKQorLS0gUlBSIHdpbmRvdyBmdW5jdGlvbiByZXN1bHRzIGFyZSBtYXRjaC1k ZXBlbmRlbnQsIG5vdCBtb25vdG9uaWMuCistLSBUZXN0IHdpdGggY291bnQoKikgPiAwIGFzIHJl cHJlc2VudGF0aXZlIGNhc2UuCistLQorLS0gV2l0aG91dCBSUFI6IGNvdW50KCopID4gMCBpcyBw dXNoZWQgZG93biBhcyBSdW4gQ29uZGl0aW9uCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1Qg KiBGUk9NICgKKyAgICBTRUxFQ1QgY291bnQoKikgT1ZFUiB3IEFTIGNudAorICAgIEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDEwKSBBUyBzKHYpCisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBP UkRFUiBCWSB2CisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgICkKKykgdCBXSEVSRSBjbnQgPiAwOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU3VicXVlcnkgU2Nh biBvbiB0CisgICAtPiAgV2luZG93QWdnCisgICAgICAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZ IHMudiBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisg ICAgICAgICBSdW4gQ29uZGl0aW9uOiAoY291bnQoKikgT1ZFUiB3ID4gMCkKKyAgICAgICAgIC0+ ICBTb3J0CisgICAgICAgICAgICAgICBTb3J0IEtleTogcy52CisgICAgICAgICAgICAgICAtPiAg RnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcworKDcgcm93cykKKworLS0gV2l0aCBS UFI6IGNvdW50KCopID4gMCBtdXN0IG5vdCBiZSBwdXNoZWQgZG93biBhcyBSdW4gQ29uZGl0aW9u CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgKiBGUk9NICgKKyAgICBTRUxFQ1QgY291bnQo KikgT1ZFUiB3IEFTIGNudAorICAgIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwKSBBUyBzKHYp CisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBPUkRFUiBCWSB2CisgICAgICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBBRlRFUiBN QVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAg REVGSU5FCisgICAgICAgICAgICBCIEFTIHYgPiBQUkVWKHYpCisgICAgKQorKSB0IFdIRVJFIGNu dCA+IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBTdWJxdWVyeSBTY2FuIG9uIHQKKyAgIEZpbHRlcjogKHQuY250ID4gMCkK KyAgIC0+ICBXaW5kb3dBZ2cKKyAgICAgICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgcy52IFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgICAgICAg IFBhdHRlcm46IGEgYisKKyAgICAgICAgIE5hdiBNYXJrIExvb2tiYWNrOiAxCisgICAgICAgICAt PiAgU29ydAorICAgICAgICAgICAgICAgU29ydCBLZXk6IHMudgorICAgICAgICAgICAgICAgLT4g IEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMKKyg5IHJvd3MpCisKKy0tID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0gTmF2IE1hcmsgTG9va2JhY2svTG9va2FoZWFkIFRlc3RzCistLSBWZXJpZmllcyBwbGFubmVy LWNvbXB1dGVkIG5hdmlnYXRpb24gb2Zmc2V0cyBmb3IgdHVwbGVzdG9yZSB0cmltLgorLS0gTG9v a2JhY2s6IGhvdyBmYXIgYmFjayBmcm9tIGN1cnJlbnRwb3MgKFBSRVYsIExBU1QsIGNvbXBvdW5k IFBSRVZfTEFTVC9ORVhUX0xBU1QpLgorLS0gTG9va2FoZWFkOiBob3cgZmFyIGZvcndhcmQgZnJv bSBtYXRjaF9zdGFydCAoRklSU1QsIGNvbXBvdW5kIFBSRVZfRklSU1QvTkVYVF9GSVJTVCkuCist LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tIFByZXBhcmUgc3RhdGVtZW50IGZvciBob3N0IHZhcmlhYmxlIG9mZnNldCB0ZXN0 IGJlbG93CitQUkVQQVJFIHJwcl9uYXZfb2Zmc2V0X3ByZXAoaW50OCkgQVMKK1NFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFT ICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2ID4gUFJFVih2LCAkMSkKKyk7Cist LSBObyBuYXZpZ2F0aW9uIGZ1bmN0aW9uOiBvZmZzZXQgMAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBT RUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitX SU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgdiA+IDAKKyk7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46 IGErIgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdl bmVyYXRlX3NlcmllcyBzCisoNSByb3dzKQorCistLSBORVhUIG9ubHk6IG5vIGJhY2t3YXJkIG5h dmlnYXRpb24sIG9mZnNldCAwCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFTICgKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQ QVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2IDwgTkVYVCh2KQorKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSsiCisgICBO YXYgTWFyayBMb29rYmFjazogMAorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2Vy aWVzIHMKKyg1IHJvd3MpCisKKy0tIFBSRVYodik6IGltcGxpY2l0IG9mZnNldCAxCitFWFBMQUlO IChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVz KDEsMTApIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBB UyB2ID4gUFJFVih2KQorKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAg IFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HKQorICAgUGF0dGVybjogYSsiCisgICBOYXYgTWFyayBMb29rYmFjazogMQorICAgLT4g IEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMKKyg1IHJvd3MpCisKKy0tIFBSRVYo diwgMyk6IGV4cGxpY2l0IGNvbnN0YW50IG9mZnNldCAzCitFWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJ TkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyB2ID4gUFJFVih2LCAz KQorKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBB UyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAg UGF0dGVybjogYSsiCisgICBOYXYgTWFyayBMb29rYmFjazogMworICAgLT4gIEZ1bmN0aW9uIFNj YW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMKKyg1IHJvd3MpCisKKy0tIFR3byBQUkVWIHdpdGggZGlm ZmVyZW50IG9mZnNldHM6IG1heCgxLCA1KSA9IDUKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNU IGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9X IHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYodiwgMSkgPCB2IEFO RCBQUkVWKHYsIDUpIDwgdgorKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cK KyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HKQorICAgUGF0dGVybjogYSsiCisgICBOYXYgTWFyayBMb29rYmFjazogNQorICAg LT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMKKyg1IHJvd3MpCisKKy0tIEhv c3QgdmFyaWFibGUgb2Zmc2V0OiBjdXN0b20gcGxhbiByZXNvbHZlcyAkMT0yIHRvIGNvbnN0YW50 IDIKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBycHJfbmF2X29mZnNldF9wcmVwKDIpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJu OiBhKyIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAyCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBn ZW5lcmF0ZV9zZXJpZXMgcworKDUgcm93cykKKworLS0gRm9yY2UgZ2VuZXJpYyBwbGFuOiBvZmZz ZXQgYmVjb21lcyAicnVudGltZSIgKFBhcmFtIG5vZGUpCitTRVQgcGxhbl9jYWNoZV9tb2RlID0g Zm9yY2VfZ2VuZXJpY19wbGFuOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHJwcl9uYXZf b2Zmc2V0X3ByZXAoMik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBX aW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORykKKyAgIFBhdHRlcm46IGErIgorICAgTmF2IE1hcmsgTG9va2JhY2s6IHJ1bnRpbWUKKyAg IC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzCisoNSByb3dzKQorCitSRVNF VCBwbGFuX2NhY2hlX21vZGU7CitERUFMTE9DQVRFIHJwcl9uYXZfb2Zmc2V0X3ByZXA7CistLSBG SVJTVCh2KTogcmV0YWluIGFsbCAocmVmZXJlbmNlcyBtYXRjaF9zdGFydCByb3cpCitFWFBMQUlO IChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVz KDEsMTApIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBB UyB2ID4gRklSU1QodikKKyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisg ICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORykKKyAgIFBhdHRlcm46IGErCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgTmF2 IE1hcmsgTG9va2FoZWFkOiAwCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJp ZXMgcworKDYgcm93cykKKworLS0gTEFTVCh2LCAxKTogYmFja3dhcmQgcmVhY2ggMSwgc2FtZSBh cyBQUkVWKHYsIDEpCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcK K0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJO IChBKykKKyAgICBERUZJTkUgQSBBUyBMQVNUKHYsIDEpID4gMAorKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSsKKyAgIE5hdiBN YXJrIExvb2tiYWNrOiAxCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMg cworKDUgcm93cykKKworLS0gTEFTVCh2KSB3aXRob3V0IG9mZnNldCArIFBSRVYodik6IG5vIG1h dGNoX3N0YXJ0IGRlcGVuZGVuY3ksIG9mZnNldCAxCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVD VCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRP VyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBMQVNUKHYpID4gUFJFVih2 KQorKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBB UyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAg UGF0dGVybjogYSsiCisgICBOYXYgTWFyayBMb29rYmFjazogMQorICAgLT4gIEZ1bmN0aW9uIFNj YW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMKKyg1IHJvd3MpCisKKy0tIENvbXBvdW5kIFBSRVYoRklS U1QodmFsLCAxKSwgMik6IGxvb2tiYWNrIGZyb20gbWF0Y2hfc3RhcnQsIGZpcnN0T2Zmc2V0ID0g MS0yID0gLTEKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEr KQorICAgIERFRklORSBBIEFTIFBSRVYoRklSU1QodiwgMSksIDIpID4gMAorKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSsKKyAg IE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBOYXYgTWFyayBMb29rYWhlYWQ6IC0xCisgICAtPiAg RnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcworKDYgcm93cykKKworLS0gQ29tcG91 bmQgTkVYVChGSVJTVCh2YWwpLCAzKTogZmlyc3RPZmZzZXQgPSAwKzMgPSAzCitFWFBMQUlOIChD T1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEs MTApIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBO RVhUKEZJUlNUKHYpLCAzKSA+IDAKKyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVF UlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93 QWdnCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGErCisgICBOYXYgTWFyayBMb29rYmFjazogMAor ICAgTmF2IE1hcmsgTG9va2FoZWFkOiAzCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0 ZV9zZXJpZXMgcworKDYgcm93cykKKworLS0gQ29tcG91bmQgUFJFVihMQVNUKHZhbCksIDIpOiBs b29rYmFjayA9IDArMiA9IDIKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIE9W RVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBB VFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYoTEFTVCh2KSwgMikgPiAwCispOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBh KyIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAyCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5l cmF0ZV9zZXJpZXMgcworKDUgcm93cykKKworLS0gQ29tcG91bmQgTkVYVChMQVNUKHZhbCwgMSks IDMpOiBsb29rYmFjayA9IG1heCgxLTMsIDApID0gMAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxF Q1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5E T1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgTkVYVChMQVNUKHYsIDEp LCAzKSA+IDAKKyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5k b3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RykKKyAgIFBhdHRlcm46IGErCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgLT4gIEZ1bmN0 aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMKKyg1IHJvd3MpCisKKy0tIENvbXBvdW5kIFBS RVYoTEFTVCh2YWwsIE4pLCBNKTogY29uc3RhbnQgbmVhci1vdmVyZmxvdyAoTitNIGp1c3QgZml0 cyBpbnQ2NCkKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEr KQorICAgIERFRklORSBBIEFTIFBSRVYoTEFTVCh2LCA0NjExNjg2MDE4NDI3Mzg3OTAzKSwgNDYx MTY4NjAxODQyNzM4NzkwMykgSVMgTk9UIE5VTEwKKyk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGErCisgICBOYXYgTWFyayBMb29r YmFjazogOTIyMzM3MjAzNjg1NDc3NTgwNgorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJh dGVfc2VyaWVzIHMKKyg1IHJvd3MpCisKKy0tIENvbXBvdW5kIFBSRVYoTEFTVCh2YWwsIE4pLCBN KTogY29uc3RhbnQgb3ZlcmZsb3cgLT4gcmV0YWluIGFsbAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBT RUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitX SU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgUFJFVihMQVNUKHYs IDQ2MTE2ODYwMTg0MjczODc5MDQpLCA0NjExNjg2MDE4NDI3Mzg3OTA0KSBJUyBOT1QgTlVMTAor KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAo Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0 dGVybjogYSsKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiByZXRhaW4gYWxsCisgICAtPiAgRnVuY3Rp b24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcworKDUgcm93cykKKworLS0gQ29tcG91bmQgTkVY VChGSVJTVCh2YWwsIE4pLCBNKTogY29uc3RhbnQgbG9va2FoZWFkIG92ZXJmbG93IC0+IG5vIHRy aW0gaW1wYWN0CistLSBOICsgTSBvdmVyZmxvd3MgaW50NjQsIGJ1dCB0YXJnZXQgaXMgZm9yd2Fy ZCBmcm9tIG1hdGNoX3N0YXJ0IHNvIGl0IG5ldmVyCistLSBjb25zdHJhaW5zIHRyaW0uICBMb29r YWhlYWQgcmVtYWlucyBhdCBkZWZhdWx0ICgwKS4KK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNU IGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9X IHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIE5FWFQoRklSU1QodiwgNDYx MTY4NjAxODQyNzM4NzkwNCksIDQ2MTE2ODYwMTg0MjczODc5MDQpIElTIE5PVCBOVUxMCispOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJu OiBhKworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIE5hdiBNYXJrIExvb2thaGVhZDogMAor ICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMKKyg2IHJvd3MpCisKKy0t IENvbXBvdW5kIFBSRVYoTEFTVCh2YWwsICQxKSwgJDIpOiBwYXJhbWV0ZXIgbG9va2JhY2sgb3Zl cmZsb3cgLT4gcmV0YWluIGFsbAorLS0gRVhQTEFJTiBzaG93cyAicnVudGltZSIgKHBsYW4tbGV2 ZWwpOyBFWFBMQUlOIEFOQUxZWkUgc2hvd3MgInJldGFpbiBhbGwiCistLSAoZXhlY3V0b3ItcmVz b2x2ZWQpLgorUFJFUEFSRSB0ZXN0X292ZXJmbG93X2xvb2tiYWNrKGludDgsIGludDgpIEFTCitT RUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitX SU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgUFJFVihMQVNUKHYs ICQxKSwgJDIpIElTIE5PVCBOVUxMCispOworU0VUIHBsYW5fY2FjaGVfbW9kZSA9IGZvcmNlX2dl bmVyaWNfcGxhbjsKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSB0ZXN0X292ZXJmbG93X2xv b2tiYWNrKDQ2MTE2ODYwMTg0MjczODc5MDQsIDQ2MTE2ODYwMTg0MjczODc5MDQpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhKwor ICAgTmF2IE1hcmsgTG9va2JhY2s6IHJ1bnRpbWUKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdl bmVyYXRlX3NlcmllcyBzCisoNSByb3dzKQorCitFWFBMQUlOIChDT1NUUyBPRkYsIEFOQUxZWkUs IFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorICAgIEVYRUNVVEUgdGVzdF9vdmVyZmxvd19sb29r YmFjayg0NjExNjg2MDE4NDI3Mzg3OTA0LCA0NjExNjg2MDE4NDI3Mzg3OTA0KTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTEwLjAwIGxvb3Bz PTEpCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGErCisgICBOYXYgTWFyayBMb29rYmFjazogcmV0 YWluIGFsbAorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IDE3a0IKKyAgIE5G QSBTdGF0ZXM6IDEgcGVhaywgMTEgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDIg cGVhaywgMTEgdG90YWwsIDEwIHBydW5lZAorICAgTkZBOiAwIG1hdGNoZWQsIDAgbWlzbWF0Y2hl ZAorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dz PTEwLjAwIGxvb3BzPTEpCisoOSByb3dzKQorCitSRVNFVCBwbGFuX2NhY2hlX21vZGU7CitERUFM TE9DQVRFIHRlc3Rfb3ZlcmZsb3dfbG9va2JhY2s7CistLSBDb21wb3VuZCBORVhUKEZJUlNUKHZh bCwgJDEpLCAkMik6IHBhcmFtZXRlciBsb29rYWhlYWQgb3ZlcmZsb3cgLT4gbm8gdHJpbSBpbXBh Y3QKK1BSRVBBUkUgdGVzdF9vdmVyZmxvd19sb29rYWhlYWQoaW50OCwgaW50OCkgQVMKK1NFTEVD VCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRP VyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBORVhUKEZJUlNUKHYsICQx KSwgJDIpIElTIE5PVCBOVUxMCispOworU0VUIHBsYW5fY2FjaGVfbW9kZSA9IGZvcmNlX2dlbmVy aWNfcGxhbjsKK0VYUExBSU4gKENPU1RTIE9GRiwgQU5BTFlaRSwgVElNSU5HIE9GRiwgU1VNTUFS WSBPRkYpCisgICAgRVhFQ1VURSB0ZXN0X292ZXJmbG93X2xvb2thaGVhZCg0NjExNjg2MDE4NDI3 Mzg3OTA0LCA0NjExNjg2MDE4NDI3Mzg3OTA0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTEwLjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcg QVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAg IFBhdHRlcm46IGErCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgTmF2IE1hcmsgTG9va2Fo ZWFkOiAwCisgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogMTdrQgorICAgTkZB IFN0YXRlczogMSBwZWFrLCAxMSB0b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czogMiBw ZWFrLCAxMSB0b3RhbCwgMTAgcHJ1bmVkCisgICBORkE6IDAgbWF0Y2hlZCwgMCBtaXNtYXRjaGVk CisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9 MTAuMDAgbG9vcHM9MSkKKygxMCByb3dzKQorCitSRVNFVCBwbGFuX2NhY2hlX21vZGU7CitERUFM TE9DQVRFIHRlc3Rfb3ZlcmZsb3dfbG9va2FoZWFkOworLS0gUFJFVih2KSArIFBSRVYodiwgJDEp OiBORUVEU19FVkFMIHBhdGggbXVzdCBhY2NvdW50IGZvciBpbXBsaWNpdCBsb29rYmFjaz0xCist LSBQcmV2aW91c2x5LCBldmFsX25hdl9tYXhfb2Zmc2V0X3dhbGtlciBza2lwcGVkIFBSRVYodikg d2hlbiBvZmZzZXRfYXJnIHdhcworLS0gTlVMTCwgY2F1c2luZyBtYXhPZmZzZXQ9MCB3aGVuICQx PTAsIHdoaWNoIHdvdWxkIHRyaW0gdGhlIHJvdyBuZWVkZWQgYnkKKy0tIFBSRVYodikuICBWZXJp ZnkgdGhpcyBleGVjdXRlcyB3aXRob3V0ICJjYW5ub3QgZmV0Y2ggcm93IGJlZm9yZSBtYXJrIiBl cnJvci4KK1BSRVBBUkUgdGVzdF9wcmV2X2ltcGxpY2l0X29mZnNldChpbnQ4KSBBUworU0VMRUNU IGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9X IHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYodikgSVMgTk9UIE5V TEwgQU5EIFBSRVYodiwgJDEpIElTIE5PVCBOVUxMCispOworRVhFQ1VURSB0ZXN0X3ByZXZfaW1w bGljaXRfb2Zmc2V0KDApOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisgICAgIDkKKyAgICAg MAorICAgICAwCisgICAgIDAKKyAgICAgMAorICAgICAwCisgICAgIDAKKyAgICAgMAorICAgICAw CisoMTAgcm93cykKKworREVBTExPQ0FURSB0ZXN0X3ByZXZfaW1wbGljaXRfb2Zmc2V0OworLS0g UnVudGltZSBlcnJvcjogbmVnYXRpdmUgb2Zmc2V0IGF0IGV4ZWN1dGlvbiB0aW1lCitQUkVQQVJF IHRlc3RfcnVudGltZV9uZWdfb2Zmc2V0KGludDgpIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3 CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVS TiAoQSspCisgICAgREVGSU5FIEEgQVMgUFJFVih2LCAkMSkgSVMgTk9UIE5VTEwKKyk7CitFWEVD VVRFIHRlc3RfcnVudGltZV9uZWdfb2Zmc2V0KC0xKTsKK0VSUk9SOiAgcm93IHBhdHRlcm4gbmF2 aWdhdGlvbiBvZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRpdmUKK0RFQUxMT0NBVEUgdGVzdF9ydW50 aW1lX25lZ19vZmZzZXQ7CistLSBSdW50aW1lIGVycm9yOiBudWxsIG9mZnNldCBhdCBleGVjdXRp b24gdGltZQorUFJFUEFSRSB0ZXN0X3J1bnRpbWVfbnVsbF9vZmZzZXQoaW50OCkgQVMKK1NFTEVD VCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRP VyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVWKHYsICQxKSBJUyBO T1QgTlVMTAorKTsKK0VYRUNVVEUgdGVzdF9ydW50aW1lX251bGxfb2Zmc2V0KE5VTEwpOworRVJS T1I6ICByb3cgcGF0dGVybiBuYXZpZ2F0aW9uIG9mZnNldCBtdXN0IG5vdCBiZSBudWxsCitERUFM TE9DQVRFIHRlc3RfcnVudGltZV9udWxsX29mZnNldDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnByX2ludGVncmF0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcnByX2ludGVncmF0aW9uLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uMGNjNzliNzU2MDEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Jwcl9pbnRlZ3JhdGlvbi5vdXQKQEAgLTAsMCArMSwxNTE4IEBACistLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tIFJQUiBJbnRlZ3JhdGlvbiBUZXN0cworLS0gUGxhbm5lciBvcHRpbWl6YXRpb24gaW50ZXJh Y3Rpb24gdGVzdHMgZm9yIFJvdyBQYXR0ZXJuIFJlY29nbml0aW9uCistLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tCistLSBW ZXJpZmllcyB0aGF0IGVhY2ggcGxhbm5lciBvcHRpbWl6YXRpb24gY29ycmVjdGx5IGhhbmRsZXMg UlBSIHdpbmRvd3MuCistLSBFdmVuIGlmIGluZGl2aWR1YWwgb3B0aW1pemF0aW9ucyBhcmUgdGVz dGVkIGVsc2V3aGVyZSwgdGhpcyBmaWxlCistLSBwcm92aWRlcyBhIHNpbmdsZSBjaGVja3BvaW50 IGZvciBhbGwgcGxhbm5lci9SUFIgaW50ZXJhY3Rpb25zLgorLS0KKy0tIEEuIFBsYW5uZXIgT3B0 aW1pemF0aW9uIFByb3RlY3Rpb24gVGVzdHMKKy0tICAgIEExLiBGcmFtZSBvcHRpbWl6YXRpb24g YnlwYXNzCistLSAgICBBMi4gUnVuIGNvbmRpdGlvbiBwdXNoZG93biBieXBhc3MKKy0tICAgIEEz LiBXaW5kb3cgZGVkdXAgcHJldmVudGlvbiAoUlBSIHZzIG5vbi1SUFIpCistLSAgICBBNC4gV2lu ZG93IGRlZHVwIHByZXZlbnRpb24gKHNhbWUgUEFUVEVSTiwgZGlmZmVyZW50IERFRklORSkKKy0t ICAgIEE1LiBVbnVzZWQgd2luZG93IHJlbW92YWwgcHJldmVudGlvbgorLS0gICAgQTYuIEludmVy c2UgdHJhbnNpdGlvbiBieXBhc3MKKy0tICAgIEE3LiBDb3N0IGVzdGltYXRpb24gUlBSIGF3YXJl bmVzcworLS0gICAgQTguIFN1YnF1ZXJ5IGZsYXR0ZW5pbmcgcHJldmVudGlvbgorLS0gICAgQTku IERFRklORSBleHByZXNzaW9uIG5vbi1wcm9wYWdhdGlvbgorLS0gICAgQTEwLiBSUFIgKyBMSU1J VAorLS0KKy0tIEIuIEludGVncmF0aW9uIFNjZW5hcmlvIFRlc3RzCistLSAgICBCMS4gUlBSICsg Q1RFCistLSAgICBCMi4gUlBSICsgSk9JTgorLS0gICAgQjMuIFJQUiArIFNldCBvcGVyYXRpb25z CistLSAgICBCNC4gUlBSICsgUHJlcGFyZWQgc3RhdGVtZW50cworLS0gICAgQjUuIFJQUiArIFBh cnRpdGlvbmVkIHRhYmxlCistLSAgICBCNi4gUlBSICsgTEFURVJBTAorLS0gICAgQjcuIFJQUiAr IFJlY3Vyc2l2ZSBDVEUKKy0tICAgIEI4LiBSUFIgKyBJbmNyZW1lbnRhbCBzb3J0CistLSAgICBC OS4gUlBSICsgVm9sYXRpbGUgZnVuY3Rpb24gaW4gREVGSU5FCistLSAgICBCMTAuIFJQUiArIENv cnJlbGF0ZWQgc3VicXVlcnkKKy0tCitDUkVBVEUgVEFCTEUgcnByX2ludGVnIChpZCBJTlQsIHZh bCBJTlQpOworSU5TRVJUIElOVE8gcnByX2ludGVnIFZBTFVFUworICAgICgxLCAxMCksICgyLCAy MCksICgzLCAxNSksICg0LCAyNSksICg1LCA1KSwKKyAgICAoNiwgMzApLCAoNywgMzUpLCAoOCwg MjApLCAoOSwgNDApLCAoMTAsIDQ1KTsKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gQTEuIEZyYW1lIG9wdGltaXphdGlv biBieXBhc3MKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0gVmVyaWZ5IHRoYXQgb3B0aW1pemVfd2luZG93X2NsYXVzZXMo KSBkb2VzIG5vdCBhcHBseSBmcmFtZQorLS0gb3B0aW1pemF0aW9uIHRvIFJQUiB3aW5kb3dzLiAg Qm90aCBxdWVyaWVzIGJlbG93IHVzZSB0aGUgc2FtZSBpbnB1dAorLS0gZnJhbWUgKFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykgd2l0aAorLS0gcm93X251 bWJlcigpLCB3aG9zZSBwcm9zdXBwb3J0IGhhbmRsZXMKKy0tIFN1cHBvcnRSZXF1ZXN0T3B0aW1p emVXaW5kb3dDbGF1c2UgYW5kIHRyaWdnZXJzIGZyYW1lIHJld3JpdGluZy4KKy0tIEluIHRoZSBu b24tUlBSIGJhc2VsaW5lIHRoZSBwbGFubmVyIHJld3JpdGVzIHRoZSBmcmFtZSB0byBST1dTCist LSBVTkJPVU5ERUQgUFJFQ0VESU5HLCB3aGlsZSBpbiB0aGUgUlBSIGNhc2UgdGhlIGd1YXJkIGlu CistLSBvcHRpbWl6ZV93aW5kb3dfY2xhdXNlcygpIGJsb2NrcyB0aGUgcmV3cml0ZSBhbmQgdGhl IGZyYW1lIGlzCistLSBwcmVzZXJ2ZWQgYXMgc3BlY2lmaWVkLgorLS0gTm9uLVJQUiBiYXNlbGlu ZTogdGhlIHBsYW5uZXIgcmV3cml0ZXMgdGhlIGZyYW1lIHRvIFJPV1MgVU5CT1VOREVEIFBSRUNF RElORy4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCByb3dfbnVtYmVyKCkgT1ZFUiB3IEZS T00gcnByX2ludGVnCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpOworICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2lu ZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIFVOQk9VTkRFRCBQUkVDRURJTkcpCisgICAtPiAg U29ydAorICAgICAgICAgU29ydCBLZXk6IGlkCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnBy X2ludGVnCisoNSByb3dzKQorCistLSBSUFIgY2FzZTogdGhlIGZyYW1lIGlzIHByZXNlcnZlZCBh cyBzcGVjaWZpZWQuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1Qgcm93X251bWJlcigpIE9W RVIgdyBGUk9NIHJwcl9pbnRlZworV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAo QSBCKykKKyAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3 IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhIGIrCisgICBOYXYgTWFyayBMb29rYmFjazogMQorICAg LT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9u IHJwcl9pbnRlZworKDcgcm93cykKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBBMi4gUnVuIGNvbmRpdGlvbiBwdXNo ZG93biBieXBhc3MKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0gVmVyaWZ5IHRoYXQgZmluZF93aW5kb3dfcnVuX2NvbmRp dGlvbnMoKSBkb2VzIG5vdCBwdXNoIGEgbW9ub3RvbmljCistLSBmaWx0ZXIgZG93biBhcyBhIFJ1 biBDb25kaXRpb24gb24gUlBSIHdpbmRvd3MuICBSUFIgbWF0Y2ggY291bnRzIGFyZQorLS0gZGV0 ZXJtaW5lZCBieSBwYXR0ZXJuIG1hdGNoaW5nIHJhdGhlciB0aGFuIGJ5IGEgbW9ub3RvbmljCist LSBhY2N1bXVsYXRpb24gb3ZlciB0aGUgZnJhbWUsIHNvIGEgZmlsdGVyIHN1Y2ggYXMgImNudCA+ IDAiIGNhbm5vdCBiZQorLS0gdXNlZCB0byBzdG9wIGV2YWx1YXRpbmcgdGhlIHdpbmRvdyBmdW5j dGlvbiBlYXJseS4KKy0tIE5vbi1SUFIgYmFzZWxpbmU6IHRoZSBmaWx0ZXIgaXMgZXhwZWN0ZWQg dG8gYXBwZWFyIGFzIGEgUnVuIENvbmRpdGlvbi4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVD VCAqIEZST00gKAorICAgIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBy cHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorKSB0IFdIRVJFIGNudCA+ IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTdWJxdWVyeSBTY2FuIG9uIHQKKyAgIC0+ICBX aW5kb3dBZ2cKKyAgICAgICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgcnByX2ludGVnLmlkIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgICAgICAg IFJ1biBDb25kaXRpb246IChjb3VudCgqKSBPVkVSIHcgPiAwKQorICAgICAgICAgLT4gIFNvcnQK KyAgICAgICAgICAgICAgIFNvcnQgS2V5OiBycHJfaW50ZWcuaWQKKyAgICAgICAgICAgICAgIC0+ ICBTZXEgU2NhbiBvbiBycHJfaW50ZWcKKyg3IHJvd3MpCisKKy0tIFJQUiBjYXNlOiB0aGUgZmls dGVyIG11c3QgYXBwZWFyIGFzIGEgRmlsdGVyIGFib3ZlIHRoZSBXaW5kb3dBZ2csCistLSBub3Qg YXMgYSBSdW4gQ29uZGl0aW9uLgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUICogRlJPTSAo CisgICAgU0VMRUNUIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKKyAgICBGUk9NIHJwcl9pbnRlZwor ICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAg ICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorKSB0IFdIRVJFIGNudCA+IDA7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTdWJxdWVyeSBTY2FuIG9uIHQKKyAgIEZpbHRlcjogKHQu Y250ID4gMCkKKyAgIC0+ICBXaW5kb3dBZ2cKKyAgICAgICAgIFdpbmRvdzogdyBBUyAoT1JERVIg QlkgcnByX2ludGVnLmlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORykKKyAgICAgICAgIFBhdHRlcm46IGEgYisKKyAgICAgICAgIE5hdiBNYXJrIExvb2ti YWNrOiAxCisgICAgICAgICAtPiAgU29ydAorICAgICAgICAgICAgICAgU29ydCBLZXk6IHJwcl9p bnRlZy5pZAorICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZworKDkgcm93 cykKKworLS0gVmVyaWZ5IHRoYXQgdGhlIFJQUiBxdWVyeSBzdGlsbCByZXR1cm5zIGV2ZXJ5IHJv dyB3aG9zZSBtYXRjaCBjb3VudCBpcworLS0gZ3JlYXRlciB0aGFuIHplcm8sIGNvbmZpcm1pbmcg dGhlIGZpbHRlciBpcyBldmFsdWF0ZWQgYWJvdmUgdGhlCistLSBXaW5kb3dBZ2cgcmF0aGVyIHRo YW4gY3V0dGluZyBvZmYgcGF0dGVybiBtYXRjaGluZyBwcmVtYXR1cmVseS4KK1NFTEVDVCAqIEZS T00gKAorICAgIFNFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJP TSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRF Uk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKykgdCBXSEVS RSBjbnQgPiAwCitPUkRFUiBCWSBpZDsKKyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0rLS0t LS0KKyAgMSB8ICAxMCB8ICAgMgorICAzIHwgIDE1IHwgICAyCisgIDUgfCAgIDUgfCAgIDMKKyAg OCB8ICAyMCB8ICAgMworKDQgcm93cykKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBBMy4gV2luZG93IGRlZHVwIHBy ZXZlbnRpb24gKFJQUiB2cyBub24tUlBSKQorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBWZXJpZnkgdGhhdCBQb3N0Z3Jl U1FMIGRvZXMgbm90IG1lcmdlIGFuIFJQUiB3aW5kb3cgd2l0aCBhIG5vbi1SUFIKKy0tIHdpbmRv dyBldmVuIHdoZW4gYm90aCBzaGFyZSB0aGUgc2FtZSBPUkRFUiBCWSBhbmQgZnJhbWUKKy0tIHNw ZWNpZmljYXRpb24uICBSUFIgcGF0dGVybiBtYXRjaGluZyBwcm9kdWNlcyByZXN1bHRzIHRoYXQg YXJlCistLSBzZW1hbnRpY2FsbHkgZGlmZmVyZW50IGZyb20gYSBwbGFpbiBmcmFtZS1iYXNlZCBh Z2dyZWdhdGUsIHNvIHRoZQorLS0gdHdvIHdpbmRvd3MgbXVzdCByZW1haW4gYXMgc2VwYXJhdGUg V2luZG93QWdnIG5vZGVzLiAgSW5saW5lIHdpbmRvdworLS0gc3BlY3MgYXJlIHVzZWQgdGhyb3Vn aG91dCB0aGlzIHNlY3Rpb24gYmVjYXVzZSBvbmx5IGlubGluZSB3aW5kb3dzCistLSBhcmUgc3Vi amVjdCB0byB0aGUgZGVkdXAgcGF0aDsgZGlzdGluY3QgbmFtZWQgd2luZG93cyBhcmUgYWx3YXlz CistLSBrZXB0IHNlcGFyYXRlIHJlZ2FyZGxlc3Mgb2YgZXF1aXZhbGVuY2UuCistLSBOb24tUlBS IGJhc2VsaW5lOiB0d28gaW5saW5lIHdpbmRvd3Mgd2l0aCBpZGVudGljYWwgc3BlYyBhcmUKKy0t IGRlZHVwZWQgYnkgdGhlIHBsYW5uZXIgaW50byBhIHNpbmdsZSBXaW5kb3dBZ2cgbm9kZSwgY29u ZmlybWluZworLS0gdGhhdCB0aGUgZGVkdXAgcGF0aCBpcyBhY3RpdmUgZm9yIG5vbi1SUFIgd2lu ZG93cy4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVAorICAgIGNvdW50KCopIE9WRVIgKE9S REVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORykgQVMgY250LAorICAgIHN1bSh2YWwpICBPVkVSIChPUkRFUiBCWSBpZAorICAg ICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpIEFT IHRvdGFsCitGUk9NIHJwcl9pbnRlZzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3MSBBUyAoT1JERVIgQlkg aWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAg LT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9u IHJwcl9pbnRlZworKDUgcm93cykKKworLS0gQW4gaW5saW5lIFJQUiB3aW5kb3cgYW5kIGFuIGlu bGluZSBub24tUlBSIHdpbmRvdyBzaGFyZSB0aGUgc2FtZQorLS0gT1JERVIgQlkgYW5kIGZyYW1l IGJ1dCBtdXN0IHJlbWFpbiBhcyBkaXN0aW5jdCBXaW5kb3dBZ2cgbm9kZXMuCitFWFBMQUlOIChD T1NUUyBPRkYpCitTRUxFQ1QKKyAgICBjb3VudCgqKSBPVkVSIChPUkRFUiBCWSBpZAorICAgICAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAg ICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKSBB UyBycHJfY250LAorICAgIGNvdW50KCopIE9WRVIgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykgQVMgbm9ybWFsX2Nu dAorRlJPTSBycHJfaW50ZWc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdzIgQVMgKE9S REVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RykKKyAgIC0+ICBXaW5kb3dBZ2cKKyAgICAgICAgIFdpbmRvdzogdzEgQVMgKE9SREVSIEJZIGlk IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgICAg ICAgIFBhdHRlcm46IGEgYisKKyAgICAgICAgIE5hdiBNYXJrIExvb2tiYWNrOiAxCisgICAgICAg ICAtPiAgU29ydAorICAgICAgICAgICAgICAgU29ydCBLZXk6IGlkCisgICAgICAgICAgICAgICAt PiAgU2VxIFNjYW4gb24gcnByX2ludGVnCisoOSByb3dzKQorCistLSBWZXJpZnkgdGhhdCB0aGUg dHdvIHdpbmRvd3MgcmV0dXJuIGluZGVwZW5kZW50IGNvdW50cyBwZXIgcm93LAorLS0gY29uZmly bWluZyB0aGV5IHdlcmUgbm90IG1lcmdlZCBpbnRvIGEgc2luZ2xlIFdpbmRvd0FnZy4KK1NFTEVD VAorICAgIGlkLCB2YWwsCisgICAgY291bnQoKikgT1ZFUiAoT1JERVIgQlkgaWQKKyAgICAgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAg IFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkgQVMg cnByX2NudCwKKyAgICBjb3VudCgqKSBPVkVSIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpIEFTIG5vcm1hbF9jbnQK K0ZST00gcnByX2ludGVnCitPUkRFUiBCWSBpZDsKKyBpZCB8IHZhbCB8IHJwcl9jbnQgfCBub3Jt YWxfY250IAorLS0tLSstLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgIDEgfCAgMTAgfCAg ICAgICAyIHwgICAgICAgICAxMAorICAyIHwgIDIwIHwgICAgICAgMCB8ICAgICAgICAgIDkKKyAg MyB8ICAxNSB8ICAgICAgIDIgfCAgICAgICAgICA4CisgIDQgfCAgMjUgfCAgICAgICAwIHwgICAg ICAgICAgNworICA1IHwgICA1IHwgICAgICAgMyB8ICAgICAgICAgIDYKKyAgNiB8ICAzMCB8ICAg ICAgIDAgfCAgICAgICAgICA1CisgIDcgfCAgMzUgfCAgICAgICAwIHwgICAgICAgICAgNAorICA4 IHwgIDIwIHwgICAgICAgMyB8ICAgICAgICAgIDMKKyAgOSB8ICA0MCB8ICAgICAgIDAgfCAgICAg ICAgICAyCisgMTAgfCAgNDUgfCAgICAgICAwIHwgICAgICAgICAgMQorKDEwIHJvd3MpCisKKy0t ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0gQTQuIFdpbmRvdyBkZWR1cCBwcmV2ZW50aW9uIChzYW1lIFBBVFRFUk4sIGRpZmZl cmVudCBERUZJTkUpCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tIFZlcmlmeSB0aGF0IGlubGluZS13aW5kb3cgZGVkdXAg ZG9lcyBub3QgbWVyZ2UgdHdvIFJQUiB3aW5kb3dzCistLSB0aGF0IHNoYXJlIHRoZSBzYW1lIFBB VFRFUk4gc3RydWN0dXJlIGJ1dCBoYXZlIGRpZmZlcmVudCBERUZJTkUKKy0tIGNvbmRpdGlvbnMu ICBFdmVuIHRob3VnaCB0aGUgT1JERVIgQlksIGZyYW1lLCBhbmQgUEFUVEVSTiBjb2luY2lkZSwK Ky0tIHRoZSBkaWZmZXJpbmcgREVGSU5FIGV4cHJlc3Npb25zIGNsYXNzaWZ5IHJvd3MgZGlmZmVy ZW50bHkgYW5kCistLSBtdXN0IHRoZXJlZm9yZSB5aWVsZCB0d28gc2VwYXJhdGUgV2luZG93QWdn IG5vZGVzLiAgSW5saW5lIHNwZWNzCistLSBhcmUgdXNlZCBoZXJlIGJlY2F1c2UgZGVkdXAgb25s eSBhcHBsaWVzIHRvIGlubGluZSB3aW5kb3dzLgorLS0gQmFzZWxpbmU6IHR3byBpbmxpbmUgUlBS IHdpbmRvd3MgdGhhdCBhcmUgc3RydWN0dXJhbGx5IGlkZW50aWNhbAorLS0gKHNhbWUgT1JERVIg QlksIGZyYW1lLCBQQVRURVJOLCBhbmQgREVGSU5FKSBhcmUgZGVkdXBlZCBieSB0aGUKKy0tIHBh cnNlciBpbnRvIGEgc2luZ2xlIFdpbmRvd0FnZyBub2RlLCBjb25maXJtaW5nIHRoYXQgcGFyc2Vy LWxldmVsCistLSBkZWR1cCBpcyBhY3RpdmUgZm9yIFJQUiB3aW5kb3dzIHdob3NlIERFRklORSBt YXRjaGVzLgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUCisgICAgY291bnQoKikgT1ZFUiAo T1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFT IHZhbCA+IFBSRVYodmFsKSkgQVMgY250LAorICAgIHN1bSh2YWwpICBPVkVSIChPUkRFUiBCWSBp ZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJF Vih2YWwpKSBBUyB0b3RhbAorRlJPTSBycHJfaW50ZWc7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdzEgQVMg KE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORykKKyAgIFBhdHRlcm46IGEgYisKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAxCisgICAtPiAg U29ydAorICAgICAgICAgU29ydCBLZXk6IGlkCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnBy X2ludGVnCisoNyByb3dzKQorCistLSBUd28gaW5saW5lIFJQUiB3aW5kb3dzIHdpdGggdGhlIHNh bWUgUEFUVEVSTiBidXQgb3Bwb3NpdGUgREVGSU5FCistLSBjb25kaXRpb25zIG11c3QgcmVtYWlu IGFzIHNlcGFyYXRlIFdpbmRvd0FnZyBub2Rlcy4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVD VAorICAgIGNvdW50KCopIE9WRVIgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBIEIr KQorICAgICAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpIEFTIGNudF91cCwKKyAgICBj b3VudCgqKSBPVkVSIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAg ICAgREVGSU5FIEIgQVMgdmFsIDwgUFJFVih2YWwpKSBBUyBjbnRfZG93bgorRlJPTSBycHJfaW50 ZWc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdzIgQVMgKE9SREVSIEJZIGlkIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46 IGEgYisKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAxCisgICAtPiAgV2luZG93QWdnCisgICAgICAg ICBXaW5kb3c6IHcxIEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICAgICAgICBQYXR0ZXJuOiBhIGIrCisgICAgICAgICBO YXYgTWFyayBMb29rYmFjazogMQorICAgICAgICAgLT4gIFNvcnQKKyAgICAgICAgICAgICAgIFNv cnQgS2V5OiBpZAorICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZworKDEx IHJvd3MpCisKKy0tIFZlcmlmeSB0aGF0IHRoZSB0d28gd2luZG93cyByZXR1cm4gZGlmZmVyZW50 IGNvdW50cyBwZXIgcm93LAorLS0gY29uZmlybWluZyB0aGUgREVGSU5FIGNvbmRpdGlvbnMgd2Vy ZSBub3QgY29sbGFwc2VkIGJ5IGRlZHVwLgorU0VMRUNUCisgICAgaWQsIHZhbCwKKyAgICBjb3Vu dCgqKSBPVkVSIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAg REVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKSBBUyBjbnRfdXAsCisgICAgY291bnQoKikgT1ZF UiAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBC IEFTIHZhbCA8IFBSRVYodmFsKSkgQVMgY250X2Rvd24KK0ZST00gcnByX2ludGVnCitPUkRFUiBC WSBpZDsKKyBpZCB8IHZhbCB8IGNudF91cCB8IGNudF9kb3duIAorLS0tLSstLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tCisgIDEgfCAgMTAgfCAgICAgIDIgfCAgICAgICAgMAorICAyIHwgIDIwIHwg ICAgICAwIHwgICAgICAgIDIKKyAgMyB8ICAxNSB8ICAgICAgMiB8ICAgICAgICAwCisgIDQgfCAg MjUgfCAgICAgIDAgfCAgICAgICAgMgorICA1IHwgICA1IHwgICAgICAzIHwgICAgICAgIDAKKyAg NiB8ICAzMCB8ICAgICAgMCB8ICAgICAgICAwCisgIDcgfCAgMzUgfCAgICAgIDAgfCAgICAgICAg MgorICA4IHwgIDIwIHwgICAgICAzIHwgICAgICAgIDAKKyAgOSB8ICA0MCB8ICAgICAgMCB8ICAg ICAgICAwCisgMTAgfCAgNDUgfCAgICAgIDAgfCAgICAgICAgMAorKDEwIHJvd3MpCisKKy0tID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorLS0gQTUuIFVudXNlZCB3aW5kb3cgcmVtb3ZhbCBwcmV2ZW50aW9uCistLSA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFZl cmlmeSB0aGF0IHJlbW92ZV91bnVzZWRfc3VicXVlcnlfb3V0cHV0cygpIGRvZXMgbm90IGRyb3Ag YW4gUlBSCistLSB3aW5kb3cgZnVuY3Rpb24gZXZlbiB3aGVuIHRoZSBvdXRlciBxdWVyeSBkb2Vz IG5vdCByZWZlcmVuY2UgaXRzCistLSByZXN1bHQuICBUaGUgUlBSIFdpbmRvd0FnZyBub2RlIGlz IHJlc3BvbnNpYmxlIGZvciBwZXJmb3JtaW5nIHBhdHRlcm4KKy0tIG1hdGNoaW5nLCBzbyByZW1v dmluZyB0aGUgd2luZG93IGZ1bmN0aW9uIHdvdWxkIHNpbGVudGx5IHNraXAgdGhlCistLSBwYXR0 ZXJuIG1hdGNoIGV2ZW4gdGhvdWdoIHRoZSBzdXJyb3VuZGluZyBxdWVyeSBzdGlsbCBkZXBlbmRz IG9uCistLSBSUFIgc2VtYW50aWNzLgorLS0gVGhlIG91dGVyIHF1ZXJ5IGlnbm9yZXMgdGhlIHBl ci1yb3cgd2luZG93IHJlc3VsdCwgeWV0IHBhdHRlcm4KKy0tIG1hdGNoaW5nIG11c3Qgc3RpbGwg ZXhlY3V0ZS4gIFRoZSBwbGFuIG11c3Qgc3RpbGwgY29udGFpbiBhCistLSBXaW5kb3dBZ2cgbm9k ZSBiZWxvdyB0aGUgb3V0ZXIgQWdncmVnYXRlOyBpZiB0aGUgd2luZG93IHdlcmUKKy0tIHJlbW92 ZWQsIG9ubHkgQWdncmVnYXRlICsgU2VxIFNjYW4gd291bGQgYXBwZWFyLgorRVhQTEFJTiAoQ09T VFMgT0ZGKQorU0VMRUNUIGNvdW50KCopIEZST00gKAorICAgIFNFTEVDVCBjb3VudCgqKSBPVkVS IHcgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoCisgICAgICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChB KykKKyAgICAgICAgREVGSU5FIEEgQVMgdmFsID4gUFJFVih2YWwpKQorKSB0OworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIFdpbmRvd0FnZwor ICAgICAgICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcpCisgICAgICAgICBQYXR0ZXJuOiBhKyIKKyAgICAgICAgIE5hdiBNYXJr IExvb2tiYWNrOiAxCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnCisoNiByb3dz KQorCitTRUxFQ1QgY291bnQoKikgRlJPTSAoCisgICAgU0VMRUNUIGNvdW50KCopIE9WRVIgdyBG Uk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFTICgKKyAgICAgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEErKQor ICAgICAgICBERUZJTkUgQSBBUyB2YWwgPiBQUkVWKHZhbCkpCispIHQ7CisgY291bnQgCistLS0t LS0tCisgICAgMTAKKygxIHJvdykKKworLS0gVGhlIERFRklORSBleHByZXNzaW9uIHJlZmVyZW5j ZXMgUFJFVih2YWwpLCBzbyB0aGUgd2luZG93IG11c3QgYmUKKy0tIHByZXNlcnZlZCBldmVuIGlm IHRoZSBvdXRlciBxdWVyeSBvbmx5IGFnZ3JlZ2F0ZXMgb3ZlciB0aGUgY291bnQuCistLSBUaGUg cGxhbiBtdXN0IHN0aWxsIGNvbnRhaW4gYSBXaW5kb3dBZ2cgd2l0aCB0aGUgUEFUVEVSTi9ERUZJ TkUKKy0tIGludGFjdC4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBjb3VudCgqKSwgc3Vt KGMpIEZST00gKAorICAgIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcgQVMgYyBGUk9NIHJwcl9pbnRl ZworICAgIFdJTkRPVyB3IEFTICgKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEErKQorICAgICAgICBERUZJ TkUgQSBBUyB2YWwgPiBQUkVWKHZhbCkpCispIHQ7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgV2luZG93QWdnCisgICAgICAgICBXaW5kb3c6 IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykK KyAgICAgICAgIFBhdHRlcm46IGErIgorICAgICAgICAgTmF2IE1hcmsgTG9va2JhY2s6IDEKKyAg ICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfaW50ZWcKKyg2IHJvd3MpCisKK1NFTEVDVCBjb3Vu dCgqKSwgc3VtKGMpIEZST00gKAorICAgIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcgQVMgYyBGUk9N IHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFTICgKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEErKQorICAg ICAgICBERUZJTkUgQSBBUyB2YWwgPiBQUkVWKHZhbCkpCispIHQ7CisgY291bnQgfCBzdW0gCist LS0tLS0tKy0tLS0tCisgICAgMTAgfCAgIDYKKygxIHJvdykKKworLS0gVGhlIERFRklORSBleHBy ZXNzaW9uIGNvbnRhaW5zIG5vIG5hdmlnYXRpb24sIGJ1dCB0aGUgUlBSIHdpbmRvdworLS0gbXVz dCBzdGlsbCBiZSBwcmVzZXJ2ZWQgYmVjYXVzZSB0aGUgbWF0Y2ggc3RydWN0dXJlIGl0c2VsZiBh ZmZlY3RzCistLSB0aGUgY291bnQuICBUaGUgcGxhbiBtdXN0IHJldGFpbiB0aGUgV2luZG93QWdn LgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGNvdW50KCopLCBzdW0oYykgRlJPTSAoCisg ICAgU0VMRUNUIGNvdW50KCopIE9WRVIgdyBBUyBjIEZST00gcnByX2ludGVnCisgICAgV0lORE9X IHcgQVMgKAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSspCisgICAgICAgIERFRklORSBBIEFTIFRSVUUp CispIHQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisg ICAtPiAgV2luZG93QWdnCisgICAgICAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgICAgICAgIFBhdHRlcm46IGErIgor ICAgICAgICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBy cHJfaW50ZWcKKyg2IHJvd3MpCisKK1NFTEVDVCBjb3VudCgqKSwgc3VtKGMpIEZST00gKAorICAg IFNFTEVDVCBjb3VudCgqKSBPVkVSIHcgQVMgYyBGUk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3 IEFTICgKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEErKQorICAgICAgICBERUZJTkUgQSBBUyBUUlVFKQor KSB0OworIGNvdW50IHwgc3VtIAorLS0tLS0tLSstLS0tLQorICAgIDEwIHwgIDEwCisoMSByb3cp CisKKy0tIFhYWDogInZhbCIgaXMgbm9uLXJlc2p1bmsgaW4gdGhlIHN1YnF1ZXJ5IG91dHB1dCBh bmQgaXMgbm90CistLSByZWZlcmVuY2VkIGJ5IHRoZSBvdXRlciBxdWVyeS4gIFdpdGhvdXQgYSBn dWFyZCwKKy0tIHJlbW92ZV91bnVzZWRfc3VicXVlcnlfb3V0cHV0cygpIHdvdWxkIHJlcGxhY2Ug aXQgd2l0aCBOVUxMIGluCistLSB0aGUgc3VicXVlcnkgb3V0cHV0LCBhbmQgdGhhdCByZXBsYWNl bWVudCBwcm9wYWdhdGVzIHRvIHRoZQorLS0gc2NhbidzIHRhcmdldGxpc3QgLS0gREVGSU5FIHdv dWxkIHRoZW4gZXZhbHVhdGUgd2l0aCBOVUxMCistLSBpbnB1dHMuICBUaGUgdGFyZ2V0bGlzdCBo YXMgbm8gd2F5IHRvIGRpc3Rpbmd1aXNoICJleHBvc2VkIHRvCistLSB0aGUgb3V0ZXIgcXVlcnki IGZyb20gInJlZmVyZW5jZWQgb25seSBieSBERUZJTkUiLCBzbyB0aGUKKy0tIG9wdGltaXphdGlv biBjYW5ub3QgYmUgYXBwbGllZCBzZWxlY3RpdmVseS4gIFRoZSBjb2x1bW4gZ3VhcmQKKy0tIGlu IGFsbHBhdGhzLmMgYmxvY2tzIHRoaXMgcmVwbGFjZW1lbnQgZm9yIGFueSBjb2x1bW4gcmVmZXJl bmNlZAorLS0gYnkgYW4gUlBSIERFRklORSBjbGF1c2UsIGtlZXBpbmcgdGhlIFdpbmRvd0FnZyB3 aXRoIERFRklORQorLS0gYWN0aXZlIGluIHRoZSBwbGFuLgorRVhQTEFJTiAoQ09TVFMgT0ZGKQor U0VMRUNUIGNvdW50KCopIEZST00gKAorICAgIFNFTEVDVCB2YWwsIGNvdW50KCopIE9WRVIgdyBG Uk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFU VEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorKSB0Owor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgV2luZG93QWdnCisgICAg ICAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIHJwcl9pbnRlZy5pZCBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICAgICAgICBQYXR0ZXJuOiBhIGIr CisgICAgICAgICBOYXYgTWFyayBMb29rYmFjazogMQorICAgICAgICAgLT4gIFNvcnQKKyAgICAg ICAgICAgICAgIFNvcnQgS2V5OiBycHJfaW50ZWcuaWQKKyAgICAgICAgICAgICAgIC0+ICBTZXEg U2NhbiBvbiBycHJfaW50ZWcKKyg4IHJvd3MpCisKK1NFTEVDVCBjb3VudCgqKSBGUk9NICgKKyAg ICBTRUxFQ1QgdmFsLCBjb3VudCgqKSBPVkVSIHcgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cg dyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklO RSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKykgdDsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAxMAor KDEgcm93KQorCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tIEE2LiBJbnZlcnNlIHRyYW5zaXRpb24gYnlwYXNzCistLSA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tIFZlcmlmeSB0aGF0IFJQUiB3aW5kb3dzIGRvIG5vdCB1c2UgdGhlIG1vdmluZyBhZ2dy ZWdhdGUgKGludmVyc2UKKy0tIHRyYW5zaXRpb24pIG9wdGltaXphdGlvbi4gIE1vdmluZyBhZ2dy ZWdhdGVzIG1haW50YWluIHN0YXRlIGJ5CistLSBhZGRpbmcgYXJyaXZpbmcgcm93cyBhbmQgc3Vi dHJhY3RpbmcgbGVhdmluZyByb3dzLCBidXQgYW4gUlBSCistLSByZWR1Y2VkIGZyYW1lIGlzIG5v dCBhIHNsaWRpbmcgd2luZG93OyB0aGUgc2V0IG9mIHJvd3MgaW5jbHVkZWQgaW4KKy0tIHRoZSBm cmFtZSBpcyBkZXRlcm1pbmVkIGJ5IHBhdHRlcm4gbWF0Y2hpbmcgYW5kIGNhbm5vdCBiZSBkZXJp dmVkCistLSBpbmNyZW1lbnRhbGx5IGZyb20gdGhlIHByZXZpb3VzIGZyYW1lLgorLS0gc3VtKCkg d291bGQgbm9ybWFsbHkgYmUgZWxpZ2libGUgZm9yIHRoZSBtb3ZpbmcgYWdncmVnYXRlCistLSBv cHRpbWl6YXRpb247IHVuZGVyIFJQUiBpdCBtdXN0IGJlIGNvbXB1dGVkIGZyb20gc2NyYXRjaCBv dmVyIGVhY2gKKy0tIHJlZHVjZWQgZnJhbWUsIGFuZCB0aGUgcmV0dXJuZWQgdmFsdWVzIG11c3Qg bWF0Y2ggdGhlIHBhdHRlcm4uCistLSBOb3RlOiBpbnZlcnNlLXRyYW5zaXRpb24gc2VsZWN0aW9u IGlzIG5vdCBleHBvc2VkIGluIHRoZSBwbGFuLCBzbworLS0gdGhlcmUgaXMgbm8gZGlyZWN0IEVY UExBSU4gYXNzZXJ0aW9uIGZvciBpdC4gIFRoZSBzdHJ1Y3R1cmFsCistLSBndWFyYW50ZWUgaXMg dGhhdCBSUFIgdXNlcyBpdHMgb3duIG5hdmlnYXRpb24gbWFyaywgZGlzdGluY3QgZnJvbQorLS0g dGhlIG1vdmluZy1hZ2dyZWdhdGUgbWFyaywgc28gdGhlIGludmVyc2UtdHJhbnNpdGlvbiBwYXRo IGlzCistLSBuZXZlciByZWFjaGVkIG9uIHRoZSBSUFIgc2lkZS4gIFRoaXMgdGVzdCB2ZXJpZmll cyB0aGF0CistLSBzZXBhcmF0aW9uIGluZGlyZWN0bHk6IGlmIGludmVyc2UgdHJhbnNpdGlvbiBs ZWFrZWQgaW50byB0aGUgUlBSCistLSBwYXRoLCBzdGF0ZSB3b3VsZCBtaXggYWNyb3NzIG1hdGNo IGJvdW5kYXJpZXMgYW5kIHBhdHRlcm5fc3VtCistLSB3b3VsZCBkaXZlcmdlIGZyb20gdGhlIGV4 cGVjdGVkIG91dHB1dCwgZmFpbGluZyB0aGUgcmVncmVzc2lvbi4KK1NFTEVDVCBpZCwgdmFsLAor ICAgIHN1bSh2YWwpIE9WRVIgdyBBUyBwYXR0ZXJuX3N1bQorRlJPTSBycHJfaW50ZWcKK1dJTkRP VyB3IEFTIChPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEIgQVMgdmFs ID4gUFJFVih2YWwpKQorT1JERVIgQlkgaWQ7CisgaWQgfCB2YWwgfCBwYXR0ZXJuX3N1bSAKKy0t LS0rLS0tLS0rLS0tLS0tLS0tLS0tLQorICAxIHwgIDEwIHwgICAgICAgICAgMzAKKyAgMiB8ICAy MCB8ICAgICAgICAgICAgCisgIDMgfCAgMTUgfCAgICAgICAgICA0MAorICA0IHwgIDI1IHwgICAg ICAgICAgICAKKyAgNSB8ICAgNSB8ICAgICAgICAgIDcwCisgIDYgfCAgMzAgfCAgICAgICAgICAg IAorICA3IHwgIDM1IHwgICAgICAgICAgICAKKyAgOCB8ICAyMCB8ICAgICAgICAgMTA1CisgIDkg fCAgNDAgfCAgICAgICAgICAgIAorIDEwIHwgIDQ1IHwgICAgICAgICAgICAKKygxMCByb3dzKQor CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tIEE3LiBDb3N0IGVzdGltYXRpb24gUlBSIGF3YXJlbmVzcworLS0gPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LSBjb3N0X3dpbmRvd2FnZygpIG11c3QgYWNjb3VudCBmb3IgREVGSU5FIGV4cHJlc3Npb24gZXZh bHVhdGlvbiBjb3N0LgorLS0gVmVyaWZ5IFJQUiBXaW5kb3dBZ2cgY29zdCA+IG5vbi1SUFIgV2lu ZG93QWdnIGNvc3QuCitDUkVBVEUgRlVOQ1RJT04gZ2V0X3dpbmRvd2FnZ19jb3N0KHF1ZXJ5IHRl eHQpIFJFVFVSTlMgbnVtZXJpYyBBUyAkJAorREVDTEFSRQorICAgIHBsYW4ganNvbjsKKyAgICBj b3N0IG51bWVyaWM7CitCRUdJTgorICAgIEVYRUNVVEUgJ0VYUExBSU4gKEZPUk1BVCBKU09OKSAn IHx8IHF1ZXJ5IElOVE8gcGxhbjsKKyAgICBjb3N0IDo9IChwbGFuLT4wLT4nUGxhbictPj4nVG90 YWwgQ29zdCcpOjpudW1lcmljOworICAgIFJFVFVSTiBjb3N0OworRU5EOworJCQgTEFOR1VBR0Ug cGxwZ3NxbDsKK1NFTEVDVCBnZXRfd2luZG93YWdnX2Nvc3QoCisgICAgJ1NFTEVDVCBjb3VudCgq KSBPVkVSIHcgRlJPTSBycHJfaW50ZWcKKyAgICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAg ICAgICAgICAgUEFUVEVSTiAoQSBCKyBDKykgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpLCBD IEFTIHZhbCA8IFBSRVYodmFsKSknKQorICAgID4KKyAgICBnZXRfd2luZG93YWdnX2Nvc3QoCisg ICAgJ1NFTEVDVCBjb3VudCgqKSBPVkVSIHcgRlJPTSBycHJfaW50ZWcKKyAgICAgV0lORE9XIHcg QVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORyknKQorICAgIEFTIHJwcl9jb3N0X2lzX2hpZ2hlcjsKKyBycHJfY29zdF9pc19oaWdo ZXIgCistLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworRFJPUCBGVU5DVElPTiBn ZXRfd2luZG93YWdnX2Nvc3QodGV4dCk7CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEE4LiBTdWJxdWVyeSBmbGF0dGVu aW5nIHByZXZlbnRpb24KKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0gVmVyaWZ5IHRoYXQgYSBzdWJxdWVyeSBjb250YWlu aW5nIGFuIFJQUiB3aW5kb3cgaXMgbm90IGZsYXR0ZW5lZAorLS0gaW50byB0aGUgb3V0ZXIgcXVl cnkuICBpc19zaW1wbGVfc3VicXVlcnkoKSBhbHJlYWR5IGJsb2NrcyBwdWxsdXAKKy0tIGZvciBz dWJxdWVyaWVzIHdpdGggd2luZG93IGZ1bmN0aW9ucyBpbiBnZW5lcmFsOyB0aGlzIHRlc3QgY29u ZmlybXMKKy0tIHRoZSBydWxlIGNvbnRpbnVlcyB0byBhcHBseSB0byBSUFIgd2luZG93cywgc28g RVhQTEFJTiBtdXN0IHN0aWxsCistLSBzaG93IGEgU3VicXVlcnkgU2NhbiBhYm92ZSB0aGUgUlBS IFdpbmRvd0FnZy4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCAqIEZST00gKAorICAgIFNF TEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBycHJfaW50ZWcK KyAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisg ICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKykgc3ViCitXSEVSRSBjbnQgPiAw OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU3VicXVlcnkgU2NhbiBvbiBzdWIKKyAgIEZpbHRl cjogKHN1Yi5jbnQgPiAwKQorICAgLT4gIFdpbmRvd0FnZworICAgICAgICAgV2luZG93OiB3IEFT IChPUkRFUiBCWSBycHJfaW50ZWcuaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HKQorICAgICAgICAgUGF0dGVybjogYSBiKworICAgICAgICAgTmF2IE1h cmsgTG9va2JhY2s6IDEKKyAgICAgICAgIC0+ICBTb3J0CisgICAgICAgICAgICAgICBTb3J0IEtl eTogcnByX2ludGVnLmlkCisgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVn CisoOSByb3dzKQorCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tIEE5LiBERUZJTkUgZXhwcmVzc2lvbiBub24tcHJvcGFn YXRpb24KKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0gVmVyaWZ5IHRoYXQgREVGSU5FIGV4cHJlc3Npb25zIGFyZSBub3Qg cHJvcGFnYXRlZCBpbnRvIHRoZQorLS0gdGFyZ2V0bGlzdCBvZiBhbnkgdXBwZXIgV2luZG93QWdn IG5vZGUuICBPbmx5IHRoZSBjb2x1bW4gcmVmZXJlbmNlcworLS0gY29uc3VtZWQgYnkgREVGSU5F IHNob3VsZCBiZSBwYXNzZWQgdXA7IHRoZSBmdWxsIERFRklORSBleHByZXNzaW9uCistLSBpcyBt ZWFuaW5nZnVsIG9ubHkgaW5zaWRlIHRoZSBSUFIgV2luZG93QWdnIHRoYXQgb3ducyBpdC4KKy0t IEVYUExBSU4gVkVSQk9TRSBpcyB0aGVyZWZvcmUgZXhwZWN0ZWQgdG8gc2hvdyBhIGNsZWFuIHRh cmdldGxpc3Qgb24KKy0tIHRoZSBvdXRlciBXaW5kb3dBZ2csIHdpdGggbm8gREVGSU5FLWRlcml2 ZWQgZXhwcmVzc2lvbiBsZWFraW5nIGluLgorLS0gTm90ZTogY29sdW1ucyByZWZlcmVuY2VkIGJ5 IERFRklORSAoZS5nLiwgInZhbCIpIG1heSBhcHBlYXIgYXMKKy0tIHJlc2p1bmsgZW50cmllcyBp biB1cHBlciBXaW5kb3dBZ2cgdGFyZ2V0bGlzdHMgLS0gdGhhdCBpcyBhCistLSBoYXJtbGVzcyBi eXByb2R1Y3Qgb2YgdGhlIGNvbHVtbiBndWFyZCdzIGJyb2FkIHNjb3BlIGFuZCBkb2VzIG5vdAor LS0gYWZmZWN0IGNsaWVudCBvdXRwdXQuICBUaGUgY2xhaW0gaGVyZSBpcyBsaW1pdGVkIHRvIHRo ZSBmdWxsCistLSBERUZJTkUgYm9vbGVhbiBleHByZXNzaW9uLgorRVhQTEFJTiAoVkVSQk9TRSwg Q09TVFMgT0ZGKQorU0VMRUNUCisgICAgY291bnQoKikgT1ZFUiB3X3JwciBBUyBycHJfY250LAor ICAgIGNvdW50KCopIE9WRVIgd19ub3JtYWwgQVMgbm9ybWFsX2NudAorRlJPTSBycHJfaW50ZWcK K1dJTkRPVworICAgIHdfcnByIEFTIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBC KykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKSwKKyAgICB3X25vcm1hbCBB UyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93 QWdnCisgICBPdXRwdXQ6IChjb3VudCgqKSBPVkVSIHdfcnByKSwgY291bnQoKikgT1ZFUiB3X25v cm1hbCwgaWQsIHZhbAorICAgV2luZG93OiB3X25vcm1hbCBBUyAoT1JERVIgQlkgcnByX2ludGVn LmlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAg IC0+ICBXaW5kb3dBZ2cKKyAgICAgICAgIE91dHB1dDogaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3 X3JwcgorICAgICAgICAgV2luZG93OiB3X3JwciBBUyAoT1JERVIgQlkgcnByX2ludGVnLmlkIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgICAgICAg IFBhdHRlcm46IGEgYisKKyAgICAgICAgIE5hdiBNYXJrIExvb2tiYWNrOiAxCisgICAgICAgICAt PiAgU29ydAorICAgICAgICAgICAgICAgT3V0cHV0OiBpZCwgdmFsCisgICAgICAgICAgICAgICBT b3J0IEtleTogcnByX2ludGVnLmlkCisgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHVi bGljLnJwcl9pbnRlZworICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBpZCwgdmFsCisoMTMg cm93cykKKworLS0gRXhlY3V0aW5nIHRoZSBzYW1lIHF1ZXJ5IHNob3dzIHRoZSBjbGllbnQgcmVz dWx0IGlzIGxpbWl0ZWQgdG8KKy0tIHRoZSB0d28gcHJvamVjdGVkIGNvbHVtbnM7ICJpZCIgYW5k ICJ2YWwiIHRoYXQgYXBwZWFyZWQgaW4gdGhlCistLSB1cHBlciBXaW5kb3dBZ2cgT3V0cHV0IGxp bmUgYXJlIHJlc2p1bmstb25seSBhbmQgZG8gbm90IHJlYWNoCistLSB0aGUgY2xpZW50LgorU0VM RUNUCisgICAgY291bnQoKikgT1ZFUiB3X3JwciBBUyBycHJfY250LAorICAgIGNvdW50KCopIE9W RVIgd19ub3JtYWwgQVMgbm9ybWFsX2NudAorRlJPTSBycHJfaW50ZWcKK1dJTkRPVworICAgIHdf cnByIEFTIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVG SU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKSwKKyAgICB3X25vcm1hbCBBUyAoT1JERVIgQlkgaWQK KyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H KQorT1JERVIgQlkgcnByX2NudCBERVNDLCBub3JtYWxfY250IERFU0M7CisgcnByX2NudCB8IG5v cm1hbF9jbnQgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAgMyB8ICAgICAgICAgIDYK KyAgICAgICAzIHwgICAgICAgICAgMworICAgICAgIDIgfCAgICAgICAgIDEwCisgICAgICAgMiB8 ICAgICAgICAgIDgKKyAgICAgICAwIHwgICAgICAgICAgOQorICAgICAgIDAgfCAgICAgICAgICA3 CisgICAgICAgMCB8ICAgICAgICAgIDUKKyAgICAgICAwIHwgICAgICAgICAgNAorICAgICAgIDAg fCAgICAgICAgICAyCisgICAgICAgMCB8ICAgICAgICAgIDEKKygxMCByb3dzKQorCistLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tIEExMC4gUlBSICsgTElNSVQKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gTElNSVQgbXVzdCBub3QgaW50ZXJmZXJl IHdpdGggUlBSIHBhdHRlcm4gbWF0Y2hpbmcuICBUaGUgTGltaXQKKy0tIG5vZGUgbXVzdCBzaXQg YWJvdmUgdGhlIFdpbmRvd0FnZyBzbyB0aGF0IHBhdHRlcm4gbWF0Y2hpbmcgcnVucworLS0gb24g dGhlIGZ1bGwgcGFydGl0aW9uIGZpcnN0OyB0aGUgcmVzdWx0IGlzIHRoZW4gYSBwcmVmaXggb2Yg dGhlCistLSB1bi1MSU1JVGVkIG91dHB1dC4gIFB1c2hpbmcgTGltaXQgYmVsb3cgdGhlIFdpbmRv d0FnZyB3b3VsZAorLS0gdHJ1bmNhdGUgaW5wdXQgYmVmb3JlIG1hdGNoaW5nIGFuZCBzaWxlbnRs eSBkcm9wIHZhbGlkIG1hdGNoZXMuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgaWQsIHZh bCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfaW50ZWcKK1dJTkRPVyB3IEFTIChP UkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2 YWwpKQorTElNSVQgNTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVS WSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBMaW1pdAorICAgLT4gIFdpbmRvd0FnZworICAgICAgICAgV2lu ZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcpCisgICAgICAgICBQYXR0ZXJuOiBhIGIrCisgICAgICAgICBOYXYgTWFy ayBMb29rYmFjazogMQorICAgICAgICAgLT4gIFNvcnQKKyAgICAgICAgICAgICAgIFNvcnQgS2V5 OiBpZAorICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZworKDggcm93cykK KworLS0gUmVmZXJlbmNlOiB1bi1MSU1JVGVkIHJlc3VsdCBhZ2FpbnN0IHdoaWNoIHRoZSBMSU1J VCA1IHJlc3VsdCBpcworLS0gY29tcGFyZWQuCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZF UiB3IEFTIGNudAorRlJPTSBycHJfaW50ZWcKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBB VFRFUk4gKEEgQispCisgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorT1JERVIgQlkg aWQ7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDIK KyAgMiB8ICAyMCB8ICAgMAorICAzIHwgIDE1IHwgICAyCisgIDQgfCAgMjUgfCAgIDAKKyAgNSB8 ICAgNSB8ICAgMworICA2IHwgIDMwIHwgICAwCisgIDcgfCAgMzUgfCAgIDAKKyAgOCB8ICAyMCB8 ICAgMworICA5IHwgIDQwIHwgICAwCisgMTAgfCAgNDUgfCAgIDAKKygxMCByb3dzKQorCistLSBM SU1JVCA1IGNhc2U7IHRoZSBmaXJzdCBmaXZlIHJvd3MgbXVzdCBtYXRjaCB0aGUgcmVmZXJlbmNl IGFib3ZlLgorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnBy X2ludGVnCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERF RklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKK0xJTUlUIDU7CisgaWQgfCB2YWwgfCBjbnQgCist LS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDIKKyAgMiB8ICAyMCB8ICAgMAorICAzIHwg IDE1IHwgICAyCisgIDQgfCAgMjUgfCAgIDAKKyAgNSB8ICAgNSB8ICAgMworKDUgcm93cykKKwor LS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLSBCMS4gUlBSICsgQ1RFCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFZlcmlmeSB0aGF0IGFuIFJQUiB3 aW5kb3cgZW1iZWRkZWQgaW5zaWRlIGEgQ1RFIGJlaGF2ZXMgdGhlIHNhbWUgYXMKKy0tIGEgZGly ZWN0IFJQUiBxdWVyeToKKy0tICAgKDEpIEEgc2luZ2xlLXJlZmVyZW5jZSBDVEUgaXMgaW5saW5l ZCBieSB0aGUgcGxhbm5lciBhbmQgeWllbGRzCistLSAgICAgICBwZXItcm93IHJlc3VsdHMgaWRl bnRpY2FsIHRvIHRoZSBkaXJlY3QgUlBSIHF1ZXJ5LgorLS0gICAoMikgQSBtdWx0aS1yZWZlcmVu Y2UgQ1RFIGlzIG1hdGVyaWFsaXplZCAoQ1RFIFNjYW4gYXBwZWFycyBpbgorLS0gICAgICAgdGhl IHBsYW4pIHNvIHBhdHRlcm4gbWF0Y2hpbmcgcnVucyBvbmNlLCBhbmQgZXZlcnkgcmVmZXJlbmNl CistLSAgICAgICBvYnNlcnZlcyB0aGUgc2FtZSBtYXRjaCByZXN1bHRzLgorLS0gQmFzZWxpbmU6 IGRpcmVjdCBSUFIgcHJvZHVjZXMgdGhlIHBlci1yb3cgcmVmZXJlbmNlIG91dHB1dC4KK1NFTEVD VCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9pbnRlZworV0lORE9X IHcgQVMgKE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQiBBUyB2YWwg PiBQUkVWKHZhbCkpCitPUkRFUiBCWSBpZDsKKyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0r LS0tLS0KKyAgMSB8ICAxMCB8ICAgMgorICAyIHwgIDIwIHwgICAwCisgIDMgfCAgMTUgfCAgIDIK KyAgNCB8ICAyNSB8ICAgMAorICA1IHwgICA1IHwgICAzCisgIDYgfCAgMzAgfCAgIDAKKyAgNyB8 ICAzNSB8ICAgMAorICA4IHwgIDIwIHwgICAzCisgIDkgfCAgNDAgfCAgIDAKKyAxMCB8ICA0NSB8 ICAgMAorKDEwIHJvd3MpCisKKy0tIFNpbmdsZS1yZWZlcmVuY2UgQ1RFOiBwbGFuIGhhcyBubyAi Q1RFIHJwcl9yZXN1bHQiIHNjb3BlLCBzaG93aW5nCistLSB0aGUgQ1RFIHdhcyBpbmxpbmVkIGlu dG8gdGhlIHN1cnJvdW5kaW5nIHF1ZXJ5LgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorV0lUSCBycHJf cmVzdWx0IEFTICgKKyAgICBTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAor ICAgIEZST00gcnByX2ludGVnCisgICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAg ICBQQVRURVJOIChBIEIrKQorICAgICAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpCisp CitTRUxFQ1QgaWQsIHZhbCwgY250IEZST00gcnByX3Jlc3VsdCBPUkRFUiBCWSBpZDsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBycHJfaW50ZWcuaWQg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0 dGVybjogYSBiKworICAgTmF2IE1hcmsgTG9va2JhY2s6IDEKKyAgIC0+ICBTb3J0CisgICAgICAg ICBTb3J0IEtleTogcnByX2ludGVnLmlkCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2lu dGVnCisoNyByb3dzKQorCistLSBSZXN1bHQgbXVzdCBtYXRjaCB0aGUgYmFzZWxpbmUgcm93LWZv ci1yb3cuCitXSVRIIHJwcl9yZXN1bHQgQVMgKAorICAgIFNFTEVDVCBpZCwgdmFsLCBjb3VudCgq KSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoT1JE RVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZh bCA+IFBSRVYodmFsKSkKKykKK1NFTEVDVCBpZCwgdmFsLCBjbnQgRlJPTSBycHJfcmVzdWx0IE9S REVSIEJZIGlkOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEw IHwgICAyCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAxNSB8ICAgMgorICA0IHwgIDI1IHwgICAw CisgIDUgfCAgIDUgfCAgIDMKKyAgNiB8ICAzMCB8ICAgMAorICA3IHwgIDM1IHwgICAwCisgIDgg fCAgMjAgfCAgIDMKKyAgOSB8ICA0MCB8ICAgMAorIDEwIHwgIDQ1IHwgICAwCisoMTAgcm93cykK KworLS0gTXVsdGktcmVmZXJlbmNlIENURSAoc2VsZi1qb2luKTogcGxhbiBoYXMgYSAiQ1RFIHJw cl9yZXN1bHQiIHNjb3BlCistLSBhbmQgQ1RFIFNjYW4gbm9kZXMgb24gYm90aCBzaWRlcywgc2hv d2luZyB0aGUgQ1RFIHdhcyBtYXRlcmlhbGl6ZWQKKy0tIGFuZCBwYXR0ZXJuIG1hdGNoaW5nIHJh biBvbmx5IG9uY2UuCitFWFBMQUlOIChDT1NUUyBPRkYpCitXSVRIIHJwcl9yZXN1bHQgQVMgKAor ICAgIFNFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBycHJf aW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEg QispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKykKK1NFTEVDVCByMS5p ZCwgcjEuY250CitGUk9NIHJwcl9yZXN1bHQgcjEKK0pPSU4gcnByX3Jlc3VsdCByMiBPTiByMS5p ZCA9IHIyLmlkIEFORCByMS5jbnQgPSByMi5jbnQKK1dIRVJFIHIxLmNudCA+IDAKK09SREVSIEJZ IHIxLmlkOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZ IFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIE1lcmdlIEpvaW4KKyAgIE1lcmdl IENvbmQ6ICgocjIuaWQgPSByMS5pZCkgQU5EIChyMi5jbnQgPSByMS5jbnQpKQorICAgQ1RFIHJw cl9yZXN1bHQKKyAgICAgLT4gIFdpbmRvd0FnZworICAgICAgICAgICBXaW5kb3c6IHcgQVMgKE9S REVSIEJZIHJwcl9pbnRlZy5pZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcpCisgICAgICAgICAgIFBhdHRlcm46IGEgYisKKyAgICAgICAgICAgTmF2IE1h cmsgTG9va2JhY2s6IDEKKyAgICAgICAgICAgLT4gIFNvcnQKKyAgICAgICAgICAgICAgICAgU29y dCBLZXk6IHJwcl9pbnRlZy5pZAorICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnBy X2ludGVnCisgICAtPiAgSW5jcmVtZW50YWwgU29ydAorICAgICAgICAgU29ydCBLZXk6IHIyLmlk LCByMi5jbnQKKyAgICAgICAgIFByZXNvcnRlZCBLZXk6IHIyLmlkCisgICAgICAgICAtPiAgQ1RF IFNjYW4gb24gcnByX3Jlc3VsdCByMgorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBy MS5pZCwgcjEuY250CisgICAgICAgICAtPiAgQ1RFIFNjYW4gb24gcnByX3Jlc3VsdCByMQorICAg ICAgICAgICAgICAgRmlsdGVyOiAoY250ID4gMCkKKygxOCByb3dzKQorCistLSBSZXN1bHQ6IGJv dGggcmVmZXJlbmNlcyBzZWUgdGhlIHNhbWUgbWF0Y2ggY291bnRzLCBzbyB0aGUgc2VsZi1qb2lu CistLSBwcmVzZXJ2ZXMgYWxsIG1hdGNoZWQgcm93cyBmcm9tIHRoZSBiYXNlbGluZS4KK1dJVEgg cnByX3Jlc3VsdCBBUyAoCisgICAgU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBj bnQKKyAgICBGUk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAg ICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwp KQorKQorU0VMRUNUIHIxLmlkLCByMS5jbnQKK0ZST00gcnByX3Jlc3VsdCByMQorSk9JTiBycHJf cmVzdWx0IHIyIE9OIHIxLmlkID0gcjIuaWQgQU5EIHIxLmNudCA9IHIyLmNudAorV0hFUkUgcjEu Y250ID4gMAorT1JERVIgQlkgcjEuaWQ7CisgaWQgfCBjbnQgCistLS0tKy0tLS0tCisgIDEgfCAg IDIKKyAgMyB8ICAgMgorICA1IHwgICAzCisgIDggfCAgIDMKKyg0IHJvd3MpCisKKy0tID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0gQjIuIFJQUiArIEpPSU4KKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gVmVyaWZ5IHRoYXQgYW4gUlBSIHN1YnF1ZXJ5 IGNhbiBiZSBqb2luZWQgd2l0aCBhbm90aGVyIHJlbGF0aW9uLgorLS0gVHdvIGFzcGVjdHMgYXJl IGNoZWNrZWQgYWdhaW5zdCBhIG5vbi1SUFIgYmFzZWxpbmU6CistLSAgICgxKSBGbGF0dGVuaW5n OiBhIG5vbi1SUFIgc3VicXVlcnkgaXMgcHVsbGVkIHVwIGJ5IHRoZSBwbGFubmVyCistLSAgICAg ICAobm8gU3VicXVlcnkgU2NhbiBpbiB0aGUgcGxhbik7IGFuIFJQUiBzdWJxdWVyeSBpcyBrZXB0 CistLSAgICAgICB1bi1mbGF0dGVuZWQgKFN1YnF1ZXJ5IFNjYW4gYWJvdmUgV2luZG93QWdnKS4K Ky0tICAgKDIpIEpvaW4gY29ycmVjdG5lc3M6IHRoZSBqb2luIGFsaWducyBlYWNoIFJQUiBtYXRj aCByb3cgd2l0aAorLS0gICAgICAgdGhlIGRpbWVuc2lvbi10YWJsZSByb3cgb24gdGhlIHNhbWUg a2V5LgorQ1JFQVRFIFRBQkxFIHJwcl9pbnRlZzIgKGlkIElOVCwgbGFiZWwgVEVYVCk7CitJTlNF UlQgSU5UTyBycHJfaW50ZWcyIFZBTFVFUworICAgICgxLCAnYScpLCAoMiwgJ2InKSwgKDMsICdj JyksICg0LCAnZCcpLCAoNSwgJ2UnKSwKKyAgICAoNiwgJ2YnKSwgKDcsICdnJyksICg4LCAnaCcp LCAoOSwgJ2knKSwgKDEwLCAnaicpOworLS0gQmFzZWxpbmU6IGEgbm9uLVJQUiBzdWJxdWVyeSBp cyBmbGF0dGVuZWQgYnkgdGhlIHBsYW5uZXIuICBObworLS0gU3VicXVlcnkgU2NhbiBub2RlIGFw cGVhcnM7IHRoZSBpbm5lciBTRUxFQ1QgaXMgbWVyZ2VkIGludG8gdGhlCistLSBvdXRlciBqb2lu LgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIHIuaWQsIHIudmFsLCBqLmxhYmVsCitGUk9N IChTRUxFQ1QgaWQsIHZhbCBGUk9NIHJwcl9pbnRlZykgcgorSk9JTiBycHJfaW50ZWcyIGogT04g ci5pZCA9IGouaWQKK09SREVSIEJZIHIuaWQ7CisgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBNZXJn ZSBKb2luCisgICBNZXJnZSBDb25kOiAoai5pZCA9IHJwcl9pbnRlZy5pZCkKKyAgIC0+ICBTb3J0 CisgICAgICAgICBTb3J0IEtleTogai5pZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9p bnRlZzIgagorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBycHJfaW50ZWcuaWQKKyAg ICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfaW50ZWcKKyg4IHJvd3MpCisKKy0tIFJQUiBzdWJx dWVyeSBKT0lOOiB0aGUgU3VicXVlcnkgU2NhbiBpcyBwcmVzZXJ2ZWQgYWJvdmUgdGhlCistLSBX aW5kb3dBZ2csIGNvbmZpcm1pbmcgdGhlIFJQUiBzdWJxdWVyeSBpcyBub3QgZmxhdHRlbmVkLgor RVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIHIuaWQsIHIuY250LCBqLmxhYmVsCitGUk9NICgK KyAgICBTRUxFQ1QgaWQsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKKyAgICBGUk9NIHJwcl9pbnRl ZworICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykK KyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorKSByCitKT0lOIHJwcl9pbnRl ZzIgaiBPTiByLmlkID0gai5pZAorV0hFUkUgci5jbnQgPiAwCitPUkRFUiBCWSByLmlkOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgTWVyZ2UgSm9pbgorICAgTWVyZ2UgQ29u ZDogKHIuaWQgPSBqLmlkKQorICAgLT4gIFN1YnF1ZXJ5IFNjYW4gb24gcgorICAgICAgICAgRmls dGVyOiAoci5jbnQgPiAwKQorICAgICAgICAgLT4gIFdpbmRvd0FnZworICAgICAgICAgICAgICAg V2luZG93OiB3IEFTIChPUkRFUiBCWSBycHJfaW50ZWcuaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgICAgICAgICAgICAgUGF0dGVybjogYSBi KworICAgICAgICAgICAgICAgTmF2IE1hcmsgTG9va2JhY2s6IDEKKyAgICAgICAgICAgICAgIC0+ ICBTb3J0CisgICAgICAgICAgICAgICAgICAgICBTb3J0IEtleTogcnByX2ludGVnLmlkCisgICAg ICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnCisgICAtPiAgU29ydAor ICAgICAgICAgU29ydCBLZXk6IGouaWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfaW50 ZWcyIGoKKygxNCByb3dzKQorCistLSBSZXN1bHQ6IG1hdGNoZWQgUlBSIHJvd3MgYWxpZ24gd2l0 aCBkaW1lbnNpb24gcm93cyBvbiBpZCwgc2hvd2luZworLS0gdGhlIGpvaW4gY29ycmVjdGx5IHBh aXJzIHBlci1yb3cgbWF0Y2ggY291bnRzIHdpdGggdGhlaXIgbGFiZWxzLgorU0VMRUNUIHIuaWQs IHIuY250LCBqLmxhYmVsCitGUk9NICgKKyAgICBTRUxFQ1QgaWQsIGNvdW50KCopIE9WRVIgdyBB UyBjbnQKKyAgICBGUk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAor ICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2 YWwpKQorKSByCitKT0lOIHJwcl9pbnRlZzIgaiBPTiByLmlkID0gai5pZAorV0hFUkUgci5jbnQg PiAwCitPUkRFUiBCWSByLmlkOworIGlkIHwgY250IHwgbGFiZWwgCistLS0tKy0tLS0tKy0tLS0t LS0KKyAgMSB8ICAgMiB8IGEKKyAgMyB8ICAgMiB8IGMKKyAgNSB8ICAgMyB8IGUKKyAgOCB8ICAg MyB8IGgKKyg0IHJvd3MpCisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gQjMuIFJQUiArIFNldCBvcGVyYXRpb25zCist LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tIFZlcmlmeSB0aGF0IFJQUiByZXN1bHRzIGNvbWJpbmUgY29ycmVjdGx5IHdpdGgg bm9uLVJQUiByZXN1bHRzCistLSB1bmRlciBhIFVOSU9OIEFMTC4gIFRoZSBwbGFuIG11c3Qgc2hv dyBhbiBBcHBlbmQgbm9kZSB3aXRoIHR3bworLS0gaW5kZXBlbmRlbnQgY2hpbGQgcGxhbnM6IHRo ZSBSUFIgYnJhbmNoIHdpdGggUGF0dGVybi9ERUZJTkUgYWN0aXZlLAorLS0gYW5kIHRoZSBub24t UlBSIGJyYW5jaCB3aXRoIGEgcGxhaW4gV2luZG93QWdnLiAgRWFjaCBjaGlsZCBzY2FucworLS0g dGhlIGJhc2UgcmVsYXRpb24gb24gaXRzIG93biBhbmQgY29udHJpYnV0ZXMgaXRzIHJvd3MgdG8g dGhlCistLSB1bmlvbmVkIG91dHB1dC4KKy0tIFBsYW46IEFwcGVuZCB3aXRoIHR3byBpbmRlcGVu ZGVudCBjaGlsZHJlbi4gIFRoZSBSUFIgYnJhbmNoIGhhcyBhCistLSBXaW5kb3dBZ2cgY2Fycnlp bmcgUGF0dGVybi9OYXYgTWFyayBMb29rYmFjazsgdGhlIG5vbi1SUFIgYnJhbmNoCistLSBoYXMg YSBwbGFpbiBXaW5kb3dBZ2cgd2l0aCBubyBwYXR0ZXJuIG1ldGFkYXRhLgorRVhQTEFJTiAoQ09T VFMgT0ZGKQorU0VMRUNUIGlkLCBjbnQsICdycHInIEFTIHNvdXJjZSBGUk9NICgKKyAgICBTRUxF Q1QgaWQsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKKyAgICBGUk9NIHJwcl9pbnRlZworICAgIFdJ TkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAg REVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorKSB0IFdIRVJFIGNudCA+IDAKK1VOSU9OIEFM TAorU0VMRUNUIGlkLCBjb3VudCgqKSBPVkVSIChPUkRFUiBCWSBpZCkgQVMgY250LCAnbm9ybWFs JyBBUyBzb3VyY2UKK0ZST00gcnByX2ludGVnCitPUkRFUiBCWSBzb3VyY2UsIGlkOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU29ydAorICAgU29ydCBL ZXk6ICgncnByJzo6dGV4dCksIHQuaWQKKyAgIC0+ICBBcHBlbmQKKyAgICAgICAgIC0+ICBTdWJx dWVyeSBTY2FuIG9uIHQKKyAgICAgICAgICAgICAgIEZpbHRlcjogKHQuY250ID4gMCkKKyAgICAg ICAgICAgICAgIC0+ICBXaW5kb3dBZ2cKKyAgICAgICAgICAgICAgICAgICAgIFdpbmRvdzogdyBB UyAoT1JERVIgQlkgcnByX2ludGVnLmlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORykKKyAgICAgICAgICAgICAgICAgICAgIFBhdHRlcm46IGEgYisKKyAg ICAgICAgICAgICAgICAgICAgIE5hdiBNYXJrIExvb2tiYWNrOiAxCisgICAgICAgICAgICAgICAg ICAgICAtPiAgU29ydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgU29ydCBLZXk6IHJwcl9p bnRlZy5pZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9p bnRlZworICAgICAgICAgLT4gIFdpbmRvd0FnZworICAgICAgICAgICAgICAgV2luZG93OiB3MSBB UyAoT1JERVIgQlkgcnByX2ludGVnXzEuaWQpCisgICAgICAgICAgICAgICAtPiAgU29ydAorICAg ICAgICAgICAgICAgICAgICAgU29ydCBLZXk6IHJwcl9pbnRlZ18xLmlkCisgICAgICAgICAgICAg ICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnIHJwcl9pbnRlZ18xCisoMTcgcm93cykK KworLS0gUmVzdWx0OiByb3dzIGZyb20gYm90aCBicmFuY2hlcyBhcmUgcHJlc2VudCBpbiB0aGUg dW5pb25lZCBvdXRwdXQuCistLSBUaGUgUlBSIGJyYW5jaCBlbWl0cyBvbmx5IG1hdGNoZWQgcm93 cyAoY250ID4gMCksIHdoaWxlIHRoZQorLS0gbm9uLVJQUiBicmFuY2ggZW1pdHMgYWxsIHJvd3Mg d2l0aCBpdHMgb3duIGNvdW50IHZhbHVlcy4KK1NFTEVDVCBpZCwgY250LCAncnByJyBBUyBzb3Vy Y2UgRlJPTSAoCisgICAgU0VMRUNUIGlkLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJP TSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRF Uk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKykgdCBXSEVS RSBjbnQgPiAwCitVTklPTiBBTEwKK1NFTEVDVCBpZCwgY291bnQoKikgT1ZFUiAoT1JERVIgQlkg aWQpIEFTIGNudCwgJ25vcm1hbCcgQVMgc291cmNlCitGUk9NIHJwcl9pbnRlZworT1JERVIgQlkg c291cmNlLCBpZDsKKyBpZCB8IGNudCB8IHNvdXJjZSAKKy0tLS0rLS0tLS0rLS0tLS0tLS0KKyAg MSB8ICAgMSB8IG5vcm1hbAorICAyIHwgICAyIHwgbm9ybWFsCisgIDMgfCAgIDMgfCBub3JtYWwK KyAgNCB8ICAgNCB8IG5vcm1hbAorICA1IHwgICA1IHwgbm9ybWFsCisgIDYgfCAgIDYgfCBub3Jt YWwKKyAgNyB8ICAgNyB8IG5vcm1hbAorICA4IHwgICA4IHwgbm9ybWFsCisgIDkgfCAgIDkgfCBu b3JtYWwKKyAxMCB8ICAxMCB8IG5vcm1hbAorICAxIHwgICAyIHwgcnByCisgIDMgfCAgIDIgfCBy cHIKKyAgNSB8ICAgMyB8IHJwcgorICA4IHwgICAzIHwgcnByCisoMTQgcm93cykKKworLS0gPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLSBCNC4gUlBSICsgUHJlcGFyZWQgc3RhdGVtZW50cworLS0gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBWZXJpZnkgdGhh dCBSUFIgcXVlcmllcyBzdXJ2aXZlIHRoZSBwcmVwYXJlZC1zdGF0ZW1lbnQgcGF0aCBieQorLS0g ZXhlcmNpc2luZyBib3RoIHBsYW5jYWNoZSBtb2RlcyB3aXRoIGEgcGFyYW1ldGVyIHRoYXQgZmVl ZHMgaW50bworLS0gUlBSJ3MgbmF2aWdhdGlvbiBvZmZzZXQgKFBSRVYodmFsLCAkMSkpLiAgVGhl IHBhcmFtZXRlciBzdXJmYWNlcworLS0gdGhlIFJQUi1zcGVjaWZpYyBwbGFuY2FjaGUgZGlmZmVy ZW5jZToKKy0tICAgLSBjdXN0b20gcGxhbjogIk5hdiBNYXJrIExvb2tiYWNrIiBpcyByZXNvbHZl ZCB0byB0aGUgbGl0ZXJhbAorLS0gICAgIHBhcmFtZXRlciB2YWx1ZSBhdCBwbGFuIHRpbWUgKGUu Zy4sICJOYXYgTWFyayBMb29rYmFjazogMSIpLgorLS0gICAtIGdlbmVyaWMgcGxhbjogIk5hdiBN YXJrIExvb2tiYWNrIiBpcyBkZWZlcnJlZCB0byBleGVjdXRpb24gYW5kCistLSAgICAgYXBwZWFy cyBhcyAiTmF2IE1hcmsgTG9va2JhY2s6IHJ1bnRpbWUiIGluIHRoZSBwbGFuLgorLS0gVGhlIHJl c3VsdCBtdXN0IGJlIGlkZW50aWNhbCB1bmRlciBib3RoIG1vZGVzLgorLS0gUmVnaXN0ZXIgdGhl IHByZXBhcmVkIHN0YXRlbWVudDsgREVGSU5FIHVzZXMgUFJFVih2YWwsICQxKSBzbyB0aGUKKy0t IHBhcmFtZXRlciByZWFjaGVzIFJQUidzIG5hdmlnYXRpb24gbWFjaGluZXJ5LgorUFJFUEFSRSBy cHJfcHJldihpbnQpIEFTCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAor RlJPTSBycHJfaW50ZWcKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQisp CisgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwsICQxKSkKK09SREVSIEJZIGlkOworLS0g Q3VzdG9tIHBsYW46IE5hdiBNYXJrIExvb2tiYWNrIHJlc29sdmVkIHRvIHRoZSBsaXRlcmFsIDEu CitTRVQgcGxhbl9jYWNoZV9tb2RlID0gZm9yY2VfY3VzdG9tX3BsYW47CitFWFBMQUlOIChDT1NU UyBPRkYpIEVYRUNVVEUgcnByX3ByZXYoMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZ IGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAg IFBhdHRlcm46IGEgYisKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAxCisgICAtPiAgU29ydAorICAg ICAgICAgU29ydCBLZXk6IGlkCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnCiso NyByb3dzKQorCitFWEVDVVRFIHJwcl9wcmV2KDEpOworIGlkIHwgdmFsIHwgY250IAorLS0tLSst LS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAyCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAxNSB8 ICAgMgorICA0IHwgIDI1IHwgICAwCisgIDUgfCAgIDUgfCAgIDMKKyAgNiB8ICAzMCB8ICAgMAor ICA3IHwgIDM1IHwgICAwCisgIDggfCAgMjAgfCAgIDMKKyAgOSB8ICA0MCB8ICAgMAorIDEwIHwg IDQ1IHwgICAwCisoMTAgcm93cykKKworLS0gR2VuZXJpYyBwbGFuOiBOYXYgTWFyayBMb29rYmFj ayBkZWZlcnJlZCB0byBleGVjdXRpb24sIHNob3duIGFzCistLSAicnVudGltZSIgaW4gdGhlIHBs YW4uICBSZXN1bHQgbXVzdCBtYXRjaCB0aGUgY3VzdG9tLXBsYW4gcmVzdWx0CistLSBleGFjdGx5 LgorU0VUIHBsYW5fY2FjaGVfbW9kZSA9IGZvcmNlX2dlbmVyaWNfcGxhbjsKK0VYUExBSU4gKENP U1RTIE9GRikgRVhFQ1VURSBycHJfcHJldigxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoT1JERVIg QlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQor ICAgUGF0dGVybjogYSBiKworICAgTmF2IE1hcmsgTG9va2JhY2s6IHJ1bnRpbWUKKyAgIC0+ICBT b3J0CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJf aW50ZWcKKyg3IHJvd3MpCisKK0VYRUNVVEUgcnByX3ByZXYoMSk7CisgaWQgfCB2YWwgfCBjbnQg CistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDIKKyAgMiB8ICAyMCB8ICAgMAorICAz IHwgIDE1IHwgICAyCisgIDQgfCAgMjUgfCAgIDAKKyAgNSB8ICAgNSB8ICAgMworICA2IHwgIDMw IHwgICAwCisgIDcgfCAgMzUgfCAgIDAKKyAgOCB8ICAyMCB8ICAgMworICA5IHwgIDQwIHwgICAw CisgMTAgfCAgNDUgfCAgIDAKKygxMCByb3dzKQorCitSRVNFVCBwbGFuX2NhY2hlX21vZGU7CitE RUFMTE9DQVRFIHJwcl9wcmV2OworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBCNS4gUlBSICsgUGFydGl0aW9uZWQgdGFi bGUKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0gVmVyaWZ5IHRoYXQgUlBSIHBhdHRlcm4gbWF0Y2hpbmcgd29ya3MgY29y cmVjdGx5IHdoZW4gdGhlIHNvdXJjZQorLS0gcmVsYXRpb24gaXMgcGFydGl0aW9uZWQuICBUaGUg cGxhbm5lciBtdXN0IGdhdGhlciByb3dzIGZyb20gZXZlcnkKKy0tIHBhcnRpdGlvbiBpbnRvIGEg c2luZ2xlIG9yZGVyZWQgc3RyZWFtIGJlZm9yZSBSUFIgY2FuIHNlZSB0aGVtLAorLS0gYmVjYXVz ZSBwYXR0ZXJuIG1hdGNoaW5nIGlzIHNlcXVlbnRpYWwgYWNyb3NzIHRoZSBlbnRpcmUKKy0tIHBh cnRpdGlvbi1ieSBncm91cCBhbmQgY2Fubm90IGJlIHBlcmZvcm1lZCBpbmRlcGVuZGVudGx5IG9u IGVhY2gKKy0tIHRhYmxlIHBhcnRpdGlvbi4KK0NSRUFURSBUQUJMRSBycHJfcGFydCAoaWQgSU5U LCB2YWwgSU5UKSBQQVJUSVRJT04gQlkgUkFOR0UgKGlkKTsKK0NSRUFURSBUQUJMRSBycHJfcGFy dF8xIFBBUlRJVElPTiBPRiBycHJfcGFydCBGT1IgVkFMVUVTIEZST00gKDEpIFRPICg2KTsKK0NS RUFURSBUQUJMRSBycHJfcGFydF8yIFBBUlRJVElPTiBPRiBycHJfcGFydCBGT1IgVkFMVUVTIEZS T00gKDYpIFRPICgxMSk7CitJTlNFUlQgSU5UTyBycHJfcGFydCBTRUxFQ1QgaWQsIHZhbCBGUk9N IHJwcl9pbnRlZzsKKy0tIFBsYW46IHBhcnRpdGlvbiBzY2FucyBhcmUgY29tYmluZWQgd2l0aCBB cHBlbmQgKG9yIE1lcmdlIEFwcGVuZCksCistLSBzb3J0ZWQgaW50byBhIHNpbmdsZSBvcmRlcmVk IHN0cmVhbSwgYW5kIGZlZCBpbnRvIG9uZSBXaW5kb3dBZ2cKKy0tIHRoYXQgcGVyZm9ybXMgUlBS IHBhdHRlcm4gbWF0Y2hpbmcgYWNyb3NzIHRoZSBjb21iaW5lZCBzdHJlYW0uCitFWFBMQUlOIChD T1NUUyBPRkYpCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBy cHJfcGFydAorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBE RUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpCitPUkRFUiBCWSBpZDsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5k b3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgcnByX3BhcnQuaWQgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSBiKwor ICAgTmF2IE1hcmsgTG9va2JhY2s6IDEKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTog cnByX3BhcnQuaWQKKyAgICAgICAgIC0+ICBBcHBlbmQKKyAgICAgICAgICAgICAgIC0+ICBTZXEg U2NhbiBvbiBycHJfcGFydF8xCisgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3Bh cnRfMgorKDkgcm93cykKKworLS0gQmFzZWxpbmU6IHRoZSBzYW1lIHF1ZXJ5IGFnYWluc3QgdGhl IG5vbi1wYXJ0aXRpb25lZCBycHJfaW50ZWcKKy0tIHByb2R1Y2VzIHRoZSBwZXItcm93IHJlZmVy ZW5jZSBvdXRwdXQuCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJP TSBycHJfaW50ZWcKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisg ICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorT1JERVIgQlkgaWQ7CisgaWQgfCB2YWwg fCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDIKKyAgMiB8ICAyMCB8ICAg MAorICAzIHwgIDE1IHwgICAyCisgIDQgfCAgMjUgfCAgIDAKKyAgNSB8ICAgNSB8ICAgMworICA2 IHwgIDMwIHwgICAwCisgIDcgfCAgMzUgfCAgIDAKKyAgOCB8ICAyMCB8ICAgMworICA5IHwgIDQw IHwgICAwCisgMTAgfCAgNDUgfCAgIDAKKygxMCByb3dzKQorCistLSBSZXN1bHQgYWdhaW5zdCB0 aGUgcGFydGl0aW9uZWQgdGFibGUgbXVzdCBtYXRjaCB0aGUgYmFzZWxpbmUKKy0tIHJvdy1mb3It cm93LgorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX3Bh cnQKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5F IEIgQVMgdmFsID4gUFJFVih2YWwpKQorT1JERVIgQlkgaWQ7CisgaWQgfCB2YWwgfCBjbnQgCist LS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDIKKyAgMiB8ICAyMCB8ICAgMAorICAzIHwg IDE1IHwgICAyCisgIDQgfCAgMjUgfCAgIDAKKyAgNSB8ICAgNSB8ICAgMworICA2IHwgIDMwIHwg ICAwCisgIDcgfCAgMzUgfCAgIDAKKyAgOCB8ICAyMCB8ICAgMworICA5IHwgIDQwIHwgICAwCisg MTAgfCAgNDUgfCAgIDAKKygxMCByb3dzKQorCitEUk9QIFRBQkxFIHJwcl9wYXJ0OworLS0gPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLSBCNi4gUlBSICsgTEFURVJBTAorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBSUFIgaW5zaWRlIGEgTEFURVJBTCBz dWJxdWVyeS4gIFF1YWxpZmllZCBjb2x1bW4gcmVmZXJlbmNlcyBmcm9tCistLSB0aGUgb3V0ZXIg cXVlcnkgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkIGluIERFRklORSwgc28gdGhpcyB0ZXN0cworLS0g dGhlIGJhc2ljIGNhc2Ugd2hlcmUgTEFURVJBTCBwcm92aWRlcyB0aGUgY29ycmVsYXRpb24gZmls dGVyCistLSAoV0hFUkUgaWQgPD0gby5pZCkgYW5kIERFRklORSB1c2VzIG9ubHkgbG9jYWwgY29s dW1ucy4gIFRoZSBwbGFuCistLSBtdXN0IHNob3cgYSBOZXN0ZWQgTG9vcCBkcml2aW5nIHRoZSBv dXRlciByZWxhdGlvbiBpbnRvIHRoZSBpbm5lcgorLS0gc3VicXVlcnkgc2Nhbiwgd2l0aCB0aGUg UlBSIFdpbmRvd0FnZyByZS1leGVjdXRlZCBmb3IgZWFjaCBvdXRlcgorLS0gcm93IGFuZCB0aGUg Y29ycmVsYXRpb24gc3VyZmFjaW5nIGFzIGEgc2Nhbi1sZXZlbCBGaWx0ZXIgb24KKy0tICJpZCA8 PSBvLmlkIi4KKy0tIFBsYW46IE5lc3RlZCBMb29wIHdpdGggdGhlIFJQUiBXaW5kb3dBZ2cgaW4g dGhlIGlubmVyIGxlZywgZHJpdmVuCistLSBieSB0aGUgZmlsdGVyZWQgb3V0ZXIgcm93cyAoby5p ZCBJTiAoNSwgMTApKS4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBvLmlkIEFTIG91dGVy X2lkLCByLmlkLCByLmNudAorRlJPTSBycHJfaW50ZWcgbywKK0xBVEVSQUwgKAorICAgIFNFTEVD VCBpZCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorICAgIEZST00gcnByX2ludGVnCisgICAgV0hF UkUgaWQgPD0gby5pZAorICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFU VEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorKSByCitX SEVSRSByLmNudCA+IDAgQU5EIG8uaWQgSU4gKDUsIDEwKQorT1JERVIgQlkgby5pZCwgci5pZDsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBM QU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNvcnQKKyAg IFNvcnQgS2V5OiBvLmlkLCByLmlkCisgICAtPiAgTmVzdGVkIExvb3AKKyAgICAgICAgIC0+ICBT ZXEgU2NhbiBvbiBycHJfaW50ZWcgbworICAgICAgICAgICAgICAgRmlsdGVyOiAoaWQgPSBBTlkg KCd7NSwxMH0nOjppbnRlZ2VyW10pKQorICAgICAgICAgLT4gIFN1YnF1ZXJ5IFNjYW4gb24gcgor ICAgICAgICAgICAgICAgRmlsdGVyOiAoci5jbnQgPiAwKQorICAgICAgICAgICAgICAgLT4gIFdp bmRvd0FnZworICAgICAgICAgICAgICAgICAgICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBycHJf aW50ZWcuaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H KQorICAgICAgICAgICAgICAgICAgICAgUGF0dGVybjogYSBiKworICAgICAgICAgICAgICAgICAg ICAgTmF2IE1hcmsgTG9va2JhY2s6IDEKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBTb3J0Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICBTb3J0IEtleTogcnByX2ludGVnLmlkCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6IChpZCA8PSBvLmlkKQorKDE1IHJvd3MpCisK Ky0tIFJlc3VsdDogZm9yIGVhY2ggb2YgdGhlIHR3byBvdXRlciBpZHMgKDUgYW5kIDEwKSwgdGhl IExBVEVSQUwKKy0tIHN1YnF1ZXJ5IHByb2R1Y2VzIFJQUiBtYXRjaCBjb3VudHMgb3ZlciB0aGUg cmVzdHJpY3RlZCBpbnB1dC4KK1NFTEVDVCBvLmlkIEFTIG91dGVyX2lkLCByLmlkLCByLmNudAor RlJPTSBycHJfaW50ZWcgbywKK0xBVEVSQUwgKAorICAgIFNFTEVDVCBpZCwgY291bnQoKikgT1ZF UiB3IEFTIGNudAorICAgIEZST00gcnByX2ludGVnCisgICAgV0hFUkUgaWQgPD0gby5pZAorICAg IFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAg ICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorKSByCitXSEVSRSByLmNudCA+IDAgQU5E IG8uaWQgSU4gKDUsIDEwKQorT1JERVIgQlkgby5pZCwgci5pZDsKKyBvdXRlcl9pZCB8IGlkIHwg Y250IAorLS0tLS0tLS0tLSstLS0tKy0tLS0tCisgICAgICAgIDUgfCAgMSB8ICAgMgorICAgICAg ICA1IHwgIDMgfCAgIDIKKyAgICAgICAxMCB8ICAxIHwgICAyCisgICAgICAgMTAgfCAgMyB8ICAg MgorICAgICAgIDEwIHwgIDUgfCAgIDMKKyAgICAgICAxMCB8ICA4IHwgICAzCisoNiByb3dzKQor CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tIEI3LiBSUFIgKyBSZWN1cnNpdmUgQ1RFCistLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFZlcmlmeSB0 aGF0IGFuIFJQUiB3aW5kb3cgY2FuIGFwcGVhciBpbnNpZGUgdGhlIG5vbi1yZWN1cnNpdmUKKy0t IChiYXNlKSBsZWcgb2YgYSByZWN1cnNpdmUgQ1RFLiAgVGhlIHBsYW4gbXVzdCBzaG93IHRoZSBS UFIKKy0tIFdpbmRvd0FnZyBzaXR0aW5nIHVuZGVyIHRoZSBSZWN1cnNpdmUgVW5pb24gYXMgdGhl IGJhc2UtbGVnCistLSBjaGlsZCwgd2l0aCB0aGUgV29ya1RhYmxlIFNjYW4gZmVlZGluZyB0aGUg cmVjdXJzaXZlIGxlZyBhYm92ZQorLS0gaXQuICBUaGlzIGNvbmZpcm1zIHRoYXQgUlBSIG91dHB1 dCBjYW4gc2VlZCBhIHJlY3Vyc2l2ZSBDVEUKKy0tICh3aW5kb3cgZnVuY3Rpb25zIGNhbm5vdCBh cHBlYXIgaW4gdGhlIHJlY3Vyc2l2ZSBsZWcgaXRzZWxmLCBhCistLSBQb3N0Z3JlU1FMIHJlc3Ry aWN0aW9uLCBzbyB0aGlzIGlzIHRoZSBuYXR1cmFsIHBsYWNlIHRvIGV4ZXJjaXNlCistLSAiUlBS IHVuZGVyIFJlY3Vyc2l2ZSBVbmlvbiIpLgorLS0KKy0tIFhYWDogV2hldGhlciB0aGlzIGNhc2Ug ZmFsbHMgdW5kZXIgdGhlIElTTy9JRUMgOTA3NS0yIDQuMTguNSAvCistLSA2LjE3LjUgcHJvaGli aXRpb24gaXMgbm90IHNvbWV0aGluZyBJIGNhbiBqdWRnZS4gIElmIHRoaXMgY2FzZQorLS0gaXMg bm90IHByb2hpYml0ZWQsIHRoZSBvcGVuIHF1ZXN0aW9uIGlzIHdoZXRoZXIgYSBxdWVyeSB0aGF0 CistLSBkb2VzIHRyaWdnZXIgdGhlIHByb2hpYml0aW9uIGNhbiBiZSBjb25zdHJ1Y3RlZCBhdCBh bGwuCistLSBXaGV0aGVyIHRvIHByb2hpYml0IHRoaXMgY2FzZSBpcyBsZWZ0IHRvIHRoZSBjb21t dW5pdHkuCistLSBQbGFuOiBSZWN1cnNpdmUgVW5pb24gd2l0aCB0aGUgUlBSIFdpbmRvd0FnZyBv biB0aGUgYmFzZSBsZWcgYW5kCistLSB0aGUgV29ya1RhYmxlIFNjYW4gb24gdGhlIHJlY3Vyc2l2 ZSBsZWcuCitFWFBMQUlOIChDT1NUUyBPRkYpCitXSVRIIFJFQ1VSU0lWRSBzZXEgQVMgKAorICAg IFNFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBycHJfaW50 ZWcKKyAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQisp CisgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKyAgICBVTklPTiBBTEwKKyAg ICBTRUxFQ1QgaWQgKyAxMDAsIHZhbCwgY250IEZST00gc2VxIFdIRVJFIGlkIDwgMworKQorU0VM RUNUIGlkLCB2YWwsIGNudCBGUk9NIHNlcSBPUkRFUiBCWSBpZDsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTb3J0CisgICBTb3J0IEtleTogc2VxLmlkCisgICBDVEUg c2VxCisgICAgIC0+ICBSZWN1cnNpdmUgVW5pb24KKyAgICAgICAgICAgLT4gIFdpbmRvd0FnZwor ICAgICAgICAgICAgICAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIHJwcl9pbnRlZy5pZCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICAgICAgICAg ICAgICAgIFBhdHRlcm46IGEgYisKKyAgICAgICAgICAgICAgICAgTmF2IE1hcmsgTG9va2JhY2s6 IDEKKyAgICAgICAgICAgICAgICAgLT4gIFNvcnQKKyAgICAgICAgICAgICAgICAgICAgICAgU29y dCBLZXk6IHJwcl9pbnRlZy5pZAorICAgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4g b24gcnByX2ludGVnCisgICAgICAgICAgIC0+ICBXb3JrVGFibGUgU2NhbiBvbiBzZXEgc2VxXzEK KyAgICAgICAgICAgICAgICAgRmlsdGVyOiAoaWQgPCAzKQorICAgLT4gIENURSBTY2FuIG9uIHNl cQorKDE0IHJvd3MpCisKKy0tIFJlc3VsdDogdGhlIGJhc2UgbGVnIGNvbnRyaWJ1dGVzIHRoZSBS UFIgbWF0Y2ggY291bnRzOyB0aGUKKy0tIHJlY3Vyc2l2ZSBsZWcgcHJvcGFnYXRlcyB0aG9zZSBj b3VudHMgd2l0aCBzaGlmdGVkIGlkcy4KK1dJVEggUkVDVVJTSVZFIHNlcSBBUyAoCisgICAgU0VM RUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKKyAgICBGUk9NIHJwcl9pbnRlZwor ICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAg ICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorICAgIFVOSU9OIEFMTAorICAgIFNF TEVDVCBpZCArIDEwMCwgdmFsLCBjbnQgRlJPTSBzZXEgV0hFUkUgaWQgPCAzCispCitTRUxFQ1Qg aWQsIHZhbCwgY250IEZST00gc2VxIE9SREVSIEJZIGlkOworIGlkICB8IHZhbCB8IGNudCAKKy0t LS0tKy0tLS0tKy0tLS0tCisgICAxIHwgIDEwIHwgICAyCisgICAyIHwgIDIwIHwgICAwCisgICAz IHwgIDE1IHwgICAyCisgICA0IHwgIDI1IHwgICAwCisgICA1IHwgICA1IHwgICAzCisgICA2IHwg IDMwIHwgICAwCisgICA3IHwgIDM1IHwgICAwCisgICA4IHwgIDIwIHwgICAzCisgICA5IHwgIDQw IHwgICAwCisgIDEwIHwgIDQ1IHwgICAwCisgMTAxIHwgIDEwIHwgICAyCisgMTAyIHwgIDIwIHwg ICAwCisoMTIgcm93cykKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CistLSBCOC4gUlBSICsgSW5jcmVtZW50YWwgc29ydAor LS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLSBWZXJpZnkgdGhhdCBSUFIgcGF0dGVybiBtYXRjaGluZyB3b3JrcyBjb3JyZWN0 bHkgd2hlbiB0aGUgaW5wdXQKKy0tIHRvIFdpbmRvd0FnZyBhcnJpdmVzIHZpYSBhbiBpbmNyZW1l bnRhbCBzb3J0LiAgVGhlIGluZGV4IG9uIChpZCkKKy0tIHByb3ZpZGVzIHByZXNvcnRlZCBpbnB1 dCBmb3IgdGhlIGZpcnN0IE9SREVSIEJZIGtleSwgc28KKy0tICJPUkRFUiBCWSBpZCwgdmFsIiBs ZXRzIHRoZSBwbGFubmVyIHVzZSBJbmNyZW1lbnRhbCBTb3J0IHRvIG9yZGVyCistLSBvbmx5IG9u IHRoZSBzZWNvbmQga2V5LiAgVGhlIHBsYW4gbXVzdCBzaG93IEluY3JlbWVudGFsIFNvcnQKKy0t IGJlbG93IHRoZSBSUFIgV2luZG93QWdnLCBhbmQgUlBSIG11c3QgcHJvZHVjZSB0aGUgc2FtZSBw ZXItcm93CistLSBtYXRjaCBjb3VudHMgYXMgaXQgd291bGQgd2l0aCBhIHBsYWluIFNvcnQuCitD UkVBVEUgSU5ERVggcnByX2ludGVnX2lkX2lkeCBPTiBycHJfaW50ZWcgKGlkKTsKK1NFVCBlbmFi bGVfc2Vxc2NhbiA9IG9mZjsKKy0tIFBsYW46IFJQUiBXaW5kb3dBZ2cgYWJvdmUgYW4gSW5jcmVt ZW50YWwgU29ydCBhYm92ZSBhbiBJbmRleCBTY2FuLgorLS0gVGhlIEluY3JlbWVudGFsIFNvcnQg ZGVjbGFyZXMgIlByZXNvcnRlZCBLZXk6IGlkIiBhbmQgc29ydHMgb25seQorLS0gb24gdmFsIHdp dGhpbiBlYWNoIGlkIGdyb3VwLgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGlkLCB2YWws IGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX2ludGVnCitXSU5ET1cgdyBBUyAoT1JE RVIgQlkgaWQsIHZhbAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEIgQVMgdmFsID4gUFJF Vih2YWwpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkLCB2YWwg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0 dGVybjogYSBiKworICAgTmF2IE1hcmsgTG9va2JhY2s6IDEKKyAgIC0+ICBJbmNyZW1lbnRhbCBT b3J0CisgICAgICAgICBTb3J0IEtleTogaWQsIHZhbAorICAgICAgICAgUHJlc29ydGVkIEtleTog aWQKKyAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHJwcl9pbnRlZ19pZF9pZHggb24gcnBy X2ludGVnCisoOCByb3dzKQorCistLSBSZXN1bHQ6IFJQUiBvdmVyIHRoZSBpbmNyZW1lbnRhbGx5 IHNvcnRlZCBzdHJlYW0gcHJvZHVjZXMgbWF0Y2gKKy0tIGNvdW50cyBwZXIgcm93LgorU0VMRUNU IGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX2ludGVnCitXSU5ET1cg dyBBUyAoT1JERVIgQlkgaWQsIHZhbAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEIgQVMg dmFsID4gUFJFVih2YWwpKQorT1JERVIgQlkgaWQsIHZhbDsKKyBpZCB8IHZhbCB8IGNudCAKKy0t LS0rLS0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAgMgorICAyIHwgIDIwIHwgICAwCisgIDMgfCAg MTUgfCAgIDIKKyAgNCB8ICAyNSB8ICAgMAorICA1IHwgICA1IHwgICAzCisgIDYgfCAgMzAgfCAg IDAKKyAgNyB8ICAzNSB8ICAgMAorICA4IHwgIDIwIHwgICAzCisgIDkgfCAgNDAgfCAgIDAKKyAx MCB8ICA0NSB8ICAgMAorKDEwIHJvd3MpCisKK1JFU0VUIGVuYWJsZV9zZXFzY2FuOworRFJPUCBJ TkRFWCBycHJfaW50ZWdfaWRfaWR4OworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBCOS4gUlBSICsgVm9sYXRpbGUgZnVu Y3Rpb24gaW4gREVGSU5FCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFJlY29yZHMgdGhlIGN1cnJlbnQgYmVoYXZpb3Vy OiBERUZJTkUgdG9kYXkgYWNjZXB0cyB2b2xhdGlsZQorLS0gZnVuY3Rpb25zIHN1Y2ggYXMgcmFu ZG9tKCkgYW5kIHRoZSBxdWVyeSBydW5zIHRvIGNvbXBsZXRpb24uCistLSBUbyBrZWVwIHRoZSBl eHBlY3RlZCBvdXRwdXQgZGV0ZXJtaW5pc3RpYyB0aGUgcHJlZGljYXRlIHVzZXMKKy0tICJyYW5k b20oKSA+PSAwLjAiLCB3aGljaCBpcyBzdHJ1Y3R1cmFsbHkgZXF1aXZhbGVudCB0byBUUlVFIGFu ZAorLS0gdGhlcmVmb3JlIGRvZXMgbm90IHBlcnR1cmIgdGhlIG1hdGNoIHJlc3VsdC4gIFRoZSBp bnRlcmVzdGluZworLS0gcHJvcGVydHkgaXMgdGhhdCB2b2xhdGlsZSBpbnZvY2F0aW9uIGRvZXMg bm90IGNyYXNoIG9yIHNob3J0LQorLS0gY2lyY3VpdCBwYXR0ZXJuIG1hdGNoaW5nLgorLS0KKy0t IFhYWDogdm9sYXRpbGUgZnVuY3Rpb25zIGluIERFRklORSBhcmUgc2xhdGVkIHRvIGJlIHJlamVj dGVkIGF0CistLSBwYXJzZSB0aW1lLiAgVW5kZXIgUlBSJ3MgTkZBIGVuZ2luZSB0aGUgc2FtZSBy b3cncyBERUZJTkUKKy0tIHByZWRpY2F0ZSBtYXkgYmUgZXZhbHVhdGVkIG11bHRpcGxlIHRpbWVz IChiYWNrdHJhY2tpbmcsCistLSBQUkVWL05FWFQgbmF2aWdhdGlvbiksIHNvIGEgdHJ1bHkgdm9s YXRpbGUgcmVzdWx0IHdvdWxkIG1ha2UKKy0tIHBhdHRlcm4gbWF0Y2hpbmcgbm9uLWRldGVybWlu aXN0aWMuICBXaGVuIHRoZSBwcm9oaWJpdGlvbiBsYW5kcywKKy0tIHRoaXMgdGVzdCBtdXN0IGJl IHJlcGxhY2VkIHdpdGggYW4gZXJyb3ItY2FzZSB0ZXN0IHRoYXQgZXhwZWN0cworLS0gcmFuZG9t KCkgaW4gREVGSU5FIHRvIGJlIHJlamVjdGVkLgorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9W RVIgdyBBUyBjbnQKK0ZST00gcnByX2ludGVnCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQ QVRURVJOIChBIEIrKQorICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSBBTkQgcmFuZG9t KCkgPj0gMC4wKQorT1JERVIgQlkgaWQ7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0t LS0tCisgIDEgfCAgMTAgfCAgIDIKKyAgMiB8ICAyMCB8ICAgMAorICAzIHwgIDE1IHwgICAyCisg IDQgfCAgMjUgfCAgIDAKKyAgNSB8ICAgNSB8ICAgMworICA2IHwgIDMwIHwgICAwCisgIDcgfCAg MzUgfCAgIDAKKyAgOCB8ICAyMCB8ICAgMworICA5IHwgIDQwIHwgICAwCisgMTAgfCAgNDUgfCAg IDAKKygxMCByb3dzKQorCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEIxMC4gUlBSICsgQ29ycmVsYXRlZCBzdWJxdWVy eSBpbiBXSEVSRQorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CistLSBWZXJpZnkgdGhhdCBhbiBSUFIgd2luZG93IHBsYWNlZCBp bnNpZGUgYSBjb3JyZWxhdGVkIHNjYWxhcgorLS0gc3VicXVlcnkgaXMgZXhlY3V0ZWQgb25jZSBw ZXIgb3V0ZXIgcm93LiAgREVGSU5FIHN0aWxsIHJlZmVyZW5jZXMKKy0tIG9ubHkgbG9jYWwgY29s dW1ucyAocXVhbGlmaWVkIHJlZnMgZnJvbSB0aGUgb3V0ZXIgcXVlcnkgYXJlIG5vdAorLS0gc3Vw cG9ydGVkIGluIERFRklORSk7IHRoZSBjb3JyZWxhdGlvbiBsaXZlcyBpbiB0aGUgc3VicXVlcnkn cworLS0gV0hFUkUgY2xhdXNlIGFzICJpLmlkIDw9IG8uaWQiLiAgVGhlIHBsYW4gbXVzdCBzaG93 IGEgU3ViUGxhbgorLS0gYXR0YWNoZWQgdG8gdGhlIG91dGVyIHNjYW4sIHdpdGggdGhlIFJQUiBX aW5kb3dBZ2cgZHJpdmVuIGJ5IGEKKy0tIHBlci1yb3cgc2NhbiBmaWx0ZXIgY2FycnlpbmcgdGhl IGNvcnJlbGF0aW9uIHByZWRpY2F0ZS4KKy0tIFBsYW46IFN1YlBsYW4gYXR0YWNoZWQgdG8gdGhl IG91dGVyIFNlcSBTY2FuOyB0aGUgaW5uZXIgc2NhbgorLS0gY2FycmllcyAiRmlsdGVyOiAoaWQg PD0gby5pZCkiLCBjb25maXJtaW5nIHRoZSBjb3JyZWxhdGlvbiBpcworLS0gZXZhbHVhdGVkIHBl ciBvdXRlciByb3cuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1Qgby5pZCwgby52YWwsCisg ICAgKFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKKyAgICAgRlJPTSBycHJfaW50ZWcgaQorICAgICBX SEVSRSBpLmlkIDw9IG8uaWQKKyAgICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAg ICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkp CisgICAgIE9SREVSIEJZIGlkCisgICAgIExJTUlUIDEpIEFTIGZpcnN0X2NudAorRlJPTSBycHJf aW50ZWcgbworT1JERVIgQlkgby5pZDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIFNvcnQKKyAgIFNvcnQgS2V5OiBvLmlkCisgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVn IG8KKyAgICAgICAgIFN1YlBsYW4gZXhwcl8xCisgICAgICAgICAgIC0+ICBMaW1pdAorICAgICAg ICAgICAgICAgICAtPiAgV2luZG93QWdnCisgICAgICAgICAgICAgICAgICAgICAgIFdpbmRvdzog dyBBUyAoT1JERVIgQlkgaS5pZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcpCisgICAgICAgICAgICAgICAgICAgICAgIFBhdHRlcm46IGEgYisKKyAgICAg ICAgICAgICAgICAgICAgICAgTmF2IE1hcmsgTG9va2JhY2s6IDEKKyAgICAgICAgICAgICAgICAg ICAgICAgLT4gIFNvcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29ydCBLZXk6IGku aWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRl ZyBpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbHRlcjogKGlkIDw9IG8u aWQpCisoMTMgcm93cykKKworLS0gUmVzdWx0OiBlYWNoIG91dGVyIHJvdyByZWNlaXZlcyB0aGUg Zmlyc3RfY250IGZyb20gaXRzIG93bgorLS0gY29ycmVsYXRlZCBSUFIgc3VicXVlcnkuCitTRUxF Q1Qgby5pZCwgby52YWwsCisgICAgKFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKKyAgICAgRlJPTSBy cHJfaW50ZWcgaQorICAgICBXSEVSRSBpLmlkIDw9IG8uaWQKKyAgICAgV0lORE9XIHcgQVMgKE9S REVSIEJZIGlkCisgICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgICBERUZJTkUgQiBB UyB2YWwgPiBQUkVWKHZhbCkpCisgICAgIE9SREVSIEJZIGlkCisgICAgIExJTUlUIDEpIEFTIGZp cnN0X2NudAorRlJPTSBycHJfaW50ZWcgbworT1JERVIgQlkgby5pZDsKKyBpZCB8IHZhbCB8IGZp cnN0X2NudCAKKy0tLS0rLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8ICAxMCB8ICAgICAgICAgMAor ICAyIHwgIDIwIHwgICAgICAgICAyCisgIDMgfCAgMTUgfCAgICAgICAgIDIKKyAgNCB8ICAyNSB8 ICAgICAgICAgMgorICA1IHwgICA1IHwgICAgICAgICAyCisgIDYgfCAgMzAgfCAgICAgICAgIDIK KyAgNyB8ICAzNSB8ICAgICAgICAgMgorICA4IHwgIDIwIHwgICAgICAgICAyCisgIDkgfCAgNDAg fCAgICAgICAgIDIKKyAxMCB8ICA0NSB8ICAgICAgICAgMgorKDEwIHJvd3MpCisKKy0tIENsZWFu dXAKK0RST1AgVEFCTEUgcnByX2ludGVnOworRFJPUCBUQUJMRSBycHJfaW50ZWcyOwpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfbmZhLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnByX25mYS5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAuLmExOWIyNmMzYjk0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ycHJfbmZhLm91dApAQCAtMCwwICsxLDQ2NjEgQEAKKy0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gUlBS IE5GQSBUZXN0cworLS0gVGVzdHMgZm9yIFJvdyBQYXR0ZXJuIFJlY29nbml0aW9uIE5GQSBSdW50 aW1lIEV4ZWN1dGlvbgorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLQorLS0gVGhpcyB0ZXN0IHN1aXRlIHZhbGlkYXRlcyB0 aGUgTkZBIChOb24tZGV0ZXJtaW5pc3RpYyBGaW5pdGUKKy0tIEF1dG9tYXRvbikgcnVudGltZSBl eGVjdXRpb24gZW5naW5lIGluIG5vZGVXaW5kb3dBZ2cuYywKKy0tIGZvY3VzaW5nIG9uIHVwZGF0 ZV9yZWR1Y2VkX2ZyYW1lIGFuZCByZWxhdGVkIGZ1bmN0aW9ucy4KKy0tCistLSBUZXN0IFN0cmF0 ZWd5OgorLS0gICBEaWFnb25hbCBwYXR0ZXJuIHN0eWxlIHVzaW5nIEFSUkFZIGZsYWdzIHRvIGV4 cGxpY2l0bHkKKy0tICAgY29udHJvbCB3aGljaCBwYXR0ZXJuIHZhcmlhYmxlcyBtYXRjaCBhdCBl YWNoIHJvdy4KKy0tCistLSBUZXN0IENvdmVyYWdlOgorLS0gICBCYXNpYyBORkEgRmxvdyAobWF0 Y2gtPmFic29yYi0+YWR2YW5jZSkKKy0tICAgQWJzb3JwdGlvbiBPcHRpbWl6YXRpb24KKy0tICAg Q29udGV4dCBMaWZlY3ljbGUgTWFuYWdlbWVudAorLS0gICBBZHZhbmNlIFBoYXNlIChFcHNpbG9u IFRyYW5zaXRpb25zKQorLS0gICBNYXRjaCBQaGFzZSAoVmFyaWFibGUgTWF0Y2hpbmcpCistLSAg IEZyYW1lIEJvdW5kYXJ5IEhhbmRsaW5nCistLSAgIFN0YXRlIE1hbmFnZW1lbnQgKERlZHVwbGlj YXRpb24pCistLSAgIFN0YXRpc3RpY3MgYW5kIERpYWdub3N0aWNzCistLSAgIFF1YW50aWZpZXIg UnVudGltZSBCZWhhdmlvcgorLS0gICBQYXRob2xvZ2ljYWwgUGF0dGVybiBQcm90ZWN0aW9uCist LSAgIEFsdGVybmF0aW9uIFJ1bnRpbWUgQmVoYXZpb3IKKy0tICAgRGVlcCBOZXN0ZWQgR3JvdXBz CistLSAgIFNLSVAgT3B0aW9ucyAoUnVudGltZSkKKy0tICAgSU5JVElBTCBNb2RlIChSdW50aW1l KQorLS0gICBGcmFtZSBCb3VuZGFyeSBWYXJpYXRpb25zCistLSAgIFNwZWNpYWwgUGFydGl0aW9u IENhc2VzCistLSAgIERFRklORSBTcGVjaWFsIENhc2VzCistLSAgIEFic29ycHRpb24gRHluYW1p YyBGbGFncworLS0gICBaZXJvLUNvbnN1bXB0aW9uIEN5Y2xlIERldGVjdGlvbgorLS0KKy0tIFJl c3BvbnNpYmlsaXR5OgorLS0gICAtIE5GQSBydW50aW1lIGV4ZWN1dGlvbiBwYXRocworLS0gICAt IENvbnRleHQvU3RhdGUgbGlmZWN5Y2xlIG1hbmFnZW1lbnQKKy0tICAgLSBSdW50aW1lIGJvdW5k YXJ5IGNvbmRpdGlvbnMgYW5kIHByb3RlY3Rpb25zCistLQorLS0gTk9UIHRlc3RlZCBoZXJlIChj b3ZlcmVkIGluIG90aGVyIGZpbGVzKToKKy0tICAgLSBQYXR0ZXJuIHBhcnNpbmcvb3B0aW1pemF0 aW9uIChycHJfYmFzZS5zcWwpCistLSAgIC0gRVhQTEFJTiBvdXRwdXQgKHJwcl9leHBsYWluLnNx bCkKKy0tICAgLSBQUkVWL05FWFQgc2VtYW50aWNzIChycHIuc3FsKQorLS0gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tIEJhc2ljIE5GQSBGbG93CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFNpbXBsZSBzZXF1ZW50aWFsIHBhdHRlcm4K K1dJVEggdGVzdF9zZXF1ZW50aWFsIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAg ICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0InXSksCisgICAgICAg ICgzLCBBUlJBWVsnQyddKSwKKyAgICAgICAgKDQsIEFSUkFZWydEJ10pLAorICAgICAgICAoNSwg QVJSQVlbJ18nXSkgIC0tIE5vIG1hdGNoCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVD VCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFy dCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3Rf c2VxdWVudGlhbAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0gg U0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEEgQiBDIEQpCisgICAgREVGSU5FCisgICAg ICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3Mp LAorICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncyksCisgICAgICAgIEQgQVMgJ0QnID0gQU5Z KGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0t Ky0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0F9ICAgfCAgICAgICAg ICAgMSB8ICAgICAgICAgNAorICAyIHwge0J9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAor ICAzIHwge0N9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA0IHwge0R9ICAgfCAgICAg ICAgICAgICB8ICAgICAgICAgIAorICA1IHwge199ICAgfCAgICAgICAgICAgICB8ICAgICAgICAg IAorKDUgcm93cykKKworLS0gUXVhbnRpZmllZCBwYXR0ZXJuIChBKyBCKyBDKykKK1dJVEggdGVz dF9xdWFudGlmaWVkIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEs IEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJB WVsnQSddKSwKKyAgICAgICAgKDQsIEFSUkFZWydCJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ0In XSksCisgICAgICAgICg2LCBBUlJBWVsnQyddKSwKKyAgICAgICAgKDcsIEFSUkFZWydDJ10pLAor ICAgICAgICAoOCwgQVJSQVlbJ18nXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNU IGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0 LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9x dWFudGlmaWVkCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBT S0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSsgQisgQyspCisgICAgREVGSU5FCisgICAg ICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3Mp LAorICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNo X3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgIDcKKyAgMiB8IHtBfSAgIHwg ICAgICAgICAgIDIgfCAgICAgICAgIDcKKyAgMyB8IHtBfSAgIHwgICAgICAgICAgIDMgfCAgICAg ICAgIDcKKyAgNCB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNSB8IHtCfSAg IHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNiB8IHtDfSAgIHwgICAgICAgICAgICAgfCAg ICAgICAgICAKKyAgNyB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgOCB8IHtf fSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyg4IHJvd3MpCisKKy0tIE9wdGlvbmFsIHBh dHRlcm4gKEEgQj8gQykKK1dJVEggdGVzdF9vcHRpb25hbCBBUyAoCisgICAgU0VMRUNUICogRlJP TSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydD J10pLCAgLS0gQiBza2lwcGVkCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQs IEFSUkFZWydCJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ0MnXSksICAtLSBCIG1hdGNoZWQKKyAg ICAgICAgKDYsIEFSUkFZWydfJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBp ZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwK KyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3Rfb3B0 aW9uYWwKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAg VE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBIEI/IEMpCisgICAgREVGSU5FCisgICAgICAgIEEg QVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAorICAg ICAgICBDIEFTICdDJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0 IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAg MSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgIDIKKyAgMiB8IHtDfSAgIHwgICAgICAg ICAgICAgfCAgICAgICAgICAKKyAgMyB8IHtBfSAgIHwgICAgICAgICAgIDMgfCAgICAgICAgIDUK KyAgNCB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNSB8IHtDfSAgIHwgICAg ICAgICAgICAgfCAgICAgICAgICAKKyAgNiB8IHtffSAgIHwgICAgICAgICAgICAgfCAgICAgICAg ICAKKyg2IHJvd3MpCisKKy0tIEFsdGVybmF0aW9uIHBhdHRlcm4gKEEgKEJ8QykgRCkKK1dJVEgg dGVzdF9hbHRlcm5hdGlvbiBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAg ICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydCJ10pLCAgLS0gRmlyc3QgYnJh bmNoCisgICAgICAgICgzLCBBUlJBWVsnRCddKSwKKyAgICAgICAgKDQsIEFSUkFZWydBJ10pLAor ICAgICAgICAoNSwgQVJSQVlbJ0MnXSksICAtLSBTZWNvbmQgYnJhbmNoCisgICAgICAgICg2LCBB UlJBWVsnRCddKSwKKyAgICAgICAgKDcsIEFSUkFZWydfJ10pCisgICAgKSBBUyB0KGlkLCBmbGFn cykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBB UyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5k CitGUk9NIHRlc3RfYWx0ZXJuYXRpb24KK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBIChCIHwgQykgRCkK KyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFT ICdCJyA9IEFOWShmbGFncyksCisgICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKSwKKyAgICAg ICAgRCBBUyAnRCcgPSBBTlkoZmxhZ3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8 IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEg fCB7QX0gICB8ICAgICAgICAgICAxIHwgICAgICAgICAzCisgIDIgfCB7Qn0gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCisgIDMgfCB7RH0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisg IDQgfCB7QX0gICB8ICAgICAgICAgICA0IHwgICAgICAgICA2CisgIDUgfCB7Q30gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCisgIDYgfCB7RH0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAg CisgIDcgfCB7X30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisoNyByb3dzKQorCistLSA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tIEFic29ycHRpb24gT3B0aW1pemF0aW9uCistLSA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEFic29yYmFibGUgcGF0 dGVybiAoQSspCitXSVRIIHRlc3RfYWJzb3JiYWJsZSBBUyAoCisgICAgU0VMRUNUICogRlJPTSAo VkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydBJ10p LAorICAgICAgICAoMywgQVJSQVlbJ0EnXSksCisgICAgICAgICg0LCBBUlJBWVsnQSddKSwKKyAg ICAgICAgKDUsIEFSUkFZWydfJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBp ZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwK KyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfYWJz b3JiYWJsZQorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJ UCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORQorICAgICAgICBBIEFT ICdBJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hf ZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAg IHwgICAgICAgICAgIDEgfCAgICAgICAgIDQKKyAgMiB8IHtBfSAgIHwgICAgICAgICAgIDIgfCAg ICAgICAgIDQKKyAgMyB8IHtBfSAgIHwgICAgICAgICAgIDMgfCAgICAgICAgIDQKKyAgNCB8IHtB fSAgIHwgICAgICAgICAgIDQgfCAgICAgICAgIDQKKyAgNSB8IHtffSAgIHwgICAgICAgICAgICAg fCAgICAgICAgICAKKyg1IHJvd3MpCisKKy0tIE1peGVkIGFic29yYmFibGUvbm9uLWFic29yYmFi bGUgKChBKykgfCBCKQorV0lUSCB0ZXN0X21peGVkX2Fic29ycHRpb24gQVMgKAorICAgIFNFTEVD VCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBB UlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10pLAorICAgICAgICAoNCwgQVJSQVlb J0InXSksCisgICAgICAgICg1LCBBUlJBWVsnXyddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCisp CitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0 Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJP TSB0ZXN0X21peGVkX2Fic29ycHRpb24KK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOICgoQSspIHwgQikKKyAg ICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdC JyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5k IAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAgIHwg ICAgICAgICAgIDEgfCAgICAgICAgIDMKKyAgMiB8IHtBfSAgIHwgICAgICAgICAgIDIgfCAgICAg ICAgIDMKKyAgMyB8IHtBfSAgIHwgICAgICAgICAgIDMgfCAgICAgICAgIDMKKyAgNCB8IHtCfSAg IHwgICAgICAgICAgIDQgfCAgICAgICAgIDQKKyAgNSB8IHtffSAgIHwgICAgICAgICAgICAgfCAg ICAgICAgICAKKyg1IHJvd3MpCisKKy0tIFN0YXRlIGNvdmVyYWdlIChzYW1lIGVsZW1JZHgsIGRp ZmZlcmVudCBjb3VudCkKK1dJVEggdGVzdF9zdGF0ZV9jb3ZlcmFnZSBBUyAoCisgICAgU0VMRUNU ICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFS UkFZWydBJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0EnXSksCisgICAgICAgICg0LCBBUlJBWVsn QiddKSwKKyAgICAgICAgKDUsIEFSUkFZWydfJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykK K1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRj aF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9N IHRlc3Rfc3RhdGVfY292ZXJhZ2UKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBezIsfSBCKQorICAgIERF RklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0g QU5ZKGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCist LS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0F9ICAgfCAgICAg ICAgICAgMSB8ICAgICAgICAgNAorICAyIHwge0F9ICAgfCAgICAgICAgICAgMiB8ICAgICAgICAg NAorICAzIHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA0IHwge0J9ICAgfCAg ICAgICAgICAgICB8ICAgICAgICAgIAorICA1IHwge199ICAgfCAgICAgICAgICAgICB8ICAgICAg ICAgIAorKDUgcm93cykKKworLS0gUmVsdWN0YW50IHBhdHRlcm4gKEErPykgLSBub3QgYWJzb3Ji YWJsZQorLS0gQ29tcGFyZSB3aXRoIGdyZWVkeSBBKyBhYm92ZTogcmVsdWN0YW50IGV4Y2x1ZGVk IGZyb20gYWJzb3JwdGlvbi4KKy0tIEVhY2ggY29udGV4dCBwcm9kdWNlcyBtaW5pbXVtIG1hdGNo IGluZGVwZW5kZW50bHkuCitXSVRIIHRlc3RfcmVsdWN0YW50X2Fic29ycHRpb24gQVMgKAorICAg IFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAg ICgyLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10pLAorICAgICAgICAoNCwg QVJSQVlbJ0EnXSksCisgICAgICAgICg1LCBBUlJBWVsnXyddKQorICAgICkgQVMgdChpZCwgZmxh Z3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcg QVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2Vu ZAorRlJPTSB0ZXN0X3JlbHVjdGFudF9hYnNvcnB0aW9uCitXSU5ET1cgdyBBUyAoCisgICAgT1JE RVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSs/ KQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBm bGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgIDEKKyAg MiB8IHtBfSAgIHwgICAgICAgICAgIDIgfCAgICAgICAgIDIKKyAgMyB8IHtBfSAgIHwgICAgICAg ICAgIDMgfCAgICAgICAgIDMKKyAgNCB8IHtBfSAgIHwgICAgICAgICAgIDQgfCAgICAgICAgIDQK KyAgNSB8IHtffSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyg1IHJvd3MpCisKKy0tIEFi c29ycHRpb24gd2l0aCBmaXhlZCBzdWZmaXg6IEErIEIKK1dJVEggdGVzdF9hYnNvcmJfc3VmZml4 IEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10p LAorICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAg ICAgICAgKDQsIEFSUkFZWydCJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ1gnXSkKKyAgICApIEFT IHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQpIE9WRVIg dyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJP TSB0ZXN0X2Fic29yYl9zdWZmaXgKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklO RQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5Z KGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0t Ky0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0F9ICAgfCAgICAgICAg ICAgMSB8ICAgICAgICAgNAorICAyIHwge0F9ICAgfCAgICAgICAgICAgMiB8ICAgICAgICAgNAor ICAzIHwge0F9ICAgfCAgICAgICAgICAgMyB8ICAgICAgICAgNAorICA0IHwge0J9ICAgfCAgICAg ICAgICAgICB8ICAgICAgICAgIAorICA1IHwge1h9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAg IAorKDUgcm93cykKKworLS0gUGVyLWJyYW5jaCBhYnNvcnB0aW9uIHdpdGggQUxUOiBCKyBDIHwg QisgRAorV0lUSCB0ZXN0X2Fic29yYl9hbHQgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVF UworICAgICAgICAoMSwgQVJSQVlbJ0InXSksCisgICAgICAgICgyLCBBUlJBWVsnQiddKSwKKyAg ICAgICAgKDMsIEFSUkFZWydCJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0QnXSksCisgICAgICAg ICg1LCBBUlJBWVsnWCddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZs YWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlk KSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfYWJzb3JiX2FsdAorV0lORE9XIHcgQVMg KAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBB VFRFUk4gKEIrIEMgfCBCKyBEKQorICAgIERFRklORQorICAgICAgICBCIEFTICdCJyA9IEFOWShm bGFncyksCisgICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgRCBBUyAnRCcg PSBBTlkoZmxhZ3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAK Ky0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7Qn0gICB8ICAg ICAgICAgICAxIHwgICAgICAgICA0CisgIDIgfCB7Qn0gICB8ICAgICAgICAgICAyIHwgICAgICAg ICA0CisgIDMgfCB7Qn0gICB8ICAgICAgICAgICAzIHwgICAgICAgICA0CisgIDQgfCB7RH0gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDUgfCB7WH0gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCisoNSByb3dzKQorCistLSBOb24tYWJzb3JiYWJsZTogQSBCKyAodW5ib3VuZGVkIG5v dCBpbiBmaXJzdCBwb3NpdGlvbikKK1dJVEggdGVzdF9ub19hYnNvcmIgQVMgKAorICAgIFNFTEVD VCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBB UlJBWVsnQiddKSwKKyAgICAgICAgKDMsIEFSUkFZWydCJ10pLAorICAgICAgICAoNCwgQVJSQVlb J0InXSksCisgICAgICAgICg1LCBBUlJBWVsnWCddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCisp CitTRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0 LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3Rfbm9fYWJzb3Ji CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5F WFQgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScg PSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBm bGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgIDQKKyAg MiB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgMyB8IHtCfSAgIHwgICAgICAg ICAgICAgfCAgICAgICAgICAKKyAgNCB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAK KyAgNSB8IHtYfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyg1IHJvd3MpCisKKy0tIEdS T1VQIG1lcmdlIGVuYWJsZXMgYWJzb3JwdGlvbjogKEEgQikgKEEgQikrIG9wdGltaXplZCB0byAo QSBCKXsyLH0KK1dJVEggdGVzdF9hYnNvcmJfZ3JvdXAgQVMgKAorICAgIFNFTEVDVCAqIEZST00g KFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQidd KSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0InXSksCisg ICAgICAgICg1LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDYsIEFSUkFZWydCJ10pLAorICAgICAg ICAoNywgQVJSQVlbJ1gnXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBm bGFncywgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShp ZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2Fic29yYl9ncm91cAorV0lORE9XIHcg QVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAg IFBBVFRFUk4gKChBIEIpIChBIEIpKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBB TlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFn cyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgIDYKKyAgMiB8 IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgMyB8IHtBfSAgIHwgICAgICAgICAg IDMgfCAgICAgICAgIDYKKyAgNCB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAg NSB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNiB8IHtCfSAgIHwgICAgICAg ICAgICAgfCAgICAgICAgICAKKyAgNyB8IHtYfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAK Kyg3IHJvd3MpCisKKy0tIEZpeGVkLWxlbmd0aCBncm91cCBhYnNvcnB0aW9uOiAoQSBCezJ9KSsg QworLS0gQnsyfSBoYXMgbWluID09IG1heCwgZXF1aXZhbGVudCB0byB1bnJvbGxpbmcgdG8gKEEg QiBCKSsgQworV0lUSCB0ZXN0X2Fic29yYl9maXhlZGxlbiBBUyAoCisgICAgU0VMRUNUICogRlJP TSAoVkFMVUVTCisgICAgICAgICgxLCAgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCAgQVJSQVlb J0InXSksCisgICAgICAgICgzLCAgQVJSQVlbJ0InXSksCisgICAgICAgICg0LCAgQVJSQVlbJ0En XSksCisgICAgICAgICg1LCAgQVJSQVlbJ0InXSksCisgICAgICAgICg2LCAgQVJSQVlbJ0InXSks CisgICAgICAgICg3LCAgQVJSQVlbJ0EnXSksCisgICAgICAgICg4LCAgQVJSQVlbJ0InXSksCisg ICAgICAgICg5LCAgQVJSQVlbJ0InXSksCisgICAgICAgICgxMCwgQVJSQVlbJ0MnXSksCisgICAg ICAgICgxMSwgQVJSQVlbJ1gnXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlk LCBmbGFncywgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1 ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2Fic29yYl9maXhlZGxlbgorV0lO RE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1Qg Uk9XCisgICAgUEFUVEVSTiAoKEEgQnsyfSkrIEMpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMg J0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAorICAgICAg ICBDIEFTICdDJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwg bWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8 IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgMTAKKyAgMiB8IHtCfSAgIHwgICAgICAgICAg ICAgfCAgICAgICAgICAKKyAgMyB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAg NCB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNSB8IHtCfSAgIHwgICAgICAg ICAgICAgfCAgICAgICAgICAKKyAgNiB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAK KyAgNyB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgOCB8IHtCfSAgIHwgICAg ICAgICAgICAgfCAgICAgICAgICAKKyAgOSB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAg ICAKKyAxMCB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAxMSB8IHtYfSAgIHwg ICAgICAgICAgICAgfCAgICAgICAgICAKKygxMSByb3dzKQorCistLSBDb25zZWN1dGl2ZSB2YXJz IG1lcmdlZCB0byBmaXhlZC1sZW5ndGg6IChBIEIgQikrIC0+IChBIEJ7Mn0pKworLS0gbWVyZ2VD b25zZWN1dGl2ZVZhcnMgcHJvZHVjZXMgQnsyfTsgbm93IGFic29yYmFibGUgd2l0aCBmaXhlZC1s ZW5ndGggY2hlY2sKK1dJVEggdGVzdF9hYnNvcmJfY29uc2VjdXRpdmUgQVMgKAorICAgIFNFTEVD VCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwg IEFSUkFZWydCJ10pLAorICAgICAgICAoMywgIEFSUkFZWydCJ10pLAorICAgICAgICAoNCwgIEFS UkFZWydBJ10pLAorICAgICAgICAoNSwgIEFSUkFZWydCJ10pLAorICAgICAgICAoNiwgIEFSUkFZ WydCJ10pLAorICAgICAgICAoNywgIEFSUkFZWydBJ10pLAorICAgICAgICAoOCwgIEFSUkFZWydC J10pLAorICAgICAgICAoOSwgIEFSUkFZWydCJ10pLAorICAgICAgICAoMTAsIEFSUkFZWydYJ10p CisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVl KGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRj aF9lbmQKK0ZST00gdGVzdF9hYnNvcmJfY29uc2VjdXRpdmUKK1dJTkRPVyB3IEFTICgKKyAgICBP UkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4g KChBIEIgQikrKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisg ICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3Rh cnQgfCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQor ICAxIHwge0F9ICAgfCAgICAgICAgICAgMSB8ICAgICAgICAgOQorICAyIHwge0J9ICAgfCAgICAg ICAgICAgICB8ICAgICAgICAgIAorICAzIHwge0J9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAg IAorICA0IHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA1IHwge0J9ICAgfCAg ICAgICAgICAgICB8ICAgICAgICAgIAorICA2IHwge0J9ICAgfCAgICAgICAgICAgICB8ICAgICAg ICAgIAorICA3IHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA4IHwge0J9ICAg fCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA5IHwge0J9ICAgfCAgICAgICAgICAgICB8ICAg ICAgICAgIAorIDEwIHwge1h9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorKDEwIHJvd3Mp CisKKy0tIE5lc3RlZCBmaXhlZC1sZW5ndGggZ3JvdXAgYWJzb3JwdGlvbjogKEEgKEIgQyl7Mn0g RCkrIEUKKy0tIElubmVyIGdyb3VwIHsyfSBoYXMgbWluID09IG1heDsgYWJzb3JiYWJsZSB2aWEg cmVjdXJzaXZlIGNoZWNrCistLSBzdGVwX3NpemUgPSAxICsgKDErMSkqMiArIDEgPSA2CitXSVRI IHRlc3RfYWJzb3JiX25lc3RlZF9maXhlZGxlbiBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFM VUVTCisgICAgICAgICgxLCAgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCAgQVJSQVlbJ0InXSks CisgICAgICAgICgzLCAgQVJSQVlbJ0MnXSksCisgICAgICAgICg0LCAgQVJSQVlbJ0InXSksCisg ICAgICAgICg1LCAgQVJSQVlbJ0MnXSksCisgICAgICAgICg2LCAgQVJSQVlbJ0QnXSksCisgICAg ICAgICg3LCAgQVJSQVlbJ0EnXSksCisgICAgICAgICg4LCAgQVJSQVlbJ0InXSksCisgICAgICAg ICg5LCAgQVJSQVlbJ0MnXSksCisgICAgICAgICgxMCwgQVJSQVlbJ0InXSksCisgICAgICAgICgx MSwgQVJSQVlbJ0MnXSksCisgICAgICAgICgxMiwgQVJSQVlbJ0QnXSksCisgICAgICAgICgxMywg QVJSQVlbJ0UnXSksCisgICAgICAgICgxNCwgQVJSQVlbJ1gnXSkKKyAgICApIEFTIHQoaWQsIGZs YWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRj aF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2Fi c29yYl9uZXN0ZWRfZml4ZWRsZW4KK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIChCIEMpezJ9IEQp KyBFKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAg IEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQyBBUyAnQycgPSBBTlkoZmxhZ3MpLAor ICAgICAgICBEIEFTICdEJyA9IEFOWShmbGFncyksCisgICAgICAgIEUgQVMgJ0UnID0gQU5ZKGZs YWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0F9ICAgfCAgICAgICAgICAg MSB8ICAgICAgICAxMworICAyIHwge0J9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICAz IHwge0N9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA0IHwge0J9ICAgfCAgICAgICAg ICAgICB8ICAgICAgICAgIAorICA1IHwge0N9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAor ICA2IHwge0R9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA3IHwge0F9ICAgfCAgICAg ICAgICAgICB8ICAgICAgICAgIAorICA4IHwge0J9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAg IAorICA5IHwge0N9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorIDEwIHwge0J9ICAgfCAg ICAgICAgICAgICB8ICAgICAgICAgIAorIDExIHwge0N9ICAgfCAgICAgICAgICAgICB8ICAgICAg ICAgIAorIDEyIHwge0R9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorIDEzIHwge0V9ICAg fCAgICAgICAgICAgICB8ICAgICAgICAgIAorIDE0IHwge1h9ICAgfCAgICAgICAgICAgICB8ICAg ICAgICAgIAorKDE0IHJvd3MpCisKKy0tIERvdWJseSBuZXN0ZWQgZml4ZWQtbGVuZ3RoIGdyb3Vw IGFic29ycHRpb246IChBICgoQiBDezN9KXsyfSBEKXsyfSBFKSsgRgorLS0gc3RlcF9zaXplID0g MSArICgoMSszKSoyKzEpKjIgKyAxID0gMjA7IDIgaXRlcmF0aW9ucyArIEYgPSA0MSByb3dzCitX SVRIIHRlc3RfYWJzb3JiX2RvdWJseV9uZXN0ZWQgQVMgKAorICAgIFNFTEVDVCB2IEFTIGlkLCBB UlJBWVsKKyAgICAgICAgQ0FTRQorICAgICAgICAgICAgV0hFTiB2ICUgNDEgSU4gKDEsIDIxKSAg VEhFTiAnQScKKyAgICAgICAgICAgIFdIRU4gdiAlIDQxIElOICgyLCA2LCAxMSwgMTUsIDIyLCAy NiwgMzEsIDM1KSBUSEVOICdCJworICAgICAgICAgICAgV0hFTiB2ICUgNDEgSU4gKDMsNCw1LCA3 LDgsOSwgMTIsMTMsMTQsIDE2LDE3LDE4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIz LDI0LDI1LCAyNywyOCwyOSwgMzIsMzMsMzQsIDM2LDM3LDM4KSBUSEVOICdDJworICAgICAgICAg ICAgV0hFTiB2ICUgNDEgSU4gKDEwLCAxOSwgMzAsIDM5KSBUSEVOICdEJworICAgICAgICAgICAg V0hFTiB2ICUgNDEgSU4gKDIwLCA0MCkgVEhFTiAnRScKKyAgICAgICAgICAgIFdIRU4gdiAlIDQx ID0gMCBUSEVOICdGJworICAgICAgICAgICAgRUxTRSAnWCcKKyAgICAgICAgRU5ECisgICAgXSBB UyBmbGFncworICAgIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDgyKSBBUyBzKHYpCispCitTRUxF Q1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0 X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfYWJzb3JiX2RvdWJseV9u ZXN0ZWQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAg UEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBICgoQiBDIEMgQyl7Mn0gRCl7Mn0gRSkrIEYp CisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBB UyAnQicgPSBBTlkoZmxhZ3MpLAorICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncyksCisgICAg ICAgIEQgQVMgJ0QnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgRSBBUyAnRScgPSBBTlkoZmxhZ3Mp LAorICAgICAgICBGIEFTICdGJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNo X3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgNDEKKyAgMiB8IHtCfSAgIHwg ICAgICAgICAgICAgfCAgICAgICAgICAKKyAgMyB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAg ICAgICAKKyAgNCB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNSB8IHtDfSAg IHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNiB8IHtCfSAgIHwgICAgICAgICAgICAgfCAg ICAgICAgICAKKyAgNyB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgOCB8IHtD fSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgOSB8IHtDfSAgIHwgICAgICAgICAgICAg fCAgICAgICAgICAKKyAxMCB8IHtEfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAxMSB8 IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAxMiB8IHtDfSAgIHwgICAgICAgICAg ICAgfCAgICAgICAgICAKKyAxMyB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAx NCB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAxNSB8IHtCfSAgIHwgICAgICAg ICAgICAgfCAgICAgICAgICAKKyAxNiB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAK KyAxNyB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAxOCB8IHtDfSAgIHwgICAg ICAgICAgICAgfCAgICAgICAgICAKKyAxOSB8IHtEfSAgIHwgICAgICAgICAgICAgfCAgICAgICAg ICAKKyAyMCB8IHtFfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAyMSB8IHtBfSAgIHwg ICAgICAgICAgICAgfCAgICAgICAgICAKKyAyMiB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAg ICAgICAKKyAyMyB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAyNCB8IHtDfSAg IHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAyNSB8IHtDfSAgIHwgICAgICAgICAgICAgfCAg ICAgICAgICAKKyAyNiB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAyNyB8IHtD fSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAyOCB8IHtDfSAgIHwgICAgICAgICAgICAg fCAgICAgICAgICAKKyAyOSB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAzMCB8 IHtEfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAzMSB8IHtCfSAgIHwgICAgICAgICAg ICAgfCAgICAgICAgICAKKyAzMiB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAz MyB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAzNCB8IHtDfSAgIHwgICAgICAg ICAgICAgfCAgICAgICAgICAKKyAzNSB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAK KyAzNiB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAzNyB8IHtDfSAgIHwgICAg ICAgICAgICAgfCAgICAgICAgICAKKyAzOCB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAg ICAKKyAzOSB8IHtEfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyA0MCB8IHtFfSAgIHwg ICAgICAgICAgICAgfCAgICAgICAgICAKKyA0MSB8IHtGfSAgIHwgICAgICAgICAgICAgfCAgICAg ICAgICAKKyA0MiB8IHtBfSAgIHwgICAgICAgICAgNDIgfCAgICAgICAgODIKKyA0MyB8IHtCfSAg IHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyA0NCB8IHtDfSAgIHwgICAgICAgICAgICAgfCAg ICAgICAgICAKKyA0NSB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyA0NiB8IHtD fSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyA0NyB8IHtCfSAgIHwgICAgICAgICAgICAg fCAgICAgICAgICAKKyA0OCB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyA0OSB8 IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyA1MCB8IHtDfSAgIHwgICAgICAgICAg ICAgfCAgICAgICAgICAKKyA1MSB8IHtEfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyA1 MiB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyA1MyB8IHtDfSAgIHwgICAgICAg ICAgICAgfCAgICAgICAgICAKKyA1NCB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAK KyA1NSB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyA1NiB8IHtCfSAgIHwgICAg ICAgICAgICAgfCAgICAgICAgICAKKyA1NyB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAg ICAKKyA1OCB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyA1OSB8IHtDfSAgIHwg ICAgICAgICAgICAgfCAgICAgICAgICAKKyA2MCB8IHtEfSAgIHwgICAgICAgICAgICAgfCAgICAg ICAgICAKKyA2MSB8IHtFfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyA2MiB8IHtBfSAg IHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyA2MyB8IHtCfSAgIHwgICAgICAgICAgICAgfCAg ICAgICAgICAKKyA2NCB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyA2NSB8IHtD fSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyA2NiB8IHtDfSAgIHwgICAgICAgICAgICAg fCAgICAgICAgICAKKyA2NyB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyA2OCB8 IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyA2OSB8IHtDfSAgIHwgICAgICAgICAg ICAgfCAgICAgICAgICAKKyA3MCB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyA3 MSB8IHtEfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyA3MiB8IHtCfSAgIHwgICAgICAg ICAgICAgfCAgICAgICAgICAKKyA3MyB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAK KyA3NCB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyA3NSB8IHtDfSAgIHwgICAg ICAgICAgICAgfCAgICAgICAgICAKKyA3NiB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAg ICAKKyA3NyB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyA3OCB8IHtDfSAgIHwg ICAgICAgICAgICAgfCAgICAgICAgICAKKyA3OSB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAg ICAgICAKKyA4MCB8IHtEfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyA4MSB8IHtFfSAg IHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyA4MiB8IHtGfSAgIHwgICAgICAgICAgICAgfCAg ICAgICAgICAKKyg4MiByb3dzKQorCistLSAzLWxldmVsIEVORCBjaGFpbjogKChBIChCIEMpezJ9 KXsyfSkrCistLSBUZXN0cyBFTkQoQkN7Mn0pIC0+IEVORChBLi57Mn0pIC0+IEVORCgrKSBjaGFp bmluZworLS0gMiBpdGVyYXRpb25zIG9mICssIGVhY2ggMTAgcm93czogKEEgQiBDIEIgQykoQSBC IEMgQiBDKQorV0lUSCB0ZXN0X2Fic29yYl8zbGV2ZWxfZW5kIEFTICgKKyAgICBTRUxFQ1QgKiBG Uk9NIChWQUxVRVMKKyAgICAgICAgKDEsICBBUlJBWVsnQSddKSwgIC0tIDFzdCArIGl0ZXIsIDFz dCB7Mn0sIEEKKyAgICAgICAgKDIsICBBUlJBWVsnQiddKSwKKyAgICAgICAgKDMsICBBUlJBWVsn QyddKSwKKyAgICAgICAgKDQsICBBUlJBWVsnQiddKSwKKyAgICAgICAgKDUsICBBUlJBWVsnQydd KSwgIC0tIDFzdCAoQkMpezJ9IGRvbmUKKyAgICAgICAgKDYsICBBUlJBWVsnQSddKSwgIC0tIDFz dCArIGl0ZXIsIDJuZCB7Mn0sIEEKKyAgICAgICAgKDcsICBBUlJBWVsnQiddKSwKKyAgICAgICAg KDgsICBBUlJBWVsnQyddKSwKKyAgICAgICAgKDksICBBUlJBWVsnQiddKSwKKyAgICAgICAgKDEw LCBBUlJBWVsnQyddKSwgIC0tIDJuZCAoQkMpezJ9IGRvbmUsIDFzdCB7Mn0gZG9uZSwgMXN0ICsg aXRlciBkb25lCisgICAgICAgICgxMSwgQVJSQVlbJ0EnXSksICAtLSAybmQgKyBpdGVyLCAxc3Qg ezJ9LCBBCisgICAgICAgICgxMiwgQVJSQVlbJ0InXSksCisgICAgICAgICgxMywgQVJSQVlbJ0Mn XSksCisgICAgICAgICgxNCwgQVJSQVlbJ0InXSksCisgICAgICAgICgxNSwgQVJSQVlbJ0MnXSks CisgICAgICAgICgxNiwgQVJSQVlbJ0EnXSksICAtLSAybmQgKyBpdGVyLCAybmQgezJ9LCBBCisg ICAgICAgICgxNywgQVJSQVlbJ0InXSksCisgICAgICAgICgxOCwgQVJSQVlbJ0MnXSksCisgICAg ICAgICgxOSwgQVJSQVlbJ0InXSksCisgICAgICAgICgyMCwgQVJSQVlbJ0MnXSksICAtLSAybmQg KyBpdGVyIGRvbmUKKyAgICAgICAgKDIxLCBBUlJBWVsnWCddKSAgIC0tIG5vIG1hdGNoLCArIGVu ZHMKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFs dWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1h dGNoX2VuZAorRlJPTSB0ZXN0X2Fic29yYl8zbGV2ZWxfZW5kCitXSU5ET1cgdyBBUyAoCisgICAg T1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJO ICgoKEEgKEIgQyl7Mn0pezJ9KSspCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5Z KGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAorICAgICAgICBDIEFTICdD JyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5k IAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAgIHwg ICAgICAgICAgIDEgfCAgICAgICAgMjAKKyAgMiB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAg ICAgICAKKyAgMyB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNCB8IHtCfSAg IHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNSB8IHtDfSAgIHwgICAgICAgICAgICAgfCAg ICAgICAgICAKKyAgNiB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNyB8IHtC fSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgOCB8IHtDfSAgIHwgICAgICAgICAgICAg fCAgICAgICAgICAKKyAgOSB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAxMCB8 IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAxMSB8IHtBfSAgIHwgICAgICAgICAg ICAgfCAgICAgICAgICAKKyAxMiB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAx MyB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAxNCB8IHtCfSAgIHwgICAgICAg ICAgICAgfCAgICAgICAgICAKKyAxNSB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAK KyAxNiB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAxNyB8IHtCfSAgIHwgICAg ICAgICAgICAgfCAgICAgICAgICAKKyAxOCB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAg ICAKKyAxOSB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAyMCB8IHtDfSAgIHwg ICAgICAgICAgICAgfCAgICAgICAgICAKKyAyMSB8IHtYfSAgIHwgICAgICAgICAgICAgfCAgICAg ICAgICAKKygyMSByb3dzKQorCistLSBNdWx0aXBsZSB1bmJvdW5kZWQ6IEErIEIrIChmaXJzdCBl bGVtZW50IHVuYm91bmRlZCBlbmFibGVzIGFic29ycHRpb24pCitXSVRIIHRlc3RfbXVsdGlfdW5i b3VuZGVkIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZ WydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnQidd KSwKKyAgICAgICAgKDQsIEFSUkFZWydCJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ1gnXSkKKyAg ICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQp IE9WRVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2Vu ZAorRlJPTSB0ZXN0X211bHRpX3VuYm91bmRlZAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZ IGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEErIEIrKQor ICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMg J0InID0gQU5ZKGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9l bmQgCistLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0F9ICAg fCAgICAgICAgICAgMSB8ICAgICAgICAgNAorICAyIHwge0F9ICAgfCAgICAgICAgICAgMiB8ICAg ICAgICAgNAorICAzIHwge0J9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA0IHwge0J9 ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA1IHwge1h9ICAgfCAgICAgICAgICAgICB8 ICAgICAgICAgIAorKDUgcm93cykKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBDb250ZXh0IExpZmVjeWNsZQorLS0g PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CistLSBNdWx0aXBsZSBvdmVybGFwcGluZyBjb250ZXh0cyAoU0tJUCBUTyBORVhUIFJPVykK K1dJVEggdGVzdF9vdmVybGFwcGluZ19jb250ZXh0cyBBUyAoCisgICAgU0VMRUNUICogRlJPTSAo VkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydBJ10p LAorICAgICAgICAoMywgQVJSQVlbJ0EnXSksCisgICAgICAgICg0LCBBUlJBWVsnQiddKSwKKyAg ICAgICAgKDUsIEFSUkFZWydfJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBp ZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwK KyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3Rfb3Zl cmxhcHBpbmdfY29udGV4dHMKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVS IE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORQor ICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZs YWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0F9ICAgfCAgICAgICAgICAg MSB8ICAgICAgICAgNAorICAyIHwge0F9ICAgfCAgICAgICAgICAgMiB8ICAgICAgICAgNAorICAz IHwge0F9ICAgfCAgICAgICAgICAgMyB8ICAgICAgICAgNAorICA0IHwge0J9ICAgfCAgICAgICAg ICAgICB8ICAgICAgICAgIAorICA1IHwge199ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAor KDUgcm93cykKKworLS0gRmFpbGVkIGNvbnRleHQgY2xlYW51cCAoZWFybHkgZmFpbHVyZSkKK1dJ VEggdGVzdF9jb250ZXh0X2NsZWFudXAgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwor ICAgICAgICAoMSwgQVJSQVlbJ18nXSksICAtLSBQcnVuZWQgYXQgZmlyc3Qgcm93CisgICAgICAg ICgyLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZWydfJ10pLCAgLS0gTWlzbWF0Y2hl ZCBhZnRlciByb3cgMgorICAgICAgICAoNCwgQVJSQVlbJ0EnXSksCisgICAgICAgICg1LCBBUlJB WVsnQiddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAg ICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92 YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2NvbnRleHRfY2xlYW51cAor V0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhU IFJPVworICAgIFBBVFRFUk4gKEEgQikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBB TlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFn cyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0KKyAgMSB8IHtffSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgMiB8 IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgMyB8IHtffSAgIHwgICAgICAgICAg ICAgfCAgICAgICAgICAKKyAgNCB8IHtBfSAgIHwgICAgICAgICAgIDQgfCAgICAgICAgIDUKKyAg NSB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyg1IHJvd3MpCisKKy0tIFBhcnRp dGlvbiBlbmQgKGluY29tcGxldGUgY29udGV4dHMpCitXSVRIIHRlc3RfcGFydGl0aW9uX2VuZCBB UyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwK KyAgICAgICAgKDIsIEFSUkFZWydBJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0EnXSkKKyAgICAg ICAgLS0gUGF0dGVybiByZXF1aXJlcyBCLCBidXQgcGFydGl0aW9uIGVuZHMKKyAgICApIEFTIHQo aWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkg T1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBt YXRjaF9lbmQKK0ZST00gdGVzdF9wYXJ0aXRpb25fZW5kCitXSU5ET1cgdyBBUyAoCisgICAgT1JE RVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSsg QikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBC IEFTICdCJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0 Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtB fSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgMiB8IHtBfSAgIHwgICAgICAgICAgICAg fCAgICAgICAgICAKKyAgMyB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKygzIHJv d3MpCisKKy0tIENvbXBsZXRlZCBjb250ZXh0IGVuY291bnRlcmVkIGR1cmluZyBwcm9jZXNzaW5n CistLSBQYXR0ZXJuIChBIHwgQiBDIEQpOiBDdHgxIHRha2VzIGxvbmcgQi0+Qy0+RCBwYXRoLCB3 aGlsZSBDdHgyIHRha2VzCistLSBzaG9ydCBBIHBhdGggYW5kIGNvbXBsZXRlcyBmaXJzdC4gTmV4 dCByb3cgc2VlcyBDdHgyCistLSB3aXRoIHN0YXRlcz1OVUxMIGFuZCBza2lwcyBpdC4KK1dJVEgg dGVzdF9jb21wbGV0ZWRfY3R4IEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAg ICAgKDEsIEFSUkFZWydCJywgJ18nXSksCisgICAgICAgICgyLCBBUlJBWVsnQycsICdBJ10pLAor ICAgICAgICAoMywgQVJSQVlbJ0QnLCAnXyddKSwKKyAgICAgICAgKDQsIEFSUkFZWydfJywgJ18n XSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBm aXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUo aWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9jb21wbGV0ZWRfY3R4CitXSU5ET1cg dyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisg ICAgUEFUVEVSTiAoQSB8IEIgQyBEKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFO WShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQyBBUyAn QycgPSBBTlkoZmxhZ3MpLAorICAgICAgICBEIEFTICdEJyA9IEFOWShmbGFncykKKyk7CisgaWQg fCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtCLF99IHwgICAgICAgICAgIDEgfCAgICAgICAgIDMK KyAgMiB8IHtDLEF9IHwgICAgICAgICAgIDIgfCAgICAgICAgIDIKKyAgMyB8IHtELF99IHwgICAg ICAgICAgICAgfCAgICAgICAgICAKKyAgNCB8IHtfLF99IHwgICAgICAgICAgICAgfCAgICAgICAg ICAKKyg0IHJvd3MpCisKKy0tIFJlbHVjdGFudCBjb250ZXh0IGxpZmVjeWNsZSAoQSs/IEIgd2l0 aCBTS0lQIFRPIE5FWFQgUk9XKQorLS0gQSs/IGV4aXRzIGVhcmx5IGJ1dCBpZiBCIG5vdCBhdmFp bGFibGUsIGZhbGxzIGJhY2sgdG8gbG9vcC4KKy0tIENvbnRleHRzIG5vdCBhYnNvcmJlZCAocmVs dWN0YW50KSwgc28gbXVsdGlwbGUgc3Vydml2ZS4KK1dJVEggdGVzdF9yZWx1Y3RhbnRfY29udGV4 dCBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSdd KSwKKyAgICAgICAgKDIsIEFSUkFZWydBJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0InXSksCisg ICAgICAgICg0LCBBUlJBWVsnXyddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1Qg aWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQs CisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X3Jl bHVjdGFudF9jb250ZXh0CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBN QVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSs/IEIpCisgICAgREVGSU5FCisg ICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxh Z3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QX0gICB8ICAgICAgICAgICAx IHwgICAgICAgICAzCisgIDIgfCB7QX0gICB8ICAgICAgICAgICAyIHwgICAgICAgICAzCisgIDMg fCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDQgfCB7X30gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCisoNCByb3dzKQorCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEFkdmFuY2UgUGhhc2UgKEVw c2lsb24gVHJhbnNpdGlvbnMpCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIE5lc3RlZCBncm91cHMgKChBIEIpKykKK1dJ VEggdGVzdF9uZXN0ZWRfZ3JvdXBzIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAg ICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0InXSksCisgICAgICAg ICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQsIEFSUkFZWydCJ10pLAorICAgICAgICAoNSwg QVJSQVlbJ0EnXSksCisgICAgICAgICg2LCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDcsIEFSUkFZ WydfJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAg ICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3Zh bHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfbmVzdGVkX2dyb3VwcworV0lO RE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJP VworICAgIFBBVFRFUk4gKChBIEIpKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBB TlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFn cyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgIDYKKyAgMiB8 IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgMyB8IHtBfSAgIHwgICAgICAgICAg IDMgfCAgICAgICAgIDYKKyAgNCB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAg NSB8IHtBfSAgIHwgICAgICAgICAgIDUgfCAgICAgICAgIDYKKyAgNiB8IHtCfSAgIHwgICAgICAg ICAgICAgfCAgICAgICAgICAKKyAgNyB8IHtffSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAK Kyg3IHJvd3MpCisKKy0tIE11bHRpcGxlIGFsdGVybmF0aW9uIGJyYW5jaGVzIChBIChCfEN8RCkg RSkKK1dJVEggdGVzdF9tdWx0aV9hbHQgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwor ICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQiddKSwKKyAgICAg ICAgKDMsIEFSUkFZWydFJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0EnXSksCisgICAgICAgICg1 LCBBUlJBWVsnQyddKSwKKyAgICAgICAgKDYsIEFSUkFZWydFJ10pLAorICAgICAgICAoNywgQVJS QVlbJ0EnXSksCisgICAgICAgICg4LCBBUlJBWVsnRCddKSwKKyAgICAgICAgKDksIEFSUkFZWydF J10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAg Zmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVl KGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfbXVsdGlfYWx0CitXSU5ET1cgdyBB UyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAg UEFUVEVSTiAoQSAoQiB8IEMgfCBEKSBFKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9 IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQyBB UyAnQycgPSBBTlkoZmxhZ3MpLAorICAgICAgICBEIEFTICdEJyA9IEFOWShmbGFncyksCisgICAg ICAgIEUgQVMgJ0UnID0gQU5ZKGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQg fCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAx IHwge0F9ICAgfCAgICAgICAgICAgMSB8ICAgICAgICAgMworICAyIHwge0J9ICAgfCAgICAgICAg ICAgICB8ICAgICAgICAgIAorICAzIHwge0V9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAor ICA0IHwge0F9ICAgfCAgICAgICAgICAgNCB8ICAgICAgICAgNgorICA1IHwge0N9ICAgfCAgICAg ICAgICAgICB8ICAgICAgICAgIAorICA2IHwge0V9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAg IAorICA3IHwge0F9ICAgfCAgICAgICAgICAgNyB8ICAgICAgICAgOQorICA4IHwge0R9ICAgfCAg ICAgICAgICAgICB8ICAgICAgICAgIAorICA5IHwge0V9ICAgfCAgICAgICAgICAgICB8ICAgICAg ICAgIAorKDkgcm93cykKKworLS0gT3B0aW9uYWwgVkFSIGF0IHN0YXJ0IChBPyBCIEMpCitXSVRI IHRlc3Rfb3B0aW9uYWxfdmFyIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAg ICAgKDEsIEFSUkFZWydCJ10pLCAgLS0gQSBza2lwcGVkCisgICAgICAgICgyLCBBUlJBWVsnQydd KSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10pLCAgLS0gQSBtYXRjaGVkCisgICAgICAgICg0LCBB UlJBWVsnQiddKSwKKyAgICAgICAgKDUsIEFSUkFZWydDJ10pCisgICAgKSBBUyB0KGlkLCBmbGFn cykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBB UyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5k CitGUk9NIHRlc3Rfb3B0aW9uYWxfdmFyCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQT8gQiBDKQorICAg IERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0In ID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQyBBUyAnQycgPSBBTlkoZmxhZ3MpCispOworIGlkIHwg ZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7Qn0gICB8ICAgICAgICAgICAxIHwgICAgICAgICAyCisg IDIgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDMgfCB7QX0gICB8ICAgICAg ICAgICAzIHwgICAgICAgICA1CisgIDQgfCB7Qn0gICB8ICAgICAgICAgICA0IHwgICAgICAgICA1 CisgIDUgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisoNSByb3dzKQorCistLSBO ZXN0ZWQgYWx0ZXJuYXRpb24gKChBfEIpIChDfEQpKQorV0lUSCB0ZXN0X25lc3RlZF9hbHQgQVMg KAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisg ICAgICAgICgyLCBBUlJBWVsnQyddKSwgIC0tIEEgQworICAgICAgICAoMywgQVJSQVlbJ0EnXSks CisgICAgICAgICg0LCBBUlJBWVsnRCddKSwgIC0tIEEgRAorICAgICAgICAoNSwgQVJSQVlbJ0In XSksCisgICAgICAgICg2LCBBUlJBWVsnQyddKSwgIC0tIEIgQworICAgICAgICAoNywgQVJSQVlb J0InXSksCisgICAgICAgICg4LCBBUlJBWVsnRCddKSAgIC0tIEIgRAorICAgICkgQVMgdChpZCwg ZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVS IHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNo X2VuZAorRlJPTSB0ZXN0X25lc3RlZF9hbHQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBp ZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOICgoQSB8IEIpIChD IHwgRCkpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAg ICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAorICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncyks CisgICAgICAgIEQgQVMgJ0QnID0gQU5ZKGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hf c3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LQorICAxIHwge0F9ICAgfCAgICAgICAgICAgMSB8ICAgICAgICAgMgorICAyIHwge0N9ICAgfCAg ICAgICAgICAgICB8ICAgICAgICAgIAorICAzIHwge0F9ICAgfCAgICAgICAgICAgMyB8ICAgICAg ICAgNAorICA0IHwge0R9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA1IHwge0J9ICAg fCAgICAgICAgICAgNSB8ICAgICAgICAgNgorICA2IHwge0N9ICAgfCAgICAgICAgICAgICB8ICAg ICAgICAgIAorICA3IHwge0J9ICAgfCAgICAgICAgICAgNyB8ICAgICAgICAgOAorICA4IHwge0R9 ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorKDggcm93cykKKworLS0gTWl4ZWQgZ3JlZWR5 L3JlbHVjdGFudCBzZXF1ZW5jZTogQSs/IEIrIChyZWx1Y3RhbnQgQSwgZ3JlZWR5IEIpCistLSBB IGV4aXRzIGFzIGVhcmx5IGFzIHBvc3NpYmxlLCBCIGNvbnN1bWVzIHRoZSByZXN0IGdyZWVkaWx5 CitXSVRIIHRlc3RfbWl4ZWRfcmVsdWN0YW50IEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxV RVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCisg ICAgICAgICgzLCBBUlJBWVsnQScsJ0InXSksCisgICAgICAgICg0LCBBUlJBWVsnQiddKSwKKyAg ICAgICAgKDUsIEFSUkFZWydCJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBp ZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwK KyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfbWl4 ZWRfcmVsdWN0YW50CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRD SCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKz8gQispCisgICAgREVGSU5FCisg ICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxh Z3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QX0gICB8ICAgICAgICAgICAx IHwgICAgICAgICA1CisgIDIgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDMg fCB7QSxCfSB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDQgfCB7Qn0gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCisgIDUgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCiso NSByb3dzKQorCistLSBPcHRpb25hbCByZWx1Y3RhbnQgZ3JvdXA6IChBIEIpPz8gQworLS0gbmZh X2FkdmFuY2VfYmVnaW46IHJlbHVjdGFudCB0cmllcyBza2lwIGZpcnN0LCBidXQgc2tpcCBwYXRo IG5lZWRzIEMKKy0tIGF0IHJvdyAxIHdoaWNoIGlzIEEgLT4gc2tpcCBmYWlscy4gRW50ZXIgcGF0 aCBzdWNjZWVkczogQSgxKSBCKDIpIEMoMykuCitXSVRIIHRlc3Rfb3B0aW9uYWxfcmVsdWN0YW50 IEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10p LAorICAgICAgICAoMiwgQVJSQVlbJ0InXSksCisgICAgICAgICgzLCBBUlJBWVsnQyddKQorICAg ICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3Zh bHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZF UiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X29wdGlvbmFsX3JlbHVjdGFudAorV0lORE9XIHcg QVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisg ICAgUEFUVEVSTiAoKEEgQik/PyBDKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFO WShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQyBBUyAn QycgPSBBTlkoZmxhZ3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2Vu ZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QX0gICB8 ICAgICAgICAgICAxIHwgICAgICAgICAzCisgIDIgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCisgIDMgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisoMyByb3dzKQor CistLSBHcmVlZHkvcmVsdWN0YW50IHNlcXVlbmNlOiBBKyBCKz8gKGdyZWVkeSBBLCByZWx1Y3Rh bnQgQiBhdCBlbmQpCistLSBBIGNvbnN1bWVzIGdyZWVkaWx5LCBCKz8gZXhpdHMgdG8gRklOIGFm dGVyIG1pbmltdW0gbWF0Y2gKK1dJVEggdGVzdF9ncmVlZHlfdGhlbl9yZWx1Y3RhbnQgQVMgKAor ICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAg ICAgICgyLCBBUlJBWVsnQScsJ0InXSksCisgICAgICAgICgzLCBBUlJBWVsnQiddKSwKKyAgICAg ICAgKDQsIEFSUkFZWydCJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwg ZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAg ICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfZ3JlZWR5 X3RoZW5fcmVsdWN0YW50CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBN QVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKz8pCisgICAgREVGSU5F CisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlko ZmxhZ3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0r LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QX0gICB8ICAgICAgICAg ICAxIHwgICAgICAgICAzCisgIDIgfCB7QSxCfSB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisg IDMgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDQgfCB7Qn0gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCisoNCByb3dzKQorCistLSBSZWx1Y3RhbnQgb3B0aW9uYWwgZ3Jv dXAgc2tpcC10by1GSU4KKy0tIFdoZW4gYSByZWx1Y3RhbnQgb3B0aW9uYWwgZ3JvdXAncyBza2lw IHBhdGggcmVhY2hlcyBGSU4sIHRoZSBncm91cAorLS0gZW50cnkgcGF0aCBpcyBhYmFuZG9uZWQg KG5vZGVXaW5kb3dBZ2cuYyBuZmFfYWR2YW5jZV9iZWdpbikuCistLSBQYXR0ZXJuOiBDIChBIEIp Pz8gLS0gYWZ0ZXIgQyBtYXRjaGVzLCB0aGUgcmVsdWN0YW50IGdyb3VwIChBIEIpPz8KKy0tIHBy ZWZlcnMgdG8gc2tpcC4gIFNraXAgZ29lcyB0byBGSU4gKGdyb3VwIGlzIGxhc3QgZWxlbWVudCks IHNvCistLSB0aGUgbWF0Y2ggY29tcGxldGVzIHdpdGgganVzdCBDLgorV0lUSCB0ZXN0X2JlZ2lu X3NraXBfZmluIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFS UkFZWydDJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJBWVsn QiddKSwKKyAgICAgICAgKDQsIEFSUkFZWydDJywnQSddKSwKKyAgICAgICAgKDUsIEFSUkFZWydC J10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAg Zmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVl KGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfYmVnaW5fc2tpcF9maW4KK1dJTkRP VyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cK KyAgICBQQVRURVJOIChDIChBIEIpPz8pCisgICAgREVGSU5FCisgICAgICAgIEMgQVMgJ0MnID0g QU5ZKGZsYWdzKSwKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFT ICdCJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hf ZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtDfSAg IHwgICAgICAgICAgIDEgfCAgICAgICAgIDEKKyAgMiB8IHtBfSAgIHwgICAgICAgICAgICAgfCAg ICAgICAgICAKKyAgMyB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNCB8IHtD LEF9IHwgICAgICAgICAgIDQgfCAgICAgICAgIDQKKyAgNSB8IHtCfSAgIHwgICAgICAgICAgICAg fCAgICAgICAgICAKKyg1IHJvd3MpCisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gTWF0Y2ggUGhhc2UKKy0tID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0gU2ltcGxlIFZBUiB3aXRoIEVORCBuZXh0IChBIEIgQyBhbGwgbWluPW1heD0xKQorV0lUSCB0 ZXN0X3NpbXBsZV92YXIgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAo MSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDMsIEFS UkFZWydDJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ18nXSkKKyAgICApIEFTIHQoaWQsIGZsYWdz KQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFT IG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQK K0ZST00gdGVzdF9zaW1wbGVfdmFyCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBB RlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSBCIEMpCisgICAgREVG SU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBB TlkoZmxhZ3MpLAorICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFn cyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgIDMKKyAgMiB8 IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgMyB8IHtDfSAgIHwgICAgICAgICAg ICAgfCAgICAgICAgICAKKyAgNCB8IHtffSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyg0 IHJvd3MpCisKKy0tIFZBUiBtYXggZXhjZWVkZWQgKEF7MiwzfSkKK1dJVEggdGVzdF9tYXhfZXhj ZWVkZWQgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlb J0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10p LCAgLS0gTWF4ID0gMworICAgICAgICAoNCwgQVJSQVlbJ0EnXSksICAtLSBFeGNlZWRzIG1heCwg c3RhdGUgcmVtb3ZlZAorICAgICAgICAoNSwgQVJSQVlbJ0InXSkKKyAgICApIEFTIHQoaWQsIGZs YWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3 IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9l bmQKK0ZST00gdGVzdF9tYXhfZXhjZWVkZWQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBp ZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBezIsM30gQikK KyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFT ICdCJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hf ZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAg IHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgMiB8IHtBfSAgIHwgICAgICAgICAgIDIgfCAg ICAgICAgIDUKKyAgMyB8IHtBfSAgIHwgICAgICAgICAgIDMgfCAgICAgICAgIDUKKyAgNCB8IHtB fSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNSB8IHtCfSAgIHwgICAgICAgICAgICAg fCAgICAgICAgICAKKyg1IHJvd3MpCisKKy0tIE5vbi1tYXRjaGluZyBWQVIgKERFRklORSBmYWxz ZSkKK1dJVEggdGVzdF9ub25fbWF0Y2hpbmcgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVF UworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnXyddKSwgIC0t IEIgbm90IG1hdGNoZWQgKERFRklORSBmYWxzZSkKKyAgICAgICAgKDMsIEFSUkFZWydBJ10pLAor ICAgICAgICAoNCwgQVJSQVlbJ0InXSksICAtLSBCIG1hdGNoZWQKKyAgICAgICAgKDUsIEFSUkFZ WydDJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAg ICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3Zh bHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3Rfbm9uX21hdGNoaW5nCitXSU5E T1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9X CisgICAgUEFUVEVSTiAoQSBCIEMpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5Z KGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAorICAgICAgICBDIEFTICdD JyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5k IAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAgIHwg ICAgICAgICAgICAgfCAgICAgICAgICAKKyAgMiB8IHtffSAgIHwgICAgICAgICAgICAgfCAgICAg ICAgICAKKyAgMyB8IHtBfSAgIHwgICAgICAgICAgIDMgfCAgICAgICAgIDUKKyAgNCB8IHtCfSAg IHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNSB8IHtDfSAgIHwgICAgICAgICAgICAgfCAg ICAgICAgICAKKyg1IHJvd3MpCisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gRnJhbWUgQm91bmRhcnkgSGFuZGxpbmcK Ky0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0gTGltaXRlZCBmcmFtZSAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCAz IEZPTExPV0lORykKK1dJVEggdGVzdF9saW1pdGVkX2ZyYW1lIEFTICgKKyAgICBTRUxFQ1QgKiBG Uk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlb J0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQsIEFSUkFZWydCJ10p LCAgLS0gV2l0aGluIDMgRk9MTE9XSU5HCisgICAgICAgICg1LCBBUlJBWVsnQiddKSwgIC0tIEJl eW9uZCAzIEZPTExPV0lORyBmcm9tIHJvdyAxCisgICAgICAgICg2LCBBUlJBWVsnXyddKQorICAg ICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3Zh bHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZF UiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2xpbWl0ZWRfZnJhbWUKK1dJTkRPVyB3IEFTICgK KyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgMyBGT0xM T1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSsg QikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBC IEFTICdCJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0 Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtB fSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgIDQKKyAgMiB8IHtBfSAgIHwgICAgICAgICAgIDIg fCAgICAgICAgIDQKKyAgMyB8IHtBfSAgIHwgICAgICAgICAgIDMgfCAgICAgICAgIDQKKyAgNCB8 IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNSB8IHtCfSAgIHwgICAgICAgICAg ICAgfCAgICAgICAgICAKKyAgNiB8IHtffSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyg2 IHJvd3MpCisKKy0tIFVuYm91bmRlZCBmcmFtZSAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorV0lUSCB0ZXN0X3VuYm91bmRlZF9mcmFtZSBBUyAoCisg ICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAg ICAgKDIsIEFSUkFZWydBJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0EnXSksCisgICAgICAgICg0 LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDUsIEFSUkFZWydBJ10pLAorICAgICAgICAoNiwgQVJS QVlbJ0InXSkgIC0tIEZhciBmcm9tIHN0YXJ0LCBidXQgdW5ib3VuZGVkCisgICAgKSBBUyB0KGlk LCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9W RVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0 Y2hfZW5kCitGUk9NIHRlc3RfdW5ib3VuZGVkX2ZyYW1lCitXSU5ET1cgdyBBUyAoCisgICAgT1JE RVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSsg QikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBC IEFTICdCJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0 Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtB fSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgIDYKKyAgMiB8IHtBfSAgIHwgICAgICAgICAgIDIg fCAgICAgICAgIDYKKyAgMyB8IHtBfSAgIHwgICAgICAgICAgIDMgfCAgICAgICAgIDYKKyAgNCB8 IHtBfSAgIHwgICAgICAgICAgIDQgfCAgICAgICAgIDYKKyAgNSB8IHtBfSAgIHwgICAgICAgICAg IDUgfCAgICAgICAgIDYKKyAgNiB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyg2 IHJvd3MpCisKKy0tIE1hdGNoIGV4Y2VlZHMgZnJhbWUgYm91bmRhcnkKK1dJVEggdGVzdF9mcmFt ZV9leGNlZWRlZCBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBB UlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydBJ10pLAorICAgICAgICAoMywgQVJSQVlb J0EnXSkKKyAgICAgICAgLS0gRnJhbWUgZW5kcyBhdCByb3cgMyAoMiBGT0xMT1dJTkcpLCBCIG5l dmVyIGFwcGVhcnMKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywK KyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxh c3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9mcmFtZV9leGNlZWRl ZAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCAyIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cK KyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShm bGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwg bWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLQorICAxIHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICAyIHwge0F9 ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICAzIHwge0F9ICAgfCAgICAgICAgICAgICB8 ICAgICAgICAgIAorKDMgcm93cykKKworLS0gRnJhbWUgYm91bmRhcnkgZm9yY2VkIG1pc21hdGNo CistLSBMaW1pdGVkIGZyYW1lIHdpdGggZW5vdWdoIHJvd3Mgc28gdGhhdCBhIGNvbnRleHQncyBm cmFtZSBib3VuZGFyeQorLS0gaXMgZXhjZWVkZWQgd2hpbGUgc3RpbGwgcHJvY2Vzc2luZy4KK1dJ VEggdGVzdF9mcmFtZV9ib3VuZGFyeSBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisg ICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydBJ10pLAorICAgICAg ICAoMywgQVJSQVlbJ0EnXSksCisgICAgICAgICg0LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDUs IEFSUkFZWydBJ10pLAorICAgICAgICAoNiwgQVJSQVlbJ0InXSkKKyAgICApIEFTIHQoaWQsIGZs YWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3 IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9l bmQKK0ZST00gdGVzdF9mcmFtZV9ib3VuZGFyeQorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZ IGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCAyIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklO RQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5Z KGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0t Ky0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0F9ICAgfCAgICAgICAg ICAgICB8ICAgICAgICAgIAorICAyIHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAor ICAzIHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA0IHwge0F9ICAgfCAgICAg ICAgICAgNCB8ICAgICAgICAgNgorICA1IHwge0F9ICAgfCAgICAgICAgICAgNSB8ICAgICAgICAg NgorICA2IHwge0J9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorKDYgcm93cykKKworLS0g UmVsdWN0YW50IHdpdGggbGltaXRlZCBmcmFtZSAoQSs/IEIgd2l0aCAyIEZPTExPV0lORykKKy0t IFJlbHVjdGFudCBleGl0cyBlYXJseSwgQiBtdXN0IGJlIHdpdGhpbiBmcmFtZSBib3VuZGFyeQor V0lUSCB0ZXN0X3JlbHVjdGFudF9mcmFtZSBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVT CisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydBJ10pLAorICAg ICAgICAoMywgQVJSQVlbJ0InXSksCisgICAgICAgICg0LCBBUlJBWVsnXyddKQorICAgICkgQVMg dChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlk KSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFT IG1hdGNoX2VuZAorRlJPTSB0ZXN0X3JlbHVjdGFudF9mcmFtZQorV0lORE9XIHcgQVMgKAorICAg IE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCAyIEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBKz8gQikK KyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFT ICdCJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hf ZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAg IHwgICAgICAgICAgIDEgfCAgICAgICAgIDMKKyAgMiB8IHtBfSAgIHwgICAgICAgICAgIDIgfCAg ICAgICAgIDMKKyAgMyB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNCB8IHtf fSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyg0IHJvd3MpCisKKy0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gU3Rh dGUgTWFuYWdlbWVudAorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLSBEdXBsaWNhdGUgc3RhdGUgY3JlYXRpb24KK1dJVEgg dGVzdF9kdXBsaWNhdGVfc3RhdGVzIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAg ICAgICAgKDEsIEFSUkFZWydBJywgJ0InXSksICAtLSBCb3RoIEEgYW5kIEIgbWF0Y2ggKGNyZWF0 ZXMgZHVwbGljYXRlIHN0YXRlcyB2aWEgZGlmZmVyZW50IHBhdGhzKQorICAgICAgICAoMiwgQVJS QVlbJ0MnLCAnXyddKSwKKyAgICAgICAgKDMsIEFSUkFZWydEJywgJ18nXSkKKyAgICApIEFTIHQo aWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkg T1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBt YXRjaF9lbmQKK0ZST00gdGVzdF9kdXBsaWNhdGVfc3RhdGVzCitXSU5ET1cgdyBBUyAoCisgICAg T1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAo KEEgfCBCKSBDIEQpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwK KyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAorICAgICAgICBDIEFTICdDJyA9IEFOWShm bGFncyksCisgICAgICAgIEQgQVMgJ0QnID0gQU5ZKGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwg bWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLQorICAxIHwge0EsQn0gfCAgICAgICAgICAgMSB8ICAgICAgICAgMworICAyIHwge0Ms X30gfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICAzIHwge0QsX30gfCAgICAgICAgICAgICB8 ICAgICAgICAgIAorKDMgcm93cykKKworLS0gUmVsdWN0YW50IGR1cGxpY2F0ZSBzdGF0ZSBoYW5k bGluZworLS0gKEErPyB8IEIrPykgY3JlYXRlcyBleGl0IGFuZCBsb29wIHN0YXRlczsgZXhpdCBw YXRocyBtYXkgY29udmVyZ2UKK1dJVEggdGVzdF9yZWx1Y3RhbnRfZGVkdXAgQVMgKAorICAgIFNF TEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnLCdCJ10pLAorICAgICAg ICAoMiwgQVJSQVlbJ0EnLCdCJ10pLAorICAgICAgICAoMywgQVJSQVlbJ18nXSkKKyAgICApIEFT IHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShp ZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBB UyBtYXRjaF9lbmQKK0ZST00gdGVzdF9yZWx1Y3RhbnRfZGVkdXAKK1dJTkRPVyB3IEFTICgKKyAg ICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJO ICgoQSs/IHwgQis/KSkKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3Mp LAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNo X3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyAgMSB8IHtBLEJ9IHwgICAgICAgICAgIDEgfCAgICAgICAgIDEKKyAgMiB8IHtBLEJ9IHwg ICAgICAgICAgIDIgfCAgICAgICAgIDIKKyAgMyB8IHtffSAgIHwgICAgICAgICAgICAgfCAgICAg ICAgICAKKygzIHJvd3MpCisKKy0tIExhcmdlIHBhdHRlcm4gKHN0cmVzcyBmcmVlIGxpc3QpCitX SVRIIHRlc3RfbGFyZ2VfcGF0dGVybiBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisg ICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydCJ10pLAorICAgICAg ICAoMywgQVJSQVlbJ0MnXSksCisgICAgICAgICg0LCBBUlJBWVsnRCddKSwKKyAgICAgICAgKDUs IEFSUkFZWydFJ10pLAorICAgICAgICAoNiwgQVJSQVlbJ0YnXSksCisgICAgICAgICg3LCBBUlJB WVsnRyddKSwKKyAgICAgICAgKDgsIEFSUkFZWydIJ10pLAorICAgICAgICAoOSwgQVJSQVlbJ0kn XSksCisgICAgICAgICgxMCwgQVJSQVlbJ0onXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQor U0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNo X3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00g dGVzdF9sYXJnZV9wYXR0ZXJuCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSBCIEMgRCBFIEYgRyBIIEkg SikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBC IEFTICdCJyA9IEFOWShmbGFncyksCisgICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKSwKKyAg ICAgICAgRCBBUyAnRCcgPSBBTlkoZmxhZ3MpLAorICAgICAgICBFIEFTICdFJyA9IEFOWShmbGFn cyksCisgICAgICAgIEYgQVMgJ0YnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgRyBBUyAnRycgPSBB TlkoZmxhZ3MpLAorICAgICAgICBIIEFTICdIJyA9IEFOWShmbGFncyksCisgICAgICAgIEkgQVMg J0knID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgSiBBUyAnSicgPSBBTlkoZmxhZ3MpCispOworIGlk IHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QX0gICB8ICAgICAgICAgICAxIHwgICAgICAgIDEw CisgIDIgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDMgfCB7Q30gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCisgIDQgfCB7RH0gICB8ICAgICAgICAgICAgIHwgICAgICAg ICAgCisgIDUgfCB7RX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDYgfCB7Rn0gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDcgfCB7R30gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCisgIDggfCB7SH0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDkgfCB7SX0g ICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTAgfCB7Sn0gICB8ICAgICAgICAgICAgIHwg ICAgICAgICAgCisoMTAgcm93cykKKworLS0gUmVkdWNlZCBmcmFtZSBtYXAgcmVhbGxvY2F0aW9u ICg+IDEwMjQgcm93cykKK1dJVEggdGVzdF9tYXBfcmVhbGxvYyBBUyAoCisgICAgU0VMRUNUIGlk LCBDQVNFIFdIRU4gaWQgJSAyID0gMSBUSEVOIEFSUkFZWydBJ10gRUxTRSBBUlJBWVsnQiddIEVO RCBBUyBmbGFncworICAgIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDExMDApIEFTIGlkCispCitT RUxFQ1QgY291bnQoKiksIG1pbihtYXRjaF9zdGFydCksIG1heChtYXRjaF9lbmQpCitGUk9NICgK KyAgICBTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3 IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0 Y2hfZW5kCisgICAgRlJPTSB0ZXN0X21hcF9yZWFsbG9jCisgICAgV0lORE9XIHcgQVMgKAorICAg ICAgICBPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVwor ICAgICAgICBQQVRURVJOIChBIEIpCisgICAgICAgIERFRklORQorICAgICAgICAgICAgQSBBUyAn QScgPSBBTlkoZmxhZ3MpLAorICAgICAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCisgICAg KQorKSBzdWI7CisgY291bnQgfCBtaW4gfCBtYXggIAorLS0tLS0tLSstLS0tLSstLS0tLS0KKyAg MTEwMCB8ICAgMSB8IDExMDAKKygxIHJvdykKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBTdGF0aXN0aWNzIGFuZCBE aWFnbm9zdGljcworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CistLSBNYXRjaGVkIGNvbnRleHRzCitXSVRIIHRlc3RfbWF0Y2hl ZCBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSdd KSwKKyAgICAgICAgKDIsIEFSUkFZWydCJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0EnXSksCisg ICAgICAgICg0LCBBUlJBWVsnQiddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1Qg aWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQs CisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X21h dGNoZWQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAg VE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBIEIpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMg J0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOworIGlk IHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QX0gICB8ICAgICAgICAgICAxIHwgICAgICAgICAy CisgIDIgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDMgfCB7QX0gICB8ICAg ICAgICAgICAzIHwgICAgICAgICA0CisgIDQgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAg ICAgCisoNCByb3dzKQorCistLSBQcnVuZWQgY29udGV4dHMgKGZhaWxlZCBhdCBmaXJzdCByb3cp CitXSVRIIHRlc3RfcHJ1bmVkIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAg ICAgKDEsIEFSUkFZWydfJ10pLCAgLS0gUHJ1bmVkCisgICAgICAgICgyLCBBUlJBWVsnXyddKSwg IC0tIFBydW5lZAorICAgICAgICAoMywgQVJSQVlbJ0EnXSksCisgICAgICAgICg0LCBBUlJBWVsn QiddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAg IGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1 ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X3BydW5lZAorV0lORE9XIHcgQVMg KAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBB VFRFUk4gKEEgQikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAor ICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0 YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0K KyAgMSB8IHtffSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgMiB8IHtffSAgIHwgICAg ICAgICAgICAgfCAgICAgICAgICAKKyAgMyB8IHtBfSAgIHwgICAgICAgICAgIDMgfCAgICAgICAg IDQKKyAgNCB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyg0IHJvd3MpCisKKy0t IE1pc21hdGNoZWQgY29udGV4dHMgKGZhaWxlZCBhZnRlciBtdWx0aXBsZSByb3dzKQorV0lUSCB0 ZXN0X21pc21hdGNoZWQgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAo MSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFS UkFZWydfJ10pLCAgLS0gTWlzbWF0Y2hlZCBhZnRlciAyIHJvd3MKKyAgICAgICAgKDQsIEFSUkFZ WydBJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ0InXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQor KQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1h dGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZS T00gdGVzdF9taXNtYXRjaGVkCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUK KyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShm bGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSst LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAgIHwgICAgICAgICAg ICAgfCAgICAgICAgICAKKyAgMiB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAg MyB8IHtffSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNCB8IHtBfSAgIHwgICAgICAg ICAgIDQgfCAgICAgICAgIDUKKyAgNSB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAK Kyg1IHJvd3MpCisKKy0tIFJlbHVjdGFudCBub3QgYWJzb3JiZWQgKEErPyB3aXRoIFNLSVAgVE8g TkVYVCBST1cpCistLSBDb21wYXJlIHdpdGggZ3JlZWR5IEErIGJlbG93OiByZWx1Y3RhbnQgaXMg bm90IGFic29yYmFibGUsCistLSBzbyBhbGwgY29udGV4dHMgc3Vydml2ZSBpbmRlcGVuZGVudGx5 LgorV0lUSCB0ZXN0X3JlbHVjdGFudF9zdGF0cyBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFM VUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydBJ10pLAor ICAgICAgICAoMywgQVJSQVlbJ0EnXSksCisgICAgICAgICg0LCBBUlJBWVsnQSddKSwKKyAgICAg ICAgKDUsIEFSUkFZWydfJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwg ZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAg ICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfcmVsdWN0 YW50X3N0YXRzCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBT S0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSs/KQorICAgIERFRklORQorICAgICAgICBB IEFTICdBJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0 Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtB fSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgIDEKKyAgMiB8IHtBfSAgIHwgICAgICAgICAgIDIg fCAgICAgICAgIDIKKyAgMyB8IHtBfSAgIHwgICAgICAgICAgIDMgfCAgICAgICAgIDMKKyAgNCB8 IHtBfSAgIHwgICAgICAgICAgIDQgfCAgICAgICAgIDQKKyAgNSB8IHtffSAgIHwgICAgICAgICAg ICAgfCAgICAgICAgICAKKyg1IHJvd3MpCisKKy0tIEFic29yYmVkIGNvbnRleHRzCitXSVRIIHRl c3RfYWJzb3JiZWQgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwg QVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZ WydBJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0EnXSksCisgICAgICAgICg1LCBBUlJBWVsnXydd KQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZp cnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShp ZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2Fic29yYmVkCitXSU5ET1cgdyBBUyAo CisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFU VEVSTiAoQSspCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKQorKTsK KyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0F9ICAgfCAgICAgICAgICAgMSB8ICAgICAg ICAgNAorICAyIHwge0F9ICAgfCAgICAgICAgICAgMiB8ICAgICAgICAgNAorICAzIHwge0F9ICAg fCAgICAgICAgICAgMyB8ICAgICAgICAgNAorICA0IHwge0F9ICAgfCAgICAgICAgICAgNCB8ICAg ICAgICAgNAorICA1IHwge199ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorKDUgcm93cykK KworLS0gU2tpcHBlZCBjb250ZXh0cyAoU0tJUCBUTyBORVhUIFJPVykKK1dJVEggdGVzdF9za2lw cGVkIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydB J10pLAorICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwK KyAgICAgICAgKDQsIEFSUkFZWydCJ10pICAtLSBDb21wbGV0ZXMgbWF0Y2ggc3RhcnRpbmcgYXQg cm93IDEKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAg ICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFs dWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9za2lwcGVkCitXSU5ET1cgdyBB UyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAg UEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3Mp LAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNo X3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgIDQKKyAgMiB8IHtBfSAgIHwg ICAgICAgICAgIDIgfCAgICAgICAgIDQKKyAgMyB8IHtBfSAgIHwgICAgICAgICAgIDMgfCAgICAg ICAgIDQKKyAgNCB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyg0IHJvd3MpCisK Ky0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0gUXVhbnRpZmllciBSdW50aW1lIEJlaGF2aW9yCistLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIExhcmdl IGNvdW50IGhhbmRsaW5nIChBezEwMH0pCitXSVRIIHRlc3RfbGFyZ2VfY291bnQgQVMgKAorICAg IFNFTEVDVCBpIEFTIGlkLCBBUlJBWVsnQSddIEFTIGZsYWdzCisgICAgRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMTA1KSBpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVl KGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3 IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2xhcmdlX2NvdW50CitXSU5ET1cgdyBBUyAoCisgICAg T1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAo QXsxMDB9KQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncykKKyk7Cisg aWQgIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0tKy0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAg ICAxMDAKKyAgIDIgfCB7QX0gICB8ICAgICAgICAgICAyIHwgICAgICAgMTAxCisgICAzIHwge0F9 ICAgfCAgICAgICAgICAgMyB8ICAgICAgIDEwMgorICAgNCB8IHtBfSAgIHwgICAgICAgICAgIDQg fCAgICAgICAxMDMKKyAgIDUgfCB7QX0gICB8ICAgICAgICAgICA1IHwgICAgICAgMTA0CisgICA2 IHwge0F9ICAgfCAgICAgICAgICAgNiB8ICAgICAgIDEwNQorICAgNyB8IHtBfSAgIHwgICAgICAg ICAgICAgfCAgICAgICAgICAKKyAgIDggfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAg CisgICA5IHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICAxMCB8IHtBfSAgIHwg ICAgICAgICAgICAgfCAgICAgICAgICAKKyAgMTEgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCisgIDEyIHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICAxMyB8IHtB fSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgMTQgfCB7QX0gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisgIDE1IHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICAx NiB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgMTcgfCB7QX0gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCisgIDE4IHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAg IAorICAxOSB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgMjAgfCB7QX0gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDIxIHwge0F9ICAgfCAgICAgICAgICAgICB8ICAg ICAgICAgIAorICAyMiB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgMjMgfCB7 QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDI0IHwge0F9ICAgfCAgICAgICAgICAg ICB8ICAgICAgICAgIAorICAyNSB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAg MjYgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDI3IHwge0F9ICAgfCAgICAg ICAgICAgICB8ICAgICAgICAgIAorICAyOCB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAg ICAKKyAgMjkgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDMwIHwge0F9ICAg fCAgICAgICAgICAgICB8ICAgICAgICAgIAorICAzMSB8IHtBfSAgIHwgICAgICAgICAgICAgfCAg ICAgICAgICAKKyAgMzIgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDMzIHwg e0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICAzNCB8IHtBfSAgIHwgICAgICAgICAg ICAgfCAgICAgICAgICAKKyAgMzUgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisg IDM2IHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICAzNyB8IHtBfSAgIHwgICAg ICAgICAgICAgfCAgICAgICAgICAKKyAgMzggfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAg ICAgCisgIDM5IHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA0MCB8IHtBfSAg IHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNDEgfCB7QX0gICB8ICAgICAgICAgICAgIHwg ICAgICAgICAgCisgIDQyIHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA0MyB8 IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNDQgfCB7QX0gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCisgIDQ1IHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAor ICA0NiB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNDcgfCB7QX0gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCisgIDQ4IHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAg ICAgIAorICA0OSB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNTAgfCB7QX0g ICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDUxIHwge0F9ICAgfCAgICAgICAgICAgICB8 ICAgICAgICAgIAorICA1MiB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNTMg fCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDU0IHwge0F9ICAgfCAgICAgICAg ICAgICB8ICAgICAgICAgIAorICA1NSB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAK KyAgNTYgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDU3IHwge0F9ICAgfCAg ICAgICAgICAgICB8ICAgICAgICAgIAorICA1OCB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAg ICAgICAKKyAgNTkgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDYwIHwge0F9 ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA2MSB8IHtBfSAgIHwgICAgICAgICAgICAg fCAgICAgICAgICAKKyAgNjIgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDYz IHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA2NCB8IHtBfSAgIHwgICAgICAg ICAgICAgfCAgICAgICAgICAKKyAgNjUgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAg CisgIDY2IHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA2NyB8IHtBfSAgIHwg ICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNjggfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCisgIDY5IHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA3MCB8IHtB fSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNzEgfCB7QX0gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisgIDcyIHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA3 MyB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNzQgfCB7QX0gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCisgIDc1IHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAg IAorICA3NiB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNzcgfCB7QX0gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDc4IHwge0F9ICAgfCAgICAgICAgICAgICB8ICAg ICAgICAgIAorICA3OSB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgODAgfCB7 QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDgxIHwge0F9ICAgfCAgICAgICAgICAg ICB8ICAgICAgICAgIAorICA4MiB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAg ODMgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDg0IHwge0F9ICAgfCAgICAg ICAgICAgICB8ICAgICAgICAgIAorICA4NSB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAg ICAKKyAgODYgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDg3IHwge0F9ICAg fCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA4OCB8IHtBfSAgIHwgICAgICAgICAgICAgfCAg ICAgICAgICAKKyAgODkgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDkwIHwg e0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA5MSB8IHtBfSAgIHwgICAgICAgICAg ICAgfCAgICAgICAgICAKKyAgOTIgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisg IDkzIHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA5NCB8IHtBfSAgIHwgICAg ICAgICAgICAgfCAgICAgICAgICAKKyAgOTUgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAg ICAgCisgIDk2IHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA5NyB8IHtBfSAg IHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgOTggfCB7QX0gICB8ICAgICAgICAgICAgIHwg ICAgICAgICAgCisgIDk5IHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorIDEwMCB8 IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAxMDEgfCB7QX0gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCisgMTAyIHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAor IDEwMyB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAxMDQgfCB7QX0gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCisgMTA1IHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAg ICAgIAorKDEwNSByb3dzKQorCistLSBVbmxpbWl0ZWQgcXVhbnRpZmllciAoQXsxMCx9KQorV0lU SCB0ZXN0X3VubGltaXRlZCBBUyAoCisgICAgU0VMRUNUIGkgQVMgaWQsIEFSUkFZWydBJ10gQVMg ZmxhZ3MKKyAgICBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxNSkgaQorICAgIFVOSU9OIEFMTAor ICAgIFNFTEVDVCAxNiwgQVJSQVlbJ0InXQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBm aXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUo aWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF91bmxpbWl0ZWQKK1dJTkRPVyB3IEFT ICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQ QVRURVJOIChBezEwLH0gQikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxh Z3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1h dGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0KKyAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgMTYKKyAgMiB8IHtBfSAg IHwgICAgICAgICAgIDIgfCAgICAgICAgMTYKKyAgMyB8IHtBfSAgIHwgICAgICAgICAgIDMgfCAg ICAgICAgMTYKKyAgNCB8IHtBfSAgIHwgICAgICAgICAgIDQgfCAgICAgICAgMTYKKyAgNSB8IHtB fSAgIHwgICAgICAgICAgIDUgfCAgICAgICAgMTYKKyAgNiB8IHtBfSAgIHwgICAgICAgICAgIDYg fCAgICAgICAgMTYKKyAgNyB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgOCB8 IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgOSB8IHtBfSAgIHwgICAgICAgICAg ICAgfCAgICAgICAgICAKKyAxMCB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAx MSB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAxMiB8IHtBfSAgIHwgICAgICAg ICAgICAgfCAgICAgICAgICAKKyAxMyB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAK KyAxNCB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAxNSB8IHtBfSAgIHwgICAg ICAgICAgICAgfCAgICAgICAgICAKKyAxNiB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAg ICAKKygxNiByb3dzKQorCistLSBNaW4gYm91bmRhcnkgKEF7Myw1fSkKK1dJVEggdGVzdF9taW5f Ym91bmRhcnkgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJS QVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZWydB J10pLCAgLS0gTWluPTMgcmVhY2hlZCwgZXhpdCBwYXRoIGF2YWlsYWJsZQorICAgICAgICAoNCwg QVJSQVlbJ0InXSksICAtLSBNYXRjaCBlbmRzIGF0IG1pbgorICAgICAgICAoNSwgQVJSQVlbJ0En XSksCisgICAgICAgICg2LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDcsIEFSUkFZWydBJ10pLAor ICAgICAgICAoOCwgQVJSQVlbJ0EnXSksCisgICAgICAgICg5LCBBUlJBWVsnQSddKSwgIC0tIENv dW50PTUsIG1heCByZWFjaGVkCisgICAgICAgICgxMCwgQVJSQVlbJ0InXSkgIC0tIE1hdGNoIGVu ZHMgYXQgbWF4CisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisg ICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0 X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfbWluX2JvdW5kYXJ5CitX SU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQg Uk9XCisgICAgUEFUVEVSTiAoQXszLDV9IEIpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0En ID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOworIGlkIHwg ZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QX0gICB8ICAgICAgICAgICAxIHwgICAgICAgICA0Cisg IDIgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDMgfCB7QX0gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCisgIDQgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAg CisgIDUgfCB7QX0gICB8ICAgICAgICAgICA1IHwgICAgICAgIDEwCisgIDYgfCB7QX0gICB8ICAg ICAgICAgICA2IHwgICAgICAgIDEwCisgIDcgfCB7QX0gICB8ICAgICAgICAgICA3IHwgICAgICAg IDEwCisgIDggfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDkgfCB7QX0gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTAgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCisoMTAgcm93cykKKworLS0gTWF4IGJvdW5kYXJ5IGV4Y2VlZGVkIChBezMsNX0pCitX SVRIIHRlc3RfbWF4X2JvdW5kYXJ5IEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAg ICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCisgICAgICAg ICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQsIEFSUkFZWydBJ10pLAorICAgICAgICAoNSwg QVJSQVlbJ0EnXSksCisgICAgICAgICg2LCBBUlJBWVsnQSddKSwgIC0tIENvdW50PTYgPiBtYXg9 NSwgcm93IDEgY29udGV4dCByZW1vdmVkCisgICAgICAgICg3LCBBUlJBWVsnQiddKSAgIC0tIFJv dyAxIGNvbnRleHQ6IG5vIG1hdGNoIChleGNlZWRlZCBtYXgpCisgICAgKSBBUyB0KGlkLCBmbGFn cykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBB UyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5k CitGUk9NIHRlc3RfbWF4X2JvdW5kYXJ5CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQXszLDV9IEIpCisg ICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAn QicgPSBBTlkoZmxhZ3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2Vu ZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QX0gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDIgfCB7QX0gICB8ICAgICAgICAgICAyIHwgICAg ICAgICA3CisgIDMgfCB7QX0gICB8ICAgICAgICAgICAzIHwgICAgICAgICA3CisgIDQgfCB7QX0g ICB8ICAgICAgICAgICA0IHwgICAgICAgICA3CisgIDUgfCB7QX0gICB8ICAgICAgICAgICAgIHwg ICAgICAgICAgCisgIDYgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDcgfCB7 Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisoNyByb3dzKQorCistLSBHcmVlZHkgdnMg cmVsdWN0YW50OiBBKyBtYXRjaGVzIGFsbCByb3dzLCBBKz8gbWF0Y2hlcyBtaW5pbXVtCitXSVRI IHRlc3RfZ3JlZWR5X3ZzX3JlbHVjdGFudCBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVT CisgICAgICAgICgxLCBBUlJBWVsnQScsJ18nXSksCisgICAgICAgICgyLCBBUlJBWVsnQScsJ18n XSksCisgICAgICAgICgzLCBBUlJBWVsnQScsJ0InXSksCisgICAgICAgICg0LCBBUlJBWVsnQics J18nXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAg ICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFs dWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9ncmVlZHlfdnNfcmVsdWN0YW50 CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1Qg TEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORQorICAgICAgICBBIEFTICdB JyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKyBpZCB8 IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLQorICAxIHwge0EsX30gfCAgICAgICAgICAgMSB8ICAgICAgICAgNAor ICAyIHwge0EsX30gfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICAzIHwge0EsQn0gfCAgICAg ICAgICAgICB8ICAgICAgICAgIAorICA0IHwge0IsX30gfCAgICAgICAgICAgICB8ICAgICAgICAg IAorKDQgcm93cykKKworLS0gU2FtZSBkYXRhLCByZWx1Y3RhbnQgQSs/IGV4aXRzIGF0IHJvdyAz IHdoZXJlIEIgaXMgZmlyc3QgYXZhaWxhYmxlCitXSVRIIHRlc3RfZ3JlZWR5X3ZzX3JlbHVjdGFu dCBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQScs J18nXSksCisgICAgICAgICgyLCBBUlJBWVsnQScsJ18nXSksCisgICAgICAgICgzLCBBUlJBWVsn QScsJ0InXSksCisgICAgICAgICg0LCBBUlJBWVsnQicsJ18nXSkKKyAgICApIEFTIHQoaWQsIGZs YWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3 IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9l bmQKK0ZST00gdGVzdF9ncmVlZHlfdnNfcmVsdWN0YW50CitXSU5ET1cgdyBBUyAoCisgICAgT1JE RVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChB Kz8gQikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAg ICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwg bWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8 IHtBLF99IHwgICAgICAgICAgIDEgfCAgICAgICAgIDMKKyAgMiB8IHtBLF99IHwgICAgICAgICAg ICAgfCAgICAgICAgICAKKyAgMyB8IHtBLEJ9IHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAg NCB8IHtCLF99IHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyg0IHJvd3MpCisKKy0tIFJlbHVj dGFudCBncm91cDogKEEgQikrPyBtYXRjaGVzIG1pbmltdW0gMSBpdGVyYXRpb24KK1dJVEggdGVz dF9yZWx1Y3RhbnRfZ3JvdXAgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAg ICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDMs IEFSUkFZWydBJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0InXSkKKyAgICApIEFTIHQoaWQsIGZs YWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3 IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9l bmQKK0ZST00gdGVzdF9yZWx1Y3RhbnRfZ3JvdXAKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBC WSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIEIp Kz8pCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAg QiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1h dGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7 QX0gICB8ICAgICAgICAgICAxIHwgICAgICAgICAyCisgIDIgfCB7Qn0gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisgIDMgfCB7QX0gICB8ICAgICAgICAgICAzIHwgICAgICAgICA0CisgIDQg fCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisoNCByb3dzKQorCistLSBBKz8gQiAo cmVsdWN0YW50IHBsdXMpOiBleGl0cyBBIGF0IGZpcnN0IEIgYXZhaWxhYmlsaXR5CistLSAoU2Ft ZSBzY2VuYXJpbyBhcyBncmVlZHktdnMtcmVsdWN0YW50IGNvbXBhcmlzb24gYWJvdmU7IHJldGFp bmVkIGZvcgorLS0gc3RhbmRhbG9uZSBxdWFudGlmaWVyIGNvdmVyYWdlIGFsb25nc2lkZSBBezEs M30/IGFuZCBBezIsM30/IGJlbG93KQorV0lUSCB0ZXN0X3JlbHVjdGFudF9wbHVzIEFTICgKKyAg ICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJywnXyddKSwKKyAg ICAgICAgKDIsIEFSUkFZWydBJywnXyddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJywnQiddKSwK KyAgICAgICAgKDQsIEFSUkFZWydCJywnXyddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitT RUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBs YXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfcmVsdWN0YW50X3Bs dXMKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFT VCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErPyBCKQorICAgIERFRklORQorICAgICAgICBBIEFT ICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKyBp ZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0EsX30gfCAgICAgICAgICAgMSB8ICAgICAgICAg MworICAyIHwge0EsX30gfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICAzIHwge0EsQn0gfCAg ICAgICAgICAgICB8ICAgICAgICAgIAorICA0IHwge0IsX30gfCAgICAgICAgICAgICB8ICAgICAg ICAgIAorKDQgcm93cykKKworLS0gQXsxLDN9PyBCIChyZWx1Y3RhbnQgYm91bmRlZCk6IHNhbWUg ZGF0YSwgYm91bmRlZCBxdWFudGlmaWVyCitXSVRIIHRlc3RfcmVsdWN0YW50X2JvdW5kZWQgQVMg KAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnLCdfJ10p LAorICAgICAgICAoMiwgQVJSQVlbJ0EnLCdfJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0EnLCdC J10pLAorICAgICAgICAoNCwgQVJSQVlbJ0InLCdfJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykK KykKK1NFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3Rh cnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9yZWx1Y3Rh bnRfYm91bmRlZAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0gg U0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQXsxLDN9PyBCKQorICAgIERFRklORQor ICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZs YWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0EsX30gfCAgICAgICAgICAg MSB8ICAgICAgICAgMworICAyIHwge0EsX30gfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICAz IHwge0EsQn0gfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA0IHwge0IsX30gfCAgICAgICAg ICAgICB8ICAgICAgICAgIAorKDQgcm93cykKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBQYXRob2xvZ2ljYWwgUGF0 dGVybiBSdW50aW1lIFByb3RlY3Rpb24KKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gQ29tcGxleCBuZXN0ZWQgbnVsbGFi bGUgKChBKiBCKikqKSAtIFJ1bnRpbWUgcHJvdGVjdGlvbgorV0lUSCB0ZXN0X2NvbXBsZXhfbmVz dGVkIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydB J10pLAorICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnQiddKSwK KyAgICAgICAgKDQsIEFSUkFZWydCJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ0MnXSkKKyAgICAp IEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1 ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIg dyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9jb21wbGV4X25lc3RlZAorV0lORE9XIHcgQVMgKAor ICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRF Uk4gKChBKiBCKikqKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyks CisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hf c3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LQorICAxIHwge0F9ICAgfCAgICAgICAgICAgMSB8ICAgICAgICAgNAorICAyIHwge0F9ICAgfCAg ICAgICAgICAgMiB8ICAgICAgICAgNAorICAzIHwge0J9ICAgfCAgICAgICAgICAgMyB8ICAgICAg ICAgNAorICA0IHwge0J9ICAgfCAgICAgICAgICAgNCB8ICAgICAgICAgNAorICA1IHwge0N9ICAg fCAgICAgICAgICAgICB8ICAgICAgICAgIAorKDUgcm93cykKKworLS0gTmVzdGVkIG51bGxhYmxl IHdpdGggcXVhbnRpZmllciAoKEF7MCwzfSkqKQorV0lUSCB0ZXN0X25lc3RlZF9xdWFudGlmaWVy IEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10p LAorICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAg ICAgICAgKDQsIEFSUkFZWydCJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBp ZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwK KyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfbmVz dGVkX3F1YW50aWZpZXIKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1B VENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOICgoQXswLDN9KSopCisgICAgREVGSU5F CisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hf c3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LQorICAxIHwge0F9ICAgfCAgICAgICAgICAgMSB8ICAgICAgICAgMworICAyIHwge0F9ICAgfCAg ICAgICAgICAgMiB8ICAgICAgICAgMworICAzIHwge0F9ICAgfCAgICAgICAgICAgMyB8ICAgICAg ICAgMworICA0IHwge0J9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorKDQgcm93cykKKwor LS0gUmVsdWN0YW50IG51bGxhYmxlOiBBKj8gKHByZWZlcnMgMCBtYXRjaGVzKQorLS0gQSo/IGFs d2F5cyB0YWtlcyBza2lwIHBhdGggKDAgaXRlcmF0aW9ucyBwcmVmZXJyZWQpCitXSVRIIHRlc3Rf cmVsdWN0YW50X251bGxhYmxlIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAg ICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgz LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQsIEFSUkFZWydfJ10pCisgICAgKSBBUyB0KGlkLCBm bGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIg dyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hf ZW5kCitGUk9NIHRlc3RfcmVsdWN0YW50X251bGxhYmxlCitXSU5ET1cgdyBBUyAoCisgICAgT1JE RVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSo/ IEIpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAg QiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1h dGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7 QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDIgfCB7QX0gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisgIDMgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDQg fCB7X30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisoNCByb3dzKQorCistLSA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t IEFsdGVybmF0aW9uIFJ1bnRpbWUgQmVoYXZpb3IKKy0tID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gTXVsdGktYnJhbmNoIGFs dGVybmF0aW9uIChBIChCfEN8RHxFKSBGKQorV0lUSCB0ZXN0X211bHRpX2JyYW5jaCBBUyAoCisg ICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAg ICAgKDIsIEFSUkFZWydCJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0YnXSksCisgICAgICAgICg0 LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDUsIEFSUkFZWydDJ10pLAorICAgICAgICAoNiwgQVJS QVlbJ0YnXSksCisgICAgICAgICg3LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDgsIEFSUkFZWydE J10pLAorICAgICAgICAoOSwgQVJSQVlbJ0YnXSksCisgICAgICAgICgxMCwgQVJSQVlbJ0EnXSks CisgICAgICAgICgxMSwgQVJSQVlbJ0UnXSksCisgICAgICAgICgxMiwgQVJSQVlbJ0YnXSkKKyAg ICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92 YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9W RVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9tdWx0aV9icmFuY2gKK1dJTkRPVyB3IEFTICgK KyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRU RVJOIChBIChCIHwgQyB8IEQgfCBFKSBGKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9 IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQyBB UyAnQycgPSBBTlkoZmxhZ3MpLAorICAgICAgICBEIEFTICdEJyA9IEFOWShmbGFncyksCisgICAg ICAgIEUgQVMgJ0UnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgRiBBUyAnRicgPSBBTlkoZmxhZ3Mp CispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QX0gICB8ICAgICAgICAgICAxIHwg ICAgICAgICAzCisgIDIgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDMgfCB7 Rn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDQgfCB7QX0gICB8ICAgICAgICAgICA0 IHwgICAgICAgICA2CisgIDUgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDYg fCB7Rn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDcgfCB7QX0gICB8ICAgICAgICAg ICA3IHwgICAgICAgICA5CisgIDggfCB7RH0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisg IDkgfCB7Rn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTAgfCB7QX0gICB8ICAgICAg ICAgIDEwIHwgICAgICAgIDEyCisgMTEgfCB7RX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAg CisgMTIgfCB7Rn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisoMTIgcm93cykKKworLS0g QWx0ZXJuYXRpb24gd2l0aCBxdWFudGlmaWVycyAoQSsgfCBCKyB8IEMrKQorV0lUSCB0ZXN0X2Fs dF9xdWFudGlmaWVycyBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgx LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydBJ10pLAorICAgICAgICAoMywgQVJS QVlbJ0EnXSksCisgICAgICAgICg0LCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDUsIEFSUkFZWydC J10pLAorICAgICAgICAoNiwgQVJSQVlbJ0MnXSksCisgICAgICAgICg3LCBBUlJBWVsnQyddKSwK KyAgICAgICAgKDgsIEFSUkFZWydDJ10pLAorICAgICAgICAoOSwgQVJSQVlbJ0MnXSkKKyAgICAp IEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1 ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIg dyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9hbHRfcXVhbnRpZmllcnMKK1dJTkRPVyB3IEFTICgK KyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRU RVJOIChBKyB8IEIrIHwgQyspCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZs YWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAorICAgICAgICBDIEFTICdDJyA9 IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAor LS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAgIHwgICAg ICAgICAgIDEgfCAgICAgICAgIDMKKyAgMiB8IHtBfSAgIHwgICAgICAgICAgIDIgfCAgICAgICAg IDMKKyAgMyB8IHtBfSAgIHwgICAgICAgICAgIDMgfCAgICAgICAgIDMKKyAgNCB8IHtCfSAgIHwg ICAgICAgICAgIDQgfCAgICAgICAgIDUKKyAgNSB8IHtCfSAgIHwgICAgICAgICAgIDUgfCAgICAg ICAgIDUKKyAgNiB8IHtDfSAgIHwgICAgICAgICAgIDYgfCAgICAgICAgIDkKKyAgNyB8IHtDfSAg IHwgICAgICAgICAgIDcgfCAgICAgICAgIDkKKyAgOCB8IHtDfSAgIHwgICAgICAgICAgIDggfCAg ICAgICAgIDkKKyAgOSB8IHtDfSAgIHwgICAgICAgICAgIDkgfCAgICAgICAgIDkKKyg5IHJvd3Mp CisKKy0tIGFsdFByaW9yaXR5IHJlcGxhY2VtZW50IChBIEIgQyB8IEQpCistLSBEIGJyYW5jaCAo aGlnaGVyIGFsdFByaW9yaXR5KSBtYXRjaGVzIGZpcnN0IGF0IHJvdyAxLAorLS0gdGhlbiBBIEIg QyBicmFuY2ggKGxvd2VyIGFsdFByaW9yaXR5KSByZXBsYWNlcyBpdCBhdCByb3cgMy4KK1dJVEgg dGVzdF9hbHRfcmVwbGFjZSBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAg ICgxLCBBUlJBWVsnQScsICdEJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0InLCAnXyddKSwKKyAg ICAgICAgKDMsIEFSUkFZWydDJywgJ18nXSksCisgICAgICAgICg0LCBBUlJBWVsnXycsICdfJ10p CisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmly c3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlk KSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfYWx0X3JlcGxhY2UKK1dJTkRPVyB3IEFT ICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQ QVRURVJOIChBIEIgQyB8IEQpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZs YWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAorICAgICAgICBDIEFTICdDJyA9 IEFOWShmbGFncyksCisgICAgICAgIEQgQVMgJ0QnID0gQU5ZKGZsYWdzKQorKTsKKyBpZCB8IGZs YWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLQorICAxIHwge0EsRH0gfCAgICAgICAgICAgMSB8ICAgICAgICAgMworICAy IHwge0IsX30gfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICAzIHwge0MsX30gfCAgICAgICAg ICAgICB8ICAgICAgICAgIAorICA0IHwge18sX30gfCAgICAgICAgICAgICB8ICAgICAgICAgIAor KDQgcm93cykKKworLS0gQUxUIGxleGljYWwgb3JkZXIgdGFrZXMgcHJpb3JpdHkgb3ZlciBncmVl ZHkgKGxvbmdlciBtYXRjaCkuCistLSBSb3cgMSBtYXRjaGVzIGJvdGggQSBhbmQgQjsgQSB3aW5z IGJ5IGxleGljYWwgb3JkZXIgKG1hdGNoIDEtMSkuCitXSVRIIHRlc3RfYWx0X2xleGljYWxfb3Jk ZXIgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0En LCdCJ10pLCAgLS0gQSBhbmQgQiBib3RoIG1hdGNoCisgICAgICAgICgyLCBBUlJBWVsnXycsJ0Mn XSkgICAtLSBvbmx5IEMgbWF0Y2hlcyAod291bGQgY29udGludWUgQiBDKQorICAgICkgQVMgdChp ZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBP VkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1h dGNoX2VuZAorRlJPTSB0ZXN0X2FsdF9sZXhpY2FsX29yZGVyCitXSU5ET1cgdyBBUyAoCisgICAg T1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJO ICgoQSB8IEIgQykrKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyks CisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQyBBUyAnQycgPSBBTlko ZmxhZ3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0r LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QSxCfSB8ICAgICAgICAg ICAxIHwgICAgICAgICAxCisgIDIgfCB7XyxDfSB8ICAgICAgICAgICAgIHwgICAgICAgICAgCiso MiByb3dzKQorCistLSBBTFQgd2l0aCByZWx1Y3RhbnQ6IChBKz8gfCBCKykgLSBBIGJyYW5jaCBp cyByZWx1Y3RhbnQsIEIgaXMgZ3JlZWR5LgorLS0gUm93IDEgbWF0Y2hlcyBib3RoIEEgYW5kIEIu IEErPyBleGl0cyBpbW1lZGlhdGVseSAobWF0Y2ggMS0xKS4KK1dJVEggdGVzdF9hbHRfcmVsdWN0 YW50IEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydB JywnQiddKSwKKyAgICAgICAgKDIsIEFSUkFZWydCJywnXyddKSwKKyAgICAgICAgKDMsIEFSUkFZ WydCJywnXyddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAor ICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFz dF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2FsdF9yZWx1Y3RhbnQK K1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBM QVNUIFJPVworICAgIFBBVFRFUk4gKChBKz8gfCBCKykpCisgICAgREVGSU5FCisgICAgICAgIEEg QVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOwor IGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QSxCfSB8ICAgICAgICAgICAxIHwgICAgICAg ICAxCisgIDIgfCB7QixffSB8ICAgICAgICAgICAyIHwgICAgICAgICAzCisgIDMgfCB7QixffSB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCisoMyByb3dzKQorCistLSBPcHRpb25hbCBmaXJzdCBi cmFuY2ggaW4gQUxUIHdpdGggcXVhbnRpZmllcjogKEE/IHwgQil7MSwyfQorLS0gRmlyc3QgYnJh bmNoIEE/IGV4aXQgcGF0aCBtYXkgbG9vcCBiYWNrIHRvIEFMVCBhbmQgdHJpZ2dlciBjeWNsZQor LS0gZGV0ZWN0aW9uIGR1cmluZyBERlMuICBBbGwgYnJhbmNoZXMgbXVzdCByZWNlaXZlIGNvcnJl Y3QgY291bnRzLgorV0lUSCB0ZXN0X2FsdF9vcHRfZmlyc3QgQVMgKAorICAgIFNFTEVDVCAqIEZS T00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0InXSksCisgICAgICAgICgyLCBBUlJBWVsn QiddKSwKKyAgICAgICAgKDMsIEFSUkFZWydCJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykK K1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRj aF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9N IHRlc3RfYWx0X29wdF9maXJzdAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZU RVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKCgoQT8gfCBCKXsxLDJ9KSkK KyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFT ICdCJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hf ZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtCfSAg IHwgICAgICAgICAgIDEgfCAgICAgICAgIDIKKyAgMiB8IHtCfSAgIHwgICAgICAgICAgIDIgfCAg ICAgICAgIDMKKyAgMyB8IHtCfSAgIHwgICAgICAgICAgIDMgfCAgICAgICAgIDMKKygzIHJvd3Mp CisKKy0tIE1peGVkIEEvQiByb3dzIGFjcm9zcyBpdGVyYXRpb25zIG9mIChBPyB8IEIpezEsMn0K K1dJVEggdGVzdF9hbHRfb3B0X21peGVkIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMK KyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0InXSksCisgICAg ICAgICgzLCBBUlJBWVsnQScsJ0InXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNU IGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0 LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9h bHRfb3B0X21peGVkCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRD SCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoKChBPyB8IEIpezEsMn0pKQorICAgIERF RklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0g QU5ZKGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCist LS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0F9ICAgfCAgICAg ICAgICAgMSB8ICAgICAgICAgMgorICAyIHwge0J9ICAgfCAgICAgICAgICAgMiB8ICAgICAgICAg MworICAzIHwge0EsQn0gfCAgICAgICAgICAgMyB8ICAgICAgICAgMworKDMgcm93cykKKworLS0g UmVsdWN0YW50IHZhcmlhbnQ6IChBPz8gfCBCKXsxLDJ9CitXSVRIIHRlc3RfYWx0X29wdF9yZWx1 Y3RhbnQgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlb J0InXSksCisgICAgICAgICgyLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDMsIEFSUkFZWydCJ10p CisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmly c3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlk KSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfYWx0X29wdF9yZWx1Y3RhbnQKK1dJTkRP VyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cK KyAgICBQQVRURVJOICgoKEE/PyB8IEIpezEsMn0pKQorICAgIERFRklORQorICAgICAgICBBIEFT ICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKyBp ZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0J9ICAgfCAgICAgICAgICAgMSB8ICAgICAgICAg MgorICAyIHwge0J9ICAgfCAgICAgICAgICAgMiB8ICAgICAgICAgMworICAzIHwge0J9ICAgfCAg ICAgICAgICAgMyB8ICAgICAgICAgMworKDMgcm93cykKKworLS0gT3ZlcmxhcHBpbmcgbWF0Y2g6 IEEgQiBDIEQgRSB8IEIgQyBEIHwgQyBEIEUgRiAoU0tJUCBQQVNUIExBU1QgUk9XKQorV0lUSCB0 ZXN0X292ZXJsYXAxIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEs IEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0InXSksCisgICAgICAgICgzLCBBUlJB WVsnQyddKSwKKyAgICAgICAgKDQsIEFSUkFZWydEJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ0Un XSksCisgICAgICAgICg2LCBBUlJBWVsnRiddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitT RUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBs YXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3Rfb3ZlcmxhcDEKK1dJ TkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNU IFJPVworICAgIFBBVFRFUk4gKEEgQiBDIEQgRSB8IEIgQyBEIHwgQyBEIEUgRikKKyAgICBERUZJ TkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFO WShmbGFncyksCisgICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgRCBBUyAn RCcgPSBBTlkoZmxhZ3MpLAorICAgICAgICBFIEFTICdFJyA9IEFOWShmbGFncyksCisgICAgICAg IEYgQVMgJ0YnID0gQU5ZKGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBt YXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwg e0F9ICAgfCAgICAgICAgICAgMSB8ICAgICAgICAgNQorICAyIHwge0J9ICAgfCAgICAgICAgICAg ICB8ICAgICAgICAgIAorICAzIHwge0N9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA0 IHwge0R9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA1IHwge0V9ICAgfCAgICAgICAg ICAgICB8ICAgICAgICAgIAorICA2IHwge0Z9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAor KDYgcm93cykKKworLS0gU2FtZSB3aXRoIFNLSVAgVE8gTkVYVCBST1c6IHRocmVlIG92ZXJsYXBw aW5nIG1hdGNoZXMKK1dJVEggdGVzdF9vdmVybGFwMSBBUyAoCisgICAgU0VMRUNUICogRlJPTSAo VkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydCJ10p LAorICAgICAgICAoMywgQVJSQVlbJ0MnXSksCisgICAgICAgICg0LCBBUlJBWVsnRCddKSwKKyAg ICAgICAgKDUsIEFSUkFZWydFJ10pLAorICAgICAgICAoNiwgQVJSQVlbJ0YnXSkKKyAgICApIEFT IHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQpIE9WRVIg dyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJP TSB0ZXN0X292ZXJsYXAxCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBN QVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSBCIEMgRCBFIHwgQiBDIEQgfCBD IEQgRSBGKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAg ICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQyBBUyAnQycgPSBBTlkoZmxhZ3Mp LAorICAgICAgICBEIEFTICdEJyA9IEFOWShmbGFncyksCisgICAgICAgIEUgQVMgJ0UnID0gQU5Z KGZsYWdzKSwKKyAgICAgICAgRiBBUyAnRicgPSBBTlkoZmxhZ3MpCispOworIGlkIHwgZmxhZ3Mg fCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tCisgIDEgfCB7QX0gICB8ICAgICAgICAgICAxIHwgICAgICAgICA1CisgIDIgfCB7 Qn0gICB8ICAgICAgICAgICAyIHwgICAgICAgICA0CisgIDMgfCB7Q30gICB8ICAgICAgICAgICAz IHwgICAgICAgICA2CisgIDQgfCB7RH0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDUg fCB7RX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDYgfCB7Rn0gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCisoNiByb3dzKQorCistLSBMb25nZXIgcGF0dGVybiBmYWlscywgc2hv cnRlciBzdXJ2aXZlczogQSsgQiBDIEQgRSB8IEIrIEMKK1dJVEggdGVzdF9vdmVybGFwMWIgQVMg KAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisg ICAgICAgICgyLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDMsIEFSUkFZWydDJ10pLAorICAgICAg ICAoNCwgQVJSQVlbJ0QnXSksCisgICAgICAgICg1LCBBUlJBWVsnWCddKQorICAgICkgQVMgdChp ZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFT IG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRl c3Rfb3ZlcmxhcDFiCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRD SCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCIEMgRCBFIHwgQisgQykKKyAg ICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdC JyA9IEFOWShmbGFncyksCisgICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAg RCBBUyAnRCcgPSBBTlkoZmxhZ3MpLAorICAgICAgICBFIEFTICdFJyA9IEFOWShmbGFncykKKyk7 CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAg ICAgICAKKyAgMiB8IHtCfSAgIHwgICAgICAgICAgIDIgfCAgICAgICAgIDMKKyAgMyB8IHtDfSAg IHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNCB8IHtEfSAgIHwgICAgICAgICAgICAgfCAg ICAgICAgICAKKyAgNSB8IHtYfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyg1IHJvd3Mp CisKKy0tIExvbmcgQiBzZXF1ZW5jZSB3aXRoIGRpZmZlcmVudCBlbmRpbmdzOiBBIEIrIEMgfCBC KyBECitXSVRIIHRlc3Rfb3ZlcmxhcDIgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwor ICAgICAgICAoMSwgIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgIEFSUkFZWydCJ10pLAorICAg ICAgICAoMywgIEFSUkFZWydCJ10pLAorICAgICAgICAoNCwgIEFSUkFZWydCJ10pLAorICAgICAg ICAoNSwgIEFSUkFZWydCJ10pLAorICAgICAgICAoNiwgIEFSUkFZWydDJ10pLAorICAgICAgICAo NywgIEFSUkFZWydCJ10pLAorICAgICAgICAoOCwgIEFSUkFZWydCJ10pLAorICAgICAgICAoOSwg IEFSUkFZWydCJ10pLAorICAgICAgICAoMTAsIEFSUkFZWydEJ10pCisgICAgKSBBUyB0KGlkLCBm bGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0 Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9v dmVybGFwMgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJ UCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEEgQisgQyB8IEIrIEQpCisgICAgREVGSU5FCisg ICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxh Z3MpLAorICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncyksCisgICAgICAgIEQgQVMgJ0QnID0g QU5ZKGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCist LS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0F9ICAgfCAgICAg ICAgICAgMSB8ICAgICAgICAgNgorICAyIHwge0J9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAg IAorICAzIHwge0J9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA0IHwge0J9ICAgfCAg ICAgICAgICAgICB8ICAgICAgICAgIAorICA1IHwge0J9ICAgfCAgICAgICAgICAgICB8ICAgICAg ICAgIAorICA2IHwge0N9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA3IHwge0J9ICAg fCAgICAgICAgICAgNyB8ICAgICAgICAxMAorICA4IHwge0J9ICAgfCAgICAgICAgICAgOCB8ICAg ICAgICAxMAorICA5IHwge0J9ICAgfCAgICAgICAgICAgOSB8ICAgICAgICAxMAorIDEwIHwge0R9 ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorKDEwIHJvd3MpCisKKy0tIEdyZWVkeSB3aXRo IGxhdGUgZmFpbHVyZSAoImJldHJheWFsIik6IEEgQiBDKyBEIHwgQSBCCitXSVRIIHRlc3RfYmV0 cmF5YWwgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlb J0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDMsIEFSUkFZWydDJ10p LAorICAgICAgICAoNCwgQVJSQVlbJ0MnXSksCisgICAgICAgICg1LCBBUlJBWVsnQyddKSwKKyAg ICAgICAgKDYsIEFSUkFZWydFJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBp ZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFs dWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9iZXRyYXlhbAorV0lORE9XIHcg QVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisg ICAgUEFUVEVSTiAoQSBCIEMrIEQgfCBBIEIpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0En ID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAorICAgICAgICBD IEFTICdDJyA9IEFOWShmbGFncyksCisgICAgICAgIEQgQVMgJ0QnID0gQU5ZKGZsYWdzKQorKTsK KyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0F9ICAgfCAgICAgICAgICAgMSB8ICAgICAg ICAgMgorICAyIHwge0J9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICAzIHwge0N9ICAg fCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA0IHwge0N9ICAgfCAgICAgICAgICAgICB8ICAg ICAgICAgIAorICA1IHwge0N9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA2IHwge0V9 ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorKDYgcm93cykKKworLS0gTXVsdGlwbGUgVFJV RSBwZXIgcm93OiBvdmVybGFwcGluZyBwYXR0ZXJuIHZhcmlhYmxlcworV0lUSCB0ZXN0X211bHRp X3RydWUgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlb J0EnLCdCJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0InLCdDJ10pLAorICAgICAgICAoMywgQVJS QVlbJ0MnLCdEJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0QnLCdFJ10pLAorICAgICAgICAoNSwg QVJSQVlbJ0UnLCdfJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxh Z3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQp IE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9tdWx0aV90cnVlCitXSU5ET1cgdyBBUyAo CisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQ QVRURVJOIChBIEIgQyBEIEUpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZs YWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAorICAgICAgICBDIEFTICdDJyA9 IEFOWShmbGFncyksCisgICAgICAgIEQgQVMgJ0QnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgRSBB UyAnRScgPSBBTlkoZmxhZ3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNo X2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QSxC fSB8ICAgICAgICAgICAxIHwgICAgICAgICA1CisgIDIgfCB7QixDfSB8ICAgICAgICAgICAgIHwg ICAgICAgICAgCisgIDMgfCB7QyxEfSB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDQgfCB7 RCxFfSB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDUgfCB7RSxffSB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisoNSByb3dzKQorCistLSBEaWFnb25hbCBwYXR0ZXJuIHdpdGggc2hpZnRl ZCBtdWx0aS1UUlVFIG92ZXJsYXAKK1dJVEggdGVzdF9kaWFnb25hbCBBUyAoCisgICAgU0VMRUNU ICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQScsJ18nXSksCisgICAgICAgICgy LCBBUlJBWVsnQicsJ0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnQycsJ0InXSksCisgICAgICAg ICg0LCBBUlJBWVsnRCcsJ0MnXSksCisgICAgICAgICg1LCBBUlJBWVsnXycsJ0QnXSkKKyAgICAp IEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQpIE9W RVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAor RlJPTSB0ZXN0X2RpYWdvbmFsCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSBCIEMgRCkKKyAgICBERUZJ TkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFO WShmbGFncyksCisgICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgRCBBUyAn RCcgPSBBTlkoZmxhZ3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2Vu ZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QSxffSB8 ICAgICAgICAgICAxIHwgICAgICAgICA0CisgIDIgfCB7QixBfSB8ICAgICAgICAgICAyIHwgICAg ICAgICA1CisgIDMgfCB7QyxCfSB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDQgfCB7RCxD fSB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDUgfCB7XyxEfSB8ICAgICAgICAgICAgIHwg ICAgICAgICAgCisoNSByb3dzKQorCistLSAoKEEgfCBCKSBDKSsgLSBhbHRlcm5hdGlvbiBpbnNp ZGUgZ3JvdXAgd2l0aCBvdXRlciBxdWFudGlmaWVyCitXSVRIIHRlc3RfYWx0X2dyb3VwIEFTICgK KyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAg ICAgICAoMiwgQVJSQVlbJ0MnXSksCisgICAgICAgICgzLCBBUlJBWVsnQiddKSwKKyAgICAgICAg KDQsIEFSUkFZWydDJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ1gnXSkKKyAgICApIEFTIHQoaWQs IGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBt YXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0 X2FsdF9ncm91cAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0gg U0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKChBIHwgQikgQykrKQorICAgIERFRklO RQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5Z KGZsYWdzKSwKKyAgICAgICAgQyBBUyAnQycgPSBBTlkoZmxhZ3MpCispOworIGlkIHwgZmxhZ3Mg fCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tCisgIDEgfCB7QX0gICB8ICAgICAgICAgICAxIHwgICAgICAgICA0CisgIDIgfCB7 Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDMgfCB7Qn0gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisgIDQgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDUg fCB7WH0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisoNSByb3dzKQorCistLSA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t IERlZXAgTmVzdGVkIEdyb3VwcworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBUaHJlZS1sZXZlbCBuZXN0aW5nICgoKChB IEIpKykrKSspCitXSVRIIHRlc3RfZGVlcF9uZXN0aW5nIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9N IChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0In XSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQsIEFSUkFZWydCJ10pLAor ICAgICAgICAoNSwgQVJSQVlbJ0EnXSksCisgICAgICAgICg2LCBBUlJBWVsnQiddKSwKKyAgICAg ICAgKDcsIEFSUkFZWydfJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwg ZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAg ICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfZGVlcF9u ZXN0aW5nCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQ IFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoKCgoQSBCKSspKykrKQorICAgIERFRklORQorICAg ICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdz KQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0F9ICAgfCAgICAgICAgICAgMSB8 ICAgICAgICAgNgorICAyIHwge0J9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICAzIHwg e0F9ICAgfCAgICAgICAgICAgMyB8ICAgICAgICAgNgorICA0IHwge0J9ICAgfCAgICAgICAgICAg ICB8ICAgICAgICAgIAorICA1IHwge0F9ICAgfCAgICAgICAgICAgNSB8ICAgICAgICAgNgorICA2 IHwge0J9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA3IHwge199ICAgfCAgICAgICAg ICAgICB8ICAgICAgICAgIAorKDcgcm93cykKKworLS0gTXVsdGlwbGUgZ3JvdXBzIGluIG5lc3Rp bmcgKCgoQSBCKSAoQyBEKSkrKQorV0lUSCB0ZXN0X25lc3RlZF9zZXF1ZW50aWFsIEFTICgKKyAg ICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAg ICAoMiwgQVJSQVlbJ0InXSksCisgICAgICAgICgzLCBBUlJBWVsnQyddKSwKKyAgICAgICAgKDQs IEFSUkFZWydEJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ0EnXSksCisgICAgICAgICg2LCBBUlJB WVsnQiddKSwKKyAgICAgICAgKDcsIEFSUkFZWydDJ10pLAorICAgICAgICAoOCwgQVJSQVlbJ0Qn XSksCisgICAgICAgICg5LCBBUlJBWVsnXyddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitT RUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hf c3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0 ZXN0X25lc3RlZF9zZXF1ZW50aWFsCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBB RlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoKChBIEIpIChDIEQpKSsp CisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBB UyAnQicgPSBBTlkoZmxhZ3MpLAorICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncyksCisgICAg ICAgIEQgQVMgJ0QnID0gQU5ZKGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQg fCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAx IHwge0F9ICAgfCAgICAgICAgICAgMSB8ICAgICAgICAgOAorICAyIHwge0J9ICAgfCAgICAgICAg ICAgICB8ICAgICAgICAgIAorICAzIHwge0N9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAor ICA0IHwge0R9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA1IHwge0F9ICAgfCAgICAg ICAgICAgNSB8ICAgICAgICAgOAorICA2IHwge0J9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAg IAorICA3IHwge0N9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA4IHwge0R9ICAgfCAg ICAgICAgICAgICB8ICAgICAgICAgIAorICA5IHwge199ICAgfCAgICAgICAgICAgICB8ICAgICAg ICAgIAorKDkgcm93cykKKworLS0gTmVzdGVkIEVORC0+RU5EIG1heCByZWFjaGVkCistLSBJbm5l ciBncm91cCAoQSBCKXsyfSByZWFjaGVzIG1heD0yIC0+IGV4aXRzIHRvIG91dGVyIEVORAorV0lU SCB0ZXN0X2VuZF9uZXN0ZWRfbWF4IEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAg ICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0InXSksCisgICAgICAg ICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQsIEFSUkFZWydCJ10pLAorICAgICAgICAoNSwg QVJSQVlbJ0EnXSksCisgICAgICAgICg2LCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDcsIEFSUkFZ WydBJ10pLAorICAgICAgICAoOCwgQVJSQVlbJ0InXSksCisgICAgICAgICg5LCBBUlJBWVsnXydd KQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZp cnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShp ZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2VuZF9uZXN0ZWRfbWF4CitXSU5ET1cg dyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisg ICAgUEFUVEVSTiAoKChBIEIpezJ9KSspCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0g QU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOworIGlkIHwgZmxh Z3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tCisgIDEgfCB7QX0gICB8ICAgICAgICAgICAxIHwgICAgICAgICA4CisgIDIg fCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDMgfCB7QX0gICB8ICAgICAgICAg ICAzIHwgICAgICAgICA2CisgIDQgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisg IDUgfCB7QX0gICB8ICAgICAgICAgICA1IHwgICAgICAgICA4CisgIDYgfCB7Qn0gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCisgIDcgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAg CisgIDggfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDkgfCB7X30gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCisoOSByb3dzKQorCistLSBOZXN0ZWQgRU5ELT5FTkQgYmV0 d2VlbiBtaW4vbWF4CistLSBJbm5lciBncm91cCAoQSBCKXsxLDN9IGV4aXRzIGJldHdlZW4gbWlu L21heCAtPiBvdXRlciBFTkQgY291bnQrKworV0lUSCB0ZXN0X2VuZF9uZXN0ZWRfbWlkIEFTICgK KyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAg ICAgICAoMiwgQVJSQVlbJ0InXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAg KDQsIEFSUkFZWydCJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ0EnXSksCisgICAgICAgICg2LCBB UlJBWVsnQiddKSwKKyAgICAgICAgKDcsIEFSUkFZWydBJ10pLAorICAgICAgICAoOCwgQVJSQVlb J0InXSksCisgICAgICAgICg5LCBBUlJBWVsnXyddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCisp CitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0 Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJP TSB0ZXN0X2VuZF9uZXN0ZWRfbWlkCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBB RlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoKChBIEIpezEsM30pKykK KyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFT ICdCJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hf ZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAg IHwgICAgICAgICAgIDEgfCAgICAgICAgIDgKKyAgMiB8IHtCfSAgIHwgICAgICAgICAgICAgfCAg ICAgICAgICAKKyAgMyB8IHtBfSAgIHwgICAgICAgICAgIDMgfCAgICAgICAgIDgKKyAgNCB8IHtC fSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNSB8IHtBfSAgIHwgICAgICAgICAgIDUg fCAgICAgICAgIDgKKyAgNiB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNyB8 IHtBfSAgIHwgICAgICAgICAgIDcgfCAgICAgICAgIDgKKyAgOCB8IHtCfSAgIHwgICAgICAgICAg ICAgfCAgICAgICAgICAKKyAgOSB8IHtffSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyg5 IHJvd3MpCisKKy0tIE5lc3RlZCByZWx1Y3RhbnQgZ3JvdXAgKChBIEIpKz8pIHdpdGggZm9sbG93 aW5nIGVsZW1lbnQgQworLS0gSW5uZXIgZ3JvdXAgZXhpdHMgYWZ0ZXIgbWluaW11bSAxIGl0ZXJh dGlvbgorV0lUSCB0ZXN0X25lc3RlZF9yZWx1Y3RhbnQgQVMgKAorICAgIFNFTEVDVCAqIEZST00g KFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQidd KSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0InXSksCisg ICAgICAgICg1LCBBUlJBWVsnQyddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1Qg aWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQs CisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X25l c3RlZF9yZWx1Y3RhbnQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1B VENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOICgoQSBCKSs/IEMpCisgICAgREVGSU5F CisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlko ZmxhZ3MpLAorICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8 IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0KKyAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgIDUKKyAgMiB8IHtC fSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgMyB8IHtBfSAgIHwgICAgICAgICAgIDMg fCAgICAgICAgIDUKKyAgNCB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNSB8 IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyg1IHJvd3MpCisKKy0tIChBIEIpezJ9 IC0gZ3JvdXAgd2l0aCBleGFjdCBxdWFudGlmaWVyCitXSVRIIHRlc3RfZ3JvdXBfZXhhY3QgQVMg KAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisg ICAgICAgICgyLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10pLAorICAgICAg ICAoNCwgQVJSQVlbJ0InXSksCisgICAgICAgICg1LCBBUlJBWVsnWCddKQorICAgICkgQVMgdChp ZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFT IG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRl c3RfZ3JvdXBfZXhhY3QKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIEIpezJ9KQorICAgIERFRklO RQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5Z KGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0t Ky0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0F9ICAgfCAgICAgICAg ICAgMSB8ICAgICAgICAgNAorICAyIHwge0J9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAor ICAzIHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA0IHwge0J9ICAgfCAgICAg ICAgICAgICB8ICAgICAgICAgIAorICA1IHwge1h9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAg IAorKDUgcm93cykKKworLS0gTmVzdGVkIEVORC0+RU5EIGZhc3QtZm9yd2FyZAorLS0gV2hlbiBh biBpbm5lciBncm91cCBoYXMgYSBudWxsYWJsZSBib2R5IGFuZCBjb3VudCA8IG1pbiwgdGhlCist LSBmYXN0LWZvcndhcmQgcGF0aCBleGl0cyB0aHJvdWdoIHRoZSBvdXRlciBFTkQsIGluY3JlbWVu dGluZworLS0gdGhlIG91dGVyIGdyb3VwJ3MgY291bnQgKG5vZGVXaW5kb3dBZ2cuYyBuZmFfYWR2 YW5jZV9lbmQpLgorLS0gUGF0dGVybjogKChBPyl7MiwzfSl7MiwzfSAtLSBuZXN0ZWQgZ3JvdXBz LCBuZWl0aGVyIGNvbGxhcHNlcworLS0gYmVjYXVzZSB0aGUgb3B0aW1pemVyIGNhbm5vdCBzYWZl bHkgbXVsdGlwbHkgbm9uLWV4YWN0IHF1YW50aWZpZXJzLgorLS0gRGF0YSBoYXMgbm8gQSByb3dz LCBmb3JjaW5nIGFsbC1lbXB0eSBpdGVyYXRpb25zIHZpYSBmYXN0LWZvcndhcmQuCitXSVRIIHRl c3RfbmVzdGVkX2ZmIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEs IEFSUkFZWydCJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0InXSksCisgICAgICAgICgzLCBBUlJB WVsnQiddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAg ICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92 YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X25lc3RlZF9mZgorV0lORE9X IHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVwor ICAgIFBBVFRFUk4gKCgoQT8pezIsM30pezIsM30pCisgICAgREVGSU5FCisgICAgICAgIEEgQVMg J0EnID0gQU5ZKGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9l bmQgCistLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0J9ICAg fCAgICAgICAgICAgICB8ICAgICAgICAgIAorICAyIHwge0J9ICAgfCAgICAgICAgICAgICB8ICAg ICAgICAgIAorICAzIHwge0J9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorKDMgcm93cykK KworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLSBTS0lQIE9wdGlvbnMgKFJ1bnRpbWUpCistLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFNLSVAgUEFT VCBMQVNUIFJPVyAobm9uLW92ZXJsYXBwaW5nIG1hdGNoZXMpCitXSVRIIHRlc3Rfc2tpcF9wYXN0 IEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10p LAorICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAg ICAgICAgKDQsIEFSUkFZWydBJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ18nXSkKKyAgICApIEFT IHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShp ZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBB UyBtYXRjaF9lbmQKK0ZST00gdGVzdF9za2lwX3Bhc3QKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRF UiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEr KQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBm bGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgIDQKKyAg MiB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgMyB8IHtBfSAgIHwgICAgICAg ICAgICAgfCAgICAgICAgICAKKyAgNCB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAK KyAgNSB8IHtffSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyg1IHJvd3MpCisKKy0tIFNL SVAgVE8gTkVYVCBST1cgKG92ZXJsYXBwaW5nIG1hdGNoZXMpCitXSVRIIHRlc3Rfc2tpcF9uZXh0 IEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10p LAorICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAg ICAgICAgKDQsIEFSUkFZWydBJ10pLAorICAgICAgICAoNSwgQVJSQVlbJ18nXSkKKyAgICApIEFT IHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShp ZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBB UyBtYXRjaF9lbmQKK0ZST00gdGVzdF9za2lwX25leHQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRF UiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBKykK KyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpCispOworIGlkIHwgZmxh Z3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tCisgIDEgfCB7QX0gICB8ICAgICAgICAgICAxIHwgICAgICAgICA0CisgIDIg fCB7QX0gICB8ICAgICAgICAgICAyIHwgICAgICAgICA0CisgIDMgfCB7QX0gICB8ICAgICAgICAg ICAzIHwgICAgICAgICA0CisgIDQgfCB7QX0gICB8ICAgICAgICAgICA0IHwgICAgICAgICA0Cisg IDUgfCB7X30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisoNSByb3dzKQorCistLSBTS0lQ IGRpZmZlcmVuY2UgdmVyaWZpY2F0aW9uCitXSVRIIHRlc3Rfc2tpcF9kaWZmIEFTICgKKyAgICBT RUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAo MiwgQVJSQVlbJ0InXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQsIEFS UkFZWydCJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCAnU0tJUCBQQVNUJyBB UyBtb2RlLCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRj aF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9N IHRlc3Rfc2tpcF9kaWZmCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBN QVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIpCisgICAgREVGSU5FCisg ICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxh Z3MpCispCitVTklPTiBBTEwKK1NFTEVDVCAnU0tJUCBORVhUJyBBUyBtb2RlLCBpZCwgZmxhZ3Ms CisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBs YXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3Rfc2tpcF9kaWZmCitX SU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQg Uk9XCisgICAgUEFUVEVSTiAoQSBCKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFO WShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKQorT1JERVIgQlkgbW9k ZSwgaWQ7CisgICBtb2RlICAgIHwgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5k IAorLS0tLS0tLS0tLS0rLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBT S0lQIE5FWFQgfCAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgIDIKKyBTS0lQIE5F WFQgfCAgMiB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyBTS0lQIE5FWFQgfCAg MyB8IHtBfSAgIHwgICAgICAgICAgIDMgfCAgICAgICAgIDQKKyBTS0lQIE5FWFQgfCAgNCB8IHtC fSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyBTS0lQIFBBU1QgfCAgMSB8IHtBfSAgIHwg ICAgICAgICAgIDEgfCAgICAgICAgIDIKKyBTS0lQIFBBU1QgfCAgMiB8IHtCfSAgIHwgICAgICAg ICAgICAgfCAgICAgICAgICAKKyBTS0lQIFBBU1QgfCAgMyB8IHtBfSAgIHwgICAgICAgICAgIDMg fCAgICAgICAgIDQKKyBTS0lQIFBBU1QgfCAgNCB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAg ICAgICAKKyg4IHJvd3MpCisKKy0tIFJlbHVjdGFudCBTS0lQIGNvbXBhcmlzb246IEErPyB3aXRo IFNLSVAgUEFTVCB2cyBTS0lQIE5FWFQKK1dJVEggdGVzdF9yZWx1Y3RhbnRfc2tpcCBBUyAoCisg ICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAg ICAgKDIsIEFSUkFZWydBJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0EnXSksCisgICAgICAgICg0 LCBBUlJBWVsnXyddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgJ1NLSVAgUEFT VCcgQVMgbW9kZSwgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMg bWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAor RlJPTSB0ZXN0X3JlbHVjdGFudF9za2lwCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKz8pCisgICAg REVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKQorKQorVU5JT04gQUxMCitTRUxF Q1QgJ1NLSVAgTkVYVCcgQVMgbW9kZSwgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlk KSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFT IG1hdGNoX2VuZAorRlJPTSB0ZXN0X3JlbHVjdGFudF9za2lwCitXSU5ET1cgdyBBUyAoCisgICAg T1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAo QSs/KQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncykKKykKK09SREVS IEJZIG1vZGUsIGlkOworICAgbW9kZSAgICB8IGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1h dGNoX2VuZCAKKy0tLS0tLS0tLS0tKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tCisgU0tJUCBORVhUIHwgIDEgfCB7QX0gICB8ICAgICAgICAgICAxIHwgICAgICAgICAxCisg U0tJUCBORVhUIHwgIDIgfCB7QX0gICB8ICAgICAgICAgICAyIHwgICAgICAgICAyCisgU0tJUCBO RVhUIHwgIDMgfCB7QX0gICB8ICAgICAgICAgICAzIHwgICAgICAgICAzCisgU0tJUCBORVhUIHwg IDQgfCB7X30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgU0tJUCBQQVNUIHwgIDEgfCB7 QX0gICB8ICAgICAgICAgICAxIHwgICAgICAgICAxCisgU0tJUCBQQVNUIHwgIDIgfCB7QX0gICB8 ICAgICAgICAgICAyIHwgICAgICAgICAyCisgU0tJUCBQQVNUIHwgIDMgfCB7QX0gICB8ICAgICAg ICAgICAzIHwgICAgICAgICAzCisgU0tJUCBQQVNUIHwgIDQgfCB7X30gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisoOCByb3dzKQorCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIElOSVRJQUwgTW9kZSAoUnVudGlt ZSkKKy0tIFBsYWNlaG9sZGVyOiBJTklUSUFMIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQgKHN5bnRh eCBlcnJvcikuCistLSBLZXB0IGhlcmUgc28gdGVzdHMgY29udmVydCB0byBydW50aW1lIHRlc3Rz IHdoZW4gaW1wbGVtZW50ZWQuCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIElOSVRJQUwgbW9kZSAobm90IHlldCBzdXBw b3J0ZWQgLSBwcm9kdWNlcyBzeW50YXggZXJyb3IpCitXSVRIIHRlc3RfaW5pdGlhbF9tb2RlIEFT ICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydfJ10pLCAg LS0gVW5tYXRjaGVkCisgICAgICAgICgyLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZ WydBJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ18nXSksICAtLSBVbm1hdGNoZWQKKyAgICAgICAg KDUsIEFSUkFZWydBJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxh Z3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAg ICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfaW5pdGlhbF9t b2RlCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgQUZURVIg TUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORQorICAg ICAgICBBIEFTICdBJyA9IEFOWShmbGFncykKKyk7CitFUlJPUjogIHN5bnRheCBlcnJvciBhdCBv ciBuZWFyICJBRlRFUiIKK0xJTkUgMTg6ICAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9X CisgICAgICAgICAgICAgXgorLS0gRGVmYXVsdCBtb2RlIChpbmNsdWRlIGFsbCByb3dzKQorV0lU SCB0ZXN0X2RlZmF1bHRfbW9kZSBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAg ICAgICgxLCBBUlJBWVsnXyddKSwgIC0tIFVubWF0Y2hlZCwgYnV0IGluY2x1ZGVkCisgICAgICAg ICgyLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10pLAorICAgICAgICAoNCwg QVJSQVlbJ18nXSksICAtLSBVbm1hdGNoZWQsIGJ1dCBpbmNsdWRlZAorICAgICAgICAoNSwgQVJS QVlbJ0EnXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAg ICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3Rf dmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9kZWZhdWx0X21vZGUKK1dJ TkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBS T1cKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlko ZmxhZ3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0r LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7X30gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCisgIDIgfCB7QX0gICB8ICAgICAgICAgICAyIHwgICAgICAgICAzCisg IDMgfCB7QX0gICB8ICAgICAgICAgICAzIHwgICAgICAgICAzCisgIDQgfCB7X30gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCisgIDUgfCB7QX0gICB8ICAgICAgICAgICA1IHwgICAgICAgICA1 CisoNSByb3dzKQorCistLSBNb2RlIGRpZmZlcmVuY2UgdmVyaWZpY2F0aW9uIChJTklUSUFMIG5v dCB5ZXQgc3VwcG9ydGVkIC0gcHJvZHVjZXMgc3ludGF4IGVycm9yKQorV0lUSCB0ZXN0X21vZGVf ZGlmZiBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsn XyddKSwKKyAgICAgICAgKDIsIEFSUkFZWydBJ10pLAorICAgICAgICAoMywgQVJSQVlbJ18nXSkK KyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUICdJTklUSUFMJyBBUyBtb2RlLCBDT1VO VCgqKSBBUyByb3dfY291bnQKK0ZST00gKAorICAgIFNFTEVDVCBpZCBGUk9NIHRlc3RfbW9kZV9k aWZmCisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBPUkRFUiBCWSBpZAorICAgICAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgSU5J VElBTAorICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgICAgIFBBVFRF Uk4gKEEpCisgICAgICAgIERFRklORSBBIEFTICdBJyA9IEFOWShmbGFncykKKyAgICApCispIHN1 YgorVU5JT04gQUxMCitTRUxFQ1QgJ0RFRkFVTFQnIEFTIG1vZGUsIENPVU5UKCopIEFTIHJvd19j b3VudAorRlJPTSAoCisgICAgU0VMRUNUIGlkIEZST00gdGVzdF9tb2RlX2RpZmYKKyAgICBXSU5E T1cgdyBBUyAoCisgICAgICAgIE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBBRlRFUiBNQVRDSCBTS0lQ IFRPIE5FWFQgUk9XCisgICAgICAgIFBBVFRFUk4gKEEpCisgICAgICAgIERFRklORSBBIEFTICdB JyA9IEFOWShmbGFncykKKyAgICApCispIHN1YgorT1JERVIgQlkgbW9kZTsKK0VSUk9SOiAgc3lu dGF4IGVycm9yIGF0IG9yIG5lYXIgIkFGVEVSIgorTElORSAxNTogICAgICAgICBBRlRFUiBNQVRD SCBTS0lQIFRPIE5FWFQgUk9XCisgICAgICAgICAgICAgICAgIF4KKy0tID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gRnJhbWUg Qm91bmRhcnkgVmFyaWF0aW9ucworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBWZXJ5IGxpbWl0ZWQgZnJhbWUgKDEgRk9M TE9XSU5HKQorV0lUSCB0ZXN0X29uZV9mb2xsb3dpbmcgQVMgKAorICAgIFNFTEVDVCAqIEZST00g KFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQidd KSwgIC0tIFdpdGhpbiAxIEZPTExPV0lORworICAgICAgICAoMywgQVJSQVlbJ0EnXSksICAtLSBC ZXlvbmQgMSBGT0xMT1dJTkcgZnJvbSByb3cgMQorICAgICAgICAoNCwgQVJSQVlbJ0InXSkKKyAg ICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92 YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9W RVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9vbmVfZm9sbG93aW5nCitXSU5ET1cgdyBBUyAo CisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDEgRk9M TE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEEg QikKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBC IEFTICdCJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0 Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtB fSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgIDIKKyAgMiB8IHtCfSAgIHwgICAgICAgICAgICAg fCAgICAgICAgICAKKyAgMyB8IHtBfSAgIHwgICAgICAgICAgIDMgfCAgICAgICAgIDQKKyAgNCB8 IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyg0IHJvd3MpCisKKy0tIE1lZGl1bSBm cmFtZSAoMTAgRk9MTE9XSU5HKQorV0lUSCB0ZXN0X3Rlbl9mb2xsb3dpbmcgQVMgKAorICAgIFNF TEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgy LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10pLAorICAgICAgICAoNCwgQVJS QVlbJ0EnXSksCisgICAgICAgICg1LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDYsIEFSUkFZWydB J10pLAorICAgICAgICAoNywgQVJSQVlbJ0EnXSksCisgICAgICAgICg4LCBBUlJBWVsnQSddKSwK KyAgICAgICAgKDksIEFSUkFZWydBJ10pLAorICAgICAgICAoMTAsIEFSUkFZWydBJ10pLAorICAg ICAgICAoMTEsIEFSUkFZWydCJ10pLCAgLS0gV2l0aGluIDEwIEZPTExPV0lORyBmcm9tIHJvdyAx CisgICAgICAgICgxMiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgxMywgQVJSQVlbJ0InXSkgICAt LSBCZXlvbmQgMTAgRk9MTE9XSU5HIGZyb20gcm93IDEKKyAgICApIEFTIHQoaWQsIGZsYWdzKQor KQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1h dGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZS T00gdGVzdF90ZW5fZm9sbG93aW5nCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDEwIEZPTExPV0lORworICAgIEFGVEVSIE1B VENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORQorICAg ICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdz KQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0F9ICAgfCAgICAgICAgICAgMSB8 ICAgICAgICAxMQorICAyIHwge0F9ICAgfCAgICAgICAgICAgMiB8ICAgICAgICAxMQorICAzIHwg e0F9ICAgfCAgICAgICAgICAgMyB8ICAgICAgICAxMQorICA0IHwge0F9ICAgfCAgICAgICAgICAg NCB8ICAgICAgICAxMQorICA1IHwge0F9ICAgfCAgICAgICAgICAgNSB8ICAgICAgICAxMQorICA2 IHwge0F9ICAgfCAgICAgICAgICAgNiB8ICAgICAgICAxMQorICA3IHwge0F9ICAgfCAgICAgICAg ICAgNyB8ICAgICAgICAxMQorICA4IHwge0F9ICAgfCAgICAgICAgICAgOCB8ICAgICAgICAxMQor ICA5IHwge0F9ICAgfCAgICAgICAgICAgOSB8ICAgICAgICAxMQorIDEwIHwge0F9ICAgfCAgICAg ICAgICAxMCB8ICAgICAgICAxMQorIDExIHwge0J9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAg IAorIDEyIHwge0F9ICAgfCAgICAgICAgICAxMiB8ICAgICAgICAxMworIDEzIHwge0J9ICAgfCAg ICAgICAgICAgICB8ICAgICAgICAgIAorKDEzIHJvd3MpCisKKy0tIEV4YWN0IGJvdW5kYXJ5IG1h dGNoCitXSVRIIHRlc3RfZXhhY3RfYm91bmRhcnkgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZB TFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQSddKSwK KyAgICAgICAgKDMsIEFSUkFZWydBJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0EnXSksCisgICAg ICAgICg1LCBBUlJBWVsnQiddKSAgIC0tIEV4YWN0bHkgYXQgNCBGT0xMT1dJTkcgKGZyYW1lIGVu ZCkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBm aXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUo aWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9leGFjdF9ib3VuZGFyeQorV0lORE9X IHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCA0IEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRU RVJOIChBKyBCKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisg ICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3Rh cnQgfCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQor ICAxIHwge0F9ICAgfCAgICAgICAgICAgMSB8ICAgICAgICAgNQorICAyIHwge0F9ICAgfCAgICAg ICAgICAgMiB8ICAgICAgICAgNQorICAzIHwge0F9ICAgfCAgICAgICAgICAgMyB8ICAgICAgICAg NQorICA0IHwge0F9ICAgfCAgICAgICAgICAgNCB8ICAgICAgICAgNQorICA1IHwge0J9ICAgfCAg ICAgICAgICAgICB8ICAgICAgICAgIAorKDUgcm93cykKKworLS0gTiBGT0xMT1dJTkcgKyBTS0lQ IFRPIE5FWFQgUk9XOiBvdmVybGFwcGluZyBtYXRjaGVzIGJvdW5kZWQgYnkgZnJhbWUKKy0tIFJv dyAxOiBmcmFtZSBbMSw0XSwgQSgxLTMpIEIoNCkgLT4gbWF0Y2gKKy0tIFJvdyAyOiBmcmFtZSBb Miw1XSwgQSgyLTMpIEIoNCkgLT4gbWF0Y2gKKy0tIFJvdyAzOiBmcmFtZSBbMyw2XSwgQSgzKSBC KDQpIC0+IG1hdGNoCistLSBSb3cgNTogZnJhbWUgWzUsNl0sIEEoNSkgQig2KSAtPiBtYXRjaAor V0lUSCB0ZXN0X25fc2tpcF9uZXh0IEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAg ICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0EnXSksCisgICAgICAg ICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQsIEFSUkFZWydCJ10pLAorICAgICAgICAoNSwg QVJSQVlbJ0EnXSksCisgICAgICAgICg2LCBBUlJBWVsnQiddKQorICAgICkgQVMgdChpZCwgZmxh Z3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcg QVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2Vu ZAorRlJPTSB0ZXN0X25fc2tpcF9uZXh0CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDMgRk9MTE9XSU5HCisgICAgQUZURVIg TUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FCisg ICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxh Z3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QX0gICB8ICAgICAgICAgICAx IHwgICAgICAgICA0CisgIDIgfCB7QX0gICB8ICAgICAgICAgICAyIHwgICAgICAgICA0CisgIDMg fCB7QX0gICB8ICAgICAgICAgICAzIHwgICAgICAgICA0CisgIDQgfCB7Qn0gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCisgIDUgfCB7QX0gICB8ICAgICAgICAgICA1IHwgICAgICAgICA2Cisg IDYgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisoNiByb3dzKQorCistLSBGcmFt ZSBleGFjdGx5IDEgcm93IHNob3J0IG9mIHBvdGVudGlhbCBtYXRjaAorLS0gRnJvbSByb3cgMTog QSBBIEEgQiBuZWVkcyA0IHJvd3MgYnV0IGZyYW1lIGhvbGRzIDMgLT4gbm8gbWF0Y2gKKy0tIEZy b20gcm93IDI6IEEgQSBCIGZpdHMgaW4gMy1yb3cgZnJhbWUgLT4gbWF0Y2gKK1dJVEggdGVzdF9m cmFtZV9vbmVfc2hvcnQgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAo MSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFS UkFZWydBJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0InXSksCisgICAgICAgICg1LCBBUlJBWVsn QSddKSwKKyAgICAgICAgKDYsIEFSUkFZWydCJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykK K1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRj aF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9N IHRlc3RfZnJhbWVfb25lX3Nob3J0CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDIgRk9MTE9XSU5HCisgICAgQUZURVIgTUFU Q0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FCisgICAg ICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3Mp CispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QX0gICB8ICAgICAgICAgICAgIHwg ICAgICAgICAgCisgIDIgfCB7QX0gICB8ICAgICAgICAgICAyIHwgICAgICAgICA0CisgIDMgfCB7 QX0gICB8ICAgICAgICAgICAzIHwgICAgICAgICA0CisgIDQgfCB7Qn0gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisgIDUgfCB7QX0gICB8ICAgICAgICAgICA1IHwgICAgICAgICA2CisgIDYg fCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisoNiByb3dzKQorCistLSA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t IFNwZWNpYWwgUGFydGl0aW9uIENhc2VzCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEVtcHR5IHBhcnRpdGlvbiAoMCBy b3dzKQorV0lUSCB0ZXN0X2VtcHR5X3BhcnRpdGlvbiBBUyAoCisgICAgU0VMRUNUICogRlJPTSAo VkFMVUVTCisgICAgICAgICgxLCAxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIDIsIEFSUkFZ WydfJ10pICAtLSBEaWZmZXJlbnQgcGFydGl0aW9uCisgICAgKSBBUyB0KGlkLCBwYXJ0LCBmbGFn cykKKykKK1NFTEVDVCBpZCwgcGFydCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9W RVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0 Y2hfZW5kCitGUk9NIHRlc3RfZW1wdHlfcGFydGl0aW9uCitXSEVSRSBwYXJ0ID0gOTkgIC0tIE5v IHJvd3MgbWF0Y2gKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgcGFydAorICAgIE9S REVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKEEp CisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKQorKTsKKyBpZCB8IHBh cnQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0rLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisoMCByb3dzKQorCistLSBTaW5nbGUgcm93IHBh cnRpdGlvbgorV0lUSCB0ZXN0X3NpbmdsZV9yb3cgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZB TFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQor U0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNo X3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00g dGVzdF9zaW5nbGVfcm93CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBN QVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJTkUKKyAgICAg ICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8 IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEg fCB7QX0gICB8ICAgICAgICAgICAxIHwgICAgICAgICAxCisoMSByb3cpCisKKy0tIEFsbCByb3dz IGZhaWwgbWF0Y2hpbmcgKGFsbCBERUZJTkUgZmFsc2UpCitXSVRIIHRlc3RfYWxsX2ZhaWwgQVMg KAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisg ICAgICAgICgyLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10pCisgICAgKSBB UyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUo aWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcg QVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfYWxsX2ZhaWwKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRF UiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBKykK KyAgICBERUZJTkUKKyAgICAgICAgQSBBUyBmYWxzZSAgLS0gQWxsIHJvd3MgZmFpbAorKTsKKyBp ZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAg IAorICAyIHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICAzIHwge0F9ICAgfCAg ICAgICAgICAgICB8ICAgICAgICAgIAorKDMgcm93cykKKworLS0gUGFydGl0aW9uIGVuZCB3aXRo IGFic29yYmFibGUgcGF0dGVybgorLS0gU0tJUCBQQVNUIExBU1QgUk9XICsgdW5ib3VuZGVkIGZy YW1lICsgYWxsIHJvd3MgbWF0Y2ggQQorLS0gVHJpZ2dlcnMgYWJzb3JiIGluICFyb3dFeGlzdHMg cGF0aCBhdCBwYXJ0aXRpb24gYm91bmRhcnkuCitXSVRIIHRlc3RfYWJzb3JiX3BhcnRpdGlvbl9l bmQgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0En XSksCisgICAgICAgICgyLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10pLAor ICAgICAgICAoNCwgQVJSQVlbJ0EnXSksCisgICAgICAgICg1LCBBUlJBWVsnQSddKQorICAgICkg QVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVl KGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3 IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2Fic29yYl9wYXJ0aXRpb25fZW5kCitXSU5ET1cgdyBB UyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOIChBKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3Mp CispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QX0gICB8ICAgICAgICAgICAxIHwg ICAgICAgICA1CisgIDIgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDMgfCB7 QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDQgfCB7QX0gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisgIDUgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisoNSBy b3dzKQorCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tIERFRklORSBTcGVjaWFsIENhc2VzCistLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFVuZGVm aW5lZCB2YXJpYWJsZSBpbiBERUZJTkUKK1dJVEggdGVzdF91bmRlZmluZWRfdmFyIEFTICgKKyAg ICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAg ICAoMiwgQVJSQVlbJ1gnXSksICAtLSBCIG5vdCBkZWZpbmVkLCBkZWZhdWx0cyB0byBUUlVFCisg ICAgICAgICgzLCBBUlJBWVsnQyddKSwKKyAgICAgICAgKDQsIEFSUkFZWydBJ10pLAorICAgICAg ICAoNSwgQVJSQVlbJ18nXSksICAtLSBCIGRlZmF1bHRzIHRvIFRSVUUsIGJ1dCBubyBmbGFncwor ICAgICAgICAoNiwgQVJSQVlbJ0MnXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNU IGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0 LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF91 bmRlZmluZWRfdmFyCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRD SCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoQSBCIEMpCisgICAgREVGSU5FCisgICAg ICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgLS0gQiBpcyB1bmRlZmluZWQsIGRl ZmF1bHRzIHRvIFRSVUUKKyAgICAgICAgQyBBUyAnQycgPSBBTlkoZmxhZ3MpCispOworIGlkIHwg ZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QX0gICB8ICAgICAgICAgICAxIHwgICAgICAgICAzCisg IDIgfCB7WH0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDMgfCB7Q30gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCisgIDQgfCB7QX0gICB8ICAgICAgICAgICA0IHwgICAgICAgICA2 CisgIDUgfCB7X30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDYgfCB7Q30gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCisoNiByb3dzKQorCistLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEFic29ycHRpb24g RHluYW1pYyBGbGFncworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLSBQYXJ0aWFsIGFic29yYmFibGUgcGF0dGVybiAoKEEr KSBCKQorV0lUSCB0ZXN0X3BhcnRpYWxfYWJzb3JiYWJsZSBBUyAoCisgICAgU0VMRUNUICogRlJP TSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydB J10pLAorICAgICAgICAoMywgQVJSQVlbJ0EnXSksCisgICAgICAgICg0LCBBUlJBWVsnQiddKSwK KyAgICAgICAgKDUsIEFSUkFZWydfJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVD VCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFy dCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3Rf cGFydGlhbF9hYnNvcmJhYmxlCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoKEErKSBCKQorICAgIERFRklO RQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5Z KGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0t Ky0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0F9ICAgfCAgICAgICAg ICAgMSB8ICAgICAgICAgNAorICAyIHwge0F9ICAgfCAgICAgICAgICAgMiB8ICAgICAgICAgNAor ICAzIHwge0F9ICAgfCAgICAgICAgICAgMyB8ICAgICAgICAgNAorICA0IHwge0J9ICAgfCAgICAg ICAgICAgICB8ICAgICAgICAgIAorICA1IHwge199ICAgfCAgICAgICAgICAgICB8ICAgICAgICAg IAorKDUgcm93cykKKworLS0gRHluYW1pYyBmbGFnIHVwZGF0ZSAoKEErKSB8IEIpCitXSVRIIHRl c3RfZHluYW1pY19mbGFncyBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAg ICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydBJ10pLAorICAgICAgICAoMywg QVJSQVlbJ0EnXSksCisgICAgICAgICg0LCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDUsIEFSUkFZ WydBJ10pLAorICAgICAgICAoNiwgQVJSQVlbJ0InXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQor KQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1h dGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZS T00gdGVzdF9keW5hbWljX2ZsYWdzCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBB RlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoKEErKSB8IEIpCisgICAg REVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicg PSBBTlkoZmxhZ3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAK Ky0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QX0gICB8ICAg ICAgICAgICAxIHwgICAgICAgICAzCisgIDIgfCB7QX0gICB8ICAgICAgICAgICAyIHwgICAgICAg ICAzCisgIDMgfCB7QX0gICB8ICAgICAgICAgICAzIHwgICAgICAgICAzCisgIDQgfCB7Qn0gICB8 ICAgICAgICAgICA0IHwgICAgICAgICA0CisgIDUgfCB7QX0gICB8ICAgICAgICAgICA1IHwgICAg ICAgICA1CisgIDYgfCB7Qn0gICB8ICAgICAgICAgICA2IHwgICAgICAgICA2CisoNiByb3dzKQor CistLSBOb24tYWJzb3JiYWJsZSBjb250ZXh0IGR1cmluZyBhYnNvcnB0aW9uCistLSBQYXR0ZXJu IChBIEIpKyBDOiBBLEIgaW4gYWJzb3JiYWJsZSBncm91cCwgQyBpcyBub3QuCistLSBXaGVuIEVO RCBleGl0cyB0byBDIHZpYSBuZmFfc3RhdGVfY3JlYXRlLCBpc0Fic29yYmFibGUgYmVjb21lcyBm YWxzZS4KK1dJVEggdGVzdF9ub25fYWJzb3JiYWJsZSBBUyAoCisgICAgU0VMRUNUICogRlJPTSAo VkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydCJ10p LAorICAgICAgICAoMywgQVJSQVlbJ0EnXSksCisgICAgICAgICg0LCBBUlJBWVsnQiddKSwKKyAg ICAgICAgKDUsIEFSUkFZWydDJ10pLAorICAgICAgICAoNiwgQVJSQVlbJ18nXSkKKyAgICApIEFT IHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShp ZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBB UyBtYXRjaF9lbmQKK0ZST00gdGVzdF9ub25fYWJzb3JiYWJsZQorV0lORE9XIHcgQVMgKAorICAg IE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVS TiAoKEEgQikrIEMpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwK KyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAorICAgICAgICBDIEFTICdDJyA9IEFOWShm bGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSst LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAgIHwgICAgICAgICAg IDEgfCAgICAgICAgIDUKKyAgMiB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAg MyB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNCB8IHtCfSAgIHwgICAgICAg ICAgICAgfCAgICAgICAgICAKKyAgNSB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAK KyAgNiB8IHtffSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyg2IHJvd3MpCisKKy0tIEFi c29ycHRpb24gZmxhZ3MgZWFybHkgcmV0dXJuICghaGFzQWJzb3JiYWJsZVN0YXRlKQorLS0gUGF0 dGVybiAoQSBCKSsgQyBEIHdpdGggU0tJUCBQQVNUIExBU1QgUk9XCistLSBBZnRlciByZWFjaGlu ZyBDIChub24tYWJzb3JiYWJsZSksIGhhc0Fic29yYmFibGVTdGF0ZSBiZWNvbWVzIGZhbHNlLgor LS0gT24gbmV4dCByb3cgKEQpLCB0aGUgZWFybHkgcmV0dXJuIGZpcmVzLgorV0lUSCB0ZXN0X2Fi c29ycHRpb25fZWFybHlfcmV0dXJuIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAg ICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0InXSksCisgICAgICAg ICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQsIEFSUkFZWydCJ10pLAorICAgICAgICAoNSwg QVJSQVlbJ0MnXSksCisgICAgICAgICg2LCBBUlJBWVsnRCddKSwKKyAgICAgICAgKDcsIEFSUkFZ WydfJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAg ICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3Zh bHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfYWJzb3JwdGlvbl9lYXJseV9y ZXR1cm4KK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAg UEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIEIpKyBDIEQpCisgICAgREVGSU5FCisgICAg ICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3Mp LAorICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncyksCisgICAgICAgIEQgQVMgJ0QnID0gQU5Z KGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0t Ky0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0F9ICAgfCAgICAgICAg ICAgMSB8ICAgICAgICAgNgorICAyIHwge0J9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAor ICAzIHwge0F9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA0IHwge0J9ICAgfCAgICAg ICAgICAgICB8ICAgICAgICAgIAorICA1IHwge0N9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAg IAorICA2IHwge0R9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICA3IHwge199ICAgfCAg ICAgICAgICAgICB8ICAgICAgICAgIAorKDcgcm93cykKKworLS0gQ292ZXJhZ2UgZmFpbHVyZTog b2xkZXIgY2FuJ3QgY292ZXIgbmV3ZXIncyBzdGF0ZXMKKy0tIFBhdHRlcm4gQSsgfCBCKyB3aXRo IFNLSVAgUEFTVCBMQVNUIFJPVy4KKy0tIFJvdyAxOiBvbmx5IEEgLT4gQ3R4MSB0YWtlcyBBIGJy YW5jaCBvbmx5IChCIGZhaWxzKS4KKy0tIFJvdyAyOiBBIGFuZCBCIC0+IEN0eDIgdGFrZXMgYm90 aCBicmFuY2hlcy4KKy0tIEFic29ycHRpb246IEN0eDEgaGFzIEEgYnV0IG5vIEIgLT4gY2FuJ3Qg Y292ZXIgQ3R4MidzIEIgc3RhdGUgLT4gZmFpbHMuCitXSVRIIHRlc3RfY292ZXJhZ2VfZmFpbCBB UyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQScsICdf J10pLAorICAgICAgICAoMiwgQVJSQVlbJ0EnLCAnQiddKSwKKyAgICAgICAgKDMsIEFSUkFZWydB JywgJ18nXSksCisgICAgICAgICg0LCBBUlJBWVsnQScsICdfJ10pLAorICAgICAgICAoNSwgQVJS QVlbJ18nLCAnXyddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdz LAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAg bGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2NvdmVyYWdlX2Zh aWwKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFT VCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIHwgQispCisgICAgREVGSU5FCisgICAgICAgIEEg QVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOwor IGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QSxffSB8ICAgICAgICAgICAxIHwgICAgICAg ICA0CisgIDIgfCB7QSxCfSB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDMgfCB7QSxffSB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDQgfCB7QSxffSB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCisgIDUgfCB7XyxffSB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisoNSByb3dzKQor CistLSBBYnNvcmIgc2tpcHMgY29tcGxldGVkIGNvbnRleHQgKG9sZGVyLT5zdGF0ZXM9PU5VTEwp CistLSBQYXR0ZXJuIEErIHwgQisgd2l0aCBTS0lQIFBBU1QgTEFTVCBST1cuCistLSBSb3cgMTog QSBvbmx5IC0+IEN0eDEgdGFrZXMgQSBicmFuY2guIFJvdyAyOiBCIG9ubHkgLT4gQ3R4MSBBIGZh aWxzIChjb21wbGV0ZWQpLgorLS0gQ3R4MiB0YWtlcyBCIGJyYW5jaC4gQWJzb3JwdGlvbjogQ3R4 MSBzdGF0ZXM9PU5VTEwgLT4gc2tpcC4KK1dJVEggdGVzdF9vbGRlcl9jb21wbGV0ZWQgQVMgKAor ICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAg ICAgICgyLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDMsIEFSUkFZWydCJ10pLAorICAgICAgICAo NCwgQVJSQVlbJ18nXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFn cywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAg IGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9vbGRlcl9jb21w bGV0ZWQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAg UEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIHwgQispCisgICAgREVGSU5FCisgICAgICAg IEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCisp OworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QX0gICB8ICAgICAgICAgICAxIHwgICAg ICAgICAxCisgIDIgfCB7Qn0gICB8ICAgICAgICAgICAyIHwgICAgICAgICAzCisgIDMgfCB7Qn0g ICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDQgfCB7X30gICB8ICAgICAgICAgICAgIHwg ICAgICAgICAgCisoNCByb3dzKQorCistLSBBYnNvcmIgc2tpcHMgbm9uLWFic29yYmFibGUgY29u dGV4dCAoIWhhc0Fic29yYmFibGVTdGF0ZSkKKy0tIFBhdHRlcm4gQSsgfCBCIEMgd2l0aCBTS0lQ IFBBU1QgTEFTVCBST1cgKG9ubHkgQSsgYnJhbmNoIGFic29yYmFibGUpLgorLS0gUm93IDE6IEIg b25seSAtPiBDdHgxIHRha2VzIEIgYnJhbmNoIChub24tYWJzb3JiYWJsZSksIGFkdmFuY2VzIHRv IEMuCistLSBSb3cgMjogQyxBIC0+IEN0eDEgQyBtYXRjaGVzIChoYXNBYnNvcmJhYmxlU3RhdGU9 ZmFsc2UpLiBDdHgyIHRha2VzIEEgKGFic29yYmFibGUpLgorLS0gQWJzb3JwdGlvbjogQ3R4MSAh aGFzQWJzb3JiYWJsZVN0YXRlIC0+IHNraXAuCitXSVRIIHRlc3Rfb2xkZXJfbm9uX2Fic29yYmFi bGUgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0In LCAnXyddKSwKKyAgICAgICAgKDIsIEFSUkFZWydDJywgJ0EnXSksCisgICAgICAgICgzLCBBUlJB WVsnXycsICdBJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ18nLCAnXyddKQorICAgICkgQVMgdChp ZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBP VkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1h dGNoX2VuZAorRlJPTSB0ZXN0X29sZGVyX25vbl9hYnNvcmJhYmxlCitXSU5ET1cgdyBBUyAoCisg ICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRU RVJOIChBKyB8IEIgQykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3Mp LAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncyksCisgICAgICAgIEMgQVMgJ0MnID0gQU5Z KGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0t Ky0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0IsX30gfCAgICAgICAg ICAgMSB8ICAgICAgICAgMgorICAyIHwge0MsQX0gfCAgICAgICAgICAgICB8ICAgICAgICAgIAor ICAzIHwge18sQX0gfCAgICAgICAgICAgMyB8ICAgICAgICAgMworICA0IHwge18sX30gfCAgICAg ICAgICAgICB8ICAgICAgICAgIAorKDQgcm93cykKKworLS0gUmVsdWN0YW50IGJyYW5jaCBpbiBB TFQgbm90IGFic29yYmFibGU6IChBKz8pIHwgQgorLS0gQSs/IGlzIHJlbHVjdGFudCBzbyBub3Qg YWJzb3JiYWJsZS4gQ29tcGFyZSB3aXRoIGdyZWVkeSAoQSspIHwgQiBhYm92ZS4KK1dJVEggdGVz dF9yZWx1Y3RhbnRfYWx0X2Fic29ycHRpb24gQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVF UworICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQSddKSwKKyAg ICAgICAgKDMsIEFSUkFZWydBJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0InXSksCisgICAgICAg ICg1LCBBUlJBWVsnXyddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZs YWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAg ICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X3JlbHVjdGFu dF9hbHRfYWJzb3JwdGlvbgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIg TUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKChBKz8pIHwgQikKKyAgICBERUZJ TkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFO WShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0t LSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAgIHwgICAgICAg ICAgIDEgfCAgICAgICAgIDEKKyAgMiB8IHtBfSAgIHwgICAgICAgICAgIDIgfCAgICAgICAgIDIK KyAgMyB8IHtBfSAgIHwgICAgICAgICAgIDMgfCAgICAgICAgIDMKKyAgNCB8IHtCfSAgIHwgICAg ICAgICAgIDQgfCAgICAgICAgIDQKKyAgNSB8IHtffSAgIHwgICAgICAgICAgICAgfCAgICAgICAg ICAKKyg1IHJvd3MpCisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0gWmVyby1Db25zdW1wdGlvbiBDeWNsZSBEZXRlY3Rp b24KKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0gQ3ljbGUgcHJldmVudGlvbiBhdCBjb3VudCA+IDA6IChBKikqIGlubmVy IHNraXAgY3ljbGVzIGF0IGNvdW50PTMKK1dJVEggdGVzdF9jeWNsZV9ub256ZXJvIEFTICgKKyAg ICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAg ICAoMiwgQVJSQVlbJ0EnXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQs IEFSUkFZWydCJ10pICAtLSBJbm5lciBBKiBtYXRjaGVzIDAsIGN5Y2xlcyBhdCBjb3VudD0zCisg ICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3Rf dmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBP VkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfY3ljbGVfbm9uemVybworV0lORE9XIHcgQVMg KAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBB VFRFUk4gKChBKikqKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncykK Kyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAg ICAgICAgIDMKKyAgMiB8IHtBfSAgIHwgICAgICAgICAgIDIgfCAgICAgICAgIDMKKyAgMyB8IHtB fSAgIHwgICAgICAgICAgIDMgfCAgICAgICAgIDMKKyAgNCB8IHtCfSAgIHwgICAgICAgICAgICAg fCAgICAgICAgICAKKyg0IHJvd3MpCisKKy0tIEN5Y2xlIHdpdGggbWl4ZWQgbnVsbGFibGVzOiAo QSogQiopKiBtdWx0aXBsZSBudWxsYWJsZSBwYXRocworV0lUSCB0ZXN0X2N5Y2xlX21peGVkIEFT ICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAor ICAgICAgICAoMiwgQVJSQVlbJ0InXSksCisgICAgICAgICgzLCBBUlJBWVsnQSddKSwKKyAgICAg ICAgKDQsIEFSUkFZWydDJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwg ZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAg ICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfY3ljbGVf bWl4ZWQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAg VE8gTkVYVCBST1cKKyAgICBQQVRURVJOICgoQSogQiopKikKKyAgICBERUZJTkUKKyAgICAgICAg QSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7 CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAg ICAgIDMKKyAgMiB8IHtCfSAgIHwgICAgICAgICAgIDIgfCAgICAgICAgIDMKKyAgMyB8IHtBfSAg IHwgICAgICAgICAgIDMgfCAgICAgICAgIDMKKyAgNCB8IHtDfSAgIHwgICAgICAgICAgICAgfCAg ICAgICAgICAKKyg0IHJvd3MpCisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gU3RhbmRhcmQgQ2xhdXNlIDc6IEZvcm1h bCBQYXR0ZXJuIE1hdGNoaW5nIFJ1bGVzCistLSBJU08vSUVDIDE5MDc1LTU6MjAyMSwgQ2xhdXNl IDcKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCistLSA3LjIuMiBBbHRlcm5hdGlvbjogZmlyc3QgYWx0ZXJuYXRp dmUgaXMgcHJlZmVycmVkCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy0tIChBIHwgQik6IEEgcHJlZmVycmVkIG92ZXIgQiB3 aGVuIGJvdGggY291bGQgbWF0Y2gKKy0tIFJvdyAxIGhhcyBib3RoIEEgYW5kIEIgZmxhZ3M6IEEg c2hvdWxkIGJlIGNob3NlbiAoZmlyc3QgYWx0ZXJuYXRpdmUpCitXSVRIIHRlc3RfYWx0X3ByZWZl ciBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQScs J0InXSksCisgICAgICAgICgyLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDMsIEFSUkFZWydBJ10p CisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmly c3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlk KSBPVkVSIHcgQVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfYWx0X3ByZWZlcgorV0lORE9XIHcgQVMg KAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBB VFRFUk4gKChBIHwgQikpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdz KSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRj aF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tCisgIDEgfCB7QSxCfSB8ICAgICAgICAgICAxIHwgICAgICAgICAxCisgIDIgfCB7Qn0gICB8 ICAgICAgICAgICAyIHwgICAgICAgICAyCisgIDMgfCB7QX0gICB8ICAgICAgICAgICAzIHwgICAg ICAgICAzCisoMyByb3dzKQorCistLSAoQXsxLDJ9IHwgQnsyLDN9KTogYWxsIEEtbWF0Y2hlcyBi ZWZvcmUgYWxsIEItbWF0Y2hlcworLS0gU3RhbmRhcmQgZXhhbXBsZTogcHJlZmVybWVudCBvcmRl ciBpcyBBQSwgQSwgQkJCLCBCQgorLS0gUm93cyAxLTIgaGF2ZSBib3RoIEEgYW5kIEI6IGdyZWVk eSBBezEsMn0gc2hvdWxkIG1hdGNoIDEtMgorV0lUSCB0ZXN0X2FsdF9xdWFudGlmaWVkIEFTICgK KyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydBJywnQiddKSwK KyAgICAgICAgKDIsIEFSUkFZWydBJywnQiddKSwKKyAgICAgICAgKDMsIEFSUkFZWydCJ10pLAor ICAgICAgICAoNCwgQVJSQVlbJ0InXSksCisgICAgICAgICg1LCBBUlJBWVsnQiddKQorICAgICkg QVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVl KGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3 IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2FsdF9xdWFudGlmaWVkCitXSU5ET1cgdyBBUyAoCisg ICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVS TiAoKEF7MSwyfSB8IEJ7MiwzfSkpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5Z KGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOworIGlkIHwgZmxhZ3Mg fCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tCisgIDEgfCB7QSxCfSB8ICAgICAgICAgICAxIHwgICAgICAgICAyCisgIDIgfCB7 QSxCfSB8ICAgICAgICAgICAyIHwgICAgICAgICAyCisgIDMgfCB7Qn0gICB8ICAgICAgICAgICAz IHwgICAgICAgICA1CisgIDQgfCB7Qn0gICB8ICAgICAgICAgICA0IHwgICAgICAgICA1CisgIDUg fCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisoNSByb3dzKQorCistLSAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy0t IDcuMi4zIENvbmNhdGVuYXRpb246IGxleGljb2dyYXBoaWMgb3JkZXJpbmcKKy0tIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS0g KChBIHwgQikgKEMgfCBEKSk6IHByZWZlcm1lbnQgb3JkZXIgaXMgQUMsIEFELCBCQywgQkQKKy0t IFJvdyAxIG1hdGNoZXMgQSBhbmQgQiwgUm93IDIgbWF0Y2hlcyBDIGFuZCBECistLSBQcmVmZXJy ZWQgbWF0Y2g6IEEgdGhlbiBDIChmaXJzdCBhbHRlcm5hdGl2ZXMgaW4gYm90aCBwb3NpdGlvbnMp CitXSVRIIHRlc3RfY29uY2F0X2xleCBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisg ICAgICAgICgxLCBBUlJBWVsnQScsJ0InXSksCisgICAgICAgICgyLCBBUlJBWVsnQycsJ0QnXSkK KyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJz dF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQp IE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9jb25jYXRfbGV4CitXSU5ET1cgdyBBUyAo CisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQ QVRURVJOICgoQSB8IEIpIChDIHwgRCkpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0g QU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAorICAgICAgICBDIEFT ICdDJyA9IEFOWShmbGFncyksCisgICAgICAgIEQgQVMgJ0QnID0gQU5ZKGZsYWdzKQorKTsKKyBp ZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0EsQn0gfCAgICAgICAgICAgMSB8ICAgICAgICAg MgorICAyIHwge0MsRH0gfCAgICAgICAgICAgICB8ICAgICAgICAgIAorKDIgcm93cykKKworLS0g KChBIHwgQikgQyk6IGZpcnN0IGFsdCAoQSkgZmFpbHMsIHNlY29uZCBhbHQgKEIpIHN1Y2NlZWRz CistLSBUZXN0cyBiYWNrdHJhY2tpbmc6IHJvdyAxIGhhcyBvbmx5IEIsIHJvdyAyIGhhcyBDCitX SVRIIHRlc3RfY29uY2F0X2JhY2t0cmFjayBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVT CisgICAgICAgICgxLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDIsIEFSUkFZWydDJ10pLAorICAg ICAgICAoMywgQVJSQVlbJ0EnXSksCisgICAgICAgICg0LCBBUlJBWVsnQyddKQorICAgICkgQVMg dChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlk KSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFT IG1hdGNoX2VuZAorRlJPTSB0ZXN0X2NvbmNhdF9iYWNrdHJhY2sKK1dJTkRPVyB3IEFTICgKKyAg ICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJO ICgoQSB8IEIpIEMpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwK KyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAorICAgICAgICBDIEFTICdDJyA9IEFOWShm bGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSst LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtCfSAgIHwgICAgICAgICAg IDEgfCAgICAgICAgIDIKKyAgMiB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAg MyB8IHtBfSAgIHwgICAgICAgICAgIDMgfCAgICAgICAgIDQKKyAgNCB8IHtDfSAgIHwgICAgICAg ICAgICAgfCAgICAgICAgICAKKyg0IHJvd3MpCisKKy0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS0gNy4yLjQgUXVhbnRpZmlj YXRpb246IGdyZWVkeS9yZWx1Y3RhbnQsIGxleGljb2dyYXBoaWMgPiBsZW5ndGgKKy0tIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor LS0gVnsyLDR9IGdyZWVkeTogbG9uZ2VyIG1hdGNoIHByZWZlcnJlZAorV0lUSCB0ZXN0X3F1YW50 X2dyZWVkeSBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJB WVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydBJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0En XSksCisgICAgICAgICg0LCBBUlJBWVsnQiddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitT RUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hf c3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0 ZXN0X3F1YW50X2dyZWVkeQorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQXsyLDR9KQorICAgIERFRklO RQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNo X3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgIDMKKyAgMiB8IHtBfSAgIHwg ICAgICAgICAgICAgfCAgICAgICAgICAKKyAgMyB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAg ICAgICAKKyAgNCB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyg0IHJvd3MpCisK Ky0tIFZ7Miw0fT8gcmVsdWN0YW50OiBzaG9ydGVyIG1hdGNoIHByZWZlcnJlZAorV0lUSCB0ZXN0 X3F1YW50X3JlbHVjdGFudCBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAg ICgxLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDIsIEFSUkFZWydBJ10pLAorICAgICAgICAoMywg QVJSQVlbJ0EnXSksCisgICAgICAgICg0LCBBUlJBWVsnQiddKQorICAgICkgQVMgdChpZCwgZmxh Z3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcg QVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2Vu ZAorRlJPTSB0ZXN0X3F1YW50X3JlbHVjdGFudAorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZ IGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQXsyLDR9 PykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpCispOworIGlkIHwg ZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QX0gICB8ICAgICAgICAgICAxIHwgICAgICAgICAyCisg IDIgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDMgfCB7QX0gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCisgIDQgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAg CisoNCByb3dzKQorCistLSAoKEF8Qil7MSwyfSkgZ3JlZWR5OiBsZXhpY29ncmFwaGljID4gbGVu Z3RoCistLSBTdGFuZGFyZCBleGFtcGxlOiBwcmVmZXJtZW50IEFBLCBBQiwgQSwgQkEsIEJCLCBC CistLSBTaW5nbGUgQSBwcmVmZXJyZWQgb3ZlciBCLXN0YXJ0aW5nIGxvbmdlciBtYXRjaAorV0lU SCB0ZXN0X3F1YW50X2xleF9ncmVlZHkgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwor ICAgICAgICAoMSwgQVJSQVlbJ0EnLCdCJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0InXSkKKyAg ICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92 YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9W RVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9xdWFudF9sZXhfZ3JlZWR5CitXSU5ET1cgdyBB UyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOICgoKEEgfCBCKXsxLDJ9KSkKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScg PSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBm bGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBLEJ9IHwgICAgICAgICAgIDEgfCAgICAgICAgIDIKKyAg MiB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKygyIHJvd3MpCisKKy0tICgoQXxC KXsxLDJ9PykgcmVsdWN0YW50OiBsZXhpY29ncmFwaGljID4gbGVuZ3RoCistLSBTdGFuZGFyZCBl eGFtcGxlOiBwcmVmZXJtZW50IEEsIEFBLCBBQiwgQiwgQkEsIEJCCistLSBTaW5nbGUgQSBwcmVm ZXJyZWQgb3ZlciBhbnkgQi1zdGFydGluZyBtYXRjaAorV0lUSCB0ZXN0X3F1YW50X2xleF9yZWx1 Y3RhbnQgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlb J0EnLCdCJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0InXSkKKyAgICApIEFTIHQoaWQsIGZsYWdz KQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFT IG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQK K0ZST00gdGVzdF9xdWFudF9sZXhfcmVsdWN0YW50CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIg QlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoKEEg fCBCKXsxLDJ9PykpCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwK KyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9z dGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t CisgIDEgfCB7QSxCfSB8ICAgICAgICAgICAxIHwgICAgICAgICAxCisgIDIgfCB7Qn0gICB8ICAg ICAgICAgICAyIHwgICAgICAgICAyCisoMiByb3dzKQorCistLSAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy0tIDcuMi42IEFuY2hv cnMgKG5vdCB5ZXQgaW1wbGVtZW50ZWQgLSBzeW50YXggZXJyb3IgZXhwZWN0ZWQpCistLSAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K Ky0tIF4gYW5jaG9yOiBub3QgeWV0IHN1cHBvcnRlZAorU0VMRUNUIGNvdW50KCopIE9WRVIgdyBG Uk9NIChTRUxFQ1QgMSBBUyB2KSB0CitXSU5ET1cgdyBBUyAoT1JERVIgQlkgdiBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOICheIEEp IERFRklORSBBIEFTIFRSVUUpOworRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiXiIK K0xJTkUgMzogICAgIFBBVFRFUk4gKF4gQSkgREVGSU5FIEEgQVMgVFJVRSk7CisgICAgICAgICAg ICAgICAgICAgICBeCistLSAkIGFuY2hvcjogbm90IHlldCBzdXBwb3J0ZWQKK1NFTEVDVCBjb3Vu dCgqKSBPVkVSIHcgRlJPTSAoU0VMRUNUIDEgQVMgdikgdAorV0lORE9XIHcgQVMgKE9SREVSIEJZ IHYgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg UEFUVEVSTiAoQSAkKSBERUZJTkUgQSBBUyBUUlVFKTsKK0VSUk9SOiAgc3ludGF4IGVycm9yIGF0 IG9yIG5lYXIgIiQiCitMSU5FIDM6ICAgICBQQVRURVJOIChBICQpIERFRklORSBBIEFTIFRSVUUp OworICAgICAgICAgICAgICAgICAgICAgICBeCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy0tIDcuMi44IEluZmluaXRlIHJl cGV0aXRpb25zIG9mIGVtcHR5IG1hdGNoZXMKKy0tIChQZXJsIGxvd2VyLWJvdW5kIHN0b3BwaW5n IHJ1bGUpCistLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKy0tIFN0YW5kYXJkIGV4YW1wbGVzIGZyb20gNy4yLjg6CistLSAgIChB Pyl7MCwzfTogYWxsb3dlZCBzdHJpbmdzIGluY2x1ZGUgU1RSMDA9KCksIFNUUjAxPShBKSwgU1RS MDI9KGVtcHR5KSwKKy0tICAgICAgICAgICAgICBTVFIwMz0oQUEpLCBTVFIwND0oQSxlbXB0eSks IFNUUjA3PShBQUEpLCBTVFIwOD0oQUEsZW1wdHkpCistLSAgIChBPyl7MSwzfTogc2FtZSBhcyB7 MCwzfSBidXQgU1RSMDAgZXhjbHVkZWQgKG1pbj0xIG5vdCBtZXQpCistLSAgIChBPyl7MiwzfTog U1RSMDMtMDYgKGxlbiAyKSBhbmQgU1RSMDcsMDgsMTEsMTIgKGxlbiAzKSBhcmUgdmFsaWQKKy0t ICAgICAgICAgICAgICBTVFIwNj0oU1RSRSxTVFJFKSBJUyB2YWxpZCBiZWNhdXNlIG5vbi1maW5h bCBTVFJFIGF0CistLSAgICAgICAgICAgICAgcG9zaXRpb24gMSBmaWxscyB0aGUgbG93ZXIgYm91 bmQKKy0tIChBPz8pKkI6IFN0YW5kYXJkIDcuMi44IGludHJvZHVjdG9yeSBleGFtcGxlCistLSAi bWF0Y2hlZCBhZ2FpbnN0IGEgc2VxdWVuY2Ugb2Ygcm93cyBmb3Igd2hpY2ggdGhlIG9ubHkgZmVh c2libGUKKy0tICBtYXRjaGluZyBpczogQiIKKy0tIEE/PyBpcyByZWx1Y3RhbnQsIHByZWZlcnMg ZW1wdHkuICogaXMgZ3JlZWR5IGJ1dCBQZXJsIHJ1bGUgc3RvcHMKKy0tIGFmdGVyIGVtcHR5IG1h dGNoIHdpdGggbWluKD0wKSBzYXRpc2ZpZWQuCistLSBFeHBlY3RlZDogZWFjaCBCIHJvdyBtYXRj aGVzIGFsb25lIChBPz8gZW1wdHksICogc3RvcHMsIEIgbWF0Y2hlcykKK1dJVEggdGVzdF9lbXB0 eV9yZWx1Y3RhbnRfc3RhciBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAg ICgxLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDIsIEFSUkFZWydCJ10pLAorICAgICAgICAoMywg QVJSQVlbJ0MnXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywK KyAgICAgICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxh c3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9lbXB0eV9yZWx1Y3Rh bnRfc3RhcgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJ UCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKChBPz8pKiBCKQorICAgIERFRklORQorICAgICAg ICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQor KTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0J9ICAgfCAgICAgICAgICAgMSB8ICAg ICAgICAgMQorICAyIHwge0J9ICAgfCAgICAgICAgICAgMiB8ICAgICAgICAgMgorICAzIHwge0N9 ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorKDMgcm93cykKKworLS0gKEE/KXswLDN9OiBt aW49MCwgbnVsbGFibGUgaW5uZXIuCistLSBBIG5ldmVyIG1hdGNoZXMuIEE/IG1hdGNoZXMgZW1w dHksIG1pbj0wIHNhdGlzZmllZCBpbW1lZGlhdGVseS4KKy0tIFBlciBzdGFuZGFyZDogZW1wdHkg bWF0Y2ggZXhwZWN0ZWQgZm9yIGV2ZXJ5IHJvdy4KKy0tIFhYWDogdmlzaXRlZCBiaXRtYXAgYmxv Y2tzIGVtcHR5IGl0ZXJhdGlvbiAtPiBubyBtYXRjaCAoc2FtZSBhcyB7MiwzfSkKK1dJVEggdGVz dF83MjhfbWluMCBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBB UlJBWVsnQiddKSwKKyAgICAgICAgKDIsIEFSUkFZWydCJ10pLAorICAgICAgICAoMywgQVJSQVlb J0InXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAg ICBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFs dWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF83MjhfbWluMAorV0lORE9XIHcg QVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAg IFBBVFRFUk4gKChBPyl7MCwzfSkKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlko ZmxhZ3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0r LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7Qn0gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCisgIDIgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisg IDMgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisoMyByb3dzKQorCistLSAoQT8p ezEsM306IG1pbj0xLCBudWxsYWJsZSBpbm5lci4KKy0tIEEgbmV2ZXIgbWF0Y2hlcy4gTmVlZCAx IGVtcHR5IGl0ZXJhdGlvbiB0byBzYXRpc2Z5IG1pbj0xLgorLS0gUGVyIHN0YW5kYXJkOiBlbXB0 eSBtYXRjaCBleHBlY3RlZCBmb3IgZXZlcnkgcm93LgorLS0gWFhYOiB2aXNpdGVkIGJpdG1hcCBi bG9ja3MgZW1wdHkgaXRlcmF0aW9uIC0+IG5vIG1hdGNoIChzYW1lIGFzIHsyLDN9KQorV0lUSCB0 ZXN0XzcyOF9taW4xIEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEs IEFSUkFZWydCJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0InXSksCisgICAgICAgICgzLCBBUlJB WVsnQiddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAg ICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92 YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0XzcyOF9taW4xCitXSU5ET1cg dyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisg ICAgUEFUVEVSTiAoKEE/KXsxLDN9KQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFO WShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0t LSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtCfSAgIHwgICAgICAg ICAgICAgfCAgICAgICAgICAKKyAgMiB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAK KyAgMyB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKygzIHJvd3MpCisKKy0tIChB Pyl7MiwzfTogbWluPTIsIG51bGxhYmxlIGlubmVyLgorLS0gQSBuZXZlciBtYXRjaGVzLiBOZWVk IDIgZW1wdHkgaXRlcmF0aW9ucyB0byBzYXRpc2Z5IG1pbj0yLgorLS0gUGVyIHN0YW5kYXJkOiBT VFIwNj0oU1RSRSBTVFJFKSBpcyB2YWxpZCBmb3IgbWluPTIuCistLSBFeHBlY3RlZDogZW1wdHkg bWF0Y2ggZm9yIGV2ZXJ5IHJvdworLS0gWFhYOiB2aXNpdGVkIGJpdG1hcCBibG9ja3Mgc2Vjb25k IGVtcHR5IGl0ZXJhdGlvbiAtPiBtYXRjaCBmYWlsdXJlCitXSVRIIHRlc3RfNzI4X21pbjIgQVMg KAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgQVJSQVlbJ0InXSksCisg ICAgICAgICgyLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDMsIEFSUkFZWydCJ10pCisgICAgKSBB UyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUo aWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcg QVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfNzI4X21pbjIKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRF UiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOICgoQT8p ezIsM30pCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKQorKTsKKyBp ZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwge0J9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAg IAorICAyIHwge0J9ICAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICAzIHwge0J9ICAgfCAg ICAgICAgICAgICB8ICAgICAgICAgIAorKDMgcm93cykKKworLS0gKEE/KXsyLDN9IG1peGVkOiBz b21lIHJvd3MgbWF0Y2ggQSwgc29tZSBkb24ndAorLS0gUm93cyAxLTI6IEEgbWF0Y2hlcywgZ3Jl ZWR5IHRha2VzIDIgLT4gbWluIHNhdGlzZmllZAorLS0gUm93IDM6IEEgZG9lc24ndCBtYXRjaCwg bmVlZHMgMiBlbXB0eSBpdGVyYXRpb25zIGZvciBtaW49MgorLS0gWFhYOiBSb3cgMyBmYWlscyBk dWUgdG8gdmlzaXRlZCBiaXRtYXAgKHNhbWUgYXMgcHVyZSBlbXB0eSB7MiwzfSkKKy0tIFJvdyA0 OiBBIG1hdGNoZXMgMSByZWFsIGl0ZXIgKyAxIGZmIGVtcHR5IGV4aXQgLT4gbWF0Y2ggNC00CitX SVRIIHRlc3RfNzI4X21pbjJfbWl4ZWQgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUwor ICAgICAgICAoMSwgQVJSQVlbJ0EnXSksCisgICAgICAgICgyLCBBUlJBWVsnQSddKSwKKyAgICAg ICAgKDMsIEFSUkFZWydCJ10pLAorICAgICAgICAoNCwgQVJSQVlbJ0EnXSkKKyAgICApIEFTIHQo aWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywKKyAgICAgICBmaXJzdF92YWx1ZShpZCkg T1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LAorICAgICAgIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBt YXRjaF9lbmQKK0ZST00gdGVzdF83MjhfbWluMl9taXhlZAorV0lORE9XIHcgQVMgKAorICAgIE9S REVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4gKChB Pyl7MiwzfSkKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpCispOwor IGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7QX0gICB8ICAgICAgICAgICAxIHwgICAgICAg ICAyCisgIDIgfCB7QX0gICB8ICAgICAgICAgICAyIHwgICAgICAgICAyCisgIDMgfCB7Qn0gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDQgfCB7QX0gICB8ICAgICAgICAgICA0IHwgICAg ICAgICA0CisoNCByb3dzKQorCistLSAoQT8gQj8pezIsM306IG11bHRpLWVsZW1lbnQgbnVsbGFi bGUgYm9keSB3aXRoIHJlYWwgbWF0Y2hlcworLS0gQm9keSBBPyBCPyBpcyBudWxsYWJsZSAoYm90 aCBvcHRpb25hbCksIGJ1dCBBIGFuZCBCIERPIG1hdGNoIHJvd3MuCistLSBSZWFsIChub24tZW1w dHkpIGl0ZXJhdGlvbnMgbG9vcCBiYWNrIG5vcm1hbGx5OyBmYXN0LWZvcndhcmQgb25seQorLS0g ZmlyZXMgYXMgYSBwYXJhbGxlbCBleGl0IHBhdGggKEVYSVQgT05MWSwgbm8gZ3JlZWR5L3JlbHVj dGFudCBsb29wKS4KKy0tIERhdGE6IGFsdGVybmF0aW5nIEEsIEIgcm93cyAoNiByb3dzKQorLS0g R3JlZWR5OiBlYWNoIHJvdyBnZXRzIHRoZSBsb25nZXN0IG1hdGNoIGZyb20gaXRzIHN0YXJ0aW5n IHBvc2l0aW9uLgorLS0gUm93IDE6IDMgaXRlcnMgKEFAMSxCQDIpKEFAMyxCQDQpKEFANSxCQDYp IC0+IDEtNgorLS0gUm93IDU6IDEgcmVhbCBpdGVyICsgMSBmZiBlbXB0eSBleGl0IC0+IDUtNgor V0lUSCB0ZXN0XzcyOF9tdWx0aV9ib2R5IEFTICgKKyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMK KyAgICAgICAgKDEsIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgQVJSQVlbJ0InXSksCisgICAg ICAgICgzLCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDQsIEFSUkFZWydCJ10pLAorICAgICAgICAo NSwgQVJSQVlbJ0EnXSksCisgICAgICAgICg2LCBBUlJBWVsnQiddKQorICAgICkgQVMgdChpZCwg ZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlkKSBPVkVS IHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNo X2VuZAorRlJPTSB0ZXN0XzcyOF9tdWx0aV9ib2R5CitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIg QlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVSTiAoKEE/IEI/ KXsyLDN9KQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAg ICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0Y2hfc3RhcnQg fCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAx IHwge0F9ICAgfCAgICAgICAgICAgMSB8ICAgICAgICAgNgorICAyIHwge0J9ICAgfCAgICAgICAg ICAgMiB8ICAgICAgICAgNgorICAzIHwge0F9ICAgfCAgICAgICAgICAgMyB8ICAgICAgICAgNgor ICA0IHwge0J9ICAgfCAgICAgICAgICAgNCB8ICAgICAgICAgNgorICA1IHwge0F9ICAgfCAgICAg ICAgICAgNSB8ICAgICAgICAgNgorICA2IHwge0J9ICAgfCAgICAgICAgICAgNiB8ICAgICAgICAg NgorKDYgcm93cykKKworLS0gKEE/IEI/KXsyLDN9OiBwdXJlIGVtcHR5IGJvZHkgKG5vdGhpbmcg bWF0Y2hlcykKKy0tIFhYWDogQWxsIE5VTEw6IHNhbWUgaXNzdWUgYXMgdGVzdF83MjhfbWluMiAo ZW1wdHkgbWF0Y2ggYXQgY29udGV4dAorLS0gc3RhcnQgeWllbGRzIFVOTUFUQ0hFRCB2aWEgc3Rh cnRQb3MtMSBpbml0aWFsIGFkdmFuY2UpCitXSVRIIHRlc3RfNzI4X211bHRpX2VtcHR5IEFTICgK KyAgICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsIEFSUkFZWydDJ10pLAorICAg ICAgICAoMiwgQVJSQVlbJ0MnXSksCisgICAgICAgICgzLCBBUlJBWVsnQyddKQorICAgICkgQVMg dChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLAorICAgICAgIGZpcnN0X3ZhbHVlKGlk KSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsCisgICAgICAgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFT IG1hdGNoX2VuZAorRlJPTSB0ZXN0XzcyOF9tdWx0aV9lbXB0eQorV0lORE9XIHcgQVMgKAorICAg IE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJPVworICAgIFBBVFRFUk4g KChBPyBCPyl7MiwzfSkKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3Mp LAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNo X3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyAgMSB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgMiB8IHtDfSAgIHwg ICAgICAgICAgICAgfCAgICAgICAgICAKKyAgMyB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAg ICAgICAKKygzIHJvd3MpCisKKy0tIChBPyBCPyl7MiwzfTogbWl4ZWQgcmVhbCBhbmQgZW1wdHkg aXRlcmF0aW9ucworLS0gUm93IDE6IGl0ZXIxIHJlYWwgKEFAMSxCQDIpLCBpdGVyMiBhdCByb3cg MyBlbXB0eSAtPiBmZiBleGl0LCBtYXRjaCAxLTIKKy0tIFJvdyAzOiBDIGRvZXNuJ3QgbWF0Y2gg QSBvciBCIC0+IE5VTEwKKy0tIFJvdyA0OiBpdGVyMSByZWFsIChBQDQsQkA1KSwgaXRlcjIgYXQg ZW5kIGVtcHR5IC0+IGZmIGV4aXQsIG1hdGNoIDQtNQorV0lUSCB0ZXN0XzcyOF9tdWx0aV9taXhl ZCBBUyAoCisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCBBUlJBWVsnQSdd KSwKKyAgICAgICAgKDIsIEFSUkFZWydCJ10pLAorICAgICAgICAoMywgQVJSQVlbJ0MnXSksCisg ICAgICAgICg0LCBBUlJBWVsnQSddKSwKKyAgICAgICAgKDUsIEFSUkFZWydCJ10pCisgICAgKSBB UyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsCisgICAgICAgZmlyc3RfdmFsdWUo aWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcg QVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfNzI4X211bHRpX21peGVkCitXSU5ET1cgdyBBUyAoCisg ICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5FWFQgUk9XCisgICAgUEFUVEVS TiAoKEE/IEI/KXsyLDN9KQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFn cyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKQorKTsKKyBpZCB8IGZsYWdzIHwgbWF0 Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLQorICAxIHwge0F9ICAgfCAgICAgICAgICAgMSB8ICAgICAgICAgMgorICAyIHwge0J9ICAg fCAgICAgICAgICAgMiB8ICAgICAgICAgMgorICAzIHwge0N9ICAgfCAgICAgICAgICAgICB8ICAg ICAgICAgIAorICA0IHwge0F9ICAgfCAgICAgICAgICAgNCB8ICAgICAgICAgNQorICA1IHwge0J9 ICAgfCAgICAgICAgICAgNSB8ICAgICAgICAgNQorKDUgcm93cykKKworLS0gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCistLSA3LjMg UGF0dGVybiBtYXRjaGluZyBpbiB0aGVvcnkgYW5kIHByYWN0aWNlCistLSAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy0tIFN0YW5k YXJkJ3Mgd29ya2VkIGV4YW1wbGU6IEE/IEIrIHdpdGggc3BlY2lmaWMgZGF0YQorLS0gUHJlZmVy bWVudCBvcmRlcjogKEEpKEJCQiksIChBKShCQiksIChBKShCKSwgKCkoQkJCKSwgKCkoQkIpLCAo KShCKQorLS0gUm93IDE6IEEgY29uZGl0aW9uIChwcmljZT4xMDApIGlzIGZhbHNlIC0+IEEgZmFp bHMKKy0tIEJhY2t0cmFjazogZW1wdHkgQT8sIHRoZW4gQisgZnJvbSByb3cgMQorLS0gRXhwZWN0 ZWQ6IHJvd3MgMS0zIG1hdGNoIGFzIEIgKEE/IHRha2VzIGVtcHR5IG1hdGNoKQorV0lUSCB0ZXN0 XzczX2V4YW1wbGUgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwg NjApLAorICAgICAgICAoMiwgNzApLAorICAgICAgICAoMywgNDApCisgICAgKSBBUyB0KGlkLCBw cmljZSkKKykKK1NFTEVDVCBpZCwgcHJpY2UsCisgICAgICAgZmlyc3RfdmFsdWUoaWQpIE9WRVIg dyBBUyBtYXRjaF9zdGFydCwKKyAgICAgICBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hf ZW5kCitGUk9NIHRlc3RfNzNfZXhhbXBsZQorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlk CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQT8gQispCisg ICAgREVGSU5FCisgICAgICAgIEEgQVMgcHJpY2UgPiAxMDAsCisgICAgICAgIEIgQVMgVFJVRQor KTsKKyBpZCB8IHByaWNlIHwgbWF0Y2hfc3RhcnQgfCBtYXRjaF9lbmQgCistLS0tKy0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorICAxIHwgICAgNjAgfCAgICAgICAgICAgMSB8ICAg ICAgICAgMworICAyIHwgICAgNzAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorICAzIHwgICAg NDAgfCAgICAgICAgICAgICB8ICAgICAgICAgIAorKDMgcm93cykKKwotLSAKMi40My4wCgo= ----Next_Part(Sat_May__2_14_03_04_2026_790)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v47-0009-Row-pattern-recognition-patch-typedefs.list.patch" RnJvbSAyMTVhYmI4NTM1NDQxMDczYmMxMDc5NTAwMjBmY2YyZTg3YzMxNzYyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYXRzdW8gSXNoaWkgPGlzaGlpQHBvc3RncmVzcWwub3JnPgpE YXRlOiBTYXQsIDIgTWF5IDIwMjYgMTM6NDA6MjkgKzA5MDAKU3ViamVjdDogW1BBVENIIHY0NyA5 LzldIFJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIHBhdGNoICh0eXBlZGVmcy5saXN0KS4KCi0tLQog c3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgfCAyMSArKysrKysrKysrKysrKysrKysr KysKIDEgZmlsZSBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL3Rv b2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMu bGlzdAppbmRleCAwYWJkYjJkMzdlMi4uNGI4MjI1Y2JmM2EgMTAwNjQ0Ci0tLSBhL3NyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVm cy5saXN0CkBAIC03NjEsNiArNzYxLDggQEAgRXJyb3JEYXRhCiBFcnJvclNhdmVDb250ZXh0CiBF c3RpbWF0ZURTTUZvcmVpZ25TY2FuX2Z1bmN0aW9uCiBFc3RpbWF0aW9uSW5mbworRXZhbE5hdkZp cnN0Q29udGV4dAorRXZhbE5hdk1heENvbnRleHQKIEV2ZW50VHJpZ2dlckNhY2hlRW50cnkKIEV2 ZW50VHJpZ2dlckNhY2hlSXRlbQogRXZlbnRUcmlnZ2VyQ2FjaGVTdGF0ZVR5cGUKQEAgLTE4MjAs NiArMTgyMiw4IEBAIE5hbWVkTFdMb2NrVHJhbmNoZVJlcXVlc3QKIE5hbWVkVHVwbGVzdG9yZVNj YW4KIE5hbWVkVHVwbGVzdG9yZVNjYW5TdGF0ZQogTmFtZXNwYWNlSW5mbworTmF2Q2hlY2tSZXN1 bHQKK05hdk9mZnNldENvbnRleHQKIE5lc3RMb29wCiBOZXN0TG9vcFBhcmFtCiBOZXN0TG9vcFN0 YXRlCkBAIC0xODI5LDYgKzE4MzMsNyBAQCBOZXdDb25zdHJhaW50CiBOZXh0U2FtcGxlQmxvY2tf ZnVuY3Rpb24KIE5leHRTYW1wbGVUdXBsZV9mdW5jdGlvbgogTmV4dFZhbHVlRXhwcgorTkZBTGVu Z3RoU3RhdHMKIE5vZGUKIE5vZGVJbnN0cnVtZW50YXRpb24KIE5vZGVUYWcKQEAgLTI0OTksNiAr MjUwNCw5IEBAIFF1ZXJ5U291cmNlCiBRdWV1ZUJhY2tlbmRTdGF0dXMKIFF1ZXVlUG9zaXRpb24K IFF1aXRTaWduYWxSZWFzb24KK1JQUk5hdkV4cHIKK1JQUk5hdktpbmQKK1JQUk5hdk9mZnNldEtp bmQKIFJCVE5vZGUKIFJCVE9yZGVyQ29udHJvbAogUkJUcmVlCkBAIC0yNTExLDYgKzI1MTksMTkg QEAgUklfQ29uc3RyYWludEluZm8KIFJJX0Zhc3RQYXRoRW50cnkKIFJJX1F1ZXJ5SGFzaEVudHJ5 CiBSSV9RdWVyeUtleQorUlBDb21tb25TeW50YXgKK1JQUkRlcHRoCitSUFJFbGVtRmxhZ3MKK1JQ UkVsZW1JZHgKK1JQUk5GQUNvbnRleHQKK1JQUk5GQVN0YXRlCitSUFJQYXR0ZXJuCitSUFJQYXR0 ZXJuRWxlbWVudAorUlBSUGF0dGVybk5vZGUKK1JQUlBhdHRlcm5Ob2RlVHlwZQorUlBSUXVhbnRp dHkKK1JQUlZhcklkCitSUFNraXBUbwogUlRFS2luZAogUlRFUGVybWlzc2lvbkluZm8KIFJXQ29u ZmxpY3QKLS0gCjIuNDMuMAoK ----Next_Part(Sat_May__2_14_03_04_2026_790)----