Date: Sun, 6 May 2018 09:06:15 +0200 From: "O. Hartmann" <ohartmann@walstatt.org> To: Matthew Macy <mmacy@freebsd.org> Cc: "O. Hartmann" <ohartmann@walstatt.org>, svn-src-head@freebsd.org, Sean Bruno <sbruno@freebsd.org>, Stephen Hurd <shurd@freebsd.org>, bde@freebsd.org Subject: Re: svn commit: r333175 - in head/sys: kern net netinet netinet6 sys: TRAP 12 Message-ID: <20180506090642.18a8f3c2@thor.intern.walstatt.dynvpn.de> In-Reply-To: <CAPrugNobRcsMjkFGr55WqyEk0J22DOEBboLibXV86nMPn-QS4g@mail.gmail.com> References: <201805021936.w42JaTlq039053@repo.freebsd.org> <20180503213206.7fba052c@thor.intern.walstatt.dynvpn.de> <CAHM0Q_OeFG5bKiUMqi5G3roGNnjUHJ_W2KmQeCCkSnW8zCW_RQ@mail.gmail.com> <20180503222419.4228e8e8@thor.intern.walstatt.dynvpn.de> <20180505110138.6cae0f75@thor.intern.walstatt.dynvpn.de> <CAPrugNp5zXeG50aUN5gEHp-Z5Db7y%2BiSRNGO-r%2BW5xzjhsqp7Q@mail.gmail.com> <20180505223151.580b6522@thor.intern.walstatt.dynvpn.de> <CAPrugNoL4jvO2yXNp4SGXQEDRUjJT_=LtbSBgt0fEQMkR8M2Gg@mail.gmail.com> <20180505225508.12bcee0c@thor.intern.walstatt.dynvpn.de> <CAPrugNobRcsMjkFGr55WqyEk0J22DOEBboLibXV86nMPn-QS4g@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
LS0tLS1CRUdJTiBQR1AgU0lHTkVEIE1FU1NBR0UtLS0tLQ0KSGFzaDogU0hBNTEyDQoNCkFtIFNh dCwgNSBNYXkgMjAxOCAxNDoxMjowNCAtMDcwMA0KTWF0dGhldyBNYWN5IDxtbWFjeUBmcmVlYnNk Lm9yZz4gc2NocmllYjoNCg0KPiBpdCdzIGluIHRoZSBzYW1lIHBsYWNlIGFzIGJlZm9yZSBidXQg SSdsbCBhdHRhY2gganVzdCB0byBiZSBjbGVhci4NCj4gR3ppcHBlZCB0byBrZWVwIGdtYWlsIGZy b20gaW5zZXJ0aW5nIGNhcnJpYWdlIHJldHVybnMuDQo+IC1NDQoNClNvcnJ5LCBtaXNzZWQgaXQu DQoNCm9oDQoNCj4gDQo+IE9uIFNhdCwgTWF5IDUsIDIwMTggYXQgMTo1NCBQTSwgTy4gSGFydG1h bm4gPG9oYXJ0bWFubkB3YWxzdGF0dC5vcmc+IHdyb3RlOg0KPiA+IC0tLS0tQkVHSU4gUEdQIFNJ R05FRCBNRVNTQUdFLS0tLS0NCj4gPiBIYXNoOiBTSEE1MTINCj4gPg0KPiA+IEFtIFNhdCwgNSBN YXkgMjAxOCAxMzo0NToxMyAtMDcwMA0KPiA+IE1hdHRoZXcgTWFjeSA8bW1hY3lAZnJlZWJzZC5v cmc+IHNjaHJpZWI6DQo+ID4gIA0KPiA+PiBhY3R1YWxseSBjYW4geW91IHRyeSB0aGUgdXBkYXRl ZCBwYXRjaCBwbGVhc2UsIGl0IHR1cm5zIG91dCBJIG5lZWQgdG8NCj4gPj4gd29ya2Fyb3VuZCB0 aGlzIGxpdHRsZSBzaG9wIG9mIGhvcnJvcnM6DQo+ID4+DQo+ID4+DQo+ID4+IHN0YXRpYyB2b2lk DQo+ID4+IHRjcF91c3JfZGV0YWNoKHN0cnVjdCBzb2NrZXQgKnNvKQ0KPiA+PiB7DQo+ID4+ICAg ICBzdHJ1Y3QgaW5wY2IgKmlucDsNCj4gPj4gICAgIGludCBybG9jayA9IDA7DQo+ID4+DQo+ID4+ ICAgICBpbnAgPSBzb3RvaW5wY2Ioc28pOw0KPiA+PiAgICAgS0FTU0VSVChpbnAgIT0gTlVMTCwg KCJ0Y3BfdXNyX2RldGFjaDogaW5wID09IE5VTEwiKSk7DQo+ID4+ICAgICBpZiAoIUlOUF9JTkZP X1dMT0NLRUQoJlZfdGNiaW5mbykpIHsNCj4gPj4gICAgICAgICBJTlBfSU5GT19STE9DSygmVl90 Y2JpbmZvKTsNCj4gPj4gICAgICAgICBybG9jayA9IDE7DQo+ID4+ICAgICB9DQo+ID4+ICAgICBJ TlBfV0xPQ0soaW5wKTsNCj4gPj4gICAgIEtBU1NFUlQoaW5wLT5pbnBfc29ja2V0ICE9IE5VTEws DQo+ID4+ICAgICAgICAgKCJ0Y3BfdXNyX2RldGFjaDogaW5wX3NvY2tldCA9PSBOVUxMIikpOw0K PiA+PiAgICAgdGNwX2RldGFjaChzbywgaW5wKTsNCj4gPj4gICAgIGlmIChybG9jaykNCj4gPj4g ICAgICAgICBJTlBfSU5GT19SVU5MT0NLKCZWX3RjYmluZm8pOw0KPiA+PiB9DQo+ID4+DQo+ID4+ IFdlJ3JlIHN0aWxsIGFjcXVpcmluZyBhIHNsZWVwYWJsZSBtdXRleCBvdXQgb2Ygb3JkZXIgd2l0 aCBhIHJlYWQgbG9jaw0KPiA+PiBoZWxkIHdpdGggdGhlIGZvcm1lciB2ZXJzaW9uIG9mIHRoZSBw YXRjaC4NCj4gPj4gIA0KPiA+DQo+ID4gV2VsbCwgSSdkIGFwcHJlY2lhdGUgYSBwYXRjaCBmaWxl LCBpZiBwb3NzaWJsZSwgcGxlYXNlLg0KPiA+DQo+ID4gIA0KPiA+Pg0KPiA+PiBPbiBTYXQsIE1h eSA1LCAyMDE4IGF0IDE6MzEgUE0sIE8uIEhhcnRtYW5uIDxvLmhhcnRtYW5uQHdhbHN0YXR0Lm9y Zz4gd3JvdGU6ICANCj4gPj4gPiAtLS0tLUJFR0lOIFBHUCBTSUdORUQgTUVTU0FHRS0tLS0tDQo+ ID4+ID4gSGFzaDogU0hBNTEyDQo+ID4+ID4NCj4gPj4gPiBBbSBTYXQsIDUgTWF5IDIwMTggMTE6 MjE6NDcgLTA3MDANCj4gPj4gPiBNYXR0aGV3IE1hY3kgPG1tYWN5QGZyZWVic2Qub3JnPiBzY2hy aWViOg0KPiA+PiA+ICANCj4gPj4gPj4gcGhvQCBhbmQgc2JydW5vQCB0ZXN0ZWQgdGhlIHBhdGNo IGJlZm9yZSBjb21taXQsIEkgY2FuJ3QgcmVhZGlseQ0KPiA+PiA+PiByZXByb2R1Y2UgZXZlbiB0 aG91Z2ggdGhlIGRldGFjaCBwYXRoIHNob3VsZCBiZSBjb21tb24gZW5vdWdoLiBQbGVhc2UNCj4g Pj4gPj4gdGVsbCBtZSBpZiB0aGlzIGhlbHBzOg0KPiA+PiA+Pg0KPiA+PiA+PiBodHRwczovL3Bl b3BsZS5mcmVlYnNkLm9yZy9+bW1hY3kvaW5wY2IuZGlmZg0KPiA+PiA+Pg0KPiA+PiA+Pg0KPiA+ PiA+PiBUaGFua3MuDQo+ID4+ID4+ICANCj4gPj4gPg0KPiA+PiA+DQo+ID4+ID4gVGhlIHByaXZp ZGVkIHBhdGNoIHNlZW1pbmdseSB3b3JrIHNvIGZhciAoRnJlZUJTRCAxMi4wLUNVUlJFTlQgIzQg cjMzMzI3NE06IFNhdA0KPiA+PiA+IE1heSAgNSAyMjoxOTowNCBDRVNUIDIwMTggYW1kNjQpLiBJ IGp1c3QgcmVjb21waWxlIHdvcmxkIGFuZCBrZXJuZWwgb2YgcmV2aXNpb24NCj4gPj4gPiAzMzMy NzYgYW5kIHRyeSB0byBwdXNoIHRoZSBib3ggd2l0aCBuZSB0cmFmZmljIChORlMgbW9zdGx5KS4N Cj4gPj4gPg0KPiA+PiA+IE1heSBJIGFzayBvbiB3aGF0IGhhcmR3YXJlIHRoZSBtZW50aW9uZWQg dGVzdHMgb2YgeW91cnMgaGFzIGJlZW4gcGVyZm9ybWVkPyBJIGNhbg0KPiA+PiA+IHRlbGwsIHRo YXQgQUxMKCEpIGJveGVzIGVxdWlwdGVkIHdpdGggSW50ZWwncyBpMzUwIE5JQ3MgYXJlIHN1ZmZl cmluZyB0aGUgdmVyeSBzYW1lDQo+ID4+ID4gcHJvYmxlbS4gSSBkaWRuJ3QgZGFyZSB0byBtb3Zl IG9uIG9uIHRoZSBvdGhlciBzeXN0ZW1zIHdpdGggaTIxMCwgaTIxNyBvciBpMjE5LCBidXQNCj4g Pj4gPiB3aXRoIHRoZSBwYXRjaCBwcm92aWRlZCB3b3JraW5nIHNvIGZhciwgSSdsbCB0ZXN0Lg0K PiA+PiA+DQo+ID4+ID4gVGhhbmtzLg0KPiA+PiA+ICANCj4gPj4gPj4NCj4gPj4gPj4gT24gU2F0 LCBNYXkgNSwgMjAxOCBhdCAyOjAxIEFNLCBPLiBIYXJ0bWFubiA8by5oYXJ0bWFubkB3YWxzdGF0 dC5vcmc+IHdyb3RlOiAgDQo+ID4+ID4+ID4gLS0tLS1CRUdJTiBQR1AgU0lHTkVEIE1FU1NBR0Ut LS0tLQ0KPiA+PiA+PiA+IEhhc2g6IFNIQTUxMg0KPiA+PiA+PiA+DQo+ID4+ID4+ID4gQW0gVGh1 LCAzIE1heSAyMDE4IDIyOjIzOjUyICswMjAwDQo+ID4+ID4+ID4gIk8uIEhhcnRtYW5uIiA8b2hh cnRtYW5uQHdhbHN0YXR0Lm9yZz4gc2NocmllYjoNCj4gPj4gPj4gPg0KPiA+PiA+PiA+DQo+ID4+ ID4+ID4gSSdtIG5vdCBmYW1pbGlhciB3aXRoIGtlcm5lbCBkZWJ1Z2dpbmcsIHNvIHRoZXJlIGFy ZSBzb21lIHN0cnVnZ2xlcy4NCj4gPj4gPj4gPg0KPiA+PiA+PiA+IEFmdGVyIGNvbXBpbGluZyBh IGRlYnVnZ2luZyBrZXJuZWwgb24NCj4gPj4gPj4gPg0KPiA+PiA+PiA+IFZlcnNpb24gU3RyaW5n OiBGcmVlQlNEIDEyLjAtQ1VSUkVOVCAjMiByMzMzMjY5OiBTYXQgTWF5ICA1IDA4OjEwOjMyIENF U1QgMjAxOA0KPiA+PiA+PiA+DQo+ID4+ID4+ID4gUGFuaWMgU3RyaW5nOiBMb2NrIHRjcCBub3Qg ZXhjbHVzaXZlbHkgbG9ja2VkDQo+ID4+ID4+ID4gQCAvdXNyL3NyYy9zeXMvbmV0aW5ldC9pbl9w Y2IuYzoxMzkxDQo+ID4+ID4+ID4NCj4gPj4gPj4gPg0KPiA+PiA+PiA+IEFuZCB0aGlzIGlzIHdo YXQgSSBjYW4gcHJvdmlkZSB5b3Ugd2l0aDoNCj4gPj4gPj4gPg0KPiA+PiA+PiA+DQo+ID4+ID4+ ID4gUmVhZGluZyBzeW1ib2xzDQo+ID4+ID4+ID4gZnJvbSAvdXNyL29iai91c3Ivc3JjL2FtZDY0 LmFtZDY0L3N5cy9XQUxIQUxMLURFQlVHL2tlcm5lbC5mdWxsLi4uZG9uZS4NCj4gPj4gPj4gPg0K PiA+PiA+PiA+IFVucmVhZCBwb3J0aW9uIG9mIHRoZSBrZXJuZWwgbWVzc2FnZSBidWZmZXI6DQo+ ID4+ID4+ID4gcGFuaWM6IExvY2sgdGNwIG5vdCBleGNsdXNpdmVseSBsb2NrZWQgQCAvdXNyL3Ny Yy9zeXMvbmV0aW5ldC9pbl9wY2IuYzoxMzkxDQo+ID4+ID4+ID4NCj4gPj4gPj4gPiBjcHVpZCA9 IDQNCj4gPj4gPj4gPiB0aW1lID0gMTUyNTUxMDI5MQ0KPiA+PiA+PiA+IEtEQjogc3RhY2sgYmFj a3RyYWNlOg0KPiA+PiA+PiA+IGRiX3RyYWNlX3NlbGZfd3JhcHBlcigpIGF0IGRiX3RyYWNlX3Nl bGZfd3JhcHBlcisweDJiL2ZyYW1lIDB4ZmZmZmZlMDBlNDg1ZTY3MA0KPiA+PiA+PiA+IHZwYW5p YygpIGF0IHZwYW5pYysweDFhMy9mcmFtZSAweGZmZmZmZTAwZTQ4NWU2ZDANCj4gPj4gPj4gPiBw YW5pYygpIGF0IHBhbmljKzB4NDMvZnJhbWUgMHhmZmZmZmUwMGU0ODVlNzMwDQo+ID4+ID4+ID4g X3J3X3d1bmxvY2tfY29va2llKCkgYXQgX3J3X3d1bmxvY2tfY29va2llKzB4MTM3L2ZyYW1lIDB4 ZmZmZmZlMDBlNDg1ZTc2MA0KPiA+PiA+PiA+IGluX3BjYmZyZWUoKSBhdCBpbl9wY2JmcmVlKzB4 NTFhL2ZyYW1lIDB4ZmZmZmZlMDBlNDg1ZTdiMA0KPiA+PiA+PiA+IHRjcF91c3JfZGV0YWNoKCkg YXQgdGNwX3Vzcl9kZXRhY2grMHgxNWUvZnJhbWUgMHhmZmZmZmUwMGU0ODVlN2YwDQo+ID4+ID4+ ID4gc29mcmVlKCkgYXQgc29mcmVlKzB4MmY0L2ZyYW1lIDB4ZmZmZmZlMDBlNDg1ZTg0MA0KPiA+ PiA+PiA+IHNvY2xvc2UoKSBhdCBzb2Nsb3NlKzB4Mzg3L2ZyYW1lIDB4ZmZmZmZlMDBlNDg1ZThi MA0KPiA+PiA+PiA+IGNsb3NlZigpIGF0IGNsb3NlZisweDFmNS9mcmFtZSAweGZmZmZmZTAwZTQ4 NWU5NDANCj4gPj4gPj4gPiBjbG9zZWZwKCkgYXQgY2xvc2VmcCsweGEwL2ZyYW1lIDB4ZmZmZmZl MDBlNDg1ZTk4MA0KPiA+PiA+PiA+IGFtZDY0X3N5c2NhbGwoKSBhdCBhbWQ2NF9zeXNjYWxsKzB4 NmQzL2ZyYW1lIDB4ZmZmZmZlMDBlNDg1ZWFiMA0KPiA+PiA+PiA+IGZhc3Rfc3lzY2FsbF9jb21t b24oKSBhdCBmYXN0X3N5c2NhbGxfY29tbW9uKzB4MTAxL2ZyYW1lIDB4ZmZmZmZlMDBlNDg1ZWFi MA0KPiA+PiA+PiA+IC0gLS0tIHN5c2NhbGwgKDYsIEZyZWVCU0QgRUxGNjQsIHN5c19jbG9zZSks IHJpcCA9IDB4ODAxMTFhZGRhLCByc3AgPQ0KPiA+PiA+PiA+IDB4N2ZmZmRmM2Y3MjI4LCByYnAg PSAweDdmZmZkZjNmNzI0MCAtLS0gS0RCOiBlbnRlcjogcGFuaWMNCj4gPj4gPj4gPg0KPiA+PiA+ PiA+IF9fY3VydGhyZWFkICgpIGF0IC4vbWFjaGluZS9wY3B1Lmg6MjMxDQo+ID4+ID4+ID4gMjMx ICAgICAgICAgICAgIF9fYXNtKCJtb3ZxICUlZ3M6JTEsJTAiIDogIj1yIiAodGQpDQo+ID4+ID4+ ID4gKGtnZGIpIGJ0DQo+ID4+ID4+ID4gKGtnZGIpIGJ0DQo+ID4+ID4+ID4gIzAgIF9fY3VydGhy ZWFkICgpIGF0IC4vbWFjaGluZS9wY3B1Lmg6MjMxDQo+ID4+ID4+ID4gIzEgIGRvYWR1bXAgKHRl eHRkdW1wPTApIGF0IC91c3Ivc3JjL3N5cy9rZXJuL2tlcm5fc2h1dGRvd24uYzozNjUNCj4gPj4g Pj4gPiAjMiAgMHhmZmZmZmZmZjgwNTk3ZDViIGluIGRiX2R1bXAgKGR1bW15PTxvcHRpbWl6ZWQg b3V0PiwgZHVtbXkyPTx1bmF2YWlsYWJsZT4sDQo+ID4+ID4+ID4gZHVtbXkzPTx1bmF2YWlsYWJs ZT4sIGR1bW15ND08dW5hdmFpbGFibGU+KSBhdCAvdXNyL3NyYy9zeXMvZGRiL2RiX2NvbW1hbmQu Yzo1NzQNCj4gPj4gPj4gPiAjMyAgMHhmZmZmZmZmZjgwNTk3YWU2IGluIGRiX2NvbW1hbmQgKGxh c3RfY21kcD08b3B0aW1pemVkIG91dD4sDQo+ID4+ID4+ID4gY21kX3RhYmxlPTxvcHRpbWl6ZWQg IA0KPiA+PiA+PiA+IG91dD4sIGRvcGFnZXI9PG9wdGltaXplZCBvdXQ+KSBhdCAvdXNyL3NyYy9z eXMvZGRiL2RiX2NvbW1hbmQuYzo0ODEgIzQNCj4gPj4gPj4gPiBvdXQ+MHhmZmZmZmZmZjgwNTk3 ODE0IGluIGRiX2NvbW1hbmRfbG9vcCAoKQ0KPiA+PiA+PiA+IG91dD5hdCAvdXNyL3NyYy9zeXMv ZGRiL2RiX2NvbW1hbmQuYzo1MzQgIA0KPiA+PiA+PiA+ICM1ICAweGZmZmZmZmZmODA1OWIwNGYg aW4gZGJfdHJhcCAodHlwZT08b3B0aW1pemVkIG91dD4sIGNvZGU9PG9wdGltaXplZCBvdXQ+KQ0K PiA+PiA+PiA+IGF0IC91c3Ivc3JjL3N5cy9kZGIvZGJfbWFpbi5jOjI1MCAjNiAgMHhmZmZmZmZm ZjgwOTI0NDYzIGluIGtkYl90cmFwICh0eXBlPTMsDQo+ID4+ID4+ID4gY29kZT0tNjE0NTYsIHRm PTxvcHRpbWl6ZWQgb3V0PikgYXQgL3Vzci9zcmMvc3lzL2tlcm4vc3Vicl9rZGIuYzo2OTcgIzcN Cj4gPj4gPj4gPiAweGZmZmZmZmZmODBjODBhYjcgaW4gdHJhcCAoZnJhbWU9MHhmZmZmZmUwMGU0 ODVlNWEwKQ0KPiA+PiA+PiA+IGF0IC91c3Ivc3JjL3N5cy9hbWQ2NC9hbWQ2NC90cmFwLmM6NTUw ICM4ICA8c2lnbmFsIGhhbmRsZXIgY2FsbGVkPiAjOSAga2RiX2VudGVyDQo+ID4+ID4+ID4gKHdo eT0weGZmZmZmZmZmODBkZDdiNTQgInBhbmljIiwgbXNnPTxvcHRpbWl6ZWQgb3V0PikNCj4gPj4g Pj4gPiBhdCAvdXNyL3NyYy9zeXMva2Vybi9zdWJyX2tkYi5jOjQ3OSAjMTAgMHhmZmZmZmZmZjgw OGRiNTAwIGluIHZwYW5pYw0KPiA+PiA+PiA+IChmbXQ9PG9wdGltaXplZCAgDQo+ID4+ID4+ID4g b3V0PiwgYXA9MHhmZmZmZmUwMGU0ODVlNzEwKSBhdCAvdXNyL3NyYy9zeXMva2Vybi9rZXJuX3No dXRkb3duLmM6ODUxICMxMQ0KPiA+PiA+PiA+IG91dD4weGZmZmZmZmZmODA4ZGI1OTMgaW4gcGFu aWMgIA0KPiA+PiA+PiA+IChmbXQ9MHhmZmZmZmZmZjgxMjViYmQ4IDxjbnB1dHNfbXR4PiAiXDI1 MVwzMTJcMzMyXDIwMFwzNzdcMzc3XDM3N1wzNzciKQ0KPiA+PiA+PiA+IGF0IC91c3Ivc3JjL3N5 cy9rZXJuL2tlcm5fc2h1dGRvd24uYzo3ODkgIzEyIDB4ZmZmZmZmZmY4MDhkNjViNyBpbiBfX3J3 X2Fzc2VydA0KPiA+PiA+PiA+IChjPTB4ZmZmZmZlMDAxMTFlZTY1MCwgd2hhdD00LCBmaWxlPTB4 ZmZmZmZmZmY4MGRjNTE1Nw0KPiA+PiA+PiA+ICIvdXNyL3NyYy9zeXMvbmV0aW5ldC9pbl9wY2Iu YyIsIGxpbmU9MTM5MSkNCj4gPj4gPj4gPiBhdCAvdXNyL3NyYy9zeXMva2Vybi9rZXJuX3J3bG9j ay5jOjE0MjYgIzEzIF9yd193dW5sb2NrX2Nvb2tpZQ0KPiA+PiA+PiA+IChjPTB4ZmZmZmZlMDAx MTFlZTY1MCwgZmlsZT0weGZmZmZmZmZmODBkYzUxNTcgIi91c3Ivc3JjL3N5cy9uZXRpbmV0L2lu X3BjYi5jIiwNCj4gPj4gPj4gPiBsaW5lPTEzOTEpIGF0IC91c3Ivc3JjL3N5cy9rZXJuL2tlcm5f cndsb2NrLmM6MzYyICMxNCAweGZmZmZmZmZmODBhNjhjYWEgaW4NCj4gPj4gPj4gPiBpbl9wY2Jm cmVlIChpbnA9MHhmZmZmZjgwMDY2MDU4YjEwKSBhdCAvdXNyL3NyYy9zeXMvbmV0aW5ldC9pbl9w Y2IuYzoxMzkxICMxNQ0KPiA+PiA+PiA+IDB4ZmZmZmZmZmY4MGIwOWE2ZSBpbiB0Y3BfZGV0YWNo IChzbz08b3B0aW1pemVkIG91dD4sIGlucD08b3B0aW1pemVkIG91dD4pDQo+ID4+ID4+ID4gYXQg L3Vzci9zcmMvc3lzL25ldGluZXQvdGNwX3VzcnJlcS5jOjI1OCAjMTYgdGNwX3Vzcl9kZXRhY2gg KHNvPTxvcHRpbWl6ZWQNCj4gPj4gPj4gPiBvdXQ+KSBhdCAvdXNyL3NyYy9zeXMvbmV0aW5ldC90 Y3BfdXNycmVxLmM6Mjg5ICMxNyAweGZmZmZmZmZmODA5N2MzOTQgaW4gc29mcmVlDQo+ID4+ID4+ ID4gb3V0Pihzbz0weGZmZmZmODAwMTk4OGQzNTgpDQo+ID4+ID4+ID4gYXQgL3Vzci9zcmMvc3lz L2tlcm4vdWlwY19zb2NrZXQuYzoxMDMyICMxOCAweGZmZmZmZmZmODA5N2Q0ODcgaW4gc29jbG9z ZQ0KPiA+PiA+PiA+IChzbz0weGZmZmZmODAwMTk4OGQzNTgpIGF0IC91c3Ivc3JjL3N5cy9rZXJu L3VpcGNfc29ja2V0LmM6MTEyNiAjMTkNCj4gPj4gPj4gPiAweGZmZmZmZmZmODA4ODVhZDUgaW4g Zm9fY2xvc2UgKGZwPTxvcHRpbWl6ZWQgb3V0PiwgdGQ9PG9wdGltaXplZCBvdXQ+KQ0KPiA+PiA+ PiA+IGF0IC91c3Ivc3JjL3N5cy9zeXMvZmlsZS5oOjM0OCAjMjAgX2Zkcm9wIChmcD08b3B0aW1p emVkIG91dD4sIHRkPTxvcHRpbWl6ZWQNCj4gPj4gPj4gPiBvdXQ+KSBhdCAvdXNyL3NyYy9zeXMv a2Vybi9rZXJuX2Rlc2NyaXAuYzoyOTU3ICMyMSBjbG9zZWYNCj4gPj4gPj4gPiBvdXQ+KGZwPTB4 ZmZmZmY4MDAwNGVmNGViMCwNCj4gPj4gPj4gPiB0ZD0weGZmZmZmODAwMTk4OTE1NjApIGF0IC91 c3Ivc3JjL3N5cy9rZXJuL2tlcm5fZGVzY3JpcC5jOjI1MzggIzIyDQo+ID4+ID4+ID4gMHhmZmZm ZmZmZjgwODgyOTIwIGluIGNsb3NlZnAgKGZkcD0weGZmZmZmODAwMTk1NTM0NTAsIGZkPTEyLA0K PiA+PiA+PiA+IGZwPTB4ZmZmZmY4MDAwNGVmNGViMCwgdGQ9MHhmZmZmZjgwMDE5ODkxNTYwLCBo b2xkbGVhZGVycz0wKQ0KPiA+PiA+PiA+IGF0IC91c3Ivc3JjL3N5cy9rZXJuL2tlcm5fZGVzY3Jp cC5jOjEyMDggIzIzIDB4ZmZmZmZmZmY4MGM4MjAzMyBpbiBzeXNjYWxsZW50ZXINCj4gPj4gPj4g PiAodGQ9MHhmZmZmZjgwMDE5ODkxNTYwKQ0KPiA+PiA+PiA+IGF0IC91c3Ivc3JjL3N5cy9hbWQ2 NC9hbWQ2NC8uLi8uLi9rZXJuL3N1YnJfc3lzY2FsbC5jOjEzNSAjMjQgYW1kNjRfc3lzY2FsbA0K PiA+PiA+PiA+ICh0ZD0weGZmZmZmODAwMTk4OTE1NjAsIHRyYWNlZD0wKSBhdCAvdXNyL3NyYy9z eXMvYW1kNjQvYW1kNjQvdHJhcC5jOjk0NSAjMjUNCj4gPj4gPj4gPiA8c2lnbmFsIGhhbmRsZXIg Y2FsbGVkPiAjMjYgMHgwMDAwMDAwODAxMTFhZGRhIGluID8/ICgpIEJhY2t0cmFjZSBzdG9wcGVk Og0KPiA+PiA+PiA+IENhbm5vdCBhY2Nlc3MgbWVtb3J5IGF0IGFkZHJlc3MgMHg3ZmZmZGYzZjcy MjggKGtnZGIpDQo+ID4+ID4+ID4NCj4gPj4gPj4gPg0KPiA+PiA+PiA+DQo+ID4+ID4+ID4gIA0K PiA+PiA+PiA+PiAtLS0tLUJFR0lOIFBHUCBTSUdORUQgTUVTU0FHRS0tLS0tDQo+ID4+ID4+ID4+ IEhhc2g6IFNIQTUxMg0KPiA+PiA+PiA+Pg0KPiA+PiA+PiA+PiBBbSBUaHUsIDMgTWF5IDIwMTgg MTI6NTM6MDUgLTA3MDANCj4gPj4gPj4gPj4gIksuIE1hY3kiIDxrbWFjeUBmcmVlYnNkLm9yZz4g c2NocmllYjoNCj4gPj4gPj4gPj4gIA0KPiA+PiA+PiA+PiA+IENhbiB5b3UgZ2l2ZSBhbnkgY29u dGV4dCBvbiB3aGF0IHRoZXkncmUgZG9pbmc/IEluIGFkZGl0aW9uIC0gZXZlbiBvbg0KPiA+PiA+ PiA+PiA+IGEgcHJvZHVjdGlvbiBrZXJuZWwgaXQncyBwb3NzaWJsZSB0byBjb21waWxlIGluIERE QiB0byBhdCBsZWFzdCBnZXQgYQ0KPiA+PiA+PiA+PiA+IGJhY2t0cmFjZS4gWW91ciByZXBvcnQg b25seSBnaXZlcyB1cyBlbm91Z2ggaW5mb3JtYXRpb24gdG8ga25vdyB0aGF0ICANCj4gPj4gPj4g Pj4NCj4gPj4gPj4gPj4gTm90IGF0IHRoZSBtb21lbnQuIFRoZSBpbW1lZGlhdGUgY3Jhc2ggY29y cnVwdGVkIHRoZSAvdXNyL3NyYyBmaWxlc3lzdGVtIHNvIEkNCj4gPj4gPj4gPj4gY2FuIG5vdCBy ZWNvbXBpbGUgYSBrZXJuZWwuIEV2ZXJ5IGF0dGVtcHQgdG8gL2V0Yy9uZXRzdGFydCB0aGUgbmV0 d29yayBvbiB0aGUNCj4gPj4gPj4gPj4gYnVnZ3kga2VybmVsIGVuZHMgdXAgaW4gYSBmdXJ0aGVy IGRlc3RydWN0aW9uLCBzbyBJIHN0b3BwZWQgYXQgdGhpcyB2ZXJ5DQo+ID4+ID4+ID4+IG1vbWVu dCBhbmQgaG9wZWZ1bGx5IEkgY2FuIGNvcHkgL3Vzci9zcmMgZnJvbSBhIHIzMzE1MyBib3ggKHIz MzMxNTMgaXMgZm9yIG1lDQo+ID4+ID4+ID4+IHRoZSBsYXN0IHdvcmtpbmcgcmV2aXNpb24pIHZp YSBVU0IgZmxhc2ggZHJpdmUgYW5kIHJlY29tcGlsZSB0aGUga2VybmVsLiBCdXQNCj4gPj4gPj4g Pj4gSSdsbCBnbyBmb3IgcjMzMzE1MyBmaXJzdCBzaW5jZSBJIG5lZWQgdGhlIHNlcnZlciB1cCB0 b21vcnJvdyBhbmQgSSdsbCB0cnkgb24NCj4gPj4gPj4gPj4gdGhlIG90aGVyIGJveCB3aGljaCBp cyBhbHNvIGFmZmVjdGVkLCBidXQgYWxzbyBlcXVpcHRlZCB3aXRoIHRoZSBpMzUwIE5JQyBvbg0K PiA+PiA+PiA+PiB3aGljaCB0aGUgcHJvYmxlbSBvY2N1cnMgdmVyeSBxdWlja2x5LiAgDQo+ID4+ ID4+ID4+ID4gdGhlcmUgaXMgX2FuXyBpc3N1ZS4gSXQncyBkaWZmaWN1bHQgdG8gcHJvY2VlZCBv biB0aGlzIGFsb25lLiBJIGRvDQo+ID4+ID4+ID4+ID4gaGF2ZSBhIHJlcG9ydCBmcm9tIHRoZSBG cmVlQlNEIENJIGluZnJhc3RydWN0dXJlIHRoYXQgd2UncmUgbG9va2luZyBpbg0KPiA+PiA+PiA+ PiA+IHRvIG5vdy4gIFdpdGggbHVjayB0aGF0IGlzIHRoZSBzYW1lIGlzc3VlLg0KPiA+PiA+PiA+ PiA+DQo+ID4+ID4+ID4+ID4gLU0NCj4gPj4gPj4gPj4gPg0KPiA+PiA+PiA+PiA+IE9uIFRodSwg TWF5IDMsIDIwMTggYXQgMTI6MzEgUE0sIE8uIEhhcnRtYW5uIDxvaGFydG1hbm5Ad2Fsc3RhdHQu b3JnPg0KPiA+PiA+PiA+PiA+IHdyb3RlOiAgDQo+ID4+ID4+ID4+ID4gPiAtLS0tLUJFR0lOIFBH UCBTSUdORUQgTUVTU0FHRS0tLS0tDQo+ID4+ID4+ID4+ID4gPiBIYXNoOiBTSEE1MTINCj4gPj4g Pj4gPj4gPiA+DQo+ID4+ID4+ID4+ID4gPiBBbSBXZWQsIDIgTWF5IDIwMTggMTk6MzY6MjkgKzAw MDAgKFVUQykNCj4gPj4gPj4gPj4gPiA+IFN0ZXBoZW4gSHVyZCA8c2h1cmRARnJlZUJTRC5vcmc+ IHNjaHJpZWI6DQo+ID4+ID4+ID4+ID4gPiAgDQo+ID4+ID4+ID4+ID4gPj4gQXV0aG9yOiBzaHVy ZA0KPiA+PiA+PiA+PiA+ID4+IERhdGU6IFdlZCBNYXkgIDIgMTk6MzY6MjkgMjAxOA0KPiA+PiA+ PiA+PiA+ID4+IE5ldyBSZXZpc2lvbjogMzMzMTc1DQo+ID4+ID4+ID4+ID4gPj4gVVJMOiBodHRw czovL3N2bndlYi5mcmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFzZS8zMzMxNzUNCj4gPj4gPj4gPj4g PiA+Pg0KPiA+PiA+PiA+PiA+ID4+IExvZzoNCj4gPj4gPj4gPj4gPiA+PiAgIFNlcGFyYXRlIGxp c3QgbWFuaXB1bGF0aW9uIGxvY2tpbmcgZnJvbSBzdGF0ZSBjaGFuZ2UgaW4gbXVsdGljYXN0DQo+ ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgIE11bHRpY2FzdCBpbmNvcnJlY3RseSBj YWxscyBpbiB0byBkcml2ZXJzIHdpdGggYSBtdXRleCBoZWxkIGNhdXNpbmcNCj4gPj4gPj4gPj4g PiA+PiBkcml2ZXJzIHRvIGhhdmUgdG8gZ28gdGhyb3VnaCBhbGwgbWFubmVyIG9mIGNvbnRvcnRp b25zIHRvIHVzZSBhIG5vbg0KPiA+PiA+PiA+PiA+ID4+IHNsZWVwYWJsZSBsb2NrLiBTZXJpYWxp emUgbXVsdGljYXN0IHVwZGF0ZXMgaW5zdGVhZC4NCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ PiA+ID4+ICAgU3VibWl0dGVkIGJ5OiAgICAgICBtbWFjeSA8bW1hY3lAbWF0dG1hY3kuaW8+DQo+ ID4+ID4+ID4+ID4gPj4gICBSZXZpZXdlZCBieTogICAgICAgIHNodXJkLCBzYnJ1bm8NCj4gPj4g Pj4gPj4gPiA+PiAgIFNwb25zb3JlZCBieTogICAgICAgTGltZWxpZ2h0IE5ldHdvcmtzDQo+ID4+ ID4+ID4+ID4gPj4gICBEaWZmZXJlbnRpYWwgUmV2aXNpb246ICAgICAgaHR0cHM6Ly9yZXZpZXdz LmZyZWVic2Qub3JnL0QxNDk2OQ0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gTW9k aWZpZWQ6DQo+ID4+ID4+ID4+ID4gPj4gICBoZWFkL3N5cy9rZXJuL3N1YnJfZ3Rhc2txdWV1ZS5j DQo+ID4+ID4+ID4+ID4gPj4gICBoZWFkL3N5cy9rZXJuL3N1YnJfd2l0bmVzcy5jDQo+ID4+ID4+ ID4+ID4gPj4gICBoZWFkL3N5cy9uZXQvaWYuYw0KPiA+PiA+PiA+PiA+ID4+ICAgaGVhZC9zeXMv bmV0aW5ldC9pZ21wLmMNCj4gPj4gPj4gPj4gPiA+PiAgIGhlYWQvc3lzL25ldGluZXQvaWdtcF92 YXIuaA0KPiA+PiA+PiA+PiA+ID4+ICAgaGVhZC9zeXMvbmV0aW5ldC9pbi5jDQo+ID4+ID4+ID4+ ID4gPj4gICBoZWFkL3N5cy9uZXRpbmV0L2luX21jYXN0LmMNCj4gPj4gPj4gPj4gPiA+PiAgIGhl YWQvc3lzL25ldGluZXQvaW5fcGNiLmMNCj4gPj4gPj4gPj4gPiA+PiAgIGhlYWQvc3lzL25ldGlu ZXQvaW5fdmFyLmgNCj4gPj4gPj4gPj4gPiA+PiAgIGhlYWQvc3lzL25ldGluZXQvaXBfY2FycC5j DQo+ID4+ID4+ID4+ID4gPj4gICBoZWFkL3N5cy9uZXRpbmV0Ni9pbjYuYw0KPiA+PiA+PiA+PiA+ ID4+ICAgaGVhZC9zeXMvbmV0aW5ldDYvaW42X2lmYXR0YWNoLmMNCj4gPj4gPj4gPj4gPiA+PiAg IGhlYWQvc3lzL25ldGluZXQ2L2luNl9tY2FzdC5jDQo+ID4+ID4+ID4+ID4gPj4gICBoZWFkL3N5 cy9uZXRpbmV0Ni9pbjZfcGNiLmMNCj4gPj4gPj4gPj4gPiA+PiAgIGhlYWQvc3lzL25ldGluZXQ2 L2luNl92YXIuaA0KPiA+PiA+PiA+PiA+ID4+ICAgaGVhZC9zeXMvbmV0aW5ldDYvbWxkNi5jDQo+ ID4+ID4+ID4+ID4gPj4gICBoZWFkL3N5cy9uZXRpbmV0Ni9tbGQ2X3Zhci5oDQo+ID4+ID4+ID4+ ID4gPj4gICBoZWFkL3N5cy9zeXMvZ3Rhc2txdWV1ZS5oDQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4g Pj4gPj4gPiA+PiBNb2RpZmllZDogaGVhZC9zeXMva2Vybi9zdWJyX2d0YXNrcXVldWUuYw0KPiA+ PiA+PiA+PiA+ID4+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA+PiA+PiA+PiA+ID4+IC0tLSBo ZWFkL3N5cy9rZXJuL3N1YnJfZ3Rhc2txdWV1ZS5jICAgV2VkIE1heSAgMiAxNzo0MTowMCAyMDE4 DQo+ID4+ID4+ID4+ID4gPj4gKHIzMzMxNzQpICsrKyBoZWFkL3N5cy9rZXJuL3N1YnJfZ3Rhc2tx dWV1ZS5jICAgV2VkIE1heSAgMiAxOTozNjoyOQ0KPiA+PiA+PiA+PiA+ID4+IDIwMTggICAgICAg IChyMzMzMTc1KSBAQCAtNTMsNiArNTMsNyBAQCBzdGF0aWMgdm9pZA0KPiA+PiA+PiA+PiA+ID4+ IGd0YXNrcXVldWVfdGhyZWFkX2VucXVldWUodm9pZCAqKTsgc3RhdGljIHZvaWQNCj4gPj4gPj4g Pj4gPiA+PiBndGFza3F1ZXVlX3RocmVhZF9sb29wKHZvaWQgKmFyZyk7DQo+ID4+ID4+ID4+ID4g Pj4NCj4gPj4gPj4gPj4gPiA+PiAgVEFTS1FHUk9VUF9ERUZJTkUoc29mdGlycSwgbXBfbmNwdXMs IDEpOw0KPiA+PiA+PiA+PiA+ID4+ICtUQVNLUUdST1VQX0RFRklORShjb25maWcsIDEsIDEpOw0K PiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gIHN0cnVjdCBndGFza3F1ZXVlX2J1c3kg ew0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIHN0cnVjdCBndGFzayAgICAqdGJfcnVubmluZzsNCj4g Pj4gPj4gPj4gPiA+PiBAQCAtNjYyLDcgKzY2Myw3IEBAIFNZU0lOSVQodHFnX3JlY29yZF9zbXBf c3RhcnRlZCwgU0lfU1VCX1NNUCwgU0lfT1JERVJfRg0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ ID4+ID4gPj4gIHZvaWQNCj4gPj4gPj4gPj4gPiA+PiAgdGFza3Fncm91cF9hdHRhY2goc3RydWN0 IHRhc2txZ3JvdXAgKnFncm91cCwgc3RydWN0IGdyb3VwdGFzayAqZ3Rhc2ssDQo+ID4+ID4+ID4+ ID4gPj4gLSAgICB2b2lkICp1bmlxLCBpbnQgaXJxLCBjaGFyICpuYW1lKQ0KPiA+PiA+PiA+PiA+ ID4+ICsgICAgdm9pZCAqdW5pcSwgaW50IGlycSwgY29uc3QgY2hhciAqbmFtZSkNCj4gPj4gPj4g Pj4gPiA+PiAgew0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIGNwdXNldF90IG1hc2s7DQo+ID4+ID4+ ID4+ID4gPj4gICAgICAgaW50IHFpZCwgZXJyb3I7DQo+ID4+ID4+ID4+ID4gPj4gQEAgLTk3Niw0 ICs5NzcsMTMgQEAgdm9pZA0KPiA+PiA+PiA+PiA+ID4+ICB0YXNrcWdyb3VwX2Rlc3Ryb3koc3Ry dWN0IHRhc2txZ3JvdXAgKnFncm91cCkNCj4gPj4gPj4gPj4gPiA+PiAgew0KPiA+PiA+PiA+PiA+ ID4+DQo+ID4+ID4+ID4+ID4gPj4gK30NCj4gPj4gPj4gPj4gPiA+PiArDQo+ID4+ID4+ID4+ID4g Pj4gK3ZvaWQNCj4gPj4gPj4gPj4gPiA+PiArdGFza3Fncm91cF9jb25maWdfZ3Rhc2tfaW5pdCh2 b2lkICpjdHgsIHN0cnVjdCBncm91cHRhc2sgKmd0YXNrLA0KPiA+PiA+PiA+PiA+ID4+IGd0YXNr X2ZuX3QgKmZuLA0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIGNvbnN0IGNoYXIgKm5hbWUpDQo+ID4+ ID4+ID4+ID4gPj4gK3sNCj4gPj4gPj4gPj4gPiA+PiArDQo+ID4+ID4+ID4+ID4gPj4gKyAgICAg R1JPVVBUQVNLX0lOSVQoZ3Rhc2ssIDAsIGZuLCBjdHgpOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAg IHRhc2txZ3JvdXBfYXR0YWNoKHFncm91cF9jb25maWcsIGd0YXNrLCBndGFzaywgLTEsIG5hbWUp Ow0KPiA+PiA+PiA+PiA+ID4+ICB9DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiBN b2RpZmllZDogaGVhZC9zeXMva2Vybi9zdWJyX3dpdG5lc3MuYw0KPiA+PiA+PiA+PiA+ID4+ID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQ0KPiA+PiA+PiA+PiA+ID4+IC0tLSBoZWFkL3N5cy9rZXJuL3N1 YnJfd2l0bmVzcy5jICAgICAgV2VkIE1heSAgMiAxNzo0MTowMCAyMDE4DQo+ID4+ID4+ID4+ID4g Pj4gKHIzMzMxNzQpICsrKyBoZWFkL3N5cy9rZXJuL3N1YnJfd2l0bmVzcy5jICAgICAgV2VkIE1h eSAgMiAxOTozNjoyOQ0KPiA+PiA+PiA+PiA+ID4+IDIwMTggICAgICAgIChyMzMzMTc1KSBAQCAt NTMyLDE4ICs1MzIsMjIgQEAgc3RhdGljIHN0cnVjdA0KPiA+PiA+PiA+PiA+ID4+IHdpdG5lc3Nf b3JkZXJfbGlzdF9lbnRyeSBvcmRlcl9saXN0c1tdID0NCj4gPj4gPj4gPj4gPiA+PiAgICAgICAg KiBJUHY0IG11bHRpY2FzdDoNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgKiBwcm90b2NvbCBsb2Nr cyBiZWZvcmUgaW50ZXJmYWNlIGxvY2tzLCBhZnRlciBVRFAgbG9ja3MuDQo+ID4+ID4+ID4+ID4g Pj4gICAgICAgICovDQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgeyAiaW5fbXVsdGlfc3giLCAmbG9j a19jbGFzc19zeCB9LA0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIHsgInVkcGlucCIsICZsb2NrX2Ns YXNzX3J3IH0sDQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgeyAiaW5fbXVsdGlfbXR4IiwgJmxvY2tf Y2xhc3NfbXR4X3NsZWVwIH0sDQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgeyAiaW5fbXVsdGlfbGlz dF9tdHgiLCAmbG9ja19jbGFzc19tdHhfc2xlZXAgfSwNCj4gPj4gPj4gPj4gPiA+PiAgICAgICB7 ICJpZ21wX210eCIsICZsb2NrX2NsYXNzX210eF9zbGVlcCB9LA0KPiA+PiA+PiA+PiA+ID4+ICsg ICAgIHsgImlmbmV0X3J3IiwgJmxvY2tfY2xhc3NfcncgfSwNCj4gPj4gPj4gPj4gPiA+PiAgICAg ICB7ICJpZl9hZGRyX2xvY2siLCAmbG9ja19jbGFzc19ydyB9LA0KPiA+PiA+PiA+PiA+ID4+ICAg ICAgIHsgTlVMTCwgTlVMTCB9LA0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIC8qDQo+ID4+ID4+ID4+ ID4gPj4gICAgICAgICogSVB2NiBtdWx0aWNhc3Q6DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICog cHJvdG9jb2wgbG9ja3MgYmVmb3JlIGludGVyZmFjZSBsb2NrcywgYWZ0ZXIgVURQIGxvY2tzLg0K PiA+PiA+PiA+PiA+ID4+ICAgICAgICAqLw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIHsgImluNl9t dWx0aV9zeCIsICZsb2NrX2NsYXNzX3N4IH0sDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgeyAidWRw aW5wIiwgJmxvY2tfY2xhc3NfcncgfSwNCj4gPj4gPj4gPj4gPiA+PiAtICAgICB7ICJpbjZfbXVs dGlfbXR4IiwgJmxvY2tfY2xhc3NfbXR4X3NsZWVwIH0sDQo+ID4+ID4+ID4+ID4gPj4gKyAgICAg eyAiaW42X211bHRpX2xpc3RfbXR4IiwgJmxvY2tfY2xhc3NfbXR4X3NsZWVwIH0sDQo+ID4+ID4+ ID4+ID4gPj4gICAgICAgeyAibWxkX210eCIsICZsb2NrX2NsYXNzX210eF9zbGVlcCB9LA0KPiA+ PiA+PiA+PiA+ID4+ICsgICAgIHsgImlmbmV0X3J3IiwgJmxvY2tfY2xhc3NfcncgfSwNCj4gPj4g Pj4gPj4gPiA+PiAgICAgICB7ICJpZl9hZGRyX2xvY2siLCAmbG9ja19jbGFzc19ydyB9LA0KPiA+ PiA+PiA+PiA+ID4+ICAgICAgIHsgTlVMTCwgTlVMTCB9LA0KPiA+PiA+PiA+PiA+ID4+ICAgICAg IC8qDQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiBNb2RpZmllZDogaGVhZC9zeXMv bmV0L2lmLmMNCj4gPj4gPj4gPj4gPiA+PiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gPj4gPj4g Pj4gPiA+PiAtLS0gaGVhZC9zeXMvbmV0L2lmLmMgV2VkIE1heSAgMiAxNzo0MTowMCAyMDE4ICAg ICAgICAocjMzMzE3NCkNCj4gPj4gPj4gPj4gPiA+PiArKysgaGVhZC9zeXMvbmV0L2lmLmMgV2Vk IE1heSAgMiAxOTozNjoyOSAyMDE4ICAgICAgICAocjMzMzE3NSkNCj4gPj4gPj4gPj4gPiA+PiBA QCAtOTg1LDExICs5ODUsMTMgQEAgc3RhdGljIHZvaWQNCj4gPj4gPj4gPj4gPiA+PiAgaWZfcHVy Z2VtYWRkcnMoc3RydWN0IGlmbmV0ICppZnApDQo+ID4+ID4+ID4+ID4gPj4gIHsNCj4gPj4gPj4g Pj4gPiA+PiAgICAgICBzdHJ1Y3QgaWZtdWx0aWFkZHIgKmlmbWE7DQo+ID4+ID4+ID4+ID4gPj4g LSAgICAgc3RydWN0IGlmbXVsdGlhZGRyICpuZXh0Ow0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ ID4+ID4gPj4gICAgICAgSUZfQUREUl9XTE9DSyhpZnApOw0KPiA+PiA+PiA+PiA+ID4+IC0gICAg IFRBSUxRX0ZPUkVBQ0hfU0FGRShpZm1hLCAmaWZwLT5pZl9tdWx0aWFkZHJzLCBpZm1hX2xpbmss IG5leHQpDQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgd2hpbGUgKCFUQUlMUV9FTVBUWSgmaWZwLT5p Zl9tdWx0aWFkZHJzKSkgew0KPiA+PiA+PiA+PiA+ID4+ICsgICAgICAgICAgICAgaWZtYSA9IFRB SUxRX0ZJUlNUKCZpZnAtPmlmX211bHRpYWRkcnMpOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgICAg ICAgICAgVEFJTFFfUkVNT1ZFKCZpZnAtPmlmX211bHRpYWRkcnMsIGlmbWEsIGlmbWFfbGluayk7 DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICAgICAgICBpZl9kZWxtdWx0aV9sb2NrZWQoaWZwLCBp Zm1hLCAxKTsNCj4gPj4gPj4gPj4gPiA+PiArICAgICB9DQo+ID4+ID4+ID4+ID4gPj4gICAgICAg SUZfQUREUl9XVU5MT0NLKGlmcCk7DQo+ID4+ID4+ID4+ID4gPj4gIH0NCj4gPj4gPj4gPj4gPiA+ Pg0KPiA+PiA+PiA+PiA+ID4+IEBAIC0zNDI5LDYgKzM0MzEsMTIgQEAgaWZfYWRkbXVsdGkoc3Ry dWN0IGlmbmV0ICppZnAsIHN0cnVjdCBzb2NrYWRkciAqc2EsDQo+ID4+ID4+ID4+ID4gPj4gICAg ICAgc3RydWN0IHNvY2thZGRyX2RsIHNkbDsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBpbnQgZXJy b3I7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiArI2lmZGVmIElORVQNCj4gPj4g Pj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX1VOTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4g Pj4gPiA+PiArI2VuZGlmDQo+ID4+ID4+ID4+ID4gPj4gKyNpZmRlZiBJTkVUNg0KPiA+PiA+PiA+ PiA+ID4+ICsgICAgIElONl9NVUxUSV9MSVNUX1VOTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPj4g PiA+PiArI2VuZGlmDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgLyoNCj4gPj4gPj4gPj4gPiA+PiAg ICAgICAgKiBJZiB0aGUgYWRkcmVzcyBpcyBhbHJlYWR5IHByZXNlbnQsIHJldHVybiBhIG5ldyBy ZWZlcmVuY2UgdG8gaXQ7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICogb3RoZXJ3aXNlLCBhbGxv Y2F0ZSBzdG9yYWdlIGFuZCBzZXQgdXAgYSBuZXcgYWRkcmVzcy4NCj4gPj4gPj4gPj4gPiA+PiBA QCAtMzYxMCw2ICszNjE4LDkgQEAgaWZfZGVsbXVsdGlfaWZtYShzdHJ1Y3QgaWZtdWx0aWFkZHIg KmlmbWEpDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgc3RydWN0IGlmbmV0ICppZnA7DQo+ID4+ID4+ ID4+ID4gPj4gICAgICAgaW50IGxhc3RyZWY7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4g PiA+PiArI2lmZGVmIElORVQNCj4gPj4gPj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX1VO TE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPj4gPiA+PiArI2VuZGlmDQo+ID4+ID4+ID4+ID4gPj4g ICAgICAgaWZwID0gaWZtYS0+aWZtYV9pZnA7DQo+ID4+ID4+ID4+ID4gPj4gICNpZmRlZiBESUFH Tk9TVElDDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgaWYgKGlmcCA9PSBOVUxMKSB7DQo+ID4+ID4+ ID4+ID4gPj4gQEAgLTM3MTEsOCArMzcyMiw3IEBAIGlmX2RlbG11bHRpX2xvY2tlZChzdHJ1Y3Qg aWZuZXQgKmlmcCwgc3RydWN0DQo+ID4+ID4+ID4+ID4gPj4gaWZtdWx0aWFkIGlmX2ZyZWVtdWx0 aShsbF9pZm1hKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgIH0NCj4gPj4gPj4gPj4g PiA+PiAgICAgICB9DQo+ID4+ID4+ID4+ID4gPj4gLQ0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIGlm IChpZnAgIT0gTlVMTCkNCj4gPj4gPj4gPj4gPiA+PiArICAgICBpZiAoaWZwICE9IE5VTEwgJiYg ZGV0YWNoaW5nID09IDApDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICAgICAgICBUQUlMUV9SRU1P VkUoJmlmcC0+aWZfbXVsdGlhZGRycywgaWZtYSwgaWZtYV9saW5rKTsNCj4gPj4gPj4gPj4gPiA+ Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIGlmX2ZyZWVtdWx0aShpZm1hKTsNCj4gPj4gPj4gPj4g PiA+Pg0KPiA+PiA+PiA+PiA+ID4+IE1vZGlmaWVkOiBoZWFkL3N5cy9uZXRpbmV0L2lnbXAuYw0K PiA+PiA+PiA+PiA+ID4+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA+PiA+PiA+PiA+ID4+IC0t LSBoZWFkL3N5cy9uZXRpbmV0L2lnbXAuYyAgIFdlZCBNYXkgIDIgMTc6NDE6MDAgMjAxOCAgICAg ICAgKHIzMzMxNzQpDQo+ID4+ID4+ID4+ID4gPj4gKysrIGhlYWQvc3lzL25ldGluZXQvaWdtcC5j ICAgV2VkIE1heSAgMiAxOTozNjoyOSAyMDE4ICAgICAgICAocjMzMzE3NSkNCj4gPj4gPj4gPj4g PiA+PiBAQCAtMTM2LDcgKzEzNiw3IEBAIHN0YXRpYyBpbnQgICAgICAgIGlnbXBfdjNfZW5xdWV1 ZV9ncm91cF9yZWNvcmQoc3RydWN0DQo+ID4+ID4+ID4+ID4gPj4gbWJ1ZnENCj4gPj4gPj4gPj4g PiA+PiAqIHN0cnVjdCBpbl9tdWx0aSAqLCBjb25zdCBpbnQsIGNvbnN0IGludCwgY29uc3QgaW50 KTsNCj4gPj4gPj4gPj4gPiA+PiAgc3RhdGljIGludCAgIGlnbXBfdjNfZW5xdWV1ZV9maWx0ZXJf Y2hhbmdlKHN0cnVjdCBtYnVmcSAqLA0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgICAg IHN0cnVjdCBpbl9tdWx0aSAqKTsNCj4gPj4gPj4gPj4gPiA+PiAtc3RhdGljIHZvaWQgIGlnbXBf djNfcHJvY2Vzc19ncm91cF90aW1lcnMoc3RydWN0IGlnbXBfaWZzb2Z0YyAqLA0KPiA+PiA+PiA+ PiA+ID4+ICtzdGF0aWMgdm9pZCAgaWdtcF92M19wcm9jZXNzX2dyb3VwX3RpbWVycyhzdHJ1Y3Qg aW5fbXVsdGlfaGVhZCAqLA0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgICAgIHN0cnVj dCBtYnVmcSAqLCBzdHJ1Y3QgbWJ1ZnEgKiwgc3RydWN0IGluX211bHRpICosDQo+ID4+ID4+ID4+ ID4gPj4gICAgICAgICAgICAgICAgICAgY29uc3QgaW50KTsNCj4gPj4gPj4gPj4gPiA+PiAgc3Rh dGljIGludCAgIGlnbXBfdjNfbWVyZ2Vfc3RhdGVfY2hhbmdlcyhzdHJ1Y3QgaW5fbXVsdGkgKiwN Cj4gPj4gPj4gPj4gPiA+PiBAQCAtMTYyLDEyICsxNjIsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBuZXRpc3JfaGFuZGxlciBpZ21wX25oID0gew0KPiA+PiA+PiA+PiA+ID4+ICAgKiB0aGVtc2Vs dmVzIGFyZSBub3QgdmlydHVhbGl6ZWQuDQo+ID4+ID4+ID4+ID4gPj4gICAqDQo+ID4+ID4+ID4+ ID4gPj4gICAqIExvY2tpbmc6DQo+ID4+ID4+ID4+ID4gPj4gLSAqICAqIFRoZSBwZXJtaXR0ZWQg bG9jayBvcmRlciBpczogSU5fTVVMVElfTE9DSywgSUdNUF9MT0NLLA0KPiA+PiA+PiA+PiA+ID4+ IElGX0FERFJfTE9DSy4NCj4gPj4gPj4gPj4gPiA+PiArICogICogVGhlIHBlcm1pdHRlZCBsb2Nr IG9yZGVyIGlzOiBJTl9NVUxUSV9MSVNUX0xPQ0ssIElHTVBfTE9DSywNCj4gPj4gPj4gPj4gPiA+ PiBJRl9BRERSX0xPQ0suDQo+ID4+ID4+ID4+ID4gPj4gICAqICAgIEFueSBtYXkgYmUgdGFrZW4g aW5kZXBlbmRlbnRseTsgaWYgYW55IGFyZSBoZWxkIGF0IHRoZSBzYW1lDQo+ID4+ID4+ID4+ID4g Pj4gICAqICAgIHRpbWUsIHRoZSBhYm92ZSBsb2NrIG9yZGVyIG11c3QgYmUgZm9sbG93ZWQuDQo+ ID4+ID4+ID4+ID4gPj4gICAqICAqIEFsbCBvdXRwdXQgaXMgZGVsZWdhdGVkIHRvIHRoZSBuZXRp c3IuDQo+ID4+ID4+ID4+ID4gPj4gICAqICAgIE5vdyB0aGF0IEdpYW50IGhhcyBiZWVuIGVsaW1p bmF0ZWQsIHRoZSBuZXRpc3IgbWF5IGJlIGlubGluZWQuDQo+ID4+ID4+ID4+ID4gPj4gLSAqICAq IElOX01VTFRJX0xPQ0sgY292ZXJzIGluX211bHRpLg0KPiA+PiA+PiA+PiA+ID4+ICsgKiAgKiBJ Tl9NVUxUSV9MSVNUX0xPQ0sgY292ZXJzIGluX211bHRpLg0KPiA+PiA+PiA+PiA+ID4+ICAgKiAg KiBJR01QX0xPQ0sgY292ZXJzIGlnbXBfaWZzb2Z0YyBhbmQgYW55IGdsb2JhbCB2YXJpYWJsZXMg aW4gdGhpcw0KPiA+PiA+PiA+PiA+ID4+IGZpbGUsDQo+ID4+ID4+ID4+ID4gPj4gICAqICAgIGlu Y2x1ZGluZyB0aGUgb3V0cHV0IHF1ZXVlLg0KPiA+PiA+PiA+PiA+ID4+ICAgKiAgKiBJRl9BRERS X0xPQ0sgY292ZXJzIGlmX211bHRpYWRkcnMsIHdoaWNoIGlzIHVzZWQgZm9yIGEgdmFyaWV0eSBv Zg0KPiA+PiA+PiA+PiA+ID4+IEBAIC00NDEsNyArNDQxLDcgQEAgc3lzY3RsX2lnbXBfaWZpbmZv KFNZU0NUTF9IQU5ETEVSX0FSR1MpDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgaWYgKGVycm9yKQ0K PiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgcmV0dXJuIChlcnJvcik7DQo+ID4+ID4+ID4+ ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAtICAgICBJTl9NVUxUSV9MT0NLKCk7DQo+ID4+ID4+ID4+ ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAg SUdNUF9MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgICAgICBpZiAo bmFtZVswXSA8PSAwIHx8IG5hbWVbMF0gPiBWX2lmX2luZGV4KSB7DQo+ID4+ID4+ID4+ID4gPj4g QEAgLTQ3NSw3ICs0NzUsNyBAQCBzeXNjdGxfaWdtcF9pZmluZm8oU1lTQ1RMX0hBTkRMRVJfQVJH UykNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICBvdXRfbG9ja2VkOg0KPiA+PiA+ PiA+PiA+ID4+ICAgICAgIElHTVBfVU5MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgSU5f TVVMVElfVU5MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9VTkxP Q0soKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICByZXR1cm4gKGVycm9yKTsNCj4gPj4gPj4gPj4g PiA+PiAgfQ0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gQEAgLTU4Niw3ICs1ODYs NiBAQCBpZ2lfYWxsb2NfbG9ja2VkKC8qY29uc3QqLyBzdHJ1Y3QgaWZuZXQgKmlmcCkNCj4gPj4g Pj4gPj4gPiA+PiAgICAgICBpZ2ktPmlnaV9xaSA9IElHTVBfUUlfSU5JVDsNCj4gPj4gPj4gPj4g PiA+PiAgICAgICBpZ2ktPmlnaV9xcmkgPSBJR01QX1FSSV9JTklUOw0KPiA+PiA+PiA+PiA+ID4+ ICAgICAgIGlnaS0+aWdpX3VyaSA9IElHTVBfVVJJX0lOSVQ7DQo+ID4+ID4+ID4+ID4gPj4gLSAg ICAgU0xJU1RfSU5JVCgmaWdpLT5pZ2lfcmVsaW5taGVhZCk7DQo+ID4+ID4+ID4+ID4gPj4gICAg ICAgbWJ1ZnFfaW5pdCgmaWdpLT5pZ2lfZ3EsIElHTVBfTUFYX1JFU1BPTlNFX1BBQ0tFVFMpOw0K PiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgTElTVF9JTlNFUlRfSEVBRCgm Vl9pZ2lfaGVhZCwgaWdpLCBpZ2lfbGluayk7DQo+ID4+ID4+ID4+ID4gPj4gQEAgLTYxMiwxMSAr NjExLDEyIEBAIGlnbXBfaWZkZXRhY2goc3RydWN0IGlmbmV0ICppZnApDQo+ID4+ID4+ID4+ID4g Pj4gIHsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBzdHJ1Y3QgaWdtcF9pZnNvZnRjICAgICAqaWdp Ow0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIHN0cnVjdCBpZm11bHRpYWRkciAgICAgICppZm1hOw0K PiA+PiA+PiA+PiA+ID4+IC0gICAgIHN0cnVjdCBpbl9tdWx0aSAgICAgICAgICppbm0sICp0aW5t Ow0KPiA+PiA+PiA+PiA+ID4+IC0NCj4gPj4gPj4gPj4gPiA+PiArICAgICBzdHJ1Y3QgaW5fbXVs dGkgICAgICAgICAqaW5tOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIHN0cnVjdCBpbl9tdWx0aV9o ZWFkIGlubV9mcmVlX3RtcDsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBDVFIzKEtUUl9JR01QVjMs ICIlczogY2FsbGVkIGZvciBpZnAgJXAoJXMpIiwgX19mdW5jX18sIGlmcCwNCj4gPj4gPj4gPj4g PiA+PiAgICAgICAgICAgaWZwLT5pZl94bmFtZSk7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4g Pj4gPiA+PiArICAgICBTTElTVF9JTklUKCZpbm1fZnJlZV90bXApOw0KPiA+PiA+PiA+PiA+ID4+ ICAgICAgIElHTVBfTE9DSygpOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gICAg ICAgaWdpID0gKChzdHJ1Y3QgaW5faWZpbmZvICopaWZwLT5pZl9hZmRhdGFbQUZfSU5FVF0pLT5p aV9pZ21wOw0KPiA+PiA+PiA+PiA+ID4+IEBAIC02MzEsMjQgKzYzMSwxNSBAQCBpZ21wX2lmZGV0 YWNoKHN0cnVjdCBpZm5ldCAqaWZwKQ0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgKCIlczogaWZtYV9wcm90b3NwZWMgaXMgTlVMTCIsIF9fZnVuY19fKSk7DQo+ID4+ ID4+ID4+ID4gPj4gICNlbmRpZg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgICAgICAg ICBpbm0gPSAoc3RydWN0IGluX211bHRpICopaWZtYS0+aWZtYV9wcm90b3NwZWM7DQo+ID4+ID4+ ID4+ID4gPj4gLSAgICAgICAgICAgICAgICAgICAgIGlmIChpbm0tPmlubV9zdGF0ZSA9PSBJR01Q X0xFQVZJTkdfTUVNQkVSKSB7DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU0xJU1RfSU5TRVJUX0hFQUQoJmlnaS0+aWdpX3JlbGlubWhlYWQsDQo+ID4+ID4+ ID4+ID4gPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlubSwgaW5tX25yZWxl KTsNCj4gPj4gPj4gPj4gPiA+PiAtICAgICAgICAgICAgICAgICAgICAgfQ0KPiA+PiA+PiA+PiA+ ID4+ICsgICAgICAgICAgICAgICAgICAgICBpZiAoaW5tLT5pbm1fc3RhdGUgPT0gSUdNUF9MRUFW SU5HX01FTUJFUikNCj4gPj4gPj4gPj4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbm1fcmVsZV9sb2NrZWQoJmlubV9mcmVlX3RtcCwgaW5tKTsNCj4gPj4gPj4gPj4gPiA+PiAg ICAgICAgICAgICAgICAgICAgICAgaW5tX2NsZWFyX3JlY29yZGVkKGlubSk7DQo+ID4+ID4+ID4+ ID4gPj4gICAgICAgICAgICAgICB9DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICAgICAgICBJRl9B RERSX1JVTkxPQ0soaWZwKTsNCj4gPj4gPj4gPj4gPiA+PiAtICAgICAgICAgICAgIC8qDQo+ID4+ ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICAgKiBGcmVlIHRoZSBpbl9tdWx0aSByZWZlcmVuY2Uo cykgZm9yIHRoaXMgSUdNUCBsaWZlY3ljbGUuDQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgICAgICAg ICAgKi8NCj4gPj4gPj4gPj4gPiA+PiAtICAgICAgICAgICAgIFNMSVNUX0ZPUkVBQ0hfU0FGRShp bm0sICZpZ2ktPmlnaV9yZWxpbm1oZWFkLCBpbm1fbnJlbGUsDQo+ID4+ID4+ID4+ID4gPj4gLSAg ICAgICAgICAgICAgICAgdGlubSkgew0KPiA+PiA+PiA+PiA+ID4+IC0gICAgICAgICAgICAgICAg ICAgICBTTElTVF9SRU1PVkVfSEVBRCgmaWdpLT5pZ2lfcmVsaW5taGVhZCwgaW5tX25yZWxlKTsN Cj4gPj4gPj4gPj4gPiA+PiAtICAgICAgICAgICAgICAgICAgICAgaW5tX3JlbGVhc2VfbG9ja2Vk KGlubSk7DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICB9DQo+ID4+ID4+ID4+ID4gPj4g KyAgICAgICAgICAgICBpbm1fcmVsZWFzZV9saXN0X2RlZmVycmVkKCZpbm1fZnJlZV90bXApOw0K PiA+PiA+PiA+PiA+ID4+ICAgICAgIH0NCj4gPj4gPj4gPj4gPiA+PiAtDQo+ID4+ID4+ID4+ID4g Pj4gICAgICAgSUdNUF9VTkxPQ0soKTsNCj4gPj4gPj4gPj4gPiA+PiArDQo+ID4+ID4+ID4+ID4g Pj4gIH0NCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAvKg0KPiA+PiA+PiA+PiA+ ID4+IEBAIC02ODQsMTEgKzY3NSw2IEBAIGlnaV9kZWxldGVfbG9ja2VkKGNvbnN0IHN0cnVjdCBp Zm5ldCAqaWZwKQ0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICBtYnVmcV9k cmFpbigmaWdpLT5pZ2lfZ3EpOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gICAg ICAgICAgICAgICAgICAgICAgIExJU1RfUkVNT1ZFKGlnaSwgaWdpX2xpbmspOw0KPiA+PiA+PiA+ PiA+ID4+IC0NCj4gPj4gPj4gPj4gPiA+PiAtICAgICAgICAgICAgICAgICAgICAgS0FTU0VSVChT TElTVF9FTVBUWSgmaWdpLT5pZ2lfcmVsaW5taGVhZCksDQo+ID4+ID4+ID4+ID4gPj4gLSAgICAg ICAgICAgICAgICAgICAgICAgICAoIiVzOiB0aGVyZSBhcmUgZGFuZ2xpbmcgaW5fbXVsdGkgcmVm ZXJlbmNlcyIsDQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICBfX2Z1 bmNfXykpOw0KPiA+PiA+PiA+PiA+ID4+IC0NCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAg ICAgICAgICAgZnJlZShpZ2ksIE1fSUdNUCk7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICAgICAg ICAgICAgICAgIHJldHVybjsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgIH0NCj4gPj4g Pj4gPj4gPiA+PiBAQCAtNzIyLDcgKzcwOCw3IEBAIGlnbXBfaW5wdXRfdjFfcXVlcnkoc3RydWN0 IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBpcA0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIH0NCj4g Pj4gPj4gPj4gPiA+PiAgICAgICBJR01QU1RBVF9JTkMoaWdwc19yY3ZfZ2VuX3F1ZXJpZXMpOw0K PiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgSU5fTVVMVElfTE9DSygpOw0K PiA+PiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfTE9DSygpOw0KPiA+PiA+PiA+PiA+ ID4+ICAgICAgIElHTVBfTE9DSygpOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4g ICAgICAgaWdpID0gKChzdHJ1Y3QgaW5faWZpbmZvICopaWZwLT5pZl9hZmRhdGFbQUZfSU5FVF0p LT5paV9pZ21wOw0KPiA+PiA+PiA+PiA+ID4+IEBAIC03NzgsNyArNzY0LDcgQEAgaWdtcF9pbnB1 dF92MV9xdWVyeShzdHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3Qgc3RydWN0IGlwDQo+ID4+ID4+ID4+ ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgb3V0X2xvY2tlZDoNCj4gPj4gPj4gPj4gPiA+PiAgICAg ICBJR01QX1VOTE9DSygpOw0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIElOX01VTFRJX1VOTE9DSygp Ow0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfVU5MT0NLKCk7DQo+ID4+ID4+ ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgICAgICByZXR1cm4gKDApOw0KPiA+PiA+PiA+PiA+ ID4+ICB9DQo+ID4+ID4+ID4+ID4gPj4gQEAgLTgxNiw3ICs4MDIsNyBAQCBpZ21wX2lucHV0X3Yy X3F1ZXJ5KHN0cnVjdCBpZm5ldCAqaWZwLCBjb25zdCBzdHJ1Y3QgaXANCj4gPj4gPj4gPj4gPiA+ PiAgICAgICAgICAgICAgIElHTVBTVEFUX0lOQyhpZ3BzX3Jjdl9ncm91cF9xdWVyaWVzKTsNCj4g Pj4gPj4gPj4gPiA+PiAgICAgICB9DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAt ICAgICBJTl9NVUxUSV9MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElT VF9MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgSUdNUF9MT0NLKCk7DQo+ID4+ID4+ID4+ ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgICAgICBpZ2kgPSAoKHN0cnVjdCBpbl9pZmluZm8gKilp ZnAtPmlmX2FmZGF0YVtBRl9JTkVUXSktPmlpX2lnbXA7DQo+ID4+ID4+ID4+ID4gPj4gQEAgLTg3 Miw3ICs4NTgsNyBAQCBpZ21wX2lucHV0X3YyX3F1ZXJ5KHN0cnVjdCBpZm5ldCAqaWZwLCBjb25z dCBzdHJ1Y3QgaXANCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICBvdXRfbG9ja2Vk Og0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIElHTVBfVU5MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4g LSAgICAgSU5fTVVMVElfVU5MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElf TElTVF9VTkxPQ0soKTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIHJl dHVybiAoMCk7DQo+ID4+ID4+ID4+ID4gPj4gIH0NCj4gPj4gPj4gPj4gPiA+PiBAQCAtODk5LDcg Kzg4NSw3IEBAIGlnbXBfdjJfdXBkYXRlX2dyb3VwKHN0cnVjdCBpbl9tdWx0aSAqaW5tLCBjb25z dCBpbnQgdA0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIENUUjQoS1RSX0lHTVBWMywgIjB4JTA4eDog JXMvJXMgdGltZXI9JWQiLCBfX2Z1bmNfXywNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgbnRv aGwoaW5tLT5pbm1fYWRkci5zX2FkZHIpLCBpbm0tPmlubV9pZnAtPmlmX3huYW1lLCB0aW1lcik7 DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAtICAgICBJTl9NVUxUSV9MT0NLX0FT U0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfTE9DS19BU1NFUlQo KTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIHN3aXRjaCAoaW5tLT5p bm1fc3RhdGUpIHsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBjYXNlIElHTVBfTk9UX01FTUJFUjoN Cj4gPj4gPj4gPj4gPiA+PiBAQCAtMTAxMSw3ICs5OTcsNyBAQCBpZ21wX2lucHV0X3YzX3F1ZXJ5 KHN0cnVjdCBpZm5ldCAqaWZwLCBjb25zdCBzdHJ1Y3QNCj4gPj4gPj4gPj4gPiA+PiBpcCBJR01Q U1RBVF9JTkMoaWdwc19yY3ZfZ3NyX3F1ZXJpZXMpOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIH0N Cj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0soKTsN Cj4gPj4gPj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0soKTsNCj4gPj4gPj4gPj4g PiA+PiAgICAgICBJR01QX0xPQ0soKTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ ICAgICAgIGlnaSA9ICgoc3RydWN0IGluX2lmaW5mbyAqKWlmcC0+aWZfYWZkYXRhW0FGX0lORVRd KS0+aWlfaWdtcDsNCj4gPj4gPj4gPj4gPiA+PiBAQCAtMTA5Miw3ICsxMDc4LDcgQEAgaWdtcF9p bnB1dF92M19xdWVyeShzdHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3Qgc3RydWN0DQo+ID4+ID4+ID4+ ID4gPj4gaXANCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICBvdXRfbG9ja2VkOg0K PiA+PiA+PiA+PiA+ID4+ICAgICAgIElHTVBfVU5MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gLSAg ICAgSU5fTVVMVElfVU5MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElT VF9VTkxPQ0soKTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIHJldHVy biAoMCk7DQo+ID4+ID4+ID4+ID4gPj4gIH0NCj4gPj4gPj4gPj4gPiA+PiBAQCAtMTEwOSw3ICsx MDk1LDcgQEAgaWdtcF9pbnB1dF92M19ncm91cF9xdWVyeShzdHJ1Y3QgaW5fbXVsdGkgKmlubSwN Cj4gPj4gPj4gPj4gPiA+PiBzdHJ1Y3QgaW50ICAgICAgICAgICAgICAgICAgICAgIHJldHZhbDsN Cj4gPj4gPj4gPj4gPiA+PiAgICAgICB1aW50MTZfdCAgICAgICAgICAgICAgICAgbnNyYzsNCj4g Pj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0tfQVNTRVJU KCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLX0FTU0VSVCgpOw0K PiA+PiA+PiA+PiA+ID4+ICAgICAgIElHTVBfTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPj4gPiA+ Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIHJldHZhbCA9IDA7DQo+ID4+ID4+ID4+ID4gPj4gQEAg LTEyNDYsNyArMTIzMiw3IEBAIGlnbXBfaW5wdXRfdjFfcmVwb3J0KHN0cnVjdCBpZm5ldCAqaWZw LCAvKmNvbnN0Ki8NCj4gPj4gPj4gPj4gPiA+PiBzdHJ1DQo+ID4+ID4+ID4+ID4gPj4gICAgICAg ICogSWYgd2UgYXJlIGEgbWVtYmVyIG9mIHRoaXMgZ3JvdXAsIGFuZCBvdXIgbWVtYmVyc2hpcCBz aG91bGQgYmUNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgKiByZXBvcnRlZCwgc3RvcCBvdXIgZ3Jv dXAgdGltZXIgYW5kIHRyYW5zaXRpb24gdG8gdGhlICdsYXp5Jw0KPiA+PiA+PiA+PiA+ID4+IHN0 YXRlLiAqLw0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0soKTsNCj4gPj4gPj4g Pj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0soKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAg ICBpbm0gPSBpbm1fbG9va3VwKGlmcCwgaWdtcC0+aWdtcF9ncm91cCk7DQo+ID4+ID4+ID4+ID4g Pj4gICAgICAgaWYgKGlubSAhPSBOVUxMKSB7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICAgICAg ICBzdHJ1Y3QgaWdtcF9pZnNvZnRjICppZ2k7DQo+ID4+ID4+ID4+ID4gPj4gQEAgLTEzMDUsNyAr MTI5MSw3IEBAIGlnbXBfaW5wdXRfdjFfcmVwb3J0KHN0cnVjdCBpZm5ldCAqaWZwLCAvKmNvbnN0 Ki8NCj4gPj4gPj4gPj4gPiA+PiBzdHJ1IH0NCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ ID4+ICBvdXRfbG9ja2VkOg0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIElOX01VTFRJX1VOTE9DSygp Ow0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfVU5MT0NLKCk7DQo+ID4+ID4+ ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgICAgICByZXR1cm4gKDApOw0KPiA+PiA+PiA+PiA+ ID4+ICB9DQo+ID4+ID4+ID4+ID4gPj4gQEAgLTEzNzMsNyArMTM1OSw3IEBAIGlnbXBfaW5wdXRf djJfcmVwb3J0KHN0cnVjdCBpZm5ldCAqaWZwLCAvKmNvbnN0Ki8NCj4gPj4gPj4gPj4gPiA+PiBz dHJ1DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICogcmVwb3J0ZWQsIGFuZCBvdXIgZ3JvdXAgdGlt ZXIgaXMgcGVuZGluZyBvciBhYm91dCB0byBiZSByZXNldCwNCj4gPj4gPj4gPj4gPiA+PiAgICAg ICAgKiBzdG9wIG91ciBncm91cCB0aW1lciBieSB0cmFuc2l0aW9uaW5nIHRvIHRoZSAnbGF6eScg c3RhdGUuDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICovDQo+ID4+ID4+ID4+ID4gPj4gLSAgICAg SU5fTVVMVElfTE9DSygpOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfTE9D SygpOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIGlubSA9IGlubV9sb29rdXAoaWZwLCBpZ21wLT5p Z21wX2dyb3VwKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBpZiAoaW5tICE9IE5VTEwpIHsNCj4g Pj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgIHN0cnVjdCBpZ21wX2lmc29mdGMgKmlnaTsNCj4g Pj4gPj4gPj4gPiA+PiBAQCAtMTQxOCw3ICsxNDA0LDcgQEAgaWdtcF9pbnB1dF92Ml9yZXBvcnQo c3RydWN0IGlmbmV0ICppZnAsIC8qY29uc3QqLw0KPiA+PiA+PiA+PiA+ID4+IHN0cnUgfQ0KPiA+ PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gIG91dF9sb2NrZWQ6DQo+ID4+ID4+ID4+ID4g Pj4gLSAgICAgSU5fTVVMVElfVU5MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVM VElfTElTVF9VTkxPQ0soKTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAg IHJldHVybiAoMCk7DQo+ID4+ID4+ID4+ID4gPj4gIH0NCj4gPj4gPj4gPj4gPiA+PiBAQCAtMTY0 Nyw2ICsxNjMzLDcgQEAgaWdtcF9mYXN0dGltb192bmV0KHZvaWQpDQo+ID4+ID4+ID4+ID4gPj4g ICAgICAgc3RydWN0IGlnbXBfaWZzb2Z0YyAgICAgKmlnaTsNCj4gPj4gPj4gPj4gPiA+PiAgICAg ICBzdHJ1Y3QgaWZtdWx0aWFkZHIgICAgICAqaWZtYTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBz dHJ1Y3QgaW5fbXVsdGkgICAgICAgICAqaW5tOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIHN0cnVj dCBpbl9tdWx0aV9oZWFkIGlubV9mcmVlX3RtcDsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBpbnQg ICAgICAgICAgICAgICAgICAgICAgbG9vcCwgdXJpX2Zhc3RoejsNCj4gPj4gPj4gPj4gPiA+Pg0K PiA+PiA+PiA+PiA+ID4+ICAgICAgIGxvb3AgPSAwOw0KPiA+PiA+PiA+PiA+ID4+IEBAIC0xNjYy LDcgKzE2NDksOCBAQCBpZ21wX2Zhc3R0aW1vX3ZuZXQodm9pZCkNCj4gPj4gPj4gPj4gPiA+PiAg ICAgICAgICAgIVZfc3RhdGVfY2hhbmdlX3RpbWVyc19ydW5uaW5nKQ0KPiA+PiA+PiA+PiA+ID4+ ICAgICAgICAgICAgICAgcmV0dXJuOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4g LSAgICAgSU5fTVVMVElfTE9DSygpOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIFNMSVNUX0lOSVQo JmlubV9mcmVlX3RtcCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NL KCk7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgSUdNUF9MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4N Cj4gPj4gPj4gPj4gPiA+PiAgICAgICAvKg0KPiA+PiA+PiA+PiA+ID4+IEBAIC0xNzIwLDcgKzE3 MDgsNyBAQCBpZ21wX2Zhc3R0aW1vX3ZuZXQodm9pZCkNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdpLT5pZ2lfdmVyc2lvbik7DQo+ID4+ID4+ID4+ ID4gPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4+ID4+ID4+ID4g Pj4gICAgICAgICAgICAgICAgICAgICAgIGNhc2UgSUdNUF9WRVJTSU9OXzM6DQo+ID4+ID4+ID4+ ID4gPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdtcF92M19wcm9jZXNzX2dyb3Vw X3RpbWVycyhpZ2ksICZxcnEsDQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWdtcF92M19wcm9jZXNzX2dyb3VwX3RpbWVycygmaW5tX2ZyZWVfdG1wLA0KPiA+ PiA+PiA+PiA+ID4+ICZxcnEsICZzY3EsIGlubSwgdXJpX2Zhc3Roeik7DQo+ID4+ID4+ID4+ID4g Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4+ID4+ID4+ID4gPj4g ICAgICAgICAgICAgICAgICAgICAgIH0NCj4gPj4gPj4gPj4gPiA+PiBAQCAtMTcyOCw4ICsxNzE2 LDYgQEAgaWdtcF9mYXN0dGltb192bmV0KHZvaWQpDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICAg ICAgICBJRl9BRERSX1JVTkxPQ0soaWZwKTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ ID4+ICAgICAgICAgICAgICAgaWYgKGlnaS0+aWdpX3ZlcnNpb24gPT0gSUdNUF9WRVJTSU9OXzMp IHsNCj4gPj4gPj4gPj4gPiA+PiAtICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGluX211bHRp ICAgICAgICAgKnRpbm07DQo+ID4+ID4+ID4+ID4gPj4gLQ0KPiA+PiA+PiA+PiA+ID4+ICAgICAg ICAgICAgICAgICAgICAgICBpZ21wX2Rpc3BhdGNoX3F1ZXVlKCZxcnEsIDAsIGxvb3ApOw0KPiA+ PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICBpZ21wX2Rpc3BhdGNoX3F1ZXVlKCZz Y3EsIDAsIGxvb3ApOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gQEAgLTE3Mzcs MTggKzE3MjMsMTMgQEAgaWdtcF9mYXN0dGltb192bmV0KHZvaWQpDQo+ID4+ID4+ID4+ID4gPj4g ICAgICAgICAgICAgICAgICAgICAgICAqIEZyZWUgdGhlIGluX211bHRpIHJlZmVyZW5jZShzKSBm b3IgdGhpcw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgKiBJR01QIGxp ZmVjeWNsZS4NCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgICAgICAgICAgICovDQo+ID4+ ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICAgICAgICAgIFNMSVNUX0ZPUkVBQ0hfU0FGRShpbm0s ICZpZ2ktPmlnaV9yZWxpbm1oZWFkLA0KPiA+PiA+PiA+PiA+ID4+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgaW5tX25yZWxlLCB0aW5tKSB7DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU0xJU1RfUkVNT1ZFX0hFQUQoJmlnaS0+aWdpX3JlbGlubWhlYWQs DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlubV9u cmVsZSk7DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5t X3JlbGVhc2VfbG9ja2VkKGlubSk7DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICAgICAg ICAgIH0NCj4gPj4gPj4gPj4gPiA+PiArICAgICAgICAgICAgICAgICAgICAgaW5tX3JlbGVhc2Vf bGlzdF9kZWZlcnJlZCgmaW5tX2ZyZWVfdG1wKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAg ICAgIH0NCj4gPj4gPj4gPj4gPiA+PiAgICAgICB9DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4g Pj4gPiA+PiAgb3V0X2xvY2tlZDoNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBJR01QX1VOTE9DSygp Ow0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIElOX01VTFRJX1VOTE9DSygpOw0KPiA+PiA+PiA+PiA+ ID4+ICsgICAgIElOX01VTFRJX0xJU1RfVU5MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gIH0NCj4g Pj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAvKg0KPiA+PiA+PiA+PiA+ID4+IEBAIC0x NzYwLDcgKzE3NDEsNyBAQCBpZ21wX3YxdjJfcHJvY2Vzc19ncm91cF90aW1lcihzdHJ1Y3QgaW5f bXVsdGkgKmlubSwNCj4gPj4gPj4gPj4gPiA+PiBjbyB7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAg aW50IHJlcG9ydF90aW1lcl9leHBpcmVkOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4g Pj4gLSAgICAgSU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPj4gPiA+PiArICAgICBJ Tl9NVUxUSV9MSVNUX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgSUdNUF9M T0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgaWYg KGlubS0+aW5tX3RpbWVyID09IDApIHsNCj4gPj4gPj4gPj4gPiA+PiBAQCAtMTgwMiwxNCArMTc4 MywxNCBAQCBpZ21wX3YxdjJfcHJvY2Vzc19ncm91cF90aW1lcihzdHJ1Y3QgaW5fbXVsdGkNCj4g Pj4gPj4gPj4gPiA+PiAqaW5tLCBjbw0KPiA+PiA+PiA+PiA+ID4+ICAgKiBOb3RlOiBVbmxvY2tl ZCByZWFkIGZyb20gaWdpLg0KPiA+PiA+PiA+PiA+ID4+ICAgKi8NCj4gPj4gPj4gPj4gPiA+PiAg c3RhdGljIHZvaWQNCj4gPj4gPj4gPj4gPiA+PiAtaWdtcF92M19wcm9jZXNzX2dyb3VwX3RpbWVy cyhzdHJ1Y3QgaWdtcF9pZnNvZnRjICppZ2ksDQo+ID4+ID4+ID4+ID4gPj4gK2lnbXBfdjNfcHJv Y2Vzc19ncm91cF90aW1lcnMoc3RydWN0IGluX211bHRpX2hlYWQgKmlubWgsDQo+ID4+ID4+ID4+ ID4gPj4gICAgICBzdHJ1Y3QgbWJ1ZnEgKnFycSwgc3RydWN0IG1idWZxICpzY3EsDQo+ID4+ID4+ ID4+ID4gPj4gICAgICBzdHJ1Y3QgaW5fbXVsdGkgKmlubSwgY29uc3QgaW50IHVyaV9mYXN0aHop DQo+ID4+ID4+ID4+ID4gPj4gIHsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBpbnQgcXVlcnlfcmVz cG9uc2VfdGltZXJfZXhwaXJlZDsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBpbnQgc3RhdGVfY2hh bmdlX3JldHJhbnNtaXRfdGltZXJfZXhwaXJlZDsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAg ICAgSU5fTVVMVElfTElTVF9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIElH TVBfTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAg IHF1ZXJ5X3Jlc3BvbnNlX3RpbWVyX2V4cGlyZWQgPSAwOw0KPiA+PiA+PiA+PiA+ID4+IEBAIC0x OTA3LDggKzE4ODgsNyBAQCBpZ21wX3YzX3Byb2Nlc3NfZ3JvdXBfdGltZXJzKHN0cnVjdCBpZ21w X2lmc29mdGMNCj4gPj4gPj4gPj4gPiA+PiAqaWdpLCBpZiAoaW5tLT5pbm1fc3RhdGUgPT0gSUdN UF9MRUFWSU5HX01FTUJFUiAmJg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW5tLT5pbm1fc2NydiA9PSAwKSB7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW5tLT5pbm1fc3RhdGUgPSBJR01QX05PVF9NRU1CRVI7DQo+ID4+ ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0xJU1RfSU5TRVJUX0hF QUQoJmlnaS0+aWdpX3JlbGlubWhlYWQsDQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlubSwgaW5tX25yZWxlKTsNCj4gPj4gPj4gPj4gPiA+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbm1fcmVsZV9sb2NrZWQoaW5taCwgaW5tKTsNCj4g Pj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgICAgICAgICAgfQ0KPiA+PiA+PiA+PiA+ID4+ICAg ICAgICAgICAgICAgfQ0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4+ ID4+ID4+ID4gPj4gQEAgLTE5MjksNyArMTkwOSw3IEBAIHN0YXRpYyB2b2lkDQo+ID4+ID4+ID4+ ID4gPj4gIGlnbXBfdjNfc3VwcHJlc3NfZ3JvdXBfcmVjb3JkKHN0cnVjdCBpbl9tdWx0aSAqaW5t KQ0KPiA+PiA+PiA+PiA+ID4+ICB7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAt ICAgICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIElOX01V TFRJX0xJU1RfTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ ICAgICAgIEtBU1NFUlQoaW5tLT5pbm1faWdpLT5pZ2lfdmVyc2lvbiA9PSBJR01QX1ZFUlNJT05f MywNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgICgiJXM6IG5vdCBJR01QdjMgbW9kZSBv biBsaW5rIiwgX19mdW5jX18pKTsNCj4gPj4gPj4gPj4gPiA+PiBAQCAtMjAwMywxMyArMTk4Mywx NSBAQCBpZ21wX3YzX2NhbmNlbF9saW5rX3RpbWVycyhzdHJ1Y3QgaWdtcF9pZnNvZnRjDQo+ID4+ ID4+ID4+ID4gPj4gKmlnaSkgew0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIHN0cnVjdCBpZm11bHRp YWRkciAgICAgICppZm1hOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIHN0cnVjdCBpZm5ldCAgICAg ICAgICAgICppZnA7DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgc3RydWN0IGluX211bHRpICAgICAg ICAgKmlubSwgKnRpbm07DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgc3RydWN0IGluX211bHRpICAg ICAgICAgKmlubTsNCj4gPj4gPj4gPj4gPiA+PiArICAgICBzdHJ1Y3QgaW5fbXVsdGlfaGVhZCBp bm1fZnJlZV90bXA7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgICAgICBDVFIz KEtUUl9JR01QVjMsICIlczogY2FuY2VsIHYzIHRpbWVycyBvbiBpZnAgJXAoJXMpIiwgX19mdW5j X18sDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICAgIGlnaS0+aWdpX2lmcCwgaWdpLT5pZ2lfaWZw LT5pZl94bmFtZSk7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAtICAgICBJTl9N VUxUSV9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1Rf TE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBJR01QX0xPQ0tfQVNTRVJUKCk7 DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgU0xJU1RfSU5JVCgmaW5tX2ZyZWVfdG1wKTsNCj4gPj4g Pj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIC8qDQo+ID4+ID4+ID4+ID4gPj4gICAg ICAgICogU3RvcCB0aGUgdjMgR2VuZXJhbCBRdWVyeSBSZXNwb25zZSBvbiB0aGlzIGxpbmsgc3Rv bmUgZGVhZC4NCj4gPj4gPj4gPj4gPiA+PiBAQCAtMjA1MCw3ICsyMDMyLDcgQEAgaWdtcF92M19j YW5jZWxfbGlua190aW1lcnMoc3RydWN0IGlnbXBfaWZzb2Z0YyAqaWdpKQ0KPiA+PiA+PiA+PiA+ ID4+ICAgICAgICAgICAgICAgICAgICAgICAgKiBtZXNzYWdlIGlzIHNlbnQgdXBzdHJlYW0gdG8g dGhlIG9sZCBxdWVyaWVyIC0tDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICAgICAgICAgICAgICAg ICAqIHRyYW5zaXRpb24gdG8gTk9UIHdvdWxkIGxvc2UgdGhlIGxlYXZlIGFuZCByYWNlLg0KPiA+ PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgKi8NCj4gPj4gPj4gPj4gPiA+PiAt ICAgICAgICAgICAgICAgICAgICAgU0xJU1RfSU5TRVJUX0hFQUQoJmlnaS0+aWdpX3JlbGlubWhl YWQsIGlubSwNCj4gPj4gPj4gPj4gPiA+PiBpbm1fbnJlbGUpOw0KPiA+PiA+PiA+PiA+ID4+ICsg ICAgICAgICAgICAgICAgICAgICBpbm1fcmVsZV9sb2NrZWQoJmlubV9mcmVlX3RtcCwgaW5tKTsN Cj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgICAgICAgICAgLyogRkFMTFRIUk9VR0ggKi8N Cj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgIGNhc2UgSUdNUF9HX1FVRVJZX1BFTkRJTkdf TUVNQkVSOg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgY2FzZSBJR01QX1NHX1FVRVJZ X1BFTkRJTkdfTUVNQkVSOg0KPiA+PiA+PiA+PiA+ID4+IEBAIC0yMDY5LDEwICsyMDUxLDggQEAg aWdtcF92M19jYW5jZWxfbGlua190aW1lcnMoc3RydWN0IGlnbXBfaWZzb2Z0Yw0KPiA+PiA+PiA+ PiA+ID4+ICppZ2kpIG1idWZxX2RyYWluKCZpbm0tPmlubV9zY3EpOw0KPiA+PiA+PiA+PiA+ID4+ ICAgICAgIH0NCj4gPj4gPj4gPj4gPiA+PiAgICAgICBJRl9BRERSX1JVTkxPQ0soaWZwKTsNCj4g Pj4gPj4gPj4gPiA+PiAtICAgICBTTElTVF9GT1JFQUNIX1NBRkUoaW5tLCAmaWdpLT5pZ2lfcmVs aW5taGVhZCwgaW5tX25yZWxlLCB0aW5tKSB7DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgICAgICAg ICBTTElTVF9SRU1PVkVfSEVBRCgmaWdpLT5pZ2lfcmVsaW5taGVhZCwgaW5tX25yZWxlKTsNCj4g Pj4gPj4gPj4gPiA+PiAtICAgICAgICAgICAgIGlubV9yZWxlYXNlX2xvY2tlZChpbm0pOw0KPiA+ PiA+PiA+PiA+ID4+IC0gICAgIH0NCj4gPj4gPj4gPj4gPiA+PiArDQo+ID4+ID4+ID4+ID4gPj4g KyAgICAgaW5tX3JlbGVhc2VfbGlzdF9kZWZlcnJlZCgmaW5tX2ZyZWVfdG1wKTsNCj4gPj4gPj4g Pj4gPiA+PiAgfQ0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gIC8qDQo+ID4+ID4+ ID4+ID4gPj4gQEAgLTIxOTksNyArMjE3OSw3IEBAIGlnbXBfdjF2Ml9xdWV1ZV9yZXBvcnQoc3Ry dWN0IGluX211bHRpICppbm0sIGNvbnN0DQo+ID4+ID4+ID4+ID4gPj4gaW50IHN0cnVjdCBpcCAg ICAgICAgICAgICAgICppcDsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBzdHJ1Y3QgbWJ1ZiAgICAg ICAgICAgICAqbTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIElOX01V TFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9M T0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIElHTVBfTE9DS19BU1NFUlQoKTsN Cj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIGlmcCA9IGlubS0+aW5tX2lm cDsNCj4gPj4gPj4gPj4gPiA+PiBAQCAtMjI3NiwxMCArMjI1Niw4IEBAIGlnbXBfY2hhbmdlX3N0 YXRlKHN0cnVjdCBpbl9tdWx0aSAqaW5tKQ0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIHN0cnVjdCBp Zm5ldCAqaWZwOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIGludCBlcnJvcjsNCj4gPj4gPj4gPj4g PiA+Pg0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ ID4+ID4+ID4gPj4gLQ0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIGVycm9yID0gMDsNCj4gPj4gPj4g Pj4gPiA+PiAtDQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTE9DS19BU1NFUlQoKTsN Cj4gPj4gPj4gPj4gPiA+PiAgICAgICAvKg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAqIFRyeSB0 byBkZXRlY3QgaWYgdGhlIHVwcGVyIGxheWVyIGp1c3QgYXNrZWQgdXMgdG8gY2hhbmdlIHN0YXRl DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICogZm9yIGFuIGludGVyZmFjZSB3aGljaCBoYXMgbm93 IGdvbmUgYXdheS4NCj4gPj4gPj4gPj4gPiA+PiBAQCAtMjM3OSw5ICsyMzU3LDEwIEBAIGlnbXBf aW5pdGlhbF9qb2luKHN0cnVjdCBpbl9tdWx0aSAqaW5tLCBzdHJ1Y3QNCj4gPj4gPj4gPj4gPiA+ PiBpZ21wX2lmDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICAgICAgICAgKiBncm91cCBhcm91bmQg Zm9yIHRoZSBmaW5hbCBJTkNMVURFIHt9IGVucXVldWUuDQo+ID4+ID4+ID4+ID4gPj4gICAgICAg ICAgICAgICAgKi8NCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgIGlmIChpZ2ktPmlnaV92 ZXJzaW9uID09IElHTVBfVkVSU0lPTl8zICYmDQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgICAgICAg ICAgICAgaW5tLT5pbm1fc3RhdGUgPT0gSUdNUF9MRUFWSU5HX01FTUJFUikNCj4gPj4gPj4gPj4g PiA+PiAtICAgICAgICAgICAgICAgICAgICAgaW5tX3JlbGVhc2VfbG9ja2VkKGlubSk7DQo+ID4+ ID4+ID4+ID4gPj4gLQ0KPiA+PiA+PiA+PiA+ID4+ICsgICAgICAgICAgICAgICAgIGlubS0+aW5t X3N0YXRlID09IElHTVBfTEVBVklOR19NRU1CRVIpIHsNCj4gPj4gPj4gPj4gPiA+PiArICAgICAg ICAgICAgICAgICAgICAgTVBBU1MoaW5tLT5pbm1fcmVmY291bnQgPiAxKTsNCj4gPj4gPj4gPj4g PiA+PiArICAgICAgICAgICAgICAgICAgICAgaW5tX3JlbGVfbG9ja2VkKE5VTEwsIGlubSk7DQo+ ID4+ID4+ID4+ID4gPj4gKyAgICAgICAgICAgICB9DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICAg ICAgICBpbm0tPmlubV9zdGF0ZSA9IElHTVBfUkVQT1JUSU5HX01FTUJFUjsNCj4gPj4gPj4gPj4g PiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgc3dpdGNoIChpZ2ktPmlnaV92ZXJz aW9uKSB7DQo+ID4+ID4+ID4+ID4gPj4gQEAgLTI0NzMsNyArMjQ1Miw3IEBAIGlnbXBfaGFuZGxl X3N0YXRlX2NoYW5nZShzdHJ1Y3QgaW5fbXVsdGkgKmlubSwNCj4gPj4gPj4gPj4gPiA+PiBzdHJ1 Y3QNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIGlmcCA9IGlubS0+aW5t X2lmcDsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIElOX01VTFRJX0xP Q0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLX0FT U0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIElHTVBfTE9DS19BU1NFUlQoKTsNCj4gPj4g Pj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIEtBU1NFUlQoaWdpICYmIGlnaS0+aWdp X2lmcCA9PSBpZnAsICgiJXM6IGluY29uc2lzdGVudCBpZnAiLA0KPiA+PiA+PiA+PiA+ID4+IF9f ZnVuY19fKSk7IEBAIC0yNTMxLDcgKzI1MTAsNyBAQCBpZ21wX2ZpbmFsX2xlYXZlKHN0cnVjdCBp bl9tdWx0aSAqaW5tLA0KPiA+PiA+PiA+PiA+ID4+IHN0cnVjdCBpZ21wX2lmcyBfX2Z1bmNfXywg bnRvaGwoaW5tLT5pbm1fYWRkci5zX2FkZHIpLCBpbm0tPmlubV9pZnAsDQo+ID4+ID4+ID4+ID4g Pj4gICAgICAgICAgIGlubS0+aW5tX2lmcC0+aWZfeG5hbWUpOw0KPiA+PiA+PiA+PiA+ID4+DQo+ ID4+ID4+ID4+ID4gPj4gLSAgICAgSU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPj4g PiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4+ID4gPj4g ICAgICAgSUdNUF9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4g Pj4gICAgICAgc3dpdGNoIChpbm0tPmlubV9zdGF0ZSkgew0KPiA+PiA+PiA+PiA+ID4+IEBAIC0y NjU4LDcgKzI2MzcsNyBAQCBpZ21wX3YzX2VucXVldWVfZ3JvdXBfcmVjb3JkKHN0cnVjdCBtYnVm cSAqbXEsDQo+ID4+ID4+ID4+ID4gPj4gc3RydWN0IGluX2FkZHJfdCAgICAgICAgICAgICAgICBu YWRkcjsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICB1aW50OF90ICAgICAgICAgICAgICAgICAgbW9k ZTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0tf QVNTRVJUKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLX0FTU0VS VCgpOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgZXJyb3IgPSAwOw0K PiA+PiA+PiA+PiA+ID4+ICAgICAgIGlmcCA9IGlubS0+aW5tX2lmcDsNCj4gPj4gPj4gPj4gPiA+ PiBAQCAtMzAxOCw3ICsyOTk3LDcgQEAgaWdtcF92M19lbnF1ZXVlX2ZpbHRlcl9jaGFuZ2Uoc3Ry dWN0IG1idWZxICptcSwNCj4gPj4gPj4gPj4gPiA+PiBzdHJ1Y3QgdWludDhfdCAgICAgICAgICAg ICAgICAgIG1vZGUsIG5vdywgdGhlbjsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICByZWN0eXBlX3Qg ICAgICAgICAgICAgICAgY3J0LCBkcnQsIG5ydDsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAg ICAgSU5fTVVMVElfTElTVF9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ ID4+ID4gPj4gICAgICAgaWYgKGlubS0+aW5tX25zcmMgPT0gMCB8fA0KPiA+PiA+PiA+PiA+ID4+ ICAgICAgICAgICAoaW5tLT5pbm1fc3RbMF0uaXNzX2FzbSA+IDAgJiYgaW5tLT5pbm1fc3RbMV0u aXNzX2FzbSA+IDApKQ0KPiA+PiA+PiA+PiA+ID4+IEBAIC0zMjIxLDcgKzMyMDAsNyBAQCBpZ21w X3YzX21lcmdlX3N0YXRlX2NoYW5nZXMoc3RydWN0IGluX211bHRpICppbm0sDQo+ID4+ID4+ID4+ ID4gPj4gc3RydSBkb21lcmdlID0gMDsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICByZWNzbGVuID0g MDsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0tf QVNTRVJUKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLX0FTU0VS VCgpOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIElHTVBfTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4g Pj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIC8qDQo+ID4+ID4+ID4+ID4gPj4gQEAgLTMz MjAsNyArMzI5OSw3IEBAIGlnbXBfdjNfZGlzcGF0Y2hfZ2VuZXJhbF9xdWVyeShzdHJ1Y3QgaWdt cF9pZnNvZnRjDQo+ID4+ID4+ID4+ID4gPj4gKmlnIHN0cnVjdCBpbl9tdWx0aSAgICAgICAgICpp bm07DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgIHJldHZh bCwgbG9vcDsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIElOX01VTFRJ X0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NL X0FTU0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIElHTVBfTE9DS19BU1NFUlQoKTsNCj4g Pj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIEtBU1NFUlQoaWdpLT5pZ2lfdmVy c2lvbiA9PSBJR01QX1ZFUlNJT05fMywNCj4gPj4gPj4gPj4gPiA+PiBAQCAtMzYzMiw3ICszNjEx LDYgQEAgREJfU0hPV19DT01NQU5EKGlnaV9saXN0LCBkYl9zaG93X2lnaV9saXN0KQ0KPiA+PiA+ PiA+PiA+ID4+ICAgICAgICAgICAgICAgZGJfcHJpbnRmKCIgICAgcWkgJXVcbiIsIGlnaS0+aWdp X3FpKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgIGRiX3ByaW50ZigiICAgIHFyaSAl dVxuIiwgaWdpLT5pZ2lfcXJpKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgIGRiX3By aW50ZigiICAgIHVyaSAldVxuIiwgaWdpLT5pZ2lfdXJpKTsNCj4gPj4gPj4gPj4gPiA+PiAtICAg ICAgICAgICAgIC8qIFNMSVNUX0hFQUQoLGluX211bHRpKSAgIGlnaV9yZWxpbm1oZWFkICovDQo+ ID4+ID4+ID4+ID4gPj4gICAgICAgICAgICAgICAvKiBzdHJ1Y3QgbWJ1ZnEgICAgaWdpX2dxOyAq Lw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgZGJfcHJpbnRmKCJcbiIpOw0KPiA+PiA+ PiA+PiA+ID4+ICAgICAgIH0NCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+IE1vZGlm aWVkOiBoZWFkL3N5cy9uZXRpbmV0L2lnbXBfdmFyLmgNCj4gPj4gPj4gPj4gPiA+PiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0NCj4gPj4gPj4gPj4gPiA+PiAtLS0gaGVhZC9zeXMvbmV0aW5ldC9pZ21w X3Zhci5oICAgICAgIFdlZCBNYXkgIDIgMTc6NDE6MDAgMjAxOA0KPiA+PiA+PiA+PiA+ID4+IChy MzMzMTc0KSArKysgaGVhZC9zeXMvbmV0aW5ldC9pZ21wX3Zhci5oICAgICAgIFdlZCBNYXkgIDIg MTk6MzY6MjkNCj4gPj4gPj4gPj4gPiA+PiAyMDE4ICAgICAgICAocjMzMzE3NSkgQEAgLTIxNCw3 ICsyMTQsNiBAQCBzdHJ1Y3QgaWdtcF9pZnNvZnRjIHsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICB1 aW50MzJfdCBpZ2lfcWk7ICAgICAgICAvKiBJR01QdjMgUXVlcnkgSW50ZXJ2YWwgKHMpICovDQo+ ID4+ID4+ID4+ID4gPj4gICAgICAgdWludDMyX3QgaWdpX3FyaTsgICAgICAgLyogSUdNUHYzIFF1 ZXJ5IFJlc3BvbnNlIEludGVydmFsIChzKSAqLw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIHVpbnQz Ml90IGlnaV91cmk7ICAgICAgIC8qIElHTVB2MyBVbnNvbGljaXRlZCBSZXBvcnQgSW50ZXJ2YWwg KHMpICovDQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgU0xJU1RfSEVBRCgsaW5fbXVsdGkpICAgaWdp X3JlbGlubWhlYWQ7IC8qIHJlbGVhc2VkIGdyb3VwcyAqLw0KPiA+PiA+PiA+PiA+ID4+ICAgICAg IHN0cnVjdCBtYnVmcSAgICBpZ2lfZ3E7ICAgICAgICAgLyogZ2VuZXJhbCBxdWVyeSByZXNwb25z ZXMgcXVldWUgKi8NCj4gPj4gPj4gPj4gPiA+PiAgfTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+ PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gTW9kaWZpZWQ6IGhlYWQvc3lzL25ldGluZXQvaW4u Yw0KPiA+PiA+PiA+PiA+ID4+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA+PiA+PiA+PiA+ID4+ IC0tLSBoZWFkL3N5cy9uZXRpbmV0L2luLmMgICAgIFdlZCBNYXkgIDIgMTc6NDE6MDAgMjAxOCAg ICAgICAgKHIzMzMxNzQpDQo+ID4+ID4+ID4+ID4gPj4gKysrIGhlYWQvc3lzL25ldGluZXQvaW4u YyAgICAgV2VkIE1heSAgMiAxOTozNjoyOSAyMDE4ICAgICAgICAocjMzMzE3NSkNCj4gPj4gPj4g Pj4gPiA+PiBAQCAtNjMyLDEyICs2MzIsMTAgQEAgaW5fZGlmYWRkcl9pb2N0bCh1X2xvbmcgY21k LCBjYWRkcl90IGRhdGEsIHN0cnVjdA0KPiA+PiA+PiA+PiA+ID4+IGlmbmUgc3RydWN0IGluX2lm aW5mbyAqaWk7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAg IGlpID0gKChzdHJ1Y3QgaW5faWZpbmZvICopaWZwLT5pZl9hZmRhdGFbQUZfSU5FVF0pOw0KPiA+ PiA+PiA+PiA+ID4+IC0gICAgICAgICAgICAgSU5fTVVMVElfTE9DSygpOw0KPiA+PiA+PiA+PiA+ ID4+ICAgICAgICAgICAgICAgaWYgKGlpLT5paV9hbGxob3N0cykgew0KPiA+PiA+PiA+PiA+ID4+ IC0gICAgICAgICAgICAgICAgICAgICAodm9pZClpbl9sZWF2ZWdyb3VwX2xvY2tlZChpaS0+aWlf YWxsaG9zdHMsIE5VTEwpOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgICAgICAgICAgICAgICAgICAo dm9pZClpbl9sZWF2ZWdyb3VwKGlpLT5paV9hbGxob3N0cywgTlVMTCk7DQo+ID4+ID4+ID4+ID4g Pj4gICAgICAgICAgICAgICAgICAgICAgIGlpLT5paV9hbGxob3N0cyA9IE5VTEw7DQo+ID4+ID4+ ID4+ID4gPj4gICAgICAgICAgICAgICB9DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICBJ Tl9NVUxUSV9VTkxPQ0soKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICB9DQo+ID4+ID4+ID4+ID4g Pj4NCj4gPj4gPj4gPj4gPiA+PiAgICAgICBJRl9BRERSX1dMT0NLKGlmcCk7DQo+ID4+ID4+ID4+ ID4gPj4gQEAgLTk5NCwxMSArOTkyLDEyIEBAIGluX2Jyb2FkY2FzdChzdHJ1Y3QgaW5fYWRkciBp biwgc3RydWN0IGlmbmV0ICppZnApDQo+ID4+ID4+ID4+ID4gPj4gIHZvaWQNCj4gPj4gPj4gPj4g PiA+PiAgaW5faWZkZXRhY2goc3RydWN0IGlmbmV0ICppZnApDQo+ID4+ID4+ID4+ID4gPj4gIHsN Cj4gPj4gPj4gPj4gPiA+PiAtDQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTE9DSygp Ow0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIGluX3BjYnB1cmdlaWYwKCZWX3JpcGNiaW5mbywgaWZw KTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBpbl9wY2JwdXJnZWlmMCgmVl91ZGJpbmZvLCBpZnAp Ow0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIGluX3BjYnB1cmdlaWYwKCZWX3VsaXRlY2JpbmZvLCBp ZnApOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIGluX3B1cmdlbWFkZHJzKGlmcCk7DQo+ID4+ID4+ ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfVU5MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gIH0NCj4g Pj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAvKg0KPiA+PiA+PiA+PiA+ID4+IEBAIC0x MDExLDEyICsxMDEwLDEyIEBAIGluX2lmZGV0YWNoKHN0cnVjdCBpZm5ldCAqaWZwKQ0KPiA+PiA+ PiA+PiA+ID4+ICBzdGF0aWMgdm9pZA0KPiA+PiA+PiA+PiA+ID4+ICBpbl9wdXJnZW1hZGRycyhz dHJ1Y3QgaWZuZXQgKmlmcCkNCj4gPj4gPj4gPj4gPiA+PiAgew0KPiA+PiA+PiA+PiA+ID4+IC0g ICAgIExJU1RfSEVBRCgsaW5fbXVsdGkpIHB1cmdlaW5tczsNCj4gPj4gPj4gPj4gPiA+PiAtICAg ICBzdHJ1Y3QgaW5fbXVsdGkgICAgICAgICAqaW5tLCAqdGlubTsNCj4gPj4gPj4gPj4gPiA+PiAr ICAgICBzdHJ1Y3QgaW5fbXVsdGlfaGVhZCBwdXJnZWlubXM7DQo+ID4+ID4+ID4+ID4gPj4gKyAg ICAgc3RydWN0IGluX211bHRpICAgICAgICAgKmlubTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBz dHJ1Y3QgaWZtdWx0aWFkZHIgICAgICAqaWZtYTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ PiA+ID4+IC0gICAgIExJU1RfSU5JVCgmcHVyZ2Vpbm1zKTsNCj4gPj4gPj4gPj4gPiA+PiAtICAg ICBJTl9NVUxUSV9MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgU0xJU1RfSU5JVCgmcHVy Z2Vpbm1zKTsNCj4gPj4gPj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0soKTsNCj4g Pj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIC8qDQo+ID4+ID4+ID4+ID4gPj4g ICAgICAgICogRXh0cmFjdCBsaXN0IG9mIGluX211bHRpIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGV0 YWNoaW5nIGlmcA0KPiA+PiA+PiA+PiA+ID4+IEBAIC0xMDM0LDE3ICsxMDMzLDEzIEBAIGluX3B1 cmdlbWFkZHJzKHN0cnVjdCBpZm5ldCAqaWZwKQ0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAg ICAgICAgICgiJXM6IGlmbWFfcHJvdG9zcGVjIGlzIE5VTEwiLCBfX2Z1bmNfXykpOw0KPiA+PiA+ PiA+PiA+ID4+ICAjZW5kaWYNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgIGlubSA9IChz dHJ1Y3QgaW5fbXVsdGkgKilpZm1hLT5pZm1hX3Byb3Rvc3BlYzsNCj4gPj4gPj4gPj4gPiA+PiAt ICAgICAgICAgICAgIExJU1RfSU5TRVJUX0hFQUQoJnB1cmdlaW5tcywgaW5tLCBpbm1fbGluayk7 DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgICAgICAgICBpbm1fcmVsZV9sb2NrZWQoJnB1cmdlaW5t cywgaW5tKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICB9DQo+ID4+ID4+ID4+ID4gPj4gICAgICAg SUZfQUREUl9SVU5MT0NLKGlmcCk7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAt ICAgICBMSVNUX0ZPUkVBQ0hfU0FGRShpbm0sICZwdXJnZWlubXMsIGlubV9saW5rLCB0aW5tKSB7 DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgICAgICAgICBMSVNUX1JFTU9WRShpbm0sIGlubV9saW5r KTsNCj4gPj4gPj4gPj4gPiA+PiAtICAgICAgICAgICAgIGlubV9yZWxlYXNlX2xvY2tlZChpbm0p Ow0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIH0NCj4gPj4gPj4gPj4gPiA+PiArICAgICBpbm1fcmVs ZWFzZV9saXN0X2RlZmVycmVkKCZwdXJnZWlubXMpOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIGln bXBfaWZkZXRhY2goaWZwKTsNCj4gPj4gPj4gPj4gPiA+PiAtDQo+ID4+ID4+ID4+ID4gPj4gLSAg ICAgSU5fTVVMVElfVU5MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElT VF9VTkxPQ0soKTsNCj4gPj4gPj4gPj4gPiA+PiAgfQ0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ ID4+ID4gPj4gIHN0cnVjdCBpbl9sbGVudHJ5IHsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ PiA+ID4+IE1vZGlmaWVkOiBoZWFkL3N5cy9uZXRpbmV0L2luX21jYXN0LmMNCj4gPj4gPj4gPj4g PiA+PiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gPj4gPj4gPj4gPiA+PiAtLS0gaGVhZC9zeXMv bmV0aW5ldC9pbl9tY2FzdC5jICAgICAgIFdlZCBNYXkgIDIgMTc6NDE6MDAgMjAxOA0KPiA+PiA+ PiA+PiA+ID4+IChyMzMzMTc0KSArKysgaGVhZC9zeXMvbmV0aW5ldC9pbl9tY2FzdC5jICAgICAg IFdlZCBNYXkgIDIgMTk6MzY6MjkNCj4gPj4gPj4gPj4gPiA+PiAyMDE4ICAgICAgICAocjMzMzE3 NSkgQEAgLTUxLDYgKzUxLDcgQEAgX19GQlNESUQoIiRGcmVlQlNEJCIpOw0KPiA+PiA+PiA+PiA+ ID4+ICAjaW5jbHVkZSA8c3lzL3N5c2N0bC5oPg0KPiA+PiA+PiA+PiA+ID4+ICAjaW5jbHVkZSA8 c3lzL2t0ci5oPg0KPiA+PiA+PiA+PiA+ID4+ICAjaW5jbHVkZSA8c3lzL3Rhc2txdWV1ZS5oPg0K PiA+PiA+PiA+PiA+ID4+ICsjaW5jbHVkZSA8c3lzL2d0YXNrcXVldWUuaD4NCj4gPj4gPj4gPj4g PiA+PiAgI2luY2x1ZGUgPHN5cy90cmVlLmg+DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4g PiA+PiAgI2luY2x1ZGUgPG5ldC9pZi5oPg0KPiA+PiA+PiA+PiA+ID4+IEBAIC01OSw2ICs2MCw4 IEBAIF9fRkJTRElEKCIkRnJlZUJTRCQiKTsNCj4gPj4gPj4gPj4gPiA+PiAgI2luY2x1ZGUgPG5l dC9yb3V0ZS5oPg0KPiA+PiA+PiA+PiA+ID4+ICAjaW5jbHVkZSA8bmV0L3ZuZXQuaD4NCj4gPj4g Pj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICsjaW5jbHVkZSA8bmV0L2V0aGVybmV0Lmg+DQo+ ID4+ID4+ID4+ID4gPj4gKw0KPiA+PiA+PiA+PiA+ID4+ICAjaW5jbHVkZSA8bmV0aW5ldC9pbi5o Pg0KPiA+PiA+PiA+PiA+ID4+ICAjaW5jbHVkZSA8bmV0aW5ldC9pbl9zeXN0bS5oPg0KPiA+PiA+ PiA+PiA+ID4+ICAjaW5jbHVkZSA8bmV0aW5ldC9pbl9maWIuaD4NCj4gPj4gPj4gPj4gPiA+PiBA QCAtOTEsMTggKzk0LDI0IEBAIHN0YXRpYyBNQUxMT0NfREVGSU5FKE1fSVBNU09VUkNFLCAiaXBf bXNvdXJjZSIsDQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgLyoNCj4gPj4gPj4g Pj4gPiA+PiAgICogTG9ja2luZzoNCj4gPj4gPj4gPj4gPiA+PiAtICogLSBMb2NrIG9yZGVyIGlz OiBHaWFudCwgSU5QX1dMT0NLLCBJTl9NVUxUSV9MT0NLLCBJR01QX0xPQ0ssDQo+ID4+ID4+ID4+ ID4gPj4gSUZfQUREUl9MT0NLLg0KPiA+PiA+PiA+PiA+ID4+ICsgKiAtIExvY2sgb3JkZXIgaXM6 IEdpYW50LCBJTlBfV0xPQ0ssIElOX01VTFRJX0xJU1RfTE9DSywgSUdNUF9MT0NLLA0KPiA+PiA+ PiA+PiA+ID4+IElGX0FERFJfTE9DSy4NCj4gPj4gPj4gPj4gPiA+PiAgICogLSBUaGUgSUZfQURE Ul9MT0NLIGlzIGltcGxpY2l0bHkgdGFrZW4gYnkgaW5tX2xvb2t1cCgpIGVhcmxpZXIsDQo+ID4+ ID4+ID4+ID4gPj4gaG93ZXZlcg0KPiA+PiA+PiA+PiA+ID4+ICAgKiAgIGl0IGNhbiBiZSB0YWtl biBieSBjb2RlIGluIG5ldC9pZi5jIGFsc28uDQo+ID4+ID4+ID4+ID4gPj4gICAqIC0gaXBfbW9w dGlvbnMgYW5kIGluX21maWx0ZXIgYXJlIGNvdmVyZWQgYnkgdGhlIElOUF9XTE9DSy4NCj4gPj4g Pj4gPj4gPiA+PiAgICoNCj4gPj4gPj4gPj4gPiA+PiAtICogc3RydWN0IGluX211bHRpIGlzIGNv dmVyZWQgYnkgSU5fTVVMVElfTE9DSy4gVGhlcmUgaXNuJ3Qgc3RyaWN0bHkNCj4gPj4gPj4gPj4g PiA+PiArICogc3RydWN0IGluX211bHRpIGlzIGNvdmVyZWQgYnkgSU5fTVVMVElfTElTVF9MT0NL LiBUaGVyZSBpc24ndCBzdHJpY3RseQ0KPiA+PiA+PiA+PiA+ID4+ICAgKiBhbnkgbmVlZCBmb3Ig aW5fbXVsdGkgaXRzZWxmIHRvIGJlIHZpcnR1YWxpemVkIC0tIGl0IGlzIGJvdW5kIHRvIGFuDQo+ ID4+ID4+ID4+ID4gPj4gaWZwDQo+ID4+ID4+ID4+ID4gPj4gICAqIGFueXdheSBubyBtYXR0ZXIg d2hhdCBoYXBwZW5zLg0KPiA+PiA+PiA+PiA+ID4+ICAgKi8NCj4gPj4gPj4gPj4gPiA+PiAtc3Ry dWN0IG10eCBpbl9tdWx0aV9tdHg7DQo+ID4+ID4+ID4+ID4gPj4gLU1UWF9TWVNJTklUKGluX211 bHRpX210eCwgJmluX211bHRpX210eCwgImluX211bHRpX210eCIsIE1UWF9ERUYpOw0KPiA+PiA+ PiA+PiA+ID4+ICtzdHJ1Y3QgbXR4IGluX211bHRpX2xpc3RfbXR4Ow0KPiA+PiA+PiA+PiA+ID4+ ICtNVFhfU1lTSU5JVChpbl9tdWx0aV9tdHgsICZpbl9tdWx0aV9saXN0X210eCwgImluX211bHRp X2xpc3RfbXR4IiwNCj4gPj4gPj4gPj4gPiA+PiBNVFhfREVGKTsNCj4gPj4gPj4gPj4gPiA+Pg0K PiA+PiA+PiA+PiA+ID4+ICtzdHJ1Y3QgbXR4IGluX211bHRpX2ZyZWVfbXR4Ow0KPiA+PiA+PiA+ PiA+ID4+ICtNVFhfU1lTSU5JVChpbl9tdWx0aV9mcmVlX210eCwgJmluX211bHRpX2ZyZWVfbXR4 LCAiaW5fbXVsdGlfZnJlZV9tdHgiLA0KPiA+PiA+PiA+PiA+ID4+IE1UWF9ERUYpOyArDQo+ID4+ ID4+ID4+ID4gPj4gK3N0cnVjdCBzeCBpbl9tdWx0aV9zeDsNCj4gPj4gPj4gPj4gPiA+PiArU1hf U1lTSU5JVChpbl9tdWx0aV9zeCwgJmluX211bHRpX3N4LCAiaW5fbXVsdGlfc3giKTsNCj4gPj4g Pj4gPj4gPiA+PiArDQo+ID4+ID4+ID4+ID4gPj4gIC8qDQo+ID4+ID4+ID4+ID4gPj4gICAqIEZ1 bmN0aW9ucyB3aXRoIG5vbi1zdGF0aWMgbGlua2FnZSBkZWZpbmVkIGluIHRoaXMgZmlsZSBzaG91 bGQgYmUNCj4gPj4gPj4gPj4gPiA+PiAgICogZGVjbGFyZWQgaW4gaW5fdmFyLmg6DQo+ID4+ID4+ ID4+ID4gPj4gQEAgLTE1MSw2ICsxNjAsNyBAQCBzdGF0aWMgaW50ICAgICAgICBpbm1faXNfaWZw X2RldGFjaGVkKGNvbnN0IHN0cnVjdA0KPiA+PiA+PiA+PiA+ID4+IGluX211bHRpDQo+ID4+ID4+ ID4+ID4gPj4gKiBzdGF0aWMgaW50ICAgaW5tX21lcmdlKHN0cnVjdCBpbl9tdWx0aSAqLCAvKmNv bnN0Ki8gc3RydWN0IGluX21maWx0ZXINCj4gPj4gPj4gPj4gPiA+PiAqKTsgc3RhdGljIHZvaWQg IGlubV9wdXJnZShzdHJ1Y3QgaW5fbXVsdGkgKik7DQo+ID4+ID4+ID4+ID4gPj4gIHN0YXRpYyB2 b2lkICBpbm1fcmVhcChzdHJ1Y3QgaW5fbXVsdGkgKik7DQo+ID4+ID4+ID4+ID4gPj4gK3N0YXRp YyB2b2lkIGlubV9yZWxlYXNlKHN0cnVjdCBpbl9tdWx0aSAqKTsNCj4gPj4gPj4gPj4gPiA+PiAg c3RhdGljIHN0cnVjdCBpcF9tb3B0aW9ucyAqDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICAgICAg ICBpbnBfZmluZG1vcHRpb25zKHN0cnVjdCBpbnBjYiAqKTsNCj4gPj4gPj4gPj4gPiA+PiAgc3Rh dGljIHZvaWQgIGlucF9mcmVlbW9wdGlvbnNfaW50ZXJuYWwoc3RydWN0IGlwX21vcHRpb25zICop Ow0KPiA+PiA+PiA+PiA+ID4+IEBAIC0yMTYsNiArMjI2LDY1IEBAIGlubV9pc19pZnBfZGV0YWNo ZWQoY29uc3Qgc3RydWN0IGluX211bHRpICppbm0pDQo+ID4+ID4+ID4+ID4gPj4gIH0NCj4gPj4g Pj4gPj4gPiA+PiAgI2VuZGlmDQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiArc3Rh dGljIHN0cnVjdCBncm91cHRhc2sgZnJlZV9ndGFzazsNCj4gPj4gPj4gPj4gPiA+PiArc3RhdGlj IHN0cnVjdCBpbl9tdWx0aV9oZWFkIGlubV9mcmVlX2xpc3Q7DQo+ID4+ID4+ID4+ID4gPj4gK3N0 YXRpYyB2b2lkIGlubV9yZWxlYXNlX3Rhc2sodm9pZCAqYXJnIF9fdW51c2VkKTsNCj4gPj4gPj4g Pj4gPiA+PiArc3RhdGljIHZvaWQgaW5tX2luaXQodm9pZCkNCj4gPj4gPj4gPj4gPiA+PiArew0K PiA+PiA+PiA+PiA+ID4+ICsgICAgIFNMSVNUX0lOSVQoJmlubV9mcmVlX2xpc3QpOw0KPiA+PiA+ PiA+PiA+ID4+ICsgICAgIHRhc2txZ3JvdXBfY29uZmlnX2d0YXNrX2luaXQoTlVMTCwgJmZyZWVf Z3Rhc2ssIGlubV9yZWxlYXNlX3Rhc2ssDQo+ID4+ID4+ID4+ID4gPj4gImlubSByZWxlYXNlIHRh c2siKTsgK30NCj4gPj4gPj4gPj4gPiA+PiArDQo+ID4+ID4+ID4+ID4gPj4gK1NZU0lOSVQoaW5t X2luaXQsIFNJX1NVQl9TTVAgKyAxLCBTSV9PUkRFUl9GSVJTVCwNCj4gPj4gPj4gPj4gPiA+PiAr ICAgICBpbm1faW5pdCwgTlVMTCk7DQo+ID4+ID4+ID4+ID4gPj4gKw0KPiA+PiA+PiA+PiA+ID4+ ICsNCj4gPj4gPj4gPj4gPiA+PiArdm9pZA0KPiA+PiA+PiA+PiA+ID4+ICtpbm1fcmVsZWFzZV9s aXN0X2RlZmVycmVkKHN0cnVjdCBpbl9tdWx0aV9oZWFkICppbm1oKQ0KPiA+PiA+PiA+PiA+ID4+ ICt7DQo+ID4+ID4+ID4+ID4gPj4gKw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIGlmIChTTElTVF9F TVBUWShpbm1oKSkNCj4gPj4gPj4gPj4gPiA+PiArICAgICAgICAgICAgIHJldHVybjsNCj4gPj4g Pj4gPj4gPiA+PiArICAgICBtdHhfbG9jaygmaW5fbXVsdGlfZnJlZV9tdHgpOw0KPiA+PiA+PiA+ PiA+ID4+ICsgICAgIFNMSVNUX0NPTkNBVCgmaW5tX2ZyZWVfbGlzdCwgaW5taCwgaW5fbXVsdGks IGlubV9ucmVsZSk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgbXR4X3VubG9jaygmaW5fbXVsdGlf ZnJlZV9tdHgpOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIEdST1VQVEFTS19FTlFVRVVFKCZmcmVl X2d0YXNrKTsNCj4gPj4gPj4gPj4gPiA+PiArfQ0KPiA+PiA+PiA+PiA+ID4+ICsNCj4gPj4gPj4g Pj4gPiA+PiArdm9pZA0KPiA+PiA+PiA+PiA+ID4+ICtpbm1fcmVsZWFzZV9kZWZlcnJlZChzdHJ1 Y3QgaW5fbXVsdGkgKmlubSkNCj4gPj4gPj4gPj4gPiA+PiArew0KPiA+PiA+PiA+PiA+ID4+ICsg ICAgIHN0cnVjdCBpbl9tdWx0aV9oZWFkIHRtcDsNCj4gPj4gPj4gPj4gPiA+PiArDQo+ID4+ID4+ ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+PiA+ ID4+ICsgICAgIE1QQVNTKGlubS0+aW5tX3JlZmNvdW50ID4gMCk7DQo+ID4+ID4+ID4+ID4gPj4g KyAgICAgaWYgKC0taW5tLT5pbm1fcmVmY291bnQgPT0gMCkgew0KPiA+PiA+PiA+PiA+ID4+ICsg ICAgICAgICAgICAgU0xJU1RfSU5JVCgmdG1wKTsNCj4gPj4gPj4gPj4gPiA+PiArICAgICAgICAg ICAgIGlubS0+aW5tX2lmbWEtPmlmbWFfcHJvdG9zcGVjID0gTlVMTDsNCj4gPj4gPj4gPj4gPiA+ PiArICAgICAgICAgICAgIFNMSVNUX0lOU0VSVF9IRUFEKCZ0bXAsIGlubSwgaW5tX25yZWxlKTsN Cj4gPj4gPj4gPj4gPiA+PiArICAgICAgICAgICAgIGlubV9yZWxlYXNlX2xpc3RfZGVmZXJyZWQo JnRtcCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgfQ0KPiA+PiA+PiA+PiA+ID4+ICt9DQo+ID4+ ID4+ID4+ID4gPj4gKw0KPiA+PiA+PiA+PiA+ID4+ICtzdGF0aWMgdm9pZA0KPiA+PiA+PiA+PiA+ ID4+ICtpbm1fcmVsZWFzZV90YXNrKHZvaWQgKmFyZyBfX3VudXNlZCkNCj4gPj4gPj4gPj4gPiA+ PiArew0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIHN0cnVjdCBpbl9tdWx0aV9oZWFkIGlubV9mcmVl X3RtcDsNCj4gPj4gPj4gPj4gPiA+PiArICAgICBzdHJ1Y3QgaW5fbXVsdGkgKmlubSwgKnRpbm07 DQo+ID4+ID4+ID4+ID4gPj4gKw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIFNMSVNUX0lOSVQoJmlu bV9mcmVlX3RtcCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgbXR4X2xvY2soJmluX211bHRpX2Zy ZWVfbXR4KTsNCj4gPj4gPj4gPj4gPiA+PiArICAgICBTTElTVF9DT05DQVQoJmlubV9mcmVlX3Rt cCwgJmlubV9mcmVlX2xpc3QsIGluX211bHRpLCBpbm1fbnJlbGUpOw0KPiA+PiA+PiA+PiA+ID4+ ICsgICAgIG10eF91bmxvY2soJmluX211bHRpX2ZyZWVfbXR4KTsNCj4gPj4gPj4gPj4gPiA+PiAr ICAgICBJTl9NVUxUSV9MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgU0xJU1RfRk9SRUFD SF9TQUZFKGlubSwgJmlubV9mcmVlX3RtcCwgaW5tX25yZWxlLCB0aW5tKSB7DQo+ID4+ID4+ID4+ ID4gPj4gKyAgICAgICAgICAgICBTTElTVF9SRU1PVkVfSEVBRCgmaW5tX2ZyZWVfdG1wLCBpbm1f bnJlbGUpOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgICAgICAgICAgTVBBU1MoaW5tKTsNCj4gPj4g Pj4gPj4gPiA+PiArICAgICAgICAgICAgIGlubV9yZWxlYXNlKGlubSk7DQo+ID4+ID4+ID4+ID4g Pj4gKyAgICAgfQ0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX1VOTE9DSygpOw0KPiA+ PiA+PiA+PiA+ID4+ICt9DQo+ID4+ID4+ID4+ID4gPj4gKw0KPiA+PiA+PiA+PiA+ID4+ICAvKg0K PiA+PiA+PiA+PiA+ID4+ICAgKiBJbml0aWFsaXplIGFuIGluX21maWx0ZXIgc3RydWN0dXJlIHRv IGEga25vd24gc3RhdGUgYXQgdDAsIHQxDQo+ID4+ID4+ID4+ID4gPj4gICAqIHdpdGggYW4gZW1w dHkgc291cmNlIGZpbHRlciBsaXN0Lg0KPiA+PiA+PiA+PiA+ID4+IEBAIC0yMzIsNyArMzAxLDcg QEAgaW1mX2luaXQoc3RydWN0IGluX21maWx0ZXIgKmltZiwgY29uc3QgaW50IHN0MCwgY29uc3QN Cj4gPj4gPj4gPj4gPiA+PiAgLyoNCj4gPj4gPj4gPj4gPiA+PiAgICogRnVuY3Rpb24gZm9yIGxv b2tpbmcgdXAgYW4gaW5fbXVsdGkgcmVjb3JkIGZvciBhbiBJUHY0IG11bHRpY2FzdA0KPiA+PiA+ PiA+PiA+ID4+IGFkZHJlc3MNCj4gPj4gPj4gPj4gPiA+PiAgICogb24gYSBnaXZlbiBpbnRlcmZh Y2UuIGlmcCBtdXN0IGJlIHZhbGlkLiBJZiBubyByZWNvcmQgZm91bmQsIHJldHVybg0KPiA+PiA+ PiA+PiA+ID4+IE5VTEwuDQo+ID4+ID4+ID4+ID4gPj4gLSAqIFRoZSBJTl9NVUxUSV9MT0NLIGFu ZCBJRl9BRERSX0xPQ0sgb24gaWZwIG11c3QgYmUgaGVsZC4NCj4gPj4gPj4gPj4gPiA+PiArICog VGhlIElOX01VTFRJX0xJU1RfTE9DSyBhbmQgSUZfQUREUl9MT0NLIG9uIGlmcCBtdXN0IGJlIGhl bGQuDQo+ID4+ID4+ID4+ID4gPj4gICAqLw0KPiA+PiA+PiA+PiA+ID4+ICBzdHJ1Y3QgaW5fbXVs dGkgKg0KPiA+PiA+PiA+PiA+ID4+ICBpbm1fbG9va3VwX2xvY2tlZChzdHJ1Y3QgaWZuZXQgKmlm cCwgY29uc3Qgc3RydWN0IGluX2FkZHIgaW5hKQ0KPiA+PiA+PiA+PiA+ID4+IEBAIC0yNDAsNyAr MzA5LDcgQEAgaW5tX2xvb2t1cF9sb2NrZWQoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVj dCBpbl9hDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgc3RydWN0IGlmbXVsdGlhZGRyICppZm1hOw0K PiA+PiA+PiA+PiA+ID4+ICAgICAgIHN0cnVjdCBpbl9tdWx0aSAqaW5tOw0KPiA+PiA+PiA+PiA+ ID4+DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgSU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4gPj4g Pj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4+ ID4gPj4gICAgICAgSUZfQUREUl9MT0NLX0FTU0VSVChpZnApOw0KPiA+PiA+PiA+PiA+ID4+DQo+ ID4+ID4+ID4+ID4gPj4gICAgICAgaW5tID0gTlVMTDsNCj4gPj4gPj4gPj4gPiA+PiBAQCAtMjY0 LDcgKzMzMyw3IEBAIGlubV9sb29rdXAoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBp bl9hZGRyIGluYQ0KPiA+PiA+PiA+PiA+ID4+ICB7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgc3Ry dWN0IGluX211bHRpICppbm07DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAtICAg ICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJ X0xJU1RfTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBJRl9BRERSX1JMT0NL KGlmcCk7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgaW5tID0gaW5tX2xvb2t1cF9sb2NrZWQoaWZw LCBpbmEpOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIElGX0FERFJfUlVOTE9DSyhpZnApOw0KPiA+ PiA+PiA+PiA+ID4+IEBAIC00NTEsNyArNTIwLDcgQEAgaW5fZ2V0bXVsdGkoc3RydWN0IGlmbmV0 ICppZnAsIGNvbnN0IHN0cnVjdCBpbl9hZGRyICpnDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgSU5f TVVMVElfTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAg ICAgIGlpID0gKHN0cnVjdCBpbl9pZmluZm8gKilpZnAtPmlmX2FmZGF0YVtBRl9JTkVUXTsNCj4g Pj4gPj4gPj4gPiA+PiAtDQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9MT0NL KCk7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgaW5tID0gaW5tX2xvb2t1cChpZnAsICpncm91cCk7 DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgaWYgKGlubSAhPSBOVUxMKSB7DQo+ID4+ID4+ID4+ID4g Pj4gICAgICAgICAgICAgICAvKg0KPiA+PiA+PiA+PiA+ID4+IEBAIC00NjAsMTEgKzUyOSwxMyBA QCBpbl9nZXRtdWx0aShzdHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3Qgc3RydWN0IGluX2FkZHINCj4g Pj4gPj4gPj4gPiA+PiAqZyAqLw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgS0FTU0VS VChpbm0tPmlubV9yZWZjb3VudCA+PSAxLA0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAg ICAgICgiJXM6IGJhZCByZWZjb3VudCAlZCIsIF9fZnVuY19fLCBpbm0tPmlubV9yZWZjb3VudCkp Ow0KPiA+PiA+PiA+PiA+ID4+IC0gICAgICAgICAgICAgKytpbm0tPmlubV9yZWZjb3VudDsNCj4g Pj4gPj4gPj4gPiA+PiArICAgICAgICAgICAgIGlubV9hY3F1aXJlX2xvY2tlZChpbm0pOw0KPiA+ PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgKnBpbm0gPSBpbm07DQo+ID4+ID4+ID4+ID4gPj4g LSAgICAgICAgICAgICByZXR1cm4gKDApOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIH0NCj4gPj4g Pj4gPj4gPiA+PiAtDQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9VTkxPQ0so KTsNCj4gPj4gPj4gPj4gPiA+PiArICAgICBpZiAoaW5tICE9IE5VTEwpDQo+ID4+ID4+ID4+ID4g Pj4gKyAgICAgICAgICAgICByZXR1cm4gKDApOw0KPiA+PiA+PiA+PiA+ID4+ICsNCj4gPj4gPj4g Pj4gPiA+PiAgICAgICBtZW1zZXQoJmdzaW4sIDAsIHNpemVvZihnc2luKSk7DQo+ID4+ID4+ID4+ ID4gPj4gICAgICAgZ3Npbi5zaW5fZmFtaWx5ID0gQUZfSU5FVDsNCj4gPj4gPj4gPj4gPiA+PiAg ICAgICBnc2luLnNpbl9sZW4gPSBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luKTsNCj4gPj4gPj4g Pj4gPiA+PiBAQCAtNDc5LDYgKzU1MCw3IEBAIGluX2dldG11bHRpKHN0cnVjdCBpZm5ldCAqaWZw LCBjb25zdCBzdHJ1Y3QgaW5fYWRkciAqZw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAg cmV0dXJuIChlcnJvcik7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgICAgICAv KiBYWFggaWZtYV9wcm90b3NwZWMgbXVzdCBiZSBjb3ZlcmVkIGJ5IElGX0FERFJfTE9DSyAqLw0K PiA+PiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfTE9DSygpOw0KPiA+PiA+PiA+PiA+ ID4+ICAgICAgIElGX0FERFJfV0xPQ0soaWZwKTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ PiA+ID4+ICAgICAgIC8qDQo+ID4+ID4+ID4+ID4gPj4gQEAgLTUwNCwxMCArNTc2LDkgQEAgaW5f Z2V0bXVsdGkoc3RydWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBpbl9hZGRyDQo+ID4+ID4+ ID4+ID4gPj4gKmcgX19mdW5jX18sIGlmbWEsIGlubSwgaW5ldF9udG9hX3IoKmdyb3VwLCBhZGRy YnVmKSk7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgICAgICAgICB9DQo+ID4+ID4+ID4+ID4gPj4g ICNlbmRpZg0KPiA+PiA+PiA+PiA+ID4+IC0gICAgICAgICAgICAgKytpbm0tPmlubV9yZWZjb3Vu dDsNCj4gPj4gPj4gPj4gPiA+PiArICAgICAgICAgICAgIGlubV9hY3F1aXJlX2xvY2tlZChpbm0p Ow0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgKnBpbm0gPSBpbm07DQo+ID4+ID4+ID4+ ID4gPj4gLSAgICAgICAgICAgICBJRl9BRERSX1dVTkxPQ0soaWZwKTsNCj4gPj4gPj4gPj4gPiA+ PiAtICAgICAgICAgICAgIHJldHVybiAoMCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgICAgICAg ICBnb3RvIG91dF9sb2NrZWQ7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgfQ0KPiA+PiA+PiA+PiA+ ID4+DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgSUZfQUREUl9XTE9DS19BU1NFUlQoaWZwKTsNCj4g Pj4gPj4gPj4gPiA+PiBAQCAtNTIyLDYgKzU5Myw3IEBAIGluX2dldG11bHRpKHN0cnVjdCBpZm5l dCAqaWZwLCBjb25zdCBzdHJ1Y3QgaW5fYWRkciAqZw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIGlu bSA9IG1hbGxvYyhzaXplb2YoKmlubSksIE1fSVBNQUREUiwgTV9OT1dBSVQgfCBNX1pFUk8pOw0K PiA+PiA+PiA+PiA+ID4+ICAgICAgIGlmIChpbm0gPT0gTlVMTCkgew0KPiA+PiA+PiA+PiA+ID4+ ICAgICAgICAgICAgICAgSUZfQUREUl9XVU5MT0NLKGlmcCk7DQo+ID4+ID4+ID4+ID4gPj4gKyAg ICAgICAgICAgICBJTl9NVUxUSV9MSVNUX1VOTE9DSygpOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAg ICAgICAgICAgaWZfZGVsbXVsdGlfaWZtYShpZm1hKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAg ICAgICAgIHJldHVybiAoRU5PTUVNKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICB9DQo+ID4+ID4+ ID4+ID4gPj4gQEAgLTUzOSw4ICs2MTEsOSBAQCBpbl9nZXRtdWx0aShzdHJ1Y3QgaWZuZXQgKmlm cCwgY29uc3Qgc3RydWN0IGluX2FkZHIgKmcNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBpZm1hLT5p Zm1hX3Byb3Rvc3BlYyA9IGlubTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAg ICAgICpwaW5tID0gaW5tOw0KPiA+PiA+PiA+PiA+ID4+IC0NCj4gPj4gPj4gPj4gPiA+PiArIG91 dF9sb2NrZWQ6DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgSUZfQUREUl9XVU5MT0NLKGlmcCk7DQo+ ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5fTVVMVElfTElTVF9VTkxPQ0soKTsNCj4gPj4gPj4gPj4g PiA+PiAgICAgICByZXR1cm4gKDApOw0KPiA+PiA+PiA+PiA+ID4+ICB9DQo+ID4+ID4+ID4+ID4g Pj4NCj4gPj4gPj4gPj4gPiA+PiBAQCAtNTUwLDM2ICs2MjMsMjkgQEAgaW5fZ2V0bXVsdGkoc3Ry dWN0IGlmbmV0ICppZnAsIGNvbnN0IHN0cnVjdCBpbl9hZGRyDQo+ID4+ID4+ID4+ID4gPj4gKmcN Cj4gPj4gPj4gPj4gPiA+PiAgICogSWYgdGhlIHJlZmNvdW50IGRyb3BzIHRvIDAsIGZyZWUgdGhl IGluX211bHRpIHJlY29yZCBhbmQNCj4gPj4gPj4gPj4gPiA+PiAgICogZGVsZXRlIHRoZSB1bmRl cmx5aW5nIGxpbmstbGF5ZXIgbWVtYmVyc2hpcC4NCj4gPj4gPj4gPj4gPiA+PiAgICovDQo+ID4+ ID4+ID4+ID4gPj4gLXZvaWQNCj4gPj4gPj4gPj4gPiA+PiAtaW5tX3JlbGVhc2VfbG9ja2VkKHN0 cnVjdCBpbl9tdWx0aSAqaW5tKQ0KPiA+PiA+PiA+PiA+ID4+ICtzdGF0aWMgdm9pZA0KPiA+PiA+ PiA+PiA+ID4+ICtpbm1fcmVsZWFzZShzdHJ1Y3QgaW5fbXVsdGkgKmlubSkNCj4gPj4gPj4gPj4g PiA+PiAgew0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIHN0cnVjdCBpZm11bHRpYWRkciAqaWZtYTsN Cj4gPj4gPj4gPj4gPiA+PiArICAgICBzdHJ1Y3QgaWZuZXQgKmlmcDsNCj4gPj4gPj4gPj4gPiA+ Pg0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIElOX01VTFRJX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ ID4+ID4gPj4gLQ0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIENUUjIoS1RSX0lHTVBWMywgIiVzOiBy ZWZjb3VudCBpcyAlZCIsIF9fZnVuY19fLCBpbm0tPmlubV9yZWZjb3VudCk7DQo+ID4+ID4+ID4+ ID4gPj4gLQ0KPiA+PiA+PiA+PiA+ID4+IC0gICAgIGlmICgtLWlubS0+aW5tX3JlZmNvdW50ID4g MCkgew0KPiA+PiA+PiA+PiA+ID4+IC0gICAgICAgICAgICAgQ1RSMihLVFJfSUdNUFYzLCAiJXM6 IHJlZmNvdW50IGlzIG5vdyAlZCIsIF9fZnVuY19fLA0KPiA+PiA+PiA+PiA+ID4+IC0gICAgICAg ICAgICAgICAgIGlubS0+aW5tX3JlZmNvdW50KTsNCj4gPj4gPj4gPj4gPiA+PiAtICAgICAgICAg ICAgIHJldHVybjsNCj4gPj4gPj4gPj4gPiA+PiAtICAgICB9DQo+ID4+ID4+ID4+ID4gPj4gLQ0K PiA+PiA+PiA+PiA+ID4+ICsgICAgIE1QQVNTKGlubS0+aW5tX3JlZmNvdW50ID09IDApOw0KPiA+ PiA+PiA+PiA+ID4+ICAgICAgIENUUjIoS1RSX0lHTVBWMywgIiVzOiBmcmVlaW5nIGlubSAlcCIs IF9fZnVuY19fLCBpbm0pOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gICAgICAg aWZtYSA9IGlubS0+aW5tX2lmbWE7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgaWZwID0gaW5tLT5p bm1faWZwOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgLyogWFhYIHRo aXMgYWNjZXNzIGlzIG5vdCBjb3ZlcmVkIGJ5IElGX0FERFJfTE9DSyAqLw0KPiA+PiA+PiA+PiA+ ID4+ICAgICAgIENUUjIoS1RSX0lHTVBWMywgIiVzOiBwdXJnaW5nIGlmbWEgJXAiLCBfX2Z1bmNf XywgaWZtYSk7DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgS0FTU0VSVChpZm1hLT5pZm1hX3Byb3Rv c3BlYyA9PSBpbm0sDQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgICAgICgiJXM6IGlmbWFfcHJvdG9z cGVjICE9IGlubSIsIF9fZnVuY19fKSk7DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAgaWZtYS0+aWZt YV9wcm90b3NwZWMgPSBOVUxMOw0KPiA+PiA+PiA+PiA+ID4+IC0NCj4gPj4gPj4gPj4gPiA+PiAr ICAgICBpZiAoaWZwKQ0KPiA+PiA+PiA+PiA+ID4+ICsgICAgICAgICAgICAgQ1VSVk5FVF9TRVQo aWZwLT5pZl92bmV0KTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBpbm1fcHVyZ2UoaW5tKTsNCj4g Pj4gPj4gPj4gPiA+PiAtDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgZnJlZShpbm0sIE1fSVBNQURE Uik7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgICAgICBpZl9kZWxtdWx0aV9p Zm1hKGlmbWEpOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIGlmIChpZnApDQo+ID4+ID4+ID4+ID4g Pj4gKyAgICAgICAgICAgICBDVVJWTkVUX1JFU1RPUkUoKTsNCj4gPj4gPj4gPj4gPiA+PiAgfQ0K PiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gIC8qDQo+ID4+ID4+ID4+ID4gPj4gQEAg LTU5Miw3ICs2NTgsNyBAQCBpbm1fY2xlYXJfcmVjb3JkZWQoc3RydWN0IGluX211bHRpICppbm0p DQo+ID4+ID4+ID4+ID4gPj4gIHsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBzdHJ1Y3QgaXBfbXNv dXJjZSAgICAgICAqaW1zOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gLSAgICAg SU5fTVVMVElfTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPj4gPiA+PiArICAgICBJTl9NVUxUSV9M SVNUX0xPQ0tfQVNTRVJUKCk7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgICAg ICBSQl9GT1JFQUNIKGltcywgaXBfbXNvdXJjZV90cmVlLCAmaW5tLT5pbm1fc3Jjcykgew0KPiA+ PiA+PiA+PiA+ID4+ICAgICAgICAgICAgICAgaWYgKGltcy0+aW1zX3N0cCkgew0KPiA+PiA+PiA+ PiA+ID4+IEBAIC02MzIsNyArNjk4LDcgQEAgaW5tX3JlY29yZF9zb3VyY2Uoc3RydWN0IGluX211 bHRpICppbm0sIGNvbnN0IGluX2FkZHJfDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgc3RydWN0IGlw X21zb3VyY2UgICAgICAgIGZpbmQ7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgc3RydWN0IGlwX21z b3VyY2UgICAgICAgKmltcywgKm5pbXM7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+ PiAtICAgICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIElO X01VTFRJX0xJU1RfTE9DS19BU1NFUlQoKTsNCj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ ID4+ICAgICAgIGZpbmQuaW1zX2hhZGRyID0gbnRvaGwobmFkZHIpOw0KPiA+PiA+PiA+PiA+ID4+ ICAgICAgIGltcyA9IFJCX0ZJTkQoaXBfbXNvdXJjZV90cmVlLCAmaW5tLT5pbm1fc3JjcywgJmZp bmQpOw0KPiA+PiA+PiA+PiA+ID4+IEBAIC05NTksNiArMTAyNSw3IEBAIGlubV9tZXJnZShzdHJ1 Y3QgaW5fbXVsdGkgKmlubSwgLypjb25zdCovIHN0cnVjdA0KPiA+PiA+PiA+PiA+ID4+IGluX21m IHNjaGFuZ2VkID0gMDsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBlcnJvciA9IDA7DQo+ID4+ID4+ ID4+ID4gPj4gICAgICAgbnNyYzEgPSBuc3JjMCA9IDA7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAg SU5fTVVMVElfTElTVF9MT0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ ID4gPj4gICAgICAgLyoNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgKiBVcGRhdGUgdGhlIHNvdXJj ZSBmaWx0ZXJzIGZpcnN0LCBhcyB0aGlzIG1heSBmYWlsLg0KPiA+PiA+PiA+PiA+ID4+IEBAIC0x MTY1LDYgKzEyMzIsNyBAQCBpbl9qb2luZ3JvdXBfbG9ja2VkKHN0cnVjdCBpZm5ldCAqaWZwLCBj b25zdCBzdHJ1Y3QNCj4gPj4gPj4gPj4gPiA+PiBpbiBpbnQgICAgICAgICAgICAgICAgICAgICAg ZXJyb3I7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgICAgICBJTl9NVUxUSV9M T0NLX0FTU0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfVU5MT0NL X0FTU0VSVCgpOw0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgQ1RSNChL VFJfSUdNUFYzLCAiJXM6IGpvaW4gMHglMDh4IG9uICVwKCVzKSkiLCBfX2Z1bmNfXywNCj4gPj4g Pj4gPj4gPiA+PiAgICAgICAgICAgbnRvaGwoZ2luYS0+c19hZGRyKSwgaWZwLCBpZnAtPmlmX3hu YW1lKTsNCj4gPj4gPj4gPj4gPiA+PiBAQCAtMTE4Niw3ICsxMjU0LDcgQEAgaW5fam9pbmdyb3Vw X2xvY2tlZChzdHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3Qgc3RydWN0DQo+ID4+ID4+ID4+ID4gPj4g aW4gQ1RSMShLVFJfSUdNUFYzLCAiJXM6IGluX2dldG11bHRpKCkgZmFpbHVyZSIsIF9fZnVuY19f KTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgIHJldHVybiAoZXJyb3IpOw0KPiA+PiA+ PiA+PiA+ID4+ICAgICAgIH0NCj4gPj4gPj4gPj4gPiA+PiAtDQo+ID4+ID4+ID4+ID4gPj4gKyAg ICAgSU5fTVVMVElfTElTVF9MT0NLKCk7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgQ1RSMShLVFJf SUdNUFYzLCAiJXM6IG1lcmdlIGlubSBzdGF0ZSIsIF9fZnVuY19fKTsNCj4gPj4gPj4gPj4gPiA+ PiAgICAgICBlcnJvciA9IGlubV9tZXJnZShpbm0sIGltZik7DQo+ID4+ID4+ID4+ID4gPj4gICAg ICAgaWYgKGVycm9yKSB7DQo+ID4+ID4+ID4+ID4gPj4gQEAgLTEyMDEsMTAgKzEyNjksMTIgQEAg aW5fam9pbmdyb3VwX2xvY2tlZChzdHJ1Y3QgaWZuZXQgKmlmcCwgY29uc3QNCj4gPj4gPj4gPj4g PiA+PiBzdHJ1Y3QgaW4gZ290byBvdXRfaW5tX3JlbGVhc2U7DQo+ID4+ID4+ID4+ID4gPj4gICAg ICAgfQ0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gLW91dF9pbm1fcmVsZWFzZToN Cj4gPj4gPj4gPj4gPiA+PiArIG91dF9pbm1fcmVsZWFzZToNCj4gPj4gPj4gPj4gPiA+PiArICAg ICBJTl9NVUxUSV9MSVNUX1VOTE9DSygpOw0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIGlmIChlcnJv cikgew0KPiA+PiA+PiA+PiA+ID4+ICsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICAgICAgICAgIENU UjIoS1RSX0lHTVBWMywgIiVzOiBkcm9wcGluZyByZWYgb24gJXAiLCBfX2Z1bmNfXywgaW5tKTsN Cj4gPj4gPj4gPj4gPiA+PiAtICAgICAgICAgICAgIGlubV9yZWxlYXNlX2xvY2tlZChpbm0pOw0K PiA+PiA+PiA+PiA+ID4+ICsgICAgICAgICAgICAgaW5tX3JlbGVhc2VfZGVmZXJyZWQoaW5tKTsN Cj4gPj4gPj4gPj4gPiA+PiAgICAgICB9IGVsc2Ugew0KPiA+PiA+PiA+PiA+ID4+ICAgICAgICAg ICAgICAgKnBpbm0gPSBpbm07DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgfQ0KPiA+PiA+PiA+PiA+ ID4+IEBAIC0xMjQ5LDYgKzEzMTksNyBAQCBpbl9sZWF2ZWdyb3VwX2xvY2tlZChzdHJ1Y3QgaW5f bXVsdGkNCj4gPj4gPj4gPj4gPiA+PiAqaW5tLCAvKmNvbnN0Ki8gcyBlcnJvciA9IDA7DQo+ID4+ ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgICAgICBJTl9NVUxUSV9MT0NLX0FTU0VSVCgp Ow0KPiA+PiA+PiA+PiA+ID4+ICsgICAgIElOX01VTFRJX0xJU1RfVU5MT0NLX0FTU0VSVCgpOw0K PiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgQ1RSNShLVFJfSUdNUFYzLCAi JXM6IGxlYXZlIGlubSAlcCwgMHglMDh4LyVzLCBpbWYgJXAiLCBfX2Z1bmNfXywNCj4gPj4gPj4g Pj4gPiA+PiAgICAgICAgICAgaW5tLCBudG9obChpbm0tPmlubV9hZGRyLnNfYWRkciksDQo+ID4+ ID4+ID4+ID4gPj4gQEAgLTEyNzIsMTggKzEzNDMsMjAgQEAgaW5fbGVhdmVncm91cF9sb2NrZWQo c3RydWN0IGluX211bHRpDQo+ID4+ID4+ID4+ID4gPj4gKmlubSwgLypjb25zdCovIHMNCj4gPj4g Pj4gPj4gPiA+PiAgICAgICAgKiB0aGUgdHJhbnNhY3Rpb24sIGl0IE1VU1QgTk9UIGZhaWwuDQo+ ID4+ID4+ID4+ID4gPj4gICAgICAgICovDQo+ID4+ID4+ID4+ID4gPj4gICAgICAgQ1RSMShLVFJf SUdNUFYzLCAiJXM6IG1lcmdlIGlubSBzdGF0ZSIsIF9fZnVuY19fKTsNCj4gPj4gPj4gPj4gPiA+ PiArICAgICBJTl9NVUxUSV9MSVNUX0xPQ0soKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBlcnJv ciA9IGlubV9tZXJnZShpbm0sIGltZik7DQo+ID4+ID4+ID4+ID4gPj4gICAgICAgS0FTU0VSVChl cnJvciA9PSAwLCAoIiVzOiBmYWlsZWQgdG8gbWVyZ2UgaW5tIHN0YXRlIiwgX19mdW5jX18pKTsN Cj4gPj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+PiA+ID4+ICAgICAgIENUUjEoS1RSX0lHTVBWMywg IiVzOiBkb2luZyBpZ21wIGRvd25jYWxsIiwgX19mdW5jX18pOw0KPiA+PiA+PiA+PiA+ID4+ICAg ICAgIENVUlZORVRfU0VUKGlubS0+aW5tX2lmcC0+aWZfdm5ldCk7DQo+ID4+ID4+ID4+ID4gPj4g ICAgICAgZXJyb3IgPSBpZ21wX2NoYW5nZV9zdGF0ZShpbm0pOw0KPiA+PiA+PiA+PiA+ID4+ICsg ICAgIGlubV9yZWxlYXNlX2RlZmVycmVkKGlubSk7DQo+ID4+ID4+ID4+ID4gPj4gKyAgICAgSU5f TVVMVElfTElTVF9VTkxPQ0soKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBDVVJWTkVUX1JFU1RP UkUoKTsNCj4gPj4gPj4gPj4gPiA+PiAgICAgICBpZiAoZXJyb3IpDQo+ID4+ID4+ID4+ID4gPj4g ICAgICAgICAgICAgICBDVFIxKEtUUl9JR01QVjMsICIlczogZmFpbGVkIGlnbXAgZG93bmNhbGwi LCBfX2Z1bmNfXyk7DQo+ID4+ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgICAgICBDVFIy KEtUUl9JR01QVjMsICIlczogZHJvcHBpbmcgcmVmIG9uICVwIiwgX19mdW5jX18sIGlubSk7DQo+ ID4+ID4+ID4+ID4gPj4gLSAgICAgaW5tX3JlbGVhc2VfbG9ja2VkKGlubSk7DQo+ID4+ID4+ID4+ ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAgICAgICByZXR1cm4gKGVycm9yKTsNCj4gPj4gPj4gPj4g PiA+PiAgfQ0KPiA+PiA+PiA+PiA+ID4+IEBAIC0xMzE1LDE4ICsxMzg4LDYgQEAgaW5fYWRkbXVs dGkoc3RydWN0IGluX2FkZHIgKmFwLCBzdHJ1Y3QgaWZuZXQgKmlmcCkNCj4gPj4gPj4gPj4gPiA+ PiAgfQ0KPiA+PiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4+ID4gPj4gIC8qDQo+ID4+ID4+ID4+ID4g Pj4gLSAqIExlYXZlIGFuIElQdjQgbXVsdGljYXN0IGdyb3VwLCBhc3N1bWVkIHRvIGJlIGluIGV4 Y2x1c2l2ZSAoKixHKSBtb2RlLg0KPiA+PiA+PiA+PiA+ID4+IC0gKiBUaGlzIEtQSSBpcyBmb3Ig bGVnYWN5IGtlcm5lbCBjb25zdW1lcnMgb25seS4NCj4gPj4gPj4gPj4gPiA+PiAtICovDQo+ID4+ ID4+ID4+ID4gPj4NCj4gPj4gPj4gPj4gPiA+PiAqKiogRElGRiBPVVRQVVQgVFJVTkNBVEVEIEFU IDEwMDAgTElORVMgKioqDQo+ID4+ID4+ID4+ID4gPj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18NCj4gPj4gPj4gPj4gPiA+PiBzdm4tc3JjLWhlYWRAZnJl ZWJzZC5vcmcgbWFpbGluZyBsaXN0DQo+ID4+ID4+ID4+ID4gPj4gaHR0cHM6Ly9saXN0cy5mcmVl YnNkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3N2bi1zcmMtaGVhZA0KPiA+PiA+PiA+PiA+ID4+IFRv IHVuc3Vic2NyaWJlLCBzZW5kIGFueSBtYWlsIHRvICJzdm4tc3JjLWhlYWQtdW5zdWJzY3JpYmVA ZnJlZWJzZC5vcmciICANCj4gPj4gPj4gPj4gPiA+DQo+ID4+ID4+ID4+ID4gPg0KPiA+PiA+PiA+ PiA+ID4gQWZ0ZXIgKGFyb3VuZCEpIHRoaXMgdXBkYXRlLCBzb21lIGJveGVzIHdpdGggaTM1MCBk dWFsIHBvcnQgTklDcw0KPiA+PiA+PiA+PiA+ID4gaW1tZWRpYXRlbHkgY3Jhc2ggd2l0aCBGYXRh bCB0cmFwIDEyOiBwYWdlIGZhdWx0IGFuZCBzb21ldGhpbmcgd2l0aA0KPiA+PiA+PiA+PiA+ID4N Cj4gPj4gPj4gPj4gPiA+IGN1cnJlbnQgcHJvY2VzczogKGlzYy13b3JrZXIwMDA2KQ0KPiA+PiA+ PiA+PiA+ID4NCj4gPj4gPj4gPj4gPiA+IC4uLi4NCj4gPj4gPj4gPj4gPiA+DQo+ID4+ID4+ID4+ ID4gPiBUaG9zZSBib3hlcyBkbyBub3QgaGF2ZSBkZWJ1Z2dpbmcga2VybmVsLiBUaGUgc3ltcHRv bWJzIGFyZSB0aGUgc2FtZS4NCj4gPj4gPj4gPj4gPiA+IFNpbmdsZSB1c2VyIGtlcm5lbCB3b3Jr cywgYnV0IHRoZSBtb21lbnQgSSBwZXJmb3JtIC9ldGMvbmV0c3RhcnQgYW5kIGFueQ0KPiA+PiA+ PiA+PiA+ID4ga2luZCBvZiBuZXQgdHJhZmZpYyBlc3RhYmxpc2hlcywgdGhpcyBjcmFwIGJhaWxz IG91dC4NCj4gPj4gPj4gPj4gPiA+DQo+ID4+ID4+ID4+ID4gPg0KPiA+PiA+PiA+PiA+ID4gLSAt LQ0KPiA+PiA+PiA+PiA+ID4gTy4gSGFydG1hbm4NCj4gPj4gPj4gPj4gPiA+DQo+ID4+ID4+ID4+ ID4gPiBJY2ggd2lkZXJzcHJlY2hlIGRlciBOdXR6dW5nIG9kZXIgw5xiZXJtaXR0bHVuZyBtZWlu ZXIgRGF0ZW4gZsO8cg0KPiA+PiA+PiA+PiA+ID4gV2VyYmV6d2Vja2Ugb2RlciBmw7xyIGRpZSBN YXJrdC0gb2RlciBNZWludW5nc2ZvcnNjaHVuZyAowqcgMjggQWJzLiA0IEJEU0cpLg0KPiA+PiA+ PiA+PiA+ID4gLS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0NCj4gPj4gPj4gPj4gPiA+DQo+ ID4+ID4+ID4+ID4gPiBpTFVFQVJNS0FCMFdJUVFaVlpNekF0d0MyVC84NlRyUzUyOGZ5RmhZbEFV Q1d1dGp0Z0FLQ1JEUzUyOGZ5RmhZDQo+ID4+ID4+ID4+ID4gPiBsQWt6QWY5UGhhRlR3TmhRRDJ6 Rjd4U0hKMndmdkx0b1VFalpsekdzdXNBQ3AxcGE3SkFmejBQeXYrbG0rWE5KDQo+ID4+ID4+ID4+ ID4gPiB2TEVscklmMUNtRHp1QTh5YmxaL3gvd09WU0prQWY5Qys1MERWRXRHcTVIL2JIU0ROd3pt cXJqOFlnQjdYcFNzDQo+ID4+ID4+ID4+ID4gPiBQTVJYYytJd0lhMUpnaTJ5TSs2VENTTlNzMU41 YkVVaFU5Qmk4ZVh5NlkwRlNrQVplVitzDQo+ID4+ID4+ID4+ID4gPiA9UzBiQw0KPiA+PiA+PiA+ PiA+ID4gLS0tLS1FTkQgUEdQIFNJR05BVFVSRS0tLS0tDQo+ID4+ID4+ID4+ID4gPiBfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+PiA+PiA+PiA+ID4g c3ZuLXNyYy1oZWFkQGZyZWVic2Qub3JnIG1haWxpbmcgbGlzdA0KPiA+PiA+PiA+PiA+ID4gaHR0 cHM6Ly9saXN0cy5mcmVlYnNkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3N2bi1zcmMtaGVhZA0KPiA+ PiA+PiA+PiA+ID4gVG8gdW5zdWJzY3JpYmUsIHNlbmQgYW55IG1haWwgdG8gInN2bi1zcmMtaGVh ZC11bnN1YnNjcmliZUBmcmVlYnNkLm9yZyIgIA0KPiA+PiA+PiA+Pg0KPiA+PiA+PiA+Pg0KPiA+ PiA+PiA+Pg0KPiA+PiA+PiA+PiAtIC0tDQo+ID4+ID4+ID4+IE8uIEhhcnRtYW5uDQo+ID4+ID4+ ID4+DQo+ID4+ID4+ID4+IEljaCB3aWRlcnNwcmVjaGUgZGVyIE51dHp1bmcgb2RlciDDnGJlcm1p dHRsdW5nIG1laW5lciBEYXRlbiBmw7xyDQo+ID4+ID4+ID4+IFdlcmJlendlY2tlIG9kZXIgZsO8 ciBkaWUgTWFya3QtIG9kZXIgTWVpbnVuZ3Nmb3JzY2h1bmcgKMKnIDI4IEFicy4gNCBCRFNHKS4N Cj4gPj4gPj4gPj4gLS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0NCj4gPj4gPj4gPj4NCj4g Pj4gPj4gPj4gaUxVRUFSTUtBQjBXSVFRWlZaTXpBdHdDMlQvODZUclM1MjhmeUZoWWxBVUNXdXR2 OHdBS0NSRFM1MjhmeUZoWQ0KPiA+PiA+PiA+PiBsSWUxQWZ3T0NBaWdwWGF3WjdLQWpMTnBXalJU NERzcnpmcWNDNTdNb3ppVlF5SytYOXFvUUEydjBwbFZOcFAwDQo+ID4+ID4+ID4+IEZMcWg1ZGtS WGlpT0xyeXI5YXVJTFVLeUxDTnlBZndMN2NGZTFZUlg3Vm5zSzV3Ly84WG0yNXRKNzRDWEM4UDAN Cj4gPj4gPj4gPj4gZ2FvU3F2RHFDS1dUajZpTitRL1Bqb05vaFdvSUs3NnRpWkFXUGprYUhldUZi eXBQYTJHKw0KPiA+PiA+PiA+PiA9RXBKYQ0KPiA+PiA+PiA+PiAtLS0tLUVORCBQR1AgU0lHTkFU VVJFLS0tLS0NCj4gPj4gPj4gPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18NCj4gPj4gPj4gPj4gc3ZuLXNyYy1oZWFkQGZyZWVic2Qub3JnIG1haWxpbmcg bGlzdA0KPiA+PiA+PiA+PiBodHRwczovL2xpc3RzLmZyZWVic2Qub3JnL21haWxtYW4vbGlzdGlu Zm8vc3ZuLXNyYy1oZWFkDQo+ID4+ID4+ID4+IFRvIHVuc3Vic2NyaWJlLCBzZW5kIGFueSBtYWls IHRvICJzdm4tc3JjLWhlYWQtdW5zdWJzY3JpYmVAZnJlZWJzZC5vcmciICANCj4gPj4gPj4gPg0K PiA+PiA+PiA+DQo+ID4+ID4+ID4NCj4gPj4gPj4gPiAtIC0tDQo+ID4+ID4+ID4gTy4gSGFydG1h bm4NCj4gPj4gPj4gPg0KPiA+PiA+PiA+IEljaCB3aWRlcnNwcmVjaGUgZGVyIE51dHp1bmcgb2Rl ciDDnGJlcm1pdHRsdW5nIG1laW5lciBEYXRlbiBmw7xyDQo+ID4+ID4+ID4gV2VyYmV6d2Vja2Ug b2RlciBmw7xyIGRpZSBNYXJrdC0gb2RlciBNZWludW5nc2ZvcnNjaHVuZyAowqcgMjggQWJzLiA0 IEJEU0cpLg0KPiA+PiA+PiA+IC0tLS0tQkVHSU4gUEdQIFNJR05BVFVSRS0tLS0tDQo+ID4+ID4+ ID4NCj4gPj4gPj4gPiBpTFVFQVJNS0FCMFdJUVFaVlpNekF0d0MyVC84NlRyUzUyOGZ5RmhZbEFV Q1d1MXk4Z0FLQ1JEUzUyOGZ5RmhZDQo+ID4+ID4+ID4gbEZFb0FmNGlXKzR0U0FPY0cwRVExL1ky UE5xTENYNEFucFlUbFNsYUVDeHRGbERaL1hiTk93M1R5VkI5UmJRQw0KPiA+PiA+PiA+IHFHRTlV eDJ4UUJENDhhMU5iMUlIVlZDOWppN2pBZ0NMT1h6S1VxbWNYa1BOdmpTZ1pXWitTZHlkNTVDaG9M Z1kNCj4gPj4gPj4gPiBTa3lZOEZTVTNHRURtMjhXZ2FYalE0b0poKzcvRmY2OU5zdURabHQ3aUMy NEtaZFJLSDAwDQo+ID4+ID4+ID4gPTRiWSsNCj4gPj4gPj4gPiAtLS0tLUVORCBQR1AgU0lHTkFU VVJFLS0tLS0gIA0KPiA+PiA+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXw0KPiA+PiA+PiBzdm4tc3JjLWhlYWRAZnJlZWJzZC5vcmcgbWFpbGluZyBsaXN0 DQo+ID4+ID4+IGh0dHBzOi8vbGlzdHMuZnJlZWJzZC5vcmcvbWFpbG1hbi9saXN0aW5mby9zdm4t c3JjLWhlYWQNCj4gPj4gPj4gVG8gdW5zdWJzY3JpYmUsIHNlbmQgYW55IG1haWwgdG8gInN2bi1z cmMtaGVhZC11bnN1YnNjcmliZUBmcmVlYnNkLm9yZyIgIA0KPiA+PiA+DQo+ID4+ID4NCj4gPj4g Pg0KPiA+PiA+IC0gLS0NCj4gPj4gPiBPLiBIYXJ0bWFubg0KPiA+PiA+DQo+ID4+ID4gSWNoIHdp ZGVyc3ByZWNoZSBkZXIgTnV0enVuZyBvZGVyIMOcYmVybWl0dGx1bmcgbWVpbmVyIERhdGVuIGbD vHINCj4gPj4gPiBXZXJiZXp3ZWNrZSBvZGVyIGbDvHIgZGllIE1hcmt0LSBvZGVyIE1laW51bmdz Zm9yc2NodW5nICjCpyAyOCBBYnMuIDQgQkRTRykuDQo+ID4+ID4gLS0tLS1CRUdJTiBQR1AgU0lH TkFUVVJFLS0tLS0NCj4gPj4gPg0KPiA+PiA+IGlMVUVBUk1LQUIwV0lRUVpWWk16QXR3QzJULzg2 VHJTNTI4ZnlGaFlsQVVDV3U0VXR3QUtDUkRTNTI4ZnlGaFkNCj4gPj4gPiBsSXoyQWY5bnFyU0dR c2FOVlo5RGNTVFg0b3JvM1NSLzhlZnRiQzQxZGF0NjdnallJdWI5eERLVWxiZlVQSWtUDQo+ID4+ ID4gb0dkUFA5eE8zNStYT25tek9LNnhtTHlKYnd2NUFnQ1hlN1hiY0JjR2ZRMzgwemhHZ21lWjVp Y2gyVGQxTGd4bw0KPiA+PiA+IDh0N2lGbyt4VHYrVGljUTI3dVJxQ3dLUGNZRWJ6MDZVS0tncTl0 dFlxZ1haVjFVSXpzNWgNCj4gPj4gPiA9L1VaZg0KPiA+PiA+IC0tLS0tRU5EIFBHUCBTSUdOQVRV UkUtLS0tLSAgDQo+ID4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fDQo+ID4+IHN2bi1zcmMtaGVhZEBmcmVlYnNkLm9yZyBtYWlsaW5nIGxpc3QNCj4gPj4g aHR0cHM6Ly9saXN0cy5mcmVlYnNkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3N2bi1zcmMtaGVhZA0K PiA+PiBUbyB1bnN1YnNjcmliZSwgc2VuZCBhbnkgbWFpbCB0byAic3ZuLXNyYy1oZWFkLXVuc3Vi c2NyaWJlQGZyZWVic2Qub3JnIiAgDQo+ID4NCj4gPg0KPiA+DQo+ID4gLSAtLQ0KPiA+IE8uIEhh cnRtYW5uDQo+ID4NCj4gPiBJY2ggd2lkZXJzcHJlY2hlIGRlciBOdXR6dW5nIG9kZXIgw5xiZXJt aXR0bHVuZyBtZWluZXIgRGF0ZW4gZsO8cg0KPiA+IFdlcmJlendlY2tlIG9kZXIgZsO8ciBkaWUg TWFya3QtIG9kZXIgTWVpbnVuZ3Nmb3JzY2h1bmcgKMKnIDI4IEFicy4gNCBCRFNHKS4NCj4gPiAt LS0tLUJFR0lOIFBHUCBTSUdOQVRVUkUtLS0tLQ0KPiA+DQo+ID4gaUxVRUFSTUtBQjBXSVFRWlZa TXpBdHdDMlQvODZUclM1MjhmeUZoWWxBVUNXdTRhTFFBS0NSRFM1MjhmeUZoWQ0KPiA+IGxOc29B ZjBmRm5FN25HYW5rbTM4N3hza09BSEt4YkdQZnpRY05KeVdWVjNaQlpveGU0OS9UbmJMWHJnNFBE cUMNCj4gPiA3a1hmSXV6MzBlZ1FXVjVvSHpad1llT1JmdHhVQWYwVTNmODJURkhURlB5VlVRV0xP YXJTWGg5WkRjOHc0dWI5DQo+ID4gSGV1cHh0RlUwTnlQb3JEYjQ4YVIzNFJ5ZkdUVkJmVnBjbWQ3 ajRwcVY1REF5YjZtVVQwdQ0KPiA+ID12OG9SDQo+ID4gLS0tLS1FTkQgUEdQIFNJR05BVFVSRS0t LS0tICANCg0KDQoNCi0gLS0gDQpPLiBIYXJ0bWFubg0KDQpJY2ggd2lkZXJzcHJlY2hlIGRlciBO dXR6dW5nIG9kZXIgw5xiZXJtaXR0bHVuZyBtZWluZXIgRGF0ZW4gZsO8cg0KV2VyYmV6d2Vja2Ug b2RlciBmw7xyIGRpZSBNYXJrdC0gb2RlciBNZWludW5nc2ZvcnNjaHVuZyAowqcgMjggQWJzLiA0 IEJEU0cpLg0KLS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0NCg0KaUxVRUFSTUtBQjBXSVFR WlZaTXpBdHdDMlQvODZUclM1MjhmeUZoWWxBVUNXdTZwZ3dBS0NSRFM1MjhmeUZoWQ0KbEhsWUFm OVZ5S1ZXVXlmODVRd1ZGYWIxcGFKbGpTZldvbGxST1VPYnpkSk8rbG1kZXJUd1l1WTV5alhTaGFK SA0KdWJKY2tEdDhsQldmVFFUSWN2eGwzUGhia3hoMEFmd0p0cUxXL00rL20xVmRKekNRdExrVnFv VEVCSEsramRERw0KOEliT3d2TmQwempvZzFCVll1aCt4aHNjUFNSU2VQVDJyYVpqc3JucnZVbXJY QXlmb0F3ZA0KPTFXTmwNCi0tLS0tRU5EIFBHUCBTSUdOQVRVUkUtLS0tLQ0K
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20180506090642.18a8f3c2>