From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Benjamin A. Beasley To: git-commits@fedoraproject.org Subject: [rpms/python-cramjam] rawhide: Update to PyO3 0.29 Date: Mon, 29 Jun 2026 13:04:42 GMT Message-ID: <178273828217.1.10867851152626785561.rpms-python-cramjam-67b9d7de3205@fedoraproject.org> List-ID: X-Git-Repo: rpms/python-cramjam X-Git-Branch: rawhide X-Git-Rev: 67b9d7de32058e7311d4461a90d7b473bf7e5ca0 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvcHl0aG9uLWNyYW1q YW0KQnJhbmNoIDogcmF3aGlkZQpDb21taXQgOiA2N2I5ZDdkZTMyMDU4ZTczMTFkNDQ2MWE5MGQ3 YjQ3M2JmN2U1Y2EwCkF1dGhvciA6IEJlbmphbWluIEEuIEJlYXNsZXkgPGNvZGVAbXVzaWNpbm15 YnJhaW4ubmV0PgpEYXRlICAgOiAyMDI2LTA2LTIwVDEwOjM5OjE1KzAxOjAwClN0YXRzICA6ICsz NzMvLTM2OSBpbiAzIGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5v cmcvcnBtcy9weXRob24tY3JhbWphbS9jLzY3YjlkN2RlMzIwNThlNzMxMWQ0NDYxYTkwZDdiNDcz YmY3ZTVjYTA/YnJhbmNoPXJhd2hpZGUKCkxvZzoKVXBkYXRlIHRvIFB5TzMgMC4yOQoKLS0tCmRp ZmYgLS1naXQgYS9jcmFtamFtLTIuMTEuMC1weW8zLTAuMjgucGF0Y2ggYi9jcmFtamFtLTIuMTEu MC1weW8zLTAuMjgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhiN2QxNWUu LjAwMDAwMDAKLS0tIGEvY3JhbWphbS0yLjExLjAtcHlvMy0wLjI4LnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsMzY4ICswLDAgQEAKLWRpZmYgLU5hdXIgY3JhbWphbS0yLjExLjAtb3JpZ2luYWwv Q2FyZ28udG9tbCBjcmFtamFtLTIuMTEuMC9DYXJnby50b21sCi0tLS0gY3JhbWphbS0yLjExLjAt b3JpZ2luYWwvQ2FyZ28udG9tbAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAot KysrIGNyYW1qYW0tMi4xMS4wL0NhcmdvLnRvbWwJMjAyNi0wNi0xOSAyMToyNTozOS4yOTg3NzQ3 MzIgKzAxMDAKLUBAIC03MSwxMSArNzEsMTEgQEAKLSAKLSAKLSBbZGVwZW5kZW5jaWVzXQotLXB5 bzMgPSB7IHZlcnNpb24gPSAiXjAuMjUiLCBkZWZhdWx0LWZlYXR1cmVzID0gZmFsc2UsIGZlYXR1 cmVzID0gWyJtYWNyb3MiXSB9Ci0rcHlvMyA9IHsgdmVyc2lvbiA9ICJeMC4yOCIsIGRlZmF1bHQt ZmVhdHVyZXMgPSBmYWxzZSwgZmVhdHVyZXMgPSBbIm1hY3JvcyJdIH0KLSBsaWJjcmFtamFtID0g eyB2ZXJzaW9uID0gIl4wLjgiLCBkZWZhdWx0LWZlYXR1cmVzID0gZmFsc2UgfQotIAotIFtidWls ZC1kZXBlbmRlbmNpZXNdCi0tcHlvMy1idWlsZC1jb25maWcgPSAiXjAuMjUiCi0rcHlvMy1idWls ZC1jb25maWcgPSAiXjAuMjgiCi0gCi0gW3Byb2ZpbGUucmVsZWFzZV0KLSBzdHJpcCA9IHRydWUK LWRpZmYgLU5hdXIgY3JhbWphbS0yLjExLjAtb3JpZ2luYWwvcHlwcm9qZWN0LnRvbWwgY3JhbWph bS0yLjExLjAvcHlwcm9qZWN0LnRvbWwKLS0tLSBjcmFtamFtLTIuMTEuMC1vcmlnaW5hbC9weXBy b2plY3QudG9tbAkyMDI1LTA3LTI3IDIxOjQyOjA3LjAwMDAwMDAwMCArMDEwMAotKysrIGNyYW1q YW0tMi4xMS4wL3B5cHJvamVjdC50b21sCTIwMjYtMDYtMTkgMjE6MjU6NTYuNTcyOTYxNjQ3ICsw MTAwCi1AQCAtMiw3ICsyLDcgQEAKLSBuYW1lID0gImNyYW1qYW0iCi0gdmVyc2lvbiA9ICIyLjEx LjAiCi0ga2V5d29yZHMgPSBbImNvbXByZXNzaW9uIiwgImRlY29tcHJlc3Npb24iLCAic25hcHB5 IiwgInpzdGQiLCAiYnoyIiwgImd6aXAiLCAibHo0IiwgImJyb3RsaSIsICJkZWZsYXRlIiwgImJs b3NjMiJdCi0tcmVxdWlyZXMtcHl0aG9uID0gIj49My44IgotK3JlcXVpcmVzLXB5dGhvbiA9ICI+ PTMuMTEiCi0gbGljZW5zZSA9IHsgZmlsZSA9ICJMSUNFTlNFIiB9Ci0gCi0gW3Byb2plY3QudXJs c10KLWRpZmYgLU5hdXIgY3JhbWphbS0yLjExLjAtb3JpZ2luYWwvc3JjL2Jsb3NjMi5ycyBjcmFt amFtLTIuMTEuMC9zcmMvYmxvc2MyLnJzCi0tLS0gY3JhbWphbS0yLjExLjAtb3JpZ2luYWwvc3Jj L2Jsb3NjMi5ycwkyMDI1LTA3LTI3IDIxOjQyOjA3LjAwMDAwMDAwMCArMDEwMAotKysrIGNyYW1q YW0tMi4xMS4wL3NyYy9ibG9zYzIucnMJMjAyNi0wNi0xOSAyMToyNTozOS4yOTg5OTQ2MDUgKzAx MDAKLUBAIC0xNDMsNyArMTQzLDcgQEAKLSAgICAgcHViIGZuIGRlY29tcHJlc3NfY2h1bmsocHk6 IFB5dGhvbiwgZGF0YTogQnl0ZXNUeXBlLCBvdXRwdXRfbGVuOiBPcHRpb248dXNpemU+KSAtPiBQ eVJlc3VsdDxSdXN0eUJ1ZmZlcj4gewotICAgICAgICAgbGV0IGJ5dGVzID0gZGF0YS5hc19ieXRl cygpOwotICAgICAgICAgbGV0IGJ1ZiA9IHB5Ci0tICAgICAgICAgICAgLmFsbG93X3RocmVhZHMo fHwgbGliY3JhbWphbTo6Ymxvc2MyOjpkZWNvbXByZXNzX2NodW5rKGJ5dGVzKSkKLSsgICAgICAg ICAgICAuZGV0YWNoKHx8IGxpYmNyYW1qYW06OmJsb3NjMjo6ZGVjb21wcmVzc19jaHVuayhieXRl cykpCi0gICAgICAgICAgICAgLm1hcChSdXN0eUJ1ZmZlcjo6ZnJvbSk/OwotICAgICAgICAgT2so YnVmKQotICAgICB9Ci1AQCAtMTUzLDcgKzE1Myw3IEBACi0gICAgIHB1YiBmbiBkZWNvbXByZXNz X2NodW5rX2ludG8ocHk6IFB5dGhvbiwgaW5wdXQ6IEJ5dGVzVHlwZSwgbXV0IG91dHB1dDogQnl0 ZXNUeXBlKSAtPiBQeVJlc3VsdDx1c2l6ZT4gewotICAgICAgICAgbGV0IGJ5dGVzID0gaW5wdXQu YXNfYnl0ZXMoKTsKLSAgICAgICAgIGxldCBvdXQgPSBvdXRwdXQuYXNfYnl0ZXNfbXV0KCk/Owot LSAgICAgICAgbGV0IG5ieXRlcyA9IHB5LmFsbG93X3RocmVhZHMofHwgbGliY3JhbWphbTo6Ymxv c2MyOjpkZWNvbXByZXNzX2NodW5rX2ludG8oYnl0ZXMsIG91dCkpPzsKLSsgICAgICAgIGxldCBu Ynl0ZXMgPSBweS5kZXRhY2gofHwgbGliY3JhbWphbTo6Ymxvc2MyOjpkZWNvbXByZXNzX2NodW5r X2ludG8oYnl0ZXMsIG91dCkpPzsKLSAgICAgICAgIE9rKG5ieXRlcykKLSAgICAgfQotIAotQEAg LTE3Niw3ICsxNzYsNyBAQAotICAgICAgICAgY29kZWM6IE9wdGlvbjxQeUNvZGVjPiwKLSAgICAg KSAtPiBQeVJlc3VsdDxSdXN0eUJ1ZmZlcj4gewotICAgICAgICAgbGV0IGJ5dGVzID0gZGF0YS5h c19ieXRlcygpOwotLSAgICAgICAgcHkuYWxsb3dfdGhyZWFkcyh8fCB7Ci0rICAgICAgICBweS5k ZXRhY2gofHwgewotICAgICAgICAgICAgIGxldCBjbGV2ZWwgPSBjbGV2ZWwubWFwKEludG86Omlu dG8pOwotICAgICAgICAgICAgIGxldCBmaWx0ZXIgPSBmaWx0ZXIubWFwKEludG86OmludG8pOwot ICAgICAgICAgICAgIGxldCBjb2RlYyA9IGNvZGVjLm1hcChJbnRvOjppbnRvKTsKLUBAIC0yMDAs NyArMjAwLDcgQEAKLSAgICAgKSAtPiBQeVJlc3VsdDx1c2l6ZT4gewotICAgICAgICAgbGV0IGJ5 dGVzID0gaW5wdXQuYXNfYnl0ZXMoKTsKLSAgICAgICAgIGxldCBvdXQgPSBvdXRwdXQuYXNfYnl0 ZXNfbXV0KCk/OwotLSAgICAgICAgcHkuYWxsb3dfdGhyZWFkcyh8fCB7Ci0rICAgICAgICBweS5k ZXRhY2gofHwgewotICAgICAgICAgICAgIGxldCBjbGV2ZWwgPSBjbGV2ZWwubWFwKEludG86Omlu dG8pOwotICAgICAgICAgICAgIGxldCBmaWx0ZXIgPSBmaWx0ZXIubWFwKEludG86OmludG8pOwot ICAgICAgICAgICAgIGxldCBjb2RlYyA9IGNvZGVjLm1hcChJbnRvOjppbnRvKTsKLWRpZmYgLU5h dXIgY3JhbWphbS0yLjExLjAtb3JpZ2luYWwvc3JjL2lvLnJzIGNyYW1qYW0tMi4xMS4wL3NyYy9p by5ycwotLS0tIGNyYW1qYW0tMi4xMS4wLW9yaWdpbmFsL3NyYy9pby5ycwkyMDI1LTA3LTI3IDIx OjQyOjA3LjAwMDAwMDAwMCArMDEwMAotKysrIGNyYW1qYW0tMi4xMS4wL3NyYy9pby5ycwkyMDI2 LTA2LTE5IDIxOjI1OjM5LjI5OTE2MjU4NyArMDEwMAotQEAgLTE0LDcgKzE0LDYgQEAKLSB1c2Ug cHlvMzo6ZmZpOwotIHVzZSBweW8zOjpwcmVsdWRlOjoqOwotIHVzZSBweW8zOjp0eXBlczo6UHlC eXRlczsKLS11c2UgcHlvMzo6SW50b1B5T2JqZWN0RXh0OwotIHVzZSBzdGQ6OnBhdGg6OlBhdGhC dWY7Ci0gCi0gcHViKGNyYXRlKSB0cmFpdCBBc0J5dGVzIHsKLUBAIC0yMTAsNyArMjA5LDcgQEAK LSAgICAgcHViIGZuIGFzX3NsaWNlX211dCgmbXV0IHNlbGYpIC0+IFB5UmVzdWx0PCZtdXQgW3U4 XT4gewotICAgICAgICAgI1tjZmcoYW55KFB5UHksIFB5X0dJTF9ESVNBQkxFRCkpXQotICAgICAg ICAgewotLSAgICAgICAgICAgIFB5dGhvbjo6d2l0aF9naWwofHB5fCB7Ci0rICAgICAgICAgICAg UHl0aG9uOjphdHRhY2gofHB5fCB7Ci0gICAgICAgICAgICAgICAgIGxldCBpc19tZW1vcnl2aWV3 ID0gdW5zYWZlIHsgZmZpOjpQeU1lbW9yeVZpZXdfQ2hlY2soc2VsZi5vd25lci5hc19wdHIoKSkg fSA9PSAxOwotICAgICAgICAgICAgICAgICBpZiBpc19tZW1vcnl2aWV3IHx8IHNlbGYub3duZXIu YmluZChweSkuaXNfaW5zdGFuY2Vfb2Y6OjxQeUJ5dGVzPigpIHsKLSAgICAgICAgICAgICAgICAg ICAgICNbY2ZnKFB5UHkpXQotQEAgLTI2MCwxMyArMjU5LDE0IEBACi0gCi0gaW1wbCBEcm9wIGZv ciBQeXRob25CdWZmZXIgewotICAgICBmbiBkcm9wKCZtdXQgc2VsZikgewotLSAgICAgICAgUHl0 aG9uOjp3aXRoX2dpbCh8X3wgdW5zYWZlIHsgZmZpOjpQeUJ1ZmZlcl9SZWxlYXNlKCZtdXQgKnNl bGYuaW5uZXIpIH0pCi0rICAgICAgICBQeXRob246OmF0dGFjaCh8X3wgdW5zYWZlIHsgZmZpOjpQ eUJ1ZmZlcl9SZWxlYXNlKCZtdXQgKnNlbGYuaW5uZXIpIH0pCi0gICAgIH0KLSB9Ci0gCi0taW1w bDwncHk+IEZyb21QeU9iamVjdDwncHk+IGZvciBQeXRob25CdWZmZXIgewotLSAgICBmbiBleHRy YWN0X2JvdW5kKG9iajogJkJvdW5kPCdweSwgUHlBbnk+KSAtPiBQeVJlc3VsdDxTZWxmPiB7Ci0t ICAgICAgICBTZWxmOjp0cnlfZnJvbShvYmopCi0raW1wbDwnYSwgJ3B5PiBGcm9tUHlPYmplY3Q8 J2EsICdweT4gZm9yIFB5dGhvbkJ1ZmZlciB7Ci0rICAgIHR5cGUgRXJyb3IgPSBQeUVycjsKLSsg ICAgZm4gZXh0cmFjdChvYmo6IEJvcnJvd2VkPCdhLCAncHksIFB5QW55PikgLT4gUHlSZXN1bHQ8 U2VsZj4gewotKyAgICAgICAgU2VsZjo6dHJ5X2Zyb20oJipvYmopCi0gICAgIH0KLSB9Ci0gCi1A QCAtMjg1LDcgKzI4NSw3IEBACi0gICAgICAgICAgICAgaW5uZXI6IHN0ZDo6cGluOjpQaW46OmZy b20oYnVmKSwKLSAgICAgICAgICAgICBwb3M6IDAsCi0gICAgICAgICAgICAgI1tjZmcoYW55KFB5 UHksIFB5X0dJTF9ESVNBQkxFRCkpXQotLSAgICAgICAgICAgIG93bmVyOiBQeXRob246OndpdGhf Z2lsKHxweXwgb2JqLmludG9fcHlfYW55KHB5KS51bndyYXAoKSksCi0rICAgICAgICAgICAgb3du ZXI6IG9iai5jbG9uZSgpLnVuYmluZCgpLAotICAgICAgICAgfTsKLSAgICAgICAgIC8vIHNhbml0 eSBjaGVja3MKLSAgICAgICAgIGlmIGJ1Zi5pbm5lci5zaGFwZS5pc19udWxsKCkgewotQEAgLTYy OSw3ICs2MjksNyBAQAotICAgICB9Ci0gICAgIGZuIF9fY29udGFpbnNfXygmc2VsZiwgcHk6IFB5 dGhvbiwgeDogQnl0ZXNUeXBlKSAtPiBib29sIHsKLSAgICAgICAgIGxldCBieXRlcyA9IHguYXNf Ynl0ZXMoKTsKLS0gICAgICAgIHB5LmFsbG93X3RocmVhZHMofHwgc2VsZi5pbm5lci5nZXRfcmVm KCkud2luZG93cyhieXRlcy5sZW4oKSkuYW55KHx3fCB3ID09IGJ5dGVzKSkKLSsgICAgICAgIHB5 LmRldGFjaCh8fCBzZWxmLmlubmVyLmdldF9yZWYoKS53aW5kb3dzKGJ5dGVzLmxlbigpKS5hbnko fHd8IHcgPT0gYnl0ZXMpKQotICAgICB9Ci0gICAgIGZuIF9fcmVwcl9fKCZtdXQgc2VsZiwgcHk6 IFB5dGhvbikgLT4gUHlSZXN1bHQ8U3RyaW5nPiB7Ci0gICAgICAgICBPayhmb3JtYXQhKCJjcmFt amFtLkJ1ZmZlcjxsZW49ezo/fT4iLCBzZWxmLmxlbihweSk/KSkKLWRpZmYgLU5hdXIgY3JhbWph bS0yLjExLjAtb3JpZ2luYWwvc3JjL2xpYi5ycyBjcmFtamFtLTIuMTEuMC9zcmMvbGliLnJzCi0t LS0gY3JhbWphbS0yLjExLjAtb3JpZ2luYWwvc3JjL2xpYi5ycwkyMDI1LTA3LTI3IDIxOjQyOjA3 LjAwMDAwMDAwMCArMDEwMAotKysrIGNyYW1qYW0tMi4xMS4wL3NyYy9saWIucnMJMjAyNi0wNi0x OSAyMToyNTozOS4yOTkzMjE0NTAgKzAxMDAKLUBAIC0yMjIsMTMgKzIyMiwxMyBAQAotICAgICAg ICAgICAgICAgICBCeXRlc1R5cGU6OlJ1c3R5RmlsZShmKSA9PiB7Ci0gICAgICAgICAgICAgICAg ICAgICBsZXQgYm9ycm93ZWQgPSBmLmJvcnJvdygpOwotICAgICAgICAgICAgICAgICAgICAgbGV0 IGZpbGUgPSAmYm9ycm93ZWQuaW5uZXI7Ci0tICAgICAgICAgICAgICAgICAgICAkcHkuYWxsb3df dGhyZWFkcyh8fCB7Ci0rICAgICAgICAgICAgICAgICAgICAkcHkuZGV0YWNoKHx8IHsKLSAgICAg ICAgICAgICAgICAgICAgICAgICAkb3AoZmlsZSwgJm11dCBDdXJzb3I6Om5ldygmbXV0IG91dHB1 dCkgJCgsICRhcmdzKSogKQotICAgICAgICAgICAgICAgICAgICAgfSkKLSAgICAgICAgICAgICAg ICAgfSwKLSAgICAgICAgICAgICAgICAgXyA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICBsZXQg Ynl0ZXMgPSAkaW5wdXQuYXNfYnl0ZXMoKTsKLS0gICAgICAgICAgICAgICAgICAgICRweS5hbGxv d190aHJlYWRzKHx8IHsKLSsgICAgICAgICAgICAgICAgICAgICRweS5kZXRhY2gofHwgewotICAg ICAgICAgICAgICAgICAgICAgICAgICRvcChieXRlcywgJm11dCBDdXJzb3I6Om5ldygmbXV0IG91 dHB1dCkgJCgsICRhcmdzKSogKQotICAgICAgICAgICAgICAgICAgICAgfSkKLSAgICAgICAgICAg ICAgICAgfQotQEAgLTI0NiwyMCArMjQ2LDIwIEBACi0gICAgICAgICAgICAgICAgICAgICAgICAg Qnl0ZXNUeXBlOjpSdXN0eUZpbGUoZikgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsZXQgbXV0IGJvcnJvd2VkID0gZi5ib3Jyb3dfbXV0KCk7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBtdXQgZl9vdXQgPSAmbXV0IGJvcnJvd2VkLmlubmVyOwotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkcHkuYWxsb3dfdGhyZWFkcyh8fCB7Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICRweS5kZXRhY2gofHwgewotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJG9wKGZfaW4sICZtdXQgZl9vdXQgJCgsICRhcmdzKSogKQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9KQotICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAg ICAgICAgICAgICAgICAgICAgQnl0ZXNUeXBlOjpSdXN0eUJ1ZmZlcihidWZmZXIpID0+IHsKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBib3Jyb3dlZCA9IGJ1ZmZlci5ib3Jy b3dfbXV0KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYnVmX291dCA9 ICZtdXQgYm9ycm93ZWQuaW5uZXI7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICRweS5h bGxvd190aHJlYWRzKHx8IHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHB5LmRldGFj aCh8fCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb3AoZl9pbiwgJm11dCBi dWZfb3V0ICQoLCAkYXJncykqICkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKLSAg ICAgICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICAgICAgIF8gPT4g ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYnl0ZXNfb3V0ID0gJG91dHB1dC5h c19ieXRlc19tdXQoKT87Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICRweS5hbGxvd190 aHJlYWRzKHx8IHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHB5LmRldGFjaCh8fCB7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb3AoZl9pbiwgJm11dCBDdXJzb3I6 Om5ldyhieXRlc19vdXQpICQoLCAkYXJncykqICkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSkKLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci1AQCAtMjcxLDIwICsyNzEsMjAgQEAK LSAgICAgICAgICAgICAgICAgICAgICAgICBCeXRlc1R5cGU6OlJ1c3R5RmlsZShmKSA9PiB7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYm9ycm93ZWQgPSBmLmJvcnJvd19t dXQoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBmX291dCA9ICZtdXQg Ym9ycm93ZWQuaW5uZXI7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICRweS5hbGxvd190 aHJlYWRzKHx8IHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHB5LmRldGFjaCh8fCB7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb3AoYnl0ZXNfaW4sICZtdXQgZl9v dXQgJCgsICRhcmdzKSogKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQotICAgICAg ICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgQnl0ZXNUeXBl OjpSdXN0eUJ1ZmZlcihidWZmZXIpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG11dCBib3Jyb3dlZCA9IGJ1ZmZlci5ib3Jyb3dfbXV0KCk7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBtdXQgYnVmX291dCA9ICZtdXQgYm9ycm93ZWQuaW5uZXI7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICRweS5hbGxvd190aHJlYWRzKHx8IHsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJHB5LmRldGFjaCh8fCB7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAkb3AoYnl0ZXNfaW4sICZtdXQgYnVmX291dCAkKCwgJGFyZ3MpKiApCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCi0gICAgICAgICAgICAgICAgICAgICAgICAg fSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBfID0+IHsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IGJ5dGVzX291dCA9ICRvdXRwdXQuYXNfYnl0ZXNfbXV0KCk/OwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAkcHkuYWxsb3dfdGhyZWFkcyh8fCB7Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICRweS5kZXRhY2gofHwgewotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJG9wKGJ5dGVzX2luLCAmbXV0IEN1cnNvcjo6bmV3KGJ5dGVzX291dCkgJCgs ICRhcmdzKSopCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCi0gICAgICAgICAgICAg ICAgICAgICAgICAgfQotQEAgLTMzMSwxMSArMzMxLDExIEBACi0gICAgICAgICAgICAgICAgICAg ICAgICAgQnl0ZXNUeXBlOjpSdXN0eUZpbGUoZikgPT4gewotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbXV0IGJvcnJvd2VkID0gZi5ib3Jyb3dfbXV0KCk7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBmX2luID0gJm11dCBib3Jyb3dlZC5pbm5lcjsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgcHkuYWxsb3dfdGhyZWFkcyh8fCBsaWJjcmFtamFtOjokY29k ZWM6OmRlY29tcHJlc3MoZl9pbiwgaW5uZXIpLm1hcF9lcnIoSW50bzo6aW50bykpCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHB5LmRldGFjaCh8fCBsaWJjcmFtamFtOjokY29kZWM6OmRl Y29tcHJlc3MoZl9pbiwgaW5uZXIpLm1hcF9lcnIoSW50bzo6aW50bykpCi0gICAgICAgICAgICAg ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgIF8gPT4gewotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZXQgYnl0ZXMgPSBpbnB1dC5hc19ieXRlcygpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBweS5hbGxvd190aHJlYWRzKHx8IHsKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcHkuZGV0YWNoKHx8IHsKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxpYmNyYW1qYW06OiRjb2RlYzo6ZGVjb21wcmVzcygmbXV0IEN1cnNvcjo6bmV3 KGJ5dGVzKSwgaW5uZXIpLm1hcF9lcnIoSW50bzo6aW50bykKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfSkKLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci1AQCAtMzc3LDcgKzM3Nyw3 IEBACi0gICAgICAgICAgICAgfQotICAgICAgICAgICAgIGZuIF9fY29udGFpbnNfXygmc2VsZiwg cHk6IFB5dGhvbiwgeDogQnl0ZXNUeXBlKSAtPiBib29sIHsKLSAgICAgICAgICAgICAgICAgbGV0 IGJ5dGVzID0geC5hc19ieXRlcygpOwotLSAgICAgICAgICAgICAgICBweS5hbGxvd190aHJlYWRz KHx8IHsKLSsgICAgICAgICAgICAgICAgcHkuZGV0YWNoKHx8IHsKLSAgICAgICAgICAgICAgICAg ICAgIHNlbGYuaW5uZXIKLSAgICAgICAgICAgICAgICAgICAgICAgICAuYXNfcmVmKCkKLSAgICAg ICAgICAgICAgICAgICAgICAgICAubWFwKHxjfCBjLmdldF9yZWYoKS53aW5kb3dzKGJ5dGVzLmxl bigpKS5hbnkofHd8IHcgPT0gYnl0ZXMpKQotZGlmZiAtTmF1ciBjcmFtamFtLTIuMTEuMC1vcmln aW5hbC9zcmMvbHo0LnJzIGNyYW1qYW0tMi4xMS4wL3NyYy9sejQucnMKLS0tLSBjcmFtamFtLTIu MTEuMC1vcmlnaW5hbC9zcmMvbHo0LnJzCTIwMjUtMDctMjcgMjE6NDI6MDcuMDAwMDAwMDAwICsw MTAwCi0rKysgY3JhbWphbS0yLjExLjAvc3JjL2x6NC5ycwkyMDI2LTA2LTE5IDIxOjI1OjM5LjI5 OTQ1ODgxMiArMDEwMAotQEAgLTgxLDcgKzgxLDcgQEAKLSAgICAgcHViIGZuIGRlY29tcHJlc3Nf YmxvY2socHk6IFB5dGhvbiwgZGF0YTogQnl0ZXNUeXBlLCBvdXRwdXRfbGVuOiBPcHRpb248dXNp emU+KSAtPiBQeVJlc3VsdDxSdXN0eUJ1ZmZlcj4gewotICAgICAgICAgbGV0IGJ5dGVzID0gZGF0 YS5hc19ieXRlcygpOwotIAotLSAgICAgICAgcHkuYWxsb3dfdGhyZWFkcyh8fCB7Ci0rICAgICAg ICBweS5kZXRhY2gofHwgewotICAgICAgICAgICAgIG1hdGNoIG91dHB1dF9sZW4gewotICAgICAg ICAgICAgICAgICBTb21lKG4pID0+IHsKLSAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYnVm ID0gdmVjIVswdTg7IG5dOwotQEAgLTEyMyw3ICsxMjMsNyBAQAotICAgICAgICAgc3RvcmVfc2l6 ZTogT3B0aW9uPGJvb2w+LAotICAgICApIC0+IFB5UmVzdWx0PFJ1c3R5QnVmZmVyPiB7Ci0gICAg ICAgICBsZXQgYnl0ZXMgPSBkYXRhLmFzX2J5dGVzKCk7Ci0tICAgICAgICBweS5hbGxvd190aHJl YWRzKHx8IHsKLSsgICAgICAgIHB5LmRldGFjaCh8fCB7Ci0gICAgICAgICAgICAgbGliY3JhbWph bTo6bHo0OjpibG9jazo6Y29tcHJlc3NfdmVjKGJ5dGVzLCBjb21wcmVzc2lvbi5tYXAofHZ8IHYg YXMgXyksIGFjY2VsZXJhdGlvbiwgc3RvcmVfc2l6ZSkKLSAgICAgICAgIH0pCi0gICAgICAgICAu bWFwX2VycihDb21wcmVzc2lvbkVycm9yOjpmcm9tX2VycikKLUBAIC0xNjAsNyArMTYwLDcgQEAK LSAgICAgICAgIH0KLSAKLSAgICAgICAgIGxldCBvdXRfYnl0ZXMgPSBvdXRwdXQuYXNfYnl0ZXNf bXV0KCk/OwotLSAgICAgICAgcHkuYWxsb3dfdGhyZWFkcygKLSsgICAgICAgIHB5LmRldGFjaCgK LSAgICAgICAgICAgICB8fCBtYXRjaCBsaWJjcmFtamFtOjpsejQ6OmJsb2NrOjpkZWNvbXByZXNz X2ludG8oYnl0ZXMsIG91dF9ieXRlcywgU29tZShzaXplX3N0b3JlZCkpIHsKLSAgICAgICAgICAg ICAgICAgT2socikgPT4gT2sociksCi0gICAgICAgICAgICAgICAgIC8vIEZhbGxiYWNrIGFuZCB0 cnkgbmVnYXRpb24gb2Ygc3RvcmVkIHNpemUsIGluY2FzZSB3ZS90aGV5IGdvdCBpdCB3cm9uZzsK LUBAIC0yMDIsNyArMjAyLDcgQEAKLSAgICAgKSAtPiBQeVJlc3VsdDx1c2l6ZT4gewotICAgICAg ICAgbGV0IGJ5dGVzID0gZGF0YS5hc19ieXRlcygpOwotICAgICAgICAgbGV0IG91dF9ieXRlcyA9 IG91dHB1dC5hc19ieXRlc19tdXQoKT87Ci0tICAgICAgICBweS5hbGxvd190aHJlYWRzKHx8IHsK LSsgICAgICAgIHB5LmRldGFjaCh8fCB7Ci0gICAgICAgICAgICAgbGliY3JhbWphbTo6bHo0Ojpi bG9jazo6Y29tcHJlc3NfaW50bygKLSAgICAgICAgICAgICAgICAgYnl0ZXMsCi0gICAgICAgICAg ICAgICAgIG91dF9ieXRlcywKLWRpZmYgLU5hdXIgY3JhbWphbS0yLjExLjAtb3JpZ2luYWwvc3Jj L3NuYXBweS5ycyBjcmFtamFtLTIuMTEuMC9zcmMvc25hcHB5LnJzCi0tLS0gY3JhbWphbS0yLjEx LjAtb3JpZ2luYWwvc3JjL3NuYXBweS5ycwkyMDI1LTA3LTI3IDIxOjQyOjA3LjAwMDAwMDAwMCAr MDEwMAotKysrIGNyYW1qYW0tMi4xMS4wL3NyYy9zbmFwcHkucnMJMjAyNi0wNi0xOSAyMToyNToz OS4yOTk1NTE5NjMgKzAxMDAKLUBAIC01NCw3ICs1NCw3IEBACi0gICAgICNbcHlvMyhzaWduYXR1 cmUgPSAoZGF0YSwgb3V0cHV0X2xlbj1Ob25lKSldCi0gICAgIHB1YiBmbiBkZWNvbXByZXNzX3Jh dyhweTogUHl0aG9uLCBkYXRhOiBCeXRlc1R5cGUsIG91dHB1dF9sZW46IE9wdGlvbjx1c2l6ZT4p IC0+IFB5UmVzdWx0PFJ1c3R5QnVmZmVyPiB7Ci0gICAgICAgICBsZXQgYnl0ZXMgPSBkYXRhLmFz X2J5dGVzKCk7Ci0tICAgICAgICBweS5hbGxvd190aHJlYWRzKHx8IGxpYmNyYW1qYW06OnNuYXBw eTo6cmF3OjpkZWNvbXByZXNzX3ZlYyhieXRlcykpCi0rICAgICAgICBweS5kZXRhY2gofHwgbGli Y3JhbWphbTo6c25hcHB5OjpyYXc6OmRlY29tcHJlc3NfdmVjKGJ5dGVzKSkKLSAgICAgICAgICAg ICAubWFwX2VycihEZWNvbXByZXNzaW9uRXJyb3I6OmZyb21fZXJyKQotICAgICAgICAgICAgIC5t YXAoRnJvbTo6ZnJvbSkKLSAgICAgfQotQEAgLTcyLDcgKzcyLDcgQEAKLSAgICAgI1tweW8zKHNp Z25hdHVyZSA9IChkYXRhLCBvdXRwdXRfbGVuPU5vbmUpKV0KLSAgICAgcHViIGZuIGNvbXByZXNz X3JhdyhweTogUHl0aG9uLCBkYXRhOiBCeXRlc1R5cGUsIG91dHB1dF9sZW46IE9wdGlvbjx1c2l6 ZT4pIC0+IFB5UmVzdWx0PFJ1c3R5QnVmZmVyPiB7Ci0gICAgICAgICBsZXQgYnl0ZXMgPSBkYXRh LmFzX2J5dGVzKCk7Ci0tICAgICAgICBweS5hbGxvd190aHJlYWRzKHx8IGxpYmNyYW1qYW06OnNu YXBweTo6cmF3Ojpjb21wcmVzc192ZWMoYnl0ZXMpKQotKyAgICAgICAgcHkuZGV0YWNoKHx8IGxp YmNyYW1qYW06OnNuYXBweTo6cmF3Ojpjb21wcmVzc192ZWMoYnl0ZXMpKQotICAgICAgICAgICAg IC5tYXBfZXJyKENvbXByZXNzaW9uRXJyb3I6OmZyb21fZXJyKQotICAgICAgICAgICAgIC5tYXAo RnJvbTo6ZnJvbSkKLSAgICAgfQotQEAgLTk0LDcgKzk0LDcgQEAKLSAgICAgcHViIGZuIGNvbXBy ZXNzX3Jhd19pbnRvKHB5OiBQeXRob24sIGlucHV0OiBCeXRlc1R5cGUsIG11dCBvdXRwdXQ6IEJ5 dGVzVHlwZSkgLT4gUHlSZXN1bHQ8dXNpemU+IHsKLSAgICAgICAgIGxldCBieXRlc19pbiA9IGlu cHV0LmFzX2J5dGVzKCk7Ci0gICAgICAgICBsZXQgYnl0ZXNfb3V0ID0gb3V0cHV0LmFzX2J5dGVz X211dCgpPzsKLS0gICAgICAgIHB5LmFsbG93X3RocmVhZHMofHwgbGliY3JhbWphbTo6c25hcHB5 OjpyYXc6OmNvbXByZXNzKGJ5dGVzX2luLCBieXRlc19vdXQpKQotKyAgICAgICAgcHkuZGV0YWNo KHx8IGxpYmNyYW1qYW06OnNuYXBweTo6cmF3Ojpjb21wcmVzcyhieXRlc19pbiwgYnl0ZXNfb3V0 KSkKLSAgICAgICAgICAgICAubWFwX2VycihDb21wcmVzc2lvbkVycm9yOjpmcm9tX2VycikKLSAg ICAgfQotIAotQEAgLTEwMyw3ICsxMDMsNyBAQAotICAgICBwdWIgZm4gZGVjb21wcmVzc19yYXdf aW50byhweTogUHl0aG9uLCBpbnB1dDogQnl0ZXNUeXBlLCBtdXQgb3V0cHV0OiBCeXRlc1R5cGUp IC0+IFB5UmVzdWx0PHVzaXplPiB7Ci0gICAgICAgICBsZXQgYnl0ZXNfaW4gPSBpbnB1dC5hc19i eXRlcygpOwotICAgICAgICAgbGV0IGJ5dGVzX291dCA9IG91dHB1dC5hc19ieXRlc19tdXQoKT87 Ci0tICAgICAgICBweS5hbGxvd190aHJlYWRzKHx8IGxpYmNyYW1qYW06OnNuYXBweTo6cmF3Ojpk ZWNvbXByZXNzKGJ5dGVzX2luLCBieXRlc19vdXQpKQotKyAgICAgICAgcHkuZGV0YWNoKHx8IGxp YmNyYW1qYW06OnNuYXBweTo6cmF3OjpkZWNvbXByZXNzKGJ5dGVzX2luLCBieXRlc19vdXQpKQot ICAgICAgICAgICAgIC5tYXBfZXJyKERlY29tcHJlc3Npb25FcnJvcjo6ZnJvbV9lcnIpCi0gICAg IH0KLSAKLWRpZmYgLU5hdXIgY3JhbWphbS0yLjExLjAtb3JpZ2luYWwvc3JjL3h6LnJzIGNyYW1q YW0tMi4xMS4wL3NyYy94ei5ycwotLS0tIGNyYW1qYW0tMi4xMS4wLW9yaWdpbmFsL3NyYy94ei5y cwkyMDI1LTA3LTI3IDIxOjQyOjA3LjAwMDAwMDAwMCArMDEwMAotKysrIGNyYW1qYW0tMi4xMS4w L3NyYy94ei5ycwkyMDI2LTA2LTE5IDIxOjI1OjM5LjI5OTYzMDI2NSArMDEwMAotQEAgLTEzMCw3 ICsxMzAsNyBAQAotIAotICAgICAvLy8gQXZhaWxhYmxlIEZpbHRlciBJRHMKLSAgICAgI1tkZXJp dmUoQ2xvbmUsIERlYnVnLCBQYXJ0aWFsRXEpXQotLSAgICAjW3B5Y2xhc3MoZXEsIGVxX2ludCld Ci0rICAgICNbcHljbGFzcyhlcSwgZXFfaW50LCBmcm9tX3B5X29iamVjdCldCi0gICAgICNbYWxs b3cobWlzc2luZ19kb2NzKV0KLSAgICAgcHViIGVudW0gRmlsdGVyIHsKLSAgICAgICAgIEFybSwK LUBAIC0xNTAsNyArMTUwLDcgQEAKLSAKLSAgICAgLy8vIE1hdGNoRmluZGVyLCB1c2VkIHdpdGgg T3B0aW9ucy5tZiBhdHRyaWJ1dGUKLSAgICAgI1tkZXJpdmUoQ2xvbmUsIERlYnVnLCBQYXJ0aWFs RXEpXQotLSAgICAjW3B5Y2xhc3MoZXEsIGVxX2ludCldCi0rICAgICNbcHljbGFzcyhlcSwgZXFf aW50LCBmcm9tX3B5X29iamVjdCldCi0gICAgICNbYWxsb3cobWlzc2luZ19kb2NzKV0KLSAgICAg cHViIGVudW0gTWF0Y2hGaW5kZXIgewotICAgICAgICAgSGFzaENoYWluMywKLUBAIC0xNzQsNyAr MTc0LDcgQEAKLSAKLSAgICAgLy8vIE1hdGNoRmluZGVyLCB1c2VkIHdpdGggT3B0aW9ucy5tb2Rl IGF0dHJpYnV0ZQotICAgICAjW2Rlcml2ZShDbG9uZSwgRGVidWcsIFBhcnRpYWxFcSldCi0tICAg ICNbcHljbGFzcyhlcSwgZXFfaW50KV0KLSsgICAgI1tweWNsYXNzKGVxLCBlcV9pbnQsIGZyb21f cHlfb2JqZWN0KV0KLSAgICAgI1thbGxvdyhtaXNzaW5nX2RvY3MpXQotICAgICBwdWIgZW51bSBN b2RlIHsKLSAgICAgICAgIEZhc3QsCi1AQCAtMTkyLDcgKzE5Miw3IEBACi0gICAgIC8vLyBGaWx0 ZXJDaGFpbiwgc2ltaWxhciB0byB0aGUgZGVmYXVsdCBQeXRob24gWFogZmlsdGVyIGNoYWluIHdo aWNoIGlzIGEgbGlzdCBvZgotICAgICAvLy8gZGljdHMuCi0gICAgICNbZGVyaXZlKERlYnVnLCBD bG9uZSldCi0tICAgICNbcHljbGFzc10KLSsgICAgI1tweWNsYXNzKGZyb21fcHlfb2JqZWN0KV0K LSAgICAgcHViIHN0cnVjdCBGaWx0ZXJDaGFpbihWZWM8RmlsdGVyQ2hhaW5JdGVtPik7Ci0gCi0g ICAgICNbcHltZXRob2RzXQotQEAgLTIyOSw3ICsyMjksNyBAQAotICAgICAvLy8gRmlsdGVyQ2hh aW5JdGVtLiBJbiBQeXRob24ncyBsem1hIG1vZHVsZSwgdGhpcyByZXByZXNlbnRzIGEgc2luZ2xl IGRpY3QgaW4gdGhlCi0gICAgIC8vLyBmaWx0ZXIgY2hhaW4gbGlzdC4gVG8gYmUgYWRkZWQgdG8g dGhlIGBGaWx0ZXJDaGFpbmAKLSAgICAgI1tkZXJpdmUoQ2xvbmUsIERlYnVnLCBEZWZhdWx0KV0K LS0gICAgI1tweWNsYXNzXQotKyAgICAjW3B5Y2xhc3MoZnJvbV9weV9vYmplY3QpXQotICAgICBw dWIgc3RydWN0IEZpbHRlckNoYWluSXRlbSB7Ci0gICAgICAgICBmaWx0ZXI6IEZpbHRlciwKLSAg ICAgICAgIG9wdGlvbnM6IE9wdGlvbnMsCi1AQCAtMjUwLDcgKzI1MCw3IEBACi0gCi0gICAgIC8v LwotICAgICAjW2Rlcml2ZShDbG9uZSwgRGVidWcsIERlZmF1bHQpXQotLSAgICAjW3B5Y2xhc3Nd Ci0rICAgICNbcHljbGFzcyhmcm9tX3B5X29iamVjdCldCi0gICAgIHB1YiBzdHJ1Y3QgT3B0aW9u cyB7Ci0gICAgICAgICBwcmVzZXQ6IE9wdGlvbjx1MzI+LAotICAgICAgICAgZGljdF9zaXplOiBP cHRpb248dTMyPiwKLUBAIC0zMzEsNyArMzMxLDcgQEAKLSAKLSAgICAgLy8vIFBvc3NpYmxlIGZv cm1hdHMKLSAgICAgI1tkZXJpdmUoQ2xvbmUsIERlYnVnLCBQYXJ0aWFsRXEpXQotLSAgICAjW3B5 Y2xhc3MoZXEsIGVxX2ludCldCi0rICAgICNbcHljbGFzcyhlcSwgZXFfaW50LCBmcm9tX3B5X29i amVjdCldCi0gICAgIHB1YiBlbnVtIEZvcm1hdCB7Ci0gICAgICAgICAvLy8gQXV0byBzZWxlY3Qg dGhlIGZvcm1hdCwgZm9yIGNvbXByZXNzaW9uIHRoaXMgaXMgWFosCi0gICAgICAgICAvLy8gZm9y IGRlY29tcHJlc3Npb24gaXQgd2lsbCBiZSBkZXRlcm1pbmVkIGJ5IHRoZSBjb21wcmVzc2VkIGlu cHV0LgotQEAgLTM2Miw3ICszNjIsNyBAQAotIAotICAgICAvLy8gUG9zc2libGUgQ2hlY2sgY29u ZmlndXJhdGlvbnMKLSAgICAgI1tkZXJpdmUoRGVidWcsIENsb25lLCBQYXJ0aWFsRXEpXQotLSAg ICAjW3B5Y2xhc3MoZXEsIGVxX2ludCldCi0rICAgICNbcHljbGFzcyhlcSwgZXFfaW50LCBmcm9t X3B5X29iamVjdCldCi0gICAgICNbYWxsb3cobWlzc2luZ19kb2NzKV0KLSAgICAgcHViIGVudW0g Q2hlY2sgewotICAgICAgICAgQ3JjNjQsCgpkaWZmIC0tZ2l0IGEvY3JhbWphbS0yLjExLjAtcHlv My0wLjI5LnBhdGNoIGIvY3JhbWphbS0yLjExLjAtcHlvMy0wLjI5LnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4N2FkNjQKLS0tIC9kZXYvbnVsbAorKysgYi9jcmFt amFtLTIuMTEuMC1weW8zLTAuMjkucGF0Y2gKQEAgLTAsMCArMSwzNjggQEAKK2RpZmYgLU5hdXIg Y3JhbWphbS0yLjExLjAtb3JpZ2luYWwvQ2FyZ28udG9tbCBjcmFtamFtLTIuMTEuMC9DYXJnby50 b21sCistLS0gY3JhbWphbS0yLjExLjAtb3JpZ2luYWwvQ2FyZ28udG9tbAkxOTcwLTAxLTAxIDAx OjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIGNyYW1qYW0tMi4xMS4wL0NhcmdvLnRvbWwJMjAy Ni0wNi0xOSAyMToyNTozOS4yOTg3NzQ3MzIgKzAxMDAKK0BAIC03MSwxMSArNzEsMTEgQEAKKyAK KyAKKyBbZGVwZW5kZW5jaWVzXQorLXB5bzMgPSB7IHZlcnNpb24gPSAiXjAuMjUiLCBkZWZhdWx0 LWZlYXR1cmVzID0gZmFsc2UsIGZlYXR1cmVzID0gWyJtYWNyb3MiXSB9CisrcHlvMyA9IHsgdmVy c2lvbiA9ICJeMC4yOSIsIGRlZmF1bHQtZmVhdHVyZXMgPSBmYWxzZSwgZmVhdHVyZXMgPSBbIm1h Y3JvcyJdIH0KKyBsaWJjcmFtamFtID0geyB2ZXJzaW9uID0gIl4wLjgiLCBkZWZhdWx0LWZlYXR1 cmVzID0gZmFsc2UgfQorIAorIFtidWlsZC1kZXBlbmRlbmNpZXNdCistcHlvMy1idWlsZC1jb25m aWcgPSAiXjAuMjUiCisrcHlvMy1idWlsZC1jb25maWcgPSAiXjAuMjkiCisgCisgW3Byb2ZpbGUu cmVsZWFzZV0KKyBzdHJpcCA9IHRydWUKK2RpZmYgLU5hdXIgY3JhbWphbS0yLjExLjAtb3JpZ2lu YWwvcHlwcm9qZWN0LnRvbWwgY3JhbWphbS0yLjExLjAvcHlwcm9qZWN0LnRvbWwKKy0tLSBjcmFt amFtLTIuMTEuMC1vcmlnaW5hbC9weXByb2plY3QudG9tbAkyMDI1LTA3LTI3IDIxOjQyOjA3LjAw MDAwMDAwMCArMDEwMAorKysrIGNyYW1qYW0tMi4xMS4wL3B5cHJvamVjdC50b21sCTIwMjYtMDYt MTkgMjE6MjU6NTYuNTcyOTYxNjQ3ICswMTAwCitAQCAtMiw3ICsyLDcgQEAKKyBuYW1lID0gImNy YW1qYW0iCisgdmVyc2lvbiA9ICIyLjExLjAiCisga2V5d29yZHMgPSBbImNvbXByZXNzaW9uIiwg ImRlY29tcHJlc3Npb24iLCAic25hcHB5IiwgInpzdGQiLCAiYnoyIiwgImd6aXAiLCAibHo0Iiwg ImJyb3RsaSIsICJkZWZsYXRlIiwgImJsb3NjMiJdCistcmVxdWlyZXMtcHl0aG9uID0gIj49My44 IgorK3JlcXVpcmVzLXB5dGhvbiA9ICI+PTMuMTEiCisgbGljZW5zZSA9IHsgZmlsZSA9ICJMSUNF TlNFIiB9CisgCisgW3Byb2plY3QudXJsc10KK2RpZmYgLU5hdXIgY3JhbWphbS0yLjExLjAtb3Jp Z2luYWwvc3JjL2Jsb3NjMi5ycyBjcmFtamFtLTIuMTEuMC9zcmMvYmxvc2MyLnJzCistLS0gY3Jh bWphbS0yLjExLjAtb3JpZ2luYWwvc3JjL2Jsb3NjMi5ycwkyMDI1LTA3LTI3IDIxOjQyOjA3LjAw MDAwMDAwMCArMDEwMAorKysrIGNyYW1qYW0tMi4xMS4wL3NyYy9ibG9zYzIucnMJMjAyNi0wNi0x OSAyMToyNTozOS4yOTg5OTQ2MDUgKzAxMDAKK0BAIC0xNDMsNyArMTQzLDcgQEAKKyAgICAgcHVi IGZuIGRlY29tcHJlc3NfY2h1bmsocHk6IFB5dGhvbiwgZGF0YTogQnl0ZXNUeXBlLCBvdXRwdXRf bGVuOiBPcHRpb248dXNpemU+KSAtPiBQeVJlc3VsdDxSdXN0eUJ1ZmZlcj4geworICAgICAgICAg bGV0IGJ5dGVzID0gZGF0YS5hc19ieXRlcygpOworICAgICAgICAgbGV0IGJ1ZiA9IHB5CistICAg ICAgICAgICAgLmFsbG93X3RocmVhZHMofHwgbGliY3JhbWphbTo6Ymxvc2MyOjpkZWNvbXByZXNz X2NodW5rKGJ5dGVzKSkKKysgICAgICAgICAgICAuZGV0YWNoKHx8IGxpYmNyYW1qYW06OmJsb3Nj Mjo6ZGVjb21wcmVzc19jaHVuayhieXRlcykpCisgICAgICAgICAgICAgLm1hcChSdXN0eUJ1ZmZl cjo6ZnJvbSk/OworICAgICAgICAgT2soYnVmKQorICAgICB9CitAQCAtMTUzLDcgKzE1Myw3IEBA CisgICAgIHB1YiBmbiBkZWNvbXByZXNzX2NodW5rX2ludG8ocHk6IFB5dGhvbiwgaW5wdXQ6IEJ5 dGVzVHlwZSwgbXV0IG91dHB1dDogQnl0ZXNUeXBlKSAtPiBQeVJlc3VsdDx1c2l6ZT4geworICAg ICAgICAgbGV0IGJ5dGVzID0gaW5wdXQuYXNfYnl0ZXMoKTsKKyAgICAgICAgIGxldCBvdXQgPSBv dXRwdXQuYXNfYnl0ZXNfbXV0KCk/OworLSAgICAgICAgbGV0IG5ieXRlcyA9IHB5LmFsbG93X3Ro cmVhZHMofHwgbGliY3JhbWphbTo6Ymxvc2MyOjpkZWNvbXByZXNzX2NodW5rX2ludG8oYnl0ZXMs IG91dCkpPzsKKysgICAgICAgIGxldCBuYnl0ZXMgPSBweS5kZXRhY2gofHwgbGliY3JhbWphbTo6 Ymxvc2MyOjpkZWNvbXByZXNzX2NodW5rX2ludG8oYnl0ZXMsIG91dCkpPzsKKyAgICAgICAgIE9r KG5ieXRlcykKKyAgICAgfQorIAorQEAgLTE3Niw3ICsxNzYsNyBAQAorICAgICAgICAgY29kZWM6 IE9wdGlvbjxQeUNvZGVjPiwKKyAgICAgKSAtPiBQeVJlc3VsdDxSdXN0eUJ1ZmZlcj4geworICAg ICAgICAgbGV0IGJ5dGVzID0gZGF0YS5hc19ieXRlcygpOworLSAgICAgICAgcHkuYWxsb3dfdGhy ZWFkcyh8fCB7CisrICAgICAgICBweS5kZXRhY2gofHwgeworICAgICAgICAgICAgIGxldCBjbGV2 ZWwgPSBjbGV2ZWwubWFwKEludG86OmludG8pOworICAgICAgICAgICAgIGxldCBmaWx0ZXIgPSBm aWx0ZXIubWFwKEludG86OmludG8pOworICAgICAgICAgICAgIGxldCBjb2RlYyA9IGNvZGVjLm1h cChJbnRvOjppbnRvKTsKK0BAIC0yMDAsNyArMjAwLDcgQEAKKyAgICAgKSAtPiBQeVJlc3VsdDx1 c2l6ZT4geworICAgICAgICAgbGV0IGJ5dGVzID0gaW5wdXQuYXNfYnl0ZXMoKTsKKyAgICAgICAg IGxldCBvdXQgPSBvdXRwdXQuYXNfYnl0ZXNfbXV0KCk/OworLSAgICAgICAgcHkuYWxsb3dfdGhy ZWFkcyh8fCB7CisrICAgICAgICBweS5kZXRhY2gofHwgeworICAgICAgICAgICAgIGxldCBjbGV2 ZWwgPSBjbGV2ZWwubWFwKEludG86OmludG8pOworICAgICAgICAgICAgIGxldCBmaWx0ZXIgPSBm aWx0ZXIubWFwKEludG86OmludG8pOworICAgICAgICAgICAgIGxldCBjb2RlYyA9IGNvZGVjLm1h cChJbnRvOjppbnRvKTsKK2RpZmYgLU5hdXIgY3JhbWphbS0yLjExLjAtb3JpZ2luYWwvc3JjL2lv LnJzIGNyYW1qYW0tMi4xMS4wL3NyYy9pby5ycworLS0tIGNyYW1qYW0tMi4xMS4wLW9yaWdpbmFs L3NyYy9pby5ycwkyMDI1LTA3LTI3IDIxOjQyOjA3LjAwMDAwMDAwMCArMDEwMAorKysrIGNyYW1q YW0tMi4xMS4wL3NyYy9pby5ycwkyMDI2LTA2LTE5IDIxOjI1OjM5LjI5OTE2MjU4NyArMDEwMAor QEAgLTE0LDcgKzE0LDYgQEAKKyB1c2UgcHlvMzo6ZmZpOworIHVzZSBweW8zOjpwcmVsdWRlOjoq OworIHVzZSBweW8zOjp0eXBlczo6UHlCeXRlczsKKy11c2UgcHlvMzo6SW50b1B5T2JqZWN0RXh0 OworIHVzZSBzdGQ6OnBhdGg6OlBhdGhCdWY7CisgCisgcHViKGNyYXRlKSB0cmFpdCBBc0J5dGVz IHsKK0BAIC0yMTAsNyArMjA5LDcgQEAKKyAgICAgcHViIGZuIGFzX3NsaWNlX211dCgmbXV0IHNl bGYpIC0+IFB5UmVzdWx0PCZtdXQgW3U4XT4geworICAgICAgICAgI1tjZmcoYW55KFB5UHksIFB5 X0dJTF9ESVNBQkxFRCkpXQorICAgICAgICAgeworLSAgICAgICAgICAgIFB5dGhvbjo6d2l0aF9n aWwofHB5fCB7CisrICAgICAgICAgICAgUHl0aG9uOjphdHRhY2gofHB5fCB7CisgICAgICAgICAg ICAgICAgIGxldCBpc19tZW1vcnl2aWV3ID0gdW5zYWZlIHsgZmZpOjpQeU1lbW9yeVZpZXdfQ2hl Y2soc2VsZi5vd25lci5hc19wdHIoKSkgfSA9PSAxOworICAgICAgICAgICAgICAgICBpZiBpc19t ZW1vcnl2aWV3IHx8IHNlbGYub3duZXIuYmluZChweSkuaXNfaW5zdGFuY2Vfb2Y6OjxQeUJ5dGVz PigpIHsKKyAgICAgICAgICAgICAgICAgICAgICNbY2ZnKFB5UHkpXQorQEAgLTI2MCwxMyArMjU5 LDE0IEBACisgCisgaW1wbCBEcm9wIGZvciBQeXRob25CdWZmZXIgeworICAgICBmbiBkcm9wKCZt dXQgc2VsZikgeworLSAgICAgICAgUHl0aG9uOjp3aXRoX2dpbCh8X3wgdW5zYWZlIHsgZmZpOjpQ eUJ1ZmZlcl9SZWxlYXNlKCZtdXQgKnNlbGYuaW5uZXIpIH0pCisrICAgICAgICBQeXRob246OmF0 dGFjaCh8X3wgdW5zYWZlIHsgZmZpOjpQeUJ1ZmZlcl9SZWxlYXNlKCZtdXQgKnNlbGYuaW5uZXIp IH0pCisgICAgIH0KKyB9CisgCistaW1wbDwncHk+IEZyb21QeU9iamVjdDwncHk+IGZvciBQeXRo b25CdWZmZXIgeworLSAgICBmbiBleHRyYWN0X2JvdW5kKG9iajogJkJvdW5kPCdweSwgUHlBbnk+ KSAtPiBQeVJlc3VsdDxTZWxmPiB7CistICAgICAgICBTZWxmOjp0cnlfZnJvbShvYmopCisraW1w bDwnYSwgJ3B5PiBGcm9tUHlPYmplY3Q8J2EsICdweT4gZm9yIFB5dGhvbkJ1ZmZlciB7CisrICAg IHR5cGUgRXJyb3IgPSBQeUVycjsKKysgICAgZm4gZXh0cmFjdChvYmo6IEJvcnJvd2VkPCdhLCAn cHksIFB5QW55PikgLT4gUHlSZXN1bHQ8U2VsZj4geworKyAgICAgICAgU2VsZjo6dHJ5X2Zyb20o JipvYmopCisgICAgIH0KKyB9CisgCitAQCAtMjg1LDcgKzI4NSw3IEBACisgICAgICAgICAgICAg aW5uZXI6IHN0ZDo6cGluOjpQaW46OmZyb20oYnVmKSwKKyAgICAgICAgICAgICBwb3M6IDAsCisg ICAgICAgICAgICAgI1tjZmcoYW55KFB5UHksIFB5X0dJTF9ESVNBQkxFRCkpXQorLSAgICAgICAg ICAgIG93bmVyOiBQeXRob246OndpdGhfZ2lsKHxweXwgb2JqLmludG9fcHlfYW55KHB5KS51bndy YXAoKSksCisrICAgICAgICAgICAgb3duZXI6IG9iai5jbG9uZSgpLnVuYmluZCgpLAorICAgICAg ICAgfTsKKyAgICAgICAgIC8vIHNhbml0eSBjaGVja3MKKyAgICAgICAgIGlmIGJ1Zi5pbm5lci5z aGFwZS5pc19udWxsKCkgeworQEAgLTYyOSw3ICs2MjksNyBAQAorICAgICB9CisgICAgIGZuIF9f Y29udGFpbnNfXygmc2VsZiwgcHk6IFB5dGhvbiwgeDogQnl0ZXNUeXBlKSAtPiBib29sIHsKKyAg ICAgICAgIGxldCBieXRlcyA9IHguYXNfYnl0ZXMoKTsKKy0gICAgICAgIHB5LmFsbG93X3RocmVh ZHMofHwgc2VsZi5pbm5lci5nZXRfcmVmKCkud2luZG93cyhieXRlcy5sZW4oKSkuYW55KHx3fCB3 ID09IGJ5dGVzKSkKKysgICAgICAgIHB5LmRldGFjaCh8fCBzZWxmLmlubmVyLmdldF9yZWYoKS53 aW5kb3dzKGJ5dGVzLmxlbigpKS5hbnkofHd8IHcgPT0gYnl0ZXMpKQorICAgICB9CisgICAgIGZu IF9fcmVwcl9fKCZtdXQgc2VsZiwgcHk6IFB5dGhvbikgLT4gUHlSZXN1bHQ8U3RyaW5nPiB7Cisg ICAgICAgICBPayhmb3JtYXQhKCJjcmFtamFtLkJ1ZmZlcjxsZW49ezo/fT4iLCBzZWxmLmxlbihw eSk/KSkKK2RpZmYgLU5hdXIgY3JhbWphbS0yLjExLjAtb3JpZ2luYWwvc3JjL2xpYi5ycyBjcmFt amFtLTIuMTEuMC9zcmMvbGliLnJzCistLS0gY3JhbWphbS0yLjExLjAtb3JpZ2luYWwvc3JjL2xp Yi5ycwkyMDI1LTA3LTI3IDIxOjQyOjA3LjAwMDAwMDAwMCArMDEwMAorKysrIGNyYW1qYW0tMi4x MS4wL3NyYy9saWIucnMJMjAyNi0wNi0xOSAyMToyNTozOS4yOTkzMjE0NTAgKzAxMDAKK0BAIC0y MjIsMTMgKzIyMiwxMyBAQAorICAgICAgICAgICAgICAgICBCeXRlc1R5cGU6OlJ1c3R5RmlsZShm KSA9PiB7CisgICAgICAgICAgICAgICAgICAgICBsZXQgYm9ycm93ZWQgPSBmLmJvcnJvdygpOwor ICAgICAgICAgICAgICAgICAgICAgbGV0IGZpbGUgPSAmYm9ycm93ZWQuaW5uZXI7CistICAgICAg ICAgICAgICAgICAgICAkcHkuYWxsb3dfdGhyZWFkcyh8fCB7CisrICAgICAgICAgICAgICAgICAg ICAkcHkuZGV0YWNoKHx8IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAkb3AoZmlsZSwgJm11 dCBDdXJzb3I6Om5ldygmbXV0IG91dHB1dCkgJCgsICRhcmdzKSogKQorICAgICAgICAgICAgICAg ICAgICAgfSkKKyAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgXyA9PiB7Cisg ICAgICAgICAgICAgICAgICAgICBsZXQgYnl0ZXMgPSAkaW5wdXQuYXNfYnl0ZXMoKTsKKy0gICAg ICAgICAgICAgICAgICAgICRweS5hbGxvd190aHJlYWRzKHx8IHsKKysgICAgICAgICAgICAgICAg ICAgICRweS5kZXRhY2gofHwgeworICAgICAgICAgICAgICAgICAgICAgICAgICRvcChieXRlcywg Jm11dCBDdXJzb3I6Om5ldygmbXV0IG91dHB1dCkgJCgsICRhcmdzKSogKQorICAgICAgICAgICAg ICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAgfQorQEAgLTI0NiwyMCArMjQ2LDIwIEBACisg ICAgICAgICAgICAgICAgICAgICAgICAgQnl0ZXNUeXBlOjpSdXN0eUZpbGUoZikgPT4geworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGJvcnJvd2VkID0gZi5ib3Jyb3dfbXV0 KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgZl9vdXQgPSAmbXV0IGJv cnJvd2VkLmlubmVyOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcHkuYWxsb3dfdGhy ZWFkcyh8fCB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICRweS5kZXRhY2gofHwgewor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9wKGZfaW4sICZtdXQgZl9vdXQgJCgs ICRhcmdzKSogKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQorICAgICAgICAgICAg ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgQnl0ZXNUeXBlOjpSdXN0 eUJ1ZmZlcihidWZmZXIpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11 dCBib3Jyb3dlZCA9IGJ1ZmZlci5ib3Jyb3dfbXV0KCk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBtdXQgYnVmX291dCA9ICZtdXQgYm9ycm93ZWQuaW5uZXI7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICRweS5hbGxvd190aHJlYWRzKHx8IHsKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJHB5LmRldGFjaCh8fCB7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkb3AoZl9pbiwgJm11dCBidWZfb3V0ICQoLCAkYXJncykqICkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAg ICAgICAgICAgICAgICAgICAgIF8gPT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs ZXQgYnl0ZXNfb3V0ID0gJG91dHB1dC5hc19ieXRlc19tdXQoKT87CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRweS5hbGxvd190aHJlYWRzKHx8IHsKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJHB5LmRldGFjaCh8fCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkb3AoZl9pbiwgJm11dCBDdXJzb3I6Om5ldyhieXRlc19vdXQpICQoLCAkYXJncykqICkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAgICAgICAgICB9 CitAQCAtMjcxLDIwICsyNzEsMjAgQEAKKyAgICAgICAgICAgICAgICAgICAgICAgICBCeXRlc1R5 cGU6OlJ1c3R5RmlsZShmKSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt dXQgYm9ycm93ZWQgPSBmLmJvcnJvd19tdXQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCBmX291dCA9ICZtdXQgYm9ycm93ZWQuaW5uZXI7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRweS5hbGxvd190aHJlYWRzKHx8IHsKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJHB5LmRldGFjaCh8fCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkb3AoYnl0ZXNfaW4sICZtdXQgZl9vdXQgJCgsICRhcmdzKSogKQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAg ICAgICAgICAgICAgICAgQnl0ZXNUeXBlOjpSdXN0eUJ1ZmZlcihidWZmZXIpID0+IHsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBib3Jyb3dlZCA9IGJ1ZmZlci5ib3Jyb3df bXV0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYnVmX291dCA9ICZt dXQgYm9ycm93ZWQuaW5uZXI7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICRweS5hbGxv d190aHJlYWRzKHx8IHsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHB5LmRldGFjaCh8 fCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb3AoYnl0ZXNfaW4sICZtdXQg YnVmX291dCAkKCwgJGFyZ3MpKiApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCisg ICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBfID0+ IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGJ5dGVzX291dCA9ICRvdXRwdXQu YXNfYnl0ZXNfbXV0KCk/OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcHkuYWxsb3df dGhyZWFkcyh8fCB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICRweS5kZXRhY2gofHwg eworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9wKGJ5dGVzX2luLCAmbXV0IEN1 cnNvcjo6bmV3KGJ5dGVzX291dCkgJCgsICRhcmdzKSopCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0pCisgICAgICAgICAgICAgICAgICAgICAgICAgfQorQEAgLTMzMSwxMSArMzMxLDEx IEBACisgICAgICAgICAgICAgICAgICAgICAgICAgQnl0ZXNUeXBlOjpSdXN0eUZpbGUoZikgPT4g eworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGJvcnJvd2VkID0gZi5ib3Jy b3dfbXV0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmX2luID0gJm11dCBi b3Jyb3dlZC5pbm5lcjsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHkuYWxsb3dfdGhy ZWFkcyh8fCBsaWJjcmFtamFtOjokY29kZWM6OmRlY29tcHJlc3MoZl9pbiwgaW5uZXIpLm1hcF9l cnIoSW50bzo6aW50bykpCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5LmRldGFjaCh8 fCBsaWJjcmFtamFtOjokY29kZWM6OmRlY29tcHJlc3MoZl9pbiwgaW5uZXIpLm1hcF9lcnIoSW50 bzo6aW50bykpCisgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg ICAgICAgIF8gPT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYnl0ZXMgPSBp bnB1dC5hc19ieXRlcygpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBweS5hbGxvd190 aHJlYWRzKHx8IHsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHkuZGV0YWNoKHx8IHsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYmNyYW1qYW06OiRjb2RlYzo6ZGVj b21wcmVzcygmbXV0IEN1cnNvcjo6bmV3KGJ5dGVzKSwgaW5uZXIpLm1hcF9lcnIoSW50bzo6aW50 bykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICB9CitAQCAtMzc3LDcgKzM3Nyw3IEBACisgICAgICAgICAgICAgfQorICAgICAgICAgICAg IGZuIF9fY29udGFpbnNfXygmc2VsZiwgcHk6IFB5dGhvbiwgeDogQnl0ZXNUeXBlKSAtPiBib29s IHsKKyAgICAgICAgICAgICAgICAgbGV0IGJ5dGVzID0geC5hc19ieXRlcygpOworLSAgICAgICAg ICAgICAgICBweS5hbGxvd190aHJlYWRzKHx8IHsKKysgICAgICAgICAgICAgICAgcHkuZGV0YWNo KHx8IHsKKyAgICAgICAgICAgICAgICAgICAgIHNlbGYuaW5uZXIKKyAgICAgICAgICAgICAgICAg ICAgICAgICAuYXNfcmVmKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKHxjfCBjLmdl dF9yZWYoKS53aW5kb3dzKGJ5dGVzLmxlbigpKS5hbnkofHd8IHcgPT0gYnl0ZXMpKQorZGlmZiAt TmF1ciBjcmFtamFtLTIuMTEuMC1vcmlnaW5hbC9zcmMvbHo0LnJzIGNyYW1qYW0tMi4xMS4wL3Ny Yy9sejQucnMKKy0tLSBjcmFtamFtLTIuMTEuMC1vcmlnaW5hbC9zcmMvbHo0LnJzCTIwMjUtMDct MjcgMjE6NDI6MDcuMDAwMDAwMDAwICswMTAwCisrKysgY3JhbWphbS0yLjExLjAvc3JjL2x6NC5y cwkyMDI2LTA2LTE5IDIxOjI1OjM5LjI5OTQ1ODgxMiArMDEwMAorQEAgLTgxLDcgKzgxLDcgQEAK KyAgICAgcHViIGZuIGRlY29tcHJlc3NfYmxvY2socHk6IFB5dGhvbiwgZGF0YTogQnl0ZXNUeXBl LCBvdXRwdXRfbGVuOiBPcHRpb248dXNpemU+KSAtPiBQeVJlc3VsdDxSdXN0eUJ1ZmZlcj4gewor ICAgICAgICAgbGV0IGJ5dGVzID0gZGF0YS5hc19ieXRlcygpOworIAorLSAgICAgICAgcHkuYWxs b3dfdGhyZWFkcyh8fCB7CisrICAgICAgICBweS5kZXRhY2gofHwgeworICAgICAgICAgICAgIG1h dGNoIG91dHB1dF9sZW4geworICAgICAgICAgICAgICAgICBTb21lKG4pID0+IHsKKyAgICAgICAg ICAgICAgICAgICAgIGxldCBtdXQgYnVmID0gdmVjIVswdTg7IG5dOworQEAgLTEyMyw3ICsxMjMs NyBAQAorICAgICAgICAgc3RvcmVfc2l6ZTogT3B0aW9uPGJvb2w+LAorICAgICApIC0+IFB5UmVz dWx0PFJ1c3R5QnVmZmVyPiB7CisgICAgICAgICBsZXQgYnl0ZXMgPSBkYXRhLmFzX2J5dGVzKCk7 CistICAgICAgICBweS5hbGxvd190aHJlYWRzKHx8IHsKKysgICAgICAgIHB5LmRldGFjaCh8fCB7 CisgICAgICAgICAgICAgbGliY3JhbWphbTo6bHo0OjpibG9jazo6Y29tcHJlc3NfdmVjKGJ5dGVz LCBjb21wcmVzc2lvbi5tYXAofHZ8IHYgYXMgXyksIGFjY2VsZXJhdGlvbiwgc3RvcmVfc2l6ZSkK KyAgICAgICAgIH0pCisgICAgICAgICAubWFwX2VycihDb21wcmVzc2lvbkVycm9yOjpmcm9tX2Vy cikKK0BAIC0xNjAsNyArMTYwLDcgQEAKKyAgICAgICAgIH0KKyAKKyAgICAgICAgIGxldCBvdXRf Ynl0ZXMgPSBvdXRwdXQuYXNfYnl0ZXNfbXV0KCk/OworLSAgICAgICAgcHkuYWxsb3dfdGhyZWFk cygKKysgICAgICAgIHB5LmRldGFjaCgKKyAgICAgICAgICAgICB8fCBtYXRjaCBsaWJjcmFtamFt OjpsejQ6OmJsb2NrOjpkZWNvbXByZXNzX2ludG8oYnl0ZXMsIG91dF9ieXRlcywgU29tZShzaXpl X3N0b3JlZCkpIHsKKyAgICAgICAgICAgICAgICAgT2socikgPT4gT2sociksCisgICAgICAgICAg ICAgICAgIC8vIEZhbGxiYWNrIGFuZCB0cnkgbmVnYXRpb24gb2Ygc3RvcmVkIHNpemUsIGluY2Fz ZSB3ZS90aGV5IGdvdCBpdCB3cm9uZzsKK0BAIC0yMDIsNyArMjAyLDcgQEAKKyAgICAgKSAtPiBQ eVJlc3VsdDx1c2l6ZT4geworICAgICAgICAgbGV0IGJ5dGVzID0gZGF0YS5hc19ieXRlcygpOwor ICAgICAgICAgbGV0IG91dF9ieXRlcyA9IG91dHB1dC5hc19ieXRlc19tdXQoKT87CistICAgICAg ICBweS5hbGxvd190aHJlYWRzKHx8IHsKKysgICAgICAgIHB5LmRldGFjaCh8fCB7CisgICAgICAg ICAgICAgbGliY3JhbWphbTo6bHo0OjpibG9jazo6Y29tcHJlc3NfaW50bygKKyAgICAgICAgICAg ICAgICAgYnl0ZXMsCisgICAgICAgICAgICAgICAgIG91dF9ieXRlcywKK2RpZmYgLU5hdXIgY3Jh bWphbS0yLjExLjAtb3JpZ2luYWwvc3JjL3NuYXBweS5ycyBjcmFtamFtLTIuMTEuMC9zcmMvc25h cHB5LnJzCistLS0gY3JhbWphbS0yLjExLjAtb3JpZ2luYWwvc3JjL3NuYXBweS5ycwkyMDI1LTA3 LTI3IDIxOjQyOjA3LjAwMDAwMDAwMCArMDEwMAorKysrIGNyYW1qYW0tMi4xMS4wL3NyYy9zbmFw cHkucnMJMjAyNi0wNi0xOSAyMToyNTozOS4yOTk1NTE5NjMgKzAxMDAKK0BAIC01NCw3ICs1NCw3 IEBACisgICAgICNbcHlvMyhzaWduYXR1cmUgPSAoZGF0YSwgb3V0cHV0X2xlbj1Ob25lKSldCisg ICAgIHB1YiBmbiBkZWNvbXByZXNzX3JhdyhweTogUHl0aG9uLCBkYXRhOiBCeXRlc1R5cGUsIG91 dHB1dF9sZW46IE9wdGlvbjx1c2l6ZT4pIC0+IFB5UmVzdWx0PFJ1c3R5QnVmZmVyPiB7CisgICAg ICAgICBsZXQgYnl0ZXMgPSBkYXRhLmFzX2J5dGVzKCk7CistICAgICAgICBweS5hbGxvd190aHJl YWRzKHx8IGxpYmNyYW1qYW06OnNuYXBweTo6cmF3OjpkZWNvbXByZXNzX3ZlYyhieXRlcykpCisr ICAgICAgICBweS5kZXRhY2gofHwgbGliY3JhbWphbTo6c25hcHB5OjpyYXc6OmRlY29tcHJlc3Nf dmVjKGJ5dGVzKSkKKyAgICAgICAgICAgICAubWFwX2VycihEZWNvbXByZXNzaW9uRXJyb3I6OmZy b21fZXJyKQorICAgICAgICAgICAgIC5tYXAoRnJvbTo6ZnJvbSkKKyAgICAgfQorQEAgLTcyLDcg KzcyLDcgQEAKKyAgICAgI1tweW8zKHNpZ25hdHVyZSA9IChkYXRhLCBvdXRwdXRfbGVuPU5vbmUp KV0KKyAgICAgcHViIGZuIGNvbXByZXNzX3JhdyhweTogUHl0aG9uLCBkYXRhOiBCeXRlc1R5cGUs IG91dHB1dF9sZW46IE9wdGlvbjx1c2l6ZT4pIC0+IFB5UmVzdWx0PFJ1c3R5QnVmZmVyPiB7Cisg ICAgICAgICBsZXQgYnl0ZXMgPSBkYXRhLmFzX2J5dGVzKCk7CistICAgICAgICBweS5hbGxvd190 aHJlYWRzKHx8IGxpYmNyYW1qYW06OnNuYXBweTo6cmF3Ojpjb21wcmVzc192ZWMoYnl0ZXMpKQor KyAgICAgICAgcHkuZGV0YWNoKHx8IGxpYmNyYW1qYW06OnNuYXBweTo6cmF3Ojpjb21wcmVzc192 ZWMoYnl0ZXMpKQorICAgICAgICAgICAgIC5tYXBfZXJyKENvbXByZXNzaW9uRXJyb3I6OmZyb21f ZXJyKQorICAgICAgICAgICAgIC5tYXAoRnJvbTo6ZnJvbSkKKyAgICAgfQorQEAgLTk0LDcgKzk0 LDcgQEAKKyAgICAgcHViIGZuIGNvbXByZXNzX3Jhd19pbnRvKHB5OiBQeXRob24sIGlucHV0OiBC eXRlc1R5cGUsIG11dCBvdXRwdXQ6IEJ5dGVzVHlwZSkgLT4gUHlSZXN1bHQ8dXNpemU+IHsKKyAg ICAgICAgIGxldCBieXRlc19pbiA9IGlucHV0LmFzX2J5dGVzKCk7CisgICAgICAgICBsZXQgYnl0 ZXNfb3V0ID0gb3V0cHV0LmFzX2J5dGVzX211dCgpPzsKKy0gICAgICAgIHB5LmFsbG93X3RocmVh ZHMofHwgbGliY3JhbWphbTo6c25hcHB5OjpyYXc6OmNvbXByZXNzKGJ5dGVzX2luLCBieXRlc19v dXQpKQorKyAgICAgICAgcHkuZGV0YWNoKHx8IGxpYmNyYW1qYW06OnNuYXBweTo6cmF3Ojpjb21w cmVzcyhieXRlc19pbiwgYnl0ZXNfb3V0KSkKKyAgICAgICAgICAgICAubWFwX2VycihDb21wcmVz c2lvbkVycm9yOjpmcm9tX2VycikKKyAgICAgfQorIAorQEAgLTEwMyw3ICsxMDMsNyBAQAorICAg ICBwdWIgZm4gZGVjb21wcmVzc19yYXdfaW50byhweTogUHl0aG9uLCBpbnB1dDogQnl0ZXNUeXBl LCBtdXQgb3V0cHV0OiBCeXRlc1R5cGUpIC0+IFB5UmVzdWx0PHVzaXplPiB7CisgICAgICAgICBs ZXQgYnl0ZXNfaW4gPSBpbnB1dC5hc19ieXRlcygpOworICAgICAgICAgbGV0IGJ5dGVzX291dCA9 IG91dHB1dC5hc19ieXRlc19tdXQoKT87CistICAgICAgICBweS5hbGxvd190aHJlYWRzKHx8IGxp YmNyYW1qYW06OnNuYXBweTo6cmF3OjpkZWNvbXByZXNzKGJ5dGVzX2luLCBieXRlc19vdXQpKQor KyAgICAgICAgcHkuZGV0YWNoKHx8IGxpYmNyYW1qYW06OnNuYXBweTo6cmF3OjpkZWNvbXByZXNz KGJ5dGVzX2luLCBieXRlc19vdXQpKQorICAgICAgICAgICAgIC5tYXBfZXJyKERlY29tcHJlc3Np b25FcnJvcjo6ZnJvbV9lcnIpCisgICAgIH0KKyAKK2RpZmYgLU5hdXIgY3JhbWphbS0yLjExLjAt b3JpZ2luYWwvc3JjL3h6LnJzIGNyYW1qYW0tMi4xMS4wL3NyYy94ei5ycworLS0tIGNyYW1qYW0t Mi4xMS4wLW9yaWdpbmFsL3NyYy94ei5ycwkyMDI1LTA3LTI3IDIxOjQyOjA3LjAwMDAwMDAwMCAr MDEwMAorKysrIGNyYW1qYW0tMi4xMS4wL3NyYy94ei5ycwkyMDI2LTA2LTE5IDIxOjI1OjM5LjI5 OTYzMDI2NSArMDEwMAorQEAgLTEzMCw3ICsxMzAsNyBAQAorIAorICAgICAvLy8gQXZhaWxhYmxl IEZpbHRlciBJRHMKKyAgICAgI1tkZXJpdmUoQ2xvbmUsIERlYnVnLCBQYXJ0aWFsRXEpXQorLSAg ICAjW3B5Y2xhc3MoZXEsIGVxX2ludCldCisrICAgICNbcHljbGFzcyhlcSwgZXFfaW50LCBmcm9t X3B5X29iamVjdCldCisgICAgICNbYWxsb3cobWlzc2luZ19kb2NzKV0KKyAgICAgcHViIGVudW0g RmlsdGVyIHsKKyAgICAgICAgIEFybSwKK0BAIC0xNTAsNyArMTUwLDcgQEAKKyAKKyAgICAgLy8v IE1hdGNoRmluZGVyLCB1c2VkIHdpdGggT3B0aW9ucy5tZiBhdHRyaWJ1dGUKKyAgICAgI1tkZXJp dmUoQ2xvbmUsIERlYnVnLCBQYXJ0aWFsRXEpXQorLSAgICAjW3B5Y2xhc3MoZXEsIGVxX2ludCld CisrICAgICNbcHljbGFzcyhlcSwgZXFfaW50LCBmcm9tX3B5X29iamVjdCldCisgICAgICNbYWxs b3cobWlzc2luZ19kb2NzKV0KKyAgICAgcHViIGVudW0gTWF0Y2hGaW5kZXIgeworICAgICAgICAg SGFzaENoYWluMywKK0BAIC0xNzQsNyArMTc0LDcgQEAKKyAKKyAgICAgLy8vIE1hdGNoRmluZGVy LCB1c2VkIHdpdGggT3B0aW9ucy5tb2RlIGF0dHJpYnV0ZQorICAgICAjW2Rlcml2ZShDbG9uZSwg RGVidWcsIFBhcnRpYWxFcSldCistICAgICNbcHljbGFzcyhlcSwgZXFfaW50KV0KKysgICAgI1tw eWNsYXNzKGVxLCBlcV9pbnQsIGZyb21fcHlfb2JqZWN0KV0KKyAgICAgI1thbGxvdyhtaXNzaW5n X2RvY3MpXQorICAgICBwdWIgZW51bSBNb2RlIHsKKyAgICAgICAgIEZhc3QsCitAQCAtMTkyLDcg KzE5Miw3IEBACisgICAgIC8vLyBGaWx0ZXJDaGFpbiwgc2ltaWxhciB0byB0aGUgZGVmYXVsdCBQ eXRob24gWFogZmlsdGVyIGNoYWluIHdoaWNoIGlzIGEgbGlzdCBvZgorICAgICAvLy8gZGljdHMu CisgICAgICNbZGVyaXZlKERlYnVnLCBDbG9uZSldCistICAgICNbcHljbGFzc10KKysgICAgI1tw eWNsYXNzKGZyb21fcHlfb2JqZWN0KV0KKyAgICAgcHViIHN0cnVjdCBGaWx0ZXJDaGFpbihWZWM8 RmlsdGVyQ2hhaW5JdGVtPik7CisgCisgICAgICNbcHltZXRob2RzXQorQEAgLTIyOSw3ICsyMjks NyBAQAorICAgICAvLy8gRmlsdGVyQ2hhaW5JdGVtLiBJbiBQeXRob24ncyBsem1hIG1vZHVsZSwg dGhpcyByZXByZXNlbnRzIGEgc2luZ2xlIGRpY3QgaW4gdGhlCisgICAgIC8vLyBmaWx0ZXIgY2hh aW4gbGlzdC4gVG8gYmUgYWRkZWQgdG8gdGhlIGBGaWx0ZXJDaGFpbmAKKyAgICAgI1tkZXJpdmUo Q2xvbmUsIERlYnVnLCBEZWZhdWx0KV0KKy0gICAgI1tweWNsYXNzXQorKyAgICAjW3B5Y2xhc3Mo ZnJvbV9weV9vYmplY3QpXQorICAgICBwdWIgc3RydWN0IEZpbHRlckNoYWluSXRlbSB7CisgICAg ICAgICBmaWx0ZXI6IEZpbHRlciwKKyAgICAgICAgIG9wdGlvbnM6IE9wdGlvbnMsCitAQCAtMjUw LDcgKzI1MCw3IEBACisgCisgICAgIC8vLworICAgICAjW2Rlcml2ZShDbG9uZSwgRGVidWcsIERl ZmF1bHQpXQorLSAgICAjW3B5Y2xhc3NdCisrICAgICNbcHljbGFzcyhmcm9tX3B5X29iamVjdCld CisgICAgIHB1YiBzdHJ1Y3QgT3B0aW9ucyB7CisgICAgICAgICBwcmVzZXQ6IE9wdGlvbjx1MzI+ LAorICAgICAgICAgZGljdF9zaXplOiBPcHRpb248dTMyPiwKK0BAIC0zMzEsNyArMzMxLDcgQEAK KyAKKyAgICAgLy8vIFBvc3NpYmxlIGZvcm1hdHMKKyAgICAgI1tkZXJpdmUoQ2xvbmUsIERlYnVn LCBQYXJ0aWFsRXEpXQorLSAgICAjW3B5Y2xhc3MoZXEsIGVxX2ludCldCisrICAgICNbcHljbGFz cyhlcSwgZXFfaW50LCBmcm9tX3B5X29iamVjdCldCisgICAgIHB1YiBlbnVtIEZvcm1hdCB7Cisg ICAgICAgICAvLy8gQXV0byBzZWxlY3QgdGhlIGZvcm1hdCwgZm9yIGNvbXByZXNzaW9uIHRoaXMg aXMgWFosCisgICAgICAgICAvLy8gZm9yIGRlY29tcHJlc3Npb24gaXQgd2lsbCBiZSBkZXRlcm1p bmVkIGJ5IHRoZSBjb21wcmVzc2VkIGlucHV0LgorQEAgLTM2Miw3ICszNjIsNyBAQAorIAorICAg ICAvLy8gUG9zc2libGUgQ2hlY2sgY29uZmlndXJhdGlvbnMKKyAgICAgI1tkZXJpdmUoRGVidWcs IENsb25lLCBQYXJ0aWFsRXEpXQorLSAgICAjW3B5Y2xhc3MoZXEsIGVxX2ludCldCisrICAgICNb cHljbGFzcyhlcSwgZXFfaW50LCBmcm9tX3B5X29iamVjdCldCisgICAgICNbYWxsb3cobWlzc2lu Z19kb2NzKV0KKyAgICAgcHViIGVudW0gQ2hlY2sgeworICAgICAgICAgQ3JjNjQsCgpkaWZmIC0t Z2l0IGEvcHl0aG9uLWNyYW1qYW0uc3BlYyBiL3B5dGhvbi1jcmFtamFtLnNwZWMKaW5kZXggYjFj ZmJkMy4uNjZlZGYyNCAxMDA2NDQKLS0tIGEvcHl0aG9uLWNyYW1qYW0uc3BlYworKysgYi9weXRo b24tY3JhbWphbS5zcGVjCkBAIC0zNyw3ICszNywxMSBAQCBTb3VyY2UxOiAgICAgICAgZ2V0X3Nv dXJjZQogIyBodHRwczovL2dpdGh1Yi5jb20vbWlsZXNncmFuZ2VyL2NyYW1qYW0vcHVsbC8yNDAK ICMgUmViYXNlZCBvbiAyLjExLjAuIFdpdGhvdXQgY2hhbmdlcyB0byBDYXJnby5sb2NrIGFuZAog IyAuZ2l0aHViL3dvcmtmbG93cy9DSS55bWwsIHdoaWNoIGFyZSBub3QgcmVsZXZhbnQgZG93bnN0 cmVhbS4KLVBhdGNoOiAgICAgICAgICBjcmFtamFtLTIuMTEuMC1weW8zLTAuMjgucGF0Y2gKKyMK KyMgRnVydGhlciB1cGRhdGUgdG8gMC4yOSwgd2l0aG91dCBzb3VyY2UtY29kZSBjaGFuZ2VzLCBp bnRyb2R1Y2luZyBvbmUgbmV3CisjIGRlcHJlY2F0aW9uIHdhcm5pbmcgYXMgbm90ZWQgaW4KKyMg aHR0cHM6Ly9naXRodWIuY29tL21pbGVzZ3Jhbmdlci9jcmFtamFtL3B1bGwvMjQwI2lzc3VlY29t bWVudC00NzU2ODg2NTk5LgorUGF0Y2g6ICAgICAgICAgIGNyYW1qYW0tMi4xMS4wLXB5bzMtMC4y OS5wYXRjaAogCiBCdWlsZFN5c3RlbTogICAgcHlwcm9qZWN0CiBCdWlsZE9wdGlvbihpbnN0YWxs KTogLS1hc3NlcnQtbGljZW5zZSBjcmFtamFtCg==