From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 122830 invoked by alias); 19 Jun 2015 15:24:32 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 122810 invoked by uid 89); 19 Jun 2015 15:24:30 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.9 required=5.0 tests=AWL,BAYES_50,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-wg0-f48.google.com Received: from mail-wg0-f48.google.com (HELO mail-wg0-f48.google.com) (74.125.82.48) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Fri, 19 Jun 2015 15:24:26 +0000 Received: by wguu7 with SMTP id u7so20311718wgu.3 for ; Fri, 19 Jun 2015 08:24:23 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.194.178.39 with SMTP id cv7mr10139508wjc.59.1434727462942; Fri, 19 Jun 2015 08:24:22 -0700 (PDT) Received: by 10.194.104.197 with HTTP; Fri, 19 Jun 2015 08:24:22 -0700 (PDT) Date: Fri, 19 Jun 2015 15:24:00 -0000 Message-ID: Subject: [PATCH v2 2/2] Sync libiberty with gcc upstream From: Iain Buclaw To: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=089e013d1a1ec76abc0518e08461 X-IsSubscribed: yes X-SW-Source: 2015-06/txt/msg00406.txt.bz2 --089e013d1a1ec76abc0518e08461 Content-Type: text/plain; charset=UTF-8 Content-length: 145 Second downstream patch with dlang demangling related changes only. Should be a more straightforward read than the other one. Regards Iain --- --089e013d1a1ec76abc0518e08461 Content-Type: text/x-diff; charset=US-ASCII; name="sync_upstream_libiberty-2.patch" Content-Disposition: attachment; filename="sync_upstream_libiberty-2.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ib3robe00 Content-length: 40659 bGliaWJlcnR5LwoyMDE1LTA1LTE2ICBJYWluIEJ1Y2xhdyAgPGlidWNsYXdA Z2RjcHJvamVjdC5vcmc+CgoJKiBkLWRlbWFuZ2xlLmMgKGRsYW5nX3N5bWJv bF9raW5kcyk6IE5ldyBlbnVtLgoJKGRsYW5nX3BhcnNlX3N5bWJvbCk6IFVw ZGF0ZSBzaWduYXR1cmUuICBIYW5kbGUgYW4gYW1iaWd1aXR5IGJldHdlZW4K CXBhc2NhbCBmdW5jdGlvbnMgYW5kIHRlbXBsYXRlIHZhbHVlIGFyZ3VtZW50 cy4gIE9ubHkgY2hlY2sgZm9yIGEgdHlwZQoJaWYgcGFyc2luZyBhIGZ1bmN0 aW9uLCBvciBhdCB0aGUgdG9wIGxldmVsLiAgUmV0dXJuIGZhaWx1cmUgaWYg dGhlCgllbnRpcmUgc3ltYm9sIHdhcyBub3Qgc3VjY2Vzc2Z1bGx5IGRlbWFu Z2xlZC4KCShkbGFuZ19pZGVudGlmaWVyKTogVXBkYXRlIHNpZ25hdHVyZS4g IEhhbmRsZSBhbiBhbWJpZ3VpdHkgYmV0d2VlbiB0d28KCWFkamFjZW50IGRp Z2l0cyBpbiBhIG1hbmdsZWQgc3ltYm9sIHN0cmluZy4KCShkbGFuZ190eXBl KTogVXBkYXRlIGNhbGwgdG8gZGxhbmdfcGFyc2Vfc3ltYm9sLgoJKGRsYW5n X3RlbXBsYXRlX2FyZ3MpOiBMaWtld2lzZS4KCShkbGFuZ19wYXJzZV90ZW1w bGF0ZSk6IExpa2V3aXNlLgoJKGRsYW5nX2RlbWFuZ2xlKTogTGlrZXdpc2Uu CgkqIHRlc3RzdWl0ZS9kLWRlbWFuZ2xlLWV4cGVjdGVkOiBGaXggYmFkIHRl c3RzIGZvdW5kLCBhbmQgYWRkIHByb2JsZW1hdGljCglleGFtcGxlcyB0byB0 aGUgdW5pdHRlc3RzLgoKMjAxNS0wNS0xNiAgSWFpbiBCdWNsYXcgIDxpYnVj bGF3QGdkY3Byb2plY3Qub3JnPgoKCSogZC1kZW1hbmdsZS5jIChkbGFuZ190 ZW1wbGF0ZV9hcmdzKTogU2tpcCBvdmVyIHNwZWNpYWxpemVkIHRlbXBsYXRl CglwYXJhbWV0ZXJzIGluIG1hbmdsZWQgc3ltYm9sLgoJKiB0ZXN0c3VpdGUv ZC1kZW1hbmdsZS1leHBlY3RlZDogQWRkIGNvdmVyYWdlIGFuZCB1bml0dGVz dCBmb3Igc3BlY2lhbGl6ZWQKCXRlbXBsYXRlIHBhcmFtZXRlcnMuCgoyMDE1 LTA1LTE2ICBJYWluIEJ1Y2xhdyAgPGlidWNsYXdAZ2RjcHJvamVjdC5vcmc+ CgoJKiBkLWRlbWFuZ2xlLmMgKGRsYW5nX3R5cGUpOiBIYW5kbGUgY2VudCBh bmQgdWNlbnQgdHlwZXMuCgkqIHRlc3RzdWl0ZS9kLWRlbWFuZ2xlLWV4cGVj dGVkOiBBZGQgY292ZXJhZ2UgdGVzdHMgZm9yIGNlbnQgYW5kIHVjZW50LgoK MjAxNS0wNS0xNiAgSWFpbiBCdWNsYXcgIDxpYnVjbGF3QGdkY3Byb2plY3Qu b3JnPgoKCSogZC1kZW1hbmdsZS5jIChkbGFuZ19hdHRyaWJ1dGVzKTogSGFu ZGxlIHJldHVybiBhdHRyaWJ1dGVzLCBpZ25vcmluZwoJcmV0dXJuIHBhcmFt ZXRlcnMgaW4gdGhlIG1hbmdsZWQgc3RyaW5nLiAgUmV0dXJuIE5VTEwgaWYg aGF2ZSBlbmNvdW50ZXJlZAoJYW4gdW5rbm93biBhdHRyaWJ1dGUuCgkoZGxh bmdfZnVuY3Rpb25fYXJncyk6IEhhbmRsZSByZXR1cm4gcGFyYW1ldGVycyBp biB0aGUgbWFuZ2xlZCBzdHJpbmcuCgkqIHRlc3RzdWl0ZS9kLWRlbWFuZ2xl LWV4cGVjdGVkOiBBZGQgY292ZXJhZ2UgdGVzdHMgZm9yIGZ1bmN0aW9ucyB3 aXRoCglyZXR1cm4gcGFyYW1ldGVycyBhbmQgcmV0dXJuIGF0dHJpYnV0ZXMu CgoyMDE1LTA1LTE2ICBJYWluIEJ1Y2xhdyAgPGlidWNsYXdAZ2RjcHJvamVj dC5vcmc+CgoJKiBkLWRlbWFuZ2xlLmMgKGRsYW5nX2lkZW50aWZpZXIpOiBD aGVjayBlbmNvZGVkIGxlbmd0aCBvZiBpZGVudGlmaWVyCgl0byB2ZXJpZnkg c3RybmNtcCBtYXRjaGVzIGVudGlyZSBzdHJpbmcuCgkqIHRlc3RzdWl0ZS9k LWRlbWFuZ2xlLWV4cGVjdGVkOiBGaXggd3JvbmcgdGVzdCBmb3IgcG9zdGJs aXQgc3ltYm9sLgoKMjAxNS0wNS0xNiAgSWFpbiBCdWNsYXcgIDxpYnVjbGF3 QGdkY3Byb2plY3Qub3JnPgoKCSogZC1kZW1hbmdsZS5jIChkbGFuZ190eXBl X21vZGlmaWVycyk6IE5ldyBmdW5jdGlvbi4KCShkbGFuZ190eXBlX21vZGlm aWVyX3ApOiBOZXcgZnVuY3Rpb24uCgkoZGxhbmdfY2FsbF9jb252ZW50aW9u X3ApOiBJZ25vcmUgYW55IGtpbmQgb2YgdHlwZSBtb2RpZmllci4KCShkbGFu Z190eXBlKTogSGFuZGxlIGFuZCBlbWl0IHRoZSB0eXBlIG1vZGlmaWVyIGFm dGVyIGRlbGVnYXRlIHR5cGVzLgoJKGRsYW5nX3BhcnNlX3N5bWJvbCk6IEhh bmRsZSBhbmQgZW1pdCB0aGUgdHlwZSBtb2RpZmllciBhZnRlciB0aGUgc3lt Ym9sLgoJKiB0ZXN0c3VpdGUvZC1kZW1hbmdsZS1leHBlY3RlZDogQWRkIGNv dmVyYWdlIHRlc3RzIGZvciBhbGwgdmFsaWQKCXVzYWdlcyBvZiBmdW5jdGlv biBzeW1ib2xzIHdpdGggdHlwZSBtb2RpZmllcnMuCgoyMDE1LTA1LTE2ICBJ YWluIEJ1Y2xhdyAgPGlidWNsYXdAZ2RjcHJvamVjdC5vcmc+CgoJKiBkLWRl bWFuZ2xlLmMgKGRsYW5nX2NhbGxfY29udmVudGlvbik6IFJldHVybiBOVUxM IGlmIGhhdmUgcmVhY2hlZCB0aGUKCWVuZCBvZiB0aGUgc3ltYm9sLCBidXQg ZXhwZWN0ZWQgc29tZXRoaW5nIHRvIHJlYWQuCgkoZGxhbmdfYXR0cmlidXRl cyk6IExpa2V3aXNlLgoJKGRsYW5nX2Z1bmN0aW9uX3R5cGUpOiBMaWtld2lz ZS4KCShkbGFuZ190eXBlKTogTGlrZXdpc2UuCgkoZGxhbmdfaWRlbnRpZmll cik6IExpa2V3aXNlLgoJKGRsYW5nX3ZhbHVlKTogTGlrZXdpc2UuCgoyMDE1 LTA1LTE2ICBJYWluIEJ1Y2xhdyAgPGlidWNsYXdAZ2RjcHJvamVjdC5vcmc+ CgoJKiBkLWRlbWFuZ2xlLmMgKGRsYW5nX3BhcnNlX3N0cmluZyk6IFJlcHJl c2VudCBlbWJlZGRlZCB3aGl0ZXNwYWNlIG9yCglub24tcHJpbnRhYmxlIGNo YXJhY3RlcnMgYXMgaGV4IG9yIGVzY2FwZSBzZXF1ZW5jZXMuCgkqIHRlc3Rz dWl0ZS9kLWRlbWFuZ2xlLWV4cGVjdGVkOiBBZGQgdGVzdCBmb3IgdGVtcGxh dGVzIHdpdGggdGFicyBhbmQKCW5ld2xpbmVzIGVtYmVkZGVkIGludG8gdGhl IHNpZ25hdHVyZS4KCmRpZmYgLS1naXQgYS9saWJpYmVydHkvZC1kZW1hbmds ZS5jIGIvbGliaWJlcnR5L2QtZGVtYW5nbGUuYwppbmRleCBiYjQ4MWMwLi5h MmEzYjMyIDEwMDY0NAotLS0gYS9saWJpYmVydHkvZC1kZW1hbmdsZS5jCisr KyBiL2xpYmliZXJ0eS9kLWRlbWFuZ2xlLmMKQEAgLTEsNSArMSw1IEBACiAv KiBEZW1hbmdsZXIgZm9yIHRoZSBEIHByb2dyYW1taW5nIGxhbmd1YWdlCi0g ICBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KKyAgIENvcHlyaWdodCAyMDE0LCAyMDE1IEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgogICAgV3JpdHRlbiBieSBJYWluIEJ1Y2xhdyAoaWJ1 Y2xhd0BnZGNwcm9qZWN0Lm9yZykKIAogVGhpcyBmaWxlIGlzIHBhcnQgb2Yg dGhlIGxpYmliZXJ0eSBsaWJyYXJ5LgpAQCAtMTY1LDYgKzE2NSwyMSBAQCBz dHJpbmdfcHJlcGVuZCAoc3RyaW5nICpwLCBjb25zdCBjaGFyICpzKQogICAg IH0KIH0KIAorLyogV2hhdCBraW5kcyBvZiBzeW1ib2wgd2UgY291bGQgYmUg cGFyc2luZy4gICovCitlbnVtIGRsYW5nX3N5bWJvbF9raW5kcworeworICAv KiBUb3AtbGV2ZWwgc3ltYm9sLCBuZWVkcyBpdCdzIHR5cGUgY2hlY2tlZC4g ICovCisgIGRsYW5nX3RvcF9sZXZlbCwKKyAgLyogRnVuY3Rpb24gc3ltYm9s LCBuZWVkcyBpdCdzIHR5cGUgY2hlY2tlZC4gICAqLworICBkbGFuZ19mdW5j dGlvbiwKKyAgLyogU3Ryb25nbHkgdHlwZWQgbmFtZSwgc3VjaCBhcyBmb3Ig Y2xhc3Nlcywgc3RydWN0cyBhbmQgZW51bXMuICAqLworICBkbGFuZ190eXBl X25hbWUsCisgIC8qIFRlbXBsYXRlIGlkZW50aWZpZXIuICAqLworICBkbGFu Z190ZW1wbGF0ZV9pZGVudCwKKyAgLyogVGVtcGxhdGUgc3ltYm9sIHBhcmFt ZXRlci4gICovCisgIGRsYW5nX3RlbXBsYXRlX3BhcmFtCit9OworCiAvKiBQ cm90b3R5cGVzIGZvciBmb3J3YXJkIHJlZmVyZW5jZWQgZnVuY3Rpb25zICov CiBzdGF0aWMgY29uc3QgY2hhciAqZGxhbmdfZnVuY3Rpb25fYXJncyAoc3Ry aW5nICosIGNvbnN0IGNoYXIgKik7CiAKQEAgLTE3Miw3ICsxODcsOCBAQCBz dGF0aWMgY29uc3QgY2hhciAqZGxhbmdfdHlwZSAoc3RyaW5nICosIGNvbnN0 IGNoYXIgKik7CiAKIHN0YXRpYyBjb25zdCBjaGFyICpkbGFuZ192YWx1ZSAo c3RyaW5nICosIGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBjaGFyKTsK IAotc3RhdGljIGNvbnN0IGNoYXIgKmRsYW5nX3BhcnNlX3N5bWJvbCAoc3Ry aW5nICosIGNvbnN0IGNoYXIgKik7CitzdGF0aWMgY29uc3QgY2hhciAqZGxh bmdfcGFyc2Vfc3ltYm9sIChzdHJpbmcgKiwgY29uc3QgY2hhciAqLAorCQkJ CSAgICAgICBlbnVtIGRsYW5nX3N5bWJvbF9raW5kcyk7CiAKIHN0YXRpYyBj b25zdCBjaGFyICpkbGFuZ19wYXJzZV90dXBsZSAoc3RyaW5nICosIGNvbnN0 IGNoYXIgKik7CiAKQEAgLTE4NSw3ICsyMDEsNyBAQCBzdGF0aWMgY29uc3Qg Y2hhciAqCiBkbGFuZ19jYWxsX2NvbnZlbnRpb24gKHN0cmluZyAqZGVjbCwg Y29uc3QgY2hhciAqbWFuZ2xlZCkKIHsKICAgaWYgKG1hbmdsZWQgPT0gTlVM TCB8fCAqbWFuZ2xlZCA9PSAnXDAnKQotICAgIHJldHVybiBtYW5nbGVkOwor ICAgIHJldHVybiBOVUxMOwogCiAgIHN3aXRjaCAoKm1hbmdsZWQpCiAgICAg ewpAQCAtMjE1LDEzICsyMzEsNTEgQEAgZGxhbmdfY2FsbF9jb252ZW50aW9u IChzdHJpbmcgKmRlY2wsIGNvbnN0IGNoYXIgKm1hbmdsZWQpCiAgIHJldHVy biBtYW5nbGVkOwogfQogCisvKiBFeHRyYWN0IHRoZSB0eXBlIG1vZGlmaWVy cyBmcm9tIE1BTkdMRUQgYW5kIGFwcGVuZCB0aGVtIHRvIERFQ0wuCisgICBS ZXR1cm5zIHRoZSByZW1haW5pbmcgc2lnbmF0dXJlIG9uIHN1Y2Nlc3Mgb3Ig TlVMTCBvbiBmYWlsdXJlLiAgKi8KK3N0YXRpYyBjb25zdCBjaGFyICoKK2Rs YW5nX3R5cGVfbW9kaWZpZXJzIChzdHJpbmcgKmRlY2wsIGNvbnN0IGNoYXIg Km1hbmdsZWQpCit7CisgIGlmIChtYW5nbGVkID09IE5VTEwgfHwgKm1hbmds ZWQgPT0gJ1wwJykKKyAgICByZXR1cm4gTlVMTDsKKworICBzd2l0Y2ggKCpt YW5nbGVkKQorICAgIHsKKyAgICBjYXNlICd4JzogLyogY29uc3QgKi8KKyAg ICAgIG1hbmdsZWQrKzsKKyAgICAgIHN0cmluZ19hcHBlbmQgKGRlY2wsICIg Y29uc3QiKTsKKyAgICAgIHJldHVybiBtYW5nbGVkOworICAgIGNhc2UgJ3kn OiAvKiBpbW11dGFibGUgKi8KKyAgICAgIG1hbmdsZWQrKzsKKyAgICAgIHN0 cmluZ19hcHBlbmQgKGRlY2wsICIgaW1tdXRhYmxlIik7CisgICAgICByZXR1 cm4gbWFuZ2xlZDsKKyAgICBjYXNlICdPJzogLyogc2hhcmVkICovCisgICAg ICBtYW5nbGVkKys7CisgICAgICBzdHJpbmdfYXBwZW5kIChkZWNsLCAiIHNo YXJlZCIpOworICAgICAgcmV0dXJuIGRsYW5nX3R5cGVfbW9kaWZpZXJzIChk ZWNsLCBtYW5nbGVkKTsKKyAgICBjYXNlICdOJzoKKyAgICAgIG1hbmdsZWQr KzsKKyAgICAgIGlmICgqbWFuZ2xlZCA9PSAnZycpIC8qIHdpbGQgKi8KKwl7 CisJICBtYW5nbGVkKys7CisJICBzdHJpbmdfYXBwZW5kIChkZWNsLCAiIGlu b3V0Iik7CisJICByZXR1cm4gZGxhbmdfdHlwZV9tb2RpZmllcnMgKGRlY2ws IG1hbmdsZWQpOworCX0KKyAgICAgIGVsc2UKKwlyZXR1cm4gTlVMTDsKKwor ICAgIGRlZmF1bHQ6CisgICAgICByZXR1cm4gbWFuZ2xlZDsKKyAgICB9Cit9 CisKIC8qIERlbWFuZ2xlIHRoZSBEIGZ1bmN0aW9uIGF0dHJpYnV0ZXMgZnJv bSBNQU5HTEVEIGFuZCBhcHBlbmQgaXQgdG8gREVDTC4KICAgIFJldHVybiB0 aGUgcmVtYWluaW5nIHN0cmluZyBvbiBzdWNjZXNzIG9yIE5VTEwgb24gZmFp bHVyZS4gICovCiBzdGF0aWMgY29uc3QgY2hhciAqCiBkbGFuZ19hdHRyaWJ1 dGVzIChzdHJpbmcgKmRlY2wsIGNvbnN0IGNoYXIgKm1hbmdsZWQpCiB7CiAg IGlmIChtYW5nbGVkID09IE5VTEwgfHwgKm1hbmdsZWQgPT0gJ1wwJykKLSAg ICByZXR1cm4gbWFuZ2xlZDsKKyAgICByZXR1cm4gTlVMTDsKIAogICB3aGls ZSAoKm1hbmdsZWQgPT0gJ04nKQogICAgIHsKQEAgLTI1NCw4ICszMDgsMTAg QEAgZGxhbmdfYXR0cmlidXRlcyAoc3RyaW5nICpkZWNsLCBjb25zdCBjaGFy ICptYW5nbGVkKQogCSAgY29udGludWU7CiAJY2FzZSAnZyc6CiAJY2FzZSAn aCc6CisJY2FzZSAnayc6CiAJICAvKiBpbm91dCBwYXJhbWV0ZXIgaXMgcmVw cmVzZW50ZWQgYXMgJ05nJy4KIAkgICAgIHZlY3RvciBwYXJhbWV0ZXIgaXMg cmVwcmVzZW50ZWQgYXMgJ05oJy4KKwkgICAgIHJldHVybiBwYXJhbWVudGVy IGlzIHJlcHJlc2VudGVkIGFzICdOaycuCiAJICAgICBJZiB3ZSBzZWUgdGhp cywgdGhlbiB3ZSBrbm93IHdlJ3JlIHJlYWxseSBpbiB0aGUKIAkgICAgIHBh cmFtZXRlciBsaXN0LiAgUmV3aW5kIGFuZCBicmVhay4gICovCiAJICBtYW5n bGVkLS07CkBAIC0yNjQsNiArMzIwLDEzIEBAIGRsYW5nX2F0dHJpYnV0ZXMg KHN0cmluZyAqZGVjbCwgY29uc3QgY2hhciAqbWFuZ2xlZCkKIAkgIG1hbmds ZWQrKzsKIAkgIHN0cmluZ19hcHBlbmQgKGRlY2wsICJAbm9nYyAiKTsKIAkg IGNvbnRpbnVlOworCWNhc2UgJ2onOiAvKiByZXR1cm4gKi8KKwkgIG1hbmds ZWQrKzsKKwkgIHN0cmluZ19hcHBlbmQgKGRlY2wsICJyZXR1cm4gIik7CisJ ICBjb250aW51ZTsKKworCWRlZmF1bHQ6IC8qIHVua25vd24gYXR0cmlidXRl ICovCisJICByZXR1cm4gTlVMTDsKIAl9CiAgICAgICBicmVhazsKICAgICB9 CkBAIC0yODAsNyArMzQzLDcgQEAgZGxhbmdfZnVuY3Rpb25fdHlwZSAoc3Ry aW5nICpkZWNsLCBjb25zdCBjaGFyICptYW5nbGVkKQogICBzaXplX3Qgc3ph dHRyLCBzemFyZ3MsIHN6dHlwZTsKIAogICBpZiAobWFuZ2xlZCA9PSBOVUxM IHx8ICptYW5nbGVkID09ICdcMCcpCi0gICAgcmV0dXJuIG1hbmdsZWQ7Cisg ICAgcmV0dXJuIE5VTEw7CiAKICAgLyogVGhlIG9yZGVyIG9mIHRoZSBtYW5n bGVkIHN0cmluZyBpczoKIAlDYWxsQ29udmVudGlvbiBGdW5jQXR0cnMgQXJn dW1lbnRzIEFyZ0Nsb3NlIFR5cGUKQEAgLTM1Myw2ICs0MTYsMTIgQEAgZGxh bmdfZnVuY3Rpb25fYXJncyAoc3RyaW5nICpkZWNsLCBjb25zdCBjaGFyICpt YW5nbGVkKQogCSAgc3RyaW5nX2FwcGVuZCAoZGVjbCwgInNjb3BlICIpOwog CX0KIAorICAgICAgaWYgKG1hbmdsZWRbMF0gPT0gJ04nICYmIG1hbmdsZWRb MV0gPT0gJ2snKSAvKiByZXR1cm4oVCkgKi8KKwl7CisJICBtYW5nbGVkICs9 IDI7CisJICBzdHJpbmdfYXBwZW5kIChkZWNsLCAicmV0dXJuICIpOworCX0K KwogICAgICAgc3dpdGNoICgqbWFuZ2xlZCkKIAl7CiAJY2FzZSAnSic6IC8q IG91dChUKSAqLwpAQCAtMzgwLDcgKzQ0OSw3IEBAIHN0YXRpYyBjb25zdCBj aGFyICoKIGRsYW5nX3R5cGUgKHN0cmluZyAqZGVjbCwgY29uc3QgY2hhciAq bWFuZ2xlZCkKIHsKICAgaWYgKG1hbmdsZWQgPT0gTlVMTCB8fCAqbWFuZ2xl ZCA9PSAnXDAnKQotICAgIHJldHVybiBtYW5nbGVkOworICAgIHJldHVybiBO VUxMOwogCiAgIHN3aXRjaCAoKm1hbmdsZWQpCiAgICAgewpAQCAtNDc0LDEy ICs1NDMsMjQgQEAgZGxhbmdfdHlwZSAoc3RyaW5nICpkZWNsLCBjb25zdCBj aGFyICptYW5nbGVkKQogICAgIGNhc2UgJ0UnOiAvKiBlbnVtIFQgKi8KICAg ICBjYXNlICdUJzogLyogdHlwZWRlZiBUICovCiAgICAgICBtYW5nbGVkKys7 Ci0gICAgICByZXR1cm4gZGxhbmdfcGFyc2Vfc3ltYm9sIChkZWNsLCBtYW5n bGVkKTsKKyAgICAgIHJldHVybiBkbGFuZ19wYXJzZV9zeW1ib2wgKGRlY2ws IG1hbmdsZWQsIGRsYW5nX3R5cGVfbmFtZSk7CiAgICAgY2FzZSAnRCc6IC8q IGRlbGVnYXRlIFQgKi8KKyAgICB7CisgICAgICBzdHJpbmcgbW9kczsKKyAg ICAgIHNpemVfdCBzem1vZHM7CiAgICAgICBtYW5nbGVkKys7CisKKyAgICAg IHN0cmluZ19pbml0ICgmbW9kcyk7CisgICAgICBtYW5nbGVkID0gZGxhbmdf dHlwZV9tb2RpZmllcnMgKCZtb2RzLCBtYW5nbGVkKTsKKyAgICAgIHN6bW9k cyA9IHN0cmluZ19sZW5ndGggKCZtb2RzKTsKKwogICAgICAgbWFuZ2xlZCA9 IGRsYW5nX2Z1bmN0aW9uX3R5cGUgKGRlY2wsIG1hbmdsZWQpOwogICAgICAg c3RyaW5nX2FwcGVuZCAoZGVjbCwgImRlbGVnYXRlIik7CisgICAgICBzdHJp bmdfYXBwZW5kbiAoZGVjbCwgbW9kcy5iLCBzem1vZHMpOworCisgICAgICBz dHJpbmdfZGVsZXRlICgmbW9kcyk7CiAgICAgICByZXR1cm4gbWFuZ2xlZDsK KyAgICB9CiAgICAgY2FzZSAnQic6IC8qIHR1cGxlIFQgKi8KICAgICAgIG1h bmdsZWQrKzsKICAgICAgIHJldHVybiBkbGFuZ19wYXJzZV90dXBsZSAoZGVj bCwgbWFuZ2xlZCk7CkBAIC01ODgsNiArNjY5LDIwIEBAIGRsYW5nX3R5cGUg KHN0cmluZyAqZGVjbCwgY29uc3QgY2hhciAqbWFuZ2xlZCkKICAgICAgIG1h bmdsZWQrKzsKICAgICAgIHN0cmluZ19hcHBlbmQgKGRlY2wsICJkY2hhciIp OwogICAgICAgcmV0dXJuIG1hbmdsZWQ7CisgICAgY2FzZSAneic6CisgICAg ICBtYW5nbGVkKys7CisgICAgICBzd2l0Y2ggKCptYW5nbGVkKQorCXsKKwlj YXNlICdpJzoKKwkgIG1hbmdsZWQrKzsKKwkgIHN0cmluZ19hcHBlbmQgKGRl Y2wsICJjZW50Iik7CisJICByZXR1cm4gbWFuZ2xlZDsKKwljYXNlICdrJzoK KwkgIG1hbmdsZWQrKzsKKwkgIHN0cmluZ19hcHBlbmQgKGRlY2wsICJ1Y2Vu dCIpOworCSAgcmV0dXJuIG1hbmdsZWQ7CisJfQorICAgICAgcmV0dXJuIE5V TEw7CiAKICAgICBkZWZhdWx0OiAvKiB1bmhhbmRsZWQgKi8KICAgICAgIHJl dHVybiBOVUxMOwpAQCAtNTk3LDk3ICs2OTIsMTYyIEBAIGRsYW5nX3R5cGUg KHN0cmluZyAqZGVjbCwgY29uc3QgY2hhciAqbWFuZ2xlZCkKIC8qIEV4dHJh Y3QgdGhlIGlkZW50aWZpZXIgZnJvbSBNQU5HTEVEIGFuZCBhcHBlbmQgaXQg dG8gREVDTC4KICAgIFJldHVybiB0aGUgcmVtYWluaW5nIHN0cmluZyBvbiBz dWNjZXNzIG9yIE5VTEwgb24gZmFpbHVyZS4gICovCiBzdGF0aWMgY29uc3Qg Y2hhciAqCi1kbGFuZ19pZGVudGlmaWVyIChzdHJpbmcgKmRlY2wsIGNvbnN0 IGNoYXIgKm1hbmdsZWQpCitkbGFuZ19pZGVudGlmaWVyIChzdHJpbmcgKmRl Y2wsIGNvbnN0IGNoYXIgKm1hbmdsZWQsCisJCSAgZW51bSBkbGFuZ19zeW1i b2xfa2luZHMga2luZCkKIHsKKyAgY2hhciAqZW5kcHRyOworICBsb25nIGxl bjsKKwogICBpZiAobWFuZ2xlZCA9PSBOVUxMIHx8ICptYW5nbGVkID09ICdc MCcpCi0gICAgcmV0dXJuIG1hbmdsZWQ7CisgICAgcmV0dXJuIE5VTEw7CiAK LSAgaWYgKElTRElHSVQgKCptYW5nbGVkKSkKKyAgbGVuID0gc3RydG9sICht YW5nbGVkLCAmZW5kcHRyLCAxMCk7CisKKyAgaWYgKGVuZHB0ciA9PSBOVUxM IHx8IGxlbiA8PSAwKQorICAgIHJldHVybiBOVUxMOworCisgIC8qIEluIHRl bXBsYXRlIHBhcmFtZXRlciBzeW1ib2xzLCB0aGUgZmlyc3QgY2hhcmFjdGVy IG9mIHRoZSBtYW5nbGVkCisgICAgIG5hbWUgY2FuIGJlIGEgZGlnaXQuICBU aGlzIGNhdXNlcyBhbWJpZ3VpdHkgaXNzdWVzIGJlY2F1c2UgdGhlCisgICAg IGRpZ2l0cyBvZiB0aGUgdHdvIG51bWJlcnMgYXJlIGFkamFjZW50LiAgKi8K KyAgaWYgKGtpbmQgPT0gZGxhbmdfdGVtcGxhdGVfcGFyYW0pCiAgICAgewot ICAgICAgY2hhciAqZW5kcHRyOwotICAgICAgbG9uZyBpID0gc3RydG9sICht YW5nbGVkLCAmZW5kcHRyLCAxMCk7CisgICAgICBsb25nIHBzaXplID0gbGVu OworICAgICAgY2hhciAqcGVuZDsKKyAgICAgIGludCBzYXZlZCA9IHN0cmlu Z19sZW5ndGggKGRlY2wpOwogCi0gICAgICBpZiAoZW5kcHRyID09IE5VTEwg fHwgaSA8PSAwIHx8IHN0cmxlbiAoZW5kcHRyKSA8IChzaXplX3QpIGkpCisg ICAgICAvKiBXb3JrIGJhY2t3YXJkcyB1bnRpbCBhIG1hdGNoIGlzIGZvdW5k LiAgKi8KKyAgICAgIGZvciAocGVuZCA9IGVuZHB0cjsgZW5kcHRyICE9IE5V TEw7IHBlbmQtLSkKKwl7CisJICBtYW5nbGVkID0gcGVuZDsKKworCSAgLyog UmVhY2hlZCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBwb2ludGVyIHRvIHRoZSBu YW1lIGxlbmd0aCwKKwkgICAgIHRyeSBwYXJzaW5nIHRoZSBlbnRpcmUgc3lt Ym9sLiAgKi8KKwkgIGlmIChwc2l6ZSA9PSAwKQorCSAgICB7CisJICAgICAg cHNpemUgPSBsZW47CisJICAgICAgcGVuZCA9IGVuZHB0cjsKKwkgICAgICBl bmRwdHIgPSBOVUxMOworCSAgICB9CisKKwkgIC8qIENoZWNrIHdoZXRoZXIg dGVtcGxhdGUgcGFyYW1ldGVyIGlzIGEgZnVuY3Rpb24gd2l0aCBhIHZhbGlk CisJICAgICByZXR1cm4gdHlwZSBvciBhbiB1bnR5cGVkIGlkZW50aWZpZXIu ICAqLworCSAgaWYgKElTRElHSVQgKCptYW5nbGVkKSkKKwkgICAgbWFuZ2xl ZCA9IGRsYW5nX3BhcnNlX3N5bWJvbCAoZGVjbCwgbWFuZ2xlZCwgZGxhbmdf dGVtcGxhdGVfaWRlbnQpOworCSAgZWxzZSBpZiAoc3RybmNtcCAobWFuZ2xl ZCwgIl9EIiwgMikgPT0gMCkKKwkgICAgeworCSAgICAgIG1hbmdsZWQgKz0g MjsKKwkgICAgICBtYW5nbGVkID0gZGxhbmdfcGFyc2Vfc3ltYm9sIChkZWNs LCBtYW5nbGVkLCBkbGFuZ19mdW5jdGlvbik7CisJICAgIH0KKworCSAgLyog Q2hlY2sgZm9yIG5hbWUgbGVuZ3RoIG1pc21hdGNoLiAgKi8KKwkgIGlmICht YW5nbGVkICYmIChtYW5nbGVkIC0gcGVuZCkgPT0gcHNpemUpCisJICAgIHJl dHVybiBtYW5nbGVkOworCisJICBwc2l6ZSAvPSAxMDsKKwkgIHN0cmluZ19z ZXRsZW5ndGggKGRlY2wsIHNhdmVkKTsKKwl9CisKKyAgICAgIC8qIE5vIG1h dGNoIG9uIGFueSBjb21iaW5hdGlvbnMuICAqLworICAgICAgcmV0dXJuIE5V TEw7CisgICAgfQorICBlbHNlCisgICAgeworICAgICAgaWYgKHN0cmxlbiAo ZW5kcHRyKSA8IChzaXplX3QpIGxlbikKIAlyZXR1cm4gTlVMTDsKIAogICAg ICAgbWFuZ2xlZCA9IGVuZHB0cjsKIAogICAgICAgLyogTWF5IGJlIGEgdGVt cGxhdGUgaW5zdGFuY2UuICAqLwotICAgICAgaWYgKGkgPj0gNSAmJiBzdHJu Y21wIChtYW5nbGVkLCAiX19UIiwgMykgPT0gMCkKKyAgICAgIGlmIChsZW4g Pj0gNSAmJiBzdHJuY21wIChtYW5nbGVkLCAiX19UIiwgMykgPT0gMCkKIAl7 CiAJICAvKiBUZW1wbGF0ZSBzeW1ib2wuICAqLwogCSAgaWYgKElTRElHSVQg KG1hbmdsZWRbM10pICYmIG1hbmdsZWRbM10gIT0gJzAnKQotCSAgICByZXR1 cm4gZGxhbmdfcGFyc2VfdGVtcGxhdGUgKGRlY2wsIG1hbmdsZWQsIGkpOwor CSAgICByZXR1cm4gZGxhbmdfcGFyc2VfdGVtcGxhdGUgKGRlY2wsIG1hbmds ZWQsIGxlbik7CiAKIAkgIHJldHVybiBOVUxMOwogCX0KIAotICAgICAgaWYg KHN0cm5jbXAgKG1hbmdsZWQsICJfX2N0b3IiLCBpKSA9PSAwKQotCXsKLQkg IC8qIENvbnN0cnVjdG9yIHN5bWJvbCBmb3IgYSBjbGFzcy9zdHJ1Y3QuICAq LwotCSAgc3RyaW5nX2FwcGVuZCAoZGVjbCwgInRoaXMiKTsKLQkgIG1hbmds ZWQgKz0gaTsKLQkgIHJldHVybiBtYW5nbGVkOwotCX0KLSAgICAgIGVsc2Ug aWYgKHN0cm5jbXAgKG1hbmdsZWQsICJfX2R0b3IiLCBpKSA9PSAwKQotCXsK LQkgIC8qIERlc3RydWN0b3Igc3ltYm9sIGZvciBhIGNsYXNzL3N0cnVjdC4g ICovCi0JICBzdHJpbmdfYXBwZW5kIChkZWNsLCAifnRoaXMiKTsKLQkgIG1h bmdsZWQgKz0gaTsKLQkgIHJldHVybiBtYW5nbGVkOwotCX0KLSAgICAgIGVs c2UgaWYgKHN0cm5jbXAgKG1hbmdsZWQsICJfX3Bvc3RibGl0IiwgaSkgPT0g MCkKLQl7Ci0JICAvKiBQb3N0YmxpdCBzeW1ib2wgZm9yIGEgc3RydWN0LiAg Ki8KLQkgIHN0cmluZ19hcHBlbmQgKGRlY2wsICJ0aGlzKHRoaXMpIik7Ci0J ICBtYW5nbGVkICs9IGk7Ci0JICByZXR1cm4gbWFuZ2xlZDsKLQl9Ci0gICAg ICBlbHNlIGlmIChzdHJuY21wIChtYW5nbGVkLCAiX19pbml0WiIsIGkrMSkg PT0gMCkKLQl7Ci0JICAvKiBUaGUgc3RhdGljIGluaXRpYWxpc2VyIGZvciBh IGdpdmVuIHN5bWJvbC4gICovCi0JICBzdHJpbmdfYXBwZW5kIChkZWNsLCAi aW5pdCQiKTsKLQkgIG1hbmdsZWQgKz0gaSArIDE7Ci0JICByZXR1cm4gbWFu Z2xlZDsKLQl9Ci0gICAgICBlbHNlIGlmIChzdHJuY21wIChtYW5nbGVkLCAi X19DbGFzc1oiLCBpKzEpID09IDApCisgICAgICBzd2l0Y2ggKGxlbikKIAl7 Ci0JICAvKiBUaGUgY2xhc3NpbmZvIHN5bWJvbCBmb3IgYSBnaXZlbiBjbGFz cy4gICovCi0JICBzdHJpbmdfcHJlcGVuZCAoZGVjbCwgIkNsYXNzSW5mbyBm b3IgIik7Ci0JICBzdHJpbmdfc2V0bGVuZ3RoIChkZWNsLCBzdHJpbmdfbGVu Z3RoIChkZWNsKSAtIDEpOwotCSAgbWFuZ2xlZCArPSBpICsgMTsKLQkgIHJl dHVybiBtYW5nbGVkOwotCX0KLSAgICAgIGVsc2UgaWYgKHN0cm5jbXAgKG1h bmdsZWQsICJfX3Z0YmxaIiwgaSsxKSA9PSAwKQotCXsKLQkgIC8qIFRoZSB2 dGFibGUgc3ltYm9sIGZvciBhIGdpdmVuIGNsYXNzLiAgKi8KLQkgIHN0cmlu Z19wcmVwZW5kIChkZWNsLCAidnRhYmxlIGZvciAiKTsKLQkgIHN0cmluZ19z ZXRsZW5ndGggKGRlY2wsIHN0cmluZ19sZW5ndGggKGRlY2wpIC0gMSk7Ci0J ICBtYW5nbGVkICs9IGkgKyAxOwotCSAgcmV0dXJuIG1hbmdsZWQ7Ci0JfQot ICAgICAgZWxzZSBpZiAoc3RybmNtcCAobWFuZ2xlZCwgIl9fSW50ZXJmYWNl WiIsIGkrMSkgPT0gMCkKLQl7Ci0JICAvKiBUaGUgaW50ZXJmYWNlIHN5bWJv bCBmb3IgYSBnaXZlbiBjbGFzcy4gICovCi0JICBzdHJpbmdfcHJlcGVuZCAo ZGVjbCwgIkludGVyZmFjZSBmb3IgIik7Ci0JICBzdHJpbmdfc2V0bGVuZ3Ro IChkZWNsLCBzdHJpbmdfbGVuZ3RoIChkZWNsKSAtIDEpOwotCSAgbWFuZ2xl ZCArPSBpICsgMTsKLQkgIHJldHVybiBtYW5nbGVkOwotCX0KLSAgICAgIGVs c2UgaWYgKHN0cm5jbXAgKG1hbmdsZWQsICJfX01vZHVsZUluZm9aIiwgaSsx KSA9PSAwKQotCXsKLQkgIC8qIFRoZSBNb2R1bGVJbmZvIHN5bWJvbCBmb3Ig YSBnaXZlbiBtb2R1bGUuICAqLwotCSAgc3RyaW5nX3ByZXBlbmQgKGRlY2ws ICJNb2R1bGVJbmZvIGZvciAiKTsKLQkgIHN0cmluZ19zZXRsZW5ndGggKGRl Y2wsIHN0cmluZ19sZW5ndGggKGRlY2wpIC0gMSk7Ci0JICBtYW5nbGVkICs9 IGkgKyAxOwotCSAgcmV0dXJuIG1hbmdsZWQ7CisJY2FzZSA2OgorCSAgaWYg KHN0cm5jbXAgKG1hbmdsZWQsICJfX2N0b3IiLCBsZW4pID09IDApCisJICAg IHsKKwkgICAgICAvKiBDb25zdHJ1Y3RvciBzeW1ib2wgZm9yIGEgY2xhc3Mv c3RydWN0LiAgKi8KKwkgICAgICBzdHJpbmdfYXBwZW5kIChkZWNsLCAidGhp cyIpOworCSAgICAgIG1hbmdsZWQgKz0gbGVuOworCSAgICAgIHJldHVybiBt YW5nbGVkOworCSAgICB9CisJICBlbHNlIGlmIChzdHJuY21wIChtYW5nbGVk LCAiX19kdG9yIiwgbGVuKSA9PSAwKQorCSAgICB7CisJICAgICAgLyogRGVz dHJ1Y3RvciBzeW1ib2wgZm9yIGEgY2xhc3Mvc3RydWN0LiAgKi8KKwkgICAg ICBzdHJpbmdfYXBwZW5kIChkZWNsLCAifnRoaXMiKTsKKwkgICAgICBtYW5n bGVkICs9IGxlbjsKKwkgICAgICByZXR1cm4gbWFuZ2xlZDsKKwkgICAgfQor CSAgZWxzZSBpZiAoc3RybmNtcCAobWFuZ2xlZCwgIl9faW5pdFoiLCBsZW4r MSkgPT0gMCkKKwkgICAgeworCSAgICAgIC8qIFRoZSBzdGF0aWMgaW5pdGlh bGlzZXIgZm9yIGEgZ2l2ZW4gc3ltYm9sLiAgKi8KKwkgICAgICBzdHJpbmdf YXBwZW5kIChkZWNsLCAiaW5pdCQiKTsKKwkgICAgICBtYW5nbGVkICs9IGxl bjsKKwkgICAgICByZXR1cm4gbWFuZ2xlZDsKKwkgICAgfQorCSAgZWxzZSBp ZiAoc3RybmNtcCAobWFuZ2xlZCwgIl9fdnRibFoiLCBsZW4rMSkgPT0gMCkK KwkgICAgeworCSAgICAgIC8qIFRoZSB2dGFibGUgc3ltYm9sIGZvciBhIGdp dmVuIGNsYXNzLiAgKi8KKwkgICAgICBzdHJpbmdfcHJlcGVuZCAoZGVjbCwg InZ0YWJsZSBmb3IgIik7CisJICAgICAgc3RyaW5nX3NldGxlbmd0aCAoZGVj bCwgc3RyaW5nX2xlbmd0aCAoZGVjbCkgLSAxKTsKKwkgICAgICBtYW5nbGVk ICs9IGxlbjsKKwkgICAgICByZXR1cm4gbWFuZ2xlZDsKKwkgICAgfQorCSAg YnJlYWs7CisKKwljYXNlIDc6CisJICBpZiAoc3RybmNtcCAobWFuZ2xlZCwg Il9fQ2xhc3NaIiwgbGVuKzEpID09IDApCisJICAgIHsKKwkgICAgICAvKiBU aGUgY2xhc3NpbmZvIHN5bWJvbCBmb3IgYSBnaXZlbiBjbGFzcy4gICovCisJ ICAgICAgc3RyaW5nX3ByZXBlbmQgKGRlY2wsICJDbGFzc0luZm8gZm9yICIp OworCSAgICAgIHN0cmluZ19zZXRsZW5ndGggKGRlY2wsIHN0cmluZ19sZW5n dGggKGRlY2wpIC0gMSk7CisJICAgICAgbWFuZ2xlZCArPSBsZW47CisJICAg ICAgcmV0dXJuIG1hbmdsZWQ7CisJICAgIH0KKwkgIGJyZWFrOworCisJY2Fz ZSAxMDoKKwkgIGlmIChzdHJuY21wIChtYW5nbGVkLCAiX19wb3N0YmxpdE1G WiIsIGxlbiszKSA9PSAwKQorCSAgICB7CisJICAgICAgLyogUG9zdGJsaXQg c3ltYm9sIGZvciBhIHN0cnVjdC4gICovCisJICAgICAgc3RyaW5nX2FwcGVu ZCAoZGVjbCwgInRoaXModGhpcykiKTsKKwkgICAgICBtYW5nbGVkICs9IGxl biArIDM7CisJICAgICAgcmV0dXJuIG1hbmdsZWQ7CisJICAgIH0KKwkgIGJy ZWFrOworCisJY2FzZSAxMToKKwkgIGlmIChzdHJuY21wIChtYW5nbGVkLCAi X19JbnRlcmZhY2VaIiwgbGVuKzEpID09IDApCisJICAgIHsKKwkgICAgICAv KiBUaGUgaW50ZXJmYWNlIHN5bWJvbCBmb3IgYSBnaXZlbiBjbGFzcy4gICov CisJICAgICAgc3RyaW5nX3ByZXBlbmQgKGRlY2wsICJJbnRlcmZhY2UgZm9y ICIpOworCSAgICAgIHN0cmluZ19zZXRsZW5ndGggKGRlY2wsIHN0cmluZ19s ZW5ndGggKGRlY2wpIC0gMSk7CisJICAgICAgbWFuZ2xlZCArPSBsZW47CisJ ICAgICAgcmV0dXJuIG1hbmdsZWQ7CisJICAgIH0KKwkgIGJyZWFrOworCisJ Y2FzZSAxMjoKKwkgIGlmIChzdHJuY21wIChtYW5nbGVkLCAiX19Nb2R1bGVJ bmZvWiIsIGxlbisxKSA9PSAwKQorCSAgICB7CisJICAgICAgLyogVGhlIE1v ZHVsZUluZm8gc3ltYm9sIGZvciBhIGdpdmVuIG1vZHVsZS4gICovCisJICAg ICAgc3RyaW5nX3ByZXBlbmQgKGRlY2wsICJNb2R1bGVJbmZvIGZvciAiKTsK KwkgICAgICBzdHJpbmdfc2V0bGVuZ3RoIChkZWNsLCBzdHJpbmdfbGVuZ3Ro IChkZWNsKSAtIDEpOworCSAgICAgIG1hbmdsZWQgKz0gbGVuOworCSAgICAg IHJldHVybiBtYW5nbGVkOworCSAgICB9CisJICBicmVhazsKIAl9CiAKLSAg ICAgIHN0cmluZ19hcHBlbmRuIChkZWNsLCBtYW5nbGVkLCBpKTsKLSAgICAg IG1hbmdsZWQgKz0gaTsKKyAgICAgIHN0cmluZ19hcHBlbmRuIChkZWNsLCBt YW5nbGVkLCBsZW4pOworICAgICAgbWFuZ2xlZCArPSBsZW47CiAgICAgfQot ICBlbHNlCi0gICAgcmV0dXJuIE5VTEw7CiAKICAgcmV0dXJuIG1hbmdsZWQ7 CiB9CkBAIC05MzEsNyArMTA5MSwzOCBAQCBkbGFuZ19wYXJzZV9zdHJpbmcg KHN0cmluZyAqZGVjbCwgY29uc3QgY2hhciAqbWFuZ2xlZCkKIAkgIGNoYXIg YSA9IGFzY2lpMmhleCAobWFuZ2xlZFswXSk7CiAJICBjaGFyIGIgPSBhc2Np aTJoZXggKG1hbmdsZWRbMV0pOwogCSAgY2hhciB2YWwgPSAoYSA8PCA0KSB8 IGI7Ci0JICBzdHJpbmdfYXBwZW5kbiAoZGVjbCwgJnZhbCwgMSk7CisKKwkg IC8qIFNhbml0aXplIHdoaXRlIGFuZCBub24tcHJpbnRhYmxlIGNoYXJhY3Rl cnMuICAqLworCSAgc3dpdGNoICh2YWwpCisJICAgIHsKKwkgICAgY2FzZSAn ICc6CisJICAgICAgc3RyaW5nX2FwcGVuZCAoZGVjbCwgIiAiKTsKKwkgICAg ICBicmVhazsKKwkgICAgY2FzZSAnXHQnOgorCSAgICAgIHN0cmluZ19hcHBl bmQgKGRlY2wsICJcXHQiKTsKKwkgICAgICBicmVhazsKKwkgICAgY2FzZSAn XG4nOgorCSAgICAgIHN0cmluZ19hcHBlbmQgKGRlY2wsICJcXG4iKTsKKwkg ICAgICBicmVhazsKKwkgICAgY2FzZSAnXHInOgorCSAgICAgIHN0cmluZ19h cHBlbmQgKGRlY2wsICJcXHIiKTsKKwkgICAgICBicmVhazsKKwkgICAgY2Fz ZSAnXGYnOgorCSAgICAgIHN0cmluZ19hcHBlbmQgKGRlY2wsICJcXGYiKTsK KwkgICAgICBicmVhazsKKwkgICAgY2FzZSAnXHYnOgorCSAgICAgIHN0cmlu Z19hcHBlbmQgKGRlY2wsICJcXHYiKTsKKwkgICAgICBicmVhazsKKworCSAg ICBkZWZhdWx0OgorCSAgICAgIGlmIChJU1BSSU5UICh2YWwpKQorCQlzdHJp bmdfYXBwZW5kbiAoZGVjbCwgJnZhbCwgMSk7CisJICAgICAgZWxzZQorCQl7 CisJCSAgc3RyaW5nX2FwcGVuZCAoZGVjbCwgIlxceCIpOworCQkgIHN0cmlu Z19hcHBlbmRuIChkZWNsLCBtYW5nbGVkLCAyKTsKKwkJfQorCSAgICB9CiAJ fQogICAgICAgZWxzZQogCXJldHVybiBOVUxMOwpAQCAtMTAzMCw3ICsxMjIx LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKgogZGxhbmdfdmFsdWUgKHN0cmlu ZyAqZGVjbCwgY29uc3QgY2hhciAqbWFuZ2xlZCwgY29uc3QgY2hhciAqbmFt ZSwgY2hhciB0eXBlKQogewogICBpZiAobWFuZ2xlZCA9PSBOVUxMIHx8ICpt YW5nbGVkID09ICdcMCcpCi0gICAgcmV0dXJuIG1hbmdsZWQ7CisgICAgcmV0 dXJuIE5VTEw7CiAKICAgc3dpdGNoICgqbWFuZ2xlZCkKICAgICB7CkBAIC0x MTA0LDI4ICsxMjk1LDU0IEBAIGRsYW5nX3ZhbHVlIChzdHJpbmcgKmRlY2ws IGNvbnN0IGNoYXIgKm1hbmdsZWQsIGNvbnN0IGNoYXIgKm5hbWUsIGNoYXIg dHlwZSkKICAgcmV0dXJuIG1hbmdsZWQ7CiB9CiAKKy8qIEV4dHJhY3QgdGhl IHR5cGUgbW9kaWZpZXJzIGZyb20gTUFOR0xFRCBhbmQgcmV0dXJuIHRoZSBz dHJpbmcKKyAgIGxlbmd0aCB0aGF0IGl0IGNvbnN1bWVzIGluIE1BTkdMRUQg b24gc3VjY2VzcyBvciAwIG9uIGZhaWx1cmUuICAqLwogc3RhdGljIGludAot ZGxhbmdfY2FsbF9jb252ZW50aW9uX3AgKGNvbnN0IGNoYXIgKm1hbmdsZWQp CitkbGFuZ190eXBlX21vZGlmaWVyX3AgKGNvbnN0IGNoYXIgKm1hbmdsZWQp CiB7Ci0gIHNpemVfdCBpOworICBpbnQgaTsKIAogICBzd2l0Y2ggKCptYW5n bGVkKQogICAgIHsKLSAgICBjYXNlICdGJzogY2FzZSAnVSc6IGNhc2UgJ1Yn OgotICAgIGNhc2UgJ1cnOiBjYXNlICdSJzoKKyAgICBjYXNlICd4JzogY2Fz ZSAneSc6CiAgICAgICByZXR1cm4gMTsKIAotICAgIGNhc2UgJ00nOiAvKiBQ cmVmaXggZm9yIGZ1bmN0aW9ucyBuZWVkaW5nICd0aGlzJyAqLwotICAgICAg aSA9IDE7Ci0gICAgICBpZiAobWFuZ2xlZFtpXSA9PSAneCcpCi0JaSsrOwor ICAgIGNhc2UgJ08nOgorICAgICAgbWFuZ2xlZCsrOworICAgICAgaSA9IGRs YW5nX3R5cGVfbW9kaWZpZXJfcCAobWFuZ2xlZCk7CisgICAgICByZXR1cm4g aSArIDE7CiAKLSAgICAgIHN3aXRjaCAobWFuZ2xlZFtpXSkKKyAgICBjYXNl ICdOJzoKKyAgICAgIG1hbmdsZWQrKzsKKyAgICAgIGlmICgqbWFuZ2xlZCA9 PSAnZycpCiAJewotCWNhc2UgJ0YnOiBjYXNlICdVJzogY2FzZSAnVic6Ci0J Y2FzZSAnVyc6IGNhc2UgJ1InOgotCSAgcmV0dXJuIDE7CisJICBtYW5nbGVk Kys7CisJICBpID0gZGxhbmdfdHlwZV9tb2RpZmllcl9wIChtYW5nbGVkKTsK KwkgIHJldHVybiBpICsgMjsKIAl9CisgICAgfQorCisgIHJldHVybiAwOwor fQorCisvKiBFeHRyYWN0IHRoZSBmdW5jdGlvbiBjYWxsaW5nIGNvbnZlbnRp b24gZnJvbSBNQU5HTEVEIGFuZAorICAgcmV0dXJuIDEgb24gc3VjY2VzcyBv ciAwIG9uIGZhaWx1cmUuICAqLworc3RhdGljIGludAorZGxhbmdfY2FsbF9j b252ZW50aW9uX3AgKGNvbnN0IGNoYXIgKm1hbmdsZWQpCit7CisgIC8qIFBy ZWZpeCBmb3IgZnVuY3Rpb25zIG5lZWRpbmcgJ3RoaXMnICovCisgIGlmICgq bWFuZ2xlZCA9PSAnTScpCisgICAgeworICAgICAgbWFuZ2xlZCsrOworICAg ICAgLyogQWxzbyBza2lwIG92ZXIgYW55IHR5cGUgbW9kaWZpZXJzLiAgKi8K KyAgICAgIG1hbmdsZWQgKz0gZGxhbmdfdHlwZV9tb2RpZmllcl9wIChtYW5n bGVkKTsKKyAgICB9CisKKyAgc3dpdGNoICgqbWFuZ2xlZCkKKyAgICB7Cisg ICAgY2FzZSAnRic6IGNhc2UgJ1UnOiBjYXNlICdWJzoKKyAgICBjYXNlICdX JzogY2FzZSAnUic6CisgICAgICByZXR1cm4gMTsKIAogICAgIGRlZmF1bHQ6 CiAgICAgICByZXR1cm4gMDsKQEAgLTExMzUsMjMgKzEzNTIsNDEgQEAgZGxh bmdfY2FsbF9jb252ZW50aW9uX3AgKGNvbnN0IGNoYXIgKm1hbmdsZWQpCiAv KiBFeHRyYWN0IGFuZCBkZW1hbmdsZSB0aGUgc3ltYm9sIGluIE1BTkdMRUQg YW5kIGFwcGVuZCBpdCB0byBERUNMLgogICAgUmV0dXJucyB0aGUgcmVtYWlu aW5nIHNpZ25hdHVyZSBvbiBzdWNjZXNzIG9yIE5VTEwgb24gZmFpbHVyZS4g ICovCiBzdGF0aWMgY29uc3QgY2hhciAqCi1kbGFuZ19wYXJzZV9zeW1ib2wg KHN0cmluZyAqZGVjbCwgY29uc3QgY2hhciAqbWFuZ2xlZCkKK2RsYW5nX3Bh cnNlX3N5bWJvbCAoc3RyaW5nICpkZWNsLCBjb25zdCBjaGFyICptYW5nbGVk LAorCQkgICAgZW51bSBkbGFuZ19zeW1ib2xfa2luZHMga2luZCkKIHsKKyAg aW50IHNhdmVkOwogICBzaXplX3QgbiA9IDA7CiAgIGRvCiAgICAgewogICAg ICAgaWYgKG4rKykKIAlzdHJpbmdfYXBwZW5kIChkZWNsLCAiLiIpOwogCi0g ICAgICBtYW5nbGVkID0gZGxhbmdfaWRlbnRpZmllciAoZGVjbCwgbWFuZ2xl ZCk7CisgICAgICBtYW5nbGVkID0gZGxhbmdfaWRlbnRpZmllciAoZGVjbCwg bWFuZ2xlZCwga2luZCk7CiAKICAgICAgIGlmIChtYW5nbGVkICYmIGRsYW5n X2NhbGxfY29udmVudGlvbl9wIChtYW5nbGVkKSkKIAl7Ci0JICBpbnQgc2F2 ZWQ7CisJICBzdHJpbmcgbW9kczsKKwkgIGNvbnN0IGNoYXIgKnN0YXJ0ID0g TlVMTDsKKwkgIGludCBjaGVja3BvaW50ID0gMDsKIAogCSAgLyogU2tpcCBv dmVyICd0aGlzJyBwYXJhbWV0ZXIuICAqLwogCSAgaWYgKCptYW5nbGVkID09 ICdNJykKLQkgICAgbWFuZ2xlZCArPSAobWFuZ2xlZFsxXSA9PSAneCcpID8g MiA6IDE7CisJICAgIG1hbmdsZWQrKzsKKworCSAgLyogV2UgaGF2ZSByZWFj aGVkIGhlcmUgYmVjYXVzZSB3ZSBleHBlY3QgYW4gZXh0ZXJuKFBhc2NhbCkg ZnVuY3Rpb24uCisJICAgICBIb3dldmVyIHRoaXMgaXMgc28gcmFyZSwgdGhh dCBpdCBpcyBtb3JlIGxpa2VseSBhIHRlbXBsYXRlIHZhbHVlCisJICAgICBw YXJhbWV0ZXIuICBTaW5jZSB0aGlzIGNhbid0IGJlIGFzc3VtZWQsIGZpcnN0 IGF0dGVtcHQgcGFyc2luZworCSAgICAgdGhlIHN5bWJvbCBhcyBhIGZ1bmN0 aW9uLCBhbmQgdGhlbiBiYWNrIG91dCBvbiBmYWlsdXJlLiAgKi8KKwkgIGlm ICgqbWFuZ2xlZCA9PSAnVicpCisJICAgIHsKKwkgICAgICBzdGFydCA9IG1h bmdsZWQ7CisJICAgICAgY2hlY2twb2ludCA9IHN0cmluZ19sZW5ndGggKGRl Y2wpOworCSAgICB9CisKKwkgIC8qIFNhdmUgdGhlIHR5cGUgbW9kaWZpZXJz IGZvciBhcHBlbmRpbmcgYXQgdGhlIGVuZC4gICovCisJICBzdHJpbmdfaW5p dCAoJm1vZHMpOworCSAgbWFuZ2xlZCA9IGRsYW5nX3R5cGVfbW9kaWZpZXJz ICgmbW9kcywgbWFuZ2xlZCk7CiAKIAkgIC8qIFNraXAgb3ZlciBjYWxsaW5n IGNvbnZlbnRpb24gYW5kIGF0dHJpYnV0ZXMgaW4gcXVhbGlmaWVkIG5hbWUu ICAqLwogCSAgc2F2ZWQgPSBzdHJpbmdfbGVuZ3RoIChkZWNsKTsKQEAgLTEx NjMsMTcgKzEzOTgsNDEgQEAgZGxhbmdfcGFyc2Vfc3ltYm9sIChzdHJpbmcg KmRlY2wsIGNvbnN0IGNoYXIgKm1hbmdsZWQpCiAJICBtYW5nbGVkID0gZGxh bmdfZnVuY3Rpb25fYXJncyAoZGVjbCwgbWFuZ2xlZCk7CiAJICBzdHJpbmdf YXBwZW5kIChkZWNsLCAiKSIpOwogCi0JICAvKiBEZW1hbmdsZSB0aGUgZnVu Y3Rpb24gcmV0dXJuIHR5cGUgYXMgYSBraW5kIG9mIHNhbml0eSB0ZXN0LiAg Ki8KLQkgIGlmIChtYW5nbGVkICYmICFJU0RJR0lUICgqbWFuZ2xlZCkpCisJ ICAvKiBBZGQgYW55IGNvbnN0L2ltbXV0YWJsZS9zaGFyZWQgbW9kaWZpZXIu ICovCisJICBzdHJpbmdfYXBwZW5kbiAoZGVjbCwgbW9kcy5iLCBzdHJpbmdf bGVuZ3RoICgmbW9kcykpOworCSAgc3RyaW5nX2RlbGV0ZSAoJm1vZHMpOwor CisJICBpZiAobWFuZ2xlZCA9PSBOVUxMICYmIGNoZWNrcG9pbnQgIT0gMCkK IAkgICAgewotCSAgICAgIHNhdmVkID0gc3RyaW5nX2xlbmd0aCAoZGVjbCk7 Ci0JICAgICAgbWFuZ2xlZCA9IGRsYW5nX3R5cGUgKGRlY2wsIG1hbmdsZWQp OwotCSAgICAgIHN0cmluZ19zZXRsZW5ndGggKGRlY2wsIHNhdmVkKTsKKwkg ICAgICBtYW5nbGVkID0gc3RhcnQ7CisJICAgICAgc3RyaW5nX3NldGxlbmd0 aCAoZGVjbCwgY2hlY2twb2ludCk7CiAJICAgIH0KIAl9CiAgICAgfQogICB3 aGlsZSAobWFuZ2xlZCAmJiBJU0RJR0lUICgqbWFuZ2xlZCkpOwogCisgIC8q IE9ubHkgdG9wLWxldmVsIHN5bWJvbHMgb3IgZnVuY3Rpb24gdGVtcGxhdGUg cGFyYW1ldGVycyBoYXZlCisgICAgIGEgdHlwZSB0aGF0IG5lZWRzIGNoZWNr aW5nLiAgKi8KKyAgaWYgKGtpbmQgPT0gZGxhbmdfdG9wX2xldmVsIHx8IGtp bmQgPT0gZGxhbmdfZnVuY3Rpb24pCisgICAgeworICAgICAgLyogQXJ0aWZp Y2lhbCBzeW1ib2xzIGVuZCB3aXRoICdaJyBhbmQgaGF2ZSBubyB0eXBlLiAg Ki8KKyAgICAgIGlmIChtYW5nbGVkICYmICptYW5nbGVkID09ICdaJykKKwlt YW5nbGVkKys7CisgICAgICBlbHNlCisJeworCSAgc2F2ZWQgPSBzdHJpbmdf bGVuZ3RoIChkZWNsKTsKKwkgIG1hbmdsZWQgPSBkbGFuZ190eXBlIChkZWNs LCBtYW5nbGVkKTsKKwkgIHN0cmluZ19zZXRsZW5ndGggKGRlY2wsIHNhdmVk KTsKKwl9CisKKyAgICAgIC8qIENoZWNrIHRoYXQgdGhlIGVudGlyZSBzeW1i b2wgd2FzIHN1Y2Nlc3NmdWxseSBkZW1hbmdsZWQuICAqLworICAgICAgaWYg KGtpbmQgPT0gZGxhbmdfdG9wX2xldmVsKQorCXsKKwkgIGlmIChtYW5nbGVk ID09IE5VTEwgfHwgKm1hbmdsZWQgIT0gJ1wwJykKKwkgICAgcmV0dXJuIE5V TEw7CisJfQorICAgIH0KKwogICByZXR1cm4gbWFuZ2xlZDsKIH0KIApAQCAt MTIyMSwxMSArMTQ4MCwxNSBAQCBkbGFuZ190ZW1wbGF0ZV9hcmdzIChzdHJp bmcgKmRlY2wsIGNvbnN0IGNoYXIgKm1hbmdsZWQpCiAgICAgICBpZiAobisr KQogCXN0cmluZ19hcHBlbmQgKGRlY2wsICIsICIpOwogCisgICAgICAvKiBT a2lwIG92ZXIgc3BlY2lhbGlzZWQgdGVtcGxhdGUgcHJlZml4LiAgKi8KKyAg ICAgIGlmICgqbWFuZ2xlZCA9PSAnSCcpCisJbWFuZ2xlZCsrOworCiAgICAg ICBzd2l0Y2ggKCptYW5nbGVkKQogCXsKIAljYXNlICdTJzogLyogU3ltYm9s IHBhcmFtZXRlci4gICovCiAJICBtYW5nbGVkKys7Ci0JICBtYW5nbGVkID0g ZGxhbmdfcGFyc2Vfc3ltYm9sIChkZWNsLCBtYW5nbGVkKTsKKwkgIG1hbmds ZWQgPSBkbGFuZ19wYXJzZV9zeW1ib2wgKGRlY2wsIG1hbmdsZWQsIGRsYW5n X3RlbXBsYXRlX3BhcmFtKTsKIAkgIGJyZWFrOwogCWNhc2UgJ1QnOiAvKiBU eXBlIHBhcmFtZXRlci4gICovCiAJICBtYW5nbGVkKys7CkBAIC0xMjgzLDcg KzE1NDYsNyBAQCBkbGFuZ19wYXJzZV90ZW1wbGF0ZSAoc3RyaW5nICpkZWNs LCBjb25zdCBjaGFyICptYW5nbGVkLCBsb25nIGxlbikKICAgbWFuZ2xlZCAr PSAzOwogCiAgIC8qIFRlbXBsYXRlIGlkZW50aWZpZXIuICAqLwotICBtYW5n bGVkID0gZGxhbmdfaWRlbnRpZmllciAoZGVjbCwgbWFuZ2xlZCk7CisgIG1h bmdsZWQgPSBkbGFuZ19pZGVudGlmaWVyIChkZWNsLCBtYW5nbGVkLCBkbGFu Z190ZW1wbGF0ZV9pZGVudCk7CiAKICAgLyogVGVtcGxhdGUgYXJndW1lbnRz LiAgKi8KICAgc3RyaW5nX2FwcGVuZCAoZGVjbCwgIiEoIik7CkBAIC0xMzIy LDcgKzE1ODUsNyBAQCBkbGFuZ19kZW1hbmdsZSAoY29uc3QgY2hhciAqbWFu Z2xlZCwgaW50IG9wdGlvbiBBVFRSSUJVVEVfVU5VU0VEKQogICAgIHsKICAg ICAgIG1hbmdsZWQgKz0gMjsKIAotICAgICAgaWYgKGRsYW5nX3BhcnNlX3N5 bWJvbCAoJmRlY2wsIG1hbmdsZWQpID09IE5VTEwpCisgICAgICBpZiAoZGxh bmdfcGFyc2Vfc3ltYm9sICgmZGVjbCwgbWFuZ2xlZCwgZGxhbmdfdG9wX2xl dmVsKSA9PSBOVUxMKQogCXN0cmluZ19kZWxldGUgKCZkZWNsKTsKICAgICB9 CiAKZGlmZiAtLWdpdCBhL2xpYmliZXJ0eS90ZXN0c3VpdGUvZC1kZW1hbmds ZS1leHBlY3RlZCBiL2xpYmliZXJ0eS90ZXN0c3VpdGUvZC1kZW1hbmdsZS1l eHBlY3RlZAppbmRleCAyYWVhY2I4Li42YzhjY2RmIDEwMDY0NAotLS0gYS9s aWJpYmVydHkvdGVzdHN1aXRlL2QtZGVtYW5nbGUtZXhwZWN0ZWQKKysrIGIv bGliaWJlcnR5L3Rlc3RzdWl0ZS9kLWRlbWFuZ2xlLWV4cGVjdGVkCkBAIC0x MTQsNiArMTE0LDE0IEBAIF9EOGRlbWFuZ2xlNHRlc3RGd1p2CiBkZW1hbmds ZS50ZXN0KGRjaGFyKQogIwogLS1mb3JtYXQ9ZGxhbmcKK19EOGRlbWFuZ2xl NHRlc3RGemladgorZGVtYW5nbGUudGVzdChjZW50KQorIworLS1mb3JtYXQ9 ZGxhbmcKK19EOGRlbWFuZ2xlNHRlc3RGemtadgorZGVtYW5nbGUudGVzdCh1 Y2VudCkKKyMKKy0tZm9ybWF0PWRsYW5nCiBfRDhkZW1hbmdsZTR0ZXN0Rk9h WnYKIGRlbWFuZ2xlLnRlc3Qoc2hhcmVkKGNoYXIpKQogIwpAQCAtMzE0LDYg KzMyMiwxNCBAQCBfRDhkZW1hbmdsZTR0ZXN0Rk1hWnYKIGRlbWFuZ2xlLnRl c3Qoc2NvcGUgY2hhcikKICMKIC0tZm9ybWF0PWRsYW5nCitfRDhkZW1hbmds ZTR0ZXN0Rk5qYVp2CitkZW1hbmdsZS50ZXN0KGNoYXIpCisjCistLWZvcm1h dD1kbGFuZworX0Q4ZGVtYW5nbGU0dGVzdEZOa2FadgorZGVtYW5nbGUudGVz dChyZXR1cm4gY2hhcikKKyMKKy0tZm9ybWF0PWRsYW5nCiBfRDhkZW1hbmds ZTR0ZXN0RmFYdgogZGVtYW5nbGUudGVzdChjaGFyLi4uKQogIwpAQCAtNDM0 LDYgKzQ1MCwyMiBAQCBfRDhkZW1hbmdsZTR0ZXN0RkRGTmROZk5hWmFadgog ZGVtYW5nbGUudGVzdChjaGFyKCkgQHByb3BlcnR5IEBzYWZlIHB1cmUgZGVs ZWdhdGUpCiAjCiAtLWZvcm1hdD1kbGFuZworX0Q4ZGVtYW5nbGU0dGVzdEZO akRGWmFadgorZGVtYW5nbGUudGVzdChjaGFyKCkgZGVsZWdhdGUpCisjCist LWZvcm1hdD1kbGFuZworX0Q4ZGVtYW5nbGU0dGVzdEZOa0RGWmFadgorZGVt YW5nbGUudGVzdChyZXR1cm4gY2hhcigpIGRlbGVnYXRlKQorIworLS1mb3Jt YXQ9ZGxhbmcKK19EOGRlbWFuZ2xlNHRlc3RGREZOalphWnYKK2RlbWFuZ2xl LnRlc3QoY2hhcigpIHJldHVybiBkZWxlZ2F0ZSkKKyMKKy0tZm9ybWF0PWRs YW5nCitfRDhkZW1hbmdsZTR0ZXN0Rk5qTmtERk5qWmFadgorZGVtYW5nbGUu dGVzdChyZXR1cm4gY2hhcigpIHJldHVybiBkZWxlZ2F0ZSkKKyMKKy0tZm9y bWF0PWRsYW5nCiBfRDhkZW1hbmdsZTR0ZXN0RkZOYVphWnYKIGRlbWFuZ2xl LnRlc3QoY2hhcigpIHB1cmUgZnVuY3Rpb24pCiAjCkBAIC00NzQsNiArNTA2 LDIyIEBAIF9EOGRlbWFuZ2xlNHRlc3RGRk5kTmZOYVphWnYKIGRlbWFuZ2xl LnRlc3QoY2hhcigpIEBwcm9wZXJ0eSBAc2FmZSBwdXJlIGZ1bmN0aW9uKQog IwogLS1mb3JtYXQ9ZGxhbmcKK19EOGRlbWFuZ2xlNHRlc3RGTmpGWmFadgor ZGVtYW5nbGUudGVzdChjaGFyKCkgZnVuY3Rpb24pCisjCistLWZvcm1hdD1k bGFuZworX0Q4ZGVtYW5nbGU0dGVzdEZOa0ZaYVp2CitkZW1hbmdsZS50ZXN0 KHJldHVybiBjaGFyKCkgZnVuY3Rpb24pCisjCistLWZvcm1hdD1kbGFuZwor X0Q4ZGVtYW5nbGU0dGVzdEZGTmpaYVp2CitkZW1hbmdsZS50ZXN0KGNoYXIo KSByZXR1cm4gZnVuY3Rpb24pCisjCistLWZvcm1hdD1kbGFuZworX0Q4ZGVt YW5nbGU0dGVzdEZOak5rRk5qWmFadgorZGVtYW5nbGUudGVzdChyZXR1cm4g Y2hhcigpIHJldHVybiBmdW5jdGlvbikKKyMKKy0tZm9ybWF0PWRsYW5nCiBf RDhkZW1hbmdsZTR0ZXN0Nl9faW5pdFoKIGRlbWFuZ2xlLnRlc3QuaW5pdCQK ICMKQEAgLTUwMiw3ICs1NTAsNyBAQCBfRDhkZW1hbmdsZTR0ZXN0Nl9fZHRv ck1GWnYKIGRlbWFuZ2xlLnRlc3QufnRoaXMoKQogIwogLS1mb3JtYXQ9ZGxh bmcKLV9EOGRlbWFuZ2xlNHRlc3Q2X19wb3N0YmxpdE1GWnYKK19EOGRlbWFu Z2xlNHRlc3QxMF9fcG9zdGJsaXRNRlp2CiBkZW1hbmdsZS50ZXN0LnRoaXMo dGhpcykKICMKIC0tZm9ybWF0PWRsYW5nCkBAIC01NjYsMTIgKzYxNCwxMiBA QCBfRDhkZW1hbmdsZTE3X19UNHRlc3RTNnN5bWJvbFp2CiBkZW1hbmdsZS50 ZXN0IShzeW1ib2wpCiAjCiAtLWZvcm1hdD1kbGFuZwotX0Q4ZGVtYW5nbGUy MV9fVDR0ZXN0UzZzeW1ib2wzZm9vWnYKK19EOGRlbWFuZ2xlMjNfX1Q0dGVz dFMxMTZzeW1ib2wzZm9vWnYKIGRlbWFuZ2xlLnRlc3QhKHN5bWJvbC5mb28p CiAjCiAtLWZvcm1hdD1kbGFuZwotX0Q4ZGVtYW5nbGUyNV9fVDR0ZXN0UzZz eW1ib2wzZm9vM2Jhclp2Ci1kZW1hbmdsZS50ZXN0IShzeW1ib2wuZm9vLmJh cikKK19EOGRlbWFuZ2xlMzJfX1Q0dGVzdFMyMF9ENnN5bWJvbDNmb28zYmFy Rlp2WnYKK2RlbWFuZ2xlLnRlc3QhKHN5bWJvbC5mb28uYmFyKCkpCiAjCiAt LWZvcm1hdD1kbGFuZwogX0Q4ZGVtYW5nbGUxOV9fVDR0ZXN0VGFTNnN5bWJv bFp2CkBAIC01ODIsNiArNjMwLDEwIEBAIF9EOGRlbWFuZ2xlMTlfX1Q0dGVz dFM2c3ltYm9sVGFadgogZGVtYW5nbGUudGVzdCEoc3ltYm9sLCBjaGFyKQog IwogLS1mb3JtYXQ9ZGxhbmcKK19EOGRlbWFuZ2xlMTJfX1Q0dGVzdEhUYVp2 CitkZW1hbmdsZS50ZXN0IShjaGFyKQorIworLS1mb3JtYXQ9ZGxhbmcKIF9E OGRlbWFuZ2xlMTNfX1Q0dGVzdFZQaW5adgogZGVtYW5nbGUudGVzdCEobnVs bCkKICMKQEAgLTc1Myw2ICs4MDUsNzAgQEAgZGVtYW5nbGUudGVzdCEoZGVt YW5nbGUuUygxLCAyKSkKIF9EOGRlbWFuZ2xlMzVfX1Q0dGVzdFZTOGRlbWFu Z2xlMVNTMmkxYTNfNjE2MjYzWnYKIGRlbWFuZ2xlLnRlc3QhKGRlbWFuZ2xl LlMoMSwgImFiYyIpKQogIworLS1mb3JtYXQ9ZGxhbmcKK19EOGRlbWFuZ2xl NHRlc3RNeEZadgorZGVtYW5nbGUudGVzdCgpIGNvbnN0CisjCistLWZvcm1h dD1kbGFuZworX0Q4ZGVtYW5nbGU0dGVzdE15Rlp2CitkZW1hbmdsZS50ZXN0 KCkgaW1tdXRhYmxlCisjCistLWZvcm1hdD1kbGFuZworX0Q4ZGVtYW5nbGU0 dGVzdE1OZ0ZadgorZGVtYW5nbGUudGVzdCgpIGlub3V0CisjCistLWZvcm1h dD1kbGFuZworX0Q4ZGVtYW5nbGU0dGVzdE1OZ3hGWnYKK2RlbWFuZ2xlLnRl c3QoKSBpbm91dCBjb25zdAorIworLS1mb3JtYXQ9ZGxhbmcKK19EOGRlbWFu Z2xlNHRlc3RNT0ZadgorZGVtYW5nbGUudGVzdCgpIHNoYXJlZAorIworLS1m b3JtYXQ9ZGxhbmcKK19EOGRlbWFuZ2xlNHRlc3RNT3hGWnYKK2RlbWFuZ2xl LnRlc3QoKSBzaGFyZWQgY29uc3QKKyMKKy0tZm9ybWF0PWRsYW5nCitfRDhk ZW1hbmdsZTR0ZXN0TU9OZ0ZadgorZGVtYW5nbGUudGVzdCgpIHNoYXJlZCBp bm91dAorIworLS1mb3JtYXQ9ZGxhbmcKK19EOGRlbWFuZ2xlNHRlc3RNT05n eEZadgorZGVtYW5nbGUudGVzdCgpIHNoYXJlZCBpbm91dCBjb25zdAorIwor LS1mb3JtYXQ9ZGxhbmcKK19EOGRlbWFuZ2xlNHRlc3RGRHhGWmFadgorZGVt YW5nbGUudGVzdChjaGFyKCkgZGVsZWdhdGUgY29uc3QpCisjCistLWZvcm1h dD1kbGFuZworX0Q4ZGVtYW5nbGU0dGVzdEZEeUZaYVp2CitkZW1hbmdsZS50 ZXN0KGNoYXIoKSBkZWxlZ2F0ZSBpbW11dGFibGUpCisjCistLWZvcm1hdD1k bGFuZworX0Q4ZGVtYW5nbGU0dGVzdEZETmdGWmFadgorZGVtYW5nbGUudGVz dChjaGFyKCkgZGVsZWdhdGUgaW5vdXQpCisjCistLWZvcm1hdD1kbGFuZwor X0Q4ZGVtYW5nbGU0dGVzdEZETmd4RlphWnYKK2RlbWFuZ2xlLnRlc3QoY2hh cigpIGRlbGVnYXRlIGlub3V0IGNvbnN0KQorIworLS1mb3JtYXQ9ZGxhbmcK K19EOGRlbWFuZ2xlNHRlc3RGRE9GWmFadgorZGVtYW5nbGUudGVzdChjaGFy KCkgZGVsZWdhdGUgc2hhcmVkKQorIworLS1mb3JtYXQ9ZGxhbmcKK19EOGRl bWFuZ2xlNHRlc3RGRE94RlphWnYKK2RlbWFuZ2xlLnRlc3QoY2hhcigpIGRl bGVnYXRlIHNoYXJlZCBjb25zdCkKKyMKKy0tZm9ybWF0PWRsYW5nCitfRDhk ZW1hbmdsZTR0ZXN0RkRPTmdGWmFadgorZGVtYW5nbGUudGVzdChjaGFyKCkg ZGVsZWdhdGUgc2hhcmVkIGlub3V0KQorIworLS1mb3JtYXQ9ZGxhbmcKK19E OGRlbWFuZ2xlNHRlc3RGRE9OZ3hGWmFadgorZGVtYW5nbGUudGVzdChjaGFy KCkgZGVsZWdhdGUgc2hhcmVkIGlub3V0IGNvbnN0KQorIwogIyBVbml0dGVz dHMKICMKIC0tZm9ybWF0PWRsYW5nCkBAIC04MTYsMTkgKzkzMiwxOSBAQCBf RDZwbHVnaW44Z2VuZXJhdGVGaWlaQU9hCiBwbHVnaW4uZ2VuZXJhdGUoaW50 LCBpbnQpCiAjCiAtLWZvcm1hdD1kbGFuZwotX0Q4ZGVtYW5nbGUzZm5BRlp2 M2ZuQk1GWnYKK19EOGRlbWFuZ2xlM2ZuQUZaM2ZuQk1GWnYKIGRlbWFuZ2xl LmZuQSgpLmZuQigpCiAjCiAtLWZvcm1hdD1kbGFuZwotX0Q4ZGVtYW5nbGU0 bWFpbkZadjFTM2ZuQ0ZadgorX0Q4ZGVtYW5nbGU0bWFpbkZaMVMzZm5DTUZa dgogZGVtYW5nbGUubWFpbigpLlMuZm5DKCkKICMKIC0tZm9ybWF0PWRsYW5n Ci1fRDhkZW1hbmdsZTRtYWluRlp2MVMzZm5ETUZadgorX0Q4ZGVtYW5nbGU0 bWFpbkZaMVMzZm5ETUZadgogZGVtYW5nbGUubWFpbigpLlMuZm5EKCkKICMK IC0tZm9ybWF0PWRsYW5nCi1fRDhkZW1hbmdsZTRtYWluRlp2NWxvY2FsTUZa aQorX0Q4ZGVtYW5nbGU0bWFpbkZaNWxvY2FsTUZaaQogZGVtYW5nbGUubWFp bigpLmxvY2FsKCkKICMKIC0tZm9ybWF0PWRsYW5nCkBAIC04NzIsNyArOTg4 LDcgQEAgX0Q2b2JqZWN0MTRUeXBlSW5mb19BcnJheThhcmdUeXBlc01GTmJO ZkpDOFR5cGVJbmZvSkM4VHlwZUluZm9aaQogb2JqZWN0LlR5cGVJbmZvX0Fy cmF5LmFyZ1R5cGVzKG91dCBUeXBlSW5mbywgb3V0IFR5cGVJbmZvKQogIwog LS1mb3JtYXQ9ZGxhbmcKLV9EMnJ0NmRtYWluMjExX2RfcnVuX21haW5VaVBQ YVBVQUFhWmlaaTd0cnlFeGVjTUZNREZadlp2CitfRDJydDZkbWFpbjIxMV9k X3J1bl9tYWluVWlQUGFQVUFBYVppWjd0cnlFeGVjTUZNREZadlp2CiBydC5k bWFpbjIuX2RfcnVuX21haW4oaW50LCBjaGFyKiosIGV4dGVybihDKSBpbnQo Y2hhcltdW10pIGZ1bmN0aW9uKikudHJ5RXhlYyhzY29wZSB2b2lkKCkgZGVs ZWdhdGUpCiAjCiAtLWZvcm1hdD1kbGFuZwpAQCAtOTI4LDkgKzEwNDQsMzcg QEAgX0QyZ2MxMWdjdGVtcGxhdGVzNTZfX1Q4bWtCaXRtYXBUUzNzdGQ1cmFu Z2UxM19fVDRpb3RhVGlUaVo0aW90YUZpaVo2UmVzdWx0Wjhta0IKIGdjLmdj dGVtcGxhdGVzLm1rQml0bWFwIShzdGQucmFuZ2UuaW90YSEoaW50LCBpbnQp LmlvdGEoaW50LCBpbnQpLlJlc3VsdCkubWtCaXRtYXAodWxvbmcqLCB1bG9u ZykKICMKIC0tZm9ybWF0PWRsYW5nCi1fRDhzZXJlbml0eTlwZXJzaXN0ZXI2 U3FsaXRlNzBfX1QxNVNxbGl0ZVBlcnNpc3RlclRTOHNlcmVuaXR5OXBlcnNp c3RlcjZTcWxpdGUxMV9fdW5pdHRlc3Q2Rlp2NFRlc3RaMTVTcWxpdGVQZXJz aXN0ZXIxMl9fVDdvcEluZGV4WjdvcEluZGV4TUZtWlM4c2VyZW5pdHk5cGVy c2lzdGVyNlNxbGl0ZTExX191bml0dGVzdDZGWnY0VGVzdAorX0Q4c2VyZW5p dHk5cGVyc2lzdGVyNlNxbGl0ZTY5X19UMTVTcWxpdGVQZXJzaXN0ZXJUUzhz ZXJlbml0eTlwZXJzaXN0ZXI2U3FsaXRlMTFfX3VuaXR0ZXN0NkZaNFRlc3Ra MTVTcWxpdGVQZXJzaXN0ZXIxMl9fVDdvcEluZGV4WjdvcEluZGV4TUZtWlM4 c2VyZW5pdHk5cGVyc2lzdGVyNlNxbGl0ZTExX191bml0dGVzdDZGWjRUZXN0 CiBzZXJlbml0eS5wZXJzaXN0ZXIuU3FsaXRlLlNxbGl0ZVBlcnNpc3RlciEo c2VyZW5pdHkucGVyc2lzdGVyLlNxbGl0ZS5fX3VuaXR0ZXN0NigpLlRlc3Qp LlNxbGl0ZVBlcnNpc3Rlci5vcEluZGV4ISgpLm9wSW5kZXgodWxvbmcpCiAj CiAtLWZvcm1hdD1kbGFuZwotX0Q0dGVzdDRtYWluRlp2NWxvY2FsTUZaaQot dGVzdC5tYWluKCkubG9jYWwoKQorX0Qzc3RkNnNvY2tldDEySW50ZXJuZXRI b3N0MjIxX19UMTNnZXRIb3N0Tm9TeW5jVkF5YWE5Nl8wYTA5MjAyMDIwMjA2 MTc1NzQ2ZjIwNzgyMDNkMjA2ODc0NmY2ZTZjMjg3MDYxNzI2MTZkMjkzYjBh MDkyMDIwMjAyMDYxNzU3NDZmMjA2ODY1MjAzZDIwNjc2NTc0Njg2ZjczNzQ2 Mjc5NjE2NDY0NzIyODI2NzgyYzIwMzQyYzIwNjM2MTczNzQyODY5NmU3NDI5 NDE2NDY0NzI2NTczNzM0NjYxNmQ2OTZjNzkyZTQ5NGU0NTU0MjkzYjBhMDlU a1oxM2dldEhvc3ROb1N5bmNNRmtaYgorc3RkLnNvY2tldC5JbnRlcm5ldEhv c3QuZ2V0SG9zdE5vU3luYyEoIlxuXHQgICAgYXV0byB4ID0gaHRvbmwocGFy YW0pO1xuXHQgICAgYXV0byBoZSA9IGdldGhvc3RieWFkZHIoJngsIDQsIGNh c3QoaW50KUFkZHJlc3NGYW1pbHkuSU5FVCk7XG5cdCIsIHVpbnQpLmdldEhv c3ROb1N5bmModWludCkKKyMKKy0tZm9ybWF0PWRsYW5nCitfRDJnYzZjb25m aWcxM19fVDVwYXJzZUhUZlo1cGFyc2VGTmJOaUF4YUtBeGFLZlpiCitnYy5j b25maWcucGFyc2UhKGZsb2F0KS5wYXJzZShjb25zdChjaGFyKVtdLCByZWYg Y29uc3QoY2hhcilbXSwgcmVmIGZsb2F0KQorIworLS1mb3JtYXQ9ZGxhbmcK K19EM3N0ZDExcGFyYWxsZWxpc20yNzNfX1Q0VGFza1MyMTNzdGQxMXBhcmFs bGVsaXNtM3J1blRERlMzc3RkOWFsZ29yaXRobTg3X19UOU1hcFJlc3VsdFMy N19ENHRlc3Q0bWFpbkZaN2dldFRlcm1NRmlaZVRTM3N0ZDVyYW5nZTEzX19U NGlvdGFUaVRpWjRpb3RhRmlpWjZSZXN1bHRaOU1hcFJlc3VsdG1tWmVUUzNz dGQ5YWxnb3JpdGhtODdfX1Q5TWFwUmVzdWx0UzI3X0Q0dGVzdDRtYWluRlo3 Z2V0VGVybU1GaVplVFMzc3RkNXJhbmdlMTNfX1Q0aW90YVRpVGlaNGlvdGFG aWlaNlJlc3VsdFo5TWFwUmVzdWx0VG1UbVo0VGFzazRpbXBsRlB2WnYKK3N0 ZC5wYXJhbGxlbGlzbS5UYXNrIShzdGQucGFyYWxsZWxpc20ucnVuLCByZWFs KHN0ZC5hbGdvcml0aG0uTWFwUmVzdWx0ISh0ZXN0Lm1haW4oKS5nZXRUZXJt KGludCksIHN0ZC5yYW5nZS5pb3RhIShpbnQsIGludCkuaW90YShpbnQsIGlu dCkuUmVzdWx0KS5NYXBSZXN1bHQsIHVsb25nLCB1bG9uZykgZGVsZWdhdGUs IHN0ZC5hbGdvcml0aG0uTWFwUmVzdWx0ISh0ZXN0Lm1haW4oKS5nZXRUZXJt KGludCksIHN0ZC5yYW5nZS5pb3RhIShpbnQsIGludCkuaW90YShpbnQsIGlu dCkuUmVzdWx0KS5NYXBSZXN1bHQsIHVsb25nLCB1bG9uZykuVGFzay5pbXBs KHZvaWQqKQorIworLS1mb3JtYXQ9ZGxhbmcKK19EMnJ0NW1pbmZvMTZfX3Vu aXR0ZXN0TDUxOF82RloxMlVUTW9kdWxlSW5mbzZfX2N0b3JNRk5ja1pTMnJ0 NW1pbmZvMTZfX3VuaXR0ZXN0TDUxOF82RloxMlVUTW9kdWxlSW5mbworcnQu bWluZm8uX191bml0dGVzdEw1MThfNigpLlVUTW9kdWxlSW5mby50aGlzKHVp bnQpCisjCistLWZvcm1hdD1kbGFuZworX0Qzc3RkNnRyYWl0czM3X19UN2Zx blR5cGVUQzZPYmplY3RWYmkwVmJpMFZiaTBWYmkwWjEzYWRkUXVhbGlmaWVy c0ZBeWFiYmJiWkF5YQorc3RkLnRyYWl0cy5mcW5UeXBlIShPYmplY3QsIGZh bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlKS5hZGRRdWFsaWZpZXJzKGltbXV0 YWJsZShjaGFyKVtdLCBib29sLCBib29sLCBib29sLCBib29sKQorIworLS1m b3JtYXQ9ZGxhbmcKK19EM3N0ZDlhbGdvcml0aG0xMTdfX1Q5TWFwUmVzdWx0 UzE1M3N0ZDVyYW5nZTRvbmx5VFMzc3RkOWFsZ29yaXRobTUzX19UMTJGaWx0 ZXJSZXN1bHRTMjhfRDNzdGQzdW5pN2lzVXBwZXJGTmFOYk5md1piVEF5YVox MkZpbHRlclJlc3VsdFo5TWFwUmVzdWx0NWZyb250TUZOYU5kTmZaUzNzdGQ1 cmFuZ2UyMl9fVDEwT25seVJlc3VsdFR3Vm1pMVoxME9ubHlSZXN1bHQKK3N0 ZC5hbGdvcml0aG0uTWFwUmVzdWx0IShzdGQucmFuZ2Uub25seSwgc3RkLmFs Z29yaXRobS5GaWx0ZXJSZXN1bHQhKHN0ZC51bmkuaXNVcHBlcihkY2hhciks IGltbXV0YWJsZShjaGFyKVtdKS5GaWx0ZXJSZXN1bHQpLk1hcFJlc3VsdC5m cm9udCgpCisjCistLWZvcm1hdD1kbGFuZworX0Qzc3RkNnRyYWl0czE3X19U NmZxblN5bVM0M3N0ZFoxMWFkanVzdElkZW50RkF5YVpBeWEKK3N0ZC50cmFp dHMuZnFuU3ltIShzdGQpLmFkanVzdElkZW50KGltbXV0YWJsZShjaGFyKVtd KQorIworLS1mb3JtYXQ9ZGxhbmcKK19EMnJ0OGxpZmV0aW1lMzZfX1QxNF9k X25ld2FycmF5T3BUUzEzX2RfbmV3YXJyYXlpVFoxNF9kX25ld2FycmF5T3BU Rk5hTmJ4QzhUeXBlSW5mb21QbVpBdgorcnQubGlmZXRpbWUuX2RfbmV3YXJy YXlPcFQhKF9kX25ld2FycmF5aVQpLl9kX25ld2FycmF5T3BUKGNvbnN0KFR5 cGVJbmZvKSwgdWxvbmcsIHVsb25nKikK --089e013d1a1ec76abc0518e08461--