From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 963DCC433F5 for ; Thu, 23 Sep 2021 03:50:20 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 791646103D for ; Thu, 23 Sep 2021 03:50:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239277AbhIWDvu (ORCPT ); Wed, 22 Sep 2021 23:51:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42766 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239272AbhIWDvq (ORCPT ); Wed, 22 Sep 2021 23:51:46 -0400 Received: from mail-il1-x135.google.com (mail-il1-x135.google.com [IPv6:2607:f8b0:4864:20::135]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5F353C06175F for ; Wed, 22 Sep 2021 20:50:04 -0700 (PDT) Received: by mail-il1-x135.google.com with SMTP id b8so5114293ilh.12 for ; Wed, 22 Sep 2021 20:50:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=9hhxntsFEhc11E4ChWxl7K6WHS/Ctx+5suZvL/lgvog=; b=goHkHkG/WSqUnjT0/+tX1Fge673ZUpGFrBIQKjwmhza4aj2IssbGRNLh6HvKOUKo12 aS8GanCc89+DH5w624i6k8dhAFf5gb1zU9lVtc6eYCkphsl8mlnEGJ379wel0v4RTfBi h/Zc131mUTjPybqDW5cCYkfh9hR42KizzDgoI2KOy8Ro+g2dzXffsj9l8yNit7ZRmh5V eS7PXoC+AONoWwiriB1UAjSnIAnywblEeGDShDP0uAnjFQmxgtXhEd3zaB4N15QzltLo UB0lynthSOaHQ4GErePEs5J76SNh5OuGVIwePsCGxE5AOe9ELvWimDryxA0/UlTdFN9I w+dg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=9hhxntsFEhc11E4ChWxl7K6WHS/Ctx+5suZvL/lgvog=; b=z7aVey1DsgZL4FNq9HfQBLUusUXr+Gb2zm+U/SohNLp8sHl7LORO+axXtjLAzRGEBe mhzmzgBzz/FJME/8RtBtbeD2fbZj0wVXDOIFOjtrz81rcMwrDO57IEdyRAnQNM6LUlFJ CemWe3+XzwGnmGwSGOHmBtnNycGOjReuJXrO/Ld7+3mcwPl6VFI8i/oT+EGxiuiR+rvy H17n9tmfftftjCLjaR1kogmDmcXolOdk/4ClwoCReY1zrdbx5/fZ7LChooGFbztjNUpQ 67L/dW0GEdijIFf8Azf7qYq6YSQrKFohYcgu2EoPAH3z0Rwn1fL2G8HytwHZHqK8Cptf M4og== X-Gm-Message-State: AOAM53084N2XlGzM6NWqFLQssn04ufVkDq8/xD5peXNVal1FcLyF9GBN QTUmnuLwUwAyuc1rKc0EfzSwgNziJs8jwELVg4g= X-Google-Smtp-Source: ABdhPJxdZ3HrugE939Cuib0HTNA8x7FeBT0qH/e0jXeX3sbFkjVQ0GM8SWfQsW1dEgYBChmz7152aP0QVakuaFHwVuI= X-Received: by 2002:a05:6e02:eb0:: with SMTP id u16mr1941707ilj.178.1632369003434; Wed, 22 Sep 2021 20:50:03 -0700 (PDT) MIME-Version: 1.0 References: <20210910064255.385012-1-siyanteng@loongson.cn> In-Reply-To: From: Alex Shi Date: Thu, 23 Sep 2021 11:49:27 +0800 Message-ID: Subject: Re: [PATCH] docs/zh_CN: add core api kref translation To: yanteng si Cc: Jonathan Corbet , Alex Shi , Huacai Chen , Jiaxun Yang , linux-doc@vger.kernel.org, Puyu Wang , junhuahuangdream@163.com, cgel.zte@gmail.com, Yanteng Si Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Precedence: bulk List-ID: X-Mailing-List: linux-doc@vger.kernel.org T24gTW9uLCBTZXAgMjAsIDIwMjEgYXQgNjowMSBQTSB5YW50ZW5nIHNpIDxzaXlhbnRlbmcwMUBn bWFpbC5jb20+IHdyb3RlOg0KPg0KPiBZYW50ZW5nIFNpIDxzaXlhbnRlbmcwMUBnbWFpbC5jb20+ IOS6jjIwMjHlubQ55pyIMTDml6XlkajkupQg5LiL5Y2IMjo0NOWGmemBk++8mg0KPiA+DQo+ID4g VHJhbnNsYXRlIERvY3VtZW50YXRpb24vY29yZS1hcGkva3JlZi5yc3QgaW50byBDaGluZXNlLg0K PiA+DQoNCmxvb2tzIGdvb2QgZm9yIG1lLg0KDQpSZXZpZXdlZC1ieTogQWxleCBTaGkgPGFsZXhz QGtlcm5lbC5vcmc+DQoNCj4gPiBTaWduZWQtb2ZmLWJ5OiBZYW50ZW5nIFNpIDxzaXlhbnRlbmdA bG9vbmdzb24uY24+DQo+ID4gLS0tDQo+ID4gIC4uLi90cmFuc2xhdGlvbnMvemhfQ04vY29yZS1h cGkvaW5kZXgucnN0ICAgICB8ICAgMyArLQ0KPiA+ICAuLi4vdHJhbnNsYXRpb25zL3poX0NOL2Nv cmUtYXBpL2tyZWYucnN0ICAgICAgfCAzMTEgKysrKysrKysrKysrKysrKysrDQo+ID4gIDIgZmls ZXMgY2hhbmdlZCwgMzEzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCj4gPiAgY3JlYXRl IG1vZGUgMTAwNjQ0IERvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL2NvcmUtYXBpL2ty ZWYucnN0DQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMv emhfQ04vY29yZS1hcGkvaW5kZXgucnN0IGIvRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhf Q04vY29yZS1hcGkvaW5kZXgucnN0DQo+ID4gaW5kZXggNzJmMGEzNmRhYTFjLi44NjY1ZGY0NjRl ZmUgMTAwNjQ0DQo+ID4gLS0tIGEvRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vY29y ZS1hcGkvaW5kZXgucnN0DQo+ID4gKysrIGIvRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhf Q04vY29yZS1hcGkvaW5kZXgucnN0DQo+ID4gQEAgLTM5LDEwICszOSwxMSBAQA0KPiA+ICAgICA6 bWF4ZGVwdGg6IDENCj4gPg0KPiA+ICAgICBrb2JqZWN0DQo+ID4gKyAgIGtyZWYNCj4gPg0KPiA+ ICBUb2RvbGlzdDoNCj4gPg0KPiA+IC0gICBrcmVmDQo+ID4gKw0KPiA+ICAgICBhc3NvY19hcnJh eQ0KPiA+ICAgICB4YXJyYXkNCj4gPiAgICAgaWRyDQo+ID4gZGlmZiAtLWdpdCBhL0RvY3VtZW50 YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL2NvcmUtYXBpL2tyZWYucnN0IGIvRG9jdW1lbnRhdGlv bi90cmFuc2xhdGlvbnMvemhfQ04vY29yZS1hcGkva3JlZi5yc3QNCj4gPiBuZXcgZmlsZSBtb2Rl IDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uYjk5MDJhZjMxMGM1DQo+ID4gLS0tIC9k ZXYvbnVsbA0KPiA+ICsrKyBiL0RvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL2NvcmUt YXBpL2tyZWYucnN0DQo+ID4gQEAgLTAsMCArMSwzMTEgQEANCj4gPiArLi4gaW5jbHVkZTo6IC4u L2Rpc2NsYWltZXItemhfQ04ucnN0DQo+ID4gKw0KPiA+ICs6T3JpZ2luYWw6IERvY3VtZW50YXRp b24vY29yZS1hcGkva3JlZi5yc3QNCj4gPiArDQo+ID4gK+e/u+ivkToNCj4gPiArDQo+ID4gK+WP uOW7tuiFviBZYW50ZW5nIFNpIDxzaXlhbnRlbmdAbG9vbmdzb24uY24+DQo+ID4gKw0KPiA+ICvm oKHor5HvvJoNCj4gPiArDQo+ID4gKyA85q2k5aSE6K+35qCh6K+R5ZGY562+5ZCN77yI6Ieq5oS/ 77yJ77yM5oiR5bCG5Zyo5LiL5LiA5Liq54mI5pys5re75YqgPg0KPiA+ICsNCj4gPiArLi4gX2Nu X2NvcmVfYXBpX2tyZWYucnN0Og0KPiA+ICsNCj4gPiArPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09DQo+ID4gK+S4uuWGheaguOWvueixoea3u+WKoOW8leeUqOiuoeaVsOWZqO+8iGty ZWZz77yJDQo+ID4gKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA+ICsNCj4g PiArOuS9nOiAhTogQ29yZXkgTWlueWFyZCA8bWlueWFyZEBhY20ub3JnPg0KPiA+ICs65L2c6ICF OiBUaG9tYXMgSGVsbHN0cm9tIDx0aGVsbHN0cm9tQHZtd2FyZS5jb20+DQo+ID4gKw0KPiA+ICvl hbbkuK3lvojlpJrlhoXlrrnpg73mmK/ku45HcmVnIEtyb2FoLUhhcnRtYW4yMDA05bm05YWz5LqO a3JlZnPnmoRPTFPorrrmloflkozmvJTorrLkuK3mkZgNCj4gPiAr5b2V55qE77yM5Y+v5Lul5Zyo 5Lul5LiL572R5Z2A5om+5YiwOg0KPiA+ICsNCj4gPiArICAtIGh0dHA6Ly93d3cua3JvYWguY29t L2xpbnV4L3RhbGtzL29sc18yMDA0X2tyZWZfcGFwZXIvUmVwcmludC1Lcm9haC1IYXJ0bWFuLU9M UzIwMDQucGRmDQo+ID4gKyAgLSBodHRwOi8vd3d3Lmtyb2FoLmNvbS9saW51eC90YWxrcy9vbHNf MjAwNF9rcmVmX3RhbGsvDQo+ID4gKw0KPiA+ICvnroDku4sNCj4gPiArPT09PQ0KPiA+ICsNCj4g PiAra3JlZnPlhYHorrjkvaDkuLrkvaDnmoTlr7nosaHmt7vliqDlvJXnlKjorqHmlbDlmajjgILl poLmnpzkvaDmnInlnKjlpJrkuKrlnLDmlrnkvb/nlKjlkozkvKDpgJLnmoTlr7nosaHvvIwNCj4g PiAr6ICM5L2g5rKh5pyJcmVmY291bnRz77yM5L2g55qE5Luj56CB5Yeg5LmO6IKv5a6a5piv5Z2P 55qE44CC5aaC5p6c5L2g5oOz6KaB5byV55So6K6h5pWw77yMa3JlZnPmmK/kuKoNCj4gPiAr5aW9 5Yqe5rOV44CCDQo+ID4gKw0KPiA+ICvopoHkvb/nlKhrcmVm77yM6K+35Zyo5L2g55qE5pWw5o2u 57uT5p6E5Lit5re75Yqg5LiA5Liq77yM5aaCOjoNCj4gPiArDQo+ID4gKyAgICBzdHJ1Y3QgbXlf ZGF0YQ0KPiA+ICsgICAgew0KPiA+ICsgICAgICAgLg0KPiA+ICsgICAgICAgLg0KPiA+ICsgICAg ICAgc3RydWN0IGtyZWYgcmVmY291bnQ7DQo+ID4gKyAgICAgICAuDQo+ID4gKyAgICAgICAuDQo+ ID4gKyAgICB9Ow0KPiA+ICsNCj4gPiAra3JlZuWPr+S7peWHuueOsOWcqOaVsOaNrue7k+aehOS9 k+S4reeahOS7u+S9leWcsOaWueOAgg0KPiA+ICsNCj4gPiAr5Yid5aeL5YyWDQo+ID4gKz09PT09 PQ0KPiA+ICsNCj4gPiAr5L2g5b+F6aG75Zyo5YiG6YWNa3JlZuS5i+WQjuWIneWni+WMluWug+OA giDopoHlgZrliLDov5nkuIDngrnvvIzlj6/ku6Xov5nmoLfosIPnlKhrcmVmX2luaXQ6Og0KPiA+ ICsNCj4gPiArICAgICBzdHJ1Y3QgbXlfZGF0YSAqZGF0YTsNCj4gPiArDQo+ID4gKyAgICAgZGF0 YSA9IGttYWxsb2Moc2l6ZW9mKCpkYXRhKSwgR0ZQX0tFUk5FTCk7DQo+ID4gKyAgICAgaWYgKCFk YXRhKQ0KPiA+ICsgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsNCj4gPiArICAgICBrcmVmX2lu aXQoJmRhdGEtPnJlZmNvdW50KTsNCj4gPiArDQo+ID4gK+i/meWwhmtyZWbkuK3nmoRyZWZjb3Vu dOiuvue9ruS4ujHjgIINCj4gPiArDQo+ID4gK0tyZWbop4TliJkNCj4gPiArPT09PT09PT0NCj4g PiArDQo+ID4gK+S4gOaXpuS9oOacieS4gOS4quWIneWni+WMlueahGtyZWbvvIzkvaDlv4Xpobvp gbXlvqrku6XkuIvop4TliJk6DQo+ID4gKw0KPiA+ICsxKSDlpoLmnpzkvaDlr7nkuIDkuKrmjIfp kojlgZrkuobkuIDkuKrpnZ7kuLTml7bmgKfnmoTmi7fotJ3vvIznibnliKvmmK/lpoLmnpzlroPl j6/ku6XooqvkvKDpgJLnu5nlj6bkuIDkuKrmiacNCj4gPiArICAg6KGM57q/56iL77yM5L2g5b+F 6aG75Zyo5Lyg6YCS5LmL5YmN55Soa3JlZl9nZXQoKeWinuWKoHJlZmNvdW50OjoNCj4gPiArDQo+ ID4gKyAgICAgICBrcmVmX2dldCgmZGF0YS0+cmVmY291bnQpOw0KPiA+ICsNCj4gPiArICAgICAg IOWmguaenOS9oOW3sue7j+acieS6huS4gOS4quaMh+WQkWtyZWYtZWTnu5PmnoTkvZPnmoTmnInm lYjmjIfpkojvvIhyZWZjb3VudOS4jeiDveS4uumbtu+8ie+8jOS9oA0KPiA+ICsgICAgICAg5Y+v 5Lul5Zyo5rKh5pyJ6ZSB55qE5oOF5Ya15LiL6L+Z5qC35YGa44CCDQo+ID4gKw0KPiA+ICsyKSDl vZPkvaDlrozmiJDlr7nkuIDkuKrmjIfpkojnmoTlpITnkIbml7bvvIzkvaDlv4XpobvosIPnlKhr cmVmX3B1dCgpOjoNCj4gPiArDQo+ID4gKyAgICAgICBrcmVmX3B1dCgmZGF0YS0+cmVmY291bnQs IGRhdGFfcmVsZWFzZSk7DQo+ID4gKw0KPiA+ICsgICDlpoLmnpzov5nmmK/lr7nor6XmjIfpkojn moTmnIDlkI7kuIDmrKHlvJXnlKjvvIzph4rmlL7nqIvluo/lsIbooqvosIPnlKjjgILlpoLmnpzk u6PnoIHku47mnaXmsqHmnInlsJ3or5Xov4cNCj4gPiArICAg5Zyo5rKh5pyJ5bey57uP5oyB5pyJ 5pyJ5pWI5oyH6ZKI55qE5oOF5Ya15LiL6I635b6X5LiA5Liqa3JlZi1lZOe7k+aehOS9k+eahOac ieaViOaMh+mSiO+8jOmCo+S5iOWcqOayoQ0KPiA+ICsgICDmnInplIHnmoTmg4XlhrXkuIvov5nm oLflgZrmmK/lronlhajnmoTjgIINCj4gPiArDQo+ID4gKzMpIOWmguaenOS7o+eggeivleWbvuiO t+W+l+WvueS4gOS4qmtyZWYtZWTnu5PmnoTkvZPnmoTlvJXnlKjvvIzogIzkuI3mjIHmnInkuIDk uKrmnInmlYjnmoTmjIfpkojvvIzlroPlv4UNCj4gPiArICAg6aG75oyJ6aG65bqP6K6/6Zeu77yM 5Zyoa3JlZl9wdXQoKeacn+mXtOS4jeiDveWPkeeUn2tyZWZfZ2V0KCnvvIzlubbkuJTor6Xnu5Pm noTkvZPlnKhrcmVmX2dldCgpDQo+ID4gKyAgIOacn+mXtOW/hemhu+S/neaMgeacieaViOOAgg0K PiA+ICsNCj4gPiAr5L6L5aaC77yM5aaC5p6c5L2g5YiG6YWN5LqG5LiA5Lqb5pWw5o2u77yM54S2 5ZCO5bCG5YW25Lyg6YCS57uZ5Y+m5LiA5Liq57q/56iL5p2l5aSE55CGOjoNCj4gPiArDQo+ID4g KyAgICB2b2lkIGRhdGFfcmVsZWFzZShzdHJ1Y3Qga3JlZiAqcmVmKQ0KPiA+ICsgICAgew0KPiA+ ICsgICAgICAgc3RydWN0IG15X2RhdGEgKmRhdGEgPSBjb250YWluZXJfb2YocmVmLCBzdHJ1Y3Qg bXlfZGF0YSwgcmVmY291bnQpOw0KPiA+ICsgICAgICAga2ZyZWUoZGF0YSk7DQo+ID4gKyAgICB9 DQo+ID4gKw0KPiA+ICsgICAgdm9pZCBtb3JlX2RhdGFfaGFuZGxpbmcodm9pZCAqY2JfZGF0YSkN Cj4gPiArICAgIHsNCj4gPiArICAgICAgIHN0cnVjdCBteV9kYXRhICpkYXRhID0gY2JfZGF0YTsN Cj4gPiArICAgICAgIC4NCj4gPiArICAgICAgIC4gZG8gc3R1ZmYgd2l0aCBkYXRhIGhlcmUNCj4g PiArICAgICAgIC4NCj4gPiArICAgICAgIGtyZWZfcHV0KCZkYXRhLT5yZWZjb3VudCwgZGF0YV9y ZWxlYXNlKTsNCj4gPiArICAgIH0NCj4gPiArDQo+ID4gKyAgICBpbnQgbXlfZGF0YV9oYW5kbGVy KHZvaWQpDQo+ID4gKyAgICB7DQo+ID4gKyAgICAgICBpbnQgcnYgPSAwOw0KPiA+ICsgICAgICAg c3RydWN0IG15X2RhdGEgKmRhdGE7DQo+ID4gKyAgICAgICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRh c2s7DQo+ID4gKyAgICAgICBkYXRhID0ga21hbGxvYyhzaXplb2YoKmRhdGEpLCBHRlBfS0VSTkVM KTsNCj4gPiArICAgICAgIGlmICghZGF0YSkNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIC1F Tk9NRU07DQo+ID4gKyAgICAgICBrcmVmX2luaXQoJmRhdGEtPnJlZmNvdW50KTsNCj4gPiArDQo+ ID4gKyAgICAgICBrcmVmX2dldCgmZGF0YS0+cmVmY291bnQpOw0KPiA+ICsgICAgICAgdGFzayA9 IGt0aHJlYWRfcnVuKG1vcmVfZGF0YV9oYW5kbGluZywgZGF0YSwgIm1vcmVfZGF0YV9oYW5kbGlu ZyIpOw0KPiA+ICsgICAgICAgaWYgKHRhc2sgPT0gRVJSX1BUUigtRU5PTUVNKSkgew0KPiA+ICsg ICAgICAgICAgICAgICBydiA9IC1FTk9NRU07DQo+ID4gKyAgICAgICAgICAgICAgIGtyZWZfcHV0 KCZkYXRhLT5yZWZjb3VudCwgZGF0YV9yZWxlYXNlKTsNCj4gPiArICAgICAgICAgICAgICAgZ290 byBvdXQ7DQo+ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAgLg0KPiA+ICsgICAgICAg LiBkbyBzdHVmZiB3aXRoIGRhdGEgaGVyZQ0KPiA+ICsgICAgICAgLg0KPiA+ICsgICAgb3V0Og0K PiA+ICsgICAgICAga3JlZl9wdXQoJmRhdGEtPnJlZmNvdW50LCBkYXRhX3JlbGVhc2UpOw0KPiA+ ICsgICAgICAgcmV0dXJuIHJ2Ow0KPiA+ICsgICAgfQ0KPiA+ICsNCj4gPiAr6L+Z5qC377yM5Lik 5Liq57q/56iL5aSE55CG5pWw5o2u55qE6aG65bqP5bm25LiN6YeN6KaB77yMa3JlZl9wdXQoKeWk hOeQhuefpemBk+aVsOaNruS4jeWGjeiiq+W8leeUqOW5tumHig0KPiA+ICvmlL7lroPjgIJrcmVm X2dldCgp5LiN6ZyA6KaB6ZSB77yM5Zug5Li65oiR5Lus5bey57uP5pyJ5LqG5LiA5Liq5pyJ5pWI 55qE5oyH6ZKI77yM5oiR5Lus5oul5pyJ5LiA5LiqDQo+ID4gK3JlZmNvdW5044CCcHV05LiN6ZyA 6KaB6ZSB77yM5Zug5Li65rKh5pyJ5Lu75L2V5Lic6KW/6K+V5Zu+5Zyo5rKh5pyJ5oyB5pyJ5oyH 6ZKI55qE5oOF5Ya15LiL6I635Y+W5pWw5o2u44CCDQo+ID4gKw0KPiA+ICvlnKjkuIrpnaLnmoTk vovlrZDkuK3vvIxrcmVmX3B1dCgp5Zyo5oiQ5Yqf5ZKM6ZSZ6K+v6Lev5b6E5Lit6YO95Lya6KKr 6LCD55SoMuasoeOAgui/meaYr+W/heimgeeahO+8jOWboA0KPiA+ICvkuLrlvJXnlKjorqHmlbDo oqtrcmVmX2luaXQoKeWSjGtyZWZfZ2V0KCnpgJLlop7kuoYy5qyh44CCDQo+ID4gKw0KPiA+ICvo r7fms6jmhI/vvIzop4TliJkx5Lit55qEICJiZWZvcmUgIuaYr+mdnuW4uOmHjeimgeeahOOAguS9 oOS4jeW6lOivpeWBmuexu+S8vOS6jjo6DQo+ID4gKw0KPiA+ICsgICAgICAgdGFzayA9IGt0aHJl YWRfcnVuKG1vcmVfZGF0YV9oYW5kbGluZywgZGF0YSwgIm1vcmVfZGF0YV9oYW5kbGluZyIpOw0K PiA+ICsgICAgICAgaWYgKHRhc2sgPT0gRVJSX1BUUigtRU5PTUVNKSkgew0KPiA+ICsgICAgICAg ICAgICAgICBydiA9IC1FTk9NRU07DQo+ID4gKyAgICAgICAgICAgICAgIGdvdG8gb3V0Ow0KPiA+ ICsgICAgICAgfSBlbHNlDQo+ID4gKyAgICAgICAgICAgICAgIC8qIEJBRCBCQUQgQkFEIC0g5Zyo 5Lqk5o6l5ZCO5b6X5YiwICovDQo+ID4gKyAgICAgICAgICAgICAgIGtyZWZfZ2V0KCZkYXRhLT5y ZWZjb3VudCk7DQo+ID4gKw0KPiA+ICvkuI3opoHku6XkuLrkvaDnn6XpgZPoh6rlt7HlnKjlgZrk u4DkuYjogIzkvb/nlKjkuIrov7DmnoTpgKDjgILpppblhYjvvIzkvaDlj6/og73kuI3nn6XpgZPo h6rlt7HlnKjlgZrku4DkuYjjgIINCj4gPiAr5YW25qyh77yM5L2g5Y+v6IO955+l6YGT6Ieq5bex 5Zyo5YGa5LuA5LmI77yI5pyJ5Lqb5oOF5Ya15LiL5raJ5Y+K5Yiw6ZSB77yM5LiK6L+w5YGa5rOV 5Y+v6IO95piv5ZCI5rOV55qE77yJ77yMDQo+ID4gK+S9huWFtuS7luS4jeefpemBk+iHquW3seWc qOWBmuS7gOS5iOeahOS6uuWPr+iDveS8muaUueWPmOS7o+eggeaIluWkjeWItuS7o+eggeOAgui/ meaYr+W+iOWNsemZqeeahOS9nOmjjuOAguivtw0KPiA+ICvkuI3opoHov5nmoLflgZrjgIINCj4g PiArDQo+ID4gK+WcqOacieS6m+aDheWGteS4i++8jOS9oOWPr+S7peS8mOWMlmdldOWSjHB1dOOA guS+i+Wmgu+8jOWmguaenOS9oOW3sue7j+WujOaIkOS6huS4gOS4quWvueixoe+8jOW5tuS4lOe7 meWFtg0KPiA+ICvku5blr7nosaHmjpLpmJ/vvIzmiJbogIXmiorlroPkvKDpgJLnu5nlhbbku5bl r7nosaHvvIzpgqPkuYjlsLHmsqHmnInnkIbnlLHlhYjlgZrkuIDkuKpnZXTvvIznhLblkI7lho3l gZrkuIDkuKoNCj4gPiArcHV0OjoNCj4gPiArDQo+ID4gKyAgICAgICAvKiDns5/ns5XnmoTpop3l pJbojrflj5YoZ2V0KeWSjOi+k+WHuihwdXQpICovDQo+ID4gKyAgICAgICBrcmVmX2dldCgmb2Jq LT5yZWYpOw0KPiA+ICsgICAgICAgZW5xdWV1ZShvYmopOw0KPiA+ICsgICAgICAga3JlZl9wdXQo Jm9iai0+cmVmLCBvYmpfY2xlYW51cCk7DQo+ID4gKw0KPiA+ICvlj6ropoHlgZplbnF1ZXVl5bCx 5Y+v5Lul5LqG44CCIOaIkeS7rOmaj+aXtuasoui/juWvuei/meS4qumXrumimOeahOivhOiuujo6 DQo+ID4gKw0KPiA+ICsgICAgICAgZW5xdWV1ZShvYmopOw0KPiA+ICsgICAgICAgLyog5oiR5Lus 5bey57uP5a6M5oiQ5LqG5a+5b2Jq55qE5aSE55CG77yM5omA5Lul5oiR5Lus5oqK5oiR5Lus55qE cmVmY291bnTkvKDnu5nkuobpmJ/liJfjgIINCj4gPiArICAgICAgICDlnKjov5nkuYvlkI7kuI3o poHlho3norBvYmrkuoYhICovDQo+ID4gKw0KPiA+ICvmnIDlkI7kuIDmnaHop4TliJnvvIjop4Tl iJkz77yJ5piv5pyA6Zq+5aSE55CG55qE5LiA5p2h44CC5L6L5aaC77yM5L2g5pyJ5LiA5Liq5q+P 5Liq6aG555uu6YO96KKra3JlZmVk55qE5YiX6KGo77yMDQo+ID4gK+iAjOS9oOW4jOacm+W+l+WI sOesrOS4gOS4qumhueebruOAguS9oOS4jeiDveWPquaYr+S7juWIl+ihqOS4reaKveWHuuesrOS4 gOS4qumhueebru+8jOeEtuWQjmtyZWZfZ2V0KCnlroPjgIINCj4gPiAr6L+Z6L+d5Y+N5LqG6KeE 5YiZM++8jOWboOS4uuS9oOi/mOayoeacieaMgeacieS4gOS4quacieaViOeahOaMh+mSiOOAguS9 oOW/hemhu+a3u+WKoOS4gOS4qm11dGV477yI5oiW5YW25LuW6ZSB77yJ44CCDQo+ID4gK+avlOWm guivtDo6DQo+ID4gKw0KPiA+ICsgICAgICAgc3RhdGljIERFRklORV9NVVRFWChtdXRleCk7DQo+ ID4gKyAgICAgICBzdGF0aWMgTElTVF9IRUFEKHEpOw0KPiA+ICsgICAgICAgc3RydWN0IG15X2Rh dGENCj4gPiArICAgICAgIHsNCj4gPiArICAgICAgICAgICAgICAgc3RydWN0IGtyZWYgICAgICBy ZWZjb3VudDsNCj4gPiArICAgICAgICAgICAgICAgc3RydWN0IGxpc3RfaGVhZCBsaW5rOw0KPiA+ ICsgICAgICAgfTsNCj4gPiArDQo+ID4gKyAgICAgICBzdGF0aWMgc3RydWN0IG15X2RhdGEgKmdl dF9lbnRyeSgpDQo+ID4gKyAgICAgICB7DQo+ID4gKyAgICAgICAgICAgICAgIHN0cnVjdCBteV9k YXRhICplbnRyeSA9IE5VTEw7DQo+ID4gKyAgICAgICAgICAgICAgIG11dGV4X2xvY2soJm11dGV4 KTsNCj4gPiArICAgICAgICAgICAgICAgaWYgKCFsaXN0X2VtcHR5KCZxKSkgew0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgIGVudHJ5ID0gY29udGFpbmVyX29mKHEubmV4dCwgc3RydWN0IG15 X2RhdGEsIGxpbmspOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGtyZWZfZ2V0KCZlbnRy eS0+cmVmY291bnQpOw0KPiA+ICsgICAgICAgICAgICAgICB9DQo+ID4gKyAgICAgICAgICAgICAg IG11dGV4X3VubG9jaygmbXV0ZXgpOw0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gZW50cnk7 DQo+ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAgc3RhdGljIHZvaWQgcmVsZWFzZV9l bnRyeShzdHJ1Y3Qga3JlZiAqcmVmKQ0KPiA+ICsgICAgICAgew0KPiA+ICsgICAgICAgICAgICAg ICBzdHJ1Y3QgbXlfZGF0YSAqZW50cnkgPSBjb250YWluZXJfb2YocmVmLCBzdHJ1Y3QgbXlfZGF0 YSwgcmVmY291bnQpOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICAgbGlzdF9kZWwoJmVudHJ5 LT5saW5rKTsNCj4gPiArICAgICAgICAgICAgICAga2ZyZWUoZW50cnkpOw0KPiA+ICsgICAgICAg fQ0KPiA+ICsNCj4gPiArICAgICAgIHN0YXRpYyB2b2lkIHB1dF9lbnRyeShzdHJ1Y3QgbXlfZGF0 YSAqZW50cnkpDQo+ID4gKyAgICAgICB7DQo+ID4gKyAgICAgICAgICAgICAgIG11dGV4X2xvY2so Jm11dGV4KTsNCj4gPiArICAgICAgICAgICAgICAga3JlZl9wdXQoJmVudHJ5LT5yZWZjb3VudCwg cmVsZWFzZV9lbnRyeSk7DQo+ID4gKyAgICAgICAgICAgICAgIG11dGV4X3VubG9jaygmbXV0ZXgp Ow0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiAr5aaC5p6c5L2g5LiN5oOz5Zyo5pW05Liq6YeK 5pS+5pON5L2c6L+H56iL5Lit5oyB5pyJ6ZSB77yMa3JlZl9wdXQoKeeahOi/lOWbnuWAvOaYr+ac ieeUqOeahOOAguWBh+iuvuS9oOS4jeaDs+WcqA0KPiA+ICvkuIrpnaLnmoTkvovlrZDkuK3lnKjm jIHmnInplIHnmoTmg4XlhrXkuIvosIPnlKhrZnJlZSgp77yI5Zug5Li66L+Z5qC35YGa5pyJ54K5 5peg5oSP5LmJ77yJ44CC5L2g5Y+v5Lul5L2/55Soa3JlZl9wdXQoKe+8jA0KPiA+ICvlpoLkuIvm iYDnpLo6Og0KPiA+ICsNCj4gPiArICAgICAgIHN0YXRpYyB2b2lkIHJlbGVhc2VfZW50cnkoc3Ry dWN0IGtyZWYgKnJlZikNCj4gPiArICAgICAgIHsNCj4gPiArICAgICAgICAgICAgICAgLyog5omA 5pyJ55qE5bel5L2c6YO95piv5Zyo5LuOa3JlZl9wdXQoKei/lOWbnuWQjuWujOaIkOeahOOAgiov DQo+ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAgc3RhdGljIHZvaWQgcHV0X2VudHJ5 KHN0cnVjdCBteV9kYXRhICplbnRyeSkNCj4gPiArICAgICAgIHsNCj4gPiArICAgICAgICAgICAg ICAgbXV0ZXhfbG9jaygmbXV0ZXgpOw0KPiA+ICsgICAgICAgICAgICAgICBpZiAoa3JlZl9wdXQo JmVudHJ5LT5yZWZjb3VudCwgcmVsZWFzZV9lbnRyeSkpIHsNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICBsaXN0X2RlbCgmZW50cnktPmxpbmspOw0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgIG11dGV4X3VubG9jaygmbXV0ZXgpOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGtm cmVlKGVudHJ5KTsNCj4gPiArICAgICAgICAgICAgICAgfSBlbHNlDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgbXV0ZXhfdW5sb2NrKCZtdXRleCk7DQo+ID4gKyAgICAgICB9DQo+ID4gKw0K PiA+ICvlpoLmnpzkvaDlv4XpobvosIPnlKjlhbbku5bnqIvluo/kvZzkuLrph4rmlL7mk43kvZzn moTkuIDpg6jliIbvvIzogIzov5nkupvnqIvluo/lj6/og73pnIDopoHlvojplb/nmoTml7bpl7Tv vIzmiJbogIXlj68NCj4gPiAr6IO96KaB5rGC55u45ZCM55qE6ZSB77yM6YKj5LmI6L+Z55yf55qE 5pu05pyJ55So44CC6K+35rOo5oSP77yM5Zyo6YeK5pS+5L6L56iL5Lit5YGa5omA5pyJ55qE5LqL 5oOF6L+Y5piv5q+U6L6D5aW955qE77yMDQo+ID4gK+WboOS4uuWug+avlOi+g+aVtOa0geOAgg0K PiA+ICsNCj4gPiAr5LiK6Z2i55qE5L6L5a2Q5Lmf5Y+v5Lul55Soa3JlZl9nZXRfdW5sZXNzX3pl cm8oKeadpeS8mOWMlu+8jOaWueazleWmguS4izo6DQo+ID4gKw0KPiA+ICsgICAgICAgc3RhdGlj IHN0cnVjdCBteV9kYXRhICpnZXRfZW50cnkoKQ0KPiA+ICsgICAgICAgew0KPiA+ICsgICAgICAg ICAgICAgICBzdHJ1Y3QgbXlfZGF0YSAqZW50cnkgPSBOVUxMOw0KPiA+ICsgICAgICAgICAgICAg ICBtdXRleF9sb2NrKCZtdXRleCk7DQo+ID4gKyAgICAgICAgICAgICAgIGlmICghbGlzdF9lbXB0 eSgmcSkpIHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBlbnRyeSA9IGNvbnRhaW5lcl9v ZihxLm5leHQsIHN0cnVjdCBteV9kYXRhLCBsaW5rKTsNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICBpZiAoIWtyZWZfZ2V0X3VubGVzc196ZXJvKCZlbnRyeS0+cmVmY291bnQpKQ0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cnkgPSBOVUxMOw0KPiA+ICsgICAgICAg ICAgICAgICB9DQo+ID4gKyAgICAgICAgICAgICAgIG11dGV4X3VubG9jaygmbXV0ZXgpOw0KPiA+ ICsgICAgICAgICAgICAgICByZXR1cm4gZW50cnk7DQo+ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ ICsgICAgICAgc3RhdGljIHZvaWQgcmVsZWFzZV9lbnRyeShzdHJ1Y3Qga3JlZiAqcmVmKQ0KPiA+ ICsgICAgICAgew0KPiA+ICsgICAgICAgICAgICAgICBzdHJ1Y3QgbXlfZGF0YSAqZW50cnkgPSBj b250YWluZXJfb2YocmVmLCBzdHJ1Y3QgbXlfZGF0YSwgcmVmY291bnQpOw0KPiA+ICsNCj4gPiAr ICAgICAgICAgICAgICAgbXV0ZXhfbG9jaygmbXV0ZXgpOw0KPiA+ICsgICAgICAgICAgICAgICBs aXN0X2RlbCgmZW50cnktPmxpbmspOw0KPiA+ICsgICAgICAgICAgICAgICBtdXRleF91bmxvY2so Jm11dGV4KTsNCj4gPiArICAgICAgICAgICAgICAga2ZyZWUoZW50cnkpOw0KPiA+ICsgICAgICAg fQ0KPiA+ICsNCj4gPiArICAgICAgIHN0YXRpYyB2b2lkIHB1dF9lbnRyeShzdHJ1Y3QgbXlfZGF0 YSAqZW50cnkpDQo+ID4gKyAgICAgICB7DQo+ID4gKyAgICAgICAgICAgICAgIGtyZWZfcHV0KCZl bnRyeS0+cmVmY291bnQsIHJlbGVhc2VfZW50cnkpOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4g PiAr6L+Z5a+55LqO5ZyocHV0X2VudHJ5KCnkuK3np7vpmaRrcmVmX3B1dCgp5ZGo5Zu055qEbXV0 ZXjplIHmmK/lvojmnInnlKjnmoTvvIzkvYbmmK/ph43opoHnmoTmmK8NCj4gPiAra3JlZl9nZXRf dW5sZXNzX3plcm/ooqvlsIHoo4XlnKjmn6Xmib7ooajkuK3nmoTlkIzkuIDlhbPplK7pg6jliIbv vIzlkKbliJlrcmVmX2dldF91bmxlc3NfemVybw0KPiA+ICvlj6/og73lvJXnlKjlt7Lnu4/ph4rm lL7nmoTlhoXlrZjjgILms6jmhI/vvIzlnKjkuI3mo4Dmn6Xlhbbov5Tlm57lgLznmoTmg4XlhrXk uIvkvb/nlKhrcmVmX2dldF91bmxlc3NfemVybw0KPiA+ICvmmK/pnZ7ms5XnmoTjgILlpoLmnpzk vaDnoa7kv6HvvIjlt7Lnu4/mnInkuobkuIDkuKrmnInmlYjnmoTmjIfpkojvvIlrcmVmX2dldF91 bmxlc3NfemVybygp5Lya6L+U5ZuedHJ1Ze+8jA0KPiA+ICvpgqPkuYjlsLHnlKhrcmVmX2dldCgp 5Luj5pu/44CCDQo+ID4gKw0KPiA+ICtLcmVmc+WSjFJDVQ0KPiA+ICs9PT09PT09PT09DQo+ID4g Kw0KPiA+ICvlh73mlbBrcmVmX2dldF91bmxlc3NfemVyb+S5n+S9v+W+l+WcqOS4iui/sOS+i+Wt kOS4reS9v+eUqHJjdemUgei/m+ihjOafpeaJvuaIkOS4uuWPr+iDvTo6DQo+ID4gKw0KPiA+ICsg ICAgICAgc3RydWN0IG15X2RhdGENCj4gPiArICAgICAgIHsNCj4gPiArICAgICAgICAgICAgICAg c3RydWN0IHJjdV9oZWFkIHJoZWFkOw0KPiA+ICsgICAgICAgICAgICAgICAuDQo+ID4gKyAgICAg ICAgICAgICAgIHN0cnVjdCBrcmVmIHJlZmNvdW50Ow0KPiA+ICsgICAgICAgICAgICAgICAuDQo+ ID4gKyAgICAgICAgICAgICAgIC4NCj4gPiArICAgICAgIH07DQo+ID4gKw0KPiA+ICsgICAgICAg c3RhdGljIHN0cnVjdCBteV9kYXRhICpnZXRfZW50cnlfcmN1KCkNCj4gPiArICAgICAgIHsNCj4g PiArICAgICAgICAgICAgICAgc3RydWN0IG15X2RhdGEgKmVudHJ5ID0gTlVMTDsNCj4gPiArICAg ICAgICAgICAgICAgcmN1X3JlYWRfbG9jaygpOw0KPiA+ICsgICAgICAgICAgICAgICBpZiAoIWxp c3RfZW1wdHkoJnEpKSB7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgZW50cnkgPSBjb250 YWluZXJfb2YocS5uZXh0LCBzdHJ1Y3QgbXlfZGF0YSwgbGluayk7DQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgaWYgKCFrcmVmX2dldF91bmxlc3NfemVybygmZW50cnktPnJlZmNvdW50KSkN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5ID0gTlVMTDsNCj4gPiAr ICAgICAgICAgICAgICAgfQ0KPiA+ICsgICAgICAgICAgICAgICByY3VfcmVhZF91bmxvY2soKTsN Cj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5Ow0KPiA+ICsgICAgICAgfQ0KPiA+ICsN Cj4gPiArICAgICAgIHN0YXRpYyB2b2lkIHJlbGVhc2VfZW50cnlfcmN1KHN0cnVjdCBrcmVmICpy ZWYpDQo+ID4gKyAgICAgICB7DQo+ID4gKyAgICAgICAgICAgICAgIHN0cnVjdCBteV9kYXRhICpl bnRyeSA9IGNvbnRhaW5lcl9vZihyZWYsIHN0cnVjdCBteV9kYXRhLCByZWZjb3VudCk7DQo+ID4g Kw0KPiA+ICsgICAgICAgICAgICAgICBtdXRleF9sb2NrKCZtdXRleCk7DQo+ID4gKyAgICAgICAg ICAgICAgIGxpc3RfZGVsX3JjdSgmZW50cnktPmxpbmspOw0KPiA+ICsgICAgICAgICAgICAgICBt dXRleF91bmxvY2soJm11dGV4KTsNCj4gPiArICAgICAgICAgICAgICAga2ZyZWVfcmN1KGVudHJ5 LCByaGVhZCk7DQo+ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAgc3RhdGljIHZvaWQg cHV0X2VudHJ5KHN0cnVjdCBteV9kYXRhICplbnRyeSkNCj4gPiArICAgICAgIHsNCj4gPiArICAg ICAgICAgICAgICAga3JlZl9wdXQoJmVudHJ5LT5yZWZjb3VudCwgcmVsZWFzZV9lbnRyeV9yY3Up Ow0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiAr5L2G6KaB5rOo5oSP55qE5piv77yM5Zyo6LCD 55SocmVsZWFzZV9lbnRyeV9yY3XlkI7vvIznu5PmnoRrcmVm5oiQ5ZGY6ZyA6KaB5Zyo5pyJ5pWI 5YaF5a2Y5Lit5L+d55WZ5LiA5LiqcmN1DQo+ID4gK+WuvemZkOacn+OAgui/meWPr+S7pemAmui/ h+S9v+eUqOS4iumdoueahGtmcmVlX3JjdShlbnRyeSwgcmhlYWQp5p2l5a6e546w77yM5oiW6ICF 5Zyo5L2/55Soa2ZyZWXkuYvliY0NCj4gPiAr6LCD55Soc3luY2hyb25pemVfcmN1KCnvvIzkvYbm s6jmhI9zeW5jaHJvbml6ZV9yY3UoKeWPr+iDveS8muedoeecoOebuOW9k+mVv+eahOaXtumXtOOA gg0KPiA+IC0tDQo+ID4gMi4yNy4wDQo+ID4NCj4NCj4gQ0MgWWFuZw0KPg0KPiBIaSBZYW5nIGFu ZCBKdW5odWENCj4NCj4gQXMgYWxleCBzdWdnZXN0ZWQsIHdlIGNhbiByZXZpZXcgZWFjaCBvdGhl ci4gOikNCj4NCj4gVGhhbmtzLA0KPg0KPiBZYW50ZW5nDQo=