From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Anand Tamariya Newsgroups: gmane.emacs.devel Subject: [Patch] Basic WYSIWYG printing in GNU Emacs Date: Tue, 10 Aug 2021 14:59:46 +0530 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="00000000000023cb7e05c9312575" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="1134"; mail-complaints-to="usenet@ciao.gmane.io" To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Aug 10 11:30:49 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mDO5x-000077-6f for ged-emacs-devel@m.gmane-mx.org; Tue, 10 Aug 2021 11:30:49 +0200 Original-Received: from localhost ([::1]:37966 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mDO5v-0004rJ-Lf for ged-emacs-devel@m.gmane-mx.org; Tue, 10 Aug 2021 05:30:47 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:46152) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mDO5D-00045I-MR for emacs-devel@gnu.org; Tue, 10 Aug 2021 05:30:03 -0400 Original-Received: from mail-io1-xd2a.google.com ([2607:f8b0:4864:20::d2a]:42934) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mDO59-0005vm-Gf for emacs-devel@gnu.org; Tue, 10 Aug 2021 05:30:03 -0400 Original-Received: by mail-io1-xd2a.google.com with SMTP id h1so31227505iol.9 for ; Tue, 10 Aug 2021 02:29:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=O4mHndq6Kc7NgAp3qSx1JnI1PO4wh5jHFg9+eslDJbY=; b=E4TW0PT4ygoGK8J87GANP1F9/uogkHrrJ/Si5IVZgmW3CtueS13fx2msaYelMKUiH0 UQXPjhSJxMrBzj2voWBUqnMewVZ6ThUp5MEIeUgrIMXBf1Z7S4srNPdwFToahXYAExMl dIPfWnqrlTSnFdLRfU4zxxi1rcPzw35U7Dt1kjsw1kskbB0vlO1gJVW4nH6fv555cZjz F18IcK/REF6etRSLhRxjJQHtx6B6UkmlwZW991Mb+XS0fVT0WTZlw+MN0jqjvqo3AxWs CkxHPXsA26LAfHw428iLSw5SqmTvYB0Actow0rMOMk0BSNHsR8bteWtN6SPUDEQy6uWG kiaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=O4mHndq6Kc7NgAp3qSx1JnI1PO4wh5jHFg9+eslDJbY=; b=so+Jcj15evxi8a4uf5kKmd5goeb8k70RCuC9iwB5YWtShOgM89WM6iIuTSIs/sFi3i IPvm9RpJJIaPvI8WQuHw3MXQLSxBe73IP1SLTJ5py0VOELQ3jgh0pxFM7ndbI2lYSHsM 6PrnjJ9Ax21j1E1QvQcpIIOoGiPQyLRTZZjrn5woAxJS2p5EVMPF/JmwI79EwjcWqQn5 ChT6vVFRLfDb1W83dvMt4UT0GnJWdr6kwdAHejic+Gn0DcWRd2Z8zBCBTdgkatVrODA2 mrEzwcqJJjnEiNzRBJxdpZGEWJYE41PXgVUHo+EzYmg9RKt+JUGLcb0EvIRfKsPj7QVZ nA4g== X-Gm-Message-State: AOAM531iBlrUXDiqQQQKghHxckce2qHRYYvetxEH+ZliLjRaCJk/6Cl9 Mr0b+/SkE3IaPXiFSTFCi9XGhEpaCgI5DZMYgUsWrz5n/2c= X-Google-Smtp-Source: ABdhPJzhgQ9zI+9MjZ/Y3tCpP+6iEwBMeJD6GlqGo5PPxXJH77iIlNCyUTgDtSv3EBtPZDSlHUWeWZiQqc/SbyhcG/E= X-Received: by 2002:a5d:8990:: with SMTP id m16mr59733iol.170.1628587797207; Tue, 10 Aug 2021 02:29:57 -0700 (PDT) Received-SPF: pass client-ip=2607:f8b0:4864:20::d2a; envelope-from=atamariya@gmail.com; helo=mail-io1-xd2a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:272265 Archived-At: --00000000000023cb7e05c9312575 Content-Type: multipart/alternative; boundary="00000000000023cb7c05c9312573" --00000000000023cb7c05c9312573 Content-Type: text/plain; charset="UTF-8" Here's a patch for basic WYSIWYG printing in GNU Emacs. This should enable following print features in Emacs: - Size and colour variation in text - Unicode text (including Hindi, script for Eastern European languages, logographic scripts like Chinese, Japanese and Korean (CJK), right to left (RTL) scripts like Arabic and Hebrew, and music symbols) - Fancy fonts - Tables - Images - Zero font setup (Tip: Use Truetype fonts in your system) *Screenshots:* https://lifeofpenguin.blogspot.com/2021/06/basic-wysiwyg-printing-in-gnu-emacs.html *Note:* This disables ps-mule.el for printing. --00000000000023cb7c05c9312573 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Here's a patch for basic WYSIWYG printing in GNU = Emacs. This should enable following print=C2=A0 features in Emacs:
  • Size and colour variation in text
  • Unicode text (including= Hindi, script for Eastern European
    languages, logographic scripts like Chinese, Japanese and Korean (CJK), rig= ht to left (RTL) scripts like Arabic and Hebrew, and music symbols)
  • Fancy fonts
  • Tables
  • Images
  • Zero font setup (Tip: Us= e Truetype fonts in your system)

Note: This disables ps-mule.el for printing.

