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 C26F5A054A for ; Tue, 25 Oct 2022 11:22:06 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B69BF42BCC; Tue, 25 Oct 2022 11:22:06 +0200 (CEST) Received: from mail-il1-f228.google.com (mail-il1-f228.google.com [209.85.166.228]) by mails.dpdk.org (Postfix) with ESMTP id A0D1041143 for ; Tue, 25 Oct 2022 11:22:05 +0200 (CEST) Received: by mail-il1-f228.google.com with SMTP id e19so3830944ili.4 for ; Tue, 25 Oct 2022 02:22:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iol.unh.edu; s=unh-iol; h=date:message-id:cc:to:from:subject:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=xQOoi1byo3lQvpe7PyQTVj9kQAefjq+Jcc5Xw+4B4n8=; b=a06Y+RdeMq8Gzx2UEfExvI5/MDchpIJOTaa9afKCwgaPJjWah3OFxww2hAgoS0Fyxn HMxJJ87ATI7xSgrEbkuu5tO3BcDPY/ueumYVh4/s/2XkdbBq2cWudLhP5h1zChR2/bCd CswWJ4lw5/AdIC8i1QohIClzlVVOZPoeW31Iw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=date:message-id:cc:to:from:subject:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=xQOoi1byo3lQvpe7PyQTVj9kQAefjq+Jcc5Xw+4B4n8=; b=CUabryW0pjuKCBSHjxMRMFYw/kYjn//rI2MhzoxozdaipUmITJ2EZJl2rdmefmouh9 6yruY5+M7vHwO0ywXf6kcDEwyBUJivP+hRr+2aF5XhjJS1lCrWwMz2esNQSGh+abfEKj sL9KeN42amDkjqZAteMOircunPCHalEY2t9tle269SoU6lt5gmUAlLTetKVaR3j1pVsK qpBun424IHv3LGnD37WyBVfVkIL5FySRZje6UuC1CkyS4RzAOd5pflv2JsyEvWVbE97k uUn4KGJpgV1uJ7EKXt/lbc2MmEmniBPtv5o6ST3gnbRlbT6mp3YVIkXjH2tqR73cxSXz cBiw== X-Gm-Message-State: ACrzQf0A2TwgrgGQ3g+rtTYCmEaTYkdvk51HlyjVNsEXehzqAeoQfCk6 RtDksTfyvC45mUeIZoB/eQVQySQUGA3SPKG3buS77WkY7sZH0w== X-Google-Smtp-Source: AMsMyM6WBBBLgZJ8KDclaIHLVmjmBcvEEfPR/si/FrKxgIVPIsbkuK6Lr/863u/f9BZ8fSIi8tElcliHNYSm X-Received: by 2002:a92:607:0:b0:2ff:f117:25e with SMTP id x7-20020a920607000000b002fff117025emr5229938ilg.55.1666689724924; Tue, 25 Oct 2022 02:22:04 -0700 (PDT) Received: from postal.iol.unh.edu (postal.iol.unh.edu. [132.177.123.84]) by smtp-relay.gmail.com with ESMTPS id g22-20020a05663811d600b003750bc02b8asm22019jas.4.2022.10.25.02.22.03 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 25 Oct 2022 02:22:04 -0700 (PDT) X-Relaying-Domain: iol.unh.edu Received: from noxus.dpdklab.iol.unh.edu (unknown [IPv6:2606:4100:3880:1722::4]) by postal.iol.unh.edu (Postfix) with ESMTP id 4C4D960524E4; Tue, 25 Oct 2022 05:22:00 -0400 (EDT) Received: from noxus.dpdklab.iol.unh.edu (localhost [IPv6:::1]) by noxus.dpdklab.iol.unh.edu (Postfix) with ESMTP id 2802AB370; Tue, 25 Oct 2022 05:22:00 -0400 (EDT) Content-Type: multipart/mixed; boundary="===============0503977757512399669==" MIME-Version: 1.0 Subject: |WARNING| pw119056-119081 [PATCH] [v3, 26/26] net/nfp: support new solution for tunnel decap action From: dpdklab@iol.unh.edu To: test-report@dpdk.org Cc: dpdk-test-reports@iol.unh.edu Message-Id: <20221025092200.2802AB370@noxus.dpdklab.iol.unh.edu> Date: Tue, 25 Oct 2022 05:22:00 -0400 (EDT) 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 --===============0503977757512399669== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGVzdC1MYWJlbDogaW9sLXRlc3RpbmcKVGVzdC1TdGF0dXM6IFdBUk5JTkcKaHR0cDovL2RwZGsu b3JnL3BhdGNoLzExOTA1NgoKX2FwcGx5IHBhdGNoIGZhaWx1cmVfCgpTdWJtaXR0ZXI6IENoYW95 b25nIEhlIDxjaGFveW9uZy5oZUBjb3JpZ2luZS5jb20+CkRhdGU6IFR1ZXNkYXksIE9jdG9iZXIg MjUgMjAyMiAwNzo1OToxOCAKQXBwbGllZCBvbjogQ29tbWl0SUQ6ZjgwMGMwM2RlOWY3MWE3YjU5 MTExYjU5NzI2NzZlZGI5OWMyOGIwYQpBcHBseSBwYXRjaCBzZXQgMTE5MDU2LTExOTA4MSBmYWls ZWQ6CgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvbmZwX2NwcF9icmlkZ2UuYy4uLgpl cnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXN0cnVjdCBuZnBfY3BwICpjcHA7CglzdHJ1Y3Qg bmZwX3BmX2RldiAqcGZfZGV2OwoJaW50IHNvY2tmZCwgZGF0YWZkLCBvcCwgcmV0OwoKCXVubGlu aygiL3RtcC9uZnBfY3BwIik7Cglzb2NrZmQgPSBzb2NrZXQoQUZfVU5JWCwgU09DS19TVFJFQU0s IDApOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbmZwL25mcF9jcHBfYnJpZGdl LmM6Mzc5CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCXJldHVybiAtRUlPOwoJfQoKCW1l bXNldCgmYWRkcmVzcywgMCwgc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcikpOwoKCWFkZHJlc3Muc2Ff ZmFtaWx5ID0gQUZfVU5JWDsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L25mcC9u ZnBfY3BwX2JyaWRnZS5jOjM4OAplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXdoaWxlIChy dGVfc2VydmljZV9ydW5zdGF0ZV9nZXQocGZfZGV2LT5jcHBfYnJpZGdlX2lkKSAhPSAwKSB7CgkJ ZGF0YWZkID0gYWNjZXB0KHNvY2tmZCwgTlVMTCwgTlVMTCk7CgkJaWYgKGRhdGFmZCA8IDApIHsK CQkJUlRFX0xPRyhFUlIsIFBNRCwgIiVzOiBhY2NlcHQgY2FsbCBlcnJvciAoJWQpXG4iLAoJCQkJ CSAgX19mdW5jX18sIGVycm5vKTsKCQkJUlRFX0xPRyhFUlIsIFBNRCwgIiVzOiBzZXJ2aWNlIGZh aWxlZFxuIiwgX19mdW5jX18pOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbmZw L25mcF9jcHBfYnJpZGdlLmM6NDE1CkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L25mcC9uZnBf Y3BwX2JyaWRnZS5jIHdpdGggMyByZWplY3RzLi4uClJlamVjdGVkIGh1bmsgIzEuClJlamVjdGVk IGh1bmsgIzIuClJlamVjdGVkIGh1bmsgIzMuCmRpZmYgYS9kcml2ZXJzL25ldC9uZnAvbmZwX2Nw cF9icmlkZ2UuYyBiL2RyaXZlcnMvbmV0L25mcC9uZnBfY3BwX2JyaWRnZS5jCShyZWplY3RlZCBo dW5rcykKQEAgLTM3OSw2ICszNzksNyBAQCBuZnBfY3BwX2JyaWRnZV9zZXJ2aWNlX2Z1bmModm9p ZCAqYXJncykKIAlzdHJ1Y3QgbmZwX2NwcCAqY3BwOwogCXN0cnVjdCBuZnBfcGZfZGV2ICpwZl9k ZXY7CiAJaW50IHNvY2tmZCwgZGF0YWZkLCBvcCwgcmV0OworCXN0cnVjdCB0aW1ldmFsIHRpbWVv dXQgPSB7MSwgMH07CiAKIAl1bmxpbmsoIi90bXAvbmZwX2NwcCIpOwogCXNvY2tmZCA9IHNvY2tl dChBRl9VTklYLCBTT0NLX1NUUkVBTSwgMCk7CkBAIC0zODgsNiArMzg5LDggQEAgbmZwX2NwcF9i cmlkZ2Vfc2VydmljZV9mdW5jKHZvaWQgKmFyZ3MpCiAJCXJldHVybiAtRUlPOwogCX0KIAorCXNl dHNvY2tvcHQoc29ja2ZkLCBTT0xfU09DS0VULCBTT19SQ1ZUSU1FTywgKGNoYXIgKikmdGltZW91 dCwgc2l6ZW9mKHRpbWVvdXQpKTsKKwogCW1lbXNldCgmYWRkcmVzcywgMCwgc2l6ZW9mKHN0cnVj dCBzb2NrYWRkcikpOwogCiAJYWRkcmVzcy5zYV9mYW1pbHkgPSBBRl9VTklYOwpAQCAtNDE1LDYg KzQxOCw5IEBAIG5mcF9jcHBfYnJpZGdlX3NlcnZpY2VfZnVuYyh2b2lkICphcmdzKQogCXdoaWxl IChydGVfc2VydmljZV9ydW5zdGF0ZV9nZXQocGZfZGV2LT5jcHBfYnJpZGdlX2lkKSAhPSAwKSB7 CiAJCWRhdGFmZCA9IGFjY2VwdChzb2NrZmQsIE5VTEwsIE5VTEwpOwogCQlpZiAoZGF0YWZkIDwg MCkgeworCQkJaWYgKGVycm5vID09IEVBR0FJTiB8fCBlcnJubyA9PSBFV09VTERCTE9DSykKKwkJ CQljb250aW51ZTsKKwogCQkJUlRFX0xPRyhFUlIsIFBNRCwgIiVzOiBhY2NlcHQgY2FsbCBlcnJv ciAoJWQpXG4iLAogCQkJCQkgIF9fZnVuY19fLCBlcnJubyk7CiAJCQlSVEVfTE9HKEVSUiwgUE1E LCAiJXM6IHNlcnZpY2UgZmFpbGVkXG4iLCBfX2Z1bmNfXyk7CkNoZWNraW5nIHBhdGNoIGRvYy9n dWlkZXMvbmljcy9mZWF0dXJlcy9uZnAuaW5pLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9y Ogp0Y3AgICAgICAgICAgICAgICAgICA9IFkKdWRwICAgICAgICAgICAgICAgICAgPSBZCnZsYW4g ICAgICAgICAgICAgICAgID0gWQoKW3J0ZV9mbG93IGFjdGlvbnNdCmNvdW50ICAgICAgICAgICAg ICAgID0gWQoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZG9jL2d1aWRlcy9uaWNzL2ZlYXR1cmVzL25m cC5pbmk6MzUKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbmZwL2Zsb3dlci9uZnBfZmxvd2Vy X2Ntc2cuaC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXVpbnQ4X3QgaXB2Nl9kc3Rb MTZdOwp9OwoKc3RydWN0IG5mcF9mbF9hY3RfaGVhZCB7Cgl1aW50OF90IGp1bXBfaWQ7Cgl1aW50 OF90IGxlbl9sdzsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L25mcC9mbG93ZXIv bmZwX2Zsb3dlcl9jbXNnLmg6MzI0CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L25mcC9uZnBf Zmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCQljaGFyICoqbWJ1Zl9vZmYs CgkJCWNvbnN0IHN0cnVjdCBydGVfZmxvd19pdGVtICppdGVtLAoJCQljb25zdCBzdHJ1Y3QgbmZw X2Zsb3dfaXRlbV9wcm9jICpwcm9jLAoJCQlib29sIGlzX21hc2spOwoJLyogTGlzdCBvZiBwb3Nz aWJsZSBzdWJzZXF1ZW50IGl0ZW1zLiAqLwoJY29uc3QgZW51bSBydGVfZmxvd19pdGVtX3R5cGUg KmNvbnN0IG5leHRfaXRlbTsKfTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L25m cC9uZnBfZmxvdy5jOjM4CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCXN0cnVjdCBuZnBf Zmxfa2V5X2xzICprZXlfbHMpCnsKCXN0cnVjdCBydGVfZXRoX2RldiAqZXRoZGV2OwoJY29uc3Qg c3RydWN0IHJ0ZV9mbG93X2l0ZW0gKml0ZW07CglzdHJ1Y3QgbmZwX2Zsb3dlcl9yZXByZXNlbnRv ciAqcmVwcmVzZW50b3I7Cgljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfaXRlbV9wb3J0X2lkICpwb3J0 X2lkOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbmZwL25mcF9mbG93LmM6NDkx CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCQlQTURfRFJWX0xPRyhERUJVRywgIlJURV9G TE9XX0lURU1fVFlQRV9JUFY0IGRldGVjdGVkIik7CgkJCWtleV9scy0+a2V5X2xheWVyIHw9IE5G UF9GTE9XRVJfTEFZRVJfSVBWNDsKCQkJa2V5X2xzLT5rZXlfc2l6ZSArPSBzaXplb2Yoc3RydWN0 IG5mcF9mbG93ZXJfaXB2NCk7CgkJCWJyZWFrOwoJCWNhc2UgUlRFX0ZMT1dfSVRFTV9UWVBFX0lQ VjY6CgkJCVBNRF9EUlZfTE9HKERFQlVHLCAiUlRFX0ZMT1dfSVRFTV9UWVBFX0lQVjYgZGV0ZWN0 ZWQiKTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L25mcC9uZnBfZmxvdy5jOjUy NgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQkJa2V5X2xzLT5rZXlfbGF5ZXIgfD0gTkZQ X0ZMT1dFUl9MQVlFUl9UUDsKCQkJa2V5X2xzLT5rZXlfc2l6ZSArPSBzaXplb2Yoc3RydWN0IG5m cF9mbG93ZXJfdHBfcG9ydHMpOwoJCQlicmVhazsKCQlkZWZhdWx0OgoJCQlQTURfRFJWX0xPRyhF UlIsICJJdGVtIHR5cGUgJWQgbm90IHN1cHBvcnRlZC4iLCBpdGVtLT50eXBlKTsKCQkJcmV0dXJu IC1FTk9UU1VQOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbmZwL25mcF9mbG93 LmM6NTQ3CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJcmV0dXJuIHJldDsKfQoKc3RhdGlj IGludApuZnBfZmxvd19tZXJnZV9ldGgoX19ydGVfdW51c2VkIHN0cnVjdCBydGVfZmxvdyAqbmZw X2Zsb3csCgkJY2hhciAqKm1idWZfb2ZmLAoJCWNvbnN0IHN0cnVjdCBydGVfZmxvd19pdGVtICpp dGVtLAoJCWNvbnN0IHN0cnVjdCBuZnBfZmxvd19pdGVtX3Byb2MgKnByb2MsCgkJYm9vbCBpc19t YXNrKQp7CglzdHJ1Y3QgbmZwX2Zsb3dlcl9tYWNfbXBscyAqZXRoOwoJY29uc3Qgc3RydWN0IHJ0 ZV9mbG93X2l0ZW1fZXRoICpzcGVjOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQv bmZwL25mcF9mbG93LmM6NzE5CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCV9fcnRlX3Vu dXNlZCBjaGFyICoqbWJ1Zl9vZmYsCgkJY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2l0ZW0gKml0ZW0s CgkJY29uc3Qgc3RydWN0IG5mcF9mbG93X2l0ZW1fcHJvYyAqcHJvYywKCQlib29sIGlzX21hc2sp CnsKCXN0cnVjdCBuZnBfZmxvd2VyX21ldGFfdGNpICptZXRhX3RjaTsKCWNvbnN0IHN0cnVjdCBy dGVfZmxvd19pdGVtX3ZsYW4gKnNwZWM7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25l dC9uZnAvbmZwX2Zsb3cuYzo3NjAKZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJY2hhciAq Km1idWZfb2ZmLAoJCWNvbnN0IHN0cnVjdCBydGVfZmxvd19pdGVtICppdGVtLAoJCWNvbnN0IHN0 cnVjdCBuZnBfZmxvd19pdGVtX3Byb2MgKnByb2MsCgkJYm9vbCBpc19tYXNrKQp7CglzdHJ1Y3Qg bmZwX2Zsb3dlcl9pcHY0ICppcHY0OwoJY29uc3Qgc3RydWN0IHJ0ZV9pcHY0X2hkciAqaGRyOwoJ c3RydWN0IG5mcF9mbG93ZXJfbWV0YV90Y2kgKm1ldGFfdGNpOwoJY29uc3Qgc3RydWN0IHJ0ZV9m bG93X2l0ZW1faXB2NCAqc3BlYzsKCWNvbnN0IHN0cnVjdCBydGVfZmxvd19pdGVtX2lwdjQgKm1h c2s7CgoJc3BlYyA9IGl0ZW0tPnNwZWM7CgltYXNrID0gaXRlbS0+bWFzayA/IGl0ZW0tPm1hc2sg OiBwcm9jLT5tYXNrX2RlZmF1bHQ7CgltZXRhX3RjaSA9IChzdHJ1Y3QgbmZwX2Zsb3dlcl9tZXRh X3RjaSAqKW5mcF9mbG93LT5wYXlsb2FkLnVubWFza2VkX2RhdGE7CgoJaWYgKHNwZWMgPT0gTlVM TCkgewoJCVBNRF9EUlZfTE9HKERFQlVHLCAibmZwIGZsb3cgbWVyZ2UgaXB2NDogbm8gaXRlbS0+ c3BlYyEiKTsKCQlnb3RvIGlwdjRfZW5kOwoJfQoKCS8qCgkgKiByZXNlcnZlIHNwYWNlIGZvciBM NCBpbmZvLgoJICogcnRlX2Zsb3cgaGFzIGlwdjQgYmVmb3JlIEw0IGJ1dCBORlAgZmxvd2VyIGZ3 IHJlcXVpcmVzIEw0IGJlZm9yZSBpcHY0CgkgKi8KCWlmIChtZXRhX3RjaS0+bmZwX2Zsb3dfa2V5 X2xheWVyICYgTkZQX0ZMT1dFUl9MQVlFUl9UUCkKCQkqbWJ1Zl9vZmYgKz0gc2l6ZW9mKHN0cnVj dCBuZnBfZmxvd2VyX3RwX3BvcnRzKTsKCgloZHIgPSBpc19tYXNrID8gJm1hc2stPmhkciA6ICZz cGVjLT5oZHI7CglpcHY0ID0gKHN0cnVjdCBuZnBfZmxvd2VyX2lwdjQgKikqbWJ1Zl9vZmY7CgoJ aXB2NC0+aXBfZXh0LnRvcyAgID0gaGRyLT50eXBlX29mX3NlcnZpY2U7CglpcHY0LT5pcF9leHQu cHJvdG8gPSBoZHItPm5leHRfcHJvdG9faWQ7CglpcHY0LT5pcF9leHQudHRsICAgPSBoZHItPnRp bWVfdG9fbGl2ZTsKCWlwdjQtPmlwdjRfc3JjICAgICA9IGhkci0+c3JjX2FkZHI7CglpcHY0LT5p cHY0X2RzdCAgICAgPSBoZHItPmRzdF9hZGRyOwoKaXB2NF9lbmQ6CgkqbWJ1Zl9vZmYgKz0gc2l6 ZW9mKHN0cnVjdCBuZnBfZmxvd2VyX2lwdjQpOwoKCXJldHVybiAwOwp9CgplcnJvcjogcGF0Y2gg ZmFpbGVkOiBkcml2ZXJzL25ldC9uZnAvbmZwX2Zsb3cuYzo3ODkKZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6CgkJY2hhciAqKm1idWZfb2ZmLAoJCWNvbnN0IHN0cnVjdCBydGVfZmxvd19pdGVt ICppdGVtLAoJCWNvbnN0IHN0cnVjdCBuZnBfZmxvd19pdGVtX3Byb2MgKnByb2MsCgkJYm9vbCBp c19tYXNrKQp7CglzdHJ1Y3QgbmZwX2Zsb3dlcl9pcHY2ICppcHY2OwoJY29uc3Qgc3RydWN0IHJ0 ZV9pcHY2X2hkciAqaGRyOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbmZwL25m cF9mbG93LmM6ODMzCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCWNoYXIgKiptYnVmX29m ZiwKCQljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfaXRlbSAqaXRlbSwKCQljb25zdCBzdHJ1Y3QgbmZw X2Zsb3dfaXRlbV9wcm9jICpwcm9jLAoJCWJvb2wgaXNfbWFzaykKewoJdWludDhfdCB0Y3BfZmxh Z3M7CglzdHJ1Y3QgbmZwX2Zsb3dlcl90cF9wb3J0cyAqcG9ydHM7CgplcnJvcjogcGF0Y2ggZmFp bGVkOiBkcml2ZXJzL25ldC9uZnAvbmZwX2Zsb3cuYzo4NzgKZXJyb3I6IHdoaWxlIHNlYXJjaGlu ZyBmb3I6CgkJY2hhciAqKm1idWZfb2ZmLAoJCWNvbnN0IHN0cnVjdCBydGVfZmxvd19pdGVtICpp dGVtLAoJCWNvbnN0IHN0cnVjdCBuZnBfZmxvd19pdGVtX3Byb2MgKnByb2MsCgkJYm9vbCBpc19t YXNrKQp7CgljaGFyICpwb3J0c19vZmY7CglzdHJ1Y3QgbmZwX2Zsb3dlcl90cF9wb3J0cyAqcG9y dHM7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9uZnAvbmZwX2Zsb3cuYzo5NTAK SHVuayAjMTEgc3VjY2VlZGVkIGF0IDEzOTYgKG9mZnNldCAzNzkgbGluZXMpLgplcnJvcjogd2hp bGUgc2VhcmNoaW5nIGZvcjoKCQljaGFyICoqbWJ1Zl9vZmYsCgkJY29uc3Qgc3RydWN0IHJ0ZV9m bG93X2l0ZW0gKml0ZW0sCgkJY29uc3Qgc3RydWN0IG5mcF9mbG93X2l0ZW1fcHJvYyAqcHJvYywK CQlib29sIGlzX21hc2spCnsKCWNoYXIgKnBvcnRzX29mZjsKCXN0cnVjdCBuZnBfZmxvd2VyX3Rw X3BvcnRzICpwb3J0czsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L25mcC9uZnBf Zmxvdy5jOjk5MQplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXJldHVybiAwOwp9CgovKiBH cmFwaCBvZiBzdXBwb3J0ZWQgaXRlbXMgYW5kIGFzc29jaWF0ZWQgcHJvY2VzcyBmdW5jdGlvbiAq LwpzdGF0aWMgY29uc3Qgc3RydWN0IG5mcF9mbG93X2l0ZW1fcHJvYyBuZnBfZmxvd19pdGVtX3By b2NfbGlzdFtdID0gewoJW1JURV9GTE9XX0lURU1fVFlQRV9FTkRdID0gewoJCS5uZXh0X2l0ZW0g PSBORVhUX0lURU0oUlRFX0ZMT1dfSVRFTV9UWVBFX0VUSCksCgl9LAoJW1JURV9GTE9XX0lURU1f VFlQRV9FVEhdID0gewoJCS5uZXh0X2l0ZW0gPSBORVhUX0lURU0oUlRFX0ZMT1dfSVRFTV9UWVBF X1ZMQU4sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9uZnAvbmZwX2Zsb3cuYzox MDI3CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCS5tZXJnZSA9IG5mcF9mbG93X21lcmdl X3RjcCwKCX0sCglbUlRFX0ZMT1dfSVRFTV9UWVBFX1VEUF0gPSB7CgkJLm1hc2tfc3VwcG9ydCA9 ICYoY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2l0ZW1fdWRwKXsKCQkJLmhkciA9IHsKCQkJCS5zcmNf cG9ydCA9IFJURV9CRTE2KDB4ZmZmZiksCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25l dC9uZnAvbmZwX2Zsb3cuYzoxMTEzCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCS5tYXNr X3N6ID0gc2l6ZW9mKHN0cnVjdCBydGVfZmxvd19pdGVtX3NjdHApLAoJCS5tZXJnZSA9IG5mcF9m bG93X21lcmdlX3NjdHAsCgl9LAp9OwoKc3RhdGljIGludAoKZXJyb3I6IHBhdGNoIGZhaWxlZDog ZHJpdmVycy9uZXQvbmZwL25mcF9mbG93LmM6MTEzNAplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZv cjoKCXJldHVybiByZXQ7Cn0KCnN0YXRpYyBpbnQKbmZwX2Zsb3dfY29tcGlsZV9pdGVtX3Byb2Mo Y29uc3Qgc3RydWN0IHJ0ZV9mbG93X2l0ZW0gaXRlbXNbXSwKCQlzdHJ1Y3QgcnRlX2Zsb3cgKm5m cF9mbG93LAoJCWNoYXIgKiptYnVmX29mZl9leGFjdCwKCQljaGFyICoqbWJ1Zl9vZmZfbWFzaykK ewoJaW50IGk7CglpbnQgcmV0ID0gMDsKCWNvbnN0IHN0cnVjdCBydGVfZmxvd19pdGVtICppdGVt OwoJY29uc3Qgc3RydWN0IG5mcF9mbG93X2l0ZW1fcHJvYyAqcHJvY19saXN0OwoKCXByb2NfbGlz dCA9IG5mcF9mbG93X2l0ZW1fcHJvY19saXN0OwoJZm9yIChpdGVtID0gaXRlbXM7IGl0ZW0tPnR5 cGUgIT0gUlRFX0ZMT1dfSVRFTV9UWVBFX0VORDsgKytpdGVtKSB7CgkJY29uc3Qgc3RydWN0IG5m cF9mbG93X2l0ZW1fcHJvYyAqcHJvYyA9IE5VTEw7CgoJCWZvciAoaSA9IDA7IHByb2NfbGlzdC0+ bmV4dF9pdGVtICYmIHByb2NfbGlzdC0+bmV4dF9pdGVtW2ldOyArK2kpIHsKCQkJaWYgKHByb2Nf bGlzdC0+bmV4dF9pdGVtW2ldID09IGl0ZW0tPnR5cGUpIHsKCQkJCXByb2MgPSAmbmZwX2Zsb3df aXRlbV9wcm9jX2xpc3RbaXRlbS0+dHlwZV07CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJz L25ldC9uZnAvbmZwX2Zsb3cuYzoxMTg3CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCX0K CgkJcmV0ID0gcHJvYy0+bWVyZ2UobmZwX2Zsb3csIG1idWZfb2ZmX2V4YWN0LCBpdGVtLAoJCQkJ cHJvYywgZmFsc2UpOwoJCWlmIChyZXQgIT0gMCkgewoJCQlQTURfRFJWX0xPRyhFUlIsICJuZnAg ZmxvdyBpdGVtICVkIGV4YWN0IG1lcmdlIGZhaWxlZCIsIGl0ZW0tPnR5cGUpOwoJCQlicmVhazsK CQl9CgoJCXJldCA9IHByb2MtPm1lcmdlKG5mcF9mbG93LCBtYnVmX29mZl9tYXNrLCBpdGVtLAoJ CQkJcHJvYywgdHJ1ZSk7CgkJaWYgKHJldCAhPSAwKSB7CgkJCVBNRF9EUlZfTE9HKEVSUiwgIm5m cCBmbG93IGl0ZW0gJWQgbWFzayBtZXJnZSBmYWlsZWQiLCBpdGVtLT50eXBlKTsKCQkJYnJlYWs7 CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9uZnAvbmZwX2Zsb3cuYzoxMjMwCmVy cm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJaW50IHJldDsKCWNoYXIgKm1idWZfb2ZmX21hc2s7 CgljaGFyICptYnVmX29mZl9leGFjdDsKCgltYnVmX29mZl9leGFjdCA9IG5mcF9mbG93LT5wYXls b2FkLnVubWFza2VkX2RhdGEgKwoJCQlzaXplb2Yoc3RydWN0IG5mcF9mbG93ZXJfbWV0YV90Y2kp ICsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L25mcC9uZnBfZmxvdy5jOjEyNTcK ZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJCXNpemVvZihzdHJ1Y3QgbmZwX2Zsb3dlcl9t ZXRhX3RjaSkgKwoJCQlzaXplb2Yoc3RydWN0IG5mcF9mbG93ZXJfaW5fcG9ydCk7CgoJLyogR28g b3ZlciBpdGVtcyAqLwoJcmV0ID0gbmZwX2Zsb3dfY29tcGlsZV9pdGVtX3Byb2MoaXRlbXMsIG5m cF9mbG93LAoJCQkmbWJ1Zl9vZmZfZXhhY3QsICZtYnVmX29mZl9tYXNrKTsKCWlmIChyZXQgIT0g MCkgewoJCVBNRF9EUlZfTE9HKEVSUiwgIm5mcCBmbG93IGl0ZW0gY29tcGlsZSBmYWlsZWQuIik7 CgkJcmV0dXJuIC1FSU5WQUw7Cgl9CgoJcmV0dXJuIDA7Cn0KCgplcnJvcjogcGF0Y2ggZmFpbGVk OiBkcml2ZXJzL25ldC9uZnAvbmZwX2Zsb3cuYzoxMjY1CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcg Zm9yOgoJcmV0dXJuIDA7Cn0KCnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfb3BzIG5mcF9m bG93X29wcyA9IHsKCS52YWxpZGF0ZSAgICAgICAgICAgICAgICAgICAgPSBuZnBfZmxvd192YWxp ZGF0ZSwKCS5jcmVhdGUgICAgICAgICAgICAgICAgICAgICAgPSBuZnBfZmxvd19jcmVhdGUsCgku ZGVzdHJveSAgICAgICAgICAgICAgICAgICAgID0gbmZwX2Zsb3dfZGVzdHJveSwKCS5mbHVzaCAg ICAgICAgICAgICAgICAgICAgICAgPSBuZnBfZmxvd19mbHVzaCwKCS5xdWVyeSAgICAgICAgICAg ICAgICAgICAgICAgPSBuZnBfZmxvd19xdWVyeSwKfTsKCmludAoKZXJyb3I6IHBhdGNoIGZhaWxl ZDogZHJpdmVycy9uZXQvbmZwL25mcF9mbG93LmM6MjExOQpBcHBseWluZyBwYXRjaCBkb2MvZ3Vp ZGVzL25pY3MvZmVhdHVyZXMvbmZwLmluaSB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsg IzEuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L25mcC9mbG93ZXIvbmZwX2Zsb3dlcl9jbXNn Lmggd2l0aCAxIHJlamVjdC4uLgpSZWplY3RlZCBodW5rICMxLgpBcHBseWluZyBwYXRjaCBkcml2 ZXJzL25ldC9uZnAvbmZwX2Zsb3cuYyB3aXRoIDE5IHJlamVjdHMuLi4KUmVqZWN0ZWQgaHVuayAj MS4KUmVqZWN0ZWQgaHVuayAjMi4KUmVqZWN0ZWQgaHVuayAjMy4KUmVqZWN0ZWQgaHVuayAjNC4K UmVqZWN0ZWQgaHVuayAjNS4KUmVqZWN0ZWQgaHVuayAjNi4KUmVqZWN0ZWQgaHVuayAjNy4KUmVq ZWN0ZWQgaHVuayAjOC4KUmVqZWN0ZWQgaHVuayAjOS4KUmVqZWN0ZWQgaHVuayAjMTAuCkh1bmsg IzExIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjMTIuClJlamVjdGVkIGh1bmsgIzEz LgpSZWplY3RlZCBodW5rICMxNC4KUmVqZWN0ZWQgaHVuayAjMTUuClJlamVjdGVkIGh1bmsgIzE2 LgpSZWplY3RlZCBodW5rICMxNy4KUmVqZWN0ZWQgaHVuayAjMTguClJlamVjdGVkIGh1bmsgIzE5 LgpSZWplY3RlZCBodW5rICMyMC4KZGlmZiBhL2RvYy9ndWlkZXMvbmljcy9mZWF0dXJlcy9uZnAu aW5pIGIvZG9jL2d1aWRlcy9uaWNzL2ZlYXR1cmVzL25mcC5pbmkJKHJlamVjdGVkIGh1bmtzKQpA QCAtMzUsNiArMzUsNyBAQCBzY3RwICAgICAgICAgICAgICAgICA9IFkKIHRjcCAgICAgICAgICAg ICAgICAgID0gWQogdWRwICAgICAgICAgICAgICAgICAgPSBZCiB2bGFuICAgICAgICAgICAgICAg ICA9IFkKK3Z4bGFuICAgICAgICAgICAgICAgID0gWQogCiBbcnRlX2Zsb3cgYWN0aW9uc10KIGNv dW50ICAgICAgICAgICAgICAgID0gWQpkaWZmIGEvZHJpdmVycy9uZXQvbmZwL2Zsb3dlci9uZnBf Zmxvd2VyX2Ntc2cuaCBiL2RyaXZlcnMvbmV0L25mcC9mbG93ZXIvbmZwX2Zsb3dlcl9jbXNnLmgJ KHJlamVjdGVkIGh1bmtzKQpAQCAtMzI0LDYgKzMyNCw0MSBAQCBzdHJ1Y3QgbmZwX2Zsb3dlcl9p cHY2IHsKIAl1aW50OF90IGlwdjZfZHN0WzE2XTsKIH07CiAKK3N0cnVjdCBuZnBfZmxvd2VyX3R1 bl9pcHY0IHsKKwlydGVfYmUzMl90IHNyYzsKKwlydGVfYmUzMl90IGRzdDsKK307CisKK3N0cnVj dCBuZnBfZmxvd2VyX3R1bl9pcF9leHQgeworCXVpbnQ4X3QgdG9zOworCXVpbnQ4X3QgdHRsOwor fTsKKworLyoKKyAqIEZsb3cgRnJhbWUgSVB2NCBVRFAgVFVOTkVMIC0tPiBUdW5uZWwgZGV0YWls cyAoNVcvMjBCKQorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqICAgIDMgICAgICAgICAgICAgICAgICAgMiAgICAg ICAgICAgICAgICAgICAxCisgKiAgMSAwIDkgOCA3IDYgNSA0IDMgMiAxIDAgOSA4IDcgNiA1IDQg MyAyIDEgMCA5IDggNyA2IDUgNCAzIDIgMSAwCisgKiArLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKworICogfCAgICAgICAgICAg ICAgICAgICAgICAgICBpcHY0X2FkZHJfc3JjICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAq ICstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgIGlwdjRfYWRkcl9kc3QgICAg ICAgICAgICAgICAgICAgICAgICAgfAorICogKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKKyAqIHwgICAgICAgICAgIFJlc2Vy dmVkICAgICAgICAgICAgfCAgICAgIHRvcyAgICAgIHwgICAgICB0dGwgICAgICB8CisgKiArLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZCAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwKKyAqICstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAg Vk5JICAgICAgICAgICAgICAgICAgICAgICB8ICAgUmVzZXJ2ZWQgICAgfAorICogKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsK KyAqLworc3RydWN0IG5mcF9mbG93ZXJfaXB2NF91ZHBfdHVuIHsKKwlzdHJ1Y3QgbmZwX2Zsb3dl cl90dW5faXB2NCBpcHY0OworCXJ0ZV9iZTE2X3QgcmVzZXJ2ZWQxOworCXN0cnVjdCBuZnBfZmxv d2VyX3R1bl9pcF9leHQgaXBfZXh0OworCXJ0ZV9iZTMyX3QgcmVzZXJ2ZWQyOworCXJ0ZV9iZTMy X3QgdHVuX2lkOworfTsKKwogc3RydWN0IG5mcF9mbF9hY3RfaGVhZCB7CiAJdWludDhfdCBqdW1w X2lkOwogCXVpbnQ4X3QgbGVuX2x3OwpkaWZmIGEvZHJpdmVycy9uZXQvbmZwL25mcF9mbG93LmMg Yi9kcml2ZXJzL25ldC9uZnAvbmZwX2Zsb3cuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC0zOCw3ICsz OCw4IEBAIHN0cnVjdCBuZnBfZmxvd19pdGVtX3Byb2MgewogCQkJY2hhciAqKm1idWZfb2ZmLAog CQkJY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2l0ZW0gKml0ZW0sCiAJCQljb25zdCBzdHJ1Y3QgbmZw X2Zsb3dfaXRlbV9wcm9jICpwcm9jLAotCQkJYm9vbCBpc19tYXNrKTsKKwkJCWJvb2wgaXNfbWFz aywKKwkJCWJvb2wgaXNfb3V0ZXJfbGF5ZXIpOwogCS8qIExpc3Qgb2YgcG9zc2libGUgc3Vic2Vx dWVudCBpdGVtcy4gKi8KIAljb25zdCBlbnVtIHJ0ZV9mbG93X2l0ZW1fdHlwZSAqY29uc3QgbmV4 dF9pdGVtOwogfTsKQEAgLTQ5MSw2ICs0OTIsNyBAQCBuZnBfZmxvd19rZXlfbGF5ZXJzX2NhbGN1 bGF0ZV9pdGVtcyhjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfaXRlbSBpdGVtc1tdLAogCQlzdHJ1Y3Qg bmZwX2ZsX2tleV9scyAqa2V5X2xzKQogewogCXN0cnVjdCBydGVfZXRoX2RldiAqZXRoZGV2Owor CWJvb2wgb3V0ZXJfaXA0X2ZsYWcgPSBmYWxzZTsKIAljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfaXRl bSAqaXRlbTsKIAlzdHJ1Y3QgbmZwX2Zsb3dlcl9yZXByZXNlbnRvciAqcmVwcmVzZW50b3I7CiAJ Y29uc3Qgc3RydWN0IHJ0ZV9mbG93X2l0ZW1fcG9ydF9pZCAqcG9ydF9pZDsKQEAgLTUyNiw2ICs1 MjgsOCBAQCBuZnBfZmxvd19rZXlfbGF5ZXJzX2NhbGN1bGF0ZV9pdGVtcyhjb25zdCBzdHJ1Y3Qg cnRlX2Zsb3dfaXRlbSBpdGVtc1tdLAogCQkJUE1EX0RSVl9MT0coREVCVUcsICJSVEVfRkxPV19J VEVNX1RZUEVfSVBWNCBkZXRlY3RlZCIpOwogCQkJa2V5X2xzLT5rZXlfbGF5ZXIgfD0gTkZQX0ZM T1dFUl9MQVlFUl9JUFY0OwogCQkJa2V5X2xzLT5rZXlfc2l6ZSArPSBzaXplb2Yoc3RydWN0IG5m cF9mbG93ZXJfaXB2NCk7CisJCQlpZiAoIW91dGVyX2lwNF9mbGFnKQorCQkJCW91dGVyX2lwNF9m bGFnID0gdHJ1ZTsKIAkJCWJyZWFrOwogCQljYXNlIFJURV9GTE9XX0lURU1fVFlQRV9JUFY2Ogog CQkJUE1EX0RSVl9MT0coREVCVUcsICJSVEVfRkxPV19JVEVNX1RZUEVfSVBWNiBkZXRlY3RlZCIp OwpAQCAtNTQ3LDYgKzU1MSwyMSBAQCBuZnBfZmxvd19rZXlfbGF5ZXJzX2NhbGN1bGF0ZV9pdGVt cyhjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfaXRlbSBpdGVtc1tdLAogCQkJa2V5X2xzLT5rZXlfbGF5 ZXIgfD0gTkZQX0ZMT1dFUl9MQVlFUl9UUDsKIAkJCWtleV9scy0+a2V5X3NpemUgKz0gc2l6ZW9m KHN0cnVjdCBuZnBfZmxvd2VyX3RwX3BvcnRzKTsKIAkJCWJyZWFrOworCQljYXNlIFJURV9GTE9X X0lURU1fVFlQRV9WWExBTjoKKwkJCVBNRF9EUlZfTE9HKERFQlVHLCAiUlRFX0ZMT1dfSVRFTV9U WVBFX1ZYTEFOIGRldGVjdGVkIik7CisJCQkvKiBDbGVhciBJUHY0IGJpdHMgKi8KKwkJCWtleV9s cy0+a2V5X2xheWVyICY9IH5ORlBfRkxPV0VSX0xBWUVSX0lQVjQ7CisJCQlrZXlfbHMtPnR1bl90 eXBlID0gTkZQX0ZMX1RVTl9WWExBTjsKKwkJCWtleV9scy0+a2V5X2xheWVyIHw9IE5GUF9GTE9X RVJfTEFZRVJfVlhMQU47CisJCQlpZiAob3V0ZXJfaXA0X2ZsYWcpIHsKKwkJCQlrZXlfbHMtPmtl eV9zaXplICs9IHNpemVvZihzdHJ1Y3QgbmZwX2Zsb3dlcl9pcHY0X3VkcF90dW4pOworCQkJCS8q CisJCQkJICogVGhlIG91dGVyIGwzIGxheWVyIGluZm9ybWF0aW9uIGlzCisJCQkJICogaW4gYHN0 cnVjdCBuZnBfZmxvd2VyX2lwdjRfdWRwX3R1bmAKKwkJCQkgKi8KKwkJCQlrZXlfbHMtPmtleV9z aXplIC09IHNpemVvZihzdHJ1Y3QgbmZwX2Zsb3dlcl9pcHY0KTsKKwkJCX0KKwkJCWJyZWFrOwog CQlkZWZhdWx0OgogCQkJUE1EX0RSVl9MT0coRVJSLCAiSXRlbSB0eXBlICVkIG5vdCBzdXBwb3J0 ZWQuIiwgaXRlbS0+dHlwZSk7CiAJCQlyZXR1cm4gLUVOT1RTVVA7CkBAIC03MTksMTIgKzczOCwy NSBAQCBuZnBfZmxvd19rZXlfbGF5ZXJzX2NhbGN1bGF0ZShjb25zdCBzdHJ1Y3QgcnRlX2Zsb3df aXRlbSBpdGVtc1tdLAogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyBib29sCituZnBfZmxvd19p c190dW5uZWwoc3RydWN0IHJ0ZV9mbG93ICpuZnBfZmxvdykKK3sKKwlzdHJ1Y3QgbmZwX2Zsb3dl cl9tZXRhX3RjaSAqbWV0YV90Y2k7CisKKwltZXRhX3RjaSA9IChzdHJ1Y3QgbmZwX2Zsb3dlcl9t ZXRhX3RjaSAqKW5mcF9mbG93LT5wYXlsb2FkLnVubWFza2VkX2RhdGE7CisJaWYgKG1ldGFfdGNp LT5uZnBfZmxvd19rZXlfbGF5ZXIgJiBORlBfRkxPV0VSX0xBWUVSX1ZYTEFOKQorCQlyZXR1cm4g dHJ1ZTsKKworCXJldHVybiBmYWxzZTsKK30KKwogc3RhdGljIGludAogbmZwX2Zsb3dfbWVyZ2Vf ZXRoKF9fcnRlX3VudXNlZCBzdHJ1Y3QgcnRlX2Zsb3cgKm5mcF9mbG93LAogCQljaGFyICoqbWJ1 Zl9vZmYsCiAJCWNvbnN0IHN0cnVjdCBydGVfZmxvd19pdGVtICppdGVtLAogCQljb25zdCBzdHJ1 Y3QgbmZwX2Zsb3dfaXRlbV9wcm9jICpwcm9jLAotCQlib29sIGlzX21hc2spCisJCWJvb2wgaXNf bWFzaywKKwkJX19ydGVfdW51c2VkIGJvb2wgaXNfb3V0ZXJfbGF5ZXIpCiB7CiAJc3RydWN0IG5m cF9mbG93ZXJfbWFjX21wbHMgKmV0aDsKIAljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfaXRlbV9ldGgg KnNwZWM7CkBAIC03NjAsNyArNzkyLDggQEAgbmZwX2Zsb3dfbWVyZ2VfdmxhbihzdHJ1Y3QgcnRl X2Zsb3cgKm5mcF9mbG93LAogCQlfX3J0ZV91bnVzZWQgY2hhciAqKm1idWZfb2ZmLAogCQljb25z dCBzdHJ1Y3QgcnRlX2Zsb3dfaXRlbSAqaXRlbSwKIAkJY29uc3Qgc3RydWN0IG5mcF9mbG93X2l0 ZW1fcHJvYyAqcHJvYywKLQkJYm9vbCBpc19tYXNrKQorCQlib29sIGlzX21hc2ssCisJCV9fcnRl X3VudXNlZCBib29sIGlzX291dGVyX2xheWVyKQogewogCXN0cnVjdCBuZnBfZmxvd2VyX21ldGFf dGNpICptZXRhX3RjaTsKIAljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfaXRlbV92bGFuICpzcGVjOwpA QCAtNzg5LDQxICs4MjIsNTggQEAgbmZwX2Zsb3dfbWVyZ2VfaXB2NChzdHJ1Y3QgcnRlX2Zsb3cg Km5mcF9mbG93LAogCQljaGFyICoqbWJ1Zl9vZmYsCiAJCWNvbnN0IHN0cnVjdCBydGVfZmxvd19p dGVtICppdGVtLAogCQljb25zdCBzdHJ1Y3QgbmZwX2Zsb3dfaXRlbV9wcm9jICpwcm9jLAotCQli b29sIGlzX21hc2spCisJCWJvb2wgaXNfbWFzaywKKwkJYm9vbCBpc19vdXRlcl9sYXllcikKIHsK IAlzdHJ1Y3QgbmZwX2Zsb3dlcl9pcHY0ICppcHY0OwogCWNvbnN0IHN0cnVjdCBydGVfaXB2NF9o ZHIgKmhkcjsKIAlzdHJ1Y3QgbmZwX2Zsb3dlcl9tZXRhX3RjaSAqbWV0YV90Y2k7CiAJY29uc3Qg c3RydWN0IHJ0ZV9mbG93X2l0ZW1faXB2NCAqc3BlYzsKIAljb25zdCBzdHJ1Y3QgcnRlX2Zsb3df aXRlbV9pcHY0ICptYXNrOworCXN0cnVjdCBuZnBfZmxvd2VyX2lwdjRfdWRwX3R1biAqaXB2NF91 ZHBfdHVuOwogCiAJc3BlYyA9IGl0ZW0tPnNwZWM7CiAJbWFzayA9IGl0ZW0tPm1hc2sgPyBpdGVt LT5tYXNrIDogcHJvYy0+bWFza19kZWZhdWx0OwogCW1ldGFfdGNpID0gKHN0cnVjdCBuZnBfZmxv d2VyX21ldGFfdGNpICopbmZwX2Zsb3ctPnBheWxvYWQudW5tYXNrZWRfZGF0YTsKIAotCWlmIChz cGVjID09IE5VTEwpIHsKLQkJUE1EX0RSVl9MT0coREVCVUcsICJuZnAgZmxvdyBtZXJnZSBpcHY0 OiBubyBpdGVtLT5zcGVjISIpOwotCQlnb3RvIGlwdjRfZW5kOwotCX0KKwlpZiAoaXNfb3V0ZXJf bGF5ZXIgJiYgbmZwX2Zsb3dfaXNfdHVubmVsKG5mcF9mbG93KSkgeworCQlpZiAoc3BlYyA9PSBO VUxMKSB7CisJCQlQTURfRFJWX0xPRyhERUJVRywgIm5mcCBmbG93IG1lcmdlIGlwdjQ6IG5vIGl0 ZW0tPnNwZWMhIik7CisJCQlyZXR1cm4gMDsKKwkJfQogCi0JLyoKLQkgKiByZXNlcnZlIHNwYWNl IGZvciBMNCBpbmZvLgotCSAqIHJ0ZV9mbG93IGhhcyBpcHY0IGJlZm9yZSBMNCBidXQgTkZQIGZs b3dlciBmdyByZXF1aXJlcyBMNCBiZWZvcmUgaXB2NAotCSAqLwotCWlmIChtZXRhX3RjaS0+bmZw X2Zsb3dfa2V5X2xheWVyICYgTkZQX0ZMT1dFUl9MQVlFUl9UUCkKLQkJKm1idWZfb2ZmICs9IHNp emVvZihzdHJ1Y3QgbmZwX2Zsb3dlcl90cF9wb3J0cyk7CisJCWhkciA9IGlzX21hc2sgPyAmbWFz ay0+aGRyIDogJnNwZWMtPmhkcjsKKwkJaXB2NF91ZHBfdHVuID0gKHN0cnVjdCBuZnBfZmxvd2Vy X2lwdjRfdWRwX3R1biAqKSptYnVmX29mZjsKIAotCWhkciA9IGlzX21hc2sgPyAmbWFzay0+aGRy IDogJnNwZWMtPmhkcjsKLQlpcHY0ID0gKHN0cnVjdCBuZnBfZmxvd2VyX2lwdjQgKikqbWJ1Zl9v ZmY7CisJCWlwdjRfdWRwX3R1bi0+aXBfZXh0LnRvcyA9IGhkci0+dHlwZV9vZl9zZXJ2aWNlOwor CQlpcHY0X3VkcF90dW4tPmlwX2V4dC50dGwgPSBoZHItPnRpbWVfdG9fbGl2ZTsKKwkJaXB2NF91 ZHBfdHVuLT5pcHY0LnNyYyAgID0gaGRyLT5zcmNfYWRkcjsKKwkJaXB2NF91ZHBfdHVuLT5pcHY0 LmRzdCAgID0gaGRyLT5kc3RfYWRkcjsKKwl9IGVsc2UgeworCQlpZiAoc3BlYyA9PSBOVUxMKSB7 CisJCQlQTURfRFJWX0xPRyhERUJVRywgIm5mcCBmbG93IG1lcmdlIGlwdjQ6IG5vIGl0ZW0tPnNw ZWMhIik7CisJCQlnb3RvIGlwdjRfZW5kOworCQl9CisKKwkJLyoKKwkJICogcmVzZXJ2ZSBzcGFj ZSBmb3IgTDQgaW5mby4KKwkJICogcnRlX2Zsb3cgaGFzIGlwdjQgYmVmb3JlIEw0IGJ1dCBORlAg Zmxvd2VyIGZ3IHJlcXVpcmVzIEw0IGJlZm9yZSBpcHY0CisJCSAqLworCQlpZiAobWV0YV90Y2kt Pm5mcF9mbG93X2tleV9sYXllciAmIE5GUF9GTE9XRVJfTEFZRVJfVFApCisJCQkqbWJ1Zl9vZmYg Kz0gc2l6ZW9mKHN0cnVjdCBuZnBfZmxvd2VyX3RwX3BvcnRzKTsKKworCQloZHIgPSBpc19tYXNr ID8gJm1hc2stPmhkciA6ICZzcGVjLT5oZHI7CisJCWlwdjQgPSAoc3RydWN0IG5mcF9mbG93ZXJf aXB2NCAqKSptYnVmX29mZjsKIAotCWlwdjQtPmlwX2V4dC50b3MgICA9IGhkci0+dHlwZV9vZl9z ZXJ2aWNlOwotCWlwdjQtPmlwX2V4dC5wcm90byA9IGhkci0+bmV4dF9wcm90b19pZDsKLQlpcHY0 LT5pcF9leHQudHRsICAgPSBoZHItPnRpbWVfdG9fbGl2ZTsKLQlpcHY0LT5pcHY0X3NyYyAgICAg PSBoZHItPnNyY19hZGRyOwotCWlwdjQtPmlwdjRfZHN0ICAgICA9IGhkci0+ZHN0X2FkZHI7CisJ CWlwdjQtPmlwX2V4dC50b3MgICA9IGhkci0+dHlwZV9vZl9zZXJ2aWNlOworCQlpcHY0LT5pcF9l eHQucHJvdG8gPSBoZHItPm5leHRfcHJvdG9faWQ7CisJCWlwdjQtPmlwX2V4dC50dGwgICA9IGhk ci0+dGltZV90b19saXZlOworCQlpcHY0LT5pcHY0X3NyYyAgICAgPSBoZHItPnNyY19hZGRyOwor CQlpcHY0LT5pcHY0X2RzdCAgICAgPSBoZHItPmRzdF9hZGRyOwogCiBpcHY0X2VuZDoKLQkqbWJ1 Zl9vZmYgKz0gc2l6ZW9mKHN0cnVjdCBuZnBfZmxvd2VyX2lwdjQpOworCQkqbWJ1Zl9vZmYgKz0g c2l6ZW9mKHN0cnVjdCBuZnBfZmxvd2VyX2lwdjQpOworCX0KIAogCXJldHVybiAwOwogfQpAQCAt ODMzLDcgKzg4Myw4IEBAIG5mcF9mbG93X21lcmdlX2lwdjYoc3RydWN0IHJ0ZV9mbG93ICpuZnBf ZmxvdywKIAkJY2hhciAqKm1idWZfb2ZmLAogCQljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfaXRlbSAq aXRlbSwKIAkJY29uc3Qgc3RydWN0IG5mcF9mbG93X2l0ZW1fcHJvYyAqcHJvYywKLQkJYm9vbCBp c19tYXNrKQorCQlib29sIGlzX21hc2ssCisJCV9fcnRlX3VudXNlZCBib29sIGlzX291dGVyX2xh eWVyKQogewogCXN0cnVjdCBuZnBfZmxvd2VyX2lwdjYgKmlwdjY7CiAJY29uc3Qgc3RydWN0IHJ0 ZV9pcHY2X2hkciAqaGRyOwpAQCAtODc4LDcgKzkyOSw4IEBAIG5mcF9mbG93X21lcmdlX3RjcChz dHJ1Y3QgcnRlX2Zsb3cgKm5mcF9mbG93LAogCQljaGFyICoqbWJ1Zl9vZmYsCiAJCWNvbnN0IHN0 cnVjdCBydGVfZmxvd19pdGVtICppdGVtLAogCQljb25zdCBzdHJ1Y3QgbmZwX2Zsb3dfaXRlbV9w cm9jICpwcm9jLAotCQlib29sIGlzX21hc2spCisJCWJvb2wgaXNfbWFzaywKKwkJX19ydGVfdW51 c2VkIGJvb2wgaXNfb3V0ZXJfbGF5ZXIpCiB7CiAJdWludDhfdCB0Y3BfZmxhZ3M7CiAJc3RydWN0 IG5mcF9mbG93ZXJfdHBfcG9ydHMgKnBvcnRzOwpAQCAtOTUwLDcgKzEwMDIsOCBAQCBuZnBfZmxv d19tZXJnZV91ZHAoc3RydWN0IHJ0ZV9mbG93ICpuZnBfZmxvdywKIAkJY2hhciAqKm1idWZfb2Zm LAogCQljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfaXRlbSAqaXRlbSwKIAkJY29uc3Qgc3RydWN0IG5m cF9mbG93X2l0ZW1fcHJvYyAqcHJvYywKLQkJYm9vbCBpc19tYXNrKQorCQlib29sIGlzX21hc2ss CisJCWJvb2wgaXNfb3V0ZXJfbGF5ZXIpCiB7CiAJY2hhciAqcG9ydHNfb2ZmOwogCXN0cnVjdCBu ZnBfZmxvd2VyX3RwX3BvcnRzICpwb3J0czsKQEAgLTk5MSw3ICsxMDUwLDggQEAgbmZwX2Zsb3df bWVyZ2Vfc2N0cChzdHJ1Y3QgcnRlX2Zsb3cgKm5mcF9mbG93LAogCQljaGFyICoqbWJ1Zl9vZmYs CiAJCWNvbnN0IHN0cnVjdCBydGVfZmxvd19pdGVtICppdGVtLAogCQljb25zdCBzdHJ1Y3QgbmZw X2Zsb3dfaXRlbV9wcm9jICpwcm9jLAotCQlib29sIGlzX21hc2spCisJCWJvb2wgaXNfbWFzaywK KwkJX19ydGVfdW51c2VkIGJvb2wgaXNfb3V0ZXJfbGF5ZXIpCiB7CiAJY2hhciAqcG9ydHNfb2Zm OwogCXN0cnVjdCBuZnBfZmxvd2VyX3RwX3BvcnRzICpwb3J0czsKQEAgLTEwMjcsMTAgKzEwODcs NDIgQEAgbmZwX2Zsb3dfbWVyZ2Vfc2N0cChzdHJ1Y3QgcnRlX2Zsb3cgKm5mcF9mbG93LAogCXJl dHVybiAwOwogfQogCitzdGF0aWMgaW50CituZnBfZmxvd19tZXJnZV92eGxhbihfX3J0ZV91bnVz ZWQgc3RydWN0IHJ0ZV9mbG93ICpuZnBfZmxvdywKKwkJY2hhciAqKm1idWZfb2ZmLAorCQljb25z dCBzdHJ1Y3QgcnRlX2Zsb3dfaXRlbSAqaXRlbSwKKwkJY29uc3Qgc3RydWN0IG5mcF9mbG93X2l0 ZW1fcHJvYyAqcHJvYywKKwkJYm9vbCBpc19tYXNrLAorCQlfX3J0ZV91bnVzZWQgYm9vbCBpc19v dXRlcl9sYXllcikKK3sKKwljb25zdCBzdHJ1Y3QgcnRlX3Z4bGFuX2hkciAqaGRyOworCXN0cnVj dCBuZnBfZmxvd2VyX2lwdjRfdWRwX3R1biAqdHVuNDsKKwljb25zdCBzdHJ1Y3QgcnRlX2Zsb3df aXRlbV92eGxhbiAqc3BlYzsKKwljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfaXRlbV92eGxhbiAqbWFz azsKKworCXNwZWMgPSBpdGVtLT5zcGVjOworCWlmIChzcGVjID09IE5VTEwpIHsKKwkJUE1EX0RS Vl9MT0coREVCVUcsICJuZnAgZmxvdyBtZXJnZSB2eGxhbjogbm8gaXRlbS0+c3BlYyEiKTsKKwkJ Z290byB2eGxhbl9lbmQ7CisJfQorCisJbWFzayA9IGl0ZW0tPm1hc2sgPyBpdGVtLT5tYXNrIDog cHJvYy0+bWFza19kZWZhdWx0OworCWhkciA9IGlzX21hc2sgPyAmbWFzay0+aGRyIDogJnNwZWMt PmhkcjsKKworCXR1bjQgPSAoc3RydWN0IG5mcF9mbG93ZXJfaXB2NF91ZHBfdHVuICopKm1idWZf b2ZmOworCXR1bjQtPnR1bl9pZCA9IGhkci0+dnhfdm5pOworCit2eGxhbl9lbmQ6CisJKm1idWZf b2ZmICs9IHNpemVvZihzdHJ1Y3QgbmZwX2Zsb3dlcl9pcHY0X3VkcF90dW4pOworCisJcmV0dXJu IDA7Cit9CisKIC8qIEdyYXBoIG9mIHN1cHBvcnRlZCBpdGVtcyBhbmQgYXNzb2NpYXRlZCBwcm9j ZXNzIGZ1bmN0aW9uICovCiBzdGF0aWMgY29uc3Qgc3RydWN0IG5mcF9mbG93X2l0ZW1fcHJvYyBu ZnBfZmxvd19pdGVtX3Byb2NfbGlzdFtdID0gewogCVtSVEVfRkxPV19JVEVNX1RZUEVfRU5EXSA9 IHsKLQkJLm5leHRfaXRlbSA9IE5FWFRfSVRFTShSVEVfRkxPV19JVEVNX1RZUEVfRVRIKSwKKwkJ Lm5leHRfaXRlbSA9IE5FWFRfSVRFTShSVEVfRkxPV19JVEVNX1RZUEVfRVRILAorCQkJUlRFX0ZM T1dfSVRFTV9UWVBFX0lQVjQpLAogCX0sCiAJW1JURV9GTE9XX0lURU1fVFlQRV9FVEhdID0gewog CQkubmV4dF9pdGVtID0gTkVYVF9JVEVNKFJURV9GTE9XX0lURU1fVFlQRV9WTEFOLApAQCAtMTEx Myw2ICsxMjA1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBuZnBfZmxvd19pdGVtX3Byb2MgbmZw X2Zsb3dfaXRlbV9wcm9jX2xpc3RbXSA9IHsKIAkJLm1lcmdlID0gbmZwX2Zsb3dfbWVyZ2VfdGNw LAogCX0sCiAJW1JURV9GTE9XX0lURU1fVFlQRV9VRFBdID0geworCQkubmV4dF9pdGVtID0gTkVY VF9JVEVNKFJURV9GTE9XX0lURU1fVFlQRV9WWExBTiksCiAJCS5tYXNrX3N1cHBvcnQgPSAmKGNv bnN0IHN0cnVjdCBydGVfZmxvd19pdGVtX3VkcCl7CiAJCQkuaGRyID0gewogCQkJCS5zcmNfcG9y dCA9IFJURV9CRTE2KDB4ZmZmZiksCkBAIC0xMTM0LDYgKzEyMjcsMTcgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBuZnBfZmxvd19pdGVtX3Byb2MgbmZwX2Zsb3dfaXRlbV9wcm9jX2xpc3RbXSA9IHsK IAkJLm1hc2tfc3ogPSBzaXplb2Yoc3RydWN0IHJ0ZV9mbG93X2l0ZW1fc2N0cCksCiAJCS5tZXJn ZSA9IG5mcF9mbG93X21lcmdlX3NjdHAsCiAJfSwKKwlbUlRFX0ZMT1dfSVRFTV9UWVBFX1ZYTEFO XSA9IHsKKwkJLm5leHRfaXRlbSA9IE5FWFRfSVRFTShSVEVfRkxPV19JVEVNX1RZUEVfRVRIKSwK KwkJLm1hc2tfc3VwcG9ydCA9ICYoY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2l0ZW1fdnhsYW4pewor CQkJLmhkciA9IHsKKwkJCQkudnhfdm5pID0gUlRFX0JFMzIoMHhmZmZmZmYwMCksCisJCQl9LAor CQl9LAorCQkubWFza19kZWZhdWx0ID0gJnJ0ZV9mbG93X2l0ZW1fdnhsYW5fbWFzaywKKwkJLm1h c2tfc3ogPSBzaXplb2Yoc3RydWN0IHJ0ZV9mbG93X2l0ZW1fdnhsYW4pLAorCQkubWVyZ2UgPSBu ZnBfZmxvd19tZXJnZV92eGxhbiwKKwl9LAogfTsKIAogc3RhdGljIGludApAQCAtMTE4NywyMSAr MTI5MSw1MyBAQCBuZnBfZmxvd19pdGVtX2NoZWNrKGNvbnN0IHN0cnVjdCBydGVfZmxvd19pdGVt ICppdGVtLAogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyBib29sCituZnBfZmxvd19pc190dW5f aXRlbShjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfaXRlbSAqaXRlbSkKK3sKKwlpZiAoaXRlbS0+dHlw ZSA9PSBSVEVfRkxPV19JVEVNX1RZUEVfVlhMQU4pCisJCXJldHVybiB0cnVlOworCisJcmV0dXJu IGZhbHNlOworfQorCitzdGF0aWMgYm9vbAorbmZwX2Zsb3dfaW5uZXJfaXRlbV9nZXQoY29uc3Qg c3RydWN0IHJ0ZV9mbG93X2l0ZW0gaXRlbXNbXSwKKwkJY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2l0 ZW0gKippbm5lcl9pdGVtKQoreworCWNvbnN0IHN0cnVjdCBydGVfZmxvd19pdGVtICppdGVtOwor CisJKmlubmVyX2l0ZW0gPSBpdGVtczsKKworCWZvciAoaXRlbSA9IGl0ZW1zOyBpdGVtLT50eXBl ICE9IFJURV9GTE9XX0lURU1fVFlQRV9FTkQ7ICsraXRlbSkgeworCQlpZiAobmZwX2Zsb3dfaXNf dHVuX2l0ZW0oaXRlbSkpIHsKKwkJCSppbm5lcl9pdGVtID0gKytpdGVtOworCQkJcmV0dXJuIHRy dWU7CisJCX0KKwl9CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKIHN0YXRpYyBpbnQKIG5mcF9mbG93 X2NvbXBpbGVfaXRlbV9wcm9jKGNvbnN0IHN0cnVjdCBydGVfZmxvd19pdGVtIGl0ZW1zW10sCiAJ CXN0cnVjdCBydGVfZmxvdyAqbmZwX2Zsb3csCiAJCWNoYXIgKiptYnVmX29mZl9leGFjdCwKLQkJ Y2hhciAqKm1idWZfb2ZmX21hc2spCisJCWNoYXIgKiptYnVmX29mZl9tYXNrLAorCQlib29sIGlz X291dGVyX2xheWVyKQogewogCWludCBpOwogCWludCByZXQgPSAwOworCWJvb2wgY29udGludWVf ZmxhZyA9IHRydWU7CiAJY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2l0ZW0gKml0ZW07CiAJY29uc3Qg c3RydWN0IG5mcF9mbG93X2l0ZW1fcHJvYyAqcHJvY19saXN0OwogCiAJcHJvY19saXN0ID0gbmZw X2Zsb3dfaXRlbV9wcm9jX2xpc3Q7Ci0JZm9yIChpdGVtID0gaXRlbXM7IGl0ZW0tPnR5cGUgIT0g UlRFX0ZMT1dfSVRFTV9UWVBFX0VORDsgKytpdGVtKSB7CisJZm9yIChpdGVtID0gaXRlbXM7IGl0 ZW0tPnR5cGUgIT0gUlRFX0ZMT1dfSVRFTV9UWVBFX0VORCAmJiBjb250aW51ZV9mbGFnOyArK2l0 ZW0pIHsKIAkJY29uc3Qgc3RydWN0IG5mcF9mbG93X2l0ZW1fcHJvYyAqcHJvYyA9IE5VTEw7CiAK KwkJaWYgKG5mcF9mbG93X2lzX3R1bl9pdGVtKGl0ZW0pKQorCQkJY29udGludWVfZmxhZyA9IGZh bHNlOworCiAJCWZvciAoaSA9IDA7IHByb2NfbGlzdC0+bmV4dF9pdGVtICYmIHByb2NfbGlzdC0+ bmV4dF9pdGVtW2ldOyArK2kpIHsKIAkJCWlmIChwcm9jX2xpc3QtPm5leHRfaXRlbVtpXSA9PSBp dGVtLT50eXBlKSB7CiAJCQkJcHJvYyA9ICZuZnBfZmxvd19pdGVtX3Byb2NfbGlzdFtpdGVtLT50 eXBlXTsKQEAgLTEyMzAsMTQgKzEzNjYsMTQgQEAgbmZwX2Zsb3dfY29tcGlsZV9pdGVtX3Byb2Mo Y29uc3Qgc3RydWN0IHJ0ZV9mbG93X2l0ZW0gaXRlbXNbXSwKIAkJfQogCiAJCXJldCA9IHByb2Mt Pm1lcmdlKG5mcF9mbG93LCBtYnVmX29mZl9leGFjdCwgaXRlbSwKLQkJCQlwcm9jLCBmYWxzZSk7 CisJCQkJcHJvYywgZmFsc2UsIGlzX291dGVyX2xheWVyKTsKIAkJaWYgKHJldCAhPSAwKSB7CiAJ CQlQTURfRFJWX0xPRyhFUlIsICJuZnAgZmxvdyBpdGVtICVkIGV4YWN0IG1lcmdlIGZhaWxlZCIs IGl0ZW0tPnR5cGUpOwogCQkJYnJlYWs7CiAJCX0KIAogCQlyZXQgPSBwcm9jLT5tZXJnZShuZnBf ZmxvdywgbWJ1Zl9vZmZfbWFzaywgaXRlbSwKLQkJCQlwcm9jLCB0cnVlKTsKKwkJCQlwcm9jLCB0 cnVlLCBpc19vdXRlcl9sYXllcik7CiAJCWlmIChyZXQgIT0gMCkgewogCQkJUE1EX0RSVl9MT0co RVJSLCAibmZwIGZsb3cgaXRlbSAlZCBtYXNrIG1lcmdlIGZhaWxlZCIsIGl0ZW0tPnR5cGUpOwog CQkJYnJlYWs7CkBAIC0xMjU3LDYgKzEzOTMsOSBAQCBuZnBfZmxvd19jb21waWxlX2l0ZW1zKF9f cnRlX3VudXNlZCBzdHJ1Y3QgbmZwX2Zsb3dlcl9yZXByZXNlbnRvciAqcmVwcmVzZW50b3IsCiAJ aW50IHJldDsKIAljaGFyICptYnVmX29mZl9tYXNrOwogCWNoYXIgKm1idWZfb2ZmX2V4YWN0Owor CWJvb2wgaXNfdHVuX2Zsb3cgPSBmYWxzZTsKKwlib29sIGlzX291dGVyX2xheWVyID0gdHJ1ZTsK Kwljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfaXRlbSAqbG9vcF9pdGVtOwogCiAJbWJ1Zl9vZmZfZXhh Y3QgPSBuZnBfZmxvdy0+cGF5bG9hZC51bm1hc2tlZF9kYXRhICsKIAkJCXNpemVvZihzdHJ1Y3Qg bmZwX2Zsb3dlcl9tZXRhX3RjaSkgKwpAQCAtMTI2NSwxNCArMTQwNCwyOSBAQCBuZnBfZmxvd19j b21waWxlX2l0ZW1zKF9fcnRlX3VudXNlZCBzdHJ1Y3QgbmZwX2Zsb3dlcl9yZXByZXNlbnRvciAq cmVwcmVzZW50b3IsCiAJCQlzaXplb2Yoc3RydWN0IG5mcF9mbG93ZXJfbWV0YV90Y2kpICsKIAkJ CXNpemVvZihzdHJ1Y3QgbmZwX2Zsb3dlcl9pbl9wb3J0KTsKIAorCS8qIENoZWNrIGlmIHRoaXMg aXMgYSB0dW5uZWwgZmxvdyBhbmQgZ2V0IHRoZSBpbm5lciBpdGVtKi8KKwlpc190dW5fZmxvdyA9 IG5mcF9mbG93X2lubmVyX2l0ZW1fZ2V0KGl0ZW1zLCAmbG9vcF9pdGVtKTsKKwlpZiAoaXNfdHVu X2Zsb3cpCisJCWlzX291dGVyX2xheWVyID0gZmFsc2U7CisKIAkvKiBHbyBvdmVyIGl0ZW1zICov Ci0JcmV0ID0gbmZwX2Zsb3dfY29tcGlsZV9pdGVtX3Byb2MoaXRlbXMsIG5mcF9mbG93LAotCQkJ Jm1idWZfb2ZmX2V4YWN0LCAmbWJ1Zl9vZmZfbWFzayk7CisJcmV0ID0gbmZwX2Zsb3dfY29tcGls ZV9pdGVtX3Byb2MobG9vcF9pdGVtLCBuZnBfZmxvdywKKwkJCSZtYnVmX29mZl9leGFjdCwgJm1i dWZfb2ZmX21hc2ssIGlzX291dGVyX2xheWVyKTsKIAlpZiAocmV0ICE9IDApIHsKIAkJUE1EX0RS Vl9MT0coRVJSLCAibmZwIGZsb3cgaXRlbSBjb21waWxlIGZhaWxlZC4iKTsKIAkJcmV0dXJuIC1F SU5WQUw7CiAJfQogCisJLyogR28gb3ZlciBpbm5lciBpdGVtcyAqLworCWlmIChpc190dW5fZmxv dykgeworCQlyZXQgPSBuZnBfZmxvd19jb21waWxlX2l0ZW1fcHJvYyhpdGVtcywgbmZwX2Zsb3cs CisJCQkJJm1idWZfb2ZmX2V4YWN0LCAmbWJ1Zl9vZmZfbWFzaywgdHJ1ZSk7CisJCWlmIChyZXQg IT0gMCkgeworCQkJUE1EX0RSVl9MT0coRVJSLCAibmZwIGZsb3cgb3V0ZXIgaXRlbSBjb21waWxl IGZhaWxlZC4iKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisJfQorCiAJcmV0dXJuIDA7CiB9 CiAKQEAgLTIxMTksMTIgKzIyNzMsMzUgQEAgbmZwX2Zsb3dfcXVlcnkoc3RydWN0IHJ0ZV9ldGhf ZGV2ICpkZXYsCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQKK25mcF9mbG93X3R1bm5lbF9t YXRjaChfX3J0ZV91bnVzZWQgc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsCisJCV9fcnRlX3VudXNl ZCBzdHJ1Y3QgcnRlX2Zsb3dfdHVubmVsICp0dW5uZWwsCisJCV9fcnRlX3VudXNlZCBzdHJ1Y3Qg cnRlX2Zsb3dfaXRlbSAqKnBtZF9pdGVtcywKKwkJdWludDMyX3QgKm51bV9vZl9pdGVtcywKKwkJ X19ydGVfdW51c2VkIHN0cnVjdCBydGVfZmxvd19lcnJvciAqZXJyKQoreworCSpudW1fb2ZfaXRl bXMgPSAwOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK25mcF9mbG93X3R1bm5lbF9p dGVtX3JlbGVhc2UoX19ydGVfdW51c2VkIHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LAorCQlfX3J0 ZV91bnVzZWQgc3RydWN0IHJ0ZV9mbG93X2l0ZW0gKnBtZF9pdGVtcywKKwkJX19ydGVfdW51c2Vk IHVpbnQzMl90IG51bV9vZl9pdGVtcywKKwkJX19ydGVfdW51c2VkIHN0cnVjdCBydGVfZmxvd19l cnJvciAqZXJyKQoreworCXJldHVybiAwOworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IHJ0ZV9m bG93X29wcyBuZnBfZmxvd19vcHMgPSB7CiAJLnZhbGlkYXRlICAgICAgICAgICAgICAgICAgICA9 IG5mcF9mbG93X3ZhbGlkYXRlLAogCS5jcmVhdGUgICAgICAgICAgICAgICAgICAgICAgPSBuZnBf Zmxvd19jcmVhdGUsCiAJLmRlc3Ryb3kgICAgICAgICAgICAgICAgICAgICA9IG5mcF9mbG93X2Rl c3Ryb3ksCiAJLmZsdXNoICAgICAgICAgICAgICAgICAgICAgICA9IG5mcF9mbG93X2ZsdXNoLAog CS5xdWVyeSAgICAgICAgICAgICAgICAgICAgICAgPSBuZnBfZmxvd19xdWVyeSwKKwkudHVubmVs X21hdGNoICAgICAgICAgICAgICAgID0gbmZwX2Zsb3dfdHVubmVsX21hdGNoLAorCS50dW5uZWxf aXRlbV9yZWxlYXNlICAgICAgICAgPSBuZnBfZmxvd190dW5uZWxfaXRlbV9yZWxlYXNlLAogfTsK IAogaW50CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L25mcC9mbG93ZXIvbmZwX2Zsb3dlcl9j bXNnLmguLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglydGVfYmUzMl90IGRzdDsKfTsK CnN0cnVjdCBuZnBfZmxvd2VyX3R1bl9pcF9leHQgewoJdWludDhfdCB0b3M7Cgl1aW50OF90IHR0 bDsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L25mcC9mbG93ZXIvbmZwX2Zsb3dl cl9jbXNnLmg6MzI5CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJcnRlX2JlMzJfdCB0dW5f aWQ7Cn07CgpzdHJ1Y3QgbmZwX2ZsX2FjdF9oZWFkIHsKCXVpbnQ4X3QganVtcF9pZDsKCXVpbnQ4 X3QgbGVuX2x3OwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbmZwL2Zsb3dlci9u ZnBfZmxvd2VyX2Ntc2cuaDozNTkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbmZwL25mcF9m bG93LmMuLi4KZXJyb3I6IGRyaXZlcnMvbmV0L25mcC9uZnBfZmxvdy5jOiBkb2VzIG5vdCBtYXRj aCBpbmRleApBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvZmxvd2VyL25mcF9mbG93ZXJf Y21zZy5oIHdpdGggMiByZWplY3RzLi4uClJlamVjdGVkIGh1bmsgIzEuClJlamVjdGVkIGh1bmsg IzIuCmRpZmYgYS9kcml2ZXJzL25ldC9uZnAvZmxvd2VyL25mcF9mbG93ZXJfY21zZy5oIGIvZHJp dmVycy9uZXQvbmZwL2Zsb3dlci9uZnBfZmxvd2VyX2Ntc2cuaAkocmVqZWN0ZWQgaHVua3MpCkBA IC0zMjksNiArMzI5LDExIEBAIHN0cnVjdCBuZnBfZmxvd2VyX3R1bl9pcHY0IHsKIAlydGVfYmUz Ml90IGRzdDsKIH07CiAKK3N0cnVjdCBuZnBfZmxvd2VyX3R1bl9pcHY2IHsKKwl1aW50OF90IGlw djZfc3JjWzE2XTsKKwl1aW50OF90IGlwdjZfZHN0WzE2XTsKK307CisKIHN0cnVjdCBuZnBfZmxv d2VyX3R1bl9pcF9leHQgewogCXVpbnQ4X3QgdG9zOwogCXVpbnQ4X3QgdHRsOwpAQCAtMzU5LDYg KzM2NCw0MyBAQCBzdHJ1Y3QgbmZwX2Zsb3dlcl9pcHY0X3VkcF90dW4gewogCXJ0ZV9iZTMyX3Qg dHVuX2lkOwogfTsKIAorLyoKKyAqIEZsb3cgRnJhbWUgSVB2NiBVRFAgVFVOTkVMIC0tPiBUdW5u ZWwgZGV0YWlscyAoMTFXLzQ0QikKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiAgICAzICAgICAgICAgICAgICAg ICAgIDIgICAgICAgICAgICAgICAgICAgMQorICogIDEgMCA5IDggNyA2IDUgNCAzIDIgMSAwIDkg OCA3IDYgNSA0IDMgMiAxIDAgOSA4IDcgNiA1IDQgMyAyIDEgMAorICogKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKKyAqIHwg ICAgICAgICAgICAgICAgICBpcHY2X2FkZHJfc3JjLCAgIDMxIC0gMCAgICAgICAgICAgICAgICAg ICAgICB8CisgKiArLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKworICogfCAgICAgICAgICAgICAgICAgIGlwdjZfYWRkcl9zcmMs ICA2MyAtIDMyICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCisgKiB8ICAgICAg ICAgICAgICAgICAgaXB2Nl9hZGRyX3NyYywgIDk1IC0gNjQgICAgICAgICAgICAgICAgICAgICAg fAorICogKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSsKKyAqIHwgICAgICAgICAgICAgICAgICBpcHY2X2FkZHJfc3JjLCAxMjcg LSA5NiAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKworICogfCAgICAgICAgICAg ICAgICAgIGlwdjZfYWRkcl9kc3QsICAgMzEgLSAwICAgICAgICAgICAgICAgICAgICAgIHwKKyAq ICstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rCisgKiB8ICAgICAgICAgICAgICAgICAgaXB2Nl9hZGRyX2RzdCwgIDYzIC0gMzIg ICAgICAgICAgICAgICAgICAgICAgfAorICogKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKKyAqIHwgICAgICAgICAgICAgICAg ICBpcHY2X2FkZHJfZHN0LCAgOTUgLSA2NCAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKworICogfCAgICAgICAgICAgICAgICAgIGlwdjZfYWRkcl9kc3QsIDEyNyAtIDk2ICAgICAg ICAgICAgICAgICAgICAgIHwKKyAqICstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCisgKiB8ICAgICAgICAgICBSZXNlcnZlZCAg ICAgICAgICAgIHwgICAgICB0b3MgICAgICB8ICAgICAgdHRsICAgICAgfAorICogKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsK KyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQgICAgICAgICAgICAgICAg ICAgICAgICAgICB8CisgKiArLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKworICogfCAgICAgICAgICAgICAgICAgICAgIFZOSSAg ICAgICAgICAgICAgICAgICAgICAgfCAgIFJlc2VydmVkICAgIHwKKyAqICstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCisgKi8K K3N0cnVjdCBuZnBfZmxvd2VyX2lwdjZfdWRwX3R1biB7CisJc3RydWN0IG5mcF9mbG93ZXJfdHVu X2lwdjYgaXB2NjsKKwlydGVfYmUxNl90IHJlc2VydmVkMTsKKwlzdHJ1Y3QgbmZwX2Zsb3dlcl90 dW5faXBfZXh0IGlwX2V4dDsKKwlydGVfYmUzMl90IHJlc2VydmVkMjsKKwlydGVfYmUzMl90IHR1 bl9pZDsKK307CisKIHN0cnVjdCBuZnBfZmxfYWN0X2hlYWQgewogCXVpbnQ4X3QganVtcF9pZDsK IAl1aW50OF90IGxlbl9sdzsKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbmZwL2Zsb3dlci9u ZnBfZmxvd2VyX2Ntc2cuYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCA0NjggKG9mZnNldCAyMjIg bGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvZmxvd2VyL25mcF9mbG93ZXJf Y21zZy5oLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJcnRlX2JlMTZfdCBtdHU7Cn07 CgovKgogKiBORlBfRkxPV0VSX0NNU0dfVFlQRV9GTE9XX1NUQVRTCiAqICAgIEJpdCAgICAzIDMg MiAyIDIgMiAyIDIgMiAyIDIgMiAxIDEgMSAxIDEgMSAxIDEgMSAxIDAgMCAwIDAgMCAwIDAgMCAw IDAKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L25mcC9mbG93ZXIvbmZwX2Zsb3dl cl9jbXNnLmg6MTI5CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJcnRlX2JlMTZfdCBkc3Rf cG9ydDsKfTsKCmludCBuZnBfZmxvd2VyX2Ntc2dfbWFjX3JlcHIoc3RydWN0IG5mcF9hcHBfZndf Zmxvd2VyICphcHBfZndfZmxvd2VyKTsKaW50IG5mcF9mbG93ZXJfY21zZ19yZXByX3JlaWZ5KHN0 cnVjdCBuZnBfYXBwX2Z3X2Zsb3dlciAqYXBwX2Z3X2Zsb3dlciwKCQlzdHJ1Y3QgbmZwX2Zsb3dl cl9yZXByZXNlbnRvciAqcmVwcik7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9u ZnAvZmxvd2VyL25mcF9mbG93ZXJfY21zZy5oOjU3NAplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZv cjoKCQlzdHJ1Y3QgcnRlX2Zsb3cgKmZsb3cpOwppbnQgbmZwX2Zsb3dlcl9jbXNnX2Zsb3dfYWRk KHN0cnVjdCBuZnBfYXBwX2Z3X2Zsb3dlciAqYXBwX2Z3X2Zsb3dlciwKCQlzdHJ1Y3QgcnRlX2Zs b3cgKmZsb3cpOwoKI2VuZGlmIC8qIF9ORlBfQ01TR19IXyAqLwoKZXJyb3I6IHBhdGNoIGZhaWxl ZDogZHJpdmVycy9uZXQvbmZwL2Zsb3dlci9uZnBfZmxvd2VyX2Ntc2cuaDo1ODMKQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvbmZwL25mcF9mbG93LmMuLi4KZXJyb3I6IGRyaXZlcnMvbmV0L25m cC9uZnBfZmxvdy5jOiBkb2VzIG5vdCBtYXRjaCBpbmRleApDaGVja2luZyBwYXRjaCBkcml2ZXJz L25ldC9uZnAvbmZwX2Zsb3cuaC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCU5GUF9G TF9UVU5fR0VORVZFID0gNCwKfTsKCnN0cnVjdCBuZnBfZmxfa2V5X2xzIHsKCXVpbnQzMl90IGtl eV9sYXllcl90d287Cgl1aW50OF90IGtleV9sYXllcjsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRy aXZlcnMvbmV0L25mcC9uZnBfZmxvdy5oOjkwCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJ Y2hhciAqYWN0aW9uX2RhdGE7Cn07CgojZGVmaW5lIENJUkNfQ05UKGhlYWQsIHRhaWwsIHNpemUp ICAgICAoKChoZWFkKSAtICh0YWlsKSkgJiAoKHNpemUpIC0gMSkpCiNkZWZpbmUgQ0lSQ19TUEFD RShoZWFkLCB0YWlsLCBzaXplKSAgIENJUkNfQ05UKCh0YWlsKSwgKChoZWFkKSArIDEpLCAoc2l6 ZSkpCnN0cnVjdCBjaXJjX2J1ZiB7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9u ZnAvbmZwX2Zsb3cuaDoxMTgKZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglzdHJ1Y3QgbmZw X2ZsX3N0YXRzX2lkIHN0YXRzX2lkczsgLyoqPCBUaGUgc3RhdHMgaWQgcmluZy4gKi8KCXN0cnVj dCBuZnBfZmxfc3RhdHMgKnN0YXRzOyAvKio8IFN0b3JlIHN0YXRzIG9mIGZsb3cuICovCglydGVf c3BpbmxvY2tfdCBzdGF0c19sb2NrOyAvKiogPCBMb2NrIHRoZSB1cGRhdGUgb2YgJ3N0YXRzJyBm aWVsZC4gKi8KfTsKCnN0cnVjdCBydGVfZmxvdyB7CglzdHJ1Y3QgbmZwX2ZsX3BheWxvYWQgcGF5 bG9hZDsKCXNpemVfdCBsZW5ndGg7Cgl1aW50MzJfdCBoYXNoX2tleTsKCWJvb2wgaW5zdGFsbF9m bGFnOwp9OwoKaW50IG5mcF9mbG93X3ByaXZfaW5pdChzdHJ1Y3QgbmZwX3BmX2RldiAqcGZfZGV2 KTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L25mcC9uZnBfZmxvdy5oOjE2MQpB cHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L25mcC9mbG93ZXIvbmZwX2Zsb3dlcl9jbXNnLmMgY2xl YW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbmZwL2Zsb3dlci9uZnBfZmxvd2VyX2Nt c2cuaCB3aXRoIDMgcmVqZWN0cy4uLgpSZWplY3RlZCBodW5rICMxLgpSZWplY3RlZCBodW5rICMy LgpSZWplY3RlZCBodW5rICMzLgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvbmZwX2Zs b3cuaCB3aXRoIDMgcmVqZWN0cy4uLgpSZWplY3RlZCBodW5rICMxLgpSZWplY3RlZCBodW5rICMy LgpSZWplY3RlZCBodW5rICMzLgpkaWZmIGEvZHJpdmVycy9uZXQvbmZwL2Zsb3dlci9uZnBfZmxv d2VyX2Ntc2cuaCBiL2RyaXZlcnMvbmV0L25mcC9mbG93ZXIvbmZwX2Zsb3dlcl9jbXNnLmgJKHJl amVjdGVkIGh1bmtzKQpAQCAtMTI5LDYgKzEyOSwzNiBAQCBzdHJ1Y3QgbmZwX2Zsb3dlcl9jbXNn X3BvcnRfbW9kIHsKIAlydGVfYmUxNl90IG10dTsKIH07CiAKK3N0cnVjdCBuZnBfZmxvd2VyX3R1 bl9uZWlnaCB7CisJdWludDhfdCBkc3RfbWFjW1JURV9FVEhFUl9BRERSX0xFTl07CisJdWludDhf dCBzcmNfbWFjW1JURV9FVEhFUl9BRERSX0xFTl07CisJcnRlX2JlMzJfdCBwb3J0X2lkOworfTsK KworLyoKKyAqIE5GUF9GTE9XRVJfQ01TR19UWVBFX1RVTl9ORUlHSF9WNAorICogICAgQml0ICAg IDMgMyAyIDIgMiAyIDIgMiAyIDIgMiAyIDEgMSAxIDEgMSAxIDEgMSAxIDEgMCAwIDAgMCAwIDAg MCAwIDAgMAorICogICAgLS0tLS1cIDEgMCA5IDggNyA2IDUgNCAzIDIgMSAwIDkgOCA3IDYgNSA0 IDMgMiAxIDAgOSA4IDcgNiA1IDQgMyAyIDEgMAorICogICAgICAgICAgKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAg ICAgICAwIHwgICAgICAgICAgICAgICAgICAgICAgICAgICBEU1RfSVBWNCAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8CisgKiAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICogICAgICAgIDEgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgIFNSQ19JUFY0ICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwKKyAqICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgKiAgICAgICAgMiB8ICAgICAgICAgICAgICAgICAg ICAgIERTVF9NQUNfQjVfQjRfQjNfQjIgICAgICAgICAgICAgICAgICAgICAgfAorICogICAgICAg ICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSsKKyAqICAgICAgICAzIHwgICAgICAgICAgICAgRFNUX01BQ19CMV9CMCAgICAg fCAgICAgICAgU1JDX01BQ19CNV9CNCAgICAgICAgICB8CisgKiAgICAgICAgICArLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwor ICogICAgICAgIDQgfCAgICAgICAgICAgICAgICAgICAgICAgU1JDX01BQ19CM19CMl9CMV9CMCAg ICAgICAgICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgKiAgICAgICAgNSB8 ICAgICAgICAgICAgICAgICAgICBFZ3Jlc3MgUG9ydCAoTkZQIGludGVybmFsKSAgICAgICAgICAg ICAgICAgfAorICogICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqLworc3RydWN0IG5mcF9mbG93ZXJfY21z Z190dW5fbmVpZ2hfdjQgeworCXJ0ZV9iZTMyX3QgZHN0X2lwdjQ7CisJcnRlX2JlMzJfdCBzcmNf aXB2NDsKKwlzdHJ1Y3QgbmZwX2Zsb3dlcl90dW5fbmVpZ2ggY29tbW9uOworfTsKKwogLyoKICAq IE5GUF9GTE9XRVJfQ01TR19UWVBFX0ZMT1dfU1RBVFMKICAqICAgIEJpdCAgICAzIDMgMiAyIDIg MiAyIDIgMiAyIDIgMiAxIDEgMSAxIDEgMSAxIDEgMSAxIDAgMCAwIDAgMCAwIDAgMCAwIDAKQEAg LTU3NCw2ICs2MDQsNjcgQEAgc3RydWN0IG5mcF9mbF9hY3Rfc2V0X3Rwb3J0IHsKIAlydGVfYmUx Nl90IGRzdF9wb3J0OwogfTsKIAorLyoKKyAqIFByZS10dW5uZWwKKyAqICAgIDMgICAgICAgICAg ICAgICAgICAgMiAgICAgICAgICAgICAgICAgICAxCisgKiAgMSAwIDkgOCA3IDYgNSA0IDMgMiAx IDAgOSA4IDcgNiA1IDQgMyAyIDEgMCA5IDggNyA2IDUgNCAzIDIgMSAwCisgKiArLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKwor ICogfCAgLSAgfCAgb3Bjb2RlIHwgICAgICAgfGp1bXBfaWR8ICAgICAgICAgICAgICAtICAgICAg fE18ICAgLSB8VnwKKyAqICstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rCisgKiB8ICAgICAgICAgaXB2Nl9kYWRkcl8xMjdfOTYg ICAgIC8gICAgIGlwdjRfZGFkZHIgICAgICAgICAgICAgICAgfAorICogKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKKyAqIHwg ICAgICAgICAgICAgICAgICAgICBpcHY2X2RhZGRyXzk1XzY0ICAgICAgICAgICAgICAgICAgICAg ICAgICB8CisgKiArLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKworICogfCAgICAgICAgICAgICAgICAgICAgIGlwdjZfZGFkZHJf NjNfMzIgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCisgKiB8ICAgICAg ICAgICAgICAgICAgICAgaXB2Nl9kYWRkcl8zMV8wICAgICAgICAgICAgICAgICAgICAgICAgICAg fAorICogKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSsKKyAqLworc3RydWN0IG5mcF9mbF9hY3RfcHJlX3R1biB7CisJc3RydWN0 IG5mcF9mbF9hY3RfaGVhZCBoZWFkOworCXJ0ZV9iZTE2X3QgZmxhZ3M7CisJdW5pb24geworCQly dGVfYmUzMl90IGlwdjRfZHN0OworCQl1aW50OF90IGlwdjZfZHN0WzE2XTsKKwl9OworfTsKKwor LyoKKyAqIFNldCB0dW5uZWwKKyAqICAgIDMgICAgICAgICAgICAgICAgICAgMiAgICAgICAgICAg ICAgICAgICAxCisgKiAgMSAwIDkgOCA3IDYgNSA0IDMgMiAxIDAgOSA4IDcgNiA1IDQgMyAyIDEg MCA5IDggNyA2IDUgNCAzIDIgMSAwCisgKiArLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKworICogfCByZXMgfCAgb3Bjb2RlIHwg IHJlcyAgfCBsZW5fbHd8ICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgIHwKKyAqICstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rCisgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR1bl9pZDAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfAorICogKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdHVuX2lkMSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKwor ICogfCAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgfCAgdHlw ZSB8cnwgaWR4IHwKKyAqICstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rCisgKiB8ICAgICAgICAgICBpcHY0X2ZsYWdzICAgICAg ICAgIHwgICAgICB0dGwgICAgICB8ICAgICAgdG9zICAgICAgfAorICogKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKKyAqIHwg ICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWRfY3ZzMSAgICAgICAgICAgICAgICAgICAg ICAgICB8CisgKiArLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKworICogfCAgICAgICAgICByZXNlcnZlZF9jdnMyICAgICAgICB8 ICAgICAgICByZXNlcnZlZF9jdnMzICAgICAgICAgIHwKKyAqIHwgICAgICAgICAgICB2YXJfZmxh Z3MgICAgICAgICAgfCAgICAgICAgICAgIHZhcl9ucCAgICAgICAgICAgICB8CisgKiArLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst KworICovCitzdHJ1Y3QgbmZwX2ZsX2FjdF9zZXRfdHVuIHsKKwlzdHJ1Y3QgbmZwX2ZsX2FjdF9o ZWFkIGhlYWQ7CisJcnRlX2JlMTZfdCByZXNlcnZlZDsKKwlydGVfYmU2NF90IHR1bl9pZDsKKwly dGVfYmUzMl90IHR1bl90eXBlX2luZGV4OworCXJ0ZV9iZTE2X3QgdHVuX2ZsYWdzOworCXVpbnQ4 X3QgICAgdHRsOworCXVpbnQ4X3QgICAgdG9zOworCXJ0ZV9iZTE2X3Qgb3V0ZXJfdmxhbl90cGlk OworCXJ0ZV9iZTE2X3Qgb3V0ZXJfdmxhbl90Y2k7CisJdWludDhfdCAgICB0dW5fbGVuOyAgICAg IC8qIE9ubHkgdmFsaWQgZm9yIE5GUF9GTF9UVU5ORUxfR0VORVZFICovCisJdWludDhfdCAgICBy ZXNlcnZlZDI7CisJcnRlX2JlMTZfdCB0dW5fcHJvdG87ICAgIC8qIE9ubHkgdmFsaWQgZm9yIE5G UF9GTF9UVU5ORUxfR0VORVZFICovCit9IF9fcnRlX3BhY2tlZDsKKwogaW50IG5mcF9mbG93ZXJf Y21zZ19tYWNfcmVwcihzdHJ1Y3QgbmZwX2FwcF9md19mbG93ZXIgKmFwcF9md19mbG93ZXIpOwog aW50IG5mcF9mbG93ZXJfY21zZ19yZXByX3JlaWZ5KHN0cnVjdCBuZnBfYXBwX2Z3X2Zsb3dlciAq YXBwX2Z3X2Zsb3dlciwKIAkJc3RydWN0IG5mcF9mbG93ZXJfcmVwcmVzZW50b3IgKnJlcHIpOwpA QCAtNTgzLDUgKzY3NCw3IEBAIGludCBuZnBfZmxvd2VyX2Ntc2dfZmxvd19kZWxldGUoc3RydWN0 IG5mcF9hcHBfZndfZmxvd2VyICphcHBfZndfZmxvd2VyLAogCQlzdHJ1Y3QgcnRlX2Zsb3cgKmZs b3cpOwogaW50IG5mcF9mbG93ZXJfY21zZ19mbG93X2FkZChzdHJ1Y3QgbmZwX2FwcF9md19mbG93 ZXIgKmFwcF9md19mbG93ZXIsCiAJCXN0cnVjdCBydGVfZmxvdyAqZmxvdyk7CitpbnQgbmZwX2Zs b3dlcl9jbXNnX3R1bl9uZWlnaF92NF9ydWxlKHN0cnVjdCBuZnBfYXBwX2Z3X2Zsb3dlciAqYXBw X2Z3X2Zsb3dlciwKKwkJc3RydWN0IG5mcF9mbG93ZXJfY21zZ190dW5fbmVpZ2hfdjQgKnBheWxv YWQpOwogCiAjZW5kaWYgLyogX05GUF9DTVNHX0hfICovCmRpZmYgYS9kcml2ZXJzL25ldC9uZnAv bmZwX2Zsb3cuaCBiL2RyaXZlcnMvbmV0L25mcC9uZnBfZmxvdy5oCShyZWplY3RlZCBodW5rcykK QEAgLTkwLDYgKzkwLDExIEBAIGVudW0gbmZwX2Zsb3dlcl90dW5fdHlwZSB7CiAJTkZQX0ZMX1RV Tl9HRU5FVkUgPSA0LAogfTsKIAorZW51bSBuZnBfZmxvd190eXBlIHsKKwlORlBfRkxPV19DT01N T04sCisJTkZQX0ZMT1dfRU5DQVAsCit9OworCiBzdHJ1Y3QgbmZwX2ZsX2tleV9scyB7CiAJdWlu dDMyX3Qga2V5X2xheWVyX3R3bzsKIAl1aW50OF90IGtleV9sYXllcjsKQEAgLTExOCw2ICsxMjMs MjQgQEAgc3RydWN0IG5mcF9mbF9wYXlsb2FkIHsKIAljaGFyICphY3Rpb25fZGF0YTsKIH07CiAK K3N0cnVjdCBuZnBfZmxfdHVuIHsKKwlMSVNUX0VOVFJZKG5mcF9mbF90dW4pIG5leHQ7CisJdWlu dDhfdCByZWZfY250OworCXN0cnVjdCBuZnBfZmxfdHVuX2VudHJ5IHsKKwkJdWludDhfdCB2Nl9m bGFnOworCQl1aW50OF90IGRzdF9hZGRyW1JURV9FVEhFUl9BRERSX0xFTl07CisJCXVpbnQ4X3Qg c3JjX2FkZHJbUlRFX0VUSEVSX0FERFJfTEVOXTsKKwkJdW5pb24geworCQkJcnRlX2JlMzJfdCBk c3RfaXB2NDsKKwkJCXVpbnQ4X3QgZHN0X2lwdjZbMTZdOworCQl9IGRzdDsKKwkJdW5pb24gewor CQkJcnRlX2JlMzJfdCBzcmNfaXB2NDsKKwkJCXVpbnQ4X3Qgc3JjX2lwdjZbMTZdOworCQl9IHNy YzsKKwl9IHBheWxvYWQ7Cit9OworCiAjZGVmaW5lIENJUkNfQ05UKGhlYWQsIHRhaWwsIHNpemUp ICAgICAoKChoZWFkKSAtICh0YWlsKSkgJiAoKHNpemUpIC0gMSkpCiAjZGVmaW5lIENJUkNfU1BB Q0UoaGVhZCwgdGFpbCwgc2l6ZSkgICBDSVJDX0NOVCgodGFpbCksICgoaGVhZCkgKyAxKSwgKHNp emUpKQogc3RydWN0IGNpcmNfYnVmIHsKQEAgLTE2MSwxMyArMTg0LDE3IEBAIHN0cnVjdCBuZnBf Zmxvd19wcml2IHsKIAlzdHJ1Y3QgbmZwX2ZsX3N0YXRzX2lkIHN0YXRzX2lkczsgLyoqPCBUaGUg c3RhdHMgaWQgcmluZy4gKi8KIAlzdHJ1Y3QgbmZwX2ZsX3N0YXRzICpzdGF0czsgLyoqPCBTdG9y ZSBzdGF0cyBvZiBmbG93LiAqLwogCXJ0ZV9zcGlubG9ja190IHN0YXRzX2xvY2s7IC8qKiA8IExv Y2sgdGhlIHVwZGF0ZSBvZiAnc3RhdHMnIGZpZWxkLiAqLworCS8qIG5laWdoYm9yIG5leHQgKi8K KwlMSVNUX0hFQUQoLCBuZnBfZmxfdHVuKW5uX2xpc3Q7IC8qKjwgU3RvcmUgbm4gZW50cnkgKi8K IH07CiAKIHN0cnVjdCBydGVfZmxvdyB7CiAJc3RydWN0IG5mcF9mbF9wYXlsb2FkIHBheWxvYWQ7 CisJc3RydWN0IG5mcF9mbF90dW4gdHVuOwogCXNpemVfdCBsZW5ndGg7CiAJdWludDMyX3QgaGFz aF9rZXk7CiAJYm9vbCBpbnN0YWxsX2ZsYWc7CisJZW51bSBuZnBfZmxvd190eXBlIHR5cGU7CiB9 OwogCiBpbnQgbmZwX2Zsb3dfcHJpdl9pbml0KHN0cnVjdCBuZnBfcGZfZGV2ICpwZl9kZXYpOwpD aGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvZmxvd2VyL25mcF9mbG93ZXJfY21zZy5jLi4u CmVycm9yOiBkcml2ZXJzL25ldC9uZnAvZmxvd2VyL25mcF9mbG93ZXJfY21zZy5jOiBkb2VzIG5v dCBtYXRjaCBpbmRleApDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvZmxvd2VyL25mcF9m bG93ZXJfY21zZy5oLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJc3RydWN0IG5mcF9m bG93ZXJfdHVuX25laWdoIGNvbW1vbjsKfTsKCi8qCiAqIE5GUF9GTE9XRVJfQ01TR19UWVBFX0ZM T1dfU1RBVFMKICogICAgQml0ICAgIDMgMyAyIDIgMiAyIDIgMiAyIDIgMiAyIDEgMSAxIDEgMSAx IDEgMSAxIDEgMCAwIDAgMCAwIDAgMCAwIDAgMAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVy cy9uZXQvbmZwL2Zsb3dlci9uZnBfZmxvd2VyX2Ntc2cuaDoxNTkKZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6Cgl9Owp9OwoKLyoKICogU2V0IHR1bm5lbAogKiAgICAzICAgICAgICAgICAgICAg ICAgIDIgICAgICAgICAgICAgICAgICAgMQoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9u ZXQvbmZwL2Zsb3dlci9uZnBfZmxvd2VyX2Ntc2cuaDo2MjkKZXJyb3I6IHdoaWxlIHNlYXJjaGlu ZyBmb3I6CgkJc3RydWN0IHJ0ZV9mbG93ICpmbG93KTsKaW50IG5mcF9mbG93ZXJfY21zZ190dW5f bmVpZ2hfdjRfcnVsZShzdHJ1Y3QgbmZwX2FwcF9md19mbG93ZXIgKmFwcF9md19mbG93ZXIsCgkJ c3RydWN0IG5mcF9mbG93ZXJfY21zZ190dW5fbmVpZ2hfdjQgKnBheWxvYWQpOwoKI2VuZGlmIC8q IF9ORlBfQ01TR19IXyAqLwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbmZwL2Zs b3dlci9uZnBfZmxvd2VyX2Ntc2cuaDo2NzYKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbmZw L25mcF9mbG93LmMuLi4KZXJyb3I6IGRyaXZlcnMvbmV0L25mcC9uZnBfZmxvdy5jOiBkb2VzIG5v dCBtYXRjaCBpbmRleApBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvZmxvd2VyL25mcF9m bG93ZXJfY21zZy5oIHdpdGggMyByZWplY3RzLi4uClJlamVjdGVkIGh1bmsgIzEuClJlamVjdGVk IGh1bmsgIzIuClJlamVjdGVkIGh1bmsgIzMuCmRpZmYgYS9kcml2ZXJzL25ldC9uZnAvZmxvd2Vy L25mcF9mbG93ZXJfY21zZy5oIGIvZHJpdmVycy9uZXQvbmZwL2Zsb3dlci9uZnBfZmxvd2VyX2Nt c2cuaAkocmVqZWN0ZWQgaHVua3MpCkBAIC0xNTksNiArMTU5LDQyIEBAIHN0cnVjdCBuZnBfZmxv d2VyX2Ntc2dfdHVuX25laWdoX3Y0IHsKIAlzdHJ1Y3QgbmZwX2Zsb3dlcl90dW5fbmVpZ2ggY29t bW9uOwogfTsKIAorLyoKKyAqIE5GUF9GTE9XRVJfQ01TR19UWVBFX1RVTl9ORUlHSF9WNgorICog ICAgQml0ICAgIDMgMyAyIDIgMiAyIDIgMiAyIDIgMiAyIDEgMSAxIDEgMSAxIDEgMSAxIDEgMCAw IDAgMCAwIDAgMCAwIDAgMAorICogICAgLS0tLS1cIDEgMCA5IDggNyA2IDUgNCAzIDIgMSAwIDkg OCA3IDYgNSA0IDMgMiAxIDAgOSA4IDcgNiA1IDQgMyAyIDEgMAorICogICAgICAgICAgKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSsKKyAqICAgICAgICAwIHwgICAgICAgICAgICAgICAgICAgICAgICAgIERTVF9JUFY2IFswXSAg ICAgICAgICAgICAgICAgICAgICAgICB8CisgKiAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICogICAgICAg IDEgfCAgICAgICAgICAgICAgICAgICAgICAgICAgRFNUX0lQVjYgWzFdICAgICAgICAgICAgICAg ICAgICAgICAgIHwKKyAqICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgKiAgICAgICAgMiB8ICAgICAgICAg ICAgICAgICAgICAgICAgICBEU1RfSVBWNiBbMl0gICAgICAgICAgICAgICAgICAgICAgICAgfAor ICogICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgICAgICAzIHwgICAgICAgICAgICAgICAgICAgICAg ICAgIERTVF9JUFY2IFszXSAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiAgICAgICAgICAr LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKworICogICAgICAgIDQgfCAgICAgICAgICAgICAgICAgICAgICAgICAgU1JDX0lQVjYg WzBdICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgKiAg ICAgICAgNSB8ICAgICAgICAgICAgICAgICAgICAgICAgICBTUkNfSVBWNiBbMV0gICAgICAgICAg ICAgICAgICAgICAgICAgfAorICogICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgICAgICA2IHwgICAg ICAgICAgICAgICAgICAgICAgICAgIFNSQ19JUFY2IFsyXSAgICAgICAgICAgICAgICAgICAgICAg ICB8CisgKiAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICogICAgICAgIDcgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgU1JDX0lQVjYgWzNdICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICAgICAg ICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rCisgKiAgICAgICAgOCB8ICAgICAgICAgICAgICAgICAgICAgICBEU1RfTUFD X0I1X0I0X0IzX0IyICAgICAgICAgICAgICAgICAgICAgfAorICogICAgICAgICAgKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsK KyAqICAgICAgICA5IHwgICAgICAgICAgICAgRFNUX01BQ19CMV9CMCAgICAgfCAgICAgICAgU1JD X01BQ19CNV9CNCAgICAgICAgICB8CisgKiAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICogICAgICAgMTAg fCAgICAgICAgICAgICAgICAgICAgICAgU1JDX01BQ19CM19CMl9CMV9CMCAgICAgICAgICAgICAg ICAgICAgIHwKKyAqICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rCisgKiAgICAgICAxMSB8ICAgICAgICAgICAg ICAgICAgICBFZ3Jlc3MgUG9ydCAoTkZQIGludGVybmFsKSAgICAgICAgICAgICAgICAgfAorICog ICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSsKKyAqLworc3RydWN0IG5mcF9mbG93ZXJfY21zZ190dW5fbmVpZ2hf djYgeworCXVpbnQ4X3QgZHN0X2lwdjZbMTZdOworCXVpbnQ4X3Qgc3JjX2lwdjZbMTZdOworCXN0 cnVjdCBuZnBfZmxvd2VyX3R1bl9uZWlnaCBjb21tb247Cit9OworCiAvKgogICogTkZQX0ZMT1dF Ul9DTVNHX1RZUEVfRkxPV19TVEFUUwogICogICAgQml0ICAgIDMgMyAyIDIgMiAyIDIgMiAyIDIg MiAyIDEgMSAxIDEgMSAxIDEgMSAxIDEgMCAwIDAgMCAwIDAgMCAwIDAgMApAQCAtNjI5LDYgKzY2 NSw4IEBAIHN0cnVjdCBuZnBfZmxfYWN0X3ByZV90dW4gewogCX07CiB9OwogCisjZGVmaW5lIE5G UF9GTF9QUkVfVFVOX0lQVjYgICAgKDEgPDwgMCkKKwogLyoKICAqIFNldCB0dW5uZWwKICAqICAg IDMgICAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgICAgICAxCkBAIC02NzYsNSArNzE0 LDcgQEAgaW50IG5mcF9mbG93ZXJfY21zZ19mbG93X2FkZChzdHJ1Y3QgbmZwX2FwcF9md19mbG93 ZXIgKmFwcF9md19mbG93ZXIsCiAJCXN0cnVjdCBydGVfZmxvdyAqZmxvdyk7CiBpbnQgbmZwX2Zs b3dlcl9jbXNnX3R1bl9uZWlnaF92NF9ydWxlKHN0cnVjdCBuZnBfYXBwX2Z3X2Zsb3dlciAqYXBw X2Z3X2Zsb3dlciwKIAkJc3RydWN0IG5mcF9mbG93ZXJfY21zZ190dW5fbmVpZ2hfdjQgKnBheWxv YWQpOworaW50IG5mcF9mbG93ZXJfY21zZ190dW5fbmVpZ2hfdjZfcnVsZShzdHJ1Y3QgbmZwX2Fw cF9md19mbG93ZXIgKmFwcF9md19mbG93ZXIsCisJCXN0cnVjdCBuZnBfZmxvd2VyX2Ntc2dfdHVu X25laWdoX3Y2ICpwYXlsb2FkKTsKIAogI2VuZGlmIC8qIF9ORlBfQ01TR19IXyAqLwpDaGVja2lu ZyBwYXRjaCBkb2MvZ3VpZGVzL25pY3MvZmVhdHVyZXMvbmZwLmluaS4uLgplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKc2V0X3RwX2RzdCAgICAgICAgICAgPSBZCnNldF90cF9zcmMgICAgICAg ICAgID0gWQpzZXRfdHRsICAgICAgICAgICAgICA9IFkKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRv Yy9ndWlkZXMvbmljcy9mZWF0dXJlcy9uZnAuaW5pOjU2CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMv bmV0L25mcC9uZnBfZmxvdy5jLi4uCmVycm9yOiBkcml2ZXJzL25ldC9uZnAvbmZwX2Zsb3cuYzog ZG9lcyBub3QgbWF0Y2ggaW5kZXgKQXBwbHlpbmcgcGF0Y2ggZG9jL2d1aWRlcy9uaWNzL2ZlYXR1 cmVzL25mcC5pbmkgd2l0aCAxIHJlamVjdC4uLgpSZWplY3RlZCBodW5rICMxLgpkaWZmIGEvZG9j L2d1aWRlcy9uaWNzL2ZlYXR1cmVzL25mcC5pbmkgYi9kb2MvZ3VpZGVzL25pY3MvZmVhdHVyZXMv bmZwLmluaQkocmVqZWN0ZWQgaHVua3MpCkBAIC01NiwzICs1Niw0IEBAIHNldF9tYWNfc3JjICAg ICAgICAgID0gWQogc2V0X3RwX2RzdCAgICAgICAgICAgPSBZCiBzZXRfdHBfc3JjICAgICAgICAg ICA9IFkKIHNldF90dGwgICAgICAgICAgICAgID0gWQordnhsYW5fZW5jYXAgICAgICAgICAgPSBZ CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L25mcC9uZnBfZmxvdy5jLi4uCmVycm9yOiBkcml2 ZXJzL25ldC9uZnAvbmZwX2Zsb3cuYzogZG9lcyBub3QgbWF0Y2ggaW5kZXgKQ2hlY2tpbmcgcGF0 Y2ggZG9jL2d1aWRlcy9uaWNzL2ZlYXR1cmVzL25mcC5pbmkuLi4KZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6CltydGVfZmxvdyBhY3Rpb25zXQpjb3VudCAgICAgICAgICAgICAgICA9IFkKZHJv cCAgICAgICAgICAgICAgICAgPSBZCm9mX3BvcF92bGFuICAgICAgICAgID0gWQpvZl9wdXNoX3Zs YW4gICAgICAgICA9IFkKb2Zfc2V0X3ZsYW5fcGNwICAgICAgPSBZCgplcnJvcjogcGF0Y2ggZmFp bGVkOiBkb2MvZ3VpZGVzL25pY3MvZmVhdHVyZXMvbmZwLmluaTo0MApDaGVja2luZyBwYXRjaCBk cml2ZXJzL25ldC9uZnAvZmxvd2VyL25mcF9mbG93ZXJfY21zZy5jLi4uCmVycm9yOiBkcml2ZXJz L25ldC9uZnAvZmxvd2VyL25mcF9mbG93ZXJfY21zZy5jOiBkb2VzIG5vdCBtYXRjaCBpbmRleApD aGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvZmxvd2VyL25mcF9mbG93ZXJfY21zZy5oLi4u CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJc3RydWN0IG5mcF9mbG93ZXJfdHVuX25laWdo IGNvbW1vbjsKfTsKCi8qCiAqIE5GUF9GTE9XRVJfQ01TR19UWVBFX0ZMT1dfU1RBVFMKICogICAg Qml0ICAgIDMgMyAyIDIgMiAyIDIgMiAyIDIgMiAyIDEgMSAxIDEgMSAxIDEgMSAxIDEgMCAwIDAg MCAwIDAgMCAwIDAgMAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbmZwL2Zsb3dl ci9uZnBfZmxvd2VyX2Ntc2cuaDoxOTUKZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJc3Ry dWN0IG5mcF9mbG93ZXJfY21zZ190dW5fbmVpZ2hfdjQgKnBheWxvYWQpOwppbnQgbmZwX2Zsb3dl cl9jbXNnX3R1bl9uZWlnaF92Nl9ydWxlKHN0cnVjdCBuZnBfYXBwX2Z3X2Zsb3dlciAqYXBwX2Z3 X2Zsb3dlciwKCQlzdHJ1Y3QgbmZwX2Zsb3dlcl9jbXNnX3R1bl9uZWlnaF92NiAqcGF5bG9hZCk7 CgojZW5kaWYgLyogX05GUF9DTVNHX0hfICovCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJz L25ldC9uZnAvZmxvd2VyL25mcF9mbG93ZXJfY21zZy5oOjcxNgpDaGVja2luZyBwYXRjaCBkcml2 ZXJzL25ldC9uZnAvbmZwX2Zsb3cuYy4uLgplcnJvcjogZHJpdmVycy9uZXQvbmZwL25mcF9mbG93 LmM6IGRvZXMgbm90IG1hdGNoIGluZGV4CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L25mcC9u ZnBfZmxvdy5oLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgojaWZuZGVmIF9ORlBfRkxP V19IXwojZGVmaW5lIF9ORlBfRkxPV19IXwoKI2luY2x1ZGUgPHJ0ZV9iaXRvcHMuaD4KI2luY2x1 ZGUgPGV0aGRldl9kcml2ZXIuaD4KCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9u ZnAvbmZwX2Zsb3cuaDo2CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgplbnVtIG5mcF9mbG93 X3R5cGUgewoJTkZQX0ZMT1dfQ09NTU9OLAoJTkZQX0ZMT1dfRU5DQVAsCn07CgpzdHJ1Y3QgbmZw X2ZsX2tleV9scyB7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9uZnAvbmZwX2Zs b3cuaDo5MwplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXVpbnQ2NF90IGJ5dGVzOwp9OwoK c3RydWN0IG5mcF9mbG93X3ByaXYgewoJdWludDMyX3QgaGFzaF9zZWVkOyAvKio8IEhhc2ggc2Vl ZCBmb3IgaGFzaCB0YWJsZXMgaW4gdGhpcyBzdHJ1Y3R1cmUuICovCgl1aW50NjRfdCBmbG93ZXJf dmVyc2lvbjsgLyoqPCBGbG93IHZlcnNpb24sIGFsd2F5cyBpbmNyZWFzZS4gKi8KCmVycm9yOiBw YXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L25mcC9uZnBfZmxvdy5oOjE2OQplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKCXN0cnVjdCBuZnBfZmxfc3RhdHNfaWQgc3RhdHNfaWRzOyAvKio8IFRo ZSBzdGF0cyBpZCByaW5nLiAqLwoJc3RydWN0IG5mcF9mbF9zdGF0cyAqc3RhdHM7IC8qKjwgU3Rv cmUgc3RhdHMgb2YgZmxvdy4gKi8KCXJ0ZV9zcGlubG9ja190IHN0YXRzX2xvY2s7IC8qKiA8IExv Y2sgdGhlIHVwZGF0ZSBvZiAnc3RhdHMnIGZpZWxkLiAqLwoJLyogbmVpZ2hib3IgbmV4dCAqLwoJ TElTVF9IRUFEKCwgbmZwX2ZsX3R1bilubl9saXN0OyAvKio8IFN0b3JlIG5uIGVudHJ5ICovCn07 CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9uZnAvbmZwX2Zsb3cuaDoxODQKQXBw bHlpbmcgcGF0Y2ggZG9jL2d1aWRlcy9uaWNzL2ZlYXR1cmVzL25mcC5pbmkgd2l0aCAxIHJlamVj dC4uLgpSZWplY3RlZCBodW5rICMxLgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvZmxv d2VyL25mcF9mbG93ZXJfY21zZy5oIHdpdGggMiByZWplY3RzLi4uClJlamVjdGVkIGh1bmsgIzEu ClJlamVjdGVkIGh1bmsgIzIuCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L25mcC9uZnBfZmxv dy5oIHdpdGggNCByZWplY3RzLi4uClJlamVjdGVkIGh1bmsgIzEuClJlamVjdGVkIGh1bmsgIzIu ClJlamVjdGVkIGh1bmsgIzMuClJlamVjdGVkIGh1bmsgIzQuCmRpZmYgYS9kb2MvZ3VpZGVzL25p Y3MvZmVhdHVyZXMvbmZwLmluaSBiL2RvYy9ndWlkZXMvbmljcy9mZWF0dXJlcy9uZnAuaW5pCShy ZWplY3RlZCBodW5rcykKQEAgLTQwLDYgKzQwLDcgQEAgdnhsYW4gICAgICAgICAgICAgICAgPSBZ CiBbcnRlX2Zsb3cgYWN0aW9uc10KIGNvdW50ICAgICAgICAgICAgICAgID0gWQogZHJvcCAgICAg ICAgICAgICAgICAgPSBZCitqdW1wICAgICAgICAgICAgICAgICA9IFkKIG9mX3BvcF92bGFuICAg ICAgICAgID0gWQogb2ZfcHVzaF92bGFuICAgICAgICAgPSBZCiBvZl9zZXRfdmxhbl9wY3AgICAg ICA9IFkKZGlmZiBhL2RyaXZlcnMvbmV0L25mcC9mbG93ZXIvbmZwX2Zsb3dlcl9jbXNnLmggYi9k cml2ZXJzL25ldC9uZnAvZmxvd2VyL25mcF9mbG93ZXJfY21zZy5oCShyZWplY3RlZCBodW5rcykK QEAgLTE5NSw2ICsxOTUsOTEgQEAgc3RydWN0IG5mcF9mbG93ZXJfY21zZ190dW5fbmVpZ2hfdjYg ewogCXN0cnVjdCBuZnBfZmxvd2VyX3R1bl9uZWlnaCBjb21tb247CiB9OwogCisjZGVmaW5lIE5G UF9UVU5fUFJFX1RVTl9SVUxFX0RFTCAgICAoMSA8PCAwKQorI2RlZmluZSBORlBfVFVOX1BSRV9U VU5fSURYX0JJVCAgICAgKDEgPDwgMykKKyNkZWZpbmUgTkZQX1RVTl9QUkVfVFVOX0lQVjZfQklU ICAgICgxIDw8IDcpCisKKy8qCisgKiBORlBfRkxPV0VSX0NNU0dfVFlQRV9QUkVfVFVOX1JVTEUK KyAqIEJpdCAgICAzIDMgMiAyIDIgMiAyIDIgMiAyIDIgMiAxIDEgMSAxIDEgMSAxIDEgMSAxIDAg MCAwIDAgMCAwIDAgMCAwIDAKKyAqIC0tLS0tXCAxIDAgOSA4IDcgNiA1IDQgMyAyIDEgMCA5IDgg NyA2IDUgNCAzIDIgMSAwIDkgOCA3IDYgNSA0IDMgMiAxIDAKKyAqICAgICAgICstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisg KiAgICAgMCB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGTEFHUyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfAorICogICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgICAxIHwgICAgICAgICBN QUNfSURYICAgICAgICAgICAgICAgfCAgICAgICAgICAgIFZMQU5fSUQgICAgICAgICAgICB8Cisg KiAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKworICogICAgIDIgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIEhP U1RfQ1RYICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICAgICAgICstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisg Ki8KK3N0cnVjdCBuZnBfZmxvd2VyX2Ntc2dfcHJlX3R1bl9ydWxlIHsKKwlydGVfYmUzMl90IGZs YWdzOworCXJ0ZV9iZTE2X3QgcG9ydF9pZHg7CisJcnRlX2JlMTZfdCB2bGFuX3RjaTsKKwlydGVf YmUzMl90IGhvc3RfY3R4X2lkOworfTsKKworI2RlZmluZSBORlBfVFVOX01BQ19PRkZMT0FEX0RF TF9GTEFHICAweDIKKworLyoKKyAqIE5GUF9GTE9XRVJfQ01TR19UWVBFX1RVTl9NQUMKKyAqICAg ICBCaXQgICAgMyAzIDIgMiAyIDIgMiAyIDIgMiAyIDIgMSAxIDEgMSAxIDEgMSAxIDEgMSAwIDAg MCAwIDAgMCAwIDAgMCAwCisgKiAgICAtLS0tLVwgMSAwIDkgOCA3IDYgNSA0IDMgMiAxIDAgOSA4 IDcgNiA1IDQgMyAyIDEgMCA5IDggNyA2IDUgNCAzIDIgMSAwCisgKiAgICBXb3JkICArLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tKy0rLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t KworICogICAgICAgMCAgfCAgICAgICAgICAgICAgc3BhcmUgICAgfE5CSXxEfEZ8IEFtb3VudCBv ZiBNQUPigJlzIGluIHRoaXMgbXNnICAgfAorICogICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLSst LS0tLS0tKy0tLSstKy0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSsKKyAqICAgICAg IDEgIHwgICAgICAgICAgICBJbmRleCAwICAgICAgICAgICAgfCAgICAgTUFDWzBdICAgIHwgICAg IE1BQ1sxXSAgICB8CisgKiAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKworICogICAgICAgMiAgfCAgICAgTUFD WzJdICAgIHwgICAgIE1BQ1szXSAgICB8ICAgICBNQUNbNF0gICAgfCAgICAgTUFDWzVdICAgIHwK KyAqICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0rCisgKiAgICAgICAzICB8ICAgICAgICAgICAgSW5kZXggMSAg ICAgICAgICAgIHwgICAgIE1BQ1swXSAgICB8ICAgICBNQUNbMV0gICAgfAorICogICAgICAgICAg Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLSsKKyAqICAgICAgIDQgIHwgICAgIE1BQ1syXSAgICB8ICAgICBNQUNbM10gICAgfCAg ICAgTUFDWzRdICAgIHwgICAgIE1BQ1s1XSAgICB8CisgKiAgICAgICAgICArLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKworICog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uCisgKiAgICAgICAgICAr LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tKworICogICAgIDJOLTEgfCAgICAgICAgICAgIEluZGV4IE4gICAgICAgICAgICB8ICAg ICBNQUNbMF0gICAgfCAgICAgTUFDWzFdICAgIHwKKyAqICAgICAgICAgICstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rCisgKiAg ICAgMk4gICB8ICAgICBNQUNbMl0gICAgfCAgICAgTUFDWzNdICAgIHwgICAgIE1BQ1s0XSAgICB8 ICAgICBNQUNbNV0gICAgfAorICogICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiAgICBGOiAgIEZs dXNoIGJpdC4gU2V0IGlmIGVudGlyZSB0YWJsZSBtdXN0IGJlIGZsdXNoZWQuIFJlc3Qgb2YgaW5m byBpbiBjbXNnCisgKiAgICAgICAgd2lsbCBiZSBpZ25vcmVkLiBOb3QgaW1wbGVtZW50ZWQuCisg KiAgICBEOiAgIERlbGV0ZSBiaXQuIFNldCBpZiBlbnRyeSBtdXN0IGJlIGRlbGV0ZWQgaW5zdGVh ZCBvZiBhZGRlZAorICogICAgTkJJOiBOZXR3b3JrIEJsb2NrIEludGVyZmFjZS4gU2V0IHRvIDAK KyAqICAgIFRoZSBhbW91bnQgb2YgTUFD4oCZcyBwZXIgY29udHJvbCBtZXNzYWdlIGlzIGxpbWl0 ZWQgb25seSBieSB0aGUgcGFja2V0CisgKiAgICBidWZmZXIgc2l6ZS4gQSAyMDQ4QiBidWZmZXIg Y2FuIGZpdCAyNTMgTUFDIGFkZHJlc3MgYW5kIGEgMTAyNDBCIGJ1ZmZlcgorICogICAgMTI3NyBN QUMgYWRkcmVzc2VzLgorICovCitzdHJ1Y3QgbmZwX2Zsb3dlcl9jbXNnX3R1bl9tYWMgeworCXJ0 ZV9iZTE2X3QgZmxhZ3M7CisJcnRlX2JlMTZfdCBjb3VudDsgICAgICAgICAgIC8qKjwgU2hvdWxk IGFsd2F5cyBiZSAxICovCisJcnRlX2JlMTZfdCBpbmRleDsKKwlzdHJ1Y3QgcnRlX2V0aGVyX2Fk ZHIgYWRkcjsKK307CisKKyNkZWZpbmUgTkZQX0ZMX0lQVjRfQUREUlNfTUFYICAgICAgICAzMgor CisvKgorICogTkZQX0ZMT1dFUl9DTVNHX1RZUEVfVFVOX0lQUworICogICAgQml0ICAgIDMgMyAy IDIgMiAyIDIgMiAyIDIgMiAyIDEgMSAxIDEgMSAxIDEgMSAxIDEgMCAwIDAgMCAwIDAgMCAwIDAg MAorICogICAgLS0tLS1cIDEgMCA5IDggNyA2IDUgNCAzIDIgMSAwIDkgOCA3IDYgNSA0IDMgMiAx IDAgOSA4IDcgNiA1IDQgMyAyIDEgMAorICogICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgICAgICAw IHwgICAgICAgICAgICAgICAgICAgIE51bWJlciBvZiBJUCBBZGRyZXNzZXMgICAgICAgICAgICAg ICAgICAgICB8CisgKiAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICogICAgICAgIDEgfCAgICAgICAgICAg ICAgICAgICAgICAgIElQIEFkZHJlc3MgIzEgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAq ICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rCisgKiAgICAgICAgMiB8ICAgICAgICAgICAgICAgICAgICAgICAg SVAgQWRkcmVzcyAjMiAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogICAgICAgICAgKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSsKKyAqICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiAgICAgICAgICArLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICogICAg ICAgMzIgfCAgICAgICAgICAgICAgICAgICAgICAgIElQIEFkZHJlc3MgIzMyICAgICAgICAgICAg ICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgKi8KK3N0cnVjdCBuZnBfZmxv d2VyX2Ntc2dfdHVuX2lwdjRfYWRkciB7CisJcnRlX2JlMzJfdCBjb3VudDsKKwlydGVfYmUzMl90 IGlwdjRfYWRkcltORlBfRkxfSVBWNF9BRERSU19NQVhdOworfTsKKwogLyoKICAqIE5GUF9GTE9X RVJfQ01TR19UWVBFX0ZMT1dfU1RBVFMKICAqICAgIEJpdCAgICAzIDMgMiAyIDIgMiAyIDIgMiAy IDIgMiAxIDEgMSAxIDEgMSAxIDEgMSAxIDAgMCAwIDAgMCAwIDAgMCAwIDAKQEAgLTcxNiw1ICs4 MDEsMTQgQEAgaW50IG5mcF9mbG93ZXJfY21zZ190dW5fbmVpZ2hfdjRfcnVsZShzdHJ1Y3QgbmZw X2FwcF9md19mbG93ZXIgKmFwcF9md19mbG93ZXIsCiAJCXN0cnVjdCBuZnBfZmxvd2VyX2Ntc2df dHVuX25laWdoX3Y0ICpwYXlsb2FkKTsKIGludCBuZnBfZmxvd2VyX2Ntc2dfdHVuX25laWdoX3Y2 X3J1bGUoc3RydWN0IG5mcF9hcHBfZndfZmxvd2VyICphcHBfZndfZmxvd2VyLAogCQlzdHJ1Y3Qg bmZwX2Zsb3dlcl9jbXNnX3R1bl9uZWlnaF92NiAqcGF5bG9hZCk7CitpbnQgbmZwX2Zsb3dlcl9j bXNnX3R1bl9vZmZfdjQoc3RydWN0IG5mcF9hcHBfZndfZmxvd2VyICphcHBfZndfZmxvd2VyKTsK K2ludCBuZnBfZmxvd2VyX2Ntc2dfcHJlX3R1bm5lbF9ydWxlKHN0cnVjdCBuZnBfYXBwX2Z3X2Zs b3dlciAqYXBwX2Z3X2Zsb3dlciwKKwkJc3RydWN0IG5mcF9mbF9ydWxlX21ldGFkYXRhICpuZnBf Zmxvd19tZXRhLAorCQl1aW50MTZfdCBtYWNfaWR4LAorCQlib29sIGlzX2RlbCk7CitpbnQgbmZw X2Zsb3dlcl9jbXNnX3R1bl9tYWNfcnVsZShzdHJ1Y3QgbmZwX2FwcF9md19mbG93ZXIgKmFwcF9m d19mbG93ZXIsCisJCXN0cnVjdCBydGVfZXRoZXJfYWRkciAqbWFjLAorCQl1aW50MTZfdCBtYWNf aWR4LAorCQlib29sIGlzX2RlbCk7CiAKICNlbmRpZiAvKiBfTkZQX0NNU0dfSF8gKi8KZGlmZiBh L2RyaXZlcnMvbmV0L25mcC9uZnBfZmxvdy5oIGIvZHJpdmVycy9uZXQvbmZwL25mcF9mbG93LmgJ KHJlamVjdGVkIGh1bmtzKQpAQCAtNiw2ICs2LDcgQEAKICNpZm5kZWYgX05GUF9GTE9XX0hfCiAj ZGVmaW5lIF9ORlBfRkxPV19IXwogCisjaW5jbHVkZSA8c3lzL3F1ZXVlLmg+CiAjaW5jbHVkZSA8 cnRlX2JpdG9wcy5oPgogI2luY2x1ZGUgPGV0aGRldl9kcml2ZXIuaD4KIApAQCAtOTMsNiArOTQs NyBAQCBlbnVtIG5mcF9mbG93ZXJfdHVuX3R5cGUgewogZW51bSBuZnBfZmxvd190eXBlIHsKIAlO RlBfRkxPV19DT01NT04sCiAJTkZQX0ZMT1dfRU5DQVAsCisJTkZQX0ZMT1dfREVDQVAsCiB9Owog CiBzdHJ1Y3QgbmZwX2ZsX2tleV9scyB7CkBAIC0xNjksNiArMTcxLDE0IEBAIHN0cnVjdCBuZnBf Zmxfc3RhdHMgewogCXVpbnQ2NF90IGJ5dGVzOwogfTsKIAorc3RydWN0IG5mcF9pcHY0X2FkZHJf ZW50cnkgeworCUxJU1RfRU5UUlkobmZwX2lwdjRfYWRkcl9lbnRyeSkgbmV4dDsKKwlydGVfYmUz Ml90IGlwdjRfYWRkcjsKKwlpbnQgcmVmX2NvdW50OworfTsKKworI2RlZmluZSBORlBfVFVOX1BS RV9UVU5fUlVMRV9MSU1JVCAgMzIKKwogc3RydWN0IG5mcF9mbG93X3ByaXYgewogCXVpbnQzMl90 IGhhc2hfc2VlZDsgLyoqPCBIYXNoIHNlZWQgZm9yIGhhc2ggdGFibGVzIGluIHRoaXMgc3RydWN0 dXJlLiAqLwogCXVpbnQ2NF90IGZsb3dlcl92ZXJzaW9uOyAvKio8IEZsb3cgdmVyc2lvbiwgYWx3 YXlzIGluY3JlYXNlLiAqLwpAQCAtMTg0LDYgKzE5NCwxMyBAQCBzdHJ1Y3QgbmZwX2Zsb3dfcHJp diB7CiAJc3RydWN0IG5mcF9mbF9zdGF0c19pZCBzdGF0c19pZHM7IC8qKjwgVGhlIHN0YXRzIGlk IHJpbmcuICovCiAJc3RydWN0IG5mcF9mbF9zdGF0cyAqc3RhdHM7IC8qKjwgU3RvcmUgc3RhdHMg b2YgZmxvdy4gKi8KIAlydGVfc3BpbmxvY2tfdCBzdGF0c19sb2NrOyAvKiogPCBMb2NrIHRoZSB1 cGRhdGUgb2YgJ3N0YXRzJyBmaWVsZC4gKi8KKwkvKiBwcmUgdHVubmVsIHJ1bGUgKi8KKwl1aW50 MTZfdCBwcmVfdHVuX2NudDsgLyoqPCBUaGUgc2l6ZSBvZiBwcmUgdHVubmVsIHJ1bGUgKi8KKwl1 aW50OF90IHByZV90dW5fYml0bWFwW05GUF9UVU5fUFJFX1RVTl9SVUxFX0xJTUlUXTsgLyoqPCBC aXRtYXAgb2YgcHJlIHR1bm5lbCBydWxlICovCisJc3RydWN0IHJ0ZV9oYXNoICpwcmVfdHVuX3Rh YmxlOyAvKio8IEhhc2ggdGFibGUgdG8gc3RvcmUgcHJlIHR1bm5lbCBydWxlICovCisJLyogSVB2 NCBvZmYgKi8KKwlMSVNUX0hFQUQoLCBuZnBfaXB2NF9hZGRyX2VudHJ5KSBpcHY0X29mZl9saXN0 OyAvKio8IFN0b3JlIGlwdjQgb2ZmICovCisJcnRlX3NwaW5sb2NrX3QgaXB2NF9vZmZfbG9jazsg LyoqPCBMb2NrIHRoZSBpcHY0IG9mZiBsaXN0ICovCiAJLyogbmVpZ2hib3IgbmV4dCAqLwogCUxJ U1RfSEVBRCgsIG5mcF9mbF90dW4pbm5fbGlzdDsgLyoqPCBTdG9yZSBubiBlbnRyeSAqLwogfTsK Q2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbmZwL2Zsb3dlci9uZnBfZmxvd2VyX2Ntc2cuYy4u LgplcnJvcjogZHJpdmVycy9uZXQvbmZwL2Zsb3dlci9uZnBfZmxvd2VyX2Ntc2cuYzogZG9lcyBu b3QgbWF0Y2ggaW5kZXgKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbmZwL2Zsb3dlci9uZnBf Zmxvd2VyX2Ntc2cuaC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXJ0ZV9iZTMyX3Qg aXB2NF9hZGRyW05GUF9GTF9JUFY0X0FERFJTX01BWF07Cn07CgovKgogKiBORlBfRkxPV0VSX0NN U0dfVFlQRV9GTE9XX1NUQVRTCiAqICAgIEJpdCAgICAzIDMgMiAyIDIgMiAyIDIgMiAyIDIgMiAx IDEgMSAxIDEgMSAxIDEgMSAxIDAgMCAwIDAgMCAwIDAgMCAwIDAKCmVycm9yOiBwYXRjaCBmYWls ZWQ6IGRyaXZlcnMvbmV0L25mcC9mbG93ZXIvbmZwX2Zsb3dlcl9jbXNnLmg6MjgwCmVycm9yOiB3 aGlsZSBzZWFyY2hpbmcgZm9yOgppbnQgbmZwX2Zsb3dlcl9jbXNnX3R1bl9uZWlnaF92Nl9ydWxl KHN0cnVjdCBuZnBfYXBwX2Z3X2Zsb3dlciAqYXBwX2Z3X2Zsb3dlciwKCQlzdHJ1Y3QgbmZwX2Zs b3dlcl9jbXNnX3R1bl9uZWlnaF92NiAqcGF5bG9hZCk7CmludCBuZnBfZmxvd2VyX2Ntc2dfdHVu X29mZl92NChzdHJ1Y3QgbmZwX2FwcF9md19mbG93ZXIgKmFwcF9md19mbG93ZXIpOwppbnQgbmZw X2Zsb3dlcl9jbXNnX3ByZV90dW5uZWxfcnVsZShzdHJ1Y3QgbmZwX2FwcF9md19mbG93ZXIgKmFw cF9md19mbG93ZXIsCgkJc3RydWN0IG5mcF9mbF9ydWxlX21ldGFkYXRhICpuZnBfZmxvd19tZXRh LAoJCXVpbnQxNl90IG1hY19pZHgsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9u ZnAvZmxvd2VyL25mcF9mbG93ZXJfY21zZy5oOjgwMgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC9uZnAvbmZwX2Zsb3cuYy4uLgplcnJvcjogZHJpdmVycy9uZXQvbmZwL25mcF9mbG93LmM6IGRv ZXMgbm90IG1hdGNoIGluZGV4CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L25mcC9uZnBfZmxv dy5oLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDE4NiAob2Zmc2V0IDkgbGluZXMpLgplcnJvcjog d2hpbGUgc2VhcmNoaW5nIGZvcjoKCS8qIElQdjQgb2ZmICovCglMSVNUX0hFQUQoLCBuZnBfaXB2 NF9hZGRyX2VudHJ5KSBpcHY0X29mZl9saXN0OyAvKio8IFN0b3JlIGlwdjQgb2ZmICovCglydGVf c3BpbmxvY2tfdCBpcHY0X29mZl9sb2NrOyAvKio8IExvY2sgdGhlIGlwdjQgb2ZmIGxpc3QgKi8K CS8qIG5laWdoYm9yIG5leHQgKi8KCUxJU1RfSEVBRCgsIG5mcF9mbF90dW4pbm5fbGlzdDsgLyoq PCBTdG9yZSBubiBlbnRyeSAqLwp9OwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQv bmZwL25mcF9mbG93Lmg6MjAxCkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L25mcC9mbG93ZXIv bmZwX2Zsb3dlcl9jbXNnLmggd2l0aCAyIHJlamVjdHMuLi4KUmVqZWN0ZWQgaHVuayAjMS4KUmVq ZWN0ZWQgaHVuayAjMi4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbmZwL25mcF9mbG93Lmgg d2l0aCAxIHJlamVjdC4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAj Mi4KZGlmZiBhL2RyaXZlcnMvbmV0L25mcC9mbG93ZXIvbmZwX2Zsb3dlcl9jbXNnLmggYi9kcml2 ZXJzL25ldC9uZnAvZmxvd2VyL25mcF9mbG93ZXJfY21zZy5oCShyZWplY3RlZCBodW5rcykKQEAg LTI4MCw2ICsyODAsMjkgQEAgc3RydWN0IG5mcF9mbG93ZXJfY21zZ190dW5faXB2NF9hZGRyIHsK IAlydGVfYmUzMl90IGlwdjRfYWRkcltORlBfRkxfSVBWNF9BRERSU19NQVhdOwogfTsKIAorI2Rl ZmluZSBORlBfRkxfSVBWNl9BRERSU19NQVggICAgICAgIDQKKworLyoKKyAqIE5GUF9GTE9XRVJf Q01TR19UWVBFX1RVTl9JUF9WNgorICogICAgQml0ICAgIDMgMyAyIDIgMiAyIDIgMiAyIDIgMiAy IDEgMSAxIDEgMSAxIDEgMSAxIDEgMCAwIDAgMCAwIDAgMCAwIDAgMAorICogICAgLS0tLS1cIDEg MCA5IDggNyA2IDUgNCAzIDIgMSAwIDkgOCA3IDYgNSA0IDMgMiAxIDAgOSA4IDcgNiA1IDQgMyAy IDEgMAorICogICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgICAgICAwIHwgICAgICAgICAgICAgICAg ICAgIE51bWJlciBvZiBJUCBBZGRyZXNzZXMgICAgICAgICAgICAgICAgICAgICB8CisgKiAgICAg ICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKworICogICAgICAgIDEgfCAgICAgICAgICAgICAgICAgICAgICAgIElQIEFk ZHJlc3MxICMxICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAqICAgICAgICAgICstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r CisgKiAgICAgICAgMiB8ICAgICAgICAgICAgICAgICAgICAgICAgSVAgQWRkcmVzczEgIzIgICAg ICAgICAgICAgICAgICAgICAgICAgfAorICogICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8CisgKiAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICogICAgICAgMTYgfCAgICAgICAgICAg ICAgICAgICAgICAgIElQIEFkZHJlc3M0ICM0ICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAq ICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rCisgKi8KK3N0cnVjdCBuZnBfZmxvd2VyX2Ntc2dfdHVuX2lwdjZf YWRkciB7CisJcnRlX2JlMzJfdCBjb3VudDsKKwl1aW50OF90IGlwdjZfYWRkcltORlBfRkxfSVBW Nl9BRERSU19NQVggKiAxNl07Cit9OworCiAvKgogICogTkZQX0ZMT1dFUl9DTVNHX1RZUEVfRkxP V19TVEFUUwogICogICAgQml0ICAgIDMgMyAyIDIgMiAyIDIgMiAyIDIgMiAyIDEgMSAxIDEgMSAx IDEgMSAxIDEgMCAwIDAgMCAwIDAgMCAwIDAgMApAQCAtODAyLDYgKzgyNSw3IEBAIGludCBuZnBf Zmxvd2VyX2Ntc2dfdHVuX25laWdoX3Y0X3J1bGUoc3RydWN0IG5mcF9hcHBfZndfZmxvd2VyICph cHBfZndfZmxvd2VyLAogaW50IG5mcF9mbG93ZXJfY21zZ190dW5fbmVpZ2hfdjZfcnVsZShzdHJ1 Y3QgbmZwX2FwcF9md19mbG93ZXIgKmFwcF9md19mbG93ZXIsCiAJCXN0cnVjdCBuZnBfZmxvd2Vy X2Ntc2dfdHVuX25laWdoX3Y2ICpwYXlsb2FkKTsKIGludCBuZnBfZmxvd2VyX2Ntc2dfdHVuX29m Zl92NChzdHJ1Y3QgbmZwX2FwcF9md19mbG93ZXIgKmFwcF9md19mbG93ZXIpOworaW50IG5mcF9m bG93ZXJfY21zZ190dW5fb2ZmX3Y2KHN0cnVjdCBuZnBfYXBwX2Z3X2Zsb3dlciAqYXBwX2Z3X2Zs b3dlcik7CiBpbnQgbmZwX2Zsb3dlcl9jbXNnX3ByZV90dW5uZWxfcnVsZShzdHJ1Y3QgbmZwX2Fw cF9md19mbG93ZXIgKmFwcF9md19mbG93ZXIsCiAJCXN0cnVjdCBuZnBfZmxfcnVsZV9tZXRhZGF0 YSAqbmZwX2Zsb3dfbWV0YSwKIAkJdWludDE2X3QgbWFjX2lkeCwKZGlmZiBhL2RyaXZlcnMvbmV0 L25mcC9uZnBfZmxvdy5oIGIvZHJpdmVycy9uZXQvbmZwL25mcF9mbG93LmgJKHJlamVjdGVkIGh1 bmtzKQpAQCAtMjAxLDYgKzIwNyw5IEBAIHN0cnVjdCBuZnBfZmxvd19wcml2IHsKIAkvKiBJUHY0 IG9mZiAqLwogCUxJU1RfSEVBRCgsIG5mcF9pcHY0X2FkZHJfZW50cnkpIGlwdjRfb2ZmX2xpc3Q7 IC8qKjwgU3RvcmUgaXB2NCBvZmYgKi8KIAlydGVfc3BpbmxvY2tfdCBpcHY0X29mZl9sb2NrOyAv Kio8IExvY2sgdGhlIGlwdjQgb2ZmIGxpc3QgKi8KKwkvKiBJUHY2IG9mZiAqLworCUxJU1RfSEVB RCgsIG5mcF9pcHY2X2FkZHJfZW50cnkpIGlwdjZfb2ZmX2xpc3Q7IC8qKjwgU3RvcmUgaXB2NiBv ZmYgKi8KKwlydGVfc3BpbmxvY2tfdCBpcHY2X29mZl9sb2NrOyAvKio8IExvY2sgdGhlIGlwdjYg b2ZmIGxpc3QgKi8KIAkvKiBuZWlnaGJvciBuZXh0ICovCiAJTElTVF9IRUFEKCwgbmZwX2ZsX3R1 bilubl9saXN0OyAvKio8IFN0b3JlIG5uIGVudHJ5ICovCiB9OwpDaGVja2luZyBwYXRjaCBkb2Mv Z3VpZGVzL25pY3MvZmVhdHVyZXMvbmZwLmluaS4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZv cjoKc2V0X3RwX2RzdCAgICAgICAgICAgPSBZCnNldF90cF9zcmMgICAgICAgICAgID0gWQpzZXRf dHRsICAgICAgICAgICAgICA9IFkKdnhsYW5fZW5jYXAgICAgICAgICAgPSBZCgplcnJvcjogcGF0 Y2ggZmFpbGVkOiBkb2MvZ3VpZGVzL25pY3MvZmVhdHVyZXMvbmZwLmluaTo1NwpDaGVja2luZyBw YXRjaCBkcml2ZXJzL25ldC9uZnAvbmZwX2Zsb3cuYy4uLgplcnJvcjogZHJpdmVycy9uZXQvbmZw L25mcF9mbG93LmM6IGRvZXMgbm90IG1hdGNoIGluZGV4CkFwcGx5aW5nIHBhdGNoIGRvYy9ndWlk ZXMvbmljcy9mZWF0dXJlcy9uZnAuaW5pIHdpdGggMSByZWplY3QuLi4KUmVqZWN0ZWQgaHVuayAj MS4KZGlmZiBhL2RvYy9ndWlkZXMvbmljcy9mZWF0dXJlcy9uZnAuaW5pIGIvZG9jL2d1aWRlcy9u aWNzL2ZlYXR1cmVzL25mcC5pbmkJKHJlamVjdGVkIGh1bmtzKQpAQCAtNTcsNCArNTcsNSBAQCBz ZXRfbWFjX3NyYyAgICAgICAgICA9IFkKIHNldF90cF9kc3QgICAgICAgICAgID0gWQogc2V0X3Rw X3NyYyAgICAgICAgICAgPSBZCiBzZXRfdHRsICAgICAgICAgICAgICA9IFkKK3Z4bGFuX2RlY2Fw ICAgICAgICAgID0gWQogdnhsYW5fZW5jYXAgICAgICAgICAgPSBZCkNoZWNraW5nIHBhdGNoIGRy aXZlcnMvbmV0L25mcC9uZnBfZmxvdy5jLi4uCmVycm9yOiBkcml2ZXJzL25ldC9uZnAvbmZwX2Zs b3cuYzogZG9lcyBub3QgbWF0Y2ggaW5kZXgKQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRlcy9uaWNz L2ZlYXR1cmVzL25mcC5pbmkuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6Cm9mX3B1c2hf dmxhbiAgICAgICAgID0gWQpvZl9zZXRfdmxhbl9wY3AgICAgICA9IFkKb2Zfc2V0X3ZsYW5fdmlk ICAgICAgPSBZCnBvcnRfaWQgICAgICAgICAgICAgID0gWQpzZXRfaXB2NF9kc2NwICAgICAgICA9 IFkKc2V0X2lwdjRfZHN0ICAgICAgICAgPSBZCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkb2MvZ3Vp ZGVzL25pY3MvZmVhdHVyZXMvbmZwLmluaTo0NQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9u ZnAvbmZwX2Zsb3cuYy4uLgplcnJvcjogZHJpdmVycy9uZXQvbmZwL25mcF9mbG93LmM6IGRvZXMg bm90IG1hdGNoIGluZGV4CkFwcGx5aW5nIHBhdGNoIGRvYy9ndWlkZXMvbmljcy9mZWF0dXJlcy9u ZnAuaW5pIHdpdGggMSByZWplY3QuLi4KUmVqZWN0ZWQgaHVuayAjMS4KZGlmZiBhL2RvYy9ndWlk ZXMvbmljcy9mZWF0dXJlcy9uZnAuaW5pIGIvZG9jL2d1aWRlcy9uaWNzL2ZlYXR1cmVzL25mcC5p bmkJKHJlamVjdGVkIGh1bmtzKQpAQCAtNDUsNiArNDUsNyBAQCBvZl9wb3BfdmxhbiAgICAgICAg ICA9IFkKIG9mX3B1c2hfdmxhbiAgICAgICAgID0gWQogb2Zfc2V0X3ZsYW5fcGNwICAgICAgPSBZ CiBvZl9zZXRfdmxhbl92aWQgICAgICA9IFkKK3Jhd19lbmNhcCAgICAgICAgICAgID0gWQogcG9y dF9pZCAgICAgICAgICAgICAgPSBZCiBzZXRfaXB2NF9kc2NwICAgICAgICA9IFkKIHNldF9pcHY0 X2RzdCAgICAgICAgID0gWQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvbmZwX2Zsb3cu Yy4uLgplcnJvcjogZHJpdmVycy9uZXQvbmZwL25mcF9mbG93LmM6IGRvZXMgbm90IG1hdGNoIGlu ZGV4CkNoZWNraW5nIHBhdGNoIGRvYy9ndWlkZXMvbmljcy9mZWF0dXJlcy9uZnAuaW5pLi4uCmVy cm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKW3J0ZV9mbG93IGl0ZW1zXQpldGggICAgICAgICAg ICAgICAgICA9IFkKaXB2NCAgICAgICAgICAgICAgICAgPSBZCmlwdjYgICAgICAgICAgICAgICAg ID0gWQpwb3J0X2lkICAgICAgICAgICAgICA9IFkKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRvYy9n dWlkZXMvbmljcy9mZWF0dXJlcy9uZnAuaW5pOjI4CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0 L25mcC9uZnBfZmxvdy5jLi4uCmVycm9yOiBkcml2ZXJzL25ldC9uZnAvbmZwX2Zsb3cuYzogZG9l cyBub3QgbWF0Y2ggaW5kZXgKQXBwbHlpbmcgcGF0Y2ggZG9jL2d1aWRlcy9uaWNzL2ZlYXR1cmVz L25mcC5pbmkgd2l0aCAxIHJlamVjdC4uLgpSZWplY3RlZCBodW5rICMxLgpkaWZmIGEvZG9jL2d1 aWRlcy9uaWNzL2ZlYXR1cmVzL25mcC5pbmkgYi9kb2MvZ3VpZGVzL25pY3MvZmVhdHVyZXMvbmZw LmluaQkocmVqZWN0ZWQgaHVua3MpCkBAIC0yOCw2ICsyOCw3IEBAIFVzYWdlIGRvYyAgICAgICAg ICAgID0gWQogCiBbcnRlX2Zsb3cgaXRlbXNdCiBldGggICAgICAgICAgICAgICAgICA9IFkKK2dl bmV2ZSAgICAgICAgICAgICAgID0gWQogaXB2NCAgICAgICAgICAgICAgICAgPSBZCiBpcHY2ICAg ICAgICAgICAgICAgICA9IFkKIHBvcnRfaWQgICAgICAgICAgICAgID0gWQpDaGVja2luZyBwYXRj aCBkcml2ZXJzL25ldC9uZnAvbmZwX2Zsb3cuYy4uLgplcnJvcjogZHJpdmVycy9uZXQvbmZwL25m cF9mbG93LmM6IGRvZXMgbm90IG1hdGNoIGluZGV4CkNoZWNraW5nIHBhdGNoIGRvYy9ndWlkZXMv bmljcy9mZWF0dXJlcy9uZnAuaW5pLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgpvZl9w dXNoX3ZsYW4gICAgICAgICA9IFkKb2Zfc2V0X3ZsYW5fcGNwICAgICAgPSBZCm9mX3NldF92bGFu X3ZpZCAgICAgID0gWQpyYXdfZW5jYXAgICAgICAgICAgICA9IFkKcG9ydF9pZCAgICAgICAgICAg ICAgPSBZCnNldF9pcHY0X2RzY3AgICAgICAgID0gWQoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZG9j L2d1aWRlcy9uaWNzL2ZlYXR1cmVzL25mcC5pbmk6NDYKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvbmZwL25mcF9mbG93LmMuLi4KZXJyb3I6IGRyaXZlcnMvbmV0L25mcC9uZnBfZmxvdy5jOiBk b2VzIG5vdCBtYXRjaCBpbmRleApBcHBseWluZyBwYXRjaCBkb2MvZ3VpZGVzL25pY3MvZmVhdHVy ZXMvbmZwLmluaSB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCmRpZmYgYS9kb2Mv Z3VpZGVzL25pY3MvZmVhdHVyZXMvbmZwLmluaSBiL2RvYy9ndWlkZXMvbmljcy9mZWF0dXJlcy9u ZnAuaW5pCShyZWplY3RlZCBodW5rcykKQEAgLTQ2LDYgKzQ2LDcgQEAgb2ZfcG9wX3ZsYW4gICAg ICAgICAgPSBZCiBvZl9wdXNoX3ZsYW4gICAgICAgICA9IFkKIG9mX3NldF92bGFuX3BjcCAgICAg ID0gWQogb2Zfc2V0X3ZsYW5fdmlkICAgICAgPSBZCityYXdfZGVjYXAgICAgICAgICAgICA9IFkK IHJhd19lbmNhcCAgICAgICAgICAgID0gWQogcG9ydF9pZCAgICAgICAgICAgICAgPSBZCiBzZXRf aXB2NF9kc2NwICAgICAgICA9IFkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbmZwL25mcF9m bG93LmMuLi4KZXJyb3I6IGRyaXZlcnMvbmV0L25mcC9uZnBfZmxvdy5jOiBkb2VzIG5vdCBtYXRj aCBpbmRleApDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvbmZwX2Zsb3cuYy4uLgplcnJv cjogZHJpdmVycy9uZXQvbmZwL25mcF9mbG93LmM6IGRvZXMgbm90IG1hdGNoIGluZGV4CkNoZWNr aW5nIHBhdGNoIGRyaXZlcnMvbmV0L25mcC9uZnBfZmxvdy5jLi4uCmVycm9yOiBkcml2ZXJzL25l dC9uZnAvbmZwX2Zsb3cuYzogZG9lcyBub3QgbWF0Y2ggaW5kZXgKQ2hlY2tpbmcgcGF0Y2ggZHJp dmVycy9uZXQvbmZwL2Zsb3dlci9uZnBfZmxvd2VyX2Ntc2cuaC4uLgplcnJvcjogd2hpbGUgc2Vh cmNoaW5nIGZvcjoKCXJ0ZV9iZTMyX3QgdHVuX2lkOwp9OwoKc3RydWN0IG5mcF9mbF9hY3RfaGVh ZCB7Cgl1aW50OF90IGp1bXBfaWQ7Cgl1aW50OF90IGxlbl9sdzsKCmVycm9yOiBwYXRjaCBmYWls ZWQ6IGRyaXZlcnMvbmV0L25mcC9mbG93ZXIvbmZwX2Zsb3dlcl9jbXNnLmg6NTc1CkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvbmV0L25mcC9uZnBfZmxvdy5jLi4uCmVycm9yOiBkcml2ZXJzL25ldC9u ZnAvbmZwX2Zsb3cuYzogZG9lcyBub3QgbWF0Y2ggaW5kZXgKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVy cy9uZXQvbmZwL25mcF9mbG93LmguLi4KZXJyb3I6IGRyaXZlcnMvbmV0L25mcC9uZnBfZmxvdy5o OiBkb2VzIG5vdCBtYXRjaCBpbmRleApBcHBseWluZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvZmxv d2VyL25mcF9mbG93ZXJfY21zZy5oIHdpdGggMSByZWplY3QuLi4KUmVqZWN0ZWQgaHVuayAjMS4K ZGlmZiBhL2RyaXZlcnMvbmV0L25mcC9mbG93ZXIvbmZwX2Zsb3dlcl9jbXNnLmggYi9kcml2ZXJz L25ldC9uZnAvZmxvd2VyL25mcF9mbG93ZXJfY21zZy5oCShyZWplY3RlZCBodW5rcykKQEAgLTU3 NSw2ICs1NzUsMzUgQEAgc3RydWN0IG5mcF9mbG93ZXJfaXB2Nl91ZHBfdHVuIHsKIAlydGVfYmUz Ml90IHR1bl9pZDsKIH07CiAKKy8qCisgKiBGbG93IEZyYW1lIEdSRSBUVU5ORUwgLS0+IFR1bm5l bCBkZXRhaWxzICg2Vy8yNEIpCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogICAgMyAgICAgICAgICAgICAgICAg ICAyICAgICAgICAgICAgICAgICAgIDEKKyAqICAxIDAgOSA4IDcgNiA1IDQgMyAyIDEgMCA5IDgg NyA2IDUgNCAzIDIgMSAwIDkgOCA3IDYgNSA0IDMgMiAxIDAKKyAqICstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCisgKiB8ICAg ICAgICAgICAgICAgICAgICAgICAgIGlwdjRfYWRkcl9zcmMgICAgICAgICAgICAgICAgICAgICAg ICAgfAorICogKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSsKKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgaXB2NF9hZGRy X2RzdCAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiArLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKworICogfCAgICAgICAg ICAgdHVuX2ZsYWdzICAgICAgICAgICB8ICAgICAgIHRvcyAgICAgfCAgICAgICB0dGwgICAgIHwK KyAqICstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rCisgKiB8ICAgICAgICAgICAgUmVzZXJ2ZWQgICAgICAgICAgIHwgICAgICAg ICAgIEV0aGVydHlwZSAgICAgICAgICAgfAorICogKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKKyAqIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBLZXkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgKiAr LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKworICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwKKyAqICstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCisgKi8KK3N0cnVjdCBuZnBfZmxvd2Vy X2lwdjRfZ3JlX3R1biB7CisJc3RydWN0IG5mcF9mbG93ZXJfdHVuX2lwdjQgaXB2NDsKKwlydGVf YmUxNl90IHR1bl9mbGFnczsKKwlzdHJ1Y3QgbmZwX2Zsb3dlcl90dW5faXBfZXh0IGlwX2V4dDsK KwlydGVfYmUxNl90IHJlc2VydmVkMTsKKwlydGVfYmUxNl90IGV0aGVydHlwZTsKKwlydGVfYmUz Ml90IHR1bl9rZXk7CisJcnRlX2JlMzJfdCByZXNlcnZlZDI7Cit9OworCiBzdHJ1Y3QgbmZwX2Zs X2FjdF9oZWFkIHsKIAl1aW50OF90IGp1bXBfaWQ7CiAJdWludDhfdCBsZW5fbHc7CkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvbmV0L25mcC9mbG93ZXIvbmZwX2Zsb3dlcl9jbXNnLmguLi4KSHVuayAj MSBzdWNjZWVkZWQgYXQgNjYyIChvZmZzZXQgNTggbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2 ZXJzL25ldC9uZnAvbmZwX2Zsb3cuYy4uLgplcnJvcjogZHJpdmVycy9uZXQvbmZwL25mcF9mbG93 LmM6IGRvZXMgbm90IG1hdGNoIGluZGV4CkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvbmZwL2Zs b3dlci9uZnBfZmxvd2VyX2Ntc2cuaCBjbGVhbmx5LgpDaGVja2luZyBwYXRjaCBkb2MvZ3VpZGVz L25pY3MvZmVhdHVyZXMvbmZwLmluaS4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKW3J0 ZV9mbG93IGl0ZW1zXQpldGggICAgICAgICAgICAgICAgICA9IFkKZ2VuZXZlICAgICAgICAgICAg ICAgPSBZCmlwdjQgICAgICAgICAgICAgICAgID0gWQppcHY2ICAgICAgICAgICAgICAgICA9IFkK cG9ydF9pZCAgICAgICAgICAgICAgPSBZCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkb2MvZ3VpZGVz L25pY3MvZmVhdHVyZXMvbmZwLmluaToyOQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAv bmZwX2Zsb3cuYy4uLgplcnJvcjogZHJpdmVycy9uZXQvbmZwL25mcF9mbG93LmM6IGRvZXMgbm90 IG1hdGNoIGluZGV4CkFwcGx5aW5nIHBhdGNoIGRvYy9ndWlkZXMvbmljcy9mZWF0dXJlcy9uZnAu aW5pIHdpdGggMSByZWplY3QuLi4KUmVqZWN0ZWQgaHVuayAjMS4KZGlmZiBhL2RvYy9ndWlkZXMv bmljcy9mZWF0dXJlcy9uZnAuaW5pIGIvZG9jL2d1aWRlcy9uaWNzL2ZlYXR1cmVzL25mcC5pbmkJ KHJlamVjdGVkIGh1bmtzKQpAQCAtMjksNiArMjksOCBAQCBVc2FnZSBkb2MgICAgICAgICAgICA9 IFkKIFtydGVfZmxvdyBpdGVtc10KIGV0aCAgICAgICAgICAgICAgICAgID0gWQogZ2VuZXZlICAg ICAgICAgICAgICAgPSBZCitncmUgICAgICAgICAgICAgICAgICA9IFkKK2dyZV9rZXkgICAgICAg ICAgICAgID0gWQogaXB2NCAgICAgICAgICAgICAgICAgPSBZCiBpcHY2ICAgICAgICAgICAgICAg ICA9IFkKIHBvcnRfaWQgICAgICAgICAgICAgID0gWQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC9uZnAvbmZwX2Zsb3cuYy4uLgplcnJvcjogZHJpdmVycy9uZXQvbmZwL25mcF9mbG93LmM6IGRv ZXMgbm90IG1hdGNoIGluZGV4CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L25mcC9uZnBfZmxv dy5jLi4uCmVycm9yOiBkcml2ZXJzL25ldC9uZnAvbmZwX2Zsb3cuYzogZG9lcyBub3QgbWF0Y2gg aW5kZXgKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbmZwL25mcF9mbG93LmMuLi4KZXJyb3I6 IGRyaXZlcnMvbmV0L25mcC9uZnBfZmxvdy5jOiBkb2VzIG5vdCBtYXRjaCBpbmRleApDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvZmxvd2VyL25mcF9mbG93ZXIuYy4uLgplcnJvcjogd2hp bGUgc2VhcmNoaW5nIGZvcjoKbmZwX2luaXRfYXBwX2Z3X2Zsb3dlcihzdHJ1Y3QgbmZwX3BmX2Rl diAqcGZfZGV2KQp7CglpbnQgcmV0OwoJdW5zaWduZWQgaW50IG51bWFfbm9kZTsKCXN0cnVjdCBu ZnBfbmV0X2h3ICpwZl9odzsKCXN0cnVjdCBuZnBfbmV0X2h3ICpjdHJsX2h3OwoKZXJyb3I6IHBh dGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbmZwL2Zsb3dlci9uZnBfZmxvd2VyLmM6MTA3NAplcnJv cjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlnb3RvIHZuaWNfY2xlYW51cDsKCX0KCgkvKiBGaWxs IGluIHRoZSBQRiB2TklDIGFuZCBwb3B1bGF0ZSBhcHAgc3RydWN0ICovCglhcHBfZndfZmxvd2Vy LT5wZl9odyA9IHBmX2h3OwoJcGZfaHctPmN0cmxfYmFyID0gcGZfZGV2LT5jdHJsX2JhcjsKCmVy cm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L25mcC9mbG93ZXIvbmZwX2Zsb3dlci5jOjEx MTUKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbmZwL2Zsb3dlci9uZnBfZmxvd2VyLmguLi4K ZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgojaW5jbHVkZSAiLi4vbmZwX2NvbW1vbi5oIgoK LyoKICogRmxvd2VyIGZhbGxiYWNrIGFuZCBjdHJsIHBhdGggYWx3YXlzIGFkZHMgYW5kIHJlbW92 ZXMKICogOCBieXRlcyBvZiBwcmVwZW5kZWQgZGF0YS4gVHggZGVzY3JpcHRvcnMgbXVzdCBwb2lu dAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbmZwL2Zsb3dlci9uZnBfZmxvd2Vy Lmg6OAplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCS8qIHNlcnZpY2UgaWQgb2YgY3RybCB2 bmljIHNlcnZpY2UgKi8KCXVpbnQzMl90IGN0cmxfdm5pY19pZDsKCglzdHJ1Y3QgbmZwX2Zsb3df cHJpdiAqZmxvd19wcml2Owp9OwoKaW50IG5mcF9pbml0X2FwcF9md19mbG93ZXIoc3RydWN0IG5m cF9wZl9kZXYgKnBmX2Rldik7CmludCBuZnBfc2Vjb25kYXJ5X2luaXRfYXBwX2Z3X2Zsb3dlcihz dHJ1Y3QgbmZwX2NwcCAqY3BwKTsKdWludDE2X3QgbmZwX2Zsb3dlcl9wZl9yZWN2X3BrdHModm9p ZCAqcnhfcXVldWUsIHN0cnVjdCBydGVfbWJ1ZiAqKnJ4X3BrdHMsCgplcnJvcjogcGF0Y2ggZmFp bGVkOiBkcml2ZXJzL25ldC9uZnAvZmxvd2VyL25mcF9mbG93ZXIuaDo1NwpDaGVja2luZyBwYXRj aCBkcml2ZXJzL25ldC9uZnAvZmxvd2VyL25mcF9mbG93ZXJfY21zZy5jLi4uCmVycm9yOiBkcml2 ZXJzL25ldC9uZnAvZmxvd2VyL25mcF9mbG93ZXJfY21zZy5jOiBkb2VzIG5vdCBtYXRjaCBpbmRl eApDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvZmxvd2VyL25mcF9mbG93ZXJfY21zZy5o Li4uCmVycm9yOiBkcml2ZXJzL25ldC9uZnAvZmxvd2VyL25mcF9mbG93ZXJfY21zZy5oOiBkb2Vz IG5vdCBtYXRjaCBpbmRleApDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9uZnAvbmZwX2Zsb3cu Yy4uLgplcnJvcjogZHJpdmVycy9uZXQvbmZwL25mcF9mbG93LmM6IGRvZXMgbm90IG1hdGNoIGlu ZGV4CkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvbmV0L25mcC9mbG93ZXIvbmZwX2Zsb3dlci5jIHdp dGggMiByZWplY3RzLi4uClJlamVjdGVkIGh1bmsgIzEuClJlamVjdGVkIGh1bmsgIzIuCkFwcGx5 aW5nIHBhdGNoIGRyaXZlcnMvbmV0L25mcC9mbG93ZXIvbmZwX2Zsb3dlci5oIHdpdGggMiByZWpl Y3RzLi4uClJlamVjdGVkIGh1bmsgIzEuClJlamVjdGVkIGh1bmsgIzIuCmRpZmYgYS9kcml2ZXJz L25ldC9uZnAvZmxvd2VyL25mcF9mbG93ZXIuYyBiL2RyaXZlcnMvbmV0L25mcC9mbG93ZXIvbmZw X2Zsb3dlci5jCShyZWplY3RlZCBodW5rcykKQEAgLTEwNzQsNiArMTA3NCw4IEBAIGludAogbmZw X2luaXRfYXBwX2Z3X2Zsb3dlcihzdHJ1Y3QgbmZwX3BmX2RldiAqcGZfZGV2KQogewogCWludCBy ZXQ7CisJaW50IGVycjsKKwl1aW50NjRfdCBleHRfZmVhdHVyZXM7CiAJdW5zaWduZWQgaW50IG51 bWFfbm9kZTsKIAlzdHJ1Y3QgbmZwX25ldF9odyAqcGZfaHc7CiAJc3RydWN0IG5mcF9uZXRfaHcg KmN0cmxfaHc7CkBAIC0xMTE1LDYgKzExMTcsMTggQEAgbmZwX2luaXRfYXBwX2Z3X2Zsb3dlcihz dHJ1Y3QgbmZwX3BmX2RldiAqcGZfZGV2KQogCQlnb3RvIHZuaWNfY2xlYW51cDsKIAl9CiAKKwkv KiBSZWFkIHRoZSBleHRyYSBmZWF0dXJlcyAqLworCWV4dF9mZWF0dXJlcyA9IG5mcF9ydHN5bV9y ZWFkX2xlKHBmX2Rldi0+c3ltX3RibCwgIl9hYmlfZmxvd2VyX2V4dHJhX2ZlYXR1cmVzIiwKKwkJ CSZlcnIpOworCWlmIChlcnIgIT0gMCkgeworCQlQTURfSU5JVF9MT0coRVJSLCAiQ291bGRuJ3Qg cmVhZCBleHRyYSBmZWF0dXJlcyBmcm9tIGZ3Iik7CisJCXJldCA9IC1FSU87CisJCWdvdG8gcGZf Y3BwX2FyZWFfY2xlYW51cDsKKwl9CisKKwkvKiBTdG9yZSB0aGUgZXh0cmEgZmVhdHVyZXMgKi8K KwlhcHBfZndfZmxvd2VyLT5leHRfZmVhdHVyZXMgPSBleHRfZmVhdHVyZXM7CisKIAkvKiBGaWxs IGluIHRoZSBQRiB2TklDIGFuZCBwb3B1bGF0ZSBhcHAgc3RydWN0ICovCiAJYXBwX2Z3X2Zsb3dl ci0+cGZfaHcgPSBwZl9odzsKIAlwZl9ody0+Y3RybF9iYXIgPSBwZl9kZXYtPmN0cmxfYmFyOwpk aWZmIGEvZHJpdmVycy9uZXQvbmZwL2Zsb3dlci9uZnBfZmxvd2VyLmggYi9kcml2ZXJzL25ldC9u ZnAvZmxvd2VyL25mcF9mbG93ZXIuaAkocmVqZWN0ZWQgaHVua3MpCkBAIC04LDYgKzgsMjEgQEAK IAogI2luY2x1ZGUgIi4uL25mcF9jb21tb24uaCIKIAorLyogRXh0cmEgZmVhdHVyZXMgYml0bWFw LiAqLworI2RlZmluZSBORlBfRkxfRkVBVFNfR0VORVZFICAgICAgICAgICAgIFJURV9CSVQ2NCgw KQorI2RlZmluZSBORlBfRkxfTkJJX01UVV9TRVRUSU5HICAgICAgICAgIFJURV9CSVQ2NCgxKQor I2RlZmluZSBORlBfRkxfRkVBVFNfR0VORVZFX09QVCAgICAgICAgIFJURV9CSVQ2NCgyKQorI2Rl ZmluZSBORlBfRkxfRkVBVFNfVkxBTl9QQ1AgICAgICAgICAgIFJURV9CSVQ2NCgzKQorI2RlZmlu ZSBORlBfRkxfRkVBVFNfVkZfUkxJTSAgICAgICAgICAgIFJURV9CSVQ2NCg0KQorI2RlZmluZSBO RlBfRkxfRkVBVFNfRkxPV19NT0QgICAgICAgICAgIFJURV9CSVQ2NCg1KQorI2RlZmluZSBORlBf RkxfRkVBVFNfUFJFX1RVTl9SVUxFUyAgICAgIFJURV9CSVQ2NCg2KQorI2RlZmluZSBORlBfRkxf RkVBVFNfSVBWNl9UVU4gICAgICAgICAgIFJURV9CSVQ2NCg3KQorI2RlZmluZSBORlBfRkxfRkVB VFNfVkxBTl9RSU5RICAgICAgICAgIFJURV9CSVQ2NCg4KQorI2RlZmluZSBORlBfRkxfRkVBVFNf UU9TX1BQUyAgICAgICAgICAgIFJURV9CSVQ2NCg5KQorI2RlZmluZSBORlBfRkxfRkVBVFNfUU9T X01FVEVSICAgICAgICAgIFJURV9CSVQ2NCgxMCkKKyNkZWZpbmUgTkZQX0ZMX0ZFQVRTX0RFQ0FQ X1YyICAgICAgICAgICBSVEVfQklUNjQoMTEpCisjZGVmaW5lIE5GUF9GTF9GRUFUU19IT1NUX0FD SyAgICAgICAgICAgUlRFX0JJVDY0KDMxKQorCiAvKgogICogRmxvd2VyIGZhbGxiYWNrIGFuZCBj dHJsIHBhdGggYWx3YXlzIGFkZHMgYW5kIHJlbW92ZXMKICAqIDggYnl0ZXMgb2YgcHJlcGVuZGVk IGRhdGEuIFR4IGRlc2NyaXB0b3JzIG11c3QgcG9pbnQKQEAgLTU3LDkgKzcyLDE4IEBAIHN0cnVj dCBuZnBfYXBwX2Z3X2Zsb3dlciB7CiAJLyogc2VydmljZSBpZCBvZiBjdHJsIHZuaWMgc2Vydmlj ZSAqLwogCXVpbnQzMl90IGN0cmxfdm5pY19pZDsKIAorCS8qIEZsb3dlciBleHRyYSBmZWF0dXJl cyAqLworCXVpbnQ2NF90IGV4dF9mZWF0dXJlczsKKwogCXN0cnVjdCBuZnBfZmxvd19wcml2ICpm bG93X3ByaXY7CiB9OwogCitzdGF0aWMgaW5saW5lIGJvb2wKK25mcF9mbG93ZXJfc3VwcG9ydF9k ZWNhcF92Mihjb25zdCBzdHJ1Y3QgbmZwX2FwcF9md19mbG93ZXIgKmFwcF9md19mbG93ZXIpCit7 CisJcmV0dXJuIGFwcF9md19mbG93ZXItPmV4dF9mZWF0dXJlcyAmIE5GUF9GTF9GRUFUU19ERUNB UF9WMjsKK30KKwogaW50IG5mcF9pbml0X2FwcF9md19mbG93ZXIoc3RydWN0IG5mcF9wZl9kZXYg KnBmX2Rldik7CiBpbnQgbmZwX3NlY29uZGFyeV9pbml0X2FwcF9md19mbG93ZXIoc3RydWN0IG5m cF9jcHAgKmNwcCk7CiB1aW50MTZfdCBuZnBfZmxvd2VyX3BmX3JlY3ZfcGt0cyh2b2lkICpyeF9x dWV1ZSwgc3RydWN0IHJ0ZV9tYnVmICoqcnhfcGt0cywKCmh0dHBzOi8vbGFiLmRwZGsub3JnL3Jl c3VsdHMvZGFzaGJvYXJkL3BhdGNoc2V0cy8yNDE3NS8KClVOSC1JT0wgRFBESyBDb21tdW5pdHkg TGFiCg== --===============0503977757512399669==--