From kde-core-devel Thu Aug 31 21:16:27 2000 From: Nicolas HADACEK Date: Thu, 31 Aug 2000 21:16:27 +0000 To: kde-core-devel Subject: patch for ksirtet X-MARC-Message: https://marc.info/?l=kde-core-devel&m=96775658713435 MIME-Version: 1 Content-Type: multipart/mixed; boundary="--8323328-490024195-967763722=:8973" This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --8323328-490024195-967763722=:8973 Content-Type: TEXT/PLAIN; charset=US-ASCII Hi, a (big) patch for ksirtet : it includes the previous patch I sent to the list (which was not applied) and some more bug fix. eventually review and apply ... cu, Nicolas --8323328-490024195-967763722=:8973 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="ksirtet_diff_2.0_b" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: SW5kZXg6IENIQU5HRUxPRw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNT IGZpbGU6IC9ob21lL2tkZS9rZGVnYW1lcy9rc2lydGV0L0NIQU5HRUxPRyx2 DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjkNCmRpZmYgLXUgLXIxLjI5IENI QU5HRUxPRw0KLS0tIENIQU5HRUxPRwkyMDAwLzA2LzE5IDE5OjMyOjA3CTEu MjkNCisrKyBDSEFOR0VMT0cJMjAwMC8wOC8zMSAyMToxMDo1Nw0KQEAgLTEs MyArMSwxNCBAQA0KKzIuMC40DQorICogZml4ZWQgYmVoYXZpb3VyIG9mIGJ1 dHRvbiBpbiBoaWdoc2NvcmVzIGRpYWxvZyB3aGVuIGVudGVyaW5nIHRoZSB3 aW5uZSBuYW1lDQorICAgW3Byb3Bvc2VkIGJ5IExvdHRhIElua292YWFyYV0N CisgKiBmaXhlZCByZXBhaW50IHByb2JsZW1zIG9mIHBpZWNlIHNoYWRvdyBb c29tZSBmbGlja2VyIGFkZGVkIHRob3VnaF0NCisgKiBrZXlzIGJpbmRpbmdz IHNob3VsZCBiZSBub3cgc2F2ZWQgW2R1ZSB0byBzb21lIG9ic2N1cmUgYnVn IGluDQorICAga2RlbGlicy9rYWNjZWwgOyB0aGFua3MgdG8gQ2hyaXMgP10N CisNCisyLjAuMw0KKyAqIHVzZSBvZiBLTWFpbldpbmRvdyArIGludGVyY2Vw dGlvbiBvZiBMYXlvdXRIaW50IGV2ZW50cyB0byBmaXggdGhlIHJlc2l6ZQ0K KyAgIHByb2JsZW1zIC4uLg0KKw0KIDIuMC4yDQogICogdmVyc2lvbmluZyB0 aGUgWE1MR1VJIGZpbGVzDQogICogcmVtb3ZlZCAodW5zdGFuZGFyZCkgdGl0 bGUgaW4gZGlhbG9ncw0KSW5kZXg6IE1ha2VmaWxlLmFtDQo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2hvbWUva2RlL2tkZWdhbWVzL2tz aXJ0ZXQvTWFrZWZpbGUuYW0sdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjQ0 DQpkaWZmIC11IC1yMS40NCBNYWtlZmlsZS5hbQ0KLS0tIE1ha2VmaWxlLmFt CTIwMDAvMDgvMTQgMTA6MzY6NTgJMS40NA0KKysrIE1ha2VmaWxlLmFtCTIw MDAvMDgvMzEgMjE6MTA6NTcNCkBAIC0yOCw0ICsyOCwzIEBADQogbWVzc2Fn ZXM6IHJjLmNwcA0KIAkkKEVYVFJBQ1RSQykgKi8qLnJjID4+IHJjLmNwcA0K IAkkKFhHRVRURVhUKSAqLmNwcCAqLmggLW8gJChwb2Rpcikva3NpcnRldC5w b3QNCi0NCkluZGV4OiBSRUFETUUNCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N ClJDUyBmaWxlOiAvaG9tZS9rZGUva2RlZ2FtZXMva3NpcnRldC9SRUFETUUs dg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjE2DQpkaWZmIC11IC1yMS4xNiBS RUFETUUNCi0tLSBSRUFETUUJMjAwMC8wNS8xMCAxODo1NDoyOQkxLjE2DQor KysgUkVBRE1FCTIwMDAvMDgvMzEgMjE6MTA6NTcNCkBAIC0xLDQgKzEsNCBA QA0KLUtTSVJURVQgOiB0aGUgS0RFIHRldHJpcyBjbG9uZQ0KK0tTSVJURVQg ICA6IHRoZSBLREUgdGV0cmlzICAgY2xvbmUNCiBLRk9VTEVHR1MgOiB0aGUg S0RFIHB1eW9wdXlvIGNsb25lDQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KIENvcHlyaWdodCAoYykgMTk5NSAgICAgICBFaXJpayBF TkcNCkluZGV4OiBUT0RPDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1Mg ZmlsZTogL2hvbWUva2RlL2tkZWdhbWVzL2tzaXJ0ZXQvVE9ETyx2DQpyZXRy aWV2aW5nIHJldmlzaW9uIDEuMjMNCmRpZmYgLXUgLXIxLjIzIFRPRE8NCi0t LSBUT0RPCTIwMDAvMDYvMTkgMTk6MzI6MDcJMS4yMw0KKysrIFRPRE8JMjAw MC8wOC8zMSAyMToxMDo1Nw0KQEAgLTQsOCArNCw4IEBADQogICogYmV0dGVy IGdhbWUgYm9hcmQgLSBhZGRpdGlvbm5hbCBpbmZvcw0KICAqIGJhY2tncm91 bmQgaW1hZ2UgKyBtb3JlIGFuaW1hdGlvbnMNCiAgKiBtdWx0aXBsYXllcnMg aGlnaHNjb3JlIChpbmNyZW1lbnQgc2NvcmVzIGZvciBtdWx0aXBsZSBwbGF5 cykNCi0gKiBnbG9iYWwgaGlnaHNjb3JlIChmb3IgYSBjb21wdXRlciArIGZv ciB0aGUgd29ybGQgPykNCi0gKiBzb2x2ZSB0aGUgZG91YmxlIHVpLnJjIGZp bGUgaGFjaw0KKyAqIGdsb2JhbCBoaWdoc2NvcmUgKGZvciBhIGNvbXB1dGVy ID8pDQorICogc29sdmUgdGhlIGRvdWJsZSB1aS5yYyBmaWxlcyBoYWNrDQog ICogcGF1c2Ugd2hlbiBoaWdoc2NvcmVzIGRpYWxvZyBpcyBhc2tlZA0KICAq IGtleSBwcm9maWxlcyAoPykNCiAgKiBhaSBjb25maWd1cmF0aW9uIGRpYWxv ZyBpcyBub3QgY3V0ZSB3aGVuIHJlc2l6ZWQgKC4uLikNCkBAIC0yMyw2ICsy Myw2IEBADQogS05PV04gQlVHUzoNCiANCiAgKiBzdGFuZGFyZCAoaWUgbWVu dSkgYWN0aW9ucyBrZXliaW5kaW5ncyBhcmUgbm90IGNvbmZpZ3VyYWJsZSB3 aXRoIGRpYWxvZw0KLSAqIHJlcGFpbnQgYnVnIGluIHNoYWRvdyAoaWYgdGhl IHdpbmRvdyBpcyBoaWRkZW4gdGhlbiByZXNob3duKQ0KLSAqIG9jY2FzaW9u YWwgc2VnZmF1bHQgaW4gbXVsdGlwbGF5ZXIgd2l6YXJkDQotDQorICogZmxp Y2tlciBpbiBzaGFkb3cNCisgKiBvY2Nhc2lvbmFsIHNlZ2ZhdWx0IGluIG11 bHRpcGxheWVyIHdpemFyZCAvIHdpdGgga2V5YmluZGluZyBjaGFuZ2VzDQor ICogYSBzdHJhbmdlIGJhciB1bmRlciB0aGUgbWVudSAuLi4NCkluZGV4OiBi b2FyZC5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2hv bWUva2RlL2tkZWdhbWVzL2tzaXJ0ZXQvYm9hcmQuaCx2DQpyZXRyaWV2aW5n IHJldmlzaW9uIDEuMjYNCmRpZmYgLXUgLXIxLjI2IGJvYXJkLmgNCi0tLSBi b2FyZC5oCTIwMDAvMDYvMTUgMTg6MDQ6MDgJMS4yNg0KKysrIGJvYXJkLmgJ MjAwMC8wOC8zMSAyMToxMDo1OA0KQEAgLTEwOCw3ICsxMDgsNyBAQA0KIAl2 b2lkIF9hZnRlclJlbW92ZShib29sIGZpcnN0KTsNCiAJdm9pZCBzdGFydFRp bWVyKCk7DQogCXZvaWQgc2hvd05leHRQaWVjZShib29sIHNob3cpICAgeyBl bWl0IHNob3dOZXh0UGllY2VTaWduYWwoIXNob3cpOyB9DQotCXZvaWQgc2hv d1BpZWNlQ29uZmlnKGJvb2wgc2hvdykgeyBlbWl0IHNob3dQaWVjZUNvbmZp Z1NpZ25hbCghc2hvdyk7IH0NCisJdm9pZCBzaG93UGllY2VDb25maWcoYm9v bCBzaG93KSB7IGVtaXQgc2hvd1BpZWNlQ29uZmlnU2lnbmFsKHNob3cpOyB9 DQogCXZvaWQgc2hvd0JvYXJkKGJvb2wgc2hvdyk7DQogCXZvaWQgc2hvd0Nh bnZhcyhRQ2FudmFzICpjLCBib29sIHNob3cpOw0KIA0KSW5kZXg6IGRpYWxv Z3MuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2hv bWUva2RlL2tkZWdhbWVzL2tzaXJ0ZXQvZGlhbG9ncy5jcHAsdg0KcmV0cmll dmluZyByZXZpc2lvbiAxLjI0DQpkaWZmIC11IC1yMS4yNCBkaWFsb2dzLmNw cA0KLS0tIGRpYWxvZ3MuY3BwCTIwMDAvMDYvMTkgMTk6MzI6MDcJMS4yNA0K KysrIGRpYWxvZ3MuY3BwCTIwMDAvMDgvMzEgMjE6MTA6NTkNCkBAIC0xMjks NyArMTI5LDYgQEANCiAJCQlxbGUtPnNldE1pbmltdW1TaXplKHFsZS0+Zm9u dE1ldHJpY3MoKS5tYXhXaWR0aCgpKjEwLA0KIAkJCQkJCQkJcWxlLT5zaXpl SGludCgpLmhlaWdodCgpKTsNCiAJCQlxbGUtPnNldEZvY3VzKCk7DQotCQkJ Y29ubmVjdChxbGUsIFNJR05BTChyZXR1cm5QcmVzc2VkKCkpLCBTTE9UKHdy aXRlTmFtZSgpKSk7DQogCQkJZ2wtPmFkZFdpZGdldChxbGUsIGorMSwgMSk7 DQogCQl9DQogCQkNCkBAIC0xNDksMjggKzE0OCwyNSBAQA0KIA0KIC8qIGJ1 dHRvbiAqLw0KIAllbmFibGVCdXR0b25TZXBhcmF0b3IoVFJVRSk7DQotCWlm IChnb2kpIGVuYWJsZUJ1dHRvbihDbG9zZSwgRkFMU0UpOw0KKwlpZiAoZ29p KSBzZXRCdXR0b25UZXh0KENsb3NlLCBpMThuKCJTZXQgbmFtZSIpKTsNCisJ X2Nsb3NlID0gIWdvaTsNCiB9DQogDQotdm9pZCBIaWdoU2NvcmVzOjp3cml0 ZU5hbWUoKQ0KLXsNCi0JS0NvbmZpZyAqY29uZiA9IGthcHAtPmNvbmZpZygp Ow0KLQljb25mLT5zZXRHcm91cChIU19HUlApOw0KLQlRU3RyaW5nIHN0ciA9 IHFsZS0+dGV4dCgpOw0KLQlpZiAoIHN0ci5sZW5ndGgoKSApIGNvbmYtPndy aXRlRW50cnkoSFNOYW1lKGJFbnRyeSksIHN0cik7DQotCWNvbmYtPnN5bmMo KTsNCi0Jc3RyID0gY29uZi0+cmVhZEVudHJ5KEhTTmFtZShiRW50cnkpKTsN Ci0JcWxlLT5zZXRUZXh0KHN0cik7DQotCWVuYWJsZUJ1dHRvbihDbG9zZSwg VFJVRSk7DQotfQ0KLQ0KIHZvaWQgSGlnaFNjb3Jlczo6cmVqZWN0KCkNCiB7 DQotCWlmICggcWxlICYmIHFsZS0+aXNFbmFibGVkKCkgKSB7DQotCQlxbGUt PnNldEVuYWJsZWQoRkFMU0UpOw0KLQkJZm9jdXNOZXh0UHJldkNoaWxkKFRS VUUpOyAvLyBzb3J0IG9mIGhhY2sgKHdvbmRlciB3aHkgaXRzIGNhbGwgaW4N Ci0JCSAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2V0RW5hYmxlZChG QUxTRSkgZG9lcyBub3RoaW5nIC4uLikNCi0JfSBlbHNlIEtEaWFsb2dCYXNl OjpyZWplY3QoKTsNCisJaWYgKF9jbG9zZSkgS0RpYWxvZ0Jhc2U6OnJlamVj dCgpOw0KKwllbHNlIHsNCisJCUtDb25maWcgKmNvbmYgPSBrYXBwLT5jb25m aWcoKTsNCisJCWNvbmYtPnNldEdyb3VwKEhTX0dSUCk7DQorCQlRU3RyaW5n IHN0ciA9IHFsZS0+dGV4dCgpOw0KKwkJaWYgKCBzdHIubGVuZ3RoKCkgKSBj b25mLT53cml0ZUVudHJ5KEhTTmFtZShiRW50cnkpLCBzdHIpOw0KKwkJY29u Zi0+c3luYygpOw0KKwkJc3RyID0gY29uZi0+cmVhZEVudHJ5KEhTTmFtZShi RW50cnkpKTsNCisJCXFsZS0+c2V0VGV4dChzdHIpOw0KKwkJcWxlLT5zZXRF bmFibGVkKGZhbHNlKTsNCisJCXNldEJ1dHRvblRleHQoQ2xvc2UsIGkxOG4o IkNsb3NlIikpOw0KKwkJX2Nsb3NlID0gdHJ1ZTsNCisJfQ0KIH0NCiANCiAv Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpJbmRleDogZGlh bG9ncy5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2hv bWUva2RlL2tkZWdhbWVzL2tzaXJ0ZXQvZGlhbG9ncy5oLHYNCnJldHJpZXZp bmcgcmV2aXNpb24gMS4xNA0KZGlmZiAtdSAtcjEuMTQgZGlhbG9ncy5oDQot LS0gZGlhbG9ncy5oCTIwMDAvMDYvMTUgMTg6MDQ6MDgJMS4xNA0KKysrIGRp YWxvZ3MuaAkyMDAwLzA4LzMxIDIxOjEwOjU5DQpAQCAtMjMsMTEgKzIzLDEx IEBADQogDQogIHByaXZhdGUgc2xvdHM6DQogICAgIHZvaWQgcmVqZWN0KCk7 DQotCXZvaWQgd3JpdGVOYW1lKCk7DQogCQ0KICBwcml2YXRlOg0KIAlpbnQg ICAgICAgIGJFbnRyeTsNCiAJUUxpbmVFZGl0ICpxbGU7DQorCWJvb2wgICAg ICAgX2Nsb3NlOw0KIA0KIAlzdGF0aWMgdWludCBuYkVudHJpZXMoKTsNCiB9 Ow0KSW5kZXg6IGZlX21haW4uY3BwDQo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 DQpSQ1MgZmlsZTogL2hvbWUva2RlL2tkZWdhbWVzL2tzaXJ0ZXQvZmVfbWFp bi5jcHAsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjMNCmRpZmYgLXUgLXIx LjMgZmVfbWFpbi5jcHANCi0tLSBmZV9tYWluLmNwcAkyMDAwLzA0LzAzIDIy OjA2OjQ5CTEuMw0KKysrIGZlX21haW4uY3BwCTIwMDAvMDgvMzEgMjE6MTA6 NTkNCkBAIC00MSw1ICs0MSw1IEBADQogaW50IG1haW4oaW50IGFyZ2MsIGNo YXIgKiphcmd2KQ0KIHsNCiAJcmV0dXJuIGdlbmVyaWNfbWFpbihhcmdjLCBh cmd2LCAia2ZvdWxlZ2dzIiwgSTE4Tl9OT09QKCJLRm91bEVnZ3MiKSwNCi0J CQkJCQlGRV9ERVNDUklQVElPTiwgVFJVRSk7DQorCQkJCQkJRkVfREVTQ1JJ UFRJT04pOw0KIH0NCkluZGV4OiBmaWVsZC5jcHANCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0NClJDUyBmaWxlOiAvaG9tZS9rZGUva2RlZ2FtZXMva3NpcnRl dC9maWVsZC5jcHAsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjMwDQpkaWZm IC11IC1yMS4zMCBmaWVsZC5jcHANCi0tLSBmaWVsZC5jcHAJMjAwMC8wNi8x NSAxODowNDowOAkxLjMwDQorKysgZmllbGQuY3BwCTIwMDAvMDgvMzEgMjE6 MTA6NTkNCkBAIC05OCw3ICs5OCw3IEBADQogCXNoYWRvdyA9IG5ldyBTaGFk b3coYm9hcmQsIGJvYXJkLT5mcmFtZVdpZHRoKCksIHRoaXMpOw0KIAlRV2hh dHNUaGlzOjphZGQoc2hhZG93LCBpMThuKCJTaGFkb3cgb2YgdGhlIGN1cnJl bnQgcGllY2UiKSk7DQogCWNvbm5lY3QoYm9hcmQsICBTSUdOQUwoc2hvd1Bp ZWNlQ29uZmlnU2lnbmFsKGJvb2wpKSwNCi0JCQlzaGFkb3csIFNMT1QocmVk cmF3KGJvb2wpKSk7DQorCQkJc2hhZG93LCBTTE9UKHJldmVhbChib29sKSkp Ow0KIAljb25uZWN0KGJvYXJkLCBTSUdOQUwoYmxvY2tTaXplQ2hhbmdlZCgp KSwNCiAJCQlzaGFkb3csIFNMT1QoYmxvY2tTaXplQ2hhbmdlZCgpKSk7DQog CXRvcC0+YWRkV2lkZ2V0KHNoYWRvdywgMiwgMik7DQpJbmRleDogbWFpbi5j cHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvaG9tZS9r ZGUva2RlZ2FtZXMva3NpcnRldC9tYWluLmNwcCx2DQpyZXRyaWV2aW5nIHJl dmlzaW9uIDEuNDcNCmRpZmYgLXUgLXIxLjQ3IG1haW4uY3BwDQotLS0gbWFp bi5jcHAJMjAwMC8wOC8xNCAxODo1NjoyMQkxLjQ3DQorKysgbWFpbi5jcHAJ MjAwMC8wOC8zMSAyMToxMTowMA0KQEAgLTE1LDYgKzE1LDcgQEANCiAjaW5j bHVkZSAiZGlhbG9ncy5oIg0KIA0KIE1haW5XaWRnZXQ6Ok1haW5XaWRnZXQo KQ0KKzogS01haW5XaW5kb3coMCkNCiB7DQogCWluc3RhbGxFdmVudEZpbHRl cih0aGlzKTsNCiAJS0FjY2VsICprYWNjID0gbmV3IEtBY2NlbCh0aGlzKTsN CkBAIC01Niw4ICs1Nyw3IEBADQogDQogCWNyZWF0ZUdVSSgpOw0KIAlyZWFk U2V0dGluZ3MoKTsNCi0Jc2V0VmlldyhpbnRlcik7DQotCXVwZGF0ZVJlY3Rz KCk7IC8vICMjIyMgc2hvdWxkIGJlIGluIEtUTWFpbldpbmRvdzo6c2V0Vmll dw0KKwlzZXRDZW50cmFsV2lkZ2V0KGludGVyKTsNCiB9DQogDQogTWFpbldp ZGdldDo6fk1haW5XaWRnZXQoKQ0KQEAgLTczLDggKzczLDEzIEBADQogCQlp ZiAoICgoUU1vdXNlRXZlbnQgKillKS0+YnV0dG9uKCkhPVJpZ2h0QnV0dG9u ICkgcmV0dXJuIEZBTFNFOw0KIAkJcG9wdXAgPSAoUVBvcHVwTWVudSopZmFj dG9yeSgpLT5jb250YWluZXIoInBvcHVwIiwgdGhpcyk7DQogCQlwb3B1cC0+ cG9wdXAoUUN1cnNvcjo6cG9zKCkpOw0KLQkJcmV0dXJuIFRSVUU7DQotCSBk ZWZhdWx0IDogcmV0dXJuIEZBTFNFOw0KKwkJcmV0dXJuIHRydWU7DQorCWNh c2UgUUV2ZW50OjpMYXlvdXRIaW50Og0KKwkJc2V0Rml4ZWRTaXplKG1pbmlt dW1TaXplKCkpOyAvLyBiZWNhdXNlIFFNYWluV2luZG93IGFuZCBLTWFpbldp bmRvdw0KKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBkbyBu b3QgbWFuYWdlIGZpeGVkIGNlbnRyYWwgd2lkZ2V0IGFuZA0KKwkJICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBoaWRkZW4gbWVudWJhciAuLi4N CisJCXJldHVybiBmYWxzZTsNCisJIGRlZmF1bHQgOiByZXR1cm4gZmFsc2U7 DQogCX0NCiB9DQogDQpAQCAtOTQsMTUgKzk5LDggQEANCiB7DQogCWJvb2wg YiA9IE1FTlVCQVJfQUNUSU9OLT5pc0NoZWNrZWQoKTsNCiAJaWYgKGIpIG1l bnVCYXIoKS0+c2hvdygpOw0KLQllbHNlIHsNCi0JCW1lbnVCYXIoKS0+aGlk ZSgpOw0KKwllbHNlIG1lbnVCYXIoKS0+aGlkZSgpOw0KIA0KLQkJLy8gIyMj IyBzb3J0IG9mIGhhY2sgOiBiZWNhdXNlIEtUTWFpbldpbmRvdyBkb2VzIG5v dCBtYW5hZ2UgY29ycmVjdGx5DQotCQkvLyBtYWluIHdpZGdldCB3aXRoIGEg Zml4ZWQgbGF5b3V0DQotCQl1cGRhdGVSZWN0cygpOw0KLQkJYWRqdXN0U2l6 ZSgpOw0KLQl9DQotDQogCU9wdGlvbkRpYWxvZzo6d3JpdGVNZW51VmlzaWJs ZShiKTsNCiB9DQogDQpAQCAtMTE5LDEzICsxMTcsMTMgQEANCiANCiAvLy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogaW50IGdlbmVyaWNf bWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YsIGNvbnN0IGNoYXIgKm5hbWUs DQotCQkJCSBjb25zdCBjaGFyICp0ck5hbWUsIGNvbnN0IGNoYXIgKmRlc2Ny aXB0aW9uLCBib29sIGNhdGFsb2cpDQorCQkJCSBjb25zdCBjaGFyICp0ck5h bWUsIGNvbnN0IGNoYXIgKmRlc2NyaXB0aW9uKQ0KIHsNCiAJS0xvY2FsZTo6 c2V0TWFpbkNhdGFsb2d1ZSgia3NpcnRldCIpOw0KIAlLQWJvdXREYXRhIGFi b3V0RGF0YShuYW1lLCB0ck5hbWUsIExPTkdfVkVSU0lPTiwgZGVzY3JpcHRp b24sDQogCQkJCQkJIEtBYm91dERhdGE6OkxpY2Vuc2VfR1BMLCBDT1BZTEVG VCwgMCwgSE9NRVBBR0UpOw0KIAlhYm91dERhdGEuYWRkQXV0aG9yKCJFaXJp ayBFbmciLCBJMThOX05PT1AoIkNvcmUgZW5naW5lIikpOw0KLQlhYm91dERh dGEuYWRkQXV0aG9yKCJOaWNvbGFzIEhhZGFjZWsiLCAwLCAiaGFkYWNla0Br ZGUub3JnIik7DQorCWFib3V0RGF0YS5hZGRBdXRob3IoIk5pY29sYXMgSGFk YWNlayIsIDAsIEVNQUlMKTsNCiAJS0NtZExpbmVBcmdzOjppbml0KGFyZ2Ms IGFyZ3YsICZhYm91dERhdGEpOw0KIAkNCiAJS0FwcGxpY2F0aW9uIGE7DQpJ bmRleDogbWFpbi5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmls ZTogL2hvbWUva2RlL2tkZWdhbWVzL2tzaXJ0ZXQvbWFpbi5oLHYNCnJldHJp ZXZpbmcgcmV2aXNpb24gMS4yMQ0KZGlmZiAtdSAtcjEuMjEgbWFpbi5oDQot LS0gbWFpbi5oCTIwMDAvMDQvMTEgMjE6NTU6MzAJMS4yMQ0KKysrIG1haW4u aAkyMDAwLzA4LzMxIDIxOjExOjAwDQpAQCAtMSwxMiArMSwxMiBAQA0KICNp Zm5kZWYgTUFJTl9IDQogI2RlZmluZSBNQUlOX0gNCiANCi0jaW5jbHVkZSA8 a3RtYWlud2luZG93Lmg+DQorI2luY2x1ZGUgPGttYWlud2luZG93Lmg+DQog DQogY2xhc3MgSW50ZXJmYWNlOw0KIGNsYXNzIEdQaWVjZUluZm87DQogDQot Y2xhc3MgTWFpbldpZGdldCA6IHB1YmxpYyBLVE1haW5XaW5kb3cNCitjbGFz cyBNYWluV2lkZ2V0IDogcHVibGljIEtNYWluV2luZG93DQogew0KICBRX09C SkVDVA0KIA0KQEAgLTMwLDcgKzMwLDcgQEANCiB9Ow0KIA0KIGludCBnZW5l cmljX21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpu YW1lLA0KLQkJCQkgY29uc3QgY2hhciAqdHJOYW1lLCBjb25zdCBjaGFyICpk ZXNjcmlwdGlvbiwgYm9vbCBjYXRhbG9nKTsNCisJCQkJIGNvbnN0IGNoYXIg KnRyTmFtZSwgY29uc3QgY2hhciAqZGVzY3JpcHRpb24pOw0KIEdQaWVjZUlu Zm8gKmNyZWF0ZVBpZWNlSW5mbygpOw0KIA0KICNlbmRpZiAvLyBNQUlOX0gN CkluZGV4OiBtaXNjX3VpLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K UkNTIGZpbGU6IC9ob21lL2tkZS9rZGVnYW1lcy9rc2lydGV0L21pc2NfdWku Y3BwLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMQ0KZGlmZiAtdSAtcjEu MTEgbWlzY191aS5jcHANCi0tLSBtaXNjX3VpLmNwcAkyMDAwLzA2LzE1IDE4 OjA0OjA4CTEuMTENCisrKyBtaXNjX3VpLmNwcAkyMDAwLzA4LzMxIDIxOjEx OjAwDQpAQCAtMzcsMTAgKzM3LDcgQEANCiAJCQkgICBRV2lkZ2V0ICpwYXJl bnQsIGNvbnN0IGNoYXIgKm5hbWUpDQogOiBRV2lkZ2V0KHBhcmVudCwgbmFt ZSksIF9zaG93bihGQUxTRSksIF9wKHRoaXMpLA0KICAgX3hPZmZzZXQoeE9m ZnNldCksIF9ib2FyZChib2FyZCkNCi17DQotCV9zdGF0ZS5yZXNpemUoX2Jv YXJkLT5tYXRyaXgoKS53aWR0aCgpKTsNCi0JX3N0YXRlLmZpbGwoRkFMU0Up Ow0KLX0NCit7fQ0KIA0KIFFTaXplIFNoYWRvdzo6c2l6ZUhpbnQoKSBjb25z dA0KIHsNCkBAIC01NSw0OSArNTIsMjUgQEANCiANCiB2b2lkIFNoYWRvdzo6 cmV2ZWFsKGJvb2wgcmV2ZWFsKQ0KIHsNCi0JaWYgKCBfc2hvd249PXJldmVh bCApIHJldHVybjsNCiAJX3Nob3duID0gcmV2ZWFsOw0KLQlkcmF3KCFfc2hv d24sIEZBTFNFKTsNCi19DQotDQotdm9pZCBTaGFkb3c6OnJlZHJhdyhib29s IGNsZWFyKQ0KLXsNCi0JaWYgKGNsZWFyKSByZXR1cm47IC8vIHRoZSBzdGF0 ZSBpcyBzYXZlZCBzbyBubyBjbGVhcmluZyBuZWVkZWQNCi0JaWYgKF9zaG93 bikgZHJhdyhGQUxTRSwgVFJVRSk7DQorCXVwZGF0ZSgpOw0KIH0NCiANCiB2 b2lkIFNoYWRvdzo6cGFpbnRFdmVudChRUGFpbnRFdmVudCAqKQ0KIHsNCi0J aWYgKF9zaG93bikgZHJhdyhGQUxTRSwgRkFMU0UpOw0KLX0NCisJaWYgKCAh X3Nob3duICkgcmV0dXJuOw0KIA0KLXZvaWQgU2hhZG93OjpkcmF3KGJvb2wg ZXJhc2UsIGJvb2wgc21hcnQpDQotew0KIAljb25zdCBQaWVjZSAqcGllY2Ug PSBfYm9hcmQtPmN1cnJlbnRQaWVjZSgpOw0KIAl1aW50IHBmID0gcGllY2Ut Pm1pblgoKSArIF9ib2FyZC0+Y3VycmVudENvbCgpOw0KIAl1aW50IHBsID0g cGYgKyBwaWVjZS0+d2lkdGgoKSAtIDE7DQotDQotCWZvciAodWludCBpPTA7 IGk8X2JvYXJkLT5tYXRyaXgoKS53aWR0aCgpOyBpKyspIHsNCi0JCWlmICgg KGk8cGYgfHwgaT5wbCkgfHwgZXJhc2UgKSB7DQotCQkJaWYgKF9zdGF0ZVtp XSkgeyAgIC8vIG5lZWQgZGVsZXRpb24NCi0JCQlfc3RhdGVbaV0gPSBGQUxT RTsNCi0JCQlkcmF3QmxvY2soaSwgVFJVRSk7DQotCQkJfQ0KLQkJfSBlbHNl IGlmICggIV9zdGF0ZVtpXSB8fCAhc21hcnQgKSB7IC8vIG5lZWQgZHJhd2lu Zw0KLQkJCQlfc3RhdGVbaV0gPSBUUlVFOw0KLQkJCQlkcmF3QmxvY2soaSwg RkFMU0UpOw0KLQkJfQ0KKwkNCisJZm9yICh1aW50IGk9cGY7IGk8PXBsOyBp KyspIHsNCisJCVFSZWN0IHIoX3hPZmZzZXQgKyBpICogX2JvYXJkLT5ibG9j a1dpZHRoKCkgKyAxICwgMCwNCisJCQkJX2JvYXJkLT5ibG9ja1dpZHRoKCkg LSAyLCBTSEFET1dfSEVJR0hUKTsNCisJCV9wLnNldEJydXNoKGJsYWNrKTsN CisJCV9wLnNldFBlbihibGFjayk7DQorCQlfcC5kcmF3UmVjdChyKTsNCiAJ fQ0KLX0NCi0NCi12b2lkIFNoYWRvdzo6ZHJhd0Jsb2NrKHVpbnQgaSwgYm9v bCBlcmFzZSkNCi17DQotCVFSZWN0IHIoX3hPZmZzZXQgKyBpICogX2JvYXJk LT5ibG9ja1dpZHRoKCkgKyAxICwgMCwNCi0JCQlfYm9hcmQtPmJsb2NrV2lk dGgoKSAtIDIsIFNIQURPV19IRUlHSFQpOw0KLQlRQ29sb3IgY29sID0gKGVy YXNlID8gYmFja2dyb3VuZENvbG9yKCkgOiBibGFjayk7DQotCV9wLnNldEJy dXNoKGNvbCk7DQotCV9wLnNldFBlbihjb2wpOw0KLQlfcC5kcmF3UmVjdChy KTsNCiB9DQogDQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Lw0KSW5kZXg6IG1pc2NfdWkuaA0KPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K UkNTIGZpbGU6IC9ob21lL2tkZS9rZGVnYW1lcy9rc2lydGV0L21pc2NfdWku aCx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTANCmRpZmYgLXUgLXIxLjEw IG1pc2NfdWkuaA0KLS0tIG1pc2NfdWkuaAkyMDAwLzA2LzE1IDE4OjA0OjA4 CTEuMTANCisrKyBtaXNjX3VpLmgJMjAwMC8wOC8zMSAyMToxMTowMA0KQEAg LTQzLDI1ICs0MywxOSBAQA0KIA0KIAlRU2l6ZSBzaXplSGludCgpIGNvbnN0 Ow0KIAlRU2l6ZVBvbGljeSBzaXplUG9saWN5KCkgY29uc3Q7DQotDQotCXZv aWQgcmV2ZWFsKGJvb2wgcmV2ZWFsID0gVFJVRSk7DQogCQ0KICBwdWJsaWMg c2xvdHM6DQotICAgIHZvaWQgcmVkcmF3KGJvb2wgY2xlYXIpOw0KIAl2b2lk IGJsb2NrU2l6ZUNoYW5nZWQoKSB7IHVwZGF0ZUdlb21ldHJ5KCk7IH0NCisJ dm9pZCByZXZlYWwoYm9vbCBoaWRlKTsNCiAJDQogIHByb3RlY3RlZDoNCi0J dm9pZCBwYWludEV2ZW50KFFQYWludEV2ZW50ICplKTsNCisJdm9pZCBwYWlu dEV2ZW50KFFQYWludEV2ZW50ICopOw0KIA0KICBwcml2YXRlOg0KIAlib29s ICAgICAgICAgX3Nob3duOw0KIAlRUGFpbnRlciAgICAgX3A7DQogCWludCAg ICAgICAgIF94T2Zmc2V0Ow0KIAljb25zdCBCb2FyZCAqX2JvYXJkOw0KLQlR QXJyYXk8Ym9vbD4gX3N0YXRlOw0KLQ0KLQl2b2lkIGRyYXcoYm9vbCBoaWRl LCBib29sIHNtYXJ0KTsNCi0Jdm9pZCBkcmF3QmxvY2sodWludCBpLCBib29s IGVyYXNlKTsNCiB9Ow0KIA0KIC8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLw0KSW5kZXg6IHRsX21haW4uY3BwDQo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09DQpSQ1MgZmlsZTogL2hvbWUva2RlL2tkZWdhbWVzL2tzaXJ0ZXQv dGxfbWFpbi5jcHAsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjINCmRpZmYg LXUgLXIxLjIgdGxfbWFpbi5jcHANCi0tLSB0bF9tYWluLmNwcAkyMDAwLzA0 LzAyIDE1OjQ1OjI5CTEuMg0KKysrIHRsX21haW4uY3BwCTIwMDAvMDgvMzEg MjE6MTE6MDANCkBAIC00MCw1ICs0MCw1IEBADQogaW50IG1haW4oaW50IGFy Z2MsIGNoYXIgKiphcmd2KQ0KIHsNCiAJcmV0dXJuIGdlbmVyaWNfbWFpbihh cmdjLCBhcmd2LCAia3NpcnRldCIsIEkxOE5fTk9PUCgiS1NpcnRldCIpLA0K LQkJCQkJCVRMX0RFU0NSSVBUSU9OLCBGQUxTRSk7DQorCQkJCQkJVExfREVT Q1JJUFRJT04pOw0KIH0NCkluZGV4OiB2ZXJzaW9uLmgNCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0NClJDUyBmaWxlOiAvaG9tZS9rZGUva2RlZ2FtZXMva3Np cnRldC92ZXJzaW9uLmgsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjMwDQpk aWZmIC11IC1yMS4zMCB2ZXJzaW9uLmgNCi0tLSB2ZXJzaW9uLmgJMjAwMC8w Ni8xOSAxOTozMjowNwkxLjMwDQorKysgdmVyc2lvbi5oCTIwMDAvMDgvMzEg MjE6MTE6MDANCkBAIC0xLDYgKzEsNyBAQA0KLSNkZWZpbmUgVkVSU0lPTiAg ICAgICIyLjAuMiINCi0jZGVmaW5lIExPTkdfVkVSU0lPTiAiMi4wLjIgKDE5 IEp1bmUgMjAwMCkiDQorI2RlZmluZSBWRVJTSU9OICAgICAgIjIuMC40Ig0K KyNkZWZpbmUgTE9OR19WRVJTSU9OICIyLjAuNCAoMzEgQXVndXN0IDIwMDAp Ig0KICNkZWZpbmUgQ09QWUxFRlQgICAgICIoYykgMTk5NSwgRWlyaWsgRW5k XG4oYykgMTk5Ni0yMDAwLCBOaWNvbGFzIEhhZGFjZWsiDQorI2RlZmluZSBF TUFJTCAgICAgICAgImhhZGFjZWtAa2RlLm9yZyINCiAjZGVmaW5lIEhPTUVQ QUdFICAgICAiaHR0cDovL2F6aHlkLmZyZWUuZnIvS0RFL2tzaXJ0ZXQucGhw MyINCiANCiAjZGVmaW5lIFRMX01VTFRJUExBWUVSX0lEICIwMDMiDQpJbmRl eDogbGliL0NIQU5HRUxPRw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNT IGZpbGU6IC9ob21lL2tkZS9rZGVnYW1lcy9rc2lydGV0L2xpYi9DSEFOR0VM T0csdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjcNCmRpZmYgLXUgLXIxLjcg Q0hBTkdFTE9HDQotLS0gbGliL0NIQU5HRUxPRwkxOTk5LzEyLzE0IDE4OjM1 OjQ5CTEuNw0KKysrIGxpYi9DSEFOR0VMT0cJMjAwMC8wOC8zMSAyMToxMTow MA0KQEAgLTEsMyArMSw2IEBADQorMC4xLjcNCisgICogcmVzaXplIGhhbmRs ZSByZW1vdmVkIGZyb20gc3RhdHVzYmFyIG9mIG5ldG1tZXRpbmcgZGlhbG9n DQorDQogMC4xLjYNCiAgICogZml4ZWQgYSBidWcgaW4ga2V5IGNvbmZpZ3Vy YXRpb24NCiAgICogcGxheWVycyBuYW1lIGFjY2VzcyBpbXByb3ZlZA0KQEAg LTE3LDEzICsyMCwxMyBAQA0KICAgKiBiaWcgY2xlYW5pbmcgOiB0aGUgbGli cmFyeSByZXN0cmljdHMgaXRzZWxmIHRvIGRhdGEgdHJhbnNwb3J0IGJldHdl ZW4NCiAgICAgYm9hcmRzIGFuZCB0byBnYW1lIGNvbmZpZ3VyYXRpb24uIFRo ZSBsaWJyYXJ5IGRvZXNuJ3Qgd2FudCB0byBhbmQgZG9lc24ndA0KIAloYXZl IHRvIG1hbmFnZSB0aGluZ3MgbGlrZSBnYW1lIHBhdXNlIG9yIGdhbWVvdmVy IG9mIGEgc3BlY2lmaWMgcGxheWVyIC4uLg0KLQlhbGwgdGhvc2UgdGhpbmdz IG11c3QgYmUgZG9uZSBieSB0aGUgZ2FtZSBwcm9ncmFtbWVyLiANCisJYWxs IHRob3NlIHRoaW5ncyBtdXN0IGJlIGRvbmUgYnkgdGhlIGdhbWUgcHJvZ3Jh bW1lci4NCiANCiAwLjEuMw0KICAgKiBwb3J0ZWQgdG8gUVQgMi4wIChoYXJk IHdheSA6IG5vdyB3ZSBzZW5kIFFTdHJpbmcgb3ZlciB0aGUgbmV0d29yayA6 KQ0KIA0KIDAuMS4yDQotICAqIGZpbmFsbHkgVEhFIGJ1ZyBoYXMgYmVlbiBm b3VuZCAoZWlnaHQgbW9udGhzIGxhdGVyKSAhIA0KKyAgKiBmaW5hbGx5IFRI RSBidWcgaGFzIGJlZW4gZm91bmQgKGVpZ2h0IG1vbnRocyBsYXRlcikgIQ0K IAlzbyBuZXR3b3JrIGdhbWUgc2VlbXMgc3RhYmxlLg0KICAgKiBsb3RzIG9m IGJ1ZyBmaXhlcw0KIA0KSW5kZXg6IGxpYi9SRUFETUUNCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0NClJDUyBmaWxlOiAvaG9tZS9rZGUva2RlZ2FtZXMva3Np cnRldC9saWIvUkVBRE1FLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS41DQpk aWZmIC11IC1yMS41IFJFQURNRQ0KLS0tIGxpYi9SRUFETUUJMTk5OS8wOC8x NSAxNjo0MzoyMQkxLjUNCisrKyBsaWIvUkVBRE1FCTIwMDAvMDgvMzEgMjE6 MTE6MDENCkBAIC0xLDYgKzEsNiBAQA0KIGtkZW11bHRpcGxheWVycyBsaWJy YXJ5DQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi1Db3B5cmlnaHQgKGMp IDE5OTgtMTk5OSBOaWNvbGFzIEhBREFDRUsgKGhhZGFjZWtAa2RlLm9yZykN CitDb3B5cmlnaHQgKGMpIDE5OTgtMjAwMCBOaWNvbGFzIEhBREFDRUsgKGhh ZGFjZWtAa2RlLm9yZykNCiBEaXN0cmlidXRlZCB1bmRlciB0aGUgR05VIExp YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KIA0KIEludHJvZHVjdGlv bg0KSW5kZXg6IGxpYi9UT0RPDQo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpS Q1MgZmlsZTogL2hvbWUva2RlL2tkZWdhbWVzL2tzaXJ0ZXQvbGliL1RPRE8s dg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjgNCmRpZmYgLXUgLXIxLjggVE9E Tw0KLS0tIGxpYi9UT0RPCTIwMDAvMDQvMTQgMjA6MzE6NDgJMS44DQorKysg bGliL1RPRE8JMjAwMC8wOC8zMSAyMToxMTowMQ0KQEAgLTEsMTIgKzEsMTUg QEANCiAqIGNoYW5nZSB0byBhbiBldmVudC1kcml2ZW4gZGF0YSBleGNoYW5n ZSBmcmFtZXdvcmsgKGl0IGN1cnJlbnRseSB1c2VzIGEgdGltZXINCiAgIG9u IHRoZSBzZXJ2ZXIgc2lkZSkgLT4gd2UgcHJvYmFibHkgbmVlZCBhIHdheSB0 byBlbnN1cmUgY2xpZW50cyBhcmUgbm90DQogICBkZWFkICg/KQ0KKyogdXNl IG9mIFFTb2NrZXQgYW5kIFFTb2NrZXRTZXJ2ZXIgKD8pDQogDQogKiBncmlk L3JvdyBsYXlvdXQgb2YgYm9hcmRzDQogKiBiZXR0ZXIgZGlhbG9ncyAuLi4N Ci0qIHN0YXR1c2JhciBoYW5kbGUgaW4gTmV0TWVldGluZyBkb2VzIG5vdCBs b29rIGdvb2QgLi4uDQorKiByZW1vdmUgdGhlIG5ldG1lZXRpbmcgdGl0bGUN CisqIGNoZWNrIHRoZSA2NGJpdCBmaXggaW4gInR5cGVzLmgiDQogDQotKiB1 c2VyIGhlbHANCisqIHVzZXIgaGVscCAoYWRkIGhlbHAgYnV0dG9uIHRvIHdp emFyZCkNCisqIHRvb2x0aXBzICEhDQogKiBBUEkgZG9jdW1lbnRhdGlvbg0K IA0KICogaGVhdnkgdGVzdCBvZiBuZXR3b3JrIGdhbWUNCkluZGV4OiBsaWIv a2V5cy5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAv aG9tZS9rZGUva2RlZ2FtZXMva3NpcnRldC9saWIva2V5cy5jcHAsdg0KcmV0 cmlldmluZyByZXZpc2lvbiAxLjMNCmRpZmYgLXUgLXIxLjMga2V5cy5jcHAN Ci0tLSBsaWIva2V5cy5jcHAJMTk5OS8xMi8xNCAxODozNTo0OQkxLjMNCisr KyBsaWIva2V5cy5jcHAJMjAwMC8wOC8zMSAyMToxMTowMQ0KQEAgLTEsNiAr MSw3IEBADQogI2luY2x1ZGUgImtleXMuaCINCiANCiAjaW5jbHVkZSA8a2tl eWRpYWxvZy5oPg0KKyNpbmNsdWRlIDxrZGVidWcuaD4NCiANCiBLZXlDb25u ZWN0aW9uOjp+S2V5Q29ubmVjdGlvbigpDQogew0KQEAgLTU2LDcgKzU3LDgg QEANCiAJa24ua2FjYy0+c2V0Q29uZmlnR3JvdXAoUVN0cmluZygiS2V5cyAo JTEgaHVtYW5zKSIpLmFyZyhuYkh1bWFucykpOw0KIAlmb3IgKHVpbnQgaD0w OyBoPG5iSHVtYW5zOyBoKyspDQogCQlmb3IgKHVpbnQgaT0wOyBpPGtuLnNp emUoKTsgaSsrKQ0KLQkJICAgIGtuLmthY2MtPmluc2VydEl0ZW0oa24uZGVz Y3JpcHRpb24oaCwgaSksIGtuLmFjdGlvbihoLCBpKSwgY29kZShoLCBpKSk7 DQorCQkgICAga24ua2FjYy0+aW5zZXJ0SXRlbShrbi5kZXNjcmlwdGlvbiho LCBpKSwga24uYWN0aW9uKGgsIGkpLA0KKwkJCQkJCQkJY29kZShoLCBpKSk7 DQogCWtuLmthY2MtPnJlYWRTZXR0aW5ncygpOw0KIH0NCiANCkluZGV4OiBs aWIvbWVldGluZy5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBm aWxlOiAvaG9tZS9rZGUva2RlZ2FtZXMva3NpcnRldC9saWIvbWVldGluZy5j cHAsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjExDQpkaWZmIC11IC1yMS4x MSBtZWV0aW5nLmNwcA0KLS0tIGxpYi9tZWV0aW5nLmNwcAkxOTk5LzEyLzE0 IDE4OjM1OjQ5CTEuMTENCisrKyBsaWIvbWVldGluZy5jcHAJMjAwMC8wOC8z MSAyMToxMTowMg0KQEAgLTU0LDYgKzU0LDcgQEANCiAJDQogICAgIC8vIHN0 YXR1cyBiYXINCiAJc3RhdHVzID0gbmV3IFFTdGF0dXNCYXIocGxhaW5QYWdl KCkpOw0KKwlzdGF0dXMtPnNldFNpemVHcmlwRW5hYmxlZChmYWxzZSk7DQog CXRvcC0+YWRkV2lkZ2V0KHN0YXR1cyk7DQogDQogCS8vIGJ1dHRvbnMNCkBA IC0xMzAsNyArMTMxLDcgQEANCiB2b2lkIE5ldE1lZXRpbmc6OmNsZWFuUmVq ZWN0KGNvbnN0IFFTdHJpbmcgJnN0cikNCiB7DQogCXNtLmNsZWFuKCk7IC8v IHJlbW92ZSB0aGUgc29ja2V0cyBpbW1lZGlhdGx5IHRvIGF2b2lkIHBvc3Np YmxlIGZ1cnRoZXIgbWVzcw0KLQlpZiAoICFzdHIuaXNFbXB0eSgpICkgDQor CWlmICggIXN0ci5pc0VtcHR5KCkgKQ0KIAkJS01lc3NhZ2VCb3g6OmluZm9y bWF0aW9uKHRoaXMsIHN0ciwgY2FwdGlvbigpKTsNCiAJS0RpYWxvZ0Jhc2U6 OnJlamVjdCgpOw0KIH0NCkBAIC0zNjMsNyArMzY0LDcgQEANCiAJLy8gc2Vu ZCBpdCB0byBhbGwgb3RoZXIgY2xpZW50cyAoTW9kX1R5cGUgZmxhZyArIFR5 cGVJbmZvIHN0cnVjdCkNCiAJc20uY29tbW9uV3JpdGluZ1N0cmVhbSgpIDw8 IE1vZF9UeXBlIDw8IHRpOw0KIAl3cml0ZVRvQWxsKGkpOw0KLX0gDQorfQ0K IA0KIHZvaWQgU2VydmVyTmV0TWVldGluZzo6dGV4dENoYW5nZWQoY29uc3Qg UVN0cmluZyAmdGV4dCkNCiB7DQpJbmRleDogbGliL21wX2ludGVyZmFjZS5o DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2hvbWUva2Rl L2tkZWdhbWVzL2tzaXJ0ZXQvbGliL21wX2ludGVyZmFjZS5oLHYNCnJldHJp ZXZpbmcgcmV2aXNpb24gMS42DQpkaWZmIC11IC1yMS42IG1wX2ludGVyZmFj ZS5oDQotLS0gbGliL21wX2ludGVyZmFjZS5oCTIwMDAvMDIvMTcgMTI6MjY6 NDIJMS42DQorKysgbGliL21wX2ludGVyZmFjZS5oCTIwMDAvMDgvMzEgMjE6 MTE6MDMNCkBAIC00NywxMSArNDcsMTEgQEANCiAJIGNvbnN0IGNoYXIgKmh1 bWFuU2V0dGluZ1Nsb3QsICpBSVNldHRpbmdTbG90Ow0KIH0gTVBHYW1lSW5m bzsNCiANCi0vKiogDQorLyoqDQogICogVGhlIE1QSW50ZXJmYWNlIGNsYXNz IGlzIHVzZWZ1bCBmb3IgbXVsdGlwbGF5ZXJzIGdhbWUNCiAgKiBtYW5hZ2Vt ZW50LiBFYWNoIGdhbWUgaXMgcmVwcmVzZW50ZWQgYnkgYSBjbGFzcyB5b3Ug aGF2ZSBpbmhlcml0ZWQNCiAgKiBmcm9tIHRoZSBAcmVmIE1QQm9hcmQgY2xh c3MuDQotICogDQorICoNCiAgKiBNdWx0aXBsYXllcnMgZ2FtZXMgY2FuIHRh a2UgcGxhY2Ugd2l0aCBzZXZlcmFsIChodW1hbnMgb3IgZXZlbnR1YWxseQ0K ICAqIEFJcykgcGxheWVycyBvbiB0aGUgc2FtZSBjb21wdXRlciAodGhleSB1 c2UgdGhlIHNhbWUga2V5Ym9hcmQgYW5kIGhhdmUNCiAgKiBlYWNoIGEgQHJl ZiBNUEJvYXJkIHdpZGdldCBvbiB0aGUgc2NyZWVuKSBvci9hbmQgbmV0d29y ayBwbGF5ZXJzLg0KQEAgLTYwLDcgKzYwLDcgQEANCiAgKiBiZXR3ZWVuIHRo ZSBwbGF5ZXJzIGFuZCB0byBzZW5kIHRoZSBrZXlib2FyZCBldmVudHMgdG8g dGhlIHJpZ2h0DQogICogQHJlZiBNUEJvYXJkLiBTbyBtdWx0aXBsYXllcnMg Z2FtZSBzaG91bGQgYmUgY29tcGxldGVseSB0cmFuc3BhcmVudA0KICAqIGZy b20geW91ciBwb2ludCBvZiB2aWV3Lg0KLSAqIA0KKyAqDQogICogTm90ZSA6 IFRoZSBkYXRhIGV4Y2hhbmdlIGlzIGRvbmUgaW4gYmFja2dyb3VuZCB3aXRo IGEgdGltZXIgY2FsbGluZyBhdCBnaXZlbg0KICAqIGludGVydmFscyB0aGUg cmVhZC93cml0ZSBtZXRob2RzLiBPYnZpb3VzbHkgdGhpcyBraW5kIG9mIHRo aW5ncyBjYW4gYmUgZG9uZQ0KICAqIGVhc2lseSB3aXRoIHRocmVhZHMgYnV0 IEkgaGF2ZSBubyBleHBlcmllbmNlIHdpdGggdGhyZWFkIHByb2dyYW1taW5n DQpAQCAtMTMwLDcgKzEzMCw3IEBADQogCSAqLw0KIAlRU3RyaW5nIHBsYXll ck5hbWUodWludCBpKSBjb25zdDsNCiANCi0JLyoqIA0KKwkvKioNCiAJICog Q3JlYXRlIGEgbmV3IEByZWYgTVBCb2FyZC4NCiAJICoNCiAJICogQHBhcmFt IGkgaXMgdGhlIGdhbWUgaW5kZXggdGhhdCBnb2VzIGZyb20gMCB0byB0aGUg bnVtYmVyIG9mDQpAQCAtMTM4LDcgKzEzOCw3IEBADQogCSAqLw0KIAl2aXJ0 dWFsIE1QQm9hcmQgKm5ld0JvYXJkKHVpbnQgaSkgPSAwOw0KIA0KLQkvKiog DQorCS8qKg0KIAkgKiBUaGlzIG1ldGhvZCBtdXN0IHJlYWQgZGF0YSBmcm9t IGVhY2ggY2xpZW50IHdpdGggbWV0aG9kDQogCSAqIEByZWYgcmVhZGluZ1N0 cmVhbSwgZG8gdGhlIG5lZWRlZCB0cmVhdGVtZW50DQogCSAqIChmb3IgaW5z dGFuY2Ugd2hpY2ggcGxheWVycyBoYXMgbG9zdCwgd2hpY2ggZGF0YSB0byBi ZSByZXNlbnQsIC4uLikgYW5kDQpAQCAtMTYxLDcgKzE2MSw3IEBADQogCVFE YXRhU3RyZWFtICZ3cml0aW5nU3RyZWFtKHVpbnQgaSkgY29uc3Q7DQogDQog CS8qKg0KLQkgKiBSZWFkIGRhdGEgc2VudCBmcm9tIHNlcnZlciB0byBjbGll bnRzICJNdWx0aXBsYXllcnNJbnRlcmZhY2UiIA0KKwkgKiBSZWFkIGRhdGEg c2VudCBmcm9tIHNlcnZlciB0byBjbGllbnRzICJNdWx0aXBsYXllcnNJbnRl cmZhY2UiDQogCSAqICh0aGlzIGRhdGEgaXMgbm90IGFkcmVzc2VkIHRvIGJv YXJkcykuDQogCSAqIFRoZXNlIGFyZSBtZXRhIGRhdGEgdGhhdCBhcmUgbm90 IGRpcmVjdGx5IHVzZWQgaW4gZ2FtZS4NCiAJICogSXQgY2FuIGJlIHVzZWQg dG8gZGlzcGxheSAiZ2FtZSBvdmVyIiBpbmZvcyBmb3IgYWxsDQpAQCAtMTgz LDEzICsxODMsMTMgQEANCiAJICAqLw0KIAl2b2lkIGltbWVkaWF0ZVdyaXRl KCk7DQogCQ0KLQkvKiogDQorCS8qKg0KIAkgKiBUaGlzIG1ldGhvZCBzaG91 bGQgYmUgb3ZlcmxvYWQgaWYgYW4gb3B0aW9uIHdpZGdldCBpcyB1c2VkIGlu IHRoZQ0KIAkgKiB0aGUgIm5ldG1lZXRpbmciIGRpYWxvZykuIEJ5IGRlZmF1 bHQgYQ0KIAkgKiBudWxsIHBvaW50ZXIgaXMgcmV0dXJuZWQgYW5kIHNvIG5v IG9wdGlvbiB3aWRnZXQgaXMgc2hvd24uDQogCSAqIFRoZSBvcHRpb24gd2lk Z2V0IG11c3QgYmUgaW5oZXJpdGVkIGZyb20gdGhlIEByZWYgTVBPcHRpb25X aWRnZXQgY2xhc3MuDQogCSAqLw0KLQl2aXJ0dWFsIE1QT3B0aW9uV2lkZ2V0 ICpuZXdPcHRpb25XaWRnZXQoYm9vbCAvKnNlcnZlciovKSBjb25zdCANCisJ dmlydHVhbCBNUE9wdGlvbldpZGdldCAqbmV3T3B0aW9uV2lkZ2V0KGJvb2wg LypzZXJ2ZXIqLykgY29uc3QNCiAJCXsgcmV0dXJuIDA7IH07DQogDQogCS8q KiBDYWxsZWQgd2hlbiBhIG5ldHdvcmsgZXJyb3Igb2NjdXJlZCBvciB3aGVu IGEgaG9zdCBnZXRzIGRpc2Nvbm5lY3RlZC4NCkluZGV4OiBsaWIvdmVyc2lv bi5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2hvbWUv a2RlL2tkZWdhbWVzL2tzaXJ0ZXQvbGliL3ZlcnNpb24uaCx2DQpyZXRyaWV2 aW5nIHJldmlzaW9uIDEuNQ0KZGlmZiAtdSAtcjEuNSB2ZXJzaW9uLmgNCi0t LSBsaWIvdmVyc2lvbi5oCTE5OTkvMTIvMTQgMTg6MzU6NTEJMS41DQorKysg bGliL3ZlcnNpb24uaAkyMDAwLzA4LzMxIDIxOjExOjAzDQpAQCAtMSw3ICsx LDcgQEANCi0jZGVmaW5lIFZFUlNJT04gICAgICAgICIwLjEuNiINCi0jZGVm aW5lIFlFQVIgICAgICAgICAgIDE5OTkNCi0jZGVmaW5lIE1PTlRIICAgICAg ICAgIDExDQotI2RlZmluZSBEQVkgICAgICAgICAgICAxNA0KLSNkZWZpbmUg QVVUSE9SICAgICAgICAgIk5pY29sYXMgSGFkYWNlayAoaGFkYWNla0BrZGUu b3JnKSINCisjZGVmaW5lIFZFUlNJT04gICAgICAgICIwLjEuNyINCisjZGVm aW5lIExPTkdfVkVSU0lPTiAgICIwLjEuNyAoMjMgQXVndXN0IDIwMDApIg0K KyNkZWZpbmUgQ09QWUxFRlQgICAgICAgIihjKSAxOTk4LTIwMDAsIE5pY29s YXMgSGFkYWNlayINCisjZGVmaW5lIEVNQUlMICAgICAgICAgICJoYWRhY2Vr QGtkZS5vcmciDQorDQogI2RlZmluZSBMSUJfSUQgICAgICAgICAiMDAzIiAv LyBzaG91bGQgYmUgaW5jcmVhc2VkIHdoZW4gaW5jb21wYXRpYmxlDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjaGFuZ2VzIGFyZSBtYWRl Lg0K --8323328-490024195-967763722=:8973--