From owner-trustedbsd-audit@FreeBSD.ORG Wed Nov 15 00:25:42 2006 Return-Path: X-Original-To: trustedbsd-audit@freebsd.org Delivered-To: trustedbsd-audit@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A01A016A494 for ; Wed, 15 Nov 2006 00:25:42 +0000 (UTC) (envelope-from dgiagio@gmail.com) Received: from ug-out-1314.google.com (ug-out-1314.google.com [66.249.92.171]) by mx1.FreeBSD.org (Postfix) with ESMTP id B37A743F44 for ; Wed, 15 Nov 2006 00:21:25 +0000 (GMT) (envelope-from dgiagio@gmail.com) Received: by ug-out-1314.google.com with SMTP id o2so7921uge for ; Tue, 14 Nov 2006 16:21:11 -0800 (PST) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; b=ZzYDJe0QIP66b5YYqwTDMor4zM8SETBW+9ti4GxVtk04Ohf6ztR2lKwLj87zFVa0/8IpcytKKPqLFshQZU4NI9rKKZIjuX89ETbKLtPC8uFsNU2mgI3cW4HuvolNNZWMjGmH2b8OhSg3+9zSuSm8284OL7s+tEq3lwuw46wAxrQ= Received: by 10.67.19.17 with SMTP id w17mr530646ugi.1163550070933; Tue, 14 Nov 2006 16:21:10 -0800 (PST) Received: by 10.67.30.9 with HTTP; Tue, 14 Nov 2006 16:21:10 -0800 (PST) Message-ID: <1b0798830611141621s49b30399l68a2241be3e91dc3@mail.gmail.com> Date: Tue, 14 Nov 2006 22:21:10 -0200 From: "Diego Giagio" To: "Martin Voros" In-Reply-To: <1b0798830611131133q2c65d167if18fdd291bdfb391@mail.gmail.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_18902_5933769.1163550070888" References: <1b0798830611121359r877d4ces5182f1ec1eb2b646@mail.gmail.com> <20061113151341.26309.qmail@web55504.mail.re4.yahoo.com> <1b0798830611131133q2c65d167if18fdd291bdfb391@mail.gmail.com> Cc: trustedbsd-audit@freebsd.org Subject: Re: Additional 64-bit token types to libbsm X-BeenThere: trustedbsd-audit@FreeBSD.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: TrustedBSD Audit Discussion List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Nov 2006 00:25:42 -0000 ------=_Part_18902_5933769.1163550070888 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline On 11/13/06, Diego Giagio wrote: > On 11/13/06, Martin Voros wrote: > > Hi, > > > > I think that you should also define output functions (bsm_io.c) in your patch, because now it's not possible to display new tokens by praudit. > > > > Thanks for pointing that out. I'll add those functions and re-submit the patch. > The new patch is attached. All needed output functions were implemented. DG ------=_Part_18902_5933769.1163550070888 Content-Type: application/octet-stream; name=tokens64_2.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_euizmlfo Content-Disposition: attachment; filename="tokens64_2.patch" ZGlmZiAtdSAtciBvcGVuYnNtL2JzbS9hdWRpdF9yZWNvcmQuaCBvcGVuYnNtLWRnaWFnaW8vYnNt L2F1ZGl0X3JlY29yZC5oCi0tLSBvcGVuYnNtL2JzbS9hdWRpdF9yZWNvcmQuaAkyMDA2LTA5LTI0 IDE3OjIwOjAzLjAwMDAwMDAwMCAtMDMwMAorKysgb3BlbmJzbS1kZ2lhZ2lvL2JzbS9hdWRpdF9y ZWNvcmQuaAkyMDA2LTExLTEyIDE5OjMxOjIxLjAwMDAwMDAwMCAtMDIwMApAQCAtMjQ2LDYgKzI0 Niw4IEBACiAKIHRva2VuX3QJKmF1X3RvX2hlYWRlcjMyX3RtKGludCByZWNfc2l6ZSwgYXVfZXZl bnRfdCBlX3R5cGUsIGF1X2Vtb2RfdCBlX21vZCwKIAkgICAgc3RydWN0IHRpbWV2YWwgdG0pOwor dG9rZW5fdAkqYXVfdG9faGVhZGVyNjRfdG0oaW50IHJlY19zaXplLCBhdV9ldmVudF90IGVfdHlw ZSwgYXVfZW1vZF90IGVfbW9kLAorCSAgICBzdHJ1Y3QgdGltZXZhbCB0bSk7CiAjaWYgIWRlZmlu ZWQoS0VSTkVMKSAmJiAhZGVmaW5lZChfS0VSTkVMKQogdG9rZW5fdAkqYXVfdG9faGVhZGVyKGlu dCByZWNfc2l6ZSwgYXVfZXZlbnRfdCBlX3R5cGUsIGF1X2Vtb2RfdCBlX21vZCk7CiB0b2tlbl90 CSphdV90b19oZWFkZXIzMihpbnQgcmVjX3NpemUsIGF1X2V2ZW50X3QgZV90eXBlLCBhdV9lbW9k X3QgZV9tb2QpOwpkaWZmIC11IC1yIG9wZW5ic20vYnNtL2xpYmJzbS5oIG9wZW5ic20tZGdpYWdp by9ic20vbGliYnNtLmgKLS0tIG9wZW5ic20vYnNtL2xpYmJzbS5oCTIwMDYtMDktMjQgMTc6MjA6 MDMuMDAwMDAwMDAwIC0wMzAwCisrKyBvcGVuYnNtLWRnaWFnaW8vYnNtL2xpYmJzbS5oCTIwMDYt MTEtMTQgMjI6MTA6MjYuMDAwMDAwMDAwIC0wMjAwCkBAIC0xNjQsNiArMTY0LDEyIEBACiAJdV9p bnQzMl90CWFkZHJbNF07CiB9IGF1X3RpZGFkZHIzMl90OwogCit0eXBlZGVmIHN0cnVjdCBhdV90 aWRhZGRyNjQgeworCXVfaW50NjRfdAlwb3J0OworCXVfaW50MzJfdAl0eXBlOworCXVfaW50MzJf dAlhZGRyWzRdOworfSBhdV90aWRhZGRyNjRfdDsKKwogLyoKICAqIGFyZ3VtZW50ICMgICAgICAg ICAgICAgIDEgYnl0ZQogICogYXJndW1lbnQgdmFsdWUgICAgICAgICAgNCBieXRlcy84IGJ5dGVz ICgzMi1iaXQvNjQtYml0IHZhbHVlKQpAQCAtNDgzLDYgKzQ4OSwxNyBAQAogCWF1X3RpZGFkZHIz Ml90CXRpZDsKIH0gYXVfcHJvYzMyZXhfdDsKIAordHlwZWRlZiBzdHJ1Y3QgeworCXVfaW50MzJf dAlhdWlkOworCXVfaW50MzJfdAlldWlkOworCXVfaW50MzJfdAllZ2lkOworCXVfaW50MzJfdAly dWlkOworCXVfaW50MzJfdAlyZ2lkOworCXVfaW50MzJfdAlwaWQ7CisJdV9pbnQzMl90CXNpZDsK KwlhdV90aWRhZGRyNjRfdAl0aWQ7Cit9IGF1X3Byb2M2NGV4X3Q7CisKIC8qCiAgKiBlcnJvciBz dGF0dXMgICAgICAgICAgICAxIGJ5dGUKICAqIHJldHVybiB2YWx1ZSAgICAgICAgICAgIDQgYnl0 ZXMvOCBieXRlcyAoMzItYml0LzY0LWJpdCB2YWx1ZSkKQEAgLTYxNiw2ICs2MzMsMTcgQEAKIAlh dV90aWRhZGRyMzJfdAl0aWQ7CiB9IGF1X3N1YmplY3QzMmV4X3Q7CiAKK3R5cGVkZWYgc3RydWN0 IHsKKwl1X2ludDMyX3QJYXVpZDsKKwl1X2ludDMyX3QJZXVpZDsKKwl1X2ludDMyX3QJZWdpZDsK Kwl1X2ludDMyX3QJcnVpZDsKKwl1X2ludDMyX3QJcmdpZDsKKwl1X2ludDMyX3QJcGlkOworCXVf aW50MzJfdAlzaWQ7CisJYXVfdGlkYWRkcjY0X3QJdGlkOworfSBhdV9zdWJqZWN0NjRleF90Owor CiAvKgogICogdGV4dCBsZW5ndGggICAgICAgICAgICAgMiBieXRlcwogICogdGV4dCAgICAgICAg ICAgICAgICAgICAgTiBieXRlcyArIDEgdGVybWluYXRpbmcgTlVMTCBieXRlCkBAIC02NzUsOCAr NzAzLDkgQEAKIAkJYXVfb3BhcXVlX3QJCW9wYXF1ZTsKIAkJYXVfcGF0aF90CQlwYXRoOwogCQlh dV9wcm9jMzJfdAkJcHJvYzMyOwotCQlhdV9wcm9jNjRfdAkJcHJvYzY0OwogCQlhdV9wcm9jMzJl eF90CQlwcm9jMzJfZXg7CisJCWF1X3Byb2M2NF90CQlwcm9jNjQ7CisJCWF1X3Byb2M2NGV4X3QJ CXByb2M2NF9leDsKIAkJYXVfcmV0MzJfdAkJcmV0MzI7CiAJCWF1X3JldDY0X3QJCXJldDY0Owog CQlhdV9zZXFfdAkJc2VxOwpAQCAtNjg1LDggKzcxNCw5IEBACiAJCWF1X3NvY2tldGluZXQzMl90 CXNvY2tpbmV0MzI7CiAJCWF1X3NvY2tldHVuaXhfdAkJc29ja3VuaXg7CiAJCWF1X3N1YmplY3Qz Ml90CQlzdWJqMzI7Ci0JCWF1X3N1YmplY3Q2NF90CQlzdWJqNjQ7CiAJCWF1X3N1YmplY3QzMmV4 X3QJc3ViajMyX2V4OworCQlhdV9zdWJqZWN0NjRfdAkJc3ViajY0OworCQlhdV9zdWJqZWN0NjRl eF90CXN1Ymo2NF9leDsKIAkJYXVfdGV4dF90CQl0ZXh0OwogCQlhdV9rZXZlbnRfdAkJa2V2ZW50 OwogCQlhdV9pbnZhbGlkX3QJCWludmFsaWQ7CmRpZmYgLXUgLXIgb3BlbmJzbS9saWJic20vYnNt X2lvLmMgb3BlbmJzbS1kZ2lhZ2lvL2xpYmJzbS9ic21faW8uYwotLS0gb3BlbmJzbS9saWJic20v YnNtX2lvLmMJMjAwNi0wOS0yNCAxNzoyMDoxMC4wMDAwMDAwMDAgLTAzMDAKKysrIG9wZW5ic20t ZGdpYWdpby9saWJic20vYnNtX2lvLmMJMjAwNi0xMS0xNCAyMjowMToxMi4wMDAwMDAwMDAgLTAy MDAKQEAgLTE3NzgsNiArMTc3OCwxMDUgQEAKIAlwcmludF9pcF9hZGRyZXNzKGZwLCB0b2stPnR0 LnByb2MzMi50aWQuYWRkcik7CiB9CiAKKy8qCisgKiB0b2tlbiBJRCAgICAgICAgICAgICAgICAg ICAgIDEgYnl0ZQorICogYXVkaXQgSUQgICAgICAgICAgICAgICAgICAgICA0IGJ5dGVzCisgKiBl dWlkICAgICAgICAgICAgICAgICAgICAgICAgIDQgYnl0ZXMKKyAqIGVnaWQgICAgICAgICAgICAg ICAgICAgICAgICAgNCBieXRlcworICogcnVpZCAgICAgICAgICAgICAgICAgICAgICAgICA0IGJ5 dGVzCisgKiByZ2lkICAgICAgICAgICAgICAgICAgICAgICAgIDQgYnl0ZXMKKyAqIHBpZCAgICAg ICAgICAgICAgICAgICAgICAgICAgNCBieXRlcworICogc2Vzc2lkICAgICAgICAgICAgICAgICAg ICAgICA0IGJ5dGVzCisgKiB0ZXJtaW5hbCBJRAorICogICBwb3J0aWQgICAgICAgICAgICAgOCBi eXRlcworICogICBtYWNoaW5lIGlkICAgICAgICAgNCBieXRlcworICovCitzdGF0aWMgaW50Citm ZXRjaF9wcm9jZXNzNjRfdG9rKHRva2Vuc3RyX3QgKnRvaywgY2hhciAqYnVmLCBpbnQgbGVuKQor eworCWludCBlcnIgPSAwOworCisJUkVBRF9UT0tFTl9VX0lOVDMyKGJ1ZiwgbGVuLCB0b2stPnR0 LnByb2M2NC5hdWlkLCB0b2stPmxlbiwgZXJyKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gKC0xKTsK KworCVJFQURfVE9LRU5fVV9JTlQzMihidWYsIGxlbiwgdG9rLT50dC5wcm9jNjQuZXVpZCwgdG9r LT5sZW4sIGVycik7CisJaWYgKGVycikKKwkJcmV0dXJuICgtMSk7CisKKwlSRUFEX1RPS0VOX1Vf SU5UMzIoYnVmLCBsZW4sIHRvay0+dHQucHJvYzY0LmVnaWQsIHRvay0+bGVuLCBlcnIpOworCWlm IChlcnIpCisJCXJldHVybiAoLTEpOworCisJUkVBRF9UT0tFTl9VX0lOVDMyKGJ1ZiwgbGVuLCB0 b2stPnR0LnByb2M2NC5ydWlkLCB0b2stPmxlbiwgZXJyKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4g KC0xKTsKKworCVJFQURfVE9LRU5fVV9JTlQzMihidWYsIGxlbiwgdG9rLT50dC5wcm9jNjQucmdp ZCwgdG9rLT5sZW4sIGVycik7CisJaWYgKGVycikKKwkJcmV0dXJuICgtMSk7CisKKwlSRUFEX1RP S0VOX1VfSU5UMzIoYnVmLCBsZW4sIHRvay0+dHQucHJvYzY0LnBpZCwgdG9rLT5sZW4sIGVycik7 CisJaWYgKGVycikKKwkJcmV0dXJuICgtMSk7CisKKwlSRUFEX1RPS0VOX1VfSU5UMzIoYnVmLCBs ZW4sIHRvay0+dHQucHJvYzY0LnNpZCwgdG9rLT5sZW4sIGVycik7CisJaWYgKGVycikKKwkJcmV0 dXJuICgtMSk7CisKKwlSRUFEX1RPS0VOX1VfSU5UNjQoYnVmLCBsZW4sIHRvay0+dHQucHJvYzY0 LnRpZC5wb3J0LCB0b2stPmxlbiwgZXJyKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gKC0xKTsKKwor CVJFQURfVE9LRU5fQllURVMoYnVmLCBsZW4sICZ0b2stPnR0LnByb2M2NC50aWQuYWRkciwKKwkg ICAgc2l6ZW9mKHRvay0+dHQucHJvYzY0LnRpZC5hZGRyKSwgdG9rLT5sZW4sIGVycik7CisJaWYg KGVycikKKwkJcmV0dXJuICgtMSk7CisKKwlyZXR1cm4gKDApOworfQorCitzdGF0aWMgdm9pZAor cHJpbnRfcHJvY2VzczY0X3RvayhGSUxFICpmcCwgdG9rZW5zdHJfdCAqdG9rLCBjaGFyICpkZWws IGNoYXIgcmF3LAorICAgIF9fdW51c2VkIGNoYXIgc2ZybSkKK3sKKworCXByaW50X3Rva190eXBl KGZwLCB0b2stPmlkLCAicHJvY2VzcyIsIHJhdyk7CisJcHJpbnRfZGVsaW0oZnAsIGRlbCk7CisJ cHJpbnRfdXNlcihmcCwgdG9rLT50dC5wcm9jNjQuYXVpZCwgcmF3KTsKKwlwcmludF9kZWxpbShm cCwgZGVsKTsKKwlwcmludF91c2VyKGZwLCB0b2stPnR0LnByb2M2NC5ldWlkLCByYXcpOworCXBy aW50X2RlbGltKGZwLCBkZWwpOworCXByaW50X2dyb3VwKGZwLCB0b2stPnR0LnByb2M2NC5lZ2lk LCByYXcpOworCXByaW50X2RlbGltKGZwLCBkZWwpOworCXByaW50X3VzZXIoZnAsIHRvay0+dHQu cHJvYzY0LnJ1aWQsIHJhdyk7CisJcHJpbnRfZGVsaW0oZnAsIGRlbCk7CisJcHJpbnRfZ3JvdXAo ZnAsIHRvay0+dHQucHJvYzY0LnJnaWQsIHJhdyk7CisJcHJpbnRfZGVsaW0oZnAsIGRlbCk7CisJ cHJpbnRfNF9ieXRlcyhmcCwgdG9rLT50dC5wcm9jNjQucGlkLCAiJXUiKTsKKwlwcmludF9kZWxp bShmcCwgZGVsKTsKKwlwcmludF80X2J5dGVzKGZwLCB0b2stPnR0LnByb2M2NC5zaWQsICIldSIp OworCXByaW50X2RlbGltKGZwLCBkZWwpOworCXByaW50XzhfYnl0ZXMoZnAsIHRvay0+dHQucHJv YzY0LnRpZC5wb3J0LCAiJWxsdSIpOworCXByaW50X2RlbGltKGZwLCBkZWwpOworCXByaW50X2lw X2FkZHJlc3MoZnAsIHRvay0+dHQucHJvYzY0LnRpZC5hZGRyKTsKK30KKworCisvKiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgKiB0b2tlbiBJ RCAgICAgICAgICAgICAgICAxIGJ5dGUgICAgICAgICAgICAgICAgICAgICAgCisgKiBhdWRpdCBJ RCAgICAgICAgICAgICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisgKiBlZmZlY3Rp dmUgdXNlciBJRCAgICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisgKiBlZmZlY3Rp dmUgZ3JvdXAgSUQgICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisgKiByZWFsIHVz ZXIgSUQgICAgICAgICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisgKiByZWFsIGdy b3VwIElEICAgICAgICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisgKiBwcm9jZXNz IElEICAgICAgICAgICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisgKiBzZXNzaW9u IElEICAgICAgICAgICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisgKiB0ZXJtaW5h bCBJRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgKiAgIHBvcnQg SUQgICAgICAgICAgICAgICA0IGJ5dGVzCisgKiAgIGFkZHJlc3MgdHlwZS1sZW4gICAgICA0IGJ5 dGVzICAgICAgICAgICAgICAgICAgICAgCisgKiAgIG1hY2hpbmUgYWRkcmVzcyAgICAgIDE2IGJ5 dGVzICAgICAgICAgICAgICAgICAgICAgCisgKi8KIHN0YXRpYyBpbnQKIGZldGNoX3Byb2Nlc3Mz MmV4X3Rvayh0b2tlbnN0cl90ICp0b2ssIGNoYXIgKmJ1ZiwgaW50IGxlbikKIHsKQEAgLTE4NjQs NiArMTk2MywxMDYgQEAKIAkgICAgdG9rLT50dC5wcm9jMzJfZXgudGlkLmFkZHIpOwogfQogCisv KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisg KiB0b2tlbiBJRCAgICAgICAgICAgICAgICAxIGJ5dGUgICAgICAgICAgICAgICAgICAgICAgCisg KiBhdWRpdCBJRCAgICAgICAgICAgICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisg KiBlZmZlY3RpdmUgdXNlciBJRCAgICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisg KiBlZmZlY3RpdmUgZ3JvdXAgSUQgICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisg KiByZWFsIHVzZXIgSUQgICAgICAgICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisg KiByZWFsIGdyb3VwIElEICAgICAgICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisg KiBwcm9jZXNzIElEICAgICAgICAgICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisg KiBzZXNzaW9uIElEICAgICAgICAgICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisg KiB0ZXJtaW5hbCBJRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisg KiAgIHBvcnQgSUQgICAgICAgICAgICAgICA4IGJ5dGVzCisgKiAgIGFkZHJlc3MgdHlwZS1sZW4g ICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisgKiAgIG1hY2hpbmUgYWRkcmVzcyAg ICAgIDE2IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisgKi8KK3N0YXRpYyBpbnQKK2ZldGNo X3Byb2Nlc3M2NGV4X3Rvayh0b2tlbnN0cl90ICp0b2ssIGNoYXIgKmJ1ZiwgaW50IGxlbikKK3sK KwlpbnQgZXJyID0gMDsKKworCVJFQURfVE9LRU5fVV9JTlQzMihidWYsIGxlbiwgdG9rLT50dC5w cm9jNjRfZXguYXVpZCwgdG9rLT5sZW4sIGVycik7CisJaWYgKGVycikKKwkJcmV0dXJuICgtMSk7 CisKKwlSRUFEX1RPS0VOX1VfSU5UMzIoYnVmLCBsZW4sIHRvay0+dHQucHJvYzY0X2V4LmV1aWQs IHRvay0+bGVuLCBlcnIpOworCWlmIChlcnIpCisJCXJldHVybiAoLTEpOworCisJUkVBRF9UT0tF Tl9VX0lOVDMyKGJ1ZiwgbGVuLCB0b2stPnR0LnByb2M2NF9leC5lZ2lkLCB0b2stPmxlbiwgZXJy KTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gKC0xKTsKKworCVJFQURfVE9LRU5fVV9JTlQzMihidWYs IGxlbiwgdG9rLT50dC5wcm9jNjRfZXgucnVpZCwgdG9rLT5sZW4sIGVycik7CisJaWYgKGVycikK KwkJcmV0dXJuICgtMSk7CisKKwlSRUFEX1RPS0VOX1VfSU5UMzIoYnVmLCBsZW4sIHRvay0+dHQu cHJvYzY0X2V4LnJnaWQsIHRvay0+bGVuLCBlcnIpOworCWlmIChlcnIpCisJCXJldHVybiAoLTEp OworCisJUkVBRF9UT0tFTl9VX0lOVDMyKGJ1ZiwgbGVuLCB0b2stPnR0LnByb2M2NF9leC5waWQs IHRvay0+bGVuLCBlcnIpOworCWlmIChlcnIpCisJCXJldHVybiAoLTEpOworCisJUkVBRF9UT0tF Tl9VX0lOVDMyKGJ1ZiwgbGVuLCB0b2stPnR0LnByb2M2NF9leC5zaWQsIHRvay0+bGVuLCBlcnIp OworCWlmIChlcnIpCisJCXJldHVybiAoLTEpOworCisJUkVBRF9UT0tFTl9VX0lOVDY0KGJ1Ziwg bGVuLCB0b2stPnR0LnByb2M2NF9leC50aWQucG9ydCwgdG9rLT5sZW4sCisJICAgIGVycik7CisJ aWYgKGVycikKKwkJcmV0dXJuICgtMSk7CisKKwlSRUFEX1RPS0VOX1VfSU5UMzIoYnVmLCBsZW4s IHRvay0+dHQucHJvYzY0X2V4LnRpZC50eXBlLCB0b2stPmxlbiwKKwkgICAgZXJyKTsKKwlpZiAo ZXJyKQorCQlyZXR1cm4gKC0xKTsKKworCWlmICh0b2stPnR0LnByb2M2NF9leC50aWQudHlwZSA9 PSBBVV9JUHY0KSB7CisJCVJFQURfVE9LRU5fQllURVMoYnVmLCBsZW4sICZ0b2stPnR0LnByb2M2 NF9leC50aWQuYWRkclswXSwKKwkJICAgIHNpemVvZih0b2stPnR0LnByb2M2NF9leC50aWQuYWRk clswXSksIHRvay0+bGVuLCBlcnIpOworCQlpZiAoZXJyKQorCQkJcmV0dXJuICgtMSk7CisJfSBl bHNlIGlmICh0b2stPnR0LnByb2M2NF9leC50aWQudHlwZSA9PSBBVV9JUHY2KSB7CisJCVJFQURf VE9LRU5fQllURVMoYnVmLCBsZW4sIHRvay0+dHQucHJvYzY0X2V4LnRpZC5hZGRyLAorCQkgICAg c2l6ZW9mKHRvay0+dHQucHJvYzY0X2V4LnRpZC5hZGRyKSwgdG9rLT5sZW4sIGVycik7CisJCWlm IChlcnIpCisJCQlyZXR1cm4gKC0xKTsKKwl9IGVsc2UKKwkJcmV0dXJuICgtMSk7CisKKwlyZXR1 cm4gKDApOworfQorCitzdGF0aWMgdm9pZAorcHJpbnRfcHJvY2VzczY0ZXhfdG9rKEZJTEUgKmZw LCB0b2tlbnN0cl90ICp0b2ssIGNoYXIgKmRlbCwgY2hhciByYXcsCisgICAgX191bnVzZWQgY2hh ciBzZnJtKQoreworCisJcHJpbnRfdG9rX3R5cGUoZnAsIHRvay0+aWQsICJwcm9jZXNzX2V4Iiwg cmF3KTsKKwlwcmludF9kZWxpbShmcCwgZGVsKTsKKwlwcmludF91c2VyKGZwLCB0b2stPnR0LnBy b2M2NF9leC5hdWlkLCByYXcpOworCXByaW50X2RlbGltKGZwLCBkZWwpOworCXByaW50X3VzZXIo ZnAsIHRvay0+dHQucHJvYzY0X2V4LmV1aWQsIHJhdyk7CisJcHJpbnRfZGVsaW0oZnAsIGRlbCk7 CisJcHJpbnRfZ3JvdXAoZnAsIHRvay0+dHQucHJvYzY0X2V4LmVnaWQsIHJhdyk7CisJcHJpbnRf ZGVsaW0oZnAsIGRlbCk7CisJcHJpbnRfdXNlcihmcCwgdG9rLT50dC5wcm9jNjRfZXgucnVpZCwg cmF3KTsKKwlwcmludF9kZWxpbShmcCwgZGVsKTsKKwlwcmludF9ncm91cChmcCwgdG9rLT50dC5w cm9jNjRfZXgucmdpZCwgcmF3KTsKKwlwcmludF9kZWxpbShmcCwgZGVsKTsKKwlwcmludF80X2J5 dGVzKGZwLCB0b2stPnR0LnByb2M2NF9leC5waWQsICIldSIpOworCXByaW50X2RlbGltKGZwLCBk ZWwpOworCXByaW50XzRfYnl0ZXMoZnAsIHRvay0+dHQucHJvYzY0X2V4LnNpZCwgIiV1Iik7CisJ cHJpbnRfZGVsaW0oZnAsIGRlbCk7CisJcHJpbnRfOF9ieXRlcyhmcCwgdG9rLT50dC5wcm9jNjRf ZXgudGlkLnBvcnQsICIlbGx1Iik7CisJcHJpbnRfZGVsaW0oZnAsIGRlbCk7CisJcHJpbnRfaXBf ZXhfYWRkcmVzcyhmcCwgdG9rLT50dC5wcm9jNjRfZXgudGlkLnR5cGUsCisJICAgIHRvay0+dHQu cHJvYzY0X2V4LnRpZC5hZGRyKTsKK30KKwogLyoKICAqIGVycm5vICAgICAgICAgICAgICAgICAg ICAgICAgMSBieXRlCiAgKiByZXR1cm4gdmFsdWUgICAgICAgICA0IGJ5dGVzCkBAIC0yMzQ4LDYg KzI1NDcsMTA1IEBACiB9CiAKIC8qCisgKiBhdWRpdCBJRCAgICAgICAgICAgICAgICAgICAgIDQg Ynl0ZXMKKyAqIGV1aWQgICAgICAgICAgICAgICAgICAgICAgICAgNCBieXRlcworICogZWdpZCAg ICAgICAgICAgICAgICAgICAgICAgICA0IGJ5dGVzCisgKiBydWlkICAgICAgICAgICAgICAgICAg ICAgICAgIDQgYnl0ZXMKKyAqIHJnaWQgICAgICAgICAgICAgICAgICAgICAgICAgNCBieXRlcwor ICogcGlkICAgICAgICAgICAgICAgICAgICAgICAgICA0IGJ5dGVzCisgKiBzZXNzaWQgICAgICAg ICAgICAgICAgICAgICAgIDQgYnl0ZXMKKyAqIHRlcm1pbmFsIElECisgKiAgIHBvcnRpZCAgICAg ICAgICAgICA4IGJ5dGVzCisgKiAgIHR5cGUgICAgICAgICAgICAgICA0IGJ5dGVzCisgKiAgIG1h Y2hpbmUgaWQgICAgICAgICAxNiBieXRlcworICovCitzdGF0aWMgaW50CitmZXRjaF9zdWJqZWN0 NjRleF90b2sodG9rZW5zdHJfdCAqdG9rLCBjaGFyICpidWYsIGludCBsZW4pCit7CisJaW50IGVy ciA9IDA7CisKKwlSRUFEX1RPS0VOX1VfSU5UMzIoYnVmLCBsZW4sIHRvay0+dHQuc3ViajY0X2V4 LmF1aWQsIHRvay0+bGVuLCBlcnIpOworCWlmIChlcnIpCisJCXJldHVybiAoLTEpOworCisJUkVB RF9UT0tFTl9VX0lOVDMyKGJ1ZiwgbGVuLCB0b2stPnR0LnN1Ymo2NF9leC5ldWlkLCB0b2stPmxl biwgZXJyKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gKC0xKTsKKworCVJFQURfVE9LRU5fVV9JTlQz MihidWYsIGxlbiwgdG9rLT50dC5zdWJqNjRfZXguZWdpZCwgdG9rLT5sZW4sIGVycik7CisJaWYg KGVycikKKwkJcmV0dXJuICgtMSk7CisKKwlSRUFEX1RPS0VOX1VfSU5UMzIoYnVmLCBsZW4sIHRv ay0+dHQuc3ViajY0X2V4LnJ1aWQsIHRvay0+bGVuLCBlcnIpOworCWlmIChlcnIpCisJCXJldHVy biAoLTEpOworCisJUkVBRF9UT0tFTl9VX0lOVDMyKGJ1ZiwgbGVuLCB0b2stPnR0LnN1Ymo2NF9l eC5yZ2lkLCB0b2stPmxlbiwgZXJyKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gKC0xKTsKKworCVJF QURfVE9LRU5fVV9JTlQzMihidWYsIGxlbiwgdG9rLT50dC5zdWJqNjRfZXgucGlkLCB0b2stPmxl biwgZXJyKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gKC0xKTsKKworCVJFQURfVE9LRU5fVV9JTlQz MihidWYsIGxlbiwgdG9rLT50dC5zdWJqNjRfZXguc2lkLCB0b2stPmxlbiwgZXJyKTsKKwlpZiAo ZXJyKQorCQlyZXR1cm4gKC0xKTsKKworCVJFQURfVE9LRU5fVV9JTlQ2NChidWYsIGxlbiwgdG9r LT50dC5zdWJqNjRfZXgudGlkLnBvcnQsIHRvay0+bGVuLAorCSAgICBlcnIpOworCWlmIChlcnIp CisJCXJldHVybiAoLTEpOworCisJUkVBRF9UT0tFTl9VX0lOVDMyKGJ1ZiwgbGVuLCB0b2stPnR0 LnN1Ymo2NF9leC50aWQudHlwZSwgdG9rLT5sZW4sCisJICAgIGVycik7CisJaWYgKGVycikKKwkJ cmV0dXJuICgtMSk7CisKKwlpZiAodG9rLT50dC5zdWJqNjRfZXgudGlkLnR5cGUgPT0gQVVfSVB2 NCkgeworCQlSRUFEX1RPS0VOX0JZVEVTKGJ1ZiwgbGVuLCAmdG9rLT50dC5zdWJqNjRfZXgudGlk LmFkZHJbMF0sCisJCSAgICBzaXplb2YodG9rLT50dC5zdWJqNjRfZXgudGlkLmFkZHJbMF0pLCB0 b2stPmxlbiwgZXJyKTsKKwkJaWYgKGVycikKKwkJCXJldHVybiAoLTEpOworCX0gZWxzZSBpZiAo dG9rLT50dC5zdWJqNjRfZXgudGlkLnR5cGUgPT0gQVVfSVB2NikgeworCQlSRUFEX1RPS0VOX0JZ VEVTKGJ1ZiwgbGVuLCB0b2stPnR0LnN1Ymo2NF9leC50aWQuYWRkciwKKwkJICAgIHNpemVvZih0 b2stPnR0LnN1Ymo2NF9leC50aWQuYWRkciksIHRvay0+bGVuLCBlcnIpOworCQlpZiAoZXJyKQor CQkJcmV0dXJuICgtMSk7CisJfSBlbHNlCisJCXJldHVybiAoLTEpOworCisJcmV0dXJuICgwKTsK K30KKworc3RhdGljIHZvaWQKK3ByaW50X3N1YmplY3Q2NGV4X3RvayhGSUxFICpmcCwgdG9rZW5z dHJfdCAqdG9rLCBjaGFyICpkZWwsIGNoYXIgcmF3LAorICAgIF9fdW51c2VkIGNoYXIgc2ZybSkK K3sKKworCXByaW50X3Rva190eXBlKGZwLCB0b2stPmlkLCAic3ViamVjdF9leCIsIHJhdyk7CisJ cHJpbnRfZGVsaW0oZnAsIGRlbCk7CisJcHJpbnRfdXNlcihmcCwgdG9rLT50dC5zdWJqNjRfZXgu YXVpZCwgcmF3KTsKKwlwcmludF9kZWxpbShmcCwgZGVsKTsKKwlwcmludF91c2VyKGZwLCB0b2st PnR0LnN1Ymo2NF9leC5ldWlkLCByYXcpOworCXByaW50X2RlbGltKGZwLCBkZWwpOworCXByaW50 X2dyb3VwKGZwLCB0b2stPnR0LnN1Ymo2NF9leC5lZ2lkLCByYXcpOworCXByaW50X2RlbGltKGZw LCBkZWwpOworCXByaW50X3VzZXIoZnAsIHRvay0+dHQuc3ViajY0X2V4LnJ1aWQsIHJhdyk7CisJ cHJpbnRfZGVsaW0oZnAsIGRlbCk7CisJcHJpbnRfZ3JvdXAoZnAsIHRvay0+dHQuc3ViajY0X2V4 LnJnaWQsIHJhdyk7CisJcHJpbnRfZGVsaW0oZnAsIGRlbCk7CisJcHJpbnRfNF9ieXRlcyhmcCwg dG9rLT50dC5zdWJqNjRfZXgucGlkLCAiJXUiKTsKKwlwcmludF9kZWxpbShmcCwgZGVsKTsKKwlw cmludF80X2J5dGVzKGZwLCB0b2stPnR0LnN1Ymo2NF9leC5zaWQsICIldSIpOworCXByaW50X2Rl bGltKGZwLCBkZWwpOworCXByaW50XzhfYnl0ZXMoZnAsIHRvay0+dHQuc3ViajY0X2V4LnRpZC5w b3J0LCAiJWxsdSIpOworCXByaW50X2RlbGltKGZwLCBkZWwpOworCXByaW50X2lwX2V4X2FkZHJl c3MoZnAsIHRvay0+dHQuc3ViajY0X2V4LnRpZC50eXBlLAorCSAgICB0b2stPnR0LnN1Ymo2NF9l eC50aWQuYWRkcik7Cit9CisKKy8qCiAgKiBzaXplICAgICAgICAgICAgICAgICAgICAgICAgIDIg Ynl0ZXMKICAqIGRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSBieXRlcwogICovCkBA IC0yNTY1LDYgKzI4NjMsMTIgQEAKIAljYXNlIEFVVF9QUk9DRVNTMzJfRVg6CiAJCXJldHVybiAo ZmV0Y2hfcHJvY2VzczMyZXhfdG9rKHRvaywgYnVmLCBsZW4pKTsKIAorCWNhc2UgQVVUX1BST0NF U1M2NDoKKwkJcmV0dXJuIChmZXRjaF9wcm9jZXNzNjRfdG9rKHRvaywgYnVmLCBsZW4pKTsKKwor CWNhc2UgQVVUX1BST0NFU1M2NF9FWDoKKwkJcmV0dXJuIChmZXRjaF9wcm9jZXNzNjRleF90b2so dG9rLCBidWYsIGxlbikpOworCiAJY2FzZSBBVVRfUkVUVVJOMzI6CiAJCXJldHVybiAoZmV0Y2hf cmV0dXJuMzJfdG9rKHRvaywgYnVmLCBsZW4pKTsKIApAQCAtMjU4NiwxMSArMjg5MCwxNCBAQAog CWNhc2UgQVVUX1NVQkpFQ1QzMjoKIAkJcmV0dXJuIChmZXRjaF9zdWJqZWN0MzJfdG9rKHRvaywg YnVmLCBsZW4pKTsKIAorCWNhc2UgQVVUX1NVQkpFQ1QzMl9FWDoKKwkJcmV0dXJuIChmZXRjaF9z dWJqZWN0MzJleF90b2sodG9rLCBidWYsIGxlbikpOworCiAJY2FzZSBBVVRfU1VCSkVDVDY0Ogog CQlyZXR1cm4gKGZldGNoX3N1YmplY3Q2NF90b2sodG9rLCBidWYsIGxlbikpOwogCi0JY2FzZSBB VVRfU1VCSkVDVDMyX0VYOgotCQlyZXR1cm4gKGZldGNoX3N1YmplY3QzMmV4X3Rvayh0b2ssIGJ1 ZiwgbGVuKSk7CisJY2FzZSBBVVRfU1VCSkVDVDY0X0VYOgorCQlyZXR1cm4gKGZldGNoX3N1Ympl Y3Q2NGV4X3Rvayh0b2ssIGJ1ZiwgbGVuKSk7CiAKIAljYXNlIEFVVF9URVhUOgogCQlyZXR1cm4g KGZldGNoX3RleHRfdG9rKHRvaywgYnVmLCBsZW4pKTsKQEAgLTI3MTQsNiArMzAyMSwxNCBAQAog CQlwcmludF9wcm9jZXNzMzJleF90b2sob3V0ZnAsIHRvaywgZGVsLCByYXcsIHNmcm0pOwogCQly ZXR1cm47CiAKKwljYXNlIEFVVF9QUk9DRVNTNjQ6CisJCXByaW50X3Byb2Nlc3M2NF90b2sob3V0 ZnAsIHRvaywgZGVsLCByYXcsIHNmcm0pOworCQlyZXR1cm47CisKKwljYXNlIEFVVF9QUk9DRVNT NjRfRVg6CisJCXByaW50X3Byb2Nlc3M2NGV4X3RvayhvdXRmcCwgdG9rLCBkZWwsIHJhdywgc2Zy bSk7CisJCXJldHVybjsKKwogCWNhc2UgQVVUX1JFVFVSTjMyOgogCQlwcmludF9yZXR1cm4zMl90 b2sob3V0ZnAsIHRvaywgZGVsLCByYXcsIHNmcm0pOwogCQlyZXR1cm47CkBAIC0yNzQyLDEyICsz MDU3LDE2IEBACiAJCXByaW50X3N1YmplY3QzMl90b2sob3V0ZnAsIHRvaywgZGVsLCByYXcsIHNm cm0pOwogCQlyZXR1cm47CiAKKwljYXNlIEFVVF9TVUJKRUNUMzJfRVg6CisJCXByaW50X3N1Ympl Y3QzMmV4X3RvayhvdXRmcCwgdG9rLCBkZWwsIHJhdywgc2ZybSk7CisJCXJldHVybjsKKwogCWNh c2UgQVVUX1NVQkpFQ1Q2NDoKIAkJcHJpbnRfc3ViamVjdDY0X3RvayhvdXRmcCwgdG9rLCBkZWws IHJhdywgc2ZybSk7CiAJCXJldHVybjsKIAotCWNhc2UgQVVUX1NVQkpFQ1QzMl9FWDoKLQkJcHJp bnRfc3ViamVjdDMyZXhfdG9rKG91dGZwLCB0b2ssIGRlbCwgcmF3LCBzZnJtKTsKKwljYXNlIEFV VF9TVUJKRUNUNjRfRVg6CisJCXByaW50X3N1YmplY3Q2NGV4X3RvayhvdXRmcCwgdG9rLCBkZWws IHJhdywgc2ZybSk7CiAJCXJldHVybjsKIAogCWNhc2UgQVVUX1RFWFQ6CmRpZmYgLXUgLXIgb3Bl bmJzbS9saWJic20vYnNtX3Rva2VuLmMgb3BlbmJzbS1kZ2lhZ2lvL2xpYmJzbS9ic21fdG9rZW4u YwotLS0gb3BlbmJzbS9saWJic20vYnNtX3Rva2VuLmMJMjAwNi0wOS0yNCAxNzoyMDoxMS4wMDAw MDAwMDAgLTAzMDAKKysrIG9wZW5ic20tZGdpYWdpby9saWJic20vYnNtX3Rva2VuLmMJMjAwNi0x MS0xMiAxOTozMToyMS4wMDAwMDAwMDAgLTAyMDAKQEAgLTIxMiw5ICsyMTIsNDYgQEAKIHRva2Vu X3QgKgogYXVfdG9fYXR0cjY0KHN0cnVjdCB2bm9kZV9hdV9pbmZvICp2bmkpCiB7CisJdG9rZW5f dCAqdDsKKwl1X2NoYXIgKmRwdHIgPSBOVUxMOworCXVfaW50MTZfdCBwYWQwXzE2ID0gMDsKKwl1 X2ludDE2X3QgcGFkMF8zMiA9IDA7CisKKwlHRVRfVE9LRU5fQVJFQSh0LCBkcHRyLCBzaXplb2Yo dV9jaGFyKSArIDIgKiBzaXplb2YodV9pbnQxNl90KSArCisJICAgIDMgKiBzaXplb2YodV9pbnQz Ml90KSArIHNpemVvZih1X2ludDY0X3QpICogMik7CisJaWYgKHQgPT0gTlVMTCkKKwkJcmV0dXJu IChOVUxMKTsKKworCUFERF9VX0NIQVIoZHB0ciwgQVVUX0FUVFI2NCk7CisKKwkvKgorCSAqIERh cndpbiBkZWZpbmVzIHRoZSBzaXplIGZvciB0aGUgZmlsZSBtb2RlCisJICogYXMgMiBieXRlczsg QlNNIGRlZmluZXMgNCBzbyBwYWQgd2l0aCAwCisJICovCisJQUREX1VfSU5UMTYoZHB0ciwgcGFk MF8xNik7CisJQUREX1VfSU5UMTYoZHB0ciwgdm5pLT52bl9tb2RlKTsKKworCUFERF9VX0lOVDMy KGRwdHIsIHZuaS0+dm5fdWlkKTsKKwlBRERfVV9JTlQzMihkcHRyLCB2bmktPnZuX2dpZCk7CisJ QUREX1VfSU5UMzIoZHB0ciwgdm5pLT52bl9mc2lkKTsKKworCS8qCisJICogU29tZSBzeXN0ZW1z IHVzZSAzMi1iaXQgZmlsZSBJRCdzLCBvdGhlcidzIHVzZSA2NC1iaXQgZmlsZSBJRHMuCisJICog QXR0ZW1wdCB0byBoYW5kbGUgYm90aCwgYW5kIGxldCB0aGUgY29tcGlsZXIgc29ydCBpdCBvdXQu ICBJZiB3ZQorCSAqIGNvdWxkIHBpY2sgdGhpcyBvdXQgYXQgY29tcGlsZS10aW1lLCBpdCB3b3Vs ZCBiZSBiZXR0ZXIsIHNvIGFzIHRvCisJICogYXZvaWQgdGhlIGVsc2UgY2FzZSBiZWxvdy4KKwkg Ki8KKwlpZiAoc2l6ZW9mKHZuaS0+dm5fZmlsZWlkKSA9PSBzaXplb2YodWludDMyX3QpKSB7CisJ CUFERF9VX0lOVDMyKGRwdHIsIHBhZDBfMzIpOworCQlBRERfVV9JTlQzMihkcHRyLCB2bmktPnZu X2ZpbGVpZCk7CisJfSBlbHNlIGlmIChzaXplb2Yodm5pLT52bl9maWxlaWQpID09IHNpemVvZih1 aW50NjRfdCkpCisJCUFERF9VX0lOVDY0KGRwdHIsIHZuaS0+dm5fZmlsZWlkKTsKKwllbHNlCisJ CUFERF9VX0lOVDY0KGRwdHIsIDBMTCk7CiAKLQllcnJubyA9IEVOT1RTVVA7Ci0JcmV0dXJuIChO VUxMKTsKKwlBRERfVV9JTlQ2NChkcHRyLCB2bmktPnZuX2Rldik7CisKKwlyZXR1cm4gKHQpOwog fQogCiB0b2tlbl90ICoKQEAgLTY1NCw5ICs2OTEsMjYgQEAKICAgICBfX3VudXNlZCBnaWRfdCBl Z2lkLCBfX3VudXNlZCB1aWRfdCBydWlkLCBfX3VudXNlZCBnaWRfdCByZ2lkLAogICAgIF9fdW51 c2VkIHBpZF90IHBpZCwgX191bnVzZWQgYXVfYXNpZF90IHNpZCwgX191bnVzZWQgYXVfdGlkX3Qg KnRpZCkKIHsKKwl0b2tlbl90ICp0OworCXVfY2hhciAqZHB0ciA9IE5VTEw7CisKKwlHRVRfVE9L RU5fQVJFQSh0LCBkcHRyLCBzaXplb2YodV9jaGFyKSArIDggKiBzaXplb2YodV9pbnQzMl90KSAr CisJICAgIHNpemVvZih1X2ludDY0X3QpKTsKKwlpZiAodCA9PSBOVUxMKQorCQlyZXR1cm4gKE5V TEwpOworCisJQUREX1VfQ0hBUihkcHRyLCBBVVRfUFJPQ0VTUzY0KTsKKwlBRERfVV9JTlQzMihk cHRyLCBhdWlkKTsKKwlBRERfVV9JTlQzMihkcHRyLCBldWlkKTsKKwlBRERfVV9JTlQzMihkcHRy LCBlZ2lkKTsKKwlBRERfVV9JTlQzMihkcHRyLCBydWlkKTsKKwlBRERfVV9JTlQzMihkcHRyLCBy Z2lkKTsKKwlBRERfVV9JTlQzMihkcHRyLCBwaWQpOworCUFERF9VX0lOVDMyKGRwdHIsIHNpZCk7 CisJQUREX1VfSU5UNjQoZHB0ciwgdGlkLT5wb3J0KTsKKwlBRERfTUVNKGRwdHIsICZ0aWQtPm1h Y2hpbmUsIHNpemVvZih1X2ludDMyX3QpKTsKIAotCWVycm5vID0gRU5PVFNVUDsKLQlyZXR1cm4g KE5VTEwpOworCXJldHVybiAodCk7CiB9CiAKIHRva2VuX3QgKgpAQCAtNzI3LDkgKzc4MSw0MiBA QAogYXVfdG9fcHJvY2VzczY0X2V4KGF1X2lkX3QgYXVpZCwgdWlkX3QgZXVpZCwgZ2lkX3QgZWdp ZCwgdWlkX3QgcnVpZCwKICAgICBnaWRfdCByZ2lkLCBwaWRfdCBwaWQsIGF1X2FzaWRfdCBzaWQs IGF1X3RpZF9hZGRyX3QgKnRpZCkKIHsKKwl0b2tlbl90ICp0OworCXVfY2hhciAqZHB0ciA9IE5V TEw7CisKKwlpZiAodGlkLT5hdF90eXBlID09IEFVX0lQdjQpCisJCUdFVF9UT0tFTl9BUkVBKHQs IGRwdHIsIHNpemVvZih1X2NoYXIpICsgCisJCSAgICA3ICogc2l6ZW9mKHVfaW50MzJfdCkgKyBz aXplb2YodV9pbnQ2NF90KSArCisJCSAgICAyICogc2l6ZW9mKHVfaW50MzJfdCkpOworCWVsc2Ug aWYgKHRpZC0+YXRfdHlwZSA9PSBBVV9JUHY2KQorCQlHRVRfVE9LRU5fQVJFQSh0LCBkcHRyLCBz aXplb2YodV9jaGFyKSArCisJCSAgICA3ICogc2l6ZW9mKHVfaW50MzJfdCkgKyBzaXplb2YodV9p bnQ2NF90KSArCisJCSAgICA1ICogc2l6ZW9mKHVfaW50MzJfdCkpOworCWVsc2UgeworCQllcnJu byA9IEVJTlZBTDsKKwkJcmV0dXJuIChOVUxMKTsKKwl9CisJaWYgKHQgPT0gTlVMTCkKKwkJcmV0 dXJuIChOVUxMKTsKKworCUFERF9VX0NIQVIoZHB0ciwgQVVUX1BST0NFU1M2NF9FWCk7CisJQURE X1VfSU5UMzIoZHB0ciwgYXVpZCk7CisJQUREX1VfSU5UMzIoZHB0ciwgZXVpZCk7CisJQUREX1Vf SU5UMzIoZHB0ciwgZWdpZCk7CisJQUREX1VfSU5UMzIoZHB0ciwgcnVpZCk7CisJQUREX1VfSU5U MzIoZHB0ciwgcmdpZCk7CisJQUREX1VfSU5UMzIoZHB0ciwgcGlkKTsKKwlBRERfVV9JTlQzMihk cHRyLCBzaWQpOworCUFERF9VX0lOVDY0KGRwdHIsIHRpZC0+YXRfcG9ydCk7CisJQUREX1VfSU5U MzIoZHB0ciwgdGlkLT5hdF90eXBlKTsKKwlBRERfVV9JTlQzMihkcHRyLCB0aWQtPmF0X2FkZHJb MF0pOworCWlmICh0aWQtPmF0X3R5cGUgPT0gQVVfSVB2NikgeworCQlBRERfVV9JTlQzMihkcHRy LCB0aWQtPmF0X2FkZHJbMV0pOworCQlBRERfVV9JTlQzMihkcHRyLCB0aWQtPmF0X2FkZHJbMl0p OworCQlBRERfVV9JTlQzMihkcHRyLCB0aWQtPmF0X2FkZHJbM10pOworCX0KIAotCWVycm5vID0g RU5PVFNVUDsKLQlyZXR1cm4gKE5VTEwpOworCXJldHVybiAodCk7CiB9CiAKIHRva2VuX3QgKgpA QCAtOTQ0LDkgKzEwMzEsMjYgQEAKIGF1X3RvX3N1YmplY3Q2NChhdV9pZF90IGF1aWQsIHVpZF90 IGV1aWQsIGdpZF90IGVnaWQsIHVpZF90IHJ1aWQsIGdpZF90IHJnaWQsCiAgICAgcGlkX3QgcGlk LCBhdV9hc2lkX3Qgc2lkLCBhdV90aWRfdCAqdGlkKQogeworCXRva2VuX3QgKnQ7CisJdV9jaGFy ICpkcHRyID0gTlVMTDsKKworCUdFVF9UT0tFTl9BUkVBKHQsIGRwdHIsIHNpemVvZih1X2NoYXIp ICsgNyAqIHNpemVvZih1X2ludDMyX3QpICsKKwkgICAgc2l6ZW9mKHVfaW50NjRfdCkgKyBzaXpl b2YodV9pbnQzMl90KSk7CisJaWYgKHQgPT0gTlVMTCkKKwkJcmV0dXJuIChOVUxMKTsKIAotCWVy cm5vID0gRU5PVFNVUDsKLQlyZXR1cm4gKE5VTEwpOworCUFERF9VX0NIQVIoZHB0ciwgQVVUX1NV QkpFQ1Q2NCk7CisJQUREX1VfSU5UMzIoZHB0ciwgYXVpZCk7CisJQUREX1VfSU5UMzIoZHB0ciwg ZXVpZCk7CisJQUREX1VfSU5UMzIoZHB0ciwgZWdpZCk7CisJQUREX1VfSU5UMzIoZHB0ciwgcnVp ZCk7CisJQUREX1VfSU5UMzIoZHB0ciwgcmdpZCk7CisJQUREX1VfSU5UMzIoZHB0ciwgcGlkKTsK KwlBRERfVV9JTlQzMihkcHRyLCBzaWQpOworCUFERF9VX0lOVDY0KGRwdHIsIHRpZC0+cG9ydCk7 CisJQUREX01FTShkcHRyLCAmdGlkLT5tYWNoaW5lLCBzaXplb2YodV9pbnQzMl90KSk7CisKKwly ZXR1cm4gKHQpOwogfQogCiB0b2tlbl90ICoKQEAgLTEwMTYsOSArMTEyMCw0MiBAQAogYXVfdG9f c3ViamVjdDY0X2V4KGF1X2lkX3QgYXVpZCwgdWlkX3QgZXVpZCwgZ2lkX3QgZWdpZCwgdWlkX3Qg cnVpZCwKICAgICBnaWRfdCByZ2lkLCBwaWRfdCBwaWQsIGF1X2FzaWRfdCBzaWQsIGF1X3RpZF9h ZGRyX3QgKnRpZCkKIHsKKwl0b2tlbl90ICp0OworCXVfY2hhciAqZHB0ciA9IE5VTEw7CisKKwlp ZiAodGlkLT5hdF90eXBlID09IEFVX0lQdjQpCisJCUdFVF9UT0tFTl9BUkVBKHQsIGRwdHIsIHNp emVvZih1X2NoYXIpICsKKwkJICAgIDcgKiBzaXplb2YodV9pbnQzMl90KSArIHNpemVvZih1X2lu dDY0X3QpICsKKwkJICAgIDIgKiBzaXplb2YodV9pbnQzMl90KSk7CisJZWxzZSBpZiAodGlkLT5h dF90eXBlID09IEFVX0lQdjYpCisJCUdFVF9UT0tFTl9BUkVBKHQsIGRwdHIsIHNpemVvZih1X2No YXIpICsKKwkJICAgIDcgKiBzaXplb2YodV9pbnQzMl90KSArIHNpemVvZih1X2ludDY0X3QpICsK KwkJICAgIDUgKiBzaXplb2YodV9pbnQzMl90KSk7CisJZWxzZSB7CisJCWVycm5vID0gRUlOVkFM OworCQlyZXR1cm4gKE5VTEwpOworCX0KKwlpZiAodCA9PSBOVUxMKQorCQlyZXR1cm4gKE5VTEwp OworCisJQUREX1VfQ0hBUihkcHRyLCBBVVRfU1VCSkVDVDY0X0VYKTsKKwlBRERfVV9JTlQzMihk cHRyLCBhdWlkKTsKKwlBRERfVV9JTlQzMihkcHRyLCBldWlkKTsKKwlBRERfVV9JTlQzMihkcHRy LCBlZ2lkKTsKKwlBRERfVV9JTlQzMihkcHRyLCBydWlkKTsKKwlBRERfVV9JTlQzMihkcHRyLCBy Z2lkKTsKKwlBRERfVV9JTlQzMihkcHRyLCBwaWQpOworCUFERF9VX0lOVDMyKGRwdHIsIHNpZCk7 CisJQUREX1VfSU5UNjQoZHB0ciwgdGlkLT5hdF9wb3J0KTsKKwlBRERfVV9JTlQzMihkcHRyLCB0 aWQtPmF0X3R5cGUpOworCUFERF9VX0lOVDMyKGRwdHIsIHRpZC0+YXRfYWRkclswXSk7CisJaWYg KHRpZC0+YXRfdHlwZSA9PSBBVV9JUHY2KSB7CisJCUFERF9VX0lOVDMyKGRwdHIsIHRpZC0+YXRf YWRkclsxXSk7CisJCUFERF9VX0lOVDMyKGRwdHIsIHRpZC0+YXRfYWRkclsyXSk7CisJCUFERF9V X0lOVDMyKGRwdHIsIHRpZC0+YXRfYWRkclszXSk7CisJfQogCi0JZXJybm8gPSBFTk9UU1VQOwot CXJldHVybiAoTlVMTCk7CisJcmV0dXJuICh0KTsKIH0KIAogdG9rZW5fdCAqCkBAIC0xMTY2LDYg KzEzMDMsMzMgQEAKIAlyZXR1cm4gKHQpOwogfQogCit0b2tlbl90ICoKK2F1X3RvX2hlYWRlcjY0 X3RtKGludCByZWNfc2l6ZSwgYXVfZXZlbnRfdCBlX3R5cGUsIGF1X2Vtb2RfdCBlX21vZCwKKyAg ICBzdHJ1Y3QgdGltZXZhbCB0bSkKK3sKKwl0b2tlbl90ICp0OworCXVfY2hhciAqZHB0ciA9IE5V TEw7CisJdV9pbnQzMl90IHRpbWVtczsKKworCUdFVF9UT0tFTl9BUkVBKHQsIGRwdHIsIHNpemVv Zih1X2NoYXIpICsgc2l6ZW9mKHVfaW50MzJfdCkgKworCSAgICBzaXplb2YodV9jaGFyKSArIDIg KiBzaXplb2YodV9pbnQxNl90KSArIDIgKiBzaXplb2YodV9pbnQ2NF90KSk7CisJaWYgKHQgPT0g TlVMTCkKKwkJcmV0dXJuIChOVUxMKTsKKworCUFERF9VX0NIQVIoZHB0ciwgQVVUX0hFQURFUjY0 KTsKKwlBRERfVV9JTlQzMihkcHRyLCByZWNfc2l6ZSk7CisJQUREX1VfQ0hBUihkcHRyLCBBVURJ VF9IRUFERVJfVkVSU0lPTl9PUEVOQlNNKTsKKwlBRERfVV9JTlQxNihkcHRyLCBlX3R5cGUpOwor CUFERF9VX0lOVDE2KGRwdHIsIGVfbW9kKTsKKworCXRpbWVtcyA9IHRtLnR2X3VzZWMvMTAwMDsK KwkvKiBBZGQgdGhlIHRpbWVzdGFtcCAqLworCUFERF9VX0lOVDY0KGRwdHIsIHRtLnR2X3NlYyk7 CisJQUREX1VfSU5UNjQoZHB0ciwgdGltZW1zKTsJLyogV2UgbmVlZCB0aW1lIGluIG1zLiAqLwor CisJcmV0dXJuICh0KTsKK30KKwogI2lmICFkZWZpbmVkKEtFUk5FTCkgJiYgIWRlZmluZWQoX0tF Uk5FTCkKIHRva2VuX3QgKgogYXVfdG9faGVhZGVyMzIoaW50IHJlY19zaXplLCBhdV9ldmVudF90 IGVfdHlwZSwgYXVfZW1vZF90IGVfbW9kKQpAQCAtMTE4MSw5ICsxMzQ1LDExIEBACiBhdV90b19o ZWFkZXI2NChfX3VudXNlZCBpbnQgcmVjX3NpemUsIF9fdW51c2VkIGF1X2V2ZW50X3QgZV90eXBl LAogICAgIF9fdW51c2VkIGF1X2Vtb2RfdCBlX21vZCkKIHsKKwlzdHJ1Y3QgdGltZXZhbCB0bTsK IAotCWVycm5vID0gRU5PVFNVUDsKLQlyZXR1cm4gKE5VTEwpOworCWlmIChnZXR0aW1lb2ZkYXko JnRtLCBOVUxMKSA9PSAtMSkKKwkJcmV0dXJuIChOVUxMKTsKKwlyZXR1cm4gKGF1X3RvX2hlYWRl cjY0X3RtKHJlY19zaXplLCBlX3R5cGUsIGVfbW9kLCB0bSkpOwogfQogCiB0b2tlbl90ICoK ------=_Part_18902_5933769.1163550070888--