From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out30-133.freemail.mail.aliyun.com (out30-133.freemail.mail.aliyun.com [115.124.30.133]) by sourceware.org (Postfix) with ESMTPS id 8F4893857BAA for ; Thu, 11 Jan 2024 09:54:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8F4893857BAA Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.alibaba.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linux.alibaba.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 8F4893857BAA Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=115.124.30.133 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704966895; cv=none; b=YZU5tAwzLMreLhq/OzU3DBB93/YsosLVGnIA7wdQO+4U1C2xQQ8QeODgNjOKotkJdMTZrDcoYxThhtVQOvyBIb5xF8qjbVtJUHRsCaxnMb/YsayXh2BpsR7SEfI9J3I6qb3wfYNwskFgku9HdzPXEw4CGD1n9ZrYJCQWNbZeej8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704966895; c=relaxed/simple; bh=ry35Y0m5XBG41IXDuWT1lNlqMgQDltDChlYGm72sqfk=; h=Date:From:To:Message-ID:Subject:MIME-Version; b=TOM6Av5ZjXZUi61FM2pEuWWmVEqs7Gm5hbjt0Cco3R5Ifey+Kpt/LuI0JKRTiG+s9++1X8PyeHfJe7w+wss15q1y4iJkFAdPtzsCjzfy/sFyoZYJ6zIt0xkdC7XTpEo6ebnolyE+YwafZIrDgVz6cc9qaghaQVdkjtA63i6ZlKs= ARC-Authentication-Results: i=1; server2.sourceware.org X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R831e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018045170;MF=cooper.joshua@linux.alibaba.com;NM=1;PH=DW;RN=10;SR=0;TI=W4_0.2.3_v5ForWebDing_2125303E_1704966849271_o7001c13u; Received: from WS-web (cooper.joshua@linux.alibaba.com[W4_0.2.3_v5ForWebDing_2125303E_1704966849271_o7001c13u]) at Thu, 11 Jan 2024 17:54:09 +0800 Date: Thu, 11 Jan 2024 17:54:09 +0800 From: "joshua" To: "juzhe.zhong@rivai.ai" , "gcc-patches" Cc: "Jim Wilson" , "palmer" , "andrew" , "philipp.tomsich" , "jeffreyalaw" , "christoph.muellner" , "jinma" , "cooper.qu" Reply-To: "joshua" Message-ID: Subject: =?UTF-8?B?UmXvvJpbUEFUQ0ggdjVdIFJJU0MtVjogQWRkIHN1cHBvcnQgZm9yIHh0aGVhZHZlY3Rvci1z?= =?UTF-8?B?cGVjaWZpYyBpbnRyaW5zaWNzLg==?= X-Mailer: [Alimail-Mailagent revision 79][W4_0.2.3][v5ForWebDing][Chrome] MIME-Version: 1.0 x-aliyun-im-through: {"mailThroughImNew":true} References: <7F92468914239FA8+202401111707330397793@rivai.ai> x-aliyun-mail-creator: W4_0.2.3_v5ForWebDing_SFRTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEyMC4wLjAuMCBTYWZhcmkvNTM3LjM2IEVkZy8xMjAuMC4wLjA=Ch In-Reply-To: <7F92468914239FA8+202401111707330397793@rivai.ai> Content-Type: multipart/alternative; boundary="----=ALIBOUNDARY_58049_7f6c9a501700_659fbac1_c379" X-Spam-Status: No, score=-18.8 required=5.0 tests=BAYES_00,BODY_8BITS,ENV_AND_HDR_SPF_MATCH,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SCC_5_SHORT_WORD_LINES,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY,USER_IN_DEF_SPF_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: ------=ALIBOUNDARY_58049_7f6c9a501700_659fbac1_c379 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 VGhlICJBZGQgc3VwcG9ydCBmb3IgeHRoZWFkdmVjdG9yLXNwZWNpZmljIGlu dHJpbnNpY3MiIHBhdGNoIGhhcyBiZWVuIHVwZGF0ZWQKYWNjb3JkaW5nIHRv IHRoZSBjb21tZW50cy4KW1BBVENIIHY1XSBSSVNDLVY6IEFkZCBzdXBwb3J0 IGZvciB4dGhlYWR2ZWN0b3Itc3BlY2lmaWMgaW50cmluc2ljcy4gKGdudS5v cmcpIDxodHRwczovL2djYy5nbnUub3JnL3BpcGVybWFpbC9nY2MtcGF0Y2hl cy8yMDI0LUphbnVhcnkvNjQyNjI3Lmh0bWwgPgotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0K5Y+R5Lu25Lq677yaanV6aGUuemhvbmdAcml2YWkuYWkgPGp1emhl Lnpob25nQHJpdmFpLmFpPgrlj5HpgIHml7bpl7TvvJoyMDI05bm0MeaciDEx 5pelKOaYn+acn+WbmykgMTc6MDcK5pS25Lu25Lq677yaImNvb3Blci5qb3No dWEiPGNvb3Blci5qb3NodWFAbGludXguYWxpYmFiYS5jb20+OyAiZ2NjLXBh dGNoZXMiPGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnPgrmioTjgIDpgIHvvJpK aW0gV2lsc29uPGppbS53aWxzb24uZ2NjQGdtYWlsLmNvbT47IHBhbG1lcjxw YWxtZXJAZGFiYmVsdC5jb20+OyBhbmRyZXc8YW5kcmV3QHNpZml2ZS5jb20+ OyAicGhpbGlwcC50b21zaWNoIjxwaGlsaXBwLnRvbXNpY2hAdnJ1bGwuZXU+ OyBqZWZmcmV5YWxhdzxqZWZmcmV5YWxhd0BnbWFpbC5jb20+OyAiY2hyaXN0 b3BoLm11ZWxsbmVyIjxjaHJpc3RvcGgubXVlbGxuZXJAdnJ1bGwuZXU+OyAi Y29vcGVyLmpvc2h1YSI8Y29vcGVyLmpvc2h1YUBsaW51eC5hbGliYWJhLmNv bT47IGppbm1hPGppbm1hQGxpbnV4LmFsaWJhYmEuY29tPjsgImNvb3Blci5x dSI8Y29vcGVyLnF1QGxpbnV4LmFsaWJhYmEuY29tPgrkuLvjgIDpopjvvJpS ZTogW1BBVENIIHY1XSBSSVNDLVY6IEFkZCBzdXBwb3J0IGZvciB4dGhlYWR2 ZWN0b3Itc3BlY2lmaWMgaW50cmluc2ljcy4KZW51bSByZXF1aXJlZF9leHQK ewogVkVDVE9SX0VYVCwgLyogVmVjdG9yIGV4dGVuc2lvbiAqLworIFhUSEVB RFZFQ1RPUl9FWFQsIC8qIFhUaGVhZFZlY3RvciBleHRlbnNpb24gKi8KIFpW QkJfRVhULCAvKiBDcnl0byB2ZWN0b3IgWnZiYiBzdWItZXh0ICovCiBaVkJC X09SX1pWS0JfRVhULCAvKiBDcnl0byB2ZWN0b3IgWnZiYiBvciB6dmtiIHN1 Yi1leHQgKi8KIFpWQkNfRVhULCAvKiBDcnlwdG8gdmVjdG9yIFp2YmMgc3Vi LWV4dCAqLwpBZGQgdGhlYWR2ZWN0b3IgdG8gdGhlIGVuZCBvZiB0aGUgZW51 bS4KKyBjYXNlIFhUSEVBRFZFQ1RPUl9FWFQ6CisgcmV0dXJuIFRBUkdFVF9Y VEhFQURWRUNUT1I7ClNhbWUuCisgIiYmIHJlZ2lzdGVyX29wZXJhbmQgKG9w ZXJhbmRzWzBdLCA8TU9ERT5tb2RlKQorICYmIHJlZ2lzdGVyX29wZXJhbmQg KG9wZXJhbmRzWzNdLCA8TU9ERT5tb2RlKQorICYmIHNhdGlzZmllc19jb25z dHJhaW50X3Z1IChvcGVyYW5kc1syXSkKKyAmJiBJTlRWQUwgKG9wZXJhbmRz WzddKSA9PSByaXNjdl92ZWN0b3I6OlZMTUFYIgpZb3UgY2FuIHVzZSB3aG9s ZV9yZWdfdG9fcmVnX21vdmVfcApCdHcsIEkgcmV2aWV3IGFnYWluIDogUklT Qy1WOiBIYW5kbGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBYVGhlYWR2ZWN0b3Ig YW5kIFZlY3RvcgogKGFueV9leHRlbmQ6VldFWFRJIChtYXRjaF9vcGVyYW5k OjxWX0RPVUJMRV9UUlVOQz4gMyAicmVnaXN0ZXJfb3BlcmFuZCIgIlcyMSxX MjEsVzIxLFcyMSxXNDIsVzQyLFc0MixXNDIsVzg0LFc4NCxXODQsVzg0LCB2 ciwgdnIiKSkgKG1hdGNoX29wZXJhbmQ6VldFWFRJIDIgInZlY3Rvcl9tZXJn ZV9vcGVyYW5kIiAiIHZ1LCB2dSwgMCwgMCwgdnUsIHZ1LCAwLCAwLCB2dSwg dnUsIDAsIDAsIHZ1LCAwIikpKV0gLSAiVEFSR0VUX1ZFQ1RPUiIgKyAiVEFS R0VUX1ZFQ1RPUiAmJiAhVEFSR0VUX1hUSEVBRFZFQ1RPUiIgInY8c3o+ZXh0 LnZmMlx0JTAsJTMlcDEiIFsoc2V0X2F0dHIgInR5cGUiICJ2ZXh0IikgKHNl dF9hdHRyICJtb2RlIiAiPE1PREU+IikgQEAgLTM3MTMsNyArMzc0NCw3IEBA IChhbnlfZXh0ZW5kOlZRRVhUSSAobWF0Y2hfb3BlcmFuZDo8Vl9RVUFEX1RS VU5DPiAzICJyZWdpc3Rlcl9vcGVyYW5kIiAiVzQzLFc0MyxXNDMsVzQzLFc4 NixXODYsVzg2LFc4NiwgdnIsIHZyIikpIChtYXRjaF9vcGVyYW5kOlZRRVhU SSAyICJ2ZWN0b3JfbWVyZ2Vfb3BlcmFuZCIgIiB2dSwgdnUsIDAsIDAsIHZ1 LCB2dSwgMCwgMCwgdnUsIDAiKSkpXSAtICJUQVJHRVRfVkVDVE9SIiArICJU QVJHRVRfVkVDVE9SICYmICFUQVJHRVRfWFRIRUFEVkVDVE9SIiAidjxzej5l eHQudmY0XHQlMCwlMyVwMSIgWyhzZXRfYXR0ciAidHlwZSIgInZleHQiKSAo c2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKSBAQCAtMzczNCw3ICszNzY1LDcg QEAgKGFueV9leHRlbmQ6Vk9FWFRJIChtYXRjaF9vcGVyYW5kOjxWX09DVF9U UlVOQz4gMyAicmVnaXN0ZXJfb3BlcmFuZCIgIlc4NyxXODcsVzg3LFc4Nywg dnIsIHZyIikpIChtYXRjaF9vcGVyYW5kOlZPRVhUSSAyICJ2ZWN0b3JfbWVy Z2Vfb3BlcmFuZCIgIiB2dSwgdnUsIDAsIDAsIHZ1LCAwIikpKV0gLSAiVEFS R0VUX1ZFQ1RPUiIgKyAiVEFSR0VUX1ZFQ1RPUiAmJiAhVEFSR0VUX1hUSEVB RFZFQ1RPUiIgInY8c3o+ZXh0LnZmOFx0JTAsJTMlcDEiIFsoc2V0X2F0dHIg InR5cGUiICJ2ZXh0IikgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IikKV2h5 IGRvIHlvdSBhZGQgdGhlc2UgIVRBUkdFUlRfWFRIRUFEVkVDUlRPUiA/Cmp1 emhlLnpob25nQHJpdmFpLmFpCkZyb206IEp1biBTaGEgKEpvc2h1YSkgPG1h aWx0bzpjb29wZXIuam9zaHVhQGxpbnV4LmFsaWJhYmEuY29tID4KRGF0ZTog MjAyNC0wMS0xMSAxNjo0NgpUbzogZ2NjLXBhdGNoZXMgPG1haWx0bzpnY2Mt cGF0Y2hlc0BnY2MuZ251Lm9yZyA+CkNDOiBqaW0ud2lsc29uLmdjYyA8bWFp bHRvOmppbS53aWxzb24uZ2NjQGdtYWlsLmNvbSA+OyBwYWxtZXIgPG1haWx0 bzpwYWxtZXJAZGFiYmVsdC5jb20gPjsgYW5kcmV3IDxtYWlsdG86YW5kcmV3 QHNpZml2ZS5jb20gPjsgcGhpbGlwcC50b21zaWNoIDxtYWlsdG86cGhpbGlw cC50b21zaWNoQHZydWxsLmV1ID47IGplZmZyZXlhbGF3IDxtYWlsdG86amVm ZnJleWFsYXdAZ21haWwuY29tID47IGNocmlzdG9waC5tdWVsbG5lciA8bWFp bHRvOmNocmlzdG9waC5tdWVsbG5lckB2cnVsbC5ldSA+OyBqdXpoZS56aG9u ZyA8bWFpbHRvOmp1emhlLnpob25nQHJpdmFpLmFpID47IEp1biBTaGEgKEpv c2h1YSkgPG1haWx0bzpjb29wZXIuam9zaHVhQGxpbnV4LmFsaWJhYmEuY29t ID47IEppbiBNYSA8bWFpbHRvOmppbm1hQGxpbnV4LmFsaWJhYmEuY29tID47 IFhpYW5taWFvIFF1IDxtYWlsdG86Y29vcGVyLnF1QGxpbnV4LmFsaWJhYmEu Y29tID4KU3ViamVjdDogW1BBVENIIHY1XSBSSVNDLVY6IEFkZCBzdXBwb3J0 IGZvciB4dGhlYWR2ZWN0b3Itc3BlY2lmaWMgaW50cmluc2ljcy4KVGhpcyBw YXRjaCBvbmx5IGludm9sdmVzIHRoZSBnZW5lcmF0aW9uIG9mIHh0aGVhZHZl Y3RvcgpzcGVjaWFsIGxvYWQvc3RvcmUgaW5zdHJ1Y3Rpb25zIGFuZCB2ZXh0 IGluc3RydWN0aW9ucy4KZ2NjL0NoYW5nZUxvZzoKICogY29uZmlnL3Jpc2N2 L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jYwogKGNsYXNzIHRoX2xv YWRzdG9yZV93aWR0aCk6IERlZmluZSBuZXcgYnVpbHRpbiBiYXNlcy4KIChj bGFzcyB0aF9leHRyYWN0KTogRGVmaW5lIG5ldyBidWlsdGluIGJhc2VzLgog KEJBU0UpOiBEZWZpbmUgbmV3IGJ1aWx0aW4gYmFzZXMuCiAqIGNvbmZpZy9y aXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuaDoKIERlZmluZSBu ZXcgYnVpbHRpbiBjbGFzcy4KICogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1idWlsdGlucy1zaGFwZXMuY2MKIChzdHJ1Y3QgdGhfbG9hZHN0b3JlX3dp ZHRoX2RlZik6IERlZmluZSBuZXcgYnVpbHRpbiBzaGFwZXMuCiAoc3RydWN0 IHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoX2RlZik6CiBEZWZpbmUgbmV3 IGJ1aWx0aW4gc2hhcGVzLgogKHN0cnVjdCB0aF9leHRyYWN0X2RlZik6IERl ZmluZSBuZXcgYnVpbHRpbiBzaGFwZXMuCiAoU0hBUEUpOiBEZWZpbmUgbmV3 IGJ1aWx0aW4gc2hhcGVzLgogKiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9y LWJ1aWx0aW5zLXNoYXBlcy5oOgogRGVmaW5lIG5ldyBidWlsdGluIHNoYXBl cy4KICogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5jYyAo REVGX1JWVl9GVU5DVElPTik6CiAqIGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0 b3ItYnVpbHRpbnMuaCAoZW51bSByZXF1aXJlZF9leHQpOgogKHN0cnVjdCBm dW5jdGlvbl9ncm91cF9pbmZvKToKICogY29uZmlnL3Jpc2N2L3QtcmlzY3Y6 IEFkZCB0aGVhZC12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZgogKiBj b25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLm1kCiAoQHByZWRfbW92X3dpZHRo PHZsbWVtX29wX2F0dHI+PG1vZGU+KTogQWRkIG5ldyBwYXR0ZXJucy4KICgq cHJlZF9tb3Zfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4pOiBMaWtld2lz ZS4KIChAcHJlZF9zdG9yZV93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPik6 IExpa2V3aXNlLgogKEBwcmVkX3N0cmlkZWRfbG9hZF93aWR0aDx2bG1lbV9v cF9hdHRyPjxtb2RlPik6IExpa2V3aXNlLgogKEBwcmVkX3N0cmlkZWRfc3Rv cmVfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4pOiBMaWtld2lzZS4KIChA cHJlZF9pbmRleGVkX2xvYWRfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4p OiBMaWtld2lzZS4KIChAcHJlZF9pbmRleGVkXzx2bG1lbV9vcmRlcl9hdHRy PnN0b3JlX3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+KToKIChAcHJlZF90 aF9leHRyYWN0PG1vZGU+KTogTGlrZXdpc2UuCiAoKnByZWRfdGhfZXh0cmFj dDxtb2RlPik6IExpa2V3aXNlLgogKiBjb25maWcvcmlzY3YvdGhlYWQtdmVj dG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWY6IE5ldyBmaWxlLgpnY2MvdGVz dHN1aXRlL0NoYW5nZUxvZzoKICogZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRo ZWFkdmVjdG9yL3ZsYi12c2IuYzogTmV3IHRlc3QuCiAqIGdjYy50YXJnZXQv cmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGJ1LXZzYi5jOiBOZXcgdGVzdC4K ICogZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsaC12c2gu YzogTmV3IHRlc3QuCiAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZl Y3Rvci92bGh1LXZzaC5jOiBOZXcgdGVzdC4KICogZ2NjLnRhcmdldC9yaXNj di9ydnYveHRoZWFkdmVjdG9yL3Zsdy12c3cuYzogTmV3IHRlc3QuCiAqIGdj Yy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bHd1LXZzdy5jOiBO ZXcgdGVzdC4KQ28tYXV0aG9yZWQtYnk6IEppbiBNYSA8amlubWFAbGludXgu YWxpYmFiYS5jb20+CkNvLWF1dGhvcmVkLWJ5OiBYaWFubWlhbyBRdSA8Y29v cGVyLnF1QGxpbnV4LmFsaWJhYmEuY29tPgpDby1hdXRob3JlZC1ieTogQ2hy aXN0b3BoIE3DvGxsbmVyIDxjaHJpc3RvcGgubXVlbGxuZXJAdnJ1bGwuZXU+ Ci0tLQogLi4uL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5j YyB8IDEzOSArKysrKysrKysrCiAuLi4vcmlzY3YvcmlzY3YtdmVjdG9yLWJ1 aWx0aW5zLWJhc2VzLmggfCAzMSArKysKIC4uLi9yaXNjdi9yaXNjdi12ZWN0 b3ItYnVpbHRpbnMtc2hhcGVzLmNjIHwgMTYwICsrKysrKysrKysrCiAuLi4v cmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5oIHwgMyArCiBn Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5jYyB8IDcw ICsrKysrCiBnY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlu cy5oIHwgMyArCiBnY2MvY29uZmlnL3Jpc2N2L3QtcmlzY3YgfCAxICsKIC4u Li9yaXNjdi90aGVhZC12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZiB8 IDM5ICsrKwogZ2NjL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3IubWQgfCAy NTMgKysrKysrKysrKysrKysrKysrCiAuLi4vcmlzY3YvcnZ2L3h0aGVhZHZl Y3Rvci92bGItdnNiLmMgfCA2OCArKysrKwogLi4uL3Jpc2N2L3J2di94dGhl YWR2ZWN0b3IvdmxidS12c2IuYyB8IDY4ICsrKysrCiAuLi4vcmlzY3YvcnZ2 L3h0aGVhZHZlY3Rvci92bGgtdnNoLmMgfCA2OCArKysrKwogLi4uL3Jpc2N2 L3J2di94dGhlYWR2ZWN0b3IvdmxodS12c2guYyB8IDY4ICsrKysrCiAuLi4v cmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bHctdnN3LmMgfCA2OCArKysrKwog Li4uL3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3dS12c3cuYyB8IDY4ICsr KysrCiAxNSBmaWxlcyBjaGFuZ2VkLCAxMTA3IGluc2VydGlvbnMoKykKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBnY2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rv ci1idWlsdGlucy1mdW5jdGlvbnMuZGVmCiBjcmVhdGUgbW9kZSAxMDA2NDQg Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0 b3IvdmxiLXZzYi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxidS12c2Iu YwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsaC12c2guYwogY3JlYXRlIG1v ZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv eHRoZWFkdmVjdG9yL3ZsaHUtdnNoLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBn Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rv ci92bHctdnN3LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bHd1LXZzdy5j CmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1i dWlsdGlucy1iYXNlcy5jYyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVj dG9yLWJ1aWx0aW5zLWJhc2VzLmNjCmluZGV4IDQ2ZjFhMWRhMzNlLi4zZWJh Nzk0Mzc1NyAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12 ZWN0b3ItYnVpbHRpbnMtYmFzZXMuY2MKKysrIGIvZ2NjL2NvbmZpZy9yaXNj di9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuY2MKQEAgLTIxMjUsNiAr MjEyNSw4MyBAQCBwdWJsaWM6CiB9CiB9OworLyogSW1wbGVtZW50cworICog dGgudmwoYi9oL3cpW3VdLnYvdGgudnMoYi9oL3cpW3VdLnYvdGgudmxzKGIv aC93KVt1XS52L3RoLnZzcyhiL2gvdylbdV0udi8KKyAqIHRoLnZseChiL2gv dylbdV0udi90aC52c1t1XXgoYi9oL3cpLnYKKyAqIGNvZGVnZW4uICovCit0 ZW1wbGF0ZTxib29sIFNUT1JFX1AsIGxzdF90eXBlIExTVF9UWVBFLCBpbnQg VU5TUEVDPgorY2xhc3MgdGhfbG9hZHN0b3JlX3dpZHRoIDogcHVibGljIGZ1 bmN0aW9uX2Jhc2UKK3sKK3B1YmxpYzoKKyBib29sIGFwcGx5X3RhaWxfcG9s aWN5X3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIVNUT1JFX1A7IH0K KyBib29sIGFwcGx5X21hc2tfcG9saWN5X3AgKCkgY29uc3Qgb3ZlcnJpZGUg eyByZXR1cm4gIVNUT1JFX1A7IH0KKworIHVuc2lnbmVkIGludCBjYWxsX3By b3BlcnRpZXMgKGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNlICYpIGNvbnN0IG92 ZXJyaWRlCisgeworIGlmIChTVE9SRV9QKQorIHJldHVybiBDUF9XUklURV9N RU1PUlk7CisgZWxzZQorIHJldHVybiBDUF9SRUFEX01FTU9SWTsKKyB9CisK KyBib29sIGNhbl9iZV9vdmVybG9hZGVkX3AgKGVudW0gcHJlZGljYXRpb25f dHlwZV9pbmRleCBwcmVkKSBjb25zdCBvdmVycmlkZQorIHsKKyBpZiAoU1RP UkVfUCB8fCBMU1RfVFlQRSA9PSBMU1RfSU5ERVhFRCkKKyByZXR1cm4gdHJ1 ZTsKKyByZXR1cm4gcHJlZCAhPSBQUkVEX1RZUEVfbm9uZTsKKyB9CisKKyBy dHggZXhwYW5kIChmdW5jdGlvbl9leHBhbmRlciAmZSkgY29uc3Qgb3ZlcnJp ZGUKKyB7CisgZ2NjX2Fzc2VydCAoVEFSR0VUX1hUSEVBRFZFQ1RPUik7Cisg aWYgKExTVF9UWVBFID09IExTVF9JTkRFWEVEKQorIHsKKyBpZiAoU1RPUkVf UCkKKyByZXR1cm4gZS51c2VfZXhhY3RfaW5zbiAoCisgY29kZV9mb3JfcHJl ZF9pbmRleGVkX3N0b3JlX3dpZHRoIChVTlNQRUMsIFVOU1BFQywKKyBlLnZl Y3Rvcl9tb2RlICgpKSk7CisgZWxzZQorIHJldHVybiBlLnVzZV9leGFjdF9p bnNuICgKKyBjb2RlX2Zvcl9wcmVkX2luZGV4ZWRfbG9hZF93aWR0aCAoVU5T UEVDLCBlLnZlY3Rvcl9tb2RlICgpKSk7CisgfQorIGVsc2UgaWYgKExTVF9U WVBFID09IExTVF9TVFJJREVEKQorIHsKKyBpZiAoU1RPUkVfUCkKKyByZXR1 cm4gZS51c2VfY29udGlndW91c19zdG9yZV9pbnNuICgKKyBjb2RlX2Zvcl9w cmVkX3N0cmlkZWRfc3RvcmVfd2lkdGggKFVOU1BFQywgZS52ZWN0b3JfbW9k ZSAoKSkpOworIGVsc2UKKyByZXR1cm4gZS51c2VfY29udGlndW91c19sb2Fk X2luc24gKAorIGNvZGVfZm9yX3ByZWRfc3RyaWRlZF9sb2FkX3dpZHRoIChV TlNQRUMsIGUudmVjdG9yX21vZGUgKCkpKTsKKyB9CisgZWxzZQorIHsKKyBp ZiAoU1RPUkVfUCkKKyByZXR1cm4gZS51c2VfY29udGlndW91c19zdG9yZV9p bnNuICgKKyBjb2RlX2Zvcl9wcmVkX3N0b3JlX3dpZHRoIChVTlNQRUMsIGUu dmVjdG9yX21vZGUgKCkpKTsKKyBlbHNlCisgcmV0dXJuIGUudXNlX2NvbnRp Z3VvdXNfbG9hZF9pbnNuICgKKyBjb2RlX2Zvcl9wcmVkX21vdl93aWR0aCAo VU5TUEVDLCBlLnZlY3Rvcl9tb2RlICgpKSk7CisgfQorIH0KK307CisKKy8q IEltcGxlbWVudHMgdmV4dC54LnYuICovCitjbGFzcyB0aF9leHRyYWN0IDog cHVibGljIGZ1bmN0aW9uX2Jhc2UKK3sKK3B1YmxpYzoKKyBib29sIGFwcGx5 X3ZsX3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyBi b29sIGFwcGx5X3RhaWxfcG9saWN5X3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyBy ZXR1cm4gZmFsc2U7IH0KKyBib29sIGFwcGx5X21hc2tfcG9saWN5X3AgKCkg Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyBib29sIHVzZV9t YXNrX3ByZWRpY2F0aW9uX3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g ZmFsc2U7IH0KKyBib29sIGhhc19tZXJnZV9vcGVyYW5kX3AgKCkgY29uc3Qg b3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKworIHJ0eCBleHBhbmQgKGZ1 bmN0aW9uX2V4cGFuZGVyICZlKSBjb25zdCBvdmVycmlkZQorIHsKKyBnY2Nf YXNzZXJ0IChUQVJHRVRfWFRIRUFEVkVDVE9SKTsKKyByZXR1cm4gZS51c2Vf ZXhhY3RfaW5zbiAoY29kZV9mb3JfcHJlZF90aF9leHRyYWN0IChlLnZlY3Rv cl9tb2RlICgpKSk7CisgfQorfTsKKwogLyogQmVsb3cgaW1wbGVtZW50cyBh cmUgdmVjdG9yIGNyeXB0byAqLwogLyogSW1wbGVtZW50cyB2YW5kbi5bdnYs dnhdICovCiBjbGFzcyB2YW5kbiA6IHB1YmxpYyBmdW5jdGlvbl9iYXNlCkBA IC0yNTg3LDYgKzI2NjQsMzcgQEAgc3RhdGljIENPTlNURVhQUiBjb25zdCBz ZWdfaW5kZXhlZF9sb2FkPFVOU1BFQ19PUkRFUkVEPiB2bG94c2VnX29iajsK IHN0YXRpYyBDT05TVEVYUFIgY29uc3Qgc2VnX2luZGV4ZWRfc3RvcmU8VU5T UEVDX1VOT1JERVJFRD4gdnN1eHNlZ19vYmo7CiBzdGF0aWMgQ09OU1RFWFBS IGNvbnN0IHNlZ19pbmRleGVkX3N0b3JlPFVOU1BFQ19PUkRFUkVEPiB2c294 c2VnX29iajsKIHN0YXRpYyBDT05TVEVYUFIgY29uc3QgdmxzZWdmZiB2bHNl Z2ZmX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3Jl X3dpZHRoPGZhbHNlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BFQ19USF9WTEI+ IHZsYl9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9y ZV93aWR0aDxmYWxzZSwgTFNUX1VOSVRfU1RSSURFLCBVTlNQRUNfVEhfVkxC VT4gdmxidV9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRz dG9yZV93aWR0aDxmYWxzZSwgTFNUX1VOSVRfU1RSSURFLCBVTlNQRUNfVEhf VkxIPiB2bGhfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fk c3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9VTklUX1NUUklERSwgVU5TUEVDX1RI X1ZMSFU+IHZsaHVfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9s b2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9VTklUX1NUUklERSwgVU5TUEVD X1RIX1ZMVz4gdmx3X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhf bG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BF Q19USF9WTFdVPiB2bHd1X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3Qg dGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9VTklUX1NUUklERSwgVU5T UEVDX1RIX1ZMQj4gdnNiX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3Qg dGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9VTklUX1NUUklERSwgVU5T UEVDX1RIX1ZMSD4gdnNoX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3Qg dGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9VTklUX1NUUklERSwgVU5T UEVDX1RIX1ZMVz4gdnN3X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3Qg dGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfU1RSSURFRCwgVU5TUEVD X1RIX1ZMU0I+IHZsc2Jfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0 aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9TVFJJREVELCBVTlNQRUNf VEhfVkxTQlU+IHZsc2J1X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3Qg dGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfU1RSSURFRCwgVU5TUEVD X1RIX1ZMU0g+IHZsc2hfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0 aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9TVFJJREVELCBVTlNQRUNf VEhfVkxTSFU+IHZsc2h1X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3Qg dGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfU1RSSURFRCwgVU5TUEVD X1RIX1ZMU1c+IHZsc3dfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0 aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9TVFJJREVELCBVTlNQRUNf VEhfVkxTV1U+IHZsc3d1X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3Qg dGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9TVFJJREVELCBVTlNQRUNf VEhfVkxTQj4gdnNzYl9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRo X2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfU1RSSURFRCwgVU5TUEVDX1RI X1ZMU0g+IHZzc2hfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9s b2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX1NUUklERUQsIFVOU1BFQ19USF9W TFNXPiB2c3N3X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9h ZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZM WEI+IHZseGJfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fk c3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVkxY QlU+IHZseGJ1X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9h ZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZM WEg+IHZseGhfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fk c3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVkxY SFU+IHZseGh1X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9h ZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZM WFc+IHZseHdfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fk c3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVkxY V1U+IHZseHd1X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9h ZHN0b3JlX3dpZHRoPHRydWUsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVkxY Qj4gdnN4Yl9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRz dG9yZV93aWR0aDx0cnVlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZMWEg+ IHZzeGhfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3Rv cmVfd2lkdGg8dHJ1ZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9WTFhXPiB2 c3h3X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3Jl X3dpZHRoPHRydWUsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVlNVWEI+IHZz dXhiX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3Jl X3dpZHRoPHRydWUsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVlNVWEg+IHZz dXhoX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3Jl X3dpZHRoPHRydWUsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVlNVWFc+IHZz dXh3X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfZXh0cmFjdCB2 ZXh0X3hfdl9vYmo7CiAvKiBDcnlwdG8gVmVjdG9yICovCiBzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IHZhbmRuIHZhbmRuX29iajsKQEAgLTI4NzgsNiArMjk4 NiwzNyBAQCBCQVNFICh2bG94c2VnKQogQkFTRSAodnN1eHNlZykKIEJBU0Ug KHZzb3hzZWcpCiBCQVNFICh2bHNlZ2ZmKQorQkFTRSAodmxiKQorQkFTRSAo dmxoKQorQkFTRSAodmx3KQorQkFTRSAodmxidSkKK0JBU0UgKHZsaHUpCitC QVNFICh2bHd1KQorQkFTRSAodnNiKQorQkFTRSAodnNoKQorQkFTRSAodnN3 KQorQkFTRSAodmxzYikKK0JBU0UgKHZsc2gpCitCQVNFICh2bHN3KQorQkFT RSAodmxzYnUpCitCQVNFICh2bHNodSkKK0JBU0UgKHZsc3d1KQorQkFTRSAo dnNzYikKK0JBU0UgKHZzc2gpCitCQVNFICh2c3N3KQorQkFTRSAodmx4YikK K0JBU0UgKHZseGgpCitCQVNFICh2bHh3KQorQkFTRSAodmx4YnUpCitCQVNF ICh2bHhodSkKK0JBU0UgKHZseHd1KQorQkFTRSAodnN4YikKK0JBU0UgKHZz eGgpCitCQVNFICh2c3h3KQorQkFTRSAodnN1eGIpCitCQVNFICh2c3V4aCkK K0JBU0UgKHZzdXh3KQorQkFTRSAodmV4dF94X3YpCiAvKiBDcnlwdG8gdmVj dG9yICovCiBCQVNFICh2YW5kbikKIEJBU0UgKHZicmV2KQpkaWZmIC0tZ2l0 IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFz ZXMuaCBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5z LWJhc2VzLmgKaW5kZXggMTEyMmUzODAxYTcuLjU2NWEwMzExZDJiIDEwMDY0 NAotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlu cy1iYXNlcy5oCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9y LWJ1aWx0aW5zLWJhc2VzLmgKQEAgLTI5OSw2ICsyOTksMzcgQEAgZXh0ZXJu IGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsb3hzZWc7CiBleHRlcm4g Y29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnN1eHNlZzsKIGV4dGVybiBj b25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c294c2VnOwogZXh0ZXJuIGNv bnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsc2VnZmY7CitleHRlcm4gY29u c3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmxiOworZXh0ZXJuIGNvbnN0IGZ1 bmN0aW9uX2Jhc2UgKmNvbnN0IHZsaDsKK2V4dGVybiBjb25zdCBmdW5jdGlv bl9iYXNlICpjb25zdCB2bHc7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFz ZSAqY29uc3QgdmxidTsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpj b25zdCB2bGh1OworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0 IHZsd3U7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnNi OworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZzaDsKK2V4 dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c3c7CitleHRlcm4g Y29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmxzYjsKK2V4dGVybiBjb25z dCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHNoOworZXh0ZXJuIGNvbnN0IGZ1 bmN0aW9uX2Jhc2UgKmNvbnN0IHZsc3c7CitleHRlcm4gY29uc3QgZnVuY3Rp b25fYmFzZSAqY29uc3QgdmxzYnU7CitleHRlcm4gY29uc3QgZnVuY3Rpb25f YmFzZSAqY29uc3QgdmxzaHU7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFz ZSAqY29uc3Qgdmxzd3U7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAq Y29uc3QgdnNzYjsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25z dCB2c3NoOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZz c3c7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qgdmx4YjsK K2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHhoOworZXh0 ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZseHc7CitleHRlcm4g Y29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qgdmx4YnU7CitleHRlcm4gY29u c3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qgdmx4aHU7CitleHRlcm4gY29uc3Qg ZnVuY3Rpb25fYmFzZSAqY29uc3Qgdmx4d3U7CitleHRlcm4gY29uc3QgZnVu Y3Rpb25fYmFzZSAqY29uc3QgdnN4YjsKK2V4dGVybiBjb25zdCBmdW5jdGlv bl9iYXNlICpjb25zdCB2c3hoOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jh c2UgKmNvbnN0IHZzeHc7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAq Y29uc3QgdnN1eGI7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29u c3QgdnN1eGg7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qg dnN1eHc7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmV4 dF94X3Y7CiAvKiBCZWxvdyBmdW5jdGlvbl9iYXNlIGFyZSBWZWN0cm8gQ3J5 cHRvKi8KIGV4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2YW5k bjsKIGV4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2YnJldjsK ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1 aWx0aW5zLXNoYXBlcy5jYyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVj dG9yLWJ1aWx0aW5zLXNoYXBlcy5jYwppbmRleCAxZTRmNGQ1M2RlNi4uOGU5 MGIxN2E5NGIgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3Yt dmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jYworKysgYi9nY2MvY29uZmlnL3Jp c2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuY2MKQEAgLTIxMSw2 ICsyMTEsMTQ2IEBAIHN0cnVjdCBpbmRleGVkX2xvYWRzdG9yZV9kZWYgOiBw dWJsaWMgZnVuY3Rpb25fc2hhcGUKIH0KIH07CisvKiBBZGQgb25lIGZ1bmN0 aW9uIGluc3RhbmNlIGZvciBHUk9VUCwgdXNpbmcgb3BlcmFuZCBzdWZmaXgg YXQgaW5kZXggT0ksCisgbW9kZSBzdWZmaXggYXQgaW5kZXggUEFJUiAmJiBi aSBhbmQgcHJlZGljYXRpb24gc3VmZml4IGF0IGluZGV4IHByZWRfaWR4LiAq Lworc3RhdGljIHZvaWQKK2J1aWxkX3RoX2xvYWRzdG9yZSAoZnVuY3Rpb25f YnVpbGRlciAmYiwgY29uc3QgZnVuY3Rpb25fZ3JvdXBfaW5mbyAmZ3JvdXAs CisgdW5zaWduZWQgaW50IHByZWRfaWR4LCB1bnNpZ25lZCBpbnQgdmVjX3R5 cGVfaWR4KQoreworIGF1dG9fdmVjPHRyZWUsIDU+IGFyZ3VtZW50X3R5cGVz OworIGZ1bmN0aW9uX2luc3RhbmNlIGZ1bmN0aW9uX2luc3RhbmNlIChncm91 cC5iYXNlX25hbWUsICpncm91cC5iYXNlLAorICpncm91cC5zaGFwZSwKKyBn cm91cC5vcHNfaW5mb3MudHlwZXNbdmVjX3R5cGVfaWR4XSwKKyBncm91cC5w cmVkc1twcmVkX2lkeF0sICZncm91cC5vcHNfaW5mb3MpOworIHRyZWUgcmV0 dXJuX3R5cGUgPSBncm91cC5vcHNfaW5mb3MucmV0LmdldF90cmVlX3R5cGUg KAorIGdyb3VwLm9wc19pbmZvcy50eXBlc1t2ZWNfdHlwZV9pZHhdLmluZGV4 KTsKKyBiLmFsbG9jYXRlX2FyZ3VtZW50X3R5cGVzIChmdW5jdGlvbl9pbnN0 YW5jZSwgYXJndW1lbnRfdHlwZXMpOworIGIuYXBwbHlfcHJlZGljYXRpb24g KGZ1bmN0aW9uX2luc3RhbmNlLCByZXR1cm5fdHlwZSwgYXJndW1lbnRfdHlw ZXMpOworCisgaWYgKFRBUkdFVF9YVEhFQURWRUNUT1IgJiYgIWNoZWNrX3R5 cGUgKHJldHVybl90eXBlLCBhcmd1bWVudF90eXBlcykpCisgcmV0dXJuOwor CisgdHJlZSB0eXBlID0gYnVpbHRpbl90eXBlc1tncm91cC5vcHNfaW5mb3Mu dHlwZXNbdmVjX3R5cGVfaWR4XS5pbmRleF0udmVjdG9yOworIGlmIChzdHJz dHIgKGdyb3VwLmJhc2VfbmFtZSwgImwiKQorICYmIHN0cnN0ciAoZ3JvdXAu YmFzZV9uYW1lLCAidSIpCisgJiYgIVRZUEVfVU5TSUdORUQgKFRSRUVfVFlQ RSAodHlwZSkpKQorIHJldHVybjsKKworIGlmIChzdHJzdHIgKGdyb3VwLmJh c2VfbmFtZSwgImwiKQorICYmICFzdHJzdHIgKGdyb3VwLmJhc2VfbmFtZSwg InUiKQorICYmIFRZUEVfVU5TSUdORUQgKFRSRUVfVFlQRSAodHlwZSkpKQor IHJldHVybjsKKworIG1hY2hpbmVfbW9kZSBtb2RlID0gVFlQRV9NT0RFICh0 eXBlKTsKKyBpbnQgc2V3ID0gR0VUX01PREVfQklUU0laRSAoR0VUX01PREVf SU5ORVIgKG1vZGUpKTsKKyBpZiAoc3Ryc3RyIChncm91cC5iYXNlX25hbWUs ICJoIikgJiYgc2V3ID09IDgpCisgcmV0dXJuOworCisgaWYgKHN0cnN0ciAo Z3JvdXAuYmFzZV9uYW1lLCAidyIpICYmIChzZXcgPT0gOCB8fCBzZXcgPT0x NikpCisgcmV0dXJuOworCisgYi5hZGRfb3ZlcmxvYWRlZF9mdW5jdGlvbiAo ZnVuY3Rpb25faW5zdGFuY2UsICpncm91cC5zaGFwZSk7CisgYi5hZGRfdW5p cXVlX2Z1bmN0aW9uIChmdW5jdGlvbl9pbnN0YW5jZSwgKCpncm91cC5zaGFw ZSksIHJldHVybl90eXBlLAorIGFyZ3VtZW50X3R5cGVzKTsKK30KKworLyog dGhfbG9hZHN0b3JlX3dpZHRoX2RlZiBjbGFzcy4gKi8KK3N0cnVjdCB0aF9s b2Fkc3RvcmVfd2lkdGhfZGVmIDogcHVibGljIGJ1aWxkX2Jhc2UKK3sKKyB2 b2lkIGJ1aWxkIChmdW5jdGlvbl9idWlsZGVyICZiLAorIGNvbnN0IGZ1bmN0 aW9uX2dyb3VwX2luZm8gJmdyb3VwKSBjb25zdCBvdmVycmlkZQorIHsKKyBm b3IgKHVuc2lnbmVkIGludCBwcmVkX2lkeCA9IDA7IGdyb3VwLnByZWRzW3By ZWRfaWR4XSAhPSBOVU1fUFJFRF9UWVBFUzsKKyArK3ByZWRfaWR4KQorIHsK KyBmb3IgKHVuc2lnbmVkIGludCB2ZWNfdHlwZV9pZHggPSAwOworIGdyb3Vw Lm9wc19pbmZvcy50eXBlc1t2ZWNfdHlwZV9pZHhdLmluZGV4ICE9IE5VTV9W RUNUT1JfVFlQRVM7CisgKyt2ZWNfdHlwZV9pZHgpCisgeworIGJ1aWxkX3Ro X2xvYWRzdG9yZSAoYiwgZ3JvdXAsIHByZWRfaWR4LCB2ZWNfdHlwZV9pZHgp OworIH0KKyB9CisgfQorCisgY2hhciAqZ2V0X25hbWUgKGZ1bmN0aW9uX2J1 aWxkZXIgJmIsIGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNlICZpbnN0YW5jZSwK KyBib29sIG92ZXJsb2FkZWRfcCkgY29uc3Qgb3ZlcnJpZGUKKyB7CisgLyog UmV0dXJuIG51bGxwdHIgaWYgaXQgY2FuIG5vdCBiZSBvdmVybG9hZGVkLiAq LworIGlmIChvdmVybG9hZGVkX3AgJiYgIWluc3RhbmNlLmJhc2UtPmNhbl9i ZV9vdmVybG9hZGVkX3AgKGluc3RhbmNlLnByZWQpKQorIHJldHVybiBudWxs cHRyOworCisgYi5hcHBlbmRfbmFtZSAoIl9fcmlzY3ZfdGhfIik7CisgYi5h cHBlbmRfbmFtZSAoaW5zdGFuY2UuYmFzZV9uYW1lKTsKKworIC8qIHZvcF92 IC0tPiB2b3Bfdl88dHlwZT4uICovCisgaWYgKCFvdmVybG9hZGVkX3ApCisg eworIC8qIHZvcCAtLT4gdm9wX3YuICovCisgYi5hcHBlbmRfbmFtZSAob3Bl cmFuZF9zdWZmaXhlc1tpbnN0YW5jZS5vcF9pbmZvLT5vcF0pOworIC8qIHZv cF92IC0tPiB2b3Bfdl88dHlwZT4uICovCisgYi5hcHBlbmRfbmFtZSAodHlw ZV9zdWZmaXhlc1tpbnN0YW5jZS50eXBlLmluZGV4XS52ZWN0b3IpOworIH0K KworIC8qIEFjY29yZGluZyB0byBydnYtaW50cmluc2ljLWRvYywgaXQgZG9l cyBub3QgYWRkICJfbSIgc3VmZml4CisgZm9yIHZvcF9tIEMrKyBvdmVybG9h ZGVkIEFQSS4gKi8KKyBpZiAob3ZlcmxvYWRlZF9wICYmIGluc3RhbmNlLnBy ZWQgPT0gUFJFRF9UWVBFX20pCisgcmV0dXJuIGIuZmluaXNoX25hbWUgKCk7 CisgYi5hcHBlbmRfbmFtZSAocHJlZGljYXRpb25fc3VmZml4ZXNbaW5zdGFu Y2UucHJlZF0pOworIHJldHVybiBiLmZpbmlzaF9uYW1lICgpOworIH0KK307 CisKKworLyogdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGhfZGVmIGNsYXNz LiAqLworc3RydWN0IHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoX2RlZiA6 IHB1YmxpYyBmdW5jdGlvbl9zaGFwZQoreworIHZvaWQgYnVpbGQgKGZ1bmN0 aW9uX2J1aWxkZXIgJmIsCisgY29uc3QgZnVuY3Rpb25fZ3JvdXBfaW5mbyAm Z3JvdXApIGNvbnN0IG92ZXJyaWRlCisgeworIGZvciAodW5zaWduZWQgaW50 IHByZWRfaWR4ID0gMDsgZ3JvdXAucHJlZHNbcHJlZF9pZHhdICE9IE5VTV9Q UkVEX1RZUEVTOworICsrcHJlZF9pZHgpCisgeworIGZvciAodW5zaWduZWQg aW50IHZlY190eXBlX2lkeCA9IDA7CisgZ3JvdXAub3BzX2luZm9zLnR5cGVz W3ZlY190eXBlX2lkeF0uaW5kZXggIT0gTlVNX1ZFQ1RPUl9UWVBFUzsKKyAr K3ZlY190eXBlX2lkeCkKKyB7CisgdHJlZSBpbmRleF90eXBlID0gZ3JvdXAu b3BzX2luZm9zLmFyZ3NbMV0uZ2V0X3RyZWVfdHlwZSAoCisgZ3JvdXAub3Bz X2luZm9zLnR5cGVzW3ZlY190eXBlX2lkeF0uaW5kZXgpOworIGlmICghaW5k ZXhfdHlwZSkKKyBjb250aW51ZTsKKyBidWlsZF90aF9sb2Fkc3RvcmUgKGIs IGdyb3VwLCBwcmVkX2lkeCwgdmVjX3R5cGVfaWR4KTsKKyB9CisgfQorIH0K KworIGNoYXIgKmdldF9uYW1lIChmdW5jdGlvbl9idWlsZGVyICZiLCBjb25z dCBmdW5jdGlvbl9pbnN0YW5jZSAmaW5zdGFuY2UsCisgYm9vbCBvdmVybG9h ZGVkX3ApIGNvbnN0IG92ZXJyaWRlCisgeworCisgLyogUmV0dXJuIG51bGxw dHIgaWYgaXQgY2FuIG5vdCBiZSBvdmVybG9hZGVkLiAqLworIGlmIChvdmVy bG9hZGVkX3AgJiYgIWluc3RhbmNlLmJhc2UtPmNhbl9iZV9vdmVybG9hZGVk X3AgKGluc3RhbmNlLnByZWQpKQorIHJldHVybiBudWxscHRyOworCisgYi5h cHBlbmRfbmFtZSAoIl9fcmlzY3ZfdGhfIik7CisgYi5hcHBlbmRfbmFtZSAo aW5zdGFuY2UuYmFzZV9uYW1lKTsKKyAvKiB2b3BfdiAtLT4gdm9wX3ZfPHR5 cGU+LiAqLworIGlmICghb3ZlcmxvYWRlZF9wKQorIHsKKyAvKiB2b3AgLS0+ IHZvcF92LiAqLworIGIuYXBwZW5kX25hbWUgKG9wZXJhbmRfc3VmZml4ZXNb aW5zdGFuY2Uub3BfaW5mby0+b3BdKTsKKyAvKiB2b3BfdiAtLT4gdm9wX3Zf PHR5cGU+LiAqLworIGIuYXBwZW5kX25hbWUgKHR5cGVfc3VmZml4ZXNbaW5z dGFuY2UudHlwZS5pbmRleF0udmVjdG9yKTsKKyB9CisKKyAvKiBBY2NvcmRp bmcgdG8gcnZ2LWludHJpbnNpYy1kb2MsIGl0IGRvZXMgbm90IGFkZCAiX20i IHN1ZmZpeAorIGZvciB2b3BfbSBDKysgb3ZlcmxvYWRlZCBBUEkuICovCisg aWYgKG92ZXJsb2FkZWRfcCAmJiBpbnN0YW5jZS5wcmVkID09IFBSRURfVFlQ RV9tKQorIHJldHVybiBiLmZpbmlzaF9uYW1lICgpOworIGIuYXBwZW5kX25h bWUgKHByZWRpY2F0aW9uX3N1ZmZpeGVzW2luc3RhbmNlLnByZWRdKTsKKyBy ZXR1cm4gYi5maW5pc2hfbmFtZSAoKTsKKyB9Cit9OworCiAvKiBhbHVfZGVm IGNsYXNzLiAqLwogc3RydWN0IGFsdV9kZWYgOiBwdWJsaWMgYnVpbGRfYmFz ZQogewpAQCAtNjMyLDYgKzc3MiwyMyBAQCBzdHJ1Y3QgcmVkdWNfYWx1X2Rl ZiA6IHB1YmxpYyBidWlsZF9iYXNlCiB9CiB9OworLyogdGhfZXh0cmFjdF9k ZWYgY2xhc3MuICovCitzdHJ1Y3QgdGhfZXh0cmFjdF9kZWYgOiBwdWJsaWMg YnVpbGRfYmFzZQoreworIGNoYXIgKmdldF9uYW1lIChmdW5jdGlvbl9idWls ZGVyICZiLCBjb25zdCBmdW5jdGlvbl9pbnN0YW5jZSAmaW5zdGFuY2UsCisg Ym9vbCBvdmVybG9hZGVkX3ApIGNvbnN0IG92ZXJyaWRlCisgeworIGIuYXBw ZW5kX25hbWUgKCJfX3Jpc2N2X3RoXyIpOworIGIuYXBwZW5kX25hbWUgKGlu c3RhbmNlLmJhc2VfbmFtZSk7CisKKyBpZiAob3ZlcmxvYWRlZF9wKQorIHJl dHVybiBiLmZpbmlzaF9uYW1lICgpOworIGIuYXBwZW5kX25hbWUgKHR5cGVf c3VmZml4ZXNbaW5zdGFuY2UudHlwZS5pbmRleF0udmVjdG9yKTsKKyBiLmFw cGVuZF9uYW1lICh0eXBlX3N1ZmZpeGVzW2luc3RhbmNlLnR5cGUuaW5kZXhd LnNjYWxhcik7CisgcmV0dXJuIGIuZmluaXNoX25hbWUgKCk7CisgfQorfTsK KwogLyogc2NhbGFyX21vdmVfZGVmIGNsYXNzLiAqLwogc3RydWN0IHNjYWxh cl9tb3ZlX2RlZiA6IHB1YmxpYyBidWlsZF9iYXNlCiB7CkBAIC0xMDk0LDYg KzEyNTEsOCBAQCBTSEFQRSh2c2V0dmwsIHZzZXR2bCkKIFNIQVBFKHZzZXR2 bCwgdnNldHZsbWF4KQogU0hBUEUobG9hZHN0b3JlLCBsb2Fkc3RvcmUpCiBT SEFQRShpbmRleGVkX2xvYWRzdG9yZSwgaW5kZXhlZF9sb2Fkc3RvcmUpCitT SEFQRSh0aF9sb2Fkc3RvcmVfd2lkdGgsIHRoX2xvYWRzdG9yZV93aWR0aCkK K1NIQVBFKHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCB0aF9pbmRleGVk X2xvYWRzdG9yZV93aWR0aCkKIFNIQVBFKGFsdSwgYWx1KQogU0hBUEUoYWx1 X2ZybSwgYWx1X2ZybSkKIFNIQVBFKHdpZGVuX2FsdSwgd2lkZW5fYWx1KQpA QCAtMTEwNiw2ICsxMjY1LDcgQEAgU0hBUEUobW92ZSwgbW92ZSkKIFNIQVBF KG1hc2tfYWx1LCBtYXNrX2FsdSkKIFNIQVBFKHJlZHVjX2FsdSwgcmVkdWNf YWx1KQogU0hBUEUocmVkdWNfYWx1X2ZybSwgcmVkdWNfYWx1X2ZybSkKK1NI QVBFKHRoX2V4dHJhY3QsIHRoX2V4dHJhY3QpCiBTSEFQRShzY2FsYXJfbW92 ZSwgc2NhbGFyX21vdmUpCiBTSEFQRSh2dW5kZWZpbmVkLCB2dW5kZWZpbmVk KQogU0hBUEUobWlzYywgbWlzYykKZGlmZiAtLWdpdCBhL2djYy9jb25maWcv cmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5oIGIvZ2NjL2Nv bmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmgKaW5k ZXggYWMyYTI4Y2UwMTcuLmE3NjI0ZDBmYWJkIDEwMDY0NAotLS0gYS9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuaAor KysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1z aGFwZXMuaApAQCAtMjgsNiArMjgsOCBAQCBleHRlcm4gY29uc3QgZnVuY3Rp b25fc2hhcGUgKmNvbnN0IHZzZXR2bDsKIGV4dGVybiBjb25zdCBmdW5jdGlv bl9zaGFwZSAqY29uc3QgdnNldHZsbWF4OwogZXh0ZXJuIGNvbnN0IGZ1bmN0 aW9uX3NoYXBlICpjb25zdCBsb2Fkc3RvcmU7CiBleHRlcm4gY29uc3QgZnVu Y3Rpb25fc2hhcGUgKmNvbnN0IGluZGV4ZWRfbG9hZHN0b3JlOworZXh0ZXJu IGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCB0aF9sb2Fkc3RvcmVfd2lk dGg7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHRoX2lu ZGV4ZWRfbG9hZHN0b3JlX3dpZHRoOwogZXh0ZXJuIGNvbnN0IGZ1bmN0aW9u X3NoYXBlICpjb25zdCBhbHU7CiBleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hh cGUgKmNvbnN0IGFsdV9mcm07CiBleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hh cGUgKmNvbnN0IHdpZGVuX2FsdTsKQEAgLTQxLDYgKzQzLDcgQEAgZXh0ZXJu IGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBtYXNrX2FsdTsKIGV4dGVy biBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgcmVkdWNfYWx1OwogZXh0 ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCByZWR1Y19hbHVfZnJt OwogZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBzY2FsYXJf bW92ZTsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgdGhf ZXh0cmFjdDsKIGV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3Qg dnVuZGVmaW5lZDsKIGV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29u c3QgbWlzYzsKIGV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3Qg dnNldDsKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVj dG9yLWJ1aWx0aW5zLmNjIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0 b3ItYnVpbHRpbnMuY2MKaW5kZXggMjVlMGI2ZTU2ZGUuLjQ0YjlmZWMxODk4 IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1i dWlsdGlucy5jYworKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1idWlsdGlucy5jYwpAQCAtOTM0LDYgKzkzNCwzMiBAQCBzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IHJ2dl9hcmdfdHlwZV9pbmZvIGV4dF92Y3JlYXRlX2Fy Z3NbXQogPSB7cnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3Rvciks CiBydnZfYXJnX3R5cGVfaW5mb19lbmR9OworLyogQSBsaXN0IG9mIGFyZ3Mg Zm9yIHZlY3Rvcl90eXBlIGZ1bmMgKGNvbnN0IHNjYWxhcl90eXBlICosIHNp emVfdCkKKyAqIGZ1bmN0aW9uLiAqLworc3RhdGljIENPTlNURVhQUiBjb25z dCBydnZfYXJnX3R5cGVfaW5mbyBzY2FsYXJfY29uc3RfcHRyX3NpemVfYXJn c1tdCisgPSB7cnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3NjYWxhcl9j b25zdF9wdHIpLAorIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV9zaXpl KSwgcnZ2X2FyZ190eXBlX2luZm9fZW5kfTsKKworLyogQSBsaXN0IG9mIGFy Z3MgZm9yIHZlY3Rvcl90eXBlIGZ1bmMgKGNvbnN0IHNjYWxhcl90eXBlICos IGVldzhfaW5kZXhfdHlwZSkKKyAqIGZ1bmN0aW9uLiAqLworc3RhdGljIENP TlNURVhQUiBjb25zdCBydnZfYXJnX3R5cGVfaW5mbyBzY2FsYXJfY29uc3Rf cHRyX2luZGV4X2FyZ3NbXQorID0ge3J2dl9hcmdfdHlwZV9pbmZvIChSVlZf QkFTRV9zY2FsYXJfY29uc3RfcHRyKSwKKyBydnZfYXJnX3R5cGVfaW5mbyAo UlZWX0JBU0VfdW5zaWduZWRfdmVjdG9yKSwgcnZ2X2FyZ190eXBlX2luZm9f ZW5kfTsKKworLyogQSBsaXN0IG9mIGFyZ3MgZm9yIHZvaWQgZnVuYyAoc2Nh bGFyX3R5cGUgKiwgZWV3OF9pbmRleF90eXBlLCB2ZWN0b3JfdHlwZSkKKyAq IGZ1bmN0aW9uLiAqLworc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfYXJn X3R5cGVfaW5mbyBzY2FsYXJfcHRyX2luZGV4X2FyZ3NbXQorID0ge3J2dl9h cmdfdHlwZV9pbmZvIChSVlZfQkFTRV9zY2FsYXJfcHRyKSwKKyBydnZfYXJn X3R5cGVfaW5mbyAoUlZWX0JBU0VfdW5zaWduZWRfdmVjdG9yKSwKKyBydnZf YXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgcnZ2X2FyZ190eXBl X2luZm9fZW5kfTsKKworLyogQSBsaXN0IG9mIGFyZ3MgZm9yIHZvaWQgZnVu YyAoc2NhbGFyX3R5cGUgKiwgc2l6ZV90LCB2ZWN0b3JfdHlwZSkKKyAqIGZ1 bmN0aW9uLiAqLworc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfYXJnX3R5 cGVfaW5mbyBzY2FsYXJfcHRyX3NpemVfYXJnc1tdCisgPSB7cnZ2X2FyZ190 eXBlX2luZm8gKFJWVl9CQVNFX3NjYWxhcl9wdHIpLAorIHJ2dl9hcmdfdHlw ZV9pbmZvIChSVlZfQkFTRV9zaXplKSwgcnZ2X2FyZ190eXBlX2luZm8gKFJW Vl9CQVNFX3ZlY3RvciksCisgcnZ2X2FyZ190eXBlX2luZm9fZW5kfTsKKwog LyogQSBsaXN0IG9mIG5vbmUgcHJlZHMgdGhhdCB3aWxsIGJlIHJlZ2lzdGVy ZWQgZm9yIGludHJpbnNpYyBmdW5jdGlvbnMuICovCiBzdGF0aWMgQ09OU1RF WFBSIGNvbnN0IHByZWRpY2F0aW9uX3R5cGVfaW5kZXggbm9uZV9wcmVkc1td CiA9IHtQUkVEX1RZUEVfbm9uZSwgTlVNX1BSRURfVFlQRVN9OwpAQCAtMTQ1 NSw2ICsxNDgxLDE0IEBAIHN0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29w X2luZm8gaXVfc2hpZnRfdnZ2X29wcwogcnZ2X2FyZ190eXBlX2luZm8gKFJW Vl9CQVNFX3ZlY3RvciksIC8qIFJldHVybiB0eXBlICovCiBzaGlmdF92dl9h cmdzIC8qIEFyZ3MgKi99OworLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1h dGlvbiBmb3Igc2NhbGFyX3R5cGUgZnVuYyAodmVjdG9yX3R5cGUsIHNpemVf dCkKKyAqIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi4gKi8KK3N0YXRpYyBDT05T VEVYUFIgY29uc3QgcnZ2X29wX2luZm8gaXVfeF9zX3Vfb3BzCisgPSB7aXVf b3BzLCAvKiBUeXBlcyAqLworIE9QX1RZUEVfdngsIC8qIFN1ZmZpeCAqLwor IHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV9zY2FsYXIpLCAvKiBSZXR1 cm4gdHlwZSAqLworIHZfc2l6ZV9hcmdzIC8qIEFyZ3MgKi99OworCiAvKiBB IHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2ZWN0b3JfdHlwZSBm dW5jICh2ZWN0b3JfdHlwZSwgc2l6ZV90KQogKiBmdW5jdGlvbiByZWdpc3Ry YXRpb24uICovCiBzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZv IGl1X3NoaWZ0X3Z2eF9vcHMKQEAgLTI2MzgsNiArMjY3MiwzOCBAQCBzdGF0 aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGFsbF92X3ZjcmVhdGVf bG11bDRfeDJfb3BzCiBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfdmxt dWxfZXh0X3gyKSwgLyogUmV0dXJuIHR5cGUgKi8KIGV4dF92Y3JlYXRlX2Fy Z3MgLyogQXJncyAqL307CisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0 aW9uIGZvciB2ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBzY2FsYXJfdHlwZSAq LAorICogc2l6ZV90KSBmdW5jdGlvbiByZWdpc3RyYXRpb24uICovCitzdGF0 aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGFsbF92X3NjYWxhcl9j b25zdF9wdHJfc2l6ZV9vcHMKKyA9IHthbGxfb3BzLCAvKiBUeXBlcyAqLwor IE9QX1RZUEVfdiwgLyogU3VmZml4ICovCisgcnZ2X2FyZ190eXBlX2luZm8g KFJWVl9CQVNFX3ZlY3RvciksIC8qIFJldHVybiB0eXBlICovCisgc2NhbGFy X2NvbnN0X3B0cl9zaXplX2FyZ3MgLyogQXJncyAqL307CisKKy8qIEEgc3Rh dGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZvaWQgZnVuYyAoc2NhbGFy X3R5cGUgKiwgc2l6ZV90LAorICogdmVjdG9yX3R5cGUpIGZ1bmN0aW9uIHJl Z2lzdHJhdGlvbi4gKi8KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29w X2luZm8gYWxsX3Zfc2NhbGFyX3B0cl9zaXplX29wcworID0ge2FsbF9vcHMs IC8qIFR5cGVzICovCisgT1BfVFlQRV92LCAvKiBTdWZmaXggKi8KKyBydnZf YXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfdm9pZCksIC8qIFJldHVybiB0eXBl ICovCisgc2NhbGFyX3B0cl9zaXplX2FyZ3MgLyogQXJncyAqL307CisKKy8q IEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZlY3Rvcl90eXBl IGZ1bmMgKGNvbnN0IHNjYWxhcl90eXBlICosCisgKiBpbmRleF90eXBlKSBm dW5jdGlvbiByZWdpc3RyYXRpb24uICovCitzdGF0aWMgQ09OU1RFWFBSIGNv bnN0IHJ2dl9vcF9pbmZvIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhf b3BzCisgPSB7YWxsX29wcywgLyogVHlwZXMgKi8KKyBPUF9UWVBFX3YsIC8q IFN1ZmZpeCAqLworIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0 b3IpLCAvKiBSZXR1cm4gdHlwZSAqLworIHNjYWxhcl9jb25zdF9wdHJfaW5k ZXhfYXJncyAvKiBBcmdzICovfTsKKworLyogQSBzdGF0aWMgb3BlcmFuZCBp bmZvcm1hdGlvbiBmb3Igdm9pZCBmdW5jIChzY2FsYXJfdHlwZSAqLCBpbmRl eF90eXBlLAorICogdmVjdG9yX3R5cGUpIGZ1bmN0aW9uIHJlZ2lzdHJhdGlv bi4gKi8KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gYWxs X3Zfc2NhbGFyX3B0cl9pbmRleF9vcHMKKyA9IHthbGxfb3BzLCAvKiBUeXBl cyAqLworIE9QX1RZUEVfdiwgLyogU3VmZml4ICovCisgcnZ2X2FyZ190eXBl X2luZm8gKFJWVl9CQVNFX3ZvaWQpLCAvKiBSZXR1cm4gdHlwZSAqLworIHNj YWxhcl9wdHJfaW5kZXhfYXJncyAvKiBBcmdzICovfTsKKwogLyogQSBzdGF0 aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3IgdmVjdG9yX3R5cGUgZnVuYyAo dmVjdG9yX3R5cGUpLgogU29tZSBpbnMganVzdCBzdXBwb3J0cyBTRVc9MzIs IHN1Y2ggYXMgY3J5cHRvIHZlY3RvbCBadmtnIGV4dGVuc2lvbi4KICogZnVu Y3Rpb24gcmVnaXN0cmF0aW9uLiAqLwpAQCAtMjgxNiw2ICsyODgyLDEwIEBA IHN0YXRpYyBmdW5jdGlvbl9ncm91cF9pbmZvIGZ1bmN0aW9uX2dyb3Vwc1td ID0gewogI2RlZmluZSBERUZfUlZWX0ZVTkNUSU9OKE5BTUUsIFNIQVBFLCBQ UkVEUywgT1BTX0lORk8pIFwKIHsjTkFNRSwgJmJhc2VzOjpOQU1FLCAmc2hh cGVzOjpTSEFQRSwgUFJFRFMsIE9QU19JTkZPLCBSRVFVSVJFRF9FWFRFTlNJ T05TfSwKICNpbmNsdWRlICJyaXNjdi12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rp b25zLmRlZiIKKyN1bmRlZiBERUZfUlZWX0ZVTkNUSU9OCisjZGVmaW5lIERF Rl9SVlZfRlVOQ1RJT04oTkFNRSwgU0hBUEUsIFBSRURTLCBPUFNfSU5GTykg XAorIHsjTkFNRSwgJmJhc2VzOjpOQU1FLCAmc2hhcGVzOjpTSEFQRSwgUFJF RFMsIE9QU19JTkZPLCBSRVFVSVJFRF9FWFRFTlNJT05TfSwKKyNpbmNsdWRl ICJ0aGVhZC12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZiIKIH07CiAv KiBUaGUgUlZWIHR5cGVzLCB3aXRoIHRoZWlyIGJ1aWx0LWluCmRpZmYgLS1n aXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5o IGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuaApp bmRleCA1NGM4ODI0ZmY5Mi4uYThlZTM5YTNjYjIgMTAwNjQ0Ci0tLSBhL2dj Yy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmgKKysrIGIv Z2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuaApAQCAt MTE0LDYgKzExNCw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgQ1Bf V1JJVEVfQ1NSID0gMVUgPDwgNTsKIGVudW0gcmVxdWlyZWRfZXh0CiB7CiBW RUNUT1JfRVhULCAvKiBWZWN0b3IgZXh0ZW5zaW9uICovCisgWFRIRUFEVkVD VE9SX0VYVCwgLyogWFRoZWFkVmVjdG9yIGV4dGVuc2lvbiAqLwogWlZCQl9F WFQsIC8qIENyeXRvIHZlY3RvciBadmJiIHN1Yi1leHQgKi8KIFpWQkJfT1Jf WlZLQl9FWFQsIC8qIENyeXRvIHZlY3RvciBadmJiIG9yIHp2a2Igc3ViLWV4 dCAqLwogWlZCQ19FWFQsIC8qIENyeXB0byB2ZWN0b3IgWnZiYyBzdWItZXh0 ICovCkBAIC0yMzQsNiArMjM1LDggQEAgc3RydWN0IGZ1bmN0aW9uX2dyb3Vw X2luZm8KIHsKIGNhc2UgVkVDVE9SX0VYVDoKIHJldHVybiBUQVJHRVRfVkVD VE9SOworIGNhc2UgWFRIRUFEVkVDVE9SX0VYVDoKKyByZXR1cm4gVEFSR0VU X1hUSEVBRFZFQ1RPUjsKIGNhc2UgWlZCQl9FWFQ6CiByZXR1cm4gVEFSR0VU X1pWQkI7CiBjYXNlIFpWQkJfT1JfWlZLQl9FWFQ6CmRpZmYgLS1naXQgYS9n Y2MvY29uZmlnL3Jpc2N2L3QtcmlzY3YgYi9nY2MvY29uZmlnL3Jpc2N2L3Qt cmlzY3YKaW5kZXggMzJkZTZiODUxYzEuLjM4NDk0MzIwZDhiIDEwMDY0NAot LS0gYS9nY2MvY29uZmlnL3Jpc2N2L3QtcmlzY3YKKysrIGIvZ2NjL2NvbmZp Zy9yaXNjdi90LXJpc2N2CkBAIC0xLDYgKzEsNyBAQAogUklTQ1ZfQlVJTFRJ TlNfSCA9ICQoc3JjZGlyKS9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1 aWx0aW5zLmggXAogJChzcmNkaXIpL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0 b3ItYnVpbHRpbnMuZGVmIFwKICQoc3JjZGlyKS9jb25maWcvcmlzY3Yvcmlz Y3YtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYgXAorICQoc3JjZGly KS9jb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9u cy5kZWYgXAogcmlzY3YtdmVjdG9yLXR5cGUtaW5kZXhlci5nZW4uZGVmCiBy aXNjdi1idWlsdGlucy5vOiAkKHNyY2RpcikvY29uZmlnL3Jpc2N2L3Jpc2N2 LWJ1aWx0aW5zLmNjICQoQ09ORklHX0gpIFwKZGlmZiAtLWdpdCBhL2djYy9j b25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5k ZWYgYi9nY2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci1idWlsdGlucy1m dW5jdGlvbnMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi5mZDNiYTI5YmFlOQotLS0gL2Rldi9udWxsCisrKyBiL2djYy9j b25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5k ZWYKQEAgLTAsMCArMSwzOSBAQAorI2lmbmRlZiBERUZfUlZWX0ZVTkNUSU9O CisjZGVmaW5lIERFRl9SVlZfRlVOQ1RJT04oTkFNRSwgU0hBUEUsIFBSRURT LCBPUFNfSU5GTykKKyNlbmRpZgorCisjZGVmaW5lIFJFUVVJUkVEX0VYVEVO U0lPTlMgWFRIRUFEVkVDVE9SX0VYVAorREVGX1JWVl9GVU5DVElPTiAodmxi LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxh cl9jb25zdF9wdHJfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodmxoLCB0aF9s b2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25z dF9wdHJfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodmx3LCB0aF9sb2Fkc3Rv cmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJf b3BzKQorREVGX1JWVl9GVU5DVElPTiAodmxidSwgdGhfbG9hZHN0b3JlX3dp ZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX29wcykK K0RFRl9SVlZfRlVOQ1RJT04gKHZsaHUsIHRoX2xvYWRzdG9yZV93aWR0aCwg ZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9vcHMpCitERUZf UlZWX0ZVTkNUSU9OICh2bHd1LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxf cHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfb3BzKQorREVGX1JWVl9G VU5DVElPTiAodnNiLCB0aF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVk cywgYWxsX3Zfc2NhbGFyX3B0cl9vcHMpCitERUZfUlZWX0ZVTkNUSU9OICh2 c2gsIHRoX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxfdl9z Y2FsYXJfcHRyX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZzdywgdGhfbG9h ZHN0b3JlX3dpZHRoLCBub25lX21fcHJlZHMsIGFsbF92X3NjYWxhcl9wdHJf b3BzKQorREVGX1JWVl9GVU5DVElPTiAodmxzYiwgdGhfbG9hZHN0b3JlX3dp ZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX3NpemVf b3BzKQorREVGX1JWVl9GVU5DVElPTiAodmxzaCwgdGhfbG9hZHN0b3JlX3dp ZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX3NpemVf b3BzKQorREVGX1JWVl9GVU5DVElPTiAodmxzdywgdGhfbG9hZHN0b3JlX3dp ZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX3NpemVf b3BzKQorREVGX1JWVl9GVU5DVElPTiAodmxzYnUsIHRoX2xvYWRzdG9yZV93 aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXpl X29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZsc2h1LCB0aF9sb2Fkc3RvcmVf d2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfc2l6 ZV9vcHMpCitERUZfUlZWX0ZVTkNUSU9OICh2bHN3dSwgdGhfbG9hZHN0b3Jl X3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX3Np emVfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodnNzYiwgdGhfbG9hZHN0b3Jl X3dpZHRoLCBub25lX21fcHJlZHMsIGFsbF92X3NjYWxhcl9wdHJfc2l6ZV9v cHMpCitERUZfUlZWX0ZVTkNUSU9OICh2c3NoLCB0aF9sb2Fkc3RvcmVfd2lk dGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFyX3B0cl9zaXplX29wcykK K0RFRl9SVlZfRlVOQ1RJT04gKHZzc3csIHRoX2xvYWRzdG9yZV93aWR0aCwg bm9uZV9tX3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRyX3NpemVfb3BzKQorREVG X1JWVl9GVU5DVElPTiAodmx4YiwgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lk dGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhf b3BzKQorREVGX1JWVl9GVU5DVElPTiAodmx4aCwgdGhfaW5kZXhlZF9sb2Fk c3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9w dHJfaW5kZXhfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodmx4dywgdGhfaW5k ZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxh cl9jb25zdF9wdHJfaW5kZXhfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodmx4 YnUsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBh bGxfdl9zY2FsYXJfY29uc3RfcHRyX2luZGV4X29wcykKK0RFRl9SVlZfRlVO Q1RJT04gKHZseGh1LCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwgZnVs bF9wcmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9vcHMpCitE RUZfUlZWX0ZVTkNUSU9OICh2bHh3dSwgdGhfaW5kZXhlZF9sb2Fkc3RvcmVf d2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfaW5k ZXhfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodnN4YiwgdGhfaW5kZXhlZF9s b2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFyX3B0 cl9pbmRleF9vcHMpCitERUZfUlZWX0ZVTkNUSU9OICh2c3hoLCB0aF9pbmRl eGVkX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxfdl9zY2Fs YXJfcHRyX2luZGV4X29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHZzeHcsIHRo X2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBub25lX21fcHJlZHMsIGFsbF92 X3NjYWxhcl9wdHJfaW5kZXhfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodnN1 eGIsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBub25lX21fcHJlZHMs IGFsbF92X3NjYWxhcl9wdHJfaW5kZXhfb3BzKQorREVGX1JWVl9GVU5DVElP TiAodnN1eGgsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBub25lX21f cHJlZHMsIGFsbF92X3NjYWxhcl9wdHJfaW5kZXhfb3BzKQorREVGX1JWVl9G VU5DVElPTiAodnN1eHcsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBu b25lX21fcHJlZHMsIGFsbF92X3NjYWxhcl9wdHJfaW5kZXhfb3BzKQorREVG X1JWVl9GVU5DVElPTiAodmV4dF94X3YsIHRoX2V4dHJhY3QsIG5vbmVfcHJl ZHMsIGl1X3hfc191X29wcykKKyN1bmRlZiBSRVFVSVJFRF9FWFRFTlNJT05T CisKKyN1bmRlZiBERUZfUlZWX0ZVTkNUSU9OCmRpZmYgLS1naXQgYS9nY2Mv Y29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci5tZCBiL2djYy9jb25maWcvcmlz Y3YvdGhlYWQtdmVjdG9yLm1kCmluZGV4IDY5NmI4MTUyNTJkLi4wZjM3MDBk OTI2OSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0 b3IubWQKKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3IubWQK QEAgLTEsNyArMSw5NSBAQAogKGRlZmluZV9jX2VudW0gInVuc3BlYyIgWwor IFVOU1BFQ19USF9WTEIKKyBVTlNQRUNfVEhfVkxCVQorIFVOU1BFQ19USF9W TEgKKyBVTlNQRUNfVEhfVkxIVQorIFVOU1BFQ19USF9WTFcKKyBVTlNQRUNf VEhfVkxXVQorCisgVU5TUEVDX1RIX1ZMU0IKKyBVTlNQRUNfVEhfVkxTQlUK KyBVTlNQRUNfVEhfVkxTSAorIFVOU1BFQ19USF9WTFNIVQorIFVOU1BFQ19U SF9WTFNXCisgVU5TUEVDX1RIX1ZMU1dVCisKKyBVTlNQRUNfVEhfVkxYQgor IFVOU1BFQ19USF9WTFhCVQorIFVOU1BFQ19USF9WTFhICisgVU5TUEVDX1RI X1ZMWEhVCisgVU5TUEVDX1RIX1ZMWFcKKyBVTlNQRUNfVEhfVkxYV1UKKwor IFVOU1BFQ19USF9WU1VYQgorIFVOU1BFQ19USF9WU1VYSAorIFVOU1BFQ19U SF9WU1VYVworCiBVTlNQRUNfVEhfVldMRFNUCiBdKQorKGRlZmluZV9pbnRf aXRlcmF0b3IgVU5TUEVDX1RIX1ZMTUVNX09QIFsKKyBVTlNQRUNfVEhfVkxC IFVOU1BFQ19USF9WTEJVCisgVU5TUEVDX1RIX1ZMSCBVTlNQRUNfVEhfVkxI VQorIFVOU1BFQ19USF9WTFcgVU5TUEVDX1RIX1ZMV1UKK10pCisKKyhkZWZp bmVfaW50X2l0ZXJhdG9yIFVOU1BFQ19USF9WTFNNRU1fT1AgWworIFVOU1BF Q19USF9WTFNCIFVOU1BFQ19USF9WTFNCVQorIFVOU1BFQ19USF9WTFNIIFVO U1BFQ19USF9WTFNIVQorIFVOU1BFQ19USF9WTFNXIFVOU1BFQ19USF9WTFNX VQorXSkKKworKGRlZmluZV9pbnRfaXRlcmF0b3IgVU5TUEVDX1RIX1ZMWE1F TV9PUCBbCisgVU5TUEVDX1RIX1ZMWEIgVU5TUEVDX1RIX1ZMWEJVCisgVU5T UEVDX1RIX1ZMWEggVU5TUEVDX1RIX1ZMWEhVCisgVU5TUEVDX1RIX1ZMWFcg VU5TUEVDX1RIX1ZMWFdVCitdKQorCisoZGVmaW5lX2ludF9hdHRyIHZsbWVt X29wX2F0dHIgWworIChVTlNQRUNfVEhfVkxCICJiIikgKFVOU1BFQ19USF9W TEJVICJidSIpCisgKFVOU1BFQ19USF9WTEggImgiKSAoVU5TUEVDX1RIX1ZM SFUgImh1IikKKyAoVU5TUEVDX1RIX1ZMVyAidyIpIChVTlNQRUNfVEhfVkxX VSAid3UiKQorIChVTlNQRUNfVEhfVkxTQiAiYiIpIChVTlNQRUNfVEhfVkxT QlUgImJ1IikKKyAoVU5TUEVDX1RIX1ZMU0ggImgiKSAoVU5TUEVDX1RIX1ZM U0hVICJodSIpCisgKFVOU1BFQ19USF9WTFNXICJ3IikgKFVOU1BFQ19USF9W TFNXVSAid3UiKQorIChVTlNQRUNfVEhfVkxYQiAiYiIpIChVTlNQRUNfVEhf VkxYQlUgImJ1IikKKyAoVU5TUEVDX1RIX1ZMWEggImgiKSAoVU5TUEVDX1RI X1ZMWEhVICJodSIpCisgKFVOU1BFQ19USF9WTFhXICJ3IikgKFVOU1BFQ19U SF9WTFhXVSAid3UiKQorIChVTlNQRUNfVEhfVlNVWEIgImIiKQorIChVTlNQ RUNfVEhfVlNVWEggImgiKQorIChVTlNQRUNfVEhfVlNVWFcgInciKQorXSkK KworKGRlZmluZV9pbnRfYXR0ciB2bG1lbV9vcmRlcl9hdHRyIFsKKyAoVU5T UEVDX1RIX1ZMWEIgIiIpCisgKFVOU1BFQ19USF9WTFhIICIiKQorIChVTlNQ RUNfVEhfVkxYVyAiIikKKyAoVU5TUEVDX1RIX1ZTVVhCICJ1IikKKyAoVU5T UEVDX1RIX1ZTVVhIICJ1IikKKyAoVU5TUEVDX1RIX1ZTVVhXICJ1IikKK10p CisKKyhkZWZpbmVfaW50X2l0ZXJhdG9yIFVOU1BFQ19USF9WU01FTV9PUCBb CisgVU5TUEVDX1RIX1ZMQgorIFVOU1BFQ19USF9WTEgKKyBVTlNQRUNfVEhf VkxXCitdKQorCisoZGVmaW5lX2ludF9pdGVyYXRvciBVTlNQRUNfVEhfVlNT TUVNX09QIFsKKyBVTlNQRUNfVEhfVkxTQgorIFVOU1BFQ19USF9WTFNICisg VU5TUEVDX1RIX1ZMU1cKK10pCisKKyhkZWZpbmVfaW50X2l0ZXJhdG9yIFVO U1BFQ19USF9WU1hNRU1fT1AgWworIFVOU1BFQ19USF9WTFhCCisgVU5TUEVD X1RIX1ZMWEgKKyBVTlNQRUNfVEhfVkxYVworIFVOU1BFQ19USF9WU1VYQgor IFVOU1BFQ19USF9WU1VYSAorIFVOU1BFQ19USF9WU1VYVworXSkKKwogKGRl ZmluZV9tb2RlX2l0ZXJhdG9yIFZfVkxTX1ZUIFtWIFZMUyBWVF0pCiAoZGVm aW5lX21vZGVfaXRlcmF0b3IgVl9WQl9WTFNfVlQgW1YgVkIgVkxTIFZUXSkK QEAgLTEwMCwzICsxODgsMTY4IEBACiB9CiBbKHNldF9hdHRyICJ0eXBlIiAi dmxkbSx2c3RtLHZtYWx1LHZtYWx1LHZtYWx1IikKIChzZXRfYXR0ciAibW9k ZSIgIjxNT0RFPiIpXSkKKworKGRlZmluZV9leHBhbmQgIkBwcmVkX21vdl93 aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiIKKyBbKHNldCAobWF0Y2hfb3Bl cmFuZDpWX1ZMUyAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIpCisgKGlmX3Ro ZW5fZWxzZTpWX1ZMUworICh1bnNwZWM6PFZNPgorIFsobWF0Y2hfb3BlcmFu ZDo8Vk0+IDEgInZlY3Rvcl9tYXNrX29wZXJhbmQiKQorIChtYXRjaF9vcGVy YW5kIDQgInZlY3Rvcl9sZW5ndGhfb3BlcmFuZCIpCisgKG1hdGNoX29wZXJh bmQgNSAiY29uc3RfaW50X29wZXJhbmQiKQorIChtYXRjaF9vcGVyYW5kIDYg ImNvbnN0X2ludF9vcGVyYW5kIikKKyAobWF0Y2hfb3BlcmFuZCA3ICJjb25z dF9pbnRfb3BlcmFuZCIpCisgKHJlZzpTSSBWTF9SRUdOVU0pCisgKHJlZzpT SSBWVFlQRV9SRUdOVU0pXSBVTlNQRUNfVEhfVkxNRU1fT1ApCisgKG1hdGNo X29wZXJhbmQ6Vl9WTFMgMyAidmVjdG9yX21vdmVfb3BlcmFuZCIpCisgKG1h dGNoX29wZXJhbmQ6Vl9WTFMgMiAidmVjdG9yX21lcmdlX29wZXJhbmQiKSkp XQorICJUQVJHRVRfWFRIRUFEVkVDVE9SIgorIHt9KQorCisoZGVmaW5lX2lu c25fYW5kX3NwbGl0ICIqcHJlZF9tb3Zfd2lkdGg8dmxtZW1fb3BfYXR0cj48 bW9kZT4iCisgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vl9WTFMgMCAibm9uaW1t ZWRpYXRlX29wZXJhbmQiICI9dnIsIHZyLCB2ZCwgbSwgdnIsIHZyIikKKyAo aWZfdGhlbl9lbHNlOlZfVkxTCisgKHVuc3BlYzo8Vk0+CisgWyhtYXRjaF9v cGVyYW5kOjxWTT4gMSAidmVjdG9yX21hc2tfb3BlcmFuZCIgInZtV2MxLCBX YzEsIHZtLCB2bVdjMSwgV2MxLCBXYzEiKQorIChtYXRjaF9vcGVyYW5kIDQg InZlY3Rvcl9sZW5ndGhfb3BlcmFuZCIgIiBySywgckssIHJLLCBySywgckss IHJLIikKKyAobWF0Y2hfb3BlcmFuZCA1ICJjb25zdF9pbnRfb3BlcmFuZCIg IiBpLCBpLCBpLCBpLCBpLCBpIikKKyAobWF0Y2hfb3BlcmFuZCA2ICJjb25z dF9pbnRfb3BlcmFuZCIgIiBpLCBpLCBpLCBpLCBpLCBpIikKKyAobWF0Y2hf b3BlcmFuZCA3ICJjb25zdF9pbnRfb3BlcmFuZCIgIiBpLCBpLCBpLCBpLCBp LCBpIikKKyAocmVnOlNJIFZMX1JFR05VTSkKKyAocmVnOlNJIFZUWVBFX1JF R05VTSldIFVOU1BFQ19USF9WTE1FTV9PUCkKKyAobWF0Y2hfb3BlcmFuZDpW X1ZMUyAzICJyZWdfb3JfbWVtX29wZXJhbmQiICIgbSwgbSwgbSwgdnIsIHZy LCB2ciIpCisgKG1hdGNoX29wZXJhbmQ6Vl9WTFMgMiAidmVjdG9yX21lcmdl X29wZXJhbmQiICIgMCwgdnUsIHZ1LCB2dSwgdnUsIDAiKSkpXQorICIoVEFS R0VUX1hUSEVBRFZFQ1RPUgorICYmIChyZWdpc3Rlcl9vcGVyYW5kIChvcGVy YW5kc1swXSwgPE1PREU+bW9kZSkKKyB8fCByZWdpc3Rlcl9vcGVyYW5kIChv cGVyYW5kc1szXSwgPE1PREU+bW9kZSkpKSIKKyAiQAorIHZsPHZsbWVtX29w X2F0dHI+LnZcdCUwLCUzJXAxCisgdmw8dmxtZW1fb3BfYXR0cj4udlx0JTAs JTMKKyB2bDx2bG1lbV9vcF9hdHRyPi52XHQlMCwlMywlMS50CisgdnM8dmxt ZW1fb3BfYXR0cj4udlx0JTMsJTAlcDEKKyB2bXYudi52XHQlMCwlMworIHZt di52LnZcdCUwLCUzIgorICImJiByZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5k c1swXSwgPE1PREU+bW9kZSkKKyAmJiByZWdpc3Rlcl9vcGVyYW5kIChvcGVy YW5kc1szXSwgPE1PREU+bW9kZSkKKyAmJiBzYXRpc2ZpZXNfY29uc3RyYWlu dF92dSAob3BlcmFuZHNbMl0pCisgJiYgSU5UVkFMIChvcGVyYW5kc1s3XSkg PT0gcmlzY3ZfdmVjdG9yOjpWTE1BWCIKKyBbKHNldCAobWF0Y2hfZHVwIDAp IChtYXRjaF9kdXAgMykpXQorICIiCisgWyhzZXRfYXR0ciAidHlwZSIgInZs ZGUsdmxkZSx2bGRlLHZzdGUsdmltb3Ysdmltb3YiKQorIChzZXRfYXR0ciAi bW9kZSIgIjxNT0RFPiIpXSkKKworKGRlZmluZV9pbnNuICJAcHJlZF9zdG9y ZV93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiIKKyBbKHNldCAobWF0Y2hf b3BlcmFuZDpWSSAwICJtZW1vcnlfb3BlcmFuZCIgIittIikKKyAoaWZfdGhl bl9lbHNlOlZJCisgKHVuc3BlYzo8Vk0+CisgWyhtYXRjaF9vcGVyYW5kOjxW TT4gMSAidmVjdG9yX21hc2tfb3BlcmFuZCIgInZtV2MxIikKKyAobWF0Y2hf b3BlcmFuZCAzICJ2ZWN0b3JfbGVuZ3RoX29wZXJhbmQiICIgcksiKQorICht YXRjaF9vcGVyYW5kIDQgImNvbnN0X2ludF9vcGVyYW5kIiAiIGkiKQorIChy ZWc6U0kgVkxfUkVHTlVNKQorIChyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5T UEVDX1RIX1ZTTUVNX09QKQorIChtYXRjaF9vcGVyYW5kOlZJIDIgInJlZ2lz dGVyX29wZXJhbmQiICIgdnIiKQorIChtYXRjaF9kdXAgMCkpKV0KKyAiVEFS R0VUX1hUSEVBRFZFQ1RPUiIKKyAidnM8dmxtZW1fb3BfYXR0cj4udlx0JTIs JTAlcDEiCisgWyhzZXRfYXR0ciAidHlwZSIgInZzdGUiKQorIChzZXRfYXR0 ciAibW9kZSIgIjxNT0RFPiIpCisgKHNldCAoYXR0ciAiYXZsX3R5cGVfaWR4 IikgKGNvbnN0X2ludCA0KSkKKyAoc2V0X2F0dHIgInZsX29wX2lkeCIgIjMi KV0pCisKKyhkZWZpbmVfaW5zbiAiQHByZWRfc3RyaWRlZF9sb2FkX3dpZHRo PHZsbWVtX29wX2F0dHI+PG1vZGU+IgorIFsoc2V0IChtYXRjaF9vcGVyYW5k OlZJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9dnIsIHZyLCB2ZCIpCisgKGlm X3RoZW5fZWxzZTpWSQorICh1bnNwZWM6PFZNPgorIFsobWF0Y2hfb3BlcmFu ZDo8Vk0+IDEgInZlY3Rvcl9tYXNrX29wZXJhbmQiICJ2bVdjMSwgV2MxLCB2 bSIpCisgKG1hdGNoX29wZXJhbmQgNSAidmVjdG9yX2xlbmd0aF9vcGVyYW5k IiAiIHJLLCBySywgcksiKQorIChtYXRjaF9vcGVyYW5kIDYgImNvbnN0X2lu dF9vcGVyYW5kIiAiIGksIGksIGkiKQorIChtYXRjaF9vcGVyYW5kIDcgImNv bnN0X2ludF9vcGVyYW5kIiAiIGksIGksIGkiKQorIChtYXRjaF9vcGVyYW5k IDggImNvbnN0X2ludF9vcGVyYW5kIiAiIGksIGksIGkiKQorIChyZWc6U0kg VkxfUkVHTlVNKQorIChyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5TUEVDX1RI X1ZMU01FTV9PUCkKKyAodW5zcGVjOlZJCisgWyhtYXRjaF9vcGVyYW5kOlZJ IDMgIm1lbW9yeV9vcGVyYW5kIiAiIG0sIG0sIG0iKQorIChtYXRjaF9vcGVy YW5kIDQgInBtb2RlX3JlZ19vcl8wX29wZXJhbmQiICIgckosIHJKLCBySiIp XSBVTlNQRUNfVEhfVkxTTUVNX09QKQorIChtYXRjaF9vcGVyYW5kOlZJIDIg InZlY3Rvcl9tZXJnZV9vcGVyYW5kIiAiIDAsIHZ1LCB2dSIpKSldCisgIlRB UkdFVF9YVEhFQURWRUNUT1IiCisgInZsczx2bG1lbV9vcF9hdHRyPi52XHQl MCwlMywlejQlcDEiCisgWyhzZXRfYXR0ciAidHlwZSIgInZsZHMiKQorIChz ZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkKKworKGRlZmluZV9pbnNuICJA cHJlZF9zdHJpZGVkX3N0b3JlX3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+ IgorIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZJIDAgIm1lbW9yeV9vcGVyYW5k IiAiK20iKQorIChpZl90aGVuX2Vsc2U6VkkKKyAodW5zcGVjOjxWTT4KKyBb KG1hdGNoX29wZXJhbmQ6PFZNPiAxICJ2ZWN0b3JfbWFza19vcGVyYW5kIiAi dm1XYzEiKQorIChtYXRjaF9vcGVyYW5kIDQgInZlY3Rvcl9sZW5ndGhfb3Bl cmFuZCIgIiBySyIpCisgKG1hdGNoX29wZXJhbmQgNSAiY29uc3RfaW50X29w ZXJhbmQiICIgaSIpCisgKHJlZzpTSSBWTF9SRUdOVU0pCisgKHJlZzpTSSBW VFlQRV9SRUdOVU0pXSBVTlNQRUNfVEhfVlNTTUVNX09QKQorICh1bnNwZWM6 VkkKKyBbKG1hdGNoX29wZXJhbmQgMiAicG1vZGVfcmVnX29yXzBfb3BlcmFu ZCIgIiBySiIpCisgKG1hdGNoX29wZXJhbmQ6VkkgMyAicmVnaXN0ZXJfb3Bl cmFuZCIgIiB2ciIpXSBVTlNQRUNfVEhfVlNTTUVNX09QKQorIChtYXRjaF9k dXAgMCkpKV0KKyAiVEFSR0VUX1hUSEVBRFZFQ1RPUiIKKyAidnNzPHZsbWVt X29wX2F0dHI+LnZcdCUzLCUwLCV6MiVwMSIKKyBbKHNldF9hdHRyICJ0eXBl IiAidnN0cyIpCisgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IikKKyAoc2V0 IChhdHRyICJhdmxfdHlwZV9pZHgiKSAoY29uc3RfaW50IDUpKV0pCisKKyhk ZWZpbmVfaW5zbiAiQHByZWRfaW5kZXhlZF9sb2FkX3dpZHRoPHZsbWVtX29w X2F0dHI+PG1vZGU+IgorIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZJIDAgInJl Z2lzdGVyX29wZXJhbmQiICI9dmQsIHZyLHZkLCB2ciIpCisgKGlmX3RoZW5f ZWxzZTpWSQorICh1bnNwZWM6PFZNPgorIFsobWF0Y2hfb3BlcmFuZDo8Vk0+ IDEgInZlY3Rvcl9tYXNrX29wZXJhbmQiICIgdm0sV2MxLHZtLFdjMSIpCisg KG1hdGNoX29wZXJhbmQgNSAidmVjdG9yX2xlbmd0aF9vcGVyYW5kIiAiIHJL LCBySyxySywgcksiKQorIChtYXRjaF9vcGVyYW5kIDYgImNvbnN0X2ludF9v cGVyYW5kIiAiIGksIGksIGksIGkiKQorIChtYXRjaF9vcGVyYW5kIDcgImNv bnN0X2ludF9vcGVyYW5kIiAiIGksIGksIGksIGkiKQorIChtYXRjaF9vcGVy YW5kIDggImNvbnN0X2ludF9vcGVyYW5kIiAiIGksIGksIGksIGkiKQorIChy ZWc6U0kgVkxfUkVHTlVNKQorIChyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5T UEVDX1RIX1ZMWE1FTV9PUCkKKyAodW5zcGVjOlZJCisgWyhtYXRjaF9vcGVy YW5kIDMgInBtb2RlX3JlZ19vcl8wX29wZXJhbmQiICIgckosIHJKLHJKLCBy SiIpCisgKG1lbTpCTEsgKHNjcmF0Y2gpKQorIChtYXRjaF9vcGVyYW5kOlZJ IDQgInJlZ2lzdGVyX29wZXJhbmQiICIgdnIsIHZyLHZyLCB2ciIpXSBVTlNQ RUNfVEhfVkxYTUVNX09QKQorIChtYXRjaF9vcGVyYW5kOlZJIDIgInZlY3Rv cl9tZXJnZV9vcGVyYW5kIiAiIHZ1LCB2dSwgMCwgMCIpKSldCisgIlRBUkdF VF9YVEhFQURWRUNUT1IiCisgInZseDx2bG1lbV9vcF9hdHRyPi52XHQlMCwo JXozKSwlNCVwMSIKKyBbKHNldF9hdHRyICJ0eXBlIiAidmxkdXgiKQorIChz ZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkKKworKGRlZmluZV9pbnNuICJA cHJlZF9pbmRleGVkXzx2bG1lbV9vcmRlcl9hdHRyPnN0b3JlX3dpZHRoPHZs bWVtX29wX2F0dHI+PG1vZGU+IgorIFsoc2V0IChtZW06QkxLIChzY3JhdGNo KSkKKyAodW5zcGVjOkJMSworIFsodW5zcGVjOjxWTT4KKyBbKG1hdGNoX29w ZXJhbmQ6PFZNPiAwICJ2ZWN0b3JfbWFza19vcGVyYW5kIiAidm1XYzEiKQor IChtYXRjaF9vcGVyYW5kIDQgInZlY3Rvcl9sZW5ndGhfb3BlcmFuZCIgIiBy SyIpCisgKG1hdGNoX29wZXJhbmQgNSAiY29uc3RfaW50X29wZXJhbmQiICIg aSIpCisgKHJlZzpTSSBWTF9SRUdOVU0pCisgKHJlZzpTSSBWVFlQRV9SRUdO VU0pXSBVTlNQRUNfVEhfVlNYTUVNX09QKQorIChtYXRjaF9vcGVyYW5kIDEg InBtb2RlX3JlZ19vcl8wX29wZXJhbmQiICIgckoiKQorIChtYXRjaF9vcGVy YW5kOlZJIDIgInJlZ2lzdGVyX29wZXJhbmQiICIgdnIiKQorIChtYXRjaF9v cGVyYW5kOlZJIDMgInJlZ2lzdGVyX29wZXJhbmQiICIgdnIiKV0gVU5TUEVD X1RIX1ZTWE1FTV9PUCkpXQorICJUQVJHRVRfWFRIRUFEVkVDVE9SIgorICJ2 czx2bG1lbV9vcmRlcl9hdHRyPng8dmxtZW1fb3BfYXR0cj4udlx0JTMsKCV6 MSksJTIlcDAiCisgWyhzZXRfYXR0ciAidHlwZSIgInZzdHV4IikKKyAoc2V0 X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pCisKKyhkZWZpbmVfZXhwYW5kICJA cHJlZF90aF9leHRyYWN0PG1vZGU+IgorIFsoc2V0IChtYXRjaF9vcGVyYW5k OjxWRUw+IDAgInJlZ2lzdGVyX29wZXJhbmQiKQorICh1bnNwZWM6PFZFTD4K KyBbKHZlY19zZWxlY3Q6PFZFTD4KKyAobWF0Y2hfb3BlcmFuZDpWX1ZMU0kg MSAicmVnaXN0ZXJfb3BlcmFuZCIpCisgKHBhcmFsbGVsIFsobWF0Y2hfb3Bl cmFuZDpESSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpXSkpCisgKHJlZzpT SSBWVFlQRV9SRUdOVU0pXSBVTlNQRUNfVlBSRURJQ0FURSkpXQorICJUQVJH RVRfWFRIRUFEVkVDVE9SIgore30pCisKKyhkZWZpbmVfaW5zbiAiKnByZWRf dGhfZXh0cmFjdDxtb2RlPiIKKyBbKHNldCAobWF0Y2hfb3BlcmFuZDo8VkVM PiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQorICh1bnNwZWM6PFZFTD4K KyBbKHZlY19zZWxlY3Q6PFZFTD4KKyAobWF0Y2hfb3BlcmFuZDpWX1ZMU0kg MSAicmVnaXN0ZXJfb3BlcmFuZCIgInZyIikKKyAocGFyYWxsZWwgWyhtYXRj aF9vcGVyYW5kOkRJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJyIildKSkKKyAo cmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19WUFJFRElDQVRFKSldCisg IlRBUkdFVF9YVEhFQURWRUNUT1IiCisgInZleHQueC52XHQlMCwlMSwlMiIK KyBbKHNldF9hdHRyICJ0eXBlIiAidmltb3Z2eCIpCisgKHNldF9hdHRyICJt b2RlIiAiPE1PREU+IildKQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxiLXZzYi5jIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0 b3IvdmxiLXZzYi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi4zYzEyYzEyNDU5NwotLS0gL2Rldi9udWxsCisrKyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zs Yi12c2IuYwpAQCAtMCwwICsxLDY4IEBACisvKiB7IGRnLWRvIGNvbXBpbGUg fSAqLworLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdjeHRoZWFkdmVj dG9yIC1tYWJpPWlscDMyZCAtTzMiIH0gKi8KKy8qIHsgZGctZmluYWwgeyBj aGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiB9IH0gKi8KKyNpbmNsdWRl ICJyaXNjdl90aF92ZWN0b3IuaCIKKworLyoKKyoqIGYxOgorKiogdGgudnNl dGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbWEKKyoqIHRoLnZsYlwudlx0dlsw LTldKywwXChbYS14MC05XStcKQorKiogdGgudmxiXC52XHR2WzAtOV0rLDBc KFthLXgwLTldK1wpCisqKiB0aC52YWRkXC52dlx0dlswLTldKyxccyp2WzAt OV0rLFxzKnZbMC05XSsKKyoqIHRoLnZhZGRcLnZ2XHR2WzAtOV0rLFxzKnZb MC05XSssXHMqdlswLTldKworKiogdGgudnNiXC52XHR2WzAtOV0rLDBcKFth LXgwLTldK1wpCisqKiByZXQKKyovCit2b2lkIGYxICh2b2lkICogaW4sIHZv aWQgKm91dCkKK3sKKyB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsYl92 X2kzMm0xIChpbiwgNCk7CisgdmludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhf dmxiX3ZfaTMybTFfdHUgKHYsIGluLCA0KTsKKyB2aW50MzJtMV90IHYzID0g X19yaXNjdl92YWRkX3Z2X2kzMm0xICh2MiwgdjIsIDQpOworIHZpbnQzMm0x X3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnZfaTMybTFfdHUgKHYzLCB2MiwgdjIs IDQpOworIF9fcmlzY3ZfdGhfdnNiX3ZfaTMybTEgKG91dCwgdjQsIDQpOwor fQorCisvKgorKiogZjI6CisqKiB0aC52c2V0dmxpXHRbYS14MC05XSssemVy byxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgw LTldK1wpCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0YSxtYQor KiogdGgudmxiLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCksdjAudAorKiog dGgudmFkZFwudnZcdHZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rCisq KiB0aC52YWRkXC52dlx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqdlsw LTldKyxccyp2MC50CisqKiB0aC52c2Iudlx0dlswLTldKywwXChbYS14MC05 XStcKQorKiogcmV0CisqLwordm9pZCBmMiAodm9pZCAqIGluLCB2b2lkICpv dXQpCit7CisgdmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJfdCopaW47Cisg YXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsKKyB2aW50MzJtMV90IHYg PSBfX3Jpc2N2X3RoX3ZsYl92X2kzMm0xIChpbiwgNCk7CisgdmludDMybTFf dCB2MiA9IF9fcmlzY3ZfdGhfdmxiX3ZfaTMybTFfbSAobWFzaywgaW4sIDQp OworIHZpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnZfaTMybTEgKHYy LCB2MiwgNCk7CisgdmludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92dl9p MzJtMV9tIChtYXNrLCB2MywgdjMsIDQpOworIF9fcmlzY3ZfdGhfdnNiX3Zf aTMybTEgKG91dCwgdjQsIDQpOworfQorCisvKgorKiogZjM6CisqKiB0aC52 c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWEKKyoqIHRoLnZs bS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52c2V0aXZsaVx0 emVybyw0LGUzMixtMSx0dSxtdQorKiogdGgudmxiXC52XHR2WzAtOV0rLDBc KFthLXgwLTldK1wpCisqKiB0aC52bGIudlx0dlswLTldKywwXChbYS14MC05 XStcKSx2MC50CisqKiB0aC52YWRkXC52dlx0dlswLTldKyxccyp2WzAtOV0r LFxzKnZbMC05XSsKKyoqIHRoLnZhZGRcLnZ2XHR2WzEtOV1bMC05XT8sXHMq dlswLTldKyxccyp2WzAtOV0rLFxzKnYwLnQKKyoqIHRoLnZzYi52XHR2WzAt OV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lkIGYzICh2b2lk ICogaW4sIHZvaWQgKm91dCkKK3sKKyB2Ym9vbDMyX3QgbWFzayA9ICoodmJv b2wzMl90KilpbjsKKyBhc20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOwor IHZpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxiX3ZfaTMybTEgKGluLCA0 KTsKKyB2aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bGJfdl9pMzJtMV90 dW11IChtYXNrLCB2LCBpbiwgNCk7CisgdmludDMybTFfdCB2MyA9IF9fcmlz Y3ZfdmFkZF92dl9pMzJtMSAodjIsIHYyLCA0KTsKKyB2aW50MzJtMV90IHY0 ID0gX19yaXNjdl92YWRkX3Z2X2kzMm0xX3R1bXUgKG1hc2ssIHYzLCB2Miwg djIsIDQpOworIF9fcmlzY3ZfdGhfdnNiX3ZfaTMybTEgKG91dCwgdjQsIDQp OworfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di94dGhlYWR2ZWN0b3IvdmxidS12c2IuYyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYnUtdnNi LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjMw YmVmMzY5Mzc1Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxidS12c2IuYwpA QCAtMCwwICsxLDY4IEBACisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyog eyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdjeHRoZWFkdmVjdG9yIC1tYWJp PWlscDMyZCAtTzMiIH0gKi8KKy8qIHsgZGctZmluYWwgeyBjaGVjay1mdW5j dGlvbi1ib2RpZXMgIioqIiAiIiB9IH0gKi8KKyNpbmNsdWRlICJyaXNjdl90 aF92ZWN0b3IuaCIKKworLyoKKyoqIGYxOgorKiogdGgudnNldGl2bGlcdHpl cm8sNCxlMzIsbTEsdHUsbWEKKyoqIHRoLnZsYnVcLnZcdHZbMC05XSssMFwo W2EteDAtOV0rXCkKKyoqIHRoLnZsYnVcLnZcdHZbMC05XSssMFwoW2EteDAt OV0rXCkKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMq LTE2CisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0x NgorKiogdGgudnNiXC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiBy ZXQKKyovCit2b2lkIGYxICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMy X3QgeCkKK3sKKyB2dWludDMybTFfdCB2ID0gX19yaXNjdl90aF92bGJ1X3Zf dTMybTEgKGluLCA0KTsKKyB2dWludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhf dmxidV92X3UzMm0xX3R1ICh2LCBpbiwgNCk7CisgdnVpbnQzMm0xX3QgdjMg PSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTEgKHYyLCAtMTYsIDQpOworIHZ1aW50 MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xX3R1ICh2MywgdjIs IC0xNiwgNCk7CisgX19yaXNjdl90aF92c2Jfdl91MzJtMSAob3V0LCB2NCwg NCk7Cit9CisKKy8qCisqKiBmMjoKKyoqIHRoLnZzZXR2bGlcdFthLXgwLTld Kyx6ZXJvLGU4LG1mNCx0YSxtYQorKiogdGgudmxtLnZcdHZbMC05XSssMFwo W2EteDAtOV0rXCkKKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHRh LG1hCisqKiB0aC52bGJ1LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCksdjAu dAorKiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYK KyoqIHRoLnZhZGRcLnZpXHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxccyot MTYsXHMqdjAudAorKiogdGgudnNiLnZcdHZbMC05XSssMFwoW2EteDAtOV0r XCkKKyoqIHJldAorKi8KK3ZvaWQgZjIgKHZvaWQgKiBpbiwgdm9pZCAqb3V0 LCB1aW50MzJfdCB4KQoreworIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMy X3QqKWluOworIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7CisgdnVp bnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxidV92X3UzMm0xIChpbiwgNCk7 CisgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsYnVfdl91MzJtMV9t IChtYXNrLCBpbiwgNCk7CisgdnVpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3Zh ZGRfdnhfdTMybTEgKHYyLCAtMTYsIDQpOworIHZ1aW50MzJtMV90IHY0ID0g X19yaXNjdl92YWRkX3Z4X3UzMm0xX20gKG1hc2ssIHYzLCAtMTYsIDQpOwor IF9fcmlzY3ZfdGhfdnNiX3ZfdTMybTEgKG91dCwgdjQsIDQpOworfQorCisv KgorKiogZjM6CisqKiB0aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxt ZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wp CisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtdQorKiogdGgu dmxidVwudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgudmxidS52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZp XHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52YWRkXC52aVx0 dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYwLnQKKyoqIHRo LnZzYi52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2 b2lkIGYzICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3QgeCkKK3sK KyB2Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsKKyBhc20gdm9s YXRpbGUgKCIiOjo6Im1lbW9yeSIpOworIHZ1aW50MzJtMV90IHYgPSBfX3Jp c2N2X3RoX3ZsYnVfdl91MzJtMSAoaW4sIDQpOworIHZ1aW50MzJtMV90IHYy ID0gX19yaXNjdl90aF92bGJ1X3ZfdTMybTFfdHVtdSAobWFzaywgdiwgaW4s IDQpOworIHZ1aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4X3UzMm0x ICh2MiwgLTE2LCA0KTsKKyB2dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFk ZF92eF91MzJtMV90dW11IChtYXNrLCB2MywgdjIsIC0xNiwgNCk7CisgX19y aXNjdl90aF92c2Jfdl91MzJtMSAob3V0LCB2NCwgNCk7Cit9CmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVh ZHZlY3Rvci92bGgtdnNoLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGgtdnNoLmMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNjOGI1Y2NjMTZiCi0tLSAv ZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di94dGhlYWR2ZWN0b3IvdmxoLXZzaC5jCkBAIC0wLDAgKzEsNjggQEAK Ky8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1t YXJjaD1ydjMyZ2N4dGhlYWR2ZWN0b3IgLW1hYmk9aWxwMzJkIC1PMyIgfSAq LworLyogeyBkZy1maW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioi ICIiIH0gfSAqLworI2luY2x1ZGUgInJpc2N2X3RoX3ZlY3Rvci5oIgorCisv KgorKiogZjE6CisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxt YQorKiogdGgudmxoXC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiB0 aC52bGhcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZhZGRc LnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52YWRkXC52 aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNgorKiogdGgudnNoXC52XHR2 WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lkIGYxICh2 b2lkICogaW4sIHZvaWQgKm91dCwgaW50MzJfdCB4KQoreworIHZpbnQzMm0x X3QgdiA9IF9fcmlzY3ZfdGhfdmxoX3ZfaTMybTEgKGluLCA0KTsKKyB2aW50 MzJtMV90IHYyID0gX19yaXNjdl90aF92bGhfdl9pMzJtMV90dSAodiwgaW4s IDQpOworIHZpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfaTMybTEg KHYyLCAtMTYsIDQpOworIHZpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRf dnhfaTMybTFfdHUgKHYzLCB2MiwgLTE2LCA0KTsKKyBfX3Jpc2N2X3RoX3Zz aF92X2kzMm0xIChvdXQsIHY0LCA0KTsKK30KKworLyoKKyoqIGYyOgorKiog dGgudnNldHZsaVx0W2EteDAtOV0rLHplcm8sZTgsbWY0LHRhLG1hCisqKiB0 aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgudnNldGl2 bGlcdHplcm8sNCxlMzIsbTEsdGEsbWEKKyoqIHRoLnZsaC52XHR2WzAtOV0r LDBcKFthLXgwLTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0r LFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAt OV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYwLnQKKyoqIHRoLnZzaC52XHR2 WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lkIGYyICh2 b2lkICogaW4sIHZvaWQgKm91dCwgaW50MzJfdCB4KQoreworIHZib29sMzJf dCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOworIGFzbSB2b2xhdGlsZSAoIiI6 OjoibWVtb3J5Iik7CisgdmludDMybTFfdCB2ID0gX19yaXNjdl90aF92bGhf dl9pMzJtMSAoaW4sIDQpOworIHZpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3Ro X3ZsaF92X2kzMm0xX20gKG1hc2ssIGluLCA0KTsKKyB2aW50MzJtMV90IHYz ID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xICh2MiwgLTE2LCA0KTsKKyB2aW50 MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xX20gKG1hc2ssIHYz LCAtMTYsIDQpOworIF9fcmlzY3ZfdGhfdnNoX3ZfaTMybTEgKG91dCwgdjQs IDQpOworfQorCisvKgorKiogZjM6CisqKiB0aC52c2V0dmxpXHRbYS14MC05 XSssemVybyxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBc KFthLXgwLTldK1wpCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0 dSxtdQorKiogdGgudmxoXC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisq KiB0aC52bGgudlx0dlswLTldKywwXChbYS14MC05XStcKSx2MC50CisqKiB0 aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNgorKiogdGgu dmFkZFwudmlcdHZbMS05XVswLTldPyxccyp2WzAtOV0rLFxzKi0xNixccyp2 MC50CisqKiB0aC52c2gudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiog cmV0CisqLwordm9pZCBmMyAodm9pZCAqIGluLCB2b2lkICpvdXQsIGludDMy X3QgeCkKK3sKKyB2Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsK KyBhc20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOworIHZpbnQzMm0xX3Qg diA9IF9fcmlzY3ZfdGhfdmxoX3ZfaTMybTEgKGluLCA0KTsKKyB2aW50MzJt MV90IHYyID0gX19yaXNjdl90aF92bGhfdl9pMzJtMV90dW11IChtYXNrLCB2 LCBpbiwgNCk7CisgdmludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF9p MzJtMSAodjIsIC0xNiwgNCk7CisgdmludDMybTFfdCB2NCA9IF9fcmlzY3Zf dmFkZF92eF9pMzJtMV90dW11IChtYXNrLCB2MywgdjIsIC0xNiwgNCk7Cisg X19yaXNjdl90aF92c2hfdl9pMzJtMSAob3V0LCB2NCwgNCk7Cit9CmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0 aGVhZHZlY3Rvci92bGh1LXZzaC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxodS12c2guYwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjdjMDA0MDRmMTgK LS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGh1LXZzaC5jCkBAIC0wLDAgKzEs NjggQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLW9wdGlv bnMgIi1tYXJjaD1ydjMyZ2N4dGhlYWR2ZWN0b3IgLW1hYmk9aWxwMzJkIC1P MyIgfSAqLworLyogeyBkZy1maW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGll cyAiKioiICIiIH0gfSAqLworI2luY2x1ZGUgInJpc2N2X3RoX3ZlY3Rvci5o IgorCisvKgorKiogZjE6CisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixt MSx0dSxtYQorKiogdGgudmxodVwudlx0dlswLTldKywwXChbYS14MC05XStc KQorKiogdGgudmxodVwudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiog dGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYKKyoqIHRo LnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52 c2hcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHJldAorKi8KK3Zv aWQgZjEgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCB1aW50MzJfdCB4KQorewor IHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91MzJtMSAoaW4s IDQpOworIHZ1aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bGh1X3ZfdTMy bTFfdHUgKHYsIGluLCA0KTsKKyB2dWludDMybTFfdCB2MyA9IF9fcmlzY3Zf dmFkZF92eF91MzJtMSAodjIsIC0xNiwgNCk7CisgdnVpbnQzMm0xX3QgdjQg PSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFfdHUgKHYzLCB2MiwgLTE2LCA0KTsK KyBfX3Jpc2N2X3RoX3ZzaF92X3UzMm0xIChvdXQsIHY0LCA0KTsKK30KKwor LyoKKyoqIGYyOgorKiogdGgudnNldHZsaVx0W2EteDAtOV0rLHplcm8sZTgs bWY0LHRhLG1hCisqKiB0aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStc KQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdGEsbWEKKyoqIHRo LnZsaHUudlx0dlswLTldKywwXChbYS14MC05XStcKSx2MC50CisqKiB0aC52 YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNgorKiogdGgudmFk ZFwudmlcdHZbMS05XVswLTldPyxccyp2WzAtOV0rLFxzKi0xNixccyp2MC50 CisqKiB0aC52c2gudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogcmV0 CisqLwordm9pZCBmMiAodm9pZCAqIGluLCB2b2lkICpvdXQsIHVpbnQzMl90 IHgpCit7CisgdmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJfdCopaW47Cisg YXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsKKyB2dWludDMybTFfdCB2 ID0gX19yaXNjdl90aF92bGh1X3ZfdTMybTEgKGluLCA0KTsKKyB2dWludDMy bTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxodV92X3UzMm0xX20gKG1hc2ssIGlu LCA0KTsKKyB2dWludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF91MzJt MSAodjIsIC0xNiwgNCk7CisgdnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3Zh ZGRfdnhfdTMybTFfbSAobWFzaywgdjMsIC0xNiwgNCk7CisgX19yaXNjdl90 aF92c2hfdl91MzJtMSAob3V0LCB2NCwgNCk7Cit9CisKKy8qCisqKiBmMzoK KyoqIHRoLnZzZXR2bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQor KiogdGgudmxtLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZz ZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG11CisqKiB0aC52bGh1XC52XHR2 WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52bGh1LnZcdHZbMC05XSss MFwoW2EteDAtOV0rXCksdjAudAorKiogdGgudmFkZFwudmlcdHZbMC05XSss XHMqdlswLTldKyxccyotMTYKKyoqIHRoLnZhZGRcLnZpXHR2WzEtOV1bMC05 XT8sXHMqdlswLTldKyxccyotMTYsXHMqdjAudAorKiogdGgudnNoLnZcdHZb MC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHJldAorKi8KK3ZvaWQgZjMgKHZv aWQgKiBpbiwgdm9pZCAqb3V0LCB1aW50MzJfdCB4KQoreworIHZib29sMzJf dCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOworIGFzbSB2b2xhdGlsZSAoIiI6 OjoibWVtb3J5Iik7CisgdnVpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxo dV92X3UzMm0xIChpbiwgNCk7CisgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2 X3RoX3ZsaHVfdl91MzJtMV90dW11IChtYXNrLCB2LCBpbiwgNCk7CisgdnVp bnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTEgKHYyLCAtMTYs IDQpOworIHZ1aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X3UzMm0x X3R1bXUgKG1hc2ssIHYzLCB2MiwgLTE2LCA0KTsKKyBfX3Jpc2N2X3RoX3Zz aF92X3UzMm0xIChvdXQsIHY0LCA0KTsKK30KZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zs dy12c3cuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv eHRoZWFkdmVjdG9yL3Zsdy12c3cuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uMTdhNTMwMTJhY2YKLS0tIC9kZXYvbnVsbAor KysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVh ZHZlY3Rvci92bHctdnN3LmMKQEAgLTAsMCArMSw2OCBAQAorLyogeyBkZy1k byBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2MzJn Y3h0aGVhZHZlY3RvciAtbWFiaT1pbHAzMmQgLU8zIiB9ICovCisvKiB7IGRn LWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgfSB9ICov CisjaW5jbHVkZSAicmlzY3ZfdGhfdmVjdG9yLmgiCisKKy8qCisqKiBmMToK KyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG1hCisqKiB0aC52 bHdcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZsd1wudlx0 dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgudmFkZFwudnhcdHZbMC05 XSssXHMqdlswLTldKyxccypbYS14MC05XSsKKyoqIHRoLnZhZGRcLnZ4XHR2 WzAtOV0rLFxzKnZbMC05XSssXHMqW2EteDAtOV0rCisqKiB0aC52c3dcLnZc dHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHJldAorKi8KK3ZvaWQgZjEg KHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQzMl90IHgpCit7CisgdmludDMy bTFfdCB2ID0gX19yaXNjdl90aF92bHdfdl9pMzJtMSAoaW4sIDQpOworIHZp bnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3Zsd192X2kzMm0xX3R1ICh2LCBp biwgNCk7CisgdmludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF9pMzJt MSAodjIsIHgsIDQpOworIHZpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRf dnhfaTMybTFfdHUgKHYzLCB2MiwgeCwgNCk7CisgX19yaXNjdl90aF92c3df dl9pMzJtMSAob3V0LCB2NCwgNCk7Cit9CisKKy8qCisqKiBmMjoKKyoqIHRo LnZzZXR2bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQorKiogdGgu dmxtLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZzZXRpdmxp XHR6ZXJvLDQsZTMyLG0xLHRhLG1hCisqKiB0aC52bHcudlx0dlswLTldKyww XChbYS14MC05XStcKSx2MC50CisqKiB0aC52YWRkXC52eFx0dlswLTldKyxc cyp2WzAtOV0rLFxzKlthLXgwLTldKworKiogdGgudmFkZFwudnhcdHZbMS05 XVswLTldPyxccyp2WzAtOV0rLFxzKlthLXgwLTldKyxccyp2MC50CisqKiB0 aC52c3cudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogcmV0CisqLwor dm9pZCBmMiAodm9pZCAqIGluLCB2b2lkICpvdXQsIGludDMyX3QgeCkKK3sK KyB2Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsKKyBhc20gdm9s YXRpbGUgKCIiOjo6Im1lbW9yeSIpOworIHZpbnQzMm0xX3QgdiA9IF9fcmlz Y3ZfdGhfdmx3X3ZfaTMybTEgKGluLCA0KTsKKyB2aW50MzJtMV90IHYyID0g X19yaXNjdl90aF92bHdfdl9pMzJtMV9tIChtYXNrLCBpbiwgNCk7Cisgdmlu dDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMSAodjIsIHgsIDQp OworIHZpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfaTMybTFfbSAo bWFzaywgdjMsIHgsIDQpOworIF9fcmlzY3ZfdGhfdnN3X3ZfaTMybTEgKG91 dCwgdjQsIDQpOworfQorCisvKgorKiogZjM6CisqKiB0aC52c2V0dmxpXHRb YS14MC05XSssemVybyxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAt OV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUz MixtMSx0dSxtdQorKiogdGgudmx3XC52XHR2WzAtOV0rLDBcKFthLXgwLTld K1wpCisqKiB0aC52bHcudlx0dlswLTldKywwXChbYS14MC05XStcKSx2MC50 CisqKiB0aC52YWRkXC52eFx0dlswLTldKyxccyp2WzAtOV0rLFxzKlthLXgw LTldKworKiogdGgudmFkZFwudnhcdHZbMS05XVswLTldPyxccyp2WzAtOV0r LFxzKlthLXgwLTldKyxccyp2MC50CisqKiB0aC52c3cudlx0dlswLTldKyww XChbYS14MC05XStcKQorKiogcmV0CisqLwordm9pZCBmMyAodm9pZCAqIGlu LCB2b2lkICpvdXQsIGludDMyX3QgeCkKK3sKKyB2Ym9vbDMyX3QgbWFzayA9 ICoodmJvb2wzMl90KilpbjsKKyBhc20gdm9sYXRpbGUgKCIiOjo6Im1lbW9y eSIpOworIHZpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmx3X3ZfaTMybTEg KGluLCA0KTsKKyB2aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bHdfdl9p MzJtMV90dW11IChtYXNrLCB2LCBpbiwgNCk7CisgdmludDMybTFfdCB2MyA9 IF9fcmlzY3ZfdmFkZF92eF9pMzJtMSAodjIsIHgsIDQpOworIHZpbnQzMm0x X3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfaTMybTFfdHVtdSAobWFzaywgdjMs IHYyLCB4LCA0KTsKKyBfX3Jpc2N2X3RoX3Zzd192X2kzMm0xIChvdXQsIHY0 LCA0KTsKK30KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsd3UtdnN3LmMgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bHd1 LXZzdy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li5iMTg3Y2ZjODUyYgotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsd3UtdnN3 LmMKQEAgLTAsMCArMSw2OCBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8K Ky8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2MzJnY3h0aGVhZHZlY3RvciAt bWFiaT1pbHAzMmQgLU8zIiB9ICovCisvKiB7IGRnLWZpbmFsIHsgY2hlY2st ZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgfSB9ICovCisjaW5jbHVkZSAicmlz Y3ZfdGhfdmVjdG9yLmgiCisKKy8qCisqKiBmMToKKyoqIHRoLnZzZXRpdmxp XHR6ZXJvLDQsZTMyLG0xLHR1LG1hCisqKiB0aC52bHd1XC52XHR2WzAtOV0r LDBcKFthLXgwLTldK1wpCisqKiB0aC52bHd1XC52XHR2WzAtOV0rLDBcKFth LXgwLTldK1wpCisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0r LFxzKi0xNgorKiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxc cyotMTYKKyoqIHRoLnZzd1wudlx0dlswLTldKywwXChbYS14MC05XStcKQor KiogcmV0CisqLwordm9pZCBmMSAodm9pZCAqIGluLCB2b2lkICpvdXQsIHVp bnQzMl90IHgpCit7CisgdnVpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmx3 dV92X3UzMm0xIChpbiwgNCk7CisgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2 X3RoX3Zsd3Vfdl91MzJtMV90dSAodiwgaW4sIDQpOworIHZ1aW50MzJtMV90 IHYzID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xICh2MiwgLTE2LCA0KTsKKyB2 dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMV90dSAodjMs IHYyLCAtMTYsIDQpOworIF9fcmlzY3ZfdGhfdnN3X3ZfdTMybTEgKG91dCwg djQsIDQpOworfQorCisvKgorKiogZjI6CisqKiB0aC52c2V0dmxpXHRbYS14 MC05XSssemVybyxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAtOV0r LDBcKFthLXgwLTldK1wpCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixt MSx0YSxtYQorKiogdGgudmx3dS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wp LHYwLnQKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMq LTE2CisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSss XHMqLTE2LFxzKnYwLnQKKyoqIHRoLnZzdy52XHR2WzAtOV0rLDBcKFthLXgw LTldK1wpCisqKiByZXQKKyovCit2b2lkIGYyICh2b2lkICogaW4sIHZvaWQg Km91dCwgdWludDMyX3QgeCkKK3sKKyB2Ym9vbDMyX3QgbWFzayA9ICoodmJv b2wzMl90KilpbjsKKyBhc20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOwor IHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zsd3Vfdl91MzJtMSAoaW4s IDQpOworIHZ1aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bHd1X3ZfdTMy bTFfbSAobWFzaywgaW4sIDQpOworIHZ1aW50MzJtMV90IHYzID0gX19yaXNj dl92YWRkX3Z4X3UzMm0xICh2MiwgLTE2LCA0KTsKKyB2dWludDMybTFfdCB2 NCA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMV9tIChtYXNrLCB2MywgLTE2LCA0 KTsKKyBfX3Jpc2N2X3RoX3Zzd192X3UzMm0xIChvdXQsIHY0LCA0KTsKK30K KworLyoKKyoqIGYzOgorKiogdGgudnNldHZsaVx0W2EteDAtOV0rLHplcm8s ZTgsbWY0LHRhLG1hCisqKiB0aC52bG0udlx0dlswLTldKywwXChbYS14MC05 XStcKQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbXUKKyoq IHRoLnZsd3VcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZs d3Uudlx0dlswLTldKywwXChbYS14MC05XStcKSx2MC50CisqKiB0aC52YWRk XC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNgorKiogdGgudmFkZFwu dmlcdHZbMS05XVswLTldPyxccyp2WzAtOV0rLFxzKi0xNixccyp2MC50Cisq KiB0aC52c3cudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogcmV0Cisq Lwordm9pZCBmMyAodm9pZCAqIGluLCB2b2lkICpvdXQsIHVpbnQzMl90IHgp Cit7CisgdmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJfdCopaW47CisgYXNt IHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsKKyB2dWludDMybTFfdCB2ID0g X19yaXNjdl90aF92bHd1X3ZfdTMybTEgKGluLCA0KTsKKyB2dWludDMybTFf dCB2MiA9IF9fcmlzY3ZfdGhfdmx3dV92X3UzMm0xX3R1bXUgKG1hc2ssIHYs IGluLCA0KTsKKyB2dWludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF91 MzJtMSAodjIsIC0xNiwgNCk7CisgdnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2 X3ZhZGRfdnhfdTMybTFfdHVtdSAobWFzaywgdjMsIHYyLCAtMTYsIDQpOwor IF9fcmlzY3ZfdGhfdnN3X3ZfdTMybTEgKG91dCwgdjQsIDQpOworfQotLSAK Mi4xNy4xCg== ------=ALIBOUNDARY_58049_7f6c9a501700_659fbac1_c379--