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: Jeff Law To: git-commits@fedoraproject.org Subject: [rpms/gcc] rhel-f41-base: - Backport -fstack-clash-protection from development trunk (#1512529) Date: Mon, 29 Jun 2026 12:27:38 GMT Message-ID: <178273605857.1.7396222920870365489.rpms-gcc-e987aff0a2c5@fedoraproject.org> List-ID: X-Git-Repo: rpms/gcc X-Git-Branch: rhel-f41-base X-Git-Rev: e987aff0a2c5b4c640bf032cee6b4610d57341bf QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2NjCkJyYW5jaCA6 IHJoZWwtZjQxLWJhc2UKQ29tbWl0IDogZTk4N2FmZjBhMmM1YjRjNjQwYmYwMzJjZWU2YjQ2MTBk NTczNDFiZgpBdXRob3IgOiBKZWZmIExhdyA8bGF3QHJlZGhhdC5jb20+CkRhdGUgICA6IDIwMTct MTEtMjhUMDk6MDI6MjItMDc6MDAKU3RhdHMgIDogKzYzMTMvLTEgaW4gMTkgZmlsZShzKQpVUkwg ICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2djYy9jL2U5ODdhZmYwYTJj NWI0YzY0MGJmMDMyY2VlNmI0NjEwZDU3MzQxYmY/YnJhbmNoPXJoZWwtZjQxLWJhc2UKCkxvZzoK LSBCYWNrcG9ydCAtZnN0YWNrLWNsYXNoLXByb3RlY3Rpb24gZnJvbSBkZXZlbG9wbWVudCB0cnVu ayAoIzE1MTI1MjkpCgotLS0KZGlmZiAtLWdpdCBhL2djYy5zcGVjIGIvZ2NjLnNwZWMKaW5kZXgg OTg3NDJhMS4uMzdjNjFiMiAxMDA2NDQKLS0tIGEvZ2NjLnNwZWMKKysrIGIvZ2NjLnNwZWMKQEAg LTQsNyArNCw3IEBACiAlZ2xvYmFsIGdjY19tYWpvciA3CiAjIE5vdGUsIGdjY19yZWxlYXNlIG11 c3QgYmUgaW50ZWdlciwgaWYgeW91IHdhbnQgdG8gYWRkIHN1ZmZpeGVzIHRvCiAjICV7cmVsZWFz ZX0sIGFwcGVuZCB0aGVtIGFmdGVyICV7Z2NjX3JlbGVhc2V9IG9uIFJlbGVhc2U6IGxpbmUuCi0l Z2xvYmFsIGdjY19yZWxlYXNlIDIKKyVnbG9iYWwgZ2NjX3JlbGVhc2UgMwogJWdsb2JhbCBudnB0 eF90b29sc19naXRyZXYgYzI4MDUwZjYwMTkzYjNiOTVhMTg4NjZhOTZmMDMzMzRlODc0ZTc4Zgog JWdsb2JhbCBudnB0eF9uZXdsaWJfZ2l0cmV2IGFhZGM4ZWIwZWM0M2I3Y2QwZGQyZGZiNDg0YmFl NjNjOGIwNWVmMjQKICVnbG9iYWwgX3VucGFja2FnZWRfZmlsZXNfdGVybWluYXRlX2J1aWxkIDAK QEAgLTI0Miw2ICsyNDIsMjUgQEAgUGF0Y2gxMDAwOiBudnB0eC10b29scy1uby1wdHhhcy5wYXRj aAogUGF0Y2gxMDAxOiBudnB0eC10b29scy1idWlsZC5wYXRjaAogUGF0Y2gxMDAyOiBudnB0eC10 b29scy1nbGliYy5wYXRjaAogCitQYXRjaDIwMDE6IGdjYzctcmgxNTEyNTI5LTEucGF0Y2gKK1Bh dGNoMjAwMjogZ2NjNy1yaDE1MTI1MjktMi5wYXRjaAorUGF0Y2gyMDAzOiBnY2M3LXJoMTUxMjUy OS0zLnBhdGNoCitQYXRjaDIwMDQ6IGdjYzctcmgxNTEyNTI5LTQucGF0Y2gKK1BhdGNoMjAwNTog Z2NjNy1yaDE1MTI1MjktNS5wYXRjaAorUGF0Y2gyMDA2OiBnY2M3LXJoMTUxMjUyOS02LnBhdGNo CitQYXRjaDIwMDc6IGdjYzctcmgxNTEyNTI5LTcucGF0Y2gKK1BhdGNoMjAwODogZ2NjNy1yaDE1 MTI1MjktOC5wYXRjaAorUGF0Y2gyMDA5OiBnY2M3LXJoMTUxMjUyOS05LnBhdGNoCitQYXRjaDIw MTA6IGdjYzctcmgxNTEyNTI5LTEwLnBhdGNoCitQYXRjaDIwMTE6IGdjYzctcmgxNTEyNTI5LTEx LnBhdGNoCitQYXRjaDIwMTI6IGdjYzctcmgxNTEyNTI5LTEyLnBhdGNoCitQYXRjaDIwMTM6IGdj YzctcmgxNTEyNTI5LTEzLnBhdGNoCitQYXRjaDIwMTQ6IGdjYzctcmgxNTEyNTI5LTE0LnBhdGNo CitQYXRjaDIwMTU6IGdjYzctcmgxNTEyNTI5LTE1LnBhdGNoCitQYXRjaDIwMTY6IGdjYzctcmgx NTEyNTI5LTE2LnBhdGNoCitQYXRjaDIwMTc6IGdjYzctcmgxNTEyNTI5LTE3LnBhdGNoCitQYXRj aDIwMTg6IGdjYzctcmgxNTEyNTI5LTE4LnBhdGNoCisKICMgT24gQVJNIEVBQkkgc3lzdGVtcywg d2UgZG8gd2FudCAtZ251ZWFiaSB0byBiZSBwYXJ0IG9mIHRoZQogIyB0YXJnZXQgdHJpcGxlLgog JWlmbmFyY2ggJXthcm19CkBAIC04MzgsNiArODU3LDI1IEBAIGNkIG52cHR4LXRvb2xzLSV7bnZw dHhfdG9vbHNfZ2l0cmV2fQogJXBhdGNoMTAwMiAtcDEgLWIgLm52cHR4LXRvb2xzLWdsaWJjfgog Y2QgLi4KIAorJXBhdGNoMjAwMSAtcDEKKyVwYXRjaDIwMDIgLXAxCislcGF0Y2gyMDAzIC1wMQor JXBhdGNoMjAwNCAtcDEKKyVwYXRjaDIwMDUgLXAxCislcGF0Y2gyMDA2IC1wMQorJXBhdGNoMjAw NyAtcDEKKyVwYXRjaDIwMDggLXAxCislcGF0Y2gyMDA5IC1wMQorJXBhdGNoMjAxMCAtcDEKKyVw YXRjaDIwMTEgLXAxCislcGF0Y2gyMDEyIC1wMQorJXBhdGNoMjAxMyAtcDEKKyVwYXRjaDIwMTQg LXAxCislcGF0Y2gyMDE1IC1wMQorJXBhdGNoMjAxNiAtcDEKKyVwYXRjaDIwMTcgLXAxCislcGF0 Y2gyMDE4IC1wMQorCiAlaWYgMCV7P19lbmFibGVfZGVidWdfcGFja2FnZXN9CiBta2RpciBkd3ot d3JhcHBlcgogaWYgWyAtZiAvdXNyL2Jpbi9kd3ogXTsgdGhlbgpAQCAtMzI0OCw2ICszMjg2LDkg QEAgZmkKICVlbmRpZgogCiAlY2hhbmdlbG9nCisqIFR1ZSBOb3YgMjggMjAxNyBKZWZmIExhdyAg PGxhd0ByZWRoYXQuY29tPiA3LjIuMS0zCistIEJhY2twb3J0IC1mc3RhY2stY2xhc2gtcHJvdGVj dGlvbiBmcm9tIGRldmVsb3BtZW50IHRydW5rICgjMTUxMjUyOSkKKwogKiBGcmkgU2VwIDE1IDIw MTcgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNy4yLjEtMgogLSB1cGRhdGUgZnJv bSB0aGUgNyBicmFuY2gKICAgLSBQUnMgYWRhLzYyMjM1LCBhZGEvNzk0NDEsIGFkYS83OTU0Miwg Ym9vdHN0cmFwLzgxOTI2LCBjKysvODEzNTUsCgpkaWZmIC0tZ2l0IGEvZ2NjNy1yaDE1MTI1Mjkt MS5wYXRjaCBiL2djYzctcmgxNTEyNTI5LTEucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uN2IzZTc2MwotLS0gL2Rldi9udWxsCisrKyBiL2djYzctcmgxNTEyNTI5LTEu cGF0Y2gKQEAgLTAsMCArMSwzNDAgQEAKK2NvbW1pdCBjYzM1ODZjN2Y0NzA0YWNiYmQzZjJmOTlk ZTViODJiY2M4ZjZmZTM2CitBdXRob3I6IGxhdyA8bGF3QDEzOGJjNzVkLTBkMDQtMDQxMC05NjFm LTgyZWU3MmIwNTRhND4KK0RhdGU6ICAgV2VkIFNlcCAyMCAwNDo1Njo1NCAyMDE3ICswMDAwCisK KyAgICAgICAgICAgICogY29tbW9uLm9wdCAoLWZzdGFjay1jbGFzaC1wcm90ZWN0aW9uKTogTmV3 IG9wdGlvbi4KKyAgICAgICAgICAgICogZmxhZy10eXBlcy5oIChlbnVtIHN0YWNrX2NoZWNrX3R5 cGUpOiBOb3RlIGRpZmZlcmVuY2UgYmV0d2VlbgorICAgICAgICAgICAgLWZzdGFjay1jaGVjaz0g YW5kIC1mc3RhY2stY2xhc2gtcHJvdGVjdGlvbi4KKyAgICAgICAgICAgICogcGFyYW1zLmRlZiAo UEFSQU1fU1RBQ0tfQ0xBU0hfUFJPVEVDVElPTl9HVUFSRF9TSVpFKTogTmV3IFBBUkFNLgorICAg ICAgICAgICAgKFBBUkFNX1NUQUNLX0NMQVNIX1BST1RFQ1RJT05fUFJPQkVfSU5URVJWQUwpOiBM aWtld2lzZS4KKyAgICAgICAgICAgICogdG9wbGV2LmMgKHByb2Nlc3Nfb3B0aW9ucyk6IElzc3Vl IHdhcm5pbmdzL2Vycm9ycyBmb3IgY2FzZXMKKyAgICAgICAgICAgIG5vdCBoYW5kbGVkIHdpdGgg LWZzdGFjay1jbGFzaC1wcm90ZWN0aW9uLgorICAgICAgICAgICAgKiBkb2MvaW52b2tlLnRleGkg KC1mc3RhY2stY2xhc2gtcHJvdGVjdGlvbik6IERvY3VtZW50IG5ldyBvcHRpb24uCisgICAgICAg ICAgICAoLWZzdGFjay1jaGVjayk6IE5vdGUgYWRkaXRpb25hbCBwcm9ibGVtIHdpdGggLWZzdGFj ay1jaGVjaz1nZW5lcmljLgorICAgICAgICAgICAgTm90ZSB0aGF0IC1mc3RhY2stY2hlY2sgaXMg cHJpbWFyaWx5IGZvciBBZGEgYW5kIHJlZmVyIHVzZXJzCisgICAgICAgICAgICB0byAtZnN0YWNr LWNsYXNoLXByb3RlY3Rpb24gZm9yIHN0YWNrLWNsYXNoLXByb3RlY3Rpb24uCisgICAgICAgICAg ICBEb2N1bWVudCBuZXcgcGFyYW1zIGZvciBzdGFjayBjbGFzaCBwcm90ZWN0aW9uLgorICAgIAor ICAgICAgICAgICAgKiBnY2MuZGcvc3RhY2stY2hlY2stMi5jOiBOZXcgdGVzdC4KKyAgICAgICAg ICAgICogbGliL3RhcmdldC1zdXBwb3J0cy5leHAKKyAgICAgICAgICAgIChjaGVja19lZmZlY3Rp dmVfdGFyZ2V0X3N1cHBvcnRzX3N0YWNrX2NsYXNoX3Byb3RlY3Rpb24pOiBOZXcgZnVuY3Rpb24u CisgICAgICAgICAgICAoY2hlY2tfZWZmZWN0aXZlX3RhcmdldF9mcmFtZV9wb2ludGVyX2Zvcl9u b25fbGVhZik6IExpa2V3aXNlLgorICAgICAgICAgICAgKGNoZWNrX2VmZmVjdGl2ZV90YXJnZXRf Y2FsbGVyX2ltcGxpY2l0X3Byb2Jlcyk6IExpa2V3aXNlLgorICAgIAorICAgIGdpdC1zdm4taWQ6 IHN2bitzc2g6Ly9nY2MuZ251Lm9yZy9zdm4vZ2NjL3RydW5rQDI1Mjk5NCAxMzhiYzc1ZC0wZDA0 LTA0MTAtOTYxZi04MmVlNzJiMDU0YTQKKworZGlmZiAtLWdpdCBhL2djYy9jb21tb24ub3B0IGIv Z2NjL2NvbW1vbi5vcHQKK2luZGV4IDU5MmJiZDE1MzA5Li5iY2FlYTkxYzEzMCAxMDA2NDQKKy0t LSBhL2djYy9jb21tb24ub3B0CisrKysgYi9nY2MvY29tbW9uLm9wdAorQEAgLTIyOTEsMTMgKzIy OTEsMTggQEAgQ29tbW9uIFJlcG9ydCBWYXIoZmxhZ192YXJpYWJsZV9leHBhbnNpb25faW5fdW5y b2xsZXIpIE9wdGltaXphdGlvbgorIEFwcGx5IHZhcmlhYmxlIGV4cGFuc2lvbiB3aGVuIGxvb3Bz IGFyZSB1bnJvbGxlZC4KKyAKKyBmc3RhY2stY2hlY2s9CistQ29tbW9uIFJlcG9ydCBSZWplY3RO ZWdhdGl2ZSBKb2luZWQKKytDb21tb24gUmVwb3J0IFJlamVjdE5lZ2F0aXZlIEpvaW5lZCBPcHRp bWl6YXRpb24KKyAtZnN0YWNrLWNoZWNrPVtub3xnZW5lcmljfHNwZWNpZmljXQlJbnNlcnQgc3Rh Y2sgY2hlY2tpbmcgY29kZSBpbnRvIHRoZSBwcm9ncmFtLgorIAorIGZzdGFjay1jaGVjaworIENv bW1vbiBBbGlhcyhmc3RhY2stY2hlY2s9LCBzcGVjaWZpYywgbm8pCisgSW5zZXJ0IHN0YWNrIGNo ZWNraW5nIGNvZGUgaW50byB0aGUgcHJvZ3JhbS4gIFNhbWUgYXMgLWZzdGFjay1jaGVjaz1zcGVj aWZpYy4KKyAKKytmc3RhY2stY2xhc2gtcHJvdGVjdGlvbgorK0NvbW1vbiBSZXBvcnQgVmFyKGZs YWdfc3RhY2tfY2xhc2hfcHJvdGVjdGlvbikgT3B0aW1pemF0aW9uCisrSW5zZXJ0IGNvZGUgdG8g cHJvYmUgZWFjaCBwYWdlIG9mIHN0YWNrIHNwYWNlIGFzIGl0IGlzIGFsbG9jYXRlZCB0byBwcm90 ZWN0CisrZnJvbSBzdGFjay1jbGFzaCBzdHlsZSBhdHRhY2tzLgorKworIGZzdGFjay1saW1pdAor IENvbW1vbiBWYXIoY29tbW9uX2RlZmVycmVkX29wdGlvbnMpIERlZmVyCisgCitkaWZmIC0tZ2l0 IGEvZ2NjL2RvYy9pbnZva2UudGV4aSBiL2djYy9kb2MvaW52b2tlLnRleGkKK2luZGV4IGEwZmIw OWViOWUxLi5mNzcwMzU1NzFhMSAxMDA2NDQKKy0tLSBhL2djYy9kb2MvaW52b2tlLnRleGkKKysr KyBiL2djYy9kb2MvaW52b2tlLnRleGkKK0BAIC0xMDAyNiw2ICsxMDAyNiwyMSBAQCBjb21waWxh dGlvbiB3aXRob3V0LiAgVGhlIHZhbHVlIGZvciBjb21waWxhdGlvbiB3aXRoIHByb2ZpbGUgZmVl ZGJhY2sKKyBuZWVkcyB0byBiZSBtb3JlIGNvbnNlcnZhdGl2ZSAoaGlnaGVyKSBpbiBvcmRlciB0 byBtYWtlIHRyYWNlcgorIGVmZmVjdGl2ZS4KKyAKKytAaXRlbSBzdGFjay1jbGFzaC1wcm90ZWN0 aW9uLWd1YXJkLXNpemUKKytTcGVjaWZ5IHRoZSBzaXplIG9mIHRoZSBvcGVyYXRpbmcgc3lzdGVt IHByb3ZpZGVkIHN0YWNrIGd1YXJkIGFzCisrMiByYWlzZWQgdG8gQHZhcntudW19IGJ5dGVzLiAg VGhlIGRlZmF1bHQgdmFsdWUgaXMgMTIgKDQwOTYgYnl0ZXMpLgorK0FjY2VwdGFibGUgdmFsdWVz IGFyZSBiZXR3ZWVuIDEyIGFuZCAzMC4gIEhpZ2hlciB2YWx1ZXMgbWF5IHJlZHVjZSB0aGUKKytu dW1iZXIgb2YgZXhwbGljaXQgcHJvYmVzLCBidXQgYSB2YWx1ZSBsYXJnZXIgdGhhbiB0aGUgb3Bl cmF0aW5nIHN5c3RlbQorK3Byb3ZpZGVkIGd1YXJkIHdpbGwgbGVhdmUgY29kZSB2dWxuZXJhYmxl IHRvIHN0YWNrIGNsYXNoIHN0eWxlIGF0dGFja3MuCisrCisrQGl0ZW0gc3RhY2stY2xhc2gtcHJv dGVjdGlvbi1wcm9iZS1pbnRlcnZhbAorK1N0YWNrIGNsYXNoIHByb3RlY3Rpb24gaW52b2x2ZXMg cHJvYmluZyBzdGFjayBzcGFjZSBhcyBpdCBpcyBhbGxvY2F0ZWQuICBUaGlzCisrcGFyYW0gY29u dHJvbHMgdGhlIG1heGltdW0gZGlzdGFuY2UgYmV0d2VlbiBwcm9iZXMgaW50byB0aGUgc3RhY2sg YXMgMiByYWlzZWQKKyt0byBAdmFye251bX0gYnl0ZXMuICBBY2NlcHRhYmxlIHZhbHVlcyBhcmUg YmV0d2VlbiAxMCBhbmQgMTYgYW5kIGRlZmF1bHRzIHRvCisrMTIuICBIaWdoZXIgdmFsdWVzIG1h eSByZWR1Y2UgdGhlIG51bWJlciBvZiBleHBsaWNpdCBwcm9iZXMsIGJ1dCBhIHZhbHVlCisrbGFy Z2VyIHRoYW4gdGhlIG9wZXJhdGluZyBzeXN0ZW0gcHJvdmlkZWQgZ3VhcmQgd2lsbCBsZWF2ZSBj b2RlIHZ1bG5lcmFibGUgdG8KKytzdGFjayBjbGFzaCBzdHlsZSBhdHRhY2tzLgorKworIEBpdGVt IG1heC1jc2UtcGF0aC1sZW5ndGgKKyAKKyBUaGUgbWF4aW11bSBudW1iZXIgb2YgYmFzaWMgYmxv Y2tzIG9uIHBhdGggdGhhdCBDU0UgY29uc2lkZXJzLgorQEAgLTExMjE4LDcgKzExMjMzLDggQEAg dGFyZ2V0IHN1cHBvcnQgaW4gdGhlIGNvbXBpbGVyIGJ1dCBjb21lcyB3aXRoIHRoZSBmb2xsb3dp bmcgZHJhd2JhY2tzOgorIEBlbnVtZXJhdGUKKyBAaXRlbQorIE1vZGlmaWVkIGFsbG9jYXRpb24g c3RyYXRlZ3kgZm9yIGxhcmdlIG9iamVjdHM6IHRoZXkgYXJlIGFsd2F5cworLWFsbG9jYXRlZCBk eW5hbWljYWxseSBpZiB0aGVpciBzaXplIGV4Y2VlZHMgYSBmaXhlZCB0aHJlc2hvbGQuCisrYWxs b2NhdGVkIGR5bmFtaWNhbGx5IGlmIHRoZWlyIHNpemUgZXhjZWVkcyBhIGZpeGVkIHRocmVzaG9s ZC4gIE5vdGUgdGhpcworK21heSBjaGFuZ2UgdGhlIHNlbWFudGljcyBvZiBzb21lIGNvZGUuCisg CisgQGl0ZW0KKyBGaXhlZCBsaW1pdCBvbiB0aGUgc2l6ZSBvZiB0aGUgc3RhdGljIGZyYW1lIG9m IGZ1bmN0aW9uczogd2hlbiBpdCBpcworQEAgLTExMjMzLDYgKzExMjQ5LDI1IEBAIGdlbmVyaWMg aW1wbGVtZW50YXRpb24sIGNvZGUgcGVyZm9ybWFuY2UgaXMgaGFtcGVyZWQuCisgTm90ZSB0aGF0 IG9sZC1zdHlsZSBzdGFjayBjaGVja2luZyBpcyBhbHNvIHRoZSBmYWxsYmFjayBtZXRob2QgZm9y CisgQHNhbXB7c3BlY2lmaWN9IGlmIG5vIHRhcmdldCBzdXBwb3J0IGhhcyBiZWVuIGFkZGVkIGlu IHRoZSBjb21waWxlci4KKyAKKytAc2FtcHstZnN0YWNrLWNoZWNrPX0gaXMgZGVzaWduZWQgZm9y IEFkYSdzIG5lZWRzIHRvIGRldGVjdCBpbmZpbml0ZSByZWN1cnNpb24KKythbmQgc3RhY2sgb3Zl cmZsb3dzLiAgQHNhbXB7c3BlY2lmaWN9IGlzIGFuIGV4Y2VsbGVudCBjaG9pY2Ugd2hlbiBjb21w aWxpbmcKKytBZGEgY29kZS4gIEl0IGlzIG5vdCBnZW5lcmFsbHkgc3VmZmljaWVudCB0byBwcm90 ZWN0IGFnYWluc3Qgc3RhY2stY2xhc2gKKythdHRhY2tzLiAgVG8gcHJvdGVjdCBhZ2FpbnN0IHRo b3NlIHlvdSB3YW50IEBzYW1wey1mc3RhY2stY2xhc2gtcHJvdGVjdGlvbn0uCisrCisrQGl0ZW0g LWZzdGFjay1jbGFzaC1wcm90ZWN0aW9uCisrQG9waW5kZXggZnN0YWNrLWNsYXNoLXByb3RlY3Rp b24KKytHZW5lcmF0ZSBjb2RlIHRvIHByZXZlbnQgc3RhY2sgY2xhc2ggc3R5bGUgYXR0YWNrcy4g IFdoZW4gdGhpcyBvcHRpb24gaXMKKytlbmFibGVkLCB0aGUgY29tcGlsZXIgd2lsbCBvbmx5IGFs bG9jYXRlIG9uZSBwYWdlIG9mIHN0YWNrIHNwYWNlIGF0IGEgdGltZQorK2FuZCBlYWNoIHBhZ2Ug aXMgYWNjZXNzZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgYWxsb2NhdGlvbi4gIFRodXMsIGl0IHByZXZl bnRzCisrYWxsb2NhdGlvbnMgZnJvbSBqdW1waW5nIG92ZXIgYW55IHN0YWNrIGd1YXJkIHBhZ2Ug cHJvdmlkZWQgYnkgdGhlCisrb3BlcmF0aW5nIHN5c3RlbS4KKysKKytNb3N0IHRhcmdldHMgZG8g bm90IGZ1bGx5IHN1cHBvcnQgc3RhY2sgY2xhc2ggcHJvdGVjdGlvbi4gIEhvd2V2ZXIsIG9uCisr dGhvc2UgdGFyZ2V0cyBAb3B0aW9uey1mc3RhY2stY2xhc2gtcHJvdGVjdGlvbn0gd2lsbCBwcm90 ZWN0IGR5bmFtaWMgc3RhY2sKKythbGxvY2F0aW9ucy4gIEBvcHRpb257LWZzdGFjay1jbGFzaC1w cm90ZWN0aW9ufSBtYXkgYWxzbyBwcm92aWRlIGxpbWl0ZWQKKytwcm90ZWN0aW9uIGZvciBzdGF0 aWMgc3RhY2sgYWxsb2NhdGlvbnMgaWYgdGhlIHRhcmdldCBzdXBwb3J0cworK0BvcHRpb257LWZz dGFjay1jaGVjaz1zcGVjaWZpY30uCisrCisgQGl0ZW0gLWZzdGFjay1saW1pdC1yZWdpc3Rlcj1A dmFye3JlZ30KKyBAaXRlbXggLWZzdGFjay1saW1pdC1zeW1ib2w9QHZhcntzeW19CisgQGl0ZW14 IC1mbm8tc3RhY2stbGltaXQKK2RpZmYgLS1naXQgYS9nY2MvZmxhZy10eXBlcy5oIGIvZ2NjL2Zs YWctdHlwZXMuaAoraW5kZXggMjdhMzhlZmRjOGUuLjRlNWE0ZTU4MTE5IDEwMDY0NAorLS0tIGEv Z2NjL2ZsYWctdHlwZXMuaAorKysrIGIvZ2NjL2ZsYWctdHlwZXMuaAorQEAgLTE2Niw3ICsxNjYs MTQgQEAgZW51bSBwZXJtaXR0ZWRfZmx0X2V2YWxfbWV0aG9kcworICAgUEVSTUlUVEVEX0ZMVF9F VkFMX01FVEhPRFNfQzExCisgfTsKKyAKKy0vKiBUeXBlIG9mIHN0YWNrIGNoZWNrLiAgKi8KKysv KiBUeXBlIG9mIHN0YWNrIGNoZWNrLgorKworKyAgIFN0YWNrIGNoZWNraW5nIGlzIGRlc2lnbmVk IHRvIGRldGVjdCBpbmZpbml0ZSByZWN1cnNpb24gYW5kIHN0YWNrCisrICAgb3ZlcmZsb3dzIGZv ciBBZGEgcHJvZ3JhbXMuICBGdXJ0aGVybW9yZSBzdGFjayBjaGVja2luZyB0cmllcyB0byBlbnN1 cmUKKysgICBpbiB0aGF0IHNjZW5hcmlvIHRoYXQgZW5vdWdoIHN0YWNrIHNwYWNlIGlzIGxlZnQg dG8gcnVuIGEgc2lnbmFsIGhhbmRsZXIuCisrCisrICAgLWZzdGFjay1jaGVjaz0gZG9lcyBub3Qg cHJldmVudCBzdGFjay1jbGFzaCBzdHlsZSBhdHRhY2tzLiAgRm9yIHRoYXQKKysgICB5b3Ugd2Fu dCAtZnN0YWNrLWNsYXNoLXByb3RlY3Rpb24uICAqLworIGVudW0gc3RhY2tfY2hlY2tfdHlwZQor IHsKKyAgIC8qIERvIG5vdCBjaGVjayB0aGUgc3RhY2suICAqLworZGlmZiAtLWdpdCBhL2djYy9w YXJhbXMuZGVmIGIvZ2NjL3BhcmFtcy5kZWYKK2luZGV4IDZiMDc1MThhMzRiLi5jZTY2ZTM5M2Vi MSAxMDA2NDQKKy0tLSBhL2djYy9wYXJhbXMuZGVmCisrKysgYi9nY2MvcGFyYW1zLmRlZgorQEAg LTIxMyw2ICsyMTMsMTYgQEAgREVGUEFSQU0oUEFSQU1fU1RBQ0tfRlJBTUVfR1JPV1RILAorIAkg Ik1heGltYWwgc3RhY2sgZnJhbWUgZ3Jvd3RoIGR1ZSB0byBpbmxpbmluZyAoaW4gcGVyY2VudCku IiwKKyAJIDEwMDAsIDAsIDApCisgCisrREVGUEFSQU0oUEFSQU1fU1RBQ0tfQ0xBU0hfUFJPVEVD VElPTl9HVUFSRF9TSVpFLAorKwkgInN0YWNrLWNsYXNoLXByb3RlY3Rpb24tZ3VhcmQtc2l6ZSIs CisrCSAiU2l6ZSBvZiB0aGUgc3RhY2sgZ3VhcmQgZXhwcmVzc2VkIGFzIGEgcG93ZXIgb2YgdHdv LiIsCisrCSAxMiwgMTIsIDMwKQorKworK0RFRlBBUkFNKFBBUkFNX1NUQUNLX0NMQVNIX1BST1RF Q1RJT05fUFJPQkVfSU5URVJWQUwsCisrCSAic3RhY2stY2xhc2gtcHJvdGVjdGlvbi1wcm9iZS1p bnRlcnZhbCIsCisrCSAiSW50ZXJ2YWwgaW4gd2hpY2ggdG8gcHJvYmUgdGhlIHN0YWNrIGV4cHJl c3NlZCBhcyBhIHBvd2VyIG9mIHR3by4iLAorKwkgMTIsIDEwLCAxNikKKysKKyAvKiBUaGUgR0NT RSBvcHRpbWl6YXRpb24gd2lsbCBiZSBkaXNhYmxlZCBpZiBpdCB3b3VsZCByZXF1aXJlCisgICAg c2lnbmlmaWNhbnRseSBtb3JlIG1lbW9yeSB0aGFuIHRoaXMgdmFsdWUuICAqLworIERFRlBBUkFN KFBBUkFNX01BWF9HQ1NFX01FTU9SWSwKK2RpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5k Zy9zdGFjay1jaGVjay0yLmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9zdGFjay1jaGVjay0yLmMK K25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMC4uMTk2YzRiYmZiZGQKKy0t LSAvZGV2L251bGwKKysrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3N0YWNrLWNoZWNrLTIuYwor QEAgLTAsMCArMSw2NiBAQAorKy8qIFRoZSBnb2FsIGhlcmUgaXMgdG8gZW5zdXJlIHRoYXQgd2Ug bmV2ZXIgY29uc2lkZXIgYSBjYWxsIHRvIGEgbm9yZXR1cm4KKysgICBmdW5jdGlvbiBhcyBhIHBv dGVudGlhbCB0YWlsIGNhbGwuCisrCisrICAgUmlnaHQgbm93IEdDQyBkaXNjb3ZlcnMgcG90ZW50 aWFsIHRhaWwgY2FsbHMgYnkgbG9va2luZyBhdCB0aGUKKysgICBwcmVkZWNlc3NvcnMgb2YgdGhl IGV4aXQgYmxvY2suICBBIGNhbGwgdG8gYSBub24tcmV0dXJuIGZ1bmN0aW9uCisrICAgaGFzIG5v IHN1Y2Nlc3NvcnMgYW5kIHRodXMgY2FuIG5ldmVyIG1hdGNoIHRoYXQgZmlyc3QgZmlsdGVyLgor KworKyAgIEJ1dCB0aGF0IGNvdWxkIGNoYW5nZSBvbmUgZGF5IGFuZCB3ZSB3YW50IHRvIGNhdGNo IGl0LiAgVGhlIHByb2JsZW0KKysgICBpcyB0aGUgY29tcGlsZXIgY291bGQgcG90ZW50aWFsbHkg b3B0aW1pemUgYSB0YWlsIGNhbGwgdG8gYSBub25yZXR1cm4KKysgICBmdW5jdGlvbiwgZXZlbiBp ZiB0aGUgY2FsbGVyIGhhcyBhIGZyYW1lLiAgVGhhdCBicmVha3MgdGhlIGFzc3VtcHRpb24KKysg ICB0aGF0IGNhbGxzIHByb2JlICpzcCB3aGVuIHNhdmluZyB0aGUgcmV0dXJuIGFkZHJlc3MgdGhh dCBzb21lIHRhcmdldHMKKysgICBkZXBlbmQgb24gdG8gZWxpZGUgc3RhY2sgcHJvYmVzLiAgKi8K KysKKysvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1mc3Rh Y2stY2xhc2gtcHJvdGVjdGlvbiAtZmR1bXAtdHJlZS10YWlsYyAtZmR1bXAtdHJlZS1vcHRpbWl6 ZWQiIH0gKi8KKysvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBzdXBwb3J0c19zdGFj a19jbGFzaF9wcm90ZWN0aW9uIH0gKi8KKysKKytleHRlcm4gdm9pZCBmb28gKHZvaWQpIF9fYXR0 cmlidXRlX18gKChfX25vcmV0dXJuX18pKTsKKysKKysKKyt2b2lkCisrdGVzdF9kaXJlY3RfMSAo dm9pZCkKKyt7CisrICBmb28gKCk7CisrfQorKworK3ZvaWQKKyt0ZXN0X2RpcmVjdF8yICh2b2lk KQorK3sKKysgIHJldHVybiBmb28gKCk7CisrfQorKworK3ZvaWQgKCppbmRpcmVjdCkodm9pZClf X2F0dHJpYnV0ZV9fICgobm9yZXR1cm4pKTsKKysKKysKKyt2b2lkCisrdGVzdF9pbmRpcmVjdF8x ICgpCisreworKyAgKCppbmRpcmVjdCkoKTsKKyt9CisrCisrdm9pZAorK3Rlc3RfaW5kaXJlY3Rf MiAodm9pZCkKKyt7CisrICByZXR1cm4gKCppbmRpcmVjdCkoKTs7CisrfQorKworKworK3R5cGVk ZWYgdm9pZCAoKnB2Zm4pKCkgX19hdHRyaWJ1dGVfXyAoKG5vcmV0dXJuKSk7CisrCisrdm9pZCAo KmluZGlyZWN0X2Nhc3RlZCkodm9pZCk7CisrCisrdm9pZAorK3Rlc3RfaW5kaXJlY3RfY2FzdGVk XzEgKCkKKyt7CisrICAoKihwdmZuKWluZGlyZWN0X2Nhc3RlZCkoKTsKKyt9CisrCisrdm9pZAor K3Rlc3RfaW5kaXJlY3RfY2FzdGVkXzIgKHZvaWQpCisreworKyAgcmV0dXJuICgqKHB2Zm4paW5k aXJlY3RfY2FzdGVkKSgpOworK30KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtbm90 ICJ0YWlsIGNhbGwiICJ0YWlsYyIgfSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1k dW1wLW5vdCAidGFpbCBjYWxsIiAib3B0aW1pemVkIiB9IH0gKi8KKysKK2RpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2xpYi90YXJnZXQtc3VwcG9ydHMuZXhwIGIvZ2NjL3Rlc3RzdWl0ZS9saWIv dGFyZ2V0LXN1cHBvcnRzLmV4cAoraW5kZXggNTdjYWVjNzQ4MzYuLjEwMDBmMTUzNThiIDEwMDY0 NAorLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9saWIvdGFyZ2V0LXN1cHBvcnRzLmV4cAorKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9saWIvdGFyZ2V0LXN1cHBvcnRzLmV4cAorQEAgLTgzNzEsMyArODM3MSw4MCBA QCBwcm9jIGNoZWNrX2VmZmVjdGl2ZV90YXJnZXRfYXJtX2NvcHJvYzRfb2sgeyB9IHsKKyAgICAg cmV0dXJuIFtjaGVja19jYWNoZWRfZWZmZWN0aXZlX3RhcmdldCBhcm1fY29wcm9jNF9vayBcCisg CQljaGVja19lZmZlY3RpdmVfdGFyZ2V0X2FybV9jb3Byb2M0X29rX25vY2FjaGVdCisgfQorKwor KyMgUmV0dXJuIDEgaWYgdGhlIHRhcmdldCBoYXMgc3VwcG9ydCBmb3Igc3RhY2sgcHJvYmluZyBk ZXNpZ25lZAorKyMgdG8gYXZvaWQgc3RhY2stY2xhc2ggc3R5bGUgYXR0YWNrcy4KKysjCisrIyBU aGlzIGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIHN0YWNrLWNsYXNoIG1pdGlnYXRpb24gdGVzdHMg dG8KKysjIGp1c3QgdGhvc2UgdGFyZ2V0cyB0aGF0IGhhdmUgYmVlbiBleHBsaWNpdGx5IHN1cHBv cnRlZC4KKysjIAorKyMgSW4gYWRkaXRpb24gdG8gdGhlIHByb2xvZ3VlIHdvcmsgb24gdGhvc2Ug dGFyZ2V0cywgZWFjaCB0YXJnZXQncworKyMgcHJvcGVydGllcyBzaG91bGQgYmUgZGVzY3JpYmVk IGluIHRoZSBmdW5jdGlvbnMgYmVsb3cgc28gdGhhdAorKyMgdGVzdHMgZG8gbm90IGJlY29tZSBh IG1lc3Mgb2YgdW5yZWFkYWJsZSB0YXJnZXQgY29uZGl0aW9ucy4KKysjIAorK3Byb2MgY2hlY2tf ZWZmZWN0aXZlX3RhcmdldF9zdXBwb3J0c19zdGFja19jbGFzaF9wcm90ZWN0aW9uIHsgfSB7Cisr CisrICAgIyBUZW1wb3JhcnkgdW50aWwgdGhlIHRhcmdldCBiaXRzIGFyZSBmdWxseSBBQ0snZC4K KysjICBpZiB7IFtpc3RhcmdldCBhYXJjaCotKi0qXSB8fCBbaXN0YXJnZXQgeDg2XzY0LSotKl0K KysjICAgICAgIHx8IFtpc3RhcmdldCBpPzg2LSotKl0gfHwgW2lzdGFyZ2V0IHMzOTAqLSotKl0K KysjICAgICAgIHx8IFtpc3RhcmdldCBwb3dlcnBjKi0qLSpdIHx8IFtpc3RhcmdldCByczYwMDAq LSotKl0gfSB7CisrIwlyZXR1cm4gMQorKyMgIH0KKysgIHJldHVybiAwCisrfQorKworKyMgUmV0 dXJuIDEgaWYgdGhlIHRhcmdldCBjcmVhdGVzIGEgZnJhbWUgcG9pbnRlciBmb3Igbm9uLWxlYWYg ZnVuY3Rpb25zCisrIyBOb3RlIHdlIGlnbm9yZSBjYXNlcyB3aGVyZSB3ZSBhcHBseSB0YWlsIGNh bGwgb3B0aW1pemF0aW9uIGhlcmUuCisrcHJvYyBjaGVja19lZmZlY3RpdmVfdGFyZ2V0X2ZyYW1l X3BvaW50ZXJfZm9yX25vbl9sZWFmIHsgfSB7CisrICBpZiB7IFtpc3RhcmdldCBhYXJjaCotKi0q XSB9IHsKKysJcmV0dXJuIDEKKysgIH0KKysgIHJldHVybiAwCisrfQorKworKyMgUmV0dXJuIDEg aWYgdGhlIHRhcmdldCdzIGNhbGxpbmcgc2VxdWVuY2Ugb3IgaXRzIEFCSQorKyMgY3JlYXRlIGlt cGxpY2l0IHN0YWNrIHByb2JlcyBhdCBvciBwcmlvciB0byBmdW5jdGlvbiBlbnRyeS4KKytwcm9j IGNoZWNrX2VmZmVjdGl2ZV90YXJnZXRfY2FsbGVyX2ltcGxpY2l0X3Byb2JlcyB7IH0geworKwor KyAgIyBPbiB4ODYveDg2XzY0IHRoZSBjYWxsIGluc3RydWN0aW9uIGl0c2VsZiBwdXNoZXMgdGhl IHJldHVybgorKyAgIyBhZGRyZXNzIG9udG8gdGhlIHN0YWNrLiAgVGhhdCBpcyBhbiBpbXBsaWNp dCBwcm9iZSBvZiAqc3AuCisrICBpZiB7IFtpc3RhcmdldCB4ODZfNjQtKi0qXSB8fCBbaXN0YXJn ZXQgaT84Ni0qLSpdIH0geworKwlyZXR1cm4gMQorKyAgfQorKworKyAgIyBPbiBQUEMsIHRoZSBB QkkgbWFuZGF0ZXMgdGhhdCB0aGUgYWRkcmVzcyBvZiB0aGUgb3V0ZXIKKysgICMgZnJhbWUgYmUg c3RvcmVkIGF0ICpzcC4gIFRodXMgZWFjaCBhbGxvY2F0aW9uIG9mIHN0YWNrCisrICAjIHNwYWNl IGlzIGl0c2VsZiBhbiBpbXBsaWNpdCBwcm9iZSBvZiAqc3AuCisrICBpZiB7IFtpc3RhcmdldCBw b3dlcnBjKi0qLSpdIHx8IFtpc3RhcmdldCByczYwMDAqLSotKl0gfSB7CisrCXJldHVybiAxCisr ICB9CisrCisrICAjIHMzOTAncyBBQkkgaGFzIGEgcmVnaXN0ZXIgc2F2ZSBhcmVhIGFsbG9jYXRl ZCBieSB0aGUKKysgICMgY2FsbGVyIGZvciB1c2UgYnkgdGhlIGNhbGxlZS4gIFRoZSBtZXJlIGV4 aXN0ZW5jZSBkb2VzCisrICAjIG5vdCBjb25zdGl0dXRlIGEgcHJvYmUgYnkgdGhlIGNhbGxlciwg YnV0IHdoZW4gdGhlIHNsb3RzCisrICAjIHVzZWQgYnkgdGhlIGNhbGxlZSB0aG9zZSBzdG9yZXMg YXJlIGltcGxpY2l0IHByb2Jlcy4KKysgIGlmIHsgW2lzdGFyZ2V0IHMzOTAqLSotKl0gfSB7Cisr CXJldHVybiAxCisrICB9CisrCisrICAjIE5vdCBzdHJpY3RseSB0cnVlIG9uIGFhcmNoNjQsIGJ1 dCB3ZSBoYXZlIGFncmVlZCB0aGF0IHdlIHdpbGwKKysgICMgY29uc2lkZXIgYW55IGZ1bmN0aW9u IHRoYXQgcHVzaGVzIFNQIG1vcmUgdGhhbiAza2J5dGVzIGludG8KKysgICMgdGhlIGd1YXJkIHBh Z2UgYXMgYnJva2VuLiAgVGhpcyBlc3NlbnRpYWxseSBtZWFucyB0aGF0IHdlIGNhbgorKyAgIyBj b25zaWRlciB0aGUgYWFyY2g2NCBhcyBoYXZpbmcgYSBjYWxsZXIgaW1wbGljaXQgcHJvYmUgYXQK KysgICMgKihzcCArIDFrKS4KKysgIGlmIHsgW2lzdGFyZ2V0IGFhcmNoNjQqLSotKl0gfSB7Cisr CXJldHVybiAxOworKyAgfQorKworKyAgcmV0dXJuIDAKKyt9CisrCisrIyBUYXJnZXRzIHRoYXQg cG90ZW50aWFsbHkgcmVhbGlnbiB0aGUgc3RhY2sgcG9pbnRlciBvZnRlbiBjYXVzZSByZXNpZHVh bAorKyMgc3RhY2sgYWxsb2NhdGlvbnMgYW5kIG1ha2UgaXQgZGlmZmljdWx0IHRvIGVsaW1pbmF0 aW9uIGxvb3BzIG9yIHJlc2lkdWFsCisrIyBhbGxvY2F0aW9ucyBmb3IgZHluYW1pYyBzdGFjayBh bGxvY2F0aW9ucworK3Byb2MgY2hlY2tfZWZmZWN0aXZlX3RhcmdldF9jYWxsZWVfcmVhbGlnbnNf c3RhY2sgeyB9IHsKKysgIGlmIHsgW2lzdGFyZ2V0IHg4Nl82NC0qLSpdIHx8IFtpc3RhcmdldCBp Pzg2LSotKl0gfSB7CisrCXJldHVybiAxCisrICB9CisrICByZXR1cm4gMAorK30KK2RpZmYgLS1n aXQgYS9nY2MvdG9wbGV2LmMgYi9nY2MvdG9wbGV2LmMKK2luZGV4IGU3YTVkNDg3MzEzLi5hN2Rh Nzk2NGZiYiAxMDA2NDQKKy0tLSBhL2djYy90b3BsZXYuYworKysrIGIvZ2NjL3RvcGxldi5jCitA QCAtMTU3NCw2ICsxNTc0LDI2IEBAIHByb2Nlc3Nfb3B0aW9ucyAodm9pZCkKKyAgICAgICBmbGFn X2Fzc29jaWF0aXZlX21hdGggPSAwOworICAgICB9CisgCisrICAvKiAtZnN0YWNrLWNsYXNoLXBy b3RlY3Rpb24gaXMgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQgb24gdGFyZ2V0cworKyAgICAgd2hl cmUgdGhlIHN0YWNrIGdyb3dzIHVwLiAgKi8KKysgIGlmIChmbGFnX3N0YWNrX2NsYXNoX3Byb3Rl Y3Rpb24gJiYgIVNUQUNLX0dST1dTX0RPV05XQVJEKQorKyAgICB7CisrICAgICAgd2FybmluZ19h dCAoVU5LTk9XTl9MT0NBVElPTiwgMCwKKysJCSAgIiU8LWZzdGFjay1jbGFzaC1wcm90ZWN0aW9u JT4gaXMgbm90IHN1cHBvcnRlZCBvbiB0YXJnZXRzICIKKysJCSAgIndoZXJlIHRoZSBzdGFjayBn cm93cyBmcm9tIGxvd2VyIHRvIGhpZ2hlciBhZGRyZXNzZXMiKTsKKysgICAgICBmbGFnX3N0YWNr X2NsYXNoX3Byb3RlY3Rpb24gPSAwOworKyAgICB9CisrCisrICAvKiBXZSBjYW4gbm90IHN1cHBv cnQgLWZzdGFjay1jaGVjaz0gYW5kIC1mc3RhY2stY2xhc2gtcHJvdGVjdGlvbiBhdAorKyAgICAg dGhlIHNhbWUgdGltZS4gICovCisrICBpZiAoZmxhZ19zdGFja19jaGVjayAhPSBOT19TVEFDS19D SEVDSyAmJiBmbGFnX3N0YWNrX2NsYXNoX3Byb3RlY3Rpb24pCisrICAgIHsKKysgICAgICB3YXJu aW5nX2F0IChVTktOT1dOX0xPQ0FUSU9OLCAwLAorKwkJICAiJTwtZnN0YWNrLWNoZWNrPSU+IGFu ZCAlPC1mc3RhY2stY2xhc2hfcHJvdGVjdGlvbiU+IGFyZSAiCisrCQkgICJtdXR1YWxseSBleGNs dXNpdmUuICBEaXNhYmxpbmcgJTwtZnN0YWNrLWNoZWNrPSU+Iik7CisrICAgICAgZmxhZ19zdGFj a19jaGVjayA9IE5PX1NUQUNLX0NIRUNLOworKyAgICB9CisrCisgICAvKiBXaXRoIC1mY3gtbGlt aXRlZC1yYW5nZSwgd2UgZG8gY2hlYXAgYW5kIHF1aWNrIGNvbXBsZXggYXJpdGhtZXRpYy4gICov CisgICBpZiAoZmxhZ19jeF9saW1pdGVkX3JhbmdlKQorICAgICBmbGFnX2NvbXBsZXhfbWV0aG9k ID0gMDsKCmRpZmYgLS1naXQgYS9nY2M3LXJoMTUxMjUyOS0xMC5wYXRjaCBiL2djYzctcmgxNTEy NTI5LTEwLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2Y2NiZjQK LS0tIC9kZXYvbnVsbAorKysgYi9nY2M3LXJoMTUxMjUyOS0xMC5wYXRjaApAQCAtMCwwICsxLDYw NSBAQAorY29tbWl0IGI1NTJkZGFiNTdhMzRmZTFhY2I4ZDcxNGI1ZjU1NjA4MjYwMGI5ZTAKK0F1 dGhvcjogbGF3IDxsYXdAMTM4YmM3NWQtMGQwNC0wNDEwLTk2MWYtODJlZTcyYjA1NGE0PgorRGF0 ZTogICBNb24gU2VwIDI1IDIzOjEzOjU1IDIwMTcgKzAwMDAKKworICAgICAgICAgICAgKiBjb25m aWcvcnM2MDAwL3JzNjAwMC1wcm90b3MuaCAob3V0cHV0X3Byb2JlX3N0YWNrX3JhbmdlKTogVXBk YXRlCisgICAgICAgICAgICBwcm90b3R5cGUgZm9yIG5ldyBhcmd1bWVudC4KKyAgICAgICAgICAg ICogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX2VtaXRfYWxsb2NhdGVfc3RhY2tfMSk6 IE5ldyBmdW5jdGlvbiwKKyAgICAgICAgICAgIG1vc3RseSBleHRyYWN0ZWQgZnJvbSByczYwMDBf ZW1pdF9hbGxvY2F0ZV9zdGFjay4KKyAgICAgICAgICAgIChyczYwMDBfZW1pdF9wcm9iZV9zdGFj a19yYW5nZV9zdGFja19jbGFzaCk6IE5ldyBmdW5jdGlvbi4KKyAgICAgICAgICAgIChyczYwMDBf ZW1pdF9hbGxvY2F0ZV9zdGFjayk6IENhbGwKKyAgICAgICAgICAgIHJzNjAwMF9lbWl0X3Byb2Jl X3N0YWNrX3JhbmdlX3N0YWNrX2NsYXNoIGFzIG5lZWRlZC4KKyAgICAgICAgICAgIChyczYwMDBf ZW1pdF9wcm9iZV9zdGFja19yYW5nZSk6IEFkZCBhZGRpdGlvbmFsIGFyZ3VtZW50CisgICAgICAg ICAgICB0byBjYWxsIHRvIGdlbl9wcm9iZV9zdGFja19yYW5nZXtzaSxkaX0uCisgICAgICAgICAg ICAob3V0cHV0X3Byb2JlX3N0YWNrX3JhbmdlKTogTmV3LgorICAgICAgICAgICAgKG91dHB1dF9w cm9iZV9zdGFja19yYW5nZV8xKTogUmVuYW1lZCBmcm9tIG91dHB1dF9wcm9iZV9zdGFja19yYW5n ZS4KKyAgICAgICAgICAgIChvdXRwdXRfcHJvYmVfc3RhY2tfcmFuZ2Vfc3RhY2tfY2xhc2gpOiBO ZXcuCisgICAgICAgICAgICAocnM2MDAwX2VtaXRfcHJvbG9ndWUpOiBFbWl0IG5vdGVzIGludG8g ZHVtcCBmaWxlIGFzIHJlcXVlc3RlZC4KKyAgICAgICAgICAgICogcnM2MDAwLm1kIChhbGxvY2F0 ZV9zdGFjayk6IEhhbmRsZSAtZnN0YWNrLWNsYXNoLXByb3RlY3Rpb24uCisgICAgICAgICAgICAo cHJvYmVfc3RhY2tfcmFuZ2U8UDptb2RlPik6IE9wZXJhbmQgMCBpcyBub3cgZWFybHktY2xvYmJl cmVkLgorICAgICAgICAgICAgQWRkIGFkZGl0aW9uYWwgb3BlcmFuZCBhbmQgcGFzcyBpdCB0byBv dXRwdXRfcHJvYmVfc3RhY2tfcmFuZ2UuCisgICAgCisgICAgICAgICAgICAqIGxpYi90YXJnZXQt c3VwcG9ydHMuZXhwCisgICAgICAgICAgICAoY2hlY2tfZWZmZWN0aXZlX3RhcmdldF9zdXBwb3J0 c19zdGFja19jbGFzaF9wcm90ZWN0aW9uKTogRW5hYmxlIGZvcgorICAgICAgICAgICAgcnM2MDAw IGFuZCBwb3dlcnBjIHRhcmdldHMuCisgICAgCisgICAgZ2l0LXN2bi1pZDogc3ZuK3NzaDovL2dj Yy5nbnUub3JnL3N2bi9nY2MvdHJ1bmtAMjUzMTc5IDEzOGJjNzVkLTBkMDQtMDQxMC05NjFmLTgy ZWU3MmIwNTRhNAorCitkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLXByb3Rv cy5oIGIvZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLXByb3Rvcy5oCitpbmRleCA3NGFkNzMzZDFi OS4uZDQ4YWE4OGY0YjEgMTAwNjQ0CistLS0gYS9nY2MvY29uZmlnL3JzNjAwMC9yczYwMDAtcHJv dG9zLmgKKysrKyBiL2djYy9jb25maWcvcnM2MDAwL3JzNjAwMC1wcm90b3MuaAorQEAgLTEzNCw3 ICsxMzQsNyBAQCBleHRlcm4gdm9pZCByczYwMDBfZW1pdF9zQ09ORCAobWFjaGluZV9tb2RlLCBy dHhbXSk7CisgZXh0ZXJuIHZvaWQgcnM2MDAwX2VtaXRfY2JyYW5jaCAobWFjaGluZV9tb2RlLCBy dHhbXSk7CisgZXh0ZXJuIGNoYXIgKiBvdXRwdXRfY2JyYW5jaCAocnR4LCBjb25zdCBjaGFyICos IGludCwgcnR4X2luc24gKik7CisgZXh0ZXJuIGNoYXIgKiBvdXRwdXRfZTUwMF9mbGlwX2d0X2Jp dCAocnR4LCBydHgpOworLWV4dGVybiBjb25zdCBjaGFyICogb3V0cHV0X3Byb2JlX3N0YWNrX3Jh bmdlIChydHgsIHJ0eCk7CisrZXh0ZXJuIGNvbnN0IGNoYXIgKiBvdXRwdXRfcHJvYmVfc3RhY2tf cmFuZ2UgKHJ0eCwgcnR4LCBydHgpOworIGV4dGVybiBib29sIHJzNjAwMF9lbWl0X3NldF9jb25z dCAocnR4LCBydHgpOworIGV4dGVybiBpbnQgcnM2MDAwX2VtaXRfY21vdmUgKHJ0eCwgcnR4LCBy dHgsIHJ0eCk7CisgZXh0ZXJuIGludCByczYwMDBfZW1pdF92ZWN0b3JfY29uZF9leHByIChydHgs IHJ0eCwgcnR4LCBydHgsIHJ0eCwgcnR4KTsKK2RpZmYgLS1naXQgYS9nY2MvY29uZmlnL3JzNjAw MC9yczYwMDAuYyBiL2djYy9jb25maWcvcnM2MDAwL3JzNjAwMC5jCitpbmRleCAxODM2ZTFkMTQ3 ZC4uODIzNWJmZjI0NjkgMTAwNjQ0CistLS0gYS9nY2MvY29uZmlnL3JzNjAwMC9yczYwMDAuYwor KysrIGIvZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLmMKK0BAIC0yODEzMyw2ICsyODEzMywyMjEg QEAgcnM2MDAwX2VtaXRfc3RhY2tfdGllIChydHggZnAsIGJvb2wgaGFyZF9mcmFtZV9uZWVkZWQp CisgICBlbWl0X2luc24gKGdlbl9zdGFja190aWUgKGdlbl9ydHhfUEFSQUxMRUwgKFZPSURtb2Rl LCBwKSkpOworIH0KKyAKKysvKiBBbGxvY2F0ZSBTSVpFX0lOVCBieXRlcyBvbiB0aGUgc3RhY2sg dXNpbmcgYSBzdG9yZSB3aXRoIHVwZGF0ZSBzdHlsZSBpbnNuCisrICAgYW5kIHNldCB0aGUgYXBw cm9wcmlhdGUgYXR0cmlidXRlcyBmb3IgdGhlIGdlbmVyYXRlZCBpbnNuLiAgUmV0dXJuIHRoZQor KyAgIGZpcnN0IGluc24gd2hpY2ggYWRqdXN0cyB0aGUgc3RhY2sgcG9pbnRlciBvciB0aGUgbGFz dCBpbnNuIGJlZm9yZQorKyAgIHRoZSBzdGFjayBhZGp1c3RtZW50IGxvb3AuIAorKworKyAgIFNJ WkVfSU5UIGlzIHVzZWQgdG8gY3JlYXRlIHRoZSBDRkkgbm90ZSBmb3IgdGhlIGFsbG9jYXRpb24u CisrCisrICAgU0laRV9SVFggaXMgYW4gcnR4IGNvbnRhaW5pbmcgdGhlIHNpemUgb2YgdGhlIGFk anVzdG1lbnQuICBOb3RlIHRoYXQKKysgICBzaW5jZSBzdGFja3MgZ3JvdyB0byBsb3dlciBhZGRy ZXNzZXMgaXRzIHJ1bnRpbWUgdmFsdWUgaXMgLVNJWkVfSU5ULgorKworKyAgIE9SSUdfU1AgY29u dGFpbnMgdGhlIGJhY2tjaGFpbiB2YWx1ZSB0aGF0IG11c3QgYmUgc3RvcmVkIGF0ICpzcC4gICov CisrCisrc3RhdGljIHJ0eF9pbnNuICoKKytyczYwMDBfZW1pdF9hbGxvY2F0ZV9zdGFja18xIChI T1NUX1dJREVfSU5UIHNpemVfaW50LCBydHggb3JpZ19zcCkKKyt7CisrICBydHhfaW5zbiAqaW5z bjsKKysKKysgIHJ0eCBzaXplX3J0eCA9IEdFTl9JTlQgKC1zaXplX2ludCk7CisrICBpZiAoc2l6 ZV9pbnQgPiAzMjc2NykKKysgICAgeworKyAgICAgIHJ0eCB0bXBfcmVnID0gZ2VuX3J0eF9SRUcg KFBtb2RlLCAwKTsKKysgICAgICAvKiBOZWVkIGEgbm90ZSBoZXJlIHNvIHRoYXQgdHJ5X3NwbGl0 IGRvZXNuJ3QgZ2V0IGNvbmZ1c2VkLiAgKi8KKysgICAgICBpZiAoZ2V0X2xhc3RfaW5zbiAoKSA9 PSBOVUxMX1JUWCkKKysJZW1pdF9ub3RlIChOT1RFX0lOU05fREVMRVRFRCk7CisrICAgICAgaW5z biA9IGVtaXRfbW92ZV9pbnNuICh0bXBfcmVnLCBzaXplX3J0eCk7CisrICAgICAgdHJ5X3NwbGl0 IChQQVRURVJOIChpbnNuKSwgaW5zbiwgMCk7CisrICAgICAgc2l6ZV9ydHggPSB0bXBfcmVnOwor KyAgICB9CisrICAKKysgIGlmIChQbW9kZSA9PSBTSW1vZGUpCisrICAgIGluc24gPSBlbWl0X2lu c24gKGdlbl9tb3ZzaV91cGRhdGVfc3RhY2sgKHN0YWNrX3BvaW50ZXJfcnR4LAorKwkJCQkJICAg ICAgc3RhY2tfcG9pbnRlcl9ydHgsCisrCQkJCQkgICAgICBzaXplX3J0eCwKKysJCQkJCSAgICAg IG9yaWdfc3ApKTsKKysgIGVsc2UKKysgICAgaW5zbiA9IGVtaXRfaW5zbiAoZ2VuX21vdmRpX2Rp X3VwZGF0ZV9zdGFjayAoc3RhY2tfcG9pbnRlcl9ydHgsCisrCQkJCQkJIHN0YWNrX3BvaW50ZXJf cnR4LAorKwkJCQkJCSBzaXplX3J0eCwKKysJCQkJCQkgb3JpZ19zcCkpOworKyAgcnR4IHBhciA9 IFBBVFRFUk4gKGluc24pOworKyAgZ2NjX2Fzc2VydCAoR0VUX0NPREUgKHBhcikgPT0gUEFSQUxM RUwpOworKyAgcnR4IHNldCA9IFhWRUNFWFAgKHBhciwgMCwgMCk7CisrICBnY2NfYXNzZXJ0IChH RVRfQ09ERSAoc2V0KSA9PSBTRVQpOworKyAgcnR4IG1lbSA9IFNFVF9ERVNUIChzZXQpOworKyAg Z2NjX2Fzc2VydCAoTUVNX1AgKG1lbSkpOworKyAgTUVNX05PVFJBUF9QIChtZW0pID0gMTsKKysg IHNldF9tZW1fYWxpYXNfc2V0IChtZW0sIGdldF9mcmFtZV9hbGlhc19zZXQgKCkpOworKworKyAg UlRYX0ZSQU1FX1JFTEFURURfUCAoaW5zbikgPSAxOworKyAgYWRkX3JlZ19ub3RlIChpbnNuLCBS RUdfRlJBTUVfUkVMQVRFRF9FWFBSLAorKwkJZ2VuX3J0eF9TRVQgKHN0YWNrX3BvaW50ZXJfcnR4 LAorKwkJCSAgICAgZ2VuX3J0eF9QTFVTIChQbW9kZSwKKysJCQkJCSAgIHN0YWNrX3BvaW50ZXJf cnR4LAorKwkJCQkJICAgR0VOX0lOVCAoLXNpemVfaW50KSkpKTsKKysKKysgIC8qIEVtaXQgYSBi bG9ja2FnZSB0byBlbnN1cmUgdGhlIGFsbG9jYXRpb24vcHJvYmluZyBpbnNucyBhcmUKKysgICAg IG5vdCBvcHRpbWl6ZWQsIGNvbWJpbmVkLCByZW1vdmVkLCBldGMuICBBZGQgUkVHX1NUQUNLX0NI RUNLCisrICAgICBub3RlIGZvciBzaW1pbGFyIHJlYXNvbnMuICAqLworKyAgaWYgKGZsYWdfc3Rh Y2tfY2xhc2hfcHJvdGVjdGlvbikKKysgICAgeworKyAgICAgIGFkZF9yZWdfbm90ZSAoaW5zbiwg UkVHX1NUQUNLX0NIRUNLLCBjb25zdDBfcnR4KTsKKysgICAgICBlbWl0X2luc24gKGdlbl9ibG9j a2FnZSAoKSk7CisrICAgIH0KKysKKysgIHJldHVybiBpbnNuOworK30KKysKKytzdGF0aWMgSE9T VF9XSURFX0lOVAorK2dldF9zdGFja19jbGFzaF9wcm90ZWN0aW9uX3Byb2JlX2ludGVydmFsICh2 b2lkKQorK3sKKysgIHJldHVybiAoSE9TVF9XSURFX0lOVF8xVQorKwkgIDw8IFBBUkFNX1ZBTFVF IChQQVJBTV9TVEFDS19DTEFTSF9QUk9URUNUSU9OX1BST0JFX0lOVEVSVkFMKSk7CisrfQorKwor K3N0YXRpYyBIT1NUX1dJREVfSU5UCisrZ2V0X3N0YWNrX2NsYXNoX3Byb3RlY3Rpb25fZ3VhcmRf c2l6ZSAodm9pZCkKKyt7CisrICByZXR1cm4gKEhPU1RfV0lERV9JTlRfMVUKKysJICA8PCBQQVJB TV9WQUxVRSAoUEFSQU1fU1RBQ0tfQ0xBU0hfUFJPVEVDVElPTl9HVUFSRF9TSVpFKSk7CisrfQor KworKy8qIEFsbG9jYXRlIE9SSUdfU0laRSBieXRlcyBvbiB0aGUgc3RhY2sgYW5kIHByb2JlIHRo ZSBuZXdseQorKyAgIGFsbG9jYXRlZCBzcGFjZSBldmVyeSBTVEFDS19DTEFTSF9QUk9URUNUSU9O X1BST0JFX0lOVEVSVkFMIGJ5dGVzLgorKworKyAgIENPUFlfUkVHLCBpZiBub24tbnVsbCwgc2hv dWxkIGNvbnRhaW4gYSBjb3B5IG9mIHRoZSBvcmlnaW5hbAorKyAgIHN0YWNrIHBvaW50ZXIgYXQg ZXhpdCBmcm9tIHRoaXMgZnVuY3Rpb24uCisrCisrICAgVGhpcyBpcyBzdWJ0bHkgZGlmZmVyZW50 IHRoYW4gdGhlIEFkYSBwcm9iaW5nIGluIHRoYXQgaXQgdHJpZXMgaGFyZCB0bworKyAgIHByZXZl bnQgYXR0YWNrcyB0aGF0IGp1bXAgdGhlIHN0YWNrIGd1YXJkLiAgVGh1cyBpdCBpcyBuZXZlciBh bGxvd2VkIHRvCisrICAgYWxsb2NhdGUgbW9yZSB0aGFuIFNUQUNLX0NMQVNIX1BST1RFQ1RJT05f UFJPQkVfSU5URVJWQUwgYnl0ZXMgb2Ygc3RhY2sKKysgICBzcGFjZSB3aXRob3V0IGEgc3VpdGFi bGUgcHJvYmUuICAqLworK3N0YXRpYyBydHhfaW5zbiAqCisrcnM2MDAwX2VtaXRfcHJvYmVfc3Rh Y2tfcmFuZ2Vfc3RhY2tfY2xhc2ggKEhPU1RfV0lERV9JTlQgb3JpZ19zaXplLAorKwkJCQkJICAg cnR4IGNvcHlfcmVnKQorK3sKKysgIHJ0eCBvcmlnX3NwID0gY29weV9yZWc7CisrCisrICBIT1NU X1dJREVfSU5UIHByb2JlX2ludGVydmFsID0gZ2V0X3N0YWNrX2NsYXNoX3Byb3RlY3Rpb25fcHJv YmVfaW50ZXJ2YWwgKCk7CisrCisrICAvKiBSb3VuZCB0aGUgc2l6ZSBkb3duIHRvIGEgbXVsdGlw bGUgb2YgUFJPQkVfSU5URVJWQUwuICAqLworKyAgSE9TVF9XSURFX0lOVCByb3VuZGVkX3NpemUg PSBST1VORF9ET1dOIChvcmlnX3NpemUsIHByb2JlX2ludGVydmFsKTsKKysKKysgIC8qIElmIGV4 cGxpY2l0bHkgcmVxdWVzdGVkLAorKyAgICAgICBvciB0aGUgcm91bmRlZCBzaXplIGlzIG5vdCB0 aGUgc2FtZSBhcyB0aGUgb3JpZ2luYWwgc2l6ZQorKyAgICAgICBvciB0aGUgdGhlIHJvdW5kZWQg c2l6ZSBpcyBncmVhdGVyIHRoYW4gYSBwYWdlLAorKyAgICAgdGhlbiB3ZSB3aWxsIG5lZWQgYSBj b3B5IG9mIHRoZSBvcmlnaW5hbCBzdGFjayBwb2ludGVyLiAgKi8KKysgIGlmIChyb3VuZGVkX3Np emUgIT0gb3JpZ19zaXplCisrICAgICAgfHwgcm91bmRlZF9zaXplID4gcHJvYmVfaW50ZXJ2YWwK KysgICAgICB8fCBjb3B5X3JlZykKKysgICAgeworKyAgICAgIC8qIElmIHRoZSBjYWxsZXIgZGlk IG5vdCByZXF1ZXN0IGEgY29weSBvZiB0aGUgaW5jb21pbmcgc3RhY2sKKysJIHBvaW50ZXIsIHRo ZW4gd2UgdXNlIHIwIHRvIGhvbGQgdGhlIGNvcHkuICAqLworKyAgICAgIGlmICghY29weV9yZWcp CisrCW9yaWdfc3AgPSBnZW5fcnR4X1JFRyAoUG1vZGUsIDApOworKyAgICAgIGVtaXRfbW92ZV9p bnNuIChvcmlnX3NwLCBzdGFja19wb2ludGVyX3J0eCk7CisrICAgIH0KKysKKysgIC8qIFRoZXJl J3MgdGhyZWUgY2FzZXMgaGVyZS4KKysKKysgICAgIE9uZSBpcyBhIHNpbmdsZSBwcm9iZSB3aGlj aCBpcyB0aGUgbW9zdCBjb21tb24gYW5kIG1vc3QgZWZmaWNpZW50bHkKKysgICAgIGltcGxlbWVu dGVkIGFzIGl0IGRvZXMgbm90IGhhdmUgdG8gaGF2ZSBhIGNvcHkgb2YgdGhlIG9yaWdpbmFsCisr ICAgICBzdGFjayBwb2ludGVyIGlmIHRoZXJlIGFyZSBubyByZXNpZHVhbHMuCisrCisrICAgICBT ZWNvbmQgaXMgdW5yb2xsZWQgYWxsb2NhdGlvbi9wcm9iZXMgd2hpY2ggd2UgdXNlIGlmIHRoZXJl J3MganVzdAorKyAgICAgYSBmZXcgb2YgdGhlbS4gIEl0IG5lZWRzIHRvIHNhdmUgdGhlIG9yaWdp bmFsIHN0YWNrIHBvaW50ZXIgaW50byBhCisrICAgICB0ZW1wb3JhcnkgZm9yIHVzZSBhcyBhIHNv dXJjZSByZWdpc3RlciBpbiB0aGUgYWxsb2NhdGlvbi9wcm9iZS4KKysKKysgICAgIExhc3QgaXMg YSBsb29wLiAgVGhpcyBpcyB0aGUgbW9zdCB1bmNvbW1vbiBjYXNlIGFuZCBsZWFzdCBlZmZpY2ll bnQuICAqLworKyAgcnR4X2luc24gKnJldHZhbCA9IE5VTEw7CisrICBpZiAocm91bmRlZF9zaXpl ID09IHByb2JlX2ludGVydmFsKQorKyAgICB7CisrICAgICAgcmV0dmFsID0gcnM2MDAwX2VtaXRf YWxsb2NhdGVfc3RhY2tfMSAocHJvYmVfaW50ZXJ2YWwsIHN0YWNrX3BvaW50ZXJfcnR4KTsKKysK KysgICAgICBkdW1wX3N0YWNrX2NsYXNoX2ZyYW1lX2luZm8gKFBST0JFX0lOTElORSwgcm91bmRl ZF9zaXplICE9IG9yaWdfc2l6ZSk7CisrICAgIH0KKysgIGVsc2UgaWYgKHJvdW5kZWRfc2l6ZSA8 PSA4ICogcHJvYmVfaW50ZXJ2YWwpCisrICAgIHsKKysgICAgICAvKiBUaGUgQUJJIHJlcXVpcmVz IHVzaW5nIHRoZSBzdG9yZSB3aXRoIHVwZGF0ZSBpbnNucyB0byBhbGxvY2F0ZQorKwkgc3BhY2Ug YW5kIHN0b3JlIHRoZSBiYWNrY2hhaW4gaW50byB0aGUgc3RhY2sKKysKKysJIFNvIHdlIHNhdmUg dGhlIGN1cnJlbnQgc3RhY2sgcG9pbnRlciBpbnRvIGEgdGVtcG9yYXJ5LCB0aGVuCisrCSBlbWl0 IHRoZSBzdG9yZS13aXRoLXVwZGF0ZSBpbnNucyB0byBzdG9yZSB0aGUgc2F2ZWQgc3RhY2sgcG9p bnRlcgorKwkgaW50byB0aGUgcmlnaHQgbG9jYXRpb24gaW4gZWFjaCBuZXcgcGFnZS4gICovCisr ICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3VuZGVkX3NpemU7IGkgKz0gcHJvYmVfaW50ZXJ2 YWwpCisrCXsKKysJICBydHhfaW5zbiAqaW5zbgorKwkgICAgPSByczYwMDBfZW1pdF9hbGxvY2F0 ZV9zdGFja18xIChwcm9iZV9pbnRlcnZhbCwgb3JpZ19zcCk7CisrCisrCSAgLyogU2F2ZSB0aGUg Zmlyc3Qgc3RhY2sgYWRqdXN0bWVudCBpbiBSRVRWQUwuICAqLworKwkgIGlmIChpID09IDApCisr CSAgICByZXR2YWwgPSBpbnNuOworKwl9CisrCisrICAgICAgZHVtcF9zdGFja19jbGFzaF9mcmFt ZV9pbmZvIChQUk9CRV9JTkxJTkUsIHJvdW5kZWRfc2l6ZSAhPSBvcmlnX3NpemUpOworKyAgICB9 CisrICBlbHNlCisrICAgIHsKKysgICAgICAvKiBDb21wdXRlIHRoZSBlbmRpbmcgYWRkcmVzcy4g ICovCisrICAgICAgcnR4IGVuZF9hZGRyCisrCT0gY29weV9yZWcgPyBnZW5fcnR4X1JFRyAoUG1v ZGUsIDApIDogZ2VuX3J0eF9SRUcgKFBtb2RlLCAxMik7CisrICAgICAgcnR4IHJzID0gR0VOX0lO VCAoLXJvdW5kZWRfc2l6ZSk7CisrICAgICAgcnR4X2luc24gKmluc247CisrICAgICAgaWYgKGFk ZF9vcGVyYW5kIChycywgUG1vZGUpKQorKwlpbnNuID0gZW1pdF9pbnNuIChnZW5fYWRkM19pbnNu IChlbmRfYWRkciwgc3RhY2tfcG9pbnRlcl9ydHgsIHJzKSk7CisrICAgICAgZWxzZQorKwl7Cisr CSAgZW1pdF9tb3ZlX2luc24gKGVuZF9hZGRyLCBHRU5fSU5UICgtcm91bmRlZF9zaXplKSk7Cisr CSAgaW5zbiA9IGVtaXRfaW5zbiAoZ2VuX2FkZDNfaW5zbiAoZW5kX2FkZHIsIGVuZF9hZGRyLAor KwkJCQkJICAgc3RhY2tfcG9pbnRlcl9ydHgpKTsKKysJICAvKiBEZXNjcmliZSB0aGUgZWZmZWN0 IG9mIElOU04gdG8gdGhlIENGSSBlbmdpbmUuICAqLworKwkgIGFkZF9yZWdfbm90ZSAoaW5zbiwg UkVHX0ZSQU1FX1JFTEFURURfRVhQUiwKKysJCQlnZW5fcnR4X1NFVCAoZW5kX2FkZHIsCisrCQkJ CSAgICAgZ2VuX3J0eF9QTFVTIChQbW9kZSwgc3RhY2tfcG9pbnRlcl9ydHgsCisrCQkJCQkJICAg cnMpKSk7CisrCX0KKysgICAgICBSVFhfRlJBTUVfUkVMQVRFRF9QIChpbnNuKSA9IDE7CisrCisr ICAgICAgLyogRW1pdCB0aGUgbG9vcC4gICovCisrICAgICAgaWYgKFRBUkdFVF82NEJJVCkKKysJ cmV0dmFsID0gZW1pdF9pbnNuIChnZW5fcHJvYmVfc3RhY2tfcmFuZ2VkaSAoc3RhY2tfcG9pbnRl cl9ydHgsCisrCQkJCQkJICAgICBzdGFja19wb2ludGVyX3J0eCwgb3JpZ19zcCwKKysJCQkJCQkg ICAgIGVuZF9hZGRyKSk7CisrICAgICAgZWxzZQorKwlyZXR2YWwgPSBlbWl0X2luc24gKGdlbl9w cm9iZV9zdGFja19yYW5nZXNpIChzdGFja19wb2ludGVyX3J0eCwKKysJCQkJCQkgICAgIHN0YWNr X3BvaW50ZXJfcnR4LCBvcmlnX3NwLAorKwkJCQkJCSAgICAgZW5kX2FkZHIpKTsKKysgICAgICBS VFhfRlJBTUVfUkVMQVRFRF9QIChyZXR2YWwpID0gMTsKKysgICAgICAvKiBEZXNjcmliZSB0aGUg ZWZmZWN0IG9mIElOU04gdG8gdGhlIENGSSBlbmdpbmUuICAqLworKyAgICAgIGFkZF9yZWdfbm90 ZSAocmV0dmFsLCBSRUdfRlJBTUVfUkVMQVRFRF9FWFBSLAorKwkJICAgIGdlbl9ydHhfU0VUIChz dGFja19wb2ludGVyX3J0eCwgZW5kX2FkZHIpKTsKKysKKysgICAgICAvKiBFbWl0IGEgYmxvY2th Z2UgdG8gZW5zdXJlIHRoZSBhbGxvY2F0aW9uL3Byb2JpbmcgaW5zbnMgYXJlCisrCSBub3Qgb3B0 aW1pemVkLCBjb21iaW5lZCwgcmVtb3ZlZCwgZXRjLiAgT3RoZXIgY2FzZXMgaGFuZGxlIHRoaXMK KysJIHdpdGhpbiB0aGVpciBjYWxsIHRvIHJzNjAwMF9lbWl0X2FsbG9jYXRlX3N0YWNrXzEuICAq LworKyAgICAgIGVtaXRfaW5zbiAoZ2VuX2Jsb2NrYWdlICgpKTsKKysKKysgICAgICBkdW1wX3N0 YWNrX2NsYXNoX2ZyYW1lX2luZm8gKFBST0JFX0xPT1AsIHJvdW5kZWRfc2l6ZSAhPSBvcmlnX3Np emUpOworKyAgICB9CisrCisrICBpZiAob3JpZ19zaXplICE9IHJvdW5kZWRfc2l6ZSkKKysgICAg eworKyAgICAgIC8qIEFsbG9jYXRlIChhbmQgaW1wbGljaXRseSBwcm9iZSkgYW55IHJlc2lkdWFs IHNwYWNlLiAgICovCisrICAgICAgSE9TVF9XSURFX0lOVCByZXNpZHVhbCA9IG9yaWdfc2l6ZSAt IHJvdW5kZWRfc2l6ZTsKKysKKysgICAgICBydHhfaW5zbiAqaW5zbiA9IHJzNjAwMF9lbWl0X2Fs bG9jYXRlX3N0YWNrXzEgKHJlc2lkdWFsLCBvcmlnX3NwKTsKKysKKysgICAgICAvKiBJZiB0aGUg cmVzaWR1YWwgd2FzIHRoZSBvbmx5IGFsbG9jYXRpb24sIHRoZW4gd2UgY2FuIHJldHVybiB0aGUK KysJIGFsbG9jYXRpbmcgaW5zbi4gICovCisrICAgICAgaWYgKCFyZXR2YWwpCisrCXJldHZhbCA9 IGluc247CisrICAgIH0KKysKKysgIHJldHVybiByZXR2YWw7CisrfQorKworIC8qIEVtaXQgdGhl IGNvcnJlY3QgY29kZSBmb3IgYWxsb2NhdGluZyBzdGFjayBzcGFjZSwgYXMgaW5zbnMuCisgICAg SWYgQ09QWV9SRUcsIG1ha2Ugc3VyZSBhIGNvcHkgb2YgdGhlIG9sZCBmcmFtZSBpcyBsZWZ0IHRo ZXJlLgorICAgIFRoZSBnZW5lcmF0ZWQgY29kZSBtYXkgdXNlIGhhcmQgcmVnaXN0ZXIgMCBhcyBh IHRlbXBvcmFyeS4gICovCitAQCAtMjgxNDQsNyArMjgzNTksNiBAQCByczYwMDBfZW1pdF9hbGxv Y2F0ZV9zdGFjayAoSE9TVF9XSURFX0lOVCBzaXplLCBydHggY29weV9yZWcsIGludCBjb3B5X29m ZikKKyAgIHJ0eCBzdGFja19yZWcgPSBnZW5fcnR4X1JFRyAoUG1vZGUsIFNUQUNLX1BPSU5URVJf UkVHTlVNKTsKKyAgIHJ0eCB0bXBfcmVnID0gZ2VuX3J0eF9SRUcgKFBtb2RlLCAwKTsKKyAgIHJ0 eCB0b2RlYyA9IGdlbl9pbnRfbW9kZSAoLXNpemUsIFBtb2RlKTsKKy0gIHJ0eCBwYXIsIHNldCwg bWVtOworIAorICAgaWYgKElOVFZBTCAodG9kZWMpICE9IC1zaXplKQorICAgICB7CitAQCAtMjgx ODQsNiArMjgzOTgsMjMgQEAgcnM2MDAwX2VtaXRfYWxsb2NhdGVfc3RhY2sgKEhPU1RfV0lERV9J TlQgc2l6ZSwgcnR4IGNvcHlfcmVnLCBpbnQgY29weV9vZmYpCisgCXdhcm5pbmcgKDAsICJzdGFj ayBsaW1pdCBleHByZXNzaW9uIGlzIG5vdCBzdXBwb3J0ZWQiKTsKKyAgICAgfQorIAorKyAgaWYg KGZsYWdfc3RhY2tfY2xhc2hfcHJvdGVjdGlvbikKKysgICAgeworKyAgICAgIGlmIChzaXplIDwg Z2V0X3N0YWNrX2NsYXNoX3Byb3RlY3Rpb25fZ3VhcmRfc2l6ZSAoKSkKKysJZHVtcF9zdGFja19j bGFzaF9mcmFtZV9pbmZvIChOT19QUk9CRV9TTUFMTF9GUkFNRSwgdHJ1ZSk7CisrICAgICAgZWxz ZQorKwl7CisrCSAgcnR4X2luc24gKmluc24gPSByczYwMDBfZW1pdF9wcm9iZV9zdGFja19yYW5n ZV9zdGFja19jbGFzaCAoc2l6ZSwKKysJCQkJCQkJCSAgICAgIGNvcHlfcmVnKTsKKysKKysJICAv KiBJZiB3ZSBhc2tlZCBmb3IgYSBjb3B5IHdpdGggYW4gb2Zmc2V0LCB0aGVuIHdlIHN0aWxsIG5l ZWQgYWRkIGluCisrCSAgICAgdGhlIG9mZnNldC4gICovCisrCSAgaWYgKGNvcHlfcmVnICYmIGNv cHlfb2ZmKQorKwkgICAgZW1pdF9pbnNuIChnZW5fYWRkM19pbnNuIChjb3B5X3JlZywgY29weV9y ZWcsIEdFTl9JTlQgKGNvcHlfb2ZmKSkpOworKwkgIHJldHVybiBpbnNuOworKwl9CisrICAgIH0K KysKKyAgIGlmIChjb3B5X3JlZykKKyAgICAgeworICAgICAgIGlmIChjb3B5X29mZiAhPSAwKQor QEAgLTI4MTkyLDM4ICsyODQyMywxMSBAQCByczYwMDBfZW1pdF9hbGxvY2F0ZV9zdGFjayAoSE9T VF9XSURFX0lOVCBzaXplLCBydHggY29weV9yZWcsIGludCBjb3B5X29mZikKKyAJZW1pdF9tb3Zl X2luc24gKGNvcHlfcmVnLCBzdGFja19yZWcpOworICAgICB9CisgCistICBpZiAoc2l6ZSA+IDMy NzY3KQorLSAgICB7CistICAgICAgLyogTmVlZCBhIG5vdGUgaGVyZSBzbyB0aGF0IHRyeV9zcGxp dCBkb2Vzbid0IGdldCBjb25mdXNlZC4gICovCistICAgICAgaWYgKGdldF9sYXN0X2luc24gKCkg PT0gTlVMTF9SVFgpCistCWVtaXRfbm90ZSAoTk9URV9JTlNOX0RFTEVURUQpOworLSAgICAgIGlu c24gPSBlbWl0X21vdmVfaW5zbiAodG1wX3JlZywgdG9kZWMpOworLSAgICAgIHRyeV9zcGxpdCAo UEFUVEVSTiAoaW5zbiksIGluc24sIDApOworLSAgICAgIHRvZGVjID0gdG1wX3JlZzsKKy0gICAg fQorLSAgCistICBpbnNuID0gZW1pdF9pbnNuIChUQVJHRVRfMzJCSVQKKy0JCSAgICA/IGdlbl9t b3ZzaV91cGRhdGVfc3RhY2sgKHN0YWNrX3JlZywgc3RhY2tfcmVnLAorLQkJCQkJICAgICAgdG9k ZWMsIHN0YWNrX3JlZykKKy0JCSAgICA6IGdlbl9tb3ZkaV9kaV91cGRhdGVfc3RhY2sgKHN0YWNr X3JlZywgc3RhY2tfcmVnLAorLQkJCQkJCSB0b2RlYywgc3RhY2tfcmVnKSk7CisgICAvKiBTaW5j ZSB3ZSBkaWRuJ3QgdXNlIGdlbl9mcmFtZV9tZW0gdG8gZ2VuZXJhdGUgdGhlIE1FTSwgZ3JhYgor ICAgICAgaXQgbm93IGFuZCBzZXQgdGhlIGFsaWFzIHNldC9hdHRyaWJ1dGVzLiBUaGUgYWJvdmUg Z2VuXypfdXBkYXRlCisgICAgICBjYWxscyB3aWxsIGdlbmVyYXRlIGEgUEFSQUxMRUwgd2l0aCB0 aGUgTUVNIHNldCBiZWluZyB0aGUgZmlyc3QKKyAgICAgIG9wZXJhdGlvbi4gKi8KKy0gIHBhciA9 IFBBVFRFUk4gKGluc24pOworLSAgZ2NjX2Fzc2VydCAoR0VUX0NPREUgKHBhcikgPT0gUEFSQUxM RUwpOworLSAgc2V0ID0gWFZFQ0VYUCAocGFyLCAwLCAwKTsKKy0gIGdjY19hc3NlcnQgKEdFVF9D T0RFIChzZXQpID09IFNFVCk7CistICBtZW0gPSBTRVRfREVTVCAoc2V0KTsKKy0gIGdjY19hc3Nl cnQgKE1FTV9QIChtZW0pKTsKKy0gIE1FTV9OT1RSQVBfUCAobWVtKSA9IDE7CistICBzZXRfbWVt X2FsaWFzX3NldCAobWVtLCBnZXRfZnJhbWVfYWxpYXNfc2V0ICgpKTsKKy0KKy0gIFJUWF9GUkFN RV9SRUxBVEVEX1AgKGluc24pID0gMTsKKy0gIGFkZF9yZWdfbm90ZSAoaW5zbiwgUkVHX0ZSQU1F X1JFTEFURURfRVhQUiwKKy0JCWdlbl9ydHhfU0VUIChzdGFja19yZWcsIGdlbl9ydHhfUExVUyAo UG1vZGUsIHN0YWNrX3JlZywKKy0JCQkJCQkgICAgICBHRU5fSU5UICgtc2l6ZSkpKSk7CisrICBp bnNuID0gcnM2MDAwX2VtaXRfYWxsb2NhdGVfc3RhY2tfMSAoc2l6ZSwgc3RhY2tfcmVnKTsKKyAg IHJldHVybiBpbnNuOworIH0KKyAKK0BAIC0yODMwNSw5ICsyODUwOSw5IEBAIHJzNjAwMF9lbWl0 X3Byb2JlX3N0YWNrX3JhbmdlIChIT1NUX1dJREVfSU5UIGZpcnN0LCBIT1NUX1dJREVfSU5UIHNp emUpCisgCSB1bnRpbCBpdCBpcyBlcXVhbCB0byBST1VOREVEX1NJWkUuICAqLworIAorICAgICAg IGlmIChUQVJHRVRfNjRCSVQpCistCWVtaXRfaW5zbiAoZ2VuX3Byb2JlX3N0YWNrX3JhbmdlZGkg KHIxMiwgcjEyLCByMCkpOworKwllbWl0X2luc24gKGdlbl9wcm9iZV9zdGFja19yYW5nZWRpIChy MTIsIHIxMiwgc3RhY2tfcG9pbnRlcl9ydHgsIHIwKSk7CisgICAgICAgZWxzZQorLQllbWl0X2lu c24gKGdlbl9wcm9iZV9zdGFja19yYW5nZXNpIChyMTIsIHIxMiwgcjApKTsKKysJZW1pdF9pbnNu IChnZW5fcHJvYmVfc3RhY2tfcmFuZ2VzaSAocjEyLCByMTIsIHN0YWNrX3BvaW50ZXJfcnR4LCBy MCkpOworIAorIAorICAgICAgIC8qIFN0ZXAgNDogcHJvYmUgYXQgRklSU1QgKyBTSVpFIGlmIHdl IGNhbm5vdCBhc3NlcnQgYXQgY29tcGlsZS10aW1lCitAQCAtMjgzMTksMTAgKzI4NTIzLDEwIEBA IHJzNjAwMF9lbWl0X3Byb2JlX3N0YWNrX3JhbmdlIChIT1NUX1dJREVfSU5UIGZpcnN0LCBIT1NU X1dJREVfSU5UIHNpemUpCisgfQorIAorIC8qIFByb2JlIGEgcmFuZ2Ugb2Ygc3RhY2sgYWRkcmVz c2VzIGZyb20gUkVHMSB0byBSRUcyIGluY2x1c2l2ZS4gIFRoZXNlIGFyZQorLSAgIGFic29sdXRl IGFkZHJlc3Nlcy4gICovCisrICAgYWRkcmVzc2VzLCBub3Qgb2Zmc2V0cy4gICovCisgCistY29u c3QgY2hhciAqCistb3V0cHV0X3Byb2JlX3N0YWNrX3JhbmdlIChydHggcmVnMSwgcnR4IHJlZzIp Cisrc3RhdGljIGNvbnN0IGNoYXIgKgorK291dHB1dF9wcm9iZV9zdGFja19yYW5nZV8xIChydHgg cmVnMSwgcnR4IHJlZzIpCisgeworICAgc3RhdGljIGludCBsYWJlbG5vID0gMDsKKyAgIGNoYXIg bG9vcF9sYWJbMzJdOworQEAgLTI4MzU3LDYgKzI4NTYxLDk1IEBAIG91dHB1dF9wcm9iZV9zdGFj a19yYW5nZSAocnR4IHJlZzEsIHJ0eCByZWcyKQorICAgcmV0dXJuICIiOworIH0KKyAKKysvKiBU aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHJzNjAwMF9mcmFtZV9yZWxhdGVkIGlzIHByb2Nl c3NpbmcKKysgICBTRVRzIHdpdGhpbiBhIFBBUkFMTEVMLCBhbmQgcmV0dXJucyB3aGV0aGVyIHRo ZSBSRUdOTyBzYXZlIG91Z2h0IHRvCisrICAgYmUgbWFya2VkIFJUWF9GUkFNRV9SRUxBVEVEX1Au ICBUaGUgUEFSQUxMRUxzIGludm9sdmVkIGFyZSB0aG9zZQorKyAgIGZvciBvdXQtb2YtbGluZSBy ZWdpc3RlciBzYXZlIGZ1bmN0aW9ucywgc3RvcmUgbXVsdGlwbGUsIGFuZCB0aGUKKysgICBEYXJ3 aW4gd29ybGRfc2F2ZS4gIFRoZXkgbWF5IGNvbnRhaW4gcmVnaXN0ZXJzIHRoYXQgZG9uJ3QgcmVh bGx5CisrICAgbmVlZCBzYXZpbmcuICAqLworKworK3N0YXRpYyBib29sCisraW50ZXJlc3Rpbmdf ZnJhbWVfcmVsYXRlZF9yZWdubyAodW5zaWduZWQgaW50IHJlZ25vKQorK3sKKysgIC8qIFNhdmVz IGFwcGFyZW50bHkgb2YgcjAgYXJlIGFjdHVhbGx5IHNhdmluZyBMUi4gIEl0IGRvZXNuJ3QgbWFr ZQorKyAgICAgc2Vuc2UgdG8gc3Vic3RpdHV0ZSB0aGUgcmVnbm8gaGVyZSB0byB0ZXN0IHNhdmVf cmVnX3AgKExSX1JFR05PKS4KKysgICAgIFdlICprbm93KiBMUiBuZWVkcyBzYXZpbmcsIGFuZCBk d2FyZjJjZmkuYyBpcyBhYmxlIHRvIGRlZHVjZSB0aGF0CisrICAgICAoc2V0IChtZW0pIChyMCkp IGlzIHNhdmluZyBMUiBmcm9tIGEgcHJpb3IgKHNldCAocjApIChscikpIG1hcmtlZAorKyAgICAg YXMgZnJhbWUgcmVsYXRlZC4gICovCisrICBpZiAocmVnbm8gPT0gMCkKKysgICAgcmV0dXJuIHRy dWU7CisrICAvKiBJZiB3ZSBzZWUgQ1IyIHRoZW4gd2UgYXJlIGhlcmUgb24gYSBEYXJ3aW4gd29y bGQgc2F2ZS4gIFNhdmVzIG9mCisrICAgICBDUjIgc2lnbmlmeSB0aGUgd2hvbGUgQ1IgaXMgYmVp bmcgc2F2ZWQuICBUaGlzIGlzIGEgbG9uZy1zdGFuZGluZworKyAgICAgQUJJIHdhcnQgZml4ZWQg YnkgRUxGdjIuICBBcyBmb3IgcjAvbHIgdGhlcmUgaXMgbm8gbmVlZCB0byBjaGVjaworKyAgICAg dGhhdCBDUiBuZWVkcyB0byBiZSBzYXZlZC4gICovCisrICBpZiAocmVnbm8gPT0gQ1IyX1JFR05P KQorKyAgICByZXR1cm4gdHJ1ZTsKKysgIC8qIE9taXQgZnJhbWUgaW5mbyBmb3IgYW55IHVzZXIt ZGVmaW5lZCBnbG9iYWwgcmVncy4gIElmIGZyYW1lIGluZm8KKysgICAgIGlzIHN1cHBsaWVkIGZv ciB0aGVtLCBmcmFtZSB1bndpbmRpbmcgd2lsbCByZXN0b3JlIGEgdXNlciByZWcuCisrICAgICBB bHNvIG9taXQgZnJhbWUgaW5mbyBmb3IgYW55IHJlZyB3ZSBkb24ndCBuZWVkIHRvIHNhdmUsIGFz IHRoYXQKKysgICAgIGJsb2F0cyBmcmFtZSBpbmZvIGFuZCBjYW4gY2F1c2UgcHJvYmxlbXMgd2l0 aCBzaHJpbmsgd3JhcHBpbmcuCisrICAgICBTaW5jZSBnbG9iYWwgcmVncyB3b24ndCBiZSBzZWVu IGFzIG5lZWRpbmcgdG8gYmUgc2F2ZWQsIGJvdGggb2YKKysgICAgIHRoZXNlIGNvbmRpdGlvbnMg YXJlIGNvdmVyZWQgYnkgc2F2ZV9yZWdfcC4gICovCisrICByZXR1cm4gc2F2ZV9yZWdfcCAocmVn bm8pOworK30KKysKKysvKiBQcm9iZSBhIHJhbmdlIG9mIHN0YWNrIGFkZHJlc3NlcyBmcm9tIFJF RzEgdG8gUkVHMyBpbmNsdXNpdmUuICBUaGVzZSBhcmUKKysgICBhZGRyZXNzZXMsIG5vdCBvZmZz ZXRzLgorKworKyAgIFJFRzIgY29udGFpbnMgdGhlIGJhY2tjaGFpbiB0aGF0IG11c3QgYmUgc3Rv cmVkIGludG8gKnNwIGF0IGVhY2ggYWxsb2NhdGlvbi4KKysKKysgICBUaGlzIGlzIHN1YnRseSBk aWZmZXJlbnQgdGhhbiB0aGUgQWRhIHByb2JpbmcgYWJvdmUgaW4gdGhhdCBpdCB0cmllcyBoYXJk CisrICAgdG8gcHJldmVudCBhdHRhY2tzIHRoYXQganVtcCB0aGUgc3RhY2sgZ3VhcmQuICBUaHVz LCBpdCBpcyBuZXZlciBhbGxvd2VkCisrICAgdG8gYWxsb2NhdGUgbW9yZSB0aGFuIFBST0JFX0lO VEVSVkFMIGJ5dGVzIG9mIHN0YWNrIHNwYWNlIHdpdGhvdXQgYQorKyAgIHN1aXRhYmxlIHByb2Jl LiAgKi8KKysKKytzdGF0aWMgY29uc3QgY2hhciAqCisrb3V0cHV0X3Byb2JlX3N0YWNrX3Jhbmdl X3N0YWNrX2NsYXNoIChydHggcmVnMSwgcnR4IHJlZzIsIHJ0eCByZWczKQorK3sKKysgIHN0YXRp YyBpbnQgbGFiZWxubyA9IDA7CisrICBjaGFyIGxvb3BfbGFiWzMyXTsKKysgIHJ0eCB4b3BzWzNd OworKworKyAgSE9TVF9XSURFX0lOVCBwcm9iZV9pbnRlcnZhbCA9IGdldF9zdGFja19jbGFzaF9w cm90ZWN0aW9uX3Byb2JlX2ludGVydmFsICgpOworKworKyAgQVNNX0dFTkVSQVRFX0lOVEVSTkFM X0xBQkVMIChsb29wX2xhYiwgIkxQU1JMIiwgbGFiZWxubysrKTsKKysKKysgIEFTTV9PVVRQVVRf SU5URVJOQUxfTEFCRUwgKGFzbV9vdXRfZmlsZSwgbG9vcF9sYWIpOworKworKyAgLyogVGhpcyBh bGxvY2F0ZXMgYW5kIHByb2Jlcy4gICovCisrICB4b3BzWzBdID0gcmVnMTsKKysgIHhvcHNbMV0g PSByZWcyOworKyAgeG9wc1syXSA9IEdFTl9JTlQgKC1wcm9iZV9pbnRlcnZhbCk7CisrICBpZiAo VEFSR0VUXzY0QklUKQorKyAgICBvdXRwdXRfYXNtX2luc24gKCJzdGR1ICUxLCUyKCUwKSIsIHhv cHMpOworKyAgZWxzZQorKyAgICBvdXRwdXRfYXNtX2luc24gKCJzdHd1ICUxLCUyKCUwKSIsIHhv cHMpOworKworKyAgLyogSnVtcCB0byBMT09QX0xBQiBpZiBURVNUX0FERFIgIT0gTEFTVF9BRERS LiAgKi8KKysgIHhvcHNbMF0gPSByZWcxOworKyAgeG9wc1sxXSA9IHJlZzM7CisrICBpZiAoVEFS R0VUXzY0QklUKQorKyAgICBvdXRwdXRfYXNtX2luc24gKCJjbXBkIDAsJTAsJTEiLCB4b3BzKTsK KysgIGVsc2UKKysgICAgb3V0cHV0X2FzbV9pbnNuICgiY21wdyAwLCUwLCUxIiwgeG9wcyk7Cisr CisrICBmcHV0cyAoIlx0Ym5lIDAsIiwgYXNtX291dF9maWxlKTsKKysgIGFzc2VtYmxlX25hbWVf cmF3IChhc21fb3V0X2ZpbGUsIGxvb3BfbGFiKTsKKysgIGZwdXRjICgnXG4nLCBhc21fb3V0X2Zp bGUpOworKworKyAgcmV0dXJuICIiOworK30KKysKKysvKiBXcmFwcGVyIGFyb3VuZCB0aGUgb3V0 cHV0X3Byb2JlX3N0YWNrX3JhbmdlIHJvdXRpbmVzLiAgKi8KKytjb25zdCBjaGFyICoKKytvdXRw dXRfcHJvYmVfc3RhY2tfcmFuZ2UgKHJ0eCByZWcxLCBydHggcmVnMiwgcnR4IHJlZzMpCisrewor KyAgaWYgKGZsYWdfc3RhY2tfY2xhc2hfcHJvdGVjdGlvbikKKysgICAgcmV0dXJuIG91dHB1dF9w cm9iZV9zdGFja19yYW5nZV9zdGFja19jbGFzaCAocmVnMSwgcmVnMiwgcmVnMyk7CisrICBlbHNl CisrICAgIHJldHVybiBvdXRwdXRfcHJvYmVfc3RhY2tfcmFuZ2VfMSAocmVnMSwgcmVnMyk7Cisr fQorKworIC8qIEFkZCB0byAnaW5zbicgYSBub3RlIHdoaWNoIGlzIFBBVFRFUk4gKElOU04pIGJ1 dCB3aXRoIFJFRyByZXBsYWNlZAorICAgIHdpdGggKHBsdXM6UCAocmVnIDEpIFZBTCksIGFuZCB3 aXRoIFJFRzIgcmVwbGFjZWQgd2l0aCBSRVBMMiBpZiBSRUcyCisgICAgaXMgbm90IE5VTEwuICBJ dCB3b3VsZCBiZSBuaWNlIGlmIGR3YXJmMm91dF9mcmFtZV9kZWJ1Z19leHByIGNvdWxkCitAQCAt Mjk5NTEsNiArMzAyNDQsMTMgQEAgcnM2MDAwX2VtaXRfcHJvbG9ndWUgKHZvaWQpCisgCSAgfQor ICAgICB9CisgCisrICAvKiBJZiB3ZSBhcmUgZW1pdHRpbmcgc3RhY2sgcHJvYmVzLCBidXQgYWxs b2NhdGUgbm8gc3RhY2ssIHRoZW4KKysgICAgIGp1c3Qgbm90ZSB0aGF0IGluIHRoZSBkdW1wIGZp bGUuICAqLworKyAgaWYgKGZsYWdfc3RhY2tfY2xhc2hfcHJvdGVjdGlvbgorKyAgICAgICYmIGR1 bXBfZmlsZQorKyAgICAgICYmICFpbmZvLT5wdXNoX3ApCisrICAgIGR1bXBfc3RhY2tfY2xhc2hf ZnJhbWVfaW5mbyAoTk9fUFJPQkVfTk9fRlJBTUUsIGZhbHNlKTsKKysKKyAgIC8qIFVwZGF0ZSBz dGFjayBhbmQgc2V0IGJhY2sgcG9pbnRlciB1bmxlc3MgdGhpcyBpcyBWLjQsCisgICAgICBmb3Ig d2hpY2ggaXQgd2FzIGRvbmUgcHJldmlvdXNseS4gICovCisgICBpZiAoIVdPUkxEX1NBVkVfUCAo aW5mbykgJiYgaW5mby0+cHVzaF9wCitkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yczYwMDAvcnM2 MDAwLm1kIGIvZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLm1kCitpbmRleCAzMzIzOTc2YTM1ZC4u ODQzMTQ4ZTk3MDMgMTAwNjQ0CistLS0gYS9nY2MvY29uZmlnL3JzNjAwMC9yczYwMDAubWQKKysr KyBiL2djYy9jb25maWcvcnM2MDAwL3JzNjAwMC5tZAorQEAgLTEwMzg2LDEwICsxMDM4NiwyMCBA QAorIDs7CisgOzsgRmlyc3QsIGFuIGluc24gdG8gYWxsb2NhdGUgbmV3IHN0YWNrIHNwYWNlIGZv ciBkeW5hbWljIHVzZSAoZS5nLiwgYWxsb2NhKS4KKyA7OyBXZSBtb3ZlIHRoZSBiYWNrLWNoYWlu IGFuZCBkZWNyZW1lbnQgdGhlIHN0YWNrIHBvaW50ZXIuCistCisrOzsKKys7OyBPcGVyYW5kMSBp cyBtb3JlIG5hdHVyYWxseSByZWdfb3Jfc2hvcnRfb3BlcmFuZC4gIEhvd2V2ZXIsIGZvciBhIGxh cmdlCisrOzsgY29uc3RhbnQgYWxsb2NhLCB1c2luZyB0aGF0IHByZWRpY2F0ZSB3aWxsIGZvcmNl IHRoZSBnZW5lcmljIGNvZGUgdG8gcHV0CisrOzsgdGhlIGNvbnN0YW50IHNpemUgaW50byBhIHJl Z2lzdGVyIGJlZm9yZSBjYWxsaW5nIHRoZSBleHBhbmRlci4KKys7OworKzs7IEFzIGEgcmVzdWx0 IHRoZSBleHBhbmRlciB3b3VsZCBub3QgaGF2ZSB0aGUgY29uc3RhbnQgc2l6ZSBpbmZvcm1hdGlv bgorKzs7IGluIHRob3NlIGNhc2VzIGFuZCB3b3VsZCBoYXZlIHRvIGdlbmVyYXRlIGxlc3MgZWZm aWNpZW50IGNvZGUuCisrOzsKKys7OyBUaHVzIHdlIGFsbG93IHJlZ19vcl9jaW50X29wZXJhbmQg aW5zdGVhZCBzbyB0aGF0IHRoZSBleHBhbmRlciBjYW4gc2VlCisrOzsgdGhlIGNvbnN0YW50IHNp emUuICBUaGUgdmFsdWUgaXMgZm9yY2VkIGludG8gYSByZWdpc3RlciBpZiBuZWNlc3NhcnkuCisr OzsKKyAoZGVmaW5lX2V4cGFuZCAiYWxsb2NhdGVfc3RhY2siCisgICBbKHNldCAobWF0Y2hfb3Bl cmFuZCAwICJncGNfcmVnX29wZXJhbmQiICIiKQorLQkobWludXMgKHJlZyAxKSAobWF0Y2hfb3Bl cmFuZCAxICJyZWdfb3Jfc2hvcnRfb3BlcmFuZCIgIiIpKSkKKysJKG1pbnVzIChyZWcgMSkgKG1h dGNoX29wZXJhbmQgMSAicmVnX29yX2NpbnRfb3BlcmFuZCIgIiIpKSkKKyAgICAoc2V0IChyZWcg MSkKKyAJKG1pbnVzIChyZWcgMSkgKG1hdGNoX2R1cCAxKSkpXQorICAgIiIKK0BAIC0xMDM5OSw2 ICsxMDQwOSwxNSBAQAorICAgcnR4IG5lZ19vcDA7CisgICBydHggaW5zbiwgcGFyLCBzZXQsIG1l bTsKKyAKKysgIC8qIEJ5IGFsbG93aW5nIHJlZ19vcl9jaW50X29wZXJhbmQgYXMgdGhlIHByZWRp Y2F0ZSB3ZSBjYW4gZ2V0CisrICAgICBiZXR0ZXIgY29kZSBmb3Igc3RhY2stY2xhc2gtcHJvdGVj dGlvbiBiZWNhdXNlIHdlIGRvIG5vdCBsb3NlCisrICAgICBzaXplIGluZm9ybWF0aW9uLiAgQnV0 IHRoZSByZXN0IG9mIHRoZSBjb2RlIGV4cGVjdHMgdGhlIG9wZXJhbmQKKysgICAgIHRvIGJlIHJl Z19vcl9zaG9ydF9vcGVyYW5kLiAgSWYgaXQgaXNuJ3QsIHRoZW4gZm9yY2UgaXQgaW50bworKyAg ICAgYSByZWdpc3Rlci4gICovCisrICBydHggb3JpZ19vcDEgPSBvcGVyYW5kc1sxXTsKKysgIGlm ICghcmVnX29yX3Nob3J0X29wZXJhbmQgKG9wZXJhbmRzWzFdLCBQbW9kZSkpCisrICAgIG9wZXJh bmRzWzFdID0gZm9yY2VfcmVnIChQbW9kZSwgb3BlcmFuZHNbMV0pOworKworICAgZW1pdF9tb3Zl X2luc24gKGNoYWluLCBzdGFja19ib3QpOworIAorICAgLyogQ2hlY2sgc3RhY2sgYm91bmRzIGlm IG5lY2Vzc2FyeS4gICovCitAQCAtMTA0MTEsNiArMTA0MzAsNTEgQEAKKyAgICAgICBlbWl0X2lu c24gKGdlbl9jb25kX3RyYXAgKExUVSwgYXZhaWxhYmxlLCBvcGVyYW5kc1sxXSwgY29uc3QwX3J0 eCkpOworICAgICB9CisgCisrICAvKiBBbGxvY2F0ZSBhbmQgcHJvYmUgaWYgcmVxdWVzdGVkLgor KyAgICAgVGhpcyBtYXkgbG9vayBzaW1pbGFyIHRvIHRoZSBsb29wIHdlIHVzZSBmb3IgcHJvbG9n dWUgYWxsb2NhdGlvbnMsCisrICAgICBidXQgaXQgaXMgY3JpdGljYWxseSBkaWZmZXJlbnQuICBG b3IgdGhlIGZvcm1lciB3ZSBrbm93IHRoZSBsb29wCisrICAgICB3aWxsIGl0ZXJhdGUsIGJ1dCBk byBub3Qga25vdyB0aGF0IGdlbmVyYWxseSBoZXJlLiAgVGhlIGZvcm1lcgorKyAgICAgdXNlcyB0 aGF0IGtub3dsZWRnZSB0byByb3RhdGUgdGhlIGxvb3AuICBDb21iaW5pbmcgdGhlbSB3b3VsZCBi ZQorKyAgICAgcG9zc2libGUgd2l0aCBzb21lIHBlcmZvcm1hbmNlIGNvc3QuICAqLworKyAgaWYg KGZsYWdfc3RhY2tfY2xhc2hfcHJvdGVjdGlvbikKKysgICAgeworKyAgICAgIHJ0eCByb3VuZGVk X3NpemUsIGxhc3RfYWRkciwgcmVzaWR1YWw7CisrICAgICAgSE9TVF9XSURFX0lOVCBwcm9iZV9p bnRlcnZhbDsKKysgICAgICBjb21wdXRlX3N0YWNrX2NsYXNoX3Byb3RlY3Rpb25fbG9vcF9kYXRh ICgmcm91bmRlZF9zaXplLCAmbGFzdF9hZGRyLAorKwkJCQkJCSZyZXNpZHVhbCwgJnByb2JlX2lu dGVydmFsLAorKwkJCQkJCW9yaWdfb3AxKTsKKysgICAgICAKKysgICAgICAvKiBXZSBkbyBvY2Nh c2lvbmFsbHkgZ2V0IGluIGhlcmUgd2l0aCBjb25zdGFudCBzaXplcywgd2UgbWlnaHQKKysJIGFz IHdlbGwgZG8gYSByZWFzb25hYmxlIGpvYiB3aGVuIHdlIG9idmlvdXNseSBjYW4uICAqLworKyAg ICAgIGlmIChyb3VuZGVkX3NpemUgIT0gY29uc3QwX3J0eCkKKysJeworKwkgIHJ0eCBsb29wX2xh YiwgZW5kX2xvb3A7CisrCSAgYm9vbCByb3RhdGVkID0gQ09OU1RfSU5UX1AgKHJvdW5kZWRfc2l6 ZSk7CisrCisrCSAgZW1pdF9zdGFja19jbGFzaF9wcm90ZWN0aW9uX3Byb2JlX2xvb3Bfc3RhcnQg KCZsb29wX2xhYiwgJmVuZF9sb29wLAorKwkJCQkJCQlsYXN0X2FkZHIsIHJvdGF0ZWQpOworKwor KwkgIGlmIChQbW9kZSA9PSBTSW1vZGUpCisrCSAgICBlbWl0X2luc24gKGdlbl9tb3ZzaV91cGRh dGVfc3RhY2sgKHN0YWNrX3BvaW50ZXJfcnR4LAorKwkJCQkJICAgICAgIHN0YWNrX3BvaW50ZXJf cnR4LAorKwkJCQkJICAgICAgIEdFTl9JTlQgKC1wcm9iZV9pbnRlcnZhbCksCisrCQkJCQkgICAg ICAgY2hhaW4pKTsKKysJICBlbHNlCisrCSAgICBlbWl0X2luc24gKGdlbl9tb3ZkaV9kaV91cGRh dGVfc3RhY2sgKHN0YWNrX3BvaW50ZXJfcnR4LAorKwkJCQkJICAgICAgICAgIHN0YWNrX3BvaW50 ZXJfcnR4LAorKwkJCQkJICAgICAgICAgIEdFTl9JTlQgKC1wcm9iZV9pbnRlcnZhbCksCisrCQkJ CQkgICAgICAgICAgY2hhaW4pKTsKKysJICBlbWl0X3N0YWNrX2NsYXNoX3Byb3RlY3Rpb25fcHJv YmVfbG9vcF9lbmQgKGxvb3BfbGFiLCBlbmRfbG9vcCwKKysJCQkJCQkgICAgICBsYXN0X2FkZHIs IHJvdGF0ZWQpOworKwl9CisrCisrICAgICAgLyogTm93IGhhbmRsZSByZXNpZHVhbHMuICBXZSBq dXN0IGhhdmUgdG8gc2V0IG9wZXJhbmRzWzFdIGNvcnJlY3RseQorKwkgYW5kIGxldCB0aGUgcmVz dCBvZiB0aGUgZXhwYW5kZXIgcnVuLiAgKi8KKysgICAgICBvcGVyYW5kc1sxXSA9IHJlc2lkdWFs OworKyAgICAgIGlmICghQ09OU1RfSU5UX1AgKHJlc2lkdWFsKSkKKysJb3BlcmFuZHNbMV0gPSBm b3JjZV9yZWcgKFBtb2RlLCBvcGVyYW5kc1sxXSk7CisrICAgIH0KKysKKyAgIGlmIChHRVRfQ09E RSAob3BlcmFuZHNbMV0pICE9IENPTlNUX0lOVAorICAgICAgIHx8IElOVFZBTCAob3BlcmFuZHNb MV0pIDwgLTMyNzY3CisgICAgICAgfHwgSU5UVkFMIChvcGVyYW5kc1sxXSkgPiAzMjc2OCkKK0BA IC0xMTU0OSwxMiArMTE2MTMsMTMgQEAKKyAgICAoc2V0X2F0dHIgImxlbmd0aCIgIjQiKV0pCisg CisgKGRlZmluZV9pbnNuICJwcm9iZV9zdGFja19yYW5nZTxQOm1vZGU+IgorLSAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6UCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQorKyAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6UCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPSZyIikKKyAJKHVuc3BlY192b2xhdGls ZTpQIFsobWF0Y2hfb3BlcmFuZDpQIDEgInJlZ2lzdGVyX29wZXJhbmQiICIwIikKKy0JCQkgICAg KG1hdGNoX29wZXJhbmQ6UCAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpXQorKwkJCSAgICAobWF0 Y2hfb3BlcmFuZDpQIDIgInJlZ2lzdGVyX29wZXJhbmQiICJyIikKKysJCQkgICAgKG1hdGNoX29w ZXJhbmQ6UCAzICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpXQorIAkJCSAgIFVOU1BFQ1ZfUFJPQkVf U1RBQ0tfUkFOR0UpKV0KKyAgICIiCistICAiKiByZXR1cm4gb3V0cHV0X3Byb2JlX3N0YWNrX3Jh bmdlIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMl0pOyIKKysgICIqIHJldHVybiBvdXRwdXRfcHJv YmVfc3RhY2tfcmFuZ2UgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1syXSwgb3BlcmFuZHNbM10pOyIK KyAgIFsoc2V0X2F0dHIgInR5cGUiICJ0aHJlZSIpXSkKKyAMCisgOzsgQ29tcGFyZSBpbnNucyBh cmUgbmV4dC4gIE5vdGUgdGhhdCB0aGUgUlMvNjAwMCBoYXMgdHdvIHR5cGVzIG9mIGNvbXBhcmVz LAorZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvbGliL3RhcmdldC1zdXBwb3J0cy5leHAgYi9n Y2MvdGVzdHN1aXRlL2xpYi90YXJnZXQtc3VwcG9ydHMuZXhwCitpbmRleCBjYjU4YTJiZTM1Zi4u MDJlYjIwNjYzOTMgMTAwNjQ0CistLS0gYS9nY2MvdGVzdHN1aXRlL2xpYi90YXJnZXQtc3VwcG9y dHMuZXhwCisrKysgYi9nY2MvdGVzdHN1aXRlL2xpYi90YXJnZXQtc3VwcG9ydHMuZXhwCitAQCAt ODM4NSwxMiArODM4NSwxMiBAQCBwcm9jIGNoZWNrX2VmZmVjdGl2ZV90YXJnZXRfYXJtX2NvcHJv YzRfb2sgeyB9IHsKKyBwcm9jIGNoZWNrX2VmZmVjdGl2ZV90YXJnZXRfc3VwcG9ydHNfc3RhY2tf Y2xhc2hfcHJvdGVjdGlvbiB7IH0geworIAorICAgICMgVGVtcG9yYXJ5IHVudGlsIHRoZSB0YXJn ZXQgYml0cyBhcmUgZnVsbHkgQUNLJ2QuCistIyAgaWYgeyBbaXN0YXJnZXQgYWFyY2gqLSotKl0K Ky0jICAgICAgIHx8IFtpc3RhcmdldCBwb3dlcnBjKi0qLSpdIHx8IFtpc3RhcmdldCByczYwMDAq LSotKl0gfSB7CisrIyAgaWYgeyBbaXN0YXJnZXQgYWFyY2gqLSotKl0gfSB7CisgIwlyZXR1cm4g MQorICMgIH0KKyAKKyAgICAgaWYgeyBbaXN0YXJnZXQgeDg2XzY0LSotKl0gfHwgW2lzdGFyZ2V0 IGk/ODYtKi0qXSAKKysJICB8fCBbaXN0YXJnZXQgcG93ZXJwYyotKi0qXSB8fCBbaXN0YXJnZXQg cnM2MDAwKi0qLSpdCisgCSAgfHwgW2lzdGFyZ2V0IHMzOTAqLSotKl0gfSB7CisgCXJldHVybiAx CisgICAgIH0KCmRpZmYgLS1naXQgYS9nY2M3LXJoMTUxMjUyOS0xMS5wYXRjaCBiL2djYzctcmgx NTEyNTI5LTExLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkOWM3 NDYKLS0tIC9kZXYvbnVsbAorKysgYi9nY2M3LXJoMTUxMjUyOS0xMS5wYXRjaApAQCAtMCwwICsx LDI4IEBACitjb21taXQgZWVjYmU3YWRhOWE4YWI5MTNlNzc5YTI3YzBlOTBlYzczNmVlZGM3OAor QXV0aG9yOiBsYXcgPGxhd0AxMzhiYzc1ZC0wZDA0LTA0MTAtOTYxZi04MmVlNzJiMDU0YTQ+CitE YXRlOiAgIEZyaSBOb3YgMyAxNzoxNDoyMyAyMDE3ICswMDAwCisKKyAgICAgICAgICAgICogY29u ZmlnL2kzODYvaTM4Ni5jIChpeDg2X2V4cGFuZF9wcm9sb2d1ZSk6IFRpZ2h0ZW4gYXNzZXJ0Cisg ICAgICAgICAgICBmb3IgaW50X3JlZ2lzdGVyc19zYXZlZC4KKyAgICAKKyAgICBnaXQtc3ZuLWlk OiBzdm4rc3NoOi8vZ2NjLmdudS5vcmcvc3ZuL2djYy90cnVua0AyNTQzODYgMTM4YmM3NWQtMGQw NC0wNDEwLTk2MWYtODJlZTcyYjA1NGE0CisKK2RpZmYgLS1naXQgYS9nY2MvY29uZmlnL2kzODYv aTM4Ni5jIGIvZ2NjL2NvbmZpZy9pMzg2L2kzODYuYworaW5kZXggMDg2ODQ4YjJjNzMuLmZkNzRm MWY2YzBjIDEwMDY0NAorLS0tIGEvZ2NjL2NvbmZpZy9pMzg2L2kzODYuYworKysrIGIvZ2NjL2Nv bmZpZy9pMzg2L2kzODYuYworQEAgLTE0MTcyLDggKzE0MTcyLDEyIEBAIGl4ODZfZXhwYW5kX3By b2xvZ3VlICh2b2lkKQorICAgICAgICYmIChmbGFnX3N0YWNrX2NoZWNrID09IFNUQVRJQ19CVUlM VElOX1NUQUNLX0NIRUNLCisgCSAgfHwgZmxhZ19zdGFja19jbGFzaF9wcm90ZWN0aW9uKSkKKyAg ICAgeworLSAgICAgIC8qIFdlIGV4cGVjdCB0aGUgcmVnaXN0ZXJzIHRvIGJlIHNhdmVkIHdoZW4g cHJvYmVzIGFyZSB1c2VkLiAgKi8KKy0gICAgICBnY2NfYXNzZXJ0IChpbnRfcmVnaXN0ZXJzX3Nh dmVkKTsKKysgICAgICAvKiBUaGlzIGFzc2VydCB3YW50cyB0byB2ZXJpZnkgdGhhdCBpbnRlZ2Vy IHJlZ2lzdGVycyB3ZXJlIHNhdmVkCisrCSBwcmlvciB0byBwcm9iaW5nLiAgVGhpcyBpcyBuZWNl c3Nhcnkgd2hlbiBwcm9iaW5nIG1heSBiZSBpbXBsZW1lbnRlZAorKwkgYXMgYSBmdW5jdGlvbiBj YWxsIChXaW5kb3dzKS4gIEl0IGlzIG5vdCBuZWNlc3NhcnkgZm9yIHN0YWNrIGNsYXNoCisrCSBw cm90ZWN0aW9uIHByb2JpbmcuICAqLworKyAgICAgIGlmICghZmxhZ19zdGFja19jbGFzaF9wcm90 ZWN0aW9uKQorKwlnY2NfYXNzZXJ0IChpbnRfcmVnaXN0ZXJzX3NhdmVkKTsKKyAKKyAgICAgICBp ZiAoZmxhZ19zdGFja19jbGFzaF9wcm90ZWN0aW9uKQorIAl7CgpkaWZmIC0tZ2l0IGEvZ2NjNy1y aDE1MTI1MjktMTIucGF0Y2ggYi9nY2M3LXJoMTUxMjUyOS0xMi5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZjI3ODZlCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjNy1y aDE1MTI1MjktMTIucGF0Y2gKQEAgLTAsMCArMSw4MSBAQAorY29tbWl0IDc1MTc5Mjc1ZWNjMzU3 MjRhMDU4Njc2MTk5MTg4ZTBkMTNlNjUwNTQKK0F1dGhvcjogbGF3IDxsYXdAMTM4YmM3NWQtMGQw NC0wNDEwLTk2MWYtODJlZTcyYjA1NGE0PgorRGF0ZTogICBGcmkgTm92IDMgMjA6MzA6NTMgMjAx NyArMDAwMAorCisgICAgICAgICAgICAqIGNvbmZpZy9pMzg2L2kzODYuYyAoaXg4Nl9lbWl0X3Jl c3RvcmVfcmVnX3VzaW5nX3BvcCk6IFByb3RvdHlwZS4KKyAgICAgICAgICAgIChpeDg2X2FkanVz dF9zdGFja19hbmRfcHJvYmVfc3RhY2tfY2xhc2gpOiBVc2UgYSBwdXNoL3BvcCBzZXF1ZW5jZQor ICAgICAgICAgICAgdG8gcHJvYmUgYXQgdGhlIHN0YXJ0IG9mIGEgbm9yZXR1cm4gZnVuY3Rpb24u CisgICAgCisgICAgICAgICAgICAqIGdjYy50YXJnZXQvaTM4Ni9zdGFjay1jaGVjay0xMi5jOiBO ZXcgdGVzdC4KKyAgICAKKyAgICBnaXQtc3ZuLWlkOiBzdm4rc3NoOi8vZ2NjLmdudS5vcmcvc3Zu L2djYy90cnVua0AyNTQzOTYgMTM4YmM3NWQtMGQwNC0wNDEwLTk2MWYtODJlZTcyYjA1NGE0CisK K2RpZmYgLS1naXQgYS9nY2MvY29uZmlnL2kzODYvaTM4Ni5jIGIvZ2NjL2NvbmZpZy9pMzg2L2kz ODYuYworaW5kZXggZmQ3NGYxZjZjMGMuLjNjODI4YmE0OTJkIDEwMDY0NAorLS0tIGEvZ2NjL2Nv bmZpZy9pMzg2L2kzODYuYworKysrIGIvZ2NjL2NvbmZpZy9pMzg2L2kzODYuYworQEAgLTk2LDYg Kzk2LDcgQEAgc3RhdGljIHJ0eCBsZWdpdGltaXplX2RsbGltcG9ydF9zeW1ib2wgKHJ0eCwgYm9v bCk7Cisgc3RhdGljIHJ0eCBsZWdpdGltaXplX3BlX2NvZmZfZXh0ZXJuX2RlY2wgKHJ0eCwgYm9v bCk7Cisgc3RhdGljIHJ0eCBsZWdpdGltaXplX3BlX2NvZmZfc3ltYm9sIChydHgsIGJvb2wpOwor IHN0YXRpYyB2b2lkIGl4ODZfcHJpbnRfb3BlcmFuZF9hZGRyZXNzX2FzIChGSUxFICosIHJ0eCwg YWRkcl9zcGFjZV90LCBib29sKTsKKytzdGF0aWMgdm9pZCBpeDg2X2VtaXRfcmVzdG9yZV9yZWdf dXNpbmdfcG9wIChydHgpOworIAorICNpZm5kZWYgQ0hFQ0tfU1RBQ0tfTElNSVQKKyAjZGVmaW5l IENIRUNLX1NUQUNLX0xJTUlUICgtMSkKK0BAIC0xMzI4NywxMCArMTMyODgsMTMgQEAgaXg4Nl9h ZGp1c3Rfc3RhY2tfYW5kX3Byb2JlX3N0YWNrX2NsYXNoIChjb25zdCBIT1NUX1dJREVfSU5UIHNp emUpCisgICAgICBubyBwcm9iZXMgYXJlIG5lZWRlZC4gICovCisgICBpZiAoIXNpemUpCisgICAg IHsKKysgICAgICBzdHJ1Y3QgaXg4Nl9mcmFtZSBmcmFtZTsKKysgICAgICBpeDg2X2NvbXB1dGVf ZnJhbWVfbGF5b3V0ICgmZnJhbWUpOworKworICAgICAgIC8qIEhvd2V2ZXIsIHRoZSBhbGxvY2F0 aW9uIG9mIHNwYWNlIHZpYSBwdXNoZXMgZm9yIHJlZ2lzdGVyCisgCSBzYXZlcyBjb3VsZCBiZSB2 aWV3ZWQgYXMgYWxsb2NhdGluZyBzcGFjZSwgYnV0IHdpdGhvdXQgdGhlCisgCSBuZWVkIHRvIHBy b2JlLiAgKi8KKy0gICAgICBpZiAobS0+ZnJhbWUubnJlZ3MgfHwgbS0+ZnJhbWUubnNzZXJlZ3Mg fHwgZnJhbWVfcG9pbnRlcl9uZWVkZWQpCisrICAgICAgaWYgKGZyYW1lLm5yZWdzIHx8IGZyYW1l Lm5zc2VyZWdzIHx8IGZyYW1lX3BvaW50ZXJfbmVlZGVkKQorICAgICAgICAgZHVtcF9zdGFja19j bGFzaF9mcmFtZV9pbmZvIChOT19QUk9CRV9TTUFMTF9GUkFNRSwgdHJ1ZSk7CisgICAgICAgZWxz ZQorIAlkdW1wX3N0YWNrX2NsYXNoX2ZyYW1lX2luZm8gKE5PX1BST0JFX05PX0ZSQU1FLCBmYWxz ZSk7CitAQCAtMTMzMTIsOCArMTMzMTYsMTQgQEAgaXg4Nl9hZGp1c3Rfc3RhY2tfYW5kX3Byb2Jl X3N0YWNrX2NsYXNoIChjb25zdCBIT1NUX1dJREVfSU5UIHNpemUpCisgICAgICB3ZSBqdXN0IHBy b2JlIHdoZW4gd2UgY3Jvc3MgUFJPQkVfSU5URVJWQUwuICAqLworICAgaWYgKFRSRUVfVEhJU19W T0xBVElMRSAoY2Z1bi0+ZGVjbCkpCisgICAgIHsKKy0gICAgICBlbWl0X3N0YWNrX3Byb2JlIChw bHVzX2NvbnN0YW50IChQbW9kZSwgc3RhY2tfcG9pbnRlcl9ydHgsCistCQkJCSAgICAgICAtR0VU X01PREVfU0laRSAod29yZF9tb2RlKSkpOworKyAgICAgIC8qIFdlIGNhbiBzYWZlbHkgdXNlIGFu eSByZWdpc3RlciBoZXJlIHNpbmNlIHdlJ3JlIGp1c3QgZ29pbmcgdG8gcHVzaAorKwkgaXRzIHZh bHVlIGFuZCBpbW1lZGlhdGVseSBwb3AgaXQgYmFjay4gIEJ1dCB3ZSBkbyB0cnkgYW5kIGF2b2lk CisrCSBhcmd1bWVudCBwYXNzaW5nIHJlZ2lzdGVycyBzbyBhcyBub3QgdG8gaW50cm9kdWNlIGRl cGVuZGVuY2llcyBpbgorKwkgdGhlIHBpcGVsaW5lLiAgRm9yIDMyIGJpdCB3ZSB1c2UgJWVzaSBh bmQgZm9yIDY0IGJpdCB3ZSB1c2UgJXJheC4gICovCisrICAgICAgcnR4IGR1bW15X3JlZyA9IGdl bl9ydHhfUkVHICh3b3JkX21vZGUsIFRBUkdFVF82NEJJVCA/IEFYX1JFRyA6IFNJX1JFRyk7Cisr ICAgICAgcnR4X2luc24gKmluc24gPSBlbWl0X2luc24gKGdlbl9wdXNoIChkdW1teV9yZWcpKTsK KysgICAgICBSVFhfRlJBTUVfUkVMQVRFRF9QIChpbnNuKSA9IDE7CisrICAgICAgaXg4Nl9lbWl0 X3Jlc3RvcmVfcmVnX3VzaW5nX3BvcCAoZHVtbXlfcmVnKTsKKyAgICAgICBlbWl0X2luc24gKGdl bl9ibG9ja2FnZSAoKSk7CisgICAgIH0KKyAKK2RpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvaTM4Ni9zdGFjay1jaGVjay0xMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2kzODYvc3RhY2stY2hlY2stMTIuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAw MDAwMDAwLi5jYjY5YmIwODA4NgorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L2kzODYvc3RhY2stY2hlY2stMTIuYworQEAgLTAsMCArMSwxOSBAQAorKy8qIHsg ZGctZG8gY29tcGlsZSB9ICovCisrLyogeyBkZy1vcHRpb25zICItTzIgLWZzdGFjay1jbGFzaC1w cm90ZWN0aW9uIC1tdHVuZT1nZW5lcmljIiB9ICovCisrLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2 ZS10YXJnZXQgc3VwcG9ydHNfc3RhY2tfY2xhc2hfcHJvdGVjdGlvbiB9ICovCisrCisrX19hdHRy aWJ1dGVfXyAoKG5vcmV0dXJuKSkgdm9pZCBleGl0IChpbnQpOworKworK19fYXR0cmlidXRlX18g KChub3JldHVybikpIHZvaWQKKytmICh2b2lkKQorK3sKKysgIGFzbSB2b2xhdGlsZSAoIm5vcCIg Ojo6ICJlZGkiKTsKKysgIGV4aXQgKDEpOworK30KKysKKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItbm90ICJvclxbcWxcXSIgfSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyICJwdXNobAklZXNpIiB7IHRhcmdldCBpYTMyIH0gfSB9ICovCisrLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyICJwb3BsCSVlc2kiIHsgdGFyZ2V0IGlhMzIgfSB9IH0qLworKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAicHVzaHEJJXJheCIgeyB0YXJnZXQgeyAhIGlh MzIgfSB9IH0gfSAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAicG9wcQklcmF4 IiB7IHRhcmdldCB7ICEgaWEzMiB9IH0gfSB9Ki8KKysKCmRpZmYgLS1naXQgYS9nY2M3LXJoMTUx MjUyOS0xMy5wYXRjaCBiL2djYzctcmgxNTEyNTI5LTEzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjgyMjE2MjIKLS0tIC9kZXYvbnVsbAorKysgYi9nY2M3LXJoMTUx MjUyOS0xMy5wYXRjaApAQCAtMCwwICsxLDIyOCBAQAorY29tbWl0IDJmOTdhNzg0NGYyMjExYmJk NGZkODY5YzE4ZTI2ODAxYmI3OTVhYTkKK0F1dGhvcjogbGF3IDxsYXdAMTM4YmM3NWQtMGQwNC0w NDEwLTk2MWYtODJlZTcyYjA1NGE0PgorRGF0ZTogICBNb24gTm92IDYgMTU6NTE6MTYgMjAxNyAr MDAwMAorCisgICAgICAgICAgICBQUiB0YXJnZXQvODI3ODgKKyAgICAgICAgICAgICogY29uZmln L2kzODYvaTM4Ni5jIChQUk9CRV9JTlRFUlZBTCk6IFJlbW92ZS4KKyAgICAgICAgICAgIChnZXRf cHJvYmVfaW50ZXJ2YWwpOiBOZXcgZnVuY3Rpb25zLgorICAgICAgICAgICAgKGl4ODZfYWRqdXN0 X3N0YWNrX2FuZF9wcm9iZV9zdGFja19jbGFzaCk6IFVzZSBnZXRfcHJvYmVfaW50ZXJ2YWwuCisg ICAgICAgICAgICAoaXg4Nl9hZGp1c3Rfc3RhY2tfYW5kX3Byb2JlKTogTGlrZXdpc2UuCisgICAg ICAgICAgICAob3V0cHV0X2FkanVzdF9zdGFja19hbmRfcHJvYmUpOiBMaWtld2lzZS4KKyAgICAg ICAgICAgIChpeDg2X2VtaXRfcHJvYmVfc3RhY2tfcmFuZ2UpOiBMaWtld2lzZS4KKyAgICAgICAg ICAgIChpeDg2X2V4cGFuZF9wcm9sb2d1ZSk6IExpa2V3aXNlLgorICAgIAorICAgICAgICAgICAg UFIgdGFyZ2V0LzgyNzg4CisgICAgICAgICAgICAqIGdjYy5kZy9wcjgyNzg4LmM6IE5ldyB0ZXN0 LgorICAgIAorICAgIGdpdC1zdm4taWQ6IHN2bitzc2g6Ly9nY2MuZ251Lm9yZy9zdm4vZ2NjL3Ry dW5rQDI1NDQ1NiAxMzhiYzc1ZC0wZDA0LTA0MTAtOTYxZi04MmVlNzJiMDU0YTQKKworZGlmZiAt LWdpdCBhL2djYy9jb25maWcvaTM4Ni9pMzg2LmMgYi9nY2MvY29uZmlnL2kzODYvaTM4Ni5jCitp bmRleCBhY2QxOTJhOThjNS4uYTkwNGFmZTgyOGQgMTAwNjQ0CistLS0gYS9nY2MvY29uZmlnL2kz ODYvaTM4Ni5jCisrKysgYi9nY2MvY29uZmlnL2kzODYvaTM4Ni5jCitAQCAtMTMyNzAsNyArMTMy NzAsMTcgQEAgcmVsZWFzZV9zY3JhdGNoX3JlZ2lzdGVyX29uX2VudHJ5IChzdHJ1Y3Qgc2NyYXRj aF9yZWcgKnNyKQorICAgICB9CisgfQorIAorLSNkZWZpbmUgUFJPQkVfSU5URVJWQUwgKDEgPDwg U1RBQ0tfQ0hFQ0tfUFJPQkVfSU5URVJWQUxfRVhQKQorKy8qIFJldHVybiB0aGUgcHJvYmluZyBp bnRlcnZhbCBmb3IgLWZzdGFjay1jbGFzaC1wcm90ZWN0aW9uLiAgKi8KKysKKytzdGF0aWMgSE9T VF9XSURFX0lOVAorK2dldF9wcm9iZV9pbnRlcnZhbCAodm9pZCkKKyt7CisrICBpZiAoZmxhZ19z dGFja19jbGFzaF9wcm90ZWN0aW9uKQorKyAgICByZXR1cm4gKEhPU1RfV0lERV9JTlRfMVUKKysJ ICAgIDw8IFBBUkFNX1ZBTFVFIChQQVJBTV9TVEFDS19DTEFTSF9QUk9URUNUSU9OX1BST0JFX0lO VEVSVkFMKSk7CisrICBlbHNlCisrICAgIHJldHVybiAoSE9TVF9XSURFX0lOVF8xVSA8PCBTVEFD S19DSEVDS19QUk9CRV9JTlRFUlZBTF9FWFApOworK30KKyAKKyAvKiBFbWl0IGNvZGUgdG8gYWRq dXN0IHRoZSBzdGFjayBwb2ludGVyIGJ5IFNJWkUgYnl0ZXMgd2hpbGUgcHJvYmluZyBpdC4KKyAK K0BAIC0xMzMzOSw4ICsxMzM0OSw3IEBAIGl4ODZfYWRqdXN0X3N0YWNrX2FuZF9wcm9iZV9zdGFj a19jbGFzaCAoY29uc3QgSE9TVF9XSURFX0lOVCBzaXplKQorICAgLyogV2UncmUgYWxsb2NhdGlu ZyBhIGxhcmdlIGVub3VnaCBzdGFjayBmcmFtZSB0aGF0IHdlIG5lZWQgdG8KKyAgICAgIGVtaXQg cHJvYmVzLiAgRWl0aGVyIGVtaXQgdGhlbSBpbmxpbmUgb3IgaW4gYSBsb29wIGRlcGVuZGluZwor ICAgICAgb24gdGhlIHNpemUuICAqLworLSAgSE9TVF9XSURFX0lOVCBwcm9iZV9pbnRlcnZhbAor LSAgICA9IDEgPDwgUEFSQU1fVkFMVUUgKFBBUkFNX1NUQUNLX0NMQVNIX1BST1RFQ1RJT05fUFJP QkVfSU5URVJWQUwpOworKyAgSE9TVF9XSURFX0lOVCBwcm9iZV9pbnRlcnZhbCA9IGdldF9wcm9i ZV9pbnRlcnZhbCAoKTsKKyAgIGlmIChzaXplIDw9IDQgKiBwcm9iZV9pbnRlcnZhbCkKKyAgICAg eworICAgICAgIEhPU1RfV0lERV9JTlQgaTsKK0BAIC0xMzM0OSw3ICsxMzM1OCw3IEBAIGl4ODZf YWRqdXN0X3N0YWNrX2FuZF9wcm9iZV9zdGFja19jbGFzaCAoY29uc3QgSE9TVF9XSURFX0lOVCBz aXplKQorIAkgIC8qIEFsbG9jYXRlIFBST0JFX0lOVEVSVkFMIGJ5dGVzLiAgKi8KKyAJICBydHgg aW5zbgorIAkgICAgPSBwcm9fZXBpbG9ndWVfYWRqdXN0X3N0YWNrIChzdGFja19wb2ludGVyX3J0 eCwgc3RhY2tfcG9pbnRlcl9ydHgsCistCQkJCQkgR0VOX0lOVCAoLVBST0JFX0lOVEVSVkFMKSwg LTEsCisrCQkJCQkgR0VOX0lOVCAoLXByb2JlX2ludGVydmFsKSwgLTEsCisgCQkJCQkgbS0+ZnMu Y2ZhX3JlZyA9PSBzdGFja19wb2ludGVyX3J0eCk7CisgCSAgYWRkX3JlZ19ub3RlIChpbnNuLCBS RUdfU1RBQ0tfQ0hFQ0ssIGNvbnN0MF9ydHgpOworIAorQEAgLTEzNDQyLDcgKzEzNDUxLDcgQEAg aXg4Nl9hZGp1c3Rfc3RhY2tfYW5kX3Byb2JlIChjb25zdCBIT1NUX1dJREVfSU5UIHNpemUpCisg ICAgICB0aGF0J3MgdGhlIGVhc3kgY2FzZS4gIFRoZSBydW4tdGltZSBsb29wIGlzIG1hZGUgdXAg b2YgOSBpbnNucyBpbiB0aGUKKyAgICAgIGdlbmVyaWMgY2FzZSB3aGlsZSB0aGUgY29tcGlsZS10 aW1lIGxvb3AgaXMgbWFkZSB1cCBvZiAzKzIqKG4tMSkgaW5zbnMKKyAgICAgIGZvciBuICMgb2Yg aW50ZXJ2YWxzLiAgKi8KKy0gIGlmIChzaXplIDw9IDQgKiBQUk9CRV9JTlRFUlZBTCkKKysgIGlm IChzaXplIDw9IDQgKiBnZXRfcHJvYmVfaW50ZXJ2YWwgKCkpCisgICAgIHsKKyAgICAgICBIT1NU X1dJREVfSU5UIGksIGFkanVzdDsKKyAgICAgICBib29sIGZpcnN0X3Byb2JlID0gdHJ1ZTsKK0BA IC0xMzQ1MSwxNSArMTM0NjAsMTUgQEAgaXg4Nl9hZGp1c3Rfc3RhY2tfYW5kX3Byb2JlIChjb25z dCBIT1NUX1dJREVfSU5UIHNpemUpCisgCSB2YWx1ZXMgb2YgTiBmcm9tIDEgdW50aWwgaXQgZXhj ZWVkcyBTSVpFLiAgSWYgb25seSBvbmUgcHJvYmUgaXMKKyAJIG5lZWRlZCwgdGhpcyB3aWxsIG5v dCBnZW5lcmF0ZSBhbnkgY29kZS4gIFRoZW4gYWRqdXN0IGFuZCBwcm9iZQorIAkgdG8gUFJPQkVf SU5URVJWQUwgKyBTSVpFLiAgKi8KKy0gICAgICBmb3IgKGkgPSBQUk9CRV9JTlRFUlZBTDsgaSA8 IHNpemU7IGkgKz0gUFJPQkVfSU5URVJWQUwpCisrICAgICAgZm9yIChpID0gZ2V0X3Byb2JlX2lu dGVydmFsICgpOyBpIDwgc2l6ZTsgaSArPSBnZXRfcHJvYmVfaW50ZXJ2YWwgKCkpCisgCXsKKyAJ ICBpZiAoZmlyc3RfcHJvYmUpCisgCSAgICB7CistCSAgICAgIGFkanVzdCA9IDIgKiBQUk9CRV9J TlRFUlZBTCArIGRvcGU7CisrCSAgICAgIGFkanVzdCA9IDIgKiBnZXRfcHJvYmVfaW50ZXJ2YWwg KCkgKyBkb3BlOworIAkgICAgICBmaXJzdF9wcm9iZSA9IGZhbHNlOworIAkgICAgfQorIAkgIGVs c2UKKy0JICAgIGFkanVzdCA9IFBST0JFX0lOVEVSVkFMOworKwkgICAgYWRqdXN0ID0gZ2V0X3By b2JlX2ludGVydmFsICgpOworIAorIAkgIGVtaXRfaW5zbiAoZ2VuX3J0eF9TRVQgKHN0YWNrX3Bv aW50ZXJfcnR4LAorIAkJCQkgIHBsdXNfY29uc3RhbnQgKFBtb2RlLCBzdGFja19wb2ludGVyX3J0 eCwKK0BAIC0xMzQ2OCw5ICsxMzQ3Nyw5IEBAIGl4ODZfYWRqdXN0X3N0YWNrX2FuZF9wcm9iZSAo Y29uc3QgSE9TVF9XSURFX0lOVCBzaXplKQorIAl9CisgCisgICAgICAgaWYgKGZpcnN0X3Byb2Jl KQorLQlhZGp1c3QgPSBzaXplICsgUFJPQkVfSU5URVJWQUwgKyBkb3BlOworKwlhZGp1c3QgPSBz aXplICsgZ2V0X3Byb2JlX2ludGVydmFsICgpICsgZG9wZTsKKyAgICAgICBlbHNlCistICAgICAg ICBhZGp1c3QgPSBzaXplICsgUFJPQkVfSU5URVJWQUwgLSBpOworKyAgICAgICAgYWRqdXN0ID0g c2l6ZSArIGdldF9wcm9iZV9pbnRlcnZhbCAoKSAtIGk7CisgCisgICAgICAgZW1pdF9pbnNuIChn ZW5fcnR4X1NFVCAoc3RhY2tfcG9pbnRlcl9ydHgsCisgCQkJICAgICAgcGx1c19jb25zdGFudCAo UG1vZGUsIHN0YWNrX3BvaW50ZXJfcnR4LAorQEAgLTEzNDgwLDcgKzEzNDg5LDggQEAgaXg4Nl9h ZGp1c3Rfc3RhY2tfYW5kX3Byb2JlIChjb25zdCBIT1NUX1dJREVfSU5UIHNpemUpCisgICAgICAg LyogQWRqdXN0IGJhY2sgdG8gYWNjb3VudCBmb3IgdGhlIGFkZGl0aW9uYWwgZmlyc3QgaW50ZXJ2 YWwuICAqLworICAgICAgIGxhc3QgPSBlbWl0X2luc24gKGdlbl9ydHhfU0VUIChzdGFja19wb2lu dGVyX3J0eCwKKyAJCQkJICAgICBwbHVzX2NvbnN0YW50IChQbW9kZSwgc3RhY2tfcG9pbnRlcl9y dHgsCistCQkJCQkJICAgIFBST0JFX0lOVEVSVkFMICsgZG9wZSkpKTsKKysJCQkJCQkgICAgKGdl dF9wcm9iZV9pbnRlcnZhbCAoKQorKwkJCQkJCSAgICAgKyBkb3BlKSkpKTsKKyAgICAgfQorIAor ICAgLyogT3RoZXJ3aXNlLCBkbyB0aGUgc2FtZSBhcyBhYm92ZSwgYnV0IGluIGEgbG9vcC4gIE5v dGUgdGhhdCB3ZSBtdXN0IGJlCitAQCAtMTM0OTgsNyArMTM1MDgsNyBAQCBpeDg2X2FkanVzdF9z dGFja19hbmRfcHJvYmUgKGNvbnN0IEhPU1RfV0lERV9JTlQgc2l6ZSkKKyAKKyAgICAgICAvKiBT dGVwIDE6IHJvdW5kIFNJWkUgdG8gdGhlIHByZXZpb3VzIG11bHRpcGxlIG9mIHRoZSBpbnRlcnZh bC4gICovCisgCistICAgICAgcm91bmRlZF9zaXplID0gUk9VTkRfRE9XTiAoc2l6ZSwgUFJPQkVf SU5URVJWQUwpOworKyAgICAgIHJvdW5kZWRfc2l6ZSA9IFJPVU5EX0RPV04gKHNpemUsIGdldF9w cm9iZV9pbnRlcnZhbCAoKSk7CisgCisgCisgICAgICAgLyogU3RlcCAyOiBjb21wdXRlIGluaXRp YWwgYW5kIGZpbmFsIHZhbHVlIG9mIHRoZSBsb29wIGNvdW50ZXIuICAqLworQEAgLTEzNTA2LDcg KzEzNTE2LDcgQEAgaXg4Nl9hZGp1c3Rfc3RhY2tfYW5kX3Byb2JlIChjb25zdCBIT1NUX1dJREVf SU5UIHNpemUpCisgICAgICAgLyogU1AgPSBTUF8wICsgUFJPQkVfSU5URVJWQUwuICAqLworICAg ICAgIGVtaXRfaW5zbiAoZ2VuX3J0eF9TRVQgKHN0YWNrX3BvaW50ZXJfcnR4LAorIAkJCSAgICAg IHBsdXNfY29uc3RhbnQgKFBtb2RlLCBzdGFja19wb2ludGVyX3J0eCwKKy0JCQkJCSAgICAgLSAo UFJPQkVfSU5URVJWQUwgKyBkb3BlKSkpKTsKKysJCQkJCSAgICAgLSAoZ2V0X3Byb2JlX2ludGVy dmFsICgpICsgZG9wZSkpKSk7CisgCisgICAgICAgLyogTEFTVF9BRERSID0gU1BfMCArIFBST0JF X0lOVEVSVkFMICsgUk9VTkRFRF9TSVpFLiAgKi8KKyAgICAgICBpZiAocm91bmRlZF9zaXplIDw9 IChIT1NUX1dJREVfSU5UXzEgPDwgMzEpKQorQEAgLTEzNTUxLDcgKzEzNTYxLDggQEAgaXg4Nl9h ZGp1c3Rfc3RhY2tfYW5kX3Byb2JlIChjb25zdCBIT1NUX1dJREVfSU5UIHNpemUpCisgICAgICAg LyogQWRqdXN0IGJhY2sgdG8gYWNjb3VudCBmb3IgdGhlIGFkZGl0aW9uYWwgZmlyc3QgaW50ZXJ2 YWwuICAqLworICAgICAgIGxhc3QgPSBlbWl0X2luc24gKGdlbl9ydHhfU0VUIChzdGFja19wb2lu dGVyX3J0eCwKKyAJCQkJICAgICBwbHVzX2NvbnN0YW50IChQbW9kZSwgc3RhY2tfcG9pbnRlcl9y dHgsCistCQkJCQkJICAgIFBST0JFX0lOVEVSVkFMICsgZG9wZSkpKTsKKysJCQkJCQkgICAgKGdl dF9wcm9iZV9pbnRlcnZhbCAoKQorKwkJCQkJCSAgICAgKyBkb3BlKSkpKTsKKyAKKyAgICAgICBy ZWxlYXNlX3NjcmF0Y2hfcmVnaXN0ZXJfb25fZW50cnkgKCZzcik7CisgICAgIH0KK0BAIC0xMzU2 OCw3ICsxMzU3OSw3IEBAIGl4ODZfYWRqdXN0X3N0YWNrX2FuZF9wcm9iZSAoY29uc3QgSE9TVF9X SURFX0lOVCBzaXplKQorICAgICAgIFhWRUNFWFAgKGV4cHIsIDAsIDEpCisgCT0gZ2VuX3J0eF9T RVQgKHN0YWNrX3BvaW50ZXJfcnR4LAorIAkJICAgICAgIHBsdXNfY29uc3RhbnQgKFBtb2RlLCBz dGFja19wb2ludGVyX3J0eCwKKy0JCQkJICAgICAgUFJPQkVfSU5URVJWQUwgKyBkb3BlICsgc2l6 ZSkpOworKwkJCQkgICAgICBnZXRfcHJvYmVfaW50ZXJ2YWwgKCkgKyBkb3BlICsgc2l6ZSkpOwor ICAgICAgIGFkZF9yZWdfbm90ZSAobGFzdCwgUkVHX0ZSQU1FX1JFTEFURURfRVhQUiwgZXhwcik7 CisgICAgICAgUlRYX0ZSQU1FX1JFTEFURURfUCAobGFzdCkgPSAxOworIAorQEAgLTEzNTk1LDcg KzEzNjA2LDcgQEAgb3V0cHV0X2FkanVzdF9zdGFja19hbmRfcHJvYmUgKHJ0eCByZWcpCisgCisg ICAvKiBTUCA9IFNQICsgUFJPQkVfSU5URVJWQUwuICAqLworICAgeG9wc1swXSA9IHN0YWNrX3Bv aW50ZXJfcnR4OworLSAgeG9wc1sxXSA9IEdFTl9JTlQgKFBST0JFX0lOVEVSVkFMKTsKKysgIHhv cHNbMV0gPSBHRU5fSU5UIChnZXRfcHJvYmVfaW50ZXJ2YWwgKCkpOworICAgb3V0cHV0X2FzbV9p bnNuICgic3ViJXowXHR7JTEsICUwfCUwLCAlMX0iLCB4b3BzKTsKKyAKKyAgIC8qIFByb2JlIGF0 IFNQLiAgKi8KK0BAIC0xMzYyNSwxNCArMTM2MzYsMTQgQEAgaXg4Nl9lbWl0X3Byb2JlX3N0YWNr X3JhbmdlIChIT1NUX1dJREVfSU5UIGZpcnN0LCBIT1NUX1dJREVfSU5UIHNpemUpCisgICAgICB0 aGF0J3MgdGhlIGVhc3kgY2FzZS4gIFRoZSBydW4tdGltZSBsb29wIGlzIG1hZGUgdXAgb2YgNiBp bnNucyBpbiB0aGUKKyAgICAgIGdlbmVyaWMgY2FzZSB3aGlsZSB0aGUgY29tcGlsZS10aW1lIGxv b3AgaXMgbWFkZSB1cCBvZiBuIGluc25zIGZvciBuICMKKyAgICAgIG9mIGludGVydmFscy4gICov CistICBpZiAoc2l6ZSA8PSA2ICogUFJPQkVfSU5URVJWQUwpCisrICBpZiAoc2l6ZSA8PSA2ICog Z2V0X3Byb2JlX2ludGVydmFsICgpKQorICAgICB7CisgICAgICAgSE9TVF9XSURFX0lOVCBpOwor IAorICAgICAgIC8qIFByb2JlIGF0IEZJUlNUICsgTiAqIFBST0JFX0lOVEVSVkFMIGZvciB2YWx1 ZXMgb2YgTiBmcm9tIDEgdW50aWwKKyAJIGl0IGV4Y2VlZHMgU0laRS4gIElmIG9ubHkgb25lIHBy b2JlIGlzIG5lZWRlZCwgdGhpcyB3aWxsIG5vdAorIAkgZ2VuZXJhdGUgYW55IGNvZGUuICBUaGVu IHByb2JlIGF0IEZJUlNUICsgU0laRS4gICovCistICAgICAgZm9yIChpID0gUFJPQkVfSU5URVJW QUw7IGkgPCBzaXplOyBpICs9IFBST0JFX0lOVEVSVkFMKQorKyAgICAgIGZvciAoaSA9IGdldF9w cm9iZV9pbnRlcnZhbCAoKTsgaSA8IHNpemU7IGkgKz0gZ2V0X3Byb2JlX2ludGVydmFsICgpKQor IAllbWl0X3N0YWNrX3Byb2JlIChwbHVzX2NvbnN0YW50IChQbW9kZSwgc3RhY2tfcG9pbnRlcl9y dHgsCisgCQkJCQkgLShmaXJzdCArIGkpKSk7CisgCitAQCAtMTM2NTUsNyArMTM2NjYsNyBAQCBp eDg2X2VtaXRfcHJvYmVfc3RhY2tfcmFuZ2UgKEhPU1RfV0lERV9JTlQgZmlyc3QsIEhPU1RfV0lE RV9JTlQgc2l6ZSkKKyAKKyAgICAgICAvKiBTdGVwIDE6IHJvdW5kIFNJWkUgdG8gdGhlIHByZXZp b3VzIG11bHRpcGxlIG9mIHRoZSBpbnRlcnZhbC4gICovCisgCistICAgICAgcm91bmRlZF9zaXpl ID0gUk9VTkRfRE9XTiAoc2l6ZSwgUFJPQkVfSU5URVJWQUwpOworKyAgICAgIHJvdW5kZWRfc2l6 ZSA9IFJPVU5EX0RPV04gKHNpemUsIGdldF9wcm9iZV9pbnRlcnZhbCAoKSk7CisgCisgCisgICAg ICAgLyogU3RlcCAyOiBjb21wdXRlIGluaXRpYWwgYW5kIGZpbmFsIHZhbHVlIG9mIHRoZSBsb29w IGNvdW50ZXIuICAqLworQEAgLTEzNzE2LDcgKzEzNzI3LDcgQEAgb3V0cHV0X3Byb2JlX3N0YWNr X3JhbmdlIChydHggcmVnLCBydHggZW5kKQorIAorICAgLyogVEVTVF9BRERSID0gVEVTVF9BRERS ICsgUFJPQkVfSU5URVJWQUwuICAqLworICAgeG9wc1swXSA9IHJlZzsKKy0gIHhvcHNbMV0gPSBH RU5fSU5UIChQUk9CRV9JTlRFUlZBTCk7CisrICB4b3BzWzFdID0gR0VOX0lOVCAoZ2V0X3Byb2Jl X2ludGVydmFsICgpKTsKKyAgIG91dHB1dF9hc21faW5zbiAoInN1YiV6MFx0eyUxLCAlMHwlMCwg JTF9IiwgeG9wcyk7CisgCisgICAvKiBQcm9iZSBhdCBURVNUX0FERFIuICAqLworQEAgLTE0MTk0 LDcgKzE0MjA1LDcgQEAgaXg4Nl9leHBhbmRfcHJvbG9ndWUgKHZvaWQpCisgICAgICAgZWxzZSBp ZiAoU1RBQ0tfQ0hFQ0tfTU9WSU5HX1NQKQorIAl7CisgCSAgaWYgKCEoY3J0bC0+aXNfbGVhZiAm JiAhY2Z1bi0+Y2FsbHNfYWxsb2NhCistCQkmJiBhbGxvY2F0ZSA8PSBQUk9CRV9JTlRFUlZBTCkp CisrCQkmJiBhbGxvY2F0ZSA8PSBnZXRfcHJvYmVfaW50ZXJ2YWwgKCkpKQorIAkgICAgeworIAkg ICAgICBpeDg2X2FkanVzdF9zdGFja19hbmRfcHJvYmUgKGFsbG9jYXRlKTsKKyAJICAgICAgYWxs b2NhdGUgPSAwOworQEAgLTE0MjExLDcgKzE0MjIyLDcgQEAgaXg4Nl9leHBhbmRfcHJvbG9ndWUg KHZvaWQpCisgCSAgICB7CisgCSAgICAgIGlmIChjcnRsLT5pc19sZWFmICYmICFjZnVuLT5jYWxs c19hbGxvY2EpCisgCQl7CistCQkgIGlmIChzaXplID4gUFJPQkVfSU5URVJWQUwpCisrCQkgIGlm IChzaXplID4gZ2V0X3Byb2JlX2ludGVydmFsICgpKQorIAkJICAgIGl4ODZfZW1pdF9wcm9iZV9z dGFja19yYW5nZSAoMCwgc2l6ZSk7CisgCQl9CisgCSAgICAgIGVsc2UKK0BAIC0xNDIyMiw3ICsx NDIzMyw3IEBAIGl4ODZfZXhwYW5kX3Byb2xvZ3VlICh2b2lkKQorIAkgICAgeworIAkgICAgICBp ZiAoY3J0bC0+aXNfbGVhZiAmJiAhY2Z1bi0+Y2FsbHNfYWxsb2NhKQorIAkJeworLQkJICBpZiAo c2l6ZSA+IFBST0JFX0lOVEVSVkFMCisrCQkgIGlmIChzaXplID4gZ2V0X3Byb2JlX2ludGVydmFs ICgpCisgCQkgICAgICAmJiBzaXplID4gZ2V0X3N0YWNrX2NoZWNrX3Byb3RlY3QgKCkpCisgCQkg ICAgaXg4Nl9lbWl0X3Byb2JlX3N0YWNrX3JhbmdlIChnZXRfc3RhY2tfY2hlY2tfcHJvdGVjdCAo KSwKKyAJCQkJCQkgc2l6ZSAtIGdldF9zdGFja19jaGVja19wcm90ZWN0ICgpKTsKK2RpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9wcjgyNzg4LmMgYi9nY2MvdGVzdHN1aXRlL2djYy5k Zy9wcjgyNzg4LmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMC4uYThm NjI4ZmQ3ZjYKKy0tLSAvZGV2L251bGwKKysrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ByODI3 ODguYworQEAgLTAsMCArMSw0IEBACisrLyogeyBkZy1kbyBydW4gfSAqLworKy8qIHsgZGctb3B0 aW9ucyAiLU8yIC1mc3RhY2stY2xhc2gtcHJvdGVjdGlvbiAtLXBhcmFtIHN0YWNrLWNsYXNoLXBy b3RlY3Rpb24tcHJvYmUtaW50ZXJ2YWw9MTAgLS1wYXJhbSBzdGFjay1jbGFzaC1wcm90ZWN0aW9u LWd1YXJkLXNpemU9MTIiIH0gKi8KKysvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBz dXBwb3J0c19zdGFja19jbGFzaF9wcm90ZWN0aW9uIH0gKi8KKytpbnQgbWFpbigpIHsgaW50IGFb MTQ0Ml07IHJldHVybiAwO30KCmRpZmYgLS1naXQgYS9nY2M3LXJoMTUxMjUyOS0xNC5wYXRjaCBi L2djYzctcmgxNTEyNTI5LTE0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmI3OWVkZjgKLS0tIC9kZXYvbnVsbAorKysgYi9nY2M3LXJoMTUxMjUyOS0xNC5wYXRjaApA QCAtMCwwICsxLDQzIEBACitjb21taXQgNzk5ZmI2ZmVlNDMzODkxNTEwYWI2MTNhMDI0NDUwYzky NmNkYjRiMworQXV0aG9yOiBsYXcgPGxhd0AxMzhiYzc1ZC0wZDA0LTA0MTAtOTYxZi04MmVlNzJi MDU0YTQ+CitEYXRlOiAgIFdlZCBOb3YgMTUgMDY6MzA6MzEgMjAxNyArMDAwMAorCisgICAgICAg ICAgICAqIGV4cGxvdy5jIChhbnRpX2FkanVzdF9zdGFja19hbmRfcHJvYmVfc3RhY2tfY2xhc2gp OiBBdm9pZCBwcm9iaW5nCisgICAgICAgICAgICB0aGUgcmVkIHpvbmUgZm9yIHN0YWNrX2NsYXNo X3Byb3RlY3Rpb25fZmluYWxfZHluYW1pY19wcm9iZSB0YXJnZXRzCisgICAgICAgICAgICB3aGVu IHRoZSB0b3RhbCBkeW5hbWljIHN0YWNrIHNpemUgaXMgemVybyBieXRlcy4KKyAgICAKKyAgICBn aXQtc3ZuLWlkOiBzdm4rc3NoOi8vZ2NjLmdudS5vcmcvc3ZuL2djYy90cnVua0AyNTQ3NTMgMTM4 YmM3NWQtMGQwNC0wNDEwLTk2MWYtODJlZTcyYjA1NGE0CisKK2RpZmYgLS1naXQgYS9nY2MvZXhw bG93LmMgYi9nY2MvZXhwbG93LmMKK2luZGV4IDZhZjYzNTVmZTMwLi41M2M0YTZkN2RiOSAxMDA2 NDQKKy0tLSBhL2djYy9leHBsb3cuYworKysrIGIvZ2NjL2V4cGxvdy5jCitAQCAtMTk3OCw2ICsx OTc4LDEzIEBAIGFudGlfYWRqdXN0X3N0YWNrX2FuZF9wcm9iZV9zdGFja19jbGFzaCAocnR4IHNp emUpCisgICBpZiAoc2l6ZSAhPSBDT05TVDBfUlRYIChQbW9kZSkKKyAgICAgICAmJiB0YXJnZXRt LnN0YWNrX2NsYXNoX3Byb3RlY3Rpb25fZmluYWxfZHluYW1pY19wcm9iZSAocmVzaWR1YWwpKQor ICAgICB7CisrICAgICAgLyogU0laRSBjb3VsZCBiZSB6ZXJvIGF0IHJ1bnRpbWUgYW5kIGluIHRo YXQgY2FzZSAqc3AgY291bGQgaG9sZAorKwkgbGl2ZSBkYXRhLiAgRnVydGhlcm1vcmUsIHdlIGRv bid0IHdhbnQgdG8gcHJvYmUgaW50byB0aGUgcmVkCisrCSB6b25lLgorKworKwkgR28gYWhlYWQg YW5kIGp1c3QgZ3VhcmQgYSBwcm9iZSBhdCAqc3Agb24gU0laRSAhPSAwIGF0IHJ1bnRpbWUKKysJ IGlmIFNJWkUgaXMgbm90IGEgY29tcGlsZSB0aW1lIGNvbnN0YW50LiAgKi8KKysKKyAgICAgICAv KiBJZGVhbGx5IHdlIHdvdWxkIGp1c3QgcHJvYmUgYXQgKnNwLiAgSG93ZXZlciwgaWYgU0laRSBp cyBub3QKKyAJIGEgY29tcGlsZS10aW1lIGNvbnN0YW50LCBidXQgaXMgemVybyBhdCBydW50aW1l LCB0aGVuICpzcAorIAkgbWlnaHQgaG9sZCBsaXZlIGRhdGEuICBTbyBwcm9iZSBhdCAqc3AgaWYg d2Uga25vdyB0aGF0CitAQCAtMTk5MCw5ICsxOTk3LDEyIEBAIGFudGlfYWRqdXN0X3N0YWNrX2Fu ZF9wcm9iZV9zdGFja19jbGFzaCAocnR4IHNpemUpCisgCX0KKyAgICAgICBlbHNlCisgCXsKKy0J ICBlbWl0X3N0YWNrX3Byb2JlIChwbHVzX2NvbnN0YW50IChQbW9kZSwgc3RhY2tfcG9pbnRlcl9y dHgsCistCQkJCQkgICAtR0VUX01PREVfU0laRSAod29yZF9tb2RlKSkpOworKwkgIHJ0eCBsYWJl bCA9IGdlbl9sYWJlbF9ydHggKCk7CisrCSAgZW1pdF9jbXBfYW5kX2p1bXBfaW5zbnMgKHNpemUs IENPTlNUMF9SVFggKEdFVF9NT0RFIChzaXplKSksCisrCQkJCSAgIEVRLCBOVUxMX1JUWCwgUG1v ZGUsIDEsIGxhYmVsKTsKKysJICBlbWl0X3N0YWNrX3Byb2JlIChzdGFja19wb2ludGVyX3J0eCk7 CisgCSAgZW1pdF9pbnNuIChnZW5fYmxvY2thZ2UgKCkpOworKwkgIGVtaXRfbGFiZWwgKGxhYmVs KTsKKyAJfQorICAgICB9CisgfQoKZGlmZiAtLWdpdCBhL2djYzctcmgxNTEyNTI5LTE1LnBhdGNo IGIvZ2NjNy1yaDE1MTI1MjktMTUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uOTBmN2FmZAotLS0gL2Rldi9udWxsCisrKyBiL2djYzctcmgxNTEyNTI5LTE1LnBhdGNo CkBAIC0wLDAgKzEsNDYgQEAKK2NvbW1pdCBkZjdmOTlkNTI5N2YzYzU5MjQwMWQ3MzEyYzQ4MTU3 OGE4YTYyOTkxCitBdXRob3I6IEplZmYgTGF3IDxsYXdAcmVkaGF0LmNvbT4KK0RhdGU6ICAgV2Vk IE5vdiAyMiAxMTo1NToxMCAyMDE3IC0wNzAwCisKKyAgICAgICAgICAgICAgICogZ2NjLmRnL3N0 YWNrLWNoZWNrLTUuYzogU2tpcCB3aXRoIC1mc3RhY2stcHJvdGVjdG9yLgorICAgICAgICAgICAg ICAgICogZ2NjLmRnL3N0YWNrLWNoZWNrLTYuYzogTGlrZXdpc2UuCisgICAgICAgICAgICAgICAg KiBnY2MuZGcvc3RhY2stY2hlY2stNmEuYzogTGlrZXdpc2UuCisKK2RpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2djYy5kZy9zdGFjay1jaGVjay01LmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9z dGFjay1jaGVjay01LmMKK2luZGV4IDMxNzhmNWQ4Y2U1Li5kZDlmOGRiZjYwNyAxMDA2NDQKKy0t LSBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3N0YWNrLWNoZWNrLTUuYworKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MuZGcvc3RhY2stY2hlY2stNS5jCitAQCAtMSw2ICsxLDggQEAKKyAvKiB7IGRnLWRv IGNvbXBpbGUgfSAqLworIC8qIHsgZGctb3B0aW9ucyAiLU8yIC1mc3RhY2stY2xhc2gtcHJvdGVj dGlvbiAtZmR1bXAtcnRsLXByb19hbmRfZXBpbG9ndWUgLWZuby1vcHRpbWl6ZS1zaWJsaW5nLWNh bGxzIC0tcGFyYW0gc3RhY2stY2xhc2gtcHJvdGVjdGlvbi1wcm9iZS1pbnRlcnZhbD0xMiAtLXBh cmFtIHN0YWNrLWNsYXNoLXByb3RlY3Rpb24tZ3VhcmQtc2l6ZT0xMiIgfSAqLworIC8qIHsgZGct cmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IHN1cHBvcnRzX3N0YWNrX2NsYXNoX3Byb3RlY3Rpb24g fSAqLworKy8qIHsgZGctc2tpcC1pZiAiIiB7ICotKi0qIH0geyAiLWZzdGFjay1wcm90ZWN0b3Ii IH0geyAiIiB9IH0gKi8KKysKKyAKKyAKKyAvKiBPdGhlcndpc2UgdGhlIFMvMzkwIGJhY2stZW5k IG1pZ2h0IHNhdmUgdGhlIHN0YWNrIHBvaW50ZXIgaW4gZjIgKCkKK2RpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2djYy5kZy9zdGFjay1jaGVjay02LmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9z dGFjay1jaGVjay02LmMKK2luZGV4IGFkMjAyMWM5MDM3Li44MzU1OWM1NTMzYyAxMDA2NDQKKy0t LSBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3N0YWNrLWNoZWNrLTYuYworKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MuZGcvc3RhY2stY2hlY2stNi5jCitAQCAtMSw2ICsxLDggQEAKKyAvKiB7IGRnLWRv IGNvbXBpbGUgfSAqLworIC8qIHsgZGctb3B0aW9ucyAiLU8yIC1mc3RhY2stY2xhc2gtcHJvdGVj dGlvbiAtZmR1bXAtcnRsLXByb19hbmRfZXBpbG9ndWUgLWZuby1vcHRpbWl6ZS1zaWJsaW5nLWNh bGxzIC0tcGFyYW0gc3RhY2stY2xhc2gtcHJvdGVjdGlvbi1wcm9iZS1pbnRlcnZhbD0xMiAtLXBh cmFtIHN0YWNrLWNsYXNoLXByb3RlY3Rpb24tZ3VhcmQtc2l6ZT0xMiIgfSAqLworIC8qIHsgZGct cmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IHN1cHBvcnRzX3N0YWNrX2NsYXNoX3Byb3RlY3Rpb24g fSAqLworKy8qIHsgZGctc2tpcC1pZiAiIiB7ICotKi0qIH0geyAiLWZzdGFjay1wcm90ZWN0b3Ii IH0geyAiIiB9IH0gKi8KKysKKyAKKyAKKyBleHRlcm4gdm9pZCBmb28gKGNoYXIgKik7CitkaWZm IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvc3RhY2stY2hlY2stNmEuYyBiL2djYy90ZXN0 c3VpdGUvZ2NjLmRnL3N0YWNrLWNoZWNrLTZhLmMKK2luZGV4IDZmOGU3MTI4OTIxLi5hMWEyYWNi ZDZiZCAxMDA2NDQKKy0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3N0YWNrLWNoZWNrLTZhLmMK KysrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3N0YWNrLWNoZWNrLTZhLmMKK0BAIC00LDYgKzQs NyBAQAorIC8qIHsgZGctZG8gY29tcGlsZSAgfSAqLworIC8qIHsgZGctb3B0aW9ucyAiLU8yIC1m c3RhY2stY2xhc2gtcHJvdGVjdGlvbiAtZmR1bXAtcnRsLXByb19hbmRfZXBpbG9ndWUgLWZuby1v cHRpbWl6ZS1zaWJsaW5nLWNhbGxzIC0tcGFyYW0gc3RhY2stY2xhc2gtcHJvdGVjdGlvbi1wcm9i ZS1pbnRlcnZhbD0xMiAtLXBhcmFtIHN0YWNrLWNsYXNoLXByb3RlY3Rpb24tZ3VhcmQtc2l6ZT0x NiIgfSAqLworIC8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IHN1cHBvcnRzX3N0YWNr X2NsYXNoX3Byb3RlY3Rpb24gIH0gKi8KKysvKiB7IGRnLXNraXAtaWYgIiIgeyAqLSotKiB9IHsg Ii1mc3RhY2stcHJvdGVjdG9yIiB9IHsgIiIgfSB9ICovCisgCisgI2luY2x1ZGUgInN0YWNrLWNo ZWNrLTYuYyIKKyAKCmRpZmYgLS1naXQgYS9nY2M3LXJoMTUxMjUyOS0xNi5wYXRjaCBiL2djYzct cmgxNTEyNTI5LTE2LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0 NDIyN2YKLS0tIC9kZXYvbnVsbAorKysgYi9nY2M3LXJoMTUxMjUyOS0xNi5wYXRjaApAQCAtMCww ICsxLDQ3MyBAQAorY29tbWl0IGRhZmJkOWUwYzM0N2NkZTZkODE5MmYzNzQ3ODdmNWRiZWU0YWVk ODkKK0F1dGhvcjogSmVmZiBMYXcgPGxhd0ByZWRoYXQuY29tPgorRGF0ZTogICBXZWQgTm92IDIy IDEyOjAxOjU2IDIwMTcgLTA3MDAKKworICAgIGFhcmNoNjQgc3VwcG9ydAorCitkaWZmIC0tZ2l0 IGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQuYyBiL2djYy9jb25maWcvYWFyY2g2NC9hYXJj aDY0LmMKK2luZGV4IDc1YzEyZjFkZTY1Li5kNzEwMGMzNjY2NCAxMDA2NDQKKy0tLSBhL2djYy9j b25maWcvYWFyY2g2NC9hYXJjaDY0LmMKKysrKyBiL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0 LmMKK0BAIC0yNzQ3LDcgKzI3NDcsMTQgQEAgYWFyY2g2NF9vdXRwdXRfcHJvYmVfc3RhY2tfcmFu Z2UgKHJ0eCByZWcxLCBydHggcmVnMikKKyAgIG91dHB1dF9hc21faW5zbiAoInN1Ylx0JTAsICUw LCAlMSIsIHhvcHMpOworIAorICAgLyogUHJvYmUgYXQgVEVTVF9BRERSLiAgKi8KKy0gIG91dHB1 dF9hc21faW5zbiAoInN0clx0eHpyLCBbJTBdIiwgeG9wcyk7CisrICBpZiAoZmxhZ19zdGFja19j bGFzaF9wcm90ZWN0aW9uKQorKyAgICB7CisrICAgICAgZ2NjX2Fzc2VydCAoeG9wc1swXSA9PSBz dGFja19wb2ludGVyX3J0eCk7CisrICAgICAgeG9wc1sxXSA9IEdFTl9JTlQgKFBST0JFX0lOVEVS VkFMIC0gOCk7CisrICAgICAgb3V0cHV0X2FzbV9pbnNuICgic3RyXHR4enIsIFslMCwgJTFdIiwg eG9wcyk7CisrICAgIH0KKysgIGVsc2UKKysgICAgb3V0cHV0X2FzbV9pbnNuICgic3RyXHR4enIs IFslMF0iLCB4b3BzKTsKKyAKKyAgIC8qIFRlc3QgaWYgVEVTVF9BRERSID09IExBU1RfQUREUi4g ICovCisgICB4b3BzWzFdID0gcmVnMjsKK0BAIC0zNTExLDYgKzM1MTgsMTI1IEBAIGFhcmNoNjRf c2V0X2hhbmRsZWRfY29tcG9uZW50cyAoc2JpdG1hcCBjb21wb25lbnRzKQorICAgICAgIGNmdW4t Pm1hY2hpbmUtPnJlZ19pc193cmFwcGVkX3NlcGFyYXRlbHlbcmVnbm9dID0gdHJ1ZTsKKyB9Cisg CisrLyogQWxsb2NhdGUgU0laRSBieXRlcyBvZiBzdGFjayBzcGFjZSB1c2luZyBTQ1JBVENIX1JF RyBhcyBhIHNjcmF0Y2gKKysgICByZWdpc3Rlci4gICovCisrCisrc3RhdGljIHZvaWQKKythYXJj aDY0X2FsbG9jYXRlX2FuZF9wcm9iZV9zdGFja19zcGFjZSAoaW50IHNjcmF0Y2hyZWcsIEhPU1Rf V0lERV9JTlQgc2l6ZSkKKyt7CisrICBIT1NUX1dJREVfSU5UIHByb2JlX2ludGVydmFsCisrICAg ID0gMSA8PCBQQVJBTV9WQUxVRSAoUEFSQU1fU1RBQ0tfQ0xBU0hfUFJPVEVDVElPTl9QUk9CRV9J TlRFUlZBTCk7CisrICBIT1NUX1dJREVfSU5UIGd1YXJkX3NpemUKKysgICAgPSAxIDw8IFBBUkFN X1ZBTFVFIChQQVJBTV9TVEFDS19DTEFTSF9QUk9URUNUSU9OX0dVQVJEX1NJWkUpOworKyAgSE9T VF9XSURFX0lOVCBndWFyZF91c2VkX2J5X2NhbGxlciA9IDEwMjQ7CisrCisrICAvKiBTSVpFIHNo b3VsZCBiZSBsYXJnZSBlbm91Z2ggdG8gcmVxdWlyZSBwcm9iaW5nIGhlcmUuICBpZSwgaXQKKysg ICAgIG11c3QgYmUgbGFyZ2VyIHRoYW4gR1VBUkRfU0laRSAtIEdVQVJEX1VTRURfQllfQ0FMTEVS LgorKworKyAgICAgV2UgY2FuIGFsbG9jYXRlIEdVQVJEX1NJWkUgLSBHVUFSRF9VU0VEX0JZX0NB TExFUiBhcyBhIHNpbmdsZSBjaHVuaworKyAgICAgd2l0aG91dCBhbnkgcHJvYmluZy4gICovCisr ICBnY2NfYXNzZXJ0IChzaXplID49IGd1YXJkX3NpemUgLSBndWFyZF91c2VkX2J5X2NhbGxlcik7 CisrICBhYXJjaDY0X3N1Yl9zcCAoc2NyYXRjaHJlZywgZ3VhcmRfc2l6ZSAtIGd1YXJkX3VzZWRf YnlfY2FsbGVyLCB0cnVlKTsKKysgIEhPU1RfV0lERV9JTlQgb3JpZ19zaXplID0gc2l6ZTsKKysg IHNpemUgLT0gKGd1YXJkX3NpemUgLSBndWFyZF91c2VkX2J5X2NhbGxlcik7CisrCisrICBIT1NU X1dJREVfSU5UIHJvdW5kZWRfc2l6ZSA9IHNpemUgJiAtcHJvYmVfaW50ZXJ2YWw7CisrICBIT1NU X1dJREVfSU5UIHJlc2lkdWFsID0gc2l6ZSAtIHJvdW5kZWRfc2l6ZTsKKysKKysgIC8qIFdlIGNh biBoYW5kbGUgYSBzbWFsbCBudW1iZXIgb2YgYWxsb2NhdGlvbnMvcHJvYmVzIGlubGluZS4gIE90 aGVyd2lzZQorKyAgICAgcHVudCB0byBhIGxvb3AuICAqLworKyAgaWYgKHJvdW5kZWRfc2l6ZSAm JiByb3VuZGVkX3NpemUgPD0gNCAqIHByb2JlX2ludGVydmFsKQorKyAgICB7CisrICAgICAgLyog V2UgZG9uJ3QgdXNlIGFhcmNoNjRfc3ViX3NwIGhlcmUgYmVjYXVzZSB3ZSBkb24ndCB3YW50IHRv CisrCSByZXBlYXRlZGx5IGxvYWQgU0NSQVRDSFJFRy4gICovCisrICAgICAgcnR4IHNjcmF0Y2hf cnR4ID0gZ2VuX3J0eF9SRUcgKFBtb2RlLCBzY3JhdGNocmVnKTsKKysgICAgICBpZiAocHJvYmVf aW50ZXJ2YWwgPiBBUklUSF9GQUNUT1IpCisrCWVtaXRfbW92ZV9pbnNuIChzY3JhdGNoX3J0eCwg R0VOX0lOVCAoLXByb2JlX2ludGVydmFsKSk7CisrICAgICAgZWxzZQorKwlzY3JhdGNoX3J0eCA9 IEdFTl9JTlQgKC1wcm9iZV9pbnRlcnZhbCk7CisrCisrICAgICAgZm9yIChIT1NUX1dJREVfSU5U IGkgPSAwOyBpIDwgcm91bmRlZF9zaXplOyBpICs9IHByb2JlX2ludGVydmFsKQorKwl7CisrCSAg cnR4X2luc24gKmluc24gPSBlbWl0X2luc24gKGdlbl9hZGQyX2luc24gKHN0YWNrX3BvaW50ZXJf cnR4LAorKwkJCQkJCSAgICAgc2NyYXRjaF9ydHgpKTsKKysgICAgICAgICAgYWRkX3JlZ19ub3Rl IChpbnNuLCBSRUdfU1RBQ0tfQ0hFQ0ssIGNvbnN0MF9ydHgpOworKworKwkgIGlmIChwcm9iZV9p bnRlcnZhbCA+IEFSSVRIX0ZBQ1RPUikKKysJICAgIHsKKysJICAgICAgUlRYX0ZSQU1FX1JFTEFU RURfUCAoaW5zbikgPSAxOworKwkgICAgICBydHggYWRqID0gcGx1c19jb25zdGFudCAoUG1vZGUs IHN0YWNrX3BvaW50ZXJfcnR4LCAtcHJvYmVfaW50ZXJ2YWwpOworKwkgICAgICBhZGRfcmVnX25v dGUgKGluc24sIFJFR19DRkFfQURKVVNUX0NGQSwKKysJCQkgICAgZ2VuX3J0eF9TRVQgKHN0YWNr X3BvaW50ZXJfcnR4LCBhZGopKTsKKysJICAgIH0KKysKKysJICBlbWl0X3N0YWNrX3Byb2JlIChw bHVzX2NvbnN0YW50IChQbW9kZSwgc3RhY2tfcG9pbnRlcl9ydHgsCisrCQkJCQkgICAocHJvYmVf aW50ZXJ2YWwKKysJCQkJCSAgICAtIEdFVF9NT0RFX1NJWkUgKHdvcmRfbW9kZSkpKSk7CisrCSAg ZW1pdF9pbnNuIChnZW5fYmxvY2thZ2UgKCkpOworKwl9CisrICAgICAgZHVtcF9zdGFja19jbGFz aF9mcmFtZV9pbmZvIChQUk9CRV9JTkxJTkUsIHNpemUgIT0gcm91bmRlZF9zaXplKTsKKysgICAg fQorKyAgZWxzZSBpZiAocm91bmRlZF9zaXplKQorKyAgICB7CisrICAgICAgLyogQ29tcHV0ZSB0 aGUgZW5kaW5nIGFkZHJlc3MuICAqLworKyAgICAgIHJ0eCB0ZW1wID0gZ2VuX3J0eF9SRUcgKHdv cmRfbW9kZSwgc2NyYXRjaHJlZyk7CisrICAgICAgZW1pdF9tb3ZlX2luc24gKHRlbXAsIEdFTl9J TlQgKC1yb3VuZGVkX3NpemUpKTsKKysgICAgICBydHhfaW5zbiAqaW5zbgorKwkgPSBlbWl0X2lu c24gKGdlbl9hZGQzX2luc24gKHRlbXAsIHN0YWNrX3BvaW50ZXJfcnR4LCB0ZW1wKSk7CisrCisr ICAgICAgLyogRm9yIHRoZSBpbml0aWFsIGFsbG9jYXRpb24sIHdlIGRvbid0IGhhdmUgYSBmcmFt ZSBwb2ludGVyCisrCSBzZXQgdXAsIHNvIHdlIGFsd2F5cyBuZWVkIENGSSBub3Rlcy4gIElmIHdl J3JlIGRvaW5nIHRoZQorKwkgZmluYWwgYWxsb2NhdGlvbiwgdGhlbiB3ZSBtYXkgaGF2ZSBhIGZy YW1lIHBvaW50ZXIsIGluIHdoaWNoCisrCSBjYXNlIGl0IGlzIHRoZSBDRkEsIG90aGVyd2lzZSB3 ZSBuZWVkIENGSSBub3Rlcy4KKysKKysJIFdlIGNhbiBkZXRlcm1pbmUgd2hpY2ggYWxsb2NhdGlv biB3ZSBhcmUgZG9pbmcgYnkgbG9va2luZyBhdAorKwkgdGhlIHRlbXBvcmFyeSByZWdpc3Rlci4g IElQMCBpcyB0aGUgaW5pdGlhbCBhbGxvY2F0aW9uLCBJUDEKKysJIGlzIHRoZSBmaW5hbCBhbGxv Y2F0aW9uLiAgKi8KKysgICAgICBpZiAoc2NyYXRjaHJlZyA9PSBJUDBfUkVHTlVNIHx8ICFmcmFt ZV9wb2ludGVyX25lZWRlZCkKKysJeworKwkgIC8qIFdlIHdhbnQgdGhlIENGQSBpbmRlcGVuZGVu dCBvZiB0aGUgc3RhY2sgcG9pbnRlciBmb3IgdGhlCisrCSAgICAgZHVyYXRpb24gb2YgdGhlIGxv b3AuICAqLworKwkgIGFkZF9yZWdfbm90ZSAoaW5zbiwgUkVHX0NGQV9ERUZfQ0ZBLAorKwkJCXBs dXNfY29uc3RhbnQgKFBtb2RlLCB0ZW1wLAorKwkJCQkgICAgICAgKHJvdW5kZWRfc2l6ZSArIChv cmlnX3NpemUgLSBzaXplKSkpKTsKKysJICBSVFhfRlJBTUVfUkVMQVRFRF9QIChpbnNuKSA9IDE7 CisrCX0KKysKKysgICAgICAvKiBUaGlzIGFsbG9jYXRlcyBhbmQgcHJvYmVzIHRoZSBzdGFjay4K KysKKysJIEl0IGFsc28gcHJvYmVzIGF0IGEgNGsgaW50ZXJ2YWwgcmVnYXJkbGVzcyBvZiB0aGUg dmFsdWUgb2YKKysJIFBBUkFNX1NUQUNLX0NMQVNIX1BST1RFQ1RJT05fUFJPQkVfSU5URVJWQUwu ICAqLworKyAgICAgIGluc24gPSBlbWl0X2luc24gKGdlbl9wcm9iZV9zdGFja19yYW5nZSAoc3Rh Y2tfcG9pbnRlcl9ydHgsCisrCQkJCQkgICAgICAgc3RhY2tfcG9pbnRlcl9ydHgsIHRlbXApKTsK KysKKysgICAgICAvKiBOb3cgcmVzZXQgdGhlIENGQSByZWdpc3RlciBpZiBuZWVkZWQuICAqLwor KyAgICAgIGlmIChzY3JhdGNocmVnID09IElQMF9SRUdOVU0gfHwgIWZyYW1lX3BvaW50ZXJfbmVl ZGVkKQorKwl7CisrCSAgYWRkX3JlZ19ub3RlIChpbnNuLCBSRUdfQ0ZBX0RFRl9DRkEsCisrCQkJ cGx1c19jb25zdGFudCAoUG1vZGUsIHN0YWNrX3BvaW50ZXJfcnR4LAorKwkJCQkgICAgICAgKHJv dW5kZWRfc2l6ZSArIChvcmlnX3NpemUgLSBzaXplKSkpKTsKKysJICBSVFhfRlJBTUVfUkVMQVRF RF9QIChpbnNuKSA9IDE7CisrCX0KKysKKysgICAgICBlbWl0X2luc24gKGdlbl9ibG9ja2FnZSAo KSk7CisrICAgICAgZHVtcF9zdGFja19jbGFzaF9mcmFtZV9pbmZvIChQUk9CRV9MT09QLCBzaXpl ICE9IHJvdW5kZWRfc2l6ZSk7CisrICAgIH0KKysgIGVsc2UKKysgICAgZHVtcF9zdGFja19jbGFz aF9mcmFtZV9pbmZvIChQUk9CRV9JTkxJTkUsIHNpemUgIT0gcm91bmRlZF9zaXplKTsKKysKKysg IC8qIEhhbmRsZSBhbnkgcmVzaWR1YWxzLgorKyAgICAgTm90ZSB0aGF0IGFueSByZXNpZHVhbCBt dXN0IGJlIHByb2JlZC4gICovCisrICBpZiAocmVzaWR1YWwpCisrICAgIHsKKysgICAgICBhYXJj aDY0X3N1Yl9zcCAoc2NyYXRjaHJlZywgcmVzaWR1YWwsIHRydWUpOworKyAgICAgIGFkZF9yZWdf bm90ZSAoZ2V0X2xhc3RfaW5zbiAoKSwgUkVHX1NUQUNLX0NIRUNLLCBjb25zdDBfcnR4KTsKKysg ICAgICBlbWl0X3N0YWNrX3Byb2JlIChwbHVzX2NvbnN0YW50IChQbW9kZSwgc3RhY2tfcG9pbnRl cl9ydHgsCisrCQkJCSAgICAgICAocmVzaWR1YWwgLSBHRVRfTU9ERV9TSVpFICh3b3JkX21vZGUp KSkpOworKyAgICAgIGVtaXRfaW5zbiAoZ2VuX2Jsb2NrYWdlICgpKTsKKysgICAgfQorKyAgcmV0 dXJuOworK30KKysKKyAvKiBBQXJjaDY0IHN0YWNrIGZyYW1lcyBnZW5lcmF0ZWQgYnkgdGhpcyBj b21waWxlciBsb29rIGxpa2U6CisgCisgCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t KworQEAgLTM1OTIsNyArMzcxOCw1NCBAQCBhYXJjaDY0X2V4cGFuZF9wcm9sb2d1ZSAodm9pZCkK KyAJYWFyY2g2NF9lbWl0X3Byb2JlX3N0YWNrX3JhbmdlIChnZXRfc3RhY2tfY2hlY2tfcHJvdGVj dCAoKSwgZnJhbWVfc2l6ZSk7CisgICAgIH0KKyAKKy0gIGFhcmNoNjRfc3ViX3NwIChJUDBfUkVH TlVNLCBpbml0aWFsX2FkanVzdCwgdHJ1ZSk7CisrICAvKiBXZSBkbyBub3QgZnVsbHkgcHJvdGVj dCBhYXJjaDY0IGFnYWluc3Qgc3RhY2sgY2xhc2ggc3R5bGUgYXR0YWNrcworKyAgICAgYXMgZG9p bmcgc28gd291bGQgYmUgcHJvaGliaXRpdmVseSBleHBlbnNpdmUgd2l0aCBsZXNzIHV0aWxpdHkg b3ZlcgorKyAgICAgdGltZSBhcyBuZXdlciBjb21waWxlcnMgYXJlIGRlcGxveWVkLgorKworKyAg ICAgV2UgYXNzdW1lIHRoZSBndWFyZCBpcyBhdCBsZWFzdCA2NGsuICBGdXJ0aGVybW9yZSwgd2Ug YXNzdW1lIHRoYXQKKysgICAgIHRoZSBjYWxsZXIgaGFzIG5vdCBwdXNoZWQgdGhlIHN0YWNrIHBv aW50ZXIgbW9yZSB0aGFuIDFrIGludG8KKysgICAgIHRoZSBndWFyZC4gIEEgY2FsbGVyIHRoYXQg cHVzaGVzIHRoZSBzdGFjayBwb2ludGVyIHRoYW4gMWsgaW50bworKyAgICAgdGhlIGd1YXJkIGlz IGNvbnNpZGVyZWQgaW52YWxpZC4KKysKKysgICAgIE5vdGUgdGhhdCB0aGUgY2FsbGVyJ3MgYWJp bGl0eSB0byBwdXNoIHRoZSBzdGFjayBwb2ludGVyIGludG8gdGhlCisrICAgICBndWFyZCBpcyBh IGZ1bmN0aW9uIG9mIHRoZSBudW1iZXIgYW5kIHNpemUgb2Ygb3V0Z29pbmcgYXJndW1lbnRzIGFu ZC9vcgorKyAgICAgZHluYW1pYyBzdGFjayBhbGxvY2F0aW9ucyBkdWUgdG8gdGhlIG1hbmRhdG9y eSBzYXZlIG9mIHRoZSBsaW5rIHJlZ2lzdGVyCisrICAgICBpbiB0aGUgY2FsbGVyJ3MgZnJhbWUu CisrCisrICAgICBXaXRoIHRob3NlIGFzc3VtcHRpb25zIHRoZSBjYWxsZWUgY2FuIGFsbG9jYXRl IHVwIHRvIDYzayBvZiBzdGFjaworKyAgICAgc3BhY2Ugd2l0aG91dCBwcm9iaW5nLgorKworKyAg ICAgV2hlbiBwcm9iaW5nIGlzIG5lZWRlZCwgd2UgZW1pdCBhIHByb2JlIGF0IHRoZSBzdGFydCBv ZiB0aGUgcHJvbG9ndWUKKysgICAgIGFuZCBldmVyeSBQQVJBTV9TVEFDS19DTEFTSF9QUk9URUNU SU9OX1BST0JFX0lOVEVSVkFMIGJ5dGVzIHRoZXJlYWZ0ZXIuCisrCisrICAgICBXZSBoYXZlIHRv IHRyYWNrIGhvdyBtdWNoIHNwYWNlIGhhcyBiZWVuIGFsbG9jYXRlZCwgYnV0IHdlIGRvIG5vdAor KyAgICAgdHJhY2sgc3RvcmVzIGludG8gdGhlIHN0YWNrIGFzIGltcGxpY2l0IHByb2JlcyBleGNl cHQgZm9yIHRoZQorKyAgICAgZnAvbHIgc3RvcmUuICAqLworKyAgSE9TVF9XSURFX0lOVCBndWFy ZF9zaXplCisrICAgID0gMSA8PCBQQVJBTV9WQUxVRSAoUEFSQU1fU1RBQ0tfQ0xBU0hfUFJPVEVD VElPTl9HVUFSRF9TSVpFKTsKKysgIEhPU1RfV0lERV9JTlQgZ3VhcmRfdXNlZF9ieV9jYWxsZXIg PSAxMDI0OworKyAgaWYgKGZsYWdfc3RhY2tfY2xhc2hfcHJvdGVjdGlvbikKKysgICAgeworKyAg ICAgIGlmIChmcmFtZV9zaXplID09IDApCisrCWR1bXBfc3RhY2tfY2xhc2hfZnJhbWVfaW5mbyAo Tk9fUFJPQkVfTk9fRlJBTUUsIGZhbHNlKTsKKysgICAgICBlbHNlIGlmIChpbml0aWFsX2FkanVz dCA8IGd1YXJkX3NpemUgLSBndWFyZF91c2VkX2J5X2NhbGxlcgorKwkgICAgICAgJiYgZmluYWxf YWRqdXN0IDwgZ3VhcmRfc2l6ZSAtIGd1YXJkX3VzZWRfYnlfY2FsbGVyKQorKwlkdW1wX3N0YWNr X2NsYXNoX2ZyYW1lX2luZm8gKE5PX1BST0JFX1NNQUxMX0ZSQU1FLCB0cnVlKTsKKysgICAgfQor KworKyAgLyogSW4gdGhlb3J5IHdlIHNob3VsZCBuZXZlciBoYXZlIGJvdGggYW4gaW5pdGlhbCBh ZGp1c3RtZW50CisrICAgICBhbmQgYSBjYWxsZWUgc2F2ZSBhZGp1c3RtZW50LiAgVmVyaWZ5IHRo YXQgaXMgdGhlIGNhc2Ugc2luY2UgdGhlCisrICAgICBjb2RlIGJlbG93IGRvZXMgbm90IGhhbmRs ZSBpdCBmb3IgLWZzdGFjay1jbGFzaC1wcm90ZWN0aW9uLiAgKi8KKysgIGdjY19hc3NlcnQgKGlu aXRpYWxfYWRqdXN0ID09IDAgfHwgY2FsbGVlX2FkanVzdCA9PSAwKTsKKysKKysgIC8qIE9ubHkg cHJvYmUgaWYgdGhlIGluaXRpYWwgYWRqdXN0bWVudCBpcyBsYXJnZXIgdGhhbiB0aGUgZ3VhcmQK KysgICAgIGxlc3MgdGhlIGFtb3VudCBvZiB0aGUgZ3VhcmQgcmVzZXJ2ZWQgZm9yIHVzZSBieSB0 aGUgY2FsbGVyJ3MKKysgICAgIG91dGdvaW5nIGFyZ3MuICAqLworKyAgaWYgKGZsYWdfc3RhY2tf Y2xhc2hfcHJvdGVjdGlvbgorKyAgICAgICYmIGluaXRpYWxfYWRqdXN0ID49IGd1YXJkX3NpemUg LSBndWFyZF91c2VkX2J5X2NhbGxlcikKKysgICAgYWFyY2g2NF9hbGxvY2F0ZV9hbmRfcHJvYmVf c3RhY2tfc3BhY2UgKElQMF9SRUdOVU0sIGluaXRpYWxfYWRqdXN0KTsKKysgIGVsc2UKKysgICAg YWFyY2g2NF9zdWJfc3AgKElQMF9SRUdOVU0sIGluaXRpYWxfYWRqdXN0LCB0cnVlKTsKKyAKKyAg IGlmIChjYWxsZWVfYWRqdXN0ICE9IDApCisgICAgIGFhcmNoNjRfcHVzaF9yZWdzIChyZWcxLCBy ZWcyLCBjYWxsZWVfYWRqdXN0KTsKK0BAIC0zNjEzLDcgKzM3ODYsMzAgQEAgYWFyY2g2NF9leHBh bmRfcHJvbG9ndWUgKHZvaWQpCisgCQkJICAgICBjYWxsZWVfYWRqdXN0ICE9IDAgfHwgZnJhbWVf cG9pbnRlcl9uZWVkZWQpOworICAgYWFyY2g2NF9zYXZlX2NhbGxlZV9zYXZlcyAoREZtb2RlLCBj YWxsZWVfb2Zmc2V0LCBWMF9SRUdOVU0sIFYzMV9SRUdOVU0sCisgCQkJICAgICBjYWxsZWVfYWRq dXN0ICE9IDAgfHwgZnJhbWVfcG9pbnRlcl9uZWVkZWQpOworLSAgYWFyY2g2NF9zdWJfc3AgKElQ MV9SRUdOVU0sIGZpbmFsX2FkanVzdCwgIWZyYW1lX3BvaW50ZXJfbmVlZGVkKTsKKysKKysgIC8q IFdlIG1heSBuZWVkIHRvIHByb2JlIHRoZSBmaW5hbCBhZGp1c3RtZW50IGFzIHdlbGwuICAqLwor KyAgaWYgKGZsYWdfc3RhY2tfY2xhc2hfcHJvdGVjdGlvbiAmJiBmaW5hbF9hZGp1c3QgIT0gMCkK KysgICAgeworKyAgICAgIC8qIEZpcnN0IHByb2JlIGlmIHRoZSBmaW5hbCBhZGp1c3RtZW50IGlz IGxhcmdlciB0aGFuIHRoZSBndWFyZCBzaXplCisrCSBsZXNzIHRoZSBhbW91bnQgb2YgdGhlIGd1 YXJkIHJlc2VydmVkIGZvciB1c2UgYnkgdGhlIGNhbGxlcidzCisrCSBvdXRnb2luZyBhcmdzLiAg Ki8KKysgICAgICBpZiAoZmluYWxfYWRqdXN0ID49IGd1YXJkX3NpemUgLSBndWFyZF91c2VkX2J5 X2NhbGxlcikKKysJYWFyY2g2NF9hbGxvY2F0ZV9hbmRfcHJvYmVfc3RhY2tfc3BhY2UgKElQMV9S RUdOVU0sIGZpbmFsX2FkanVzdCk7CisrICAgICAgZWxzZQorKwlhYXJjaDY0X3N1Yl9zcCAoSVAx X1JFR05VTSwgZmluYWxfYWRqdXN0LCAhZnJhbWVfcG9pbnRlcl9uZWVkZWQpOworKworKyAgICAg IC8qIFdlIG11c3QgYWxzbyBwcm9iZSBpZiB0aGUgZmluYWwgYWRqdXN0bWVudCBpcyBsYXJnZXIg dGhhbiB0aGUgZ3VhcmQKKysJIHRoYXQgaXMgYXNzdW1lZCB1c2VkIGJ5IHRoZSBjYWxsZXIuICBU aGlzIG1heSBiZSBzdWItb3B0aW1hbC4gICovCisrICAgICAgaWYgKGZpbmFsX2FkanVzdCA+PSBn dWFyZF91c2VkX2J5X2NhbGxlcikKKysJeworKwkgIGlmIChkdW1wX2ZpbGUpCisrCSAgICBmcHJp bnRmIChkdW1wX2ZpbGUsCisrCQkgICAgICJTdGFjayBjbGFzaCBhYXJjaDY0IGxhcmdlIG91dGdv aW5nIGFyZywgcHJvYmluZ1xuIik7CisrCSAgZW1pdF9zdGFja19wcm9iZSAoc3RhY2tfcG9pbnRl cl9ydHgpOworKwl9CisrICAgIH0KKysgIGVsc2UKKysgICAgYWFyY2g2NF9zdWJfc3AgKElQMV9S RUdOVU0sIGZpbmFsX2FkanVzdCwgIWZyYW1lX3BvaW50ZXJfbmVlZGVkKTsKKyB9CisgCisgLyog UmV0dXJuIFRSVUUgaWYgd2UgY2FuIHVzZSBhIHNpbXBsZV9yZXR1cm4gaW5zbi4KK0BAIC0zNjc5 LDcgKzM4NzUsMTEgQEAgYWFyY2g2NF9leHBhbmRfZXBpbG9ndWUgKGJvb2wgZm9yX3NpYmNhbGwp CisgICAgICAgUlRYX0ZSQU1FX1JFTEFURURfUCAoaW5zbikgPSBjYWxsZWVfYWRqdXN0ID09IDA7 CisgICAgIH0KKyAgIGVsc2UKKy0gICAgYWFyY2g2NF9hZGRfc3AgKElQMV9SRUdOVU0sIGZpbmFs X2FkanVzdCwgZGZfcmVnc19ldmVyX2xpdmVfcCAoSVAxX1JFR05VTSkpOworKyAgICBhYXJjaDY0 X2FkZF9zcCAoSVAxX1JFR05VTSwgZmluYWxfYWRqdXN0LAorKwkJICAgIC8qIEEgc3RhY2sgY2xh c2ggcHJvdGVjdGlvbiBwcm9sb2d1ZSBtYXkgbm90IGhhdmUKKysJCSAgICAgICBsZWZ0IElQMV9S RUdOVU0gaW4gYSB1c2FibGUgc3RhdGUuICAqLworKwkJICAgIChmbGFnX3N0YWNrX2NsYXNoX3By b3RlY3Rpb24KKysJCSAgICAgfHwgZGZfcmVnc19ldmVyX2xpdmVfcCAoSVAxX1JFR05VTSkpKTsK KyAKKyAgIGFhcmNoNjRfcmVzdG9yZV9jYWxsZWVfc2F2ZXMgKERJbW9kZSwgY2FsbGVlX29mZnNl dCwgUjBfUkVHTlVNLCBSMzBfUkVHTlVNLAorIAkJCQljYWxsZWVfYWRqdXN0ICE9IDAsICZjZmlf b3BzKTsKK0BAIC0zNzAyLDcgKzM5MDIsMTEgQEAgYWFyY2g2NF9leHBhbmRfZXBpbG9ndWUgKGJv b2wgZm9yX3NpYmNhbGwpCisgICAgICAgY2ZpX29wcyA9IE5VTEw7CisgICAgIH0KKyAKKy0gIGFh cmNoNjRfYWRkX3NwIChJUDBfUkVHTlVNLCBpbml0aWFsX2FkanVzdCwgZGZfcmVnc19ldmVyX2xp dmVfcCAoSVAwX1JFR05VTSkpOworKyAgLyogQSBzdGFjayBjbGFzaCBwcm90ZWN0aW9uIHByb2xv Z3VlIG1heSBub3QgaGF2ZSBsZWZ0IElQMF9SRUdOVU0KKysgICAgIGluIGEgdXNhYmxlIHN0YXRl LiAgKi8KKysgIGFhcmNoNjRfYWRkX3NwIChJUDBfUkVHTlVNLCBpbml0aWFsX2FkanVzdCwKKysJ CSAgKGZsYWdfc3RhY2tfY2xhc2hfcHJvdGVjdGlvbgorKwkJICAgfHwgZGZfcmVnc19ldmVyX2xp dmVfcCAoSVAwX1JFR05VTSkpKTsKKyAKKyAgIGlmIChjZmlfb3BzKQorICAgICB7CitAQCAtODY5 Niw2ICs4OTAwLDEyIEBAIGFhcmNoNjRfb3ZlcnJpZGVfb3B0aW9uc19pbnRlcm5hbCAoc3RydWN0 IGdjY19vcHRpb25zICpvcHRzKQorIAkJCSAgIG9wdHMtPnhfcGFyYW1fdmFsdWVzLAorIAkJCSAg IGdsb2JhbF9vcHRpb25zX3NldC54X3BhcmFtX3ZhbHVlcyk7CisgCisrICAvKiBXZSBhc3N1bWUg dGhlIGd1YXJkIHBhZ2UgaXMgNjRrLiAgKi8KKysgIG1heWJlX3NldF9wYXJhbV92YWx1ZSAoUEFS QU1fU1RBQ0tfQ0xBU0hfUFJPVEVDVElPTl9HVUFSRF9TSVpFLAorKwkJCSAxNiwKKysJCQkgb3B0 cy0+eF9wYXJhbV92YWx1ZXMsCisrCQkJIGdsb2JhbF9vcHRpb25zX3NldC54X3BhcmFtX3ZhbHVl cyk7CisrCisgICBhYXJjaDY0X292ZXJyaWRlX29wdGlvbnNfYWZ0ZXJfY2hhbmdlXzEgKG9wdHMp OworIH0KKyAKK0BAIC0xNDcyNiw2ICsxNDkzNiwyOCBAQCBhYXJjaDY0X3NjaGVkX2Nhbl9zcGVj dWxhdGVfaW5zbiAocnR4X2luc24gKmluc24pCisgICAgIH0KKyB9CisgCisrLyogSXQgaGFzIGJl ZW4gZGVjaWRlZCB0aGF0IHRvIGFsbG93IHVwIHRvIDFrYiBvZiBvdXRnb2luZyBhcmd1bWVudAor KyAgIHNwYWNlIHRvIGJlIGFsbG9jYXRlZCB3L28gcHJvYmluZy4gIElmIG1vcmUgdGhhbiAxa2Ig b2Ygb3V0Z29pbmcKKysgICBhcmdtZW50IHNwYWNlIGlzIGFsbG9jYXRlZCwgdGhlbiBpdCBtdXN0 IGJlIHByb2JlZCBhbmQgdGhlIGxhc3QKKysgICBwcm9iZSBtdXN0IG9jY3VyIG5vIG1vcmUgdGhh biAxa2J5dGUgYXdheSBmcm9tIHRoZSBlbmQgb2YgdGhlCisrICAgYWxsb2NhdGVkIHNwYWNlLgor KworKyAgIFRoaXMgaW1wbGllcyB0aGF0IHRoZSByZXNpZHVhbCBwYXJ0IG9mIGFuIGFsbG9jYSBh bGxvY2F0aW9uIG1heQorKyAgIG5lZWQgcHJvYmluZyBpbiBjYXNlcyB3aGVyZSB0aGUgZ2VuZXJp YyBjb2RlIG1pZ2h0IG5vdCBvdGhlcndpc2UKKysgICB0aGluayBhIHByb2JlIGlzIG5lZWRlZC4K KysKKysgICBUaGlzIHRhcmdldCBob29rIHJldHVybnMgVFJVRSB3aGVuIGFsbG9jYXRpbmcgUkVT SURVQUwgYnl0ZXMgb2YKKysgICBhbGxvY2Egc3BhY2UgcmVxdWlyZXMgYW4gYWRkaXRpb25hbCBw cm9iZSwgb3RoZXJ3aXNlIEZBTFNFIGlzCisrICAgcmV0dXJuZWQuICAqLworKworK3N0YXRpYyBi b29sCisrYWFyY2g2NF9zdGFja19jbGFzaF9wcm90ZWN0aW9uX2ZpbmFsX2R5bmFtaWNfcHJvYmUg KHJ0eCByZXNpZHVhbCkKKyt7CisrICByZXR1cm4gKHJlc2lkdWFsID09IENPTlNUMF9SVFggKFBt b2RlKQorKwkgIHx8IEdFVF9DT0RFIChyZXNpZHVhbCkgIT0gQ09OU1RfSU5UCisrCSAgfHwgSU5U VkFMIChyZXNpZHVhbCkgPj0gMTAyNCk7CisrfQorKworIC8qIFRhcmdldC1zcGVjaWZpYyBzZWxm dGVzdHMuICAqLworIAorICNpZiBDSEVDS0lOR19QCitAQCAtMTUxNTQsNiArMTUzODYsMTAgQEAg YWFyY2g2NF9saWJnY2NfZmxvYXRpbmdfbW9kZV9zdXBwb3J0ZWRfcAorICN1bmRlZiBUQVJHRVRf Q1VTVE9NX0ZVTkNUSU9OX0RFU0NSSVBUT1JTCisgI2RlZmluZSBUQVJHRVRfQ1VTVE9NX0ZVTkNU SU9OX0RFU0NSSVBUT1JTIDQKKyAKKysjdW5kZWYgVEFSR0VUX1NUQUNLX0NMQVNIX1BST1RFQ1RJ T05fRklOQUxfRFlOQU1JQ19QUk9CRQorKyNkZWZpbmUgVEFSR0VUX1NUQUNLX0NMQVNIX1BST1RF Q1RJT05fRklOQUxfRFlOQU1JQ19QUk9CRSBcCisrICBhYXJjaDY0X3N0YWNrX2NsYXNoX3Byb3Rl Y3Rpb25fZmluYWxfZHluYW1pY19wcm9iZQorKworICNpZiBDSEVDS0lOR19QCisgI3VuZGVmIFRB UkdFVF9SVU5fVEFSR0VUX1NFTEZURVNUUworICNkZWZpbmUgVEFSR0VUX1JVTl9UQVJHRVRfU0VM RlRFU1RTIHNlbGZ0ZXN0OjphYXJjaDY0X3J1bl9zZWxmdGVzdHMKK2RpZmYgLS1naXQgYS9nY2Mv Y29uZmlnL2FhcmNoNjQvYWFyY2g2NC5tZCBiL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0Lm1k CitpbmRleCA1MTM2OGUyOWYyZC4uMDliMzUzZDc0NzAgMTAwNjQ0CistLS0gYS9nY2MvY29uZmln L2FhcmNoNjQvYWFyY2g2NC5tZAorKysrIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQubWQK K0BAIC01NDEzLDcgKzU0MTMsNyBAQAorICkKKyAKKyAoZGVmaW5lX2luc24gInByb2JlX3N0YWNr X3JhbmdlIgorLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REkgMCAicmVnaXN0ZXJfb3BlcmFuZCIg Ij1yIikKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9 cmsiKQorIAkodW5zcGVjX3ZvbGF0aWxlOkRJIFsobWF0Y2hfb3BlcmFuZDpESSAxICJyZWdpc3Rl cl9vcGVyYW5kIiAiMCIpCisgCQkJICAgICAobWF0Y2hfb3BlcmFuZDpESSAyICJyZWdpc3Rlcl9v cGVyYW5kIiAiciIpXQorIAkJCSAgICAgIFVOU1BFQ1ZfUFJPQkVfU1RBQ0tfUkFOR0UpKV0KK2Rp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdGFjay1jaGVjay0x Mi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3RhY2stY2hlY2stMTIuYwor bmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwLi4yY2UzODQ4M2I2YgorLS0t IC9kZXYvbnVsbAorKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3RhY2st Y2hlY2stMTIuYworQEAgLTAsMCArMSwyMCBAQAorKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisr LyogeyBkZy1vcHRpb25zICItTzIgLWZzdGFjay1jbGFzaC1wcm90ZWN0aW9uIC0tcGFyYW0gc3Rh Y2stY2xhc2gtcHJvdGVjdGlvbi1ndWFyZC1zaXplPTEyIiB9ICovCisrLyogeyBkZy1yZXF1aXJl LWVmZmVjdGl2ZS10YXJnZXQgc3VwcG9ydHNfc3RhY2tfY2xhc2hfcHJvdGVjdGlvbiB9ICovCisr CisrZXh0ZXJuIHZvaWQgYXJmICh1bnNpZ25lZCBsb25nIGludCAqLCB1bnNpZ25lZCBsb25nIGlu dCAqKTsKKyt2b2lkCisrZnJvYiAoKQorK3sKKysgIHVuc2lnbmVkIGxvbmcgaW50IG51bVsxMDAw XTsKKysgIHVuc2lnbmVkIGxvbmcgaW50IGRlblsxMDAwXTsKKysgIGFyZiAoZGVuLCBudW0pOwor K30KKysKKysvKiBUaGlzIHZlcmlmaWVzIHRoYXQgdGhlIHNjaGVkdWxlciBkaWQgbm90IGJyZWFr IHRoZSBkZXBlbmRlbmNpZXMKKysgICBieSBhZGp1c3RpbmcgdGhlIG9mZnNldHMgd2l0aGluIHRo ZSBwcm9iZSBhbmQgdGhhdCB0aGUgc2NoZWR1bGVyCisrICAgZGlkIG5vdCByZW9yZGVyIGFyb3Vu ZCB0aGUgc3RhY2sgcHJvYmVzLiAgKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMgInN1YlxcdHNwLCBzcCwgIzQwOTZcXG5cXHRzdHJcXHR4enIsIC5zcCwgNDA4OC4iIDMg fSB9ICovCisrCisrCisrCitkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2Fh cmNoNjQvc3RhY2stY2hlY2stMTMuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0 L3N0YWNrLWNoZWNrLTEzLmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAw MC4uZDg4ODY4MzU5ODkKKy0tLSAvZGV2L251bGwKKysrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9hYXJjaDY0L3N0YWNrLWNoZWNrLTEzLmMKK0BAIC0wLDAgKzEsMjggQEAKKysvKiB7IGRn LWRvIGNvbXBpbGUgfSAqLworKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1mc3RhY2stY2xhc2gtcHJv dGVjdGlvbiAtLXBhcmFtIHN0YWNrLWNsYXNoLXByb3RlY3Rpb24tZ3VhcmQtc2l6ZT0xMiIgfSAq LworKy8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IHN1cHBvcnRzX3N0YWNrX2NsYXNo X3Byb3RlY3Rpb24gfSAqLworKworKyNkZWZpbmUgQVJHMzIoWCkgWCxYLFgsWCxYLFgsWCxYLFgs WCxYLFgsWCxYLFgsWCxYLFgsWCxYLFgsWCxYLFgsWCxYLFgsWCxYLFgsWCxYCisrI2RlZmluZSBB UkcxOTIoWCkgQVJHMzIoWCksQVJHMzIoWCksQVJHMzIoWCksQVJHMzIoWCksQVJHMzIoWCksQVJH MzIoWCkKKyt2b2lkIG91dDEoQVJHMTkyKF9faW50MTI4KSk7CisraW50IHQxKGludCk7CisrCisr aW50IHQzKGludCB4KQorK3sKKysgIGlmICh4IDwgMTAwMCkKKysgICAgcmV0dXJuIHQxICh4KSAr IDE7CisrCisrICBvdXQxIChBUkcxOTIoMSkpOworKyAgcmV0dXJuIDA7CisrfQorKworKworKwor Ky8qIFRoaXMgdGVzdCBjcmVhdGVzIGEgbGFyZ2UgKD4gMWspIG91dGdvaW5nIGFyZ3VtZW50IGFy ZWEgdGhhdCBuZWVkcworKyAgIHRvIGJlIHByb2JlZC4gIFdlIGRvbid0IHRlc3QgdGhlIGV4YWN0 IHNpemUgb2YgdGhlIHNwYWNlIG9yIHRoZQorKyAgIGV4YWN0IG9mZnNldCB0byBtYWtlIHRoZSB0 ZXN0IGEgbGl0dGxlIGxlc3Mgc2Vuc2l0aXZlIHRvIHRyaXZpYWwKKysgICBvdXRwdXQgY2hhbmdl cy4gICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJzdWJcXHRzcCwg c3AsICMuLi4uXFxuXFx0c3RyXFx0eHpyLCBcXFxbc3AiIDEgfSB9ICovCisrCisrCisrCitkaWZm IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3RhY2stY2hlY2stMTQu YyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N0YWNrLWNoZWNrLTE0LmMKK25l dyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMC4uNTlmZmUwMTM3NmQKKy0tLSAv ZGV2L251bGwKKysrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N0YWNrLWNo ZWNrLTE0LmMKK0BAIC0wLDAgKzEsMjUgQEAKKysvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworKy8q IHsgZGctb3B0aW9ucyAiLU8yIC1mc3RhY2stY2xhc2gtcHJvdGVjdGlvbiAtLXBhcmFtIHN0YWNr LWNsYXNoLXByb3RlY3Rpb24tZ3VhcmQtc2l6ZT0xMiIgfSAqLworKy8qIHsgZGctcmVxdWlyZS1l ZmZlY3RpdmUtdGFyZ2V0IHN1cHBvcnRzX3N0YWNrX2NsYXNoX3Byb3RlY3Rpb24gfSAqLworKwor K2ludCB0MShpbnQpOworKworK2ludCB0MihpbnQgeCkKKyt7CisrICBjaGFyICpwID0gX19idWls dGluX2FsbG9jYSAoNDA1MCk7CisrICB4ID0gdDEgKHgpOworKyAgcmV0dXJuIHBbeF07CisrfQor KworKworKy8qIFRoaXMgdGVzdCBoYXMgYSBjb25zdGFudCBzaXplZCBhbGxvY2EgdGhhdCBpcyBz bWFsbGVyIHRoYW4gdGhlCisrICAgcHJvYmUgaW50ZXJ2YWwuICBCdXQgaXQgYWN0dWFsbHkgcmVx dWlyZXMgdHdvIHByb2JlcyBpbnN0ZWFkCisrICAgb2Ygb25lIGJlY2F1c2Ugb2YgdGhlIG9wdGlt aXN0aWMgYXNzdW1wdGlvbnMgd2UgbWFkZSBpbiB0aGUKKysgICBhYXJjaDY0IHByb2xvZ3VlIGNv ZGUgV1JUIHByb2Jpbmcgc3RhdGUuIAorKworKyAgIFRoZSBmb3JtIGNhbiBjaGFuZ2UgcXVpdGUg YSBiaXQgc28gd2UganVzdCBjaGVjayBmb3IgdHdvCisrICAgcHJvYmVzIHdpdGhvdXQgbG9va2lu ZyBhdCB0aGUgYWN0dWFsIGFkZHJlc3MuICAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyAic3RyXFx0eHpyLCIgMiB9IH0gKi8KKysKKysKKysKK2RpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdGFjay1jaGVjay0xNS5jIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3RhY2stY2hlY2stMTUuYworbmV3IGZpbGUgbW9k ZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwLi5lMDZkYjZkYzJmMAorLS0tIC9kZXYvbnVsbAor KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3RhY2stY2hlY2stMTUuYwor QEAgLTAsMCArMSwyNCBAQAorKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisrLyogeyBkZy1vcHRp b25zICItTzIgLWZzdGFjay1jbGFzaC1wcm90ZWN0aW9uIC0tcGFyYW0gc3RhY2stY2xhc2gtcHJv dGVjdGlvbi1ndWFyZC1zaXplPTEyIiB9ICovCisrLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10 YXJnZXQgc3VwcG9ydHNfc3RhY2tfY2xhc2hfcHJvdGVjdGlvbiB9ICovCisrCisraW50IHQxKGlu dCk7CisrCisraW50IHQyKGludCB4KQorK3sKKysgIGNoYXIgKnAgPSBfX2J1aWx0aW5fYWxsb2Nh ICh4KTsKKysgIHggPSB0MSAoeCk7CisrICByZXR1cm4gcFt4XTsKKyt9CisrCisrCisrLyogVGhp cyB0ZXN0IGhhcyBhIHZhcmlhYmxlIHNpemVkIGFsbG9jYS4gIEl0IHJlcXVpcmVzIDMgcHJvYmVz LgorKyAgIE9uZSBpbiB0aGUgbG9vcCwgb25lIGZvciB0aGUgcmVzaWR1YWwgYW5kIGF0IHRoZSBl bmQgb2YgdGhlCisrICAgYWxsb2NhIGFyZWEuIAorKworKyAgIFRoZSBmb3JtIGNhbiBjaGFuZ2Ug cXVpdGUgYSBiaXQgc28gd2UganVzdCBjaGVjayBmb3IgdHdvCisrICAgcHJvYmVzIHdpdGhvdXQg bG9va2luZyBhdCB0aGUgYWN0dWFsIGFkZHJlc3MuICAqLworKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyAic3RyXFx0eHpyLCIgMyB9IH0gKi8KKysKKysKKysKK2RpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2xpYi90YXJnZXQtc3VwcG9ydHMuZXhwIGIvZ2NjL3Rlc3RzdWl0 ZS9saWIvdGFyZ2V0LXN1cHBvcnRzLmV4cAoraW5kZXggMDJlYjIwNjYzOTMuLjU0MzFjMjM2YWEx IDEwMDY0NAorLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9saWIvdGFyZ2V0LXN1cHBvcnRzLmV4cAorKysr IGIvZ2NjL3Rlc3RzdWl0ZS9saWIvdGFyZ2V0LXN1cHBvcnRzLmV4cAorQEAgLTgzODQsMTQgKzgz ODQsOSBAQCBwcm9jIGNoZWNrX2VmZmVjdGl2ZV90YXJnZXRfYXJtX2NvcHJvYzRfb2sgeyB9IHsK KyAjIAorIHByb2MgY2hlY2tfZWZmZWN0aXZlX3RhcmdldF9zdXBwb3J0c19zdGFja19jbGFzaF9w cm90ZWN0aW9uIHsgfSB7CisgCistICAgIyBUZW1wb3JhcnkgdW50aWwgdGhlIHRhcmdldCBiaXRz IGFyZSBmdWxseSBBQ0snZC4KKy0jICBpZiB7IFtpc3RhcmdldCBhYXJjaCotKi0qXSB9IHsKKy0j CXJldHVybiAxCistIyAgfQorLQorICAgICBpZiB7IFtpc3RhcmdldCB4ODZfNjQtKi0qXSB8fCBb aXN0YXJnZXQgaT84Ni0qLSpdIAorIAkgIHx8IFtpc3RhcmdldCBwb3dlcnBjKi0qLSpdIHx8IFtp c3RhcmdldCByczYwMDAqLSotKl0KKy0JICB8fCBbaXN0YXJnZXQgczM5MCotKi0qXSB9IHsKKysJ ICB8fCBbaXN0YXJnZXQgYWFyY2g2NCotKipdIHx8IFtpc3RhcmdldCBzMzkwKi0qLSpdIH0gewor IAlyZXR1cm4gMQorICAgICB9CisgICByZXR1cm4gMAoKZGlmZiAtLWdpdCBhL2djYzctcmgxNTEy NTI5LTE3LnBhdGNoIGIvZ2NjNy1yaDE1MTI1MjktMTcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uZTNiODEzYwotLS0gL2Rldi9udWxsCisrKyBiL2djYzctcmgxNTEy NTI5LTE3LnBhdGNoCkBAIC0wLDAgKzEsNDAgQEAKK2NvbW1pdCA1ZWQ1ZDU2ZDM2ZmM1MDYyN2Vk ZjUzN2M3NWFmYTBmZGY2YmE0ZjVkCitBdXRob3I6IEplZmYgTGF3IDxsYXdAcmVkaGF0LmNvbT4K K0RhdGU6ICAgV2VkIE5vdiAyMiAxMjowMjo1MCAyMDE3IC0wNzAwCisKKyAgICAyMDE3LTEwLTMx ICBTZWdoZXIgQm9lc3Nlbmtvb2wgIDxzZWdoZXJAa2VybmVsLmNyc2FoaW5nLm9yZz4KKyAgICAK KyAgICAgICAgICAgUFIgdGFyZ2V0LzgyNjc0CisgICAgICAgICAgICogY29uZmlnL3JzNjAwMC9y czYwMDAubWQgKGFsbG9jYXRlX3N0YWNrKTogRm9yY2UgdXBkYXRlIGludGVydmFsCisgICAgICAg ICAgIGludG8gYSByZWdpc3RlciBpZiBpdCBkb2VzIG5vdCBmaXQgaW50byBhbiBpbW1lZGlhdGUg b2Zmc2V0IGZpZWxkLgorCitkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLm1k IGIvZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLm1kCitpbmRleCA4NDMxNDhlOTcwMy4uNGI5NzMy YTc4ZWMgMTAwNjQ0CistLS0gYS9nY2MvY29uZmlnL3JzNjAwMC9yczYwMDAubWQKKysrKyBiL2dj Yy9jb25maWcvcnM2MDAwL3JzNjAwMC5tZAorQEAgLTEwNDUwLDYgKzEwNDUwLDkgQEAKKyAJewor IAkgIHJ0eCBsb29wX2xhYiwgZW5kX2xvb3A7CisgCSAgYm9vbCByb3RhdGVkID0gQ09OU1RfSU5U X1AgKHJvdW5kZWRfc2l6ZSk7CisrCSAgcnR4IHVwZGF0ZSA9IEdFTl9JTlQgKC1wcm9iZV9pbnRl cnZhbCk7CisrCSAgaWYgKHByb2JlX2ludGVydmFsID4gMzI3NjgpCisrCSAgICB1cGRhdGUgPSBm b3JjZV9yZWcgKFBtb2RlLCB1cGRhdGUpOworIAorIAkgIGVtaXRfc3RhY2tfY2xhc2hfcHJvdGVj dGlvbl9wcm9iZV9sb29wX3N0YXJ0ICgmbG9vcF9sYWIsICZlbmRfbG9vcCwKKyAJCQkJCQkJbGFz dF9hZGRyLCByb3RhdGVkKTsKK0BAIC0xMDQ1NywxMyArMTA0NjAsMTEgQEAKKyAJICBpZiAoUG1v ZGUgPT0gU0ltb2RlKQorIAkgICAgZW1pdF9pbnNuIChnZW5fbW92c2lfdXBkYXRlX3N0YWNrIChz dGFja19wb2ludGVyX3J0eCwKKyAJCQkJCSAgICAgICBzdGFja19wb2ludGVyX3J0eCwKKy0JCQkJ CSAgICAgICBHRU5fSU5UICgtcHJvYmVfaW50ZXJ2YWwpLAorLQkJCQkJICAgICAgIGNoYWluKSk7 CisrCQkJCQkgICAgICAgdXBkYXRlLCBjaGFpbikpOworIAkgIGVsc2UKKyAJICAgIGVtaXRfaW5z biAoZ2VuX21vdmRpX2RpX3VwZGF0ZV9zdGFjayAoc3RhY2tfcG9pbnRlcl9ydHgsCisgCQkJCQkg ICAgICAgICAgc3RhY2tfcG9pbnRlcl9ydHgsCistCQkJCQkgICAgICAgICAgR0VOX0lOVCAoLXBy b2JlX2ludGVydmFsKSwKKy0JCQkJCSAgICAgICAgICBjaGFpbikpOworKwkJCQkJICAgICAgICAg IHVwZGF0ZSwgY2hhaW4pKTsKKyAJICBlbWl0X3N0YWNrX2NsYXNoX3Byb3RlY3Rpb25fcHJvYmVf bG9vcF9lbmQgKGxvb3BfbGFiLCBlbmRfbG9vcCwKKyAJCQkJCQkgICAgICBsYXN0X2FkZHIsIHJv dGF0ZWQpOworIAl9CgpkaWZmIC0tZ2l0IGEvZ2NjNy1yaDE1MTI1MjktMTgucGF0Y2ggYi9nY2M3 LXJoMTUxMjUyOS0xOC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4w YWFmMDFmCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjNy1yaDE1MTI1MjktMTgucGF0Y2gKQEAgLTAs MCArMSwxMyBAQAorZGlmZiAtLWdpdCBhL2xpYnNhbml0aXplci9zYW5pdGl6ZXJfY29tbW9uL3Nh bml0aXplcl9saW51eC5jYyBiL2xpYnNhbml0aXplci9zYW5pdGl6ZXJfY29tbW9uL3Nhbml0aXpl cl9saW51eC5jYworaW5kZXggNWI2ZjE4NjAyZTcuLmI1ZTk2YTFhMGU0IDEwMDY0NAorLS0tIGEv bGlic2FuaXRpemVyL3Nhbml0aXplcl9jb21tb24vc2FuaXRpemVyX2xpbnV4LmNjCisrKysgYi9s aWJzYW5pdGl6ZXIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfbGludXguY2MKK0BAIC0xMjYy LDcgKzEyNjIsNyBAQCBzdHJ1Y3QgX19zYW5pdGl6ZXJfZXNyX2NvbnRleHQgeworIAorIHN0YXRp YyBib29sIEFhcmNoNjRHZXRFU1IodWNvbnRleHRfdCAqdWNvbnRleHQsIHU2NCAqZXNyKSB7Cisg ICBzdGF0aWMgY29uc3QgdTMyIGtFc3JNYWdpYyA9IDB4NDU1MzUyMDE7CistICB1OCAqYXV4ID0g dWNvbnRleHQtPnVjX21jb250ZXh0Ll9fcmVzZXJ2ZWQ7CisrICB1OCAqYXV4ID0gdWNvbnRleHQt PnVjX21jb250ZXh0Ll9fZ2xpYmNfcmVzZXJ2ZWQxOworICAgd2hpbGUgKHRydWUpIHsKKyAgICAg X2FhcmNoNjRfY3R4ICpjdHggPSAoX2FhcmNoNjRfY3R4ICopYXV4OworICAgICBpZiAoY3R4LT5z aXplID09IDApIGJyZWFrOwoKZGlmZiAtLWdpdCBhL2djYzctcmgxNTEyNTI5LTIucGF0Y2ggYi9n Y2M3LXJoMTUxMjUyOS0yLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmUzMzRiNWMKLS0tIC9kZXYvbnVsbAorKysgYi9nY2M3LXJoMTUxMjUyOS0yLnBhdGNoCkBAIC0w LDAgKzEsNzM1IEBACitjb21taXQgYmVkMjc4NDRiODBlMTdhZDc4NjAyOGEwYTgyYzdkNDc5OTBk MTViYgorQXV0aG9yOiBsYXcgPGxhd0AxMzhiYzc1ZC0wZDA0LTA0MTAtOTYxZi04MmVlNzJiMDU0 YTQ+CitEYXRlOiAgIFdlZCBTZXAgMjAgMDU6MDU6MTIgMjAxNyArMDAwMAorCisgICAgMjAxNy0w OS0xOCAgSmVmZiBMYXcgIDxsYXdAcmVkaGF0LmNvbT4KKyAgICAKKyAgICAgICAgICAgICogZXhw bG93LmM6IEluY2x1ZGUgInBhcmFtcy5oIi4KKyAgICAgICAgICAgIChhbnRpX2FkanVzdF9zdGFj a19hbmRfcHJvYmVfc3RhY2tfY2xhc2gpOiBOZXcgZnVuY3Rpb24uCisgICAgICAgICAgICAoZ2V0 X3N0YWNrX2NoZWNrX3Byb3RlY3QpOiBMaWtld2lzZS4KKyAgICAgICAgICAgIChjb21wdXRlX3N0 YWNrX2NsYXNoX3Byb3RlY3Rpb25fbG9vcF9kYXRhKTogTGlrZXdpc2UuCisgICAgICAgICAgICAo ZW1pdF9zdGFja19jbGFzaF9wcm90ZWN0aW9uX2xvb3Bfc3RhcnQpOiBMaWtld2lzZS4KKyAgICAg ICAgICAgIChlbWl0X3N0YWNrX2NsYXNoX3Byb3RlY3Rpb25fbG9vcF9lbmQpOiBMaWtld2lzZS4K KyAgICAgICAgICAgIChhbGxvY2F0ZV9keW5hbWljX3N0YWNrX3NwYWNlKTogVXNlIGdldF9zdGFj a19jaGVja19wcm90ZWN0LgorICAgICAgICAgICAgVXNlIGFudGlfYWRqdXN0X3N0YWNrX2FuZF9w cm9iZV9zdGFja19jbGFzaC4KKyAgICAgICAgICAgICogZXhwbG93LmggKGNvbXB1dGVfc3RhY2tf Y2xhc2hfcHJvdGVjdGlvbl9sb29wX2RhdGEpOiBQcm90b3R5cGUuCisgICAgICAgICAgICAoZW1p dF9zdGFja19jbGFzaF9wcm90ZWN0aW9uX2xvb3Bfc3RhcnQpOiBMaWtld2lzZS4KKyAgICAgICAg ICAgIChlbWl0X3N0YWNrX2NsYXNoX3Byb3RlY3Rpb25fbG9vcF9lbmQpOiBMaWtld2lzZS4KKyAg ICAgICAgICAgICogcnRsLmggKGdldF9zdGFja19jaGVja19wcm90ZWN0KTogUHJvdG90eXBlLgor ICAgICAgICAgICAgKiB0YXJnZXQuZGVmIChzdGFja19jbGFzaF9wcm90ZWN0aW9uX2ZpbmFsX2R5 bmFtaWNfcHJvYmUpOiBOZXcgaG9vay4KKyAgICAgICAgICAgICogdGFyZ2hvb2tzLmMgKGRlZmF1 bHRfc3RhY2tfY2xhc2hfcHJvdGVjdGlvbl9maW5hbF9keW5hbWljX3Byb2JlKTogTmV3LgorICAg ICAgICAgICAgKiB0YXJnaG9va3MuaCAoZGVmYXVsdF9zdGFja19jbGFzaF9wcm90ZWN0aW9uX2Zp bmFsX2R5bmFtaWNfcHJvYmUpOgorICAgICAgICAgICAgUHJvdG90eXBlLgorICAgICAgICAgICAg KiBkb2MvdG0udGV4aS5pbiAoVEFSR0VUX1NUQUNLX0NMQVNIX1BST1RFQ1RJT05fRklOQUxfRFlO QU1JQ19QUk9CRSk6CisgICAgICAgICAgICBBZGQgQGhvb2suCisgICAgICAgICAgICAqIGRvYy90 bS50ZXhpOiBSZWJ1aWx0LgorICAgICAgICAgICAgKiBjb25maWcvYWFyY2g2NC9hYXJjaDY0LmMg KGFhcmNoNjRfZXhwYW5kX3Byb2xvZ3VlKTogVXNlCisgICAgICAgICAgICBnZXRfc3RhY2tfY2hl Y2tfcHJvdGVjdC4KKyAgICAgICAgICAgICogY29uZmlnL2FscGhhL2FscGhhLmMgKGFscGhhX2V4 cGFuZF9wcm9sb2d1ZSk6IExpa2V3aXNlLgorICAgICAgICAgICAgKiBjb25maWcvYXJtL2FybS5j IChhcm1fZXhwYW5kX3Byb2xvZ3VlKTogTGlrZXdpc2UuCisgICAgICAgICAgICAoYXJtX2ZyYW1l X3BvaW50ZXJfcmVxdWlyZWQpOiBMaWtld2lzZS4KKyAgICAgICAgICAgICogY29uZmlnL2kzODYv aTM4Ni5jIChpeDg2X2V4cGFuZF9wcm9sb2d1ZSk6IExpa2V3aXNlLgorICAgICAgICAgICAgKiBj b25maWcvaWE2NC9pYTY0LmMgKGlhNjRfZXhwYW5kX3Byb2xvZ3VlKTogTGlrZXdpc2UuCisgICAg ICAgICAgICAqIGNvbmZpZy9taXBzL21pcHMuYyAobWlwc19leHBhbmRfcHJvbG9ndWUpOiBMaWtl d2lzZS4KKyAgICAgICAgICAgICogY29uZmlnL3Bvd2VycGNzcGUvcG93ZXJwY3NwZS5jIChyczYw MDBfZW1pdF9wcm9sb2d1ZSk6IExpa2V3aXNlLgorICAgICAgICAgICAgKiBjb25maWcvcnM2MDAw L3JzNjAwMC5jIChyczYwMDBfZW1pdF9wcm9sb2d1ZSk6IExpa2V3aXNlLgorICAgICAgICAgICAg KiBjb25maWcvc3BhcmMvc3BhcmMuYyAoc3BhcmNfZXhwYW5kX3Byb2xvZ3VlKTogTGlrZXdpc2Uu CisgICAgICAgICAgICAoc3BhcmNfZmxhdF9leHBhbmRfcHJvbG9ndWUpOiBMaWtld2lzZS4KKyAg ICAKKyAgICAgICAgICAgICogZ2NjLmRnL3N0YWNrLWNoZWNrLTMuYzogTmV3IHRlc3QuCisgICAg CisgICAgZ2l0LXN2bi1pZDogc3ZuK3NzaDovL2djYy5nbnUub3JnL3N2bi9nY2MvdHJ1bmtAMjUy OTk1IDEzOGJjNzVkLTBkMDQtMDQxMC05NjFmLTgyZWU3MmIwNTRhNAorCitkaWZmIC0tZ2l0IGEv Z2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQuYyBiL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0 LmMKK2luZGV4IDFiZDAxMGJlNzU2Li43NWMxMmYxZGU2NSAxMDA2NDQKKy0tLSBhL2djYy9jb25m aWcvYWFyY2g2NC9hYXJjaDY0LmMKKysrKyBiL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LmMK K0BAIC0zNTgyLDEyICszNTgyLDE0IEBAIGFhcmNoNjRfZXhwYW5kX3Byb2xvZ3VlICh2b2lkKQor ICAgICB7CisgICAgICAgaWYgKGNydGwtPmlzX2xlYWYgJiYgIWNmdW4tPmNhbGxzX2FsbG9jYSkK KyAJeworLQkgIGlmIChmcmFtZV9zaXplID4gUFJPQkVfSU5URVJWQUwgJiYgZnJhbWVfc2l6ZSA+ IFNUQUNLX0NIRUNLX1BST1RFQ1QpCistCSAgICBhYXJjaDY0X2VtaXRfcHJvYmVfc3RhY2tfcmFu Z2UgKFNUQUNLX0NIRUNLX1BST1RFQ1QsCistCQkJCQkgICAgZnJhbWVfc2l6ZSAtIFNUQUNLX0NI RUNLX1BST1RFQ1QpOworKwkgIGlmIChmcmFtZV9zaXplID4gUFJPQkVfSU5URVJWQUwKKysJICAg ICAgJiYgZnJhbWVfc2l6ZSA+IGdldF9zdGFja19jaGVja19wcm90ZWN0ICgpKQorKwkgICAgYWFy Y2g2NF9lbWl0X3Byb2JlX3N0YWNrX3JhbmdlIChnZXRfc3RhY2tfY2hlY2tfcHJvdGVjdCAoKSwK KysJCQkJCSAgICAoZnJhbWVfc2l6ZQorKwkJCQkJICAgICAtIGdldF9zdGFja19jaGVja19wcm90 ZWN0ICgpKSk7CisgCX0KKyAgICAgICBlbHNlIGlmIChmcmFtZV9zaXplID4gMCkKKy0JYWFyY2g2 NF9lbWl0X3Byb2JlX3N0YWNrX3JhbmdlIChTVEFDS19DSEVDS19QUk9URUNULCBmcmFtZV9zaXpl KTsKKysJYWFyY2g2NF9lbWl0X3Byb2JlX3N0YWNrX3JhbmdlIChnZXRfc3RhY2tfY2hlY2tfcHJv dGVjdCAoKSwgZnJhbWVfc2l6ZSk7CisgICAgIH0KKyAKKyAgIGFhcmNoNjRfc3ViX3NwIChJUDBf UkVHTlVNLCBpbml0aWFsX2FkanVzdCwgdHJ1ZSk7CitkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9h bHBoYS9hbHBoYS5jIGIvZ2NjL2NvbmZpZy9hbHBoYS9hbHBoYS5jCitpbmRleCAwMGE2OWMxYTA4 ZC4uOTFmM2Q3Y2ZiZWIgMTAwNjQ0CistLS0gYS9nY2MvY29uZmlnL2FscGhhL2FscGhhLmMKKysr KyBiL2djYy9jb25maWcvYWxwaGEvYWxwaGEuYworQEAgLTc3NDEsNyArNzc0MSw3IEBAIGFscGhh X2V4cGFuZF9wcm9sb2d1ZSAodm9pZCkKKyAKKyAgIHByb2JlZF9zaXplID0gZnJhbWVfc2l6ZTsK KyAgIGlmIChmbGFnX3N0YWNrX2NoZWNrKQorLSAgICBwcm9iZWRfc2l6ZSArPSBTVEFDS19DSEVD S19QUk9URUNUOworKyAgICBwcm9iZWRfc2l6ZSArPSBnZXRfc3RhY2tfY2hlY2tfcHJvdGVjdCAo KTsKKyAKKyAgIGlmIChwcm9iZWRfc2l6ZSA8PSAzMjc2OCkKKyAgICAgeworZGlmZiAtLWdpdCBh L2djYy9jb25maWcvYXJtL2FybS5jIGIvZ2NjL2NvbmZpZy9hcm0vYXJtLmMKK2luZGV4IDFkZWQw ZDJhMTdkLi4yNDJkN2M3OTJmZSAxMDA2NDQKKy0tLSBhL2djYy9jb25maWcvYXJtL2FybS5jCisr KysgYi9nY2MvY29uZmlnL2FybS9hcm0uYworQEAgLTIxNjA0LDEzICsyMTYwNCwxMyBAQCBhcm1f ZXhwYW5kX3Byb2xvZ3VlICh2b2lkKQorIAorICAgICAgIGlmIChjcnRsLT5pc19sZWFmICYmICFj ZnVuLT5jYWxsc19hbGxvY2EpCisgCXsKKy0JICBpZiAoc2l6ZSA+IFBST0JFX0lOVEVSVkFMICYm IHNpemUgPiBTVEFDS19DSEVDS19QUk9URUNUKQorLQkgICAgYXJtX2VtaXRfcHJvYmVfc3RhY2tf cmFuZ2UgKFNUQUNLX0NIRUNLX1BST1RFQ1QsCistCQkJCQlzaXplIC0gU1RBQ0tfQ0hFQ0tfUFJP VEVDVCwKKysJICBpZiAoc2l6ZSA+IFBST0JFX0lOVEVSVkFMICYmIHNpemUgPiBnZXRfc3RhY2tf Y2hlY2tfcHJvdGVjdCAoKSkKKysJICAgIGFybV9lbWl0X3Byb2JlX3N0YWNrX3JhbmdlIChnZXRf c3RhY2tfY2hlY2tfcHJvdGVjdCAoKSwKKysJCQkJCXNpemUgLSBnZXRfc3RhY2tfY2hlY2tfcHJv dGVjdCAoKSwKKyAJCQkJCXJlZ25vLCBsaXZlX3JlZ3NfbWFzayk7CisgCX0KKyAgICAgICBlbHNl IGlmIChzaXplID4gMCkKKy0JYXJtX2VtaXRfcHJvYmVfc3RhY2tfcmFuZ2UgKFNUQUNLX0NIRUNL X1BST1RFQ1QsIHNpemUsCisrCWFybV9lbWl0X3Byb2JlX3N0YWNrX3JhbmdlIChnZXRfc3RhY2tf Y2hlY2tfcHJvdGVjdCAoKSwgc2l6ZSwKKyAJCQkJICAgIHJlZ25vLCBsaXZlX3JlZ3NfbWFzayk7 CisgICAgIH0KKyAKK0BAIC0yNzc1MSw3ICsyNzc1MSw3IEBAIGFybV9mcmFtZV9wb2ludGVyX3Jl cXVpcmVkICh2b2lkKQorIAl7CisgCSAgLyogV2UgZG9uJ3QgaGF2ZSB0aGUgZmluYWwgc2l6ZSBv ZiB0aGUgZnJhbWUgc28gYWRqdXN0LiAgKi8KKyAJICBzaXplICs9IDMyICogVU5JVFNfUEVSX1dP UkQ7CistCSAgaWYgKHNpemUgPiBQUk9CRV9JTlRFUlZBTCAmJiBzaXplID4gU1RBQ0tfQ0hFQ0tf UFJPVEVDVCkKKysJICBpZiAoc2l6ZSA+IFBST0JFX0lOVEVSVkFMICYmIHNpemUgPiBnZXRfc3Rh Y2tfY2hlY2tfcHJvdGVjdCAoKSkKKyAJICAgIHJldHVybiB0cnVlOworIAl9CisgICAgICAgZWxz ZQorZGlmZiAtLWdpdCBhL2djYy9jb25maWcvaTM4Ni9pMzg2LmMgYi9nY2MvY29uZmlnL2kzODYv aTM4Ni5jCitpbmRleCAyZDE2Mzc5N2JhMC4uNjBiYWI5YTI2YTYgMTAwNjQ0CistLS0gYS9nY2Mv Y29uZmlnL2kzODYvaTM4Ni5jCisrKysgYi9nY2MvY29uZmlnL2kzODYvaTM4Ni5jCitAQCAtMTQw MzcsNyArMTQwMzcsNyBAQCBpeDg2X2V4cGFuZF9wcm9sb2d1ZSAodm9pZCkKKyAJICBIT1NUX1dJ REVfSU5UIHNpemUgPSBhbGxvY2F0ZTsKKyAKKyAJICBpZiAoVEFSR0VUXzY0QklUICYmIHNpemUg Pj0gSE9TVF9XSURFX0lOVF9DICgweDgwMDAwMDAwKSkKKy0JICAgIHNpemUgPSAweDgwMDAwMDAw IC0gU1RBQ0tfQ0hFQ0tfUFJPVEVDVCAtIDE7CisrCSAgICBzaXplID0gMHg4MDAwMDAwMCAtIGdl dF9zdGFja19jaGVja19wcm90ZWN0ICgpIC0gMTsKKyAKKyAJICBpZiAoVEFSR0VUX1NUQUNLX1BS T0JFKQorIAkgICAgeworQEAgLTE0MDQ3LDE4ICsxNDA0NywyMCBAQCBpeDg2X2V4cGFuZF9wcm9s b2d1ZSAodm9pZCkKKyAJCSAgICBpeDg2X2VtaXRfcHJvYmVfc3RhY2tfcmFuZ2UgKDAsIHNpemUp OworIAkJfQorIAkgICAgICBlbHNlCistCQlpeDg2X2VtaXRfcHJvYmVfc3RhY2tfcmFuZ2UgKDAs IHNpemUgKyBTVEFDS19DSEVDS19QUk9URUNUKTsKKysJCWl4ODZfZW1pdF9wcm9iZV9zdGFja19y YW5nZSAoMCwKKysJCQkJCSAgICAgc2l6ZSArIGdldF9zdGFja19jaGVja19wcm90ZWN0ICgpKTsK KyAJICAgIH0KKyAJICBlbHNlCisgCSAgICB7CisgCSAgICAgIGlmIChjcnRsLT5pc19sZWFmICYm ICFjZnVuLT5jYWxsc19hbGxvY2EpCisgCQl7CistCQkgIGlmIChzaXplID4gUFJPQkVfSU5URVJW QUwgJiYgc2l6ZSA+IFNUQUNLX0NIRUNLX1BST1RFQ1QpCistCQkgICAgaXg4Nl9lbWl0X3Byb2Jl X3N0YWNrX3JhbmdlIChTVEFDS19DSEVDS19QUk9URUNULAorLQkJCQkJCSBzaXplIC0gU1RBQ0tf Q0hFQ0tfUFJPVEVDVCk7CisrCQkgIGlmIChzaXplID4gUFJPQkVfSU5URVJWQUwKKysJCSAgICAg ICYmIHNpemUgPiBnZXRfc3RhY2tfY2hlY2tfcHJvdGVjdCAoKSkKKysJCSAgICBpeDg2X2VtaXRf cHJvYmVfc3RhY2tfcmFuZ2UgKGdldF9zdGFja19jaGVja19wcm90ZWN0ICgpLAorKwkJCQkJCSBz aXplIC0gZ2V0X3N0YWNrX2NoZWNrX3Byb3RlY3QgKCkpOworIAkJfQorIAkgICAgICBlbHNlCist CQlpeDg2X2VtaXRfcHJvYmVfc3RhY2tfcmFuZ2UgKFNUQUNLX0NIRUNLX1BST1RFQ1QsIHNpemUp OworKwkJaXg4Nl9lbWl0X3Byb2JlX3N0YWNrX3JhbmdlIChnZXRfc3RhY2tfY2hlY2tfcHJvdGVj dCAoKSwgc2l6ZSk7CisgCSAgICB9CisgCX0KKyAgICAgfQorZGlmZiAtLWdpdCBhL2djYy9jb25m aWcvaWE2NC9pYTY0LmMgYi9nY2MvY29uZmlnL2lhNjQvaWE2NC5jCitpbmRleCBhOWY0NzliNmU1 Yy4uMTdkNmIzMzE4YTYgMTAwNjQ0CistLS0gYS9nY2MvY29uZmlnL2lhNjQvaWE2NC5jCisrKysg Yi9nY2MvY29uZmlnL2lhNjQvaWE2NC5jCitAQCAtMzQ3NiwxNSArMzQ3NiwxNiBAQCBpYTY0X2V4 cGFuZF9wcm9sb2d1ZSAodm9pZCkKKyAKKyAgICAgICBpZiAoY3J0bC0+aXNfbGVhZiAmJiAhY2Z1 bi0+Y2FsbHNfYWxsb2NhKQorIAl7CistCSAgaWYgKHNpemUgPiBQUk9CRV9JTlRFUlZBTCAmJiBz aXplID4gU1RBQ0tfQ0hFQ0tfUFJPVEVDVCkKKy0JICAgIGlhNjRfZW1pdF9wcm9iZV9zdGFja19y YW5nZSAoU1RBQ0tfQ0hFQ0tfUFJPVEVDVCwKKy0JCQkJCSBzaXplIC0gU1RBQ0tfQ0hFQ0tfUFJP VEVDVCwKKysJICBpZiAoc2l6ZSA+IFBST0JFX0lOVEVSVkFMICYmIHNpemUgPiBnZXRfc3RhY2tf Y2hlY2tfcHJvdGVjdCAoKSkKKysJICAgIGlhNjRfZW1pdF9wcm9iZV9zdGFja19yYW5nZSAoZ2V0 X3N0YWNrX2NoZWNrX3Byb3RlY3QgKCksCisrCQkJCQkgc2l6ZSAtIGdldF9zdGFja19jaGVja19w cm90ZWN0ICgpLAorIAkJCQkJIGJzX3NpemUpOworLQkgIGVsc2UgaWYgKHNpemUgKyBic19zaXpl ID4gU1RBQ0tfQ0hFQ0tfUFJPVEVDVCkKKy0JICAgIGlhNjRfZW1pdF9wcm9iZV9zdGFja19yYW5n ZSAoU1RBQ0tfQ0hFQ0tfUFJPVEVDVCwgMCwgYnNfc2l6ZSk7CisrCSAgZWxzZSBpZiAoc2l6ZSAr IGJzX3NpemUgPiBnZXRfc3RhY2tfY2hlY2tfcHJvdGVjdCAoKSkKKysJICAgIGlhNjRfZW1pdF9w cm9iZV9zdGFja19yYW5nZSAoZ2V0X3N0YWNrX2NoZWNrX3Byb3RlY3QgKCksCisrCQkJCQkgMCwg YnNfc2l6ZSk7CisgCX0KKyAgICAgICBlbHNlIGlmIChzaXplICsgYnNfc2l6ZSA+IDApCistCWlh NjRfZW1pdF9wcm9iZV9zdGFja19yYW5nZSAoU1RBQ0tfQ0hFQ0tfUFJPVEVDVCwgc2l6ZSwgYnNf c2l6ZSk7CisrCWlhNjRfZW1pdF9wcm9iZV9zdGFja19yYW5nZSAoZ2V0X3N0YWNrX2NoZWNrX3By b3RlY3QgKCksIHNpemUsIGJzX3NpemUpOworICAgICB9CisgCisgICBpZiAoZHVtcF9maWxlKSAK K2RpZmYgLS1naXQgYS9nY2MvY29uZmlnL21pcHMvbWlwcy5jIGIvZ2NjL2NvbmZpZy9taXBzL21p cHMuYworaW5kZXggNmJmZDg2YTA3YWYuLjdkODVjZTcwNTVhIDEwMDY0NAorLS0tIGEvZ2NjL2Nv bmZpZy9taXBzL21pcHMuYworKysrIGIvZ2NjL2NvbmZpZy9taXBzL21pcHMuYworQEAgLTEyMDgx LDEyICsxMjA4MSwxMiBAQCBtaXBzX2V4cGFuZF9wcm9sb2d1ZSAodm9pZCkKKyAgICAgeworICAg ICAgIGlmIChjcnRsLT5pc19sZWFmICYmICFjZnVuLT5jYWxsc19hbGxvY2EpCisgCXsKKy0JICBp ZiAoc2l6ZSA+IFBST0JFX0lOVEVSVkFMICYmIHNpemUgPiBTVEFDS19DSEVDS19QUk9URUNUKQor LQkgICAgbWlwc19lbWl0X3Byb2JlX3N0YWNrX3JhbmdlIChTVEFDS19DSEVDS19QUk9URUNULAor LQkJCQkJIHNpemUgLSBTVEFDS19DSEVDS19QUk9URUNUKTsKKysJICBpZiAoc2l6ZSA+IFBST0JF X0lOVEVSVkFMICYmIHNpemUgPiBnZXRfc3RhY2tfY2hlY2tfcHJvdGVjdCAoKSkKKysJICAgIG1p cHNfZW1pdF9wcm9iZV9zdGFja19yYW5nZSAoZ2V0X3N0YWNrX2NoZWNrX3Byb3RlY3QgKCksCisr CQkJCQkgc2l6ZSAtIGdldF9zdGFja19jaGVja19wcm90ZWN0ICgpKTsKKyAJfQorICAgICAgIGVs c2UgaWYgKHNpemUgPiAwKQorLQltaXBzX2VtaXRfcHJvYmVfc3RhY2tfcmFuZ2UgKFNUQUNLX0NI RUNLX1BST1RFQ1QsIHNpemUpOworKwltaXBzX2VtaXRfcHJvYmVfc3RhY2tfcmFuZ2UgKGdldF9z dGFja19jaGVja19wcm90ZWN0ICgpLCBzaXplKTsKKyAgICAgfQorIAorICAgLyogU2F2ZSB0aGUg cmVnaXN0ZXJzLiAgQWxsb2NhdGUgdXAgdG8gTUlQU19NQVhfRklSU1RfU1RBQ0tfU1RFUAorZGlm ZiAtLWdpdCBhL2djYy9jb25maWcvcnM2MDAwL3JzNjAwMC5jIGIvZ2NjL2NvbmZpZy9yczYwMDAv cnM2MDAwLmMKK2luZGV4IDY2NDk2YTFmODBmLi4xODM2ZTFkMTQ3ZCAxMDA2NDQKKy0tLSBhL2dj Yy9jb25maWcvcnM2MDAwL3JzNjAwMC5jCisrKysgYi9nY2MvY29uZmlnL3JzNjAwMC9yczYwMDAu YworQEAgLTI5Mjk0LDEyICsyOTI5NCwxMiBAQCByczYwMDBfZW1pdF9wcm9sb2d1ZSAodm9pZCkK KyAKKyAgICAgICBpZiAoY3J0bC0+aXNfbGVhZiAmJiAhY2Z1bi0+Y2FsbHNfYWxsb2NhKQorIAl7 CistCSAgaWYgKHNpemUgPiBQUk9CRV9JTlRFUlZBTCAmJiBzaXplID4gU1RBQ0tfQ0hFQ0tfUFJP VEVDVCkKKy0JICAgIHJzNjAwMF9lbWl0X3Byb2JlX3N0YWNrX3JhbmdlIChTVEFDS19DSEVDS19Q Uk9URUNULAorLQkJCQkJICAgc2l6ZSAtIFNUQUNLX0NIRUNLX1BST1RFQ1QpOworKwkgIGlmIChz aXplID4gUFJPQkVfSU5URVJWQUwgJiYgc2l6ZSA+IGdldF9zdGFja19jaGVja19wcm90ZWN0ICgp KQorKwkgICAgcnM2MDAwX2VtaXRfcHJvYmVfc3RhY2tfcmFuZ2UgKGdldF9zdGFja19jaGVja19w cm90ZWN0ICgpLAorKwkJCQkJICAgc2l6ZSAtIGdldF9zdGFja19jaGVja19wcm90ZWN0ICgpKTsK KyAJfQorICAgICAgIGVsc2UgaWYgKHNpemUgPiAwKQorLQlyczYwMDBfZW1pdF9wcm9iZV9zdGFj a19yYW5nZSAoU1RBQ0tfQ0hFQ0tfUFJPVEVDVCwgc2l6ZSk7CisrCXJzNjAwMF9lbWl0X3Byb2Jl X3N0YWNrX3JhbmdlIChnZXRfc3RhY2tfY2hlY2tfcHJvdGVjdCAoKSwgc2l6ZSk7CisgICAgIH0K KyAKKyAgIGlmIChUQVJHRVRfRklYX0FORF9DT05USU5VRSkKK2RpZmYgLS1naXQgYS9nY2MvY29u ZmlnL3NwYXJjL3NwYXJjLmMgYi9nY2MvY29uZmlnL3NwYXJjL3NwYXJjLmMKK2luZGV4IDgzY2Ex ZGNjNjE3Li5iMzJiYjk4NTllMSAxMDA2NDQKKy0tLSBhL2djYy9jb25maWcvc3BhcmMvc3BhcmMu YworKysrIGIvZ2NjL2NvbmZpZy9zcGFyYy9zcGFyYy5jCitAQCAtNTY5NSwxMiArNTY5NSwxMiBA QCBzcGFyY19leHBhbmRfcHJvbG9ndWUgKHZvaWQpCisgICAgIHsKKyAgICAgICBpZiAoY3J0bC0+ aXNfbGVhZiAmJiAhY2Z1bi0+Y2FsbHNfYWxsb2NhKQorIAl7CistCSAgaWYgKHNpemUgPiBQUk9C RV9JTlRFUlZBTCAmJiBzaXplID4gU1RBQ0tfQ0hFQ0tfUFJPVEVDVCkKKy0JICAgIHNwYXJjX2Vt aXRfcHJvYmVfc3RhY2tfcmFuZ2UgKFNUQUNLX0NIRUNLX1BST1RFQ1QsCistCQkJCQkgIHNpemUg LSBTVEFDS19DSEVDS19QUk9URUNUKTsKKysJICBpZiAoc2l6ZSA+IFBST0JFX0lOVEVSVkFMICYm IHNpemUgPiBnZXRfc3RhY2tfY2hlY2tfcHJvdGVjdCAoKSkKKysJICAgIHNwYXJjX2VtaXRfcHJv YmVfc3RhY2tfcmFuZ2UgKGdldF9zdGFja19jaGVja19wcm90ZWN0ICgpLAorKwkJCQkJICBzaXpl IC0gZ2V0X3N0YWNrX2NoZWNrX3Byb3RlY3QgKCkpOworIAl9CisgICAgICAgZWxzZSBpZiAoc2l6 ZSA+IDApCistCXNwYXJjX2VtaXRfcHJvYmVfc3RhY2tfcmFuZ2UgKFNUQUNLX0NIRUNLX1BST1RF Q1QsIHNpemUpOworKwlzcGFyY19lbWl0X3Byb2JlX3N0YWNrX3JhbmdlIChnZXRfc3RhY2tfY2hl Y2tfcHJvdGVjdCAoKSwgc2l6ZSk7CisgICAgIH0KKyAKKyAgIGlmIChzaXplID09IDApCitAQCAt NTgwNiwxMiArNTgwNiwxMiBAQCBzcGFyY19mbGF0X2V4cGFuZF9wcm9sb2d1ZSAodm9pZCkKKyAg ICAgeworICAgICAgIGlmIChjcnRsLT5pc19sZWFmICYmICFjZnVuLT5jYWxsc19hbGxvY2EpCisg CXsKKy0JICBpZiAoc2l6ZSA+IFBST0JFX0lOVEVSVkFMICYmIHNpemUgPiBTVEFDS19DSEVDS19Q Uk9URUNUKQorLQkgICAgc3BhcmNfZW1pdF9wcm9iZV9zdGFja19yYW5nZSAoU1RBQ0tfQ0hFQ0tf UFJPVEVDVCwKKy0JCQkJCSAgc2l6ZSAtIFNUQUNLX0NIRUNLX1BST1RFQ1QpOworKwkgIGlmIChz aXplID4gUFJPQkVfSU5URVJWQUwgJiYgc2l6ZSA+IGdldF9zdGFja19jaGVja19wcm90ZWN0ICgp KQorKwkgICAgc3BhcmNfZW1pdF9wcm9iZV9zdGFja19yYW5nZSAoZ2V0X3N0YWNrX2NoZWNrX3By b3RlY3QgKCksCisrCQkJCQkgIHNpemUgLSBnZXRfc3RhY2tfY2hlY2tfcHJvdGVjdCAoKSk7Cisg CX0KKyAgICAgICBlbHNlIGlmIChzaXplID4gMCkKKy0Jc3BhcmNfZW1pdF9wcm9iZV9zdGFja19y YW5nZSAoU1RBQ0tfQ0hFQ0tfUFJPVEVDVCwgc2l6ZSk7CisrCXNwYXJjX2VtaXRfcHJvYmVfc3Rh Y2tfcmFuZ2UgKGdldF9zdGFja19jaGVja19wcm90ZWN0ICgpLCBzaXplKTsKKyAgICAgfQorIAor ICAgaWYgKHNwYXJjX3NhdmVfbG9jYWxfaW5fcmVnc19wKQorZGlmZiAtLWdpdCBhL2djYy9kb2Mv dG0udGV4aSBiL2djYy9kb2MvdG0udGV4aQoraW5kZXggYzRmMmM4OTNjOGUuLjBiYTI5MjVhMWJk IDEwMDY0NAorLS0tIGEvZ2NjL2RvYy90bS50ZXhpCisrKysgYi9nY2MvZG9jL3RtLnRleGkKK0BA IC0zNDE5LDYgKzM0MTksMTAgQEAgR0NDIGNvbXB1dGVkIHRoZSBkZWZhdWx0IGZyb20gdGhlIHZh bHVlcyBvZiB0aGUgYWJvdmUgbWFjcm9zIGFuZCB5b3Ugd2lsbAorIG5vcm1hbGx5IG5vdCBuZWVk IHRvIG92ZXJyaWRlIHRoYXQgZGVmYXVsdC4KKyBAZW5kIGRlZm1hYworIAorK0BkZWZ0eXBlZm4g e1RhcmdldCBIb29rfSBib29sIFRBUkdFVF9TVEFDS19DTEFTSF9QUk9URUNUSU9OX0ZJTkFMX0RZ TkFNSUNfUFJPQkUgKHJ0eCBAdmFye3Jlc2lkdWFsfSkKKytTb21lIHRhcmdldHMgbWFrZSBvcHRp bWlzdGljIGFzc3VtcHRpb25zIGFib3V0IHRoZSBzdGF0ZSBvZiBzdGFjayBwcm9iaW5nIHdoZW4g dGhleSBlbWl0IHRoZWlyIHByb2xvZ3Vlcy4gIE9uIHN1Y2ggdGFyZ2V0cyBhIHByb2JlIGludG8g dGhlIGVuZCBvZiBhbnkgZHluYW1pY2FsbHkgYWxsb2NhdGVkIHNwYWNlIGlzIGxpa2VseSByZXF1 aXJlZCBmb3Igc2FmZXR5IGFnYWluc3Qgc3RhY2sgY2xhc2ggc3R5bGUgYXR0YWNrcy4gIERlZmlu ZSB0aGlzIHZhcmlhYmxlIHRvIHJldHVybiBub256ZXJvIGlmIHN1Y2ggYSBwcm9iZSBpcyByZXF1 aXJlZCBvciB6ZXJvIG90aGVyd2lzZS4gIFlvdSBuZWVkIG5vdCBkZWZpbmUgdGhpcyBtYWNybyBp ZiBpdCB3b3VsZCBhbHdheXMgaGF2ZSB0aGUgdmFsdWUgemVyby4KKytAZW5kIGRlZnR5cGVmbgor KworIEBuZWVkIDIwMDAKKyBAbm9kZSBGcmFtZSBSZWdpc3RlcnMKKyBAc3Vic2VjdGlvbiBSZWdp c3RlcnMgVGhhdCBBZGRyZXNzIHRoZSBTdGFjayBGcmFtZQorZGlmZiAtLWdpdCBhL2djYy9kb2Mv dG0udGV4aS5pbiBiL2djYy9kb2MvdG0udGV4aS5pbgoraW5kZXggMWM0NzFkOGRhMzUuLmQzMTI1 NWU4NmNiIDEwMDY0NAorLS0tIGEvZ2NjL2RvYy90bS50ZXhpLmluCisrKysgYi9nY2MvZG9jL3Rt LnRleGkuaW4KK0BAIC0yOTk5LDYgKzI5OTksOCBAQCBHQ0MgY29tcHV0ZWQgdGhlIGRlZmF1bHQg ZnJvbSB0aGUgdmFsdWVzIG9mIHRoZSBhYm92ZSBtYWNyb3MgYW5kIHlvdSB3aWxsCisgbm9ybWFs bHkgbm90IG5lZWQgdG8gb3ZlcnJpZGUgdGhhdCBkZWZhdWx0LgorIEBlbmQgZGVmbWFjCisgCisr QGhvb2sgVEFSR0VUX1NUQUNLX0NMQVNIX1BST1RFQ1RJT05fRklOQUxfRFlOQU1JQ19QUk9CRQor KworIEBuZWVkIDIwMDAKKyBAbm9kZSBGcmFtZSBSZWdpc3RlcnMKKyBAc3Vic2VjdGlvbiBSZWdp c3RlcnMgVGhhdCBBZGRyZXNzIHRoZSBTdGFjayBGcmFtZQorZGlmZiAtLWdpdCBhL2djYy9leHBs b3cuYyBiL2djYy9leHBsb3cuYworaW5kZXggNjdjYjZmZjE1MTMuLmU3ZGI0MzhiMWVjIDEwMDY0 NAorLS0tIGEvZ2NjL2V4cGxvdy5jCisrKysgYi9nY2MvZXhwbG93LmMKK0BAIC0zOSw4ICszOSwx MSBAQCBhbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNlZQor ICNpbmNsdWRlICJleHByLmgiCisgI2luY2x1ZGUgImNvbW1vbi9jb21tb24tdGFyZ2V0LmgiCisg I2luY2x1ZGUgIm91dHB1dC5oIgorKyNpbmNsdWRlICJwYXJhbXMuaCIKKysjaW5jbHVkZSAiZHVt cGZpbGUuaCIKKyAKKyBzdGF0aWMgcnR4IGJyZWFrX291dF9tZW1vcnlfcmVmcyAocnR4KTsKKytz dGF0aWMgdm9pZCBhbnRpX2FkanVzdF9zdGFja19hbmRfcHJvYmVfc3RhY2tfY2xhc2ggKHJ0eCk7 CisgCisgCisgLyogVHJ1bmNhdGUgYW5kIHBlcmhhcHMgc2lnbi1leHRlbmQgQyBhcyBhcHByb3By aWF0ZSBmb3IgTU9ERS4gICovCitAQCAtMTI3MSw2ICsxMjc0LDI5IEBAIGdldF9keW5hbWljX3N0 YWNrX3NpemUgKHJ0eCAqcHNpemUsIHVuc2lnbmVkIHNpemVfYWxpZ24sCisgICAqcHNpemUgPSBz aXplOworIH0KKyAKKysvKiBSZXR1cm4gdGhlIG51bWJlciBvZiBieXRlcyB0byAicHJvdGVjdCIg b24gdGhlIHN0YWNrIGZvciAtZnN0YWNrLWNoZWNrLgorKworKyAgICJwcm90ZWN0IiBpbiB0aGUg Y29udGV4dCBvZiAtZnN0YWNrLWNoZWNrIG1lYW5zIGhvdyBtYW55IGJ5dGVzIHdlCisrICAgc2hv dWxkIGFsd2F5cyBlbnN1cmUgYXJlIGF2YWlsYWJsZSBvbiB0aGUgc3RhY2suICBNb3JlIGltcG9y dGFudGx5CisrICAgdGhpcyBpcyBob3cgbWFueSBieXRlcyBhcmUgc2tpcHBlZCB3aGVuIHByb2Jp bmcgdGhlIHN0YWNrLgorKworKyAgIE9uIHNvbWUgdGFyZ2V0cyB3ZSB3YW50IHRvIHJldXNlIHRo ZSAtZnN0YWNrLWNoZWNrIHByb2xvZ3VlIHN1cHBvcnQKKysgICB0byBnaXZlIGEgZGVncmVlIG9m IHByb3RlY3Rpb24gYWdhaW5zdCBzdGFjayBjbGFzaGluZyBzdHlsZSBhdHRhY2tzLgorKworKyAg IEluIHRoYXQgc2NlbmFyaW8gd2UgZG8gbm90IHdhbnQgdG8gc2tpcCBieXRlcyBiZWZvcmUgcHJv YmluZyBhcyB0aGF0CisrICAgd291bGQgcmVuZGVyIHRoZSBzdGFjayBjbGFzaCBwcm90ZWN0aW9u cyB1c2VsZXNzLgorKworKyAgIFNvIHdlIG5ldmVyIHVzZSBTVEFDS19DSEVDS19QUk9URUNUIGRp cmVjdGx5LiAgSW5zdGVhZCB3ZSBpbmRpcmVjdCB0aG91Z2gKKysgICB0aGlzIGhlbHBlciB3aGlj aCBhbGxvd3MgdXMgdG8gcHJvdmlkZSBkaWZmZXJlbnQgdmFsdWVzIGZvcgorKyAgIC1mc3RhY2st Y2hlY2sgYW5kIC1mc3RhY2stY2xhc2gtcHJvdGVjdGlvbi4gICovCisrSE9TVF9XSURFX0lOVAor K2dldF9zdGFja19jaGVja19wcm90ZWN0ICh2b2lkKQorK3sKKysgIGlmIChmbGFnX3N0YWNrX2Ns YXNoX3Byb3RlY3Rpb24pCisrICAgIHJldHVybiAwOworKyByZXR1cm4gU1RBQ0tfQ0hFQ0tfUFJP VEVDVDsKKyt9CisrCisgLyogUmV0dXJuIGFuIHJ0eCByZXByZXNlbnRpbmcgdGhlIGFkZHJlc3Mg b2YgYW4gYXJlYSBvZiBtZW1vcnkgZHluYW1pY2FsbHkKKyAgICBwdXNoZWQgb24gdGhlIHN0YWNr LgorIAorQEAgLTE0MjksNyArMTQ1NSw3IEBAIGFsbG9jYXRlX2R5bmFtaWNfc3RhY2tfc3BhY2Ug KHJ0eCBzaXplLCB1bnNpZ25lZCBzaXplX2FsaWduLAorICAgICBwcm9iZV9zdGFja19yYW5nZSAo U1RBQ0tfT0xEX0NIRUNLX1BST1RFQ1QgKyBTVEFDS19DSEVDS19NQVhfRlJBTUVfU0laRSwKKyAJ CSAgICAgICBzaXplKTsKKyAgIGVsc2UgaWYgKGZsYWdfc3RhY2tfY2hlY2sgPT0gU1RBVElDX0JV SUxUSU5fU1RBQ0tfQ0hFQ0spCistICAgIHByb2JlX3N0YWNrX3JhbmdlIChTVEFDS19DSEVDS19Q Uk9URUNULCBzaXplKTsKKysgICAgcHJvYmVfc3RhY2tfcmFuZ2UgKGdldF9zdGFja19jaGVja19w cm90ZWN0ICgpLCBzaXplKTsKKyAKKyAgIC8qIERvbid0IGxldCBhbnRpX2FkanVzdF9zdGFjayBl bWl0IG5vdGVzLiAgKi8KKyAgIHN1cHByZXNzX3JlZ19hcmdzX3NpemUgPSB0cnVlOworQEAgLTE0 ODIsNiArMTUwOCw4IEBAIGFsbG9jYXRlX2R5bmFtaWNfc3RhY2tfc3BhY2UgKHJ0eCBzaXplLCB1 bnNpZ25lZCBzaXplX2FsaWduLAorIAorICAgICAgIGlmIChmbGFnX3N0YWNrX2NoZWNrICYmIFNU QUNLX0NIRUNLX01PVklOR19TUCkKKyAJYW50aV9hZGp1c3Rfc3RhY2tfYW5kX3Byb2JlIChzaXpl LCBmYWxzZSk7CisrICAgICAgZWxzZSBpZiAoZmxhZ19zdGFja19jbGFzaF9wcm90ZWN0aW9uKQor KwlhbnRpX2FkanVzdF9zdGFja19hbmRfcHJvYmVfc3RhY2tfY2xhc2ggKHNpemUpOworICAgICAg IGVsc2UKKyAJYW50aV9hZGp1c3Rfc3RhY2sgKHNpemUpOworIAorQEAgLTE3NTcsNiArMTc4NSwy MTkgQEAgcHJvYmVfc3RhY2tfcmFuZ2UgKEhPU1RfV0lERV9JTlQgZmlyc3QsIHJ0eCBzaXplKQor ICAgZW1pdF9pbnNuIChnZW5fYmxvY2thZ2UgKCkpOworIH0KKyAKKysvKiBDb21wdXRlIHBhcmFt ZXRlcnMgZm9yIHN0YWNrIGNsYXNoIHByb2JpbmcgYSBkeW5hbWljIHN0YWNrCisrICAgYWxsb2Nh dGlvbiBvZiBTSVpFIGJ5dGVzLgorKworKyAgIFdlIGNvbXB1dGUgUk9VTkRFRF9TSVpFLCBMQVNU X0FERFIsIFJFU0lEVUFMIGFuZCBQUk9CRV9JTlRFUlZBTC4KKysKKysgICBBZGRpdGlvbmFsbHkg d2UgY29uZGl0aW9uYWxseSBkdW1wIHRoZSB0eXBlIG9mIHByb2JpbmcgdGhhdCB3aWxsCisrICAg YmUgbmVlZGVkIGdpdmVuIHRoZSB2YWx1ZXMgY29tcHV0ZWQuICAqLworKworK3ZvaWQKKytjb21w dXRlX3N0YWNrX2NsYXNoX3Byb3RlY3Rpb25fbG9vcF9kYXRhIChydHggKnJvdW5kZWRfc2l6ZSwg cnR4ICpsYXN0X2FkZHIsCisrCQkJCQkgIHJ0eCAqcmVzaWR1YWwsCisrCQkJCQkgIEhPU1RfV0lE RV9JTlQgKnByb2JlX2ludGVydmFsLAorKwkJCQkJICBydHggc2l6ZSkKKyt7CisrICAvKiBSb3Vu ZCBTSVpFIGRvd24gdG8gU1RBQ0tfQ0xBU0hfUFJPVEVDVElPTl9QUk9CRV9JTlRFUlZBTCAqLwor KyAgKnByb2JlX2ludGVydmFsCisrICAgID0gMSA8PCBQQVJBTV9WQUxVRSAoUEFSQU1fU1RBQ0tf Q0xBU0hfUFJPVEVDVElPTl9QUk9CRV9JTlRFUlZBTCk7CisrICAqcm91bmRlZF9zaXplID0gc2lt cGxpZnlfZ2VuX2JpbmFyeSAoQU5ELCBQbW9kZSwgc2l6ZSwKKysJCQkJICAgICAgICBHRU5fSU5U ICgtKnByb2JlX2ludGVydmFsKSk7CisrCisrICAvKiBDb21wdXRlIHRoZSB2YWx1ZSBvZiB0aGUg c3RhY2sgcG9pbnRlciBmb3IgdGhlIGxhc3QgaXRlcmF0aW9uLgorKyAgICAgSXQncyBqdXN0IFNQ ICsgUk9VTkRFRF9TSVpFLiAgKi8KKysgIHJ0eCByb3VuZGVkX3NpemVfb3AgPSBmb3JjZV9vcGVy YW5kICgqcm91bmRlZF9zaXplLCBOVUxMX1JUWCk7CisrICAqbGFzdF9hZGRyID0gZm9yY2Vfb3Bl cmFuZCAoZ2VuX3J0eF9mbXRfZWUgKFNUQUNLX0dST1dfT1AsIFBtb2RlLAorKwkJCQkJICAgICAg c3RhY2tfcG9pbnRlcl9ydHgsCisrCQkJCQkgICAgICByb3VuZGVkX3NpemVfb3ApLAorKwkJCSAg ICAgIE5VTExfUlRYKTsKKysKKysgIC8qIENvbXB1dGUgYW55IHJlc2lkdWFscyBub3QgYWxsb2Nh dGVkIGJ5IHRoZSBsb29wIGFib3ZlLiAgUmVzaWR1YWxzCisrICAgICBhcmUganVzdCB0aGUgUk9V TkRFRF9TSVpFIC0gU0laRS4gICovCisrICAqcmVzaWR1YWwgPSBzaW1wbGlmeV9nZW5fYmluYXJ5 IChNSU5VUywgUG1vZGUsIHNpemUsICpyb3VuZGVkX3NpemUpOworKworKyAgLyogRHVtcCBrZXkg aW5mb3JtYXRpb24gdG8gbWFrZSB3cml0aW5nIHRlc3RzIGVhc3kuICAqLworKyAgaWYgKGR1bXBf ZmlsZSkKKysgICAgeworKyAgICAgIGlmICgqcm91bmRlZF9zaXplID09IENPTlNUMF9SVFggKFBt b2RlKSkKKysJZnByaW50ZiAoZHVtcF9maWxlLAorKwkJICJTdGFjayBjbGFzaCBza2lwcGVkIGR5 bmFtaWMgYWxsb2NhdGlvbiBhbmQgcHJvYmluZyBsb29wLlxuIik7CisrICAgICAgZWxzZSBpZiAo R0VUX0NPREUgKCpyb3VuZGVkX3NpemUpID09IENPTlNUX0lOVAorKwkgICAgICAgJiYgSU5UVkFM ICgqcm91bmRlZF9zaXplKSA8PSA0ICogKnByb2JlX2ludGVydmFsKQorKwlmcHJpbnRmIChkdW1w X2ZpbGUsCisrCQkgIlN0YWNrIGNsYXNoIGR5bmFtaWMgYWxsb2NhdGlvbiBhbmQgcHJvYmluZyBp bmxpbmUuXG4iKTsKKysgICAgICBlbHNlIGlmIChHRVRfQ09ERSAoKnJvdW5kZWRfc2l6ZSkgPT0g Q09OU1RfSU5UKQorKwlmcHJpbnRmIChkdW1wX2ZpbGUsCisrCQkgIlN0YWNrIGNsYXNoIGR5bmFt aWMgYWxsb2NhdGlvbiBhbmQgcHJvYmluZyBpbiAiCisrCQkgInJvdGF0ZWQgbG9vcC5cbiIpOwor KyAgICAgIGVsc2UKKysJZnByaW50ZiAoZHVtcF9maWxlLAorKwkJICJTdGFjayBjbGFzaCBkeW5h bWljIGFsbG9jYXRpb24gYW5kIHByb2JpbmcgaW4gbG9vcC5cbiIpOworKworKyAgICAgIGlmICgq cmVzaWR1YWwgIT0gQ09OU1QwX1JUWCAoUG1vZGUpKQorKwlmcHJpbnRmIChkdW1wX2ZpbGUsCisr CQkgIlN0YWNrIGNsYXNoIGR5bmFtaWMgYWxsb2NhdGlvbiBhbmQgcHJvYmluZyByZXNpZHVhbHMu XG4iKTsKKysgICAgICBlbHNlCisrCWZwcmludGYgKGR1bXBfZmlsZSwKKysJCSAiU3RhY2sgY2xh c2ggc2tpcHBlZCBkeW5hbWljIGFsbG9jYXRpb24gYW5kICIKKysJCSAicHJvYmluZyByZXNpZHVh bHMuXG4iKTsKKysgICAgfQorK30KKysKKysvKiBFbWl0IHRoZSBzdGFydCBvZiBhbiBhbGxvY2F0 ZS9wcm9iZSBsb29wIGZvciBzdGFjaworKyAgIGNsYXNoIHByb3RlY3Rpb24uCisrCisrICAgTE9P UF9MQUIgYW5kIEVORF9MQUIgYXJlIHJldHVybmVkIGZvciB1c2Ugd2hlbiB3ZSBlbWl0IHRoZQor KyAgIGVuZCBvZiB0aGUgbG9vcC4KKysKKysgICBMQVNUIGFkZHIgaXMgdGhlIHZhbHVlIGZvciBT UCB3aGljaCBzdG9wcyB0aGUgbG9vcC4gICovCisrdm9pZAorK2VtaXRfc3RhY2tfY2xhc2hfcHJv dGVjdGlvbl9wcm9iZV9sb29wX3N0YXJ0IChydHggKmxvb3BfbGFiLAorKwkJCQkJICAgICAgcnR4 ICplbmRfbGFiLAorKwkJCQkJICAgICAgcnR4IGxhc3RfYWRkciwKKysJCQkJCSAgICAgIGJvb2wg cm90YXRlZCkKKyt7CisrICAvKiBFc3NlbnRpYWxseSB3ZSB3YW50IHRvIGVtaXQgYW55IHNldHVw IGNvZGUsIHRoZSB0b3Agb2YgbG9vcAorKyAgICAgbGFiZWwgYW5kIHRoZSBjb21wYXJpc29uIGF0 IHRoZSB0b3Agb2YgdGhlIGxvb3AuICAqLworKyAgKmxvb3BfbGFiID0gZ2VuX2xhYmVsX3J0eCAo KTsKKysgICplbmRfbGFiID0gZ2VuX2xhYmVsX3J0eCAoKTsKKysKKysgIGVtaXRfbGFiZWwgKCps b29wX2xhYik7CisrICBpZiAoIXJvdGF0ZWQpCisrICAgIGVtaXRfY21wX2FuZF9qdW1wX2luc25z IChzdGFja19wb2ludGVyX3J0eCwgbGFzdF9hZGRyLCBFUSwgTlVMTF9SVFgsCisrCQkJICAgICBQ bW9kZSwgMSwgKmVuZF9sYWIpOworK30KKysKKysvKiBFbWl0IHRoZSBlbmQgb2YgYSBzdGFjayBj bGFzaCBwcm9iaW5nIGxvb3AuCisrCisrICAgVGhpcyBjb25zaXN0cyBvZiBqdXN0IHRoZSBqdW1w IGJhY2sgdG8gTE9PUF9MQUIgYW5kCisrICAgZW1pdHRpbmcgRU5EX0xPT1AgYWZ0ZXIgdGhlIGxv b3AuICAqLworKworK3ZvaWQKKytlbWl0X3N0YWNrX2NsYXNoX3Byb3RlY3Rpb25fcHJvYmVfbG9v cF9lbmQgKHJ0eCBsb29wX2xhYiwgcnR4IGVuZF9sb29wLAorKwkJCQkJICAgIHJ0eCBsYXN0X2Fk ZHIsIGJvb2wgcm90YXRlZCkKKyt7CisrICBpZiAocm90YXRlZCkKKysgICAgZW1pdF9jbXBfYW5k X2p1bXBfaW5zbnMgKHN0YWNrX3BvaW50ZXJfcnR4LCBsYXN0X2FkZHIsIE5FLCBOVUxMX1JUWCwK KysJCQkgICAgIFBtb2RlLCAxLCBsb29wX2xhYik7CisrICBlbHNlCisrICAgIGVtaXRfanVtcCAo bG9vcF9sYWIpOworKworKyAgZW1pdF9sYWJlbCAoZW5kX2xvb3ApOworKworK30KKysKKysvKiBB ZGp1c3QgdGhlIHN0YWNrIHBvaW50ZXIgYnkgbWludXMgU0laRSAoYW4gcnR4IGZvciBhIG51bWJl ciBvZiBieXRlcykKKysgICB3aGlsZSBwcm9iaW5nIGl0LiAgVGhpcyBwdXNoZXMgd2hlbiBTSVpF IGlzIHBvc2l0aXZlLiAgU0laRSBuZWVkIG5vdAorKyAgIGJlIGNvbnN0YW50LgorKworKyAgIFRo aXMgaXMgc3VidGx5IGRpZmZlcmVudCB0aGFuIGFudGlfYWRqdXN0X3N0YWNrX2FuZF9wcm9iZSB0 byB0cnkgYW5kCisrICAgcHJldmVudCBzdGFjay1jbGFzaCBhdHRhY2tzCisrCisrICAgICAxLiBJ dCBtdXN0IGFzc3VtZSBubyBrbm93bGVkZ2Ugb2YgdGhlIHByb2Jpbmcgc3RhdGUsIGFueSBhbGxv Y2F0aW9uCisrCW11c3QgcHJvYmUuCisrCisrCUNvbnNpZGVyIHRoZSBjYXNlIG9mIGEgMSBieXRl IGFsbG9jYSBpbiBhIGxvb3AuICBJZiB0aGUgc3VtIG9mIHRoZQorKwlhbGxvY2F0aW9ucyBpcyBs YXJnZSwgdGhlbiB0aGlzIGNvdWxkIGJlIHVzZWQgdG8ganVtcCB0aGUgZ3VhcmQgaWYKKysJcHJv YmVzIHdlcmUgbm90IGVtaXR0ZWQuCisrCisrICAgICAyLiBJdCBuZXZlciBza2lwcyBwcm9iZXMs IHdoZXJlYXMgYW50aV9hZGp1c3Rfc3RhY2tfYW5kX3Byb2JlIHdpbGwKKysJc2tpcCBwcm9iZXMg b24gdGhlIGZpcnN0IGNvdXBsZSBQUk9CRV9JTlRFUlZBTHMgb24gdGhlIGFzc3VtcHRpb24KKysJ dGhleSdyZSBkb25lIGVsc2V3aGVyZS4KKysKKysgICAgIDMuIEl0IG9ubHkgYWxsb2NhdGVzIGFu ZCBwcm9iZXMgU0laRSBieXRlcywgaXQgZG9lcyBub3QgbmVlZCB0bworKwlhbGxvY2F0ZS9wcm9i ZSBiZXlvbmQgdGhhdCBiZWNhdXNlIHRoaXMgcHJvYmluZyBzdHlsZSBkb2VzIG5vdAorKwlndWFy YW50ZWUgc2lnbmFsIGhhbmRsaW5nIGNhcGFiaWxpdHkgaWYgdGhlIGd1YXJkIGlzIGhpdC4gICov CisrCisrc3RhdGljIHZvaWQKKythbnRpX2FkanVzdF9zdGFja19hbmRfcHJvYmVfc3RhY2tfY2xh c2ggKHJ0eCBzaXplKQorK3sKKysgIC8qIEZpcnN0IGVuc3VyZSBTSVpFIGlzIFBtb2RlLiAgKi8K KysgIGlmIChHRVRfTU9ERSAoc2l6ZSkgIT0gVk9JRG1vZGUgJiYgR0VUX01PREUgKHNpemUpICE9 IFBtb2RlKQorKyAgICBzaXplID0gY29udmVydF90b19tb2RlIChQbW9kZSwgc2l6ZSwgMSk7Cisr CisrICAvKiBXZSBjYW4gZ2V0IGhlcmUgd2l0aCBhIGNvbnN0YW50IHNpemUgb24gc29tZSB0YXJn ZXRzLiAgKi8KKysgIHJ0eCByb3VuZGVkX3NpemUsIGxhc3RfYWRkciwgcmVzaWR1YWw7CisrICBI T1NUX1dJREVfSU5UIHByb2JlX2ludGVydmFsOworKyAgY29tcHV0ZV9zdGFja19jbGFzaF9wcm90 ZWN0aW9uX2xvb3BfZGF0YSAoJnJvdW5kZWRfc2l6ZSwgJmxhc3RfYWRkciwKKysJCQkJCSAgICAm cmVzaWR1YWwsICZwcm9iZV9pbnRlcnZhbCwgc2l6ZSk7CisrCisrICBpZiAocm91bmRlZF9zaXpl ICE9IENPTlNUMF9SVFggKFBtb2RlKSkKKysgICAgeworKyAgICAgIGlmIChJTlRWQUwgKHJvdW5k ZWRfc2l6ZSkgPD0gNCAqIHByb2JlX2ludGVydmFsKQorKwl7CisrCSAgZm9yIChIT1NUX1dJREVf SU5UIGkgPSAwOworKwkgICAgICAgaSA8IElOVFZBTCAocm91bmRlZF9zaXplKTsKKysJICAgICAg IGkgKz0gcHJvYmVfaW50ZXJ2YWwpCisrCSAgICB7CisrCSAgICAgIGFudGlfYWRqdXN0X3N0YWNr IChHRU5fSU5UIChwcm9iZV9pbnRlcnZhbCkpOworKworKwkgICAgICAvKiBUaGUgcHJvbG9ndWUg ZG9lcyBub3QgcHJvYmUgcmVzaWR1YWxzLiAgVGh1cyB0aGUgb2Zmc2V0CisrCQkgaGVyZSB0byBw cm9iZSBqdXN0IGJleW9uZCB3aGF0IHRoZSBwcm9sb2d1ZSBoYWQgYWxyZWFkeQorKwkJIGFsbG9j YXRlZC4gICovCisrCSAgICAgIGVtaXRfc3RhY2tfcHJvYmUgKHBsdXNfY29uc3RhbnQgKFBtb2Rl LCBzdGFja19wb2ludGVyX3J0eCwKKysJCQkJCSAgICAgICAocHJvYmVfaW50ZXJ2YWwKKysJCQkJ CQktIEdFVF9NT0RFX1NJWkUgKHdvcmRfbW9kZSkpKSk7CisrCSAgICAgIGVtaXRfaW5zbiAoZ2Vu X2Jsb2NrYWdlICgpKTsKKysJICAgIH0KKysJfQorKyAgICAgIGVsc2UKKysJeworKwkgIHJ0eCBs b29wX2xhYiwgZW5kX2xvb3A7CisrCSAgYm9vbCByb3RhdGVfbG9vcCA9IEdFVF9DT0RFIChyb3Vu ZGVkX3NpemUpID09IENPTlNUX0lOVDsKKysJICBlbWl0X3N0YWNrX2NsYXNoX3Byb3RlY3Rpb25f cHJvYmVfbG9vcF9zdGFydCAoJmxvb3BfbGFiLCAmZW5kX2xvb3AsCisrCQkJCQkJCWxhc3RfYWRk ciwgcm90YXRlX2xvb3ApOworKworKwkgIGFudGlfYWRqdXN0X3N0YWNrIChHRU5fSU5UIChwcm9i ZV9pbnRlcnZhbCkpOworKworKwkgIC8qIFRoZSBwcm9sb2d1ZSBkb2VzIG5vdCBwcm9iZSByZXNp ZHVhbHMuICBUaHVzIHRoZSBvZmZzZXQgaGVyZQorKwkgICAgIHRvIHByb2JlIGp1c3QgYmV5b25k IHdoYXQgdGhlIHByb2xvZ3VlIGhhZCBhbHJlYWR5IGFsbG9jYXRlZC4gICovCisrCSAgZW1pdF9z dGFja19wcm9iZSAocGx1c19jb25zdGFudCAoUG1vZGUsIHN0YWNrX3BvaW50ZXJfcnR4LAorKwkJ CQkJICAgKHByb2JlX2ludGVydmFsCisrCQkJCQkgICAgLSBHRVRfTU9ERV9TSVpFICh3b3JkX21v ZGUpKSkpOworKworKwkgIGVtaXRfc3RhY2tfY2xhc2hfcHJvdGVjdGlvbl9wcm9iZV9sb29wX2Vu ZCAobG9vcF9sYWIsIGVuZF9sb29wLAorKwkJCQkJCSAgICAgIGxhc3RfYWRkciwgcm90YXRlX2xv b3ApOworKwkgIGVtaXRfaW5zbiAoZ2VuX2Jsb2NrYWdlICgpKTsKKysJfQorKyAgICB9CisrCisr ICBpZiAocmVzaWR1YWwgIT0gQ09OU1QwX1JUWCAoUG1vZGUpKQorKyAgICB7CisrICAgICAgcnR4 IHggPSBmb3JjZV9yZWcgKFBtb2RlLCBwbHVzX2NvbnN0YW50IChQbW9kZSwgcmVzaWR1YWwsCisr CQkJCQkgICAgICAgLUdFVF9NT0RFX1NJWkUgKHdvcmRfbW9kZSkpKTsKKysgICAgICBhbnRpX2Fk anVzdF9zdGFjayAocmVzaWR1YWwpOworKyAgICAgIGVtaXRfc3RhY2tfcHJvYmUgKGdlbl9ydHhf UExVUyAoUG1vZGUsIHN0YWNrX3BvaW50ZXJfcnR4LCB4KSk7CisrICAgICAgZW1pdF9pbnNuIChn ZW5fYmxvY2thZ2UgKCkpOworKyAgICB9CisrCisrICAvKiBTb21lIHRhcmdldHMgbWFrZSBvcHRp bWlzdGljIGFzc3VtcHRpb25zIGluIHRoZWlyIHByb2xvZ3VlcyBhYm91dAorKyAgICAgaG93IHRo ZSBjYWxsZXIgbWF5IGhhdmUgcHJvYmVkIHRoZSBzdGFjay4gIE1ha2Ugc3VyZSB3ZSBob25vcgor KyAgICAgdGhvc2UgYXNzdW1wdGlvbnMgd2hlbiBuZWVkZWQuICAqLworKyAgaWYgKHNpemUgIT0g Q09OU1QwX1JUWCAoUG1vZGUpCisrICAgICAgJiYgdGFyZ2V0bS5zdGFja19jbGFzaF9wcm90ZWN0 aW9uX2ZpbmFsX2R5bmFtaWNfcHJvYmUgKHJlc2lkdWFsKSkKKysgICAgeworKyAgICAgIC8qIElk ZWFsbHkgd2Ugd291bGQganVzdCBwcm9iZSBhdCAqc3AuICBIb3dldmVyLCBpZiBTSVpFIGlzIG5v dAorKwkgYSBjb21waWxlLXRpbWUgY29uc3RhbnQsIGJ1dCBpcyB6ZXJvIGF0IHJ1bnRpbWUsIHRo ZW4gKnNwCisrCSBtaWdodCBob2xkIGxpdmUgZGF0YS4gIFNvIHByb2JlIGF0ICpzcCBpZiB3ZSBr bm93IHRoYXQKKysJIGFuIGFsbG9jYXRpb24gd2FzIG1hZGUsIG90aGVyd2lzZSBwcm9iZSBpbnRv IHRoZSByZWQgem9uZQorKwkgd2hpY2ggaXMgb2J2aW91c2x5IHVuZGVzaXJhYmxlLiAgKi8KKysg ICAgICBpZiAoR0VUX0NPREUgKHNpemUpID09IENPTlNUX0lOVCkKKysJeworKwkgIGVtaXRfc3Rh Y2tfcHJvYmUgKHN0YWNrX3BvaW50ZXJfcnR4KTsKKysJICBlbWl0X2luc24gKGdlbl9ibG9ja2Fn ZSAoKSk7CisrCX0KKysgICAgICBlbHNlCisrCXsKKysJICBlbWl0X3N0YWNrX3Byb2JlIChwbHVz X2NvbnN0YW50IChQbW9kZSwgc3RhY2tfcG9pbnRlcl9ydHgsCisrCQkJCQkgICAtR0VUX01PREVf U0laRSAod29yZF9tb2RlKSkpOworKwkgIGVtaXRfaW5zbiAoZ2VuX2Jsb2NrYWdlICgpKTsKKysJ fQorKyAgICB9CisrfQorKworKworIC8qIEFkanVzdCB0aGUgc3RhY2sgcG9pbnRlciBieSBtaW51 cyBTSVpFIChhbiBydHggZm9yIGEgbnVtYmVyIG9mIGJ5dGVzKQorICAgIHdoaWxlIHByb2Jpbmcg aXQuICBUaGlzIHB1c2hlcyB3aGVuIFNJWkUgaXMgcG9zaXRpdmUuICBTSVpFIG5lZWQgbm90Cisg ICAgYmUgY29uc3RhbnQuICBJZiBBREpVU1RfQkFDSyBpcyB0cnVlLCBhZGp1c3QgYmFjayB0aGUg c3RhY2sgcG9pbnRlcgorZGlmZiAtLWdpdCBhL2djYy9leHBsb3cuaCBiL2djYy9leHBsb3cuaAor aW5kZXggMjE3YTMyMjZhZGIuLmI4NWMwNTFlOGNlIDEwMDY0NAorLS0tIGEvZ2NjL2V4cGxvdy5o CisrKysgYi9nY2MvZXhwbG93LmgKK0BAIC02OSw2ICs2OSwxNSBAQCBleHRlcm4gdm9pZCBhbnRp X2FkanVzdF9zdGFjayAocnR4KTsKKyAvKiBBZGQgc29tZSBieXRlcyB0byB0aGUgc3RhY2sgd2hp bGUgcHJvYmluZyBpdC4gIEFuIHJ0eCBzYXlzIGhvdyBtYW55LiAqLworIGV4dGVybiB2b2lkIGFu dGlfYWRqdXN0X3N0YWNrX2FuZF9wcm9iZSAocnR4LCBib29sKTsKKyAKKysvKiBTdXBwb3J0IGZv ciBidWlsZGluZyBhbGxvY2F0aW9uL3Byb2JpbmcgbG9vcHMgZm9yIHN0YWNrLWNsYXNoCisrICAg cHJvdGVjdGlvbiBvZiBkeWFtaWNhbGx5IGFsbG9jYXRlZCBzdGFjayBzcGFjZS4gICovCisrZXh0 ZXJuIHZvaWQgY29tcHV0ZV9zdGFja19jbGFzaF9wcm90ZWN0aW9uX2xvb3BfZGF0YSAocnR4ICos IHJ0eCAqLCBydHggKiwKKysJCQkJCQkgICAgICBIT1NUX1dJREVfSU5UICosIHJ0eCk7CisrZXh0 ZXJuIHZvaWQgZW1pdF9zdGFja19jbGFzaF9wcm90ZWN0aW9uX3Byb2JlX2xvb3Bfc3RhcnQgKHJ0 eCAqLCBydHggKiwKKysJCQkJCQkJICBydHgsIGJvb2wpOworK2V4dGVybiB2b2lkIGVtaXRfc3Rh Y2tfY2xhc2hfcHJvdGVjdGlvbl9wcm9iZV9sb29wX2VuZCAocnR4LCBydHgsCisrCQkJCQkJCXJ0 eCwgYm9vbCk7CisrCisgLyogVGhpcyBlbnVtIGlzIHVzZWQgZm9yIHRoZSBmb2xsb3dpbmcgdHdv IGZ1bmN0aW9ucy4gICovCisgZW51bSBzYXZlX2xldmVsIHtTQVZFX0JMT0NLLCBTQVZFX0ZVTkNU SU9OLCBTQVZFX05PTkxPQ0FMfTsKKyAKK2RpZmYgLS1naXQgYS9nY2MvcnRsLmggYi9nY2MvcnRs LmgKK2luZGV4IDkzMzMwNDI1YzAwLi45OGY5OTNhOTVhNSAxMDA2NDQKKy0tLSBhL2djYy9ydGwu aAorKysrIGIvZ2NjL3J0bC5oCitAQCAtMjcwNyw2ICsyNzA3LDcgQEAgZ2V0X2Z1bGxfc2V0X3Ny Y19jb3N0IChydHggeCwgbWFjaGluZV9tb2RlIG1vZGUsIHN0cnVjdCBmdWxsX3J0eF9jb3N0cyAq YykKKyAvKiBJbiBleHBsb3cuYyAqLworIGV4dGVybiBIT1NUX1dJREVfSU5UIHRydW5jX2ludF9m b3JfbW9kZQkoSE9TVF9XSURFX0lOVCwgbWFjaGluZV9tb2RlKTsKKyBleHRlcm4gcnR4IHBsdXNf Y29uc3RhbnQgKG1hY2hpbmVfbW9kZSwgcnR4LCBIT1NUX1dJREVfSU5ULCBib29sID0gZmFsc2Up OworK2V4dGVybiBIT1NUX1dJREVfSU5UIGdldF9zdGFja19jaGVja19wcm90ZWN0ICh2b2lkKTsK KyAKKyAvKiBJbiBydGwuYyAqLworIGV4dGVybiBydHggcnR4X2FsbG9jX3N0YXQgKFJUWF9DT0RF IE1FTV9TVEFUX0RFQ0wpOworZGlmZiAtLWdpdCBhL2djYy90YXJnZXQuZGVmIGIvZ2NjL3Rhcmdl dC5kZWYKK2luZGV4IDZiZWJmZDViOWQ2Li44YjhhZDFmNDkzOCAxMDA2NDQKKy0tLSBhL2djYy90 YXJnZXQuZGVmCisrKysgYi9nY2MvdGFyZ2V0LmRlZgorQEAgLTU0NzMsNiArNTQ3MywxMyBAQCB0 aGVzZSByZWdpc3RlcnMgd2hlbiB0aGUgdGFyZ2V0IHN3aXRjaGVzIGFyZSBvcHBvc2VkIHRvIHRo ZW0uKSIsCisgIHZvaWQsICh2b2lkKSwKKyAgaG9va192b2lkX3ZvaWQpCisgCisrREVGSE9PSwor KyhzdGFja19jbGFzaF9wcm90ZWN0aW9uX2ZpbmFsX2R5bmFtaWNfcHJvYmUsCisrICJTb21lIHRh cmdldHMgbWFrZSBvcHRpbWlzdGljIGFzc3VtcHRpb25zIGFib3V0IHRoZSBzdGF0ZSBvZiBzdGFj ayBwcm9iaW5nIHdoZW4gdGhleSBlbWl0IHRoZWlyIHByb2xvZ3Vlcy4gIE9uIHN1Y2ggdGFyZ2V0 cyBhIHByb2JlIGludG8gdGhlIGVuZCBvZiBhbnkgZHluYW1pY2FsbHkgYWxsb2NhdGVkIHNwYWNl IGlzIGxpa2VseSByZXF1aXJlZCBmb3Igc2FmZXR5IGFnYWluc3Qgc3RhY2sgY2xhc2ggc3R5bGUg YXR0YWNrcy4gIERlZmluZSB0aGlzIHZhcmlhYmxlIHRvIHJldHVybiBub256ZXJvIGlmIHN1Y2gg YSBwcm9iZSBpcyByZXF1aXJlZCBvciB6ZXJvIG90aGVyd2lzZS4gIFlvdSBuZWVkIG5vdCBkZWZp bmUgdGhpcyBtYWNybyBpZiBpdCB3b3VsZCBhbHdheXMgaGF2ZSB0aGUgdmFsdWUgemVyby4iLAor KyBib29sLCAocnR4IHJlc2lkdWFsKSwKKysgZGVmYXVsdF9zdGFja19jbGFzaF9wcm90ZWN0aW9u X2ZpbmFsX2R5bmFtaWNfcHJvYmUpCisrCisrCisgLyogRnVuY3Rpb25zIHNwZWNpZmljIHRvIHRo ZSBDIGZhbWlseSBvZiBmcm9udGVuZHMuICAqLworICN1bmRlZiBIT09LX1BSRUZJWAorICNkZWZp bmUgSE9PS19QUkVGSVggIlRBUkdFVF9DXyIKK2RpZmYgLS1naXQgYS9nY2MvdGFyZ2hvb2tzLmMg Yi9nY2MvdGFyZ2hvb2tzLmMKK2luZGV4IDFjZGVjMDY4ZWQ4Li4yMjUwNDhlNzUxOCAxMDA2NDQK Ky0tLSBhL2djYy90YXJnaG9va3MuYworKysrIGIvZ2NjL3Rhcmdob29rcy5jCitAQCAtMjEwNyw0 ICsyMTA3LDEwIEBAIGRlZmF1bHRfZXhjZXNzX3ByZWNpc2lvbiAoZW51bSBleGNlc3NfcHJlY2lz aW9uX3R5cGUgQVRUUklCVVRFX1VOVVNFRCkKKyAgIHJldHVybiBGTFRfRVZBTF9NRVRIT0RfUFJP TU9URV9UT19GTE9BVDsKKyB9CisgCisrSE9TVF9XSURFX0lOVAorK2RlZmF1bHRfc3RhY2tfY2xh c2hfcHJvdGVjdGlvbl9maW5hbF9keW5hbWljX3Byb2JlIChydHggcmVzaWR1YWwgQVRUUklCVVRF X1VOVVNFRCkKKyt7CisrICByZXR1cm4gMDsKKyt9CisrCisgI2luY2x1ZGUgImd0LXRhcmdob29r cy5oIgorZGlmZiAtLWdpdCBhL2djYy90YXJnaG9va3MuaCBiL2djYy90YXJnaG9va3MuaAoraW5k ZXggMTgwNzBkZjc4MzkuLjMyYWU5ZDg4MDUwIDEwMDY0NAorLS0tIGEvZ2NjL3Rhcmdob29rcy5o CisrKysgYi9nY2MvdGFyZ2hvb2tzLmgKK0BAIC0yNjMsNSArMjYzLDYgQEAgZXh0ZXJuIHVuc2ln bmVkIGludCBkZWZhdWx0X21pbl9hcml0aG1ldGljX3ByZWNpc2lvbiAodm9pZCk7CisgCisgZXh0 ZXJuIGVudW0gZmx0X2V2YWxfbWV0aG9kCisgZGVmYXVsdF9leGNlc3NfcHJlY2lzaW9uIChlbnVt IGV4Y2Vzc19wcmVjaXNpb25fdHlwZSBBVFRSSUJVVEVfVU5VU0VEKTsKKytleHRlcm4gYm9vbCBk ZWZhdWx0X3N0YWNrX2NsYXNoX3Byb3RlY3Rpb25fZmluYWxfZHluYW1pY19wcm9iZSAocnR4KTsK KyAKKyAjZW5kaWYgLyogR0NDX1RBUkdIT09LU19IICovCitkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MuZGcvc3RhY2stY2hlY2stMy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvc3RhY2st Y2hlY2stMy5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAuLjU4ZmI2 NTY0OWVlCistLS0gL2Rldi9udWxsCisrKysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9zdGFjay1j aGVjay0zLmMKK0BAIC0wLDAgKzEsODYgQEAKKysvKiBUaGUgZ29hbCBoZXJlIGlzIHRvIGVuc3Vy ZSB0aGF0IGR5bmFtaWMgYWxsb2NhdGlvbnMgdmlhIHZsYXMgb3IKKysgICBhbGxvY2EgY2FsbHMg cmVjZWl2ZSBwcm9iaW5nLgorKworKyAgIFNjYW5uaW5nIHRoZSBSVEwgb3IgYXNzZW1ibHkgY29k ZSBzZWVtcyBsaWtlIGluc2FuaXR5IGhlcmUgYXMgZG9lcworKyAgIGNoZWNraW5nIGZvciBwYXJ0 aWN1bGFyIGFsbG9jYXRpb24gc2l6ZXMgYW5kIHByb2JlIG9mZnNldHMuICBGb3IKKysgICBub3cg d2UganVzdCB2ZXJpZnkgdGhhdCB0aGVyZSdzIGFuIGFsbG9jYXRpb24gKyBwcm9iZSBsb29wIGFu ZAorKyAgIHJlc2lkdWFsIGFsbG9jYXRpb24gKyBwcm9iZSBmb3IgZj8uICAqLworKworKy8qIHsg ZGctZG8gY29tcGlsZSB9ICovCisrLyogeyBkZy1vcHRpb25zICItTzIgLWZzdGFjay1jbGFzaC1w cm90ZWN0aW9uIC1mZHVtcC1ydGwtZXhwYW5kIC1mbm8tb3B0aW1pemUtc2libGluZy1jYWxscyAt LXBhcmFtIHN0YWNrLWNsYXNoLXByb3RlY3Rpb24tcHJvYmUtaW50ZXJ2YWw9NDA5NiAtLXBhcmFt IHN0YWNrLWNsYXNoLXByb3RlY3Rpb24tZ3VhcmQtc2l6ZT00MDk2IiB9ICovCisrLyogeyBkZy1y ZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgc3VwcG9ydHNfc3RhY2tfY2xhc2hfcHJvdGVjdGlvbiB9 ICovCisrCisrX19hdHRyaWJ1dGVfXygobm9pbmxpbmUsIG5vY2xvbmUpKSB2b2lkCisrZm9vIChj aGFyICpwKQorK3sKKysgIGFzbSB2b2xhdGlsZSAoIiIgOiA6ICJyIiAocCkgOiAibWVtb3J5Iik7 CisrfQorKworKy8qIFNpbXBsZSBWTEEsIG5vIG90aGVyIGxvY2Fscy4gKi8KKytfX2F0dHJpYnV0 ZV9fKChub2lubGluZSwgbm9jbG9uZSkpIHZvaWQKKytmMCAoaW50IHgpCisreworKyAgY2hhciB2 bGFbeF07CisrICBmb28gKHZsYSk7CisrfQorKworKy8qIFNpbXBsZSBWTEEsIHNtYWxsIGxvY2Fs IGZyYW1lLiAgKi8KKytfX2F0dHJpYnV0ZV9fKChub2lubGluZSwgbm9jbG9uZSkpIHZvaWQKKytm MSAoaW50IHgpCisreworKyAgY2hhciBsb2NhbHNbMTI4XTsKKysgIGNoYXIgdmxhW3hdOworKyAg Zm9vICh2bGEpOworK30KKysKKysvKiBTbWFsbCBjb25zdGFudCBhbGxvY2EsIG5vIG90aGVyIGxv Y2Fscy4gKi8KKytfX2F0dHJpYnV0ZV9fKChub2lubGluZSwgbm9jbG9uZSkpIHZvaWQKKytmMiAo aW50IHgpCisreworKyAgY2hhciAqdmxhID0gX19idWlsdGluX2FsbG9jYSAoMTI4KTsKKysgIGZv byAodmxhKTsKKyt9CisrCisrLyogQmlnIGNvbnN0YW50IGFsbG9jYSwgc21hbGwgbG9jYWwgZnJh bWUuICAqLworK19fYXR0cmlidXRlX18oKG5vaW5saW5lLCBub2Nsb25lKSkgdm9pZAorK2YzIChp bnQgeCkKKyt7CisrICBjaGFyIGxvY2Fsc1sxMjhdOworKyAgY2hhciAqdmxhID0gX19idWlsdGlu X2FsbG9jYSAoMTYzODQpOworKyAgZm9vICh2bGEpOworK30KKysKKysvKiBCaWcgY29uc3RhbnQg YWxsb2NhLCBzbWFsbCBsb2NhbCBmcmFtZS4gICovCisrX19hdHRyaWJ1dGVfXygobm9pbmxpbmUs IG5vY2xvbmUpKSB2b2lkCisrZjNhIChpbnQgeCkKKyt7CisrICBjaGFyIGxvY2Fsc1sxMjhdOwor KyAgY2hhciAqdmxhID0gX19idWlsdGluX2FsbG9jYSAoMzI3NjgpOworKyAgZm9vICh2bGEpOwor K30KKysKKysvKiBOb25jb25zdGFudCBhbGxvY2EsIG5vIG90aGVyIGxvY2Fscy4gKi8KKytfX2F0 dHJpYnV0ZV9fKChub2lubGluZSwgbm9jbG9uZSkpIHZvaWQKKytmNCAoaW50IHgpCisreworKyAg Y2hhciAqdmxhID0gX19idWlsdGluX2FsbG9jYSAoeCk7CisrICBmb28gKHZsYSk7CisrfQorKwor Ky8qIE5vbmNvbnN0YW50IGFsbG9jYSwgc21hbGwgbG9jYWwgZnJhbWUuICAqLworK19fYXR0cmli dXRlX18oKG5vaW5saW5lLCBub2Nsb25lKSkgdm9pZAorK2Y1IChpbnQgeCkKKyt7CisrICBjaGFy IGxvY2Fsc1sxMjhdOworKyAgY2hhciAqdmxhID0gX19idWlsdGluX2FsbG9jYSAoeCk7CisrICBm b28gKHZsYSk7CisrfQorKworKy8qIHsgZGctZmluYWwgeyBzY2FuLXJ0bC1kdW1wLXRpbWVzICJh bGxvY2F0aW9uIGFuZCBwcm9iaW5nIHJlc2lkdWFscyIgNyAiZXhwYW5kIiB9IH0gKi8KKysKKysK KysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1ydGwtZHVtcC10aW1lcyAiYWxsb2NhdGlvbiBhbmQgcHJv YmluZyBpbiBsb29wIiA3ICJleHBhbmQiIHsgdGFyZ2V0IGNhbGxlZV9yZWFsaWduc19zdGFjayB9 IH0gfSAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLXJ0bC1kdW1wLXRpbWVzICJhbGxvY2F0aW9u IGFuZCBwcm9iaW5nIGluIGxvb3AiIDQgImV4cGFuZCIgeyB0YXJnZXQgeyAhIGNhbGxlZV9yZWFs aWduc19zdGFjayB9IH0gfSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tcnRsLWR1bXAtdGlt ZXMgImFsbG9jYXRpb24gYW5kIHByb2JpbmcgaW4gcm90YXRlZCBsb29wIiAxICJleHBhbmQiIHsg dGFyZ2V0IHsgISBjYWxsZWVfcmVhbGlnbnNfc3RhY2sgfSB9IH0gfSAqLworKy8qIHsgZGctZmlu YWwgeyBzY2FuLXJ0bC1kdW1wLXRpbWVzICJhbGxvY2F0aW9uIGFuZCBwcm9iaW5nIGlubGluZSIg MSAiZXhwYW5kIiB7IHRhcmdldCB7ICEgY2FsbGVlX3JlYWxpZ25zX3N0YWNrIH0gfSB9IH0gKi8K KysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1ydGwtZHVtcC10aW1lcyAic2tpcHBlZCBkeW5hbWljIGFs bG9jYXRpb24gYW5kIHByb2JpbmcgbG9vcCIgMSAiZXhwYW5kIiB7IHRhcmdldCB7ICEgY2FsbGVl X3JlYWxpZ25zX3N0YWNrIH0gfSB9IH0gKi8KCmRpZmYgLS1naXQgYS9nY2M3LXJoMTUxMjUyOS0z LnBhdGNoIGIvZ2NjNy1yaDE1MTI1MjktMy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi4xMTJjZjI1Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjNy1yaDE1MTI1MjktMy5w YXRjaApAQCAtMCwwICsxLDE5OSBAQAorY29tbWl0IDY0MGNhNWVmMDhhM2FkZThmZTNmMzJkOGM0 MTIwMDg0MTBkZTk4OWMKK0F1dGhvcjogbGF3IDxsYXdAMTM4YmM3NWQtMGQwNC0wNDEwLTk2MWYt ODJlZTcyYjA1NGE0PgorRGF0ZTogICBXZWQgU2VwIDIwIDA1OjIxOjA5IDIwMTcgKzAwMDAKKwor ICAgICAgICAgICAgKiBjb25maWcvYWxwaGEvYWxwaGEuYyAoYWxwaGFfZXhwYW5kX3Byb2xvZ3Vl KTogQWxzbyBjaGVjaworICAgICAgICAgICAgZmxhZ19zdGFja19jbGFzaF9wcm90ZWN0aW9uLgor ICAgICAgICAgICAgKiBjb25maWcvYXJtL2FybS5jIChhcm1fY29tcHV0ZV9zdGF0aWNfY2hhaW5f c3RhY2tfYnl0ZXMpOiBMaWtld2lzZS4KKyAgICAgICAgICAgIChhcm1fZXhwYW5kX3Byb2xvZ3Vl LCB0aHVtYjFfZXhwYW5kX3Byb2xvZ3VlKTogTGlrZXdpc2UuCisgICAgICAgICAgICAoYXJtX2Zy YW1lX3BvaW50ZXJfcmVxdWlyZWQpOiBMaWtld2lzZS4KKyAgICAgICAgICAgICogY29uZmlnL2lh NjQvaWE2NC5jIChpYTY0X2NvbXB1dGVfZnJhbWVfc2l6ZSk6IExpa2V3aXNlLgorICAgICAgICAg ICAgKGlhNjRfZXhwYW5kX3Byb2xvZ3VlKTogTGlrZXdpc2UuCisgICAgICAgICAgICAqIGNvbmZp Zy9taXBzL21pcHMuYyAobWlwc19leHBhbmRfcHJvbG9ndWUpOiBMaWtld2lzZS4KKyAgICAgICAg ICAgICogY29uZmlnL3Bvd2VycGNzcGUvcG93ZXJwY3NwZS5jIChyczYwMDBfZXhwYW5kX3Byb2xv Z3VlKTogTGlrZXdpc2UuCisgICAgICAgICAgICAqIGNvbmZpZy9zcGFyYy9zcGFyYy5jIChzcGFy Y19leHBhbmRfcHJvbG9ndWUpOiBMaWtld2lzZS4KKyAgICAgICAgICAgIChzcGFyY19mbGF0X2V4 cGFuZF9wcm9sb2d1ZSk6IExpa2V3aXNlLgorICAgICAgICAgICAgKiBjb25maWcvc3B1L3NwdS5j IChzcHVfZXhwYW5kX3Byb2xvZ3VlKTogTGlrZXdpc2UuCisgICAgCisgICAgZ2l0LXN2bi1pZDog c3ZuK3NzaDovL2djYy5nbnUub3JnL3N2bi9nY2MvdHJ1bmtAMjUyOTk2IDEzOGJjNzVkLTBkMDQt MDQxMC05NjFmLTgyZWU3MmIwNTRhNAorCitkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hbHBoYS9h bHBoYS5jIGIvZ2NjL2NvbmZpZy9hbHBoYS9hbHBoYS5jCitpbmRleCA5MWYzZDdjZmJlYi4uMzZl NzhhMGNhZjcgMTAwNjQ0CistLS0gYS9nY2MvY29uZmlnL2FscGhhL2FscGhhLmMKKysrKyBiL2dj Yy9jb25maWcvYWxwaGEvYWxwaGEuYworQEAgLTc3NDAsNyArNzc0MCw3IEBAIGFscGhhX2V4cGFu ZF9wcm9sb2d1ZSAodm9pZCkKKyAgICAgIE5vdGUgdGhhdCB3ZSBhcmUgb25seSBhbGxvd2VkIHRv IGFkanVzdCBzcCBvbmNlIGluIHRoZSBwcm9sb2d1ZS4gICovCisgCisgICBwcm9iZWRfc2l6ZSA9 IGZyYW1lX3NpemU7CistICBpZiAoZmxhZ19zdGFja19jaGVjaykKKysgIGlmIChmbGFnX3N0YWNr X2NoZWNrIHx8IGZsYWdfc3RhY2tfY2xhc2hfcHJvdGVjdGlvbikKKyAgICAgcHJvYmVkX3NpemUg Kz0gZ2V0X3N0YWNrX2NoZWNrX3Byb3RlY3QgKCk7CisgCisgICBpZiAocHJvYmVkX3NpemUgPD0g MzI3NjgpCitAQCAtNzc1NSw3ICs3NzU1LDcgQEAgYWxwaGFfZXhwYW5kX3Byb2xvZ3VlICh2b2lk KQorIAkgIC8qIFdlIG9ubHkgaGF2ZSB0byBkbyB0aGlzIHByb2JlIGlmIHdlIGFyZW4ndCBzYXZp bmcgcmVnaXN0ZXJzIG9yCisgCSAgICAgaWYgd2UgYXJlIHByb2JpbmcgYmV5b25kIHRoZSBmcmFt ZSBiZWNhdXNlIG9mIC1mc3RhY2stY2hlY2suICAqLworIAkgIGlmICgoc2Ffc2l6ZSA9PSAwICYm IHByb2JlZF9zaXplID4gcHJvYmVkIC0gNDA5NikKKy0JICAgICAgfHwgZmxhZ19zdGFja19jaGVj aykKKysJICAgICAgfHwgZmxhZ19zdGFja19jaGVjayB8fCBmbGFnX3N0YWNrX2NsYXNoX3Byb3Rl Y3Rpb24pCisgCSAgICBlbWl0X2luc24gKGdlbl9wcm9iZV9zdGFjayAoR0VOX0lOVCAoLXByb2Jl ZF9zaXplKSkpOworIAl9CisgCitAQCAtNzc4NSw3ICs3Nzg1LDggQEAgYWxwaGFfZXhwYW5kX3By b2xvZ3VlICh2b2lkKQorIAkgbGF0ZSBpbiB0aGUgY29tcGlsYXRpb24sIGdlbmVyYXRlIHRoZSBs b29wIGFzIGEgc2luZ2xlIGluc24uICAqLworICAgICAgIGVtaXRfaW5zbiAoZ2VuX3Byb2xvZ3Vl X3N0YWNrX3Byb2JlX2xvb3AgKGNvdW50LCBwdHIpKTsKKyAKKy0gICAgICBpZiAoKGxlZnRvdmVy ID4gNDA5NiAmJiBzYV9zaXplID09IDApIHx8IGZsYWdfc3RhY2tfY2hlY2spCisrICAgICAgaWYg KChsZWZ0b3ZlciA+IDQwOTYgJiYgc2Ffc2l6ZSA9PSAwKQorKwkgIHx8IGZsYWdfc3RhY2tfY2hl Y2sgfHwgZmxhZ19zdGFja19jbGFzaF9wcm90ZWN0aW9uKQorIAl7CisgCSAgcnR4IGxhc3QgPSBn ZW5fcnR4X01FTSAoREltb2RlLAorIAkJCQkgIHBsdXNfY29uc3RhbnQgKFBtb2RlLCBwdHIsIC1s ZWZ0b3ZlcikpOworQEAgLTc3OTMsNyArNzc5NCw3IEBAIGFscGhhX2V4cGFuZF9wcm9sb2d1ZSAo dm9pZCkKKyAJICBlbWl0X21vdmVfaW5zbiAobGFzdCwgY29uc3QwX3J0eCk7CisgCX0KKyAKKy0g ICAgICBpZiAoZmxhZ19zdGFja19jaGVjaykKKysgICAgICBpZiAoZmxhZ19zdGFja19jaGVjayB8 fCBmbGFnX3N0YWNrX2NsYXNoX3Byb3RlY3Rpb24pCisgCXsKKyAJICAvKiBJZiAtZnN0YWNrLWNo ZWNrIGlzIHNwZWNpZmllZCB3ZSBoYXZlIHRvIGxvYWQgdGhlIGVudGlyZQorIAkgICAgIGNvbnN0 YW50IGludG8gYSByZWdpc3RlciBhbmQgc3VidHJhY3QgZnJvbSB0aGUgc3AgaW4gb25lIGdvLAor ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYXJtL2FybS5jIGIvZ2NjL2NvbmZpZy9hcm0vYXJtLmMK K2luZGV4IDI0MmQ3Yzc5MmZlLi40Zjg1YTA2MTc1MyAxMDA2NDQKKy0tLSBhL2djYy9jb25maWcv YXJtL2FybS5jCisrKysgYi9nY2MvY29uZmlnL2FybS9hcm0uYworQEAgLTE5MDgzLDcgKzE5MDgz LDggQEAgYXJtX2NvbXB1dGVfc3RhdGljX2NoYWluX3N0YWNrX2J5dGVzICh2b2lkKQorICAgLyog U2VlIHRoZSBkZWZpbmluZyBhc3NlcnRpb24gaW4gYXJtX2V4cGFuZF9wcm9sb2d1ZS4gICovCisg ICBpZiAoSVNfTkVTVEVEIChhcm1fY3VycmVudF9mdW5jX3R5cGUgKCkpCisgICAgICAgJiYgKChU QVJHRVRfQVBDU19GUkFNRSAmJiBmcmFtZV9wb2ludGVyX25lZWRlZCAmJiBUQVJHRVRfQVJNKQor LQkgIHx8IChmbGFnX3N0YWNrX2NoZWNrID09IFNUQVRJQ19CVUlMVElOX1NUQUNLX0NIRUNLCisr CSAgfHwgKChmbGFnX3N0YWNrX2NoZWNrID09IFNUQVRJQ19CVUlMVElOX1NUQUNLX0NIRUNLCisr CSAgICAgICB8fCBmbGFnX3N0YWNrX2NsYXNoX3Byb3RlY3Rpb24pCisgCSAgICAgICYmICFkZl9y ZWdzX2V2ZXJfbGl2ZV9wIChMUl9SRUdOVU0pKSkKKyAgICAgICAmJiBhcm1fcjNfbGl2ZV9hdF9z dGFydF9wICgpCisgICAgICAgJiYgY3J0bC0+YXJncy5wcmV0ZW5kX2FyZ3Nfc2l6ZSA9PSAwKQor QEAgLTIxMzc3LDcgKzIxMzc4LDggQEAgYXJtX2V4cGFuZF9wcm9sb2d1ZSAodm9pZCkKKyAgICAg IGNsb2JiZXJlZCB3aGVuIGNyZWF0aW5nIHRoZSBmcmFtZSwgd2UgbmVlZCB0byBzYXZlIGFuZCBy ZXN0b3JlIGl0LiAgKi8KKyAgIGNsb2JiZXJfaXAgPSBJU19ORVNURUQgKGZ1bmNfdHlwZSkKKyAJ ICAgICAgICYmICgoVEFSR0VUX0FQQ1NfRlJBTUUgJiYgZnJhbWVfcG9pbnRlcl9uZWVkZWQgJiYg VEFSR0VUX0FSTSkKKy0JCSAgIHx8IChmbGFnX3N0YWNrX2NoZWNrID09IFNUQVRJQ19CVUlMVElO X1NUQUNLX0NIRUNLCisrCQkgICB8fCAoKGZsYWdfc3RhY2tfY2hlY2sgPT0gU1RBVElDX0JVSUxU SU5fU1RBQ0tfQ0hFQ0sKKysJCQl8fCBmbGFnX3N0YWNrX2NsYXNoX3Byb3RlY3Rpb24pCisgCQkg ICAgICAgJiYgIWRmX3JlZ3NfZXZlcl9saXZlX3AgKExSX1JFR05VTSkKKyAJCSAgICAgICAmJiBh cm1fcjNfbGl2ZV9hdF9zdGFydF9wICgpKSk7CisgCitAQCAtMjE1OTEsNyArMjE1OTMsOCBAQCBh cm1fZXhwYW5kX3Byb2xvZ3VlICh2b2lkKQorICAgICAgc3RhY2sgY2hlY2tpbmcuICBXZSB1c2Ug SVAgYXMgdGhlIGZpcnN0IHNjcmF0Y2ggcmVnaXN0ZXIsIGV4Y2VwdCBmb3IgdGhlCisgICAgICBu b24tQVBDUyBuZXN0ZWQgZnVuY3Rpb25zIGlmIExSIG9yIHIzIGFyZSBhdmFpbGFibGUgKHNlZSBj bG9iYmVyX2lwKS4gICovCisgICBpZiAoIUlTX0lOVEVSUlVQVCAoZnVuY190eXBlKQorLSAgICAg ICYmIGZsYWdfc3RhY2tfY2hlY2sgPT0gU1RBVElDX0JVSUxUSU5fU1RBQ0tfQ0hFQ0spCisrICAg ICAgJiYgKGZsYWdfc3RhY2tfY2hlY2sgPT0gU1RBVElDX0JVSUxUSU5fU1RBQ0tfQ0hFQ0sKKysJ ICB8fCBmbGFnX3N0YWNrX2NsYXNoX3Byb3RlY3Rpb24pKQorICAgICB7CisgICAgICAgdW5zaWdu ZWQgaW50IHJlZ25vOworIAorQEAgLTI0ODc1LDcgKzI0ODc4LDkgQEAgdGh1bWIxX2V4cGFuZF9w cm9sb2d1ZSAodm9pZCkKKyAgICAgY3VycmVudF9mdW5jdGlvbl9zdGF0aWNfc3RhY2tfc2l6ZSA9 IHNpemU7CisgCisgICAvKiBJZiB3ZSBoYXZlIGEgZnJhbWUsIHRoZW4gZG8gc3RhY2sgY2hlY2tp bmcuICBGSVhNRTogbm90IGltcGxlbWVudGVkLiAgKi8KKy0gIGlmIChmbGFnX3N0YWNrX2NoZWNr ID09IFNUQVRJQ19CVUlMVElOX1NUQUNLX0NIRUNLICYmIHNpemUpCisrICBpZiAoKGZsYWdfc3Rh Y2tfY2hlY2sgPT0gU1RBVElDX0JVSUxUSU5fU1RBQ0tfQ0hFQ0sKKysgICAgICAgfHwgZmxhZ19z dGFja19jbGFzaF9wcm90ZWN0aW9uKQorKyAgICAgICYmIHNpemUpCisgICAgIHNvcnJ5ICgiLWZz dGFjay1jaGVjaz1zcGVjaWZpYyBmb3IgVGh1bWItMSIpOworIAorICAgYW1vdW50ID0gb2Zmc2V0 cy0+b3V0Z29pbmdfYXJncyAtIG9mZnNldHMtPnNhdmVkX3JlZ3M7CitAQCAtMjc3MzYsNyArMjc3 NDEsOCBAQCBhcm1fZnJhbWVfcG9pbnRlcl9yZXF1aXJlZCAodm9pZCkKKyAgICAgIGluc3RydWN0 aW9uIHByaW9yIHRvIHRoZSBzdGFjayBhZGp1c3RtZW50IGFuZCB0aGlzIHJlcXVpcmVzIGEgZnJh bWUKKyAgICAgIHBvaW50ZXIgaWYgd2Ugd2FudCB0byBjYXRjaCB0aGUgZXhjZXB0aW9uIHVzaW5n IHRoZSBFQUJJIHVud2luZGVyLiAgKi8KKyAgIGlmICghSVNfSU5URVJSVVBUIChhcm1fY3VycmVu dF9mdW5jX3R5cGUgKCkpCistICAgICAgJiYgZmxhZ19zdGFja19jaGVjayA9PSBTVEFUSUNfQlVJ TFRJTl9TVEFDS19DSEVDSworKyAgICAgICYmIChmbGFnX3N0YWNrX2NoZWNrID09IFNUQVRJQ19C VUlMVElOX1NUQUNLX0NIRUNLCisrCSAgfHwgZmxhZ19zdGFja19jbGFzaF9wcm90ZWN0aW9uKQor ICAgICAgICYmIGFybV9leGNlcHRfdW53aW5kX2luZm8gKCZnbG9iYWxfb3B0aW9ucykgPT0gVUlf VEFSR0VUCisgICAgICAgJiYgY2Z1bi0+Y2FuX3Rocm93X25vbl9jYWxsX2V4Y2VwdGlvbnMpCisg ICAgIHsKK2RpZmYgLS1naXQgYS9nY2MvY29uZmlnL2lhNjQvaWE2NC5jIGIvZ2NjL2NvbmZpZy9p YTY0L2lhNjQuYworaW5kZXggMTdkNmIzMzE4YTYuLjhhY2I5MmZkMzJiIDEwMDY0NAorLS0tIGEv Z2NjL2NvbmZpZy9pYTY0L2lhNjQuYworKysrIGIvZ2NjL2NvbmZpZy9pYTY0L2lhNjQuYworQEAg LTI2ODUsNyArMjY4NSw4IEBAIGlhNjRfY29tcHV0ZV9mcmFtZV9zaXplIChIT1NUX1dJREVfSU5U IHNpemUpCisgICAgIG1hcmtfcmVnX2dyX3VzZWRfbWFzayAoY2Z1bi0+bWFjaGluZS0+aWE2NF9l aF9lcGlsb2d1ZV9ic3AsIE5VTEwpOworIAorICAgLyogU3RhdGljIHN0YWNrIGNoZWNraW5nIHVz ZXMgcjIgYW5kIHIzLiAgKi8KKy0gIGlmIChmbGFnX3N0YWNrX2NoZWNrID09IFNUQVRJQ19CVUlM VElOX1NUQUNLX0NIRUNLKQorKyAgaWYgKGZsYWdfc3RhY2tfY2hlY2sgPT0gU1RBVElDX0JVSUxU SU5fU1RBQ0tfQ0hFQ0sKKysgICAgICB8fCBmbGFnX3N0YWNrX2NsYXNoX3Byb3RlY3Rpb24pCisg ICAgIGN1cnJlbnRfZnJhbWVfaW5mby5ncl91c2VkX21hc2sgfD0gMHhjOworIAorICAgLyogRmlu ZCB0aGUgc2l6ZSBvZiB0aGUgcmVnaXN0ZXIgc3RhY2sgZnJhbWUuICBXZSBoYXZlIG9ubHkgODAg bG9jYWwKK0BAIC0zNDY4LDcgKzM0NjksOCBAQCBpYTY0X2V4cGFuZF9wcm9sb2d1ZSAodm9pZCkK KyAgIGlmIChmbGFnX3N0YWNrX3VzYWdlX2luZm8pCisgICAgIGN1cnJlbnRfZnVuY3Rpb25fc3Rh dGljX3N0YWNrX3NpemUgPSBjdXJyZW50X2ZyYW1lX2luZm8udG90YWxfc2l6ZTsKKyAKKy0gIGlm IChmbGFnX3N0YWNrX2NoZWNrID09IFNUQVRJQ19CVUlMVElOX1NUQUNLX0NIRUNLKQorKyAgaWYg KGZsYWdfc3RhY2tfY2hlY2sgPT0gU1RBVElDX0JVSUxUSU5fU1RBQ0tfQ0hFQ0sKKysgICAgICB8 fCBmbGFnX3N0YWNrX2NsYXNoX3Byb3RlY3Rpb24pCisgICAgIHsKKyAgICAgICBIT1NUX1dJREVf SU5UIHNpemUgPSBjdXJyZW50X2ZyYW1lX2luZm8udG90YWxfc2l6ZTsKKyAgICAgICBpbnQgYnNf c2l6ZSA9IEJBQ0tJTkdfU1RPUkVfU0laRSAoY3VycmVudF9mcmFtZV9pbmZvLm5faW5wdXRfcmVn cworZGlmZiAtLWdpdCBhL2djYy9jb25maWcvbWlwcy9taXBzLmMgYi9nY2MvY29uZmlnL21pcHMv bWlwcy5jCitpbmRleCA3ZDg1Y2U3MDU1YS4uYjJkM2M3MzdiMzQgMTAwNjQ0CistLS0gYS9nY2Mv Y29uZmlnL21pcHMvbWlwcy5jCisrKysgYi9nY2MvY29uZmlnL21pcHMvbWlwcy5jCitAQCAtMTIw NzcsNyArMTIwNzcsOCBAQCBtaXBzX2V4cGFuZF9wcm9sb2d1ZSAodm9pZCkKKyAgIGlmIChmbGFn X3N0YWNrX3VzYWdlX2luZm8pCisgICAgIGN1cnJlbnRfZnVuY3Rpb25fc3RhdGljX3N0YWNrX3Np emUgPSBzaXplOworIAorLSAgaWYgKGZsYWdfc3RhY2tfY2hlY2sgPT0gU1RBVElDX0JVSUxUSU5f U1RBQ0tfQ0hFQ0spCisrICBpZiAoZmxhZ19zdGFja19jaGVjayA9PSBTVEFUSUNfQlVJTFRJTl9T VEFDS19DSEVDSworKyAgICAgIHx8IGZsYWdfc3RhY2tfY2xhc2hfcHJvdGVjdGlvbikKKyAgICAg eworICAgICAgIGlmIChjcnRsLT5pc19sZWFmICYmICFjZnVuLT5jYWxsc19hbGxvY2EpCisgCXsK K2RpZmYgLS1naXQgYS9nY2MvY29uZmlnL3NwYXJjL3NwYXJjLmMgYi9nY2MvY29uZmlnL3NwYXJj L3NwYXJjLmMKK2luZGV4IGIzMmJiOTg1OWUxLi40OThiZDA0ZjVjMiAxMDA2NDQKKy0tLSBhL2dj Yy9jb25maWcvc3BhcmMvc3BhcmMuYworKysrIGIvZ2NjL2NvbmZpZy9zcGFyYy9zcGFyYy5jCitA QCAtNTY5MSw3ICs1NjkxLDggQEAgc3BhcmNfZXhwYW5kX3Byb2xvZ3VlICh2b2lkKQorICAgaWYg KGZsYWdfc3RhY2tfdXNhZ2VfaW5mbykKKyAgICAgY3VycmVudF9mdW5jdGlvbl9zdGF0aWNfc3Rh Y2tfc2l6ZSA9IHNpemU7CisgCistICBpZiAoZmxhZ19zdGFja19jaGVjayA9PSBTVEFUSUNfQlVJ TFRJTl9TVEFDS19DSEVDSykKKysgIGlmIChmbGFnX3N0YWNrX2NoZWNrID09IFNUQVRJQ19CVUlM VElOX1NUQUNLX0NIRUNLCisrICAgICAgfHwgZmxhZ19zdGFja19jbGFzaF9wcm90ZWN0aW9uKQor ICAgICB7CisgICAgICAgaWYgKGNydGwtPmlzX2xlYWYgJiYgIWNmdW4tPmNhbGxzX2FsbG9jYSkK KyAJeworQEAgLTU4MDIsNyArNTgwMyw4IEBAIHNwYXJjX2ZsYXRfZXhwYW5kX3Byb2xvZ3VlICh2 b2lkKQorICAgaWYgKGZsYWdfc3RhY2tfdXNhZ2VfaW5mbykKKyAgICAgY3VycmVudF9mdW5jdGlv bl9zdGF0aWNfc3RhY2tfc2l6ZSA9IHNpemU7CisgCistICBpZiAoZmxhZ19zdGFja19jaGVjayA9 PSBTVEFUSUNfQlVJTFRJTl9TVEFDS19DSEVDSykKKysgIGlmIChmbGFnX3N0YWNrX2NoZWNrID09 IFNUQVRJQ19CVUlMVElOX1NUQUNLX0NIRUNLCisrICAgICAgfHwgZmxhZ19zdGFja19jbGFzaF9w cm90ZWN0aW9uKQorICAgICB7CisgICAgICAgaWYgKGNydGwtPmlzX2xlYWYgJiYgIWNmdW4tPmNh bGxzX2FsbG9jYSkKKyAJeworZGlmZiAtLWdpdCBhL2djYy9jb25maWcvc3B1L3NwdS5jIGIvZ2Nj L2NvbmZpZy9zcHUvc3B1LmMKK2luZGV4IGZjYjg1YzBlZTE2Li4yMjc0NWZhMzJjMyAxMDA2NDQK Ky0tLSBhL2djYy9jb25maWcvc3B1L3NwdS5jCisrKysgYi9nY2MvY29uZmlnL3NwdS9zcHUuYwor QEAgLTE3NjAsNyArMTc2MCw3IEBAIHNwdV9leHBhbmRfcHJvbG9ndWUgKHZvaWQpCisgCisgICBp ZiAodG90YWxfc2l6ZSA+IDApCisgICAgIHsKKy0gICAgICBpZiAoZmxhZ19zdGFja19jaGVjaykK KysgICAgICBpZiAoZmxhZ19zdGFja19jaGVjayB8fCBmbGFnX3N0YWNrX2NsYXNoX3Byb3RlY3Rp b24pCisgCXsKKyAJICAvKiBXZSBjb21wYXJlIGFnYWluc3QgdG90YWxfc2l6ZS0xIGJlY2F1c2UK KyAJICAgICAoJHNwID49IHRvdGFsX3NpemUpIDw9PiAoJHNwID4gdG90YWxfc2l6ZS0xKSAqLwor QEAgLTUzNjQsNyArNTM2NCw3IEBAIHNwdV9hbGxvY2F0ZV9zdGFjayAocnR4IG9wMCwgcnR4IG9w MSkKKyAgIGVtaXRfaW5zbiAoZ2VuX3NwdV9jb252ZXJ0IChzcCwgc3RhY2tfcG9pbnRlcl9ydHgp KTsKKyAgIGVtaXRfaW5zbiAoZ2VuX3N1YnY0c2kzIChzcCwgc3AsIHNwbGF0dGVkKSk7CisgCist ICBpZiAoZmxhZ19zdGFja19jaGVjaykKKysgIGlmIChmbGFnX3N0YWNrX2NoZWNrIHx8IGZsYWdf c3RhY2tfY2xhc2hfcHJvdGVjdGlvbikKKyAgICAgeworICAgICAgIHJ0eCBhdmFpbCA9IGdlbl9y ZWdfcnR4KFNJbW9kZSk7CisgICAgICAgcnR4IHJlc3VsdCA9IGdlbl9yZWdfcnR4KFNJbW9kZSk7 CgpkaWZmIC0tZ2l0IGEvZ2NjNy1yaDE1MTI1MjktNC5wYXRjaCBiL2djYzctcmgxNTEyNTI5LTQu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWM5NTNlYwotLS0gL2Rl di9udWxsCisrKyBiL2djYzctcmgxNTEyNTI5LTQucGF0Y2gKQEAgLTAsMCArMSw5MiBAQAorY29t bWl0IDdmMGQzMzJmOTkyYzNiNTFjOGFmZjNlZDc5ZTIyMzNlZDI0OTg4NjMKK0F1dGhvcjogbGF3 IDxsYXdAMTM4YmM3NWQtMGQwNC0wNDEwLTk2MWYtODJlZTcyYjA1NGE0PgorRGF0ZTogICBXZWQg U2VwIDIwIDA1OjIzOjUxIDIwMTcgKzAwMDAKKworICAgICAgICAgICAgKiBmdW5jdGlvbi5jIChk dW1wX3N0YWNrX2NsYXNoX2ZyYW1lX2luZm8pOiBOZXcgZnVuY3Rpb24uCisgICAgICAgICAgICAq IGZ1bmN0aW9uLmggKGR1bXBfc3RhY2tfY2xhc2hfZnJhbWVfaW5mbyk6IFByb3RvdHlwZS4KKyAg ICAgICAgICAgIChlbnVtIHN0YWNrX2NsYXNoX3Byb2Jlcyk6IE5ldyBlbnVtLgorICAgIAorICAg IGdpdC1zdm4taWQ6IHN2bitzc2g6Ly9nY2MuZ251Lm9yZy9zdm4vZ2NjL3RydW5rQDI1Mjk5NyAx MzhiYzc1ZC0wZDA0LTA0MTAtOTYxZi04MmVlNzJiMDU0YTQKKworZGlmZiAtLWdpdCBhL2djYy9m dW5jdGlvbi5jIGIvZ2NjL2Z1bmN0aW9uLmMKK2luZGV4IDIxZWI1ODZhOGY3Li42ZDBmNDYyYTI2 MiAxMDA2NDQKKy0tLSBhL2djYy9mdW5jdGlvbi5jCisrKysgYi9nY2MvZnVuY3Rpb24uYworQEAg LTU2OTUsNiArNTY5NSw1OCBAQCBnZXRfYXJnX3BvaW50ZXJfc2F2ZV9hcmVhICh2b2lkKQorICAg cmV0dXJuIHJldDsKKyB9CisgDAorKworKy8qIElmIGRlYnVnZ2luZyBkdW1wcyBhcmUgcmVxdWVz dGVkLCBkdW1wIGluZm9ybWF0aW9uIGFib3V0IGhvdyB0aGUKKysgICB0YXJnZXQgaGFuZGxlZCAt ZnN0YWNrLWNoZWNrPWNsYXNoIGZvciB0aGUgcHJvbG9ndWUuCisrCisrICAgUFJPQkVTIGRlc2Ny aWJlcyB3aGF0IGlmIGFueSBwcm9iZXMgd2VyZSBlbWl0dGVkLgorKworKyAgIFJFU0lEVUFMUyBp bmRpY2F0ZXMgaWYgdGhlIHByb2xvZ3VlIGhhZCBhbnkgcmVzaWR1YWwgYWxsb2NhdGlvbgorKyAg IChpLmUuIHRvdGFsIGFsbG9jYXRpb24gd2FzIG5vdCBhIG11bHRpcGxlIG9mIFBST0JFX0lOVEVS VkFMKS4gICovCisrCisrdm9pZAorK2R1bXBfc3RhY2tfY2xhc2hfZnJhbWVfaW5mbyAoZW51bSBz dGFja19jbGFzaF9wcm9iZXMgcHJvYmVzLCBib29sIHJlc2lkdWFscykKKyt7CisrICBpZiAoIWR1 bXBfZmlsZSkKKysgICAgcmV0dXJuOworKworKyAgc3dpdGNoIChwcm9iZXMpCisrICAgIHsKKysg ICAgY2FzZSBOT19QUk9CRV9OT19GUkFNRToKKysgICAgICBmcHJpbnRmIChkdW1wX2ZpbGUsCisr CSAgICAgICAiU3RhY2sgY2xhc2ggbm8gcHJvYmUgbm8gc3RhY2sgYWRqdXN0bWVudCBpbiBwcm9s b2d1ZS5cbiIpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIE5PX1BST0JFX1NNQUxMX0ZSQU1F OgorKyAgICAgIGZwcmludGYgKGR1bXBfZmlsZSwKKysJICAgICAgICJTdGFjayBjbGFzaCBubyBw cm9iZSBzbWFsbCBzdGFjayBhZGp1c3RtZW50IGluIHByb2xvZ3VlLlxuIik7CisrICAgICAgYnJl YWs7CisrICAgIGNhc2UgUFJPQkVfSU5MSU5FOgorKyAgICAgIGZwcmludGYgKGR1bXBfZmlsZSwg IlN0YWNrIGNsYXNoIGlubGluZSBwcm9iZXMgaW4gcHJvbG9ndWUuXG4iKTsKKysgICAgICBicmVh azsKKysgICAgY2FzZSBQUk9CRV9MT09QOgorKyAgICAgIGZwcmludGYgKGR1bXBfZmlsZSwgIlN0 YWNrIGNsYXNoIHByb2JlIGxvb3AgaW4gcHJvbG9ndWUuXG4iKTsKKysgICAgICBicmVhazsKKysg ICAgfQorKworKyAgaWYgKHJlc2lkdWFscykKKysgICAgZnByaW50ZiAoZHVtcF9maWxlLCAiU3Rh Y2sgY2xhc2ggcmVzaWR1YWwgYWxsb2NhdGlvbiBpbiBwcm9sb2d1ZS5cbiIpOworKyAgZWxzZQor KyAgICBmcHJpbnRmIChkdW1wX2ZpbGUsICJTdGFjayBjbGFzaCBubyByZXNpZHVhbCBhbGxvY2F0 aW9uIGluIHByb2xvZ3VlLlxuIik7CisrCisrICBpZiAoZnJhbWVfcG9pbnRlcl9uZWVkZWQpCisr ICAgIGZwcmludGYgKGR1bXBfZmlsZSwgIlN0YWNrIGNsYXNoIGZyYW1lIHBvaW50ZXIgbmVlZGVk LlxuIik7CisrICBlbHNlCisrICAgIGZwcmludGYgKGR1bXBfZmlsZSwgIlN0YWNrIGNsYXNoIG5v IGZyYW1lIHBvaW50ZXIgbmVlZGVkLlxuIik7CisrCisrICBpZiAoVFJFRV9USElTX1ZPTEFUSUxF IChjZnVuLT5kZWNsKSkKKysgICAgZnByaW50ZiAoZHVtcF9maWxlLAorKwkgICAgICJTdGFjayBj bGFzaCBub3JldHVybiBwcm9sb2d1ZSwgYXNzdW1pbmcgbm8gaW1wbGljaXQiCisrCSAgICAgIiBw cm9iZXMgaW4gY2FsbGVyLlxuIik7CisrICBlbHNlCisrICAgIGZwcmludGYgKGR1bXBfZmlsZSwK KysJICAgICAiU3RhY2sgY2xhc2ggbm90IG5vcmV0dXJuIHByb2xvZ3VlLlxuIik7CisrfQorKwor IC8qIEFkZCBhIGxpc3Qgb2YgSU5TTlMgdG8gdGhlIGhhc2ggSEFTSFAsIHBvc3NpYmx5IGFsbG9j YXRpbmcgSEFTSFAKKyAgICBmb3IgdGhlIGZpcnN0IHRpbWUuICAqLworIAorZGlmZiAtLWdpdCBh L2djYy9mdW5jdGlvbi5oIGIvZ2NjL2Z1bmN0aW9uLmgKK2luZGV4IDBmMzRiY2Q2MTIzLi44N2Rh YzgwMzYyMiAxMDA2NDQKKy0tLSBhL2djYy9mdW5jdGlvbi5oCisrKysgYi9nY2MvZnVuY3Rpb24u aAorQEAgLTU1Myw2ICs1NTMsMTQgQEAgZG8gewkJCQkJCQkJXAorICAgKChUQVJHRVRfUFRSTUVN RlVOQ19WQklUX0xPQ0FUSU9OID09IHB0cm1lbWZ1bmNfdmJpdF9pbl9wZm4pCSAgICAgXAorICAg ID8gTUFYIChGVU5DVElPTl9CT1VOREFSWSwgMiAqIEJJVFNfUEVSX1VOSVQpIDogRlVOQ1RJT05f Qk9VTkRBUlkpCisgCisrZW51bSBzdGFja19jbGFzaF9wcm9iZXMgeworKyAgTk9fUFJPQkVfTk9f RlJBTUUsCisrICBOT19QUk9CRV9TTUFMTF9GUkFNRSwKKysgIFBST0JFX0lOTElORSwKKysgIFBS T0JFX0xPT1AKKyt9OworKworK2V4dGVybiB2b2lkIGR1bXBfc3RhY2tfY2xhc2hfZnJhbWVfaW5m byAoZW51bSBzdGFja19jbGFzaF9wcm9iZXMsIGJvb2wpOworIAwKKyAKKyBleHRlcm4gdm9pZCBw dXNoX2Z1bmN0aW9uX2NvbnRleHQgKHZvaWQpOwoKZGlmZiAtLWdpdCBhL2djYzctcmgxNTEyNTI5 LTUucGF0Y2ggYi9nY2M3LXJoMTUxMjUyOS01LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjFiNmQ0YmEKLS0tIC9kZXYvbnVsbAorKysgYi9nY2M3LXJoMTUxMjUyOS01 LnBhdGNoCkBAIC0wLDAgKzEsMjcwNSBAQAorY29tbWl0IGRlZDQ5NWY5OTIyNTQxNzZiZDFkMDhk NGYyMDBhN2I1MDhhMzNiOWEKK0F1dGhvcjogbGF3IDxsYXdAMTM4YmM3NWQtMGQwNC0wNDEwLTk2 MWYtODJlZTcyYjA1NGE0PgorRGF0ZTogICBXZWQgU2VwIDIwIDA1OjM1OjA3IDIwMTcgKzAwMDAK KworICAgICAgICAgICAgKiBjb25maWcvaTM4Ni9pMzg2LmMgKGl4ODZfYWRqdXN0X3N0YWNrX2Fu ZF9wcm9iZV9zdGFja19jbGFzaCk6IE5ldy4KKyAgICAgICAgICAgIChpeDg2X2V4cGFuZF9wcm9s b2d1ZSk6IER1bXAgc3RhY2sgY2xhc2ggaW5mbyBhcyBuZWVkZWQuCisgICAgICAgICAgICBDYWxs IGl4ODZfYWRqdXN0X3N0YWNrX2FuZF9wcm9iZV9zdGFja19jbGFzaCBhcyBuZWVkZWQuCisgICAg CisgICAgICAgICAgICAqIGdjYy5kZy9zdGFjay1jaGVjay00LmM6IE5ldyB0ZXN0LgorICAgICAg ICAgICAgKiBnY2MuZGcvc3RhY2stY2hlY2stNS5jOiBOZXcgdGVzdC4KKyAgICAgICAgICAgICog Z2NjLmRnL3N0YWNrLWNoZWNrLTYuYzogTmV3IHRlc3QuCisgICAgICAgICAgICAqIGdjYy5kZy9z dGFjay1jaGVjay02YS5jOiBOZXcgdGVzdC4KKyAgICAgICAgICAgICogZ2NjLmRnL3N0YWNrLWNo ZWNrLTcuYzogTmV3IHRlc3QuCisgICAgICAgICAgICAqIGdjYy5kZy9zdGFjay1jaGVjay04LmM6 IE5ldyB0ZXN0LgorICAgICAgICAgICAgKiBnY2MuZGcvc3RhY2stY2hlY2stOS5jOiBOZXcgdGVz dC4KKyAgICAgICAgICAgICogZ2NjLmRnL3N0YWNrLWNoZWNrLTEwLmM6IE5ldyB0ZXN0LgorICAg ICAgICAgICAgKiBsaWIvdGFyZ2V0LXN1cHBvcnRzLmV4cAorICAgICAgICAgICAgKGNoZWNrX2Vm ZmVjdGl2ZV90YXJnZXRfc3VwcG9ydHNfc3RhY2tfY2xhc2hfcHJvdGVjdGlvbik6IEVuYWJsZSBm b3IKKyAgICAgICAgICAgIHg4NiBhbmQgeDg2XzY0IHRhcmdldHMuCisgICAgCisgICAgZ2l0LXN2 bi1pZDogc3ZuK3NzaDovL2djYy5nbnUub3JnL3N2bi9nY2MvdHJ1bmtAMjUyOTk4IDEzOGJjNzVk LTBkMDQtMDQxMC05NjFmLTgyZWU3MmIwNTRhNAorCitkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9p Mzg2L2kzODYuYyBiL2djYy9jb25maWcvaTM4Ni9pMzg2LmMKK2luZGV4IDYwYmFiOWEyNmE2Li4w ODhkY2EyMDAxZiAxMDA2NDQKKy0tLSBhL2djYy9jb25maWcvaTM4Ni9pMzg2LmMKKysrKyBiL2dj Yy9jb25maWcvaTM4Ni9pMzg2LmMKK0BAIC0xMzI3MCw2ICsxMzI3MCwxNDcgQEAgcmVsZWFzZV9z Y3JhdGNoX3JlZ2lzdGVyX29uX2VudHJ5IChzdHJ1Y3Qgc2NyYXRjaF9yZWcgKnNyKQorIAorICNk ZWZpbmUgUFJPQkVfSU5URVJWQUwgKDEgPDwgU1RBQ0tfQ0hFQ0tfUFJPQkVfSU5URVJWQUxfRVhQ KQorIAorKy8qIEVtaXQgY29kZSB0byBhZGp1c3QgdGhlIHN0YWNrIHBvaW50ZXIgYnkgU0laRSBi eXRlcyB3aGlsZSBwcm9iaW5nIGl0LgorKworKyAgIFRoaXMgZGlmZmVycyBmcm9tIHRoZSBuZXh0 IHJvdXRpbmUgaW4gdGhhdCBpdCB0cmllcyBoYXJkIHRvIHByZXZlbnQKKysgICBhdHRhY2tzIHRo YXQganVtcCB0aGUgc3RhY2sgZ3VhcmQuICBUaHVzIGl0IGlzIG5ldmVyIGFsbG93ZWQgdG8gYWxs b2NhdGUKKysgICBtb3JlIHRoYW4gUFJPQkVfSU5URVJWQUwgYnl0ZXMgb2Ygc3RhY2sgc3BhY2Ug d2l0aG91dCBhIHN1aXRhYmxlCisrICAgcHJvYmUuICAqLworKworK3N0YXRpYyB2b2lkCisraXg4 Nl9hZGp1c3Rfc3RhY2tfYW5kX3Byb2JlX3N0YWNrX2NsYXNoIChjb25zdCBIT1NUX1dJREVfSU5U IHNpemUpCisreworKyAgc3RydWN0IG1hY2hpbmVfZnVuY3Rpb24gKm0gPSBjZnVuLT5tYWNoaW5l OworKworKyAgLyogSWYgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBzdGF0aWNhbGx5IGFsbG9jYXRl IHN0YWNrIHNwYWNlLCB0aGVuCisrICAgICBubyBwcm9iZXMgYXJlIG5lZWRlZC4gICovCisrICBp ZiAoIXNpemUpCisrICAgIHsKKysgICAgICBkdW1wX3N0YWNrX2NsYXNoX2ZyYW1lX2luZm8gKE5P X1BST0JFX05PX0ZSQU1FLCBmYWxzZSk7CisrICAgICAgcmV0dXJuOworKyAgICB9CisrCisrICAv KiBJZiB3ZSBhcmUgYSBub3JldHVybiBmdW5jdGlvbiwgdGhlbiB3ZSBoYXZlIHRvIGNvbnNpZGVy IHRoZQorKyAgICAgcG9zc2liaWxpdHkgdGhhdCB3ZSdyZSBjYWxsZWQgdmlhIGEganVtcCByYXRo ZXIgdGhhbiBhIGNhbGwuCisrCisrICAgICBUaHVzIHdlIGRvbid0IGhhdmUgdGhlIGltcGxpY2l0 IHByb2JlIGdlbmVyYXRlZCBieSBzYXZpbmcgdGhlCisrICAgICByZXR1cm4gYWRkcmVzcyBpbnRv IHRoZSBzdGFjayBhdCB0aGUgY2FsbC4gIFRodXMsIHRoZSBzdGFjaworKyAgICAgcG9pbnRlciBj b3VsZCBiZSBhbnl3aGVyZSBpbiB0aGUgZ3VhcmQgcGFnZS4gIFRoZSBzYWZlIHRoaW5nCisrICAg ICB0byBkbyBpcyBlbWl0IGEgcHJvYmUgbm93LgorKworKyAgICAgPyE/IFRoaXMgc2hvdWxkIGJl IHJldmFtcGVkIHRvIHdvcmsgbGlrZSBhYXJjaDY0IGFuZCBzMzkwIHdoZXJlCisrICAgICB3ZSB0 cmFjayB0aGUgb2Zmc2V0IGZyb20gdGhlIG1vc3QgcmVjZW50IHByb2JlLiAgTm9ybWFsbHkgdGhh dAorKyAgICAgb2Zmc2V0IHdvdWxkIGJlIHplcm8uICBGb3IgYSBub24tcmV0dXJuIGZ1bmN0aW9u IHdlIHdvdWxkIHJlc2V0CisrICAgICBpdCB0byBQUk9CRV9JTlRFUlZBTCAtIChTVEFDS19CT1VO REFSWSAvIEJJVFNfUEVSX1VOSVQpLiAgIFRoZW4KKysgICAgIHdlIGp1c3QgcHJvYmUgd2hlbiB3 ZSBjcm9zcyBQUk9CRV9JTlRFUlZBTC4gICovCisrICBpZiAoVFJFRV9USElTX1ZPTEFUSUxFIChj ZnVuLT5kZWNsKSkKKysgICAgeworKyAgICAgIGVtaXRfc3RhY2tfcHJvYmUgKHBsdXNfY29uc3Rh bnQgKFBtb2RlLCBzdGFja19wb2ludGVyX3J0eCwKKysJCQkJICAgICAgIC1HRVRfTU9ERV9TSVpF ICh3b3JkX21vZGUpKSk7CisrICAgICAgZW1pdF9pbnNuIChnZW5fYmxvY2thZ2UgKCkpOworKyAg ICB9CisrCisrICAvKiBJZiB3ZSBhbGxvY2F0ZSBsZXNzIHRoYW4gdGhlIHNpemUgb2YgdGhlIGd1 YXJkIHN0YXRpY2FsbHksCisrICAgICB0aGVuIG5vIHByb2JpbmcgaXMgbmVjZXNzYXJ5LCBidXQg d2UgZG8gbmVlZCB0byBhbGxvY2F0ZQorKyAgICAgdGhlIHN0YWNrLiAgKi8KKysgIGlmIChzaXpl IDwgKDEgPDwgUEFSQU1fVkFMVUUgKFBBUkFNX1NUQUNLX0NMQVNIX1BST1RFQ1RJT05fR1VBUkRf U0laRSkpKQorKyAgICB7CisrICAgICAgcHJvX2VwaWxvZ3VlX2FkanVzdF9zdGFjayAoc3RhY2tf cG9pbnRlcl9ydHgsIHN0YWNrX3BvaW50ZXJfcnR4LAorKwkJCSAgICAgICAgIEdFTl9JTlQgKC1z aXplKSwgLTEsCisrCQkJICAgICAgICAgbS0+ZnMuY2ZhX3JlZyA9PSBzdGFja19wb2ludGVyX3J0 eCk7CisrICAgICAgZHVtcF9zdGFja19jbGFzaF9mcmFtZV9pbmZvIChOT19QUk9CRV9TTUFMTF9G UkFNRSwgdHJ1ZSk7CisrICAgICAgcmV0dXJuOworKyAgICB9CisrCisrICAvKiBXZSdyZSBhbGxv Y2F0aW5nIGEgbGFyZ2UgZW5vdWdoIHN0YWNrIGZyYW1lIHRoYXQgd2UgbmVlZCB0bworKyAgICAg ZW1pdCBwcm9iZXMuICBFaXRoZXIgZW1pdCB0aGVtIGlubGluZSBvciBpbiBhIGxvb3AgZGVwZW5k aW5nCisrICAgICBvbiB0aGUgc2l6ZS4gICovCisrICBIT1NUX1dJREVfSU5UIHByb2JlX2ludGVy dmFsCisrICAgID0gMSA8PCBQQVJBTV9WQUxVRSAoUEFSQU1fU1RBQ0tfQ0xBU0hfUFJPVEVDVElP Tl9QUk9CRV9JTlRFUlZBTCk7CisrICBpZiAoc2l6ZSA8PSA0ICogcHJvYmVfaW50ZXJ2YWwpCisr ICAgIHsKKysgICAgICBIT1NUX1dJREVfSU5UIGk7CisrICAgICAgZm9yIChpID0gcHJvYmVfaW50 ZXJ2YWw7IGkgPD0gc2l6ZTsgaSArPSBwcm9iZV9pbnRlcnZhbCkKKysJeworKwkgIC8qIEFsbG9j YXRlIFBST0JFX0lOVEVSVkFMIGJ5dGVzLiAgKi8KKysJICBwcm9fZXBpbG9ndWVfYWRqdXN0X3N0 YWNrIChzdGFja19wb2ludGVyX3J0eCwgc3RhY2tfcG9pbnRlcl9ydHgsCisrCQkJCSAgICAgR0VO X0lOVCAoLXByb2JlX2ludGVydmFsKSwgLTEsCisrCQkJCSAgICAgbS0+ZnMuY2ZhX3JlZyA9PSBz dGFja19wb2ludGVyX3J0eCk7CisrCisrCSAgLyogQW5kIHByb2JlIGF0ICpzcC4gICovCisrCSAg ZW1pdF9zdGFja19wcm9iZSAoc3RhY2tfcG9pbnRlcl9ydHgpOworKwkgIGVtaXRfaW5zbiAoZ2Vu X2Jsb2NrYWdlICgpKTsKKysJfQorKworKyAgICAgIC8qIFdlIG5lZWQgdG8gYWxsb2NhdGUgc3Bh Y2UgZm9yIHRoZSByZXNpZHVhbCwgYnV0IHdlIGRvIG5vdCBuZWVkCisrCSB0byBwcm9iZSB0aGUg cmVzaWR1YWwuICAqLworKyAgICAgIEhPU1RfV0lERV9JTlQgcmVzaWR1YWwgPSAoaSAtIHByb2Jl X2ludGVydmFsIC0gc2l6ZSk7CisrICAgICAgaWYgKHJlc2lkdWFsKQorKwlwcm9fZXBpbG9ndWVf YWRqdXN0X3N0YWNrIChzdGFja19wb2ludGVyX3J0eCwgc3RhY2tfcG9pbnRlcl9ydHgsCisrCQkJ CSAgIEdFTl9JTlQgKHJlc2lkdWFsKSwgLTEsCisrCQkJCSAgIG0tPmZzLmNmYV9yZWcgPT0gc3Rh Y2tfcG9pbnRlcl9ydHgpOworKyAgICAgIGR1bXBfc3RhY2tfY2xhc2hfZnJhbWVfaW5mbyAoUFJP QkVfSU5MSU5FLCByZXNpZHVhbCAhPSAwKTsKKysgICAgfQorKyAgZWxzZQorKyAgICB7CisrICAg ICAgc3RydWN0IHNjcmF0Y2hfcmVnIHNyOworKyAgICAgIGdldF9zY3JhdGNoX3JlZ2lzdGVyX29u X2VudHJ5ICgmc3IpOworKworKyAgICAgIC8qIFN0ZXAgMTogcm91bmQgU0laRSBkb3duIHRvIGEg bXVsdGlwbGUgb2YgdGhlIGludGVydmFsLiAgKi8KKysgICAgICBIT1NUX1dJREVfSU5UIHJvdW5k ZWRfc2l6ZSA9IHNpemUgJiAtcHJvYmVfaW50ZXJ2YWw7CisrCisrICAgICAgLyogU3RlcCAyOiBj b21wdXRlIGZpbmFsIHZhbHVlIG9mIHRoZSBsb29wIGNvdW50ZXIuICBVc2UgbGVhIGlmCisrCSBw b3NzaWJsZS4gICovCisrICAgICAgcnR4IGFkZHIgPSBwbHVzX2NvbnN0YW50IChQbW9kZSwgc3Rh Y2tfcG9pbnRlcl9ydHgsIC1yb3VuZGVkX3NpemUpOworKyAgICAgIHJ0eCBpbnNuOworKyAgICAg IGlmIChhZGRyZXNzX25vX3NlZ19vcGVyYW5kIChhZGRyLCBQbW9kZSkpCisrCWluc24gPSBlbWl0 X2luc24gKGdlbl9ydHhfU0VUIChzci5yZWcsIGFkZHIpKTsKKysgICAgICBlbHNlCisrCXsKKysJ ICBlbWl0X21vdmVfaW5zbiAoc3IucmVnLCBHRU5fSU5UICgtcm91bmRlZF9zaXplKSk7CisrCSAg aW5zbiA9IGVtaXRfaW5zbiAoZ2VuX3J0eF9TRVQgKHNyLnJlZywKKysJCQkJCSBnZW5fcnR4X1BM VVMgKFBtb2RlLCBzci5yZWcsCisrCQkJCQkJICAgICAgIHN0YWNrX3BvaW50ZXJfcnR4KSkpOwor Kwl9CisrICAgICAgaWYgKG0tPmZzLmNmYV9yZWcgPT0gc3RhY2tfcG9pbnRlcl9ydHgpCisrCXsK KysJICBhZGRfcmVnX25vdGUgKGluc24sIFJFR19DRkFfREVGX0NGQSwKKysJCQlwbHVzX2NvbnN0 YW50IChQbW9kZSwgc3IucmVnLAorKwkJCQkgICAgICAgbS0+ZnMuY2ZhX29mZnNldCArIHJvdW5k ZWRfc2l6ZSkpOworKwkgIFJUWF9GUkFNRV9SRUxBVEVEX1AgKGluc24pID0gMTsKKysgICAgICAg IH0KKysKKysgICAgICAvKiBTdGVwIDM6IHRoZSBsb29wLiAgKi8KKysgICAgICBydHggc2l6ZV9y dHggPSBHRU5fSU5UIChyb3VuZGVkX3NpemUpOworKyAgICAgIGluc24gPSBlbWl0X2luc24gKGl4 ODZfZ2VuX2FkanVzdF9zdGFja19hbmRfcHJvYmUgKHNyLnJlZywgc3IucmVnLAorKwkJCQkJCQkg c2l6ZV9ydHgpKTsKKysgICAgICBpZiAobS0+ZnMuY2ZhX3JlZyA9PSBzdGFja19wb2ludGVyX3J0 eCkKKysJeworKwkgIG0tPmZzLmNmYV9vZmZzZXQgKz0gcm91bmRlZF9zaXplOworKwkgIGFkZF9y ZWdfbm90ZSAoaW5zbiwgUkVHX0NGQV9ERUZfQ0ZBLAorKwkJCXBsdXNfY29uc3RhbnQgKFBtb2Rl LCBzdGFja19wb2ludGVyX3J0eCwKKysJCQkJICAgICAgIG0tPmZzLmNmYV9vZmZzZXQpKTsKKysJ ICBSVFhfRlJBTUVfUkVMQVRFRF9QIChpbnNuKSA9IDE7CisrICAgICAgICB9CisrICAgICAgbS0+ ZnMuc3Bfb2Zmc2V0ICs9IHJvdW5kZWRfc2l6ZTsKKysgICAgICBlbWl0X2luc24gKGdlbl9ibG9j a2FnZSAoKSk7CisrCisrICAgICAgLyogU3RlcCA0OiBhZGp1c3QgU1AgaWYgd2UgY2Fubm90IGFz c2VydCBhdCBjb21waWxlLXRpbWUgdGhhdCBTSVpFCisrCSBpcyBlcXVhbCB0byBST1VOREVEX1NJ WkUuICAqLworKworKyAgICAgIGlmIChzaXplICE9IHJvdW5kZWRfc2l6ZSkKKysJcHJvX2VwaWxv Z3VlX2FkanVzdF9zdGFjayAoc3RhY2tfcG9pbnRlcl9ydHgsIHN0YWNrX3BvaW50ZXJfcnR4LAor KwkJCQkgICBHRU5fSU5UIChyb3VuZGVkX3NpemUgLSBzaXplKSwgLTEsCisrCQkJCSAgIG0tPmZz LmNmYV9yZWcgPT0gc3RhY2tfcG9pbnRlcl9ydHgpOworKyAgICAgIGR1bXBfc3RhY2tfY2xhc2hf ZnJhbWVfaW5mbyAoUFJPQkVfTE9PUCwgc2l6ZSAhPSByb3VuZGVkX3NpemUpOworKworKyAgICAg IHJlbGVhc2Vfc2NyYXRjaF9yZWdpc3Rlcl9vbl9lbnRyeSAoJnNyKTsKKysgICAgfQorKworKyAg LyogTWFrZSBzdXJlIG5vdGhpbmcgaXMgc2NoZWR1bGVkIGJlZm9yZSB3ZSBhcmUgZG9uZS4gICov CisrICBlbWl0X2luc24gKGdlbl9ibG9ja2FnZSAoKSk7CisrfQorKworIC8qIEVtaXQgY29kZSB0 byBhZGp1c3QgdGhlIHN0YWNrIHBvaW50ZXIgYnkgU0laRSBieXRlcyB3aGlsZSBwcm9iaW5nIGl0 LiAgKi8KKyAKKyBzdGF0aWMgdm9pZAorQEAgLTE0MDE4LDEyICsxNDE1OSwxOSBAQCBpeDg2X2V4 cGFuZF9wcm9sb2d1ZSAodm9pZCkKKyAKKyAgIC8qIFRoZSBzdGFjayBoYXMgYWxyZWFkeSBiZWVu IGRlY3JlbWVudGVkIGJ5IHRoZSBpbnN0cnVjdGlvbiBjYWxsaW5nIHVzCisgICAgICBzbyBwcm9i ZSBpZiB0aGUgc2l6ZSBpcyBub24tbmVnYXRpdmUgdG8gcHJlc2VydmUgdGhlIHByb3RlY3Rpb24g YXJlYS4gICovCistICBpZiAoYWxsb2NhdGUgPj0gMCAmJiBmbGFnX3N0YWNrX2NoZWNrID09IFNU QVRJQ19CVUlMVElOX1NUQUNLX0NIRUNLKQorKyAgaWYgKGFsbG9jYXRlID49IDAKKysgICAgICAm JiAoZmxhZ19zdGFja19jaGVjayA9PSBTVEFUSUNfQlVJTFRJTl9TVEFDS19DSEVDSworKwkgIHx8 IGZsYWdfc3RhY2tfY2xhc2hfcHJvdGVjdGlvbikpCisgICAgIHsKKyAgICAgICAvKiBXZSBleHBl Y3QgdGhlIHJlZ2lzdGVycyB0byBiZSBzYXZlZCB3aGVuIHByb2JlcyBhcmUgdXNlZC4gICovCisg ICAgICAgZ2NjX2Fzc2VydCAoaW50X3JlZ2lzdGVyc19zYXZlZCk7CisgCistICAgICAgaWYgKFNU QUNLX0NIRUNLX01PVklOR19TUCkKKysgICAgICBpZiAoZmxhZ19zdGFja19jbGFzaF9wcm90ZWN0 aW9uKQorKwl7CisrCSAgaXg4Nl9hZGp1c3Rfc3RhY2tfYW5kX3Byb2JlX3N0YWNrX2NsYXNoIChh bGxvY2F0ZSk7CisrCSAgYWxsb2NhdGUgPSAwOworKwl9CisrICAgICAgZWxzZSBpZiAoU1RBQ0tf Q0hFQ0tfTU9WSU5HX1NQKQorIAl7CisgCSAgaWYgKCEoY3J0bC0+aXNfbGVhZiAmJiAhY2Z1bi0+ Y2FsbHNfYWxsb2NhCisgCQkmJiBhbGxvY2F0ZSA8PSBQUk9CRV9JTlRFUlZBTCkpCitkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvc3RhY2stY2hlY2stMTAuYyBiL2djYy90ZXN0c3Vp dGUvZ2NjLmRnL3N0YWNrLWNoZWNrLTEwLmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAw MDAwMDAwMDAwMC4uYTg2OTU2YWQ2OTIKKy0tLSAvZGV2L251bGwKKysrKyBiL2djYy90ZXN0c3Vp dGUvZ2NjLmRnL3N0YWNrLWNoZWNrLTEwLmMKK0BAIC0wLDAgKzEsNDEgQEAKKysvKiB7IGRnLWRv IGNvbXBpbGUgfSAqLworKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1mc3RhY2stY2xhc2gtcHJvdGVj dGlvbiAtZmR1bXAtcnRsLXByb19hbmRfZXBpbG9ndWUgLWZuby1vcHRpbWl6ZS1zaWJsaW5nLWNh bGxzIC0tcGFyYW0gc3RhY2stY2xhc2gtcHJvdGVjdGlvbi1wcm9iZS1pbnRlcnZhbD0xMiAtLXBh cmFtIHN0YWNrLWNsYXNoLXByb3RlY3Rpb24tZ3VhcmQtc2l6ZT0xMiIgfSAqLworKy8qIHsgZGct cmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IHN1cHBvcnRzX3N0YWNrX2NsYXNoX3Byb3RlY3Rpb24g fSAqLworKworK2ludCBmIChpbnQgKik7CisrCisraW50CisrZyAoaW50IGEpCisreworKyAgcmV0 dXJuIGYgKCZhKTsKKyt9CisrCisraW50IGYxICh2b2lkKTsKKytpbnQgZjIgKGludCk7CisrCisr aW50CisrZjMgKHZvaWQpCisreworKyAgcmV0dXJuIGYyIChmMSAoKSk7CisrfQorKworKworKy8q IElmIHdlIGhhdmUgY2FsbGVyIGltcGxpY2l0IHByb2JlcywgdGhlbiB3ZSBzaG91bGQgbm90IG5l ZWQgcHJvYmVzIGluIGVpdGhlciBjYWxsZWUuCisrICAgRWxzZSBjYWxsZWVzIG1heSBuZWVkIHBy b2JlcywgcGFydGljdWxhcmx5IGlmIG5vbi1sZWFmIGZ1bmN0aW9ucyByZXF1aXJlIGEKKysgICBm cmFtZS9mcmFtZSBwb2ludGVyLiAgKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1ydGwtZHVtcC10 aW1lcyAiU3RhY2sgY2xhc2ggbm8gcHJvYmUiIDIgInByb19hbmRfZXBpbG9ndWUiIHsgdGFyZ2V0 IGNhbGxlcl9pbXBsaWNpdF9wcm9iZXMgfSB9IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1y dGwtZHVtcC10aW1lcyAiU3RhY2sgY2xhc2ggaW5saW5lIHByb2JlIiAxICJwcm9fYW5kX2VwaWxv Z3VlIiB7IHRhcmdldCB7ICEgY2FsbGVyX2ltcGxpY2l0X3Byb2JlcyB9IH0gfSB9ICovCisrLyog eyBkZy1maW5hbCB7IHNjYW4tcnRsLWR1bXAtdGltZXMgIlN0YWNrIGNsYXNoIG5vIHByb2JlIiAx ICJwcm9fYW5kX2VwaWxvZ3VlIiB7IHRhcmdldCB7ICEgY2FsbGVyX2ltcGxpY2l0X3Byb2JlcyB9 IH0gfSB9ICovCisrCisrLyogTmVpdGhlciBvZiB0aGVzZSBmdW5jdGlvbnMgYXJlIGEgbm9ucmV0 dXJuIGZ1bmN0aW9uLiAgKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1ydGwtZHVtcC10aW1lcyAi U3RhY2sgY2xhc2ggbm90IG5vcmV0dXJuIiAyICJwcm9fYW5kX2VwaWxvZ3VlIiB9IH0gKi8KKysK KysvKiBJZiB0aGUgY2FsbGVlIHJlYWxpZ25zIHRoZSBzdGFjayBvciBoYXMgYSBtYW5kYXRvcnkg ZnJhbWUsIHRoZW4gYm90aCBmdW5jdGlvbnMKKysgICBoYXZlIGEgcmVzaWR1YWwgYWxsb2NhdGlv bi4gIEVsc2UganVzdCBnKCkgaGFzIGEgcmVzaWR1YWwgYWxsb2NhdGlvbi4gICovCisrLyogeyBk Zy1maW5hbCB7IHNjYW4tcnRsLWR1bXAtdGltZXMgIlN0YWNrIGNsYXNoIHJlc2lkdWFsIGFsbG9j YXRpb24gaW4gcHJvbG9ndWUiIDIgInByb19hbmRfZXBpbG9ndWUiIH0gfSAqLworKworKworKy8q IElmIHRoZSB0YXJnZXQgaGFzIGZyYW1lIHBvaW50ZXJzIGZvciBub24tbGVhZnMsIHRoZW4gYm90 aCBmdW5jdGlvbnMgd2lsbAorKyAgIG5lZWQgYSBmcmFtZSBwb2ludGVyLiAgT3RoZXJ3aXNlIG5l aXRoZXIgc2hvdWxkLiAgKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1ydGwtZHVtcC10aW1lcyAi U3RhY2sgY2xhc2ggbm8gZnJhbWUgcG9pbnRlciBuZWVkZWQiIDIgInByb19hbmRfZXBpbG9ndWUi IHsgdGFyZ2V0IHsgISBmcmFtZV9wb2ludGVyX2Zvcl9ub25fbGVhZiB9IH0gfSB9ICovCisrLyog eyBkZy1maW5hbCB7IHNjYW4tcnRsLWR1bXAtdGltZXMgIlN0YWNrIGNsYXNoIGZyYW1lIHBvaW50 ZXIgbmVlZGVkIiAyICJwcm9fYW5kX2VwaWxvZ3VlIiB7IHRhcmdldCB7IGZyYW1lX3BvaW50ZXJf Zm9yX25vbl9sZWFmIH0gfSB9IH0gKi8KK2RpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5k Zy9zdGFjay1jaGVjay0zLmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9zdGFjay1jaGVjay0zLmMK K2luZGV4IDU4ZmI2NTY0OWVlLi5mMGJmN2M3MWE1YiAxMDA2NDQKKy0tLSBhL2djYy90ZXN0c3Vp dGUvZ2NjLmRnL3N0YWNrLWNoZWNrLTMuYworKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvc3Rh Y2stY2hlY2stMy5jCitAQCAtNyw3ICs3LDcgQEAKKyAgICByZXNpZHVhbCBhbGxvY2F0aW9uICsg cHJvYmUgZm9yIGY/LiAgKi8KKyAKKyAvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLS8qIHsgZGct b3B0aW9ucyAiLU8yIC1mc3RhY2stY2xhc2gtcHJvdGVjdGlvbiAtZmR1bXAtcnRsLWV4cGFuZCAt Zm5vLW9wdGltaXplLXNpYmxpbmctY2FsbHMgLS1wYXJhbSBzdGFjay1jbGFzaC1wcm90ZWN0aW9u LXByb2JlLWludGVydmFsPTQwOTYgLS1wYXJhbSBzdGFjay1jbGFzaC1wcm90ZWN0aW9uLWd1YXJk LXNpemU9NDA5NiIgfSAqLworKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1mc3RhY2stY2xhc2gtcHJv dGVjdGlvbiAtZmR1bXAtcnRsLWV4cGFuZCAtZm5vLW9wdGltaXplLXNpYmxpbmctY2FsbHMgLS1w YXJhbSBzdGFjay1jbGFzaC1wcm90ZWN0aW9uLXByb2JlLWludGVydmFsPTEyIC0tcGFyYW0gc3Rh Y2stY2xhc2gtcHJvdGVjdGlvbi1ndWFyZC1zaXplPTEyIiB9ICovCisgLyogeyBkZy1yZXF1aXJl LWVmZmVjdGl2ZS10YXJnZXQgc3VwcG9ydHNfc3RhY2tfY2xhc2hfcHJvdGVjdGlvbiB9ICovCisg CisgX19hdHRyaWJ1dGVfXygobm9pbmxpbmUsIG5vY2xvbmUpKSB2b2lkCitkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nY2MuZGcvc3RhY2stY2hlY2stNC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu ZGcvc3RhY2stY2hlY2stNC5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAw MDAuLmIwYzVjNjE5NzJmCistLS0gL2Rldi9udWxsCisrKysgYi9nY2MvdGVzdHN1aXRlL2djYy5k Zy9zdGFjay1jaGVjay00LmMKK0BAIC0wLDAgKzEsNDIgQEAKKysvKiBPbiB0YXJnZXRzIHdoZXJl IHRoZSBjYWxsIGluc3RydWN0aW9uIGlzIGFuIGltcGxpY2l0IHByb2JlIG9mICpzcCwgd2UKKysg ICBlbGlkZSBzdGFjayBwcm9iZXMgYXMgbG9uZyBhcyB0aGUgc2l6ZSBvZiB0aGUgbG9jYWwgc3Rh Y2sgaXMgbGVzcyB0aGFuCisrICAgUFJPQkVfSU5URVJWQUwuCisrCisrICAgQnV0IGlmIHRoZSBj YWxsZXIgd2VyZSB0byB0cmFuc2Zvcm0gYSB0YWlsIGNhbGwgaW50byBhIGRpcmVjdCBqdW1wCisr ICAgd2UgZG8gbm90IGhhdmUgdGhhdCBpbXBsaWNpdCBwcm9iZS4gIFRoaXMgbm9ybWFsbHkgaXNu J3QgYSBwcm9ibGVtIGFzCisrICAgdGhlIGNhbGxlciBtdXN0IG5vdCBoYXZlIGEgbG9jYWwgZnJh bWUgZm9yIHRoYXQgb3B0aW1pemF0aW9uIHRvIGFwcGx5LgorKworKyAgIEhvd2V2ZXIsIGEgc3Vm ZmljaWVudGx5IHNtYXJ0IGNvbXBpbGVyIGNvdWxkIHJlYWxpemUgdGhhdCB0aGUgY2FsbGVyJ3MK KysgICBsb2NhbCBzdGFjayBuZWVkIG5vdCBiZSB0b3JuIGRvd24gYW5kIHRodXMgY291bGQgdHJh bnNmb3JtIGEgY2FsbCBpbnRvCisrICAgYSBqdW1wIGlmIHRoZSB0YXJnZXQgaXMgYSBub3JldHVy biBmdW5jdGlvbiwgZXZlbiBpZiB0aGUgY2FsbGVyIGhhcworKyAgIGEgbG9jYWwgZnJhbWUuCisr CisrICAgVG8gZ3VhcmQgYWdhaW5zdCB0aGF0LCB0YXJnZXRzIHRoYXQgZGVwZW5kIG9uICpzcCBi ZWluZyBwcm9iZWQgYnkgdGhlCisrICAgY2FsbCBpdHNlbGYgbXVzdCBlbWl0IGEgcHJvYmUgaWYg dGhlIHRhcmdldCBmdW5jdGlvbiBpcyBhIG5vcmV0dXJuCisrICAgZnVuY3Rpb24sIGV2ZW4gaWYg dGhleSBqdXN0IGFsbG9jYXRlIGEgc21hbGwgYW1vdW50IG9mIHN0YWNrIHNwYWNlLgorKworKyAg IFJhdGhlciB0aGFuIHRyeSB0byBwYXJzZSBSVEwgb3IgYXNzZW1ibHkgY29kZSwgd2UgaW5zdGVh ZCByZXF1aXJlIHRoZQorKyAgIHByb2xvZ3VlIGNvZGUgdG8gZW1pdCBpbmZvcm1hdGlvbiBpbnRv IHRoZSBkdW1wIGZpbGUgdGhhdCB3ZSBjYW4KKysgICBzY2FuIGZvci4gICBXZSBzY2FuIGZvciBi b3RoIHRoZSBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgY2FzZXMuICAqLworKworKy8qIHsgZGctZG8g Y29tcGlsZSB9ICovCisrLyogeyBkZy1vcHRpb25zICItTzIgLWZzdGFjay1jbGFzaC1wcm90ZWN0 aW9uIC1mZHVtcC1ydGwtcHJvX2FuZF9lcGlsb2d1ZSAtZm5vLW9wdGltaXplLXNpYmxpbmctY2Fs bHMiIH0gKi8KKysvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBzdXBwb3J0c19zdGFj a19jbGFzaF9wcm90ZWN0aW9uIH0gKi8KKysKKytleHRlcm4gdm9pZCBhcmYgKGNoYXIgKik7Cisr CisrX19hdHRyaWJ1dGVfXyAoKG5vcmV0dXJuKSkgdm9pZCBmb28xICgpCisreworKyAgY2hhciB4 WzEwXTsKKysgIHdoaWxlICgxKQorKyAgICBhcmYgKHgpOworK30KKysKKyt2b2lkIGZvbzIgKCkK Kyt7CisrICBjaGFyIHhbMTBdOworKyAgYXJmICh4KTsKKyt9CisrLyogeyBkZy1maW5hbCB7IHNj YW4tcnRsLWR1bXAtdGltZXMgIlN0YWNrIGNsYXNoIG5vcmV0dXJuIiAxICJwcm9fYW5kX2VwaWxv Z3VlIiB9IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1ydGwtZHVtcC10aW1lcyAiU3RhY2sg Y2xhc2ggbm90IG5vcmV0dXJuIiAxICJwcm9fYW5kX2VwaWxvZ3VlIiB9IH0gKi8KKysKK2RpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9zdGFjay1jaGVjay01LmMgYi9nY2MvdGVzdHN1 aXRlL2djYy5kZy9zdGFjay1jaGVjay01LmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAw MDAwMDAwMDAwMC4uMjE3MWQ5YjZjMjMKKy0tLSAvZGV2L251bGwKKysrKyBiL2djYy90ZXN0c3Vp dGUvZ2NjLmRnL3N0YWNrLWNoZWNrLTUuYworQEAgLTAsMCArMSw3NCBAQAorKy8qIHsgZGctZG8g Y29tcGlsZSB9ICovCisrLyogeyBkZy1vcHRpb25zICItTzIgLWZzdGFjay1jbGFzaC1wcm90ZWN0 aW9uIC1mZHVtcC1ydGwtcHJvX2FuZF9lcGlsb2d1ZSAtZm5vLW9wdGltaXplLXNpYmxpbmctY2Fs bHMgLS1wYXJhbSBzdGFjay1jbGFzaC1wcm90ZWN0aW9uLXByb2JlLWludGVydmFsPTEyIC0tcGFy YW0gc3RhY2stY2xhc2gtcHJvdGVjdGlvbi1ndWFyZC1zaXplPTEyIiB9ICovCisrLyogeyBkZy1y ZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgc3VwcG9ydHNfc3RhY2tfY2xhc2hfcHJvdGVjdGlvbiB9 ICovCisrCisrCisrZXh0ZXJuIHZvaWQgZm9vIChjaGFyICopOworK2V4dGVybiB2b2lkIGJhciAo dm9pZCk7CisrCisrLyogVGhpcyBmdW5jdGlvbiBhbGxvY2F0ZXMgbm8gbG9jYWwgc3RhY2sgYW5k IGlzIGEgbGVhZi4gIEl0IHNob3VsZCBoYXZlIG5vCisrICAgcHJvYmVzIG9uIGFueSB0YXJnZXQg YW5kIHNob3VsZCBub3QgcmVxdWlyZSBhIGZyYW1lIHBvaW50ZXIuICAqLworK2ludAorK2YwIChp bnQgeCwgaW50IHkpCisreworKyAgYXNtIHZvbGF0aWxlICgiIiA6IDogOiAibWVtb3J5Iik7ICAK KysgIHJldHVybiB4ICsgeTsKKyt9CisrCisrLyogVGhpcyBmdW5jdGlvbiBhbGxvY2F0ZXMgbm8g bG9jYWwgc3RhY2ssIGJ1dCBpcyBub3QgYSBsZWFmLiAgSWRlYWxseSBpdAorKyAgIHNob3VsZCBu b3QgbmVlZCBwcm9iaW5nIGFuZCBubyBmcmFtZSBwb2ludGVyLiAgKi8KKytpbnQKKytmMSAoaW50 IHgsIGludCB5KQorK3sKKysgIGFzbSB2b2xhdGlsZSAoIiIgOiA6IDogIm1lbW9yeSIpOyAgCisr ICBiYXIgKCk7CisrfQorKworKy8qIFRoaXMgaXMgYSBsZWFmIHdpdGggYSBzbWFsbCBmcmFtZS4g IE9uIHRhcmdldHMgd2l0aCBpbXBsaWNpdCBwcm9iZXMgaW4KKysgICB0aGUgY2FsbGVyLCB0aGlz IHNob3VsZCBub3QgbmVlZCBwcm9iaW5nLiAgT24gdGFyZ2V0cyB3aXRoIG5vIGltcGxpY2l0Cisr ICAgcHJvYmVzIGluIHRoZSBjYWxsZXIsIGl0IG1heSByZXF1aXJlIHByb2Jlcy4gIElkZWFsbHkg aXQgc2hvdWxkIG5lZWQgbm8KKysgICBmcmFtZSBwb2ludGVyLiAgKi8KKyt2b2lkCisrZjIgKHZv aWQpCisreworKyAgY2hhciBidWZbNTEyXTsKKysgIGFzbSB2b2xhdGlsZSAoIiIgOiA6ICJnIiAo JmJ1ZikgOiAibWVtb3J5Iik7CisrfQorKworKy8qIFRoaXMgaXMgYSBub24tbGVhZiB3aXRoIGEg c21hbGwgZnJhbWUuICBPbiB0YXJnZXRzIHdpdGggaW1wbGljaXQgcHJvYmVzIGluCisrICAgdGhl IGNhbGxlciwgdGhpcyBzaG91bGQgbm90IG5lZWQgcHJvYmluZy4gIE9uIHRhcmdldHMgd2l0aCBu byBpbXBsaWNpdAorKyAgIHByb2JlcyBpbiB0aGUgY2FsbGVyLCBpdCBtYXkgcmVxdWlyZSBwcm9i ZXMuICBJdCBzaG91bGQgbmVlZCBubyBmcmFtZQorKyAgIHBvaW50ZXIuICAqLworK3ZvaWQKKytm MyAodm9pZCkKKyt7CisrICBjaGFyIGJ1Zls1MTJdOworKyAgZm9vIChidWYpOworK30KKysKKysv KiBJZiB3ZSBoYXZlIGNhbGxlciBpbXBsaWNpdCBwcm9iZXMsIHRoZW4gd2Ugc2hvdWxkIG5vdCBu ZWVkIHByb2Jlcy4KKysgICBFbHNlIGNhbGxlZXMgbWF5IG5lZWQgcHJvYmVzLCBwYXJ0aWN1bGFy bHkgaWYgbm9uLWxlYWYgZnVuY3Rpb25zIHJlcXVpcmUgYQorKyAgIGZyYW1lL2ZyYW1lIHBvaW50 ZXIuICAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLXJ0bC1kdW1wLXRpbWVzICJTdGFjayBjbGFz aCBubyBwcm9iZSIgNCAicHJvX2FuZF9lcGlsb2d1ZSIgeyB0YXJnZXQgY2FsbGVyX2ltcGxpY2l0 X3Byb2JlcyB9IH0gfSAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLXJ0bC1kdW1wLXRpbWVzICJT dGFjayBjbGFzaCBubyBwcm9iZSIgMiAicHJvX2FuZF9lcGlsb2d1ZSIgeyB0YXJnZXQgeyAhIGNh bGxlcl9pbXBsaWNpdF9wcm9iZXMgfSB9IH0gfSAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLXJ0 bC1kdW1wLXRpbWVzICJTdGFjayBjbGFzaCBpbmxpbmUgcHJvYmVzICIgMiAicHJvX2FuZF9lcGls b2d1ZSIgeyB0YXJnZXQgeyAhIGNhbGxlcl9pbXBsaWNpdF9wcm9iZXMgfSB9IH0gfSAqLworKwor Ky8qIE5vbmUgb2YgdGhlc2UgZnVuY3Rpb25zIGFyZSBtYXJrZWQgd2l0aCB0aGUgbm9yZXR1cm4g YXR0cmlidXRlLiAgKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1ydGwtZHVtcC10aW1lcyAiU3Rh Y2sgY2xhc2ggbm90IG5vcmV0dXJuIiA0ICJwcm9fYW5kX2VwaWxvZ3VlIiB9IH0gKi8KKysKKysv KiBUd28gZnVuY3Rpb25zIGFyZSBsZWFmcywgdHdvIGFyZSBub3QuICBWZXJpZnkgdGhlIHRhcmdl dCBpZGVudGlmaWVkIHRoZW0KKysgICBhcHByb3ByaWF0ZWx5LiAgKi8KKysvKiB7IGRnLWZpbmFs IHsgc2Nhbi1ydGwtZHVtcC10aW1lcyAiU3RhY2sgY2xhc2ggbm8gZnJhbWUgcG9pbnRlciBuZWVk ZWQiIDQgInByb19hbmRfZXBpbG9ndWUiIHsgdGFyZ2V0IHsgISBmcmFtZV9wb2ludGVyX2Zvcl9u b25fbGVhZiB9IH0gfSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tcnRsLWR1bXAtdGltZXMg IlN0YWNrIGNsYXNoIG5vIGZyYW1lIHBvaW50ZXIgbmVlZGVkIiAyICJwcm9fYW5kX2VwaWxvZ3Vl IiB7IHRhcmdldCB7IGZyYW1lX3BvaW50ZXJfZm9yX25vbl9sZWFmIH0gfSB9IH0gKi8KKysvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1ydGwtZHVtcC10aW1lcyAiU3RhY2sgY2xhc2ggZnJhbWUgcG9pbnRl ciBuZWVkZWQiIDIgInByb19hbmRfZXBpbG9ndWUiIHsgdGFyZ2V0IHsgZnJhbWVfcG9pbnRlcl9m b3Jfbm9uX2xlYWYgfSB9IH0gfSAqLworKworKworKy8qIFdlIGhhdmUgc2VsZWN0ZWQgdGhlIHNp emUgb2YgdGhlIGFycmF5IGluIGYyL2YzIHRvIGJlIGxhcmdlIGVub3VnaAorKyAgIHRvIG5vdCBs aXZlIGluIHRoZSByZWQgem9uZSBvbiB0YXJnZXRzIHRoYXQgc3VwcG9ydCBpdC4KKysKKysgICBU aGF0IGFsbG93cyBzaW1wbGlmaWNhdGlvbiBvZiB0aGlzIHRlc3QgY29uc2lkZXJhYmx5LgorKyAg IGYxKCkgc2hvdWxkIG5vdCByZXF1aXJlIGFueSBhbGxvY2F0aW9ucywgdGh1cyBubyByZXNpZHVh bHMuCisrICAgQWxsIHRoZSByZXN0IG9mIHRoZSBmdW5jdGlvbnMgcmVxdWlyZSBzb21lIGtpbmQg b2YgYWxsb2NhdGlvbiwKKysgICBlaXRoZXIgZm9yIHRoZSBzYXZlZCBmcC9ycCBvciB0aGUgYXJy YXkuICAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLXJ0bC1kdW1wLXRpbWVzICJTdGFjayBjbGFz aCBubyByZXNpZHVhbCBhbGxvY2F0aW9uIGluIHByb2xvZ3VlIiAxICJwcm9fYW5kX2VwaWxvZ3Vl IiB9IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1ydGwtZHVtcC10aW1lcyAiU3RhY2sgY2xh c2ggcmVzaWR1YWwgYWxsb2NhdGlvbiBpbiBwcm9sb2d1ZSIgMyAicHJvX2FuZF9lcGlsb2d1ZSIg fSB9ICovCitkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvc3RhY2stY2hlY2stNi5j IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvc3RhY2stY2hlY2stNi5jCituZXcgZmlsZSBtb2RlIDEw MDY0NAoraW5kZXggMDAwMDAwMDAwMDAuLmFkMjAyMWM5MDM3CistLS0gL2Rldi9udWxsCisrKysg Yi9nY2MvdGVzdHN1aXRlL2djYy5kZy9zdGFjay1jaGVjay02LmMKK0BAIC0wLDAgKzEsNTUgQEAK KysvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1mc3RhY2st Y2xhc2gtcHJvdGVjdGlvbiAtZmR1bXAtcnRsLXByb19hbmRfZXBpbG9ndWUgLWZuby1vcHRpbWl6 ZS1zaWJsaW5nLWNhbGxzIC0tcGFyYW0gc3RhY2stY2xhc2gtcHJvdGVjdGlvbi1wcm9iZS1pbnRl cnZhbD0xMiAtLXBhcmFtIHN0YWNrLWNsYXNoLXByb3RlY3Rpb24tZ3VhcmQtc2l6ZT0xMiIgfSAq LworKy8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IHN1cHBvcnRzX3N0YWNrX2NsYXNo X3Byb3RlY3Rpb24gfSAqLworKworKworK2V4dGVybiB2b2lkIGZvbyAoY2hhciAqKTsKKytleHRl cm4gdm9pZCBiYXIgKHZvaWQpOworKworKworKy8qIFRoaXMgaXMgYSBsZWFmIHdpdGggYSBmcmFt ZSB0aGF0IGlzIGxhcmdlIGVub3VnaCB0byByZXF1aXJlIHByb2Jpbmcgd2l0aAorKyAgIGEgcmVz aWR1YWwgYWxsb2NhdGlvbiwgYnV0IHNtYWxsIGVub3VnaCB0byBwcm9iZSBpbmxpbmUuICAqLwor K3ZvaWQKKytmNCAodm9pZCkKKyt7CisrICBjaGFyIGJ1Zls0MDk2ICsgNTEyXTsKKysgIGFzbSB2 b2xhdGlsZSAoIiIgOiA6ICJnIiAoJmJ1ZikgOiAibWVtb3J5Iik7CisrfQorKworKworKy8qIFRo aXMgaXMgYSBub24tbGVhZiB3aXRoIGEgZnJhbWUgbGFyZ2UgZW5vdWdoIHRvIHJlcXVpcmUgcHJv YmluZyBhbmQKKysgICBhIHJlc2lkdWFsIGFsbG9jYXRpb24sIGJ1dCBzbWFsbCBlbm91Z2ggdG8g cHJvYmUgaW5saW5lLiAgKi8KKyt2b2lkCisrZjUgKHZvaWQpCisreworKyAgY2hhciBidWZbNDA5 NiArIDUxMl07CisrICBmb28gKGJ1Zik7CisrfQorKworKy8qIFRoaXMgaXMgYSBsZWFmIHdpdGgg YSBmcmFtZSB0aGF0IGlzIGxhcmdlIGVub3VnaCB0byByZXF1aXJlIHByb2Jpbmcgd2l0aAorKyAg IGEgbG9vcCBwbHVzIGEgcmVzaWR1YWwgYWxsb2NhdGlvbi4gICovCisrdm9pZAorK2Y2ICh2b2lk KQorK3sKKysgIGNoYXIgYnVmWzQwOTYgKiAxMCArIDUxMl07CisrICBhc20gdm9sYXRpbGUgKCIi IDogOiAiZyIgKCZidWYpIDogIm1lbW9yeSIpOworK30KKysKKysKKysvKiBUaGlzIGlzIGEgbm9u LWxlYWYgd2l0aCBhIGZyYW1lIGxhcmdlIGVub3VnaCB0byByZXF1aXJlIHByb2Jpbmcgd2l0aAor KyAgIGEgbG9vcCBwbHVzIGEgcmVzaWR1YWwgYWxsb2NhdGlvbi4gICovCisrdm9pZAorK2Y3ICh2 b2lkKQorK3sKKysgIGNoYXIgYnVmWzQwOTYgKiAxMCArIDUxMl07CisrICBmb28gKGJ1Zik7Cisr fQorKworKy8qIHsgZGctZmluYWwgeyBzY2FuLXJ0bC1kdW1wLXRpbWVzICJTdGFjayBjbGFzaCBp bmxpbmUgcHJvYmVzIiAyICJwcm9fYW5kX2VwaWxvZ3VlIiB9IH0gKi8KKysvKiB7IGRnLWZpbmFs IHsgc2Nhbi1ydGwtZHVtcC10aW1lcyAiU3RhY2sgY2xhc2ggcHJvYmUgbG9vcCIgMiAicHJvX2Fu ZF9lcGlsb2d1ZSIgfSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tcnRsLWR1bXAtdGltZXMg IlN0YWNrIGNsYXNoIHJlc2lkdWFsIGFsbG9jYXRpb24gaW4gcHJvbG9ndWUiIDQgInByb19hbmRf ZXBpbG9ndWUiIH0gfSAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLXJ0bC1kdW1wLXRpbWVzICJT dGFjayBjbGFzaCBub3Qgbm9yZXR1cm4iIDQgInByb19hbmRfZXBpbG9ndWUiIH0gfSAqLworKwor Ky8qIHsgZGctZmluYWwgeyBzY2FuLXJ0bC1kdW1wLXRpbWVzICJTdGFjayBjbGFzaCBubyBmcmFt ZSBwb2ludGVyIG5lZWRlZCIgNCAicHJvX2FuZF9lcGlsb2d1ZSIgeyB0YXJnZXQgeyAhIGZyYW1l X3BvaW50ZXJfZm9yX25vbl9sZWFmIH0gfSB9IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1y dGwtZHVtcC10aW1lcyAiU3RhY2sgY2xhc2ggbm8gZnJhbWUgcG9pbnRlciBuZWVkZWQiIDIgInBy b19hbmRfZXBpbG9ndWUiIHsgdGFyZ2V0IHsgZnJhbWVfcG9pbnRlcl9mb3Jfbm9uX2xlYWYgfSB9 IH0gfSAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLXJ0bC1kdW1wLXRpbWVzICJTdGFjayBjbGFz aCBmcmFtZSBwb2ludGVyIG5lZWRlZCIgMiAicHJvX2FuZF9lcGlsb2d1ZSIgeyB0YXJnZXQgeyBm cmFtZV9wb2ludGVyX2Zvcl9ub25fbGVhZiB9IH0gfSB9ICovCitkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MuZGcvc3RhY2stY2hlY2stNmEuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3N0 YWNrLWNoZWNrLTZhLmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMC4u NmY4ZTcxMjg5MjEKKy0tLSAvZGV2L251bGwKKysrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3N0 YWNrLWNoZWNrLTZhLmMKK0BAIC0wLDAgKzEsMTcgQEAKKysvKiBUaGUgZ29hbCBoZXJlIGlzIHRv IHZlcmlmeSB0aGF0IGluY3JlYXNpbmcgdGhlIHNpemUgb2YgdGhlIGd1YXJkIGFsbG93cworKyAg IGVsaW1pbmF0aW9uIG9mIGFsbCBwcm9iaW5nIG9uIHRoZSByZWxldmFudCB0YXJnZXRzLiAgKi8K KysgICAKKysvKiB7IGRnLWRvIGNvbXBpbGUgIH0gKi8KKysvKiB7IGRnLW9wdGlvbnMgIi1PMiAt ZnN0YWNrLWNsYXNoLXByb3RlY3Rpb24gLWZkdW1wLXJ0bC1wcm9fYW5kX2VwaWxvZ3VlIC1mbm8t b3B0aW1pemUtc2libGluZy1jYWxscyAtLXBhcmFtIHN0YWNrLWNsYXNoLXByb3RlY3Rpb24tcHJv YmUtaW50ZXJ2YWw9MTIgLS1wYXJhbSBzdGFjay1jbGFzaC1wcm90ZWN0aW9uLWd1YXJkLXNpemU9 MTYiIH0gKi8KKysvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBzdXBwb3J0c19zdGFj a19jbGFzaF9wcm90ZWN0aW9uICB9ICovCisrCisrI2luY2x1ZGUgInN0YWNrLWNoZWNrLTYuYyIK KysKKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1ydGwtZHVtcC10aW1lcyAiU3RhY2sgY2xhc2ggaW5s aW5lIHByb2JlcyIgMCAicHJvX2FuZF9lcGlsb2d1ZSIgfSB9ICovCisrLyogeyBkZy1maW5hbCB7 IHNjYW4tcnRsLWR1bXAtdGltZXMgIlN0YWNrIGNsYXNoIHByb2JlIGxvb3AiIDAgInByb19hbmRf ZXBpbG9ndWUiIH0gfSAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLXJ0bC1kdW1wLXRpbWVzICJT dGFjayBjbGFzaCByZXNpZHVhbCBhbGxvY2F0aW9uIGluIHByb2xvZ3VlIiA0ICJwcm9fYW5kX2Vw aWxvZ3VlIiB9IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1ydGwtZHVtcC10aW1lcyAiU3Rh Y2sgY2xhc2ggbm90IG5vcmV0dXJuIiA0ICJwcm9fYW5kX2VwaWxvZ3VlIiB9IH0gKi8KKysKKysv KiB7IGRnLWZpbmFsIHsgc2Nhbi1ydGwtZHVtcC10aW1lcyAiU3RhY2sgY2xhc2ggbm8gZnJhbWUg cG9pbnRlciBuZWVkZWQiIDQgInByb19hbmRfZXBpbG9ndWUiIHsgdGFyZ2V0IHsgISBmcmFtZV9w b2ludGVyX2Zvcl9ub25fbGVhZiB9IH0gfSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tcnRs LWR1bXAtdGltZXMgIlN0YWNrIGNsYXNoIG5vIGZyYW1lIHBvaW50ZXIgbmVlZGVkIiAyICJwcm9f YW5kX2VwaWxvZ3VlIiB7IHRhcmdldCB7IGZyYW1lX3BvaW50ZXJfZm9yX25vbl9sZWFmIH0gfSB9 IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1ydGwtZHVtcC10aW1lcyAiU3RhY2sgY2xhc2gg ZnJhbWUgcG9pbnRlciBuZWVkZWQiIDIgInByb19hbmRfZXBpbG9ndWUiIHsgdGFyZ2V0IHsgZnJh bWVfcG9pbnRlcl9mb3Jfbm9uX2xlYWYgfSB9IH0gfSAqLworZGlmZiAtLWdpdCBhL2djYy90ZXN0 c3VpdGUvZ2NjLmRnL3N0YWNrLWNoZWNrLTcuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3N0YWNr LWNoZWNrLTcuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwLi5iOTYz YTI4ODFkYworLS0tIC9kZXYvbnVsbAorKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvc3RhY2st Y2hlY2stNy5jCitAQCAtMCwwICsxLDM2IEBACisrLyogeyBkZy1kbyBydW4gfSAqLworKy8qIHsg ZGctb3B0aW9ucyAiLU8yIC1mc3RhY2stY2xhc2gtcHJvdGVjdGlvbiAtZm5vLW9wdGltaXplLXNp YmxpbmctY2FsbHMgLS1wYXJhbSBzdGFjay1jbGFzaC1wcm90ZWN0aW9uLXByb2JlLWludGVydmFs PTEyIC0tcGFyYW0gc3RhY2stY2xhc2gtcHJvdGVjdGlvbi1ndWFyZC1zaXplPTEyIiB9ICovCisr LyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgc3VwcG9ydHNfc3RhY2tfY2xhc2hfcHJv dGVjdGlvbiB9ICovCisrCisrLyogRm9yIGZ1cnRoZXIgdGVzdGluZywgdGhpcyBjYW4gYmUgcnVu IHVuZGVyIHZhbGdyaW5kIHdoZXJlIGl0J3MgY3Jhc2hlZAorKyAgIG9uIGFhcmNoNjQgYW5kIHBw YzY0bGUgd2l0aCAtZnN0YWNrLWNoZWNrPXNwZWNpZmljLiAgKi8KKysKKysKKytfX2F0dHJpYnV0 ZV9fKChub2lubGluZSwgbm9jbG9uZSkpIHZvaWQKKytmb28gKGNoYXIgKnApCisreworKyAgYXNt IHZvbGF0aWxlICgiIiA6IDogInIiIChwKSA6ICJtZW1vcnkiKTsKKyt9CisrCisrX19hdHRyaWJ1 dGVfXygobm9pbmxpbmUsIG5vY2xvbmUpKSB2b2lkCisrYmFyICh2b2lkKQorK3sKKysgIGNoYXIg YnVmWzEzMTA3Ml07CisrICBmb28gKGJ1Zik7CisrfQorKworK19fYXR0cmlidXRlX18oKG5vaW5s aW5lLCBub2Nsb25lKSkgdm9pZAorK2JheiAodm9pZCkKKyt7CisrICBjaGFyIGJ1ZlsxMjAwMF07 CisrICBmb28gKGJ1Zik7CisrfQorKworK2ludAorK21haW4gKCkKKyt7CisrICBiYXIgKCk7Cisr ICBiYXogKCk7CisrICByZXR1cm4gMDsKKyt9CisrCitkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9nY2MuZGcvc3RhY2stY2hlY2stOC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvc3RhY2stY2hl Y2stOC5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAuLjg0ZDVhZGVm MTU0CistLS0gL2Rldi9udWxsCisrKysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9zdGFjay1jaGVj ay04LmMKK0BAIC0wLDAgKzEsMTM5IEBACisrLyogeyBkZy1kbyBydW4gfSAqLworKy8qIHsgZGct b3B0aW9ucyAiLU8yIC1mc3RhY2stY2xhc2gtcHJvdGVjdGlvbiAtV25vLXBzYWJpIC1mbm8tb3B0 aW1pemUtc2libGluZy1jYWxscyAtLXBhcmFtIHN0YWNrLWNsYXNoLXByb3RlY3Rpb24tcHJvYmUt aW50ZXJ2YWw9MTIgLS1wYXJhbSBzdGFjay1jbGFzaC1wcm90ZWN0aW9uLWd1YXJkLXNpemU9MTIi IH0gKi8KKysvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBzdXBwb3J0c19zdGFja19j bGFzaF9wcm90ZWN0aW9uIH0gKi8KKysKKysKKyt0eXBlZGVmIGZsb2F0IFYgX19hdHRyaWJ1dGVf XygodmVjdG9yX3NpemUgKDMyKSkpOworKworK19fYXR0cmlidXRlX18oKG5vaW5saW5lLCBub2Ns b25lKSkgdm9pZAorK2ZvbyAoY2hhciAqcCkKKyt7CisrICBhc20gdm9sYXRpbGUgKCIiIDogOiAi ciIgKHApIDogIm1lbW9yeSIpOworK30KKysKKytfX2F0dHJpYnV0ZV9fKChub2lubGluZSwgbm9j bG9uZSkpIGludAorK2YwIChpbnQgeCwgaW50IHkpCisreworKyAgYXNtIHZvbGF0aWxlICgiIiA6 IDogOiAibWVtb3J5Iik7ICAKKysgIHJldHVybiB4ICsgeTsKKyt9CisrCisrX19hdHRyaWJ1dGVf Xygobm9pbmxpbmUsIG5vY2xvbmUpKSB2b2lkCisrZjEgKHZvaWQpCisreworKyAgY2hhciBidWZb NjRdOworKyAgZm9vIChidWYpOworK30KKysKKytfX2F0dHJpYnV0ZV9fKChub2lubGluZSwgbm9j bG9uZSkpIHZvaWQKKytmMiAodm9pZCkKKyt7CisrICBjaGFyIGJ1ZlsxMjAwMF07CisrICBmb28g KGJ1Zik7CisrfQorKworK19fYXR0cmlidXRlX18oKG5vaW5saW5lLCBub2Nsb25lKSkgdm9pZAor K2YzICh2b2lkKQorK3sKKysgIGNoYXIgYnVmWzEzMTA3Ml07CisrICBmb28gKGJ1Zik7CisrfQor KworK19fYXR0cmlidXRlX18oKG5vaW5saW5lLCBub2Nsb25lKSkgdm9pZAorK2Y0IChpbnQgeCkK Kyt7CisrICBjaGFyIHZsYVt4XTsKKysgIGZvbyAodmxhKTsKKyt9CisrCisrX19hdHRyaWJ1dGVf Xygobm9pbmxpbmUsIG5vY2xvbmUpKSB2b2lkCisrZjUgKGludCB4KQorK3sKKysgIGNoYXIgYnVm WzEyMDAwXTsKKysgIGZvbyAoYnVmKTsKKysgIHsKKysgICAgY2hhciB2bGFbeF07CisrICAgIGZv byAodmxhKTsKKysgIH0KKysgIHsKKysgICAgY2hhciB2bGFbeF07CisrICAgIGZvbyAodmxhKTsK KysgIH0KKyt9CisrCisrViB2OworKworK19fYXR0cmlidXRlX18oKG5vaW5saW5lLCBub2Nsb25l KSkgaW50CisrZjYgKGludCB4LCBpbnQgeSwgViBhLCBWIGIsIFYgYykKKyt7CisrICBhc20gdm9s YXRpbGUgKCIiIDogOiA6ICJtZW1vcnkiKTsgIAorKyAgdiA9IGEgKyBiICsgYzsKKysgIHJldHVy biB4ICsgeTsKKyt9CisrCisrX19hdHRyaWJ1dGVfXygobm9pbmxpbmUsIG5vY2xvbmUpKSB2b2lk CisrZjcgKFYgYSwgViBiLCBWIGMpCisreworKyAgY2hhciBidWZbNjRdOworKyAgZm9vIChidWYp OworKyAgdiA9IGEgKyBiICsgYzsKKyt9CisrCisrX19hdHRyaWJ1dGVfXygobm9pbmxpbmUsIG5v Y2xvbmUpKSB2b2lkCisrZjggKFYgYSwgViBiLCBWIGMpCisreworKyAgY2hhciBidWZbMTIwMDBd OworKyAgZm9vIChidWYpOworKyAgdiA9IGEgKyBiICsgYzsKKyt9CisrCisrX19hdHRyaWJ1dGVf Xygobm9pbmxpbmUsIG5vY2xvbmUpKSB2b2lkCisrZjkgKFYgYSwgViBiLCBWIGMpCisreworKyAg Y2hhciBidWZbMTMxMDcyXTsKKysgIGZvbyAoYnVmKTsKKysgIHYgPSBhICsgYiArIGM7CisrfQor KworK19fYXR0cmlidXRlX18oKG5vaW5saW5lLCBub2Nsb25lKSkgdm9pZAorK2YxMCAoaW50IHgs IFYgYSwgViBiLCBWIGMpCisreworKyAgY2hhciB2bGFbeF07CisrICBmb28gKHZsYSk7CisrICB2 ID0gYSArIGIgKyBjOworK30KKysKKytfX2F0dHJpYnV0ZV9fKChub2lubGluZSwgbm9jbG9uZSkp IHZvaWQKKytmMTEgKGludCB4LCBWIGEsIFYgYiwgViBjKQorK3sKKysgIGNoYXIgYnVmWzEyMDAw XTsKKysgIGZvbyAoYnVmKTsKKysgIHYgPSBhICsgYiArIGM7CisrICB7CisrICAgIGNoYXIgdmxh W3hdOworKyAgICBmb28gKHZsYSk7CisrICB9CisrICB7CisrICAgIGNoYXIgdmxhW3hdOworKyAg ICBmb28gKHZsYSk7CisrICB9CisrfQorKworK2ludAorK21haW4gKCkKKyt7CisrICBmMCAoMiwg Myk7CisrICBmMSAoKTsKKysgIGYyICgpOworKyAgZjMgKCk7CisrICBmNCAoMTIwMDApOworKyAg ZjUgKDEyMDAwKTsKKysgIGY2ICgyLCAzLCB2LCB2LCB2KTsKKysgIGY3ICh2LCB2LCB2KTsKKysg IGY4ICh2LCB2LCB2KTsKKysgIGY5ICh2LCB2LCB2KTsKKysgIGYxMCAoMTIwMDAsIHYsIHYsIHYp OworKyAgZjExICgxMjAwMCwgdiwgdiwgdik7CisrICByZXR1cm4gMDsKKyt9CisrCitkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvc3RhY2stY2hlY2stOS5jIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MuZGcvc3RhY2stY2hlY2stOS5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAw MDAwMDAwMDAuLmI4NDA3NWI5YjQzCistLS0gL2Rldi9udWxsCisrKysgYi9nY2MvdGVzdHN1aXRl L2djYy5kZy9zdGFjay1jaGVjay05LmMKK0BAIC0wLDAgKzEsMjAyMiBAQAorKy8qIHsgZGctZG8g Y29tcGlsZSB9ICovCisrLyogeyBkZy1vcHRpb25zICItTzIgLWZzdGFjay1jbGFzaC1wcm90ZWN0 aW9uIC1mZHVtcC1ydGwtcHJvX2FuZF9lcGlsb2d1ZSAtZm5vLW9wdGltaXplLXNpYmxpbmctY2Fs bHMgLS1wYXJhbSBzdGFjay1jbGFzaC1wcm90ZWN0aW9uLXByb2JlLWludGVydmFsPTEyIC0tcGFy YW0gc3RhY2stY2xhc2gtcHJvdGVjdGlvbi1ndWFyZC1zaXplPTEyIiB9ICovCisrLyogeyBkZy1y ZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgc3VwcG9ydHNfc3RhY2tfY2xhc2hfcHJvdGVjdGlvbiB9 ICovCisrCisrZG91YmxlIGYxICh2b2lkKTsKKytkb3VibGUgZjIgKGRvdWJsZSwgZG91YmxlKTsK KysKKytkb3VibGUKKytmMyAodm9pZCkKKyt7CisrICBkb3VibGUgZDAwMCA9IGYxICgpOworKyAg ZG91YmxlIGQwMDEgPSBmMSAoKTsKKysgIGRvdWJsZSBkMDAyID0gZjEgKCk7CisrICBkb3VibGUg ZDAwMyA9IGYxICgpOworKyAgZG91YmxlIGQwMDQgPSBmMSAoKTsKKysgIGRvdWJsZSBkMDA1ID0g ZjEgKCk7CisrICBkb3VibGUgZDAwNiA9IGYxICgpOworKyAgZG91YmxlIGQwMDcgPSBmMSAoKTsK KysgIGRvdWJsZSBkMDA4ID0gZjEgKCk7CisrICBkb3VibGUgZDAwOSA9IGYxICgpOworKyAgZG91 YmxlIGQwMTAgPSBmMSAoKTsKKysgIGRvdWJsZSBkMDExID0gZjEgKCk7CisrICBkb3VibGUgZDAx MiA9IGYxICgpOworKyAgZG91YmxlIGQwMTMgPSBmMSAoKTsKKysgIGRvdWJsZSBkMDE0ID0gZjEg KCk7CisrICBkb3VibGUgZDAxNSA9IGYxICgpOworKyAgZG91YmxlIGQwMTYgPSBmMSAoKTsKKysg IGRvdWJsZSBkMDE3ID0gZjEgKCk7CisrICBkb3VibGUgZDAxOCA9IGYxICgpOworKyAgZG91Ymxl IGQwMTkgPSBmMSAoKTsKKysgIGRvdWJsZSBkMDIwID0gZjEgKCk7CisrICBkb3VibGUgZDAyMSA9 IGYxICgpOworKyAgZG91YmxlIGQwMjIgPSBmMSAoKTsKKysgIGRvdWJsZSBkMDIzID0gZjEgKCk7 CisrICBkb3VibGUgZDAyNCA9IGYxICgpOworKyAgZG91YmxlIGQwMjUgPSBmMSAoKTsKKysgIGRv dWJsZSBkMDI2ID0gZjEgKCk7CisrICBkb3VibGUgZDAyNyA9IGYxICgpOworKyAgZG91YmxlIGQw MjggPSBmMSAoKTsKKysgIGRvdWJsZSBkMDI5ID0gZjEgKCk7CisrICBkb3VibGUgZDAzMCA9IGYx ICgpOworKyAgZG91YmxlIGQwMzEgPSBmMSAoKTsKKysgIGRvdWJsZSBkMDMyID0gZjEgKCk7Cisr ICBkb3VibGUgZDAzMyA9IGYxICgpOworKyAgZG91YmxlIGQwMzQgPSBmMSAoKTsKKysgIGRvdWJs ZSBkMDM1ID0gZjEgKCk7CisrICBkb3VibGUgZDAzNiA9IGYxICgpOworKyAgZG91YmxlIGQwMzcg PSBmMSAoKTsKKysgIGRvdWJsZSBkMDM4ID0gZjEgKCk7CisrICBkb3VibGUgZDAzOSA9IGYxICgp OworKyAgZG91YmxlIGQwNDAgPSBmMSAoKTsKKysgIGRvdWJsZSBkMDQxID0gZjEgKCk7CisrICBk b3VibGUgZDA0MiA9IGYxICgpOworKyAgZG91YmxlIGQwNDMgPSBmMSAoKTsKKysgIGRvdWJsZSBk MDQ0ID0gZjEgKCk7CisrICBkb3VibGUgZDA0NSA9IGYxICgpOworKyAgZG91YmxlIGQwNDYgPSBm MSAoKTsKKysgIGRvdWJsZSBkMDQ3ID0gZjEgKCk7CisrICBkb3VibGUgZDA0OCA9IGYxICgpOwor KyAgZG91YmxlIGQwNDkgPSBmMSAoKTsKKysgIGRvdWJsZSBkMDUwID0gZjEgKCk7CisrICBkb3Vi bGUgZDA1MSA9IGYxICgpOworKyAgZG91YmxlIGQwNTIgPSBmMSAoKTsKKysgIGRvdWJsZSBkMDUz ID0gZjEgKCk7CisrICBkb3VibGUgZDA1NCA9IGYxICgpOworKyAgZG91YmxlIGQwNTUgPSBmMSAo KTsKKysgIGRvdWJsZSBkMDU2ID0gZjEgKCk7CisrICBkb3VibGUgZDA1NyA9IGYxICgpOworKyAg ZG91YmxlIGQwNTggPSBmMSAoKTsKKysgIGRvdWJsZSBkMDU5ID0gZjEgKCk7CisrICBkb3VibGUg ZDA2MCA9IGYxICgpOworKyAgZG91YmxlIGQwNjEgPSBmMSAoKTsKKysgIGRvdWJsZSBkMDYyID0g ZjEgKCk7CisrICBkb3VibGUgZDA2MyA9IGYxICgpOworKyAgZG91YmxlIGQwNjQgPSBmMSAoKTsK KysgIGRvdWJsZSBkMDY1ID0gZjEgKCk7CisrICBkb3VibGUgZDA2NiA9IGYxICgpOworKyAgZG91 YmxlIGQwNjcgPSBmMSAoKTsKKysgIGRvdWJsZSBkMDY4ID0gZjEgKCk7CisrICBkb3VibGUgZDA2 OSA9IGYxICgpOworKyAgZG91YmxlIGQwNzAgPSBmMSAoKTsKKysgIGRvdWJsZSBkMDcxID0gZjEg KCk7CisrICBkb3VibGUgZDA3MiA9IGYxICgpOworKyAgZG91YmxlIGQwNzMgPSBmMSAoKTsKKysg IGRvdWJsZSBkMDc0ID0gZjEgKCk7CisrICBkb3VibGUgZDA3NSA9IGYxICgpOworKyAgZG91Ymxl IGQwNzYgPSBmMSAoKTsKKysgIGRvdWJsZSBkMDc3ID0gZjEgKCk7CisrICBkb3VibGUgZDA3OCA9 IGYxICgpOworKyAgZG91YmxlIGQwNzkgPSBmMSAoKTsKKysgIGRvdWJsZSBkMDgwID0gZjEgKCk7 CisrICBkb3VibGUgZDA4MSA9IGYxICgpOworKyAgZG91YmxlIGQwODIgPSBmMSAoKTsKKysgIGRv dWJsZSBkMDgzID0gZjEgKCk7CisrICBkb3VibGUgZDA4NCA9IGYxICgpOworKyAgZG91YmxlIGQw ODUgPSBmMSAoKTsKKysgIGRvdWJsZSBkMDg2ID0gZjEgKCk7CisrICBkb3VibGUgZDA4NyA9IGYx ICgpOworKyAgZG91YmxlIGQwODggPSBmMSAoKTsKKysgIGRvdWJsZSBkMDg5ID0gZjEgKCk7Cisr ICBkb3VibGUgZDA5MCA9IGYxICgpOworKyAgZG91YmxlIGQwOTEgPSBmMSAoKTsKKysgIGRvdWJs ZSBkMDkyID0gZjEgKCk7CisrICBkb3VibGUgZDA5MyA9IGYxICgpOworKyAgZG91YmxlIGQwOTQg PSBmMSAoKTsKKysgIGRvdWJsZSBkMDk1ID0gZjEgKCk7CisrICBkb3VibGUgZDA5NiA9IGYxICgp OworKyAgZG91YmxlIGQwOTcgPSBmMSAoKTsKKysgIGRvdWJsZSBkMDk4ID0gZjEgKCk7CisrICBk b3VibGUgZDA5OSA9IGYxICgpOworKyAgZG91YmxlIGQxMDAgPSBmMSAoKTsKKysgIGRvdWJsZSBk MTAxID0gZjEgKCk7CisrICBkb3VibGUgZDEwMiA9IGYxICgpOworKyAgZG91YmxlIGQxMDMgPSBm MSAoKTsKKysgIGRvdWJsZSBkMTA0ID0gZjEgKCk7CisrICBkb3VibGUgZDEwNSA9IGYxICgpOwor KyAgZG91YmxlIGQxMDYgPSBmMSAoKTsKKysgIGRvdWJsZSBkMTA3ID0gZjEgKCk7CisrICBkb3Vi bGUgZDEwOCA9IGYxICgpOworKyAgZG91YmxlIGQxMDkgPSBmMSAoKTsKKysgIGRvdWJsZSBkMTEw ID0gZjEgKCk7CisrICBkb3VibGUgZDExMSA9IGYxICgpOworKyAgZG91YmxlIGQxMTIgPSBmMSAo KTsKKysgIGRvdWJsZSBkMTEzID0gZjEgKCk7CisrICBkb3VibGUgZDExNCA9IGYxICgpOworKyAg ZG91YmxlIGQxMTUgPSBmMSAoKTsKKysgIGRvdWJsZSBkMTE2ID0gZjEgKCk7CisrICBkb3VibGUg ZDExNyA9IGYxICgpOworKyAgZG91YmxlIGQxMTggPSBmMSAoKTsKKysgIGRvdWJsZSBkMTE5ID0g ZjEgKCk7CisrICBkb3VibGUgZDEyMCA9IGYxICgpOworKyAgZG91YmxlIGQxMjEgPSBmMSAoKTsK KysgIGRvdWJsZSBkMTIyID0gZjEgKCk7CisrICBkb3VibGUgZDEyMyA9IGYxICgpOworKyAgZG91 YmxlIGQxMjQgPSBmMSAoKTsKKysgIGRvdWJsZSBkMTI1ID0gZjEgKCk7CisrICBkb3VibGUgZDEy NiA9IGYxICgpOworKyAgZG91YmxlIGQxMjcgPSBmMSAoKTsKKysgIGRvdWJsZSBkMTI4ID0gZjEg KCk7CisrICBkb3VibGUgZDEyOSA9IGYxICgpOworKyAgZG91YmxlIGQxMzAgPSBmMSAoKTsKKysg IGRvdWJsZSBkMTMxID0gZjEgKCk7CisrICBkb3VibGUgZDEzMiA9IGYxICgpOworKyAgZG91Ymxl IGQxMzMgPSBmMSAoKTsKKysgIGRvdWJsZSBkMTM0ID0gZjEgKCk7CisrICBkb3VibGUgZDEzNSA9 IGYxICgpOworKyAgZG91YmxlIGQxMzYgPSBmMSAoKTsKKysgIGRvdWJsZSBkMTM3ID0gZjEgKCk7 CisrICBkb3VibGUgZDEzOCA9IGYxICgpOworKyAgZG91YmxlIGQxMzkgPSBmMSAoKTsKKysgIGRv dWJsZSBkMTQwID0gZjEgKCk7CisrICBkb3VibGUgZDE0MSA9IGYxICgpOworKyAgZG91YmxlIGQx NDIgPSBmMSAoKTsKKysgIGRvdWJsZSBkMTQzID0gZjEgKCk7CisrICBkb3VibGUgZDE0NCA9IGYx ICgpOworKyAgZG91YmxlIGQxNDUgPSBmMSAoKTsKKysgIGRvdWJsZSBkMTQ2ID0gZjEgKCk7Cisr ICBkb3VibGUgZDE0NyA9IGYxICgpOworKyAgZG91YmxlIGQxNDggPSBmMSAoKTsKKysgIGRvdWJs ZSBkMTQ5ID0gZjEgKCk7CisrICBkb3VibGUgZDE1MCA9IGYxICgpOworKyAgZG91YmxlIGQxNTEg PSBmMSAoKTsKKysgIGRvdWJsZSBkMTUyID0gZjEgKCk7CisrICBkb3VibGUgZDE1MyA9IGYxICgp OworKyAgZG91YmxlIGQxNTQgPSBmMSAoKTsKKysgIGRvdWJsZSBkMTU1ID0gZjEgKCk7CisrICBk b3VibGUgZDE1NiA9IGYxICgpOworKyAgZG91YmxlIGQxNTcgPSBmMSAoKTsKKysgIGRvdWJsZSBk MTU4ID0gZjEgKCk7CisrICBkb3VibGUgZDE1OSA9IGYxICgpOworKyAgZG91YmxlIGQxNjAgPSBm MSAoKTsKKysgIGRvdWJsZSBkMTYxID0gZjEgKCk7CisrICBkb3VibGUgZDE2MiA9IGYxICgpOwor KyAgZG91YmxlIGQxNjMgPSBmMSAoKTsKKysgIGRvdWJsZSBkMTY0ID0gZjEgKCk7CisrICBkb3Vi bGUgZDE2NSA9IGYxICgpOworKyAgZG91YmxlIGQxNjYgPSBmMSAoKTsKKysgIGRvdWJsZSBkMTY3 ID0gZjEgKCk7CisrICBkb3VibGUgZDE2OCA9IGYxICgpOworKyAgZG91YmxlIGQxNjkgPSBmMSAo KTsKKysgIGRvdWJsZSBkMTcwID0gZjEgKCk7CisrICBkb3VibGUgZDE3MSA9IGYxICgpOworKyAg ZG91YmxlIGQxNzIgPSBmMSAoKTsKKysgIGRvdWJsZSBkMTczID0gZjEgKCk7CisrICBkb3VibGUg ZDE3NCA9IGYxICgpOworKyAgZG91YmxlIGQxNzUgPSBmMSAoKTsKKysgIGRvdWJsZSBkMTc2ID0g ZjEgKCk7CisrICBkb3VibGUgZDE3NyA9IGYxICgpOworKyAgZG91YmxlIGQxNzggPSBmMSAoKTsK KysgIGRvdWJsZSBkMTc5ID0gZjEgKCk7CisrICBkb3VibGUgZDE4MCA9IGYxICgpOworKyAgZG91 YmxlIGQxODEgPSBmMSAoKTsKKysgIGRvdWJsZSBkMTgyID0gZjEgKCk7CisrICBkb3VibGUgZDE4 MyA9IGYxICgpOworKyAgZG91YmxlIGQxODQgPSBmMSAoKTsKKysgIGRvdWJsZSBkMTg1ID0gZjEg KCk7CisrICBkb3VibGUgZDE4NiA9IGYxICgpOworKyAgZG91YmxlIGQxODcgPSBmMSAoKTsKKysg IGRvdWJsZSBkMTg4ID0gZjEgKCk7CisrICBkb3VibGUgZDE4OSA9IGYxICgpOworKyAgZG91Ymxl IGQxOTAgPSBmMSAoKTsKKysgIGRvdWJsZSBkMTkxID0gZjEgKCk7CisrICBkb3VibGUgZDE5MiA9 IGYxICgpOworKyAgZG91YmxlIGQxOTMgPSBmMSAoKTsKKysgIGRvdWJsZSBkMTk0ID0gZjEgKCk7 CisrICBkb3VibGUgZDE5NSA9IGYxICgpOworKyAgZG91YmxlIGQxOTYgPSBmMSAoKTsKKysgIGRv dWJsZSBkMTk3ID0gZjEgKCk7CisrICBkb3VibGUgZDE5OCA9IGYxICgpOworKyAgZG91YmxlIGQx OTkgPSBmMSAoKTsKKysgIGRvdWJsZSBkMjAwID0gZjEgKCk7CisrICBkb3VibGUgZDIwMSA9IGYx ICgpOworKyAgZG91YmxlIGQyMDIgPSBmMSAoKTsKKysgIGRvdWJsZSBkMjAzID0gZjEgKCk7Cisr ICBkb3VibGUgZDIwNCA9IGYxICgpOworKyAgZG91YmxlIGQyMDUgPSBmMSAoKTsKKysgIGRvdWJs ZSBkMjA2ID0gZjEgKCk7CisrICBkb3VibGUgZDIwNyA9IGYxICgpOworKyAgZG91YmxlIGQyMDgg PSBmMSAoKTsKKysgIGRvdWJsZSBkMjA5ID0gZjEgKCk7CisrICBkb3VibGUgZDIxMCA9IGYxICgp OworKyAgZG91YmxlIGQyMTEgPSBmMSAoKTsKKysgIGRvdWJsZSBkMjEyID0gZjEgKCk7CisrICBk b3VibGUgZDIxMyA9IGYxICgpOworKyAgZG91YmxlIGQyMTQgPSBmMSAoKTsKKysgIGRvdWJsZSBk MjE1ID0gZjEgKCk7CisrICBkb3VibGUgZDIxNiA9IGYxICgpOworKyAgZG91YmxlIGQyMTcgPSBm MSAoKTsKKysgIGRvdWJsZSBkMjE4ID0gZjEgKCk7CisrICBkb3VibGUgZDIxOSA9IGYxICgpOwor KyAgZG91YmxlIGQyMjAgPSBmMSAoKTsKKysgIGRvdWJsZSBkMjIxID0gZjEgKCk7CisrICBkb3Vi bGUgZDIyMiA9IGYxICgpOworKyAgZG91YmxlIGQyMjMgPSBmMSAoKTsKKysgIGRvdWJsZSBkMjI0 ID0gZjEgKCk7CisrICBkb3VibGUgZDIyNSA9IGYxICgpOworKyAgZG91YmxlIGQyMjYgPSBmMSAo KTsKKysgIGRvdWJsZSBkMjI3ID0gZjEgKCk7CisrICBkb3VibGUgZDIyOCA9IGYxICgpOworKyAg ZG91YmxlIGQyMjkgPSBmMSAoKTsKKysgIGRvdWJsZSBkMjMwID0gZjEgKCk7CisrICBkb3VibGUg ZDIzMSA9IGYxICgpOworKyAgZG91YmxlIGQyMzIgPSBmMSAoKTsKKysgIGRvdWJsZSBkMjMzID0g ZjEgKCk7CisrICBkb3VibGUgZDIzNCA9IGYxICgpOworKyAgZG91YmxlIGQyMzUgPSBmMSAoKTsK KysgIGRvdWJsZSBkMjM2ID0gZjEgKCk7CisrICBkb3VibGUgZDIzNyA9IGYxICgpOworKyAgZG91 YmxlIGQyMzggPSBmMSAoKTsKKysgIGRvdWJsZSBkMjM5ID0gZjEgKCk7CisrICBkb3VibGUgZDI0 MCA9IGYxICgpOworKyAgZG91YmxlIGQyNDEgPSBmMSAoKTsKKysgIGRvdWJsZSBkMjQyID0gZjEg KCk7CisrICBkb3VibGUgZDI0MyA9IGYxICgpOworKyAgZG91YmxlIGQyNDQgPSBmMSAoKTsKKysg IGRvdWJsZSBkMjQ1ID0gZjEgKCk7CisrICBkb3VibGUgZDI0NiA9IGYxICgpOworKyAgZG91Ymxl IGQyNDcgPSBmMSAoKTsKKysgIGRvdWJsZSBkMjQ4ID0gZjEgKCk7CisrICBkb3VibGUgZDI0OSA9 IGYxICgpOworKyAgZG91YmxlIGQyNTAgPSBmMSAoKTsKKysgIGRvdWJsZSBkMjUxID0gZjEgKCk7 CisrICBkb3VibGUgZDI1MiA9IGYxICgpOworKyAgZG91YmxlIGQyNTMgPSBmMSAoKTsKKysgIGRv dWJsZSBkMjU0ID0gZjEgKCk7CisrICBkb3VibGUgZDI1NSA9IGYxICgpOworKyAgZG91YmxlIGQy NTYgPSBmMSAoKTsKKysgIGRvdWJsZSBkMjU3ID0gZjEgKCk7CisrICBkb3VibGUgZDI1OCA9IGYx ICgpOworKyAgZG91YmxlIGQyNTkgPSBmMSAoKTsKKysgIGRvdWJsZSBkMjYwID0gZjEgKCk7Cisr ICBkb3VibGUgZDI2MSA9IGYxICgpOworKyAgZG91YmxlIGQyNjIgPSBmMSAoKTsKKysgIGRvdWJs ZSBkMjYzID0gZjEgKCk7CisrICBkb3VibGUgZDI2NCA9IGYxICgpOworKyAgZG91YmxlIGQyNjUg PSBmMSAoKTsKKysgIGRvdWJsZSBkMjY2ID0gZjEgKCk7CisrICBkb3VibGUgZDI2NyA9IGYxICgp OworKyAgZG91YmxlIGQyNjggPSBmMSAoKTsKKysgIGRvdWJsZSBkMjY5ID0gZjEgKCk7CisrICBk b3VibGUgZDI3MCA9IGYxICgpOworKyAgZG91YmxlIGQyNzEgPSBmMSAoKTsKKysgIGRvdWJsZSBk MjcyID0gZjEgKCk7CisrICBkb3VibGUgZDI3MyA9IGYxICgpOworKyAgZG91YmxlIGQyNzQgPSBm MSAoKTsKKysgIGRvdWJsZSBkMjc1ID0gZjEgKCk7CisrICBkb3VibGUgZDI3NiA9IGYxICgpOwor KyAgZG91YmxlIGQyNzcgPSBmMSAoKTsKKysgIGRvdWJsZSBkMjc4ID0gZjEgKCk7CisrICBkb3Vi bGUgZDI3OSA9IGYxICgpOworKyAgZG91YmxlIGQyODAgPSBmMSAoKTsKKysgIGRvdWJsZSBkMjgx ID0gZjEgKCk7CisrICBkb3VibGUgZDI4MiA9IGYxICgpOworKyAgZG91YmxlIGQyODMgPSBmMSAo KTsKKysgIGRvdWJsZSBkMjg0ID0gZjEgKCk7CisrICBkb3VibGUgZDI4NSA9IGYxICgpOworKyAg ZG91YmxlIGQyODYgPSBmMSAoKTsKKysgIGRvdWJsZSBkMjg3ID0gZjEgKCk7CisrICBkb3VibGUg ZDI4OCA9IGYxICgpOworKyAgZG91YmxlIGQyODkgPSBmMSAoKTsKKysgIGRvdWJsZSBkMjkwID0g ZjEgKCk7CisrICBkb3VibGUgZDI5MSA9IGYxICgpOworKyAgZG91YmxlIGQyOTIgPSBmMSAoKTsK KysgIGRvdWJsZSBkMjkzID0gZjEgKCk7CisrICBkb3VibGUgZDI5NCA9IGYxICgpOworKyAgZG91 YmxlIGQyOTUgPSBmMSAoKTsKKysgIGRvdWJsZSBkMjk2ID0gZjEgKCk7CisrICBkb3VibGUgZDI5 NyA9IGYxICgpOworKyAgZG91YmxlIGQyOTggPSBmMSAoKTsKKysgIGRvdWJsZSBkMjk5ID0gZjEg KCk7CisrICBkb3VibGUgZDMwMCA9IGYxICgpOworKyAgZG91YmxlIGQzMDEgPSBmMSAoKTsKKysg IGRvdWJsZSBkMzAyID0gZjEgKCk7CisrICBkb3VibGUgZDMwMyA9IGYxICgpOworKyAgZG91Ymxl IGQzMDQgPSBmMSAoKTsKKysgIGRvdWJsZSBkMzA1ID0gZjEgKCk7CisrICBkb3VibGUgZDMwNiA9 IGYxICgpOworKyAgZG91YmxlIGQzMDcgPSBmMSAoKTsKKysgIGRvdWJsZSBkMzA4ID0gZjEgKCk7 CisrICBkb3VibGUgZDMwOSA9IGYxICgpOworKyAgZG91YmxlIGQzMTAgPSBmMSAoKTsKKysgIGRv dWJsZSBkMzExID0gZjEgKCk7CisrICBkb3VibGUgZDMxMiA9IGYxICgpOworKyAgZG91YmxlIGQz MTMgPSBmMSAoKTsKKysgIGRvdWJsZSBkMzE0ID0gZjEgKCk7CisrICBkb3VibGUgZDMxNSA9IGYx ICgpOworKyAgZG91YmxlIGQzMTYgPSBmMSAoKTsKKysgIGRvdWJsZSBkMzE3ID0gZjEgKCk7Cisr ICBkb3VibGUgZDMxOCA9IGYxICgpOworKyAgZG91YmxlIGQzMTkgPSBmMSAoKTsKKysgIGRvdWJs ZSBkMzIwID0gZjEgKCk7CisrICBkb3VibGUgZDMyMSA9IGYxICgpOworKyAgZG91YmxlIGQzMjIg PSBmMSAoKTsKKysgIGRvdWJsZSBkMzIzID0gZjEgKCk7CisrICBkb3VibGUgZDMyNCA9IGYxICgp OworKyAgZG91YmxlIGQzMjUgPSBmMSAoKTsKKysgIGRvdWJsZSBkMzI2ID0gZjEgKCk7CisrICBk b3VibGUgZDMyNyA9IGYxICgpOworKyAgZG91YmxlIGQzMjggPSBmMSAoKTsKKysgIGRvdWJsZSBk MzI5ID0gZjEgKCk7CisrICBkb3VibGUgZDMzMCA9IGYxICgpOworKyAgZG91YmxlIGQzMzEgPSBm MSAoKTsKKysgIGRvdWJsZSBkMzMyID0gZjEgKCk7CisrICBkb3VibGUgZDMzMyA9IGYxICgpOwor KyAgZG91YmxlIGQzMzQgPSBmMSAoKTsKKysgIGRvdWJsZSBkMzM1ID0gZjEgKCk7CisrICBkb3Vi bGUgZDMzNiA9IGYxICgpOworKyAgZG91YmxlIGQzMzcgPSBmMSAoKTsKKysgIGRvdWJsZSBkMzM4 ID0gZjEgKCk7CisrICBkb3VibGUgZDMzOSA9IGYxICgpOworKyAgZG91YmxlIGQzNDAgPSBmMSAo KTsKKysgIGRvdWJsZSBkMzQxID0gZjEgKCk7CisrICBkb3VibGUgZDM0MiA9IGYxICgpOworKyAg ZG91YmxlIGQzNDMgPSBmMSAoKTsKKysgIGRvdWJsZSBkMzQ0ID0gZjEgKCk7CisrICBkb3VibGUg ZDM0NSA9IGYxICgpOworKyAgZG91YmxlIGQzNDYgPSBmMSAoKTsKKysgIGRvdWJsZSBkMzQ3ID0g ZjEgKCk7CisrICBkb3VibGUgZDM0OCA9IGYxICgpOworKyAgZG91YmxlIGQzNDkgPSBmMSAoKTsK KysgIGRvdWJsZSBkMzUwID0gZjEgKCk7CisrICBkb3VibGUgZDM1MSA9IGYxICgpOworKyAgZG91 YmxlIGQzNTIgPSBmMSAoKTsKKysgIGRvdWJsZSBkMzUzID0gZjEgKCk7CisrICBkb3VibGUgZDM1 NCA9IGYxICgpOworKyAgZG91YmxlIGQzNTUgPSBmMSAoKTsKKysgIGRvdWJsZSBkMzU2ID0gZjEg KCk7CisrICBkb3VibGUgZDM1NyA9IGYxICgpOworKyAgZG91YmxlIGQzNTggPSBmMSAoKTsKKysg IGRvdWJsZSBkMzU5ID0gZjEgKCk7CisrICBkb3VibGUgZDM2MCA9IGYxICgpOworKyAgZG91Ymxl IGQzNjEgPSBmMSAoKTsKKysgIGRvdWJsZSBkMzYyID0gZjEgKCk7CisrICBkb3VibGUgZDM2MyA9 IGYxICgpOworKyAgZG91YmxlIGQzNjQgPSBmMSAoKTsKKysgIGRvdWJsZSBkMzY1ID0gZjEgKCk7 CisrICBkb3VibGUgZDM2NiA9IGYxICgpOworKyAgZG91YmxlIGQzNjcgPSBmMSAoKTsKKysgIGRv dWJsZSBkMzY4ID0gZjEgKCk7CisrICBkb3VibGUgZDM2OSA9IGYxICgpOworKyAgZG91YmxlIGQz NzAgPSBmMSAoKTsKKysgIGRvdWJsZSBkMzcxID0gZjEgKCk7CisrICBkb3VibGUgZDM3MiA9IGYx ICgpOworKyAgZG91YmxlIGQzNzMgPSBmMSAoKTsKKysgIGRvdWJsZSBkMzc0ID0gZjEgKCk7Cisr ICBkb3VibGUgZDM3NSA9IGYxICgpOworKyAgZG91YmxlIGQzNzYgPSBmMSAoKTsKKysgIGRvdWJs ZSBkMzc3ID0gZjEgKCk7CisrICBkb3VibGUgZDM3OCA9IGYxICgpOworKyAgZG91YmxlIGQzNzkg PSBmMSAoKTsKKysgIGRvdWJsZSBkMzgwID0gZjEgKCk7CisrICBkb3VibGUgZDM4MSA9IGYxICgp OworKyAgZG91YmxlIGQzODIgPSBmMSAoKTsKKysgIGRvdWJsZSBkMzgzID0gZjEgKCk7CisrICBk b3VibGUgZDM4NCA9IGYxICgpOworKyAgZG91YmxlIGQzODUgPSBmMSAoKTsKKysgIGRvdWJsZSBk Mzg2ID0gZjEgKCk7CisrICBkb3VibGUgZDM4NyA9IGYxICgpOworKyAgZG91YmxlIGQzODggPSBm MSAoKTsKKysgIGRvdWJsZSBkMzg5ID0gZjEgKCk7CisrICBkb3VibGUgZDM5MCA9IGYxICgpOwor KyAgZG91YmxlIGQzOTEgPSBmMSAoKTsKKysgIGRvdWJsZSBkMzkyID0gZjEgKCk7CisrICBkb3Vi bGUgZDM5MyA9IGYxICgpOworKyAgZG91YmxlIGQzOTQgPSBmMSAoKTsKKysgIGRvdWJsZSBkMzk1 ID0gZjEgKCk7CisrICBkb3VibGUgZDM5NiA9IGYxICgpOworKyAgZG91YmxlIGQzOTcgPSBmMSAo KTsKKysgIGRvdWJsZSBkMzk4ID0gZjEgKCk7CisrICBkb3VibGUgZDM5OSA9IGYxICgpOworKyAg ZG91YmxlIGQ0MDAgPSBmMSAoKTsKKysgIGRvdWJsZSBkNDAxID0gZjEgKCk7CisrICBkb3VibGUg ZDQwMiA9IGYxICgpOworKyAgZG91YmxlIGQ0MDMgPSBmMSAoKTsKKysgIGRvdWJsZSBkNDA0ID0g ZjEgKCk7CisrICBkb3VibGUgZDQwNSA9IGYxICgpOworKyAgZG91YmxlIGQ0MDYgPSBmMSAoKTsK KysgIGRvdWJsZSBkNDA3ID0gZjEgKCk7CisrICBkb3VibGUgZDQwOCA9IGYxICgpOworKyAgZG91 YmxlIGQ0MDkgPSBmMSAoKTsKKysgIGRvdWJsZSBkNDEwID0gZjEgKCk7CisrICBkb3VibGUgZDQx MSA9IGYxICgpOworKyAgZG91YmxlIGQ0MTIgPSBmMSAoKTsKKysgIGRvdWJsZSBkNDEzID0gZjEg KCk7CisrICBkb3VibGUgZDQxNCA9IGYxICgpOworKyAgZG91YmxlIGQ0MTUgPSBmMSAoKTsKKysg IGRvdWJsZSBkNDE2ID0gZjEgKCk7CisrICBkb3VibGUgZDQxNyA9IGYxICgpOworKyAgZG91Ymxl IGQ0MTggPSBmMSAoKTsKKysgIGRvdWJsZSBkNDE5ID0gZjEgKCk7CisrICBkb3VibGUgZDQyMCA9 IGYxICgpOworKyAgZG91YmxlIGQ0MjEgPSBmMSAoKTsKKysgIGRvdWJsZSBkNDIyID0gZjEgKCk7 CisrICBkb3VibGUgZDQyMyA9IGYxICgpOworKyAgZG91YmxlIGQ0MjQgPSBmMSAoKTsKKysgIGRv dWJsZSBkNDI1ID0gZjEgKCk7CisrICBkb3VibGUgZDQyNiA9IGYxICgpOworKyAgZG91YmxlIGQ0 MjcgPSBmMSAoKTsKKysgIGRvdWJsZSBkNDI4ID0gZjEgKCk7CisrICBkb3VibGUgZDQyOSA9IGYx ICgpOworKyAgZG91YmxlIGQ0MzAgPSBmMSAoKTsKKysgIGRvdWJsZSBkNDMxID0gZjEgKCk7Cisr ICBkb3VibGUgZDQzMiA9IGYxICgpOworKyAgZG91YmxlIGQ0MzMgPSBmMSAoKTsKKysgIGRvdWJs ZSBkNDM0ID0gZjEgKCk7CisrICBkb3VibGUgZDQzNSA9IGYxICgpOworKyAgZG91YmxlIGQ0MzYg PSBmMSAoKTsKKysgIGRvdWJsZSBkNDM3ID0gZjEgKCk7CisrICBkb3VibGUgZDQzOCA9IGYxICgp OworKyAgZG91YmxlIGQ0MzkgPSBmMSAoKTsKKysgIGRvdWJsZSBkNDQwID0gZjEgKCk7CisrICBk b3VibGUgZDQ0MSA9IGYxICgpOworKyAgZG91YmxlIGQ0NDIgPSBmMSAoKTsKKysgIGRvdWJsZSBk NDQzID0gZjEgKCk7CisrICBkb3VibGUgZDQ0NCA9IGYxICgpOworKyAgZG91YmxlIGQ0NDUgPSBm MSAoKTsKKysgIGRvdWJsZSBkNDQ2ID0gZjEgKCk7CisrICBkb3VibGUgZDQ0NyA9IGYxICgpOwor KyAgZG91YmxlIGQ0NDggPSBmMSAoKTsKKysgIGRvdWJsZSBkNDQ5ID0gZjEgKCk7CisrICBkb3Vi bGUgZDQ1MCA9IGYxICgpOworKyAgZG91YmxlIGQ0NTEgPSBmMSAoKTsKKysgIGRvdWJsZSBkNDUy ID0gZjEgKCk7CisrICBkb3VibGUgZDQ1MyA9IGYxICgpOworKyAgZG91YmxlIGQ0NTQgPSBmMSAo KTsKKysgIGRvdWJsZSBkNDU1ID0gZjEgKCk7CisrICBkb3VibGUgZDQ1NiA9IGYxICgpOworKyAg ZG91YmxlIGQ0NTcgPSBmMSAoKTsKKysgIGRvdWJsZSBkNDU4ID0gZjEgKCk7CisrICBkb3VibGUg ZDQ1OSA9IGYxICgpOworKyAgZG91YmxlIGQ0NjAgPSBmMSAoKTsKKysgIGRvdWJsZSBkNDYxID0g ZjEgKCk7CisrICBkb3VibGUgZDQ2MiA9IGYxICgpOworKyAgZG91YmxlIGQ0NjMgPSBmMSAoKTsK KysgIGRvdWJsZSBkNDY0ID0gZjEgKCk7CisrICBkb3VibGUgZDQ2NSA9IGYxICgpOworKyAgZG91 YmxlIGQ0NjYgPSBmMSAoKTsKKysgIGRvdWJsZSBkNDY3ID0gZjEgKCk7CisrICBkb3VibGUgZDQ2 OCA9IGYxICgpOworKyAgZG91YmxlIGQ0NjkgPSBmMSAoKTsKKysgIGRvdWJsZSBkNDcwID0gZjEg KCk7CisrICBkb3VibGUgZDQ3MSA9IGYxICgpOworKyAgZG91YmxlIGQ0NzIgPSBmMSAoKTsKKysg IGRvdWJsZSBkNDczID0gZjEgKCk7CisrICBkb3VibGUgZDQ3NCA9IGYxICgpOworKyAgZG91Ymxl IGQ0NzUgPSBmMSAoKTsKKysgIGRvdWJsZSBkNDc2ID0gZjEgKCk7CisrICBkb3VibGUgZDQ3NyA9 IGYxICgpOworKyAgZG91YmxlIGQ0NzggPSBmMSAoKTsKKysgIGRvdWJsZSBkNDc5ID0gZjEgKCk7 CisrICBkb3VibGUgZDQ4MCA9IGYxICgpOworKyAgZG91YmxlIGQ0ODEgPSBmMSAoKTsKKysgIGRv dWJsZSBkNDgyID0gZjEgKCk7CisrICBkb3VibGUgZDQ4MyA9IGYxICgpOworKyAgZG91YmxlIGQ0 ODQgPSBmMSAoKTsKKysgIGRvdWJsZSBkNDg1ID0gZjEgKCk7CisrICBkb3VibGUgZDQ4NiA9IGYx ICgpOworKyAgZG91YmxlIGQ0ODcgPSBmMSAoKTsKKysgIGRvdWJsZSBkNDg4ID0gZjEgKCk7Cisr ICBkb3VibGUgZDQ4OSA9IGYxICgpOworKyAgZG91YmxlIGQ0OTAgPSBmMSAoKTsKKysgIGRvdWJs ZSBkNDkxID0gZjEgKCk7CisrICBkb3VibGUgZDQ5MiA9IGYxICgpOworKyAgZG91YmxlIGQ0OTMg PSBmMSAoKTsKKysgIGRvdWJsZSBkNDk0ID0gZjEgKCk7CisrICBkb3VibGUgZDQ5NSA9IGYxICgp OworKyAgZG91YmxlIGQ0OTYgPSBmMSAoKTsKKysgIGRvdWJsZSBkNDk3ID0gZjEgKCk7CisrICBk b3VibGUgZDQ5OCA9IGYxICgpOworKyAgZG91YmxlIGQ0OTkgPSBmMSAoKTsKKysgIGRvdWJsZSBk NTAwID0gZjEgKCk7CisrICBkb3VibGUgZDUwMSA9IGYxICgpOworKyAgZG91YmxlIGQ1MDIgPSBm MSAoKTsKKysgIGRvdWJsZSBkNTAzID0gZjEgKCk7CisrICBkb3VibGUgZDUwNCA9IGYxICgpOwor KyAgZG91YmxlIGQ1MDUgPSBmMSAoKTsKKysgIGRvdWJsZSBkNTA2ID0gZjEgKCk7CisrICBkb3Vi bGUgZDUwNyA9IGYxICgpOworKyAgZG91YmxlIGQ1MDggPSBmMSAoKTsKKysgIGRvdWJsZSBkNTA5 ID0gZjEgKCk7CisrICBkb3VibGUgZDUxMCA9IGYxICgpOworKyAgZG91YmxlIGQ1MTEgPSBmMSAo KTsKKysgIGRvdWJsZSBkNTEyID0gZjEgKCk7CisrICBkb3VibGUgZDUxMyA9IGYxICgpOworKyAg ZG91YmxlIGQ1MTQgPSBmMSAoKTsKKysgIGRvdWJsZSBkNTE1ID0gZjEgKCk7CisrICBkb3VibGUg ZDUxNiA9IGYxICgpOworKyAgZG91YmxlIGQ1MTcgPSBmMSAoKTsKKysgIGRvdWJsZSBkNTE4ID0g ZjEgKCk7CisrICBkb3VibGUgZDUxOSA9IGYxICgpOworKyAgZG91YmxlIGQ1MjAgPSBmMSAoKTsK KysgIGRvdWJsZSBkNTIxID0gZjEgKCk7CisrICBkb3VibGUgZDUyMiA9IGYxICgpOworKyAgZG91 YmxlIGQ1MjMgPSBmMSAoKTsKKysgIGRvdWJsZSBkNTI0ID0gZjEgKCk7CisrICBkb3VibGUgZDUy NSA9IGYxICgpOworKyAgZG91YmxlIGQ1MjYgPSBmMSAoKTsKKysgIGRvdWJsZSBkNTI3ID0gZjEg KCk7CisrICBkb3VibGUgZDUyOCA9IGYxICgpOworKyAgZG91YmxlIGQ1MjkgPSBmMSAoKTsKKysg IGRvdWJsZSBkNTMwID0gZjEgKCk7CisrICBkb3VibGUgZDUzMSA9IGYxICgpOworKyAgZG91Ymxl IGQ1MzIgPSBmMSAoKTsKKysgIGRvdWJsZSBkNTMzID0gZjEgKCk7CisrICBkb3VibGUgZDUzNCA9 IGYxICgpOworKyAgZG91YmxlIGQ1MzUgPSBmMSAoKTsKKysgIGRvdWJsZSBkNTM2ID0gZjEgKCk7 CisrICBkb3VibGUgZDUzNyA9IGYxICgpOworKyAgZG91YmxlIGQ1MzggPSBmMSAoKTsKKysgIGRv dWJsZSBkNTM5ID0gZjEgKCk7CisrICBkb3VibGUgZDU0MCA9IGYxICgpOworKyAgZG91YmxlIGQ1 NDEgPSBmMSAoKTsKKysgIGRvdWJsZSBkNTQyID0gZjEgKCk7CisrICBkb3VibGUgZDU0MyA9IGYx ICgpOworKyAgZG91YmxlIGQ1NDQgPSBmMSAoKTsKKysgIGRvdWJsZSBkNTQ1ID0gZjEgKCk7Cisr ICBkb3VibGUgZDU0NiA9IGYxICgpOworKyAgZG91YmxlIGQ1NDcgPSBmMSAoKTsKKysgIGRvdWJs ZSBkNTQ4ID0gZjEgKCk7CisrICBkb3VibGUgZDU0OSA9IGYxICgpOworKyAgZG91YmxlIGQ1NTAg PSBmMSAoKTsKKysgIGRvdWJsZSBkNTUxID0gZjEgKCk7CisrICBkb3VibGUgZDU1MiA9IGYxICgp OworKyAgZG91YmxlIGQ1NTMgPSBmMSAoKTsKKysgIGRvdWJsZSBkNTU0ID0gZjEgKCk7CisrICBk b3VibGUgZDU1NSA9IGYxICgpOworKyAgZG91YmxlIGQ1NTYgPSBmMSAoKTsKKysgIGRvdWJsZSBk NTU3ID0gZjEgKCk7CisrICBkb3VibGUgZDU1OCA9IGYxICgpOworKyAgZG91YmxlIGQ1NTkgPSBm MSAoKTsKKysgIGRvdWJsZSBkNTYwID0gZjEgKCk7CisrICBkb3VibGUgZDU2MSA9IGYxICgpOwor KyAgZG91YmxlIGQ1NjIgPSBmMSAoKTsKKysgIGRvdWJsZSBkNTYzID0gZjEgKCk7CisrICBkb3Vi bGUgZDU2NCA9IGYxICgpOworKyAgZG91YmxlIGQ1NjUgPSBmMSAoKTsKKysgIGRvdWJsZSBkNTY2 ID0gZjEgKCk7CisrICBkb3VibGUgZDU2NyA9IGYxICgpOworKyAgZG91YmxlIGQ1NjggPSBmMSAo KTsKKysgIGRvdWJsZSBkNTY5ID0gZjEgKCk7CisrICBkb3VibGUgZDU3MCA9IGYxICgpOworKyAg ZG91YmxlIGQ1NzEgPSBmMSAoKTsKKysgIGRvdWJsZSBkNTcyID0gZjEgKCk7CisrICBkb3VibGUg ZDU3MyA9IGYxICgpOworKyAgZG91YmxlIGQ1NzQgPSBmMSAoKTsKKysgIGRvdWJsZSBkNTc1ID0g ZjEgKCk7CisrICBkb3VibGUgZDU3NiA9IGYxICgpOworKyAgZG91YmxlIGQ1NzcgPSBmMSAoKTsK KysgIGRvdWJsZSBkNTc4ID0gZjEgKCk7CisrICBkb3VibGUgZDU3OSA9IGYxICgpOworKyAgZG91 YmxlIGQ1ODAgPSBmMSAoKTsKKysgIGRvdWJsZSBkNTgxID0gZjEgKCk7CisrICBkb3VibGUgZDU4 MiA9IGYxICgpOworKyAgZG91YmxlIGQ1ODMgPSBmMSAoKTsKKysgIGRvdWJsZSBkNTg0ID0gZjEg KCk7CisrICBkb3VibGUgZDU4NSA9IGYxICgpOworKyAgZG91YmxlIGQ1ODYgPSBmMSAoKTsKKysg IGRvdWJsZSBkNTg3ID0gZjEgKCk7CisrICBkb3VibGUgZDU4OCA9IGYxICgpOworKyAgZG91Ymxl IGQ1ODkgPSBmMSAoKTsKKysgIGRvdWJsZSBkNTkwID0gZjEgKCk7CisrICBkb3VibGUgZDU5MSA9 IGYxICgpOworKyAgZG91YmxlIGQ1OTIgPSBmMSAoKTsKKysgIGRvdWJsZSBkNTkzID0gZjEgKCk7 CisrICBkb3VibGUgZDU5NCA9IGYxICgpOworKyAgZG91YmxlIGQ1OTUgPSBmMSAoKTsKKysgIGRv dWJsZSBkNTk2ID0gZjEgKCk7CisrICBkb3VibGUgZDU5NyA9IGYxICgpOworKyAgZG91YmxlIGQ1 OTggPSBmMSAoKTsKKysgIGRvdWJsZSBkNTk5ID0gZjEgKCk7CisrICBkb3VibGUgZDYwMCA9IGYx ICgpOworKyAgZG91YmxlIGQ2MDEgPSBmMSAoKTsKKysgIGRvdWJsZSBkNjAyID0gZjEgKCk7Cisr ICBkb3VibGUgZDYwMyA9IGYxICgpOworKyAgZG91YmxlIGQ2MDQgPSBmMSAoKTsKKysgIGRvdWJs ZSBkNjA1ID0gZjEgKCk7CisrICBkb3VibGUgZDYwNiA9IGYxICgpOworKyAgZG91YmxlIGQ2MDcg PSBmMSAoKTsKKysgIGRvdWJsZSBkNjA4ID0gZjEgKCk7CisrICBkb3VibGUgZDYwOSA9IGYxICgp OworKyAgZG91YmxlIGQ2MTAgPSBmMSAoKTsKKysgIGRvdWJsZSBkNjExID0gZjEgKCk7CisrICBk b3VibGUgZDYxMiA9IGYxICgpOworKyAgZG91YmxlIGQ2MTMgPSBmMSAoKTsKKysgIGRvdWJsZSBk NjE0ID0gZjEgKCk7CisrICBkb3VibGUgZDYxNSA9IGYxICgpOworKyAgZG91YmxlIGQ2MTYgPSBm MSAoKTsKKysgIGRvdWJsZSBkNjE3ID0gZjEgKCk7CisrICBkb3VibGUgZDYxOCA9IGYxICgpOwor KyAgZG91YmxlIGQ2MTkgPSBmMSAoKTsKKysgIGRvdWJsZSBkNjIwID0gZjEgKCk7CisrICBkb3Vi bGUgZDYyMSA9IGYxICgpOworKyAgZG91YmxlIGQ2MjIgPSBmMSAoKTsKKysgIGRvdWJsZSBkNjIz ID0gZjEgKCk7CisrICBkb3VibGUgZDYyNCA9IGYxICgpOworKyAgZG91YmxlIGQ2MjUgPSBmMSAo KTsKKysgIGRvdWJsZSBkNjI2ID0gZjEgKCk7CisrICBkb3VibGUgZDYyNyA9IGYxICgpOworKyAg ZG91YmxlIGQ2MjggPSBmMSAoKTsKKysgIGRvdWJsZSBkNjI5ID0gZjEgKCk7CisrICBkb3VibGUg ZDYzMCA9IGYxICgpOworKyAgZG91YmxlIGQ2MzEgPSBmMSAoKTsKKysgIGRvdWJsZSBkNjMyID0g ZjEgKCk7CisrICBkb3VibGUgZDYzMyA9IGYxICgpOworKyAgZG91YmxlIGQ2MzQgPSBmMSAoKTsK KysgIGRvdWJsZSBkNjM1ID0gZjEgKCk7CisrICBkb3VibGUgZDYzNiA9IGYxICgpOworKyAgZG91 YmxlIGQ2MzcgPSBmMSAoKTsKKysgIGRvdWJsZSBkNjM4ID0gZjEgKCk7CisrICBkb3VibGUgZDYz OSA9IGYxICgpOworKyAgZG91YmxlIGQ2NDAgPSBmMSAoKTsKKysgIGRvdWJsZSBkNjQxID0gZjEg KCk7CisrICBkb3VibGUgZDY0MiA9IGYxICgpOworKyAgZG91YmxlIGQ2NDMgPSBmMSAoKTsKKysg IGRvdWJsZSBkNjQ0ID0gZjEgKCk7CisrICBkb3VibGUgZDY0NSA9IGYxICgpOworKyAgZG91Ymxl IGQ2NDYgPSBmMSAoKTsKKysgIGRvdWJsZSBkNjQ3ID0gZjEgKCk7CisrICBkb3VibGUgZDY0OCA9 IGYxICgpOworKyAgZG91YmxlIGQ2NDkgPSBmMSAoKTsKKysgIGRvdWJsZSBkNjUwID0gZjEgKCk7 CisrICBkb3VibGUgZDY1MSA9IGYxICgpOworKyAgZG91YmxlIGQ2NTIgPSBmMSAoKTsKKysgIGRv dWJsZSBkNjUzID0gZjEgKCk7CisrICBkb3VibGUgZDY1NCA9IGYxICgpOworKyAgZG91YmxlIGQ2 NTUgPSBmMSAoKTsKKysgIGRvdWJsZSBkNjU2ID0gZjEgKCk7CisrICBkb3VibGUgZDY1NyA9IGYx ICgpOworKyAgZG91YmxlIGQ2NTggPSBmMSAoKTsKKysgIGRvdWJsZSBkNjU5ID0gZjEgKCk7Cisr ICBkb3VibGUgZDY2MCA9IGYxICgpOworKyAgZG91YmxlIGQ2NjEgPSBmMSAoKTsKKysgIGRvdWJs ZSBkNjYyID0gZjEgKCk7CisrICBkb3VibGUgZDY2MyA9IGYxICgpOworKyAgZG91YmxlIGQ2NjQg PSBmMSAoKTsKKysgIGRvdWJsZSBkNjY1ID0gZjEgKCk7CisrICBkb3VibGUgZDY2NiA9IGYxICgp OworKyAgZG91YmxlIGQ2NjcgPSBmMSAoKTsKKysgIGRvdWJsZSBkNjY4ID0gZjEgKCk7CisrICBk b3VibGUgZDY2OSA9IGYxICgpOworKyAgZG91YmxlIGQ2NzAgPSBmMSAoKTsKKysgIGRvdWJsZSBk NjcxID0gZjEgKCk7CisrICBkb3VibGUgZDY3MiA9IGYxICgpOworKyAgZG91YmxlIGQ2NzMgPSBm MSAoKTsKKysgIGRvdWJsZSBkNjc0ID0gZjEgKCk7CisrICBkb3VibGUgZDY3NSA9IGYxICgpOwor KyAgZG91YmxlIGQ2NzYgPSBmMSAoKTsKKysgIGRvdWJsZSBkNjc3ID0gZjEgKCk7CisrICBkb3Vi bGUgZDY3OCA9IGYxICgpOworKyAgZG91YmxlIGQ2NzkgPSBmMSAoKTsKKysgIGRvdWJsZSBkNjgw ID0gZjEgKCk7CisrICBkb3VibGUgZDY4MSA9IGYxICgpOworKyAgZG91YmxlIGQ2ODIgPSBmMSAo KTsKKysgIGRvdWJsZSBkNjgzID0gZjEgKCk7CisrICBkb3VibGUgZDY4NCA9IGYxICgpOworKyAg ZG91YmxlIGQ2ODUgPSBmMSAoKTsKKysgIGRvdWJsZSBkNjg2ID0gZjEgKCk7CisrICBkb3VibGUg ZDY4NyA9IGYxICgpOworKyAgZG91YmxlIGQ2ODggPSBmMSAoKTsKKysgIGRvdWJsZSBkNjg5ID0g ZjEgKCk7CisrICBkb3VibGUgZDY5MCA9IGYxICgpOworKyAgZG91YmxlIGQ2OTEgPSBmMSAoKTsK KysgIGRvdWJsZSBkNjkyID0gZjEgKCk7CisrICBkb3VibGUgZDY5MyA9IGYxICgpOworKyAgZG91 YmxlIGQ2OTQgPSBmMSAoKTsKKysgIGRvdWJsZSBkNjk1ID0gZjEgKCk7CisrICBkb3VibGUgZDY5 NiA9IGYxICgpOworKyAgZG91YmxlIGQ2OTcgPSBmMSAoKTsKKysgIGRvdWJsZSBkNjk4ID0gZjEg KCk7CisrICBkb3VibGUgZDY5OSA9IGYxICgpOworKyAgZG91YmxlIGQ3MDAgPSBmMSAoKTsKKysg IGRvdWJsZSBkNzAxID0gZjEgKCk7CisrICBkb3VibGUgZDcwMiA9IGYxICgpOworKyAgZG91Ymxl IGQ3MDMgPSBmMSAoKTsKKysgIGRvdWJsZSBkNzA0ID0gZjEgKCk7CisrICBkb3VibGUgZDcwNSA9 IGYxICgpOworKyAgZG91YmxlIGQ3MDYgPSBmMSAoKTsKKysgIGRvdWJsZSBkNzA3ID0gZjEgKCk7 CisrICBkb3VibGUgZDcwOCA9IGYxICgpOworKyAgZG91YmxlIGQ3MDkgPSBmMSAoKTsKKysgIGRv dWJsZSBkNzEwID0gZjEgKCk7CisrICBkb3VibGUgZDcxMSA9IGYxICgpOworKyAgZG91YmxlIGQ3 MTIgPSBmMSAoKTsKKysgIGRvdWJsZSBkNzEzID0gZjEgKCk7CisrICBkb3VibGUgZDcxNCA9IGYx ICgpOworKyAgZG91YmxlIGQ3MTUgPSBmMSAoKTsKKysgIGRvdWJsZSBkNzE2ID0gZjEgKCk7Cisr ICBkb3VibGUgZDcxNyA9IGYxICgpOworKyAgZG91YmxlIGQ3MTggPSBmMSAoKTsKKysgIGRvdWJs ZSBkNzE5ID0gZjEgKCk7CisrICBkb3VibGUgZDcyMCA9IGYxICgpOworKyAgZG91YmxlIGQ3MjEg PSBmMSAoKTsKKysgIGRvdWJsZSBkNzIyID0gZjEgKCk7CisrICBkb3VibGUgZDcyMyA9IGYxICgp OworKyAgZG91YmxlIGQ3MjQgPSBmMSAoKTsKKysgIGRvdWJsZSBkNzI1ID0gZjEgKCk7CisrICBk b3VibGUgZDcyNiA9IGYxICgpOworKyAgZG91YmxlIGQ3MjcgPSBmMSAoKTsKKysgIGRvdWJsZSBk NzI4ID0gZjEgKCk7CisrICBkb3VibGUgZDcyOSA9IGYxICgpOworKyAgZG91YmxlIGQ3MzAgPSBm MSAoKTsKKysgIGRvdWJsZSBkNzMxID0gZjEgKCk7CisrICBkb3VibGUgZDczMiA9IGYxICgpOwor KyAgZG91YmxlIGQ3MzMgPSBmMSAoKTsKKysgIGRvdWJsZSBkNzM0ID0gZjEgKCk7CisrICBkb3Vi bGUgZDczNSA9IGYxICgpOworKyAgZG91YmxlIGQ3MzYgPSBmMSAoKTsKKysgIGRvdWJsZSBkNzM3 ID0gZjEgKCk7CisrICBkb3VibGUgZDczOCA9IGYxICgpOworKyAgZG91YmxlIGQ3MzkgPSBmMSAo KTsKKysgIGRvdWJsZSBkNzQwID0gZjEgKCk7CisrICBkb3VibGUgZDc0MSA9IGYxICgpOworKyAg ZG91YmxlIGQ3NDIgPSBmMSAoKTsKKysgIGRvdWJsZSBkNzQzID0gZjEgKCk7CisrICBkb3VibGUg ZDc0NCA9IGYxICgpOworKyAgZG91YmxlIGQ3NDUgPSBmMSAoKTsKKysgIGRvdWJsZSBkNzQ2ID0g ZjEgKCk7CisrICBkb3VibGUgZDc0NyA9IGYxICgpOworKyAgZG91YmxlIGQ3NDggPSBmMSAoKTsK KysgIGRvdWJsZSBkNzQ5ID0gZjEgKCk7CisrICBkb3VibGUgZDc1MCA9IGYxICgpOworKyAgZG91 YmxlIGQ3NTEgPSBmMSAoKTsKKysgIGRvdWJsZSBkNzUyID0gZjEgKCk7CisrICBkb3VibGUgZDc1 MyA9IGYxICgpOworKyAgZG91YmxlIGQ3NTQgPSBmMSAoKTsKKysgIGRvdWJsZSBkNzU1ID0gZjEg KCk7CisrICBkb3VibGUgZDc1NiA9IGYxICgpOworKyAgZG91YmxlIGQ3NTcgPSBmMSAoKTsKKysg IGRvdWJsZSBkNzU4ID0gZjEgKCk7CisrICBkb3VibGUgZDc1OSA9IGYxICgpOworKyAgZG91Ymxl IGQ3NjAgPSBmMSAoKTsKKysgIGRvdWJsZSBkNzYxID0gZjEgKCk7CisrICBkb3VibGUgZDc2MiA9 IGYxICgpOworKyAgZG91YmxlIGQ3NjMgPSBmMSAoKTsKKysgIGRvdWJsZSBkNzY0ID0gZjEgKCk7 CisrICBkb3VibGUgZDc2NSA9IGYxICgpOworKyAgZG91YmxlIGQ3NjYgPSBmMSAoKTsKKysgIGRv dWJsZSBkNzY3ID0gZjEgKCk7CisrICBkb3VibGUgZDc2OCA9IGYxICgpOworKyAgZG91YmxlIGQ3 NjkgPSBmMSAoKTsKKysgIGRvdWJsZSBkNzcwID0gZjEgKCk7CisrICBkb3VibGUgZDc3MSA9IGYx ICgpOworKyAgZG91YmxlIGQ3NzIgPSBmMSAoKTsKKysgIGRvdWJsZSBkNzczID0gZjEgKCk7Cisr ICBkb3VibGUgZDc3NCA9IGYxICgpOworKyAgZG91YmxlIGQ3NzUgPSBmMSAoKTsKKysgIGRvdWJs ZSBkNzc2ID0gZjEgKCk7CisrICBkb3VibGUgZDc3NyA9IGYxICgpOworKyAgZG91YmxlIGQ3Nzgg PSBmMSAoKTsKKysgIGRvdWJsZSBkNzc5ID0gZjEgKCk7CisrICBkb3VibGUgZDc4MCA9IGYxICgp OworKyAgZG91YmxlIGQ3ODEgPSBmMSAoKTsKKysgIGRvdWJsZSBkNzgyID0gZjEgKCk7CisrICBk b3VibGUgZDc4MyA9IGYxICgpOworKyAgZG91YmxlIGQ3ODQgPSBmMSAoKTsKKysgIGRvdWJsZSBk Nzg1ID0gZjEgKCk7CisrICBkb3VibGUgZDc4NiA9IGYxICgpOworKyAgZG91YmxlIGQ3ODcgPSBm MSAoKTsKKysgIGRvdWJsZSBkNzg4ID0gZjEgKCk7CisrICBkb3VibGUgZDc4OSA9IGYxICgpOwor KyAgZG91YmxlIGQ3OTAgPSBmMSAoKTsKKysgIGRvdWJsZSBkNzkxID0gZjEgKCk7CisrICBkb3Vi bGUgZDc5MiA9IGYxICgpOworKyAgZG91YmxlIGQ3OTMgPSBmMSAoKTsKKysgIGRvdWJsZSBkNzk0 ID0gZjEgKCk7CisrICBkb3VibGUgZDc5NSA9IGYxICgpOworKyAgZG91YmxlIGQ3OTYgPSBmMSAo KTsKKysgIGRvdWJsZSBkNzk3ID0gZjEgKCk7CisrICBkb3VibGUgZDc5OCA9IGYxICgpOworKyAg ZG91YmxlIGQ3OTkgPSBmMSAoKTsKKysgIGRvdWJsZSBkODAwID0gZjEgKCk7CisrICBkb3VibGUg ZDgwMSA9IGYxICgpOworKyAgZG91YmxlIGQ4MDIgPSBmMSAoKTsKKysgIGRvdWJsZSBkODAzID0g ZjEgKCk7CisrICBkb3VibGUgZDgwNCA9IGYxICgpOworKyAgZG91YmxlIGQ4MDUgPSBmMSAoKTsK KysgIGRvdWJsZSBkODA2ID0gZjEgKCk7CisrICBkb3VibGUgZDgwNyA9IGYxICgpOworKyAgZG91 YmxlIGQ4MDggPSBmMSAoKTsKKysgIGRvdWJsZSBkODA5ID0gZjEgKCk7CisrICBkb3VibGUgZDgx MCA9IGYxICgpOworKyAgZG91YmxlIGQ4MTEgPSBmMSAoKTsKKysgIGRvdWJsZSBkODEyID0gZjEg KCk7CisrICBkb3VibGUgZDgxMyA9IGYxICgpOworKyAgZG91YmxlIGQ4MTQgPSBmMSAoKTsKKysg IGRvdWJsZSBkODE1ID0gZjEgKCk7CisrICBkb3VibGUgZDgxNiA9IGYxICgpOworKyAgZG91Ymxl IGQ4MTcgPSBmMSAoKTsKKysgIGRvdWJsZSBkODE4ID0gZjEgKCk7CisrICBkb3VibGUgZDgxOSA9 IGYxICgpOworKyAgZG91YmxlIGQ4MjAgPSBmMSAoKTsKKysgIGRvdWJsZSBkODIxID0gZjEgKCk7 CisrICBkb3VibGUgZDgyMiA9IGYxICgpOworKyAgZG91YmxlIGQ4MjMgPSBmMSAoKTsKKysgIGRv dWJsZSBkODI0ID0gZjEgKCk7CisrICBkb3VibGUgZDgyNSA9IGYxICgpOworKyAgZG91YmxlIGQ4 MjYgPSBmMSAoKTsKKysgIGRvdWJsZSBkODI3ID0gZjEgKCk7CisrICBkb3VibGUgZDgyOCA9IGYx ICgpOworKyAgZG91YmxlIGQ4MjkgPSBmMSAoKTsKKysgIGRvdWJsZSBkODMwID0gZjEgKCk7Cisr ICBkb3VibGUgZDgzMSA9IGYxICgpOworKyAgZG91YmxlIGQ4MzIgPSBmMSAoKTsKKysgIGRvdWJs ZSBkODMzID0gZjEgKCk7CisrICBkb3VibGUgZDgzNCA9IGYxICgpOworKyAgZG91YmxlIGQ4MzUg PSBmMSAoKTsKKysgIGRvdWJsZSBkODM2ID0gZjEgKCk7CisrICBkb3VibGUgZDgzNyA9IGYxICgp OworKyAgZG91YmxlIGQ4MzggPSBmMSAoKTsKKysgIGRvdWJsZSBkODM5ID0gZjEgKCk7CisrICBk b3VibGUgZDg0MCA9IGYxICgpOworKyAgZG91YmxlIGQ4NDEgPSBmMSAoKTsKKysgIGRvdWJsZSBk ODQyID0gZjEgKCk7CisrICBkb3VibGUgZDg0MyA9IGYxICgpOworKyAgZG91YmxlIGQ4NDQgPSBm MSAoKTsKKysgIGRvdWJsZSBkODQ1ID0gZjEgKCk7CisrICBkb3VibGUgZDg0NiA9IGYxICgpOwor KyAgZG91YmxlIGQ4NDcgPSBmMSAoKTsKKysgIGRvdWJsZSBkODQ4ID0gZjEgKCk7CisrICBkb3Vi bGUgZDg0OSA9IGYxICgpOworKyAgZG91YmxlIGQ4NTAgPSBmMSAoKTsKKysgIGRvdWJsZSBkODUx ID0gZjEgKCk7CisrICBkb3VibGUgZDg1MiA9IGYxICgpOworKyAgZG91YmxlIGQ4NTMgPSBmMSAo KTsKKysgIGRvdWJsZSBkODU0ID0gZjEgKCk7CisrICBkb3VibGUgZDg1NSA9IGYxICgpOworKyAg ZG91YmxlIGQ4NTYgPSBmMSAoKTsKKysgIGRvdWJsZSBkODU3ID0gZjEgKCk7CisrICBkb3VibGUg ZDg1OCA9IGYxICgpOworKyAgZG91YmxlIGQ4NTkgPSBmMSAoKTsKKysgIGRvdWJsZSBkODYwID0g ZjEgKCk7CisrICBkb3VibGUgZDg2MSA9IGYxICgpOworKyAgZG91YmxlIGQ4NjIgPSBmMSAoKTsK KysgIGRvdWJsZSBkODYzID0gZjEgKCk7CisrICBkb3VibGUgZDg2NCA9IGYxICgpOworKyAgZG91 YmxlIGQ4NjUgPSBmMSAoKTsKKysgIGRvdWJsZSBkODY2ID0gZjEgKCk7CisrICBkb3VibGUgZDg2 NyA9IGYxICgpOworKyAgZG91YmxlIGQ4NjggPSBmMSAoKTsKKysgIGRvdWJsZSBkODY5ID0gZjEg KCk7CisrICBkb3VibGUgZDg3MCA9IGYxICgpOworKyAgZG91YmxlIGQ4NzEgPSBmMSAoKTsKKysg IGRvdWJsZSBkODcyID0gZjEgKCk7CisrICBkb3VibGUgZDg3MyA9IGYxICgpOworKyAgZG91Ymxl IGQ4NzQgPSBmMSAoKTsKKysgIGRvdWJsZSBkODc1ID0gZjEgKCk7CisrICBkb3VibGUgZDg3NiA9 IGYxICgpOworKyAgZG91YmxlIGQ4NzcgPSBmMSAoKTsKKysgIGRvdWJsZSBkODc4ID0gZjEgKCk7 CisrICBkb3VibGUgZDg3OSA9IGYxICgpOworKyAgZG91YmxlIGQ4ODAgPSBmMSAoKTsKKysgIGRv dWJsZSBkODgxID0gZjEgKCk7CisrICBkb3VibGUgZDg4MiA9IGYxICgpOworKyAgZG91YmxlIGQ4 ODMgPSBmMSAoKTsKKysgIGRvdWJsZSBkODg0ID0gZjEgKCk7CisrICBkb3VibGUgZDg4NSA9IGYx ICgpOworKyAgZG91YmxlIGQ4ODYgPSBmMSAoKTsKKysgIGRvdWJsZSBkODg3ID0gZjEgKCk7Cisr ICBkb3VibGUgZDg4OCA9IGYxICgpOworKyAgZG91YmxlIGQ4ODkgPSBmMSAoKTsKKysgIGRvdWJs ZSBkODkwID0gZjEgKCk7CisrICBkb3VibGUgZDg5MSA9IGYxICgpOworKyAgZG91YmxlIGQ4OTIg PSBmMSAoKTsKKysgIGRvdWJsZSBkODkzID0gZjEgKCk7CisrICBkb3VibGUgZDg5NCA9IGYxICgp OworKyAgZG91YmxlIGQ4OTUgPSBmMSAoKTsKKysgIGRvdWJsZSBkODk2ID0gZjEgKCk7CisrICBk b3VibGUgZDg5NyA9IGYxICgpOworKyAgZG91YmxlIGQ4OTggPSBmMSAoKTsKKysgIGRvdWJsZSBk ODk5ID0gZjEgKCk7CisrICBkb3VibGUgZDkwMCA9IGYxICgpOworKyAgZG91YmxlIGQ5MDEgPSBm MSAoKTsKKysgIGRvdWJsZSBkOTAyID0gZjEgKCk7CisrICBkb3VibGUgZDkwMyA9IGYxICgpOwor KyAgZG91YmxlIGQ5MDQgPSBmMSAoKTsKKysgIGRvdWJsZSBkOTA1ID0gZjEgKCk7CisrICBkb3Vi bGUgZDkwNiA9IGYxICgpOworKyAgZG91YmxlIGQ5MDcgPSBmMSAoKTsKKysgIGRvdWJsZSBkOTA4 ID0gZjEgKCk7CisrICBkb3VibGUgZDkwOSA9IGYxICgpOworKyAgZG91YmxlIGQ5MTAgPSBmMSAo KTsKKysgIGRvdWJsZSBkOTExID0gZjEgKCk7CisrICBkb3VibGUgZDkxMiA9IGYxICgpOworKyAg ZG91YmxlIGQ5MTMgPSBmMSAoKTsKKysgIGRvdWJsZSBkOTE0ID0gZjEgKCk7CisrICBkb3VibGUg ZDkxNSA9IGYxICgpOworKyAgZG91YmxlIGQ5MTYgPSBmMSAoKTsKKysgIGRvdWJsZSBkOTE3ID0g ZjEgKCk7CisrICBkb3VibGUgZDkxOCA9IGYxICgpOworKyAgZG91YmxlIGQ5MTkgPSBmMSAoKTsK KysgIGRvdWJsZSBkOTIwID0gZjEgKCk7CisrICBkb3VibGUgZDkyMSA9IGYxICgpOworKyAgZG91 YmxlIGQ5MjIgPSBmMSAoKTsKKysgIGRvdWJsZSBkOTIzID0gZjEgKCk7CisrICBkb3VibGUgZDky NCA9IGYxICgpOworKyAgZG91YmxlIGQ5MjUgPSBmMSAoKTsKKysgIGRvdWJsZSBkOTI2ID0gZjEg KCk7CisrICBkb3VibGUgZDkyNyA9IGYxICgpOworKyAgZG91YmxlIGQ5MjggPSBmMSAoKTsKKysg IGRvdWJsZSBkOTI5ID0gZjEgKCk7CisrICBkb3VibGUgZDkzMCA9IGYxICgpOworKyAgZG91Ymxl IGQ5MzEgPSBmMSAoKTsKKysgIGRvdWJsZSBkOTMyID0gZjEgKCk7CisrICBkb3VibGUgZDkzMyA9 IGYxICgpOworKyAgZG91YmxlIGQ5MzQgPSBmMSAoKTsKKysgIGRvdWJsZSBkOTM1ID0gZjEgKCk7 CisrICBkb3VibGUgZDkzNiA9IGYxICgpOworKyAgZG91YmxlIGQ5MzcgPSBmMSAoKTsKKysgIGRv dWJsZSBkOTM4ID0gZjEgKCk7CisrICBkb3VibGUgZDkzOSA9IGYxICgpOworKyAgZG91YmxlIGQ5 NDAgPSBmMSAoKTsKKysgIGRvdWJsZSBkOTQxID0gZjEgKCk7CisrICBkb3VibGUgZDk0MiA9IGYx ICgpOworKyAgZG91YmxlIGQ5NDMgPSBmMSAoKTsKKysgIGRvdWJsZSBkOTQ0ID0gZjEgKCk7Cisr ICBkb3VibGUgZDk0NSA9IGYxICgpOworKyAgZG91YmxlIGQ5NDYgPSBmMSAoKTsKKysgIGRvdWJs ZSBkOTQ3ID0gZjEgKCk7CisrICBkb3VibGUgZDk0OCA9IGYxICgpOworKyAgZG91YmxlIGQ5NDkg PSBmMSAoKTsKKysgIGRvdWJsZSBkOTUwID0gZjEgKCk7CisrICBkb3VibGUgZDk1MSA9IGYxICgp OworKyAgZG91YmxlIGQ5NTIgPSBmMSAoKTsKKysgIGRvdWJsZSBkOTUzID0gZjEgKCk7CisrICBk b3VibGUgZDk1NCA9IGYxICgpOworKyAgZG91YmxlIGQ5NTUgPSBmMSAoKTsKKysgIGRvdWJsZSBk OTU2ID0gZjEgKCk7CisrICBkb3VibGUgZDk1NyA9IGYxICgpOworKyAgZG91YmxlIGQ5NTggPSBm MSAoKTsKKysgIGRvdWJsZSBkOTU5ID0gZjEgKCk7CisrICBkb3VibGUgZDk2MCA9IGYxICgpOwor KyAgZG91YmxlIGQ5NjEgPSBmMSAoKTsKKysgIGRvdWJsZSBkOTYyID0gZjEgKCk7CisrICBkb3Vi bGUgZDk2MyA9IGYxICgpOworKyAgZG91YmxlIGQ5NjQgPSBmMSAoKTsKKysgIGRvdWJsZSBkOTY1 ID0gZjEgKCk7CisrICBkb3VibGUgZDk2NiA9IGYxICgpOworKyAgZG91YmxlIGQ5NjcgPSBmMSAo KTsKKysgIGRvdWJsZSBkOTY4ID0gZjEgKCk7CisrICBkb3VibGUgZDk2OSA9IGYxICgpOworKyAg ZG91YmxlIGQ5NzAgPSBmMSAoKTsKKysgIGRvdWJsZSBkOTcxID0gZjEgKCk7CisrICBkb3VibGUg ZDk3MiA9IGYxICgpOworKyAgZG91YmxlIGQ5NzMgPSBmMSAoKTsKKysgIGRvdWJsZSBkOTc0ID0g ZjEgKCk7CisrICBkb3VibGUgZDk3NSA9IGYxICgpOworKyAgZG91YmxlIGQ5NzYgPSBmMSAoKTsK KysgIGRvdWJsZSBkOTc3ID0gZjEgKCk7CisrICBkb3VibGUgZDk3OCA9IGYxICgpOworKyAgZG91 YmxlIGQ5NzkgPSBmMSAoKTsKKysgIGRvdWJsZSBkOTgwID0gZjEgKCk7CisrICBkb3VibGUgZDk4 MSA9IGYxICgpOworKyAgZG91YmxlIGQ5ODIgPSBmMSAoKTsKKysgIGRvdWJsZSBkOTgzID0gZjEg KCk7CisrICBkb3VibGUgZDk4NCA9IGYxICgpOworKyAgZG91YmxlIGQ5ODUgPSBmMSAoKTsKKysg IGRvdWJsZSBkOTg2ID0gZjEgKCk7CisrICBkb3VibGUgZDk4NyA9IGYxICgpOworKyAgZG91Ymxl IGQ5ODggPSBmMSAoKTsKKysgIGRvdWJsZSBkOTg5ID0gZjEgKCk7CisrICBkb3VibGUgZDk5MCA9 IGYxICgpOworKyAgZG91YmxlIGQ5OTEgPSBmMSAoKTsKKysgIGRvdWJsZSBkOTkyID0gZjEgKCk7 CisrICBkb3VibGUgZDk5MyA9IGYxICgpOworKyAgZG91YmxlIGQ5OTQgPSBmMSAoKTsKKysgIGRv dWJsZSBkOTk1ID0gZjEgKCk7CisrICBkb3VibGUgZDk5NiA9IGYxICgpOworKyAgZG91YmxlIGQ5 OTcgPSBmMSAoKTsKKysgIGRvdWJsZSBkOTk4ID0gZjEgKCk7CisrICBkb3VibGUgZDk5OSA9IGYx ICgpOworKworKyAgZG91YmxlIHggPSAwOworKyAgeCA9IGYyICh4LCBkMDAwKTsKKysgIHggPSBm MiAoeCwgZDAwMSk7CisrICB4ID0gZjIgKHgsIGQwMDIpOworKyAgeCA9IGYyICh4LCBkMDAzKTsK KysgIHggPSBmMiAoeCwgZDAwNCk7CisrICB4ID0gZjIgKHgsIGQwMDUpOworKyAgeCA9IGYyICh4 LCBkMDA2KTsKKysgIHggPSBmMiAoeCwgZDAwNyk7CisrICB4ID0gZjIgKHgsIGQwMDgpOworKyAg eCA9IGYyICh4LCBkMDA5KTsKKysgIHggPSBmMiAoeCwgZDAxMCk7CisrICB4ID0gZjIgKHgsIGQw MTEpOworKyAgeCA9IGYyICh4LCBkMDEyKTsKKysgIHggPSBmMiAoeCwgZDAxMyk7CisrICB4ID0g ZjIgKHgsIGQwMTQpOworKyAgeCA9IGYyICh4LCBkMDE1KTsKKysgIHggPSBmMiAoeCwgZDAxNik7 CisrICB4ID0gZjIgKHgsIGQwMTcpOworKyAgeCA9IGYyICh4LCBkMDE4KTsKKysgIHggPSBmMiAo eCwgZDAxOSk7CisrICB4ID0gZjIgKHgsIGQwMjApOworKyAgeCA9IGYyICh4LCBkMDIxKTsKKysg IHggPSBmMiAoeCwgZDAyMik7CisrICB4ID0gZjIgKHgsIGQwMjMpOworKyAgeCA9IGYyICh4LCBk MDI0KTsKKysgIHggPSBmMiAoeCwgZDAyNSk7CisrICB4ID0gZjIgKHgsIGQwMjYpOworKyAgeCA9 IGYyICh4LCBkMDI3KTsKKysgIHggPSBmMiAoeCwgZDAyOCk7CisrICB4ID0gZjIgKHgsIGQwMjkp OworKyAgeCA9IGYyICh4LCBkMDMwKTsKKysgIHggPSBmMiAoeCwgZDAzMSk7CisrICB4ID0gZjIg KHgsIGQwMzIpOworKyAgeCA9IGYyICh4LCBkMDMzKTsKKysgIHggPSBmMiAoeCwgZDAzNCk7Cisr ICB4ID0gZjIgKHgsIGQwMzUpOworKyAgeCA9IGYyICh4LCBkMDM2KTsKKysgIHggPSBmMiAoeCwg ZDAzNyk7CisrICB4ID0gZjIgKHgsIGQwMzgpOworKyAgeCA9IGYyICh4LCBkMDM5KTsKKysgIHgg PSBmMiAoeCwgZDA0MCk7CisrICB4ID0gZjIgKHgsIGQwNDEpOworKyAgeCA9IGYyICh4LCBkMDQy KTsKKysgIHggPSBmMiAoeCwgZDA0Myk7CisrICB4ID0gZjIgKHgsIGQwNDQpOworKyAgeCA9IGYy ICh4LCBkMDQ1KTsKKysgIHggPSBmMiAoeCwgZDA0Nik7CisrICB4ID0gZjIgKHgsIGQwNDcpOwor KyAgeCA9IGYyICh4LCBkMDQ4KTsKKysgIHggPSBmMiAoeCwgZDA0OSk7CisrICB4ID0gZjIgKHgs IGQwNTApOworKyAgeCA9IGYyICh4LCBkMDUxKTsKKysgIHggPSBmMiAoeCwgZDA1Mik7CisrICB4 ID0gZjIgKHgsIGQwNTMpOworKyAgeCA9IGYyICh4LCBkMDU0KTsKKysgIHggPSBmMiAoeCwgZDA1 NSk7CisrICB4ID0gZjIgKHgsIGQwNTYpOworKyAgeCA9IGYyICh4LCBkMDU3KTsKKysgIHggPSBm MiAoeCwgZDA1OCk7CisrICB4ID0gZjIgKHgsIGQwNTkpOworKyAgeCA9IGYyICh4LCBkMDYwKTsK KysgIHggPSBmMiAoeCwgZDA2MSk7CisrICB4ID0gZjIgKHgsIGQwNjIpOworKyAgeCA9IGYyICh4 LCBkMDYzKTsKKysgIHggPSBmMiAoeCwgZDA2NCk7CisrICB4ID0gZjIgKHgsIGQwNjUpOworKyAg eCA9IGYyICh4LCBkMDY2KTsKKysgIHggPSBmMiAoeCwgZDA2Nyk7CisrICB4ID0gZjIgKHgsIGQw NjgpOworKyAgeCA9IGYyICh4LCBkMDY5KTsKKysgIHggPSBmMiAoeCwgZDA3MCk7CisrICB4ID0g ZjIgKHgsIGQwNzEpOworKyAgeCA9IGYyICh4LCBkMDcyKTsKKysgIHggPSBmMiAoeCwgZDA3Myk7 CisrICB4ID0gZjIgKHgsIGQwNzQpOworKyAgeCA9IGYyICh4LCBkMDc1KTsKKysgIHggPSBmMiAo eCwgZDA3Nik7CisrICB4ID0gZjIgKHgsIGQwNzcpOworKyAgeCA9IGYyICh4LCBkMDc4KTsKKysg IHggPSBmMiAoeCwgZDA3OSk7CisrICB4ID0gZjIgKHgsIGQwODApOworKyAgeCA9IGYyICh4LCBk MDgxKTsKKysgIHggPSBmMiAoeCwgZDA4Mik7CisrICB4ID0gZjIgKHgsIGQwODMpOworKyAgeCA9 IGYyICh4LCBkMDg0KTsKKysgIHggPSBmMiAoeCwgZDA4NSk7CisrICB4ID0gZjIgKHgsIGQwODYp OworKyAgeCA9IGYyICh4LCBkMDg3KTsKKysgIHggPSBmMiAoeCwgZDA4OCk7CisrICB4ID0gZjIg KHgsIGQwODkpOworKyAgeCA9IGYyICh4LCBkMDkwKTsKKysgIHggPSBmMiAoeCwgZDA5MSk7Cisr ICB4ID0gZjIgKHgsIGQwOTIpOworKyAgeCA9IGYyICh4LCBkMDkzKTsKKysgIHggPSBmMiAoeCwg ZDA5NCk7CisrICB4ID0gZjIgKHgsIGQwOTUpOworKyAgeCA9IGYyICh4LCBkMDk2KTsKKysgIHgg PSBmMiAoeCwgZDA5Nyk7CisrICB4ID0gZjIgKHgsIGQwOTgpOworKyAgeCA9IGYyICh4LCBkMDk5 KTsKKysgIHggPSBmMiAoeCwgZDEwMCk7CisrICB4ID0gZjIgKHgsIGQxMDEpOworKyAgeCA9IGYy ICh4LCBkMTAyKTsKKysgIHggPSBmMiAoeCwgZDEwMyk7CisrICB4ID0gZjIgKHgsIGQxMDQpOwor KyAgeCA9IGYyICh4LCBkMTA1KTsKKysgIHggPSBmMiAoeCwgZDEwNik7CisrICB4ID0gZjIgKHgs IGQxMDcpOworKyAgeCA9IGYyICh4LCBkMTA4KTsKKysgIHggPSBmMiAoeCwgZDEwOSk7CisrICB4 ID0gZjIgKHgsIGQxMTApOworKyAgeCA9IGYyICh4LCBkMTExKTsKKysgIHggPSBmMiAoeCwgZDEx Mik7CisrICB4ID0gZjIgKHgsIGQxMTMpOworKyAgeCA9IGYyICh4LCBkMTE0KTsKKysgIHggPSBm MiAoeCwgZDExNSk7CisrICB4ID0gZjIgKHgsIGQxMTYpOworKyAgeCA9IGYyICh4LCBkMTE3KTsK KysgIHggPSBmMiAoeCwgZDExOCk7CisrICB4ID0gZjIgKHgsIGQxMTkpOworKyAgeCA9IGYyICh4 LCBkMTIwKTsKKysgIHggPSBmMiAoeCwgZDEyMSk7CisrICB4ID0gZjIgKHgsIGQxMjIpOworKyAg eCA9IGYyICh4LCBkMTIzKTsKKysgIHggPSBmMiAoeCwgZDEyNCk7CisrICB4ID0gZjIgKHgsIGQx MjUpOworKyAgeCA9IGYyICh4LCBkMTI2KTsKKysgIHggPSBmMiAoeCwgZDEyNyk7CisrICB4ID0g ZjIgKHgsIGQxMjgpOworKyAgeCA9IGYyICh4LCBkMTI5KTsKKysgIHggPSBmMiAoeCwgZDEzMCk7 CisrICB4ID0gZjIgKHgsIGQxMzEpOworKyAgeCA9IGYyICh4LCBkMTMyKTsKKysgIHggPSBmMiAo eCwgZDEzMyk7CisrICB4ID0gZjIgKHgsIGQxMzQpOworKyAgeCA9IGYyICh4LCBkMTM1KTsKKysg IHggPSBmMiAoeCwgZDEzNik7CisrICB4ID0gZjIgKHgsIGQxMzcpOworKyAgeCA9IGYyICh4LCBk MTM4KTsKKysgIHggPSBmMiAoeCwgZDEzOSk7CisrICB4ID0gZjIgKHgsIGQxNDApOworKyAgeCA9 IGYyICh4LCBkMTQxKTsKKysgIHggPSBmMiAoeCwgZDE0Mik7CisrICB4ID0gZjIgKHgsIGQxNDMp OworKyAgeCA9IGYyICh4LCBkMTQ0KTsKKysgIHggPSBmMiAoeCwgZDE0NSk7CisrICB4ID0gZjIg KHgsIGQxNDYpOworKyAgeCA9IGYyICh4LCBkMTQ3KTsKKysgIHggPSBmMiAoeCwgZDE0OCk7Cisr ICB4ID0gZjIgKHgsIGQxNDkpOworKyAgeCA9IGYyICh4LCBkMTUwKTsKKysgIHggPSBmMiAoeCwg ZDE1MSk7CisrICB4ID0gZjIgKHgsIGQxNTIpOworKyAgeCA9IGYyICh4LCBkMTUzKTsKKysgIHgg PSBmMiAoeCwgZDE1NCk7CisrICB4ID0gZjIgKHgsIGQxNTUpOworKyAgeCA9IGYyICh4LCBkMTU2 KTsKKysgIHggPSBmMiAoeCwgZDE1Nyk7CisrICB4ID0gZjIgKHgsIGQxNTgpOworKyAgeCA9IGYy ICh4LCBkMTU5KTsKKysgIHggPSBmMiAoeCwgZDE2MCk7CisrICB4ID0gZjIgKHgsIGQxNjEpOwor KyAgeCA9IGYyICh4LCBkMTYyKTsKKysgIHggPSBmMiAoeCwgZDE2Myk7CisrICB4ID0gZjIgKHgs IGQxNjQpOworKyAgeCA9IGYyICh4LCBkMTY1KTsKKysgIHggPSBmMiAoeCwgZDE2Nik7CisrICB4 ID0gZjIgKHgsIGQxNjcpOworKyAgeCA9IGYyICh4LCBkMTY4KTsKKysgIHggPSBmMiAoeCwgZDE2 OSk7CisrICB4ID0gZjIgKHgsIGQxNzApOworKyAgeCA9IGYyICh4LCBkMTcxKTsKKysgIHggPSBm MiAoeCwgZDE3Mik7CisrICB4ID0gZjIgKHgsIGQxNzMpOworKyAgeCA9IGYyICh4LCBkMTc0KTsK KysgIHggPSBmMiAoeCwgZDE3NSk7CisrICB4ID0gZjIgKHgsIGQxNzYpOworKyAgeCA9IGYyICh4 LCBkMTc3KTsKKysgIHggPSBmMiAoeCwgZDE3OCk7CisrICB4ID0gZjIgKHgsIGQxNzkpOworKyAg eCA9IGYyICh4LCBkMTgwKTsKKysgIHggPSBmMiAoeCwgZDE4MSk7CisrICB4ID0gZjIgKHgsIGQx ODIpOworKyAgeCA9IGYyICh4LCBkMTgzKTsKKysgIHggPSBmMiAoeCwgZDE4NCk7CisrICB4ID0g ZjIgKHgsIGQxODUpOworKyAgeCA9IGYyICh4LCBkMTg2KTsKKysgIHggPSBmMiAoeCwgZDE4Nyk7 CisrICB4ID0gZjIgKHgsIGQxODgpOworKyAgeCA9IGYyICh4LCBkMTg5KTsKKysgIHggPSBmMiAo eCwgZDE5MCk7CisrICB4ID0gZjIgKHgsIGQxOTEpOworKyAgeCA9IGYyICh4LCBkMTkyKTsKKysg IHggPSBmMiAoeCwgZDE5Myk7CisrICB4ID0gZjIgKHgsIGQxOTQpOworKyAgeCA9IGYyICh4LCBk MTk1KTsKKysgIHggPSBmMiAoeCwgZDE5Nik7CisrICB4ID0gZjIgKHgsIGQxOTcpOworKyAgeCA9 IGYyICh4LCBkMTk4KTsKKysgIHggPSBmMiAoeCwgZDE5OSk7CisrICB4ID0gZjIgKHgsIGQyMDAp OworKyAgeCA9IGYyICh4LCBkMjAxKTsKKysgIHggPSBmMiAoeCwgZDIwMik7CisrICB4ID0gZjIg KHgsIGQyMDMpOworKyAgeCA9IGYyICh4LCBkMjA0KTsKKysgIHggPSBmMiAoeCwgZDIwNSk7Cisr ICB4ID0gZjIgKHgsIGQyMDYpOworKyAgeCA9IGYyICh4LCBkMjA3KTsKKysgIHggPSBmMiAoeCwg ZDIwOCk7CisrICB4ID0gZjIgKHgsIGQyMDkpOworKyAgeCA9IGYyICh4LCBkMjEwKTsKKysgIHgg PSBmMiAoeCwgZDIxMSk7CisrICB4ID0gZjIgKHgsIGQyMTIpOworKyAgeCA9IGYyICh4LCBkMjEz KTsKKysgIHggPSBmMiAoeCwgZDIxNCk7CisrICB4ID0gZjIgKHgsIGQyMTUpOworKyAgeCA9IGYy ICh4LCBkMjE2KTsKKysgIHggPSBmMiAoeCwgZDIxNyk7CisrICB4ID0gZjIgKHgsIGQyMTgpOwor KyAgeCA9IGYyICh4LCBkMjE5KTsKKysgIHggPSBmMiAoeCwgZDIyMCk7CisrICB4ID0gZjIgKHgs IGQyMjEpOworKyAgeCA9IGYyICh4LCBkMjIyKTsKKysgIHggPSBmMiAoeCwgZDIyMyk7CisrICB4 ID0gZjIgKHgsIGQyMjQpOworKyAgeCA9IGYyICh4LCBkMjI1KTsKKysgIHggPSBmMiAoeCwgZDIy Nik7CisrICB4ID0gZjIgKHgsIGQyMjcpOworKyAgeCA9IGYyICh4LCBkMjI4KTsKKysgIHggPSBm MiAoeCwgZDIyOSk7CisrICB4ID0gZjIgKHgsIGQyMzApOworKyAgeCA9IGYyICh4LCBkMjMxKTsK KysgIHggPSBmMiAoeCwgZDIzMik7CisrICB4ID0gZjIgKHgsIGQyMzMpOworKyAgeCA9IGYyICh4 LCBkMjM0KTsKKysgIHggPSBmMiAoeCwgZDIzNSk7CisrICB4ID0gZjIgKHgsIGQyMzYpOworKyAg eCA9IGYyICh4LCBkMjM3KTsKKysgIHggPSBmMiAoeCwgZDIzOCk7CisrICB4ID0gZjIgKHgsIGQy MzkpOworKyAgeCA9IGYyICh4LCBkMjQwKTsKKysgIHggPSBmMiAoeCwgZDI0MSk7CisrICB4ID0g ZjIgKHgsIGQyNDIpOworKyAgeCA9IGYyICh4LCBkMjQzKTsKKysgIHggPSBmMiAoeCwgZDI0NCk7 CisrICB4ID0gZjIgKHgsIGQyNDUpOworKyAgeCA9IGYyICh4LCBkMjQ2KTsKKysgIHggPSBmMiAo eCwgZDI0Nyk7CisrICB4ID0gZjIgKHgsIGQyNDgpOworKyAgeCA9IGYyICh4LCBkMjQ5KTsKKysg IHggPSBmMiAoeCwgZDI1MCk7CisrICB4ID0gZjIgKHgsIGQyNTEpOworKyAgeCA9IGYyICh4LCBk MjUyKTsKKysgIHggPSBmMiAoeCwgZDI1Myk7CisrICB4ID0gZjIgKHgsIGQyNTQpOworKyAgeCA9 IGYyICh4LCBkMjU1KTsKKysgIHggPSBmMiAoeCwgZDI1Nik7CisrICB4ID0gZjIgKHgsIGQyNTcp OworKyAgeCA9IGYyICh4LCBkMjU4KTsKKysgIHggPSBmMiAoeCwgZDI1OSk7CisrICB4ID0gZjIg KHgsIGQyNjApOworKyAgeCA9IGYyICh4LCBkMjYxKTsKKysgIHggPSBmMiAoeCwgZDI2Mik7Cisr ICB4ID0gZjIgKHgsIGQyNjMpOworKyAgeCA9IGYyICh4LCBkMjY0KTsKKysgIHggPSBmMiAoeCwg ZDI2NSk7CisrICB4ID0gZjIgKHgsIGQyNjYpOworKyAgeCA9IGYyICh4LCBkMjY3KTsKKysgIHgg PSBmMiAoeCwgZDI2OCk7CisrICB4ID0gZjIgKHgsIGQyNjkpOworKyAgeCA9IGYyICh4LCBkMjcw KTsKKysgIHggPSBmMiAoeCwgZDI3MSk7CisrICB4ID0gZjIgKHgsIGQyNzIpOworKyAgeCA9IGYy ICh4LCBkMjczKTsKKysgIHggPSBmMiAoeCwgZDI3NCk7CisrICB4ID0gZjIgKHgsIGQyNzUpOwor KyAgeCA9IGYyICh4LCBkMjc2KTsKKysgIHggPSBmMiAoeCwgZDI3Nyk7CisrICB4ID0gZjIgKHgs IGQyNzgpOworKyAgeCA9IGYyICh4LCBkMjc5KTsKKysgIHggPSBmMiAoeCwgZDI4MCk7CisrICB4 ID0gZjIgKHgsIGQyODEpOworKyAgeCA9IGYyICh4LCBkMjgyKTsKKysgIHggPSBmMiAoeCwgZDI4 Myk7CisrICB4ID0gZjIgKHgsIGQyODQpOworKyAgeCA9IGYyICh4LCBkMjg1KTsKKysgIHggPSBm MiAoeCwgZDI4Nik7CisrICB4ID0gZjIgKHgsIGQyODcpOworKyAgeCA9IGYyICh4LCBkMjg4KTsK KysgIHggPSBmMiAoeCwgZDI4OSk7CisrICB4ID0gZjIgKHgsIGQyOTApOworKyAgeCA9IGYyICh4 LCBkMjkxKTsKKysgIHggPSBmMiAoeCwgZDI5Mik7CisrICB4ID0gZjIgKHgsIGQyOTMpOworKyAg eCA9IGYyICh4LCBkMjk0KTsKKysgIHggPSBmMiAoeCwgZDI5NSk7CisrICB4ID0gZjIgKHgsIGQy OTYpOworKyAgeCA9IGYyICh4LCBkMjk3KTsKKysgIHggPSBmMiAoeCwgZDI5OCk7CisrICB4ID0g ZjIgKHgsIGQyOTkpOworKyAgeCA9IGYyICh4LCBkMzAwKTsKKysgIHggPSBmMiAoeCwgZDMwMSk7 CisrICB4ID0gZjIgKHgsIGQzMDIpOworKyAgeCA9IGYyICh4LCBkMzAzKTsKKysgIHggPSBmMiAo eCwgZDMwNCk7CisrICB4ID0gZjIgKHgsIGQzMDUpOworKyAgeCA9IGYyICh4LCBkMzA2KTsKKysg IHggPSBmMiAoeCwgZDMwNyk7CisrICB4ID0gZjIgKHgsIGQzMDgpOworKyAgeCA9IGYyICh4LCBk MzA5KTsKKysgIHggPSBmMiAoeCwgZDMxMCk7CisrICB4ID0gZjIgKHgsIGQzMTEpOworKyAgeCA9 IGYyICh4LCBkMzEyKTsKKysgIHggPSBmMiAoeCwgZDMxMyk7CisrICB4ID0gZjIgKHgsIGQzMTQp OworKyAgeCA9IGYyICh4LCBkMzE1KTsKKysgIHggPSBmMiAoeCwgZDMxNik7CisrICB4ID0gZjIg KHgsIGQzMTcpOworKyAgeCA9IGYyICh4LCBkMzE4KTsKKysgIHggPSBmMiAoeCwgZDMxOSk7Cisr ICB4ID0gZjIgKHgsIGQzMjApOworKyAgeCA9IGYyICh4LCBkMzIxKTsKKysgIHggPSBmMiAoeCwg ZDMyMik7CisrICB4ID0gZjIgKHgsIGQzMjMpOworKyAgeCA9IGYyICh4LCBkMzI0KTsKKysgIHgg PSBmMiAoeCwgZDMyNSk7CisrICB4ID0gZjIgKHgsIGQzMjYpOworKyAgeCA9IGYyICh4LCBkMzI3 KTsKKysgIHggPSBmMiAoeCwgZDMyOCk7CisrICB4ID0gZjIgKHgsIGQzMjkpOworKyAgeCA9IGYy ICh4LCBkMzMwKTsKKysgIHggPSBmMiAoeCwgZDMzMSk7CisrICB4ID0gZjIgKHgsIGQzMzIpOwor KyAgeCA9IGYyICh4LCBkMzMzKTsKKysgIHggPSBmMiAoeCwgZDMzNCk7CisrICB4ID0gZjIgKHgs IGQzMzUpOworKyAgeCA9IGYyICh4LCBkMzM2KTsKKysgIHggPSBmMiAoeCwgZDMzNyk7CisrICB4 ID0gZjIgKHgsIGQzMzgpOworKyAgeCA9IGYyICh4LCBkMzM5KTsKKysgIHggPSBmMiAoeCwgZDM0 MCk7CisrICB4ID0gZjIgKHgsIGQzNDEpOworKyAgeCA9IGYyICh4LCBkMzQyKTsKKysgIHggPSBm MiAoeCwgZDM0Myk7CisrICB4ID0gZjIgKHgsIGQzNDQpOworKyAgeCA9IGYyICh4LCBkMzQ1KTsK KysgIHggPSBmMiAoeCwgZDM0Nik7CisrICB4ID0gZjIgKHgsIGQzNDcpOworKyAgeCA9IGYyICh4 LCBkMzQ4KTsKKysgIHggPSBmMiAoeCwgZDM0OSk7CisrICB4ID0gZjIgKHgsIGQzNTApOworKyAg eCA9IGYyICh4LCBkMzUxKTsKKysgIHggPSBmMiAoeCwgZDM1Mik7CisrICB4ID0gZjIgKHgsIGQz NTMpOworKyAgeCA9IGYyICh4LCBkMzU0KTsKKysgIHggPSBmMiAoeCwgZDM1NSk7CisrICB4ID0g ZjIgKHgsIGQzNTYpOworKyAgeCA9IGYyICh4LCBkMzU3KTsKKysgIHggPSBmMiAoeCwgZDM1OCk7 CisrICB4ID0gZjIgKHgsIGQzNTkpOworKyAgeCA9IGYyICh4LCBkMzYwKTsKKysgIHggPSBmMiAo eCwgZDM2MSk7CisrICB4ID0gZjIgKHgsIGQzNjIpOworKyAgeCA9IGYyICh4LCBkMzYzKTsKKysg IHggPSBmMiAoeCwgZDM2NCk7CisrICB4ID0gZjIgKHgsIGQzNjUpOworKyAgeCA9IGYyICh4LCBk MzY2KTsKKysgIHggPSBmMiAoeCwgZDM2Nyk7CisrICB4ID0gZjIgKHgsIGQzNjgpOworKyAgeCA9 IGYyICh4LCBkMzY5KTsKKysgIHggPSBmMiAoeCwgZDM3MCk7CisrICB4ID0gZjIgKHgsIGQzNzEp OworKyAgeCA9IGYyICh4LCBkMzcyKTsKKysgIHggPSBmMiAoeCwgZDM3Myk7CisrICB4ID0gZjIg KHgsIGQzNzQpOworKyAgeCA9IGYyICh4LCBkMzc1KTsKKysgIHggPSBmMiAoeCwgZDM3Nik7Cisr ICB4ID0gZjIgKHgsIGQzNzcpOworKyAgeCA9IGYyICh4LCBkMzc4KTsKKysgIHggPSBmMiAoeCwg ZDM3OSk7CisrICB4ID0gZjIgKHgsIGQzODApOworKyAgeCA9IGYyICh4LCBkMzgxKTsKKysgIHgg PSBmMiAoeCwgZDM4Mik7CisrICB4ID0gZjIgKHgsIGQzODMpOworKyAgeCA9IGYyICh4LCBkMzg0 KTsKKysgIHggPSBmMiAoeCwgZDM4NSk7CisrICB4ID0gZjIgKHgsIGQzODYpOworKyAgeCA9IGYy ICh4LCBkMzg3KTsKKysgIHggPSBmMiAoeCwgZDM4OCk7CisrICB4ID0gZjIgKHgsIGQzODkpOwor KyAgeCA9IGYyICh4LCBkMzkwKTsKKysgIHggPSBmMiAoeCwgZDM5MSk7CisrICB4ID0gZjIgKHgs IGQzOTIpOworKyAgeCA9IGYyICh4LCBkMzkzKTsKKysgIHggPSBmMiAoeCwgZDM5NCk7CisrICB4 ID0gZjIgKHgsIGQzOTUpOworKyAgeCA9IGYyICh4LCBkMzk2KTsKKysgIHggPSBmMiAoeCwgZDM5 Nyk7CisrICB4ID0gZjIgKHgsIGQzOTgpOworKyAgeCA9IGYyICh4LCBkMzk5KTsKKysgIHggPSBm MiAoeCwgZDQwMCk7CisrICB4ID0gZjIgKHgsIGQ0MDEpOworKyAgeCA9IGYyICh4LCBkNDAyKTsK KysgIHggPSBmMiAoeCwgZDQwMyk7CisrICB4ID0gZjIgKHgsIGQ0MDQpOworKyAgeCA9IGYyICh4 LCBkNDA1KTsKKysgIHggPSBmMiAoeCwgZDQwNik7CisrICB4ID0gZjIgKHgsIGQ0MDcpOworKyAg eCA9IGYyICh4LCBkNDA4KTsKKysgIHggPSBmMiAoeCwgZDQwOSk7CisrICB4ID0gZjIgKHgsIGQ0 MTApOworKyAgeCA9IGYyICh4LCBkNDExKTsKKysgIHggPSBmMiAoeCwgZDQxMik7CisrICB4ID0g ZjIgKHgsIGQ0MTMpOworKyAgeCA9IGYyICh4LCBkNDE0KTsKKysgIHggPSBmMiAoeCwgZDQxNSk7 CisrICB4ID0gZjIgKHgsIGQ0MTYpOworKyAgeCA9IGYyICh4LCBkNDE3KTsKKysgIHggPSBmMiAo eCwgZDQxOCk7CisrICB4ID0gZjIgKHgsIGQ0MTkpOworKyAgeCA9IGYyICh4LCBkNDIwKTsKKysg IHggPSBmMiAoeCwgZDQyMSk7CisrICB4ID0gZjIgKHgsIGQ0MjIpOworKyAgeCA9IGYyICh4LCBk NDIzKTsKKysgIHggPSBmMiAoeCwgZDQyNCk7CisrICB4ID0gZjIgKHgsIGQ0MjUpOworKyAgeCA9 IGYyICh4LCBkNDI2KTsKKysgIHggPSBmMiAoeCwgZDQyNyk7CisrICB4ID0gZjIgKHgsIGQ0Mjgp OworKyAgeCA9IGYyICh4LCBkNDI5KTsKKysgIHggPSBmMiAoeCwgZDQzMCk7CisrICB4ID0gZjIg KHgsIGQ0MzEpOworKyAgeCA9IGYyICh4LCBkNDMyKTsKKysgIHggPSBmMiAoeCwgZDQzMyk7Cisr ICB4ID0gZjIgKHgsIGQ0MzQpOworKyAgeCA9IGYyICh4LCBkNDM1KTsKKysgIHggPSBmMiAoeCwg ZDQzNik7CisrICB4ID0gZjIgKHgsIGQ0MzcpOworKyAgeCA9IGYyICh4LCBkNDM4KTsKKysgIHgg PSBmMiAoeCwgZDQzOSk7CisrICB4ID0gZjIgKHgsIGQ0NDApOworKyAgeCA9IGYyICh4LCBkNDQx KTsKKysgIHggPSBmMiAoeCwgZDQ0Mik7CisrICB4ID0gZjIgKHgsIGQ0NDMpOworKyAgeCA9IGYy ICh4LCBkNDQ0KTsKKysgIHggPSBmMiAoeCwgZDQ0NSk7CisrICB4ID0gZjIgKHgsIGQ0NDYpOwor KyAgeCA9IGYyICh4LCBkNDQ3KTsKKysgIHggPSBmMiAoeCwgZDQ0OCk7CisrICB4ID0gZjIgKHgs IGQ0NDkpOworKyAgeCA9IGYyICh4LCBkNDUwKTsKKysgIHggPSBmMiAoeCwgZDQ1MSk7CisrICB4 ID0gZjIgKHgsIGQ0NTIpOworKyAgeCA9IGYyICh4LCBkNDUzKTsKKysgIHggPSBmMiAoeCwgZDQ1 NCk7CisrICB4ID0gZjIgKHgsIGQ0NTUpOworKyAgeCA9IGYyICh4LCBkNDU2KTsKKysgIHggPSBm MiAoeCwgZDQ1Nyk7CisrICB4ID0gZjIgKHgsIGQ0NTgpOworKyAgeCA9IGYyICh4LCBkNDU5KTsK KysgIHggPSBmMiAoeCwgZDQ2MCk7CisrICB4ID0gZjIgKHgsIGQ0NjEpOworKyAgeCA9IGYyICh4 LCBkNDYyKTsKKysgIHggPSBmMiAoeCwgZDQ2Myk7CisrICB4ID0gZjIgKHgsIGQ0NjQpOworKyAg eCA9IGYyICh4LCBkNDY1KTsKKysgIHggPSBmMiAoeCwgZDQ2Nik7CisrICB4ID0gZjIgKHgsIGQ0 NjcpOworKyAgeCA9IGYyICh4LCBkNDY4KTsKKysgIHggPSBmMiAoeCwgZDQ2OSk7CisrICB4ID0g ZjIgKHgsIGQ0NzApOworKyAgeCA9IGYyICh4LCBkNDcxKTsKKysgIHggPSBmMiAoeCwgZDQ3Mik7 CisrICB4ID0gZjIgKHgsIGQ0NzMpOworKyAgeCA9IGYyICh4LCBkNDc0KTsKKysgIHggPSBmMiAo eCwgZDQ3NSk7CisrICB4ID0gZjIgKHgsIGQ0NzYpOworKyAgeCA9IGYyICh4LCBkNDc3KTsKKysg IHggPSBmMiAoeCwgZDQ3OCk7CisrICB4ID0gZjIgKHgsIGQ0NzkpOworKyAgeCA9IGYyICh4LCBk NDgwKTsKKysgIHggPSBmMiAoeCwgZDQ4MSk7CisrICB4ID0gZjIgKHgsIGQ0ODIpOworKyAgeCA9 IGYyICh4LCBkNDgzKTsKKysgIHggPSBmMiAoeCwgZDQ4NCk7CisrICB4ID0gZjIgKHgsIGQ0ODUp OworKyAgeCA9IGYyICh4LCBkNDg2KTsKKysgIHggPSBmMiAoeCwgZDQ4Nyk7CisrICB4ID0gZjIg KHgsIGQ0ODgpOworKyAgeCA9IGYyICh4LCBkNDg5KTsKKysgIHggPSBmMiAoeCwgZDQ5MCk7Cisr ICB4ID0gZjIgKHgsIGQ0OTEpOworKyAgeCA9IGYyICh4LCBkNDkyKTsKKysgIHggPSBmMiAoeCwg ZDQ5Myk7CisrICB4ID0gZjIgKHgsIGQ0OTQpOworKyAgeCA9IGYyICh4LCBkNDk1KTsKKysgIHgg PSBmMiAoeCwgZDQ5Nik7CisrICB4ID0gZjIgKHgsIGQ0OTcpOworKyAgeCA9IGYyICh4LCBkNDk4 KTsKKysgIHggPSBmMiAoeCwgZDQ5OSk7CisrICB4ID0gZjIgKHgsIGQ1MDApOworKyAgeCA9IGYy ICh4LCBkNTAxKTsKKysgIHggPSBmMiAoeCwgZDUwMik7CisrICB4ID0gZjIgKHgsIGQ1MDMpOwor KyAgeCA9IGYyICh4LCBkNTA0KTsKKysgIHggPSBmMiAoeCwgZDUwNSk7CisrICB4ID0gZjIgKHgs IGQ1MDYpOworKyAgeCA9IGYyICh4LCBkNTA3KTsKKysgIHggPSBmMiAoeCwgZDUwOCk7CisrICB4 ID0gZjIgKHgsIGQ1MDkpOworKyAgeCA9IGYyICh4LCBkNTEwKTsKKysgIHggPSBmMiAoeCwgZDUx MSk7CisrICB4ID0gZjIgKHgsIGQ1MTIpOworKyAgeCA9IGYyICh4LCBkNTEzKTsKKysgIHggPSBm MiAoeCwgZDUxNCk7CisrICB4ID0gZjIgKHgsIGQ1MTUpOworKyAgeCA9IGYyICh4LCBkNTE2KTsK KysgIHggPSBmMiAoeCwgZDUxNyk7CisrICB4ID0gZjIgKHgsIGQ1MTgpOworKyAgeCA9IGYyICh4 LCBkNTE5KTsKKysgIHggPSBmMiAoeCwgZDUyMCk7CisrICB4ID0gZjIgKHgsIGQ1MjEpOworKyAg eCA9IGYyICh4LCBkNTIyKTsKKysgIHggPSBmMiAoeCwgZDUyMyk7CisrICB4ID0gZjIgKHgsIGQ1 MjQpOworKyAgeCA9IGYyICh4LCBkNTI1KTsKKysgIHggPSBmMiAoeCwgZDUyNik7CisrICB4ID0g ZjIgKHgsIGQ1MjcpOworKyAgeCA9IGYyICh4LCBkNTI4KTsKKysgIHggPSBmMiAoeCwgZDUyOSk7 CisrICB4ID0gZjIgKHgsIGQ1MzApOworKyAgeCA9IGYyICh4LCBkNTMxKTsKKysgIHggPSBmMiAo eCwgZDUzMik7CisrICB4ID0gZjIgKHgsIGQ1MzMpOworKyAgeCA9IGYyICh4LCBkNTM0KTsKKysg IHggPSBmMiAoeCwgZDUzNSk7CisrICB4ID0gZjIgKHgsIGQ1MzYpOworKyAgeCA9IGYyICh4LCBk NTM3KTsKKysgIHggPSBmMiAoeCwgZDUzOCk7CisrICB4ID0gZjIgKHgsIGQ1MzkpOworKyAgeCA9 IGYyICh4LCBkNTQwKTsKKysgIHggPSBmMiAoeCwgZDU0MSk7CisrICB4ID0gZjIgKHgsIGQ1NDIp OworKyAgeCA9IGYyICh4LCBkNTQzKTsKKysgIHggPSBmMiAoeCwgZDU0NCk7CisrICB4ID0gZjIg KHgsIGQ1NDUpOworKyAgeCA9IGYyICh4LCBkNTQ2KTsKKysgIHggPSBmMiAoeCwgZDU0Nyk7Cisr ICB4ID0gZjIgKHgsIGQ1NDgpOworKyAgeCA9IGYyICh4LCBkNTQ5KTsKKysgIHggPSBmMiAoeCwg ZDU1MCk7CisrICB4ID0gZjIgKHgsIGQ1NTEpOworKyAgeCA9IGYyICh4LCBkNTUyKTsKKysgIHgg PSBmMiAoeCwgZDU1Myk7CisrICB4ID0gZjIgKHgsIGQ1NTQpOworKyAgeCA9IGYyICh4LCBkNTU1 KTsKKysgIHggPSBmMiAoeCwgZDU1Nik7CisrICB4ID0gZjIgKHgsIGQ1NTcpOworKyAgeCA9IGYy ICh4LCBkNTU4KTsKKysgIHggPSBmMiAoeCwgZDU1OSk7CisrICB4ID0gZjIgKHgsIGQ1NjApOwor KyAgeCA9IGYyICh4LCBkNTYxKTsKKysgIHggPSBmMiAoeCwgZDU2Mik7CisrICB4ID0gZjIgKHgs IGQ1NjMpOworKyAgeCA9IGYyICh4LCBkNTY0KTsKKysgIHggPSBmMiAoeCwgZDU2NSk7CisrICB4 ID0gZjIgKHgsIGQ1NjYpOworKyAgeCA9IGYyICh4LCBkNTY3KTsKKysgIHggPSBmMiAoeCwgZDU2 OCk7CisrICB4ID0gZjIgKHgsIGQ1NjkpOworKyAgeCA9IGYyICh4LCBkNTcwKTsKKysgIHggPSBm MiAoeCwgZDU3MSk7CisrICB4ID0gZjIgKHgsIGQ1NzIpOworKyAgeCA9IGYyICh4LCBkNTczKTsK KysgIHggPSBmMiAoeCwgZDU3NCk7CisrICB4ID0gZjIgKHgsIGQ1NzUpOworKyAgeCA9IGYyICh4 LCBkNTc2KTsKKysgIHggPSBmMiAoeCwgZDU3Nyk7CisrICB4ID0gZjIgKHgsIGQ1NzgpOworKyAg eCA9IGYyICh4LCBkNTc5KTsKKysgIHggPSBmMiAoeCwgZDU4MCk7CisrICB4ID0gZjIgKHgsIGQ1 ODEpOworKyAgeCA9IGYyICh4LCBkNTgyKTsKKysgIHggPSBmMiAoeCwgZDU4Myk7CisrICB4ID0g ZjIgKHgsIGQ1ODQpOworKyAgeCA9IGYyICh4LCBkNTg1KTsKKysgIHggPSBmMiAoeCwgZDU4Nik7 CisrICB4ID0gZjIgKHgsIGQ1ODcpOworKyAgeCA9IGYyICh4LCBkNTg4KTsKKysgIHggPSBmMiAo eCwgZDU4OSk7CisrICB4ID0gZjIgKHgsIGQ1OTApOworKyAgeCA9IGYyICh4LCBkNTkxKTsKKysg IHggPSBmMiAoeCwgZDU5Mik7CisrICB4ID0gZjIgKHgsIGQ1OTMpOworKyAgeCA9IGYyICh4LCBk NTk0KTsKKysgIHggPSBmMiAoeCwgZDU5NSk7CisrICB4ID0gZjIgKHgsIGQ1OTYpOworKyAgeCA9 IGYyICh4LCBkNTk3KTsKKysgIHggPSBmMiAoeCwgZDU5OCk7CisrICB4ID0gZjIgKHgsIGQ1OTkp OworKyAgeCA9IGYyICh4LCBkNjAwKTsKKysgIHggPSBmMiAoeCwgZDYwMSk7CisrICB4ID0gZjIg KHgsIGQ2MDIpOworKyAgeCA9IGYyICh4LCBkNjAzKTsKKysgIHggPSBmMiAoeCwgZDYwNCk7Cisr ICB4ID0gZjIgKHgsIGQ2MDUpOworKyAgeCA9IGYyICh4LCBkNjA2KTsKKysgIHggPSBmMiAoeCwg ZDYwNyk7CisrICB4ID0gZjIgKHgsIGQ2MDgpOworKyAgeCA9IGYyICh4LCBkNjA5KTsKKysgIHgg PSBmMiAoeCwgZDYxMCk7CisrICB4ID0gZjIgKHgsIGQ2MTEpOworKyAgeCA9IGYyICh4LCBkNjEy KTsKKysgIHggPSBmMiAoeCwgZDYxMyk7CisrICB4ID0gZjIgKHgsIGQ2MTQpOworKyAgeCA9IGYy ICh4LCBkNjE1KTsKKysgIHggPSBmMiAoeCwgZDYxNik7CisrICB4ID0gZjIgKHgsIGQ2MTcpOwor KyAgeCA9IGYyICh4LCBkNjE4KTsKKysgIHggPSBmMiAoeCwgZDYxOSk7CisrICB4ID0gZjIgKHgs IGQ2MjApOworKyAgeCA9IGYyICh4LCBkNjIxKTsKKysgIHggPSBmMiAoeCwgZDYyMik7CisrICB4 ID0gZjIgKHgsIGQ2MjMpOworKyAgeCA9IGYyICh4LCBkNjI0KTsKKysgIHggPSBmMiAoeCwgZDYy NSk7CisrICB4ID0gZjIgKHgsIGQ2MjYpOworKyAgeCA9IGYyICh4LCBkNjI3KTsKKysgIHggPSBm MiAoeCwgZDYyOCk7CisrICB4ID0gZjIgKHgsIGQ2MjkpOworKyAgeCA9IGYyICh4LCBkNjMwKTsK KysgIHggPSBmMiAoeCwgZDYzMSk7CisrICB4ID0gZjIgKHgsIGQ2MzIpOworKyAgeCA9IGYyICh4 LCBkNjMzKTsKKysgIHggPSBmMiAoeCwgZDYzNCk7CisrICB4ID0gZjIgKHgsIGQ2MzUpOworKyAg eCA9IGYyICh4LCBkNjM2KTsKKysgIHggPSBmMiAoeCwgZDYzNyk7CisrICB4ID0gZjIgKHgsIGQ2 MzgpOworKyAgeCA9IGYyICh4LCBkNjM5KTsKKysgIHggPSBmMiAoeCwgZDY0MCk7CisrICB4ID0g ZjIgKHgsIGQ2NDEpOworKyAgeCA9IGYyICh4LCBkNjQyKTsKKysgIHggPSBmMiAoeCwgZDY0Myk7 CisrICB4ID0gZjIgKHgsIGQ2NDQpOworKyAgeCA9IGYyICh4LCBkNjQ1KTsKKysgIHggPSBmMiAo eCwgZDY0Nik7CisrICB4ID0gZjIgKHgsIGQ2NDcpOworKyAgeCA9IGYyICh4LCBkNjQ4KTsKKysg IHggPSBmMiAoeCwgZDY0OSk7CisrICB4ID0gZjIgKHgsIGQ2NTApOworKyAgeCA9IGYyICh4LCBk NjUxKTsKKysgIHggPSBmMiAoeCwgZDY1Mik7CisrICB4ID0gZjIgKHgsIGQ2NTMpOworKyAgeCA9 IGYyICh4LCBkNjU0KTsKKysgIHggPSBmMiAoeCwgZDY1NSk7CisrICB4ID0gZjIgKHgsIGQ2NTYp OworKyAgeCA9IGYyICh4LCBkNjU3KTsKKysgIHggPSBmMiAoeCwgZDY1OCk7CisrICB4ID0gZjIg KHgsIGQ2NTkpOworKyAgeCA9IGYyICh4LCBkNjYwKTsKKysgIHggPSBmMiAoeCwgZDY2MSk7Cisr ICB4ID0gZjIgKHgsIGQ2NjIpOworKyAgeCA9IGYyICh4LCBkNjYzKTsKKysgIHggPSBmMiAoeCwg ZDY2NCk7CisrICB4ID0gZjIgKHgsIGQ2NjUpOworKyAgeCA9IGYyICh4LCBkNjY2KTsKKysgIHgg PSBmMiAoeCwgZDY2Nyk7CisrICB4ID0gZjIgKHgsIGQ2NjgpOworKyAgeCA9IGYyICh4LCBkNjY5 KTsKKysgIHggPSBmMiAoeCwgZDY3MCk7CisrICB4ID0gZjIgKHgsIGQ2NzEpOworKyAgeCA9IGYy ICh4LCBkNjcyKTsKKysgIHggPSBmMiAoeCwgZDY3Myk7CisrICB4ID0gZjIgKHgsIGQ2NzQpOwor KyAgeCA9IGYyICh4LCBkNjc1KTsKKysgIHggPSBmMiAoeCwgZDY3Nik7CisrICB4ID0gZjIgKHgs IGQ2NzcpOworKyAgeCA9IGYyICh4LCBkNjc4KTsKKysgIHggPSBmMiAoeCwgZDY3OSk7CisrICB4 ID0gZjIgKHgsIGQ2ODApOworKyAgeCA9IGYyICh4LCBkNjgxKTsKKysgIHggPSBmMiAoeCwgZDY4 Mik7CisrICB4ID0gZjIgKHgsIGQ2ODMpOworKyAgeCA9IGYyICh4LCBkNjg0KTsKKysgIHggPSBm MiAoeCwgZDY4NSk7CisrICB4ID0gZjIgKHgsIGQ2ODYpOworKyAgeCA9IGYyICh4LCBkNjg3KTsK KysgIHggPSBmMiAoeCwgZDY4OCk7CisrICB4ID0gZjIgKHgsIGQ2ODkpOworKyAgeCA9IGYyICh4 LCBkNjkwKTsKKysgIHggPSBmMiAoeCwgZDY5MSk7CisrICB4ID0gZjIgKHgsIGQ2OTIpOworKyAg eCA9IGYyICh4LCBkNjkzKTsKKysgIHggPSBmMiAoeCwgZDY5NCk7CisrICB4ID0gZjIgKHgsIGQ2 OTUpOworKyAgeCA9IGYyICh4LCBkNjk2KTsKKysgIHggPSBmMiAoeCwgZDY5Nyk7CisrICB4ID0g ZjIgKHgsIGQ2OTgpOworKyAgeCA9IGYyICh4LCBkNjk5KTsKKysgIHggPSBmMiAoeCwgZDcwMCk7 CisrICB4ID0gZjIgKHgsIGQ3MDEpOworKyAgeCA9IGYyICh4LCBkNzAyKTsKKysgIHggPSBmMiAo eCwgZDcwMyk7CisrICB4ID0gZjIgKHgsIGQ3MDQpOworKyAgeCA9IGYyICh4LCBkNzA1KTsKKysg IHggPSBmMiAoeCwgZDcwNik7CisrICB4ID0gZjIgKHgsIGQ3MDcpOworKyAgeCA9IGYyICh4LCBk NzA4KTsKKysgIHggPSBmMiAoeCwgZDcwOSk7CisrICB4ID0gZjIgKHgsIGQ3MTApOworKyAgeCA9 IGYyICh4LCBkNzExKTsKKysgIHggPSBmMiAoeCwgZDcxMik7CisrICB4ID0gZjIgKHgsIGQ3MTMp OworKyAgeCA9IGYyICh4LCBkNzE0KTsKKysgIHggPSBmMiAoeCwgZDcxNSk7CisrICB4ID0gZjIg KHgsIGQ3MTYpOworKyAgeCA9IGYyICh4LCBkNzE3KTsKKysgIHggPSBmMiAoeCwgZDcxOCk7Cisr ICB4ID0gZjIgKHgsIGQ3MTkpOworKyAgeCA9IGYyICh4LCBkNzIwKTsKKysgIHggPSBmMiAoeCwg ZDcyMSk7CisrICB4ID0gZjIgKHgsIGQ3MjIpOworKyAgeCA9IGYyICh4LCBkNzIzKTsKKysgIHgg PSBmMiAoeCwgZDcyNCk7CisrICB4ID0gZjIgKHgsIGQ3MjUpOworKyAgeCA9IGYyICh4LCBkNzI2 KTsKKysgIHggPSBmMiAoeCwgZDcyNyk7CisrICB4ID0gZjIgKHgsIGQ3MjgpOworKyAgeCA9IGYy ICh4LCBkNzI5KTsKKysgIHggPSBmMiAoeCwgZDczMCk7CisrICB4ID0gZjIgKHgsIGQ3MzEpOwor KyAgeCA9IGYyICh4LCBkNzMyKTsKKysgIHggPSBmMiAoeCwgZDczMyk7CisrICB4ID0gZjIgKHgs IGQ3MzQpOworKyAgeCA9IGYyICh4LCBkNzM1KTsKKysgIHggPSBmMiAoeCwgZDczNik7CisrICB4 ID0gZjIgKHgsIGQ3MzcpOworKyAgeCA9IGYyICh4LCBkNzM4KTsKKysgIHggPSBmMiAoeCwgZDcz OSk7CisrICB4ID0gZjIgKHgsIGQ3NDApOworKyAgeCA9IGYyICh4LCBkNzQxKTsKKysgIHggPSBm MiAoeCwgZDc0Mik7CisrICB4ID0gZjIgKHgsIGQ3NDMpOworKyAgeCA9IGYyICh4LCBkNzQ0KTsK KysgIHggPSBmMiAoeCwgZDc0NSk7CisrICB4ID0gZjIgKHgsIGQ3NDYpOworKyAgeCA9IGYyICh4 LCBkNzQ3KTsKKysgIHggPSBmMiAoeCwgZDc0OCk7CisrICB4ID0gZjIgKHgsIGQ3NDkpOworKyAg eCA9IGYyICh4LCBkNzUwKTsKKysgIHggPSBmMiAoeCwgZDc1MSk7CisrICB4ID0gZjIgKHgsIGQ3 NTIpOworKyAgeCA9IGYyICh4LCBkNzUzKTsKKysgIHggPSBmMiAoeCwgZDc1NCk7CisrICB4ID0g ZjIgKHgsIGQ3NTUpOworKyAgeCA9IGYyICh4LCBkNzU2KTsKKysgIHggPSBmMiAoeCwgZDc1Nyk7 CisrICB4ID0gZjIgKHgsIGQ3NTgpOworKyAgeCA9IGYyICh4LCBkNzU5KTsKKysgIHggPSBmMiAo eCwgZDc2MCk7CisrICB4ID0gZjIgKHgsIGQ3NjEpOworKyAgeCA9IGYyICh4LCBkNzYyKTsKKysg IHggPSBmMiAoeCwgZDc2Myk7CisrICB4ID0gZjIgKHgsIGQ3NjQpOworKyAgeCA9IGYyICh4LCBk NzY1KTsKKysgIHggPSBmMiAoeCwgZDc2Nik7CisrICB4ID0gZjIgKHgsIGQ3NjcpOworKyAgeCA9 IGYyICh4LCBkNzY4KTsKKysgIHggPSBmMiAoeCwgZDc2OSk7CisrICB4ID0gZjIgKHgsIGQ3NzAp OworKyAgeCA9IGYyICh4LCBkNzcxKTsKKysgIHggPSBmMiAoeCwgZDc3Mik7CisrICB4ID0gZjIg KHgsIGQ3NzMpOworKyAgeCA9IGYyICh4LCBkNzc0KTsKKysgIHggPSBmMiAoeCwgZDc3NSk7Cisr ICB4ID0gZjIgKHgsIGQ3NzYpOworKyAgeCA9IGYyICh4LCBkNzc3KTsKKysgIHggPSBmMiAoeCwg ZDc3OCk7CisrICB4ID0gZjIgKHgsIGQ3NzkpOworKyAgeCA9IGYyICh4LCBkNzgwKTsKKysgIHgg PSBmMiAoeCwgZDc4MSk7CisrICB4ID0gZjIgKHgsIGQ3ODIpOworKyAgeCA9IGYyICh4LCBkNzgz KTsKKysgIHggPSBmMiAoeCwgZDc4NCk7CisrICB4ID0gZjIgKHgsIGQ3ODUpOworKyAgeCA9IGYy ICh4LCBkNzg2KTsKKysgIHggPSBmMiAoeCwgZDc4Nyk7CisrICB4ID0gZjIgKHgsIGQ3ODgpOwor KyAgeCA9IGYyICh4LCBkNzg5KTsKKysgIHggPSBmMiAoeCwgZDc5MCk7CisrICB4ID0gZjIgKHgs IGQ3OTEpOworKyAgeCA9IGYyICh4LCBkNzkyKTsKKysgIHggPSBmMiAoeCwgZDc5Myk7CisrICB4 ID0gZjIgKHgsIGQ3OTQpOworKyAgeCA9IGYyICh4LCBkNzk1KTsKKysgIHggPSBmMiAoeCwgZDc5 Nik7CisrICB4ID0gZjIgKHgsIGQ3OTcpOworKyAgeCA9IGYyICh4LCBkNzk4KTsKKysgIHggPSBm MiAoeCwgZDc5OSk7CisrICB4ID0gZjIgKHgsIGQ4MDApOworKyAgeCA9IGYyICh4LCBkODAxKTsK KysgIHggPSBmMiAoeCwgZDgwMik7CisrICB4ID0gZjIgKHgsIGQ4MDMpOworKyAgeCA9IGYyICh4 LCBkODA0KTsKKysgIHggPSBmMiAoeCwgZDgwNSk7CisrICB4ID0gZjIgKHgsIGQ4MDYpOworKyAg eCA9IGYyICh4LCBkODA3KTsKKysgIHggPSBmMiAoeCwgZDgwOCk7CisrICB4ID0gZjIgKHgsIGQ4 MDkpOworKyAgeCA9IGYyICh4LCBkODEwKTsKKysgIHggPSBmMiAoeCwgZDgxMSk7CisrICB4ID0g ZjIgKHgsIGQ4MTIpOworKyAgeCA9IGYyICh4LCBkODEzKTsKKysgIHggPSBmMiAoeCwgZDgxNCk7 CisrICB4ID0gZjIgKHgsIGQ4MTUpOworKyAgeCA9IGYyICh4LCBkODE2KTsKKysgIHggPSBmMiAo eCwgZDgxNyk7CisrICB4ID0gZjIgKHgsIGQ4MTgpOworKyAgeCA9IGYyICh4LCBkODE5KTsKKysg IHggPSBmMiAoeCwgZDgyMCk7CisrICB4ID0gZjIgKHgsIGQ4MjEpOworKyAgeCA9IGYyICh4LCBk ODIyKTsKKysgIHggPSBmMiAoeCwgZDgyMyk7CisrICB4ID0gZjIgKHgsIGQ4MjQpOworKyAgeCA9 IGYyICh4LCBkODI1KTsKKysgIHggPSBmMiAoeCwgZDgyNik7CisrICB4ID0gZjIgKHgsIGQ4Mjcp OworKyAgeCA9IGYyICh4LCBkODI4KTsKKysgIHggPSBmMiAoeCwgZDgyOSk7CisrICB4ID0gZjIg KHgsIGQ4MzApOworKyAgeCA9IGYyICh4LCBkODMxKTsKKysgIHggPSBmMiAoeCwgZDgzMik7Cisr ICB4ID0gZjIgKHgsIGQ4MzMpOworKyAgeCA9IGYyICh4LCBkODM0KTsKKysgIHggPSBmMiAoeCwg ZDgzNSk7CisrICB4ID0gZjIgKHgsIGQ4MzYpOworKyAgeCA9IGYyICh4LCBkODM3KTsKKysgIHgg PSBmMiAoeCwgZDgzOCk7CisrICB4ID0gZjIgKHgsIGQ4MzkpOworKyAgeCA9IGYyICh4LCBkODQw KTsKKysgIHggPSBmMiAoeCwgZDg0MSk7CisrICB4ID0gZjIgKHgsIGQ4NDIpOworKyAgeCA9IGYy ICh4LCBkODQzKTsKKysgIHggPSBmMiAoeCwgZDg0NCk7CisrICB4ID0gZjIgKHgsIGQ4NDUpOwor KyAgeCA9IGYyICh4LCBkODQ2KTsKKysgIHggPSBmMiAoeCwgZDg0Nyk7CisrICB4ID0gZjIgKHgs IGQ4NDgpOworKyAgeCA9IGYyICh4LCBkODQ5KTsKKysgIHggPSBmMiAoeCwgZDg1MCk7CisrICB4 ID0gZjIgKHgsIGQ4NTEpOworKyAgeCA9IGYyICh4LCBkODUyKTsKKysgIHggPSBmMiAoeCwgZDg1 Myk7CisrICB4ID0gZjIgKHgsIGQ4NTQpOworKyAgeCA9IGYyICh4LCBkODU1KTsKKysgIHggPSBm MiAoeCwgZDg1Nik7CisrICB4ID0gZjIgKHgsIGQ4NTcpOworKyAgeCA9IGYyICh4LCBkODU4KTsK KysgIHggPSBmMiAoeCwgZDg1OSk7CisrICB4ID0gZjIgKHgsIGQ4NjApOworKyAgeCA9IGYyICh4 LCBkODYxKTsKKysgIHggPSBmMiAoeCwgZDg2Mik7CisrICB4ID0gZjIgKHgsIGQ4NjMpOworKyAg eCA9IGYyICh4LCBkODY0KTsKKysgIHggPSBmMiAoeCwgZDg2NSk7CisrICB4ID0gZjIgKHgsIGQ4 NjYpOworKyAgeCA9IGYyICh4LCBkODY3KTsKKysgIHggPSBmMiAoeCwgZDg2OCk7CisrICB4ID0g ZjIgKHgsIGQ4NjkpOworKyAgeCA9IGYyICh4LCBkODcwKTsKKysgIHggPSBmMiAoeCwgZDg3MSk7 CisrICB4ID0gZjIgKHgsIGQ4NzIpOworKyAgeCA9IGYyICh4LCBkODczKTsKKysgIHggPSBmMiAo eCwgZDg3NCk7CisrICB4ID0gZjIgKHgsIGQ4NzUpOworKyAgeCA9IGYyICh4LCBkODc2KTsKKysg IHggPSBmMiAoeCwgZDg3Nyk7CisrICB4ID0gZjIgKHgsIGQ4NzgpOworKyAgeCA9IGYyICh4LCBk ODc5KTsKKysgIHggPSBmMiAoeCwgZDg4MCk7CisrICB4ID0gZjIgKHgsIGQ4ODEpOworKyAgeCA9 IGYyICh4LCBkODgyKTsKKysgIHggPSBmMiAoeCwgZDg4Myk7CisrICB4ID0gZjIgKHgsIGQ4ODQp OworKyAgeCA9IGYyICh4LCBkODg1KTsKKysgIHggPSBmMiAoeCwgZDg4Nik7CisrICB4ID0gZjIg KHgsIGQ4ODcpOworKyAgeCA9IGYyICh4LCBkODg4KTsKKysgIHggPSBmMiAoeCwgZDg4OSk7Cisr ICB4ID0gZjIgKHgsIGQ4OTApOworKyAgeCA9IGYyICh4LCBkODkxKTsKKysgIHggPSBmMiAoeCwg ZDg5Mik7CisrICB4ID0gZjIgKHgsIGQ4OTMpOworKyAgeCA9IGYyICh4LCBkODk0KTsKKysgIHgg PSBmMiAoeCwgZDg5NSk7CisrICB4ID0gZjIgKHgsIGQ4OTYpOworKyAgeCA9IGYyICh4LCBkODk3 KTsKKysgIHggPSBmMiAoeCwgZDg5OCk7CisrICB4ID0gZjIgKHgsIGQ4OTkpOworKyAgeCA9IGYy ICh4LCBkOTAwKTsKKysgIHggPSBmMiAoeCwgZDkwMSk7CisrICB4ID0gZjIgKHgsIGQ5MDIpOwor KyAgeCA9IGYyICh4LCBkOTAzKTsKKysgIHggPSBmMiAoeCwgZDkwNCk7CisrICB4ID0gZjIgKHgs IGQ5MDUpOworKyAgeCA9IGYyICh4LCBkOTA2KTsKKysgIHggPSBmMiAoeCwgZDkwNyk7CisrICB4 ID0gZjIgKHgsIGQ5MDgpOworKyAgeCA9IGYyICh4LCBkOTA5KTsKKysgIHggPSBmMiAoeCwgZDkx MCk7CisrICB4ID0gZjIgKHgsIGQ5MTEpOworKyAgeCA9IGYyICh4LCBkOTEyKTsKKysgIHggPSBm MiAoeCwgZDkxMyk7CisrICB4ID0gZjIgKHgsIGQ5MTQpOworKyAgeCA9IGYyICh4LCBkOTE1KTsK KysgIHggPSBmMiAoeCwgZDkxNik7CisrICB4ID0gZjIgKHgsIGQ5MTcpOworKyAgeCA9IGYyICh4 LCBkOTE4KTsKKysgIHggPSBmMiAoeCwgZDkxOSk7CisrICB4ID0gZjIgKHgsIGQ5MjApOworKyAg eCA9IGYyICh4LCBkOTIxKTsKKysgIHggPSBmMiAoeCwgZDkyMik7CisrICB4ID0gZjIgKHgsIGQ5 MjMpOworKyAgeCA9IGYyICh4LCBkOTI0KTsKKysgIHggPSBmMiAoeCwgZDkyNSk7CisrICB4ID0g ZjIgKHgsIGQ5MjYpOworKyAgeCA9IGYyICh4LCBkOTI3KTsKKysgIHggPSBmMiAoeCwgZDkyOCk7 CisrICB4ID0gZjIgKHgsIGQ5MjkpOworKyAgeCA9IGYyICh4LCBkOTMwKTsKKysgIHggPSBmMiAo eCwgZDkzMSk7CisrICB4ID0gZjIgKHgsIGQ5MzIpOworKyAgeCA9IGYyICh4LCBkOTMzKTsKKysg IHggPSBmMiAoeCwgZDkzNCk7CisrICB4ID0gZjIgKHgsIGQ5MzUpOworKyAgeCA9IGYyICh4LCBk OTM2KTsKKysgIHggPSBmMiAoeCwgZDkzNyk7CisrICB4ID0gZjIgKHgsIGQ5MzgpOworKyAgeCA9 IGYyICh4LCBkOTM5KTsKKysgIHggPSBmMiAoeCwgZDk0MCk7CisrICB4ID0gZjIgKHgsIGQ5NDEp OworKyAgeCA9IGYyICh4LCBkOTQyKTsKKysgIHggPSBmMiAoeCwgZDk0Myk7CisrICB4ID0gZjIg KHgsIGQ5NDQpOworKyAgeCA9IGYyICh4LCBkOTQ1KTsKKysgIHggPSBmMiAoeCwgZDk0Nik7Cisr ICB4ID0gZjIgKHgsIGQ5NDcpOworKyAgeCA9IGYyICh4LCBkOTQ4KTsKKysgIHggPSBmMiAoeCwg ZDk0OSk7CisrICB4ID0gZjIgKHgsIGQ5NTApOworKyAgeCA9IGYyICh4LCBkOTUxKTsKKysgIHgg PSBmMiAoeCwgZDk1Mik7CisrICB4ID0gZjIgKHgsIGQ5NTMpOworKyAgeCA9IGYyICh4LCBkOTU0 KTsKKysgIHggPSBmMiAoeCwgZDk1NSk7CisrICB4ID0gZjIgKHgsIGQ5NTYpOworKyAgeCA9IGYy ICh4LCBkOTU3KTsKKysgIHggPSBmMiAoeCwgZDk1OCk7CisrICB4ID0gZjIgKHgsIGQ5NTkpOwor KyAgeCA9IGYyICh4LCBkOTYwKTsKKysgIHggPSBmMiAoeCwgZDk2MSk7CisrICB4ID0gZjIgKHgs IGQ5NjIpOworKyAgeCA9IGYyICh4LCBkOTYzKTsKKysgIHggPSBmMiAoeCwgZDk2NCk7CisrICB4 ID0gZjIgKHgsIGQ5NjUpOworKyAgeCA9IGYyICh4LCBkOTY2KTsKKysgIHggPSBmMiAoeCwgZDk2 Nyk7CisrICB4ID0gZjIgKHgsIGQ5NjgpOworKyAgeCA9IGYyICh4LCBkOTY5KTsKKysgIHggPSBm MiAoeCwgZDk3MCk7CisrICB4ID0gZjIgKHgsIGQ5NzEpOworKyAgeCA9IGYyICh4LCBkOTcyKTsK KysgIHggPSBmMiAoeCwgZDk3Myk7CisrICB4ID0gZjIgKHgsIGQ5NzQpOworKyAgeCA9IGYyICh4 LCBkOTc1KTsKKysgIHggPSBmMiAoeCwgZDk3Nik7CisrICB4ID0gZjIgKHgsIGQ5NzcpOworKyAg eCA9IGYyICh4LCBkOTc4KTsKKysgIHggPSBmMiAoeCwgZDk3OSk7CisrICB4ID0gZjIgKHgsIGQ5 ODApOworKyAgeCA9IGYyICh4LCBkOTgxKTsKKysgIHggPSBmMiAoeCwgZDk4Mik7CisrICB4ID0g ZjIgKHgsIGQ5ODMpOworKyAgeCA9IGYyICh4LCBkOTg0KTsKKysgIHggPSBmMiAoeCwgZDk4NSk7 CisrICB4ID0gZjIgKHgsIGQ5ODYpOworKyAgeCA9IGYyICh4LCBkOTg3KTsKKysgIHggPSBmMiAo eCwgZDk4OCk7CisrICB4ID0gZjIgKHgsIGQ5ODkpOworKyAgeCA9IGYyICh4LCBkOTkwKTsKKysg IHggPSBmMiAoeCwgZDk5MSk7CisrICB4ID0gZjIgKHgsIGQ5OTIpOworKyAgeCA9IGYyICh4LCBk OTkzKTsKKysgIHggPSBmMiAoeCwgZDk5NCk7CisrICB4ID0gZjIgKHgsIGQ5OTUpOworKyAgeCA9 IGYyICh4LCBkOTk2KTsKKysgIHggPSBmMiAoeCwgZDk5Nyk7CisrICB4ID0gZjIgKHgsIGQ5OTgp OworKyAgeCA9IGYyICh4LCBkOTk5KTsKKysgIHJldHVybiB4OworK30KKysKKysvKiB7IGRnLWZp bmFsIHsgc2Nhbi1ydGwtZHVtcC10aW1lcyAiU3RhY2sgY2xhc2ggaW5saW5lIHByb2JlcyIgMSAi cHJvX2FuZF9lcGlsb2d1ZSIgfSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tcnRsLWR1bXAt dGltZXMgIlN0YWNrIGNsYXNoIHJlc2lkdWFsIGFsbG9jYXRpb24gaW4gcHJvbG9ndWUiIDEgInBy b19hbmRfZXBpbG9ndWUiIH0gfSAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLXJ0bC1kdW1wLXRp bWVzICJTdGFjayBjbGFzaCBub3Qgbm9yZXR1cm4iIDEgInByb19hbmRfZXBpbG9ndWUiIH0gfSAq LworKworKy8qIGYzIGlzIG5vdCBhIGxlYWYKKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1ydGwtZHVt cC10aW1lcyAiU3RhY2sgY2xhc2ggbm8gZnJhbWUgcG9pbnRlciBuZWVkZWQiIDEgInByb19hbmRf ZXBpbG9ndWUiIHsgdGFyZ2V0IHsgISBmcmFtZV9wb2ludGVyX2Zvcl9ub25fbGVhZiB9IH0gfSB9 ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tcnRsLWR1bXAtdGltZXMgIlN0YWNrIGNsYXNoIGZy YW1lIHBvaW50ZXIgbmVlZGVkIiAxICJwcm9fYW5kX2VwaWxvZ3VlIiB7IHRhcmdldCB7IGZyYW1l X3BvaW50ZXJfZm9yX25vbl9sZWFmIH0gfSB9IH0gKi8KK2RpZmYgLS1naXQgYS9nY2MvdGVzdHN1 aXRlL2xpYi90YXJnZXQtc3VwcG9ydHMuZXhwIGIvZ2NjL3Rlc3RzdWl0ZS9saWIvdGFyZ2V0LXN1 cHBvcnRzLmV4cAoraW5kZXggMTAwMGYxNTM1OGIuLjhkYmVjNjYzYjE4IDEwMDY0NAorLS0tIGEv Z2NjL3Rlc3RzdWl0ZS9saWIvdGFyZ2V0LXN1cHBvcnRzLmV4cAorKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9saWIvdGFyZ2V0LXN1cHBvcnRzLmV4cAorQEAgLTgzODUsMTEgKzgzODUsMTUgQEAgcHJvYyBj aGVja19lZmZlY3RpdmVfdGFyZ2V0X2FybV9jb3Byb2M0X29rIHsgfSB7CisgcHJvYyBjaGVja19l ZmZlY3RpdmVfdGFyZ2V0X3N1cHBvcnRzX3N0YWNrX2NsYXNoX3Byb3RlY3Rpb24geyB9IHsKKyAK KyAgICAjIFRlbXBvcmFyeSB1bnRpbCB0aGUgdGFyZ2V0IGJpdHMgYXJlIGZ1bGx5IEFDSydkLgor LSMgIGlmIHsgW2lzdGFyZ2V0IGFhcmNoKi0qLSpdIHx8IFtpc3RhcmdldCB4ODZfNjQtKi0qXQor LSMgICAgICAgfHwgW2lzdGFyZ2V0IGk/ODYtKi0qXSB8fCBbaXN0YXJnZXQgczM5MCotKi0qXQor KyMgIGlmIHsgW2lzdGFyZ2V0IGFhcmNoKi0qLSpdCisrIyAgICAgICB8fCBbaXN0YXJnZXQgczM5 MCotKi0qXQorICMgICAgICAgfHwgW2lzdGFyZ2V0IHBvd2VycGMqLSotKl0gfHwgW2lzdGFyZ2V0 IHJzNjAwMCotKi0qXSB9IHsKKyAjCXJldHVybiAxCisgIyAgfQorKworKyAgICBpZiB7IFtpc3Rh cmdldCB4ODZfNjQtKi0qXSB8fCBbaXN0YXJnZXQgaT84Ni0qLSpdIH0geworKwlyZXR1cm4gMQor KyAgICB9CisgICByZXR1cm4gMAorIH0KKyAKCmRpZmYgLS1naXQgYS9nY2M3LXJoMTUxMjUyOS02 LnBhdGNoIGIvZ2NjNy1yaDE1MTI1MjktNi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi5kZDEzNjM1Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjNy1yaDE1MTI1MjktNi5w YXRjaApAQCAtMCwwICsxLDExOCBAQAorY29tbWl0IGU3NTE5MTEwODI3YTU5ZWI3Mjc1NTkxZGI2 NDBiZGJkZmQzMWJhMTUKK0F1dGhvcjogbGF3IDxsYXdAMTM4YmM3NWQtMGQwNC0wNDEwLTk2MWYt ODJlZTcyYjA1NGE0PgorRGF0ZTogICBXZWQgU2VwIDIwIDA1OjQzOjI4IDIwMTcgKzAwMDAKKwor ICAgICAgICAgICAgKiBjb21iaW5lLXN0YWNrLWFkai5jIChjb21iaW5lX3N0YWNrX2FkanVzdG1l bnRzX2Zvcl9ibG9jayk6IERvCisgICAgICAgICAgICBub3RoaW5nIGZvciBzdGFjayBhZGp1c3Rt ZW50cyB3aXRoIFJFR19TVEFDS19DSEVDSy4KKyAgICAgICAgICAgICogc2NoZWQtZGVwcy5jIChw YXJzZV9hZGRfb3JfaW5jKTogUmVqZWN0IGluc25zIHdpdGgKKyAgICAgICAgICAgIFJFR19TVEFD S19DSEVDSyBmcm9tIGRlcGVuZGVuY3kgYnJlYWtpbmcuCisgICAgICAgICAgICAqIGNvbmZpZy9p Mzg2L2kzODYuYyAocHJvX2VwaWxvZ3VlX2FkanVzdF9zdGFjayk6IFJldHVybiBpbnNuLgorICAg ICAgICAgICAgKGl4ODZfYWRqdXN0X3NhdGNrX2FuZF9wcm9iZV9zdGFja19jbGFzaCk6IEFkZCBS RUdfU1RBQ0tfTk9URXMuCisgICAgICAgICAgICAqIHJlZy1ub3Rlcy5kZWYgKFNUQUNLX0NIRUNL KTogTmV3IG5vdGUuCisgICAgCisgICAgICAgICAgICAqIGdjYy50YXJnZXQvaTM4Ni9zdGFjay1j aGVjay0xMS5jOiBOZXcgdGVzdC4KKyAgICAKKyAgICBnaXQtc3ZuLWlkOiBzdm4rc3NoOi8vZ2Nj LmdudS5vcmcvc3ZuL2djYy90cnVua0AyNTI5OTkgMTM4YmM3NWQtMGQwNC0wNDEwLTk2MWYtODJl ZTcyYjA1NGE0CisKK2RpZmYgLS1naXQgYS9nY2MvY29tYmluZS1zdGFjay1hZGouYyBiL2djYy9j b21iaW5lLXN0YWNrLWFkai5jCitpbmRleCA5ZWMxNGEzZTQ0My4uODJkNmRiYTg1NmYgMTAwNjQ0 CistLS0gYS9nY2MvY29tYmluZS1zdGFjay1hZGouYworKysrIGIvZ2NjL2NvbWJpbmUtc3RhY2st YWRqLmMKK0BAIC01MDgsNiArNTA4LDggQEAgY29tYmluZV9zdGFja19hZGp1c3RtZW50c19mb3Jf YmxvY2sgKGJhc2ljX2Jsb2NrIGJiKQorIAljb250aW51ZTsKKyAKKyAgICAgICBzZXQgPSBzaW5n bGVfc2V0X2Zvcl9jc2EgKGluc24pOworKyAgICAgIGlmIChzZXQgJiYgZmluZF9yZWdfbm90ZSAo aW5zbiwgUkVHX1NUQUNLX0NIRUNLLCBOVUxMX1JUWCkpCisrCXNldCA9IE5VTExfUlRYOworICAg ICAgIGlmIChzZXQpCisgCXsKKyAJICBydHggZGVzdCA9IFNFVF9ERVNUIChzZXQpOworZGlmZiAt LWdpdCBhL2djYy9jb25maWcvaTM4Ni9pMzg2LmMgYi9nY2MvY29uZmlnL2kzODYvaTM4Ni5jCitp bmRleCAwODhkY2EyMDAxZi4uNWFmZjliOWQxMTMgMTAwNjQ0CistLS0gYS9nY2MvY29uZmlnL2kz ODYvaTM4Ni5jCisrKysgYi9nY2MvY29uZmlnL2kzODYvaTM4Ni5jCitAQCAtMTI5MDAsNyArMTI5 MDAsNyBAQCBpeDg2X2FkZF9xdWV1ZWRfY2ZhX3Jlc3RvcmVfbm90ZXMgKHJ0eCBpbnNuKQorICAg IHplcm8gaWYgJXIxMSByZWdpc3RlciBpcyBsaXZlIGFuZCBjYW5ub3QgYmUgZnJlZWx5IHVzZWQg YW5kIHBvc2l0aXZlCisgICAgb3RoZXJ3aXNlLiAgKi8KKyAKKy1zdGF0aWMgdm9pZAorK3N0YXRp YyBydHgKKyBwcm9fZXBpbG9ndWVfYWRqdXN0X3N0YWNrIChydHggZGVzdCwgcnR4IHNyYywgcnR4 IG9mZnNldCwKKyAJCQkgICBpbnQgc3R5bGUsIGJvb2wgc2V0X2NmYSkKKyB7CitAQCAtMTI5ODcs NiArMTI5ODcsNyBAQCBwcm9fZXBpbG9ndWVfYWRqdXN0X3N0YWNrIChydHggZGVzdCwgcnR4IHNy YywgcnR4IG9mZnNldCwKKyAgICAgICBtLT5mcy5zcF9vZmZzZXQgPSBvb2Zmc2V0IC0gSU5UVkFM IChvZmZzZXQpOworICAgICAgIG0tPmZzLnNwX3ZhbGlkID0gdmFsaWQ7CisgICAgIH0KKysgIHJl dHVybiBpbnNuOworIH0KKyAKKyAvKiBGaW5kIGFuIGF2YWlsYWJsZSByZWdpc3RlciB0byBiZSB1 c2VkIGFzIGR5bmFtaWMgcmVhbGlnbiBhcmd1bWVudAorQEAgLTEzMzMzLDkgKzEzMzM0LDExIEBA IGl4ODZfYWRqdXN0X3N0YWNrX2FuZF9wcm9iZV9zdGFja19jbGFzaCAoY29uc3QgSE9TVF9XSURF X0lOVCBzaXplKQorICAgICAgIGZvciAoaSA9IHByb2JlX2ludGVydmFsOyBpIDw9IHNpemU7IGkg Kz0gcHJvYmVfaW50ZXJ2YWwpCisgCXsKKyAJICAvKiBBbGxvY2F0ZSBQUk9CRV9JTlRFUlZBTCBi eXRlcy4gICovCistCSAgcHJvX2VwaWxvZ3VlX2FkanVzdF9zdGFjayAoc3RhY2tfcG9pbnRlcl9y dHgsIHN0YWNrX3BvaW50ZXJfcnR4LAorLQkJCQkgICAgIEdFTl9JTlQgKC1wcm9iZV9pbnRlcnZh bCksIC0xLAorLQkJCQkgICAgIG0tPmZzLmNmYV9yZWcgPT0gc3RhY2tfcG9pbnRlcl9ydHgpOwor KwkgIHJ0eCBpbnNuCisrCSAgICA9IHByb19lcGlsb2d1ZV9hZGp1c3Rfc3RhY2sgKHN0YWNrX3Bv aW50ZXJfcnR4LCBzdGFja19wb2ludGVyX3J0eCwKKysJCQkJCSBHRU5fSU5UICgtUFJPQkVfSU5U RVJWQUwpLCAtMSwKKysJCQkJCSBtLT5mcy5jZmFfcmVnID09IHN0YWNrX3BvaW50ZXJfcnR4KTsK KysJICBhZGRfcmVnX25vdGUgKGluc24sIFJFR19TVEFDS19DSEVDSywgY29uc3QwX3J0eCk7Cisg CisgCSAgLyogQW5kIHByb2JlIGF0ICpzcC4gICovCisgCSAgZW1pdF9zdGFja19wcm9iZSAoc3Rh Y2tfcG9pbnRlcl9ydHgpOworZGlmZiAtLWdpdCBhL2djYy9yZWctbm90ZXMuZGVmIGIvZ2NjL3Jl Zy1ub3Rlcy5kZWYKK2luZGV4IDg3MzRkMjZlNWI0Li4xOGNmN2UzY2ZjMCAxMDA2NDQKKy0tLSBh L2djYy9yZWctbm90ZXMuZGVmCisrKysgYi9nY2MvcmVnLW5vdGVzLmRlZgorQEAgLTIyMyw2ICsy MjMsMTAgQEAgUkVHX05PVEUgKEFSR1NfU0laRSkKKyAgICBwc2V1ZG8gcmVnLiAgKi8KKyBSRUdf Tk9URSAoUkVUVVJORUQpCisgCisrLyogSW5kaWNhdGVzIHRoZSBpbnN0cnVjdGlvbiBpcyBhIHN0 YWNrIGNoZWNrIHByb2JlIHRoYXQgc2hvdWxkIG5vdAorKyAgIGJlIGNvbWJpbmVkIHdpdGggb3Ro ZXIgc3RhY2sgYWRqdXN0bWVudHMuICAqLworK1JFR19OT1RFIChTVEFDS19DSEVDSykKKysKKyAv KiBVc2VkIHRvIG1hcmsgYSBjYWxsIHdpdGggdGhlIGZ1bmN0aW9uIGRlY2wgY2FsbGVkIGJ5IHRo ZSBjYWxsLgorICAgIFRoZSBkZWNsIG1pZ2h0IG5vdCBiZSBhdmFpbGFibGUgaW4gdGhlIGNhbGwg ZHVlIHRvIHNwbGl0dGluZyBvZiB0aGUgY2FsbAorICAgIGluc24uICBUaGlzIG5vdGUgaXMgYSBT WU1CT0xfUkVGLiAgKi8KK2RpZmYgLS1naXQgYS9nY2Mvc2NoZWQtZGVwcy5jIGIvZ2NjL3NjaGVk LWRlcHMuYworaW5kZXggYjIzOTNiZjI4ZmIuLjU2NGYzZmIxNTU5IDEwMDY0NAorLS0tIGEvZ2Nj L3NjaGVkLWRlcHMuYworKysrIGIvZ2NjL3NjaGVkLWRlcHMuYworQEAgLTQ3MTcsNiArNDcxNywx MSBAQCBwYXJzZV9hZGRfb3JfaW5jIChzdHJ1Y3QgbWVtX2luY19pbmZvICptaWksIHJ0eF9pbnNu ICppbnNuLCBib29sIGJlZm9yZV9tZW0pCisgICBpZiAoUlRYX0ZSQU1FX1JFTEFURURfUCAoaW5z bikgfHwgIXBhdCkKKyAgICAgcmV0dXJuIGZhbHNlOworIAorKyAgLyogRG8gbm90IGFsbG93IGJy ZWFraW5nIGRhdGEgZGVwZW5kZW5jaWVzIGZvciBpbnNucyB0aGF0IGFyZSBtYXJrZWQKKysgICAg IHdpdGggUkVHX1NUQUNLX0NIRUNLLiAgKi8KKysgIGlmIChmaW5kX3JlZ19ub3RlIChpbnNuLCBS RUdfU1RBQ0tfQ0hFQ0ssIE5VTEwpKQorKyAgICByZXR1cm4gZmFsc2U7CisrCisgICAvKiBSZXN1 bHQgbXVzdCBiZSBzaW5nbGUgcmVnLiAgKi8KKyAgIGlmICghUkVHX1AgKFNFVF9ERVNUIChwYXQp KSkKKyAgICAgcmV0dXJuIGZhbHNlOworZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9pMzg2L3N0YWNrLWNoZWNrLTExLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4 Ni9zdGFjay1jaGVjay0xMS5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAw MDAuLjE4MzEwM2YwMWU1CistLS0gL2Rldi9udWxsCisrKysgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvaTM4Ni9zdGFjay1jaGVjay0xMS5jCitAQCAtMCwwICsxLDE2IEBACisrLyogeyBkZy1k byBjb21waWxlIH0gKi8KKysvKiB7IGRnLW9wdGlvbnMgIi1PMiAtZnN0YWNrLWNsYXNoLXByb3Rl Y3Rpb24iIH0gKi8KKysvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBzdXBwb3J0c19z dGFja19jbGFzaF9wcm90ZWN0aW9uIH0gKi8KKysKKytleHRlcm4gdm9pZCBhcmYgKHVuc2lnbmVk IGxvbmcgaW50ICosIHVuc2lnbmVkIGxvbmcgaW50ICopOworK3ZvaWQKKytmcm9iICgpCisrewor KyAgdW5zaWduZWQgbG9uZyBpbnQgbnVtWzg1OV07CisrICB1bnNpZ25lZCBsb25nIGludCBkZW5b ODU5XTsKKysgIGFyZiAoZGVuLCBudW0pOworK30KKysKKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMgInN1YnEiIDQgfSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzICJvcnEiIDMgfSB9ICovCisrCgpkaWZmIC0tZ2l0IGEvZ2NjNy1yaDE1MTI1 MjktNy5wYXRjaCBiL2djYzctcmgxNTEyNTI5LTcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uMDUxMGRjZAotLS0gL2Rldi9udWxsCisrKyBiL2djYzctcmgxNTEyNTI5 LTcucGF0Y2gKQEAgLTAsMCArMSw4OCBAQAorY29tbWl0IDkxOTI2MmJlZGZlNzhiMGQ0ZjlmZGRi ZDk4MGI4NTI0M2E4M2JmMjgKK0F1dGhvcjogbGF3IDxsYXdAMTM4YmM3NWQtMGQwNC0wNDEwLTk2 MWYtODJlZTcyYjA1NGE0PgorRGF0ZTogICBXZWQgU2VwIDIwIDIxOjU5OjUwIDIwMTcgKzAwMDAK KworICAgICAgICAgICAgKiBleHBsb3cuYyAoY29tcHV0ZV9zdGFja19jbGFzaF9wcm90ZWN0aW9u X2xvb3BfZGF0YSk6IFVzZQorICAgICAgICAgICAgQ09OU1RfSU5UX1AgaW5zdGVhZCBvZiBleHBs aWNpdCB0ZXN0LiAgVmVyaWZ5IG9iamVjdCBpcyBhCisgICAgICAgICAgICBDT05TVF9JTlRfUCBi ZWZvcmUgbG9va2luZyBhdCBJTlRWQUwuCisgICAgICAgICAgICAoYW50aV9hZGp1c3Rfc3RhY2tf YW5kX3Byb2JlX3N0YWNrX2NsYXNoKTogVXNlIENPTlNUX0lOVF9QCisgICAgICAgICAgICBpbnN0 ZWFkIG9mIGV4cGxpY2l0IHRlc3QuCisgICAgCisgICAgICAgICAgICAqIGdjYy50YXJnZXQvaTM4 Ni9zdGFjay1jaGVjay0xMS5jOiBVcGRhdGUgdGVzdCBhbmQgcmVnZXhwCisgICAgICAgICAgICBz byB0aGF0IGl0IHdvcmtzIGZvciBib3RoIGk/ODYgYW5kIHg4Nl82NC4KKyAgICAKKyAgICBnaXQt c3ZuLWlkOiBzdm4rc3NoOi8vZ2NjLmdudS5vcmcvc3ZuL2djYy90cnVua0AyNTMwMzQgMTM4YmM3 NWQtMGQwNC0wNDEwLTk2MWYtODJlZTcyYjA1NGE0CisKK2RpZmYgLS1naXQgYS9nY2MvZXhwbG93 LmMgYi9nY2MvZXhwbG93LmMKK2luZGV4IDJhNzM0MTRhYjIyLi42YWY2MzU1ZmUzMCAxMDA2NDQK Ky0tLSBhL2djYy9leHBsb3cuYworKysrIGIvZ2NjL2V4cGxvdy5jCitAQCAtMTgyMiwxMSArMTgy MiwxMSBAQCBjb21wdXRlX3N0YWNrX2NsYXNoX3Byb3RlY3Rpb25fbG9vcF9kYXRhIChydHggKnJv dW5kZWRfc2l6ZSwgcnR4ICpsYXN0X2FkZHIsCisgICAgICAgaWYgKCpyb3VuZGVkX3NpemUgPT0g Q09OU1QwX1JUWCAoUG1vZGUpKQorIAlmcHJpbnRmIChkdW1wX2ZpbGUsCisgCQkgIlN0YWNrIGNs YXNoIHNraXBwZWQgZHluYW1pYyBhbGxvY2F0aW9uIGFuZCBwcm9iaW5nIGxvb3AuXG4iKTsKKy0g ICAgICBlbHNlIGlmIChHRVRfQ09ERSAoKnJvdW5kZWRfc2l6ZSkgPT0gQ09OU1RfSU5UCisrICAg ICAgZWxzZSBpZiAoQ09OU1RfSU5UX1AgKCpyb3VuZGVkX3NpemUpCisgCSAgICAgICAmJiBJTlRW QUwgKCpyb3VuZGVkX3NpemUpIDw9IDQgKiAqcHJvYmVfaW50ZXJ2YWwpCisgCWZwcmludGYgKGR1 bXBfZmlsZSwKKyAJCSAiU3RhY2sgY2xhc2ggZHluYW1pYyBhbGxvY2F0aW9uIGFuZCBwcm9iaW5n IGlubGluZS5cbiIpOworLSAgICAgIGVsc2UgaWYgKEdFVF9DT0RFICgqcm91bmRlZF9zaXplKSA9 PSBDT05TVF9JTlQpCisrICAgICAgZWxzZSBpZiAoQ09OU1RfSU5UX1AgKCpyb3VuZGVkX3NpemUp KQorIAlmcHJpbnRmIChkdW1wX2ZpbGUsCisgCQkgIlN0YWNrIGNsYXNoIGR5bmFtaWMgYWxsb2Nh dGlvbiBhbmQgcHJvYmluZyBpbiAiCisgCQkgInJvdGF0ZWQgbG9vcC5cbiIpOworQEAgLTE5MjQs NyArMTkyNCw4IEBAIGFudGlfYWRqdXN0X3N0YWNrX2FuZF9wcm9iZV9zdGFja19jbGFzaCAocnR4 IHNpemUpCisgCisgICBpZiAocm91bmRlZF9zaXplICE9IENPTlNUMF9SVFggKFBtb2RlKSkKKyAg ICAgeworLSAgICAgIGlmIChJTlRWQUwgKHJvdW5kZWRfc2l6ZSkgPD0gNCAqIHByb2JlX2ludGVy dmFsKQorKyAgICAgIGlmIChDT05TVF9JTlRfUCAocm91bmRlZF9zaXplKQorKwkgICYmIElOVFZB TCAocm91bmRlZF9zaXplKSA8PSA0ICogcHJvYmVfaW50ZXJ2YWwpCisgCXsKKyAJICBmb3IgKEhP U1RfV0lERV9JTlQgaSA9IDA7CisgCSAgICAgICBpIDwgSU5UVkFMIChyb3VuZGVkX3NpemUpOwor QEAgLTE5NDQsNyArMTk0NSw3IEBAIGFudGlfYWRqdXN0X3N0YWNrX2FuZF9wcm9iZV9zdGFja19j bGFzaCAocnR4IHNpemUpCisgICAgICAgZWxzZQorIAl7CisgCSAgcnR4IGxvb3BfbGFiLCBlbmRf bG9vcDsKKy0JICBib29sIHJvdGF0ZV9sb29wID0gR0VUX0NPREUgKHJvdW5kZWRfc2l6ZSkgPT0g Q09OU1RfSU5UOworKwkgIGJvb2wgcm90YXRlX2xvb3AgPSBDT05TVF9JTlRfUCAocm91bmRlZF9z aXplKTsKKyAJICBlbWl0X3N0YWNrX2NsYXNoX3Byb3RlY3Rpb25fcHJvYmVfbG9vcF9zdGFydCAo Jmxvb3BfbGFiLCAmZW5kX2xvb3AsCisgCQkJCQkJCWxhc3RfYWRkciwgcm90YXRlX2xvb3ApOwor IAorQEAgLTE5ODIsNyArMTk4Myw3IEBAIGFudGlfYWRqdXN0X3N0YWNrX2FuZF9wcm9iZV9zdGFj a19jbGFzaCAocnR4IHNpemUpCisgCSBtaWdodCBob2xkIGxpdmUgZGF0YS4gIFNvIHByb2JlIGF0 ICpzcCBpZiB3ZSBrbm93IHRoYXQKKyAJIGFuIGFsbG9jYXRpb24gd2FzIG1hZGUsIG90aGVyd2lz ZSBwcm9iZSBpbnRvIHRoZSByZWQgem9uZQorIAkgd2hpY2ggaXMgb2J2aW91c2x5IHVuZGVzaXJh YmxlLiAgKi8KKy0gICAgICBpZiAoR0VUX0NPREUgKHNpemUpID09IENPTlNUX0lOVCkKKysgICAg ICBpZiAoQ09OU1RfSU5UX1AgKHNpemUpKQorIAl7CisgCSAgZW1pdF9zdGFja19wcm9iZSAoc3Rh Y2tfcG9pbnRlcl9ydHgpOworIAkgIGVtaXRfaW5zbiAoZ2VuX2Jsb2NrYWdlICgpKTsKK2RpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9zdGFjay1jaGVjay0xMS5jIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3RhY2stY2hlY2stMTEuYworaW5kZXggMTgz MTAzZjAxZTUuLmZlNWIyYzJiODQ0IDEwMDY0NAorLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2kzODYvc3RhY2stY2hlY2stMTEuYworKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2kzODYvc3RhY2stY2hlY2stMTEuYworQEAgLTIsMTUgKzIsMTcgQEAKKyAvKiB7IGRnLW9wdGlv bnMgIi1PMiAtZnN0YWNrLWNsYXNoLXByb3RlY3Rpb24iIH0gKi8KKyAvKiB7IGRnLXJlcXVpcmUt ZWZmZWN0aXZlLXRhcmdldCBzdXBwb3J0c19zdGFja19jbGFzaF9wcm90ZWN0aW9uIH0gKi8KKyAK Ky1leHRlcm4gdm9pZCBhcmYgKHVuc2lnbmVkIGxvbmcgaW50ICosIHVuc2lnbmVkIGxvbmcgaW50 ICopOworKyNpbmNsdWRlIDxzdGRpbnQuaD4KKysKKytleHRlcm4gdm9pZCBhcmYgKHVpbnQ2NF90 ICosIHVpbnQ2NF90ICopOworIHZvaWQKKyBmcm9iICgpCisgeworLSAgdW5zaWduZWQgbG9uZyBp bnQgbnVtWzg1OV07CistICB1bnNpZ25lZCBsb25nIGludCBkZW5bODU5XTsKKysgIHVpbnQ2NF90 IG51bVs4NTldOworKyAgdWludDY0X3QgZGVuWzg1OV07CisgICBhcmYgKGRlbiwgbnVtKTsKKyB9 CisgCistLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJzdWJxIiA0IH0gfSAq LworLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAib3JxIiAzIH0gfSAqLwor Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAic3ViXFtxbFxdIiA0IH0gfSAq LworKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAib3JcW3FsXF0iIDMgfSB9 ICovCisgCgpkaWZmIC0tZ2l0IGEvZ2NjNy1yaDE1MTI1MjktOC5wYXRjaCBiL2djYzctcmgxNTEy NTI5LTgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTU5YThlZQot LS0gL2Rldi9udWxsCisrKyBiL2djYzctcmgxNTEyNTI5LTgucGF0Y2gKQEAgLTAsMCArMSwzODgg QEAKK2NvbW1pdCBhNjNhZjkyNmRiMWQ2MTA5MDExZTRkZDgxYzc1MGVjZjc4NGFiNmMxCitBdXRo b3I6IGxhdyA8bGF3QDEzOGJjNzVkLTBkMDQtMDQxMC05NjFmLTgyZWU3MmIwNTRhND4KK0RhdGU6 ICAgVGh1IFNlcCAyMSAwNDozMDoxNiAyMDE3ICswMDAwCisKKyAgICAgICAgICAgICogY29uZmln L3MzOTAvczM5MC5jIChNSU5fVU5ST0xMX1BST0JFUyk6IERlZmluZS4KKyAgICAgICAgICAgIChh bGxvY2F0ZV9zdGFja19zcGFjZSk6IE5ldyBmdW5jdGlvbiwgcGFydGlhbGx5IGV4dHJhY3RlZCBm cm9tCisgICAgICAgICAgICBzMzkwX2VtaXRfcHJvbG9ndWUuCisgICAgICAgICAgICAoczM5MF9l bWl0X3Byb2xvZ3VlKTogVHJhY2sgb2Zmc2V0IHRvIG1vc3QgcmVjZW50IHN0YWNrIHByb2JlLgor ICAgICAgICAgICAgQ29kZSB0byBhbGxvY2F0ZSBzcGFjZSBtb3ZlZCBpbnRvIGFsbG9jYXRlX3N0 YWNrX3NwYWNlLgorICAgICAgICAgICAgRHVtcCBhY3Rpb25zIHdoZW4gbm8gc3RhY2sgaXMgYWxs b2NhdGVkLgorICAgICAgICAgICAgKHMzOTBfcHJvbG9ndWVfcGx1c19vZmZzZXQpOiBOZXcgZnVu Y3Rpb24uCisgICAgICAgICAgICAoczM5MF9lbWl0X3N0YWNrX3Byb2JlKTogTGlrZXdpc2UuCisg ICAgCisgICAgICAgICAgICAqIGdjYy5kZy9zdGFjay1jaGVjay01LmM6ICBBZGQgYXJndW1lbnQg Zm9yIHMzOTAuCisgICAgICAgICAgICAqIGxpYi90YXJnZXQtc3VwcG9ydHMuZXhwOgorICAgICAg ICAgICAgKGNoZWNrX2VmZmVjdGl2ZV90YXJnZXRfc3VwcG9ydHNfc3RhY2tfY2xhc2hfcHJvdGVj dGlvbik6IEVuYWJsZSBmb3IKKyAgICAgICAgICAgIHMzOTAvczM5MHggdGFyZ2V0cy4KKyAgICAK KyAgICBnaXQtc3ZuLWlkOiBzdm4rc3NoOi8vZ2NjLmdudS5vcmcvc3ZuL2djYy90cnVua0AyNTMw NDkgMTM4YmM3NWQtMGQwNC0wNDEwLTk2MWYtODJlZTcyYjA1NGE0CisKK2RpZmYgLS1naXQgYS9n Y2MvY29uZmlnL3MzOTAvczM5MC5jIGIvZ2NjL2NvbmZpZy9zMzkwL3MzOTAuYworaW5kZXggYzQw OGQ1OWVmZDIuLmM3OGYxNDU2ZGFhIDEwMDY0NAorLS0tIGEvZ2NjL2NvbmZpZy9zMzkwL3MzOTAu YworKysrIGIvZ2NjL2NvbmZpZy9zMzkwL3MzOTAuYworQEAgLTEwOTc0LDYgKzEwOTc0LDE4MyBA QCBwYXNzX3MzOTBfZWFybHlfbWFjaDo6ZXhlY3V0ZSAoZnVuY3Rpb24gKmZ1bikKKyAKKyB9IC8v IGFub24gbmFtZXNwYWNlCisgCisrLyogQ2FsY3VsYXRlIFRBUkdFVCA9IFJFRyArIE9GRlNFVCBh cyBzMzkwX2VtaXRfcHJvbG9ndWUgd291bGQgZG8gaXQuCisrICAgLSBwdXNoIHRvbyBiaWcgaW1t ZWRpYXRlcyB0byB0aGUgbGl0ZXJhbCBwb29sIGFuZCBhbm5vdGF0ZSB0aGUgcmVmcworKyAgIC0g ZW1pdCBmcmFtZSByZWxhdGVkIG5vdGVzIGZvciBzdGFjayBwb2ludGVyIGNoYW5nZXMuICAqLwor KworK3N0YXRpYyBydHgKKytzMzkwX3Byb2xvZ3VlX3BsdXNfb2Zmc2V0IChydHggdGFyZ2V0LCBy dHggcmVnLCBydHggb2Zmc2V0LCBib29sIGZyYW1lX3JlbGF0ZWRfcCkKKyt7CisrICBydHggaW5z bjsKKysgIHJ0eCBvcmlnX29mZnNldCA9IG9mZnNldDsKKysKKysgIGdjY19hc3NlcnQgKFJFR19Q ICh0YXJnZXQpKTsKKysgIGdjY19hc3NlcnQgKFJFR19QIChyZWcpKTsKKysgIGdjY19hc3NlcnQg KENPTlNUX0lOVF9QIChvZmZzZXQpKTsKKysKKysgIGlmIChvZmZzZXQgPT0gY29uc3QwX3J0eCkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbHIvbGdyICovCisrICAgIHsKKysgICAg ICBpbnNuID0gZW1pdF9tb3ZlX2luc24gKHRhcmdldCwgcmVnKTsKKysgICAgfQorKyAgZWxzZSBp ZiAoRElTUF9JTl9SQU5HRSAoSU5UVkFMIChvZmZzZXQpKSkgICAgICAgICAgICAgICAvKiBsYSAq LworKyAgICB7CisrICAgICAgaW5zbiA9IGVtaXRfbW92ZV9pbnNuICh0YXJnZXQsIGdlbl9ydHhf UExVUyAoUG1vZGUsIHJlZywKKysJCQkJCQkgICBvZmZzZXQpKTsKKysgICAgfQorKyAgZWxzZQor KyAgICB7CisrICAgICAgaWYgKCFzYXRpc2ZpZXNfY29uc3RyYWludF9LIChvZmZzZXQpICAgICAg ICAgICAgICAgIC8qIGFoaS9hZ2hpICovCisrCSAgJiYgKCFUQVJHRVRfRVhUSU1NCisrCSAgICAg IHx8ICghc2F0aXNmaWVzX2NvbnN0cmFpbnRfT3AgKG9mZnNldCkgICAgICAgLyogYWxmaS9hbGdm aSAqLworKwkJICAmJiAhc2F0aXNmaWVzX2NvbnN0cmFpbnRfT24gKG9mZnNldCkpKSkgLyogc2xm aS9zbGdmaSAqLworKwlvZmZzZXQgPSBmb3JjZV9jb25zdF9tZW0gKFBtb2RlLCBvZmZzZXQpOwor KworKyAgICAgIGlmICh0YXJnZXQgIT0gcmVnKQorKwl7CisrCSAgaW5zbiA9IGVtaXRfbW92ZV9p bnNuICh0YXJnZXQsIHJlZyk7CisrCSAgUlRYX0ZSQU1FX1JFTEFURURfUCAoaW5zbikgPSBmcmFt ZV9yZWxhdGVkX3AgPyAxIDogMDsKKysJfQorKworKyAgICAgIGluc24gPSBlbWl0X2luc24gKGdl bl9hZGQyX2luc24gKHRhcmdldCwgb2Zmc2V0KSk7CisrCisrICAgICAgaWYgKCFDT05TVF9JTlRf UCAob2Zmc2V0KSkKKysJeworKwkgIGFubm90YXRlX2NvbnN0YW50X3Bvb2xfcmVmcyAoJlBBVFRF Uk4gKGluc24pKTsKKysKKysJICBpZiAoZnJhbWVfcmVsYXRlZF9wKQorKwkgICAgYWRkX3JlZ19u b3RlIChpbnNuLCBSRUdfRlJBTUVfUkVMQVRFRF9FWFBSLAorKwkJCSAgZ2VuX3J0eF9TRVQgKHRh cmdldCwKKysJCQkJICAgICAgIGdlbl9ydHhfUExVUyAoUG1vZGUsIHRhcmdldCwKKysJCQkJCQkg ICAgIG9yaWdfb2Zmc2V0KSkpOworKwl9CisrICAgIH0KKysKKysgIFJUWF9GUkFNRV9SRUxBVEVE X1AgKGluc24pID0gZnJhbWVfcmVsYXRlZF9wID8gMSA6IDA7CisrCisrICAvKiBJZiB0aGlzIGlz IGEgc3RhY2sgYWRqdXN0bWVudCBhbmQgd2UgYXJlIGdlbmVyYXRpbmcgYSBzdGFjayBjbGFzaAor KyAgICAgcHJvbG9ndWUsIHRoZW4gYWRkIGEgUkVHX1NUQUNLX0NIRUNLIG5vdGUgdG8gc2lnbmFs IHRoYXQgdGhpcyBpbnNuCisrICAgICBzaG91bGQgYmUgbGVmdCBhbG9uZS4gICovCisrICBpZiAo ZmxhZ19zdGFja19jbGFzaF9wcm90ZWN0aW9uICYmIHRhcmdldCA9PSBzdGFja19wb2ludGVyX3J0 eCkKKysgICAgYWRkX3JlZ19ub3RlIChpbnNuLCBSRUdfU1RBQ0tfQ0hFQ0ssIGNvbnN0MF9ydHgp OworKworKyAgcmV0dXJuIGluc247CisrfQorKworKy8qIEVtaXQgYSBjb21wYXJlIGluc3RydWN0 aW9uIHdpdGggYSB2b2xhdGlsZSBtZW1vcnkgYWNjZXNzIGFzIHN0YWNrCisrICAgcHJvYmUuICBJ dCBkb2VzIG5vdCB3YXN0ZSBzdG9yZSB0YWdzIGFuZCBkb2VzIG5vdCBjbG9iYmVyIGFueQorKyAg IHJlZ2lzdGVycyBhcGFydCBmcm9tIHRoZSBjb25kaXRpb24gY29kZS4gICovCisrc3RhdGljIHZv aWQKKytzMzkwX2VtaXRfc3RhY2tfcHJvYmUgKHJ0eCBhZGRyKQorK3sKKysgIHJ0eCB0bXAgPSBn ZW5fcnR4X01FTSAoUG1vZGUsIGFkZHIpOworKyAgTUVNX1ZPTEFUSUxFX1AgKHRtcCkgPSAxOwor KyAgczM5MF9lbWl0X2NvbXBhcmUgKEVRLCBnZW5fcnR4X1JFRyAoUG1vZGUsIDApLCB0bXApOwor KyAgZW1pdF9pbnNuIChnZW5fYmxvY2thZ2UgKCkpOworK30KKysKKysvKiBVc2UgYSBydW50aW1l IGxvb3AgaWYgd2UgaGF2ZSB0byBlbWl0IG1vcmUgcHJvYmVzIHRoYW4gdGhpcy4gICovCisrI2Rl ZmluZSBNSU5fVU5ST0xMX1BST0JFUyAzCisrCisrLyogQWxsb2NhdGUgU0laRSBieXRlcyBvZiBz dGFjayBzcGFjZSwgdXNpbmcgVEVNUF9SRUcgYXMgYSB0ZW1wb3JhcnkKKysgICBpZiBuZWNlc3Nh cnkuICBMQVNUX1BST0JFX09GRlNFVCBjb250YWlucyB0aGUgb2Zmc2V0IG9mIHRoZSBjbG9zZXN0 CisrICAgcHJvYmUgcmVsYXRpdmUgdG8gdGhlIHN0YWNrIHBvaW50ZXIuCisrCisrICAgTm90ZSB0 aGF0IFNJWkUgaXMgbmVnYXRpdmUuCisrCisrICAgVGhlIHJldHVybiB2YWx1ZSBpcyB0cnVlIGlm IFRFTVBfUkVHIGhhcyBiZWVuIGNsb2JiZXJlZC4gICovCisrc3RhdGljIGJvb2wKKythbGxvY2F0 ZV9zdGFja19zcGFjZSAocnR4IHNpemUsIEhPU1RfV0lERV9JTlQgbGFzdF9wcm9iZV9vZmZzZXQs CisrCQkgICAgICBydHggdGVtcF9yZWcpCisreworKyAgYm9vbCB0ZW1wX3JlZ19jbG9iYmVyZWRf cCA9IGZhbHNlOworKyAgSE9TVF9XSURFX0lOVCBwcm9iZV9pbnRlcnZhbAorKyAgICA9IDEgPDwg UEFSQU1fVkFMVUUgKFBBUkFNX1NUQUNLX0NMQVNIX1BST1RFQ1RJT05fUFJPQkVfSU5URVJWQUwp OworKyAgSE9TVF9XSURFX0lOVCBndWFyZF9zaXplCisrICAgID0gMSA8PCBQQVJBTV9WQUxVRSAo UEFSQU1fU1RBQ0tfQ0xBU0hfUFJPVEVDVElPTl9HVUFSRF9TSVpFKTsKKysKKysgIGlmIChmbGFn X3N0YWNrX2NsYXNoX3Byb3RlY3Rpb24pCisrICAgIHsKKysgICAgICBpZiAobGFzdF9wcm9iZV9v ZmZzZXQgKyAtSU5UVkFMIChzaXplKSA8IGd1YXJkX3NpemUpCisrCWR1bXBfc3RhY2tfY2xhc2hf ZnJhbWVfaW5mbyAoTk9fUFJPQkVfU01BTExfRlJBTUUsIHRydWUpOworKyAgICAgIGVsc2UKKysJ eworKwkgIHJ0eCBvZmZzZXQgPSBHRU5fSU5UIChwcm9iZV9pbnRlcnZhbCAtIFVOSVRTX1BFUl9M T05HKTsKKysJICBIT1NUX1dJREVfSU5UIHJvdW5kZWRfc2l6ZSA9IC1JTlRWQUwgKHNpemUpICYg LXByb2JlX2ludGVydmFsOworKwkgIEhPU1RfV0lERV9JTlQgbnVtX3Byb2JlcyA9IHJvdW5kZWRf c2l6ZSAvIHByb2JlX2ludGVydmFsOworKwkgIEhPU1RfV0lERV9JTlQgcmVzaWR1YWwgPSAtSU5U VkFMIChzaXplKSAtIHJvdW5kZWRfc2l6ZTsKKysKKysJICBpZiAobnVtX3Byb2JlcyA8IE1JTl9V TlJPTExfUFJPQkVTKQorKwkgICAgeworKwkgICAgICAvKiBFbWl0IHVucm9sbGVkIHByb2JlIHN0 YXRlbWVudHMuICAqLworKworKwkgICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IG51 bV9wcm9iZXM7IGkrKykKKysJCXsKKysJCSAgczM5MF9wcm9sb2d1ZV9wbHVzX29mZnNldCAoc3Rh Y2tfcG9pbnRlcl9ydHgsCisrCQkJCQkgICAgIHN0YWNrX3BvaW50ZXJfcnR4LAorKwkJCQkJICAg ICBHRU5fSU5UICgtcHJvYmVfaW50ZXJ2YWwpLCB0cnVlKTsKKysJCSAgczM5MF9lbWl0X3N0YWNr X3Byb2JlIChnZW5fcnR4X1BMVVMgKFBtb2RlLAorKwkJCQkJCSAgICAgICBzdGFja19wb2ludGVy X3J0eCwKKysJCQkJCQkgICAgICAgb2Zmc2V0KSk7CisrCQl9CisrCSAgICAgIGR1bXBfc3RhY2tf Y2xhc2hfZnJhbWVfaW5mbyAoUFJPQkVfSU5MSU5FLCByZXNpZHVhbCAhPSAwKTsKKysJICAgIH0K KysJICBlbHNlCisrCSAgICB7CisrCSAgICAgIC8qIEVtaXQgYSBsb29wIHByb2JpbmcgdGhlIHBh Z2VzLiAgKi8KKysKKysJICAgICAgcnR4X2NvZGVfbGFiZWwgKmxvb3Bfc3RhcnRfbGFiZWwgPSBn ZW5fbGFiZWxfcnR4ICgpOworKworKwkgICAgICAvKiBGcm9tIG5vdyBvbiB0ZW1wX3JlZyB3aWxs IGJlIHRoZSBDRkEgcmVnaXN0ZXIuICAqLworKwkgICAgICBzMzkwX3Byb2xvZ3VlX3BsdXNfb2Zm c2V0ICh0ZW1wX3JlZywgc3RhY2tfcG9pbnRlcl9ydHgsCisrCQkJCQkgR0VOX0lOVCAoLXJvdW5k ZWRfc2l6ZSksIHRydWUpOworKwkgICAgICBlbWl0X2xhYmVsIChsb29wX3N0YXJ0X2xhYmVsKTsK KysKKysJICAgICAgczM5MF9wcm9sb2d1ZV9wbHVzX29mZnNldCAoc3RhY2tfcG9pbnRlcl9ydHgs CisrCQkJCQkgc3RhY2tfcG9pbnRlcl9ydHgsCisrCQkJCQkgR0VOX0lOVCAoLXByb2JlX2ludGVy dmFsKSwgZmFsc2UpOworKwkgICAgICBzMzkwX2VtaXRfc3RhY2tfcHJvYmUgKGdlbl9ydHhfUExV UyAoUG1vZGUsCisrCQkJCQkJICAgc3RhY2tfcG9pbnRlcl9ydHgsCisrCQkJCQkJICAgb2Zmc2V0 KSk7CisrCSAgICAgIGVtaXRfY21wX2FuZF9qdW1wX2luc25zIChzdGFja19wb2ludGVyX3J0eCwg dGVtcF9yZWcsCisrCQkJCSAgICAgICBHVCwgTlVMTF9SVFgsCisrCQkJCSAgICAgICBQbW9kZSwg MSwgbG9vcF9zdGFydF9sYWJlbCk7CisrCisrCSAgICAgIC8qIFdpdGhvdXQgdGhpcyBtYWtlX2Vk Z2VzIElDRWVzLiAgKi8KKysJICAgICAgSlVNUF9MQUJFTCAoZ2V0X2xhc3RfaW5zbiAoKSkgPSBs b29wX3N0YXJ0X2xhYmVsOworKwkgICAgICBMQUJFTF9OVVNFUyAobG9vcF9zdGFydF9sYWJlbCkg PSAxOworKworKwkgICAgICAvKiBUaGF0J3MgZ29pbmcgdG8gYmUgYSBOT1Agc2luY2Ugc3RhY2sg cG9pbnRlciBhbmQKKysJCSB0ZW1wX3JlZyBhcmUgc3VwcG9zZWQgdG8gYmUgdGhlIHNhbWUgaGVy ZS4gIFdlIGp1c3QKKysJCSBlbWl0IGl0IHRvIHNldCB0aGUgQ0ZBIHJlZyBiYWNrIHRvIHIxNS4g ICovCisrCSAgICAgIHMzOTBfcHJvbG9ndWVfcGx1c19vZmZzZXQgKHN0YWNrX3BvaW50ZXJfcnR4 LCB0ZW1wX3JlZywKKysJCQkJCSBjb25zdDBfcnR4LCB0cnVlKTsKKysJICAgICAgdGVtcF9yZWdf Y2xvYmJlcmVkX3AgPSB0cnVlOworKwkgICAgICBkdW1wX3N0YWNrX2NsYXNoX2ZyYW1lX2luZm8g KFBST0JFX0xPT1AsIHJlc2lkdWFsICE9IDApOworKwkgICAgfQorKworKwkgIC8qIEhhbmRsZSBh bnkgcmVzaWR1YWwgYWxsb2NhdGlvbiByZXF1ZXN0LiAgKi8KKysJICBzMzkwX3Byb2xvZ3VlX3Bs dXNfb2Zmc2V0IChzdGFja19wb2ludGVyX3J0eCwKKysJCQkJICAgICBzdGFja19wb2ludGVyX3J0 eCwKKysJCQkJICAgICBHRU5fSU5UICgtcmVzaWR1YWwpLCB0cnVlKTsKKysJICBsYXN0X3Byb2Jl X29mZnNldCArPSByZXNpZHVhbDsKKysJICBpZiAobGFzdF9wcm9iZV9vZmZzZXQgPj0gcHJvYmVf aW50ZXJ2YWwpCisrCSAgICBzMzkwX2VtaXRfc3RhY2tfcHJvYmUgKGdlbl9ydHhfUExVUyAoUG1v ZGUsCisrCQkJCQkJIHN0YWNrX3BvaW50ZXJfcnR4LAorKwkJCQkJCSBHRU5fSU5UIChyZXNpZHVh bAorKwkJCQkJCQkgIC0gVU5JVFNfUEVSX0xPTkcpKSk7CisrCisrCSAgcmV0dXJuIHRlbXBfcmVn X2Nsb2JiZXJlZF9wOworKwl9CisrICAgIH0KKysKKysgIC8qIFN1YnRyYWN0IGZyYW1lIHNpemUg ZnJvbSBzdGFjayBwb2ludGVyLiAgKi8KKysgIHMzOTBfcHJvbG9ndWVfcGx1c19vZmZzZXQgKHN0 YWNrX3BvaW50ZXJfcnR4LAorKwkJCSAgICAgc3RhY2tfcG9pbnRlcl9ydHgsCisrCQkJICAgICBz aXplLCB0cnVlKTsKKysKKysgIHJldHVybiB0ZW1wX3JlZ19jbG9iYmVyZWRfcDsKKyt9CisrCisg LyogRXhwYW5kIHRoZSBwcm9sb2d1ZSBpbnRvIGEgYnVuY2ggb2Ygc2VwYXJhdGUgaW5zbnMuICAq LworIAorIHZvaWQKK0BAIC0xMDk5OCw2ICsxMTE3NSwxOSBAQCBzMzkwX2VtaXRfcHJvbG9ndWUg KHZvaWQpCisgICBlbHNlCisgICAgIHRlbXBfcmVnID0gZ2VuX3J0eF9SRUcgKFBtb2RlLCAxKTsK KyAKKysgIC8qIFdoZW4gcHJvYmluZyBmb3Igc3RhY2stY2xhc2ggbWl0aWdhdGlvbiwgd2UgaGF2 ZSB0byB0cmFjayB0aGUgZGlzdGFuY2UKKysgICAgIGJldHdlZW4gdGhlIHN0YWNrIHBvaW50ZXIg YW5kIGNsb3Nlc3Qga25vd24gcmVmZXJlbmNlLgorKworKyAgICAgTW9zdCBvZiB0aGUgdGltZSB3 ZSBoYXZlIHRvIG1ha2UgYSB3b3JzdCBjYXN0IGFzc3VtcHRpb24uICBUaGUKKysgICAgIG9ubHkg ZXhjZXB0aW9uIGlzIHdoZW4gVEFSR0VUX0JBQ0tDSEFJTiBpcyBhY3RpdmUsIGluIHdoaWNoIGNh c2UKKysgICAgIHdlIGtub3cgKnNwIChvZmZzZXQgMCkgd2FzIHdyaXR0ZW4uICAqLworKyAgSE9T VF9XSURFX0lOVCBwcm9iZV9pbnRlcnZhbAorKyAgICA9IDEgPDwgUEFSQU1fVkFMVUUgKFBBUkFN X1NUQUNLX0NMQVNIX1BST1RFQ1RJT05fUFJPQkVfSU5URVJWQUwpOworKyAgSE9TVF9XSURFX0lO VCBsYXN0X3Byb2JlX29mZnNldAorKyAgICA9IChUQVJHRVRfQkFDS0NIQUlOCisrICAgICAgID8g KFRBUkdFVF9QQUNLRURfU1RBQ0sgPyBTVEFDS19QT0lOVEVSX09GRlNFVCAtIFVOSVRTX1BFUl9M T05HIDogMCkKKysgICAgICAgOiBwcm9iZV9pbnRlcnZhbCAtIChTVEFDS19CT1VOREFSWSAvIFVO SVRTX1BFUl9XT1JEKSk7CisrCisgICBzMzkwX3NhdmVfZ3Byc190b19mcHJzICgpOworIAorICAg LyogU2F2ZSBjYWxsIHNhdmVkIGdwcnMuICAqLworQEAgLTExMDA5LDYgKzExMTk5LDE0IEBAIHMz OTBfZW1pdF9wcm9sb2d1ZSAodm9pZCkKKyAJCQkJCSAgLSBjZnVuX2ZyYW1lX2xheW91dC5maXJz dF9zYXZlX2dwcl9zbG90KSwKKyAJCQljZnVuX2ZyYW1lX2xheW91dC5maXJzdF9zYXZlX2dwciwK KyAJCQljZnVuX2ZyYW1lX2xheW91dC5sYXN0X3NhdmVfZ3ByKTsKKysKKysgICAgICAvKiBUaGlz IGlzIG5vdCAxMDAlIGNvcnJlY3QuICBJZiB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgcmVnaXN0ZXIg c2F2ZWQsCisrCSB0aGVuIExBU1RfUFJPQkVfT0ZGU0VUIGNhbiBtb3ZlIGV2ZW4gY2xvc2VyIHRv IHNwLiAgKi8KKysgICAgICBsYXN0X3Byb2JlX29mZnNldAorKwk9IChjZnVuX2ZyYW1lX2xheW91 dC5ncHJzX29mZnNldCArCisrCSAgIFVOSVRTX1BFUl9MT05HICogKGNmdW5fZnJhbWVfbGF5b3V0 LmZpcnN0X3NhdmVfZ3ByCisrCQkJICAgICAtIGNmdW5fZnJhbWVfbGF5b3V0LmZpcnN0X3NhdmVf Z3ByX3Nsb3QpKTsKKysKKyAgICAgICBlbWl0X2luc24gKGluc24pOworICAgICB9CisgCitAQCAt MTEwMjUsNiArMTEyMjMsOCBAQCBzMzkwX2VtaXRfcHJvbG9ndWUgKHZvaWQpCisgICAgICAgaWYg KGNmdW5fZnByX3NhdmVfcCAoaSkpCisgCXsKKyAJICBzYXZlX2ZwciAoc3RhY2tfcG9pbnRlcl9y dHgsIG9mZnNldCwgaSk7CisrCSAgaWYgKG9mZnNldCA8IGxhc3RfcHJvYmVfb2Zmc2V0KQorKwkg ICAgbGFzdF9wcm9iZV9vZmZzZXQgPSBvZmZzZXQ7CisgCSAgb2Zmc2V0ICs9IDg7CisgCX0KKyAg ICAgICBlbHNlIGlmICghVEFSR0VUX1BBQ0tFRF9TVEFDSyB8fCBjZnVuLT5zdGRhcmcpCitAQCAt MTEwMzgsNiArMTEyMzgsOCBAQCBzMzkwX2VtaXRfcHJvbG9ndWUgKHZvaWQpCisgICAgICAgaWYg KGNmdW5fZnByX3NhdmVfcCAoaSkpCisgCXsKKyAJICBpbnNuID0gc2F2ZV9mcHIgKHN0YWNrX3Bv aW50ZXJfcnR4LCBvZmZzZXQsIGkpOworKwkgIGlmIChvZmZzZXQgPCBsYXN0X3Byb2JlX29mZnNl dCkKKysJICAgIGxhc3RfcHJvYmVfb2Zmc2V0ID0gb2Zmc2V0OworIAkgIG9mZnNldCArPSA4Owor IAorIAkgIC8qIElmIGY0IGFuZCBmNiBhcmUgY2FsbCBjbG9iYmVyZWQgdGhleSBhcmUgc2F2ZWQg ZHVlIHRvCitAQCAtMTEwNjAsNiArMTEyNjIsOCBAQCBzMzkwX2VtaXRfcHJvbG9ndWUgKHZvaWQp CisgCWlmIChjZnVuX2Zwcl9zYXZlX3AgKGkpKQorIAkgIHsKKyAJICAgIGluc24gPSBzYXZlX2Zw ciAoc3RhY2tfcG9pbnRlcl9ydHgsIG9mZnNldCwgaSk7CisrCSAgICBpZiAob2Zmc2V0IDwgbGFz dF9wcm9iZV9vZmZzZXQpCisrCSAgICAgIGxhc3RfcHJvYmVfb2Zmc2V0ID0gb2Zmc2V0OworIAor IAkgICAgUlRYX0ZSQU1FX1JFTEFURURfUCAoaW5zbikgPSAxOworIAkgICAgb2Zmc2V0IC09IDg7 CitAQCAtMTEwNzksMTAgKzExMjgzLDExIEBAIHMzOTBfZW1pdF9wcm9sb2d1ZSAodm9pZCkKKyAg IGlmIChjZnVuX2ZyYW1lX2xheW91dC5mcmFtZV9zaXplID4gMCkKKyAgICAgeworICAgICAgIHJ0 eCBmcmFtZV9vZmYgPSBHRU5fSU5UICgtY2Z1bl9mcmFtZV9sYXlvdXQuZnJhbWVfc2l6ZSk7Cist ICAgICAgcnR4IHJlYWxfZnJhbWVfb2ZmOworKyAgICAgIHJ0eF9pbnNuICpzdGFja19wb2ludGVy X2JhY2t1cF9sb2M7CisrICAgICAgYm9vbCB0ZW1wX3JlZ19jbG9iYmVyZWRfcDsKKyAKKyAgICAg ICBpZiAoczM5MF9zdGFja19zaXplKQorLSAgCXsKKysJeworIAkgIEhPU1RfV0lERV9JTlQgc3Rh Y2tfZ3VhcmQ7CisgCisgCSAgaWYgKHMzOTBfc3RhY2tfZ3VhcmQpCitAQCAtMTExNDgsMzUgKzEx MzUzLDM2IEBAIHMzOTBfZW1pdF9wcm9sb2d1ZSAodm9pZCkKKyAgICAgICBpZiAoczM5MF93YXJu X2R5bmFtaWNzdGFja19wICYmIGNmdW4tPmNhbGxzX2FsbG9jYSkKKyAJd2FybmluZyAoMCwgIiVx cyB1c2VzIGR5bmFtaWMgc3RhY2sgYWxsb2NhdGlvbiIsIGN1cnJlbnRfZnVuY3Rpb25fbmFtZSAo KSk7CisgCistICAgICAgLyogU2F2ZSBpbmNvbWluZyBzdGFjayBwb2ludGVyIGludG8gdGVtcCBy ZWcuICAqLworLSAgICAgIGlmIChUQVJHRVRfQkFDS0NIQUlOIHx8IG5leHRfZnByKQorLQlpbnNu ID0gZW1pdF9pbnNuIChnZW5fbW92ZV9pbnNuICh0ZW1wX3JlZywgc3RhY2tfcG9pbnRlcl9ydHgp KTsKKysgICAgICAvKiBTYXZlIHRoZSBsb2NhdGlvbiB3aGVyZSB3ZSBjb3VsZCBiYWNrdXAgdGhl IGluY29taW5nIHN0YWNrCisrCSBwb2ludGVyLiAgKi8KKysgICAgICBzdGFja19wb2ludGVyX2Jh Y2t1cF9sb2MgPSBnZXRfbGFzdF9pbnNuICgpOworIAorLSAgICAgIC8qIFN1YnRyYWN0IGZyYW1l IHNpemUgZnJvbSBzdGFjayBwb2ludGVyLiAgKi8KKysgICAgICB0ZW1wX3JlZ19jbG9iYmVyZWRf cCA9IGFsbG9jYXRlX3N0YWNrX3NwYWNlIChmcmFtZV9vZmYsIGxhc3RfcHJvYmVfb2Zmc2V0LAor KwkJCQkJCSAgIHRlbXBfcmVnKTsKKyAKKy0gICAgICBpZiAoRElTUF9JTl9SQU5HRSAoSU5UVkFM IChmcmFtZV9vZmYpKSkKKy0JeworLQkgIGluc24gPSBnZW5fcnR4X1NFVCAoc3RhY2tfcG9pbnRl cl9ydHgsCistCQkJICAgICAgZ2VuX3J0eF9QTFVTIChQbW9kZSwgc3RhY2tfcG9pbnRlcl9ydHgs CistCQkJCQkgICAgZnJhbWVfb2ZmKSk7CistCSAgaW5zbiA9IGVtaXRfaW5zbiAoaW5zbik7Cist CX0KKy0gICAgICBlbHNlCisrICAgICAgaWYgKFRBUkdFVF9CQUNLQ0hBSU4gfHwgbmV4dF9mcHIp CisgCXsKKy0JICBpZiAoIUNPTlNUX09LX0ZPUl9LIChJTlRWQUwgKGZyYW1lX29mZikpKQorLQkg ICAgZnJhbWVfb2ZmID0gZm9yY2VfY29uc3RfbWVtIChQbW9kZSwgZnJhbWVfb2ZmKTsKKy0KKy0g ICAgICAgICAgaW5zbiA9IGVtaXRfaW5zbiAoZ2VuX2FkZDJfaW5zbiAoc3RhY2tfcG9pbnRlcl9y dHgsIGZyYW1lX29mZikpOworLQkgIGFubm90YXRlX2NvbnN0YW50X3Bvb2xfcmVmcyAoJlBBVFRF Uk4gKGluc24pKTsKKysJICBpZiAodGVtcF9yZWdfY2xvYmJlcmVkX3ApCisrCSAgICB7CisrCSAg ICAgIC8qIGFsbG9jYXRlX3N0YWNrX3NwYWNlIGhhZCB0byBtYWtlIHVzZSBvZiB0ZW1wX3JlZyBh bmQKKysJCSB3ZSBuZWVkIGl0IHRvIGhvbGQgYSBiYWNrdXAgb2YgdGhlIGluY29taW5nIHN0YWNr CisrCQkgcG9pbnRlci4gIENhbGN1bGF0ZSBiYWNrIHRoYXQgdmFsdWUgZnJvbSB0aGUgY3VycmVu dAorKwkJIHN0YWNrIHBvaW50ZXIuICAqLworKwkgICAgICBzMzkwX3Byb2xvZ3VlX3BsdXNfb2Zm c2V0ICh0ZW1wX3JlZywgc3RhY2tfcG9pbnRlcl9ydHgsCisrCQkJCQkgR0VOX0lOVCAoY2Z1bl9m cmFtZV9sYXlvdXQuZnJhbWVfc2l6ZSksCisrCQkJCQkgZmFsc2UpOworKwkgICAgfQorKwkgIGVs c2UKKysJICAgIHsKKysJICAgICAgLyogYWxsb2NhdGVfc3RhY2tfc3BhY2UgZGlkbid0IGFjdHVh bGx5IHJlcXVpcmVkCisrCQkgdGVtcF9yZWcuICBJbnNlcnQgdGhlIHN0YWNrIHBvaW50ZXIgYmFj a3VwIGluc24KKysJCSBiZWZvcmUgdGhlIHN0YWNrIHBvaW50ZXIgZGVjcmVtZW50IGNvZGUgLSBr bm93aW5nIG5vdworKwkJIHRoYXQgdGhlIHZhbHVlIHdpbGwgc3Vydml2ZS4gICovCisrCSAgICAg IGVtaXRfaW5zbl9hZnRlciAoZ2VuX21vdmVfaW5zbiAodGVtcF9yZWcsIHN0YWNrX3BvaW50ZXJf cnR4KSwKKysJCQkgICAgICAgc3RhY2tfcG9pbnRlcl9iYWNrdXBfbG9jKTsKKysJICAgIH0KKyAJ fQorIAorLSAgICAgIFJUWF9GUkFNRV9SRUxBVEVEX1AgKGluc24pID0gMTsKKy0gICAgICByZWFs X2ZyYW1lX29mZiA9IEdFTl9JTlQgKC1jZnVuX2ZyYW1lX2xheW91dC5mcmFtZV9zaXplKTsKKy0g ICAgICBhZGRfcmVnX25vdGUgKGluc24sIFJFR19GUkFNRV9SRUxBVEVEX0VYUFIsCistCQkgICAg Z2VuX3J0eF9TRVQgKHN0YWNrX3BvaW50ZXJfcnR4LAorLQkJCQkgZ2VuX3J0eF9QTFVTIChQbW9k ZSwgc3RhY2tfcG9pbnRlcl9ydHgsCistCQkJCQkgICAgICAgcmVhbF9mcmFtZV9vZmYpKSk7Cist CisgICAgICAgLyogU2V0IGJhY2tjaGFpbi4gICovCisgCisgICAgICAgaWYgKFRBUkdFVF9CQUNL Q0hBSU4pCitAQCAtMTEyMDAsNiArMTE0MDYsOCBAQCBzMzkwX2VtaXRfcHJvbG9ndWUgKHZvaWQp CisgCSAgZW1pdF9jbG9iYmVyIChhZGRyKTsKKyAJfQorICAgICB9CisrICBlbHNlIGlmIChmbGFn X3N0YWNrX2NsYXNoX3Byb3RlY3Rpb24pCisrICAgIGR1bXBfc3RhY2tfY2xhc2hfZnJhbWVfaW5m byAoTk9fUFJPQkVfTk9fRlJBTUUsIGZhbHNlKTsKKyAKKyAgIC8qIFNhdmUgZnBycyA4IC0gMTUg KDY0IGJpdCBBQkkpLiAgKi8KKyAKK2RpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy9z dGFjay1jaGVjay01LmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9zdGFjay1jaGVjay01LmMKK2lu ZGV4IDIxNzFkOWI2YzIzLi4zMTc4ZjVkOGNlNSAxMDA2NDQKKy0tLSBhL2djYy90ZXN0c3VpdGUv Z2NjLmRnL3N0YWNrLWNoZWNrLTUuYworKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvc3RhY2st Y2hlY2stNS5jCitAQCAtMyw2ICszLDEwIEBACisgLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10 YXJnZXQgc3VwcG9ydHNfc3RhY2tfY2xhc2hfcHJvdGVjdGlvbiB9ICovCisgCisgCisrLyogT3Ro ZXJ3aXNlIHRoZSBTLzM5MCBiYWNrLWVuZCBtaWdodCBzYXZlIHRoZSBzdGFjayBwb2ludGVyIGlu IGYyICgpCisrICAgaW50byBhbiBGUFIuICAqLworKy8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25z ICItbXNvZnQtZmxvYXQiIHsgdGFyZ2V0IHsgczM5MHgtKi0qIH0gfSB9ICovCisrCisgZXh0ZXJu IHZvaWQgZm9vIChjaGFyICopOworIGV4dGVybiB2b2lkIGJhciAodm9pZCk7CisgCitkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9saWIvdGFyZ2V0LXN1cHBvcnRzLmV4cCBiL2djYy90ZXN0c3Vp dGUvbGliL3RhcmdldC1zdXBwb3J0cy5leHAKK2luZGV4IDhkYmVjNjYzYjE4Li5lOWYwMzg4NmNh NiAxMDA2NDQKKy0tLSBhL2djYy90ZXN0c3VpdGUvbGliL3RhcmdldC1zdXBwb3J0cy5leHAKKysr KyBiL2djYy90ZXN0c3VpdGUvbGliL3RhcmdldC1zdXBwb3J0cy5leHAKK0BAIC04Mzg2LDEyICs4 Mzg2LDEyIEBAIHByb2MgY2hlY2tfZWZmZWN0aXZlX3RhcmdldF9zdXBwb3J0c19zdGFja19jbGFz aF9wcm90ZWN0aW9uIHsgfSB7CisgCisgICAgIyBUZW1wb3JhcnkgdW50aWwgdGhlIHRhcmdldCBi aXRzIGFyZSBmdWxseSBBQ0snZC4KKyAjICBpZiB7IFtpc3RhcmdldCBhYXJjaCotKi0qXQorLSMg ICAgICAgfHwgW2lzdGFyZ2V0IHMzOTAqLSotKl0KKyAjICAgICAgIHx8IFtpc3RhcmdldCBwb3dl cnBjKi0qLSpdIHx8IFtpc3RhcmdldCByczYwMDAqLSotKl0gfSB7CisgIwlyZXR1cm4gMQorICMg IH0KKyAKKy0gICAgaWYgeyBbaXN0YXJnZXQgeDg2XzY0LSotKl0gfHwgW2lzdGFyZ2V0IGk/ODYt Ki0qXSB9IHsKKysgICAgaWYgeyBbaXN0YXJnZXQgeDg2XzY0LSotKl0gfHwgW2lzdGFyZ2V0IGk/ ODYtKi0qXSAKKysJICB8fCBbaXN0YXJnZXQgczM5MCotKi0qXSB9IHsKKyAJcmV0dXJuIDEKKyAg ICAgfQorICAgcmV0dXJuIDAKCmRpZmYgLS1naXQgYS9nY2M3LXJoMTUxMjUyOS05LnBhdGNoIGIv Z2NjNy1yaDE1MTI1MjktOS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li45YzFmMjYwCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjNy1yaDE1MTI1MjktOS5wYXRjaApAQCAt MCwwICsxLDQ5IEBACitjb21taXQgMjMzYTlkZWY1Y2QwYjcwZjEyODhmZjU3Y2U2N2Q5ZDVkNWQ3 Zjg0NQorQXV0aG9yOiBsYXcgPGxhd0AxMzhiYzc1ZC0wZDA0LTA0MTAtOTYxZi04MmVlNzJiMDU0 YTQ+CitEYXRlOiAgIFRodSBTZXAgMjEgMjI6MDM6NTkgMjAxNyArMDAwMAorCisgICAgICAgICAg ICAqIGNvbmZpZy9pMzg2L2kzODYuYyAoaXg4Nl9hZGp1c3Rfc3RhY2tfYW5kX3Byb2JlX3N0YWNr X2NsYXNoKToKKyAgICAgICAgICAgIEZpeCBkdW1wIG91dHB1dCBpZiB0aGUgb25seSBzdGFjayBz cGFjZSBpcyBmb3IgcHVzaGVkIHJlZ2lzdGVycy4KKyAgICAKKyAgICAgICAgICAgICogbGliL3Rh cmdldC1zdXBwb3J0cy5leHAKKyAgICAgICAgICAgIChjaGVja19lZmZlY3RpdmVfdGFyZ2V0X2Zy YW1lX3BvaW50ZXJfZm9yX25vbl9sZWFmKTogQWRkCisgICAgICAgICAgICBjYXNlIGZvciB4ODYg U29sYXJpcy4KKyAgICAKKyAgICBnaXQtc3ZuLWlkOiBzdm4rc3NoOi8vZ2NjLmdudS5vcmcvc3Zu L2djYy90cnVua0AyNTMwODIgMTM4YmM3NWQtMGQwNC0wNDEwLTk2MWYtODJlZTcyYjA1NGE0CisK K2RpZmYgLS1naXQgYS9nY2MvY29uZmlnL2kzODYvaTM4Ni5jIGIvZ2NjL2NvbmZpZy9pMzg2L2kz ODYuYworaW5kZXggNWFmZjliOWQxMTMuLjA4Njg0OGIyYzczIDEwMDY0NAorLS0tIGEvZ2NjL2Nv bmZpZy9pMzg2L2kzODYuYworKysrIGIvZ2NjL2NvbmZpZy9pMzg2L2kzODYuYworQEAgLTEzMjg3 LDcgKzEzMjg3LDEzIEBAIGl4ODZfYWRqdXN0X3N0YWNrX2FuZF9wcm9iZV9zdGFja19jbGFzaCAo Y29uc3QgSE9TVF9XSURFX0lOVCBzaXplKQorICAgICAgbm8gcHJvYmVzIGFyZSBuZWVkZWQuICAq LworICAgaWYgKCFzaXplKQorICAgICB7CistICAgICAgZHVtcF9zdGFja19jbGFzaF9mcmFtZV9p bmZvIChOT19QUk9CRV9OT19GUkFNRSwgZmFsc2UpOworKyAgICAgIC8qIEhvd2V2ZXIsIHRoZSBh bGxvY2F0aW9uIG9mIHNwYWNlIHZpYSBwdXNoZXMgZm9yIHJlZ2lzdGVyCisrCSBzYXZlcyBjb3Vs ZCBiZSB2aWV3ZWQgYXMgYWxsb2NhdGluZyBzcGFjZSwgYnV0IHdpdGhvdXQgdGhlCisrCSBuZWVk IHRvIHByb2JlLiAgKi8KKysgICAgICBpZiAobS0+ZnJhbWUubnJlZ3MgfHwgbS0+ZnJhbWUubnNz ZXJlZ3MgfHwgZnJhbWVfcG9pbnRlcl9uZWVkZWQpCisrICAgICAgICBkdW1wX3N0YWNrX2NsYXNo X2ZyYW1lX2luZm8gKE5PX1BST0JFX1NNQUxMX0ZSQU1FLCB0cnVlKTsKKysgICAgICBlbHNlCisr CWR1bXBfc3RhY2tfY2xhc2hfZnJhbWVfaW5mbyAoTk9fUFJPQkVfTk9fRlJBTUUsIGZhbHNlKTsK KyAgICAgICByZXR1cm47CisgICAgIH0KKyAKK2RpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2xp Yi90YXJnZXQtc3VwcG9ydHMuZXhwIGIvZ2NjL3Rlc3RzdWl0ZS9saWIvdGFyZ2V0LXN1cHBvcnRz LmV4cAoraW5kZXggZTlmMDM4ODZjYTYuLmNiNThhMmJlMzVmIDEwMDY0NAorLS0tIGEvZ2NjL3Rl c3RzdWl0ZS9saWIvdGFyZ2V0LXN1cHBvcnRzLmV4cAorKysrIGIvZ2NjL3Rlc3RzdWl0ZS9saWIv dGFyZ2V0LXN1cHBvcnRzLmV4cAorQEAgLTg0MDMsNiArODQwMywxMiBAQCBwcm9jIGNoZWNrX2Vm ZmVjdGl2ZV90YXJnZXRfZnJhbWVfcG9pbnRlcl9mb3Jfbm9uX2xlYWYgeyB9IHsKKyAgIGlmIHsg W2lzdGFyZ2V0IGFhcmNoKi0qLSpdIH0geworIAlyZXR1cm4gMQorICAgfQorKworKyAgIyBTb2xh cmlzL3g4NiBkZWZhdWx0cyB0byAtZm5vLW9taXQtZnJhbWUtcG9pbnRlci4KKysgIGlmIHsgW2lz dGFyZ2V0IGk/ODYtKi1zb2xhcmlzKl0gfHwgW2lzdGFyZ2V0IHg4Nl82NC0qLXNvbGFyaXMqXSB9 IHsKKysgICAgcmV0dXJuIDEKKysgIH0KKysKKyAgIHJldHVybiAwCisgfQorIAo=