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=-7.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 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 C94D5C282DD for ; Fri, 10 Jan 2020 19:21:14 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 86C08206ED for ; Fri, 10 Jan 2020 19:21:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727954AbgAJTVN (ORCPT ); Fri, 10 Jan 2020 14:21:13 -0500 Received: from mga14.intel.com ([192.55.52.115]:10292 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727938AbgAJTVM (ORCPT ); Fri, 10 Jan 2020 14:21:12 -0500 X-Amp-Result: UNSCANNABLE X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Jan 2020 11:21:10 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,418,1571727600"; d="gz'50?scan'50,208,50";a="216769464" Received: from lkp-server01.sh.intel.com (HELO lkp-server01) ([10.239.97.150]) by orsmga008.jf.intel.com with ESMTP; 10 Jan 2020 11:21:08 -0800 Received: from kbuild by lkp-server01 with local (Exim 4.89) (envelope-from ) id 1ipzqF-000FyS-SY; Sat, 11 Jan 2020 03:21:07 +0800 Date: Sat, 11 Jan 2020 03:20:29 +0800 From: kbuild test robot To: Ard Biesheuvel Cc: kbuild-all@lists.01.org, linux-crypto@vger.kernel.org, herbert@gondor.apana.org.au, ebiggers@kernel.org, Ard Biesheuvel Subject: Re: [PATCH] crypto: cipher - move API definition to internal header file Message-ID: <202001110303.pwpWJjHH%lkp@intel.com> References: <20200109222108.15228-1-ardb@kernel.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="vogesyv3zxk5b3f2" Content-Disposition: inline In-Reply-To: <20200109222108.15228-1-ardb@kernel.org> User-Agent: NeoMutt/20170113 (1.7.2) Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org --vogesyv3zxk5b3f2 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Ard, I love your patch! Yet something to improve: [auto build test ERROR on cryptodev/master] [cannot apply to crypto/master v5.5-rc5 next-20200109] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Ard-Biesheuvel/crypto-cipher-move-API-definition-to-internal-header-file/20200110-193618 base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master config: powerpc-defconfig (attached as .config) compiler: powerpc64-linux-gcc (GCC) 7.5.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=7.5.0 make.cross ARCH=powerpc If you fix the issue, kindly add following tag Reported-by: kbuild test robot All error/warnings (new ones prefixed by >>): drivers/crypto/vmx/aes.c: In function 'p8_aes_init': >> drivers/crypto/vmx/aes.c:33:13: error: implicit declaration of function 'crypto_alloc_cipher'; did you mean 'crypto_alloc_comp'? [-Werror=implicit-function-declaration] fallback = crypto_alloc_cipher(alg, 0, CRYPTO_ALG_NEED_FALLBACK); ^~~~~~~~~~~~~~~~~~~ crypto_alloc_comp >> drivers/crypto/vmx/aes.c:33:11: warning: assignment makes pointer from integer without a cast [-Wint-conversion] fallback = crypto_alloc_cipher(alg, 0, CRYPTO_ALG_NEED_FALLBACK); ^ >> drivers/crypto/vmx/aes.c:41:2: error: implicit declaration of function 'crypto_cipher_set_flags'; did you mean 'crypto_tfm_set_flags'? [-Werror=implicit-function-declaration] crypto_cipher_set_flags(fallback, ^~~~~~~~~~~~~~~~~~~~~~~ crypto_tfm_set_flags >> drivers/crypto/vmx/aes.c:42:5: error: implicit declaration of function 'crypto_cipher_get_flags'; did you mean 'crypto_tfm_get_flags'? [-Werror=implicit-function-declaration] crypto_cipher_get_flags((struct ^~~~~~~~~~~~~~~~~~~~~~~ crypto_tfm_get_flags drivers/crypto/vmx/aes.c: In function 'p8_aes_exit': >> drivers/crypto/vmx/aes.c:55:3: error: implicit declaration of function 'crypto_free_cipher'; did you mean 'crypto_free_comp'? [-Werror=implicit-function-declaration] crypto_free_cipher(ctx->fallback); ^~~~~~~~~~~~~~~~~~ crypto_free_comp drivers/crypto/vmx/aes.c: In function 'p8_aes_setkey': >> drivers/crypto/vmx/aes.c:75:9: error: implicit declaration of function 'crypto_cipher_setkey'; did you mean 'crypto_aes_set_key'? [-Werror=implicit-function-declaration] ret |= crypto_cipher_setkey(ctx->fallback, key, keylen); ^~~~~~~~~~~~~~~~~~~~ crypto_aes_set_key drivers/crypto/vmx/aes.c: In function 'p8_aes_encrypt': >> drivers/crypto/vmx/aes.c:85:3: error: implicit declaration of function 'crypto_cipher_encrypt_one'; did you mean 'crypto_stats_skcipher_encrypt'? [-Werror=implicit-function-declaration] crypto_cipher_encrypt_one(ctx->fallback, dst, src); ^~~~~~~~~~~~~~~~~~~~~~~~~ crypto_stats_skcipher_encrypt drivers/crypto/vmx/aes.c: In function 'p8_aes_decrypt': >> drivers/crypto/vmx/aes.c:102:3: error: implicit declaration of function 'crypto_cipher_decrypt_one'; did you mean 'crypto_comp_decompress'? [-Werror=implicit-function-declaration] crypto_cipher_decrypt_one(ctx->fallback, dst, src); ^~~~~~~~~~~~~~~~~~~~~~~~~ crypto_comp_decompress cc1: some warnings being treated as errors vim +33 drivers/crypto/vmx/aes.c 8676590a159320 Marcelo H. Cerri 2015-02-06 26 8676590a159320 Marcelo H. Cerri 2015-02-06 27 static int p8_aes_init(struct crypto_tfm *tfm) 8676590a159320 Marcelo H. Cerri 2015-02-06 28 { 78557e77b25a98 Tudor-Dan Ambarus 2017-06-16 29 const char *alg = crypto_tfm_alg_name(tfm); 8676590a159320 Marcelo H. Cerri 2015-02-06 30 struct crypto_cipher *fallback; 8676590a159320 Marcelo H. Cerri 2015-02-06 31 struct p8_aes_ctx *ctx = crypto_tfm_ctx(tfm); 8676590a159320 Marcelo H. Cerri 2015-02-06 32 8676590a159320 Marcelo H. Cerri 2015-02-06 @33 fallback = crypto_alloc_cipher(alg, 0, CRYPTO_ALG_NEED_FALLBACK); 8676590a159320 Marcelo H. Cerri 2015-02-06 34 if (IS_ERR(fallback)) { 4beb106045976b Herbert Xu 2015-06-15 35 printk(KERN_ERR 4beb106045976b Herbert Xu 2015-06-15 36 "Failed to allocate transformation for '%s': %ld\n", 8676590a159320 Marcelo H. Cerri 2015-02-06 37 alg, PTR_ERR(fallback)); 8676590a159320 Marcelo H. Cerri 2015-02-06 38 return PTR_ERR(fallback); 8676590a159320 Marcelo H. Cerri 2015-02-06 39 } 8676590a159320 Marcelo H. Cerri 2015-02-06 40 8676590a159320 Marcelo H. Cerri 2015-02-06 @41 crypto_cipher_set_flags(fallback, 4beb106045976b Herbert Xu 2015-06-15 @42 crypto_cipher_get_flags((struct 4beb106045976b Herbert Xu 2015-06-15 43 crypto_cipher *) 4beb106045976b Herbert Xu 2015-06-15 44 tfm)); 8676590a159320 Marcelo H. Cerri 2015-02-06 45 ctx->fallback = fallback; 8676590a159320 Marcelo H. Cerri 2015-02-06 46 8676590a159320 Marcelo H. Cerri 2015-02-06 47 return 0; 8676590a159320 Marcelo H. Cerri 2015-02-06 48 } 8676590a159320 Marcelo H. Cerri 2015-02-06 49 8676590a159320 Marcelo H. Cerri 2015-02-06 50 static void p8_aes_exit(struct crypto_tfm *tfm) 8676590a159320 Marcelo H. Cerri 2015-02-06 51 { 8676590a159320 Marcelo H. Cerri 2015-02-06 52 struct p8_aes_ctx *ctx = crypto_tfm_ctx(tfm); 8676590a159320 Marcelo H. Cerri 2015-02-06 53 8676590a159320 Marcelo H. Cerri 2015-02-06 54 if (ctx->fallback) { 8676590a159320 Marcelo H. Cerri 2015-02-06 @55 crypto_free_cipher(ctx->fallback); 8676590a159320 Marcelo H. Cerri 2015-02-06 56 ctx->fallback = NULL; 8676590a159320 Marcelo H. Cerri 2015-02-06 57 } 8676590a159320 Marcelo H. Cerri 2015-02-06 58 } 8676590a159320 Marcelo H. Cerri 2015-02-06 59 8676590a159320 Marcelo H. Cerri 2015-02-06 60 static int p8_aes_setkey(struct crypto_tfm *tfm, const u8 *key, 8676590a159320 Marcelo H. Cerri 2015-02-06 61 unsigned int keylen) 8676590a159320 Marcelo H. Cerri 2015-02-06 62 { 8676590a159320 Marcelo H. Cerri 2015-02-06 63 int ret; 8676590a159320 Marcelo H. Cerri 2015-02-06 64 struct p8_aes_ctx *ctx = crypto_tfm_ctx(tfm); 8676590a159320 Marcelo H. Cerri 2015-02-06 65 5f76eea88dcbe7 David Hildenbrand 2015-05-11 66 preempt_disable(); 8676590a159320 Marcelo H. Cerri 2015-02-06 67 pagefault_disable(); 2d6f0600b2cd75 Leonidas Da Silva Barbosa 2015-07-13 68 enable_kernel_vsx(); 8676590a159320 Marcelo H. Cerri 2015-02-06 69 ret = aes_p8_set_encrypt_key(key, keylen * 8, &ctx->enc_key); 694e0db6600c12 Eric Biggers 2019-04-09 70 ret |= aes_p8_set_decrypt_key(key, keylen * 8, &ctx->dec_key); dc4fbba11e4661 Anton Blanchard 2015-10-29 71 disable_kernel_vsx(); 8676590a159320 Marcelo H. Cerri 2015-02-06 72 pagefault_enable(); 5f76eea88dcbe7 David Hildenbrand 2015-05-11 73 preempt_enable(); 8676590a159320 Marcelo H. Cerri 2015-02-06 74 694e0db6600c12 Eric Biggers 2019-04-09 @75 ret |= crypto_cipher_setkey(ctx->fallback, key, keylen); 694e0db6600c12 Eric Biggers 2019-04-09 76 694e0db6600c12 Eric Biggers 2019-04-09 77 return ret ? -EINVAL : 0; 8676590a159320 Marcelo H. Cerri 2015-02-06 78 } 8676590a159320 Marcelo H. Cerri 2015-02-06 79 8676590a159320 Marcelo H. Cerri 2015-02-06 80 static void p8_aes_encrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src) 8676590a159320 Marcelo H. Cerri 2015-02-06 81 { 8676590a159320 Marcelo H. Cerri 2015-02-06 82 struct p8_aes_ctx *ctx = crypto_tfm_ctx(tfm); 8676590a159320 Marcelo H. Cerri 2015-02-06 83 626ddb2fbe7931 Eric Biggers 2019-04-12 84 if (!crypto_simd_usable()) { 8676590a159320 Marcelo H. Cerri 2015-02-06 @85 crypto_cipher_encrypt_one(ctx->fallback, dst, src); 8676590a159320 Marcelo H. Cerri 2015-02-06 86 } else { 5f76eea88dcbe7 David Hildenbrand 2015-05-11 87 preempt_disable(); 8676590a159320 Marcelo H. Cerri 2015-02-06 88 pagefault_disable(); 2d6f0600b2cd75 Leonidas Da Silva Barbosa 2015-07-13 89 enable_kernel_vsx(); 8676590a159320 Marcelo H. Cerri 2015-02-06 90 aes_p8_encrypt(src, dst, &ctx->enc_key); dc4fbba11e4661 Anton Blanchard 2015-10-29 91 disable_kernel_vsx(); 8676590a159320 Marcelo H. Cerri 2015-02-06 92 pagefault_enable(); 5f76eea88dcbe7 David Hildenbrand 2015-05-11 93 preempt_enable(); 8676590a159320 Marcelo H. Cerri 2015-02-06 94 } 8676590a159320 Marcelo H. Cerri 2015-02-06 95 } 8676590a159320 Marcelo H. Cerri 2015-02-06 96 8676590a159320 Marcelo H. Cerri 2015-02-06 97 static void p8_aes_decrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src) 8676590a159320 Marcelo H. Cerri 2015-02-06 98 { 8676590a159320 Marcelo H. Cerri 2015-02-06 99 struct p8_aes_ctx *ctx = crypto_tfm_ctx(tfm); 8676590a159320 Marcelo H. Cerri 2015-02-06 100 626ddb2fbe7931 Eric Biggers 2019-04-12 101 if (!crypto_simd_usable()) { 8676590a159320 Marcelo H. Cerri 2015-02-06 @102 crypto_cipher_decrypt_one(ctx->fallback, dst, src); 8676590a159320 Marcelo H. Cerri 2015-02-06 103 } else { 5f76eea88dcbe7 David Hildenbrand 2015-05-11 104 preempt_disable(); 8676590a159320 Marcelo H. Cerri 2015-02-06 105 pagefault_disable(); 2d6f0600b2cd75 Leonidas Da Silva Barbosa 2015-07-13 106 enable_kernel_vsx(); 8676590a159320 Marcelo H. Cerri 2015-02-06 107 aes_p8_decrypt(src, dst, &ctx->dec_key); dc4fbba11e4661 Anton Blanchard 2015-10-29 108 disable_kernel_vsx(); 8676590a159320 Marcelo H. Cerri 2015-02-06 109 pagefault_enable(); 5f76eea88dcbe7 David Hildenbrand 2015-05-11 110 preempt_enable(); 8676590a159320 Marcelo H. Cerri 2015-02-06 111 } 8676590a159320 Marcelo H. Cerri 2015-02-06 112 } 8676590a159320 Marcelo H. Cerri 2015-02-06 113 :::::: The code at line 33 was first introduced by commit :::::: 8676590a159320a9de2a1818df14a3bac3f065a1 crypto: vmx - Adding AES routines for VMX module :::::: TO: Marcelo H. Cerri :::::: CC: Herbert Xu --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation --vogesyv3zxk5b3f2 Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 H4sICAzMGF4AAy5jb25maWcAlFxbc9y4sX7fXzHlfUkq5Y1sy7J9TukBBEEOdkiCBsgZjV9Y WnnsqFaWHF2S9b8/3QAvDRAc+aSSzU53E9dG99eNhn795dcVe3q8+3b5eH11eXPzY/X1cHu4 v3w8fF59ub45/O8qVatKNSuRyuY3EC6ub5/++uf3u/8e7r9frd7+9va3k5f3V69Wm8P97eFm xe9uv1x/fYIGru9uf/n1F/jvr0D89h3auv+fVf/d2enLG2zn5derq9Xfcs7/vnqHLYE0V1Um 847zTpoOOOc/BhL86LZCG6mq83cnb09ORtmCVfnIOiFNrJnpmCm7XDVqaogwZFXISsxYO6ar rmT7RHRtJSvZSFbITyKdBKX+2O2U3kyUpJVF2shSdOKiYUkhOqN0M/GbtRYshR4zBf/oGmbw Y7s+uV3ym9XD4fHp+7QG2HEnqm3HdN4VspTN+ZvXuJz9WFVZS+imEaZZXT+sbu8esYXh60Jx VgyL8uJFjNyxlq6LnUFnWNEQ+TXbim4jdCWKLv8k60mcci4+TXRfeBzuKBkZayoy1hZNt1am qVgpzl/87fbu9vD3cRRmx0jPZm+2suYzAv4/b4qJXisjL7ryYytaEafOPuFaGdOVolR637Gm YXxNZ9EaUciETmFksRaOSGRydp2Y5msngR2yohj2HhRp9fD0x8OPh8fDt2nvc1EJLbnVM7NW O3IMAk5XiK0o4vxS5po1qABk13QKLANL2mlhRBUotUhz0GAlQbBKC6F9bqpKJqsYrVtLoXGW +/lQSiNRcpERbTZTmou0Pzayyslu10wb0bc4Lj+ddyqSNs+Mv02H28+ruy/Bgocjsgd4O+1R wOZwfDaw3lVjJqbdWzQbjeSbLtGKpZyZ5ujXR8VKZbq2TlkjBi1prr8d7h9iimL7VJUAVSBN Vapbf0ILUdq9HxcJiDX0oVLJI5rqvpKw7fQbR83aolj6hGiXzNeoVnYdtbHN9Os+m8J4HLUQ Zd1AU5XX70DfqqKtGqb30VPXS1Ge8zl1+8/m8uHP1SP0u7qEMTw8Xj4+rC6vru6ebh+vb79O a7iVuungg45xrqAvp21jF3aJfXZkJSKNdBUcvq03qZgU7Ht0aolJYXqKCzBIIB6zLehFTMOo NiIJDkDB9vYjbyLIugibmpbSyOiJ+YmlHK0nzEwaVQxGx26F5u3KRDQXdq4DHh0h/AT3CSoa m6xxwvRzn4Rfw2oUxaT5hFMJMCdG5DwppGmoavoD9N1hIqvXxNPIjfuXOcVuFZ2L3KzBcsEp iDpnbD8DAy6z5vzVe0rHNSzZBeW/mc6KrJoN+OhMhG28cYttrv51+PwEYGv15XD5+HR/eLDk fqYRrmfFTFvXgFpMV7Ul6xIGyIp7trcHSDCKV6/fE3uzIO7TRz8vKgRIxPPwXKu2JlpcM3BD 9oRQFwRumXtH0xIsOogssmNu4P/oJ0mx6buLfOIYneFrOrqMSd35nAmFZWDLwVXuZNqso8cK Djz5NirSd1vL1Bzj67Rky4PO4EB8sqsVfrduc9EUSezTGgANtR6oxDiOnhPuEOzgVnIxI4N0 b2yCGQmdzYhJnUUGaX127NQrvhllWMOIcgFSBCwA9nGitai75DeiwsoECE4DKdITTpt+W4km +BY2kG9qBdqPTq5RWkS3y260BdczPZtk9gY0JxXgvzg4+jQyHo1GnMDzAu361oYFmqI2/M1K aM2oFjATAe86DTA7EBIgvPYoxaeSeQSK5i1fBb9PPYOgavD2EB4hZLM7rnQJB97ze6GYgX9Z wspgdVMMlbhKhd3yTmD0UwVINkTu7je4Dy5qlAQPwaiq2rZrbuoNjBI8FA6TrK6vlItOqAT7 JVGHSMdwukp0rTPY6DZ5Rs4ctg4jkhEzecY+/N1VpaQxG7G2oshg0TRteHG6DBA0YjoyqrYR F8FPOBOk+Vp5k5N5xYqMaKKdACVYrEsJZu2s8eBzJNEsqbpWe96DpVtpxLB+ZGWgkYRpLeku bFBkX3rndaB1LApeR7ZdDTxuPVybdIJs3uRBgPw7hOas2LG9AfAdPeCoI9bbZbGzPcYM01Q6 7CdhfEMmCnGOF+SAsEjTqLVw6g19dmN8Yj1/n5ipD/df7u6/Xd5eHVbiP4dbwG8MMAFHBAe4 fIJlfhMjcvjJZkY0XLo2Bh9O5mSKNnHW3jMQqqxZA2HRJm4uCxbzX9gWbZklsKAaoEOPNGgP lotOEuFfp+EIqnKxr0kQA2YIzOKO26zbLCuEgyuwfQpsudILA7XIDmJXzCZ5HjeThaf31nBZ N+NtgZ8mGr+v+dnpsNn1/d3V4eHh7h7irO/f7+4fyb6CJ0yU2rwxnZWfYP/AEMCIDH0MS2sP qnOBOLtu46GE2gn99jj77Dj73XH2++PsDyF7tgpkB4CW1SSOYAXaAYL6t4YYRnt0HYLtTF2A IahLCNQaDO79RjVLMdFUtgtkoqWE7fJqrah98pzSC7KZIKvD/UXaIsKiE0KoaJU5kjrChsoS VFl6kGscSg0z6gMIn2tNCm+oEbDZnc6UNKtHf1TaItDz1yen72lTqVI6Eb097s/FXOnHfUuN ekPADh7ABM1olUrmJUaQA1vZwBI4ZmSdzk4TSWbm7atdw7KEVdYVBo0AQyGGO3/94ZiArM5f ncYFBnM4NDSFgEfkoL13njsABO9AuEs5aEHRM4bDA8v6lS6TGgweX7fVxtsJzBeev331eiSV EoC19Dd5xxq+ThXN0zXgzKwtm6uFI0PDWcFyM+fjYQJwPGcM1mi9EzJf+4rmD2hwq5UyNT3M guliPwdXrOrTf6rFiHy6RrAr7GE6m2ue0S3oVyXYgwzgOBwHNOAUobidY/sBiXZZGgy5TZO8 e3X29u3JfMJNYvYVkbfJZNvmXNZHhTWrNRq9JhjKWiZCO1SNCNTIhGLSPh8Aawdq9gy7UhVE nqp3EfS4cg26SlFeT/UJKhshKqyLnPXSJyWsAbO+1rraJbEWXGoSWqiU7Winubuisblzc35K JTEpDeepDO3qheRBm5LXU4ovoK+3Ic10umEmbDP8FinRRi3D4F6Ozv7m8hHBWNzXWzdYbamR UzUrQPHjUMZOXZT2YC44zi3z0LWBIxBLtdNBAAiW4VaA0wQUNNFS78rGfdGhJud7erxYVYB1 +UbCBYcwvZsFbJlnedBh6XfISxKDrLcx/ySTcusFJ0kJEw0nsi19Ql0yPqecnfo00Kwi2Nwa AhAb1rmNZStz+Ha9qnf6y/XVNaDs1d13vFB1ubzZd2DLS7W0A05CKueuYl9bXpeWzHnl4w2V qV2Wyfkuj9VXhDfj7MybSXVVZF7mDUZ+mEGIxTnIXsPptSkEwAf+h+m+YiVYwHimDCW2LfPw CZDgf2zrk8DKwz5VYGp0wAB8D9RJD22v0mx8ilalTwA/Z9Y+qahRhg4/h5DDeYFoIj66cnSV uaAB+kCZZcNHRtR4JaVjJgVLqcG/ADcBtnHYRn64uVkl93eXn//AKwFx+/X69kD0dDi3gC4y M00cf2O4TU5jArF3aBjHUeAdZZO0TRNOYJSwhq6X+EYbbdZC012wx1H6MuCxINL7aIeVqy1Y TKXtpgx3H0dnObSkXBAnhg2YEhAQB+dtcEE/RfPWM4NpYngttHDuYnsE/hL9OaKoslZ+CYN1 du6OKfNMmgUX6IJAHyqjQhME8Lsr2wvAMB60K2vp3Wrgb1CDPBbk2m15//rtB9IpHA4WxgO+ H7RDElorjVcauRcJD9LQiPAvdJDY37hQUnDMEHt01RaWyZ8RjmvdOGDrMxKtNqICtcvx3pmg KLH2h/Xh3QnsTYAR6ndzmoR4QgsOYWKIg0bOHCLBsLG8hGnVVumYy8GYNrs//PvpcHv1Y/Vw dXnj3WPaPdeCuMOBgrqN1Qy685P6lD2/LR7ZeMUYv5gYJIabHWyIpID/Hx/hKTYAjH/+E8yw 2fx//GJj/oGqUgHDSqNzpIJ4QITe2pP38+OxEUDbyFiq0VtpP0celRhWY4E/Tn2BT2Ya3+pp ftHFWJzOqIZfQjVcfb6//o+XSRxbA0NLHR2lo0U+vsIWLR1b0RjE6sFKb90Jz4FiwqC33JGz NcxXfr459DMcq9rgAyT7Ew6rJwaaXVLwqKmIWU5PqhRVu9hEI9RsP+ysaj6OaJWGWzGgapxJ cPMwLsg48gFtLLZKl8ytAKHQlfKqc8BA8zisCeMYmreeAYr1p+7VyQldH6C8fnsS1SJgvTlZ ZEE7J5HNWH86fzVVF7q4fq2xCoREDe5K1SV+EYlCcKQlS0KvCh66MoxjjA2xV3AVbUP+bWwE qqmLNvfjaRvk2hQyhrd4XSE8HEXTeH39Wt/OczIa/i2AGGenUzzdC2ZMFi29XNqIC5pXsT87 hEFhngH8smPWrc4xQU7iOpgGJs37lZsuzSfyUoEjB9C47tK29LKdGbOkpVohNHviqJANknlw tTtEgfpjx1zam94Tt/T+tFIpHDRXlDGmLsFeo9XH3bMlESgEZ5roE6aE3EIXWO9jWwkTHLDj CBbcdpQgUYQStjIOBPo9XmTPEs8Y74wb3it3RuPhohA5Zg9cUgu0vWjF+clfbz8fABofDl9O 3H+8/vqRWn2dLVDNqk4hRB/n6p2L0409W0uJhbOBH9p9PI6uIOZsYPSVtz15zPWIRlw0M2F7 3xwSXbYai3I+qUooDUb8/IM/XtMmtnOY7BKS5xgmBMGPsy6mDBByKioECIU0Qw5+8gZlioAf A4Ao0HBsUgQAs9Ssa5jOsdJjotst2jEsRuxLRxAXNFrRO16X4JsRYsUmJJ0YWwC8OBDeFUZP 8RP/lBrkFaf1Lm1xhZWLH/QSJrZBE7KJKlAZtDa7GRmZu4/ORXYiyySXmG/qz048orNZK3c2 Y7eAgmPaOEgHwXnciH3stjWMM0EdbJ6G1WMYnjw9zH3kWAvr5D37aIquSOKOmLY1ndYK0T80 5gq4ydhR3VWWYURx8tfVif+fySvYsm9oQx8Tq9d7IzmbBEMBq63u0jawmhhjg2Hm63lxuuNk oZ3dDLfTlIPEbUbjMKSEWX7abpfsAWeaCHNrr1swXw+BnFekgoF+i48Jgru1DU0lYhP9Ve2s CpvwwEcfY2Nic5a29z6f4uSg1S2F6z6v1lHF9/sVF7LBu5R4pSzK+sl0R6EQZItPAbACaxqj JdGBORlXsO8u7Tp0Unw/A8jDzfnl/dW/rh8PV1j5+PLz4TvovZ9c9aCFX0rjEEyMJoos0AEJ ZzRAR0OKaJqPlRzJU5vh7cXvgFQgckiEl1kaDyU6bhjBAkhSdRO2N7sesQOZ7FsLSFXmFVaw caw9DkAEQhksjW1k1SX+u4yNFrPe3HrAquGNJTrH8LhEP1hsKTIf2gwEvpj1mtd9ZW1lQXif aJLV74KHDyPw4oXWVk0PN2yLa1DviTmYWHRTNjhzKCMCfQE8NDLbD9V5QfOmRG/RP8gJZ6VF bjo44u4qtd+P3vp7coYGuZa03nUJDMhVKwY8UuITmTHe7s4vc12jTKfoVG25ZgMrCEvp30BO 7ePYY3Rbf+nm02P32XJ7Gu/Nk7ediwkQfywyK3xhBQhV9k8oPIxdth3EIIg7x9httmn9Ktgy a17WF3wdxlA7WNohBIN9+dhKHTaD0MrWn7rnKsNTrIhQf4n/U7KqSIl8bPV6kIGRmHf9vER3 lQK4IXg87aaStJGr9/bZw1ONyRRFvw0+MgAtq1CjEHEiDMcTtpEzdvxlRnjCsEJP2JJlvL9/ vgk8vKGFAndu3/7EOvIMQYVRFNrJoVQmJoe8butdIZMNUhmgSBjWPtRNlQ6BmuAyk2R7gdVC YGitL5Z5YrFiZArW8YKVs4/DcPkjq2U/t0DKU/1pfF6VStCAz5uCqcjXpDRlqREq8i7Qi3o/ BG5NERoS24pN64NDIExeKIyMYN47sFSEgafGyHwWzvQD6NkscAk9983rxMGZWGIDgWvXqBBm o5WkFZCxMITWgAKA4XpfNwOsz7navvzj8uHwefWniwW+3999ue7z/VNaDcR6iH2sAys23FEx v3rqWE8jOi/aHJ/4Ad7i/PzF13/8w38fik9znQxZc5/Yz4qvvt88fb32b3wnSbD6Da6ZwDi0 jr/4ItKoxmBW2vBB0zg10l1YRfkMFhxmAcajxEpoijhsubApcSFPggNKdcCR+uRBoVjsNruX aSvkL37s2NHVIOBhiY/tGM3HR79+LfRMUsYj4Z6NZ0IDCjkmg9U5u66UEHxU5JkGwGKbX4qX S1dg2uAU7stEFXGRRstykNtg3fbiehr3OqwAxNYSE5z4JZr4oMJwI8GYfsQ7Wp+DTy0Sk0eJ hUzoXk0vMxqRa9nE9XaQwhRSfC/t06Q+vWOBQDzWQrFdEkP7rgsskspMOEBcNcxtzm8PLu8f r1HpV82P7wd6aYClyhY0D+UYtE0GoVA1ycSfRMuLZySUyZ5rowTD/JxMw7SMywx6wfjEJ27V pMp4DO/1JdZ1WBwa13ZZwfxs4u/Y4PA5pJamu3h/9sw0WmgPHJd4pt8iLZ9pyOQLqzF1VcBp em5zTPvcBm+YLhc2p5cQmYyvL9ZRnr1/pn1yGmJSwwVSoMHeeZ+lcPAwlB/9OsOehliRZoCQ bJOF7qm+mt5PkmMC30nl8rj4bMmvxiDMzT7xE6YDI8k+xl+qe/2Np3J8Lg1RpfReVri/ZgHo EVwjugyYvFcc1/MtqHL8Y7zotzswb2LpY8r0v/YLNFmjsEZLl+TPGlgn64YOBkftKhqi6J0B iLTAtL0t8CaIVUq1I09Fwt9TPttutfjrcPX0ePnHzcH+FZSVffPySDY9kVVWNn7qZ0Szcxb8 8DNH+MvGv9ObWIDl/YNhooCuLcO1rJsZGTwsJ+VM0OR4G9ar0NI87CTLw7e7+x+r8vL28uvh WzQRdvTKabpOKlnVshhnItlyc/t4rrYRejpL4Yy3RfhXKZpYN3iTISgKn1hb+AdGFeG910xi 3qmzEvZGbs7PmGm6nIIIq1IbvKEYviVa5aZAX8DTxrBmC4di/wYMdjj7cnZh69P76Xg40RcY tEnZExl/FL1w69u/ZWmc0cQbztPgowSBHZ1VT3CaHwueAlrkUQm9kW7WdUwEcwQo6dd828CL panumsjLjNE8kuykIeo4rJNVGnDktqXz05MPZ97Alu/Aww3oObG/0XA0ZxDj9i8LaS9RsdI9 kPyJPm2uizNwN7RRXgiAdUiNOt9Mw8IvvK3nfrgLP49coo3caJ04cvFpCqYAxk8+1cH15sRJ 2jh6/mQjMhX7wyZDstY9/eiz0XT8oA5Ca4w/bDTpUoP4sDrak833WpEhbXUs+K4bfI64DXrE KKB/Tb/0MQQ6xv1FlS3WZuNDmVgCYrw7HA6GqzOwfxYkHkDjG3xR8XXJFl5bWhQAJmRvjyS+ 147unDdFm7NiYUUCcq2+ptQtLXueyV0056FjBRoYNQBqEH76V//4Uh92QXu3FWaToMcQ1ZBZ t06vOjz+9+7+TyxYm3k7sFcb4b0ZdRTA4yy2xYjXp/5aGw1w727Z0sKvp0NdxFb1IqMPtfEX 2INcTY7ekuwTdHIZZom2NiNjC3WXVgTClQ5Lhnk8SLUyzgYfawQvn0wj+dL4MTeNF93f6A6B otIR96TjvaW1/QMQIppAk56WyNrhi/6PKk2ntR7j104rgJmxAjwQqqvaawx+d+maz4noxuug B6RrpmOm0ipn7f8xNEfLEQOKsr1Y/Kpr2qryL/5wmnYasfqCPfpitZF+Isq1tW3ilZbIzVT8 LW3Pm0aytA0dI1XXliBMTXd7oGHFwEIuTLpx+opjiVal+qXwOeP6UCIeuIDU8Hog+0Nq03r5 gFoJzXbPSCAXNhIvOOKnCnuHf82PvWsZZXib0Mz/gFQG/vmLq6c/rq9e+K2X6dsgcTeqy/bM V5/tWX8MEGpn8VmhkPt7HXjKu3Qh+YizP4OtP8KELT/Cdbu9PIZS1mfLXFmwZWag7pRl5P9x 9mzLjdvIvp+v0NOppGpTa0m2LJ2qPEAkKGHMmwlKoueF5XiUxLUznpTtSTZ/f7oBXgCwAc1u qmYm6m7ifulu9KWeDAnA2lVFLktE5zHIWopnrx9KPvlaL8NAP3rBRz1Q0teyJpxsbaeZfLdq 09Ol+hQZ3O+Rb1ejcwG+CLosgLHvy7rE0JpSiuTBOU3U18CAq0cRuAyykuaBgHR4bTS/10By N3QBQ1/PeFODzPp+fp0EFZ0UNLn7R1THNFg3kY1qLbfCHEOo5Lli7CyoCs2lXSTMS0wjoCjg 5agRMIpT/iq2YtZCK40fdcBaVEld0q1tRRU5TRtx0MCtKCQd+MiilMIpvzbGkJjEfhR36YG3 ZJA6KCRntVUo/J50BGG6CzbMbRDCMibvD7zSDmpmj6f7a9JgHZ0VXdLUWmuUeuRt9vT1yy/P L+dPsy9fUeP2Rq2zBmuu7txP3x9ffzu/+77QlpfOKjMJ9OAQQzt+nGOEIQ9zMSVOdF3BEkHY Ub5H31mmMeB0Jzo6uIsyORnbL4/vT78HhrTG4KgggKuzlS5fE1Fbc0ql+dsgCXKw3HL0Cx05 FvcluUcqLNujnBxlovy/7zjJErzmK6ZO72tnE2v+V2Ho0xxWPZwszUOQJAahz8XbZxhwr5MD r2vOCKw4Gk45cOg5oEQ5bCwL3t0ADnRYhliei3R2hPXFuBJpNh4oM5bvUj4tATg5WtEemKNu Ev9chaaRni6ac7Gmy0vSTdeKnq5xFlbUlK3M8Vz55malhwp3A36jdc8TgunsrYLTt/JNwCo8 A6EBJrfJynvXbSsR72geSqOQnG8DrNi21N327fM4inxMayujmsZVnuCOwBjSbBqr6fhU6aKm rgJp3qe6o+7vVuwyaGFeFOXUwElJMpK5giOAyFYcU5a366vF/J5ExzzKORmXPLW4FPi58L3p prR2qlnc0OPCSjoyd7kvcs+hvUqLU8nox0fBOccO3pCHJq+HYKDqBLj/dv52fn757Z/dm51j qdPRt9GWHq8ev6/pPgz4RHqZekVQVqIIEihZJNyIymOg0ONlEm6kdF80HXzN72nhZSDY0oLp OIr0XurxcOGHy2cXh2l3aRBi6dWf9iTwL6f38FBIRR8yw2TdX2yovNtepIn2xR19IvYU9xem LHJdWiYUyf13EEXsQjsuNGO/D09sKcLFd5JiuIzU844xTNrUA0hv9c+Pb2/Pvz4/TQVVkKQn KjkAoSmZ8O9npKgjkce8CdIopYGH9etIklMQfVjSp/BQgzzSt5pJ4OFm+hbAURsk8EZlHgar TFwFcl+w567uSRSb4zN8U5pJRRGom9mh1JXKEx+KUNTwLzkkQbPSIEEmqtBZgySSZY4X/IRE lOFack8Ih6EnPPY8dw2NEB5V3UBwt71YSCQP/hNRjUbpMf/rCZDx8EwUoolF0rUtK8KDLJLw CGulG75ZhHvoH4A66l+l/BwFcNxJYb1NRlTk0ziXGBunwFwultkacI1MWeyRrShKnh/lSTiL feTqiNcWswtK1ePVhgfnLpd0lXsZuAJVSx3VmkWRLlEiRNk+RJVHktIGV6bxeJWoNAvma0JT 2uG/dRRypRz13bgGjVaeUipl9ayAEf7lQ2sHVd7emz90oGFrejEkcV1xlhEWokbpeCZ2OYPs h8/Z+/ntneBNy7vayUNhygBVUbZZkQvt3zGIbZMyHYT5ympMOMswBKpn/DzM+JbeVQxkyqby CVBJexdlRJ9OAl13TIVxD8G9aUDRNcU23FIgN9VDlOxQUJhPOYIe8XI+f3qbvX+d/XKGMUKt 2Cc0xpplLFIEhjlhB0EVFT6f75XfuXJTMmKdnQRAaTEzuROBi25DH+EREzRjFfFy3/pSHuUJ PfDlhfvKd9JSDxv9eYeunp0BSwfaoWc4twKDq8XKj0pbPdr2MZFiaC/H9ZKP20vNVXz+8/mJ iJ3SRes0rEW1Ub4Fcn90KY2kDSSCiQOYo4kRnAVErxHLZJlZxSgIFeF6wIWDKdlkaOP0XcQX ojohYVvW1HbDruvIcTaAzP2EOHSnu5NO1wIGRmps64NH+o8wxCF9NyAOjnI/jtEHeG9up6d9 PNlGcBvBX/R9ZxDJvefoMom6GD3hZsBdxowFbiPaWAXA7LTy2LCnry/vr18/YyaYMW6T1fWk hr/nnuA5SKC8rzvLKv+KaDC2eTM5GOPz2/NvL6fH17NqjtK+yyGMqV1EfFLRYVWF3tZkwAvR 1uGhqnRdj5/OGM8esGdjYN6MuKp2gyIW8xxPALpV/YvCxWIH+3V6QobJ4i+f/vj6/OI2BJ3e lXsvWb314VDU21/P70+/f8f0y1PHfNXcE7UpWNq4myNmJispoywSzP2tvKPaSJiufPCZDrja tf2np8fXT7NfXp8//Xa2WvvA85pWUZbx6naxoXV768XVZkFsKWXwXDG40s2NXbFSOBzLGFjg +am7NKhopgftBLjnaUkya3Bb1VlphtrpIcBwHSw76JrlMUst19uy0sUnosqU54hKWtUPWvL8 +uUvXPefv8JafB2vtOSkRty0jtVRYvpyMEzM0IWBWvtuT7tCUFJuYiPRaInaLSa3pT2t9iRD rynLun0YKXR1iitx9LSnI+DHyqPo1wQYO6ErptVW0SSxItNRPTpiFXSA6KKRMkFFqnEiIJno 4yGFH2wLx2RtRUqu+M4yR9e/W7GIzIHzLMAhNMwnxdRYKxLFeLRfzVqH57DiwPQfGpxgAaxZ 5KS3GLC73OcTWFMXaFybsTGsvVYkaDZZ+wJaJGgJW9eW/z8AtWkviborth8sQBck2ILh87Ml EQDMcmGB37lpbgi/u1jII6CLLxa7gd4AhQxoyh6IHmmXaAxmPwSGh8u6i3o/nmUaRHzf+RVa UmLnapgfVBxfysKnJzFD4ERxVUxypSER3npSQrdqUS4XDS149MSHjFNMYI9Oi8JyyRyhyg5f eUv/vJ4Wq9yjC6QL1h5XW2q9DSOyjU3tUA+Wd36PTIVv1oFCrfCyBrDrzBhHzMQpiW51c7Nc GVsMJwBF8Sg+0g3C6GS4lFpeU9pK7cCG9ViBcgao8ncN9tQZvileNlNuLj9mnGLfhlFHPCkM AqJ1hcheh2AWqh2Wnt+eqBONxTeLm6YFZojmD+HeyB5wN9OswDY7Zh4Ods/y2pMlqBZJNokT OBYayc1yIa+v5iQa2Me0kIcKU3RUR8ynQksBcN6ntJ6ElbHcrK8WzKNxEzJdbK6ulgHkgubt Jc9lUcm2BqIbT1zNnma7n9/ehklUQzdX9Jmxz6LV8oZ+eojlfLWmURI2kFcS6LniSdzIgUrL JK2ME5e37Ys5lpgOhFaILNxzWHsMcrjkM0pk0BjYuQv6habDT0NXuRQZa1brW/rtuyPZLKOG foXpCERct+vNvuSSnpCOjHOQ/K7Jbel01BiY7e38arIjdPri878f32bi5e399dsXlTTs7Xfg 9j7N3l8fX96wnNlnjKv+CTb48x/4v2bS0v/i6+kyTIVcIvNEbyY09mDIYZdT/3jx8n7+PAN+ Yfa/s9fz58d3qJmY5iNcYD6GKlSEwULx/HRPHyc82lMJHqImdYPpA4Qlh55BtaOjAE5HLhgB o8qgmBZWaIKRlUMbaJZGmObRo9xQJFUtm++gOEhaYbNnW5azltHZiK1LwNLRCdsaVMTThaiu P/3xNGuKigWRFQZDVDERq7DpZgKDyNRkqW9iM/6rgvQWszZUJVdNBplWNaZrxez97z/Osx9g Cf/rH7P3xz/O/5hF8U+w0X40fI57ZsRk2faVhhlGWANdNeVKZNWCwBhbIZ76Iux8fD2UfBVV 3YlUaMg+SZ2J6eL402c3EmA2Fy1K0VNU9zv7zZkeWQpqQoCH6MD2iAv1N/WBZHKAO21jeFps 4R9fx2VVDrWNqZWddv+PPSAnlWrIWp8KU0fUi7fGqRwPKoeo0/io2W2XmojAXJOYbd4sXMSW LxwI7Pg+hcKEi1ue2gb+U7vCP7X70mMwprBQxqbxCBA9gTPyNp6hYiiAZlG4eUxEt8EGIMHm AsHmOkSQHYM9yI4HT8x7XTw6RcCkByiqKPO8mSo8h+oXND4DJkMdajk/+dLODzQBjmSgCeyS rKyXgHaWIUAXuMPUo9aO/zxfrKmvQviFLtXZtRmr6vI+MLCHRO6j4MIFIcmTrFnV/FDR9xUc Fp53MN0yHyfZ3R3Ncr6ZB9qV6BcS74WqiHa+7OP6GCy9s4TSD3GlITiJnLnTwCGvslNHjgFa Am3IBfM9J+hxqjnlCKlxD9nNMlrD4bNwz/EBowIjay0Ohp3CYBU/X/loe6c69Kke5XOHCteg olhd+yisxC3dWFdTiJuLeoC7Kk2FuIf7U0QtLH0qPUFHwtrJ/CCwP8+dC7kMrdA4Wm5u/h04 cLC7m1tafFEUp/h2vgkcif6nO80YZRdO7TJbX3lEaX25JcxRI5jYLqyPOyjRnqdSFPBh4cvj blzd3VOFr4547zKF+7aKWTSpFeAg1kvaFK6n4Jm3M4Bl6YGZvisUVztoF2uDN0XtkQ7oncfW swwiQF7YFhheEiPkGp1BXKlWaeebN75k/fX8/js08uUnmSSzl8f35z/Ps2dMBP3r45ORF0UV wfbmE7kCZcUWAxKm6ilauewYFg7DR0NqSFp0Q4qIH2meQ2Hvi8pj76zqgIMpmq8WntWrWoE8 hyqLmhSVMECki2t7OGFIBkYfRufJHbanb2/vX7/MVKI6Y8iMxytgaZ00dnaz7qVPGa/b1FB2 64jZZlpi0Y0DCN1CRWbp2XAlCEGe0mo+LSW0AuX0u7teVCDeOOFLnB4I2o6lQ5J3mkIdT5OG HFLP7amWvggM81HUcKVMZcny+weuVKsopZaPRmVWaD0Nq2oPN6LRNUxEEF+uV7f0olYEURav rkP4B3+cR0UAVyi9+hQWuKnlilZFDfhQ8xDfLGgOdSSg1ZsKL+r1Yn4JH2jAh0xEFZ3KQq11 FoliMmnAhMJVQa9aRZDzOgoTiPwD8xhjawK5vr2e01pARVCksbtJHQJgdH0HiyKAo2dxtQjN Dh5OUI+fAA38fEKMJog9qle1gT3WqRqJT2wVuqAHioejY7X22K4Qp4eNrAu5F9vAANWVSFKP TX4ZOlAU8iTybZFPvd5LUfz09eXz3+6hMjlJ1Na98goEeiWG14BeRYEBwkUSmP8JL+TgQ1e2 nv+PbvYty6Di18fPn395fPrX7J+zz+ffHp/+nqaXw1K6l/TJPpyKrr3gGk91YiYsi9WDvY5u b4ExnpqZRBhAyLNeTSDzKeTKyEipQdc3KwumA0Swem9BlZBiBc3ZTsJ1OZ2Jsz47w7SjsfW4 GxN5b0bU9pDYLHNP3kXV7JLjquiLPlVfjOF6JWyWkox4Amgd8/qLAZE5K+W+qJ2q6z1KwFVx FBjNKVChP5wZIFWAyiAFr+hVjSWj6Q3dDfTgKCqnyeiMS6aoNIlcsWfEYOIja2SIJWJCQfrz IKQ7mDF3LBEs5MHzahZnk4hoxjwrOyRneSUp8zlLABYOcV+oZFwHfh+FbmzVZHrMerILsZg7 92Xv821ykE6wWf0UxDmfzZeb69kPyfPr+QR/fqTeghJRcbQop8vukCCJSad1/XNRqJrheAAG JMebqnvrMWPDxVuQ2KyUWR0IDkYypzaGR5b2Fwji2SErYA1va4oPgnssBh7QsH3oISivz83C DMQtzdsMFFW2nAcqgxI2c7LG+XxBwxdWU1Rf0U8843QoMB3LBd/kjYNcGLJrzl2nALzO0aF6 3H9ocWDuOn6vsj4F3NQ8ChoRcLWtuecZHLroekmNBZZe1LHxYfCe9VjF7Tzu7tAGySktBrLA bgJqgNl+MMolpVC5y1VKOivJVX2wYvDAz/aoJkWlgvL4HRyDFjM5t2OwpBnJ+stDvuMZhj6y Nlfl+rprG+fnt/fX51++4Wuv1JayzEg6YFne9rbK3/lJ3x6OiWwsszRlk2aF3dPvfe0ysm27 OsvbZXTjUeyNBOsNNXBFVfPGmoeHcl+Qw2Y0g8WsrHlkn00KpFK/JYKMoWoWAFyHpX3m9Xw5 94XQ6z9KWaTu/r2lGEhFVJA2qtanNbcC1kY8F4bmVf9ui0zlCNlh8hWrc9q0oCbDtJrVZOyj WY2FsgPvZ/F6Pp97LMBKXIrLhTkv3UTmWeT3nOyrgmMqr00DbRNZRTQcF2FhvQKzOvVFdUhp NS4i6I2LGJ/ZxqVpPwBbZkW00JA2367XZO5f4+NtVbDY2TTba3qvbKMMj0jSPDNvjDeLyFo7 ar0sjYNN/W73JyvXPZZgbTQQrGueuWZIY2Nyr3/p2LXIiZ21zSnVtvFN5/RAroCIHcXBGqh6 f8jRDhy3Rkl7lpkkx8sk2x0tzpo0lYdGtw8j2pHoVNwfXPP+CdJpIzEI+jnBNKzQ7wv13Mp+ PkDbOSV7DfilsWp62DVZ0jXZtB6NJj/UhRAJGVkaLO48VBKfYCq73NpQcB2CVDBcRDQ7Tu8M o+DYvhEUc3NIhS8YQP9VZ2MzVpQu6IAccG/HrufatDxgd1NuRPTd8kVuZqDUvyfbU0PhHwK2 nMBSbEc1Acu7hz073ZHbi3/skpuOU6UgbV7KThDPdNakS+OcHD6IWh4IPiDJjh/m6wvn6a4o dnae7t3xwpjuD+zEBdktsV7cNA2N2hpSBT4789oySQEQhmyglivfc+aQHi8ubJQWDe6T6wzz xi/3p21ptqN5dICTO1M0O2NL4i/u/BzW2FgWgunSrq/sUFvw23Oe+kJVJNn8it44YkdfvR+y C/PeacItifKY+Q5ZeecJ2AXbgvLSMiuCWlheGOsoS5tr2AuGJg0BSmKzQUqf5XynEnPAXb6w Wp42N35lAWDlKYi2g68QfRBRZRuH3cn1+mYO39JPBXfy43p9PTGypEsu3NMDxuv2enlhr6sv Jc/ovZs9VAYCf82vdtYyTDhL8wt15KzuahiPfg2iZV65Xq4XF9g2jLlUWfkj5MLWZB6b3YXF C/9bFXmROdFFL1xHud0R0TYqR8N/cDyvl5sr4mxmje9mzfnizv8OoL8uPYHYzJYfgcOx04Sj i3tMixjGh8Wd1WegJ/MvGF90EfV5vhO5HaV8DyIQrFSyKw8cHQETcUF8KZm9YPVvVEWQi7jk ucREmNY5W1y8LLR5jvnRfcqWPqPC+zTyltjwvNUCwUhOKujM2g9ogZ1Z3PZ9VEzvwwFbZRcX QBVb/alWV9cXtlnFUbK1uK/1fLnxxEVEVF3QZ3+1nq8oBYNVWY5GjeQkVhiwpiJRkmWosLFE fnW7XlzXkpsJlU0EJnNL4I9tAOezrkqiNsHpurBupYAj2TYD2yyuSD2o9ZVteS3kxmdfJ+R8 c2FCZSYj4uyRWbSZRxtamueliLw2fVDeZu55YVfI60tHuSwi2I5WRBYTW6sryhqCOlNq64vT e8jtk6csHzLOqLgjWuNnWcZjVJ/cc0OJw4WaH/KilHbClvgUtU26o9lZ49ua7w+1dd5qyIWv 7C8wMAVwKxi8XXpi9dUX1UTdA/k4LTuegvhtCUsaNI20I0sR67DhpFR6tO8h+NlWeyeVlYUF LhOWSU099hrFnsTH3E7toiHt6ca3gAeC5SVNkfYnMwvvPMxYI/zHckeTpjCNF+e+ERWtv0XE oqSfwZI49oQgEWVJLRvkz7ukRLZGudWhGEaeVsEifN8Vvv5pGlFvmee1ti+4zQ7akrbi30PY pVJoPG8pingv0HDaO/SKBo6gCB92PE8oSFJEqPv14zvdE6WG3T9YrlbypN8MtB+rEDP42Zts EhE4WIzP3Xv68ZJlsR/XKXD9BM16fbtZbb0EMKvoIBHCr2+n+BGr3250/434w1qZqp5OTB2W iFjsb22ncPLiYwZrVZdK40uUGBZBfB2t5/NwCdfrMH51ewG/8QxXIhoeu89JIirTg/SWqHQV bXNiD16SFL1A6vnVfB75aZra06hOdHeb1YNB0PMWqgXZIFpJo99BUfvnZBBNvRS5SiHI/C3J G6jhAwP+xL/S74NVdAxwAK94Vj8e+NbgUCCP5EfWfH7lsf/EByfYgyLyV97ZtHrx3d20g5Nq UeHf1BFXGvHG4QdmTLZzNyEw5hiTw9IMIDgQXx3RWVl6ooyVXZYvVP3SjSq43QLlZmiDVAyX 2raskrS6WaZ74+OD3HYBEXuTi+F7REWspi8cRN6xE/c46SC65DsmXf9hA1/V6Xrucccf8TSf jnhU+qw9Miri4Y9Py4BoUe5ptvqkRRfj1/jUm2kJkcLV1kssmin5fUQAezNRc5CFZqYW10QZ j3kEtn8KIVCOZthFVSC6WaJEgU7k9NKthMzIWPJmoaPelELyWDDvmFbM9jm2cIO4TiFN9y8T IWsaXnvoPz7EppRuohRfwnP78ajjYSv2YGcS1BEVVJjM2ekZI13+MI0o+iOG03w7n2fvv/dU BCd18li0aCsfKahQNcocZwwaOd68MiYFo6PFmMPPtnSC7nSBBP749u71Phd5eTCzGeJPNNcy c3YoWJJgeKFOqDK4AsShyYwvDq6m0BmE7zLPItVE/8/YlTS5jSvp+/wKnSbeO7xpUStrJvoA gZQEF7cmoc0XRrVdble8Kpejyo54/veTmaBEkESCfeguC/lhIdZMIJdUYHT4Pog+4vD++Pb8 8O1za7TS6e4mPyqN+dvxIb+4I2YZcnxEl0Yv/VzxsbdHWB3L+e80Oe/jyyY3Nk/tLXqTBjtV sVyGobO5PZDrpqqF6PuNu4Y/gBtjNu8OhnGmYmFmwWoEEzVOmstV6DYTuCGT+3vG3c8NoqVY LQK3IYcNChfBSP8laTifuQ0yOpj5CAYW+nq+dLv1a0HSfZK2gKIMZm5VlBsmi0+aEf9uGHSo jU8/I9VVOj+JE6N126IO2eiA5LAq3Uoo7XCks1rnB7nntG9vyLMerU+KArlkdqXSWrduC/Bn XVQzR1ItEtsfSZu+uUSuZLxnh79F4SICDycKZHK9ROCizdXFANLYN7lIFEaIfAh15J8bPU7w LGO0k61GxMg7KOYKoq2NRsqpWN2CtrnEA1zunV+b9q9niFTFpRLuKz4DEEWRxFS9BwQS/ZKz /TUIeRGFW2ve0LG7WNc7BnKszuez8BXSjqi/pBbHuZe5nT8Y2pR59SYIBYhiYr0ZAHZdBRKv 03F6szxU91rdpIpoHTDGdw0AWVlce/zwGOAmFZxU0ByZ8/O03hw0t5M1zaxSEAo3peiZlHa5 C1kV9+XwVE5T2P69jQBxnDxr6tgtoNzOaGBPsgbpA571B8ava8MGneIy5YJKG8wlFn0ZsoeQ aTD11XKgP75myG3Iadde58E5mXsngkpBipfu6MzXZor5lLnDbsqIYlihEYq4IGQxVpsGGpXH 2Wq1xCeRfnhvJ3LtRZapWrg9gu0f3j6Tw1f1Wz7pO/rB93tL4XboH7OHoJ+1CqeLjtaGSYb/ s5qSBgGCJeyiLtmfyInamOOsl20Qy65DbW5QzkVV9wrvARsFYT8IqGkv4lC/mFKOVVRsOMCB EE7STqTxsP8adXXXKLY+zxzSjhEVvj68PXzCMH+tL8emNryTuQ3r0RKHpLEYwKM5qxK63ats 5BXgSoN5H8cWD7E/OdFtcr1Rxp7jRj5k6nwX1oW+WLUaI0M2sfH+OVuuuiMhEtsHg1s4zT/m nA5MvasYh5ToYqSuuD2tgHUTF6Io6/0RGC7kJTjRGL3GaueLWkJhsNFCEv08t18NwlrP5S2k 3PccwRp3A49vTw/PQ2vOpmfIja/saO8YQjhbTp2JUBMwchI2+4iMVs3E6Pc4Ibd4Y+O6NbRB g6lhEzthHmxCfBYlV610OiqwAFlZH0Spq98XLmoJs0il8Q3irCM+6ziLnLojnR6oEq6VEb+b 3VqiZ2HIPOgbWL51mv4aJ7Gv3/6FxUAKTQFye+cwnmuKws9NlHZpajWIrg2WlWiNYb9UtP76 qECw4IvFByXLsY5J/FClnctik1qprWLMoq4IKTPmmv6GCFaqWnMOxQyoOSQ+aLHDfvkb0DFY cz7B8TRaYMkotxhyWfCHDpBhxtVJMVYHoVSGRvVjUIkaISB/1ZHawVAlfRcoV5843X1mUAza Q7tjruyPV//u1pEBaR1v4JjgmGWYnCcR/HXGmyJyIZJuOaUWVb+QQ7RxTVEgWfeBje3atR3t PeEmrTeVFe+miSACddfAX8cdp56qSBUwVlmUOB+y4VQsUUeuM/1viTXuTMA6uF1+tzA0YXoZ Jjf6es6Szcd5Sy1wLO2gxhbJfLGlYnI0XrrbRwUQfnGpD/apxrfBJweX0k6iSybplo1hfNFh EIZhW3CMeQtYMOpTspxxgkFx1apxzny2/deuAMZ1MMHR1Rmlx8eqy7LA1NjJfSzvzVi7WQ8J /xWuKQDl9T3Zw86TXDhPuUPe0JImmilXHjAWVOGWiTogdKBpAlIM74xn0nEHP7MUReFHTVdg sC/l3WR85hS6l7YHaNcNPyanB+fVGVBMHA1iproliWSXb9q4VNjSG6ONoRnaZjfzdVKlmP71 9f3HSGQXU7wKlnP3zfCNvmIch1/pjOcdoqfReukKXN4Q0Xix30sgu7nvYonIuYNBIro5YSRs oGakx8zcOSCdFJ/rHTOZEFKparm847sL6Ks5I30b8t2KWcdA5hzFNLSiHMacSR8+jQ643UHm LkTa0+n91/uPx5fJnxjnw+SZ/OMFCnv+NXl8+fPx8+fHz5PfGtS/gG379PXp+z/78yiKK7XL KOqM191LH8toq9NiYaJhIS0f3LLbHyn6dgSUKkc80ZgBSgchjiwyE78q/g/sUd+AwQDMb2Y0 Hj4/fP/BL7tI5XgPemBuL81X0FUFcEK7PXOvBKgy3+R6e/j4sc4rJmgfwrTIqxrEMh6gskv/ kpQanf/4Cp/Rfpg1TbpTq2FlWpGf26l6Pc5FaiNiwkWiM/MIPdDwURduENxDRyCss3brZLDy zRkuuGD8yhWMAL93coZFN9Io/BzqQ5jdvqgmn56fjBt8R3wyyAicCZqb3PPntYUiiX4MtCsc sa+wJX+hu6aHH69vw1NJF9DO10//Hp6yQKqDZRiiRx15f92Xmud+ozg4wRfmLNbo5Yt0lfFb Ki3SAl3/WO/+D58/P6E2AKxEqu39fzq90akJgx/I1Dnmw9ZahahM6tL9joIdwwXHPLlPNBN0 URwZ/2NExThCTKi7a8jGInHdzwzMBinhumz2avienxmvnY5N6xbAI1ovAsb3qw1xP/+2kDSY Mg+uXYz7qO1i3O/RXYz76r6DmY+2527G8ec3jGYdqXUxY3UBZsWJ0hZmLNwKYUb6sJqPlVLJ 9WpstKoiZsKW3yD6XPgLiarVSBgaDAMz0hK1vAfG0r0Kr5jtejlfLxmv6g1mlyyDkLldtTCz 6RhmvZoyDkVbhH+o92q/CuYuu4PbR2/Sq5D7a5j/g1z4K4C8ZTAb6XvyecdZ5l4xWs7uFv4J ZzBr9um2g7sbaZOWi2DpnxCImTE+MjuYmb+TCDP+bYsZo5LTxfjbDBJ4sJqu/JURKPDvbIRZ +XdjxNytxyCrsYVHmPloc1arkclImJFQU4QZb/M8WI9MoFQW87GTSMvV0n/kJSkjIreA9Shg ZGala//nAsA/zEnK+EC1AGONZHTILMBYI8cWdMpYF1qAsUbeLWfzsfECzGJk2yCM/3szDZLT HiRqxXvfvkKlXodT/7ch5q4faauPKcgkx7+do6rBHcNxpgNRp5e72uuRBQGIORMhoEXIkTI8 NylXTJzKYMFErbMws2AcszrNuJAB1wallVys02Bk/lVaV+uRE6dK09XI3i0iGczCKBxllKt1 OBvBwNeFY0xRJmaM+ooNGZlXAJnPRjdLLjTEFbBP5cjurtMiGFkqBPGPOkH8XQcQLiijDRn7 5LRYMs7Fr5CjEqtw5WcDjzqcjcggp3C+Xs+Z2BkWJuRCyFgYNsyMjZn9DYz/ywniXwsASdbh Uvu3JYNaMeajtAsz+o0noeU+cr/yoq1NXlVq03sg7t6ENakbmQonHAkDYTr9+fzj6cvPb5/w SsJj3pluo1pIHQLfzOg8IgCkNEZovJIZ9rVIlTTq6gx/T/lJwxBfXCUT4bRF7RPJuGtHDGmI TpmNhADR3XIdpCe3PQBVcy5m0zOv2rlFte+Ic85M3xuJu+mcbwOSlzNvDQRxz9srmZHabmT3 wmjInJ4mkZOMLxrORHQv4m38XgGTHVBXODFwOuMtuZLuJiaFrBXzzII07gkGq/4gso+1THPO uRNi7uO0YOIFIDkMKcLPCJ0fG6KvmCCzZvacg8WS4acbwHrN3UW0AM8QGkDovppqAczmeQOE Cy8gvJt6PyK8Yy7QbnRGhmrp7gOU6BqkPU/2ONvOgg0TTBkRR1VglCFO7w0hZazdj3FIBDZ3 CauM76EyknMurAfR9XLqyy6XesmIRES/Dxn+gqjZUq8Y9g7pVSw9bsIQoBbr1XkEky4Z/oWo 95cQJjq/lyDP6ySKzXk5Hcbv7WYGvsdDvVSS85YAZI2BxObz5bnWlRSe8yQp5neeRZAU4Zqx 1WqqSVLPDBJJykRn1EW1CqZLxs0oEJdTJiYK1UsAz/I3AEYYvgFmAb++8NPg4z2nXINYMqKI VYunAxEQMm/WN8Bd4D9MAQQbOsPc6lMCQp5nsgEAXVD5Z+MpCWbruR+TpPOlZ71rOV+GTOA6 ov+Rnj1DejyHHoYhyeU+EztG357YnlJ9zDPh7chTGi48JyOQ54GfNUDIcjoGubtjbHxwY8v3 KXBx64AzILdBwGZ5tkCNHIpn/9LptlfFNe6zj7duCynj3SHpW7G0VN8GjMbV9LTmiu++e3v4 /vXpk/PRVexcngOOOwziZfmAaRJI12pXHCjw5K2MiFFRgPQ6KmrZVVGg2gVksXXTmo6ykw1O FpN/iJ+fn14n8rV4ewXC++vbPzGS35env36+PWCPdkr4Wxkox/bt4eVx8ufPL18e3xoLXEtJ YLvBWEX4itD2AqRluVbbi51k/VuVKemJwGhEnVxRJDu/Jfy3VUlSdiL1NASZFxcoRQwIKhW7 eJOobhY4utqyXnqEW1l9QluW7fdyg84TY7XL6jiDGeUyDbvWiOHZ7UJTgWy0HXgCEjdC3pNG SCcVcY0KWReuVUJt0saAYThKX68aGg7BFDtJlSVzXbjFGCJu1gIzXjZxOZs6nWUBOd/a4jMk gDCSQPe437lppCrNEmEtMUbJWJXXJhc7P4gC1mEjTlBSC+OopWKiTWKj107HiTS2urS91N6S 6hQmXpwZB+pDIpop/nGIXbSdKxF1GF8c5Yij7RIXPwMEatvQ4pbUVYNsk+2J2OkPQ+b9d+Bg 60vAHAuGyg6V+/BGijhyb5NIZQK84ejGOSxcRk4G+v2ldAuyQJtH/ePJmpN5HuW5+2xDsg5X jP07LttSRTG/GETptuqhJckWKuEs4HznYR+BLHDgv+cQuRwi4iTfpPXurBdL2y02tqSad2YY /L5FWq7Ux7hOf7/rdokq9YG5wsOpe3XDywI20KX8Mq5UWjDRYOjr10FvM2vOP+ehRtvk5uHT v5+f/vr6Y/Lfk0RGrDMPoNUyEVXVetNrr1OA5tJKbMi3VdYvYEB3BL9rieQS9pQwChotTkRF GDLP1z0UozPSooDZ5l6DLdBxOZuuE7dNTAvbRCCLuUUhq1mlPMsscw7iyFBdYxm/vz7DSfj0 /v354Rpj0MXiIe8mjZ2FY8wo3NPQcqyTDH+TQ5pVv4dTN73MT6h6f1s/pUhhR91u49JlaeIg 1yZqIToaSkXJ7KiObGWuyaDyb2eANR2XZQzikbiP0UmOcwBGOve2VPJd3tlFMAHt2UqLeaM0 4CPR/yPsCE4CsQROikwOekbxmW+NG7Dzt+eB/JBZtir0s8awUj1rs056jRaIiVDWCV51Sski Yz3RTSpk2k2o4j+u672TDvVgbIpO6cA2nGFMgDQolE2EfeewU7bl7JVoWmc/hwBhX/IqpEiP LpnAq3c4Y/LSaeSI32QEKjKLEoXqVV3mst722nMNRI7EbdVvVEtVmWaifWDbmNCWVEQqKm1b vzR9f4gpNMdwSJpobi70sK8xRwr8Y21CInZoDr9xlIwVsJ8ikpyJBE0fAwKTYvy80jTRhWCC cFNjjbFlsFpyL7RYRnHoPZp2po/qf4+IgjBk3p7pgyrWMIrofGzrlkwSEKOHh6BDGHJqmQ2Z U35ryIxRB5FPzFM10DY6ZG4JkSrFNJgy2qtIThVnH0H7wPmyi937NOWuFrOQeU425BX33I9k fd7yVUeiTISnx3akb8CSE3HxZjfFM2oE1+J5simep8OhwbzE00bK02K5z7nXdyCjnwDG0KAl czFPboDow2gJ/LBdi+ARcVYFrMLvjc7Pm23KWWfRIRFV/FJFIr9G4ZwL1p5RI9+L4Zlv+RXA V3Gfl7tg1ufz7ZmTJ/zoJ+fVYrVg7hGaM5g1VwZyls6W/GIv5HnPH66lwjDtjO4t0tOYCRPf UO/4monKPBKZU4G5/jcHjghZtaGWPrI/k+iXV/zSOJ5Z7VygXtJtb6M0bmWif9G9ZceOgeah MJPFyanecv1XL0uBbjOTXJL0+vtq0Tn2CtnjZa6Gdi+uVLLzhPO/n8kWmZuEVmbWMLlMtObf 8WLNxolcdDNCQr0VGxAIcTfMD3pIzrPLeZiK1ufDxDzPVDxMJ74XvY2xlFrNetRDtekzCOhR VhzYaFAN4iACz8ZjnNaeZzzjZFzyKvGHF7HqxxwdIPZqy4XwphNfRv1rz0ERRc6oVbX0vR+h 88zhiKcHOgpg51wGxw2fL7vRFcw6KzCCCl9uEdFISbepIW0X+fBxYq+i4bXIXnW8Y8JPEOY1 sOIXmOtlnO0Y/8gA5LwtHfbOAOpYdHs/YjzPfH/8hC4hMMPAnBHxYtEPEEupUh54J2wGUTqN vImGLvYGRWKicm/9ROf8QBPxULojlVBvxsm9ygZ9HOu8qLfuASSA2m3irIew6HIP8r71YGPS FPy69OsCcbgSnm+T+YF7EUUy7JSw47qXNNJBJowU+onjK6B3PJ4MvadBCKurzXTpvKsn1M05 ZCczzMJdnpWqcm8GCInTytfTMRdh2xBjThfPkJ3uMJDyEbqk39hdnG4Uo2hD9C3z5IjEfZ70 XCV18+pVOOdHEVrjXzL3F74HD5Lia7H0k0g0Iw8j+ajiU8UE8aKmX0q67ep3FwaicN3tEU0P 1vAHOGr5WaZPKts7n/5M92SVgs1u2IhEEr/Alsvd5xpalh+5GYJdSrvbSy9Tk44/CiY67hXC TGukl4d0k8SFiGY+1O5uMfXRT/s4TrzLh95tyNGnB5Lgq4GHftkmonK5skdyGZtF3t3sTMSJ fKt7yTm6gB8uPYpQ4F8BmeZC8yCtVG6ZE6kYd93lxIy2R5GhWnSSdx1dW8m+3i3iLEWfdVzh sRbJpRvoiNLRDZPkJ2aB7nJLXJL8rk131m6ZwowKFMAIQ0TPpRRuFgbJcCLxfeaIEkfJcLjx BaLpK+s+lBA6Fvz2ClSY6eS9iGvVIcMoMP1WlZxXAdzZ0BGtqDyHX5WCQPEhv2DJ/N6ljm62 nIh5UXFWv0Tfw8bGf7feo18ec/3KHwDI7KEgxCNm248x80hrjgjfOXpSivUvi/SzgmXAUrFi b/9hEATp24GMeUO9Z7xgEJOX9EN6Xd2aOZhY45e/2rh5biPADPjuwsk2N+CrH6Om0n7ZrVui ToW38sm7kYqcHzDIdhPC7Qqs5uR7qZBBbbRpKFCY5ZjzikCNlyRuQF16PFpC80bRTcQgm90T miTOpFCM4zgSatFZ7V5U9V5GneK6ZffuzClnlsHeK2P0Ot88Ag1jYqRP758en58fvj2+/nyn cWmCYXTH+3qBgMpBqtL9qvh3mw4s1+5DqKHVp71C/+aV67wwAr7OQZKBUyW6XmLYZOzcF2vy ojMj2ToziobaSTQqq/V5OsXuZdt2xvHuAfrTwQxPJxull3mucWXWmvsqgmmNw1SBXBQ55ppj dCl9W7lVHexWkZ/W3H1Gd3E+x0Y0ROfDLJjuC29fqaoIgtXZi9nCYENJni7NmS7Nux8Fgijf 2h7U+c7eBQ57Of/bnXNwzJEOoEowKpwPUYZitVrerb0gbIyOK023oYPljPO+CVsinx/e310q ebSS+m5r7K2kpDhELP0U8Xl1Ory4yeBo/N8JdYHOS9Sw+vz4Hfbo98nrt0klKzX58+ePySa5 JxeaVTR5efh1dfrz8Pz+OvnzcfLt8fHz4+f/m6CXHruk/ePz98mX17fJy+vb4+Tp25fX7r7V 4GwhxUr2aJjZqCbU0SguElpshfsMtnFbYKs4dsLGqQqvAUdh8G+GU7VRVRSVjPVuH8ZooNuw D4e0qPb5eLUiEYfIzT/asDzzhI2wgfeiTMeLa25bahgQOT4ecQaduFnNPLHQDmJ4dOJaUy8P f2EEKYdHTzqRIskZoREZhUDPzFIFr1xOR1eUMTwtlU7bRcQ426Vj+8QY7zVEPvYben7CIADe Y2Dd1QK7dRr5aWY2pmGIkVu2LqvC5I9TxZhUNlTG0xNtitFBH9wio2nasWLiyVI4vHiXa/au hRCebf06Y+VlLRmjTwMjI2W+2yP+LoNOXo1qJO5wzNQFeJEcweAhc9XfNBXwXpvjjh90xh6T DoZSACvqCgjSbX9+EmWpPAg8+zy8TBVrczxu1VkfPGtHVajwt2XeAABwgdz8ZIg/Unee+bmG PB/8nS2DM78F7SvgmuEf8yXjiMAGLVaMXw/qe3QeDKMWl/4uknuRV70wTrclVnz99f70CaTB 5OGX2/FklheGJZaxcisBXVf/vP/SZsl+TD3dQnYi2jGvSPpSMB42iY+iEA0npTkTY86e9P8r u47mtpFg/VdUPu1WbbCoYOrgA4hAYoUkBJHUBSVLXJm1lqiiqLfr9+tf9wwGmNAN6h0cOP1h cujp6RCmTgQf1Wy4QonQeVpYhqCSCrX6OhlSW0cmaIJmJc6/DNc8xolAp8imFET0OopniVEQ OXjZ2efJxRW9HGUZfnp5xijJD4CLEYCwdqMPsIFOrwFF51w19fSrCb3MBKDwvavxEtC2k14W Hf3igvG9MdAZE3ZFZ06Ujj7lzGcVndOGHhrImIj2gEvGQlMOYjDhnAIJOgbcu2A0nyUg8S+u ThkFjH6YL2hvPYIeV2enUXJ2yhg+6hhL0cOa5YKX//Zj+/LPL6e/iq2inM9OukeK95dHQBAC q5NfBknhr846meHWSCnGy+7t/bqbX6XJioseL+gY4WakS4XNcCfxIdtb77dPT9SyRlH9PGSk KJ7vh+g6JE5ixsIlhr+zeOZl1NU6DFBvpM5RVlP5ZaMJkQTJEVthqoXp4tFU68pUpRVETklW EF2fyiLZDxNaiiFri/69GavfAcC4NZH5F77lwqCjlrWPsZiG9mGC3NKNpIVf59WaTlTa1Z/2 h4fPn3QAEOt84ZtfdYnWV319EcJ1IdKyLiiOmDQlhobWY6ZqQLjBR/0Q2emoBk0kW77m9fS2 ieGalDb0OIlal7cO39FLdbGmxCmmvvNms4u7kLnJDKAwv6PvrwNkNf1M6U0oQFABV/LFbuRA gamYAdPIhFfXoIx7Kg1y+YXekRVksU6nnE98hUEHhVfM9VFhyurCPztSVlwlpxPGy4SJYfTj LBB9g1KgFUBoAYJCCNdyzJlrYDj3Nwbo7COgj2AYLx39aJyf1ozzQwWZ3ZxN6Mu8QlTALl0x rlwVJkrPThmeqx91mOiMLroGuWBUt/VcGN8uChKmwGPSrEOfyy1AxidXeTudMvebvmMCWH9T Z/dAZ+jm7qHvThj+AbXFhBFIj0dP3x/YdYLqbMIwltq0mJx+pPlXpqhE+iv/cX8Abub5WD38 NGdiHQ67yYRxGaFBLpgjUIdcjI8BblvTizby0phRmNKQXxi2foBMzpnraj/m9fXpl9obnzvp +bQ+0nqEMOFHdAgT4bmHVOnl5EijZjfnHKvdz4fiwmfuAwqCM4bSE1P0PgqClX63zm5S1+H6 7uV3jF1zZJp1uoujFUOFpYzRS+13pxr+d2zz4Z7a+5HPGG/1fS9+scQHvQpotXl5gzsC09oA nbrdki+dQJo1kfa82X+EsZfQWYPV8E5eYX2n8eLNqpOUUcK0ODfkZxhVi4mtgbSiG6K4pFWL ERMA73cM43FiERm31M85ebGMWjo6SxCThTUjE8MMysaOIKVR0+iSscy4jciwXNDOdrYuUJaS epk3N80JUd1fWb8RH8tgX05kszTMGs1/ikzEdz8biJ0hbzoOfIYa/OKp2agMBoxlw/eq4lMi 7EW6fdjv3nZ/H04WP183+99vT57eN28HQw9Cuaw5Ah0KnJehGxJLzffam8eMD8x5ngRRzAiu Fks4XzOMfOE0whexLqrd+95wUKmGcjq5OGu74Bxdmp9cz5JAknTdEDKnoQ6pFyeznOLyY7hs N6ZFqEwabrXS8Q6GGNk+nAjiSXH/tDmIQCGV29/HoNq1W5Qk7m4RE+S4Q3SKFDCt60WZN3NK bzCPJFwz7RCBVms/7AnyDrh53h02r/vdA7n3i7DXeN0jdzbiY5np6/PbE5lfkVZzIo7ekKPx pTbj0JRjGRNhm1HT/5dKRo/KX058jAt18oYinr+h3weVDel36PnH7gmSq525+SsvQwRZfgcZ bh7Zz1yqdM2w390/Puyeue9IunzxXhV/RvvN5u3hHibLzW4f33CZHIMK7PaPdMVl4NAE8eb9 /gdUja07SdfHC6M5OYO12v7Yvvzn5Nl91AUAvbVji3dFUh/3SmgfmgVDUUWKUomoDOmTMFzV Puc3EJYEc8GPGeOhrKbfb27T0A35pCq4dMNA4rmNcc+IKIHlDT6oGsEkE+BI6GXr5KM1ofD8 a7ZSIggQ+lyoyzxJiBCGxWINW9s3GaZtqF7HFGDYJMthcXuNzubwlQuJdE8s1oqvbANaH9yE jOSDQV3jdDVNb+wwYwYM/Rgk8HcRj2dXrLx2Ms1S8cB2HIXNJAfE7DbtaxQt+x7d6NR346QV mz3eGO9f4OR73r1sD7s9xQWMwfq7hIgAK3e/l8f9bvto+JfLgjJn9CkVfEAn8Sy7DeKUDMfp GdrbKCsMSHsxJbrUf/YSSsndL08O+/sHVKeggjjXTOA5NMJsbTMvpQLqZjl8GRXMU3ZUMVbr rNV0ErMREYQuFfw/C32aNRRB3RmPJ50qV6Bv7dEWDgo514zt99ZL4sCrQ6g+xv2ryOC7QAP+ wdNi18NeOTEcZnQJ7cqr69JNLvIqXrWen7ikKvSbMq6NTQJoZ21EcehAObcLPudLOB8p4ZwV mv81CyY6GH+zYCggnfmev9DcspRhDD0JlMh45+2TRSBbZrftIMIlCYZ8pa78Q/Z2h+skokt0 stYtqp2qxtpvIpO/mD7FdF43TnyFHn7wtZwa2pUsXQ/RCyk3TV57DFqvm/ERY56KpDxDP5Dy HYsFLb2SZgRWo00EJn5CT9tZXVp9q1LoRvRUGfIYt4N5yT3e9eCyydrKywAnXlXorUWi+UZI Olw0QqYXh+LCCN3gxBElysjiRPaG4ZRyIr6kV5E8FIbf5IrGK5n1gtiltTMRXDEvyOzjJBQ3 SemNsr8VZgEqFq1turapt8BglOuCd0xViT6oqT6IKtvFaGAnxDJBPAwbBXuSQJbJrQnUdI+q c2OeyTQjKYLCrIHxOfWvTgRBjhm63Eq8tZXVkIpGbDG6Mm2DmDpWKKSXLD3hkjRJ8qXeIRo4 zgJGx0oDraBnReOPAdOw9tC1qiucuH/4bipnRpXY58lDt0NLePB7mad/BreBOHeHY1cNepVf XV5+tna7v/IkZjSX7uALcgiaIFLdr+pBly2FmXn1Z+TVf2Y1XS+gGWdrWsEXRsptB3nWP1HS CT8PwgL1ps/PvlD0OMfg5HCb+Ppp+7abTi+ufj/9pE/5AdrUES3gz2pnBxn4Hrp5kkl+27w/ 7k7+pprteP8SCdempzWRdpt2iQO3PiR3z/PoRYvywyyQ6Ju+Tqxcsc/QDCWGrcjJG654SVCG lOrldVhmhtMy8+W+TgvnJ7WpSoLFRyyaeVgnMz2DLklUV5sjIfrLFubsWmpvfzSP515Wx776 SmNg8R9+MIkB64uMKyl5R72IMDUWUV6iShyRrapYMEKLeFooDgF6H1xY+yv8Rss8a1+cjdRq NlIwd2L6pZfqpcrf8hSUShlqWtw0XrXQoSpFHnuKdx0uJgZZbsxEBXpYgHYJRYu25AmdUYcQ 9sj0XYhCot0YvlGNFG3N2j79TmrouPknd+dj+SV3OZHb6o7M666qGV8pCnEurFPQSAU994xj w3QWBkFIKWANA1J68xQjYYsxk+6AzrTDesXPozTOYOEzxDzlP1wUPO0mW52PUi95ajlWaIFW FkyHratb7rNmZB2VObeSVIBvc0tRxMg8AfH37cT6fWb/NndYkXauzyFMqZaMkEfCW8rRobAL zEy+AeHI0XUqdkFGtrED4ZkRJggyqqc5CcVf0EKnBYHdzIBqZ+A2NJB7kvQGxTU4aNGm6xgG w4ThKLk4dQMrPTiBYd+Ic80iUmyJ1k9ZT613oCWuJiMSegNcNQGbrDScbonf7dz009Kl8vcs PywWzM4eW8x53F2dqwmDbvFxcQmMsbiWh8MbpJnHMvSu22KJBzP9VCdQTYG+b7iSrB1XpAmm wkoTDXdqIFJpVYiBLjiolvWuI4FkRTXuIvD4Y57bBxJ9USSV4ka/fno//D39pFMUq9sCq2tM d5325YxWAjJBTPRdAzRljMwsEN2xFuhDxX2g4px+ugWilVos0EcqzijjWSBaV8ACfaQLLmnt IQtEKwcZoKuzD+R09ZEBvmIUz0zQ+QfqNGVUUREEV028mrXM/UvP5pQzfrRR1FGGGK/y49hc c6r4U3tZKQLfBwrBTxSFON56foooBD+qCsEvIoXgh6rvhuONOT3eGiYGPUKu83ja0jYJPZkO Y4Zk9CgJjBzjTEwh/BC4efqtbIBkddgwvlR6UJl7dXyssHUZJ8mR4uZeeBRShoyNrULAZT+x LCZcTNbEDEOjd9+xRtVNeR2TzqIQgdISwwdBFvs56UUsztvlja43Y7wLSd2KzcP7fnv46br0 wBN5WKz4C3mjwjMce4jkEt2SV901hWbwpUsQvMvAFyVcHZmbcZclzdNL0WwY8BAgtMECQ/FI d2tcpF/5moHacpV48q7LmHl5U9hRIi0n8G5D+KsMwiwMhMQX5Y6Cd/M9S/bjwGjhMzCrKD2u 8qbkPIPik4svskHfDzJUE1G53tlr3xW6DU9SpV8/oYrV4+7fl99+3j/f//Zjd//4un357e3+ 7w3ks338Dc1KnnDqfJIz6Xqzf9n8EIGeNi/4mjrMKKnCtnne7X+ebF+2h+39j+3/qgBgaq5m sfA961+3WZ4ZgoW573cxBNBhZ+PXCXK2rHEVDZ+ty5DWrRzBtxzHKWqbZ3I0+95kHg0UGH06 sFilvUf3kiLzndyrydgLun9Cy0t5NdOfC4Raq5ByWmlpmPrF2k6FPOyk4sZOKb04uIRV5ee3 urwKlm6unvH9/c/Xw+7kAR1y7PYn3zc/Xjf7YS5IMHTu3NDUM5InbnroBXaBItGFVtd+XCz0 qAsWwf0Eb1Fkogsts7mTMaSRwP7W4VScrcl1URCNx73ZTR6UYsl04927I9nrivywDeLKmyWh fHl0sp9Hp5Mpxg6xW5U1CZ1I1aQQ/9I3PokQ/1AyNNUrTb2AY8MpEWvtJIbZHGMGdt6hivdv P7YPv/+z+XnyIGbrEwZv+ak/EKlRrGgVkY4cMJfvrlD/GL0MxvOHDfw2nFxcnBrspdTqeT98 37wctg/3h83jSfgiGoKBLP/dHr6feG9vu4etIAX3h3tn+fl6oBg1sCLNqcICTn5v8rnIk/Xp GWPZ1S/IeVxZUdmsNRjexM7OgTERPNhIb9X4zIQK8PPuUTdrVPWZ+VQtoxlfqF+X1Cc1LYvv ajQjPklK2l1ER87HKlHQFV8xb/tqPwjXy5IRLqpORxd0dUMpZ6nGVNXQt4v7t+9c1xq+5tU2 mHo+sX5X0JyxWt3CZ86cDbZPm7eDW27pn+kBAo3k9rZIq4acmUjnW71aiW3dbs8s8a7DCTW6 kjIyKaDA+vRzEEd0ZSStqy+fy7yrlrMjEgvM2p+Dc6c5aXBBpYlgAk56DOtMaEZSM7FMAy6g ooZgREUDgotPMSDOSOMntUEsvFP35IZEskVAgPJcFmDhXZxOiDYCgb6FKzoT+VCRa+DyZjml O6YOn3l5ejVx6rksZH3kCbN9/W5YR/S7Z0VUGVItVWyLnjWzmPyw9KkHsn6y50u08yDWhyQo YTkx1b00hGs5pbbSI/DGyH9f1SOzHMmXTrUCsnMih4uwts+Fd0cwjpWXVHCkjZx2o7MgJJ/2 empZyChd7uQaGY9ajwas0pY5OURd+tDDXejB59f95u3NuHn1vRcl+Kpv54SPpG5Fp4wVZP8R LaYayIvRo8F+bJU2J/cvj7vnk+z9+dtmL+1uhijS9oyv4tYvymxkHQblbC6NvZyJhBTmUJM0 9klFAwFLMV64U+5fMYalCFH3vlgTnY6sORovHS2/B6r7zIfAJWPvZePwTuUMTnel+7H9tr+H C+x+937YvhAMRBLPul2MSIftiGKpgEQcvBRMrs2jKJJldnEBU091DAPrj2/yp2QhH2GGhyrT zLOLZk6zxdJJQjX7bMUkK2EasYcKMt4mu1gUo/S2kP7Ej+M6FzrEggKkV8NxAQz16J4wALET Pp+P37qw/FgEofaz7OJiRdkbaNjblO4qSNf6iirFX4RJRRqn6tkoU1Mqh8qLwpVvh4kiSvKB tTjaQ6kIZNHOV3R+XrVOMcQxQFBail7S3LW82R/Qqgruhm/C29Lb9unl/vC+35w8fN88/LN9 eTJto1GLApcohsitehkvKeD6SN6qA2dx5pVr6Ww2UrKjhN1hpOBJF0iplHYGYwgbenltaNx5 QgOYGLkZzJwQrYY1JTdl4QQMXuYX6zYq81Qp8hKQJMwYahaixmOcGAoEfl4GMRU9pDes8mPb LEORrGShjYfaH35arPyF1IAow0if3z5MJjhs9OXvn16aiP4eo6XFddOaX51ZkhtIAP4miWxH PyYgif1wtp4Sn0oKxz0IiFcuPcaTvkTMmEcYoDJPxr7FCOuEL0QzYCvub6Q6lhJrdJdM3VmD lwV5Ot5RwGB16nHmPoy6bmgpkhgamHfyuLJSgXUbdvJnPZXKGZgyukTgxYhsRLKG7wmrO0we vpe/29X00kkTp0LhYmPv8txJ9MqUSqsXTTpzCFXhlW6+M/8vw3hEpjIjMLStnd/F2gLTCDMg TEhKcpd6JEGoF1L4nEk/d1e8/oiktiy8d+qWBsBJ3npJayavvLL01lLhUtsxqir3YxmhSgA0 NWBPWIPpZnkySYRXNvYdTA/0RmdwCWor4XAD4wTN64VFQwJkIV6tbHVipHlBULZ1e3kOC1rr HKAEGPm6xPDmC8EwE7rIUV6iejaAm6x/OtT0uJZxXieG2qgoEg1CuSjO80T2vNbNwmBfPrNp u2fRtKXRN8GNpjg3T3KjXPw9thVkiamFhU4vgFvUcoTVHwVaJ+Qies0czmI9gFqUZ7Wm9Ka9 K2aknFPgp/9NrRym/+knRYU2rHlCDECB1pvGA05PaqSPwjZKmmphWdM5oNRHBkkrEWaD7Fzt 2RP5DbIPe8bD4RvMV0vF1YjU1/325fCP8BL1+Lx5e3Jfx2UgcBHB3GApZDJqqtGvKF0we+DR EmAwkv755wuLuGnisP7aRwFNoUtQz8bJ4VybyF2oDXYir9NZDgdtG5YlILW+lRp58KcLeK4r D7Cd0osWtj82vx+2zx0n9yagDzJ9TznVkaUxZo9hJh6Y0gblRGgXp03DEiotzPa+wj1gas6D ArYztBpOOQN3LxAZA4oELAAAnB+qV9a0ZmRewLDDxQ8gSZxZNmSyTVXoo/4BGi+knuVjWNXV goj2oMHi2s1O7mVSoRMu4Zaa/MBbf3QMDB8n3RIINt/en4Sj+vjl7bB/f968HLQJL4KgIatf 3gwDoSX2D9ty3L5+/u+UQknf7faEMwxPPHEKQYdczwNjn8TfREcOG8as8jqTSBwdLzGMLAWV +Fx+5SXxPEvlSeK4dhntIbMlUuPabh/asKj7S/fC32emLwihQReuagzVxygTyAwRKI4iWt1G hEtYZozcR5CLPMaAhYzIZyil5dQmJCSf/RX6zPtUlTQzBWPixyNC6DpzCjRdr8JRgloZ7spQ FJJ/EytRqJQ0lWWQJKLodEQMFcTbaMtsbqnXmn7mdRiMLm26ZTMIbB2lwxGhJ+J+3C14ZJSO 9JJoDdo6RtKa0u0Hl+j7ogHXHi6CIXatWnEiWXwqpFymksowhZ3tb2E5IJNPe4g/yXevb7+d JLuHf95f5fa0uH95ejOXQQYbBuyNOW3fa9DRqUED+03PC8FttymgIjVMTJ1DxkiKLnHQPcvz Gi4NXqoDRUmUgIAF29VB1a4PlaoBj5dqg/tStYHAwtpFA3xR7VX03F7ewKkDZ0+Q08Ka8RGT CoRwzjy+i9hZ2o5mrDJlHGAk4qnvLEhnKxjUmohi7FmHzNh1GBbWpialRqgtMGzgv7y9bl9Q gwAa9vx+2Py3gf9sDg9//PHHr0P1hYm5yHsu2EuXdS5KWFLKlJzsYpEHtmtkc8GbVFOHq5De R7s1RbhVM3cRmYW7gyyXkgbbbb4sPCbcdVeVZRUynJMEiPbwR48EKffhCYzGkbywY8VLRce7 02WLUmHpYLgOPnbF0NDRi8D/Yyr0cxa3wBrNjfTuFRwb9AXcMPHBD2a1lOyMNPlaHpjM3viP ZDQe7w/3J8hhPKBclGCZ7fh39pFxhF6NHfrCE0HMOZeXh7kIY4Uyy7IhfCUYmwfTJLtUv4T+ y2rgDV2vnKXf0OwSEPB4jPgZgQhu2mgQPF8Fty/2kLypv05Odboz8pgY3pCONZSbO6PSzpK8 6Xj6kuDmzbuYmPrAE6J0nxFrQu0XcDIk8pivQ+W/i15KAMj8tRXNWoka8kI2trQY8qjJ5HVl nDovvWJBY9SlNFKdaWQgEuGqj46OhO5oGVgQNKYXI4RI4F6z2r40+N2HMpeBKKuDrtJbq2xZ qm86nRSihFkTRXoT4KoNFUO84VMEOxrHRkaScRquZdUZ7aEZqFm+kZ8S8NkZdUDXZNHuTXac uCHSjrIwTGE1wyVNNJZxVVXeAMcTdd9T11pxurvZL5Yw8YjPBimUHIxumCm2rxvHKvNEXDk9 d4vUM8221a3axTDS1AJPb2H0biucq3SMjorrKeg+YM7nHg6zcxQorxts16nwhnFuz9NrKGIW duMyJDd08qyInDS1+ux0OgdnrQ6jpKZR12h6LLEGXZ3xylHGpHkKs+idGVF7sIEX/Ca/wDfH 0ZAoMiO5huPMPoBNmNhahgdD+ljR1vXHkUcboi1BEbqWR6oGeYkQoLuOqdXEaTLOIKk75lEG mJddr1hHuT3mFtQYK+nzhcrFNV7oXnk1+Wu9eTsgM4aXC3/3P5v9/dNm4MP7e/Y12hTYd1e4 okJy1yWF8SKHeOrIh/kG57zoXhyfzuPzcEReB4wnQRE2TrxxVznjMEtAWKpcFZXuuIteQYrf FLzsCIMj3n1G6OINJk/yFM8EDmW8Fo3MT+Ghg6dLtv/ynOG/FUqzEuEnOPbiIlzZ7nWsbpZy f/n+wiz9Dlf5jFWVAFwDomY8NwqA1EHg6fJNYpQOq40JfigQTWM729Sp8uGOpyvJDo8o8RW6 RtnsSIdzemWCGjNBWuWiuB5ZMbcpf2OUjUfdMtbwTfZgMdb9qHuywHcTOEBp9iLOAhyFI/t1 FxeyTOFuN9JR0rPTSHvE/j02IYWdHmvIKCdlmo/MCLTQAo5qdHUIBRfmAFCZsACgscuz8tIi CSkmTZOJCvetceeuwnh7FfaWHULfeOPcpDlXwdfdv5v96wMjPUcPHJ1d0lKcVZTsEECSqDNB eORL7iwIi3rx9VJ7TVuIawchmtJyxLhXglHkhNloodsWKGvTHyqHKmCwZLiazcKkjUJP3FeF SNr0GceAeG+ldYlBToHncEtMq7jbtXSi0SpkRFC+CTxGxReySk1WAH+r1yAGLoapqsJ0lmjv 0/qHbZmL6OWWGNuwZUNxKFzp4P5lVzz0ymQ94o0FMUXNni1IjlA/PczQcIaME6oeRd0JabE7 JGvzf/h5EXUCowEA --vogesyv3zxk5b3f2-- From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============0244248961196150683==" MIME-Version: 1.0 From: kbuild test robot To: kbuild-all@lists.01.org Subject: Re: [PATCH] crypto: cipher - move API definition to internal header file Date: Sat, 11 Jan 2020 03:20:29 +0800 Message-ID: <202001110303.pwpWJjHH%lkp@intel.com> In-Reply-To: <20200109222108.15228-1-ardb@kernel.org> List-Id: --===============0244248961196150683== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Ard, I love your patch! Yet something to improve: [auto build test ERROR on cryptodev/master] [cannot apply to crypto/master v5.5-rc5 next-20200109] [if your patch is applied to the wrong git tree, please drop us a note to h= elp improve the system. BTW, we also suggest to use '--base' option to specify = the base tree in git format-patch, please see https://stackoverflow.com/a/37406= 982] url: https://github.com/0day-ci/linux/commits/Ard-Biesheuvel/crypto-ciph= er-move-API-definition-to-internal-header-file/20200110-193618 base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2= .6.git master config: powerpc-defconfig (attached as .config) compiler: powerpc64-linux-gcc (GCC) 7.5.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/= make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=3D7.5.0 make.cross ARCH=3Dpowerpc = If you fix the issue, kindly add following tag Reported-by: kbuild test robot All error/warnings (new ones prefixed by >>): drivers/crypto/vmx/aes.c: In function 'p8_aes_init': >> drivers/crypto/vmx/aes.c:33:13: error: implicit declaration of function = 'crypto_alloc_cipher'; did you mean 'crypto_alloc_comp'? [-Werror=3Dimplici= t-function-declaration] fallback =3D crypto_alloc_cipher(alg, 0, CRYPTO_ALG_NEED_FALLBACK); ^~~~~~~~~~~~~~~~~~~ crypto_alloc_comp >> drivers/crypto/vmx/aes.c:33:11: warning: assignment makes pointer from i= nteger without a cast [-Wint-conversion] fallback =3D crypto_alloc_cipher(alg, 0, CRYPTO_ALG_NEED_FALLBACK); ^ >> drivers/crypto/vmx/aes.c:41:2: error: implicit declaration of function '= crypto_cipher_set_flags'; did you mean 'crypto_tfm_set_flags'? [-Werror=3Di= mplicit-function-declaration] crypto_cipher_set_flags(fallback, ^~~~~~~~~~~~~~~~~~~~~~~ crypto_tfm_set_flags >> drivers/crypto/vmx/aes.c:42:5: error: implicit declaration of function '= crypto_cipher_get_flags'; did you mean 'crypto_tfm_get_flags'? [-Werror=3Di= mplicit-function-declaration] crypto_cipher_get_flags((struct ^~~~~~~~~~~~~~~~~~~~~~~ crypto_tfm_get_flags drivers/crypto/vmx/aes.c: In function 'p8_aes_exit': >> drivers/crypto/vmx/aes.c:55:3: error: implicit declaration of function '= crypto_free_cipher'; did you mean 'crypto_free_comp'? [-Werror=3Dimplicit-f= unction-declaration] crypto_free_cipher(ctx->fallback); ^~~~~~~~~~~~~~~~~~ crypto_free_comp drivers/crypto/vmx/aes.c: In function 'p8_aes_setkey': >> drivers/crypto/vmx/aes.c:75:9: error: implicit declaration of function '= crypto_cipher_setkey'; did you mean 'crypto_aes_set_key'? [-Werror=3Dimplic= it-function-declaration] ret |=3D crypto_cipher_setkey(ctx->fallback, key, keylen); ^~~~~~~~~~~~~~~~~~~~ crypto_aes_set_key drivers/crypto/vmx/aes.c: In function 'p8_aes_encrypt': >> drivers/crypto/vmx/aes.c:85:3: error: implicit declaration of function '= crypto_cipher_encrypt_one'; did you mean 'crypto_stats_skcipher_encrypt'? [= -Werror=3Dimplicit-function-declaration] crypto_cipher_encrypt_one(ctx->fallback, dst, src); ^~~~~~~~~~~~~~~~~~~~~~~~~ crypto_stats_skcipher_encrypt drivers/crypto/vmx/aes.c: In function 'p8_aes_decrypt': >> drivers/crypto/vmx/aes.c:102:3: error: implicit declaration of function = 'crypto_cipher_decrypt_one'; did you mean 'crypto_comp_decompress'? [-Werro= r=3Dimplicit-function-declaration] crypto_cipher_decrypt_one(ctx->fallback, dst, src); ^~~~~~~~~~~~~~~~~~~~~~~~~ crypto_comp_decompress cc1: some warnings being treated as errors vim +33 drivers/crypto/vmx/aes.c 8676590a159320 Marcelo H. Cerri 2015-02-06 26 = 8676590a159320 Marcelo H. Cerri 2015-02-06 27 static int p8_aes= _init(struct crypto_tfm *tfm) 8676590a159320 Marcelo H. Cerri 2015-02-06 28 { 78557e77b25a98 Tudor-Dan Ambarus 2017-06-16 29 const char *alg = =3D crypto_tfm_alg_name(tfm); 8676590a159320 Marcelo H. Cerri 2015-02-06 30 struct crypto_ci= pher *fallback; 8676590a159320 Marcelo H. Cerri 2015-02-06 31 struct p8_aes_ct= x *ctx =3D crypto_tfm_ctx(tfm); 8676590a159320 Marcelo H. Cerri 2015-02-06 32 = 8676590a159320 Marcelo H. Cerri 2015-02-06 @33 fallback =3D cry= pto_alloc_cipher(alg, 0, CRYPTO_ALG_NEED_FALLBACK); 8676590a159320 Marcelo H. Cerri 2015-02-06 34 if (IS_ERR(fallb= ack)) { 4beb106045976b Herbert Xu 2015-06-15 35 printk(KERN_ERR 4beb106045976b Herbert Xu 2015-06-15 36 "Failed = to allocate transformation for '%s': %ld\n", 8676590a159320 Marcelo H. Cerri 2015-02-06 37 alg, PTR= _ERR(fallback)); 8676590a159320 Marcelo H. Cerri 2015-02-06 38 return PTR_ERR(= fallback); 8676590a159320 Marcelo H. Cerri 2015-02-06 39 } 8676590a159320 Marcelo H. Cerri 2015-02-06 40 = 8676590a159320 Marcelo H. Cerri 2015-02-06 @41 crypto_cipher_se= t_flags(fallback, 4beb106045976b Herbert Xu 2015-06-15 @42 crypto_cipher= _get_flags((struct 4beb106045976b Herbert Xu 2015-06-15 43 crypto_ci= pher *) 4beb106045976b Herbert Xu 2015-06-15 44 tfm)); 8676590a159320 Marcelo H. Cerri 2015-02-06 45 ctx->fallback = =3D fallback; 8676590a159320 Marcelo H. Cerri 2015-02-06 46 = 8676590a159320 Marcelo H. Cerri 2015-02-06 47 return 0; 8676590a159320 Marcelo H. Cerri 2015-02-06 48 } 8676590a159320 Marcelo H. Cerri 2015-02-06 49 = 8676590a159320 Marcelo H. Cerri 2015-02-06 50 static void p8_ae= s_exit(struct crypto_tfm *tfm) 8676590a159320 Marcelo H. Cerri 2015-02-06 51 { 8676590a159320 Marcelo H. Cerri 2015-02-06 52 struct p8_aes_ct= x *ctx =3D crypto_tfm_ctx(tfm); 8676590a159320 Marcelo H. Cerri 2015-02-06 53 = 8676590a159320 Marcelo H. Cerri 2015-02-06 54 if (ctx->fallbac= k) { 8676590a159320 Marcelo H. Cerri 2015-02-06 @55 crypto_free_cip= her(ctx->fallback); 8676590a159320 Marcelo H. Cerri 2015-02-06 56 ctx->fallback = =3D NULL; 8676590a159320 Marcelo H. Cerri 2015-02-06 57 } 8676590a159320 Marcelo H. Cerri 2015-02-06 58 } 8676590a159320 Marcelo H. Cerri 2015-02-06 59 = 8676590a159320 Marcelo H. Cerri 2015-02-06 60 static int p8_aes= _setkey(struct crypto_tfm *tfm, const u8 *key, 8676590a159320 Marcelo H. Cerri 2015-02-06 61 unsigned int = keylen) 8676590a159320 Marcelo H. Cerri 2015-02-06 62 { 8676590a159320 Marcelo H. Cerri 2015-02-06 63 int ret; 8676590a159320 Marcelo H. Cerri 2015-02-06 64 struct p8_aes_ct= x *ctx =3D crypto_tfm_ctx(tfm); 8676590a159320 Marcelo H. Cerri 2015-02-06 65 = 5f76eea88dcbe7 David Hildenbrand 2015-05-11 66 preempt_disable(= ); 8676590a159320 Marcelo H. Cerri 2015-02-06 67 pagefault_disabl= e(); 2d6f0600b2cd75 Leonidas Da Silva Barbosa 2015-07-13 68 enable_kernel_vs= x(); 8676590a159320 Marcelo H. Cerri 2015-02-06 69 ret =3D aes_p8_s= et_encrypt_key(key, keylen * 8, &ctx->enc_key); 694e0db6600c12 Eric Biggers 2019-04-09 70 ret |=3D aes_p8_= set_decrypt_key(key, keylen * 8, &ctx->dec_key); dc4fbba11e4661 Anton Blanchard 2015-10-29 71 disable_kernel_v= sx(); 8676590a159320 Marcelo H. Cerri 2015-02-06 72 pagefault_enable= (); 5f76eea88dcbe7 David Hildenbrand 2015-05-11 73 preempt_enable(); 8676590a159320 Marcelo H. Cerri 2015-02-06 74 = 694e0db6600c12 Eric Biggers 2019-04-09 @75 ret |=3D crypto_= cipher_setkey(ctx->fallback, key, keylen); 694e0db6600c12 Eric Biggers 2019-04-09 76 = 694e0db6600c12 Eric Biggers 2019-04-09 77 return ret ? -EI= NVAL : 0; 8676590a159320 Marcelo H. Cerri 2015-02-06 78 } 8676590a159320 Marcelo H. Cerri 2015-02-06 79 = 8676590a159320 Marcelo H. Cerri 2015-02-06 80 static void p8_ae= s_encrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src) 8676590a159320 Marcelo H. Cerri 2015-02-06 81 { 8676590a159320 Marcelo H. Cerri 2015-02-06 82 struct p8_aes_ct= x *ctx =3D crypto_tfm_ctx(tfm); 8676590a159320 Marcelo H. Cerri 2015-02-06 83 = 626ddb2fbe7931 Eric Biggers 2019-04-12 84 if (!crypto_simd= _usable()) { 8676590a159320 Marcelo H. Cerri 2015-02-06 @85 crypto_cipher_e= ncrypt_one(ctx->fallback, dst, src); 8676590a159320 Marcelo H. Cerri 2015-02-06 86 } else { 5f76eea88dcbe7 David Hildenbrand 2015-05-11 87 preempt_disable= (); 8676590a159320 Marcelo H. Cerri 2015-02-06 88 pagefault_disab= le(); 2d6f0600b2cd75 Leonidas Da Silva Barbosa 2015-07-13 89 enable_kernel_v= sx(); 8676590a159320 Marcelo H. Cerri 2015-02-06 90 aes_p8_encrypt(= src, dst, &ctx->enc_key); dc4fbba11e4661 Anton Blanchard 2015-10-29 91 disable_kernel_= vsx(); 8676590a159320 Marcelo H. Cerri 2015-02-06 92 pagefault_enabl= e(); 5f76eea88dcbe7 David Hildenbrand 2015-05-11 93 preempt_enable(= ); 8676590a159320 Marcelo H. Cerri 2015-02-06 94 } 8676590a159320 Marcelo H. Cerri 2015-02-06 95 } 8676590a159320 Marcelo H. Cerri 2015-02-06 96 = 8676590a159320 Marcelo H. Cerri 2015-02-06 97 static void p8_ae= s_decrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src) 8676590a159320 Marcelo H. Cerri 2015-02-06 98 { 8676590a159320 Marcelo H. Cerri 2015-02-06 99 struct p8_aes_ct= x *ctx =3D crypto_tfm_ctx(tfm); 8676590a159320 Marcelo H. Cerri 2015-02-06 100 = 626ddb2fbe7931 Eric Biggers 2019-04-12 101 if (!crypto_simd= _usable()) { 8676590a159320 Marcelo H. Cerri 2015-02-06 @102 crypto_cipher_d= ecrypt_one(ctx->fallback, dst, src); 8676590a159320 Marcelo H. Cerri 2015-02-06 103 } else { 5f76eea88dcbe7 David Hildenbrand 2015-05-11 104 preempt_disable= (); 8676590a159320 Marcelo H. Cerri 2015-02-06 105 pagefault_disab= le(); 2d6f0600b2cd75 Leonidas Da Silva Barbosa 2015-07-13 106 enable_kernel_v= sx(); 8676590a159320 Marcelo H. Cerri 2015-02-06 107 aes_p8_decrypt(= src, dst, &ctx->dec_key); dc4fbba11e4661 Anton Blanchard 2015-10-29 108 disable_kernel_= vsx(); 8676590a159320 Marcelo H. Cerri 2015-02-06 109 pagefault_enabl= e(); 5f76eea88dcbe7 David Hildenbrand 2015-05-11 110 preempt_enable(= ); 8676590a159320 Marcelo H. Cerri 2015-02-06 111 } 8676590a159320 Marcelo H. Cerri 2015-02-06 112 } 8676590a159320 Marcelo H. Cerri 2015-02-06 113 = :::::: The code at line 33 was first introduced by commit :::::: 8676590a159320a9de2a1818df14a3bac3f065a1 crypto: vmx - Adding AES ro= utines for VMX module :::::: TO: Marcelo H. Cerri :::::: CC: Herbert Xu --- 0-DAY kernel test infrastructure Open Source Technology Cen= ter https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corpor= ation --===============0244248961196150683== Content-Type: application/gzip MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.gz" 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 JGvzf/h5EXUCowEA --===============0244248961196150683==--