--00000000000023cb7c05c9312573-- --00000000000023cb7e05c9312575 Content-Type: text/plain; charset="US-ASCII"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ks5uamfd0 ZGlmZiAtLWdpdCBhL2V0Yy9wcy1wcmluMS5wcyBiL2V0Yy9wcy1wcmluMS5wcwppbmRleCBmNjgx NzRiOTkxLi4wZGIyZjJmMTgyIDEwMDY0NAotLS0gYS9ldGMvcHMtcHJpbjEucHMKKysrIGIvZXRj L3BzLXByaW4xLnBzCkBAIC03Niw2ICs3NiwyMiBAQCBTdGFuZGFyZEVuY29kaW5nIDQ2IDgyIGdl dGludGVydmFsIGFsb2FkIHBvcAogMjU2IHBhY2tlZGFycmF5IGRlZgogfWlmZWxzZQogCisvRGVm TWV0cmljc3sKKyAgICAvRm9udEhlaWdodCBBc2NlbnQgRGVzY2VudCBzdWIgZGVmCSUgdXNlIGBz dWInIGJlY2F1c2UgZGVzY2VudCA8IDAKKworICAgICUgRGVmaW5lIHRoZXNlIGluIGNhc2UgdGhl eSdyZSBub3QgaW4gdGhlIEZvbnRJbmZvCisgICAgJSAoYWxzbywgaGVyZSB0aGV5J3JlIGVhc2ll ciB0byBnZXQgdG8pLgorICAgIC9VbmRlcmxpbmVQb3NpdGlvbiAgRGVzY2VudCAwLjIwIG11bCBk ZWYKKyAgICAvT3ZlcmxpbmVQb3NpdGlvbiAgIERlc2NlbnQgVW5kZXJsaW5lUG9zaXRpb24gc3Vi IEFzY2VudCBhZGQgZGVmCisgICAgL1N0cmlrZW91dFBvc2l0aW9uICBBc2NlbnQgMC4zMCBtdWwg ZGVmCisgICAgL0xpbmVUaGlja25lc3MgICAgICBGb250SGVpZ2h0IDAuMDIgbXVsIGRlZgorICAg IC9Yc2hhZG93ICAgICAgICAgICAgRm9udEhlaWdodCAgMC4wOCBtdWwgZGVmCisgICAgL1lzaGFk b3cgICAgICAgICAgICBGb250SGVpZ2h0IC0wLjA5IG11bCBkZWYKKyAgICAvU3BhY2VCYWNrZ3Jv dW5kICAgIERlc2NlbnQgbmVnIFVuZGVybGluZVBvc2l0aW9uIGFkZCBkZWYKKyAgICAvWEJveCAg ICAgICAgICAgICAgIERlc2NlbnQgbmVnIGRlZgorICAgIC9ZQm94ICAgICAgICAgICAgICAgTGlu ZVRoaWNrbmVzcyAwLjcgbXVsIGRlZgorfWRlZgorCiAvcmVlbmNvZGVGb250SVNPeyAlZGVmCiAg IGR1cAogICBsZW5ndGggMTIgYWRkIGRpY3QJJSBNYWtlIGEgbmV3IGZvbnQgKGEgbmV3IGRpY3Qg dGhlIHNhbWUgc2l6ZQpAQCAtMTE1LDE5ICsxMzEsNyBAQCBTdGFuZGFyZEVuY29kaW5nIDQ2IDgy IGdldGludGVydmFsIGFsb2FkIHBvcAogICAgICBQcmltYXJ5Rm9udC9Gb250TWF0cml4IGdldCB0 cmFuc2Zvcm0vQXNjZW50IGV4Y2ggZGVmIHBvcAogICAgICBQcmltYXJ5Rm9udC9Gb250TWF0cml4 IGdldCB0cmFuc2Zvcm0vRGVzY2VudCBleGNoIGRlZiBwb3B9aWZlbHNlCiAKLSAgICAvRm9udEhl aWdodCBBc2NlbnQgRGVzY2VudCBzdWIgZGVmCSUgdXNlIGBzdWInIGJlY2F1c2UgZGVzY2VudCA8 IDAKLQotICAgICUgRGVmaW5lIHRoZXNlIGluIGNhc2UgdGhleSdyZSBub3QgaW4gdGhlIEZvbnRJ bmZvCi0gICAgJSAoYWxzbywgaGVyZSB0aGV5J3JlIGVhc2llciB0byBnZXQgdG8pLgotICAgIC9V bmRlcmxpbmVQb3NpdGlvbiAgRGVzY2VudCAwLjcwIG11bCBkZWYKLSAgICAvT3ZlcmxpbmVQb3Np dGlvbiAgIERlc2NlbnQgVW5kZXJsaW5lUG9zaXRpb24gc3ViIEFzY2VudCBhZGQgZGVmCi0gICAg L1N0cmlrZW91dFBvc2l0aW9uICBBc2NlbnQgMC4zMCBtdWwgZGVmCi0gICAgL0xpbmVUaGlja25l c3MgICAgICBGb250SGVpZ2h0IDAuMDUgbXVsIGRlZgotICAgIC9Yc2hhZG93ICAgICAgICAgICAg Rm9udEhlaWdodCAgMC4wOCBtdWwgZGVmCi0gICAgL1lzaGFkb3cgICAgICAgICAgICBGb250SGVp Z2h0IC0wLjA5IG11bCBkZWYKLSAgICAvU3BhY2VCYWNrZ3JvdW5kICAgIERlc2NlbnQgbmVnIFVu ZGVybGluZVBvc2l0aW9uIGFkZCBkZWYKLSAgICAvWEJveCAgICAgICAgICAgICAgIERlc2NlbnQg bmVnIGRlZgotICAgIC9ZQm94ICAgICAgICAgICAgICAgTGluZVRoaWNrbmVzcyAwLjcgbXVsIGRl ZgorICAgIERlZk1ldHJpY3MKIAogICAgIGN1cnJlbnRkaWN0CQklIExlYXZlIHRoZSBuZXcgZm9u dCBvbiB0aGUgc3RhY2sKICAgICBlbmQJCQklIFN0b3AgdXNpbmcgdGhlIGZvbnQgYXMgdGhlIGN1 cnJlbnQgZGljdGlvbmFyeS4KQEAgLTEzOCw2ICsxNDIsMTcgQEAgU3RhbmRhcmRFbmNvZGluZyA0 NiA4MiBnZXRpbnRlcnZhbCBhbG9hZCBwb3AKICUgRm9udCBkZWZpbml0aW9uCiAvRGVmRm9udHtm aW5kZm9udCBleGNoIHNjYWxlZm9udCByZWVuY29kZUZvbnRJU099ZGVmCiAKKy9EZXJpdmVGb250 IHsJJSBuZXduYW1lIGNoYXJzdHJpbmcgZW5jb2RpbmcgZm9udG5hbWUgIHwgIGZvbnQKKyAgICBm aW5kZm9udCBkdXAgbGVuZ3RoIGRpY3QgYmVnaW4KKwl7IDEgaW5kZXggL0ZJRCBuZSB7IGRlZiB9 IHsgcG9wIHBvcCB9IGlmZWxzZSB9IGZvcmFsbAorICAgICAgICAvRW5jb2RpbmcgZXhjaCBkZWYK KyAgICAgICAgL0NoYXJTdHJpbmdzIGV4Y2ggZGVmCisJY3VycmVudGRpY3QKKyAgICBlbmQKKyAg ICBkZWZpbmVmb250CisgICAgcG9wCit9IGJpbmQgZGVmCisKICUgRm9udCBzZWxlY3Rpb24KIC9G ewogICBmaW5kZm9udApAQCAtMTUzLDkgKzE2OCwyNSBAQCBTdGFuZGFyZEVuY29kaW5nIDQ2IDgy IGdldGludGVydmFsIGFsb2FkIHBvcAogICBkdXAvU3BhY2VCYWNrZ3JvdW5kICAgZ2V0L1NwYWNl QmFja2dyb3VuZCAgIGV4Y2ggZGVmCiAgIGR1cC9YQm94ICAgICAgICAgICAgICBnZXQvWEJveCAg ICAgICAgICAgICAgZXhjaCBkZWYKICAgZHVwL1lCb3ggICAgICAgICAgICAgIGdldC9ZQm94ICAg ICAgICAgICAgICBleGNoIGRlZgorICAlIC9MaW5lSGVpZ2h0IEZvbnRIZWlnaHQgZGVmCiAgIHNl dGZvbnQKIH1kZWYKIAorL0ZTIHsKKyAgICBleGNoIGZpbmRmb250IGV4Y2ggc2NhbGVmb250IHNl dGZvbnQKKworICAgIGN1cnJlbnRmb250L0ZvbnRUeXBlIGdldCAwIG5lCisgICAgey9QcmltYXJ5 Rm9udCBjdXJyZW50Zm9udCBkZWZ9CisgICAgey9QcmltYXJ5Rm9udCBjdXJyZW50Zm9udCAvRkRl cFZlY3RvciBnZXQgMCBnZXQgZGVmfQorICAgIGlmZWxzZQorCisgICAgUHJpbWFyeUZvbnQvRm9u dEJCb3ggZ2V0IGFsb2FkIHBvcAorICAgIFByaW1hcnlGb250L0ZvbnRNYXRyaXggZ2V0IHRyYW5z Zm9ybS9Bc2NlbnQgZXhjaCBkZWYgcG9wCisgICAgUHJpbWFyeUZvbnQvRm9udE1hdHJpeCBnZXQg dHJhbnNmb3JtL0Rlc2NlbnQgZXhjaCBkZWYgcG9wCisKKyAgICBEZWZNZXRyaWNzCit9ZGVmCisK IC9GRy9zZXRyZ2Jjb2xvciBsb2FkIGRlZgogCiAvYmcgZmFsc2UgZGVmCkBAIC0xOTYsOSArMjI3 LDkgQEAgU3RhbmRhcmRFbmNvZGluZyA0NiA4MiBnZXRpbnRlcnZhbCBhbG9hZCBwb3AKICAgZG9i YWNrZ3JvdW5kCiB9ZGVmCiAKLS9MaW5lSFMgTGluZUhlaWdodCBMaW5lU3BhY2luZyBhZGQgZGVm CisvTGluZUhTeyBMaW5lSGVpZ2h0IExpbmVTcGFjaW5nIGFkZCB9ZGVmCiAvUGFyYWdyYXBoSFMg TGluZUhlaWdodCBQYXJhZ3JhcGhTcGFjaW5nIGFkZCBkZWYKLS9QU0x7L2ggZXhjaCBkZWYgYmd7 ZW9sYmd9aWYgIDAgIGN1cnJlbnRwb2ludCBleGNoIHBvcCBoIHN1YiAgbW92ZXRvfWRlZgorL1BT THtjdXJyZW50cG9pbnQgcG9wIG5lZyBMaW5lSFMgbmVnIHJtb3ZldG99ZGVmCiAvUExOe1ByaW50 TGluZU51bWJlcntkb0xpbmVOdW1iZXJ9aWZ9ZGVmCiAKIC9TTHtMaW5lSFMgUFNMIGlzTGluZVN0 ZXAgcG9wfWRlZgklIFNvZnQgTGluZWZlZWQKQEAgLTIxMSwxMiArMjQyLDEyIEBAIFN0YW5kYXJk RW5jb2RpbmcgNDYgODIgZ2V0aW50ZXJ2YWwgYWxvYWQgcG9wCiAvZHB7cHJpbnQgMiBjb3B5ICBl eGNoIDQwIHN0cmluZyBjdnMgcHJpbnQoLCApcHJpbnQgPX1kZWYKIAogL1d7Ci0gICggKXN0cmlu Z3dpZHRoCSUgR2V0IHRoZSB3aWR0aCBvZiBhIHNwYWNlIGluIHRoZSBjdXJyZW50IGZvbnQuCisg IChuKXN0cmluZ3dpZHRoCSUgR2V0IHRoZSBlbiB3aWR0aCBpbiB0aGUgY3VycmVudCBmb250Lgog ICBwb3AJCQklIERpc2NhcmQgdGhlIFkgY29tcG9uZW50LgogICBtdWwJCQklIE11bHRpcGx5IHRo ZSB3aWR0aCBvZiBhIHNwYWNlCiAJCQklIGJ5IHRoZSBudW1iZXIgb2Ygc3BhY2VzIHRvIHBsb3QK ICAgYmd7ZHVwIGRvYmFja2dyb3VuZH1pZgotICAwIHJtb3ZldG8KKyAgY3VycmVudHBvaW50IGV4 Y2ggcG9wIG1vdmV0bwogfWRlZgogCiAvRWZmZWN0ICAgICAgICAgIDAgZGVmCkBAIC0yNjYsNiAr Mjk3LDEzIEBAIFN0YW5kYXJkRW5jb2RpbmcgNDYgODIgZ2V0aW50ZXJ2YWwgYWxvYWQgcG9wCiAg IEVmZmVjdE92ZXJsaW5lIHtPdmVybGluZVBvc2l0aW9uICBIbGluZX1pZgklIG92ZXJsaW5lCiB9 YmluZCBkZWYKIAorJSBzdGFjazogIHN0cmluZyB5cG9zaXRpb24gIHwtICAtLQorL3lTIHsKKwkv eSBleGNoIGRlZgorCTAgeSBybW92ZXRvIFMKKwkwIHkgbmVnIHJtb3ZldG8KK30gZGVmCisKICUg c3RhY2s6ICBwb3NpdGlvbiAgfC0gIC0tCiAvSGxpbmV7CiAgIGN1cnJlbnRwb2ludCBleGNoIHBv cCBhZGQgZHVwCmRpZmYgLS1naXQgYS9saXNwL2Rlc2NyLXRleHQuZWwgYi9saXNwL2Rlc2NyLXRl eHQuZWwKaW5kZXggMWRiYmQ0MjE0OC4uOTgxN2FjY2FkOSAxMDA2NDQKLS0tIGEvbGlzcC9kZXNj ci10ZXh0LmVsCisrKyBiL2xpc3AvZGVzY3ItdGV4dC5lbApAQCAtODQyLDYgKzg0Miw0OCBAQCBk ZXNjcmliZS1jaGFyCiAgICAgICAgICAgKGlmIHRleHQtcHJvcHMtZGVzYyAoaW5zZXJ0IHRleHQt cHJvcHMtZGVzYykpCiAgICAgICAgICAgKHNldHEgYnVmZmVyLXJlYWQtb25seSB0KSkpKSkpCiAK KyhkZWZ1biBjb21wb3NpdGUtY2hhci1wIChwb3MpCisgICJSZXR1cm5zIG5vbi1uaWwgaWYgUE9T IGlzIGEgbm9uLWNvbXBvc2l0ZSBjaGFyLgorIElmIHBvaW50IGlzIGFmdGVyIGEgY29tcG9zaXRl IGNoYXIgb24gYSBub24tY29tcG9zaXRlIGNoYXIsCisgYGZpbmQtY29tcG9zaXRpb24nIHJldHVy bnMgbm9uLW5pbC4gVGhpcyBmdW5jdGlvbiBpcyB1c2VmdWwgaW4KKyBzdWNoIGNhc2VzLiIKKyAg KGxldCAoKGNvbXBvc2l0aW9uIChmaW5kLWNvbXBvc2l0aW9uIHBvcykpKQorICAod2hlbiBjb21w b3NpdGlvbgorICAgICAgICA7OyBXaGVuIHRoZSBjb21wb3NpdGlvbiBpcyB0cml2aWFsIChpLmUu IGNvbXBvc2VkIG9ubHkgd2l0aCB0aGUKKyAgICAgICAgOzsgY3VycmVudCBjaGFyYWN0ZXIgaXRz ZWxmIHdpdGhvdXQgYW55IGFsdGVybmF0ZSBjaGFyYWN0ZXJzKSwKKyAgICAgICAgOzsgd2UgZG9u J3Qgc2hvdyB0aGUgY29tcG9zaXRpb24gaW5mb3JtYXRpb24uICBPdGhlcndpc2UsIHN0b3JlCisg ICAgICAgIDs7IHR3byBkZXNjcmlwdGl2ZSBzdHJpbmdzIGluIHRoZSBmaXJzdCB0d28gZWxlbWVu dHMgb2YKKyAgICAgICAgOzsgQ09NUE9TSVRJT04uCisgICAgICAgIChvciAoY2F0Y2ggJ3RhZwor ICAgICAgICAgICAgICAobGV0ICgoZnJvbSAoY2FyIGNvbXBvc2l0aW9uKSkKKyAgICAgICAgICAg ICAgICAgICAgKHRvIChudGggMSBjb21wb3NpdGlvbikpCisgICAgICAgICAgICAgICAgICAgIChj b21wb25lbnRzIChudGggMiBjb21wb3NpdGlvbikpCisgICAgICAgICAgICAgICAgICAgICkKKyAg ICAgICAgICAgICAgICAoaWYgKGFuZCAodmVjdG9ycCBjb21wb25lbnRzKSAodmVjdG9ycCAoYXJl ZiBjb21wb25lbnRzIDApKSkKKyAgICAgICAgICAgICAgICAgICAgKGxldCAoKGlkeCAoLSBwb3Mg ZnJvbSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ2x5cGhzIChsZ3N0cmluZy1nbHlw aC1sZW4gY29tcG9uZW50cykpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChpIDApIGogZ2x5 cGggZ2x5cGgtZnJvbSkKKyAgICAgICAgICAgICAgICAgICAgICA7OyBDT01QT05FTlRTIGlzIGEg Z3N0cmluZy4gIEZpbmQgYSBncmFwaGVtZQorICAgICAgICAgICAgICAgICAgICAgIDs7IGNsdXN0 ZXIgY29udGFpbmluZyB0aGUgY3VycmVudCBjaGFyYWN0ZXIuCisgICAgICAgICAgICAgICAgICAg ICAgKHdoaWxlIChhbmQgKDwgaSBuZ2x5cGhzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChzZXRxIGdseXBoIChsZ3N0cmluZy1nbHlwaCBjb21wb25lbnRzIGkpKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICg8IChsZ2x5cGgtdG8gZ2x5cGgpIGlkeCkpCisg ICAgICAgICAgICAgICAgICAgICAgICAoc2V0cSBpICgxKyBpKSkpCisgICAgICAgICAgICAgICAg ICAgICAgKGlmIChvciAobm90IGdseXBoKSAoPSBpIG5nbHlwaHMpKQorICAgICAgICAgICAgICAg ICAgICAgICAgICA7OyBUaGUgY29tcG9zaXRpb24gaXMgYnJva2VuLgorICAgICAgICAgICAgICAg ICAgICAgICAgICAodGhyb3cgJ3RhZyBuaWwpKQorICAgICAgICAgICAgICAgICAgICAgIChzZXRx IGdseXBoLWZyb20gKGxnbHlwaC1mcm9tIGdseXBoKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRvICgrIGZyb20gKGxnbHlwaC10byBnbHlwaCkgMSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmcm9tICgrIGZyb20gZ2x5cGgtZnJvbSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBqIGkpCisgICAgICAgICAgICAgICAgICAgICAgKHdoaWxlIChhbmQgKDwgaiBuZ2x5cGhz KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXRxIGdseXBoIChsZ3N0cmlu Zy1nbHlwaCBjb21wb25lbnRzIGopKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICg9IChsZ2x5cGgtZnJvbSBnbHlwaCkgZ2x5cGgtZnJvbSkpCisgICAgICAgICAgICAgICAgICAg ICAgICAoc2V0cSBqICgxKyBqKSkpCisgICAgICAgICAgICAgICAgICAgICAgKG5jb25jIGNvbXBv c2l0aW9uIChsaXN0IGkgKDEtIGopKSkpCisgICAgICAgICAgICAgICAgICApKSkKKyAgICAgICAg ICAgIChzZXRxIGNvbXBvc2l0aW9uIG5pbCkpKSkpCisKIDs7OyBEZXNjcmliZS1DaGFyLUVsRG9j CiAKIChkZWZ1biBkZXNjcmliZS1jaGFyLWVsZG9jLS10cnVuY2F0ZSAobmFtZSB3aWR0aCkKZGlm ZiAtLWdpdCBhL2xpc3AvcHMtZGVmLmVsIGIvbGlzcC9wcy1kZWYuZWwKaW5kZXggNDlkNzJkM2Jl NS4uY2NiNzBlODM4YSAxMDA2NDQKLS0tIGEvbGlzcC9wcy1kZWYuZWwKKysrIGIvbGlzcC9wcy1k ZWYuZWwKQEAgLTI4LDYgKzI4LDcgQEAKIDs7IFNlZSBwcy1wcmludC5lbCBmb3IgZG9jdW1lbnRh dGlvbi4KIAogOzs7IENvZGU6CisocmVxdWlyZSAnZGVzY3ItdGV4dCkKIAogKGRlY2xhcmUtZnVu Y3Rpb24gcHMtcGxvdC13aXRoLWZhY2UgInBzLXByaW50IiAoZnJvbSB0byBmYWNlKSkKIChkZWNs YXJlLWZ1bmN0aW9uIHBzLXBsb3Qtc3RyaW5nICAgICJwcy1wcmludCIgKHN0cmluZykpCkBAIC0x MDMsNiArMTA0LDIwIEBAIHBzLWNvbG9yLWZvcm1hdAogKGRlZnZhciBwcy1mbG9hdC1mb3JtYXQg IiUwLjNmICIpCiAKIAorKGRlZnVuIHBzLWZvbnQtbmFtZSAoZm9udCkKKyAgIlBTIGZvbnQgbmFt ZSBmb3IgRk9OVCBvYmplY3QuIgorICAobGV0KiAoKGluZm8gKGZvbnQtaW5mbyBmb250KSkKKyAg ICAgICAgIChmaWxlIChhcmVmIGluZm8gMTIpKSkKKyAgICAob3IgKGZvbnQtZ2V0IGZvbnQgOnBv c3RzY3JpcHRuYW1lKQorICAgICAgICAoZmlsZS1uYW1lLWJhc2UgZmlsZSkpKSkKKworKGRlZnZh ciBwcy0tY21hcCBuaWwKKyAgIkNoYXIgdGFibGUgY29udGFpbmluZyAoRk9OVCBDT0RFIChHTFlQ SCBJTkRJQ0VTKSkgZm9yIGEKKyAgY2hhcmFjdGVyLiBHbHlwaCBpbmRpY2VzIGFyZSBpbmRpY2Vz IGluIFBTIGZvbnQuIikKKworKGRlZnZhciBwcy0tYWRqdXN0bWVudCBuaWwKKyAgIlggYWRqdXN0 bWVudCBmb3IgY29tcG9zaXRlIGdseXBocy4iKQorCiAoZGVmdW4gcHMtZ2VuZXJhdGUtcG9zdHNj cmlwdC13aXRoLWZhY2VzMSAoZnJvbSB0bykKICAgOzsgR2VuZXJhdGUgc29tZSBQb3N0U2NyaXB0 LgogICAobGV0ICgoZmFjZSAnZGVmYXVsdCkKQEAgLTExMCwzMSArMTI1LDE2NiBAQCBwcy1nZW5l cmF0ZS1wb3N0c2NyaXB0LXdpdGgtZmFjZXMxCiAJOzsgRW1hY3MKIAkocHJvcGVydHktY2hhbmdl IGZyb20pCiAJKG92ZXJsYXktY2hhbmdlIGZyb20pCi0JYmVmb3JlLXN0cmluZyBhZnRlci1zdHJp bmcpCi0gICAgKHdoaWxlICg8IGZyb20gdG8pCisgICAgICAgIChmb250LWNoYW5nZSBmcm9tKQor ICAgICAgICBmYW1pbHkgY2hhci1pbmZvIGdseXBoIGdseXBocyBjaGFycworICAgICAgICBmb250 cyBmb250LWluZGV4IGZvbnQtZ2x5cGhzIGZvbnQtY2hhcnMKKyAgICAgICAgcG9zIG5leHQgbHRy CisgICAgICAgIGNvbXBvbmVudHMKKyAgICAgICAgKQorICAgIDs7IEdlbmVyYXRlIGEgbWFwIGNv bnRhaW5pbmcgZm9udC1mYW1pbHkgYW5kIGEgbGlzdCBvZiAoZm9udCBpbmRleCAoZ2x5cGggaW5k aWNlcykpCisgICAgOzsgZnJvbSB0aGF0IGZhbWlseSB1c2VkIGluIHRoZSBkb2MgZm9yIHVuaWNv ZGUgY2hhcgorICAgIChnb3RvLWNoYXIgZnJvbSkKKyAgICAoc2V0cSBwcy0tY21hcCAobWFrZS1j aGFyLXRhYmxlICdjbWFwKSkKKyAgICAoc2V0cSBwcy0tYWRqdXN0bWVudCAobWFrZS1jaGFyLXRh YmxlICdhZGp1c3RtZW50KSkKKyAgICAod2hpbGUgKGFuZCAobm90IChlb2JwKSkKKyAgICAgICAg ICAgICAgICAob3IgKD4gKGNoYXItYWZ0ZXIpIDI1NSkKKyAgICAgICAgICAgICAgICAgICAgKGFu ZCAocmUtc2VhcmNoLWZvcndhcmQgIlteWzphc2NpaTpdXSIgdG8gdCkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpKSkKKyAgICAgICAgICAg ICAgICApCisgICAgICAoaWYgKGNvbXBvc2l0ZS1jaGFyLXAgKHBvaW50KSkKKyAgICAgICAgICAo cHJvZ24KKyAgICAgICAgICAgIChzZXRxIGNoYXItaW5mbyAoZmluZC1jb21wb3NpdGlvbiAocG9p bnQpKQorICAgICAgICAgICAgICAgICAgcG9zIChudGggMCBjaGFyLWluZm8pCisgICAgICAgICAg ICAgICAgICBuZXh0IChudGggMSBjaGFyLWluZm8pCisgICAgICAgICAgICAgICAgICBjb21wb25l bnRzIChudGggMiBjaGFyLWluZm8pCisgICAgICAgICAgICAgICAgICBmYW1pbHkgKHBzLWZvbnQt bmFtZSAobGdzdHJpbmctZm9udCBjb21wb25lbnRzKSkpCisgICAgICAgICAgICApCisgICAgICAg IChzZXRxIGNoYXItaW5mbyAoaW50ZXJuYWwtY2hhci1mb250IChwb2ludCkpCisgICAgICAgICAg ICAgIHBvcyAocG9pbnQpCisgICAgICAgICAgICAgIG5leHQgKDErIChwb2ludCkpCisgICAgICAg ICAgICAgIGNvbXBvbmVudHMgbmlsCisgICAgICAgICAgICAgIGdseXBoIChjZHIgY2hhci1pbmZv KQorICAgICAgICAgICAgICBmYW1pbHkgKHBzLWZvbnQtbmFtZSAoY2FyIGNoYXItaW5mbykpKSkK KworICAgICAgKHVubGVzcyAoYXNzb2MgZmFtaWx5IGZvbnRzKQorICAgICAgICAoc2V0cSBmb250 LWluZGV4IChsZW5ndGggZm9udHMpKQorICAgICAgICAocHVzaCAobGlzdCBmYW1pbHkgZm9udC1p bmRleCAoYXJlZiBjaGFyLXNjcmlwdC10YWJsZSAoY2hhci1hZnRlcikpKSBmb250cykKKyAgICAg ICAgKHB1c2ggKGNvbnMgZm9udC1pbmRleCBuaWwpIGZvbnQtY2hhcnMpCisgICAgICAgIChwdXNo IChjb25zIGZvbnQtaW5kZXggbmlsKSBmb250LWdseXBocykpCisgICAgICAoc2V0cSBmb250LWlu ZGV4IChudGggMSAoYXNzb2MgZmFtaWx5IGZvbnRzKSkpCisKKyAgICAgIChzZXRxIGNoYXJzICBu aWwpCisgICAgICAoc2V0cSBnbHlwaHMgKGNkciAoYXNzb2MgZm9udC1pbmRleCBmb250LWdseXBo cykpKQorICAgICAgKGlmIGNvbXBvbmVudHMKKyAgICAgICAgICA7OyBMb29wIGZvciBjb21wb3Np dGVzCisgICAgICAgICAgKGRvdGltZXMgKGkgKGxnc3RyaW5nLWdseXBoLWxlbiBjb21wb25lbnRz KSkKKyAgICAgICAgICAgIChzZXRxIGdseXBoIChsZ2x5cGgtY29kZSAobGdzdHJpbmctZ2x5cGgg Y29tcG9uZW50cyBpKSkpCisgICAgICAgICAgICAodW5sZXNzIChtZW1xIGdseXBoIGdseXBocykK KyAgICAgICAgICAgICAgKHB1c2ggZ2x5cGggZ2x5cGhzKSkKKyAgICAgICAgICAgIChwdXNoICgx LSAobGVuZ3RoIChtZW1xIGdseXBoIGdseXBocykpKSBjaGFycykKKyAgICAgICAgICAgIChpZiAo PSBpIDApCisgICAgICAgICAgICAgICAgKGFzZXQgcHMtLWFkanVzdG1lbnQgcG9zCisgICAgICAg ICAgICAgICAgICAgICAgKGxnbHlwaC1hZGp1c3RtZW50IChsZ3N0cmluZy1nbHlwaCBjb21wb25l bnRzIGkpKSkpCisgICAgICAgICAgICApCisgICAgICAgIDs7IEZvciBub24tY29tcG9zaXRlcwor ICAgICAgICAodW5sZXNzIChtZW1xIGdseXBoIGdseXBocykKKyAgICAgICAgICAocHVzaCBnbHlw aCBnbHlwaHMpKQorICAgICAgICAocHVzaCAoMS0gKGxlbmd0aCAobWVtcSBnbHlwaCBnbHlwaHMp KSkgY2hhcnMpKQorICAgICAgKHNldGNkciAoYXNzb2MgZm9udC1pbmRleCBmb250LWdseXBocykg Z2x5cGhzKQorCisgICAgICA7OyAobWVzc2FnZSAiJXMgJXMiIHBvcyAocmV2ZXJzZSBjaGFycykp CisgICAgICAoYXNldCBwcy0tY21hcCBwb3MgKGNvbnMgZm9udC1pbmRleCAocmV2ZXJzZSBjaGFy cykpKQorICAgICAgOzsgKG1lc3NhZ2UgIiVzIiBjaGFyLWluZm8pCisgICAgICAoZ290by1jaGFy IG5leHQpCisgICAgICApCisgICAgOzsgKHBwIGZvbnRzKQorICAgIDs7IChwcCBmb250LWNoYXJz KQorICAgIDs7IChwcCBmb250LWdseXBocykKKworICAgIDs7IFVzZSBmb250LWdseXBocyB0byBn ZW5lcmF0ZSBuZXcgUFMgZm9udAorICAgIChkb2xpc3QgKGUgZm9udC1nbHlwaHMpCisgICAgICAo bGV0KiAoKGZvbnQtaW5kZXggKGNhciBlKSkKKyAgICAgICAgICAgICAoZm9udCAocG9wIGZvbnRz KSkKKyAgICAgICAgICAgICAoc2NyaXB0IChudGggMiBmb250KSkKKyAgICAgICAgICAgICAoZW5j b2Rpbmctc3RyIG5pbCkKKyAgICAgICAgICAgICAobWFwLXN0ciBuaWwpCisgICAgICAgICAgICAg KGNtYXAtc3RyIG5pbCkKKyAgICAgICAgICAgICAoaSAwKQorICAgICAgICAgICAgIChnbHlwaHMg KGNkciBlKSkpCisgICAgICAgICh3aGVuIChtZW1xIHNjcmlwdCAnKGhhbiBrYW5hKSkKKyAgICAg ICAgICA7OyBDSURGb250IGZvciBDSksgc2NyaXB0CisgICAgICAgICAgKG1hcGMgKGxhbWJkYSAo aykKKyAgICAgICAgICAgICAgICAgIChzZXRxIGNtYXAtc3RyIChjb25jYXQgY21hcC1zdHIKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1hdCAiPCUwMng+IDwl MDJ4PiAlZFxuIiBpIGkgaykpCisgICAgICAgICAgICAgICAgICAgICAgICBpICgxKyBpKSkpCisg ICAgICAgICAgICAgICAgKG5yZXZlcnNlIGdseXBocykpCisgICAgICAgICAgKHNldHEgaSAoMS0g aSkpCisgICAgICAgICAgKHBzLW91dHB1dCAoZm9ybWF0ICIKKy9DSURJbml0IC9Qcm9jU2V0IGZp bmRyZXNvdXJjZSBiZWdpbgorMTIgZGljdCBiZWdpbgorYmVnaW5jbWFwIC9DSURTeXN0ZW1JbmZv IDw8CisvUmVnaXN0cnkgKEFkb2JlKSAvT3JkZXJpbmcgKElkZW50aXR5KSAvU3VwcGxlbWVudCAw ID4+IGRlZgorL0NNYXBOYW1lIC9DTSBkZWYKKy9DTWFwVHlwZSAxIGRlZgorMSBiZWdpbmNvZGVz cGFjZXJhbmdlCis8JTAyeD4gPCUwMng+CitlbmRjb2Rlc3BhY2VyYW5nZQorCislZCBiZWdpbmNp ZHJhbmdlCislcworZW5kY2lkcmFuZ2UKK2VuZGNtYXAgQ01hcE5hbWUgY3VycmVudGRpY3QgL0NN YXAgZGVmaW5lcmVzb3VyY2UKK3BvcCBlbmQgZW5kCisvRiVkIC9DTSBbLyVzXSBjb21wb3NlZm9u dCBwb3AKKyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCBpICgxKyBpKSBjbWFwLXN0 ciBmb250LWluZGV4IChjYXIgZm9udCkpKSkKKworICAgICAgICAodW5sZXNzIChtZW1xIHNjcmlw dCAnKGhhbiBrYW5hKSkKKyAgICAgICAgICA7OyBUeXBlNDIgZm9udAorICAgICAgICAgIChtYXBj IChsYW1iZGEgKGspCisgICAgICAgICAgICAgICAgICAoc2V0cSBlbmNvZGluZy1zdHIgKGNvbmNh dCBlbmNvZGluZy1zdHIgKGZvcm1hdCAiL2clZCAiIGspKQorICAgICAgICAgICAgICAgICAgICAg ICAgbWFwLXN0ciAoY29uY2F0IG1hcC1zdHIgKGZvcm1hdCAiL2clZCAlZFxuIiBrIGspKSkpCisg ICAgICAgICAgICAgICAgKG5yZXZlcnNlIGdseXBocykpCisgICAgICAgICAgOzsgKHBwIGVuY29k aW5nLXN0cikKKyAgICAgICAgICA7OyAocHAgbWFwLXN0cikKKyAgICAgICAgICAocHMtb3V0cHV0 IChmb3JtYXQgIi9FIFslc10gZGVmXG4iIGVuY29kaW5nLXN0cikpCisgICAgICAgICAgKHBzLW91 dHB1dCAoZm9ybWF0ICIvQyA8PCVzPj4gZGVmXG4iIG1hcC1zdHIpKQorICAgICAgICAgIChwcy1v dXRwdXQgKGZvcm1hdCAiL0YlZCBDIEUgLyVzIERlcml2ZUZvbnRcbiIgZm9udC1pbmRleCAoY2Fy IGZvbnQpKSkKKyAgICAgICAgICApKSkKKworICAgICh3aGlsZSAoYW5kIChnb3RvLWNoYXIgZnJv bSkKKyAgICAgICAgICAgICAgICAoY2hhci1hZnRlcikKKyAgICAgICAgICAgICAgICAoPCBmcm9t IHRvKSkKKwogICAgICAgKGFuZCAoPCBwcm9wZXJ0eS1jaGFuZ2UgdG8pICA7IERvbid0IHNlYXJj aCBmb3IgcHJvcGVydHkgY2hhbmdlCiAJCQkJCTsgdW5sZXNzIHByZXZpb3VzIHNlYXJjaCBzdWNj ZWVkZWQuCiAJICAgKHNldHEgcHJvcGVydHktY2hhbmdlIChuZXh0LXByb3BlcnR5LWNoYW5nZSBm cm9tIG5pbCB0bykpKQogICAgICAgKGFuZCAoPCBvdmVybGF5LWNoYW5nZSB0bykgICA7IERvbid0 IHNlYXJjaCBmb3Igb3ZlcmxheSBjaGFuZ2UKIAkJCQkJOyB1bmxlc3MgcHJldmlvdXMgc2VhcmNo IHN1Y2NlZWRlZC4KLQkgICAoc2V0cSBvdmVybGF5LWNoYW5nZSAobWluIChuZXh0LW92ZXJsYXkt Y2hhbmdlIGZyb20pCi0JCQkJICAgICB0bykpKQotICAgICAgKHNldHEgcG9zaXRpb24gKG1pbiBw cm9wZXJ0eS1jaGFuZ2Ugb3ZlcmxheS1jaGFuZ2UpCi0JICAgIGJlZm9yZS1zdHJpbmcgbmlsCi0J ICAgIGFmdGVyLXN0cmluZyBuaWwpCisJICAgKHNldHEgb3ZlcmxheS1jaGFuZ2UgKG5leHQtb3Zl cmxheS1jaGFuZ2UgZnJvbSkpKQorICAgICAgKGFuZCAob3IgKG51bGwgZm9udC1jaGFuZ2UpICg8 IGZvbnQtY2hhbmdlIHRvKSkgIDsgRG9uJ3Qgc2VhcmNoIGZvciBwcm9wZXJ0eSBjaGFuZ2UKKwkJ CQkJOyB1bmxlc3MgcHJldmlvdXMgc2VhcmNoIHN1Y2NlZWRlZC4KKyAgICAgICAgICAgOzsgUmFu Z2Ugb2YgY2hhcmFjdGVycyBzaGFyaW5nIHNhbWUgZm9udAorICAgICAgICAgICA7OyBXaGl0ZXNw YWNlIHVzZXMgZGVmYXVsdCBmb250IHVzdWFsbHkgaW4gYmV0d2VlbiBtaXhlZCBmb250IGZhbWls aWVzLgorICAgICAgICAgICA7OyBIZW5jZSBtdXN0IGJlIHRyZWF0ZWQgc2VwYXJhdGVseS4KKyAg ICAgICAgICAgKHNldHEgZm9udC1jaGFuZ2UgKG9yIChpZiAoPSAoc3ludGF4LWNsYXNzIChzeW50 YXgtYWZ0ZXIgZnJvbSkpIDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KCsgZnJvbSAoc2tpcC1jaGFycy1mb3J3YXJkICJbIFx0XG5dIikpKQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHdoZW4gKGVxIChjaGFyLWNoYXJzZXQgKGNoYXItYWZ0ZXIpKSAn YXNjaWkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgKHJlLXNlYXJj aC1mb3J3YXJkICJbWzptdWx0aWJ5dGU6XVs6Ymxhbms6XV0iIG5pbCB0KQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxLSAocG9pbnQpKSkpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAod2hlbiAoZXEgKGNoYXItY2hhcnNldCAoY2hhci1hZnRlcikp ICd1bmljb2RlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5kIChyZS1z ZWFyY2gtZm9yd2FyZCAiW1s6YXNjaWk6XVs6Ymxhbms6XV0iIG5pbCB0KQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxLSAocG9pbnQpKSkpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICApKQorICAgICAgICAgICApCisgICAgICAoc2V0cSBwb3NpdGlv bgorICAgICAgICAgICAgKGlmIChudWxsIGZvbnQtY2hhbmdlKQorICAgICAgICAgICAgICAgICht aW4gcHJvcGVydHktY2hhbmdlIG92ZXJsYXktY2hhbmdlKQorICAgICAgICAgICAgICAobWluIHBy b3BlcnR5LWNoYW5nZSBvdmVybGF5LWNoYW5nZSBmb250LWNoYW5nZSkpCisgICAgICAgICAgICBs dHIgKGdldC1jaGFyLWNvZGUtcHJvcGVydHkgKGNoYXItYWZ0ZXIgZnJvbSkgJ2JpZGktY2xhc3Mp CisgICAgICAgICAgICApCisgICAgICAoaWYgKGNvbXBvc2l0ZS1jaGFyLXAgZnJvbSkKKyAgICAg ICAgICAoc2V0cSBjaGFyLWluZm8gKGZpbmQtY29tcG9zaXRpb24gZnJvbSkKKyAgICAgICAgICAg ICAgICBwb3NpdGlvbiAobnRoIDEgY2hhci1pbmZvKSkpCisgICAgICA7OyAobWVzc2FnZSAiJXMg JXMgJXMgJXMgJXMiIGZyb20gcHJvcGVydHktY2hhbmdlIG92ZXJsYXktY2hhbmdlIGZvbnQtY2hh bmdlIGx0cikKICAgICAgIChzZXRxIGZhY2UKIAkgICAgKGNvbmQgKChpbnZpc2libGUtcCBmcm9t KQogCQkgICAnZW1hY3MtLWludmlzaWJsZS0tZmFjZSkKIAkJICAoKGdldC1jaGFyLXByb3BlcnR5 IGZyb20gJ2ZhY2UpKQogCQkgICh0ICdkZWZhdWx0KSkpCi0gICAgICA7OyBQbG90IHVwIHRvIHRo aXMgcmVjb3JkLgotICAgICAgKGFuZCBiZWZvcmUtc3RyaW5nCi0JICAgKHBzLXBsb3Qtc3RyaW5n IGJlZm9yZS1zdHJpbmcpKQotICAgICAgKHBzLXBsb3Qtd2l0aC1mYWNlIGZyb20gcG9zaXRpb24g ZmFjZSkKLSAgICAgIChhbmQgYWZ0ZXItc3RyaW5nCi0JICAgKHBzLXBsb3Qtc3RyaW5nIGFmdGVy LXN0cmluZykpCi0gICAgICAoc2V0cSBmcm9tIHBvc2l0aW9uKSkKLSAgICAocHMtcGxvdC13aXRo LWZhY2UgZnJvbSB0byBmYWNlKSkpCisgICAgICAocHMtcGxvdC13aXRoLWZhY2UgZnJvbSBwb3Np dGlvbiBmYWNlIChub3QgKG1lbXEgbHRyICcoUiBBTCkpKSkKKyAgICAgIChzZXRxIGZyb20gcG9z aXRpb24pCisgICAgICApKSkKIAogDAogOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OwpkaWZmIC0tZ2l0IGEvbGlz cC9wcy1wcmludC5lbCBiL2xpc3AvcHMtcHJpbnQuZWwKaW5kZXggYWNlMzAwMTc4MS4uOGM3Yjg3 Y2VlMyAxMDA2NDQKLS0tIGEvbGlzcC9wcy1wcmludC5lbAorKysgYi9saXNwL3BzLXByaW50LmVs CkBAIC0xNDUyLDYgKzE0NTIsNyBAQCBwcy1wcmludC12ZXJzaW9uCiAKIAogKHJlcXVpcmUgJ2xw cikKKyhyZXF1aXJlICdpbWFnZS1jb252ZXJ0ZXIpCiAKIDs7IExvYWQgRW1hY3MgZGVmaW5pdGlv bnMKIChyZXF1aXJlICdwcy1kZWYpCkBAIC0yODI4LDEwICsyODI5LDEwIEBAIHBzLWZvbnQtaW5m by1kYXRhYmFzZQogICA6dmVyc2lvbiAiMjAiCiAgIDpncm91cCAncHMtcHJpbnQtZm9udCkKIAot KGRlZmN1c3RvbSBwcy1mb250LWZhbWlseSAnQ291cmllcgorKGRlZmN1c3RvbSBwcy1mb250LWZh bWlseSBuaWwKICAgIkZvbnQgZmFtaWx5IG5hbWUgZm9yIG9yZGluYXJ5IHRleHQsIHdoZW4gZ2Vu ZXJhdGluZyBQb3N0U2NyaXB0LiIKICAgOnR5cGUgJ3N5bWJvbAotICA6dmVyc2lvbiAiMjAiCisg IDp2ZXJzaW9uICIyOCIKICAgOmdyb3VwICdwcy1wcmludC1mb250KQogCiAoZGVmY3VzdG9tIHBz LWZvbnQtc2l6ZSAgICcoNyAuIDguNSkKQEAgLTMxODAsNyArMzE4MSw3IEBAIHBzLXVuZGVybGlu ZWQtZmFjZXMKICAgOnZlcnNpb24gIjIwIgogICA6Z3JvdXAgJ3BzLXByaW50LWZhY2UpCiAKLShk ZWZjdXN0b20gcHMtdXNlLWZhY2UtYmFja2dyb3VuZCBuaWwKKyhkZWZjdXN0b20gcHMtdXNlLWZh Y2UtYmFja2dyb3VuZCB0CiAgICJTcGVjaWZ5IGlmIGZhY2UgYmFja2dyb3VuZCBzaG91bGQgYmUg dXNlZC4KIAogVmFsaWQgdmFsdWVzIGFyZToKQEAgLTMzOTksNyArMzQwMCw3IEBAIHBzLXBhcmFn cmFwaC1zcGFjaW5nCiAgIDp2ZXJzaW9uICIyMS4xIgogICA6Z3JvdXAgJ3BzLXByaW50LW1pc2Nl bGxhbnkpCiAKLShkZWZjdXN0b20gcHMtcGFyYWdyYXBoLXJlZ2V4cCAiWyBcdF0qJCIKKyhkZWZj dXN0b20gcHMtcGFyYWdyYXBoLXJlZ2V4cCBuaWwKICAgIlNwZWNpZnkgcGFyYWdyYXBoIGRlbGlt aXRlci4KIAogSXQgc2hvdWxkIGJlIGEgcmVnZXhwIG9yIG5pbC4KQEAgLTM0MDgsNyArMzQwOSw3 IEBAIHBzLXBhcmFncmFwaC1yZWdleHAKICAgOnR5cGUgJyhjaG9pY2UgOm1lbnUtdGFnICJQYXJh Z3JhcGggRGVsaW1pdGVyIgogCQkgKGNvbnN0IDp0YWcgIk5vIERlbGltaXRlciIgbmlsKQogCQkg KHJlZ2V4cCA6dGFnICJEZWxpbWl0ZXIgUmVnZXhwIikpCi0gIDp2ZXJzaW9uICIyMS4xIgorICA6 dmVyc2lvbiAiMjgiCiAgIDpncm91cCAncHMtcHJpbnQtbWlzY2VsbGFueSkKIAogKGRlZmN1c3Rv bSBwcy1iZWdpbi1jdXQtcmVnZXhwIG5pbApAQCAtMzkyNCw2ICszOTI1LDcgQEAgcHMtZGVmYXVs dC1mb3JlZ3JvdW5kCiAoZGVmdmFyIHBzLWRlZmF1bHQtYmFja2dyb3VuZCBuaWwpCiAoZGVmdmFy IHBzLWRlZmF1bHQtY29sb3IgbmlsKQogKGRlZnZhciBwcy1jdXJyZW50LWNvbG9yIG5pbCkKKyhk ZWZ2YXIgcHMtY3VycmVudC1oZWlnaHQgbmlsKQogKGRlZnZhciBwcy1jdXJyZW50LWJnIG5pbCkK IChkZWZ2YXIgcHMtZm9yZWdyb3VuZC1saXN0IG5pbCkKIApAQCAtNDM0OSw4ICs0MzUxLDYyIEBA IHBzLW5iLXBhZ2VzCiAoZGVmbWFjcm8gcHMtbG9va3VwIChrZXkpIGAoY2RyIChhc3NxICxrZXkg Zm9udC1lbnRyeSkpKQogKGRlZm1hY3JvIHBzLXNpemUtc2NhbGUgKGtleSkgYCgvICgqIChwcy1s b29rdXAgLGtleSkgZm9udC1zaXplKSBzaXplKSkKIAorKGRlZnVuIHBzLWZpbmQtZm9udCAoJm9w dGlvbmFsIGZvbnQtZmFtaWx5KQorICAiUG9wdWxhdGUgYHBzLWZvbnQtaW5mby1kYXRhYmFzZScg d2l0aCBkZWZhdWx0IGZvbnQKK2luZm8uIERlZmF1bHQgZm9udCBpcyB1c2VkIGZvciBkaXNwbGF5 aW5nIEFTQ0lJIGNoYXJhY3RlcnMuIgorICAob3IgKGFzc3EgZm9udC1mYW1pbHkgcHMtZm9udC1p bmZvLWRhdGFiYXNlKQorICAgICAgOzsgRXZlcnkgZG9jdW1lbnQgbWlnaHQgaGF2ZSBhIGRpZmZl cmVudCBkZWZhdWx0IGZvbnQKKyAgICAgIDs7cHMtZm9udC1mYW1pbHkKKyAgICAgIChsZXQgKGZv bnQgdHlwZXMgbmFtZSBzaXplIGxpbmUtaGVpZ2h0IHNwYWNlLXdpZHRoIGF2Zy1jaGFyLXdpZHRo CisgICAgICAgICAgICAgICAgIGluZm8gcHJvcCBvbGQtcHJvcCBwb3MgZW1wdHkpCisgICAgICAg ICh3aGVuICh6ZXJvcCAoYnVmZmVyLXNpemUpKQorICAgICAgICAgIDs7IE5lZWQgYXRsZWFzdCBv bmUgY2hhciBmb3IgYW5hbHlzaXMKKyAgICAgICAgICAoaW5zZXJ0ICIgIikKKyAgICAgICAgICAo c2V0cSBlbXB0eSB0KSkKKworICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAoZ290 by1jaGFyIChwb2ludC1taW4pKQorICAgICAgICAgICh1bmxlc3MgKDwgKGNoYXItYWZ0ZXIpIDI1 NSkKKyAgICAgICAgICAgIChyZS1zZWFyY2gtZm9yd2FyZCAiWzphc2NpaTpdIiAocG9pbnQtbWF4 KSB0KSkKKworICAgICAgICAgIChzZXRxIHBvcyAocG9pbnQpCisgICAgICAgICAgICAgICAgcHJv cCAoZ2V0LXRleHQtcHJvcGVydHkgcG9zICdmYWNlKQorICAgICAgICAgICAgICAgIG9sZC1wcm9w IChpZiAobGlzdHAgcHJvcCkgcHJvcCAobGlzdCBwcm9wKSkpKQorICAgICAgICAoZG9saXN0ICh0 eXBlICcoZGVmYXVsdCBib2xkIGl0YWxpYyBib2xkLWl0YWxpYykpCisgICAgICAgICAgKHNldHEg cHJvcCAoYXBwZW5kIG9sZC1wcm9wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAo ZXEgdHlwZSAnYm9sZCkgJyg6d2VpZ2h0IGJvbGQpKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoaWYgKGVxIHR5cGUgJ2l0YWxpYykgJyg6c2xhbnQgb2JsaXF1ZSkpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChpZiAoZXEgdHlwZSAnYm9sZC1pdGFsaWMpICcoOndlaWdodCBi b2xkIDpzbGFudCBvYmxpcXVlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkKKyAg ICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgcG9zICgxKyBwb3MpICdmYWNlIHByb3ApCisKKyAg ICAgICAgICAoc2V0cSBpbmZvIChmb250LWluZm8gKGZvbnQtYXQgcG9zKSkKKyAgICAgICAgICAg ICAgICBuYW1lIChwcy1mb250LW5hbWUgKGZvbnQtYXQgcG9zKSkKKyAgICAgICAgICAgICAgICBz aXplIChhcmVmIGluZm8gMikKKyAgICAgICAgICAgICAgICBsaW5lLWhlaWdodCAoYXJlZiBpbmZv IDMpCisgICAgICAgICAgICAgICAgc3BhY2Utd2lkdGggKGFyZWYgaW5mbyAxMCkKKyAgICAgICAg ICAgICAgICBhdmctY2hhci13aWR0aCAoYXJlZiBpbmZvIDExKSkKKyAgICAgICAgICAod2hlbiAo ZXEgdHlwZSAnZGVmYXVsdCkKKyAgICAgICAgICAgIChzZXRxIGZvbnQtZmFtaWx5IChpbnRlcm4g bmFtZSkKKyAgICAgICAgICAgICAgICAgIHBzLWZvbnQtZmFtaWx5IGZvbnQtZmFtaWx5KSkKKyAg ICAgICAgICAocHVzaCAoY29ucyB0eXBlIG5hbWUpIHR5cGVzKSkKKworICAgICAgICA7OyBSZXN0 b3JlIGJ1ZmZlciBzdGF0ZQorICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgcG9zICgxKyBwb3Mp ICdmYWNlIG9sZC1wcm9wKQorICAgICAgICAod2hlbiBlbXB0eSAoZXJhc2UtYnVmZmVyKSkKKwor ICAgICAgICAoc2V0cSBmb250IChjb25zIGZvbnQtZmFtaWx5IGAoKGZvbnRzIC4gLChucmV2ZXJz ZSB0eXBlcykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2l6ZSAu ICxzaXplKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUtaGVp Z2h0IC4gLGxpbmUtaGVpZ2h0KQorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3Bh Y2Utd2lkdGggLiAsc3BhY2Utd2lkdGgpCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChhdmctY2hhci13aWR0aCAuICxhdmctY2hhci13aWR0aCkpKQorICAgICAgICAgICAgICBwcy1m b250LXNpemUtaW50ZXJuYWwgc2l6ZSkKKyAgICAgICAgKHVubGVzcyAoYXNzcSBmb250LWZhbWls eSBwcy1mb250LWluZm8tZGF0YWJhc2UpCisgICAgICAgICAgKHB1c2ggZm9udCBwcy1mb250LWlu Zm8tZGF0YWJhc2UpKQorICAgICAgICBmb250KSkpCisKIChkZWZ1biBwcy1zZWxlY3QtZm9udCAo Zm9udC1mYW1pbHkgc3ltIGZvbnQtc2l6ZSB0aXRsZS1mb250LXNpemUpCi0gIChsZXQgKChmb250 LWVudHJ5IChjZHIgKGFzc3EgZm9udC1mYW1pbHkgcHMtZm9udC1pbmZvLWRhdGFiYXNlKSkpKQor ICAobGV0KiAoKGZvbnQtZW50cnkgKGNkciAocHMtZmluZC1mb250IGZvbnQtZmFtaWx5KSkpKQog ICAgIChvciBmb250LWVudHJ5CiAJKGVycm9yICJEb24ndCBoYXZlIGRhdGEgdG8gc2NhbGUgZm9u dCAlcy4gIEtub3duIGZvbnRzIGZhbWlsaWVzIGFyZSAlcyIKIAkgICAgICAgZm9udC1mYW1pbHkK QEAgLTQzNzQsNyArNDQzMCw3IEBAIHBzLWdldC1wYWdlLWRpbWVuc2lvbnMKICAgICAgIChlcnJv ciAiVGhlIG51bWJlciBvZiBjb2x1bW5zICVkIHNob3VsZCBiZSBwb3NpdGl2ZSIKIAkgICAgIHBz LW51bWJlci1vZi1jb2x1bW5zKSkpCiAKLSAgICAocHMtc2VsZWN0LWZvbnQgcHMtZm9udC1mYW1p bHkgJ3BzLWZvbnQtZm9yLXRleHQKKyAgICAocHMtc2VsZWN0LWZvbnQgbmlsICdwcy1mb250LWZv ci10ZXh0CiAJCSAgICBwcy1mb250LXNpemUtaW50ZXJuYWwgcHMtZm9udC1zaXplLWludGVybmFs KQogICAgIChwcy1zZWxlY3QtZm9udCBwcy1oZWFkZXItZm9udC1mYW1pbHkgJ3BzLWZvbnQtZm9y LWhlYWRlcgogCQkgICAgcHMtaGVhZGVyLWZvbnQtc2l6ZS1pbnRlcm5hbApAQCAtNDU4MSw5ICs0 NjM3LDcgQEAgcHMtc3RyaW5nLWVzY2FwZS1jb2RlcwogKGRlZnN1YnN0IHBzLW91dHB1dC1zdHJp bmctcHJpbSAoc3RyaW5nKQogICAoaW5zZXJ0ICIoIikJCQkJO2luc2VydCBzdGFydC1zdHJpbmcg ZGVsaW1pdGVyCiAgIChzYXZlLWV4Y3Vyc2lvbgkJCTtpbnNlcnQgc3RyaW5nCi0gICAgKGluc2Vy dCAoaWYgKG11bHRpYnl0ZS1zdHJpbmctcCBzdHJpbmcpCi0gICAgICAgICAgICAgICAgKGVuY29k ZS1jb2Rpbmctc3RyaW5nIHN0cmluZyAndXRmLTgpCi0gICAgICAgICAgICAgIHN0cmluZykpKQor ICAgIChpbnNlcnQgc3RyaW5nKSkKICAgOzsgRmluZCBhbmQgcXVvdGUgc3BlY2lhbCBjaGFyYWN0 ZXJzIGFzIG5lY2Vzc2FyeSBmb3IgUFMKICAgOzsgVGhpcyBza2lwcyBldmVyeXRoaW5nIGV4Y2Vw dCBjb250cm9sIGNoYXJzLCBub24tQVNDSUkgY2hhcnMsICgsICkgYW5kIFwuCiAgICh3aGlsZSAo cHJvZ24gKHNraXAtY2hhcnMtZm9yd2FyZCAiIC0nKi1bXS1+IikgKG5vdCAoZW9icCkpKQpAQCAt NTg5NSw5ICs1OTQ5LDggQEAgcHMtYmVnaW4tcGFnZQogICAgIChwcy1vdXRwdXQgKGZvcm1hdCAi JWQgU2V0Rm9vdGVyTGluZXNcbiIgcHMtZm9vdGVyLWxpbmVzKSkpCiAKICAgKHBzLW91dHB1dCAo bnVtYmVyLXRvLXN0cmluZyBwcy1saW5lcy1wcmludGVkKSAiIEJlZ2luUGFnZVxuIikKLSAgKHBz LXNldC1mb250ICBwcy1jdXJyZW50LWZvbnQpCi0gIChwcy1zZXQtYmcgICAgcHMtY3VycmVudC1i ZykKLSAgKHBzLXNldC1jb2xvciBwcy1jdXJyZW50LWNvbG9yKSkKKyAgKHBzLW91dHB1dCAoZm9y bWF0ICJQcmludFdpZHRoICVmIGRpdiBkdXAgc2NhbGVcbiIKKyAgICAgICAgICAgICAgICAgICAg ICh3aW5kb3ctYm9keS13aWR0aCBuaWwgdCkpKSkKIAogKGRlZnN1YnN0IHBzLXNraXAtbmV3bGlu ZSAobGltaXQpCiAgIChzZXRxIHBzLXNob3dsaW5lLWNvdW50ICgxKyBwcy1zaG93bGluZS1jb3Vu dCkKQEAgLTU5NDYsMTUgKzU5OTksMTUgQEAgcHMtYmFzaWMtcGxvdC1zdHIKICAgICB3cmFwcG9p bnQpKQogCiAoZGVmdW4gcHMtYmFzaWMtcGxvdC1zdHJpbmcgKGZyb20gdG8gJm9wdGlvbmFsIF9i Zy1jb2xvcikKLSAgKGxldCogKCh3cmFwcG9pbnQgKHBzLWZpbmQtd3JhcHBvaW50IGZyb20gdG8K LQkJCQkgICAgICAgKHBzLWF2Zy1jaGFyLXdpZHRoICdwcy1mb250LWZvci10ZXh0KSkpCi0JICh0 byAoY2FyIHdyYXBwb2ludCkpCi0JIChzdHJpbmcgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVy dGllcyBmcm9tIHRvKSkpCisgIChsZXQqICgoc3RyaW5nIChidWZmZXItc3Vic3RyaW5nLW5vLXBy b3BlcnRpZXMgZnJvbSB0bykpKQogICAgIChwcy1vdXRwdXQtc3RyaW5nIHN0cmluZykKICAgICAo cHMtb3V0cHV0ICIgU1xuIikKLSAgICB3cmFwcG9pbnQpKQorICAgIChjb25zIHRvICgqIChwcy1z cGFjZS13aWR0aCAncHMtZm9udC1mb3ItdGV4dCkgKC0gdG8gZnJvbSkpKQorICAgICkpCiAKIChk ZWZ1biBwcy1iYXNpYy1wbG90LXdoaXRlc3BhY2UgKGZyb20gdG8gJm9wdGlvbmFsIF9iZy1jb2xv cikKKyAgIlVzZWQgZm9yIGRyYXdpbmcgVEFCIHBvc2l0aW9uLgorU2luY2Ugc3BhY2Ugd2lkdGgg bWF5IGJlIG5hcnJvd2VyIHRoYW4gY2hhciB3aWR0aCwgdXNlIGVuIHdpZHRoLiIKICAgKGxldCog KCh3cmFwcG9pbnQgKHBzLWZpbmQtd3JhcHBvaW50IGZyb20gdG8KIAkJCQkgICAgICAgKHBzLXNw YWNlLXdpZHRoICdwcy1mb250LWZvci10ZXh0KSkpCiAJICh0byAoY2FyIHdyYXBwb2ludCkpKQpA QCAtNjAwMSw2ICs2MDU0LDEwIEBAIHBzLXNldC1jb2xvcgogCQkgICAgIChudGggMSBwcy1jdXJy ZW50LWNvbG9yKSAobnRoIDIgcHMtY3VycmVudC1jb2xvcikpCiAJICAgICAiIEZHXG4iKSkKIAor KGRlZnVuIHBzLWNoYW5nZS1mb250IChmYW1pbHkgc2l6ZSkKKyAgIlVzZSB0aGlzIGZ1bmN0aW9u IHdoZW4gZm9udCBvciBzaXplIGlzIGRpZmZlcmVudCBmcm9tIGRlZmF1bHQuIgorICAoc2V0cSBw cy1sYXN0LWZvbnQgbmlsKQorICAocHMtb3V0cHV0IChmb3JtYXQgIi8lcyAlZCBGU1xuIiBmYW1p bHkgc2l6ZSkpKQogCiAoZGVmc3Vic3QgcHMtcGxvdC1zdHJpbmcgKHN0cmluZykKICAgKHBzLXBs b3QgJ3BzLWJhc2ljLXBsb3Qtc3RyIDAgKGxlbmd0aCBzdHJpbmcpIHN0cmluZykpCkBAIC02MDIy LDEwICs2MDc5LDQ4IEBAIHBzLXByaW50LXRyYW5zbGF0aW9uLXRhYmxlCiBUaGUgZGVmYXVsdCB2 YWx1ZSBpcyBhIHRhYmxlIHRoYXQgdHJhbnNsYXRlcyBub24tTGF0aW4tMSBMYXRpbiBjaGFyYWN0 ZXJzCiB0byB0aGUgZXF1aXZhbGVudCBMYXRpbi0xIGNoYXJhY3RlcnMuIikKIAotKGRlZnVuIHBz LXBsb3QtcmVnaW9uIChmcm9tIHRvIGZvbnQgJm9wdGlvbmFsIGZnLWNvbG9yIGJnLWNvbG9yIGVm ZmVjdHMpCi0gIChvciAoZXF1YWwgZm9udCBwcy1jdXJyZW50LWZvbnQpCi0gICAgICAocHMtc2V0 LWZvbnQgZm9udCkpCisoZGVmdW4gcHMtcGxvdC1lZmZlY3RzIChmYWNlKQorICAobGV0KiAoKGZh Y2UtYml0ICAgKHBzLWZhY2UtYXR0cmlidXRlLWxpc3QgZmFjZSkpCisJIChlZmZlY3QgICAgIChh cmVmIGZhY2UtYml0IDApKQorCSAoZm9yZWdyb3VuZCAoYXJlZiBmYWNlLWJpdCAxKSkKKwkgKGJh Y2tncm91bmQgKHBzLWZhY2UtYmFja2dyb3VuZCBmYWNlIChhcmVmIGZhY2UtYml0IDIpKSkKKwkg KGZnLWNvbG9yIChpZiAoYW5kIHBzLWNvbG9yLXAgZm9yZWdyb3VuZCkKKwkJICAgICAgIChwcy1j b2xvci1zY2FsZSBmb3JlZ3JvdW5kKQorCQkgICAgIHBzLWRlZmF1bHQtY29sb3IpKQorCSAoZmcg KG9yIGZnLWNvbG9yIHBzLWRlZmF1bHQtZm9yZWdyb3VuZCkpCisgICAgICAgICAoZWZmZWN0cyAo YXNoIGVmZmVjdCAtMikpCisgICAgICAgICAoYmctY29sb3IgKGFuZCBwcy1jb2xvci1wIGJhY2tn cm91bmQKKwkJCShwcy1jb2xvci1zY2FsZSBiYWNrZ3JvdW5kKSkpKQorCisgICAgOzsgU3BlY2lm eSBhIGZvcmVncm91bmQgY29sb3Igb25seSBpZjoKKyAgICA7OyAgICBvbmUncyBzcGVjaWZpZWQs CisgICAgOzsgICAgaXQncyBkaWZmZXJlbnQgZnJvbSB0aGUgYmFja2dyb3VuZCAoaWYgYHBzLWZn LXZhbGlkYXRlLXAnIGlzIG5vbi1uaWwpCisgICAgOzsgICAgYW5kIGl0J3MgZGlmZmVyZW50IGZy b20gdGhlIGN1cnJlbnQuCisgICAgKGlmIHBzLWZnLXZhbGlkYXRlLXAKKwkobGV0ICgoYmcgKG9y IGJnLWNvbG9yIHBzLWRlZmF1bHQtYmFja2dyb3VuZCkpCisJICAgICAgKGVsIHBzLWZvcmVncm91 bmQtbGlzdCkpCisJICAod2hpbGUgKGFuZCBlbCAoZXF1YWwgZmcgYmcpKQorCSAgICAoc2V0cSBm ZyAoY2FyIGVsKQorCQkgIGVsIChjZHIgZWwpKSkpKQorICAgIChvciAoZXF1YWwgZmcgcHMtY3Vy cmVudC1jb2xvcikKKwkocHMtc2V0LWNvbG9yIGZnKSkKKworICAgIChvciAoZXF1YWwgYmctY29s b3IgcHMtY3VycmVudC1iZykKKyAgICAgIChpZiAoZXF1YWwgYmctY29sb3IgcHMtZGVmYXVsdC1i YWNrZ3JvdW5kKQorICAgICAgICAgIChpZiBwcy1jdXJyZW50LWJnIChwcy1zZXQtYmcgbmlsKSkK KyAgICAgICAgKHBzLXNldC1iZyBiZy1jb2xvcikpKQogCisgICAgOzsgU3BlY2lmeSBlZmZlY3Rz ICh1bmRlcmxpbmUsIG92ZXJsaW5lLCBib3gsIGV0Yy4pCisgICAgKGNvbmQKKyAgICAgKChub3Qg KGludGVnZXJwIGVmZmVjdHMpKQorICAgICAgKHBzLW91dHB1dCAiMCBFRlxuIikKKyAgICAgIChz ZXRxIHBzLWN1cnJlbnQtZWZmZWN0IDApKQorICAgICAoKC89IGVmZmVjdHMgcHMtY3VycmVudC1l ZmZlY3QpCisgICAgICAocHMtb3V0cHV0IChudW1iZXItdG8tc3RyaW5nIGVmZmVjdHMpICIgRUZc biIpCisgICAgICAoc2V0cSBwcy1jdXJyZW50LWVmZmVjdCBlZmZlY3RzKSkpCisgICAgKSkKKwor KGRlZnVuIHBzLXBsb3QtcmVnaW9uIChmcm9tIHRvIF9mb250ICZvcHRpb25hbCBmZy1jb2xvciBi Zy1jb2xvciBlZmZlY3RzKQogICA7OyBTcGVjaWZ5IGEgZm9yZWdyb3VuZCBjb2xvciBvbmx5IGlm OgogICA7OyAgICBvbmUncyBzcGVjaWZpZWQsCiAgIDs7ICAgIGl0J3MgZGlmZmVyZW50IGZyb20g dGhlIGJhY2tncm91bmQgKGlmIGBwcy1mZy12YWxpZGF0ZS1wJyBpcyBub24tbmlsKQpAQCAtNjA0 MSw3ICs2MTM2LDkgQEAgcHMtcGxvdC1yZWdpb24KIAkocHMtc2V0LWNvbG9yIGZnKSkpCiAKICAg KG9yIChlcXVhbCBiZy1jb2xvciBwcy1jdXJyZW50LWJnKQotICAgICAgKHBzLXNldC1iZyBiZy1j b2xvcikpCisgICAgICAoaWYgKGVxdWFsIGJnLWNvbG9yIHBzLWRlZmF1bHQtYmFja2dyb3VuZCkK KyAgICAgICAgICAoaWYgcHMtY3VycmVudC1iZyAocHMtc2V0LWJnIG5pbCkpCisgICAgICAgIChw cy1zZXQtYmcgYmctY29sb3IpKSkKIAogICA7OyBTcGVjaWZ5IGVmZmVjdHMgKHVuZGVybGluZSwg b3ZlcmxpbmUsIGJveCwgZXRjLikKICAgKGNvbmQKQEAgLTYwODAsOSArNjE3NywxMCBAQCBwcy1w bG90LXJlZ2lvbgogCSAgICAgIChsZXQgKChsaW5lc3RhcnQgKGxpbmUtYmVnaW5uaW5nLXBvc2l0 aW9uKSkpCiAJCShmb3J3YXJkLWNoYXIgLTEpCiAJCShzZXRxIGZyb20gKCsgbGluZXN0YXJ0IChj dXJyZW50LWNvbHVtbikpKQotCQkod2hlbiAocmUtc2VhcmNoLWZvcndhcmQgIlsgXHRdKyIgdG8g dCkKKwkJKHdoZW4gKHJlLXNlYXJjaC1mb3J3YXJkICJbXHRdKyIgdG8gdCkKIAkJICAocHMtcGxv dCAncHMtYmFzaWMtcGxvdC13aGl0ZXNwYWNlCi0JCQkgICBmcm9tICgrIGxpbmVzdGFydCAoY3Vy cmVudC1jb2x1bW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgVGFiIHN0b3BzIGFy ZSBmaXhlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMCAoY3VycmVudC1jb2x1bW4pCiAJ CQkgICBiZy1jb2xvcikpKSkKIAogCSAgICAgKCg9IG1hdGNoID9cbikJCTsgbmV3bGluZQpAQCAt NjA5Myw3ICs2MTkxLDcgQEAgcHMtcGxvdC1yZWdpb24KIAkJICAgIChwcy1uZXh0LXBhZ2UpKQog CQk7OyBcblxmXG4gICAgID09Pj4gaXQnbGwgYmUgaGFuZGxlZCBieSBmb3JtIGZlZWQKIAkJOzsg XG50ZXh0XG4gICA9PT4+IG5leHQgbGluZQotCQkocHMtbmV4dC1saW5lKSkpCisJCShwcy1wbG90 LXdpdGgtZmFjZSAoMS0gKHBvaW50KSkgKHBvaW50KSAnZGVmYXVsdCkpKQogCiAJICAgICAoKD0g bWF0Y2ggP1xmKQkJOyBmb3JtIGZlZWQKIAkgICAgICA7OyBkbyBub3Qgc2tpcCBwYWdlIGlmIHBy ZXZpb3VzIGNoYXJhY3RlciBpcyBORVdMSU5FIGFuZApAQCAtNjE4OSwxMSArNjI4NywxOSBAQCBw cy1mYWNlLWF0dHJpYnV0ZXMKIAkJCSAoY29ucyBuZXctZmFjZSBwcy1wcmludC1mYWNlLWFsaXN0 KSkpCiAJICAgICAgIG5ldy1mYWNlKSkpKQogICAgKChwcy1mYWNlLWZvcmVncm91bmQtY29sb3It cCAoY2FyIGZhY2UpKQotICAgICh2ZWN0b3IgMCAocHMtZmFjZS1leHRyYWN0LWNvbG9yIGZhY2Up IG5pbCkpCisgICAgKHZlY3RvciAwIChwcy1mYWNlLWV4dHJhY3QtY29sb3IgZmFjZSkgbmlsIG5p bCkpCiAgICAoKHBzLWZhY2UtYmFja2dyb3VuZC1jb2xvci1wIChjYXIgZmFjZSkpCi0gICAgKHZl Y3RvciAwIG5pbCAocHMtZmFjZS1leHRyYWN0LWNvbG9yIGZhY2UpKSkKKyAgICAodmVjdG9yIDAg bmlsIChwcy1mYWNlLWV4dHJhY3QtY29sb3IgZmFjZSkgbmlsKSkKICAgICh0Ci0gICAgKHZlY3Rv ciAwIG5pbCBuaWwpKSkpCisgICAgKHZlY3RvciAoaWYgKGFuZCAoZXEgJ2JvbGQgKGZhY2VzLS1h dHRyaWJ1dGUtYXQtcG9pbnQgOndlaWdodCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChlcSAnb2JsaXF1ZSAoZmFjZXMtLWF0dHJpYnV0ZS1hdC1wb2ludCA6c2xhbnQpKSkKKyAgICAg ICAgICAgICAgICAgICAgICAgIDMKKyAgICAgICAgICAgICAgICAgICAgICAoaWYgKGVxICdib2xk IChmYWNlcy0tYXR0cmlidXRlLWF0LXBvaW50IDp3ZWlnaHQpKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAxCisgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKGVxICdvYmxpcXVlIChmYWNl cy0tYXR0cmlidXRlLWF0LXBvaW50IDpzbGFudCkpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMgorICAgICAgICAgICAgICAgICAgICAgICAgICAwKSkpCisgICAgICAgICAgICBuaWwgbmls IG5pbCkpKSkKIAogCiAoZGVmdW4gcHMtZmFjZS1iYWNrZ3JvdW5kIChmYWNlIGJhY2tncm91bmQp CkBAIC02MjMxLDEyICs2MzM3LDE2IEBAIHBzLWZhY2UtYXR0cmlidXRlLWxpc3QKICAgICAodmVj dG9yIDAgbmlsIChwcy1mYWNlLWV4dHJhY3QtY29sb3IgZmFjZS1vci1saXN0KSkpCiAgICA7OyBB bm9ueW1vdXMgZmFjZS4KICAgICgoa2V5d29yZHAgKGNhciBmYWNlLW9yLWxpc3QpKQotICAgICh2 ZWN0b3IgMCAocGxpc3QtZ2V0IGZhY2Utb3ItbGlzdCA6Zm9yZWdyb3VuZCkKLQkgICAgKHBsaXN0 LWdldCBmYWNlLW9yLWxpc3QgOmJhY2tncm91bmQpKSkKKyAgICAodmVjdG9yIChsb2dpb3IgKGlm IChlcSAnYm9sZCAocGxpc3QtZ2V0IGZhY2Utb3ItbGlzdCA6d2VpZ2h0KSkgMSAwKQorICAgICAg ICAgICAgICAgICAgICAoaWYgKGVxICdvYmxpcXVlIChwbGlzdC1nZXQgZmFjZS1vci1saXN0IDpz bGFudCkpIDIgMCkpCisgICAgICAgICAgICAocGxpc3QtZ2V0IGZhY2Utb3ItbGlzdCA6Zm9yZWdy b3VuZCkKKwkgICAgKHBsaXN0LWdldCBmYWNlLW9yLWxpc3QgOmJhY2tncm91bmQpCisgICAgICAg ICAgICAoaWYgKHBsaXN0LWdldCBmYWNlLW9yLWxpc3QgOmhlaWdodCkKKyAgICAgICAgICAgICAg ICAoLyAocGxpc3QtZ2V0IGZhY2Utb3ItbGlzdCA6aGVpZ2h0KSAxMC4wKSAwKSkpCiAgICA7OyBs aXN0IG9mIGZhY2VzCiAgICAodAogICAgIChsZXQgKChlZmZlY3RzIDApCi0JICBmb3JlZ3JvdW5k IGJhY2tncm91bmQgZmFjZS1hdHRyIGZhY2UpCisJICBmb3JlZ3JvdW5kIGJhY2tncm91bmQgaGVp Z2h0IGZhY2UtYXR0ciBmYWNlKQogICAgICAgKHdoaWxlIGZhY2Utb3ItbGlzdAogCShzZXRxIGZh Y2UgICAgICAgICAoY2FyIGZhY2Utb3ItbGlzdCkKIAkgICAgICBmYWNlLW9yLWxpc3QgKGNkciBm YWNlLW9yLWxpc3QpCkBAIC02MjQ0LDI4ICs2MzU0LDE1NiBAQCBwcy1mYWNlLWF0dHJpYnV0ZS1s aXN0CiAJICAgICAgZWZmZWN0cyAgICAgIChsb2dpb3IgZWZmZWN0cyAoYXJlZiBmYWNlLWF0dHIg MCkpKQogCShvciBmb3JlZ3JvdW5kIChzZXRxIGZvcmVncm91bmQgKGFyZWYgZmFjZS1hdHRyIDEp KSkKIAkob3IgYmFja2dyb3VuZAotCSAgICAoc2V0cSBiYWNrZ3JvdW5kIChwcy1mYWNlLWJhY2tn cm91bmQgZmFjZSAoYXJlZiBmYWNlLWF0dHIgMikpKSkpCi0gICAgICAodmVjdG9yIGVmZmVjdHMg Zm9yZWdyb3VuZCBiYWNrZ3JvdW5kKSkpKSkKKwkgICAgKHNldHEgYmFja2dyb3VuZCAocHMtZmFj ZS1iYWNrZ3JvdW5kIGZhY2UgKGFyZWYgZmFjZS1hdHRyIDIpKSkpCisgICAgICAgIChvciBoZWln aHQgKHNldHEgaGVpZ2h0IChhcmVmIGZhY2UtYXR0ciAzKSkpKQorICAgICAgKHZlY3RvciBlZmZl Y3RzIGZvcmVncm91bmQgYmFja2dyb3VuZCBoZWlnaHQpKSkpKQogCiAKIChkZWZjb25zdCBwcy1m b250LXR5cGUgKHZlY3RvciBuaWwgJ2JvbGQgJ2l0YWxpYyAnYm9sZC1pdGFsaWMpKQogCiAKLShk ZWZ1biBwcy1wbG90LXdpdGgtZmFjZSAoZnJvbSB0byBmYWNlKQorKGRlZnVuIHBzLXBsb3Qtd2l0 aC1mYWNlIChmcm9tIHRvIGZhY2UgJm9wdGlvbmFsIGx0cikKKyAgKGdvdG8tY2hhciBmcm9tKQog ICAoY29uZAogICAgKChudWxsIGZhY2UpCQkJCTsgcHJpbnQgdGV4dCB3aXRoIG51bGwgZmFjZQog ICAgIChwcy1wbG90LXJlZ2lvbiBmcm9tIHRvIDApKQogICAgKChlcSBmYWNlICdlbWFjcy0taW52 aXNpYmxlLS1mYWNlKSkJOyBza2lwIGludmlzaWJsZSB0ZXh0ISEhCisgICAoKGVvbHApCisgICAg OzsgTmV3IGxpbmUgZG9lc24ndCBuZWVkIGZvbnQgY2hhbmdlLiBIb3dldmVyLCBsaW5lIGhlaWdo dCBtdXN0IGJlCisgICAgOzsgcmVzdG9yZWQgZm9yIG5leHQgbGluZS4KKyAgICAocHMtb3V0cHV0 IChmb3JtYXQgIi9MaW5lSGVpZ2h0ICUwLjNmIGRlZlxuIgorICAgICAgICAgICAgICAgICAgICAg ICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgoaCAobGlu ZS1waXhlbC1oZWlnaHQpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb3J3YXJkLWxp bmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBUaGlzIGlzIHJlcXVpcmVkIGZvciBp bWFnZS4gSG93ZXZlciwgYnJlYWtzIHRhYmxlcy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg IDs7ICgrICgvIGggMi4wKSAobGluZS1waXhlbC1oZWlnaHQpKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGxpbmUtcGl4ZWwtaGVpZ2h0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAg OzsgKCogKC8gKC8gKGRpc3BsYXktbW0td2lkdGgpIDI1LjQpIChkaXNwbGF5LXBpeGVsLXdpZHRo KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7ICAgIDcyLjAgKCsgKC8gaCAyLjApIChs aW5lLXBpeGVsLWhlaWdodCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkpKQorICAg IChwcy1uZXh0LWxpbmUpCisgICAgKHdoZW4gKD4gdG8gKDErIGZyb20pKQorICAgICAgKGdvdG8t Y2hhciAoMSsgZnJvbSkpCisgICAgICAocHMtcGxvdC13aXRoLWZhY2UgKDErIGZyb20pIHRvIGZh Y2UgbHRyKSkpCisgICAoKGVxICdzcGFjZSAoY2FyIChnZXQtdGV4dC1wcm9wZXJ0eSBmcm9tICdk aXNwbGF5KSkpCisgICAgKGxldCogKChzaXplIChwb3NuLW9iamVjdC13aWR0aC1oZWlnaHQgKHBv c24tYXQtcG9pbnQgZnJvbSkpKQorICAgICAgICAgICAodyAoY2FyIHNpemUpKSkKKyAgICAgIChw cy1vdXRwdXQgKGZvcm1hdCAiJWQgMCBybW92ZXRvXG4iIHcpKSkpCisgICAoKGFyZWYgcHMtLWNt YXAgKHBvaW50KSkKKyAgICA7OyBQbG90IHVuaWNvZGUgY2hhcmFjdGVycyBzaGFyaW5nIHNhbWUg Zm9udAorICAgIChwcy1wbG90LWVmZmVjdHMgZmFjZSkKKyAgICAobGV0IChmYW1pbHkgc2l6ZSBz dHIgZGF0YSBwb3MgdGZhbWlseSkKKyAgICAgIChzZXRxIGRhdGEgKGFyZWYgcHMtLWNtYXAgKHBv aW50KSkKKyAgICAgICAgICAgIHNpemUgKGZvbnQtZ2V0IChmb250LWF0IChwb2ludCkpIDpzaXpl KQorICAgICAgICAgICAgZmFtaWx5IChjYXIgZGF0YSkpCisgICAgICAocHMtY2hhbmdlLWZvbnQg KGZvcm1hdCAiRiVkIiBmYW1pbHkpIHNpemUpCisgICAgICAodW5sZXNzIGx0cgorICAgICAgICAo c2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAoZ290by1jaGFyICgxLSB0bykpCisgICAgICAgICAg KGlmIChlb2xwKSAoZm9yd2FyZC1jaGFyIC0xKSkKKyAgICAgICAgICAocHMtb3V0cHV0IChmb3Jt YXQgImN1cnJlbnRwb2ludCAlZCBleGNoIG1vdmV0byBwb3BcbiIKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGNhciAocG9zbi14LXkgKHBvc24tYXQtcG9pbnQpKSkpKQorICAgICAgICAg ICkpCisgICAgICAobGV0ICgoaSAwKQorICAgICAgICAgICAgKGVuZCAoLSB0byBmcm9tKSkpCisg ICAgICAgICh3aGlsZSAoPCBpIGVuZCkKKyAgICAgICAgICAoc2V0cSBwb3MgKGlmIGx0ciAoKyBm cm9tIGkpICgtIHRvIGkgMSkpCisgICAgICAgICAgICAgICAgaSAoMSsgaSkpCisgICAgICAgICAg KGdvdG8tY2hhciBwb3MpCisgICAgICAgICAgKHNldHEgZGF0YSAoYXJlZiBwcy0tY21hcCAocG9p bnQpKQorICAgICAgICAgICAgICAgIHRmYW1pbHkgKG9yIChjYXIgZGF0YSkgZmFtaWx5KSkKKyAg ICAgICAgKGNvbmQgKCgvPSBmYW1pbHkgdGZhbWlseSkKKyAgICAgICAgICAgICAgIChzZXRxIGkg KGlmIGx0ciB0byBmcm9tKSkpCisgICAgICAgICAgICAgICh0CisgICAgICAgICAgICAgICAoc2V0 cSBkYXRhIChhcmVmIHBzLS1jbWFwIHBvcykKKyAgICAgICAgICAgICAgICAgICAgIHN0ciAoY29u Y2F0IHN0cgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcGNvbmNhdAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKGEpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoZm9ybWF0ICJcXCUwMDNvIiBhKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoaWYgbHRyIChjZHIgZGF0YSkgKHJldmVyc2UgKGNkciBk YXRhKSkpICIiKSkKKyAgICAgICAgICAgICAgICAgICAgICkpKSkpCisgICAgICAoY29uZAorICAg ICAgICgoYW5kIChhcmVmIHBzLS1hZGp1c3RtZW50IGZyb20pCisgICAgICAgICAgICAgKGVxIChn ZXQtY2hhci1jb2RlLXByb3BlcnR5IChjaGFyLWFmdGVyIGZyb20pICdiaWRpLWNsYXNzKSAnUikp CisgICAgICAgIDs7IEZvciBIZWJyZXcKKyAgICAgICAgKHBzLW91dHB1dCAoZm9ybWF0ICIoJXMp JXMgeHNob3dcbiIgc3RyIChhcmVmIHBzLS1hZGp1c3RtZW50IGZyb20pKSkpCisgICAgICAgKChw bGlzdC1nZXQgKGdldC10ZXh0LXByb3BlcnR5IGZyb20gJ2Rpc3BsYXkpICdyYWlzZSkKKyAgICAg ICAgKHBzLW91dHB1dCAoZm9ybWF0ICIoJXMpICUwLjNmIHlTXG4iIHN0cgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgKCogc2l6ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBs aXN0LWdldCAoZ2V0LXRleHQtcHJvcGVydHkgZnJvbSAnZGlzcGxheSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JhaXNlKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKSkpKQorICAgICAgICgobm90IChzdHJpbmctZW1wdHktcCBzdHIpKQorICAgICAg ICAocHMtb3V0cHV0IChmb3JtYXQgIiglcykgU1xuIiBzdHIpKSkpCisKKyAgICAgIChpZiAoLz0g ZmFtaWx5IHRmYW1pbHkpCisgICAgICAgICAgOzsgTWl4ZWQgZmFtaWx5IC0gbWlnaHQgYmUgZnJv bSBkaWZmZXJlbnQgc2NyaXB0cworICAgICAgICAgIChwcy1wbG90LXdpdGgtZmFjZSBwb3MgdG8g ZmFjZSBsdHIpKQorICAgICAgKSkKKyAgICgocGxpc3QtZ2V0IChnZXQtdGV4dC1wcm9wZXJ0eSBm cm9tICdkaXNwbGF5KSAnaW1hZ2UpCisgICAgKGxldCogKChpbWFnZSAoZ2V0LXRleHQtcHJvcGVy dHkgZnJvbSAnZGlzcGxheSkpCisgICAgICAgICAgIChzaXplIChpbWFnZS1zaXplIGltYWdlIHQp KQorICAgICAgICAgICAoZGF0YSAocGxpc3QtZ2V0IChjZHIgKGltYWdlLWNvbnZlcnQKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5kIGltYWdlICcoOmRhdGEtcCBpbWFn ZS9tanBlZykpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZGF0YSkpCisgICAgICAg ICAgICh3IChjYXIgc2l6ZSkpCisgICAgICAgICAgIChoIChjZHIgc2l6ZSkpKQorICAgICAgKHBz LW91dHB1dCAoY29uY2F0IChmb3JtYXQgIgorL3cgJWQgZGVmCisvaCAlZCBkZWYKKyIgdyBoKQor IgorY3VycmVudHBvaW50IGggMiBkaXYgYWRkCitnc2F2ZQorCit0cmFuc2xhdGUKKyUgMCA3MDAg dHJhbnNsYXRlICAgJSBzZXQgbG93ZXIgbGVmdCBvZiBpbWFnZSBhdCAoMCwgNzAwKQordyBoIHNj YWxlICAgICAgICAgICAlIHNpemUgb2YgcmVuZGVyZWQgaW1hZ2UgaXMgdyBwb2ludHMgYnkgaCBw b2ludHMKK3cgICAgICAgICAgICAgICAgICAgJSBudW1iZXIgb2YgY29sdW1ucyBwZXIgcm93Cito ICAgICAgICAgICAgICAgICAgICUgbnVtYmVyIG9mIHJvd3MKKzggICAgICAgICAgICAgICAgICAg JSBiaXRzIHBlciBjb2xvciBjaGFubmVsICgxLCAyLCA0LCBvciA4KQorW3cgMCAwIGggbmVnIDAg MF0gICAlIG1hcHMgdW5pdCBzcXVhcmUgdG8gaW1hZ2Ugc3BhY2UKKyUgKHNwbGFzaC5qcGcpIChy KSBmaWxlIC9EQ1REZWNvZGUgZmlsdGVyICUgb3BlbnMgdGhlIGZpbGUgYW5kIGZpbHRlcnMgdGhl IGltYWdlIGRhdGEKKyUge2N1cnJlbnRmaWxlIHBpY3N0ciByZWFkaGV4c3RyaW5nIHBvcH0KK3s8 IgorICAgICAobWFwY29uY2F0IChsYW1iZGEgKGNoKSAoZm9ybWF0ICIlMDJ4IiBjaCkpIGRhdGEg IiIpCisiPn0KKy9EQ1REZWNvZGUgZmlsdGVyCitmYWxzZSAgICAgICAgICAgICAgICUgcHVsbCBj aGFubmVscyBmcm9tIHNlcGFyYXRlIHNvdXJjZXMKKzMgICAgICAgICAgICAgICAgICAgJSAzIGNv bG9yIGNoYW5uZWxzIChSR0IpCitjb2xvcmltYWdlCisKK2dyZXN0b3JlCit3IDAgcm1vdmV0bwor L0xpbmVIZWlnaHQgaCBkZWYKKyIKKyAgICAgICAgICAgICAgICAgKSkpKQogICAgKHQJCQkJCTsg b3RoZXJ3aXNlLCB0ZXh0IGhhcyBhIHZhbGlkIGZhY2UKICAgICAobGV0KiAoKGZhY2UtYml0ICAg KHBzLWZhY2UtYXR0cmlidXRlLWxpc3QgZmFjZSkpCiAJICAgKGVmZmVjdCAgICAgKGFyZWYgZmFj ZS1iaXQgMCkpCiAJICAgKGZvcmVncm91bmQgKGFyZWYgZmFjZS1iaXQgMSkpCiAJICAgKGJhY2tn cm91bmQgKHBzLWZhY2UtYmFja2dyb3VuZCBmYWNlIChhcmVmIGZhY2UtYml0IDIpKSkKKwkgICAo c2l6ZSAgICAgICBuaWwpCisgICAgICAgICAgIChmYW1pbHkgICAgIG5pbCkKKyAgICAgICAgICAg KHNhbWUgICAgICAgbmlsKQorICAgICAgICAgICAoZm9udCAocHMtZm9udC1udW1iZXIgJ3BzLWZv bnQtZm9yLXRleHQKKwkJICAgICAgICAgICAgICAgICAob3IgKGFyZWYgcHMtZm9udC10eXBlIChs b2dhbmQgZWZmZWN0IDMpKQorCQkJICAgICAgICAgICAgIGZhY2UpKSkKIAkgICAoZmctY29sb3Ig KGlmIChhbmQgcHMtY29sb3ItcCBmb3JlZ3JvdW5kKQogCQkJIChwcy1jb2xvci1zY2FsZSBmb3Jl Z3JvdW5kKQogCQkgICAgICAgcHMtZGVmYXVsdC1jb2xvcikpCiAJICAgKGJnLWNvbG9yIChhbmQg cHMtY29sb3ItcCBiYWNrZ3JvdW5kCiAJCQkgIChwcy1jb2xvci1zY2FsZSBiYWNrZ3JvdW5kKSkp KQorICAgICAgKHVubGVzcyAoZW9icCkKKyAgICAgICAgKHNldHEgZmFtaWx5IChpbnRlcm4gKHBz LWZvbnQtbmFtZSAoZm9udC1hdCAocG9pbnQpKSkpCisgICAgICAgICAgICAgIHNpemUgKGZvbnQt Z2V0IChmb250LWF0IChwb2ludCkpIDpzaXplKQorICAgICAgICAgICAgICBzYW1lIChhbmQgKGVx IGZhbWlseSBwcy1mb250LWZhbWlseSkKKyAgICAgICAgICAgICAgICAgICAgICAgICg9IHNpemUg cHMtZm9udC1zaXplLWludGVybmFsKSkpCisKKyAgICAgICAgKGlmIHNhbWUKKyAgICAgICAgICAg IChvciAoYW5kIHBzLWxhc3QtZm9udCAoZXF1YWwgZm9udCBwcy1jdXJyZW50LWZvbnQpKQorICAg ICAgICAgICAgICAgIChwcy1zZXQtZm9udCBmb250KSkKKyAgICAgICAgICAocHMtY2hhbmdlLWZv bnQgZmFtaWx5IHNpemUpKSkKICAgICAgIChwcy1wbG90LXJlZ2lvbgogICAgICAgIGZyb20gdG8K ICAgICAgICAocHMtZm9udC1udW1iZXIgJ3BzLWZvbnQtZm9yLXRleHQKQEAgLTYzMTIsNyArNjU1 MCw4IEBAIHBzLW1hcC1mYWNlCiAJKGxldCAoKGZhY2UtYml0IChjZHIgZmFjZS1tYXApKSkKIAkg IChhc2V0IHBzLWZhY2UtYml0IDAgKGxvZ2lvciAoYXJlZiBwcy1mYWNlLWJpdCAwKSAoYXJlZiBm YWNlLWJpdCAwKSkpCiAJICAob3IgKGFyZWYgcHMtZmFjZS1iaXQgMSkgKGFzZXQgcHMtZmFjZS1i aXQgMSAoYXJlZiBmYWNlLWJpdCAxKSkpCi0JICAob3IgKGFyZWYgcHMtZmFjZS1iaXQgMikgKGFz ZXQgcHMtZmFjZS1iaXQgMiAoYXJlZiBmYWNlLWJpdCAyKSkpKQorCSAgKG9yIChhcmVmIHBzLWZh Y2UtYml0IDIpIChhc2V0IHBzLWZhY2UtYml0IDIgKGFyZWYgZmFjZS1iaXQgMikpKQorICAgICAg ICAgIChvciAoYXJlZiBwcy1mYWNlLWJpdCAzKSAoYXNldCBwcy1mYWNlLWJpdCAzIChhcmVmIGZh Y2UtYml0IDMpKSkpCiAgICAgICA7OyBpZiBmYWNlIGRvZXMgbm90IGV4aXN0LCBpbnNlcnQgaXQK ICAgICAgIChzZXRxIHBzLXByaW50LWZhY2UtYWxpc3QgKGNvbnMgZmFjZS1tYXAgcHMtcHJpbnQt ZmFjZS1hbGlzdCkpKQogICAgIGZhY2UtbWFwKSkKQEAgLTYzMjcsNyArNjU2NiwxMCBAQCBwcy1z Y3JlZW4tdG8tYml0LWZhY2UKIAkJCShpZiAocHMtZmFjZS1vdmVybGluZS1wIGZhY2UpICAxNiAw KSAgOyBvdmVybGluZQogCQkJKGlmIChwcy1mYWNlLWJveC1wIGZhY2UpICAgICAgIDY0IDApKSA7 IGJveAogCQkocHMtZmFjZS1mb3JlZ3JvdW5kLW5hbWUgZmFjZSkKLQkJKHBzLWZhY2UtYmFja2dy b3VuZC1uYW1lIGZhY2UpKSkpCisJCShwcy1mYWNlLWJhY2tncm91bmQtbmFtZSBmYWNlKQorICAg ICAgICAgICAgICAgIChmYWNlLWF0dHJpYnV0ZS1zcGVjaWZpZWQtb3IKKyAgICAgICAgICAgICAg ICAgKGZhY2UtYXR0cmlidXRlIGZhY2UgOmhlaWdodCkKKwkJIG5pbCkpKSkKIAogCiAoZGVjbGFy ZS1mdW5jdGlvbiBqaXQtbG9jay1mb250aWZ5LW5vdyAiaml0LWxvY2siICgmb3B0aW9uYWwgc3Rh cnQgZW5kKSkKQEAgLTY0MTAsMTMgKzY2NTIsMTQgQEAgcHMtZ2VuZXJhdGUKIAkJICAgIChwcy1i ZWdpbi1qb2IgZ2VuZnVuYykKIAkJICAgICh3aGVuIG5lZWRzLWJlZ2luLWZpbGUKIAkJICAgICAg KHBzLWJlZ2luLWZpbGUpCi0JCSAgICAgIChwcy1tdWxlLWluaXRpYWxpemUpKQotCQkgICAgKHBz LW11bGUtYmVnaW4tam9iIGZyb20gdG8pCisJCSAgICAgIDs7IChwcy1tdWxlLWluaXRpYWxpemUp CisgICAgICAgICAgICAgICAgICAgICAgKQorCQkgICAgOzsgKHBzLW11bGUtYmVnaW4tam9iIGZy b20gdG8pCiAJCSAgICAocHMtc2VsZWN0ZWQtcGFnZXMpKSkKIAkJKHBzLWJlZ2luLXBhZ2UpCiAJ CShmdW5jYWxsIGdlbmZ1bmMgZnJvbSB0bykKIAkJKHBzLWVuZC1wYWdlKQotCQkocHMtbXVsZS1l bmQtam9iKQorCQk7OyAocHMtbXVsZS1lbmQtam9iKQogCQkocHMtZW5kLWpvYiBuZWVkcy1iZWdp bi1maWxlKQogCiAJCTs7IFNldHRpbmcgdGhpcyB2YXJpYWJsZSB0ZWxscyB0aGUgdW53aW5kIGZv cm0gdGhhdCB0aGUK --00000000000023cb7e05c9312575 Content-Type: text/plain; charset="US-ASCII"; name="psname.txt" Content-Disposition: attachment; filename="psname.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ks5uamit1 ZGlmZiAtLWdpdCBhL3NyYy9mb250LmMgYi9zcmMvZm9udC5jCmluZGV4IDBjOWU3NTJlMDguLjIw MzFjYzhlY2EgMTAwNjQ0Ci0tLSBhL3NyYy9mb250LmMKKysrIGIvc3JjL2ZvbnQuYwpAQCAtNjY1 LDYgKzY2NSw3IEBAIGZvbnRfcHJvcF92YWxpZGF0ZV9vdGYgKExpc3BfT2JqZWN0IHByb3AsIExp c3BfT2JqZWN0IHZhbCkKICAgICAvKiBUaGUgb3JkZXIgb2YgdGhlIGFib3ZlIGVudHJpZXMgbXVz dCBtYXRjaCB3aXRoIGVudW0KICAgICAgICBmb250X3Byb3BlcnR5X2luZGV4LiAgKi8KICAgICB7 IFNZTUJPTF9JTkRFWCAoUUNsYW5nKSwgZm9udF9wcm9wX3ZhbGlkYXRlX3N5bWJvbCB9LAorICAg IHsgU1lNQk9MX0lOREVYIChRQ3Bvc3RzY3JpcHRuYW1lKSwgZm9udF9wcm9wX3ZhbGlkYXRlX3N5 bWJvbCB9LAogICAgIHsgU1lNQk9MX0lOREVYIChRQ3NjcmlwdCksIGZvbnRfcHJvcF92YWxpZGF0 ZV9zeW1ib2wgfSwKICAgICB7IFNZTUJPTF9JTkRFWCAoUUNvdGYpLCBmb250X3Byb3BfdmFsaWRh dGVfb3RmIH0KICAgfTsKQEAgLTQxMjksNiArNDEzMCwxMCBAQCBERUZVTiAoImZvbnQtZ2V0Iiwg RmZvbnRfZ2V0LCBTZm9udF9nZXQsIDIsIDIsIDAsCiAJICBpZiAoZm9udHAtPmRyaXZlci0+Y29t YmluaW5nX2NhcGFiaWxpdHkpCiAJICAgIHZhbCA9IGZvbnRwLT5kcml2ZXItPmNvbWJpbmluZ19j YXBhYmlsaXR5IChmb250cCk7CiAJfQorICAgICAgZWxzZSBpZiAoRVEgKGtleSwgUUNwb3N0c2Ny aXB0bmFtZSkpIHsKKwkgIGlmIChmb250cC0+ZHJpdmVyLT5wb3N0c2NyaXB0bmFtZSkKKwkgICAg dmFsID0gZm9udHAtPmRyaXZlci0+cG9zdHNjcmlwdG5hbWUgKGZvbnRwKTsKKyAgICAgIH0KICAg ICB9CiAgIGVsc2UKICAgICB2YWwgPSBGY2RyICh2YWwpOwpAQCAtNTM3Niw2ICs1MzgxLDcgQEAg c3ltc19vZl9mb250ICh2b2lkKQogICBERUZTWU0gKFFDYXZnd2lkdGgsICI6YXZnd2lkdGgiKTsK ICAgREVGU1lNIChRQ2ZvbnRfZW50aXR5LCAiOmZvbnQtZW50aXR5Iik7CiAgIERFRlNZTSAoUUNj b21iaW5pbmdfY2FwYWJpbGl0eSwgIjpjb21iaW5pbmctY2FwYWJpbGl0eSIpOworICBERUZTWU0g KFFDcG9zdHNjcmlwdG5hbWUsICI6cG9zdHNjcmlwdG5hbWUiKTsKIAogICAvKiBTeW1ib2xzIHJl cHJlc2VudGluZyB2YWx1ZXMgb2YgZm9udCBzcGFjaW5nIHByb3BlcnR5LiAgKi8KICAgREVGU1lN IChRYywgImMiKTsKZGlmZiAtLWdpdCBhL3NyYy9mb250LmggYi9zcmMvZm9udC5oCmluZGV4IDg2 MTRlN2ZhMTAuLjVlMTVlZjQ0NTcgMTAwNjQ0Ci0tLSBhL3NyYy9mb250LmgKKysrIGIvc3JjL2Zv bnQuaApAQCAtNjkyLDYgKzY5Miw3IEBAICNkZWZpbmUgRk9OVF9JTlZBTElEX0NPREUgMHhGRkZG RkZGRgogICAgICBHU1VCIGFuZCBHUE9TIGFyZSBsaXN0cyBvZiB0aGUgZm9ybQogICAgICAoKFND UklQVCAoTEFOR1NZUyBGRUFUVVJFIC4uLikgLi4uKSAuLi4pICAqLwogICBMaXNwX09iamVjdCAo Km90Zl9jYXBhYmlsaXR5KSAoc3RydWN0IGZvbnQgKmZvbnQpOworICBMaXNwX09iamVjdCAoKnBv c3RzY3JpcHRuYW1lKSAoc3RydWN0IGZvbnQgKmZvbnQpOwogCiAgIC8qIE9wdGlvbmFsLgogICAg ICBBcHBseSBGT05UJ3MgT1RGLUZFQVRVUkVTIHRvIHRoZSBnbHlwaCBzdHJpbmcuCkBAIC04OTMs NiArODk0LDcgQEAgdmFsaWRfZm9udF9kcml2ZXIgKHN0cnVjdCBmb250X2RyaXZlciBjb25zdCAq ZCkKIAogI2lmZGVmIEhBVkVfSEFSRkJVWloKIGV4dGVybiBMaXNwX09iamVjdCBoYmZvbnRfb3Rm X2NhcGFiaWxpdHkgKHN0cnVjdCBmb250ICopOworZXh0ZXJuIExpc3BfT2JqZWN0IGhiZm9udF9w b3N0c2NyaXB0bmFtZSAoc3RydWN0IGZvbnQgKik7CiBleHRlcm4gTGlzcF9PYmplY3QgaGJmb250 X3NoYXBlIChMaXNwX09iamVjdCwgTGlzcF9PYmplY3QpOwogZXh0ZXJuIExpc3BfT2JqZWN0IGhi Zm9udF9jb21iaW5pbmdfY2FwYWJpbGl0eSAoc3RydWN0IGZvbnQgKik7CiAjZW5kaWYKZGlmZiAt LWdpdCBhL3NyYy9mdGNyZm9udC5jIGIvc3JjL2Z0Y3Jmb250LmMKaW5kZXggYTBlMThlMTNjZi4u MzY1NjcxYjAzNiAxMDA2NDQKLS0tIGEvc3JjL2Z0Y3Jmb250LmMKKysrIGIvc3JjL2Z0Y3Jmb250 LmMKQEAgLTYyMSw2ICs2MjEsNyBAQCBzeW1zX29mX2Z0Y3Jmb250X2Zvcl9wZHVtcGVyICh2b2lk KQogICBmdGNyaGJmb250X2RyaXZlci5saXN0ID0gZnRjcmhiZm9udF9saXN0OwogICBmdGNyaGJm b250X2RyaXZlci5tYXRjaCA9IGZ0Y3JoYmZvbnRfbWF0Y2g7CiAgIGZ0Y3JoYmZvbnRfZHJpdmVy Lm90Zl9jYXBhYmlsaXR5ID0gaGJmb250X290Zl9jYXBhYmlsaXR5OworICBmdGNyaGJmb250X2Ry aXZlci5wb3N0c2NyaXB0bmFtZSA9IGhiZm9udF9wb3N0c2NyaXB0bmFtZTsKICAgZnRjcmhiZm9u dF9kcml2ZXIuc2hhcGUgPSBoYmZvbnRfc2hhcGU7CiAgIGZ0Y3JoYmZvbnRfZHJpdmVyLmNvbWJp bmluZ19jYXBhYmlsaXR5ID0gaGJmb250X2NvbWJpbmluZ19jYXBhYmlsaXR5OwogICBmdGNyaGJm b250X2RyaXZlci5iZWdpbl9oYl9mb250ID0gZnRjcmhiZm9udF9iZWdpbl9oYl9mb250OwpkaWZm IC0tZ2l0IGEvc3JjL2hiZm9udC5jIGIvc3JjL2hiZm9udC5jCmluZGV4IDU3NmM1ZmU3ZjYuLjc1 ODdkOTMzY2MgMTAwNjQ0Ci0tLSBhL3NyYy9oYmZvbnQuYworKysgYi9zcmMvaGJmb250LmMKQEAg LTIxMiw2ICsyMTIsMzEgQEAgaGJmb250X290Zl9mZWF0dXJlcyAoaGJfZmFjZV90ICpmYWNlLCBo Yl90YWdfdCB0YWJsZV90YWcpCiAgIHJldHVybiBzY3JpcHRzOwogfQogCitMaXNwX09iamVjdAor aGJmb250X3Bvc3RzY3JpcHRuYW1lIChzdHJ1Y3QgZm9udCAqZm9udCkKK3sKKyAgZG91YmxlIHBv c2l0aW9uX3VuaXQ7CisgIGhiX2ZvbnRfdCAqaGJfZm9udAorICAgID0gZm9udC0+ZHJpdmVyLT5i ZWdpbl9oYl9mb250CisgICAgPyBmb250LT5kcml2ZXItPmJlZ2luX2hiX2ZvbnQgKGZvbnQsICZw b3NpdGlvbl91bml0KQorICAgIDogTlVMTDsKKyAgaWYgKCFoYl9mb250KQorICAgIHJldHVybiBR bmlsOworCisgIGhiX2ZhY2VfdCAqZmFjZSA9IGhiX2ZvbnRfZ2V0X2ZhY2UgKGhiX2ZvbnQpOwor CisgIC8vIFBvc3RzY3JpcHQgbmFtZQorICB1bnNpZ25lZCBpbnQgdGV4dF9zaXplID0gMTI3Owor ICBjaGFyICp0ZXh0ID0geG1hbGxvYyAodGV4dF9zaXplICogc2l6ZW9mIChjaGFyKSk7CisgIGhi X290X25hbWVfZ2V0X3V0ZjggKGZhY2UsIDYsIE5VTEwsICZ0ZXh0X3NpemUsIHRleHQpOworICBM aXNwX09iamVjdCBwc25hbWUgPSBtYWtlX3VuaWJ5dGVfc3RyaW5nICh0ZXh0LCB0ZXh0X3NpemUp OworCisgIGlmIChmb250LT5kcml2ZXItPmVuZF9oYl9mb250KQorICAgIGZvbnQtPmRyaXZlci0+ ZW5kX2hiX2ZvbnQgKGZvbnQsIGhiX2ZvbnQpOworCisgIHJldHVybiBwc25hbWU7Cit9CisKIExp c3BfT2JqZWN0CiBoYmZvbnRfb3RmX2NhcGFiaWxpdHkgKHN0cnVjdCBmb250ICpmb250KQogewo= --00000000000023cb7e05c9312575--