From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 30275A0C47 for ; Tue, 26 Oct 2021 13:20:11 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 29EFC410F0; Tue, 26 Oct 2021 13:20:11 +0200 (CEST) Received: from mail-ua1-f99.google.com (mail-ua1-f99.google.com [209.85.222.99]) by mails.dpdk.org (Postfix) with ESMTP id 2AB12406B4 for ; Tue, 26 Oct 2021 13:20:10 +0200 (CEST) Received: by mail-ua1-f99.google.com with SMTP id ba32so569289uab.6 for ; Tue, 26 Oct 2021 04:20:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iol.unh.edu; s=unh-iol; h=mime-version:subject:from:to:cc:message-id:date; bh=Fyb4QeGctpWerBTv5i7lHB4j3Lc4Hj4yycRNzq8h8+g=; b=hpPYgiL1XXU6alQXQgxQftRArUxyK3VHrxfNuWQ0asInES4I6BqQeuKy2F158Xh/r/ 6nVd91MqFgy0hbH6qmgYNeiKbbbR1V/kEy6HH7T8Z0EE5pEIqOcjONqtOVTR2VMyJBOe zUVf5oYOcrZZBBNyiTRIF/3SlwTfdMiRrfzCM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:subject:from:to:cc:message-id:date; bh=Fyb4QeGctpWerBTv5i7lHB4j3Lc4Hj4yycRNzq8h8+g=; b=MX4zIum6i7k9PQ1+LNCMpXEd033rYkWVdrUrxTyev7lHovll0w903OLJ2KHy8ncrtF zmofIJm5P+iGQShnqKObr46Dw7+GoppE5eq9D0z3YBLZs9asHFVu3jftwReDCL3JfHkw 0BmJN6kl09ByhmnqIgZHG3shDMGTGsEGNRWQ57Y/nEnaKmueKy9Q9c5Kyn9WQeeqKXlG BezbT0R/gEd2wIxkxgcRJRrhlaM6LynWWhRIBmtztiixaz8JPbjfwZx//Jda4vshdKlG LxqkZ2NdgZiS1c3rGeFQsYJaZbZSNs2yRaWWaFSxaU2HikMZnsN9ucvCECHDrgiw7ypI OayQ== X-Gm-Message-State: AOAM5317oMqIzP/g/3nzA3in6M3+vGQd5TW75nQlHZX1HIfUWjdOdG8y 1svtwoKHZgLpM5yA0vqR4ibPnaeQTlRpOcD1eIRXfy9PKN+mys/0ol8CS6gwukylxA== X-Google-Smtp-Source: ABdhPJz3b4ujIeq7U2/gAocK2wFctg8R6daP+6R5Lc+P4EMsRckOuEXscF43upLk6aPYn93clq/5Erc5FxAh X-Received: by 2002:ab0:3e3:: with SMTP id 90mr3813026uau.102.1635247209488; Tue, 26 Oct 2021 04:20:09 -0700 (PDT) Received: from postal.iol.unh.edu (postal.iol.unh.edu. [2606:4100:3880:1234::84]) by smtp-relay.gmail.com with ESMTPS id f26sm1878049vkk.8.2021.10.26.04.20.09 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 26 Oct 2021 04:20:09 -0700 (PDT) X-Relaying-Domain: iol.unh.edu Received: from noxus.dpdklab.iol.unh.edu (targon.iol.unh.edu [132.177.125.242]) by postal.iol.unh.edu (Postfix) with ESMTP id 1C98A605247D; Tue, 26 Oct 2021 07:20:09 -0400 (EDT) Received: from noxus.dpdklab.iol.unh.edu (localhost [IPv6:::1]) by noxus.dpdklab.iol.unh.edu (Postfix) with ESMTP id 1563E60524; Tue, 26 Oct 2021 07:20:09 -0400 (EDT) Content-Type: multipart/mixed; boundary="===============4101264629878887654==" MIME-Version: 1.0 From: dpdklab@iol.unh.edu To: test-report@dpdk.org Cc: dpdk-test-reports@iol.unh.edu Message-Id: <20211026112009.1563E60524@noxus.dpdklab.iol.unh.edu> Date: Tue, 26 Oct 2021 07:20:09 -0400 (EDT) Subject: [dpdk-test-report] |WARNING| pw102896-102902 [PATCH] [v11, 7/7] net/iavf: update doc with inline crypto support X-BeenThere: test-report@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: automatic DPDK test reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: test-report-bounces@dpdk.org Sender: "test-report" --===============4101264629878887654== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGVzdC1MYWJlbDogaW9sLXRlc3RpbmcKVGVzdC1TdGF0dXM6IFdBUk5JTkcKaHR0cDovL2RwZGsu b3JnL3BhdGNoLzEwMjg5NgoKX2FwcGx5IHBhdGNoIGZhaWx1cmVfCgpTdWJtaXR0ZXI6IFJhZHUg Tmljb2xhdSA8cmFkdS5uaWNvbGF1QGludGVsLmNvbT4KRGF0ZTogVHVlc2RheSwgT2N0b2JlciAy NiAyMDIxIDEwOjM4OjI5IApBcHBsaWVkIG9uOiBDb21taXRJRDo2YzM5MGNlZTk3NmUzM2IxZTlk ODU2MmQzMmM5ZDNlYmU1ZDljZTk0CkFwcGx5IHBhdGNoIHNldCAxMDI4OTYtMTAyOTAyIGZhaWxl ZDoKCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2lhdmYvaWF2Zl9yeHR4LmMuLi4KZXJyb3I6 IHdoaWxlIHNlYXJjaGluZyBmb3I6CgpzdGF0aWMgaW5saW5lIHZvaWQKaWF2Zl9mbGV4X3J4ZF90 b192bGFuX3RjaShzdHJ1Y3QgcnRlX21idWYgKm1iLAoJCQkgIHZvbGF0aWxlIHVuaW9uIGlhdmZf cnhfZmxleF9kZXNjICpyeGRwLAoJCQkgIHVpbnQ4X3QgcnhfZmxhZ3MpCnsKCXVpbnQxNl90IHZs YW5fdGNpID0gMDsKCglpZiAocnhfZmxhZ3MgJiBJQVZGX1JYX0ZMQUdTX1ZMQU5fVEFHX0xPQ19M MlRBRzEgJiYKCSAgICBydGVfbGVfdG9fY3B1XzY0KHJ4ZHAtPndiLnN0YXR1c19lcnJvcjApICYK CSAgICAoMSA8PCBJQVZGX1JYX0ZMRVhfREVTQ19TVEFUVVMwX0wyVEFHMVBfUykpCgkJdmxhbl90 Y2kgPSBydGVfbGVfdG9fY3B1XzE2KHJ4ZHAtPndiLmwydGFnMSk7CgojaWZuZGVmIFJURV9MSUJS VEVfSUFWRl8xNkJZVEVfUlhfREVTQwoJaWYgKHJ4X2ZsYWdzICYgSUFWRl9SWF9GTEFHU19WTEFO X1RBR19MT0NfTDJUQUcyXzIgJiYKCSAgICBydGVfbGVfdG9fY3B1XzE2KHJ4ZHAtPndiLnN0YXR1 c19lcnJvcjEpICYKCSAgICAoMSA8PCBJQVZGX1JYX0ZMRVhfREVTQ19TVEFUVVMxX0wyVEFHMlBf UykpCgkJdmxhbl90Y2kgPSBydGVfbGVfdG9fY3B1XzE2KHJ4ZHAtPndiLmwydGFnMl8ybmQpOwoj ZW5kaWYKCglpZiAodmxhbl90Y2kpIHsKCQltYi0+b2xfZmxhZ3MgfD0gUEtUX1JYX1ZMQU4gfCBQ S1RfUlhfVkxBTl9TVFJJUFBFRDsKCQltYi0+dmxhbl90Y2kgPSB2bGFuX3RjaTsKCX0KfQoKLyog VHJhbnNsYXRlIHRoZSByeCBkZXNjcmlwdG9yIHN0YXR1cyBhbmQgZXJyb3IgZmllbGRzIHRvIHBr dCBmbGFncyAqLwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaWF2Zi9pYXZmX3J4 dHguYzoxMDU0Ckh1bmsgIzIgc3VjY2VlZGVkIGF0IDEzOTQgKG9mZnNldCAtNCBsaW5lcykuCkh1 bmsgIzMgc3VjY2VlZGVkIGF0IDE1MzYgKG9mZnNldCAtNCBsaW5lcykuCkh1bmsgIzQgc3VjY2Vl ZGVkIGF0IDE3NzQgKG9mZnNldCAtNCBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9y OgoJcmV0dXJuIDA7Cn0KCi8qIENoZWNrIGlmIHRoZSBjb250ZXh0IGRlc2NyaXB0b3IgaXMgbmVl ZGVkIGZvciBUWCBvZmZsb2FkaW5nICovCnN0YXRpYyBpbmxpbmUgdWludDE2X3QKaWF2Zl9jYWxj X2NvbnRleHRfZGVzYyh1aW50NjRfdCBmbGFncywgdWludDhfdCB2bGFuX2ZsYWcpCnsKCWlmIChm bGFncyAmIFBLVF9UWF9UQ1BfU0VHKQoJCXJldHVybiAxOwoJaWYgKGZsYWdzICYgUEtUX1RYX1ZM QU5fUEtUICYmCgkgICAgdmxhbl9mbGFnICYgSUFWRl9UWF9GTEFHU19WTEFOX1RBR19MT0NfTDJU QUcyKQoJCXJldHVybiAxOwoJcmV0dXJuIDA7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZAppYXZmX3R4 ZF9lbmFibGVfY2hlY2tzdW0odWludDY0X3Qgb2xfZmxhZ3MsCgkJCXVpbnQzMl90ICp0ZF9jbWQs CgkJCXVpbnQzMl90ICp0ZF9vZmZzZXQsCgkJCXVuaW9uIGlhdmZfdHhfb2ZmbG9hZCB0eF9vZmZs b2FkKQp7CgkvKiBTZXQgTUFDTEVOICovCgkqdGRfb2Zmc2V0IHw9ICh0eF9vZmZsb2FkLmwyX2xl biA+PiAxKSA8PAoJCSAgICAgIElBVkZfVFhfREVTQ19MRU5HVEhfTUFDTEVOX1NISUZUOwoKCS8q IEVuYWJsZSBMMyBjaGVja3N1bSBvZmZsb2FkcyAqLwoJaWYgKG9sX2ZsYWdzICYgUEtUX1RYX0lQ X0NLU1VNKSB7CgkJKnRkX2NtZCB8PSBJQVZGX1RYX0RFU0NfQ01EX0lJUFRfSVBWNF9DU1VNOwoJ CSp0ZF9vZmZzZXQgfD0gKHR4X29mZmxvYWQubDNfbGVuID4+IDIpIDw8CgkJCSAgICAgIElBVkZf VFhfREVTQ19MRU5HVEhfSVBMRU5fU0hJRlQ7Cgl9IGVsc2UgaWYgKG9sX2ZsYWdzICYgUEtUX1RY X0lQVjQpIHsKCQkqdGRfY21kIHw9IElBVkZfVFhfREVTQ19DTURfSUlQVF9JUFY0OwoJCSp0ZF9v ZmZzZXQgfD0gKHR4X29mZmxvYWQubDNfbGVuID4+IDIpIDw8CgkJCSAgICAgIElBVkZfVFhfREVT Q19MRU5HVEhfSVBMRU5fU0hJRlQ7Cgl9IGVsc2UgaWYgKG9sX2ZsYWdzICYgUEtUX1RYX0lQVjYp IHsKCQkqdGRfY21kIHw9IElBVkZfVFhfREVTQ19DTURfSUlQVF9JUFY2OwoJCSp0ZF9vZmZzZXQg fD0gKHR4X29mZmxvYWQubDNfbGVuID4+IDIpIDw8CgkJCSAgICAgIElBVkZfVFhfREVTQ19MRU5H VEhfSVBMRU5fU0hJRlQ7Cgl9CgoJaWYgKG9sX2ZsYWdzICYgUEtUX1RYX1RDUF9TRUcpIHsKCQkq dGRfY21kIHw9IElBVkZfVFhfREVTQ19DTURfTDRUX0VPRlRfVENQOwoJCSp0ZF9vZmZzZXQgfD0g KHR4X29mZmxvYWQubDRfbGVuID4+IDIpIDw8CgkJCSAgICAgIElBVkZfVFhfREVTQ19MRU5HVEhf TDRfRkNfTEVOX1NISUZUOwoJCXJldHVybjsKCX0KCgkvKiBFbmFibGUgTDQgY2hlY2tzdW0gb2Zm bG9hZHMgKi8KCXN3aXRjaCAob2xfZmxhZ3MgJiBQS1RfVFhfTDRfTUFTSykgewoJY2FzZSBQS1Rf VFhfVENQX0NLU1VNOgoJCSp0ZF9jbWQgfD0gSUFWRl9UWF9ERVNDX0NNRF9MNFRfRU9GVF9UQ1A7 CgkJKnRkX29mZnNldCB8PSAoc2l6ZW9mKHN0cnVjdCBydGVfdGNwX2hkcikgPj4gMikgPDwKCQkJ ICAgICAgSUFWRl9UWF9ERVNDX0xFTkdUSF9MNF9GQ19MRU5fU0hJRlQ7CgkJYnJlYWs7CgljYXNl IFBLVF9UWF9TQ1RQX0NLU1VNOgoJCSp0ZF9jbWQgfD0gSUFWRl9UWF9ERVNDX0NNRF9MNFRfRU9G VF9TQ1RQOwoJCSp0ZF9vZmZzZXQgfD0gKHNpemVvZihzdHJ1Y3QgcnRlX3NjdHBfaGRyKSA+PiAy KSA8PAoJCQkgICAgICBJQVZGX1RYX0RFU0NfTEVOR1RIX0w0X0ZDX0xFTl9TSElGVDsKCQlicmVh azsKCWNhc2UgUEtUX1RYX1VEUF9DS1NVTToKCQkqdGRfY21kIHw9IElBVkZfVFhfREVTQ19DTURf TDRUX0VPRlRfVURQOwoJCSp0ZF9vZmZzZXQgfD0gKHNpemVvZihzdHJ1Y3QgcnRlX3VkcF9oZHIp ID4+IDIpIDw8CgkJCSAgICAgIElBVkZfVFhfREVTQ19MRU5HVEhfTDRfRkNfTEVOX1NISUZUOwoJ CWJyZWFrOwoJZGVmYXVsdDoKCQlicmVhazsKCX0KfQoKLyogc2V0IFRTTyBjb250ZXh0IGRlc2Ny aXB0b3IKICogc3VwcG9ydCBJUCAtPiBMNCBhbmQgSVAgLT4gSVAgLT4gTDQKICovCnN0YXRpYyBp bmxpbmUgdWludDY0X3QKaWF2Zl9zZXRfdHNvX2N0eChzdHJ1Y3QgcnRlX21idWYgKm1idWYsIHVu aW9uIGlhdmZfdHhfb2ZmbG9hZCB0eF9vZmZsb2FkKQp7Cgl1aW50NjRfdCBjdHhfZGVzYyA9IDA7 Cgl1aW50MzJfdCBjZF9jbWQsIGhkcl9sZW4sIGNkX3Rzb19sZW47CgoJaWYgKCF0eF9vZmZsb2Fk Lmw0X2xlbikgewoJCVBNRF9UWF9MT0coREVCVUcsICJMNCBsZW5ndGggc2V0IHRvIDAiKTsKCQly ZXR1cm4gY3R4X2Rlc2M7Cgl9CgoJaGRyX2xlbiA9IHR4X29mZmxvYWQubDJfbGVuICsKCQkgIHR4 X29mZmxvYWQubDNfbGVuICsKCQkgIHR4X29mZmxvYWQubDRfbGVuOwoKCWNkX2NtZCA9IElBVkZf VFhfQ1RYX0RFU0NfVFNPOwoJY2RfdHNvX2xlbiA9IG1idWYtPnBrdF9sZW4gLSBoZHJfbGVuOwoJ Y3R4X2Rlc2MgfD0gKCh1aW50NjRfdCljZF9jbWQgPDwgSUFWRl9UWERfQ1RYX1FXMV9DTURfU0hJ RlQpIHwKCQkgICAgICgodWludDY0X3QpY2RfdHNvX2xlbiA8PCBJQVZGX1RYRF9DVFhfUVcxX1RT T19MRU5fU0hJRlQpIHwKCQkgICAgICgodWludDY0X3QpbWJ1Zi0+dHNvX3NlZ3N6IDw8IElBVkZf VFhEX0NUWF9RVzFfTVNTX1NISUZUKTsKCglyZXR1cm4gY3R4X2Rlc2M7Cn0KCi8qIENvbnN0cnVj dCB0aGUgdHggZmxhZ3MgKi8Kc3RhdGljIGlubGluZSB1aW50NjRfdAppYXZmX2J1aWxkX2N0b2Io dWludDMyX3QgdGRfY21kLCB1aW50MzJfdCB0ZF9vZmZzZXQsIHVuc2lnbmVkIGludCBzaXplLAoJ ICAgICAgIHVpbnQzMl90IHRkX3RhZykKewoJcmV0dXJuIHJ0ZV9jcHVfdG9fbGVfNjQoSUFWRl9U WF9ERVNDX0RUWVBFX0RBVEEgfAoJCQkJKCh1aW50NjRfdCl0ZF9jbWQgIDw8IElBVkZfVFhEX1FX MV9DTURfU0hJRlQpIHwKCQkJCSgodWludDY0X3QpdGRfb2Zmc2V0IDw8CgkJCQkgSUFWRl9UWERf UVcxX09GRlNFVF9TSElGVCkgfAoJCQkJKCh1aW50NjRfdClzaXplICA8PAoJCQkJIElBVkZfVFhE X1FXMV9UWF9CVUZfU1pfU0hJRlQpIHwKCQkJCSgodWludDY0X3QpdGRfdGFnICA8PAoJCQkJIElB VkZfVFhEX1FXMV9MMlRBRzFfU0hJRlQpKTsKfQoKLyogVFggZnVuY3Rpb24gKi8KdWludDE2X3QK aWF2Zl94bWl0X3BrdHModm9pZCAqdHhfcXVldWUsIHN0cnVjdCBydGVfbWJ1ZiAqKnR4X3BrdHMs IHVpbnQxNl90IG5iX3BrdHMpCnsKCXZvbGF0aWxlIHN0cnVjdCBpYXZmX3R4X2Rlc2MgKnR4ZDsK CXZvbGF0aWxlIHN0cnVjdCBpYXZmX3R4X2Rlc2MgKnR4cjsKCXN0cnVjdCBpYXZmX3R4X3F1ZXVl ICp0eHE7CglzdHJ1Y3QgaWF2Zl90eF9lbnRyeSAqc3dfcmluZzsKCXN0cnVjdCBpYXZmX3R4X2Vu dHJ5ICp0eGUsICp0eG47CglzdHJ1Y3QgcnRlX21idWYgKnR4X3BrdDsKCXN0cnVjdCBydGVfbWJ1 ZiAqbV9zZWc7Cgl1aW50MTZfdCB0eF9pZDsKCXVpbnQxNl90IG5iX3R4OwoJdWludDMyX3QgdGRf Y21kOwoJdWludDMyX3QgdGRfb2Zmc2V0OwoJdWludDMyX3QgdGRfdGFnOwoJdWludDY0X3Qgb2xf ZmxhZ3M7Cgl1aW50MTZfdCBuYl91c2VkOwoJdWludDE2X3QgbmJfY3R4OwoJdWludDE2X3QgdHhf bGFzdDsKCXVpbnQxNl90IHNsZW47Cgl1aW50NjRfdCBidWZfZG1hX2FkZHI7Cgl1aW50MTZfdCBj ZF9sMnRhZzIgPSAwOwoJdW5pb24gaWF2Zl90eF9vZmZsb2FkIHR4X29mZmxvYWQgPSB7MH07CgoJ dHhxID0gdHhfcXVldWU7Cglzd19yaW5nID0gdHhxLT5zd19yaW5nOwoJdHhyID0gdHhxLT50eF9y aW5nOwoJdHhfaWQgPSB0eHEtPnR4X3RhaWw7Cgl0eGUgPSAmc3dfcmluZ1t0eF9pZF07CgoJLyog Q2hlY2sgaWYgdGhlIGRlc2NyaXB0b3IgcmluZyBuZWVkcyB0byBiZSBjbGVhbmVkLiAqLwoJaWYg KHR4cS0+bmJfZnJlZSA8IHR4cS0+ZnJlZV90aHJlc2gpCgkJKHZvaWQpaWF2Zl94bWl0X2NsZWFu dXAodHhxKTsKCglmb3IgKG5iX3R4ID0gMDsgbmJfdHggPCBuYl9wa3RzOyBuYl90eCsrKSB7CgkJ dGRfY21kID0gMDsKCQl0ZF90YWcgPSAwOwoJCXRkX29mZnNldCA9IDA7CgoJCXR4X3BrdCA9ICp0 eF9wa3RzKys7CgkJUlRFX01CVUZfUFJFRkVUQ0hfVE9fRlJFRSh0eGUtPm1idWYpOwoKCQlvbF9m bGFncyA9IHR4X3BrdC0+b2xfZmxhZ3M7CgkJdHgKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVy cy9uZXQvaWF2Zi9pYXZmX3J4dHguYzoyMDY4CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJ CQl9CgkJfQoKCQkvKiBEZXNjcmlwdG9yIGJhc2VkIFZMQU4gaW5zZXJ0aW9uICovCgkJaWYgKG9s X2ZsYWdzICYgUEtUX1RYX1ZMQU5fUEtUICYmCgkJICAgIHR4cS0+dmxhbl9mbGFnICYgSUFWRl9U WF9GTEFHU19WTEFOX1RBR19MT0NfTDJUQUcxKSB7CgkJCXRkX2NtZCB8PSBJQVZGX1RYX0RFU0Nf Q01EX0lMMlRBRzE7CgkJCXRkX3RhZyA9IHR4X3BrdC0+dmxhbl90Y2k7CgkJfQoKCQkvKiBBY2Nv cmRpbmcgdG8gZGF0YXNoZWV0LCB0aGUgYml0MiBpcyByZXNlcnZlZCBhbmQgbXVzdCBiZQoJCSAq IHNldCB0byAxLgoJCSAqLwoJCXRkX2NtZCB8PSAweDA0OwoKCQkvKiBFbmFibGUgY2hlY2tzdW0g b2ZmbG9hZGluZyAqLwoJCWlmIChvbF9mbGFncyAmIElBVkZfVFhfQ0tTVU1fT0ZGTE9BRF9NQVNL KQoJCQlpYXZmX3R4ZF9lbmFibGVfY2hlY2tzdW0ob2xfZmxhZ3MsICZ0ZF9jbWQsCgkJCQkJCSZ0 ZF9vZmZzZXQsIHR4X29mZmxvYWQpOwoKCQlpZiAobmJfY3R4KSB7CgkJCS8qIFNldHVwIFRYIGNv bnRleHQgZGVzY3JpcHRvciBpZiByZXF1aXJlZCAqLwoJCQl1aW50NjRfdCBjZF90eXBlX2NtZF90 c29fbXNzID0KCQkJCUlBVkZfVFhfREVTQ19EVFlQRV9DT05URVhUOwoJCQl2b2xhdGlsZSBzdHJ1 Y3QgaWF2Zl90eF9jb250ZXh0X2Rlc2MgKmN0eF90eGQgPQoJCQkJKHZvbGF0aWxlIHN0cnVjdCBp YXZmX3R4X2NvbnRleHRfZGVzYyAqKQoJCQkJCQkJJnR4clt0eF9pZF07CgoJCQkvKiBjbGVhciBR VzAgb3IgdGhlIHByZXZpb3VzIHdyaXRlYmFjayB2YWx1ZQoJCQkgKiBtYXkgaW1wYWN0IG5leHQg d3JpdGUKCQkJICovCgkJCSoodm9sYXRpbGUgdWludDY0X3QgKiljdHhfdHhkID0gMDsKCgkJCXR4 biA9ICZzd19yaW5nW3R4ZS0+bmV4dF9pZF07CgkJCVJURV9NQlVGX1BSRUZFVENIX1RPX0ZSRUUo dHhuLT5tYnVmKTsKCQkJaWYgKHR4ZS0+bWJ1ZikgewoJCQkJcnRlX3BrdG1idWZfZnJlZV9zZWco dHhlLT5tYnVmKTsKCQkJCXR4ZS0+bWJ1ZiA9IE5VTEw7CgkJCX0KCgkJCS8qIFRTTyBlbmFibGVk ICovCgkJCWlmIChvbF9mbGFncyAmIFBLVF9UWF9UQ1BfU0VHKQoJCQkJY2RfdHlwZV9jbWRfdHNv X21zcyB8PQoJCQkJCWlhdmZfc2V0X3Rzb19jdHgodHhfcGt0LCB0eF9vZmZsb2FkKTsKCgkJCWlm IChvbF9mbGFncyAmIFBLVF9UWF9WTEFOX1BLVCAmJgoJCQkgICB0eHEtPnZsYW5fZmxhZyAmIElB VkZfVFhfRkxBR1NfVkxBTl9UQUdfTE9DX0wyVEFHMikgewoJCQkJY2RfdHlwZV9jbWRfdHNvX21z cyB8PSBJQVZGX1RYX0NUWF9ERVNDX0lMMlRBRzIKCQkJCQk8PCBJQVZGX1RYRF9DVFhfUVcxX0NN RF9TSElGVDsKCQkJCWNkX2wydGFnMiA9IHR4X3BrdC0+dmxhbl90Y2k7CgkJCX0KCgkJCWN0eF90 eGQtPnR5cGVfY21kX3Rzb19tc3MgPQoJCQkJcnRlX2NwdV90b19sZV82NChjZF90eXBlX2NtZF90 c29fbXNzKTsKCQkJY3R4X3R4ZC0+bDJ0YWcyID0gcnRlX2NwdV90b19sZV8xNihjZF9sMnRhZzIp OwoKCQkJSUFWRl9EVU1QX1RYX0RFU0ModHhxLCAmdHhyW3R4X2lkXSwgdHhfaWQpOwoJCQl0eGUt Pmxhc3RfaWQgPSB0eF9sYXN0OwoJCQl0eF9pZCA9IHR4ZS0+bmV4dF9pZDsKCQkJdHhlID0gdHhu OwoJCX0KCgkJbV9zZWcgPSB0eF9wa3Q7CgkJZG8gewoJCQl0eGQgPSAmdHhyW3R4X2lkXTsKCQkJ dHhuID0gJnN3X3JpbmdbdHhlLT5uZXh0X2lkXTsKCgkJCWlmICh0eGUtPm1idWYpCgkJCQlydGVf cGt0bWJ1Zl9mcmVlX3NlZyh0eGUtPm1idWYpOwoJCQl0eGUtPm1idWYgPSBtX3NlZzsKCgkJCS8q IFNldHVwIFRYIERlc2NyaXB0b3IgKi8KCQkJc2xlbiA9IG1fc2VnLT5kYXRhX2xlbjsKCQkJYnVm X2RtYV9hZGRyID0gcnRlX21idWZfZGF0YV9pb3ZhKG1fc2VnKTsKCQkJdHhkLT5idWZmZXJfYWRk ciA9IHJ0ZV9jcHVfdG9fbGVfNjQoYnVmX2RtYV9hZGRyKTsKCQkJdHhkLT5jbWRfdHlwZV9vZmZz ZXRfYnN6ID0gaWF2Zl9idWlsZF9jdG9iKHRkX2NtZCwKCQkJCQkJCQkgIHRkX29mZnNldCwKCQkJ CQkJCQkgIHNsZW4sCgkJCQkJCQkJICB0ZF90YWcpOwoKCQkJSUFWRl9EVU1QX1RYX0RFU0ModHhx LCB0eGQsIHR4X2lkKTsKCQkJdHhlLT5sYXN0X2lkID0gdHhfbGFzdDsKCQkJdHhfaWQgPSB0eGUt Pm5leHRfaWQ7CgkJCXR4ZSA9IHR4bjsKCQkJbV9zZWcgPSBtX3NlZy0+bmV4dDsKCQl9IHdoaWxl IChtX3NlZyk7CgoJCS8qIFRoZSBsYXN0IHBhY2tldCBkYXRhIGRlc2NyaXB0b3IgbmVlZHMgRW5k IE9mIFBhY2tldCAoRU9QKSAqLwoJCXRkX2NtZCB8PSBJQVZGX1RYX0RFU0NfQ01EX0VPUDsKCQl0 eHEtPm5iX3VzZWQgPSAodWludDE2X3QpKHR4cS0+bmJfdXNlZCArIG5iX3VzZWQpOwoJCXR4cS0+ bmJfZnJlZSA9ICh1aW50MTZfdCkodHhxLT5uYl9mcmVlIC0gbmJfdXNlZCk7CgoJCWlmICh0eHEt Pm5iX3VzZWQgPj0gdHhxLT5yc190aHJlc2gpIHsKCQkJUE1EX1RYX0xPRyhERUJVRywgIlNldHRp bmcgUlMgYml0IG9uIFRYRCBpZD0iCgkJCQkgICAiJTR1IChwb3J0PSVkIHF1ZXVlPSVkKSIsCgkJ CQkgICB0eF9sYXN0LCB0eHEtPnBvcnRfaWQsIHR4cS0+cXVldWVfaWQpOwoKCQkJdGRfY21kIHw9 IElBVkZfVFhfREVTQ19DTURfUlM7CgoJCQkvKiBVcGRhdGUgdHhxIFJTIGJpdCBjb3VudGVycyAq LwoJCQl0eHEtPm5iX3VzZWQgPSAwOwoJCX0KCgkJdHhkLT5jbWRfdHlwZV9vZmZzZXRfYnN6IHw9 CgkJCXJ0ZV9jcHVfdG9fbGVfNjQoKCh1aW50NjRfdCl0ZF9jbWQpIDw8CgkJCQkJIElBVkZfVFhE X1FXMV9DTURfU0hJRlQpOwoJCUlBVkZfRFVNUF9UWF9ERVNDKHR4cSwgdHhkLCB0eF9pZCk7Cgl9 CgplbmRfb2ZfdHg6CglydGVfd21iKCk7CgoJUE1EX1RYX0xPRyhERUJVRywgInBvcnRfaWQ9JXUg cXVldWVfaWQ9JXUgdHhfdGFpbD0ldSBuYl90eD0ldSIsCgkJICAgdHhxLT5wb3J0X2lkLCB0eHEt PnF1ZXVlX2lkLCB0eF9pZCwgbmJfdHgpOwoKCUlBVkZfUENJX1JFR19XQ19XUklURV9SRUxBWEVE KHR4cS0+cXR4X3RhaWwsIHR4X2lkKTsKCXR4cS0+dHhfdGFpbCA9IHR4X2lkOwoKCXJldHVybiBu Yl90eDsKfQoKLyogQ2hlY2sgaWYgdGhlIHBhY2tldCB3aXRoIHZsYW4gdXNlciBwcmlvcml0eSBp cyB0cmFuc21pdHRlZCBpbiB0aGUKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2lh dmYvaWF2Zl9yeHR4LmM6MjI1OQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pYXZmL2lhdmZf cnh0eC5oLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDQwMyAob2Zmc2V0IC0yIGxpbmVzKS4KSHVu ayAjMiBzdWNjZWVkZWQgYXQgNjU5IChvZmZzZXQgLTIgbGluZXMpLgpIdW5rICMzIHN1Y2NlZWRl ZCBhdCA2NzYgKG9mZnNldCAtMiBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2lh dmYvaWF2Zl9yeHR4X3ZlY19zc2UuYy4uLgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9pYXZm L2lhdmZfcnh0eC5jIHdpdGggMyByZWplY3RzLi4uClJlamVjdGVkIGh1bmsgIzEuCkh1bmsgIzIg YXBwbGllZCBjbGVhbmx5LgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNCBhcHBsaWVk IGNsZWFubHkuClJlamVjdGVkIGh1bmsgIzUuClJlamVjdGVkIGh1bmsgIzYuCkFwcGxpZWQgcGF0 Y2ggZHJpdmVycy9uZXQvaWF2Zi9pYXZmX3J4dHguaCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRy aXZlcnMvbmV0L2lhdmYvaWF2Zl9yeHR4X3ZlY19zc2UuYyBjbGVhbmx5LgpkaWZmIGEvZHJpdmVy cy9uZXQvaWF2Zi9pYXZmX3J4dHguYyBiL2RyaXZlcnMvbmV0L2lhdmYvaWF2Zl9yeHR4LmMJKHJl amVjdGVkIGh1bmtzKQpAQCAtMTA1NCwyNyArMTA1NCwzMSBAQCBpYXZmX3J4ZF90b192bGFuX3Rj aShzdHJ1Y3QgcnRlX21idWYgKm1iLCB2b2xhdGlsZSB1bmlvbiBpYXZmX3J4X2Rlc2MgKnJ4ZHAp CiAKIHN0YXRpYyBpbmxpbmUgdm9pZAogaWF2Zl9mbGV4X3J4ZF90b192bGFuX3RjaShzdHJ1Y3Qg cnRlX21idWYgKm1iLAotCQkJICB2b2xhdGlsZSB1bmlvbiBpYXZmX3J4X2ZsZXhfZGVzYyAqcnhk cCwKLQkJCSAgdWludDhfdCByeF9mbGFncykKKwkJCSAgdm9sYXRpbGUgdW5pb24gaWF2Zl9yeF9m bGV4X2Rlc2MgKnJ4ZHApCiB7Ci0JdWludDE2X3Qgdmxhbl90Y2kgPSAwOwotCi0JaWYgKHJ4X2Zs YWdzICYgSUFWRl9SWF9GTEFHU19WTEFOX1RBR19MT0NfTDJUQUcxICYmCi0JICAgIHJ0ZV9sZV90 b19jcHVfNjQocnhkcC0+d2Iuc3RhdHVzX2Vycm9yMCkgJgotCSAgICAoMSA8PCBJQVZGX1JYX0ZM RVhfREVTQ19TVEFUVVMwX0wyVEFHMVBfUykpCi0JCXZsYW5fdGNpID0gcnRlX2xlX3RvX2NwdV8x NihyeGRwLT53Yi5sMnRhZzEpOworCWlmIChydGVfbGVfdG9fY3B1XzY0KHJ4ZHAtPndiLnN0YXR1 c19lcnJvcjApICYKKwkJKDEgPDwgSUFWRl9SWF9GTEVYX0RFU0NfU1RBVFVTMF9MMlRBRzFQX1Mp KSB7CisJCW1iLT5vbF9mbGFncyB8PSBQS1RfUlhfVkxBTiB8IFBLVF9SWF9WTEFOX1NUUklQUEVE OworCQltYi0+dmxhbl90Y2kgPQorCQkJcnRlX2xlX3RvX2NwdV8xNihyeGRwLT53Yi5sMnRhZzEp OworCX0gZWxzZSB7CisJCW1iLT52bGFuX3RjaSA9IDA7CisJfQogCiAjaWZuZGVmIFJURV9MSUJS VEVfSUFWRl8xNkJZVEVfUlhfREVTQwotCWlmIChyeF9mbGFncyAmIElBVkZfUlhfRkxBR1NfVkxB Tl9UQUdfTE9DX0wyVEFHMl8yICYmCi0JICAgIHJ0ZV9sZV90b19jcHVfMTYocnhkcC0+d2Iuc3Rh dHVzX2Vycm9yMSkgJgotCSAgICAoMSA8PCBJQVZGX1JYX0ZMRVhfREVTQ19TVEFUVVMxX0wyVEFH MlBfUykpCi0JCXZsYW5fdGNpID0gcnRlX2xlX3RvX2NwdV8xNihyeGRwLT53Yi5sMnRhZzJfMm5k KTsKLSNlbmRpZgotCi0JaWYgKHZsYW5fdGNpKSB7Ci0JCW1iLT5vbF9mbGFncyB8PSBQS1RfUlhf VkxBTiB8IFBLVF9SWF9WTEFOX1NUUklQUEVEOwotCQltYi0+dmxhbl90Y2kgPSB2bGFuX3RjaTsK KwlpZiAocnRlX2xlX3RvX2NwdV8xNihyeGRwLT53Yi5zdGF0dXNfZXJyb3IxKSAmCisJICAgICgx IDw8IElBVkZfUlhfRkxFWF9ERVNDX1NUQVRVUzFfTDJUQUcyUF9TKSkgeworCQltYi0+b2xfZmxh Z3MgfD0gUEtUX1JYX1FJTlFfU1RSSVBQRUQgfCBQS1RfUlhfUUlOUSB8CisJCQkJUEtUX1JYX1ZM QU5fU1RSSVBQRUQgfCBQS1RfUlhfVkxBTjsKKwkJbWItPnZsYW5fdGNpX291dGVyID0gbWItPnZs YW5fdGNpOworCQltYi0+dmxhbl90Y2kgPSBydGVfbGVfdG9fY3B1XzE2KHJ4ZHAtPndiLmwydGFn Ml8ybmQpOworCQlQTURfUlhfTE9HKERFQlVHLCAiRGVzY3JpcHRvciBsMnRhZzJfMTogJXUsIGwy dGFnMl8yOiAldSIsCisJCQkgICBydGVfbGVfdG9fY3B1XzE2KHJ4ZHAtPndiLmwydGFnMl8xc3Qp LAorCQkJICAgcnRlX2xlX3RvX2NwdV8xNihyeGRwLT53Yi5sMnRhZzJfMm5kKSk7CisJfSBlbHNl IHsKKwkJbWItPnZsYW5fdGNpX291dGVyID0gMDsKIAl9CisjZW5kaWYKIH0KIAogLyogVHJhbnNs YXRlIHRoZSByeCBkZXNjcmlwdG9yIHN0YXR1cyBhbmQgZXJyb3IgZmllbGRzIHRvIHBrdCBmbGFn cyAqLwpAQCAtMjA2OCwxOTAgKzIwNzIsMzAyIEBAIGlhdmZfeG1pdF9jbGVhbnVwKHN0cnVjdCBp YXZmX3R4X3F1ZXVlICp0eHEpCiAJcmV0dXJuIDA7CiB9CiAKLS8qIENoZWNrIGlmIHRoZSBjb250 ZXh0IGRlc2NyaXB0b3IgaXMgbmVlZGVkIGZvciBUWCBvZmZsb2FkaW5nICovCisKKworc3RhdGlj IGlubGluZSB2b2lkCitpYXZmX2ZpbGxfY3R4X2Rlc2NfY21kX2ZpZWxkKHZvbGF0aWxlIHVpbnQ2 NF90ICpmaWVsZCwgc3RydWN0IHJ0ZV9tYnVmICptKQoreworCXVpbnQ2NF90IGNtZCA9IDA7CisK KwkvKiBUU08gZW5hYmxlZCAqLworCWlmIChtLT5vbF9mbGFncyAmIChQS1RfVFhfVENQX1NFRyB8 IFBLVF9UWF9VRFBfU0VHKSkKKwkJY21kID0gSUFWRl9UWF9DVFhfREVTQ19UU08gPDwgSUFWRl9U WERfREFUQV9RVzFfQ01EX1NISUZUOworCisJLyogVGltZSBTeW5jIC0gQ3VycmVudGx5IG5vdCBz dXBwb3J0ZWQgKi8KKworCS8qIE91dGVyIEwyIFRBRyAyIEluc2VydGlvbiAtIEN1cnJlbnRseSBu b3Qgc3VwcG9ydGVkICovCisJLyogSW5uZXIgTDIgVEFHIDIgSW5zZXJ0aW9uIC0gQ3VycmVudGx5 IG5vdCBzdXBwb3J0ZWQgKi8KKworCSpmaWVsZCB8PSBjbWQ7Cit9CisKK3N0YXRpYyBpbmxpbmUg dm9pZAoraWF2Zl9maWxsX2N0eF9kZXNjX3R1bm5lbGxpbmdfZmllbGQodm9sYXRpbGUgdWludDY0 X3QgKnF3MCwKKwkJY29uc3Qgc3RydWN0IHJ0ZV9tYnVmICptKQoreworCXVpbnQ2NF90IGVpcF90 eXAgPSBJQVZGX1RYX0NUWF9ERVNDX0VJUFRfTk9ORTsKKwl1aW50NjRfdCBlaXBfbGVuID0gMDsK Kwl1aW50NjRfdCBlaXBfbm9pbmMgPSAwOworCS8qIERlZmF1bHQgLSBJUF9JRCBpcyBpbmNyZW1l bnQgaW4gZWFjaCBzZWdtZW50IG9mIExTTyAqLworCisJc3dpdGNoIChtLT5vbF9mbGFncyAmIChQ S1RfVFhfT1VURVJfSVBWNCB8IFBLVF9UWF9PVVRFUl9JUFY2IHwKKwkJCVBLVF9UWF9PVVRFUl9J UF9DS1NVTSkpIHsKKwljYXNlIFBLVF9UWF9PVVRFUl9JUFY0OgorCQllaXBfdHlwID0gSUFWRl9U WF9DVFhfREVTQ19FSVBUX0lQVjRfTk9fQ0hFQ0tTVU1fT0ZGTE9BRDsKKwkJZWlwX2xlbiA9IG0t Pm91dGVyX2wzX2xlbiA+PiAyOworCWJyZWFrOworCWNhc2UgUEtUX1RYX09VVEVSX0lQVjQgfCBQ S1RfVFhfT1VURVJfSVBfQ0tTVU06CisJCWVpcF90eXAgPSBJQVZGX1RYX0NUWF9ERVNDX0VJUFRf SVBWNF9DSEVDS1NVTV9PRkZMT0FEOworCQllaXBfbGVuID0gbS0+b3V0ZXJfbDNfbGVuID4+IDI7 CisJYnJlYWs7CisJY2FzZSBQS1RfVFhfT1VURVJfSVBWNjoKKwkJZWlwX3R5cCA9IElBVkZfVFhf Q1RYX0RFU0NfRUlQVF9JUFY2OworCQllaXBfbGVuID0gbS0+b3V0ZXJfbDNfbGVuID4+IDI7CisJ YnJlYWs7CisJfQorCisJKnF3MCA9IGVpcF90eXAgPDwgSUFWRl9UWERfQ1RYX1FXMF9UVU5fUEFS QU1TX0VJUFRfU0hJRlQgfAorCQllaXBfbGVuIDw8IElBVkZfVFhEX0NUWF9RVzBfVFVOX1BBUkFN U19FSVBMRU5fU0hJRlQgfAorCQllaXBfbm9pbmMgPDwgSUFWRl9UWERfQ1RYX1FXMF9UVU5fUEFS QU1TX0VJUF9OT0lOQ19TSElGVDsKK30KKwogc3RhdGljIGlubGluZSB1aW50MTZfdAotaWF2Zl9j YWxjX2NvbnRleHRfZGVzYyh1aW50NjRfdCBmbGFncywgdWludDhfdCB2bGFuX2ZsYWcpCitpYXZm X2ZpbGxfY3R4X2Rlc2Nfc2VnbWVudGF0aW9uX2ZpZWxkKHZvbGF0aWxlIHVpbnQ2NF90ICpmaWVs ZCwKKwlzdHJ1Y3QgcnRlX21idWYgKm0pCiB7Ci0JaWYgKGZsYWdzICYgUEtUX1RYX1RDUF9TRUcp Ci0JCXJldHVybiAxOwotCWlmIChmbGFncyAmIFBLVF9UWF9WTEFOX1BLVCAmJgotCSAgICB2bGFu X2ZsYWcgJiBJQVZGX1RYX0ZMQUdTX1ZMQU5fVEFHX0xPQ19MMlRBRzIpCi0JCXJldHVybiAxOwot CXJldHVybiAwOworCXVpbnQ2NF90IHNlZ21lbnRhdGlvbl9maWVsZCA9IDA7CisJdWludDY0X3Qg dG90YWxfbGVuZ3RoID0gMDsKKworCXRvdGFsX2xlbmd0aCA9IG0tPnBrdF9sZW4gLSAobS0+bDJf bGVuICsgbS0+bDNfbGVuICsgbS0+bDRfbGVuKTsKKworCWlmIChtLT5vbF9mbGFncyAmIFBLVF9U WF9UVU5ORUxfTUFTSykKKwkJdG90YWxfbGVuZ3RoIC09IG0tPm91dGVyX2wzX2xlbjsKKworI2lm ZGVmIFJURV9MSUJSVEVfSUFWRl9ERUJVR19UWAorCWlmICghbS0+bDRfbGVuIHx8ICFtLT50c29f c2Vnc3opCisJCVBNRF9UWF9MT0coREVCVUcsICJMNCBsZW5ndGggJWQsIExTTyBTZWdtZW50IHNp emUgJWQiLAorCQkJIG0tPmw0X2xlbiwgbS0+dHNvX3NlZ3N6KTsKKwlpZiAobS0+dHNvX3NlZ3N6 IDwgODgpCisJCVBNRF9UWF9MT0coREVCVUcsICJMU08gU2VnbWVudCBzaXplICVkIGlzIGxlc3Mg dGhhbiBtaW5pbXVtICVkIiwKKwkJCW0tPnRzb19zZWdzeiwgODgpOworI2VuZGlmCisJc2VnbWVu dGF0aW9uX2ZpZWxkID0KKwkJKCgodWludDY0X3QpdG90YWxfbGVuZ3RoIDw8IElBVkZfVFhEX0NU WF9RVzFfVFNPX0xFTl9TSElGVCkgJgorCQkJCUlBVkZfVFhEX0NUWF9RVzFfVFNPX0xFTl9NQVNL KSB8CisJCSgoKHVpbnQ2NF90KW0tPnRzb19zZWdzeiA8PCBJQVZGX1RYRF9DVFhfUVcxX01TU19T SElGVCkgJgorCQkJCUlBVkZfVFhEX0NUWF9RVzFfTVNTX01BU0spOworCisJKmZpZWxkIHw9IHNl Z21lbnRhdGlvbl9maWVsZDsKKworCXJldHVybiB0b3RhbF9sZW5ndGg7CiB9CiAKKworc3RydWN0 IGlhdmZfdHhfY29udGV4dF9kZXNjX3F3cyB7CisJX19sZTY0IHF3MDsKKwlfX2xlNjQgcXcxOwor fTsKKwogc3RhdGljIGlubGluZSB2b2lkCi1pYXZmX3R4ZF9lbmFibGVfY2hlY2tzdW0odWludDY0 X3Qgb2xfZmxhZ3MsCi0JCQl1aW50MzJfdCAqdGRfY21kLAotCQkJdWludDMyX3QgKnRkX29mZnNl dCwKLQkJCXVuaW9uIGlhdmZfdHhfb2ZmbG9hZCB0eF9vZmZsb2FkKQoraWF2Zl9maWxsX2NvbnRl eHRfZGVzYyh2b2xhdGlsZSBzdHJ1Y3QgaWF2Zl90eF9jb250ZXh0X2Rlc2MgKmRlc2MsCisJc3Ry dWN0IHJ0ZV9tYnVmICptLCB1aW50MTZfdCAqdGxlbikKIHsKKwl2b2xhdGlsZSBzdHJ1Y3QgaWF2 Zl90eF9jb250ZXh0X2Rlc2NfcXdzICpkZXNjX3F3cyA9CisJCQkodm9sYXRpbGUgc3RydWN0IGlh dmZfdHhfY29udGV4dF9kZXNjX3F3cyAqKWRlc2M7CisJLyogZmlsbCBkZXNjcmlwdG9yIHR5cGUg ZmllbGQgKi8KKwlkZXNjX3F3cy0+cXcxID0gSUFWRl9UWF9ERVNDX0RUWVBFX0NPTlRFWFQ7CisK KwkvKiBmaWxsIGNvbW1hbmQgZmllbGQgKi8KKwlpYXZmX2ZpbGxfY3R4X2Rlc2NfY21kX2ZpZWxk KCZkZXNjX3F3cy0+cXcxLCBtKTsKKworCS8qIGZpbGwgc2VnbWVudGF0aW9uIGZpZWxkICovCisJ aWYgKG0tPm9sX2ZsYWdzICYgKFBLVF9UWF9UQ1BfU0VHIHwgUEtUX1RYX1VEUF9TRUcpKSB7CisJ CSp0bGVuID0gaWF2Zl9maWxsX2N0eF9kZXNjX3NlZ21lbnRhdGlvbl9maWVsZCgmZGVzY19xd3Mt PnF3MSwKKwkJCQltKTsKKwl9CisKKwkvKiBmaWxsIHR1bm5lbGxpbmcgZmllbGQgKi8KKwlpZiAo bS0+b2xfZmxhZ3MgJiBQS1RfVFhfVFVOTkVMX01BU0spCisJCWlhdmZfZmlsbF9jdHhfZGVzY190 dW5uZWxsaW5nX2ZpZWxkKCZkZXNjX3F3cy0+cXcwLCBtKTsKKwllbHNlCisJCWRlc2NfcXdzLT5x dzAgPSAwOworCisJZGVzY19xd3MtPnF3MCA9IHJ0ZV9jcHVfdG9fbGVfNjQoZGVzY19xd3MtPnF3 MCk7CisJZGVzY19xd3MtPnF3MSA9IHJ0ZV9jcHVfdG9fbGVfNjQoZGVzY19xd3MtPnF3MSk7Cit9 CisKKworc3RhdGljIGlubGluZSB2b2lkCitpYXZmX2J1aWxkX2RhdGFfZGVzY19jbWRfb2Zmc2V0 X2ZpZWxkcyh2b2xhdGlsZSB1aW50NjRfdCAqcXcxLAorCQlzdHJ1Y3QgcnRlX21idWYgKm0pCit7 CisJdWludDY0X3QgY29tbWFuZCA9IDA7CisJdWludDY0X3Qgb2Zmc2V0ID0gMDsKKwl1aW50NjRf dCBsMnRhZzEgPSAwOworCisJKnF3MSA9IElBVkZfVFhfREVTQ19EVFlQRV9EQVRBOworCisJY29t bWFuZCA9ICh1aW50NjRfdClJQVZGX1RYX0RFU0NfQ01EX0lDUkM7CisKKwkvKiBEZXNjcmlwdG9y IGJhc2VkIFZMQU4gaW5zZXJ0aW9uICovCisJaWYgKG0tPm9sX2ZsYWdzICYgUEtUX1RYX1ZMQU5f UEtUKSB7CisJCWNvbW1hbmQgfD0gKHVpbnQ2NF90KUlBVkZfVFhfREVTQ19DTURfSUwyVEFHMTsK KwkJbDJ0YWcxIHw9IG0tPnZsYW5fdGNpOworCX0KKwogCS8qIFNldCBNQUNMRU4gKi8KLQkqdGRf b2Zmc2V0IHw9ICh0eF9vZmZsb2FkLmwyX2xlbiA+PiAxKSA8PAotCQkgICAgICBJQVZGX1RYX0RF U0NfTEVOR1RIX01BQ0xFTl9TSElGVDsKLQotCS8qIEVuYWJsZSBMMyBjaGVja3N1bSBvZmZsb2Fk cyAqLwotCWlmIChvbF9mbGFncyAmIFBLVF9UWF9JUF9DS1NVTSkgewotCQkqdGRfY21kIHw9IElB VkZfVFhfREVTQ19DTURfSUlQVF9JUFY0X0NTVU07Ci0JCSp0ZF9vZmZzZXQgfD0gKHR4X29mZmxv YWQubDNfbGVuID4+IDIpIDw8Ci0JCQkgICAgICBJQVZGX1RYX0RFU0NfTEVOR1RIX0lQTEVOX1NI SUZUOwotCX0gZWxzZSBpZiAob2xfZmxhZ3MgJiBQS1RfVFhfSVBWNCkgewotCQkqdGRfY21kIHw9 IElBVkZfVFhfREVTQ19DTURfSUlQVF9JUFY0OwotCQkqdGRfb2Zmc2V0IHw9ICh0eF9vZmZsb2Fk LmwzX2xlbiA+PiAyKSA8PAotCQkJICAgICAgSUFWRl9UWF9ERVNDX0xFTkdUSF9JUExFTl9TSElG VDsKLQl9IGVsc2UgaWYgKG9sX2ZsYWdzICYgUEtUX1RYX0lQVjYpIHsKLQkJKnRkX2NtZCB8PSBJ QVZGX1RYX0RFU0NfQ01EX0lJUFRfSVBWNjsKLQkJKnRkX29mZnNldCB8PSAodHhfb2ZmbG9hZC5s M19sZW4gPj4gMikgPDwKLQkJCSAgICAgIElBVkZfVFhfREVTQ19MRU5HVEhfSVBMRU5fU0hJRlQ7 Ci0JfQotCi0JaWYgKG9sX2ZsYWdzICYgUEtUX1RYX1RDUF9TRUcpIHsKLQkJKnRkX2NtZCB8PSBJ QVZGX1RYX0RFU0NfQ01EX0w0VF9FT0ZUX1RDUDsKLQkJKnRkX29mZnNldCB8PSAodHhfb2ZmbG9h ZC5sNF9sZW4gPj4gMikgPDwKKwlvZmZzZXQgfD0gKG0tPmwyX2xlbiA+PiAxKSA8PCBJQVZGX1RY X0RFU0NfTEVOR1RIX01BQ0xFTl9TSElGVDsKKworCS8qIEVuYWJsZSBMMyBjaGVja3N1bSBvZmZs b2FkaW5nIGlubmVyICovCisJaWYgKG0tPm9sX2ZsYWdzICYgKFBLVF9UWF9JUF9DS1NVTSB8IFBL VF9UWF9JUFY0KSkgeworCQljb21tYW5kIHw9IElBVkZfVFhfREVTQ19DTURfSUlQVF9JUFY0X0NT VU07CisJCW9mZnNldCB8PSAobS0+bDNfbGVuID4+IDIpIDw8IElBVkZfVFhfREVTQ19MRU5HVEhf SVBMRU5fU0hJRlQ7CisJfSBlbHNlIGlmIChtLT5vbF9mbGFncyAmIFBLVF9UWF9JUFY0KSB7CisJ CWNvbW1hbmQgfD0gSUFWRl9UWF9ERVNDX0NNRF9JSVBUX0lQVjQ7CisJCW9mZnNldCB8PSAobS0+ bDNfbGVuID4+IDIpIDw8IElBVkZfVFhfREVTQ19MRU5HVEhfSVBMRU5fU0hJRlQ7CisJfSBlbHNl IGlmIChtLT5vbF9mbGFncyAmIFBLVF9UWF9JUFY2KSB7CisJCWNvbW1hbmQgfD0gSUFWRl9UWF9E RVNDX0NNRF9JSVBUX0lQVjY7CisJCW9mZnNldCB8PSAobS0+bDNfbGVuID4+IDIpIDw8IElBVkZf VFhfREVTQ19MRU5HVEhfSVBMRU5fU0hJRlQ7CisJfQorCisJaWYgKG0tPm9sX2ZsYWdzICYgUEtU X1RYX1RDUF9TRUcpIHsKKwkJY29tbWFuZCB8PSBJQVZGX1RYX0RFU0NfQ01EX0w0VF9FT0ZUX1RD UDsKKwkJb2Zmc2V0IHw9IChtLT5sNF9sZW4gPj4gMikgPDwKIAkJCSAgICAgIElBVkZfVFhfREVT Q19MRU5HVEhfTDRfRkNfTEVOX1NISUZUOwotCQlyZXR1cm47CiAJfQogCiAJLyogRW5hYmxlIEw0 IGNoZWNrc3VtIG9mZmxvYWRzICovCi0Jc3dpdGNoIChvbF9mbGFncyAmIFBLVF9UWF9MNF9NQVNL KSB7CisJc3dpdGNoIChtLT5vbF9mbGFncyAmIFBLVF9UWF9MNF9NQVNLKSB7CiAJY2FzZSBQS1Rf VFhfVENQX0NLU1VNOgotCQkqdGRfY21kIHw9IElBVkZfVFhfREVTQ19DTURfTDRUX0VPRlRfVENQ OwotCQkqdGRfb2Zmc2V0IHw9IChzaXplb2Yoc3RydWN0IHJ0ZV90Y3BfaGRyKSA+PiAyKSA8PAot CQkJICAgICAgSUFWRl9UWF9ERVNDX0xFTkdUSF9MNF9GQ19MRU5fU0hJRlQ7CisJCWNvbW1hbmQg fD0gSUFWRl9UWF9ERVNDX0NNRF9MNFRfRU9GVF9UQ1A7CisJCW9mZnNldCB8PSAoc2l6ZW9mKHN0 cnVjdCBydGVfdGNwX2hkcikgPj4gMikgPDwKKwkJCQlJQVZGX1RYX0RFU0NfTEVOR1RIX0w0X0ZD X0xFTl9TSElGVDsKIAkJYnJlYWs7CiAJY2FzZSBQS1RfVFhfU0NUUF9DS1NVTToKLQkJKnRkX2Nt ZCB8PSBJQVZGX1RYX0RFU0NfQ01EX0w0VF9FT0ZUX1NDVFA7Ci0JCSp0ZF9vZmZzZXQgfD0gKHNp emVvZihzdHJ1Y3QgcnRlX3NjdHBfaGRyKSA+PiAyKSA8PAotCQkJICAgICAgSUFWRl9UWF9ERVND X0xFTkdUSF9MNF9GQ19MRU5fU0hJRlQ7CisJCWNvbW1hbmQgfD0gSUFWRl9UWF9ERVNDX0NNRF9M NFRfRU9GVF9TQ1RQOworCQlvZmZzZXQgfD0gKHNpemVvZihzdHJ1Y3QgcnRlX3NjdHBfaGRyKSA+ PiAyKSA8PAorCQkJCUlBVkZfVFhfREVTQ19MRU5HVEhfTDRfRkNfTEVOX1NISUZUOwogCQlicmVh azsKIAljYXNlIFBLVF9UWF9VRFBfQ0tTVU06Ci0JCSp0ZF9jbWQgfD0gSUFWRl9UWF9ERVNDX0NN RF9MNFRfRU9GVF9VRFA7Ci0JCSp0ZF9vZmZzZXQgfD0gKHNpemVvZihzdHJ1Y3QgcnRlX3VkcF9o ZHIpID4+IDIpIDw8Ci0JCQkgICAgICBJQVZGX1RYX0RFU0NfTEVOR1RIX0w0X0ZDX0xFTl9TSElG VDsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKKwkJY29tbWFuZCB8PSBJQVZGX1RYX0RFU0NfQ01EX0w0 VF9FT0ZUX1VEUDsKKwkJb2Zmc2V0IHw9IChzaXplb2Yoc3RydWN0IHJ0ZV91ZHBfaGRyKSA+PiAy KSA8PAorCQkJCUlBVkZfVFhfREVTQ19MRU5HVEhfTDRfRkNfTEVOX1NISUZUOwogCQlicmVhazsK IAl9CisKKwkqcXcxID0gcnRlX2NwdV90b19sZV82NCgoKCh1aW50NjRfdCljb21tYW5kIDw8CisJ CUlBVkZfVFhEX0RBVEFfUVcxX0NNRF9TSElGVCkgJiBJQVZGX1RYRF9EQVRBX1FXMV9DTURfTUFT SykgfAorCQkoKCh1aW50NjRfdClvZmZzZXQgPDwgSUFWRl9UWERfREFUQV9RVzFfT0ZGU0VUX1NI SUZUKSAmCisJCUlBVkZfVFhEX0RBVEFfUVcxX09GRlNFVF9NQVNLKSB8CisJCSgodWludDY0X3Qp bDJ0YWcxIDw8IElBVkZfVFhEX0RBVEFfUVcxX0wyVEFHMV9TSElGVCkpOwogfQogCi0vKiBzZXQg VFNPIGNvbnRleHQgZGVzY3JpcHRvcgotICogc3VwcG9ydCBJUCAtPiBMNCBhbmQgSVAgLT4gSVAg LT4gTDQKLSAqLwotc3RhdGljIGlubGluZSB1aW50NjRfdAotaWF2Zl9zZXRfdHNvX2N0eChzdHJ1 Y3QgcnRlX21idWYgKm1idWYsIHVuaW9uIGlhdmZfdHhfb2ZmbG9hZCB0eF9vZmZsb2FkKQorc3Rh dGljIGlubGluZSB2b2lkCitpYXZmX2ZpbGxfZGF0YV9kZXNjX2J1ZmZlcl9zel9maWVsZCh2b2xh dGlsZSB1aW50NjRfdCAqZmllbGQsICB1aW50MTZfdCB2YWx1ZSkKIHsKLQl1aW50NjRfdCBjdHhf ZGVzYyA9IDA7Ci0JdWludDMyX3QgY2RfY21kLCBoZHJfbGVuLCBjZF90c29fbGVuOwotCi0JaWYg KCF0eF9vZmZsb2FkLmw0X2xlbikgewotCQlQTURfVFhfTE9HKERFQlVHLCAiTDQgbGVuZ3RoIHNl dCB0byAwIik7Ci0JCXJldHVybiBjdHhfZGVzYzsKKwkqZmllbGQgfD0gKCgodWludDY0X3QpdmFs dWUgPDwgSUFWRl9UWERfREFUQV9RVzFfVFhfQlVGX1NaX1NISUZUKSAmCisJCQlJQVZGX1RYRF9E QVRBX1FXMV9UWF9CVUZfU1pfTUFTSyk7CiAJfQogCi0JaGRyX2xlbiA9IHR4X29mZmxvYWQubDJf bGVuICsKLQkJICB0eF9vZmZsb2FkLmwzX2xlbiArCi0JCSAgdHhfb2ZmbG9hZC5sNF9sZW47Citz dGF0aWMgaW5saW5lIHZvaWQKK2lhdmZfZmlsbF9kYXRhX2Rlc2Modm9sYXRpbGUgc3RydWN0IGlh dmZfdHhfZGVzYyAqZGVzYywKKwlzdHJ1Y3QgcnRlX21idWYgKm0sIHVpbnQ2NF90IGRlc2NfdGVt cGxhdGUsCisJdWludDE2X3QgdGxlbiwgdWludDE2X3QgaXBzZWNsZW4pCit7CisJdWludDMyX3Qg aGRybGVuID0gbS0+bDJfbGVuOworCXVpbnQzMl90IGJ1ZnN6ID0gMDsKIAotCWNkX2NtZCA9IElB VkZfVFhfQ1RYX0RFU0NfVFNPOwotCWNkX3Rzb19sZW4gPSBtYnVmLT5wa3RfbGVuIC0gaGRyX2xl bjsKLQljdHhfZGVzYyB8PSAoKHVpbnQ2NF90KWNkX2NtZCA8PCBJQVZGX1RYRF9DVFhfUVcxX0NN RF9TSElGVCkgfAotCQkgICAgICgodWludDY0X3QpY2RfdHNvX2xlbiA8PCBJQVZGX1RYRF9DVFhf UVcxX1RTT19MRU5fU0hJRlQpIHwKLQkJICAgICAoKHVpbnQ2NF90KW1idWYtPnRzb19zZWdzeiA8 PCBJQVZGX1RYRF9DVFhfUVcxX01TU19TSElGVCk7CisJLyogZmlsbCBkYXRhIGRlc2NyaXB0b3Ig cXcxIGZyb20gdGVtcGxhdGUgKi8KKwlkZXNjLT5jbWRfdHlwZV9vZmZzZXRfYnN6ID0gZGVzY190 ZW1wbGF0ZTsKIAotCXJldHVybiBjdHhfZGVzYzsKLX0KKwkvKiBzZXQgZGF0YSBidWZmZXIgYWRk cmVzcyAqLworCWRlc2MtPmJ1ZmZlcl9hZGRyID0gcnRlX21idWZfZGF0YV9pb3ZhKG0pOwogCi0v KiBDb25zdHJ1Y3QgdGhlIHR4IGZsYWdzICovCi1zdGF0aWMgaW5saW5lIHVpbnQ2NF90Ci1pYXZm X2J1aWxkX2N0b2IodWludDMyX3QgdGRfY21kLCB1aW50MzJfdCB0ZF9vZmZzZXQsIHVuc2lnbmVk IGludCBzaXplLAotCSAgICAgICB1aW50MzJfdCB0ZF90YWcpCi17Ci0JcmV0dXJuIHJ0ZV9jcHVf dG9fbGVfNjQoSUFWRl9UWF9ERVNDX0RUWVBFX0RBVEEgfAotCQkJCSgodWludDY0X3QpdGRfY21k ICA8PCBJQVZGX1RYRF9RVzFfQ01EX1NISUZUKSB8Ci0JCQkJKCh1aW50NjRfdCl0ZF9vZmZzZXQg PDwKLQkJCQkgSUFWRl9UWERfUVcxX09GRlNFVF9TSElGVCkgfAotCQkJCSgodWludDY0X3Qpc2l6 ZSAgPDwKLQkJCQkgSUFWRl9UWERfUVcxX1RYX0JVRl9TWl9TSElGVCkgfAotCQkJCSgodWludDY0 X3QpdGRfdGFnICA8PAotCQkJCSBJQVZGX1RYRF9RVzFfTDJUQUcxX1NISUZUKSk7CisJLyogY2Fs Y3VsYXRlIGRhdGEgYnVmZmVyIHNpemUgbGVzcyBzZXQgaGVhZGVyIGxlbmd0aHMgKi8KKwlpZiAo KG0tPm9sX2ZsYWdzICYgUEtUX1RYX1RVTk5FTF9NQVNLKSAmJgorCQkJKG0tPm9sX2ZsYWdzICYg KFBLVF9UWF9UQ1BfU0VHIHwgUEtUX1RYX1VEUF9TRUcpKSkgeworCQloZHJsZW4gKz0gbS0+b3V0 ZXJfbDNfbGVuOworCQlpZiAobS0+b2xfZmxhZ3MgJiBQS1RfVFhfTDRfTUFTSykKKwkJCWhkcmxl biArPSBtLT5sM19sZW4gKyBtLT5sNF9sZW47CisJCWVsc2UKKwkJCWhkcmxlbiArPSBtLT5sM19s ZW47CisJCWlmIChtLT5vbF9mbGFncyAmIFBLVF9UWF9TRUNfT0ZGTE9BRCkKKwkJCWhkcmxlbiAr PSBpcHNlY2xlbjsKKwkJYnVmc3ogPSBoZHJsZW4gKyB0bGVuOworCX0gZWxzZSB7CisJCWJ1ZnN6 ID0gbS0+ZGF0YV9sZW47CisJfQorCisJLyogc2V0IGRhdGEgYnVmZmVyIHNpemUgKi8KKwlkZXNj LT5jbWRfdHlwZV9vZmZzZXRfYnN6IHw9CisJCSgoKHVpbnQ2NF90KWJ1ZnN6IDw8IElBVkZfVFhE X0RBVEFfUVcxX1RYX0JVRl9TWl9TSElGVCkgJgorCQlJQVZGX1RYRF9EQVRBX1FXMV9UWF9CVUZf U1pfTUFTSyk7CisKKwlkZXNjLT5idWZmZXJfYWRkciA9IHJ0ZV9jcHVfdG9fbGVfNjQoZGVzYy0+ YnVmZmVyX2FkZHIpOworCWRlc2MtPmNtZF90eXBlX29mZnNldF9ic3ogPSBydGVfY3B1X3RvX2xl XzY0KGRlc2MtPmNtZF90eXBlX29mZnNldF9ic3opOwogfQogCisKIC8qIFRYIGZ1bmN0aW9uICov CiB1aW50MTZfdAogaWF2Zl94bWl0X3BrdHModm9pZCAqdHhfcXVldWUsIHN0cnVjdCBydGVfbWJ1 ZiAqKnR4X3BrdHMsIHVpbnQxNl90IG5iX3BrdHMpCiB7Ci0Jdm9sYXRpbGUgc3RydWN0IGlhdmZf dHhfZGVzYyAqdHhkOwotCXZvbGF0aWxlIHN0cnVjdCBpYXZmX3R4X2Rlc2MgKnR4cjsKLQlzdHJ1 Y3QgaWF2Zl90eF9xdWV1ZSAqdHhxOwotCXN0cnVjdCBpYXZmX3R4X2VudHJ5ICpzd19yaW5nOwor CXN0cnVjdCBpYXZmX3R4X3F1ZXVlICp0eHEgPSB0eF9xdWV1ZTsKKwl2b2xhdGlsZSBzdHJ1Y3Qg aWF2Zl90eF9kZXNjICp0eHIgPSB0eHEtPnR4X3Jpbmc7CisJc3RydWN0IGlhdmZfdHhfZW50cnkg KnR4ZV9yaW5nID0gdHhxLT5zd19yaW5nOwogCXN0cnVjdCBpYXZmX3R4X2VudHJ5ICp0eGUsICp0 eG47Ci0Jc3RydWN0IHJ0ZV9tYnVmICp0eF9wa3Q7Ci0Jc3RydWN0IHJ0ZV9tYnVmICptX3NlZzsK LQl1aW50MTZfdCB0eF9pZDsKLQl1aW50MTZfdCBuYl90eDsKLQl1aW50MzJfdCB0ZF9jbWQ7Ci0J dWludDMyX3QgdGRfb2Zmc2V0OwotCXVpbnQzMl90IHRkX3RhZzsKLQl1aW50NjRfdCBvbF9mbGFn czsKLQl1aW50MTZfdCBuYl91c2VkOwotCXVpbnQxNl90IG5iX2N0eDsKLQl1aW50MTZfdCB0eF9s YXN0OwotCXVpbnQxNl90IHNsZW47Ci0JdWludDY0X3QgYnVmX2RtYV9hZGRyOwotCXVpbnQxNl90 IGNkX2wydGFnMiA9IDA7Ci0JdW5pb24gaWF2Zl90eF9vZmZsb2FkIHR4X29mZmxvYWQgPSB7MH07 Ci0KLQl0eHEgPSB0eF9xdWV1ZTsKLQlzd19yaW5nID0gdHhxLT5zd19yaW5nOwotCXR4ciA9IHR4 cS0+dHhfcmluZzsKLQl0eF9pZCA9IHR4cS0+dHhfdGFpbDsKLQl0eGUgPSAmc3dfcmluZ1t0eF9p ZF07CisJc3RydWN0IHJ0ZV9tYnVmICptYiwgKm1iX3NlZzsKKwl1aW50MTZfdCBkZXNjX2lkeCwg ZGVzY19pZHhfbGFzdDsKKwl1aW50MTZfdCBpZHg7CisKIAogCS8qIENoZWNrIGlmIHRoZSBkZXNj cmlwdG9yIHJpbmcgbmVlZHMgdG8gYmUgY2xlYW5lZC4gKi8KIAlpZiAodHhxLT5uYl9mcmVlIDwg dHhxLT5mcmVlX3RocmVzaCkKLQkJKHZvaWQpaWF2Zl94bWl0X2NsZWFudXAodHhxKTsKKwkJaWF2 Zl94bWl0X2NsZWFudXAodHhxKTsKKworCWRlc2NfaWR4ID0gdHhxLT50eF90YWlsOworCXR4ZSA9 ICZ0eGVfcmluZ1tkZXNjX2lkeF07CisKKyNpZmRlZiBSVEVfTElCUlRFX0lBVkZfREVCVUdfVFhf REVTQ19SSU5HCisJCWlhdmZfZHVtcF90eF9lbnRyeV9yaW5nKHR4cSk7CisJCWlhdmZfZHVtcF90 eF9kZXNjX3JpbmcodHhxKTsKKyNlbmRpZgorCiAKLQlmb3IgKG5iX3R4ID0gMDsgbmJfdHggPCBu Yl9wa3RzOyBuYl90eCsrKSB7Ci0JCXRkX2NtZCA9IDA7Ci0JCXRkX3RhZyA9IDA7Ci0JCXRkX29m ZnNldCA9IDA7CisJZm9yIChpZHggPSAwOyBpZHggPCBuYl9wa3RzOyBpZHgrKykgeworCQl2b2xh dGlsZSBzdHJ1Y3QgaWF2Zl90eF9kZXNjICpkZGVzYzsKKwkJdWludDE2X3QgbmJfZGVzY19jdHg7 CisJCXVpbnQxNl90IG5iX2Rlc2NfZGF0YSwgbmJfZGVzY19yZXF1aXJlZDsKKwkJdWludDE2X3Qg dGxlbiA9IDAsIGlwc2VjbGVuID0gMDsKKwkJdWludDY0X3QgZGRlc2NfdGVtcGxhdGUgPSAwOwor CQl1aW50NjRfdCBkZGVzY19jbWQgPSAwOworCisJCW1iID0gdHhfcGt0c1tpZHhdOwogCi0JCXR4 X3BrdCA9ICp0eF9wa3RzKys7CiAJCVJURV9NQlVGX1BSRUZFVENIX1RPX0ZSRUUodHhlLT5tYnVm KTsKIAotCQlvbF9mbGFncyA9IHR4X3BrdC0+b2xfZmxhZ3M7Ci0JCXR4X29mZmxvYWQubDJfbGVu ID0gdHhfcGt0LT5sMl9sZW47Ci0JCXR4X29mZmxvYWQubDNfbGVuID0gdHhfcGt0LT5sM19sZW47 Ci0JCXR4X29mZmxvYWQubDRfbGVuID0gdHhfcGt0LT5sNF9sZW47Ci0JCXR4X29mZmxvYWQudHNv X3NlZ3N6ID0gdHhfcGt0LT50c29fc2Vnc3o7Ci0JCS8qIENhbGN1bGF0ZSB0aGUgbnVtYmVyIG9m IGNvbnRleHQgZGVzY3JpcHRvcnMgbmVlZGVkLiAqLwotCQluYl9jdHggPSBpYXZmX2NhbGNfY29u dGV4dF9kZXNjKG9sX2ZsYWdzLCB0eHEtPnZsYW5fZmxhZyk7CisJCW5iX2Rlc2NfZGF0YSA9IG1i LT5uYl9zZWdzOworCQluYl9kZXNjX2N0eCA9ICEhKG1iLT5vbF9mbGFncyAmCisJCQkoUEtUX1RY X1RDUF9TRUcgfCBQS1RfVFhfVURQX1NFRyB8IFBLVF9UWF9UVU5ORUxfTUFTSykpOwogCi0JCS8q IFRoZSBudW1iZXIgb2YgZGVzY3JpcHRvcnMgdGhhdCBtdXN0IGJlIGFsbG9jYXRlZCBmb3IKKwkJ LyoqCisJCSAqIFRoZSBudW1iZXIgb2YgZGVzY3JpcHRvcnMgdGhhdCBtdXN0IGJlIGFsbG9jYXRl ZCBmb3IKIAkJICogYSBwYWNrZXQgZXF1YWxzIHRvIHRoZSBudW1iZXIgb2YgdGhlIHNlZ21lbnRz IG9mIHRoYXQKLQkJICogcGFja2V0IHBsdXMgMSBjb250ZXh0IGRlc2NyaXB0b3IgaWYgbmVlZGVk LgorCQkgKiBwYWNrZXQgcGx1cyB0aGUgY29udGV4dCBhbmQgaXBzZWMgZGVzY3JpcHRvcnMgaWYg bmVlZGVkLgogCQkgKi8KLQkJbmJfdXNlZCA9ICh1aW50MTZfdCkodHhfcGt0LT5uYl9zZWdzICsg bmJfY3R4KTsKLQkJdHhfbGFzdCA9ICh1aW50MTZfdCkodHhfaWQgKyBuYl91c2VkIC0gMSk7CisJ CW5iX2Rlc2NfcmVxdWlyZWQgPSBuYl9kZXNjX2RhdGEgKyBuYl9kZXNjX2N0eDsKKworCQlkZXNj X2lkeF9sYXN0ID0gKHVpbnQxNl90KShkZXNjX2lkeCArIG5iX2Rlc2NfcmVxdWlyZWQgLSAxKTsK IAotCQkvKiBDaXJjdWxhciByaW5nICovCi0JCWlmICh0eF9sYXN0ID49IHR4cS0+bmJfdHhfZGVz YykKLQkJCXR4X2xhc3QgPSAodWludDE2X3QpKHR4X2xhc3QgLSB0eHEtPm5iX3R4X2Rlc2MpOwor CQkvKiB3cmFwIGRlc2NyaXB0b3IgcmluZyAqLworCQlpZiAoZGVzY19pZHhfbGFzdCA+PSB0eHEt Pm5iX3R4X2Rlc2MpCisJCQlkZXNjX2lkeF9sYXN0ID0KKwkJCQkodWludDE2X3QpKGRlc2NfaWR4 X2xhc3QgLSB0eHEtPm5iX3R4X2Rlc2MpOwogCi0JCVBNRF9UWF9MT0coREVCVUcsICJwb3J0X2lk PSV1IHF1ZXVlX2lkPSV1IgotCQkJICAgIiB0eF9maXJzdD0ldSB0eF9sYXN0PSV1IiwKLQkJCSAg IHR4cS0+cG9ydF9pZCwgdHhxLT5xdWV1ZV9pZCwgdHhfaWQsIHR4X2xhc3QpOworCQlQTURfVFhf TE9HKERFQlVHLAorCQkJInBvcnRfaWQ9JXUgcXVldWVfaWQ9JXUgdHhfZmlyc3Q9JXUgdHhfbGFz dD0ldSIsCisJCQl0eHEtPnBvcnRfaWQsIHR4cS0+cXVldWVfaWQsIGRlc2NfaWR4LCBkZXNjX2lk eF9sYXN0KTsKIAotCQlpZiAobmJfdXNlZCA+IHR4cS0+bmJfZnJlZSkgeworCQlpZiAobmJfZGVz Y19yZXF1aXJlZCA+IHR4cS0+bmJfZnJlZSkgewogCQkJaWYgKGlhdmZfeG1pdF9jbGVhbnVwKHR4 cSkpIHsKLQkJCQlpZiAobmJfdHggPT0gMCkKKwkJCQlpZiAoaWR4ID09IDApCiAJCQkJCXJldHVy biAwOwogCQkJCWdvdG8gZW5kX29mX3R4OwogCQkJfQotCQkJaWYgKHVubGlrZWx5KG5iX3VzZWQg PiB0eHEtPnJzX3RocmVzaCkpIHsKLQkJCQl3aGlsZSAobmJfdXNlZCA+IHR4cS0+bmJfZnJlZSkg eworCQkJaWYgKHVubGlrZWx5KG5iX2Rlc2NfcmVxdWlyZWQgPiB0eHEtPnJzX3RocmVzaCkpIHsK KwkJCQl3aGlsZSAobmJfZGVzY19yZXF1aXJlZCA+IHR4cS0+bmJfZnJlZSkgewogCQkJCQlpZiAo aWF2Zl94bWl0X2NsZWFudXAodHhxKSkgewotCQkJCQkJaWYgKG5iX3R4ID09IDApCisJCQkJCQlp ZiAoaWR4ID09IDApCiAJCQkJCQkJcmV0dXJuIDA7CiAJCQkJCQlnb3RvIGVuZF9vZl90eDsKIAkJ CQkJfQpAQCAtMjI1OSwxMjIgKzIzNzUsOTQgQEAgaWF2Zl94bWl0X3BrdHModm9pZCAqdHhfcXVl dWUsIHN0cnVjdCBydGVfbWJ1ZiAqKnR4X3BrdHMsIHVpbnQxNl90IG5iX3BrdHMpCiAJCQl9CiAJ CX0KIAotCQkvKiBEZXNjcmlwdG9yIGJhc2VkIFZMQU4gaW5zZXJ0aW9uICovCi0JCWlmIChvbF9m bGFncyAmIFBLVF9UWF9WTEFOX1BLVCAmJgotCQkgICAgdHhxLT52bGFuX2ZsYWcgJiBJQVZGX1RY X0ZMQUdTX1ZMQU5fVEFHX0xPQ19MMlRBRzEpIHsKLQkJCXRkX2NtZCB8PSBJQVZGX1RYX0RFU0Nf Q01EX0lMMlRBRzE7Ci0JCQl0ZF90YWcgPSB0eF9wa3QtPnZsYW5fdGNpOwotCQl9Ci0KLQkJLyog QWNjb3JkaW5nIHRvIGRhdGFzaGVldCwgdGhlIGJpdDIgaXMgcmVzZXJ2ZWQgYW5kIG11c3QgYmUK LQkJICogc2V0IHRvIDEuCi0JCSAqLwotCQl0ZF9jbWQgfD0gMHgwNDsKLQotCQkvKiBFbmFibGUg Y2hlY2tzdW0gb2ZmbG9hZGluZyAqLwotCQlpZiAob2xfZmxhZ3MgJiBJQVZGX1RYX0NLU1VNX09G RkxPQURfTUFTSykKLQkJCWlhdmZfdHhkX2VuYWJsZV9jaGVja3N1bShvbF9mbGFncywgJnRkX2Nt ZCwKLQkJCQkJCSZ0ZF9vZmZzZXQsIHR4X29mZmxvYWQpOworCQlpYXZmX2J1aWxkX2RhdGFfZGVz Y19jbWRfb2Zmc2V0X2ZpZWxkcygmZGRlc2NfdGVtcGxhdGUsIG1iKTsKIAotCQlpZiAobmJfY3R4 KSB7CiAJCQkvKiBTZXR1cCBUWCBjb250ZXh0IGRlc2NyaXB0b3IgaWYgcmVxdWlyZWQgKi8KLQkJ CXVpbnQ2NF90IGNkX3R5cGVfY21kX3Rzb19tc3MgPQotCQkJCUlBVkZfVFhfREVTQ19EVFlQRV9D T05URVhUOwotCQkJdm9sYXRpbGUgc3RydWN0IGlhdmZfdHhfY29udGV4dF9kZXNjICpjdHhfdHhk ID0KKwkJaWYgKG5iX2Rlc2NfY3R4KSB7CisJCQl2b2xhdGlsZSBzdHJ1Y3QgaWF2Zl90eF9jb250 ZXh0X2Rlc2MgKmN0eF9kZXNjID0KIAkJCQkodm9sYXRpbGUgc3RydWN0IGlhdmZfdHhfY29udGV4 dF9kZXNjICopCi0JCQkJCQkJJnR4clt0eF9pZF07CisJCQkJCSZ0eHJbZGVzY19pZHhdOwogCiAJ CQkvKiBjbGVhciBRVzAgb3IgdGhlIHByZXZpb3VzIHdyaXRlYmFjayB2YWx1ZQogCQkJICogbWF5 IGltcGFjdCBuZXh0IHdyaXRlCiAJCQkgKi8KLQkJCSoodm9sYXRpbGUgdWludDY0X3QgKiljdHhf dHhkID0gMDsKKwkJCSoodm9sYXRpbGUgdWludDY0X3QgKiljdHhfZGVzYyA9IDA7CiAKLQkJCXR4 biA9ICZzd19yaW5nW3R4ZS0+bmV4dF9pZF07CisJCQl0eG4gPSAmdHhlX3JpbmdbdHhlLT5uZXh0 X2lkXTsKIAkJCVJURV9NQlVGX1BSRUZFVENIX1RPX0ZSRUUodHhuLT5tYnVmKTsKKwogCQkJaWYg KHR4ZS0+bWJ1ZikgewogCQkJCXJ0ZV9wa3RtYnVmX2ZyZWVfc2VnKHR4ZS0+bWJ1Zik7CiAJCQkJ dHhlLT5tYnVmID0gTlVMTDsKIAkJCX0KIAotCQkJLyogVFNPIGVuYWJsZWQgKi8KLQkJCWlmIChv bF9mbGFncyAmIFBLVF9UWF9UQ1BfU0VHKQotCQkJCWNkX3R5cGVfY21kX3Rzb19tc3MgfD0KLQkJ CQkJaWF2Zl9zZXRfdHNvX2N0eCh0eF9wa3QsIHR4X29mZmxvYWQpOworCQkJaWF2Zl9maWxsX2Nv bnRleHRfZGVzYyhjdHhfZGVzYywgbWIsICZ0bGVuKTsKKwkJCUlBVkZfRFVNUF9UWF9ERVNDKHR4 cSwgY3R4X2Rlc2MsIGRlc2NfaWR4KTsKIAotCQkJaWYgKG9sX2ZsYWdzICYgUEtUX1RYX1ZMQU5f UEtUICYmCi0JCQkgICB0eHEtPnZsYW5fZmxhZyAmIElBVkZfVFhfRkxBR1NfVkxBTl9UQUdfTE9D X0wyVEFHMikgewotCQkJCWNkX3R5cGVfY21kX3Rzb19tc3MgfD0gSUFWRl9UWF9DVFhfREVTQ19J TDJUQUcyCi0JCQkJCTw8IElBVkZfVFhEX0NUWF9RVzFfQ01EX1NISUZUOwotCQkJCWNkX2wydGFn MiA9IHR4X3BrdC0+dmxhbl90Y2k7CisJCQl0eGUtPmxhc3RfaWQgPSBkZXNjX2lkeF9sYXN0Owor CQkJZGVzY19pZHggPSB0eGUtPm5leHRfaWQ7CisJCQl0eGUgPSB0eG47CiAJCQl9CiAKLQkJCWN0 eF90eGQtPnR5cGVfY21kX3Rzb19tc3MgPQotCQkJCXJ0ZV9jcHVfdG9fbGVfNjQoY2RfdHlwZV9j bWRfdHNvX21zcyk7Ci0JCQljdHhfdHhkLT5sMnRhZzIgPSBydGVfY3B1X3RvX2xlXzE2KGNkX2wy dGFnMik7CiAKLQkJCUlBVkZfRFVNUF9UWF9ERVNDKHR4cSwgJnR4clt0eF9pZF0sIHR4X2lkKTsK LQkJCXR4ZS0+bGFzdF9pZCA9IHR4X2xhc3Q7Ci0JCQl0eF9pZCA9IHR4ZS0+bmV4dF9pZDsKLQkJ CXR4ZSA9IHR4bjsKLQkJfQogCi0JCW1fc2VnID0gdHhfcGt0OworCQltYl9zZWcgPSBtYjsKKwog CQlkbyB7Ci0JCQl0eGQgPSAmdHhyW3R4X2lkXTsKLQkJCXR4biA9ICZzd19yaW5nW3R4ZS0+bmV4 dF9pZF07CisJCQlkZGVzYyA9ICh2b2xhdGlsZSBzdHJ1Y3QgaWF2Zl90eF9kZXNjICopCisJCQkJ CSZ0eHJbZGVzY19pZHhdOworCisJCQl0eG4gPSAmdHhlX3JpbmdbdHhlLT5uZXh0X2lkXTsKKwkJ CVJURV9NQlVGX1BSRUZFVENIX1RPX0ZSRUUodHhuLT5tYnVmKTsKIAogCQkJaWYgKHR4ZS0+bWJ1 ZikKIAkJCQlydGVfcGt0bWJ1Zl9mcmVlX3NlZyh0eGUtPm1idWYpOwotCQkJdHhlLT5tYnVmID0g bV9zZWc7Ci0KLQkJCS8qIFNldHVwIFRYIERlc2NyaXB0b3IgKi8KLQkJCXNsZW4gPSBtX3NlZy0+ ZGF0YV9sZW47Ci0JCQlidWZfZG1hX2FkZHIgPSBydGVfbWJ1Zl9kYXRhX2lvdmEobV9zZWcpOwot CQkJdHhkLT5idWZmZXJfYWRkciA9IHJ0ZV9jcHVfdG9fbGVfNjQoYnVmX2RtYV9hZGRyKTsKLQkJ CXR4ZC0+Y21kX3R5cGVfb2Zmc2V0X2JzeiA9IGlhdmZfYnVpbGRfY3RvYih0ZF9jbWQsCi0JCQkJ CQkJCSAgdGRfb2Zmc2V0LAotCQkJCQkJCQkgIHNsZW4sCi0JCQkJCQkJCSAgdGRfdGFnKTsKLQot CQkJSUFWRl9EVU1QX1RYX0RFU0ModHhxLCB0eGQsIHR4X2lkKTsKLQkJCXR4ZS0+bGFzdF9pZCA9 IHR4X2xhc3Q7Ci0JCQl0eF9pZCA9IHR4ZS0+bmV4dF9pZDsKKworCQkJdHhlLT5tYnVmID0gbWJf c2VnOworCQkJaWF2Zl9maWxsX2RhdGFfZGVzYyhkZGVzYywgbWJfc2VnLAorCQkJCQlkZGVzY190 ZW1wbGF0ZSwgdGxlbiwgaXBzZWNsZW4pOworCisJCQlJQVZGX0RVTVBfVFhfREVTQyh0eHEsIGRk ZXNjLCBkZXNjX2lkeCk7CisKKwkJCXR4ZS0+bGFzdF9pZCA9IGRlc2NfaWR4X2xhc3Q7CisJCQlk ZXNjX2lkeCA9IHR4ZS0+bmV4dF9pZDsKIAkJCXR4ZSA9IHR4bjsKLQkJCW1fc2VnID0gbV9zZWct Pm5leHQ7Ci0JCX0gd2hpbGUgKG1fc2VnKTsKKwkJCW1iX3NlZyA9IG1iX3NlZy0+bmV4dDsKKwkJ fSB3aGlsZSAobWJfc2VnKTsKIAogCQkvKiBUaGUgbGFzdCBwYWNrZXQgZGF0YSBkZXNjcmlwdG9y IG5lZWRzIEVuZCBPZiBQYWNrZXQgKEVPUCkgKi8KLQkJdGRfY21kIHw9IElBVkZfVFhfREVTQ19D TURfRU9QOwotCQl0eHEtPm5iX3VzZWQgPSAodWludDE2X3QpKHR4cS0+bmJfdXNlZCArIG5iX3Vz ZWQpOwotCQl0eHEtPm5iX2ZyZWUgPSAodWludDE2X3QpKHR4cS0+bmJfZnJlZSAtIG5iX3VzZWQp OworCQlkZGVzY19jbWQgPSBJQVZGX1RYX0RFU0NfQ01EX0VPUDsKKworCQl0eHEtPm5iX3VzZWQg PSAodWludDE2X3QpKHR4cS0+bmJfdXNlZCArIG5iX2Rlc2NfcmVxdWlyZWQpOworCQl0eHEtPm5i X2ZyZWUgPSAodWludDE2X3QpKHR4cS0+bmJfZnJlZSAtIG5iX2Rlc2NfcmVxdWlyZWQpOwogCiAJ CWlmICh0eHEtPm5iX3VzZWQgPj0gdHhxLT5yc190aHJlc2gpIHsKIAkJCVBNRF9UWF9MT0coREVC VUcsICJTZXR0aW5nIFJTIGJpdCBvbiBUWEQgaWQ9IgogCQkJCSAgICIlNHUgKHBvcnQ9JWQgcXVl dWU9JWQpIiwKLQkJCQkgICB0eF9sYXN0LCB0eHEtPnBvcnRfaWQsIHR4cS0+cXVldWVfaWQpOwor CQkJCSAgIGRlc2NfaWR4X2xhc3QsIHR4cS0+cG9ydF9pZCwgdHhxLT5xdWV1ZV9pZCk7CiAKLQkJ CXRkX2NtZCB8PSBJQVZGX1RYX0RFU0NfQ01EX1JTOworCQkJZGRlc2NfY21kIHw9IElBVkZfVFhf REVTQ19DTURfUlM7CiAKIAkJCS8qIFVwZGF0ZSB0eHEgUlMgYml0IGNvdW50ZXJzICovCiAJCQl0 eHEtPm5iX3VzZWQgPSAwOwogCQl9CiAKLQkJdHhkLT5jbWRfdHlwZV9vZmZzZXRfYnN6IHw9Ci0J CQlydGVfY3B1X3RvX2xlXzY0KCgodWludDY0X3QpdGRfY21kKSA8PAotCQkJCQkgSUFWRl9UWERf UVcxX0NNRF9TSElGVCk7Ci0JCUlBVkZfRFVNUF9UWF9ERVNDKHR4cSwgdHhkLCB0eF9pZCk7CisJ CWRkZXNjLT5jbWRfdHlwZV9vZmZzZXRfYnN6IHw9IHJ0ZV9jcHVfdG9fbGVfNjQoZGRlc2NfY21k IDw8CisJCQkJSUFWRl9UWERfREFUQV9RVzFfQ01EX1NISUZUKTsKKworCQlJQVZGX0RVTVBfVFhf REVTQyh0eHEsIGRkZXNjLCBkZXNjX2lkeCAtIDEpOwogCX0KIAogZW5kX29mX3R4OgogCXJ0ZV93 bWIoKTsKIAogCVBNRF9UWF9MT0coREVCVUcsICJwb3J0X2lkPSV1IHF1ZXVlX2lkPSV1IHR4X3Rh aWw9JXUgbmJfdHg9JXUiLAotCQkgICB0eHEtPnBvcnRfaWQsIHR4cS0+cXVldWVfaWQsIHR4X2lk LCBuYl90eCk7CisJCSAgIHR4cS0+cG9ydF9pZCwgdHhxLT5xdWV1ZV9pZCwgZGVzY19pZHgsIGlk eCk7CiAKLQlJQVZGX1BDSV9SRUdfV0NfV1JJVEVfUkVMQVhFRCh0eHEtPnF0eF90YWlsLCB0eF9p ZCk7Ci0JdHhxLT50eF90YWlsID0gdHhfaWQ7CisJSUFWRl9QQ0lfUkVHX1dSSVRFX1JFTEFYRUQo dHhxLT5xdHhfdGFpbCwgZGVzY19pZHgpOworCXR4cS0+dHhfdGFpbCA9IGRlc2NfaWR4OwogCi0J cmV0dXJuIG5iX3R4OworCXJldHVybiBpZHg7CiB9CiAKIC8qIENoZWNrIGlmIHRoZSBwYWNrZXQg d2l0aCB2bGFuIHVzZXIgcHJpb3JpdHkgaXMgdHJhbnNtaXR0ZWQgaW4gdGhlCkNoZWNraW5nIHBh dGNoIGRyaXZlcnMvbmV0L2lhdmYvaWF2Zi5oLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0 L2lhdmYvaWF2Zl92Y2hubC5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCSAqIGJl Zm9yZSBpYXZmX3JlYWRfbXNnX2Zyb21fcGYuCgkJICovCgkJcnRlX2ludHJfZGlzYWJsZSgmcGNp X2Rldi0+aW50cl9oYW5kbGUpOwoJCWVyciA9IGlhdmZfZXhlY3V0ZV92Zl9jbWQoYWRhcHRlciwg JmFyZ3MpOwoJCXJ0ZV9pbnRyX2VuYWJsZSgmcGNpX2Rldi0+aW50cl9oYW5kbGUpOwoJfSBlbHNl IHsKCQlydGVfZWFsX2FsYXJtX2NhbmNlbChpYXZmX2Rldl9hbGFybV9oYW5kbGVyLCBkZXYpOwoJ CWVyciA9IGlhdmZfZXhlY3V0ZV92Zl9jbWQoYWRhcHRlciwgJmFyZ3MpOwoJCXJ0ZV9lYWxfYWxh cm1fc2V0KElBVkZfQUxBUk1fSU5URVJWQUwsCgkJCQkgIGlhdmZfZGV2X2FsYXJtX2hhbmRsZXIs IGRldik7Cgl9CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9pYXZmL2lhdmZfdmNo bmwuYzoxNjg2CkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaWF2Zi9pYXZmLmggY2xlYW5seS4K QXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaWF2Zi9pYXZmX3ZjaG5sLmMgd2l0aCAxIHJlamVj dC4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNSBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM3IGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjOCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzkgYXBwbGllZCBjbGVhbmx5 LgpIdW5rICMxMCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzExIGFwcGxpZWQgY2xlYW5seS4KSHVu ayAjMTIgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzE0 IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTUgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxNiBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzE3IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMTggYXBwbGllZCBj bGVhbmx5LgpIdW5rICMxOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIwIGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjMjEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyMiBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzIzIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMy NSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzI2IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMjcgYXBw bGllZCBjbGVhbmx5LgpIdW5rICMyOCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzI5IGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjMzAgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzMSBhcHBsaWVkIGNsZWFu bHkuCkh1bmsgIzMyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMzMgYXBwbGllZCBjbGVhbmx5LgpI dW5rICMzNCBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAj MzYgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMzNyBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzM4IGFw cGxpZWQgY2xlYW5seS4KSHVuayAjMzkgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICM0 MC4KSHVuayAjNDEgYXBwbGllZCBjbGVhbmx5LgpkaWZmIGEvZHJpdmVycy9uZXQvaWF2Zi9pYXZm X3ZjaG5sLmMgYi9kcml2ZXJzL25ldC9pYXZmL2lhdmZfdmNobmwuYwkocmVqZWN0ZWQgaHVua3Mp CkBAIC0xNjg2LDExICsxNzE4LDExIEBAIGlhdmZfcmVxdWVzdF9xdWV1ZXMoc3RydWN0IHJ0ZV9l dGhfZGV2ICpkZXYsIHVpbnQxNl90IG51bSkKIAkJICogYmVmb3JlIGlhdmZfcmVhZF9tc2dfZnJv bV9wZi4KIAkJICovCiAJCXJ0ZV9pbnRyX2Rpc2FibGUoJnBjaV9kZXYtPmludHJfaGFuZGxlKTsK LQkJZXJyID0gaWF2Zl9leGVjdXRlX3ZmX2NtZChhZGFwdGVyLCAmYXJncyk7CisJCWVyciA9IGlh dmZfZXhlY3V0ZV92Zl9jbWQoYWRhcHRlciwgJmFyZ3MsIDApOwogCQlydGVfaW50cl9lbmFibGUo JnBjaV9kZXYtPmludHJfaGFuZGxlKTsKIAl9IGVsc2UgewogCQlydGVfZWFsX2FsYXJtX2NhbmNl bChpYXZmX2Rldl9hbGFybV9oYW5kbGVyLCBkZXYpOwotCQllcnIgPSBpYXZmX2V4ZWN1dGVfdmZf Y21kKGFkYXB0ZXIsICZhcmdzKTsKKwkJZXJyID0gaWF2Zl9leGVjdXRlX3ZmX2NtZChhZGFwdGVy LCAmYXJncywgMCk7CiAJCXJ0ZV9lYWxfYWxhcm1fc2V0KElBVkZfQUxBUk1fSU5URVJWQUwsCiAJ CQkJICBpYXZmX2Rldl9hbGFybV9oYW5kbGVyLCBkZXYpOwogCX0KQ2hlY2tpbmcgcGF0Y2ggZHJp dmVycy9uZXQvaWF2Zi9pYXZmLmguLi4KZXJyb3I6IGRyaXZlcnMvbmV0L2lhdmYvaWF2Zi5oOiBk b2VzIG5vdCBtYXRjaCBpbmRleApDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pYXZmL2lhdmZf ZXRoZGV2LmMuLi4KSHVuayAjMyBzdWNjZWVkZWQgYXQgOTI4IChvZmZzZXQgLTIgbGluZXMpLgpI dW5rICM0IHN1Y2NlZWRlZCBhdCA5NDAgKG9mZnNldCAtMiBsaW5lcykuCkh1bmsgIzUgc3VjY2Vl ZGVkIGF0IDk4NCAob2Zmc2V0IC0yIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQv aWF2Zi9pYXZmX2dlbmVyaWNfZmxvdy5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2lh dmYvaWF2Zl9nZW5lcmljX2Zsb3cuaC4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pYXZm L2lhdmZfaXBzZWNfY3J5cHRvLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaWF2Zi9p YXZmX2lwc2VjX2NyeXB0by5oLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2lhdmYvaWF2 Zl9pcHNlY19jcnlwdG9fY2FwYWJpbGl0aWVzLmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvaWF2Zi9pYXZmX3J4dHguYy4uLgplcnJvcjogZHJpdmVycy9uZXQvaWF2Zi9pYXZmX3J4dHgu YzogZG9lcyBub3QgbWF0Y2ggaW5kZXgKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaWF2Zi9p YXZmX3J4dHguaC4uLgplcnJvcjogZHJpdmVycy9uZXQvaWF2Zi9pYXZmX3J4dHguaDogZG9lcyBu b3QgbWF0Y2ggaW5kZXgKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaWF2Zi9pYXZmX3ZjaG5s LmMuLi4KZXJyb3I6IGRyaXZlcnMvbmV0L2lhdmYvaWF2Zl92Y2hubC5jOiBkb2VzIG5vdCBtYXRj aCBpbmRleApDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pYXZmL21lc29uLmJ1aWxkLi4uCkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2lhdmYvcnRlX3BtZF9pYXZmLmguLi4KQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvaWF2Zi92ZXJzaW9uLm1hcC4uLgpBcHBsaWVkIHBhdGNoIGRyaXZl cnMvbmV0L2lhdmYvaWF2Zl9ldGhkZXYuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMv bmV0L2lhdmYvaWF2Zl9nZW5lcmljX2Zsb3cuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZl cnMvbmV0L2lhdmYvaWF2Zl9nZW5lcmljX2Zsb3cuaCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRy aXZlcnMvbmV0L2lhdmYvaWF2Zl9pcHNlY19jcnlwdG8uYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNo IGRyaXZlcnMvbmV0L2lhdmYvaWF2Zl9pcHNlY19jcnlwdG8uaCBjbGVhbmx5LgpBcHBsaWVkIHBh dGNoIGRyaXZlcnMvbmV0L2lhdmYvaWF2Zl9pcHNlY19jcnlwdG9fY2FwYWJpbGl0aWVzLmggY2xl YW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9pYXZmL21lc29uLmJ1aWxkIGNsZWFubHku CkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaWF2Zi9ydGVfcG1kX2lhdmYuaCBjbGVhbmx5LgpB cHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2lhdmYvdmVyc2lvbi5tYXAgY2xlYW5seS4KQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9uZXQvaWF2Zi9pYXZmLmguLi4KZXJyb3I6IGRyaXZlcnMvbmV0L2lh dmYvaWF2Zi5oOiBkb2VzIG5vdCBtYXRjaCBpbmRleApDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC9pYXZmL2lhdmZfZXRoZGV2LmMuLi4KZXJyb3I6IGRyaXZlcnMvbmV0L2lhdmYvaWF2Zl9ldGhk ZXYuYzogZG9lcyBub3QgbWF0Y2ggaW5kZXgKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaWF2 Zi9pYXZmX3J4dHguaC4uLgplcnJvcjogZHJpdmVycy9uZXQvaWF2Zi9pYXZmX3J4dHguaDogZG9l cyBub3QgbWF0Y2ggaW5kZXgKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaWF2Zi9pYXZmLmgu Li4KZXJyb3I6IGRyaXZlcnMvbmV0L2lhdmYvaWF2Zi5oOiBkb2VzIG5vdCBtYXRjaCBpbmRleApD aGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pYXZmL2lhdmZfZXRoZGV2LmMuLi4KZXJyb3I6IGRy aXZlcnMvbmV0L2lhdmYvaWF2Zl9ldGhkZXYuYzogZG9lcyBub3QgbWF0Y2ggaW5kZXgKCmh0dHBz Oi8vbGFiLmRwZGsub3JnL3Jlc3VsdHMvZGFzaGJvYXJkL3BhdGNoc2V0cy8xOTcyNS8KClVOSC1J T0wgRFBESyBDb21tdW5pdHkgTGFiCg== --===============4101264629878887654==--