From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 5AE1C40F93 for ; Tue, 11 Oct 2022 06:16:19 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0494B68BBFE; Tue, 11 Oct 2022 09:16:17 +0300 (EEST) Received: from mail-oi1-f180.google.com (mail-oi1-f180.google.com [209.85.167.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E6AF368B907 for ; Tue, 11 Oct 2022 09:16:09 +0300 (EEST) Received: by mail-oi1-f180.google.com with SMTP id j188so7915760oih.4 for ; Mon, 10 Oct 2022 23:16:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=Le16592MpNfHD2Hd3tq8m7swVgkOc5ZBAQthrwB6aHw=; b=k+U519Rc/10WqlBgXl99i8UedhClJoG/VOiVHsvEeGzwrSAViU8tS+pxHPXPkVtW5S K/4EJqcY4xQkNnnY6PzDc0l6ntcC5iQ4k2/SlW3fvLFFvPJx6JaS2svul4GcPqqtHREu Bl6d8DqkB9KFgmREpPO34uOqVylmw8oMUvcbXcUorC6KM9bNELWLN5pMj2xwMQectPKB z5tnEAXYCbhxBdK6XZlMa45FiUBreQXdwmzX/b+PMeH6/e/9yONl4io0u7qVFONsiFfX 7RnjHxIyux1ckmhsJCfec8hVHrNJcN4F80F1ShnTgdLe/B4G2Lha1TdZeekycURPtKjY NqVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Le16592MpNfHD2Hd3tq8m7swVgkOc5ZBAQthrwB6aHw=; b=ubHQzwKBZRBsrqIrJRhTOMAxBiQy6/hV+yBt9FpWu/og+ijU1lFBalM5gIuGDlMQvu wm7m/3rcDZKJVidpz7MnEv0JuSOJhNqYL0AtCyi+zdSbwImf5naqhCG7m3jzhZgyeSnL sTazlx7LTCdIjgMGMarIu/CoP1cyllqZ3ky5oEyhofyfC3TrTrQKFLRYxAPvbeZHLoXe GzgEbjqxrPaHuqcgOum7Cwtv2pJNayh1auTyZiHDIto9N8kB1arHIUbmajWmhSHLXBNe /3uNBxTilIfftV9d43b8tIyGBYyYSQ61swhU06VvjG3Cqbl6QbOf7fSIoiK+bCQHrlyW /K0A== X-Gm-Message-State: ACrzQf3ghVOiTuCtOizeTB0N343eNXIfJQlbl87zS5B/BM8+KU0YaCMx CC7r1B/DpzrV3aJuPgxOMCqyXM6iIr1zQpa28CI4FPQGsvl/0w== X-Google-Smtp-Source: AMsMyM47DZYwMmI90xBHInLoaYGuZdNwag6MQfur0bK2rRkTsXOObhm676+fX+9kWnHdh4vjw8fgd1ijYk14UOb/1YA= X-Received: by 2002:aca:2806:0:b0:354:82ad:4173 with SMTP id 6-20020aca2806000000b0035482ad4173mr4791077oix.66.1665468967811; Mon, 10 Oct 2022 23:16:07 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Steven Liu Date: Tue, 11 Oct 2022 14:15:56 +0800 Message-ID: To: FFmpeg development discussions and patches Subject: Re: [FFmpeg-devel] [PATCH] avformat/dashdec: Differentiate unassigned and zero attributes X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: R3JlZ29yIFJpZXBsIDxvbml0YWtlQGdtYWlsLmNvbT4g5LqOMjAyMuW5tDEw5pyIOOaXpeWRqOWF rSAwNTozMeWGmemBk++8mgo+Cj4gVGhpcyBmaXhlcyBhbiBpc3N1ZSB3aGVyZSBhIHRpbWVzdGFt cCBhdHRyaWJ1dGUgbWF5IGhhdmUgYSB2YWxpZCB6ZXJvCj4gdmFsdWUgKHRoZSBVTklYIGVwb2No IDE5NzAtMDEtMDFUMDA6MDA6MDApLCBidXQgaXMgbWlzaW50ZXJwcmV0ZWQgYnkKPiBkYXNoZGVj IGFzIGJlaW5nIHVuYXNzaWduZWQuIFRoaXMgY2hhbmdlcyB0aGUgbG9naWMgdGhhdCBjYWxjdWxh dGVzCj4gc2VnbWVudCBudW1iZXJzIGFuZCBtYWtlcyB0aGUgc3RyZWFtIHVuZGVjb2RhYmxlIGJ5 IGRhc2hkZWMuCj4KPiBUaGUgZml4IG9yaWdpbmFsbHkgcG9zdGVkIHRvIHRoZSBpc3N1ZSB0cmFj a2VyIHdhcyBpbmNvcnJlY3QgYW5kCj4gY2hhbmdlZCBvdGhlciBwYXJ0cyBvZiB0aGUgc2VnbWVu dCBjYWxjdWxhdGlvbiBsb2dpYy4gV2l0aCB0aGlzCj4gcGF0Y2gsIG9ubHkgdGhlIGludGVycHJl dGF0aW9uIG9mIHRoZSBhdHRyaWJ1dGVzIGlzIGNoYW5nZWQuCj4gU29tZSB3YXJuaW5ncyBhcmUg YWRkZWQgdG8gYWNjb3VudCBmb3IgcG90ZW50aWFsIGVycm9ycyBpbiBtYW5pZmVzdHMuCj4KPiBG aXhlczogIzg1MjIKPiBTaWduZWQtb2ZmLWJ5OiBHcmVnb3IgUmllcGwgPG9uaXRha2VAZ21haWwu Y29tPgo+IC0tLQo+ICAgbGliYXZmb3JtYXQvZGFzaGRlYy5jIHwgMjEwICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQo+ICAgMSBmaWxlIGNoYW5nZWQsIDE2MiBpbnNl cnRpb25zKCspLCA0OCBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9k YXNoZGVjLmMgYi9saWJhdmZvcm1hdC9kYXNoZGVjLmMKPiBpbmRleCAyOWQ0NjgwYzY4Li5mMjVk MWEyYmRmIDEwMDY0NAo+IC0tLSBhL2xpYmF2Zm9ybWF0L2Rhc2hkZWMuYwo+ICsrKyBiL2xpYmF2 Zm9ybWF0L2Rhc2hkZWMuYwo+IEBAIC0yMCw2ICsyMCw3IEBACj4gICAgKiBGb3VuZGF0aW9uLCBJ bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEz MDEgVVNBCj4gICAgKi8KPiAgICNpbmNsdWRlIDxsaWJ4bWwvcGFyc2VyLmg+Cj4gKyNpbmNsdWRl IDxzdGRib29sLmg+Ck5vdCBzdXJlIHRoaXMgaGVhZGVyIGNhbiBiZSB1c2VkIGV2ZXJ5IGVudmVy aW1lbnQuIE9yIHdoYXQgYWJvdXQgdXNlCiNkZWZpbmUgVFJVRSAxCiNkZWZpbmUgRkFMU0UgMAo/ Cj4gICAjaW5jbHVkZSAibGliYXZ1dGlsL2JwcmludC5oIgo+ICAgI2luY2x1ZGUgImxpYmF2dXRp bC9vcHQuaCIKPiAgICNpbmNsdWRlICJsaWJhdnV0aWwvdGltZS5oIgo+IEBAIC0xMjksMjEgKzEz MCwzNCBAQCB0eXBlZGVmIHN0cnVjdCBEQVNIQ29udGV4dCB7Cj4gICAgICAgc3RydWN0IHJlcHJl c2VudGF0aW9uICoqc3VidGl0bGVzOwo+Cj4gICAgICAgLyogTWVkaWFQcmVzZW50YXRpb25EZXNj cmlwdGlvbiBBdHRyaWJ1dGUgKi8KPiAtICAgIHVpbnQ2NF90IG1lZGlhX3ByZXNlbnRhdGlvbl9k dXJhdGlvbjsKPiAtICAgIHVpbnQ2NF90IHN1Z2dlc3RlZF9wcmVzZW50YXRpb25fZGVsYXk7Cj4g LSAgICB1aW50NjRfdCBhdmFpbGFiaWxpdHlfc3RhcnRfdGltZTsKPiAtICAgIHVpbnQ2NF90IGF2 YWlsYWJpbGl0eV9lbmRfdGltZTsKPiAtICAgIHVpbnQ2NF90IHB1Ymxpc2hfdGltZTsKPiAtICAg IHVpbnQ2NF90IG1pbmltdW1fdXBkYXRlX3BlcmlvZDsKPiAtICAgIHVpbnQ2NF90IHRpbWVfc2hp ZnRfYnVmZmVyX2RlcHRoOwo+IC0gICAgdWludDY0X3QgbWluX2J1ZmZlcl90aW1lOwo+ICsgICAg dWludDY0X3QgbWVkaWFfcHJlc2VudGF0aW9uX2R1cmF0aW9uX3ZhbHVlOwo+ICsgICAgdWludDY0 X3Qgc3VnZ2VzdGVkX3ByZXNlbnRhdGlvbl9kZWxheV92YWx1ZTsKPiArICAgIHVpbnQ2NF90IGF2 YWlsYWJpbGl0eV9zdGFydF90aW1lX3ZhbHVlOwo+ICsgICAgdWludDY0X3QgYXZhaWxhYmlsaXR5 X2VuZF90aW1lX3ZhbHVlOwo+ICsgICAgdWludDY0X3QgcHVibGlzaF90aW1lX3ZhbHVlOwo+ICsg ICAgdWludDY0X3QgbWluaW11bV91cGRhdGVfcGVyaW9kX3ZhbHVlOwo+ICsgICAgdWludDY0X3Qg dGltZV9zaGlmdF9idWZmZXJfZGVwdGhfdmFsdWU7Cj4gKyAgICB1aW50NjRfdCBtaW5fYnVmZmVy X3RpbWVfdmFsdWU7Cj4KPiAgICAgICAvKiBQZXJpb2QgQXR0cmlidXRlICovCj4gLSAgICB1aW50 NjRfdCBwZXJpb2RfZHVyYXRpb247Cj4gLSAgICB1aW50NjRfdCBwZXJpb2Rfc3RhcnQ7Cj4gKyAg ICB1aW50NjRfdCBwZXJpb2RfZHVyYXRpb25fdmFsdWU7Cj4gKyAgICB1aW50NjRfdCBwZXJpb2Rf c3RhcnRfdmFsdWU7Cj4KPiAgICAgICAvKiBBZGFwdGF0aW9uU2V0IEF0dHJpYnV0ZSAqLwo+IC0g ICAgY2hhciAqYWRhcHRpb25zZXRfbGFuZzsKPiArICAgIGNoYXIgKmFkYXB0aW9uc2V0X2xhbmdf dmFsdWU7Cj4gKwo+ICsgICAgLyogQXR0cmlidXRlIHZhbGlkIGZsYWdzICh0cnVlIGlmIHRoZSBh dHRyaWJ1dGUgZXhpc3RzIGluIHRoZSBYTUwgbWFuaWZlc3QpICovCj4gKyAgICBib29sIG1lZGlh X3ByZXNlbnRhdGlvbl9kdXJhdGlvbl9hc3NpZ25lZDsKPiArICAgIGJvb2wgc3VnZ2VzdGVkX3By ZXNlbnRhdGlvbl9kZWxheV9hc3NpZ25lZDsKPiArICAgIGJvb2wgYXZhaWxhYmlsaXR5X3N0YXJ0 X3RpbWVfYXNzaWduZWQ7Cj4gKyAgICBib29sIGF2YWlsYWJpbGl0eV9lbmRfdGltZV9hc3NpZ25l ZDsKPiArICAgIGJvb2wgcHVibGlzaF90aW1lX2Fzc2lnbmVkOwo+ICsgICAgYm9vbCBtaW5pbXVt X3VwZGF0ZV9wZXJpb2RfYXNzaWduZWQ7Cj4gKyAgICBib29sIHRpbWVfc2hpZnRfYnVmZmVyX2Rl cHRoX2Fzc2lnbmVkOwo+ICsgICAgYm9vbCBtaW5fYnVmZmVyX3RpbWVfYXNzaWduZWQ7Cj4gKyAg ICBib29sIHBlcmlvZF9kdXJhdGlvbl9hc3NpZ25lZDsKPiArICAgIGJvb2wgcGVyaW9kX3N0YXJ0 X2Fzc2lnbmVkOwo+ICsgICAgYm9vbCBhZGFwdGlvbnNldF9sYW5nX2Fzc2lnbmVkOwo+Cj4gICAg ICAgaW50IGlzX2xpdmU7Cj4gICAgICAgQVZJT0ludGVycnVwdENCICppbnRlcnJ1cHRfY2FsbGJh Y2s7Cj4gQEAgLTg2Nyw4ICs4ODEsOCBAQCBzdGF0aWMgaW50IHBhcnNlX21hbmlmZXN0X3JlcHJl c2VudGF0aW9uKEFWRm9ybWF0Q29udGV4dCAqcywgY29uc3QgY2hhciAqdXJsLAo+ICAgICAgIHJl cCA9IGF2X21hbGxvY3ooc2l6ZW9mKHN0cnVjdCByZXByZXNlbnRhdGlvbikpOwo+ICAgICAgIGlm ICghcmVwKQo+ICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+IC0gICAgaWYgKGMt PmFkYXB0aW9uc2V0X2xhbmcpIHsKPiAtICAgICAgICByZXAtPmxhbmcgPSBhdl9zdHJkdXAoYy0+ YWRhcHRpb25zZXRfbGFuZyk7Cj4gKyAgICBpZiAoYy0+YWRhcHRpb25zZXRfbGFuZ19hc3NpZ25l ZCkgewo+ICsgICAgICAgIHJlcC0+bGFuZyA9IGF2X3N0cmR1cChjLT5hZGFwdGlvbnNldF9sYW5n X3ZhbHVlKTsKPiAgICAgICAgICAgaWYgKCFyZXAtPmxhbmcpIHsKPiAgICAgICAgICAgICAgIGF2 X2xvZyhzLCBBVl9MT0dfRVJST1IsICJhbGxvYyBsYW5ndWFnZSBtZW1vcnkgZmFpbHVyZVxuIik7 Cj4gICAgICAgICAgICAgICBhdl9mcmVlcCgmcmVwKTsKPiBAQCAtMTEwNiw3ICsxMTIwLDEwIEBA IHN0YXRpYyBpbnQgcGFyc2VfbWFuaWZlc3RfYWRhcHRhdGlvbnNldF9hdHRyKEFWRm9ybWF0Q29u dGV4dCAqcywgeG1sTm9kZVB0ciBhZGFwCj4gICAgICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfV0FS TklORywgIkNhbm5vdCBnZXQgQWRhcHRpb25TZXRcbiIpOwo+ICAgICAgICAgICByZXR1cm4gQVZF UlJPUihFSU5WQUwpOwo+ICAgICAgIH0KPiAtICAgIGMtPmFkYXB0aW9uc2V0X2xhbmcgPSB4bWxH ZXRQcm9wKGFkYXB0aW9uc2V0X25vZGUsICJsYW5nIik7Cj4gKyAgICBjLT5hZGFwdGlvbnNldF9s YW5nX3ZhbHVlID0geG1sR2V0UHJvcChhZGFwdGlvbnNldF9ub2RlLCAibGFuZyIpOwo+ICsgICAg aWYgKGMtPmFkYXB0aW9uc2V0X2xhbmdfdmFsdWUpIHsKPiArICAgICAgICBjLT5hZGFwdGlvbnNl dF9sYW5nX2Fzc2lnbmVkID0gdHJ1ZTsKPiArICAgIH0KPgo+ICAgICAgIHJldHVybiAwOwo+ICAg fQo+IEBAIC0xMTYyLDggKzExNzksOSBAQCBzdGF0aWMgaW50IHBhcnNlX21hbmlmZXN0X2FkYXB0 YXRpb25zZXQoQVZGb3JtYXRDb250ZXh0ICpzLCBjb25zdCBjaGFyICp1cmwsCj4gICAgICAgfQo+ Cj4gICBlcnI6Cj4gLSAgICB4bWxGcmVlKGMtPmFkYXB0aW9uc2V0X2xhbmcpOwo+IC0gICAgYy0+ YWRhcHRpb25zZXRfbGFuZyA9IE5VTEw7Cj4gKyAgICB4bWxGcmVlKGMtPmFkYXB0aW9uc2V0X2xh bmdfdmFsdWUpOwo+ICsgICAgYy0+YWRhcHRpb25zZXRfbGFuZ192YWx1ZSA9IE5VTEw7Cj4gKyAg ICBjLT5hZGFwdGlvbnNldF9sYW5nX2Fzc2lnbmVkID0gZmFsc2U7Cj4gICAgICAgcmV0dXJuIHJl dDsKPiAgIH0KPgo+IEBAIC0xMjczLDI5ICsxMjkxLDM3IEBAIHN0YXRpYyBpbnQgcGFyc2VfbWFu aWZlc3QoQVZGb3JtYXRDb250ZXh0ICpzLCBjb25zdCBjaGFyICp1cmwsIEFWSU9Db250ZXh0ICpp bikKPiAgICAgICAgICAgICAgIHZhbCA9IHhtbEdldFByb3Aobm9kZSwgYXR0ci0+bmFtZSk7Cj4K PiAgICAgICAgICAgICAgIGlmICghYXZfc3RyY2FzZWNtcChhdHRyLT5uYW1lLCAiYXZhaWxhYmls aXR5U3RhcnRUaW1lIikpIHsKPiAtICAgICAgICAgICAgICAgIGMtPmF2YWlsYWJpbGl0eV9zdGFy dF90aW1lID0gZ2V0X3V0Y19kYXRlX3RpbWVfaW5zZWMocywgdmFsKTsKPiAtICAgICAgICAgICAg ICAgIGF2X2xvZyhzLCBBVl9MT0dfVFJBQ0UsICJjLT5hdmFpbGFiaWxpdHlfc3RhcnRfdGltZSA9 IFslIlBSSWQ2NCJdXG4iLCBjLT5hdmFpbGFiaWxpdHlfc3RhcnRfdGltZSk7Cj4gKyAgICAgICAg ICAgICAgICBjLT5hdmFpbGFiaWxpdHlfc3RhcnRfdGltZV92YWx1ZSA9IGdldF91dGNfZGF0ZV90 aW1lX2luc2VjKHMsIHZhbCk7Cj4gKyAgICAgICAgICAgICAgICBjLT5hdmFpbGFiaWxpdHlfc3Rh cnRfdGltZV9hc3NpZ25lZCA9IHRydWU7Cj4gKyAgICAgICAgICAgICAgICBhdl9sb2cocywgQVZf TE9HX1RSQUNFLCAiYy0+YXZhaWxhYmlsaXR5X3N0YXJ0X3RpbWUgPSBbJSJQUklkNjQiXVxuIiwg Yy0+YXZhaWxhYmlsaXR5X3N0YXJ0X3RpbWVfdmFsdWUpOwo+ICAgICAgICAgICAgICAgfSBlbHNl IGlmICghYXZfc3RyY2FzZWNtcChhdHRyLT5uYW1lLCAiYXZhaWxhYmlsaXR5RW5kVGltZSIpKSB7 Cj4gLSAgICAgICAgICAgICAgICBjLT5hdmFpbGFiaWxpdHlfZW5kX3RpbWUgPSBnZXRfdXRjX2Rh dGVfdGltZV9pbnNlYyhzLCB2YWwpOwo+IC0gICAgICAgICAgICAgICAgYXZfbG9nKHMsIEFWX0xP R19UUkFDRSwgImMtPmF2YWlsYWJpbGl0eV9lbmRfdGltZSA9IFslIlBSSWQ2NCJdXG4iLCBjLT5h dmFpbGFiaWxpdHlfZW5kX3RpbWUpOwo+ICsgICAgICAgICAgICAgICAgYy0+YXZhaWxhYmlsaXR5 X2VuZF90aW1lX3ZhbHVlID0gZ2V0X3V0Y19kYXRlX3RpbWVfaW5zZWMocywgdmFsKTsKPiArICAg ICAgICAgICAgICAgIGMtPmF2YWlsYWJpbGl0eV9lbmRfdGltZV9hc3NpZ25lZCA9IHRydWU7Cj4g KyAgICAgICAgICAgICAgICBhdl9sb2cocywgQVZfTE9HX1RSQUNFLCAiYy0+YXZhaWxhYmlsaXR5 X2VuZF90aW1lID0gWyUiUFJJZDY0Il1cbiIsIGMtPmF2YWlsYWJpbGl0eV9lbmRfdGltZV92YWx1 ZSk7Cj4gICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFhdl9zdHJjYXNlY21wKGF0dHItPm5hbWUs ICJwdWJsaXNoVGltZSIpKSB7Cj4gLSAgICAgICAgICAgICAgICBjLT5wdWJsaXNoX3RpbWUgPSBn ZXRfdXRjX2RhdGVfdGltZV9pbnNlYyhzLCB2YWwpOwo+IC0gICAgICAgICAgICAgICAgYXZfbG9n KHMsIEFWX0xPR19UUkFDRSwgImMtPnB1Ymxpc2hfdGltZSA9IFslIlBSSWQ2NCJdXG4iLCBjLT5w dWJsaXNoX3RpbWUpOwo+ICsgICAgICAgICAgICAgICAgYy0+cHVibGlzaF90aW1lX3ZhbHVlID0g Z2V0X3V0Y19kYXRlX3RpbWVfaW5zZWMocywgdmFsKTsKPiArICAgICAgICAgICAgICAgIGMtPnB1 Ymxpc2hfdGltZV9hc3NpZ25lZCA9IHRydWU7Cj4gKyAgICAgICAgICAgICAgICBhdl9sb2cocywg QVZfTE9HX1RSQUNFLCAiYy0+cHVibGlzaF90aW1lID0gWyUiUFJJZDY0Il1cbiIsIGMtPnB1Ymxp c2hfdGltZV92YWx1ZSk7Cj4gICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFhdl9zdHJjYXNlY21w KGF0dHItPm5hbWUsICJtaW5pbXVtVXBkYXRlUGVyaW9kIikpIHsKPiAtICAgICAgICAgICAgICAg IGMtPm1pbmltdW1fdXBkYXRlX3BlcmlvZCA9IGdldF9kdXJhdGlvbl9pbnNlYyhzLCB2YWwpOwo+ IC0gICAgICAgICAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19UUkFDRSwgImMtPm1pbmltdW1fdXBk YXRlX3BlcmlvZCA9IFslIlBSSWQ2NCJdXG4iLCBjLT5taW5pbXVtX3VwZGF0ZV9wZXJpb2QpOwo+ ICsgICAgICAgICAgICAgICAgYy0+bWluaW11bV91cGRhdGVfcGVyaW9kX3ZhbHVlID0gZ2V0X2R1 cmF0aW9uX2luc2VjKHMsIHZhbCk7Cj4gKyAgICAgICAgICAgICAgICBjLT5taW5pbXVtX3VwZGF0 ZV9wZXJpb2RfYXNzaWduZWQgPSB0cnVlOwo+ICsgICAgICAgICAgICAgICAgYXZfbG9nKHMsIEFW X0xPR19UUkFDRSwgImMtPm1pbmltdW1fdXBkYXRlX3BlcmlvZCA9IFslIlBSSWQ2NCJdXG4iLCBj LT5taW5pbXVtX3VwZGF0ZV9wZXJpb2RfdmFsdWUpOwo+ICAgICAgICAgICAgICAgfSBlbHNlIGlm ICghYXZfc3RyY2FzZWNtcChhdHRyLT5uYW1lLCAidGltZVNoaWZ0QnVmZmVyRGVwdGgiKSkgewo+ IC0gICAgICAgICAgICAgICAgYy0+dGltZV9zaGlmdF9idWZmZXJfZGVwdGggPSBnZXRfZHVyYXRp b25faW5zZWMocywgdmFsKTsKPiAtICAgICAgICAgICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfVFJB Q0UsICJjLT50aW1lX3NoaWZ0X2J1ZmZlcl9kZXB0aCA9IFslIlBSSWQ2NCJdXG4iLCBjLT50aW1l X3NoaWZ0X2J1ZmZlcl9kZXB0aCk7Cj4gKyAgICAgICAgICAgICAgICBjLT50aW1lX3NoaWZ0X2J1 ZmZlcl9kZXB0aF92YWx1ZSA9IGdldF9kdXJhdGlvbl9pbnNlYyhzLCB2YWwpOwo+ICsgICAgICAg ICAgICAgICAgYy0+dGltZV9zaGlmdF9idWZmZXJfZGVwdGhfYXNzaWduZWQgPSB0cnVlOwo+ICsg ICAgICAgICAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19UUkFDRSwgImMtPnRpbWVfc2hpZnRfYnVm ZmVyX2RlcHRoID0gWyUiUFJJZDY0Il1cbiIsIGMtPnRpbWVfc2hpZnRfYnVmZmVyX2RlcHRoX3Zh bHVlKTsKPiAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWF2X3N0cmNhc2VjbXAoYXR0ci0+bmFt ZSwgIm1pbkJ1ZmZlclRpbWUiKSkgewo+IC0gICAgICAgICAgICAgICAgYy0+bWluX2J1ZmZlcl90 aW1lID0gZ2V0X2R1cmF0aW9uX2luc2VjKHMsIHZhbCk7Cj4gLSAgICAgICAgICAgICAgICBhdl9s b2cocywgQVZfTE9HX1RSQUNFLCAiYy0+bWluX2J1ZmZlcl90aW1lID0gWyUiUFJJZDY0Il1cbiIs IGMtPm1pbl9idWZmZXJfdGltZSk7Cj4gKyAgICAgICAgICAgICAgICBjLT5taW5fYnVmZmVyX3Rp bWVfdmFsdWUgPSBnZXRfZHVyYXRpb25faW5zZWMocywgdmFsKTsKPiArICAgICAgICAgICAgICAg IGMtPm1pbl9idWZmZXJfdGltZV9hc3NpZ25lZCA9IHRydWU7Cj4gKyAgICAgICAgICAgICAgICBh dl9sb2cocywgQVZfTE9HX1RSQUNFLCAiYy0+bWluX2J1ZmZlcl90aW1lID0gWyUiUFJJZDY0Il1c biIsIGMtPm1pbl9idWZmZXJfdGltZV92YWx1ZSk7Cj4gICAgICAgICAgICAgICB9IGVsc2UgaWYg KCFhdl9zdHJjYXNlY21wKGF0dHItPm5hbWUsICJzdWdnZXN0ZWRQcmVzZW50YXRpb25EZWxheSIp KSB7Cj4gLSAgICAgICAgICAgICAgICBjLT5zdWdnZXN0ZWRfcHJlc2VudGF0aW9uX2RlbGF5ID0g Z2V0X2R1cmF0aW9uX2luc2VjKHMsIHZhbCk7Cj4gLSAgICAgICAgICAgICAgICBhdl9sb2cocywg QVZfTE9HX1RSQUNFLCAiYy0+c3VnZ2VzdGVkX3ByZXNlbnRhdGlvbl9kZWxheSA9IFslIlBSSWQ2 NCJdXG4iLCBjLT5zdWdnZXN0ZWRfcHJlc2VudGF0aW9uX2RlbGF5KTsKPiArICAgICAgICAgICAg ICAgIGMtPnN1Z2dlc3RlZF9wcmVzZW50YXRpb25fZGVsYXlfdmFsdWUgPSBnZXRfZHVyYXRpb25f aW5zZWMocywgdmFsKTsKPiArICAgICAgICAgICAgICAgIGMtPnN1Z2dlc3RlZF9wcmVzZW50YXRp b25fZGVsYXlfYXNzaWduZWQgPSB0cnVlOwo+ICsgICAgICAgICAgICAgICAgYXZfbG9nKHMsIEFW X0xPR19UUkFDRSwgImMtPnN1Z2dlc3RlZF9wcmVzZW50YXRpb25fZGVsYXkgPSBbJSJQUklkNjQi XVxuIiwgYy0+c3VnZ2VzdGVkX3ByZXNlbnRhdGlvbl9kZWxheV92YWx1ZSk7Cj4gICAgICAgICAg ICAgICB9IGVsc2UgaWYgKCFhdl9zdHJjYXNlY21wKGF0dHItPm5hbWUsICJtZWRpYVByZXNlbnRh dGlvbkR1cmF0aW9uIikpIHsKPiAtICAgICAgICAgICAgICAgIGMtPm1lZGlhX3ByZXNlbnRhdGlv bl9kdXJhdGlvbiA9IGdldF9kdXJhdGlvbl9pbnNlYyhzLCB2YWwpOwo+IC0gICAgICAgICAgICAg ICAgYXZfbG9nKHMsIEFWX0xPR19UUkFDRSwgImMtPm1lZGlhX3ByZXNlbnRhdGlvbl9kdXJhdGlv biA9IFslIlBSSWQ2NCJdXG4iLCBjLT5tZWRpYV9wcmVzZW50YXRpb25fZHVyYXRpb24pOwo+ICsg ICAgICAgICAgICAgICAgYy0+bWVkaWFfcHJlc2VudGF0aW9uX2R1cmF0aW9uX3ZhbHVlID0gZ2V0 X2R1cmF0aW9uX2luc2VjKHMsIHZhbCk7Cj4gKyAgICAgICAgICAgICAgICBjLT5tZWRpYV9wcmVz ZW50YXRpb25fZHVyYXRpb25fYXNzaWduZWQgPSB0cnVlOwo+ICsgICAgICAgICAgICAgICAgYXZf bG9nKHMsIEFWX0xPR19UUkFDRSwgImMtPm1lZGlhX3ByZXNlbnRhdGlvbl9kdXJhdGlvbiA9IFsl IlBSSWQ2NCJdXG4iLCBjLT5tZWRpYV9wcmVzZW50YXRpb25fZHVyYXRpb25fdmFsdWUpOwo+ICAg ICAgICAgICAgICAgfQo+ICAgICAgICAgICAgICAgYXR0ciA9IGF0dHItPm5leHQ7Cj4gICAgICAg ICAgICAgICB4bWxGcmVlKHZhbCk7Cj4gQEAgLTEzMjUsMTIgKzEzNTEsMzAgQEAgc3RhdGljIGlu dCBwYXJzZV9tYW5pZmVzdChBVkZvcm1hdENvbnRleHQgKnMsIGNvbnN0IGNoYXIgKnVybCwgQVZJ T0NvbnRleHQgKmluKQo+ICAgICAgICAgICAgICAgICAgICAgICBhdHRyID0gYXR0ci0+bmV4dDsK PiAgICAgICAgICAgICAgICAgICAgICAgeG1sRnJlZSh2YWwpOwo+ICAgICAgICAgICAgICAgICAg IH0KPiAtICAgICAgICAgICAgICAgIGlmICgocGVyaW9kX2R1cmF0aW9uX3NlYykgPj0gKGMtPnBl cmlvZF9kdXJhdGlvbikpIHsKPiArICAgICAgICAgICAgICAgIGlmIChjLT5wZXJpb2RfZHVyYXRp b25fYXNzaWduZWQpIHsKPiArICAgICAgICAgICAgICAgICAgICBpZiAoKHBlcmlvZF9kdXJhdGlv bl9zZWMpID49IChjLT5wZXJpb2RfZHVyYXRpb25fdmFsdWUpKSB7Cj4gKyAgICAgICAgICAgICAg ICAgICAgICAgIHBlcmlvZF9ub2RlID0gbm9kZTsKPiArICAgICAgICAgICAgICAgICAgICAgICAg Yy0+cGVyaW9kX2R1cmF0aW9uX3ZhbHVlID0gcGVyaW9kX2R1cmF0aW9uX3NlYzsKPiArICAgICAg ICAgICAgICAgICAgICAgICAgYy0+cGVyaW9kX3N0YXJ0X3ZhbHVlID0gcGVyaW9kX3N0YXJ0X3Nl YzsKPiArICAgICAgICAgICAgICAgICAgICAgICAgYy0+cGVyaW9kX3N0YXJ0X2Fzc2lnbmVkID0g dHJ1ZTsKPiArICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMtPnBlcmlvZF9zdGFydF92YWx1 ZSA+IDApIHsKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMtPm1lZGlhX3ByZXNlbnRh dGlvbl9kdXJhdGlvbl92YWx1ZSA9IGMtPnBlcmlvZF9kdXJhdGlvbl92YWx1ZTsKPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGMtPm1lZGlhX3ByZXNlbnRhdGlvbl9kdXJhdGlvbl9hc3Np Z25lZCA9IHRydWU7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgIH0KPiArICAgICAgICAgICAg ICAgICAgICB9IGVsc2Ugewo+ICsgICAgICAgICAgICAgICAgICAgICAgICBhdl9sb2cocywgQVZf TE9HX1ZFUkJPU0UsICJwcmV2aW91cyBwZXJpb2RfZHVyYXRpb24gaXMgbGFyZ2VyIHRoYW4gbmV3 IHZhbHVlLiBpZ25vcmluZy5cbiIpOwo+ICsgICAgICAgICAgICAgICAgICAgIH0KPiArICAgICAg ICAgICAgICAgIH0gZWxzZSB7Cj4gKyAgICAgICAgICAgICAgICAgICAgYXZfbG9nKHMsIEFWX0xP R19WRVJCT1NFLCAicGVyaW9kX2R1cmF0aW9uIGF0dHJpYnV0ZSB1bnNldCAtIHVwZGF0aW5nIGZy b20gY2FsY3VsYXRlZCB2YWx1ZS5cbiIpOwo+ICAgICAgICAgICAgICAgICAgICAgICBwZXJpb2Rf bm9kZSA9IG5vZGU7Cj4gLSAgICAgICAgICAgICAgICAgICAgYy0+cGVyaW9kX2R1cmF0aW9uID0g cGVyaW9kX2R1cmF0aW9uX3NlYzsKPiAtICAgICAgICAgICAgICAgICAgICBjLT5wZXJpb2Rfc3Rh cnQgPSBwZXJpb2Rfc3RhcnRfc2VjOwo+IC0gICAgICAgICAgICAgICAgICAgIGlmIChjLT5wZXJp b2Rfc3RhcnQgPiAwKQo+IC0gICAgICAgICAgICAgICAgICAgICAgICBjLT5tZWRpYV9wcmVzZW50 YXRpb25fZHVyYXRpb24gPSBjLT5wZXJpb2RfZHVyYXRpb247Cj4gKyAgICAgICAgICAgICAgICAg ICAgYy0+cGVyaW9kX2R1cmF0aW9uX3ZhbHVlID0gcGVyaW9kX2R1cmF0aW9uX3NlYzsKPiArICAg ICAgICAgICAgICAgICAgICBjLT5wZXJpb2RfZHVyYXRpb25fYXNzaWduZWQgPSB0cnVlOwo+ICsg ICAgICAgICAgICAgICAgICAgIGMtPnBlcmlvZF9zdGFydF92YWx1ZSA9IHBlcmlvZF9zdGFydF9z ZWM7Cj4gKyAgICAgICAgICAgICAgICAgICAgYy0+cGVyaW9kX3N0YXJ0X2Fzc2lnbmVkID0gdHJ1 ZTsKPiArICAgICAgICAgICAgICAgICAgICBpZiAoYy0+cGVyaW9kX3N0YXJ0X3ZhbHVlID4gMCkg ewo+ICsgICAgICAgICAgICAgICAgICAgICAgICBjLT5tZWRpYV9wcmVzZW50YXRpb25fZHVyYXRp b25fdmFsdWUgPSBjLT5wZXJpb2RfZHVyYXRpb25fdmFsdWU7Cj4gKyAgICAgICAgICAgICAgICAg ICAgICAgIGMtPm1lZGlhX3ByZXNlbnRhdGlvbl9kdXJhdGlvbl9hc3NpZ25lZCA9IHRydWU7Cj4g KyAgICAgICAgICAgICAgICAgICAgfQo+ICAgICAgICAgICAgICAgICAgIH0KPiAgICAgICAgICAg ICAgIH0gZWxzZSBpZiAoIWF2X3N0cmNhc2VjbXAobm9kZS0+bmFtZSwgIlByb2dyYW1JbmZvcm1h dGlvbiIpKSB7Cj4gICAgICAgICAgICAgICAgICAgcGFyc2VfcHJvZ3JhbWluZm9ybWF0aW9uKHMs IG5vZGUpOwo+IEBAIC0xMzkxLDE1ICsxNDM1LDU0IEBAIHN0YXRpYyBpbnQ2NF90IGNhbGNfY3Vy X3NlZ19ubyhBVkZvcm1hdENvbnRleHQgKnMsIHN0cnVjdCByZXByZXNlbnRhdGlvbiAqcGxzKQo+ ICAgICAgICAgICB9IGVsc2UgaWYgKHBscy0+ZnJhZ21lbnRfZHVyYXRpb24pewo+ICAgICAgICAg ICAgICAgYXZfbG9nKHMsIEFWX0xPR19UUkFDRSwgImluIGZyYWdtZW50X2R1cmF0aW9uIG1vZGUg ZnJhZ21lbnRfdGltZXNjYWxlID0gJSJQUklkNjQiLCBwcmVzZW50YXRpb25fdGltZW9mZnNldCA9 ICUiUFJJZDY0IlxuIiwgcGxzLT5mcmFnbWVudF90aW1lc2NhbGUsIHBscy0+cHJlc2VudGF0aW9u X3RpbWVvZmZzZXQpOwo+ICAgICAgICAgICAgICAgaWYgKHBscy0+cHJlc2VudGF0aW9uX3RpbWVv ZmZzZXQpIHsKPiAtICAgICAgICAgICAgICAgIG51bSA9IHBscy0+Zmlyc3Rfc2VxX25vICsgKCgo Z2V0X2N1cnJlbnRfdGltZV9pbl9zZWMoKSAtIGMtPmF2YWlsYWJpbGl0eV9zdGFydF90aW1lKSAq IHBscy0+ZnJhZ21lbnRfdGltZXNjYWxlKS1wbHMtPnByZXNlbnRhdGlvbl90aW1lb2Zmc2V0KSAv IHBscy0+ZnJhZ21lbnRfZHVyYXRpb24gLSBjLT5taW5fYnVmZmVyX3RpbWU7Cj4gLSAgICAgICAg ICAgIH0gZWxzZSBpZiAoYy0+cHVibGlzaF90aW1lID4gMCAmJiAhYy0+YXZhaWxhYmlsaXR5X3N0 YXJ0X3RpbWUpIHsKPiAtICAgICAgICAgICAgICAgIGlmIChjLT5taW5fYnVmZmVyX3RpbWUpIHsK PiAtICAgICAgICAgICAgICAgICAgICBudW0gPSBwbHMtPmZpcnN0X3NlcV9ubyArICgoKGMtPnB1 Ymxpc2hfdGltZSArIHBscy0+ZnJhZ21lbnRfZHVyYXRpb24pIC0gYy0+c3VnZ2VzdGVkX3ByZXNl bnRhdGlvbl9kZWxheSkgKiBwbHMtPmZyYWdtZW50X3RpbWVzY2FsZSkgLyBwbHMtPmZyYWdtZW50 X2R1cmF0aW9uIC0gYy0+bWluX2J1ZmZlcl90aW1lOwo+ICsgICAgICAgICAgICAgICAgaWYgKGMt PmF2YWlsYWJpbGl0eV9zdGFydF90aW1lX2Fzc2lnbmVkICYmIGMtPm1pbl9idWZmZXJfdGltZV9h c3NpZ25lZCkgewo+ICsgICAgICAgICAgICAgICAgICAgIG51bSA9IHBscy0+Zmlyc3Rfc2VxX25v ICsgKCgoZ2V0X2N1cnJlbnRfdGltZV9pbl9zZWMoKSAtIGMtPmF2YWlsYWJpbGl0eV9zdGFydF90 aW1lX3ZhbHVlKSAqIHBscy0+ZnJhZ21lbnRfdGltZXNjYWxlKS1wbHMtPnByZXNlbnRhdGlvbl90 aW1lb2Zmc2V0KSAvIHBscy0+ZnJhZ21lbnRfZHVyYXRpb24gLSBjLT5taW5fYnVmZmVyX3RpbWVf YXNzaWduZWQ7Cj4gICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKPiAtICAgICAgICAgICAgICAg ICAgICBudW0gPSBwbHMtPmZpcnN0X3NlcV9ubyArICgoKGMtPnB1Ymxpc2hfdGltZSAtIGMtPnRp bWVfc2hpZnRfYnVmZmVyX2RlcHRoICsgcGxzLT5mcmFnbWVudF9kdXJhdGlvbikgLSBjLT5zdWdn ZXN0ZWRfcHJlc2VudGF0aW9uX2RlbGF5KSAqIHBscy0+ZnJhZ21lbnRfdGltZXNjYWxlKSAvIHBs cy0+ZnJhZ21lbnRfZHVyYXRpb247Cj4gKyAgICAgICAgICAgICAgICAgICAgYXZfbG9nKHMsIEFW X0xPR19XQVJOSU5HLCAiYXZhaWxhYmlsaXR5X3N0YXJ0X3RpbWUgYW5kL29yIG1pbl9idWZmZXJf dGltZSBhdHRyaWJ1dGVzIHVuc2V0IC0gdXNpbmcgemVybyB2YWx1ZXMuIHNlZ21lbnQgbnVtYmVy cyBtYXkgYmUgaW5jb3JyZWN0LlxuIik7Cj4gKyAgICAgICAgICAgICAgICAgICAgaWYgKGMtPmF2 YWlsYWJpbGl0eV9zdGFydF90aW1lX2Fzc2lnbmVkKSB7Cj4gKyAgICAgICAgICAgICAgICAgICAg ICAgIG51bSA9IHBscy0+Zmlyc3Rfc2VxX25vICsgKCgoZ2V0X2N1cnJlbnRfdGltZV9pbl9zZWMo KSAtIGMtPmF2YWlsYWJpbGl0eV9zdGFydF90aW1lX3ZhbHVlKSAqIHBscy0+ZnJhZ21lbnRfdGlt ZXNjYWxlKS1wbHMtPnByZXNlbnRhdGlvbl90aW1lb2Zmc2V0KSAvIHBscy0+ZnJhZ21lbnRfZHVy YXRpb247Cj4gKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjLT5taW5fYnVmZmVyX3Rp bWVfYXNzaWduZWQpIHsKPiArICAgICAgICAgICAgICAgICAgICAgICAgbnVtID0gcGxzLT5maXJz dF9zZXFfbm8gKyAoKChnZXRfY3VycmVudF90aW1lX2luX3NlYygpKSAqIHBscy0+ZnJhZ21lbnRf dGltZXNjYWxlKS1wbHMtPnByZXNlbnRhdGlvbl90aW1lb2Zmc2V0KSAvIHBscy0+ZnJhZ21lbnRf ZHVyYXRpb24gLSBjLT5taW5fYnVmZmVyX3RpbWVfdmFsdWU7Cj4gKyAgICAgICAgICAgICAgICAg ICAgfSBlbHNlIHsKPiArICAgICAgICAgICAgICAgICAgICAgICAgbnVtID0gcGxzLT5maXJzdF9z ZXFfbm8gKyAoKChnZXRfY3VycmVudF90aW1lX2luX3NlYygpKSAqIHBscy0+ZnJhZ21lbnRfdGlt ZXNjYWxlKS1wbHMtPnByZXNlbnRhdGlvbl90aW1lb2Zmc2V0KSAvIHBscy0+ZnJhZ21lbnRfZHVy YXRpb247Cj4gKyAgICAgICAgICAgICAgICAgICAgfQo+ICsgICAgICAgICAgICAgICAgfQo+ICsg ICAgICAgICAgICB9IGVsc2UgaWYgKGMtPnB1Ymxpc2hfdGltZV9hc3NpZ25lZCAmJiBjLT5wdWJs aXNoX3RpbWVfdmFsdWUgPiAwICYmICFjLT5hdmFpbGFiaWxpdHlfc3RhcnRfdGltZV9hc3NpZ25l ZCkgewo+ICsgICAgICAgICAgICAgICAgLy8gRklYTUUgaXMgcHVibGlzaF90aW1lX3ZhbHVlID4g MCBhIHJlcXVpcmVkIGNvbmRpdGlvbiwgb3IgYXJlIHdlIG9ubHkgY2hlY2tpbmcgZm9yIGV4aXN0 ZW5jZSBvZiB0aGUgYXR0cmlidXRlPwo+ICsgICAgICAgICAgICAgICAgaWYgKGMtPm1pbl9idWZm ZXJfdGltZV9hc3NpZ25lZCkgewo+ICsgICAgICAgICAgICAgICAgICAgIGlmIChjLT5zdWdnZXN0 ZWRfcHJlc2VudGF0aW9uX2RlbGF5X2Fzc2lnbmVkKSB7Cj4gKyAgICAgICAgICAgICAgICAgICAg ICAgIG51bSA9IHBscy0+Zmlyc3Rfc2VxX25vICsgKCgoYy0+cHVibGlzaF90aW1lX3ZhbHVlICsg cGxzLT5mcmFnbWVudF9kdXJhdGlvbikgLSBjLT5zdWdnZXN0ZWRfcHJlc2VudGF0aW9uX2RlbGF5 X3ZhbHVlKSAqIHBscy0+ZnJhZ21lbnRfdGltZXNjYWxlKSAvIHBscy0+ZnJhZ21lbnRfZHVyYXRp b24gLSBjLT5taW5fYnVmZmVyX3RpbWVfdmFsdWU7Cj4gKyAgICAgICAgICAgICAgICAgICAgfSBl bHNlIHsKPiArICAgICAgICAgICAgICAgICAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19XQVJOSU5H LCAic3VnZ2VzdGVkX3ByZXNlbnRhdGlvbl9kZWxheSBhdHRyaWJ1dGUgdW5zZXQgLSB1c2luZyB6 ZXJvIHZhbHVlLiBzZWdtZW50IG51bWJlcnMgbWF5IGJlIGluY29ycmVjdC5cbiIpOwo+ICsgICAg ICAgICAgICAgICAgICAgICAgICBudW0gPSBwbHMtPmZpcnN0X3NlcV9ubyArICgoYy0+cHVibGlz aF90aW1lX3ZhbHVlICsgcGxzLT5mcmFnbWVudF9kdXJhdGlvbikgKiBwbHMtPmZyYWdtZW50X3Rp bWVzY2FsZSkgLyBwbHMtPmZyYWdtZW50X2R1cmF0aW9uIC0gYy0+bWluX2J1ZmZlcl90aW1lX3Zh bHVlOwo+ICsgICAgICAgICAgICAgICAgICAgIH0KPiArICAgICAgICAgICAgICAgIH0gZWxzZSB7 Cj4gKyAgICAgICAgICAgICAgICAgICAgaWYgKGMtPnRpbWVfc2hpZnRfYnVmZmVyX2RlcHRoX2Fz c2lnbmVkICYmIGMtPnN1Z2dlc3RlZF9wcmVzZW50YXRpb25fZGVsYXlfYXNzaWduZWQpIHsKPiAr ICAgICAgICAgICAgICAgICAgICAgICAgbnVtID0gcGxzLT5maXJzdF9zZXFfbm8gKyAoKChjLT5w dWJsaXNoX3RpbWVfdmFsdWUgLSBjLT50aW1lX3NoaWZ0X2J1ZmZlcl9kZXB0aF92YWx1ZSArIHBs cy0+ZnJhZ21lbnRfZHVyYXRpb24pIC0gYy0+c3VnZ2VzdGVkX3ByZXNlbnRhdGlvbl9kZWxheV92 YWx1ZSkgKiBwbHMtPmZyYWdtZW50X3RpbWVzY2FsZSkgLyBwbHMtPmZyYWdtZW50X2R1cmF0aW9u Owo+ICsgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Cj4gKyAgICAgICAgICAgICAgICAgICAg ICAgIGF2X2xvZyhzLCBBVl9MT0dfV0FSTklORywgInRpbWVfc2hpZnRfYnVmZmVyX2RlcHRoIGFu ZC9vciBzdWdnZXN0ZWRfcHJlc2VudGF0aW9uX2RlbGF5IGF0dHJpYnV0ZXMgdW5zZXQgLSB1c2lu ZyB6ZXJvIHZhbHVlcy4gc2VnbWVudCBudW1iZXJzIG1heSBiZSBpbmNvcnJlY3QuXG4iKTsKPiAr ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMtPnRpbWVfc2hpZnRfYnVmZmVyX2RlcHRoX2Fz c2lnbmVkKSB7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW0gPSBwbHMtPmZpcnN0 X3NlcV9ubyArICgoYy0+cHVibGlzaF90aW1lX3ZhbHVlIC0gYy0+dGltZV9zaGlmdF9idWZmZXJf ZGVwdGhfdmFsdWUgKyBwbHMtPmZyYWdtZW50X2R1cmF0aW9uKSAqIHBscy0+ZnJhZ21lbnRfdGlt ZXNjYWxlKSAvIHBscy0+ZnJhZ21lbnRfZHVyYXRpb247Cj4gKyAgICAgICAgICAgICAgICAgICAg ICAgIH0gZWxzZSBpZiAoYy0+c3VnZ2VzdGVkX3ByZXNlbnRhdGlvbl9kZWxheV9hc3NpZ25lZCkg ewo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtID0gcGxzLT5maXJzdF9zZXFfbm8g KyAoKChjLT5wdWJsaXNoX3RpbWVfdmFsdWUgKyBwbHMtPmZyYWdtZW50X2R1cmF0aW9uKSAtIGMt PnN1Z2dlc3RlZF9wcmVzZW50YXRpb25fZGVsYXlfdmFsdWUpICogcGxzLT5mcmFnbWVudF90aW1l c2NhbGUpIC8gcGxzLT5mcmFnbWVudF9kdXJhdGlvbjsKPiArICAgICAgICAgICAgICAgICAgICAg ICAgfSBlbHNlIHsKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bSA9IHBscy0+Zmly c3Rfc2VxX25vICsgKChjLT5wdWJsaXNoX3RpbWVfdmFsdWUgKyBwbHMtPmZyYWdtZW50X2R1cmF0 aW9uKSAqIHBscy0+ZnJhZ21lbnRfdGltZXNjYWxlKSAvIHBscy0+ZnJhZ21lbnRfZHVyYXRpb247 Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgIH0KPiArICAgICAgICAgICAgICAgICAgICB9Cj4g ICAgICAgICAgICAgICAgICAgfQo+ICAgICAgICAgICAgICAgfSBlbHNlIHsKPiAtICAgICAgICAg ICAgICAgIG51bSA9IHBscy0+Zmlyc3Rfc2VxX25vICsgKCgoZ2V0X2N1cnJlbnRfdGltZV9pbl9z ZWMoKSAtIGMtPmF2YWlsYWJpbGl0eV9zdGFydF90aW1lKSAtIGMtPnN1Z2dlc3RlZF9wcmVzZW50 YXRpb25fZGVsYXkpICogcGxzLT5mcmFnbWVudF90aW1lc2NhbGUpIC8gcGxzLT5mcmFnbWVudF9k dXJhdGlvbjsKPiArICAgICAgICAgICAgICAgIGlmIChjLT5hdmFpbGFiaWxpdHlfc3RhcnRfdGlt ZV9hc3NpZ25lZCAmJiBjLT5zdWdnZXN0ZWRfcHJlc2VudGF0aW9uX2RlbGF5X2Fzc2lnbmVkKSB7 Cj4gKyAgICAgICAgICAgICAgICAgICAgbnVtID0gcGxzLT5maXJzdF9zZXFfbm8gKyAoKChnZXRf Y3VycmVudF90aW1lX2luX3NlYygpIC0gYy0+YXZhaWxhYmlsaXR5X3N0YXJ0X3RpbWVfdmFsdWUp IC0gYy0+c3VnZ2VzdGVkX3ByZXNlbnRhdGlvbl9kZWxheV92YWx1ZSkgKiBwbHMtPmZyYWdtZW50 X3RpbWVzY2FsZSkgLyBwbHMtPmZyYWdtZW50X2R1cmF0aW9uOwo+ICsgICAgICAgICAgICAgICAg fSBlbHNlIHsKPiArICAgICAgICAgICAgICAgICAgICBhdl9sb2cocywgQVZfTE9HX1dBUk5JTkcs ICJhdmFpbGFiaWxpdHlfc3RhcnRfdGltZSBhbmQvb3Igc3VnZ2VzdGVkX3ByZXNlbnRhdGlvbl9k ZWxheSBhdHRyaWJ1dGVzIHVuc2V0IC0gdXNpbmcgemVybyB2YWx1ZXMuIHNlZ21lbnQgbnVtYmVy cyBtYXkgYmUgaW5jb3JyZWN0LlxuIik7Cj4gKyAgICAgICAgICAgICAgICAgICAgaWYgKGMtPmF2 YWlsYWJpbGl0eV9zdGFydF90aW1lX2Fzc2lnbmVkKSB7Cj4gKyAgICAgICAgICAgICAgICAgICAg ICAgIG51bSA9IHBscy0+Zmlyc3Rfc2VxX25vICsgKChnZXRfY3VycmVudF90aW1lX2luX3NlYygp IC0gYy0+YXZhaWxhYmlsaXR5X3N0YXJ0X3RpbWVfdmFsdWUpICogcGxzLT5mcmFnbWVudF90aW1l c2NhbGUpIC8gcGxzLT5mcmFnbWVudF9kdXJhdGlvbjsKPiArICAgICAgICAgICAgICAgICAgICB9 IGVsc2UgaWYgKGMtPnN1Z2dlc3RlZF9wcmVzZW50YXRpb25fZGVsYXlfYXNzaWduZWQpIHsKPiAr ICAgICAgICAgICAgICAgICAgICAgICAgbnVtID0gcGxzLT5maXJzdF9zZXFfbm8gKyAoKGdldF9j dXJyZW50X3RpbWVfaW5fc2VjKCkgLSBjLT5zdWdnZXN0ZWRfcHJlc2VudGF0aW9uX2RlbGF5X3Zh bHVlKSAqIHBscy0+ZnJhZ21lbnRfdGltZXNjYWxlKSAvIHBscy0+ZnJhZ21lbnRfZHVyYXRpb247 Cj4gKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKPiArICAgICAgICAgICAgICAgICAgICAg ICAgbnVtID0gcGxzLT5maXJzdF9zZXFfbm8gKyAoZ2V0X2N1cnJlbnRfdGltZV9pbl9zZWMoKSAq IHBscy0+ZnJhZ21lbnRfdGltZXNjYWxlKSAvIHBscy0+ZnJhZ21lbnRfZHVyYXRpb247Cj4gKyAg ICAgICAgICAgICAgICAgICAgfQo+ICsgICAgICAgICAgICAgICAgfQo+ICAgICAgICAgICAgICAg fQo+ICAgICAgICAgICB9Cj4gICAgICAgfSBlbHNlIHsKPiBAQCAtMTQxNSw3ICsxNDk4LDE4IEBA IHN0YXRpYyBpbnQ2NF90IGNhbGNfbWluX3NlZ19ubyhBVkZvcm1hdENvbnRleHQgKnMsIHN0cnVj dCByZXByZXNlbnRhdGlvbiAqcGxzKQo+Cj4gICAgICAgaWYgKGMtPmlzX2xpdmUgJiYgcGxzLT5m cmFnbWVudF9kdXJhdGlvbikgewo+ICAgICAgICAgICBhdl9sb2cocywgQVZfTE9HX1RSQUNFLCAi aW4gbGl2ZSBtb2RlXG4iKTsKPiAtICAgICAgICBudW0gPSBwbHMtPmZpcnN0X3NlcV9ubyArICgo KGdldF9jdXJyZW50X3RpbWVfaW5fc2VjKCkgLSBjLT5hdmFpbGFiaWxpdHlfc3RhcnRfdGltZSkg LSBjLT50aW1lX3NoaWZ0X2J1ZmZlcl9kZXB0aCkgKiBwbHMtPmZyYWdtZW50X3RpbWVzY2FsZSkg LyBwbHMtPmZyYWdtZW50X2R1cmF0aW9uOwo+ICsgICAgICAgIGlmIChjLT5hdmFpbGFiaWxpdHlf c3RhcnRfdGltZV9hc3NpZ25lZCAmJiBjLT50aW1lX3NoaWZ0X2J1ZmZlcl9kZXB0aF9hc3NpZ25l ZCkgewo+ICsgICAgICAgICAgICBudW0gPSBwbHMtPmZpcnN0X3NlcV9ubyArICgoKGdldF9jdXJy ZW50X3RpbWVfaW5fc2VjKCkgLSBjLT5hdmFpbGFiaWxpdHlfc3RhcnRfdGltZV92YWx1ZSkgLSBj LT50aW1lX3NoaWZ0X2J1ZmZlcl9kZXB0aF92YWx1ZSkgKiBwbHMtPmZyYWdtZW50X3RpbWVzY2Fs ZSkgLyBwbHMtPmZyYWdtZW50X2R1cmF0aW9uOwo+ICsgICAgICAgIH0gZWxzZSB7Cj4gKyAgICAg ICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfV0FSTklORywgImF2YWlsYWJpbGl0eV9zdGFydF90aW1l IGFuZC9vciB0aW1lX3NoaWZ0X2J1ZmZlcl9kZXB0aCBhdHRyaWJ1dGVzIHVuc2V0IC0gdXNpbmcg emVybyB2YWx1ZXMuIHNlZ21lbnQgbnVtYmVycyBtYXkgYmUgaW5jb3JyZWN0LlxuIik7Cj4gKyAg ICAgICAgICAgIGlmIChjLT5hdmFpbGFiaWxpdHlfc3RhcnRfdGltZV9hc3NpZ25lZCkgewo+ICsg ICAgICAgICAgICAgICAgbnVtID0gcGxzLT5maXJzdF9zZXFfbm8gKyAoKGdldF9jdXJyZW50X3Rp bWVfaW5fc2VjKCkgLSBjLT5hdmFpbGFiaWxpdHlfc3RhcnRfdGltZV92YWx1ZSkgKiBwbHMtPmZy YWdtZW50X3RpbWVzY2FsZSkgLyBwbHMtPmZyYWdtZW50X2R1cmF0aW9uOwo+ICsgICAgICAgICAg ICB9IGVsc2UgaWYgKGMtPnRpbWVfc2hpZnRfYnVmZmVyX2RlcHRoX2Fzc2lnbmVkKSB7Cj4gKyAg ICAgICAgICAgICAgICBudW0gPSBwbHMtPmZpcnN0X3NlcV9ubyArICgoZ2V0X2N1cnJlbnRfdGlt ZV9pbl9zZWMoKSAtIGMtPnRpbWVfc2hpZnRfYnVmZmVyX2RlcHRoX3ZhbHVlKSAqIHBscy0+ZnJh Z21lbnRfdGltZXNjYWxlKSAvIHBscy0+ZnJhZ21lbnRfZHVyYXRpb247Cj4gKyAgICAgICAgICAg IH0gZWxzZSB7Cj4gKyAgICAgICAgICAgICAgICBudW0gPSBwbHMtPmZpcnN0X3NlcV9ubyArIChn ZXRfY3VycmVudF90aW1lX2luX3NlYygpICogcGxzLT5mcmFnbWVudF90aW1lc2NhbGUpIC8gcGxz LT5mcmFnbWVudF9kdXJhdGlvbjsKPiArICAgICAgICAgICAgfQo+ICsgICAgICAgIH0KPiAgICAg ICB9IGVsc2Ugewo+ICAgICAgICAgICBudW0gPSBwbHMtPmZpcnN0X3NlcV9ubzsKPiAgICAgICB9 Cj4gQEAgLTE0MzQsMTUgKzE1MjgsMzAgQEAgc3RhdGljIGludDY0X3QgY2FsY19tYXhfc2VnX25v KHN0cnVjdCByZXByZXNlbnRhdGlvbiAqcGxzLCBEQVNIQ29udGV4dCAqYykKPiAgICAgICAgICAg Zm9yIChpID0gMDsgaSA8IHBscy0+bl90aW1lbGluZXM7IGkrKykgewo+ICAgICAgICAgICAgICAg aWYgKHBscy0+dGltZWxpbmVzW2ldLT5yZXBlYXQgPT0gLTEpIHsKPiAgICAgICAgICAgICAgICAg ICBpbnQgbGVuZ3RoX29mX2VhY2hfc2VnbWVudCA9IHBscy0+dGltZWxpbmVzW2ldLT5kdXJhdGlv biAvIHBscy0+ZnJhZ21lbnRfdGltZXNjYWxlOwo+IC0gICAgICAgICAgICAgICAgbnVtID0gIGMt PnBlcmlvZF9kdXJhdGlvbiAvIGxlbmd0aF9vZl9lYWNoX3NlZ21lbnQ7Cj4gKyAgICAgICAgICAg ICAgICBpZiAoYy0+cGVyaW9kX2R1cmF0aW9uX2Fzc2lnbmVkKSB7Cj4gKyAgICAgICAgICAgICAg ICAgICAgbnVtID0gYy0+cGVyaW9kX2R1cmF0aW9uX3ZhbHVlIC8gbGVuZ3RoX29mX2VhY2hfc2Vn bWVudDsKPiArICAgICAgICAgICAgICAgIH0gZWxzZSB7Cj4gKyAgICAgICAgICAgICAgICAgICAg YXZfbG9nKE5VTEwsIEFWX0xPR19XQVJOSU5HLCAicGVyaW9kX2R1cmF0aW9uIGF0dHJpYnV0ZSB1 bnNldCAtIHVzaW5nIHplcm8gdmFsdWUuIHNlZ21lbnQgbnVtYmVycyBtYXkgYmUgaW5jb3JyZWN0 LlxuIik7Cj4gKyAgICAgICAgICAgICAgICAgICAgbnVtID0gMDsKPiArICAgICAgICAgICAgICAg IH0KPiAgICAgICAgICAgICAgIH0gZWxzZSB7Cj4gICAgICAgICAgICAgICAgICAgbnVtICs9IHBs cy0+dGltZWxpbmVzW2ldLT5yZXBlYXQ7Cj4gICAgICAgICAgICAgICB9Cj4gICAgICAgICAgIH0K PiAgICAgICB9IGVsc2UgaWYgKGMtPmlzX2xpdmUgJiYgcGxzLT5mcmFnbWVudF9kdXJhdGlvbikg ewo+IC0gICAgICAgIG51bSA9IHBscy0+Zmlyc3Rfc2VxX25vICsgKCgoZ2V0X2N1cnJlbnRfdGlt ZV9pbl9zZWMoKSAtIGMtPmF2YWlsYWJpbGl0eV9zdGFydF90aW1lKSkgKiBwbHMtPmZyYWdtZW50 X3RpbWVzY2FsZSkgIC8gcGxzLT5mcmFnbWVudF9kdXJhdGlvbjsKPiArICAgICAgICBpZiAoYy0+ YXZhaWxhYmlsaXR5X3N0YXJ0X3RpbWVfYXNzaWduZWQpIHsKPiArICAgICAgICAgICAgbnVtID0g cGxzLT5maXJzdF9zZXFfbm8gKyAoKChnZXRfY3VycmVudF90aW1lX2luX3NlYygpIC0gYy0+YXZh aWxhYmlsaXR5X3N0YXJ0X3RpbWVfdmFsdWUpKSAqIHBscy0+ZnJhZ21lbnRfdGltZXNjYWxlKSAg LyBwbHMtPmZyYWdtZW50X2R1cmF0aW9uOwo+ICsgICAgICAgIH0gZWxzZSB7Cj4gKyAgICAgICAg ICAgIGF2X2xvZyhOVUxMLCBBVl9MT0dfV0FSTklORywgImF2YWlsYWJpbGl0eV9zdGFydF90aW1l IGF0dHJpYnV0ZSB1bnNldCAtIHVzaW5nIHplcm8gdmFsdWUuIHNlZ21lbnQgbnVtYmVycyBtYXkg YmUgaW5jb3JyZWN0LlxuIik7Cj4gKyAgICAgICAgICAgIG51bSA9IHBscy0+Zmlyc3Rfc2VxX25v ICsgKGdldF9jdXJyZW50X3RpbWVfaW5fc2VjKCkgKiBwbHMtPmZyYWdtZW50X3RpbWVzY2FsZSkg IC8gcGxzLT5mcmFnbWVudF9kdXJhdGlvbjsKPiArICAgICAgICB9Cj4gICAgICAgfSBlbHNlIGlm IChwbHMtPmZyYWdtZW50X2R1cmF0aW9uKSB7Cj4gLSAgICAgICAgbnVtID0gcGxzLT5maXJzdF9z ZXFfbm8gKyBhdl9yZXNjYWxlX3JuZCgxLCBjLT5tZWRpYV9wcmVzZW50YXRpb25fZHVyYXRpb24g KiBwbHMtPmZyYWdtZW50X3RpbWVzY2FsZSwgcGxzLT5mcmFnbWVudF9kdXJhdGlvbiwgQVZfUk9V TkRfVVApOwo+ICsgICAgICAgIGlmIChjLT5tZWRpYV9wcmVzZW50YXRpb25fZHVyYXRpb25fYXNz aWduZWQpIHsKPiArICAgICAgICAgICAgbnVtID0gcGxzLT5maXJzdF9zZXFfbm8gKyBhdl9yZXNj YWxlX3JuZCgxLCBjLT5tZWRpYV9wcmVzZW50YXRpb25fZHVyYXRpb25fdmFsdWUgKiBwbHMtPmZy YWdtZW50X3RpbWVzY2FsZSwgcGxzLT5mcmFnbWVudF9kdXJhdGlvbiwgQVZfUk9VTkRfVVApOwo+ ICsgICAgICAgIH0gZWxzZSB7Cj4gKyAgICAgICAgICAgIGF2X2xvZyhOVUxMLCBBVl9MT0dfV0FS TklORywgIm1lZGlhX3ByZXNlbnRhdGlvbl9kdXJhdGlvbiBhdHRyaWJ1dGUgdW5zZXQgLSB1c2lu ZyB6ZXJvIHZhbHVlLiBzZWdtZW50IG51bWJlcnMgbWF5IGJlIGluY29ycmVjdC5cbiIpOwo+ICsg ICAgICAgICAgICBudW0gPSBwbHMtPmZpcnN0X3NlcV9ubyArIGF2X3Jlc2NhbGVfcm5kKDEsIDAs IHBscy0+ZnJhZ21lbnRfZHVyYXRpb24sIEFWX1JPVU5EX1VQKTsKPiArICAgICAgICB9Cj4gICAg ICAgfQo+Cj4gICAgICAgcmV0dXJuIG51bTsKPiBAQCAtMjA0MCw3ICsyMTQ5LDEyIEBAIHN0YXRp YyBpbnQgZGFzaF9yZWFkX2hlYWRlcihBVkZvcm1hdENvbnRleHQgKnMpCj4gICAgICAgLyogSWYg dGhpcyBpc24ndCBhIGxpdmUgc3RyZWFtLCBmaWxsIHRoZSB0b3RhbCBkdXJhdGlvbiBvZiB0aGUK PiAgICAgICAgKiBzdHJlYW0uICovCj4gICAgICAgaWYgKCFjLT5pc19saXZlKSB7Cj4gLSAgICAg ICAgcy0+ZHVyYXRpb24gPSAoaW50NjRfdCkgYy0+bWVkaWFfcHJlc2VudGF0aW9uX2R1cmF0aW9u ICogQVZfVElNRV9CQVNFOwo+ICsgICAgICAgIGlmIChjLT5tZWRpYV9wcmVzZW50YXRpb25fZHVy YXRpb25fYXNzaWduZWQpIHsKPiArICAgICAgICAgICAgcy0+ZHVyYXRpb24gPSAoaW50NjRfdCkg Yy0+bWVkaWFfcHJlc2VudGF0aW9uX2R1cmF0aW9uX3ZhbHVlICogQVZfVElNRV9CQVNFOwo+ICsg ICAgICAgIH0gZWxzZSB7Cj4gKyAgICAgICAgICAgIGF2X2xvZyhOVUxMLCBBVl9MT0dfV0FSTklO RywgIm1lZGlhX3ByZXNlbnRhdGlvbl9kdXJhdGlvbiBhdHRyaWJ1dGUgdW5zZXQgLSB1c2luZyB6 ZXJvIHZhbHVlLiBzZWdtZW50IG51bWJlcnMgbWF5IGJlIGluY29ycmVjdC5cbiIpOwo+ICsgICAg ICAgICAgICBzLT5kdXJhdGlvbiA9IDA7Cj4gKyAgICAgICAgfQo+ICAgICAgIH0gZWxzZSB7Cj4g ICAgICAgICAgIGF2X2RpY3Rfc2V0KCZjLT5hdmlvX29wdHMsICJzZWVrYWJsZSIsICIwIiwgMCk7 Cj4gICAgICAgfQo+IC0tCj4gMi4zNS4xCj4KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwo+IGZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKPiBmZm1wZWct ZGV2ZWxAZmZtcGVnLm9yZwo+IGh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Zm bXBlZy1kZXZlbAo+Cj4gVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWls Cj4gZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2Ny aWJlIi4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZt cGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2Zm bXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2 aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3Jn IHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=