From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jakub Jelinek To: git-commits@fedoraproject.org Subject: [rpms/gcc] rhel-f41-base: 4.4.0-0.23 Date: Mon, 29 Jun 2026 12:24:12 GMT Message-ID: <178273585238.1.1337529143603729234.rpms-gcc-caa5b98426bb@fedoraproject.org> List-ID: X-Git-Repo: rpms/gcc X-Git-Branch: rhel-f41-base X-Git-Rev: caa5b98426bb85515427b899c65c3a38fb02022f QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2NjCkJyYW5jaCA6 IHJoZWwtZjQxLWJhc2UKQ29tbWl0IDogY2FhNWI5ODQyNmJiODU1MTU0MjdiODk5YzY1YzNhMzhm YjAyMDIyZgpBdXRob3IgOiBKYWt1YiBKZWxpbmVrIDxqYWt1YkBmZWRvcmFwcm9qZWN0Lm9yZz4K RGF0ZSAgIDogMjAwOS0wMy0wN1QwOToxNjoyMiswMDowMApTdGF0cyAgOiArOTUyMy8tNSBpbiAy IGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9nY2Mv Yy9jYWE1Yjk4NDI2YmI4NTUxNTQyN2I4OTljNjVjM2EzOGZiMDIwMjJmP2JyYW5jaD1yaGVsLWY0 MS1iYXNlCgpMb2c6CjQuNC4wLTAuMjMKCi0tLQpkaWZmIC0tZ2l0IGEvZ2NjLnNwZWMgYi9nY2Mu c3BlYwppbmRleCBjYWNmNzg4Li41OWI3NWI4IDEwMDY0NAotLS0gYS9nY2Muc3BlYworKysgYi9n Y2Muc3BlYwpAQCAtMSw5ICsxLDkgQEAKLSVkZWZpbmUgREFURSAyMDA5MDMwNAotJWRlZmluZSBT Vk5SRVYgMTQ0NjAxCislZGVmaW5lIERBVEUgMjAwOTAzMDcKKyVkZWZpbmUgU1ZOUkVWIDE0NDY5 MwogJWRlZmluZSBnY2NfdmVyc2lvbiA0LjQuMAogIyBOb3RlLCBnY2NfcmVsZWFzZSBtdXN0IGJl IGludGVnZXIsIGlmIHlvdSB3YW50IHRvIGFkZCBzdWZmaXhlcyB0bwogIyAle3JlbGVhc2V9LCBh cHBlbmQgdGhlbSBhZnRlciAle2djY19yZWxlYXNlfSBvbiBSZWxlYXNlOiBsaW5lLgotJWRlZmlu ZSBnY2NfcmVsZWFzZSAwLjIyCislZGVmaW5lIGdjY19yZWxlYXNlIDAuMjMKICVkZWZpbmUgX3Vu cGFja2FnZWRfZmlsZXNfdGVybWluYXRlX2J1aWxkIDAKICVkZWZpbmUgbXVsdGlsaWJfNjRfYXJj aHMgc3BhcmM2NCBwcGM2NCBzMzkweCB4ODZfNjQKICVkZWZpbmUgaW5jbHVkZV9nYXBwbGV0dmll d2VyIDEKQEAgLTE0NSw3ICsxNDUsNyBAQCBQYXRjaDIxOiBnY2M0NC1jbG9vZy1kbC5wYXRjaAog UGF0Y2gyMjogZ2NjNDQtcmF3LXN0cmluZy5wYXRjaAogUGF0Y2gyNDogZ2NjNDQtYXRvbS5wYXRj aAogUGF0Y2gyNTogZ2NjNDQtcHIzOTIyNi5wYXRjaAotUGF0Y2gyNjogZ2NjNDQtcHIzOTM1OC5w YXRjaAorUGF0Y2gyNjogZ2NjNDQtcG93ZXI3LnBhdGNoCiAKIFBhdGNoMTAwMDogZmFzdGphci0w Ljk3LXNlZ2ZhdWx0LnBhdGNoCiAKQEAgLTQzNCw3ICs0MzQsNyBAQCB3aGljaCBhcmUgcmVxdWly ZWQgdG8gY29tcGlsZSB3aXRoIHRoZSBHTkFULgogJXBhdGNoMjIgLXAwIC1iIC5yYXctc3RyaW5n fgogJXBhdGNoMjQgLXAwIC1iIC5hdG9tfgogJXBhdGNoMjUgLXAwIC1iIC5wcjM5MjI2fgotJXBh dGNoMjYgLXAwIC1iIC5wcjM5MzU4fgorJXBhdGNoMjYgLXAwIC1iIC5wb3dlcjd+CiAKICMgVGhp cyB0ZXN0Y2FzZSBkb2Vzbid0IGNvbXBpbGUuCiBybSBsaWJqYXZhL3Rlc3RzdWl0ZS9saWJqYXZh LmxhbmcvUFIzNTAyMCoKQEAgLTE3NjksNiArMTc2OSwxOCBAQCBmaQogJWRvYyBycG0uZG9jL2No YW5nZWxvZ3MvbGlibXVkZmxhcC9DaGFuZ2VMb2cqCiAKICVjaGFuZ2Vsb2cKKyogU2F0IE1hciAg NyAyMDA5IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC4wLTAuMjMKKy0gdXBk YXRlIGZyb20gdHJ1bmsKKyAgLSBQUnMgYysrLzEzNTQ5LCBjKysvMjk0NjksIGMrKy8yOTYwNywg YysrLzMzNDkyLCBjKysvMzc1MjAsIGMrKy8zODkwOCwKKwljKysvOTYzNCwgZGVidWcvMzkzNzIs IG1pZGRsZS1lbmQvMzkzNjAsIHJ0bC1vcHRpbWl6YXRpb24vMzkyMzUsCisJdGVzdHN1aXRlLzM5 MzU3LCB0cmVlLW9wdGltaXphdGlvbi8zOTM0OQorICAtIGVtaXQgRFdfVEFHX2ltcG9ydGVkKiBl dmVuIGluIG1haW4gb3IgaW4gbGV4aWNhbCBibG9ja3MgdGhhdAorICAgIGNvbnRhaW4gbm8gYXV0 b21hdGljIHZhcmlhYmxlcyAoIzQ4ODU0NywgUFIgZGVidWcvMzkzNzkpCisgIC0gZml4IERXX0FU X2RlY2xfbGluZSBvbiBEV19UQUdfaW1wb3J0ZWQqICgjNDg4NzcxLCBQUiBkZWJ1Zy8zOTM4NykK KyAgLSBmaXggU0NDVk4gd2l0aCBTU0EgbmFtZXMgb2NjdXJyaW5nIGluIGFibm9ybWFsIFBISXMg KCM0ODgwNjEsCisgICAgUFIgdHJlZS1vcHRpbWl6YXRpb24vMzkzNjIpCistIHByZWxpbWluYXJ5 IFBvd2VyNyBzdXBwb3J0CisKICogV2VkIE1hciAgNCAyMDA5IEpha3ViIEplbGluZWsgPGpha3Vi QHJlZGhhdC5jb20+IDQuNC4wLTAuMjIKIC0gdXBkYXRlIGZyb20gdHJ1bmsKICAgLSBQUnMgYWRh LzM5MTcyLCBhZGEvMzkyNjQsIGJvb3RzdHJhcC8zOTI1NywgYysrLzM2NDExLCBjKysvMzc3ODks CgpkaWZmIC0tZ2l0IGEvcG93ZXI3LnBhdGNoIGIvcG93ZXI3LnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5YzE5NDgKLS0tIC9kZXYvbnVsbAorKysgYi9wb3dlcjcu cGF0Y2gKQEAgLTAsMCArMSw5NTA2IEBACisyMDA5LTAzLTA2ICBNaWNoYWVsIE1laXNzbmVyICA8 bWVpc3NuZXJAbGludXgudm5ldC5pYm0uY29tPgorCisJKiBkb2MvaW52b2tlLnRleGkgKC1tdnN4 LXNjYWxhci1tZW1vcnkpOiBOZXcgc3dpdGNoLCB0byBzd2l0Y2ggdG8KKwl1c2UgVlNYIHJlZyty ZWcgYWRkcmVzc2luZyBmb3IgYWxsIHNjYWxhciBkb3VibGUgcHJlY2lzaW9uCisJZmxvYXRpbmcg cG9pbnQuCisJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5vcHQgKC12c3gtc2NhbGFyLW1lbW9yeSk6 IERpdHRvLgorCQorCSogY29uZmlndXJlLmFjIChnY2NfY3ZfYXNfcG93ZXJwY19tZnBncHIpOiBT ZXQgYmludXRpbHMgdmVyc2lvbiB0bworCTIuMTkuMi4KKwkoZ2NjX2N2X2FzX3Bvd2VycGNfY21w Yik6IERpdHRvLgorCShnY2NfY3ZfYXNfcG93ZXJwY19kZnApOiBEaXR0by4KKwkoZ2NjX2N2X2Fz X3Bvd2VycGNfdnN4KTogRGl0dG8uCisJKGdjY19jdl9hc19wb3dlcnBjX3BvcGNudGQpOiBEaXR0 by4KKwkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KKworCSogY29uZmlnL3JzNjAwMC92ZWN0b3Iu bWQgKFZFQ19pbnQpOiBOZXcgbW9kZSBhdHRyaWJ1dGUgZm9yIHZlY3RvcgorCWNvbnZlcnNpb25z LgorCShWRUNfSU5UKTogRGl0dG8uCisJKGZ0cnVuYzxtb2RlPjIpOiBNYWtlIHRoaXMgYSBkZWZp bmVfZXhwYW5kLgorCShmbG9hdDxWRUNfaW50Pjxtb2RlPjIpOiBOZXcgdmVjdG9yIGNvbnZlcnNp b24gc3VwcG9ydCB0byBhZGQgVlNYCisJMzIgYml0IGludC8zMiBiaXQgZmxvYXRpbmcgcG9pbnQg Y29udmVydCBhbmQgNjQgYml0IGludC82NCBiaXQKKwlmbG9hdGluZyBwb2ludCB2ZWN0b3IgaW5z dHJ1Y3Rpb25zLgorCSh1bnNpZ25lZF9mbG9hdDxWRUNfaW50Pjxtb2RlPjIpOiBEaXR0by4KKwko Zml4X3RydW5jPG1vZGU+PFZFQ19pbnQ+Mik6IERpdHRvLgorCShmaXh1bnNfdHJ1bmM8bW9kZT48 VkVDX2ludD4yKTogRGl0dG8uCisKKwkqIGNvbmZpZy9yczYwMDAvcHJlZGljYXRlcy5tZCAoZWFz eV9mcF9jb25zdGFudCk6IDAuMCBpcyBhbiBlYXN5CisJY29uc3RhbnQgdW5kZXIgVlNYLgorCShp bmRleGVkX29yX2luZGlyZWN0X29wZXJhbmQpOiBBZGQgVlNYIGxvYWQvc3RvcmUgd2l0aCB1cGRh dGUKKwlzdXBwb3J0LgorCisJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChyczYwMDBfZGVidWdf YWRkcik6IE5ldyBnbG9iYWwgZm9yCisJLW1kZWJ1Zz1hZGRyLgorCShyczYwMDBfaW5pdF9oYXJk X3JlZ25vX21vZGVfb2spOiBBZGQgLW12c3gtc2NhbGFyLW1lbW9yeQorCXN1cHBvcnQuCisJKHJz NjAwMF9vdmVycmlkZV9vcHRpb25zKTogQWRkIC1tZGVidWc9YWRkciBzdXBwb3J0LgorCShyczYw MDBfYnVpbHRpbl9jb252ZXJzaW9uKTogQWRkIFZTWCBzYW1lIHNpemUgY29udmVyc2lvbnMuCisJ KHJzNjAwMF9sZWdpdGltaXplX2FkZHJlc3MpOiBBZGQgLW1kZWJ1Zz1hZGRyIHN1cHBvcnQuICBB ZGQKKwlzdXBwb3J0IGZvciBWU1ggbG9hZC9zdG9yZSB3aXRoIHVwZGF0ZSBpbnN0cnVjdGlvbnMu CisJKHJzNjAwMF9sZWdpdGltaXplX3JlbG9hZF9hZGRyZXNzKTogRGl0dG8uCisJKHJzNjAwMF9s ZWdpdGltYXRlX2FkZHJlc3MpOiBEaXR0by4KKwkocnM2MDAwX21vZGVfZGVwZW5kZW50X2FkZHJl c3MpOiBEaXR0by4KKwkocHJpbnRfb3BlcmFuZCk6IERpdHRvLgorCShiZGVzY18xYXJnKTogQWRk IGJ1aWx0aW5zIGZvciBjb252ZXJzaW9uIHRoYXQgY2FsbHMgZWl0aGVyIHRoZQorCVZTWCBvciBB bHRpdmVjIGluc24gcGF0dGVybi4KKwkocnM2MDAwX2NvbW1vbl9pbml0X2J1aWx0aW5zKTogRGl0 dG8uCisKKwkqIGNvbmZpZy9yczYwMDAvdnN4Lm1kIChWU1hfSSk6IERlbGV0ZSwgbm8gbG9uZ2Vy IHVzZWQuCisJKFZTaSk6IE5ldyBtb2RlIGF0dHJpYnV0ZSBmb3IgY29udmVyc2lvbnMuCisJKFZT SSk6IERpdHRvLgorCShWU2MpOiBEaXR0by4KKwkodnN4X21vdjxtb2RlPik6IEFkZCBsb2FkL3N0 b3JlIHdpdGggdXBkYXRlIHN1cHBvcnQuCisJKHZzeF9sb2FkPG1vZGU+X3VwZGF0ZSopOiBOZXcg aW5zbnMgZm9yIGxvYWQvc3RvcmUgd2l0aCB1cGRhdGUKKwlzdXBwb3J0LgorCSh2c3hfc3RvcmU8 bW9kZT5fdXBkYXRlKik6IERpdHRvLgorCSh2c3hfZm1hZGQ8bW9kZT40KTogR2VuZXJhdGUgY29y cmVjdCBjb2RlIGZvciBWNFNGLgorCSh2c3hfZm1zdWI8bW9kZT40KTogRGl0dG8uCisJKHZzeF9m bm1hZGQ8bW9kZT40XyopOiBEaXR0by4KKwkodnN4X2ZubXN1Yjxtb2RlPjRfKik6IERpdHRvLgor CSh2c3hfZmxvYXQ8VlNpPjxtb2RlPjIpOiBOZXcgaW5zbiBmb3IgdmVjdG9yIGNvbnZlcnNpb24u CisJKHZzeF9mbG9hdHVuczxWU2k+PG1vZGU+Mik6IERpdHRvLgorCSh2c3hfZml4X3RydW5jPG1v ZGU+PFZTaT4yKTogRGl0dG8uCisJKHZzeF9maXh1bnNfdHJ1bmM8bW9kZT48VlNpPjIpOiBEaXR0 by4KKwkodnN4X3h4bXJnaHcpOiBOZXcgaW5zbiBmb3IgVjRTRiBpbnRlcmxlYXZlLgorCSh2c3hf eHhtcmdsdyk6IERpdHRvLgorCisJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5oIChyczYwMDBfZGVi dWdfYWRkcik6IC1tZGVidWc9YWRkcgorCXN1cHBvcnQuCisJKFRBUkdFVF9ERUJVR19BRERSKTog RGl0dG8uCisJKHJzNjAwMF9idWlsdGlucyk6IEFkZCBWU1ggaW5zdHJ1Y3Rpb25zIGZvciBldmVu dHVhbCBWU1gKKwlidWlsdGlucy4KKworCSogY29uZmlnL3JzNjAwMC9hbHRpdmVjLm1kIChhbHRp dmVjX3Ztcmdoc2YpOiBEb24ndCBkbyB0aGUgYWx0aXZlYworCWluc3RydWN0aW9uIGlmIFZTWC4K KwkoYWx0aXZlY192bXJnbHNmKTogRGl0dG8uCisKKwkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLm1k IChtb3ZkZl9oYXJkZmxvYXQzMik6IEFkZCBzdXBwb3J0IGZvcgorCXVzaW5nIHh4bHhvciB0byB6 ZXJvIGEgZmxvYXRpbmcgcmVnaXN0ZXIgaWYgVlNYLgorCShtb3ZkZl9oYXJkZmxvYXQ2NF9tZnBn cHIpOiBEaXR0by4KKwkobW92ZGZfaGFyZGZsb2F0NjQpOiBEaXR0by4KKworMjAwOS0wMy0wMyAg TWljaGFlbCBNZWlzc25lciAgPG1laXNzbmVyQGxpbnV4LnZuZXQuaWJtLmNvbT4KKworCSogY29u ZmlnL3JzNjAwMC92c3gubWQgKHZzeF94eG1yZ2x3KTogRGVsZXRlIGZvciBub3csIHVzZSBBbHRp dmVjLgorCSh2c3hfeHhtcmdodyk6IERpdHRvLgorCisJKiBjb25maWcvcnM2MDAwL2FsdGl2ZWMu bWQgKGFsdGl2ZWNfdm1yZ2hzZik6IFVzZSB0aGlzIGluc24gZXZlbgorCW9uIFZTWCBzeXN0ZW1z LgorCShhbHRpdmVjX3Ztcmdsc2YpOiBEaXR0by4KKworCSogY29uZmlnL3JzNjAwMC9yczYwMDAu aCAoQVNNX0NQVV9OQVRJVkVfU1BFQyk6IFVzZSAlKGFzbV9kZWZhdWx0KQorCWlmIHdlIGFyZSBy dW5uaW5nIGFzIGEgY3Jvc3MgY29tcGlsZXIuCisKKwkqIGNvbmZpZy9yczYwMDAvdmVjdG9yLm1k ICh2ZWNfaW50ZXJsZWF2ZV9oaWdodjRzZik6IFVzZSBjb3JyZWN0CisJY29uc3RhbnRzIGZvciB0 aGUgZXh0cmFjdGlvbi4KKwkodmVjX2ludGVybGVhdmVfbG93djRzZik6IERpdHRvLgorCisJKiBj b25maWcvcnM2MDAwL3JzNjAwMC5tZCAoZmxvb3JkZjIpOiBGaXggdHlwbywgbWFrZSB0aGlzIGEK KwlkZWZpbmVfZXhwYW5kLCBub3QgZGVmaW5lX2luc24uCisKKwkqIGNvbmZpZy9yczYwMDAvYWl4 NTMuaCAoQVNNX0NQVV9TUEVDKTogSWYgLW1jcHU9bmF0aXZlLCBjYWxsCisJJTpsb2NhbF9jcHVf ZGV0ZWN0KGFzbSkgdG8gZ2V0IHRoZSBhcHByb3ByaWF0ZSBhc3NlbWJsZXIgZmxhZ3MgZm9yCisJ dGhlIG1hY2hpbmUuCisJKiBjb25maWcvcnM2MDAwL2FpeDYxLmggKEFTTV9DUFVfU1BFQyk6IERp dHRvLgorCSogY29uZmlnL3JzNjAwMC9yczYwMDAuaCAoQVNNX0NQVV9TUEVDKTogRGl0dG8uCisJ KEFTTV9DUFVfTkFUSVZFX1NQRUMpOiBOZXcgc3BlYyB0byBnZXQgYXNtIG9wdGlvbnMgaWYKKwkt bWNwdT1uYXRpdmUuCisJKEVYVFJBX1NQRUNTKTogQWRkIEFTTV9DUFVfTkFUSVZFX1NQRUMuCisK KwkqIGNvbmZpZy9yczYwMDAvZHJpdmVyLXJzNjAwMC5jIChhc21fbmFtZXMpOiBOZXcgc3RhdGlj IGFycmF5IHRvCisJZ2l2ZSB0aGUgYXBwcm9wcmlhdGUgYXNtIHN3aXRjaGVzIGlmIC1tY3B1PW5h dGl2ZS4KKwkoaG9zdF9kZXRlY3RfbG9jYWxfY3B1KTogQWRkIHN1cHBvcnQgZm9yICJhc20iLgor CisJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChwcm9jZXNzb3JfdGFyZ2V0X3RhYmxlKTogRG9u J3QgdHVybiBvbgorCS1taXNlbCBieSBkZWZhdWx0IGZvciBwb3dlcjcuCisKKzIwMDktMDMtMDIg IE1pY2hhZWwgTWVpc3NuZXIgIDxtZWlzc25lckBsaW51eC52bmV0LmlibS5jb20+CisKKwkqIGNv bmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9lbWl0X3N3ZGl2ZGYpOiBSZXZlcnQgbGFzdAor CWNoYW5nZSwgc2luY2Ugd2UgcmV2ZXJ0ZWQgdGhlIGZsb2F0aW5nIG11bHRpcGx5L2FkZCBjaGFu Z2VzLgorCisJKiBkb2MvbWQudGV4aSAoTWFjaGluZSBDb25zdHJhaW50cyk6IFVwZGF0ZSByczYw MDAgY29uc3RyYWludHMuCisKKwkqIGNvbmZpZy9yczYwMDAvdmVjdG9yLm1kIChuZWc8bW9kZT4y KTogRml4IHR5cG8gdG8gZW5hYmxlCisJdmVjdG9yaXplZCBuZWdhdGlvbi4KKwkoZnRydW5jPG1v ZGU+Mik6IE1vdmUgZnRydW5jIGV4cGFuZGVyIGhlcmUgZnJvbSBhbHRpdmVjLm1kLCBhbmQKKwlh ZGQgVjJERiBjYXNlLgorCSh2ZWNfaW50ZXJsZWF2ZV9oaWdodjRzZik6IENvcnJlY3QgdHlwZSB0 byBiZSBWNFNGLCBub3QgVjRTSS4KKwkodmVjX2V4dHJhY3RfZXZlbnYyZGYpOiBBZGQgZXhwYW5k ZXIuCisJKHZlY19leHRyYWN0X29kZHYyZGYpOiBEaXR0by4KKworCSogY29uZmlnL3JzNjAwMC92 c3gubWQgKHZzeF9mdHJ1bmM8bW9kZT4yKTogTmV3IFZTWCBwYXR0ZXJuIGZvcgorCXRydW5jYXRl LgorCSh2c3hfZnRydW5jZGYyKTogRGl0dG8uCisJKHZzeF94eHNwbHR3KTogTmV3IGluc3RydWN0 aW9uIGZvciB3b3JkIHNwbGF0LgorCSh2c3hfeHhtcmdsdyk6IFdoaXRlc3BhY2UgY2hhbmdlcy4g IEZpeCB0eXBvIGZyb20gVjRTSSB0byB2NFNGLgorCSh2c3hfeHhtcmdodyk6IERpdHRvLgorCisJ KiBjb25maWcvcnM2MDAwL2FsdGl2ZWMubWQgKGFsdGl2ZWNfdm1yZ2hzZik6IFdoaXRlc3BhY2Ug Y2hhbmdlcy4KKwkoYWx0aXZlY192bXJnbHNmKTogRGl0dG8uCisJKGFsdGl2ZWNfdnNwbHRzZik6 IERpc2FibGUgaWYgd2UgaGF2ZSBWU1guCisJKGFsdGl2ZWNfZnRydW5jdjRzZjIpOiBNb3ZlIGV4 cGFuZGVyIHRvIHZlY3Rvci5tZCwgcmVuYW1lIGluc24uCisKKwkqIGNvbmZpZy9yczYwMDAvcnM2 MDAwLm1kIChmdHJ1bmNkZjIpOiBBZGQgZXhwYW5kZXIgZm9yIFZTWC4KKworCSogY29uZmlnL3Jz NjAwMC9yczYwMDAuYyAocnM2MDAwX2luaXRfaGFyZF9yZWdub19tb2RlX29rKToKKwlSZWVuYWJs ZSB2ZWN0b3JpemluZyBWNFNGIHVuZGVyIGFsdGl2ZWMuCisJKHJzNjAwMF9oYXJkX3JlZ25vX21v ZGVfb2spOiBEb24ndCBhbGxvdyBmbG9hdGluZyB2YWx1ZXMgaW4gTFIsCisJQ1RSLCBNUS4gIEFs c28sIFZSU0FWRS9WU0NSIGFyZSBib3RoIDMyLWJpdHMuCisJKHJzNjAwMF9pbml0X2hhcmRfcmVn bm9fbW9kZV9vayk6IFByaW50IHNvbWUgb2YgdGhlIHNwZWNpYWwKKwlyZWdpc3RlcnMgaWYgLW1k ZWJ1Zz1yZWcuCisKKwkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLm1kIChmbG9hdGluZyBtdWx0aXBs eS9hZGQgaW5zbnMpOiBHbyBiYWNrCisJdG8gdGhlIG9yaWdpbmFsIHNlbWFudGljcyBmb3IgbXVs dGlwbHkgYWRkL3N1YnRyYWN0LCBwYXJ0aWN1bGFybHkKKwl3aXRoIC1mZmFzdC1tYXRoLgorCisJ KiBjb25maWcvcnM2MDAwL3ZzeC5tZCAoZmxvYXRpbmcgbXVsdGlwbHkvYWRkIGluc25zKTogTWly cm9yIHRoZQorCXJzNjAwMCBmbG9hdGluZyBwb2ludCBtdWx0aXBseS9hZGQgaW5zbnMgaW4gVlNY LgorCisyMDA5LTAzLTAxICBNaWNoYWVsIE1laXNzbmVyICA8bWVpc3NuZXJAbGludXgudm5ldC5p Ym0uY29tPgorCisJKiBjb25maWcvcnM2MDAwL3ZlY3Rvci5tZCAoVkVDX0wpOiBBdCBUSW1vZGUu CisJKFZFQ19NKTogTGlrZSBWRUNfTCwgZXhjZXB0IG5vIFRJbW9kZS4KKwkoVkVDX2Jhc2UpOiBB ZGQgVEltb2RlIHN1cHBvcnQuCisJKG1vdjxtb2RlPik6IFVzZSBWRUNfTSwgbm90IFZFQ19MLiAg SWYgdGhlcmUgaXMgbm8gZXh0cmEKKwlvcHRpbWl6YXRpb24gZm9yIHRoZSBtb3ZlLCBqdXN0IGdl bmVyYXRlIHRoZSBzdGFuZGFyZCBtb3ZlLgorCSh2ZWN0b3Jfc3RvcmVfPG1vZGU+KTogRGl0dG8u CisJKHZlY3Rvcl9sb2FkXzxtb2RlPik6IERpdHRvLgorCSh2ZWNfaW5pdDxtb2RlPik6IFVzZSB2 ZWNfaW5pdF9vcGVyYW5kIHByZWRpY2F0ZS4KKworCSogY29uZmlnL3JzNjAwMC9wcmVkaWNhdGVz Lm1kICh2ZWNfaW5pdF9vcGVyYW5kKTogTmV3IHByZWRpY2F0ZS4KKworCSogY29uZmlnL3JzNjAw MC9yczYwMDAuYyAocnM2MDAwX2hhcmRfcmVnbm9fbW9kZV9vayk6IEFsbG93IG1vZGUKKwlpbiBh IFZTWCByZWdpc3RlciBpZiB0aGVyZSBpcyBhIG1vdmUgb3BlcmF0aW9uLgorCShyczYwMDBfdmVj dG9yX3JlZ19jbGFzcyk6IEFkZCBpbnRlcm5hbCByZWdpc3RlciBudW1iZXIgdG8gdGhlCisJZGVi dWcgb3V0cHV0LgorCShyczYwMDBfaW5pdF9oYXJkX3JlZ25vX21vZGVfb2spOiBSZW9yZ2FuaXpl IHNvIGFsbCBvZiB0aGUgY29kZQorCWZvciBhIGdpdmVuIHR5cGUgaXMgbG9jYXRlZCB0b2dldGhl ci4gIElmIG5vdCAtbXZzeCwgbWFrZSAid3MiCisJY29uc3RyYWludCBiZWNvbWUgTk9fUkVHUywg bm90IEZMT0FUX1JFR1MuICBDaGFuZ2UgLW1kZWJ1Zz1yZWcKKwlvdXRwdXQuCisJKHJzNjAwMF9l eHBhbmRfdmVjdG9yX2luaXQpOiBCZWZvcmUgY2FsbGluZyBnZW5fdnN4X2NvbmNhdF92MmRmLAor CW1ha2Ugc3VyZSB0aGUgdHdvIGZsb2F0IGFyZ3VtZW50cyBhcmUgY29waWVkIGludG8gcmVnaXN0 ZXJzLgorCShyczYwMDBfbGVnaXRpbWF0ZV9vZmZzZXRfYWRkcmVzc19wKTogSWYgbm8gdnN4IG9y IGFsdGl2ZWMsIGRvbid0CisJZGlzYWxsb3cgb2Zmc2V0IGFkZHJlc3NpbmcuICBBZGQgVjJESW1v ZGUuICBJZiBUSW1vZGUgaXMgaGFuZGxlZAorCWJ5IHRoZSB2ZWN0b3IgdW5pdCwgYWxsb3cgaW5k ZXhlZCBhZGRyZXNzaW5nLiAgQ2hhbmdlIGRlZmF1bHQgY2FzZQorCXRvIGJlIGEgZmF0YWxfaW5z biBpbnN0ZWFkIG9mIGdjY191bnJlYWNoYWJsZS4KKwkocnM2MDAwX2hhbmRsZV9hbHRpdmVjX2F0 dHJpYnV0ZSk6IEFkZCBzdXBwb3J0IGZvciB2ZWN0b3IgZG91YmxlCisJaWYgLW12c3guCisJKHJz NjAwMF9yZWdpc3Rlcl9tb3ZlX2Nvc3QpOiBBZGQgc3VwcG9ydCBmb3IgVlNYX1JFR1MuICBLbm93 IHRoYXQKKwl1bmRlciBWU1gsIHlvdSBjYW4gbW92ZSBiZXR3ZWVuIGZsb2F0IGFuZCBhbHRpdmVj IHJlZ2lzdGVycworCWNoZWFwbHkuCisJKHJzNjAwMF9lbWl0X3N3ZGl2ZGYpOiBDaGFuZ2UgdGhl IHBhdHRlcm4gb2YgdGhlIG5lZ2F0ZSBtdWx0aXBseQorCWFuZCBzdWJ0cmFjdCBvcGVyYXRpb24u CisKKwkqIGNvbmZpZy9yczYwMDAvdnN4Lm1kIChWU1hfSSk6IEFkZCBUSW1vZGUuCisJKFZTWF9M KTogQWRkIFRJbW9kZS4KKwkoVlNtKTogRGl0dG8uCisJKFZTcyk6IERpdHRvLgorCShWU3IpOiBE aXR0by4KKwkoVU5TUEVDX1ZTWF9DT05DQVRfVjJERik6IE5ldyBjb25zdGFudC4KKwkodnN4X2Zy ZTxtb2RlPjIpOiBBZGQgcmVjaXByb2NhbCBlc3RpbWF0ZS4KKwkodnN4X2ZyZURGMik6IERpdHRv LgorCSh2c3hfZm5tYWRkPG1vZGU+NCk6IFJld29yayBwYXR0ZXJuIHNvIGl0IG1hdGNoZXMgdGhl CisJY2Fub25pY2FsaXphdGlvbiB0aGF0IHRoZSBjb21waWxlciBkb2VzLgorCSh2c3hfZm5tc3Vi PG1vZGU+NCk6IERpdHRvLgorCSh2c3hfZm5tYWRkREY0KTogRGl0dG8uCisJKHZzeF9mbm1zdWJE RjQpOiBEaXR0by4KKwkodnN4X3ZzZWw8bW9kZT4pOiBVc2UgdnN4X3JlZ2lzdGVyX29wZXJhbmQs IG5vdCByZWdpc3Rlcl9vcGVyYW5kLgorCSh2c3hfYWRkZGYzKTogRGl0dG8uCisJKHZzeF9zdWJk ZjMpOiBEaXR0by4KKwkodnN4X211bGRmMyk6IERpdHRvLgorCSh2c3hfZGl2ZGYzKTogRGl0dG8u CisJKHZzeF9uZWdkZjMpOiBEaXR0by4KKwkodnN4X2Fic2RmMik6IERpdHRvLgorCSh2c3hfbmFi c2RmMik6IERpdHRvLgorCSh2c3hfY29weXNpZ248bW9kZT4zKTogQWRkIGNvcHlzaWduIHN1cHBv cnQuCisJKHZzeF9jb3B5c2lnbkRGMyk6IERpdHRvLgorCSh2c3hfY29uY2F0X3YyZGYpOiBSZXdy aXRlIHRvIHVzZSBhbiBVTlNQRUMuCisJKHZzeF9zZXRfdjJkZik6IFVzZSAid3MiIGNvbnN0cmFp bnQgZm9yIHNjYWxhciBmbG9hdC4KKwkodnN4X3NwbGF0djJkZik6IERpdHRvLgorCisJKiBjb25m aWcvcnM2MDAwL3JzNjAwMC5oIChWRUNUT1JfVU5JVF9OT05FX1ApOiBOZXcgbWFjcm8gdG8gc2F5 IG5vCisJdmVjdG9yIHN1cHBvcnQuCisJKFZFQ1RPUl9NRU1fTk9ORV9QKTogRGl0dG8uCisJKFZT WF9NT1ZFX01PREUpOiBBZGQgVjJESW1vZGUsIFRJbW9kZS4KKworCSogY29uZmlnL3JzNjAwMC9h bHRpdmVjLm1kIChWTSk6IEFkZCBWMkRJLCBUSS4KKwkoYnVpbGRfdmVjdG9yX21hc2tfZm9yX2xv YWQpOiBGaXggdGhpbmtvIGluIFZTWCBjYXNlLgorCisJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5t ZCAoZm1hZGRzZjRfcG93ZXJwYyk6IE5hbWUgcHJldmlvdXNseQorCXVubmFtZWQgcGF0dGVybi4g IEZpeCBpbnNucyBzbyBjb21iaW5lIHdpbGwgZ2VuZXJhdGUgdGhlIG5lZ2F0aXZlCisJbXVsdGlw bHkgYW5kIHN1YnRyYWN0IG9wZXJhdGlvbnMuCisJKGZtYWRkc2Y0X3Bvd2VyKTogRGl0dG8uCisJ KGZtc3Vic2Y0X3Bvd2VycGMpOiBEaXR0by4KKwkoZm1zdWJzZjRfcG93ZXIpOiBEaXR0by4KKwko Zm5tYWRkc2Y0X3Bvd2VycGMpOiBEaXR0by4KKwkoZm5tYWRkc2Y0X3Bvd2VyKTogRGl0dG8uCisJ KGZubXN1YnNmNF9wb3dlcnBjKTogRGl0dG8uCisJKGZubXN1YnNmNF9wb3dlcik6IERpdHRvLgor CShmbnN1YnNmNF9wb3dlcnBjMik6IERpdHRvLgorCShmbnN1YnNmNF9wb3dlcjIpOiBEaXR0by4K KwkoZm1hZGRkZjRfcG93ZXJwYyk6IERpdHRvLgorCShmbWFkZGRmNF9wb3dlcik6IERpdHRvLgor CShmbXN1YmRmNF9wb3dlcnBjKTogRGl0dG8uCisJKGZtc3ViZGY0X3Bvd2VyKTogRGl0dG8uCisJ KGZubWFkZGRmNF9wb3dlcnBjKTogRGl0dG8uCisJKGZubWFkZGRmNF9wb3dlcik6IERpdHRvLgor CShmbm1zdWJkZjRfcG93ZXJwYyk6IERpdHRvLgorCShmbm1zdWJkZjRfcG93ZXIpOiBEaXR0by4K KwkoY29weXNpZ25kZjMpOiBJZiBWU1gsIGNhbGwgdGhlIFZTWCBjb3B5c2lnbi4KKwkoZnJlZCk6 IFNwbGl0IGludG8gYW4gZXhwYW5kZXIgYW5kIGluc24uICBPbiBpbnNuLCBkaXNhYmxlIGlmCisJ VlNYLgorCShtb3ZkZl9oYXJkZmxvYXQzMik6IFJld29yayBWU1ggc3VwcG9ydC4KKwkobW92ZGZf aGFyZGZsb2F0NjRfbWZwZ3ByKTogRGl0dG8uCisJKG1vdmRmX2hhcmRmbG9hdDY0KTogRGl0dG8u CisJKG1vdnRpX3BwYzY0KTogSWYgdmVjdG9yIHVuaXQgaXMgaGFuZGxpbmcgVEltb2RlLCBkaXNh YmxlIHRoaXMKKwlwYXR0ZXJuLgorCisyMDA5LTAyLTI4ICBNaWNoYWVsIE1laXNzbmVyICA8bWVp c3NuZXJAbGludXgudm5ldC5pYm0uY29tPgorCisJKiBjb25maWcvcnM2MDAwL3BwYy1hc20uaDog SWYgX19WU1hfXyBkZWZpbmUgdGhlIGFkZGl0aW9uYWwgc2NhbGFyCisJZmxvYXRpbmcgcG9pbnQg cmVnaXN0ZXJzIHRoYXQgb3ZlcmxhcCB3aXRoIHRoIEFsdGl2ZWMgcmVnaXN0ZXJzLgorCisyMDA5 LTAyLTI3ICBNaWNoYWVsIE1laXNzbmVyICA8bWVpc3NuZXJAbGludXgudm5ldC5pYm0uY29tPgor CisJKiBjb25maWcvcnM2MDAwL3NwZS5tZCAoc3BlX2ZpeHVuc190cnVuY2Rmc2kyKTogUmVuYW1l IGZyb20KKwlmaXh1bnNfdHJ1bmNkZnNpMiwgYW5kIG1vdmUgZml4dW5zX3RydW5jZGZzaTIgaW50 byByczYwMDAubWQuCisKKwkqIGNvbmZpZy9yczYwMDAvcHBjLWFzbS5oOiBJZiBfX0FMVElWRUNf XyBpcyBkZWZpbmVkLCBkZWZpbmUgdGhlCisJQWx0aXZlYyByZWdpc3RlcnMuICBJZiBfX1ZTWF9f IGlzIGRlZmluZWQsIGRlZmluZSB0aGUgVlNYCisJcmVnaXN0ZXJzLgorCisJKiBjb25maWcvcnM2 MDAwL3JzNjAwMC5vcHQgKC1tdnN4LXNjYWxhci1kb3VibGUpOiBNYWtlIHRoaXMgb24gYnkKKwlk ZWZhdWx0LgorCSgtbWlzZWwpOiBNYWtlIHRoaXMgYSB0YXJnZXQgbWFzayBpbnN0ZWFkIG9mIGEg dmFyaWFibGUuCisKKwkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9pc2VsKTogRGVs ZXRlIGdsb2JhbCB2YXJpYWJsZS4KKwkocnM2MDAwX2V4cGxpY2l0X29wdGlvbnMpOiBEZWxldGUg aXNlbCBmaWVsZC4KKwkoUE9XRVJQQ19NQVNLUyk6IEFkZCBNQVNLX0lTRUwuCisJKHByb2Nlc3Nv cl90YXJnZXRfdGFibGUpOiBBZGQgTUFTS19JU0VMIHRvIDg1NDAsIDg1NDgsIGU1MDBtYywgYW5k CisJcG93ZXI3IHByb2Nlc3NvcnMuCisJKHJzNjAwMF9vdmVycmlkZV9vcHRpb25zKTogTW92ZSAt bWlzZWwgdG8gYSB0YXJnZXQgbWFzay4KKwkocnM2MDAwX2hhbmRsZV9vcHRpb24pOiBEaXR0by4K KwkocnM2MDAwX2VtaXRfaW50X2Ntb3ZlKTogQWRkIHN1cHBvcnQgZm9yIDY0LWJpdCBpc2VsLgor CisJKiBjb25maWcvcnM2MDAwL3ZzeC5tZCAodnN4X2Zsb2F0ZGlkZjIpOiBOZXcgc2NhbGFyIGZs b2F0aW5nIHBvaW50CisJcGF0dGVybiB0byBzdXBwb3J0IFZTWCBjb252ZXJzaW9uIGFuZCByb3Vu ZGluZyBpbnN0cnVjdGlvbnMuCisJKHZzeF9mbG9hdHVuc2RpZGYyKTogRGl0dG8uCisJKHZzeF9m aXhfdHJ1bmRmZGkyKTogRGl0dG8uCisJKHZzeF9maXh1bnNfdHJ1bmRmZGkyKTogRGl0dG8uCisJ KHZzeF9idHJ1bmRmMik6IERpdHRvLgorCSh2c3hfZmxvb3JkZjIpOiBEaXR0by4KKwkodnN4X2Nl aWxkZjIpOiBEaXR0by4KKworCSogY29uZmlnL3JzNjAwMC9yczYwMDAuaCAocnM2MDAwX2lzZWwp OiBEZWxldGUgZ2xvYmFsLgorCShUQVJHRVRfSVNFTCk6IERlbGV0ZSwgc2luY2UgLW1pc2VsIGlz IG5vdyBhIHRhcmdldCBtYXNrLgorCShUQVJHRVRfSVNFTDY0KTogTmV3IHRhcmdldCBvcHRpb24g Zm9yIC1taXNlbCBvbiA2NC1iaXQgc3lzdGVtcy4KKworCSogY29uZmlnL3JzNjAwMC9hbHRpdmVj Lm1kIChhbHRpdmVjX2d0dTxtb2RlPik6IFVzZSBndHUsIG5vdCBnZXUuCisKKwkqIGNvbmZpZy9y czYwMDAvcnM2MDAwLm1kIChzZWwpOiBOZXcgbW9kZSBhdHRyaWJ1dGUgZm9yIDY0LWJpdAorCUlT RUwgc3VwcG9ydC4KKwkobW92PG1vZGU+Y2MpOiBBZGQgNjQtYml0IElTRUwgc3VwcG9ydC4KKwko aXNlbF9zaWduZWRfPG1vZGU+KTogRGl0dG8uCisJKGlzZWxfdW5zaWduZWRfPG1vZGU+KTogRGl0 dG8uCisJKGZpeHVuc190cnVuY2Rmc2kyKTogTW92ZSBleHBhbmRlciBoZXJlIGZyb20gc3BlLm1k LgorCShmaXh1bnNfdHJ1bmNkZmRpMik6IE5ldyBleHBhbmRlciBmb3IgdW5zaWduZWQgZmxvYXRp bmcgcG9pbnQKKwljb252ZXJzaW9uIG9uIHBvd2VyNy4KKwkoYnRydW5jZGYyKTogU3BsaXQgaW50 byBleHBhbmRlciBhbmQgaW5zbi4gIE9uIHRoZSBpbnNuLCBkaXNhbGxvdworCW9uIFZTWCwgc28g dGhlIFZTWCBpbnN0cnVjdGlvbiB3aWxsIGJlIGdlbmVyYXRlZC4KKwkoY2VpbGRmMik6IERpdHRv LgorCShmbG9vcmRmMik6IERpdHRvLgorCShmbG9hdGRpZGYyKTogRGl0dG8uCisJKGZpeF90cnVu Y2RmZGkyKTogRGl0dG8uCisJKHNtaW5kaTMpOiBEZWZpbmUgaWYgd2UgaGF2ZSAtbWlzZWwgb24g NjQtYml0IHN5c3RlbXMuCisJKHNtYXhkaTMpOiBEaXR0by4KKwkodW1pbmRpMyk6IERpdHRvLgor CSh1bWF4ZGkzKTogRGl0dG8uCisKKwkqIGNvbmZpZy9yczYwMDAvZTUwMC5oIChDSEVDS19FNTAw X09QVElPTlMpOiBEaXNhYmxlIC1tdnN4IG9uCisJRTUwMC4KKworMjAwOS0wMi0yNiAgTWljaGFl bCBNZWlzc25lciAgPG1laXNzbmVyQGxpbnV4LnZuZXQuaWJtLmNvbT4KKworCSogY29uZmlnL3Jz NjAwMC9jb25zdHJhaW50cy5tZCAoIndkIiBjb25zdHJhaW50KTogIENoYW5nZSB0aGUKKwl2YXJp YWJsZSB0aGF0IGhvbGRzIHRoZSByZWdpc3RlciBjbGFzcyB0byB1c2UuCisJKCJ3ZiIgY29uc3Ry YWludCk6IERpdHRvLgorCSgid3MiIGNvbnN0cmFpbnQpOiBEaXR0by4KKwkoIndhIiBjb25zdHJh aW50KTogRGl0dG8uCisKKwkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLm9wdCAoLW12c3gtdmVjdG9y LW1lbW9yeSk6IE1ha2UgdGhpcyBvbiBieQorCWRlZmF1bHQuCisJKC1tdnN4LXZlY3Rvci1mbG9h dCk6IERpdHRvLgorCisJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChyczYwMDBfdmVjdG9yX3Jl Z19jbGFzcyk6IE5ldyBnbG9iYWwgdG8KKwlob2xkIHRoZSByZWdpc3RlciBjbGFzc2VzIGZvciB0 aGUgdmVjdG9yIG1vZGVzLgorCShyczYwMDBfdnN4X3Y0c2ZfcmVnY2xhc3MpOiBEZWxldGUsIG1v dmUgaW50bworCXJzNjAwMF92ZWN0b3JfcmVnX2NsYXNzLgorCShyczYwMDBfdnN4X3YyZGZfcmVn Y2xhc3MpOiBEaXR0by4KKwkocnM2MDAwX3ZzeF9kZl9yZWdjbGFzcyk6IERpdHRvLgorCShyczYw MDBfdnN4X3JlZ19jbGFzcyk6IFJlbmFtZSBmcm9tIHJzNjAwMF92c3hfYW55X3JlZ2NsYXNzLgor CShyczYwMDBfaGFyZF9yZWdub19tb2RlX29rKTogUmV3b3JrIFZTWCwgQWx0aXZlYyByZWdpc3Rl cnMuCisJKHJzNjAwMF9pbml0X2hhcmRfcmVnbm9fbW9kZV9vayk6IFNldHVwIHJzNjAwMF92ZWN0 b3JfcmVnX2NsYXNzLgorCURyb3AgcnM2MDAwX3ZzeF8qX3JlZ2NsYXNzLiAgQnkgZGVmYXVsdCwg dXNlIGFsbCA2NCByZWdpc3RlcnMgZm9yCisJVjRTRiBhbmQgVjJERi4gIFVzZSBWU1hfUkVHX0NM QVNTX1AgbWFjcm8gaW5zdGVhZCBvZiBzZXBhcmF0ZQorCXRlc3RzLiAgVXBkYXRlIC1tZGVidWc9 cmVnIHByaW50b3V0LgorCShyczYwMDBfcHJlZmVycmVkX3JlbG9hZF9jbGFzcyk6IElmIFZTWCwg cHJlZmVyIEZMT0FUX1JFR1MgZm9yCisJc2NhbGFyIGZsb2F0aW5nIHBvaW50IGFuZCBBTFRJVkVD X1JFR1MgZm9yIHRoZSB0eXBlcyB0aGF0IGhhdmUKKwlhbHRpdmVjIGluc3RydWN0aW9ucy4KKwko cnM2MDAwX3NlY29uZGFyeV9tZW1vcnlfbmVlZGVkKTogSWYgVlNYLCB3ZSBjYW4gY29weSBiZXR3 ZWVuIEZQUgorCWFuZCBBbHRpdmVjIHJlZ2lzdGVycyB3aXRob3V0IG5lZWRlZCBtZW1vcnkuCisJ KHJzNjAwMF9zZWNvbmRhcnlfcmVsb2FkX2NsYXNzKTogRGVsZXRlIEFUVFJJQlVURV9VTlVTRUQg ZnJvbSBhbgorCWFyZ3VtZW50IHRoYXQgaXMgdXNlZC4gIElmIFZTWCwgd2UgY2FuIGNvcHkgYmV0 d2VlbiBGUFIgYW5kCisJQWx0aXZlYyByZWdpc3RlcnMgZGlyZWN0bHkuCisKKwkqIGNvbmZpZy9y czYwMDAvcnM2MDAwLmggKFZTWF9NT1ZFX01PREUpOiBBZGQgaW4gdGhlIEFsdGl2ZWMKKwl0eXBl cy4KKwkocnM2MDAwX3ZzeF92NHNmX3JlZ2NsYXNzKTogRGVsZXRlLgorCShyczYwMDBfdnN4X3Yy ZGZfcmVnY2xhc3MpOiBEaXR0by4KKwkocnM2MDAwX3ZzeF9kZl9yZWdjbGFzcyk6IERpdHRvLgor CShyczYwMDBfdnN4X3JlZ19jbGFzcyk6IFJlbmFtZSBmcm9tIHJzNjAwMF92c3hfYW55X3JlZ19j bGFzcy4KKwkocnM2MDAwX3ZlY3Rvcl9yZWdfY2xhc3MpOiBOZXcgZ2xvYmFsIHRvIG1hcCBtYWNo aW5lIG1vZGUgdG8gdGhlCisJcHJlZmVycmVkIHJlZ2lzdGVyIGNsYXNzIHRvIHVzZSBmb3IgdGhh dCBtb2RlLgorCShWU1hfUkVHX0NMQVNTX1ApOiBOZXcgbWFjcm8gdG8gcmV0dXJuIHRydWUgZm9y IGFsbCBvZiB0aGUKKwlyZWdpc3RlciBjbGFzc2VzIFZTWCBpdGVtcyBjYW4gYmUgaW4uCisKKzIw MDktMDItMjUgIE1pY2hhZWwgTWVpc3NuZXIgIDxtZWlzc25lckBsaW51eC52bmV0LmlibS5jb20+ CisKKwkqIGRvYy9pbnZva2UudGV4aSAoLW12c3gtdmVjdG9yLW1lbW9yeSk6IFJlbmFtZSBmcm9t CisJLW12c3gtdmVjdG9yLW1vdmUuCisJKC1tdnN4LXZlY3Rvci1sb2dpY2FsKTogRGVsZXRlLgor CisJKiBjb25maWcvcnM2MDAwL2FpeDUzLmggKEFTTV9DUFVfU1BFQyk6IEFkZCBwb3dlcjcgc3Vw cG9ydC4KKwkqIGNvbmZpZy9yczYwMDAvYWl4NjEuaCAoQVNNX0NQVV9TUEVDKTogRGl0dG8uCisK KwkqIGNvbmZpZy9yczYwMDAvdmVjdG9yLm1kIChhbGwgaW5zbnMpOyBDaGFuZ2UgZnJvbSB1c2lu ZworCXJzNjAwMF92ZWN0b3JfaW5mbyB0byBWRUNUT1JfTUVNXyogb3IgVkVDVE9SX1VOSVRfKiBt YWNyb3MuCisKKwkqIGNvbmZpZy9yczYwMDAvY29uc3RyYWludHMubWQgKCJ3aSIgY29uc3RyYWlu dCk6IERlbGV0ZS4KKwkoIndsIiBjb25zdHJhaW50KTogRGl0dG8uCisJKCJ3cyIgY29uc3RyYWlu dCk6IENoYW5nZSB0byB1c2UgcnM2MDAwX3ZzeF9kZl9yZWdjbGFzcy4KKworCSogY29uZmlnL3Jz NjAwMC9yczYwMDAub3B0ICgtbXZzeC12ZWN0b3ItbWVtb3J5KTogUmVuYW1lIGZyb20KKwktbXZz eC12ZWN0b3ItbW92ZS4KKwkoLW12c3gtdmVjdG9yLWZsb2F0KTogTWFrZSBkZWZhdWx0IDAsIG5v dCAxLgorCSgtbXZzeC12ZWN0b3ItZG91YmxlKTogTWFrZSBkZWZhdWx0IC0xLCBub3QgMS4KKwko LW12c3gtdmVjdG9yLWxvZ2ljYWwpOiBEZWxldGUuCisKKwkqIGNvbmZpZy9yczYwMDAvcnM2MDAw LmMgKHJzNjAwMF92ZWN0b3JfaW5mbyk6IERlbGV0ZS4KKwkocnM2MDAwX3ZlY3Rvcl91bml0KTog TmV3IGdsb2JhbCBhcnJheSB0byBzYXkgd2hhdCB2ZWN0b3IgdW5pdCBpcworCXVzZWQgZm9yIGFy aXRobWV0aWMgaW5zdHJ1Y3Rpb25zLgorCShyczYwMDBfdmVjdG9yX21vdmUpOiBOZXcgZ2xvYmFs IGFycmF5IHRvIHNheSB3aGF0IHZlY3RvciB1bml0IGlzCisJdXNlZCBmb3IgbWVtb3J5IHJlZmVy ZW5jZXMuCisJKHJzNjAwMF92c3hfaW50X3JlZ2NsYXNzKTogRGVsZXRlLgorCShyczYwMDBfdnN4 X2xvZ2ljYWxfcmVnY2xhc3MpOiBEZWxldGUuCisJKHJzNjAwMF9oYXJkX3JlZ25vX25yZWdzX2lu dGVybmFsKTogU3dpdGNoIGZyb20gdXNpbmcKKwlyczYwMDBfdmVjdG9yX2luZm8gdG8gcnM2MDAw X3ZlY3Rvcl91bml0LCByczYwMDBfdmVjdG9yX21vdmUuCisJKHJzNjAwMF9oYXJkX3JlZ25vX21v ZGVfb2spOiBEaXR0by4gIFJlZm9ybWF0IGNvZGUgc29tZXdoYXQuCisJKHJzNjAwMF9kZWJ1Z192 ZWN0b3JfdW5pdCk6IE5ldyBhcnJheSB0byBwcmludCB2ZWN0b3IgdW5pdAorCWluZm9ybWF0aW9u IGlmIC1tZGVidWc9cmVnLgorCShyczYwMDBfaW5pdF9oYXJkX3JlZ25vX21vZGVfb2spOiBSZXdv cmsgdG8gYmV0dGVyIGRlc2NyaWJlIFZTWAorCWFuZCBBbHRpdmVjIHJlZ2lzdGVyIHNldHMuCisJ KGJ1aWx0aW5fbWFza19mb3JfbG9hZCk6IFJldHVybiAwIGlmIC1tdnN4LgorCShyczYwMDBfbGVn aXRpbWl6ZV9yZWxvYWRfYWRkcmVzcyk6IEFsbG93IEFORCBpbiBWU1ggYWRkcmVzc2VzLgorCShy czYwMDBfbGVnaXRpbWF0ZV9hZGRyZXNzKTogRGl0dG8uCisJKGJkZXNjXzNhcmcpOiBEZWxldGUg dnNlbHYyZGkgYnVpbHRpbi4KKwkocnM2MDAwX2VtaXRfbWlubWF4KTogVXNlIHJzNjAwMF92ZWN0 b3JfdW5pdCBpbnN0ZWFkIG9mCisJcnM2MDAwX3ZlY3Rvcl9pbmZvLgorCShyczYwMDBfdmVjdG9y X21vZGVfc3VwcG9ydGVkX3ApOiBEaXR0by4KKworCSogY29uZmlnL3JzNjAwMC92c3gubWQgKGFs bCBpbnNucyk6IENoYW5nZSBmcm9tIHVzaW5nCisJcnM2MDAwX3ZlY3Rvcl9pbmZvIHRvIFZFQ1RP Ul9NRU1fKiBhbmQgVkVDVE9SX1VOSVRfKiBtYWNyb3MuCisJKFZTcik6IENoYW5nZSB0byB1c2Ug InYiIHJlZ2lzdGVyIGNsYXNzLCBub3QgIndpIi4KKwkodnN4X21vdjxtb2RlPik6IENvbWJpbmUg ZmxvYXRpbmcgYW5kIGludGVnZXIuICBBbGxvdyBwcmVmZXJlZAorCXJlZ2lzdGVyIGNsYXNzLCBh bmQgdGhlbiB1c2UgP3dhIGZvciBhbGwgVlNYIHJlZ2lzdGVycy4KKwkodnN4X2ZtYWRkZGY0KTog VXNlIHdzIGNvbnN0cmFpbnQsIG5vdCBmLgorCSh2c3hfZm1zdWJkZjQpOiBEaXR0by4KKwkodnN4 X2ZubWFkZGRmNCk6IERpdHRvLgorCSh2c3hfZm5tc3ViZGY0KTogRGl0dG8uCisJKHZzeF9hbmQ8 bW9kZT4zKTogVXNlIHByZWZlcnJlZCByZWdpc3RlciBjbGFzcywgYW5kIHRoZW4gP3dhIHRvCisJ Y2F0Y2ggYWxsIFZTWCByZWdpc3RlcnMuCisJKHZzeF9pb3I8bW9kZT4zKTogRGl0dG8uCisJKHZz eF94b3I8bW9kZT4zKTogRGl0dG8uCisJKHZzeF9vbmVfY21wbDxtb2RlPjIpOiBEaXR0by4KKwko dnN4X25vcjxtb2RlPjMpOiBEaXR0by4KKwkodnN4X2FuZGM8bW9kZT4zKTogRGl0dG8uCisKKwkq IGNvbmZpZy9yczYwMDAvcnM2MDAwLmggKHJzNjAwMF92ZWN0b3Jfc3RydWN0KTogRGVsZXRlLgor CShyczYwMDBfdmVjdG9yX2luZm8pOiBEaXR0by4KKwkocnM2MDAwX3ZlY3Rvcl91bml0KTogTmV3 IGdsb2JhbCBhcnJheSB0byBzYXkgd2hldGhlciBhIG1hY2hpbmUKKwltb2RlIGFyaXRobWV0aWMg aXMgaGFuZGxlZCBieSBhIHBhcnRpY3VsYXIgdmVjdG9yIHVuaXQuCisJKHJzNjAwMF92ZWN0b3Jf bWVtKTogTmV3IGdsb2JhbCBhcnJheSB0byBzYXkgd2hpY2ggdmVjdG9yIHVuaXQgdG8KKwl1c2Ug Zm9yIG1vdmVzLgorCShWRUNUT1JfVU5JVF8qKTogTmV3IG1hY3JvcyB0byBzYXkgd2hpY2ggdmVj dG9yIHVuaXQgdG8gdXNlLgorCShWRUNUT1JfTUVNXyopOiBEaXR0by4KKwkocnM2MDAwX3ZzeF9p bnRfcmVnY2xhc3MpOiBEZWxldGUuCisJKHJzNjAwMF92c3hfbG9naWNhbF9yZWdjbGFzcyk6IERl bGV0ZS4KKworCSogY29uZmlnL3JzNjAwMC9hbHRpdmVjLm1kIChhbGwgaW5zbnMpOiBDaGFuZ2Ug ZnJvbSB1c2luZworCXJzNjAwMF92ZWN0b3JfaW5mbyB0byBWRUNUT1JfTUVNXyogYW5kIFZFQ1RP Ul9VTklUXyogbWFjcm9zLgorCShidWlsZF92ZWN0b3JfbWFza19mb3JfbG9hZCk6IERpc2FibGUg aWYgVlNYLgorCisJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5tZCAoYWxsIERGIGluc25zKTogQ2hh bmdlIGhvdyB0aGUgVlNYCisJZXhjbHVzaW9uIGlzIGRvbmUuCisKKzIwMDktMDItMjQgIE1pY2hh ZWwgTWVpc3NuZXIgIDxtZWlzc25lckBsaW51eC52bmV0LmlibS5jb20+CisKKwkqIGNvbmZpZy9y czYwMDAvcnM2MDAwLmMgKHJzNjAwMF9kZWJ1Z19yZWcpOiBOZXcgZ2xvYmFsLgorCShyczYwMDBf ZGVidWdfcmVnX3ByaW50KTogTmV3IGZ1bmN0aW9uIHRvIHByaW50IHJlZ2lzdGVyIGNsYXNzZXMK Kwlmb3IgYSBnaXZlbiByZWdpc3RlciByYW5nZS4KKwkocnM2MDAwX2luaXRfaGFyZF9yZWdub19t b2RlX29rKTogSWYgLW1kZWJ1Zz1yZWcsIHByaW50IG91dCB0aGUKKwlyZWdpc3RlciBjbGFzcywg Y2FsbCB1c2VkLCBmaXhlZCBpbmZvcm1hdGlvbiBmb3IgbW9zdCBvZiB0aGUKKwlyZWdpc3RlcnMu ICBQcmludCB0aGUgdnN4IHJlZ2lzdGVyIGNsYXNzIHZhcmlhYmxlcy4KKwkocnM2MDAwX292ZXJy aWRlX29wdGlvbnMpOiBBZGQgLW1kZWJ1Zz1yZWcgc3VwcG9ydC4KKworCSogY29uZmlnL3JzNjAw MC9yczYwMDAuaCAocnM2MDAwX2RlYnVnX3JlZyk6IE5ldyBnbG9iYWwuCisJKFRBUkdFVF9ERUJV R19SRUcpOiBOZXcgdGFyZ2V0IHN3aXRjaCBmb3IgLW1kZWJ1Zz1yZWcuCisKKzIwMDktMDItMjMg IE1pY2hhZWwgTWVpc3NuZXIgIDxtZWlzc25lckBsaW51eC52bmV0LmlibS5jb20+CisKKwkqIHJl bG9hZC5jIChzdWJzdF9yZWxvYWRzKTogQ2hhbmdlIGdjY19hc3NlcnQgaW50byBhIGZhdGFsX2lu c24uCisKKwkqIGNvbmZpZy9yczYwMDAvdmVjdG9yLm1kIChWRUNfSSk6IFJlb3JkZXIgaXRlcmF0 b3IuCisJKFZFQ19MKTogRGl0dG8uCisJKFZFQ19DKTogTmV3IGl0ZXJhdG9yIGZpZWxkIGZvciB2 ZWN0b3IgY29tcGFyaXNvbnMuCisJKFZFQ19iYXNlKTogTmV3IG1vZGUgYXR0cmlidXRlIHRoYXQg bWFwZXMgdGhlIHZlY3RvciB0eXBlIHRvIHRoZQorCWJhc2UgdHlwZS4KKwkoYWxsIGluc25zKTog U3dpdGNoIHRvIHVzZSByczYwMDBfdmVjdG9yX2luZm8gdG8gZGV0ZXJtaW5lIHdoZXRoZXIKKwl0 aGUgaW5zbiBpcyB2YWxpZCBpbnN0ZWFkIG9mIHVzaW5nIFRBUkdFVF9WU1ggb3IgVEFSR0VUX0FM VElWRUMuCisJKHZjb25kPG1vZGU+KTogTW92ZSBoZXJlIGZyb20gYWx0aXZlYywgYW5kIGFkZCBW U1ggc3VwcG9ydC4KKwkodmNvbmR1PG1vZGU+KTogRGl0dG8uCisJKHZlY3Rvcl9lcTxtb2RlPik6 IE5ldyBleHBhbmRlciBmb3IgdmVjdG9yIGNvbXBhcmlzb25zLgorCSh2ZWN0b3JfZ3Q8bW9kZT4p OiBEaXR0by4KKwkodmVjdG9yX2dlPG1vZGU+KTogRGl0dG8uCisJKHZlY3Rvcl9ndHU8bW9kZT4p OiBEaXR0by4KKwkodmVjdG9yX2dldTxtb2RlPik6IERpdHRvLgorCSh2ZWN0b3JfdnNlbDxtb2Rl Pik6IE5ldyBleHBhbmRlciBmb3IgdmVjdG9yIHNlbGVjdC4KKwkodmVjX2luaXQ8bW9kZT4pOiBN b3ZlIGV4cGFuZGVyIGZyb20gYWx0aXZlYy5tZCBhbmQgZ2VuZXJhbGl6ZSBmb3IKKwlWU1guCisJ KHZlY19zZXQ8bW9kZT4pOiBEaXR0by4KKwkodmVjX2V4dHJhY3Q8bW9kZT4pOiBEaXR0by4KKwko dmVjX2ludGVybGVhdmVfaGlnaHY0c2YpOiBEaXR0by4KKwkodmVjX2ludGVybGVhdmVfbG93djRz Zik6IERpdHRvLgorCSh2ZWNfaW50ZXJsZWF2ZV9oaWdodjJkZik6IE5ldyBleHBhbmRlciBmb3Ig VlNYLgorCSh2ZWNfaW50ZXJsZWF2ZV9sb3d2MmRmKTogRGl0dG8uCisKKwkqIGNvbmZpZy9yczYw MDAvY29udHJhaW50cy5tZCAodG9wbGV2ZWwpOiBBZGQgY29tbWVudCBvbiB0aGUKKwlhdmFpbGFi bGUgY29uc3RyYWludCBsZXR0ZXJzLgorCSgidyIgY29uc3RyYWludCk6IERlbGV0ZSwgaW4gZmF2 b3Igb2YgdXNpbmcgInciIGFzIGEgdHdvIGxldHRlcgorCWNvbnN0cmFpbnQuCisJKCJ3ZCIgY29u c3RyYWludCk6IE5ldyBWU1ggY29uc3RyYWludC4KKwkoIndmIiBjb25zdHJhaW50KTogRGl0dG8u CisJKCJ3aSIgY29uc3RyYWludCk6IERpdHRvLgorCSgid2wiIGNvbnN0cmFpbnQpOiBEaXR0by4K KwkoIndzIiBjb25zdHJhaW50KTogRGl0dG8uCisJKCJ3YSIgY29uc3RyYWludCk6IERpdHRvLgor CisJKiBjb25maWcvcnM2MDAwL3ByZWRpY2F0ZXMubWQgKGluZGV4ZWRfb3JfaW5kaXJlY3Rfb3Bl cmFuZCk6CisJRGlzYWJsZSBhbHRpdmVjIHN1cHBvcnQgYWxsb3dpbmcgQU5EIG9mIG1lbW9yeSBh ZGRyZXNzIGlmIC1tdnN4LgorCisJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5vcHQgKC1tdnN4LXZl Y3Rvci1tb3ZlKTogTmV3IHN3aXRjaGVzIHRvCisJYWxsb3cgZmluZXIgY29udHJvbCBvdmVyIHdo ZXRoZXIgVlNYLCBBbHRpdmVjLCBvciB0aGUgdHJhZGl0aW9uYWwKKwlpbnN0cnVjdGlvbnMgYXJl IHVzZWQuCisJKC1tdnN4LXNjYWxhci1tb3ZlKTogRGl0dG8uCisJKC1tdnN4LXZlY3Rvci1mbG9h dCk6IERpdHRvLgorCSgtbXZzeC12ZWN0b3ItZG91YmxlKTogRGl0dG8uCisJKC1tdnN4LXZlY3Rv ci1sb2dpY2FsKTogRGl0dG8uCisJKC1tdnN4LXNjYWxhci1kb3VibGUpOiBEaXR0by4KKworCSog Y29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX3ZlY3Rvcl9pbmZvKTogTmV3IGdsb2JhbCB0 byBob2xkCisJdmFyaW91cyBpbmZvcm1hdGlvbiBhYm91dCB3aGljaCB2ZWN0b3IgaW5zdHJ1Y3Rp b24gc2V0IHRvIHVzZSwgYW5kCisJdGhlIGFsaWdubWVudCBvZiBkYXRhLgorCShyczYwMDBfdnN4 X3Y0c2ZfcmVnY2xhc3MpOiBOZXcgZ2xvYmFsIHRvIGhvbGQgVlNYIHJlZ2lzdGVyCisJY2xhc3Mu CisJKHJzNjAwMF92c3hfdjJkZl9yZWdjbGFzcyk6IERpdHRvLgorCShyczYwMDBfdnN4X2RmX3Jl Z2NsYXNzKTogRGl0dG8uCisJKHJzNjAwMF92c3hfaW50X3JlZ2NsYXNzKTogRGl0dG8uCisJKHJz NjAwMF92c3hfbG9naWNhbF9yZWdjbGFzcyk6IERpdHRvLgorCShyczYwMDBfdnN4X2FueV9yZWdj bGFzcyk6IERpdHRvLgorCShyczYwMDBfaGFyZF9yZWdub19ucmVnc19pbnRlcm5hbCk6IFJld3Jp dGUgdG8gZmluZSB0dW5lCisJVlNYL0FsdGl2ZWMgcmVnaXN0ZXIgc2VsZWN0aW9uLgorCShyczYw MDBfaGFyZF9yZWdub19tb2RlX29rKTogRGl0dG8uCisJKHJzNjAwMF9pbml0X2hhcmRfcmVnbm9f bW9kZV9vayk6IFNldCB1cCB0aGUgdmVjdG9yIGluZm9ybWF0aW9uCisJZ2xvYmFscyBiYXNlZCBv biB0aGUgLW12c3gtKiBzd2l0Y2hlcy4KKwkocnM2MDAwX292ZXJyaWRlX29wdGlvbnMpOiBBZGQg d2FybmluZ3MgZm9yIC1tdnN4IGFuZAorCS1tbGl0dGxlLWVuZGlhbiBvciAtbWF2b2lkLWluZGV4 ZWQtYWRkcmVzc2VzLgorCShyczYwMDBfYnVpbHRpbl92ZWNfcGVybSk6IEFkZCBWMkRGL1YyREkg c3VwcG9ydC4KKwkocnM2MDAwX2V4cGFuZF92ZWN0b3JfaW5pdCk6IEFkZCBWMkRGIHN1cHBvcnQu CisJKHJzNjAwMF9leHBhbmRfdmVjdG9yX3NldCk6IERpdHRvLgorCShyczYwMDBfZXhwYW5kX3Zl Y3Rvcl9leHRyYWN0KTogRGl0dG8uCisJKGF2b2lkaW5nX2luZGV4ZWRfYWRkcmVzc19wKTogQWRk IFZTWCBzdXBwb3J0LgorCShyczYwMDBfbGVnaXRpbWl6ZV9hZGRyZXNzKTogRGl0dG8uCisJKHJz NjAwMF9sZWdpdGltaXplX3JlbG9hZF9hZGRyZXNzKTogRGl0dG8uCisJKHJzNjAwMF9sZWdpdGlt aXRlX2FkZHJlc3MpOiBEaXR0by4KKwkoVVNFX0FMVElWRUNfRk9SX0FSR19QKTogRGl0dG8uCisJ KGZ1bmN0aW9uX2FyZ19ib3VuZGFyeSk6IERpdHRvLgorCShmdW5jdGlvbl9hcmdfYWR2YW5jZSk6 IERpdHRvLgorCShmdW5jdGlvbl9hcmcpOiBEaXR0by4KKwkoZ2V0X3ZlY19jbXBfaW5zbik6IERl bGV0ZS4KKwkocnM2MDAwX2VtaXRfdmVjdG9yX3ZzeCk6IE5ldyBmdW5jdGlvbiBmb3IgVlNYIHZl Y3RvciBjb21wYXJlLgorCShyczYwMDBfZW1pdF92ZWN0b3JfYWx0aXZlYyk6IE5ldyBmdW5jdGlv biBmb3IgQWx0aXZlYyB2ZWN0b3IKKwljb21wYXJlLgorCShnZXRfdnNlbF9pbnNuKTogRGVsZXRl LgorCShyczYwMDBfZW1pdF92ZWN0b3Jfc2VsZWN0KTogRGl0dG8uCisJKHJzNjAwMF9vdmVycmlk ZV9vcHRpb25zKTogSWYgLW12c3gsIHR1cm4gb24gLW1hbHRpdmVjIGJ5CisJZGVmYXVsdC4KKwko cnM2MDAwX2J1aWx0aW5fdmVjX3Blcm0pOiBBZGQgc3VwcG9ydCBmb3IgVjJESSwgVjJERiBtb2Rl cy4KKwkoYmRlc2NfM2FyZyk6IEFkZCB2ZWN0b3Igc2VsZWN0IGFuZCB2ZWN0b3IgcGVybXV0ZSBi dWlsdGlucyBmb3IKKwlWMkRJIGFuZCBWMkRGIHR5cGVzLiAgU3dpdGNoIHRvIHVzaW5nIHRoZSB2 ZWN0b3JfKiBleHBhbmRlcgorCWluc3RlYWQgb2YgYWx0aXZlY18qLgorCShyczYwMDBfaW5pdF9i dWlsdGlucyk6IEluaXRpYWxpemUgbmV3IHR5cGUgbm9kZXMgZm9yIFZTWC4KKwlJbml0aWFsaXpl IF9fdmVjdG9yIGRvdWJsZSB0eXBlLiAgSW5pdGlhbGl6ZSBjb21tb24gYnVpbHRpbnMgZm9yCisJ VlNYLgorCShyczYwMDBfZW1pdF92ZWN0b3JfY29tcGFyZSk6IEFkZCBWU1ggc3VwcG9ydC4KKwko cnM2MDAwX3ZlY3Rvcl9tb2RlX3N1cHBvcnRlZF9wKTogSWYgVlNYLCBzdXBwb3J0IFYyREYuCisK KwkqIGNvbmZpZy9yczYwMDAvdnN4Lm1kIChWU1hfSSk6IE5ldyBpdGVyYXRvciBmb3IgaW50ZWdl ciBtb2Rlcy4KKwkoVlNYX0wpOiBSZW9yZGVyIGl0ZXJhdG9yLgorCShseF88bW9kZT5fdnN4KTog RGVsZXRlLCBubyBsb25nZXIgbmVlZGVkLgorCShzdHhfPG1vZGU+X3ZzeCk6IERpdHRvLgorCShh bGwgaW5zbnMpOiBDaGFuZ2UgdG8gdXNlIHZzeF88bmFtZT4gaW5zdGVhZCBvZiA8bmFtZT5fdnN4 IGZvcgorCWNvbnNpc3RhbmN5IHdpdGggdGhlIG90aGVyIHJzNjAwMCBtZCBmaWxlcy4gIENoYW5n ZSB0byB1c2UgdGhlIG5ldworCSJ3IiBjb25zdHJhaW50cyBmb3IgYWxsIGluc25zLiAgQ2hhbmdl IHRvIHVzZSByczYwMDBfdmVjdG9yX2luZm8KKwlkZWNpZGluZyB3aGV0aGVyIHRvIGV4ZWN1dGUg dGhlIGluc3RydWN0aW9uIG9yIG5vdC4KKwkodnN4X21vdjxtb2RlPik6IFJld3JpdGUgY29uc3Ry YWludHMgc28gR1BSIHJlZ2lzdGVycyBhcmUgbm90CisJY2hvc2VuIGFzIHJlbG9hZCB0YXJnZXRz LiAgU3BsaXQgaW50ZWdlciB2ZWN0b3IgbG9hZHMgaW50byBhCisJc2VwYXJhdGUgaW5zbiwgYW5k IGZhdm9yIHRoZSBhbHRpdmVjIHJlZ2lzdGVyIG92ZXIgdGhlIFZTWCBmcAorCXJlZ2lzdGVycy4K KwkodnN4X2ZtYWRkPG1vZGU+NCk6IFVzZSA8bW9kZT4sIG5vdCA8dHlwZT4uCisJKHZzeF9mbXN1 Yjxtb2RlPjQpOiBEaXR0by4KKwkodnN4X2VxPG1vZGU+KTogTmV3IGluc25zIGZvciBWMkRGL1Y0 U0YgdmVjdG9yIGNvbXBhcmUuCisJKHZzeF9ndDxtb2RlPik6IERpdHRvLgorCSh2c3hfZ2U8bW9k ZT4pOiBEaXR0by4KKwkodnN4X3ZzZWw8bW9kZT4pOiBOZXcgaW5zbnMgZm9yIFZTWCB2ZWN0b3Ig c2VsZWN0LgorCSh2c3hfeHhwZXJtZGkpOiBOZXcgaW5zbiBmb3IgREYgcGVybXV0ZS4KKwkodnN4 X3NwbGF0djJkZik6IE5ldyBpbnNuIGZvciBERiBzcGxhdCBzdXBwb3J0LgorCSh2c3hfeHhtcmds dyk6IE5ldyBpbnNucyBmb3IgREYgaW50ZXJsZWF2ZS4KKwkodnN4X3h4bXJnaHcpOiBEaXR0by4K KworCSogY29uZmlnL3JzNjAwMC9yczAwMC5oIChlbnVtIHJzNjAwMF92ZWN0b3IpOiBOZXcgZW51 bSB0bworCWRlc2NyaWJlIHdoaWNoIHZlY3RvciB1bml0IGlzIGJlaW5nIHVzZWQuCisJKHN0cnVj dCByczYwMDBfdmVjdG9yX3N0cnVjdCk6IE5ldyBzdHJ1Y3QgdG8gZGVzY3JpYmUgdGhlIHZhcmlv dXMKKwlhc3BlY3RzIGFib3V0IHRoZSBjdXJyZW50IHZlY3RvciBpbnN0cnVjdGlvbiBzZXQuCisJ KHJzNjAwMF92ZWN0b3JfaW5mbyk6IE5ldyBnbG9iYWwgdG8gZGVzY3JpYmUgdGhlIGN1cnJlbnQg dmVjdG9yCisJaW5zdHJ1Y3Rpb24gc2V0LgorCShTTE9XX1VOQUxJR05FRF9BQ0NFU1MpOiBJZiBy czYwMDBfdmVjdG9yX2luZm8gaGFzIGFsaWdubWVudAorCWluZm9ybWF0aW9uIGZvciBhIHR5cGUs IHVzZSB0aGF0LgorCShWU1hfVkVDVE9SX01PVkVfTU9ERSk6IE5ldyBtYWNybyBmb3IgYWxsIFZT WCB2ZWN0b3JzIHRoYXQgYXJlCisJc3VwcG9ydGVkIGJ5IG1vdmUgaW5zdHJ1Y3Rpb25zLgorCShW U1hfTU9WRV9NT0RFKTogTmV3IG1hY3JvIGZvciBhbGwgVlNYIG1vdmVzLgorCShlbnVtIHJzNjAw MF9idWlsdGlucyk6IEFkZCBWMkRJL1YyREYgdmVjdG9yIHNlbGVjdCBhbmQgcGVybXV0ZQorCWJ1 aWx0aW5zLgorCShyczYwMDBfYnVpbHRpbl90eXBlX2luZGV4KTogQWRkIG5ldyB0eXBlcyBmb3Ig VlNYIHZlY3RvcnMuCisJKHJzNjAwMF92c3hfdjRzZl9yZWdjbGFzcyk6IE5ldyBnbG9iYWwgdG8g aG9sZCBWU1ggcmVnaXN0ZXIKKwljbGFzcy4KKwkocnM2MDAwX3ZzeF92MmRmX3JlZ2NsYXNzKTog RGl0dG8uCisJKHJzNjAwMF92c3hfZGZfcmVnY2xhc3MpOiBEaXR0by4KKwkocnM2MDAwX3ZzeF9p bnRfcmVnY2xhc3MpOiBEaXR0by4KKwkocnM2MDAwX3ZzeF9sb2dpY2FsX3JlZ2NsYXNzKTogRGl0 dG8uCisJKHJzNjAwMF92c3hfYW55X3JlZ2NsYXNzKTogRGl0dG8uCisKKwkqIGNvbmZpZy9yczYw MDAvYWx0aXZlYy5tZCAoVU5TUEVDX1ZDTVAqKTogRGVsZXRlIHVuc3BlYworCWNvbnN0YW50cyBu byBsb25nZXIgbmVlZGVkLgorCShVTlNQRUNfVlNFTCopOiBEaXR0by4KKwkoYWx0aXZlY19sdnhf PG1vZGU+KTogRGVsZXRlLCBubyBsb25nZXIgbmVlZGVkLgorCShhbHRpdmVjX3N0dnhfPG1vZGU+ KTogRGl0dG8uCisJKGFsbCBpbnNucyk6IFJld3JpdGUgdG8gYmUgY29uc2lzdGFudCBvZiBhbHRp dmVjXzxpbnNuPi4gIFN3aXRjaAorCXRvIHVzZSByczYwMDBfdmVjdG9yX2luZm8gdG8gZGV0ZXJt aW5lIHdoZXRoZXIgdG8gaXNzdWUgdG8gdGhlCisJYWx0aXZlYyBmb3JtIG9mIHRoZSBpbnN0cnVj dGlvbnMuCisJKG1vdjxtb2RlPl9hbHRpdmVjKTogUmV3cml0ZSBjb25zdHJhaW50cyBzbyBHUFIg cmVnaXN0ZXJzIGFyZSBub3QKKwljaG9zZW4gYXMgcmVsb2FkIHRhcmdldHMuCisJKGFsdGl2ZWNf ZXE8bW9kZT4pOiBSZXdyaXRlIHZlY3RvciBjb25kaXRpb25hbHMsIHBlcm11dGUsIHNlbGVjdAor CXRvIHVzZSBpdGVyYXRvcnMsIGFuZCB3b3JrIHdpdGggVlNYLgorCShhbHRpdmVjX2d0PG1vZGU+ KTogRGl0dG8uCisJKGFsdGl2ZWNfZ2U8bW9kZT4pOiBEaXR0by4KKwkoYWx0aXZlY19ndHU8bW9k ZT4pOiBEaXR0by4KKwkoYWx0aXZlY19nZXU8bW9kZT4pOiBEaXR0by4KKwkoYWx0aXZlY192c2Vs PG1vZGU+KTogRGl0dG8uCisJKGFsdGl2ZWNfdnBlcm1fPG1vZGU+KTogRGl0dG8uCisJKGFsdGl2 ZWNfdmNtcCopOiBSZXdyaXRlIHRvIG5vdCB1c2UgdW5zcGVjcyBhbnkgbW9yZSwgYW5kIHVzZSBt b2RlCisJaXRlcmF0b3JzLCBhZGQgVlNYIHN1cHBvcnQuCisJKHZjb25kdjRzaSk6IE1vdmUgdG8g dmVjdG9yLm1kLgorCSh2Y29uZHV2NHNpKTogRGl0dG8uCisJKHZjb25kdjhoaSk6IERpdHRvLgor CSh2Y29uZHV2OGhpKTogRGl0dG8uCisJKHZjb25kdjE2cWkpOiBEaXR0by4KKwkodmNvbmR1djE2 cWkpOiBEaXR0by4KKworCSogY29uZmlnL3JzNjAwMC9yczYwMDAubWQgKG5lZ2RmMl9mcHIpOiBB ZGQgc3VwcG9ydCBmb3IKKwktbXZzeC1zY2FsYXItZG91YmxlLgorCShhYnNkZjJfZnByKTogRGl0 dG8uCisJKG5hYnNkZjJfZnByKTogRGl0dG8uCisJKGFkZGRmM19mcHIpOiBEaXR0by4KKwkoc3Vi ZGYzX2Zwcik6IERpdHRvLgorCShtdWxkZjNfZnByKTogRGl0dG8uCisJKGRpdmRmM19mcHIpOiBE aXR0by4KKwkoREYgbXVsdGlwbHkvYWRkIHBhdHRlcm5zKTogRGl0dG8uCisJKHNxcnRkZjIpOiBE aXR0by4KKwkobW92ZGZfaGFyZGZsb2F0MzIpOiBBZGQgVlNYIHN1cHBvcnQuCisJKG1vdmRmX2hh cmRmbG9hdDY0X21mcGdwcik6IERpdHRvLgorCShtb3ZkZl9oYXJkZmxvYXQ2NCk6IERpdHRvLgor CisJKiBkb2MvaW52b2tlLnRleGkgKC1tdnN4LSopOiBBZGQgbmV3IHZzeCBzd2l0Y2hlcy4KKwor MjAwOS0wMi0xMyAgTWljaGFlbCBNZWlzc25lciAgPG1laXNzbmVyQGxpbnV4LnZuZXQuaWJtLmNv bT4KKworCSogY29uZmlnLmluOiBVcGRhdGUgdHdvIGNvbW1lbnRzLgorCisJKiBjb25maWcvcnM2 MDAwL3ZlY3Rvci5tZCAoVkVDX0wpOiBBZGQgVjJESSB0eXBlLgorCShtb3ZlPG1vZGU+KTogVXNl IFZFQ19MIHRvIGdldCBhbGwgdmVjdG9yIHR5cGVzLCBhbmQgZGVsZXRlIHRoZQorCXNlcGFyYXRl IGludGVnZXIgbW9kZSBtb3ZlIGRlZmluaXRpb25zLgorCSh2ZWN0b3JfbG9hZF88bW9kZT4pOiBE aXR0by4KKwkodmVjdG9yX3N0b3JlXzxtb2RlPik6IERpdHRvLgorCSh2ZWN0b3IgbW92ZSBzcGxp dHRlcnMpOiBNb3ZlIEdQUiByZWdpc3RlciBzcGxpdHRlcnMgaGVyZSBmcm9tCisJYWx0aXZlYy5t ZC4KKworCSogY29uZmlnL3JzNjAwMC9jb25zdHJhaW50cy5tZCAoImoiKTogQWRkICJqIiBjb25z dHJhaW50IHRvIG1hdGNoCisJdGhlIG1vZGUncyAwIHZhbHVlLgorCisJKiBjb25maWcvcnM2MDAw L3JzNjAwMC5jIChyczYwMDBfaGFyZF9yZWdub19ucmVnc19pbnRlcm5hbCk6IE9ubHkKKwljb3Vu dCB0aGUgRlBScyBhcyBiZWluZyAxMjggYml0cyBpZiB0aGUgbW9kZSBpcyBhIFZTWCB0eXBlLgor CShyczYwMDBfaGFyZF9yZWdub19tb2RlX29rKTogRGl0dG8uCisJKHJzNjAwMF9lbWl0X21pbm1h eCk6IFVzZSBuZXcgVlNYX01PREUgaW5zdGVhZCBvZiBzZXBhcmF0ZSB0ZXN0cy4KKworCSogY29u ZmlnL3JzNjAwMC92c3gubWQgKFZTWF9MKTogQWRkIFYyREltb2RlLgorCShWU20pOiBSZW5hbWUg ZnJvbSBWU1hfbWVtLCBhZGQgbW9kZXMgZm9yIGludGVnZXIgdmVjdG9ycy4gIENoYW5nZQorCWFs bCB1c2VzLgorCShWU3MpOiBSZW5hbWUgZnJvbSBWU1hfb3AsIGFkZCBtb2RlcyBmb3IgaW50ZWdl ciB2ZWN0b3JzLiAgQ2hhbmdlCisJYWxsIHVzZXMuCisJKFZTcik6IE5ldyBtb2RlIGFkZHJlc3Mg dG8gZ2l2ZSB0aGUgcmVnaXN0ZXIgY2xhc3MuCisJKG1vdjxtb2RlPl92c3gpOiBVc2UgVlNyIHRv IGdldCB0aGUgcmVnaXN0ZXIgcHJlZmVyZW5jZXMuICBBZGQKKwlleHBsaWNpdCAwIG9wdGlvbi4K Kwkoc2NhbGFyIGRvdWJsZSBwcmVjaXNpb24gcGF0dGVybnMpOiBEbyBub3QgdXNlIHYgcmVnaXN0 ZXIKKwljb25zdHJhaW50IHJpZ2h0IG5vdy4KKwkobG9naWNhbCBwYXR0ZXJucyk6IFVzZSBWU3Ig bW9kZSBhdHRyaWJ1dGUgZm9yIHJlZ2lzdGVyCisJcHJlZmVyZW5jZXMuCisKKwkqIGNvbmZpZy9y czYwMDAvcnM2MDAwLmggKFZTWF9TQ0FMQVJfTU9ERSk6IE5ldyBtYWNyby4KKwkoVlNYX01PREUp OiBEaXR0by4KKworCSogY29uZmlnL3JzNjAwMC9hbHRpdmVjLm1kIChWTSk6IE5ldyBtb2RlIGl0 ZXJhdG9yIGZvciBtZW1vcnkKKwlvcGVyYXRpb25zLiAgQWRkIFYyREkgbW9kZS4KKwkobW92X2Fs dGl2ZWNfPG1vZGU+KTogRGlzYWJsZSBpZiAtbXZzeCBmb3IgYWxsIG1vZGVzLCBub3QganVzdAor CVY0U0Ztb2RlLgorCShncHIgbW92ZSBzcGxpdHRlcnMpOiBNb3ZlIHRvIHZlY3Rvci5tZC4KKwko YW5kPG1vZGU+M19hbHRpdmVjKTogVXNlIFZNIG1vZGUgaXRlcmF0b3IsIG5vdCBWLgorCShpb3I8 bW9kZT4zX2FsdGl2ZWMpOiBEaXR0by4KKwkoeG9yPG1vZGU+M19hbHRpdmVjKTogRGl0dG8uCisJ KG9uZV9jbXBsPG1vZGU+Ml9hbHRpdmVjKTogRGl0dG8uCisJKG5vcjxtb2RlPjNfYWx0aXZlYyk6 IERpdHRvLgorCShhbmRjPG1vZGU+M19hbHRpdmVjKTogRGl0dG8uCisKKwkqIGNvbmZpZy9yczYw MDAvcnM2MDAwLm1kIChtb3ZkZl9oYXJkZmxvYXQpOiBCYWNrIG91dCB2c3ggY2hhbmdlcy4KKwko bW92ZGZfaGFyZGZsb2F0NjRfdnN4KTogRGVsZXRlLgorCisyMDA5LTAyLTEyICBNaWNoYWVsIE1l aXNzbmVyICA8bWVpc3NuZXJAbGludXgudm5ldC5pYm0uY29tPgorCisJKiBjb25maWcvcnM2MDAw L3ZlY3Rvci5tZDogTmV3IGZpbGUgdG8gYWJzdHJhY3Qgb3V0IHRoZSBleHBhbmRlcnMKKwlmb3Ig dmVjdG9yIG9wZXJhdGlvbnMgZnJvbSBhbGl0dmVjLm1kLgorCisJKiBjb25maWcvcnM2MDAwL3By ZWRpY2F0ZXMubWQgKHZzeF9yZWdpc3Rlcl9vcGVyYW5kKTogTmV3CisJcHJlZGljYXRlIHRvIG1h dGNoIFZTWCByZWdpc3RlcnMuCisJKHZmbG9hdF9vcGVyYW5kKTogTmV3IHByZWRpY2F0ZSB0byBt YXRjaCByZWdpc3RlcnMgdXNlZCBmb3IgdmVjdG9yCisJZmxvYXRpbmcgcG9pbnQgb3BlcmF0aW9u cy4KKwkodmludF9vcGVyYW5kKTogTmV3IHByZWRpY2F0ZSB0byBtYXRjaCByZWdpc3RlcnMgdXNl ZCBmb3IgdmVjdG9yCisJaW50ZWdlciBvcGVyYXRpb25zLgorCSh2bG9naWNhbF9vcGVyYW5kKTog TmV3IHByZWRpY2F0ZSB0byBtYXRjaCByZWdpc3RlcnMgdXNlZCBmb3IKKwl2ZWN0b3IgbG9naWNh bCBvcGVyYXRpb25zLgorCisJKiBjb25maWcvcnM2MDAwL3JzNjAwMC1wcm90b3MuaCAocnM2MDAw X2hhcmRfcmVnbm9fbnJlZ3MpOiBDaGFuZ2UKKwlmcm9tIGEgZnVuY3Rpb24gdG8gYW4gYXJyYXku CisJKHJzNjAwMF9jbGFzc19tYXhfbnJlZ3MpOiBBZGQgZGVjbGFyYXRpb24uCisKKwkqIGNvbmZp Zy9yczYwMDAvdC1yczYwMDAgKE1EX0lOQ0xVREVTKTogRGVmaW5lIHRvIGluY2x1ZGUgYWxsIG9m CisJdGhlIC5tZCBmaWxlcyBpbmNsdWRlZCBieSByczYwMDAubWQuCisKKwkqIGNvbmZpZy9yczYw MDAvcnM2MDAwLmMgKHJzNjAwMF9jbGFzc19tYXhfbnJlZ3MpOiBOZXcgZ2xvYmFsCisJYXJyYXkg dG8gcHJlLWNhbGN1bGF0ZSBDTEFTU19NQVhfTlJFR1MuCisJKHJzNjAwMF9oYXJkX3JlZ25vX25y ZWdzKTogQ2hhbmdlIGZyb20gYSBmdW5jdGlvbiB0byBhbiBhcnJheSB0bworCXByZS1jYWxjdWxh dGUgSEFSRF9SRUdOT19OUkVHUy4KKwkocnM2MDAwX2hhcmRfcmVnbm9fbnJlZ3NfaW50ZXJuYWwp OiBSZW5hbWUgZnJvbQorCXJzNjAwMF9oYXJkX3JlZ25vX25yZWdzIGFuZCBhZGQgVlNYIHN1cHBv cnQuCisJKHJzNjAwMF9oYXJkX3JlZ25vX21vZGVfb2spOiBBZGQgVlNYIHN1cHBvcnQsIGFuZCBz d2l0Y2ggdG8gdXNlCisJbG9va3VwIHRhYmxlIHJzNjAwMF9oYXJkX3JlZ25vX25yZWdzLgorCShy czYwMDBfaW5pdF9oYXJkX3JlZ25vX21vZGVfb2spOiBBZGQgaW5pdGlhbGl6YXRpb24gb2YKKwly czYwMDBfaGFyZF9yZWdub19ucmVncywgYW5kIHJzNjAwMF9jbGFzc19tYXhfbnJlZ3MgZ2xvYmFs CisJYXJyYXlzLgorCShyczYwMDBfb3ZlcnJpZGVfb3B0aW9ucyk6IEFkZCBzb21lIHdhcm5pbmdz IGZvciB0aGluZ3MgdGhhdCBhcmUKKwlpbmNvbXBhdGlibGUgd2l0aCAtbXZzeC4KKwkocnM2MDAw X2xlZ2l0aW1hdGVfb2Zmc2V0X2FkZHJlc3NfcCk6IEFkZCBWMkRGbW9kZS4KKwkocnM2MDAwX2Nv bmRpdGlvbmFsX3JlZ2lzdGVyX3VzYWdlKTogRW5hYmxlIGFsdGl2ZWMgcmVnaXN0ZXJzIGlmCisJ LW12c3guCisJKGJkZXNjXzJhcmcpOiBDaGFuZ2UgdGhlIG5hbWUgb2YgdGhlIG5vciBwYXR0ZXJu LgorCShhbHRpdmVjX2V4cGFuZF9sZF9idWlsdGluKTogQ2hhbmdlIHRoZSBuYW1lcyBvZiB0aGUg bG9hZAorCXBhdHRlcm5zIHRvIGJlIHRoZSBnZW5lcmljIHZlY3RvciBsb2Fkcy4KKwkoYWx0aXZl Y19leHBhbmRfc3RfYnVpbHRpbik6IENoYW5nZSB0aGUgbmFtZXMgb2YgdGhlIHN0b3JlCisJcGF0 dGVybnMgdG8gYmUgdGhlIGdlbmVyaWMgdmVjdG9yIHN0b3Jlcy4KKwkocHJpbnRfb3BlcmFuZCk6 IEFkZCAneCcgdG8gcHJpbnQgb3V0IGEgVlNYIHJlZ2lzdGVyIHByb3Blcmx5LgorCShyczYwMDBf ZW1pdF9taW5tYXgpOiBEaXJlY3RseSBlbWl0IHRoZSBtaW4vbWF4IHBhdHRlcm5zIGZvciBWU1gK KwlhbmQgQWx0aXZlYy4KKworCSogY29uZmlnL3JzNjAwMC92c3gubWQ6IE5ldyBmaWxlIHRvIGFk ZCBhbGwgb2YgdGhlIFZTWCBzcGVjaWZpYworCWluc3RydWN0aW9ucy4gIEFkZCBzdXBwb3J0IGZv ciBsb2FkLCBzdG9yZSwgbW92ZSwgYWRkLCBzdWJ0cmFjdCwKKwltdWx0aXBseSwgbXVsdGlwbHkv YWRkLCBkaXZpZGUsIG5lZ2F0ZSwgYWJzb2x1dGUgdmFsdWUsIG1heGltdW0sCisJbWluaW11bSwg c3FydCwgYW5kLCBvciwgeG9yLCBhbmQgY29tcGxlbnQsIHhvciwgb25lJ3MgY29tcGxlbWVudCwK KwlhbmQgbm9yIGluc3RydWN0aW9ucy4KKworCSogY29uZmlnL3JzNjAwMC9yczYwMDAuaCAoVU5J VFNfUEVSX1ZTWF9XT1JEKTogRGVmaW5lLgorCShWU1hfUkVHTk9fUCk6IE5ldyBtYWNybyBmb3Ig VlNYIHJlZ2lzdGVycy4KKwkoVkZMT0FUX1JFR05PKTogTmV3IG1hY3JvIGZvciB2ZWN0b3IgZmxv YXRpbmcgcG9pbnQgcmVnaXN0ZXJzLgorCShWSU5UX1JFR05PKTogTmV3IG1hY3JvIGZvciB2ZWN0 b3IgaW50ZWdlciByZWdpc3RlcnMuCisJKFZMT0dJQ0FMX1JFR05PKTogTmV3IG1hY3JvIGZvciB2 ZWN0b3IgbG9naWNhbCByZWdpc3RlcnMuCisJKFZTWF9WRUNUT1JfTU9ERSk6IE5ldyBtYWNybyBm b3IgdmVjdG9yIG1vZGVzIHN1cHBvcnRlZCBieSBWU1guCisJKEhBUkRfUkVHTk9fTlJFR1MpOiBT d2l0Y2ggdG8gdXNpbmcgcHJlLWNvbXB1dGVkIHRhYmxlLgorCShDTEFTU19NQVhfTlJFR1MpOiBE aXR0by4KKworCSogY29uZmlnL3JzNjAwMC9hbHRpdmVjLm1kIChhbHRpdmVjX2x2eF88bW9kZT4p OiBEZWxldGUsIHJlcGFsY2VkCisJYnkgZXhwYW5kZXJzIGluIHZlY3Rvci5tZC4KKwkoYWx0aXZl Y19zdHZ4Xzxtb2RlPik6IERpdHRvLgorCShtb3Y8bW9kZT4pOiBEaXR0by4KKwkobW92X2FsdGl2 ZWNfPG1vZGU+KTogUmVuYW1lIGZyb20gbW92PG1vZGU+X2ludGVybmFsLCBhbmQgcHJlZmVyCisJ dXNpbmcgVlNYIGlmIGF2YWlsYWJsZS4KKwkoYWRkdjRzZjNfYWx0aXZlYyk6IFJlbmFtZSBmcm9t IHN0YW5kYXJkIG5hbWUsIGFuZCBwcmVmZXIgdXNpbmcKKwlWU1ggaWYgYXZhaWxhYmxlLgorCShz dWJ2NHNmM19hbHRpdmVjKTogRGl0dG8uCisJKG11bHY0c2YzX2FsdGl2ZWMpOiBEaXR0by4KKwko c21heHY0c2YzX2FsdGl2ZWMpOiBEaXR0by4KKwkoc21pbnY0c2YzX2FsdGl2ZWMpOiBEaXR0by4K KwkoYW5kPG1vZGU+M19hbHRpdmVjKTogRGl0dG8uCisJKGlvcjxtb2RlPjNfYWx0aXZlYyk6IERp dHRvLgorCSh4b3I8bW9kZT4zX2FsdGl2ZWMpOiBEaXR0by4KKwkob25lX2NtcGw8bW9kZT4yKTog RGl0dG8uCisJKG5vcjxtb2RlPjNfYWx0aXZlYyk6IERpdHRvLgorCShhbmRjPG1vZGU+M19hbHRp dmVjKTogRGl0dG8uCisJKGFic3Y0c2YyX2FsdGl2ZWMpOiBEaXR0by4KKwkodmNvbmR2NHNmKTog TW92ZSB0byB2ZWN0b3IubWQuCisKKwkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLm1kIChuZWdkZjJf ZnByKTogQWRkICFUQVJHRVRfVlNYIHRvIHByZWZlcgorCXRoZSB2ZXJzaW9uIGluIHZzeC5tZCBp ZiAtbXZzeCBpcyBhdmFpbGFibGUuCisJKGFic2RmMl9mcHIpOiBEaXR0by4KKwkobmFic2RmMl9m cHIpOiBEaXR0by4KKwkoYWRkZGYzX2Zwcik6IERpdHRvLgorCShzdWJkZjNfZnByKTogRGl0dG8u CisJKG11bGRmM19mcHIpOiBEaXR0by4KKwkobXVsdGlwbHkvYWRkIHBhdHRlcm5zKTogRGl0dG8u CisJKG1vdmRmX2hhcmRmbG9hdDY0KTogRGlzYWJsZSBpZiAtbXZzeC4KKwkobW92ZGZfaGFyZGZs b2F0NjRfdnN4KTogQ2xvbmUgZnJvbSBtb3ZkZl9oYXJkZmxvYXQ2NCBhbmQgYWRkIFZTWAorCXN1 cHBvcnQuCisJKHZlY3Rvci5tZCk6IEluY2x1ZGUgbmV3IC5tZCBmaWxlLgorCSh2c3gubWQpOiBE aXR0by4KKworMjAwOS0wMi0xMSAgTWljaGFlbCBNZWlzc25lciAgPG1laXNzbmVyQGxpbnV4LnZu ZXQuaWJtLmNvbT4KKworCSogZG9jL2ludm9rZS50ZXhpICgtbXZzeCwgLW1uby12c3gpOiBEb2N1 bWVudCBuZXcgc3dpdGNoZXMuCisKKwkqIGNvbmZpZy9yczYwMDAvbGludXg2NC5vcHQgKC1tcHJv ZmlsZS1rZXJuZWwpOiBNb3ZlIHRvIGJlaW5nIGEKKwl2YXJpYWJsZSB0byByZWR1Y2UgdGhlIG51 bWJlciBvZiB0YXJnZXQgZmxhZyBiaXRzLgorCSogY29uZmlnL3JzNjAwMC9zeXN2NC5vcHQgKC1t Yml0LWFsaWduKTogRGl0dG8uCisJKC1tYml0LXdvcmQpOiBEaXR0by4KKwkoLW1yZWduYW1lcyk6 IERpdHRvLgorCSogY29uZmlnL3JzNjAwMC9yczYwMDAub3B0ICgtbXVwZGF0ZSwgLW1uby11cGRh dGUpOiBEaXR0by4KKwkoLW12c3gpOiBOZXcgc3dpdGNoLCBlbmFibGUgVlNYIHN1cHBvcnQuCisK KwkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLWMuYyAocnM2MDAwX2NwdV9jcHBfYnVpbHRpbnMpOiBE ZWZpbmUKKwlfX1ZTWF9fIGlmIHRoZSB2ZWN0b3Ivc2NhbGFyIGluc3RydWN0aW9uIHNldCBpcyBh dmFpbGFibGUuCisKKwkqIGNvbmZpZy9yczYwMDAvbGludXg2NC5oIChTVUJTVUJUQVJHRVRfT1ZF UlJJREVfT1BUSU9OUyk6IENoYW5nZQorCXRvIGFsbG93IC1tcHJvZmlsZS1rZXJuZWwgdG8gYmUg YSB2YXJpYWJsZS4KKworCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocHJvY2Vzc29yX3Rhcmdl dF90YWJsZSk6IFNldCAtbXZzeCBmb3IKKwlwb3dlcjcgY3B1cy4KKwkoUE9XRVJQQ19NQVNLUyk6 IEFkZCAtbXZzeC4KKworCSogY29uZmlnL3JzNjAwMC9yczYwMDAuaCAoQURESVRJT05BTF9SRUdJ U1RFUl9OQU1FUyk6IEFkZCBWU1gKKwlyZWdpc3RlciBuYW1lcyBmb3IgdGhlIHJlZ2lzdGVycyB0 aGF0IG92ZXJsYXAgd2l0aCB0aGUgZmxvYXRpbmcKKwlwb2ludCBhbmQgYWx0aXZlYyByZWdpc3Rl cnMuCisKKwkqIGNvbmZpZy9yczYwMDAvc3lzdjQuaCAoU1VCVEFSR0VUX09WRVJSSURFX09QVElP TlMpOgorCVRBUkdFVF9OT19CSVRGSUVMRF9XT1JEIGlzIG5vdyBhIHZhcmlhYmxlLCBub3QgYSB0 YXJnZXQgbWFzay4KKworMjAwOS0wMi0xMSAgUGF0IEhhdWdlbiAgPHB0aGF1Z2VuQHVzLmlibS5j b20+CisJICAgIE1pY2hhZWwgTWVpc3NuZXIgIDxtZWlzc25lckBsaW51eC52bmV0LmlibS5jb20+ CisKKwkqIGRvYy9pbnZva2UudGV4aSAoLW1wb3BjbnRkLCAtbW5vLXBvcGNudGQpOiBEb2N1bWVu dCBuZXcKKwlzd2l0Y2hlcy4KKworCSogY29uZmlndXJlLmFjIChwb3dlcnBjKi0qLSopOiBUZXN0 IGZvciB0aGUgYXNzZW1ibGVyIGhhdmluZyB0aGUKKwlwb3BjbnRkIGluc3RydWN0aW9uLgorCSog Y29uZmlndXJlOiBSZWdlbmVyYXRlLgorCSogY29uZmlnLmluIChIQVZFX0FTX1BPUENOVEQpOiBB ZGQgZGVmYXVsdCB2YWx1ZSBmb3IgY29uZmlndXJlCisJdGVzdC4KKworCSogY29uZmlnL3JzNjAw MC9wb3dlcjcubWQ6IE5ldyBmaWxlLgorCisJKiBjb25maWcvcnM2MDAwL3JzNjAwMC1jLmMgKHJz NjAwMF9jcHVfY3BwX2J1aWx0aW5zKTogRGVmaW5lCisJX0FSQ0hfUFdSNyBpZiB0aGUgcG9wY250 ZCBpbnN0cnVjdGlvbiBpcyBhdmFpbGFibGUuCisKKwkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLm9w dCAoLW1wb3BjbnRkKTogTmV3IHN3aXRjaCB0bworCWVuYWJsZS9kaXNhYmxlIHRoZSB1c2Ugb2Yg dGhlIHBvcGNudGQgYW5kIHBvcGNudHcgaW5zdHJ1Y3Rpb25zLgorCSgtbWZ1c2VkLW1hZGQsIC1t bm8tZnVzZWQtbWFkZCk6IE1vdmUgdG8gYmVpbmcgYSBzZXBhcmF0ZSB2YXJpYWJsZQorCWJlY2F1 c2Ugd2UgYXJlIG91dCBvZiBtYXNrIGJpdHMuCisKKwkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMg KHBvd2VyN19jb3N0KTogRGVmaW5lLgorCShyczYwMDBfb3ZlcnJpZGVfb3B0aW9ucyk6IEFkZCBQ b3dlcjcgc3VwcG9ydC4KKwkocnM2MDAwX2lzc3VlX3JhdGUpOiBEaXR0by4KKwkoaW5zbl9tdXN0 X2JlX2ZpcnN0X2luX2dyb3VwKTogRGl0dG8uCisJKGluc25fbXVzdF9iZV9sYXN0X2luX2dyb3Vw KTogRGl0dG8uCisJKHJzNjAwMF9lbWl0X3BvcGNvdW50KTogQWRkIHN1cHBvcnQgZm9yIHVzaW5n IHRoZSBwb3BjbnR3IGFuZAorCXBvcGNudGQgaW5zdHJ1Y3Rpb25zLgorCisJKiBjb25maWcvcnM2 MDAwL3JzNjAwMC5oIChBU01fQ1BVX1BPV0VSN19TUEVDKTogU3dpdGNoIHRvIHVzaW5nCisJcG9w Y250ZCBhcyB0aGUgdGVzdCBmb3IgYSBwb3dlcjcgYXNzZW1ibGVyIGluc3RlYWQgb2YgdmVjdG9y CisJc2NhbGFyIGluc3RydWN0aW9ucy4KKwkqIChUQVJHRVRfUE9QQ05URCk6IElmIGFzc2VtYmxl ciBkb2VzIG5vdCBzdXBwb3J0IHRoZSBwb3BjbnRkCisJaW5zdHJ1Y3Rpb24sIGRpc2FibGUgdXNp bmcgaXQuCisJKHByb2Nlc3Nvcl90eXBlKTogQWRkIFBvd2VyNyBlbnRyeS4KKworCSogY29uZmln L3JzNjAwMC9yczYwMDAubWQgKGRlZmluZV9hdHRyICJjcHUiKTogIEFkZCBwb3dlcjcuCisJKHBv d2VyNy5tZCk6IEluY2x1ZGUgaXQuCisJKGFuZGkuL2FuZGlzLi9ub3IuIHBhdHRlcm5zKTogQ2hh bmdlIGluc24gdHlwZSB0byBmYXN0X2NvbXBhcmUuCisJKHBvcGNudHdzaTIpOiBBZGQgcG9wY250 dyBzdXBwb3J0LgorCShwb3BjbnRkZGkyKTogQWRkIHBvcGNudGQgc3VwcG9ydC4KKwordGVzdHN1 aXRlLworMjAwOS0wMy0wMSAgTWljaGFlbCBNZWlzc25lciAgPG1laXNzbmVyQGxpbnV4LnZuZXQu aWJtLmNvbT4KKworCSogZ2NjLnRhcmdldC9wb3dlcnBjL3ZzeC12ZWN0b3ItMS5jOiBGaXggdHlw b3MuCisJKiBnY2MudGFyZ2V0L3Bvd2VycGMvdnN4LXZlY3Rvci0yLmM6IERpdHRvLgorCisJKiBn Y2MudGFyZ2V0L3Bvd2VycGMvdnN4LXZlY3Rvci0zLmM6IE5ldyBmaWxlLCB0ZXN0IF9fdmVjdG9y CisJZG91YmxlLgorCisJKiBnY2MudGFyZ2V0L3Bvd2VycGMvdnN4LXZlY3Rvci00LmM6IE5ldyBm aWxlLCB0ZXN0IF9fdmVjdG9yIGZsb2F0CisJdXNlcyBWU1ggaW5zdHJ1Y3Rpb25zIGlmIC1tdnN4 LgorCisJKiBnY2MuZGcvdm14L3ZteC5leHAgKERFRkFVTFRfVk1YQ0xGQUdTKTogQWRkIC1tbm8t dnN4LgorCisJKiBsaWIvdGFyZ2V0LXN1cHBvcnRzLmV4cCAoY2hlY2tfdnN4X2h3X2F2YWlsYWJs ZSk6IE5ldyBmdW5jdGlvbgorCXRvIHRlc3QgZm9yIFZTWC4KKwkoY2hlY2tfdm14X2h3X2F2YWls YWJsZSk6IEFkZCAtbW5vLXZzeCB0byBvcHRpb25zLgorCShjaGVja19lZmZlY3RpdmVfdGFyZ2V0 X3Bvd2VycGNfdnN4X29rKTogTmV3IGZ1bmN0aW9uIHRvIGNoZWNrIGlmCisJdGhlIHBvd2VycGMg Y29tcGlsZXIgY2FuIHN1cHBvcnQgVlNYLgorCisyMDA5LTAyLTI3ICBNaWNoYWVsIE1laXNzbmVy ICA8bWVpc3NuZXJAbGludXgudm5ldC5pYm0uY29tPgorCisJKiBnY2MudGFyZ2V0L3Bvd2VycGMv dnN4LXZlY3Rvci0xLmM6IE5ldyBmaWxlIHRvIHRlc3QgVlNYIGNvZGUKKwlnZW5lcmF0aW9uLgor CSogZ2NjLnRhcmdldC9wb3dlcnBjL3ZzeC12ZWN0b3ItMi5jOiBEaXR0by4KKworMjAwOS0wMi0w MSBNaWNoYWVsIE1laXNzbmVyICA8bWVpc3NuZXJAbGludXgudm5ldC5pYm0uY29tPgorCisJKiBn Y2MudGFyZ2V0L3Bvd2VycGMvcG9wY291bnQtMi5jOiBOZXcgZmlsZSBmb3IgcG93ZXI3IHN1cHBv cnQuCisJKiBnY2MudGFyZ2V0L3Bvd2VycGMvcG9wY291bnQtMy5jOiBEaXR0by4KKworLS0tIGdj Yy9kb2MvaW52b2tlLnRleGkJKC4uLi90cnVuaykJKHJldmlzaW9uIDE0NDU1NykKKysrKyBnY2Mv ZG9jL2ludm9rZS50ZXhpCSguLi4vYnJhbmNoZXMvaWJtL3Bvd2VyNy1tZWlzc25lcikJKHJldmlz aW9uIDE0NDY5MikKK0BAIC03MTIsNyArNzEyLDggQEAgU2VlIFJTLzYwMDAgYW5kIFBvd2VyUEMg T3B0aW9ucy4KKyAtbWFsdGl2ZWMgIC1tbm8tYWx0aXZlYyBAZ29sCisgLW1wb3dlcnBjLWdwb3B0 ICAtbW5vLXBvd2VycGMtZ3BvcHQgQGdvbAorIC1tcG93ZXJwYy1nZnhvcHQgIC1tbm8tcG93ZXJw Yy1nZnhvcHQgQGdvbAorLS1tbWZjcmYgIC1tbm8tbWZjcmYgIC1tcG9wY250YiAgLW1uby1wb3Bj bnRiICAtbWZwcm5kICAtbW5vLWZwcm5kIEBnb2wKKystbW1mY3JmICAtbW5vLW1mY3JmICAtbXBv cGNudGIgIC1tbm8tcG9wY250YiAtbXBvcGNudGQgLW1uby1wb3BjbnRkIEBnb2wKKystbWZwcm5k ICAtbW5vLWZwcm5kIEBnb2wKKyAtbWNtcGIgLW1uby1jbXBiIC1tbWZwZ3ByIC1tbm8tbWZwZ3By IC1taGFyZC1kZnAgLW1uby1oYXJkLWRmcCBAZ29sCisgLW1uZXctbW5lbW9uaWNzICAtbW9sZC1t bmVtb25pY3MgQGdvbAorIC1tZnVsbC10b2MgICAtbW1pbmltYWwtdG9jICAtbW5vLWZwLWluLXRv YyAgLW1uby1zdW0taW4tdG9jIEBnb2wKK0BAIC03MjYsNyArNzI3LDkgQEAgU2VlIFJTLzYwMDAg YW5kIFBvd2VyUEMgT3B0aW9ucy4KKyAtbXN0cmljdC1hbGlnbiAgLW1uby1zdHJpY3QtYWxpZ24g IC1tcmVsb2NhdGFibGUgQGdvbAorIC1tbm8tcmVsb2NhdGFibGUgIC1tcmVsb2NhdGFibGUtbGli ICAtbW5vLXJlbG9jYXRhYmxlLWxpYiBAZ29sCisgLW10b2MgIC1tbm8tdG9jICAtbWxpdHRsZSAg LW1saXR0bGUtZW5kaWFuICAtbWJpZyAgLW1iaWctZW5kaWFuIEBnb2wKKy0tbWR5bmFtaWMtbm8t cGljICAtbWFsdGl2ZWMgIC1tc3dkaXYgQGdvbAorKy1tZHluYW1pYy1uby1waWMgIC1tYWx0aXZl YyAtbXN3ZGl2IC1tdnN4IC1tdnN4LXZlY3Rvci1tZW1vcnkgQGdvbAorKy1tdnN4LXZlY3Rvci1m bG9hdCAtbXZzeC12ZWN0b3ItZG91YmxlIEBnb2wKKystbXZzeC1zY2FsYXItZG91YmxlIC1tdnN4 LXNjYWxhci1tZW1vcnkgQGdvbAorIC1tcHJpb3JpdGl6ZS1yZXN0cmljdGVkLWluc25zPUB2YXJ7 cHJpb3JpdHl9IEBnb2wKKyAtbXNjaGVkLWNvc3RseS1kZXA9QHZhcntkZXBlbmRlbmNlX3R5cGV9 IEBnb2wKKyAtbWluc2VydC1zY2hlZC1ub3BzPUB2YXJ7c2NoZW1lfSBAZ29sCitAQCAtMTM1MTIs NiArMTM1MTUsOCBAQCBUaGVzZSBAc2FtcHstbX0gb3B0aW9ucyBhcmUgZGVmaW5lZCBmb3IgCisg QGl0ZW14IC1tbm8tbWZjcmYKKyBAaXRlbXggLW1wb3BjbnRiCisgQGl0ZW14IC1tbm8tcG9wY250 YgorK0BpdGVteCAtbXBvcGNudGQKKytAaXRlbXggLW1uby1wb3BjbnRkCisgQGl0ZW14IC1tZnBy bmQKKyBAaXRlbXggLW1uby1mcHJuZAorIEBpdGVteCAtbWNtcGIKK0BAIC0xMzUzNiw2ICsxMzU0 MSw4IEBAIFRoZXNlIEBzYW1wey1tfSBvcHRpb25zIGFyZSBkZWZpbmVkIGZvciAKKyBAb3BpbmRl eCBtbm8tbWZjcmYKKyBAb3BpbmRleCBtcG9wY250YgorIEBvcGluZGV4IG1uby1wb3BjbnRiCisr QG9waW5kZXggbXBvcGNudGQKKytAb3BpbmRleCBtbm8tcG9wY250ZAorIEBvcGluZGV4IG1mcHJu ZAorIEBvcGluZGV4IG1uby1mcHJuZAorIEBvcGluZGV4IG1jbXBiCitAQCAtMTM1ODUsNiArMTM1 OTIsOSBAQCBUaGUgQG9wdGlvbnstbXBvcGNudGJ9IG9wdGlvbiBhbGxvd3MgR0NDCisgZG91Ymxl IHByZWNpc2lvbiBGUCByZWNpcHJvY2FsIGVzdGltYXRlIGluc3RydWN0aW9uIGltcGxlbWVudGVk IG9uIHRoZQorIFBPV0VSNSBwcm9jZXNzb3IgYW5kIG90aGVyIHByb2Nlc3NvcnMgdGhhdCBzdXBw b3J0IHRoZSBQb3dlclBDIFYyLjAyCisgYXJjaGl0ZWN0dXJlLgorK1RoZSBAb3B0aW9uey1tcG9w Y250ZH0gb3B0aW9uIGFsbG93cyBHQ0MgdG8gZ2VuZXJhdGUgdGhlIHBvcGNvdW50CisraW5zdHJ1 Y3Rpb24gaW1wbGVtZW50ZWQgb24gdGhlIFBPV0VSNyBwcm9jZXNzb3IgYW5kIG90aGVyIHByb2Nl c3NvcnMKKyt0aGF0IHN1cHBvcnQgdGhlIFBvd2VyUEMgVjIuMDYgYXJjaGl0ZWN0dXJlLgorIFRo ZSBAb3B0aW9uey1tZnBybmR9IG9wdGlvbiBhbGxvd3MgR0NDIHRvIGdlbmVyYXRlIHRoZSBGUCBy b3VuZCB0bworIGludGVnZXIgaW5zdHJ1Y3Rpb25zIGltcGxlbWVudGVkIG9uIHRoZSBQT1dFUjUr IHByb2Nlc3NvciBhbmQgb3RoZXIKKyBwcm9jZXNzb3JzIHRoYXQgc3VwcG9ydCB0aGUgUG93ZXJQ QyBWMi4wMyBhcmNoaXRlY3R1cmUuCitAQCAtMTM2NjMsOSArMTM2NzMsOSBAQCBUaGUgQG9wdGlv bnstbWNwdX0gb3B0aW9ucyBhdXRvbWF0aWNhbGx5CisgZm9sbG93aW5nIG9wdGlvbnM6CisgCisg QGdjY29wdGxpc3R7LW1hbHRpdmVjICAtbWZwcm5kICAtbWhhcmQtZmxvYXQgIC1tbWZjcmYgIC1t bXVsdGlwbGUgQGdvbAorLS1tbmV3LW1uZW1vbmljcyAgLW1wb3BjbnRiICAtbXBvd2VyICAtbXBv d2VyMiAgLW1wb3dlcnBjNjQgQGdvbAorKy1tbmV3LW1uZW1vbmljcyAgLW1wb3BjbnRiIC1tcG9w Y250ZCAgLW1wb3dlciAgLW1wb3dlcjIgIC1tcG93ZXJwYzY0IEBnb2wKKyAtbXBvd2VycGMtZ3Bv cHQgIC1tcG93ZXJwYy1nZnhvcHQgIC1tc2luZ2xlLWZsb2F0IC1tZG91YmxlLWZsb2F0IEBnb2wK Ky0tbXNpbXBsZS1mcHUgLW1zdHJpbmcgIC1tbXVsaHcgIC1tZGxtemIgIC1tbWZwZ3ByfQorKy1t c2ltcGxlLWZwdSAtbXN0cmluZyAgLW1tdWxodyAgLW1kbG16YiAgLW1tZnBncHIgLW12c3h9Cisg CisgVGhlIHBhcnRpY3VsYXIgb3B0aW9ucyBzZXQgZm9yIGFueSBwYXJ0aWN1bGFyIENQVSB3aWxs IHZhcnkgYmV0d2VlbgorIGNvbXBpbGVyIHZlcnNpb25zLCBkZXBlbmRpbmcgb24gd2hhdCBzZXR0 aW5nIHNlZW1zIHRvIHByb2R1Y2Ugb3B0aW1hbAorQEAgLTEzNzY2LDYgKzEzNzc2LDQ0IEBAIGlu c3RydWN0aW9ucy4KKyBUaGlzIG9wdGlvbiBoYXMgYmVlbiBkZXByZWNhdGVkLiAgVXNlIEBvcHRp b257LW1zcGV9IGFuZAorIEBvcHRpb257LW1uby1zcGV9IGluc3RlYWQuCisgCisrQGl0ZW0gLW12 c3gKKytAaXRlbXggLW1uby12c3gKKytAb3BpbmRleCBtdnN4CisrQG9waW5kZXggbW5vLXZzeAor K0dlbmVyYXRlIGNvZGUgdGhhdCB1c2VzIChkb2VzIG5vdCB1c2UpIHZlY3Rvci9zY2FsYXIgKFZT WCkKKytpbnN0cnVjdGlvbnMsIGFuZCBhbHNvIGVuYWJsZSB0aGUgdXNlIG9mIGJ1aWx0LWluIGZ1 bmN0aW9ucyB0aGF0IGFsbG93CisrbW9yZSBkaXJlY3QgYWNjZXNzIHRvIHRoZSBWU1ggaW5zdHJ1 Y3Rpb24gc2V0LgorKworK0BpdGVtIC1tdnN4LXZlY3Rvci1tZW1vcnkKKytAaXRlbXggLW1uby12 c3gtdmVjdG9yLW1lbW9yeQorK0lmIEBvcHRpb257LW12c3h9LCB1c2UgVlNYIG1lbW9yeSByZWZl cmVuY2UgaW5zdHJ1Y3Rpb25zIGZvciB2ZWN0b3JzCisraW5zdGVhZCBvZiB0aGUgQWx0aXZlYyBp bnN0cnVjdGlvbnMgVGhpcyBvcHRpb24gaXMgYSB0ZW1wb3Jhcnkgc3dpdGNoCisrdG8gdHVuZSB0 aGUgY29tcGlsZXIsIGFuZCBtYXkgbm90IGJlIHN1cHBvcnRlZCBpbiBmdXR1cmUgdmVyc2lvbnMu CisrCisrQGl0ZW0gLW12c3gtdmVjdG9yLWZsb2F0CisrQGl0ZW14IC1tbm8tdnN4LXZlY3Rvci1m bG9hdAorK0lmIEBvcHRpb257LW12c3h9LCB1c2UgVlNYIGFyaXRobWV0aWMgaW5zdHJ1Y3Rpb25z IGZvciBmbG9hdCB2ZWN0b3JzLgorK1RoaXMgb3B0aW9uIGlzIGEgdGVtcG9yYXJ5IHN3aXRjaCB0 byB0dW5lIHRoZSBjb21waWxlciwgYW5kIG1heSBub3QgYmUKKytzdXBwb3J0ZWQgaW4gZnV0dXJl IHZlcnNpb25zLgorKworK0BpdGVtIC1tdnN4LXZlY3Rvci1kb3VibGUKKytAaXRlbXggLW1uby12 c3gtdmVjdG9yLWRvdWJsZQorK0lmIEBvcHRpb257LW12c3h9LCB1c2UgVlNYIGFyaXRobWV0aWMg aW5zdHJ1Y3Rpb25zIGZvciBkb3VibGUKKyt2ZWN0b3JzLiAgVGhpcyBvcHRpb24gaXMgYSB0ZW1w b3Jhcnkgc3dpdGNoIHRvIHR1bmUgdGhlCisrY29tcGlsZXIsIGFuZCBtYXkgbm90IGJlIHN1cHBv cnRlZCBpbiBmdXR1cmUgdmVyc2lvbnMuCisrCisrQGl0ZW0gLW12c3gtc2NhbGFyLWRvdWJsZQor K0BpdGVteCAtbW5vLXZzeC1zY2FsYXItZG91YmxlCisrSWYgQG9wdGlvbnstbXZzeH0sIHVzZSBW U1ggYXJpdGhtZXRpYyBpbnN0cnVjdGlvbnMgZm9yIHNjYWxhciBkb3VibGUuCisrVGhpcyBvcHRp b24gaXMgYSB0ZW1wb3Jhcnkgc3dpdGNoIHRvIHR1bmUgdGhlIGNvbXBpbGVyLCBhbmQgbWF5IG5v dCBiZQorK3N1cHBvcnRlZCBpbiBmdXR1cmUgdmVyc2lvbnMuCisrCisrQGl0ZW0gLW12c3gtc2Nh bGFyLW1lbW9yeQorK0BpdGVteCAtbW5vLXZzeC1zY2FsYXItbWVtb3J5CisrSWYgQG9wdGlvbnst bXZzeH0sIHVzZSBWU1ggbWVtb3J5IHJlZmVyZW5jZSBpbnN0cnVjdGlvbnMgZm9yIHNjYWxhcgor K2RvdWJsZS4gIFRoaXMgb3B0aW9uIGlzIGEgdGVtcG9yYXJ5IHN3aXRjaCB0byB0dW5lIHRoZSBj b21waWxlciwgYW5kCisrbWF5IG5vdCBiZSBzdXBwb3J0ZWQgaW4gZnV0dXJlIHZlcnNpb25zLgor KworIEBpdGVtIC1tZmxvYXQtZ3Bycz1AdmFye3llcy9zaW5nbGUvZG91YmxlL25vfQorIEBpdGVt eCAtbWZsb2F0LWdwcnMKKyBAb3BpbmRleCBtZmxvYXQtZ3BycworLS0tIGdjYy9kb2MvbWQudGV4 aQkoLi4uL3RydW5rKQkocmV2aXNpb24gMTQ0NTU3KQorKysrIGdjYy9kb2MvbWQudGV4aQkoLi4u L2JyYW5jaGVzL2libS9wb3dlcjctbWVpc3NuZXIpCShyZXZpc2lvbiAxNDQ2OTIpCitAQCAtMTkw NSw3ICsxOTA1LDE5IEBAIEFkZHJlc3MgYmFzZSByZWdpc3RlcgorIEZsb2F0aW5nIHBvaW50IHJl Z2lzdGVyCisgCisgQGl0ZW0gdgorLVZlY3RvciByZWdpc3RlcgorK0FsdGl2ZWMgdmVjdG9yIHJl Z2lzdGVyCisrCisrQGl0ZW0gd2QKKytWU1ggdmVjdG9yIHJlZ2lzdGVyIHRvIGhvbGQgdmVjdG9y IGRvdWJsZSBkYXRhCisrCisrQGl0ZW0gd2YKKytWU1ggdmVjdG9yIHJlZ2lzdGVyIHRvIGhvbGQg dmVjdG9yIGZsb2F0IGRhdGEKKysKKytAaXRlbSB3cworK1ZTWCB2ZWN0b3IgcmVnaXN0ZXIgdG8g aG9sZCBzY2FsYXIgZmxvYXQgZGF0YQorKworK0BpdGVtIHdhCisrQW55IFZTWCByZWdpc3Rlcgor IAorIEBpdGVtIGgKKyBAc2FtcHtNUX0sIEBzYW1we0NUUn0sIG9yIEBzYW1we0xJTkt9IHJlZ2lz dGVyCitAQCAtMTk5MSw2ICsyMDAzLDkgQEAgQU5EIG1hc2tzIHRoYXQgY2FuIGJlIHBlcmZvcm1l ZCBieSB0d28gcgorIEBpdGVtIFcKKyBWZWN0b3IgY29uc3RhbnQgdGhhdCBkb2VzIG5vdCByZXF1 aXJlIG1lbW9yeQorIAorK0BpdGVtIGoKKytWZWN0b3IgY29uc3RhbnQgdGhhdCBpcyBhbGwgemVy b3MuCisrCisgQGVuZCB0YWJsZQorIAorIEBpdGVtIEludGVsIDM4Ni0tLUBmaWxle2NvbmZpZy9p Mzg2L2NvbnN0cmFpbnRzLm1kfQorLS0tIGdjYy9yZWxvYWQuYwkoLi4uL3RydW5rKQkocmV2aXNp b24gMTQ0NTU3KQorKysrIGdjYy9yZWxvYWQuYwkoLi4uL2JyYW5jaGVzL2libS9wb3dlcjctbWVp c3NuZXIpCShyZXZpc2lvbiAxNDQ2OTIpCitAQCAtNjI1NSw4ICs2MjU1LDE0IEBAIHN1YnN0X3Jl bG9hZHMgKHJ0eCBpbnNuKQorIAkgICAgKnItPndoZXJlID0gcmVsb2FkcmVnOworIAl9CisgICAg ICAgLyogSWYgcmVsb2FkIGdvdCBubyByZWcgYW5kIGlzbid0IG9wdGlvbmFsLCBzb21ldGhpbmcn cyB3cm9uZy4gICovCistICAgICAgZWxzZQorLQlnY2NfYXNzZXJ0IChybGRbci0+d2hhdF0ub3B0 aW9uYWwpOworKyAgICAgIGVsc2UgaWYgKCFybGRbci0+d2hhdF0ub3B0aW9uYWwpCisrCXsKKysJ ICBjaGFyIGJ1ZmZlclsxMDBdOworKwkgIHNwcmludGYgKGJ1ZmZlciwKKysJCSAgICJ1bmFibGUg dG8gZmluZCByZWdpc3RlciBmb3IgcmVsb2FkLCByZXBsYWNlbWVudCAjJWQiLAorKwkJICAgaSk7 CisrCSAgZmF0YWxfaW5zbiAoYnVmZmVyLCBpbnNuKTsKKysJfQorICAgICB9CisgfQorIAwKKy0t LSBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcG93ZXJwYy9wb3Bjb3VudC0zLmMJKC4uLi90cnVu aykJKHJldmlzaW9uIDApCisrKysgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Bvd2VycGMvcG9w Y291bnQtMy5jCSguLi4vYnJhbmNoZXMvaWJtL3Bvd2VyNy1tZWlzc25lcikJKHJldmlzaW9uIDE0 NDY5MikKK0BAIC0wLDAgKzEsOSBAQAorKy8qIHsgZGctZG8gY29tcGlsZSB7IHRhcmdldCB7IHBv d2VycGMqLSotKiAmJiBscDY0IH0gfSB9ICovCisrLyogeyBkZy1za2lwLWlmICIiIHsgcG93ZXJw YyotKi1kYXJ3aW4qIH0geyAiKiIgfSB7ICIiIH0gfSAqLworKy8qIHsgZGctb3B0aW9ucyAiLU8y IC1tY3B1PXBvd2VyNyAtbTY0IiB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy ICJwb3BjbnRkIiB9IH0gKi8KKysKKytsb25nIGZvbyhpbnQgeCkKKyt7CisrICByZXR1cm4gX19i dWlsdGluX3BvcGNvdW50bCh4KTsKKyt9CistLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Bv d2VycGMvdnN4LXZlY3Rvci0xLmMJKC4uLi90cnVuaykJKHJldmlzaW9uIDApCisrKysgZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Bvd2VycGMvdnN4LXZlY3Rvci0xLmMJKC4uLi9icmFuY2hlcy9p Ym0vcG93ZXI3LW1laXNzbmVyKQkocmV2aXNpb24gMTQ0NjkyKQorQEAgLTAsMCArMSw3NCBAQAor Ky8qIHsgZGctZG8gY29tcGlsZSB7IHRhcmdldCB7IHBvd2VycGMqLSotKiAmJiBscDY0IH0gfSB9 ICovCisrLyogeyBkZy1za2lwLWlmICIiIHsgcG93ZXJwYyotKi1kYXJ3aW4qIH0geyAiKiIgfSB7 ICIiIH0gfSAqLworKy8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IHBvd2VycGNfdnN4 X29rIH0gKi8KKysvKiB7IGRnLW9wdGlvbnMgIi1PMiAtZnRyZWUtdmVjdG9yaXplIC1tY3B1PXBv d2VyNyAtbTY0IiB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ4dmFkZGRw IiB9IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInh2c3ViZHAiIH0gfSAq LworKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAieHZtdWxkcCIgfSB9ICovCisrLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ4dmRpdmRwIiB9IH0gKi8KKysvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXIgInh2bWFkZCIgfSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyICJ4dm1zdWIiIH0gfSAqLworKworKyNpZm5kZWYgU0laRQorKyNkZWZpbmUg U0laRSAxMDI0CisrI2VuZGlmCisrCisrZG91YmxlIGFbU0laRV0gX19hdHRyaWJ1dGVfXygoX19h bGlnbmVkX18oMzIpKSk7CisrZG91YmxlIGJbU0laRV0gX19hdHRyaWJ1dGVfXygoX19hbGlnbmVk X18oMzIpKSk7CisrZG91YmxlIGNbU0laRV0gX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oMzIp KSk7CisrZG91YmxlIGRbU0laRV0gX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oMzIpKSk7Cisr ZG91YmxlIGVbU0laRV0gX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oMzIpKSk7CisrCisrdm9p ZAorK3ZlY3Rvcl9hZGQgKHZvaWQpCisreworKyAgaW50IGk7CisrCisrICBmb3IgKGkgPSAwOyBp IDwgU0laRTsgaSsrKQorKyAgICBhW2ldID0gYltpXSArIGNbaV07CisrfQorKworK3ZvaWQKKyt2 ZWN0b3Jfc3VidHJhY3QgKHZvaWQpCisreworKyAgaW50IGk7CisrCisrICBmb3IgKGkgPSAwOyBp IDwgU0laRTsgaSsrKQorKyAgICBhW2ldID0gYltpXSAtIGNbaV07CisrfQorKworK3ZvaWQKKyt2 ZWN0b3JfbXVsdGlwbHkgKHZvaWQpCisreworKyAgaW50IGk7CisrCisrICBmb3IgKGkgPSAwOyBp IDwgU0laRTsgaSsrKQorKyAgICBhW2ldID0gYltpXSAqIGNbaV07CisrfQorKworK3ZvaWQKKyt2 ZWN0b3JfbXVsdGlwbHlfYWRkICh2b2lkKQorK3sKKysgIGludCBpOworKworKyAgZm9yIChpID0g MDsgaSA8IFNJWkU7IGkrKykKKysgICAgYVtpXSA9IChiW2ldICogY1tpXSkgKyBkW2ldOworK30K KysKKyt2b2lkCisrdmVjdG9yX211bHRpcGx5X3N1YnRyYWN0ICh2b2lkKQorK3sKKysgIGludCBp OworKworKyAgZm9yIChpID0gMDsgaSA8IFNJWkU7IGkrKykKKysgICAgYVtpXSA9IChiW2ldICog Y1tpXSkgLSBkW2ldOworK30KKysKKyt2b2lkCisrdmVjdG9yX2RpdmlkZSAodm9pZCkKKyt7Cisr ICBpbnQgaTsKKysKKysgIGZvciAoaSA9IDA7IGkgPCBTSVpFOyBpKyspCisrICAgIGFbaV0gPSBi W2ldIC8gY1tpXTsKKyt9CistLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Bvd2VycGMvdnN4 LXZlY3Rvci0yLmMJKC4uLi90cnVuaykJKHJldmlzaW9uIDApCisrKysgZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Bvd2VycGMvdnN4LXZlY3Rvci0yLmMJKC4uLi9icmFuY2hlcy9pYm0vcG93ZXI3 LW1laXNzbmVyKQkocmV2aXNpb24gMTQ0NjkyKQorQEAgLTAsMCArMSw3NCBAQAorKy8qIHsgZGct ZG8gY29tcGlsZSB7IHRhcmdldCB7IHBvd2VycGMqLSotKiAmJiBscDY0IH0gfSB9ICovCisrLyog eyBkZy1za2lwLWlmICIiIHsgcG93ZXJwYyotKi1kYXJ3aW4qIH0geyAiKiIgfSB7ICIiIH0gfSAq LworKy8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IHBvd2VycGNfdnN4X29rIH0gKi8K KysvKiB7IGRnLW9wdGlvbnMgIi1PMiAtZnRyZWUtdmVjdG9yaXplIC1tY3B1PXBvd2VyNyAtbTY0 IiB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ4dmFkZHNwIiB9IH0gKi8K KysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInh2c3Vic3AiIH0gfSAqLworKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAieHZtdWxzcCIgfSB9ICovCisrLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyICJ4dmRpdnNwIiB9IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXIgInh2bWFkZCIgfSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyICJ4dm1zdWIiIH0gfSAqLworKworKyNpZm5kZWYgU0laRQorKyNkZWZpbmUgU0laRSAxMDI0 CisrI2VuZGlmCisrCisrZmxvYXQgYVtTSVpFXSBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygz MikpKTsKKytmbG9hdCBiW1NJWkVdIF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKDMyKSkpOwor K2Zsb2F0IGNbU0laRV0gX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oMzIpKSk7CisrZmxvYXQg ZFtTSVpFXSBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygzMikpKTsKKytmbG9hdCBlW1NJWkVd IF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKDMyKSkpOworKworK3ZvaWQKKyt2ZWN0b3JfYWRk ICh2b2lkKQorK3sKKysgIGludCBpOworKworKyAgZm9yIChpID0gMDsgaSA8IFNJWkU7IGkrKykK KysgICAgYVtpXSA9IGJbaV0gKyBjW2ldOworK30KKysKKyt2b2lkCisrdmVjdG9yX3N1YnRyYWN0 ICh2b2lkKQorK3sKKysgIGludCBpOworKworKyAgZm9yIChpID0gMDsgaSA8IFNJWkU7IGkrKykK KysgICAgYVtpXSA9IGJbaV0gLSBjW2ldOworK30KKysKKyt2b2lkCisrdmVjdG9yX211bHRpcGx5 ICh2b2lkKQorK3sKKysgIGludCBpOworKworKyAgZm9yIChpID0gMDsgaSA8IFNJWkU7IGkrKykK KysgICAgYVtpXSA9IGJbaV0gKiBjW2ldOworK30KKysKKyt2b2lkCisrdmVjdG9yX211bHRpcGx5 X2FkZCAodm9pZCkKKyt7CisrICBpbnQgaTsKKysKKysgIGZvciAoaSA9IDA7IGkgPCBTSVpFOyBp KyspCisrICAgIGFbaV0gPSAoYltpXSAqIGNbaV0pICsgZFtpXTsKKyt9CisrCisrdm9pZAorK3Zl Y3Rvcl9tdWx0aXBseV9zdWJ0cmFjdCAodm9pZCkKKyt7CisrICBpbnQgaTsKKysKKysgIGZvciAo aSA9IDA7IGkgPCBTSVpFOyBpKyspCisrICAgIGFbaV0gPSAoYltpXSAqIGNbaV0pIC0gZFtpXTsK Kyt9CisrCisrdm9pZAorK3ZlY3Rvcl9kaXZpZGUgKHZvaWQpCisreworKyAgaW50IGk7CisrCisr ICBmb3IgKGkgPSAwOyBpIDwgU0laRTsgaSsrKQorKyAgICBhW2ldID0gYltpXSAvIGNbaV07Cisr fQorLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9wb3dlcnBjL3ZzeC12ZWN0b3ItMy5jCSgu Li4vdHJ1bmspCShyZXZpc2lvbiAwKQorKysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9wb3dl cnBjL3ZzeC12ZWN0b3ItMy5jCSguLi4vYnJhbmNoZXMvaWJtL3Bvd2VyNy1tZWlzc25lcikJKHJl dmlzaW9uIDE0NDY5MikKK0BAIC0wLDAgKzEsNDggQEAKKysvKiB7IGRnLWRvIGNvbXBpbGUgeyB0 YXJnZXQgeyBwb3dlcnBjKi0qLSogJiYgbHA2NCB9IH0gfSAqLworKy8qIHsgZGctc2tpcC1pZiAi IiB7IHBvd2VycGMqLSotZGFyd2luKiB9IHsgIioiIH0geyAiIiB9IH0gKi8KKysvKiB7IGRnLXJl cXVpcmUtZWZmZWN0aXZlLXRhcmdldCBwb3dlcnBjX3ZzeF9vayB9ICovCisrLyogeyBkZy1vcHRp b25zICItTzIgLWZ0cmVlLXZlY3Rvcml6ZSAtbWNwdT1wb3dlcjcgLW02NCIgfSAqLworKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAieHZhZGRkcCIgfSB9ICovCisrLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyICJ4dnN1YmRwIiB9IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXIgInh2bXVsZHAiIH0gfSAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt YmxlciAieHZkaXZkcCIgfSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ4 dm1hZGQiIH0gfSAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAieHZtc3ViIiB9 IH0gKi8KKysKKytfX3ZlY3RvciBkb3VibGUgYSwgYiwgYywgZDsKKysKKyt2b2lkCisrdmVjdG9y X2FkZCAodm9pZCkKKyt7CisrICBhID0gYiArIGM7CisrfQorKworK3ZvaWQKKyt2ZWN0b3Jfc3Vi dHJhY3QgKHZvaWQpCisreworKyAgYSA9IGIgLSBjOworK30KKysKKyt2b2lkCisrdmVjdG9yX211 bHRpcGx5ICh2b2lkKQorK3sKKysgIGEgPSBiICogYzsKKyt9CisrCisrdm9pZAorK3ZlY3Rvcl9t dWx0aXBseV9hZGQgKHZvaWQpCisreworKyAgYSA9IChiICogYykgKyBkOworK30KKysKKyt2b2lk CisrdmVjdG9yX211bHRpcGx5X3N1YnRyYWN0ICh2b2lkKQorK3sKKysgIGEgPSAoYiAqIGMpIC0g ZDsKKyt9CisrCisrdm9pZAorK3ZlY3Rvcl9kaXZpZGUgKHZvaWQpCisreworKyAgYSA9IGIgLyBj OworK30KKy0tLSBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcG93ZXJwYy9wb3Bjb3VudC0yLmMJ KC4uLi90cnVuaykJKHJldmlzaW9uIDApCisrKysgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Bv d2VycGMvcG9wY291bnQtMi5jCSguLi4vYnJhbmNoZXMvaWJtL3Bvd2VyNy1tZWlzc25lcikJKHJl dmlzaW9uIDE0NDY5MikKK0BAIC0wLDAgKzEsOSBAQAorKy8qIHsgZGctZG8gY29tcGlsZSB7IHRh cmdldCB7IGlscDMyIH0gfSB9ICovCisrLyogeyBkZy1za2lwLWlmICIiIHsgcG93ZXJwYyotKi1k YXJ3aW4qIH0geyAiKiIgfSB7ICIiIH0gfSAqLworKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1tY3B1 PXBvd2VyNyAtbTMyIiB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJwb3Bj bnR3IiB9IH0gKi8KKysKKytpbnQgZm9vKGludCB4KQorK3sKKysgIHJldHVybiBfX2J1aWx0aW5f cG9wY291bnQoeCk7CisrfQorLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9wb3dlcnBjL3Zz eC12ZWN0b3ItNC5jCSguLi4vdHJ1bmspCShyZXZpc2lvbiAwKQorKysrIGdjYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9wb3dlcnBjL3ZzeC12ZWN0b3ItNC5jCSguLi4vYnJhbmNoZXMvaWJtL3Bvd2Vy Ny1tZWlzc25lcikJKHJldmlzaW9uIDE0NDY5MikKK0BAIC0wLDAgKzEsNDggQEAKKysvKiB7IGRn LWRvIGNvbXBpbGUgeyB0YXJnZXQgeyBwb3dlcnBjKi0qLSogJiYgbHA2NCB9IH0gfSAqLworKy8q IHsgZGctc2tpcC1pZiAiIiB7IHBvd2VycGMqLSotZGFyd2luKiB9IHsgIioiIH0geyAiIiB9IH0g Ki8KKysvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBwb3dlcnBjX3ZzeF9vayB9ICov CisrLyogeyBkZy1vcHRpb25zICItTzIgLWZ0cmVlLXZlY3Rvcml6ZSAtbWNwdT1wb3dlcjcgLW02 NCIgfSAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAieHZhZGRzcCIgfSB9ICov CisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ4dnN1YnNwIiB9IH0gKi8KKysvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInh2bXVsc3AiIH0gfSAqLworKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlciAieHZkaXZzcCIgfSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyICJ4dm1hZGQiIH0gfSAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt YmxlciAieHZtc3ViIiB9IH0gKi8KKysKKytfX3ZlY3RvciBmbG9hdCBhLCBiLCBjLCBkOworKwor K3ZvaWQKKyt2ZWN0b3JfYWRkICh2b2lkKQorK3sKKysgIGEgPSBiICsgYzsKKyt9CisrCisrdm9p ZAorK3ZlY3Rvcl9zdWJ0cmFjdCAodm9pZCkKKyt7CisrICBhID0gYiAtIGM7CisrfQorKworK3Zv aWQKKyt2ZWN0b3JfbXVsdGlwbHkgKHZvaWQpCisreworKyAgYSA9IGIgKiBjOworK30KKysKKyt2 b2lkCisrdmVjdG9yX211bHRpcGx5X2FkZCAodm9pZCkKKyt7CisrICBhID0gKGIgKiBjKSArIGQ7 CisrfQorKworK3ZvaWQKKyt2ZWN0b3JfbXVsdGlwbHlfc3VidHJhY3QgKHZvaWQpCisreworKyAg YSA9IChiICogYykgLSBkOworK30KKysKKyt2b2lkCisrdmVjdG9yX2RpdmlkZSAodm9pZCkKKyt7 CisrICBhID0gYiAvIGM7CisrfQorLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3ZteC92bXguZXhw CSguLi4vdHJ1bmspCShyZXZpc2lvbiAxNDQ1NTcpCisrKysgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcv dm14L3ZteC5leHAJKC4uLi9icmFuY2hlcy9pYm0vcG93ZXI3LW1laXNzbmVyKQkocmV2aXNpb24g MTQ0NjkyKQorQEAgLTMxLDcgKzMxLDcgQEAgaWYgeyFbaXN0YXJnZXQgcG93ZXJwYyotKi0qXQor ICMgbm90aGluZyBidXQgZXh0ZW5zaW9ucy4KKyBnbG9iYWwgREVGQVVMVF9WTVhDRkxBR1MKKyBp ZiAhW2luZm8gZXhpc3RzIERFRkFVTFRfVk1YQ0ZMQUdTXSB0aGVuIHsKKy0gICAgc2V0IERFRkFV TFRfVk1YQ0ZMQUdTICItbWFsdGl2ZWMgLW1hYmk9YWx0aXZlYyAtc3RkPWdudTk5IgorKyAgICBz ZXQgREVGQVVMVF9WTVhDRkxBR1MgIi1tYWx0aXZlYyAtbWFiaT1hbHRpdmVjIC1zdGQ9Z251OTkg LW1uby12c3giCisgfQorIAorICMgSWYgdGhlIHRhcmdldCBzeXN0ZW0gc3VwcG9ydHMgQWx0aVZl YyBpbnN0cnVjdGlvbnMsIHRoZSBkZWZhdWx0IGFjdGlvbgorLS0tIGdjYy90ZXN0c3VpdGUvbGli L3RhcmdldC1zdXBwb3J0cy5leHAJKC4uLi90cnVuaykJKHJldmlzaW9uIDE0NDU1NykKKysrKyBn Y2MvdGVzdHN1aXRlL2xpYi90YXJnZXQtc3VwcG9ydHMuZXhwCSguLi4vYnJhbmNoZXMvaWJtL3Bv d2VyNy1tZWlzc25lcikJKHJldmlzaW9uIDE0NDY5MikKK0BAIC04NzMsNiArODczLDMyIEBAIHBy b2MgY2hlY2tfc3NlMl9od19hdmFpbGFibGUgeyB9IHsKKyAgICAgfV0KKyB9CisgCisrIyBSZXR1 cm4gMSBpZiB0aGUgdGFyZ2V0IHN1cHBvcnRzIGV4ZWN1dGluZyBWU1ggaW5zdHJ1Y3Rpb25zLCAw CisrIyBvdGhlcndpc2UuICBDYWNoZSB0aGUgcmVzdWx0LgorKworK3Byb2MgY2hlY2tfdnN4X2h3 X2F2YWlsYWJsZSB7IH0geworKyAgICByZXR1cm4gW2NoZWNrX2NhY2hlZF9lZmZlY3RpdmVfdGFy Z2V0IHZzeF9od19hdmFpbGFibGUgeworKwkjIFNvbWUgc2ltdWxhdG9ycyBhcmUga25vd24gdG8g bm90IHN1cHBvcnQgVlNYIGluc3RydWN0aW9ucy4KKysJIyBGb3Igbm93LCBkaXNhYmxlIG9uIERh cndpbgorKwlpZiB7IFtpc3RhcmdldCBwb3dlcnBjLSotZWFiaV0gfHwgW2lzdGFyZ2V0IHBvd2Vy cGMqLSotZWFiaXNwZV0gfHwgW2lzdGFyZ2V0ICotKi1kYXJ3aW4qXX0geworKwkgICAgZXhwciAw CisrCX0gZWxzZSB7CisrCSAgICBzZXQgb3B0aW9ucyAiLW12c3giCisrCSAgICBjaGVja19ydW50 aW1lX25vY2FjaGUgdnN4X2h3X2F2YWlsYWJsZSB7CisrCQlpbnQgbWFpbigpCisrCQl7CisrCQkj aWZkZWYgX19NQUNIX18KKysJCSAgYXNtIHZvbGF0aWxlICgieHhsb3IgdnMwLHZzMCx2czAiKTsK KysJCSNlbHNlCisrCQkgIGFzbSB2b2xhdGlsZSAoInh4bG9yIDAsMCwwIik7CisrCSAgICAgICAg I2VuZGlmCisrCQkgIHJldHVybiAwOworKwkJfQorKwkgICAgfSAkb3B0aW9ucworKwl9CisrICAg IH1dCisrfQorKworICMgUmV0dXJuIDEgaWYgdGhlIHRhcmdldCBzdXBwb3J0cyBleGVjdXRpbmcg QWx0aVZlYyBpbnN0cnVjdGlvbnMsIDAKKyAjIG90aGVyd2lzZS4gIENhY2hlIHRoZSByZXN1bHQu CisgCitAQCAtODgzLDEyICs5MDksMTMgQEAgcHJvYyBjaGVja192bXhfaHdfYXZhaWxhYmxlIHsg fSB7CisgCSAgICBleHByIDAKKyAJfSBlbHNlIHsKKyAJICAgICMgTW9zdCB0YXJnZXRzIGRvbid0 IHJlcXVpcmUgc3BlY2lhbCBmbGFncyBmb3IgdGhpcyB0ZXN0IGNhc2UsIGJ1dAorLQkgICAgIyBE YXJ3aW4gZG9lcy4KKysJICAgICMgRGFyd2luIGRvZXMuICBKdXN0IHRvIGJlIHN1cmUsIG1ha2Ug c3VyZSBWU1ggaXMgbm90IGVuYWJsZWQgZm9yCisrCSAgICAjIHRoZSBhbHRpdmVjIHRlc3RzLgor IAkgICAgaWYgeyBbaXN0YXJnZXQgKi0qLWRhcndpbipdCisgCQkgfHwgW2lzdGFyZ2V0ICotKi1h aXgqXSB9IHsKKy0JCXNldCBvcHRpb25zICItbWFsdGl2ZWMiCisrCQlzZXQgb3B0aW9ucyAiLW1h bHRpdmVjIC1tbm8tdnN4IgorIAkgICAgfSBlbHNlIHsKKy0JCXNldCBvcHRpb25zICIiCisrCQlz ZXQgb3B0aW9ucyAiLW1uby12c3giCisgCSAgICB9CisgCSAgICBjaGVja19ydW50aW1lX25vY2Fj aGUgdm14X2h3X2F2YWlsYWJsZSB7CisgCQlpbnQgbWFpbigpCitAQCAtMTUxOSw2ICsxNTQ2LDMz IEBAIHByb2MgY2hlY2tfZWZmZWN0aXZlX3RhcmdldF9wb3dlcnBjX2FsdGkKKyAgICAgfQorIH0K KyAKKysjIFJldHVybiAxIGlmIHRoaXMgaXMgYSBQb3dlclBDIHRhcmdldCBzdXBwb3J0aW5nIC1t dnN4CisrCisrcHJvYyBjaGVja19lZmZlY3RpdmVfdGFyZ2V0X3Bvd2VycGNfdnN4X29rIHsgfSB7 CisrICAgIGlmIHsgKFtpc3RhcmdldCBwb3dlcnBjKi0qLSpdCisrICAgICAgICAgJiYgIVtpc3Rh cmdldCBwb3dlcnBjLSotbGludXgqcGFpcmVkKl0pCisrCSB8fCBbaXN0YXJnZXQgcnM2MDAwLSot Kl0gfSB7CisrCSMgQWx0aVZlYyBpcyBub3Qgc3VwcG9ydGVkIG9uIEFJWCBiZWZvcmUgNS4zLgor KwlpZiB7IFtpc3RhcmdldCBwb3dlcnBjKi0qLWFpeDQqXQorKwkgICAgIHx8IFtpc3RhcmdldCBw b3dlcnBjKi0qLWFpeDUuMSpdIAorKwkgICAgIHx8IFtpc3RhcmdldCBwb3dlcnBjKi0qLWFpeDUu MipdIH0geworKwkgICAgcmV0dXJuIDAKKysJfQorKwlyZXR1cm4gW2NoZWNrX25vX2NvbXBpbGVy X21lc3NhZ2VzIHBvd2VycGNfdnN4X29rIG9iamVjdCB7CisrCSAgICBpbnQgbWFpbiAodm9pZCkg eworKyNpZmRlZiBfX01BQ0hfXworKwkJYXNtIHZvbGF0aWxlICgieHhsb3IgdnMwLHZzMCx2czAi KTsKKysjZWxzZQorKwkJYXNtIHZvbGF0aWxlICgieHhsb3IgMCwwLDAiKTsKKysjZW5kaWYKKysJ CXJldHVybiAwOworKwkgICAgfQorKwl9ICItbXZzeCJdCisrICAgIH0gZWxzZSB7CisrCXJldHVy biAwCisrICAgIH0KKyt9CisrCisgIyBSZXR1cm4gMSBpZiB0aGlzIGlzIGEgUG93ZXJQQyB0YXJn ZXQgc3VwcG9ydGluZyAtbWNwdT1jZWxsLgorIAorIHByb2MgY2hlY2tfZWZmZWN0aXZlX3Rhcmdl dF9wb3dlcnBjX3BwdV9vayB7IH0geworLS0tIGdjYy9jb25maWcuaW4JKC4uLi90cnVuaykJKHJl dmlzaW9uIDE0NDU1NykKKysrKyBnY2MvY29uZmlnLmluCSguLi4vYnJhbmNoZXMvaWJtL3Bvd2Vy Ny1tZWlzc25lcikJKHJldmlzaW9uIDE0NDY5MikKK0BAIC0zMzQsMTIgKzMzNCwxOCBAQAorICNl bmRpZgorIAorIAorLS8qIERlZmluZSBpZiB5b3VyIGFzc2VtYmxlciBzdXBwb3J0cyBwb3BjbnRi IGZpZWxkLiAqLworKy8qIERlZmluZSBpZiB5b3VyIGFzc2VtYmxlciBzdXBwb3J0cyBwb3BjbnRi IGluc3RydWN0aW9uLiAqLworICNpZm5kZWYgVVNFRF9GT1JfVEFSR0VUCisgI3VuZGVmIEhBVkVf QVNfUE9QQ05UQgorICNlbmRpZgorIAorIAorKy8qIERlZmluZSBpZiB5b3VyIGFzc2VtYmxlciBz dXBwb3J0cyBwb3BjbnRkIGluc3RydWN0aW9uLiAqLworKyNpZm5kZWYgVVNFRF9GT1JfVEFSR0VU CisrI3VuZGVmIEhBVkVfQVNfUE9QQ05URAorKyNlbmRpZgorKworKworIC8qIERlZmluZSBpZiB5 b3VyIGFzc2VtYmxlciBzdXBwb3J0cyAucmVnaXN0ZXIuICovCisgI2lmbmRlZiBVU0VEX0ZPUl9U QVJHRVQKKyAjdW5kZWYgSEFWRV9BU19SRUdJU1RFUl9QU0VVRE9fT1AKKy0tLSBnY2MvY29uZmln dXJlLmFjCSguLi4vdHJ1bmspCShyZXZpc2lvbiAxNDQ1NTcpCisrKysgZ2NjL2NvbmZpZ3VyZS5h YwkoLi4uL2JyYW5jaGVzL2libS9wb3dlcjctbWVpc3NuZXIpCShyZXZpc2lvbiAxNDQ2OTIpCitA QCAtMiw3ICsyLDcgQEAKKyAjIFByb2Nlc3MgdGhpcyBmaWxlIHdpdGggYXV0b2NvbmYgdG8gZ2Vu ZXJhdGUgYSBjb25maWd1cmF0aW9uIHNjcmlwdC4KKyAKKyAjIENvcHlyaWdodCAxOTk3LCAxOTk4 LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LAorLSMgMjAw NywgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjIDIwMDcsIDIwMDgsIDIw MDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgCisgI1RoaXMgZmlsZSBpcyBwYXJ0 IG9mIEdDQy4KKyAKK0BAIC0zMDgwLDcgKzMwODAsNyBAQCBmb286CW5vcAorICAgICBlc2FjCisg CisgICAgIGdjY19HQVNfQ0hFQ0tfRkVBVFVSRShbbW92ZSBmcCBncHIgc3VwcG9ydF0sCistICAg ICAgZ2NjX2N2X2FzX3Bvd2VycGNfbWZwZ3ByLCBbOSw5OSwwXSwsCisrICAgICAgZ2NjX2N2X2Fz X3Bvd2VycGNfbWZwZ3ByLCBbMiwxOSwyXSwsCisgICAgICAgWyRjb25mdGVzdF9zXSwsCisgICAg ICAgW0FDX0RFRklORShIQVZFX0FTX01GUEdQUiwgMSwKKyAJICBbRGVmaW5lIGlmIHlvdXIgYXNz ZW1ibGVyIHN1cHBvcnRzIG1mZmdwciBhbmQgbWZ0Z3ByLl0pXSkKK0BAIC0zMTE0LDcgKzMxMTQs NyBAQCBMQ0YwOgorICAgICBlc2FjCisgCisgICAgIGdjY19HQVNfQ0hFQ0tfRkVBVFVSRShbY29t cGFyZSBieXRlcyBzdXBwb3J0XSwKKy0gICAgICBnY2NfY3ZfYXNfcG93ZXJwY19jbXBiLCBbOSw5 OSwwXSwgLWEzMiwKKysgICAgICBnY2NfY3ZfYXNfcG93ZXJwY19jbXBiLCBbMiwxOSwyXSwgLWEz MiwKKyAgICAgICBbJGNvbmZ0ZXN0X3NdLCwKKyAgICAgICBbQUNfREVGSU5FKEhBVkVfQVNfQ01Q QiwgMSwKKyAJICBbRGVmaW5lIGlmIHlvdXIgYXNzZW1ibGVyIHN1cHBvcnRzIGNtcGIuXSldKQor QEAgLTMxMjksNyArMzEyOSw3IEBAIExDRjA6CisgICAgIGVzYWMKKyAKKyAgICAgZ2NjX0dBU19D SEVDS19GRUFUVVJFKFtkZWNpbWFsIGZsb2F0IHN1cHBvcnRdLAorLSAgICAgIGdjY19jdl9hc19w b3dlcnBjX2RmcCwgWzksOTksMF0sIC1hMzIsCisrICAgICAgZ2NjX2N2X2FzX3Bvd2VycGNfZGZw LCBbMiwxOSwyXSwgLWEzMiwKKyAgICAgICBbJGNvbmZ0ZXN0X3NdLCwKKyAgICAgICBbQUNfREVG SU5FKEhBVkVfQVNfREZQLCAxLAorIAkgIFtEZWZpbmUgaWYgeW91ciBhc3NlbWJsZXIgc3VwcG9y dHMgREZQIGluc3RydWN0aW9ucy5dKV0pCitAQCAtMzE0NCwxMSArMzE0NCwyNiBAQCBMQ0YwOgor ICAgICBlc2FjCisgCisgICAgIGdjY19HQVNfQ0hFQ0tfRkVBVFVSRShbdmVjdG9yLXNjYWxhciBz dXBwb3J0XSwKKy0gICAgICBnY2NfY3ZfYXNfcG93ZXJwY192c3gsIFs5LDk5LDBdLCAtYTMyLAor KyAgICAgIGdjY19jdl9hc19wb3dlcnBjX3ZzeCwgWzIsMTksMl0sIC1hMzIsCisgICAgICAgWyRj b25mdGVzdF9zXSwsCisgICAgICAgW0FDX0RFRklORShIQVZFX0FTX1ZTWCwgMSwKKyAJICBbRGVm aW5lIGlmIHlvdXIgYXNzZW1ibGVyIHN1cHBvcnRzIFZTWCBpbnN0cnVjdGlvbnMuXSldKQorIAor KyAgICBjYXNlICR0YXJnZXQgaW4KKysgICAgICAqLSotYWl4KikgY29uZnRlc3Rfcz0nCS5tYWNo aW5lICJwd3I3IgorKwkuY3NlY3QgLnRleHRbW1BSXV0KKysJcG9wY250ZCAzLDMnOzsKKysgICAg ICAqKSBjb25mdGVzdF9zPScJLm1hY2hpbmUgcG93ZXI3CisrCS50ZXh0CisrCXBvcGNudGQgMywz Jzs7CisrICAgIGVzYWMKKysKKysgICAgZ2NjX0dBU19DSEVDS19GRUFUVVJFKFtwb3BjbnRkIHN1 cHBvcnRdLAorKyAgICAgIGdjY19jdl9hc19wb3dlcnBjX3BvcGNudGQsIFsyLDE5LDJdLCAtYTMy LAorKyAgICAgIFskY29uZnRlc3Rfc10sLAorKyAgICAgIFtBQ19ERUZJTkUoSEFWRV9BU19QT1BD TlRELCAxLAorKwkgIFtEZWZpbmUgaWYgeW91ciBhc3NlbWJsZXIgc3VwcG9ydHMgUE9QQ05URCBp bnN0cnVjdGlvbnMuXSldKQorKworICAgICBnY2NfR0FTX0NIRUNLX0ZFQVRVUkUoWy5nbnVfYXR0 cmlidXRlIHN1cHBvcnRdLAorICAgICAgIGdjY19jdl9hc19wb3dlcnBjX2dudV9hdHRyaWJ1dGUs IFsyLDE4LDBdLCwKKyAgICAgICBbLmdudV9hdHRyaWJ1dGUgNCwxXSwsCistLS0gZ2NjL2NvbmZp Z3VyZQkoLi4uL3RydW5rKQkocmV2aXNpb24gMTQ0NTU3KQorKysrIGdjYy9jb25maWd1cmUJKC4u Li9icmFuY2hlcy9pYm0vcG93ZXI3LW1laXNzbmVyKQkocmV2aXNpb24gMTQ0NjkyKQorQEAgLTIz MjI1LDcgKzIzMjI1LDcgQEAgaWYgdGVzdCAiJHtnY2NfY3ZfYXNfcG93ZXJwY19tZnBncHIrc2V0 fQorIGVsc2UKKyAgIGdjY19jdl9hc19wb3dlcnBjX21mcGdwcj1ubworICAgICBpZiB0ZXN0ICRp bl90cmVlX2dhcyA9IHllczsgdGhlbgorLSAgICBpZiB0ZXN0ICRnY2NfY3ZfZ2FzX3ZlcnMgLWdl IGBleHByIFwoIFwoIDkgXCogMTAwMCBcKSArIDk5IFwpIFwqIDEwMDAgKyAwYAorKyAgICBpZiB0 ZXN0ICRnY2NfY3ZfZ2FzX3ZlcnMgLWdlIGBleHByIFwoIFwoIDIgXCogMTAwMCBcKSArIDE5IFwp IFwqIDEwMDAgKyAyYAorICAgdGhlbiBnY2NfY3ZfYXNfcG93ZXJwY19tZnBncHI9eWVzCisgZmkK KyAgIGVsaWYgdGVzdCB4JGdjY19jdl9hcyAhPSB4OyB0aGVuCitAQCAtMjMzMjEsNyArMjMzMjEs NyBAQCBpZiB0ZXN0ICIke2djY19jdl9hc19wb3dlcnBjX2NtcGIrc2V0fSIgCisgZWxzZQorICAg Z2NjX2N2X2FzX3Bvd2VycGNfY21wYj1ubworICAgICBpZiB0ZXN0ICRpbl90cmVlX2dhcyA9IHll czsgdGhlbgorLSAgICBpZiB0ZXN0ICRnY2NfY3ZfZ2FzX3ZlcnMgLWdlIGBleHByIFwoIFwoIDkg XCogMTAwMCBcKSArIDk5IFwpIFwqIDEwMDAgKyAwYAorKyAgICBpZiB0ZXN0ICRnY2NfY3ZfZ2Fz X3ZlcnMgLWdlIGBleHByIFwoIFwoIDIgXCogMTAwMCBcKSArIDE5IFwpIFwqIDEwMDAgKyAyYAor ICAgdGhlbiBnY2NfY3ZfYXNfcG93ZXJwY19jbXBiPXllcworIGZpCisgICBlbGlmIHRlc3QgeCRn Y2NfY3ZfYXMgIT0geDsgdGhlbgorQEAgLTIzMzY3LDcgKzIzMzY3LDcgQEAgaWYgdGVzdCAiJHtn Y2NfY3ZfYXNfcG93ZXJwY19kZnArc2V0fSIgPQorIGVsc2UKKyAgIGdjY19jdl9hc19wb3dlcnBj X2RmcD1ubworICAgICBpZiB0ZXN0ICRpbl90cmVlX2dhcyA9IHllczsgdGhlbgorLSAgICBpZiB0 ZXN0ICRnY2NfY3ZfZ2FzX3ZlcnMgLWdlIGBleHByIFwoIFwoIDkgXCogMTAwMCBcKSArIDk5IFwp IFwqIDEwMDAgKyAwYAorKyAgICBpZiB0ZXN0ICRnY2NfY3ZfZ2FzX3ZlcnMgLWdlIGBleHByIFwo IFwoIDIgXCogMTAwMCBcKSArIDE5IFwpIFwqIDEwMDAgKyAyYAorICAgdGhlbiBnY2NfY3ZfYXNf cG93ZXJwY19kZnA9eWVzCisgZmkKKyAgIGVsaWYgdGVzdCB4JGdjY19jdl9hcyAhPSB4OyB0aGVu CitAQCAtMjM0MTMsNyArMjM0MTMsNyBAQCBpZiB0ZXN0ICIke2djY19jdl9hc19wb3dlcnBjX3Zz eCtzZXR9IiA9CisgZWxzZQorICAgZ2NjX2N2X2FzX3Bvd2VycGNfdnN4PW5vCisgICAgIGlmIHRl c3QgJGluX3RyZWVfZ2FzID0geWVzOyB0aGVuCistICAgIGlmIHRlc3QgJGdjY19jdl9nYXNfdmVy cyAtZ2UgYGV4cHIgXCggXCggOSBcKiAxMDAwIFwpICsgOTkgXCkgXCogMTAwMCArIDBgCisrICAg IGlmIHRlc3QgJGdjY19jdl9nYXNfdmVycyAtZ2UgYGV4cHIgXCggXCggMiBcKiAxMDAwIFwpICsg MTkgXCkgXCogMTAwMCArIDJgCisgICB0aGVuIGdjY19jdl9hc19wb3dlcnBjX3ZzeD15ZXMKKyBm aQorICAgZWxpZiB0ZXN0IHgkZ2NjX2N2X2FzICE9IHg7IHRoZW4KK0BAIC0yMzQ0Myw2ICsyMzQ0 Myw1MiBAQCBfQUNFT0YKKyAKKyBmaQorIAorKyAgICBjYXNlICR0YXJnZXQgaW4KKysgICAgICAq LSotYWl4KikgY29uZnRlc3Rfcz0nCS5tYWNoaW5lICJwd3I3IgorKwkuY3NlY3QgLnRleHRbUFJd CisrCXBvcGNudGQgMywzJzs7CisrICAgICAgKikgY29uZnRlc3Rfcz0nCS5tYWNoaW5lIHBvd2Vy NworKwkudGV4dAorKwlwb3BjbnRkIDMsMyc7OworKyAgICBlc2FjCisrCisrICAgIGVjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBhc3NlbWJsZXIgZm9yIHBvcGNudGQgc3VwcG9ydCIgPiY1 CisrZWNobyAkRUNIT19OICJjaGVja2luZyBhc3NlbWJsZXIgZm9yIHBvcGNudGQgc3VwcG9ydC4u LiAkRUNIT19DIiA+JjYKKytpZiB0ZXN0ICIke2djY19jdl9hc19wb3dlcnBjX3BvcGNudGQrc2V0 fSIgPSBzZXQ7IHRoZW4KKysgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Cisr ZWxzZQorKyAgZ2NjX2N2X2FzX3Bvd2VycGNfcG9wY250ZD1ubworKyAgICBpZiB0ZXN0ICRpbl90 cmVlX2dhcyA9IHllczsgdGhlbgorKyAgICBpZiB0ZXN0ICRnY2NfY3ZfZ2FzX3ZlcnMgLWdlIGBl eHByIFwoIFwoIDIgXCogMTAwMCBcKSArIDE5IFwpIFwqIDEwMDAgKyAyYAorKyAgdGhlbiBnY2Nf Y3ZfYXNfcG93ZXJwY19wb3BjbnRkPXllcworK2ZpCisrICBlbGlmIHRlc3QgeCRnY2NfY3ZfYXMg IT0geDsgdGhlbgorKyAgICBlY2hvICIkY29uZnRlc3RfcyIgPiBjb25mdGVzdC5zCisrICAgIGlm IHsgYWNfdHJ5PSckZ2NjX2N2X2FzIC1hMzIgLW8gY29uZnRlc3QubyBjb25mdGVzdC5zID4mNScK KysgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisrICAo ZXZhbCAkYWNfdHJ5KSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgIGVjaG8gIiRhc19tZTokTElO RU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9Cisr ICAgIHRoZW4KKysJZ2NjX2N2X2FzX3Bvd2VycGNfcG9wY250ZD15ZXMKKysgICAgZWxzZQorKyAg ICAgIGVjaG8gImNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzIiA+JjUKKysgICAgICBjYXQg Y29uZnRlc3QucyA+JjUKKysgICAgZmkKKysgICAgcm0gLWYgY29uZnRlc3QubyBjb25mdGVzdC5z CisrICBmaQorK2ZpCisrZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGdjY19jdl9hc19w b3dlcnBjX3BvcGNudGQiID4mNQorK2VjaG8gIiR7RUNIT19UfSRnY2NfY3ZfYXNfcG93ZXJwY19w b3BjbnRkIiA+JjYKKytpZiB0ZXN0ICRnY2NfY3ZfYXNfcG93ZXJwY19wb3BjbnRkID0geWVzOyB0 aGVuCisrCisrY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKysjZGVmaW5lIEhBVkVfQVNfUE9Q Q05URCAxCisrX0FDRU9GCisrCisrZmkKKysKKyAgICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGFzc2VtYmxlciBmb3IgLmdudV9hdHRyaWJ1dGUgc3VwcG9ydCIgPiY1CisgZWNobyAk RUNIT19OICJjaGVja2luZyBhc3NlbWJsZXIgZm9yIC5nbnVfYXR0cmlidXRlIHN1cHBvcnQuLi4g JEVDSE9fQyIgPiY2CisgaWYgdGVzdCAiJHtnY2NfY3ZfYXNfcG93ZXJwY19nbnVfYXR0cmlidXRl K3NldH0iID0gc2V0OyB0aGVuCistLS0gZ2NjL2NvbmZpZy9yczYwMDAvYWl4NTMuaAkoLi4uL3Ry dW5rKQkocmV2aXNpb24gMTQ0NTU3KQorKysrIGdjYy9jb25maWcvcnM2MDAwL2FpeDUzLmgJKC4u Li9icmFuY2hlcy9pYm0vcG93ZXI3LW1laXNzbmVyKQkocmV2aXNpb24gMTQ0NjkyKQorQEAgLTU3 LDIwICs1NywyNCBAQCBkbyB7CQkJCQkJCQkJXAorICN1bmRlZiBBU01fU1BFQworICNkZWZpbmUg QVNNX1NQRUMgIi11ICV7bWFpeDY0Oi1hNjQgJXshbWNwdSo6LW1wcGM2NH19ICUoYXNtX2NwdSki CisgCistLyogQ29tbW9uIEFTTSBkZWZpbml0aW9ucyB1c2VkIGJ5IEFTTV9TUEVDIGFtb25nc3Qg dGhlIHZhcmlvdXMgdGFyZ2V0cworLSAgIGZvciBoYW5kbGluZyAtbWNwdT14eHggc3dpdGNoZXMu ICAqLworKy8qIENvbW1vbiBBU00gZGVmaW5pdGlvbnMgdXNlZCBieSBBU01fU1BFQyBhbW9uZ3N0 IHRoZSB2YXJpb3VzIHRhcmdldHMgZm9yCisrICAgaGFuZGxpbmcgLW1jcHU9eHh4IHN3aXRjaGVz LiAgVGhlcmUgaXMgYSBwYXJhbGxlbCBsaXN0IGluIGRyaXZlci1yczYwMDAuYyB0bworKyAgIHBy b3ZpZGUgdGhlIGRlZmF1bHQgYXNzZW1ibGVyIG9wdGlvbnMgaWYgdGhlIHVzZXIgdXNlcyAtbWNw dT1uYXRpdmUsIHNvIGlmCisrICAgeW91IG1ha2UgY2hhbmdlcyBoZXJlLCBtYWtlIHRoZW0gdGhl cmUgYWxzby4gICovCisgI3VuZGVmIEFTTV9DUFVfU1BFQworICNkZWZpbmUgQVNNX0NQVV9TUEVD IFwKKyAiJXshbWNwdSo6ICV7IW1haXg2NDogXAorICAgJXttcG93ZXJwYzY0OiAtbXBwYzY0fSBc CisgICAle21hbHRpdmVjOiAtbTk3MH0gXAorICAgJXshbWFsdGl2ZWM6ICV7IW1wb3dlcjY0OiAl KGFzbV9kZWZhdWx0KX19fX0gXAorKyV7bWNwdT1uYXRpdmU6ICUoYXNtX2NwdV9uYXRpdmUpfSBc CisgJXttY3B1PXBvd2VyMzogLW02MjB9IFwKKyAle21jcHU9cG93ZXI0OiAtbXB3cjR9IFwKKyAl e21jcHU9cG93ZXI1OiAtbXB3cjV9IFwKKyAle21jcHU9cG93ZXI1KzogLW1wd3I1eH0gXAorICV7 bWNwdT1wb3dlcjY6IC1tcHdyNn0gXAorICV7bWNwdT1wb3dlcjZ4OiAtbXB3cjZ9IFwKKysle21j cHU9cG93ZXI3OiAtbXB3cjd9IFwKKyAle21jcHU9cG93ZXJwYzogLW1wcGN9IFwKKyAle21jcHU9 cnM2NGE6IC1tcHBjfSBcCisgJXttY3B1PTYwMzogLW02MDN9IFwKKy0tLSBnY2MvY29uZmlnL3Jz NjAwMC92ZWN0b3IubWQJKC4uLi90cnVuaykJKHJldmlzaW9uIDApCisrKysgZ2NjL2NvbmZpZy9y czYwMDAvdmVjdG9yLm1kCSguLi4vYnJhbmNoZXMvaWJtL3Bvd2VyNy1tZWlzc25lcikJKHJldmlz aW9uIDE0NDY5MikKK0BAIC0wLDAgKzEsNTE4IEBACisrOzsgRXhwYW5kZXIgZGVmaW5pdGlvbnMg Zm9yIHZlY3RvciBzdXBwb3J0IGJldHdlZW4gYWx0aXZlYyAmIHZzeC4gIE5vCisrOzsgaW5zdHJ1 Y3Rpb25zIGFyZSBpbiB0aGlzIGZpbGUsIHRoaXMgZmlsZSBwcm92aWRlcyB0aGUgZ2VuZXJpYyB2 ZWN0b3IKKys7OyBleHBhbmRlciwgYW5kIHRoZSBhY3R1YWwgdmVjdG9yIGluc3RydWN0aW9ucyB3 aWxsIGJlIGluIGFsdGl2ZWMubWQgYW5kCisrOzsgdnN4Lm1kCisrCisrOzsgQ29weXJpZ2h0IChD KSAyMDA5CisrOzsgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrOzsgQ29udHJpYnV0 ZWQgYnkgTWljaGFlbCBNZWlzc25lciA8bWVpc3NuZXJAbGludXgudm5ldC5pYm0uY29tPgorKwor Kzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdDQy4KKysKKys7OyBHQ0MgaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorKzs7IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkCisr OzsgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMywgb3Ig KGF0IHlvdXIKKys7OyBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKzs7IEdDQyBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9V VAorKzs7IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m IE1FUkNIQU5UQUJJTElUWQorKzs7IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKys7OyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCisrCisrOzsgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKKys7OyBhbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENP UFlJTkczLiAgSWYgbm90IHNlZQorKzs7IDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4K KysKKysKKys7OyBWZWN0b3IgaW50IG1vZGVzCisrKGRlZmluZV9tb2RlX2l0ZXJhdG9yIFZFQ19J IFtWMTZRSSBWOEhJIFY0U0ldKQorKworKzs7IFZlY3RvciBmbG9hdCBtb2RlcworKyhkZWZpbmVf bW9kZV9pdGVyYXRvciBWRUNfRiBbVjRTRiBWMkRGXSkKKysKKys7OyBWZWN0b3IgbG9naWNhbCBt b2RlcworKyhkZWZpbmVfbW9kZV9pdGVyYXRvciBWRUNfTCBbVjE2UUkgVjhISSBWNFNJIFYyREkg VjRTRiBWMkRGIFRJXSkKKysKKys7OyBWZWN0b3IgbW9kZXMgZm9yIG1vdmVzLiAgRG9uJ3QgZG8g VEltb2RlIGhlcmUuCisrKGRlZmluZV9tb2RlX2l0ZXJhdG9yIFZFQ19NIFtWMTZRSSBWOEhJIFY0 U0kgVjJESSBWNFNGIFYyREZdKQorKworKzs7IFZlY3RvciBjb21wYXJpc29uIG1vZGVzCisrKGRl ZmluZV9tb2RlX2l0ZXJhdG9yIFZFQ19DIFtWMTZRSSBWOEhJIFY0U0kgVjRTRiBWMkRGXSkKKysK Kys7OyBCYXNlIHR5cGUgZnJvbSB2ZWN0b3IgbW9kZQorKyhkZWZpbmVfbW9kZV9hdHRyIFZFQ19i YXNlIFsoVjE2UUkgIlFJIikKKysJCQkgICAgKFY4SEkgICJISSIpCisrCQkJICAgIChWNFNJICAi U0kiKQorKwkJCSAgICAoVjJESSAgIkRJIikKKysJCQkgICAgKFY0U0YgICJTRiIpCisrCQkJICAg IChWMkRGICAiREYiKQorKwkJCSAgICAoVEkgICAgIlRJIildKQorKworKzs7IFNhbWUgc2l6ZSBp bnRlZ2VyIHR5cGUgZm9yIGZsb2F0aW5nIHBvaW50IGRhdGEKKysoZGVmaW5lX21vZGVfYXR0ciBW RUNfaW50IFsoVjRTRiAgInY0c2kiKQorKwkJCSAgIChWMkRGICAidjJkaSIpXSkKKysKKysoZGVm aW5lX21vZGVfYXR0ciBWRUNfSU5UIFsoVjRTRiAgIlY0U0kiKQorKwkJCSAgIChWMkRGICAiVjJE SSIpXSkKKysKKys7OyBWZWN0b3IgbW92ZSBpbnN0cnVjdGlvbnMuCisrKGRlZmluZV9leHBhbmQg Im1vdjxtb2RlPiIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZFQ19NIDAgIm5vbmltbWVkaWF0 ZV9vcGVyYW5kIiAiIikKKysJKG1hdGNoX29wZXJhbmQ6VkVDX00gMSAiYW55X29wZXJhbmQiICIi KSldCisrICAiVkVDVE9SX01FTV9BTFRJVkVDX09SX1ZTWF9QICg8TU9ERT5tb2RlKSIKKyt7Cisr ICAvKiBtb2RlcyB3aXRob3V0IHNwZWNpYWwgaGFuZGxpbmcganVzdCBnZW5lcmF0ZSB0aGUgbm9y bWFsIFNFVCBvcGVyYXRpb24uICAqLworKyAgaWYgKDxNT0RFPm1vZGUgIT0gVEltb2RlICYmIDxN T0RFPm1vZGUgIT0gVjJESW1vZGUgJiYgPE1PREU+bW9kZSAhPSBWMkRGbW9kZSkKKysgICAgewor KyAgICAgIHJzNjAwMF9lbWl0X21vdmUgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSwgPE1PREU+ bW9kZSk7CisrICAgICAgRE9ORTsKKysgICAgfQorKyAgZWxzZSBpZiAoIXZsb2dpY2FsX29wZXJh bmQgKG9wZXJhbmRzWzBdLCA8TU9ERT5tb2RlKQorKwkgICAmJiAhdmxvZ2ljYWxfb3BlcmFuZCAo b3BlcmFuZHNbMV0sIDxNT0RFPm1vZGUpKQorKyAgICBvcGVyYW5kc1sxXSA9IGZvcmNlX3JlZyAo PE1PREU+bW9kZSwgb3BlcmFuZHNbMV0pOworK30pCisrCisrOzsgR2VuZXJpYyB2ZWN0b3IgZmxv YXRpbmcgcG9pbnQgbG9hZC9zdG9yZSBpbnN0cnVjdGlvbnMuICBUaGVzZSB3aWxsIG1hdGNoCisr OzsgaW5zbnMgZGVmaW5lZCBpbiB2c3gubWQgb3IgYWx0aXZlYy5tZCBkZXBlbmRpbmcgb24gdGhl IHN3aXRjaGVzLgorKyhkZWZpbmVfZXhwYW5kICJ2ZWN0b3JfbG9hZF88bW9kZT4iCisrICBbKHNl dCAobWF0Y2hfb3BlcmFuZDpWRUNfTSAwICJ2ZmxvYXRfb3BlcmFuZCIgIiIpCisrCShtYXRjaF9v cGVyYW5kOlZFQ19NIDEgIm1lbW9yeV9vcGVyYW5kIiAiIikpXQorKyAgIlZFQ1RPUl9NRU1fQUxU SVZFQ19PUl9WU1hfUCAoPE1PREU+bW9kZSkiCisrICAiIikKKysKKysoZGVmaW5lX2V4cGFuZCAi dmVjdG9yX3N0b3JlXzxtb2RlPiIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZFQ19NIDAgIm1l bW9yeV9vcGVyYW5kIiAiIikKKysJKG1hdGNoX29wZXJhbmQ6VkVDX00gMSAidmZsb2F0X29wZXJh bmQiICIiKSldCisrICAiVkVDVE9SX01FTV9BTFRJVkVDX09SX1ZTWF9QICg8TU9ERT5tb2RlKSIK KysgICIiKQorKworKzs7IFNwbGl0cyBpZiBhIEdQUiByZWdpc3RlciB3YXMgY2hvc2VuIGZvciB0 aGUgbW92ZQorKyhkZWZpbmVfc3BsaXQKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZFQ19MIDAg Im5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiIikKKysgICAgICAgIChtYXRjaF9vcGVyYW5kOlZFQ19M IDEgImlucHV0X29wZXJhbmQiICIiKSldCisrICAiVkVDVE9SX01FTV9BTFRJVkVDX09SX1ZTWF9Q ICg8TU9ERT5tb2RlKQorKyAgICYmIHJlbG9hZF9jb21wbGV0ZWQKKysgICAmJiBncHJfb3JfZ3By X3AgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSkiCisrICBbKHBjKV0KKyt7CisrICByczYwMDBf c3BsaXRfbXVsdGlyZWdfbW92ZSAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdKTsKKysgIERPTkU7 CisrfSkKKysKKysMCisrOzsgR2VuZXJpYyBmbG9hdGluZyBwb2ludCB2ZWN0b3IgYXJpdGhtZXRp YyBzdXBwb3J0CisrKGRlZmluZV9leHBhbmQgImFkZDxtb2RlPjMiCisrICBbKHNldCAobWF0Y2hf b3BlcmFuZDpWRUNfRiAwICJ2ZmxvYXRfb3BlcmFuZCIgIiIpCisrCShwbHVzOlZFQ19GIChtYXRj aF9vcGVyYW5kOlZFQ19GIDEgInZmbG9hdF9vcGVyYW5kIiAiIikKKysJCSAgICAobWF0Y2hfb3Bl cmFuZDpWRUNfRiAyICJ2ZmxvYXRfb3BlcmFuZCIgIiIpKSldCisrICAiVkVDVE9SX1VOSVRfQUxU SVZFQ19PUl9WU1hfUCAoPE1PREU+bW9kZSkiCisrICAiIikKKysKKysoZGVmaW5lX2V4cGFuZCAi c3ViPG1vZGU+MyIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZFQ19GIDAgInZmbG9hdF9vcGVy YW5kIiAiIikKKysJKG1pbnVzOlZFQ19GIChtYXRjaF9vcGVyYW5kOlZFQ19GIDEgInZmbG9hdF9v cGVyYW5kIiAiIikKKysJCSAgICAgKG1hdGNoX29wZXJhbmQ6VkVDX0YgMiAidmZsb2F0X29wZXJh bmQiICIiKSkpXQorKyAgIlZFQ1RPUl9VTklUX0FMVElWRUNfT1JfVlNYX1AgKDxNT0RFPm1vZGUp IgorKyAgIiIpCisrCisrKGRlZmluZV9leHBhbmQgIm11bDxtb2RlPjMiCisrICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpWRUNfRiAwICJ2ZmxvYXRfb3BlcmFuZCIgIiIpCisrCShtdWx0OlZFQ19GICht YXRjaF9vcGVyYW5kOlZFQ19GIDEgInZmbG9hdF9vcGVyYW5kIiAiIikKKysJCSAgICAobWF0Y2hf b3BlcmFuZDpWRUNfRiAyICJ2ZmxvYXRfb3BlcmFuZCIgIiIpKSldCisrICAiKFZFQ1RPUl9VTklU X1ZTWF9QICg8TU9ERT5tb2RlKQorKyAgICB8fCAoVkVDVE9SX1VOSVRfQUxUSVZFQ19QICg8TU9E RT5tb2RlKSAmJiBUQVJHRVRfRlVTRURfTUFERCkpIgorKyAgIgorK3sKKysgIGlmICg8TU9ERT5t b2RlID09IFY0U0Ztb2RlICYmIFZFQ1RPUl9VTklUX0FMVElWRUNfUCAoPE1PREU+bW9kZSkpCisr ICAgIHsKKysgICAgICBlbWl0X2luc24gKGdlbl9hbHRpdmVjX211bHY0c2YzIChvcGVyYW5kc1sw XSwgb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzJdKSk7CisrICAgICAgRE9ORTsKKysgICAgfQorK30i KQorKworKyhkZWZpbmVfZXhwYW5kICJkaXY8bW9kZT4zIgorKyAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6VkVDX0YgMCAidmZsb2F0X29wZXJhbmQiICIiKQorKwkoZGl2OlZFQ19GIChtYXRjaF9vcGVy YW5kOlZFQ19GIDEgInZmbG9hdF9vcGVyYW5kIiAiIikKKysJCSAgIChtYXRjaF9vcGVyYW5kOlZF Q19GIDIgInZmbG9hdF9vcGVyYW5kIiAiIikpKV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAoPE1P REU+bW9kZSkiCisrICAiIikKKysKKysoZGVmaW5lX2V4cGFuZCAibmVnPG1vZGU+MiIKKysgIFso c2V0IChtYXRjaF9vcGVyYW5kOlZFQ19GIDAgInZmbG9hdF9vcGVyYW5kIiAiIikKKysJKG5lZzpW RUNfRiAobWF0Y2hfb3BlcmFuZDpWRUNfRiAxICJ2ZmxvYXRfb3BlcmFuZCIgIiIpKSldCisrICAi VkVDVE9SX1VOSVRfQUxUSVZFQ19PUl9WU1hfUCAoPE1PREU+bW9kZSkiCisrICAiCisreworKyAg aWYgKDxNT0RFPm1vZGUgPT0gVjRTRm1vZGUgJiYgVkVDVE9SX1VOSVRfQUxUSVZFQ19QICg8TU9E RT5tb2RlKSkKKysgICAgeworKyAgICAgIGVtaXRfaW5zbiAoZ2VuX2FsdGl2ZWNfbmVndjRzZjIg KG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSkpOworKyAgICAgIERPTkU7CisrICAgIH0KKyt9IikK KysKKysoZGVmaW5lX2V4cGFuZCAiYWJzPG1vZGU+MiIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5k OlZFQ19GIDAgInZmbG9hdF9vcGVyYW5kIiAiIikKKysJKGFiczpWRUNfRiAobWF0Y2hfb3BlcmFu ZDpWRUNfRiAxICJ2ZmxvYXRfb3BlcmFuZCIgIiIpKSldCisrICAiVkVDVE9SX1VOSVRfQUxUSVZF Q19PUl9WU1hfUCAoPE1PREU+bW9kZSkiCisrICAiCisreworKyAgaWYgKDxNT0RFPm1vZGUgPT0g VjRTRm1vZGUgJiYgVkVDVE9SX1VOSVRfQUxUSVZFQ19QICg8TU9ERT5tb2RlKSkKKysgICAgewor KyAgICAgIGVtaXRfaW5zbiAoZ2VuX2FsdGl2ZWNfYWJzdjRzZjIgKG9wZXJhbmRzWzBdLCBvcGVy YW5kc1sxXSkpOworKyAgICAgIERPTkU7CisrICAgIH0KKyt9IikKKysKKysoZGVmaW5lX2V4cGFu ZCAic21pbjxtb2RlPjMiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWRUNfRiAwICJyZWdpc3Rl cl9vcGVyYW5kIiAiIikKKysgICAgICAgIChzbWluOlZFQ19GIChtYXRjaF9vcGVyYW5kOlZFQ19G IDEgInJlZ2lzdGVyX29wZXJhbmQiICIiKQorKwkJICAgIChtYXRjaF9vcGVyYW5kOlZFQ19GIDIg InJlZ2lzdGVyX29wZXJhbmQiICIiKSkpXQorKyAgIlZFQ1RPUl9VTklUX0FMVElWRUNfT1JfVlNY X1AgKDxNT0RFPm1vZGUpIgorKyAgIiIpCisrCisrKGRlZmluZV9leHBhbmQgInNtYXg8bW9kZT4z IgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VkVDX0YgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIiIp CisrICAgICAgICAoc21heDpWRUNfRiAobWF0Y2hfb3BlcmFuZDpWRUNfRiAxICJyZWdpc3Rlcl9v cGVyYW5kIiAiIikKKysJCSAgICAobWF0Y2hfb3BlcmFuZDpWRUNfRiAyICJyZWdpc3Rlcl9vcGVy YW5kIiAiIikpKV0KKysgICJWRUNUT1JfVU5JVF9BTFRJVkVDX09SX1ZTWF9QICg8TU9ERT5tb2Rl KSIKKysgICIiKQorKworKworKyhkZWZpbmVfZXhwYW5kICJzcXJ0PG1vZGU+MiIKKysgIFsoc2V0 IChtYXRjaF9vcGVyYW5kOlZFQ19GIDAgInZmbG9hdF9vcGVyYW5kIiAiIikKKysJKHNxcnQ6VkVD X0YgKG1hdGNoX29wZXJhbmQ6VkVDX0YgMSAidmZsb2F0X29wZXJhbmQiICIiKSkpXQorKyAgIlZF Q1RPUl9VTklUX1ZTWF9QICg8TU9ERT5tb2RlKSIKKysgICIiKQorKworKyhkZWZpbmVfZXhwYW5k ICJmdHJ1bmM8bW9kZT4yIgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VkVDX0YgMCAidmZsb2F0 X29wZXJhbmQiICIiKQorKyAgCShmaXg6VkVDX0YgKG1hdGNoX29wZXJhbmQ6VkVDX0YgMSAidmZs b2F0X29wZXJhbmQiICIiKSkpXQorKyAgIlZFQ1RPUl9VTklUX0FMVElWRUNfT1JfVlNYX1AgKDxN T0RFPm1vZGUpIgorKyAgIiIpCisrCisrDAorKzs7IFZlY3RvciBjb21wYXJpc29ucworKyhkZWZp bmVfZXhwYW5kICJ2Y29uZDxtb2RlPiIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZFQ19GIDAg InZmbG9hdF9vcGVyYW5kIiAiIikKKysJKGlmX3RoZW5fZWxzZTpWRUNfRgorKwkgKG1hdGNoX29w ZXJhdG9yIDMgImNvbXBhcmlzb25fb3BlcmF0b3IiCisrCQkJIFsobWF0Y2hfb3BlcmFuZDpWRUNf RiA0ICJ2ZmxvYXRfb3BlcmFuZCIgIiIpCisrCQkJICAobWF0Y2hfb3BlcmFuZDpWRUNfRiA1ICJ2 ZmxvYXRfb3BlcmFuZCIgIiIpXSkKKysJIChtYXRjaF9vcGVyYW5kOlZFQ19GIDEgInZmbG9hdF9v cGVyYW5kIiAiIikKKysJIChtYXRjaF9vcGVyYW5kOlZFQ19GIDIgInZmbG9hdF9vcGVyYW5kIiAi IikpKV0KKysgICJWRUNUT1JfVU5JVF9BTFRJVkVDX09SX1ZTWF9QICg8TU9ERT5tb2RlKSIKKysg ICIKKyt7CisrICBpZiAocnM2MDAwX2VtaXRfdmVjdG9yX2NvbmRfZXhwciAob3BlcmFuZHNbMF0s IG9wZXJhbmRzWzFdLCBvcGVyYW5kc1syXSwKKysJCQkJICAgIG9wZXJhbmRzWzNdLCBvcGVyYW5k c1s0XSwgb3BlcmFuZHNbNV0pKQorKyAgICBET05FOworKyAgZWxzZQorKyAgICBGQUlMOworK30i KQorKworKyhkZWZpbmVfZXhwYW5kICJ2Y29uZDxtb2RlPiIKKysgIFsoc2V0IChtYXRjaF9vcGVy YW5kOlZFQ19JIDAgInZpbnRfb3BlcmFuZCIgIiIpCisrCShpZl90aGVuX2Vsc2U6VkVDX0kKKysJ IChtYXRjaF9vcGVyYXRvciAzICJjb21wYXJpc29uX29wZXJhdG9yIgorKwkJCSBbKG1hdGNoX29w ZXJhbmQ6VkVDX0kgNCAidmludF9vcGVyYW5kIiAiIikKKysJCQkgIChtYXRjaF9vcGVyYW5kOlZF Q19JIDUgInZpbnRfb3BlcmFuZCIgIiIpXSkKKysJIChtYXRjaF9vcGVyYW5kOlZFQ19JIDEgInZp bnRfb3BlcmFuZCIgIiIpCisrCSAobWF0Y2hfb3BlcmFuZDpWRUNfSSAyICJ2aW50X29wZXJhbmQi ICIiKSkpXQorKyAgIlZFQ1RPUl9VTklUX0FMVElWRUNfUCAoPE1PREU+bW9kZSkiCisrICAiCisr eworKyAgaWYgKHJzNjAwMF9lbWl0X3ZlY3Rvcl9jb25kX2V4cHIgKG9wZXJhbmRzWzBdLCBvcGVy YW5kc1sxXSwgb3BlcmFuZHNbMl0sCisrCQkJCSAgICBvcGVyYW5kc1szXSwgb3BlcmFuZHNbNF0s IG9wZXJhbmRzWzVdKSkKKysgICAgRE9ORTsKKysgIGVsc2UKKysgICAgRkFJTDsKKyt9IikKKysK KysoZGVmaW5lX2V4cGFuZCAidmNvbmR1PG1vZGU+IgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6 VkVDX0kgMCAidmludF9vcGVyYW5kIiAiPXYiKQorKwkoaWZfdGhlbl9lbHNlOlZFQ19JCisrCSAo bWF0Y2hfb3BlcmF0b3IgMyAiY29tcGFyaXNvbl9vcGVyYXRvciIKKysJCQkgWyhtYXRjaF9vcGVy YW5kOlZFQ19JIDQgInZpbnRfb3BlcmFuZCIgIiIpCisrCQkJICAobWF0Y2hfb3BlcmFuZDpWRUNf SSA1ICJ2aW50X29wZXJhbmQiICIiKV0pCisrCSAobWF0Y2hfb3BlcmFuZDpWRUNfSSAxICJ2aW50 X29wZXJhbmQiICIiKQorKwkgKG1hdGNoX29wZXJhbmQ6VkVDX0kgMiAidmludF9vcGVyYW5kIiAi IikpKV0KKysgICJWRUNUT1JfVU5JVF9BTFRJVkVDX1AgKDxNT0RFPm1vZGUpIgorKyAgIgorK3sK KysgIGlmIChyczYwMDBfZW1pdF92ZWN0b3JfY29uZF9leHByIChvcGVyYW5kc1swXSwgb3BlcmFu ZHNbMV0sIG9wZXJhbmRzWzJdLAorKwkJCQkgICAgb3BlcmFuZHNbM10sIG9wZXJhbmRzWzRdLCBv cGVyYW5kc1s1XSkpCisrICAgIERPTkU7CisrICBlbHNlCisrICAgIEZBSUw7CisrfSIpCisrCisr KGRlZmluZV9leHBhbmQgInZlY3Rvcl9lcTxtb2RlPiIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5k OlZFQ19DIDAgInZsb2dpY2FsX29wZXJhbmQiICIiKQorKwkoZXE6VkVDX0MgKG1hdGNoX29wZXJh bmQ6VkVDX0MgMSAidmxvZ2ljYWxfb3BlcmFuZCIgIiIpCisrCQkgIChtYXRjaF9vcGVyYW5kOlZF Q19DIDIgInZsb2dpY2FsX29wZXJhbmQiICIiKSkpXQorKyAgIlZFQ1RPUl9VTklUX0FMVElWRUNf T1JfVlNYX1AgKDxNT0RFPm1vZGUpIgorKyAgIiIpCisrCisrKGRlZmluZV9leHBhbmQgInZlY3Rv cl9ndDxtb2RlPiIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZFQ19DIDAgInZsb2dpY2FsX29w ZXJhbmQiICIiKQorKwkoZ3Q6VkVDX0MgKG1hdGNoX29wZXJhbmQ6VkVDX0MgMSAidmxvZ2ljYWxf b3BlcmFuZCIgIiIpCisrCQkgIChtYXRjaF9vcGVyYW5kOlZFQ19DIDIgInZsb2dpY2FsX29wZXJh bmQiICIiKSkpXQorKyAgIlZFQ1RPUl9VTklUX0FMVElWRUNfT1JfVlNYX1AgKDxNT0RFPm1vZGUp IgorKyAgIiIpCisrCisrKGRlZmluZV9leHBhbmQgInZlY3Rvcl9nZTxtb2RlPiIKKysgIFsoc2V0 IChtYXRjaF9vcGVyYW5kOlZFQ19DIDAgInZsb2dpY2FsX29wZXJhbmQiICIiKQorKwkoZ2U6VkVD X0MgKG1hdGNoX29wZXJhbmQ6VkVDX0MgMSAidmxvZ2ljYWxfb3BlcmFuZCIgIiIpCisrCQkgICht YXRjaF9vcGVyYW5kOlZFQ19DIDIgInZsb2dpY2FsX29wZXJhbmQiICIiKSkpXQorKyAgIlZFQ1RP Ul9VTklUX0FMVElWRUNfT1JfVlNYX1AgKDxNT0RFPm1vZGUpIgorKyAgIiIpCisrCisrKGRlZmlu ZV9leHBhbmQgInZlY3Rvcl9ndHU8bW9kZT4iCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWRUNf SSAwICJ2aW50X29wZXJhbmQiICIiKQorKwkoZ3R1OlZFQ19JIChtYXRjaF9vcGVyYW5kOlZFQ19J IDEgInZpbnRfb3BlcmFuZCIgIiIpCisrCQkgICAobWF0Y2hfb3BlcmFuZDpWRUNfSSAyICJ2aW50 X29wZXJhbmQiICIiKSkpXQorKyAgIlZFQ1RPUl9VTklUX0FMVElWRUNfUCAoPE1PREU+bW9kZSki CisrICAiIikKKysKKysoZGVmaW5lX2V4cGFuZCAidmVjdG9yX2dldTxtb2RlPiIKKysgIFsoc2V0 IChtYXRjaF9vcGVyYW5kOlZFQ19JIDAgInZpbnRfb3BlcmFuZCIgIiIpCisrCShnZXU6VkVDX0kg KG1hdGNoX29wZXJhbmQ6VkVDX0kgMSAidmludF9vcGVyYW5kIiAiIikKKysJCSAgIChtYXRjaF9v cGVyYW5kOlZFQ19JIDIgInZpbnRfb3BlcmFuZCIgIiIpKSldCisrICAiVkVDVE9SX1VOSVRfQUxU SVZFQ19QICg8TU9ERT5tb2RlKSIKKysgICIiKQorKworKzs7IE5vdGUgdGhlIGFyZ3VtZW50cyBm b3IgX19idWlsdGluX2FsdGl2ZWNfdnNlbCBhcmUgb3AyLCBvcDEsIG1hc2sKKys7OyB3aGljaCBp cyBpbiB0aGUgcmV2ZXJzZSBvcmRlciB0aGF0IHdlIHdhbnQKKysoZGVmaW5lX2V4cGFuZCAidmVj dG9yX3ZzZWw8bW9kZT4iCisrICBbKG1hdGNoX29wZXJhbmQ6VkVDX0YgMCAidmxvZ2ljYWxfb3Bl cmFuZCIgIiIpCisrICAgKG1hdGNoX29wZXJhbmQ6VkVDX0YgMSAidmxvZ2ljYWxfb3BlcmFuZCIg IiIpCisrICAgKG1hdGNoX29wZXJhbmQ6VkVDX0YgMiAidmxvZ2ljYWxfb3BlcmFuZCIgIiIpCisr ICAgKG1hdGNoX29wZXJhbmQ6VkVDX0YgMyAidmxvZ2ljYWxfb3BlcmFuZCIgIiIpXQorKyAgIlZF Q1RPUl9VTklUX0FMVElWRUNfT1JfVlNYX1AgKDxNT0RFPm1vZGUpIgorKyAgIgorK3sKKysgIGlm IChWRUNUT1JfVU5JVF9WU1hfUCAoPE1PREU+bW9kZSkpCisrICAgIGVtaXRfaW5zbiAoZ2VuX3Zz eF92c2VsPG1vZGU+IChvcGVyYW5kc1swXSwgb3BlcmFuZHNbM10sCisrCQkJCSAgIG9wZXJhbmRz WzJdLCBvcGVyYW5kc1sxXSkpOworKyAgZWxzZQorKyAgICBlbWl0X2luc24gKGdlbl9hbHRpdmVj X3ZzZWw8bW9kZT4gKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1szXSwKKysJCQkJICAgICAgIG9wZXJh bmRzWzJdLCBvcGVyYW5kc1sxXSkpOworKyAgRE9ORTsKKyt9IikKKysKKysoZGVmaW5lX2V4cGFu ZCAidmVjdG9yX3ZzZWw8bW9kZT4iCisrICBbKG1hdGNoX29wZXJhbmQ6VkVDX0kgMCAidmxvZ2lj YWxfb3BlcmFuZCIgIiIpCisrICAgKG1hdGNoX29wZXJhbmQ6VkVDX0kgMSAidmxvZ2ljYWxfb3Bl cmFuZCIgIiIpCisrICAgKG1hdGNoX29wZXJhbmQ6VkVDX0kgMiAidmxvZ2ljYWxfb3BlcmFuZCIg IiIpCisrICAgKG1hdGNoX29wZXJhbmQ6VkVDX0kgMyAidmxvZ2ljYWxfb3BlcmFuZCIgIiIpXQor KyAgIlZFQ1RPUl9VTklUX0FMVElWRUNfUCAoPE1PREU+bW9kZSkiCisrICAiCisreworKyAgZW1p dF9pbnNuIChnZW5fYWx0aXZlY192c2VsPG1vZGU+IChvcGVyYW5kc1swXSwgb3BlcmFuZHNbM10s CisrCQkJCSAgICAgb3BlcmFuZHNbMl0sIG9wZXJhbmRzWzFdKSk7CisrICBET05FOworK30iKQor KworKwwKKys7OyBWZWN0b3IgbG9naWNhbCBpbnN0cnVjdGlvbnMKKysoZGVmaW5lX2V4cGFuZCAi eG9yPG1vZGU+MyIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZFQ19MIDAgInZsb2dpY2FsX29w ZXJhbmQiICIiKQorKyAgICAgICAgKHhvcjpWRUNfTCAobWF0Y2hfb3BlcmFuZDpWRUNfTCAxICJ2 bG9naWNhbF9vcGVyYW5kIiAiIikKKysJCSAgIChtYXRjaF9vcGVyYW5kOlZFQ19MIDIgInZsb2dp Y2FsX29wZXJhbmQiICIiKSkpXQorKyAgIlZFQ1RPUl9NRU1fQUxUSVZFQ19PUl9WU1hfUCAoPE1P REU+bW9kZSkiCisrICAiIikKKysKKysoZGVmaW5lX2V4cGFuZCAiaW9yPG1vZGU+MyIKKysgIFso c2V0IChtYXRjaF9vcGVyYW5kOlZFQ19MIDAgInZsb2dpY2FsX29wZXJhbmQiICIiKQorKyAgICAg ICAgKGlvcjpWRUNfTCAobWF0Y2hfb3BlcmFuZDpWRUNfTCAxICJ2bG9naWNhbF9vcGVyYW5kIiAi IikKKysJCSAgIChtYXRjaF9vcGVyYW5kOlZFQ19MIDIgInZsb2dpY2FsX29wZXJhbmQiICIiKSkp XQorKyAgIlZFQ1RPUl9NRU1fQUxUSVZFQ19PUl9WU1hfUCAoPE1PREU+bW9kZSkiCisrICAiIikK KysKKysoZGVmaW5lX2V4cGFuZCAiYW5kPG1vZGU+MyIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5k OlZFQ19MIDAgInZsb2dpY2FsX29wZXJhbmQiICIiKQorKyAgICAgICAgKGFuZDpWRUNfTCAobWF0 Y2hfb3BlcmFuZDpWRUNfTCAxICJ2bG9naWNhbF9vcGVyYW5kIiAiIikKKysJCSAgIChtYXRjaF9v cGVyYW5kOlZFQ19MIDIgInZsb2dpY2FsX29wZXJhbmQiICIiKSkpXQorKyAgIlZFQ1RPUl9NRU1f QUxUSVZFQ19PUl9WU1hfUCAoPE1PREU+bW9kZSkiCisrICAiIikKKysKKysoZGVmaW5lX2V4cGFu ZCAib25lX2NtcGw8bW9kZT4yIgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VkVDX0wgMCAidmxv Z2ljYWxfb3BlcmFuZCIgIiIpCisrICAgICAgICAobm90OlZFQ19MIChtYXRjaF9vcGVyYW5kOlZF Q19MIDEgInZsb2dpY2FsX29wZXJhbmQiICIiKSkpXQorKyAgIlZFQ1RPUl9NRU1fQUxUSVZFQ19P Ul9WU1hfUCAoPE1PREU+bW9kZSkiCisrICAiIikKKysgIAorKyhkZWZpbmVfZXhwYW5kICJub3I8 bW9kZT4zIgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VkVDX0wgMCAidmxvZ2ljYWxfb3BlcmFu ZCIgIiIpCisrICAgICAgICAobm90OlZFQ19MIChpb3I6VkVDX0wgKG1hdGNoX29wZXJhbmQ6VkVD X0wgMSAidmxvZ2ljYWxfb3BlcmFuZCIgIiIpCisrCQkJICAgICAgKG1hdGNoX29wZXJhbmQ6VkVD X0wgMiAidmxvZ2ljYWxfb3BlcmFuZCIgIiIpKSkpXQorKyAgIlZFQ1RPUl9NRU1fQUxUSVZFQ19P Ul9WU1hfUCAoPE1PREU+bW9kZSkiCisrICAiIikKKysKKysoZGVmaW5lX2V4cGFuZCAiYW5kYzxt b2RlPjMiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWRUNfTCAwICJ2bG9naWNhbF9vcGVyYW5k IiAiIikKKysgICAgICAgIChhbmQ6VkVDX0wgKG5vdDpWRUNfTCAobWF0Y2hfb3BlcmFuZDpWRUNf TCAyICJ2bG9naWNhbF9vcGVyYW5kIiAiIikpCisrCQkgICAobWF0Y2hfb3BlcmFuZDpWRUNfTCAx ICJ2bG9naWNhbF9vcGVyYW5kIiAiIikpKV0KKysgICJWRUNUT1JfTUVNX0FMVElWRUNfT1JfVlNY X1AgKDxNT0RFPm1vZGUpIgorKyAgIiIpCisrCisrOzsgU2FtZSBzaXplIGNvbnZlcnNpb25zCisr KGRlZmluZV9leHBhbmQgImZsb2F0PFZFQ19pbnQ+PG1vZGU+MiIKKysgIFsoc2V0IChtYXRjaF9v cGVyYW5kOlZFQ19GIDAgInZmbG9hdF9vcGVyYW5kIiAiIikKKysJKGZsb2F0OlZFQ19GIChtYXRj aF9vcGVyYW5kOjxWRUNfSU5UPiAxICJ2aW50X29wZXJhbmQiICIiKSkpXQorKyAgIlZFQ1RPUl9V TklUX0FMVElWRUNfT1JfVlNYX1AgKDxNT0RFPm1vZGUpIgorKyAgIgorK3sKKysgIGlmICg8TU9E RT5tb2RlID09IFY0U0Ztb2RlICYmIFZFQ1RPUl9VTklUX0FMVElWRUNfUCAoPE1PREU+bW9kZSkp CisrICAgIHsKKysgICAgICBlbWl0X2luc24gKGdlbl9hbHRpdmVjX3ZjZnN4IChvcGVyYW5kc1sw XSwgb3BlcmFuZHNbMV0sIGNvbnN0MF9ydHgpKTsKKysgICAgICBET05FOworKyAgICB9CisrfSIp CisrCisrKGRlZmluZV9leHBhbmQgInVuc2lnbmVkX2Zsb2F0PFZFQ19pbnQ+PG1vZGU+MiIKKysg IFsoc2V0IChtYXRjaF9vcGVyYW5kOlZFQ19GIDAgInZmbG9hdF9vcGVyYW5kIiAiIikKKysJKHVu c2lnbmVkX2Zsb2F0OlZFQ19GIChtYXRjaF9vcGVyYW5kOjxWRUNfSU5UPiAxICJ2aW50X29wZXJh bmQiICIiKSkpXQorKyAgIlZFQ1RPUl9VTklUX0FMVElWRUNfT1JfVlNYX1AgKDxNT0RFPm1vZGUp IgorKyAgIgorK3sKKysgIGlmICg8TU9ERT5tb2RlID09IFY0U0Ztb2RlICYmIFZFQ1RPUl9VTklU X0FMVElWRUNfUCAoPE1PREU+bW9kZSkpCisrICAgIHsKKysgICAgICBlbWl0X2luc24gKGdlbl9h bHRpdmVjX3ZjZnV4IChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0sIGNvbnN0MF9ydHgpKTsKKysg ICAgICBET05FOworKyAgICB9CisrfSIpCisrCisrKGRlZmluZV9leHBhbmQgImZpeF90cnVuYzxt b2RlPjxWRUNfaW50PjIiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDo8VkVDX0lOVD4gMCAidmlu dF9vcGVyYW5kIiAiIikKKysJKGZpeDo8VkVDX0lOVD4gKG1hdGNoX29wZXJhbmQ6VkVDX0YgMSAi dmZsb2F0X29wZXJhbmQiICIiKSkpXQorKyAgIlZFQ1RPUl9VTklUX0FMVElWRUNfT1JfVlNYX1Ag KDxNT0RFPm1vZGUpIgorKyAgIgorK3sKKysgIGlmICg8TU9ERT5tb2RlID09IFY0U0Ztb2RlICYm IFZFQ1RPUl9VTklUX0FMVElWRUNfUCAoPE1PREU+bW9kZSkpCisrICAgIHsKKysgICAgICBlbWl0 X2luc24gKGdlbl9hbHRpdmVjX3ZjdHN4cyAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdLCBjb25z dDBfcnR4KSk7CisrICAgICAgRE9ORTsKKysgICAgfQorK30iKQorKworKyhkZWZpbmVfZXhwYW5k ICJmaXh1bnNfdHJ1bmM8bW9kZT48VkVDX2ludD4yIgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6 PFZFQ19JTlQ+IDAgInZpbnRfb3BlcmFuZCIgIiIpCisrCSh1bnNpZ25lZF9maXg6PFZFQ19JTlQ+ IChtYXRjaF9vcGVyYW5kOlZFQ19GIDEgInZmbG9hdF9vcGVyYW5kIiAiIikpKV0KKysgICJWRUNU T1JfVU5JVF9BTFRJVkVDX09SX1ZTWF9QICg8TU9ERT5tb2RlKSIKKysgICIKKyt7CisrICBpZiAo PE1PREU+bW9kZSA9PSBWNFNGbW9kZSAmJiBWRUNUT1JfVU5JVF9BTFRJVkVDX1AgKDxNT0RFPm1v ZGUpKQorKyAgICB7CisrICAgICAgZW1pdF9pbnNuIChnZW5fYWx0aXZlY192Y3R1eHMgKG9wZXJh bmRzWzBdLCBvcGVyYW5kc1sxXSwgY29uc3QwX3J0eCkpOworKyAgICAgIERPTkU7CisrICAgIH0K Kyt9IikKKysKKysMCisrOzsgVmVjdG9yIGluaXRpYWxpemF0aW9uLCBzZXQsIGV4dHJhY3QKKyso ZGVmaW5lX2V4cGFuZCAidmVjX2luaXQ8bW9kZT4iCisrICBbKG1hdGNoX29wZXJhbmQ6VkVDX0Mg MCAidmxvZ2ljYWxfb3BlcmFuZCIgIiIpCisrICAgKG1hdGNoX29wZXJhbmQ6VkVDX0MgMSAidmVj X2luaXRfb3BlcmFuZCIgIiIpXQorKyAgIlZFQ1RPUl9VTklUX0FMVElWRUNfT1JfVlNYX1AgKDxN T0RFPm1vZGUpIgorK3sKKysgIHJzNjAwMF9leHBhbmRfdmVjdG9yX2luaXQgKG9wZXJhbmRzWzBd LCBvcGVyYW5kc1sxXSk7CisrICBET05FOworK30pCisrCisrKGRlZmluZV9leHBhbmQgInZlY19z ZXQ8bW9kZT4iCisrICBbKG1hdGNoX29wZXJhbmQ6VkVDX0MgMCAidmxvZ2ljYWxfb3BlcmFuZCIg IiIpCisrICAgKG1hdGNoX29wZXJhbmQ6PFZFQ19iYXNlPiAxICJyZWdpc3Rlcl9vcGVyYW5kIiAi IikKKysgICAobWF0Y2hfb3BlcmFuZCAyICJjb25zdF9pbnRfb3BlcmFuZCIgIiIpXQorKyAgIlZF Q1RPUl9VTklUX0FMVElWRUNfT1JfVlNYX1AgKDxNT0RFPm1vZGUpIgorK3sKKysgIHJzNjAwMF9l eHBhbmRfdmVjdG9yX3NldCAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdLCBJTlRWQUwgKG9wZXJh bmRzWzJdKSk7CisrICBET05FOworK30pCisrCisrKGRlZmluZV9leHBhbmQgInZlY19leHRyYWN0 PG1vZGU+IgorKyAgWyhtYXRjaF9vcGVyYW5kOjxWRUNfYmFzZT4gMCAicmVnaXN0ZXJfb3BlcmFu ZCIgIiIpCisrICAgKG1hdGNoX29wZXJhbmQ6VkVDX0MgMSAidmxvZ2ljYWxfb3BlcmFuZCIgIiIp CisrICAgKG1hdGNoX29wZXJhbmQgMiAiY29uc3RfaW50X29wZXJhbmQiICIiKV0KKysgICJWRUNU T1JfVU5JVF9BTFRJVkVDX09SX1ZTWF9QICg8TU9ERT5tb2RlKSIKKyt7CisrICByczYwMDBfZXhw YW5kX3ZlY3Rvcl9leHRyYWN0IChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0sCisrCQkJCUlOVFZB TCAob3BlcmFuZHNbMl0pKTsKKysgIERPTkU7CisrfSkKKysKKys7OyBJbnRlcmxlYXZlIHBhdHRl cm5zCisrKGRlZmluZV9leHBhbmQgInZlY19pbnRlcmxlYXZlX2hpZ2h2NHNmIgorKyAgWyhzZXQg KG1hdGNoX29wZXJhbmQ6VjRTRiAwICJ2ZmxvYXRfb3BlcmFuZCIgIiIpCisrICAgICAgICAodmVj X21lcmdlOlY0U0YKKysJICh2ZWNfc2VsZWN0OlY0U0YgKG1hdGNoX29wZXJhbmQ6VjRTRiAxICJ2 ZmxvYXRfb3BlcmFuZCIgIiIpCisrCQkJICAocGFyYWxsZWwgWyhjb25zdF9pbnQgMCkKKysJCQkJ ICAgICAoY29uc3RfaW50IDIpCisrCQkJCSAgICAgKGNvbnN0X2ludCAxKQorKwkJCQkgICAgIChj b25zdF9pbnQgMyldKSkKKysJICh2ZWNfc2VsZWN0OlY0U0YgKG1hdGNoX29wZXJhbmQ6VjRTRiAy ICJ2ZmxvYXRfb3BlcmFuZCIgIiIpCisrCQkJICAocGFyYWxsZWwgWyhjb25zdF9pbnQgMikKKysJ CQkJICAgICAoY29uc3RfaW50IDApCisrCQkJCSAgICAgKGNvbnN0X2ludCAzKQorKwkJCQkgICAg IChjb25zdF9pbnQgMSldKSkKKysJIChjb25zdF9pbnQgNSkpKV0KKysgICJWRUNUT1JfVU5JVF9B TFRJVkVDX09SX1ZTWF9QIChWNFNGbW9kZSkiCisrICAiIikKKysKKysoZGVmaW5lX2V4cGFuZCAi dmVjX2ludGVybGVhdmVfbG93djRzZiIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlY0U0YgMCAi dmZsb2F0X29wZXJhbmQiICIiKQorKyAgICAgICAgKHZlY19tZXJnZTpWNFNGCisrCSAodmVjX3Nl bGVjdDpWNFNGIChtYXRjaF9vcGVyYW5kOlY0U0YgMSAidmZsb2F0X29wZXJhbmQiICIiKQorKwkJ CSAgKHBhcmFsbGVsIFsoY29uc3RfaW50IDIpCisrCQkJCSAgICAgKGNvbnN0X2ludCAwKQorKwkJ CQkgICAgIChjb25zdF9pbnQgMykKKysJCQkJICAgICAoY29uc3RfaW50IDEpXSkpCisrCSAodmVj X3NlbGVjdDpWNFNGIChtYXRjaF9vcGVyYW5kOlY0U0YgMiAidmZsb2F0X29wZXJhbmQiICIiKQor KwkJCSAgKHBhcmFsbGVsIFsoY29uc3RfaW50IDApCisrCQkJCSAgICAgKGNvbnN0X2ludCAyKQor KwkJCQkgICAgIChjb25zdF9pbnQgMSkKKysJCQkJICAgICAoY29uc3RfaW50IDMpXSkpCisrCSAo Y29uc3RfaW50IDUpKSldCisrICAiVkVDVE9SX1VOSVRfQUxUSVZFQ19PUl9WU1hfUCAoVjRTRm1v ZGUpIgorKyAgIiIpCisrCisrKGRlZmluZV9leHBhbmQgInZlY19pbnRlcmxlYXZlX2hpZ2h2MmRm IgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJERiAwICJ2ZmxvYXRfb3BlcmFuZCIgIiIpCisr CSh2ZWNfY29uY2F0OlYyREYKKysJICh2ZWNfc2VsZWN0OkRGIChtYXRjaF9vcGVyYW5kOlYyREYg MSAidmZsb2F0X29wZXJhbmQiICIiKQorKwkJCShwYXJhbGxlbCBbKGNvbnN0X2ludCAwKV0pKQor KwkgKHZlY19zZWxlY3Q6REYgKG1hdGNoX29wZXJhbmQ6VjJERiAyICJ2ZmxvYXRfb3BlcmFuZCIg IiIpCisrCQkJKHBhcmFsbGVsIFsoY29uc3RfaW50IDApXSkpKSldCisrICAiVkVDVE9SX1VOSVRf VlNYX1AgKFYyREZtb2RlKSIKKysgICIiKQorKworKyhkZWZpbmVfZXhwYW5kICJ2ZWNfaW50ZXJs ZWF2ZV9sb3d2MmRmIgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJERiAwICJ2ZmxvYXRfb3Bl cmFuZCIgIiIpCisrCSh2ZWNfY29uY2F0OlYyREYKKysJICh2ZWNfc2VsZWN0OkRGIChtYXRjaF9v cGVyYW5kOlYyREYgMSAidmZsb2F0X29wZXJhbmQiICIiKQorKwkJCShwYXJhbGxlbCBbKGNvbnN0 X2ludCAxKV0pKQorKwkgKHZlY19zZWxlY3Q6REYgKG1hdGNoX29wZXJhbmQ6VjJERiAyICJ2Zmxv YXRfb3BlcmFuZCIgIiIpCisrCQkJKHBhcmFsbGVsIFsoY29uc3RfaW50IDEpXSkpKSldCisrICAi VkVDVE9SX1VOSVRfVlNYX1AgKFYyREZtb2RlKSIKKysgICIiKQorKworKzs7IEZvciAyIGVsZW1l bnQgdmVjdG9ycywgZXZlbi9vZGQgaXMgdGhlIHNhbWUgYXMgaGlnaC9sb3cKKysoZGVmaW5lX2V4 cGFuZCAidmVjX2V4dHJhY3RfZXZlbnYyZGYiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWMkRG IDAgInZmbG9hdF9vcGVyYW5kIiAiIikKKysJKHZlY19jb25jYXQ6VjJERgorKwkgKHZlY19zZWxl Y3Q6REYgKG1hdGNoX29wZXJhbmQ6VjJERiAxICJ2ZmxvYXRfb3BlcmFuZCIgIiIpCisrCQkJKHBh cmFsbGVsIFsoY29uc3RfaW50IDApXSkpCisrCSAodmVjX3NlbGVjdDpERiAobWF0Y2hfb3BlcmFu ZDpWMkRGIDIgInZmbG9hdF9vcGVyYW5kIiAiIikKKysJCQkocGFyYWxsZWwgWyhjb25zdF9pbnQg MCldKSkpKV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAoVjJERm1vZGUpIgorKyAgIiIpCisrCisr KGRlZmluZV9leHBhbmQgInZlY19leHRyYWN0X29kZHYyZGYiCisrICBbKHNldCAobWF0Y2hfb3Bl cmFuZDpWMkRGIDAgInZmbG9hdF9vcGVyYW5kIiAiIikKKysJKHZlY19jb25jYXQ6VjJERgorKwkg KHZlY19zZWxlY3Q6REYgKG1hdGNoX29wZXJhbmQ6VjJERiAxICJ2ZmxvYXRfb3BlcmFuZCIgIiIp CisrCQkJKHBhcmFsbGVsIFsoY29uc3RfaW50IDEpXSkpCisrCSAodmVjX3NlbGVjdDpERiAobWF0 Y2hfb3BlcmFuZDpWMkRGIDIgInZmbG9hdF9vcGVyYW5kIiAiIikKKysJCQkocGFyYWxsZWwgWyhj b25zdF9pbnQgMSldKSkpKV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAoVjJERm1vZGUpIgorKyAg IiIpCistLS0gZ2NjL2NvbmZpZy9yczYwMDAvc3BlLm1kCSguLi4vdHJ1bmspCShyZXZpc2lvbiAx NDQ1NTcpCisrKysgZ2NjL2NvbmZpZy9yczYwMDAvc3BlLm1kCSguLi4vYnJhbmNoZXMvaWJtL3Bv d2VyNy1tZWlzc25lcikJKHJldmlzaW9uIDE0NDY5MikKK0BAIC05OSw3ICs5OSw3IEBAIChkZWZp bmVfaW5zbiAiKmRpdnNmM19ncHIiCisgCisgOzsgRmxvYXRpbmcgcG9pbnQgY29udmVyc2lvbiBp bnN0cnVjdGlvbnMuCisgCistKGRlZmluZV9pbnNuICJmaXh1bnNfdHJ1bmNkZnNpMiIKKysoZGVm aW5lX2luc24gInNwZV9maXh1bnNfdHJ1bmNkZnNpMiIKKyAgIFsoc2V0IChtYXRjaF9vcGVyYW5k OlNJIDAgImdwY19yZWdfb3BlcmFuZCIgIj1yIikKKyAJKHVuc2lnbmVkX2ZpeDpTSSAobWF0Y2hf b3BlcmFuZDpERiAxICJncGNfcmVnX29wZXJhbmQiICJyIikpKV0KKyAgICJUQVJHRVRfSEFSRF9G TE9BVCAmJiBUQVJHRVRfRTUwMF9ET1VCTEUiCistLS0gZ2NjL2NvbmZpZy9yczYwMDAvY29uc3Ry YWludHMubWQJKC4uLi90cnVuaykJKHJldmlzaW9uIDE0NDU1NykKKysrKyBnY2MvY29uZmlnL3Jz NjAwMC9jb25zdHJhaW50cy5tZAkoLi4uL2JyYW5jaGVzL2libS9wb3dlcjctbWVpc3NuZXIpCShy ZXZpc2lvbiAxNDQ2OTIpCitAQCAtMTcsNiArMTcsOCBAQAorIDs7IGFsb25nIHdpdGggR0NDOyBz ZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qgc2VlCisgOzsgPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+LgorIAorKzs7IEF2YWlsYWJsZSBjb25zdHJhaW50IGxldHRlcnM6ICJlIiwg ImsiLCAidSIsICJBIiwgIkIiLCAiQyIsICJEIgorKworIDs7IFJlZ2lzdGVyIGNvbnN0cmFpbnRz CisgCisgKGRlZmluZV9yZWdpc3Rlcl9jb25zdHJhaW50ICJmIiAiVEFSR0VUX0hBUkRfRkxPQVQg JiYgVEFSR0VUX0ZQUlMKK0BAIC01MCw2ICs1MiwyMyBAQCAoZGVmaW5lX3JlZ2lzdGVyX2NvbnN0 cmFpbnQgInkiICJDUl9SRUdTCisgKGRlZmluZV9yZWdpc3Rlcl9jb25zdHJhaW50ICJ6IiAiWEVS X1JFR1MiCisgICAiQGludGVybmFsIikKKyAKKys7OyBVc2UgdyBhcyBhIHByZWZpeCB0byBhZGQg VlNYIG1vZGVzCisrOzsgdmVjdG9yIGRvdWJsZSAoVjJERikKKysoZGVmaW5lX3JlZ2lzdGVyX2Nv bnN0cmFpbnQgIndkIiAicnM2MDAwX3ZlY3Rvcl9yZWdfY2xhc3NbVjJERm1vZGVdIgorKyAgIkBp bnRlcm5hbCIpCisrCisrOzsgdmVjdG9yIGZsb2F0IChWNFNGKQorKyhkZWZpbmVfcmVnaXN0ZXJf Y29uc3RyYWludCAid2YiICJyczYwMDBfdmVjdG9yX3JlZ19jbGFzc1tWNFNGbW9kZV0iCisrICAi QGludGVybmFsIikKKysKKys7OyBzY2FsYXIgZG91YmxlIChERikKKysoZGVmaW5lX3JlZ2lzdGVy X2NvbnN0cmFpbnQgIndzIiAicnM2MDAwX3ZlY3Rvcl9yZWdfY2xhc3NbREZtb2RlXSIKKysgICJA aW50ZXJuYWwiKQorKworKzs7IGFueSBWU1ggcmVnaXN0ZXIKKysoZGVmaW5lX3JlZ2lzdGVyX2Nv bnN0cmFpbnQgIndhIiAicnM2MDAwX3ZzeF9yZWdfY2xhc3MiCisrICAiQGludGVybmFsIikKKysK KyA7OyBJbnRlZ2VyIGNvbnN0cmFpbnRzCisgCisgKGRlZmluZV9jb25zdHJhaW50ICJJIgorQEAg LTE1OSwzICsxNzgsNyBAQCAoZGVmaW5lX2NvbnN0cmFpbnQgInQiCisgKGRlZmluZV9jb25zdHJh aW50ICJXIgorICAgInZlY3RvciBjb25zdGFudCB0aGF0IGRvZXMgbm90IHJlcXVpcmUgbWVtb3J5 IgorICAgKG1hdGNoX29wZXJhbmQgMCAiZWFzeV92ZWN0b3JfY29uc3RhbnQiKSkKKysKKysoZGVm aW5lX2NvbnN0cmFpbnQgImoiCisrICAiWmVybyB2ZWN0b3IgY29uc3RhbnQiCisrICAobWF0Y2hf dGVzdCAiKG9wID09IGNvbnN0MF9ydHggfHwgb3AgPT0gQ09OU1QwX1JUWCAoR0VUX01PREUgKG9w KSkpIikpCistLS0gZ2NjL2NvbmZpZy9yczYwMDAvcHJlZGljYXRlcy5tZAkoLi4uL3RydW5rKQko cmV2aXNpb24gMTQ0NTU3KQorKysrIGdjYy9jb25maWcvcnM2MDAwL3ByZWRpY2F0ZXMubWQJKC4u Li9icmFuY2hlcy9pYm0vcG93ZXI3LW1laXNzbmVyKQkocmV2aXNpb24gMTQ0NjkyKQorQEAgLTM4 LDYgKzM4LDM3IEBAIChkZWZpbmVfcHJlZGljYXRlICJhbHRpdmVjX3JlZ2lzdGVyX29wZXIKKyAJ CSAgICAgfHwgQUxUSVZFQ19SRUdOT19QIChSRUdOTyAob3ApKQorIAkJICAgICB8fCBSRUdOTyAo b3ApID4gTEFTVF9WSVJUVUFMX1JFR0lTVEVSIikpKQorIAorKzs7IFJldHVybiAxIGlmIG9wIGlz IGEgVlNYIHJlZ2lzdGVyLgorKyhkZWZpbmVfcHJlZGljYXRlICJ2c3hfcmVnaXN0ZXJfb3BlcmFu ZCIKKysgICAoYW5kIChtYXRjaF9vcGVyYW5kIDAgInJlZ2lzdGVyX29wZXJhbmQiKQorKwkobWF0 Y2hfdGVzdCAiR0VUX0NPREUgKG9wKSAhPSBSRUcKKysJCSAgICAgfHwgVlNYX1JFR05PX1AgKFJF R05PIChvcCkpCisrCQkgICAgIHx8IFJFR05PIChvcCkgPiBMQVNUX1ZJUlRVQUxfUkVHSVNURVIi KSkpCisrCisrOzsgUmV0dXJuIDEgaWYgb3AgaXMgYSB2ZWN0b3IgcmVnaXN0ZXIgdGhhdCBvcGVy YXRlcyBvbiBmbG9hdGluZyBwb2ludCB2ZWN0b3JzCisrOzsgKGVpdGhlciBhbHRpdmVjIG9yIFZT WCkuCisrKGRlZmluZV9wcmVkaWNhdGUgInZmbG9hdF9vcGVyYW5kIgorKyAgIChhbmQgKG1hdGNo X29wZXJhbmQgMCAicmVnaXN0ZXJfb3BlcmFuZCIpCisrCShtYXRjaF90ZXN0ICJHRVRfQ09ERSAo b3ApICE9IFJFRworKwkJICAgICB8fCBWRkxPQVRfUkVHTk9fUCAoUkVHTk8gKG9wKSkKKysJCSAg ICAgfHwgUkVHTk8gKG9wKSA+IExBU1RfVklSVFVBTF9SRUdJU1RFUiIpKSkKKysKKys7OyBSZXR1 cm4gMSBpZiBvcCBpcyBhIHZlY3RvciByZWdpc3RlciB0aGF0IG9wZXJhdGVzIG9uIGludGVnZXIg dmVjdG9ycworKzs7IChvbmx5IGFsdGl2ZWMsIFZTWCBkb2Vzbid0IHN1cHBvcnQgaW50ZWdlciB2 ZWN0b3JzKQorKyhkZWZpbmVfcHJlZGljYXRlICJ2aW50X29wZXJhbmQiCisrICAgKGFuZCAobWF0 Y2hfb3BlcmFuZCAwICJyZWdpc3Rlcl9vcGVyYW5kIikKKysJKG1hdGNoX3Rlc3QgIkdFVF9DT0RF IChvcCkgIT0gUkVHCisrCQkgICAgIHx8IFZJTlRfUkVHTk9fUCAoUkVHTk8gKG9wKSkKKysJCSAg ICAgfHwgUkVHTk8gKG9wKSA+IExBU1RfVklSVFVBTF9SRUdJU1RFUiIpKSkKKysKKys7OyBSZXR1 cm4gMSBpZiBvcCBpcyBhIHZlY3RvciByZWdpc3RlciB0byBkbyBsb2dpY2FsIG9wZXJhdGlvbnMg b24gKGFuZCwgb3IsCisrOzsgeG9yLCBldGMuKQorKyhkZWZpbmVfcHJlZGljYXRlICJ2bG9naWNh bF9vcGVyYW5kIgorKyAgIChhbmQgKG1hdGNoX29wZXJhbmQgMCAicmVnaXN0ZXJfb3BlcmFuZCIp CisrCShtYXRjaF90ZXN0ICJHRVRfQ09ERSAob3ApICE9IFJFRworKwkJICAgICB8fCBWTE9HSUNB TF9SRUdOT19QIChSRUdOTyAob3ApKQorKwkJICAgICB8fCBSRUdOTyAob3ApID4gTEFTVF9WSVJU VUFMX1JFR0lTVEVSIikpKQorKworIDs7IFJldHVybiAxIGlmIG9wIGlzIFhFUiByZWdpc3Rlci4K KyAoZGVmaW5lX3ByZWRpY2F0ZSAieGVyX29wZXJhbmQiCisgICAoYW5kIChtYXRjaF9jb2RlICJy ZWciKQorQEAgLTIzNCw2ICsyNjUsMTAgQEAgKGRlZmluZV9wcmVkaWNhdGUgImVhc3lfZnBfY29u c3RhbnQiCisgCSAgICAgICYmIG51bV9pbnNuc19jb25zdGFudF93aWRlICgoSE9TVF9XSURFX0lO VCkga1szXSkgPT0gMSk7CisgCisgICAgIGNhc2UgREZtb2RlOgorKyAgICAgIC8qIFRoZSBjb25z dGFudCAwLmYgaXMgZWFzeSB1bmRlciBWU1guICAqLworKyAgICAgIGlmIChvcCA9PSBDT05TVDBf UlRYIChERm1vZGUpICYmIFZFQ1RPUl9VTklUX1ZTWF9QIChERm1vZGUpKQorKwlyZXR1cm4gMTsK KysKKyAgICAgICAvKiBGb3JjZSBjb25zdGFudHMgdG8gbWVtb3J5IGJlZm9yZSByZWxvYWQgdG8g dXRpbGl6ZQorIAkgY29tcHJlc3NfZmxvYXRfY29uc3RhbnQuCisgCSBBdm9pZCB0aGlzIHdoZW4g ZmxhZ191bnNhZmVfbWF0aF9vcHRpbWl6YXRpb25zIGlzIGVuYWJsZWQKK0BAIC0zOTYsMTMgKzQz MSwxNiBAQCAoZGVmaW5lX3ByZWRpY2F0ZSAiaW5kZXhlZF9vcl9pbmRpcmVjdF9vCisgICAobWF0 Y2hfY29kZSAibWVtIikKKyB7CisgICBvcCA9IFhFWFAgKG9wLCAwKTsKKy0gIGlmIChUQVJHRVRf QUxUSVZFQworLSAgICAgICYmIEFMVElWRUNfVkVDVE9SX01PREUgKG1vZGUpCisrICBpZiAoVkVD VE9SX01FTV9BTFRJVkVDX1AgKG1vZGUpCisgICAgICAgJiYgR0VUX0NPREUgKG9wKSA9PSBBTkQK KyAgICAgICAmJiBHRVRfQ09ERSAoWEVYUCAob3AsIDEpKSA9PSBDT05TVF9JTlQKKyAgICAgICAm JiBJTlRWQUwgKFhFWFAgKG9wLCAxKSkgPT0gLTE2KQorICAgICBvcCA9IFhFWFAgKG9wLCAwKTsK KyAKKysgIGVsc2UgaWYgKFZFQ1RPUl9NRU1fVlNYX1AgKG1vZGUpCisrCSAgICYmIEdFVF9DT0RF IChvcCkgPT0gUFJFX01PRElGWSkKKysgICAgb3AgPSBYRVhQIChvcCwgMSk7CisrCisgICByZXR1 cm4gaW5kZXhlZF9vcl9pbmRpcmVjdF9hZGRyZXNzIChvcCwgbW9kZSk7CisgfSkKKyAKK0BAIC0x MzM2LDMgKzEzNzQsMTkgQEAgKGRlZmluZV9wcmVkaWNhdGUgInN0bXdfb3BlcmF0aW9uIgorIAor ICAgcmV0dXJuIDE7CisgfSkKKysKKys7OyBSZXR1cm4gdHJ1ZSBpZiB0aGUgb3BlcmFuZCBpcyBh IGxlZ2l0aW1hdGUgcGFyYWxsZWwgZm9yIHZlY19pbml0CisrKGRlZmluZV9wcmVkaWNhdGUgInZl Y19pbml0X29wZXJhbmQiCisrICAobWF0Y2hfY29kZSAicGFyYWxsZWwiKQorK3sKKysgIC8qIERp c2FsbG93IFYyREYgbW9kZSB3aXRoIE1FTSdzIHVubGVzcyBib3RoIGFyZSB0aGUgc2FtZSB1bmRl ciBWU1guICAqLworKyAgaWYgKG1vZGUgPT0gVjJERm1vZGUgJiYgVkVDVE9SX1VOSVRfVlNYX1Ag KG1vZGUpKQorKyAgICB7CisrICAgICAgcnR4IG9wMCA9IFhWRUNFWFAgKG9wLCAwLCAwKTsKKysg ICAgICBydHggb3AxID0gWFZFQ0VYUCAob3AsIDAsIDEpOworKyAgICAgIGlmICgoTUVNX1AgKG9w MCkgfHwgTUVNX1AgKG9wMSkpICYmICFydHhfZXF1YWxfcCAob3AwLCBvcDEpKQorKwlyZXR1cm4g MDsKKysgICAgfQorKworKyAgcmV0dXJuIDE7CisrfSkKKy0tLSBnY2MvY29uZmlnL3JzNjAwMC9w cGMtYXNtLmgJKC4uLi90cnVuaykJKHJldmlzaW9uIDE0NDU1NykKKysrKyBnY2MvY29uZmlnL3Jz NjAwMC9wcGMtYXNtLmgJKC4uLi9icmFuY2hlcy9pYm0vcG93ZXI3LW1laXNzbmVyKQkocmV2aXNp b24gMTQ0NjkyKQorQEAgLTYzLDcgKzYzLDcgQEAKKyAjZGVmaW5lIGYxNgkxNgorICNkZWZpbmUg ZjE3CTE3CisgI2RlZmluZSBmMTgJMTgKKy0jZGVmaW5lIGYxOSAgICAgMTkKKysjZGVmaW5lIGYx OQkxOQorICNkZWZpbmUgZjIwCTIwCisgI2RlZmluZSBmMjEJMjEKKyAjZGVmaW5lIGYyMgkyMgor QEAgLTc3LDYgKzc3LDE0MyBAQAorICNkZWZpbmUgZjMwCTMwCisgI2RlZmluZSBmMzEJMzEKKyAK KysjaWZkZWYgX19WU1hfXworKyNkZWZpbmUgZjMyCTMyCisrI2RlZmluZSBmMzMJMzMKKysjZGVm aW5lIGYzNAkzNAorKyNkZWZpbmUgZjM1CTM1CisrI2RlZmluZSBmMzYJMzYKKysjZGVmaW5lIGYz NwkzNworKyNkZWZpbmUgZjM4CTM4CisrI2RlZmluZSBmMzkJMzkKKysjZGVmaW5lIGY0MAk0MAor KyNkZWZpbmUgZjQxCTQxCisrI2RlZmluZSBmNDIJNDIKKysjZGVmaW5lIGY0Mwk0MworKyNkZWZp bmUgZjQ0CTQ0CisrI2RlZmluZSBmNDUJNDUKKysjZGVmaW5lIGY0Ngk0NgorKyNkZWZpbmUgZjQ3 CTQ3CisrI2RlZmluZSBmNDgJNDgKKysjZGVmaW5lIGY0OQk0OQorKyNkZWZpbmUgZjUwCTMwCisr I2RlZmluZSBmNTEJNTEKKysjZGVmaW5lIGY1Mgk1MgorKyNkZWZpbmUgZjUzCTUzCisrI2RlZmlu ZSBmNTQJNTQKKysjZGVmaW5lIGY1NQk1NQorKyNkZWZpbmUgZjU2CTU2CisrI2RlZmluZSBmNTcJ NTcKKysjZGVmaW5lIGY1OAk1OAorKyNkZWZpbmUgZjU5CTU5CisrI2RlZmluZSBmNjAJNjAKKysj ZGVmaW5lIGY2MQk2MQorKyNkZWZpbmUgZjYyCTYyCisrI2RlZmluZSBmNjMJNjMKKysjZW5kaWYK KysKKysjaWZkZWYgX19BTFRJVkVDX18KKysjZGVmaW5lIHYwCTAKKysjZGVmaW5lIHYxCTEKKysj ZGVmaW5lIHYyCTIKKysjZGVmaW5lIHYzCTMKKysjZGVmaW5lIHY0CTQKKysjZGVmaW5lIHY1CTUK KysjZGVmaW5lIHY2CTYKKysjZGVmaW5lIHY3CTcKKysjZGVmaW5lIHY4CTgKKysjZGVmaW5lIHY5 CTkKKysjZGVmaW5lIHYxMAkxMAorKyNkZWZpbmUgdjExCTExCisrI2RlZmluZSB2MTIJMTIKKysj ZGVmaW5lIHYxMwkxMworKyNkZWZpbmUgdjE0CTE0CisrI2RlZmluZSB2MTUJMTUKKysjZGVmaW5l IHYxNgkxNgorKyNkZWZpbmUgdjE3CTE3CisrI2RlZmluZSB2MTgJMTgKKysjZGVmaW5lIHYxOQkx OQorKyNkZWZpbmUgdjIwCTIwCisrI2RlZmluZSB2MjEJMjEKKysjZGVmaW5lIHYyMgkyMgorKyNk ZWZpbmUgdjIzCTIzCisrI2RlZmluZSB2MjQJMjQKKysjZGVmaW5lIHYyNQkyNQorKyNkZWZpbmUg djI2CTI2CisrI2RlZmluZSB2MjcJMjcKKysjZGVmaW5lIHYyOAkyOAorKyNkZWZpbmUgdjI5CTI5 CisrI2RlZmluZSB2MzAJMzAKKysjZGVmaW5lIHYzMQkzMQorKyNlbmRpZgorKworKyNpZmRlZiBf X1ZTWF9fCisrI2RlZmluZSB2czAJMAorKyNkZWZpbmUgdnMxCTEKKysjZGVmaW5lIHZzMgkyCisr I2RlZmluZSB2czMJMworKyNkZWZpbmUgdnM0CTQKKysjZGVmaW5lIHZzNQk1CisrI2RlZmluZSB2 czYJNgorKyNkZWZpbmUgdnM3CTcKKysjZGVmaW5lIHZzOAk4CisrI2RlZmluZSB2czkJOQorKyNk ZWZpbmUgdnMxMAkxMAorKyNkZWZpbmUgdnMxMQkxMQorKyNkZWZpbmUgdnMxMgkxMgorKyNkZWZp bmUgdnMxMwkxMworKyNkZWZpbmUgdnMxNAkxNAorKyNkZWZpbmUgdnMxNQkxNQorKyNkZWZpbmUg dnMxNgkxNgorKyNkZWZpbmUgdnMxNwkxNworKyNkZWZpbmUgdnMxOAkxOAorKyNkZWZpbmUgdnMx OQkxOQorKyNkZWZpbmUgdnMyMAkyMAorKyNkZWZpbmUgdnMyMQkyMQorKyNkZWZpbmUgdnMyMgky MgorKyNkZWZpbmUgdnMyMwkyMworKyNkZWZpbmUgdnMyNAkyNAorKyNkZWZpbmUgdnMyNQkyNQor KyNkZWZpbmUgdnMyNgkyNgorKyNkZWZpbmUgdnMyNwkyNworKyNkZWZpbmUgdnMyOAkyOAorKyNk ZWZpbmUgdnMyOQkyOQorKyNkZWZpbmUgdnMzMAkzMAorKyNkZWZpbmUgdnMzMQkzMQorKyNkZWZp bmUgdnMzMgkzMgorKyNkZWZpbmUgdnMzMwkzMworKyNkZWZpbmUgdnMzNAkzNAorKyNkZWZpbmUg dnMzNQkzNQorKyNkZWZpbmUgdnMzNgkzNgorKyNkZWZpbmUgdnMzNwkzNworKyNkZWZpbmUgdnMz OAkzOAorKyNkZWZpbmUgdnMzOQkzOQorKyNkZWZpbmUgdnM0MAk0MAorKyNkZWZpbmUgdnM0MQk0 MQorKyNkZWZpbmUgdnM0Mgk0MgorKyNkZWZpbmUgdnM0Mwk0MworKyNkZWZpbmUgdnM0NAk0NAor KyNkZWZpbmUgdnM0NQk0NQorKyNkZWZpbmUgdnM0Ngk0NgorKyNkZWZpbmUgdnM0Nwk0NworKyNk ZWZpbmUgdnM0OAk0OAorKyNkZWZpbmUgdnM0OQk0OQorKyNkZWZpbmUgdnM1MAkzMAorKyNkZWZp bmUgdnM1MQk1MQorKyNkZWZpbmUgdnM1Mgk1MgorKyNkZWZpbmUgdnM1Mwk1MworKyNkZWZpbmUg dnM1NAk1NAorKyNkZWZpbmUgdnM1NQk1NQorKyNkZWZpbmUgdnM1Ngk1NgorKyNkZWZpbmUgdnM1 Nwk1NworKyNkZWZpbmUgdnM1OAk1OAorKyNkZWZpbmUgdnM1OQk1OQorKyNkZWZpbmUgdnM2MAk2 MAorKyNkZWZpbmUgdnM2MQk2MQorKyNkZWZpbmUgdnM2Mgk2MgorKyNkZWZpbmUgdnM2Mwk2Mwor KyNlbmRpZgorKworIC8qCisgICogTWFjcm9zIHRvIGdsdWUgdG9nZXRoZXIgdHdvIHRva2Vucy4K KyAgKi8KKy0tLSBnY2MvY29uZmlnL3JzNjAwMC9saW51eDY0Lm9wdAkoLi4uL3RydW5rKQkocmV2 aXNpb24gMTQ0NTU3KQorKysrIGdjYy9jb25maWcvcnM2MDAwL2xpbnV4NjQub3B0CSguLi4vYnJh bmNoZXMvaWJtL3Bvd2VyNy1tZWlzc25lcikJKHJldmlzaW9uIDE0NDY5MikKK0BAIC0yMCw1ICsy MCw1IEBACisgOyA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgCisgbXByb2ZpbGUt a2VybmVsCistVGFyZ2V0IFJlcG9ydCBNYXNrKFBST0ZJTEVfS0VSTkVMKQorK1RhcmdldCBSZXBv cnQgVmFyKFRBUkdFVF9QUk9GSUxFX0tFUk5FTCkKKyBDYWxsIG1jb3VudCBmb3IgcHJvZmlsaW5n IGJlZm9yZSBhIGZ1bmN0aW9uIHByb2xvZ3VlCistLS0gZ2NjL2NvbmZpZy9yczYwMDAvc3lzdjQu b3B0CSguLi4vdHJ1bmspCShyZXZpc2lvbiAxNDQ1NTcpCisrKysgZ2NjL2NvbmZpZy9yczYwMDAv c3lzdjQub3B0CSguLi4vYnJhbmNoZXMvaWJtL3Bvd2VyNy1tZWlzc25lcikJKHJldmlzaW9uIDE0 NDY5MikKK0BAIC0zMiw3ICszMiw3IEBAIFRhcmdldCBSZWplY3ROZWdhdGl2ZSBKb2luZWQKKyBT cGVjaWZ5IGJpdCBzaXplIG9mIGltbWVkaWF0ZSBUTFMgb2Zmc2V0cworIAorIG1iaXQtYWxpZ24K Ky1UYXJnZXQgUmVwb3J0IE1hc2soTk9fQklURklFTERfVFlQRSkKKytUYXJnZXQgUmVwb3J0IFZh cihUQVJHRVRfTk9fQklURklFTERfVFlQRSkKKyBBbGlnbiB0byB0aGUgYmFzZSB0eXBlIG9mIHRo ZSBiaXQtZmllbGQKKyAKKyBtc3RyaWN0LWFsaWduCitAQCAtODcsMTEgKzg3LDExIEBAIFRhcmdl dCBSZXBvcnQgTWFzayhFQUJJKQorIFVzZSBFQUJJCisgCisgbWJpdC13b3JkCistVGFyZ2V0IFJl cG9ydCBNYXNrKE5PX0JJVEZJRUxEX1dPUkQpCisrVGFyZ2V0IFJlcG9ydCBWYXIoVEFSR0VUX05P X0JJVEZJRUxEX1dPUkQpCisgQWxsb3cgYml0LWZpZWxkcyB0byBjcm9zcyB3b3JkIGJvdW5kYXJp ZXMKKyAKKyBtcmVnbmFtZXMKKy1UYXJnZXQgTWFzayhSRUdOQU1FUykKKytUYXJnZXQgVmFyKFRB UkdFVF9SRUdOQU1FUykKKyBVc2UgYWx0ZXJuYXRlIHJlZ2lzdGVyIG5hbWVzCisgCisgOzsgRklY TUU6IERvZXMgbm90aGluZy4KKy0tLSBnY2MvY29uZmlnL3JzNjAwMC9yczYwMDAtcHJvdG9zLmgJ KC4uLi90cnVuaykJKHJldmlzaW9uIDE0NDU1NykKKysrKyBnY2MvY29uZmlnL3JzNjAwMC9yczYw MDAtcHJvdG9zLmgJKC4uLi9icmFuY2hlcy9pYm0vcG93ZXI3LW1laXNzbmVyKQkocmV2aXNpb24g MTQ0NjkyKQorQEAgLTY0LDkgKzY0LDE0IEBAIGV4dGVybiBpbnQgaW5zdmRpX3JzaGlmdF9ybHdp bWlfcCAocnR4LCAKKyBleHRlcm4gaW50IHJlZ2lzdGVyc19va19mb3JfcXVhZF9wZWVwIChydHgs IHJ0eCk7CisgZXh0ZXJuIGludCBtZW1zX29rX2Zvcl9xdWFkX3BlZXAgKHJ0eCwgcnR4KTsKKyBl eHRlcm4gYm9vbCBncHJfb3JfZ3ByX3AgKHJ0eCwgcnR4KTsKKytleHRlcm4gZW51bSByZWdfY2xh c3MgcnM2MDAwX3ByZWZlcnJlZF9yZWxvYWRfY2xhc3MocnR4LCBlbnVtIHJlZ19jbGFzcyk7Cisg ZXh0ZXJuIGVudW0gcmVnX2NsYXNzIHJzNjAwMF9zZWNvbmRhcnlfcmVsb2FkX2NsYXNzIChlbnVt IHJlZ19jbGFzcywKKyAJCQkJCQkgICAgIGVudW0gbWFjaGluZV9tb2RlLCBydHgpOworLQorK2V4 dGVybiBib29sIHJzNjAwMF9zZWNvbmRhcnlfbWVtb3J5X25lZWRlZCAoZW51bSByZWdfY2xhc3Ms IGVudW0gcmVnX2NsYXNzLAorKwkJCQkJICAgIGVudW0gbWFjaGluZV9tb2RlKTsKKytleHRlcm4g Ym9vbCByczYwMDBfY2Fubm90X2NoYW5nZV9tb2RlX2NsYXNzIChlbnVtIG1hY2hpbmVfbW9kZSwK KysJCQkJCSAgICAgZW51bSBtYWNoaW5lX21vZGUsCisrCQkJCQkgICAgIGVudW0gcmVnX2NsYXNz KTsKKyBleHRlcm4gaW50IHBhaXJlZF9lbWl0X3ZlY3Rvcl9jb25kX2V4cHIgKHJ0eCwgcnR4LCBy dHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydHgsIHJ0eCwg cnR4KTsKKyBleHRlcm4gdm9pZCBwYWlyZWRfZXhwYW5kX3ZlY3Rvcl9tb3ZlIChydHggb3BlcmFu ZHNbXSk7CitAQCAtMTcwLDcgKzE3NSw2IEBAIGV4dGVybiBpbnQgcnM2MDAwX3JlZ2lzdGVyX21v dmVfY29zdCAoZW4KKyAJCQkJICAgICAgZW51bSByZWdfY2xhc3MsIGVudW0gcmVnX2NsYXNzKTsK KyBleHRlcm4gaW50IHJzNjAwMF9tZW1vcnlfbW92ZV9jb3N0IChlbnVtIG1hY2hpbmVfbW9kZSwg ZW51bSByZWdfY2xhc3MsIGludCk7CisgZXh0ZXJuIGJvb2wgcnM2MDAwX3Rsc19yZWZlcmVuY2Vk X3AgKHJ0eCk7CistZXh0ZXJuIGludCByczYwMDBfaGFyZF9yZWdub19ucmVncyAoaW50LCBlbnVt IG1hY2hpbmVfbW9kZSk7CisgZXh0ZXJuIHZvaWQgcnM2MDAwX2NvbmRpdGlvbmFsX3JlZ2lzdGVy X3VzYWdlICh2b2lkKTsKKyAKKyAvKiBEZWNsYXJlIGZ1bmN0aW9ucyBpbiByczYwMDAtYy5jICov CitAQCAtMTg5LDQgKzE5Myw2IEBAIGNvbnN0IGNoYXIgKiByczYwMDBfeGNvZmZfc3RyaXBfZG9s bGFyICgKKyB2b2lkIHJzNjAwMF9maW5hbF9wcmVzY2FuX2luc24gKHJ0eCwgcnR4ICpvcGVyYW5k LCBpbnQgbnVtX29wZXJhbmRzKTsKKyAKKyBleHRlcm4gYm9vbCByczYwMDBfaGFyZF9yZWdub19t b2RlX29rX3BbXVtGSVJTVF9QU0VVRE9fUkVHSVNURVJdOworK2V4dGVybiB1bnNpZ25lZCBjaGFy IHJzNjAwMF9jbGFzc19tYXhfbnJlZ3NbXVtMSU1fUkVHX0NMQVNTRVNdOworK2V4dGVybiB1bnNp Z25lZCBjaGFyIHJzNjAwMF9oYXJkX3JlZ25vX25yZWdzW11bRklSU1RfUFNFVURPX1JFR0lTVEVS XTsKKyAjZW5kaWYgIC8qIHJzNjAwMC1wcm90b3MuaCAqLworLS0tIGdjYy9jb25maWcvcnM2MDAw L3QtcnM2MDAwCSguLi4vdHJ1bmspCShyZXZpc2lvbiAxNDQ1NTcpCisrKysgZ2NjL2NvbmZpZy9y czYwMDAvdC1yczYwMDAJKC4uLi9icmFuY2hlcy9pYm0vcG93ZXI3LW1laXNzbmVyKQkocmV2aXNp b24gMTQ0NjkyKQorQEAgLTE2LDMgKzE2LDMzIEBAIHJzNjAwMC1jLm86ICQoc3JjZGlyKS9jb25m aWcvcnM2MDAwL3JzNjAKKyAKKyAjIFRoZSByczYwMDAgYmFja2VuZCBkb2Vzbid0IGNhdXNlIHdh cm5pbmdzIGluIHRoZXNlIGZpbGVzLgorIGluc24tY29uZGl0aW9ucy5vLXdhcm4gPQorKworK01E X0lOQ0xVREVTID0gJChzcmNkaXIpL2NvbmZpZy9yczYwMDAvcmlvczEubWQgXAorKwkkKHNyY2Rp cikvY29uZmlnL3JzNjAwMC9yaW9zMi5tZCBcCisrCSQoc3JjZGlyKS9jb25maWcvcnM2MDAwL3Jz NjQubWQgXAorKwkkKHNyY2RpcikvY29uZmlnL3JzNjAwMC9tcGMubWQgXAorKwkkKHNyY2Rpcikv Y29uZmlnL3JzNjAwMC80MHgubWQgXAorKwkkKHNyY2RpcikvY29uZmlnL3JzNjAwMC80NDAubWQg XAorKwkkKHNyY2RpcikvY29uZmlnL3JzNjAwMC82MDMubWQgXAorKwkkKHNyY2RpcikvY29uZmln L3JzNjAwMC82eHgubWQgXAorKwkkKHNyY2RpcikvY29uZmlnL3JzNjAwMC83eHgubWQgXAorKwkk KHNyY2RpcikvY29uZmlnL3JzNjAwMC83NDUwLm1kIFwKKysJJChzcmNkaXIpL2NvbmZpZy9yczYw MDAvODU0MC5tZCBcCisrCSQoc3JjZGlyKS9jb25maWcvcnM2MDAwL2UzMDBjMmMzLm1kIFwKKysJ JChzcmNkaXIpL2NvbmZpZy9yczYwMDAvZTUwMG1jLm1kIFwKKysJJChzcmNkaXIpL2NvbmZpZy9y czYwMDAvcG93ZXI0Lm1kIFwKKysJJChzcmNkaXIpL2NvbmZpZy9yczYwMDAvcG93ZXI1Lm1kIFwK KysJJChzcmNkaXIpL2NvbmZpZy9yczYwMDAvcG93ZXI2Lm1kIFwKKysJJChzcmNkaXIpL2NvbmZp Zy9yczYwMDAvcG93ZXI3Lm1kIFwKKysJJChzcmNkaXIpL2NvbmZpZy9yczYwMDAvY2VsbC5tZCBc CisrCSQoc3JjZGlyKS9jb25maWcvcnM2MDAwL3hmcHUubWQgXAorKwkkKHNyY2RpcikvY29uZmln L3JzNjAwMC9wcmVkaWNhdGVzLm1kIFwKKysJJChzcmNkaXIpL2NvbmZpZy9yczYwMDAvY29uc3Ry YWludHMubWQgXAorKwkkKHNyY2RpcikvY29uZmlnL3JzNjAwMC9kYXJ3aW4ubWQgXAorKwkkKHNy Y2RpcikvY29uZmlnL3JzNjAwMC9zeW5jLm1kIFwKKysJJChzcmNkaXIpL2NvbmZpZy9yczYwMDAv dmVjdG9yLm1kIFwKKysJJChzcmNkaXIpL2NvbmZpZy9yczYwMDAvdnN4Lm1kIFwKKysJJChzcmNk aXIpL2NvbmZpZy9yczYwMDAvYWx0aXZlYy5tZCBcCisrCSQoc3JjZGlyKS9jb25maWcvcnM2MDAw L3NwZS5tZCBcCisrCSQoc3JjZGlyKS9jb25maWcvcnM2MDAwL2RmcC5tZCBcCisrCSQoc3JjZGly KS9jb25maWcvcnM2MDAwL3BhaXJlZC5tZAorLS0tIGdjYy9jb25maWcvcnM2MDAwL3Bvd2VyNy5t ZAkoLi4uL3RydW5rKQkocmV2aXNpb24gMCkKKysrKyBnY2MvY29uZmlnL3JzNjAwMC9wb3dlcjcu bWQJKC4uLi9icmFuY2hlcy9pYm0vcG93ZXI3LW1laXNzbmVyKQkocmV2aXNpb24gMTQ0NjkyKQor QEAgLTAsMCArMSwzMjAgQEAKKys7OyBTY2hlZHVsaW5nIGRlc2NyaXB0aW9uIGZvciBJQk0gUE9X RVI3IHByb2Nlc3Nvci4KKys7OyBDb3B5cmlnaHQgKEMpIDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCisrOzsKKys7OyBDb250cmlidXRlZCBieSBQYXQgSGF1Z2VuIChwdGhhdWdl bkB1cy5pYm0uY29tKS4KKysKKys7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHQ0MuCisrOzsKKys7 OyBHQ0MgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeSBpdAorKzs7IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkCisrOzsgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyIHZlcnNpb24gMywgb3IgKGF0IHlvdXIKKys7OyBvcHRpb24pIGFueSBsYXRlciB2ZXJz aW9uLgorKzs7CisrOzsgR0NDIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCisrOzsgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZCisrOzsgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworKzs7 IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKys7OworKzs7IFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrOzsgYWxvbmcg d2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUKKys7OyA8aHR0cDov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrKGRlZmluZV9hdXRvbWF0b24gInBvd2VyN2l1 LHBvd2VyN2xzdSxwb3dlcjd2c3UscG93ZXI3bWlzYyIpCisrCisrKGRlZmluZV9jcHVfdW5pdCAi aXUxX3Bvd2VyNyxpdTJfcG93ZXI3IiAicG93ZXI3aXUiKQorKyhkZWZpbmVfY3B1X3VuaXQgImxz dTFfcG93ZXI3LGxzdTJfcG93ZXI3IiAicG93ZXI3bHN1IikKKysoZGVmaW5lX2NwdV91bml0ICJ2 c3UxX3Bvd2VyNyx2c3UyX3Bvd2VyNyIgInBvd2VyN3ZzdSIpCisrKGRlZmluZV9jcHVfdW5pdCAi YnB1X3Bvd2VyNyxjcnVfcG93ZXI3IiAicG93ZXI3bWlzYyIpCisrKGRlZmluZV9jcHVfdW5pdCAi ZHUxX3Bvd2VyNyxkdTJfcG93ZXI3LGR1M19wb3dlcjcsZHU0X3Bvd2VyNyxkdTVfcG93ZXI3Igor KyAgICAgICAgICAgICAgICAgInBvd2VyN21pc2MiKQorKworKworKyhkZWZpbmVfcmVzZXJ2YXRp b24gIkRVX3Bvd2VyNyIKKysJCSAgICAiZHUxX3Bvd2VyN3xkdTJfcG93ZXI3fGR1M19wb3dlcjd8 ZHU0X3Bvd2VyNyIpCisrCisrKGRlZmluZV9yZXNlcnZhdGlvbiAiRFUyRl9wb3dlcjciCisrCQkg ICAgImR1MV9wb3dlcjcrZHUyX3Bvd2VyNyIpCisrCisrKGRlZmluZV9yZXNlcnZhdGlvbiAiRFU0 X3Bvd2VyNyIKKysJCSAgICAiZHUxX3Bvd2VyNytkdTJfcG93ZXI3K2R1M19wb3dlcjcrZHU0X3Bv d2VyNyIpCisrCisrKGRlZmluZV9yZXNlcnZhdGlvbiAiRlhVX3Bvd2VyNyIKKysgICAgICAgICAg ICAgICAgICAgICJpdTFfcG93ZXI3fGl1Ml9wb3dlcjciKQorKworKyhkZWZpbmVfcmVzZXJ2YXRp b24gIlZTVV9wb3dlcjciCisrICAgICAgICAgICAgICAgICAgICAidnN1MV9wb3dlcjd8dnN1Ml9w b3dlcjciKQorKworKyhkZWZpbmVfcmVzZXJ2YXRpb24gIkxTVV9wb3dlcjciCisrICAgICAgICAg ICAgICAgICAgICAibHN1MV9wb3dlcjd8bHN1Ml9wb3dlcjciKQorKworKworKzsgRGlzcGF0Y2gg c2xvdHMgYXJlIGFsbG9jYXRlZCBpbiBvcmRlciBjb25mb3JtaW5nIHRvIHByb2dyYW0gb3JkZXIu CisrKGFic2VuY2Vfc2V0ICJkdTFfcG93ZXI3IiAiZHUyX3Bvd2VyNyxkdTNfcG93ZXI3LGR1NF9w b3dlcjcsZHU1X3Bvd2VyNyIpCisrKGFic2VuY2Vfc2V0ICJkdTJfcG93ZXI3IiAiZHUzX3Bvd2Vy NyxkdTRfcG93ZXI3LGR1NV9wb3dlcjciKQorKyhhYnNlbmNlX3NldCAiZHUzX3Bvd2VyNyIgImR1 NF9wb3dlcjcsZHU1X3Bvd2VyNyIpCisrKGFic2VuY2Vfc2V0ICJkdTRfcG93ZXI3IiAiZHU1X3Bv d2VyNyIpCisrCisrCisrOyBMUyBVbml0CisrKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJwb3dl cjctbG9hZCIgMgorKyAgKGFuZCAoZXFfYXR0ciAidHlwZSIgImxvYWQiKQorKyAgICAgICAoZXFf YXR0ciAiY3B1IiAicG93ZXI3IikpCisrICAiRFVfcG93ZXI3LExTVV9wb3dlcjciKQorKworKyhk ZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAicG93ZXI3LWxvYWQtZXh0IiAzCisrICAoYW5kIChlcV9h dHRyICJ0eXBlIiAibG9hZF9leHQiKQorKyAgICAgICAoZXFfYXR0ciAiY3B1IiAicG93ZXI3Iikp CisrICAiRFUyRl9wb3dlcjcsTFNVX3Bvd2VyNyxGWFVfcG93ZXI3IikKKysKKysoZGVmaW5lX2lu c25fcmVzZXJ2YXRpb24gInBvd2VyNy1sb2FkLXVwZGF0ZSIgMgorKyAgKGFuZCAoZXFfYXR0ciAi dHlwZSIgImxvYWRfdSIpCisrICAgICAgIChlcV9hdHRyICJjcHUiICJwb3dlcjciKSkKKysgICJE VTJGX3Bvd2VyNyxMU1VfcG93ZXI3K0ZYVV9wb3dlcjciKQorKworKyhkZWZpbmVfaW5zbl9yZXNl cnZhdGlvbiAicG93ZXI3LWxvYWQtdXBkYXRlLWluZGV4ZWQiIDMKKysgIChhbmQgKGVxX2F0dHIg InR5cGUiICJsb2FkX3V4IikKKysgICAgICAgKGVxX2F0dHIgImNwdSIgInBvd2VyNyIpKQorKyAg IkRVNF9wb3dlcjcsRlhVX3Bvd2VyNyxMU1VfcG93ZXI3K0ZYVV9wb3dlcjciKQorKworKyhkZWZp bmVfaW5zbl9yZXNlcnZhdGlvbiAicG93ZXI3LWxvYWQtZXh0LXVwZGF0ZSIgNAorKyAgKGFuZCAo ZXFfYXR0ciAidHlwZSIgImxvYWRfZXh0X3UiKQorKyAgICAgICAoZXFfYXR0ciAiY3B1IiAicG93 ZXI3IikpCisrICAiRFUyRl9wb3dlcjcsTFNVX3Bvd2VyNytGWFVfcG93ZXI3LEZYVV9wb3dlcjci KQorKworKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAicG93ZXI3LWxvYWQtZXh0LXVwZGF0ZS1p bmRleGVkIiA0CisrICAoYW5kIChlcV9hdHRyICJ0eXBlIiAibG9hZF9leHRfdXgiKQorKyAgICAg ICAoZXFfYXR0ciAiY3B1IiAicG93ZXI3IikpCisrICAiRFU0X3Bvd2VyNyxGWFVfcG93ZXI3LExT VV9wb3dlcjcrRlhVX3Bvd2VyNyxGWFVfcG93ZXI3IikKKysKKysoZGVmaW5lX2luc25fcmVzZXJ2 YXRpb24gInBvd2VyNy1mcGxvYWQiIDMKKysgIChhbmQgKGVxX2F0dHIgInR5cGUiICJmcGxvYWQi KQorKyAgICAgICAoZXFfYXR0ciAiY3B1IiAicG93ZXI3IikpCisrICAiRFVfcG93ZXI3LExTVV9w b3dlcjciKQorKworKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAicG93ZXI3LWZwbG9hZC11cGRh dGUiIDMKKysgIChhbmQgKGVxX2F0dHIgInR5cGUiICJmcGxvYWRfdSxmcGxvYWRfdXgiKQorKyAg ICAgICAoZXFfYXR0ciAiY3B1IiAicG93ZXI3IikpCisrICAiRFUyRl9wb3dlcjcsTFNVX3Bvd2Vy NytGWFVfcG93ZXI3IikKKysKKysoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gInBvd2VyNy1zdG9y ZSIgNiA7IHN0b3JlLWZvcndhcmRpbmcgbGF0ZW5jeQorKyAgKGFuZCAoZXFfYXR0ciAidHlwZSIg InN0b3JlIikKKysgICAgICAgKGVxX2F0dHIgImNwdSIgInBvd2VyNyIpKQorKyAgIkRVX3Bvd2Vy NyxMU1VfcG93ZXI3K0ZYVV9wb3dlcjciKQorKworKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAi cG93ZXI3LXN0b3JlLXVwZGF0ZSIgNgorKyAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInN0b3JlX3Ui KQorKyAgICAgICAoZXFfYXR0ciAiY3B1IiAicG93ZXI3IikpCisrICAiRFUyRl9wb3dlcjcsTFNV X3Bvd2VyNytGWFVfcG93ZXI3LEZYVV9wb3dlcjciKQorKworKyhkZWZpbmVfaW5zbl9yZXNlcnZh dGlvbiAicG93ZXI3LXN0b3JlLXVwZGF0ZS1pbmRleGVkIiA2CisrICAoYW5kIChlcV9hdHRyICJ0 eXBlIiAic3RvcmVfdXgiKQorKyAgICAgICAoZXFfYXR0ciAiY3B1IiAicG93ZXI3IikpCisrICAi RFU0X3Bvd2VyNyxMU1VfcG93ZXI3K0ZYVV9wb3dlcjcsRlhVX3Bvd2VyNyIpCisrCisrKGRlZmlu ZV9pbnNuX3Jlc2VydmF0aW9uICJwb3dlcjctZnBzdG9yZSIgNgorKyAgKGFuZCAoZXFfYXR0ciAi dHlwZSIgImZwc3RvcmUiKQorKyAgICAgICAoZXFfYXR0ciAiY3B1IiAicG93ZXI3IikpCisrICAi RFVfcG93ZXI3LExTVV9wb3dlcjcrVlNVX3Bvd2VyNyIpCisrCisrKGRlZmluZV9pbnNuX3Jlc2Vy dmF0aW9uICJwb3dlcjctZnBzdG9yZS11cGRhdGUiIDYKKysgIChhbmQgKGVxX2F0dHIgInR5cGUi ICJmcHN0b3JlX3UsZnBzdG9yZV91eCIpCisrICAgICAgIChlcV9hdHRyICJjcHUiICJwb3dlcjci KSkKKysgICJEVV9wb3dlcjcsTFNVX3Bvd2VyNytWU1VfcG93ZXI3K0ZYVV9wb3dlcjciKQorKwor KyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAicG93ZXI3LWxhcngiIDMKKysgIChhbmQgKGVxX2F0 dHIgInR5cGUiICJsb2FkX2wiKQorKyAgICAgICAoZXFfYXR0ciAiY3B1IiAicG93ZXI3IikpCisr ICAiRFU0X3Bvd2VyNyxMU1VfcG93ZXI3IikKKysKKysoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24g InBvd2VyNy1zdGN4IiAxMAorKyAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInN0b3JlX2MiKQorKyAg ICAgICAoZXFfYXR0ciAiY3B1IiAicG93ZXI3IikpCisrICAiRFU0X3Bvd2VyNyxMU1VfcG93ZXI3 IikKKysKKysoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gInBvd2VyNy12ZWNsb2FkIiAzCisrICAo YW5kIChlcV9hdHRyICJ0eXBlIiAidmVjbG9hZCIpCisrICAgICAgIChlcV9hdHRyICJjcHUiICJw b3dlcjciKSkKKysgICJEVV9wb3dlcjcsTFNVX3Bvd2VyNyIpCisrCisrKGRlZmluZV9pbnNuX3Jl c2VydmF0aW9uICJwb3dlcjctdmVjc3RvcmUiIDYKKysgIChhbmQgKGVxX2F0dHIgInR5cGUiICJ2 ZWNzdG9yZSIpCisrICAgICAgIChlcV9hdHRyICJjcHUiICJwb3dlcjciKSkKKysgICJEVV9wb3dl cjcsTFNVX3Bvd2VyNytWU1VfcG93ZXI3IikKKysKKysoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24g InBvd2VyNy1zeW5jIiAxMQorKyAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInN5bmMiKQorKyAgICAg ICAoZXFfYXR0ciAiY3B1IiAicG93ZXI3IikpCisrICAiRFU0X3Bvd2VyNyxMU1VfcG93ZXI3IikK KysKKysKKys7IEZYIFVuaXQKKysoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gInBvd2VyNy1pbnRl Z2VyIiAxCisrICAoYW5kIChlcV9hdHRyICJ0eXBlIiAiaW50ZWdlcixpbnNlcnRfd29yZCxpbnNl cnRfZHdvcmQsc2hpZnQsdHJhcCxcCisrICAgICAgICAgICAgICAgICAgICAgICAgdmFyX3NoaWZ0 X3JvdGF0ZSxleHRzIikKKysgICAgICAgKGVxX2F0dHIgImNwdSIgInBvd2VyNyIpKQorKyAgIkRV X3Bvd2VyNyxGWFVfcG93ZXI3IikKKysKKysoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gInBvd2Vy Ny1jbnRseiIgMgorKyAgKGFuZCAoZXFfYXR0ciAidHlwZSIgImNudGx6IikKKysgICAgICAgKGVx X2F0dHIgImNwdSIgInBvd2VyNyIpKQorKyAgIkRVX3Bvd2VyNyxGWFVfcG93ZXI3IikKKysKKyso ZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gInBvd2VyNy10d28iIDIKKysgIChhbmQgKGVxX2F0dHIg InR5cGUiICJ0d28iKQorKyAgICAgICAoZXFfYXR0ciAiY3B1IiAicG93ZXI3IikpCisrICAiRFVf cG93ZXI3K0RVX3Bvd2VyNyxGWFVfcG93ZXI3LEZYVV9wb3dlcjciKQorKworKyhkZWZpbmVfaW5z bl9yZXNlcnZhdGlvbiAicG93ZXI3LXRocmVlIiAzCisrICAoYW5kIChlcV9hdHRyICJ0eXBlIiAi dGhyZWUiKQorKyAgICAgICAoZXFfYXR0ciAiY3B1IiAicG93ZXI3IikpCisrICAiRFVfcG93ZXI3 K0RVX3Bvd2VyNytEVV9wb3dlcjcsRlhVX3Bvd2VyNyxGWFVfcG93ZXI3LEZYVV9wb3dlcjciKQor KworKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAicG93ZXI3LWNtcCIgMQorKyAgKGFuZCAoZXFf YXR0ciAidHlwZSIgImNtcCxmYXN0X2NvbXBhcmUiKQorKyAgICAgICAoZXFfYXR0ciAiY3B1IiAi cG93ZXI3IikpCisrICAiRFVfcG93ZXI3LEZYVV9wb3dlcjciKQorKworKyhkZWZpbmVfaW5zbl9y ZXNlcnZhdGlvbiAicG93ZXI3LWNvbXBhcmUiIDIKKysgIChhbmQgKGVxX2F0dHIgInR5cGUiICJj b21wYXJlLGRlbGF5ZWRfY29tcGFyZSx2YXJfZGVsYXllZF9jb21wYXJlIikKKysgICAgICAgKGVx X2F0dHIgImNwdSIgInBvd2VyNyIpKQorKyAgIkRVMkZfcG93ZXI3LEZYVV9wb3dlcjcsRlhVX3Bv d2VyNyIpCisrCisrKGRlZmluZV9ieXBhc3MgMyAicG93ZXI3LWNtcCxwb3dlcjctY29tcGFyZSIg InBvd2VyNy1jcmxvZ2ljYWwscG93ZXI3LWRlbGF5ZWRjciIpCisrCisrKGRlZmluZV9pbnNuX3Jl c2VydmF0aW9uICJwb3dlcjctbXVsIiA0CisrICAoYW5kIChlcV9hdHRyICJ0eXBlIiAiaW11bCxp bXVsMixpbXVsMyxsbXVsIikKKysgICAgICAgKGVxX2F0dHIgImNwdSIgInBvd2VyNyIpKQorKyAg IkRVX3Bvd2VyNyxGWFVfcG93ZXI3IikKKysKKysoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gInBv d2VyNy1tdWwtY29tcGFyZSIgNQorKyAgKGFuZCAoZXFfYXR0ciAidHlwZSIgImltdWxfY29tcGFy ZSxsbXVsX2NvbXBhcmUiKQorKyAgICAgICAoZXFfYXR0ciAiY3B1IiAicG93ZXI3IikpCisrICAi RFUyRl9wb3dlcjcsRlhVX3Bvd2VyNyxub3RoaW5nKjMsRlhVX3Bvd2VyNyIpCisrCisrKGRlZmlu ZV9pbnNuX3Jlc2VydmF0aW9uICJwb3dlcjctaWRpdiIgMzYKKysgIChhbmQgKGVxX2F0dHIgInR5 cGUiICJpZGl2IikKKysgICAgICAgKGVxX2F0dHIgImNwdSIgInBvd2VyNyIpKQorKyAgIkRVMkZf cG93ZXI3LGl1MV9wb3dlcjcqMzZ8aXUyX3Bvd2VyNyozNiIpCisrCisrKGRlZmluZV9pbnNuX3Jl c2VydmF0aW9uICJwb3dlcjctbGRpdiIgNjgKKysgIChhbmQgKGVxX2F0dHIgInR5cGUiICJsZGl2 IikKKysgICAgICAgKGVxX2F0dHIgImNwdSIgInBvd2VyNyIpKQorKyAgIkRVMkZfcG93ZXI3LGl1 MV9wb3dlcjcqNjh8aXUyX3Bvd2VyNyo2OCIpCisrCisrKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9u ICJwb3dlcjctaXN5bmMiIDEgOworKyAgKGFuZCAoZXFfYXR0ciAidHlwZSIgImlzeW5jIikKKysg ICAgICAgKGVxX2F0dHIgImNwdSIgInBvd2VyNyIpKQorKyAgIkRVNF9wb3dlcjcsRlhVX3Bvd2Vy NyIpCisrCisrCisrOyBDUiBVbml0CisrKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJwb3dlcjct bXRqbXByIiA0CisrICAoYW5kIChlcV9hdHRyICJ0eXBlIiAibXRqbXByIikKKysgICAgICAgKGVx X2F0dHIgImNwdSIgInBvd2VyNyIpKQorKyAgImR1MV9wb3dlcjcsRlhVX3Bvd2VyNyIpCisrCisr KGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJwb3dlcjctbWZqbXByIiA1CisrICAoYW5kIChlcV9h dHRyICJ0eXBlIiAibWZqbXByIikKKysgICAgICAgKGVxX2F0dHIgImNwdSIgInBvd2VyNyIpKQor KyAgImR1MV9wb3dlcjcsY3J1X3Bvd2VyNytGWFVfcG93ZXI3IikKKysKKysoZGVmaW5lX2luc25f cmVzZXJ2YXRpb24gInBvd2VyNy1jcmxvZ2ljYWwiIDMKKysgIChhbmQgKGVxX2F0dHIgInR5cGUi ICJjcl9sb2dpY2FsIikKKysgICAgICAgKGVxX2F0dHIgImNwdSIgInBvd2VyNyIpKQorKyAgImR1 MV9wb3dlcjcsY3J1X3Bvd2VyNyIpCisrCisrKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJwb3dl cjctZGVsYXllZGNyIiAzCisrICAoYW5kIChlcV9hdHRyICJ0eXBlIiAiZGVsYXllZF9jciIpCisr ICAgICAgIChlcV9hdHRyICJjcHUiICJwb3dlcjciKSkKKysgICJkdTFfcG93ZXI3LGNydV9wb3dl cjciKQorKworKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAicG93ZXI3LW1mY3IiIDYKKysgIChh bmQgKGVxX2F0dHIgInR5cGUiICJtZmNyIikKKysgICAgICAgKGVxX2F0dHIgImNwdSIgInBvd2Vy NyIpKQorKyAgImR1MV9wb3dlcjcsY3J1X3Bvd2VyNyIpCisrCisrKGRlZmluZV9pbnNuX3Jlc2Vy dmF0aW9uICJwb3dlcjctbWZjcmYiIDMKKysgIChhbmQgKGVxX2F0dHIgInR5cGUiICJtZmNyZiIp CisrICAgICAgIChlcV9hdHRyICJjcHUiICJwb3dlcjciKSkKKysgICJkdTFfcG93ZXI3LGNydV9w b3dlcjciKQorKworKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAicG93ZXI3LW10Y3IiIDMKKysg IChhbmQgKGVxX2F0dHIgInR5cGUiICJtdGNyIikKKysgICAgICAgKGVxX2F0dHIgImNwdSIgInBv d2VyNyIpKQorKyAgIkRVNF9wb3dlcjcsY3J1X3Bvd2VyNytGWFVfcG93ZXI3IikKKysKKysKKys7 IEJSIFVuaXQKKys7IEJyYW5jaGVzIHRha2UgZGlzcGF0Y2ggU2xvdCA0LiAgVGhlIHByZXNlbmNl X3NldHMgcHJldmVudCBvdGhlciBpbnNuIGZyb20KKys7IGdyYWJiaW5nIHByZXZpb3VzIGRpc3Bh dGNoIHNsb3RzIG9uY2UgdGhpcyBpcyBhc3NpZ25lZC4KKysoZGVmaW5lX2luc25fcmVzZXJ2YXRp b24gInBvd2VyNy1icmFuY2giIDMKKysgIChhbmQgKGVxX2F0dHIgInR5cGUiICJqbXByZWcsYnJh bmNoIikKKysgICAgICAgKGVxX2F0dHIgImNwdSIgInBvd2VyNyIpKQorKyAgIihkdTVfcG93ZXI3 XAorKyAgIHxkdTRfcG93ZXI3K2R1NV9wb3dlcjdcCisrICAgfGR1M19wb3dlcjcrZHU0X3Bvd2Vy NytkdTVfcG93ZXI3XAorKyAgIHxkdTJfcG93ZXI3K2R1M19wb3dlcjcrZHU0X3Bvd2VyNytkdTVf cG93ZXI3XAorKyAgIHxkdTFfcG93ZXI3K2R1Ml9wb3dlcjcrZHUzX3Bvd2VyNytkdTRfcG93ZXI3 K2R1NV9wb3dlcjcpLGJwdV9wb3dlcjciKQorKworKworKzsgVlMgVW5pdCAoaW5jbHVkZXMgRlAv VlNYL1ZNWC9ERlApCisrKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJwb3dlcjctZnAiIDYKKysg IChhbmQgKGVxX2F0dHIgInR5cGUiICJmcCxkbXVsIikKKysgICAgICAgKGVxX2F0dHIgImNwdSIg InBvd2VyNyIpKQorKyAgIkRVX3Bvd2VyNyxWU1VfcG93ZXI3IikKKysKKysoZGVmaW5lX2J5cGFz cyA4ICJwb3dlcjctZnAiICJwb3dlcjctYnJhbmNoIikKKysKKysoZGVmaW5lX2luc25fcmVzZXJ2 YXRpb24gInBvd2VyNy1mcGNvbXBhcmUiIDQKKysgIChhbmQgKGVxX2F0dHIgInR5cGUiICJmcGNv bXBhcmUiKQorKyAgICAgICAoZXFfYXR0ciAiY3B1IiAicG93ZXI3IikpCisrICAiRFVfcG93ZXI3 LFZTVV9wb3dlcjciKQorKworKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAicG93ZXI3LXNkaXYi IDI2CisrICAoYW5kIChlcV9hdHRyICJ0eXBlIiAic2RpdiIpCisrICAgICAgIChlcV9hdHRyICJj cHUiICJwb3dlcjciKSkKKysgICJEVV9wb3dlcjcsVlNVX3Bvd2VyNyIpCisrCisrKGRlZmluZV9p bnNuX3Jlc2VydmF0aW9uICJwb3dlcjctZGRpdiIgMzIKKysgIChhbmQgKGVxX2F0dHIgInR5cGUi ICJkZGl2IikKKysgICAgICAgKGVxX2F0dHIgImNwdSIgInBvd2VyNyIpKQorKyAgIkRVX3Bvd2Vy NyxWU1VfcG93ZXI3IikKKysKKysoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gInBvd2VyNy1zcXJ0 IiAzMQorKyAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInNzcXJ0IikKKysgICAgICAgKGVxX2F0dHIg ImNwdSIgInBvd2VyNyIpKQorKyAgIkRVX3Bvd2VyNyxWU1VfcG93ZXI3IikKKysKKysoZGVmaW5l X2luc25fcmVzZXJ2YXRpb24gInBvd2VyNy1kc3FydCIgNDMKKysgIChhbmQgKGVxX2F0dHIgInR5 cGUiICJkc3FydCIpCisrICAgICAgIChlcV9hdHRyICJjcHUiICJwb3dlcjciKSkKKysgICJEVV9w b3dlcjcsVlNVX3Bvd2VyNyIpCisrCisrKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJwb3dlcjct dmVjc2ltcGxlIiAyCisrICAoYW5kIChlcV9hdHRyICJ0eXBlIiAidmVjc2ltcGxlIikKKysgICAg ICAgKGVxX2F0dHIgImNwdSIgInBvd2VyNyIpKQorKyAgImR1MV9wb3dlcjcsVlNVX3Bvd2VyNyIp CisrCisrKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJwb3dlcjctdmVjY21wIiA3CisrICAoYW5k IChlcV9hdHRyICJ0eXBlIiAidmVjY21wIikKKysgICAgICAgKGVxX2F0dHIgImNwdSIgInBvd2Vy NyIpKQorKyAgImR1MV9wb3dlcjcsVlNVX3Bvd2VyNyIpCisrCisrKGRlZmluZV9pbnNuX3Jlc2Vy dmF0aW9uICJwb3dlcjctdmVjZmxvYXQiIDcKKysgIChhbmQgKGVxX2F0dHIgInR5cGUiICJ2ZWNm bG9hdCIpCisrICAgICAgIChlcV9hdHRyICJjcHUiICJwb3dlcjciKSkKKysgICJkdTFfcG93ZXI3 LFZTVV9wb3dlcjciKQorKworKyhkZWZpbmVfYnlwYXNzIDYgInBvd2VyNy12ZWNmbG9hdCIgInBv d2VyNy12ZWNmbG9hdCIpCisrCisrKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJwb3dlcjctdmVj Y29tcGxleCIgNworKyAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInZlY2NvbXBsZXgiKQorKyAgICAg ICAoZXFfYXR0ciAiY3B1IiAicG93ZXI3IikpCisrICAiZHUxX3Bvd2VyNyxWU1VfcG93ZXI3IikK KysKKysoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gInBvd2VyNy12ZWNwZXJtIiAzCisrICAoYW5k IChlcV9hdHRyICJ0eXBlIiAidmVjcGVybSIpCisrICAgICAgIChlcV9hdHRyICJjcHUiICJwb3dl cjciKSkKKysgICJkdTJfcG93ZXI3LFZTVV9wb3dlcjciKQorKworKworLS0tIGdjYy9jb25maWcv cnM2MDAwL3JzNjAwMC1jLmMJKC4uLi90cnVuaykJKHJldmlzaW9uIDE0NDU1NykKKysrKyBnY2Mv Y29uZmlnL3JzNjAwMC9yczYwMDAtYy5jCSguLi4vYnJhbmNoZXMvaWJtL3Bvd2VyNy1tZWlzc25l cikJKHJldmlzaW9uIDE0NDY5MikKK0BAIC0yNjUsNiArMjY1LDggQEAgcnM2MDAwX2NwdV9jcHBf YnVpbHRpbnMgKGNwcF9yZWFkZXIgKnBmaQorICAgICBidWlsdGluX2RlZmluZSAoIl9BUkNIX1BX UjZYIik7CisgICBpZiAoISBUQVJHRVRfUE9XRVIgJiYgISBUQVJHRVRfUE9XRVIyICYmICEgVEFS R0VUX1BPV0VSUEMpCisgICAgIGJ1aWx0aW5fZGVmaW5lICgiX0FSQ0hfQ09NIik7CisrICBpZiAo VEFSR0VUX1BPUENOVEQpCisrICAgIGJ1aWx0aW5fZGVmaW5lICgiX0FSQ0hfUFdSNyIpOworICAg aWYgKFRBUkdFVF9BTFRJVkVDKQorICAgICB7CisgICAgICAgYnVpbHRpbl9kZWZpbmUgKCJfX0FM VElWRUNfXyIpOworQEAgLTMwNiw2ICszMDgsOCBAQCByczYwMDBfY3B1X2NwcF9idWlsdGlucyAo Y3BwX3JlYWRlciAqcGZpCisgICAvKiBVc2VkIGJ5IGxpYnN0ZGMrKy4gICovCisgICBpZiAoVEFS R0VUX05PX0xXU1lOQykKKyAgICAgYnVpbHRpbl9kZWZpbmUgKCJfX05PX0xXU1lOQ19fIik7Cisr ICBpZiAoVEFSR0VUX1ZTWCkKKysgICAgYnVpbHRpbl9kZWZpbmUgKCJfX1ZTWF9fIik7CisgCisg ICAvKiBNYXkgYmUgb3ZlcnJpZGRlbiBieSB0YXJnZXQgY29uZmlndXJhdGlvbi4gICovCisgICBS UzYwMDBfQ1BVX0NQUF9FTkRJQU5fQlVJTFRJTlMoKTsKKy0tLSBnY2MvY29uZmlnL3JzNjAwMC9y czYwMDAub3B0CSguLi4vdHJ1bmspCShyZXZpc2lvbiAxNDQ1NTcpCisrKysgZ2NjL2NvbmZpZy9y czYwMDAvcnM2MDAwLm9wdAkoLi4uL2JyYW5jaGVzL2libS9wb3dlcjctbWVpc3NuZXIpCShyZXZp c2lvbiAxNDQ2OTIpCitAQCAtMTExLDI0ICsxMTEsNDQgQEAgbWhhcmQtZmxvYXQKKyBUYXJnZXQg UmVwb3J0IFJlamVjdE5lZ2F0aXZlIEludmVyc2VNYXNrKFNPRlRfRkxPQVQsIEhBUkRfRkxPQVQp CisgVXNlIGhhcmR3YXJlIGZsb2F0aW5nIHBvaW50CisgCistbW5vLXVwZGF0ZQorLVRhcmdldCBS ZXBvcnQgUmVqZWN0TmVnYXRpdmUgTWFzayhOT19VUERBVEUpCistRG8gbm90IGdlbmVyYXRlIGxv YWQvc3RvcmUgd2l0aCB1cGRhdGUgaW5zdHJ1Y3Rpb25zCisrbXBvcGNudGQKKytUYXJnZXQgUmVw b3J0IE1hc2soUE9QQ05URCkKKytVc2UgUG93ZXJQQyBWMi4wNiBwb3BjbnRkIGluc3RydWN0aW9u CisrCisrbXZzeAorK1RhcmdldCBSZXBvcnQgTWFzayhWU1gpCisrVXNlIHZlY3Rvci9zY2FsYXIg KFZTWCkgaW5zdHJ1Y3Rpb25zCisrCisrbXZzeC12ZWN0b3ItbWVtb3J5CisrVGFyZ2V0IFJlcG9y dCBWYXIoVEFSR0VUX1ZTWF9WRUNUT1JfTUVNT1JZKSBJbml0KC0xKQorK0lmIC1tdnN4LCB1c2Ug VlNYIHZlY3RvciBsb2FkL3N0b3JlIGluc3RydWN0aW9ucyBpbnN0ZWFkIG9mIEFsdGl2ZWMgaW5z dHJ1Y3Rpb25zCisrCisrbXZzeC12ZWN0b3ItZmxvYXQKKytUYXJnZXQgUmVwb3J0IFZhcihUQVJH RVRfVlNYX1ZFQ1RPUl9GTE9BVCkgSW5pdCgtMSkKKytJZiAtbXZzeCwgdXNlIFZTWCBhcml0aG1l dGljIGluc3RydWN0aW9ucyBmb3IgZmxvYXQgdmVjdG9ycyAob24gYnkgZGVmYXVsdCkKKysKKytt dnN4LXZlY3Rvci1kb3VibGUKKytUYXJnZXQgUmVwb3J0IFZhcihUQVJHRVRfVlNYX1ZFQ1RPUl9E T1VCTEUpIEluaXQoLTEpCisrSWYgLW12c3gsIHVzZSBWU1ggYXJpdGhtZXRpYyBpbnN0cnVjdGlv bnMgZm9yIGRvdWJsZSB2ZWN0b3JzIChvbiBieSBkZWZhdWx0KQorKworK212c3gtc2NhbGFyLWRv dWJsZQorK1RhcmdldCBSZXBvcnQgVmFyKFRBUkdFVF9WU1hfU0NBTEFSX0RPVUJMRSkgSW5pdCgt MSkKKytJZiAtbXZzeCwgdXNlIFZTWCBhcml0aG1ldGljIGluc3RydWN0aW9ucyBmb3Igc2NhbGFy IGRvdWJsZSAob24gYnkgZGVmYXVsdCkKKysKKyttdnN4LXNjYWxhci1tZW1vcnkKKytUYXJnZXQg UmVwb3J0IFZhcihUQVJHRVRfVlNYX1NDQUxBUl9NRU1PUlkpCisrSWYgLW12c3gsIHVzZSBWU1gg c2NhbGFyIG1lbW9yeSByZWZlcmVuY2UgaW5zdHJ1Y3Rpb25zIGZvciBzY2FsYXIgZG91YmxlIChv ZmYgYnkgZGVmYXVsdCkKKyAKKyBtdXBkYXRlCistVGFyZ2V0IFJlcG9ydCBSZWplY3ROZWdhdGl2 ZSBJbnZlcnNlTWFzayhOT19VUERBVEUsIFVQREFURSkKKytUYXJnZXQgUmVwb3J0IFZhcihUQVJH RVRfVVBEQVRFKSBJbml0KDEpCisgR2VuZXJhdGUgbG9hZC9zdG9yZSB3aXRoIHVwZGF0ZSBpbnN0 cnVjdGlvbnMKKyAKKyBtYXZvaWQtaW5kZXhlZC1hZGRyZXNzZXMKKyBUYXJnZXQgUmVwb3J0IFZh cihUQVJHRVRfQVZPSURfWEZPUk0pIEluaXQoLTEpCisgQXZvaWQgZ2VuZXJhdGlvbiBvZiBpbmRl eGVkIGxvYWQvc3RvcmUgaW5zdHJ1Y3Rpb25zIHdoZW4gcG9zc2libGUKKyAKKy1tbm8tZnVzZWQt bWFkZAorLVRhcmdldCBSZXBvcnQgUmVqZWN0TmVnYXRpdmUgTWFzayhOT19GVVNFRF9NQUREKQor LURvIG5vdCBnZW5lcmF0ZSBmdXNlZCBtdWx0aXBseS9hZGQgaW5zdHJ1Y3Rpb25zCistCisgbWZ1 c2VkLW1hZGQKKy1UYXJnZXQgUmVwb3J0IFJlamVjdE5lZ2F0aXZlIEludmVyc2VNYXNrKE5PX0ZV U0VEX01BREQsIEZVU0VEX01BREQpCisrVGFyZ2V0IFJlcG9ydCBWYXIoVEFSR0VUX0ZVU0VEX01B REQpIEluaXQoMSkKKyBHZW5lcmF0ZSBmdXNlZCBtdWx0aXBseS9hZGQgaW5zdHJ1Y3Rpb25zCisg CisgbXNjaGVkLXByb2xvZworQEAgLTE5NCw3ICsyMTQsNyBAQCBUYXJnZXQgUmVqZWN0TmVnYXRp dmUgSm9pbmVkCisgLW12cnNhdmU9eWVzL25vCURlcHJlY2F0ZWQgb3B0aW9uLiAgVXNlIC1tdnJz YXZlLy1tbm8tdnJzYXZlIGluc3RlYWQKKyAKKyBtaXNlbAorLVRhcmdldAorK1RhcmdldCBSZXBv cnQgTWFzayhJU0VMKQorIEdlbmVyYXRlIGlzZWwgaW5zdHJ1Y3Rpb25zCisgCisgbWlzZWw9Cist LS0gZ2NjL2NvbmZpZy9yczYwMDAvbGludXg2NC5oCSguLi4vdHJ1bmspCShyZXZpc2lvbiAxNDQ1 NTcpCisrKysgZ2NjL2NvbmZpZy9yczYwMDAvbGludXg2NC5oCSguLi4vYnJhbmNoZXMvaWJtL3Bv d2VyNy1tZWlzc25lcikJKHJldmlzaW9uIDE0NDY5MikKK0BAIC0xMTQsNyArMTE0LDcgQEAgZXh0 ZXJuIGludCBkb3Rfc3ltYm9sczsKKyAJICAgIGVycm9yIChJTlZBTElEXzMyQklULCAiMzIiKTsJ CQlcCisgCSAgaWYgKFRBUkdFVF9QUk9GSUxFX0tFUk5FTCkJCQkJXAorIAkgICAgewkJCQkJCQlc CistCSAgICAgIHRhcmdldF9mbGFncyAmPSB+TUFTS19QUk9GSUxFX0tFUk5FTDsJCVwKKysJICAg ICAgU0VUX1BST0ZJTEVfS0VSTkVMICgwKTsJCQkJXAorIAkgICAgICBlcnJvciAoSU5WQUxJRF8z MkJJVCwgInByb2ZpbGUta2VybmVsIik7CQlcCisgCSAgICB9CQkJCQkJCVwKKyAJfQkJCQkJCQlc CistLS0gZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLmMJKC4uLi90cnVuaykJKHJldmlzaW9uIDE0 NDU1NykKKysrKyBnY2MvY29uZmlnL3JzNjAwMC9yczYwMDAuYwkoLi4uL2JyYW5jaGVzL2libS9w b3dlcjctbWVpc3NuZXIpCShyZXZpc2lvbiAxNDQ2OTIpCitAQCAtMTc4LDkgKzE3OCw2IEBAIGlu dCByczYwMDBfc3BlOworIC8qIE5vbnplcm8gaWYgd2Ugd2FudCBTUEUgQUJJIGV4dGVuc2lvbnMu ICAqLworIGludCByczYwMDBfc3BlX2FiaTsKKyAKKy0vKiBOb256ZXJvIHRvIHVzZSBpc2VsIGlu c3RydWN0aW9ucy4gICovCistaW50IHJzNjAwMF9pc2VsOworLQorIC8qIE5vbnplcm8gaWYgZmxv YXRpbmcgcG9pbnQgb3BlcmF0aW9ucyBhcmUgZG9uZSBpbiB0aGUgR1BScy4gICovCisgaW50IHJz NjAwMF9mbG9hdF9ncHJzID0gMDsKKyAKK0BAIC0yMjcsMTAgKzIyNCwxOCBAQCBpbnQgZG90X3N5 bWJvbHM7CisgY29uc3QgY2hhciAqcnM2MDAwX2RlYnVnX25hbWU7CisgaW50IHJzNjAwMF9kZWJ1 Z19zdGFjazsJCS8qIGRlYnVnIHN0YWNrIGFwcGxpY2F0aW9ucyAqLworIGludCByczYwMDBfZGVi dWdfYXJnOwkJLyogZGVidWcgYXJndW1lbnQgaGFuZGxpbmcgKi8KKytpbnQgcnM2MDAwX2RlYnVn X3JlZzsJCS8qIGRlYnVnIHJlZ2lzdGVyIGNsYXNzZXMgKi8KKytpbnQgcnM2MDAwX2RlYnVnX2Fk ZHI7CQkvKiBkZWJ1ZyBtZW1vcnkgYWRkcmVzc2luZyAqLworIAorIC8qIFZhbHVlIGlzIFRSVUUg aWYgcmVnaXN0ZXIvbW9kZSBwYWlyIGlzIGFjY2VwdGFibGUuICAqLworIGJvb2wgcnM2MDAwX2hh cmRfcmVnbm9fbW9kZV9va19wW05VTV9NQUNISU5FX01PREVTXVtGSVJTVF9QU0VVRE9fUkVHSVNU RVJdOworIAorKy8qIE1heGltdW0gbnVtYmVyIG9mIHJlZ2lzdGVycyBuZWVkZWQgZm9yIGEgZ2l2 ZW4gcmVnaXN0ZXIgY2xhc3MgYW5kIG1vZGUuICAqLworK3Vuc2lnbmVkIGNoYXIgcnM2MDAwX2Ns YXNzX21heF9ucmVnc1tOVU1fTUFDSElORV9NT0RFU11bTElNX1JFR19DTEFTU0VTXTsKKysKKysv KiBIb3cgbWFueSByZWdpc3RlcnMgYXJlIG5lZWRlZCBmb3IgYSBnaXZlbiByZWdpc3RlciBhbmQg bW9kZS4gICovCisrdW5zaWduZWQgY2hhciByczYwMDBfaGFyZF9yZWdub19ucmVnc1tOVU1fTUFD SElORV9NT0RFU11bRklSU1RfUFNFVURPX1JFR0lTVEVSXTsKKysKKyAvKiBCdWlsdCBpbiB0eXBl cy4gICovCisgCisgdHJlZSByczYwMDBfYnVpbHRpbl90eXBlc1tSUzYwMDBfQlRJX01BWF07CitA QCAtMjcwLDcgKzI3NSw2IEBAIHN0cnVjdCB7CisgICBib29sIGFsdGl2ZWNfYWJpOwkJLyogVHJ1 ZSBpZiAtbWFiaT1hbHRpdmVjL25vLWFsdGl2ZWMgdXNlZC4gICovCisgICBib29sIHNwZTsJCQkv KiBUcnVlIGlmIC1tc3BlPSB3YXMgdXNlZC4gICovCisgICBib29sIGZsb2F0X2dwcnM7CQkvKiBU cnVlIGlmIC1tZmxvYXQtZ3Bycz0gd2FzIHVzZWQuICAqLworLSAgYm9vbCBpc2VsOwkJCS8qIFRy dWUgaWYgLW1pc2VsIHdhcyB1c2VkLiAqLworICAgYm9vbCBsb25nX2RvdWJsZTsJICAgICAgICAv KiBUcnVlIGlmIC1tbG9uZy1kb3VibGUtIHdhcyB1c2VkLiAgKi8KKyAgIGJvb2wgaWVlZTsJCQkv KiBUcnVlIGlmIC1tYWJpPWllZWUvaWJtbG9uZ2RvdWJsZSB1c2VkLiAgKi8KKyAgIGJvb2wgdnJz YXZlOwkJCS8qIFRydWUgaWYgLW12cnNhdmUgd2FzIHVzZWQuICAqLworQEAgLTI4Niw2ICsyOTAs MTggQEAgc3RydWN0IGJ1aWx0aW5fZGVzY3JpcHRpb24KKyAgIGNvbnN0IGNoYXIgKmNvbnN0IG5h bWU7CisgICBjb25zdCBlbnVtIHJzNjAwMF9idWlsdGlucyBjb2RlOworIH07CisrCisrLyogRGVz Y3JpYmUgdGhlIHZlY3RvciB1bml0IHVzZWQgZm9yIG1vZGVzLiAgKi8KKytlbnVtIHJzNjAwMF92 ZWN0b3IgcnM2MDAwX3ZlY3Rvcl91bml0W05VTV9NQUNISU5FX01PREVTXTsKKytlbnVtIHJzNjAw MF92ZWN0b3IgcnM2MDAwX3ZlY3Rvcl9tZW1bTlVNX01BQ0hJTkVfTU9ERVNdOworK2VudW0gcmVn X2NsYXNzIHJzNjAwMF92ZWN0b3JfcmVnX2NsYXNzW05VTV9NQUNISU5FX01PREVTXTsKKysKKysv KiBEZXNjcmliZSB0aGUgYWxpZ25tZW50IG9mIGEgdmVjdG9yLiAgKi8KKytpbnQgcnM2MDAwX3Zl Y3Rvcl9hbGlnbltOVU1fTUFDSElORV9NT0RFU107CisrCisrLyogRGVzY3JpYmUgdGhlIHJlZ2lz dGVyIGNsYXNzZXMgdXNlZCBieSBWU1ggaW5zdHJ1Y3Rpb25zLiAgKi8KKytlbnVtIHJlZ19jbGFz cyByczYwMDBfdnN4X3JlZ19jbGFzcyA9IE5PX1JFR1M7CisrCisgDAorIC8qIFRhcmdldCBjcHUg Y29zdHMuICAqLworIAorQEAgLTc0OSw2ICs3NjUsMjUgQEAgc3RydWN0IHByb2Nlc3Nvcl9jb3N0 cyBwb3dlcjZfY29zdCA9IHsKKyAgIDE2LAkJCS8qIHByZWZldGNoIHN0cmVhbXMgKi8KKyB9Owor IAorKy8qIEluc3RydWN0aW9uIGNvc3RzIG9uIFBPV0VSNyBwcm9jZXNzb3JzLiAgKi8KKytzdGF0 aWMgY29uc3QKKytzdHJ1Y3QgcHJvY2Vzc29yX2Nvc3RzIHBvd2VyN19jb3N0ID0geworKyAgQ09T VFNfTl9JTlNOUyAoMiksCS8qIG11bHNpICovCisrICBDT1NUU19OX0lOU05TICgyKSwJLyogbXVs c2lfY29uc3QgKi8KKysgIENPU1RTX05fSU5TTlMgKDIpLAkvKiBtdWxzaV9jb25zdDkgKi8KKysg IENPU1RTX05fSU5TTlMgKDIpLAkvKiBtdWxkaSAqLworKyAgQ09TVFNfTl9JTlNOUyAoMTgpLAkv KiBkaXZzaSAqLworKyAgQ09TVFNfTl9JTlNOUyAoMzQpLAkvKiBkaXZkaSAqLworKyAgQ09TVFNf Tl9JTlNOUyAoMyksCS8qIGZwICovCisrICBDT1NUU19OX0lOU05TICgzKSwJLyogZG11bCAqLwor KyAgQ09TVFNfTl9JTlNOUyAoMTMpLAkvKiBzZGl2ICovCisrICBDT1NUU19OX0lOU05TICgxNiks CS8qIGRkaXYgKi8KKysgIDEyOCwJCQkvKiBjYWNoZSBsaW5lIHNpemUgKi8KKysgIDMyLAkJCS8q IGwxIGNhY2hlICovCisrICAyNTYsCQkJLyogbDIgY2FjaGUgKi8KKysgIDEyLAkJCS8qIHByZWZl dGNoIHN0cmVhbXMgKi8KKyt9OworKworIAwKKyBzdGF0aWMgYm9vbCByczYwMDBfZnVuY3Rpb25f b2tfZm9yX3NpYmNhbGwgKHRyZWUsIHRyZWUpOworIHN0YXRpYyBjb25zdCBjaGFyICpyczYwMDBf aW52YWxpZF93aXRoaW5fZG9sb29wIChjb25zdF9ydHgpOworQEAgLTk2MywxMiArOTk4LDEwIEBA IHN0YXRpYyB0cmVlIHJzNjAwMF9naW1wbGlmeV92YV9hcmcgKHRyZWUKKyBzdGF0aWMgYm9vbCBy czYwMDBfbXVzdF9wYXNzX2luX3N0YWNrIChlbnVtIG1hY2hpbmVfbW9kZSwgY29uc3RfdHJlZSk7 Cisgc3RhdGljIGJvb2wgcnM2MDAwX3NjYWxhcl9tb2RlX3N1cHBvcnRlZF9wIChlbnVtIG1hY2hp bmVfbW9kZSk7Cisgc3RhdGljIGJvb2wgcnM2MDAwX3ZlY3Rvcl9tb2RlX3N1cHBvcnRlZF9wIChl bnVtIG1hY2hpbmVfbW9kZSk7Cistc3RhdGljIGludCBnZXRfdmVjX2NtcF9pbnNuIChlbnVtIHJ0 eF9jb2RlLCBlbnVtIG1hY2hpbmVfbW9kZSwKKy0JCQkgICAgIGVudW0gbWFjaGluZV9tb2RlKTsK KytzdGF0aWMgcnR4IHJzNjAwMF9lbWl0X3ZlY3Rvcl9jb21wYXJlX3ZzeCAoZW51bSBydHhfY29k ZSwgcnR4LCBydHgsIHJ0eCk7Cisrc3RhdGljIHJ0eCByczYwMDBfZW1pdF92ZWN0b3JfY29tcGFy ZV9hbHRpdmVjIChlbnVtIHJ0eF9jb2RlLCBydHgsIHJ0eCwgcnR4KTsKKyBzdGF0aWMgcnR4IHJz NjAwMF9lbWl0X3ZlY3Rvcl9jb21wYXJlIChlbnVtIHJ0eF9jb2RlLCBydHgsIHJ0eCwKKyAJCQkJ ICAgICAgIGVudW0gbWFjaGluZV9tb2RlKTsKKy1zdGF0aWMgaW50IGdldF92c2VsX2luc24gKGVu dW0gbWFjaGluZV9tb2RlKTsKKy1zdGF0aWMgdm9pZCByczYwMDBfZW1pdF92ZWN0b3Jfc2VsZWN0 IChydHgsIHJ0eCwgcnR4LCBydHgpOworIHN0YXRpYyB0cmVlIHJzNjAwMF9zdGFja19wcm90ZWN0 X2ZhaWwgKHZvaWQpOworIAorIGNvbnN0IGludCBJTlNOX05PVF9BVkFJTEFCTEUgPSAtMTsKK0BA IC0xMDQ1LDYgKzEwNzgsOSBAQCBzdGF0aWMgY29uc3QgY2hhciBhbHRfcmVnX25hbWVzW11bOF0g PQorICNlbmRpZgorICNpZm5kZWYgVEFSR0VUX1BST0ZJTEVfS0VSTkVMCisgI2RlZmluZSBUQVJH RVRfUFJPRklMRV9LRVJORUwgMAorKyNkZWZpbmUgU0VUX1BST0ZJTEVfS0VSTkVMKE4pCisrI2Vs c2UKKysjZGVmaW5lIFNFVF9QUk9GSUxFX0tFUk5FTChOKSBUQVJHRVRfUFJPRklMRV9LRVJORUwg PSAoTikKKyAjZW5kaWYKKyAKKyAvKiBUaGUgVlJTQVZFIGJpdG1hc2sgcHV0cyBiaXQgJXYwIGFz IHRoZSBtb3N0IHNpZ25pZmljYW50IGJpdC4gICovCitAQCAtMTI5OSwyOCArMTMzNSw5NiBAQCBz dGF0aWMgY29uc3QgY2hhciBhbHRfcmVnX25hbWVzW11bOF0gPQorIAorIHN0cnVjdCBnY2NfdGFy Z2V0IHRhcmdldG0gPSBUQVJHRVRfSU5JVElBTElaRVI7CisgDAorKy8qIFJldHVybiBudW1iZXIg b2YgY29uc2VjdXRpdmUgaGFyZCByZWdzIG5lZWRlZCBzdGFydGluZyBhdCByZWcgUkVHTk8KKysg ICB0byBob2xkIHNvbWV0aGluZyBvZiBtb2RlIE1PREUuCisrICAgVGhpcyBpcyBvcmRpbmFyaWx5 IHRoZSBsZW5ndGggaW4gd29yZHMgb2YgYSB2YWx1ZSBvZiBtb2RlIE1PREUKKysgICBidXQgY2Fu IGJlIGxlc3MgZm9yIGNlcnRhaW4gbW9kZXMgaW4gc3BlY2lhbCBsb25nIHJlZ2lzdGVycy4KKysK KysgICBGb3IgdGhlIFNQRSwgR1BScyBhcmUgNjQgYml0cyBidXQgb25seSAzMiBiaXRzIGFyZSB2 aXNpYmxlIGluCisrICAgc2NhbGFyIGluc3RydWN0aW9ucy4gIFRoZSB1cHBlciAzMiBiaXRzIGFy ZSBvbmx5IGF2YWlsYWJsZSB0byB0aGUKKysgICBTSU1EIGluc3RydWN0aW9ucy4KKysKKysgICBQ T1dFUiBhbmQgUG93ZXJQQyBHUFJzIGhvbGQgMzIgYml0cyB3b3J0aDsKKysgICBQb3dlclBDNjQg R1BScyBhbmQgRlBScyBwb2ludCByZWdpc3RlciBob2xkcyA2NCBiaXRzIHdvcnRoLiAgKi8KKysK KytzdGF0aWMgaW50CisrcnM2MDAwX2hhcmRfcmVnbm9fbnJlZ3NfaW50ZXJuYWwgKGludCByZWdu bywgZW51bSBtYWNoaW5lX21vZGUgbW9kZSkKKyt7CisrICB1bnNpZ25lZCBIT1NUX1dJREVfSU5U IHJlZ19zaXplOworKworKyAgaWYgKEZQX1JFR05PX1AgKHJlZ25vKSkKKysgICAgcmVnX3NpemUg PSAoVkVDVE9SX1VOSVRfVlNYX1AgKG1vZGUpCisrCQk/IFVOSVRTX1BFUl9WU1hfV09SRAorKwkJ OiBVTklUU19QRVJfRlBfV09SRCk7CisrCisrICBlbHNlIGlmIChTUEVfU0lNRF9SRUdOT19QIChy ZWdubykgJiYgVEFSR0VUX1NQRSAmJiBTUEVfVkVDVE9SX01PREUgKG1vZGUpKQorKyAgICByZWdf c2l6ZSA9IFVOSVRTX1BFUl9TUEVfV09SRDsKKysKKysgIGVsc2UgaWYgKEFMVElWRUNfUkVHTk9f UCAocmVnbm8pKQorKyAgICByZWdfc2l6ZSA9IFVOSVRTX1BFUl9BTFRJVkVDX1dPUkQ7CisrCisr ICAvKiBUaGUgdmFsdWUgcmV0dXJuZWQgZm9yIFNDbW9kZSBpbiB0aGUgRTUwMCBkb3VibGUgY2Fz ZSBpcyAyIGZvcgorKyAgICAgQUJJIGNvbXBhdGliaWxpdHk7IHN0b3JpbmcgYW4gU0Ntb2RlIHZh bHVlIGluIGEgc2luZ2xlIHJlZ2lzdGVyCisrICAgICB3b3VsZCByZXF1aXJlIGZ1bmN0aW9uX2Fy ZyBhbmQgcnM2MDAwX3NwZV9mdW5jdGlvbl9hcmcgdG8gaGFuZGxlCisrICAgICBTQ21vZGUgc28g YXMgdG8gcGFzcyB0aGUgdmFsdWUgY29ycmVjdGx5IGluIGEgcGFpciBvZgorKyAgICAgcmVnaXN0 ZXJzLiAgKi8KKysgIGVsc2UgaWYgKFRBUkdFVF9FNTAwX0RPVUJMRSAmJiBGTE9BVF9NT0RFX1Ag KG1vZGUpICYmIG1vZGUgIT0gU0Ntb2RlCisrCSAgICYmICFERUNJTUFMX0ZMT0FUX01PREVfUCAo bW9kZSkpCisrICAgIHJlZ19zaXplID0gVU5JVFNfUEVSX0ZQX1dPUkQ7CisrCisrICBlbHNlCisr ICAgIHJlZ19zaXplID0gVU5JVFNfUEVSX1dPUkQ7CisrCisrICByZXR1cm4gKEdFVF9NT0RFX1NJ WkUgKG1vZGUpICsgcmVnX3NpemUgLSAxKSAvIHJlZ19zaXplOworK30KKyAKKyAvKiBWYWx1ZSBp cyAxIGlmIGhhcmQgcmVnaXN0ZXIgUkVHTk8gY2FuIGhvbGQgYSB2YWx1ZSBvZiBtYWNoaW5lLW1v ZGUKKyAgICBNT0RFLiAgKi8KKyBzdGF0aWMgaW50CisgcnM2MDAwX2hhcmRfcmVnbm9fbW9kZV9v ayAoaW50IHJlZ25vLCBlbnVtIG1hY2hpbmVfbW9kZSBtb2RlKQorIHsKKysgIGludCBsYXN0X3Jl Z25vID0gcmVnbm8gKyByczYwMDBfaGFyZF9yZWdub19ucmVnc1ttb2RlXVtyZWdub10gLSAxOwor KworKyAgLyogVlNYIHJlZ2lzdGVycyB0aGF0IG92ZXJsYXAgdGhlIEZQUiByZWdpc3RlcnMgYXJl IGxhcmdlciB0aGFuIGZvciBub24tVlNYCisrICAgICBpbXBsZW1lbnRhdGlvbnMuICBEb24ndCBh bGxvdyBhbiBpdGVtIHRvIGJlIHNwbGl0IGJldHdlZW4gYSBGUCByZWdpc3RlcgorKyAgICAgYW5k IGFuIEFsdGl2ZWMgcmVnaXN0ZXIuICAqLworKyAgaWYgKFZFQ1RPUl9VTklUX1ZTWF9QIChtb2Rl KSB8fCBWRUNUT1JfTUVNX1ZTWF9QIChtb2RlKSkKKysgICAgeworKyAgICAgIGVudW0gcmVnX2Ns YXNzIHJjbGFzcyA9IHJzNjAwMF92ZWN0b3JfcmVnX2NsYXNzW21vZGVdOworKyAgICAgIGlmIChG UF9SRUdOT19QIChyZWdubykpCisrCXJldHVybiAoKHJjbGFzcyA9PSBGTE9BVF9SRUdTIHx8IHJj bGFzcyA9PSBWU1hfUkVHUykKKysJCSYmIEZQX1JFR05PX1AgKGxhc3RfcmVnbm8pKTsKKysKKysg ICAgICBpZiAoQUxUSVZFQ19SRUdOT19QIChyZWdubykpCisrCXJldHVybiAoKHJjbGFzcyA9PSBB TFRJVkVDX1JFR1MgfHwgcmNsYXNzID09IFZTWF9SRUdTKQorKwkJJiYgQUxUSVZFQ19SRUdOT19Q IChsYXN0X3JlZ25vKSk7CisrICAgIH0KKysKKyAgIC8qIFRoZSBHUFJzIGNhbiBob2xkIGFueSBt b2RlLCBidXQgdmFsdWVzIGJpZ2dlciB0aGFuIG9uZSByZWdpc3RlcgorICAgICAgY2Fubm90IGdv IHBhc3QgUjMxLiAgKi8KKyAgIGlmIChJTlRfUkVHTk9fUCAocmVnbm8pKQorLSAgICByZXR1cm4g SU5UX1JFR05PX1AgKHJlZ25vICsgSEFSRF9SRUdOT19OUkVHUyAocmVnbm8sIG1vZGUpIC0gMSk7 CisrICAgIHJldHVybiBJTlRfUkVHTk9fUCAobGFzdF9yZWdubyk7CisgCistICAvKiBUaGUgZmxv YXQgcmVnaXN0ZXJzIGNhbiBvbmx5IGhvbGQgZmxvYXRpbmcgbW9kZXMgYW5kIERJbW9kZS4KKy0g ICAgIFRoaXMgZXhjbHVkZXMgdGhlIDMyLWJpdCBkZWNpbWFsIGZsb2F0IG1vZGUgZm9yIG5vdy4g ICovCisrICAvKiBUaGUgZmxvYXQgcmVnaXN0ZXJzIChleGNlcHQgZm9yIFZTWCB2ZWN0b3IgbW9k ZXMpIGNhbiBvbmx5IGhvbGQgZmxvYXRpbmcKKysgICAgIG1vZGVzIGFuZCBESW1vZGUuICBUaGlz IGV4Y2x1ZGVzIHRoZSAzMi1iaXQgZGVjaW1hbCBmbG9hdCBtb2RlIGZvcgorKyAgICAgbm93LiAg Ki8KKyAgIGlmIChGUF9SRUdOT19QIChyZWdubykpCistICAgIHJldHVybgorLSAgICAgICgoU0NB TEFSX0ZMT0FUX01PREVfUCAobW9kZSkKKy0gICAgICAgJiYgKG1vZGUgIT0gVERtb2RlIHx8IChy ZWdubyAlIDIpID09IDApCistICAgICAgICYmIEZQX1JFR05PX1AgKHJlZ25vICsgSEFSRF9SRUdO T19OUkVHUyAocmVnbm8sIG1vZGUpIC0gMSkpCistICAgICAgfHwgKEdFVF9NT0RFX0NMQVNTICht b2RlKSA9PSBNT0RFX0lOVAorKyAgICB7CisrICAgICAgaWYgKFNDQUxBUl9GTE9BVF9NT0RFX1Ag KG1vZGUpCisrCSAgJiYgKG1vZGUgIT0gVERtb2RlIHx8IChyZWdubyAlIDIpID09IDApCisrCSAg JiYgRlBfUkVHTk9fUCAobGFzdF9yZWdubykpCisrCXJldHVybiAxOworKworKyAgICAgIGlmIChH RVRfTU9ERV9DTEFTUyAobW9kZSkgPT0gTU9ERV9JTlQKKyAJICAmJiBHRVRfTU9ERV9TSVpFICht b2RlKSA9PSBVTklUU19QRVJfRlBfV09SRCkKKy0gICAgICB8fCAoUEFJUkVEX1NJTURfUkVHTk9f UCAocmVnbm8pICYmIFRBUkdFVF9QQUlSRURfRkxPQVQKKy0gICAgICAgICAgICYmIFBBSVJFRF9W RUNUT1JfTU9ERSAobW9kZSkpKTsKKysJcmV0dXJuIDE7CisrCisrICAgICAgaWYgKFBBSVJFRF9T SU1EX1JFR05PX1AgKHJlZ25vKSAmJiBUQVJHRVRfUEFJUkVEX0ZMT0FUCisrCSAgJiYgUEFJUkVE X1ZFQ1RPUl9NT0RFIChtb2RlKSkKKysJcmV0dXJuIDE7CisrCisrICAgICAgcmV0dXJuIDA7Cisr ICAgIH0KKyAKKyAgIC8qIFRoZSBDUiByZWdpc3RlciBjYW4gb25seSBob2xkIENDIG1vZGVzLiAg Ki8KKyAgIGlmIChDUl9SRUdOT19QIChyZWdubykpCitAQCAtMTMzMSwyOCArMTQzNSwzMTIgQEAg cnM2MDAwX2hhcmRfcmVnbm9fbW9kZV9vayAoaW50IHJlZ25vLCBlbgorIAorICAgLyogQWx0aVZl YyBvbmx5IGluIEFsZHlWZWMgcmVnaXN0ZXJzLiAgKi8KKyAgIGlmIChBTFRJVkVDX1JFR05PX1Ag KHJlZ25vKSkKKy0gICAgcmV0dXJuIEFMVElWRUNfVkVDVE9SX01PREUgKG1vZGUpOworKyAgICBy ZXR1cm4gVkVDVE9SX1VOSVRfQUxUSVZFQ19PUl9WU1hfUCAobW9kZSk7CisgCisgICAvKiAuLi5i dXQgR1BScyBjYW4gaG9sZCBTSU1EIGRhdGEgb24gdGhlIFNQRSBpbiBvbmUgcmVnaXN0ZXIuICAq LworICAgaWYgKFNQRV9TSU1EX1JFR05PX1AgKHJlZ25vKSAmJiBUQVJHRVRfU1BFICYmIFNQRV9W RUNUT1JfTU9ERSAobW9kZSkpCisgICAgIHJldHVybiAxOworIAorLSAgLyogV2UgY2Fubm90IHB1 dCBUSW1vZGUgYW55d2hlcmUgZXhjZXB0IGdlbmVyYWwgcmVnaXN0ZXIgYW5kIGl0IG11c3QgYmUK Ky0gICAgIGFibGUgdG8gZml0IHdpdGhpbiB0aGUgcmVnaXN0ZXIgc2V0LiAgKi8KKysgIC8qIERv bid0IGFsbG93IGFueXRoaW5nIGJ1dCB3b3JkIHNpemVkIGludGVnZXJzIChha2EgcG9pbnRlcnMp IGluIENUUi9MUi4gIFlvdQorKyAgICAgcmVhbGx5IGRvbid0IHdhbnQgdG8gc3BpbGwgeW91ciBm bG9hdGluZyBwb2ludCB2YWx1ZXMgdG8gdGhvc2UKKysgICAgIHJlZ2lzdGVycy4gIEFsc28gZG8g aXQgZm9yIHRoZSBvbGQgTVEgcmVnaXN0ZXIgaW4gdGhlIHBvd2VyLiAgKi8KKysgIGlmIChyZWdu byA9PSBDVFJfUkVHTk8gfHwgcmVnbm8gPT0gTFJfUkVHTk8gfHwgcmVnbm8gPT0gTVFfUkVHTk8p CisrICAgIHJldHVybiAoR0VUX01PREVfQ0xBU1MgKG1vZGUpID09IE1PREVfSU5UCisrCSAgICAm JiBHRVRfTU9ERV9TSVpFIChtb2RlKSA8PSBVTklUU19QRVJfV09SRCk7CisrCisrICAvKiBUaGUg VlJTQVZFL1ZTQ1IgcmVnaXN0ZXJzIGFyZSAzMi1iaXRzICh0aGV5IGFyZSBmaXhlZCwgYnV0IGFk ZCB0aGlzIGZvcgorKyAgICAgY29tcGxldGVuZXNzKS4gICovCisrICBpZiAocmVnbm8gPT0gVlJT QVZFX1JFR05PIHx8IHJlZ25vID09IFZTQ1JfUkVHTk8pCisrICAgIHJldHVybiAobW9kZSA9PSBT SW1vZGUpOworKworKyAgLyogV2UgY2Fubm90IHB1dCBUSW1vZGUgYW55d2hlcmUgZXhjZXB0IGdl bmVyYWwgcmVnaXN0ZXIgYW5kIGl0IG11c3QgYmUgYWJsZQorKyAgICAgdG8gZml0IHdpdGhpbiB0 aGUgcmVnaXN0ZXIgc2V0LiAgSW4gdGhlIGZ1dHVyZSwgYWxsb3cgVEltb2RlIGluIHRoZQorKyAg ICAgQWx0aXZlYyBvciBWU1ggcmVnaXN0ZXJzLiAgKi8KKyAKKyAgIHJldHVybiBHRVRfTU9ERV9T SVpFIChtb2RlKSA8PSBVTklUU19QRVJfV09SRDsKKyB9CisgCistLyogSW5pdGlhbGl6ZSByczYw MDBfaGFyZF9yZWdub19tb2RlX29rX3AgdGFibGUuICAqLworKy8qIFByaW50IGludGVyZXN0aW5n IGZhY3RzIGFib3V0IHJlZ2lzdGVycy4gICovCisgc3RhdGljIHZvaWQKKy1yczYwMDBfaW5pdF9o YXJkX3JlZ25vX21vZGVfb2sgKHZvaWQpCisrcnM2MDAwX2RlYnVnX3JlZ19wcmludCAoaW50IGZp cnN0X3JlZ25vLCBpbnQgbGFzdF9yZWdubywgY29uc3QgY2hhciAqcmVnX25hbWUpCisgeworICAg aW50IHIsIG07CisgCisrICBmb3IgKHIgPSBmaXJzdF9yZWdubzsgciA8PSBsYXN0X3JlZ25vOyAr K3IpCisrICAgIHsKKysgICAgICBjb25zdCBjaGFyICpjb21tYSA9ICIiOworKyAgICAgIGludCBs ZW47CisrCisrICAgICAgaWYgKGZpcnN0X3JlZ25vID09IGxhc3RfcmVnbm8pCisrCWZwcmludGYg KHN0ZGVyciwgIiVzOlx0IiwgcmVnX25hbWUpOworKyAgICAgIGVsc2UKKysJZnByaW50ZiAoc3Rk ZXJyLCAiJXMlZDpcdCIsIHJlZ19uYW1lLCByIC0gZmlyc3RfcmVnbm8pOworKworKyAgICAgIGxl biA9IDg7CisrICAgICAgZm9yIChtID0gMDsgbSA8IE5VTV9NQUNISU5FX01PREVTOyArK20pCisr CWlmIChyczYwMDBfaGFyZF9yZWdub19tb2RlX29rX3BbbV1bcl0gJiYgcnM2MDAwX2hhcmRfcmVn bm9fbnJlZ3NbbV1bcl0pCisrCSAgeworKwkgICAgaWYgKGxlbiA+IDcwKQorKwkgICAgICB7Cisr CQlmcHJpbnRmIChzdGRlcnIsICIsXG5cdCIpOworKwkJbGVuID0gODsKKysJCWNvbW1hID0gIiI7 CisrCSAgICAgIH0KKysKKysJICAgIGlmIChyczYwMDBfaGFyZF9yZWdub19ucmVnc1ttXVtyXSA+ IDEpCisrCSAgICAgIGxlbiArPSBmcHJpbnRmIChzdGRlcnIsICIlcyVzLyVkIiwgY29tbWEsIEdF VF9NT0RFX05BTUUgKG0pLAorKwkJCSAgICAgcnM2MDAwX2hhcmRfcmVnbm9fbnJlZ3NbbV1bcl0p OworKwkgICAgZWxzZQorKwkgICAgICBsZW4gKz0gZnByaW50ZiAoc3RkZXJyLCAiJXMlcyIsIGNv bW1hLCBHRVRfTU9ERV9OQU1FIChtKSk7CisrCisrCSAgICBjb21tYSA9ICIsICI7CisrCSAgfQor KworKyAgICAgIGlmIChjYWxsX3VzZWRfcmVnc1tyXSkKKysJeworKwkgIGlmIChsZW4gPiA3MCkK KysJICAgIHsKKysJICAgICAgZnByaW50ZiAoc3RkZXJyLCAiLFxuXHQiKTsKKysJICAgICAgbGVu ID0gODsKKysJICAgICAgY29tbWEgPSAiIjsKKysJICAgIH0KKysKKysJICBsZW4gKz0gZnByaW50 ZiAoc3RkZXJyLCAiJXMlcyIsIGNvbW1hLCAiY2FsbC11c2VkIik7CisrCSAgY29tbWEgPSAiLCAi OworKwl9CisrCisrICAgICAgaWYgKGZpeGVkX3JlZ3Nbcl0pCisrCXsKKysJICBpZiAobGVuID4g NzApCisrCSAgICB7CisrCSAgICAgIGZwcmludGYgKHN0ZGVyciwgIixcblx0Iik7CisrCSAgICAg IGxlbiA9IDg7CisrCSAgICAgIGNvbW1hID0gIiI7CisrCSAgICB9CisrCisrCSAgbGVuICs9IGZw cmludGYgKHN0ZGVyciwgIiVzJXMiLCBjb21tYSwgImZpeGVkIik7CisrCSAgY29tbWEgPSAiLCAi OworKwl9CisrCisrICAgICAgaWYgKGxlbiA+IDcwKQorKwl7CisrCSAgZnByaW50ZiAoc3RkZXJy LCAiLFxuXHQiKTsKKysJICBjb21tYSA9ICIiOworKwl9CisrCisrICAgICAgZnByaW50ZiAoc3Rk ZXJyLCAiJXNyZWdubyA9ICVkXG4iLCBjb21tYSwgcik7CisrICAgIH0KKyt9CisrCisrLyogTWFw IGVudW0gcnM2MDAwX3ZlY3RvciB0byBzdHJpbmcuICAqLworK3N0YXRpYyBjb25zdCBjaGFyICoK KytyczYwMDBfZGVidWdfdmVjdG9yX3VuaXRbXSA9IHsKKysgICJub25lIiwKKysgICJhbHRpdmVj IiwKKysgICJ2c3giLAorKyAgInBhaXJlZCIsCisrICAic3BlIiwKKysgICJvdGhlciIKKyt9Owor KworKy8qIEluaXRpYWxpemUgdGhlIHZhcmlvdXMgZ2xvYmFsIHRhYmxlcyB0aGF0IGFyZSBiYXNl ZCBvbiByZWdpc3RlciBzaXplLiAgKi8KKytzdGF0aWMgdm9pZAorK3JzNjAwMF9pbml0X2hhcmRf cmVnbm9fbW9kZV9vayAodm9pZCkKKyt7CisrICBpbnQgciwgbSwgYzsKKysgIGVudW0gcmVnX2Ns YXNzIHZzeF9yYyA9IChUQVJHRVRfQUxUSVZFQyA/IFZTWF9SRUdTIDogRkxPQVRfUkVHUyk7Cisr ICBib29sIGZsb2F0X3AgPSAoVEFSR0VUX0hBUkRfRkxPQVQgJiYgVEFSR0VUX0ZQUlMpOworKwor KyAgLyogUHJlY2FsY3VsYXRlIHZlY3RvciBpbmZvcm1hdGlvbiwgdGhpcyBtdXN0IGJlIHNldCB1 cCBiZWZvcmUgdGhlCisrICAgICByczYwMDBfaGFyZF9yZWdub19ucmVnc19pbnRlcm5hbCBiZWxv dy4gICovCisrICBmb3IgKG0gPSAwOyBtIDwgTlVNX01BQ0hJTkVfTU9ERVM7ICsrbSkKKysgICAg eworKyAgICAgIHJzNjAwMF92ZWN0b3JfdW5pdFttXSA9IHJzNjAwMF92ZWN0b3JfbWVtW21dID0g VkVDVE9SX05PTkU7CisrICAgICAgcnM2MDAwX3ZlY3Rvcl9yZWdfY2xhc3NbbV0gPSBOT19SRUdT OworKyAgICB9CisrCisrICAvKiBUT0RPLCBhZGQgVEkvVjJESSBtb2RlIGZvciBtb3ZpbmcgZGF0 YSBpZiBBbHRpdmVjIG9yIFZTWC4gICovCisrCisrICAvKiBWMkRGIG1vZGUsIFZTWCBvbmx5LiAg Ki8KKysgIGlmIChmbG9hdF9wICYmIFRBUkdFVF9WU1ggJiYgVEFSR0VUX1ZTWF9WRUNUT1JfRE9V QkxFKQorKyAgICB7CisrICAgICAgcnM2MDAwX3ZlY3Rvcl91bml0W1YyREZtb2RlXSA9IFZFQ1RP Ul9WU1g7CisrICAgICAgcnM2MDAwX3ZlY3Rvcl9tZW1bVjJERm1vZGVdID0gVkVDVE9SX1ZTWDsK KysgICAgICByczYwMDBfdmVjdG9yX2FsaWduW1YyREZtb2RlXSA9IDY0OworKyAgICB9CisrCisr ICAvKiBWNFNGIG1vZGUsIGVpdGhlciBWU1ggb3IgQWx0aXZlYy4gICovCisrICBpZiAoZmxvYXRf cCAmJiBUQVJHRVRfVlNYICYmIFRBUkdFVF9WU1hfVkVDVE9SX0ZMT0FUKQorKyAgICB7CisrICAg ICAgcnM2MDAwX3ZlY3Rvcl91bml0W1Y0U0Ztb2RlXSA9IFZFQ1RPUl9WU1g7CisrICAgICAgaWYg KFRBUkdFVF9WU1hfVkVDVE9SX01FTU9SWSB8fCAhVEFSR0VUX0FMVElWRUMpCisrCXsKKysJICBy czYwMDBfdmVjdG9yX2FsaWduW1Y0U0Ztb2RlXSA9IDMyOworKwkgIHJzNjAwMF92ZWN0b3JfbWVt W1Y0U0Ztb2RlXSA9IFZFQ1RPUl9WU1g7CisrCX0gZWxzZSB7CisrCSAgcnM2MDAwX3ZlY3Rvcl9h bGlnbltWNFNGbW9kZV0gPSAxMjg7CisrCSAgcnM2MDAwX3ZlY3Rvcl9tZW1bVjRTRm1vZGVdID0g VkVDVE9SX0FMVElWRUM7CisrICAgICAgfQorKyAgICB9CisrICBlbHNlIGlmIChmbG9hdF9wICYm IFRBUkdFVF9BTFRJVkVDKQorKyAgICB7CisrICAgICAgcnM2MDAwX3ZlY3Rvcl91bml0W1Y0U0Zt b2RlXSA9IFZFQ1RPUl9BTFRJVkVDOworKyAgICAgIHJzNjAwMF92ZWN0b3JfbWVtW1Y0U0Ztb2Rl XSA9IFZFQ1RPUl9BTFRJVkVDOworKyAgICAgIHJzNjAwMF92ZWN0b3JfYWxpZ25bVjRTRm1vZGVd ID0gMTI4OworKyAgICB9CisrCisrICAvKiBWMTZRSW1vZGUsIFY4SEltb2RlLCBWNFNJbW9kZSBh cmUgQWx0aXZlYyBvbmx5LCBidXQgcG9zc2libHkgZG8gVlNYIGxvYWRzCisrICAgICBhbmQgc3Rv cmVzLiAqLworKyAgaWYgKFRBUkdFVF9BTFRJVkVDKQorKyAgICB7CisrICAgICAgcnM2MDAwX3Zl Y3Rvcl91bml0W1Y0U0ltb2RlXSA9IFZFQ1RPUl9BTFRJVkVDOworKyAgICAgIHJzNjAwMF92ZWN0 b3JfdW5pdFtWOEhJbW9kZV0gPSBWRUNUT1JfQUxUSVZFQzsKKysgICAgICByczYwMDBfdmVjdG9y X3VuaXRbVjE2UUltb2RlXSA9IFZFQ1RPUl9BTFRJVkVDOworKworKyAgICAgIHJzNjAwMF92ZWN0 b3JfcmVnX2NsYXNzW1YxNlFJbW9kZV0gPSBBTFRJVkVDX1JFR1M7CisrICAgICAgcnM2MDAwX3Zl Y3Rvcl9yZWdfY2xhc3NbVjhISW1vZGVdID0gQUxUSVZFQ19SRUdTOworKyAgICAgIHJzNjAwMF92 ZWN0b3JfcmVnX2NsYXNzW1Y0U0ltb2RlXSA9IEFMVElWRUNfUkVHUzsKKysKKysgICAgICBpZiAo VEFSR0VUX1ZTWCAmJiBUQVJHRVRfVlNYX1ZFQ1RPUl9NRU1PUlkpCisrCXsKKysJICByczYwMDBf dmVjdG9yX21lbVtWNFNJbW9kZV0gPSBWRUNUT1JfVlNYOworKwkgIHJzNjAwMF92ZWN0b3JfbWVt W1Y4SEltb2RlXSA9IFZFQ1RPUl9WU1g7CisrCSAgcnM2MDAwX3ZlY3Rvcl9tZW1bVjE2UUltb2Rl XSA9IFZFQ1RPUl9WU1g7CisrCSAgcnM2MDAwX3ZlY3Rvcl9hbGlnbltWNFNJbW9kZV0gPSAzMjsK KysJICByczYwMDBfdmVjdG9yX2FsaWduW1Y4SEltb2RlXSA9IDMyOworKwkgIHJzNjAwMF92ZWN0 b3JfYWxpZ25bVjE2UUltb2RlXSA9IDMyOworKwl9CisrICAgICAgZWxzZQorKwl7CisrCSAgcnM2 MDAwX3ZlY3Rvcl9tZW1bVjRTSW1vZGVdID0gVkVDVE9SX0FMVElWRUM7CisrCSAgcnM2MDAwX3Zl Y3Rvcl9tZW1bVjhISW1vZGVdID0gVkVDVE9SX0FMVElWRUM7CisrCSAgcnM2MDAwX3ZlY3Rvcl9t ZW1bVjE2UUltb2RlXSA9IFZFQ1RPUl9BTFRJVkVDOworKwkgIHJzNjAwMF92ZWN0b3JfYWxpZ25b VjRTSW1vZGVdID0gMTI4OworKwkgIHJzNjAwMF92ZWN0b3JfYWxpZ25bVjhISW1vZGVdID0gMTI4 OworKwkgIHJzNjAwMF92ZWN0b3JfYWxpZ25bVjE2UUltb2RlXSA9IDEyODsKKysJfQorKyAgICB9 CisrCisrICAvKiBERm1vZGUsIHNlZSBpZiB3ZSB3YW50IHRvIHVzZSB0aGUgVlNYIHVuaXQuICAq LworKyAgaWYgKGZsb2F0X3AgJiYgVEFSR0VUX1ZTWCAmJiBUQVJHRVRfVlNYX1NDQUxBUl9ET1VC TEUpCisrICAgIHsKKysgICAgICByczYwMDBfdmVjdG9yX3VuaXRbREZtb2RlXSA9IFZFQ1RPUl9W U1g7CisrICAgICAgcnM2MDAwX3ZlY3Rvcl9hbGlnbltERm1vZGVdID0gNjQ7CisrICAgICAgcnM2 MDAwX3ZlY3Rvcl9tZW1bREZtb2RlXQorKwk9IChUQVJHRVRfVlNYX1NDQUxBUl9NRU1PUlkgPyBW RUNUT1JfVlNYIDogVkVDVE9SX05PTkUpOworKyAgICB9CisrCisrICAvKiBUT0RPLCBhZGQgU1BF IGFuZCBwYWlyZWQgZmxvYXRpbmcgcG9pbnQgdmVjdG9yIHN1cHBvcnQuICAqLworKworKyAgLyog U2V0IHRoZSBWU1ggcmVnaXN0ZXIgY2xhc3Nlcy4gICovCisrICByczYwMDBfdmVjdG9yX3JlZ19j bGFzc1tWNFNGbW9kZV0KKysgICAgPSAoKFZFQ1RPUl9VTklUX1ZTWF9QIChWNFNGbW9kZSkgJiYg VkVDVE9SX01FTV9WU1hfUCAoVjRTRm1vZGUpKQorKyAgICAgICA/IHZzeF9yYworKyAgICAgICA6 IChWRUNUT1JfVU5JVF9BTFRJVkVDX09SX1ZTWF9QIChWNFNGbW9kZSkKKysJICA/IEFMVElWRUNf UkVHUworKwkgIDogTk9fUkVHUykpOworKworKyAgcnM2MDAwX3ZlY3Rvcl9yZWdfY2xhc3NbVjJE Rm1vZGVdCisrICAgID0gKFZFQ1RPUl9VTklUX1ZTWF9QIChWMkRGbW9kZSkgPyB2c3hfcmMgOiBO T19SRUdTKTsKKysKKysgIHJzNjAwMF92ZWN0b3JfcmVnX2NsYXNzW0RGbW9kZV0KKysgICAgPSAo KCFmbG9hdF9wIHx8ICFWRUNUT1JfVU5JVF9WU1hfUCAoREZtb2RlKSkKKysgICAgICAgPyBOT19S RUdTCisrICAgICAgIDogKChUQVJHRVRfVlNYX1NDQUxBUl9NRU1PUlkpCisrCSAgPyB2c3hfcmMK KysJICA6IEZMT0FUX1JFR1MpKTsKKysKKysgIHJzNjAwMF92c3hfcmVnX2NsYXNzID0gKGZsb2F0 X3AgJiYgVEFSR0VUX1ZTWCkgPyB2c3hfcmMgOiBOT19SRUdTOworKworKyAgLyogUHJlY2FsY3Vs YXRlIEhBUkRfUkVHTk9fTlJFR1MuICAqLworKyAgZm9yIChyID0gMDsgciA8IEZJUlNUX1BTRVVE T19SRUdJU1RFUjsgKytyKQorKyAgICBmb3IgKG0gPSAwOyBtIDwgTlVNX01BQ0hJTkVfTU9ERVM7 ICsrbSkKKysgICAgICByczYwMDBfaGFyZF9yZWdub19ucmVnc1ttXVtyXSA9IHJzNjAwMF9oYXJk X3JlZ25vX25yZWdzX2ludGVybmFsIChyLCBtKTsKKysKKysgIC8qIFByZWNhbGN1bGF0ZSBIQVJE X1JFR05PX01PREVfT0suICAqLworICAgZm9yIChyID0gMDsgciA8IEZJUlNUX1BTRVVET19SRUdJ U1RFUjsgKytyKQorICAgICBmb3IgKG0gPSAwOyBtIDwgTlVNX01BQ0hJTkVfTU9ERVM7ICsrbSkK KyAgICAgICBpZiAocnM2MDAwX2hhcmRfcmVnbm9fbW9kZV9vayAociwgbSkpCisgCXJzNjAwMF9o YXJkX3JlZ25vX21vZGVfb2tfcFttXVtyXSA9IHRydWU7CisrCisrICAvKiBQcmVjYWxjdWxhdGUg Q0xBU1NTX01BWF9OUkVHUyBzaXplcy4gICovCisrICBmb3IgKGMgPSAwOyBjIDwgTElNX1JFR19D TEFTU0VTOyArK2MpCisrICAgIHsKKysgICAgICBpbnQgcmVnX3NpemU7CisrCisrICAgICAgaWYg KFRBUkdFVF9WU1ggJiYgVlNYX1JFR19DTEFTU19QIChjKSkKKysJcmVnX3NpemUgPSBVTklUU19Q RVJfVlNYX1dPUkQ7CisrCisrICAgICAgZWxzZSBpZiAoYyA9PSBBTFRJVkVDX1JFR1MpCisrCXJl Z19zaXplID0gVU5JVFNfUEVSX0FMVElWRUNfV09SRDsKKysKKysgICAgICBlbHNlIGlmIChjID09 IEZMT0FUX1JFR1MpCisrCXJlZ19zaXplID0gVU5JVFNfUEVSX0ZQX1dPUkQ7CisrCisrICAgICAg ZWxzZQorKwlyZWdfc2l6ZSA9IFVOSVRTX1BFUl9XT1JEOworKworKyAgICAgIGZvciAobSA9IDA7 IG0gPCBOVU1fTUFDSElORV9NT0RFUzsgKyttKQorKwlyczYwMDBfY2xhc3NfbWF4X25yZWdzW21d W2NdCisrCSAgPSAoR0VUX01PREVfU0laRSAobSkgKyByZWdfc2l6ZSAtIDEpIC8gcmVnX3NpemU7 CisrICAgIH0KKysKKysgIGlmIChUQVJHRVRfRTUwMF9ET1VCTEUpCisrICAgIHJzNjAwMF9jbGFz c19tYXhfbnJlZ3NbREZtb2RlXVtHRU5FUkFMX1JFR1NdID0gMTsKKysKKysgIGlmIChUQVJHRVRf REVCVUdfUkVHKQorKyAgICB7CisrICAgICAgY29uc3QgY2hhciAqbmwgPSAoY29uc3QgY2hhciAq KTA7CisrCisrICAgICAgZnByaW50ZiAoc3RkZXJyLCAiUmVnaXN0ZXIgaW5mb3JtYXRpb246IChs YXN0IHZpcnR1YWwgcmVnID0gJWQpXG4iLAorKwkgICAgICAgTEFTVF9WSVJUVUFMX1JFR0lTVEVS KTsKKysgICAgICByczYwMDBfZGVidWdfcmVnX3ByaW50ICgwLCAzMSwgImdyIik7CisrICAgICAg cnM2MDAwX2RlYnVnX3JlZ19wcmludCAoMzIsIDYzLCAiZnAiKTsKKysgICAgICByczYwMDBfZGVi dWdfcmVnX3ByaW50IChGSVJTVF9BTFRJVkVDX1JFR05PLAorKwkJCSAgICAgIExBU1RfQUxUSVZF Q19SRUdOTywKKysJCQkgICAgICAidnMiKTsKKysgICAgICByczYwMDBfZGVidWdfcmVnX3ByaW50 IChMUl9SRUdOTywgTFJfUkVHTk8sICJsciIpOworKyAgICAgIHJzNjAwMF9kZWJ1Z19yZWdfcHJp bnQgKENUUl9SRUdOTywgQ1RSX1JFR05PLCAiY3RyIik7CisrICAgICAgcnM2MDAwX2RlYnVnX3Jl Z19wcmludCAoQ1IwX1JFR05PLCBDUjdfUkVHTk8sICJjciIpOworKyAgICAgIHJzNjAwMF9kZWJ1 Z19yZWdfcHJpbnQgKE1RX1JFR05PLCBNUV9SRUdOTywgIm1xIik7CisrICAgICAgcnM2MDAwX2Rl YnVnX3JlZ19wcmludCAoWEVSX1JFR05PLCBYRVJfUkVHTk8sICJ4ZXIiKTsKKysgICAgICByczYw MDBfZGVidWdfcmVnX3ByaW50IChWUlNBVkVfUkVHTk8sIFZSU0FWRV9SRUdOTywgInZyc2F2ZSIp OworKyAgICAgIHJzNjAwMF9kZWJ1Z19yZWdfcHJpbnQgKFZTQ1JfUkVHTk8sIFZTQ1JfUkVHTk8s ICJ2c2NyIik7CisrICAgICAgcnM2MDAwX2RlYnVnX3JlZ19wcmludCAoU1BFX0FDQ19SRUdOTywg U1BFX0FDQ19SRUdOTywgInNwZV9hIik7CisrICAgICAgcnM2MDAwX2RlYnVnX3JlZ19wcmludCAo U1BFRlNDUl9SRUdOTywgU1BFRlNDUl9SRUdOTywgInNwZV9mIik7CisrCisrICAgICAgZnByaW50 ZiAoc3RkZXJyLAorKwkgICAgICAgIlxuIgorKwkgICAgICAgIlYxNlFJIHJlZ19jbGFzcyA9ICVz XG4iCisrCSAgICAgICAiVjhISSAgcmVnX2NsYXNzID0gJXNcbiIKKysJICAgICAgICJWNFNJICBy ZWdfY2xhc3MgPSAlc1xuIgorKwkgICAgICAgIlYyREkgIHJlZ19jbGFzcyA9ICVzXG4iCisrCSAg ICAgICAiVjRTRiAgcmVnX2NsYXNzID0gJXNcbiIKKysJICAgICAgICJWMkRGICByZWdfY2xhc3Mg PSAlc1xuIgorKwkgICAgICAgIkRGICAgIHJlZ19jbGFzcyA9ICVzXG4iCisrCSAgICAgICAidnN4 ICAgcmVnX2NsYXNzID0gJXNcblxuIiwKKysJICAgICAgIHJlZ19jbGFzc19uYW1lc1tyczYwMDBf dmVjdG9yX3JlZ19jbGFzc1tWMTZRSW1vZGVdXSwKKysJICAgICAgIHJlZ19jbGFzc19uYW1lc1ty czYwMDBfdmVjdG9yX3JlZ19jbGFzc1tWOEhJbW9kZV1dLAorKwkgICAgICAgcmVnX2NsYXNzX25h bWVzW3JzNjAwMF92ZWN0b3JfcmVnX2NsYXNzW1Y0U0ltb2RlXV0sCisrCSAgICAgICByZWdfY2xh c3NfbmFtZXNbcnM2MDAwX3ZlY3Rvcl9yZWdfY2xhc3NbVjJESW1vZGVdXSwKKysJICAgICAgIHJl Z19jbGFzc19uYW1lc1tyczYwMDBfdmVjdG9yX3JlZ19jbGFzc1tWNFNGbW9kZV1dLAorKwkgICAg ICAgcmVnX2NsYXNzX25hbWVzW3JzNjAwMF92ZWN0b3JfcmVnX2NsYXNzW1YyREZtb2RlXV0sCisr CSAgICAgICByZWdfY2xhc3NfbmFtZXNbcnM2MDAwX3ZlY3Rvcl9yZWdfY2xhc3NbREZtb2RlXV0s CisrCSAgICAgICByZWdfY2xhc3NfbmFtZXNbcnM2MDAwX3ZzeF9yZWdfY2xhc3NdKTsKKysKKysg ICAgICBmb3IgKG0gPSAwOyBtIDwgTlVNX01BQ0hJTkVfTU9ERVM7ICsrbSkKKysJaWYgKHJzNjAw MF92ZWN0b3JfdW5pdFttXSB8fCByczYwMDBfdmVjdG9yX21lbVttXSkKKysJICB7CisrCSAgICBu bCA9ICJcbiI7CisrCSAgICBmcHJpbnRmIChzdGRlcnIsICJWZWN0b3IgbW9kZTogJS01cyBhcml0 aG1ldGljOiAlLThzIG1vdmU6ICUtOHNcbiIsCisrCQkgICAgIEdFVF9NT0RFX05BTUUgKG0pLAor KwkJICAgICByczYwMDBfZGVidWdfdmVjdG9yX3VuaXRbIHJzNjAwMF92ZWN0b3JfdW5pdFttXSBd LAorKwkJICAgICByczYwMDBfZGVidWdfdmVjdG9yX3VuaXRbIHJzNjAwMF92ZWN0b3JfbWVtW21d IF0pOworKwkgIH0KKysKKysgICAgICBpZiAobmwpCisrCWZwdXRzIChubCwgc3RkZXJyKTsKKysg ICAgfQorIH0KKyAKKyAjaWYgVEFSR0VUX01BQ0hPCitAQCAtMTQ4MiwxMiArMTg3MCwxNSBAQCBy czYwMDBfb3ZlcnJpZGVfb3B0aW9ucyAoY29uc3QgY2hhciAqZGVmCisgCSB7IjgwMSIsIFBST0NF U1NPUl9NUENDT1JFLCBQT1dFUlBDX0JBU0VfTUFTSyB8IE1BU0tfU09GVF9GTE9BVH0sCisgCSB7 IjgyMSIsIFBST0NFU1NPUl9NUENDT1JFLCBQT1dFUlBDX0JBU0VfTUFTSyB8IE1BU0tfU09GVF9G TE9BVH0sCisgCSB7IjgyMyIsIFBST0NFU1NPUl9NUENDT1JFLCBQT1dFUlBDX0JBU0VfTUFTSyB8 IE1BU0tfU09GVF9GTE9BVH0sCistCSB7Ijg1NDAiLCBQUk9DRVNTT1JfUFBDODU0MCwgUE9XRVJQ Q19CQVNFX01BU0sgfCBNQVNLX1NUUklDVF9BTElHTn0sCisrCSB7Ijg1NDAiLCBQUk9DRVNTT1Jf UFBDODU0MCwgUE9XRVJQQ19CQVNFX01BU0sgfCBNQVNLX1NUUklDVF9BTElHTgorKwkgIHwgTUFT S19JU0VMfSwKKyAJIC8qIDg1NDggaGFzIGEgZHVtbXkgZW50cnkgZm9yIG5vdy4gICovCistCSB7 Ijg1NDgiLCBQUk9DRVNTT1JfUFBDODU0MCwgUE9XRVJQQ19CQVNFX01BU0sgfCBNQVNLX1NUUklD VF9BTElHTn0sCisrCSB7Ijg1NDgiLCBQUk9DRVNTT1JfUFBDODU0MCwgUE9XRVJQQ19CQVNFX01B U0sgfCBNQVNLX1NUUklDVF9BTElHTgorKwkgIHwgTUFTS19JU0VMfSwKKyAJIHsiZTMwMGMyIiwg UFJPQ0VTU09SX1BQQ0UzMDBDMiwgUE9XRVJQQ19CQVNFX01BU0sgfCBNQVNLX1NPRlRfRkxPQVR9 LAorIAkgeyJlMzAwYzMiLCBQUk9DRVNTT1JfUFBDRTMwMEMzLCBQT1dFUlBDX0JBU0VfTUFTS30s CistCSB7ImU1MDBtYyIsIFBST0NFU1NPUl9QUENFNTAwTUMsIFBPV0VSUENfQkFTRV9NQVNLIHwg TUFTS19QUENfR0ZYT1BUfSwKKysJIHsiZTUwMG1jIiwgUFJPQ0VTU09SX1BQQ0U1MDBNQywgUE9X RVJQQ19CQVNFX01BU0sgfCBNQVNLX1BQQ19HRlhPUFQKKysJICB8IE1BU0tfSVNFTH0sCisgCSB7 Ijg2MCIsIFBST0NFU1NPUl9NUENDT1JFLCBQT1dFUlBDX0JBU0VfTUFTSyB8IE1BU0tfU09GVF9G TE9BVH0sCisgCSB7Ijk3MCIsIFBST0NFU1NPUl9QT1dFUjQsCisgCSAgUE9XRVJQQ183NDAwX01B U0sgfCBNQVNLX1BQQ19HUE9QVCB8IE1BU0tfTUZDUkYgfCBNQVNLX1BPV0VSUEM2NH0sCitAQCAt MTUyMCw5ICsxOTExLDEwIEBAIHJzNjAwMF9vdmVycmlkZV9vcHRpb25zIChjb25zdCBjaGFyICpk ZWYKKyAJICBQT1dFUlBDX0JBU0VfTUFTSyB8IE1BU0tfUE9XRVJQQzY0IHwgTUFTS19QUENfR1BP UFQgfCBNQVNLX1BQQ19HRlhPUFQKKyAJICB8IE1BU0tfTUZDUkYgfCBNQVNLX1BPUENOVEIgfCBN QVNLX0ZQUk5EIHwgTUFTS19DTVBCIHwgTUFTS19ERlAKKyAJICB8IE1BU0tfTUZQR1BSfSwKKy0J IHsicG93ZXI3IiwgUFJPQ0VTU09SX1BPV0VSNSwKKysJIHsicG93ZXI3IiwgUFJPQ0VTU09SX1BP V0VSNywKKyAJICBQT1dFUlBDXzc0MDBfTUFTSyB8IE1BU0tfUE9XRVJQQzY0IHwgTUFTS19QUENf R1BPUFQgfCBNQVNLX01GQ1JGCistCSAgfCBNQVNLX1BPUENOVEIgfCBNQVNLX0ZQUk5EIHwgTUFT S19DTVBCIHwgTUFTS19ERlB9LAorKwkgIHwgTUFTS19QT1BDTlRCIHwgTUFTS19GUFJORCB8IE1B U0tfQ01QQiB8IE1BU0tfREZQIHwgTUFTS19QT1BDTlRECisrCSAgfCBNQVNLX1ZTWH0sCS8qIERv bid0IGFkZCBNQVNLX0lTRUwgYnkgZGVmYXVsdCAqLworIAkgeyJwb3dlcnBjIiwgUFJPQ0VTU09S X1BPV0VSUEMsIFBPV0VSUENfQkFTRV9NQVNLfSwKKyAJIHsicG93ZXJwYzY0IiwgUFJPQ0VTU09S X1BPV0VSUEM2NCwKKyAJICBQT1dFUlBDX0JBU0VfTUFTSyB8IE1BU0tfUFBDX0dGWE9QVCB8IE1B U0tfUE9XRVJQQzY0fSwKK0BAIC0xNTQ5LDcgKzE5NDEsOCBAQCByczYwMDBfb3ZlcnJpZGVfb3B0 aW9ucyAoY29uc3QgY2hhciAqZGVmCisgICAgIFBPV0VSUENfTUFTS1MgPSAoUE9XRVJQQ19CQVNF X01BU0sgfCBNQVNLX1BQQ19HUE9QVCB8IE1BU0tfU1RSSUNUX0FMSUdOCisgCQkgICAgIHwgTUFT S19QUENfR0ZYT1BUIHwgTUFTS19QT1dFUlBDNjQgfCBNQVNLX0FMVElWRUMKKyAJCSAgICAgfCBN QVNLX01GQ1JGIHwgTUFTS19QT1BDTlRCIHwgTUFTS19GUFJORCB8IE1BU0tfTVVMSFcKKy0JCSAg ICAgfCBNQVNLX0RMTVpCIHwgTUFTS19DTVBCIHwgTUFTS19NRlBHUFIgfCBNQVNLX0RGUCkKKysJ CSAgICAgfCBNQVNLX0RMTVpCIHwgTUFTS19DTVBCIHwgTUFTS19NRlBHUFIgfCBNQVNLX0RGUAor KwkJICAgICB8IE1BU0tfUE9QQ05URCB8IE1BU0tfVlNYIHwgTUFTS19JU0VMKQorICAgfTsKKyAK KyAgIHNldF9tYXNrcyA9IFBPV0VSX01BU0tTIHwgUE9XRVJQQ19NQVNLUyB8IE1BU0tfU09GVF9G TE9BVDsKK0BAIC0xNTk0LDEwICsxOTg3LDYgQEAgcnM2MDAwX292ZXJyaWRlX29wdGlvbnMgKGNv bnN0IGNoYXIgKmRlZgorIAl9CisgICAgIH0KKyAKKy0gIGlmICgoVEFSR0VUX0U1MDAgfHwgcnM2 MDAwX2NwdSA9PSBQUk9DRVNTT1JfUFBDRTUwME1DKQorLSAgICAgICYmICFyczYwMDBfZXhwbGlj aXRfb3B0aW9ucy5pc2VsKQorLSAgICByczYwMDBfaXNlbCA9IDE7CistCisgICBpZiAocnM2MDAw X2NwdSA9PSBQUk9DRVNTT1JfUFBDRTMwMEMyIHx8IHJzNjAwMF9jcHUgPT0gUFJPQ0VTU09SX1BQ Q0UzMDBDMworICAgICAgIHx8IHJzNjAwMF9jcHUgPT0gUFJPQ0VTU09SX1BQQ0U1MDBNQykKKyAg ICAgeworQEAgLTE2NDIsMTUgKzIwMzEsNDcgQEAgcnM2MDAwX292ZXJyaWRlX29wdGlvbnMgKGNv bnN0IGNoYXIgKmRlZgorIAl9CisgICAgIH0KKyAKKysgIC8qIEFkZCBzb21lIHdhcm5pbmdzIGZv ciBWU1guICBFbmFibGUgLW1hbHRpdmVjIHVubGVzcyB0aGUgdXNlciBleHBsaWNpdGx5CisrICAg ICB1c2VkIC1tbm8tYWx0aXZlYyAgKi8KKysgIGlmIChUQVJHRVRfVlNYKQorKyAgICB7CisrICAg ICAgY29uc3QgY2hhciAqbXNnID0gTlVMTDsKKysgICAgICBpZiAoIVRBUkdFVF9IQVJEX0ZMT0FU IHx8ICFUQVJHRVRfRlBSUworKwkgIHx8ICFUQVJHRVRfU0lOR0xFX0ZMT0FUIHx8ICFUQVJHRVRf RE9VQkxFX0ZMT0FUKQorKwltc2cgPSAiLW12c3ggcmVxdWlyZXMgaGFyZHdhcmUgZmxvYXRpbmcg cG9pbnQiOworKyAgICAgIGVsc2UgaWYgKFRBUkdFVF9QQUlSRURfRkxPQVQpCisrCW1zZyA9ICIt bXZzeCBhbmQgLW1wYWlyZWQgYXJlIGluY29tcGF0aWJsZSI7CisrICAgICAgLyogVGhlIGhhcmR3 YXJlIHdpbGwgYWxsb3cgVlNYIGFuZCBsaXR0bGUgZW5kaWFuLCBidXQgdW50aWwgd2UgbWFrZSBz dXJlCisrCSB0aGluZ3MgbGlrZSB2ZWN0b3Igc2VsZWN0LCBldGMuIHdvcmsgZG9uJ3QgYWxsb3cg VlNYIG9uIGxpdHRsZSBlbmRpYW4KKysJIHN5c3RlbXMgYXQgdGhpcyBwb2ludC4gICovCisrICAg ICAgZWxzZSBpZiAoIUJZVEVTX0JJR19FTkRJQU4pCisrCW1zZyA9ICItbXZzeCB1c2VkIHdpdGgg bGl0dGxlIGVuZGlhbiBjb2RlIjsKKysgICAgICBlbHNlIGlmIChUQVJHRVRfQVZPSURfWEZPUk0g PiAwKQorKwltc2cgPSAiLW12c3ggbmVlZHMgaW5kZXhlZCBhZGRyZXNzaW5nIjsKKysKKysgICAg ICBpZiAobXNnKQorKwl7CisrCSAgd2FybmluZyAoMCwgbXNnKTsKKysJICB0YXJnZXRfZmxhZ3Mg Jj0gTUFTS19WU1g7CisrCX0KKysgICAgICBlbHNlIGlmICghVEFSR0VUX0FMVElWRUMgJiYgKHRh cmdldF9mbGFnc19leHBsaWNpdCAmIE1BU0tfQUxUSVZFQykgPT0gMCkKKysJdGFyZ2V0X2ZsYWdz IHw9IE1BU0tfQUxUSVZFQzsKKysgICAgfQorKworICAgLyogU2V0IGRlYnVnIGZsYWdzICovCisg ICBpZiAocnM2MDAwX2RlYnVnX25hbWUpCisgICAgIHsKKyAgICAgICBpZiAoISBzdHJjbXAgKHJz NjAwMF9kZWJ1Z19uYW1lLCAiYWxsIikpCistCXJzNjAwMF9kZWJ1Z19zdGFjayA9IHJzNjAwMF9k ZWJ1Z19hcmcgPSAxOworKwlyczYwMDBfZGVidWdfc3RhY2sgPSByczYwMDBfZGVidWdfYXJnID0g cnM2MDAwX2RlYnVnX3JlZworKwkgID0gcnM2MDAwX2RlYnVnX2FkZHIgPSAxOworICAgICAgIGVs c2UgaWYgKCEgc3RyY21wIChyczYwMDBfZGVidWdfbmFtZSwgInN0YWNrIikpCisgCXJzNjAwMF9k ZWJ1Z19zdGFjayA9IDE7CisgICAgICAgZWxzZSBpZiAoISBzdHJjbXAgKHJzNjAwMF9kZWJ1Z19u YW1lLCAiYXJnIikpCisgCXJzNjAwMF9kZWJ1Z19hcmcgPSAxOworKyAgICAgIGVsc2UgaWYgKCEg c3RyY21wIChyczYwMDBfZGVidWdfbmFtZSwgInJlZyIpKQorKwlyczYwMDBfZGVidWdfcmVnID0g MTsKKysgICAgICBlbHNlIGlmICghIHN0cmNtcCAocnM2MDAwX2RlYnVnX25hbWUsICJhZGRyIikp CisrCXJzNjAwMF9kZWJ1Z19hZGRyID0gMTsKKyAgICAgICBlbHNlCisgCWVycm9yICgidW5rbm93 biAtbWRlYnVnLSVzIHN3aXRjaCIsIHJzNjAwMF9kZWJ1Z19uYW1lKTsKKyAgICAgfQorQEAgLTE3 NDEsOCArMjE2Miw4IEBAIHJzNjAwMF9vdmVycmlkZV9vcHRpb25zIChjb25zdCBjaGFyICpkZWYK KyAJcnM2MDAwX3NwZSA9IDA7CisgICAgICAgaWYgKCFyczYwMDBfZXhwbGljaXRfb3B0aW9ucy5m bG9hdF9ncHJzKQorIAlyczYwMDBfZmxvYXRfZ3BycyA9IDA7CistICAgICAgaWYgKCFyczYwMDBf ZXhwbGljaXRfb3B0aW9ucy5pc2VsKQorLQlyczYwMDBfaXNlbCA9IDA7CisrICAgICAgaWYgKCEo dGFyZ2V0X2ZsYWdzX2V4cGxpY2l0ICYgTUFTS19JU0VMKSkKKysJdGFyZ2V0X2ZsYWdzICY9IH5N QVNLX0lTRUw7CisgICAgIH0KKyAKKyAgIC8qIERldGVjdCBpbnZhbGlkIG9wdGlvbiBjb21iaW5h dGlvbnMgd2l0aCBFNTAwLiAgKi8KK0BAIC0xNzUxLDEyICsyMTcyLDE0IEBAIHJzNjAwMF9vdmVy cmlkZV9vcHRpb25zIChjb25zdCBjaGFyICpkZWYKKyAgIHJzNjAwMF9hbHdheXNfaGludCA9IChy czYwMDBfY3B1ICE9IFBST0NFU1NPUl9QT1dFUjQKKyAJCQkmJiByczYwMDBfY3B1ICE9IFBST0NF U1NPUl9QT1dFUjUKKyAgICAgICAgICAgICAgICAgICAgICAgICAmJiByczYwMDBfY3B1ICE9IFBS T0NFU1NPUl9QT1dFUjYKKysgICAgICAgICAgICAgICAgICAgICAgICAmJiByczYwMDBfY3B1ICE9 IFBST0NFU1NPUl9QT1dFUjcKKyAJCQkmJiByczYwMDBfY3B1ICE9IFBST0NFU1NPUl9DRUxMKTsK KyAgIHJzNjAwMF9zY2hlZF9ncm91cHMgPSAocnM2MDAwX2NwdSA9PSBQUk9DRVNTT1JfUE9XRVI0 CisgCQkJIHx8IHJzNjAwMF9jcHUgPT0gUFJPQ0VTU09SX1BPV0VSNSk7CisgICByczYwMDBfYWxp Z25fYnJhbmNoX3RhcmdldHMgPSAocnM2MDAwX2NwdSA9PSBQUk9DRVNTT1JfUE9XRVI0CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgcnM2MDAwX2NwdSA9PSBQUk9DRVNTT1Jf UE9XRVI1CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgcnM2MDAwX2NwdSA9 PSBQUk9DRVNTT1JfUE9XRVI2KTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 fCByczYwMDBfY3B1ID09IFBST0NFU1NPUl9QT1dFUjYKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8fCByczYwMDBfY3B1ID09IFBST0NFU1NPUl9QT1dFUjcpOworIAorICAgcnM2 MDAwX3NjaGVkX3Jlc3RyaWN0ZWRfaW5zbnNfcHJpb3JpdHkKKyAgICAgPSAocnM2MDAwX3NjaGVk X2dyb3VwcyA/IDEgOiAwKTsKK0BAIC0xOTUxLDYgKzIzNzQsMTAgQEAgcnM2MDAwX292ZXJyaWRl X29wdGlvbnMgKGNvbnN0IGNoYXIgKmRlZgorIAlyczYwMDBfY29zdCA9ICZwb3dlcjZfY29zdDsK KyAJYnJlYWs7CisgCisrICAgICAgY2FzZSBQUk9DRVNTT1JfUE9XRVI3OgorKwlyczYwMDBfY29z dCA9ICZwb3dlcjdfY29zdDsKKysJYnJlYWs7CisrCisgICAgICAgZGVmYXVsdDoKKyAJZ2NjX3Vu cmVhY2hhYmxlICgpOworICAgICAgIH0KK0BAIC0yMDAxLDcgKzI0MjgsNyBAQCByczYwMDBfb3Zl cnJpZGVfb3B0aW9ucyAoY29uc3QgY2hhciAqZGVmCisgc3RhdGljIHRyZWUKKyByczYwMDBfYnVp bHRpbl9tYXNrX2Zvcl9sb2FkICh2b2lkKQorIHsKKy0gIGlmIChUQVJHRVRfQUxUSVZFQykKKysg IGlmIChUQVJHRVRfQUxUSVZFQyAmJiAhVEFSR0VUX1ZTWCkKKyAgICAgcmV0dXJuIGFsdGl2ZWNf YnVpbHRpbl9tYXNrX2Zvcl9sb2FkOworICAgZWxzZQorICAgICByZXR1cm4gMDsKK0BAIC0yMDE1 LDE4ICsyNDQyLDE5IEBAIHJzNjAwMF9idWlsdGluX21hc2tfZm9yX2xvYWQgKHZvaWQpCisgc3Rh dGljIHRyZWUKKyByczYwMDBfYnVpbHRpbl9jb252ZXJzaW9uIChlbnVtIHRyZWVfY29kZSBjb2Rl LCB0cmVlIHR5cGUpCisgeworLSAgaWYgKCFUQVJHRVRfQUxUSVZFQykKKy0gICAgcmV0dXJuIE5V TExfVFJFRTsKKy0KKyAgIHN3aXRjaCAoY29kZSkKKyAgICAgeworICAgICBjYXNlIEZJWF9UUlVO Q19FWFBSOgorICAgICAgIHN3aXRjaCAoVFlQRV9NT0RFICh0eXBlKSkKKyAJeworIAljYXNlIFY0 U0ltb2RlOgorKwkgIGlmIChWRUNUT1JfVU5JVF9OT05FX1AgKFY0U0ltb2RlKSB8fCBWRUNUT1Jf VU5JVF9OT05FX1AgKFY0U0Ztb2RlKSkKKysJICAgIHJldHVybiBOVUxMX1RSRUU7CisrCisgCSAg cmV0dXJuIFRZUEVfVU5TSUdORUQgKHR5cGUpCistCSAgICA/IHJzNjAwMF9idWlsdGluX2RlY2xz W0FMVElWRUNfQlVJTFRJTl9WQ1RVWFNdCistCSAgICA6IHJzNjAwMF9idWlsdGluX2RlY2xzW0FM VElWRUNfQlVJTFRJTl9WQ1RTWFNdOworKwkgICAgPyByczYwMDBfYnVpbHRpbl9kZWNsc1tWRUNU T1JfQlVJTFRJTl9GSVhVTlNfVjRTRl9WNFNJXQorKwkgICAgOiByczYwMDBfYnVpbHRpbl9kZWNs c1tWRUNUT1JfQlVJTFRJTl9GSVhfVjRTRl9WNFNJXTsKKysKKyAJZGVmYXVsdDoKKyAJICByZXR1 cm4gTlVMTF9UUkVFOworIAl9CitAQCAtMjAzNSw5ICsyNDYzLDEyIEBAIHJzNjAwMF9idWlsdGlu X2NvbnZlcnNpb24gKGVudW0gdHJlZV9jb2QKKyAgICAgICBzd2l0Y2ggKFRZUEVfTU9ERSAodHlw ZSkpCisgCXsKKyAJY2FzZSBWNFNJbW9kZToKKysJICBpZiAoVkVDVE9SX1VOSVRfTk9ORV9QIChW NFNJbW9kZSkgfHwgVkVDVE9SX1VOSVRfTk9ORV9QIChWNFNGbW9kZSkpCisrCSAgICByZXR1cm4g TlVMTF9UUkVFOworKworIAkgIHJldHVybiBUWVBFX1VOU0lHTkVEICh0eXBlKQorLQkgICAgPyBy czYwMDBfYnVpbHRpbl9kZWNsc1tBTFRJVkVDX0JVSUxUSU5fVkNGVVhdCistCSAgICA6IHJzNjAw MF9idWlsdGluX2RlY2xzW0FMVElWRUNfQlVJTFRJTl9WQ0ZTWF07CisrCSAgICA/IHJzNjAwMF9i dWlsdGluX2RlY2xzW1ZFQ1RPUl9CVUlMVElOX1VOU0ZMT0FUX1Y0U0lfVjRTRl0KKysJICAgIDog cnM2MDAwX2J1aWx0aW5fZGVjbHNbVkVDVE9SX0JVSUxUSU5fRkxPQVRfVjRTSV9WNFNGXTsKKyAJ ZGVmYXVsdDoKKyAJICByZXR1cm4gTlVMTF9UUkVFOworIAl9CitAQCAtMjE1MCw2ICsyNTgxLDE0 IEBAIHJzNjAwMF9idWlsdGluX3ZlY19wZXJtICh0cmVlIHR5cGUsIHRyZWUKKyAgICAgICBkID0g cnM2MDAwX2J1aWx0aW5fZGVjbHNbQUxUSVZFQ19CVUlMVElOX1ZQRVJNXzRTRl07CisgICAgICAg YnJlYWs7CisgCisrICAgIGNhc2UgVjJERm1vZGU6CisrICAgICAgZCA9IHJzNjAwMF9idWlsdGlu X2RlY2xzW0FMVElWRUNfQlVJTFRJTl9WUEVSTV8yREZdOworKyAgICAgIGJyZWFrOworKworKyAg ICBjYXNlIFYyREltb2RlOgorKyAgICAgIGQgPSByczYwMDBfYnVpbHRpbl9kZWNsc1tBTFRJVkVD X0JVSUxUSU5fVlBFUk1fMkRJXTsKKysgICAgICBicmVhazsKKysKKyAgICAgZGVmYXVsdDoKKyAg ICAgICByZXR1cm4gTlVMTF9UUkVFOworICAgICB9CitAQCAtMjIyOSw2ICsyNjY4LDcgQEAgc3Rh dGljIGJvb2wKKyByczYwMDBfaGFuZGxlX29wdGlvbiAoc2l6ZV90IGNvZGUsIGNvbnN0IGNoYXIg KmFyZywgaW50IHZhbHVlKQorIHsKKyAgIGVudW0gZnB1X3R5cGVfdCBmcHVfdHlwZSA9IEZQVV9O T05FOworKyAgaW50IGlzZWw7CisgCisgICBzd2l0Y2ggKGNvZGUpCisgICAgIHsKK0BAIC0yMzMx LDE0ICsyNzcxLDE0IEBAIHJzNjAwMF9oYW5kbGVfb3B0aW9uIChzaXplX3QgY29kZSwgY29uc3QK KyAgICAgICByczYwMDBfcGFyc2VfeWVzX25vX29wdGlvbiAoInZyc2F2ZSIsIGFyZywgJihUQVJH RVRfQUxUSVZFQ19WUlNBVkUpKTsKKyAgICAgICBicmVhazsKKyAKKy0gICAgY2FzZSBPUFRfbWlz ZWw6CistICAgICAgcnM2MDAwX2V4cGxpY2l0X29wdGlvbnMuaXNlbCA9IHRydWU7CistICAgICAg cnM2MDAwX2lzZWwgPSB2YWx1ZTsKKy0gICAgICBicmVhazsKKy0KKyAgICAgY2FzZSBPUFRfbWlz ZWxfOgorLSAgICAgIHJzNjAwMF9leHBsaWNpdF9vcHRpb25zLmlzZWwgPSB0cnVlOworLSAgICAg IHJzNjAwMF9wYXJzZV95ZXNfbm9fb3B0aW9uICgiaXNlbCIsIGFyZywgJihyczYwMDBfaXNlbCkp OworKyAgICAgIHRhcmdldF9mbGFnc19leHBsaWNpdCB8PSBNQVNLX0lTRUw7CisrICAgICAgaXNl bCA9IDA7CisrICAgICAgcnM2MDAwX3BhcnNlX3llc19ub19vcHRpb24gKCJpc2VsIiwgYXJnLCAm aXNlbCk7CisrICAgICAgaWYgKGlzZWwpCisrCXRhcmdldF9mbGFncyB8PSBNQVNLX0lTRUw7Cisr ICAgICAgZWxzZQorKwl0YXJnZXRfZmxhZ3MgJj0gfk1BU0tfSVNFTDsKKyAgICAgICBicmVhazsK KyAKKyAgICAgY2FzZSBPUFRfbXNwZToKK0BAIC0yOTY3LDYgKzM0MDcsOSBAQCBvdXRwdXRfdmVj X2NvbnN0X21vdmUgKHJ0eCAqb3BlcmFuZHMpCisgICB2ZWMgPSBvcGVyYW5kc1sxXTsKKyAgIG1v ZGUgPSBHRVRfTU9ERSAoZGVzdCk7CisgCisrICBpZiAoVEFSR0VUX1ZTWCAmJiB6ZXJvX2NvbnN0 YW50ICh2ZWMsIG1vZGUpKQorKyAgICByZXR1cm4gInh4bHhvciAleDAsJXgwLCV4MCI7CisrCisg ICBpZiAoVEFSR0VUX0FMVElWRUMpCisgICAgIHsKKyAgICAgICBydHggc3BsYXRfdmVjOworQEAg LTMxOTAsMjAgKzM2MzMsMjEgQEAgcnM2MDAwX2V4cGFuZF92ZWN0b3JfaW5pdCAocnR4IHRhcmdl dCwgcgorICAgaWYgKG5fdmFyID09IDApCisgICAgIHsKKyAgICAgICBydHggY29uc3RfdmVjID0g Z2VuX3J0eF9DT05TVF9WRUNUT1IgKG1vZGUsIFhWRUMgKHZhbHMsIDApKTsKKy0gICAgICBpZiAo bW9kZSAhPSBWNFNGbW9kZSAmJiBhbGxfY29uc3RfemVybykKKysgICAgICBib29sIGludF92ZWN0 b3JfcCA9IChHRVRfTU9ERV9DTEFTUyAobW9kZSkgPT0gTU9ERV9WRUNUT1JfSU5UKTsKKysgICAg ICBpZiAoKGludF92ZWN0b3JfcCB8fCBUQVJHRVRfVlNYKSAmJiBhbGxfY29uc3RfemVybykKKyAJ eworIAkgIC8qIFplcm8gcmVnaXN0ZXIuICAqLworIAkgIGVtaXRfaW5zbiAoZ2VuX3J0eF9TRVQg KFZPSURtb2RlLCB0YXJnZXQsCisgCQkJCSAgZ2VuX3J0eF9YT1IgKG1vZGUsIHRhcmdldCwgdGFy Z2V0KSkpOworIAkgIHJldHVybjsKKyAJfQorLSAgICAgIGVsc2UgaWYgKG1vZGUgIT0gVjRTRm1v ZGUgJiYgZWFzeV92ZWN0b3JfY29uc3RhbnQgKGNvbnN0X3ZlYywgbW9kZSkpCisrICAgICAgZWxz ZSBpZiAoaW50X3ZlY3Rvcl9wICYmIGVhc3lfdmVjdG9yX2NvbnN0YW50IChjb25zdF92ZWMsIG1v ZGUpKQorIAl7CisgCSAgLyogU3BsYXQgaW1tZWRpYXRlLiAgKi8KKyAJICBlbWl0X2luc24gKGdl bl9ydHhfU0VUIChWT0lEbW9kZSwgdGFyZ2V0LCBjb25zdF92ZWMpKTsKKyAJICByZXR1cm47Cisg CX0KKy0gICAgICBlbHNlIGlmIChhbGxfc2FtZSkKKysgICAgICBlbHNlIGlmIChhbGxfc2FtZSAm JiBpbnRfdmVjdG9yX3ApCisgCTsJLyogU3BsYXQgdmVjdG9yIGVsZW1lbnQuICAqLworICAgICAg IGVsc2UKKyAJeworQEAgLTMyMTMsNiArMzY1NywxOCBAQCByczYwMDBfZXhwYW5kX3ZlY3Rvcl9p bml0IChydHggdGFyZ2V0LCByCisgCX0KKyAgICAgfQorIAorKyAgaWYgKG1vZGUgPT0gVjJERm1v ZGUpCisrICAgIHsKKysgICAgICBnY2NfYXNzZXJ0IChUQVJHRVRfVlNYKTsKKysgICAgICBpZiAo YWxsX3NhbWUpCisrCWVtaXRfaW5zbiAoZ2VuX3ZzeF9zcGxhdHYyZGYgKHRhcmdldCwgWFZFQ0VY UCAodmFscywgMCwgMCkpKTsKKysgICAgICBlbHNlCisrCWVtaXRfaW5zbiAoZ2VuX3ZzeF9jb25j YXRfdjJkZiAodGFyZ2V0LAorKwkJCQkJY29weV90b19yZWcgKFhWRUNFWFAgKHZhbHMsIDAsIDAp KSwKKysJCQkJCWNvcHlfdG9fcmVnIChYVkVDRVhQICh2YWxzLCAwLCAxKSkpKTsKKysgICAgICBy ZXR1cm47CisrICAgIH0KKysKKyAgIC8qIFN0b3JlIHZhbHVlIHRvIHN0YWNrIHRlbXAuICBMb2Fk IHZlY3RvciBlbGVtZW50LiAgU3BsYXQuICAqLworICAgaWYgKGFsbF9zYW1lKQorICAgICB7CitA QCAtMzI3Miw2ICszNzI4LDEzIEBAIHJzNjAwMF9leHBhbmRfdmVjdG9yX3NldCAocnR4IHRhcmdl dCwgcnQKKyAgIGludCB3aWR0aCA9IEdFVF9NT0RFX1NJWkUgKGlubmVyX21vZGUpOworICAgaW50 IGk7CisgCisrICBpZiAobW9kZSA9PSBWMkRGbW9kZSkKKysgICAgeworKyAgICAgIGdjY19hc3Nl cnQgKFRBUkdFVF9WU1gpOworKyAgICAgIGVtaXRfaW5zbiAoZ2VuX3ZzeF9zZXRfdjJkZiAodGFy Z2V0LCB2YWwsIHRhcmdldCwgR0VOX0lOVCAoZWx0KSkpOworKyAgICAgIHJldHVybjsKKysgICAg fQorKworICAgLyogTG9hZCBzaW5nbGUgdmFyaWFibGUgdmFsdWUuICAqLworICAgbWVtID0gYXNz aWduX3N0YWNrX3RlbXAgKG1vZGUsIEdFVF9NT0RFX1NJWkUgKGlubmVyX21vZGUpLCAwKTsKKyAg IGVtaXRfbW92ZV9pbnNuIChhZGp1c3RfYWRkcmVzc19udiAobWVtLCBpbm5lcl9tb2RlLCAwKSwg dmFsKTsKK0BAIC0zMzA5LDYgKzM3NzIsMTMgQEAgcnM2MDAwX2V4cGFuZF92ZWN0b3JfZXh0cmFj dCAocnR4IHRhcmdldAorICAgZW51bSBtYWNoaW5lX21vZGUgaW5uZXJfbW9kZSA9IEdFVF9NT0RF X0lOTkVSIChtb2RlKTsKKyAgIHJ0eCBtZW0sIHg7CisgCisrICBpZiAobW9kZSA9PSBWMkRGbW9k ZSkKKysgICAgeworKyAgICAgIGdjY19hc3NlcnQgKFRBUkdFVF9WU1gpOworKyAgICAgIGVtaXRf aW5zbiAoZ2VuX3ZzeF9leHRyYWN0X3YyZGYgKHRhcmdldCwgdmVjLCBHRU5fSU5UIChlbHQpKSk7 CisrICAgICAgcmV0dXJuOworKyAgICB9CisrCisgICAvKiBBbGxvY2F0ZSBtb2RlLXNpemVkIGJ1 ZmZlci4gICovCisgICBtZW0gPSBhc3NpZ25fc3RhY2tfdGVtcCAobW9kZSwgR0VUX01PREVfU0la RSAobW9kZSksIDApOworIAorQEAgLTM2MjcsOSArNDA5NywxMyBAQCByczYwMDBfbGVnaXRpbWF0 ZV9vZmZzZXRfYWRkcmVzc19wIChlbnVtCisgICAgIGNhc2UgVjhISW1vZGU6CisgICAgIGNhc2Ug VjRTRm1vZGU6CisgICAgIGNhc2UgVjRTSW1vZGU6CistICAgICAgLyogQWx0aVZlYyB2ZWN0b3Ig bW9kZXMuICBPbmx5IHJlZytyZWcgYWRkcmVzc2luZyBpcyB2YWxpZCBhbmQKKysgICAgY2FzZSBW MkRGbW9kZToKKysgICAgY2FzZSBWMkRJbW9kZToKKysgICAgICAvKiBBbHRpVmVjL1ZTWCB2ZWN0 b3IgbW9kZXMuICBPbmx5IHJlZytyZWcgYWRkcmVzc2luZyBpcyB2YWxpZCBhbmQKKyAJIGNvbnN0 YW50IG9mZnNldCB6ZXJvIHNob3VsZCBub3Qgb2NjdXIgZHVlIHRvIGNhbm9uaWNhbGl6YXRpb24u ICAqLworLSAgICAgIHJldHVybiBmYWxzZTsKKysgICAgICBpZiAoVkVDVE9SX1VOSVRfQUxUSVZF Q19PUl9WU1hfUCAobW9kZSkpCisrCXJldHVybiBmYWxzZTsKKysgICAgICBicmVhazsKKyAKKyAg ICAgY2FzZSBWNEhJbW9kZToKKyAgICAgY2FzZSBWMlNJbW9kZToKK0BAIC0zNjQ2LDYgKzQxMjAs MTEgQEAgcnM2MDAwX2xlZ2l0aW1hdGVfb2Zmc2V0X2FkZHJlc3NfcCAoZW51bQorICAgICAgIGlm IChUQVJHRVRfRTUwMF9ET1VCTEUpCisgCXJldHVybiBTUEVfQ09OU1RfT0ZGU0VUX09LIChvZmZz ZXQpOworIAorKyAgICAgIC8qIElmIHdlIGFyZSB1c2luZyBWU1ggc2NhbGFyIGxvYWRzLCByZXN0 cmljdCBvdXJzZWx2ZXMgdG8gcmVnK3JlZworKwkgYWRkcmVzc2luZy4gICovCisrICAgICAgaWYg KFZFQ1RPUl9NRU1fVlNYX1AgKERGbW9kZSkpCisrCXJldHVybiBmYWxzZTsKKysKKyAgICAgY2Fz ZSBERG1vZGU6CisgICAgIGNhc2UgREltb2RlOgorICAgICAgIC8qIE9uIGU1MDB2Miwgd2UgbWF5 IGhhdmU6CitAQCAtMzcxNiw3ICs0MTk1LDkgQEAgYXZvaWRpbmdfaW5kZXhlZF9hZGRyZXNzX3Ag KGVudW0gbWFjaGluZQorIHsKKyAgIC8qIEF2b2lkIGluZGV4ZWQgYWRkcmVzc2luZyBmb3IgbW9k ZXMgdGhhdCBoYXZlIG5vbi1pbmRleGVkCisgICAgICBsb2FkL3N0b3JlIGluc3RydWN0aW9uIGZv cm1zLiAgKi8KKy0gIHJldHVybiBUQVJHRVRfQVZPSURfWEZPUk0gJiYgIUFMVElWRUNfVkVDVE9S X01PREUgKG1vZGUpOworKyAgcmV0dXJuIChUQVJHRVRfQVZPSURfWEZPUk0KKysJICAmJiAoIVRB UkdFVF9BTFRJVkVDIHx8ICFBTFRJVkVDX1ZFQ1RPUl9NT0RFIChtb2RlKSkKKysJICAmJiAoIVRB UkdFVF9WU1ggfHwgIVZTWF9WRUNUT1JfTU9ERSAobW9kZSkpKTsKKyB9CisgCisgaW5saW5lIGJv b2wKK0BAIC0zODA4LDI1ICs0Mjg5LDMwIEBAIHJ0eAorIHJzNjAwMF9sZWdpdGltaXplX2FkZHJl c3MgKHJ0eCB4LCBydHggb2xkeCBBVFRSSUJVVEVfVU5VU0VELAorIAkJCSAgIGVudW0gbWFjaGlu ZV9tb2RlIG1vZGUpCisgeworKyAgcnR4IHJldCA9IE5VTExfUlRYOworKyAgcnR4IG9yaWdfeCA9 IHg7CisrCisgICBpZiAoR0VUX0NPREUgKHgpID09IFNZTUJPTF9SRUYpCisgICAgIHsKKyAgICAg ICBlbnVtIHRsc19tb2RlbCBtb2RlbCA9IFNZTUJPTF9SRUZfVExTX01PREVMICh4KTsKKyAgICAg ICBpZiAobW9kZWwgIT0gMCkKKy0JcmV0dXJuIHJzNjAwMF9sZWdpdGltaXplX3Rsc19hZGRyZXNz ICh4LCBtb2RlbCk7CisrCXJldCA9IHJzNjAwMF9sZWdpdGltaXplX3Rsc19hZGRyZXNzICh4LCBt b2RlbCk7CisgICAgIH0KKyAKKy0gIGlmIChHRVRfQ09ERSAoeCkgPT0gUExVUworLSAgICAgICYm IEdFVF9DT0RFIChYRVhQICh4LCAwKSkgPT0gUkVHCistICAgICAgJiYgR0VUX0NPREUgKFhFWFAg KHgsIDEpKSA9PSBDT05TVF9JTlQKKy0gICAgICAmJiAodW5zaWduZWQgSE9TVF9XSURFX0lOVCkg KElOVFZBTCAoWEVYUCAoeCwgMSkpICsgMHg4MDAwKSA+PSAweDEwMDAwCistICAgICAgJiYgISgo VEFSR0VUX1BPV0VSUEM2NAorLQkgICAgJiYgKG1vZGUgPT0gREltb2RlIHx8IG1vZGUgPT0gVElt b2RlKQorLQkgICAgJiYgKElOVFZBTCAoWEVYUCAoeCwgMSkpICYgMykgIT0gMCkKKy0JICAgfHwg U1BFX1ZFQ1RPUl9NT0RFIChtb2RlKQorLQkgICB8fCBBTFRJVkVDX1ZFQ1RPUl9NT0RFIChtb2Rl KQorLQkgICB8fCAoVEFSR0VUX0U1MDBfRE9VQkxFICYmIChtb2RlID09IERGbW9kZSB8fCBtb2Rl ID09IFRGbW9kZQorLQkJCQkgICAgICB8fCBtb2RlID09IERJbW9kZSB8fCBtb2RlID09IEREbW9k ZQorLQkJCQkgICAgICB8fCBtb2RlID09IFREbW9kZSkpKSkKKysgIGVsc2UgaWYgKEdFVF9DT0RF ICh4KSA9PSBQTFVTCisrCSAgICYmIEdFVF9DT0RFIChYRVhQICh4LCAwKSkgPT0gUkVHCisrCSAg ICYmIEdFVF9DT0RFIChYRVhQICh4LCAxKSkgPT0gQ09OU1RfSU5UCisrCSAgICYmICgodW5zaWdu ZWQgSE9TVF9XSURFX0lOVCkgKElOVFZBTCAoWEVYUCAoeCwgMSkpICsgMHg4MDAwKQorKwkgICAg ICAgPj0gMHgxMDAwMCkKKysJICAgJiYgISgoVEFSR0VUX1BPV0VSUEM2NAorKwkJICYmIChtb2Rl ID09IERJbW9kZSB8fCBtb2RlID09IFRJbW9kZSkKKysJCSAmJiAoSU5UVkFMIChYRVhQICh4LCAx KSkgJiAzKSAhPSAwKQorKwkJfHwgKFRBUkdFVF9TUEUgJiYgU1BFX1ZFQ1RPUl9NT0RFIChtb2Rl KSkKKysJCXx8IChUQVJHRVRfQUxUSVZFQyAmJiBBTFRJVkVDX1ZFQ1RPUl9NT0RFIChtb2RlKSkK KysJCXx8IChUQVJHRVRfVlNYICYmIFZTWF9WRUNUT1JfTU9ERSAobW9kZSkpCisrCQl8fCAoVEFS R0VUX0U1MDBfRE9VQkxFICYmIChtb2RlID09IERGbW9kZSB8fCBtb2RlID09IFRGbW9kZQorKwkJ CQkJICAgfHwgbW9kZSA9PSBESW1vZGUgfHwgbW9kZSA9PSBERG1vZGUKKysJCQkJCSAgIHx8IG1v ZGUgPT0gVERtb2RlKSkpKQorICAgICB7CisgICAgICAgSE9TVF9XSURFX0lOVCBoaWdoX2ludCwg bG93X2ludDsKKyAgICAgICBydHggc3VtOworQEAgLTM4MzQsNyArNDMyMCw3IEBAIHJzNjAwMF9s ZWdpdGltaXplX2FkZHJlc3MgKHJ0eCB4LCBydHggb2wKKyAgICAgICBoaWdoX2ludCA9IElOVFZB TCAoWEVYUCAoeCwgMSkpIC0gbG93X2ludDsKKyAgICAgICBzdW0gPSBmb3JjZV9vcGVyYW5kIChn ZW5fcnR4X1BMVVMgKFBtb2RlLCBYRVhQICh4LCAwKSwKKyAJCQkJCSBHRU5fSU5UIChoaWdoX2lu dCkpLCAwKTsKKy0gICAgICByZXR1cm4gZ2VuX3J0eF9QTFVTIChQbW9kZSwgc3VtLCBHRU5fSU5U IChsb3dfaW50KSk7CisrICAgICAgcmV0ID0gZ2VuX3J0eF9QTFVTIChQbW9kZSwgc3VtLCBHRU5f SU5UIChsb3dfaW50KSk7CisgICAgIH0KKyAgIGVsc2UgaWYgKEdFVF9DT0RFICh4KSA9PSBQTFVT CisgCSAgICYmIEdFVF9DT0RFIChYRVhQICh4LCAwKSkgPT0gUkVHCitAQCAtMzg1MCwzMiArNDMz NiwyOSBAQCByczYwMDBfbGVnaXRpbWl6ZV9hZGRyZXNzIChydHggeCwgcnR4IG9sCisgCSAgICYm IG1vZGUgIT0gVEZtb2RlCisgCSAgICYmIG1vZGUgIT0gVERtb2RlKQorICAgICB7CistICAgICAg cmV0dXJuIGdlbl9ydHhfUExVUyAoUG1vZGUsIFhFWFAgKHgsIDApLAorLQkJCSAgIGZvcmNlX3Jl ZyAoUG1vZGUsIGZvcmNlX29wZXJhbmQgKFhFWFAgKHgsIDEpLCAwKSkpOworKyAgICAgIHJldCA9 IGdlbl9ydHhfUExVUyAoUG1vZGUsIFhFWFAgKHgsIDApLAorKwkJCSAgZm9yY2VfcmVnIChQbW9k ZSwgZm9yY2Vfb3BlcmFuZCAoWEVYUCAoeCwgMSksIDApKSk7CisgICAgIH0KKy0gIGVsc2UgaWYg KEFMVElWRUNfVkVDVE9SX01PREUgKG1vZGUpKQorKyAgZWxzZSBpZiAoVkVDVE9SX01FTV9BTFRJ VkVDX09SX1ZTWF9QIChtb2RlKSkKKyAgICAgeworLSAgICAgIHJ0eCByZWc7CistCisgICAgICAg LyogTWFrZSBzdXJlIGJvdGggb3BlcmFuZHMgYXJlIHJlZ2lzdGVycy4gICovCisgICAgICAgaWYg KEdFVF9DT0RFICh4KSA9PSBQTFVTKQorLQlyZXR1cm4gZ2VuX3J0eF9QTFVTIChQbW9kZSwgZm9y Y2VfcmVnIChQbW9kZSwgWEVYUCAoeCwgMCkpLAorLQkJCSAgICAgZm9yY2VfcmVnIChQbW9kZSwg WEVYUCAoeCwgMSkpKTsKKy0KKy0gICAgICByZWcgPSBmb3JjZV9yZWcgKFBtb2RlLCB4KTsKKy0g ICAgICByZXR1cm4gcmVnOworKwlyZXQgPSBnZW5fcnR4X1BMVVMgKFBtb2RlLCBmb3JjZV9yZWcg KFBtb2RlLCBYRVhQICh4LCAwKSksCisrCQkJICAgIGZvcmNlX3JlZyAoUG1vZGUsIFhFWFAgKHgs IDEpKSk7CisrICAgICAgZWxzZQorKwlyZXQgPSBmb3JjZV9yZWcgKFBtb2RlLCB4KTsKKyAgICAg fQorLSAgZWxzZSBpZiAoU1BFX1ZFQ1RPUl9NT0RFIChtb2RlKQorKyAgZWxzZSBpZiAoKFRBUkdF VF9TUEUgJiYgU1BFX1ZFQ1RPUl9NT0RFIChtb2RlKSkKKyAJICAgfHwgKFRBUkdFVF9FNTAwX0RP VUJMRSAmJiAobW9kZSA9PSBERm1vZGUgfHwgbW9kZSA9PSBURm1vZGUKKyAJCQkJICAgICAgfHwg bW9kZSA9PSBERG1vZGUgfHwgbW9kZSA9PSBURG1vZGUKKyAJCQkJICAgICAgfHwgbW9kZSA9PSBE SW1vZGUpKSkKKyAgICAgeworICAgICAgIGlmIChtb2RlID09IERJbW9kZSkKKy0JcmV0dXJuIE5V TExfUlRYOworLSAgICAgIC8qIFdlIGFjY2VwdCBbcmVnICsgcmVnXSBhbmQgW3JlZyArIE9GRlNF VF0uICAqLworKwlyZXQgPSBOVUxMX1JUWDsKKyAKKy0gICAgICBpZiAoR0VUX0NPREUgKHgpID09 IFBMVVMpCistICAgICAgIHsKKysgICAgICAvKiBXZSBhY2NlcHQgW3JlZyArIHJlZ10gYW5kIFty ZWcgKyBPRkZTRVRdLiAgKi8KKysgICAgICBlbHNlIGlmIChHRVRfQ09ERSAoeCkgPT0gUExVUykK KysJeworICAgICAgICAgIHJ0eCBvcDEgPSBYRVhQICh4LCAwKTsKKyAgICAgICAgICBydHggb3Ay ID0gWEVYUCAoeCwgMSk7CisgICAgICAgICAgcnR4IHk7CitAQCAtMzg5NCwxMiArNDM3NywxMiBA QCByczYwMDBfbGVnaXRpbWl6ZV9hZGRyZXNzIChydHggeCwgcnR4IG9sCisgICAgICAgICAgeSA9 IGdlbl9ydHhfUExVUyAoUG1vZGUsIG9wMSwgb3AyKTsKKyAKKyAgICAgICAgICBpZiAoKEdFVF9N T0RFX1NJWkUgKG1vZGUpID4gOCB8fCBtb2RlID09IEREbW9kZSkgJiYgUkVHX1AgKG9wMikpCist ICAgICAgICAgICByZXR1cm4gZm9yY2VfcmVnIChQbW9kZSwgeSk7CisrICAgICAgICAgICByZXQg PSBmb3JjZV9yZWcgKFBtb2RlLCB5KTsKKyAgICAgICAgICBlbHNlCistICAgICAgICAgICByZXR1 cm4geTsKKysgICAgICAgICAgIHJldCA9IHk7CisgICAgICAgIH0KKy0KKy0gICAgICByZXR1cm4g Zm9yY2VfcmVnIChQbW9kZSwgeCk7CisrICAgICAgZWxzZQorKwlyZXQgPSBmb3JjZV9yZWcgKFBt b2RlLCB4KTsKKyAgICAgfQorICAgZWxzZSBpZiAoVEFSR0VUX0VMRgorIAkgICAmJiBUQVJHRVRf MzJCSVQKK0BAIC0zOTE1LDcgKzQzOTgsNyBAQCByczYwMDBfbGVnaXRpbWl6ZV9hZGRyZXNzIChy dHggeCwgcnR4IG9sCisgICAgIHsKKyAgICAgICBydHggcmVnID0gZ2VuX3JlZ19ydHggKFBtb2Rl KTsKKyAgICAgICBlbWl0X2luc24gKGdlbl9lbGZfaGlnaCAocmVnLCB4KSk7CistICAgICAgcmV0 dXJuIGdlbl9ydHhfTE9fU1VNIChQbW9kZSwgcmVnLCB4KTsKKysgICAgICByZXQgPSBnZW5fcnR4 X0xPX1NVTSAoUG1vZGUsIHJlZywgeCk7CisgICAgIH0KKyAgIGVsc2UgaWYgKFRBUkdFVF9NQUNI TyAmJiBUQVJHRVRfMzJCSVQgJiYgVEFSR0VUX05PX1RPQworIAkgICAmJiAhIGZsYWdfcGljCitA QCAtMzkzMywxNyArNDQxNiwzNCBAQCByczYwMDBfbGVnaXRpbWl6ZV9hZGRyZXNzIChydHggeCwg cnR4IG9sCisgICAgIHsKKyAgICAgICBydHggcmVnID0gZ2VuX3JlZ19ydHggKFBtb2RlKTsKKyAg ICAgICBlbWl0X2luc24gKGdlbl9tYWNob19oaWdoIChyZWcsIHgpKTsKKy0gICAgICByZXR1cm4g Z2VuX3J0eF9MT19TVU0gKFBtb2RlLCByZWcsIHgpOworKyAgICAgIHJldCA9IGdlbl9ydHhfTE9f U1VNIChQbW9kZSwgcmVnLCB4KTsKKyAgICAgfQorICAgZWxzZSBpZiAoVEFSR0VUX1RPQworIAkg ICAmJiBHRVRfQ09ERSAoeCkgPT0gU1lNQk9MX1JFRgorIAkgICAmJiBjb25zdGFudF9wb29sX2V4 cHJfcCAoeCkKKyAJICAgJiYgQVNNX09VVFBVVF9TUEVDSUFMX1BPT0xfRU5UUllfUCAoZ2V0X3Bv b2xfY29uc3RhbnQgKHgpLCBQbW9kZSkpCisgICAgIHsKKy0gICAgICByZXR1cm4gY3JlYXRlX1RP Q19yZWZlcmVuY2UgKHgpOworKyAgICAgIHJldCA9IGNyZWF0ZV9UT0NfcmVmZXJlbmNlICh4KTsK KyAgICAgfQorICAgZWxzZQorLSAgICByZXR1cm4gTlVMTF9SVFg7CisrICAgIHJldCA9IE5VTExf UlRYOworKworKyAgaWYgKFRBUkdFVF9ERUJVR19BRERSKQorKyAgICB7CisrICAgICAgZnByaW50 ZiAoc3RkZXJyLAorKwkgICAgICAgIlxucnM2MDAwX2xlZ2l0aW1pemVfYWRkcmVzczogbW9kZSAl cywgb3JpZ2luYWwgYWRkcjpcbiIsCisrCSAgICAgICBHRVRfTU9ERV9OQU1FIChtb2RlKSk7Cisr ICAgICAgZGVidWdfcnR4IChvcmlnX3gpOworKyAgICAgIGlmIChyZXQpCisrCXsKKysJICBmcHJp bnRmIChzdGRlcnIsICJOZXcgYWRkcjpcbiIpOworKwkgIGRlYnVnX3J0eCAocmV0KTsKKysJfQor KyAgICAgIGVsc2UKKysJZnByaW50ZiAoc3RkZXJyLCAiTlVMTCByZXR1cm5lZFxuIik7CisrICAg IH0KKysKKysgIHJldHVybiByZXQ7CisgfQorIAorIC8qIFRoaXMgaXMgY2FsbGVkIGZyb20gZHdh cmYyb3V0LmMgdmlhIFRBUkdFVF9BU01fT1VUUFVUX0RXQVJGX0RUUFJFTC4KK0BAIC00MjMyLDYg KzQ3MzIsOSBAQCByczYwMDBfbGVnaXRpbWl6ZV9yZWxvYWRfYWRkcmVzcyAocnR4IHgsCisgCQkJ CSAgaW50IG9wbnVtLCBpbnQgdHlwZSwKKyAJCQkJICBpbnQgaW5kX2xldmVscyBBVFRSSUJVVEVf VU5VU0VELCBpbnQgKndpbikKKyB7CisrICBydHggb3JpZ194ID0geDsKKysgIHJ0eCByZXQgPSBO VUxMX1JUWDsKKysKKyAgIC8qIFdlIG11c3QgcmVjb2duaXplIG91dHB1dCB0aGF0IHdlIGhhdmUg YWxyZWFkeSBnZW5lcmF0ZWQgb3Vyc2VsdmVzLiAgKi8KKyAgIGlmIChHRVRfQ09ERSAoeCkgPT0g UExVUworICAgICAgICYmIEdFVF9DT0RFIChYRVhQICh4LCAwKSkgPT0gUExVUworQEAgLTQyNDMs MTcgKzQ3NDYsMTcgQEAgcnM2MDAwX2xlZ2l0aW1pemVfcmVsb2FkX2FkZHJlc3MgKHJ0eCB4LAor IAkJICAgQkFTRV9SRUdfQ0xBU1MsIEdFVF9NT0RFICh4KSwgVk9JRG1vZGUsIDAsIDAsCisgCQkg ICBvcG51bSwgKGVudW0gcmVsb2FkX3R5cGUpdHlwZSk7CisgICAgICAgKndpbiA9IDE7CistICAg ICAgcmV0dXJuIHg7CisrICAgICAgcmV0ID0geDsKKyAgICAgfQorIAorICNpZiBUQVJHRVRfTUFD SE8KKy0gIGlmIChERUZBVUxUX0FCSSA9PSBBQklfREFSV0lOICYmIGZsYWdfcGljCistICAgICAg JiYgR0VUX0NPREUgKHgpID09IExPX1NVTQorLSAgICAgICYmIEdFVF9DT0RFIChYRVhQICh4LCAw KSkgPT0gUExVUworLSAgICAgICYmIFhFWFAgKFhFWFAgKHgsIDApLCAwKSA9PSBwaWNfb2Zmc2V0 X3RhYmxlX3J0eAorLSAgICAgICYmIEdFVF9DT0RFIChYRVhQIChYRVhQICh4LCAwKSwgMSkpID09 IEhJR0gKKy0gICAgICAmJiBYRVhQIChYRVhQIChYRVhQICh4LCAwKSwgMSksIDApID09IFhFWFAg KHgsIDEpCistICAgICAgJiYgbWFjaG9waWNfb3BlcmFuZF9wIChYRVhQICh4LCAxKSkpCisrICBl bHNlIGlmIChERUZBVUxUX0FCSSA9PSBBQklfREFSV0lOICYmIGZsYWdfcGljCisrCSAgICYmIEdF VF9DT0RFICh4KSA9PSBMT19TVU0KKysJICAgJiYgR0VUX0NPREUgKFhFWFAgKHgsIDApKSA9PSBQ TFVTCisrCSAgICYmIFhFWFAgKFhFWFAgKHgsIDApLCAwKSA9PSBwaWNfb2Zmc2V0X3RhYmxlX3J0 eAorKwkgICAmJiBHRVRfQ09ERSAoWEVYUCAoWEVYUCAoeCwgMCksIDEpKSA9PSBISUdICisrCSAg ICYmIFhFWFAgKFhFWFAgKFhFWFAgKHgsIDApLCAxKSwgMCkgPT0gWEVYUCAoeCwgMSkKKysJICAg JiYgbWFjaG9waWNfb3BlcmFuZF9wIChYRVhQICh4LCAxKSkpCisgICAgIHsKKyAgICAgICAvKiBS ZXN1bHQgb2YgcHJldmlvdXMgaW52b2NhdGlvbiBvZiB0aGlzIGZ1bmN0aW9uIG9uIERhcndpbgor IAkgZmxvYXRpbmcgcG9pbnQgY29uc3RhbnQuICAqLworQEAgLTQyNjEsNDAgKzQ3NjQsNDIgQEAg cnM2MDAwX2xlZ2l0aW1pemVfcmVsb2FkX2FkZHJlc3MgKHJ0eCB4LAorIAkJICAgQkFTRV9SRUdf Q0xBU1MsIFBtb2RlLCBWT0lEbW9kZSwgMCwgMCwKKyAJCSAgIG9wbnVtLCAoZW51bSByZWxvYWRf dHlwZSl0eXBlKTsKKyAgICAgICAqd2luID0gMTsKKy0gICAgICByZXR1cm4geDsKKysgICAgICBy ZXQgPSB4OworICAgICB9CisgI2VuZGlmCisgCisgICAvKiBGb3JjZSBsZC9zdGQgbm9uLXdvcmQg YWxpZ25lZCBvZmZzZXQgaW50byBiYXNlIHJlZ2lzdGVyIGJ5IHdyYXBwaW5nCisgICAgICBpbiBv ZmZzZXQgMC4gICovCistICBpZiAoR0VUX0NPREUgKHgpID09IFBMVVMKKy0gICAgICAmJiBHRVRf Q09ERSAoWEVYUCAoeCwgMCkpID09IFJFRworLSAgICAgICYmIFJFR05PIChYRVhQICh4LCAwKSkg PCAzMgorLSAgICAgICYmIFJFR19NT0RFX09LX0ZPUl9CQVNFX1AgKFhFWFAgKHgsIDApLCBtb2Rl KQorLSAgICAgICYmIEdFVF9DT0RFIChYRVhQICh4LCAxKSkgPT0gQ09OU1RfSU5UCistICAgICAg JiYgKElOVFZBTCAoWEVYUCAoeCwgMSkpICYgMykgIT0gMAorLSAgICAgICYmICFBTFRJVkVDX1ZF Q1RPUl9NT0RFIChtb2RlKQorLSAgICAgICYmIEdFVF9NT0RFX1NJWkUgKG1vZGUpID49IFVOSVRT X1BFUl9XT1JECistICAgICAgJiYgVEFSR0VUX1BPV0VSUEM2NCkKKysgIGVsc2UgaWYgKEdFVF9D T0RFICh4KSA9PSBQTFVTCisrCSAgICYmIEdFVF9DT0RFIChYRVhQICh4LCAwKSkgPT0gUkVHCisr CSAgICYmIFJFR05PIChYRVhQICh4LCAwKSkgPCAzMgorKwkgICAmJiBSRUdfTU9ERV9PS19GT1Jf QkFTRV9QIChYRVhQICh4LCAwKSwgbW9kZSkKKysJICAgJiYgR0VUX0NPREUgKFhFWFAgKHgsIDEp KSA9PSBDT05TVF9JTlQKKysJICAgJiYgKElOVFZBTCAoWEVYUCAoeCwgMSkpICYgMykgIT0gMAor KwkgICAmJiAhQUxUSVZFQ19WRUNUT1JfTU9ERSAobW9kZSkKKysJICAgJiYgIVZTWF9WRUNUT1Jf TU9ERSAobW9kZSkKKysJICAgJiYgR0VUX01PREVfU0laRSAobW9kZSkgPj0gVU5JVFNfUEVSX1dP UkQKKysJICAgJiYgVEFSR0VUX1BPV0VSUEM2NCkKKyAgICAgeworICAgICAgIHggPSBnZW5fcnR4 X1BMVVMgKEdFVF9NT0RFICh4KSwgeCwgR0VOX0lOVCAoMCkpOworICAgICAgIHB1c2hfcmVsb2Fk IChYRVhQICh4LCAwKSwgTlVMTF9SVFgsICZYRVhQICh4LCAwKSwgTlVMTCwKKyAJCSAgIEJBU0Vf UkVHX0NMQVNTLCBHRVRfTU9ERSAoeCksIFZPSURtb2RlLCAwLCAwLAorIAkJICAgb3BudW0sIChl bnVtIHJlbG9hZF90eXBlKSB0eXBlKTsKKyAgICAgICAqd2luID0gMTsKKy0gICAgICByZXR1cm4g eDsKKysgICAgICByZXQgPSB4OworICAgICB9CisgCistICBpZiAoR0VUX0NPREUgKHgpID09IFBM VVMKKy0gICAgICAmJiBHRVRfQ09ERSAoWEVYUCAoeCwgMCkpID09IFJFRworLSAgICAgICYmIFJF R05PIChYRVhQICh4LCAwKSkgPCBGSVJTVF9QU0VVRE9fUkVHSVNURVIKKy0gICAgICAmJiBSRUdf TU9ERV9PS19GT1JfQkFTRV9QIChYRVhQICh4LCAwKSwgbW9kZSkKKy0gICAgICAmJiBHRVRfQ09E RSAoWEVYUCAoeCwgMSkpID09IENPTlNUX0lOVAorLSAgICAgICYmICFTUEVfVkVDVE9SX01PREUg KG1vZGUpCistICAgICAgJiYgIShUQVJHRVRfRTUwMF9ET1VCTEUgJiYgKG1vZGUgPT0gREZtb2Rl IHx8IG1vZGUgPT0gVEZtb2RlCistCQkJCSAgfHwgbW9kZSA9PSBERG1vZGUgfHwgbW9kZSA9PSBU RG1vZGUKKy0JCQkJICB8fCBtb2RlID09IERJbW9kZSkpCistICAgICAgJiYgIUFMVElWRUNfVkVD VE9SX01PREUgKG1vZGUpKQorKyAgZWxzZSBpZiAoR0VUX0NPREUgKHgpID09IFBMVVMKKysJICAg JiYgR0VUX0NPREUgKFhFWFAgKHgsIDApKSA9PSBSRUcKKysJICAgJiYgUkVHTk8gKFhFWFAgKHgs IDApKSA8IEZJUlNUX1BTRVVET19SRUdJU1RFUgorKwkgICAmJiBSRUdfTU9ERV9PS19GT1JfQkFT RV9QIChYRVhQICh4LCAwKSwgbW9kZSkKKysJICAgJiYgR0VUX0NPREUgKFhFWFAgKHgsIDEpKSA9 PSBDT05TVF9JTlQKKysJICAgJiYgIVNQRV9WRUNUT1JfTU9ERSAobW9kZSkKKysJICAgJiYgIShU QVJHRVRfRTUwMF9ET1VCTEUgJiYgKG1vZGUgPT0gREZtb2RlIHx8IG1vZGUgPT0gVEZtb2RlCisr CQkJCSAgICAgICB8fCBtb2RlID09IEREbW9kZSB8fCBtb2RlID09IFREbW9kZQorKwkJCQkgICAg ICAgfHwgbW9kZSA9PSBESW1vZGUpKQorKwkgICAmJiAhQUxUSVZFQ19WRUNUT1JfTU9ERSAobW9k ZSkKKysJICAgJiYgIVZTWF9WRUNUT1JfTU9ERSAobW9kZSkpCisgICAgIHsKKyAgICAgICBIT1NU X1dJREVfSU5UIHZhbCA9IElOVFZBTCAoWEVYUCAoeCwgMSkpOworICAgICAgIEhPU1RfV0lERV9J TlQgbG93ID0gKCh2YWwgJiAweGZmZmYpIF4gMHg4MDAwKSAtIDB4ODAwMDsKK0BAIC00MzA1LDQy ICs0ODEwLDQ0IEBAIHJzNjAwMF9sZWdpdGltaXplX3JlbG9hZF9hZGRyZXNzIChydHggeCwKKyAg ICAgICBpZiAoaGlnaCArIGxvdyAhPSB2YWwpCisgCXsKKyAJICAqd2luID0gMDsKKy0JICByZXR1 cm4geDsKKysJICByZXQgPSB4OworIAl9CisrICAgICAgZWxzZQorKwl7CisrCSAgLyogUmVsb2Fk IHRoZSBoaWdoIHBhcnQgaW50byBhIGJhc2UgcmVnOyBsZWF2ZSB0aGUgbG93IHBhcnQKKysJICAg ICBpbiB0aGUgbWVtIGRpcmVjdGx5LiAgKi8KKyAKKy0gICAgICAvKiBSZWxvYWQgdGhlIGhpZ2gg cGFydCBpbnRvIGEgYmFzZSByZWc7IGxlYXZlIHRoZSBsb3cgcGFydAorLQkgaW4gdGhlIG1lbSBk aXJlY3RseS4gICovCistCistICAgICAgeCA9IGdlbl9ydHhfUExVUyAoR0VUX01PREUgKHgpLAor LQkJCWdlbl9ydHhfUExVUyAoR0VUX01PREUgKHgpLCBYRVhQICh4LCAwKSwKKy0JCQkJICAgICAg R0VOX0lOVCAoaGlnaCkpLAorLQkJCUdFTl9JTlQgKGxvdykpOworKwkgIHggPSBnZW5fcnR4X1BM VVMgKEdFVF9NT0RFICh4KSwKKysJCQkgICAgZ2VuX3J0eF9QTFVTIChHRVRfTU9ERSAoeCksIFhF WFAgKHgsIDApLAorKwkJCQkJICBHRU5fSU5UIChoaWdoKSksCisrCQkJICAgIEdFTl9JTlQgKGxv dykpOworIAorLSAgICAgIHB1c2hfcmVsb2FkIChYRVhQICh4LCAwKSwgTlVMTF9SVFgsICZYRVhQ ICh4LCAwKSwgTlVMTCwKKy0JCSAgIEJBU0VfUkVHX0NMQVNTLCBHRVRfTU9ERSAoeCksIFZPSURt b2RlLCAwLCAwLAorLQkJICAgb3BudW0sIChlbnVtIHJlbG9hZF90eXBlKXR5cGUpOworLSAgICAg ICp3aW4gPSAxOworLSAgICAgIHJldHVybiB4OworKwkgIHB1c2hfcmVsb2FkIChYRVhQICh4LCAw KSwgTlVMTF9SVFgsICZYRVhQICh4LCAwKSwgTlVMTCwKKysJCSAgICAgICBCQVNFX1JFR19DTEFT UywgR0VUX01PREUgKHgpLCBWT0lEbW9kZSwgMCwgMCwKKysJCSAgICAgICBvcG51bSwgKGVudW0g cmVsb2FkX3R5cGUpdHlwZSk7CisrCSAgKndpbiA9IDE7CisrCSAgcmV0dXJuIHg7CisrCX0KKyAg ICAgfQorIAorLSAgaWYgKEdFVF9DT0RFICh4KSA9PSBTWU1CT0xfUkVGCistICAgICAgJiYgIUFM VElWRUNfVkVDVE9SX01PREUgKG1vZGUpCistICAgICAgJiYgIVNQRV9WRUNUT1JfTU9ERSAobW9k ZSkKKysgIGVsc2UgaWYgKEdFVF9DT0RFICh4KSA9PSBTWU1CT0xfUkVGCisrCSAgICYmIFZFQ1RP Ul9NRU1fTk9ORV9QIChtb2RlKQorKwkgICAmJiAoIVRBUkdFVF9TUEUgfHwgIVNQRV9WRUNUT1Jf TU9ERSAobW9kZSkpCisgI2lmIFRBUkdFVF9NQUNITworLSAgICAgICYmIERFRkFVTFRfQUJJID09 IEFCSV9EQVJXSU4KKy0gICAgICAmJiAoZmxhZ19waWMgfHwgTUFDSE9fRFlOQU1JQ19OT19QSUNf UCkKKysJICAgJiYgREVGQVVMVF9BQkkgPT0gQUJJX0RBUldJTgorKwkgICAmJiAoZmxhZ19waWMg fHwgTUFDSE9fRFlOQU1JQ19OT19QSUNfUCkKKyAjZWxzZQorLSAgICAgICYmIERFRkFVTFRfQUJJ ID09IEFCSV9WNAorLSAgICAgICYmICFmbGFnX3BpYworKwkgICAmJiBERUZBVUxUX0FCSSA9PSBB QklfVjQKKysJICAgJiYgIWZsYWdfcGljCisgI2VuZGlmCistICAgICAgLyogRG9uJ3QgZG8gdGhp cyBmb3IgVEZtb2RlIG9yIFREbW9kZSwgc2luY2UgdGhlIHJlc3VsdCBpc24ndCBvZmZzZXR0YWJs ZS4KKy0JIFRoZSBzYW1lIGdvZXMgZm9yIERJbW9kZSB3aXRob3V0IDY0LWJpdCBncHJzIGFuZCBE Rm1vZGUgYW5kIEREbW9kZQorLQkgd2l0aG91dCBmcHJzLiAgKi8KKy0gICAgICAmJiBtb2RlICE9 IFRGbW9kZQorLSAgICAgICYmIG1vZGUgIT0gVERtb2RlCistICAgICAgJiYgKG1vZGUgIT0gRElt b2RlIHx8IFRBUkdFVF9QT1dFUlBDNjQpCistICAgICAgJiYgKChtb2RlICE9IERGbW9kZSAmJiBt b2RlICE9IEREbW9kZSkgfHwgVEFSR0VUX1BPV0VSUEM2NAorLQkgIHx8IChUQVJHRVRfSEFSRF9G TE9BVCAmJiBUQVJHRVRfRlBSUyAmJiBUQVJHRVRfRE9VQkxFX0ZMT0FUKSkpCisrCSAgIC8qIERv bid0IGRvIHRoaXMgZm9yIFRGbW9kZSBvciBURG1vZGUsIHNpbmNlIHRoZSByZXN1bHQgaXNuJ3QK KysJICAgICAgb2Zmc2V0dGFibGUuICBUaGUgc2FtZSBnb2VzIGZvciBESW1vZGUgd2l0aG91dCA2 NC1iaXQgZ3BycyBhbmQKKysJICAgICAgREZtb2RlIGFuZCBERG1vZGUgd2l0aG91dCBmcHJzLiAg Ki8KKysJICAgJiYgbW9kZSAhPSBURm1vZGUKKysJICAgJiYgbW9kZSAhPSBURG1vZGUKKysJICAg JiYgKG1vZGUgIT0gREltb2RlIHx8IFRBUkdFVF9QT1dFUlBDNjQpCisrCSAgICYmICgobW9kZSAh PSBERm1vZGUgJiYgbW9kZSAhPSBERG1vZGUpIHx8IFRBUkdFVF9QT1dFUlBDNjQKKysJICAgICAg IHx8IChUQVJHRVRfSEFSRF9GTE9BVCAmJiBUQVJHRVRfRlBSUyAmJiBUQVJHRVRfRE9VQkxFX0ZM T0FUKSkpCisgICAgIHsKKyAjaWYgVEFSR0VUX01BQ0hPCisgICAgICAgaWYgKGZsYWdfcGljKQor QEAgLTQzNTksMzcgKzQ4NjYsNjEgQEAgcnM2MDAwX2xlZ2l0aW1pemVfcmVsb2FkX2FkZHJlc3Mg KHJ0eCB4LAorIAkJICAgQkFTRV9SRUdfQ0xBU1MsIFBtb2RlLCBWT0lEbW9kZSwgMCwgMCwKKyAJ CSAgIG9wbnVtLCAoZW51bSByZWxvYWRfdHlwZSl0eXBlKTsKKyAgICAgICAqd2luID0gMTsKKy0g ICAgICByZXR1cm4geDsKKysgICAgICByZXQgPSB4OworICAgICB9CisgCisgICAvKiBSZWxvYWQg YW4gb2Zmc2V0IGFkZHJlc3Mgd3JhcHBlZCBieSBhbiBBTkQgdGhhdCByZXByZXNlbnRzIHRoZQor ICAgICAgbWFza2luZyBvZiB0aGUgbG93ZXIgYml0cy4gIFN0cmlwIHRoZSBvdXRlciBBTkQgYW5k IGxldCByZWxvYWQKKyAgICAgIGNvbnZlcnQgdGhlIG9mZnNldCBhZGRyZXNzIGludG8gYW4gaW5k aXJlY3QgYWRkcmVzcy4gICovCistICBpZiAoVEFSR0VUX0FMVElWRUMKKy0gICAgICAmJiBBTFRJ VkVDX1ZFQ1RPUl9NT0RFIChtb2RlKQorLSAgICAgICYmIEdFVF9DT0RFICh4KSA9PSBBTkQKKy0g ICAgICAmJiBHRVRfQ09ERSAoWEVYUCAoeCwgMCkpID09IFBMVVMKKy0gICAgICAmJiBHRVRfQ09E RSAoWEVYUCAoWEVYUCAoeCwgMCksIDApKSA9PSBSRUcKKy0gICAgICAmJiBHRVRfQ09ERSAoWEVY UCAoWEVYUCAoeCwgMCksIDEpKSA9PSBDT05TVF9JTlQKKy0gICAgICAmJiBHRVRfQ09ERSAoWEVY UCAoeCwgMSkpID09IENPTlNUX0lOVAorLSAgICAgICYmIElOVFZBTCAoWEVYUCAoeCwgMSkpID09 IC0xNikKKysgIGVsc2UgaWYgKFZFQ1RPUl9NRU1fQUxUSVZFQ19QIChtb2RlKQorKwkgICAmJiBH RVRfQ09ERSAoeCkgPT0gQU5ECisrCSAgICYmIEdFVF9DT0RFIChYRVhQICh4LCAwKSkgPT0gUExV UworKwkgICAmJiBHRVRfQ09ERSAoWEVYUCAoWEVYUCAoeCwgMCksIDApKSA9PSBSRUcKKysJICAg JiYgR0VUX0NPREUgKFhFWFAgKFhFWFAgKHgsIDApLCAxKSkgPT0gQ09OU1RfSU5UCisrCSAgICYm IEdFVF9DT0RFIChYRVhQICh4LCAxKSkgPT0gQ09OU1RfSU5UCisrCSAgICYmIElOVFZBTCAoWEVY UCAoeCwgMSkpID09IC0xNikKKyAgICAgeworICAgICAgIHggPSBYRVhQICh4LCAwKTsKKyAgICAg ICAqd2luID0gMTsKKy0gICAgICByZXR1cm4geDsKKysgICAgICByZXQgPSB4OworICAgICB9Cisg CistICBpZiAoVEFSR0VUX1RPQworLSAgICAgICYmIEdFVF9DT0RFICh4KSA9PSBTWU1CT0xfUkVG CistICAgICAgJiYgY29uc3RhbnRfcG9vbF9leHByX3AgKHgpCistICAgICAgJiYgQVNNX09VVFBV VF9TUEVDSUFMX1BPT0xfRU5UUllfUCAoZ2V0X3Bvb2xfY29uc3RhbnQgKHgpLCBtb2RlKSkKKysg IGVsc2UgaWYgKFRBUkdFVF9UT0MKKysJICAgJiYgR0VUX0NPREUgKHgpID09IFNZTUJPTF9SRUYK KysJICAgJiYgY29uc3RhbnRfcG9vbF9leHByX3AgKHgpCisrCSAgICYmIEFTTV9PVVRQVVRfU1BF Q0lBTF9QT09MX0VOVFJZX1AgKGdldF9wb29sX2NvbnN0YW50ICh4KSwgbW9kZSkpCisgICAgIHsK KyAgICAgICB4ID0gY3JlYXRlX1RPQ19yZWZlcmVuY2UgKHgpOworICAgICAgICp3aW4gPSAxOwor LSAgICAgIHJldHVybiB4OworKyAgICAgIHJldCA9IHg7CisrICAgIH0KKysKKysgIGVsc2UKKysg ICAgeworKyAgICAgICp3aW4gPSAwOworKyAgICAgIHJldCA9IHg7CisgICAgIH0KKy0gICp3aW4g PSAwOworLSAgcmV0dXJuIHg7CisrCisrICBpZiAoVEFSR0VUX0RFQlVHX0FERFIpCisrICAgIHsK KysgICAgICBmcHJpbnRmIChzdGRlcnIsCisrCSAgICAgICAiXG5yczYwMDBfbGVnaXRpbWl6ZV9y ZWxvYWRfYWRkcmVzczogbW9kZSA9ICVzLCBvcG51bSA9ICVkLCAiCisrCSAgICAgICAidHlwZSA9 ICVkLCBpbmRfbGV2ZWxzID0gJWQsIHdpbiA9ICVkLCBvcmlnaW5hbCBhZGRyOlxuIiwKKysJICAg ICAgIEdFVF9NT0RFX05BTUUgKG1vZGUpLCBvcG51bSwgdHlwZSwgaW5kX2xldmVscywgKndpbik7 CisrICAgICAgZGVidWdfcnR4IChvcmlnX3gpOworKworKyAgICAgIGlmIChvcmlnX3ggPT0gcmV0 KQorKwlmcHJpbnRmIChzdGRlcnIsICJTYW1lIGFkZHJlc3MgcmV0dXJuZWRcbiIpOworKyAgICAg IGVsc2UgaWYgKCFyZXQpCisrCWZwcmludGYgKHN0ZGVyciwgIk5VTEwgcmV0dXJuZWRcbiIpOwor KyAgICAgIGVsc2UKKysJeworKwkgIGZwcmludGYgKHN0ZGVyciwgIk5ldyBhZGRyZXNzOlxuIik7 CisrCSAgZGVidWdfcnR4IChyZXQpOworKwl9CisrICAgIH0KKysKKysgIHJldHVybiByZXQ7Cisg fQorIAorIC8qIEdPX0lGX0xFR0lUSU1BVEVfQUREUkVTUyByZWNvZ25pemVzIGFuIFJUTCBleHBy ZXNzaW9uCitAQCAtNDQxMiw3NyArNDk0MywxMDEgQEAgcnM2MDAwX2xlZ2l0aW1pemVfcmVsb2Fk X2FkZHJlc3MgKHJ0eCB4LAorIGludAorIHJzNjAwMF9sZWdpdGltYXRlX2FkZHJlc3MgKGVudW0g bWFjaGluZV9tb2RlIG1vZGUsIHJ0eCB4LCBpbnQgcmVnX29rX3N0cmljdCkKKyB7CisrICBpbnQg cmV0OworKyAgcnR4IG9yaWdfeCA9IHg7CisrCisgICAvKiBJZiB0aGlzIGlzIGFuIHVuYWxpZ25l ZCBzdHZ4L2xkdnggdHlwZSBhZGRyZXNzLCBkaXNjYXJkIHRoZSBvdXRlciBBTkQuICAqLworICAg aWYgKFRBUkdFVF9BTFRJVkVDCistICAgICAgJiYgQUxUSVZFQ19WRUNUT1JfTU9ERSAobW9kZSkK KysgICAgICAmJiAoQUxUSVZFQ19WRUNUT1JfTU9ERSAobW9kZSkgfHwgVlNYX1ZFQ1RPUl9NT0RF IChtb2RlKSkKKyAgICAgICAmJiBHRVRfQ09ERSAoeCkgPT0gQU5ECisgICAgICAgJiYgR0VUX0NP REUgKFhFWFAgKHgsIDEpKSA9PSBDT05TVF9JTlQKKyAgICAgICAmJiBJTlRWQUwgKFhFWFAgKHgs IDEpKSA9PSAtMTYpCisgICAgIHggPSBYRVhQICh4LCAwKTsKKyAKKyAgIGlmIChSUzYwMDBfU1lN Qk9MX1JFRl9UTFNfUCAoeCkpCistICAgIHJldHVybiAwOworLSAgaWYgKGxlZ2l0aW1hdGVfaW5k aXJlY3RfYWRkcmVzc19wICh4LCByZWdfb2tfc3RyaWN0KSkKKy0gICAgcmV0dXJuIDE7CistICBp ZiAoKEdFVF9DT0RFICh4KSA9PSBQUkVfSU5DIHx8IEdFVF9DT0RFICh4KSA9PSBQUkVfREVDKQor LSAgICAgICYmICFBTFRJVkVDX1ZFQ1RPUl9NT0RFIChtb2RlKQorLSAgICAgICYmICFTUEVfVkVD VE9SX01PREUgKG1vZGUpCistICAgICAgJiYgbW9kZSAhPSBURm1vZGUKKy0gICAgICAmJiBtb2Rl ICE9IFREbW9kZQorLSAgICAgIC8qIFJlc3RyaWN0IGFkZHJlc3NpbmcgZm9yIERJIGJlY2F1c2Ug b2Ygb3VyIFNVQlJFRyBoYWNrZXJ5LiAgKi8KKy0gICAgICAmJiAhKFRBUkdFVF9FNTAwX0RPVUJM RQorLQkgICAmJiAobW9kZSA9PSBERm1vZGUgfHwgbW9kZSA9PSBERG1vZGUgfHwgbW9kZSA9PSBE SW1vZGUpKQorLSAgICAgICYmIFRBUkdFVF9VUERBVEUKKy0gICAgICAmJiBsZWdpdGltYXRlX2lu ZGlyZWN0X2FkZHJlc3NfcCAoWEVYUCAoeCwgMCksIHJlZ19va19zdHJpY3QpKQorLSAgICByZXR1 cm4gMTsKKy0gIGlmIChsZWdpdGltYXRlX3NtYWxsX2RhdGFfcCAobW9kZSwgeCkpCistICAgIHJl dHVybiAxOworLSAgaWYgKGxlZ2l0aW1hdGVfY29uc3RhbnRfcG9vbF9hZGRyZXNzX3AgKHgpKQor LSAgICByZXR1cm4gMTsKKysgICAgcmV0ID0gMDsKKysgIGVsc2UgaWYgKGxlZ2l0aW1hdGVfaW5k aXJlY3RfYWRkcmVzc19wICh4LCByZWdfb2tfc3RyaWN0KSkKKysgICAgcmV0ID0gMTsKKysgIGVs c2UgaWYgKChHRVRfQ09ERSAoeCkgPT0gUFJFX0lOQyB8fCBHRVRfQ09ERSAoeCkgPT0gUFJFX0RF QykKKysJICAgJiYgIVZFQ1RPUl9NRU1fQUxUSVZFQ19QIChtb2RlKQorKwkgICAvKiAmJiAhVkVD VE9SX01FTV9WU1hfUCAobW9kZSkgKi8KKysJICAgJiYgKFRBUkdFVF9TUEUgJiYgIVNQRV9WRUNU T1JfTU9ERSAobW9kZSkpCisrCSAgICYmIG1vZGUgIT0gVEZtb2RlCisrCSAgICYmIG1vZGUgIT0g VERtb2RlCisrCSAgIC8qIFJlc3RyaWN0IGFkZHJlc3NpbmcgZm9yIERJIGJlY2F1c2Ugb2Ygb3Vy IFNVQlJFRyBoYWNrZXJ5LiAgKi8KKysJICAgJiYgIShUQVJHRVRfRTUwMF9ET1VCTEUKKysJCSYm IChtb2RlID09IERGbW9kZSB8fCBtb2RlID09IEREbW9kZSB8fCBtb2RlID09IERJbW9kZSkpCisr CSAgICYmIFRBUkdFVF9VUERBVEUKKysJICAgJiYgbGVnaXRpbWF0ZV9pbmRpcmVjdF9hZGRyZXNz X3AgKFhFWFAgKHgsIDApLCByZWdfb2tfc3RyaWN0KSkKKysgICAgcmV0ID0gMTsKKysgIGVsc2Ug aWYgKGxlZ2l0aW1hdGVfc21hbGxfZGF0YV9wIChtb2RlLCB4KSkKKysgICAgcmV0ID0gMTsKKysg IGVsc2UgaWYgKGxlZ2l0aW1hdGVfY29uc3RhbnRfcG9vbF9hZGRyZXNzX3AgKHgpKQorKyAgICBy ZXQgPSAxOworICAgLyogSWYgbm90IFJFR19PS19TVFJJQ1QgKGJlZm9yZSByZWxvYWQpIGxldCBw YXNzIGFueSBzdGFjayBvZmZzZXQuICAqLworLSAgaWYgKCEgcmVnX29rX3N0cmljdAorLSAgICAg ICYmIEdFVF9DT0RFICh4KSA9PSBQTFVTCistICAgICAgJiYgR0VUX0NPREUgKFhFWFAgKHgsIDAp KSA9PSBSRUcKKy0gICAgICAmJiAoWEVYUCAoeCwgMCkgPT0gdmlydHVhbF9zdGFja192YXJzX3J0 eAorLQkgIHx8IFhFWFAgKHgsIDApID09IGFyZ19wb2ludGVyX3J0eCkKKy0gICAgICAmJiBHRVRf Q09ERSAoWEVYUCAoeCwgMSkpID09IENPTlNUX0lOVCkKKy0gICAgcmV0dXJuIDE7CistICBpZiAo cnM2MDAwX2xlZ2l0aW1hdGVfb2Zmc2V0X2FkZHJlc3NfcCAobW9kZSwgeCwgcmVnX29rX3N0cmlj dCkpCistICAgIHJldHVybiAxOworLSAgaWYgKG1vZGUgIT0gVEltb2RlCistICAgICAgJiYgbW9k ZSAhPSBURm1vZGUKKy0gICAgICAmJiBtb2RlICE9IFREbW9kZQorLSAgICAgICYmICgoVEFSR0VU X0hBUkRfRkxPQVQgJiYgVEFSR0VUX0ZQUlMpCistCSAgfHwgVEFSR0VUX1BPV0VSUEM2NAorLQkg IHx8IChtb2RlICE9IERGbW9kZSAmJiBtb2RlICE9IEREbW9kZSkKKy0JICB8fCAoVEFSR0VUX0U1 MDBfRE9VQkxFICYmIG1vZGUgIT0gRERtb2RlKSkKKy0gICAgICAmJiAoVEFSR0VUX1BPV0VSUEM2 NCB8fCBtb2RlICE9IERJbW9kZSkKKy0gICAgICAmJiAhYXZvaWRpbmdfaW5kZXhlZF9hZGRyZXNz X3AgKG1vZGUpCistICAgICAgJiYgbGVnaXRpbWF0ZV9pbmRleGVkX2FkZHJlc3NfcCAoeCwgcmVn X29rX3N0cmljdCkpCistICAgIHJldHVybiAxOworLSAgaWYgKEdFVF9DT0RFICh4KSA9PSBQUkVf TU9ESUZZCistICAgICAgJiYgbW9kZSAhPSBUSW1vZGUKKy0gICAgICAmJiBtb2RlICE9IFRGbW9k ZQorLSAgICAgICYmIG1vZGUgIT0gVERtb2RlCistICAgICAgJiYgKChUQVJHRVRfSEFSRF9GTE9B VCAmJiBUQVJHRVRfRlBSUyAmJiBUQVJHRVRfRE9VQkxFX0ZMT0FUKQorLQkgIHx8IFRBUkdFVF9Q T1dFUlBDNjQKKy0JICB8fCAoKG1vZGUgIT0gREZtb2RlICYmIG1vZGUgIT0gRERtb2RlKSB8fCBU QVJHRVRfRTUwMF9ET1VCTEUpKQorLSAgICAgICYmIChUQVJHRVRfUE9XRVJQQzY0IHx8IG1vZGUg IT0gREltb2RlKQorLSAgICAgICYmICFBTFRJVkVDX1ZFQ1RPUl9NT0RFIChtb2RlKQorLSAgICAg ICYmICFTUEVfVkVDVE9SX01PREUgKG1vZGUpCistICAgICAgLyogUmVzdHJpY3QgYWRkcmVzc2lu ZyBmb3IgREkgYmVjYXVzZSBvZiBvdXIgU1VCUkVHIGhhY2tlcnkuICAqLworLSAgICAgICYmICEo VEFSR0VUX0U1MDBfRE9VQkxFCistCSAgICYmIChtb2RlID09IERGbW9kZSB8fCBtb2RlID09IERE bW9kZSB8fCBtb2RlID09IERJbW9kZSkpCistICAgICAgJiYgVEFSR0VUX1VQREFURQorLSAgICAg ICYmIGxlZ2l0aW1hdGVfaW5kaXJlY3RfYWRkcmVzc19wIChYRVhQICh4LCAwKSwgcmVnX29rX3N0 cmljdCkKKy0gICAgICAmJiAocnM2MDAwX2xlZ2l0aW1hdGVfb2Zmc2V0X2FkZHJlc3NfcCAobW9k ZSwgWEVYUCAoeCwgMSksIHJlZ19va19zdHJpY3QpCistCSAgfHwgKCFhdm9pZGluZ19pbmRleGVk X2FkZHJlc3NfcCAobW9kZSkKKy0JICAgICAgJiYgbGVnaXRpbWF0ZV9pbmRleGVkX2FkZHJlc3Nf cCAoWEVYUCAoeCwgMSksIHJlZ19va19zdHJpY3QpKSkKKy0gICAgICAmJiBydHhfZXF1YWxfcCAo WEVYUCAoWEVYUCAoeCwgMSksIDApLCBYRVhQICh4LCAwKSkpCistICAgIHJldHVybiAxOworLSAg aWYgKGxlZ2l0aW1hdGVfbG9fc3VtX2FkZHJlc3NfcCAobW9kZSwgeCwgcmVnX29rX3N0cmljdCkp CistICAgIHJldHVybiAxOworLSAgcmV0dXJuIDA7CisrICBlbHNlIGlmICghIHJlZ19va19zdHJp Y3QKKysJICAgJiYgR0VUX0NPREUgKHgpID09IFBMVVMKKysJICAgJiYgR0VUX0NPREUgKFhFWFAg KHgsIDApKSA9PSBSRUcKKysJICAgJiYgKFhFWFAgKHgsIDApID09IHZpcnR1YWxfc3RhY2tfdmFy c19ydHgKKysJICAgICAgIHx8IFhFWFAgKHgsIDApID09IGFyZ19wb2ludGVyX3J0eCkKKysJICAg JiYgR0VUX0NPREUgKFhFWFAgKHgsIDEpKSA9PSBDT05TVF9JTlQpCisrICAgIHJldCA9IDE7Cisr ICBlbHNlIGlmIChyczYwMDBfbGVnaXRpbWF0ZV9vZmZzZXRfYWRkcmVzc19wIChtb2RlLCB4LCBy ZWdfb2tfc3RyaWN0KSkKKysgICAgcmV0ID0gMTsKKysgIGVsc2UgaWYgKG1vZGUgIT0gVEltb2Rl CisrCSAgICYmIG1vZGUgIT0gVEZtb2RlCisrCSAgICYmIG1vZGUgIT0gVERtb2RlCisrCSAgICYm ICgoVEFSR0VUX0hBUkRfRkxPQVQgJiYgVEFSR0VUX0ZQUlMpCisrCSAgICAgICB8fCBUQVJHRVRf UE9XRVJQQzY0CisrCSAgICAgICB8fCAobW9kZSAhPSBERm1vZGUgJiYgbW9kZSAhPSBERG1vZGUp CisrCSAgICAgICB8fCAoVEFSR0VUX0U1MDBfRE9VQkxFICYmIG1vZGUgIT0gRERtb2RlKSkKKysJ ICAgJiYgKFRBUkdFVF9QT1dFUlBDNjQgfHwgbW9kZSAhPSBESW1vZGUpCisrCSAgICYmICFhdm9p ZGluZ19pbmRleGVkX2FkZHJlc3NfcCAobW9kZSkKKysJICAgJiYgbGVnaXRpbWF0ZV9pbmRleGVk X2FkZHJlc3NfcCAoeCwgcmVnX29rX3N0cmljdCkpCisrICAgIHJldCA9IDE7CisrICBlbHNlIGlm IChHRVRfQ09ERSAoeCkgPT0gUFJFX01PRElGWQorKwkgICAmJiBWRUNUT1JfTUVNX1ZTWF9QICht b2RlKQorKwkgICAmJiBUQVJHRVRfVVBEQVRFCisrCSAgICYmIGxlZ2l0aW1hdGVfaW5kZXhlZF9h ZGRyZXNzX3AgKFhFWFAgKHgsIDEpLCByZWdfb2tfc3RyaWN0KQorKwkgICAmJiBydHhfZXF1YWxf cCAoWEVYUCAoWEVYUCAoeCwgMSksIDApLCBYRVhQICh4LCAwKSkpCisrICAgIHJldCA9IDE7Cisr ICBlbHNlIGlmIChHRVRfQ09ERSAoeCkgPT0gUFJFX01PRElGWQorKwkgICAmJiBtb2RlICE9IFRJ bW9kZQorKwkgICAmJiBtb2RlICE9IFRGbW9kZQorKwkgICAmJiBtb2RlICE9IFREbW9kZQorKwkg ICAmJiAoKFRBUkdFVF9IQVJEX0ZMT0FUICYmIFRBUkdFVF9GUFJTICYmIFRBUkdFVF9ET1VCTEVf RkxPQVQpCisrCSAgICAgICB8fCBUQVJHRVRfUE9XRVJQQzY0CisrCSAgICAgICB8fCAoKG1vZGUg IT0gREZtb2RlICYmIG1vZGUgIT0gRERtb2RlKSB8fCBUQVJHRVRfRTUwMF9ET1VCTEUpKQorKwkg ICAmJiAoVEFSR0VUX1BPV0VSUEM2NCB8fCBtb2RlICE9IERJbW9kZSkKKysJICAgJiYgIVZFQ1RP Ul9NRU1fQUxUSVZFQ19QIChtb2RlKQorKwkgICAmJiAoIVRBUkdFVF9TUEUgfHwgIVNQRV9WRUNU T1JfTU9ERSAobW9kZSkpCisrCSAgIC8qIFJlc3RyaWN0IGFkZHJlc3NpbmcgZm9yIERJIGJlY2F1 c2Ugb2Ygb3VyIFNVQlJFRyBoYWNrZXJ5LiAgKi8KKysJICAgJiYgIShUQVJHRVRfRTUwMF9ET1VC TEUKKysJCSYmIChtb2RlID09IERGbW9kZSB8fCBtb2RlID09IEREbW9kZSB8fCBtb2RlID09IERJ bW9kZSkpCisrCSAgICYmIFRBUkdFVF9VUERBVEUKKysJICAgJiYgbGVnaXRpbWF0ZV9pbmRpcmVj dF9hZGRyZXNzX3AgKFhFWFAgKHgsIDApLCByZWdfb2tfc3RyaWN0KQorKwkgICAmJiAocnM2MDAw X2xlZ2l0aW1hdGVfb2Zmc2V0X2FkZHJlc3NfcCAobW9kZSwgWEVYUCAoeCwgMSksIHJlZ19va19z dHJpY3QpCisrCSAgICAgICB8fCAoIWF2b2lkaW5nX2luZGV4ZWRfYWRkcmVzc19wIChtb2RlKQor KwkJICAgJiYgbGVnaXRpbWF0ZV9pbmRleGVkX2FkZHJlc3NfcCAoWEVYUCAoeCwgMSksIHJlZ19v a19zdHJpY3QpKSkKKysJICAgJiYgcnR4X2VxdWFsX3AgKFhFWFAgKFhFWFAgKHgsIDEpLCAwKSwg WEVYUCAoeCwgMCkpKQorKyAgICByZXQgPSAxOworKyAgZWxzZSBpZiAobGVnaXRpbWF0ZV9sb19z dW1fYWRkcmVzc19wIChtb2RlLCB4LCByZWdfb2tfc3RyaWN0KSkKKysgICAgcmV0ID0gMTsKKysg IGVsc2UKKysgICAgcmV0ID0gMDsKKysKKysgIGlmIChUQVJHRVRfREVCVUdfQUREUikKKysgICAg eworKyAgICAgIGZwcmludGYgKHN0ZGVyciwKKysJICAgICAgICJcbnJzNjAwMF9sZWdpdGltYXRl X2FkZHJlc3M6IHJldHVybiA9ICVkLCBtb2RlID0gJXMsICIKKysJICAgICAgICJzdHJpY3QgPSAl ZFxuIiwKKysJICAgICAgIHJldCwKKysJICAgICAgIEdFVF9NT0RFX05BTUUgKG1vZGUpLAorKwkg ICAgICAgcmVnX29rX3N0cmljdCk7CisrICAgICAgZGVidWdfcnR4IChvcmlnX3gpOworKyAgICB9 CisrCisrICByZXR1cm4gcmV0OworIH0KKyAKKyAvKiBHbyB0byBMQUJFTCBpZiBBRERSIChhIGxl Z2l0aW1hdGUgYWRkcmVzcyBleHByZXNzaW9uKQorQEAgLTQ0OTksMjggKzUwNTQsNDAgQEAgcnM2 MDAwX2xlZ2l0aW1hdGVfYWRkcmVzcyAoZW51bSBtYWNoaW5lXworIGJvb2wKKyByczYwMDBfbW9k ZV9kZXBlbmRlbnRfYWRkcmVzcyAocnR4IGFkZHIpCisgeworKyAgYm9vbCByZXQgPSBmYWxzZTsK KysKKyAgIHN3aXRjaCAoR0VUX0NPREUgKGFkZHIpKQorICAgICB7CisgICAgIGNhc2UgUExVUzoK KyAgICAgICBpZiAoR0VUX0NPREUgKFhFWFAgKGFkZHIsIDEpKSA9PSBDT05TVF9JTlQpCisgCXsK KyAJICB1bnNpZ25lZCBIT1NUX1dJREVfSU5UIHZhbCA9IElOVFZBTCAoWEVYUCAoYWRkciwgMSkp OworLQkgIHJldHVybiB2YWwgKyAxMiArIDB4ODAwMCA+PSAweDEwMDAwOworKwkgIHJldCA9ICh2 YWwgKyAxMiArIDB4ODAwMCA+PSAweDEwMDAwKTsKKyAJfQorICAgICAgIGJyZWFrOworIAorICAg ICBjYXNlIExPX1NVTToKKy0gICAgICByZXR1cm4gdHJ1ZTsKKysgICAgICByZXQgPSB0cnVlOwor KyAgICAgIGJyZWFrOworIAorICAgICAvKiBBdXRvLWluY3JlbWVudCBjYXNlcyBhcmUgbm93IHRy ZWF0ZWQgZ2VuZXJpY2FsbHkgaW4gcmVjb2cuYy4gICovCisgICAgIGNhc2UgUFJFX01PRElGWToK Ky0gICAgICByZXR1cm4gVEFSR0VUX1VQREFURTsKKysgICAgICByZXQgPSAoVEFSR0VUX1VQREFU RSAhPSAwKTsKKysgICAgICBicmVhazsKKyAKKyAgICAgZGVmYXVsdDoKKyAgICAgICBicmVhazsK KyAgICAgfQorIAorLSAgcmV0dXJuIGZhbHNlOworKyAgaWYgKFRBUkdFVF9ERUJVR19BRERSKQor KyAgICB7CisrICAgICAgZnByaW50ZiAoc3RkZXJyLAorKwkgICAgICAgIlxucnM2MDAwX21vZGVf ZGVwZW5kZW50X2FkZHJlc3M6IHJldCA9ICVkXG4iLAorKwkgICAgICAgKGludClyZXQpOworKyAg ICAgIGRlYnVnX3J0eCAoYWRkcik7CisrICAgIH0KKysKKysgIHJldHVybiByZXQ7CisgfQorIAor IC8qIEltcGxlbWVudCBGSU5EX0JBU0VfVEVSTS4gICovCitAQCAtNDU3MSw0MyArNTEzOCw2IEBA IHJzNjAwMF9vZmZzZXR0YWJsZV9tZW1yZWZfcCAocnR4IG9wKQorICAgcmV0dXJuIHJzNjAwMF9s ZWdpdGltYXRlX29mZnNldF9hZGRyZXNzX3AgKEdFVF9NT0RFIChvcCksIFhFWFAgKG9wLCAwKSwg MSk7CisgfQorIAorLS8qIFJldHVybiBudW1iZXIgb2YgY29uc2VjdXRpdmUgaGFyZCByZWdzIG5l ZWRlZCBzdGFydGluZyBhdCByZWcgUkVHTk8KKy0gICB0byBob2xkIHNvbWV0aGluZyBvZiBtb2Rl IE1PREUuCistICAgVGhpcyBpcyBvcmRpbmFyaWx5IHRoZSBsZW5ndGggaW4gd29yZHMgb2YgYSB2 YWx1ZSBvZiBtb2RlIE1PREUKKy0gICBidXQgY2FuIGJlIGxlc3MgZm9yIGNlcnRhaW4gbW9kZXMg aW4gc3BlY2lhbCBsb25nIHJlZ2lzdGVycy4KKy0KKy0gICBGb3IgdGhlIFNQRSwgR1BScyBhcmUg NjQgYml0cyBidXQgb25seSAzMiBiaXRzIGFyZSB2aXNpYmxlIGluCistICAgc2NhbGFyIGluc3Ry dWN0aW9ucy4gIFRoZSB1cHBlciAzMiBiaXRzIGFyZSBvbmx5IGF2YWlsYWJsZSB0byB0aGUKKy0g ICBTSU1EIGluc3RydWN0aW9ucy4KKy0KKy0gICBQT1dFUiBhbmQgUG93ZXJQQyBHUFJzIGhvbGQg MzIgYml0cyB3b3J0aDsKKy0gICBQb3dlclBDNjQgR1BScyBhbmQgRlBScyBwb2ludCByZWdpc3Rl ciBob2xkcyA2NCBiaXRzIHdvcnRoLiAgKi8KKy0KKy1pbnQKKy1yczYwMDBfaGFyZF9yZWdub19u cmVncyAoaW50IHJlZ25vLCBlbnVtIG1hY2hpbmVfbW9kZSBtb2RlKQorLXsKKy0gIGlmIChGUF9S RUdOT19QIChyZWdubykpCistICAgIHJldHVybiAoR0VUX01PREVfU0laRSAobW9kZSkgKyBVTklU U19QRVJfRlBfV09SRCAtIDEpIC8gVU5JVFNfUEVSX0ZQX1dPUkQ7CistCistICBpZiAoU1BFX1NJ TURfUkVHTk9fUCAocmVnbm8pICYmIFRBUkdFVF9TUEUgJiYgU1BFX1ZFQ1RPUl9NT0RFIChtb2Rl KSkKKy0gICAgcmV0dXJuIChHRVRfTU9ERV9TSVpFIChtb2RlKSArIFVOSVRTX1BFUl9TUEVfV09S RCAtIDEpIC8gVU5JVFNfUEVSX1NQRV9XT1JEOworLQorLSAgaWYgKEFMVElWRUNfUkVHTk9fUCAo cmVnbm8pKQorLSAgICByZXR1cm4KKy0gICAgICAoR0VUX01PREVfU0laRSAobW9kZSkgKyBVTklU U19QRVJfQUxUSVZFQ19XT1JEIC0gMSkgLyBVTklUU19QRVJfQUxUSVZFQ19XT1JEOworLQorLSAg LyogVGhlIHZhbHVlIHJldHVybmVkIGZvciBTQ21vZGUgaW4gdGhlIEU1MDAgZG91YmxlIGNhc2Ug aXMgMiBmb3IKKy0gICAgIEFCSSBjb21wYXRpYmlsaXR5OyBzdG9yaW5nIGFuIFNDbW9kZSB2YWx1 ZSBpbiBhIHNpbmdsZSByZWdpc3RlcgorLSAgICAgd291bGQgcmVxdWlyZSBmdW5jdGlvbl9hcmcg YW5kIHJzNjAwMF9zcGVfZnVuY3Rpb25fYXJnIHRvIGhhbmRsZQorLSAgICAgU0Ntb2RlIHNvIGFz IHRvIHBhc3MgdGhlIHZhbHVlIGNvcnJlY3RseSBpbiBhIHBhaXIgb2YKKy0gICAgIHJlZ2lzdGVy cy4gICovCistICBpZiAoVEFSR0VUX0U1MDBfRE9VQkxFICYmIEZMT0FUX01PREVfUCAobW9kZSkg JiYgbW9kZSAhPSBTQ21vZGUKKy0gICAgICAmJiAhREVDSU1BTF9GTE9BVF9NT0RFX1AgKG1vZGUp KQorLSAgICByZXR1cm4gKEdFVF9NT0RFX1NJWkUgKG1vZGUpICsgVU5JVFNfUEVSX0ZQX1dPUkQg LSAxKSAvIFVOSVRTX1BFUl9GUF9XT1JEOworLQorLSAgcmV0dXJuIChHRVRfTU9ERV9TSVpFICht b2RlKSArIFVOSVRTX1BFUl9XT1JEIC0gMSkgLyBVTklUU19QRVJfV09SRDsKKy19CistCisgLyog Q2hhbmdlIHJlZ2lzdGVyIHVzYWdlIGNvbmRpdGlvbmFsIG9uIHRhcmdldCBmbGFncy4gICovCisg dm9pZAorIHJzNjAwMF9jb25kaXRpb25hbF9yZWdpc3Rlcl91c2FnZSAodm9pZCkKK0BAIC00Njcy LDE0ICs1MjAyLDE0IEBAIHJzNjAwMF9jb25kaXRpb25hbF9yZWdpc3Rlcl91c2FnZSAodm9pZCkK KyAJPSBjYWxsX3JlYWxseV91c2VkX3JlZ3NbMTRdID0gMTsKKyAgICAgfQorIAorLSAgaWYgKCFU QVJHRVRfQUxUSVZFQykKKysgIGlmICghVEFSR0VUX0FMVElWRUMgJiYgIVRBUkdFVF9WU1gpCisg ICAgIHsKKyAgICAgICBmb3IgKGkgPSBGSVJTVF9BTFRJVkVDX1JFR05POyBpIDw9IExBU1RfQUxU SVZFQ19SRUdOTzsgKytpKQorIAlmaXhlZF9yZWdzW2ldID0gY2FsbF91c2VkX3JlZ3NbaV0gPSBj YWxsX3JlYWxseV91c2VkX3JlZ3NbaV0gPSAxOworICAgICAgIGNhbGxfcmVhbGx5X3VzZWRfcmVn c1tWUlNBVkVfUkVHTk9dID0gMTsKKyAgICAgfQorIAorLSAgaWYgKFRBUkdFVF9BTFRJVkVDKQor KyAgaWYgKFRBUkdFVF9BTFRJVkVDIHx8IFRBUkdFVF9WU1gpCisgICAgIGdsb2JhbF9yZWdzW1ZT Q1JfUkVHTk9dID0gMTsKKyAKKyAgIGlmIChUQVJHRVRfQUxUSVZFQ19BQkkpCitAQCAtNTEwMSw2 ICs1NjMxLDggQEAgcnM2MDAwX2VtaXRfbW92ZSAocnR4IGRlc3QsIHJ0eCBzb3VyY2UsIAorICAg ICBjYXNlIFYyU0Ztb2RlOgorICAgICBjYXNlIFYyU0ltb2RlOgorICAgICBjYXNlIFYxREltb2Rl OgorKyAgICBjYXNlIFYyREZtb2RlOgorKyAgICBjYXNlIFYyREltb2RlOgorICAgICAgIGlmIChD T05TVEFOVF9QIChvcGVyYW5kc1sxXSkKKyAJICAmJiAhZWFzeV92ZWN0b3JfY29uc3RhbnQgKG9w ZXJhbmRzWzFdLCBtb2RlKSkKKyAJb3BlcmFuZHNbMV0gPSBmb3JjZV9jb25zdF9tZW0gKG1vZGUs IG9wZXJhbmRzWzFdKTsKK0BAIC01MjcwLDYgKzU4MDIsOSBAQCByczYwMDBfZW1pdF9tb3ZlIChy dHggZGVzdCwgcnR4IHNvdXJjZSwgCisgICAgICAgYnJlYWs7CisgCisgICAgIGNhc2UgVEltb2Rl OgorKyAgICAgIGlmIChWRUNUT1JfTUVNX0FMVElWRUNfT1JfVlNYX1AgKFRJbW9kZSkpCisrCWJy ZWFrOworKworICAgICAgIHJzNjAwMF9lbGltaW5hdGVfaW5kZXhlZF9tZW1yZWZzIChvcGVyYW5k cyk7CisgCisgICAgICAgaWYgKFRBUkdFVF9QT1dFUikKK0BAIC01Mjg1LDcgKzU4MjAsNyBAQCBy czYwMDBfZW1pdF9tb3ZlIChydHggZGVzdCwgcnR4IHNvdXJjZSwgCisgICAgICAgYnJlYWs7Cisg CisgICAgIGRlZmF1bHQ6CistICAgICAgZ2NjX3VucmVhY2hhYmxlICgpOworKyAgICAgIGZhdGFs X2luc24gKCJiYWQgbW92ZSIsIGdlbl9ydHhfU0VUIChWT0lEbW9kZSwgZGVzdCwgc291cmNlKSk7 CisgICAgIH0KKyAKKyAgIC8qIEFib3ZlLCB3ZSBtYXkgaGF2ZSBjYWxsZWQgZm9yY2VfY29uc3Rf bWVtIHdoaWNoIG1heSBoYXZlIHJldHVybmVkCitAQCAtNTMwNSwxMCArNTg0MCwxMCBAQCByczYw MDBfZW1pdF9tb3ZlIChydHggZGVzdCwgcnR4IHNvdXJjZSwgCisgICAgJiYgVEFSR0VUX0hBUkRf RkxPQVQgJiYgVEFSR0VUX0ZQUlMpCisgCisgLyogTm9uemVybyBpZiB3ZSBjYW4gdXNlIGFuIEFs dGlWZWMgcmVnaXN0ZXIgdG8gcGFzcyB0aGlzIGFyZy4gICovCistI2RlZmluZSBVU0VfQUxUSVZF Q19GT1JfQVJHX1AoQ1VNLE1PREUsVFlQRSxOQU1FRCkJXAorLSAgKEFMVElWRUNfVkVDVE9SX01P REUgKE1PREUpCQkJCVwKKy0gICAmJiAoQ1VNKS0+dnJlZ25vIDw9IEFMVElWRUNfQVJHX01BWF9S RUcJCVwKKy0gICAmJiBUQVJHRVRfQUxUSVZFQ19BQkkJCQkJXAorKyNkZWZpbmUgVVNFX0FMVElW RUNfRk9SX0FSR19QKENVTSxNT0RFLFRZUEUsTkFNRUQpCQlcCisrICAoKEFMVElWRUNfVkVDVE9S X01PREUgKE1PREUpIHx8IFZTWF9WRUNUT1JfTU9ERSAoTU9ERSkpCVwKKysgICAmJiAoQ1VNKS0+ dnJlZ25vIDw9IEFMVElWRUNfQVJHX01BWF9SRUcJCQlcCisrICAgJiYgVEFSR0VUX0FMVElWRUNf QUJJCQkJCQlcCisgICAgJiYgKE5BTUVEKSkKKyAKKyAvKiBSZXR1cm4gYSBub256ZXJvIHZhbHVl IHRvIHNheSB0byByZXR1cm4gdGhlIGZ1bmN0aW9uIHZhbHVlIGluCitAQCAtNTU0OSw3ICs2MDg0 LDcgQEAgZnVuY3Rpb25fYXJnX2JvdW5kYXJ5IChlbnVtIG1hY2hpbmVfbW9kZQorIAkgICAgICAg JiYgaW50X3NpemVfaW5fYnl0ZXMgKHR5cGUpID49IDgKKyAJICAgICAgICYmIGludF9zaXplX2lu X2J5dGVzICh0eXBlKSA8IDE2KSkKKyAgICAgcmV0dXJuIDY0OworLSAgZWxzZSBpZiAoQUxUSVZF Q19WRUNUT1JfTU9ERSAobW9kZSkKKysgIGVsc2UgaWYgKChBTFRJVkVDX1ZFQ1RPUl9NT0RFICht b2RlKSB8fCBWU1hfVkVDVE9SX01PREUgKG1vZGUpKQorIAkgICB8fCAodHlwZSAmJiBUUkVFX0NP REUgKHR5cGUpID09IFZFQ1RPUl9UWVBFCisgCSAgICAgICAmJiBpbnRfc2l6ZV9pbl9ieXRlcyAo dHlwZSkgPj0gMTYpKQorICAgICByZXR1cm4gMTI4OworQEAgLTU2OTQsNyArNjIyOSw3IEBAIGZ1 bmN0aW9uX2FyZ19hZHZhbmNlIChDVU1VTEFUSVZFX0FSR1MgKmMKKyAgICAgY3VtLT5uYXJnc19w cm90b3R5cGUtLTsKKyAKKyAgIGlmIChUQVJHRVRfQUxUSVZFQ19BQkkKKy0gICAgICAmJiAoQUxU SVZFQ19WRUNUT1JfTU9ERSAobW9kZSkKKysgICAgICAmJiAoKEFMVElWRUNfVkVDVE9SX01PREUg KG1vZGUpIHx8IFZTWF9WRUNUT1JfTU9ERSAobW9kZSkpCisgCSAgfHwgKHR5cGUgJiYgVFJFRV9D T0RFICh0eXBlKSA9PSBWRUNUT1JfVFlQRQorIAkgICAgICAmJiBpbnRfc2l6ZV9pbl9ieXRlcyAo dHlwZSkgPT0gMTYpKSkKKyAgICAgeworQEAgLTYyODgsNyArNjgyMyw3IEBAIGZ1bmN0aW9uX2Fy ZyAoQ1VNVUxBVElWRV9BUkdTICpjdW0sIGVudW0KKyAgICAgZWxzZQorICAgICAgIHJldHVybiBn ZW5fcnR4X1JFRyAobW9kZSwgY3VtLT52cmVnbm8pOworICAgZWxzZSBpZiAoVEFSR0VUX0FMVElW RUNfQUJJCistCSAgICYmIChBTFRJVkVDX1ZFQ1RPUl9NT0RFIChtb2RlKQorKwkgICAmJiAoKEFM VElWRUNfVkVDVE9SX01PREUgKG1vZGUpIHx8IFZTWF9WRUNUT1JfTU9ERSAobW9kZSkpCisgCSAg ICAgICB8fCAodHlwZSAmJiBUUkVFX0NPREUgKHR5cGUpID09IFZFQ1RPUl9UWVBFCisgCQkgICAm JiBpbnRfc2l6ZV9pbl9ieXRlcyAodHlwZSkgPT0gMTYpKSkKKyAgICAgeworQEAgLTcyMTIsMTAg Kzc3NDcsMTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBidWlsdGluX2Rlc2NyaXB0aW9uIAorICAg eyBNQVNLX0FMVElWRUMsIENPREVfRk9SX2FsdGl2ZWNfdnBlcm1fdjRzaSwgIl9fYnVpbHRpbl9h bHRpdmVjX3ZwZXJtXzRzaSIsIEFMVElWRUNfQlVJTFRJTl9WUEVSTV80U0kgfSwKKyAgIHsgTUFT S19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRpdmVjX3ZwZXJtX3Y4aGksICJfX2J1aWx0aW5fYWx0aXZl Y192cGVybV84aGkiLCBBTFRJVkVDX0JVSUxUSU5fVlBFUk1fOEhJIH0sCisgICB7IE1BU0tfQUxU SVZFQywgQ09ERV9GT1JfYWx0aXZlY192cGVybV92MTZxaSwgIl9fYnVpbHRpbl9hbHRpdmVjX3Zw ZXJtXzE2cWkiLCBBTFRJVkVDX0JVSUxUSU5fVlBFUk1fMTZRSSB9LAorLSAgeyBNQVNLX0FMVElW RUMsIENPREVfRk9SX2FsdGl2ZWNfdnNlbF92NHNmLCAiX19idWlsdGluX2FsdGl2ZWNfdnNlbF80 c2YiLCBBTFRJVkVDX0JVSUxUSU5fVlNFTF80U0YgfSwKKy0gIHsgTUFTS19BTFRJVkVDLCBDT0RF X0ZPUl9hbHRpdmVjX3ZzZWxfdjRzaSwgIl9fYnVpbHRpbl9hbHRpdmVjX3ZzZWxfNHNpIiwgQUxU SVZFQ19CVUlMVElOX1ZTRUxfNFNJIH0sCistICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1JfYWx0 aXZlY192c2VsX3Y4aGksICJfX2J1aWx0aW5fYWx0aXZlY192c2VsXzhoaSIsIEFMVElWRUNfQlVJ TFRJTl9WU0VMXzhISSB9LAorLSAgeyBNQVNLX0FMVElWRUMsIENPREVfRk9SX2FsdGl2ZWNfdnNl bF92MTZxaSwgIl9fYnVpbHRpbl9hbHRpdmVjX3ZzZWxfMTZxaSIsIEFMVElWRUNfQlVJTFRJTl9W U0VMXzE2UUkgfSwKKysgIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRpdmVjX3ZwZXJtX3Yy ZGYsICJfX2J1aWx0aW5fYWx0aXZlY192cGVybV8yZGYiLCBBTFRJVkVDX0JVSUxUSU5fVlBFUk1f MkRGIH0sCisrICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1JfYWx0aXZlY192cGVybV92MmRpLCAi X19idWlsdGluX2FsdGl2ZWNfdnBlcm1fMmRpIiwgQUxUSVZFQ19CVUlMVElOX1ZQRVJNXzJESSB9 LAorKyAgeyBNQVNLX0FMVElWRUMsIENPREVfRk9SX3ZlY3Rvcl92c2VsdjRzZiwgIl9fYnVpbHRp bl9hbHRpdmVjX3ZzZWxfNHNmIiwgQUxUSVZFQ19CVUlMVElOX1ZTRUxfNFNGIH0sCisrICB7IE1B U0tfQUxUSVZFQywgQ09ERV9GT1JfdmVjdG9yX3ZzZWx2NHNpLCAiX19idWlsdGluX2FsdGl2ZWNf dnNlbF80c2kiLCBBTFRJVkVDX0JVSUxUSU5fVlNFTF80U0kgfSwKKysgIHsgTUFTS19BTFRJVkVD LCBDT0RFX0ZPUl92ZWN0b3JfdnNlbHY4aGksICJfX2J1aWx0aW5fYWx0aXZlY192c2VsXzhoaSIs IEFMVElWRUNfQlVJTFRJTl9WU0VMXzhISSB9LAorKyAgeyBNQVNLX0FMVElWRUMsIENPREVfRk9S X3ZlY3Rvcl92c2VsdjE2cWksICJfX2J1aWx0aW5fYWx0aXZlY192c2VsXzE2cWkiLCBBTFRJVkVD X0JVSUxUSU5fVlNFTF8xNlFJIH0sCisrICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1JfdmVjdG9y X3ZzZWx2MmRmLCAiX19idWlsdGluX2FsdGl2ZWNfdnNlbF8yZGYiLCBBTFRJVkVDX0JVSUxUSU5f VlNFTF8yREYgfSwKKyAgIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRpdmVjX3ZzbGRvaV92 MTZxaSwgIl9fYnVpbHRpbl9hbHRpdmVjX3ZzbGRvaV8xNnFpIiwgQUxUSVZFQ19CVUlMVElOX1ZT TERPSV8xNlFJIH0sCisgICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1JfYWx0aXZlY192c2xkb2lf djhoaSwgIl9fYnVpbHRpbl9hbHRpdmVjX3ZzbGRvaV84aGkiLCBBTFRJVkVDX0JVSUxUSU5fVlNM RE9JXzhISSB9LAorICAgeyBNQVNLX0FMVElWRUMsIENPREVfRk9SX2FsdGl2ZWNfdnNsZG9pX3Y0 c2ksICJfX2J1aWx0aW5fYWx0aXZlY192c2xkb2lfNHNpIiwgQUxUSVZFQ19CVUlMVElOX1ZTTERP SV80U0kgfSwKK0BAIC03Mjg5LDE4ICs3ODI3LDE4IEBAIHN0YXRpYyBzdHJ1Y3QgYnVpbHRpbl9k ZXNjcmlwdGlvbiBiZGVzY18KKyAgIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRpdmVjX3Zj ZnV4LCAiX19idWlsdGluX2FsdGl2ZWNfdmNmdXgiLCBBTFRJVkVDX0JVSUxUSU5fVkNGVVggfSwK KyAgIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRpdmVjX3ZjZnN4LCAiX19idWlsdGluX2Fs dGl2ZWNfdmNmc3giLCBBTFRJVkVDX0JVSUxUSU5fVkNGU1ggfSwKKyAgIHsgTUFTS19BTFRJVkVD LCBDT0RFX0ZPUl9hbHRpdmVjX3ZjbXBiZnAsICJfX2J1aWx0aW5fYWx0aXZlY192Y21wYmZwIiwg QUxUSVZFQ19CVUlMVElOX1ZDTVBCRlAgfSwKKy0gIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9h bHRpdmVjX3ZjbXBlcXViLCAiX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWIiLCBBTFRJVkVDX0JV SUxUSU5fVkNNUEVRVUIgfSwKKy0gIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRpdmVjX3Zj bXBlcXVoLCAiX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWgiLCBBTFRJVkVDX0JVSUxUSU5fVkNN UEVRVUggfSwKKy0gIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRpdmVjX3ZjbXBlcXV3LCAi X19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXciLCBBTFRJVkVDX0JVSUxUSU5fVkNNUEVRVVcgfSwK Ky0gIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRpdmVjX3ZjbXBlcWZwLCAiX19idWlsdGlu X2FsdGl2ZWNfdmNtcGVxZnAiLCBBTFRJVkVDX0JVSUxUSU5fVkNNUEVRRlAgfSwKKy0gIHsgTUFT S19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRpdmVjX3ZjbXBnZWZwLCAiX19idWlsdGluX2FsdGl2ZWNf dmNtcGdlZnAiLCBBTFRJVkVDX0JVSUxUSU5fVkNNUEdFRlAgfSwKKy0gIHsgTUFTS19BTFRJVkVD LCBDT0RFX0ZPUl9hbHRpdmVjX3ZjbXBndHViLCAiX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWIi LCBBTFRJVkVDX0JVSUxUSU5fVkNNUEdUVUIgfSwKKy0gIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZP Ul9hbHRpdmVjX3ZjbXBndHNiLCAiX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2IiLCBBTFRJVkVD X0JVSUxUSU5fVkNNUEdUU0IgfSwKKy0gIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRpdmVj X3ZjbXBndHVoLCAiX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWgiLCBBTFRJVkVDX0JVSUxUSU5f VkNNUEdUVUggfSwKKy0gIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRpdmVjX3ZjbXBndHNo LCAiX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2giLCBBTFRJVkVDX0JVSUxUSU5fVkNNUEdUU0gg fSwKKy0gIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRpdmVjX3ZjbXBndHV3LCAiX19idWls dGluX2FsdGl2ZWNfdmNtcGd0dXciLCBBTFRJVkVDX0JVSUxUSU5fVkNNUEdUVVcgfSwKKy0gIHsg TUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRpdmVjX3ZjbXBndHN3LCAiX19idWlsdGluX2FsdGl2 ZWNfdmNtcGd0c3ciLCBBTFRJVkVDX0JVSUxUSU5fVkNNUEdUU1cgfSwKKy0gIHsgTUFTS19BTFRJ VkVDLCBDT0RFX0ZPUl9hbHRpdmVjX3ZjbXBndGZwLCAiX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0 ZnAiLCBBTFRJVkVDX0JVSUxUSU5fVkNNUEdURlAgfSwKKysgIHsgTUFTS19BTFRJVkVDLCBDT0RF X0ZPUl92ZWN0b3JfZXF2MTZxaSwgIl9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXViIiwgQUxUSVZF Q19CVUlMVElOX1ZDTVBFUVVCIH0sCisrICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1JfdmVjdG9y X2VxdjhoaSwgIl9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoIiwgQUxUSVZFQ19CVUlMVElOX1ZD TVBFUVVIIH0sCisrICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1JfdmVjdG9yX2VxdjRzaSwgIl9f YnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXV3IiwgQUxUSVZFQ19CVUlMVElOX1ZDTVBFUVVXIH0sCisr ICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1JfdmVjdG9yX2VxdjRzZiwgIl9fYnVpbHRpbl9hbHRp dmVjX3ZjbXBlcWZwIiwgQUxUSVZFQ19CVUlMVElOX1ZDTVBFUUZQIH0sCisrICB7IE1BU0tfQUxU SVZFQywgQ09ERV9GT1JfdmVjdG9yX2dldjRzZiwgIl9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBnZWZw IiwgQUxUSVZFQ19CVUlMVElOX1ZDTVBHRUZQIH0sCisrICB7IE1BU0tfQUxUSVZFQywgQ09ERV9G T1JfdmVjdG9yX2d0dXYxNnFpLCAiX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWIiLCBBTFRJVkVD X0JVSUxUSU5fVkNNUEdUVUIgfSwKKysgIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl92ZWN0b3Jf Z3R1djhoaSwgIl9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNiIiwgQUxUSVZFQ19CVUlMVElOX1ZD TVBHVFNCIH0sCisrICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1JfdmVjdG9yX2d0dXY0c2ksICJf X2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1aCIsIEFMVElWRUNfQlVJTFRJTl9WQ01QR1RVSCB9LAor KyAgeyBNQVNLX0FMVElWRUMsIENPREVfRk9SX3ZlY3Rvcl9ndHYxNnFpLCAiX19idWlsdGluX2Fs dGl2ZWNfdmNtcGd0c2giLCBBTFRJVkVDX0JVSUxUSU5fVkNNUEdUU0ggfSwKKysgIHsgTUFTS19B TFRJVkVDLCBDT0RFX0ZPUl92ZWN0b3JfZ3R2OGhpLCAiX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0 dXciLCBBTFRJVkVDX0JVSUxUSU5fVkNNUEdUVVcgfSwKKysgIHsgTUFTS19BTFRJVkVDLCBDT0RF X0ZPUl92ZWN0b3JfZ3R2NHNpLCAiX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c3ciLCBBTFRJVkVD X0JVSUxUSU5fVkNNUEdUU1cgfSwKKysgIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl92ZWN0b3Jf Z3R2NHNmLCAiX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0ZnAiLCBBTFRJVkVDX0JVSUxUSU5fVkNN UEdURlAgfSwKKyAgIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRpdmVjX3ZjdHN4cywgIl9f YnVpbHRpbl9hbHRpdmVjX3ZjdHN4cyIsIEFMVElWRUNfQlVJTFRJTl9WQ1RTWFMgfSwKKyAgIHsg TUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRpdmVjX3ZjdHV4cywgIl9fYnVpbHRpbl9hbHRpdmVj X3ZjdHV4cyIsIEFMVElWRUNfQlVJTFRJTl9WQ1RVWFMgfSwKKyAgIHsgTUFTS19BTFRJVkVDLCBD T0RFX0ZPUl91bWF4djE2cWkzLCAiX19idWlsdGluX2FsdGl2ZWNfdm1heHViIiwgQUxUSVZFQ19C VUlMVElOX1ZNQVhVQiB9LAorQEAgLTczMzEsNyArNzg2OSw3IEBAIHN0YXRpYyBzdHJ1Y3QgYnVp bHRpbl9kZXNjcmlwdGlvbiBiZGVzY18KKyAgIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRp dmVjX3ZtdWxvc2IsICJfX2J1aWx0aW5fYWx0aXZlY192bXVsb3NiIiwgQUxUSVZFQ19CVUlMVElO X1ZNVUxPU0IgfSwKKyAgIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRpdmVjX3ZtdWxvdWgs ICJfX2J1aWx0aW5fYWx0aXZlY192bXVsb3VoIiwgQUxUSVZFQ19CVUlMVElOX1ZNVUxPVUggfSwK KyAgIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRpdmVjX3ZtdWxvc2gsICJfX2J1aWx0aW5f YWx0aXZlY192bXVsb3NoIiwgQUxUSVZFQ19CVUlMVElOX1ZNVUxPU0ggfSwKKy0gIHsgTUFTS19B TFRJVkVDLCBDT0RFX0ZPUl9hbHRpdmVjX25vcnY0c2kzLCAiX19idWlsdGluX2FsdGl2ZWNfdm5v ciIsIEFMVElWRUNfQlVJTFRJTl9WTk9SIH0sCisrICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1Jf bm9ydjRzaTMsICJfX2J1aWx0aW5fYWx0aXZlY192bm9yIiwgQUxUSVZFQ19CVUlMVElOX1ZOT1Ig fSwKKyAgIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9pb3J2NHNpMywgIl9fYnVpbHRpbl9hbHRp dmVjX3ZvciIsIEFMVElWRUNfQlVJTFRJTl9WT1IgfSwKKyAgIHsgTUFTS19BTFRJVkVDLCBDT0RF X0ZPUl9hbHRpdmVjX3Zwa3VodW0sICJfX2J1aWx0aW5fYWx0aXZlY192cGt1aHVtIiwgQUxUSVZF Q19CVUlMVElOX1ZQS1VIVU0gfSwKKyAgIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRpdmVj X3Zwa3V3dW0sICJfX2J1aWx0aW5fYWx0aXZlY192cGt1d3VtIiwgQUxUSVZFQ19CVUlMVElOX1ZQ S1VXVU0gfSwKK0BAIC03Nzk2LDYgKzgzMzQsMTEgQEAgc3RhdGljIHN0cnVjdCBidWlsdGluX2Rl c2NyaXB0aW9uIGJkZXNjXworICAgeyBNQVNLX0FMVElWRUMsIENPREVfRk9SX25vdGhpbmcsICJf X2J1aWx0aW5fdmVjX3Z1cGtsc2giLCBBTFRJVkVDX0JVSUxUSU5fVkVDX1ZVUEtMU0ggfSwKKyAg IHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9ub3RoaW5nLCAiX19idWlsdGluX3ZlY192dXBrbHNi IiwgQUxUSVZFQ19CVUlMVElOX1ZFQ19WVVBLTFNCIH0sCisgCisrICB7IE1BU0tfQUxUSVZFQ3xN QVNLX1ZTWCwgQ09ERV9GT1JfZmxvYXR2NHNpdjRzZjIsICJfX2J1aWx0aW5fdmVjX2Zsb2F0X3Np c2YiLCBWRUNUT1JfQlVJTFRJTl9GTE9BVF9WNFNJX1Y0U0YgfSwKKysgIHsgTUFTS19BTFRJVkVD fE1BU0tfVlNYLCBDT0RFX0ZPUl91bnNpZ25lZF9mbG9hdHY0c2l2NHNmMiwgIl9fYnVpbHRpbl92 ZWNfdW5zX2Zsb2F0X3Npc2YiLCBWRUNUT1JfQlVJTFRJTl9VTlNGTE9BVF9WNFNJX1Y0U0YgfSwK KysgIHsgTUFTS19BTFRJVkVDfE1BU0tfVlNYLCBDT0RFX0ZPUl9maXhfdHJ1bmN2NHNmdjRzaTIs ICJfX2J1aWx0aW5fdmVjX2ZpeF9zZnNpIiwgVkVDVE9SX0JVSUxUSU5fRklYX1Y0U0ZfVjRTSSB9 LAorKyAgeyBNQVNLX0FMVElWRUN8TUFTS19WU1gsIENPREVfRk9SX2ZpeHVuc190cnVuY3Y0c2Z2 NHNpMiwgIl9fYnVpbHRpbl92ZWNfZml4dW5zX3Nmc2kiLCBWRUNUT1JfQlVJTFRJTl9GSVhVTlNf VjRTRl9WNFNJIH0sCisrCisgICAvKiBUaGUgU1BFIHVuYXJ5IGJ1aWx0aW5zIG11c3Qgc3RhcnQg d2l0aCBTUEVfQlVJTFRJTl9FVkFCUyBhbmQKKyAgICAgIGVuZCB3aXRoIFNQRV9CVUlMVElOX0VW U1VCRlVTSUFBVy4gICovCisgICB7IDAsIENPREVfRk9SX3NwZV9ldmFicywgIl9fYnVpbHRpbl9z cGVfZXZhYnMiLCBTUEVfQlVJTFRJTl9FVkFCUyB9LAorQEAgLTgzNTIsMTYgKzg4OTUsMTYgQEAg YWx0aXZlY19leHBhbmRfbGRfYnVpbHRpbiAodHJlZSBleHAsIHJ0eAorICAgc3dpdGNoIChmY29k ZSkKKyAgICAgeworICAgICBjYXNlIEFMVElWRUNfQlVJTFRJTl9MRF9JTlRFUk5BTF8xNnFpOgor LSAgICAgIGljb2RlID0gQ09ERV9GT1JfYWx0aXZlY19sdnhfdjE2cWk7CisrICAgICAgaWNvZGUg PSBDT0RFX0ZPUl92ZWN0b3JfbG9hZF92MTZxaTsKKyAgICAgICBicmVhazsKKyAgICAgY2FzZSBB TFRJVkVDX0JVSUxUSU5fTERfSU5URVJOQUxfOGhpOgorLSAgICAgIGljb2RlID0gQ09ERV9GT1Jf YWx0aXZlY19sdnhfdjhoaTsKKysgICAgICBpY29kZSA9IENPREVfRk9SX3ZlY3Rvcl9sb2FkX3Y4 aGk7CisgICAgICAgYnJlYWs7CisgICAgIGNhc2UgQUxUSVZFQ19CVUlMVElOX0xEX0lOVEVSTkFM XzRzaToKKy0gICAgICBpY29kZSA9IENPREVfRk9SX2FsdGl2ZWNfbHZ4X3Y0c2k7CisrICAgICAg aWNvZGUgPSBDT0RFX0ZPUl92ZWN0b3JfbG9hZF92NHNpOworICAgICAgIGJyZWFrOworICAgICBj YXNlIEFMVElWRUNfQlVJTFRJTl9MRF9JTlRFUk5BTF80c2Y6CistICAgICAgaWNvZGUgPSBDT0RF X0ZPUl9hbHRpdmVjX2x2eF92NHNmOworKyAgICAgIGljb2RlID0gQ09ERV9GT1JfdmVjdG9yX2xv YWRfdjRzZjsKKyAgICAgICBicmVhazsKKyAgICAgZGVmYXVsdDoKKyAgICAgICAqZXhwYW5kZWRw ID0gZmFsc2U7CitAQCAtODQwNSwxNiArODk0OCwxNiBAQCBhbHRpdmVjX2V4cGFuZF9zdF9idWls dGluICh0cmVlIGV4cCwgcnR4CisgICBzd2l0Y2ggKGZjb2RlKQorICAgICB7CisgICAgIGNhc2Ug QUxUSVZFQ19CVUlMVElOX1NUX0lOVEVSTkFMXzE2cWk6CistICAgICAgaWNvZGUgPSBDT0RFX0ZP Ul9hbHRpdmVjX3N0dnhfdjE2cWk7CisrICAgICAgaWNvZGUgPSBDT0RFX0ZPUl92ZWN0b3Jfc3Rv cmVfdjE2cWk7CisgICAgICAgYnJlYWs7CisgICAgIGNhc2UgQUxUSVZFQ19CVUlMVElOX1NUX0lO VEVSTkFMXzhoaToKKy0gICAgICBpY29kZSA9IENPREVfRk9SX2FsdGl2ZWNfc3R2eF92OGhpOwor KyAgICAgIGljb2RlID0gQ09ERV9GT1JfdmVjdG9yX3N0b3JlX3Y4aGk7CisgICAgICAgYnJlYWs7 CisgICAgIGNhc2UgQUxUSVZFQ19CVUlMVElOX1NUX0lOVEVSTkFMXzRzaToKKy0gICAgICBpY29k ZSA9IENPREVfRk9SX2FsdGl2ZWNfc3R2eF92NHNpOworKyAgICAgIGljb2RlID0gQ09ERV9GT1Jf dmVjdG9yX3N0b3JlX3Y0c2k7CisgICAgICAgYnJlYWs7CisgICAgIGNhc2UgQUxUSVZFQ19CVUlM VElOX1NUX0lOVEVSTkFMXzRzZjoKKy0gICAgICBpY29kZSA9IENPREVfRk9SX2FsdGl2ZWNfc3R2 eF92NHNmOworKyAgICAgIGljb2RlID0gQ09ERV9GT1JfdmVjdG9yX3N0b3JlX3Y0c2Y7CisgICAg ICAgYnJlYWs7CisgICAgIGRlZmF1bHQ6CisgICAgICAgKmV4cGFuZGVkcCA9IGZhbHNlOworQEAg LTkzNzIsNiArOTkxNSw4IEBAIHJzNjAwMF9pbml0X2J1aWx0aW5zICh2b2lkKQorIHsKKyAgIFYy U0lfdHlwZV9ub2RlID0gYnVpbGRfdmVjdG9yX3R5cGUgKGludFNJX3R5cGVfbm9kZSwgMik7Cisg ICBWMlNGX3R5cGVfbm9kZSA9IGJ1aWxkX3ZlY3Rvcl90eXBlIChmbG9hdF90eXBlX25vZGUsIDIp OworKyAgVjJESV90eXBlX25vZGUgPSBidWlsZF92ZWN0b3JfdHlwZSAoaW50RElfdHlwZV9ub2Rl LCAyKTsKKysgIFYyREZfdHlwZV9ub2RlID0gYnVpbGRfdmVjdG9yX3R5cGUgKGRvdWJsZV90eXBl X25vZGUsIDIpOworICAgVjRISV90eXBlX25vZGUgPSBidWlsZF92ZWN0b3JfdHlwZSAoaW50SElf dHlwZV9ub2RlLCA0KTsKKyAgIFY0U0lfdHlwZV9ub2RlID0gYnVpbGRfdmVjdG9yX3R5cGUgKGlu dFNJX3R5cGVfbm9kZSwgNCk7CisgICBWNFNGX3R5cGVfbm9kZSA9IGJ1aWxkX3ZlY3Rvcl90eXBl IChmbG9hdF90eXBlX25vZGUsIDQpOworQEAgLTk0MDQsNyArOTk0OSwxMCBAQCByczYwMDBfaW5p dF9idWlsdGlucyAodm9pZCkKKyAgIHVpbnRISV90eXBlX2ludGVybmFsX25vZGUgPSB1bnNpZ25l ZF9pbnRISV90eXBlX25vZGU7CisgICBpbnRTSV90eXBlX2ludGVybmFsX25vZGUgPSBpbnRTSV90 eXBlX25vZGU7CisgICB1aW50U0lfdHlwZV9pbnRlcm5hbF9ub2RlID0gdW5zaWduZWRfaW50U0lf dHlwZV9ub2RlOworKyAgaW50RElfdHlwZV9pbnRlcm5hbF9ub2RlID0gaW50RElfdHlwZV9ub2Rl OworKyAgdWludERJX3R5cGVfaW50ZXJuYWxfbm9kZSA9IHVuc2lnbmVkX2ludERJX3R5cGVfbm9k ZTsKKyAgIGZsb2F0X3R5cGVfaW50ZXJuYWxfbm9kZSA9IGZsb2F0X3R5cGVfbm9kZTsKKysgIGRv dWJsZV90eXBlX2ludGVybmFsX25vZGUgPSBmbG9hdF90eXBlX25vZGU7CisgICB2b2lkX3R5cGVf aW50ZXJuYWxfbm9kZSA9IHZvaWRfdHlwZV9ub2RlOworIAorICAgKCpsYW5nX2hvb2tzLmRlY2xz LnB1c2hkZWNsKSAoYnVpbGRfZGVjbCAoVFlQRV9ERUNMLAorQEAgLTk0NjIsMTMgKzEwMDEwLDE4 IEBAIHJzNjAwMF9pbml0X2J1aWx0aW5zICh2b2lkKQorIAkJCQkJICAgIGdldF9pZGVudGlmaWVy ICgiX192ZWN0b3IgX19waXhlbCIpLAorIAkJCQkJICAgIHBpeGVsX1Y4SElfdHlwZV9ub2RlKSk7 CisgCisrICBpZiAoVEFSR0VUX1ZTWCkKKysgICAgKCpsYW5nX2hvb2tzLmRlY2xzLnB1c2hkZWNs KSAoYnVpbGRfZGVjbCAoVFlQRV9ERUNMLAorKwkJCQkJICAgICAgZ2V0X2lkZW50aWZpZXIgKCJf X3ZlY3RvciBkb3VibGUiKSwKKysJCQkJCSAgICAgIFYyREZfdHlwZV9ub2RlKSk7CisrCisgICBp ZiAoVEFSR0VUX1BBSVJFRF9GTE9BVCkKKyAgICAgcGFpcmVkX2luaXRfYnVpbHRpbnMgKCk7Cisg ICBpZiAoVEFSR0VUX1NQRSkKKyAgICAgc3BlX2luaXRfYnVpbHRpbnMgKCk7CisgICBpZiAoVEFS R0VUX0FMVElWRUMpCisgICAgIGFsdGl2ZWNfaW5pdF9idWlsdGlucyAoKTsKKy0gIGlmIChUQVJH RVRfQUxUSVZFQyB8fCBUQVJHRVRfU1BFIHx8IFRBUkdFVF9QQUlSRURfRkxPQVQpCisrICBpZiAo VEFSR0VUX0FMVElWRUMgfHwgVEFSR0VUX1NQRSB8fCBUQVJHRVRfUEFJUkVEX0ZMT0FUIHx8IFRB UkdFVF9WU1gpCisgICAgIHJzNjAwMF9jb21tb25faW5pdF9idWlsdGlucyAoKTsKKyAgIGlmIChU QVJHRVRfUFBDX0dGWE9QVCkKKyAgICAgeworQEAgLTEwNDA3LDYgKzEwOTYwLDI2IEBAIHJzNjAw MF9jb21tb25faW5pdF9idWlsdGlucyAodm9pZCkKKyAgIHRyZWUgaW50X2Z0eXBlX3Y4aGlfdjho aQorICAgICA9IGJ1aWxkX2Z1bmN0aW9uX3R5cGVfbGlzdCAoaW50ZWdlcl90eXBlX25vZGUsCisg CQkJCVY4SElfdHlwZV9ub2RlLCBWOEhJX3R5cGVfbm9kZSwgTlVMTF9UUkVFKTsKKysgIHRyZWUg djJkZl9mdHlwZV92MmRmX3YyZGZfdjJkZgorKyAgICA9IGJ1aWxkX2Z1bmN0aW9uX3R5cGVfbGlz dCAoVjJERl90eXBlX25vZGUsCisrCQkJCVYyREZfdHlwZV9ub2RlLCBWMkRGX3R5cGVfbm9kZSwK KysJCQkJVjJERl90eXBlX25vZGUsIE5VTExfVFJFRSk7CisrICB0cmVlIHYyZGlfZnR5cGVfdjJk aV92MmRpX3YyZGkKKysgICAgPSBidWlsZF9mdW5jdGlvbl90eXBlX2xpc3QgKFYyRElfdHlwZV9u b2RlLAorKwkJCQlWMkRJX3R5cGVfbm9kZSwgVjJESV90eXBlX25vZGUsCisrCQkJCVYyRElfdHlw ZV9ub2RlLCBOVUxMX1RSRUUpOworKyAgdHJlZSB2MmRmX2Z0eXBlX3YyZGZfdjJkZl92MTZxaQor KyAgICA9IGJ1aWxkX2Z1bmN0aW9uX3R5cGVfbGlzdCAoVjJERl90eXBlX25vZGUsCisrCQkJCVYy REZfdHlwZV9ub2RlLCBWMkRGX3R5cGVfbm9kZSwKKysJCQkJVjE2UUlfdHlwZV9ub2RlLCBOVUxM X1RSRUUpOworKyAgdHJlZSB2MmRpX2Z0eXBlX3YyZGlfdjJkaV92MTZxaQorKyAgICA9IGJ1aWxk X2Z1bmN0aW9uX3R5cGVfbGlzdCAoVjJESV90eXBlX25vZGUsCisrCQkJCVYyRElfdHlwZV9ub2Rl LCBWMkRJX3R5cGVfbm9kZSwKKysJCQkJVjE2UUlfdHlwZV9ub2RlLCBOVUxMX1RSRUUpOworKyAg dHJlZSB2NHNmX2Z0eXBlX3Y0c2kKKysgICAgPSBidWlsZF9mdW5jdGlvbl90eXBlX2xpc3QgKFY0 U0ZfdHlwZV9ub2RlLCBWNFNJX3R5cGVfbm9kZSwgTlVMTF9UUkVFKTsKKysgIHRyZWUgdjRzaV9m dHlwZV92NHNmCisrICAgID0gYnVpbGRfZnVuY3Rpb25fdHlwZV9saXN0IChWNFNJX3R5cGVfbm9k ZSwgVjRTRl90eXBlX25vZGUsIE5VTExfVFJFRSk7CisgCisgICAvKiBBZGQgdGhlIHNpbXBsZSB0 ZXJuYXJ5IG9wZXJhdG9ycy4gICovCisgICBkID0gYmRlc2NfM2FyZzsKK0BAIC0xMDQ0Myw2ICsx MTAxNiwxMiBAQCByczYwMDBfY29tbW9uX2luaXRfYnVpbHRpbnMgKHZvaWQpCisgCSAgICBjYXNl IFZPSURtb2RlOgorIAkgICAgICB0eXBlID0gb3BhcXVlX2Z0eXBlX29wYXF1ZV9vcGFxdWVfb3Bh cXVlOworIAkgICAgICBicmVhazsKKysJICAgIGNhc2UgVjJESW1vZGU6CisrCSAgICAgIHR5cGUg PSB2MmRpX2Z0eXBlX3YyZGlfdjJkaV92MmRpOworKwkgICAgICBicmVhazsKKysJICAgIGNhc2Ug VjJERm1vZGU6CisrCSAgICAgIHR5cGUgPSB2MmRmX2Z0eXBlX3YyZGZfdjJkZl92MmRmOworKwkg ICAgICBicmVhazsKKyAJICAgIGNhc2UgVjRTSW1vZGU6CisgCSAgICAgIHR5cGUgPSB2NHNpX2Z0 eXBlX3Y0c2lfdjRzaV92NHNpOworIAkgICAgICBicmVhazsKK0BAIC0xMDQ2Niw2ICsxMTA0NSwx MiBAQCByczYwMDBfY29tbW9uX2luaXRfYnVpbHRpbnMgKHZvaWQpCisgCXsKKyAJICBzd2l0Y2gg KG1vZGUwKQorIAkgICAgeworKwkgICAgY2FzZSBWMkRJbW9kZToKKysJICAgICAgdHlwZSA9IHYy ZGlfZnR5cGVfdjJkaV92MmRpX3YxNnFpOworKwkgICAgICBicmVhazsKKysJICAgIGNhc2UgVjJE Rm1vZGU6CisrCSAgICAgIHR5cGUgPSB2MmRmX2Z0eXBlX3YyZGZfdjJkZl92MTZxaTsKKysJICAg ICAgYnJlYWs7CisgCSAgICBjYXNlIFY0U0ltb2RlOgorIAkgICAgICB0eXBlID0gdjRzaV9mdHlw ZV92NHNpX3Y0c2lfdjE2cWk7CisgCSAgICAgIGJyZWFrOworQEAgLTEwNzIxLDYgKzExMzA2LDEw IEBAIHJzNjAwMF9jb21tb25faW5pdF9idWlsdGlucyAodm9pZCkKKyAJdHlwZSA9IHYyc2lfZnR5 cGVfdjJzZjsKKyAgICAgICBlbHNlIGlmIChtb2RlMCA9PSBWMlNJbW9kZSAmJiBtb2RlMSA9PSBR SW1vZGUpCisgCXR5cGUgPSB2MnNpX2Z0eXBlX2NoYXI7CisrICAgICAgZWxzZSBpZiAobW9kZTAg PT0gVjRTSW1vZGUgJiYgbW9kZTEgPT0gVjRTRm1vZGUpCisrCXR5cGUgPSB2NHNpX2Z0eXBlX3Y0 c2Y7CisrICAgICAgZWxzZSBpZiAobW9kZTAgPT0gVjRTRm1vZGUgJiYgbW9kZTEgPT0gVjRTSW1v ZGUpCisrCXR5cGUgPSB2NHNmX2Z0eXBlX3Y0c2k7CisgICAgICAgZWxzZQorIAlnY2NfdW5yZWFj aGFibGUgKCk7CisgCitAQCAtMTE2MDEsMTMgKzEyMTkwLDEwMSBAQCByczYwMDBfaW5zdGFudGlh dGVfZGVjbHMgKHZvaWQpCisgICAgIGluc3RhbnRpYXRlX2RlY2xfcnRsIChjZnVuLT5tYWNoaW5l LT5zZG1vZGVfc3RhY2tfc2xvdCk7CisgfQorIAorKy8qIEdpdmVuIGFuIHJ0eCBYIGJlaW5nIHJl bG9hZGVkIGludG8gYSByZWcgcmVxdWlyZWQgdG8gYmUKKysgICBpbiBjbGFzcyBDTEFTUywgcmV0 dXJuIHRoZSBjbGFzcyBvZiByZWcgdG8gYWN0dWFsbHkgdXNlLgorKyAgIEluIGdlbmVyYWwgdGhp cyBpcyBqdXN0IENMQVNTOyBidXQgb24gc29tZSBtYWNoaW5lcworKyAgIGluIHNvbWUgY2FzZXMg aXQgaXMgcHJlZmVyYWJsZSB0byB1c2UgYSBtb3JlIHJlc3RyaWN0aXZlIGNsYXNzLgorKworKyAg IE9uIHRoZSBSUy82MDAwLCB3ZSBoYXZlIHRvIHJldHVybiBOT19SRUdTIHdoZW4gd2Ugd2FudCB0 byByZWxvYWQgYQorKyAgIGZsb2F0aW5nLXBvaW50IENPTlNUX0RPVUJMRSB0byBmb3JjZSBpdCB0 byBiZSBjb3BpZWQgdG8gbWVtb3J5LgorKworKyAgIFdlIGFsc28gZG9uJ3Qgd2FudCB0byByZWxv YWQgaW50ZWdlciB2YWx1ZXMgaW50byBmbG9hdGluZy1wb2ludAorKyAgIHJlZ2lzdGVycyBpZiB3 ZSBjYW4gYXQgYWxsIGhlbHAgaXQuICBJbiBmYWN0LCB0aGlzIGNhbgorKyAgIGNhdXNlIHJlbG9h ZCB0byBkaWUsIGlmIGl0IHRyaWVzIHRvIGdlbmVyYXRlIGEgcmVsb2FkIG9mIENUUgorKyAgIGlu dG8gYSBGUCByZWdpc3RlciBhbmQgZGlzY292ZXJzIGl0IGRvZXNuJ3QgaGF2ZSB0aGUgbWVtb3J5 IGxvY2F0aW9uCisrICAgcmVxdWlyZWQuCisrCisrICAgPz8/IFdvdWxkIGl0IGJlIGEgZ29vZCBp ZGVhIHRvIGhhdmUgcmVsb2FkIGRvIHRoZSBjb252ZXJzZSwgdGhhdCBpcworKyAgIHRyeSB0byBy ZWxvYWQgZmxvYXRpbmcgbW9kZXMgaW50byBGUCByZWdpc3RlcnMgaWYgcG9zc2libGU/CisrICov CisrCisrZW51bSByZWdfY2xhc3MKKytyczYwMDBfcHJlZmVycmVkX3JlbG9hZF9jbGFzcyAocnR4 IHgsIGVudW0gcmVnX2NsYXNzIHJjbGFzcykKKyt7CisrICBlbnVtIG1hY2hpbmVfbW9kZSBtb2Rl ID0gR0VUX01PREUgKHgpOworKworKyAgaWYgKFRBUkdFVF9WU1ggJiYgVlNYX1ZFQ1RPUl9NT0RF IChtb2RlKSAmJiB4ID09IENPTlNUMF9SVFggKG1vZGUpCisrICAgICAgJiYgVlNYX1JFR19DTEFT U19QIChyY2xhc3MpKQorKyAgICByZXR1cm4gcmNsYXNzOworKworKyAgaWYgKFRBUkdFVF9BTFRJ VkVDICYmIEFMVElWRUNfVkVDVE9SX01PREUgKG1vZGUpICYmIHJjbGFzcyA9PSBBTFRJVkVDX1JF R1MKKysgICAgICAmJiBlYXN5X3ZlY3Rvcl9jb25zdGFudCAoeCwgbW9kZSkpCisrICAgIHJldHVy biByY2xhc3M7CisrCisrICBpZiAoQ09OU1RBTlRfUCAoeCkgJiYgcmVnX2NsYXNzZXNfaW50ZXJz ZWN0X3AgKHJjbGFzcywgRkxPQVRfUkVHUykpCisrICAgIHJldHVybiBOT19SRUdTOworKworKyAg aWYgKEdFVF9NT0RFX0NMQVNTIChtb2RlKSA9PSBNT0RFX0lOVCAmJiByY2xhc3MgPT0gTk9OX1NQ RUNJQUxfUkVHUykKKysgICAgcmV0dXJuIEdFTkVSQUxfUkVHUzsKKysKKysgIC8qIEZvciBWU1gs IHByZWZlciB0aGUgdHJhZGl0aW9uYWwgcmVnaXN0ZXJzLiAgKi8KKysgIGlmIChyY2xhc3MgPT0g VlNYX1JFR1MpCisrICAgIHsKKysgICAgICBpZiAobW9kZSA9PSBERm1vZGUpCisrCXJldHVybiBG TE9BVF9SRUdTOworKworKyAgICAgIGlmIChBTFRJVkVDX1ZFQ1RPUl9NT0RFIChtb2RlKSkKKysJ cmV0dXJuIEFMVElWRUNfUkVHUzsKKysgICAgfQorKworKyAgcmV0dXJuIHJjbGFzczsKKyt9Cisr CisrLyogSWYgd2UgYXJlIGNvcHlpbmcgYmV0d2VlbiBGUCBvciBBbHRpVmVjIHJlZ2lzdGVycyBh bmQgYW55dGhpbmcgZWxzZSwgd2UgbmVlZAorKyAgIGEgbWVtb3J5IGxvY2F0aW9uLiAgVGhlIGV4 Y2VwdGlvbiBpcyB3aGVuIHdlIGFyZSB0YXJnZXRpbmcgcHBjNjQgYW5kIHRoZQorKyAgIG1vdmUg dG8vZnJvbSBmcHIgdG8gZ3ByIGluc3RydWN0aW9ucyBhcmUgYXZhaWxhYmxlLiAgQWxzbywgdW5k ZXIgVlNYLCB5b3UKKysgICBjYW4gY29weSB2ZWN0b3IgcmVnaXN0ZXJzIGZyb20gdGhlIEZQIHJl Z2lzdGVyIHNldCB0byB0aGUgQWx0aXZlYyByZWdpc3RlcgorKyAgIHNldCBhbmQgdmljZSB2ZXJz YS4gICovCisrCisrYm9vbAorK3JzNjAwMF9zZWNvbmRhcnlfbWVtb3J5X25lZWRlZCAoZW51bSBy ZWdfY2xhc3MgY2xhc3MxLAorKwkJCQllbnVtIHJlZ19jbGFzcyBjbGFzczIsCisrCQkJCWVudW0g bWFjaGluZV9tb2RlIG1vZGUpCisreworKyAgaWYgKGNsYXNzMSA9PSBjbGFzczIpCisrICAgIHJl dHVybiBmYWxzZTsKKysKKysgIGlmIChUQVJHRVRfVlNYICYmIFZTWF9NT1ZFX01PREUgKG1vZGUp ICYmIFZTWF9SRUdfQ0xBU1NfUCAoY2xhc3MxKQorKyAgICAgICYmIFZTWF9SRUdfQ0xBU1NfUCAo Y2xhc3MyKSkKKysgICAgcmV0dXJuIGZhbHNlOworKworKyAgaWYgKGNsYXNzMSA9PSBGTE9BVF9S RUdTCisrICAgICAgICYmICghVEFSR0VUX01GUEdQUiB8fCAhVEFSR0VUX1BPV0VSUEM2NAorKwkg ICB8fCAoKG1vZGUgIT0gREZtb2RlKQorKwkgICAgICAgJiYgKG1vZGUgIT0gRERtb2RlKQorKwkg ICAgICAgJiYgKG1vZGUgIT0gREltb2RlKSkpKQorKyAgICByZXR1cm4gdHJ1ZTsKKysKKysgIGlm IChjbGFzczIgPT0gRkxPQVRfUkVHUworKyAgICAgICYmICghVEFSR0VUX01GUEdQUiB8fCAhVEFS R0VUX1BPV0VSUEM2NAorKwkgIHx8ICgobW9kZSAhPSBERm1vZGUpCisrCSAgICAgICYmIChtb2Rl ICE9IEREbW9kZSkKKysJICAgICAgJiYgKG1vZGUgIT0gREltb2RlKSkpKQorKyAgICByZXR1cm4g dHJ1ZTsKKysKKysgIGlmIChjbGFzczEgPT0gQUxUSVZFQ19SRUdTIHx8IGNsYXNzMiA9PSBBTFRJ VkVDX1JFR1MpCisrICAgIHJldHVybiB0cnVlOworKworKyAgcmV0dXJuIGZhbHNlOworK30KKysK KyAvKiBSZXR1cm4gdGhlIHJlZ2lzdGVyIGNsYXNzIG9mIGEgc2NyYXRjaCByZWdpc3RlciBuZWVk ZWQgdG8gY29weSBJTiBpbnRvCisgICAgb3Igb3V0IG9mIGEgcmVnaXN0ZXIgaW4gUkNMQVNTIGlu IE1PREUuICBJZiBpdCBjYW4gYmUgZG9uZSBkaXJlY3RseSwKKyAgICBOT19SRUdTIGlzIHJldHVy bmVkLiAgKi8KKyAKKyBlbnVtIHJlZ19jbGFzcworIHJzNjAwMF9zZWNvbmRhcnlfcmVsb2FkX2Ns YXNzIChlbnVtIHJlZ19jbGFzcyByY2xhc3MsCistCQkJICAgICAgIGVudW0gbWFjaGluZV9tb2Rl IG1vZGUgQVRUUklCVVRFX1VOVVNFRCwKKysJCQkgICAgICAgZW51bSBtYWNoaW5lX21vZGUgbW9k ZSwKKyAJCQkgICAgICAgcnR4IGluKQorIHsKKyAgIGludCByZWdubzsKK0BAIC0xMTY2Myw2ICsx MjM0MCwxMyBAQCByczYwMDBfc2Vjb25kYXJ5X3JlbG9hZF9jbGFzcyAoZW51bSByZWdfCisgICAg ICAgJiYgKHJjbGFzcyA9PSBGTE9BVF9SRUdTIHx8IHJjbGFzcyA9PSBOT05fU1BFQ0lBTF9SRUdT KSkKKyAgICAgcmV0dXJuIChtb2RlICE9IFNEbW9kZSkgPyBOT19SRUdTIDogR0VORVJBTF9SRUdT OworIAorKyAgLyogTWVtb3J5LCBhbmQgRlAvYWx0aXZlYyByZWdpc3RlcnMgY2FuIGdvIGludG8g ZnAvYWx0aXZlYyByZWdpc3RlcnMgdW5kZXIKKysgICAgIFZTWC4gICovCisrICBpZiAoVEFSR0VU X1ZTWAorKyAgICAgICYmIChyZWdubyA9PSAtMSB8fCBWU1hfUkVHTk9fUCAocmVnbm8pKQorKyAg ICAgICYmIFZTWF9SRUdfQ0xBU1NfUCAocmNsYXNzKSkKKysgICAgcmV0dXJuIE5PX1JFR1M7Cisr CisgICAvKiBNZW1vcnksIGFuZCBBbHRpVmVjIHJlZ2lzdGVycyBjYW4gZ28gaW50byBBbHRpVmVj IHJlZ2lzdGVycy4gICovCisgICBpZiAoKHJlZ25vID09IC0xIHx8IEFMVElWRUNfUkVHTk9fUCAo cmVnbm8pKQorICAgICAgICYmIHJjbGFzcyA9PSBBTFRJVkVDX1JFR1MpCitAQCAtMTE2NzYsNiAr MTIzNjAsMjggQEAgcnM2MDAwX3NlY29uZGFyeV9yZWxvYWRfY2xhc3MgKGVudW0gcmVnXworICAg LyogT3RoZXJ3aXNlLCB3ZSBuZWVkIEdFTkVSQUxfUkVHUy4gICovCisgICByZXR1cm4gR0VORVJB TF9SRUdTOworIH0KKysKKysvKiBSZXR1cm4gbm9uemVybyBpZiBmb3IgQ0xBU1MgYSBtb2RlIGNo YW5nZSBmcm9tIEZST00gdG8gVE8gaXMgaW52YWxpZC4gICovCisrCisrYm9vbAorK3JzNjAwMF9j YW5ub3RfY2hhbmdlX21vZGVfY2xhc3MgKGVudW0gbWFjaGluZV9tb2RlIGZyb20sCisrCQkJCSBl bnVtIG1hY2hpbmVfbW9kZSB0bywKKysJCQkJIGVudW0gcmVnX2NsYXNzIHJjbGFzcykKKyt7Cisr ICByZXR1cm4gKEdFVF9NT0RFX1NJWkUgKGZyb20pICE9IEdFVF9NT0RFX1NJWkUgKHRvKQorKwkg ID8gKChHRVRfTU9ERV9TSVpFIChmcm9tKSA8IDggfHwgR0VUX01PREVfU0laRSAodG8pIDwgOAor KwkgICAgICB8fCBUQVJHRVRfSUVFRVFVQUQpCisrCSAgICAgJiYgcmVnX2NsYXNzZXNfaW50ZXJz ZWN0X3AgKEZMT0FUX1JFR1MsIHJjbGFzcykpCisrCSAgOiAoKChUQVJHRVRfRTUwMF9ET1VCTEUK KysJICAgICAgICYmICgoKCh0bykgPT0gREZtb2RlKSArICgoZnJvbSkgPT0gREZtb2RlKSkgPT0g MQorKwkJICAgfHwgKCgodG8pID09IFRGbW9kZSkgKyAoKGZyb20pID09IFRGbW9kZSkpID09IDEK KysJCSAgIHx8ICgoKHRvKSA9PSBERG1vZGUpICsgKChmcm9tKSA9PSBERG1vZGUpKSA9PSAxCisr CQkgICB8fCAoKCh0bykgPT0gVERtb2RlKSArICgoZnJvbSkgPT0gVERtb2RlKSkgPT0gMQorKwkJ ICAgfHwgKCgodG8pID09IERJbW9kZSkgKyAoKGZyb20pID09IERJbW9kZSkpID09IDEpKQorKwkg ICAgICB8fCAoVEFSR0VUX1NQRQorKwkJICAmJiAoU1BFX1ZFQ1RPUl9NT0RFIChmcm9tKSArIFNQ RV9WRUNUT1JfTU9ERSAodG8pKSA9PSAxKSkKKysJICAgICAmJiByZWdfY2xhc3Nlc19pbnRlcnNl Y3RfcCAoR0VORVJBTF9SRUdTLCByY2xhc3MpKSk7CisrfQorIAwKKyAvKiBHaXZlbiBhIGNvbXBh cmlzb24gb3BlcmF0aW9uLCByZXR1cm4gdGhlIGJpdCBudW1iZXIgaW4gQ0NSIHRvIHRlc3QuICBX ZQorICAgIGtub3cgdGhpcyBpcyBhIHZhbGlkIGNvbXBhcmlzb24uCitAQCAtMTI0MDYsNiArMTMx MTIsMjYgQEAgcHJpbnRfb3BlcmFuZCAoRklMRSAqZmlsZSwgcnR4IHgsIGludCBjbworICAgICAg IGZwcmludGYgKGZpbGUsICIlZCIsIGkgKyAxKTsKKyAgICAgICByZXR1cm47CisgCisrICAgIGNh c2UgJ3gnOgorKyAgICAgIC8qIFggaXMgYSBGUFIgb3IgQWx0aXZlYyByZWdpc3RlciB1c2VkIGlu IGEgVlNYIGNvbnRleHQuICAqLworKyAgICAgIGlmIChHRVRfQ09ERSAoeCkgIT0gUkVHIHx8ICFW U1hfUkVHTk9fUCAoUkVHTk8gKHgpKSkKKysJb3V0cHV0X29wZXJhbmRfbG9zc2FnZSAoImludmFs aWQgJSV4IHZhbHVlIik7CisrICAgICAgZWxzZQorKwl7CisrCSAgaW50IHJlZyA9IFJFR05PICh4 KTsKKysJICBpbnQgdnN4X3JlZyA9IChGUF9SRUdOT19QIChyZWcpCisrCQkJID8gcmVnIC0gMzIK KysJCQkgOiByZWcgLSBGSVJTVF9BTFRJVkVDX1JFR05PICsgMzIpOworKworKyNpZmRlZiBUQVJH RVRfUkVHTkFNRVMgICAgICAKKysJICBpZiAoVEFSR0VUX1JFR05BTUVTKQorKwkgICAgZnByaW50 ZiAoZmlsZSwgIiUldnMlZCIsIHZzeF9yZWcpOworKwkgIGVsc2UKKysjZW5kaWYKKysJICAgIGZw cmludGYgKGZpbGUsICIlZCIsIHZzeF9yZWcpOworKwl9CisrICAgICAgcmV0dXJuOworKworICAg ICBjYXNlICdYJzoKKyAgICAgICBpZiAoR0VUX0NPREUgKHgpID09IE1FTQorIAkgICYmIChsZWdp dGltYXRlX2luZGV4ZWRfYWRkcmVzc19wIChYRVhQICh4LCAwKSwgMCkKK0BAIC0xMjUxOCwxMyAr MTMyNDQsMTYgQEAgcHJpbnRfb3BlcmFuZCAoRklMRSAqZmlsZSwgcnR4IHgsIGludCBjbworIAor IAkgICAgLyogRmFsbCB0aHJvdWdoLiAgTXVzdCBiZSBbcmVnK3JlZ10uICAqLworIAkgIH0KKy0J aWYgKFRBUkdFVF9BTFRJVkVDCisrCWlmIChWRUNUT1JfTUVNX0FMVElWRUNfUCAoR0VUX01PREUg KHgpKQorIAkgICAgJiYgR0VUX0NPREUgKHRtcCkgPT0gQU5ECisgCSAgICAmJiBHRVRfQ09ERSAo WEVYUCAodG1wLCAxKSkgPT0gQ09OU1RfSU5UCisgCSAgICAmJiBJTlRWQUwgKFhFWFAgKHRtcCwg MSkpID09IC0xNikKKyAJICB0bXAgPSBYRVhQICh0bXAsIDApOworKwllbHNlIGlmIChWRUNUT1Jf TUVNX1ZTWF9QIChHRVRfTU9ERSAoeCkpCisrCQkgJiYgR0VUX0NPREUgKHRtcCkgPT0gUFJFX01P RElGWSkKKysJICB0bXAgPSBYRVhQICh0bXAsIDEpOworIAlpZiAoR0VUX0NPREUgKHRtcCkgPT0g UkVHKQorLQkgIGZwcmludGYgKGZpbGUsICIwLCVzIiwgcmVnX25hbWVzW1JFR05PICh0bXApXSk7 CisrCSAgZnByaW50ZiAoZmlsZSwgIiVzLCVzIiwgcmVnX25hbWVzWzBdLCByZWdfbmFtZXNbUkVH Tk8gKHRtcCldKTsKKyAJZWxzZQorIAkgIHsKKyAJICAgIGlmICghR0VUX0NPREUgKHRtcCkgPT0g UExVUworQEAgLTEzMjk2LDU1ICsxNDAyNSw2MiBAQCBvdXRwdXRfZTUwMF9mbGlwX2d0X2JpdCAo cnR4IGRzdCwgcnR4IHNyCisgICByZXR1cm4gc3RyaW5nOworIH0KKyAKKy0vKiBSZXR1cm4gaW5z biBpbmRleCBmb3IgdGhlIHZlY3RvciBjb21wYXJlIGluc3RydWN0aW9uIGZvciBnaXZlbiBDT0RF LAorLSAgIGFuZCBERVNUX01PREUsIE9QX01PREUuIFJldHVybiBJTlNOX05PVF9BVkFJTEFCTEUg aWYgdmFsaWQgaW5zbiBpcworLSAgIG5vdCBhdmFpbGFibGUuICAqLworKy8qIFJldHVybiBpbnNu IGZvciBWU1ggY29tcGFyaXNvbnMuICAqLworIAorLXN0YXRpYyBpbnQKKy1nZXRfdmVjX2NtcF9p bnNuIChlbnVtIHJ0eF9jb2RlIGNvZGUsCistCQkgIGVudW0gbWFjaGluZV9tb2RlIGRlc3RfbW9k ZSwKKy0JCSAgZW51bSBtYWNoaW5lX21vZGUgb3BfbW9kZSkKKytzdGF0aWMgcnR4CisrcnM2MDAw X2VtaXRfdmVjdG9yX2NvbXBhcmVfdnN4IChlbnVtIHJ0eF9jb2RlIGNvZGUsCisrCQkJCXJ0eCBt YXNrLAorKwkJCQlydHggb3AwLAorKwkJCQlydHggb3AxKQorIHsKKy0gIGlmICghVEFSR0VUX0FM VElWRUMpCistICAgIHJldHVybiBJTlNOX05PVF9BVkFJTEFCTEU7CistCisgICBzd2l0Y2ggKGNv ZGUpCisgICAgIHsKKysgICAgZGVmYXVsdDoKKysgICAgICBicmVhazsKKysKKyAgICAgY2FzZSBF UToKKy0gICAgICBpZiAoZGVzdF9tb2RlID09IFYxNlFJbW9kZSAmJiBvcF9tb2RlID09IFYxNlFJ bW9kZSkKKy0JcmV0dXJuIFVOU1BFQ19WQ01QRVFVQjsKKy0gICAgICBpZiAoZGVzdF9tb2RlID09 IFY4SEltb2RlICYmIG9wX21vZGUgPT0gVjhISW1vZGUpCistCXJldHVybiBVTlNQRUNfVkNNUEVR VUg7CistICAgICAgaWYgKGRlc3RfbW9kZSA9PSBWNFNJbW9kZSAmJiBvcF9tb2RlID09IFY0U0lt b2RlKQorLQlyZXR1cm4gVU5TUEVDX1ZDTVBFUVVXOworLSAgICAgIGlmIChkZXN0X21vZGUgPT0g VjRTSW1vZGUgJiYgb3BfbW9kZSA9PSBWNFNGbW9kZSkKKy0JcmV0dXJuIFVOU1BFQ19WQ01QRVFG UDsKKysgICAgY2FzZSBHVDoKKysgICAgY2FzZSBHRToKKysgICAgICBlbWl0X2luc24gKGdlbl9y dHhfU0VUIChWT0lEbW9kZSwKKysJCQkgICAgICBtYXNrLAorKwkJCSAgICAgIGdlbl9ydHhfZm10 X2VlIChjb2RlLCBHRVRfTU9ERSAobWFzayksCisrCQkJCQkgICAgICBvcDAsCisrCQkJCQkgICAg ICBvcDEpKSk7CisrICAgICAgcmV0dXJuIG1hc2s7CisrICAgIH0KKysKKysgIHJldHVybiBOVUxM X1JUWDsKKyt9CisrCisrLyogUmV0dXJuIGluc24gZm9yIEFsdGl2ZWMgY29tcGFyaXNvbnMuICAq LworKworK3N0YXRpYyBydHgKKytyczYwMDBfZW1pdF92ZWN0b3JfY29tcGFyZV9hbHRpdmVjIChl bnVtIHJ0eF9jb2RlIGNvZGUsCisrCQkJCSAgICBydHggbWFzaywKKysJCQkJICAgIHJ0eCBvcDAs CisrCQkJCSAgICBydHggb3AxKQorK3sKKysgIHN3aXRjaCAoY29kZSkKKysgICAgeworKyAgICBk ZWZhdWx0OgorICAgICAgIGJyZWFrOworKworICAgICBjYXNlIEdFOgorLSAgICAgIGlmIChkZXN0 X21vZGUgPT0gVjRTSW1vZGUgJiYgb3BfbW9kZSA9PSBWNFNGbW9kZSkKKy0JcmV0dXJuIFVOU1BF Q19WQ01QR0VGUDsKKysgICAgICBpZiAoR0VUX01PREUgKG1hc2spICE9IFY0U0Ztb2RlKQorKwly ZXR1cm4gTlVMTF9SVFg7CisrICAgICAgLyogZmFsbCB0aHJvdWdoICovCisrICAgIGNhc2UgRVE6 CisgICAgIGNhc2UgR1Q6CistICAgICAgaWYgKGRlc3RfbW9kZSA9PSBWMTZRSW1vZGUgJiYgb3Bf bW9kZSA9PSBWMTZRSW1vZGUpCistCXJldHVybiBVTlNQRUNfVkNNUEdUU0I7CistICAgICAgaWYg KGRlc3RfbW9kZSA9PSBWOEhJbW9kZSAmJiBvcF9tb2RlID09IFY4SEltb2RlKQorLQlyZXR1cm4g VU5TUEVDX1ZDTVBHVFNIOworLSAgICAgIGlmIChkZXN0X21vZGUgPT0gVjRTSW1vZGUgJiYgb3Bf bW9kZSA9PSBWNFNJbW9kZSkKKy0JcmV0dXJuIFVOU1BFQ19WQ01QR1RTVzsKKy0gICAgICBpZiAo ZGVzdF9tb2RlID09IFY0U0ltb2RlICYmIG9wX21vZGUgPT0gVjRTRm1vZGUpCistCXJldHVybiBV TlNQRUNfVkNNUEdURlA7CistICAgICAgYnJlYWs7CisgICAgIGNhc2UgR1RVOgorLSAgICAgIGlm IChkZXN0X21vZGUgPT0gVjE2UUltb2RlICYmIG9wX21vZGUgPT0gVjE2UUltb2RlKQorLQlyZXR1 cm4gVU5TUEVDX1ZDTVBHVFVCOworLSAgICAgIGlmIChkZXN0X21vZGUgPT0gVjhISW1vZGUgJiYg b3BfbW9kZSA9PSBWOEhJbW9kZSkKKy0JcmV0dXJuIFVOU1BFQ19WQ01QR1RVSDsKKy0gICAgICBp ZiAoZGVzdF9tb2RlID09IFY0U0ltb2RlICYmIG9wX21vZGUgPT0gVjRTSW1vZGUpCistCXJldHVy biBVTlNQRUNfVkNNUEdUVVc7CistICAgICAgYnJlYWs7CistICAgIGRlZmF1bHQ6CistICAgICAg YnJlYWs7CisrICAgICAgZW1pdF9pbnNuIChnZW5fcnR4X1NFVCAoVk9JRG1vZGUsCisrCQkJICAg ICAgbWFzaywKKysJCQkgICAgICBnZW5fcnR4X2ZtdF9lZSAoY29kZSwgR0VUX01PREUgKG1hc2sp LAorKwkJCQkJICAgICAgb3AwLAorKwkJCQkJICAgICAgb3AxKSkpOworKyAgICAgIHJldHVybiBt YXNrOworICAgICB9CistICByZXR1cm4gSU5TTl9OT1RfQVZBSUxBQkxFOworKworKyAgcmV0dXJu IE5VTExfUlRYOworIH0KKyAKKyAvKiBFbWl0IHZlY3RvciBjb21wYXJlIGZvciBvcGVyYW5kcyBP UDAgYW5kIE9QMSB1c2luZyBjb2RlIFJDT0RFLgorQEAgLTEzMzU1LDEyOSArMTQwOTEsMTExIEBA IHJzNjAwMF9lbWl0X3ZlY3Rvcl9jb21wYXJlIChlbnVtIHJ0eF9jb2QKKyAJCQkgICAgcnR4IG9w MCwgcnR4IG9wMSwKKyAJCQkgICAgZW51bSBtYWNoaW5lX21vZGUgZG1vZGUpCisgeworLSAgaW50 IHZlY19jbXBfaW5zbjsKKyAgIHJ0eCBtYXNrOworLSAgZW51bSBtYWNoaW5lX21vZGUgZGVzdF9t b2RlOworLSAgZW51bSBtYWNoaW5lX21vZGUgb3BfbW9kZSA9IEdFVF9NT0RFIChvcDEpOworKyAg Ym9vbCBzd2FwX29wZXJhbmRzID0gZmFsc2U7CisrICBib29sIHRyeV9hZ2FpbiA9IGZhbHNlOwor IAorLSAgZ2NjX2Fzc2VydCAoVEFSR0VUX0FMVElWRUMpOworKyAgZ2NjX2Fzc2VydCAoVEFSR0VU X0FMVElWRUMgfHwgVEFSR0VUX1ZTWCk7CisgICBnY2NfYXNzZXJ0IChHRVRfTU9ERSAob3AwKSA9 PSBHRVRfTU9ERSAob3AxKSk7CisgCistICAvKiBGbG9hdGluZyBwb2ludCB2ZWN0b3IgY29tcGFy ZSBpbnN0cnVjdGlvbnMgdXNlcyBkZXN0aW5hdGlvbiBWNFNJbW9kZS4KKy0gICAgIE1vdmUgZGVz dGluYXRpb24gdG8gYXBwcm9wcmlhdGUgbW9kZSBsYXRlci4gICovCistICBpZiAoZG1vZGUgPT0g VjRTRm1vZGUpCistICAgIGRlc3RfbW9kZSA9IFY0U0ltb2RlOworLSAgZWxzZQorLSAgICBkZXN0 X21vZGUgPSBkbW9kZTsKKysgIG1hc2sgPSBnZW5fcmVnX3J0eCAoZG1vZGUpOworIAorLSAgbWFz ayA9IGdlbl9yZWdfcnR4IChkZXN0X21vZGUpOworLSAgdmVjX2NtcF9pbnNuID0gZ2V0X3ZlY19j bXBfaW5zbiAocmNvZGUsIGRlc3RfbW9kZSwgb3BfbW9kZSk7CisrICAvKiBUcnkgZm9yIFZTWCBi ZWZvcmUgQWx0aXZlYy4gICovCisrICBpZiAoVEFSR0VUX1ZTWCAmJiBWU1hfVkVDVE9SX01PREUg KGRtb2RlKSkKKysgICAgeworKyAgICAgIHJ0eCB2c3ggPSByczYwMDBfZW1pdF92ZWN0b3JfY29t cGFyZV92c3ggKHJjb2RlLCBtYXNrLCBvcDAsIG9wMSk7CisrICAgICAgaWYgKHZzeCkKKysJcmV0 dXJuIHZzeDsKKysgICAgfQorKyAgZWxzZSBpZiAoVEFSR0VUX0FMVElWRUMgJiYgQUxUSVZFQ19W RUNUT1JfTU9ERSAoZG1vZGUpKQorKyAgICB7CisrICAgICAgcnR4IGF2ID0gcnM2MDAwX2VtaXRf dmVjdG9yX2NvbXBhcmVfYWx0aXZlYyAocmNvZGUsIG1hc2ssIG9wMCwgb3AxKTsKKysgICAgICBp ZiAoYXYpCisrCXJldHVybiBhdjsKKysgICAgfQorIAorLSAgaWYgKHZlY19jbXBfaW5zbiA9PSBJ TlNOX05PVF9BVkFJTEFCTEUpCisrICBzd2l0Y2ggKHJjb2RlKQorICAgICB7CistICAgICAgYm9v bCBzd2FwX29wZXJhbmRzID0gZmFsc2U7CistICAgICAgYm9vbCB0cnlfYWdhaW4gPSBmYWxzZTsK Ky0gICAgICBzd2l0Y2ggKHJjb2RlKQorLQl7CistCWNhc2UgTFQ6CistCSAgcmNvZGUgPSBHVDsK Ky0JICBzd2FwX29wZXJhbmRzID0gdHJ1ZTsKKy0JICB0cnlfYWdhaW4gPSB0cnVlOworLQkgIGJy ZWFrOworLQljYXNlIExUVToKKy0JICByY29kZSA9IEdUVTsKKy0JICBzd2FwX29wZXJhbmRzID0g dHJ1ZTsKKy0JICB0cnlfYWdhaW4gPSB0cnVlOworLQkgIGJyZWFrOworLQljYXNlIE5FOgorLQlj YXNlIFVOTEU6CistCWNhc2UgVU5MVDoKKy0JY2FzZSBVTkdFOgorLQljYXNlIFVOR1Q6CistCSAg LyogSW52ZXJ0IGNvbmRpdGlvbiBhbmQgdHJ5IGFnYWluLgorLQkgICAgIGUuZy4sIEEgIT0gQiBi ZWNvbWVzIH4oQT09QikuICAqLworLQkgIHsKKy0JICAgIGVudW0gcnR4X2NvZGUgcmV2X2NvZGU7 CistCSAgICBlbnVtIGluc25fY29kZSBub3JfY29kZTsKKy0JICAgIHJ0eCBlcV9ydHg7CistCist CSAgICByZXZfY29kZSA9IHJldmVyc2VfY29uZGl0aW9uX21heWJlX3Vub3JkZXJlZCAocmNvZGUp OworLQkgICAgZXFfcnR4ID0gcnM2MDAwX2VtaXRfdmVjdG9yX2NvbXBhcmUgKHJldl9jb2RlLCBv cDAsIG9wMSwKKy0JCQkJCQkgZGVzdF9tb2RlKTsKKy0KKy0JICAgIG5vcl9jb2RlID0gb3B0YWJf aGFuZGxlciAob25lX2NtcGxfb3B0YWIsIChpbnQpZGVzdF9tb2RlKS0+aW5zbl9jb2RlOworLQkg ICAgZ2NjX2Fzc2VydCAobm9yX2NvZGUgIT0gQ09ERV9GT1Jfbm90aGluZyk7CistCSAgICBlbWl0 X2luc24gKEdFTl9GQ04gKG5vcl9jb2RlKSAobWFzaywgZXFfcnR4KSk7CisrICAgIGNhc2UgTFQ6 CisrICAgICAgcmNvZGUgPSBHVDsKKysgICAgICBzd2FwX29wZXJhbmRzID0gdHJ1ZTsKKysgICAg ICB0cnlfYWdhaW4gPSB0cnVlOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIExUVToKKysgICAg ICByY29kZSA9IEdUVTsKKysgICAgICBzd2FwX29wZXJhbmRzID0gdHJ1ZTsKKysgICAgICB0cnlf YWdhaW4gPSB0cnVlOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIE5FOgorKyAgICBjYXNlIFVO TEU6CisrICAgIGNhc2UgVU5MVDoKKysgICAgY2FzZSBVTkdFOgorKyAgICBjYXNlIFVOR1Q6Cisr ICAgICAgLyogSW52ZXJ0IGNvbmRpdGlvbiBhbmQgdHJ5IGFnYWluLgorKwkgZS5nLiwgQSAhPSBC IGJlY29tZXMgfihBPT1CKS4gICovCisrICAgICAgeworKwllbnVtIHJ0eF9jb2RlIHJldl9jb2Rl OworKwllbnVtIGluc25fY29kZSBub3JfY29kZTsKKysJcnR4IGVxX3J0eDsKKysKKysJcmV2X2Nv ZGUgPSByZXZlcnNlX2NvbmRpdGlvbl9tYXliZV91bm9yZGVyZWQgKHJjb2RlKTsKKysJZXFfcnR4 ID0gcnM2MDAwX2VtaXRfdmVjdG9yX2NvbXBhcmUgKHJldl9jb2RlLCBvcDAsIG9wMSwgZG1vZGUp OworKworKwlub3JfY29kZSA9IG9wdGFiX2hhbmRsZXIgKG9uZV9jbXBsX29wdGFiLCAoaW50KWRt b2RlKS0+aW5zbl9jb2RlOworKwlnY2NfYXNzZXJ0IChub3JfY29kZSAhPSBDT0RFX0ZPUl9ub3Ro aW5nKTsKKysJZW1pdF9pbnNuIChHRU5fRkNOIChub3JfY29kZSkgKG1hc2ssIGVxX3J0eCkpOwor KwlyZXR1cm4gbWFzazsKKysgICAgICB9CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgR0U6Cisr ICAgIGNhc2UgR0VVOgorKyAgICBjYXNlIExFOgorKyAgICBjYXNlIExFVToKKysgICAgICAvKiBU cnkgR1QvR1RVL0xUL0xUVSBPUiBFUSAqLworKyAgICAgIHsKKysJcnR4IGNfcnR4LCBlcV9ydHg7 CisrCWVudW0gaW5zbl9jb2RlIGlvcl9jb2RlOworKwllbnVtIHJ0eF9jb2RlIG5ld19jb2RlOwor IAorLQkgICAgaWYgKGRtb2RlICE9IGRlc3RfbW9kZSkKKy0JICAgICAgeworLQkJcnR4IHRlbXAg PSBnZW5fcmVnX3J0eCAoZGVzdF9tb2RlKTsKKy0JCWNvbnZlcnRfbW92ZSAodGVtcCwgbWFzaywg MCk7CistCQlyZXR1cm4gdGVtcDsKKy0JICAgICAgfQorLQkgICAgcmV0dXJuIG1hc2s7CistCSAg fQorLQkgIGJyZWFrOworLQljYXNlIEdFOgorLQljYXNlIEdFVToKKy0JY2FzZSBMRToKKy0JY2Fz ZSBMRVU6CistCSAgLyogVHJ5IEdUL0dUVS9MVC9MVFUgT1IgRVEgKi8KKysJc3dpdGNoIChyY29k ZSkKKyAJICB7CistCSAgICBydHggY19ydHgsIGVxX3J0eDsKKy0JICAgIGVudW0gaW5zbl9jb2Rl IGlvcl9jb2RlOworLQkgICAgZW51bSBydHhfY29kZSBuZXdfY29kZTsKKy0KKy0JICAgIHN3aXRj aCAocmNvZGUpCistCSAgICAgIHsKKy0JICAgICAgY2FzZSAgR0U6CistCQluZXdfY29kZSA9IEdU OworLQkJYnJlYWs7CistCistCSAgICAgIGNhc2UgR0VVOgorLQkJbmV3X2NvZGUgPSBHVFU7Cist CQlicmVhazsKKysJICBjYXNlICBHRToKKysJICAgIG5ld19jb2RlID0gR1Q7CisrCSAgICBicmVh azsKKyAKKy0JICAgICAgY2FzZSBMRToKKy0JCW5ld19jb2RlID0gTFQ7CistCQlicmVhazsKKysJ ICBjYXNlIEdFVToKKysJICAgIG5ld19jb2RlID0gR1RVOworKwkgICAgYnJlYWs7CisgCistCSAg ICAgIGNhc2UgTEVVOgorLQkJbmV3X2NvZGUgPSBMVFU7CistCQlicmVhazsKKysJICBjYXNlIExF OgorKwkgICAgbmV3X2NvZGUgPSBMVDsKKysJICAgIGJyZWFrOworIAorLQkgICAgICBkZWZhdWx0 OgorLQkJZ2NjX3VucmVhY2hhYmxlICgpOworLQkgICAgICB9CisrCSAgY2FzZSBMRVU6CisrCSAg ICBuZXdfY29kZSA9IExUVTsKKysJICAgIGJyZWFrOworIAorLQkgICAgY19ydHggPSByczYwMDBf ZW1pdF92ZWN0b3JfY29tcGFyZSAobmV3X2NvZGUsCistCQkJCQkJb3AwLCBvcDEsIGRlc3RfbW9k ZSk7CistCSAgICBlcV9ydHggPSByczYwMDBfZW1pdF92ZWN0b3JfY29tcGFyZSAoRVEsIG9wMCwg b3AxLAorLQkJCQkJCSBkZXN0X21vZGUpOworLQorLQkgICAgaW9yX2NvZGUgPSBvcHRhYl9oYW5k bGVyIChpb3Jfb3B0YWIsIChpbnQpZGVzdF9tb2RlKS0+aW5zbl9jb2RlOworLQkgICAgZ2NjX2Fz c2VydCAoaW9yX2NvZGUgIT0gQ09ERV9GT1Jfbm90aGluZyk7CistCSAgICBlbWl0X2luc24gKEdF Tl9GQ04gKGlvcl9jb2RlKSAobWFzaywgY19ydHgsIGVxX3J0eCkpOworLQkgICAgaWYgKGRtb2Rl ICE9IGRlc3RfbW9kZSkKKy0JICAgICAgeworLQkJcnR4IHRlbXAgPSBnZW5fcmVnX3J0eCAoZGVz dF9tb2RlKTsKKy0JCWNvbnZlcnRfbW92ZSAodGVtcCwgbWFzaywgMCk7CistCQlyZXR1cm4gdGVt cDsKKy0JICAgICAgfQorLQkgICAgcmV0dXJuIG1hc2s7CisrCSAgZGVmYXVsdDoKKysJICAgIGdj Y191bnJlYWNoYWJsZSAoKTsKKyAJICB9CistCSAgYnJlYWs7CistCWRlZmF1bHQ6CistCSAgZ2Nj X3VucmVhY2hhYmxlICgpOworLQl9CisgCistICAgICAgaWYgKHRyeV9hZ2FpbikKKy0JeworLQkg IHZlY19jbXBfaW5zbiA9IGdldF92ZWNfY21wX2luc24gKHJjb2RlLCBkZXN0X21vZGUsIG9wX21v ZGUpOworLQkgIC8qIFlvdSBvbmx5IGdldCB0d28gY2hhbmNlcy4gICovCistCSAgZ2NjX2Fzc2Vy dCAodmVjX2NtcF9pbnNuICE9IElOU05fTk9UX0FWQUlMQUJMRSk7CistCX0KKysJY19ydHggPSBy czYwMDBfZW1pdF92ZWN0b3JfY29tcGFyZSAobmV3X2NvZGUsCisrCQkJCQkgICAgb3AwLCBvcDEs IGRtb2RlKTsKKysJZXFfcnR4ID0gcnM2MDAwX2VtaXRfdmVjdG9yX2NvbXBhcmUgKEVRLCBvcDAs IG9wMSwKKysJCQkJCSAgICAgZG1vZGUpOworKworKwlpb3JfY29kZSA9IG9wdGFiX2hhbmRsZXIg KGlvcl9vcHRhYiwgKGludClkbW9kZSktPmluc25fY29kZTsKKysJZ2NjX2Fzc2VydCAoaW9yX2Nv ZGUgIT0gQ09ERV9GT1Jfbm90aGluZyk7CisrCWVtaXRfaW5zbiAoR0VOX0ZDTiAoaW9yX2NvZGUp IChtYXNrLCBjX3J0eCwgZXFfcnR4KSk7CisrCXJldHVybiBtYXNrOworKyAgICAgIH0KKysgICAg ICBicmVhazsKKysgICAgZGVmYXVsdDoKKysgICAgICBnY2NfdW5yZWFjaGFibGUgKCk7CisrICAg IH0KKyAKKysgIGlmICh0cnlfYWdhaW4pCisrICAgIHsKKyAgICAgICBpZiAoc3dhcF9vcGVyYW5k cykKKyAJeworIAkgIHJ0eCB0bXA7CitAQCAtMTM0ODUsNjkgKzE0MjAzLDIzIEBAIHJzNjAwMF9l bWl0X3ZlY3Rvcl9jb21wYXJlIChlbnVtIHJ0eF9jb2QKKyAJICBvcDAgPSBvcDE7CisgCSAgb3Ax ID0gdG1wOworIAl9CistICAgIH0KKy0KKy0gIGVtaXRfaW5zbiAoZ2VuX3J0eF9TRVQgKFZPSURt b2RlLCBtYXNrLAorLQkJCSAgZ2VuX3J0eF9VTlNQRUMgKGRlc3RfbW9kZSwKKy0JCQkJCSAgZ2Vu X3J0dmVjICgyLCBvcDAsIG9wMSksCistCQkJCQkgIHZlY19jbXBfaW5zbikpKTsKKy0gIGlmIChk bW9kZSAhPSBkZXN0X21vZGUpCistICAgIHsKKy0gICAgICBydHggdGVtcCA9IGdlbl9yZWdfcnR4 IChkZXN0X21vZGUpOworLSAgICAgIGNvbnZlcnRfbW92ZSAodGVtcCwgbWFzaywgMCk7CistICAg ICAgcmV0dXJuIHRlbXA7CistICAgIH0KKy0gIHJldHVybiBtYXNrOworLX0KKy0KKy0vKiBSZXR1 cm4gdmVjdG9yIHNlbGVjdCBpbnN0cnVjdGlvbiBmb3IgTU9ERS4gUmV0dXJuIElOU05fTk9UX0FW QUlMQUJMRSwgaWYKKy0gICB2YWxpZCBpbnNuIGRvZXNuIGV4aXN0IGZvciBnaXZlbiBtb2RlLiAg Ki8KKyAKKy1zdGF0aWMgaW50CistZ2V0X3ZzZWxfaW5zbiAoZW51bSBtYWNoaW5lX21vZGUgbW9k ZSkKKy17CistICBzd2l0Y2ggKG1vZGUpCistICAgIHsKKy0gICAgY2FzZSBWNFNJbW9kZToKKy0g ICAgICByZXR1cm4gVU5TUEVDX1ZTRUw0U0k7CistICAgICAgYnJlYWs7CistICAgIGNhc2UgVjRT Rm1vZGU6CistICAgICAgcmV0dXJuIFVOU1BFQ19WU0VMNFNGOworLSAgICAgIGJyZWFrOworLSAg ICBjYXNlIFY4SEltb2RlOgorLSAgICAgIHJldHVybiBVTlNQRUNfVlNFTDhISTsKKy0gICAgICBi cmVhazsKKy0gICAgY2FzZSBWMTZRSW1vZGU6CistICAgICAgcmV0dXJuIFVOU1BFQ19WU0VMMTZR STsKKy0gICAgICBicmVhazsKKy0gICAgZGVmYXVsdDoKKy0gICAgICByZXR1cm4gSU5TTl9OT1Rf QVZBSUxBQkxFOworLSAgICAgIGJyZWFrOworKyAgICAgIGlmIChUQVJHRVRfVlNYICYmIFZTWF9W RUNUT1JfTU9ERSAoZG1vZGUpKQorKwl7CisrCSAgcnR4IHZzeCA9IHJzNjAwMF9lbWl0X3ZlY3Rv cl9jb21wYXJlX3ZzeCAocmNvZGUsIG1hc2ssIG9wMCwgb3AxKTsKKysJICBpZiAodnN4KQorKwkg ICAgcmV0dXJuIHZzeDsKKysJfQorKyAgICAgIGVsc2UgaWYgKFRBUkdFVF9BTFRJVkVDICYmIEFM VElWRUNfVkVDVE9SX01PREUgKGRtb2RlKSkKKysJeworKwkgIHJ0eCBhdiA9IHJzNjAwMF9lbWl0 X3ZlY3Rvcl9jb21wYXJlX2FsdGl2ZWMgKHJjb2RlLCBtYXNrLCBvcDAsIG9wMSk7CisrCSAgaWYg KGF2KQorKwkgICAgcmV0dXJuIGF2OworKwl9CisgICAgIH0KKy0gIHJldHVybiBJTlNOX05PVF9B VkFJTEFCTEU7CistfQorLQorLS8qIEVtaXQgdmVjdG9yIHNlbGVjdCBpbnNuIHdoZXJlIERFU1Qg aXMgZGVzdGluYXRpb24gdXNpbmcKKy0gICBvcGVyYW5kcyBPUDEsIE9QMiBhbmQgTUFTSy4gICov CistCistc3RhdGljIHZvaWQKKy1yczYwMDBfZW1pdF92ZWN0b3Jfc2VsZWN0IChydHggZGVzdCwg cnR4IG9wMSwgcnR4IG9wMiwgcnR4IG1hc2spCisteworLSAgcnR4IHQsIHRlbXA7CistICBlbnVt IG1hY2hpbmVfbW9kZSBkZXN0X21vZGUgPSBHRVRfTU9ERSAoZGVzdCk7CistICBpbnQgdnNlbF9p bnNuX2luZGV4ICA9IGdldF92c2VsX2luc24gKEdFVF9NT0RFIChkZXN0KSk7CisgCistICB0ZW1w ID0gZ2VuX3JlZ19ydHggKGRlc3RfbW9kZSk7CistCistICAvKiBGb3IgZWFjaCB2ZWN0b3IgZWxl bWVudCwgc2VsZWN0IG9wMSB3aGVuIG1hc2sgaXMgMSBvdGhlcndpc2UKKy0gICAgIHNlbGVjdCBv cDIuICAqLworLSAgdCA9IGdlbl9ydHhfU0VUIChWT0lEbW9kZSwgdGVtcCwKKy0JCSAgIGdlbl9y dHhfVU5TUEVDIChkZXN0X21vZGUsCistCQkJCSAgIGdlbl9ydHZlYyAoMywgb3AyLCBvcDEsIG1h c2spLAorLQkJCQkgICB2c2VsX2luc25faW5kZXgpKTsKKy0gIGVtaXRfaW5zbiAodCk7CistICBl bWl0X21vdmVfaW5zbiAoZGVzdCwgdGVtcCk7CistICByZXR1cm47CisrICAvKiBZb3Ugb25seSBn ZXQgdHdvIGNoYW5jZXMuICAqLworKyAgZ2NjX3VucmVhY2hhYmxlICgpOworIH0KKyAKKyAvKiBF bWl0IHZlY3RvciBjb25kaXRpb25hbCBleHByZXNzaW9uLgorQEAgLTEzNTYyLDE1ICsxNDIzNCwy OSBAQCByczYwMDBfZW1pdF92ZWN0b3JfY29uZF9leHByIChydHggZGVzdCwgCisgICBlbnVtIHJ0 eF9jb2RlIHJjb2RlID0gR0VUX0NPREUgKGNvbmQpOworICAgcnR4IG1hc2s7CisgCistICBpZiAo IVRBUkdFVF9BTFRJVkVDKQorKyAgaWYgKCFUQVJHRVRfQUxUSVZFQyAmJiAhVEFSR0VUX1ZTWCkK KyAgICAgcmV0dXJuIDA7CisgCisgICAvKiBHZXQgdGhlIHZlY3RvciBtYXNrIGZvciB0aGUgZ2l2 ZW4gcmVsYXRpb25hbCBvcGVyYXRpb25zLiAgKi8KKyAgIG1hc2sgPSByczYwMDBfZW1pdF92ZWN0 b3JfY29tcGFyZSAocmNvZGUsIGNjX29wMCwgY2Nfb3AxLCBkZXN0X21vZGUpOworIAorLSAgcnM2 MDAwX2VtaXRfdmVjdG9yX3NlbGVjdCAoZGVzdCwgb3AxLCBvcDIsIG1hc2spOworKyAgaWYgKCFt YXNrKQorKyAgICByZXR1cm4gMDsKKyAKKy0gIHJldHVybiAxOworKyAgaWYgKChUQVJHRVRfVlNY ICYmIFZTWF9WRUNUT1JfTU9WRV9NT0RFIChkZXN0X21vZGUpKQorKyAgICAgIHx8IChUQVJHRVRf QUxUSVZFQyAmJiBBTFRJVkVDX1ZFQ1RPUl9NT0RFIChkZXN0X21vZGUpKSkKKysgICAgeworKyAg ICAgIHJ0eCBjb25kMiA9IGdlbl9ydHhfZm10X2VlIChORSwgVk9JRG1vZGUsIG1hc2ssIGNvbnN0 MF9ydHgpOworKyAgICAgIGVtaXRfaW5zbiAoZ2VuX3J0eF9TRVQgKFZPSURtb2RlLAorKwkJCSAg ICAgIGRlc3QsCisrCQkJICAgICAgZ2VuX3J0eF9JRl9USEVOX0VMU0UgKGRlc3RfbW9kZSwKKysJ CQkJCQkgICAgY29uZDIsCisrCQkJCQkJICAgIG9wMSwKKysJCQkJCQkgICAgb3AyKSkpOworKyAg ICAgIHJldHVybiAxOworKyAgICB9CisrCisrICByZXR1cm4gMDsKKyB9CisgCisgLyogRW1pdCBh IGNvbmRpdGlvbmFsIG1vdmU6IG1vdmUgVFJVRV9DT05EIHRvIERFU1QgaWYgT1Agb2YgdGhlCitA QCAtMTM3NjYsOCArMTQ0NTIsOCBAQCByczYwMDBfZW1pdF9pbnRfY21vdmUgKHJ0eCBkZXN0LCBy dHggb3AsCisgeworICAgcnR4IGNvbmRpdGlvbl9ydHgsIGNyOworIAorLSAgLyogQWxsIGlzZWwg aW1wbGVtZW50YXRpb25zIHRodXMgZmFyIGFyZSAzMi1iaXRzLiAgKi8KKy0gIGlmIChHRVRfTU9E RSAocnM2MDAwX2NvbXBhcmVfb3AwKSAhPSBTSW1vZGUpCisrICBpZiAoR0VUX01PREUgKHJzNjAw MF9jb21wYXJlX29wMCkgIT0gU0ltb2RlCisrICAgICAgJiYgKCFUQVJHRVRfUE9XRVJQQzY0IHx8 IEdFVF9NT0RFIChyczYwMDBfY29tcGFyZV9vcDApICE9IERJbW9kZSkpCisgICAgIHJldHVybiAw OworIAorICAgLyogV2Ugc3RpbGwgaGF2ZSB0byBkbyB0aGUgY29tcGFyZSwgYmVjYXVzZSBpc2Vs IGRvZXNuJ3QgZG8gYQorQEAgLTEzNzc2LDEyICsxNDQ2MiwyNCBAQCByczYwMDBfZW1pdF9pbnRf Y21vdmUgKHJ0eCBkZXN0LCBydHggb3AsCisgICBjb25kaXRpb25fcnR4ID0gcnM2MDAwX2dlbmVy YXRlX2NvbXBhcmUgKEdFVF9DT0RFIChvcCkpOworICAgY3IgPSBYRVhQIChjb25kaXRpb25fcnR4 LCAwKTsKKyAKKy0gIGlmIChHRVRfTU9ERSAoY3IpID09IENDbW9kZSkKKy0gICAgZW1pdF9pbnNu IChnZW5faXNlbF9zaWduZWQgKGRlc3QsIGNvbmRpdGlvbl9ydHgsCistCQkJCXRydWVfY29uZCwg ZmFsc2VfY29uZCwgY3IpKTsKKysgIGlmIChHRVRfTU9ERSAocnM2MDAwX2NvbXBhcmVfb3AwKSA9 PSBTSW1vZGUpCisrICAgIHsKKysgICAgICBpZiAoR0VUX01PREUgKGNyKSA9PSBDQ21vZGUpCisr CWVtaXRfaW5zbiAoZ2VuX2lzZWxfc2lnbmVkX3NpIChkZXN0LCBjb25kaXRpb25fcnR4LAorKwkJ CQkgICAgICAgdHJ1ZV9jb25kLCBmYWxzZV9jb25kLCBjcikpOworKyAgICAgIGVsc2UKKysJZW1p dF9pbnNuIChnZW5faXNlbF91bnNpZ25lZF9zaSAoZGVzdCwgY29uZGl0aW9uX3J0eCwKKysJCQkJ CSB0cnVlX2NvbmQsIGZhbHNlX2NvbmQsIGNyKSk7CisrICAgIH0KKyAgIGVsc2UKKy0gICAgZW1p dF9pbnNuIChnZW5faXNlbF91bnNpZ25lZCAoZGVzdCwgY29uZGl0aW9uX3J0eCwKKy0JCQkJICB0 cnVlX2NvbmQsIGZhbHNlX2NvbmQsIGNyKSk7CisrICAgIHsKKysgICAgICBpZiAoR0VUX01PREUg KGNyKSA9PSBDQ21vZGUpCisrCWVtaXRfaW5zbiAoZ2VuX2lzZWxfc2lnbmVkX2RpIChkZXN0LCBj b25kaXRpb25fcnR4LAorKwkJCQkgICAgICAgdHJ1ZV9jb25kLCBmYWxzZV9jb25kLCBjcikpOwor KyAgICAgIGVsc2UKKysJZW1pdF9pbnNuIChnZW5faXNlbF91bnNpZ25lZF9kaSAoZGVzdCwgY29u ZGl0aW9uX3J0eCwKKysJCQkJCSB0cnVlX2NvbmQsIGZhbHNlX2NvbmQsIGNyKSk7CisrICAgIH0K KyAKKyAgIHJldHVybiAxOworIH0KK0BAIC0xMzgwOCw2ICsxNDUwNiwxNSBAQCByczYwMDBfZW1p dF9taW5tYXggKHJ0eCBkZXN0LCBlbnVtIHJ0eF9jCisgICBlbnVtIHJ0eF9jb2RlIGM7CisgICBy dHggdGFyZ2V0OworIAorKyAgLyogVlNYL2FsdGl2ZWMgaGF2ZSBkaXJlY3QgbWluL21heCBpbnNu cy4gICovCisrICBpZiAoKGNvZGUgPT0gU01BWCB8fCBjb2RlID09IFNNSU4pICYmIFZFQ1RPUl9V TklUX0FMVElWRUNfT1JfVlNYX1AgKG1vZGUpKQorKyAgICB7CisrICAgICAgZW1pdF9pbnNuIChn ZW5fcnR4X1NFVCAoVk9JRG1vZGUsCisrCQkJICAgICAgZGVzdCwKKysJCQkgICAgICBnZW5fcnR4 X2ZtdF9lZSAoY29kZSwgbW9kZSwgb3AwLCBvcDEpKSk7CisrICAgICAgcmV0dXJuOworKyAgICB9 CisrCisgICBpZiAoY29kZSA9PSBTTUFYIHx8IGNvZGUgPT0gU01JTikKKyAgICAgYyA9IEdFOwor ICAgZWxzZQorQEAgLTE1Nzg1LDYgKzE2NDkyLDcgQEAgZW1pdF9mcmFtZV9zYXZlIChydHggZnJh bWVfcmVnLCBydHggZnJhbQorIAorICAgLyogU29tZSBjYXNlcyB0aGF0IG5lZWQgcmVnaXN0ZXIg aW5kZXhlZCBhZGRyZXNzaW5nLiAgKi8KKyAgIGlmICgoVEFSR0VUX0FMVElWRUNfQUJJICYmIEFM VElWRUNfVkVDVE9SX01PREUgKG1vZGUpKQorKyAgICAgIHx8IChUQVJHRVRfVlNYICYmIFZTWF9W RUNUT1JfTU9ERSAobW9kZSkpCisgICAgICAgfHwgKFRBUkdFVF9FNTAwX0RPVUJMRSAmJiBtb2Rl ID09IERGbW9kZSkKKyAgICAgICB8fCAoVEFSR0VUX1NQRV9BQkkKKyAJICAmJiBTUEVfVkVDVE9S X01PREUgKG1vZGUpCitAQCAtMTkzMjAsNiArMjAwMjgsNyBAQCByczYwMDBfaXNzdWVfcmF0ZSAo dm9pZCkKKyAgIGNhc2UgQ1BVX1BPV0VSNDoKKyAgIGNhc2UgQ1BVX1BPV0VSNToKKyAgIGNhc2Ug Q1BVX1BPV0VSNjoKKysgIGNhc2UgQ1BVX1BPV0VSNzoKKyAgICAgcmV0dXJuIDU7CisgICBkZWZh dWx0OgorICAgICByZXR1cm4gMTsKK0BAIC0xOTkyMSw2ICsyMDYzMCw0MSBAQCBpbnNuX211c3Rf YmVfZmlyc3RfaW5fZ3JvdXAgKHJ0eCBpbnNuKQorICAgICAgICAgICBicmVhazsKKyAgICAgICAg IH0KKyAgICAgICBicmVhazsKKysgICAgY2FzZSBQUk9DRVNTT1JfUE9XRVI3OgorKyAgICAgIHR5 cGUgPSBnZXRfYXR0cl90eXBlIChpbnNuKTsKKysKKysgICAgICBzd2l0Y2ggKHR5cGUpCisrICAg ICAgICB7CisrICAgICAgICBjYXNlIFRZUEVfQ1JfTE9HSUNBTDoKKysgICAgICAgIGNhc2UgVFlQ RV9NRkNSOgorKyAgICAgICAgY2FzZSBUWVBFX01GQ1JGOgorKyAgICAgICAgY2FzZSBUWVBFX01U Q1I6CisrICAgICAgICBjYXNlIFRZUEVfSURJVjoKKysgICAgICAgIGNhc2UgVFlQRV9MRElWOgor KyAgICAgICAgY2FzZSBUWVBFX0NPTVBBUkU6CisrICAgICAgICBjYXNlIFRZUEVfREVMQVlFRF9D T01QQVJFOgorKyAgICAgICAgY2FzZSBUWVBFX1ZBUl9ERUxBWUVEX0NPTVBBUkU6CisrICAgICAg ICBjYXNlIFRZUEVfSVNZTkM6CisrICAgICAgICBjYXNlIFRZUEVfTE9BRF9MOgorKyAgICAgICAg Y2FzZSBUWVBFX1NUT1JFX0M6CisrICAgICAgICBjYXNlIFRZUEVfTE9BRF9VOgorKyAgICAgICAg Y2FzZSBUWVBFX0xPQURfVVg6CisrICAgICAgICBjYXNlIFRZUEVfTE9BRF9FWFQ6CisrICAgICAg ICBjYXNlIFRZUEVfTE9BRF9FWFRfVToKKysgICAgICAgIGNhc2UgVFlQRV9MT0FEX0VYVF9VWDoK KysgICAgICAgIGNhc2UgVFlQRV9TVE9SRV9VOgorKyAgICAgICAgY2FzZSBUWVBFX1NUT1JFX1VY OgorKyAgICAgICAgY2FzZSBUWVBFX0ZQTE9BRF9VOgorKyAgICAgICAgY2FzZSBUWVBFX0ZQTE9B RF9VWDoKKysgICAgICAgIGNhc2UgVFlQRV9GUFNUT1JFX1U6CisrICAgICAgICBjYXNlIFRZUEVf RlBTVE9SRV9VWDoKKysgICAgICAgIGNhc2UgVFlQRV9NRkpNUFI6CisrICAgICAgICBjYXNlIFRZ UEVfTVRKTVBSOgorKyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKysgICAgICAgIGRlZmF1bHQ6Cisr ICAgICAgICAgIGJyZWFrOworKyAgICAgICAgfQorKyAgICAgIGJyZWFrOworICAgICBkZWZhdWx0 OgorICAgICAgIGJyZWFrOworICAgICB9CitAQCAtMTk5ODIsNiArMjA3MjYsMjMgQEAgaW5zbl9t dXN0X2JlX2xhc3RfaW5fZ3JvdXAgKHJ0eCBpbnNuKQorICAgICAgICAgYnJlYWs7CisgICAgIH0K KyAgICAgYnJlYWs7CisrICBjYXNlIFBST0NFU1NPUl9QT1dFUjc6CisrICAgIHR5cGUgPSBnZXRf YXR0cl90eXBlIChpbnNuKTsKKysKKysgICAgc3dpdGNoICh0eXBlKQorKyAgICAgIHsKKysgICAg ICBjYXNlIFRZUEVfSVNZTkM6CisrICAgICAgY2FzZSBUWVBFX1NZTkM6CisrICAgICAgY2FzZSBU WVBFX0xPQURfTDoKKysgICAgICBjYXNlIFRZUEVfU1RPUkVfQzoKKysgICAgICBjYXNlIFRZUEVf TE9BRF9FWFRfVToKKysgICAgICBjYXNlIFRZUEVfTE9BRF9FWFRfVVg6CisrICAgICAgY2FzZSBU WVBFX1NUT1JFX1VYOgorKyAgICAgICAgcmV0dXJuIHRydWU7CisrICAgICAgZGVmYXVsdDoKKysg ICAgICAgIGJyZWFrOworKyAgICB9CisrICAgIGJyZWFrOworICAgZGVmYXVsdDoKKyAgICAgYnJl YWs7CisgICB9CitAQCAtMjA1NTQsOCArMjEzMTUsOCBAQCByczYwMDBfaGFuZGxlX2FsdGl2ZWNf YXR0cmlidXRlICh0cmVlICpuCisgICBlbHNlIGlmICh0eXBlID09IGxvbmdfbG9uZ191bnNpZ25l ZF90eXBlX25vZGUKKyAgICAgICAgICAgIHx8IHR5cGUgPT0gbG9uZ19sb25nX2ludGVnZXJfdHlw ZV9ub2RlKQorICAgICBlcnJvciAoInVzZSBvZiAlPGxvbmcgbG9uZyU+IGluIEFsdGlWZWMgdHlw ZXMgaXMgaW52YWxpZCIpOworLSAgZWxzZSBpZiAodHlwZSA9PSBkb3VibGVfdHlwZV9ub2RlKQor LSAgICBlcnJvciAoInVzZSBvZiAlPGRvdWJsZSU+IGluIEFsdGlWZWMgdHlwZXMgaXMgaW52YWxp ZCIpOworKyAgZWxzZSBpZiAodHlwZSA9PSBkb3VibGVfdHlwZV9ub2RlICYmICFUQVJHRVRfVlNY KQorKyAgICBlcnJvciAoInVzZSBvZiAlPGRvdWJsZSU+IGluIEFsdGlWZWMgdHlwZXMgaXMgaW52 YWxpZCB3aXRob3V0IC1tdnN4Iik7CisgICBlbHNlIGlmICh0eXBlID09IGxvbmdfZG91YmxlX3R5 cGVfbm9kZSkKKyAgICAgZXJyb3IgKCJ1c2Ugb2YgJTxsb25nIGRvdWJsZSU+IGluIEFsdGlWZWMg dHlwZXMgaXMgaW52YWxpZCIpOworICAgZWxzZSBpZiAodHlwZSA9PSBib29sZWFuX3R5cGVfbm9k ZSkKK0BAIC0yMDU4MSw2ICsyMTM0Miw3IEBAIHJzNjAwMF9oYW5kbGVfYWx0aXZlY19hdHRyaWJ1 dGUgKHRyZWUgKm4KKyAJICByZXN1bHQgPSAodW5zaWduZWRfcCA/IHVuc2lnbmVkX1YxNlFJX3R5 cGVfbm9kZSA6IFYxNlFJX3R5cGVfbm9kZSk7CisgCSAgYnJlYWs7CisgCWNhc2UgU0Ztb2RlOiBy ZXN1bHQgPSBWNFNGX3R5cGVfbm9kZTsgYnJlYWs7CisrCWNhc2UgREZtb2RlOiByZXN1bHQgPSBW MkRGX3R5cGVfbm9kZTsgYnJlYWs7CisgCSAgLyogSWYgdGhlIHVzZXIgc2F5cyAndmVjdG9yIGlu dCBib29sJywgd2UgbWF5IGJlIGhhbmRlZCB0aGUgJ2Jvb2wnCisgCSAgICAgYXR0cmlidXRlIF9i ZWZvcmVfIHRoZSAndmVjdG9yJyBhdHRyaWJ1dGUsIGFuZCBzbyBzZWxlY3QgdGhlCisgCSAgICAg cHJvcGVyIHR5cGUgaW4gdGhlICdiJyBjYXNlIGJlbG93LiAgKi8KK0BAIC0yMjExNiw3ICsyMjg3 OCw3IEBAIHJzNjAwMF9yZWdpc3Rlcl9tb3ZlX2Nvc3QgKGVudW0gbWFjaGluZV8KKyAgICAgICBp ZiAoISByZWdfY2xhc3Nlc19pbnRlcnNlY3RfcCAodG8sIEdFTkVSQUxfUkVHUykpCisgCWZyb20g PSB0bzsKKyAKKy0gICAgICBpZiAoZnJvbSA9PSBGTE9BVF9SRUdTIHx8IGZyb20gPT0gQUxUSVZF Q19SRUdTKQorKyAgICAgIGlmIChmcm9tID09IEZMT0FUX1JFR1MgfHwgZnJvbSA9PSBBTFRJVkVD X1JFR1MgfHwgZnJvbSA9PSBWU1hfUkVHUykKKyAJcmV0dXJuIChyczYwMDBfbWVtb3J5X21vdmVf Y29zdCAobW9kZSwgZnJvbSwgMCkKKyAJCSsgcnM2MDAwX21lbW9yeV9tb3ZlX2Nvc3QgKG1vZGUs IEdFTkVSQUxfUkVHUywgMCkpOworIAorQEAgLTIyMTM2LDYgKzIyODk4LDEyIEBAIHJzNjAwMF9y ZWdpc3Rlcl9tb3ZlX2Nvc3QgKGVudW0gbWFjaGluZV8KKyAJcmV0dXJuIDIgKiBoYXJkX3JlZ25v X25yZWdzWzBdW21vZGVdOworICAgICB9CisgCisrICAvKiBJZiB3ZSBoYXZlIFZTWCwgd2UgY2Fu IGVhc2lseSBtb3ZlIGJldHdlZW4gRlBSIG9yIEFsdGl2ZWMgcmVnaXN0ZXJzLiAgKi8KKysgIGVs c2UgaWYgKFRBUkdFVF9WU1gKKysJICAgJiYgKChmcm9tID09IFZTWF9SRUdTIHx8IGZyb20gPT0g RkxPQVRfUkVHUyB8fCBmcm9tID09IEFMVElWRUNfUkVHUykKKysJICAgICAgIHx8ICh0byA9PSBW U1hfUkVHUyB8fCB0byA9PSBGTE9BVF9SRUdTIHx8IHRvID09IEFMVElWRUNfUkVHUykpKQorKyAg ICByZXR1cm4gMjsKKysKKyAgIC8qIE1vdmluZyBiZXR3ZWVuIHR3byBzaW1pbGFyIHJlZ2lzdGVy cyBpcyBqdXN0IG9uZSBpbnN0cnVjdGlvbi4gICovCisgICBlbHNlIGlmIChyZWdfY2xhc3Nlc19p bnRlcnNlY3RfcCAodG8sIGZyb20pKQorICAgICByZXR1cm4gKG1vZGUgPT0gVEZtb2RlIHx8IG1v ZGUgPT0gVERtb2RlKSA/IDQgOiAyOworQEAgLTIyMzc2LDggKzIzMTQ0LDggQEAgcnM2MDAwX2Vt aXRfc3dyc3FydHNmIChydHggZHN0LCBydHggc3JjKQorICAgZW1pdF9sYWJlbCAoWEVYUCAobGFi ZWwsIDApKTsKKyB9CisgCistLyogRW1pdCBwb3Bjb3VudCBpbnRyaW5zaWMgb24gVEFSR0VUX1BP UENOVEIgdGFyZ2V0cy4gIERTVCBpcyB0aGUKKy0gICB0YXJnZXQsIGFuZCBTUkMgaXMgdGhlIGFy Z3VtZW50IG9wZXJhbmQuICAqLworKy8qIEVtaXQgcG9wY291bnQgaW50cmluc2ljIG9uIFRBUkdF VF9QT1BDTlRCIChQb3dlcjUpIGFuZCBUQVJHRVRfUE9QQ05URAorKyAgIChQb3dlcjcpIHRhcmdl dHMuICBEU1QgaXMgdGhlIHRhcmdldCwgYW5kIFNSQyBpcyB0aGUgYXJndW1lbnQgb3BlcmFuZC4g ICovCisgCisgdm9pZAorIHJzNjAwMF9lbWl0X3BvcGNvdW50IChydHggZHN0LCBydHggc3JjKQor QEAgLTIyMzg1LDYgKzIzMTUzLDE2IEBAIHJzNjAwMF9lbWl0X3BvcGNvdW50IChydHggZHN0LCBy dHggc3JjKQorICAgZW51bSBtYWNoaW5lX21vZGUgbW9kZSA9IEdFVF9NT0RFIChkc3QpOworICAg cnR4IHRtcDEsIHRtcDI7CisgCisrICAvKiBVc2UgdGhlIFBQQyBJU0EgMi4wNiBwb3BjbnR7dyxk fSBpbnN0cnVjdGlvbiBpZiB3ZSBjYW4uICAqLworKyAgaWYgKFRBUkdFVF9QT1BDTlREKQorKyAg ICB7CisrICAgICAgaWYgKG1vZGUgPT0gU0ltb2RlKQorKwllbWl0X2luc24gKGdlbl9wb3BjbnR3 c2kyIChkc3QsIHNyYykpOworKyAgICAgIGVsc2UKKysJZW1pdF9pbnNuIChnZW5fcG9wY250ZGRp MiAoZHN0LCBzcmMpKTsKKysgICAgICByZXR1cm47CisrICAgIH0KKysKKyAgIHRtcDEgPSBnZW5f cmVnX3J0eCAobW9kZSk7CisgCisgICBpZiAobW9kZSA9PSBTSW1vZGUpCitAQCAtMjI3OTcsNyAr MjM1NzUsNyBAQCByczYwMDBfdmVjdG9yX21vZGVfc3VwcG9ydGVkX3AgKGVudW0gbWFjCisgICBp ZiAoVEFSR0VUX1NQRSAmJiBTUEVfVkVDVE9SX01PREUgKG1vZGUpKQorICAgICByZXR1cm4gdHJ1 ZTsKKyAKKy0gIGVsc2UgaWYgKFRBUkdFVF9BTFRJVkVDICYmIEFMVElWRUNfVkVDVE9SX01PREUg KG1vZGUpKQorKyAgZWxzZSBpZiAoVkVDVE9SX1VOSVRfQUxUSVZFQ19PUl9WU1hfUCAobW9kZSkp CisgICAgIHJldHVybiB0cnVlOworIAorICAgZWxzZQorLS0tIGdjYy9jb25maWcvcnM2MDAwL3Zz eC5tZAkoLi4uL3RydW5rKQkocmV2aXNpb24gMCkKKysrKyBnY2MvY29uZmlnL3JzNjAwMC92c3gu bWQJKC4uLi9icmFuY2hlcy9pYm0vcG93ZXI3LW1laXNzbmVyKQkocmV2aXNpb24gMTQ0NjkyKQor QEAgLTAsMCArMSw4NjQgQEAKKys7OyBWU1ggcGF0dGVybnMuCisrOzsgQ29weXJpZ2h0IChDKSAy MDA5CisrOzsgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrOzsgQ29udHJpYnV0ZWQg YnkgTWljaGFlbCBNZWlzc25lciA8bWVpc3NuZXJAbGludXgudm5ldC5pYm0uY29tPgorKworKzs7 IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdDQy4KKysKKys7OyBHQ0MgaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorKzs7IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkCisrOzsg YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMywgb3IgKGF0 IHlvdXIKKys7OyBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKzs7IEdDQyBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAor Kzs7IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1F UkNIQU5UQUJJTElUWQorKzs7IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKys7OyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisrCisrOzsgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UKKys7OyBhbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJ TkczLiAgSWYgbm90IHNlZQorKzs7IDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysK Kys7OyBJdGVyYXRvciBmb3IgdmVjdG9yIGZsb2F0aW5nIHBvaW50IHR5cGVzIHN1cHBvcnRlZCBi eSBWU1gKKysoZGVmaW5lX21vZGVfaXRlcmF0b3IgVlNYX0YgW1Y0U0YgVjJERl0pCisrCisrOzsg SXRlcmF0b3IgZm9yIGxvZ2ljYWwgdHlwZXMgc3VwcG9ydGVkIGJ5IFZTWAorKyhkZWZpbmVfbW9k ZV9pdGVyYXRvciBWU1hfTCBbVjE2UUkgVjhISSBWNFNJIFYyREkgVjRTRiBWMkRGIFRJXSkKKysK Kys7OyBNYXAgaW50byB0aGUgYXBwcm9wcmlhdGUgbG9hZC9zdG9yZSBuYW1lIGJhc2VkIG9uIHRo ZSB0eXBlCisrKGRlZmluZV9tb2RlX2F0dHIgVlNtICBbKFYxNlFJICJ2dzQiKQorKwkJCShWOEhJ ICAidnc0IikKKysJCQkoVjRTSSAgInZ3NCIpCisrCQkJKFY0U0YgICJ2dzQiKQorKwkJCShWMkRG ICAidmQyIikKKysJCQkoVjJESSAgInZkMiIpCisrCQkJKFRJICAgICJ2dzQiKV0pCisrCisrOzsg TWFwIGludG8gdGhlIGFwcHJvcHJpYXRlIHN1ZmZpeCBiYXNlZCBvbiB0aGUgdHlwZQorKyhkZWZp bmVfbW9kZV9hdHRyIFZTcwlbKFYxNlFJICJzcCIpCisrCQkJIChWOEhJICAic3AiKQorKwkJCSAo VjRTSSAgInNwIikKKysJCQkgKFY0U0YgICJzcCIpCisrCQkJIChWMkRGICAiZHAiKQorKwkJCSAo VjJESSAgImRwIikKKysJCQkgKFRJICAgICJzcCIpXSkKKysKKys7OyBNYXAgaW50byB0aGUgcmVn aXN0ZXIgY2xhc3MgdXNlZAorKyhkZWZpbmVfbW9kZV9hdHRyIFZTcglbKFYxNlFJICJ2IikKKysJ CQkgKFY4SEkgICJ2IikKKysJCQkgKFY0U0kgICJ2IikKKysJCQkgKFY0U0YgICJ3ZiIpCisrCQkJ IChWMkRJICAid2QiKQorKwkJCSAoVjJERiAgIndkIikKKysJCQkgKFRJICAgICJ3ZCIpXSkKKysK Kys7OyBTYW1lIHNpemUgaW50ZWdlciB0eXBlIGZvciBmbG9hdGluZyBwb2ludCBkYXRhCisrKGRl ZmluZV9tb2RlX2F0dHIgVlNpIFsoVjRTRiAgInY0c2kiKQorKwkJICAgICAgIChWMkRGICAidjJk aSIpXSkKKysKKysoZGVmaW5lX21vZGVfYXR0ciBWU0kgWyhWNFNGICAiVjRTSSIpCisrCQkgICAg ICAgKFYyREYgICJWMkRJIildKQorKworKzs7IFdvcmQgc2l6ZSBmb3Igc2FtZSBzaXplIGNvbnZl cnNpb24KKysoZGVmaW5lX21vZGVfYXR0ciBWU2MgWyhWNFNGICJ3IikKKysJCSAgICAgICAoVjJE RiAiZCIpXSkKKysKKys7OyBCaXRzaXplIGZvciBERiBsb2FkIHdpdGggdXBkYXRlCisrKGRlZmlu ZV9tb2RlX2F0dHIgVlNiaXQgWyhTSSAiMzIiKQorKwkJCSAoREkgIjY0IildKQorKworKyhkZWZp bmVfY29uc3RhbnRzCisrICBbKFVOU1BFQ19WU1hfQ09OQ0FUX1YyREYJNTAwKV0pCisrCisrOzsg VlNYIG1vdmVzCisrKGRlZmluZV9pbnNuICIqdnN4X21vdjxtb2RlPiIKKysgIFsoc2V0IChtYXRj aF9vcGVyYW5kOlZTWF9MIDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiPVosPFZTcj4sPFZTcj4s P1osP3dhLD93YSwqbywqciwqciw8VlNyPiw/d2EsdiIpCisrCShtYXRjaF9vcGVyYW5kOlZTWF9M IDEgImlucHV0X29wZXJhbmQiICI8VlNyPixaLDxWU3I+LHdhLFosd2EscixvLHIsaixqLFciKSld CisrICAiVkVDVE9SX01FTV9WU1hfUCAoPE1PREU+bW9kZSkKKysgICAmJiAocmVnaXN0ZXJfb3Bl cmFuZCAob3BlcmFuZHNbMF0sIDxNT0RFPm1vZGUpIAorKyAgICAgICB8fCByZWdpc3Rlcl9vcGVy YW5kIChvcGVyYW5kc1sxXSwgPE1PREU+bW9kZSkpIgorK3sKKysgIHN3aXRjaCAod2hpY2hfYWx0 ZXJuYXRpdmUpCisrICAgIHsKKysgICAgY2FzZSAwOgorKyAgICBjYXNlIDM6CisrICAgICAgcmV0 dXJuICJzdHg8VlNtPiVVMHggJXgxLCV5MCI7CisrCisrICAgIGNhc2UgMToKKysgICAgY2FzZSA0 OgorKyAgICAgIHJldHVybiAibHg8VlNtPiVVMHggJXgwLCV5MSI7CisrCisrICAgIGNhc2UgMjoK KysgICAgY2FzZSA1OgorKyAgICAgIHJldHVybiAieHZtb3Y8VlNzPiAleDAsJXgxIjsKKysKKysg ICAgY2FzZSA2OgorKyAgICBjYXNlIDc6CisrICAgIGNhc2UgODoKKysgICAgICByZXR1cm4gIiMi OworKworKyAgICBjYXNlIDk6CisrICAgIGNhc2UgMTA6CisrICAgICAgcmV0dXJuICJ4eGx4b3Ig JXgwLCV4MCwleDAiOworKworKyAgICBjYXNlIDExOgorKyAgICAgIHJldHVybiBvdXRwdXRfdmVj X2NvbnN0X21vdmUgKG9wZXJhbmRzKTsKKysKKysgICAgZGVmYXVsdDoKKysgICAgICBnY2NfdW5y ZWFjaGFibGUgKCk7CisrICAgIH0KKyt9CisrICBbKHNldF9hdHRyICJ0eXBlIiAidmVjc3RvcmUs dmVjbG9hZCx2ZWNzaW1wbGUsdmVjc3RvcmUsdmVjbG9hZCx2ZWNzaW1wbGUsc3RvcmUsbG9hZCwq LHZlY3NpbXBsZSx2ZWNzaW1wbGUsKiIpXSkKKysKKys7OyBMb2FkL3N0b3JlIHdpdGggdXBkYXRl CisrOzsgRGVmaW5lIGluc25zIHRoYXQgZG8gbG9hZCBvciBzdG9yZSB3aXRoIHVwZGF0ZS4gIEJl Y2F1c2UgVlNYIG9ubHkgaGFzCisrOzsgcmVnK3JlZyBhZGRyZXNzaW5nLCBwcmUtZGVjcmVtZW50 IG9yIHByZS1pbnJlbWVudCBpcyB1bmxpa2VseSB0byBiZQorKzs7IGdlbmVyYXRlZC4KKys7Owor Kzs7IEluIGFsbCB0aGVzZSBjYXNlcywgd2UgdXNlIG9wZXJhbmRzIDAgYW5kIDEgZm9yIHRoZSBy ZWdpc3RlciBiZWluZworKzs7IGluY3JlbWVudGVkIGJlY2F1c2UgdGhvc2UgYXJlIHRoZSBvcGVy YW5kcyB0aGF0IGxvY2FsLWFsbG9jIHdpbGwKKys7OyB0aWUgYW5kIHRoZXNlIGFyZSB0aGUgcGFp ciBtb3N0IGxpa2VseSB0byBiZSB0aWVhYmxlIChhbmQgdGhlIG9uZXMKKys7OyB0aGF0IHdpbGwg YmVuZWZpdCB0aGUgbW9zdCkuCisrCisrKGRlZmluZV9pbnNuICIqdnN4X2xvYWQ8bW9kZT5fdXBk YXRlNjQiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hfTCAzICJ2c3hfcmVnaXN0ZXJfb3Bl cmFuZCIgIj08VlNyPiw/d2EiKQorKwkobWVtOlZTWF9MIChwbHVzOkRJIChtYXRjaF9vcGVyYW5k OkRJIDEgImdwY19yZWdfb3BlcmFuZCIgIjAsMCIpCisrCQkJICAgIChtYXRjaF9vcGVyYW5kOkRJ IDIgImdwY19yZWdfb3BlcmFuZCIgInIsciIpKSkpCisrICAgKHNldCAobWF0Y2hfb3BlcmFuZDpE SSAwICJncGNfcmVnX29wZXJhbmQiICI9YixiIikKKysJKHBsdXM6REkgKG1hdGNoX2R1cCAxKQor KwkJIChtYXRjaF9kdXAgMikpKV0KKysgICJUQVJHRVRfNjRCSVQgJiYgVEFSR0VUX1VQREFURSAm JiBWRUNUT1JfTUVNX1ZTWF9QICg8TU9ERT5tb2RlKSIKKysgICJseDxWU20+dXggJXgzLCUwLCUy IgorKyAgWyhzZXRfYXR0ciAidHlwZSIgInZlY2xvYWQiKV0pCisrCisrKGRlZmluZV9pbnNuICIq dnN4X2xvYWQ8bW9kZT5fdXBkYXRlMzIiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hfTCAz ICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj08VlNyPiw/d2EiKQorKwkobWVtOlZTWF9MIChwbHVz OlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgImdwY19yZWdfb3BlcmFuZCIgIjAsMCIpCisrCQkJICAg IChtYXRjaF9vcGVyYW5kOlNJIDIgImdwY19yZWdfb3BlcmFuZCIgInIsciIpKSkpCisrICAgKHNl dCAobWF0Y2hfb3BlcmFuZDpTSSAwICJncGNfcmVnX29wZXJhbmQiICI9YixiIikKKysJKHBsdXM6 U0kgKG1hdGNoX2R1cCAxKQorKwkJIChtYXRjaF9kdXAgMikpKV0KKysgICJUQVJHRVRfMzJCSVQg JiYgVEFSR0VUX1VQREFURSAmJiBWRUNUT1JfTUVNX1ZTWF9QICg8TU9ERT5tb2RlKSIKKysgICJs eDxWU20+dXggJXgzLCUwLCUyIgorKyAgWyhzZXRfYXR0ciAidHlwZSIgInZlY2xvYWQiKV0pCisr CisrKGRlZmluZV9pbnNuICIqdnN4X3N0b3JlPG1vZGU+X3VwZGF0ZTY0IgorKyAgWyhzZXQgKG1l bTpWU1hfTCAocGx1czpESSAobWF0Y2hfb3BlcmFuZDpESSAxICJncGNfcmVnX29wZXJhbmQiICIw LDAiKQorKwkJCSAgICAobWF0Y2hfb3BlcmFuZDpESSAyICJncGNfcmVnX29wZXJhbmQiICJyLHIi KSkpCisrCShtYXRjaF9vcGVyYW5kOlZTWF9MIDMgImdwY19yZWdfb3BlcmFuZCIgIjxWU3I+LD93 YSIpKQorKyAgIChzZXQgKG1hdGNoX29wZXJhbmQ6REkgMCAiZ3BjX3JlZ19vcGVyYW5kIiAiPWIs YiIpCisrCShwbHVzOkRJIChtYXRjaF9kdXAgMSkKKysJCSAobWF0Y2hfZHVwIDIpKSldCisrICAi VEFSR0VUXzY0QklUICYmIFRBUkdFVF9VUERBVEUgJiYgVkVDVE9SX01FTV9WU1hfUCAoPE1PREU+ bW9kZSkiCisrICAic3R4PFZTbT51eCAleDMsJTAsJTEiCisrICBbKHNldF9hdHRyICJ0eXBlIiAi dmVjc3RvcmUiKV0pCisrCisrKGRlZmluZV9pbnNuICIqdnN4X3N0b3JlPG1vZGU+X3VwZGF0ZTMy IgorKyAgWyhzZXQgKG1lbTpWU1hfTCAocGx1czpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJncGNf cmVnX29wZXJhbmQiICIwLDAiKQorKwkJCSAgICAobWF0Y2hfb3BlcmFuZDpTSSAyICJncGNfcmVn X29wZXJhbmQiICJyLHIiKSkpCisrCShtYXRjaF9vcGVyYW5kOlZTWF9MIDMgImdwY19yZWdfb3Bl cmFuZCIgIjxWU3I+LD93YSIpKQorKyAgIChzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAiZ3BjX3Jl Z19vcGVyYW5kIiAiPWIsYiIpCisrCShwbHVzOlNJIChtYXRjaF9kdXAgMSkKKysJCSAobWF0Y2hf ZHVwIDIpKSldCisrICAiVEFSR0VUXzMyQklUICYmIFRBUkdFVF9VUERBVEUgJiYgVkVDVE9SX01F TV9WU1hfUCAoPE1PREU+bW9kZSkiCisrICAic3R4PFZTbT51eCAleDMsJTAsJTEiCisrICBbKHNl dF9hdHRyICJ0eXBlIiAidmVjc3RvcmUiKV0pCisrCisrKGRlZmluZV9pbnNuICIqdnN4X2xvYWRk Zl91cGRhdGU8VlNiaXQ+IgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REYgMyAidnN4X3JlZ2lz dGVyX29wZXJhbmQiICI9d3MsP3dhIikKKysJKG1lbTpERiAocGx1czpQIChtYXRjaF9vcGVyYW5k OlAgMSAiZ3BjX3JlZ19vcGVyYW5kIiAiMCwwIikKKysJCQkobWF0Y2hfb3BlcmFuZDpQIDIgImdw Y19yZWdfb3BlcmFuZCIgInIsciIpKSkpCisrICAgKHNldCAobWF0Y2hfb3BlcmFuZDpQIDAgImdw Y19yZWdfb3BlcmFuZCIgIj1iLGIiKQorKwkocGx1czpQIChtYXRjaF9kdXAgMSkKKysJCShtYXRj aF9kdXAgMikpKV0KKysgICJUQVJHRVRfPFZTYml0PkJJVCAmJiBUQVJHRVRfVVBEQVRFICYmIFZF Q1RPUl9NRU1fVlNYX1AgKERGbW9kZSkiCisrICAibHhzZHV4ICV4MywlMCwlMiIKKysgIFsoc2V0 X2F0dHIgInR5cGUiICJ2ZWNsb2FkIildKQorKworKyhkZWZpbmVfaW5zbiAiKnZzeF9zdG9yZWRm X3VwZGF0ZTxWU2JpdD4iCisrICBbKHNldCAobWVtOkRGIChwbHVzOlAgKG1hdGNoX29wZXJhbmQ6 UCAxICJncGNfcmVnX29wZXJhbmQiICIwLDAiKQorKwkJCShtYXRjaF9vcGVyYW5kOlAgMiAiZ3Bj X3JlZ19vcGVyYW5kIiAicixyIikpKQorKwkobWF0Y2hfb3BlcmFuZDpERiAzICJncGNfcmVnX29w ZXJhbmQiICJ3cyw/d2EiKSkKKysgICAoc2V0IChtYXRjaF9vcGVyYW5kOlAgMCAiZ3BjX3JlZ19v cGVyYW5kIiAiPWIsYiIpCisrCShwbHVzOlAgKG1hdGNoX2R1cCAxKQorKwkJKG1hdGNoX2R1cCAy KSkpXQorKyAgIlRBUkdFVF88VlNiaXQ+QklUICYmIFRBUkdFVF9VUERBVEUgJiYgVkVDVE9SX01F TV9WU1hfUCAoREZtb2RlKSIKKysgICJzdHhzZHV4ICV4MywlMCwlMSIKKysgIFsoc2V0X2F0dHIg InR5cGUiICJ2ZWNzdG9yZSIpXSkKKysKKys7OyBXZSBtYXkgbmVlZCB0byBoYXZlIGEgdmFyaWVu dCBvbiB0aGUgcGF0dGVybiBmb3IgdXNlIGluIHRoZSBwcm9sb2d1ZQorKzs7IHRoYXQgZG9lc24n dCBkZXBlbmQgb24gVEFSR0VUX1VQREFURS4KKysKKysMCisrOzsgVlNYIHZlY3RvciBmbG9hdGlu ZyBwb2ludCBhcml0aG1ldGljIGluc3RydWN0aW9ucworKyhkZWZpbmVfaW5zbiAiKnZzeF9hZGQ8 bW9kZT4zIgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMCAidnN4X3JlZ2lzdGVyX29w ZXJhbmQiICI9PFZTcj4iKQorKyAgICAgICAgKHBsdXM6VlNYX0YgKG1hdGNoX29wZXJhbmQ6VlNY X0YgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPiIpCisrCQkgICAgKG1hdGNoX29wZXJh bmQ6VlNYX0YgMiAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPiIpKSldCisrICAiVkVDVE9S X1VOSVRfVlNYX1AgKDxNT0RFPm1vZGUpIgorKyAgInh2YWRkPFZTcz4gJXgwLCV4MSwleDIiCisr ICBbKHNldF9hdHRyICJ0eXBlIiAidmVjZmxvYXQiKV0pCisrCisrKGRlZmluZV9pbnNuICIqdnN4 X3N1Yjxtb2RlPjMiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hfRiAwICJ2c3hfcmVnaXN0 ZXJfb3BlcmFuZCIgIj08VlNyPiIpCisrICAgICAgICAobWludXM6VlNYX0YgKG1hdGNoX29wZXJh bmQ6VlNYX0YgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPiIpCisrCQkgICAgIChtYXRj aF9vcGVyYW5kOlZTWF9GIDIgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4iKSkpXQorKyAg IlZFQ1RPUl9VTklUX1ZTWF9QICg8TU9ERT5tb2RlKSIKKysgICJ4dnN1YjxWU3M+ICV4MCwleDEs JXgyIgorKyAgWyhzZXRfYXR0ciAidHlwZSIgInZlY2Zsb2F0IildKQorKworKyhkZWZpbmVfaW5z biAiKnZzeF9tdWw8bW9kZT4zIgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMCAidnN4 X3JlZ2lzdGVyX29wZXJhbmQiICI9PFZTcj4iKQorKyAgICAgICAgKG11bHQ6VlNYX0YgKG1hdGNo X29wZXJhbmQ6VlNYX0YgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPiIpCisrCQkgICAg KG1hdGNoX29wZXJhbmQ6VlNYX0YgMiAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPiIpKSld CisrICAiVkVDVE9SX1VOSVRfVlNYX1AgKDxNT0RFPm1vZGUpIgorKyAgInh2bXVsPFZTcz4gJXgw LCV4MSwleDIiCisrICBbKHNldF9hdHRyICJ0eXBlIiAidmVjZmxvYXQiKV0pCisrCisrKGRlZmlu ZV9pbnNuICIqdnN4X2Rpdjxtb2RlPjMiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hfRiAw ICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj08VlNyPiIpCisrICAgICAgICAoZGl2OlZTWF9GICht YXRjaF9vcGVyYW5kOlZTWF9GIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4iKQorKwkg CSAgIChtYXRjaF9vcGVyYW5kOlZTWF9GIDIgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4i KSkpXQorKyAgIlZFQ1RPUl9VTklUX1ZTWF9QICg8TU9ERT5tb2RlKSIKKysgICJ4dmRpdjxWU3M+ ICV4MCwleDEsJXgyIgorKyAgWyhzZXRfYXR0ciAidHlwZSIgInZlY2ZkaXYiKV0pCisrCisrKGRl ZmluZV9pbnNuICIqdnN4X2ZyZTxtb2RlPjIiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hf RiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj08VlNyPiIpCisrCSh1bnNwZWM6VlNYX0YgWyht YXRjaF9vcGVyYW5kOlZTWF9GIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4iKV0KKysJ CSAgICAgIFVOU1BFQ19GUkVTKSldCisrICAiZmxhZ19maW5pdGVfbWF0aF9vbmx5ICYmIFZFQ1RP Ul9VTklUX1ZTWF9QICg8TU9ERT5tb2RlKSIKKysgICJ4dnJlPFZTcz4gJXgwLCV4MSIKKysgIFso c2V0X2F0dHIgInR5cGUiICJmcCIpXSkKKysKKysoZGVmaW5lX2luc24gIip2c3hfbmVnPG1vZGU+ MiIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZTWF9GIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5k IiAiPTxWU3I+IikKKysgICAgICAgIChuZWc6VlNYX0YgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMSAi dnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPiIpKSldCisrICAiVkVDVE9SX1VOSVRfVlNYX1Ag KDxNT0RFPm1vZGUpIgorKyAgInh2bmVnPFZTcz4gJXgwLCV4MSIKKysgIFsoc2V0X2F0dHIgInR5 cGUiICJ2ZWNmbG9hdCIpXSkKKysKKysoZGVmaW5lX2luc24gIip2c3hfYWJzPG1vZGU+MiIKKysg IFsoc2V0IChtYXRjaF9vcGVyYW5kOlZTWF9GIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPTxW U3I+IikKKysgICAgICAgIChhYnM6VlNYX0YgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMSAidnN4X3Jl Z2lzdGVyX29wZXJhbmQiICI8VlNyPiIpKSldCisrICAiVkVDVE9SX1VOSVRfVlNYX1AgKDxNT0RF Pm1vZGUpIgorKyAgInh2YWJzPFZTcz4gJXgwLCV4MSIKKysgIFsoc2V0X2F0dHIgInR5cGUiICJ2 ZWNmbG9hdCIpXSkKKysKKysoZGVmaW5lX2luc24gIip2c3hfbmFiczxtb2RlPjIiCisrICBbKHNl dCAobWF0Y2hfb3BlcmFuZDpWU1hfRiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj08VlNyPiIp CisrICAgICAgICAobmVnOlZTWF9GCisrCSAoYWJzOlZTWF9GCisrCSAgKG1hdGNoX29wZXJhbmQ6 VlNYX0YgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPiIpKSkpXQorKyAgIlZFQ1RPUl9V TklUX1ZTWF9QICg8TU9ERT5tb2RlKSIKKysgICJ4dm5hYnM8VlNzPiAleDAsJXgxIgorKyAgWyhz ZXRfYXR0ciAidHlwZSIgInZlY2Zsb2F0IildKQorKworKyhkZWZpbmVfaW5zbiAiKnZzeF9zbWF4 PG1vZGU+MyIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZTWF9GIDAgInZzeF9yZWdpc3Rlcl9v cGVyYW5kIiAiPTxWU3I+IikKKysgICAgICAgIChzbWF4OlZTWF9GIChtYXRjaF9vcGVyYW5kOlZT WF9GIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4iKQorKwkJICAgIChtYXRjaF9vcGVy YW5kOlZTWF9GIDIgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4iKSkpXQorKyAgIlZFQ1RP Ul9VTklUX1ZTWF9QICg8TU9ERT5tb2RlKSIKKysgICJ4dm1heDxWU3M+ICV4MCwleDEsJXgyIgor KyAgWyhzZXRfYXR0ciAidHlwZSIgInZlY2NtcCIpXSkKKysKKysoZGVmaW5lX2luc24gIip2c3hf c21pbjxtb2RlPjMiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hfRiAwICJ2c3hfcmVnaXN0 ZXJfb3BlcmFuZCIgIj08VlNyPiIpCisrICAgICAgICAoc21pbjpWU1hfRiAobWF0Y2hfb3BlcmFu ZDpWU1hfRiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+IikKKysJCSAgICAobWF0Y2hf b3BlcmFuZDpWU1hfRiAyICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+IikpKV0KKysgICJW RUNUT1JfVU5JVF9WU1hfUCAoPE1PREU+bW9kZSkiCisrICAieHZtaW48VlNzPiAleDAsJXgxLCV4 MiIKKysgIFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNjbXAiKV0pCisrCisrKGRlZmluZV9pbnNuICIq dnN4X3NxcnQ8bW9kZT4yIgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMCAidnN4X3Jl Z2lzdGVyX29wZXJhbmQiICI9PFZTcj4iKQorKyAgICAgICAgKHNxcnQ6VlNYX0YgKG1hdGNoX29w ZXJhbmQ6VlNYX0YgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPiIpKSldCisrICAiVkVD VE9SX1VOSVRfVlNYX1AgKDxNT0RFPm1vZGUpIgorKyAgInh2c3FydDxWU3M+ICV4MCwleDEiCisr ICBbKHNldF9hdHRyICJ0eXBlIiAidmVjZmRpdiIpXSkKKysKKys7OyBGdXNlZCB2ZWN0b3IgbXVs dGlwbHkvYWRkIGluc3RydWN0aW9ucworKyhkZWZpbmVfaW5zbiAiKnZzeF9mbWFkZDxtb2RlPjQi CisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hfRiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIg Ij08VlNyPiw8VlNyPiIpCisrCShwbHVzOlZTWF9GCisrCSAobXVsdDpWU1hfRgorKwkgIChtYXRj aF9vcGVyYW5kOlZTWF9GIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiJTxWU3I+LDxWU3I+IikK KysJICAobWF0Y2hfb3BlcmFuZDpWU1hfRiAyICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+ LDAiKSkKKysJIChtYXRjaF9vcGVyYW5kOlZTWF9GIDMgImdwY19yZWdfb3BlcmFuZCIgIjAsPFZT cj4iKSkpXQorKyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChERm1vZGUpICYmIFRBUkdFVF9GVVNFRF9N QUREIgorKyAgIkAKKysgICB4dm1hZGRhPFZTcz4gJXgwLCV4MSwleDIKKysgICB4dm1hZGRtPFZT cz4gJXgwLCV4MSwleDMiCisrICBbKHNldF9hdHRyICJ0eXBlIiAidmVjZmxvYXQiKV0pCisrCisr KGRlZmluZV9pbnNuICIqdnN4X2Ztc3ViPG1vZGU+NCIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5k OlZTWF9GIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPTxWU3I+LDxWU3I+IikKKysJKG1pbnVz OlZTWF9GCisrCSAobXVsdDpWU1hfRgorKwkgIChtYXRjaF9vcGVyYW5kOlZTWF9GIDEgInZzeF9y ZWdpc3Rlcl9vcGVyYW5kIiAiJTxWU3I+LDxWU3I+IikKKysJICAobWF0Y2hfb3BlcmFuZDpWU1hf RiAyICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+LDAiKSkKKysJIChtYXRjaF9vcGVyYW5k OlZTWF9GIDMgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiMCw8VlNyPiIpKSldCisrICAiVkVDVE9S X1VOSVRfVlNYX1AgKERGbW9kZSkgJiYgVEFSR0VUX0ZVU0VEX01BREQiCisrICAiQAorKyAgIHh2 bXN1YmE8VlNzPiAleDAsJXgxLCV4MgorKyAgIHh2bXN1Ym08VlNzPiAleDAsJXgxLCV4MyIKKysg IFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNmbG9hdCIpXSkKKysKKysoZGVmaW5lX2luc24gIip2c3hf Zm5tYWRkPG1vZGU+NF8xIgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMCAidnN4X3Jl Z2lzdGVyX29wZXJhbmQiICI9PFZTcj4sPFZTcj4iKQorKwkobmVnOlZTWF9GCisrCSAocGx1czpW U1hfRgorKwkgIChtdWx0OlZTWF9GCisrCSAgIChtYXRjaF9vcGVyYW5kOlZTWF9GIDEgInZzeF9y ZWdpc3Rlcl9vcGVyYW5kIiAiJTxWU3I+LDxWU3I+IikKKysJICAgKG1hdGNoX29wZXJhbmQ6VlNY X0YgMiAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPiwwIikpCisrCSAgKG1hdGNoX29wZXJh bmQ6VlNYX0YgMyAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICIwLDxWU3I+IikpKSldCisrICAiVkVD VE9SX1VOSVRfVlNYX1AgKERGbW9kZSkgJiYgVEFSR0VUX0ZVU0VEX01BREQKKysgICAmJiBIT05P Ul9TSUdORURfWkVST1MgKERGbW9kZSkiCisrICAiQAorKyAgIHh2bm1hZGRhPFZTcz4gJXgwLCV4 MSwleDIKKysgICB4dm5tYWRkbTxWU3M+ICV4MCwleDEsJXgzIgorKyAgWyhzZXRfYXR0ciAidHlw ZSIgInZlY2Zsb2F0IildKQorKworKyhkZWZpbmVfaW5zbiAiKnZzeF9mbm1hZGQ8bW9kZT40XzIi CisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hfRiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIg Ij08VlNyPiw8VlNyPiIpCisrCShtaW51czpWU1hfRgorKwkgKG11bHQ6VlNYX0YKKysJICAobmVn OlZTWF9GCisrCSAgIChtYXRjaF9vcGVyYW5kOlZTWF9GIDEgImdwY19yZWdfb3BlcmFuZCIgIiU8 VlNyPiw8VlNyPiIpKQorKwkgIChtYXRjaF9vcGVyYW5kOlZTWF9GIDIgImdwY19yZWdfb3BlcmFu ZCIgIjxWU3I+LDAiKSkKKysJIChtYXRjaF9vcGVyYW5kOlZTWF9GIDMgInZzeF9yZWdpc3Rlcl9v cGVyYW5kIiAiMCw8VlNyPiIpKSldCisrICAiVkVDVE9SX1VOSVRfVlNYX1AgKERGbW9kZSkgJiYg VEFSR0VUX0ZVU0VEX01BREQKKysgICAmJiAhSE9OT1JfU0lHTkVEX1pFUk9TIChERm1vZGUpIgor KyAgIkAKKysgICB4dm5tYWRkYTxWU3M+ICV4MCwleDEsJXgyCisrICAgeHZubWFkZG08VlNzPiAl eDAsJXgxLCV4MyIKKysgIFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNmbG9hdCIpXSkKKysKKysoZGVm aW5lX2luc24gIip2c3hfZm5tc3ViPG1vZGU+NF8xIgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6 VlNYX0YgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9PFZTcj4sPFZTcj4iKQorKwkobmVnOlZT WF9GCisrCSAobWludXM6VlNYX0YKKysJICAobXVsdDpWU1hfRgorKwkgICAobWF0Y2hfb3BlcmFu ZDpWU1hfRiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIiU8VlNyPiw8VlNyPiIpCisrCSAgICht YXRjaF9vcGVyYW5kOlZTWF9GIDIgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4sMCIpKQor KwkgIChtYXRjaF9vcGVyYW5kOlZTWF9GIDMgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiMCw8VlNy PiIpKSkpXQorKyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChERm1vZGUpICYmIFRBUkdFVF9GVVNFRF9N QURECisrICAgJiYgSE9OT1JfU0lHTkVEX1pFUk9TIChERm1vZGUpIgorKyAgIkAKKysgICB4dm5t c3ViYTxWU3M+ICV4MCwleDEsJXgyCisrICAgeHZubXN1Ym08VlNzPiAleDAsJXgxLCV4MyIKKysg IFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNmbG9hdCIpXSkKKysKKysoZGVmaW5lX2luc24gIip2c3hf Zm5tc3ViPG1vZGU+NF8yIgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMCAidnN4X3Jl Z2lzdGVyX29wZXJhbmQiICI9PFZTcj4sPFZTcj4iKQorKwkobWludXM6VlNYX0YKKysJIChtYXRj aF9vcGVyYW5kOlZTWF9GIDMgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiMCw8VlNyPiIpCisrCSAo bXVsdDpWU1hfRgorKwkgIChtYXRjaF9vcGVyYW5kOlZTWF9GIDEgInZzeF9yZWdpc3Rlcl9vcGVy YW5kIiAiJTxWU3I+LDxWU3I+IikKKysJICAobWF0Y2hfb3BlcmFuZDpWU1hfRiAyICJ2c3hfcmVn aXN0ZXJfb3BlcmFuZCIgIjxWU3I+LDAiKSkpKV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAoREZt b2RlKSAmJiBUQVJHRVRfRlVTRURfTUFERAorKyAgICYmICFIT05PUl9TSUdORURfWkVST1MgKERG bW9kZSkiCisrICAiQAorKyAgIHh2bm1zdWJhPFZTcz4gJXgwLCV4MSwleDIKKysgICB4dm5tc3Vi bTxWU3M+ICV4MCwleDEsJXgzIgorKyAgWyhzZXRfYXR0ciAidHlwZSIgInZlY2Zsb2F0IildKQor KworKzs7IFZlY3RvciBjb25kaXRpb25hbCBleHByZXNzaW9ucworKyhkZWZpbmVfaW5zbiAiKnZz eF9lcTxtb2RlPiIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZTWF9GIDAgInZzeF9yZWdpc3Rl cl9vcGVyYW5kIiAiPTxWU3I+IikKKysJKGVxOlZTWF9GIChtYXRjaF9vcGVyYW5kOlZTWF9GIDEg InZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4iKQorKwkJICAobWF0Y2hfb3BlcmFuZDpWU1hf RiAyICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+IikpKV0KKysgICJWRUNUT1JfVU5JVF9W U1hfUCAoPE1PREU+bW9kZSkiCisrICAieHZjbXBlcTxWU3M+ICV4MCwleDEsJXgyIgorKyAgWyhz ZXRfYXR0ciAidHlwZSIgInZlY2NtcCIpXSkKKysKKysoZGVmaW5lX2luc24gIip2c3hfZ3Q8bW9k ZT4iCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hfRiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFu ZCIgIj08VlNyPiIpCisrCShndDpWU1hfRiAobWF0Y2hfb3BlcmFuZDpWU1hfRiAxICJ2c3hfcmVn aXN0ZXJfb3BlcmFuZCIgIjxWU3I+IikKKysJCSAgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMiAidnN4 X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPiIpKSldCisrICAiVkVDVE9SX1VOSVRfVlNYX1AgKDxN T0RFPm1vZGUpIgorKyAgInh2Y21wZ3Q8VlNzPiAleDAsJXgxLCV4MiIKKysgIFsoc2V0X2F0dHIg InR5cGUiICJ2ZWNjbXAiKV0pCisrCisrKGRlZmluZV9pbnNuICIqdnN4X2dlPG1vZGU+IgorKyAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9PFZT cj4iKQorKwkoZ2U6VlNYX0YgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMSAidnN4X3JlZ2lzdGVyX29w ZXJhbmQiICI8VlNyPiIpCisrCQkgIChtYXRjaF9vcGVyYW5kOlZTWF9GIDIgInZzeF9yZWdpc3Rl cl9vcGVyYW5kIiAiPFZTcj4iKSkpXQorKyAgIlZFQ1RPUl9VTklUX1ZTWF9QICg8TU9ERT5tb2Rl KSIKKysgICJ4dmNtcGdlPFZTcz4gJXgwLCV4MSwleDIiCisrICBbKHNldF9hdHRyICJ0eXBlIiAi dmVjY21wIildKQorKworKyhkZWZpbmVfaW5zbiAidnN4X3ZzZWw8bW9kZT4iCisrICBbKHNldCAo bWF0Y2hfb3BlcmFuZDpWU1hfRiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj08VlNyPiIpCisr CShpZl90aGVuX2Vsc2U6VlNYX0YgKG5lIChtYXRjaF9vcGVyYW5kOlZTWF9GIDEgInZzeF9yZWdp c3Rlcl9vcGVyYW5kIiAiPFZTcj4iKQorKwkJCQkoY29uc3RfaW50IDApKQorKwkJCSAgICAobWF0 Y2hfb3BlcmFuZDpWU1hfRiAyICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+IikKKysJCQkg ICAgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMyAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPiIp KSldCisrICAiVkVDVE9SX1VOSVRfVlNYX1AgKDxNT0RFPm1vZGUpIgorKyAgInh4c2VsICV4MCwl eDMsJXgyLCV4MSIKKysgIFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNwZXJtIildKQorKworKzs7IENv cHkgc2lnbgorKyhkZWZpbmVfaW5zbiAiKnZzeF9jb3B5c2lnbjxtb2RlPjMiCisrICBbKHNldCAo bWF0Y2hfb3BlcmFuZDpWU1hfRiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj08VlNyPiIpCisr CShpZl90aGVuX2Vsc2U6VlNYX0YKKysJIChnZTpWU1hfRiAobWF0Y2hfb3BlcmFuZDpWU1hfRiAy ICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+IikKKysJCSAgIChjb25zdF9pbnQgMCkpCisr CSAoYWJzOlZTWF9GIChtYXRjaF9vcGVyYW5kOlZTWF9GIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5k IiAiPFZTcj4iKSkKKysJIChuZWc6VlNYX0YgKGFiczpWU1hfRiAobWF0Y2hfZHVwIDEpKSkpKV0K KysgICJWRUNUT1JfVU5JVF9WU1hfUCAoPE1PREU+bW9kZSkiCisrICAieHZjcHNnbjxWU3M+ICV4 MCwleDIsJXgxIgorKyAgWyhzZXRfYXR0ciAidHlwZSIgInZlY3NpbXBsZSIpXSkKKysKKysoZGVm aW5lX2luc24gIip2c3hfZnRydW5jPG1vZGU+MiIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZT WF9GIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPTxWU3I+IikKKysgIAkoZml4OlZTWF9GICht YXRjaF9vcGVyYW5kOlZTWF9GIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4iKSkpXQor KyAgIlZFQ1RPUl9VTklUX1ZTWF9QICg8TU9ERT5tb2RlKSIKKysgICJ4dnI8VlNzPnBpeiAleDAs JXgxIgorKyAgWyhzZXRfYXR0ciAidHlwZSIgInZlY3Blcm0iKV0pCisrCisrKGRlZmluZV9pbnNu ICIqdnN4X2Zsb2F0PFZTaT48bW9kZT4yIgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VlNYX0Yg MCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9PFZTcj4iKQorKwkoZmxvYXQ6VlNYX0YgKG1hdGNo X29wZXJhbmQ6PFZTST4gMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPiIpKSldCisrICAi VkVDVE9SX1VOSVRfVlNYX1AgKDxNT0RFPm1vZGUpIgorKyAgInh2Y3ZzeDxWU2M+PFZTcz4gJXgw LCV4MSIKKysgIFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNmbG9hdCIpXSkKKysKKysoZGVmaW5lX2lu c24gIip2c3hfZmxvYXR1bnM8VlNpPjxtb2RlPjIiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpW U1hfRiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj08VlNyPiIpCisrCSh1bnNpZ25lZF9mbG9h dDpWU1hfRiAobWF0Y2hfb3BlcmFuZDo8VlNJPiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjxW U3I+IikpKV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAoPE1PREU+bW9kZSkiCisrICAieHZjdnV4 PFZTYz48VlNzPiAleDAsJXgxIgorKyAgWyhzZXRfYXR0ciAidHlwZSIgInZlY2Zsb2F0IildKQor KworKyhkZWZpbmVfaW5zbiAiKnZzeF9maXhfdHJ1bmM8bW9kZT48VlNpPjIiCisrICBbKHNldCAo bWF0Y2hfb3BlcmFuZDo8VlNJPiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj08VlNyPiIpCisr CShmaXg6PFZTST4gKG1hdGNoX29wZXJhbmQ6VlNYX0YgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQi ICI8VlNyPiIpKSldCisrICAiVkVDVE9SX1VOSVRfVlNYX1AgKDxNT0RFPm1vZGUpIgorKyAgInh2 Y3Y8VlNzPnN4PFZTYz5zICV4MCwleDEiCisrICBbKHNldF9hdHRyICJ0eXBlIiAidmVjZmxvYXQi KV0pCisrCisrKGRlZmluZV9pbnNuICIqdnN4X2ZpeHVuc190cnVuYzxtb2RlPjxWU2k+MiIKKysg IFsoc2V0IChtYXRjaF9vcGVyYW5kOjxWU0k+IDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPTxW U3I+IikKKysJKHVuc2lnbmVkX2ZpeDo8VlNJPiAobWF0Y2hfb3BlcmFuZDpWU1hfRiAxICJ2c3hf cmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+IikpKV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAoPE1P REU+bW9kZSkiCisrICAieHZjdjxWU3M+dXg8VlNjPnMgJXgwLCV4MSIKKysgIFsoc2V0X2F0dHIg InR5cGUiICJ2ZWNmbG9hdCIpXSkKKysKKysMCisrOzsgVlNYIHNjYWxhciBkb3VibGUgcHJlY2lz aW9uIGZsb2F0aW5nIHBvaW50IG9wZXJhdGlvbnMKKysoZGVmaW5lX2luc24iKnZzeF9hZGRkZjMi CisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpERiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj13 cyIpCisrCShwbHVzOkRGIChtYXRjaF9vcGVyYW5kOkRGIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5k IiAid3MiKQorKwkJICAgICAobWF0Y2hfb3BlcmFuZDpERiAyICJ2c3hfcmVnaXN0ZXJfb3BlcmFu ZCIgIndzIikpKV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAoREZtb2RlKSIKKysgICJ4c2FkZGRw ICV4MCwleDEsJXgyIgorKyAgWyhzZXRfYXR0ciAidHlwZSIgImZwIikKKysgICAoc2V0X2F0dHIg ImZwX3R5cGUiICJmcF9hZGRzdWJfZCIpXSkKKysKKysoZGVmaW5lX2luc24iKnZzeF9zdWJkZjMi CisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpERiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj13 cyIpCisrCShtaW51czpERiAobWF0Y2hfb3BlcmFuZDpERiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFu ZCIgIndzIikKKysJCSAgICAgIChtYXRjaF9vcGVyYW5kOkRGIDIgInZzeF9yZWdpc3Rlcl9vcGVy YW5kIiAid3MiKSkpXQorKyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChERm1vZGUpIgorKyAgInhzc3Vi ZHAgJXgwLCV4MSwleDIiCisrICBbKHNldF9hdHRyICJ0eXBlIiAiZnAiKQorKyAgIChzZXRfYXR0 ciAiZnBfdHlwZSIgImZwX2FkZHN1Yl9kIildKQorKworKyhkZWZpbmVfaW5zbiIqdnN4X211bGRm MyIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAi PXdzIikKKysJKG11bHQ6REYgKG1hdGNoX29wZXJhbmQ6REYgMSAidnN4X3JlZ2lzdGVyX29wZXJh bmQiICJ3cyIpCisrCQkgICAgIChtYXRjaF9vcGVyYW5kOkRGIDIgInZzeF9yZWdpc3Rlcl9vcGVy YW5kIiAid3MiKSkpXQorKyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChERm1vZGUpIgorKyAgInhzbXVs ZHAgJXgwLCV4MSwleDIiCisrICBbKHNldF9hdHRyICJ0eXBlIiAiZG11bCIpCisrICAgKHNldF9h dHRyICJmcF90eXBlIiAiZnBfbXVsX2QiKV0pCisrCisrKGRlZmluZV9pbnNuIip2c3hfZGl2ZGYz IgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REYgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9 d3MiKQorKwkoZGl2OkRGIChtYXRjaF9vcGVyYW5kOkRGIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5k IiAid3MiKQorKwkJICAgIChtYXRjaF9vcGVyYW5kOkRGIDIgInZzeF9yZWdpc3Rlcl9vcGVyYW5k IiAid3MiKSkpXQorKyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChERm1vZGUpIgorKyAgInhzZGl2ZHAg JXgwLCV4MSwleDIiCisrICBbKHNldF9hdHRyICJ0eXBlIiAiZGRpdiIpXSkKKysKKysoZGVmaW5l X2luc24gIip2c3hfZnJlZGYyIgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REYgMCAidnN4X3Jl Z2lzdGVyX29wZXJhbmQiICI9d3MiKQorKwkodW5zcGVjOkRGIFsobWF0Y2hfb3BlcmFuZDpERiAx ICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIndzIildCisrCQkgICBVTlNQRUNfRlJFUykpXQorKyAg ImZsYWdfZmluaXRlX21hdGhfb25seSAmJiBWRUNUT1JfVU5JVF9WU1hfUCAoREZtb2RlKSIKKysg ICJ4c3JlZHAgJXgwLCV4MSIKKysgIFsoc2V0X2F0dHIgInR5cGUiICJmcCIpXSkKKysKKysoZGVm aW5lX2luc24gIip2c3hfc3FydGRmMiIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRGIDAgInZz eF9yZWdpc3Rlcl9vcGVyYW5kIiAiPXdzIikKKysgICAgICAgIChzcXJ0OkRGIChtYXRjaF9vcGVy YW5kOkRGIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAid3MiKSkpXQorKyAgIlZFQ1RPUl9VTklU X1ZTWF9QIChERm1vZGUpIgorKyAgInhzc3FydGRwICV4MCwleDEiCisrICBbKHNldF9hdHRyICJ0 eXBlIiAiZHNxcnQiKV0pCisrCisrKGRlZmluZV9pbnNuIip2c3hfbmVnZGYyIgorKyAgWyhzZXQg KG1hdGNoX29wZXJhbmQ6REYgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9d3MiKQorKwkobmVn OkRGIChtYXRjaF9vcGVyYW5kOkRGIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAid3MiKSkpXQor KyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChERm1vZGUpIgorKyAgInhzbmVnZHAgJXgwLCV4MSIKKysg IFsoc2V0X2F0dHIgInR5cGUiICJmcCIpXSkKKysKKysoZGVmaW5lX2luc24idnN4X2Fic2RmMiIK KysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPXdz IikKKysJKGFiczpERiAobWF0Y2hfb3BlcmFuZDpERiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIg IndzIikpKV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAoREZtb2RlKSIKKysgICJ4c2Fic2RwICV4 MCwleDEiCisrICBbKHNldF9hdHRyICJ0eXBlIiAiZnAiKV0pCisrCisrKGRlZmluZV9pbnNuIip2 c3hfbmFic2RmMiIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRGIDAgInZzeF9yZWdpc3Rlcl9v cGVyYW5kIiAiPXdzIikKKysJKG5lZzpERiAoYWJzOkRGIChtYXRjaF9vcGVyYW5kOkRGIDEgInZz eF9yZWdpc3Rlcl9vcGVyYW5kIiAid3MiKSkpKV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAoREZt b2RlKSIKKysgICJ4c25hYnNkcCAleDAsJXgxIgorKyAgWyhzZXRfYXR0ciAidHlwZSIgImZwIild KQorKworKyhkZWZpbmVfaW5zbiAiKnZzeF9zbWF4ZGYzIgorKyAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6REYgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9d3MiKQorKyAgICAgICAgKHNtYXg6REYg KG1hdGNoX29wZXJhbmQ6REYgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICJ3cyIpCisrCQkgKG1h dGNoX29wZXJhbmQ6REYgMiAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICJ3cyIpKSldCisrICAiVkVD VE9SX1VOSVRfVlNYX1AgKERGbW9kZSkiCisrICAieHNtYXhkcCAleDAsJXgxLCV4MiIKKysgIFso c2V0X2F0dHIgInR5cGUiICJmcCIpXSkKKysKKysKKysoZGVmaW5lX2luc24gIip2c3hfc21pbmRm MyIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAi PXdzIikKKysgICAgICAgIChzbWluOkRGIChtYXRjaF9vcGVyYW5kOkRGIDEgInZzeF9yZWdpc3Rl cl9vcGVyYW5kIiAid3MiKQorKwkJIChtYXRjaF9vcGVyYW5kOkRGIDIgInZzeF9yZWdpc3Rlcl9v cGVyYW5kIiAid3MiKSkpXQorKyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChERm1vZGUpIgorKyAgInhz bWluZHAgJXgwLCV4MSwleDIiCisrICBbKHNldF9hdHRyICJ0eXBlIiAiZnAiKV0pCisrCisrOzsg RnVzZWQgdmVjdG9yIG11bHRpcGx5L2FkZCBpbnN0cnVjdGlvbnMKKysoZGVmaW5lX2luc24gIip2 c3hfZm1hZGRkZjQiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpERiAwICJ2c3hfcmVnaXN0ZXJf b3BlcmFuZCIgIj13cyx3cyIpCisrCShwbHVzOkRGIChtdWx0OkRGIChtYXRjaF9vcGVyYW5kOkRG IDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiJXdzLHdzIikKKysJCQkgIChtYXRjaF9vcGVyYW5k OkRGIDIgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAid3MsMCIpKQorKwkJIChtYXRjaF9vcGVyYW5k OkRGIDMgImdwY19yZWdfb3BlcmFuZCIgIjAsd3MiKSkpXQorKyAgIlZFQ1RPUl9VTklUX1ZTWF9Q IChERm1vZGUpICYmIFRBUkdFVF9GVVNFRF9NQUREIgorKyAgIkAKKysgICB4c21hZGRhZHAgJXgw LCV4MSwleDIKKysgICB4c21hZGRtZHAgJXgwLCV4MSwleDMiCisrICBbKHNldF9hdHRyICJ0eXBl IiAiZG11bCIpCisrICAgKHNldF9hdHRyICJmcF90eXBlIiAiZnBfbWFkZHN1Yl9kIildKQorKwor KyhkZWZpbmVfaW5zbiAiKnZzeF9mbXN1YmRmNCIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRG IDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPXdzLHdzIikKKysJKG1pbnVzOkRGIChtdWx0OkRG IChtYXRjaF9vcGVyYW5kOkRGIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiJXdzLHdzIikKKysJ CQkgICAobWF0Y2hfb3BlcmFuZDpERiAyICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIndzLDAiKSkK KysJCSAgKG1hdGNoX29wZXJhbmQ6REYgMyAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICIwLHdzIikp KV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAoREZtb2RlKSAmJiBUQVJHRVRfRlVTRURfTUFERCIK KysgICJACisrICAgeHNtc3ViYWRwICV4MCwleDEsJXgyCisrICAgeHNtc3VibWRwICV4MCwleDEs JXgzIgorKyAgWyhzZXRfYXR0ciAidHlwZSIgImRtdWwiKQorKyAgIChzZXRfYXR0ciAiZnBfdHlw ZSIgImZwX21hZGRzdWJfZCIpXSkKKysKKysoZGVmaW5lX2luc24gIip2c3hfZm5tYWRkZGY0XzEi CisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpERiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj13 cyx3cyIpCisrCShuZWc6REYKKysJIChwbHVzOkRGIChtdWx0OkRGIChtYXRjaF9vcGVyYW5kOkRG IDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiJXdzLHdzIikKKysJCQkgICAobWF0Y2hfb3BlcmFu ZDpERiAyICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIndzLDAiKSkKKysJCSAgKG1hdGNoX29wZXJh bmQ6REYgMyAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICIwLHdzIikpKSldCisrICAiVkVDVE9SX1VO SVRfVlNYX1AgKERGbW9kZSkgJiYgVEFSR0VUX0ZVU0VEX01BREQKKysgICAmJiBIT05PUl9TSUdO RURfWkVST1MgKERGbW9kZSkiCisrICAiQAorKyAgIHhzbm1hZGRhZHAgJXgwLCV4MSwleDIKKysg ICB4c25tYWRkbWRwICV4MCwleDEsJXgzIgorKyAgWyhzZXRfYXR0ciAidHlwZSIgImRtdWwiKQor KyAgIChzZXRfYXR0ciAiZnBfdHlwZSIgImZwX21hZGRzdWJfZCIpXSkKKysKKysoZGVmaW5lX2lu c24gIip2c3hfZm5tYWRkZGY0XzIiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpERiAwICJ2c3hf cmVnaXN0ZXJfb3BlcmFuZCIgIj13cyx3cyIpCisrCShtaW51czpERiAobXVsdDpERiAobmVnOkRG CisrCQkJICAgIChtYXRjaF9vcGVyYW5kOkRGIDEgImdwY19yZWdfb3BlcmFuZCIgIiV3cyx3cyIp KQorKwkJCSAgIChtYXRjaF9vcGVyYW5kOkRGIDIgImdwY19yZWdfb3BlcmFuZCIgIndzLDAiKSkK KysJCSAgKG1hdGNoX29wZXJhbmQ6REYgMyAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICIwLHdzIikp KV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAoREZtb2RlKSAmJiBUQVJHRVRfRlVTRURfTUFERAor KyAgICYmICFIT05PUl9TSUdORURfWkVST1MgKERGbW9kZSkiCisrICAiQAorKyAgIHhzbm1hZGRh ZHAgJXgwLCV4MSwleDIKKysgICB4c25tYWRkbWRwICV4MCwleDEsJXgzIgorKyAgWyhzZXRfYXR0 ciAidHlwZSIgImRtdWwiKQorKyAgIChzZXRfYXR0ciAiZnBfdHlwZSIgImZwX21hZGRzdWJfZCIp XSkKKysKKysoZGVmaW5lX2luc24gIip2c3hfZm5tc3ViZGY0XzEiCisrICBbKHNldCAobWF0Y2hf b3BlcmFuZDpERiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj13cyx3cyIpCisrCShuZWc6REYK KysJIChtaW51czpERgorKwkgIChtdWx0OkRGIChtYXRjaF9vcGVyYW5kOkRGIDEgInZzeF9yZWdp c3Rlcl9vcGVyYW5kIiAiJXdzLHdzIikKKysJCSAgIChtYXRjaF9vcGVyYW5kOkRGIDIgInZzeF9y ZWdpc3Rlcl9vcGVyYW5kIiAid3MsMCIpKQorKwkgIChtYXRjaF9vcGVyYW5kOkRGIDMgInZzeF9y ZWdpc3Rlcl9vcGVyYW5kIiAiMCx3cyIpKSkpXQorKyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChERm1v ZGUpICYmIFRBUkdFVF9GVVNFRF9NQURECisrICAgJiYgSE9OT1JfU0lHTkVEX1pFUk9TIChERm1v ZGUpIgorKyAgIkAKKysgICB4c25tc3ViYWRwICV4MCwleDEsJXgyCisrICAgeHNubXN1Ym1kcCAl eDAsJXgxLCV4MyIKKysgIFsoc2V0X2F0dHIgInR5cGUiICJkbXVsIikKKysgICAoc2V0X2F0dHIg ImZwX3R5cGUiICJmcF9tYWRkc3ViX2QiKV0pCisrCisrKGRlZmluZV9pbnNuICIqdnN4X2ZubXN1 YmRmNF8yIgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REYgMCAidnN4X3JlZ2lzdGVyX29wZXJh bmQiICI9d3Msd3MiKQorKwkobWludXM6REYKKysJIChtYXRjaF9vcGVyYW5kOkRGIDMgInZzeF9y ZWdpc3Rlcl9vcGVyYW5kIiAiMCx3cyIpCisrCSAobXVsdDpERiAobWF0Y2hfb3BlcmFuZDpERiAx ICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIiV3cyx3cyIpCisrCQkgIChtYXRjaF9vcGVyYW5kOkRG IDIgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAid3MsMCIpKSkpXQorKyAgIlZFQ1RPUl9VTklUX1ZT WF9QIChERm1vZGUpICYmIFRBUkdFVF9GVVNFRF9NQURECisrICAgJiYgIUhPTk9SX1NJR05FRF9a RVJPUyAoREZtb2RlKSIKKysgICJACisrICAgeHNubXN1YmFkcCAleDAsJXgxLCV4MgorKyAgIHhz bm1zdWJtZHAgJXgwLCV4MSwleDMiCisrICBbKHNldF9hdHRyICJ0eXBlIiAiZG11bCIpCisrICAg KHNldF9hdHRyICJmcF90eXBlIiAiZnBfbWFkZHN1Yl9kIildKQorKworKzs7IEZvciB0aGUgY29u dmVyc2lvbnMsIGxpbWl0IHRoZSByZWdpc3RlciBjbGFzcyBmb3IgdGhlIGludGVnZXIgdmFsdWUg dG8gYmUKKys7OyB0aGUgZnBycy4gIEZvciB0aGUgdW5zaWduZWQgdGVzdHMsIHRoZXJlIGlzbid0 IGEgZ2VuZXJpYyBkb3VibGUgLT4gdW5zaWduZWQKKys7OyBjb252ZXJzaW9uIGluIHJzNjAwMC5t ZCBzbyBkb24ndCB0ZXN0IFZFQ1RPUl9VTklUX1ZTWF9QLCBqdXN0IHRlc3QgYWdhaW5zdAorKzs7 IFZTWC4KKysKKysoZGVmaW5lX2luc24gIip2c3hfZmxvYXRkaWRmMiIKKysgIFsoc2V0IChtYXRj aF9vcGVyYW5kOkRGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPXdzIikKKysJKGZsb2F0OkRG IChtYXRjaF9vcGVyYW5kOkRJIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiIWYjciIpKSldCisr ICAiVkVDVE9SX1VOSVRfVlNYX1AgKERGbW9kZSkiCisrICAieHNjdnN4ZGRwICV4MCwleDEiCisr ICBbKHNldF9hdHRyICJ0eXBlIiAiZnAiKV0pCisrCisrKGRlZmluZV9pbnNuICIqdnN4X2Zsb2F0 dW5zZGlkZjIiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpERiAwICJ2c3hfcmVnaXN0ZXJfb3Bl cmFuZCIgIj13cyIpCisrCSh1bnNpZ25lZF9mbG9hdDpERiAobWF0Y2hfb3BlcmFuZDpESSAxICJ2 c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIiFmI3IiKSkpXQorKyAgIlRBUkdFVF9IQVJEX0ZMT0FUICYm IFRBUkdFVF9WU1giCisrICAieHNjdnV4ZGRwICV4MCwleDEiCisrICBbKHNldF9hdHRyICJ0eXBl IiAiZnAiKV0pCisrCisrKGRlZmluZV9pbnNuICIqdnN4X2ZpeF90cnVuY2RmZGkyIgorKyAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6REkgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9IWYjciIpCisr CShmaXg6REkgKG1hdGNoX29wZXJhbmQ6REYgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICJ3cyIp KSldCisrICAiVkVDVE9SX1VOSVRfVlNYX1AgKERGbW9kZSkiCisrICAieHNjdmRwc3hkcyAleDAs JXgxIgorKyAgWyhzZXRfYXR0ciAidHlwZSIgImZwIildKQorKworKyhkZWZpbmVfaW5zbiAiKnZz eF9maXh1bnNfdHJ1bmNkZmRpMiIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRJIDAgInZzeF9y ZWdpc3Rlcl9vcGVyYW5kIiAiPSFmI3IiKQorKwkodW5zaWduZWRfZml4OkRJIChtYXRjaF9vcGVy YW5kOkRGIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAid3MiKSkpXQorKyAgIlRBUkdFVF9IQVJE X0ZMT0FUICYmIFRBUkdFVF9WU1giCisrICAieHNjdmRwdXhkcyAleDAsJXgxIgorKyAgWyhzZXRf YXR0ciAidHlwZSIgImZwIildKQorKworKyhkZWZpbmVfaW5zbiAiKnZzeF9idHJ1bmNkZjIiCisr ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpERiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj13cyIp CisrCSh1bnNwZWM6REYgWyhtYXRjaF9vcGVyYW5kOkRGIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5k IiAid3MiKV0KKysJCSAgIFVOU1BFQ19GUklaKSldCisrICAiVkVDVE9SX1VOSVRfVlNYX1AgKERG bW9kZSkiCisrICAieHNyZHBpeiAleDAsJXgxIgorKyAgWyhzZXRfYXR0ciAidHlwZSIgImZwIild KQorKworKyhkZWZpbmVfaW5zbiAiKnZzeF9mbG9vcmRmMiIKKysgIFsoc2V0IChtYXRjaF9vcGVy YW5kOkRGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPXdzIikKKysJKHVuc3BlYzpERiBbKG1h dGNoX29wZXJhbmQ6REYgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICJ3cyIpXQorKwkJICAgVU5T UEVDX0ZSSU0pKV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAoREZtb2RlKSIKKysgICJ4c3JkcGlt ICV4MCwleDEiCisrICBbKHNldF9hdHRyICJ0eXBlIiAiZnAiKV0pCisrCisrKGRlZmluZV9pbnNu ICIqdnN4X2NlaWxkZjIiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpERiAwICJ2c3hfcmVnaXN0 ZXJfb3BlcmFuZCIgIj13cyIpCisrCSh1bnNwZWM6REYgWyhtYXRjaF9vcGVyYW5kOkRGIDEgInZz eF9yZWdpc3Rlcl9vcGVyYW5kIiAid3MiKV0KKysJCSAgIFVOU1BFQ19GUklQKSldCisrICAiVkVD VE9SX1VOSVRfVlNYX1AgKERGbW9kZSkiCisrICAieHNyZHBpcCAleDAsJXgxIgorKyAgWyhzZXRf YXR0ciAidHlwZSIgImZwIildKQorKworKyhkZWZpbmVfaW5zbiAidnN4X2NvcHlzaWduZGYzIgor KyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REYgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9d3Mi KQorKwkoaWZfdGhlbl9lbHNlOkRGIChnZTpERiAobWF0Y2hfb3BlcmFuZDpERiAyICJ2c3hfcmVn aXN0ZXJfb3BlcmFuZCIgIndzIikKKysJCQkJKGNvbnN0X2ludCAwKSkKKysJCQkgKGFiczpERiAo bWF0Y2hfb3BlcmFuZDpERiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIndzIikpCisrCQkJIChu ZWc6REYgKGFiczpERiAobWF0Y2hfZHVwIDEpKSkpKV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAo REZtb2RlKSIKKysgICJ4c2Nwc2duZHAgJXgwLCV4MiwleDEiCisrICBbKHNldF9hdHRyICJ0eXBl IiAiZnAiKV0pCisrCisrKGRlZmluZV9pbnNuICIqdnN4X2Z0cnVuY2RmMiIKKysgIFsoc2V0ICht YXRjaF9vcGVyYW5kOkRGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPXdzIikKKysgIAkoZml4 OkRGIChtYXRjaF9vcGVyYW5kOkRGIDEgInJlZ2lzdGVyX29wZXJhbmQiICJ3cyIpKSldCisrICAi VkVDVE9SX1VOSVRfVlNYX1AgKERGbW9kZSkiCisrICAieHNyZHBwaXogJXgwLCV4MSIKKysgIFso c2V0X2F0dHIgInR5cGUiICJ2ZWNmbG9hdCIpXSkKKysKKysMCisrOzsgTG9naWNhbCBhbmQgcGVy bXV0ZSBvcGVyYXRpb25zCisrKGRlZmluZV9pbnNuICIqdnN4X2FuZDxtb2RlPjMiCisrICBbKHNl dCAobWF0Y2hfb3BlcmFuZDpWU1hfTCAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj08VlNyPiw/ d2EiKQorKyAgICAgICAgKGFuZDpWU1hfTAorKwkgKG1hdGNoX29wZXJhbmQ6VlNYX0wgMSAidnN4 X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPiw/d2EiKQorKwkgKG1hdGNoX29wZXJhbmQ6VlNYX0wg MiAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPiw/d2EiKSkpXQorKyAgIlZFQ1RPUl9NRU1f VlNYX1AgKDxNT0RFPm1vZGUpIgorKyAgInh4bGFuZCAleDAsJXgxLCV4MiIKKysgIFsoc2V0X2F0 dHIgInR5cGUiICJ2ZWNzaW1wbGUiKV0pCisrCisrKGRlZmluZV9pbnNuICIqdnN4X2lvcjxtb2Rl PjMiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hfTCAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFu ZCIgIj08VlNyPiw/d2EiKQorKyAgICAgICAgKGlvcjpWU1hfTCAobWF0Y2hfb3BlcmFuZDpWU1hf TCAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+LD93YSIpCisrCQkgICAobWF0Y2hfb3Bl cmFuZDpWU1hfTCAyICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+LD93YSIpKSldCisrICAi VkVDVE9SX01FTV9WU1hfUCAoPE1PREU+bW9kZSkiCisrICAieHhsb3IgJXgwLCV4MSwleDIiCisr ICBbKHNldF9hdHRyICJ0eXBlIiAidmVjc2ltcGxlIildKQorKworKyhkZWZpbmVfaW5zbiAiKnZz eF94b3I8bW9kZT4zIgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VlNYX0wgMCAidnN4X3JlZ2lz dGVyX29wZXJhbmQiICI9PFZTcj4sP3dhIikKKysgICAgICAgICh4b3I6VlNYX0wKKysJIChtYXRj aF9vcGVyYW5kOlZTWF9MIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4sP3dhIikKKysJ IChtYXRjaF9vcGVyYW5kOlZTWF9MIDIgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4sP3dh IikpKV0KKysgICJWRUNUT1JfTUVNX1ZTWF9QICg8TU9ERT5tb2RlKSIKKysgICJ4eGx4b3IgJXgw LCV4MSwleDIiCisrICBbKHNldF9hdHRyICJ0eXBlIiAidmVjc2ltcGxlIildKQorKworKyhkZWZp bmVfaW5zbiAiKnZzeF9vbmVfY21wbDxtb2RlPjIiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpW U1hfTCAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj08VlNyPiw/d2EiKQorKyAgICAgICAgKG5v dDpWU1hfTAorKwkgKG1hdGNoX29wZXJhbmQ6VlNYX0wgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQi ICI8VlNyPiw/d2EiKSkpXQorKyAgIlZFQ1RPUl9NRU1fVlNYX1AgKDxNT0RFPm1vZGUpIgorKyAg Inh4bG5vciAleDAsJXgxLCV4MSIKKysgIFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNzaW1wbGUiKV0p CisrICAKKysoZGVmaW5lX2luc24gIip2c3hfbm9yPG1vZGU+MyIKKysgIFsoc2V0IChtYXRjaF9v cGVyYW5kOlZTWF9MIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPTxWU3I+LD93YSIpCisrICAg ICAgICAobm90OlZTWF9MCisrCSAoaW9yOlZTWF9MCisrCSAgKG1hdGNoX29wZXJhbmQ6VlNYX0wg MSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI8VlNyPiw/d2EiKQorKwkgIChtYXRjaF9vcGVyYW5k OlZTWF9MIDIgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4sP3dhIikpKSldCisrICAiVkVD VE9SX01FTV9WU1hfUCAoPE1PREU+bW9kZSkiCisrICAieHhsbm9yICV4MCwleDEsJXgyIgorKyAg WyhzZXRfYXR0ciAidHlwZSIgInZlY3NpbXBsZSIpXSkKKysKKysoZGVmaW5lX2luc24gIip2c3hf YW5kYzxtb2RlPjMiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hfTCAwICJ2c3hfcmVnaXN0 ZXJfb3BlcmFuZCIgIj08VlNyPiw/d2EiKQorKyAgICAgICAgKGFuZDpWU1hfTAorKwkgKG5vdDpW U1hfTAorKwkgIChtYXRjaF9vcGVyYW5kOlZTWF9MIDIgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAi PFZTcj4sP3dhIikpCisrCSAobWF0Y2hfb3BlcmFuZDpWU1hfTCAxICJ2c3hfcmVnaXN0ZXJfb3Bl cmFuZCIgIjxWU3I+LD93YSIpKSldCisrICAiVkVDVE9SX01FTV9WU1hfUCAoPE1PREU+bW9kZSki CisrICAieHhsYW5kYyAleDAsJXgxLCV4MiIKKysgIFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNzaW1w bGUiKV0pCisrCisrDAorKzs7IFBlcm11dGUgb3BlcmF0aW9ucworKworKyhkZWZpbmVfaW5zbiAi dnN4X2NvbmNhdF92MmRmIgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJERiAwICJ2c3hfcmVn aXN0ZXJfb3BlcmFuZCIgIj13ZCw/d2EiKQorKwkodW5zcGVjOlYyREYKKysJIFsobWF0Y2hfb3Bl cmFuZDpERiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgImYsd2EiKQorKwkgIChtYXRjaF9vcGVy YW5kOkRGIDIgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiZix3YSIpXQorKwkgVU5TUEVDX1ZTWF9D T05DQVRfVjJERikpXQorKyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChWMkRGbW9kZSkiCisrICAieHhw ZXJtZGkgJXgwLCV4MSwleDIsMCIKKysgIFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNwZXJtIildKQor KworKzs7IFNldCBhIGRvdWJsZSBpbnRvIG9uZSBlbGVtZW50CisrKGRlZmluZV9pbnNuICJ2c3hf c2V0X3YyZGYiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWMkRGIDAgInZzeF9yZWdpc3Rlcl9v cGVyYW5kIiAiPXdkIikKKysJKHZlY19tZXJnZTpWMkRGCisrCSAobWF0Y2hfb3BlcmFuZDpWMkRG IDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAid2QiKQorKwkgKHZlY19kdXBsaWNhdGU6VjJERiAo bWF0Y2hfb3BlcmFuZDpERiAyICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIndzIikpCisrCSAobWF0 Y2hfb3BlcmFuZDpRSSAzICJ1NWJpdF9jaW50X29wZXJhbmQiICJpIikpKV0KKysgICJWRUNUT1Jf VU5JVF9WU1hfUCAoVjJERm1vZGUpIgorK3sKKysgIG9wZXJhbmRzWzNdID0gR0VOX0lOVCAoSU5U VkFMIChvcGVyYW5kc1szXSkgJiAxKTsKKysgIHJldHVybiBcInh4cGVybWRpICV4MCwleDEsJXgy LCUzXCI7CisrfQorKyAgWyhzZXRfYXR0ciAidHlwZSIgInZlY3Blcm0iKV0pCisrCisrOzsgRXh0 cmFjdCBhIERGIGVsZW1lbnQgZnJvbSBWMkRGCisrKGRlZmluZV9pbnNuICJ2c3hfZXh0cmFjdF92 MmRmIgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REYgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQi ICI9d3MiKQorKwkodmVjX3NlbGVjdDpERiAobWF0Y2hfb3BlcmFuZDpWMkRGIDEgInZzeF9yZWdp c3Rlcl9vcGVyYW5kIiAid2QiKQorKwkJICAgICAgIChwYXJhbGxlbAorKwkJCVsobWF0Y2hfb3Bl cmFuZDpRSSAyICJ1NWJpdF9jaW50X29wZXJhbmQiICJpIildKSkpXQorKyAgIlZFQ1RPUl9VTklU X1ZTWF9QIChWMkRGbW9kZSkiCisreworKyAgb3BlcmFuZHNbM10gPSBHRU5fSU5UIChJTlRWQUwg KG9wZXJhbmRzWzJdKSAmIDEpOworKyAgcmV0dXJuIFwieHhwZXJtZGkgJXgwLCV4MSwleDEsJTNc IjsKKyt9CisrICBbKHNldF9hdHRyICJ0eXBlIiAidmVjcGVybSIpXSkKKysKKys7OyBHZW5lcmFs IFYyREYgcGVybXV0ZQorKyhkZWZpbmVfaW5zbiAidnN4X3h4cGVybWRpIgorKyAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6VjJERiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj13ZCIpCisrCSh2ZWNf Y29uY2F0OlYyREYKKysJICh2ZWNfc2VsZWN0OkRGIChtYXRjaF9vcGVyYW5kOlYyREYgMSAidnN4 X3JlZ2lzdGVyX29wZXJhbmQiICJ3ZCIpCisrCQkJKHBhcmFsbGVsCisrCQkJIFsobWF0Y2hfb3Bl cmFuZDpRSSAyICJ1NWJpdF9jaW50X29wZXJhbmQiICJpIildKSkKKysJICh2ZWNfc2VsZWN0OkRG IChtYXRjaF9vcGVyYW5kOlYyREYgMyAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICJ3ZCIpCisrCQkJ KHBhcmFsbGVsCisrCQkJIFsobWF0Y2hfb3BlcmFuZDpRSSA0ICJ1NWJpdF9jaW50X29wZXJhbmQi ICJpIildKSkpKV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAoVjJERm1vZGUpIgorK3sKKysgIG9w ZXJhbmRzWzVdID0gR0VOX0lOVCAoKChJTlRWQUwgKG9wZXJhbmRzWzJdKSAmIDEpIDw8IDEpCisr CQkJIHwgKElOVFZBTCAob3BlcmFuZHNbNF0pICYgMSkpOworKyAgcmV0dXJuIFwieHhwZXJtZGkg JXgwLCV4MSwleDMsJTVcIjsKKyt9CisrICBbKHNldF9hdHRyICJ0eXBlIiAidmVjcGVybSIpXSkK KysKKys7OyBWMkRGIHNwbGF0CisrKGRlZmluZV9pbnNuICJ2c3hfc3BsYXR2MmRmIgorKyAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6VjJERiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj13ZCx3ZCIp CisrCSh2ZWNfZHVwbGljYXRlOlYyREYKKysJIChtYXRjaF9vcGVyYW5kOkRGIDEgImlucHV0X29w ZXJhbmQiICJ3cyxaIikpKV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAoVjJERm1vZGUpIgorKyAg IkAKKysgICB4eHBlcm1kaSAleDAsJXgxLCV4MSwwCisrICAgbHh2ZHN4ICV4MCwleTEiCisrICBb KHNldF9hdHRyICJ0eXBlIiAidmVjcGVybSx2ZWNsb2FkIildKQorKworKzs7IFY0U0Ygc3BsYXQK KysoZGVmaW5lX2luc24gIip2c3hfeHhzcGx0dyIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlY0 U0YgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9d2YiKQorKwkodmVjX2R1cGxpY2F0ZTpWNFNG CisrCSAodmVjX3NlbGVjdDpTRiAobWF0Y2hfb3BlcmFuZDpWNFNGIDEgInZzeF9yZWdpc3Rlcl9v cGVyYW5kIiAid2YiKQorKwkJCShwYXJhbGxlbAorKwkJCSBbKG1hdGNoX29wZXJhbmQ6UUkgMiAi dTViaXRfY2ludF9vcGVyYW5kIiAiaSIpXSkpKSldCisrICAiVkVDVE9SX1VOSVRfVlNYX1AgKFY0 U0Ztb2RlKSIKKysgICJ4eHNwbHR3ICV4MCwleDEsJTIiCisrICBbKHNldF9hdHRyICJ0eXBlIiAi dmVjcGVybSIpXSkKKysKKys7OyBWNFNGIGludGVybGVhdmUKKysoZGVmaW5lX2luc24gIip2c3hf eHhtcmdodyIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlY0U0YgMCAicmVnaXN0ZXJfb3BlcmFu ZCIgIj12IikKKysgICAgICAgICh2ZWNfbWVyZ2U6VjRTRiAodmVjX3NlbGVjdDpWNFNGIChtYXRj aF9vcGVyYW5kOlY0U0YgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInYiKQorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhcmFsbGVsIFsoY29uc3RfaW50IDApCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9p bnQgMikKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGNvbnN0X2ludCAxKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoY29uc3RfaW50IDMpXSkpCisrICAgICAgICAgICAgICAgICAgICAgICAg KHZlY19zZWxlY3Q6VjRTRiAobWF0Y2hfb3BlcmFuZDpWNFNGIDIgInJlZ2lzdGVyX29wZXJhbmQi ICJ2IikKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJhbGxl bCBbKGNvbnN0X2ludCAyKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoY29uc3RfaW50IDApCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMykKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAxKV0pKQorKyAg ICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDUpKSldCisrICAiVkVDVE9SX1VOSVRfVlNY X1AgKFY0U0Ztb2RlKSIKKysgICJ4eG1yZ2h3ICV4MCwleDEsJXgyIgorKyAgWyhzZXRfYXR0ciAi dHlwZSIgInZlY3Blcm0iKV0pCisrCisrKGRlZmluZV9pbnNuICIqdnN4X3h4bXJnbHciCisrICBb KHNldCAobWF0Y2hfb3BlcmFuZDpWNFNGIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9diIpCisrICAg ICAgICAodmVjX21lcmdlOlY0U0YKKysJICh2ZWNfc2VsZWN0OlY0U0YgKG1hdGNoX29wZXJhbmQ6 VjRTRiAxICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIpCisrCQkJICAocGFyYWxsZWwgWyhjb25zdF9p bnQgMikKKysJCQkJICAgICAoY29uc3RfaW50IDApCisrCQkJCSAgICAgKGNvbnN0X2ludCAzKQor KwkJCQkgICAgIChjb25zdF9pbnQgMSldKSkKKysJICh2ZWNfc2VsZWN0OlY0U0YgKG1hdGNoX29w ZXJhbmQ6VjRTRiAyICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIpCisrCQkJICAocGFyYWxsZWwgWyhj b25zdF9pbnQgMCkKKysJCQkJICAgICAoY29uc3RfaW50IDIpCisrCQkJCSAgICAgKGNvbnN0X2lu dCAxKQorKwkJCQkgICAgIChjb25zdF9pbnQgMyldKSkKKysJIChjb25zdF9pbnQgNSkpKV0KKysg ICJWRUNUT1JfVU5JVF9WU1hfUCAoVjRTRm1vZGUpIgorKyAgInh4bXJnbHcgJXgwLCV4MSwleDIi CisrICBbKHNldF9hdHRyICJ0eXBlIiAidmVjcGVybSIpXSkKKy0tLSBnY2MvY29uZmlnL3JzNjAw MC9yczYwMDAuaAkoLi4uL3RydW5rKQkocmV2aXNpb24gMTQ0NTU3KQorKysrIGdjYy9jb25maWcv cnM2MDAwL3JzNjAwMC5oCSguLi4vYnJhbmNoZXMvaWJtL3Bvd2VyNy1tZWlzc25lcikJKHJldmlz aW9uIDE0NDY5MikKK0BAIC0xLDYgKzEsNiBAQAorIC8qIERlZmluaXRpb25zIG9mIHRhcmdldCBt YWNoaW5lIGZvciBHTlUgY29tcGlsZXIsIGZvciBJQk0gUlMvNjAwMC4KKyAgICBDb3B5cmlnaHQg KEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksCistICAg MjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOAorKyAg IDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIw MDkKKyAgICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAgICBDb250cmlidXRlZCBi eSBSaWNoYXJkIEtlbm5lciAoa2VubmVyQHZsc2kxLnVsdHJhLm55dS5lZHUpCisgCitAQCAtNzIs MTQgKzcyLDE2IEBACisgI2RlZmluZSBBU01fQ1BVX1BPV0VSNl9TUEVDICItbXBvd2VyNCAtbWFs dGl2ZWMiCisgI2VuZGlmCisgCistI2lmZGVmIEhBVkVfQVNfVlNYCisrI2lmZGVmIEhBVkVfQVNf UE9QQ05URAorICNkZWZpbmUgQVNNX0NQVV9QT1dFUjdfU1BFQyAiLW1wb3dlcjciCisgI2Vsc2UK KyAjZGVmaW5lIEFTTV9DUFVfUE9XRVI3X1NQRUMgIi1tcG93ZXI0IC1tYWx0aXZlYyIKKyAjZW5k aWYKKyAKKy0vKiBDb21tb24gQVNNIGRlZmluaXRpb25zIHVzZWQgYnkgQVNNX1NQRUMgYW1vbmcg dGhlIHZhcmlvdXMgdGFyZ2V0cworLSAgIGZvciBoYW5kbGluZyAtbWNwdT14eHggc3dpdGNoZXMu ICAqLworKy8qIENvbW1vbiBBU00gZGVmaW5pdGlvbnMgdXNlZCBieSBBU01fU1BFQyBhbW9uZyB0 aGUgdmFyaW91cyB0YXJnZXRzIGZvcgorKyAgIGhhbmRsaW5nIC1tY3B1PXh4eCBzd2l0Y2hlcy4g IFRoZXJlIGlzIGEgcGFyYWxsZWwgbGlzdCBpbiBkcml2ZXItcnM2MDAwLmMgdG8KKysgICBwcm92 aWRlIHRoZSBkZWZhdWx0IGFzc2VtYmxlciBvcHRpb25zIGlmIHRoZSB1c2VyIHVzZXMgLW1jcHU9 bmF0aXZlLCBzbyBpZgorKyAgIHlvdSBtYWtlIGNoYW5nZXMgaGVyZSwgbWFrZSB0aGVtIGFsc28g dGhlcmUuICAqLworICNkZWZpbmUgQVNNX0NQVV9TUEVDIFwKKyAiJXshbWNwdSo6IFwKKyAgICV7 bXBvd2VyOiAleyFtcG93ZXIyOiAtbXB3cn19IFwKK0BAIC04OCw2ICs5MCw3IEBACisgICAleyFt cG93ZXJwYzY0KjogJXttcG93ZXJwYyo6IC1tcHBjfX0gXAorICAgJXttbm8tcG93ZXI6ICV7IW1w b3dlcnBjKjogLW1jb219fSBcCisgICAleyFtbm8tcG93ZXI6ICV7IW1wb3dlcio6ICUoYXNtX2Rl ZmF1bHQpfX19IFwKKysle21jcHU9bmF0aXZlOiAlKGFzbV9jcHVfbmF0aXZlKX0gXAorICV7bWNw dT1jb21tb246IC1tY29tfSBcCisgJXttY3B1PWNlbGw6IC1tY2VsbH0gXAorICV7bWNwdT1wb3dl cjogLW1wd3J9IFwKK0BAIC0xNjMsNiArMTY2LDcgQEAKKyAjZGVmaW5lIEVYVFJBX1NQRUNTCQkJ CQkJCVwKKyAgIHsgImNwcF9kZWZhdWx0IiwJCUNQUF9ERUZBVUxUX1NQRUMgfSwJCQlcCisgICB7 ICJhc21fY3B1IiwJCQlBU01fQ1BVX1NQRUMgfSwJCQkJXAorKyAgeyAiYXNtX2NwdV9uYXRpdmUi LAkJQVNNX0NQVV9OQVRJVkVfU1BFQyB9LAkJCVwKKyAgIHsgImFzbV9kZWZhdWx0IiwJCUFTTV9E RUZBVUxUX1NQRUMgfSwJCQlcCisgICB7ICJjYzFfY3B1IiwJCQlDQzFfQ1BVX1NQRUMgfSwJCQkJ XAorICAgeyAiYXNtX2NwdV9wb3dlcjUiLAkJQVNNX0NQVV9QT1dFUjVfU1BFQyB9LAkJCVwKK0BA IC0xNzksNiArMTgzLDEwIEBAIGV4dGVybiBjb25zdCBjaGFyICpob3N0X2RldGVjdF9sb2NhbF9j cHUKKyAjZGVmaW5lIEVYVFJBX1NQRUNfRlVOQ1RJT05TIFwKKyAgIHsgImxvY2FsX2NwdV9kZXRl Y3QiLCBob3N0X2RldGVjdF9sb2NhbF9jcHUgfSwKKyAjZGVmaW5lIEhBVkVfTE9DQUxfQ1BVX0RF VEVDVAorKyNkZWZpbmUgQVNNX0NQVV9OQVRJVkVfU1BFQyAiJTpsb2NhbF9jcHVfZGV0ZWN0KGFz bSkiCisrCisrI2Vsc2UKKysjZGVmaW5lIEFTTV9DUFVfTkFUSVZFX1NQRUMgIiUoYXNtX2RlZmF1 bHQpIgorICNlbmRpZgorIAorICNpZm5kZWYgQ0MxX0NQVV9TUEVDCitAQCAtMjQwLDYgKzI0OCwx NCBAQCBleHRlcm4gY29uc3QgY2hhciAqaG9zdF9kZXRlY3RfbG9jYWxfY3B1CisgI2RlZmluZSBU QVJHRVRfREZQIDAKKyAjZW5kaWYKKyAKKysvKiBEZWZpbmUgVEFSR0VUX1BPUENOVEQgaWYgdGhl IHRhcmdldCBhc3NlbWJsZXIgZG9lcyBub3Qgc3VwcG9ydCB0aGUKKysgICBwb3Bjb3VudCB3b3Jk IGFuZCBkb3VibGUgd29yZCBpbnN0cnVjdGlvbnMuICAqLworKworKyNpZm5kZWYgSEFWRV9BU19Q T1BDTlRECisrI3VuZGVmICBUQVJHRVRfUE9QQ05URAorKyNkZWZpbmUgVEFSR0VUX1BPUENOVEQg MAorKyNlbmRpZgorKworICNpZm5kZWYgVEFSR0VUX1NFQ1VSRV9QTFQKKyAjZGVmaW5lIFRBUkdF VF9TRUNVUkVfUExUIDAKKyAjZW5kaWYKK0BAIC0yOTUsNiArMzExLDcgQEAgZW51bSBwcm9jZXNz b3JfdHlwZQorICAgIFBST0NFU1NPUl9QT1dFUjQsCisgICAgUFJPQ0VTU09SX1BPV0VSNSwKKyAg ICBQUk9DRVNTT1JfUE9XRVI2LAorKyAgIFBST0NFU1NPUl9QT1dFUjcsCisgICAgUFJPQ0VTU09S X0NFTEwKKyB9OworIAorQEAgLTM4OCw5ICs0MDUsMTMgQEAgZXh0ZXJuIHN0cnVjdCByczYwMDBf Y3B1X3NlbGVjdCByczYwMDBfcworIGV4dGVybiBjb25zdCBjaGFyICpyczYwMDBfZGVidWdfbmFt ZTsJLyogTmFtZSBmb3IgLW1kZWJ1Zy14eHh4IG9wdGlvbiAqLworIGV4dGVybiBpbnQgcnM2MDAw X2RlYnVnX3N0YWNrOwkJLyogZGVidWcgc3RhY2sgYXBwbGljYXRpb25zICovCisgZXh0ZXJuIGlu dCByczYwMDBfZGVidWdfYXJnOwkJLyogZGVidWcgYXJndW1lbnQgaGFuZGxpbmcgKi8KKytleHRl cm4gaW50IHJzNjAwMF9kZWJ1Z19yZWc7CQkvKiBkZWJ1ZyByZWdpc3RlciBoYW5kbGluZyAqLwor K2V4dGVybiBpbnQgcnM2MDAwX2RlYnVnX2FkZHI7CQkvKiBkZWJ1ZyBtZW1vcnkgYWRkcmVzc2lu ZyAqLworIAorICNkZWZpbmUJVEFSR0VUX0RFQlVHX1NUQUNLCXJzNjAwMF9kZWJ1Z19zdGFjawor ICNkZWZpbmUJVEFSR0VUX0RFQlVHX0FSRwlyczYwMDBfZGVidWdfYXJnCisrI2RlZmluZSBUQVJH RVRfREVCVUdfUkVHCXJzNjAwMF9kZWJ1Z19yZWcKKysjZGVmaW5lIFRBUkdFVF9ERUJVR19BRERS CXJzNjAwMF9kZWJ1Z19hZGRyCisgCisgZXh0ZXJuIGNvbnN0IGNoYXIgKnJzNjAwMF90cmFjZWJh Y2tfbmFtZTsgLyogVHlwZSBvZiB0cmFjZWJhY2sgdGFibGUuICAqLworIAorQEAgLTQwMSwxMyAr NDIyLDY1IEBAIGV4dGVybiBpbnQgcnM2MDAwX2llZWVxdWFkOworIGV4dGVybiBpbnQgcnM2MDAw X2FsdGl2ZWNfYWJpOworIGV4dGVybiBpbnQgcnM2MDAwX3NwZV9hYmk7CisgZXh0ZXJuIGludCBy czYwMDBfc3BlOworLWV4dGVybiBpbnQgcnM2MDAwX2lzZWw7CisgZXh0ZXJuIGludCByczYwMDBf ZmxvYXRfZ3ByczsKKyBleHRlcm4gaW50IHJzNjAwMF9hbGlnbm1lbnRfZmxhZ3M7CisgZXh0ZXJu IGNvbnN0IGNoYXIgKnJzNjAwMF9zY2hlZF9pbnNlcnRfbm9wc19zdHI7CisgZXh0ZXJuIGVudW0g cnM2MDAwX25vcF9pbnNlcnRpb24gcnM2MDAwX3NjaGVkX2luc2VydF9ub3BzOworIGV4dGVybiBp bnQgcnM2MDAwX3hpbGlueF9mcHU7CisgCisrLyogRGVzY3JpYmUgd2hpY2ggdmVjdG9yIHVuaXQg dG8gdXNlIGZvciBhIGdpdmVuIG1hY2hpbmUgbW9kZS4gICovCisrZW51bSByczYwMDBfdmVjdG9y IHsKKysgIFZFQ1RPUl9OT05FLAkJCS8qIFR5cGUgaXMgbm90ICBhIHZlY3RvciBvciBub3Qgc3Vw cG9ydGVkICovCisrICBWRUNUT1JfQUxUSVZFQywJCS8qIFVzZSBhbHRpdmVjIGZvciB2ZWN0b3Ig cHJvY2Vzc2luZyAqLworKyAgVkVDVE9SX1ZTWCwJCQkvKiBVc2UgVlNYIGZvciB2ZWN0b3IgcHJv Y2Vzc2luZyAqLworKyAgVkVDVE9SX1BBSVJFRCwJCS8qIFVzZSBwYWlyZWQgZmxvYXRpbmcgcG9p bnQgZm9yIHZlY3RvcnMgKi8KKysgIFZFQ1RPUl9TUEUsCQkJLyogVXNlIFNQRSBmb3IgdmVjdG9y IHByb2Nlc3NpbmcgKi8KKysgIFZFQ1RPUl9PVEhFUgkJCS8qIFNvbWUgb3RoZXIgdmVjdG9yIHVu aXQgKi8KKyt9OworKworK2V4dGVybiBlbnVtIHJzNjAwMF92ZWN0b3IgcnM2MDAwX3ZlY3Rvcl91 bml0W107CisrCisrI2RlZmluZSBWRUNUT1JfVU5JVF9OT05FX1AoTU9ERSkJCQlcCisrICAocnM2 MDAwX3ZlY3Rvcl91bml0WyhNT0RFKV0gPT0gVkVDVE9SX05PTkUpCisrCisrI2RlZmluZSBWRUNU T1JfVU5JVF9WU1hfUChNT0RFKQkJCQlcCisrICAocnM2MDAwX3ZlY3Rvcl91bml0WyhNT0RFKV0g PT0gVkVDVE9SX1ZTWCkKKysKKysjZGVmaW5lIFZFQ1RPUl9VTklUX0FMVElWRUNfUChNT0RFKQkJ CVwKKysgIChyczYwMDBfdmVjdG9yX3VuaXRbKE1PREUpXSA9PSBWRUNUT1JfQUxUSVZFQykKKysK KysjZGVmaW5lIFZFQ1RPUl9VTklUX0FMVElWRUNfT1JfVlNYX1AoTU9ERSkJCVwKKysgIChyczYw MDBfdmVjdG9yX3VuaXRbKE1PREUpXSA9PSBWRUNUT1JfQUxUSVZFQyAJXAorKyAgIHx8IHJzNjAw MF92ZWN0b3JfdW5pdFsoTU9ERSldID09IFZFQ1RPUl9WU1gpCisrCisrLyogRGVzY3JpYmUgd2hl dGhlciB0byB1c2UgVlNYIGxvYWRzIG9yIEFsdGl2ZWMgbG9hZHMuICBGb3Igbm93LCBqdXN0IHVz ZSB0aGUKKysgICBzYW1lIHVuaXQgYXMgdGhlIHZlY3RvciB1bml0IHdlIGFyZSB1c2luZywgYnV0 IHdlIG1heSB3YW50IHRvIG1pZ3JhdGUgdG8KKysgICB1c2luZyBWU1ggc3R5bGUgbG9hZHMgZXZl biBmb3IgdHlwZXMgaGFuZGxlZCBieSBhbHRpdmVjLiAgKi8KKytleHRlcm4gZW51bSByczYwMDBf dmVjdG9yIHJzNjAwMF92ZWN0b3JfbWVtW107CisrCisrI2RlZmluZSBWRUNUT1JfTUVNX05PTkVf UChNT0RFKQkJCQlcCisrICAocnM2MDAwX3ZlY3Rvcl9tZW1bKE1PREUpXSA9PSBWRUNUT1JfTk9O RSkKKysKKysjZGVmaW5lIFZFQ1RPUl9NRU1fVlNYX1AoTU9ERSkJCQkJXAorKyAgKHJzNjAwMF92 ZWN0b3JfbWVtWyhNT0RFKV0gPT0gVkVDVE9SX1ZTWCkKKysKKysjZGVmaW5lIFZFQ1RPUl9NRU1f QUxUSVZFQ19QKE1PREUpCQkJXAorKyAgKHJzNjAwMF92ZWN0b3JfbWVtWyhNT0RFKV0gPT0gVkVD VE9SX0FMVElWRUMpCisrCisrI2RlZmluZSBWRUNUT1JfTUVNX0FMVElWRUNfT1JfVlNYX1AoTU9E RSkJCVwKKysgIChyczYwMDBfdmVjdG9yX21lbVsoTU9ERSldID09IFZFQ1RPUl9BTFRJVkVDIAlc CisrICAgfHwgcnM2MDAwX3ZlY3Rvcl9tZW1bKE1PREUpXSA9PSBWRUNUT1JfVlNYKQorKworKy8q IFJldHVybiB0aGUgYWxpZ25tZW50IG9mIGEgZ2l2ZW4gdmVjdG9yIHR5cGUsIHdoaWNoIGlzIHNl dCBiYXNlZCBvbiB0aGUKKysgICB2ZWN0b3IgdW5pdCB1c2UuICBWU1ggZm9yIGluc3RhbmNlIGNh biBsb2FkIDMyIG9yIDY0IGJpdCBhbGlnbmVkIHdvcmRzCisrICAgd2l0aG91dCBwcm9ibGVtcywg d2hpbGUgQWx0aXZlYyByZXF1aXJlcyAxMjgtYml0IGFsaWduZWQgdmVjdG9ycy4gICovCisrZXh0 ZXJuIGludCByczYwMDBfdmVjdG9yX2FsaWduW107CisrCisrI2RlZmluZSBWRUNUT1JfQUxJR04o TU9ERSkJCQkJCQlcCisrICAoKHJzNjAwMF92ZWN0b3JfYWxpZ25bKE1PREUpXSAhPSAwKQkJCQkJ XAorKyAgID8gcnM2MDAwX3ZlY3Rvcl9hbGlnblsoTU9ERSldCQkJCQlcCisrICAgOiAoaW50KUdF VF9NT0RFX0JJVFNJWkUgKChNT0RFKSkpCisrCisgLyogQWxpZ25tZW50IG9wdGlvbnMgZm9yIGZp ZWxkcyBpbiBzdHJ1Y3R1cmVzIGZvciBzdWItdGFyZ2V0cyBmb2xsb3dpbmcKKyAgICBBSVgtbGlr ZSBBQkkuCisgICAgQUxJR05fUE9XRVIgd29yZC1hbGlnbnMgRlAgZG91YmxlcyAoZGVmYXVsdCBB SVggQUJJKS4KK0BAIC00MzIsNyArNTA1LDcgQEAgZXh0ZXJuIGludCByczYwMDBfeGlsaW54X2Zw dTsKKyAjZGVmaW5lIFRBUkdFVF9TUEVfQUJJIDAKKyAjZGVmaW5lIFRBUkdFVF9TUEUgMAorICNk ZWZpbmUgVEFSR0VUX0U1MDAgMAorLSNkZWZpbmUgVEFSR0VUX0lTRUwgcnM2MDAwX2lzZWwKKysj ZGVmaW5lIFRBUkdFVF9JU0VMNjQgKFRBUkdFVF9JU0VMICYmIFRBUkdFVF9QT1dFUlBDNjQpCisg I2RlZmluZSBUQVJHRVRfRlBSUyAxCisgI2RlZmluZSBUQVJHRVRfRTUwMF9TSU5HTEUgMAorICNk ZWZpbmUgVEFSR0VUX0U1MDBfRE9VQkxFIDAKK0BAIC01MzAsNiArNjAzLDcgQEAgZXh0ZXJuIGlu dCByczYwMDBfeGlsaW54X2ZwdTsKKyAjZW5kaWYKKyAjZGVmaW5lIFVOSVRTX1BFUl9GUF9XT1JE IDgKKyAjZGVmaW5lIFVOSVRTX1BFUl9BTFRJVkVDX1dPUkQgMTYKKysjZGVmaW5lIFVOSVRTX1BF Ul9WU1hfV09SRCAxNgorICNkZWZpbmUgVU5JVFNfUEVSX1NQRV9XT1JEIDgKKyAjZGVmaW5lIFVO SVRTX1BFUl9QQUlSRURfV09SRCA4CisgCitAQCAtNjAwLDggKzY3NCw5IEBAIGV4dGVybiBpbnQg cnM2MDAwX3hpbGlueF9mcHU7CisgI2RlZmluZSBQQVJNX0JPVU5EQVJZIChUQVJHRVRfMzJCSVQg PyAzMiA6IDY0KQorIAorIC8qIEJvdW5kYXJ5IChpbiAqYml0cyopIG9uIHdoaWNoIHN0YWNrIHBv aW50ZXIgc2hvdWxkIGJlIGFsaWduZWQuICAqLworLSNkZWZpbmUgU1RBQ0tfQk9VTkRBUlkgXAor LSAgKChUQVJHRVRfMzJCSVQgJiYgIVRBUkdFVF9BTFRJVkVDICYmICFUQVJHRVRfQUxUSVZFQ19B QkkpID8gNjQgOiAxMjgpCisrI2RlZmluZSBTVEFDS19CT1VOREFSWQlcCisrICAoKFRBUkdFVF8z MkJJVCAmJiAhVEFSR0VUX0FMVElWRUMgJiYgIVRBUkdFVF9BTFRJVkVDX0FCSSAmJiAhVEFSR0VU X1ZTWCkgXAorKyAgICA/IDY0IDogMTI4KQorIAorIC8qIEFsbG9jYXRpb24gYm91bmRhcnkgKGlu ICpiaXRzKikgZm9yIHRoZSBjb2RlIG9mIGEgZnVuY3Rpb24uICAqLworICNkZWZpbmUgRlVOQ1RJ T05fQk9VTkRBUlkgMzIKK0BAIC02MTMsMTAgKzY4OCwxMSBAQCBleHRlcm4gaW50IHJzNjAwMF94 aWxpbnhfZnB1OworICAgIGxvY2FsIHN0b3JlLiAgVFlQRSBpcyB0aGUgZGF0YSB0eXBlLCBhbmQg QUxJR04gaXMgdGhlIGFsaWdubWVudAorICAgIHRoYXQgdGhlIG9iamVjdCB3b3VsZCBvcmRpbmFy aWx5IGhhdmUuICAqLworICNkZWZpbmUgTE9DQUxfQUxJR05NRU5UKFRZUEUsIEFMSUdOKQkJCQlc CistICAoKFRBUkdFVF9BTFRJVkVDICYmIFRSRUVfQ09ERSAoVFlQRSkgPT0gVkVDVE9SX1RZUEUp ID8gMTI4IDoJXAorKyAgKCgoVEFSR0VUX0FMVElWRUMgfHwgVEFSR0VUX1ZTWCkJCQkJXAorKyAg ICAmJiBUUkVFX0NPREUgKFRZUEUpID09IFZFQ1RPUl9UWVBFKSA/IDEyOCA6CQkJXAorICAgICAo VEFSR0VUX0U1MDBfRE9VQkxFCQkJCQkJXAorLSAgICAgJiYgVFlQRV9NT0RFIChUWVBFKSA9PSBE Rm1vZGUpID8gNjQgOiBcCistICAgICgoVEFSR0VUX1NQRSAmJiBUUkVFX0NPREUgKFRZUEUpID09 IFZFQ1RPUl9UWVBFIFwKKysgICAgICYmIFRZUEVfTU9ERSAoVFlQRSkgPT0gREZtb2RlKSA/IDY0 IDoJCQlcCisrICAgICgoVEFSR0VUX1NQRSAmJiBUUkVFX0NPREUgKFRZUEUpID09IFZFQ1RPUl9U WVBFCQlcCisgICAgICAmJiBTUEVfVkVDVE9SX01PREUgKFRZUEVfTU9ERSAoVFlQRSkpKSB8fCAo VEFSR0VUX1BBSVJFRF9GTE9BVCBcCisgICAgICAgICAmJiBUUkVFX0NPREUgKFRZUEUpID09IFZF Q1RPUl9UWVBFIFwKKyAgICAgICAgICYmIFBBSVJFRF9WRUNUT1JfTU9ERSAoVFlQRV9NT0RFIChU WVBFKSkpKSA/IDY0IDogQUxJR04pCitAQCAtNjc0LDE1ICs3NTAsMTcgQEAgZXh0ZXJuIGludCBy czYwMDBfeGlsaW54X2ZwdTsKKyAvKiBEZWZpbmUgdGhpcyBtYWNybyB0byBiZSB0aGUgdmFsdWUg MSBpZiB1bmFsaWduZWQgYWNjZXNzZXMgaGF2ZSBhIGNvc3QKKyAgICBtYW55IHRpbWVzIGdyZWF0 ZXIgdGhhbiBhbGlnbmVkIGFjY2Vzc2VzLCBmb3IgZXhhbXBsZSBpZiB0aGV5IGFyZQorICAgIGVt dWxhdGVkIGluIGEgdHJhcCBoYW5kbGVyLiAgKi8KKy0vKiBBbHRpdmVjIHZlY3RvciBtZW1vcnkg aW5zdHJ1Y3Rpb25zIHNpbXBseSBpZ25vcmUgdGhlIGxvdyBiaXRzOyBTUEUKKy0gICB2ZWN0b3Ig bWVtb3J5IGluc3RydWN0aW9ucyB0cmFwIG9uIHVuYWxpZ25lZCBhY2Nlc3Nlcy4gICovCisrLyog QWx0aXZlYyB2ZWN0b3IgbWVtb3J5IGluc3RydWN0aW9ucyBzaW1wbHkgaWdub3JlIHRoZSBsb3cg Yml0czsgU1BFIHZlY3RvcgorKyAgIG1lbW9yeSBpbnN0cnVjdGlvbnMgdHJhcCBvbiB1bmFsaWdu ZWQgYWNjZXNzZXM7IFZTWCBtZW1vcnkgaW5zdHJ1Y3Rpb25zIGFyZQorKyAgIGFsaWduZWQgdG8g NCBvciA4IGJ5dGVzLiAgKi8KKyAjZGVmaW5lIFNMT1dfVU5BTElHTkVEX0FDQ0VTUyhNT0RFLCBB TElHTikJCQkJXAorICAgKFNUUklDVF9BTElHTk1FTlQJCQkJCQkJXAorICAgIHx8ICgoKE1PREUp ID09IFNGbW9kZSB8fCAoTU9ERSkgPT0gREZtb2RlIHx8IChNT0RFKSA9PSBURm1vZGUJXAorIAl8 fCAoTU9ERSkgPT0gU0Rtb2RlIHx8IChNT0RFKSA9PSBERG1vZGUgfHwgKE1PREUpID09IFREbW9k ZQlcCisgCXx8IChNT0RFKSA9PSBESW1vZGUpCQkJCQkJXAorICAgICAgICAmJiAoQUxJR04pIDwg MzIpCQkJCQkJCVwKKy0gICB8fCAoVkVDVE9SX01PREVfUCAoKE1PREUpKSAmJiAoQUxJR04pIDwg R0VUX01PREVfQklUU0laRSAoKE1PREUpKSkpCisrICAgfHwgKFZFQ1RPUl9NT0RFX1AgKChNT0RF KSkgJiYgKCgoaW50KShBTElHTikpIDwgVkVDVE9SX0FMSUdOIChNT0RFKSkpKQorKworIAwKKyAv KiBTdGFuZGFyZCByZWdpc3RlciB1c2FnZS4gICovCisgCitAQCAtOTA5LDE2ICs5ODcsNjAgQEAg ZXh0ZXJuIGludCByczYwMDBfeGlsaW54X2ZwdTsKKyAvKiBUcnVlIGlmIHJlZ2lzdGVyIGlzIGFu IEFsdGlWZWMgcmVnaXN0ZXIuICAqLworICNkZWZpbmUgQUxUSVZFQ19SRUdOT19QKE4pICgoTikg Pj0gRklSU1RfQUxUSVZFQ19SRUdOTyAmJiAoTikgPD0gTEFTVF9BTFRJVkVDX1JFR05PKQorIAor Ky8qIFRydWUgaWYgcmVnaXN0ZXIgaXMgYSBWU1ggcmVnaXN0ZXIuICAqLworKyNkZWZpbmUgVlNY X1JFR05PX1AoTikgKEZQX1JFR05PX1AgKE4pIHx8IEFMVElWRUNfUkVHTk9fUCAoTikpCisrCisr LyogQWx0ZXJuYXRlIG5hbWUgZm9yIGFueSB2ZWN0b3IgcmVnaXN0ZXIgc3VwcG9ydGluZyBmbG9h dGluZyBwb2ludCwgbm8gbWF0dGVyCisrICAgd2hpY2ggaW5zdHJ1Y3Rpb24gc2V0KHMpIGFyZSBh dmFpbGFibGUuICAqLworKyNkZWZpbmUgVkZMT0FUX1JFR05PX1AoTikgXAorKyAgKEFMVElWRUNf UkVHTk9fUCAoTikgfHwgKFRBUkdFVF9WU1ggJiYgRlBfUkVHTk9fUCAoTikpKQorKworKy8qIEFs dGVybmF0ZSBuYW1lIGZvciBhbnkgdmVjdG9yIHJlZ2lzdGVyIHN1cHBvcnRpbmcgaW50ZWdlciwg bm8gbWF0dGVyIHdoaWNoCisrICAgaW5zdHJ1Y3Rpb24gc2V0KHMpIGFyZSBhdmFpbGFibGUuICAq LworKyNkZWZpbmUgVklOVF9SRUdOT19QKE4pIEFMVElWRUNfUkVHTk9fUCAoTikKKysKKysvKiBB bHRlcm5hdGUgbmFtZSBmb3IgYW55IHZlY3RvciByZWdpc3RlciBzdXBwb3J0aW5nIGxvZ2ljYWwg b3BlcmF0aW9ucywgbm8KKysgICBtYXR0ZXIgd2hpY2ggaW5zdHJ1Y3Rpb24gc2V0KHMpIGFyZSBh dmFpbGFibGUuICAqLworKyNkZWZpbmUgVkxPR0lDQUxfUkVHTk9fUChOKSBWRkxPQVRfUkVHTk9f UCAoTikKKysKKyAvKiBSZXR1cm4gbnVtYmVyIG9mIGNvbnNlY3V0aXZlIGhhcmQgcmVncyBuZWVk ZWQgc3RhcnRpbmcgYXQgcmVnIFJFR05PCisgICAgdG8gaG9sZCBzb21ldGhpbmcgb2YgbW9kZSBN T0RFLiAgKi8KKyAKKy0jZGVmaW5lIEhBUkRfUkVHTk9fTlJFR1MoUkVHTk8sIE1PREUpIHJzNjAw MF9oYXJkX3JlZ25vX25yZWdzICgoUkVHTk8pLCAoTU9ERSkpCisrI2RlZmluZSBIQVJEX1JFR05P X05SRUdTKFJFR05PLCBNT0RFKSByczYwMDBfaGFyZF9yZWdub19ucmVnc1soTU9ERSldWyhSRUdO TyldCisgCisgI2RlZmluZSBIQVJEX1JFR05PX0NBTExfUEFSVF9DTE9CQkVSRUQoUkVHTk8sIE1P REUpCVwKKyAgICgoVEFSR0VUXzMyQklUICYmIFRBUkdFVF9QT1dFUlBDNjQJCQlcCisgICAgICYm IChHRVRfTU9ERV9TSVpFIChNT0RFKSA+IDQpICBcCisgICAgICYmIElOVF9SRUdOT19QIChSRUdO TykpID8gMSA6IDApCisgCisrI2RlZmluZSBWU1hfVkVDVE9SX01PREUoTU9ERSkJCVwKKysJICgo TU9ERSkgPT0gVjRTRm1vZGUJCVwKKysJICB8fCAoTU9ERSkgPT0gVjJERm1vZGUpCVwKKysKKysj ZGVmaW5lIFZTWF9WRUNUT1JfTU9WRV9NT0RFKE1PREUpCVwKKysJICgoTU9ERSkgPT0gVjE2UUlt b2RlCQlcCisrCSAgfHwgKE1PREUpID09IFY4SEltb2RlCQlcCisrCSAgfHwgKE1PREUpID09IFY0 U0ltb2RlCQlcCisrCSAgfHwgKE1PREUpID09IFYyREltb2RlCQlcCisrCSAgfHwgKE1PREUpID09 IFY0U0Ztb2RlCQlcCisrCSAgfHwgKE1PREUpID09IFYyREZtb2RlKQlcCisrCisrI2RlZmluZSBW U1hfU0NBTEFSX01PREUoTU9ERSkJCVwKKysJKChNT0RFKSA9PSBERm1vZGUpCisrCisrI2RlZmlu ZSBWU1hfTU9ERShNT0RFKQkJCVwKKysJKFZTWF9WRUNUT1JfTU9ERSAoTU9ERSkJCVwKKysJIHx8 IFZTWF9TQ0FMQVJfTU9ERSAoTU9ERSkpCisrCisrI2RlZmluZSBWU1hfTU9WRV9NT0RFKE1PREUp CQlcCisrCShWU1hfVkVDVE9SX01PVkVfTU9ERSAoTU9ERSkJXAorKwkgfHwgVlNYX1NDQUxBUl9N T0RFKE1PREUpCVwKKysJIHx8IChNT0RFKSA9PSBWMTZRSW1vZGUJCVwKKysJIHx8IChNT0RFKSA9 PSBWOEhJbW9kZQkJXAorKwkgfHwgKE1PREUpID09IFY0U0ltb2RlCQlcCisrCSB8fCAoTU9ERSkg PT0gVjJESW1vZGUJCVwKKysJIHx8IChNT0RFKSA9PSBUSW1vZGUpCisrCisgI2RlZmluZSBBTFRJ VkVDX1ZFQ1RPUl9NT0RFKE1PREUpCVwKKyAJICgoTU9ERSkgPT0gVjE2UUltb2RlCQlcCisgCSAg fHwgKE1PREUpID09IFY4SEltb2RlCQlcCitAQCAtOTM0LDEwICsxMDU2LDEyIEBAIGV4dGVybiBp bnQgcnM2MDAwX3hpbGlueF9mcHU7CisgI2RlZmluZSBQQUlSRURfVkVDVE9SX01PREUoTU9ERSkg ICAgICAgIFwKKyAgICAgICAgICAoKE1PREUpID09IFYyU0Ztb2RlKSAgICAgICAgICAgIAorIAor LSNkZWZpbmUgVU5JVFNfUEVSX1NJTURfV09SRChNT0RFKQkJCQkgICAgIFwKKy0JKFRBUkdFVF9B TFRJVkVDID8gVU5JVFNfUEVSX0FMVElWRUNfV09SRAkJICAgICBcCistCSA6IChUQVJHRVRfU1BF ID8gVU5JVFNfUEVSX1NQRV9XT1JEIDogKFRBUkdFVF9QQUlSRURfRkxPQVQgPyBcCistCSBVTklU U19QRVJfUEFJUkVEX1dPUkQgOiBVTklUU19QRVJfV09SRCkpKQorKyNkZWZpbmUgVU5JVFNfUEVS X1NJTURfV09SRChNT0RFKQkJCQkJXAorKwkoVEFSR0VUX1ZTWCA/IFVOSVRTX1BFUl9WU1hfV09S RAkJCQlcCisrCSA6IChUQVJHRVRfQUxUSVZFQyA/IFVOSVRTX1BFUl9BTFRJVkVDX1dPUkQJCQlc CisrCSA6IChUQVJHRVRfU1BFID8gVU5JVFNfUEVSX1NQRV9XT1JECQkJCVwKKysJIDogKFRBUkdF VF9QQUlSRURfRkxPQVQgPyBVTklUU19QRVJfUEFJUkVEX1dPUkQJCQlcCisrCSA6IFVOSVRTX1BF Ul9XT1JEKSkpKQorIAorIC8qIFZhbHVlIGlzIFRSVUUgaWYgaGFyZCByZWdpc3RlciBSRUdOTyBj YW4gaG9sZCBhIHZhbHVlIG9mCisgICAgbWFjaGluZS1tb2RlIE1PREUuICAqLworQEAgLTk2NSw2 ICsxMDg5LDEwIEBAIGV4dGVybiBpbnQgcnM2MDAwX3hpbGlueF9mcHU7CisgICAgPyBBTFRJVkVD X1ZFQ1RPUl9NT0RFIChNT0RFMikJCVwKKyAgICA6IEFMVElWRUNfVkVDVE9SX01PREUgKE1PREUy KQkJXAorICAgID8gQUxUSVZFQ19WRUNUT1JfTU9ERSAoTU9ERTEpCQlcCisrICAgOiBWU1hfVkVD VE9SX01PREUgKE1PREUxKQkJCVwKKysgICA/IFZTWF9WRUNUT1JfTU9ERSAoTU9ERTIpCQkJXAor KyAgIDogVlNYX1ZFQ1RPUl9NT0RFIChNT0RFMikJCQlcCisrICAgPyBWU1hfVkVDVE9SX01PREUg KE1PREUxKQkJCVwKKyAgICA6IDEpCisgCisgLyogUG9zdC1yZWxvYWQsIHdlIGNhbid0IHVzZSBh bnkgbmV3IEFsdGlWZWMgcmVnaXN0ZXJzLCBhcyB3ZSBhbHJlYWR5CitAQCAtMTA1Niw5ICsxMTg0 LDEwIEBAIGV4dGVybiBpbnQgcnM2MDAwX3hpbGlueF9mcHU7CisgICAgRm9yIGFueSB0d28gY2xh c3NlcywgaXQgaXMgdmVyeSBkZXNpcmFibGUgdGhhdCB0aGVyZSBiZSBhbm90aGVyCisgICAgY2xh c3MgdGhhdCByZXByZXNlbnRzIHRoZWlyIHVuaW9uLiAgKi8KKyAKKy0vKiBUaGUgUlMvNjAwMCBo YXMgdGhyZWUgdHlwZXMgb2YgcmVnaXN0ZXJzLCBmaXhlZC1wb2ludCwgZmxvYXRpbmctcG9pbnQs CistICAgYW5kIGNvbmRpdGlvbiByZWdpc3RlcnMsIHBsdXMgdGhyZWUgc3BlY2lhbCByZWdpc3Rl cnMsIE1RLCBDVFIsIGFuZCB0aGUKKy0gICBsaW5rIHJlZ2lzdGVyLiAgQWx0aVZlYyBhZGRzIGEg dmVjdG9yIHJlZ2lzdGVyIGNsYXNzLgorKy8qIFRoZSBSUy82MDAwIGhhcyB0aHJlZSB0eXBlcyBv ZiByZWdpc3RlcnMsIGZpeGVkLXBvaW50LCBmbG9hdGluZy1wb2ludCwgYW5kCisrICAgY29uZGl0 aW9uIHJlZ2lzdGVycywgcGx1cyB0aHJlZSBzcGVjaWFsIHJlZ2lzdGVycywgTVEsIENUUiwgYW5k IHRoZSBsaW5rCisrICAgcmVnaXN0ZXIuICBBbHRpVmVjIGFkZHMgYSB2ZWN0b3IgcmVnaXN0ZXIg Y2xhc3MuICBWU1ggcmVnaXN0ZXJzIG92ZXJsYXAgdGhlCisrICAgRlBSIHJlZ2lzdGVycyBhbmQg dGhlIEFsdGl2ZWMgcmVnaXN0ZXJzLgorIAorICAgIEhvd2V2ZXIsIHIwIGlzIHNwZWNpYWwgaW4g dGhhdCBpdCBjYW5ub3QgYmUgdXNlZCBhcyBhIGJhc2UgcmVnaXN0ZXIuCisgICAgU28gbWFrZSBh IGNsYXNzIGZvciByZWdpc3RlcnMgdmFsaWQgYXMgYmFzZSByZWdpc3RlcnMuCitAQCAtMTA3Myw2 ICsxMjAyLDcgQEAgZW51bSByZWdfY2xhc3MKKyAgIEdFTkVSQUxfUkVHUywKKyAgIEZMT0FUX1JF R1MsCisgICBBTFRJVkVDX1JFR1MsCisrICBWU1hfUkVHUywKKyAgIFZSU0FWRV9SRUdTLAorICAg VlNDUl9SRUdTLAorICAgU1BFX0FDQ19SRUdTLAorQEAgLTExMDMsNiArMTIzMyw3IEBAIGVudW0g cmVnX2NsYXNzCisgICAiR0VORVJBTF9SRUdTIiwJCQkJCQkJXAorICAgIkZMT0FUX1JFR1MiLAkJ CQkJCQkJXAorICAgIkFMVElWRUNfUkVHUyIsCQkJCQkJCVwKKysgICJWU1hfUkVHUyIsCQkJCQkJ CQlcCisgICAiVlJTQVZFX1JFR1MiLAkJCQkJCQlcCisgICAiVlNDUl9SRUdTIiwJCQkJCQkJCVwK KyAgICJTUEVfQUNDX1JFR1MiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCitAQCAtMTEzMiw2ICsxMjYzLDcgQEAgZW51bSByZWdfY2xhc3MK KyAgIHsgMHhmZmZmZmZmZiwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwOCwgMHgwMDAyMDAwMCB9LCAv KiBHRU5FUkFMX1JFR1MgKi8gICAgIFwKKyAgIHsgMHgwMDAwMDAwMCwgMHhmZmZmZmZmZiwgMHgw MDAwMDAwMCwgMHgwMDAwMDAwMCB9LCAvKiBGTE9BVF9SRUdTICovICAgICAgIFwKKyAgIHsgMHgw MDAwMDAwMCwgMHgwMDAwMDAwMCwgMHhmZmZmZTAwMCwgMHgwMDAwMWZmZiB9LCAvKiBBTFRJVkVD X1JFR1MgKi8gICAgIFwKKysgIHsgMHgwMDAwMDAwMCwgMHhmZmZmZmZmZiwgMHhmZmZmZTAwMCwg MHgwMDAwMWZmZiB9LCAvKiBWU1hfUkVHUyAqLwkgICAgIFwKKyAgIHsgMHgwMDAwMDAwMCwgMHgw MDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMjAwMCB9LCAvKiBWUlNBVkVfUkVHUyAqLwkgICAg IFwKKyAgIHsgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwNDAwMCB9 LCAvKiBWU0NSX1JFR1MgKi8JICAgICBcCisgICB7IDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4 MDAwMDAwMDAsIDB4MDAwMDgwMDAgfSwgLyogU1BFX0FDQ19SRUdTICovICAgICBcCitAQCAtMTE3 OSw4ICsxMzExLDggQEAgZW51bSByZWdfY2xhc3MKKyAgIDogKFJFR05PKSA9PSBDUjBfUkVHTk8g PyBDUjBfUkVHUwkJXAorICAgOiBDUl9SRUdOT19QIChSRUdOTykgPyBDUl9SRUdTCQlcCisgICA6 IChSRUdOTykgPT0gTVFfUkVHTk8gPyBNUV9SRUdTCQlcCistICA6IChSRUdOTykgPT0gTFJfUkVH Tk8gPyBMSU5LX1JFR1MJXAorLSAgOiAoUkVHTk8pID09IENUUl9SRUdOTyA/IENUUl9SRUdTCVwK KysgIDogKFJFR05PKSA9PSBMUl9SRUdOTyA/IExJTktfUkVHUwkJXAorKyAgOiAoUkVHTk8pID09 IENUUl9SRUdOTyA/IENUUl9SRUdTCQlcCisgICA6IChSRUdOTykgPT0gQVJHX1BPSU5URVJfUkVH TlVNID8gQkFTRV9SRUdTCVwKKyAgIDogKFJFR05PKSA9PSBYRVJfUkVHTk8gPyBYRVJfUkVHUwkJ XAorICAgOiAoUkVHTk8pID09IFZSU0FWRV9SRUdOTyA/IFZSU0FWRV9SRUdTCVwKK0BAIC0xMTkw LDEwICsxMzIyLDE4IEBAIGVudW0gcmVnX2NsYXNzCisgICA6IChSRUdOTykgPT0gRlJBTUVfUE9J TlRFUl9SRUdOVU0gPyBCQVNFX1JFR1MJXAorICAgOiBOT19SRUdTKQorIAorKy8qIFZTWCByZWdp c3RlciBjbGFzc2VzLiAgKi8KKytleHRlcm4gZW51bSByZWdfY2xhc3MgcnM2MDAwX3ZlY3Rvcl9y ZWdfY2xhc3NbXTsKKytleHRlcm4gZW51bSByZWdfY2xhc3MgcnM2MDAwX3ZzeF9yZWdfY2xhc3M7 CisrCisgLyogVGhlIGNsYXNzIHZhbHVlIGZvciBpbmRleCByZWdpc3RlcnMsIGFuZCB0aGUgb25l IGZvciBiYXNlIHJlZ3MuICAqLworICNkZWZpbmUgSU5ERVhfUkVHX0NMQVNTIEdFTkVSQUxfUkVH UworICNkZWZpbmUgQkFTRV9SRUdfQ0xBU1MgQkFTRV9SRUdTCisgCisrLyogUmV0dXJuIHdoZXRo ZXIgYSBnaXZlbiByZWdpc3RlciBjbGFzcyBjYW4gaG9sZCBWU1ggb2JqZWN0cy4gICovCisrI2Rl ZmluZSBWU1hfUkVHX0NMQVNTX1AoQ0xBU1MpCQkJXAorKyAgKChDTEFTUykgPT0gVlNYX1JFR1Mg fHwgKENMQVNTKSA9PSBGTE9BVF9SRUdTIHx8IChDTEFTUykgPT0gQUxUSVZFQ19SRUdTKQorKwor IC8qIEdpdmVuIGFuIHJ0eCBYIGJlaW5nIHJlbG9hZGVkIGludG8gYSByZWcgcmVxdWlyZWQgdG8g YmUKKyAgICBpbiBjbGFzcyBDTEFTUywgcmV0dXJuIHRoZSBjbGFzcyBvZiByZWcgdG8gYWN0dWFs bHkgdXNlLgorICAgIEluIGdlbmVyYWwgdGhpcyBpcyBqdXN0IENMQVNTOyBidXQgb24gc29tZSBt YWNoaW5lcworQEAgLTEyMTMsMTMgKzEzNTMsNyBAQCBlbnVtIHJlZ19jbGFzcworICAqLworIAor ICNkZWZpbmUgUFJFRkVSUkVEX1JFTE9BRF9DTEFTUyhYLENMQVNTKQkJCVwKKy0gICgoQ09OU1RB TlRfUCAoWCkJCQkJCVwKKy0gICAgJiYgcmVnX2NsYXNzZXNfaW50ZXJzZWN0X3AgKChDTEFTUyks IEZMT0FUX1JFR1MpKQlcCistICAgPyBOT19SRUdTIAkJCQkJCVwKKy0gICA6IChHRVRfTU9ERV9D TEFTUyAoR0VUX01PREUgKFgpKSA9PSBNT0RFX0lOVCAJXAorLSAgICAgICYmIChDTEFTUykgPT0g Tk9OX1NQRUNJQUxfUkVHUykJCQlcCistICAgPyBHRU5FUkFMX1JFR1MJCQkJCVwKKy0gICA6IChD TEFTUykpCisrICByczYwMDBfcHJlZmVycmVkX3JlbG9hZF9jbGFzcyAoWCwgQ0xBU1MpCisgCisg LyogUmV0dXJuIHRoZSByZWdpc3RlciBjbGFzcyBvZiBhIHNjcmF0Y2ggcmVnaXN0ZXIgbmVlZGVk IHRvIGNvcHkgSU4gaW50bworICAgIG9yIG91dCBvZiBhIHJlZ2lzdGVyIGluIENMQVNTIGluIE1P REUuICBJZiBpdCBjYW4gYmUgZG9uZSBkaXJlY3RseSwKK0BAIC0xMjM0LDE4ICsxMzY4LDcgQEAg ZW51bSByZWdfY2xhc3MKKyAgICBhcmUgYXZhaWxhYmxlLiovCisgCisgI2RlZmluZSBTRUNPTkRB UllfTUVNT1JZX05FRURFRChDTEFTUzEsQ0xBU1MyLE1PREUpCQkJXAorLSAoKENMQVNTMSkgIT0g KENMQVNTMikgJiYgKCgoQ0xBU1MxKSA9PSBGTE9BVF9SRUdTCQkJXAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmJiAoIVRBUkdFVF9NRlBHUFIgfHwgIVRBUkdFVF9QT1dFUlBDNjQJXAor LQkJCQl8fCAoKE1PREUgIT0gREZtb2RlKQkJCVwKKy0JCQkJICAgICYmIChNT0RFICE9IEREbW9k ZSkJCQlcCistCQkJCSAgICAmJiAoTU9ERSAhPSBESW1vZGUpKSkpCQlcCistCQkJICAgfHwgKChD TEFTUzIpID09IEZMT0FUX1JFR1MJCQlcCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICYmICghVEFSR0VUX01GUEdQUiB8fCAhVEFSR0VUX1BPV0VSUEM2NAlcCistCQkJCSAgIHx8ICgo TU9ERSAhPSBERm1vZGUpCQkJXAorLQkJCQkgICAgICAgJiYgKE1PREUgIT0gRERtb2RlKQkJXAor LQkJCQkgICAgICAgJiYgKE1PREUgIT0gREltb2RlKSkpKQkJXAorLQkJCSAgIHx8IChDTEFTUzEp ID09IEFMVElWRUNfUkVHUwkJCVwKKy0JCQkgICB8fCAoQ0xBU1MyKSA9PSBBTFRJVkVDX1JFR1Mp KQorKyAgcnM2MDAwX3NlY29uZGFyeV9tZW1vcnlfbmVlZGVkIChDTEFTUzEsIENMQVNTMiwgTU9E RSkKKyAKKyAvKiBGb3IgY3B1cyB0aGF0IGNhbm5vdCBsb2FkL3N0b3JlIFNEbW9kZSB2YWx1ZXMg ZnJvbSB0aGUgNjQtYml0CisgICAgRlAgcmVnaXN0ZXJzIHdpdGhvdXQgdXNpbmcgYSBmdWxsIDY0 LWJpdCBsb2FkL3N0b3JlLCB3ZSBuZWVkCitAQCAtMTI1NywzMiArMTM4MCwxNSBAQCBlbnVtIHJl Z19jbGFzcworIC8qIFJldHVybiB0aGUgbWF4aW11bSBudW1iZXIgb2YgY29uc2VjdXRpdmUgcmVn aXN0ZXJzCisgICAgbmVlZGVkIHRvIHJlcHJlc2VudCBtb2RlIE1PREUgaW4gYSByZWdpc3RlciBv ZiBjbGFzcyBDTEFTUy4KKyAKKy0gICBPbiBSUy82MDAwLCB0aGlzIGlzIHRoZSBzaXplIG9mIE1P REUgaW4gd29yZHMsCistICAgZXhjZXB0IGluIHRoZSBGUCByZWdzLCB3aGVyZSBhIHNpbmdsZSBy ZWcgaXMgZW5vdWdoIGZvciB0d28gd29yZHMuICAqLworLSNkZWZpbmUgQ0xBU1NfTUFYX05SRUdT KENMQVNTLCBNT0RFKQkJCQkJXAorLSAoKChDTEFTUykgPT0gRkxPQVRfUkVHUykgCQkJCQkJXAor LSAgPyAoKEdFVF9NT0RFX1NJWkUgKE1PREUpICsgVU5JVFNfUEVSX0ZQX1dPUkQgLSAxKSAvIFVO SVRTX1BFUl9GUF9XT1JEKSBcCistICA6IChUQVJHRVRfRTUwMF9ET1VCTEUgJiYgKENMQVNTKSA9 PSBHRU5FUkFMX1JFR1MJCQlcCistICAgICAmJiAoTU9ERSkgPT0gREZtb2RlKQkJCQlcCistICA/ IDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorLSAgOiAoKEdFVF9NT0RFX1NJWkUgKE1PREUpICsgVU5JVFNfUEVSX1dP UkQgLSAxKSAvIFVOSVRTX1BFUl9XT1JEKSkKKysgICBPbiBSUy82MDAwLCB0aGlzIGlzIHRoZSBz aXplIG9mIE1PREUgaW4gd29yZHMsIGV4Y2VwdCBpbiB0aGUgRlAgcmVncywgd2hlcmUKKysgICBh IHNpbmdsZSByZWcgaXMgZW5vdWdoIGZvciB0d28gd29yZHMsIHVubGVzcyB3ZSBoYXZlIFZTWCwg d2hlcmUgdGhlIEZQCisrICAgcmVnaXN0ZXJzIGNhbiBob2xkIDEyOCBiaXRzLiAgKi8KKysjZGVm aW5lIENMQVNTX01BWF9OUkVHUyhDTEFTUywgTU9ERSkgcnM2MDAwX2NsYXNzX21heF9ucmVnc1so TU9ERSldWyhDTEFTUyldCisgCisgLyogUmV0dXJuIG5vbnplcm8gaWYgZm9yIENMQVNTIGEgbW9k ZSBjaGFuZ2UgZnJvbSBGUk9NIHRvIFRPIGlzIGludmFsaWQuICAqLworIAorICNkZWZpbmUgQ0FO Tk9UX0NIQU5HRV9NT0RFX0NMQVNTKEZST00sIFRPLCBDTEFTUykJCQlcCistICAoR0VUX01PREVf U0laRSAoRlJPTSkgIT0gR0VUX01PREVfU0laRSAoVE8pCQkJCVwKKy0gICA/ICgoR0VUX01PREVf U0laRSAoRlJPTSkgPCA4IHx8IEdFVF9NT0RFX1NJWkUgKFRPKSA8IDgJCVwKKy0gICAgICAgfHwg VEFSR0VUX0lFRUVRVUFEKQkJCQkJCVwKKy0gICAgICAmJiByZWdfY2xhc3Nlc19pbnRlcnNlY3Rf cCAoRkxPQVRfUkVHUywgQ0xBU1MpKQkJCVwKKy0gICA6ICgoKFRBUkdFVF9FNTAwX0RPVUJMRQkJ CQkJCVwKKy0JJiYgKCgoKFRPKSA9PSBERm1vZGUpICsgKChGUk9NKSA9PSBERm1vZGUpKSA9PSAx CQlcCistCSAgICB8fCAoKChUTykgPT0gVEZtb2RlKSArICgoRlJPTSkgPT0gVEZtb2RlKSkgPT0g MQkJXAorLQkgICAgfHwgKCgoVE8pID09IEREbW9kZSkgKyAoKEZST00pID09IEREbW9kZSkpID09 IDEJCVwKKy0JICAgIHx8ICgoKFRPKSA9PSBURG1vZGUpICsgKChGUk9NKSA9PSBURG1vZGUpKSA9 PSAxCQlcCistCSAgICB8fCAoKChUTykgPT0gREltb2RlKSArICgoRlJPTSkgPT0gREltb2RlKSkg PT0gMSkpCQlcCistICAgICAgIHx8IChUQVJHRVRfU1BFCQkJCQkJCVwKKy0JICAgJiYgKFNQRV9W RUNUT1JfTU9ERSAoRlJPTSkgKyBTUEVfVkVDVE9SX01PREUgKFRPKSkgPT0gMSkpCVwKKy0gICAg ICAmJiByZWdfY2xhc3Nlc19pbnRlcnNlY3RfcCAoR0VORVJBTF9SRUdTLCBDTEFTUykpKQorKyAg cnM2MDAwX2Nhbm5vdF9jaGFuZ2VfbW9kZV9jbGFzcyAoRlJPTSwgVE8sIENMQVNTKQorIAorIC8q IFN0YWNrIGxheW91dDsgZnVuY3Rpb24gZW50cnksIGV4aXQgYW5kIGNhbGxpbmcuICAqLworIAor QEAgLTEzNDMsOCArMTQ0OSw4IEBAIGV4dGVybiBlbnVtIHJzNjAwMF9hYmkgcnM2MDAwX2N1cnJl bnRfYWIKKyAjZGVmaW5lIFNUQVJUSU5HX0ZSQU1FX09GRlNFVAkJCQkJCVwKKyAgIChGUkFNRV9H Uk9XU19ET1dOV0FSRAkJCQkJCQlcCisgICAgPyAwCQkJCQkJCQkJXAorLSAgIDogKFJTNjAwMF9B TElHTiAoY3J0bC0+b3V0Z29pbmdfYXJnc19zaXplLAkJXAorLQkJICAgIFRBUkdFVF9BTFRJVkVD ID8gMTYgOiA4KQkJCQlcCisrICAgOiAoUlM2MDAwX0FMSUdOIChjcnRsLT5vdXRnb2luZ19hcmdz X3NpemUsCQkJCVwKKysJCSAgICAoVEFSR0VUX0FMVElWRUMgfHwgVEFSR0VUX1ZTWCkgPyAxNiA6 IDgpCQlcCisgICAgICAgKyBSUzYwMDBfU0FWRV9BUkVBKSkKKyAKKyAvKiBPZmZzZXQgZnJvbSB0 aGUgc3RhY2sgcG9pbnRlciByZWdpc3RlciB0byBhbiBpdGVtIGR5bmFtaWNhbGx5CitAQCAtMTM1 NCw4ICsxNDYwLDggQEAgZXh0ZXJuIGVudW0gcnM2MDAwX2FiaSByczYwMDBfY3VycmVudF9hYgor ICAgIGxlbmd0aCBvZiB0aGUgb3V0Z29pbmcgYXJndW1lbnRzLiAgVGhlIGRlZmF1bHQgaXMgY29y cmVjdCBmb3IgbW9zdAorICAgIG1hY2hpbmVzLiAgU2VlIGBmdW5jdGlvbi5jJyBmb3IgZGV0YWls cy4gICovCisgI2RlZmluZSBTVEFDS19EWU5BTUlDX09GRlNFVChGVU5ERUNMKQkJCQkJXAorLSAg KFJTNjAwMF9BTElHTiAoY3J0bC0+b3V0Z29pbmdfYXJnc19zaXplLAkJCVwKKy0JCSBUQVJHRVRf QUxUSVZFQyA/IDE2IDogOCkJCQkJXAorKyAgKFJTNjAwMF9BTElHTiAoY3J0bC0+b3V0Z29pbmdf YXJnc19zaXplLAkJCQlcCisrCQkgKFRBUkdFVF9BTFRJVkVDIHx8IFRBUkdFVF9WU1gpID8gMTYg OiA4KQkJXAorICAgICsgKFNUQUNLX1BPSU5URVJfT0ZGU0VUKSkKKyAKKyAvKiBJZiB3ZSBnZW5l cmF0ZSBhbiBpbnNuIHRvIHB1c2ggQllURVMgYnl0ZXMsCitAQCAtMTYwNSw3ICsxNzExLDcgQEAg dHlwZWRlZiBzdHJ1Y3QgcnM2MDAwX2FyZ3MKKyAjZGVmaW5lCUVQSUxPR1VFX1VTRVMoUkVHTk8p CQkJCQlcCisgICAoKHJlbG9hZF9jb21wbGV0ZWQgJiYgKFJFR05PKSA9PSBMUl9SRUdOTykJCQlc CisgICAgfHwgKFRBUkdFVF9BTFRJVkVDICYmIChSRUdOTykgPT0gVlJTQVZFX1JFR05PKQkJXAor LSAgIHx8IChjcnRsLT5jYWxsc19laF9yZXR1cm4JCQkJXAorKyAgIHx8IChjcnRsLT5jYWxsc19l aF9yZXR1cm4JCQkJCVwKKyAgICAgICAgJiYgVEFSR0VUX0FJWAkJCQkJCVwKKyAgICAgICAgJiYg KFJFR05PKSA9PSAyKSkKKyAKK0BAIC0yMzE2LDcgKzI0MjIsMjQgQEAgZXh0ZXJuIGNoYXIgcnM2 MDAwX3JlZ19uYW1lc1tdWzhdOwkvKiByZQorICAgLyogbm8gYWRkaXRpb25hbCBuYW1lcyBmb3I6 IG1xLCBsciwgY3RyLCBhcCAqLwkJXAorICAgeyJjcjAiLCAgNjh9LCB7ImNyMSIsICA2OX0sIHsi Y3IyIiwgIDcwfSwgeyJjcjMiLCAgNzF9LAlcCisgICB7ImNyNCIsICA3Mn0sIHsiY3I1IiwgIDcz fSwgeyJjcjYiLCAgNzR9LCB7ImNyNyIsICA3NX0sCVwKKy0gIHsiY2MiLCAgIDY4fSwgeyJzcCIs ICAgIDF9LCB7InRvYyIsICAgMn0gfQorKyAgeyJjYyIsICAgNjh9LCB7InNwIiwgICAgMX0sIHsi dG9jIiwgICAyfSwJCQlcCisrICAvKiBWU1ggcmVnaXN0ZXJzIG92ZXJsYWlkIG9uIHRvcCBvZiBG UiwgQWx0aXZlYyByZWdpc3RlcnMgKi8JXAorKyAgeyJ2czAiLCAgMzJ9LCB7InZzMSIsICAzM30s IHsidnMyIiwgIDM0fSwgeyJ2czMiLCAgMzV9LAlcCisrICB7InZzNCIsICAzNn0sIHsidnM1Iiwg IDM3fSwgeyJ2czYiLCAgMzh9LCB7InZzNyIsICAzOX0sCVwKKysgIHsidnM4IiwgIDQwfSwgeyJ2 czkiLCAgNDF9LCB7InZzMTAiLCA0Mn0sIHsidnMxMSIsIDQzfSwJXAorKyAgeyJ2czEyIiwgNDR9 LCB7InZzMTMiLCA0NX0sIHsidnMxNCIsIDQ2fSwgeyJ2czE1IiwgNDd9LAlcCisrICB7InZzMTYi LCA0OH0sIHsidnMxNyIsIDQ5fSwgeyJ2czE4IiwgNTB9LCB7InZzMTkiLCA1MX0sCVwKKysgIHsi dnMyMCIsIDUyfSwgeyJ2czIxIiwgNTN9LCB7InZzMjIiLCA1NH0sIHsidnMyMyIsIDU1fSwJXAor KyAgeyJ2czI0IiwgNTZ9LCB7InZzMjUiLCA1N30sIHsidnMyNiIsIDU4fSwgeyJ2czI3IiwgNTl9 LAlcCisrICB7InZzMjgiLCA2MH0sIHsidnMyOSIsIDYxfSwgeyJ2czMwIiwgNjJ9LCB7InZzMzEi LCA2M30sCVwKKysgIHsidnMzMiIsIDc3fSwgeyJ2czMzIiwgNzh9LCB7InZzMzQiLCA3OX0sIHsi dnMzNSIsIDgwfSwgICAgICAgXAorKyAgeyJ2czM2IiwgODF9LCB7InZzMzciLCA4Mn0sIHsidnMz OCIsIDgzfSwgeyJ2czM5IiwgODR9LCAgICAgICBcCisrICB7InZzNDAiLCA4NX0sIHsidnM0MSIs IDg2fSwgeyJ2czQyIiwgODd9LCB7InZzNDMiLCA4OH0sICAgICAgIFwKKysgIHsidnM0NCIsIDg5 fSwgeyJ2czQ1IiwgOTB9LCB7InZzNDYiLCA5MX0sIHsidnM0NyIsIDkyfSwgICAgICAgXAorKyAg eyJ2czQ4IiwgOTN9LCB7InZzNDkiLCA5NH0sIHsidnM1MCIsIDk1fSwgeyJ2czUxIiwgOTZ9LCAg ICAgICBcCisrICB7InZzNTIiLCA5N30sIHsidnM1MyIsIDk4fSwgeyJ2czU0IiwgOTl9LCB7InZz NTUiLCAxMDB9LAlcCisrICB7InZzNTYiLCAxMDF9LHsidnM1NyIsIDEwMn0seyJ2czU4IiwgMTAz fSx7InZzNTkiLCAxMDR9LCAgICAgIFwKKysgIHsidnM2MCIsIDEwNX0seyJ2czYxIiwgMTA2fSx7 InZzNjIiLCAxMDd9LHsidnM2MyIsIDEwOH0gfQorIAorIC8qIFRleHQgdG8gd3JpdGUgb3V0IGFm dGVyIGEgQ0FMTCB0aGF0IG1heSBiZSByZXBsYWNlZCBieSBnbHVlIGNvZGUgYnkKKyAgICB0aGUg bG9hZGVyLiAgVGhpcyBkZXBlbmRzIG9uIHRoZSBBSVggdmVyc2lvbi4gICovCitAQCAtMjQ4MCwx MCArMjYwMywxNCBAQCBlbnVtIHJzNjAwMF9idWlsdGlucworICAgQUxUSVZFQ19CVUlMVElOX1ZT RUxfNFNGLAorICAgQUxUSVZFQ19CVUlMVElOX1ZTRUxfOEhJLAorICAgQUxUSVZFQ19CVUlMVElO X1ZTRUxfMTZRSSwKKysgIEFMVElWRUNfQlVJTFRJTl9WU0VMXzJERiwJCS8qIG5lZWRlZCBmb3Ig VlNYICovCisrICBBTFRJVkVDX0JVSUxUSU5fVlNFTF8yREksCQkvKiBuZWVkZWQgZm9yIFZTWCAq LworICAgQUxUSVZFQ19CVUlMVElOX1ZQRVJNXzRTSSwKKyAgIEFMVElWRUNfQlVJTFRJTl9WUEVS TV80U0YsCisgICBBTFRJVkVDX0JVSUxUSU5fVlBFUk1fOEhJLAorICAgQUxUSVZFQ19CVUlMVElO X1ZQRVJNXzE2UUksCisrICBBTFRJVkVDX0JVSUxUSU5fVlBFUk1fMkRGLAkJLyogbmVlZGVkIGZv ciBWU1ggKi8KKysgIEFMVElWRUNfQlVJTFRJTl9WUEVSTV8yREksCQkvKiBuZWVkZWQgZm9yIFZT WCAqLworICAgQUxUSVZFQ19CVUlMVElOX1ZQS1VIVU0sCisgICBBTFRJVkVDX0JVSUxUSU5fVlBL VVdVTSwKKyAgIEFMVElWRUNfQlVJTFRJTl9WUEtQWCwKK0BAIC0zMTEwLDYgKzMyMzcsMTYzIEBA IGVudW0gcnM2MDAwX2J1aWx0aW5zCisgICBSUzYwMDBfQlVJTFRJTl9SRUNJUEYsCisgICBSUzYw MDBfQlVJTFRJTl9SU1FSVEYsCisgCisrICAvKiBWU1ggYnVpbHRpbnMuICAqLworKyAgVlNYX0JV SUxUSU5fTFhTRFVYLAorKyAgVlNYX0JVSUxUSU5fTFhTRFgsCisrICBWU1hfQlVJTFRJTl9MWFZE MlVYLAorKyAgVlNYX0JVSUxUSU5fTFhWRDJYLAorKyAgVlNYX0JVSUxUSU5fTFhWRFNYLAorKyAg VlNYX0JVSUxUSU5fTFhWVzRVWCwKKysgIFZTWF9CVUlMVElOX0xYVlc0WCwKKysgIFZTWF9CVUlM VElOX1NUWFNEVVgsCisrICBWU1hfQlVJTFRJTl9TVFhTRFgsCisrICBWU1hfQlVJTFRJTl9TVFhW RDJVWCwKKysgIFZTWF9CVUlMVElOX1NUWFZEMlgsCisrICBWU1hfQlVJTFRJTl9TVFhWVzRVWCwK KysgIFZTWF9CVUlMVElOX1NUWFZXNFgsCisrICBWU1hfQlVJTFRJTl9YU0FCU0RQLAorKyAgVlNY X0JVSUxUSU5fWFNBREREUCwKKysgIFZTWF9CVUlMVElOX1hTQ01QT0RQLAorKyAgVlNYX0JVSUxU SU5fWFNDTVBVRFAsCisrICBWU1hfQlVJTFRJTl9YU0NQU0dORFAsCisrICBWU1hfQlVJTFRJTl9Y U0NWRFBTUCwKKysgIFZTWF9CVUlMVElOX1hTQ1ZEUFNYRFMsCisrICBWU1hfQlVJTFRJTl9YU0NW RFBTWFdTLAorKyAgVlNYX0JVSUxUSU5fWFNDVkRQVVhEUywKKysgIFZTWF9CVUlMVElOX1hTQ1ZE UFVYV1MsCisrICBWU1hfQlVJTFRJTl9YU0NWU1BEUCwKKysgIFZTWF9CVUlMVElOX1hTQ1ZTWERE UCwKKysgIFZTWF9CVUlMVElOX1hTQ1ZVWEREUCwKKysgIFZTWF9CVUlMVElOX1hTRElWRFAsCisr ICBWU1hfQlVJTFRJTl9YU01BRERBRFAsCisrICBWU1hfQlVJTFRJTl9YU01BRERNRFAsCisrICBW U1hfQlVJTFRJTl9YU01BWERQLAorKyAgVlNYX0JVSUxUSU5fWFNNSU5EUCwKKysgIFZTWF9CVUlM VElOX1hTTU9WRFAsCisrICBWU1hfQlVJTFRJTl9YU01TVUJBRFAsCisrICBWU1hfQlVJTFRJTl9Y U01TVUJNRFAsCisrICBWU1hfQlVJTFRJTl9YU01VTERQLAorKyAgVlNYX0JVSUxUSU5fWFNOQUJT RFAsCisrICBWU1hfQlVJTFRJTl9YU05FR0RQLAorKyAgVlNYX0JVSUxUSU5fWFNOTUFEREFEUCwK KysgIFZTWF9CVUlMVElOX1hTTk1BRERNRFAsCisrICBWU1hfQlVJTFRJTl9YU05NU1VCQURQLAor KyAgVlNYX0JVSUxUSU5fWFNOTVNVQk1EUCwKKysgIFZTWF9CVUlMVElOX1hTUkRQSSwKKysgIFZT WF9CVUlMVElOX1hTUkRQSUMsCisrICBWU1hfQlVJTFRJTl9YU1JEUElNLAorKyAgVlNYX0JVSUxU SU5fWFNSRFBJUCwKKysgIFZTWF9CVUlMVElOX1hTUkRQSVosCisrICBWU1hfQlVJTFRJTl9YU1JF RFAsCisrICBWU1hfQlVJTFRJTl9YU1JTUVJURURQLAorKyAgVlNYX0JVSUxUSU5fWFNTUVJURFAs CisrICBWU1hfQlVJTFRJTl9YU1NVQkRQLAorKyAgVlNYX0JVSUxUSU5fWFNURElWRFAsCisrICBW U1hfQlVJTFRJTl9YU1RTUVJURFAsCisrICBWU1hfQlVJTFRJTl9YVkFCU0RQLAorKyAgVlNYX0JV SUxUSU5fWFZBQlNTUCwKKysgIFZTWF9CVUlMVElOX1hWQURERFAsCisrICBWU1hfQlVJTFRJTl9Y VkFERFNQLAorKyAgVlNYX0JVSUxUSU5fWFZDTVBFUURQLAorKyAgVlNYX0JVSUxUSU5fWFZDTVBF UVNQLAorKyAgVlNYX0JVSUxUSU5fWFZDTVBHRURQLAorKyAgVlNYX0JVSUxUSU5fWFZDTVBHRVNQ LAorKyAgVlNYX0JVSUxUSU5fWFZDTVBHVERQLAorKyAgVlNYX0JVSUxUSU5fWFZDTVBHVFNQLAor KyAgVlNYX0JVSUxUSU5fWFZDUFNHTkRQLAorKyAgVlNYX0JVSUxUSU5fWFZDUFNHTlNQLAorKyAg VlNYX0JVSUxUSU5fWFZDVkRQU1AsCisrICBWU1hfQlVJTFRJTl9YVkNWRFBTWERTLAorKyAgVlNY X0JVSUxUSU5fWFZDVkRQU1hXUywKKysgIFZTWF9CVUlMVElOX1hWQ1ZEUFVYRFMsCisrICBWU1hf QlVJTFRJTl9YVkNWRFBVWFdTLAorKyAgVlNYX0JVSUxUSU5fWFZDVlNQRFAsCisrICBWU1hfQlVJ TFRJTl9YVkNWU1BTWERTLAorKyAgVlNYX0JVSUxUSU5fWFZDVlNQU1hXUywKKysgIFZTWF9CVUlM VElOX1hWQ1ZTUFVYRFMsCisrICBWU1hfQlVJTFRJTl9YVkNWU1BVWFdTLAorKyAgVlNYX0JVSUxU SU5fWFZDVlNYRERQLAorKyAgVlNYX0JVSUxUSU5fWFZDVlNYRFNQLAorKyAgVlNYX0JVSUxUSU5f WFZDVlNYV0RQLAorKyAgVlNYX0JVSUxUSU5fWFZDVlNYV1NQLAorKyAgVlNYX0JVSUxUSU5fWFZD VlVYRERQLAorKyAgVlNYX0JVSUxUSU5fWFZDVlVYRFNQLAorKyAgVlNYX0JVSUxUSU5fWFZDVlVY V0RQLAorKyAgVlNYX0JVSUxUSU5fWFZDVlVYV1NQLAorKyAgVlNYX0JVSUxUSU5fWFZESVZEUCwK KysgIFZTWF9CVUlMVElOX1hWRElWU1AsCisrICBWU1hfQlVJTFRJTl9YVk1BRERBRFAsCisrICBW U1hfQlVJTFRJTl9YVk1BRERBU1AsCisrICBWU1hfQlVJTFRJTl9YVk1BRERNRFAsCisrICBWU1hf QlVJTFRJTl9YVk1BRERNU1AsCisrICBWU1hfQlVJTFRJTl9YVk1BWERQLAorKyAgVlNYX0JVSUxU SU5fWFZNQVhTUCwKKysgIFZTWF9CVUlMVElOX1hWTUlORFAsCisrICBWU1hfQlVJTFRJTl9YVk1J TlNQLAorKyAgVlNYX0JVSUxUSU5fWFZNT1ZEUCwKKysgIFZTWF9CVUlMVElOX1hWTU9WU1AsCisr ICBWU1hfQlVJTFRJTl9YVk1TVUJBRFAsCisrICBWU1hfQlVJTFRJTl9YVk1TVUJBU1AsCisrICBW U1hfQlVJTFRJTl9YVk1TVUJNRFAsCisrICBWU1hfQlVJTFRJTl9YVk1TVUJNU1AsCisrICBWU1hf QlVJTFRJTl9YVk1VTERQLAorKyAgVlNYX0JVSUxUSU5fWFZNVUxTUCwKKysgIFZTWF9CVUlMVElO X1hWTkFCU0RQLAorKyAgVlNYX0JVSUxUSU5fWFZOQUJTU1AsCisrICBWU1hfQlVJTFRJTl9YVk5F R0RQLAorKyAgVlNYX0JVSUxUSU5fWFZORUdTUCwKKysgIFZTWF9CVUlMVElOX1hWTk1BRERBRFAs CisrICBWU1hfQlVJTFRJTl9YVk5NQUREQVNQLAorKyAgVlNYX0JVSUxUSU5fWFZOTUFERE1EUCwK KysgIFZTWF9CVUlMVElOX1hWTk1BRERNU1AsCisrICBWU1hfQlVJTFRJTl9YVk5NU1VCQURQLAor KyAgVlNYX0JVSUxUSU5fWFZOTVNVQkFTUCwKKysgIFZTWF9CVUlMVElOX1hWTk1TVUJNRFAsCisr ICBWU1hfQlVJTFRJTl9YVk5NU1VCTVNQLAorKyAgVlNYX0JVSUxUSU5fWFZSRFBJLAorKyAgVlNY X0JVSUxUSU5fWFZSRFBJQywKKysgIFZTWF9CVUlMVElOX1hWUkRQSU0sCisrICBWU1hfQlVJTFRJ Tl9YVlJEUElQLAorKyAgVlNYX0JVSUxUSU5fWFZSRFBJWiwKKysgIFZTWF9CVUlMVElOX1hWUkVE UCwKKysgIFZTWF9CVUlMVElOX1hWUkVTUCwKKysgIFZTWF9CVUlMVElOX1hWUlNQSSwKKysgIFZT WF9CVUlMVElOX1hWUlNQSUMsCisrICBWU1hfQlVJTFRJTl9YVlJTUElNLAorKyAgVlNYX0JVSUxU SU5fWFZSU1BJUCwKKysgIFZTWF9CVUlMVElOX1hWUlNQSVosCisrICBWU1hfQlVJTFRJTl9YVlJT UVJURURQLAorKyAgVlNYX0JVSUxUSU5fWFZSU1FSVEVTUCwKKysgIFZTWF9CVUlMVElOX1hWU1FS VERQLAorKyAgVlNYX0JVSUxUSU5fWFZTUVJUU1AsCisrICBWU1hfQlVJTFRJTl9YVlNVQkRQLAor KyAgVlNYX0JVSUxUSU5fWFZTVUJTUCwKKysgIFZTWF9CVUlMVElOX1hWVERJVkRQLAorKyAgVlNY X0JVSUxUSU5fWFZURElWU1AsCisrICBWU1hfQlVJTFRJTl9YVlRTUVJURFAsCisrICBWU1hfQlVJ TFRJTl9YVlRTUVJUU1AsCisrICBWU1hfQlVJTFRJTl9YWExBTkQsCisrICBWU1hfQlVJTFRJTl9Y WExBTkRDLAorKyAgVlNYX0JVSUxUSU5fWFhMTk9SLAorKyAgVlNYX0JVSUxUSU5fWFhMT1IsCisr ICBWU1hfQlVJTFRJTl9YWExYT1IsCisrICBWU1hfQlVJTFRJTl9YWE1SR0hELAorKyAgVlNYX0JV SUxUSU5fWFhNUkdIVywKKysgIFZTWF9CVUlMVElOX1hYTVJHTEQsCisrICBWU1hfQlVJTFRJTl9Y WE1SR0xXLAorKyAgVlNYX0JVSUxUSU5fWFhQRVJNREksCisrICBWU1hfQlVJTFRJTl9YWFNFTCwK KysgIFZTWF9CVUlMVElOX1hYU0xEV0ksCisrICBWU1hfQlVJTFRJTl9YWFNQTFRELAorKyAgVlNY X0JVSUxUSU5fWFhTUExUVywKKysgIFZTWF9CVUlMVElOX1hYU1dBUEQsCisrCisrICAvKiBDb21i aW5lIFZTWC9BbHRpdmVjIGJ1aWx0aW5zLiAgKi8KKysgIFZFQ1RPUl9CVUlMVElOX0ZMT0FUX1Y0 U0lfVjRTRiwKKysgIFZFQ1RPUl9CVUlMVElOX1VOU0ZMT0FUX1Y0U0lfVjRTRiwKKysgIFZFQ1RP Ul9CVUlMVElOX0ZJWF9WNFNGX1Y0U0ksCisrICBWRUNUT1JfQlVJTFRJTl9GSVhVTlNfVjRTRl9W NFNJLAorKworICAgUlM2MDAwX0JVSUxUSU5fQ09VTlQKKyB9OworIAorQEAgLTMxMjMsNiArMzQw Nyw4IEBAIGVudW0gcnM2MDAwX2J1aWx0aW5fdHlwZV9pbmRleAorICAgUlM2MDAwX0JUSV9WMTZR SSwKKyAgIFJTNjAwMF9CVElfVjJTSSwKKyAgIFJTNjAwMF9CVElfVjJTRiwKKysgIFJTNjAwMF9C VElfVjJESSwKKysgIFJTNjAwMF9CVElfVjJERiwKKyAgIFJTNjAwMF9CVElfVjRISSwKKyAgIFJT NjAwMF9CVElfVjRTSSwKKyAgIFJTNjAwMF9CVElfVjRTRiwKK0BAIC0zMTQ2LDcgKzM0MzIsMTAg QEAgZW51bSByczYwMDBfYnVpbHRpbl90eXBlX2luZGV4CisgICBSUzYwMDBfQlRJX1VJTlRISSwJ CSAvKiB1bnNpZ25lZF9pbnRISV90eXBlX25vZGUgKi8KKyAgIFJTNjAwMF9CVElfSU5UU0ksCQkg LyogaW50U0lfdHlwZV9ub2RlICovCisgICBSUzYwMDBfQlRJX1VJTlRTSSwJCSAvKiB1bnNpZ25l ZF9pbnRTSV90eXBlX25vZGUgKi8KKysgIFJTNjAwMF9CVElfSU5UREksCQkgLyogaW50RElfdHlw ZV9ub2RlICovCisrICBSUzYwMDBfQlRJX1VJTlRESSwJCSAvKiB1bnNpZ25lZF9pbnRESV90eXBl X25vZGUgKi8KKyAgIFJTNjAwMF9CVElfZmxvYXQsCSAgICAgICAgIC8qIGZsb2F0X3R5cGVfbm9k ZSAqLworKyAgUlM2MDAwX0JUSV9kb3VibGUsCSAgICAgICAgIC8qIGRvdWJsZV90eXBlX25vZGUg Ki8KKyAgIFJTNjAwMF9CVElfdm9pZCwJICAgICAgICAgLyogdm9pZF90eXBlX25vZGUgKi8KKyAg IFJTNjAwMF9CVElfTUFYCisgfTsKK0BAIC0zMTU3LDYgKzM0NDYsOCBAQCBlbnVtIHJzNjAwMF9i dWlsdGluX3R5cGVfaW5kZXgKKyAjZGVmaW5lIG9wYXF1ZV9wX1YyU0lfdHlwZV9ub2RlICAgICAg IChyczYwMDBfYnVpbHRpbl90eXBlc1tSUzYwMDBfQlRJX29wYXF1ZV9wX1YyU0ldKQorICNkZWZp bmUgb3BhcXVlX1Y0U0lfdHlwZV9ub2RlICAgICAgICAgKHJzNjAwMF9idWlsdGluX3R5cGVzW1JT NjAwMF9CVElfb3BhcXVlX1Y0U0ldKQorICNkZWZpbmUgVjE2UUlfdHlwZV9ub2RlICAgICAgICAg ICAgICAgKHJzNjAwMF9idWlsdGluX3R5cGVzW1JTNjAwMF9CVElfVjE2UUldKQorKyNkZWZpbmUg VjJESV90eXBlX25vZGUgICAgICAgICAgICAgICAgKHJzNjAwMF9idWlsdGluX3R5cGVzW1JTNjAw MF9CVElfVjJESV0pCisrI2RlZmluZSBWMkRGX3R5cGVfbm9kZSAgICAgICAgICAgICAgICAocnM2 MDAwX2J1aWx0aW5fdHlwZXNbUlM2MDAwX0JUSV9WMkRGXSkKKyAjZGVmaW5lIFYyU0lfdHlwZV9u b2RlICAgICAgICAgICAgICAgIChyczYwMDBfYnVpbHRpbl90eXBlc1tSUzYwMDBfQlRJX1YyU0ld KQorICNkZWZpbmUgVjJTRl90eXBlX25vZGUgICAgICAgICAgICAgICAgKHJzNjAwMF9idWlsdGlu X3R5cGVzW1JTNjAwMF9CVElfVjJTRl0pCisgI2RlZmluZSBWNEhJX3R5cGVfbm9kZSAgICAgICAg ICAgICAgICAocnM2MDAwX2J1aWx0aW5fdHlwZXNbUlM2MDAwX0JUSV9WNEhJXSkKK0BAIC0zMTgz LDcgKzM0NzQsMTAgQEAgZW51bSByczYwMDBfYnVpbHRpbl90eXBlX2luZGV4CisgI2RlZmluZSB1 aW50SElfdHlwZV9pbnRlcm5hbF9ub2RlCSAocnM2MDAwX2J1aWx0aW5fdHlwZXNbUlM2MDAwX0JU SV9VSU5USEldKQorICNkZWZpbmUgaW50U0lfdHlwZV9pbnRlcm5hbF9ub2RlCSAocnM2MDAwX2J1 aWx0aW5fdHlwZXNbUlM2MDAwX0JUSV9JTlRTSV0pCisgI2RlZmluZSB1aW50U0lfdHlwZV9pbnRl cm5hbF9ub2RlCSAocnM2MDAwX2J1aWx0aW5fdHlwZXNbUlM2MDAwX0JUSV9VSU5UU0ldKQorKyNk ZWZpbmUgaW50RElfdHlwZV9pbnRlcm5hbF9ub2RlCSAocnM2MDAwX2J1aWx0aW5fdHlwZXNbUlM2 MDAwX0JUSV9JTlRESV0pCisrI2RlZmluZSB1aW50RElfdHlwZV9pbnRlcm5hbF9ub2RlCSAocnM2 MDAwX2J1aWx0aW5fdHlwZXNbUlM2MDAwX0JUSV9VSU5UREldKQorICNkZWZpbmUgZmxvYXRfdHlw ZV9pbnRlcm5hbF9ub2RlCSAocnM2MDAwX2J1aWx0aW5fdHlwZXNbUlM2MDAwX0JUSV9mbG9hdF0p CisrI2RlZmluZSBkb3VibGVfdHlwZV9pbnRlcm5hbF9ub2RlCSAocnM2MDAwX2J1aWx0aW5fdHlw ZXNbUlM2MDAwX0JUSV9kb3VibGVdKQorICNkZWZpbmUgdm9pZF90eXBlX2ludGVybmFsX25vZGUJ CSAocnM2MDAwX2J1aWx0aW5fdHlwZXNbUlM2MDAwX0JUSV92b2lkXSkKKyAKKyBleHRlcm4gR1RZ KCgpKSB0cmVlIHJzNjAwMF9idWlsdGluX3R5cGVzW1JTNjAwMF9CVElfTUFYXTsKKy0tLSBnY2Mv Y29uZmlnL3JzNjAwMC9hbHRpdmVjLm1kCSguLi4vdHJ1bmspCShyZXZpc2lvbiAxNDQ1NTcpCisr KysgZ2NjL2NvbmZpZy9yczYwMDAvYWx0aXZlYy5tZAkoLi4uL2JyYW5jaGVzL2libS9wb3dlcjct bWVpc3NuZXIpCShyZXZpc2lvbiAxNDQ2OTIpCitAQCAtMjEsMTggKzIxLDcgQEAKKyAKKyAoZGVm aW5lX2NvbnN0YW50cworICAgWyhVTlNQRUNfVkNNUEJGUCAgICAgICA1MCkKKy0gICAoVU5TUEVD X1ZDTVBFUVVCICAgICAgNTEpCistICAgKFVOU1BFQ19WQ01QRVFVSCAgICAgIDUyKQorLSAgIChV TlNQRUNfVkNNUEVRVVcgICAgICA1MykKKy0gICAoVU5TUEVDX1ZDTVBFUUZQICAgICAgNTQpCist ICAgKFVOU1BFQ19WQ01QR0VGUCAgICAgIDU1KQorLSAgIChVTlNQRUNfVkNNUEdUVUIgICAgICA1 NikKKy0gICAoVU5TUEVDX1ZDTVBHVFNCICAgICAgNTcpCistICAgKFVOU1BFQ19WQ01QR1RVSCAg ICAgIDU4KQorLSAgIChVTlNQRUNfVkNNUEdUU0ggICAgICA1OSkKKy0gICAoVU5TUEVDX1ZDTVBH VFVXICAgICAgNjApCistICAgKFVOU1BFQ19WQ01QR1RTVyAgICAgIDYxKQorLSAgIChVTlNQRUNf VkNNUEdURlAgICAgICA2MikKKysgICA7OyA1MS02MiBkZWxldGVkCisgICAgKFVOU1BFQ19WTVNV TVUgICAgICAgIDY1KQorICAgIChVTlNQRUNfVk1TVU1NICAgICAgICA2NikKKyAgICAoVU5TUEVD X1ZNU1VNU0hNICAgICAgNjgpCitAQCAtODcsMTAgKzc2LDcgQEAgKGRlZmluZV9jb25zdGFudHMK KyAgICAoVU5TUEVDX1ZFWFBURUZQICAgICAxNTYpCisgICAgKFVOU1BFQ19WUlNRUlRFRlAgICAg MTU3KQorICAgIChVTlNQRUNfVlJFRlAgICAgICAgIDE1OCkKKy0gICAoVU5TUEVDX1ZTRUw0U0kg ICAgICAxNTkpCistICAgKFVOU1BFQ19WU0VMNFNGICAgICAgMTYwKQorLSAgIChVTlNQRUNfVlNF TDhISSAgICAgIDE2MSkKKy0gICAoVU5TUEVDX1ZTRUwxNlFJICAgICAxNjIpCisrICAgOzsgMTU5 LTE2MiBkZWxldGVkCisgICAgKFVOU1BFQ19WTFNET0kgICAgICAgMTYzKQorICAgIChVTlNQRUNf VlVQS0hTQiAgICAgIDE2NykKKyAgICAoVU5TUEVDX1ZVUEtIUFggICAgICAxNjgpCitAQCAtMTI1 LDExICsxMTEsMTEgQEAgKGRlZmluZV9jb25zdGFudHMKKyAgICAoVU5TUEVDX0lOVEVSSElfVjRT SSAyMjgpCisgICAgKFVOU1BFQ19JTlRFUkhJX1Y4SEkgMjI5KQorICAgIChVTlNQRUNfSU5URVJI SV9WMTZRSSAyMzApCistICAgKFVOU1BFQ19JTlRFUkhJX1Y0U0YgMjMxKQorKyAgIDs7IGRlbGV0 ZSAyMzEKKyAgICAoVU5TUEVDX0lOVEVSTE9fVjRTSSAyMzIpCisgICAgKFVOU1BFQ19JTlRFUkxP X1Y4SEkgMjMzKQorICAgIChVTlNQRUNfSU5URVJMT19WMTZRSSAyMzQpCistICAgKFVOU1BFQ19J TlRFUkxPX1Y0U0YgMjM1KQorKyAgIDs7IGRlbGV0ZSAyMzUKKyAgICAoVU5TUEVDX0xWTFggICAg ICAgICAyMzYpCisgICAgKFVOU1BFQ19MVkxYTCAgICAgICAgMjM3KQorICAgIChVTlNQRUNfTFZS WCAgICAgICAgIDIzOCkKK0BAIC0xNzYsMzkgKzE2MiwxNyBAQCAoZGVmaW5lX21vZGVfaXRlcmF0 b3IgVklzaG9ydCBbVjhISSBWMTZRCisgKGRlZmluZV9tb2RlX2l0ZXJhdG9yIFZGIFtWNFNGXSkK KyA7OyBWZWMgbW9kZXMsIHBpdHkgbW9kZSBpdGVyYXRvcnMgYXJlIG5vdCBjb21wb3NhYmxlCisg KGRlZmluZV9tb2RlX2l0ZXJhdG9yIFYgW1Y0U0kgVjhISSBWMTZRSSBWNFNGXSkKKys7OyBWZWMg bW9kZXMgZm9yIG1vdmUvbG9naWNhbC9wZXJtdXRlIG9wcywgaW5jbHVkZSB2ZWN0b3IgdHlwZXMg Zm9yIG1vdmUgbm90CisrOzsgb3RoZXJ3aXNlIGhhbmRsZWQgYnkgYWx0aXZlYyAodjJkZiwgdjJk aSwgdGkpCisrKGRlZmluZV9tb2RlX2l0ZXJhdG9yIFZNIFtWNFNJIFY4SEkgVjE2UUkgVjRTRiBW MkRGIFYyREkgVEldKQorIAorIChkZWZpbmVfbW9kZV9hdHRyIFZJX2NoYXIgWyhWNFNJICJ3Iikg KFY4SEkgImgiKSAoVjE2UUkgImIiKV0pCisgCistOzsgR2VuZXJpYyBMVlggbG9hZCBpbnN0cnVj dGlvbi4KKy0oZGVmaW5lX2luc24gImFsdGl2ZWNfbHZ4Xzxtb2RlPiIKKy0gIFsoc2V0IChtYXRj aF9vcGVyYW5kOlYgMCAiYWx0aXZlY19yZWdpc3Rlcl9vcGVyYW5kIiAiPXYiKQorLQkobWF0Y2hf b3BlcmFuZDpWIDEgIm1lbW9yeV9vcGVyYW5kIiAiWiIpKV0KKy0gICJUQVJHRVRfQUxUSVZFQyIK Ky0gICJsdnggJTAsJXkxIgorLSAgWyhzZXRfYXR0ciAidHlwZSIgInZlY2xvYWQiKV0pCistCist OzsgR2VuZXJpYyBTVFZYIHN0b3JlIGluc3RydWN0aW9uLgorLShkZWZpbmVfaW5zbiAiYWx0aXZl Y19zdHZ4Xzxtb2RlPiIKKy0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYgMCAibWVtb3J5X29wZXJh bmQiICI9WiIpCistCShtYXRjaF9vcGVyYW5kOlYgMSAiYWx0aXZlY19yZWdpc3Rlcl9vcGVyYW5k IiAidiIpKV0KKy0gICJUQVJHRVRfQUxUSVZFQyIKKy0gICJzdHZ4ICUxLCV5MCIKKy0gIFsoc2V0 X2F0dHIgInR5cGUiICJ2ZWNzdG9yZSIpXSkKKy0KKyA7OyBWZWN0b3IgbW92ZSBpbnN0cnVjdGlv bnMuCistKGRlZmluZV9leHBhbmQgIm1vdjxtb2RlPiIKKy0gIFsoc2V0IChtYXRjaF9vcGVyYW5k OlYgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICIiKQorLQkobWF0Y2hfb3BlcmFuZDpWIDEgImFu eV9vcGVyYW5kIiAiIikpXQorLSAgIlRBUkdFVF9BTFRJVkVDIgorLXsKKy0gIHJzNjAwMF9lbWl0 X21vdmUgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSwgPE1PREU+bW9kZSk7CistICBET05FOwor LX0pCistCistKGRlZmluZV9pbnNuICIqbW92PG1vZGU+X2ludGVybmFsIgorLSAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6ViAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIj1aLHYsdixvLHIscix2IikK Ky0JKG1hdGNoX29wZXJhbmQ6ViAxICJpbnB1dF9vcGVyYW5kIiAidixaLHYscixvLHIsVyIpKV0K Ky0gICJUQVJHRVRfQUxUSVZFQyAKKysoZGVmaW5lX2luc24gIiphbHRpdmVjX21vdjxtb2RlPiIK KysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICI9Wix2 LHYsKm8sKnIsKnIsdix2IikKKysJKG1hdGNoX29wZXJhbmQ6ViAxICJpbnB1dF9vcGVyYW5kIiAi dixaLHYscixvLHIsaixXIikpXQorKyAgIlZFQ1RPUl9NRU1fQUxUSVZFQ19QICg8TU9ERT5tb2Rl KQorICAgICYmIChyZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1swXSwgPE1PREU+bW9kZSkgCisg ICAgICAgIHx8IHJlZ2lzdGVyX29wZXJhbmQgKG9wZXJhbmRzWzFdLCA8TU9ERT5tb2RlKSkiCisg eworQEAgLTIyMCw1MiArMTg0LDE3IEBAIChkZWZpbmVfaW5zbiAiKm1vdjxtb2RlPl9pbnRlcm5h bCIKKyAgICAgY2FzZSAzOiByZXR1cm4gIiMiOworICAgICBjYXNlIDQ6IHJldHVybiAiIyI7Cisg ICAgIGNhc2UgNTogcmV0dXJuICIjIjsKKy0gICAgY2FzZSA2OiByZXR1cm4gb3V0cHV0X3ZlY19j b25zdF9tb3ZlIChvcGVyYW5kcyk7CisrICAgIGNhc2UgNjogcmV0dXJuICJ2eG9yICUwLCUwLCUw IjsKKysgICAgY2FzZSA3OiByZXR1cm4gb3V0cHV0X3ZlY19jb25zdF9tb3ZlIChvcGVyYW5kcyk7 CisgICAgIGRlZmF1bHQ6IGdjY191bnJlYWNoYWJsZSAoKTsKKyAgICAgfQorIH0KKy0gIFsoc2V0 X2F0dHIgInR5cGUiICJ2ZWNzdG9yZSx2ZWNsb2FkLHZlY3NpbXBsZSxzdG9yZSxsb2FkLCosKiIp XSkKKy0KKy0oZGVmaW5lX3NwbGl0CistICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWNFNJIDAgIm5v bmltbWVkaWF0ZV9vcGVyYW5kIiAiIikKKy0gICAgICAgIChtYXRjaF9vcGVyYW5kOlY0U0kgMSAi aW5wdXRfb3BlcmFuZCIgIiIpKV0KKy0gICJUQVJHRVRfQUxUSVZFQyAmJiByZWxvYWRfY29tcGxl dGVkCistICAgJiYgZ3ByX29yX2dwcl9wIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0pIgorLSAg WyhwYyldCisteworLSAgcnM2MDAwX3NwbGl0X211bHRpcmVnX21vdmUgKG9wZXJhbmRzWzBdLCBv cGVyYW5kc1sxXSk7IERPTkU7CistfSkKKy0KKy0oZGVmaW5lX3NwbGl0CistICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpWOEhJIDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiIikKKy0gICAgICAgICht YXRjaF9vcGVyYW5kOlY4SEkgMSAiaW5wdXRfb3BlcmFuZCIgIiIpKV0KKy0gICJUQVJHRVRfQUxU SVZFQyAmJiByZWxvYWRfY29tcGxldGVkCistICAgJiYgZ3ByX29yX2dwcl9wIChvcGVyYW5kc1sw XSwgb3BlcmFuZHNbMV0pIgorLSAgWyhwYyldCisteyByczYwMDBfc3BsaXRfbXVsdGlyZWdfbW92 ZSAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdKTsgRE9ORTsgfSkKKysgIFsoc2V0X2F0dHIgInR5 cGUiICJ2ZWNzdG9yZSx2ZWNsb2FkLHZlY3NpbXBsZSxzdG9yZSxsb2FkLCosdmVjc2ltcGxlLCoi KV0pCisgCisgKGRlZmluZV9zcGxpdAorLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjE2UUkgMCAi bm9uaW1tZWRpYXRlX29wZXJhbmQiICIiKQorLSAgICAgICAgKG1hdGNoX29wZXJhbmQ6VjE2UUkg MSAiaW5wdXRfb3BlcmFuZCIgIiIpKV0KKy0gICJUQVJHRVRfQUxUSVZFQyAmJiByZWxvYWRfY29t cGxldGVkCistICAgJiYgZ3ByX29yX2dwcl9wIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0pIgor LSAgWyhwYyldCisteyByczYwMDBfc3BsaXRfbXVsdGlyZWdfbW92ZSAob3BlcmFuZHNbMF0sIG9w ZXJhbmRzWzFdKTsgRE9ORTsgfSkKKy0KKy0oZGVmaW5lX3NwbGl0CistICBbKHNldCAobWF0Y2hf b3BlcmFuZDpWNFNGIDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiIikKKy0gICAgICAgIChtYXRj aF9vcGVyYW5kOlY0U0YgMSAiaW5wdXRfb3BlcmFuZCIgIiIpKV0KKy0gICJUQVJHRVRfQUxUSVZF QyAmJiByZWxvYWRfY29tcGxldGVkCistICAgJiYgZ3ByX29yX2dwcl9wIChvcGVyYW5kc1swXSwg b3BlcmFuZHNbMV0pIgorLSAgWyhwYyldCisteworLSAgcnM2MDAwX3NwbGl0X211bHRpcmVnX21v dmUgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSk7IERPTkU7CistfSkKKy0KKy0oZGVmaW5lX3Nw bGl0CistICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWIDAgImFsdGl2ZWNfcmVnaXN0ZXJfb3BlcmFu ZCIgIiIpCistCShtYXRjaF9vcGVyYW5kOlYgMSAiZWFzeV92ZWN0b3JfY29uc3RhbnRfYWRkX3Nl bGYiICIiKSldCistICAiVEFSR0VUX0FMVElWRUMgJiYgcmVsb2FkX2NvbXBsZXRlZCIKKysgIFso c2V0IChtYXRjaF9vcGVyYW5kOlZNIDAgImFsdGl2ZWNfcmVnaXN0ZXJfb3BlcmFuZCIgIiIpCisr CShtYXRjaF9vcGVyYW5kOlZNIDEgImVhc3lfdmVjdG9yX2NvbnN0YW50X2FkZF9zZWxmIiAiIikp XQorKyAgIlZFQ1RPUl9VTklUX0FMVElWRUNfUCAoPE1PREU+bW9kZSkgJiYgcmVsb2FkX2NvbXBs ZXRlZCIKKyAgIFsoc2V0IChtYXRjaF9kdXAgMCkgKG1hdGNoX2R1cCAzKSkKKyAgICAoc2V0ICht YXRjaF9kdXAgMCkgKG1hdGNoX2R1cCA0KSldCisgeworQEAgLTM0NiwxMSArMjc1LDExIEBAIChk ZWZpbmVfaW5zbiAiYWRkPG1vZGU+MyIKKyAgICJ2YWRkdTxWSV9jaGFyPm0gJTAsJTEsJTIiCisg ICBbKHNldF9hdHRyICJ0eXBlIiAidmVjc2ltcGxlIildKQorIAorLShkZWZpbmVfaW5zbiAiYWRk djRzZjMiCisrKGRlZmluZV9pbnNuICIqYWx0aXZlY19hZGR2NHNmMyIKKyAgIFsoc2V0IChtYXRj aF9vcGVyYW5kOlY0U0YgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj12IikKKyAgICAgICAgIChwbHVz OlY0U0YgKG1hdGNoX29wZXJhbmQ6VjRTRiAxICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIpCisgCSAJ ICAgKG1hdGNoX29wZXJhbmQ6VjRTRiAyICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIpKSldCistICAi VEFSR0VUX0FMVElWRUMiCisrICAiVkVDVE9SX1VOSVRfQUxUSVZFQ19QIChWNFNGbW9kZSkiCisg ICAidmFkZGZwICUwLCUxLCUyIgorICAgWyhzZXRfYXR0ciAidHlwZSIgInZlY2Zsb2F0IildKQor IAorQEAgLTM5MiwxMSArMzIxLDExIEBAIChkZWZpbmVfaW5zbiAic3ViPG1vZGU+MyIKKyAgICJ2 c3VidTxWSV9jaGFyPm0gJTAsJTEsJTIiCisgICBbKHNldF9hdHRyICJ0eXBlIiAidmVjc2ltcGxl IildKQorIAorLShkZWZpbmVfaW5zbiAic3VidjRzZjMiCisrKGRlZmluZV9pbnNuICIqYWx0aXZl Y19zdWJ2NHNmMyIKKyAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlY0U0YgMCAicmVnaXN0ZXJfb3Bl cmFuZCIgIj12IikKKyAgICAgICAgIChtaW51czpWNFNGIChtYXRjaF9vcGVyYW5kOlY0U0YgMSAi cmVnaXN0ZXJfb3BlcmFuZCIgInYiKQorICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJh bmQ6VjRTRiAyICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIpKSldCistICAiVEFSR0VUX0FMVElWRUMi CisrICAiVkVDVE9SX1VOSVRfQUxUSVZFQ19QIChWNFNGbW9kZSkiCisgICAidnN1YmZwICUwLCUx LCUyIgorICAgWyhzZXRfYXR0ciAidHlwZSIgInZlY2Zsb2F0IildKQorIAorQEAgLTQ1NywxMzEg KzM4Niw4MSBAQCAoZGVmaW5lX2luc24gImFsdGl2ZWNfdmNtcGJmcCIKKyAgICJ2Y21wYmZwICUw LCUxLCUyIgorICAgWyhzZXRfYXR0ciAidHlwZSIgInZlY2NtcCIpXSkKKyAKKy0oZGVmaW5lX2lu c24gImFsdGl2ZWNfdmNtcGVxdWIiCistICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWMTZRSSAwICJy ZWdpc3Rlcl9vcGVyYW5kIiAiPXYiKQorLSAgICAgICAgKHVuc3BlYzpWMTZRSSBbKG1hdGNoX29w ZXJhbmQ6VjE2UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInYiKQorLSAgICAgICAgICAgICAgICAg ICAgICAgKG1hdGNoX29wZXJhbmQ6VjE2UUkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInYiKV0gCist ICAgICAgICAgICAgICAgICAgICAgICBVTlNQRUNfVkNNUEVRVUIpKV0KKysoZGVmaW5lX2luc24g IiphbHRpdmVjX2VxPG1vZGU+IgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VkkgMCAiYWx0aXZl Y19yZWdpc3Rlcl9vcGVyYW5kIiAiPXYiKQorKwkoZXE6VkkgKG1hdGNoX29wZXJhbmQ6VkkgMSAi YWx0aXZlY19yZWdpc3Rlcl9vcGVyYW5kIiAidiIpCisrCSAgICAgICAobWF0Y2hfb3BlcmFuZDpW SSAyICJhbHRpdmVjX3JlZ2lzdGVyX29wZXJhbmQiICJ2IikpKV0KKyAgICJUQVJHRVRfQUxUSVZF QyIKKy0gICJ2Y21wZXF1YiAlMCwlMSwlMiIKKy0gIFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNzaW1w bGUiKV0pCisrICAidmNtcGVxdTxWSV9jaGFyPiAlMCwlMSwlMiIKKysgIFsoc2V0X2F0dHIgInR5 cGUiICJ2ZWNjbXAiKV0pCisgCistKGRlZmluZV9pbnNuICJhbHRpdmVjX3ZjbXBlcXVoIgorLSAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6VjhISSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXYiKQorLSAg ICAgICAgKHVuc3BlYzpWOEhJIFsobWF0Y2hfb3BlcmFuZDpWOEhJIDEgInJlZ2lzdGVyX29wZXJh bmQiICJ2IikKKy0gICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6VjhISSAyICJy ZWdpc3Rlcl9vcGVyYW5kIiAidiIpXSAKKy0gICAgICAgICAgICAgICAgICAgICAgVU5TUEVDX1ZD TVBFUVVIKSldCisrKGRlZmluZV9pbnNuICIqYWx0aXZlY19ndDxtb2RlPiIKKysgIFsoc2V0ICht YXRjaF9vcGVyYW5kOlZJIDAgImFsdGl2ZWNfcmVnaXN0ZXJfb3BlcmFuZCIgIj12IikKKysJKGd0 OlZJIChtYXRjaF9vcGVyYW5kOlZJIDEgImFsdGl2ZWNfcmVnaXN0ZXJfb3BlcmFuZCIgInYiKQor KwkgICAgICAgKG1hdGNoX29wZXJhbmQ6VkkgMiAiYWx0aXZlY19yZWdpc3Rlcl9vcGVyYW5kIiAi diIpKSldCisgICAiVEFSR0VUX0FMVElWRUMiCistICAidmNtcGVxdWggJTAsJTEsJTIiCistICBb KHNldF9hdHRyICJ0eXBlIiAidmVjc2ltcGxlIildKQorKyAgInZjbXBndHM8VklfY2hhcj4gJTAs JTEsJTIiCisrICBbKHNldF9hdHRyICJ0eXBlIiAidmVjY21wIildKQorIAorLShkZWZpbmVfaW5z biAiYWx0aXZlY192Y21wZXF1dyIKKy0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlY0U0kgMCAicmVn aXN0ZXJfb3BlcmFuZCIgIj12IikKKy0gICAgICAgICh1bnNwZWM6VjRTSSBbKG1hdGNoX29wZXJh bmQ6VjRTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIpCistICAgICAgICAgICAgICAgICAgICAg IChtYXRjaF9vcGVyYW5kOlY0U0kgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInYiKV0gCistCSAgICAg ICAgICAgICAgVU5TUEVDX1ZDTVBFUVVXKSldCisrKGRlZmluZV9pbnNuICIqYWx0aXZlY19ndHU8 bW9kZT4iCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWSSAwICJhbHRpdmVjX3JlZ2lzdGVyX29w ZXJhbmQiICI9diIpCisrCShndHU6VkkgKG1hdGNoX29wZXJhbmQ6VkkgMSAiYWx0aXZlY19yZWdp c3Rlcl9vcGVyYW5kIiAidiIpCisrCQkobWF0Y2hfb3BlcmFuZDpWSSAyICJhbHRpdmVjX3JlZ2lz dGVyX29wZXJhbmQiICJ2IikpKV0KKyAgICJUQVJHRVRfQUxUSVZFQyIKKy0gICJ2Y21wZXF1dyAl MCwlMSwlMiIKKy0gIFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNzaW1wbGUiKV0pCisrICAidmNtcGd0 dTxWSV9jaGFyPiAlMCwlMSwlMiIKKysgIFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNjbXAiKV0pCisg CistKGRlZmluZV9pbnNuICJhbHRpdmVjX3ZjbXBlcWZwIgorLSAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6VjRTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXYiKQorLSAgICAgICAgKHVuc3BlYzpWNFNJ IFsobWF0Y2hfb3BlcmFuZDpWNFNGIDEgInJlZ2lzdGVyX29wZXJhbmQiICJ2IikKKy0gICAgICAg ICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6VjRTRiAyICJyZWdpc3Rlcl9vcGVyYW5kIiAi diIpXSAKKy0JICAgICAgICAgICAgICBVTlNQRUNfVkNNUEVRRlApKV0KKy0gICJUQVJHRVRfQUxU SVZFQyIKKysoZGVmaW5lX2luc24gIiphbHRpdmVjX2VxdjRzZiIKKysgIFsoc2V0IChtYXRjaF9v cGVyYW5kOlY0U0YgMCAiYWx0aXZlY19yZWdpc3Rlcl9vcGVyYW5kIiAiPXYiKQorKwkoZXE6VjRT RiAobWF0Y2hfb3BlcmFuZDpWNFNGIDEgImFsdGl2ZWNfcmVnaXN0ZXJfb3BlcmFuZCIgInYiKQor KwkJIChtYXRjaF9vcGVyYW5kOlY0U0YgMiAiYWx0aXZlY19yZWdpc3Rlcl9vcGVyYW5kIiAidiIp KSldCisrICAiVkVDVE9SX1VOSVRfQUxUSVZFQ19QIChWNFNGbW9kZSkiCisgICAidmNtcGVxZnAg JTAsJTEsJTIiCisgICBbKHNldF9hdHRyICJ0eXBlIiAidmVjY21wIildKQorIAorLShkZWZpbmVf aW5zbiAiYWx0aXZlY192Y21wZ2VmcCIKKy0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlY0U0kgMCAi cmVnaXN0ZXJfb3BlcmFuZCIgIj12IikKKy0gICAgICAgICh1bnNwZWM6VjRTSSBbKG1hdGNoX29w ZXJhbmQ6VjRTRiAxICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIpCistICAgICAgICAgICAgICAgICAg ICAgIChtYXRjaF9vcGVyYW5kOlY0U0YgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInYiKV0gCistCQkg ICAgIFVOU1BFQ19WQ01QR0VGUCkpXQorLSAgIlRBUkdFVF9BTFRJVkVDIgorLSAgInZjbXBnZWZw ICUwLCUxLCUyIgorKyhkZWZpbmVfaW5zbiAiKmFsdGl2ZWNfZ3R2NHNmIgorKyAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6VjRTRiAwICJhbHRpdmVjX3JlZ2lzdGVyX29wZXJhbmQiICI9diIpCisrCShn dDpWNFNGIChtYXRjaF9vcGVyYW5kOlY0U0YgMSAiYWx0aXZlY19yZWdpc3Rlcl9vcGVyYW5kIiAi diIpCisrCQkgKG1hdGNoX29wZXJhbmQ6VjRTRiAyICJhbHRpdmVjX3JlZ2lzdGVyX29wZXJhbmQi ICJ2IikpKV0KKysgICJWRUNUT1JfVU5JVF9BTFRJVkVDX1AgKFY0U0Ztb2RlKSIKKysgICJ2Y21w Z3RmcCAlMCwlMSwlMiIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNjbXAiKV0pCisgCistKGRl ZmluZV9pbnNuICJhbHRpdmVjX3ZjbXBndHViIgorLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjE2 UUkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj12IikKKy0gICAgICAgICh1bnNwZWM6VjE2UUkgWyht YXRjaF9vcGVyYW5kOlYxNlFJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJ2IikKKy0gICAgICAgICAg ICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlYxNlFJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJ2 IildIAorLQkJICAgICAgVU5TUEVDX1ZDTVBHVFVCKSldCistICAiVEFSR0VUX0FMVElWRUMiCist ICAidmNtcGd0dWIgJTAsJTEsJTIiCistICBbKHNldF9hdHRyICJ0eXBlIiAidmVjc2ltcGxlIild KQorLQorLShkZWZpbmVfaW5zbiAiYWx0aXZlY192Y21wZ3RzYiIKKy0gIFsoc2V0IChtYXRjaF9v cGVyYW5kOlYxNlFJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9diIpCistICAgICAgICAodW5zcGVj OlYxNlFJIFsobWF0Y2hfb3BlcmFuZDpWMTZRSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIpCist ICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpWMTZRSSAyICJyZWdpc3Rlcl9v cGVyYW5kIiAidiIpXSAKKy0JCSAgICAgIFVOU1BFQ19WQ01QR1RTQikpXQorLSAgIlRBUkdFVF9B TFRJVkVDIgorLSAgInZjbXBndHNiICUwLCUxLCUyIgorLSAgWyhzZXRfYXR0ciAidHlwZSIgInZl Y3NpbXBsZSIpXSkKKy0KKy0oZGVmaW5lX2luc24gImFsdGl2ZWNfdmNtcGd0dWgiCistICBbKHNl dCAobWF0Y2hfb3BlcmFuZDpWOEhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9diIpCistICAgICAg ICAodW5zcGVjOlY4SEkgWyhtYXRjaF9vcGVyYW5kOlY4SEkgMSAicmVnaXN0ZXJfb3BlcmFuZCIg InYiKQorLSAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpWOEhJIDIgInJlZ2lz dGVyX29wZXJhbmQiICJ2IildIAorLQkJICAgICBVTlNQRUNfVkNNUEdUVUgpKV0KKy0gICJUQVJH RVRfQUxUSVZFQyIKKy0gICJ2Y21wZ3R1aCAlMCwlMSwlMiIKKy0gIFsoc2V0X2F0dHIgInR5cGUi ICJ2ZWNzaW1wbGUiKV0pCistCistKGRlZmluZV9pbnNuICJhbHRpdmVjX3ZjbXBndHNoIgorLSAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6VjhISSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXYiKQorLSAg ICAgICAgKHVuc3BlYzpWOEhJIFsobWF0Y2hfb3BlcmFuZDpWOEhJIDEgInJlZ2lzdGVyX29wZXJh bmQiICJ2IikKKy0gICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6VjhISSAyICJy ZWdpc3Rlcl9vcGVyYW5kIiAidiIpXSAKKy0JCSAgICAgVU5TUEVDX1ZDTVBHVFNIKSldCistICAi VEFSR0VUX0FMVElWRUMiCistICAidmNtcGd0c2ggJTAsJTEsJTIiCistICBbKHNldF9hdHRyICJ0 eXBlIiAidmVjc2ltcGxlIildKQorLQorLShkZWZpbmVfaW5zbiAiYWx0aXZlY192Y21wZ3R1dyIK Ky0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlY0U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj12IikK Ky0gICAgICAgICh1bnNwZWM6VjRTSSBbKG1hdGNoX29wZXJhbmQ6VjRTSSAxICJyZWdpc3Rlcl9v cGVyYW5kIiAidiIpCistICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlY0U0kg MiAicmVnaXN0ZXJfb3BlcmFuZCIgInYiKV0gCistCQkgICAgIFVOU1BFQ19WQ01QR1RVVykpXQor LSAgIlRBUkdFVF9BTFRJVkVDIgorLSAgInZjbXBndHV3ICUwLCUxLCUyIgorLSAgWyhzZXRfYXR0 ciAidHlwZSIgInZlY3NpbXBsZSIpXSkKKy0KKy0oZGVmaW5lX2luc24gImFsdGl2ZWNfdmNtcGd0 c3ciCistICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWNFNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9 diIpCistICAgICAgICAodW5zcGVjOlY0U0kgWyhtYXRjaF9vcGVyYW5kOlY0U0kgMSAicmVnaXN0 ZXJfb3BlcmFuZCIgInYiKQorLSAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpW NFNJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJ2IildIAorLQkJICAgICBVTlNQRUNfVkNNUEdUU1cp KV0KKy0gICJUQVJHRVRfQUxUSVZFQyIKKy0gICJ2Y21wZ3RzdyAlMCwlMSwlMiIKKy0gIFsoc2V0 X2F0dHIgInR5cGUiICJ2ZWNzaW1wbGUiKV0pCistCistKGRlZmluZV9pbnNuICJhbHRpdmVjX3Zj bXBndGZwIgorLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjRTSSAwICJyZWdpc3Rlcl9vcGVyYW5k IiAiPXYiKQorLSAgICAgICAgKHVuc3BlYzpWNFNJIFsobWF0Y2hfb3BlcmFuZDpWNFNGIDEgInJl Z2lzdGVyX29wZXJhbmQiICJ2IikKKy0gICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJh bmQ6VjRTRiAyICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIpXSAKKy0JCSAgICAgVU5TUEVDX1ZDTVBH VEZQKSldCistICAiVEFSR0VUX0FMVElWRUMiCistICAidmNtcGd0ZnAgJTAsJTEsJTIiCisrKGRl ZmluZV9pbnNuICIqYWx0aXZlY19nZXY0c2YiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWNFNG IDAgImFsdGl2ZWNfcmVnaXN0ZXJfb3BlcmFuZCIgIj12IikKKysJKGdlOlY0U0YgKG1hdGNoX29w ZXJhbmQ6VjRTRiAxICJhbHRpdmVjX3JlZ2lzdGVyX29wZXJhbmQiICJ2IikKKysJCSAobWF0Y2hf b3BlcmFuZDpWNFNGIDIgImFsdGl2ZWNfcmVnaXN0ZXJfb3BlcmFuZCIgInYiKSkpXQorKyAgIlZF Q1RPUl9VTklUX0FMVElWRUNfUCAoVjRTRm1vZGUpIgorKyAgInZjbXBnZWZwICUwLCUxLCUyIgor ICAgWyhzZXRfYXR0ciAidHlwZSIgInZlY2NtcCIpXSkKKyAKKysoZGVmaW5lX2luc24gImFsdGl2 ZWNfdnNlbDxtb2RlPiIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZNIDAgImFsdGl2ZWNfcmVn aXN0ZXJfb3BlcmFuZCIgIj12IikKKysJKGlmX3RoZW5fZWxzZTpWTSAobmUgKG1hdGNoX29wZXJh bmQ6Vk0gMSAiYWx0aXZlY19yZWdpc3Rlcl9vcGVyYW5kIiAidiIpCisrCQkJICAgICAoY29uc3Rf aW50IDApKQorKwkJCSAobWF0Y2hfb3BlcmFuZDpWTSAyICJhbHRpdmVjX3JlZ2lzdGVyX29wZXJh bmQiICJ2IikKKysJCQkgKG1hdGNoX29wZXJhbmQ6Vk0gMyAiYWx0aXZlY19yZWdpc3Rlcl9vcGVy YW5kIiAidiIpKSldCisrICAiVkVDVE9SX1VOSVRfQUxUSVZFQ19QICg8TU9ERT5tb2RlKSIKKysg ICJ2c2VsICUwLCUzLCUyLCUxIgorKyAgWyhzZXRfYXR0ciAidHlwZSIgInZlY3Blcm0iKV0pCisr CisgOzsgRnVzZWQgbXVsdGlwbHkgYWRkCisgKGRlZmluZV9pbnNuICJhbHRpdmVjX3ZtYWRkZnAi CisgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWNFNGIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9diIp CisgCShwbHVzOlY0U0YgKG11bHQ6VjRTRiAobWF0Y2hfb3BlcmFuZDpWNFNGIDEgInJlZ2lzdGVy X29wZXJhbmQiICJ2IikKKyAJCQkgICAgICAobWF0Y2hfb3BlcmFuZDpWNFNGIDIgInJlZ2lzdGVy X29wZXJhbmQiICJ2IikpCisgCSAgCSAgIChtYXRjaF9vcGVyYW5kOlY0U0YgMyAicmVnaXN0ZXJf b3BlcmFuZCIgInYiKSkpXQorLSAgIlRBUkdFVF9BTFRJVkVDIgorKyAgIlZFQ1RPUl9VTklUX0FM VElWRUNfUCAoVjRTRm1vZGUpIgorICAgInZtYWRkZnAgJTAsJTEsJTIsJTMiCisgICBbKHNldF9h dHRyICJ0eXBlIiAidmVjZmxvYXQiKV0pCisgCisgOzsgV2UgZG8gbXVsdGlwbHkgYXMgYSBmdXNl ZCBtdWx0aXBseS1hZGQgd2l0aCBhbiBhZGQgb2YgYSAtMC4wIHZlY3Rvci4KKyAKKy0oZGVmaW5l X2V4cGFuZCAibXVsdjRzZjMiCisrKGRlZmluZV9leHBhbmQgImFsdGl2ZWNfbXVsdjRzZjMiCisg ICBbKHVzZSAobWF0Y2hfb3BlcmFuZDpWNFNGIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKSkKKyAg ICAodXNlIChtYXRjaF9vcGVyYW5kOlY0U0YgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpKQorICAg ICh1c2UgKG1hdGNoX29wZXJhbmQ6VjRTRiAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikpXQorLSAg IlRBUkdFVF9BTFRJVkVDICYmIFRBUkdFVF9GVVNFRF9NQUREIgorKyAgIlZFQ1RPUl9VTklUX0FM VElWRUNfUCAoVjRTRm1vZGUpICYmIFRBUkdFVF9GVVNFRF9NQUREIgorICAgIgorIHsKKyAgIHJ0 eCBuZWcwOworQEAgLTY4NCw3ICs1NjMsNyBAQCAoZGVmaW5lX2luc24gImFsdGl2ZWNfdm5tc3Vi ZnAiCisgCShuZWc6VjRTRiAobWludXM6VjRTRiAobXVsdDpWNFNGIChtYXRjaF9vcGVyYW5kOlY0 U0YgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInYiKQorIAkJCSAgICAgICAobWF0Y2hfb3BlcmFuZDpW NFNGIDIgInJlZ2lzdGVyX29wZXJhbmQiICJ2IikpCisgCSAgCSAgICAobWF0Y2hfb3BlcmFuZDpW NFNGIDMgInJlZ2lzdGVyX29wZXJhbmQiICJ2IikpKSldCistICAiVEFSR0VUX0FMVElWRUMiCisr ICAiVkVDVE9SX1VOSVRfQUxUSVZFQ19QIChWNFNGbW9kZSkiCisgICAidm5tc3ViZnAgJTAsJTEs JTIsJTMiCisgICBbKHNldF9hdHRyICJ0eXBlIiAidmVjZmxvYXQiKV0pCisgCitAQCAtNzU4LDEx ICs2MzcsMTEgQEAgKGRlZmluZV9pbnNuICJzbWF4PG1vZGU+MyIKKyAgICJ2bWF4czxWSV9jaGFy PiAlMCwlMSwlMiIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNzaW1wbGUiKV0pCisgCistKGRl ZmluZV9pbnNuICJzbWF4djRzZjMiCisrKGRlZmluZV9pbnNuICIqYWx0aXZlY19zbWF4djRzZjMi CisgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWNFNGIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9diIp CisgICAgICAgICAoc21heDpWNFNGIChtYXRjaF9vcGVyYW5kOlY0U0YgMSAicmVnaXN0ZXJfb3Bl cmFuZCIgInYiKQorICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpWNFNGIDIgInJl Z2lzdGVyX29wZXJhbmQiICJ2IikpKV0KKy0gICJUQVJHRVRfQUxUSVZFQyIKKysgICJWRUNUT1Jf VU5JVF9BTFRJVkVDX1AgKFY0U0Ztb2RlKSIKKyAgICJ2bWF4ZnAgJTAsJTEsJTIiCisgICBbKHNl dF9hdHRyICJ0eXBlIiAidmVjY21wIildKQorIAorQEAgLTc4MiwxMSArNjYxLDExIEBAIChkZWZp bmVfaW5zbiAic21pbjxtb2RlPjMiCisgICAidm1pbnM8VklfY2hhcj4gJTAsJTEsJTIiCisgICBb KHNldF9hdHRyICJ0eXBlIiAidmVjc2ltcGxlIildKQorIAorLShkZWZpbmVfaW5zbiAic21pbnY0 c2YzIgorKyhkZWZpbmVfaW5zbiAiKmFsdGl2ZWNfc21pbnY0c2YzIgorICAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6VjRTRiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXYiKQorICAgICAgICAgKHNtaW46 VjRTRiAobWF0Y2hfb3BlcmFuZDpWNFNGIDEgInJlZ2lzdGVyX29wZXJhbmQiICJ2IikKKyAgICAg ICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6VjRTRiAyICJyZWdpc3Rlcl9vcGVyYW5kIiAi diIpKSldCistICAiVEFSR0VUX0FMVElWRUMiCisrICAiVkVDVE9SX1VOSVRfQUxUSVZFQ19QIChW NFNGbW9kZSkiCisgICAidm1pbmZwICUwLCUxLCUyIgorICAgWyhzZXRfYXR0ciAidHlwZSIgInZl Y2NtcCIpXSkKKyAKK0BAIC05MDUsNyArNzg0LDcgQEAgKGRlZmluZV9pbnNuICJhbHRpdmVjX3Zt cmdodyIKKyAgICJ2bXJnaHcgJTAsJTEsJTIiCisgICBbKHNldF9hdHRyICJ0eXBlIiAidmVjcGVy bSIpXSkKKyAKKy0oZGVmaW5lX2luc24gImFsdGl2ZWNfdm1yZ2hzZiIKKysoZGVmaW5lX2luc24g IiphbHRpdmVjX3Ztcmdoc2YiCisgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWNFNGIDAgInJlZ2lz dGVyX29wZXJhbmQiICI9diIpCisgICAgICAgICAodmVjX21lcmdlOlY0U0YgKHZlY19zZWxlY3Q6 VjRTRiAobWF0Y2hfb3BlcmFuZDpWNFNGIDEgInJlZ2lzdGVyX29wZXJhbmQiICJ2IikKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJhbGxlbCBbKGNvbnN0X2lu dCAwKQorQEAgLTkxOCw3ICs3OTcsNyBAQCAoZGVmaW5lX2luc24gImFsdGl2ZWNfdm1yZ2hzZiIK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNv bnN0X2ludCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoY29uc3RfaW50IDEpXSkpCisgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9p bnQgNSkpKV0KKy0gICJUQVJHRVRfQUxUSVZFQyIKKysgICJWRUNUT1JfVU5JVF9BTFRJVkVDX1Ag KFY0U0Ztb2RlKSIKKyAgICJ2bXJnaHcgJTAsJTEsJTIiCisgICBbKHNldF9hdHRyICJ0eXBlIiAi dmVjcGVybSIpXSkKKyAKK0BAIC05OTAsMzUgKzg2OSwzNyBAQCAoZGVmaW5lX2luc24gImFsdGl2 ZWNfdm1yZ2xoIgorIAorIChkZWZpbmVfaW5zbiAiYWx0aXZlY192bXJnbHciCisgICBbKHNldCAo bWF0Y2hfb3BlcmFuZDpWNFNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9diIpCistICAgICAgICAo dmVjX21lcmdlOlY0U0kgKHZlY19zZWxlY3Q6VjRTSSAobWF0Y2hfb3BlcmFuZDpWNFNJIDEgInJl Z2lzdGVyX29wZXJhbmQiICJ2IikKKy0JCQkJCSAocGFyYWxsZWwgWyhjb25zdF9pbnQgMikKKy0J CQkJCSAJICAgIChjb25zdF9pbnQgMCkKKy0JCQkJCQkgICAgKGNvbnN0X2ludCAzKQorLQkJCQkJ CSAgICAoY29uc3RfaW50IDEpXSkpCistICAgICAgICAgICAgICAgICAgICAgICAgKHZlY19zZWxl Y3Q6VjRTSSAobWF0Y2hfb3BlcmFuZDpWNFNJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJ2IikKKy0J CQkJCSAocGFyYWxsZWwgWyhjb25zdF9pbnQgMCkKKy0JCQkJCSAJICAgIChjb25zdF9pbnQgMikK Ky0JCQkJCQkgICAgKGNvbnN0X2ludCAxKQorLQkJCQkJCSAgICAoY29uc3RfaW50IDMpXSkpCist CQkgICAgICAoY29uc3RfaW50IDUpKSldCisrICAgICAgICAodmVjX21lcmdlOlY0U0kKKysJICh2 ZWNfc2VsZWN0OlY0U0kgKG1hdGNoX29wZXJhbmQ6VjRTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAi diIpCisrCQkJICAocGFyYWxsZWwgWyhjb25zdF9pbnQgMikKKysJCQkJICAgICAoY29uc3RfaW50 IDApCisrCQkJCSAgICAgKGNvbnN0X2ludCAzKQorKwkJCQkgICAgIChjb25zdF9pbnQgMSldKSkK KysJICh2ZWNfc2VsZWN0OlY0U0kgKG1hdGNoX29wZXJhbmQ6VjRTSSAyICJyZWdpc3Rlcl9vcGVy YW5kIiAidiIpCisrCQkJICAocGFyYWxsZWwgWyhjb25zdF9pbnQgMCkKKysJCQkJICAgICAoY29u c3RfaW50IDIpCisrCQkJCSAgICAgKGNvbnN0X2ludCAxKQorKwkJCQkgICAgIChjb25zdF9pbnQg MyldKSkKKysJIChjb25zdF9pbnQgNSkpKV0KKyAgICJUQVJHRVRfQUxUSVZFQyIKKyAgICJ2bXJn bHcgJTAsJTEsJTIiCisgICBbKHNldF9hdHRyICJ0eXBlIiAidmVjcGVybSIpXSkKKyAKKy0oZGVm aW5lX2luc24gImFsdGl2ZWNfdm1yZ2xzZiIKKysoZGVmaW5lX2luc24gIiphbHRpdmVjX3Ztcmds c2YiCisgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWNFNGIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9 diIpCistICAgICAgICAodmVjX21lcmdlOlY0U0YgKHZlY19zZWxlY3Q6VjRTRiAobWF0Y2hfb3Bl cmFuZDpWNFNGIDEgInJlZ2lzdGVyX29wZXJhbmQiICJ2IikKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChwYXJhbGxlbCBbKGNvbnN0X2ludCAyKQorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDAp CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChj b25zdF9pbnQgMykKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGNvbnN0X2ludCAxKV0pKQorLSAgICAgICAgICAgICAgICAgICAgICAgICh2ZWNf c2VsZWN0OlY0U0YgKG1hdGNoX29wZXJhbmQ6VjRTRiAyICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIp CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFyYWxsZWwgWyhj b25zdF9pbnQgMCkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGNvbnN0X2ludCAyKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDEpCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMyldKSkKKy0gICAgICAg ICAgICAgICAgICAgICAgKGNvbnN0X2ludCA1KSkpXQorLSAgIlRBUkdFVF9BTFRJVkVDIgorKyAg ICAgICAgKHZlY19tZXJnZTpWNFNGCisrCSAodmVjX3NlbGVjdDpWNFNGIChtYXRjaF9vcGVyYW5k OlY0U0YgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInYiKQorKwkJCSAgKHBhcmFsbGVsIFsoY29uc3Rf aW50IDIpCisrCQkJCSAgICAgKGNvbnN0X2ludCAwKQorKwkJCQkgICAgIChjb25zdF9pbnQgMykK KysJCQkJICAgICAoY29uc3RfaW50IDEpXSkpCisrCSAodmVjX3NlbGVjdDpWNFNGIChtYXRjaF9v cGVyYW5kOlY0U0YgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInYiKQorKwkJCSAgKHBhcmFsbGVsIFso Y29uc3RfaW50IDApCisrCQkJCSAgICAgKGNvbnN0X2ludCAyKQorKwkJCQkgICAgIChjb25zdF9p bnQgMSkKKysJCQkJICAgICAoY29uc3RfaW50IDMpXSkpCisrCSAoY29uc3RfaW50IDUpKSldCisr ICAiVkVDVE9SX1VOSVRfQUxUSVZFQ19QIChWNFNGbW9kZSkiCisgICAidm1yZ2x3ICUwLCUxLCUy IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInZlY3Blcm0iKV0pCisgCitAQCAtMTA5NSw2OCArOTc2 LDUzIEBAIChkZWZpbmVfaW5zbiAiYWx0aXZlY192bXVsb3NoIgorICAgWyhzZXRfYXR0ciAidHlw ZSIgInZlY2NvbXBsZXgiKV0pCisgCisgCistOzsgbG9naWNhbCBvcHMKKys7OyBsb2dpY2FsIG9w cy4gIEhhdmUgdGhlIGxvZ2ljYWwgb3BzIGZvbGxvdyB0aGUgbWVtb3J5IG9wcyBpbgorKzs7IHRl cm1zIG9mIHdoZXRoZXIgdG8gcHJlZmVyIFZTWCBvciBBbHRpdmVjCisgCistKGRlZmluZV9pbnNu ICJhbmQ8bW9kZT4zIgorLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VkkgMCAicmVnaXN0ZXJfb3Bl cmFuZCIgIj12IikKKy0gICAgICAgIChhbmQ6VkkgKG1hdGNoX29wZXJhbmQ6VkkgMSAicmVnaXN0 ZXJfb3BlcmFuZCIgInYiKQorLSAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpWSSAyICJy ZWdpc3Rlcl9vcGVyYW5kIiAidiIpKSldCistICAiVEFSR0VUX0FMVElWRUMiCisrKGRlZmluZV9p bnNuICIqYWx0aXZlY19hbmQ8bW9kZT4zIgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vk0gMCAi cmVnaXN0ZXJfb3BlcmFuZCIgIj12IikKKysgICAgICAgIChhbmQ6Vk0gKG1hdGNoX29wZXJhbmQ6 Vk0gMSAicmVnaXN0ZXJfb3BlcmFuZCIgInYiKQorKwkJKG1hdGNoX29wZXJhbmQ6Vk0gMiAicmVn aXN0ZXJfb3BlcmFuZCIgInYiKSkpXQorKyAgIlZFQ1RPUl9NRU1fQUxUSVZFQ19QICg8TU9ERT5t b2RlKSIKKyAgICJ2YW5kICUwLCUxLCUyIgorICAgWyhzZXRfYXR0ciAidHlwZSIgInZlY3NpbXBs ZSIpXSkKKyAKKy0oZGVmaW5lX2luc24gImlvcjxtb2RlPjMiCistICBbKHNldCAobWF0Y2hfb3Bl cmFuZDpWSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXYiKQorLSAgICAgICAgKGlvcjpWSSAobWF0 Y2hfb3BlcmFuZDpWSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIpCistICAgICAgICAgICAgICAg IChtYXRjaF9vcGVyYW5kOlZJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJ2IikpKV0KKy0gICJUQVJH RVRfQUxUSVZFQyIKKysoZGVmaW5lX2luc24gIiphbHRpdmVjX2lvcjxtb2RlPjMiCisrICBbKHNl dCAobWF0Y2hfb3BlcmFuZDpWTSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXYiKQorKyAgICAgICAg KGlvcjpWTSAobWF0Y2hfb3BlcmFuZDpWTSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIpCisrCQko bWF0Y2hfb3BlcmFuZDpWTSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIpKSldCisrICAiVkVDVE9S X01FTV9BTFRJVkVDX1AgKDxNT0RFPm1vZGUpIgorICAgInZvciAlMCwlMSwlMiIKKyAgIFsoc2V0 X2F0dHIgInR5cGUiICJ2ZWNzaW1wbGUiKV0pCisgCistKGRlZmluZV9pbnNuICJ4b3I8bW9kZT4z IgorLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VkkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj12IikK Ky0gICAgICAgICh4b3I6VkkgKG1hdGNoX29wZXJhbmQ6VkkgMSAicmVnaXN0ZXJfb3BlcmFuZCIg InYiKQorLSAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpWSSAyICJyZWdpc3Rlcl9vcGVy YW5kIiAidiIpKSldCistICAiVEFSR0VUX0FMVElWRUMiCisrKGRlZmluZV9pbnNuICIqYWx0aXZl Y194b3I8bW9kZT4zIgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vk0gMCAicmVnaXN0ZXJfb3Bl cmFuZCIgIj12IikKKysgICAgICAgICh4b3I6Vk0gKG1hdGNoX29wZXJhbmQ6Vk0gMSAicmVnaXN0 ZXJfb3BlcmFuZCIgInYiKQorKwkJKG1hdGNoX29wZXJhbmQ6Vk0gMiAicmVnaXN0ZXJfb3BlcmFu ZCIgInYiKSkpXQorKyAgIlZFQ1RPUl9NRU1fQUxUSVZFQ19QICg8TU9ERT5tb2RlKSIKKyAgICJ2 eG9yICUwLCUxLCUyIgorICAgWyhzZXRfYXR0ciAidHlwZSIgInZlY3NpbXBsZSIpXSkKKyAKKy0o ZGVmaW5lX2luc24gInhvcnY0c2YzIgorLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjRTRiAwICJy ZWdpc3Rlcl9vcGVyYW5kIiAiPXYiKQorLSAgICAgICAgKHhvcjpWNFNGIChtYXRjaF9vcGVyYW5k OlY0U0YgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInYiKQorLSAgICAgICAgICAgICAgICAgIChtYXRj aF9vcGVyYW5kOlY0U0YgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInYiKSkpXQorLSAgIlRBUkdFVF9B TFRJVkVDIgorLSAgInZ4b3IgJTAsJTEsJTIiIAorLSAgWyhzZXRfYXR0ciAidHlwZSIgInZlY3Np bXBsZSIpXSkKKy0KKy0oZGVmaW5lX2luc24gIm9uZV9jbXBsPG1vZGU+MiIKKy0gIFsoc2V0ICht YXRjaF9vcGVyYW5kOlZJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9diIpCistICAgICAgICAobm90 OlZJIChtYXRjaF9vcGVyYW5kOlZJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJ2IikpKV0KKy0gICJU QVJHRVRfQUxUSVZFQyIKKysoZGVmaW5lX2luc24gIiphbHRpdmVjX29uZV9jbXBsPG1vZGU+MiIK KysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZNIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9diIpCisr ICAgICAgICAobm90OlZNIChtYXRjaF9vcGVyYW5kOlZNIDEgInJlZ2lzdGVyX29wZXJhbmQiICJ2 IikpKV0KKysgICJWRUNUT1JfTUVNX0FMVElWRUNfUCAoPE1PREU+bW9kZSkiCisgICAidm5vciAl MCwlMSwlMSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNzaW1wbGUiKV0pCisgICAKKy0oZGVm aW5lX2luc24gImFsdGl2ZWNfbm9yPG1vZGU+MyIKKy0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZJ IDAgInJlZ2lzdGVyX29wZXJhbmQiICI9diIpCistICAgICAgICAobm90OlZJIChpb3I6VkkgKG1h dGNoX29wZXJhbmQ6VkkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInYiKQorLSAgICAgICAgICAgICAg ICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlZJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJ2IikpKSld CistICAiVEFSR0VUX0FMVElWRUMiCisrKGRlZmluZV9pbnNuICIqYWx0aXZlY19ub3I8bW9kZT4z IgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vk0gMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj12IikK KysgICAgICAgIChub3Q6Vk0gKGlvcjpWTSAobWF0Y2hfb3BlcmFuZDpWTSAxICJyZWdpc3Rlcl9v cGVyYW5kIiAidiIpCisrCQkJKG1hdGNoX29wZXJhbmQ6Vk0gMiAicmVnaXN0ZXJfb3BlcmFuZCIg InYiKSkpKV0KKysgICJWRUNUT1JfTUVNX0FMVElWRUNfUCAoPE1PREU+bW9kZSkiCisgICAidm5v ciAlMCwlMSwlMiIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNzaW1wbGUiKV0pCisgCistKGRl ZmluZV9pbnNuICJhbmRjPG1vZGU+MyIKKy0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZJIDAgInJl Z2lzdGVyX29wZXJhbmQiICI9diIpCistICAgICAgICAoYW5kOlZJIChub3Q6VkkgKG1hdGNoX29w ZXJhbmQ6VkkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInYiKSkKKy0gICAgICAgICAgICAgICAgKG1h dGNoX29wZXJhbmQ6VkkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInYiKSkpXQorLSAgIlRBUkdFVF9B TFRJVkVDIgorLSAgInZhbmRjICUwLCUxLCUyIgorLSAgWyhzZXRfYXR0ciAidHlwZSIgInZlY3Np bXBsZSIpXSkKKy0KKy0oZGVmaW5lX2luc24gIiphbmRjM192NHNmIgorLSAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6VjRTRiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXYiKQorLSAgICAgICAgKGFuZDpW NFNGIChub3Q6VjRTRiAobWF0Y2hfb3BlcmFuZDpWNFNGIDIgInJlZ2lzdGVyX29wZXJhbmQiICJ2 IikpCistICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6VjRTRiAxICJyZWdpc3Rlcl9v cGVyYW5kIiAidiIpKSldCistICAiVEFSR0VUX0FMVElWRUMiCisrKGRlZmluZV9pbnNuICIqYWx0 aXZlY19hbmRjPG1vZGU+MyIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZNIDAgInJlZ2lzdGVy X29wZXJhbmQiICI9diIpCisrICAgICAgICAoYW5kOlZNIChub3Q6Vk0gKG1hdGNoX29wZXJhbmQ6 Vk0gMiAicmVnaXN0ZXJfb3BlcmFuZCIgInYiKSkKKysJCShtYXRjaF9vcGVyYW5kOlZNIDEgInJl Z2lzdGVyX29wZXJhbmQiICJ2IikpKV0KKysgICJWRUNUT1JfTUVNX0FMVElWRUNfUCAoPE1PREU+ bW9kZSkiCisgICAidmFuZGMgJTAsJTEsJTIiCisgICBbKHNldF9hdHRyICJ0eXBlIiAidmVjc2lt cGxlIildKQorIAorQEAgLTEzOTIsNyArMTI1OCw3IEBAIChkZWZpbmVfaW5zbiAiKmFsdGl2ZWNf dnNwbHRzZiIKKyAJICh2ZWNfc2VsZWN0OlNGIChtYXRjaF9vcGVyYW5kOlY0U0YgMSAicmVnaXN0 ZXJfb3BlcmFuZCIgInYiKQorIAkJCShwYXJhbGxlbAorIAkJCSBbKG1hdGNoX29wZXJhbmQ6UUkg MiAidTViaXRfY2ludF9vcGVyYW5kIiAiaSIpXSkpKSldCistICAiVEFSR0VUX0FMVElWRUMiCisr ICAiVkVDVE9SX1VOSVRfQUxUSVZFQ19QIChWNFNGbW9kZSkiCisgICAidnNwbHR3ICUwLCUxLCUy IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInZlY3Blcm0iKV0pCisgCitAQCAtMTQwNCwxOSArMTI3 MCwxOSBAQCAoZGVmaW5lX2luc24gImFsdGl2ZWNfdnNwbHRpczxWSV9jaGFyPiIKKyAgICJ2c3Bs dGlzPFZJX2NoYXI+ICUwLCUxIgorICAgWyhzZXRfYXR0ciAidHlwZSIgInZlY3Blcm0iKV0pCisg CistKGRlZmluZV9pbnNuICJmdHJ1bmN2NHNmMiIKKysoZGVmaW5lX2luc24gIiphbHRpdmVjX2Z0 cnVuY3Y0c2YyIgorICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjRTRiAwICJyZWdpc3Rlcl9vcGVy YW5kIiAiPXYiKQorICAgCShmaXg6VjRTRiAobWF0Y2hfb3BlcmFuZDpWNFNGIDEgInJlZ2lzdGVy X29wZXJhbmQiICJ2IikpKV0KKy0gICJUQVJHRVRfQUxUSVZFQyIKKysgICJWRUNUT1JfVU5JVF9B TFRJVkVDX1AgKFY0U0Ztb2RlKSIKKyAgICJ2cmZpeiAlMCwlMSIKKyAgIFsoc2V0X2F0dHIgInR5 cGUiICJ2ZWNmbG9hdCIpXSkKKyAKKyAoZGVmaW5lX2luc24gImFsdGl2ZWNfdnBlcm1fPG1vZGU+ IgorLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6ViAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXYiKQor LQkodW5zcGVjOlYgWyhtYXRjaF9vcGVyYW5kOlYgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInYiKQor LQkJICAgKG1hdGNoX29wZXJhbmQ6ViAyICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIpCistCQkgICAo bWF0Y2hfb3BlcmFuZDpWMTZRSSAzICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIpXQorLQkJICBVTlNQ RUNfVlBFUk0pKV0KKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZNIDAgInJlZ2lzdGVyX29wZXJh bmQiICI9diIpCisrCSh1bnNwZWM6Vk0gWyhtYXRjaF9vcGVyYW5kOlZNIDEgInJlZ2lzdGVyX29w ZXJhbmQiICJ2IikKKysJCSAgICAobWF0Y2hfb3BlcmFuZDpWTSAyICJyZWdpc3Rlcl9vcGVyYW5k IiAidiIpCisrCQkgICAgKG1hdGNoX29wZXJhbmQ6VjE2UUkgMyAicmVnaXN0ZXJfb3BlcmFuZCIg InYiKV0KKysJCSAgIFVOU1BFQ19WUEVSTSkpXQorICAgIlRBUkdFVF9BTFRJVkVDIgorICAgInZw ZXJtICUwLCUxLCUyLCUzIgorICAgWyhzZXRfYXR0ciAidHlwZSIgInZlY3Blcm0iKV0pCitAQCAt MTUxNSwxODAgKzEzODEsNiBAQCAoZGVmaW5lX2luc24gImFsdGl2ZWNfdnJlZnAiCisgICAidnJl ZnAgJTAsJTEiCisgICBbKHNldF9hdHRyICJ0eXBlIiAidmVjZmxvYXQiKV0pCisgCistKGRlZmlu ZV9leHBhbmQgInZjb25kdjRzaSIKKy0gICAgICAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlY0U0kg MCAicmVnaXN0ZXJfb3BlcmFuZCIgIj12IikKKy0gICAgICAgICAgICAgIChpZl90aGVuX2Vsc2U6 VjRTSQorLSAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmF0b3IgMyAiY29tcGFyaXNvbl9vcGVy YXRvciIKKy0gICAgICAgICAgICAgICAgICBbKG1hdGNoX29wZXJhbmQ6VjRTSSA0ICJyZWdpc3Rl cl9vcGVyYW5kIiAidiIpCistICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlY0U0kg NSAicmVnaXN0ZXJfb3BlcmFuZCIgInYiKV0pCistICAgICAgICAgICAgICAgKG1hdGNoX29wZXJh bmQ6VjRTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIpCistICAgICAgICAgICAgICAgKG1hdGNo X29wZXJhbmQ6VjRTSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIpKSldCistCSJUQVJHRVRfQUxU SVZFQyIKKy0JIgorLXsKKy0JaWYgKHJzNjAwMF9lbWl0X3ZlY3Rvcl9jb25kX2V4cHIgKG9wZXJh bmRzWzBdLCBvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMl0sCistCQkJCQkgIG9wZXJhbmRzWzNdLCBv cGVyYW5kc1s0XSwgb3BlcmFuZHNbNV0pKQorLQlET05FOworLQllbHNlCistCUZBSUw7CistfQor LQkiKQorLQorLShkZWZpbmVfZXhwYW5kICJ2Y29uZHV2NHNpIgorLSAgICAgICAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6VjRTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXYiKQorLSAgICAgICAgICAg ICAgKGlmX3RoZW5fZWxzZTpWNFNJCistICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYXRvciAz ICJjb21wYXJpc29uX29wZXJhdG9yIgorLSAgICAgICAgICAgICAgICAgIFsobWF0Y2hfb3BlcmFu ZDpWNFNJIDQgInJlZ2lzdGVyX29wZXJhbmQiICJ2IikKKy0gICAgICAgICAgICAgICAgICAgKG1h dGNoX29wZXJhbmQ6VjRTSSA1ICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIpXSkKKy0gICAgICAgICAg ICAgICAobWF0Y2hfb3BlcmFuZDpWNFNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJ2IikKKy0gICAg ICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpWNFNJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJ2Iikp KV0KKy0JIlRBUkdFVF9BTFRJVkVDIgorLQkiCisteworLQlpZiAocnM2MDAwX2VtaXRfdmVjdG9y X2NvbmRfZXhwciAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdLCBvcGVyYW5kc1syXSwKKy0JCQkJ CSAgb3BlcmFuZHNbM10sIG9wZXJhbmRzWzRdLCBvcGVyYW5kc1s1XSkpCistCURPTkU7CistCWVs c2UKKy0JRkFJTDsKKy19CistCSIpCistCistKGRlZmluZV9leHBhbmQgInZjb25kdjRzZiIKKy0g ICAgICAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlY0U0YgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj12 IikKKy0gICAgICAgICAgICAgIChpZl90aGVuX2Vsc2U6VjRTRgorLSAgICAgICAgICAgICAgICAo bWF0Y2hfb3BlcmF0b3IgMyAiY29tcGFyaXNvbl9vcGVyYXRvciIKKy0gICAgICAgICAgICAgICAg ICBbKG1hdGNoX29wZXJhbmQ6VjRTRiA0ICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIpCistICAgICAg ICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlY0U0YgNSAicmVnaXN0ZXJfb3BlcmFuZCIgInYi KV0pCistICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6VjRTRiAxICJyZWdpc3Rlcl9vcGVy YW5kIiAidiIpCistICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6VjRTRiAyICJyZWdpc3Rl cl9vcGVyYW5kIiAidiIpKSldCistCSJUQVJHRVRfQUxUSVZFQyIKKy0JIgorLXsKKy0JaWYgKHJz NjAwMF9lbWl0X3ZlY3Rvcl9jb25kX2V4cHIgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSwgb3Bl cmFuZHNbMl0sCistCQkJCQkgIG9wZXJhbmRzWzNdLCBvcGVyYW5kc1s0XSwgb3BlcmFuZHNbNV0p KQorLQlET05FOworLQllbHNlCistCUZBSUw7CistfQorLQkiKQorLQorLShkZWZpbmVfZXhwYW5k ICJ2Y29uZHY4aGkiCistICAgICAgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWOEhJIDAgInJlZ2lz dGVyX29wZXJhbmQiICI9diIpCistICAgICAgICAgICAgICAoaWZfdGhlbl9lbHNlOlY4SEkKKy0g ICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhdG9yIDMgImNvbXBhcmlzb25fb3BlcmF0b3IiCist ICAgICAgICAgICAgICAgICAgWyhtYXRjaF9vcGVyYW5kOlY4SEkgNCAicmVnaXN0ZXJfb3BlcmFu ZCIgInYiKQorLSAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpWOEhJIDUgInJlZ2lz dGVyX29wZXJhbmQiICJ2IildKQorLSAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlY4SEkg MSAicmVnaXN0ZXJfb3BlcmFuZCIgInYiKQorLSAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5k OlY4SEkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInYiKSkpXQorLQkiVEFSR0VUX0FMVElWRUMiCist CSIKKy17CistCWlmIChyczYwMDBfZW1pdF92ZWN0b3JfY29uZF9leHByIChvcGVyYW5kc1swXSwg b3BlcmFuZHNbMV0sIG9wZXJhbmRzWzJdLAorLQkJCQkJICBvcGVyYW5kc1szXSwgb3BlcmFuZHNb NF0sIG9wZXJhbmRzWzVdKSkKKy0JRE9ORTsKKy0JZWxzZQorLQlGQUlMOworLX0KKy0JIikKKy0K Ky0oZGVmaW5lX2V4cGFuZCAidmNvbmR1djhoaSIKKy0gICAgICAgIFsoc2V0IChtYXRjaF9vcGVy YW5kOlY4SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj12IikKKy0gICAgICAgICAgICAgIChpZl90 aGVuX2Vsc2U6VjhISQorLSAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmF0b3IgMyAiY29tcGFy aXNvbl9vcGVyYXRvciIKKy0gICAgICAgICAgICAgICAgICBbKG1hdGNoX29wZXJhbmQ6VjhISSA0 ICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIpCistICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVy YW5kOlY4SEkgNSAicmVnaXN0ZXJfb3BlcmFuZCIgInYiKV0pCistICAgICAgICAgICAgICAgKG1h dGNoX29wZXJhbmQ6VjhISSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIpCistICAgICAgICAgICAg ICAgKG1hdGNoX29wZXJhbmQ6VjhISSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIpKSldCistCSJU QVJHRVRfQUxUSVZFQyIKKy0JIgorLXsKKy0JaWYgKHJzNjAwMF9lbWl0X3ZlY3Rvcl9jb25kX2V4 cHIgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMl0sCistCQkJCQkgIG9wZXJh bmRzWzNdLCBvcGVyYW5kc1s0XSwgb3BlcmFuZHNbNV0pKQorLQlET05FOworLQllbHNlCistCUZB SUw7CistfQorLQkiKQorLQorLShkZWZpbmVfZXhwYW5kICJ2Y29uZHYxNnFpIgorLSAgICAgICAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6VjE2UUkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj12IikKKy0g ICAgICAgICAgICAgIChpZl90aGVuX2Vsc2U6VjE2UUkKKy0gICAgICAgICAgICAgICAgKG1hdGNo X29wZXJhdG9yIDMgImNvbXBhcmlzb25fb3BlcmF0b3IiCistICAgICAgICAgICAgICAgICAgWyht YXRjaF9vcGVyYW5kOlYxNlFJIDQgInJlZ2lzdGVyX29wZXJhbmQiICJ2IikKKy0gICAgICAgICAg ICAgICAgICAgKG1hdGNoX29wZXJhbmQ6VjE2UUkgNSAicmVnaXN0ZXJfb3BlcmFuZCIgInYiKV0p CistICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6VjE2UUkgMSAicmVnaXN0ZXJfb3BlcmFu ZCIgInYiKQorLSAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlYxNlFJIDIgInJlZ2lzdGVy X29wZXJhbmQiICJ2IikpKV0KKy0JIlRBUkdFVF9BTFRJVkVDIgorLQkiCisteworLQlpZiAocnM2 MDAwX2VtaXRfdmVjdG9yX2NvbmRfZXhwciAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdLCBvcGVy YW5kc1syXSwKKy0JCQkJCSAgb3BlcmFuZHNbM10sIG9wZXJhbmRzWzRdLCBvcGVyYW5kc1s1XSkp CistCURPTkU7CistCWVsc2UKKy0JRkFJTDsKKy19CistCSIpCistCistKGRlZmluZV9leHBhbmQg InZjb25kdXYxNnFpIgorLSAgICAgICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjE2UUkgMCAicmVn aXN0ZXJfb3BlcmFuZCIgIj12IikKKy0gICAgICAgICAgICAgIChpZl90aGVuX2Vsc2U6VjE2UUkK Ky0gICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhdG9yIDMgImNvbXBhcmlzb25fb3BlcmF0b3Ii CistICAgICAgICAgICAgICAgICAgWyhtYXRjaF9vcGVyYW5kOlYxNlFJIDQgInJlZ2lzdGVyX29w ZXJhbmQiICJ2IikKKy0gICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6VjE2UUkgNSAi cmVnaXN0ZXJfb3BlcmFuZCIgInYiKV0pCistICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6 VjE2UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInYiKQorLSAgICAgICAgICAgICAgIChtYXRjaF9v cGVyYW5kOlYxNlFJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJ2IikpKV0KKy0JIlRBUkdFVF9BTFRJ VkVDIgorLQkiCisteworLQlpZiAocnM2MDAwX2VtaXRfdmVjdG9yX2NvbmRfZXhwciAob3BlcmFu ZHNbMF0sIG9wZXJhbmRzWzFdLCBvcGVyYW5kc1syXSwKKy0JCQkJCSAgb3BlcmFuZHNbM10sIG9w ZXJhbmRzWzRdLCBvcGVyYW5kc1s1XSkpCistCURPTkU7CistCWVsc2UKKy0JRkFJTDsKKy19Cist CSIpCistCistCistKGRlZmluZV9pbnNuICJhbHRpdmVjX3ZzZWxfdjRzaSIKKy0gIFsoc2V0ICht YXRjaF9vcGVyYW5kOlY0U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj12IikKKy0gICAgICAgICh1 bnNwZWM6VjRTSSBbKG1hdGNoX29wZXJhbmQ6VjRTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIp CistICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlY0U0kgMiAicmVnaXN0ZXJf b3BlcmFuZCIgInYiKQorLSAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpWNFNJ IDMgInJlZ2lzdGVyX29wZXJhbmQiICJ2IildIAorLQkJICAgICBVTlNQRUNfVlNFTDRTSSkpXQor LSAgIlRBUkdFVF9BTFRJVkVDIgorLSAgInZzZWwgJTAsJTEsJTIsJTMiCistICBbKHNldF9hdHRy ICJ0eXBlIiAidmVjcGVybSIpXSkKKy0KKy0oZGVmaW5lX2luc24gImFsdGl2ZWNfdnNlbF92NHNm IgorLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjRTRiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXYi KQorLSAgICAgICAgKHVuc3BlYzpWNFNGIFsobWF0Y2hfb3BlcmFuZDpWNFNGIDEgInJlZ2lzdGVy X29wZXJhbmQiICJ2IikKKy0gICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6VjRT RiAyICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIpCistICAgICAgICAgICAgICAgICAgICAgIChtYXRj aF9vcGVyYW5kOlY0U0kgMyAicmVnaXN0ZXJfb3BlcmFuZCIgInYiKV0gCistCSAgICAgICAgICAg ICAgVU5TUEVDX1ZTRUw0U0YpKV0KKy0gICJUQVJHRVRfQUxUSVZFQyIKKy0gICJ2c2VsICUwLCUx LCUyLCUzIgorLSAgWyhzZXRfYXR0ciAidHlwZSIgInZlY3Blcm0iKV0pCistCistKGRlZmluZV9p bnNuICJhbHRpdmVjX3ZzZWxfdjhoaSIKKy0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlY4SEkgMCAi cmVnaXN0ZXJfb3BlcmFuZCIgIj12IikKKy0gICAgICAgICh1bnNwZWM6VjhISSBbKG1hdGNoX29w ZXJhbmQ6VjhISSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIpCistICAgICAgICAgICAgICAgICAg ICAgIChtYXRjaF9vcGVyYW5kOlY4SEkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInYiKQorLSAgICAg ICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpWOEhJIDMgInJlZ2lzdGVyX29wZXJhbmQi ICJ2IildIAorLQkJICAgICBVTlNQRUNfVlNFTDhISSkpXQorLSAgIlRBUkdFVF9BTFRJVkVDIgor LSAgInZzZWwgJTAsJTEsJTIsJTMiCistICBbKHNldF9hdHRyICJ0eXBlIiAidmVjcGVybSIpXSkK Ky0KKy0oZGVmaW5lX2luc24gImFsdGl2ZWNfdnNlbF92MTZxaSIKKy0gIFsoc2V0IChtYXRjaF9v cGVyYW5kOlYxNlFJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9diIpCistICAgICAgICAodW5zcGVj OlYxNlFJIFsobWF0Y2hfb3BlcmFuZDpWMTZRSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIpCist ICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpWMTZRSSAyICJyZWdpc3Rlcl9v cGVyYW5kIiAidiIpCistICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpWMTZR SSAzICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIpXSAKKy0JCSAgICAgIFVOU1BFQ19WU0VMMTZRSSkp XQorLSAgIlRBUkdFVF9BTFRJVkVDIgorLSAgInZzZWwgJTAsJTEsJTIsJTMiCistICBbKHNldF9h dHRyICJ0eXBlIiAidmVjcGVybSIpXSkKKy0KKyAoZGVmaW5lX2luc24gImFsdGl2ZWNfdnNsZG9p Xzxtb2RlPiIKKyAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYgMCAicmVnaXN0ZXJfb3BlcmFuZCIg Ij12IikKKyAgICAgICAgICh1bnNwZWM6ViBbKG1hdGNoX29wZXJhbmQ6ViAxICJyZWdpc3Rlcl9v cGVyYW5kIiAidiIpCitAQCAtMTg3OCw2ICsxNTcwLDE0IEBAIChkZWZpbmVfZXhwYW5kICJidWls ZF92ZWN0b3JfbWFza19mb3JfbG8KKyAgIGdjY19hc3NlcnQgKEdFVF9DT0RFIChvcGVyYW5kc1sx XSkgPT0gTUVNKTsKKyAKKyAgIGFkZHIgPSBYRVhQIChvcGVyYW5kc1sxXSwgMCk7CisrICBpZiAo VkVDVE9SX01FTV9WU1hfUCAoR0VUX01PREUgKG9wZXJhbmRzWzFdKSkpCisrICAgIHsKKysgICAg ICAvKiBWU1ggZG9lc24ndCBhbmQgb2ZmIHRoZSBib3R0b20gYWRkcmVzcyBiaXRzLCBhbmQgbWVt b3J5CisrCSBvcGVyYXRpb25zIGFyZSBhbGlnbmVkIHRvIHRoZSBuYXR1cmFsIGRhdGEgdHlwZS4g ICovCisrICAgICAgZW1pdF9pbnNuIChnZW5fcnR4X1NFVCAoVk9JRG1vZGUsIG9wZXJhbmRzWzBd LCBvcGVyYW5kc1sxXSkpOworKyAgICAgIERPTkU7CisrICAgIH0KKysKKyAgIHRlbXAgPSBnZW5f cmVnX3J0eCAoR0VUX01PREUgKGFkZHIpKTsKKyAgIGVtaXRfaW5zbiAoZ2VuX3J0eF9TRVQgKFZP SURtb2RlLCB0ZW1wLCAKKyAJCQkgIGdlbl9ydHhfTkVHIChHRVRfTU9ERSAoYWRkciksIGFkZHIp KSk7CitAQCAtMTk1OSw5NSArMTY1OSw2IEBAIChkZWZpbmVfaW5zbiAiKmFsdGl2ZWNfc3R2ZXNm eCIKKyAgICJzdHZld3ggJTEsJXkwIgorICAgWyhzZXRfYXR0ciAidHlwZSIgInZlY3N0b3JlIild KQorIAorLShkZWZpbmVfZXhwYW5kICJ2ZWNfaW5pdDxtb2RlPiIKKy0gIFsobWF0Y2hfb3BlcmFu ZDpWIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQorLSAgIChtYXRjaF9vcGVyYW5kIDEgIiIgIiIp XQorLSAgIlRBUkdFVF9BTFRJVkVDIgorLXsKKy0gIHJzNjAwMF9leHBhbmRfdmVjdG9yX2luaXQg KG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSk7CistICBET05FOworLX0pCistCistKGRlZmluZV9l eHBhbmQgInZlY19zZXR2NHNpIgorLSAgWyhtYXRjaF9vcGVyYW5kOlY0U0kgMCAicmVnaXN0ZXJf b3BlcmFuZCIgIiIpCistICAgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIg IiIpCistICAgKG1hdGNoX29wZXJhbmQgMiAiY29uc3RfaW50X29wZXJhbmQiICIiKV0KKy0gICJU QVJHRVRfQUxUSVZFQyIKKy17CistICByczYwMDBfZXhwYW5kX3ZlY3Rvcl9zZXQgKG9wZXJhbmRz WzBdLCBvcGVyYW5kc1sxXSwgSU5UVkFMIChvcGVyYW5kc1syXSkpOworLSAgRE9ORTsKKy19KQor LQorLShkZWZpbmVfZXhwYW5kICJ2ZWNfc2V0djhoaSIKKy0gIFsobWF0Y2hfb3BlcmFuZDpWOEhJ IDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQorLSAgIChtYXRjaF9vcGVyYW5kOkhJIDEgInJlZ2lz dGVyX29wZXJhbmQiICIiKQorLSAgIChtYXRjaF9vcGVyYW5kIDIgImNvbnN0X2ludF9vcGVyYW5k IiAiIildCistICAiVEFSR0VUX0FMVElWRUMiCisteworLSAgcnM2MDAwX2V4cGFuZF92ZWN0b3Jf c2V0IChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0sIElOVFZBTCAob3BlcmFuZHNbMl0pKTsKKy0g IERPTkU7CistfSkKKy0KKy0oZGVmaW5lX2V4cGFuZCAidmVjX3NldHYxNnFpIgorLSAgWyhtYXRj aF9vcGVyYW5kOlYxNlFJIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQorLSAgIChtYXRjaF9vcGVy YW5kOlFJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIiKQorLSAgIChtYXRjaF9vcGVyYW5kIDIgImNv bnN0X2ludF9vcGVyYW5kIiAiIildCistICAiVEFSR0VUX0FMVElWRUMiCisteworLSAgcnM2MDAw X2V4cGFuZF92ZWN0b3Jfc2V0IChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0sIElOVFZBTCAob3Bl cmFuZHNbMl0pKTsKKy0gIERPTkU7CistfSkKKy0KKy0oZGVmaW5lX2V4cGFuZCAidmVjX3NldHY0 c2YiCistICBbKG1hdGNoX29wZXJhbmQ6VjRTRiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKKy0g ICAobWF0Y2hfb3BlcmFuZDpTRiAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKKy0gICAobWF0Y2hf b3BlcmFuZCAyICJjb25zdF9pbnRfb3BlcmFuZCIgIiIpXQorLSAgIlRBUkdFVF9BTFRJVkVDIgor LXsKKy0gIHJzNjAwMF9leHBhbmRfdmVjdG9yX3NldCAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFd LCBJTlRWQUwgKG9wZXJhbmRzWzJdKSk7CistICBET05FOworLX0pCistCistKGRlZmluZV9leHBh bmQgInZlY19leHRyYWN0djRzaSIKKy0gIFsobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9v cGVyYW5kIiAiIikKKy0gICAobWF0Y2hfb3BlcmFuZDpWNFNJIDEgInJlZ2lzdGVyX29wZXJhbmQi ICIiKQorLSAgIChtYXRjaF9vcGVyYW5kIDIgImNvbnN0X2ludF9vcGVyYW5kIiAiIildCistICAi VEFSR0VUX0FMVElWRUMiCisteworLSAgcnM2MDAwX2V4cGFuZF92ZWN0b3JfZXh0cmFjdCAob3Bl cmFuZHNbMF0sIG9wZXJhbmRzWzFdLCBJTlRWQUwgKG9wZXJhbmRzWzJdKSk7CistICBET05FOwor LX0pCistCistKGRlZmluZV9leHBhbmQgInZlY19leHRyYWN0djhoaSIKKy0gIFsobWF0Y2hfb3Bl cmFuZDpISSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKKy0gICAobWF0Y2hfb3BlcmFuZDpWOEhJ IDEgInJlZ2lzdGVyX29wZXJhbmQiICIiKQorLSAgIChtYXRjaF9vcGVyYW5kIDIgImNvbnN0X2lu dF9vcGVyYW5kIiAiIildCistICAiVEFSR0VUX0FMVElWRUMiCisteworLSAgcnM2MDAwX2V4cGFu ZF92ZWN0b3JfZXh0cmFjdCAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdLCBJTlRWQUwgKG9wZXJh bmRzWzJdKSk7CistICBET05FOworLX0pCistCistKGRlZmluZV9leHBhbmQgInZlY19leHRyYWN0 djE2cWkiCistICBbKG1hdGNoX29wZXJhbmQ6UUkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCist ICAgKG1hdGNoX29wZXJhbmQ6VjE2UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCistICAgKG1h dGNoX29wZXJhbmQgMiAiY29uc3RfaW50X29wZXJhbmQiICIiKV0KKy0gICJUQVJHRVRfQUxUSVZF QyIKKy17CistICByczYwMDBfZXhwYW5kX3ZlY3Rvcl9leHRyYWN0IChvcGVyYW5kc1swXSwgb3Bl cmFuZHNbMV0sIElOVFZBTCAob3BlcmFuZHNbMl0pKTsKKy0gIERPTkU7CistfSkKKy0KKy0oZGVm aW5lX2V4cGFuZCAidmVjX2V4dHJhY3R2NHNmIgorLSAgWyhtYXRjaF9vcGVyYW5kOlNGIDAgInJl Z2lzdGVyX29wZXJhbmQiICIiKQorLSAgIChtYXRjaF9vcGVyYW5kOlY0U0YgMSAicmVnaXN0ZXJf b3BlcmFuZCIgIiIpCistICAgKG1hdGNoX29wZXJhbmQgMiAiY29uc3RfaW50X29wZXJhbmQiICIi KV0KKy0gICJUQVJHRVRfQUxUSVZFQyIKKy17CistICByczYwMDBfZXhwYW5kX3ZlY3Rvcl9leHRy YWN0IChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0sIElOVFZBTCAob3BlcmFuZHNbMl0pKTsKKy0g IERPTkU7CistfSkKKy0KKyA7OyBHZW5lcmF0ZQorIDs7ICAgIHZzcGx0aXM/IFNDUkFUQ0gwLDAK KyA7OyAgICB2c3VidT9tIFNDUkFUQ0gyLFNDUkFUQ0gxLCUxCitAQCAtMjA2OSw3ICsxNjgwLDcg QEAgKGRlZmluZV9leHBhbmQgImFiczxtb2RlPjIiCisgOzsgICAgdnNwbHRpc3cgU0NSQVRDSDEs LTEKKyA7OyAgICB2c2x3IFNDUkFUQ0gyLFNDUkFUQ0gxLFNDUkFUQ0gxCisgOzsgICAgdmFuZGMg JTAsJTEsU0NSQVRDSDIKKy0oZGVmaW5lX2V4cGFuZCAiYWJzdjRzZjIiCisrKGRlZmluZV9leHBh bmQgImFsdGl2ZWNfYWJzdjRzZjIiCisgICBbKHNldCAobWF0Y2hfZHVwIDIpCisgCSh2ZWNfZHVw bGljYXRlOlY0U0kgKGNvbnN0X2ludCAtMSkpKQorICAgIChzZXQgKG1hdGNoX2R1cCAzKQorQEAg LTIxMzIsNyArMTc0Myw3IEBAIChkZWZpbmVfZXhwYW5kICJ2ZWNfc2hsXzxtb2RlPiIKKyAgIERP TkU7CisgfSIpCisgCistOzsgVmVjdG9yIHNoaWZ0IGxlZnQgaW4gYml0cy4gQ3VycmVudGx5IHN1 cHBvcnRlZCBvbnkgZm9yIHNoaWZ0CisrOzsgVmVjdG9yIHNoaWZ0IHJpZ2h0IGluIGJpdHMuIEN1 cnJlbnRseSBzdXBwb3J0ZWQgb255IGZvciBzaGlmdAorIDs7IGFtb3VudHMgdGhhdCBjYW4gYmUg ZXhwcmVzc2VkIGFzIGJ5dGUgc2hpZnRzIChkaXZpc2libGUgYnkgOCkuCisgOzsgR2VuZXJhbCBz aGlmdCBhbW91bnRzIGNhbiBiZSBzdXBwb3J0ZWQgdXNpbmcgdnNybyArIHZzci4gV2UncmUKKyA7 OyBub3QgZXhwZWN0aW5nIHRvIHNlZSB0aGVzZSB5ZXQgKHRoZSB2ZWN0b3JpemVyIGN1cnJlbnRs eQorQEAgLTI2NjUsNyArMjI3Niw3IEBAIChkZWZpbmVfZXhwYW5kICJ2ZWNfcGFja190cnVuY192 NHNpIgorICAgRE9ORTsKKyB9IikKKyAKKy0oZGVmaW5lX2V4cGFuZCAibmVndjRzZjIiCisrKGRl ZmluZV9leHBhbmQgImFsdGl2ZWNfbmVndjRzZjIiCisgICBbKHVzZSAobWF0Y2hfb3BlcmFuZDpW NFNGIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKSkKKyAgICAodXNlIChtYXRjaF9vcGVyYW5kOlY0 U0YgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpKV0KKyAgICJUQVJHRVRfQUxUSVZFQyIKK0BAIC0y OTk0LDI5ICsyNjA1LDYgQEAgKGRlZmluZV9leHBhbmQgInZlY19leHRyYWN0X29kZHYxNnFpIgor ICAgZW1pdF9pbnNuIChnZW5fdnBrdWh1bV9ub21vZGUgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sx XSwgb3BlcmFuZHNbMl0pKTsKKyAgIERPTkU7CisgfSIpCistKGRlZmluZV9leHBhbmQgInZlY19p bnRlcmxlYXZlX2hpZ2h2NHNmIgorLSBbKHNldCAobWF0Y2hfb3BlcmFuZDpWNFNGIDAgInJlZ2lz dGVyX29wZXJhbmQiICIiKQorLSAgICAgICAgKHVuc3BlYzpWNFNGIFsobWF0Y2hfb3BlcmFuZDpW NFNGIDEgInJlZ2lzdGVyX29wZXJhbmQiICIiKQorLSAgICAgICAgICAgICAgICAgICAgICAobWF0 Y2hfb3BlcmFuZDpWNFNGIDIgInJlZ2lzdGVyX29wZXJhbmQiICIiKV0KKy0gICAgICAgICAgICAg ICAgICAgICAgVU5TUEVDX0lOVEVSSElfVjRTRikpXQorLSAgIlRBUkdFVF9BTFRJVkVDIgorLSAg IgorLXsgCistICBlbWl0X2luc24gKGdlbl9hbHRpdmVjX3Ztcmdoc2YgKG9wZXJhbmRzWzBdLCBv cGVyYW5kc1sxXSwgb3BlcmFuZHNbMl0pKTsKKy0gIERPTkU7CistfSIpCistCistKGRlZmluZV9l eHBhbmQgInZlY19pbnRlcmxlYXZlX2xvd3Y0c2YiCistIFsoc2V0IChtYXRjaF9vcGVyYW5kOlY0 U0YgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCistICAgICAgICAodW5zcGVjOlY0U0YgWyhtYXRj aF9vcGVyYW5kOlY0U0YgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCistICAgICAgICAgICAgICAg ICAgICAgIChtYXRjaF9vcGVyYW5kOlY0U0YgMiAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpXQorLSAg ICAgICAgICAgICAgICAgICAgICBVTlNQRUNfSU5URVJMT19WNFNGKSldCistICAiVEFSR0VUX0FM VElWRUMiCistICAiCisteworLSAgZW1pdF9pbnNuIChnZW5fYWx0aXZlY192bXJnbHNmIChvcGVy YW5kc1swXSwgb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzJdKSk7CistICBET05FOworLX0iKQorIAor IChkZWZpbmVfZXhwYW5kICJ2ZWNfaW50ZXJsZWF2ZV9oaWdoPG1vZGU+IgorICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpWSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKKy0tLSBnY2MvY29uZmlnL3Jz NjAwMC9haXg2MS5oCSguLi4vdHJ1bmspCShyZXZpc2lvbiAxNDQ1NTcpCisrKysgZ2NjL2NvbmZp Zy9yczYwMDAvYWl4NjEuaAkoLi4uL2JyYW5jaGVzL2libS9wb3dlcjctbWVpc3NuZXIpCShyZXZp c2lvbiAxNDQ2OTIpCitAQCAtNTcsMjAgKzU3LDI0IEBAIGRvIHsJCQkJCQkJCQlcCisgI3VuZGVm IEFTTV9TUEVDCisgI2RlZmluZSBBU01fU1BFQyAiLXUgJXttYWl4NjQ6LWE2NCAleyFtY3B1Kjot bXBwYzY0fX0gJShhc21fY3B1KSIKKyAKKy0vKiBDb21tb24gQVNNIGRlZmluaXRpb25zIHVzZWQg YnkgQVNNX1NQRUMgYW1vbmdzdCB0aGUgdmFyaW91cyB0YXJnZXRzCistICAgZm9yIGhhbmRsaW5n IC1tY3B1PXh4eCBzd2l0Y2hlcy4gICovCisrLyogQ29tbW9uIEFTTSBkZWZpbml0aW9ucyB1c2Vk IGJ5IEFTTV9TUEVDIGFtb25nc3QgdGhlIHZhcmlvdXMgdGFyZ2V0cyBmb3IKKysgICBoYW5kbGlu ZyAtbWNwdT14eHggc3dpdGNoZXMuICBUaGVyZSBpcyBhIHBhcmFsbGVsIGxpc3QgaW4gZHJpdmVy LXJzNjAwMC5jIHRvCisrICAgcHJvdmlkZSB0aGUgZGVmYXVsdCBhc3NlbWJsZXIgb3B0aW9ucyBp ZiB0aGUgdXNlciB1c2VzIC1tY3B1PW5hdGl2ZSwgc28gaWYKKysgICB5b3UgbWFrZSBjaGFuZ2Vz IGhlcmUsIG1ha2UgdGhlbSB0aGVyZSBhbHNvLiAgKi8KKyAjdW5kZWYgQVNNX0NQVV9TUEVDCisg I2RlZmluZSBBU01fQ1BVX1NQRUMgXAorICIleyFtY3B1KjogJXshbWFpeDY0OiBcCisgICAle21w b3dlcnBjNjQ6IC1tcHBjNjR9IFwKKyAgICV7bWFsdGl2ZWM6IC1tOTcwfSBcCisgICAleyFtYWx0 aXZlYzogJXshbXBvd2VyNjQ6ICUoYXNtX2RlZmF1bHQpfX19fSBcCisrJXttY3B1PW5hdGl2ZTog JShhc21fY3B1X25hdGl2ZSl9IFwKKyAle21jcHU9cG93ZXIzOiAtbTYyMH0gXAorICV7bWNwdT1w b3dlcjQ6IC1tcHdyNH0gXAorICV7bWNwdT1wb3dlcjU6IC1tcHdyNX0gXAorICV7bWNwdT1wb3dl cjUrOiAtbXB3cjV4fSBcCisgJXttY3B1PXBvd2VyNjogLW1wd3I2fSBcCisgJXttY3B1PXBvd2Vy Nng6IC1tcHdyNn0gXAorKyV7bWNwdT1wb3dlcjc6IC1tcHdyN30gXAorICV7bWNwdT1wb3dlcnBj OiAtbXBwY30gXAorICV7bWNwdT1yczY0YTogLW1wcGN9IFwKKyAle21jcHU9NjAzOiAtbTYwM30g XAorLS0tIGdjYy9jb25maWcvcnM2MDAwL3JzNjAwMC5tZAkoLi4uL3RydW5rKQkocmV2aXNpb24g MTQ0NTU3KQorKysrIGdjYy9jb25maWcvcnM2MDAwL3JzNjAwMC5tZAkoLi4uL2JyYW5jaGVzL2li bS9wb3dlcjctbWVpc3NuZXIpCShyZXZpc2lvbiAxNDQ2OTIpCitAQCAtMTM4LDcgKzEzOCw3IEBA IChkZWZpbmVfYXR0ciAibGVuZ3RoIiAiIgorIDs7IFByb2Nlc3NvciB0eXBlIC0tIHRoaXMgYXR0 cmlidXRlIG11c3QgZXhhY3RseSBtYXRjaCB0aGUgcHJvY2Vzc29yX3R5cGUKKyA7OyBlbnVtZXJh dGlvbiBpbiByczYwMDAuaC4KKyAKKy0oZGVmaW5lX2F0dHIgImNwdSIgInJpb3MxLHJpb3MyLHJz NjRhLG1wY2NvcmUscHBjNDAzLHBwYzQwNSxwcGM0NDAscHBjNjAxLHBwYzYwMyxwcGM2MDQscHBj NjA0ZSxwcGM2MjAscHBjNjMwLHBwYzc1MCxwcGM3NDAwLHBwYzc0NTAscHBjODU0MCxwcGNlMzAw YzIscHBjZTMwMGMzLHBwY2U1MDBtYyxwb3dlcjQscG93ZXI1LHBvd2VyNixjZWxsIgorKyhkZWZp bmVfYXR0ciAiY3B1IiAicmlvczEscmlvczIscnM2NGEsbXBjY29yZSxwcGM0MDMscHBjNDA1LHBw YzQ0MCxwcGM2MDEscHBjNjAzLHBwYzYwNCxwcGM2MDRlLHBwYzYyMCxwcGM2MzAscHBjNzUwLHBw Yzc0MDAscHBjNzQ1MCxwcGM4NTQwLHBwY2UzMDBjMixwcGNlMzAwYzMscHBjZTUwMG1jLHBvd2Vy NCxwb3dlcjUscG93ZXI2LHBvd2VyNyxjZWxsIgorICAgKGNvbnN0IChzeW1ib2xfcmVmICJyczYw MDBfY3B1X2F0dHIiKSkpCisgCisgCitAQCAtMTY3LDYgKzE2Nyw3IEBAIChkZWZpbmVfYXR0ciAi Y2VsbF9taWNybyIgIm5vdCxjb25kaXRpb24KKyAoaW5jbHVkZSAicG93ZXI0Lm1kIikKKyAoaW5j bHVkZSAicG93ZXI1Lm1kIikKKyAoaW5jbHVkZSAicG93ZXI2Lm1kIikKKysoaW5jbHVkZSAicG93 ZXI3Lm1kIikKKyAoaW5jbHVkZSAiY2VsbC5tZCIpCisgKGluY2x1ZGUgInhmcHUubWQiKQorIAor QEAgLTIxOCw2ICsyMTksOSBAQCAoZGVmaW5lX21vZGVfYXR0ciB3ZCBbKFFJICJiIikgKEhJICJo IikgCisgOyBESW1vZGUgYml0cworIChkZWZpbmVfbW9kZV9hdHRyIGRiaXRzIFsoUUkgIjU2Iikg KEhJICI0OCIpIChTSSAiMzIiKV0pCisgCisrOzsgSVNFTC9JU0VMNjQgdGFyZ2V0IHNlbGVjdGlv bgorKyhkZWZpbmVfbW9kZV9hdHRyIHNlbCBbKFNJICIiKSAoREkgIjY0IildKQorKworIAwKKyA7 OyBTdGFydCB3aXRoIGZpeGVkLXBvaW50IGxvYWQgYW5kIHN0b3JlIGluc25zLiAgSGVyZSB3ZSBw dXQgb25seSB0aGUgbW9yZQorIDs7IGNvbXBsZXggZm9ybXMuICBCYXNpYyBkYXRhIHRyYW5zZmVy IGlzIGRvbmUgbGF0ZXIuCitAQCAtNTIwLDcgKzUyNCw3IEBAIChkZWZpbmVfaW5zbiAiIgorICAg IkAKKyAgICB7YW5kaWwufGFuZGkufSAlMiwlMSwweGZmCisgICAgIyIKKy0gIFsoc2V0X2F0dHIg InR5cGUiICJjb21wYXJlIikKKysgIFsoc2V0X2F0dHIgInR5cGUiICJmYXN0X2NvbXBhcmUsY29t cGFyZSIpCisgICAgKHNldF9hdHRyICJsZW5ndGgiICI0LDgiKV0pCisgCisgKGRlZmluZV9zcGxp dAorQEAgLTU0Niw3ICs1NTAsNyBAQCAoZGVmaW5lX2luc24gIiIKKyAgICJACisgICAge2FuZGls LnxhbmRpLn0gJTAsJTEsMHhmZgorICAgICMiCistICBbKHNldF9hdHRyICJ0eXBlIiAiY29tcGFy ZSIpCisrICBbKHNldF9hdHRyICJ0eXBlIiAiZmFzdF9jb21wYXJlLGNvbXBhcmUiKQorICAgIChz ZXRfYXR0ciAibGVuZ3RoIiAiNCw4IildKQorIAorIChkZWZpbmVfc3BsaXQKK0BAIC02ODcsNyAr NjkxLDcgQEAgKGRlZmluZV9pbnNuICIiCisgICAiQAorICAgIHthbmRpbC58YW5kaS59ICUyLCUx LDB4ZmYKKyAgICAjIgorLSAgWyhzZXRfYXR0ciAidHlwZSIgImNvbXBhcmUiKQorKyAgWyhzZXRf YXR0ciAidHlwZSIgImZhc3RfY29tcGFyZSxjb21wYXJlIikKKyAgICAoc2V0X2F0dHIgImxlbmd0 aCIgIjQsOCIpXSkKKyAKKyAoZGVmaW5lX3NwbGl0CitAQCAtNzEzLDcgKzcxNyw3IEBAIChkZWZp bmVfaW5zbiAiIgorICAgIkAKKyAgICB7YW5kaWwufGFuZGkufSAlMCwlMSwweGZmCisgICAgIyIK Ky0gIFsoc2V0X2F0dHIgInR5cGUiICJjb21wYXJlIikKKysgIFsoc2V0X2F0dHIgInR5cGUiICJm YXN0X2NvbXBhcmUsY29tcGFyZSIpCisgICAgKHNldF9hdHRyICJsZW5ndGgiICI0LDgiKV0pCisg CisgKGRlZmluZV9zcGxpdAorQEAgLTg1Niw3ICs4NjAsNyBAQCAoZGVmaW5lX2luc24gIiIKKyAg ICJACisgICAge2FuZGlsLnxhbmRpLn0gJTIsJTEsMHhmZmZmCisgICAgIyIKKy0gIFsoc2V0X2F0 dHIgInR5cGUiICJjb21wYXJlIikKKysgIFsoc2V0X2F0dHIgInR5cGUiICJmYXN0X2NvbXBhcmUs Y29tcGFyZSIpCisgICAgKHNldF9hdHRyICJsZW5ndGgiICI0LDgiKV0pCisgCisgKGRlZmluZV9z cGxpdAorQEAgLTg4Miw3ICs4ODYsNyBAQCAoZGVmaW5lX2luc24gIiIKKyAgICJACisgICAge2Fu ZGlsLnxhbmRpLn0gJTAsJTEsMHhmZmZmCisgICAgIyIKKy0gIFsoc2V0X2F0dHIgInR5cGUiICJj b21wYXJlIikKKysgIFsoc2V0X2F0dHIgInR5cGUiICJmYXN0X2NvbXBhcmUsY29tcGFyZSIpCisg ICAgKHNldF9hdHRyICJsZW5ndGgiICI0LDgiKV0pCisgCisgKGRlZmluZV9zcGxpdAorQEAgLTE2 NzAsNyArMTY3NCw3IEBAIChkZWZpbmVfaW5zbiAiIgorICAgIkAKKyAgICBub3IuICUyLCUxLCUx CisgICAgIyIKKy0gIFsoc2V0X2F0dHIgInR5cGUiICJjb21wYXJlIikKKysgIFsoc2V0X2F0dHIg InR5cGUiICJmYXN0X2NvbXBhcmUsY29tcGFyZSIpCisgICAgKHNldF9hdHRyICJsZW5ndGgiICI0 LDgiKV0pCisgCisgKGRlZmluZV9zcGxpdAorQEAgLTE2OTYsNyArMTcwMCw3IEBAIChkZWZpbmVf aW5zbiAiIgorICAgIkAKKyAgICBub3IuICUwLCUxLCUxCisgICAgIyIKKy0gIFsoc2V0X2F0dHIg InR5cGUiICJjb21wYXJlIikKKysgIFsoc2V0X2F0dHIgInR5cGUiICJmYXN0X2NvbXBhcmUsY29t cGFyZSIpCisgICAgKHNldF9hdHRyICJsZW5ndGgiICI0LDgiKV0pCisgCisgKGRlZmluZV9zcGxp dAorQEAgLTIyMjEsMTAgKzIyMjUsMjIgQEAgKGRlZmluZV9pbnNuICJwb3BjbnRiPG1vZGU+MiIK KyAgICJUQVJHRVRfUE9QQ05UQiIKKyAgICJwb3BjbnRiICUwLCUxIikKKyAKKysoZGVmaW5lX2lu c24gInBvcGNudHdzaTIiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJncGNfcmVnX29w ZXJhbmQiICI9ciIpCisrCShwb3Bjb3VudDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJncGNfcmVn X29wZXJhbmQiICJyIikpKV0KKysgICJUQVJHRVRfUE9QQ05URCIKKysgICJwb3BjbnR3ICUwLCUx IikKKysKKysoZGVmaW5lX2luc24gInBvcGNudGRkaTIiCisrICBbKHNldCAobWF0Y2hfb3BlcmFu ZDpESSAwICJncGNfcmVnX29wZXJhbmQiICI9ciIpCisrCShwb3Bjb3VudDpESSAobWF0Y2hfb3Bl cmFuZDpESSAxICJncGNfcmVnX29wZXJhbmQiICJyIikpKV0KKysgICJUQVJHRVRfUE9QQ05URCAm JiBUQVJHRVRfUE9XRVJQQzY0IgorKyAgInBvcGNudGQgJTAsJTEiKQorKworIChkZWZpbmVfZXhw YW5kICJwb3Bjb3VudDxtb2RlPjIiCisgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpHUFIgMCAiZ3Bj X3JlZ19vcGVyYW5kIiAiIikKKyAJKHBvcGNvdW50OkdQUiAobWF0Y2hfb3BlcmFuZDpHUFIgMSAi Z3BjX3JlZ19vcGVyYW5kIiAiIikpKV0KKy0gICJUQVJHRVRfUE9QQ05UQiIKKysgICJUQVJHRVRf UE9QQ05UQiB8fCBUQVJHRVRfUE9QQ05URCIKKyAgIHsKKyAgICAgcnM2MDAwX2VtaXRfcG9wY291 bnQgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSk7CisgICAgIERPTkU7CitAQCAtMjg1Miw3ICsy ODY4LDcgQEAgKGRlZmluZV9pbnNuICJhbmRzaTNfbWMiCisgICAge3JsaW5tfHJsd2lubX0gJTAs JTEsMCwlbTIsJU0yCisgICAge2FuZGlsLnxhbmRpLn0gJTAsJTEsJWIyCisgICAge2FuZGl1Lnxh bmRpcy59ICUwLCUxLCV1MiIKKy0gIFsoc2V0X2F0dHIgInR5cGUiICIqLCosY29tcGFyZSxjb21w YXJlIildKQorKyAgWyhzZXRfYXR0ciAidHlwZSIgIiosKixmYXN0X2NvbXBhcmUsZmFzdF9jb21w YXJlIildKQorIAorIChkZWZpbmVfaW5zbiAiYW5kc2kzX25vbWMiCisgICBbKHNldCAobWF0Y2hf b3BlcmFuZDpTSSAwICJncGNfcmVnX29wZXJhbmQiICI9cixyIikKK0BAIC0yODk1LDcgKzI5MTEs OCBAQCAoZGVmaW5lX2luc24gIiphbmRzaTNfaW50ZXJuYWwyX21jIgorICAgICMKKyAgICAjCisg ICAgIyIKKy0gIFsoc2V0X2F0dHIgInR5cGUiICJjb21wYXJlLGNvbXBhcmUsY29tcGFyZSxkZWxh eWVkX2NvbXBhcmUsY29tcGFyZSxjb21wYXJlLGNvbXBhcmUsY29tcGFyZSIpCisrICBbKHNldF9h dHRyICJ0eXBlIiAiZmFzdF9jb21wYXJlLGZhc3RfY29tcGFyZSxmYXN0X2NvbXBhcmUsZGVsYXll ZF9jb21wYXJlLFwKKysJCSAgICAgY29tcGFyZSxjb21wYXJlLGNvbXBhcmUsY29tcGFyZSIpCisg ICAgKHNldF9hdHRyICJsZW5ndGgiICI0LDQsNCw0LDgsOCw4LDgiKV0pCisgCisgKGRlZmluZV9p bnNuICIqYW5kc2kzX2ludGVybmFsM19tYyIKK0BAIC0yOTE1LDcgKzI5MzIsOCBAQCAoZGVmaW5l X2luc24gIiphbmRzaTNfaW50ZXJuYWwzX21jIgorICAgICMKKyAgICAjCisgICAgIyIKKy0gIFso c2V0X2F0dHIgInR5cGUiICJjb21wYXJlLGNvbXBhcmUsY29tcGFyZSxkZWxheWVkX2NvbXBhcmUs Y29tcGFyZSxjb21wYXJlLGNvbXBhcmUsY29tcGFyZSIpCisrICBbKHNldF9hdHRyICJ0eXBlIiAi Y29tcGFyZSxmYXN0X2NvbXBhcmUsZmFzdF9jb21wYXJlLGRlbGF5ZWRfY29tcGFyZSxjb21wYXJl LFwKKysJCSAgICAgY29tcGFyZSxjb21wYXJlLGNvbXBhcmUiKQorICAgIChzZXRfYXR0ciAibGVu Z3RoIiAiOCw0LDQsNCw4LDgsOCw4IildKQorIAorIChkZWZpbmVfc3BsaXQKK0BAIC0yOTc0LDcg KzI5OTIsOCBAQCAoZGVmaW5lX2luc24gIiphbmRzaTNfaW50ZXJuYWw0IgorICAgICMKKyAgICAj CisgICAgIyIKKy0gIFsoc2V0X2F0dHIgInR5cGUiICJjb21wYXJlLGNvbXBhcmUsY29tcGFyZSxk ZWxheWVkX2NvbXBhcmUsY29tcGFyZSxjb21wYXJlLGNvbXBhcmUsY29tcGFyZSIpCisrICBbKHNl dF9hdHRyICJ0eXBlIiAiZmFzdF9jb21wYXJlLGZhc3RfY29tcGFyZSxmYXN0X2NvbXBhcmUsZGVs YXllZF9jb21wYXJlLFwKKysJCSAgICAgY29tcGFyZSxjb21wYXJlLGNvbXBhcmUsY29tcGFyZSIp CisgICAgKHNldF9hdHRyICJsZW5ndGgiICI0LDQsNCw0LDgsOCw4LDgiKV0pCisgCisgKGRlZmlu ZV9pbnNuICIqYW5kc2kzX2ludGVybmFsNV9tYyIKK0BAIC0yOTk2LDcgKzMwMTUsOCBAQCAoZGVm aW5lX2luc24gIiphbmRzaTNfaW50ZXJuYWw1X21jIgorICAgICMKKyAgICAjCisgICAgIyIKKy0g IFsoc2V0X2F0dHIgInR5cGUiICJjb21wYXJlLGNvbXBhcmUsY29tcGFyZSxkZWxheWVkX2NvbXBh cmUsY29tcGFyZSxjb21wYXJlLGNvbXBhcmUsY29tcGFyZSIpCisrICBbKHNldF9hdHRyICJ0eXBl IiAiY29tcGFyZSxmYXN0X2NvbXBhcmUsZmFzdF9jb21wYXJlLGRlbGF5ZWRfY29tcGFyZSxjb21w YXJlLFwKKysJCSAgICAgY29tcGFyZSxjb21wYXJlLGNvbXBhcmUiKQorICAgIChzZXRfYXR0ciAi bGVuZ3RoIiAiOCw0LDQsNCw4LDgsOCw4IildKQorIAorIChkZWZpbmVfaW5zbiAiKmFuZHNpM19p bnRlcm5hbDVfbm9tYyIKK0BAIC0zMTQxLDcgKzMxNjEsNyBAQCAoZGVmaW5lX2luc24gIipib29s c2kzX2ludGVybmFsMiIKKyAgICJACisgICAgJXE0LiAlMywlMSwlMgorICAgICMiCistICBbKHNl dF9hdHRyICJ0eXBlIiAiY29tcGFyZSIpCisrICBbKHNldF9hdHRyICJ0eXBlIiAiZmFzdF9jb21w YXJlLGNvbXBhcmUiKQorICAgIChzZXRfYXR0ciAibGVuZ3RoIiAiNCw4IildKQorIAorIChkZWZp bmVfc3BsaXQKK0BAIC0zMTcwLDcgKzMxOTAsNyBAQCAoZGVmaW5lX2luc24gIipib29sc2kzX2lu dGVybmFsMyIKKyAgICJACisgICAgJXE0LiAlMCwlMSwlMgorICAgICMiCistICBbKHNldF9hdHRy ICJ0eXBlIiAiY29tcGFyZSIpCisrICBbKHNldF9hdHRyICJ0eXBlIiAiZmFzdF9jb21wYXJlLGNv bXBhcmUiKQorICAgIChzZXRfYXR0ciAibGVuZ3RoIiAiNCw4IildKQorIAorIChkZWZpbmVfc3Bs aXQKK0BAIC0zMjk1LDcgKzMzMTUsNyBAQCAoZGVmaW5lX2luc24gIipib29sY2NzaTNfaW50ZXJu YWwyIgorICAgIkAKKyAgICAlcTQuICUzLCUxLCUyCisgICAgIyIKKy0gIFsoc2V0X2F0dHIgInR5 cGUiICJjb21wYXJlIikKKysgIFsoc2V0X2F0dHIgInR5cGUiICJmYXN0X2NvbXBhcmUsY29tcGFy ZSIpCisgICAgKHNldF9hdHRyICJsZW5ndGgiICI0LDgiKV0pCisgCisgKGRlZmluZV9zcGxpdAor QEAgLTMzMjQsNyArMzM0NCw3IEBAIChkZWZpbmVfaW5zbiAiKmJvb2xjY3NpM19pbnRlcm5hbDMi CisgICAiQAorICAgICVxNC4gJTAsJTEsJTIKKyAgICAjIgorLSAgWyhzZXRfYXR0ciAidHlwZSIg ImNvbXBhcmUiKQorKyAgWyhzZXRfYXR0ciAidHlwZSIgImZhc3RfY29tcGFyZSxjb21wYXJlIikK KyAgICAoc2V0X2F0dHIgImxlbmd0aCIgIjQsOCIpXSkKKyAKKyAoZGVmaW5lX3NwbGl0CitAQCAt NTMxNyw3ICs1MzM3LDcgQEAgKGRlZmluZV9pbnNuICJmcmVzIgorICAgImZyZXMgJTAsJTEiCisg ICBbKHNldF9hdHRyICJ0eXBlIiAiZnAiKV0pCisgCistKGRlZmluZV9pbnNuICIiCisrKGRlZmlu ZV9pbnNuICIqZm1hZGRzZjRfcG93ZXJwYyIKKyAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNGIDAg ImdwY19yZWdfb3BlcmFuZCIgIj1mIikKKyAJKHBsdXM6U0YgKG11bHQ6U0YgKG1hdGNoX29wZXJh bmQ6U0YgMSAiZ3BjX3JlZ19vcGVyYW5kIiAiJWYiKQorIAkJCSAgKG1hdGNoX29wZXJhbmQ6U0Yg MiAiZ3BjX3JlZ19vcGVyYW5kIiAiZiIpKQorQEAgLTUzMjgsNyArNTM0OCw3IEBAIChkZWZpbmVf aW5zbiAiIgorICAgWyhzZXRfYXR0ciAidHlwZSIgImZwIikKKyAgICAoc2V0X2F0dHIgImZwX3R5 cGUiICJmcF9tYWRkc3ViX3MiKV0pCisgCistKGRlZmluZV9pbnNuICIiCisrKGRlZmluZV9pbnNu ICIqZm1hZGRzZjRfcG93ZXIiCisgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTRiAwICJncGNfcmVn X29wZXJhbmQiICI9ZiIpCisgCShwbHVzOlNGIChtdWx0OlNGIChtYXRjaF9vcGVyYW5kOlNGIDEg ImdwY19yZWdfb3BlcmFuZCIgIiVmIikKKyAJCQkgIChtYXRjaF9vcGVyYW5kOlNGIDIgImdwY19y ZWdfb3BlcmFuZCIgImYiKSkKK0BAIC01MzM3LDcgKzUzNTcsNyBAQCAoZGVmaW5lX2luc24gIiIK KyAgICJ7Zm1hfGZtYWRkfSAlMCwlMSwlMiwlMyIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJkbXVs IildKQorIAorLShkZWZpbmVfaW5zbiAiIgorKyhkZWZpbmVfaW5zbiAiKmZtc3Vic2Y0X3Bvd2Vy cGMiCisgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTRiAwICJncGNfcmVnX29wZXJhbmQiICI9ZiIp CisgCShtaW51czpTRiAobXVsdDpTRiAobWF0Y2hfb3BlcmFuZDpTRiAxICJncGNfcmVnX29wZXJh bmQiICIlZiIpCisgCQkJICAgKG1hdGNoX29wZXJhbmQ6U0YgMiAiZ3BjX3JlZ19vcGVyYW5kIiAi ZiIpKQorQEAgLTUzNDgsNyArNTM2OCw3IEBAIChkZWZpbmVfaW5zbiAiIgorICAgWyhzZXRfYXR0 ciAidHlwZSIgImZwIikKKyAgICAoc2V0X2F0dHIgImZwX3R5cGUiICJmcF9tYWRkc3ViX3MiKV0p CisgCistKGRlZmluZV9pbnNuICIiCisrKGRlZmluZV9pbnNuICIqZm1zdWJzZjRfcG93ZXIiCisg ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTRiAwICJncGNfcmVnX29wZXJhbmQiICI9ZiIpCisgCSht aW51czpTRiAobXVsdDpTRiAobWF0Y2hfb3BlcmFuZDpTRiAxICJncGNfcmVnX29wZXJhbmQiICIl ZiIpCisgCQkJICAgKG1hdGNoX29wZXJhbmQ6U0YgMiAiZ3BjX3JlZ19vcGVyYW5kIiAiZiIpKQor QEAgLTUzNTcsNyArNTM3Nyw3IEBAIChkZWZpbmVfaW5zbiAiIgorICAgIntmbXN8Zm1zdWJ9ICUw LCUxLCUyLCUzIgorICAgWyhzZXRfYXR0ciAidHlwZSIgImRtdWwiKV0pCisgCistKGRlZmluZV9p bnNuICIiCisrKGRlZmluZV9pbnNuICIqZm5tYWRkc2Y0X3Bvd2VycGNfMSIKKyAgIFsoc2V0ICht YXRjaF9vcGVyYW5kOlNGIDAgImdwY19yZWdfb3BlcmFuZCIgIj1mIikKKyAJKG5lZzpTRiAocGx1 czpTRiAobXVsdDpTRiAobWF0Y2hfb3BlcmFuZDpTRiAxICJncGNfcmVnX29wZXJhbmQiICIlZiIp CisgCQkJCSAgKG1hdGNoX29wZXJhbmQ6U0YgMiAiZ3BjX3JlZ19vcGVyYW5kIiAiZiIpKQorQEAg LTUzNjgsNyArNTM4OCw3IEBAIChkZWZpbmVfaW5zbiAiIgorICAgWyhzZXRfYXR0ciAidHlwZSIg ImZwIikKKyAgICAoc2V0X2F0dHIgImZwX3R5cGUiICJmcF9tYWRkc3ViX3MiKV0pCisgCistKGRl ZmluZV9pbnNuICIiCisrKGRlZmluZV9pbnNuICIqZm5tYWRkc2Y0X3Bvd2VycGNfMiIKKyAgIFso c2V0IChtYXRjaF9vcGVyYW5kOlNGIDAgImdwY19yZWdfb3BlcmFuZCIgIj1mIikKKyAJKG1pbnVz OlNGIChtdWx0OlNGIChuZWc6U0YgKG1hdGNoX29wZXJhbmQ6U0YgMSAiZ3BjX3JlZ19vcGVyYW5k IiAiZiIpKQorIAkJCSAgIChtYXRjaF9vcGVyYW5kOlNGIDIgImdwY19yZWdfb3BlcmFuZCIgImYi KSkKK0BAIC01Mzc5LDcgKzUzOTksNyBAQCAoZGVmaW5lX2luc24gIiIKKyAgIFsoc2V0X2F0dHIg InR5cGUiICJmcCIpCisgICAgKHNldF9hdHRyICJmcF90eXBlIiAiZnBfbWFkZHN1Yl9zIildKQor IAorLShkZWZpbmVfaW5zbiAiIgorKyhkZWZpbmVfaW5zbiAiKmZubWFkZHNmNF9wb3dlcl8xIgor ICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0YgMCAiZ3BjX3JlZ19vcGVyYW5kIiAiPWYiKQorIAko bmVnOlNGIChwbHVzOlNGIChtdWx0OlNGIChtYXRjaF9vcGVyYW5kOlNGIDEgImdwY19yZWdfb3Bl cmFuZCIgIiVmIikKKyAJCQkJICAobWF0Y2hfb3BlcmFuZDpTRiAyICJncGNfcmVnX29wZXJhbmQi ICJmIikpCitAQCAtNTM4OCw3ICs1NDA4LDcgQEAgKGRlZmluZV9pbnNuICIiCisgICAie2ZubWF8 Zm5tYWRkfSAlMCwlMSwlMiwlMyIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJkbXVsIildKQorIAor LShkZWZpbmVfaW5zbiAiIgorKyhkZWZpbmVfaW5zbiAiKmZubWFkZHNmNF9wb3dlcl8yIgorICAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6U0YgMCAiZ3BjX3JlZ19vcGVyYW5kIiAiPWYiKQorIAkobWlu dXM6U0YgKG11bHQ6U0YgKG5lZzpTRiAobWF0Y2hfb3BlcmFuZDpTRiAxICJncGNfcmVnX29wZXJh bmQiICJmIikpCisgCQkJICAgKG1hdGNoX29wZXJhbmQ6U0YgMiAiZ3BjX3JlZ19vcGVyYW5kIiAi ZiIpKQorQEAgLTUzOTgsNyArNTQxOCw3IEBAIChkZWZpbmVfaW5zbiAiIgorICAgIntmbm1hfGZu bWFkZH0gJTAsJTEsJTIsJTMiCisgICBbKHNldF9hdHRyICJ0eXBlIiAiZG11bCIpXSkKKyAKKy0o ZGVmaW5lX2luc24gIiIKKysoZGVmaW5lX2luc24gIipmbm1zdWJzZjRfcG93ZXJwY18xIgorICAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6U0YgMCAiZ3BjX3JlZ19vcGVyYW5kIiAiPWYiKQorIAkobmVn OlNGIChtaW51czpTRiAobXVsdDpTRiAobWF0Y2hfb3BlcmFuZDpTRiAxICJncGNfcmVnX29wZXJh bmQiICIlZiIpCisgCQkJCSAgIChtYXRjaF9vcGVyYW5kOlNGIDIgImdwY19yZWdfb3BlcmFuZCIg ImYiKSkKK0BAIC01NDA5LDcgKzU0MjksNyBAQCAoZGVmaW5lX2luc24gIiIKKyAgIFsoc2V0X2F0 dHIgInR5cGUiICJmcCIpCisgICAgKHNldF9hdHRyICJmcF90eXBlIiAiZnBfbWFkZHN1Yl9zIild KQorIAorLShkZWZpbmVfaW5zbiAiIgorKyhkZWZpbmVfaW5zbiAiKmZubXN1YnNmNF9wb3dlcnBj XzIiCisgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTRiAwICJncGNfcmVnX29wZXJhbmQiICI9ZiIp CisgCShtaW51czpTRiAobWF0Y2hfb3BlcmFuZDpTRiAzICJncGNfcmVnX29wZXJhbmQiICJmIikK KyAJCSAgKG11bHQ6U0YgKG1hdGNoX29wZXJhbmQ6U0YgMSAiZ3BjX3JlZ19vcGVyYW5kIiAiJWYi KQorQEAgLTU0MjAsNyArNTQ0MCw3IEBAIChkZWZpbmVfaW5zbiAiIgorICAgWyhzZXRfYXR0ciAi dHlwZSIgImZwIikKKyAgICAoc2V0X2F0dHIgImZwX3R5cGUiICJmcF9tYWRkc3ViX3MiKV0pCisg CistKGRlZmluZV9pbnNuICIiCisrKGRlZmluZV9pbnNuICIqZm5tc3Vic2Y0X3Bvd2VyXzEiCisg ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTRiAwICJncGNfcmVnX29wZXJhbmQiICI9ZiIpCisgCShu ZWc6U0YgKG1pbnVzOlNGIChtdWx0OlNGIChtYXRjaF9vcGVyYW5kOlNGIDEgImdwY19yZWdfb3Bl cmFuZCIgIiVmIikKKyAJCQkJICAgKG1hdGNoX29wZXJhbmQ6U0YgMiAiZ3BjX3JlZ19vcGVyYW5k IiAiZiIpKQorQEAgLTU0MjksNyArNTQ0OSw3IEBAIChkZWZpbmVfaW5zbiAiIgorICAgIntmbm1z fGZubXN1Yn0gJTAsJTEsJTIsJTMiCisgICBbKHNldF9hdHRyICJ0eXBlIiAiZG11bCIpXSkKKyAK Ky0oZGVmaW5lX2luc24gIiIKKysoZGVmaW5lX2luc24gIipmbm1zdWJzZjRfcG93ZXJfMiIKKyAg IFsoc2V0IChtYXRjaF9vcGVyYW5kOlNGIDAgImdwY19yZWdfb3BlcmFuZCIgIj1mIikKKyAJKG1p bnVzOlNGIChtYXRjaF9vcGVyYW5kOlNGIDMgImdwY19yZWdfb3BlcmFuZCIgImYiKQorIAkJICAo bXVsdDpTRiAobWF0Y2hfb3BlcmFuZDpTRiAxICJncGNfcmVnX29wZXJhbmQiICIlZiIpCitAQCAt NTUxMCw5ICs1NTMwLDE4IEBAIChkZWZpbmVfZXhwYW5kICJjb3B5c2lnbmRmMyIKKyAJICAgICAg ICAgICAgICAgICAgICAgKG1hdGNoX2R1cCA1KSkKKyAJCQkgKG1hdGNoX2R1cCAzKQorIAkJCSAo bWF0Y2hfZHVwIDQpKSldCistICAiVEFSR0VUX1BQQ19HRlhPUFQgJiYgVEFSR0VUX0hBUkRfRkxP QVQgJiYgVEFSR0VUX0ZQUlMgJiYgVEFSR0VUX0RPVUJMRV9GTE9BVAorLSAgICYmICFIT05PUl9O QU5TIChERm1vZGUpICYmICFIT05PUl9TSUdORURfWkVST1MgKERGbW9kZSkiCisrICAiVEFSR0VU X0hBUkRfRkxPQVQgJiYgVEFSR0VUX0ZQUlMgJiYgVEFSR0VUX0RPVUJMRV9GTE9BVAorKyAgICYm ICgoVEFSR0VUX1BQQ19HRlhPUFQKKysgICAgICAgICYmICFIT05PUl9OQU5TIChERm1vZGUpCisr ICAgICAgICAmJiAhSE9OT1JfU0lHTkVEX1pFUk9TIChERm1vZGUpKQorKyAgICAgICB8fCBWRUNU T1JfVU5JVF9WU1hfUCAoREZtb2RlKSkiCisgICB7CisrICAgICBpZiAoVkVDVE9SX1VOSVRfVlNY X1AgKERGbW9kZSkpCisrICAgICAgIHsKKysJIGVtaXRfaW5zbiAoZ2VuX3ZzeF9jb3B5c2lnbmRm MyAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdLAorKwkJCQkJIG9wZXJhbmRzWzJdKSk7CisrCSBE T05FOworKyAgICAgICB9CisgICAgICBvcGVyYW5kc1szXSA9IGdlbl9yZWdfcnR4IChERm1vZGUp OworICAgICAgb3BlcmFuZHNbNF0gPSBnZW5fcmVnX3J0eCAoREZtb2RlKTsKKyAgICAgIG9wZXJh bmRzWzVdID0gQ09OU1QwX1JUWCAoREZtb2RlKTsKK0BAIC01NTU2LDEyICs1NTg1LDEyIEBAIChk ZWZpbmVfc3BsaXQKKyAgIERPTkU7CisgfSIpCisgCistKGRlZmluZV9leHBhbmQgIm1vdnNpY2Mi CistICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAiZ3BjX3JlZ19vcGVyYW5kIiAiIikKKy0J IChpZl90aGVuX2Vsc2U6U0kgKG1hdGNoX29wZXJhbmQgMSAiY29tcGFyaXNvbl9vcGVyYXRvciIg IiIpCistCQkJICAobWF0Y2hfb3BlcmFuZDpTSSAyICJncGNfcmVnX29wZXJhbmQiICIiKQorLQkJ CSAgKG1hdGNoX29wZXJhbmQ6U0kgMyAiZ3BjX3JlZ19vcGVyYW5kIiAiIikpKV0KKy0gICJUQVJH RVRfSVNFTCIKKysoZGVmaW5lX2V4cGFuZCAibW92PG1vZGU+Y2MiCisrICAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6R1BSIDAgImdwY19yZWdfb3BlcmFuZCIgIiIpCisrCSAoaWZfdGhlbl9lbHNlOkdQ UiAobWF0Y2hfb3BlcmFuZCAxICJjb21wYXJpc29uX29wZXJhdG9yIiAiIikKKysJCQkgICAobWF0 Y2hfb3BlcmFuZDpHUFIgMiAiZ3BjX3JlZ19vcGVyYW5kIiAiIikKKysJCQkgICAobWF0Y2hfb3Bl cmFuZDpHUFIgMyAiZ3BjX3JlZ19vcGVyYW5kIiAiIikpKV0KKysgICJUQVJHRVRfSVNFTDxzZWw+ IgorICAgIgorIHsKKyAgIGlmIChyczYwMDBfZW1pdF9jbW92ZSAob3BlcmFuZHNbMF0sIG9wZXJh bmRzWzFdLCBvcGVyYW5kc1syXSwgb3BlcmFuZHNbM10pKQorQEAgLTU1NzgsMjggKzU2MDcsMjgg QEAgKGRlZmluZV9leHBhbmQgIm1vdnNpY2MiCisgOzsgbGVhdmUgb3V0IHRoZSBtb2RlIGluIG9w ZXJhbmQgNCBhbmQgdXNlIG9uZSBwYXR0ZXJuLCBidXQgcmVsb2FkIGNhbgorIDs7IGNoYW5nZSB0 aGUgbW9kZSB1bmRlcm5lYXRoIG91ciBmZWV0IGFuZCB0aGVuIGdldHMgY29uZnVzZWQgdHJ5aW5n CisgOzsgdG8gcmVsb2FkIHRoZSB2YWx1ZS4KKy0oZGVmaW5lX2luc24gImlzZWxfc2lnbmVkIgor LSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAiZ3BjX3JlZ19vcGVyYW5kIiAiPXIiKQorLQko aWZfdGhlbl9lbHNlOlNJCisrKGRlZmluZV9pbnNuICJpc2VsX3NpZ25lZF88bW9kZT4iCisrICBb KHNldCAobWF0Y2hfb3BlcmFuZDpHUFIgMCAiZ3BjX3JlZ19vcGVyYW5kIiAiPXIiKQorKwkoaWZf dGhlbl9lbHNlOkdQUgorIAkgKG1hdGNoX29wZXJhdG9yIDEgImNvbXBhcmlzb25fb3BlcmF0b3Ii CisgCQkJIFsobWF0Y2hfb3BlcmFuZDpDQyA0ICJjY19yZWdfb3BlcmFuZCIgInkiKQorIAkJCSAg KGNvbnN0X2ludCAwKV0pCistCSAobWF0Y2hfb3BlcmFuZDpTSSAyICJncGNfcmVnX29wZXJhbmQi ICJiIikKKy0JIChtYXRjaF9vcGVyYW5kOlNJIDMgImdwY19yZWdfb3BlcmFuZCIgImIiKSkpXQor LSAgIlRBUkdFVF9JU0VMIgorKwkgKG1hdGNoX29wZXJhbmQ6R1BSIDIgImdwY19yZWdfb3BlcmFu ZCIgImIiKQorKwkgKG1hdGNoX29wZXJhbmQ6R1BSIDMgImdwY19yZWdfb3BlcmFuZCIgImIiKSkp XQorKyAgIlRBUkdFVF9JU0VMPHNlbD4iCisgICAiKgorIHsgcmV0dXJuIG91dHB1dF9pc2VsIChv cGVyYW5kcyk7IH0iCisgICBbKHNldF9hdHRyICJsZW5ndGgiICI0IildKQorIAorLShkZWZpbmVf aW5zbiAiaXNlbF91bnNpZ25lZCIKKy0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgImdwY19y ZWdfb3BlcmFuZCIgIj1yIikKKy0JKGlmX3RoZW5fZWxzZTpTSQorKyhkZWZpbmVfaW5zbiAiaXNl bF91bnNpZ25lZF88bW9kZT4iCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpHUFIgMCAiZ3BjX3Jl Z19vcGVyYW5kIiAiPXIiKQorKwkoaWZfdGhlbl9lbHNlOkdQUgorIAkgKG1hdGNoX29wZXJhdG9y IDEgImNvbXBhcmlzb25fb3BlcmF0b3IiCisgCQkJIFsobWF0Y2hfb3BlcmFuZDpDQ1VOUyA0ICJj Y19yZWdfb3BlcmFuZCIgInkiKQorIAkJCSAgKGNvbnN0X2ludCAwKV0pCistCSAobWF0Y2hfb3Bl cmFuZDpTSSAyICJncGNfcmVnX29wZXJhbmQiICJiIikKKy0JIChtYXRjaF9vcGVyYW5kOlNJIDMg ImdwY19yZWdfb3BlcmFuZCIgImIiKSkpXQorLSAgIlRBUkdFVF9JU0VMIgorKwkgKG1hdGNoX29w ZXJhbmQ6R1BSIDIgImdwY19yZWdfb3BlcmFuZCIgImIiKQorKwkgKG1hdGNoX29wZXJhbmQ6R1BS IDMgImdwY19yZWdfb3BlcmFuZCIgImIiKSkpXQorKyAgIlRBUkdFVF9JU0VMPHNlbD4iCisgICAi KgorIHsgcmV0dXJuIG91dHB1dF9pc2VsIChvcGVyYW5kcyk7IH0iCisgICBbKHNldF9hdHRyICJs ZW5ndGgiICI0IildKQorQEAgLTU2NDcsNyArNTY3Niw4IEBAIChkZWZpbmVfZXhwYW5kICJuZWdk ZjIiCisgKGRlZmluZV9pbnNuICIqbmVnZGYyX2ZwciIKKyAgIFsoc2V0IChtYXRjaF9vcGVyYW5k OkRGIDAgImdwY19yZWdfb3BlcmFuZCIgIj1mIikKKyAJKG5lZzpERiAobWF0Y2hfb3BlcmFuZDpE RiAxICJncGNfcmVnX29wZXJhbmQiICJmIikpKV0KKy0gICJUQVJHRVRfSEFSRF9GTE9BVCAmJiBU QVJHRVRfRlBSUyAmJiBUQVJHRVRfRE9VQkxFX0ZMT0FUIgorKyAgIlRBUkdFVF9IQVJEX0ZMT0FU ICYmIFRBUkdFVF9GUFJTICYmIFRBUkdFVF9ET1VCTEVfRkxPQVQKKysgICAmJiAhVkVDVE9SX1VO SVRfVlNYX1AgKERGbW9kZSkiCisgICAiZm5lZyAlMCwlMSIKKyAgIFsoc2V0X2F0dHIgInR5cGUi ICJmcCIpXSkKKyAKK0BAIC01NjYwLDE0ICs1NjkwLDE2IEBAIChkZWZpbmVfZXhwYW5kICJhYnNk ZjIiCisgKGRlZmluZV9pbnNuICIqYWJzZGYyX2ZwciIKKyAgIFsoc2V0IChtYXRjaF9vcGVyYW5k OkRGIDAgImdwY19yZWdfb3BlcmFuZCIgIj1mIikKKyAJKGFiczpERiAobWF0Y2hfb3BlcmFuZDpE RiAxICJncGNfcmVnX29wZXJhbmQiICJmIikpKV0KKy0gICJUQVJHRVRfSEFSRF9GTE9BVCAmJiBU QVJHRVRfRlBSUyAmJiBUQVJHRVRfRE9VQkxFX0ZMT0FUIgorKyAgIlRBUkdFVF9IQVJEX0ZMT0FU ICYmIFRBUkdFVF9GUFJTICYmIFRBUkdFVF9ET1VCTEVfRkxPQVQKKysgICAmJiAhVkVDVE9SX1VO SVRfVlNYX1AgKERGbW9kZSkiCisgICAiZmFicyAlMCwlMSIKKyAgIFsoc2V0X2F0dHIgInR5cGUi ICJmcCIpXSkKKyAKKyAoZGVmaW5lX2luc24gIipuYWJzZGYyX2ZwciIKKyAgIFsoc2V0IChtYXRj aF9vcGVyYW5kOkRGIDAgImdwY19yZWdfb3BlcmFuZCIgIj1mIikKKyAJKG5lZzpERiAoYWJzOkRG IChtYXRjaF9vcGVyYW5kOkRGIDEgImdwY19yZWdfb3BlcmFuZCIgImYiKSkpKV0KKy0gICJUQVJH RVRfSEFSRF9GTE9BVCAmJiBUQVJHRVRfRlBSUyAmJiBUQVJHRVRfRE9VQkxFX0ZMT0FUIgorKyAg IlRBUkdFVF9IQVJEX0ZMT0FUICYmIFRBUkdFVF9GUFJTICYmIFRBUkdFVF9ET1VCTEVfRkxPQVQK KysgICAmJiAhVkVDVE9SX1VOSVRfVlNYX1AgKERGbW9kZSkiCisgICAiZm5hYnMgJTAsJTEiCisg ICBbKHNldF9hdHRyICJ0eXBlIiAiZnAiKV0pCisgCitAQCAtNTY4Miw3ICs1NzE0LDggQEAgKGRl ZmluZV9pbnNuICIqYWRkZGYzX2ZwciIKKyAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRGIDAgImdw Y19yZWdfb3BlcmFuZCIgIj1mIikKKyAJKHBsdXM6REYgKG1hdGNoX29wZXJhbmQ6REYgMSAiZ3Bj X3JlZ19vcGVyYW5kIiAiJWYiKQorIAkJIChtYXRjaF9vcGVyYW5kOkRGIDIgImdwY19yZWdfb3Bl cmFuZCIgImYiKSkpXQorLSAgIlRBUkdFVF9IQVJEX0ZMT0FUICYmIFRBUkdFVF9GUFJTICYmIFRB UkdFVF9ET1VCTEVfRkxPQVQiCisrICAiVEFSR0VUX0hBUkRfRkxPQVQgJiYgVEFSR0VUX0ZQUlMg JiYgVEFSR0VUX0RPVUJMRV9GTE9BVAorKyAgICYmICFWRUNUT1JfVU5JVF9WU1hfUCAoREZtb2Rl KSIKKyAgICJ7ZmF8ZmFkZH0gJTAsJTEsJTIiCisgICBbKHNldF9hdHRyICJ0eXBlIiAiZnAiKQor ICAgIChzZXRfYXR0ciAiZnBfdHlwZSIgImZwX2FkZHN1Yl9kIildKQorQEAgLTU2OTgsNyArNTcz MSw4IEBAIChkZWZpbmVfaW5zbiAiKnN1YmRmM19mcHIiCisgICBbKHNldCAobWF0Y2hfb3BlcmFu ZDpERiAwICJncGNfcmVnX29wZXJhbmQiICI9ZiIpCisgCShtaW51czpERiAobWF0Y2hfb3BlcmFu ZDpERiAxICJncGNfcmVnX29wZXJhbmQiICJmIikKKyAJCSAgKG1hdGNoX29wZXJhbmQ6REYgMiAi Z3BjX3JlZ19vcGVyYW5kIiAiZiIpKSldCistICAiVEFSR0VUX0hBUkRfRkxPQVQgJiYgVEFSR0VU X0ZQUlMgJiYgVEFSR0VUX0RPVUJMRV9GTE9BVCIKKysgICJUQVJHRVRfSEFSRF9GTE9BVCAmJiBU QVJHRVRfRlBSUyAmJiBUQVJHRVRfRE9VQkxFX0ZMT0FUCisrICAgJiYgIVZFQ1RPUl9VTklUX1ZT WF9QIChERm1vZGUpIgorICAgIntmc3xmc3VifSAlMCwlMSwlMiIKKyAgIFsoc2V0X2F0dHIgInR5 cGUiICJmcCIpCisgICAgKHNldF9hdHRyICJmcF90eXBlIiAiZnBfYWRkc3ViX2QiKV0pCitAQCAt NTcxNCw3ICs1NzQ4LDggQEAgKGRlZmluZV9pbnNuICIqbXVsZGYzX2ZwciIKKyAgIFsoc2V0ICht YXRjaF9vcGVyYW5kOkRGIDAgImdwY19yZWdfb3BlcmFuZCIgIj1mIikKKyAJKG11bHQ6REYgKG1h dGNoX29wZXJhbmQ6REYgMSAiZ3BjX3JlZ19vcGVyYW5kIiAiJWYiKQorIAkJIChtYXRjaF9vcGVy YW5kOkRGIDIgImdwY19yZWdfb3BlcmFuZCIgImYiKSkpXQorLSAgIlRBUkdFVF9IQVJEX0ZMT0FU ICYmIFRBUkdFVF9GUFJTICYmIFRBUkdFVF9ET1VCTEVfRkxPQVQiCisrICAiVEFSR0VUX0hBUkRf RkxPQVQgJiYgVEFSR0VUX0ZQUlMgJiYgVEFSR0VUX0RPVUJMRV9GTE9BVAorKyAgICYmICFWRUNU T1JfVU5JVF9WU1hfUCAoREZtb2RlKSIKKyAgICJ7Zm18Zm11bH0gJTAsJTEsJTIiCisgICBbKHNl dF9hdHRyICJ0eXBlIiAiZG11bCIpCisgICAgKHNldF9hdHRyICJmcF90eXBlIiAiZnBfbXVsX2Qi KV0pCitAQCAtNTczMiw3ICs1NzY3LDggQEAgKGRlZmluZV9pbnNuICIqZGl2ZGYzX2ZwciIKKyAg IFsoc2V0IChtYXRjaF9vcGVyYW5kOkRGIDAgImdwY19yZWdfb3BlcmFuZCIgIj1mIikKKyAJKGRp djpERiAobWF0Y2hfb3BlcmFuZDpERiAxICJncGNfcmVnX29wZXJhbmQiICJmIikKKyAJCShtYXRj aF9vcGVyYW5kOkRGIDIgImdwY19yZWdfb3BlcmFuZCIgImYiKSkpXQorLSAgIlRBUkdFVF9IQVJE X0ZMT0FUICYmIFRBUkdFVF9GUFJTICYmIFRBUkdFVF9ET1VCTEVfRkxPQVQgJiYgIVRBUkdFVF9T SU1QTEVfRlBVIgorKyAgIlRBUkdFVF9IQVJEX0ZMT0FUICYmIFRBUkdFVF9GUFJTICYmIFRBUkdF VF9ET1VCTEVfRkxPQVQgJiYgIVRBUkdFVF9TSU1QTEVfRlBVCisrICAgJiYgIVZFQ1RPUl9VTklU X1ZTWF9QIChERm1vZGUpIgorICAgIntmZHxmZGl2fSAlMCwlMSwlMiIKKyAgIFsoc2V0X2F0dHIg InR5cGUiICJkZGl2IildKQorIAorQEAgLTU3NDgsNzMgKzU3ODQsODEgQEAgKGRlZmluZV9leHBh bmQgInJlY2lwZGYzIgorICAgIERPTkU7CisgfSkKKyAKKy0oZGVmaW5lX2luc24gImZyZWQiCisr KGRlZmluZV9leHBhbmQgImZyZWQiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpERiAwICJncGNf cmVnX29wZXJhbmQiICI9ZiIpCisrCSh1bnNwZWM6REYgWyhtYXRjaF9vcGVyYW5kOkRGIDEgImdw Y19yZWdfb3BlcmFuZCIgImYiKV0gVU5TUEVDX0ZSRVMpKV0KKysgICIoVEFSR0VUX1BPUENOVEIg fHwgVkVDVE9SX1VOSVRfVlNYX1AgKERGbW9kZSkpICYmIGZsYWdfZmluaXRlX21hdGhfb25seSIK KysgICIiKQorKworKyhkZWZpbmVfaW5zbiAiKmZyZWRfZnByIgorICAgWyhzZXQgKG1hdGNoX29w ZXJhbmQ6REYgMCAiZ3BjX3JlZ19vcGVyYW5kIiAiPWYiKQorIAkodW5zcGVjOkRGIFsobWF0Y2hf b3BlcmFuZDpERiAxICJncGNfcmVnX29wZXJhbmQiICJmIildIFVOU1BFQ19GUkVTKSldCistICAi VEFSR0VUX1BPUENOVEIgJiYgZmxhZ19maW5pdGVfbWF0aF9vbmx5IgorKyAgIlRBUkdFVF9QT1BD TlRCICYmIGZsYWdfZmluaXRlX21hdGhfb25seSAmJiAhVkVDVE9SX1VOSVRfVlNYX1AgKERGbW9k ZSkiCisgICAiZnJlICUwLCUxIgorICAgWyhzZXRfYXR0ciAidHlwZSIgImZwIildKQorIAorLShk ZWZpbmVfaW5zbiAiIgorKyhkZWZpbmVfaW5zbiAiKmZtYWRkZGY0X2ZwciIKKyAgIFsoc2V0ICht YXRjaF9vcGVyYW5kOkRGIDAgImdwY19yZWdfb3BlcmFuZCIgIj1mIikKKyAJKHBsdXM6REYgKG11 bHQ6REYgKG1hdGNoX29wZXJhbmQ6REYgMSAiZ3BjX3JlZ19vcGVyYW5kIiAiJWYiKQorIAkJCSAg KG1hdGNoX29wZXJhbmQ6REYgMiAiZ3BjX3JlZ19vcGVyYW5kIiAiZiIpKQorIAkJIChtYXRjaF9v cGVyYW5kOkRGIDMgImdwY19yZWdfb3BlcmFuZCIgImYiKSkpXQorLSAgIlRBUkdFVF9IQVJEX0ZM T0FUICYmIFRBUkdFVF9GUFJTICYmIFRBUkdFVF9GVVNFRF9NQUREICYmIFRBUkdFVF9ET1VCTEVf RkxPQVQiCisrICAiVEFSR0VUX0hBUkRfRkxPQVQgJiYgVEFSR0VUX0ZQUlMgJiYgVEFSR0VUX0ZV U0VEX01BREQgJiYgVEFSR0VUX0RPVUJMRV9GTE9BVAorKyAgICYmIFZFQ1RPUl9VTklUX05PTkVf UCAoREZtb2RlKSIKKyAgICJ7Zm1hfGZtYWRkfSAlMCwlMSwlMiwlMyIKKyAgIFsoc2V0X2F0dHIg InR5cGUiICJkbXVsIikKKyAgICAoc2V0X2F0dHIgImZwX3R5cGUiICJmcF9tYWRkc3ViX2QiKV0p CisgCistKGRlZmluZV9pbnNuICIiCisrKGRlZmluZV9pbnNuICIqZm1zdWJkZjRfZnByIgorICAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6REYgMCAiZ3BjX3JlZ19vcGVyYW5kIiAiPWYiKQorIAkobWlu dXM6REYgKG11bHQ6REYgKG1hdGNoX29wZXJhbmQ6REYgMSAiZ3BjX3JlZ19vcGVyYW5kIiAiJWYi KQorIAkJCSAgIChtYXRjaF9vcGVyYW5kOkRGIDIgImdwY19yZWdfb3BlcmFuZCIgImYiKSkKKyAJ CSAgKG1hdGNoX29wZXJhbmQ6REYgMyAiZ3BjX3JlZ19vcGVyYW5kIiAiZiIpKSldCistICAiVEFS R0VUX0hBUkRfRkxPQVQgJiYgVEFSR0VUX0ZQUlMgJiYgVEFSR0VUX0ZVU0VEX01BREQgJiYgVEFS R0VUX0RPVUJMRV9GTE9BVCIKKysgICJUQVJHRVRfSEFSRF9GTE9BVCAmJiBUQVJHRVRfRlBSUyAm JiBUQVJHRVRfRlVTRURfTUFERCAmJiBUQVJHRVRfRE9VQkxFX0ZMT0FUCisrICAgJiYgVkVDVE9S X1VOSVRfTk9ORV9QIChERm1vZGUpIgorICAgIntmbXN8Zm1zdWJ9ICUwLCUxLCUyLCUzIgorICAg WyhzZXRfYXR0ciAidHlwZSIgImRtdWwiKQorICAgIChzZXRfYXR0ciAiZnBfdHlwZSIgImZwX21h ZGRzdWJfZCIpXSkKKyAKKy0oZGVmaW5lX2luc24gIiIKKysoZGVmaW5lX2luc24gIipmbm1hZGRk ZjRfZnByXzEiCisgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpERiAwICJncGNfcmVnX29wZXJhbmQi ICI9ZiIpCisgCShuZWc6REYgKHBsdXM6REYgKG11bHQ6REYgKG1hdGNoX29wZXJhbmQ6REYgMSAi Z3BjX3JlZ19vcGVyYW5kIiAiJWYiKQorIAkJCQkgIChtYXRjaF9vcGVyYW5kOkRGIDIgImdwY19y ZWdfb3BlcmFuZCIgImYiKSkKKyAJCQkgKG1hdGNoX29wZXJhbmQ6REYgMyAiZ3BjX3JlZ19vcGVy YW5kIiAiZiIpKSkpXQorICAgIlRBUkdFVF9IQVJEX0ZMT0FUICYmIFRBUkdFVF9GUFJTICYmIFRB UkdFVF9GVVNFRF9NQUREICYmIFRBUkdFVF9ET1VCTEVfRkxPQVQKKy0gICAmJiBIT05PUl9TSUdO RURfWkVST1MgKERGbW9kZSkiCisrICAgJiYgSE9OT1JfU0lHTkVEX1pFUk9TIChERm1vZGUpICYm IFZFQ1RPUl9VTklUX05PTkVfUCAoREZtb2RlKSIKKyAgICJ7Zm5tYXxmbm1hZGR9ICUwLCUxLCUy LCUzIgorICAgWyhzZXRfYXR0ciAidHlwZSIgImRtdWwiKQorICAgIChzZXRfYXR0ciAiZnBfdHlw ZSIgImZwX21hZGRzdWJfZCIpXSkKKyAKKy0oZGVmaW5lX2luc24gIiIKKysoZGVmaW5lX2luc24g Iipmbm1hZGRkZjRfZnByXzIiCisgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpERiAwICJncGNfcmVn X29wZXJhbmQiICI9ZiIpCisgCShtaW51czpERiAobXVsdDpERiAobmVnOkRGIChtYXRjaF9vcGVy YW5kOkRGIDEgImdwY19yZWdfb3BlcmFuZCIgImYiKSkKKyAJCQkgICAobWF0Y2hfb3BlcmFuZDpE RiAyICJncGNfcmVnX29wZXJhbmQiICJmIikpCisgCQkgIChtYXRjaF9vcGVyYW5kOkRGIDMgImdw Y19yZWdfb3BlcmFuZCIgImYiKSkpXQorICAgIlRBUkdFVF9IQVJEX0ZMT0FUICYmIFRBUkdFVF9G UFJTICYmIFRBUkdFVF9GVVNFRF9NQUREICYmIFRBUkdFVF9ET1VCTEVfRkxPQVQKKy0gICAmJiAh IEhPTk9SX1NJR05FRF9aRVJPUyAoREZtb2RlKSIKKysgICAmJiAhIEhPTk9SX1NJR05FRF9aRVJP UyAoREZtb2RlKSAmJiBWRUNUT1JfVU5JVF9OT05FX1AgKERGbW9kZSkiCisgICAie2ZubWF8Zm5t YWRkfSAlMCwlMSwlMiwlMyIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJkbXVsIikKKyAgICAoc2V0 X2F0dHIgImZwX3R5cGUiICJmcF9tYWRkc3ViX2QiKV0pCisgCistKGRlZmluZV9pbnNuICIiCisr KGRlZmluZV9pbnNuICIqZm5tc3ViZGY0X2Zwcl8xIgorICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6 REYgMCAiZ3BjX3JlZ19vcGVyYW5kIiAiPWYiKQorIAkobmVnOkRGIChtaW51czpERiAobXVsdDpE RiAobWF0Y2hfb3BlcmFuZDpERiAxICJncGNfcmVnX29wZXJhbmQiICIlZiIpCisgCQkJCSAgICht YXRjaF9vcGVyYW5kOkRGIDIgImdwY19yZWdfb3BlcmFuZCIgImYiKSkKKyAJCQkgIChtYXRjaF9v cGVyYW5kOkRGIDMgImdwY19yZWdfb3BlcmFuZCIgImYiKSkpKV0KKyAgICJUQVJHRVRfSEFSRF9G TE9BVCAmJiBUQVJHRVRfRlBSUyAmJiBUQVJHRVRfRlVTRURfTUFERCAmJiBUQVJHRVRfRE9VQkxF X0ZMT0FUCistICAgJiYgSE9OT1JfU0lHTkVEX1pFUk9TIChERm1vZGUpIgorKyAgICYmIEhPTk9S X1NJR05FRF9aRVJPUyAoREZtb2RlKSAmJiBWRUNUT1JfVU5JVF9OT05FX1AgKERGbW9kZSkiCisg ICAie2ZubXN8Zm5tc3VifSAlMCwlMSwlMiwlMyIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJkbXVs IikKKyAgICAoc2V0X2F0dHIgImZwX3R5cGUiICJmcF9tYWRkc3ViX2QiKV0pCisgCistKGRlZmlu ZV9pbnNuICIiCisrKGRlZmluZV9pbnNuICIqZm5tc3ViZGY0X2Zwcl8yIgorICAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6REYgMCAiZ3BjX3JlZ19vcGVyYW5kIiAiPWYiKQorIAkobWludXM6REYgKG1h dGNoX29wZXJhbmQ6REYgMyAiZ3BjX3JlZ19vcGVyYW5kIiAiZiIpCisgCSAgICAgICAgICAobXVs dDpERiAobWF0Y2hfb3BlcmFuZDpERiAxICJncGNfcmVnX29wZXJhbmQiICIlZiIpCisgCQkJICAg KG1hdGNoX29wZXJhbmQ6REYgMiAiZ3BjX3JlZ19vcGVyYW5kIiAiZiIpKSkpXQorICAgIlRBUkdF VF9IQVJEX0ZMT0FUICYmIFRBUkdFVF9GUFJTICYmIFRBUkdFVF9GVVNFRF9NQUREICYmIFRBUkdF VF9ET1VCTEVfRkxPQVQKKy0gICAmJiAhIEhPTk9SX1NJR05FRF9aRVJPUyAoREZtb2RlKSIKKysg ICAmJiAhIEhPTk9SX1NJR05FRF9aRVJPUyAoREZtb2RlKSAmJiBWRUNUT1JfVU5JVF9OT05FX1Ag KERGbW9kZSkiCisgICAie2ZubXN8Zm5tc3VifSAlMCwlMSwlMiwlMyIKKyAgIFsoc2V0X2F0dHIg InR5cGUiICJkbXVsIikKKyAgICAoc2V0X2F0dHIgImZwX3R5cGUiICJmcF9tYWRkc3ViX2QiKV0p CitAQCAtNTgyMyw3ICs1ODY3LDggQEAgKGRlZmluZV9pbnNuICJzcXJ0ZGYyIgorICAgWyhzZXQg KG1hdGNoX29wZXJhbmQ6REYgMCAiZ3BjX3JlZ19vcGVyYW5kIiAiPWYiKQorIAkoc3FydDpERiAo bWF0Y2hfb3BlcmFuZDpERiAxICJncGNfcmVnX29wZXJhbmQiICJmIikpKV0KKyAgICIoVEFSR0VU X1BQQ19HUE9QVCB8fCBUQVJHRVRfUE9XRVIyKSAmJiBUQVJHRVRfSEFSRF9GTE9BVCAmJiBUQVJH RVRfRlBSUyAKKy0gICAmJiBUQVJHRVRfRE9VQkxFX0ZMT0FUIgorKyAgICYmIFRBUkdFVF9ET1VC TEVfRkxPQVQKKysgICAmJiAhVkVDVE9SX1VOSVRfVlNYX1AgKERGbW9kZSkiCisgICAiZnNxcnQg JTAsJTEiCisgICBbKHNldF9hdHRyICJ0eXBlIiAiZHNxcnQiKV0pCisgCitAQCAtNTkxMiw2ICs1 OTU3LDE4IEBAIChkZWZpbmVfZXhwYW5kICJmaXhfdHJ1bmNzZnNpMiIKKyAgIlRBUkdFVF9IQVJE X0ZMT0FUICYmICFUQVJHRVRfRlBSUyAmJiBUQVJHRVRfU0lOR0xFX0ZMT0FUIgorICAiIikKKyAK KysoZGVmaW5lX2V4cGFuZCAiZml4dW5zX3RydW5jZGZzaTIiCisrICBbKHNldCAobWF0Y2hfb3Bl cmFuZDpTSSAwICJncGNfcmVnX29wZXJhbmQiICIiKQorKwkodW5zaWduZWRfZml4OlNJIChtYXRj aF9vcGVyYW5kOkRGIDEgImdwY19yZWdfb3BlcmFuZCIgIiIpKSldCisrICAiVEFSR0VUX0hBUkRf RkxPQVQgJiYgVEFSR0VUX0U1MDBfRE9VQkxFIgorKyAgIiIpCisrCisrKGRlZmluZV9leHBhbmQg ImZpeHVuc190cnVuY2RmZGkyIgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REkgMCAicmVnaXN0 ZXJfb3BlcmFuZCIgIiIpCisrCSh1bnNpZ25lZF9maXg6REkgKG1hdGNoX29wZXJhbmQ6REYgMSAi cmVnaXN0ZXJfb3BlcmFuZCIgIiIpKSldCisrICAiVEFSR0VUX0hBUkRfRkxPQVQgJiYgVEFSR0VU X1ZTWCIKKysgICIiKQorKworIDsgRm9yIGVhY2ggb2YgdGhlc2UgY29udmVyc2lvbnMsIHRoZXJl IGlzIGEgZGVmaW5lX2V4cGFuZCwgYSBkZWZpbmVfaW5zbgorIDsgd2l0aCBhICcjJyB0ZW1wbGF0 ZSwgYW5kIGEgZGVmaW5lX3NwbGl0ICh3aXRoIEMgY29kZSkuICBUaGUgaWRlYSBpcworIDsgdG8g YWxsb3cgY29uc3RhbnQgZm9sZGluZyB3aXRoIHRoZSB0ZW1wbGF0ZSBvZiB0aGUgZGVmaW5lX2lu c24sCitAQCAtNjE1MywxMCArNjIxMCwxNyBAQCAoZGVmaW5lX2luc24gImZjdGl3eiIKKyAgICJ7 ZmNpcnp8ZmN0aXd6fSAlMCwlMSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJmcCIpXSkKKyAKKy0o ZGVmaW5lX2luc24gImJ0cnVuY2RmMiIKKysoZGVmaW5lX2V4cGFuZCAiYnRydW5jZGYyIgorICAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6REYgMCAiZ3BjX3JlZ19vcGVyYW5kIiAiPWYiKQorIAkodW5z cGVjOkRGIFsobWF0Y2hfb3BlcmFuZDpERiAxICJncGNfcmVnX29wZXJhbmQiICJmIildIFVOU1BF Q19GUklaKSldCisgICAiVEFSR0VUX0ZQUk5EICYmIFRBUkdFVF9IQVJEX0ZMT0FUICYmIFRBUkdF VF9GUFJTICYmIFRBUkdFVF9ET1VCTEVfRkxPQVQiCisrICAiIikKKysKKysoZGVmaW5lX2luc24g IipidHJ1bmNkZjJfZnBycyIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRGIDAgImdwY19yZWdf b3BlcmFuZCIgIj1mIikKKysJKHVuc3BlYzpERiBbKG1hdGNoX29wZXJhbmQ6REYgMSAiZ3BjX3Jl Z19vcGVyYW5kIiAiZiIpXSBVTlNQRUNfRlJJWikpXQorKyAgIlRBUkdFVF9GUFJORCAmJiBUQVJH RVRfSEFSRF9GTE9BVCAmJiBUQVJHRVRfRlBSUyAmJiBUQVJHRVRfRE9VQkxFX0ZMT0FUCisrICAg JiYgIVZFQ1RPUl9VTklUX1ZTWF9QIChERm1vZGUpIgorICAgImZyaXogJTAsJTEiCisgICBbKHNl dF9hdHRyICJ0eXBlIiAiZnAiKV0pCisgCitAQCAtNjE2NywxMCArNjIzMSwxNyBAQCAoZGVmaW5l X2luc24gImJ0cnVuY3NmMiIKKyAgICJmcml6ICUwLCUxIgorICAgWyhzZXRfYXR0ciAidHlwZSIg ImZwIildKQorIAorLShkZWZpbmVfaW5zbiAiY2VpbGRmMiIKKysoZGVmaW5lX2V4cGFuZCAiY2Vp bGRmMiIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRGIDAgImdwY19yZWdfb3BlcmFuZCIgIiIp CisrCSh1bnNwZWM6REYgWyhtYXRjaF9vcGVyYW5kOkRGIDEgImdwY19yZWdfb3BlcmFuZCIgIiIp XSBVTlNQRUNfRlJJUCkpXQorKyAgIlRBUkdFVF9GUFJORCAmJiBUQVJHRVRfSEFSRF9GTE9BVCAm JiBUQVJHRVRfRlBSUyAmJiBUQVJHRVRfRE9VQkxFX0ZMT0FUIgorKyAgIiIpCisrCisrKGRlZmlu ZV9pbnNuICIqY2VpbGRmMl9mcHJzIgorICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REYgMCAiZ3Bj X3JlZ19vcGVyYW5kIiAiPWYiKQorIAkodW5zcGVjOkRGIFsobWF0Y2hfb3BlcmFuZDpERiAxICJn cGNfcmVnX29wZXJhbmQiICJmIildIFVOU1BFQ19GUklQKSldCistICAiVEFSR0VUX0ZQUk5EICYm IFRBUkdFVF9IQVJEX0ZMT0FUICYmIFRBUkdFVF9GUFJTICYmIFRBUkdFVF9ET1VCTEVfRkxPQVQi CisrICAiVEFSR0VUX0ZQUk5EICYmIFRBUkdFVF9IQVJEX0ZMT0FUICYmIFRBUkdFVF9GUFJTICYm IFRBUkdFVF9ET1VCTEVfRkxPQVQKKysgICAmJiAhVkVDVE9SX1VOSVRfVlNYX1AgKERGbW9kZSki CisgICAiZnJpcCAlMCwlMSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJmcCIpXSkKKyAKK0BAIC02 MTgxLDEwICs2MjUyLDE3IEBAIChkZWZpbmVfaW5zbiAiY2VpbHNmMiIKKyAgICJmcmlwICUwLCUx IgorICAgWyhzZXRfYXR0ciAidHlwZSIgImZwIildKQorIAorLShkZWZpbmVfaW5zbiAiZmxvb3Jk ZjIiCisrKGRlZmluZV9leHBhbmQgImZsb29yZGYyIgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6 REYgMCAiZ3BjX3JlZ19vcGVyYW5kIiAiIikKKysJKHVuc3BlYzpERiBbKG1hdGNoX29wZXJhbmQ6 REYgMSAiZ3BjX3JlZ19vcGVyYW5kIiAiIildIFVOU1BFQ19GUklNKSldCisrICAiVEFSR0VUX0ZQ Uk5EICYmIFRBUkdFVF9IQVJEX0ZMT0FUICYmIFRBUkdFVF9GUFJTICYmIFRBUkdFVF9ET1VCTEVf RkxPQVQiCisrICAiIikKKysKKysoZGVmaW5lX2luc24gIipmbG9vcmRmMl9mcHJzIgorICAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6REYgMCAiZ3BjX3JlZ19vcGVyYW5kIiAiPWYiKQorIAkodW5zcGVj OkRGIFsobWF0Y2hfb3BlcmFuZDpERiAxICJncGNfcmVnX29wZXJhbmQiICJmIildIFVOU1BFQ19G UklNKSldCistICAiVEFSR0VUX0ZQUk5EICYmIFRBUkdFVF9IQVJEX0ZMT0FUICYmIFRBUkdFVF9G UFJTICYmIFRBUkdFVF9ET1VCTEVfRkxPQVQiCisrICAiVEFSR0VUX0ZQUk5EICYmIFRBUkdFVF9I QVJEX0ZMT0FUICYmIFRBUkdFVF9GUFJTICYmIFRBUkdFVF9ET1VCTEVfRkxPQVQKKysgICAmJiAh VkVDVE9SX1VOSVRfVlNYX1AgKERGbW9kZSkiCisgICAiZnJpbSAlMCwlMSIKKyAgIFsoc2V0X2F0 dHIgInR5cGUiICJmcCIpXSkKKyAKK0BAIC02MTk1LDYgKzYyNzMsNyBAQCAoZGVmaW5lX2luc24g ImZsb29yc2YyIgorICAgImZyaW0gJTAsJTEiCisgICBbKHNldF9hdHRyICJ0eXBlIiAiZnAiKV0p CisgCisrOzsgTm8gVlNYIGVxdWl2YWxlbnQgdG8gZnJpbgorIChkZWZpbmVfaW5zbiAicm91bmRk ZjIiCisgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpERiAwICJncGNfcmVnX29wZXJhbmQiICI9ZiIp CisgCSh1bnNwZWM6REYgWyhtYXRjaF9vcGVyYW5kOkRGIDEgImdwY19yZWdfb3BlcmFuZCIgImYi KV0gVU5TUEVDX0ZSSU4pKV0KK0BAIC02MjA5LDYgKzYyODgsMTIgQEAgKGRlZmluZV9pbnNuICJy b3VuZHNmMiIKKyAgICJmcmluICUwLCUxIgorICAgWyhzZXRfYXR0ciAidHlwZSIgImZwIildKQor IAorKyhkZWZpbmVfZXhwYW5kICJmdHJ1bmNkZjIiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpE RiAwICJncGNfcmVnX29wZXJhbmQiICIiKQorKyAgCShmaXg6REYgKG1hdGNoX29wZXJhbmQ6REYg MSAiZ3BjX3JlZ19vcGVyYW5kIiAiIikpKV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAoREZtb2Rl KSIKKysgICIiKQorKworIDsgQW4gVU5TUEVDIGlzIHVzZWQgc28gd2UgZG9uJ3QgaGF2ZSB0byBz dXBwb3J0IFNJbW9kZSBpbiBGUCByZWdpc3RlcnMuCisgKGRlZmluZV9pbnNuICJzdGZpd3giCisg ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJtZW1vcnlfb3BlcmFuZCIgIj1aIikKK0BAIC02 MjI0LDE3ICs2MzA5LDQwIEBAIChkZWZpbmVfZXhwYW5kICJmbG9hdHNpc2YyIgorICAgIlRBUkdF VF9IQVJEX0ZMT0FUICYmICFUQVJHRVRfRlBSUyIKKyAgICIiKQorIAorLShkZWZpbmVfaW5zbiAi ZmxvYXRkaWRmMiIKKysoZGVmaW5lX2V4cGFuZCAiZmxvYXRkaWRmMiIKKysgIFsoc2V0IChtYXRj aF9vcGVyYW5kOkRGIDAgImdwY19yZWdfb3BlcmFuZCIgIiIpCisrCShmbG9hdDpERiAobWF0Y2hf b3BlcmFuZDpESSAxICJncGNfcmVnX29wZXJhbmQiICIiKSkpXQorKyAgIihUQVJHRVRfUE9XRVJQ QzY0IHx8IFRBUkdFVF9YSUxJTlhfRlBVIHx8IFZFQ1RPUl9VTklUX1ZTWF9QIChERm1vZGUpKQor KyAgICYmIFRBUkdFVF9IQVJEX0ZMT0FUICYmIFRBUkdFVF9ET1VCTEVfRkxPQVQgJiYgVEFSR0VU X0ZQUlMiCisrICAiIikKKysKKysoZGVmaW5lX2luc24gIipmbG9hdGRpZGYyX2ZwciIKKyAgIFso c2V0IChtYXRjaF9vcGVyYW5kOkRGIDAgImdwY19yZWdfb3BlcmFuZCIgIj1mIikKKyAJKGZsb2F0 OkRGIChtYXRjaF9vcGVyYW5kOkRJIDEgImdwY19yZWdfb3BlcmFuZCIgIiFmI3IiKSkpXQorLSAg IihUQVJHRVRfUE9XRVJQQzY0IHx8IFRBUkdFVF9YSUxJTlhfRlBVKSAmJiBUQVJHRVRfSEFSRF9G TE9BVCAmJiBUQVJHRVRfRE9VQkxFX0ZMT0FUICYmIFRBUkdFVF9GUFJTIgorKyAgIihUQVJHRVRf UE9XRVJQQzY0IHx8IFRBUkdFVF9YSUxJTlhfRlBVKQorKyAgICYmIFRBUkdFVF9IQVJEX0ZMT0FU ICYmIFRBUkdFVF9ET1VCTEVfRkxPQVQgJiYgVEFSR0VUX0ZQUlMKKysgICAmJiAhVkVDVE9SX1VO SVRfVlNYX1AgKERGbW9kZSkiCisgICAiZmNmaWQgJTAsJTEiCisgICBbKHNldF9hdHRyICJ0eXBl IiAiZnAiKV0pCisgCistKGRlZmluZV9pbnNuICJmaXhfdHJ1bmNkZmRpMiIKKysoZGVmaW5lX2V4 cGFuZCAiZmxvYXR1bnNkaWRmMiIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRGIDAgImdwY19y ZWdfb3BlcmFuZCIgIiIpCisrCSh1bnNpZ25lZF9mbG9hdDpERiAobWF0Y2hfb3BlcmFuZDpESSAx ICJncGNfcmVnX29wZXJhbmQiICIiKSkpXQorKyAgIlRBUkdFVF9WU1giCisrICAiIikKKysKKyso ZGVmaW5lX2V4cGFuZCAiZml4X3RydW5jZGZkaTIiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpE SSAwICJncGNfcmVnX29wZXJhbmQiICIiKQorKwkoZml4OkRJIChtYXRjaF9vcGVyYW5kOkRGIDEg ImdwY19yZWdfb3BlcmFuZCIgIiIpKSldCisrICAiKFRBUkdFVF9QT1dFUlBDNjQgfHwgVEFSR0VU X1hJTElOWF9GUFUgfHwgVkVDVE9SX1VOSVRfVlNYX1AgKERGbW9kZSkpCisrICAgICYmIFRBUkdF VF9IQVJEX0ZMT0FUICYmIFRBUkdFVF9ET1VCTEVfRkxPQVQgJiYgVEFSR0VUX0ZQUlMiCisrICAi IikKKysKKysoZGVmaW5lX2luc24gIipmaXhfdHJ1bmNkZmRpMl9mcHIiCisgICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpESSAwICJncGNfcmVnX29wZXJhbmQiICI9IWYjciIpCisgCShmaXg6REkgKG1h dGNoX29wZXJhbmQ6REYgMSAiZ3BjX3JlZ19vcGVyYW5kIiAiZiIpKSldCistICAiKFRBUkdFVF9Q T1dFUlBDNjQgfHwgVEFSR0VUX1hJTElOWF9GUFUpICYmIFRBUkdFVF9IQVJEX0ZMT0FUICYmIFRB UkdFVF9ET1VCTEVfRkxPQVQgJiYgVEFSR0VUX0ZQUlMiCisrICAiKFRBUkdFVF9QT1dFUlBDNjQg fHwgVEFSR0VUX1hJTElOWF9GUFUpICYmIFRBUkdFVF9IQVJEX0ZMT0FUCisrICAgICYmIFRBUkdF VF9ET1VCTEVfRkxPQVQgJiYgVEFSR0VUX0ZQUlMgJiYgIVZFQ1RPUl9VTklUX1ZTWF9QIChERm1v ZGUpIgorICAgImZjdGlkeiAlMCwlMSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJmcCIpXSkKKyAK K0BAIC03NjIzLDcgKzc3MzEsNyBAQCAoZGVmaW5lX2luc24gImFuZGRpM19tYyIKKyAgICBhbmRp LiAlMCwlMSwlYjIKKyAgICBhbmRpcy4gJTAsJTEsJXUyCisgICAgIyIKKy0gIFsoc2V0X2F0dHIg InR5cGUiICIqLCosKixjb21wYXJlLGNvbXBhcmUsKiIpCisrICBbKHNldF9hdHRyICJ0eXBlIiAi KiwqLCosZmFzdF9jb21wYXJlLGZhc3RfY29tcGFyZSwqIikKKyAgICAoc2V0X2F0dHIgImxlbmd0 aCIgIjQsNCw0LDQsNCw4IildKQorIAorIChkZWZpbmVfaW5zbiAiYW5kZGkzX25vbWMiCitAQCAt NzY4MSw3ICs3Nzg5LDkgQEAgKGRlZmluZV9pbnNuICIqYW5kZGkzX2ludGVybmFsMl9tYyIKKyAg ICAjCisgICAgIworICAgICMiCistICBbKHNldF9hdHRyICJ0eXBlIiAiY29tcGFyZSxjb21wYXJl LGRlbGF5ZWRfY29tcGFyZSxjb21wYXJlLGNvbXBhcmUsY29tcGFyZSxjb21wYXJlLGNvbXBhcmUs Y29tcGFyZSxjb21wYXJlLGNvbXBhcmUsY29tcGFyZSIpCisrICBbKHNldF9hdHRyICJ0eXBlIiAi ZmFzdF9jb21wYXJlLGNvbXBhcmUsZGVsYXllZF9jb21wYXJlLGZhc3RfY29tcGFyZSxcCisrCQkg ICAgIGZhc3RfY29tcGFyZSxjb21wYXJlLGNvbXBhcmUsY29tcGFyZSxjb21wYXJlLGNvbXBhcmUs XAorKwkJICAgICBjb21wYXJlLGNvbXBhcmUiKQorICAgIChzZXRfYXR0ciAibGVuZ3RoIiAiNCw0 LDQsNCw0LDgsOCw4LDgsOCw4LDEyIildKQorIAorIChkZWZpbmVfaW5zbiAiKmFuZGRpM19pbnRl cm5hbDJfbm9tYyIKK0BAIC03NzQ0LDcgKzc4NTQsOSBAQCAoZGVmaW5lX2luc24gIiphbmRkaTNf aW50ZXJuYWwzX21jIgorICAgICMKKyAgICAjCisgICAgIyIKKy0gIFsoc2V0X2F0dHIgInR5cGUi ICJjb21wYXJlLGNvbXBhcmUsZGVsYXllZF9jb21wYXJlLGNvbXBhcmUsY29tcGFyZSxjb21wYXJl LGNvbXBhcmUsY29tcGFyZSxjb21wYXJlLGNvbXBhcmUsY29tcGFyZSxjb21wYXJlIikKKysgIFso c2V0X2F0dHIgInR5cGUiICJmYXN0X2NvbXBhcmUsY29tcGFyZSxkZWxheWVkX2NvbXBhcmUsZmFz dF9jb21wYXJlLFwKKysJCSAgICAgZmFzdF9jb21wYXJlLGNvbXBhcmUsY29tcGFyZSxjb21wYXJl LGNvbXBhcmUsY29tcGFyZSxcCisrCQkgICAgIGNvbXBhcmUsY29tcGFyZSIpCisgICAgKHNldF9h dHRyICJsZW5ndGgiICI0LDQsNCw0LDQsOCw4LDgsOCw4LDgsMTIiKV0pCisgCisgKGRlZmluZV9p bnNuICIqYW5kZGkzX2ludGVybmFsM19ub21jIgorQEAgLTc4OTYsNyArODAwOCw3IEBAIChkZWZp bmVfaW5zbiAiKmJvb2xkaTNfaW50ZXJuYWwyIgorICAgIkAKKyAgICAlcTQuICUzLCUxLCUyCisg ICAgIyIKKy0gIFsoc2V0X2F0dHIgInR5cGUiICJjb21wYXJlIikKKysgIFsoc2V0X2F0dHIgInR5 cGUiICJmYXN0X2NvbXBhcmUsY29tcGFyZSIpCisgICAgKHNldF9hdHRyICJsZW5ndGgiICI0LDgi KV0pCisgCisgKGRlZmluZV9zcGxpdAorQEAgLTc5MjUsNyArODAzNyw3IEBAIChkZWZpbmVfaW5z biAiKmJvb2xkaTNfaW50ZXJuYWwzIgorICAgIkAKKyAgICAlcTQuICUwLCUxLCUyCisgICAgIyIK Ky0gIFsoc2V0X2F0dHIgInR5cGUiICJjb21wYXJlIikKKysgIFsoc2V0X2F0dHIgInR5cGUiICJm YXN0X2NvbXBhcmUsY29tcGFyZSIpCisgICAgKHNldF9hdHRyICJsZW5ndGgiICI0LDgiKV0pCisg CisgKGRlZmluZV9zcGxpdAorQEAgLTc5OTYsNyArODEwOCw3IEBAIChkZWZpbmVfaW5zbiAiKmJv b2xjZGkzX2ludGVybmFsMiIKKyAgICJACisgICAgJXE0LiAlMywlMiwlMQorICAgICMiCistICBb KHNldF9hdHRyICJ0eXBlIiAiY29tcGFyZSIpCisrICBbKHNldF9hdHRyICJ0eXBlIiAiZmFzdF9j b21wYXJlLGNvbXBhcmUiKQorICAgIChzZXRfYXR0ciAibGVuZ3RoIiAiNCw4IildKQorIAorIChk ZWZpbmVfc3BsaXQKK0BAIC04MDI1LDcgKzgxMzcsNyBAQCAoZGVmaW5lX2luc24gIipib29sY2Rp M19pbnRlcm5hbDMiCisgICAiQAorICAgICVxNC4gJTAsJTIsJTEKKyAgICAjIgorLSAgWyhzZXRf YXR0ciAidHlwZSIgImNvbXBhcmUiKQorKyAgWyhzZXRfYXR0ciAidHlwZSIgImZhc3RfY29tcGFy ZSxjb21wYXJlIikKKyAgICAoc2V0X2F0dHIgImxlbmd0aCIgIjQsOCIpXSkKKyAKKyAoZGVmaW5l X3NwbGl0CitAQCAtODA2Miw3ICs4MTc0LDcgQEAgKGRlZmluZV9pbnNuICIqYm9vbGNjZGkzX2lu dGVybmFsMiIKKyAgICJACisgICAgJXE0LiAlMywlMSwlMgorICAgICMiCistICBbKHNldF9hdHRy ICJ0eXBlIiAiY29tcGFyZSIpCisrICBbKHNldF9hdHRyICJ0eXBlIiAiZmFzdF9jb21wYXJlLGNv bXBhcmUiKQorICAgIChzZXRfYXR0ciAibGVuZ3RoIiAiNCw4IildKQorIAorIChkZWZpbmVfc3Bs aXQKK0BAIC04MDkxLDcgKzgyMDMsNyBAQCAoZGVmaW5lX2luc24gIipib29sY2NkaTNfaW50ZXJu YWwzIgorICAgIkAKKyAgICAlcTQuICUwLCUxLCUyCisgICAgIyIKKy0gIFsoc2V0X2F0dHIgInR5 cGUiICJjb21wYXJlIikKKysgIFsoc2V0X2F0dHIgInR5cGUiICJmYXN0X2NvbXBhcmUsY29tcGFy ZSIpCisgICAgKHNldF9hdHRyICJsZW5ndGgiICI0LDgiKV0pCisgCisgKGRlZmluZV9zcGxpdAor QEAgLTgxMDgsNiArODIyMCw1MSBAQCAoZGVmaW5lX3NwbGl0CisgCShjb21wYXJlOkNDIChtYXRj aF9kdXAgMCkKKyAJCSAgICAoY29uc3RfaW50IDApKSldCisgICAiIikKKysKKysoZGVmaW5lX2V4 cGFuZCAic21pbmRpMyIKKysgIFsobWF0Y2hfb3BlcmFuZDpESSAwICJncGNfcmVnX29wZXJhbmQi ICIiKQorKyAgIChtYXRjaF9vcGVyYW5kOkRJIDEgImdwY19yZWdfb3BlcmFuZCIgIiIpCisrICAg KG1hdGNoX29wZXJhbmQ6REkgMiAiZ3BjX3JlZ19vcGVyYW5kIiAiIildCisrICAiVEFSR0VUX0lT RUw2NCIKKysgICIKKyt7CisrICByczYwMDBfZW1pdF9taW5tYXggKG9wZXJhbmRzWzBdLCBTTUlO LCBvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMl0pOworKyAgRE9ORTsKKyt9IikKKysKKysoZGVmaW5l X2V4cGFuZCAic21heGRpMyIKKysgIFsobWF0Y2hfb3BlcmFuZDpESSAwICJncGNfcmVnX29wZXJh bmQiICIiKQorKyAgIChtYXRjaF9vcGVyYW5kOkRJIDEgImdwY19yZWdfb3BlcmFuZCIgIiIpCisr ICAgKG1hdGNoX29wZXJhbmQ6REkgMiAiZ3BjX3JlZ19vcGVyYW5kIiAiIildCisrICAiVEFSR0VU X0lTRUw2NCIKKysgICIKKyt7CisrICByczYwMDBfZW1pdF9taW5tYXggKG9wZXJhbmRzWzBdLCBT TUFYLCBvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMl0pOworKyAgRE9ORTsKKyt9IikKKysKKysoZGVm aW5lX2V4cGFuZCAidW1pbmRpMyIKKysgIFsobWF0Y2hfb3BlcmFuZDpESSAwICJncGNfcmVnX29w ZXJhbmQiICIiKQorKyAgIChtYXRjaF9vcGVyYW5kOkRJIDEgImdwY19yZWdfb3BlcmFuZCIgIiIp CisrICAgKG1hdGNoX29wZXJhbmQ6REkgMiAiZ3BjX3JlZ19vcGVyYW5kIiAiIildCisrICAiVEFS R0VUX0lTRUw2NCIKKysgICIKKyt7CisrICByczYwMDBfZW1pdF9taW5tYXggKG9wZXJhbmRzWzBd LCBVTUlOLCBvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMl0pOworKyAgRE9ORTsKKyt9IikKKysKKyso ZGVmaW5lX2V4cGFuZCAidW1heGRpMyIKKysgIFsobWF0Y2hfb3BlcmFuZDpESSAwICJncGNfcmVn X29wZXJhbmQiICIiKQorKyAgIChtYXRjaF9vcGVyYW5kOkRJIDEgImdwY19yZWdfb3BlcmFuZCIg IiIpCisrICAgKG1hdGNoX29wZXJhbmQ6REkgMiAiZ3BjX3JlZ19vcGVyYW5kIiAiIildCisrICAi VEFSR0VUX0lTRUw2NCIKKysgICIKKyt7CisrICByczYwMDBfZW1pdF9taW5tYXggKG9wZXJhbmRz WzBdLCBVTUFYLCBvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMl0pOworKyAgRE9ORTsKKyt9IikKKysK KyAMCisgOzsgTm93IGRlZmluZSB3YXlzIG9mIG1vdmluZyBkYXRhIGFyb3VuZC4KKyAKK0BAIC04 NTExLDggKzg2NjgsOCBAQCAoZGVmaW5lX3NwbGl0CisgOzsgVGhlICI/PyIgaXMgYSBrbHVkZ2Ug dW50aWwgd2UgY2FuIGZpZ3VyZSBvdXQgYSBtb3JlIHJlYXNvbmFibGUgd2F5CisgOzsgb2YgaGFu ZGxpbmcgdGhlc2Ugbm9uLW9mZnNldHRhYmxlIHZhbHVlcy4KKyAoZGVmaW5lX2luc24gIiptb3Zk Zl9oYXJkZmxvYXQzMiIKKy0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRGIDAgIm5vbmltbWVkaWF0 ZV9vcGVyYW5kIiAiPSFyLD8/cixtLGYsZixtLCFyLCFyLCFyIikKKy0JKG1hdGNoX29wZXJhbmQ6 REYgMSAiaW5wdXRfb3BlcmFuZCIgInIsbSxyLGYsbSxmLEcsSCxGIikpXQorKyAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6REYgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICI9IXIsID8/ciwgbSwgd3Ms ID93YSwgd3MsID93YSwgIFosID9aLCBmLCBmLCBtLCB3YSwgIXIsICFyLCAhciIpCisrCShtYXRj aF9vcGVyYW5kOkRGIDEgImlucHV0X29wZXJhbmQiICAgICAgICAgICJyLCAgIG0sIHIsIHdzLCAg d2EsICBaLCAgIFosIHdzLCB3YSwgZiwgbSwgZiwgIGosICBHLCAgSCwgIEYiKSldCisgICAiISBU QVJHRVRfUE9XRVJQQzY0ICYmIFRBUkdFVF9IQVJEX0ZMT0FUICYmIFRBUkdFVF9GUFJTICYmIFRB UkdFVF9ET1VCTEVfRkxPQVQgCisgICAgJiYgKGdwY19yZWdfb3BlcmFuZCAob3BlcmFuZHNbMF0s IERGbW9kZSkKKyAgICAgICAgfHwgZ3BjX3JlZ19vcGVyYW5kIChvcGVyYW5kc1sxXSwgREZtb2Rl KSkiCitAQCAtODU5MSwxOSArODc0OCwzMCBAQCAoZGVmaW5lX2luc24gIiptb3ZkZl9oYXJkZmxv YXQzMiIKKyAJICByZXR1cm4gXCJcIjsKKyAJfQorICAgICBjYXNlIDM6CistICAgICAgcmV0dXJu IFwiZm1yICUwLCUxXCI7CisgICAgIGNhc2UgNDoKKy0gICAgICByZXR1cm4gXCJsZmQlVTElWDEg JTAsJTFcIjsKKysgICAgICByZXR1cm4gXCJ4c2Nwc2duZHAgJXgwLCV4MSwleDFcIjsKKyAgICAg Y2FzZSA1OgorLSAgICAgIHJldHVybiBcInN0ZmQlVTAlWDAgJTEsJTBcIjsKKyAgICAgY2FzZSA2 OgorKyAgICAgIHJldHVybiBcImx4c2QlVTF4ICV4MCwleTFcIjsKKyAgICAgY2FzZSA3OgorICAg ICBjYXNlIDg6CisrICAgICAgcmV0dXJuIFwic3R4c2QlVTB4ICV4MSwleTBcIjsKKysgICAgY2Fz ZSA5OgorKyAgICAgIHJldHVybiBcImZtciAlMCwlMVwiOworKyAgICBjYXNlIDEwOgorKyAgICAg IHJldHVybiBcImxmZCVVMSVYMSAlMCwlMVwiOworKyAgICBjYXNlIDExOgorKyAgICAgIHJldHVy biBcInN0ZmQlVTAlWDAgJTEsJTBcIjsKKysgICAgY2FzZSAxMjoKKysgICAgICByZXR1cm4gXCJ4 eGx4b3IgJXgwLCV4MCwleDBcIjsKKysgICAgY2FzZSAxMzoKKysgICAgY2FzZSAxNDoKKysgICAg Y2FzZSAxNToKKyAgICAgICByZXR1cm4gXCIjXCI7CisgICAgIH0KKyB9IgorLSAgWyhzZXRfYXR0 ciAidHlwZSIgInR3byxsb2FkLHN0b3JlLGZwLGZwbG9hZCxmcHN0b3JlLCosKiwqIikKKy0gICAo c2V0X2F0dHIgImxlbmd0aCIgIjgsMTYsMTYsNCw0LDQsOCwxMiwxNiIpXSkKKysgIFsoc2V0X2F0 dHIgInR5cGUiICJ0d28sIGxvYWQsIHN0b3JlLCBmcCwgZnAsIGZwbG9hZCwgZnBsb2FkLCBmcHN0 b3JlLCBmcHN0b3JlLCBmcCwgZnBsb2FkLCBmcHN0b3JlLCB2ZWNzaW1wbGUsICosICAqLCAgKiIp CisrICAgKHNldF9hdHRyICJsZW5ndGgiICI4LCAgIDE2LCAgICAxNiwgIDQsICA0LCAgICAgIDQs ICAgICAgNCwgICAgICAgNCwgICAgICAgNCwgIDQsICAgICAgNCwgICAgICAgNCwgICAgICAgICA0 LCA4LCAxMiwgMTYiKV0pCisgCisgKGRlZmluZV9pbnNuICIqbW92ZGZfc29mdGZsb2F0MzIiCisg ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpERiAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIj1yLHIs bSxyLHIsciIpCitAQCAtODY1MSwxOSArODgxOSwyNiBAQCAoZGVmaW5lX2luc24gIiptb3ZkZl9z b2Z0ZmxvYXQzMiIKKyA7IGxkL3N0ZCByZXF1aXJlIHdvcmQtYWxpZ25lZCBkaXNwbGFjZW1lbnRz IC0+ICdZJyBjb25zdHJhaW50LgorIDsgTGlzdCBZLT5yIGFuZCByLT5ZIGJlZm9yZSByLT5yIGZv ciByZWxvYWQuCisgKGRlZmluZV9pbnNuICIqbW92ZGZfaGFyZGZsb2F0NjRfbWZwZ3ByIgorLSAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6REYgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICI9WSxyLCFy LGYsZixtLCpjKmwsIXIsKmgsIXIsIXIsIXIscixmIikKKy0JKG1hdGNoX29wZXJhbmQ6REYgMSAi aW5wdXRfb3BlcmFuZCIgInIsWSxyLGYsbSxmLHIsaCwwLEcsSCxGLGYsciIpKV0KKysgIFsoc2V0 IChtYXRjaF9vcGVyYW5kOkRGIDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiPVksIHIsICFyLCB3 cywgP3dhLCB3cywgP3dhLCAgWiwgP1osIGYsIGYsIG0sIHdhLCAqYypsLCAhciwgKmgsICFyLCAh ciwgIXIsIHIsIGYiKQorKwkobWF0Y2hfb3BlcmFuZDpERiAxICJpbnB1dF9vcGVyYW5kIiAgICAg ICAgICJyLCBZLCAgciwgd3MsID93YSwgIFosICAgWiwgd3MsIHdhLCBmLCBtLCBmLCAgaiwgICAg ciwgIGgsICAwLCAgRywgIEgsICBGLCBmLCByIikpXQorICAgIlRBUkdFVF9QT1dFUlBDNjQgJiYg VEFSR0VUX01GUEdQUiAmJiBUQVJHRVRfSEFSRF9GTE9BVCAmJiBUQVJHRVRfRlBSUyAKKy0gICAm JiBUQVJHRVRfRE9VQkxFX0ZMT0FUIAorKyAgICYmIFRBUkdFVF9ET1VCTEVfRkxPQVQKKyAgICAm JiAoZ3BjX3JlZ19vcGVyYW5kIChvcGVyYW5kc1swXSwgREZtb2RlKQorICAgICAgICB8fCBncGNf cmVnX29wZXJhbmQgKG9wZXJhbmRzWzFdLCBERm1vZGUpKSIKKyAgICJACisgICAgc3RkJVUwJVgw ICUxLCUwCisgICAgbGQlVTElWDEgJTAsJTEKKyAgICBtciAlMCwlMQorKyAgIHhzY3BzZ25kcCAl eDAsJXgxLCV4MQorKyAgIHhzY3BzZ25kcCAleDAsJXgxLCV4MQorKyAgIGx4c2QlVTF4ICV4MCwl eTEKKysgICBseHNkJVUxeCAleDAsJXkxCisrICAgc3R4c2QlVTB4ICV4MSwleTAKKysgICBzdHhz ZCVVMHggJXgxLCV5MAorICAgIGZtciAlMCwlMQorICAgIGxmZCVVMSVYMSAlMCwlMQorICAgIHN0 ZmQlVTAlWDAgJTEsJTAKKysgICB4eGx4b3IgJXgwLCV4MCwleDAKKyAgICBtdCUwICUxCisgICAg bWYlMSAlMAorICAgIHtjcm9yIDAsMCwwfG5vcH0KK0BAIC04NjcyLDMzICs4ODQ3LDQwIEBAIChk ZWZpbmVfaW5zbiAiKm1vdmRmX2hhcmRmbG9hdDY0X21mcGdwciIKKyAgICAjCisgICAgbWZ0Z3By ICUwLCUxCisgICAgbWZmZ3ByICUwLCUxIgorLSAgWyhzZXRfYXR0ciAidHlwZSIgInN0b3JlLGxv YWQsKixmcCxmcGxvYWQsZnBzdG9yZSxtdGptcHIsbWZqbXByLCosKiwqLCosbWZ0Z3ByLG1mZmdw ciIpCistICAgKHNldF9hdHRyICJsZW5ndGgiICI0LDQsNCw0LDQsNCw0LDQsNCw4LDEyLDE2LDQs NCIpXSkKKysgIFsoc2V0X2F0dHIgInR5cGUiICJzdG9yZSwgbG9hZCwgKiwgZnAsIGZwLCBmcGxv YWQsIGZwbG9hZCwgZnBzdG9yZSwgZnBzdG9yZSwgZnAsIGZwbG9hZCwgZnBzdG9yZSwgdmVjc2lt cGxlLCBtdGptcHIsIG1mam1wciwgKiwgKiwgICosICAqLCBtZnRncHIsIG1mZmdwciIpCisrICAg KHNldF9hdHRyICJsZW5ndGgiICAgIjQsICAgIDQsIDQsICA0LCAgNCwgICAgICA0LCAgICAgIDQs ICAgICAgIDQsICAgICAgIDQsICA0LCAgICAgIDQsICAgICAgIDQsICAgICAgICAgNCwgICAgICA0 LCAgICAgIDQsIDQsIDgsIDEyLCAxNiwgICAgICA0LCAgICAgIDQiKV0pCisgCisgOyBsZC9zdGQg cmVxdWlyZSB3b3JkLWFsaWduZWQgZGlzcGxhY2VtZW50cyAtPiAnWScgY29uc3RyYWludC4KKyA7 IExpc3QgWS0+ciBhbmQgci0+WSBiZWZvcmUgci0+ciBmb3IgcmVsb2FkLgorIChkZWZpbmVfaW5z biAiKm1vdmRmX2hhcmRmbG9hdDY0IgorLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REYgMCAibm9u aW1tZWRpYXRlX29wZXJhbmQiICI9WSxyLCFyLGYsZixtLCpjKmwsIXIsKmgsIXIsIXIsIXIiKQor LQkobWF0Y2hfb3BlcmFuZDpERiAxICJpbnB1dF9vcGVyYW5kIiAicixZLHIsZixtLGYscixoLDAs RyxILEYiKSldCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpERiAwICJub25pbW1lZGlhdGVfb3Bl cmFuZCIgIj1ZLCByLCAhciwgd3MsID93YSwgd3MsID93YSwgIFosID9aLCBmLCBmLCBtLCB3YSwg KmMqbCwgIXIsICpoLCAhciwgIXIsICFyIikKKysJKG1hdGNoX29wZXJhbmQ6REYgMSAiaW5wdXRf b3BlcmFuZCIgICAgICAgICAiciwgWSwgIHIsIHdzLCAgd2EsICBaLCAgIFosIHdzLCB3YSwgZiwg bSwgZiwgIGosICAgIHIsICBoLCAgMCwgIEcsICBILCAgRiIpKV0KKyAgICJUQVJHRVRfUE9XRVJQ QzY0ICYmICFUQVJHRVRfTUZQR1BSICYmIFRBUkdFVF9IQVJEX0ZMT0FUICYmIFRBUkdFVF9GUFJT IAorLSAgICYmIFRBUkdFVF9ET1VCTEVfRkxPQVQgCisrICAgJiYgVEFSR0VUX0RPVUJMRV9GTE9B VAorICAgICYmIChncGNfcmVnX29wZXJhbmQgKG9wZXJhbmRzWzBdLCBERm1vZGUpCisgICAgICAg IHx8IGdwY19yZWdfb3BlcmFuZCAob3BlcmFuZHNbMV0sIERGbW9kZSkpIgorICAgIkAKKyAgICBz dGQlVTAlWDAgJTEsJTAKKyAgICBsZCVVMSVYMSAlMCwlMQorICAgIG1yICUwLCUxCisrICAgeHNj cHNnbmRwICV4MCwleDEsJXgxCisrICAgeHNjcHNnbmRwICV4MCwleDEsJXgxCisrICAgbHhzZCVV MXggJXgwLCV5MQorKyAgIGx4c2QlVTF4ICV4MCwleTEKKysgICBzdHhzZCVVMHggJXgxLCV5MAor KyAgIHN0eHNkJVUweCAleDEsJXkwCisgICAgZm1yICUwLCUxCisgICAgbGZkJVUxJVgxICUwLCUx CisgICAgc3RmZCVVMCVYMCAlMSwlMAorKyAgIHh4bHhvciAleDAsJXgwLCV4MAorICAgIG10JTAg JTEKKyAgICBtZiUxICUwCisgICAge2Nyb3IgMCwwLDB8bm9wfQorICAgICMKKyAgICAjCisgICAg IyIKKy0gIFsoc2V0X2F0dHIgInR5cGUiICJzdG9yZSxsb2FkLCosZnAsZnBsb2FkLGZwc3RvcmUs bXRqbXByLG1mam1wciwqLCosKiwqIikKKy0gICAoc2V0X2F0dHIgImxlbmd0aCIgIjQsNCw0LDQs NCw0LDQsNCw0LDgsMTIsMTYiKV0pCisrICBbKHNldF9hdHRyICJ0eXBlIiAic3RvcmUsIGxvYWQs ICosIGZwLCBmcCwgZnBsb2FkLCBmcGxvYWQsIGZwc3RvcmUsIGZwc3RvcmUsIGZwLCBmcGxvYWQs IGZwc3RvcmUsIHZlY3NpbXBsZSwgbXRqbXByLCBtZmptcHIsICAqLCAgKiwgICosICAqIikKKysg ICAoc2V0X2F0dHIgImxlbmd0aCIgIiAgNCwgICAgNCwgNCwgIDQsICA0LCAgICAgIDQsICAgICAg NCwgICAgICAgNCwgICAgICAgNCwgIDQsICAgICAgNCwgICAgICAgNCwgICAgICAgICA0LCAgICAg IDQsICAgICAgNCwgIDQsICA4LCAxMiwgMTYiKV0pCisgCisgKGRlZmluZV9pbnNuICIqbW92ZGZf c29mdGZsb2F0NjQiCisgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpERiAwICJub25pbW1lZGlhdGVf b3BlcmFuZCIgIj1yLFkscixjbCxyLHIscixyLCpoIikKK0BAIC05Mjc1LDE1ICs5NDU3LDE2IEBA IChkZWZpbmVfaW5zbiAiKm1vdnRpX3N0cmluZyIKKyAoZGVmaW5lX2luc24gIiptb3Z0aV9wcGM2 NCIKKyAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlRJIDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAi PXIsbzw+LHIiKQorIAkobWF0Y2hfb3BlcmFuZDpUSSAxICJpbnB1dF9vcGVyYW5kIiAicixyLG0i KSldCistICAiVEFSR0VUX1BPV0VSUEM2NCAmJiAoZ3BjX3JlZ19vcGVyYW5kIChvcGVyYW5kc1sw XSwgVEltb2RlKQorLSAgIHx8IGdwY19yZWdfb3BlcmFuZCAob3BlcmFuZHNbMV0sIFRJbW9kZSkp IgorKyAgIihUQVJHRVRfUE9XRVJQQzY0ICYmIChncGNfcmVnX29wZXJhbmQgKG9wZXJhbmRzWzBd LCBUSW1vZGUpCisrICAgIHx8IGdwY19yZWdfb3BlcmFuZCAob3BlcmFuZHNbMV0sIFRJbW9kZSkp KQorKyAgICYmIFZFQ1RPUl9NRU1fTk9ORV9QIChUSW1vZGUpIgorICAgIiMiCisgICBbKHNldF9h dHRyICJ0eXBlIiAiKixsb2FkLHN0b3JlIildKQorIAorIChkZWZpbmVfc3BsaXQKKyAgIFsoc2V0 IChtYXRjaF9vcGVyYW5kOlRJIDAgImdwY19yZWdfb3BlcmFuZCIgIiIpCisgCShtYXRjaF9vcGVy YW5kOlRJIDEgImNvbnN0X2RvdWJsZV9vcGVyYW5kIiAiIikpXQorLSAgIlRBUkdFVF9QT1dFUlBD NjQiCisrICAiVEFSR0VUX1BPV0VSUEM2NCAmJiBWRUNUT1JfTUVNX05PTkVfUCAoVEltb2RlKSIK KyAgIFsoc2V0IChtYXRjaF9kdXAgMikgKG1hdGNoX2R1cCA0KSkKKyAgICAoc2V0IChtYXRjaF9k dXAgMykgKG1hdGNoX2R1cCA1KSldCisgICAiCitAQCAtOTMwOSw3ICs5NDkyLDcgQEAgKGRlZmlu ZV9zcGxpdAorIChkZWZpbmVfc3BsaXQKKyAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlRJIDAgIm5v bmltbWVkaWF0ZV9vcGVyYW5kIiAiIikKKyAgICAgICAgIChtYXRjaF9vcGVyYW5kOlRJIDEgImlu cHV0X29wZXJhbmQiICIiKSldCistICAicmVsb2FkX2NvbXBsZXRlZAorKyAgInJlbG9hZF9jb21w bGV0ZWQgJiYgVkVDVE9SX01FTV9OT05FX1AgKFRJbW9kZSkKKyAgICAmJiBncHJfb3JfZ3ByX3Ag KG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSkiCisgICBbKHBjKV0KKyB7IHJzNjAwMF9zcGxpdF9t dWx0aXJlZ19tb3ZlIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0pOyBET05FOyB9KQorQEAgLTE0 OTI5LDYgKzE1MTEyLDggQEAgKGRlZmluZV9pbnNuICJwcmVmZXRjaCIKKyAMCisgCisgKGluY2x1 ZGUgInN5bmMubWQiKQorKyhpbmNsdWRlICJ2ZWN0b3IubWQiKQorKyhpbmNsdWRlICJ2c3gubWQi KQorIChpbmNsdWRlICJhbHRpdmVjLm1kIikKKyAoaW5jbHVkZSAic3BlLm1kIikKKyAoaW5jbHVk ZSAiZGZwLm1kIikKKy0tLSBnY2MvY29uZmlnL3JzNjAwMC9lNTAwLmgJKC4uLi90cnVuaykJKHJl dmlzaW9uIDE0NDU1NykKKysrKyBnY2MvY29uZmlnL3JzNjAwMC9lNTAwLmgJKC4uLi9icmFuY2hl cy9pYm0vcG93ZXI3LW1laXNzbmVyKQkocmV2aXNpb24gMTQ0NjkyKQorQEAgLTM3LDYgKzM3LDgg QEAKKyAgICAgICB7CQkJCQkJCQkJXAorIAlpZiAoVEFSR0VUX0FMVElWRUMpCQkJCQkJXAorIAkg IGVycm9yICgiQWx0aVZlYyBhbmQgRTUwMCBpbnN0cnVjdGlvbnMgY2Fubm90IGNvZXhpc3QiKTsJ XAorKwlpZiAoVEFSR0VUX1ZTWCkJCQkJCQkJXAorKwkgIGVycm9yICgiVlNYIGFuZCBFNTAwIGlu c3RydWN0aW9ucyBjYW5ub3QgY29leGlzdCIpOwkJXAorIAlpZiAoVEFSR0VUXzY0QklUKQkJCQkJ CVwKKyAJICBlcnJvciAoIjY0LWJpdCBFNTAwIG5vdCBzdXBwb3J0ZWQiKTsJCQkJXAorIAlpZiAo VEFSR0VUX0hBUkRfRkxPQVQgJiYgVEFSR0VUX0ZQUlMpCQkJCVwKKy0tLSBnY2MvY29uZmlnL3Jz NjAwMC9kcml2ZXItcnM2MDAwLmMJKC4uLi90cnVuaykJKHJldmlzaW9uIDE0NDU1NykKKysrKyBn Y2MvY29uZmlnL3JzNjAwMC9kcml2ZXItcnM2MDAwLmMJKC4uLi9icmFuY2hlcy9pYm0vcG93ZXI3 LW1laXNzbmVyKQkocmV2aXNpb24gMTQ0NjkyKQorQEAgLTM0MywxMSArMzQzLDExNSBAQCBkZXRl Y3RfcHJvY2Vzc29yX2FpeCAodm9pZCkKKyAjZW5kaWYgLyogX0FJWCAqLworIAorIAorKy8qCisr ICogQXJyYXkgdG8gbWFwIC1tY3B1PW5hdGl2ZSBuYW1lcyB0byB0aGUgc3dpdGNoZXMgcGFzc2Vk IHRvIHRoZSBhc3NlbWJsZXIuCisrICogVGhpcyBsaXN0IG1pcnJvcnMgdGhlIHNwZWNzIGluIEFT TV9DUFVfU1BFQywgYW5kIGFueSBjaGFuZ2VzIG1hZGUgaGVyZQorKyAqIHNob3VsZCBiZSBtYWRl IHRoZXJlIGFzIHdlbGwuCisrICovCisrCisrc3RydWN0IGFzbV9uYW1lIHsKKysgIGNvbnN0IGNo YXIgKmNwdTsKKysgIGNvbnN0IGNoYXIgKmFzbV9zdzsKKyt9OworKworK3N0YXRpYyBjb25zdAor K3N0cnVjdCBhc21fbmFtZSBhc21fbmFtZXNbXSA9IHsKKysjaWYgZGVmaW5lZCAoX0FJWCkKKysg IHsgInBvd2VyMyIsCSItbTYyMCIgfSwKKysgIHsgInBvd2VyNCIsCSItbXB3cjQiIH0sCisrICB7 ICJwb3dlcjUiLAkiLW1wd3I1IiB9LAorKyAgeyAicG93ZXI1KyIsCSItbXB3cjV4IiB9LAorKyAg eyAicG93ZXI2IiwJIi1tcHdyNiIgfSwKKysgIHsgInBvd2VyNngiLAkiLW1wd3I2IiB9LAorKyAg eyAicG93ZXI3IiwJIi1tcHdyNyIgfSwKKysgIHsgInBvd2VycGMiLAkiLW1wcGMiIH0sCisrICB7 ICJyczY0YSIsCSItbXBwYyIgfSwKKysgIHsgIjYwMyIsCSItbTYwMyIgfSwKKysgIHsgIjYwM2Ui LAkiLW02MDMiIH0sCisrICB7ICI2MDQiLAkiLW02MDQiIH0sCisrICB7ICI2MDRlIiwJIi1tNjA0 IiB9LAorKyAgeyAiNjIwIiwJIi1tNjIwIiB9LAorKyAgeyAiNjMwIiwJIi1tNjIwIiB9LAorKyAg eyAiOTcwIiwJIi1tOTcwIiB9LAorKyAgeyAiRzUiLAkiLW05NzAiIH0sCisrICB7IE5VTEwsCSJc CisrJXshbWFpeDY0OiBcCisrJXttcG93ZXJwYzY0OiAtbXBwYzY0fSBcCisrJXttYWx0aXZlYzog LW05NzB9IFwKKysleyFtYWx0aXZlYzogJXshbXBvd2VyNjQ6ICUoYXNtX2RlZmF1bHQpfX19IiB9 LAorKworKyNlbHNlCisrICB7ICJjb21tb24iLAkiLW1jb20iIH0sCisrICB7ICJjZWxsIiwJIi1t Y2VsbCIgfSwKKysgIHsgInBvd2VyIiwJIi1tcHdyIiB9LAorKyAgeyAicG93ZXIyIiwJIi1tcHdy eCIgfSwKKysgIHsgInBvd2VyMyIsCSItbXBwYzY0IiB9LAorKyAgeyAicG93ZXI0IiwJIi1tcG93 ZXI0IiB9LAorKyAgeyAicG93ZXI1IiwJIiUoYXNtX2NwdV9wb3dlcjUpIiB9LAorKyAgeyAicG93 ZXI1KyIsCSIlKGFzbV9jcHVfcG93ZXI1KSIgfSwKKysgIHsgInBvd2VyNiIsCSIlKGFzbV9jcHVf cG93ZXI2KSAtbWFsdGl2ZWMiIH0sCisrICB7ICJwb3dlcjZ4IiwJIiUoYXNtX2NwdV9wb3dlcjYp IC1tYWx0aXZlYyIgfSwKKysgIHsgInBvd2VyNyIsCSIlKGFzbV9jcHVfcG93ZXI3KSIgfSwKKysg IHsgInBvd2VycGMiLAkiLW1wcGMiIH0sCisrICB7ICJyaW9zIiwJIi1tcHdyIiB9LAorKyAgeyAi cmlvczEiLAkiLW1wd3IiIH0sCisrICB7ICJyaW9zMiIsCSItbXB3cngiIH0sCisrICB7ICJyc2Mi LAkiLW1wd3IiIH0sCisrICB7ICJyc2MxIiwJIi1tcHdyIiB9LAorKyAgeyAicnM2NGEiLAkiLW1w cGM2NCIgfSwKKysgIHsgIjQwMSIsCSItbXBwYyIgfSwKKysgIHsgIjQwMyIsCSItbTQwMyIgfSwK KysgIHsgIjQwNSIsCSItbTQwNSIgfSwKKysgIHsgIjQwNWZwIiwJIi1tNDA1IiB9LAorKyAgeyAi NDQwIiwJIi1tNDQwIiB9LAorKyAgeyAiNDQwZnAiLAkiLW00NDAiIH0sCisrICB7ICI0NjQiLAki LW00NDAiIH0sCisrICB7ICI0NjRmcCIsCSItbTQ0MCIgfSwKKysgIHsgIjUwNSIsCSItbXBwYyIg fSwKKysgIHsgIjYwMSIsCSItbTYwMSIgfSwKKysgIHsgIjYwMiIsCSItbXBwYyIgfSwKKysgIHsg IjYwMyIsCSItbXBwYyIgfSwKKysgIHsgIjYwM2UiLAkiLW1wcGMiIH0sCisrICB7ICJlYzYwM2Ui LAkiLW1wcGMiIH0sCisrICB7ICI2MDQiLAkiLW1wcGMiIH0sCisrICB7ICI2MDRlIiwJIi1tcHBj IiB9LAorKyAgeyAiNjIwIiwJIi1tcHBjNjQiIH0sCisrICB7ICI2MzAiLAkiLW1wcGM2NCIgfSwK KysgIHsgIjc0MCIsCSItbXBwYyIgfSwKKysgIHsgIjc1MCIsCSItbXBwYyIgfSwKKysgIHsgIkcz IiwJIi1tcHBjIiB9LAorKyAgeyAiNzQwMCIsCSItbXBwYyAtbWFsdGl2ZWMiIH0sCisrICB7ICI3 NDUwIiwJIi1tcHBjIC1tYWx0aXZlYyIgfSwKKysgIHsgIkc0IiwJIi1tcHBjIC1tYWx0aXZlYyIg fSwKKysgIHsgIjgwMSIsCSItbXBwYyIgfSwKKysgIHsgIjgyMSIsCSItbXBwYyIgfSwKKysgIHsg IjgyMyIsCSItbXBwYyIgfSwKKysgIHsgIjg2MCIsCSItbXBwYyIgfSwKKysgIHsgIjk3MCIsCSIt bXBvd2VyNCAtbWFsdGl2ZWMiIH0sCisrICB7ICJHNSIsCSItbXBvd2VyNCAtbWFsdGl2ZWMiIH0s CisrICB7ICI4NTQwIiwJIi1tZTUwMCIgfSwKKysgIHsgIjg1NDgiLAkiLW1lNTAwIiB9LAorKyAg eyAiZTMwMGMyIiwJIi1tZTMwMCIgfSwKKysgIHsgImUzMDBjMyIsCSItbWUzMDAiIH0sCisrICB7 ICJlNTAwbWMiLAkiLW1lNTAwbWMiIH0sCisrICB7IE5VTEwsCSJcCisrJXttcG93ZXI6ICV7IW1w b3dlcjI6IC1tcHdyfX0gXAorKyV7bXBvd2VyMjogLW1wd3J4fSBcCisrJXttcG93ZXJwYzY0Kjog LW1wcGM2NH0gXAorKyV7IW1wb3dlcnBjNjQqOiAle21wb3dlcnBjKjogLW1wcGN9fSBcCisrJXtt bm8tcG93ZXI6ICV7IW1wb3dlcnBjKjogLW1jb219fSBcCisrJXshbW5vLXBvd2VyOiAleyFtcG93 ZXIqOiAlKGFzbV9kZWZhdWx0KX19IiB9LAorKyNlbmRpZgorK307CisrCisgLyogVGhpcyB3aWxs IGJlIGNhbGxlZCBieSB0aGUgc3BlYyBwYXJzZXIgaW4gZ2NjLmMgd2hlbiBpdCBzZWVzCisgICAg YSAlOmxvY2FsX2NwdV9kZXRlY3QoYXJncykgY29uc3RydWN0LiAgQ3VycmVudGx5IGl0IHdpbGwg YmUgY2FsbGVkCisgICAgd2l0aCBlaXRoZXIgImFyY2giIG9yICJ0dW5lIiBhcyBhcmd1bWVudCBk ZXBlbmRpbmcgb24gaWYgLW1hcmNoPW5hdGl2ZQorICAgIG9yIC1tdHVuZT1uYXRpdmUgaXMgdG8g YmUgc3Vic3RpdHV0ZWQuCisgCisrICAgQWRkaXRpb25hbGx5IGl0IHdpbGwgYmUgY2FsbGVkIHdp dGggImFzbSIgdG8gc2VsZWN0IHRoZSBhcHByb3ByaWF0ZSBmbGFncworKyAgIGZvciB0aGUgYXNz ZW1ibGVyLgorKworICAgIEl0IHJldHVybnMgYSBzdHJpbmcgY29udGFpbmluZyBuZXcgY29tbWFu ZCBsaW5lIHBhcmFtZXRlcnMgdG8gYmUKKyAgICBwdXQgYXQgdGhlIHBsYWNlIG9mIHRoZSBhYm92 ZSB0d28gb3B0aW9ucywgZGVwZW5kaW5nIG9uIHdoYXQgQ1BVCisgICAgdGhpcyBpcyBleGVjdXRl ZC4KK0BAIC0zNjEsMjkgKzQ2NSwzNSBAQCBjb25zdCBjaGFyCisgICBjb25zdCBjaGFyICpjYWNo ZSA9ICIiOworICAgY29uc3QgY2hhciAqb3B0aW9ucyA9ICIiOworICAgYm9vbCBhcmNoOworKyAg Ym9vbCBhc3NlbWJsZXI7CisrICBzaXplX3QgaTsKKyAKKyAgIGlmIChhcmdjIDwgMSkKKyAgICAg cmV0dXJuIE5VTEw7CisgCisgICBhcmNoID0gc3RyY21wIChhcmd2WzBdLCAiY3B1IikgPT0gMDsK Ky0gIGlmICghYXJjaCAmJiBzdHJjbXAgKGFyZ3ZbMF0sICJ0dW5lIikpCisrICBhc3NlbWJsZXIg PSAoIWFyY2ggJiYgc3RyY21wIChhcmd2WzBdLCAiYXNtIikgPT0gMCk7CisrICBpZiAoIWFyY2gg JiYgIWFzc2VtYmxlciAmJiBzdHJjbXAgKGFyZ3ZbMF0sICJ0dW5lIikpCisgICAgIHJldHVybiBO VUxMOworIAorKyAgaWYgKCEgYXNzZW1ibGVyKQorKyAgICB7CisgI2lmIGRlZmluZWQgKF9BSVgp CistICBjYWNoZSA9IGRldGVjdF9jYWNoZXNfYWl4ICgpOworKyAgICAgIGNhY2hlID0gZGV0ZWN0 X2NhY2hlc19haXggKCk7CisgI2VsaWYgZGVmaW5lZCAoX19BUFBMRV9fKQorLSAgY2FjaGUgPSBk ZXRlY3RfY2FjaGVzX2RhcndpbiAoKTsKKysgICAgICBjYWNoZSA9IGRldGVjdF9jYWNoZXNfZGFy d2luICgpOworICNlbGlmIGRlZmluZWQgKF9fRnJlZUJTRF9fKQorLSAgY2FjaGUgPSBkZXRlY3Rf Y2FjaGVzX2ZyZWVic2QgKCk7CistICAvKiBGcmVlQlNEIFBQQyBkb2VzIG5vdCBwcm92aWRlIGFu eSBjYWNoZSBpbmZvcm1hdGlvbiB5ZXQuICAqLworLSAgY2FjaGUgPSAiIjsKKysgICAgICBjYWNo ZSA9IGRldGVjdF9jYWNoZXNfZnJlZWJzZCAoKTsKKysgICAgICAvKiBGcmVlQlNEIFBQQyBkb2Vz IG5vdCBwcm92aWRlIGFueSBjYWNoZSBpbmZvcm1hdGlvbiB5ZXQuICAqLworKyAgICAgIGNhY2hl ID0gIiI7CisgI2VsaWYgZGVmaW5lZCAoX19saW51eF9fKQorLSAgY2FjaGUgPSBkZXRlY3RfY2Fj aGVzX2xpbnV4ICgpOworLSAgLyogUFBDIExpbnV4IGRvZXMgbm90IHByb3ZpZGUgYW55IGNhY2hl IGluZm9ybWF0aW9uIHlldC4gICovCistICBjYWNoZSA9ICIiOworKyAgICAgIGNhY2hlID0gZGV0 ZWN0X2NhY2hlc19saW51eCAoKTsKKysgICAgICAvKiBQUEMgTGludXggZG9lcyBub3QgcHJvdmlk ZSBhbnkgY2FjaGUgaW5mb3JtYXRpb24geWV0LiAgKi8KKysgICAgICBjYWNoZSA9ICIiOworICNl bHNlCistICBjYWNoZSA9ICIiOworKyAgICAgIGNhY2hlID0gIiI7CisgI2VuZGlmCisrICAgIH0K KyAKKyAjaWYgZGVmaW5lZCAoX0FJWCkKKyAgIGNwdSA9IGRldGVjdF9wcm9jZXNzb3JfYWl4ICgp OworQEAgLTM5Nyw2ICs1MDcsMTcgQEAgY29uc3QgY2hhcgorICAgY3B1ID0gInBvd2VycGMiOwor ICNlbmRpZgorIAorKyAgaWYgKGFzc2VtYmxlcikKKysgICAgeworKyAgICAgIGZvciAoaSA9IDA7 IGkgPCBzaXplb2YgKGFzbV9uYW1lcykgLyBzaXplb2YgKGFzbV9uYW1lc1swXSk7IGkrKykKKysJ eworKwkgIGlmICghYXNtX25hbWVzW2ldLmNwdSB8fCAhc3RyY21wIChhc21fbmFtZXNbaV0uY3B1 LCBjcHUpKQorKwkgICAgcmV0dXJuIGFzbV9uYW1lc1tpXS5hc21fc3c7CisrCX0KKysKKysgICAg ICByZXR1cm4gTlVMTDsKKysgICAgfQorKworICAgcmV0dXJuIGNvbmNhdCAoY2FjaGUsICItbSIs IGFyZ3ZbMF0sICI9IiwgY3B1LCAiICIsIG9wdGlvbnMsIE5VTEwpOworIH0KKyAKKy0tLSBnY2Mv Y29uZmlnL3JzNjAwMC9zeXN2NC5oCSguLi4vdHJ1bmspCShyZXZpc2lvbiAxNDQ1NTcpCisrKysg Z2NjL2NvbmZpZy9yczYwMDAvc3lzdjQuaAkoLi4uL2JyYW5jaGVzL2libS9wb3dlcjctbWVpc3Nu ZXIpCShyZXZpc2lvbiAxNDQ2OTIpCitAQCAtMTE5LDkgKzExOSw5IEBAIGRvIHsJCQkJCQkJCQlc CisgICBlbHNlIGlmICghc3RyY21wIChyczYwMDBfYWJpX25hbWUsICJpOTYwLW9sZCIpKQkJCVwK KyAgICAgewkJCQkJCQkJCVwKKyAgICAgICByczYwMDBfY3VycmVudF9hYmkgPSBBQklfVjQ7CQkJ CQlcCistICAgICAgdGFyZ2V0X2ZsYWdzIHw9IChNQVNLX0xJVFRMRV9FTkRJQU4gfCBNQVNLX0VB QkkJCQlcCistCQkgICAgICAgfCBNQVNLX05PX0JJVEZJRUxEX1dPUkQpOwkJCVwKKysgICAgICB0 YXJnZXRfZmxhZ3MgfD0gKE1BU0tfTElUVExFX0VORElBTiB8IE1BU0tfRUFCSSk7CQkJXAorICAg ICAgIHRhcmdldF9mbGFncyAmPSB+TUFTS19TVFJJQ1RfQUxJR047CQkJCVwKKysgICAgICBUQVJH RVRfTk9fQklURklFTERfV09SRCA9IDE7CQkJCQlcCisgICAgIH0JCQkJCQkJCQlcCisgICBlbHNl CQkJCQkJCQkJXAorICAgICB7CQkJCQkJCQkJXAorCg==