From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com [IPv6:2a00:1450:4864:20::32b]) by sourceware.org (Postfix) with ESMTPS id D2A0A3858D20; Thu, 10 Aug 2023 05:13:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D2A0A3858D20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-3fe4cdb72b9so4196635e9.0; Wed, 09 Aug 2023 22:13:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691644419; x=1692249219; h=subject:from:cc:to:content-language:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=Tm/w7d42F/QL7Cc0gHYGJgE0IaISYHpNbOgP+GKF1iY=; b=JEKdTmh0kCVKiUrUn7GrglIdB0uhsB3yIBf7X/WcdXGz1KdmdUXF1Ped+q8Bw1KDG1 xgBzQ4ibHc2sJXd0OhKR2guxeYdhYrzgEu/09wnTAotjgMapGYYwgc2+R7ysgDcjDjDW rVxjdklnEfMny78Cv9N48e94bnkcZPOD7wk/HmlrzTZkEvLnE35VBuGVhuZ1ZRjpb1pe JNNk51aurbQCGd+SvCJlYVbCQZjCU9M3KD0ABqDMwlIGNS56HZ4f4Vnfi6Zggu4sVnxR bYTLijbpnODdCJ4GLUbC1F6MM2hzDZCpLWWTXiVb9R7ECXWRTsBQS0qYqgtE5HqtHWB6 rDKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691644419; x=1692249219; h=subject:from:cc:to:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Tm/w7d42F/QL7Cc0gHYGJgE0IaISYHpNbOgP+GKF1iY=; b=HRtkznkDYfhPHlc6IFUrYLX49zcxlMn4r+D+3QK4wed1c6B6Kr50JdAuSllN7KaXV1 IOVFhA56EK8rjVm1vXcRdAnSX4KWiKa0/2xdSbKkdXbdb15pYyWWwRgwF722/KPY5Nk+ t1ORX1a78dmPLbq1kN2w9YvOtI+VROXf3UfwG2OjepiDR3y9AMJgG5LyZbs9L/7NO6Xc U7X3lre2xARzJGfebw/KNOfe+Q7RNvkvljwWNk6unT/UNTeT8/qE/ALVjKqclKT54se9 bQqJmND4pIge2fucXW1XOH0MWDYsT/3RaCKwttjPOewm597rV8Dan2Qy83J8VOfO66r+ 4c8g== X-Gm-Message-State: AOJu0YwyoMT5/oFBZkicTMaMfG3IYCdA7Xd6/BxwLl7BUs1a0TdpAiVb U2fkOHwIRbNVqxOB0qg8+ZVhSoX4LNc= X-Google-Smtp-Source: AGHT+IFk2Cwc7dFswpeTMUYl9lUHbpb6g68cLsI8iZwIIdxH4TK7zbwHufjSpEGYTWKbnIrEqAn1Mw== X-Received: by 2002:a5d:4241:0:b0:317:e7e0:8528 with SMTP id s1-20020a5d4241000000b00317e7e08528mr1090723wrr.50.1691644418607; Wed, 09 Aug 2023 22:13:38 -0700 (PDT) Received: from [192.168.42.159] (pop.92-184-123-137.mobile.abo.orange.fr. [92.184.123.137]) by smtp.gmail.com with ESMTPSA id h1-20020adffd41000000b0030ae499da59sm795635wrs.111.2023.08.09.22.13.37 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 09 Aug 2023 22:13:37 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------j6gIuV8LZoCwJelP4y5q4MG0" Message-ID: <1dc681f4-41b7-d171-02ac-b0194617bdee@gmail.com> Date: Thu, 10 Aug 2023 07:13:36 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Content-Language: en-US To: libstdc++ Cc: gcc-patches From: =?UTF-8?Q?Fran=c3=a7ois_Dumont?= Subject: [PATCH] sso-string@gnu-versioned-namespace [PR83077] X-Spam-Status: No, score=-9.3 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------j6gIuV8LZoCwJelP4y5q4MG0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi I've eventually completed this work. This evolution will allow to build libstdc++ without dual abi and using cxx11 abi. For the moment such a config is only accessible through the --enable-symvers=gnu-versioned-namespace configuration.     libstdc++: [_GLIBCXX_INLINE_VERSION] Use cxx11 abi [PR83077]     Use cxx11 abi when activating versioned namespace mode.     libstdcxx-v3/ChangeLog:             PR libstdc++/83077             * acinclude.m4 [GLIBCXX_ENABLE_LIBSTDCXX_DUAL_ABI]: Default to "new" libstdcxx abi.             * config/locale/dragonfly/monetary_members.cc [!_GLIBCXX_USE_DUAL_ABI]: Define money_base             members.             * config/locale/generic/monetary_members.cc [!_GLIBCXX_USE_DUAL_ABI]: Likewise.             * config/locale/gnu/monetary_members.cc [!_GLIBCXX_USE_DUAL_ABI]: Likewise.             * config/locale/gnu/numeric_members.cc             [!_GLIBCXX_USE_DUAL_ABI](__narrow_multibyte_chars): Define.             * configure: Regenerate.             * include/bits/c++config             [_GLIBCXX_INLINE_VERSION](_GLIBCXX_NAMESPACE_CXX11, _GLIBCXX_BEGIN_NAMESPACE_CXX11):             Define empty. [_GLIBCXX_INLINE_VERSION](_GLIBCXX_END_NAMESPACE_CXX11, _GLIBCXX_DEFAULT_ABI_TAG):             Likewise.             * include/bits/cow_string.h [!_GLIBCXX_USE_CXX11_ABI]: Define a light version of COW             basic_string as __std_cow_string for use in stdexcept.             * include/std/stdexcept [_GLIBCXX_USE_CXX11_ABI]: Define __cow_string.             (__cow_string(const char*)): New.             (__cow_string::c_str()): New.             * python/libstdcxx/v6/printers.py (StdStringPrinter::__init__): Set self.new_string to True             when std::__8::basic_string type is found.             * src/Makefile.am [ENABLE_SYMVERS_GNU_NAMESPACE](ldbl_alt128_compat_sources): Define empty.             * src/Makefile.in: Regenerate.             * src/c++11/Makefile.am (cxx11_abi_sources): Rename into...             (dual_abi_sources): ...this. Also move cow-local_init.cc, cxx11-hash_tr1.cc,             cxx11-ios_failure.cc entries to...             (sources): ...this.             (extra_string_inst_sources): Move cow-fstream-inst.cc, cow-sstream-inst.cc, cow-string-inst.cc,             cow-string-io-inst.cc, cow-wtring-inst.cc, cow-wstring-io-inst.cc, cxx11-locale-inst.cc,             cxx11-wlocale-inst.cc entries to...             (inst_sources): ...this.             * src/c++11/Makefile.in: Regenerate.             * src/c++11/cow-fstream-inst.cc [_GLIBCXX_USE_CXX11_ABI]: Skip definitions.             * src/c++11/cow-locale_init.cc [_GLIBCXX_USE_CXX11_ABI]: Skip definitions.             * src/c++11/cow-sstream-inst.cc [_GLIBCXX_USE_CXX11_ABI]: Skip definitions.             * src/c++11/cow-stdexcept.cc [_GLIBCXX_USE_CXX11_ABI]: Include .             [_GLIBCXX_USE_DUAL_ABI || _GLIBCXX_USE_CXX11_ABI](__cow_string): Redefine before including             . Define _GLIBCXX_DEFINE_STDEXCEPT_INSTANTIATIONS so that __cow_string definition             in is skipped.             [_GLIBCXX_USE_CXX11_ABI]: Skip Transaction Memory TS definitions.             * src/c++11/cow-string-inst.cc [_GLIBCXX_USE_CXX11_ABI]: Skip definitions.             * src/c++11/cow-string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: Skip definitions.             * src/c++11/cow-wstring-inst.cc [_GLIBCXX_USE_CXX11_ABI]: Skip definitions.             * src/c++11/cow-wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: Skip definitions.             * src/c++11/cxx11-hash_tr1.cc [!_GLIBCXX_USE_CXX11_ABI]: Skip definitions.             * src/c++11/cxx11-ios_failure.cc [!_GLIBCXX_USE_CXX11_ABI]: Skip definitions.             [!_GLIBCXX_USE_DUAL_ABI] (__ios_failure): Remove.             * src/c++11/cxx11-locale-inst.cc: Cleanup, just include locale-inst.cc.             * src/c++11/cxx11-stdexcept.cc [!_GLIBCXX_USE_CXX11_ABI]: Skip definitions.             * src/c++11/cxx11-wlocale-inst.cc [!_GLIBCXX_USE_CXX11_ABI]: Skip definitions.             * src/c++11/locale-inst-numeric.h [!_GLIBCXX_USE_DUAL_ABI](std::use_facet>, std::use_facet>): Instantiate. [!_GLIBCXX_USE_DUAL_ABI](std::has_facet>, std::has_facet>): Instantiate.             [!_GLIBCXX_USE_DUAL_ABI](std::num_get>): Instantiate.             [!_GLIBCXX_USE_DUAL_ABI](std::num_put>): Instantiate.             * src/c++11/locale-inst.cc [!_GLIBCXX_USE_DUAL_ABI]: Build only when configured             _GLIBCXX_USE_CXX11_ABI is equal to currently built abi.             [!_GLIBCXX_USE_DUAL_ABI](__moneypunct_cache): Instantiate.             [!_GLIBCXX_USE_DUAL_ABI](__moneypunct_cache): Instantiate.             [!_GLIBCXX_USE_DUAL_ABI](__numpunct_cache): Instantiate.             [!_GLIBCXX_USE_DUAL_ABI](__timepunct): Instantiate.             [!_GLIBCXX_USE_DUAL_ABI](__timepunct_cache): Instantiate.             [!_GLIBCXX_USE_DUAL_ABI](time_put>): Instantiate.             [!_GLIBCXX_USE_DUAL_ABI](time_put_byname>): Instantiate. [!_GLIBCXX_USE_DUAL_ABI](__ctype_abstract_base): Instantiate.             [!_GLIBCXX_USE_DUAL_ABI](ctype_byname): Instantiate.             [!_GLIBCXX_USE_DUAL_ABI](__codecvt_abstract_base): Instantiate.             [!_GLIBCXX_USE_DUAL_ABI](codecvt_byname): Instantiate.             [!_GLIBCXX_USE_DUAL_ABI](codecvt_byname): Instantiate. [!_GLIBCXX_USE_DUAL_ABI](use_facet>(const locale&)): Instantiate.             [!_GLIBCXX_USE_DUAL_ABI](use_facet>(const locale&)): Instantiate. [!_GLIBCXX_USE_DUAL_ABI](use_facet<__timepunct>(const locale&)): Instantiate. [!_GLIBCXX_USE_DUAL_ABI](use_facet>(const locale&)): Instantiate. [!_GLIBCXX_USE_DUAL_ABI](has_facet>(const locale&)): Instantiate.             [!_GLIBCXX_USE_DUAL_ABI](has_facet>(const locale&)): Instantiate. [!_GLIBCXX_USE_DUAL_ABI](has_facet<__timepunct>(const locale&)): Instantiate. [!_GLIBCXX_USE_DUAL_ABI](has_facet>(const locale&)): Instantiate.             [!_GLIBCXX_USE_DUAL_ABI](__add_grouping): Define.             [!_GLIBCXX_USE_DUAL_ABI](__pad>): Instantiate.             [!_GLIBCXX_USE_DUAL_ABI](__int_to_char(C*, unsigned long, const C*,             ios_base::fmtflags, bool)): Define.             [!_GLIBCXX_USE_DUAL_ABI](__int_to_char(C*, unsigned long long, const C*,             ios_base::fmtflags, bool)): Define.             * src/c++11/string-inst.cc (_GLIBCXX_DEFINING_CXX11_ABI_INSTANTIATIONS): Define following             _GLIBCXX_USE_CXX11_ABI value.             [_GLIBCXX_USE_CXX11_ABI && !_GLIBCXX_DEFINING_CXX11_ABI_INSTANTIATIONS]:             Define _GLIBCXX_DEFINING_COW_STRING_INSTANTIATIONS. Include .             Define basic_string as __std_cow_string for the current translation unit.             * src/c++11/wlocale-inst.cc [!_GLIBCXX_USE_CXX11_ABI]: Skip definitions.             * src/c++98/Makefile.am (cxx11_abi_sources): Remove, unique cow-istream-string.cc entry             move to...             (inst_sources): ...this.             * src/c++98/Makefile.in: Regenerate.             * src/c++98/cow-istream-string.cc: Include .             [_GLIBCXX_USE_CXX11_ABI]: Skip definitions.             * src/c++98/hash_tr1.cc [_GLIBCXX_USE_CXX11_ABI]: Skip definitions.             * src/c++98/ios_failure.cc [_GLIBCXX_USE_CXX11_ABI][_GLIBCXX_USE_DUAL_ABI]: Skip definitions.             * src/c++98/istream-string.cc [!_GLIBCXX_USE_DUAL_ABI]: Build only when configured             _GLIBCXX_USE_CXX11_ABI is equal to currently built abi.             * src/c++98/locale_facets.cc [_GLIBCXX_USE_CXX11_ABI](__verify_grouping): Remove.             * src/c++98/stdexcept.cc             [_GLIBCXX_USE_CXX11_ABI](logic_error(const string&): Remove.             [_GLIBCXX_USE_CXX11_ABI](domain_error(const string&): Remove.             [_GLIBCXX_USE_CXX11_ABI](invalid_argument(const string&): Remove.             [_GLIBCXX_USE_CXX11_ABI](length_error(const string&): Remove.             [_GLIBCXX_USE_CXX11_ABI](out_of_range(const string&): Remove.             [_GLIBCXX_USE_CXX11_ABI](runtime_error(const string&): Remove.             [_GLIBCXX_USE_CXX11_ABI](range_error(const string&): Remove.             [_GLIBCXX_USE_CXX11_ABI](overflow_error(const string&): Remove.             [_GLIBCXX_USE_CXX11_ABI](underflow_error(const string&): Remove. Tested under linux x86_64 with following configs: --enable-symvers=gnu-versioned-namespace --disable-libstdcxx-dual-abi Ok to commit ? François --------------j6gIuV8LZoCwJelP4y5q4MG0 Content-Type: text/x-patch; charset=UTF-8; name="cxx11_gnu-versioned-ns.patch" Content-Disposition: attachment; filename="cxx11_gnu-versioned-ns.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9hY2luY2x1ZGUubTQgYi9saWJzdGRjKystdjMv YWNpbmNsdWRlLm00CmluZGV4IGIyNTM3OGVhYWNlLi4zMjJmMWU0MjYxMSAxMDA2NDQKLS0t IGEvbGlic3RkYysrLXYzL2FjaW5jbHVkZS5tNAorKysgYi9saWJzdGRjKystdjMvYWNpbmNs dWRlLm00CkBAIC00ODc1LDEyICs0ODc1LDE2IEBAIGRubAogQUNfREVGVU4oW0dMSUJDWFhf RU5BQkxFX0xJQlNURENYWF9EVUFMX0FCSV0sIFsKICAgR0xJQkNYWF9FTkFCTEUobGlic3Rk Y3h4LWR1YWwtYWJpLCQxLCxbc3VwcG9ydCB0d28gdmVyc2lvbnMgb2Ygc3RkOjpzdHJpbmdd KQogICBpZiB0ZXN0IHgkZW5hYmxlX3N5bXZlcnMgPSB4Z251LXZlcnNpb25lZC1uYW1lc3Bh Y2U7IHRoZW4KLSAgICAjIGdudS12ZXJzaW9uZWQtbmFtZXNwYWNlIGlzIGluY29tcGF0aWJs ZSB3aXRoIHRoZSBkdWFsIEFCSS4KLSAgICBlbmFibGVfbGlic3RkY3h4X2R1YWxfYWJpPSJu byIKLSAgZmkKLSAgaWYgdGVzdCB4IiRlbmFibGVfbGlic3RkY3h4X2R1YWxfYWJpIiAhPSB4 eWVzOyB0aGVuCisgICAgIyBnbnUtdmVyc2lvbmVkLW5hbWVzcGFjZSBpcyBpbmNvbXBhdGli bGUgd2l0aCB0aGUgZHVhbCBBQkkuLi4KICAgICBBQ19NU0dfTk9USUNFKFtkdWFsIEFCSSBp cyBkaXNhYmxlZF0pCi0gICAgZGVmYXVsdF9saWJzdGRjeHhfYWJpPSJnY2M0LWNvbXBhdGli bGUiCisgICAgZW5hYmxlX2xpYnN0ZGN4eF9kdWFsX2FiaT0ibm8iCisgICAgIyAuLi4gYW5k IHVzZSB0aGUgY3h4MTEgb25lLgorICAgIGRlZmF1bHRfbGlic3RkY3h4X2FiaT0ibmV3Igor ICBlbHNlCisgICAgaWYgdGVzdCB4IiRlbmFibGVfbGlic3RkY3h4X2R1YWxfYWJpIiAhPSB4 eWVzOyB0aGVuCisgICAgICBBQ19NU0dfTk9USUNFKFtkdWFsIEFCSSBpcyBkaXNhYmxlZF0p CisgICAgICBkZWZhdWx0X2xpYnN0ZGN4eF9hYmk9ImdjYzQtY29tcGF0aWJsZSIKKyAgICBm aQogICBmaQogICBHTElCQ1hYX0NPTkRJVElPTkFMKEVOQUJMRV9EVUFMX0FCSSwgdGVzdCAk ZW5hYmxlX2xpYnN0ZGN4eF9kdWFsX2FiaSA9IHllcykKIF0pCmRpZmYgLS1naXQgYS9saWJz dGRjKystdjMvY29uZmlnL2xvY2FsZS9kcmFnb25mbHkvbW9uZXRhcnlfbWVtYmVycy5jYyBi L2xpYnN0ZGMrKy12My9jb25maWcvbG9jYWxlL2RyYWdvbmZseS9tb25ldGFyeV9tZW1iZXJz LmNjCmluZGV4IGY1MzRiYmU0YWViLi4zZjk2ZjJiOWYxMSAxMDA2NDQKLS0tIGEvbGlic3Rk YysrLXYzL2NvbmZpZy9sb2NhbGUvZHJhZ29uZmx5L21vbmV0YXJ5X21lbWJlcnMuY2MKKysr IGIvbGlic3RkYysrLXYzL2NvbmZpZy9sb2NhbGUvZHJhZ29uZmx5L21vbmV0YXJ5X21lbWJl cnMuY2MKQEAgLTM5LDcgKzM5LDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJ T04KIAogLy8gVGhpcyBmaWxlIG1pZ2h0IGJlIGNvbXBpbGVkIHR3aWNlLCBidXQgd2Ugb25s eSB3YW50IHRvIGRlZmluZSB0aGUgbWVtYmVycwogLy8gb2YgbW9uZXlfYmFzZSBvbmNlLgot I2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDEx X0FCSSB8fCAhIF9HTElCQ1hYX1VTRV9EVUFMX0FCSQogCiAgIC8vIENvbnN0cnVjdCBhbmQg cmV0dXJuIHZhbGlkIHBhdHRlcm4gY29uc2lzdGluZyBvZiBzb21lIGNvbWJpbmF0aW9uIG9m OgogICAvLyBzcGFjZSBub25lIHN5bWJvbCBzaWduIHZhbHVlCkBAIC0yMDcsNyArMjA3LDcg QEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICAgIH0KICAgICByZXR1 cm4gX19yZXQ7CiAgIH0KLSNlbmRpZgorI2VuZGlmIC8vICEgX0dMSUJDWFhfVVNFX0NYWDEx X0FCSSB8fCAhIF9HTElCQ1hYX1VTRV9EVUFMX0FCSQogCiAgIHRlbXBsYXRlPD4KICAgICB2 b2lkCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvY29uZmlnL2xvY2FsZS9nZW5lcmljL21v bmV0YXJ5X21lbWJlcnMuY2MgYi9saWJzdGRjKystdjMvY29uZmlnL2xvY2FsZS9nZW5lcmlj L21vbmV0YXJ5X21lbWJlcnMuY2MKaW5kZXggMmMxY2ZlZmYwOTQuLmExYWUxMzZiZTA0IDEw MDY0NAotLS0gYS9saWJzdGRjKystdjMvY29uZmlnL2xvY2FsZS9nZW5lcmljL21vbmV0YXJ5 X21lbWJlcnMuY2MKKysrIGIvbGlic3RkYysrLXYzL2NvbmZpZy9sb2NhbGUvZ2VuZXJpYy9t b25ldGFyeV9tZW1iZXJzLmNjCkBAIC0zNiw3ICszNiw3IEBAIF9HTElCQ1hYX0JFR0lOX05B TUVTUEFDRV9WRVJTSU9OCiAKIC8vIFRoaXMgZmlsZSBtaWdodCBiZSBjb21waWxlZCB0d2lj ZSwgYnV0IHdlIG9ubHkgd2FudCB0byBkZWZpbmUgdGhlIG1lbWJlcnMKIC8vIG9mIG1vbmV5 X2Jhc2Ugb25jZS4KLSNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKKyNpZiAhIF9HTElC Q1hYX1VTRV9DWFgxMV9BQkkgfHwgISBfR0xJQkNYWF9VU0VfRFVBTF9BQkkKIAogICAvLyBD b25zdHJ1Y3QgYW5kIHJldHVybiB2YWxpZCBwYXR0ZXJuIGNvbnNpc3Rpbmcgb2Ygc29tZSBj b21iaW5hdGlvbiBvZjoKICAgLy8gc3BhY2Ugbm9uZSBzeW1ib2wgc2lnbiB2YWx1ZQpkaWZm IC0tZ2l0IGEvbGlic3RkYysrLXYzL2NvbmZpZy9sb2NhbGUvZ251L21vbmV0YXJ5X21lbWJl cnMuY2MgYi9saWJzdGRjKystdjMvY29uZmlnL2xvY2FsZS9nbnUvbW9uZXRhcnlfbWVtYmVy cy5jYwppbmRleCAxZjQ2ZWEyZjUzZi4uODc1NjFiY2M4MjEgMTAwNjQ0Ci0tLSBhL2xpYnN0 ZGMrKy12My9jb25maWcvbG9jYWxlL2dudS9tb25ldGFyeV9tZW1iZXJzLmNjCisrKyBiL2xp YnN0ZGMrKy12My9jb25maWcvbG9jYWxlL2dudS9tb25ldGFyeV9tZW1iZXJzLmNjCkBAIC0z Nyw3ICszNyw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAKIC8vIFRo aXMgZmlsZSBtaWdodCBiZSBjb21waWxlZCB0d2ljZSwgYnV0IHdlIG9ubHkgd2FudCB0byBk ZWZpbmUgdGhlIG1lbWJlcnMKIC8vIG9mIG1vbmV5X2Jhc2Ugb25jZS4KLSNpZiAhIF9HTElC Q1hYX1VTRV9DWFgxMV9BQkkKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgfHwgISBf R0xJQkNYWF9VU0VfRFVBTF9BQkkKIAogICAvLyBDb25zdHJ1Y3QgYW5kIHJldHVybiB2YWxp ZCBwYXR0ZXJuIGNvbnNpc3Rpbmcgb2Ygc29tZSBjb21iaW5hdGlvbiBvZjoKICAgLy8gc3Bh Y2Ugbm9uZSBzeW1ib2wgc2lnbiB2YWx1ZQpAQCAtMjA1LDcgKzIwNSw3IEBAIF9HTElCQ1hY X0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgICAgICB9CiAgICAgcmV0dXJuIF9fcmV0Owog ICB9Ci0jZW5kaWYKKyNlbmRpZiAvLyAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgfHwgISBf R0xJQkNYWF9VU0VfRFVBTF9BQkkKIAogICBleHRlcm4gY2hhciBfX25hcnJvd19tdWx0aWJ5 dGVfY2hhcnMoY29uc3QgY2hhciogcywgX19sb2NhbGVfdCBjbG9jKTsKIApkaWZmIC0tZ2l0 IGEvbGlic3RkYysrLXYzL2NvbmZpZy9sb2NhbGUvZ251L251bWVyaWNfbWVtYmVycy5jYyBi L2xpYnN0ZGMrKy12My9jb25maWcvbG9jYWxlL2dudS9udW1lcmljX21lbWJlcnMuY2MKaW5k ZXggMjIwYTBmOGM1MTAuLmNiODA5NWU2YWM3IDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMv Y29uZmlnL2xvY2FsZS9nbnUvbnVtZXJpY19tZW1iZXJzLmNjCisrKyBiL2xpYnN0ZGMrKy12 My9jb25maWcvbG9jYWxlL2dudS9udW1lcmljX21lbWJlcnMuY2MKQEAgLTM5LDcgKzM5LDcg QEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgZXh0ZXJuIGNoYXIgX19u YXJyb3dfbXVsdGlieXRlX2NoYXJzKGNvbnN0IGNoYXIqIHMsIF9fbG9jYWxlX3QgY2xvYyk7 CiAKIC8vIFRoaXMgZmlsZSBtaWdodCBiZSBjb21waWxlZCB0d2ljZSwgYnV0IHdlIG9ubHkg d2FudCB0byBkZWZpbmUgdGhpcyBvbmNlLgotI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FC SQorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSSB8fCAhIF9HTElCQ1hYX1VTRV9EVUFM X0FCSQogICBjaGFyCiAgIF9fbmFycm93X211bHRpYnl0ZV9jaGFycyhjb25zdCBjaGFyKiBz LCBfX2xvY2FsZV90IGNsb2MpCiAgIHsKQEAgLTg0LDcgKzg0LDcgQEAgX0dMSUJDWFhfQkVH SU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICAgIH0KICAgICByZXR1cm4gJ1wwJzsKICAgfQot I2VuZGlmCisjZW5kaWYgLy8gISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIHx8ICEgX0dMSUJD WFhfVVNFX0RVQUxfQUJJCiAKICAgdGVtcGxhdGU8PgogICAgIHZvaWQKZGlmZiAtLWdpdCBh L2xpYnN0ZGMrKy12My9jb25maWd1cmUgYi9saWJzdGRjKystdjMvY29uZmlndXJlCmluZGV4 IGM0ZGE1NmMzMDQyLi5mZDQzMWYyODU0NyAxMDA3NTUKLS0tIGEvbGlic3RkYysrLXYzL2Nv bmZpZ3VyZQorKysgYi9saWJzdGRjKystdjMvY29uZmlndXJlCkBAIC03MDcwMiwxMyArNzA3 MDIsMTggQEAgZmkKIAogCiAgIGlmIHRlc3QgeCRlbmFibGVfc3ltdmVycyA9IHhnbnUtdmVy c2lvbmVkLW5hbWVzcGFjZTsgdGhlbgotICAgICMgZ251LXZlcnNpb25lZC1uYW1lc3BhY2Ug aXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIGR1YWwgQUJJLgotICAgIGVuYWJsZV9saWJzdGRj eHhfZHVhbF9hYmk9Im5vIgotICBmaQotICBpZiB0ZXN0IHgiJGVuYWJsZV9saWJzdGRjeHhf ZHVhbF9hYmkiICE9IHh5ZXM7IHRoZW4KKyAgICAjIGdudS12ZXJzaW9uZWQtbmFtZXNwYWNl IGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBkdWFsIEFCSS4uLgogICAgIHsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZHVhbCBBQkkgaXMgZGlzYWJsZWQiID4m NQogJGFzX2VjaG8gIiRhc19tZTogZHVhbCBBQkkgaXMgZGlzYWJsZWQiID4mNjt9Ci0gICAg ZGVmYXVsdF9saWJzdGRjeHhfYWJpPSJnY2M0LWNvbXBhdGlibGUiCisgICAgZW5hYmxlX2xp YnN0ZGN4eF9kdWFsX2FiaT0ibm8iCisgICAgIyAuLi4gYW5kIHVzZSB0aGUgY3h4MTEgb25l LgorICAgIGRlZmF1bHRfbGlic3RkY3h4X2FiaT0ibmV3IgorICBlbHNlCisgICAgaWYgdGVz dCB4IiRlbmFibGVfbGlic3RkY3h4X2R1YWxfYWJpIiAhPSB4eWVzOyB0aGVuCisgICAgICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGR1YWwgQUJJIGlzIGRp c2FibGVkIiA+JjUKKyRhc19lY2hvICIkYXNfbWU6IGR1YWwgQUJJIGlzIGRpc2FibGVkIiA+ JjY7fQorICAgICAgZGVmYXVsdF9saWJzdGRjeHhfYWJpPSJnY2M0LWNvbXBhdGlibGUiCisg ICAgZmkKICAgZmkKIAogCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvaW5jbHVkZS9iaXRz L2MrK2NvbmZpZyBiL2xpYnN0ZGMrKy12My9pbmNsdWRlL2JpdHMvYysrY29uZmlnCmluZGV4 IGRkNDdmMjc0ZDVmLi5iOTBlZmM4MWQzMyAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL2lu Y2x1ZGUvYml0cy9jKytjb25maWcKKysrIGIvbGlic3RkYysrLXYzL2luY2x1ZGUvYml0cy9j Kytjb25maWcKQEAgLTMzNywyNiArMzM3LDYgQEAgbmFtZXNwYWNlIHN0ZAogI2RlZmluZSBf R0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAjZW5kaWYKIAotI2lmIF9HTElCQ1hYX1VTRV9DWFgx MV9BQkkKLW5hbWVzcGFjZSBzdGQKLXsKLSAgaW5saW5lIG5hbWVzcGFjZSBfX2N4eDExIF9f YXR0cmlidXRlX18oKF9fYWJpX3RhZ19fICgiY3h4MTEiKSkpIHsgfQotfQotbmFtZXNwYWNl IF9fZ251X2N4eAotewotICBpbmxpbmUgbmFtZXNwYWNlIF9fY3h4MTEgX19hdHRyaWJ1dGVf XygoX19hYmlfdGFnX18gKCJjeHgxMSIpKSkgeyB9Ci19Ci0jIGRlZmluZSBfR0xJQkNYWF9O QU1FU1BBQ0VfQ1hYMTEgX19jeHgxMTo6Ci0jIGRlZmluZSBfR0xJQkNYWF9CRUdJTl9OQU1F U1BBQ0VfQ1hYMTEgbmFtZXNwYWNlIF9fY3h4MTEgewotIyBkZWZpbmUgX0dMSUJDWFhfRU5E X05BTUVTUEFDRV9DWFgxMSB9Ci0jIGRlZmluZSBfR0xJQkNYWF9ERUZBVUxUX0FCSV9UQUcg X0dMSUJDWFhfQUJJX1RBR19DWFgxMQotI2Vsc2UKLSMgZGVmaW5lIF9HTElCQ1hYX05BTUVT UEFDRV9DWFgxMQotIyBkZWZpbmUgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX0NYWDExCi0j IGRlZmluZSBfR0xJQkNYWF9FTkRfTkFNRVNQQUNFX0NYWDExCi0jIGRlZmluZSBfR0xJQkNY WF9ERUZBVUxUX0FCSV9UQUcKLSNlbmRpZgotCiAvLyBOb24temVybyBpZiBpbmxpbmUgbmFt ZXNwYWNlcyBhcmUgdXNlZCBmb3IgdmVyc2lvbmluZyB0aGUgZW50aXJlIGxpYnJhcnkuCiAj ZGVmaW5lIF9HTElCQ1hYX0lOTElORV9WRVJTSU9OIAogCkBAIC00MTUsNyArMzk1LDcgQEAg X0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgLy8gTm9uLWlubGluZSBuYW1l c3BhY2UgZm9yIGNvbXBvbmVudHMgcmVwbGFjZWQgYnkgYWx0ZXJuYXRlcyBpbiBhY3RpdmUg bW9kZS4KICAgbmFtZXNwYWNlIF9fY3h4MTk5OAogICB7Ci0jIGlmIF9HTElCQ1hYX1VTRV9D WFgxMV9BQkkKKyMgaWYgX0dMSUJDWFhfVVNFX0NYWDExX0FCSSAmJiAhIF9HTElCQ1hYX0lO TElORV9WRVJTSU9OCiAgIGlubGluZSBuYW1lc3BhY2UgX19jeHgxMSBfX2F0dHJpYnV0ZV9f KChfX2FiaV90YWdfXyAoImN4eDExIikpKSB7IH0KICMgZW5kaWYKICAgfQpAQCAtNDQ1LDYg KzQyNSwyNiBAQCBfR0xJQkNYWF9FTkRfTkFNRVNQQUNFX1ZFUlNJT04KICMgZW5kaWYKICNl bmRpZgogCisjaWYgX0dMSUJDWFhfVVNFX0NYWDExX0FCSSAmJiAhIF9HTElCQ1hYX0lOTElO RV9WRVJTSU9OCituYW1lc3BhY2Ugc3RkCit7CisgIGlubGluZSBuYW1lc3BhY2UgX19jeHgx MSBfX2F0dHJpYnV0ZV9fKChfX2FiaV90YWdfXyAoImN4eDExIikpKSB7IH0KK30KK25hbWVz cGFjZSBfX2dudV9jeHgKK3sKKyAgaW5saW5lIG5hbWVzcGFjZSBfX2N4eDExIF9fYXR0cmli dXRlX18oKF9fYWJpX3RhZ19fICgiY3h4MTEiKSkpIHsgfQorfQorIyBkZWZpbmUgX0dMSUJD WFhfTkFNRVNQQUNFX0NYWDExIF9fY3h4MTE6OgorIyBkZWZpbmUgX0dMSUJDWFhfQkVHSU5f TkFNRVNQQUNFX0NYWDExIG5hbWVzcGFjZSBfX2N4eDExIHsKKyMgZGVmaW5lIF9HTElCQ1hY X0VORF9OQU1FU1BBQ0VfQ1hYMTEgfQorIyBkZWZpbmUgX0dMSUJDWFhfREVGQVVMVF9BQklf VEFHIF9HTElCQ1hYX0FCSV9UQUdfQ1hYMTEKKyNlbHNlCisjIGRlZmluZSBfR0xJQkNYWF9O QU1FU1BBQ0VfQ1hYMTEKKyMgZGVmaW5lIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9DWFgx MQorIyBkZWZpbmUgX0dMSUJDWFhfRU5EX05BTUVTUEFDRV9DWFgxMQorIyBkZWZpbmUgX0dM SUJDWFhfREVGQVVMVF9BQklfVEFHCisjZW5kaWYKKwogLy8gTWFjcm9zIGZvciBuYW1lc3Bh Y2Ugc2NvcGUuIEVpdGhlciBuYW1lc3BhY2Ugc3RkOjogb3IgdGhlIG5hbWUKIC8vIG9mIHNv bWUgbmVzdGVkIG5hbWVzcGFjZSB3aXRoaW4gaXQgY29ycmVzcG9uZGluZyB0byB0aGUgYWN0 aXZlIG1vZGUuCiAvLyBfR0xJQkNYWF9TVERfQQpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYz L2luY2x1ZGUvYml0cy9jb3dfc3RyaW5nLmggYi9saWJzdGRjKystdjMvaW5jbHVkZS9iaXRz L2Nvd19zdHJpbmcuaAppbmRleCBlNWYwOTRmZDEzZS4uZDViOThkMzBhNzAgMTAwNjQ0Ci0t LSBhL2xpYnN0ZGMrKy12My9pbmNsdWRlL2JpdHMvY293X3N0cmluZy5oCisrKyBiL2xpYnN0 ZGMrKy12My9pbmNsdWRlL2JpdHMvY293X3N0cmluZy5oCkBAIC0zMiw4ICszMiw2IEBACiAj aWZuZGVmIF9DT1dfU1RSSU5HX0gKICNkZWZpbmUgX0NPV19TVFJJTkdfSCAxCiAKLSNpZiAh IF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKLQogI2luY2x1ZGUgPGV4dC9hdG9taWNpdHkuaD4g Ly8gX0F0b21pY193b3JkLCBfX2lzX3NpbmdsZV90aHJlYWRlZAogCiAjaWZkZWYgX19jcHBf bGliX2lzX2NvbnN0YW50X2V2YWx1YXRlZApAQCAtNDQsNiArNDIsMTAgQEAKICMgZGVmaW5l IF9fY3BwX2xpYl9jb25zdGV4cHJfc3RyaW5nIDIwMTYxMUwKICNlbmRpZgogCisjaWYgX0dM SUJDWFhfVVNFX0NYWDExX0FCSQorIyBkZWZpbmUgYmFzaWNfc3RyaW5nIF9fc3RkX2Nvd19z dHJpbmcKKyNlbmRpZgorCiBuYW1lc3BhY2Ugc3RkIF9HTElCQ1hYX1ZJU0lCSUxJVFkoZGVm YXVsdCkKIHsKIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCkBAIC04MzUsNiAr ODM3LDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICAgIGVuZCgp IGNvbnN0IF9HTElCQ1hYX05PRVhDRVBUCiAgICAgICB7IHJldHVybiBjb25zdF9pdGVyYXRv cihfTV9kYXRhKCkgKyB0aGlzLT5zaXplKCkpOyB9CiAKKyNpZiAhIF9HTElCQ1hYX1VTRV9D WFgxMV9BQkkKICAgICAgIC8qKgogICAgICAgICogIFJldHVybnMgYSByZWFkL3dyaXRlIHJl dmVyc2UgaXRlcmF0b3IgdGhhdCBwb2ludHMgdG8gdGhlIGxhc3QKICAgICAgICAqICBjaGFy YWN0ZXIgaW4gdGhlICVzdHJpbmcuICBJdGVyYXRpb24gaXMgZG9uZSBpbiByZXZlcnNlIGVs ZW1lbnQKQEAgLTkwNiw2ICs5MDksNyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVS U0lPTgogICAgICAgY3JlbmQoKSBjb25zdCBub2V4Y2VwdAogICAgICAgeyByZXR1cm4gY29u c3RfcmV2ZXJzZV9pdGVyYXRvcih0aGlzLT5iZWdpbigpKTsgfQogI2VuZGlmCisjZW5kaWYg Ly8gISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAKICAgICBwdWJsaWM6CiAgICAgICAvLyBD YXBhY2l0eToKQEAgLTkzMyw2ICs5MzcsNyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0Vf VkVSU0lPTgogICAgICAgbWF4X3NpemUoKSBjb25zdCBfR0xJQkNYWF9OT0VYQ0VQVAogICAg ICAgeyByZXR1cm4gX1JlcDo6X1NfbWF4X3NpemU7IH0KIAorI2lmICEgX0dMSUJDWFhfVVNF X0NYWDExX0FCSQogICAgICAgLyoqCiAgICAgICAgKiAgQGJyaWVmICBSZXNpemVzIHRoZSAl c3RyaW5nIHRvIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGNoYXJhY3RlcnMuCiAgICAgICAg KiAgQHBhcmFtICBfX24gIE51bWJlciBvZiBjaGFyYWN0ZXJzIHRoZSAlc3RyaW5nIHNob3Vs ZCBjb250YWluLgpAQCAtOTY5LDcgKzk3NCw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFD RV9WRVJTSU9OCiAgICAgICB7IHJlc2VydmUoKTsgfQogI3ByYWdtYSBHQ0MgZGlhZ25vc3Rp YyBwb3AKICNlbmRpZgotCisjZW5kaWYgLy8gISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAg ICAgICAvKioKICAgICAgICAqICBSZXR1cm5zIHRoZSB0b3RhbCBudW1iZXIgb2YgY2hhcmFj dGVycyB0aGF0IHRoZSAlc3RyaW5nIGNhbiBob2xkCiAgICAgICAgKiAgYmVmb3JlIG5lZWRp bmcgdG8gYWxsb2NhdGUgbW9yZSBtZW1vcnkuCkBAIC05NzgsNiArOTgzLDcgQEAgX0dMSUJD WFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICAgIGNhcGFjaXR5KCkgY29uc3QgX0dM SUJDWFhfTk9FWENFUFQKICAgICAgIHsgcmV0dXJuIF9NX3JlcCgpLT5fTV9jYXBhY2l0eTsg fQogCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAgICAgICAvKioKICAgICAgICAq ICBAYnJpZWYgIEF0dGVtcHQgdG8gcHJlYWxsb2NhdGUgZW5vdWdoIG1lbW9yeSBmb3Igc3Bl Y2lmaWVkIG51bWJlciBvZgogICAgICAgICogICAgICAgICAgY2hhcmFjdGVycy4KQEAgLTEw MjYsNiArMTAzMiw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgICAg ICBjbGVhcigpCiAgICAgICB7IF9NX211dGF0ZSgwLCB0aGlzLT5zaXplKCksIDApOyB9CiAj ZW5kaWYKKyNlbmRpZiAvLyAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKIAogICAgICAgLyoq CiAgICAgICAgKiAgUmV0dXJucyB0cnVlIGlmIHRoZSAlc3RyaW5nIGlzIGVtcHR5LiAgRXF1 aXZhbGVudCB0bwpAQCAtMTAzNSw2ICsxMDQyLDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQ QUNFX1ZFUlNJT04KICAgICAgIGVtcHR5KCkgY29uc3QgX0dMSUJDWFhfTk9FWENFUFQKICAg ICAgIHsgcmV0dXJuIHRoaXMtPnNpemUoKSA9PSAwOyB9CiAKKyNpZiAhIF9HTElCQ1hYX1VT RV9DWFgxMV9BQkkKICAgICAgIC8vIEVsZW1lbnQgYWNjZXNzOgogICAgICAgLyoqCiAgICAg ICAgKiAgQGJyaWVmICBTdWJzY3JpcHQgYWNjZXNzIHRvIHRoZSBkYXRhIGNvbnRhaW5lZCBp biB0aGUgJXN0cmluZy4KQEAgLTEzNDUsNiArMTM1Myw3IEBAIF9HTElCQ1hYX0JFR0lOX05B TUVTUEFDRV9WRVJTSU9OCiAJdHJhaXRzX3R5cGU6OmFzc2lnbihfTV9kYXRhKClbdGhpcy0+ c2l6ZSgpXSwgX19jKTsKIAlfTV9yZXAoKS0+X01fc2V0X2xlbmd0aF9hbmRfc2hhcmFibGUo X19sZW4pOwogICAgICAgfQorI2VuZGlmIC8vICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQog CiAgICAgICAvKioKICAgICAgICAqICBAYnJpZWYgIFNldCB2YWx1ZSB0byBjb250ZW50cyBv ZiBhbm90aGVyIHN0cmluZy4KQEAgLTE0ODksNiArMTQ5OCw3IEBAIF9HTElCQ1hYX0JFR0lO X05BTUVTUEFDRV9WRVJTSU9OCiAJfQogI2VuZGlmIC8vIEMrKzE3CiAKKyNpZiAhIF9HTElC Q1hYX1VTRV9DWFgxMV9BQkkKICAgICAgIC8qKgogICAgICAgICogIEBicmllZiAgSW5zZXJ0 IG11bHRpcGxlIGNoYXJhY3RlcnMuCiAgICAgICAgKiAgQHBhcmFtIF9fcCAgSXRlcmF0b3Ig cmVmZXJlbmNpbmcgbG9jYXRpb24gaW4gc3RyaW5nIHRvIGluc2VydCBhdC4KQEAgLTIxMDcs NiArMjExNyw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAJICByZXR1 cm4gdGhpcy0+cmVwbGFjZShfX2kxIC0gYmVnaW4oKSwgX19pMiAtIF9faTEsIF9fc3YpOwog CX0KICNlbmRpZiAvLyBDKysxNworI2VuZGlmIC8vICEgX0dMSUJDWFhfVVNFX0NYWDExX0FC SQogCiAgICAgcHJpdmF0ZToKICAgICAgIHRlbXBsYXRlPGNsYXNzIF9JbnRlZ2VyPgpAQCAt MjE3OCw2ICsyMTg5LDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KIAog ICAgIHB1YmxpYzoKIAorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQogICAgICAgLyoq CiAgICAgICAgKiAgQGJyaWVmICBDb3B5IHN1YnN0cmluZyBpbnRvIEMgc3RyaW5nLgogICAg ICAgICogIEBwYXJhbSBfX3MgIEMgc3RyaW5nIHRvIGNvcHkgdmFsdWUgaW50by4KQEAgLTIx OTIsNiArMjIwNCw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgICAg ICAqLwogICAgICAgc2l6ZV90eXBlCiAgICAgICBjb3B5KF9DaGFyVCogX19zLCBzaXplX3R5 cGUgX19uLCBzaXplX3R5cGUgX19wb3MgPSAwKSBjb25zdDsKKyNlbmRpZgogCiAgICAgICAv KioKICAgICAgICAqICBAYnJpZWYgIFN3YXAgY29udGVudHMgd2l0aCBhbm90aGVyIHN0cmlu Zy4KQEAgLTIyNDksNiArMjI2Miw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJT SU9OCiAgICAgICBnZXRfYWxsb2NhdG9yKCkgY29uc3QgX0dMSUJDWFhfTk9FWENFUFQKICAg ICAgIHsgcmV0dXJuIF9NX2RhdGFwbHVzOyB9CiAKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgx MV9BQkkKICAgICAgIC8qKgogICAgICAgICogIEBicmllZiAgRmluZCBwb3NpdGlvbiBvZiBh IEMgc3Vic3RyaW5nLgogICAgICAgICogIEBwYXJhbSBfX3MgIEMgc3RyaW5nIHRvIGxvY2F0 ZS4KQEAgLTMwNTQsNiArMzA2OCw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJT SU9OCiAgICAgICBjb250YWlucyhjb25zdCBfQ2hhclQqIF9feCkgY29uc3Qgbm9leGNlcHQK ICAgICAgIHsgcmV0dXJuIF9fc3ZfdHlwZSh0aGlzLT5kYXRhKCksIHRoaXMtPnNpemUoKSku Y29udGFpbnMoX194KTsgfQogI2VuZGlmIC8vIEMrKzIzCisjZW5kaWYgLy8gISBfR0xJQkNY WF9VU0VfQ1hYMTFfQUJJCiAKICMgaWZkZWYgX0dMSUJDWFhfVE1fVFNfSU5URVJOQUwKICAg ICAgIGZyaWVuZCB2b2lkCkBAIC0zMjU3LDYgKzMyNzIsNyBAQCBfR0xJQkNYWF9CRUdJTl9O QU1FU1BBQ0VfVkVSU0lPTgogCX0KICAgICAgfQogCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hY MTFfQUJJCiAgIHRlbXBsYXRlPHR5cGVuYW1lIF9DaGFyVCwgdHlwZW5hbWUgX1RyYWl0cywg dHlwZW5hbWUgX0FsbG9jPgogICAgIGJhc2ljX3N0cmluZzxfQ2hhclQsIF9UcmFpdHMsIF9B bGxvYz4mCiAgICAgYmFzaWNfc3RyaW5nPF9DaGFyVCwgX1RyYWl0cywgX0FsbG9jPjo6CkBA IC0zNDIwLDYgKzM0MzYsNyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgog CSAgIHJldHVybiBfTV9yZXBsYWNlX3NhZmUoX19wb3MsIF9fbjEsIF9fdG1wLl9NX2RhdGEo KSwgX19uMik7CiAJIH0KICAgICAgfQorI2VuZGlmIC8vICEgX0dMSUJDWFhfVVNFX0NYWDEx X0FCSQogCiAgIHRlbXBsYXRlPHR5cGVuYW1lIF9DaGFyVCwgdHlwZW5hbWUgX1RyYWl0cywg dHlwZW5hbWUgX0FsbG9jPgogICAgIHZvaWQKQEAgLTM0ODEsNiArMzQ5OCw3IEBAIF9HTElC Q1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgICAgICBfTV9yZXAoKS0+X01fc2V0X2xl bmd0aF9hbmRfc2hhcmFibGUoX19uZXdfc2l6ZSk7CiAgICAgfQogCisjaWYgISBfR0xJQkNY WF9VU0VfQ1hYMTFfQUJJCiAgIHRlbXBsYXRlPHR5cGVuYW1lIF9DaGFyVCwgdHlwZW5hbWUg X1RyYWl0cywgdHlwZW5hbWUgX0FsbG9jPgogICAgIHZvaWQKICAgICBiYXNpY19zdHJpbmc8 X0NoYXJULCBfVHJhaXRzLCBfQWxsb2M+OjoKQEAgLTM1MDYsNiArMzUyNCw3IEBAIF9HTElC Q1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgICAgICBfTV9yZXAoKS0+X01fZGlzcG9z ZShfX2EpOwogICAgICAgX01fZGF0YShfX3RtcCk7CiAgICAgfQorI2VuZGlmCiAKICAgdGVt cGxhdGU8dHlwZW5hbWUgX0NoYXJULCB0eXBlbmFtZSBfVHJhaXRzLCB0eXBlbmFtZSBfQWxs b2M+CiAgICAgdm9pZApAQCAtMzYyOSw2ICszNjQ4LDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFN RVNQQUNFX1ZFUlNJT04KICAgICAgIHJldHVybiBfX3ItPl9NX3JlZmRhdGEoKTsKICAgICB9 CiAKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgdGVtcGxhdGU8dHlwZW5hbWUg X0NoYXJULCB0eXBlbmFtZSBfVHJhaXRzLCB0eXBlbmFtZSBfQWxsb2M+CiAgICAgdm9pZAog ICAgIGJhc2ljX3N0cmluZzxfQ2hhclQsIF9UcmFpdHMsIF9BbGxvYz46OgpAQCAtMzY0Miw2 ICszNjYyLDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KIAl0aGlzLT5l cmFzZShfX24pOwogICAgICAgLy8gZWxzZSBub3RoaW5nIChpbiBwYXJ0aWN1bGFyLCBhdm9p ZCBjYWxsaW5nIF9NX211dGF0ZSgpIHVubmVjZXNzYXJpbHkuKQogICAgIH0KKyAgI2VuZGlm CiAKICAgdGVtcGxhdGU8dHlwZW5hbWUgX0NoYXJULCB0eXBlbmFtZSBfVHJhaXRzLCB0eXBl bmFtZSBfQWxsb2M+CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgX0lucHV0SXRlcmF0b3I+CkBA IC0zNjgyLDYgKzM3MDMsNyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgog ICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KIAorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDEx X0FCSQogICB0ZW1wbGF0ZTx0eXBlbmFtZSBfQ2hhclQsIHR5cGVuYW1lIF9UcmFpdHMsIHR5 cGVuYW1lIF9BbGxvYz4KICAgICB2b2lkCiAgICAgYmFzaWNfc3RyaW5nPF9DaGFyVCwgX1Ry YWl0cywgX0FsbG9jPjo6CkBAIC0zNzE2LDcgKzM3MzgsMTEgQEAgX0dMSUJDWFhfQkVHSU5f TkFNRVNQQUNFX1ZFUlNJT04KICAgICAgIC8vIDIxLjMuNS43IHBhciAzOiBkbyBub3QgYXBw ZW5kIG51bGwuICAoZ29vZC4pCiAgICAgICByZXR1cm4gX19uOwogICAgIH0KKyNlbmRpZiAv LyAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKIF9HTElCQ1hYX0VORF9OQU1FU1BBQ0VfVkVS U0lPTgogfSAvLyBuYW1lc3BhY2Ugc3RkCi0jZW5kaWYgIC8vICEgX0dMSUJDWFhfVVNFX0NY WDExX0FCSQorCisjaWYgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorIyB1bmRlZiBiYXNpY19z dHJpbmcKKyNlbmRpZgogI2VuZGlmICAvLyBfQ09XX1NUUklOR19ICmRpZmYgLS1naXQgYS9s aWJzdGRjKystdjMvaW5jbHVkZS9zdGQvc3RkZXhjZXB0IGIvbGlic3RkYysrLXYzL2luY2x1 ZGUvc3RkL3N0ZGV4Y2VwdAppbmRleCA2NmM4NTcyZDBjZC4uMDdlNmM3NGUzN2YgMTAwNjQ0 Ci0tLSBhL2xpYnN0ZGMrKy12My9pbmNsdWRlL3N0ZC9zdGRleGNlcHQKKysrIGIvbGlic3Rk YysrLXYzL2luY2x1ZGUvc3RkL3N0ZGV4Y2VwdApAQCAtNDIsOCArNDIsOSBAQCBuYW1lc3Bh Y2Ugc3RkIF9HTElCQ1hYX1ZJU0lCSUxJVFkoZGVmYXVsdCkKIHsKIF9HTElCQ1hYX0JFR0lO X05BTUVTUEFDRV9WRVJTSU9OCiAKLSNpZiBfR0xJQkNYWF9VU0VfRFVBTF9BQkkKKyNpZiBf R0xJQkNYWF9VU0VfRFVBTF9BQkkgfHwgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQogI2lmIF9H TElCQ1hYX1VTRV9DWFgxMV9BQkkKKyMgaWYgISBfR0xJQkNYWF9ERUZJTkVfU1RERVhDRVBU X0lOU1RBTlRJQVRJT05TCiAgIC8vIEVtdWxhdGVzIGFuIG9sZCBDT1cgc3RyaW5nIHdoZW4g dGhlIG5ldyBzdGQ6OnN0cmluZyBpcyBpbiB1c2UuCiAgIHN0cnVjdCBfX2Nvd19zdHJpbmcK ICAgewpAQCAtNTQsNiArNTUsNyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lP TgogCiAgICAgX19jb3dfc3RyaW5nKCk7CiAgICAgX19jb3dfc3RyaW5nKGNvbnN0IHN0ZDo6 c3RyaW5nJik7CisgICAgX19jb3dfc3RyaW5nKGNvbnN0IGNoYXIqKTsKICAgICBfX2Nvd19z dHJpbmcoY29uc3QgY2hhciosIHNpemVfdCk7CiAgICAgX19jb3dfc3RyaW5nKGNvbnN0IF9f Y293X3N0cmluZyYpIF9HTElCQ1hYX05PVEhST1c7CiAgICAgX19jb3dfc3RyaW5nJiBvcGVy YXRvcj0oY29uc3QgX19jb3dfc3RyaW5nJikgX0dMSUJDWFhfTk9USFJPVzsKQEAgLTYyLDcg KzY0LDkgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICBfX2Nvd19z dHJpbmcoX19jb3dfc3RyaW5nJiYpIG5vZXhjZXB0OwogICAgIF9fY293X3N0cmluZyYgb3Bl cmF0b3I9KF9fY293X3N0cmluZyYmKSBub2V4Y2VwdDsKICNlbmRpZgorICAgIGNvbnN0IGNo YXIqIGNfc3RyKCkgY29uc3QgX0dMSUJDWFhfTk9FWENFUFQ7CiAgIH07CisjIGVuZGlmIC8v ICEgX0dMSUJDWFhfREVGSU5FX1NUREVYQ0VQVF9JTlNUQU5USUFUSU9OUwogCiAgIHR5cGVk ZWYgYmFzaWNfc3RyaW5nPGNoYXI+IF9fc3NvX3N0cmluZzsKICNlbHNlIC8vIF9HTElCQ1hY X1VTRV9DWFgxMV9BQkkKQEAgLTk1LDcgKzk5LDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQ QUNFX1ZFUlNJT04KICNlbmRpZgogICB9OwogI2VuZGlmIC8vIF9HTElCQ1hYX1VTRV9DWFgx MV9BQkkKLSNlbHNlICAvLyBfR0xJQkNYWF9VU0VfRFVBTF9BQkkKKyNlbHNlICAvLyAhIF9H TElCQ1hYX1VTRV9EVUFMX0FCSSAmJiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgdHlw ZWRlZiBiYXNpY19zdHJpbmc8Y2hhcj4gX19zc29fc3RyaW5nOwogICB0eXBlZGVmIGJhc2lj X3N0cmluZzxjaGFyPiBfX2Nvd19zdHJpbmc7CiAjZW5kaWYKQEAgLTEyNyw3ICsxMzEsNyBA QCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogICAgIGxvZ2ljX2Vycm9yJiBv cGVyYXRvcj0obG9naWNfZXJyb3ImJikgbm9leGNlcHQ7CiAjZW5kaWYKIAotI2lmIF9HTElC Q1hYX1VTRV9DWFgxMV9BQkkgfHwgX0dMSUJDWFhfREVGSU5FX1NUREVYQ0VQVF9DT1BZX09Q UworI2lmIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgfHwgX0dMSUJDWFhfREVGSU5FX1NUREVY Q0VQVF9JTlNUQU5USUFUSU9OUwogICAgIGxvZ2ljX2Vycm9yKGNvbnN0IGxvZ2ljX2Vycm9y JikgX0dMSUJDWFhfTk9USFJPVzsKICAgICBsb2dpY19lcnJvciYgb3BlcmF0b3I9KGNvbnN0 IGxvZ2ljX2Vycm9yJikgX0dMSUJDWFhfTk9USFJPVzsKICNlbGlmIF9fY3BsdXNwbHVzID49 IDIwMTEwM0wKQEAgLTIzMyw3ICsyMzcsNyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0Vf VkVSU0lPTgogICAgIHJ1bnRpbWVfZXJyb3ImIG9wZXJhdG9yPShydW50aW1lX2Vycm9yJiYp IG5vZXhjZXB0OwogI2VuZGlmCiAKLSNpZiBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIHx8IF9H TElCQ1hYX0RFRklORV9TVERFWENFUFRfQ09QWV9PUFMKKyNpZiBfR0xJQkNYWF9VU0VfQ1hY MTFfQUJJIHx8IF9HTElCQ1hYX0RFRklORV9TVERFWENFUFRfSU5TVEFOVElBVElPTlMKICAg ICBydW50aW1lX2Vycm9yKGNvbnN0IHJ1bnRpbWVfZXJyb3ImKSBfR0xJQkNYWF9OT1RIUk9X OwogICAgIHJ1bnRpbWVfZXJyb3ImIG9wZXJhdG9yPShjb25zdCBydW50aW1lX2Vycm9yJikg X0dMSUJDWFhfTk9USFJPVzsKICNlbGlmIF9fY3BsdXNwbHVzID49IDIwMTEwM0wKZGlmZiAt LWdpdCBhL2xpYnN0ZGMrKy12My9weXRob24vbGlic3RkY3h4L3Y2L3ByaW50ZXJzLnB5IGIv bGlic3RkYysrLXYzL3B5dGhvbi9saWJzdGRjeHgvdjYvcHJpbnRlcnMucHkKaW5kZXggYjRj NDI3ZDQ4N2MuLmE0M2JmMTA1MzA4IDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvcHl0aG9u L2xpYnN0ZGN4eC92Ni9wcmludGVycy5weQorKysgYi9saWJzdGRjKystdjMvcHl0aG9uL2xp YnN0ZGN4eC92Ni9wcmludGVycy5weQpAQCAtOTYzLDYgKzk2Myw4IEBAIGNsYXNzIFN0ZFN0 cmluZ1ByaW50ZXI6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHR5cGVuYW1lLCB2YWwpOgog ICAgICAgICBzZWxmLnZhbCA9IHZhbAogICAgICAgICBzZWxmLm5ld19zdHJpbmcgPSB0eXBl bmFtZS5maW5kKCI6Ol9fY3h4MTE6OmJhc2ljX3N0cmluZyIpICE9IC0xCisgICAgICAgIGlm IG5vdCBzZWxmLm5ld19zdHJpbmcgYW5kIF92ZXJzaW9uZWRfbmFtZXNwYWNlOgorICAgICAg ICAgICAgc2VsZi5uZXdfc3RyaW5nID0gdHlwZW5hbWUuZmluZCgiOjoiICsgX3ZlcnNpb25l ZF9uYW1lc3BhY2UgKyAiYmFzaWNfc3RyaW5nIikgIT0gLTEKIAogICAgIGRlZiB0b19zdHJp bmcoc2VsZik6CiAgICAgICAgICMgTWFrZSBzdXJlICZzdHJpbmcgd29ya3MsIHRvby4KZGlm ZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9zcmMvTWFrZWZpbGUuYW0gYi9saWJzdGRjKystdjMv c3JjL01ha2VmaWxlLmFtCmluZGV4IDViOWFmNDFjZGI5Li5lYzBjNTAyZWNiMSAxMDA2NDQK LS0tIGEvbGlic3RkYysrLXYzL3NyYy9NYWtlZmlsZS5hbQorKysgYi9saWJzdGRjKystdjMv c3JjL01ha2VmaWxlLmFtCkBAIC04OSw2ICs4OSw5IEBAIGVsc2UKIGxkYmxfY29tcGF0X3Nv dXJjZXMgPQogZW5kaWYKIAoraWYgRU5BQkxFX1NZTVZFUlNfR05VX05BTUVTUEFDRQorbGRi bF9hbHQxMjhfY29tcGF0X3NvdXJjZXMgPQorZWxzZQogaWYgR0xJQkNYWF9MREJMX0FMVDEy OF9DT01QQVQKIGlmIEVOQUJMRV9EVUFMX0FCSQogbGRibF9hbHQxMjhfY29tcGF0X2N4eDEx X3NvdXJjZXMgPSBcCkBAIC0xMDIsNiArMTA1LDcgQEAgbGRibF9hbHQxMjhfY29tcGF0X3Nv dXJjZXMgPSBcCiBlbHNlCiBsZGJsX2FsdDEyOF9jb21wYXRfc291cmNlcyA9CiBlbmRpZgor ZW5kaWYKIAogaWYgRU5BQkxFX1NZTVZFUlNfR05VX05BTUVTUEFDRQogY3h4MHhfY29tcGF0 X3NvdXJjZXMgPQpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3NyYy9NYWtlZmlsZS5pbiBi L2xpYnN0ZGMrKy12My9zcmMvTWFrZWZpbGUuaW4KaW5kZXggZjQyZDk1N2FmMzYuLmM5YzFi NjVkYjUyIDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvc3JjL01ha2VmaWxlLmluCisrKyBi L2xpYnN0ZGMrKy12My9zcmMvTWFrZWZpbGUuaW4KQEAgLTE1NywxMCArMTU3LDkgQEAgYW1f X29iamVjdHNfMiA9IGNvbXBhdGliaWxpdHkubG8gY29tcGF0aWJpbGl0eS1kZWJ1Z19saXN0 LmxvIFwKIEBFTkFCTEVfU1lNVkVSU19HTlVfTkFNRVNQQUNFX0ZBTFNFQAljb21wYXRpYmls aXR5LWNocm9uby5sbyBcCiBARU5BQkxFX1NZTVZFUlNfR05VX05BTUVTUEFDRV9GQUxTRUAJ Y29tcGF0aWJpbGl0eS1jb25kdmFyLmxvIFwKIEBFTkFCTEVfU1lNVkVSU19HTlVfTkFNRVNQ QUNFX0ZBTFNFQAljb21wYXRpYmlsaXR5LXRocmVhZC1jKysweC5sbwotQEVOQUJMRV9EVUFM X0FCSV9UUlVFQEBHTElCQ1hYX0xEQkxfQUxUMTI4X0NPTVBBVF9UUlVFQGFtX19vYmplY3Rz XzQgPSBjb21wYXRpYmlsaXR5LWxkYmwtYWx0MTI4LWN4eDExLmxvCi1AR0xJQkNYWF9MREJM X0FMVDEyOF9DT01QQVRfVFJVRUBhbV9fb2JqZWN0c181ID0gIFwKLUBHTElCQ1hYX0xEQkxf QUxUMTI4X0NPTVBBVF9UUlVFQAljb21wYXRpYmlsaXR5LWxkYmwtYWx0MTI4LmxvIFwKLUBH TElCQ1hYX0xEQkxfQUxUMTI4X0NPTVBBVF9UUlVFQAkkKGFtX19vYmplY3RzXzQpCitARU5B QkxFX0RVQUxfQUJJX1RSVUVAQEVOQUJMRV9TWU1WRVJTX0dOVV9OQU1FU1BBQ0VfRkFMU0VA QEdMSUJDWFhfTERCTF9BTFQxMjhfQ09NUEFUX1RSVUVAYW1fX29iamVjdHNfNCA9IGNvbXBh dGliaWxpdHktbGRibC1hbHQxMjgtY3h4MTEubG8KK0BFTkFCTEVfU1lNVkVSU19HTlVfTkFN RVNQQUNFX0ZBTFNFQEBHTElCQ1hYX0xEQkxfQUxUMTI4X0NPTVBBVF9UUlVFQGFtX19vYmpl Y3RzXzUgPSBjb21wYXRpYmlsaXR5LWxkYmwtYWx0MTI4LmxvIFwKK0BFTkFCTEVfU1lNVkVS U19HTlVfTkFNRVNQQUNFX0ZBTFNFQEBHTElCQ1hYX0xEQkxfQUxUMTI4X0NPTVBBVF9UUlVF QAkkKGFtX19vYmplY3RzXzQpCiBhbV9fb2JqZWN0c182ID0gJChhbV9fb2JqZWN0c18zKSAk KGFtX19vYmplY3RzXzUpCiBAR0xJQkNYWF9IT1NURURfVFJVRUBhbV9saWJzdGRjX19fbGFf T0JKRUNUUyA9ICQoYW1fX29iamVjdHNfMikgXAogQEdMSUJDWFhfSE9TVEVEX1RSVUVACSQo YW1fX29iamVjdHNfNikKQEAgLTUxMCwxNCArNTA5LDE1IEBAIFNVQkRJUlMgPSBjKys5OCBj KysxMSBjKysxNyBjKysyMCAkKGZpbGVzeXN0ZW1fZGlyKSAkKGJhY2t0cmFjZV9kaXIpICQo ZXhwZXJpbWVuCiAKIEBHTElCQ1hYX0xEQkxfQ09NUEFUX0ZBTFNFQGxkYmxfY29tcGF0X3Nv dXJjZXMgPSAKIEBHTElCQ1hYX0xEQkxfQ09NUEFUX1RSVUVAbGRibF9jb21wYXRfc291cmNl cyA9IGNvbXBhdGliaWxpdHktbGRibC5jYwotQEVOQUJMRV9EVUFMX0FCSV9GQUxTRUBAR0xJ QkNYWF9MREJMX0FMVDEyOF9DT01QQVRfVFJVRUBsZGJsX2FsdDEyOF9jb21wYXRfY3h4MTFf c291cmNlcyA9IAotQEVOQUJMRV9EVUFMX0FCSV9UUlVFQEBHTElCQ1hYX0xEQkxfQUxUMTI4 X0NPTVBBVF9UUlVFQGxkYmxfYWx0MTI4X2NvbXBhdF9jeHgxMV9zb3VyY2VzID0gXAotQEVO QUJMRV9EVUFMX0FCSV9UUlVFQEBHTElCQ1hYX0xEQkxfQUxUMTI4X0NPTVBBVF9UUlVFQAlj b21wYXRpYmlsaXR5LWxkYmwtYWx0MTI4LWN4eDExLmNjCi0KLUBHTElCQ1hYX0xEQkxfQUxU MTI4X0NPTVBBVF9GQUxTRUBsZGJsX2FsdDEyOF9jb21wYXRfc291cmNlcyA9IAotQEdMSUJD WFhfTERCTF9BTFQxMjhfQ09NUEFUX1RSVUVAbGRibF9hbHQxMjhfY29tcGF0X3NvdXJjZXMg PSBcCi1AR0xJQkNYWF9MREJMX0FMVDEyOF9DT01QQVRfVFJVRUAJY29tcGF0aWJpbGl0eS1s ZGJsLWFsdDEyOC5jYyBcCi1AR0xJQkNYWF9MREJMX0FMVDEyOF9DT01QQVRfVFJVRUAJJHts ZGJsX2FsdDEyOF9jb21wYXRfY3h4MTFfc291cmNlc30KK0BFTkFCTEVfU1lNVkVSU19HTlVf TkFNRVNQQUNFX0ZBTFNFQEBHTElCQ1hYX0xEQkxfQUxUMTI4X0NPTVBBVF9GQUxTRUBsZGJs X2FsdDEyOF9jb21wYXRfc291cmNlcyA9IAorQEVOQUJMRV9TWU1WRVJTX0dOVV9OQU1FU1BB Q0VfRkFMU0VAQEdMSUJDWFhfTERCTF9BTFQxMjhfQ09NUEFUX1RSVUVAbGRibF9hbHQxMjhf Y29tcGF0X3NvdXJjZXMgPSBcCitARU5BQkxFX1NZTVZFUlNfR05VX05BTUVTUEFDRV9GQUxT RUBAR0xJQkNYWF9MREJMX0FMVDEyOF9DT01QQVRfVFJVRUAJY29tcGF0aWJpbGl0eS1sZGJs LWFsdDEyOC5jYyBcCitARU5BQkxFX1NZTVZFUlNfR05VX05BTUVTUEFDRV9GQUxTRUBAR0xJ QkNYWF9MREJMX0FMVDEyOF9DT01QQVRfVFJVRUAJJHtsZGJsX2FsdDEyOF9jb21wYXRfY3h4 MTFfc291cmNlc30KKworQEVOQUJMRV9TWU1WRVJTX0dOVV9OQU1FU1BBQ0VfVFJVRUBsZGJs X2FsdDEyOF9jb21wYXRfc291cmNlcyA9IAorQEVOQUJMRV9EVUFMX0FCSV9GQUxTRUBARU5B QkxFX1NZTVZFUlNfR05VX05BTUVTUEFDRV9GQUxTRUBAR0xJQkNYWF9MREJMX0FMVDEyOF9D T01QQVRfVFJVRUBsZGJsX2FsdDEyOF9jb21wYXRfY3h4MTFfc291cmNlcyA9IAorQEVOQUJM RV9EVUFMX0FCSV9UUlVFQEBFTkFCTEVfU1lNVkVSU19HTlVfTkFNRVNQQUNFX0ZBTFNFQEBH TElCQ1hYX0xEQkxfQUxUMTI4X0NPTVBBVF9UUlVFQGxkYmxfYWx0MTI4X2NvbXBhdF9jeHgx MV9zb3VyY2VzID0gXAorQEVOQUJMRV9EVUFMX0FCSV9UUlVFQEBFTkFCTEVfU1lNVkVSU19H TlVfTkFNRVNQQUNFX0ZBTFNFQEBHTElCQ1hYX0xEQkxfQUxUMTI4X0NPTVBBVF9UUlVFQAlj b21wYXRpYmlsaXR5LWxkYmwtYWx0MTI4LWN4eDExLmNjCiAKIEBFTkFCTEVfU1lNVkVSU19H TlVfTkFNRVNQQUNFX0ZBTFNFQGN4eDB4X2NvbXBhdF9zb3VyY2VzID0gXAogQEVOQUJMRV9T WU1WRVJTX0dOVV9OQU1FU1BBQ0VfRkFMU0VACWNvbXBhdGliaWxpdHktYXRvbWljLWMrKzB4 LmNjIFwKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvTWFrZWZpbGUuYW0g Yi9saWJzdGRjKystdjMvc3JjL2MrKzExL01ha2VmaWxlLmFtCmluZGV4IDY4MmJlMTY2OWE0 Li44MjIyNzMzODc5OCAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS9NYWtl ZmlsZS5hbQorKysgYi9saWJzdGRjKystdjMvc3JjL2MrKzExL01ha2VmaWxlLmFtCkBAIC00 MCwxNSArNDAsMTEgQEAgY3R5cGVfbWVtYmVycy5jYzogJHtnbGliY3h4X3NyY2Rpcn0vJChD Q1RZUEVfQ0MpCiAJJChMTl9TKSAke2dsaWJjeHhfc3JjZGlyfS8kKENDVFlQRV9DQykgLiB8 fCB0cnVlCiAKIGlmIEVOQUJMRV9EVUFMX0FCSQotY3h4MTFfYWJpX3NvdXJjZXMgPSBcCi0J Y293LWxvY2FsZV9pbml0LmNjIFwKK2R1YWxfYWJpX3NvdXJjZXMgPSBcCiAJY293LXNoaW1f ZmFjZXRzLmNjIFwKLQljeHgxMS1oYXNoX3RyMS5jYyBcCi0JY3h4MTEtaW9zX2ZhaWx1cmUu Y2MgXAotCWN4eDExLXNoaW1fZmFjZXRzLmNjIFwKLQljeHgxMS1zdGRleGNlcHQuY2MKKwlj eHgxMS1zaGltX2ZhY2V0cy5jYwogZWxzZQotY3h4MTFfYWJpX3NvdXJjZXMgPQorZHVhbF9h Ymlfc291cmNlcyA9CiBlbmRpZgogCiBzb3VyY2VzX2ZyZWVzdGFuZGluZyA9IFwKQEAgLTU5 LDggKzU1LDEyIEBAIHNvdXJjZXMgPSBcCiAJY2hyb25vLmNjIFwKIAljb2RlY3Z0LmNjIFwK IAljb25kaXRpb25fdmFyaWFibGUuY2MgXAorCWNvdy1sb2NhbGVfaW5pdC5jYyBcCiAJY293 LXN0ZGV4Y2VwdC5jYyBcCiAJY3R5cGUuY2MgXAorCWN4eDExLWhhc2hfdHIxLmNjIFwKKwlj eHgxMS1pb3NfZmFpbHVyZS5jYyBcCisJY3h4MTEtc3RkZXhjZXB0LmNjIFwKIAlkZWJ1Zy5j YyBcCiAJZnVuY3RleGNlcHQuY2MgXAogCWZ1bmN0aW9uYWwuY2MgXApAQCAtNzcsMTkgKzc3 LDExIEBAIHNvdXJjZXMgPSBcCiAJc25wcmludGZfbGl0ZS5jYyBcCiAJc3lzdGVtX2Vycm9y LmNjIFwKIAl0aHJlYWQuY2MgXAotCSR7Y3h4MTFfYWJpX3NvdXJjZXN9IFwKKwkke2R1YWxf YWJpX3NvdXJjZXN9IFwKIAkke2hvc3Rfc291cmNlc30KIAogaWYgRU5BQkxFX0RVQUxfQUJJ CiBleHRyYV9zdHJpbmdfaW5zdF9zb3VyY2VzID0gXAotCWNvdy1mc3RyZWFtLWluc3QuY2Mg XAotCWNvdy1zc3RyZWFtLWluc3QuY2MgXAotCWNvdy1zdHJpbmctaW5zdC5jYyBcCi0JY293 LXN0cmluZy1pby1pbnN0LmNjIFwKLQljb3ctd3N0cmluZy1pbnN0LmNjIFwKLQljb3ctd3N0 cmluZy1pby1pbnN0LmNjIFwKLQljeHgxMS1sb2NhbGUtaW5zdC5jYyBcCi0JY3h4MTEtd2xv Y2FsZS1pbnN0LmNjIFwKIAlzc29fc3RyaW5nLmNjCiBlbHNlCiBleHRyYV9zdHJpbmdfaW5z dF9zb3VyY2VzID0KQEAgLTk5LDYgKzkxLDE0IEBAIGlmIEVOQUJMRV9FWFRFUk5fVEVNUExB VEUKICMgWFRFTVBMQVRFX0ZMQUdTID0gLWZuby1pbXBsaWNpdC10ZW1wbGF0ZXMKIGluc3Rf c291cmNlcyA9IFwKIAkkKGV4dHJhX3N0cmluZ19pbnN0X3NvdXJjZXMpIFwKKwljb3ctZnN0 cmVhbS1pbnN0LmNjIFwKKwljb3ctc3N0cmVhbS1pbnN0LmNjIFwKKwljb3ctc3RyaW5nLWlu c3QuY2MgXAorCWNvdy1zdHJpbmctaW8taW5zdC5jYyBcCisJY293LXdzdHJpbmctaW5zdC5j YyBcCisJY293LXdzdHJpbmctaW8taW5zdC5jYyBcCisJY3h4MTEtbG9jYWxlLWluc3QuY2Mg XAorCWN4eDExLXdsb2NhbGUtaW5zdC5jYyBcCiAJZXh0MTEtaW5zdC5jYyBcCiAJZnN0cmVh bS1pbnN0LmNjIFwKIAlpb3MtaW5zdC5jYyBcCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMv c3JjL2MrKzExL01ha2VmaWxlLmluIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9NYWtlZmls ZS5pbgppbmRleCBlN2EwOWZlMzI0Ni4uMmQ5NDQyNTQ4MGIgMTAwNjQ0Ci0tLSBhL2xpYnN0 ZGMrKy12My9zcmMvYysrMTEvTWFrZWZpbGUuaW4KKysrIGIvbGlic3RkYysrLXYzL3NyYy9j KysxMS9NYWtlZmlsZS5pbgpAQCAtMTIyLDI1ICsxMjIsMjYgQEAgQ09ORklHX0NMRUFOX1ZQ QVRIX0ZJTEVTID0KIExUTElCUkFSSUVTID0gJChub2luc3RfTFRMSUJSQVJJRVMpCiBsaWJj X18xMWNvbnZlbmllbmNlX2xhX0xJQkFERCA9CiBhbV9fb2JqZWN0c18xID0gbGltaXRzLmxv IHBsYWNlaG9sZGVycy5sbwotQEVOQUJMRV9EVUFMX0FCSV9UUlVFQGFtX19vYmplY3RzXzIg PSBjb3ctbG9jYWxlX2luaXQubG8gXAotQEVOQUJMRV9EVUFMX0FCSV9UUlVFQAljb3ctc2hp bV9mYWNldHMubG8gY3h4MTEtaGFzaF90cjEubG8gXAotQEVOQUJMRV9EVUFMX0FCSV9UUlVF QAljeHgxMS1pb3NfZmFpbHVyZS5sbyBcCi1ARU5BQkxFX0RVQUxfQUJJX1RSVUVACWN4eDEx LXNoaW1fZmFjZXRzLmxvIGN4eDExLXN0ZGV4Y2VwdC5sbworQEVOQUJMRV9EVUFMX0FCSV9U UlVFQGFtX19vYmplY3RzXzIgPSBjb3ctc2hpbV9mYWNldHMubG8gXAorQEVOQUJMRV9EVUFM X0FCSV9UUlVFQAljeHgxMS1zaGltX2ZhY2V0cy5sbwogYW1fX29iamVjdHNfMyA9IGN0eXBl X2NvbmZpZ3VyZV9jaGFyLmxvIGN0eXBlX21lbWJlcnMubG8KIGFtX19vYmplY3RzXzQgPSBj aHJvbm8ubG8gY29kZWN2dC5sbyBjb25kaXRpb25fdmFyaWFibGUubG8gXAotCWNvdy1zdGRl eGNlcHQubG8gY3R5cGUubG8gZGVidWcubG8gZnVuY3RleGNlcHQubG8gXAotCWZ1bmN0aW9u YWwubG8gZnV0ZXgubG8gZnV0dXJlLmxvIGhhc2hfYysrMHgubG8gXAorCWNvdy1sb2NhbGVf aW5pdC5sbyBjb3ctc3RkZXhjZXB0LmxvIGN0eXBlLmxvIGN4eDExLWhhc2hfdHIxLmxvIFwK KwljeHgxMS1pb3NfZmFpbHVyZS5sbyBjeHgxMS1zdGRleGNlcHQubG8gZGVidWcubG8gXAor CWZ1bmN0ZXhjZXB0LmxvIGZ1bmN0aW9uYWwubG8gZnV0ZXgubG8gZnV0dXJlLmxvIGhhc2hf YysrMHgubG8gXAogCWhhc2h0YWJsZV9jKysweC5sbyBpb3MubG8gaW9zX2VycmNhdC5sbyBt dXRleC5sbyByYW5kb20ubG8gXAogCXJlZ2V4LmxvIHNoYXJlZF9wdHIubG8gc25wcmludGZf bGl0ZS5sbyBzeXN0ZW1fZXJyb3IubG8gXAogCXRocmVhZC5sbyAkKGFtX19vYmplY3RzXzIp ICQoYW1fX29iamVjdHNfMykKLUBFTkFCTEVfRFVBTF9BQklfVFJVRUBhbV9fb2JqZWN0c181 ID0gY293LWZzdHJlYW0taW5zdC5sbyBcCi1ARU5BQkxFX0RVQUxfQUJJX1RSVUVACWNvdy1z c3RyZWFtLWluc3QubG8gY293LXN0cmluZy1pbnN0LmxvIFwKLUBFTkFCTEVfRFVBTF9BQklf VFJVRUAJY293LXN0cmluZy1pby1pbnN0LmxvIFwKLUBFTkFCTEVfRFVBTF9BQklfVFJVRUAJ Y293LXdzdHJpbmctaW5zdC5sbyBcCi1ARU5BQkxFX0RVQUxfQUJJX1RSVUVACWNvdy13c3Ry aW5nLWlvLWluc3QubG8gXAotQEVOQUJMRV9EVUFMX0FCSV9UUlVFQAljeHgxMS1sb2NhbGUt aW5zdC5sbyBcCi1ARU5BQkxFX0RVQUxfQUJJX1RSVUVACWN4eDExLXdsb2NhbGUtaW5zdC5s byBzc29fc3RyaW5nLmxvCitARU5BQkxFX0RVQUxfQUJJX1RSVUVAYW1fX29iamVjdHNfNSA9 IHNzb19zdHJpbmcubG8KIEBFTkFCTEVfRVhURVJOX1RFTVBMQVRFX1RSVUVAYW1fX29iamVj dHNfNiA9ICQoYW1fX29iamVjdHNfNSkgXAorQEVOQUJMRV9FWFRFUk5fVEVNUExBVEVfVFJV RUAJY293LWZzdHJlYW0taW5zdC5sbyBcCitARU5BQkxFX0VYVEVSTl9URU1QTEFURV9UUlVF QAljb3ctc3N0cmVhbS1pbnN0LmxvIFwKK0BFTkFCTEVfRVhURVJOX1RFTVBMQVRFX1RSVUVA CWNvdy1zdHJpbmctaW5zdC5sbyBcCitARU5BQkxFX0VYVEVSTl9URU1QTEFURV9UUlVFQAlj b3ctc3RyaW5nLWlvLWluc3QubG8gXAorQEVOQUJMRV9FWFRFUk5fVEVNUExBVEVfVFJVRUAJ Y293LXdzdHJpbmctaW5zdC5sbyBcCitARU5BQkxFX0VYVEVSTl9URU1QTEFURV9UUlVFQAlj b3ctd3N0cmluZy1pby1pbnN0LmxvIFwKK0BFTkFCTEVfRVhURVJOX1RFTVBMQVRFX1RSVUVA CWN4eDExLWxvY2FsZS1pbnN0LmxvIFwKK0BFTkFCTEVfRVhURVJOX1RFTVBMQVRFX1RSVUVA CWN4eDExLXdsb2NhbGUtaW5zdC5sbyBcCiBARU5BQkxFX0VYVEVSTl9URU1QTEFURV9UUlVF QAlleHQxMS1pbnN0LmxvIGZzdHJlYW0taW5zdC5sbyBcCiBARU5BQkxFX0VYVEVSTl9URU1Q TEFURV9UUlVFQAlpb3MtaW5zdC5sbyBpb3N0cmVhbS1pbnN0LmxvIFwKIEBFTkFCTEVfRVhU RVJOX1RFTVBMQVRFX1RSVUVACWlzdHJlYW0taW5zdC5sbyBsb2NhbGUtaW5zdC5sbyBcCkBA IC00NjEsMTQgKzQ2MiwxMCBAQCBob3N0X3NvdXJjZXMgPSBcCiAJY3R5cGVfY29uZmlndXJl X2NoYXIuY2MgXAogCWN0eXBlX21lbWJlcnMuY2MKIAotQEVOQUJMRV9EVUFMX0FCSV9GQUxT RUBjeHgxMV9hYmlfc291cmNlcyA9IAotQEVOQUJMRV9EVUFMX0FCSV9UUlVFQGN4eDExX2Fi aV9zb3VyY2VzID0gXAotQEVOQUJMRV9EVUFMX0FCSV9UUlVFQAljb3ctbG9jYWxlX2luaXQu Y2MgXAorQEVOQUJMRV9EVUFMX0FCSV9GQUxTRUBkdWFsX2FiaV9zb3VyY2VzID0gCitARU5B QkxFX0RVQUxfQUJJX1RSVUVAZHVhbF9hYmlfc291cmNlcyA9IFwKIEBFTkFCTEVfRFVBTF9B QklfVFJVRUAJY293LXNoaW1fZmFjZXRzLmNjIFwKLUBFTkFCTEVfRFVBTF9BQklfVFJVRUAJ Y3h4MTEtaGFzaF90cjEuY2MgXAotQEVOQUJMRV9EVUFMX0FCSV9UUlVFQAljeHgxMS1pb3Nf ZmFpbHVyZS5jYyBcCi1ARU5BQkxFX0RVQUxfQUJJX1RSVUVACWN4eDExLXNoaW1fZmFjZXRz LmNjIFwKLUBFTkFCTEVfRFVBTF9BQklfVFJVRUAJY3h4MTEtc3RkZXhjZXB0LmNjCitARU5B QkxFX0RVQUxfQUJJX1RSVUVACWN4eDExLXNoaW1fZmFjZXRzLmNjCiAKIHNvdXJjZXNfZnJl ZXN0YW5kaW5nID0gXAogCWxpbWl0cy5jYyBcCkBAIC00NzgsOCArNDc1LDEyIEBAIHNvdXJj ZXMgPSBcCiAJY2hyb25vLmNjIFwKIAljb2RlY3Z0LmNjIFwKIAljb25kaXRpb25fdmFyaWFi bGUuY2MgXAorCWNvdy1sb2NhbGVfaW5pdC5jYyBcCiAJY293LXN0ZGV4Y2VwdC5jYyBcCiAJ Y3R5cGUuY2MgXAorCWN4eDExLWhhc2hfdHIxLmNjIFwKKwljeHgxMS1pb3NfZmFpbHVyZS5j YyBcCisJY3h4MTEtc3RkZXhjZXB0LmNjIFwKIAlkZWJ1Zy5jYyBcCiAJZnVuY3RleGNlcHQu Y2MgXAogCWZ1bmN0aW9uYWwuY2MgXApAQCAtNDk2LDE5ICs0OTcsMTEgQEAgc291cmNlcyA9 IFwKIAlzbnByaW50Zl9saXRlLmNjIFwKIAlzeXN0ZW1fZXJyb3IuY2MgXAogCXRocmVhZC5j YyBcCi0JJHtjeHgxMV9hYmlfc291cmNlc30gXAorCSR7ZHVhbF9hYmlfc291cmNlc30gXAog CSR7aG9zdF9zb3VyY2VzfQogCiBARU5BQkxFX0RVQUxfQUJJX0ZBTFNFQGV4dHJhX3N0cmlu Z19pbnN0X3NvdXJjZXMgPSAKIEBFTkFCTEVfRFVBTF9BQklfVFJVRUBleHRyYV9zdHJpbmdf aW5zdF9zb3VyY2VzID0gXAotQEVOQUJMRV9EVUFMX0FCSV9UUlVFQAljb3ctZnN0cmVhbS1p bnN0LmNjIFwKLUBFTkFCTEVfRFVBTF9BQklfVFJVRUAJY293LXNzdHJlYW0taW5zdC5jYyBc Ci1ARU5BQkxFX0RVQUxfQUJJX1RSVUVACWNvdy1zdHJpbmctaW5zdC5jYyBcCi1ARU5BQkxF X0RVQUxfQUJJX1RSVUVACWNvdy1zdHJpbmctaW8taW5zdC5jYyBcCi1ARU5BQkxFX0RVQUxf QUJJX1RSVUVACWNvdy13c3RyaW5nLWluc3QuY2MgXAotQEVOQUJMRV9EVUFMX0FCSV9UUlVF QAljb3ctd3N0cmluZy1pby1pbnN0LmNjIFwKLUBFTkFCTEVfRFVBTF9BQklfVFJVRUAJY3h4 MTEtbG9jYWxlLWluc3QuY2MgXAotQEVOQUJMRV9EVUFMX0FCSV9UUlVFQAljeHgxMS13bG9j YWxlLWluc3QuY2MgXAogQEVOQUJMRV9EVUFMX0FCSV9UUlVFQAlzc29fc3RyaW5nLmNjCiAK ICMgWFRFTVBMQVRFX0ZMQUdTID0KQEAgLTUxNyw2ICs1MTAsMTQgQEAgc291cmNlcyA9IFwK ICMgWFRFTVBMQVRFX0ZMQUdTID0gLWZuby1pbXBsaWNpdC10ZW1wbGF0ZXMKIEBFTkFCTEVf RVhURVJOX1RFTVBMQVRFX1RSVUVAaW5zdF9zb3VyY2VzID0gXAogQEVOQUJMRV9FWFRFUk5f VEVNUExBVEVfVFJVRUAJJChleHRyYV9zdHJpbmdfaW5zdF9zb3VyY2VzKSBcCitARU5BQkxF X0VYVEVSTl9URU1QTEFURV9UUlVFQAljb3ctZnN0cmVhbS1pbnN0LmNjIFwKK0BFTkFCTEVf RVhURVJOX1RFTVBMQVRFX1RSVUVACWNvdy1zc3RyZWFtLWluc3QuY2MgXAorQEVOQUJMRV9F WFRFUk5fVEVNUExBVEVfVFJVRUAJY293LXN0cmluZy1pbnN0LmNjIFwKK0BFTkFCTEVfRVhU RVJOX1RFTVBMQVRFX1RSVUVACWNvdy1zdHJpbmctaW8taW5zdC5jYyBcCitARU5BQkxFX0VY VEVSTl9URU1QTEFURV9UUlVFQAljb3ctd3N0cmluZy1pbnN0LmNjIFwKK0BFTkFCTEVfRVhU RVJOX1RFTVBMQVRFX1RSVUVACWNvdy13c3RyaW5nLWlvLWluc3QuY2MgXAorQEVOQUJMRV9F WFRFUk5fVEVNUExBVEVfVFJVRUAJY3h4MTEtbG9jYWxlLWluc3QuY2MgXAorQEVOQUJMRV9F WFRFUk5fVEVNUExBVEVfVFJVRUAJY3h4MTEtd2xvY2FsZS1pbnN0LmNjIFwKIEBFTkFCTEVf RVhURVJOX1RFTVBMQVRFX1RSVUVACWV4dDExLWluc3QuY2MgXAogQEVOQUJMRV9FWFRFUk5f VEVNUExBVEVfVFJVRUAJZnN0cmVhbS1pbnN0LmNjIFwKIEBFTkFCTEVfRVhURVJOX1RFTVBM QVRFX1RSVUVACWlvcy1pbnN0LmNjIFwKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9zcmMv YysrMTEvY293LWZzdHJlYW0taW5zdC5jYyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY293 LWZzdHJlYW0taW5zdC5jYwppbmRleCAwNTYyYmM2YzljYi4uODE1MzM4N2RhZWEgMTAwNjQ0 Ci0tLSBhL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY293LWZzdHJlYW0taW5zdC5jYworKysg Yi9saWJzdGRjKystdjMvc3JjL2MrKzExL2Nvdy1mc3RyZWFtLWluc3QuY2MKQEAgLTI5LDEw ICsyOSw3IEBACiAjZGVmaW5lIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgMAogI2luY2x1ZGUg PGZzdHJlYW0+CiAKLSNpZiAhIF9HTElCQ1hYX1VTRV9EVUFMX0FCSQotIyBlcnJvciBUaGlz IGZpbGUgc2hvdWxkIG5vdCBiZSBjb21waWxlZCBmb3IgdGhpcyBjb25maWd1cmF0aW9uLgot I2VuZGlmCi0KKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKIG5hbWVzcGFjZSBzdGQg X0dMSUJDWFhfVklTSUJJTElUWShkZWZhdWx0KQogewogX0dMSUJDWFhfQkVHSU5fTkFNRVNQ QUNFX1ZFUlNJT04KQEAgLTc2LDMgKzczLDQgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNF X1ZFUlNJT04KIAogX0dMSUJDWFhfRU5EX05BTUVTUEFDRV9WRVJTSU9OCiB9IC8vIG5hbWVz cGFjZQorI2VuZGlmCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvc3JjL2MrKzExL2Nvdy1s b2NhbGVfaW5pdC5jYyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY293LWxvY2FsZV9pbml0 LmNjCmluZGV4IDg1Mjc3NzYzNDI3Li42ODMzZjkwM2Y0NyAxMDA2NDQKLS0tIGEvbGlic3Rk YysrLXYzL3NyYy9jKysxMS9jb3ctbG9jYWxlX2luaXQuY2MKKysrIGIvbGlic3RkYysrLXYz L3NyYy9jKysxMS9jb3ctbG9jYWxlX2luaXQuY2MKQEAgLTI0LDEwICsyNCw3IEBACiAjZGVm aW5lIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgMAogI2luY2x1ZGUgPGxvY2FsZT4KIAotI2lm ICEgX0dMSUJDWFhfVVNFX0RVQUxfQUJJCi0jIGVycm9yIFRoaXMgZmlsZSBzaG91bGQgbm90 IGJlIGNvbXBpbGVkIGZvciB0aGlzIGNvbmZpZ3VyYXRpb24uCi0jZW5kaWYKLQorI2lmICEg X0dMSUJDWFhfVVNFX0NYWDExX0FCSQogbmFtZXNwYWNlIHN0ZCBfR0xJQkNYWF9WSVNJQklM SVRZKGRlZmF1bHQpCiB7CiBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgpAQCAt MTY1LDYgKzE2Miw3IEBAIG5hbWVzcGFjZQogI2VuZGlmCiAgIH0KIAorI2lmIF9HTElCQ1hY X1VTRV9EVUFMX0FCSQogLy8gVE9ETyBzaG91bGQgYmUgaW4gYW5vdGhlciBmaWxlCiAgIHN0 cmluZwogICBsb2NhbGU6Om5hbWUoKSBjb25zdApAQCAtMTkwLDYgKzE4OCw4IEBAIG5hbWVz cGFjZQogICAgICAgfQogICAgIHJldHVybiBfX3JldDsKICAgfQorI2VuZGlmCiAKIF9HTElC Q1hYX0VORF9OQU1FU1BBQ0VfVkVSU0lPTgogfQorI2VuZGlmIC8vICEgX0dMSUJDWFhfVVNF X0NYWDExX0FCSQpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jb3ctc3N0 cmVhbS1pbnN0LmNjIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jb3ctc3N0cmVhbS1pbnN0 LmNjCmluZGV4IDAzNWEyNjdkOWQ4Li43Njk5MTcwZDEzZCAxMDA2NDQKLS0tIGEvbGlic3Rk YysrLXYzL3NyYy9jKysxMS9jb3ctc3N0cmVhbS1pbnN0LmNjCisrKyBiL2xpYnN0ZGMrKy12 My9zcmMvYysrMTEvY293LXNzdHJlYW0taW5zdC5jYwpAQCAtMjcsOCArMjcsOCBAQAogLy8K IAogI2RlZmluZSBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIDAKLSNpbmNsdWRlICJzc3RyZWFt LWluc3QuY2MiCisjaW5jbHVkZSA8Yml0cy9jKytjb25maWcuaD4KIAotI2lmICEgX0dMSUJD WFhfVVNFX0RVQUxfQUJJCi0jIGVycm9yIFRoaXMgZmlsZSBzaG91bGQgbm90IGJlIGNvbXBp bGVkIGZvciB0aGlzIGNvbmZpZ3VyYXRpb24uCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFf QUJJCisjIGluY2x1ZGUgInNzdHJlYW0taW5zdC5jYyIKICNlbmRpZgpkaWZmIC0tZ2l0IGEv bGlic3RkYysrLXYzL3NyYy9jKysxMS9jb3ctc3RkZXhjZXB0LmNjIGIvbGlic3RkYysrLXYz L3NyYy9jKysxMS9jb3ctc3RkZXhjZXB0LmNjCmluZGV4IDhkMWNjNDYwNWQ0Li44ZDVlZWM4 MTRkMiAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jb3ctc3RkZXhjZXB0 LmNjCisrKyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY293LXN0ZGV4Y2VwdC5jYwpAQCAt NDMsMTEgKzQzLDUzIEBAIF90eG5hbF9ydW50aW1lX2Vycm9yX2dldF9tc2codm9pZCogZSk7 CiAKIC8vIEFsbCBleGNlcHRpb24gY2xhc3NlcyBzdGlsbCB1c2UgdGhlIGNsYXNzaWMgQ09X IHN0ZDo6c3RyaW5nLgogI2RlZmluZSBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIDAKLSNkZWZp bmUgX0dMSUJDWFhfREVGSU5FX1NUREVYQ0VQVF9DT1BZX09QUyAxCi0jZGVmaW5lIF9fY293 X3N0cmluZyBfX2Nvd19zdHJpbmd4eHgKKyNpbmNsdWRlIDxzdHJpbmc+CisKKyNpZiBfR0xJ QkNYWF9VU0VfQ1hYMTFfQUJJCisjIGluY2x1ZGUgPGJpdHMvY293X3N0cmluZy5oPgorI2Vu ZGlmCisKKyNpZiBfR0xJQkNYWF9VU0VfRFVBTF9BQkkgfHwgX0dMSUJDWFhfVVNFX0NYWDEx X0FCSQorCituYW1lc3BhY2Ugc3RkIF9HTElCQ1hYX1ZJU0lCSUxJVFkoZGVmYXVsdCkKK3sK K19HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCisKKyNpZiAhIF9HTElCQ1hYX1VT RV9DWFgxMV9BQkkKKyAgdHlwZWRlZiBzdGQ6OnN0cmluZyBjb3dzdHI7CisjZWxzZQorICB0 eXBlZGVmIHN0ZDo6X19zdGRfY293X3N0cmluZzxjaGFyLCBzdGQ6OmNoYXJfdHJhaXRzPGNo YXI+LAorCQkJCXN0ZDo6YWxsb2NhdG9yPGNoYXI+PiBjb3dzdHI7CisjZW5kaWYKKworICAv LyBSZWRlZmluZSBfX2Nvd19zdHJpbmcgc28gdGhhdCB3ZSBjYW4gZGVmaW5lIGFuZCBleHBv cnQgaXRzIG1lbWJlcnMKKyAgLy8gaW4gdGVybXMgb2YgdGhlIENPVyBzdGQ6OnN0cmluZy4K KyAgc3RydWN0IF9fY293X3N0cmluZworICB7CisgICAgdW5pb24geworICAgICAgY29uc3Qg Y2hhciogX01fcDsKKyAgICAgIGNoYXIgX01fYnl0ZXNbc2l6ZW9mKF9NX3ApXTsKKyAgICAg IGNvd3N0ciBfTV9zdHI7CisgICAgfTsKKworICAgIF9fY293X3N0cmluZygpOworICAgIF9f Y293X3N0cmluZyhjb25zdCBzdGQ6OnN0cmluZyYgcyk7CisgICAgX19jb3dfc3RyaW5nKGNv bnN0IGNoYXIqKTsKKyAgICBfX2Nvd19zdHJpbmcoY29uc3QgY2hhciosIHNpemVfdCk7Cisg ICAgX19jb3dfc3RyaW5nKGNvbnN0IF9fY293X3N0cmluZyYpIG5vZXhjZXB0OworICAgIF9f Y293X3N0cmluZyYgb3BlcmF0b3I9KGNvbnN0IF9fY293X3N0cmluZyYpIG5vZXhjZXB0Owor ICAgIH5fX2Nvd19zdHJpbmcoKTsKKyAgICBfX2Nvd19zdHJpbmcoX19jb3dfc3RyaW5nJiYp IG5vZXhjZXB0OworICAgIF9fY293X3N0cmluZyYgb3BlcmF0b3I9KF9fY293X3N0cmluZyYm KSBub2V4Y2VwdDsKKyAgICBjb25zdCBjaGFyKiBjX3N0cigpIGNvbnN0IG5vZXhjZXB0Owor ICB9OworX0dMSUJDWFhfRU5EX05BTUVTUEFDRV9WRVJTSU9OCit9CisjZW5kaWYKKworI2Rl ZmluZSBfR0xJQkNYWF9ERUZJTkVfU1RERVhDRVBUX0lOU1RBTlRJQVRJT05TIDEKICNpbmNs dWRlIDxzdGRleGNlcHQ+CiAjaW5jbHVkZSA8c3lzdGVtX2Vycm9yPgotI3VuZGVmIF9fY293 X3N0cmluZwogCiBuYW1lc3BhY2Ugc3RkIF9HTElCQ1hYX1ZJU0lCSUxJVFkoZGVmYXVsdCkK IHsKQEAgLTExNCwzMCArMTU2LDE3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJT SU9OCiAgIC8vIENvbnZlcnRpbmcgY29uc3RydWN0b3IgZnJvbSBDT1cgc3RkOjpzdHJpbmcg dG8gU1NPIHN0cmluZy4KICAgX19zc29fc3RyaW5nOjpfX3Nzb19zdHJpbmcoY29uc3Qgc3Ry aW5nJiBzKQogICA6IF9fc3NvX3N0cmluZyhzLmNfc3RyKCksIHMubGVuZ3RoKCkpIHsgfQor I2VuZGlmCiAKLSAgLy8gUmVkZWZpbmUgX19jb3dfc3RyaW5nIHNvIHRoYXQgd2UgY2FuIGRl ZmluZSBhbmQgZXhwb3J0IGl0cyBtZW1iZXJzCi0gIC8vIGluIHRlcm1zIG9mIHRoZSBDT1cg c3RkOjpzdHJpbmcuCi0gIHN0cnVjdCBfX2Nvd19zdHJpbmcKLSAgewotICAgIHVuaW9uIHsK LSAgICAgIGNvbnN0IGNoYXIqIF9NX3A7Ci0gICAgICBjaGFyIF9NX2J5dGVzW3NpemVvZihf TV9wKV07Ci0gICAgICBzdGQ6OnN0cmluZyBfTV9zdHI7Ci0gICAgfTsKLQotICAgIF9fY293 X3N0cmluZygpOwotICAgIF9fY293X3N0cmluZyhjb25zdCBzdGQ6OnN0cmluZyYgcyk7Ci0g ICAgX19jb3dfc3RyaW5nKGNvbnN0IGNoYXIqLCBzaXplX3Qgbik7Ci0gICAgX19jb3dfc3Ry aW5nKGNvbnN0IF9fY293X3N0cmluZyYpIG5vZXhjZXB0OwotICAgIF9fY293X3N0cmluZyYg b3BlcmF0b3I9KGNvbnN0IF9fY293X3N0cmluZyYpIG5vZXhjZXB0OwotICAgIH5fX2Nvd19z dHJpbmcoKTsKLSAgICBfX2Nvd19zdHJpbmcoX19jb3dfc3RyaW5nJiYpIG5vZXhjZXB0Owot ICAgIF9fY293X3N0cmluZyYgb3BlcmF0b3I9KF9fY293X3N0cmluZyYmKSBub2V4Y2VwdDsK LSAgfTsKKyNpZiBfR0xJQkNYWF9VU0VfRFVBTF9BQkkgfHwgX0dMSUJDWFhfVVNFX0NYWDEx X0FCSQogCiAgIF9fY293X3N0cmluZzo6X19jb3dfc3RyaW5nKCkgOiBfTV9zdHIoKSB7IH0K IAorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQogICBfX2Nvd19zdHJpbmc6Ol9fY293 X3N0cmluZyhjb25zdCBzdGQ6OnN0cmluZyYgcykgOiBfTV9zdHIocykgeyB9CisjZW5kaWYK KworICBfX2Nvd19zdHJpbmc6Ol9fY293X3N0cmluZyhjb25zdCBjaGFyKiBzKSA6IF9NX3N0 cihzKSB7IH0KIAogICBfX2Nvd19zdHJpbmc6Ol9fY293X3N0cmluZyhjb25zdCBjaGFyKiBz LCBzaXplX3QgbikgOiBfTV9zdHIocywgbikgeyB9CiAKQEAgLTE1MSw3ICsxODAsNyBAQCBf R0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogICAgIHJldHVybiAqdGhpczsKICAg fQogCi0gIF9fY293X3N0cmluZzo6fl9fY293X3N0cmluZygpIHsgX01fc3RyLn5iYXNpY19z dHJpbmcoKTsgfQorICBfX2Nvd19zdHJpbmc6On5fX2Nvd19zdHJpbmcoKSB7IF9NX3N0ci5+ Y293c3RyKCk7IH0KIAogICBfX2Nvd19zdHJpbmc6Ol9fY293X3N0cmluZyhfX2Nvd19zdHJp bmcmJiBzKSBub2V4Y2VwdAogICA6IF9NX3N0cihzdGQ6Om1vdmUocy5fTV9zdHIpKSB7IH0K QEAgLTE2MywxMiArMTkyLDE3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9O CiAgICAgcmV0dXJuICp0aGlzOwogICB9CiAKLSAgc3RhdGljX2Fzc2VydChzaXplb2YoX19j b3dfc3RyaW5nKSA9PSBzaXplb2Yoc3RkOjpzdHJpbmcpLAorICBjb25zdCBjaGFyKgorICBf X2Nvd19zdHJpbmc6OmNfc3RyKCkgY29uc3Qgbm9leGNlcHQKKyAgeyByZXR1cm4gX01fc3Ry LmNfc3RyKCk7IH0KKworICBzdGF0aWNfYXNzZXJ0KHNpemVvZihfX2Nvd19zdHJpbmcpID09 IHNpemVvZihjb3dzdHIpLAogICAgICAgICAgICAgICAgICJzaXplb2Yoc3RkOjpzdHJpbmcp IGhhcyBjaGFuZ2VkIik7Ci0gIHN0YXRpY19hc3NlcnQoYWxpZ25vZihfX2Nvd19zdHJpbmcp ID09IGFsaWdub2Yoc3RkOjpzdHJpbmcpLAorICBzdGF0aWNfYXNzZXJ0KGFsaWdub2YoX19j b3dfc3RyaW5nKSA9PSBhbGlnbm9mKGNvd3N0ciksCiAgICAgICAgICAgICAgICAgImFsaWdu b2Yoc3RkOjpzdHJpbmcpIGhhcyBjaGFuZ2VkIik7Ci0jZW5kaWYKKyNlbmRpZiAvLyBfR0xJ QkNYWF9VU0VfRFVBTF9BQkkgfHwgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQogCisjaWYgISBf R0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAgIC8vIFJldHVybiBlcnJvcl9jYXRlZ29yeTo6bWVz c2FnZSgpIGFzIGFuIFNTTyBzdHJpbmcKICAgX19zc29fc3RyaW5nCiAgIGVycm9yX2NhdGVn b3J5OjpfTV9tZXNzYWdlKGludCBpKSBjb25zdApAQCAtMTc2LDEwICsyMTAsMTIgQEAgX0dM SUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICBzdHJpbmcgbXNnID0gdGhpcy0+ bWVzc2FnZShpKTsKICAgICByZXR1cm4ge21zZy5jX3N0cigpLCBtc2cubGVuZ3RoKCl9Owog ICB9CisjZW5kaWYKIAogX0dMSUJDWFhfRU5EX05BTUVTUEFDRV9WRVJTSU9OCiB9IC8vIG5h bWVzcGFjZQogCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAvLyBTdXBwb3J0IGZv ciB0aGUgVHJhbnNhY3Rpb25hbCBNZW1vcnkgVFMgKE40NTE0KS4KIC8vCiAvLyBsb2dpY19l cnJvciBhbmQgcnVudGltZV9lcnJvciBib3RoIGNhcnJ5IGEgbWVzc2FnZSBpbiB0aGUgZm9y bSBvZiBhIENPVwpAQCAtNDYzLDMgKzQ5OSw0IEBAIENUT1JEVE9SKDE1dW5kZXJmbG93X2Vy cm9yLCBzdGQ6OnVuZGVyZmxvd19lcnJvciwgcnVudGltZV9lcnJvcikKIAogI2VuZGlmICAv LyBfR0xJQkNYWF9VU0VfQzk5X1NURElOVAogI2VuZGlmICAvLyBfR0xJQkNYWF9VU0VfV0VB S19SRUYKKyNlbmRpZiAgLy8gISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCmRpZmYgLS1naXQg YS9saWJzdGRjKystdjMvc3JjL2MrKzExL2Nvdy1zdHJpbmctaW5zdC5jYyBiL2xpYnN0ZGMr Ky12My9zcmMvYysrMTEvY293LXN0cmluZy1pbnN0LmNjCmluZGV4IDVhMmI4ZmZhNTY4Li41 N2MyODEyOWYwMCAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jb3ctc3Ry aW5nLWluc3QuY2MKKysrIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jb3ctc3RyaW5nLWlu c3QuY2MKQEAgLTI5LDEwICsyOSw3IEBACiAjZGVmaW5lIF9HTElCQ1hYX1VTRV9DWFgxMV9B QkkgMAogI2luY2x1ZGUgInN0cmluZy1pbnN0LmNjIgogCi0jaWYgISBfR0xJQkNYWF9VU0Vf RFVBTF9BQkkKLSMgZXJyb3IgVGhpcyBmaWxlIHNob3VsZCBub3QgYmUgY29tcGlsZWQgZm9y IHRoaXMgY29uZmlndXJhdGlvbi4KLSNlbmRpZgotCisjaWYgX0dMSUJDWFhfVVNFX0RVQUxf QUJJICYmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQogI2luY2x1ZGUgPHJhbmRvbT4KIAog bmFtZXNwYWNlIHN0ZCBfR0xJQkNYWF9WSVNJQklMSVRZKGRlZmF1bHQpCkBAIC00NSwzICs0 Miw0IEBAIG5hbWVzcGFjZSBzdGQgX0dMSUJDWFhfVklTSUJJTElUWShkZWZhdWx0KQogICBy YW5kb21fZGV2aWNlOjpfTV9pbml0X3ByZXRyMShjb25zdCBzdGQ6OnN0cmluZyYgdG9rZW4p CiAgIHsgX01faW5pdCh0b2tlbi5jX3N0cigpLCB0b2tlbi5sZW5ndGgoKSk7IH0KIH0gLy8g bmFtZXNwYWNlCisjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9zcmMvYysrMTEv Y293LXN0cmluZy1pby1pbnN0LmNjIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jb3ctc3Ry aW5nLWlvLWluc3QuY2MKaW5kZXggNTA1YmM5ZGQzODQuLjlhYmM5YjQ3ZTUyIDEwMDY0NAot LS0gYS9saWJzdGRjKystdjMvc3JjL2MrKzExL2Nvdy1zdHJpbmctaW8taW5zdC5jYworKysg Yi9saWJzdGRjKystdjMvc3JjL2MrKzExL2Nvdy1zdHJpbmctaW8taW5zdC5jYwpAQCAtMzAs MTAgKzMwLDcgQEAKICNpbmNsdWRlIDxpc3RyZWFtPgogI2luY2x1ZGUgPG9zdHJlYW0+CiAK LSNpZiAhIF9HTElCQ1hYX1VTRV9EVUFMX0FCSQotIyBlcnJvciBUaGlzIGZpbGUgc2hvdWxk IG5vdCBiZSBjb21waWxlZCBmb3IgdGhpcyBjb25maWd1cmF0aW9uLgotI2VuZGlmCi0KKyNp ZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKIG5hbWVzcGFjZSBzdGQgX0dMSUJDWFhfVklT SUJJTElUWShkZWZhdWx0KQogewogX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04K QEAgLTU3LDMgKzU0LDQgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KIAog X0dMSUJDWFhfRU5EX05BTUVTUEFDRV9WRVJTSU9OCiB9IC8vIG5hbWVzcGFjZQorI2VuZGlm CmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvc3JjL2MrKzExL2Nvdy13c3RyaW5nLWluc3Qu Y2MgYi9saWJzdGRjKystdjMvc3JjL2MrKzExL2Nvdy13c3RyaW5nLWluc3QuY2MKaW5kZXgg Y2U1MzNlYThmYTUuLmQzYzNiMGMyOTdlIDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvc3Jj L2MrKzExL2Nvdy13c3RyaW5nLWluc3QuY2MKKysrIGIvbGlic3RkYysrLXYzL3NyYy9jKysx MS9jb3ctd3N0cmluZy1pbnN0LmNjCkBAIC0yOSwxMiArMjksOSBAQAogI2RlZmluZSBfR0xJ QkNYWF9VU0VfQ1hYMTFfQUJJIDAKICNpbmNsdWRlIDxiaXRzL2MrK2NvbmZpZy5oPgogCisj aWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAjaWZkZWYgX0dMSUJDWFhfVVNFX1dDSEFS X1QKICNkZWZpbmUgQyB3Y2hhcl90CiAjaW5jbHVkZSAic3RyaW5nLWluc3QuY2MiCi0KLSNp ZiAhIF9HTElCQ1hYX1VTRV9EVUFMX0FCSQotIyBlcnJvciBUaGlzIGZpbGUgc2hvdWxkIG5v dCBiZSBjb21waWxlZCBmb3IgdGhpcyBjb25maWd1cmF0aW9uLgogI2VuZGlmCi0KICNlbmRp ZgpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jb3ctd3N0cmluZy1pby1p bnN0LmNjIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jb3ctd3N0cmluZy1pby1pbnN0LmNj CmluZGV4IDQ5Mzk0YjBlMjc1Li4wZTZjYzQ5MGZhNCAxMDA2NDQKLS0tIGEvbGlic3RkYysr LXYzL3NyYy9jKysxMS9jb3ctd3N0cmluZy1pby1pbnN0LmNjCisrKyBiL2xpYnN0ZGMrKy12 My9zcmMvYysrMTEvY293LXdzdHJpbmctaW8taW5zdC5jYwpAQCAtMjksMTQgKzI5LDExIEBA CiAjZGVmaW5lIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgMAogI2luY2x1ZGUgPGJpdHMvYysr Y29uZmlnLmg+CiAKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICNpZmRlZiBfR0xJ QkNYWF9VU0VfV0NIQVJfVAogI2luY2x1ZGUgPG9zdHJlYW0+CiAjaW5jbHVkZSA8aXN0cmVh bT4KIAotI2lmICEgX0dMSUJDWFhfVVNFX0RVQUxfQUJJCi0jIGVycm9yIFRoaXMgZmlsZSBz aG91bGQgbm90IGJlIGNvbXBpbGVkIGZvciB0aGlzIGNvbmZpZ3VyYXRpb24uCi0jZW5kaWYK LQogbmFtZXNwYWNlIHN0ZCBfR0xJQkNYWF9WSVNJQklMSVRZKGRlZmF1bHQpCiB7CiBfR0xJ QkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgpAQCAtNjEsMyArNTgsNCBAQCBfR0xJQkNY WF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogX0dMSUJDWFhfRU5EX05BTUVTUEFDRV9WRVJT SU9OCiB9IC8vIG5hbWVzcGFjZQogI2VuZGlmCisjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYnN0 ZGMrKy12My9zcmMvYysrMTEvY3h4MTEtaGFzaF90cjEuY2MgYi9saWJzdGRjKystdjMvc3Jj L2MrKzExL2N4eDExLWhhc2hfdHIxLmNjCmluZGV4IDIyYTc2ODVlZWNhLi4wYjlmYzI4Y2Vh YSAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jeHgxMS1oYXNoX3RyMS5j YworKysgYi9saWJzdGRjKystdjMvc3JjL2MrKzExL2N4eDExLWhhc2hfdHIxLmNjCkBAIC0y NSw5ICsyNSw3IEBACiAjZGVmaW5lIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgMQogI2luY2x1 ZGUgPHN0cmluZz4KIAotI2lmICEgX0dMSUJDWFhfVVNFX0RVQUxfQUJJCi0jIGVycm9yIFRo aXMgZmlsZSBzaG91bGQgbm90IGJlIGNvbXBpbGVkIGZvciB0aGlzIGNvbmZpZ3VyYXRpb24u Ci0jZW5kaWYKKyNpZiBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAKICNpbmNsdWRlIDx0cjEv ZnVuY3Rpb25hbD4KIG5hbWVzcGFjZSBzdGQgX0dMSUJDWFhfVklTSUJJTElUWShkZWZhdWx0 KQpAQCAtNTcsMyArNTUsNSBAQCBuYW1lc3BhY2Ugc3RkIF9HTElCQ1hYX1ZJU0lCSUxJVFko ZGVmYXVsdCkKICNlbmRpZgogICB9CiB9CisKKyNlbmRpZiAvLyBfR0xJQkNYWF9VU0VfQ1hY MTFfQUJJCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvc3JjL2MrKzExL2N4eDExLWlvc19m YWlsdXJlLmNjIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jeHgxMS1pb3NfZmFpbHVyZS5j YwppbmRleCBlMGU4MTZiNDUzYi4uNDZiZmRhMzI5ZGUgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMr Ky12My9zcmMvYysrMTEvY3h4MTEtaW9zX2ZhaWx1cmUuY2MKKysrIGIvbGlic3RkYysrLXYz L3NyYy9jKysxMS9jeHgxMS1pb3NfZmFpbHVyZS5jYwpAQCAtMzgsOSArMzgsNyBAQAogIyBk ZWZpbmUgXyhtc2dpZCkgICAobXNnaWQpCiAjZW5kaWYKIAotI2lmICEgX0dMSUJDWFhfVVNF X0RVQUxfQUJJCi0jIGVycm9yIFRoaXMgZmlsZSBzaG91bGQgbm90IGJlIGNvbXBpbGVkIGZv ciB0aGlzIGNvbmZpZ3VyYXRpb24uCi0jZW5kaWYKKyNpZiBfR0xJQkNYWF9VU0VfQ1hYMTFf QUJJCiAKIG5hbWVzcGFjZSBzdGQgX0dMSUJDWFhfVklTSUJJTElUWShkZWZhdWx0KQogewpA QCAtNjIsNyArNjAsNyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogICBp b3NfYmFzZTo6ZmFpbHVyZTo6d2hhdCgpIGNvbnN0IHRocm93KCkKICAgeyByZXR1cm4gcnVu dGltZV9lcnJvcjo6d2hhdCgpOyB9CiAKLSNpZiBfX2NwcF9ydHRpCisjaWYgX0dMSUJDWFhf VVNFX0RVQUxfQUJJICYmIF9fY3BwX3J0dGkKICAgLy8gVGhlc2UgZnVuY3Rpb25zIGFyZSBk ZWZpbmVkIGluIHNyYy9jKys5OC9pb3NfZmFpbHVyZS5jYwogICBleHRlcm4gdm9pZCBfX2Nv bnN0cnVjdF9pb3NfZmFpbHVyZSh2b2lkKiwgY29uc3QgY2hhciopOwogICBleHRlcm4gdm9p ZCBfX2Rlc3Ryb3lfaW9zX2ZhaWx1cmUodm9pZCopOwpAQCAtMTE4LDcgKzExNiw3IEBAIF9H TElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgICAgLy8gT3RoZXJ3aXNlIHByb2Nl ZWQgYXMgbm9ybWFsIHRvIHNlZSBpZiB0aGUgaGFuZGxlciBtYXRjaGVzLgogICAgIHJldHVy biBfX2NsYXNzX3R5cGVfaW5mbzo6X19kb191cGNhc3QoZHN0X3R5cGUsIG9ial9wdHIpOwog ICB9Ci0jZWxzZSAvLyAhIF9fY3BwX3J0dGkKKyNlbHNlIC8vICEgX0dMSUJDWFhfVVNFX0RV QUxfQUJJIHx8ICEgX19jcHBfcnR0aQogICB1c2luZyBfX2lvc19mYWlsdXJlID0gaW9zOjpm YWlsdXJlOwogI2VuZGlmCiAKQEAgLTEzNiwzICsxMzQsNSBAQCBfR0xJQkNYWF9CRUdJTl9O QU1FU1BBQ0VfVkVSU0lPTgogCiBfR0xJQkNYWF9FTkRfTkFNRVNQQUNFX1ZFUlNJT04KIH0g Ly8gbmFtZXNwYWNlCisKKyNlbmRpZiAvLyBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCmRpZmYg LS1naXQgYS9saWJzdGRjKystdjMvc3JjL2MrKzExL2N4eDExLWxvY2FsZS1pbnN0LmNjIGIv bGlic3RkYysrLXYzL3NyYy9jKysxMS9jeHgxMS1sb2NhbGUtaW5zdC5jYwppbmRleCA5NGIx ODE4ODZkMy4uZTIxY2M1NTQ4YmYgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9zcmMvYysr MTEvY3h4MTEtbG9jYWxlLWluc3QuY2MKKysrIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9j eHgxMS1sb2NhbGUtaW5zdC5jYwpAQCAtMjcsMTEgKzI3LDUgQEAKIC8vIEZhY2V0IGluc3Rh bnRpYXRpb25zIHVzaW5nIG5ldyBBQkkgc3RyaW5ncy4KIAogI2RlZmluZSBfR0xJQkNYWF9V U0VfQ1hYMTFfQUJJIDEKLSNpbmNsdWRlIDxiaXRzL2MrK2NvbmZpZy5oPgotI2lmICEgX0dM SUJDWFhfVVNFX0RVQUxfQUJJCi0jIGVycm9yIFRoaXMgZmlsZSBzaG91bGQgbm90IGJlIGNv bXBpbGVkIGZvciB0aGlzIGNvbmZpZ3VyYXRpb24uCi0jZW5kaWYKIAotI2RlZmluZSBDIGNo YXIKLSNkZWZpbmUgQ19pc19jaGFyCi0jIGluY2x1ZGUgImxvY2FsZS1pbnN0LmNjIgorI2lu Y2x1ZGUgImxvY2FsZS1pbnN0LmNjIgpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3NyYy9j KysxMS9jeHgxMS1zdGRleGNlcHQuY2MgYi9saWJzdGRjKystdjMvc3JjL2MrKzExL2N4eDEx LXN0ZGV4Y2VwdC5jYwppbmRleCA3NGMwNzBjMDQzOS4uMzhhYjM1NjkyYTMgMTAwNjQ0Ci0t LSBhL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY3h4MTEtc3RkZXhjZXB0LmNjCisrKyBiL2xp YnN0ZGMrKy12My9zcmMvYysrMTEvY3h4MTEtc3RkZXhjZXB0LmNjCkBAIC0yOSw5ICsyOSw3 IEBACiAjZGVmaW5lIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgMQogI2luY2x1ZGUgPHN0ZGV4 Y2VwdD4KIAotI2lmICEgX0dMSUJDWFhfVVNFX0RVQUxfQUJJCi0jIGVycm9yIFRoaXMgZmls ZSBzaG91bGQgbm90IGJlIGNvbXBpbGVkIGZvciB0aGlzIGNvbmZpZ3VyYXRpb24uCi0jZW5k aWYKKyNpZiBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAKIG5hbWVzcGFjZSBzdGQgX0dMSUJD WFhfVklTSUJJTElUWShkZWZhdWx0KQogewpAQCAtNzYsMyArNzQsNSBAQCBfR0xJQkNYWF9C RUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogCiBfR0xJQkNYWF9FTkRfTkFNRVNQQUNFX1ZFUlNJ T04KIH0gLy8gbmFtZXNwYWNlCisKKyNlbmRpZiAvLyBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJ CmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvc3JjL2MrKzExL2N4eDExLXdsb2NhbGUtaW5z dC5jYyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY3h4MTEtd2xvY2FsZS1pbnN0LmNjCmlu ZGV4IDExZmIxNWQ5NjAyLi5mYWZmMjM2YzFkZiAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYz L3NyYy9jKysxMS9jeHgxMS13bG9jYWxlLWluc3QuY2MKKysrIGIvbGlic3RkYysrLXYzL3Ny Yy9jKysxMS9jeHgxMS13bG9jYWxlLWluc3QuY2MKQEAgLTI4LDExICsyOCwxMCBAQAogCiAj ZGVmaW5lIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgMQogI2luY2x1ZGUgPGJpdHMvYysrY29u ZmlnLmg+Ci0jaWYgISBfR0xJQkNYWF9VU0VfRFVBTF9BQkkKLSMgZXJyb3IgVGhpcyBmaWxl IHNob3VsZCBub3QgYmUgY29tcGlsZWQgZm9yIHRoaXMgY29uZmlndXJhdGlvbi4KLSNlbmRp ZgogCi0jaWZkZWYgX0dMSUJDWFhfVVNFX1dDSEFSX1QKLSNkZWZpbmUgQyB3Y2hhcl90Ci0j aW5jbHVkZSAibG9jYWxlLWluc3QuY2MiCisjaWYgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQor IyBpZmRlZiBfR0xJQkNYWF9VU0VfV0NIQVJfVAorIyAgZGVmaW5lIEMgd2NoYXJfdAorIyAg aW5jbHVkZSAibG9jYWxlLWluc3QuY2MiCisjIGVuZGlmCiAjZW5kaWYKZGlmZiAtLWdpdCBh L2xpYnN0ZGMrKy12My9zcmMvYysrMTEvbG9jYWxlLWluc3QtbnVtZXJpYy5oIGIvbGlic3Rk YysrLXYzL3NyYy9jKysxMS9sb2NhbGUtaW5zdC1udW1lcmljLmgKaW5kZXggYjkxN2ZlNTgw MmUuLjIxMWUxOWM3ZmY5IDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvc3JjL2MrKzExL2xv Y2FsZS1pbnN0LW51bWVyaWMuaAorKysgYi9saWJzdGRjKystdjMvc3JjL2MrKzExL2xvY2Fs ZS1pbnN0LW51bWVyaWMuaApAQCAtMzAsNyArMzAsNyBAQAogCiBuYW1lc3BhY2Ugc3RkIF9H TElCQ1hYX1ZJU0lCSUxJVFkoZGVmYXVsdCkKIHsKLSNpZiAhIF9HTElCQ1hYX1VTRV9DWFgx MV9BQkkKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgfHwgISBfR0xJQkNYWF9VU0Vf RFVBTF9BQkkKIC8vIHVzZV9mYWNldCBhbmQgaGFzX2ZhY2V0IGluc3RhbnRpYXRpb25zCiBJ TlNUQU5USUFURV9GQUNFVF9BQ0NFU1NPUlMobnVtX2dldDxDPik7CiBJTlNUQU5USUFURV9G QUNFVF9BQ0NFU1NPUlMobnVtX3B1dDxDPik7CkBAIC0zOCw3ICszOCw3IEBAIElOU1RBTlRJ QVRFX0ZBQ0VUX0FDQ0VTU09SUyhudW1fcHV0PEM+KTsKIAogX0dMSUJDWFhfQkVHSU5fTkFN RVNQQUNFX0xEQkwKIAotI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorI2lmICEgX0dM SUJDWFhfVVNFX0NYWDExX0FCSSB8fCAhIF9HTElCQ1hYX1VTRV9EVUFMX0FCSQogICB0ZW1w bGF0ZSBjbGFzcyBudW1fZ2V0PEMsIGlzdHJlYW1idWZfaXRlcmF0b3I8Qz4gPjsKICAgdGVt cGxhdGUgY2xhc3MgbnVtX3B1dDxDLCBvc3RyZWFtYnVmX2l0ZXJhdG9yPEM+ID47CiAjZW5k aWYKQEAgLTg4LDcgKzg4LDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX0xEQkwKIAkJ ICAgdW5zaWduZWQgbG9uZyBsb25nJikgY29uc3Q7CiAjZW5kaWYKIAotI2lmICEgX0dMSUJD WFhfVVNFX0NYWDExX0FCSQorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSSB8fCAhIF9H TElCQ1hYX1VTRV9EVUFMX0FCSQogICAvLyBudW1fcHV0IG1lbWJlciBmdW5jdGlvbiB0ZW1w bGF0ZXMKICAgdGVtcGxhdGUKICAgICBvc3RyZWFtYnVmX2l0ZXJhdG9yPEM+CmRpZmYgLS1n aXQgYS9saWJzdGRjKystdjMvc3JjL2MrKzExL2xvY2FsZS1pbnN0LmNjIGIvbGlic3RkYysr LXYzL3NyYy9jKysxMS9sb2NhbGUtaW5zdC5jYwppbmRleCAzYTVjNjg0NGYxYi4uZWUzMzc1 ZDcwNDAgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvbG9jYWxlLWluc3Qu Y2MKKysrIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9sb2NhbGUtaW5zdC5jYwpAQCAtMzUs OCArMzUsMTcgQEAKICMgZGVmaW5lIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgMAogI2VuZGlm CiAKLSNpbmNsdWRlIDxsb2NhbGU+CisjaWYgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorIyBk ZWZpbmUgX0dMSUJDWFhfQlVJTERfQ1hYMTFfQUJJIDEKKyNlbHNlCisjIGRlZmluZSBfR0xJ QkNYWF9CVUlMRF9DWFgxMV9BQkkgMAorI2VuZGlmCisKKyNpbmNsdWRlIDxiaXRzL2MrK2Nv bmZpZy5oPgogCisjaWYgX0dMSUJDWFhfQlVJTERfQ1hYMTFfQUJJID09IF9HTElCQ1hYX1VT RV9DWFgxMV9BQkkKKworI2luY2x1ZGUgPGxvY2FsZT4KIC8vIEluc3RhbnRpYXRpb24gY29u ZmlndXJhdGlvbi4KICNpZm5kZWYgQwogIyBkZWZpbmUgQyBjaGFyCkBAIC01Miw3ICs2MSw3 IEBAIG5hbWVzcGFjZSBzdGQgX0dMSUJDWFhfVklTSUJJTElUWShkZWZhdWx0KQogX0dMSUJD WFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KIAogICAvLyBtb25leXB1bmN0LCBtb25leV9n ZXQsIGFuZCBtb25leV9wdXQKLSNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKKyNpZiAh IF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgfHwgISBfR0xJQkNYWF9VU0VfRFVBTF9BQkkKICAg dGVtcGxhdGUgc3RydWN0IF9fbW9uZXlwdW5jdF9jYWNoZTxDLCBmYWxzZT47CiAgIHRlbXBs YXRlIHN0cnVjdCBfX21vbmV5cHVuY3RfY2FjaGU8QywgdHJ1ZT47CiAjZW5kaWYKQEAgLTY0 LDcgKzczLDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX0NYWDExCiBfR0xJQkNYWF9F TkRfTkFNRVNQQUNFX0NYWDExCiAKICAgLy8gbnVtcHVuY3QsIG51bXB1bmN0X2J5bmFtZSwg bnVtX2dldCwgYW5kIG51bV9wdXQKLSNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKKyNp ZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgfHwgISBfR0xJQkNYWF9VU0VfRFVBTF9BQkkK ICAgdGVtcGxhdGUgc3RydWN0IF9fbnVtcHVuY3RfY2FjaGU8Qz47CiAjZW5kaWYKIF9HTElC Q1hYX0JFR0lOX05BTUVTUEFDRV9DWFgxMQpAQCAtNzMsNyArODIsNyBAQCBfR0xJQkNYWF9C RUdJTl9OQU1FU1BBQ0VfQ1hYMTEKIF9HTElCQ1hYX0VORF9OQU1FU1BBQ0VfQ1hYMTEKIAog ICAvLyB0aW1lX2dldCBhbmQgdGltZV9wdXQKLSNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9B QkkKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgfHwgISBfR0xJQkNYWF9VU0VfRFVB TF9BQkkKICAgdGVtcGxhdGUgY2xhc3MgX190aW1lcHVuY3Q8Qz47CiAgIHRlbXBsYXRlIHN0 cnVjdCBfX3RpbWVwdW5jdF9jYWNoZTxDPjsKICAgdGVtcGxhdGUgY2xhc3MgdGltZV9wdXQ8 Qywgb3N0cmVhbWJ1Zl9pdGVyYXRvcjxDPiA+OwpAQCAtOTcsMTMgKzEwNiwxMyBAQCBfR0xJ QkNYWF9FTkRfTkFNRVNQQUNFX0NYWDExCiAgIGN0eXBlX2J5bmFtZTxDPjo6Y3R5cGVfYnlu YW1lKGNvbnN0IHN0cmluZyYgX19zLCBzaXplX3QgX19yZWZzKQogICA6IGN0eXBlX2J5bmFt ZShfX3MuY19zdHIoKSwgX19yZWZzKSB7IH0KIAotI2lmICEgX0dMSUJDWFhfVVNFX0NYWDEx X0FCSQorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSSB8fCAhIF9HTElCQ1hYX1VTRV9E VUFMX0FCSQogICBpbmxpbmUgdGVtcGxhdGUgY2xhc3MgX19jdHlwZV9hYnN0cmFjdF9iYXNl PEM+OwogICB0ZW1wbGF0ZSBjbGFzcyBjdHlwZV9ieW5hbWU8Qz47CiAjZW5kaWYKIAogICAv LyBjb2RlY3Z0Ci0jaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCisjaWYgISBfR0xJQkNY WF9VU0VfQ1hYMTFfQUJJIHx8ICEgX0dMSUJDWFhfVVNFX0RVQUxfQUJJCiAgIGlubGluZSB0 ZW1wbGF0ZSBjbGFzcyBfX2NvZGVjdnRfYWJzdHJhY3RfYmFzZTxDLCBjaGFyLCBtYnN0YXRl X3Q+OwogICB0ZW1wbGF0ZSBjbGFzcyBjb2RlY3Z0X2J5bmFtZTxDLCBjaGFyLCBtYnN0YXRl X3Q+OwogI2Vsc2UKQEAgLTExOCw3ICsxMjcsNyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BB Q0VfQ1hYMTEKIF9HTElCQ1hYX0VORF9OQU1FU1BBQ0VfQ1hYMTEKIAogLy8gdXNlX2ZhY2V0 IGFuZCBoYXNfZmFjZXQgaW5zdGFudGlhdGlvbnMKLSNpZiAhIF9HTElCQ1hYX1VTRV9DWFgx MV9BQkkKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgfHwgISBfR0xJQkNYWF9VU0Vf RFVBTF9BQkkKIElOU1RBTlRJQVRFX0ZBQ0VUX0FDQ0VTU09SUyhjdHlwZTxDPik7CiBJTlNU QU5USUFURV9GQUNFVF9BQ0NFU1NPUlMoY29kZWN2dDxDLCBjaGFyLCBtYnN0YXRlX3Q+KTsK ICNlbmRpZgpAQCAtMTI3LDE0ICsxMzYsMTQgQEAgSU5TVEFOVElBVEVfRkFDRVRfQUNDRVNT T1JTKG51bXB1bmN0PEM+KTsKIElOU1RBTlRJQVRFX0ZBQ0VUX0FDQ0VTU09SUyhtb25leXB1 bmN0PEMsIGZhbHNlPik7CiAvLyBObyBleHBsaWNpdCBpbnN0YW50aWF0aW9uIG9mIGhhc19m YWNldDxtb25leXB1bmN0PEMsIHRydWU+PiBmb3Igc29tZSByZWFzb24uCiBJTlNUQU5USUFU RV9VU0VfRkFDRVQgICAgICAobW9uZXlwdW5jdDxDLCB0cnVlPik7Ci0jaWYgISBfR0xJQkNY WF9VU0VfQ1hYMTFfQUJJCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIHx8ICEgX0dM SUJDWFhfVVNFX0RVQUxfQUJJCiBJTlNUQU5USUFURV9GQUNFVF9BQ0NFU1NPUlMoX190aW1l cHVuY3Q8Qz4pOwogSU5TVEFOVElBVEVfRkFDRVRfQUNDRVNTT1JTKHRpbWVfcHV0PEM+KTsK ICNlbmRpZgogSU5TVEFOVElBVEVfRkFDRVRfQUNDRVNTT1JTKHRpbWVfZ2V0PEM+KTsKIElO U1RBTlRJQVRFX0ZBQ0VUX0FDQ0VTU09SUyhtZXNzYWdlczxDPik7CiAKLSNpZiAhIF9HTElC Q1hYX1VTRV9DWFgxMV9BQkkKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgfHwgISBf R0xJQkNYWF9VU0VfRFVBTF9BQkkKICAgLy8gbG9jYWxlIGZ1bmN0aW9ucy4KICAgdGVtcGxh dGUKICAgICBDKgpAQCAtMTYzLDMgKzE3Miw1IEBAIF9HTElCQ1hYX0VORF9OQU1FU1BBQ0Vf VkVSU0lPTgogI2lmIGRlZmluZWQgX0dMSUJDWFhfTE9OR19ET1VCTEVfQ09NUEFUICYmICEg X0dMSUJDWFhfVVNFX0NYWDExX0FCSQogI2luY2x1ZGUgImNvbXBhdGliaWxpdHktbGRibC1m YWNldHMtYWxpYXNlcy5oIgogI2VuZGlmIC8vIF9HTElCQ1hYX0xPTkdfRE9VQkxFX0NPTVBB VAorCisjZW5kaWYgLy8gIF9HTElCQ1hYX0JVSUxEX0NYWDExX0FCSSA9PSBfR0xJQkNYWF9V U0VfQ1hYMTFfQUJJCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvc3JjL2MrKzExL3N0cmlu Zy1pbnN0LmNjIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9zdHJpbmctaW5zdC5jYwppbmRl eCBkZGFhZmMwODE5OS4uZWE5ZGNmMDI2MzkgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9z cmMvYysrMTEvc3RyaW5nLWluc3QuY2MKKysrIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9z dHJpbmctaW5zdC5jYwpAQCAtMzUsNiArMzUsMTIgQEAKICMgZGVmaW5lIF9HTElCQ1hYX1VT RV9DWFgxMV9BQkkgMQogI2VuZGlmCiAKKyNpZiBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCisj IGRlZmluZSBfR0xJQkNYWF9ERUZJTklOR19DWFgxMV9BQklfSU5TVEFOVElBVElPTlMgMQor I2Vsc2UKKyMgZGVmaW5lIF9HTElCQ1hYX0RFRklOSU5HX0NYWDExX0FCSV9JTlNUQU5USUFU SU9OUyAwCisjZW5kaWYKKwogLy8gUHJldmVudCB0aGUgYmFzaWNfc3RyaW5nKGNvbnN0IF9D aGFyVCosIGNvbnN0IF9BbGxvYyYpIGFuZAogLy8gYmFzaWNfc3RyaW5nKHNpemVfdHlwZSwg X0NoYXJULCBjb25zdCBfQWxsb2MmKSBjb25zdHJ1Y3RvcnMgZnJvbSBiZWluZwogLy8gcmVw bGFjZWQgYnkgY29uc3RyYWluZWQgZnVuY3Rpb24gdGVtcGxhdGVzLCBzbyB0aGF0IHdlIGlu c3RhbnRpYXRlIHRoZQpAQCAtNDUsNiArNTEsMTIgQEAKIAogI2luY2x1ZGUgPHN0cmluZz4K IAorI2lmIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgJiYgISBfR0xJQkNYWF9ERUZJTklOR19D WFgxMV9BQklfSU5TVEFOVElBVElPTlMKKyMgZGVmaW5lIF9HTElCQ1hYX0RFRklOSU5HX0NP V19TVFJJTkdfSU5TVEFOVElBVElPTlMgMQorIyBpbmNsdWRlIDxiaXRzL2Nvd19zdHJpbmcu aD4KKyMgZGVmaW5lIGJhc2ljX3N0cmluZyBfX3N0ZF9jb3dfc3RyaW5nCisjZW5kaWYKKwog Ly8gSW5zdGFudGlhdGlvbiBjb25maWd1cmF0aW9uLgogI2lmbmRlZiBDCiAjIGRlZmluZSBD IGNoYXIKQEAgLTU0LDEyICs2NiwxNCBAQCBuYW1lc3BhY2Ugc3RkIF9HTElCQ1hYX1ZJU0lC SUxJVFkoZGVmYXVsdCkKIHsKIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAK LSAgdHlwZWRlZiBiYXNpY19zdHJpbmc8Qz4gUzsKK3R5cGVkZWYgYmFzaWNfc3RyaW5nPEMs IHN0ZDo6Y2hhcl90cmFpdHM8Qz4sIHN0ZDo6YWxsb2NhdG9yPEM+PiBTOwogCi0gIHRlbXBs YXRlIGNsYXNzIGJhc2ljX3N0cmluZzxDPjsKKyAgdGVtcGxhdGUgY2xhc3MgYmFzaWNfc3Ry aW5nPEMsIHN0ZDo6Y2hhcl90cmFpdHM8Qz4sIHN0ZDo6YWxsb2NhdG9yPEM+PjsKKyNpZiAh IF9HTElCQ1hYX0RFRklOSU5HX0NPV19TVFJJTkdfSU5TVEFOVElBVElPTlMKICAgdGVtcGxh dGUgUyBvcGVyYXRvcisoY29uc3QgQyosIGNvbnN0IFMmKTsKICAgdGVtcGxhdGUgUyBvcGVy YXRvcisoQywgY29uc3QgUyYpOwogICB0ZW1wbGF0ZSBTIG9wZXJhdG9yKyhjb25zdCBTJiwg Y29uc3QgUyYpOworI2VuZGlmCiAKICAgLy8gT25seSBvbmUgdGVtcGxhdGUga2V5d29yZCBh bGxvd2VkIGhlcmUuCiAgIC8vIFNlZSBjb3JlIGlzc3VlICM0NiAoTkFEKQpAQCAtNzMsNyAr ODcsNyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogICB0ZW1wbGF0ZQog ICAgIFM6OmJhc2ljX3N0cmluZyhTOjppdGVyYXRvciwgUzo6aXRlcmF0b3IsIGNvbnN0IGFs bG9jYXRvcjxDPiYpOwogCi0jaWYgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorI2lmIF9HTElC Q1hYX1VTRV9DWFgxMV9BQkkgJiYgISBfR0xJQkNYWF9ERUZJTklOR19DT1dfU1RSSU5HX0lO U1RBTlRJQVRJT05TCiAgIHRlbXBsYXRlCiAgICAgdm9pZAogICAgIFM6Ol9NX2NvbnN0cnVj dChTOjppdGVyYXRvciwgUzo6aXRlcmF0b3IsIGZvcndhcmRfaXRlcmF0b3JfdGFnKTsKQEAg LTkxLDcgKzEwNSw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgICAg dm9pZAogICAgIFM6Ol9NX2NvbnN0cnVjdChjb25zdCBDKiwgY29uc3QgQyosIGZvcndhcmRf aXRlcmF0b3JfdGFnKTsKIAotI2Vsc2UgLy8gIV9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKKyNl bHNlIC8vICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSSB8fCBfR0xJQkNYWF9ERUZJTklOR19D T1dfU1RSSU5HX0lOU1RBTlRJQVRJT05TCiAKICAgdGVtcGxhdGUKICAgICBDKgpAQCAtMTEx LDYgKzEyNSw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiBfR0xJQkNY WF9FTkRfTkFNRVNQQUNFX1ZFUlNJT04KIH0gLy8gbmFtZXNwYWNlCiAKKyNpZiAhIF9HTElC Q1hYX0RFRklOSU5HX0NPV19TVFJJTkdfSU5TVEFOVElBVElPTlMKIG5hbWVzcGFjZSBfX2du dV9jeHggX0dMSUJDWFhfVklTSUJJTElUWShkZWZhdWx0KQogewogX0dMSUJDWFhfQkVHSU5f TkFNRVNQQUNFX1ZFUlNJT04KQEAgLTEyMSwzICsxMzYsNCBAQCBfR0xJQkNYWF9CRUdJTl9O QU1FU1BBQ0VfVkVSU0lPTgogCiBfR0xJQkNYWF9FTkRfTkFNRVNQQUNFX1ZFUlNJT04KIH0g Ly8gbmFtZXNwYWNlCisjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9zcmMvYysr MTEvd2xvY2FsZS1pbnN0LmNjIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS93bG9jYWxlLWlu c3QuY2MKaW5kZXggZGMyZDIzNDkwNTUuLmI1Yzc5OGJmZTY0IDEwMDY0NAotLS0gYS9saWJz dGRjKystdjMvc3JjL2MrKzExL3dsb2NhbGUtaW5zdC5jYworKysgYi9saWJzdGRjKystdjMv c3JjL2MrKzExL3dsb2NhbGUtaW5zdC5jYwpAQCAtMzAsNyArMzAsOSBAQAogI2RlZmluZSBf R0xJQkNYWF9VU0VfQ1hYMTFfQUJJIDAKICNpbmNsdWRlIDxiaXRzL2MrK2NvbmZpZy5oPgog Ci0jaWZkZWYgX0dMSUJDWFhfVVNFX1dDSEFSX1QKLSNkZWZpbmUgQyB3Y2hhcl90Ci0jaW5j bHVkZSAibG9jYWxlLWluc3QuY2MiCi0jZW5kaWYgLy8gX0dMSUJDWFhfVVNFX1dDSEFSX1QK KyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKKyMgaWZkZWYgX0dMSUJDWFhfVVNFX1dD SEFSX1QKKyMgIGRlZmluZSBDIHdjaGFyX3QKKyMgIGluY2x1ZGUgImxvY2FsZS1pbnN0LmNj IgorIyBlbmRpZiAvLyBfR0xJQkNYWF9VU0VfV0NIQVJfVAorI2VuZGlmCmRpZmYgLS1naXQg YS9saWJzdGRjKystdjMvc3JjL2MrKzk4L01ha2VmaWxlLmFtIGIvbGlic3RkYysrLXYzL3Ny Yy9jKys5OC9NYWtlZmlsZS5hbQppbmRleCAyODRmZmRhMzQ0My4uZWIyNDMyNWFmNjcgMTAw NjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9zcmMvYysrOTgvTWFrZWZpbGUuYW0KKysrIGIvbGli c3RkYysrLXYzL3NyYy9jKys5OC9NYWtlZmlsZS5hbQpAQCAtOTAsMTMgKzkwLDYgQEAgYysr bG9jYWxlLmNjOiAke2dsaWJjeHhfc3JjZGlyfS8kKENMT0NBTEVfQ0MpCiBiYXNpY19maWxl LmNjOiAke2dsaWJjeHhfc3JjZGlyfS8kKEJBU0lDX0ZJTEVfQ0MpCiAJJChMTl9TKSAke2ds aWJjeHhfc3JjZGlyfS8kKEJBU0lDX0ZJTEVfQ0MpIC4vJEAgfHwgdHJ1ZQogCi1pZiBFTkFC TEVfRFVBTF9BQkkKLWN4eDExX2FiaV9zb3VyY2VzID0gXAotCWNvdy1pc3RyZWFtLXN0cmlu Zy5jYwotZWxzZQotY3h4MTFfYWJpX3NvdXJjZXMgPQotZW5kaWYKLQogaWYgRU5BQkxFX0VY VEVSTl9URU1QTEFURQogIyBYVEVNUExBVEVfRkxBR1MgPSAtZm5vLWltcGxpY2l0LXRlbXBs YXRlcwogaW5zdF9zb3VyY2VzID0gXApAQCAtMTE4LDYgKzExMSw3IEBAIHNvdXJjZXMgPSBc CiAJbXRfYWxsb2NhdG9yLmNjIFwKIAljb2RlY3Z0LmNjIFwKIAljb21wbGV4X2lvLmNjIFwK Kwljb3ctaXN0cmVhbS1zdHJpbmcuY2MgXAogCWdsb2JhbHNfaW8uY2MgXAogCWhhc2hfdHIx LmNjIFwKIAloYXNodGFibGVfdHIxLmNjIFwKQEAgLTE0Miw3ICsxMzYsNiBAQCBzb3VyY2Vz ID0gXAogCWlzdHJlYW0tc3RyaW5nLmNjIFwKIAlzdHJlYW1idWYuY2MgXAogCXZhbGFycmF5 LmNjIFwKLQkke2N4eDExX2FiaV9zb3VyY2VzfSBcCiAJJHtob3N0X3NvdXJjZXN9IFwKIAkk e2hvc3Rfc291cmNlc19leHRyYX0KIApkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3NyYy9j Kys5OC9NYWtlZmlsZS5pbiBiL2xpYnN0ZGMrKy12My9zcmMvYysrOTgvTWFrZWZpbGUuaW4K aW5kZXggYTEwMGRmNzdhNmQuLmQyZWQyYTIyMWYyIDEwMDY0NAotLS0gYS9saWJzdGRjKyst djMvc3JjL2MrKzk4L01ha2VmaWxlLmluCisrKyBiL2xpYnN0ZGMrKy12My9zcmMvYysrOTgv TWFrZWZpbGUuaW4KQEAgLTEyMSwzMSArMTIxLDMwIEBAIENPTkZJR19DTEVBTl9GSUxFUyA9 CiBDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQogTFRMSUJSQVJJRVMgPSAkKG5vaW5zdF9M VExJQlJBUklFUykKIGxpYmNfXzk4Y29udmVuaWVuY2VfbGFfTElCQUREID0KLUBFTkFCTEVf RFVBTF9BQklfVFJVRUBhbV9fb2JqZWN0c18xID0gY293LWlzdHJlYW0tc3RyaW5nLmxvCi1A RU5BQkxFX0RVQUxfQUJJX1RSVUVAYW1fX29iamVjdHNfMiA9IGNvbGxhdGVfbWVtYmVyc19j b3cubG8gXAorQEVOQUJMRV9EVUFMX0FCSV9UUlVFQGFtX19vYmplY3RzXzEgPSBjb2xsYXRl X21lbWJlcnNfY293LmxvIFwKIEBFTkFCTEVfRFVBTF9BQklfVFJVRUAJbWVzc2FnZXNfbWVt YmVyc19jb3cubG8gXAogQEVOQUJMRV9EVUFMX0FCSV9UUlVFQAltb25ldGFyeV9tZW1iZXJz X2Nvdy5sbyBcCiBARU5BQkxFX0RVQUxfQUJJX1RSVUVACW51bWVyaWNfbWVtYmVyc19jb3cu bG8KLWFtX19vYmplY3RzXzMgPSAkKGFtX19vYmplY3RzXzIpIGNvZGVjdnRfbWVtYmVycy5s byBjb2xsYXRlX21lbWJlcnMubG8gXAorYW1fX29iamVjdHNfMiA9ICQoYW1fX29iamVjdHNf MSkgY29kZWN2dF9tZW1iZXJzLmxvIGNvbGxhdGVfbWVtYmVycy5sbyBcCiAJbWVzc2FnZXNf bWVtYmVycy5sbyBtb25ldGFyeV9tZW1iZXJzLmxvIG51bWVyaWNfbWVtYmVycy5sbyBcCiAJ dGltZV9tZW1iZXJzLmxvCi1ARU5BQkxFX0VYVEVSTl9URU1QTEFURV9UUlVFQGFtX19vYmpl Y3RzXzQgPSBhbGxvY2F0b3ItaW5zdC5sbyBcCitARU5BQkxFX0VYVEVSTl9URU1QTEFURV9U UlVFQGFtX19vYmplY3RzXzMgPSBhbGxvY2F0b3ItaW5zdC5sbyBcCiBARU5BQkxFX0VYVEVS Tl9URU1QTEFURV9UUlVFQAljb25jZXB0LWluc3QubG8gZXh0LWluc3QubG8gXAogQEVOQUJM RV9FWFRFUk5fVEVNUExBVEVfVFJVRUAJbWlzYy1pbnN0LmxvCi1hbV9fb2JqZWN0c181ID0g cGFyYWxsZWxfc2V0dGluZ3MubG8KLWFtX19vYmplY3RzXzYgPSBiYXNpY19maWxlLmxvIGMr K2xvY2FsZS5sbyAkKGFtX19vYmplY3RzXzQpIFwKLQkkKGFtX19vYmplY3RzXzUpCi1hbV9f b2JqZWN0c183ID0gYml0bWFwX2FsbG9jYXRvci5sbyBwb29sX2FsbG9jYXRvci5sbyBtdF9h bGxvY2F0b3IubG8gXAotCWNvZGVjdnQubG8gY29tcGxleF9pby5sbyBnbG9iYWxzX2lvLmxv IGhhc2hfdHIxLmxvIFwKLQloYXNodGFibGVfdHIxLmxvIGlvc19mYWlsdXJlLmxvIGlvc19p bml0LmxvIGlvc19sb2NhbGUubG8gXAotCWxpc3QubG8gbGlzdC1hdXgubG8gbGlzdC1hdXgt Mi5sbyBsaXN0X2Fzc29jaWF0ZWQubG8gXAotCWxpc3RfYXNzb2NpYXRlZC0yLmxvIGxvY2Fs ZS5sbyBsb2NhbGVfaW5pdC5sbyBsb2NhbGVfZmFjZXRzLmxvIFwKLQlsb2NhbGVuYW1lLmxv IG1hdGhfc3R1YnNfZmxvYXQubG8gbWF0aF9zdHVic19sb25nX2RvdWJsZS5sbyBcCi0Jc3Rk ZXhjZXB0LmxvIHN0cnN0cmVhbS5sbyB0cmVlLmxvIGlzdHJlYW0ubG8gaXN0cmVhbS1zdHJp bmcubG8gXAotCXN0cmVhbWJ1Zi5sbyB2YWxhcnJheS5sbyAkKGFtX19vYmplY3RzXzEpICQo YW1fX29iamVjdHNfMykgXAotCSQoYW1fX29iamVjdHNfNikKK2FtX19vYmplY3RzXzQgPSBw YXJhbGxlbF9zZXR0aW5ncy5sbworYW1fX29iamVjdHNfNSA9IGJhc2ljX2ZpbGUubG8gYysr bG9jYWxlLmxvICQoYW1fX29iamVjdHNfMykgXAorCSQoYW1fX29iamVjdHNfNCkKK2FtX19v YmplY3RzXzYgPSBiaXRtYXBfYWxsb2NhdG9yLmxvIHBvb2xfYWxsb2NhdG9yLmxvIG10X2Fs bG9jYXRvci5sbyBcCisJY29kZWN2dC5sbyBjb21wbGV4X2lvLmxvIGNvdy1pc3RyZWFtLXN0 cmluZy5sbyBnbG9iYWxzX2lvLmxvIFwKKwloYXNoX3RyMS5sbyBoYXNodGFibGVfdHIxLmxv IGlvc19mYWlsdXJlLmxvIGlvc19pbml0LmxvIFwKKwlpb3NfbG9jYWxlLmxvIGxpc3QubG8g bGlzdC1hdXgubG8gbGlzdC1hdXgtMi5sbyBcCisJbGlzdF9hc3NvY2lhdGVkLmxvIGxpc3Rf YXNzb2NpYXRlZC0yLmxvIGxvY2FsZS5sbyBcCisJbG9jYWxlX2luaXQubG8gbG9jYWxlX2Zh Y2V0cy5sbyBsb2NhbGVuYW1lLmxvIFwKKwltYXRoX3N0dWJzX2Zsb2F0LmxvIG1hdGhfc3R1 YnNfbG9uZ19kb3VibGUubG8gc3RkZXhjZXB0LmxvIFwKKwlzdHJzdHJlYW0ubG8gdHJlZS5s byBpc3RyZWFtLmxvIGlzdHJlYW0tc3RyaW5nLmxvIHN0cmVhbWJ1Zi5sbyBcCisJdmFsYXJy YXkubG8gJChhbV9fb2JqZWN0c18yKSAkKGFtX19vYmplY3RzXzUpCiBAR0xJQkNYWF9IT1NU RURfVFJVRUBhbV9saWJjX185OGNvbnZlbmllbmNlX2xhX09CSkVDVFMgPSAgXAotQEdMSUJD WFhfSE9TVEVEX1RSVUVACSQoYW1fX29iamVjdHNfNykKK0BHTElCQ1hYX0hPU1RFRF9UUlVF QAkkKGFtX19vYmplY3RzXzYpCiBsaWJjX185OGNvbnZlbmllbmNlX2xhX09CSkVDVFMgPSAk KGFtX2xpYmNfXzk4Y29udmVuaWVuY2VfbGFfT0JKRUNUUykKIEFNX1ZfbHQgPSAkKGFtX192 X2x0X0BBTV9WQCkKIGFtX192X2x0XyA9ICQoYW1fX3ZfbHRfQEFNX0RFRkFVTFRfVkApCkBA IC00NzEsMTAgKzQ3MCw2IEBAIGhvc3Rfc291cmNlc19leHRyYSA9IFwKIAliYXNpY19maWxl LmNjIGMrK2xvY2FsZS5jYyBcCiAJJHtpbnN0X3NvdXJjZXN9ICR7cGFyYWxsZWxfc291cmNl c30KIAotQEVOQUJMRV9EVUFMX0FCSV9GQUxTRUBjeHgxMV9hYmlfc291cmNlcyA9IAotQEVO QUJMRV9EVUFMX0FCSV9UUlVFQGN4eDExX2FiaV9zb3VyY2VzID0gXAotQEVOQUJMRV9EVUFM X0FCSV9UUlVFQAljb3ctaXN0cmVhbS1zdHJpbmcuY2MKLQogIyBYVEVNUExBVEVfRkxBR1Mg PQogQEVOQUJMRV9FWFRFUk5fVEVNUExBVEVfRkFMU0VAaW5zdF9zb3VyY2VzID0gCiAKQEAg LTQ5NCw2ICs0ODksNyBAQCBzb3VyY2VzID0gXAogCW10X2FsbG9jYXRvci5jYyBcCiAJY29k ZWN2dC5jYyBcCiAJY29tcGxleF9pby5jYyBcCisJY293LWlzdHJlYW0tc3RyaW5nLmNjIFwK IAlnbG9iYWxzX2lvLmNjIFwKIAloYXNoX3RyMS5jYyBcCiAJaGFzaHRhYmxlX3RyMS5jYyBc CkBAIC01MTgsNyArNTE0LDYgQEAgc291cmNlcyA9IFwKIAlpc3RyZWFtLXN0cmluZy5jYyBc CiAJc3RyZWFtYnVmLmNjIFwKIAl2YWxhcnJheS5jYyBcCi0JJHtjeHgxMV9hYmlfc291cmNl c30gXAogCSR7aG9zdF9zb3VyY2VzfSBcCiAJJHtob3N0X3NvdXJjZXNfZXh0cmF9CiAKZGlm ZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9zcmMvYysrOTgvY293LWlzdHJlYW0tc3RyaW5nLmNj IGIvbGlic3RkYysrLXYzL3NyYy9jKys5OC9jb3ctaXN0cmVhbS1zdHJpbmcuY2MKaW5kZXgg NDA1ZjllY2I3ODEuLmYwMGNiYzA5ZjY5IDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvc3Jj L2MrKzk4L2Nvdy1pc3RyZWFtLXN0cmluZy5jYworKysgYi9saWJzdGRjKystdjMvc3JjL2Mr Kzk4L2Nvdy1pc3RyZWFtLXN0cmluZy5jYwpAQCAtMjcsNCArMjcsOCBAQAogLy8KIAogI2Rl ZmluZSBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJIDAKLSNpbmNsdWRlICJpc3RyZWFtLXN0cmlu Zy5jYyIKKyNpbmNsdWRlIDxiaXRzL2MrK2NvbmZpZy5oPgorCisjaWYgISBfR0xJQkNYWF9V U0VfQ1hYMTFfQUJJCisjIGluY2x1ZGUgImlzdHJlYW0tc3RyaW5nLmNjIgorI2VuZGlmCmRp ZmYgLS1naXQgYS9saWJzdGRjKystdjMvc3JjL2MrKzk4L2hhc2hfdHIxLmNjIGIvbGlic3Rk YysrLXYzL3NyYy9jKys5OC9oYXNoX3RyMS5jYwppbmRleCBlMTMyYzAxYmY4ZS4uYTJjZDJj NTA5ZjMgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9zcmMvYysrOTgvaGFzaF90cjEuY2MK KysrIGIvbGlic3RkYysrLXYzL3NyYy9jKys5OC9oYXNoX3RyMS5jYwpAQCAtMjgsNiArMjgs NyBAQAogCiAjaW5jbHVkZSAiaGFzaC1sb25nLWRvdWJsZS10cjEtYXV4LmNjIgogCisjaWYg ISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiBuYW1lc3BhY2Ugc3RkIF9HTElCQ1hYX1ZJU0lC SUxJVFkoZGVmYXVsdCkKIHsKICAgbmFtZXNwYWNlIHRyMQpAQCAtNTcsMyArNTgsNCBAQCBu YW1lc3BhY2Ugc3RkIF9HTElCQ1hYX1ZJU0lCSUxJVFkoZGVmYXVsdCkKICNlbmRpZgogICB9 CiB9CisjZW5kaWYgLy8gISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCmRpZmYgLS1naXQgYS9s aWJzdGRjKystdjMvc3JjL2MrKzk4L2lvc19mYWlsdXJlLmNjIGIvbGlic3RkYysrLXYzL3Ny Yy9jKys5OC9pb3NfZmFpbHVyZS5jYwppbmRleCAyNzQ3NmVjY2JkYi4uNDMyOTE4NzExOTYg MTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9zcmMvYysrOTgvaW9zX2ZhaWx1cmUuY2MKKysr IGIvbGlic3RkYysrLXYzL3NyYy9jKys5OC9pb3NfZmFpbHVyZS5jYwpAQCAtMjksMjIgKzI5 LDI0IEBACiAjZGVmaW5lIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkgMAogI2luY2x1ZGUgPGlv cz4KIAotI2lmIF9HTElCQ1hYX1VTRV9EVUFMX0FCSSAmJiBfX2NwcF9ydHRpCi0jaW5jbHVk ZSA8Y3h4YWJpLmg+Ci0jaW5jbHVkZSA8dHlwZWluZm8+Ci0jZW5kaWYKLQotI2lmZGVmIF9H TElCQ1hYX1VTRV9OTFMKLSMgaW5jbHVkZSA8bGliaW50bC5oPgotIyBkZWZpbmUgXyhtc2dp ZCkgICBnZXR0ZXh0IChtc2dpZCkKLSNlbHNlCi0jIGRlZmluZSBfKG1zZ2lkKSAgIChtc2dp ZCkKLSNlbmRpZgorI2lmICEgX0dMSUJDWFhfVVNFX0NYWDExX0FCSSB8fCAhIF9HTElCQ1hY X1VTRV9EVUFMX0FCSQorIyBpZiBfR0xJQkNYWF9VU0VfRFVBTF9BQkkgJiYgX19jcHBfcnR0 aQorIyAgaW5jbHVkZSA8Y3h4YWJpLmg+CisjICBpbmNsdWRlIDx0eXBlaW5mbz4KKyMgZW5k aWYKKworIyBpZmRlZiBfR0xJQkNYWF9VU0VfTkxTCisjICBpbmNsdWRlIDxsaWJpbnRsLmg+ CisjICBkZWZpbmUgXyhtc2dpZCkgICBnZXR0ZXh0IChtc2dpZCkKKyMgZWxzZQorIyAgZGVm aW5lIF8obXNnaWQpICAgKG1zZ2lkKQorIyBlbmRpZgogCiBuYW1lc3BhY2Ugc3RkIF9HTElC Q1hYX1ZJU0lCSUxJVFkoZGVmYXVsdCkKIHsKIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9W RVJTSU9OCiAKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgaW9zX2Jhc2U6OmZh aWx1cmU6OmZhaWx1cmUoY29uc3Qgc3RyaW5nJiBfX3N0cikgdGhyb3coKQogICA6IF9NX21z ZyhfX3N0cikgeyB9CiAKQEAgLTU0LDYgKzU2LDcgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQ QUNFX1ZFUlNJT04KICAgY29uc3QgY2hhcioKICAgaW9zX2Jhc2U6OmZhaWx1cmU6OndoYXQo KSBjb25zdCB0aHJvdygpCiAgIHsgcmV0dXJuIF9NX21zZy5jX3N0cigpOyB9CisjZW5kaWYK IAogI2lmIF9HTElCQ1hYX1VTRV9EVUFMX0FCSQogICAvLyBXaGVuIHRoZSBkdWFsIEFCSSBp cyBlbmFibGVkIF9fdGhyb3dfaW9zX2ZhaWx1cmUoKSBpcyBkZWZpbmVkIGluCkBAIC04Miw3 ICs4NSw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgIH0KICNlbmRp ZiAvLyBfX2NwcF9ydHRpCiAKLSNlbHNlIC8vICEgX0dMSUJDWFhfVVNFX0RVQUxfQUJJCisj ZWxpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKIAogICB2b2lkCiAgIF9fdGhyb3dfaW9z X2ZhaWx1cmUoY29uc3QgY2hhciogX19zIF9fYXR0cmlidXRlX18oKHVudXNlZCkpKQpAQCAt OTIsNyArOTUsOSBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogICBfX3Ro cm93X2lvc19mYWlsdXJlKGNvbnN0IGNoYXIqIHN0ciwgaW50KQogICB7IF9fdGhyb3dfaW9z X2ZhaWx1cmUoc3RyKTsgfQogCi0jZW5kaWYgLy8gX0dMSUJDWFhfVVNFX0RVQUxfQUJJCisj ZW5kaWYgLy8gISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAKIF9HTElCQ1hYX0VORF9OQU1F U1BBQ0VfVkVSU0lPTgogfSAvLyBuYW1lc3BhY2UKKworI2VuZGlmIC8vICEgX0dMSUJDWFhf VVNFX0NYWDExX0FCSSB8fCAhIF9HTElCQ1hYX1VTRV9EVUFMX0FCSQpkaWZmIC0tZ2l0IGEv bGlic3RkYysrLXYzL3NyYy9jKys5OC9pc3RyZWFtLXN0cmluZy5jYyBiL2xpYnN0ZGMrKy12 My9zcmMvYysrOTgvaXN0cmVhbS1zdHJpbmcuY2MKaW5kZXggNDg1OTk4N2ZjYzIuLmI2NDM0 N2Y3OTZlIDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvc3JjL2MrKzk4L2lzdHJlYW0tc3Ry aW5nLmNjCisrKyBiL2xpYnN0ZGMrKy12My9zcmMvYysrOTgvaXN0cmVhbS1zdHJpbmcuY2MK QEAgLTMxLDYgKzMxLDE2IEBACiAvLyBieSBhbm90aGVyIGZpbGUgd2hpY2ggZGVmaW5lcyBf R0xJQkNYWF9VU0VfQ1hYMTFfQUJJPTAuCiAjIGRlZmluZSBfR0xJQkNYWF9VU0VfQ1hYMTFf QUJJIDEKICNlbmRpZgorCisjaWYgX0dMSUJDWFhfVVNFX0NYWDExX0FCSQorIyBkZWZpbmUg X0dMSUJDWFhfQlVJTERfQ1hYMTFfQUJJIDEKKyNlbHNlCisjIGRlZmluZSBfR0xJQkNYWF9C VUlMRF9DWFgxMV9BQkkgMAorI2VuZGlmCisKKyNpbmNsdWRlIDxiaXRzL2MrK2NvbmZpZy5o PgorCisjaWYgX0dMSUJDWFhfQlVJTERfQ1hYMTFfQUJJID09IF9HTElCQ1hYX1VTRV9DWFgx MV9BQkkKICNpbmNsdWRlIDxpc3RyZWFtPgogI2luY2x1ZGUgPHN0cmluZz4KIApAQCAtMjg5 LDMgKzI5OSw0IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAKIF9HTElC Q1hYX0VORF9OQU1FU1BBQ0VfVkVSU0lPTgogfSAvLyBuYW1lc3BhY2UKKyNlbmRpZiAvLyBf R0xJQkNYWF9CVUlMRF9DWFgxMV9BQkkgPT0gX0dMSUJDWFhfVVNFX0NYWDExX0FCSQpkaWZm IC0tZ2l0IGEvbGlic3RkYysrLXYzL3NyYy9jKys5OC9sb2NhbGVfZmFjZXRzLmNjIGIvbGli c3RkYysrLXYzL3NyYy9jKys5OC9sb2NhbGVfZmFjZXRzLmNjCmluZGV4IGMwYmI3ZmQxODFk Li43YTkyOWQ1MWJlNCAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3NyYy9jKys5OC9sb2Nh bGVfZmFjZXRzLmNjCisrKyBiL2xpYnN0ZGMrKy12My9zcmMvYysrOTgvbG9jYWxlX2ZhY2V0 cy5jYwpAQCAtMTI1LDYgKzEyNSw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJT SU9OCiAgICAgcmV0dXJuIF9fdGVzdDsKICAgfQogCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hY MTFfQUJJCiAgIGJvb2wKICAgX192ZXJpZnlfZ3JvdXBpbmcoY29uc3QgY2hhciogX19ncm91 cGluZywgc2l6ZV90IF9fZ3JvdXBpbmdfc2l6ZSwKIAkJICAgIGNvbnN0IHN0cmluZyYgX19n cm91cGluZ190bXApIHRocm93KCkKQEAgLTEzMyw2ICsxMzQsNyBAQCBfR0xJQkNYWF9CRUdJ Tl9OQU1FU1BBQ0VfVkVSU0lPTgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF9fZ3JvdXBpbmdfdG1wLmNfc3RyKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgX19ncm91cGluZ190bXAuc2l6ZSgpKTsKICAgfQorI2VuZGlmCiAKICAgbmFtZXNw YWNlCiAgIHsKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9zcmMvYysrOTgvc3RkZXhjZXB0 LmNjIGIvbGlic3RkYysrLXYzL3NyYy9jKys5OC9zdGRleGNlcHQuY2MKaW5kZXggZThjOTFm NWMxY2QuLmU4MjU1NGUwYWVjIDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvc3JjL2MrKzk4 L3N0ZGV4Y2VwdC5jYworKysgYi9saWJzdGRjKystdjMvc3JjL2MrKzk4L3N0ZGV4Y2VwdC5j YwpAQCAtMzUsOCArMzUsMTAgQEAgbmFtZXNwYWNlIHN0ZCBfR0xJQkNYWF9WSVNJQklMSVRZ KGRlZmF1bHQpCiB7CiBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogCisjaWYg ISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAgIGxvZ2ljX2Vycm9yOjpsb2dpY19lcnJvcihj b25zdCBzdHJpbmcmIF9fYXJnKQogICA6IGV4Y2VwdGlvbigpLCBfTV9tc2coX19hcmcpIHsg fQorI2VuZGlmCiAKICAgbG9naWNfZXJyb3I6On5sb2dpY19lcnJvcigpIF9HTElCQ1hYX1VT RV9OT0VYQ0VQVCB7IH0KIApAQCAtNDQsMjggKzQ2LDM4IEBAIF9HTElCQ1hYX0JFR0lOX05B TUVTUEFDRV9WRVJTSU9OCiAgIGxvZ2ljX2Vycm9yOjp3aGF0KCkgY29uc3QgX0dMSUJDWFhf VVNFX05PRVhDRVBUCiAgIHsgcmV0dXJuIF9NX21zZy5jX3N0cigpOyB9CiAKKyNpZiAhIF9H TElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgZG9tYWluX2Vycm9yOjpkb21haW5fZXJyb3IoY29u c3Qgc3RyaW5nJiBfX2FyZykKICAgOiBsb2dpY19lcnJvcihfX2FyZykgeyB9CisjZW5kaWYK IAogICBkb21haW5fZXJyb3I6On5kb21haW5fZXJyb3IoKSBfR0xJQkNYWF9VU0VfTk9FWENF UFQgeyB9CiAKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICAgaW52YWxpZF9hcmd1 bWVudDo6aW52YWxpZF9hcmd1bWVudChjb25zdCBzdHJpbmcmIF9fYXJnKQogICA6IGxvZ2lj X2Vycm9yKF9fYXJnKSB7IH0KKyNlbmRpZgogCiAgIGludmFsaWRfYXJndW1lbnQ6On5pbnZh bGlkX2FyZ3VtZW50KCkgX0dMSUJDWFhfVVNFX05PRVhDRVBUIHsgfQogCisjaWYgISBfR0xJ QkNYWF9VU0VfQ1hYMTFfQUJJCiAgIGxlbmd0aF9lcnJvcjo6bGVuZ3RoX2Vycm9yKGNvbnN0 IHN0cmluZyYgX19hcmcpCiAgIDogbG9naWNfZXJyb3IoX19hcmcpIHsgfQorI2VuZGlmCiAK ICAgbGVuZ3RoX2Vycm9yOjp+bGVuZ3RoX2Vycm9yKCkgX0dMSUJDWFhfVVNFX05PRVhDRVBU IHsgfQogCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJCiAgIG91dF9vZl9yYW5nZTo6 b3V0X29mX3JhbmdlKGNvbnN0IHN0cmluZyYgX19hcmcpCiAgIDogbG9naWNfZXJyb3IoX19h cmcpIHsgfQorI2VuZGlmCiAKICAgb3V0X29mX3JhbmdlOjp+b3V0X29mX3JhbmdlKCkgX0dM SUJDWFhfVVNFX05PRVhDRVBUIHsgfQogCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hYMTFfQUJJ CiAgIHJ1bnRpbWVfZXJyb3I6OnJ1bnRpbWVfZXJyb3IoY29uc3Qgc3RyaW5nJiBfX2FyZykK ICAgOiBleGNlcHRpb24oKSwgX01fbXNnKF9fYXJnKSB7IH0KKyNlbmRpZgogCiAgIHJ1bnRp bWVfZXJyb3I6On5ydW50aW1lX2Vycm9yKCkgX0dMSUJDWFhfVVNFX05PRVhDRVBUIHsgfQog CkBAIC03MywxOCArODUsMjQgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04K ICAgcnVudGltZV9lcnJvcjo6d2hhdCgpIGNvbnN0IF9HTElCQ1hYX1VTRV9OT0VYQ0VQVAog ICB7IHJldHVybiBfTV9tc2cuY19zdHIoKTsgfQogCisjaWYgISBfR0xJQkNYWF9VU0VfQ1hY MTFfQUJJCiAgIHJhbmdlX2Vycm9yOjpyYW5nZV9lcnJvcihjb25zdCBzdHJpbmcmIF9fYXJn KQogICA6IHJ1bnRpbWVfZXJyb3IoX19hcmcpIHsgfQorI2VuZGlmCiAKICAgcmFuZ2VfZXJy b3I6On5yYW5nZV9lcnJvcigpIF9HTElCQ1hYX1VTRV9OT0VYQ0VQVCB7IH0KIAorI2lmICEg X0dMSUJDWFhfVVNFX0NYWDExX0FCSQogICBvdmVyZmxvd19lcnJvcjo6b3ZlcmZsb3dfZXJy b3IoY29uc3Qgc3RyaW5nJiBfX2FyZykKICAgOiBydW50aW1lX2Vycm9yKF9fYXJnKSB7IH0K KyNlbmRpZgogCiAgIG92ZXJmbG93X2Vycm9yOjp+b3ZlcmZsb3dfZXJyb3IoKSBfR0xJQkNY WF9VU0VfTk9FWENFUFQgeyB9CiAKKyNpZiAhIF9HTElCQ1hYX1VTRV9DWFgxMV9BQkkKICAg dW5kZXJmbG93X2Vycm9yOjp1bmRlcmZsb3dfZXJyb3IoY29uc3Qgc3RyaW5nJiBfX2FyZykK ICAgOiBydW50aW1lX2Vycm9yKF9fYXJnKSB7IH0KKyNlbmRpZgogCiAgIHVuZGVyZmxvd19l cnJvcjo6fnVuZGVyZmxvd19lcnJvcigpIF9HTElCQ1hYX1VTRV9OT0VYQ0VQVCB7IH0KIAo= --------------j6gIuV8LZoCwJelP4y5q4MG0--