/*
 * WARNING: do not edit!
 * Generated by Makefile from include/openssl/ssl.h.in
 *
 * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved.
 * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved
 * Copyright 2005 Nokia. All rights reserved.
 *
 * Licensed under the Apache License 2.0 (the "License").  You may not use
 * this file except in compliance with the License.  You can obtain a copy
 * in the file LICENSE in the source distribution or at
 * https://www.openssl.org/source/license.html
 */



#ifndef OPENSSL_SSL_H
# define OPENSSL_SSL_H
# pragma once

# include <openssl/macros.h>
# ifndef OPENSSL_NO_DEPRECATED_3_0
#  define HEADER_SSL_H
# endif

# include <openssl/e_os2.h>
# include <openssl/opensslconf.h>
# include <openssl/comp.h>
# include <openssl/bio.h>
# ifndef OPENSSL_NO_DEPRECATED_1_1_0
#  include <openssl/x509.h>
#  include <openssl/crypto.h>
#  include <openssl/buffer.h>
# endif
# include <openssl/lhash.h>
# include <openssl/pem.h>
# include <openssl/hmac.h>
# include <openssl/async.h>

# include <openssl/safestack.h>
# include <openssl/symhacks.h>
# include <openssl/ct.h>
# include <openssl/sslerr.h>
# include <openssl/prov_ssl.h>

#ifdef  __cplusplus
extern "C" {
#endif

/* OpenSSL version number for ASN.1 encoding of the session information */
/*-
 * Version 0 - initial version
 * Version 1 - added the optional peer certificate
 */
# define SSL_SESSION_ASN1_VERSION 0x0001

# define SSL_MAX_SSL_SESSION_ID_LENGTH           32
# define SSL_MAX_SID_CTX_LENGTH                  32

# define SSL_MIN_RSA_MODULUS_LENGTH_IN_BYTES     (512/8)
# define SSL_MAX_KEY_ARG_LENGTH                  8
/* SSL_MAX_MASTER_KEY_LENGTH is defined in prov_ssl.h */

/* The maximum number of encrypt/decrypt pipelines we can support */
# define SSL_MAX_PIPELINES  32

/* text strings for the ciphers */

/* These are used to specify which ciphers to use and not to use */

# define SSL_TXT_LOW             "LOW"
# define SSL_TXT_MEDIUM          "MEDIUM"
# define SSL_TXT_HIGH            "HIGH"
# define SSL_TXT_FIPS            "FIPS"

# define SSL_TXT_aNULL           "aNULL"
# define SSL_TXT_eNULL           "eNULL"
# define SSL_TXT_NULL            "NULL"

# define SSL_TXT_kRSA            "kRSA"
# define SSL_TXT_kDHr            "kDHr"/* this cipher class has been removed */
# define SSL_TXT_kDHd            "kDHd"/* this cipher class has been removed */
# define SSL_TXT_kDH             "kDH"/* this cipher class has been removed */
# define SSL_TXT_kEDH            "kEDH"/* alias for kDHE */
# define SSL_TXT_kDHE            "kDHE"
# define SSL_TXT_kECDHr          "kECDHr"/* this cipher class has been removed */
# define SSL_TXT_kECDHe          "kECDHe"/* this cipher class has been removed */
# define SSL_TXT_kECDH           "kECDH"/* this cipher class has been removed */
# define SSL_TXT_kEECDH          "kEECDH"/* alias for kECDHE */
# define SSL_TXT_kECDHE          "kECDHE"
# define SSL_TXT_kPSK            "kPSK"
# define SSL_TXT_kRSAPSK         "kRSAPSK"
# define SSL_TXT_kECDHEPSK       "kECDHEPSK"
# define SSL_TXT_kDHEPSK         "kDHEPSK"
# define SSL_TXT_kGOST           "kGOST"
# define SSL_TXT_kGOST18         "kGOST18"
# define SSL_TXT_kSRP            "kSRP"

# define SSL_TXT_aRSA            "aRSA"
# define SSL_TXT_aDSS            "aDSS"
# define SSL_TXT_aDH             "aDH"/* this cipher class has been removed */
# define SSL_TXT_aECDH           "aECDH"/* this cipher class has been removed */
# define SSL_TXT_aECDSA          "aECDSA"
# define SSL_TXT_aPSK            "aPSK"
# define SSL_TXT_aGOST94         "aGOST94"
# define SSL_TXT_aGOST01         "aGOST01"
# define SSL_TXT_aGOST12         "aGOST12"
# define SSL_TXT_aGOST           "aGOST"
# define SSL_TXT_aSRP            "aSRP"

# define SSL_TXT_DSS             "DSS"
# define SSL_TXT_DH              "DH"
# define SSL_TXT_DHE             "DHE"/* same as "kDHE:-ADH" */
# define SSL_TXT_EDH             "EDH"/* alias for DHE */
# define SSL_TXT_ADH             "ADH"
# define SSL_TXT_RSA             "RSA"
# define SSL_TXT_ECDH            "ECDH"
# define SSL_TXT_EECDH           "EECDH"/* alias for ECDHE" */
# define SSL_TXT_ECDHE           "ECDHE"/* same as "kECDHE:-AECDH" */
# define SSL_TXT_AECDH           "AECDH"
# define SSL_TXT_ECDSA           "ECDSA"
# define SSL_TXT_PSK             "PSK"
# define SSL_TXT_SRP             "SRP"

# define SSL_TXT_DES             "DES"
# define SSL_TXT_3DES            "3DES"
# define SSL_TXT_RC4             "RC4"
# define SSL_TXT_RC2             "RC2"
# define SSL_TXT_IDEA            "IDEA"
# define SSL_TXT_SEED            "SEED"
# define SSL_TXT_AES128          "AES128"
# define SSL_TXT_AES256          "AES256"
# define SSL_TXT_AES             "AES"
# define SSL_TXT_AES_GCM         "AESGCM"
# define SSL_TXT_AES_CCM         "AESCCM"
# define SSL_TXT_AES_CCM_8       "AESCCM8"
# define SSL_TXT_CAMELLIA128     "CAMELLIA128"
# define SSL_TXT_CAMELLIA256     "CAMELLIA256"
# define SSL_TXT_CAMELLIA        "CAMELLIA"
# define SSL_TXT_CHACHA20        "CHACHA20"
# define SSL_TXT_GOST            "GOST89"
# define SSL_TXT_ARIA            "ARIA"
# define SSL_TXT_ARIA_GCM        "ARIAGCM"
# define SSL_TXT_ARIA128         "ARIA128"
# define SSL_TXT_ARIA256         "ARIA256"
# define SSL_TXT_GOST2012_GOST8912_GOST8912 "GOST2012-GOST8912-GOST8912"
# define SSL_TXT_CBC             "CBC"

# define SSL_TXT_MD5             "MD5"
# define SSL_TXT_SHA1            "SHA1"
# define SSL_TXT_SHA             "SHA"/* same as "SHA1" */
# define SSL_TXT_GOST94          "GOST94"
# define SSL_TXT_GOST89MAC       "GOST89MAC"
# define SSL_TXT_GOST12          "GOST12"
# define SSL_TXT_GOST89MAC12     "GOST89MAC12"
# define SSL_TXT_SHA256          "SHA256"
# define SSL_TXT_SHA384          "SHA384"

# define SSL_TXT_SSLV3           "SSLv3"
# define SSL_TXT_TLSV1           "TLSv1"
# define SSL_TXT_TLSV1_1         "TLSv1.1"
# define SSL_TXT_TLSV1_2         "TLSv1.2"

# define SSL_TXT_ALL             "ALL"

/*-
 * COMPLEMENTOF* definitions. These identifiers are used to (de-select)
 * ciphers normally not being used.
 * Example: "RC4" will activate all ciphers using RC4 including ciphers
 * without authentication, which would normally disabled by DEFAULT (due
 * the "!ADH" being part of default). Therefore "RC4:!COMPLEMENTOFDEFAULT"
 * will make sure that it is also disabled in the specific selection.
 * COMPLEMENTOF* identifiers are portable between version, as adjustments
 * to the default cipher setup will also be included here.
 *
 * COMPLEMENTOFDEFAULT does not experience the same special treatment that
 * DEFAULT gets, as only selection is being done and no sorting as needed
 * for DEFAULT.
 */
# define SSL_TXT_CMPALL          "COMPLEMENTOFALL"
# define SSL_TXT_CMPDEF          "COMPLEMENTOFDEFAULT"

/*
 * The following cipher list is used by default. It also is substituted when
 * an application-defined cipher list string starts with 'DEFAULT'.
 * This applies to ciphersuites for TLSv1.2 and below.
 * DEPRECATED IN 3.0.0, in favor of OSSL_default_cipher_list()
 * Update both macro and function simultaneously
 */
# ifndef OPENSSL_NO_DEPRECATED_3_0
#  define SSL_DEFAULT_CIPHER_LIST "ALL:!COMPLEMENTOFDEFAULT:!eNULL"
/*
 * This is the default set of TLSv1.3 ciphersuites
 * DEPRECATED IN 3.0.0, in favor of OSSL_default_ciphersuites()
 * Update both macro and function simultaneously
 */
#  define TLS_DEFAULT_CIPHERSUITES "TLS_AES_256_GCM_SHA384:" \
                                   "TLS_CHACHA20_POLY1305_SHA256:" \
                                   "TLS_AES_128_GCM_SHA256"
# endif
/*
 * As of OpenSSL 1.0.0, ssl_create_cipher_list() in ssl/ssl_ciph.c always
 * starts with a reasonable order, and all we have to do for DEFAULT is
 * throwing out anonymous and unencrypted ciphersuites! (The latter are not
 * actually enabled by ALL, but "ALL:RSA" would enable some of them.)
 */

/* Used in SSL_set_shutdown()/SSL_get_shutdown(); */
# define SSL_SENT_SHUTDOWN       1
# define SSL_RECEIVED_SHUTDOWN   2

#ifdef __cplusplus
}
#endif

#ifdef  __cplusplus
extern "C" {
#endif

# define SSL_FILETYPE_ASN1       X509_FILETYPE_ASN1
# define SSL_FILETYPE_PEM        X509_FILETYPE_PEM

/*
 * This is needed to stop compilers complaining about the 'struct ssl_st *'
 * function parameters used to prototype callbacks in SSL_CTX.
 */
typedef struct ssl_st *ssl_crock_st;
typedef struct tls_session_ticket_ext_st TLS_SESSION_TICKET_EXT;
typedef struct ssl_method_st SSL_METHOD;
typedef struct ssl_cipher_st SSL_CIPHER;
typedef struct ssl_session_st SSL_SESSION;
typedef struct tls_sigalgs_st TLS_SIGALGS;
typedef struct ssl_conf_ctx_st SSL_CONF_CTX;
typedef struct ssl_comp_st SSL_COMP;

STACK_OF(SSL_CIPHER);
STACK_OF(SSL_COMP);

/* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/
typedef struct srtp_protection_profile_st {
    const char *name;
    unsigned long id;
} SRTP_PROTECTION_PROFILE;
SKM_DEFINE_STACK_OF_INTERNAL(SRTP_PROTECTION_PROFILE, SRTP_PROTECTION_PROFILE, SRTP_PROTECTION_PROFILE)
#define sk_SRTP_PROTECTION_PROFILE_num(sk) OPENSSL_sk_num(ossl_check_const_SRTP_PROTECTION_PROFILE_sk_type(sk))
#define sk_SRTP_PROTECTION_PROFILE_value(sk, idx) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_value(ossl_check_const_SRTP_PROTECTION_PROFILE_sk_type(sk), (idx)))
#define sk_SRTP_PROTECTION_PROFILE_new(cmp) ((STACK_OF(SRTP_PROTECTION_PROFILE) *)OPENSSL_sk_new(ossl_check_SRTP_PROTECTION_PROFILE_compfunc_type(cmp)))
#define sk_SRTP_PROTECTION_PROFILE_new_null() ((STACK_OF(SRTP_PROTECTION_PROFILE) *)OPENSSL_sk_new_null())
#define sk_SRTP_PROTECTION_PROFILE_new_reserve(cmp, n) ((STACK_OF(SRTP_PROTECTION_PROFILE) *)OPENSSL_sk_new_reserve(ossl_check_SRTP_PROTECTION_PROFILE_compfunc_type(cmp), (n)))
#define sk_SRTP_PROTECTION_PROFILE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), (n))
#define sk_SRTP_PROTECTION_PROFILE_free(sk) OPENSSL_sk_free(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk))
#define sk_SRTP_PROTECTION_PROFILE_zero(sk) OPENSSL_sk_zero(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk))
#define sk_SRTP_PROTECTION_PROFILE_delete(sk, i) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_delete(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), (i)))
#define sk_SRTP_PROTECTION_PROFILE_delete_ptr(sk, ptr) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_delete_ptr(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr)))
#define sk_SRTP_PROTECTION_PROFILE_push(sk, ptr) OPENSSL_sk_push(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr))
#define sk_SRTP_PROTECTION_PROFILE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr))
#define sk_SRTP_PROTECTION_PROFILE_pop(sk) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_pop(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk)))
#define sk_SRTP_PROTECTION_PROFILE_shift(sk) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_shift(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk)))
#define sk_SRTP_PROTECTION_PROFILE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk),ossl_check_SRTP_PROTECTION_PROFILE_freefunc_type(freefunc))
#define sk_SRTP_PROTECTION_PROFILE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr), (idx))
#define sk_SRTP_PROTECTION_PROFILE_set(sk, idx, ptr) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_set(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), (idx), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr)))
#define sk_SRTP_PROTECTION_PROFILE_find(sk, ptr) OPENSSL_sk_find(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr))
#define sk_SRTP_PROTECTION_PROFILE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr))
#define sk_SRTP_PROTECTION_PROFILE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr), pnum)
#define sk_SRTP_PROTECTION_PROFILE_sort(sk) OPENSSL_sk_sort(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk))
#define sk_SRTP_PROTECTION_PROFILE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SRTP_PROTECTION_PROFILE_sk_type(sk))
#define sk_SRTP_PROTECTION_PROFILE_dup(sk) ((STACK_OF(SRTP_PROTECTION_PROFILE) *)OPENSSL_sk_dup(ossl_check_const_SRTP_PROTECTION_PROFILE_sk_type(sk)))
#define sk_SRTP_PROTECTION_PROFILE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SRTP_PROTECTION_PROFILE) *)OPENSSL_sk_deep_copy(ossl_check_const_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_copyfunc_type(copyfunc), ossl_check_SRTP_PROTECTION_PROFILE_freefunc_type(freefunc)))
#define sk_SRTP_PROTECTION_PROFILE_set_cmp_func(sk, cmp) ((sk_SRTP_PROTECTION_PROFILE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_compfunc_type(cmp)))



typedef int (*tls_session_ticket_ext_cb_fn)(SSL *s, const unsigned char *data,
                                            int len, void *arg);
typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len,
                                        STACK_OF(SSL_CIPHER) *peer_ciphers,
                                        const SSL_CIPHER **cipher, void *arg);

/* Extension context codes */
/* This extension is only allowed in TLS */
#define SSL_EXT_TLS_ONLY                        0x0001
/* This extension is only allowed in DTLS */
#define SSL_EXT_DTLS_ONLY                       0x0002
/* Some extensions may be allowed in DTLS but we don't implement them for it */
#define SSL_EXT_TLS_IMPLEMENTATION_ONLY         0x0004
/* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */
#define SSL_EXT_SSL3_ALLOWED                    0x0008
/* Extension is only defined for TLS1.2 and below */
#define SSL_EXT_TLS1_2_AND_BELOW_ONLY           0x0010
/* Extension is only defined for TLS1.3 and above */
#define SSL_EXT_TLS1_3_ONLY                     0x0020
/* Ignore this extension during parsing if we are resuming */
#define SSL_EXT_IGNORE_ON_RESUMPTION            0x0040
#define SSL_EXT_CLIENT_HELLO                    0x0080
/* Really means TLS1.2 or below */
#define SSL_EXT_TLS1_2_SERVER_HELLO             0x0100
#define SSL_EXT_TLS1_3_SERVER_HELLO             0x0200
#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS     0x0400
#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST      0x0800
#define SSL_EXT_TLS1_3_CERTIFICATE              0x1000
#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET       0x2000
#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST      0x4000

/* Typedefs for handling custom extensions */

typedef int (*custom_ext_add_cb)(SSL *s, unsigned int ext_type,
                                 const unsigned char **out, size_t *outlen,
                                 int *al, void *add_arg);

typedef void (*custom_ext_free_cb)(SSL *s, unsigned int ext_type,
                                   const unsigned char *out, void *add_arg);

typedef int (*custom_ext_parse_cb)(SSL *s, unsigned int ext_type,
                                   const unsigned char *in, size_t inlen,
                                   int *al, void *parse_arg);


typedef int (*SSL_custom_ext_add_cb_ex)(SSL *s, unsigned int ext_type,
                                        unsigned int context,
                                        const unsigned char **out,
                                        size_t *outlen, X509 *x,
                                        size_t chainidx,
                                        int *al, void *add_arg);

typedef void (*SSL_custom_ext_free_cb_ex)(SSL *s, unsigned int ext_type,
                                          unsigned int context,
                                          const unsigned char *out,
                                          void *add_arg);

typedef int (*SSL_custom_ext_parse_cb_ex)(SSL *s, unsigned int ext_type,
                                          unsigned int context,
                                          const unsigned char *in,
                                          size_t inlen, X509 *x,
                                          size_t chainidx,
                                          int *al, void *parse_arg);

/* Typedef for verification callback */
typedef int (*SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx);

/* Typedef for SSL async callback */
typedef int (*SSL_async_callback_fn)(SSL *s, void *arg);

#define SSL_OP_BIT(n)  ((uint64_t)1 << (uint64_t)n)

/*
 * SSL/TLS connection options.
 */
    /* Disable Extended master secret */
# define SSL_OP_NO_EXTENDED_MASTER_SECRET                SSL_OP_BIT(0)
    /* Cleanse plaintext copies of data delivered to the application */
# define SSL_OP_CLEANSE_PLAINTEXT                        SSL_OP_BIT(1)
    /* Allow initial connection to servers that don't support RI */
# define SSL_OP_LEGACY_SERVER_CONNECT                    SSL_OP_BIT(2)
    /* Enable support for Kernel TLS */
# define SSL_OP_ENABLE_KTLS                              SSL_OP_BIT(3)
# define SSL_OP_TLSEXT_PADDING                           SSL_OP_BIT(4)
# define SSL_OP_SAFARI_ECDHE_ECDSA_BUG                   SSL_OP_BIT(6)
# define SSL_OP_IGNORE_UNEXPECTED_EOF                    SSL_OP_BIT(7)
# define SSL_OP_ALLOW_CLIENT_RENEGOTIATION               SSL_OP_BIT(8)
# define SSL_OP_DISABLE_TLSEXT_CA_NAMES                  SSL_OP_BIT(9)
    /* In TLSv1.3 allow a non-(ec)dhe based kex_mode */
# define SSL_OP_ALLOW_NO_DHE_KEX                         SSL_OP_BIT(10)
    /*
     * Disable SSL 3.0/TLS 1.0 CBC vulnerability workaround that was added
     * in OpenSSL 0.9.6d.  Usually (depending on the application protocol)
     * the workaround is not needed.  Unfortunately some broken SSL/TLS
     * implementations cannot handle it at all, which is why we include it
     * in SSL_OP_ALL. Added in 0.9.6e
     */
# define SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS              SSL_OP_BIT(11)
    /* DTLS options */
# define SSL_OP_NO_QUERY_MTU                             SSL_OP_BIT(12)
    /* Turn on Cookie Exchange (on relevant for servers) */
# define SSL_OP_COOKIE_EXCHANGE                          SSL_OP_BIT(13)
    /* Don't use RFC4507 ticket extension */
# define SSL_OP_NO_TICKET                                SSL_OP_BIT(14)
# ifndef OPENSSL_NO_DTLS1_METHOD
    /*
     * Use Cisco's version identifier of DTLS_BAD_VER
     * (only with deprecated DTLSv1_client_method())
     */
#  define SSL_OP_CISCO_ANYCONNECT                        SSL_OP_BIT(15)
# endif
    /* As server, disallow session resumption on renegotiation */
# define SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION   SSL_OP_BIT(16)
    /* Don't use compression even if supported */
# define SSL_OP_NO_COMPRESSION                           SSL_OP_BIT(17)
    /* Permit unsafe legacy renegotiation */
# define SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION        SSL_OP_BIT(18)
    /* Disable encrypt-then-mac */
# define SSL_OP_NO_ENCRYPT_THEN_MAC                      SSL_OP_BIT(19)
    /*
     * Enable TLSv1.3 Compatibility mode. This is on by default. A future
     * version of OpenSSL may have this disabled by default.
     */
# define SSL_OP_ENABLE_MIDDLEBOX_COMPAT                  SSL_OP_BIT(20)
    /*
     * Prioritize Chacha20Poly1305 when client does.
     * Modifies SSL_OP_CIPHER_SERVER_PREFERENCE
     */
# define SSL_OP_PRIORITIZE_CHACHA                        SSL_OP_BIT(21)
    /*
     * Set on servers to choose the cipher according to server's preferences.
     */
# define SSL_OP_CIPHER_SERVER_PREFERENCE                 SSL_OP_BIT(22)
    /*
     * If set, a server will allow a client to issue a SSLv3.0 version
     * number as latest version supported in the premaster secret, even when
     * TLSv1.0 (version 3.1) was announced in the client hello. Normally
     * this is forbidden to prevent version rollback attacks.
     */
# define SSL_OP_TLS_ROLLBACK_BUG                         SSL_OP_BIT(23)
    /*
     * Switches off automatic TLSv1.3 anti-replay protection for early data.
     * This is a server-side option only (no effect on the client).
     */
# define SSL_OP_NO_ANTI_REPLAY                           SSL_OP_BIT(24)
# define SSL_OP_NO_SSLv3                                 SSL_OP_BIT(25)
# define SSL_OP_NO_TLSv1                                 SSL_OP_BIT(26)
# define SSL_OP_NO_TLSv1_2                               SSL_OP_BIT(27)
# define SSL_OP_NO_TLSv1_1                               SSL_OP_BIT(28)
# define SSL_OP_NO_TLSv1_3                               SSL_OP_BIT(29)
# define SSL_OP_NO_DTLSv1                                SSL_OP_BIT(26)
# define SSL_OP_NO_DTLSv1_2                              SSL_OP_BIT(27)
    /* Disallow all renegotiation */
# define SSL_OP_NO_RENEGOTIATION                         SSL_OP_BIT(30)
    /*
     * Make server add server-hello extension from early version of
     * cryptopro draft, when GOST ciphersuite is negotiated. Required for
     * interoperability with CryptoPro CSP 3.x
     */
# define SSL_OP_CRYPTOPRO_TLSEXT_BUG                     SSL_OP_BIT(31)

/*
 * Option "collections."
 */
# define SSL_OP_NO_SSL_MASK \
        ( SSL_OP_NO_SSLv3 | SSL_OP_NO_TLSv1 | SSL_OP_NO_TLSv1_1 \
          | SSL_OP_NO_TLSv1_2 | SSL_OP_NO_TLSv1_3 )
# define SSL_OP_NO_DTLS_MASK \
        ( SSL_OP_NO_DTLSv1 | SSL_OP_NO_DTLSv1_2 )

/* Various bug workarounds that should be rather harmless. */
# define SSL_OP_ALL \
        ( SSL_OP_CRYPTOPRO_TLSEXT_BUG | SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS \
          | SSL_OP_TLSEXT_PADDING | SSL_OP_SAFARI_ECDHE_ECDSA_BUG )

/*
 * OBSOLETE OPTIONS retained for compatibility
 */

# define SSL_OP_MICROSOFT_SESS_ID_BUG                    0x0
# define SSL_OP_NETSCAPE_CHALLENGE_BUG                   0x0
# define SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG         0x0
# define SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG              0x0
# define SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER               0x0
# define SSL_OP_MSIE_SSLV2_RSA_PADDING                   0x0
# define SSL_OP_SSLEAY_080_CLIENT_DH_BUG                 0x0
# define SSL_OP_TLS_D5_BUG                               0x0
# define SSL_OP_TLS_BLOCK_PADDING_BUG                    0x0
# define SSL_OP_SINGLE_ECDH_USE                          0x0
# define SSL_OP_SINGLE_DH_USE                            0x0
# define SSL_OP_EPHEMERAL_RSA                            0x0
# define SSL_OP_NO_SSLv2                                 0x0
# define SSL_OP_PKCS1_CHECK_1                            0x0
# define SSL_OP_PKCS1_CHECK_2                            0x0
# define SSL_OP_NETSCAPE_CA_DN_BUG                       0x0
# define SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG          0x0

/*
 * Allow SSL_write(..., n) to return r with 0 < r < n (i.e. report success
 * when just a single record has been written):
 */
# define SSL_MODE_ENABLE_PARTIAL_WRITE       0x00000001U
/*
 * Make it possible to retry SSL_write() with changed buffer location (buffer
 * contents must stay the same!); this is not the default to avoid the
 * misconception that non-blocking SSL_write() behaves like non-blocking
 * write():
 */
# define SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER 0x00000002U
/*
 * Never bother the application with retries if the transport is blocking:
 */
# define SSL_MODE_AUTO_RETRY 0x00000004U
/* Don't attempt to automatically build certificate chain */
# define SSL_MODE_NO_AUTO_CHAIN 0x00000008U
/*
 * Save RAM by releasing read and write buffers when they're empty. (SSL3 and
 * TLS only.) Released buffers are freed.
 */
# define SSL_MODE_RELEASE_BUFFERS 0x00000010U
/*
 * Send the current time in the Random fields of the ClientHello and
 * ServerHello records for compatibility with hypothetical implementations
 * that require it.
 */
# define SSL_MODE_SEND_CLIENTHELLO_TIME 0x00000020U
# define SSL_MODE_SEND_SERVERHELLO_TIME 0x00000040U
/*
 * Send TLS_FALLBACK_SCSV in the ClientHello. To be set only by applications
 * that reconnect with a downgraded protocol version; see
 * draft-ietf-tls-downgrade-scsv-00 for details. DO NOT ENABLE THIS if your
 * application attempts a normal handshake. Only use this in explicit
 * fallback retries, following the guidance in
 * draft-ietf-tls-downgrade-scsv-00.
 */
# define SSL_MODE_SEND_FALLBACK_SCSV 0x00000080U
/*
 * Support Asynchronous operation
 */
# define SSL_MODE_ASYNC 0x00000100U

/*
 * When using DTLS/SCTP, include the terminating zero in the label
 * used for computing the endpoint-pair shared secret. Required for
 * interoperability with implementations having this bug like these
 * older version of OpenSSL:
 * - OpenSSL 1.0.0 series
 * - OpenSSL 1.0.1 series
 * - OpenSSL 1.0.2 series
 * - OpenSSL 1.1.0 series
 * - OpenSSL 1.1.1 and 1.1.1a
 */
# define SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG 0x00000400U

/* Cert related flags */
/*
 * Many implementations ignore some aspects of the TLS standards such as
 * enforcing certificate chain algorithms. When this is set we enforce them.
 */
# define SSL_CERT_FLAG_TLS_STRICT                0x00000001U

/* Suite B modes, takes same values as certificate verify flags */
# define SSL_CERT_FLAG_SUITEB_128_LOS_ONLY       0x10000
/* Suite B 192 bit only mode */
# define SSL_CERT_FLAG_SUITEB_192_LOS            0x20000
/* Suite B 128 bit mode allowing 192 bit algorithms */
# define SSL_CERT_FLAG_SUITEB_128_LOS            0x30000

/* Perform all sorts of protocol violations for testing purposes */
# define SSL_CERT_FLAG_BROKEN_PROTOCOL           0x10000000

/* Flags for building certificate chains */
/* Treat any existing certificates as untrusted CAs */
# define SSL_BUILD_CHAIN_FLAG_UNTRUSTED          0x1
/* Don't include root CA in chain */
# define SSL_BUILD_CHAIN_FLAG_NO_ROOT            0x2
/* Just check certificates already there */
# define SSL_BUILD_CHAIN_FLAG_CHECK              0x4
/* Ignore verification errors */
# define SSL_BUILD_CHAIN_FLAG_IGNORE_ERROR       0x8
/* Clear verification errors from queue */
# define SSL_BUILD_CHAIN_FLAG_CLEAR_ERROR        0x10

/* Flags returned by SSL_check_chain */
/* Certificate can be used with this session */
# define CERT_PKEY_VALID         0x1
/* Certificate can also be used for signing */
# define CERT_PKEY_SIGN          0x2
/* EE certificate signing algorithm OK */
# define CERT_PKEY_EE_SIGNATURE  0x10
/* CA signature algorithms OK */
# define CERT_PKEY_CA_SIGNATURE  0x20
/* EE certificate parameters OK */
# define CERT_PKEY_EE_PARAM      0x40
/* CA certificate parameters OK */
# define CERT_PKEY_CA_PARAM      0x80
/* Signing explicitly allowed as opposed to SHA1 fallback */
# define CERT_PKEY_EXPLICIT_SIGN 0x100
/* Client CA issuer names match (always set for server cert) */
# define CERT_PKEY_ISSUER_NAME   0x200
/* Cert type matches client types (always set for server cert) */
# define CERT_PKEY_CERT_TYPE     0x400
/* Cert chain suitable to Suite B */
# define CERT_PKEY_SUITEB        0x800

# define SSL_CONF_FLAG_CMDLINE           0x1
# define SSL_CONF_FLAG_FILE              0x2
# define SSL_CONF_FLAG_CLIENT            0x4
# define SSL_CONF_FLAG_SERVER            0x8
# define SSL_CONF_FLAG_SHOW_ERRORS       0x10
# define SSL_CONF_FLAG_CERTIFICATE       0x20
# define SSL_CONF_FLAG_REQUIRE_PRIVATE   0x40
/* Configuration value types */
# define SSL_CONF_TYPE_UNKNOWN           0x0
# define SSL_CONF_TYPE_STRING            0x1
# define SSL_CONF_TYPE_FILE              0x2
# define SSL_CONF_TYPE_DIR               0x3
# define SSL_CONF_TYPE_NONE              0x4
# define SSL_CONF_TYPE_STORE             0x5

/* Maximum length of the application-controlled segment of a a TLSv1.3 cookie */
# define SSL_COOKIE_LENGTH                       4096

/*
 * Note: SSL[_CTX]_set_{options,mode} use |= op on the previous value, they
 * cannot be used to clear bits.
 */

uint64_t SSL_CTX_get_options(const SSL_CTX *ctx);
uint64_t SSL_get_options(const SSL *s);
uint64_t SSL_CTX_clear_options(SSL_CTX *ctx, uint64_t op);
uint64_t SSL_clear_options(SSL *s, uint64_t op);
uint64_t SSL_CTX_set_options(SSL_CTX *ctx, uint64_t op);
uint64_t SSL_set_options(SSL *s, uint64_t op);

# define SSL_CTX_set_mode(ctx,op) \
        SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,(op),NULL)
# define SSL_CTX_clear_mode(ctx,op) \
        SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_MODE,(op),NULL)
# define SSL_CTX_get_mode(ctx) \
        SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,0,NULL)
# define SSL_clear_mode(ssl,op) \
        SSL_ctrl((ssl),SSL_CTRL_CLEAR_MODE,(op),NULL)
# define SSL_set_mode(ssl,op) \
        SSL_ctrl((ssl),SSL_CTRL_MODE,(op),NULL)
# define SSL_get_mode(ssl) \
        SSL_ctrl((ssl),SSL_CTRL_MODE,0,NULL)
# define SSL_set_mtu(ssl, mtu) \
        SSL_ctrl((ssl),SSL_CTRL_SET_MTU,(mtu),NULL)
# define DTLS_set_link_mtu(ssl, mtu) \
        SSL_ctrl((ssl),DTLS_CTRL_SET_LINK_MTU,(mtu),NULL)
# define DTLS_get_link_min_mtu(ssl) \
        SSL_ctrl((ssl),DTLS_CTRL_GET_LINK_MIN_MTU,0,NULL)

# define SSL_get_secure_renegotiation_support(ssl) \
        SSL_ctrl((ssl), SSL_CTRL_GET_RI_SUPPORT, 0, NULL)

# define SSL_CTX_set_cert_flags(ctx,op) \
        SSL_CTX_ctrl((ctx),SSL_CTRL_CERT_FLAGS,(op),NULL)
# define SSL_set_cert_flags(s,op) \
        SSL_ctrl((s),SSL_CTRL_CERT_FLAGS,(op),NULL)
# define SSL_CTX_clear_cert_flags(ctx,op) \
        SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_CERT_FLAGS,(op),NULL)
# define SSL_clear_cert_flags(s,op) \
        SSL_ctrl((s),SSL_CTRL_CLEAR_CERT_FLAGS,(op),NULL)

void SSL_CTX_set_msg_callback(SSL_CTX *ctx,
                              void (*cb) (int write_p, int version,
                                          int content_type, const void *buf,
                                          size_t len, SSL *ssl, void *arg));
void SSL_set_msg_callback(SSL *ssl,
                          void (*cb) (int write_p, int version,
                                      int content_type, const void *buf,
                                      size_t len, SSL *ssl, void *arg));
# define SSL_CTX_set_msg_callback_arg(ctx, arg) SSL_CTX_ctrl((ctx), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg))
# define SSL_set_msg_callback_arg(ssl, arg) SSL_ctrl((ssl), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg))

# define SSL_get_extms_support(s) \
        SSL_ctrl((s),SSL_CTRL_GET_EXTMS_SUPPORT,0,NULL)

# ifndef OPENSSL_NO_SRP
/* see tls_srp.c */
#  ifndef OPENSSL_NO_DEPRECATED_3_0
OSSL_DEPRECATEDIN_3_0 __owur int SSL_SRP_CTX_init(SSL *s);
OSSL_DEPRECATEDIN_3_0 __owur int SSL_CTX_SRP_CTX_init(SSL_CTX *ctx);
OSSL_DEPRECATEDIN_3_0 int SSL_SRP_CTX_free(SSL *ctx);
OSSL_DEPRECATEDIN_3_0 int SSL_CTX_SRP_CTX_free(SSL_CTX *ctx);
OSSL_DEPRECATEDIN_3_0 __owur int SSL_srp_server_param_with_username(SSL *s,
                                                                    int *ad);
OSSL_DEPRECATEDIN_3_0 __owur int SRP_Calc_A_param(SSL *s);
#  endif
# endif

/* 100k max cert list */
# define SSL_MAX_CERT_LIST_DEFAULT (1024*100)

# define SSL_SESSION_CACHE_MAX_SIZE_DEFAULT      (1024*20)

/*
 * This callback type is used inside SSL_CTX, SSL, and in the functions that
 * set them. It is used to override the generation of SSL/TLS session IDs in
 * a server. Return value should be zero on an error, non-zero to proceed.
 * Also, callbacks should themselves check if the id they generate is unique
 * otherwise the SSL handshake will fail with an error - callbacks can do
 * this using the 'ssl' value they're passed by;
 * SSL_has_matching_session_id(ssl, id, *id_len) The length value passed in
 * is set at the maximum size the session ID can be. In SSLv3/TLSv1 it is 32
 * bytes. The callback can alter this length to be less if desired. It is
 * also an error for the callback to set the size to zero.
 */
typedef int (*GEN_SESSION_CB) (SSL *ssl, unsigned char *id,
                               unsigned int *id_len);

# define SSL_SESS_CACHE_OFF                      0x0000
# define SSL_SESS_CACHE_CLIENT                   0x0001
# define SSL_SESS_CACHE_SERVER                   0x0002
# define SSL_SESS_CACHE_BOTH     (SSL_SESS_CACHE_CLIENT|SSL_SESS_CACHE_SERVER)
# define SSL_SESS_CACHE_NO_AUTO_CLEAR            0x0080
/* enough comments already ... see SSL_CTX_set_session_cache_mode(3) */
# define SSL_SESS_CACHE_NO_INTERNAL_LOOKUP       0x0100
# define SSL_SESS_CACHE_NO_INTERNAL_STORE        0x0200
# define SSL_SESS_CACHE_NO_INTERNAL \
        (SSL_SESS_CACHE_NO_INTERNAL_LOOKUP|SSL_SESS_CACHE_NO_INTERNAL_STORE)
# define SSL_SESS_CACHE_UPDATE_TIME              0x0400

LHASH_OF(SSL_SESSION) *SSL_CTX_sessions(SSL_CTX *ctx);
# define SSL_CTX_sess_number(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_NUMBER,0,NULL)
# define SSL_CTX_sess_connect(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT,0,NULL)
# define SSL_CTX_sess_connect_good(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_GOOD,0,NULL)
# define SSL_CTX_sess_connect_renegotiate(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_RENEGOTIATE,0,NULL)
# define SSL_CTX_sess_accept(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT,0,NULL)
# define SSL_CTX_sess_accept_renegotiate(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_RENEGOTIATE,0,NULL)
# define SSL_CTX_sess_accept_good(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_GOOD,0,NULL)
# define SSL_CTX_sess_hits(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_HIT,0,NULL)
# define SSL_CTX_sess_cb_hits(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CB_HIT,0,NULL)
# define SSL_CTX_sess_misses(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_MISSES,0,NULL)
# define SSL_CTX_sess_timeouts(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_TIMEOUTS,0,NULL)
# define SSL_CTX_sess_cache_full(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CACHE_FULL,0,NULL)

void SSL_CTX_sess_set_new_cb(SSL_CTX *ctx,
                             int (*new_session_cb) (struct ssl_st *ssl,
                                                    SSL_SESSION *sess));
int (*SSL_CTX_sess_get_new_cb(SSL_CTX *ctx)) (struct ssl_st *ssl,
                                              SSL_SESSION *sess);
void SSL_CTX_sess_set_remove_cb(SSL_CTX *ctx,
                                void (*remove_session_cb) (struct ssl_ctx_st
                                                           *ctx,
                                                           SSL_SESSION *sess));
void (*SSL_CTX_sess_get_remove_cb(SSL_CTX *ctx)) (struct ssl_ctx_st *ctx,
                                                  SSL_SESSION *sess);
void SSL_CTX_sess_set_get_cb(SSL_CTX *ctx,
                             SSL_SESSION *(*get_session_cb) (struct ssl_st
                                                             *ssl,
                                                             const unsigned char
                                                             *data, int len,
                                                             int *copy));
SSL_SESSION *(*SSL_CTX_sess_get_get_cb(SSL_CTX *ctx)) (struct ssl_st *ssl,
                                                       const unsigned char *data,
                                                       int len, int *copy);
void SSL_CTX_set_info_callback(SSL_CTX *ctx,
                               void (*cb) (const SSL *ssl, int type, int val));
void (*SSL_CTX_get_info_callback(SSL_CTX *ctx)) (const SSL *ssl, int type,
                                                 int val);
void SSL_CTX_set_client_cert_cb(SSL_CTX *ctx,
                                int (*client_cert_cb) (SSL *ssl, X509 **x509,
                                                       EVP_PKEY **pkey));
int (*SSL_CTX_get_client_cert_cb(SSL_CTX *ctx)) (SSL *ssl, X509 **x509,
                                                 EVP_PKEY **pkey);
# ifndef OPENSSL_NO_ENGINE
__owur int SSL_CTX_set_client_cert_engine(SSL_CTX *ctx, ENGINE *e);
# endif
void SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx,
                                    int (*app_gen_cookie_cb) (SSL *ssl,
                                                              unsigned char
                                                              *cookie,
                                                              unsigned int
                                                              *cookie_len));
void SSL_CTX_set_cookie_verify_cb(SSL_CTX *ctx,
                                  int (*app_verify_cookie_cb) (SSL *ssl,
                                                               const unsigned
                                                               char *cookie,
                                                               unsigned int
                                                               cookie_len));

void SSL_CTX_set_stateless_cookie_generate_cb(
    SSL_CTX *ctx,
    int (*gen_stateless_cookie_cb) (SSL *ssl,
                                    unsigned char *cookie,
                                    size_t *cookie_len));
void SSL_CTX_set_stateless_cookie_verify_cb(
    SSL_CTX *ctx,
    int (*verify_stateless_cookie_cb) (SSL *ssl,
                                       const unsigned char *cookie,
                                       size_t cookie_len));
# ifndef OPENSSL_NO_NEXTPROTONEG

typedef int (*SSL_CTX_npn_advertised_cb_func)(SSL *ssl,
                                              const unsigned char **out,
                                              unsigned int *outlen,
                                              void *arg);
void SSL_CTX_set_next_protos_advertised_cb(SSL_CTX *s,
                                           SSL_CTX_npn_advertised_cb_func cb,
                                           void *arg);
#  define SSL_CTX_set_npn_advertised_cb SSL_CTX_set_next_protos_advertised_cb

typedef int (*SSL_CTX_npn_select_cb_func)(SSL *s,
                                          unsigned char **out,
                                          unsigned char *outlen,
                                          const unsigned char *in,
                                          unsigned int inlen,
                                          void *arg);
void SSL_CTX_set_next_proto_select_cb(SSL_CTX *s,
                                      SSL_CTX_npn_select_cb_func cb,
                                      void *arg);
#  define SSL_CTX_set_npn_select_cb SSL_CTX_set_next_proto_select_cb

void SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data,
                                    unsigned *len);
#  define SSL_get0_npn_negotiated SSL_get0_next_proto_negotiated
# endif

__owur int SSL_select_next_proto(unsigned char **out, unsigned char *outlen,
                                 const unsigned char *in, unsigned int inlen,
                                 const unsigned char *client,
                                 unsigned int client_len);

# define OPENSSL_NPN_UNSUPPORTED 0
# define OPENSSL_NPN_NEGOTIATED  1
# define OPENSSL_NPN_NO_OVERLAP  2

__owur int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const unsigned char *protos,
                                   unsigned int protos_len);
__owur int SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos,
                               unsigned int protos_len);
typedef int (*SSL_CTX_alpn_select_cb_func)(SSL *ssl,
                                           const unsigned char **out,
                                           unsigned char *outlen,
                                           const unsigned char *in,
                                           unsigned int inlen,
                                           void *arg);
void SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx,
                                SSL_CTX_alpn_select_cb_func cb,
                                void *arg);
void SSL_get0_alpn_selected(const SSL *ssl, const unsigned char **data,
                            unsigned int *len);

# ifndef OPENSSL_NO_PSK
/*
 * the maximum length of the buffer given to callbacks containing the
 * resulting identity/psk
 */
#  define PSK_MAX_IDENTITY_LEN 256
#  define PSK_MAX_PSK_LEN 512
typedef unsigned int (*SSL_psk_client_cb_func)(SSL *ssl,
                                               const char *hint,
                                               char *identity,
                                               unsigned int max_identity_len,
                                               unsigned char *psk,
                                               unsigned int max_psk_len);
void SSL_CTX_set_psk_client_callback(SSL_CTX *ctx, SSL_psk_client_cb_func cb);
void SSL_set_psk_client_callback(SSL *ssl, SSL_psk_client_cb_func cb);

typedef unsigned int (*SSL_psk_server_cb_func)(SSL *ssl,
                                               const char *identity,
                                               unsigned char *psk,
                                               unsigned int max_psk_len);
void SSL_CTX_set_psk_server_callback(SSL_CTX *ctx, SSL_psk_server_cb_func cb);
void SSL_set_psk_server_callback(SSL *ssl, SSL_psk_server_cb_func cb);

__owur int SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *identity_hint);
__owur int SSL_use_psk_identity_hint(SSL *s, const char *identity_hint);
const char *SSL_get_psk_identity_hint(const SSL *s);
const char *SSL_get_psk_identity(const SSL *s);
# endif

typedef int (*SSL_psk_find_session_cb_func)(SSL *ssl,
                                            const unsigned char *identity,
                                            size_t identity_len,
                                            SSL_SESSION **sess);
typedef int (*SSL_psk_use_session_cb_func)(SSL *ssl, const EVP_MD *md,
                                           const unsigned char **id,
                                           size_t *idlen,
                                           SSL_SESSION **sess);

void SSL_set_psk_find_session_callback(SSL *s, SSL_psk_find_session_cb_func cb);
void SSL_CTX_set_psk_find_session_callback(SSL_CTX *ctx,
                                           SSL_psk_find_session_cb_func cb);
void SSL_set_psk_use_session_callback(SSL *s, SSL_psk_use_session_cb_func cb);
void SSL_CTX_set_psk_use_session_callback(SSL_CTX *ctx,
                                          SSL_psk_use_session_cb_func cb);

/* Register callbacks to handle custom TLS Extensions for client or server. */

__owur int SSL_CTX_has_client_custom_ext(const SSL_CTX *ctx,
                                         unsigned int ext_type);

__owur int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx,
                                         unsigned int ext_type,
                                         custom_ext_add_cb add_cb,
                                         custom_ext_free_cb free_cb,
                                         void *add_arg,
                                         custom_ext_parse_cb parse_cb,
                                         void *parse_arg);

__owur int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx,
                                         unsigned int ext_type,
                                         custom_ext_add_cb add_cb,
                                         custom_ext_free_cb free_cb,
                                         void *add_arg,
                                         custom_ext_parse_cb parse_cb,
                                         void *parse_arg);

__owur int SSL_CTX_add_custom_ext(SSL_CTX *ctx, unsigned int ext_type,
                                  unsigned int context,
                                  SSL_custom_ext_add_cb_ex add_cb,
                                  SSL_custom_ext_free_cb_ex free_cb,
                                  void *add_arg,
                                  SSL_custom_ext_parse_cb_ex parse_cb,
                                  void *parse_arg);

__owur int SSL_extension_supported(unsigned int ext_type);

# define SSL_NOTHING            1
# define SSL_WRITING            2
# define SSL_READING            3
# define SSL_X509_LOOKUP        4
# define SSL_ASYNC_PAUSED       5
# define SSL_ASYNC_NO_JOBS      6
# define SSL_CLIENT_HELLO_CB    7
# define SSL_RETRY_VERIFY       8

/* These will only be used when doing non-blocking IO */
# define SSL_want_nothing(s)         (SSL_want(s) == SSL_NOTHING)
# define SSL_want_read(s)            (SSL_want(s) == SSL_READING)
# define SSL_want_write(s)           (SSL_want(s) == SSL_WRITING)
# define SSL_want_x509_lookup(s)     (SSL_want(s) == SSL_X509_LOOKUP)
# define SSL_want_retry_verify(s)    (SSL_want(s) == SSL_RETRY_VERIFY)
# define SSL_want_async(s)           (SSL_want(s) == SSL_ASYNC_PAUSED)
# define SSL_want_async_job(s)       (SSL_want(s) == SSL_ASYNC_NO_JOBS)
# define SSL_want_client_hello_cb(s) (SSL_want(s) == SSL_CLIENT_HELLO_CB)

# define SSL_MAC_FLAG_READ_MAC_STREAM 1
# define SSL_MAC_FLAG_WRITE_MAC_STREAM 2
# define SSL_MAC_FLAG_READ_MAC_TLSTREE 4
# define SSL_MAC_FLAG_WRITE_MAC_TLSTREE 8

/*
 * A callback for logging out TLS key material. This callback should log out
 * |line| followed by a newline.
 */
typedef void (*SSL_CTX_keylog_cb_func)(const SSL *ssl, const char *line);

/*
 * SSL_CTX_set_keylog_callback configures a callback to log key material. This
 * is intended for debugging use with tools like Wireshark. The cb function
 * should log line followed by a newline.
 */
void SSL_CTX_set_keylog_callback(SSL_CTX *ctx, SSL_CTX_keylog_cb_func cb);

/*
 * SSL_CTX_get_keylog_callback returns the callback configured by
 * SSL_CTX_set_keylog_callback.
 */
SSL_CTX_keylog_cb_func SSL_CTX_get_keylog_callback(const SSL_CTX *ctx);

int SSL_CTX_set_max_early_data(SSL_CTX *ctx, uint32_t max_early_data);
uint32_t SSL_CTX_get_max_early_data(const SSL_CTX *ctx);
int SSL_set_max_early_data(SSL *s, uint32_t max_early_data);
uint32_t SSL_get_max_early_data(const SSL *s);
int SSL_CTX_set_recv_max_early_data(SSL_CTX *ctx, uint32_t recv_max_early_data);
uint32_t SSL_CTX_get_recv_max_early_data(const SSL_CTX *ctx);
int SSL_set_recv_max_early_data(SSL *s, uint32_t recv_max_early_data);
uint32_t SSL_get_recv_max_early_data(const SSL *s);

#ifdef __cplusplus
}
#endif

# include <openssl/ssl2.h>
# include <openssl/ssl3.h>
# include <openssl/tls1.h>      /* This is mostly sslv3 with a few tweaks */
# include <openssl/dtls1.h>     /* Datagram TLS */
# include <openssl/srtp.h>      /* Support for the use_srtp extension */

#ifdef  __cplusplus
extern "C" {
#endif

/*
 * These need to be after the above set of includes due to a compiler bug
 * in VisualStudio 2015
 */
SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER)
#define sk_SSL_CIPHER_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_CIPHER_sk_type(sk))
#define sk_SSL_CIPHER_value(sk, idx) ((const SSL_CIPHER *)OPENSSL_sk_value(ossl_check_const_SSL_CIPHER_sk_type(sk), (idx)))
#define sk_SSL_CIPHER_new(cmp) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_new(ossl_check_SSL_CIPHER_compfunc_type(cmp)))
#define sk_SSL_CIPHER_new_null() ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_new_null())
#define sk_SSL_CIPHER_new_reserve(cmp, n) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_new_reserve(ossl_check_SSL_CIPHER_compfunc_type(cmp), (n)))
#define sk_SSL_CIPHER_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_CIPHER_sk_type(sk), (n))
#define sk_SSL_CIPHER_free(sk) OPENSSL_sk_free(ossl_check_SSL_CIPHER_sk_type(sk))
#define sk_SSL_CIPHER_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_CIPHER_sk_type(sk))
#define sk_SSL_CIPHER_delete(sk, i) ((const SSL_CIPHER *)OPENSSL_sk_delete(ossl_check_SSL_CIPHER_sk_type(sk), (i)))
#define sk_SSL_CIPHER_delete_ptr(sk, ptr) ((const SSL_CIPHER *)OPENSSL_sk_delete_ptr(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr)))
#define sk_SSL_CIPHER_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr))
#define sk_SSL_CIPHER_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr))
#define sk_SSL_CIPHER_pop(sk) ((const SSL_CIPHER *)OPENSSL_sk_pop(ossl_check_SSL_CIPHER_sk_type(sk)))
#define sk_SSL_CIPHER_shift(sk) ((const SSL_CIPHER *)OPENSSL_sk_shift(ossl_check_SSL_CIPHER_sk_type(sk)))
#define sk_SSL_CIPHER_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_CIPHER_sk_type(sk),ossl_check_SSL_CIPHER_freefunc_type(freefunc))
#define sk_SSL_CIPHER_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr), (idx))
#define sk_SSL_CIPHER_set(sk, idx, ptr) ((const SSL_CIPHER *)OPENSSL_sk_set(ossl_check_SSL_CIPHER_sk_type(sk), (idx), ossl_check_SSL_CIPHER_type(ptr)))
#define sk_SSL_CIPHER_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr))
#define sk_SSL_CIPHER_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr))
#define sk_SSL_CIPHER_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr), pnum)
#define sk_SSL_CIPHER_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_CIPHER_sk_type(sk))
#define sk_SSL_CIPHER_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_CIPHER_sk_type(sk))
#define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk)))
#define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc)))
#define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp)))
SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP)
#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk))
#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx)))
#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp)))
#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null())
#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n)))
#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n))
#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk))
#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk))
#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i)))
#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)))
#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))
#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))
#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk)))
#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk)))
#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc))
#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx))
#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr)))
#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))
#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))
#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum)
#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk))
#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk))
#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk)))
#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc)))
#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp)))


/* compatibility */
# define SSL_set_app_data(s,arg)         (SSL_set_ex_data(s,0,(char *)(arg)))
# define SSL_get_app_data(s)             (SSL_get_ex_data(s,0))
# define SSL_SESSION_set_app_data(s,a)   (SSL_SESSION_set_ex_data(s,0, \
                                                                  (char *)(a)))
# define SSL_SESSION_get_app_data(s)     (SSL_SESSION_get_ex_data(s,0))
# define SSL_CTX_get_app_data(ctx)       (SSL_CTX_get_ex_data(ctx,0))
# define SSL_CTX_set_app_data(ctx,arg)   (SSL_CTX_set_ex_data(ctx,0, \
                                                              (char *)(arg)))
# ifndef OPENSSL_NO_DEPRECATED_1_1_0
OSSL_DEPRECATEDIN_1_1_0 void SSL_set_debug(SSL *s, int debug);
# endif

/* TLSv1.3 KeyUpdate message types */
/* -1 used so that this is an invalid value for the on-the-wire protocol */
#define SSL_KEY_UPDATE_NONE             -1
/* Values as defined for the on-the-wire protocol */
#define SSL_KEY_UPDATE_NOT_REQUESTED     0
#define SSL_KEY_UPDATE_REQUESTED         1

/*
 * The valid handshake states (one for each type message sent and one for each
 * type of message received). There are also two "special" states:
 * TLS = TLS or DTLS state
 * DTLS = DTLS specific state
 * CR/SR = Client Read/Server Read
 * CW/SW = Client Write/Server Write
 *
 * The "special" states are:
 * TLS_ST_BEFORE = No handshake has been initiated yet
 * TLS_ST_OK = A handshake has been successfully completed
 */
typedef enum {
    TLS_ST_BEFORE,
    TLS_ST_OK,
    DTLS_ST_CR_HELLO_VERIFY_REQUEST,
    TLS_ST_CR_SRVR_HELLO,
    TLS_ST_CR_CERT,
    TLS_ST_CR_CERT_STATUS,
    TLS_ST_CR_KEY_EXCH,
    TLS_ST_CR_CERT_REQ,
    TLS_ST_CR_SRVR_DONE,
    TLS_ST_CR_SESSION_TICKET,
    TLS_ST_CR_CHANGE,
    TLS_ST_CR_FINISHED,
    TLS_ST_CW_CLNT_HELLO,
    TLS_ST_CW_CERT,
    TLS_ST_CW_KEY_EXCH,
    TLS_ST_CW_CERT_VRFY,
    TLS_ST_CW_CHANGE,
    TLS_ST_CW_NEXT_PROTO,
    TLS_ST_CW_FINISHED,
    TLS_ST_SW_HELLO_REQ,
    TLS_ST_SR_CLNT_HELLO,
    DTLS_ST_SW_HELLO_VERIFY_REQUEST,
    TLS_ST_SW_SRVR_HELLO,
    TLS_ST_SW_CERT,
    TLS_ST_SW_KEY_EXCH,
    TLS_ST_SW_CERT_REQ,
    TLS_ST_SW_SRVR_DONE,
    TLS_ST_SR_CERT,
    TLS_ST_SR_KEY_EXCH,
    TLS_ST_SR_CERT_VRFY,
    TLS_ST_SR_NEXT_PROTO,
    TLS_ST_SR_CHANGE,
    TLS_ST_SR_FINISHED,
    TLS_ST_SW_SESSION_TICKET,
    TLS_ST_SW_CERT_STATUS,
    TLS_ST_SW_CHANGE,
    TLS_ST_SW_FINISHED,
    TLS_ST_SW_ENCRYPTED_EXTENSIONS,
    TLS_ST_CR_ENCRYPTED_EXTENSIONS,
    TLS_ST_CR_CERT_VRFY,
    TLS_ST_SW_CERT_VRFY,
    TLS_ST_CR_HELLO_REQ,
    TLS_ST_SW_KEY_UPDATE,
    TLS_ST_CW_KEY_UPDATE,
    TLS_ST_SR_KEY_UPDATE,
    TLS_ST_CR_KEY_UPDATE,
    TLS_ST_EARLY_DATA,
    TLS_ST_PENDING_EARLY_DATA_END,
    TLS_ST_CW_END_OF_EARLY_DATA,
    TLS_ST_SR_END_OF_EARLY_DATA
} OSSL_HANDSHAKE_STATE;

/*
 * Most of the following state values are no longer used and are defined to be
 * the closest equivalent value in the current state machine code. Not all
 * defines have an equivalent and are set to a dummy value (-1). SSL_ST_CONNECT
 * and SSL_ST_ACCEPT are still in use in the definition of SSL_CB_ACCEPT_LOOP,
 * SSL_CB_ACCEPT_EXIT, SSL_CB_CONNECT_LOOP and SSL_CB_CONNECT_EXIT.
 */

# define SSL_ST_CONNECT                  0x1000
# define SSL_ST_ACCEPT                   0x2000

# define SSL_ST_MASK                     0x0FFF

# define SSL_CB_LOOP                     0x01
# define SSL_CB_EXIT                     0x02
# define SSL_CB_READ                     0x04
# define SSL_CB_WRITE                    0x08
# define SSL_CB_ALERT                    0x4000/* used in callback */
# define SSL_CB_READ_ALERT               (SSL_CB_ALERT|SSL_CB_READ)
# define SSL_CB_WRITE_ALERT              (SSL_CB_ALERT|SSL_CB_WRITE)
# define SSL_CB_ACCEPT_LOOP              (SSL_ST_ACCEPT|SSL_CB_LOOP)
# define SSL_CB_ACCEPT_EXIT              (SSL_ST_ACCEPT|SSL_CB_EXIT)
# define SSL_CB_CONNECT_LOOP             (SSL_ST_CONNECT|SSL_CB_LOOP)
# define SSL_CB_CONNECT_EXIT             (SSL_ST_CONNECT|SSL_CB_EXIT)
# define SSL_CB_HANDSHAKE_START          0x10
# define SSL_CB_HANDSHAKE_DONE           0x20

/* Is the SSL_connection established? */
# define SSL_in_connect_init(a)          (SSL_in_init(a) && !SSL_is_server(a))
# define SSL_in_accept_init(a)           (SSL_in_init(a) && SSL_is_server(a))
int SSL_in_init(const SSL *s);
int SSL_in_before(const SSL *s);
int SSL_is_init_finished(const SSL *s);

/*
 * The following 3 states are kept in ssl->rlayer.rstate when reads fail, you
 * should not need these
 */
# define SSL_ST_READ_HEADER                      0xF0
# define SSL_ST_READ_BODY                        0xF1
# define SSL_ST_READ_DONE                        0xF2

/*-
 * Obtain latest Finished message
 *   -- that we sent (SSL_get_finished)
 *   -- that we expected from peer (SSL_get_peer_finished).
 * Returns length (0 == no Finished so far), copies up to 'count' bytes.
 */
size_t SSL_get_finished(const SSL *s, void *buf, size_t count);
size_t SSL_get_peer_finished(const SSL *s, void *buf, size_t count);

/*
 * use either SSL_VERIFY_NONE or SSL_VERIFY_PEER, the last 3 options are
 * 'ored' with SSL_VERIFY_PEER if they are desired
 */
# define SSL_VERIFY_NONE                 0x00
# define SSL_VERIFY_PEER                 0x01
# define SSL_VERIFY_FAIL_IF_NO_PEER_CERT 0x02
# define SSL_VERIFY_CLIENT_ONCE          0x04
# define SSL_VERIFY_POST_HANDSHAKE       0x08

# ifndef OPENSSL_NO_DEPRECATED_1_1_0
#  define OpenSSL_add_ssl_algorithms()   SSL_library_init()
#  define SSLeay_add_ssl_algorithms()    SSL_library_init()
# endif

/* More backward compatibility */
# define SSL_get_cipher(s) \
                SSL_CIPHER_get_name(SSL_get_current_cipher(s))
# define SSL_get_cipher_bits(s,np) \
                SSL_CIPHER_get_bits(SSL_get_current_cipher(s),np)
# define SSL_get_cipher_version(s) \
                SSL_CIPHER_get_version(SSL_get_current_cipher(s))
# define SSL_get_cipher_name(s) \
                SSL_CIPHER_get_name(SSL_get_current_cipher(s))
# define SSL_get_time(a)         SSL_SESSION_get_time(a)
# define SSL_set_time(a,b)       SSL_SESSION_set_time((a),(b))
# define SSL_get_timeout(a)      SSL_SESSION_get_timeout(a)
# define SSL_set_timeout(a,b)    SSL_SESSION_set_timeout((a),(b))

# define d2i_SSL_SESSION_bio(bp,s_id) ASN1_d2i_bio_of(SSL_SESSION,SSL_SESSION_new,d2i_SSL_SESSION,bp,s_id)
# define i2d_SSL_SESSION_bio(bp,s_id) ASN1_i2d_bio_of(SSL_SESSION,i2d_SSL_SESSION,bp,s_id)

DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION)
# define SSL_AD_REASON_OFFSET            1000/* offset to get SSL_R_... value
                                              * from SSL_AD_... */
/* These alert types are for SSLv3 and TLSv1 */
# define SSL_AD_CLOSE_NOTIFY             SSL3_AD_CLOSE_NOTIFY
/* fatal */
# define SSL_AD_UNEXPECTED_MESSAGE       SSL3_AD_UNEXPECTED_MESSAGE
/* fatal */
# define SSL_AD_BAD_RECORD_MAC           SSL3_AD_BAD_RECORD_MAC
# define SSL_AD_DECRYPTION_FAILED        TLS1_AD_DECRYPTION_FAILED
# define SSL_AD_RECORD_OVERFLOW          TLS1_AD_RECORD_OVERFLOW
/* fatal */
# define SSL_AD_DECOMPRESSION_FAILURE    SSL3_AD_DECOMPRESSION_FAILURE
/* fatal */
# define SSL_AD_HANDSHAKE_FAILURE        SSL3_AD_HANDSHAKE_FAILURE
/* Not for TLS */
# define SSL_AD_NO_CERTIFICATE           SSL3_AD_NO_CERTIFICATE
# define SSL_AD_BAD_CERTIFICATE          SSL3_AD_BAD_CERTIFICATE
# define SSL_AD_UNSUPPORTED_CERTIFICATE  SSL3_AD_UNSUPPORTED_CERTIFICATE
# define SSL_AD_CERTIFICATE_REVOKED      SSL3_AD_CERTIFICATE_REVOKED
# define SSL_AD_CERTIFICATE_EXPIRED      SSL3_AD_CERTIFICATE_EXPIRED
# define SSL_AD_CERTIFICATE_UNKNOWN      SSL3_AD_CERTIFICATE_UNKNOWN
/* fatal */
# define SSL_AD_ILLEGAL_PARAMETER        SSL3_AD_ILLEGAL_PARAMETER
/* fatal */
# define SSL_AD_UNKNOWN_CA               TLS1_AD_UNKNOWN_CA
/* fatal */
# define SSL_AD_ACCESS_DENIED            TLS1_AD_ACCESS_DENIED
/* fatal */
# define SSL_AD_DECODE_ERROR             TLS1_AD_DECODE_ERROR
# define SSL_AD_DECRYPT_ERROR            TLS1_AD_DECRYPT_ERROR
/* fatal */
# define SSL_AD_EXPORT_RESTRICTION       TLS1_AD_EXPORT_RESTRICTION
/* fatal */
# define SSL_AD_PROTOCOL_VERSION         TLS1_AD_PROTOCOL_VERSION
/* fatal */
# define SSL_AD_INSUFFICIENT_SECURITY    TLS1_AD_INSUFFICIENT_SECURITY
/* fatal */
# define SSL_AD_INTERNAL_ERROR           TLS1_AD_INTERNAL_ERROR
# define SSL_AD_USER_CANCELLED           TLS1_AD_USER_CANCELLED
# define SSL_AD_NO_RENEGOTIATION         TLS1_AD_NO_RENEGOTIATION
# define SSL_AD_MISSING_EXTENSION        TLS13_AD_MISSING_EXTENSION
# define SSL_AD_CERTIFICATE_REQUIRED     TLS13_AD_CERTIFICATE_REQUIRED
# define SSL_AD_UNSUPPORTED_EXTENSION    TLS1_AD_UNSUPPORTED_EXTENSION
# define SSL_AD_CERTIFICATE_UNOBTAINABLE TLS1_AD_CERTIFICATE_UNOBTAINABLE
# define SSL_AD_UNRECOGNIZED_NAME        TLS1_AD_UNRECOGNIZED_NAME
# define SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE
# define SSL_AD_BAD_CERTIFICATE_HASH_VALUE TLS1_AD_BAD_CERTIFICATE_HASH_VALUE
/* fatal */
# define SSL_AD_UNKNOWN_PSK_IDENTITY     TLS1_AD_UNKNOWN_PSK_IDENTITY
/* fatal */
# define SSL_AD_INAPPROPRIATE_FALLBACK   TLS1_AD_INAPPROPRIATE_FALLBACK
# define SSL_AD_NO_APPLICATION_PROTOCOL  TLS1_AD_NO_APPLICATION_PROTOCOL
# define SSL_ERROR_NONE                  0
# define SSL_ERROR_SSL                   1
# define SSL_ERROR_WANT_READ             2
# define SSL_ERROR_WANT_WRITE            3
# define SSL_ERROR_WANT_X509_LOOKUP      4
# define SSL_ERROR_SYSCALL               5/* look at error stack/return
                                           * value/errno */
# define SSL_ERROR_ZERO_RETURN           6
# define SSL_ERROR_WANT_CONNECT          7
# define SSL_ERROR_WANT_ACCEPT           8
# define SSL_ERROR_WANT_ASYNC            9
# define SSL_ERROR_WANT_ASYNC_JOB       10
# define SSL_ERROR_WANT_CLIENT_HELLO_CB 11
# define SSL_ERROR_WANT_RETRY_VERIFY    12

# ifndef OPENSSL_NO_DEPRECATED_3_0
#  define SSL_CTRL_SET_TMP_DH                    3
#  define SSL_CTRL_SET_TMP_ECDH                  4
#  define SSL_CTRL_SET_TMP_DH_CB                 6
# endif

# define SSL_CTRL_GET_CLIENT_CERT_REQUEST        9
# define SSL_CTRL_GET_NUM_RENEGOTIATIONS         10
# define SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS       11
# define SSL_CTRL_GET_TOTAL_RENEGOTIATIONS       12
# define SSL_CTRL_GET_FLAGS                      13
# define SSL_CTRL_EXTRA_CHAIN_CERT               14
# define SSL_CTRL_SET_MSG_CALLBACK               15
# define SSL_CTRL_SET_MSG_CALLBACK_ARG           16
/* only applies to datagram connections */
# define SSL_CTRL_SET_MTU                17
/* Stats */
# define SSL_CTRL_SESS_NUMBER                    20
# define SSL_CTRL_SESS_CONNECT                   21
# define SSL_CTRL_SESS_CONNECT_GOOD              22
# define SSL_CTRL_SESS_CONNECT_RENEGOTIATE       23
# define SSL_CTRL_SESS_ACCEPT                    24
# define SSL_CTRL_SESS_ACCEPT_GOOD               25
# define SSL_CTRL_SESS_ACCEPT_RENEGOTIATE        26
# define SSL_CTRL_SESS_HIT                       27
# define SSL_CTRL_SESS_CB_HIT                    28
# define SSL_CTRL_SESS_MISSES                    29
# define SSL_CTRL_SESS_TIMEOUTS                  30
# define SSL_CTRL_SESS_CACHE_FULL                31
# define SSL_CTRL_MODE                           33
# define SSL_CTRL_GET_READ_AHEAD                 40
# define SSL_CTRL_SET_READ_AHEAD                 41
# define SSL_CTRL_SET_SESS_CACHE_SIZE            42
# define SSL_CTRL_GET_SESS_CACHE_SIZE            43
# define SSL_CTRL_SET_SESS_CACHE_MODE            44
# define SSL_CTRL_GET_SESS_CACHE_MODE            45
# define SSL_CTRL_GET_MAX_CERT_LIST              50
# define SSL_CTRL_SET_MAX_CERT_LIST              51
# define SSL_CTRL_SET_MAX_SEND_FRAGMENT          52
/* see tls1.h for macros based on these */
# define SSL_CTRL_SET_TLSEXT_SERVERNAME_CB       53
# define SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG      54
# define SSL_CTRL_SET_TLSEXT_HOSTNAME            55
# define SSL_CTRL_SET_TLSEXT_DEBUG_CB            56
# define SSL_CTRL_SET_TLSEXT_DEBUG_ARG           57
# define SSL_CTRL_GET_TLSEXT_TICKET_KEYS         58
# define SSL_CTRL_SET_TLSEXT_TICKET_KEYS         59
/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT    60 */
/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB 61 */
/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB_ARG 62 */
# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB       63
# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG   64
# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE     65
# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS     66
# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS     67
# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS      68
# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS      69
# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP        70
# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP        71
# ifndef OPENSSL_NO_DEPRECATED_3_0
#  define SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB      72
# endif
# define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME_CB    75
# define SSL_CTRL_SET_SRP_VERIFY_PARAM_CB                76
# define SSL_CTRL_SET_SRP_GIVE_CLIENT_PWD_CB             77
# define SSL_CTRL_SET_SRP_ARG            78
# define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME               79
# define SSL_CTRL_SET_TLS_EXT_SRP_STRENGTH               80
# define SSL_CTRL_SET_TLS_EXT_SRP_PASSWORD               81
# define DTLS_CTRL_GET_TIMEOUT           73
# define DTLS_CTRL_HANDLE_TIMEOUT        74
# define SSL_CTRL_GET_RI_SUPPORT                 76
# define SSL_CTRL_CLEAR_MODE                     78
# define SSL_CTRL_SET_NOT_RESUMABLE_SESS_CB      79
# define SSL_CTRL_GET_EXTRA_CHAIN_CERTS          82
# define SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS        83
# define SSL_CTRL_CHAIN                          88
# define SSL_CTRL_CHAIN_CERT                     89
# define SSL_CTRL_GET_GROUPS                     90
# define SSL_CTRL_SET_GROUPS                     91
# define SSL_CTRL_SET_GROUPS_LIST                92
# define SSL_CTRL_GET_SHARED_GROUP               93
# define SSL_CTRL_SET_SIGALGS                    97
# define SSL_CTRL_SET_SIGALGS_LIST               98
# define SSL_CTRL_CERT_FLAGS                     99
# define SSL_CTRL_CLEAR_CERT_FLAGS               100
# define SSL_CTRL_SET_CLIENT_SIGALGS             101
# define SSL_CTRL_SET_CLIENT_SIGALGS_LIST        102
# define SSL_CTRL_GET_CLIENT_CERT_TYPES          103
# define SSL_CTRL_SET_CLIENT_CERT_TYPES          104
# define SSL_CTRL_BUILD_CERT_CHAIN               105
# define SSL_CTRL_SET_VERIFY_CERT_STORE          106
# define SSL_CTRL_SET_CHAIN_CERT_STORE           107
# define SSL_CTRL_GET_PEER_SIGNATURE_NID         108
# define SSL_CTRL_GET_PEER_TMP_KEY               109
# define SSL_CTRL_GET_RAW_CIPHERLIST             110
# define SSL_CTRL_GET_EC_POINT_FORMATS           111
# define SSL_CTRL_GET_CHAIN_CERTS                115
# define SSL_CTRL_SELECT_CURRENT_CERT            116
# define SSL_CTRL_SET_CURRENT_CERT               117
# define SSL_CTRL_SET_DH_AUTO                    118
# define DTLS_CTRL_SET_LINK_MTU                  120
# define DTLS_CTRL_GET_LINK_MIN_MTU              121
# define SSL_CTRL_GET_EXTMS_SUPPORT              122
# define SSL_CTRL_SET_MIN_PROTO_VERSION          123
# define SSL_CTRL_SET_MAX_PROTO_VERSION          124
# define SSL_CTRL_SET_SPLIT_SEND_FRAGMENT        125
# define SSL_CTRL_SET_MAX_PIPELINES              126
# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE     127
# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB       128
# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB_ARG   129
# define SSL_CTRL_GET_MIN_PROTO_VERSION          130
# define SSL_CTRL_GET_MAX_PROTO_VERSION          131
# define SSL_CTRL_GET_SIGNATURE_NID              132
# define SSL_CTRL_GET_TMP_KEY                    133
# define SSL_CTRL_GET_NEGOTIATED_GROUP           134
# define SSL_CTRL_SET_RETRY_VERIFY               136
# define SSL_CTRL_GET_VERIFY_CERT_STORE          137
# define SSL_CTRL_GET_CHAIN_CERT_STORE           138
# define SSL_CERT_SET_FIRST                      1
# define SSL_CERT_SET_NEXT                       2
# define SSL_CERT_SET_SERVER                     3
# define DTLSv1_get_timeout(ssl, arg) \
        SSL_ctrl(ssl,DTLS_CTRL_GET_TIMEOUT,0, (void *)(arg))
# define DTLSv1_handle_timeout(ssl) \
        SSL_ctrl(ssl,DTLS_CTRL_HANDLE_TIMEOUT,0, NULL)
# define SSL_num_renegotiations(ssl) \
        SSL_ctrl((ssl),SSL_CTRL_GET_NUM_RENEGOTIATIONS,0,NULL)
# define SSL_clear_num_renegotiations(ssl) \
        SSL_ctrl((ssl),SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS,0,NULL)
# define SSL_total_renegotiations(ssl) \
        SSL_ctrl((ssl),SSL_CTRL_GET_TOTAL_RENEGOTIATIONS,0,NULL)
# ifndef OPENSSL_NO_DEPRECATED_3_0
#  define SSL_CTX_set_tmp_dh(ctx,dh) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_DH,0,(char *)(dh))
# endif
# define SSL_CTX_set_dh_auto(ctx, onoff) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_DH_AUTO,onoff,NULL)
# define SSL_set_dh_auto(s, onoff) \
        SSL_ctrl(s,SSL_CTRL_SET_DH_AUTO,onoff,NULL)
# ifndef OPENSSL_NO_DEPRECATED_3_0
#  define SSL_set_tmp_dh(ssl,dh) \
        SSL_ctrl(ssl,SSL_CTRL_SET_TMP_DH,0,(char *)(dh))
# endif
# ifndef OPENSSL_NO_DEPRECATED_3_0
#  define SSL_CTX_set_tmp_ecdh(ctx,ecdh) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_ECDH,0,(char *)(ecdh))
#  define SSL_set_tmp_ecdh(ssl,ecdh) \
        SSL_ctrl(ssl,SSL_CTRL_SET_TMP_ECDH,0,(char *)(ecdh))
# endif
# define SSL_CTX_add_extra_chain_cert(ctx,x509) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)(x509))
# define SSL_CTX_get_extra_chain_certs(ctx,px509) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,0,px509)
# define SSL_CTX_get_extra_chain_certs_only(ctx,px509) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,1,px509)
# define SSL_CTX_clear_extra_chain_certs(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS,0,NULL)
# define SSL_CTX_set0_chain(ctx,sk) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,0,(char *)(sk))
# define SSL_CTX_set1_chain(ctx,sk) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,1,(char *)(sk))
# define SSL_CTX_add0_chain_cert(ctx,x509) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,0,(char *)(x509))
# define SSL_CTX_add1_chain_cert(ctx,x509) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,1,(char *)(x509))
# define SSL_CTX_get0_chain_certs(ctx,px509) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERTS,0,px509)
# define SSL_CTX_clear_chain_certs(ctx) \
        SSL_CTX_set0_chain(ctx,NULL)
# define SSL_CTX_build_cert_chain(ctx, flags) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL)
# define SSL_CTX_select_current_cert(ctx,x509) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)(x509))
# define SSL_CTX_set_current_cert(ctx, op) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURRENT_CERT, op, NULL)
# define SSL_CTX_set0_verify_cert_store(ctx,st) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)(st))
# define SSL_CTX_set1_verify_cert_store(ctx,st) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)(st))
# define SSL_CTX_get0_verify_cert_store(ctx,st) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_GET_VERIFY_CERT_STORE,0,(char *)(st))
# define SSL_CTX_set0_chain_cert_store(ctx,st) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)(st))
# define SSL_CTX_set1_chain_cert_store(ctx,st) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)(st))
# define SSL_CTX_get0_chain_cert_store(ctx,st) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERT_STORE,0,(char *)(st))
# define SSL_set0_chain(s,sk) \
        SSL_ctrl(s,SSL_CTRL_CHAIN,0,(char *)(sk))
# define SSL_set1_chain(s,sk) \
        SSL_ctrl(s,SSL_CTRL_CHAIN,1,(char *)(sk))
# define SSL_add0_chain_cert(s,x509) \
        SSL_ctrl(s,SSL_CTRL_CHAIN_CERT,0,(char *)(x509))
# define SSL_add1_chain_cert(s,x509) \
        SSL_ctrl(s,SSL_CTRL_CHAIN_CERT,1,(char *)(x509))
# define SSL_get0_chain_certs(s,px509) \
        SSL_ctrl(s,SSL_CTRL_GET_CHAIN_CERTS,0,px509)
# define SSL_clear_chain_certs(s) \
        SSL_set0_chain(s,NULL)
# define SSL_build_cert_chain(s, flags) \
        SSL_ctrl(s,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL)
# define SSL_select_current_cert(s,x509) \
        SSL_ctrl(s,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)(x509))
# define SSL_set_current_cert(s,op) \
        SSL_ctrl(s,SSL_CTRL_SET_CURRENT_CERT, op, NULL)
# define SSL_set0_verify_cert_store(s,st) \
        SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)(st))
# define SSL_set1_verify_cert_store(s,st) \
        SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)(st))
#define SSL_get0_verify_cert_store(s,st) \
        SSL_ctrl(s,SSL_CTRL_GET_VERIFY_CERT_STORE,0,(char *)(st))
# define SSL_set0_chain_cert_store(s,st) \
        SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)(st))
# define SSL_set1_chain_cert_store(s,st) \
        SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)(st))
#define SSL_get0_chain_cert_store(s,st) \
        SSL_ctrl(s,SSL_CTRL_GET_CHAIN_CERT_STORE,0,(char *)(st))

# define SSL_get1_groups(s, glist) \
        SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist))
# define SSL_CTX_set1_groups(ctx, glist, glistlen) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist))
# define SSL_CTX_set1_groups_list(ctx, s) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s))
# define SSL_set1_groups(s, glist, glistlen) \
        SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist))
# define SSL_set1_groups_list(s, str) \
        SSL_ctrl(s,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(str))
# define SSL_get_shared_group(s, n) \
        SSL_ctrl(s,SSL_CTRL_GET_SHARED_GROUP,n,NULL)
# define SSL_get_negotiated_group(s) \
        SSL_ctrl(s,SSL_CTRL_GET_NEGOTIATED_GROUP,0,NULL)
# define SSL_CTX_set1_sigalgs(ctx, slist, slistlen) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS,slistlen,(int *)(slist))
# define SSL_CTX_set1_sigalgs_list(ctx, s) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)(s))
# define SSL_set1_sigalgs(s, slist, slistlen) \
        SSL_ctrl(s,SSL_CTRL_SET_SIGALGS,slistlen,(int *)(slist))
# define SSL_set1_sigalgs_list(s, str) \
        SSL_ctrl(s,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)(str))
# define SSL_CTX_set1_client_sigalgs(ctx, slist, slistlen) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS,slistlen,(int *)(slist))
# define SSL_CTX_set1_client_sigalgs_list(ctx, s) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)(s))
# define SSL_set1_client_sigalgs(s, slist, slistlen) \
        SSL_ctrl(s,SSL_CTRL_SET_CLIENT_SIGALGS,slistlen,(int *)(slist))
# define SSL_set1_client_sigalgs_list(s, str) \
        SSL_ctrl(s,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)(str))
# define SSL_get0_certificate_types(s, clist) \
        SSL_ctrl(s, SSL_CTRL_GET_CLIENT_CERT_TYPES, 0, (char *)(clist))
# define SSL_CTX_set1_client_certificate_types(ctx, clist, clistlen) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen, \
                     (char *)(clist))
# define SSL_set1_client_certificate_types(s, clist, clistlen) \
        SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist))
# define SSL_get_signature_nid(s, pn) \
        SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn)
# define SSL_get_peer_signature_nid(s, pn) \
        SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn)
# define SSL_get_peer_tmp_key(s, pk) \
        SSL_ctrl(s,SSL_CTRL_GET_PEER_TMP_KEY,0,pk)
# define SSL_get_tmp_key(s, pk) \
        SSL_ctrl(s,SSL_CTRL_GET_TMP_KEY,0,pk)
# define SSL_get0_raw_cipherlist(s, plst) \
        SSL_ctrl(s,SSL_CTRL_GET_RAW_CIPHERLIST,0,plst)
# define SSL_get0_ec_point_formats(s, plst) \
        SSL_ctrl(s,SSL_CTRL_GET_EC_POINT_FORMATS,0,plst)
# define SSL_CTX_set_min_proto_version(ctx, version) \
        SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MIN_PROTO_VERSION, version, NULL)
# define SSL_CTX_set_max_proto_version(ctx, version) \
        SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MAX_PROTO_VERSION, version, NULL)
# define SSL_CTX_get_min_proto_version(ctx) \
        SSL_CTX_ctrl(ctx, SSL_CTRL_GET_MIN_PROTO_VERSION, 0, NULL)
# define SSL_CTX_get_max_proto_version(ctx) \
        SSL_CTX_ctrl(ctx, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL)
# define SSL_set_min_proto_version(s, version) \
        SSL_ctrl(s, SSL_CTRL_SET_MIN_PROTO_VERSION, version, NULL)
# define SSL_set_max_proto_version(s, version) \
        SSL_ctrl(s, SSL_CTRL_SET_MAX_PROTO_VERSION, version, NULL)
# define SSL_get_min_proto_version(s) \
        SSL_ctrl(s, SSL_CTRL_GET_MIN_PROTO_VERSION, 0, NULL)
# define SSL_get_max_proto_version(s) \
        SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL)

const char *SSL_group_to_name(SSL *s, int id);

/* Backwards compatibility, original 1.1.0 names */
# define SSL_CTRL_GET_SERVER_TMP_KEY \
         SSL_CTRL_GET_PEER_TMP_KEY
# define SSL_get_server_tmp_key(s, pk) \
         SSL_get_peer_tmp_key(s, pk)

int SSL_set0_tmp_dh_pkey(SSL *s, EVP_PKEY *dhpkey);
int SSL_CTX_set0_tmp_dh_pkey(SSL_CTX *ctx, EVP_PKEY *dhpkey);

/*
 * The following symbol names are old and obsolete. They are kept
 * for compatibility reasons only and should not be used anymore.
 */
# define SSL_CTRL_GET_CURVES           SSL_CTRL_GET_GROUPS
# define SSL_CTRL_SET_CURVES           SSL_CTRL_SET_GROUPS
# define SSL_CTRL_SET_CURVES_LIST      SSL_CTRL_SET_GROUPS_LIST
# define SSL_CTRL_GET_SHARED_CURVE     SSL_CTRL_GET_SHARED_GROUP

# define SSL_get1_curves               SSL_get1_groups
# define SSL_CTX_set1_curves           SSL_CTX_set1_groups
# define SSL_CTX_set1_curves_list      SSL_CTX_set1_groups_list
# define SSL_set1_curves               SSL_set1_groups
# define SSL_set1_curves_list          SSL_set1_groups_list
# define SSL_get_shared_curve          SSL_get_shared_group


# ifndef OPENSSL_NO_DEPRECATED_1_1_0
/* Provide some compatibility macros for removed functionality. */
#  define SSL_CTX_need_tmp_RSA(ctx)                0
#  define SSL_CTX_set_tmp_rsa(ctx,rsa)             1
#  define SSL_need_tmp_RSA(ssl)                    0
#  define SSL_set_tmp_rsa(ssl,rsa)                 1
#  define SSL_CTX_set_ecdh_auto(dummy, onoff)      ((onoff) != 0)
#  define SSL_set_ecdh_auto(dummy, onoff)          ((onoff) != 0)
/*
 * We "pretend" to call the callback to avoid warnings about unused static
 * functions.
 */
#  define SSL_CTX_set_tmp_rsa_callback(ctx, cb)    while(0) (cb)(NULL, 0, 0)
#  define SSL_set_tmp_rsa_callback(ssl, cb)        while(0) (cb)(NULL, 0, 0)
# endif
__owur const BIO_METHOD *BIO_f_ssl(void);
__owur BIO *BIO_new_ssl(SSL_CTX *ctx, int client);
__owur BIO *BIO_new_ssl_connect(SSL_CTX *ctx);
__owur BIO *BIO_new_buffer_ssl_connect(SSL_CTX *ctx);
__owur int BIO_ssl_copy_session_id(BIO *to, BIO *from);
void BIO_ssl_shutdown(BIO *ssl_bio);

__owur int SSL_CTX_set_cipher_list(SSL_CTX *, const char *str);
__owur SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth);
__owur SSL_CTX *SSL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq,
                               const SSL_METHOD *meth);
int SSL_CTX_up_ref(SSL_CTX *ctx);
void SSL_CTX_free(SSL_CTX *);
__owur long SSL_CTX_set_timeout(SSL_CTX *ctx, long t);
__owur long SSL_CTX_get_timeout(const SSL_CTX *ctx);
__owur X509_STORE *SSL_CTX_get_cert_store(const SSL_CTX *);
void SSL_CTX_set_cert_store(SSL_CTX *, X509_STORE *);
void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *);
__owur int SSL_want(const SSL *s);
__owur int SSL_clear(SSL *s);

void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm);

__owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s);
__owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s);
__owur int SSL_CIPHER_get_bits(const SSL_CIPHER *c, int *alg_bits);
__owur const char *SSL_CIPHER_get_version(const SSL_CIPHER *c);
__owur const char *SSL_CIPHER_get_name(const SSL_CIPHER *c);
__owur const char *SSL_CIPHER_standard_name(const SSL_CIPHER *c);
__owur const char *OPENSSL_cipher_name(const char *rfc_name);
__owur uint32_t SSL_CIPHER_get_id(const SSL_CIPHER *c);
__owur uint16_t SSL_CIPHER_get_protocol_id(const SSL_CIPHER *c);
__owur int SSL_CIPHER_get_kx_nid(const SSL_CIPHER *c);
__owur int SSL_CIPHER_get_auth_nid(const SSL_CIPHER *c);
__owur const EVP_MD *SSL_CIPHER_get_handshake_digest(const SSL_CIPHER *c);
__owur int SSL_CIPHER_is_aead(const SSL_CIPHER *c);

__owur int SSL_get_fd(const SSL *s);
__owur int SSL_get_rfd(const SSL *s);
__owur int SSL_get_wfd(const SSL *s);
__owur const char *SSL_get_cipher_list(const SSL *s, int n);
__owur char *SSL_get_shared_ciphers(const SSL *s, char *buf, int size);
__owur int SSL_get_read_ahead(const SSL *s);
__owur int SSL_pending(const SSL *s);
__owur int SSL_has_pending(const SSL *s);
# ifndef OPENSSL_NO_SOCK
__owur int SSL_set_fd(SSL *s, int fd);
__owur int SSL_set_rfd(SSL *s, int fd);
__owur int SSL_set_wfd(SSL *s, int fd);
# endif
void SSL_set0_rbio(SSL *s, BIO *rbio);
void SSL_set0_wbio(SSL *s, BIO *wbio);
void SSL_set_bio(SSL *s, BIO *rbio, BIO *wbio);
__owur BIO *SSL_get_rbio(const SSL *s);
__owur BIO *SSL_get_wbio(const SSL *s);
__owur int SSL_set_cipher_list(SSL *s, const char *str);
__owur int SSL_CTX_set_ciphersuites(SSL_CTX *ctx, const char *str);
__owur int SSL_set_ciphersuites(SSL *s, const char *str);
void SSL_set_read_ahead(SSL *s, int yes);
__owur int SSL_get_verify_mode(const SSL *s);
__owur int SSL_get_verify_depth(const SSL *s);
__owur SSL_verify_cb SSL_get_verify_callback(const SSL *s);
void SSL_set_verify(SSL *s, int mode, SSL_verify_cb callback);
void SSL_set_verify_depth(SSL *s, int depth);
void SSL_set_cert_cb(SSL *s, int (*cb) (SSL *ssl, void *arg), void *arg);
# ifndef OPENSSL_NO_DEPRECATED_3_0
OSSL_DEPRECATEDIN_3_0 __owur int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa);
OSSL_DEPRECATEDIN_3_0
__owur int SSL_use_RSAPrivateKey_ASN1(SSL *ssl,
                                      const unsigned char *d, long len);
# endif
__owur int SSL_use_PrivateKey(SSL *ssl, EVP_PKEY *pkey);
__owur int SSL_use_PrivateKey_ASN1(int pk, SSL *ssl, const unsigned char *d,
                                   long len);
__owur int SSL_use_certificate(SSL *ssl, X509 *x);
__owur int SSL_use_certificate_ASN1(SSL *ssl, const unsigned char *d, int len);
__owur int SSL_use_cert_and_key(SSL *ssl, X509 *x509, EVP_PKEY *privatekey,
                                STACK_OF(X509) *chain, int override);


/* serverinfo file format versions */
# define SSL_SERVERINFOV1   1
# define SSL_SERVERINFOV2   2

/* Set serverinfo data for the current active cert. */
__owur int SSL_CTX_use_serverinfo(SSL_CTX *ctx, const unsigned char *serverinfo,
                                  size_t serverinfo_length);
__owur int SSL_CTX_use_serverinfo_ex(SSL_CTX *ctx, unsigned int version,
                                     const unsigned char *serverinfo,
                                     size_t serverinfo_length);
__owur int SSL_CTX_use_serverinfo_file(SSL_CTX *ctx, const char *file);

#ifndef OPENSSL_NO_DEPRECATED_3_0
OSSL_DEPRECATEDIN_3_0
__owur int SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type);
#endif

__owur int SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type);
__owur int SSL_use_certificate_file(SSL *ssl, const char *file, int type);

#ifndef OPENSSL_NO_DEPRECATED_3_0
OSSL_DEPRECATEDIN_3_0
__owur int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx, const char *file,
                                          int type);
#endif
__owur int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file,
                                       int type);
__owur int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file,
                                        int type);
/* PEM type */
__owur int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file);
__owur int SSL_use_certificate_chain_file(SSL *ssl, const char *file);
__owur STACK_OF(X509_NAME) *SSL_load_client_CA_file(const char *file);
__owur STACK_OF(X509_NAME)
*SSL_load_client_CA_file_ex(const char *file, OSSL_LIB_CTX *libctx,
                            const char *propq);
__owur int SSL_add_file_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs,
                                               const char *file);
int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs,
                                       const char *dir);
int SSL_add_store_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs,
                                       const char *uri);

# ifndef OPENSSL_NO_DEPRECATED_1_1_0
#  define SSL_load_error_strings() \
    OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS \
                     | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL)
# endif

__owur const char *SSL_state_string(const SSL *s);
__owur const char *SSL_rstate_string(const SSL *s);
__owur const char *SSL_state_string_long(const SSL *s);
__owur const char *SSL_rstate_string_long(const SSL *s);
__owur long SSL_SESSION_get_time(const SSL_SESSION *s);
__owur long SSL_SESSION_set_time(SSL_SESSION *s, long t);
__owur long SSL_SESSION_get_timeout(const SSL_SESSION *s);
__owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t);
__owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s);
__owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version);

__owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s);
__owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname);
void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s,
                                    const unsigned char **alpn,
                                    size_t *len);
__owur int SSL_SESSION_set1_alpn_selected(SSL_SESSION *s,
                                          const unsigned char *alpn,
                                          size_t len);
__owur const SSL_CIPHER *SSL_SESSION_get0_cipher(const SSL_SESSION *s);
__owur int SSL_SESSION_set_cipher(SSL_SESSION *s, const SSL_CIPHER *cipher);
__owur int SSL_SESSION_has_ticket(const SSL_SESSION *s);
__owur unsigned long SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *s);
void SSL_SESSION_get0_ticket(const SSL_SESSION *s, const unsigned char **tick,
                             size_t *len);
__owur uint32_t SSL_SESSION_get_max_early_data(const SSL_SESSION *s);
__owur int SSL_SESSION_set_max_early_data(SSL_SESSION *s,
                                          uint32_t max_early_data);
__owur int SSL_copy_session_id(SSL *to, const SSL *from);
__owur X509 *SSL_SESSION_get0_peer(SSL_SESSION *s);
__owur int SSL_SESSION_set1_id_context(SSL_SESSION *s,
                                       const unsigned char *sid_ctx,
                                       unsigned int sid_ctx_len);
__owur int SSL_SESSION_set1_id(SSL_SESSION *s, const unsigned char *sid,
                               unsigned int sid_len);
__owur int SSL_SESSION_is_resumable(const SSL_SESSION *s);

__owur SSL_SESSION *SSL_SESSION_new(void);
__owur SSL_SESSION *SSL_SESSION_dup(const SSL_SESSION *src);
const unsigned char *SSL_SESSION_get_id(const SSL_SESSION *s,
                                        unsigned int *len);
const unsigned char *SSL_SESSION_get0_id_context(const SSL_SESSION *s,
                                                 unsigned int *len);
__owur unsigned int SSL_SESSION_get_compress_id(const SSL_SESSION *s);
# ifndef OPENSSL_NO_STDIO
int SSL_SESSION_print_fp(FILE *fp, const SSL_SESSION *ses);
# endif
int SSL_SESSION_print(BIO *fp, const SSL_SESSION *ses);
int SSL_SESSION_print_keylog(BIO *bp, const SSL_SESSION *x);
int SSL_SESSION_up_ref(SSL_SESSION *ses);
void SSL_SESSION_free(SSL_SESSION *ses);
__owur int i2d_SSL_SESSION(const SSL_SESSION *in, unsigned char **pp);
__owur int SSL_set_session(SSL *to, SSL_SESSION *session);
int SSL_CTX_add_session(SSL_CTX *ctx, SSL_SESSION *session);
int SSL_CTX_remove_session(SSL_CTX *ctx, SSL_SESSION *session);
__owur int SSL_CTX_set_generate_session_id(SSL_CTX *ctx, GEN_SESSION_CB cb);
__owur int SSL_set_generate_session_id(SSL *s, GEN_SESSION_CB cb);
__owur int SSL_has_matching_session_id(const SSL *s,
                                       const unsigned char *id,
                                       unsigned int id_len);
SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp,
                             long length);

# ifdef OPENSSL_X509_H
__owur X509 *SSL_get0_peer_certificate(const SSL *s);
__owur X509 *SSL_get1_peer_certificate(const SSL *s);
/* Deprecated in 3.0.0 */
#  ifndef OPENSSL_NO_DEPRECATED_3_0
#   define SSL_get_peer_certificate SSL_get1_peer_certificate
#  endif
# endif

__owur STACK_OF(X509) *SSL_get_peer_cert_chain(const SSL *s);

__owur int SSL_CTX_get_verify_mode(const SSL_CTX *ctx);
__owur int SSL_CTX_get_verify_depth(const SSL_CTX *ctx);
__owur SSL_verify_cb SSL_CTX_get_verify_callback(const SSL_CTX *ctx);
void SSL_CTX_set_verify(SSL_CTX *ctx, int mode, SSL_verify_cb callback);
void SSL_CTX_set_verify_depth(SSL_CTX *ctx, int depth);
void SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx,
                                      int (*cb) (X509_STORE_CTX *, void *),
                                      void *arg);
void SSL_CTX_set_cert_cb(SSL_CTX *c, int (*cb) (SSL *ssl, void *arg),
                         void *arg);
# ifndef OPENSSL_NO_DEPRECATED_3_0
OSSL_DEPRECATEDIN_3_0
__owur int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa);
OSSL_DEPRECATEDIN_3_0
__owur int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, const unsigned char *d,
                                          long len);
# endif
__owur int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey);
__owur int SSL_CTX_use_PrivateKey_ASN1(int pk, SSL_CTX *ctx,
                                       const unsigned char *d, long len);
__owur int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x);
__owur int SSL_CTX_use_certificate_ASN1(SSL_CTX *ctx, int len,
                                        const unsigned char *d);
__owur int SSL_CTX_use_cert_and_key(SSL_CTX *ctx, X509 *x509, EVP_PKEY *privatekey,
                                    STACK_OF(X509) *chain, int override);

void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb);
void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u);
pem_password_cb *SSL_CTX_get_default_passwd_cb(SSL_CTX *ctx);
void *SSL_CTX_get_default_passwd_cb_userdata(SSL_CTX *ctx);
void SSL_set_default_passwd_cb(SSL *s, pem_password_cb *cb);
void SSL_set_default_passwd_cb_userdata(SSL *s, void *u);
pem_password_cb *SSL_get_default_passwd_cb(SSL *s);
void *SSL_get_default_passwd_cb_userdata(SSL *s);

__owur int SSL_CTX_check_private_key(const SSL_CTX *ctx);
__owur int SSL_check_private_key(const SSL *ctx);

__owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx,
                                          const unsigned char *sid_ctx,
                                          unsigned int sid_ctx_len);

SSL *SSL_new(SSL_CTX *ctx);
int SSL_up_ref(SSL *s);
int SSL_is_dtls(const SSL *s);
__owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx,
                                      unsigned int sid_ctx_len);

__owur int SSL_CTX_set_purpose(SSL_CTX *ctx, int purpose);
__owur int SSL_set_purpose(SSL *ssl, int purpose);
__owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust);
__owur int SSL_set_trust(SSL *ssl, int trust);

__owur int SSL_set1_host(SSL *s, const char *hostname);
__owur int SSL_add1_host(SSL *s, const char *hostname);
__owur const char *SSL_get0_peername(SSL *s);
void SSL_set_hostflags(SSL *s, unsigned int flags);

__owur int SSL_CTX_dane_enable(SSL_CTX *ctx);
__owur int SSL_CTX_dane_mtype_set(SSL_CTX *ctx, const EVP_MD *md,
                                  uint8_t mtype, uint8_t ord);
__owur int SSL_dane_enable(SSL *s, const char *basedomain);
__owur int SSL_dane_tlsa_add(SSL *s, uint8_t usage, uint8_t selector,
                             uint8_t mtype, const unsigned char *data, size_t dlen);
__owur int SSL_get0_dane_authority(SSL *s, X509 **mcert, EVP_PKEY **mspki);
__owur int SSL_get0_dane_tlsa(SSL *s, uint8_t *usage, uint8_t *selector,
                              uint8_t *mtype, const unsigned char **data,
                              size_t *dlen);
/*
 * Bridge opacity barrier between libcrypt and libssl, also needed to support
 * offline testing in test/danetest.c
 */
SSL_DANE *SSL_get0_dane(SSL *ssl);
/*
 * DANE flags
 */
unsigned long SSL_CTX_dane_set_flags(SSL_CTX *ctx, unsigned long flags);
unsigned long SSL_CTX_dane_clear_flags(SSL_CTX *ctx, unsigned long flags);
unsigned long SSL_dane_set_flags(SSL *ssl, unsigned long flags);
unsigned long SSL_dane_clear_flags(SSL *ssl, unsigned long flags);

__owur int SSL_CTX_set1_param(SSL_CTX *ctx, X509_VERIFY_PARAM *vpm);
__owur int SSL_set1_param(SSL *ssl, X509_VERIFY_PARAM *vpm);

__owur X509_VERIFY_PARAM *SSL_CTX_get0_param(SSL_CTX *ctx);
__owur X509_VERIFY_PARAM *SSL_get0_param(SSL *ssl);

# ifndef OPENSSL_NO_SRP
#  ifndef OPENSSL_NO_DEPRECATED_3_0
OSSL_DEPRECATEDIN_3_0 int SSL_CTX_set_srp_username(SSL_CTX *ctx, char *name);
OSSL_DEPRECATEDIN_3_0 int SSL_CTX_set_srp_password(SSL_CTX *ctx, char *password);
OSSL_DEPRECATEDIN_3_0 int SSL_CTX_set_srp_strength(SSL_CTX *ctx, int strength);
OSSL_DEPRECATEDIN_3_0
int SSL_CTX_set_srp_client_pwd_callback(SSL_CTX *ctx,
                                        char *(*cb) (SSL *, void *));
OSSL_DEPRECATEDIN_3_0
int SSL_CTX_set_srp_verify_param_callback(SSL_CTX *ctx,
                                          int (*cb) (SSL *, void *));
OSSL_DEPRECATEDIN_3_0
int SSL_CTX_set_srp_username_callback(SSL_CTX *ctx,
                                      int (*cb) (SSL *, int *, void *));
OSSL_DEPRECATEDIN_3_0 int SSL_CTX_set_srp_cb_arg(SSL_CTX *ctx, void *arg);

OSSL_DEPRECATEDIN_3_0
int SSL_set_srp_server_param(SSL *s, const BIGNUM *N, const BIGNUM *g,
                             BIGNUM *sa, BIGNUM *v, char *info);
OSSL_DEPRECATEDIN_3_0
int SSL_set_srp_server_param_pw(SSL *s, const char *user, const char *pass,
                                const char *grp);

OSSL_DEPRECATEDIN_3_0 __owur BIGNUM *SSL_get_srp_g(SSL *s);
OSSL_DEPRECATEDIN_3_0 __owur BIGNUM *SSL_get_srp_N(SSL *s);

OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_username(SSL *s);
OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s);
#  endif
# endif

/*
 * ClientHello callback and helpers.
 */

# define SSL_CLIENT_HELLO_SUCCESS 1
# define SSL_CLIENT_HELLO_ERROR   0
# define SSL_CLIENT_HELLO_RETRY   (-1)

typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg);
void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb,
                                 void *arg);
int SSL_client_hello_isv2(SSL *s);
unsigned int SSL_client_hello_get0_legacy_version(SSL *s);
size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out);
size_t SSL_client_hello_get0_session_id(SSL *s, const unsigned char **out);
size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out);
size_t SSL_client_hello_get0_compression_methods(SSL *s,
                                                 const unsigned char **out);
int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen);
int SSL_client_hello_get0_ext(SSL *s, unsigned int type,
                              const unsigned char **out, size_t *outlen);

void SSL_certs_clear(SSL *s);
void SSL_free(SSL *ssl);
# ifdef OSSL_ASYNC_FD
/*
 * Windows application developer has to include windows.h to use these.
 */
__owur int SSL_waiting_for_async(SSL *s);
__owur int SSL_get_all_async_fds(SSL *s, OSSL_ASYNC_FD *fds, size_t *numfds);
__owur int SSL_get_changed_async_fds(SSL *s, OSSL_ASYNC_FD *addfd,
                                     size_t *numaddfds, OSSL_ASYNC_FD *delfd,
                                     size_t *numdelfds);
__owur int SSL_CTX_set_async_callback(SSL_CTX *ctx, SSL_async_callback_fn callback);
__owur int SSL_CTX_set_async_callback_arg(SSL_CTX *ctx, void *arg);
__owur int SSL_set_async_callback(SSL *s, SSL_async_callback_fn callback);
__owur int SSL_set_async_callback_arg(SSL *s, void *arg);
__owur int SSL_get_async_status(SSL *s, int *status);

# endif
__owur int SSL_accept(SSL *ssl);
__owur int SSL_stateless(SSL *s);
__owur int SSL_connect(SSL *ssl);
__owur int SSL_read(SSL *ssl, void *buf, int num);
__owur int SSL_read_ex(SSL *ssl, void *buf, size_t num, size_t *readbytes);

# define SSL_READ_EARLY_DATA_ERROR   0
# define SSL_READ_EARLY_DATA_SUCCESS 1
# define SSL_READ_EARLY_DATA_FINISH  2

__owur int SSL_read_early_data(SSL *s, void *buf, size_t num,
                               size_t *readbytes);
__owur int SSL_peek(SSL *ssl, void *buf, int num);
__owur int SSL_peek_ex(SSL *ssl, void *buf, size_t num, size_t *readbytes);
__owur ossl_ssize_t SSL_sendfile(SSL *s, int fd, off_t offset, size_t size,
                                 int flags);
__owur int SSL_write(SSL *ssl, const void *buf, int num);
__owur int SSL_write_ex(SSL *s, const void *buf, size_t num, size_t *written);
__owur int SSL_write_early_data(SSL *s, const void *buf, size_t num,
                                size_t *written);
long SSL_ctrl(SSL *ssl, int cmd, long larg, void *parg);
long SSL_callback_ctrl(SSL *, int, void (*)(void));
long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg);
long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void));

# define SSL_EARLY_DATA_NOT_SENT    0
# define SSL_EARLY_DATA_REJECTED    1
# define SSL_EARLY_DATA_ACCEPTED    2

__owur int SSL_get_early_data_status(const SSL *s);

__owur int SSL_get_error(const SSL *s, int ret_code);
__owur const char *SSL_get_version(const SSL *s);

/* This sets the 'default' SSL version that SSL_new() will create */
# ifndef OPENSSL_NO_DEPRECATED_3_0
OSSL_DEPRECATEDIN_3_0
__owur int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *meth);
# endif

# ifndef OPENSSL_NO_SSL3_METHOD
#  ifndef OPENSSL_NO_DEPRECATED_1_1_0
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *SSLv3_method(void); /* SSLv3 */
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *SSLv3_server_method(void);
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *SSLv3_client_method(void);
#  endif
# endif

#define SSLv23_method           TLS_method
#define SSLv23_server_method    TLS_server_method
#define SSLv23_client_method    TLS_client_method

/* Negotiate highest available SSL/TLS version */
__owur const SSL_METHOD *TLS_method(void);
__owur const SSL_METHOD *TLS_server_method(void);
__owur const SSL_METHOD *TLS_client_method(void);

# ifndef OPENSSL_NO_TLS1_METHOD
#  ifndef OPENSSL_NO_DEPRECATED_1_1_0
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_method(void); /* TLSv1.0 */
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_server_method(void);
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_client_method(void);
#  endif
# endif

# ifndef OPENSSL_NO_TLS1_1_METHOD
#  ifndef OPENSSL_NO_DEPRECATED_1_1_0
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_1_method(void); /* TLSv1.1 */
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_1_server_method(void);
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_1_client_method(void);
#  endif
# endif

# ifndef OPENSSL_NO_TLS1_2_METHOD
#  ifndef OPENSSL_NO_DEPRECATED_1_1_0
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_2_method(void); /* TLSv1.2 */
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_2_server_method(void);
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_2_client_method(void);
#  endif
# endif

# ifndef OPENSSL_NO_DTLS1_METHOD
#  ifndef OPENSSL_NO_DEPRECATED_1_1_0
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_method(void); /* DTLSv1.0 */
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_server_method(void);
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_client_method(void);
#  endif
# endif

# ifndef OPENSSL_NO_DTLS1_2_METHOD
/* DTLSv1.2 */
#  ifndef OPENSSL_NO_DEPRECATED_1_1_0
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_2_method(void);
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_2_server_method(void);
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_2_client_method(void);
#  endif
# endif

__owur const SSL_METHOD *DTLS_method(void); /* DTLS 1.0 and 1.2 */
__owur const SSL_METHOD *DTLS_server_method(void); /* DTLS 1.0 and 1.2 */
__owur const SSL_METHOD *DTLS_client_method(void); /* DTLS 1.0 and 1.2 */

__owur size_t DTLS_get_data_mtu(const SSL *s);

__owur STACK_OF(SSL_CIPHER) *SSL_get_ciphers(const SSL *s);
__owur STACK_OF(SSL_CIPHER) *SSL_CTX_get_ciphers(const SSL_CTX *ctx);
__owur STACK_OF(SSL_CIPHER) *SSL_get_client_ciphers(const SSL *s);
__owur STACK_OF(SSL_CIPHER) *SSL_get1_supported_ciphers(SSL *s);

__owur int SSL_do_handshake(SSL *s);
int SSL_key_update(SSL *s, int updatetype);
int SSL_get_key_update_type(const SSL *s);
int SSL_renegotiate(SSL *s);
int SSL_renegotiate_abbreviated(SSL *s);
__owur int SSL_renegotiate_pending(const SSL *s);
int SSL_new_session_ticket(SSL *s);
int SSL_shutdown(SSL *s);
__owur int SSL_verify_client_post_handshake(SSL *s);
void SSL_CTX_set_post_handshake_auth(SSL_CTX *ctx, int val);
void SSL_set_post_handshake_auth(SSL *s, int val);

__owur const SSL_METHOD *SSL_CTX_get_ssl_method(const SSL_CTX *ctx);
__owur const SSL_METHOD *SSL_get_ssl_method(const SSL *s);
__owur int SSL_set_ssl_method(SSL *s, const SSL_METHOD *method);
__owur const char *SSL_alert_type_string_long(int value);
__owur const char *SSL_alert_type_string(int value);
__owur const char *SSL_alert_desc_string_long(int value);
__owur const char *SSL_alert_desc_string(int value);

void SSL_set0_CA_list(SSL *s, STACK_OF(X509_NAME) *name_list);
void SSL_CTX_set0_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *name_list);
__owur const STACK_OF(X509_NAME) *SSL_get0_CA_list(const SSL *s);
__owur const STACK_OF(X509_NAME) *SSL_CTX_get0_CA_list(const SSL_CTX *ctx);
__owur int SSL_add1_to_CA_list(SSL *ssl, const X509 *x);
__owur int SSL_CTX_add1_to_CA_list(SSL_CTX *ctx, const X509 *x);
__owur const STACK_OF(X509_NAME) *SSL_get0_peer_CA_list(const SSL *s);

void SSL_set_client_CA_list(SSL *s, STACK_OF(X509_NAME) *name_list);
void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *name_list);
__owur STACK_OF(X509_NAME) *SSL_get_client_CA_list(const SSL *s);
__owur STACK_OF(X509_NAME) *SSL_CTX_get_client_CA_list(const SSL_CTX *s);
__owur int SSL_add_client_CA(SSL *ssl, X509 *x);
__owur int SSL_CTX_add_client_CA(SSL_CTX *ctx, X509 *x);

void SSL_set_connect_state(SSL *s);
void SSL_set_accept_state(SSL *s);

__owur long SSL_get_default_timeout(const SSL *s);

# ifndef OPENSSL_NO_DEPRECATED_1_1_0
#  define SSL_library_init() OPENSSL_init_ssl(0, NULL)
# endif

__owur char *SSL_CIPHER_description(const SSL_CIPHER *, char *buf, int size);
__owur STACK_OF(X509_NAME) *SSL_dup_CA_list(const STACK_OF(X509_NAME) *sk);

__owur SSL *SSL_dup(SSL *ssl);

__owur X509 *SSL_get_certificate(const SSL *ssl);
/*
 * EVP_PKEY
 */
struct evp_pkey_st *SSL_get_privatekey(const SSL *ssl);

__owur X509 *SSL_CTX_get0_certificate(const SSL_CTX *ctx);
__owur EVP_PKEY *SSL_CTX_get0_privatekey(const SSL_CTX *ctx);

void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx, int mode);
__owur int SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx);
void SSL_set_quiet_shutdown(SSL *ssl, int mode);
__owur int SSL_get_quiet_shutdown(const SSL *ssl);
void SSL_set_shutdown(SSL *ssl, int mode);
__owur int SSL_get_shutdown(const SSL *ssl);
__owur int SSL_version(const SSL *ssl);
__owur int SSL_client_version(const SSL *s);
__owur int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx);
__owur int SSL_CTX_set_default_verify_dir(SSL_CTX *ctx);
__owur int SSL_CTX_set_default_verify_file(SSL_CTX *ctx);
__owur int SSL_CTX_set_default_verify_store(SSL_CTX *ctx);
__owur int SSL_CTX_load_verify_file(SSL_CTX *ctx, const char *CAfile);
__owur int SSL_CTX_load_verify_dir(SSL_CTX *ctx, const char *CApath);
__owur int SSL_CTX_load_verify_store(SSL_CTX *ctx, const char *CAstore);
__owur int SSL_CTX_load_verify_locations(SSL_CTX *ctx,
                                                        const char *CAfile,
                                                        const char *CApath);
# define SSL_get0_session SSL_get_session/* just peek at pointer */
__owur SSL_SESSION *SSL_get_session(const SSL *ssl);
__owur SSL_SESSION *SSL_get1_session(SSL *ssl); /* obtain a reference count */
__owur SSL_CTX *SSL_get_SSL_CTX(const SSL *ssl);
SSL_CTX *SSL_set_SSL_CTX(SSL *ssl, SSL_CTX *ctx);
void SSL_set_info_callback(SSL *ssl,
                           void (*cb) (const SSL *ssl, int type, int val));
void (*SSL_get_info_callback(const SSL *ssl)) (const SSL *ssl, int type,
                                               int val);
__owur OSSL_HANDSHAKE_STATE SSL_get_state(const SSL *ssl);

void SSL_set_verify_result(SSL *ssl, long v);
__owur long SSL_get_verify_result(const SSL *ssl);
__owur STACK_OF(X509) *SSL_get0_verified_chain(const SSL *s);

__owur size_t SSL_get_client_random(const SSL *ssl, unsigned char *out,
                                    size_t outlen);
__owur size_t SSL_get_server_random(const SSL *ssl, unsigned char *out,
                                    size_t outlen);
__owur size_t SSL_SESSION_get_master_key(const SSL_SESSION *sess,
                                         unsigned char *out, size_t outlen);
__owur int SSL_SESSION_set1_master_key(SSL_SESSION *sess,
                                       const unsigned char *in, size_t len);
uint8_t SSL_SESSION_get_max_fragment_length(const SSL_SESSION *sess);

#define SSL_get_ex_new_index(l, p, newf, dupf, freef) \
    CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL, l, p, newf, dupf, freef)
__owur int SSL_set_ex_data(SSL *ssl, int idx, void *data);
void *SSL_get_ex_data(const SSL *ssl, int idx);
#define SSL_SESSION_get_ex_new_index(l, p, newf, dupf, freef) \
    CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL_SESSION, l, p, newf, dupf, freef)
__owur int SSL_SESSION_set_ex_data(SSL_SESSION *ss, int idx, void *data);
void *SSL_SESSION_get_ex_data(const SSL_SESSION *ss, int idx);
#define SSL_CTX_get_ex_new_index(l, p, newf, dupf, freef) \
    CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL_CTX, l, p, newf, dupf, freef)
__owur int SSL_CTX_set_ex_data(SSL_CTX *ssl, int idx, void *data);
void *SSL_CTX_get_ex_data(const SSL_CTX *ssl, int idx);

__owur int SSL_get_ex_data_X509_STORE_CTX_idx(void);

# define SSL_CTX_sess_set_cache_size(ctx,t) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_SIZE,t,NULL)
# define SSL_CTX_sess_get_cache_size(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_SIZE,0,NULL)
# define SSL_CTX_set_session_cache_mode(ctx,m) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_MODE,m,NULL)
# define SSL_CTX_get_session_cache_mode(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_MODE,0,NULL)

# define SSL_CTX_get_default_read_ahead(ctx) SSL_CTX_get_read_ahead(ctx)
# define SSL_CTX_set_default_read_ahead(ctx,m) SSL_CTX_set_read_ahead(ctx,m)
# define SSL_CTX_get_read_ahead(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_GET_READ_AHEAD,0,NULL)
# define SSL_CTX_set_read_ahead(ctx,m) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_READ_AHEAD,m,NULL)
# define SSL_CTX_get_max_cert_list(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL)
# define SSL_CTX_set_max_cert_list(ctx,m) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL)
# define SSL_get_max_cert_list(ssl) \
        SSL_ctrl(ssl,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL)
# define SSL_set_max_cert_list(ssl,m) \
        SSL_ctrl(ssl,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL)

# define SSL_CTX_set_max_send_fragment(ctx,m) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL)
# define SSL_set_max_send_fragment(ssl,m) \
        SSL_ctrl(ssl,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL)
# define SSL_CTX_set_split_send_fragment(ctx,m) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SPLIT_SEND_FRAGMENT,m,NULL)
# define SSL_set_split_send_fragment(ssl,m) \
        SSL_ctrl(ssl,SSL_CTRL_SET_SPLIT_SEND_FRAGMENT,m,NULL)
# define SSL_CTX_set_max_pipelines(ctx,m) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_PIPELINES,m,NULL)
# define SSL_set_max_pipelines(ssl,m) \
        SSL_ctrl(ssl,SSL_CTRL_SET_MAX_PIPELINES,m,NULL)
# define SSL_set_retry_verify(ssl) \
        (SSL_ctrl(ssl,SSL_CTRL_SET_RETRY_VERIFY,0,NULL) > 0)

void SSL_CTX_set_default_read_buffer_len(SSL_CTX *ctx, size_t len);
void SSL_set_default_read_buffer_len(SSL *s, size_t len);

# ifndef OPENSSL_NO_DH
#  ifndef OPENSSL_NO_DEPRECATED_3_0
/* NB: the |keylength| is only applicable when is_export is true */
OSSL_DEPRECATEDIN_3_0
void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx,
                                 DH *(*dh) (SSL *ssl, int is_export,
                                            int keylength));
OSSL_DEPRECATEDIN_3_0
void SSL_set_tmp_dh_callback(SSL *ssl,
                             DH *(*dh) (SSL *ssl, int is_export,
                                        int keylength));
#  endif
# endif

__owur const COMP_METHOD *SSL_get_current_compression(const SSL *s);
__owur const COMP_METHOD *SSL_get_current_expansion(const SSL *s);
__owur const char *SSL_COMP_get_name(const COMP_METHOD *comp);
__owur const char *SSL_COMP_get0_name(const SSL_COMP *comp);
__owur int SSL_COMP_get_id(const SSL_COMP *comp);
STACK_OF(SSL_COMP) *SSL_COMP_get_compression_methods(void);
__owur STACK_OF(SSL_COMP) *SSL_COMP_set0_compression_methods(STACK_OF(SSL_COMP)
                                                             *meths);
# ifndef OPENSSL_NO_DEPRECATED_1_1_0
#  define SSL_COMP_free_compression_methods() while(0) continue
# endif
__owur int SSL_COMP_add_compression_method(int id, COMP_METHOD *cm);

const SSL_CIPHER *SSL_CIPHER_find(SSL *ssl, const unsigned char *ptr);
int SSL_CIPHER_get_cipher_nid(const SSL_CIPHER *c);
int SSL_CIPHER_get_digest_nid(const SSL_CIPHER *c);
int SSL_bytes_to_cipher_list(SSL *s, const unsigned char *bytes, size_t len,
                             int isv2format, STACK_OF(SSL_CIPHER) **sk,
                             STACK_OF(SSL_CIPHER) **scsvs);

/* TLS extensions functions */
__owur int SSL_set_session_ticket_ext(SSL *s, void *ext_data, int ext_len);

__owur int SSL_set_session_ticket_ext_cb(SSL *s,
                                         tls_session_ticket_ext_cb_fn cb,
                                         void *arg);

/* Pre-shared secret session resumption functions */
__owur int SSL_set_session_secret_cb(SSL *s,
                                     tls_session_secret_cb_fn session_secret_cb,
                                     void *arg);

void SSL_CTX_set_not_resumable_session_callback(SSL_CTX *ctx,
                                                int (*cb) (SSL *ssl,
                                                           int
                                                           is_forward_secure));

void SSL_set_not_resumable_session_callback(SSL *ssl,
                                            int (*cb) (SSL *ssl,
                                                       int is_forward_secure));

void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx,
                                         size_t (*cb) (SSL *ssl, int type,
                                                       size_t len, void *arg));
void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg);
void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx);
int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size);

int SSL_set_record_padding_callback(SSL *ssl,
                                    size_t (*cb) (SSL *ssl, int type,
                                                  size_t len, void *arg));
void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg);
void *SSL_get_record_padding_callback_arg(const SSL *ssl);
int SSL_set_block_padding(SSL *ssl, size_t block_size);

int SSL_set_num_tickets(SSL *s, size_t num_tickets);
size_t SSL_get_num_tickets(const SSL *s);
int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets);
size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx);

# ifndef OPENSSL_NO_DEPRECATED_1_1_0
#  define SSL_cache_hit(s) SSL_session_reused(s)
# endif

__owur int SSL_session_reused(const SSL *s);
__owur int SSL_is_server(const SSL *s);

__owur __owur SSL_CONF_CTX *SSL_CONF_CTX_new(void);
int SSL_CONF_CTX_finish(SSL_CONF_CTX *cctx);
void SSL_CONF_CTX_free(SSL_CONF_CTX *cctx);
unsigned int SSL_CONF_CTX_set_flags(SSL_CONF_CTX *cctx, unsigned int flags);
__owur unsigned int SSL_CONF_CTX_clear_flags(SSL_CONF_CTX *cctx,
                                             unsigned int flags);
__owur int SSL_CONF_CTX_set1_prefix(SSL_CONF_CTX *cctx, const char *pre);

void SSL_CONF_CTX_set_ssl(SSL_CONF_CTX *cctx, SSL *ssl);
void SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *cctx, SSL_CTX *ctx);

__owur int SSL_CONF_cmd(SSL_CONF_CTX *cctx, const char *cmd, const char *value);
__owur int SSL_CONF_cmd_argv(SSL_CONF_CTX *cctx, int *pargc, char ***pargv);
__owur int SSL_CONF_cmd_value_type(SSL_CONF_CTX *cctx, const char *cmd);

void SSL_add_ssl_module(void);
int SSL_config(SSL *s, const char *name);
int SSL_CTX_config(SSL_CTX *ctx, const char *name);

# ifndef OPENSSL_NO_SSL_TRACE
void SSL_trace(int write_p, int version, int content_type,
               const void *buf, size_t len, SSL *ssl, void *arg);
# endif

# ifndef OPENSSL_NO_SOCK
int DTLSv1_listen(SSL *s, BIO_ADDR *client);
# endif

# ifndef OPENSSL_NO_CT

/*
 * A callback for verifying that the received SCTs are sufficient.
 * Expected to return 1 if they are sufficient, otherwise 0.
 * May return a negative integer if an error occurs.
 * A connection should be aborted if the SCTs are deemed insufficient.
 */
typedef int (*ssl_ct_validation_cb)(const CT_POLICY_EVAL_CTX *ctx,
                                    const STACK_OF(SCT) *scts, void *arg);

/*
 * Sets a |callback| that is invoked upon receipt of ServerHelloDone to validate
 * the received SCTs.
 * If the callback returns a non-positive result, the connection is terminated.
 * Call this function before beginning a handshake.
 * If a NULL |callback| is provided, SCT validation is disabled.
 * |arg| is arbitrary userdata that will be passed to the callback whenever it
 * is invoked. Ownership of |arg| remains with the caller.
 *
 * NOTE: A side-effect of setting a CT callback is that an OCSP stapled response
 *       will be requested.
 */
int SSL_set_ct_validation_callback(SSL *s, ssl_ct_validation_cb callback,
                                   void *arg);
int SSL_CTX_set_ct_validation_callback(SSL_CTX *ctx,
                                       ssl_ct_validation_cb callback,
                                       void *arg);
#define SSL_disable_ct(s) \
        ((void) SSL_set_validation_callback((s), NULL, NULL))
#define SSL_CTX_disable_ct(ctx) \
        ((void) SSL_CTX_set_validation_callback((ctx), NULL, NULL))

/*
 * The validation type enumerates the available behaviours of the built-in SSL
 * CT validation callback selected via SSL_enable_ct() and SSL_CTX_enable_ct().
 * The underlying callback is a static function in libssl.
 */
enum {
    SSL_CT_VALIDATION_PERMISSIVE = 0,
    SSL_CT_VALIDATION_STRICT
};

/*
 * Enable CT by setting up a callback that implements one of the built-in
 * validation variants.  The SSL_CT_VALIDATION_PERMISSIVE variant always
 * continues the handshake, the application can make appropriate decisions at
 * handshake completion.  The SSL_CT_VALIDATION_STRICT variant requires at
 * least one valid SCT, or else handshake termination will be requested.  The
 * handshake may continue anyway if SSL_VERIFY_NONE is in effect.
 */
int SSL_enable_ct(SSL *s, int validation_mode);
int SSL_CTX_enable_ct(SSL_CTX *ctx, int validation_mode);

/*
 * Report whether a non-NULL callback is enabled.
 */
int SSL_ct_is_enabled(const SSL *s);
int SSL_CTX_ct_is_enabled(const SSL_CTX *ctx);

/* Gets the SCTs received from a connection */
const STACK_OF(SCT) *SSL_get0_peer_scts(SSL *s);

/*
 * Loads the CT log list from the default location.
 * If a CTLOG_STORE has previously been set using SSL_CTX_set_ctlog_store,
 * the log information loaded from this file will be appended to the
 * CTLOG_STORE.
 * Returns 1 on success, 0 otherwise.
 */
int SSL_CTX_set_default_ctlog_list_file(SSL_CTX *ctx);

/*
 * Loads the CT log list from the specified file path.
 * If a CTLOG_STORE has previously been set using SSL_CTX_set_ctlog_store,
 * the log information loaded from this file will be appended to the
 * CTLOG_STORE.
 * Returns 1 on success, 0 otherwise.
 */
int SSL_CTX_set_ctlog_list_file(SSL_CTX *ctx, const char *path);

/*
 * Sets the CT log list used by all SSL connections created from this SSL_CTX.
 * Ownership of the CTLOG_STORE is transferred to the SSL_CTX.
 */
void SSL_CTX_set0_ctlog_store(SSL_CTX *ctx, CTLOG_STORE *logs);

/*
 * Gets the CT log list used by all SSL connections created from this SSL_CTX.
 * This will be NULL unless one of the following functions has been called:
 * - SSL_CTX_set_default_ctlog_list_file
 * - SSL_CTX_set_ctlog_list_file
 * - SSL_CTX_set_ctlog_store
 */
const CTLOG_STORE *SSL_CTX_get0_ctlog_store(const SSL_CTX *ctx);

# endif /* OPENSSL_NO_CT */

/* What the "other" parameter contains in security callback */
/* Mask for type */
# define SSL_SECOP_OTHER_TYPE    0xffff0000
# define SSL_SECOP_OTHER_NONE    0
# define SSL_SECOP_OTHER_CIPHER  (1 << 16)
# define SSL_SECOP_OTHER_CURVE   (2 << 16)
# define SSL_SECOP_OTHER_DH      (3 << 16)
# define SSL_SECOP_OTHER_PKEY    (4 << 16)
# define SSL_SECOP_OTHER_SIGALG  (5 << 16)
# define SSL_SECOP_OTHER_CERT    (6 << 16)

/* Indicated operation refers to peer key or certificate */
# define SSL_SECOP_PEER          0x1000

/* Values for "op" parameter in security callback */

/* Called to filter ciphers */
/* Ciphers client supports */
# define SSL_SECOP_CIPHER_SUPPORTED      (1 | SSL_SECOP_OTHER_CIPHER)
/* Cipher shared by client/server */
# define SSL_SECOP_CIPHER_SHARED         (2 | SSL_SECOP_OTHER_CIPHER)
/* Sanity check of cipher server selects */
# define SSL_SECOP_CIPHER_CHECK          (3 | SSL_SECOP_OTHER_CIPHER)
/* Curves supported by client */
# define SSL_SECOP_CURVE_SUPPORTED       (4 | SSL_SECOP_OTHER_CURVE)
/* Curves shared by client/server */
# define SSL_SECOP_CURVE_SHARED          (5 | SSL_SECOP_OTHER_CURVE)
/* Sanity check of curve server selects */
# define SSL_SECOP_CURVE_CHECK           (6 | SSL_SECOP_OTHER_CURVE)
/* Temporary DH key */
# define SSL_SECOP_TMP_DH                (7 | SSL_SECOP_OTHER_PKEY)
/* SSL/TLS version */
# define SSL_SECOP_VERSION               (9 | SSL_SECOP_OTHER_NONE)
/* Session tickets */
# define SSL_SECOP_TICKET                (10 | SSL_SECOP_OTHER_NONE)
/* Supported signature algorithms sent to peer */
# define SSL_SECOP_SIGALG_SUPPORTED      (11 | SSL_SECOP_OTHER_SIGALG)
/* Shared signature algorithm */
# define SSL_SECOP_SIGALG_SHARED         (12 | SSL_SECOP_OTHER_SIGALG)
/* Sanity check signature algorithm allowed */
# define SSL_SECOP_SIGALG_CHECK          (13 | SSL_SECOP_OTHER_SIGALG)
/* Used to get mask of supported public key signature algorithms */
# define SSL_SECOP_SIGALG_MASK           (14 | SSL_SECOP_OTHER_SIGALG)
/* Use to see if compression is allowed */
# define SSL_SECOP_COMPRESSION           (15 | SSL_SECOP_OTHER_NONE)
/* EE key in certificate */
# define SSL_SECOP_EE_KEY                (16 | SSL_SECOP_OTHER_CERT)
/* CA key in certificate */
# define SSL_SECOP_CA_KEY                (17 | SSL_SECOP_OTHER_CERT)
/* CA digest algorithm in certificate */
# define SSL_SECOP_CA_MD                 (18 | SSL_SECOP_OTHER_CERT)
/* Peer EE key in certificate */
# define SSL_SECOP_PEER_EE_KEY           (SSL_SECOP_EE_KEY | SSL_SECOP_PEER)
/* Peer CA key in certificate */
# define SSL_SECOP_PEER_CA_KEY           (SSL_SECOP_CA_KEY | SSL_SECOP_PEER)
/* Peer CA digest algorithm in certificate */
# define SSL_SECOP_PEER_CA_MD            (SSL_SECOP_CA_MD | SSL_SECOP_PEER)

void SSL_set_security_level(SSL *s, int level);
__owur int SSL_get_security_level(const SSL *s);
void SSL_set_security_callback(SSL *s,
                               int (*cb) (const SSL *s, const SSL_CTX *ctx,
                                          int op, int bits, int nid,
                                          void *other, void *ex));
int (*SSL_get_security_callback(const SSL *s)) (const SSL *s,
                                                const SSL_CTX *ctx, int op,
                                                int bits, int nid, void *other,
                                                void *ex);
void SSL_set0_security_ex_data(SSL *s, void *ex);
__owur void *SSL_get0_security_ex_data(const SSL *s);

void SSL_CTX_set_security_level(SSL_CTX *ctx, int level);
__owur int SSL_CTX_get_security_level(const SSL_CTX *ctx);
void SSL_CTX_set_security_callback(SSL_CTX *ctx,
                                   int (*cb) (const SSL *s, const SSL_CTX *ctx,
                                              int op, int bits, int nid,
                                              void *other, void *ex));
int (*SSL_CTX_get_security_callback(const SSL_CTX *ctx)) (const SSL *s,
                                                          const SSL_CTX *ctx,
                                                          int op, int bits,
                                                          int nid,
                                                          void *other,
                                                          void *ex);
void SSL_CTX_set0_security_ex_data(SSL_CTX *ctx, void *ex);
__owur void *SSL_CTX_get0_security_ex_data(const SSL_CTX *ctx);

/* OPENSSL_INIT flag 0x010000 reserved for internal use */
# define OPENSSL_INIT_NO_LOAD_SSL_STRINGS    0x00100000L
# define OPENSSL_INIT_LOAD_SSL_STRINGS       0x00200000L

# define OPENSSL_INIT_SSL_DEFAULT \
        (OPENSSL_INIT_LOAD_SSL_STRINGS | OPENSSL_INIT_LOAD_CRYPTO_STRINGS)

int OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);

# ifndef OPENSSL_NO_UNIT_TEST
__owur const struct openssl_ssl_test_functions *SSL_test_functions(void);
# endif

__owur int SSL_free_buffers(SSL *ssl);
__owur int SSL_alloc_buffers(SSL *ssl);

/* Status codes passed to the decrypt session ticket callback. Some of these
 * are for internal use only and are never passed to the callback. */
typedef int SSL_TICKET_STATUS;

/* Support for ticket appdata */
/* fatal error, malloc failure */
# define SSL_TICKET_FATAL_ERR_MALLOC 0
/* fatal error, either from parsing or decrypting the ticket */
# define SSL_TICKET_FATAL_ERR_OTHER  1
/* No ticket present */
# define SSL_TICKET_NONE             2
/* Empty ticket present */
# define SSL_TICKET_EMPTY            3
/* the ticket couldn't be decrypted */
# define SSL_TICKET_NO_DECRYPT       4
/* a ticket was successfully decrypted */
# define SSL_TICKET_SUCCESS          5
/* same as above but the ticket needs to be renewed */
# define SSL_TICKET_SUCCESS_RENEW    6

/* Return codes for the decrypt session ticket callback */
typedef int SSL_TICKET_RETURN;

/* An error occurred */
#define SSL_TICKET_RETURN_ABORT             0
/* Do not use the ticket, do not send a renewed ticket to the client */
#define SSL_TICKET_RETURN_IGNORE            1
/* Do not use the ticket, send a renewed ticket to the client */
#define SSL_TICKET_RETURN_IGNORE_RENEW      2
/* Use the ticket, do not send a renewed ticket to the client */
#define SSL_TICKET_RETURN_USE               3
/* Use the ticket, send a renewed ticket to the client */
#define SSL_TICKET_RETURN_USE_RENEW         4

typedef int (*SSL_CTX_generate_session_ticket_fn)(SSL *s, void *arg);
typedef SSL_TICKET_RETURN (*SSL_CTX_decrypt_session_ticket_fn)(SSL *s, SSL_SESSION *ss,
                                                               const unsigned char *keyname,
                                                               size_t keyname_length,
                                                               SSL_TICKET_STATUS status,
                                                               void *arg);
int SSL_CTX_set_session_ticket_cb(SSL_CTX *ctx,
                                  SSL_CTX_generate_session_ticket_fn gen_cb,
                                  SSL_CTX_decrypt_session_ticket_fn dec_cb,
                                  void *arg);
int SSL_SESSION_set1_ticket_appdata(SSL_SESSION *ss, const void *data, size_t len);
int SSL_SESSION_get0_ticket_appdata(SSL_SESSION *ss, void **data, size_t *len);

typedef unsigned int (*DTLS_timer_cb)(SSL *s, unsigned int timer_us);

void DTLS_set_timer_cb(SSL *s, DTLS_timer_cb cb);


typedef int (*SSL_allow_early_data_cb_fn)(SSL *s, void *arg);
void SSL_CTX_set_allow_early_data_cb(SSL_CTX *ctx,
                                     SSL_allow_early_data_cb_fn cb,
                                     void *arg);
void SSL_set_allow_early_data_cb(SSL *s,
                                 SSL_allow_early_data_cb_fn cb,
                                 void *arg);

/* store the default cipher strings inside the library */
const char *OSSL_default_cipher_list(void);
const char *OSSL_default_ciphersuites(void);

#  ifndef OPENSSL_NO_QUIC
/*
 * QUIC integration - The QUIC interface matches BoringSSL
 *
 * ssl_encryption_level_t represents a specific QUIC encryption level used to
 * transmit handshake messages. BoringSSL has this as an 'enum'.
 */
#include <openssl/quic.h>

/* Used by Chromium/QUIC - moved from evp.h to avoid breaking FIPS checksums */
# define X25519_PRIVATE_KEY_LEN          32
# define X25519_PUBLIC_VALUE_LEN         32

/* moved from types.h to avoid breaking FIPS checksums */
typedef struct ssl_quic_method_st SSL_QUIC_METHOD;

typedef enum ssl_encryption_level_t {
    ssl_encryption_initial = 0,
    ssl_encryption_early_data,
    ssl_encryption_handshake,
    ssl_encryption_application
} OSSL_ENCRYPTION_LEVEL;

struct ssl_quic_method_st {
    int (*set_encryption_secrets)(SSL *ssl, OSSL_ENCRYPTION_LEVEL level,
                                  const uint8_t *read_secret,
                                  const uint8_t *write_secret, size_t secret_len);
    int (*add_handshake_data)(SSL *ssl, OSSL_ENCRYPTION_LEVEL level,
                              const uint8_t *data, size_t len);
    int (*flush_flight)(SSL *ssl);
    int (*send_alert)(SSL *ssl, enum ssl_encryption_level_t level, uint8_t alert);
};

__owur int SSL_CTX_set_quic_method(SSL_CTX *ctx, const SSL_QUIC_METHOD *quic_method);
__owur int SSL_set_quic_method(SSL *ssl, const SSL_QUIC_METHOD *quic_method);
__owur int SSL_set_quic_transport_params(SSL *ssl,
                                         const uint8_t *params,
                                         size_t params_len);
void SSL_get_peer_quic_transport_params(const SSL *ssl,
                                        const uint8_t **out_params,
                                        size_t *out_params_len);
__owur size_t SSL_quic_max_handshake_flight_len(const SSL *ssl, OSSL_ENCRYPTION_LEVEL level);
__owur OSSL_ENCRYPTION_LEVEL SSL_quic_read_level(const SSL *ssl);
__owur OSSL_ENCRYPTION_LEVEL SSL_quic_write_level(const SSL *ssl);
__owur int SSL_provide_quic_data(SSL *ssl, OSSL_ENCRYPTION_LEVEL level,
                                 const uint8_t *data, size_t len);
__owur int SSL_process_quic_post_handshake(SSL *ssl);

__owur int SSL_is_quic(SSL *ssl);

/* BoringSSL API */
void SSL_set_quic_use_legacy_codepoint(SSL *ssl, int use_legacy);

/*
 * Set an explicit value that you want to use
 * If 0 (default) the server will use the highest extenstion the client sent
 * If 0 (default) the client will send both extensions
 */
void SSL_set_quic_transport_version(SSL *ssl, int version);
__owur int SSL_get_quic_transport_version(const SSL *ssl);
/* Returns the negotiated version, or -1 on error */
__owur int SSL_get_peer_quic_transport_version(const SSL *ssl);

int SSL_CIPHER_get_prf_nid(const SSL_CIPHER *c);

void SSL_set_quic_early_data_enabled(SSL *ssl, int enabled);

#  endif

# ifdef  __cplusplus
}
# endif
#endif
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     /*
 * WARNING: do not edit!
 * Generated by makefile from include/openssl/ssl.h.in
 *
 * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved.
 * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved
 * Copyright 2005 Nokia. All rights reserved.
 *
 * Licensed under the Apache License 2.0 (the "License").  You may not use
 * this file except in compliance with the License.  You can obtain a copy
 * in the file LICENSE in the source distribution or at
 * https://www.openssl.org/source/license.html
 */



#ifndef OPENSSL_SSL_H
# define OPENSSL_SSL_H
# pragma once

# include <openssl/macros.h>
# ifndef OPENSSL_NO_DEPRECATED_3_0
#  define HEADER_SSL_H
# endif

# include <openssl/e_os2.h>
# include <openssl/opensslconf.h>
# include <openssl/comp.h>
# include <openssl/bio.h>
# ifndef OPENSSL_NO_DEPRECATED_1_1_0
#  include <openssl/x509.h>
#  include <openssl/crypto.h>
#  include <openssl/buffer.h>
# endif
# include <openssl/lhash.h>
# include <openssl/pem.h>
# include <openssl/hmac.h>
# include <openssl/async.h>

# include <openssl/safestack.h>
# include <openssl/symhacks.h>
# include <openssl/ct.h>
# include <openssl/sslerr.h>
# include <openssl/prov_ssl.h>

#ifdef  __cplusplus
extern "C" {
#endif

/* OpenSSL version number for ASN.1 encoding of the session information */
/*-
 * Version 0 - initial version
 * Version 1 - added the optional peer certificate
 */
# define SSL_SESSION_ASN1_VERSION 0x0001

# define SSL_MAX_SSL_SESSION_ID_LENGTH           32
# define SSL_MAX_SID_CTX_LENGTH                  32

# define SSL_MIN_RSA_MODULUS_LENGTH_IN_BYTES     (512/8)
# define SSL_MAX_KEY_ARG_LENGTH                  8
/* SSL_MAX_MASTER_KEY_LENGTH is defined in prov_ssl.h */

/* The maximum number of encrypt/decrypt pipelines we can support */
# define SSL_MAX_PIPELINES  32

/* text strings for the ciphers */

/* These are used to specify which ciphers to use and not to use */

# define SSL_TXT_LOW             "LOW"
# define SSL_TXT_MEDIUM          "MEDIUM"
# define SSL_TXT_HIGH            "HIGH"
# define SSL_TXT_FIPS            "FIPS"

# define SSL_TXT_aNULL           "aNULL"
# define SSL_TXT_eNULL           "eNULL"
# define SSL_TXT_NULL            "NULL"

# define SSL_TXT_kRSA            "kRSA"
# define SSL_TXT_kDHr            "kDHr"/* this cipher class has been removed */
# define SSL_TXT_kDHd            "kDHd"/* this cipher class has been removed */
# define SSL_TXT_kDH             "kDH"/* this cipher class has been removed */
# define SSL_TXT_kEDH            "kEDH"/* alias for kDHE */
# define SSL_TXT_kDHE            "kDHE"
# define SSL_TXT_kECDHr          "kECDHr"/* this cipher class has been removed */
# define SSL_TXT_kECDHe          "kECDHe"/* this cipher class has been removed */
# define SSL_TXT_kECDH           "kECDH"/* this cipher class has been removed */
# define SSL_TXT_kEECDH          "kEECDH"/* alias for kECDHE */
# define SSL_TXT_kECDHE          "kECDHE"
# define SSL_TXT_kPSK            "kPSK"
# define SSL_TXT_kRSAPSK         "kRSAPSK"
# define SSL_TXT_kECDHEPSK       "kECDHEPSK"
# define SSL_TXT_kDHEPSK         "kDHEPSK"
# define SSL_TXT_kGOST           "kGOST"
# define SSL_TXT_kGOST18         "kGOST18"
# define SSL_TXT_kSRP            "kSRP"

# define SSL_TXT_aRSA            "aRSA"
# define SSL_TXT_aDSS            "aDSS"
# define SSL_TXT_aDH             "aDH"/* this cipher class has been removed */
# define SSL_TXT_aECDH           "aECDH"/* this cipher class has been removed */
# define SSL_TXT_aECDSA          "aECDSA"
# define SSL_TXT_aPSK            "aPSK"
# define SSL_TXT_aGOST94         "aGOST94"
# define SSL_TXT_aGOST01         "aGOST01"
# define SSL_TXT_aGOST12         "aGOST12"
# define SSL_TXT_aGOST           "aGOST"
# define SSL_TXT_aSRP            "aSRP"

# define SSL_TXT_DSS             "DSS"
# define SSL_TXT_DH              "DH"
# define SSL_TXT_DHE             "DHE"/* same as "kDHE:-ADH" */
# define SSL_TXT_EDH             "EDH"/* alias for DHE */
# define SSL_TXT_ADH             "ADH"
# define SSL_TXT_RSA             "RSA"
# define SSL_TXT_ECDH            "ECDH"
# define SSL_TXT_EECDH           "EECDH"/* alias for ECDHE" */
# define SSL_TXT_ECDHE           "ECDHE"/* same as "kECDHE:-AECDH" */
# define SSL_TXT_AECDH           "AECDH"
# define SSL_TXT_ECDSA           "ECDSA"
# define SSL_TXT_PSK             "PSK"
# define SSL_TXT_SRP             "SRP"

# define SSL_TXT_DES             "DES"
# define SSL_TXT_3DES            "3DES"
# define SSL_TXT_RC4             "RC4"
# define SSL_TXT_RC2             "RC2"
# define SSL_TXT_IDEA            "IDEA"
# define SSL_TXT_SEED            "SEED"
# define SSL_TXT_AES128          "AES128"
# define SSL_TXT_AES256          "AES256"
# define SSL_TXT_AES             "AES"
# define SSL_TXT_AES_GCM         "AESGCM"
# define SSL_TXT_AES_CCM         "AESCCM"
# define SSL_TXT_AES_CCM_8       "AESCCM8"
# define SSL_TXT_CAMELLIA128     "CAMELLIA128"
# define SSL_TXT_CAMELLIA256     "CAMELLIA256"
# define SSL_TXT_CAMELLIA        "CAMELLIA"
# define SSL_TXT_CHACHA20        "CHACHA20"
# define SSL_TXT_GOST            "GOST89"
# define SSL_TXT_ARIA            "ARIA"
# define SSL_TXT_ARIA_GCM        "ARIAGCM"
# define SSL_TXT_ARIA128         "ARIA128"
# define SSL_TXT_ARIA256         "ARIA256"
# define SSL_TXT_GOST2012_GOST8912_GOST8912 "GOST2012-GOST8912-GOST8912"
# define SSL_TXT_CBC             "CBC"

# define SSL_TXT_MD5             "MD5"
# define SSL_TXT_SHA1            "SHA1"
# define SSL_TXT_SHA             "SHA"/* same as "SHA1" */
# define SSL_TXT_GOST94          "GOST94"
# define SSL_TXT_GOST89MAC       "GOST89MAC"
# define SSL_TXT_GOST12          "GOST12"
# define SSL_TXT_GOST89MAC12     "GOST89MAC12"
# define SSL_TXT_SHA256          "SHA256"
# define SSL_TXT_SHA384          "SHA384"

# define SSL_TXT_SSLV3           "SSLv3"
# define SSL_TXT_TLSV1           "TLSv1"
# define SSL_TXT_TLSV1_1         "TLSv1.1"
# define SSL_TXT_TLSV1_2         "TLSv1.2"

# define SSL_TXT_ALL             "ALL"

/*-
 * COMPLEMENTOF* definitions. These identifiers are used to (de-select)
 * ciphers normally not being used.
 * Example: "RC4" will activate all ciphers using RC4 including ciphers
 * without authentication, which would normally disabled by DEFAULT (due
 * the "!ADH" being part of default). Therefore "RC4:!COMPLEMENTOFDEFAULT"
 * will make sure that it is also disabled in the specific selection.
 * COMPLEMENTOF* identifiers are portable between version, as adjustments
 * to the default cipher setup will also be included here.
 *
 * COMPLEMENTOFDEFAULT does not experience the same special treatment that
 * DEFAULT gets, as only selection is being done and no sorting as needed
 * for DEFAULT.
 */
# define SSL_TXT_CMPALL          "COMPLEMENTOFALL"
# define SSL_TXT_CMPDEF          "COMPLEMENTOFDEFAULT"

/*
 * The following cipher list is used by default. It also is substituted when
 * an application-defined cipher list string starts with 'DEFAULT'.
 * This applies to ciphersuites for TLSv1.2 and below.
 * DEPRECATED IN 3.0.0, in favor of OSSL_default_cipher_list()
 * Update both macro and function simultaneously
 */
# ifndef OPENSSL_NO_DEPRECATED_3_0
#  define SSL_DEFAULT_CIPHER_LIST "ALL:!COMPLEMENTOFDEFAULT:!eNULL"
/*
 * This is the default set of TLSv1.3 ciphersuites
 * DEPRECATED IN 3.0.0, in favor of OSSL_default_ciphersuites()
 * Update both macro and function simultaneously
 */
#  define TLS_DEFAULT_CIPHERSUITES "TLS_AES_256_GCM_SHA384:" \
                                   "TLS_CHACHA20_POLY1305_SHA256:" \
                                   "TLS_AES_128_GCM_SHA256"
# endif
/*
 * As of OpenSSL 1.0.0, ssl_create_cipher_list() in ssl/ssl_ciph.c always
 * starts with a reasonable order, and all we have to do for DEFAULT is
 * throwing out anonymous and unencrypted ciphersuites! (The latter are not
 * actually enabled by ALL, but "ALL:RSA" would enable some of them.)
 */

/* Used in SSL_set_shutdown()/SSL_get_shutdown(); */
# define SSL_SENT_SHUTDOWN       1
# define SSL_RECEIVED_SHUTDOWN   2

#ifdef __cplusplus
}
#endif

#ifdef  __cplusplus
extern "C" {
#endif

# define SSL_FILETYPE_ASN1       X509_FILETYPE_ASN1
# define SSL_FILETYPE_PEM        X509_FILETYPE_PEM

/*
 * This is needed to stop compilers complaining about the 'struct ssl_st *'
 * function parameters used to prototype callbacks in SSL_CTX.
 */
typedef struct ssl_st *ssl_crock_st;
typedef struct tls_session_ticket_ext_st TLS_SESSION_TICKET_EXT;
typedef struct ssl_method_st SSL_METHOD;
typedef struct ssl_cipher_st SSL_CIPHER;
typedef struct ssl_session_st SSL_SESSION;
typedef struct tls_sigalgs_st TLS_SIGALGS;
typedef struct ssl_conf_ctx_st SSL_CONF_CTX;
typedef struct ssl_comp_st SSL_COMP;

STACK_OF(SSL_CIPHER);
STACK_OF(SSL_COMP);

/* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/
typedef struct srtp_protection_profile_st {
    const char *name;
    unsigned long id;
} SRTP_PROTECTION_PROFILE;
SKM_DEFINE_STACK_OF_INTERNAL(SRTP_PROTECTION_PROFILE, SRTP_PROTECTION_PROFILE, SRTP_PROTECTION_PROFILE)
#define sk_SRTP_PROTECTION_PROFILE_num(sk) OPENSSL_sk_num(ossl_check_const_SRTP_PROTECTION_PROFILE_sk_type(sk))
#define sk_SRTP_PROTECTION_PROFILE_value(sk, idx) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_value(ossl_check_const_SRTP_PROTECTION_PROFILE_sk_type(sk), (idx)))
#define sk_SRTP_PROTECTION_PROFILE_new(cmp) ((STACK_OF(SRTP_PROTECTION_PROFILE) *)OPENSSL_sk_new(ossl_check_SRTP_PROTECTION_PROFILE_compfunc_type(cmp)))
#define sk_SRTP_PROTECTION_PROFILE_new_null() ((STACK_OF(SRTP_PROTECTION_PROFILE) *)OPENSSL_sk_new_null())
#define sk_SRTP_PROTECTION_PROFILE_new_reserve(cmp, n) ((STACK_OF(SRTP_PROTECTION_PROFILE) *)OPENSSL_sk_new_reserve(ossl_check_SRTP_PROTECTION_PROFILE_compfunc_type(cmp), (n)))
#define sk_SRTP_PROTECTION_PROFILE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), (n))
#define sk_SRTP_PROTECTION_PROFILE_free(sk) OPENSSL_sk_free(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk))
#define sk_SRTP_PROTECTION_PROFILE_zero(sk) OPENSSL_sk_zero(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk))
#define sk_SRTP_PROTECTION_PROFILE_delete(sk, i) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_delete(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), (i)))
#define sk_SRTP_PROTECTION_PROFILE_delete_ptr(sk, ptr) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_delete_ptr(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr)))
#define sk_SRTP_PROTECTION_PROFILE_push(sk, ptr) OPENSSL_sk_push(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr))
#define sk_SRTP_PROTECTION_PROFILE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr))
#define sk_SRTP_PROTECTION_PROFILE_pop(sk) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_pop(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk)))
#define sk_SRTP_PROTECTION_PROFILE_shift(sk) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_shift(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk)))
#define sk_SRTP_PROTECTION_PROFILE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk),ossl_check_SRTP_PROTECTION_PROFILE_freefunc_type(freefunc))
#define sk_SRTP_PROTECTION_PROFILE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr), (idx))
#define sk_SRTP_PROTECTION_PROFILE_set(sk, idx, ptr) ((SRTP_PROTECTION_PROFILE *)OPENSSL_sk_set(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), (idx), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr)))
#define sk_SRTP_PROTECTION_PROFILE_find(sk, ptr) OPENSSL_sk_find(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr))
#define sk_SRTP_PROTECTION_PROFILE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr))
#define sk_SRTP_PROTECTION_PROFILE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_type(ptr), pnum)
#define sk_SRTP_PROTECTION_PROFILE_sort(sk) OPENSSL_sk_sort(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk))
#define sk_SRTP_PROTECTION_PROFILE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SRTP_PROTECTION_PROFILE_sk_type(sk))
#define sk_SRTP_PROTECTION_PROFILE_dup(sk) ((STACK_OF(SRTP_PROTECTION_PROFILE) *)OPENSSL_sk_dup(ossl_check_const_SRTP_PROTECTION_PROFILE_sk_type(sk)))
#define sk_SRTP_PROTECTION_PROFILE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SRTP_PROTECTION_PROFILE) *)OPENSSL_sk_deep_copy(ossl_check_const_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_copyfunc_type(copyfunc), ossl_check_SRTP_PROTECTION_PROFILE_freefunc_type(freefunc)))
#define sk_SRTP_PROTECTION_PROFILE_set_cmp_func(sk, cmp) ((sk_SRTP_PROTECTION_PROFILE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SRTP_PROTECTION_PROFILE_sk_type(sk), ossl_check_SRTP_PROTECTION_PROFILE_compfunc_type(cmp)))



typedef int (*tls_session_ticket_ext_cb_fn)(SSL *s, const unsigned char *data,
                                            int len, void *arg);
typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len,
                                        STACK_OF(SSL_CIPHER) *peer_ciphers,
                                        const SSL_CIPHER **cipher, void *arg);

/* Extension context codes */
/* This extension is only allowed in TLS */
#define SSL_EXT_TLS_ONLY                        0x0001
/* This extension is only allowed in DTLS */
#define SSL_EXT_DTLS_ONLY                       0x0002
/* Some extensions may be allowed in DTLS but we don't implement them for it */
#define SSL_EXT_TLS_IMPLEMENTATION_ONLY         0x0004
/* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */
#define SSL_EXT_SSL3_ALLOWED                    0x0008
/* Extension is only defined for TLS1.2 and below */
#define SSL_EXT_TLS1_2_AND_BELOW_ONLY           0x0010
/* Extension is only defined for TLS1.3 and above */
#define SSL_EXT_TLS1_3_ONLY                     0x0020
/* Ignore this extension during parsing if we are resuming */
#define SSL_EXT_IGNORE_ON_RESUMPTION            0x0040
#define SSL_EXT_CLIENT_HELLO                    0x0080
/* Really means TLS1.2 or below */
#define SSL_EXT_TLS1_2_SERVER_HELLO             0x0100
#define SSL_EXT_TLS1_3_SERVER_HELLO             0x0200
#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS     0x0400
#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST      0x0800
#define SSL_EXT_TLS1_3_CERTIFICATE              0x1000
#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET       0x2000
#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST      0x4000

/* Typedefs for handling custom extensions */

typedef int (*custom_ext_add_cb)(SSL *s, unsigned int ext_type,
                                 const unsigned char **out, size_t *outlen,
                                 int *al, void *add_arg);

typedef void (*custom_ext_free_cb)(SSL *s, unsigned int ext_type,
                                   const unsigned char *out, void *add_arg);

typedef int (*custom_ext_parse_cb)(SSL *s, unsigned int ext_type,
                                   const unsigned char *in, size_t inlen,
                                   int *al, void *parse_arg);


typedef int (*SSL_custom_ext_add_cb_ex)(SSL *s, unsigned int ext_type,
                                        unsigned int context,
                                        const unsigned char **out,
                                        size_t *outlen, X509 *x,
                                        size_t chainidx,
                                        int *al, void *add_arg);

typedef void (*SSL_custom_ext_free_cb_ex)(SSL *s, unsigned int ext_type,
                                          unsigned int context,
                                          const unsigned char *out,
                                          void *add_arg);

typedef int (*SSL_custom_ext_parse_cb_ex)(SSL *s, unsigned int ext_type,
                                          unsigned int context,
                                          const unsigned char *in,
                                          size_t inlen, X509 *x,
                                          size_t chainidx,
                                          int *al, void *parse_arg);

/* Typedef for verification callback */
typedef int (*SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx);

/* Typedef for SSL async callback */
typedef int (*SSL_async_callback_fn)(SSL *s, void *arg);

#define SSL_OP_BIT(n)  ((uint64_t)1 << (uint64_t)n)

/*
 * SSL/TLS connection options.
 */
    /* Disable Extended master secret */
# define SSL_OP_NO_EXTENDED_MASTER_SECRET                SSL_OP_BIT(0)
    /* Cleanse plaintext copies of data delivered to the application */
# define SSL_OP_CLEANSE_PLAINTEXT                        SSL_OP_BIT(1)
    /* Allow initial connection to servers that don't support RI */
# define SSL_OP_LEGACY_SERVER_CONNECT                    SSL_OP_BIT(2)
    /* Enable support for Kernel TLS */
# define SSL_OP_ENABLE_KTLS                              SSL_OP_BIT(3)
# define SSL_OP_TLSEXT_PADDING                           SSL_OP_BIT(4)
# define SSL_OP_SAFARI_ECDHE_ECDSA_BUG                   SSL_OP_BIT(6)
# define SSL_OP_IGNORE_UNEXPECTED_EOF                    SSL_OP_BIT(7)
# define SSL_OP_ALLOW_CLIENT_RENEGOTIATION               SSL_OP_BIT(8)
# define SSL_OP_DISABLE_TLSEXT_CA_NAMES                  SSL_OP_BIT(9)
    /* In TLSv1.3 allow a non-(ec)dhe based kex_mode */
# define SSL_OP_ALLOW_NO_DHE_KEX                         SSL_OP_BIT(10)
    /*
     * Disable SSL 3.0/TLS 1.0 CBC vulnerability workaround that was added
     * in OpenSSL 0.9.6d.  Usually (depending on the application protocol)
     * the workaround is not needed.  Unfortunately some broken SSL/TLS
     * implementations cannot handle it at all, which is why we include it
     * in SSL_OP_ALL. Added in 0.9.6e
     */
# define SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS              SSL_OP_BIT(11)
    /* DTLS options */
# define SSL_OP_NO_QUERY_MTU                             SSL_OP_BIT(12)
    /* Turn on Cookie Exchange (on relevant for servers) */
# define SSL_OP_COOKIE_EXCHANGE                          SSL_OP_BIT(13)
    /* Don't use RFC4507 ticket extension */
# define SSL_OP_NO_TICKET                                SSL_OP_BIT(14)
# ifndef OPENSSL_NO_DTLS1_METHOD
    /*
     * Use Cisco's version identifier of DTLS_BAD_VER
     * (only with deprecated DTLSv1_client_method())
     */
#  define SSL_OP_CISCO_ANYCONNECT                        SSL_OP_BIT(15)
# endif
    /* As server, disallow session resumption on renegotiation */
# define SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION   SSL_OP_BIT(16)
    /* Don't use compression even if supported */
# define SSL_OP_NO_COMPRESSION                           SSL_OP_BIT(17)
    /* Permit unsafe legacy renegotiation */
# define SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION        SSL_OP_BIT(18)
    /* Disable encrypt-then-mac */
# define SSL_OP_NO_ENCRYPT_THEN_MAC                      SSL_OP_BIT(19)
    /*
     * Enable TLSv1.3 Compatibility mode. This is on by default. A future
     * version of OpenSSL may have this disabled by default.
     */
# define SSL_OP_ENABLE_MIDDLEBOX_COMPAT                  SSL_OP_BIT(20)
    /*
     * Prioritize Chacha20Poly1305 when client does.
     * Modifies SSL_OP_CIPHER_SERVER_PREFERENCE
     */
# define SSL_OP_PRIORITIZE_CHACHA                        SSL_OP_BIT(21)
    /*
     * Set on servers to choose the cipher according to server's preferences.
     */
# define SSL_OP_CIPHER_SERVER_PREFERENCE                 SSL_OP_BIT(22)
    /*
     * If set, a server will allow a client to issue a SSLv3.0 version
     * number as latest version supported in the premaster secret, even when
     * TLSv1.0 (version 3.1) was announced in the client hello. Normally
     * this is forbidden to prevent version rollback attacks.
     */
# define SSL_OP_TLS_ROLLBACK_BUG                         SSL_OP_BIT(23)
    /*
     * Switches off automatic TLSv1.3 anti-replay protection for early data.
     * This is a server-side option only (no effect on the client).
     */
# define SSL_OP_NO_ANTI_REPLAY                           SSL_OP_BIT(24)
# define SSL_OP_NO_SSLv3                                 SSL_OP_BIT(25)
# define SSL_OP_NO_TLSv1                                 SSL_OP_BIT(26)
# define SSL_OP_NO_TLSv1_2                               SSL_OP_BIT(27)
# define SSL_OP_NO_TLSv1_1                               SSL_OP_BIT(28)
# define SSL_OP_NO_TLSv1_3                               SSL_OP_BIT(29)
# define SSL_OP_NO_DTLSv1                                SSL_OP_BIT(26)
# define SSL_OP_NO_DTLSv1_2                              SSL_OP_BIT(27)
    /* Disallow all renegotiation */
# define SSL_OP_NO_RENEGOTIATION                         SSL_OP_BIT(30)
    /*
     * Make server add server-hello extension from early version of
     * cryptopro draft, when GOST ciphersuite is negotiated. Required for
     * interoperability with CryptoPro CSP 3.x
     */
# define SSL_OP_CRYPTOPRO_TLSEXT_BUG                     SSL_OP_BIT(31)

/*
 * Option "collections."
 */
# define SSL_OP_NO_SSL_MASK \
        ( SSL_OP_NO_SSLv3 | SSL_OP_NO_TLSv1 | SSL_OP_NO_TLSv1_1 \
          | SSL_OP_NO_TLSv1_2 | SSL_OP_NO_TLSv1_3 )
# define SSL_OP_NO_DTLS_MASK \
        ( SSL_OP_NO_DTLSv1 | SSL_OP_NO_DTLSv1_2 )

/* Various bug workarounds that should be rather harmless. */
# define SSL_OP_ALL \
        ( SSL_OP_CRYPTOPRO_TLSEXT_BUG | SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS \
          | SSL_OP_TLSEXT_PADDING | SSL_OP_SAFARI_ECDHE_ECDSA_BUG )

/*
 * OBSOLETE OPTIONS retained for compatibility
 */

# define SSL_OP_MICROSOFT_SESS_ID_BUG                    0x0
# define SSL_OP_NETSCAPE_CHALLENGE_BUG                   0x0
# define SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG         0x0
# define SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG              0x0
# define SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER               0x0
# define SSL_OP_MSIE_SSLV2_RSA_PADDING                   0x0
# define SSL_OP_SSLEAY_080_CLIENT_DH_BUG                 0x0
# define SSL_OP_TLS_D5_BUG                               0x0
# define SSL_OP_TLS_BLOCK_PADDING_BUG                    0x0
# define SSL_OP_SINGLE_ECDH_USE                          0x0
# define SSL_OP_SINGLE_DH_USE                            0x0
# define SSL_OP_EPHEMERAL_RSA                            0x0
# define SSL_OP_NO_SSLv2                                 0x0
# define SSL_OP_PKCS1_CHECK_1                            0x0
# define SSL_OP_PKCS1_CHECK_2                            0x0
# define SSL_OP_NETSCAPE_CA_DN_BUG                       0x0
# define SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG          0x0

/*
 * Allow SSL_write(..., n) to return r with 0 < r < n (i.e. report success
 * when just a single record has been written):
 */
# define SSL_MODE_ENABLE_PARTIAL_WRITE       0x00000001U
/*
 * Make it possible to retry SSL_write() with changed buffer location (buffer
 * contents must stay the same!); this is not the default to avoid the
 * misconception that non-blocking SSL_write() behaves like non-blocking
 * write():
 */
# define SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER 0x00000002U
/*
 * Never bother the application with retries if the transport is blocking:
 */
# define SSL_MODE_AUTO_RETRY 0x00000004U
/* Don't attempt to automatically build certificate chain */
# define SSL_MODE_NO_AUTO_CHAIN 0x00000008U
/*
 * Save RAM by releasing read and write buffers when they're empty. (SSL3 and
 * TLS only.) Released buffers are freed.
 */
# define SSL_MODE_RELEASE_BUFFERS 0x00000010U
/*
 * Send the current time in the Random fields of the ClientHello and
 * ServerHello records for compatibility with hypothetical implementations
 * that require it.
 */
# define SSL_MODE_SEND_CLIENTHELLO_TIME 0x00000020U
# define SSL_MODE_SEND_SERVERHELLO_TIME 0x00000040U
/*
 * Send TLS_FALLBACK_SCSV in the ClientHello. To be set only by applications
 * that reconnect with a downgraded protocol version; see
 * draft-ietf-tls-downgrade-scsv-00 for details. DO NOT ENABLE THIS if your
 * application attempts a normal handshake. Only use this in explicit
 * fallback retries, following the guidance in
 * draft-ietf-tls-downgrade-scsv-00.
 */
# define SSL_MODE_SEND_FALLBACK_SCSV 0x00000080U
/*
 * Support Asynchronous operation
 */
# define SSL_MODE_ASYNC 0x00000100U

/*
 * When using DTLS/SCTP, include the terminating zero in the label
 * used for computing the endpoint-pair shared secret. Required for
 * interoperability with implementations having this bug like these
 * older version of OpenSSL:
 * - OpenSSL 1.0.0 series
 * - OpenSSL 1.0.1 series
 * - OpenSSL 1.0.2 series
 * - OpenSSL 1.1.0 series
 * - OpenSSL 1.1.1 and 1.1.1a
 */
# define SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG 0x00000400U

/* Cert related flags */
/*
 * Many implementations ignore some aspects of the TLS standards such as
 * enforcing certificate chain algorithms. When this is set we enforce them.
 */
# define SSL_CERT_FLAG_TLS_STRICT                0x00000001U

/* Suite B modes, takes same values as certificate verify flags */
# define SSL_CERT_FLAG_SUITEB_128_LOS_ONLY       0x10000
/* Suite B 192 bit only mode */
# define SSL_CERT_FLAG_SUITEB_192_LOS            0x20000
/* Suite B 128 bit mode allowing 192 bit algorithms */
# define SSL_CERT_FLAG_SUITEB_128_LOS            0x30000

/* Perform all sorts of protocol violations for testing purposes */
# define SSL_CERT_FLAG_BROKEN_PROTOCOL           0x10000000

/* Flags for building certificate chains */
/* Treat any existing certificates as untrusted CAs */
# define SSL_BUILD_CHAIN_FLAG_UNTRUSTED          0x1
/* Don't include root CA in chain */
# define SSL_BUILD_CHAIN_FLAG_NO_ROOT            0x2
/* Just check certificates already there */
# define SSL_BUILD_CHAIN_FLAG_CHECK              0x4
/* Ignore verification errors */
# define SSL_BUILD_CHAIN_FLAG_IGNORE_ERROR       0x8
/* Clear verification errors from queue */
# define SSL_BUILD_CHAIN_FLAG_CLEAR_ERROR        0x10

/* Flags returned by SSL_check_chain */
/* Certificate can be used with this session */
# define CERT_PKEY_VALID         0x1
/* Certificate can also be used for signing */
# define CERT_PKEY_SIGN          0x2
/* EE certificate signing algorithm OK */
# define CERT_PKEY_EE_SIGNATURE  0x10
/* CA signature algorithms OK */
# define CERT_PKEY_CA_SIGNATURE  0x20
/* EE certificate parameters OK */
# define CERT_PKEY_EE_PARAM      0x40
/* CA certificate parameters OK */
# define CERT_PKEY_CA_PARAM      0x80
/* Signing explicitly allowed as opposed to SHA1 fallback */
# define CERT_PKEY_EXPLICIT_SIGN 0x100
/* Client CA issuer names match (always set for server cert) */
# define CERT_PKEY_ISSUER_NAME   0x200
/* Cert type matches client types (always set for server cert) */
# define CERT_PKEY_CERT_TYPE     0x400
/* Cert chain suitable to Suite B */
# define CERT_PKEY_SUITEB        0x800

# define SSL_CONF_FLAG_CMDLINE           0x1
# define SSL_CONF_FLAG_FILE              0x2
# define SSL_CONF_FLAG_CLIENT            0x4
# define SSL_CONF_FLAG_SERVER            0x8
# define SSL_CONF_FLAG_SHOW_ERRORS       0x10
# define SSL_CONF_FLAG_CERTIFICATE       0x20
# define SSL_CONF_FLAG_REQUIRE_PRIVATE   0x40
/* Configuration value types */
# define SSL_CONF_TYPE_UNKNOWN           0x0
# define SSL_CONF_TYPE_STRING            0x1
# define SSL_CONF_TYPE_FILE              0x2
# define SSL_CONF_TYPE_DIR               0x3
# define SSL_CONF_TYPE_NONE              0x4
# define SSL_CONF_TYPE_STORE             0x5

/* Maximum length of the application-controlled segment of a a TLSv1.3 cookie */
# define SSL_COOKIE_LENGTH                       4096

/*
 * Note: SSL[_CTX]_set_{options,mode} use |= op on the previous value, they
 * cannot be used to clear bits.
 */

uint64_t SSL_CTX_get_options(const SSL_CTX *ctx);
uint64_t SSL_get_options(const SSL *s);
uint64_t SSL_CTX_clear_options(SSL_CTX *ctx, uint64_t op);
uint64_t SSL_clear_options(SSL *s, uint64_t op);
uint64_t SSL_CTX_set_options(SSL_CTX *ctx, uint64_t op);
uint64_t SSL_set_options(SSL *s, uint64_t op);

# define SSL_CTX_set_mode(ctx,op) \
        SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,(op),NULL)
# define SSL_CTX_clear_mode(ctx,op) \
        SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_MODE,(op),NULL)
# define SSL_CTX_get_mode(ctx) \
        SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,0,NULL)
# define SSL_clear_mode(ssl,op) \
        SSL_ctrl((ssl),SSL_CTRL_CLEAR_MODE,(op),NULL)
# define SSL_set_mode(ssl,op) \
        SSL_ctrl((ssl),SSL_CTRL_MODE,(op),NULL)
# define SSL_get_mode(ssl) \
        SSL_ctrl((ssl),SSL_CTRL_MODE,0,NULL)
# define SSL_set_mtu(ssl, mtu) \
        SSL_ctrl((ssl),SSL_CTRL_SET_MTU,(mtu),NULL)
# define DTLS_set_link_mtu(ssl, mtu) \
        SSL_ctrl((ssl),DTLS_CTRL_SET_LINK_MTU,(mtu),NULL)
# define DTLS_get_link_min_mtu(ssl) \
        SSL_ctrl((ssl),DTLS_CTRL_GET_LINK_MIN_MTU,0,NULL)

# define SSL_get_secure_renegotiation_support(ssl) \
        SSL_ctrl((ssl), SSL_CTRL_GET_RI_SUPPORT, 0, NULL)

# define SSL_CTX_set_cert_flags(ctx,op) \
        SSL_CTX_ctrl((ctx),SSL_CTRL_CERT_FLAGS,(op),NULL)
# define SSL_set_cert_flags(s,op) \
        SSL_ctrl((s),SSL_CTRL_CERT_FLAGS,(op),NULL)
# define SSL_CTX_clear_cert_flags(ctx,op) \
        SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_CERT_FLAGS,(op),NULL)
# define SSL_clear_cert_flags(s,op) \
        SSL_ctrl((s),SSL_CTRL_CLEAR_CERT_FLAGS,(op),NULL)

void SSL_CTX_set_msg_callback(SSL_CTX *ctx,
                              void (*cb) (int write_p, int version,
                                          int content_type, const void *buf,
                                          size_t len, SSL *ssl, void *arg));
void SSL_set_msg_callback(SSL *ssl,
                          void (*cb) (int write_p, int version,
                                      int content_type, const void *buf,
                                      size_t len, SSL *ssl, void *arg));
# define SSL_CTX_set_msg_callback_arg(ctx, arg) SSL_CTX_ctrl((ctx), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg))
# define SSL_set_msg_callback_arg(ssl, arg) SSL_ctrl((ssl), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg))

# define SSL_get_extms_support(s) \
        SSL_ctrl((s),SSL_CTRL_GET_EXTMS_SUPPORT,0,NULL)

# ifndef OPENSSL_NO_SRP
/* see tls_srp.c */
#  ifndef OPENSSL_NO_DEPRECATED_3_0
OSSL_DEPRECATEDIN_3_0 __owur int SSL_SRP_CTX_init(SSL *s);
OSSL_DEPRECATEDIN_3_0 __owur int SSL_CTX_SRP_CTX_init(SSL_CTX *ctx);
OSSL_DEPRECATEDIN_3_0 int SSL_SRP_CTX_free(SSL *ctx);
OSSL_DEPRECATEDIN_3_0 int SSL_CTX_SRP_CTX_free(SSL_CTX *ctx);
OSSL_DEPRECATEDIN_3_0 __owur int SSL_srp_server_param_with_username(SSL *s,
                                                                    int *ad);
OSSL_DEPRECATEDIN_3_0 __owur int SRP_Calc_A_param(SSL *s);
#  endif
# endif

/* 100k max cert list */
# define SSL_MAX_CERT_LIST_DEFAULT (1024*100)

# define SSL_SESSION_CACHE_MAX_SIZE_DEFAULT      (1024*20)

/*
 * This callback type is used inside SSL_CTX, SSL, and in the functions that
 * set them. It is used to override the generation of SSL/TLS session IDs in
 * a server. Return value should be zero on an error, non-zero to proceed.
 * Also, callbacks should themselves check if the id they generate is unique
 * otherwise the SSL handshake will fail with an error - callbacks can do
 * this using the 'ssl' value they're passed by;
 * SSL_has_matching_session_id(ssl, id, *id_len) The length value passed in
 * is set at the maximum size the session ID can be. In SSLv3/TLSv1 it is 32
 * bytes. The callback can alter this length to be less if desired. It is
 * also an error for the callback to set the size to zero.
 */
typedef int (*GEN_SESSION_CB) (SSL *ssl, unsigned char *id,
                               unsigned int *id_len);

# define SSL_SESS_CACHE_OFF                      0x0000
# define SSL_SESS_CACHE_CLIENT                   0x0001
# define SSL_SESS_CACHE_SERVER                   0x0002
# define SSL_SESS_CACHE_BOTH     (SSL_SESS_CACHE_CLIENT|SSL_SESS_CACHE_SERVER)
# define SSL_SESS_CACHE_NO_AUTO_CLEAR            0x0080
/* enough comments already ... see SSL_CTX_set_session_cache_mode(3) */
# define SSL_SESS_CACHE_NO_INTERNAL_LOOKUP       0x0100
# define SSL_SESS_CACHE_NO_INTERNAL_STORE        0x0200
# define SSL_SESS_CACHE_NO_INTERNAL \
        (SSL_SESS_CACHE_NO_INTERNAL_LOOKUP|SSL_SESS_CACHE_NO_INTERNAL_STORE)
# define SSL_SESS_CACHE_UPDATE_TIME              0x0400

LHASH_OF(SSL_SESSION) *SSL_CTX_sessions(SSL_CTX *ctx);
# define SSL_CTX_sess_number(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_NUMBER,0,NULL)
# define SSL_CTX_sess_connect(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT,0,NULL)
# define SSL_CTX_sess_connect_good(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_GOOD,0,NULL)
# define SSL_CTX_sess_connect_renegotiate(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_RENEGOTIATE,0,NULL)
# define SSL_CTX_sess_accept(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT,0,NULL)
# define SSL_CTX_sess_accept_renegotiate(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_RENEGOTIATE,0,NULL)
# define SSL_CTX_sess_accept_good(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_GOOD,0,NULL)
# define SSL_CTX_sess_hits(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_HIT,0,NULL)
# define SSL_CTX_sess_cb_hits(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CB_HIT,0,NULL)
# define SSL_CTX_sess_misses(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_MISSES,0,NULL)
# define SSL_CTX_sess_timeouts(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_TIMEOUTS,0,NULL)
# define SSL_CTX_sess_cache_full(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CACHE_FULL,0,NULL)

void SSL_CTX_sess_set_new_cb(SSL_CTX *ctx,
                             int (*new_session_cb) (struct ssl_st *ssl,
                                                    SSL_SESSION *sess));
int (*SSL_CTX_sess_get_new_cb(SSL_CTX *ctx)) (struct ssl_st *ssl,
                                              SSL_SESSION *sess);
void SSL_CTX_sess_set_remove_cb(SSL_CTX *ctx,
                                void (*remove_session_cb) (struct ssl_ctx_st
                                                           *ctx,
                                                           SSL_SESSION *sess));
void (*SSL_CTX_sess_get_remove_cb(SSL_CTX *ctx)) (struct ssl_ctx_st *ctx,
                                                  SSL_SESSION *sess);
void SSL_CTX_sess_set_get_cb(SSL_CTX *ctx,
                             SSL_SESSION *(*get_session_cb) (struct ssl_st
                                                             *ssl,
                                                             const unsigned char
                                                             *data, int len,
                                                             int *copy));
SSL_SESSION *(*SSL_CTX_sess_get_get_cb(SSL_CTX *ctx)) (struct ssl_st *ssl,
                                                       const unsigned char *data,
                                                       int len, int *copy);
void SSL_CTX_set_info_callback(SSL_CTX *ctx,
                               void (*cb) (const SSL *ssl, int type, int val));
void (*SSL_CTX_get_info_callback(SSL_CTX *ctx)) (const SSL *ssl, int type,
                                                 int val);
void SSL_CTX_set_client_cert_cb(SSL_CTX *ctx,
                                int (*client_cert_cb) (SSL *ssl, X509 **x509,
                                                       EVP_PKEY **pkey));
int (*SSL_CTX_get_client_cert_cb(SSL_CTX *ctx)) (SSL *ssl, X509 **x509,
                                                 EVP_PKEY **pkey);
# ifndef OPENSSL_NO_ENGINE
__owur int SSL_CTX_set_client_cert_engine(SSL_CTX *ctx, ENGINE *e);
# endif
void SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx,
                                    int (*app_gen_cookie_cb) (SSL *ssl,
                                                              unsigned char
                                                              *cookie,
                                                              unsigned int
                                                              *cookie_len));
void SSL_CTX_set_cookie_verify_cb(SSL_CTX *ctx,
                                  int (*app_verify_cookie_cb) (SSL *ssl,
                                                               const unsigned
                                                               char *cookie,
                                                               unsigned int
                                                               cookie_len));

void SSL_CTX_set_stateless_cookie_generate_cb(
    SSL_CTX *ctx,
    int (*gen_stateless_cookie_cb) (SSL *ssl,
                                    unsigned char *cookie,
                                    size_t *cookie_len));
void SSL_CTX_set_stateless_cookie_verify_cb(
    SSL_CTX *ctx,
    int (*verify_stateless_cookie_cb) (SSL *ssl,
                                       const unsigned char *cookie,
                                       size_t cookie_len));
# ifndef OPENSSL_NO_NEXTPROTONEG

typedef int (*SSL_CTX_npn_advertised_cb_func)(SSL *ssl,
                                              const unsigned char **out,
                                              unsigned int *outlen,
                                              void *arg);
void SSL_CTX_set_next_protos_advertised_cb(SSL_CTX *s,
                                           SSL_CTX_npn_advertised_cb_func cb,
                                           void *arg);
#  define SSL_CTX_set_npn_advertised_cb SSL_CTX_set_next_protos_advertised_cb

typedef int (*SSL_CTX_npn_select_cb_func)(SSL *s,
                                          unsigned char **out,
                                          unsigned char *outlen,
                                          const unsigned char *in,
                                          unsigned int inlen,
                                          void *arg);
void SSL_CTX_set_next_proto_select_cb(SSL_CTX *s,
                                      SSL_CTX_npn_select_cb_func cb,
                                      void *arg);
#  define SSL_CTX_set_npn_select_cb SSL_CTX_set_next_proto_select_cb

void SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data,
                                    unsigned *len);
#  define SSL_get0_npn_negotiated SSL_get0_next_proto_negotiated
# endif

__owur int SSL_select_next_proto(unsigned char **out, unsigned char *outlen,
                                 const unsigned char *in, unsigned int inlen,
                                 const unsigned char *client,
                                 unsigned int client_len);

# define OPENSSL_NPN_UNSUPPORTED 0
# define OPENSSL_NPN_NEGOTIATED  1
# define OPENSSL_NPN_NO_OVERLAP  2

__owur int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const unsigned char *protos,
                                   unsigned int protos_len);
__owur int SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos,
                               unsigned int protos_len);
typedef int (*SSL_CTX_alpn_select_cb_func)(SSL *ssl,
                                           const unsigned char **out,
                                           unsigned char *outlen,
                                           const unsigned char *in,
                                           unsigned int inlen,
                                           void *arg);
void SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx,
                                SSL_CTX_alpn_select_cb_func cb,
                                void *arg);
void SSL_get0_alpn_selected(const SSL *ssl, const unsigned char **data,
                            unsigned int *len);

# ifndef OPENSSL_NO_PSK
/*
 * the maximum length of the buffer given to callbacks containing the
 * resulting identity/psk
 */
#  define PSK_MAX_IDENTITY_LEN 256
#  define PSK_MAX_PSK_LEN 512
typedef unsigned int (*SSL_psk_client_cb_func)(SSL *ssl,
                                               const char *hint,
                                               char *identity,
                                               unsigned int max_identity_len,
                                               unsigned char *psk,
                                               unsigned int max_psk_len);
void SSL_CTX_set_psk_client_callback(SSL_CTX *ctx, SSL_psk_client_cb_func cb);
void SSL_set_psk_client_callback(SSL *ssl, SSL_psk_client_cb_func cb);

typedef unsigned int (*SSL_psk_server_cb_func)(SSL *ssl,
                                               const char *identity,
                                               unsigned char *psk,
                                               unsigned int max_psk_len);
void SSL_CTX_set_psk_server_callback(SSL_CTX *ctx, SSL_psk_server_cb_func cb);
void SSL_set_psk_server_callback(SSL *ssl, SSL_psk_server_cb_func cb);

__owur int SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *identity_hint);
__owur int SSL_use_psk_identity_hint(SSL *s, const char *identity_hint);
const char *SSL_get_psk_identity_hint(const SSL *s);
const char *SSL_get_psk_identity(const SSL *s);
# endif

typedef int (*SSL_psk_find_session_cb_func)(SSL *ssl,
                                            const unsigned char *identity,
                                            size_t identity_len,
                                            SSL_SESSION **sess);
typedef int (*SSL_psk_use_session_cb_func)(SSL *ssl, const EVP_MD *md,
                                           const unsigned char **id,
                                           size_t *idlen,
                                           SSL_SESSION **sess);

void SSL_set_psk_find_session_callback(SSL *s, SSL_psk_find_session_cb_func cb);
void SSL_CTX_set_psk_find_session_callback(SSL_CTX *ctx,
                                           SSL_psk_find_session_cb_func cb);
void SSL_set_psk_use_session_callback(SSL *s, SSL_psk_use_session_cb_func cb);
void SSL_CTX_set_psk_use_session_callback(SSL_CTX *ctx,
                                          SSL_psk_use_session_cb_func cb);

/* Register callbacks to handle custom TLS Extensions for client or server. */

__owur int SSL_CTX_has_client_custom_ext(const SSL_CTX *ctx,
                                         unsigned int ext_type);

__owur int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx,
                                         unsigned int ext_type,
                                         custom_ext_add_cb add_cb,
                                         custom_ext_free_cb free_cb,
                                         void *add_arg,
                                         custom_ext_parse_cb parse_cb,
                                         void *parse_arg);

__owur int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx,
                                         unsigned int ext_type,
                                         custom_ext_add_cb add_cb,
                                         custom_ext_free_cb free_cb,
                                         void *add_arg,
                                         custom_ext_parse_cb parse_cb,
                                         void *parse_arg);

__owur int SSL_CTX_add_custom_ext(SSL_CTX *ctx, unsigned int ext_type,
                                  unsigned int context,
                                  SSL_custom_ext_add_cb_ex add_cb,
                                  SSL_custom_ext_free_cb_ex free_cb,
                                  void *add_arg,
                                  SSL_custom_ext_parse_cb_ex parse_cb,
                                  void *parse_arg);

__owur int SSL_extension_supported(unsigned int ext_type);

# define SSL_NOTHING            1
# define SSL_WRITING            2
# define SSL_READING            3
# define SSL_X509_LOOKUP        4
# define SSL_ASYNC_PAUSED       5
# define SSL_ASYNC_NO_JOBS      6
# define SSL_CLIENT_HELLO_CB    7
# define SSL_RETRY_VERIFY       8

/* These will only be used when doing non-blocking IO */
# define SSL_want_nothing(s)         (SSL_want(s) == SSL_NOTHING)
# define SSL_want_read(s)            (SSL_want(s) == SSL_READING)
# define SSL_want_write(s)           (SSL_want(s) == SSL_WRITING)
# define SSL_want_x509_lookup(s)     (SSL_want(s) == SSL_X509_LOOKUP)
# define SSL_want_retry_verify(s)    (SSL_want(s) == SSL_RETRY_VERIFY)
# define SSL_want_async(s)           (SSL_want(s) == SSL_ASYNC_PAUSED)
# define SSL_want_async_job(s)       (SSL_want(s) == SSL_ASYNC_NO_JOBS)
# define SSL_want_client_hello_cb(s) (SSL_want(s) == SSL_CLIENT_HELLO_CB)

# define SSL_MAC_FLAG_READ_MAC_STREAM 1
# define SSL_MAC_FLAG_WRITE_MAC_STREAM 2
# define SSL_MAC_FLAG_READ_MAC_TLSTREE 4
# define SSL_MAC_FLAG_WRITE_MAC_TLSTREE 8

/*
 * A callback for logging out TLS key material. This callback should log out
 * |line| followed by a newline.
 */
typedef void (*SSL_CTX_keylog_cb_func)(const SSL *ssl, const char *line);

/*
 * SSL_CTX_set_keylog_callback configures a callback to log key material. This
 * is intended for debugging use with tools like Wireshark. The cb function
 * should log line followed by a newline.
 */
void SSL_CTX_set_keylog_callback(SSL_CTX *ctx, SSL_CTX_keylog_cb_func cb);

/*
 * SSL_CTX_get_keylog_callback returns the callback configured by
 * SSL_CTX_set_keylog_callback.
 */
SSL_CTX_keylog_cb_func SSL_CTX_get_keylog_callback(const SSL_CTX *ctx);

int SSL_CTX_set_max_early_data(SSL_CTX *ctx, uint32_t max_early_data);
uint32_t SSL_CTX_get_max_early_data(const SSL_CTX *ctx);
int SSL_set_max_early_data(SSL *s, uint32_t max_early_data);
uint32_t SSL_get_max_early_data(const SSL *s);
int SSL_CTX_set_recv_max_early_data(SSL_CTX *ctx, uint32_t recv_max_early_data);
uint32_t SSL_CTX_get_recv_max_early_data(const SSL_CTX *ctx);
int SSL_set_recv_max_early_data(SSL *s, uint32_t recv_max_early_data);
uint32_t SSL_get_recv_max_early_data(const SSL *s);

#ifdef __cplusplus
}
#endif

# include <openssl/ssl2.h>
# include <openssl/ssl3.h>
# include <openssl/tls1.h>      /* This is mostly sslv3 with a few tweaks */
# include <openssl/dtls1.h>     /* Datagram TLS */
# include <openssl/srtp.h>      /* Support for the use_srtp extension */

#ifdef  __cplusplus
extern "C" {
#endif

/*
 * These need to be after the above set of includes due to a compiler bug
 * in VisualStudio 2015
 */
SKM_DEFINE_STACK_OF_INTERNAL(SSL_CIPHER, const SSL_CIPHER, SSL_CIPHER)
#define sk_SSL_CIPHER_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_CIPHER_sk_type(sk))
#define sk_SSL_CIPHER_value(sk, idx) ((const SSL_CIPHER *)OPENSSL_sk_value(ossl_check_const_SSL_CIPHER_sk_type(sk), (idx)))
#define sk_SSL_CIPHER_new(cmp) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_new(ossl_check_SSL_CIPHER_compfunc_type(cmp)))
#define sk_SSL_CIPHER_new_null() ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_new_null())
#define sk_SSL_CIPHER_new_reserve(cmp, n) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_new_reserve(ossl_check_SSL_CIPHER_compfunc_type(cmp), (n)))
#define sk_SSL_CIPHER_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_CIPHER_sk_type(sk), (n))
#define sk_SSL_CIPHER_free(sk) OPENSSL_sk_free(ossl_check_SSL_CIPHER_sk_type(sk))
#define sk_SSL_CIPHER_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_CIPHER_sk_type(sk))
#define sk_SSL_CIPHER_delete(sk, i) ((const SSL_CIPHER *)OPENSSL_sk_delete(ossl_check_SSL_CIPHER_sk_type(sk), (i)))
#define sk_SSL_CIPHER_delete_ptr(sk, ptr) ((const SSL_CIPHER *)OPENSSL_sk_delete_ptr(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr)))
#define sk_SSL_CIPHER_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr))
#define sk_SSL_CIPHER_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr))
#define sk_SSL_CIPHER_pop(sk) ((const SSL_CIPHER *)OPENSSL_sk_pop(ossl_check_SSL_CIPHER_sk_type(sk)))
#define sk_SSL_CIPHER_shift(sk) ((const SSL_CIPHER *)OPENSSL_sk_shift(ossl_check_SSL_CIPHER_sk_type(sk)))
#define sk_SSL_CIPHER_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_CIPHER_sk_type(sk),ossl_check_SSL_CIPHER_freefunc_type(freefunc))
#define sk_SSL_CIPHER_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr), (idx))
#define sk_SSL_CIPHER_set(sk, idx, ptr) ((const SSL_CIPHER *)OPENSSL_sk_set(ossl_check_SSL_CIPHER_sk_type(sk), (idx), ossl_check_SSL_CIPHER_type(ptr)))
#define sk_SSL_CIPHER_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr))
#define sk_SSL_CIPHER_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr))
#define sk_SSL_CIPHER_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_type(ptr), pnum)
#define sk_SSL_CIPHER_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_CIPHER_sk_type(sk))
#define sk_SSL_CIPHER_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_CIPHER_sk_type(sk))
#define sk_SSL_CIPHER_dup(sk) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_dup(ossl_check_const_SSL_CIPHER_sk_type(sk)))
#define sk_SSL_CIPHER_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_CIPHER) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_copyfunc_type(copyfunc), ossl_check_SSL_CIPHER_freefunc_type(freefunc)))
#define sk_SSL_CIPHER_set_cmp_func(sk, cmp) ((sk_SSL_CIPHER_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_CIPHER_sk_type(sk), ossl_check_SSL_CIPHER_compfunc_type(cmp)))
SKM_DEFINE_STACK_OF_INTERNAL(SSL_COMP, SSL_COMP, SSL_COMP)
#define sk_SSL_COMP_num(sk) OPENSSL_sk_num(ossl_check_const_SSL_COMP_sk_type(sk))
#define sk_SSL_COMP_value(sk, idx) ((SSL_COMP *)OPENSSL_sk_value(ossl_check_const_SSL_COMP_sk_type(sk), (idx)))
#define sk_SSL_COMP_new(cmp) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new(ossl_check_SSL_COMP_compfunc_type(cmp)))
#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_null())
#define sk_SSL_COMP_new_reserve(cmp, n) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_new_reserve(ossl_check_SSL_COMP_compfunc_type(cmp), (n)))
#define sk_SSL_COMP_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SSL_COMP_sk_type(sk), (n))
#define sk_SSL_COMP_free(sk) OPENSSL_sk_free(ossl_check_SSL_COMP_sk_type(sk))
#define sk_SSL_COMP_zero(sk) OPENSSL_sk_zero(ossl_check_SSL_COMP_sk_type(sk))
#define sk_SSL_COMP_delete(sk, i) ((SSL_COMP *)OPENSSL_sk_delete(ossl_check_SSL_COMP_sk_type(sk), (i)))
#define sk_SSL_COMP_delete_ptr(sk, ptr) ((SSL_COMP *)OPENSSL_sk_delete_ptr(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr)))
#define sk_SSL_COMP_push(sk, ptr) OPENSSL_sk_push(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))
#define sk_SSL_COMP_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))
#define sk_SSL_COMP_pop(sk) ((SSL_COMP *)OPENSSL_sk_pop(ossl_check_SSL_COMP_sk_type(sk)))
#define sk_SSL_COMP_shift(sk) ((SSL_COMP *)OPENSSL_sk_shift(ossl_check_SSL_COMP_sk_type(sk)))
#define sk_SSL_COMP_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SSL_COMP_sk_type(sk),ossl_check_SSL_COMP_freefunc_type(freefunc))
#define sk_SSL_COMP_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), (idx))
#define sk_SSL_COMP_set(sk, idx, ptr) ((SSL_COMP *)OPENSSL_sk_set(ossl_check_SSL_COMP_sk_type(sk), (idx), ossl_check_SSL_COMP_type(ptr)))
#define sk_SSL_COMP_find(sk, ptr) OPENSSL_sk_find(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))
#define sk_SSL_COMP_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr))
#define sk_SSL_COMP_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_type(ptr), pnum)
#define sk_SSL_COMP_sort(sk) OPENSSL_sk_sort(ossl_check_SSL_COMP_sk_type(sk))
#define sk_SSL_COMP_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SSL_COMP_sk_type(sk))
#define sk_SSL_COMP_dup(sk) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_dup(ossl_check_const_SSL_COMP_sk_type(sk)))
#define sk_SSL_COMP_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SSL_COMP) *)OPENSSL_sk_deep_copy(ossl_check_const_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_copyfunc_type(copyfunc), ossl_check_SSL_COMP_freefunc_type(freefunc)))
#define sk_SSL_COMP_set_cmp_func(sk, cmp) ((sk_SSL_COMP_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SSL_COMP_sk_type(sk), ossl_check_SSL_COMP_compfunc_type(cmp)))


/* compatibility */
# define SSL_set_app_data(s,arg)         (SSL_set_ex_data(s,0,(char *)(arg)))
# define SSL_get_app_data(s)             (SSL_get_ex_data(s,0))
# define SSL_SESSION_set_app_data(s,a)   (SSL_SESSION_set_ex_data(s,0, \
                                                                  (char *)(a)))
# define SSL_SESSION_get_app_data(s)     (SSL_SESSION_get_ex_data(s,0))
# define SSL_CTX_get_app_data(ctx)       (SSL_CTX_get_ex_data(ctx,0))
# define SSL_CTX_set_app_data(ctx,arg)   (SSL_CTX_set_ex_data(ctx,0, \
                                                              (char *)(arg)))
# ifndef OPENSSL_NO_DEPRECATED_1_1_0
OSSL_DEPRECATEDIN_1_1_0 void SSL_set_debug(SSL *s, int debug);
# endif

/* TLSv1.3 KeyUpdate message types */
/* -1 used so that this is an invalid value for the on-the-wire protocol */
#define SSL_KEY_UPDATE_NONE             -1
/* Values as defined for the on-the-wire protocol */
#define SSL_KEY_UPDATE_NOT_REQUESTED     0
#define SSL_KEY_UPDATE_REQUESTED         1

/*
 * The valid handshake states (one for each type message sent and one for each
 * type of message received). There are also two "special" states:
 * TLS = TLS or DTLS state
 * DTLS = DTLS specific state
 * CR/SR = Client Read/Server Read
 * CW/SW = Client Write/Server Write
 *
 * The "special" states are:
 * TLS_ST_BEFORE = No handshake has been initiated yet
 * TLS_ST_OK = A handshake has been successfully completed
 */
typedef enum {
    TLS_ST_BEFORE,
    TLS_ST_OK,
    DTLS_ST_CR_HELLO_VERIFY_REQUEST,
    TLS_ST_CR_SRVR_HELLO,
    TLS_ST_CR_CERT,
    TLS_ST_CR_CERT_STATUS,
    TLS_ST_CR_KEY_EXCH,
    TLS_ST_CR_CERT_REQ,
    TLS_ST_CR_SRVR_DONE,
    TLS_ST_CR_SESSION_TICKET,
    TLS_ST_CR_CHANGE,
    TLS_ST_CR_FINISHED,
    TLS_ST_CW_CLNT_HELLO,
    TLS_ST_CW_CERT,
    TLS_ST_CW_KEY_EXCH,
    TLS_ST_CW_CERT_VRFY,
    TLS_ST_CW_CHANGE,
    TLS_ST_CW_NEXT_PROTO,
    TLS_ST_CW_FINISHED,
    TLS_ST_SW_HELLO_REQ,
    TLS_ST_SR_CLNT_HELLO,
    DTLS_ST_SW_HELLO_VERIFY_REQUEST,
    TLS_ST_SW_SRVR_HELLO,
    TLS_ST_SW_CERT,
    TLS_ST_SW_KEY_EXCH,
    TLS_ST_SW_CERT_REQ,
    TLS_ST_SW_SRVR_DONE,
    TLS_ST_SR_CERT,
    TLS_ST_SR_KEY_EXCH,
    TLS_ST_SR_CERT_VRFY,
    TLS_ST_SR_NEXT_PROTO,
    TLS_ST_SR_CHANGE,
    TLS_ST_SR_FINISHED,
    TLS_ST_SW_SESSION_TICKET,
    TLS_ST_SW_CERT_STATUS,
    TLS_ST_SW_CHANGE,
    TLS_ST_SW_FINISHED,
    TLS_ST_SW_ENCRYPTED_EXTENSIONS,
    TLS_ST_CR_ENCRYPTED_EXTENSIONS,
    TLS_ST_CR_CERT_VRFY,
    TLS_ST_SW_CERT_VRFY,
    TLS_ST_CR_HELLO_REQ,
    TLS_ST_SW_KEY_UPDATE,
    TLS_ST_CW_KEY_UPDATE,
    TLS_ST_SR_KEY_UPDATE,
    TLS_ST_CR_KEY_UPDATE,
    TLS_ST_EARLY_DATA,
    TLS_ST_PENDING_EARLY_DATA_END,
    TLS_ST_CW_END_OF_EARLY_DATA,
    TLS_ST_SR_END_OF_EARLY_DATA
} OSSL_HANDSHAKE_STATE;

/*
 * Most of the following state values are no longer used and are defined to be
 * the closest equivalent value in the current state machine code. Not all
 * defines have an equivalent and are set to a dummy value (-1). SSL_ST_CONNECT
 * and SSL_ST_ACCEPT are still in use in the definition of SSL_CB_ACCEPT_LOOP,
 * SSL_CB_ACCEPT_EXIT, SSL_CB_CONNECT_LOOP and SSL_CB_CONNECT_EXIT.
 */

# define SSL_ST_CONNECT                  0x1000
# define SSL_ST_ACCEPT                   0x2000

# define SSL_ST_MASK                     0x0FFF

# define SSL_CB_LOOP                     0x01
# define SSL_CB_EXIT                     0x02
# define SSL_CB_READ                     0x04
# define SSL_CB_WRITE                    0x08
# define SSL_CB_ALERT                    0x4000/* used in callback */
# define SSL_CB_READ_ALERT               (SSL_CB_ALERT|SSL_CB_READ)
# define SSL_CB_WRITE_ALERT              (SSL_CB_ALERT|SSL_CB_WRITE)
# define SSL_CB_ACCEPT_LOOP              (SSL_ST_ACCEPT|SSL_CB_LOOP)
# define SSL_CB_ACCEPT_EXIT              (SSL_ST_ACCEPT|SSL_CB_EXIT)
# define SSL_CB_CONNECT_LOOP             (SSL_ST_CONNECT|SSL_CB_LOOP)
# define SSL_CB_CONNECT_EXIT             (SSL_ST_CONNECT|SSL_CB_EXIT)
# define SSL_CB_HANDSHAKE_START          0x10
# define SSL_CB_HANDSHAKE_DONE           0x20

/* Is the SSL_connection established? */
# define SSL_in_connect_init(a)          (SSL_in_init(a) && !SSL_is_server(a))
# define SSL_in_accept_init(a)           (SSL_in_init(a) && SSL_is_server(a))
int SSL_in_init(const SSL *s);
int SSL_in_before(const SSL *s);
int SSL_is_init_finished(const SSL *s);

/*
 * The following 3 states are kept in ssl->rlayer.rstate when reads fail, you
 * should not need these
 */
# define SSL_ST_READ_HEADER                      0xF0
# define SSL_ST_READ_BODY                        0xF1
# define SSL_ST_READ_DONE                        0xF2

/*-
 * Obtain latest Finished message
 *   -- that we sent (SSL_get_finished)
 *   -- that we expected from peer (SSL_get_peer_finished).
 * Returns length (0 == no Finished so far), copies up to 'count' bytes.
 */
size_t SSL_get_finished(const SSL *s, void *buf, size_t count);
size_t SSL_get_peer_finished(const SSL *s, void *buf, size_t count);

/*
 * use either SSL_VERIFY_NONE or SSL_VERIFY_PEER, the last 3 options are
 * 'ored' with SSL_VERIFY_PEER if they are desired
 */
# define SSL_VERIFY_NONE                 0x00
# define SSL_VERIFY_PEER                 0x01
# define SSL_VERIFY_FAIL_IF_NO_PEER_CERT 0x02
# define SSL_VERIFY_CLIENT_ONCE          0x04
# define SSL_VERIFY_POST_HANDSHAKE       0x08

# ifndef OPENSSL_NO_DEPRECATED_1_1_0
#  define OpenSSL_add_ssl_algorithms()   SSL_library_init()
#  define SSLeay_add_ssl_algorithms()    SSL_library_init()
# endif

/* More backward compatibility */
# define SSL_get_cipher(s) \
                SSL_CIPHER_get_name(SSL_get_current_cipher(s))
# define SSL_get_cipher_bits(s,np) \
                SSL_CIPHER_get_bits(SSL_get_current_cipher(s),np)
# define SSL_get_cipher_version(s) \
                SSL_CIPHER_get_version(SSL_get_current_cipher(s))
# define SSL_get_cipher_name(s) \
                SSL_CIPHER_get_name(SSL_get_current_cipher(s))
# define SSL_get_time(a)         SSL_SESSION_get_time(a)
# define SSL_set_time(a,b)       SSL_SESSION_set_time((a),(b))
# define SSL_get_timeout(a)      SSL_SESSION_get_timeout(a)
# define SSL_set_timeout(a,b)    SSL_SESSION_set_timeout((a),(b))

# define d2i_SSL_SESSION_bio(bp,s_id) ASN1_d2i_bio_of(SSL_SESSION,SSL_SESSION_new,d2i_SSL_SESSION,bp,s_id)
# define i2d_SSL_SESSION_bio(bp,s_id) ASN1_i2d_bio_of(SSL_SESSION,i2d_SSL_SESSION,bp,s_id)

DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION)
# define SSL_AD_REASON_OFFSET            1000/* offset to get SSL_R_... value
                                              * from SSL_AD_... */
/* These alert types are for SSLv3 and TLSv1 */
# define SSL_AD_CLOSE_NOTIFY             SSL3_AD_CLOSE_NOTIFY
/* fatal */
# define SSL_AD_UNEXPECTED_MESSAGE       SSL3_AD_UNEXPECTED_MESSAGE
/* fatal */
# define SSL_AD_BAD_RECORD_MAC           SSL3_AD_BAD_RECORD_MAC
# define SSL_AD_DECRYPTION_FAILED        TLS1_AD_DECRYPTION_FAILED
# define SSL_AD_RECORD_OVERFLOW          TLS1_AD_RECORD_OVERFLOW
/* fatal */
# define SSL_AD_DECOMPRESSION_FAILURE    SSL3_AD_DECOMPRESSION_FAILURE
/* fatal */
# define SSL_AD_HANDSHAKE_FAILURE        SSL3_AD_HANDSHAKE_FAILURE
/* Not for TLS */
# define SSL_AD_NO_CERTIFICATE           SSL3_AD_NO_CERTIFICATE
# define SSL_AD_BAD_CERTIFICATE          SSL3_AD_BAD_CERTIFICATE
# define SSL_AD_UNSUPPORTED_CERTIFICATE  SSL3_AD_UNSUPPORTED_CERTIFICATE
# define SSL_AD_CERTIFICATE_REVOKED      SSL3_AD_CERTIFICATE_REVOKED
# define SSL_AD_CERTIFICATE_EXPIRED      SSL3_AD_CERTIFICATE_EXPIRED
# define SSL_AD_CERTIFICATE_UNKNOWN      SSL3_AD_CERTIFICATE_UNKNOWN
/* fatal */
# define SSL_AD_ILLEGAL_PARAMETER        SSL3_AD_ILLEGAL_PARAMETER
/* fatal */
# define SSL_AD_UNKNOWN_CA               TLS1_AD_UNKNOWN_CA
/* fatal */
# define SSL_AD_ACCESS_DENIED            TLS1_AD_ACCESS_DENIED
/* fatal */
# define SSL_AD_DECODE_ERROR             TLS1_AD_DECODE_ERROR
# define SSL_AD_DECRYPT_ERROR            TLS1_AD_DECRYPT_ERROR
/* fatal */
# define SSL_AD_EXPORT_RESTRICTION       TLS1_AD_EXPORT_RESTRICTION
/* fatal */
# define SSL_AD_PROTOCOL_VERSION         TLS1_AD_PROTOCOL_VERSION
/* fatal */
# define SSL_AD_INSUFFICIENT_SECURITY    TLS1_AD_INSUFFICIENT_SECURITY
/* fatal */
# define SSL_AD_INTERNAL_ERROR           TLS1_AD_INTERNAL_ERROR
# define SSL_AD_USER_CANCELLED           TLS1_AD_USER_CANCELLED
# define SSL_AD_NO_RENEGOTIATION         TLS1_AD_NO_RENEGOTIATION
# define SSL_AD_MISSING_EXTENSION        TLS13_AD_MISSING_EXTENSION
# define SSL_AD_CERTIFICATE_REQUIRED     TLS13_AD_CERTIFICATE_REQUIRED
# define SSL_AD_UNSUPPORTED_EXTENSION    TLS1_AD_UNSUPPORTED_EXTENSION
# define SSL_AD_CERTIFICATE_UNOBTAINABLE TLS1_AD_CERTIFICATE_UNOBTAINABLE
# define SSL_AD_UNRECOGNIZED_NAME        TLS1_AD_UNRECOGNIZED_NAME
# define SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE
# define SSL_AD_BAD_CERTIFICATE_HASH_VALUE TLS1_AD_BAD_CERTIFICATE_HASH_VALUE
/* fatal */
# define SSL_AD_UNKNOWN_PSK_IDENTITY     TLS1_AD_UNKNOWN_PSK_IDENTITY
/* fatal */
# define SSL_AD_INAPPROPRIATE_FALLBACK   TLS1_AD_INAPPROPRIATE_FALLBACK
# define SSL_AD_NO_APPLICATION_PROTOCOL  TLS1_AD_NO_APPLICATION_PROTOCOL
# define SSL_ERROR_NONE                  0
# define SSL_ERROR_SSL                   1
# define SSL_ERROR_WANT_READ             2
# define SSL_ERROR_WANT_WRITE            3
# define SSL_ERROR_WANT_X509_LOOKUP      4
# define SSL_ERROR_SYSCALL               5/* look at error stack/return
                                           * value/errno */
# define SSL_ERROR_ZERO_RETURN           6
# define SSL_ERROR_WANT_CONNECT          7
# define SSL_ERROR_WANT_ACCEPT           8
# define SSL_ERROR_WANT_ASYNC            9
# define SSL_ERROR_WANT_ASYNC_JOB       10
# define SSL_ERROR_WANT_CLIENT_HELLO_CB 11
# define SSL_ERROR_WANT_RETRY_VERIFY    12

# ifndef OPENSSL_NO_DEPRECATED_3_0
#  define SSL_CTRL_SET_TMP_DH                    3
#  define SSL_CTRL_SET_TMP_ECDH                  4
#  define SSL_CTRL_SET_TMP_DH_CB                 6
# endif

# define SSL_CTRL_GET_CLIENT_CERT_REQUEST        9
# define SSL_CTRL_GET_NUM_RENEGOTIATIONS         10
# define SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS       11
# define SSL_CTRL_GET_TOTAL_RENEGOTIATIONS       12
# define SSL_CTRL_GET_FLAGS                      13
# define SSL_CTRL_EXTRA_CHAIN_CERT               14
# define SSL_CTRL_SET_MSG_CALLBACK               15
# define SSL_CTRL_SET_MSG_CALLBACK_ARG           16
/* only applies to datagram connections */
# define SSL_CTRL_SET_MTU                17
/* Stats */
# define SSL_CTRL_SESS_NUMBER                    20
# define SSL_CTRL_SESS_CONNECT                   21
# define SSL_CTRL_SESS_CONNECT_GOOD              22
# define SSL_CTRL_SESS_CONNECT_RENEGOTIATE       23
# define SSL_CTRL_SESS_ACCEPT                    24
# define SSL_CTRL_SESS_ACCEPT_GOOD               25
# define SSL_CTRL_SESS_ACCEPT_RENEGOTIATE        26
# define SSL_CTRL_SESS_HIT                       27
# define SSL_CTRL_SESS_CB_HIT                    28
# define SSL_CTRL_SESS_MISSES                    29
# define SSL_CTRL_SESS_TIMEOUTS                  30
# define SSL_CTRL_SESS_CACHE_FULL                31
# define SSL_CTRL_MODE                           33
# define SSL_CTRL_GET_READ_AHEAD                 40
# define SSL_CTRL_SET_READ_AHEAD                 41
# define SSL_CTRL_SET_SESS_CACHE_SIZE            42
# define SSL_CTRL_GET_SESS_CACHE_SIZE            43
# define SSL_CTRL_SET_SESS_CACHE_MODE            44
# define SSL_CTRL_GET_SESS_CACHE_MODE            45
# define SSL_CTRL_GET_MAX_CERT_LIST              50
# define SSL_CTRL_SET_MAX_CERT_LIST              51
# define SSL_CTRL_SET_MAX_SEND_FRAGMENT          52
/* see tls1.h for macros based on these */
# define SSL_CTRL_SET_TLSEXT_SERVERNAME_CB       53
# define SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG      54
# define SSL_CTRL_SET_TLSEXT_HOSTNAME            55
# define SSL_CTRL_SET_TLSEXT_DEBUG_CB            56
# define SSL_CTRL_SET_TLSEXT_DEBUG_ARG           57
# define SSL_CTRL_GET_TLSEXT_TICKET_KEYS         58
# define SSL_CTRL_SET_TLSEXT_TICKET_KEYS         59
/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT    60 */
/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB 61 */
/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB_ARG 62 */
# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB       63
# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG   64
# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE     65
# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS     66
# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS     67
# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS      68
# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS      69
# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP        70
# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP        71
# ifndef OPENSSL_NO_DEPRECATED_3_0
#  define SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB      72
# endif
# define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME_CB    75
# define SSL_CTRL_SET_SRP_VERIFY_PARAM_CB                76
# define SSL_CTRL_SET_SRP_GIVE_CLIENT_PWD_CB             77
# define SSL_CTRL_SET_SRP_ARG            78
# define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME               79
# define SSL_CTRL_SET_TLS_EXT_SRP_STRENGTH               80
# define SSL_CTRL_SET_TLS_EXT_SRP_PASSWORD               81
# define DTLS_CTRL_GET_TIMEOUT           73
# define DTLS_CTRL_HANDLE_TIMEOUT        74
# define SSL_CTRL_GET_RI_SUPPORT                 76
# define SSL_CTRL_CLEAR_MODE                     78
# define SSL_CTRL_SET_NOT_RESUMABLE_SESS_CB      79
# define SSL_CTRL_GET_EXTRA_CHAIN_CERTS          82
# define SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS        83
# define SSL_CTRL_CHAIN                          88
# define SSL_CTRL_CHAIN_CERT                     89
# define SSL_CTRL_GET_GROUPS                     90
# define SSL_CTRL_SET_GROUPS                     91
# define SSL_CTRL_SET_GROUPS_LIST                92
# define SSL_CTRL_GET_SHARED_GROUP               93
# define SSL_CTRL_SET_SIGALGS                    97
# define SSL_CTRL_SET_SIGALGS_LIST               98
# define SSL_CTRL_CERT_FLAGS                     99
# define SSL_CTRL_CLEAR_CERT_FLAGS               100
# define SSL_CTRL_SET_CLIENT_SIGALGS             101
# define SSL_CTRL_SET_CLIENT_SIGALGS_LIST        102
# define SSL_CTRL_GET_CLIENT_CERT_TYPES          103
# define SSL_CTRL_SET_CLIENT_CERT_TYPES          104
# define SSL_CTRL_BUILD_CERT_CHAIN               105
# define SSL_CTRL_SET_VERIFY_CERT_STORE          106
# define SSL_CTRL_SET_CHAIN_CERT_STORE           107
# define SSL_CTRL_GET_PEER_SIGNATURE_NID         108
# define SSL_CTRL_GET_PEER_TMP_KEY               109
# define SSL_CTRL_GET_RAW_CIPHERLIST             110
# define SSL_CTRL_GET_EC_POINT_FORMATS           111
# define SSL_CTRL_GET_CHAIN_CERTS                115
# define SSL_CTRL_SELECT_CURRENT_CERT            116
# define SSL_CTRL_SET_CURRENT_CERT               117
# define SSL_CTRL_SET_DH_AUTO                    118
# define DTLS_CTRL_SET_LINK_MTU                  120
# define DTLS_CTRL_GET_LINK_MIN_MTU              121
# define SSL_CTRL_GET_EXTMS_SUPPORT              122
# define SSL_CTRL_SET_MIN_PROTO_VERSION          123
# define SSL_CTRL_SET_MAX_PROTO_VERSION          124
# define SSL_CTRL_SET_SPLIT_SEND_FRAGMENT        125
# define SSL_CTRL_SET_MAX_PIPELINES              126
# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE     127
# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB       128
# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB_ARG   129
# define SSL_CTRL_GET_MIN_PROTO_VERSION          130
# define SSL_CTRL_GET_MAX_PROTO_VERSION          131
# define SSL_CTRL_GET_SIGNATURE_NID              132
# define SSL_CTRL_GET_TMP_KEY                    133
# define SSL_CTRL_GET_NEGOTIATED_GROUP           134
# define SSL_CTRL_SET_RETRY_VERIFY               136
# define SSL_CTRL_GET_VERIFY_CERT_STORE          137
# define SSL_CTRL_GET_CHAIN_CERT_STORE           138
# define SSL_CERT_SET_FIRST                      1
# define SSL_CERT_SET_NEXT                       2
# define SSL_CERT_SET_SERVER                     3
# define DTLSv1_get_timeout(ssl, arg) \
        SSL_ctrl(ssl,DTLS_CTRL_GET_TIMEOUT,0, (void *)(arg))
# define DTLSv1_handle_timeout(ssl) \
        SSL_ctrl(ssl,DTLS_CTRL_HANDLE_TIMEOUT,0, NULL)
# define SSL_num_renegotiations(ssl) \
        SSL_ctrl((ssl),SSL_CTRL_GET_NUM_RENEGOTIATIONS,0,NULL)
# define SSL_clear_num_renegotiations(ssl) \
        SSL_ctrl((ssl),SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS,0,NULL)
# define SSL_total_renegotiations(ssl) \
        SSL_ctrl((ssl),SSL_CTRL_GET_TOTAL_RENEGOTIATIONS,0,NULL)
# ifndef OPENSSL_NO_DEPRECATED_3_0
#  define SSL_CTX_set_tmp_dh(ctx,dh) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_DH,0,(char *)(dh))
# endif
# define SSL_CTX_set_dh_auto(ctx, onoff) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_DH_AUTO,onoff,NULL)
# define SSL_set_dh_auto(s, onoff) \
        SSL_ctrl(s,SSL_CTRL_SET_DH_AUTO,onoff,NULL)
# ifndef OPENSSL_NO_DEPRECATED_3_0
#  define SSL_set_tmp_dh(ssl,dh) \
        SSL_ctrl(ssl,SSL_CTRL_SET_TMP_DH,0,(char *)(dh))
# endif
# ifndef OPENSSL_NO_DEPRECATED_3_0
#  define SSL_CTX_set_tmp_ecdh(ctx,ecdh) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_ECDH,0,(char *)(ecdh))
#  define SSL_set_tmp_ecdh(ssl,ecdh) \
        SSL_ctrl(ssl,SSL_CTRL_SET_TMP_ECDH,0,(char *)(ecdh))
# endif
# define SSL_CTX_add_extra_chain_cert(ctx,x509) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)(x509))
# define SSL_CTX_get_extra_chain_certs(ctx,px509) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,0,px509)
# define SSL_CTX_get_extra_chain_certs_only(ctx,px509) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,1,px509)
# define SSL_CTX_clear_extra_chain_certs(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS,0,NULL)
# define SSL_CTX_set0_chain(ctx,sk) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,0,(char *)(sk))
# define SSL_CTX_set1_chain(ctx,sk) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,1,(char *)(sk))
# define SSL_CTX_add0_chain_cert(ctx,x509) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,0,(char *)(x509))
# define SSL_CTX_add1_chain_cert(ctx,x509) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,1,(char *)(x509))
# define SSL_CTX_get0_chain_certs(ctx,px509) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERTS,0,px509)
# define SSL_CTX_clear_chain_certs(ctx) \
        SSL_CTX_set0_chain(ctx,NULL)
# define SSL_CTX_build_cert_chain(ctx, flags) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL)
# define SSL_CTX_select_current_cert(ctx,x509) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)(x509))
# define SSL_CTX_set_current_cert(ctx, op) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURRENT_CERT, op, NULL)
# define SSL_CTX_set0_verify_cert_store(ctx,st) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)(st))
# define SSL_CTX_set1_verify_cert_store(ctx,st) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)(st))
# define SSL_CTX_get0_verify_cert_store(ctx,st) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_GET_VERIFY_CERT_STORE,0,(char *)(st))
# define SSL_CTX_set0_chain_cert_store(ctx,st) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)(st))
# define SSL_CTX_set1_chain_cert_store(ctx,st) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)(st))
# define SSL_CTX_get0_chain_cert_store(ctx,st) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERT_STORE,0,(char *)(st))
# define SSL_set0_chain(s,sk) \
        SSL_ctrl(s,SSL_CTRL_CHAIN,0,(char *)(sk))
# define SSL_set1_chain(s,sk) \
        SSL_ctrl(s,SSL_CTRL_CHAIN,1,(char *)(sk))
# define SSL_add0_chain_cert(s,x509) \
        SSL_ctrl(s,SSL_CTRL_CHAIN_CERT,0,(char *)(x509))
# define SSL_add1_chain_cert(s,x509) \
        SSL_ctrl(s,SSL_CTRL_CHAIN_CERT,1,(char *)(x509))
# define SSL_get0_chain_certs(s,px509) \
        SSL_ctrl(s,SSL_CTRL_GET_CHAIN_CERTS,0,px509)
# define SSL_clear_chain_certs(s) \
        SSL_set0_chain(s,NULL)
# define SSL_build_cert_chain(s, flags) \
        SSL_ctrl(s,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL)
# define SSL_select_current_cert(s,x509) \
        SSL_ctrl(s,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)(x509))
# define SSL_set_current_cert(s,op) \
        SSL_ctrl(s,SSL_CTRL_SET_CURRENT_CERT, op, NULL)
# define SSL_set0_verify_cert_store(s,st) \
        SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)(st))
# define SSL_set1_verify_cert_store(s,st) \
        SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)(st))
#define SSL_get0_verify_cert_store(s,st) \
        SSL_ctrl(s,SSL_CTRL_GET_VERIFY_CERT_STORE,0,(char *)(st))
# define SSL_set0_chain_cert_store(s,st) \
        SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)(st))
# define SSL_set1_chain_cert_store(s,st) \
        SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)(st))
#define SSL_get0_chain_cert_store(s,st) \
        SSL_ctrl(s,SSL_CTRL_GET_CHAIN_CERT_STORE,0,(char *)(st))

# define SSL_get1_groups(s, glist) \
        SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist))
# define SSL_CTX_set1_groups(ctx, glist, glistlen) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(glist))
# define SSL_CTX_set1_groups_list(ctx, s) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s))
# define SSL_set1_groups(s, glist, glistlen) \
        SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist))
# define SSL_set1_groups_list(s, str) \
        SSL_ctrl(s,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(str))
# define SSL_get_shared_group(s, n) \
        SSL_ctrl(s,SSL_CTRL_GET_SHARED_GROUP,n,NULL)
# define SSL_get_negotiated_group(s) \
        SSL_ctrl(s,SSL_CTRL_GET_NEGOTIATED_GROUP,0,NULL)
# define SSL_CTX_set1_sigalgs(ctx, slist, slistlen) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS,slistlen,(int *)(slist))
# define SSL_CTX_set1_sigalgs_list(ctx, s) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)(s))
# define SSL_set1_sigalgs(s, slist, slistlen) \
        SSL_ctrl(s,SSL_CTRL_SET_SIGALGS,slistlen,(int *)(slist))
# define SSL_set1_sigalgs_list(s, str) \
        SSL_ctrl(s,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)(str))
# define SSL_CTX_set1_client_sigalgs(ctx, slist, slistlen) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS,slistlen,(int *)(slist))
# define SSL_CTX_set1_client_sigalgs_list(ctx, s) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)(s))
# define SSL_set1_client_sigalgs(s, slist, slistlen) \
        SSL_ctrl(s,SSL_CTRL_SET_CLIENT_SIGALGS,slistlen,(int *)(slist))
# define SSL_set1_client_sigalgs_list(s, str) \
        SSL_ctrl(s,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)(str))
# define SSL_get0_certificate_types(s, clist) \
        SSL_ctrl(s, SSL_CTRL_GET_CLIENT_CERT_TYPES, 0, (char *)(clist))
# define SSL_CTX_set1_client_certificate_types(ctx, clist, clistlen) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen, \
                     (char *)(clist))
# define SSL_set1_client_certificate_types(s, clist, clistlen) \
        SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist))
# define SSL_get_signature_nid(s, pn) \
        SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn)
# define SSL_get_peer_signature_nid(s, pn) \
        SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn)
# define SSL_get_peer_tmp_key(s, pk) \
        SSL_ctrl(s,SSL_CTRL_GET_PEER_TMP_KEY,0,pk)
# define SSL_get_tmp_key(s, pk) \
        SSL_ctrl(s,SSL_CTRL_GET_TMP_KEY,0,pk)
# define SSL_get0_raw_cipherlist(s, plst) \
        SSL_ctrl(s,SSL_CTRL_GET_RAW_CIPHERLIST,0,plst)
# define SSL_get0_ec_point_formats(s, plst) \
        SSL_ctrl(s,SSL_CTRL_GET_EC_POINT_FORMATS,0,plst)
# define SSL_CTX_set_min_proto_version(ctx, version) \
        SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MIN_PROTO_VERSION, version, NULL)
# define SSL_CTX_set_max_proto_version(ctx, version) \
        SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MAX_PROTO_VERSION, version, NULL)
# define SSL_CTX_get_min_proto_version(ctx) \
        SSL_CTX_ctrl(ctx, SSL_CTRL_GET_MIN_PROTO_VERSION, 0, NULL)
# define SSL_CTX_get_max_proto_version(ctx) \
        SSL_CTX_ctrl(ctx, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL)
# define SSL_set_min_proto_version(s, version) \
        SSL_ctrl(s, SSL_CTRL_SET_MIN_PROTO_VERSION, version, NULL)
# define SSL_set_max_proto_version(s, version) \
        SSL_ctrl(s, SSL_CTRL_SET_MAX_PROTO_VERSION, version, NULL)
# define SSL_get_min_proto_version(s) \
        SSL_ctrl(s, SSL_CTRL_GET_MIN_PROTO_VERSION, 0, NULL)
# define SSL_get_max_proto_version(s) \
        SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL)

const char *SSL_group_to_name(SSL *s, int id);

/* Backwards compatibility, original 1.1.0 names */
# define SSL_CTRL_GET_SERVER_TMP_KEY \
         SSL_CTRL_GET_PEER_TMP_KEY
# define SSL_get_server_tmp_key(s, pk) \
         SSL_get_peer_tmp_key(s, pk)

int SSL_set0_tmp_dh_pkey(SSL *s, EVP_PKEY *dhpkey);
int SSL_CTX_set0_tmp_dh_pkey(SSL_CTX *ctx, EVP_PKEY *dhpkey);

/*
 * The following symbol names are old and obsolete. They are kept
 * for compatibility reasons only and should not be used anymore.
 */
# define SSL_CTRL_GET_CURVES           SSL_CTRL_GET_GROUPS
# define SSL_CTRL_SET_CURVES           SSL_CTRL_SET_GROUPS
# define SSL_CTRL_SET_CURVES_LIST      SSL_CTRL_SET_GROUPS_LIST
# define SSL_CTRL_GET_SHARED_CURVE     SSL_CTRL_GET_SHARED_GROUP

# define SSL_get1_curves               SSL_get1_groups
# define SSL_CTX_set1_curves           SSL_CTX_set1_groups
# define SSL_CTX_set1_curves_list      SSL_CTX_set1_groups_list
# define SSL_set1_curves               SSL_set1_groups
# define SSL_set1_curves_list          SSL_set1_groups_list
# define SSL_get_shared_curve          SSL_get_shared_group


# ifndef OPENSSL_NO_DEPRECATED_1_1_0
/* Provide some compatibility macros for removed functionality. */
#  define SSL_CTX_need_tmp_RSA(ctx)                0
#  define SSL_CTX_set_tmp_rsa(ctx,rsa)             1
#  define SSL_need_tmp_RSA(ssl)                    0
#  define SSL_set_tmp_rsa(ssl,rsa)                 1
#  define SSL_CTX_set_ecdh_auto(dummy, onoff)      ((onoff) != 0)
#  define SSL_set_ecdh_auto(dummy, onoff)          ((onoff) != 0)
/*
 * We "pretend" to call the callback to avoid warnings about unused static
 * functions.
 */
#  define SSL_CTX_set_tmp_rsa_callback(ctx, cb)    while(0) (cb)(NULL, 0, 0)
#  define SSL_set_tmp_rsa_callback(ssl, cb)        while(0) (cb)(NULL, 0, 0)
# endif
__owur const BIO_METHOD *BIO_f_ssl(void);
__owur BIO *BIO_new_ssl(SSL_CTX *ctx, int client);
__owur BIO *BIO_new_ssl_connect(SSL_CTX *ctx);
__owur BIO *BIO_new_buffer_ssl_connect(SSL_CTX *ctx);
__owur int BIO_ssl_copy_session_id(BIO *to, BIO *from);
void BIO_ssl_shutdown(BIO *ssl_bio);

__owur int SSL_CTX_set_cipher_list(SSL_CTX *, const char *str);
__owur SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth);
__owur SSL_CTX *SSL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq,
                               const SSL_METHOD *meth);
int SSL_CTX_up_ref(SSL_CTX *ctx);
void SSL_CTX_free(SSL_CTX *);
__owur long SSL_CTX_set_timeout(SSL_CTX *ctx, long t);
__owur long SSL_CTX_get_timeout(const SSL_CTX *ctx);
__owur X509_STORE *SSL_CTX_get_cert_store(const SSL_CTX *);
void SSL_CTX_set_cert_store(SSL_CTX *, X509_STORE *);
void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *);
__owur int SSL_want(const SSL *s);
__owur int SSL_clear(SSL *s);

void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm);

__owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s);
__owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s);
__owur int SSL_CIPHER_get_bits(const SSL_CIPHER *c, int *alg_bits);
__owur const char *SSL_CIPHER_get_version(const SSL_CIPHER *c);
__owur const char *SSL_CIPHER_get_name(const SSL_CIPHER *c);
__owur const char *SSL_CIPHER_standard_name(const SSL_CIPHER *c);
__owur const char *OPENSSL_cipher_name(const char *rfc_name);
__owur uint32_t SSL_CIPHER_get_id(const SSL_CIPHER *c);
__owur uint16_t SSL_CIPHER_get_protocol_id(const SSL_CIPHER *c);
__owur int SSL_CIPHER_get_kx_nid(const SSL_CIPHER *c);
__owur int SSL_CIPHER_get_auth_nid(const SSL_CIPHER *c);
__owur const EVP_MD *SSL_CIPHER_get_handshake_digest(const SSL_CIPHER *c);
__owur int SSL_CIPHER_is_aead(const SSL_CIPHER *c);

__owur int SSL_get_fd(const SSL *s);
__owur int SSL_get_rfd(const SSL *s);
__owur int SSL_get_wfd(const SSL *s);
__owur const char *SSL_get_cipher_list(const SSL *s, int n);
__owur char *SSL_get_shared_ciphers(const SSL *s, char *buf, int size);
__owur int SSL_get_read_ahead(const SSL *s);
__owur int SSL_pending(const SSL *s);
__owur int SSL_has_pending(const SSL *s);
# ifndef OPENSSL_NO_SOCK
__owur int SSL_set_fd(SSL *s, int fd);
__owur int SSL_set_rfd(SSL *s, int fd);
__owur int SSL_set_wfd(SSL *s, int fd);
# endif
void SSL_set0_rbio(SSL *s, BIO *rbio);
void SSL_set0_wbio(SSL *s, BIO *wbio);
void SSL_set_bio(SSL *s, BIO *rbio, BIO *wbio);
__owur BIO *SSL_get_rbio(const SSL *s);
__owur BIO *SSL_get_wbio(const SSL *s);
__owur int SSL_set_cipher_list(SSL *s, const char *str);
__owur int SSL_CTX_set_ciphersuites(SSL_CTX *ctx, const char *str);
__owur int SSL_set_ciphersuites(SSL *s, const char *str);
void SSL_set_read_ahead(SSL *s, int yes);
__owur int SSL_get_verify_mode(const SSL *s);
__owur int SSL_get_verify_depth(const SSL *s);
__owur SSL_verify_cb SSL_get_verify_callback(const SSL *s);
void SSL_set_verify(SSL *s, int mode, SSL_verify_cb callback);
void SSL_set_verify_depth(SSL *s, int depth);
void SSL_set_cert_cb(SSL *s, int (*cb) (SSL *ssl, void *arg), void *arg);
# ifndef OPENSSL_NO_DEPRECATED_3_0
OSSL_DEPRECATEDIN_3_0 __owur int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa);
OSSL_DEPRECATEDIN_3_0
__owur int SSL_use_RSAPrivateKey_ASN1(SSL *ssl,
                                      const unsigned char *d, long len);
# endif
__owur int SSL_use_PrivateKey(SSL *ssl, EVP_PKEY *pkey);
__owur int SSL_use_PrivateKey_ASN1(int pk, SSL *ssl, const unsigned char *d,
                                   long len);
__owur int SSL_use_certificate(SSL *ssl, X509 *x);
__owur int SSL_use_certificate_ASN1(SSL *ssl, const unsigned char *d, int len);
__owur int SSL_use_cert_and_key(SSL *ssl, X509 *x509, EVP_PKEY *privatekey,
                                STACK_OF(X509) *chain, int override);


/* serverinfo file format versions */
# define SSL_SERVERINFOV1   1
# define SSL_SERVERINFOV2   2

/* Set serverinfo data for the current active cert. */
__owur int SSL_CTX_use_serverinfo(SSL_CTX *ctx, const unsigned char *serverinfo,
                                  size_t serverinfo_length);
__owur int SSL_CTX_use_serverinfo_ex(SSL_CTX *ctx, unsigned int version,
                                     const unsigned char *serverinfo,
                                     size_t serverinfo_length);
__owur int SSL_CTX_use_serverinfo_file(SSL_CTX *ctx, const char *file);

#ifndef OPENSSL_NO_DEPRECATED_3_0
OSSL_DEPRECATEDIN_3_0
__owur int SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type);
#endif

__owur int SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type);
__owur int SSL_use_certificate_file(SSL *ssl, const char *file, int type);

#ifndef OPENSSL_NO_DEPRECATED_3_0
OSSL_DEPRECATEDIN_3_0
__owur int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx, const char *file,
                                          int type);
#endif
__owur int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file,
                                       int type);
__owur int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file,
                                        int type);
/* PEM type */
__owur int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file);
__owur int SSL_use_certificate_chain_file(SSL *ssl, const char *file);
__owur STACK_OF(X509_NAME) *SSL_load_client_CA_file(const char *file);
__owur STACK_OF(X509_NAME)
*SSL_load_client_CA_file_ex(const char *file, OSSL_LIB_CTX *libctx,
                            const char *propq);
__owur int SSL_add_file_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs,
                                               const char *file);
int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs,
                                       const char *dir);
int SSL_add_store_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs,
                                       const char *uri);

# ifndef OPENSSL_NO_DEPRECATED_1_1_0
#  define SSL_load_error_strings() \
    OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS \
                     | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL)
# endif

__owur const char *SSL_state_string(const SSL *s);
__owur const char *SSL_rstate_string(const SSL *s);
__owur const char *SSL_state_string_long(const SSL *s);
__owur const char *SSL_rstate_string_long(const SSL *s);
__owur long SSL_SESSION_get_time(const SSL_SESSION *s);
__owur long SSL_SESSION_set_time(SSL_SESSION *s, long t);
__owur long SSL_SESSION_get_timeout(const SSL_SESSION *s);
__owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t);
__owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s);
__owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version);

__owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s);
__owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname);
void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s,
                                    const unsigned char **alpn,
                                    size_t *len);
__owur int SSL_SESSION_set1_alpn_selected(SSL_SESSION *s,
                                          const unsigned char *alpn,
                                          size_t len);
__owur const SSL_CIPHER *SSL_SESSION_get0_cipher(const SSL_SESSION *s);
__owur int SSL_SESSION_set_cipher(SSL_SESSION *s, const SSL_CIPHER *cipher);
__owur int SSL_SESSION_has_ticket(const SSL_SESSION *s);
__owur unsigned long SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *s);
void SSL_SESSION_get0_ticket(const SSL_SESSION *s, const unsigned char **tick,
                             size_t *len);
__owur uint32_t SSL_SESSION_get_max_early_data(const SSL_SESSION *s);
__owur int SSL_SESSION_set_max_early_data(SSL_SESSION *s,
                                          uint32_t max_early_data);
__owur int SSL_copy_session_id(SSL *to, const SSL *from);
__owur X509 *SSL_SESSION_get0_peer(SSL_SESSION *s);
__owur int SSL_SESSION_set1_id_context(SSL_SESSION *s,
                                       const unsigned char *sid_ctx,
                                       unsigned int sid_ctx_len);
__owur int SSL_SESSION_set1_id(SSL_SESSION *s, const unsigned char *sid,
                               unsigned int sid_len);
__owur int SSL_SESSION_is_resumable(const SSL_SESSION *s);

__owur SSL_SESSION *SSL_SESSION_new(void);
__owur SSL_SESSION *SSL_SESSION_dup(const SSL_SESSION *src);
const unsigned char *SSL_SESSION_get_id(const SSL_SESSION *s,
                                        unsigned int *len);
const unsigned char *SSL_SESSION_get0_id_context(const SSL_SESSION *s,
                                                 unsigned int *len);
__owur unsigned int SSL_SESSION_get_compress_id(const SSL_SESSION *s);
# ifndef OPENSSL_NO_STDIO
int SSL_SESSION_print_fp(FILE *fp, const SSL_SESSION *ses);
# endif
int SSL_SESSION_print(BIO *fp, const SSL_SESSION *ses);
int SSL_SESSION_print_keylog(BIO *bp, const SSL_SESSION *x);
int SSL_SESSION_up_ref(SSL_SESSION *ses);
void SSL_SESSION_free(SSL_SESSION *ses);
__owur int i2d_SSL_SESSION(const SSL_SESSION *in, unsigned char **pp);
__owur int SSL_set_session(SSL *to, SSL_SESSION *session);
int SSL_CTX_add_session(SSL_CTX *ctx, SSL_SESSION *session);
int SSL_CTX_remove_session(SSL_CTX *ctx, SSL_SESSION *session);
__owur int SSL_CTX_set_generate_session_id(SSL_CTX *ctx, GEN_SESSION_CB cb);
__owur int SSL_set_generate_session_id(SSL *s, GEN_SESSION_CB cb);
__owur int SSL_has_matching_session_id(const SSL *s,
                                       const unsigned char *id,
                                       unsigned int id_len);
SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp,
                             long length);

# ifdef OPENSSL_X509_H
__owur X509 *SSL_get0_peer_certificate(const SSL *s);
__owur X509 *SSL_get1_peer_certificate(const SSL *s);
/* Deprecated in 3.0.0 */
#  ifndef OPENSSL_NO_DEPRECATED_3_0
#   define SSL_get_peer_certificate SSL_get1_peer_certificate
#  endif
# endif

__owur STACK_OF(X509) *SSL_get_peer_cert_chain(const SSL *s);

__owur int SSL_CTX_get_verify_mode(const SSL_CTX *ctx);
__owur int SSL_CTX_get_verify_depth(const SSL_CTX *ctx);
__owur SSL_verify_cb SSL_CTX_get_verify_callback(const SSL_CTX *ctx);
void SSL_CTX_set_verify(SSL_CTX *ctx, int mode, SSL_verify_cb callback);
void SSL_CTX_set_verify_depth(SSL_CTX *ctx, int depth);
void SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx,
                                      int (*cb) (X509_STORE_CTX *, void *),
                                      void *arg);
void SSL_CTX_set_cert_cb(SSL_CTX *c, int (*cb) (SSL *ssl, void *arg),
                         void *arg);
# ifndef OPENSSL_NO_DEPRECATED_3_0
OSSL_DEPRECATEDIN_3_0
__owur int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa);
OSSL_DEPRECATEDIN_3_0
__owur int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, const unsigned char *d,
                                          long len);
# endif
__owur int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey);
__owur int SSL_CTX_use_PrivateKey_ASN1(int pk, SSL_CTX *ctx,
                                       const unsigned char *d, long len);
__owur int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x);
__owur int SSL_CTX_use_certificate_ASN1(SSL_CTX *ctx, int len,
                                        const unsigned char *d);
__owur int SSL_CTX_use_cert_and_key(SSL_CTX *ctx, X509 *x509, EVP_PKEY *privatekey,
                                    STACK_OF(X509) *chain, int override);

void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb);
void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u);
pem_password_cb *SSL_CTX_get_default_passwd_cb(SSL_CTX *ctx);
void *SSL_CTX_get_default_passwd_cb_userdata(SSL_CTX *ctx);
void SSL_set_default_passwd_cb(SSL *s, pem_password_cb *cb);
void SSL_set_default_passwd_cb_userdata(SSL *s, void *u);
pem_password_cb *SSL_get_default_passwd_cb(SSL *s);
void *SSL_get_default_passwd_cb_userdata(SSL *s);

__owur int SSL_CTX_check_private_key(const SSL_CTX *ctx);
__owur int SSL_check_private_key(const SSL *ctx);

__owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx,
                                          const unsigned char *sid_ctx,
                                          unsigned int sid_ctx_len);

SSL *SSL_new(SSL_CTX *ctx);
int SSL_up_ref(SSL *s);
int SSL_is_dtls(const SSL *s);
__owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx,
                                      unsigned int sid_ctx_len);

__owur int SSL_CTX_set_purpose(SSL_CTX *ctx, int purpose);
__owur int SSL_set_purpose(SSL *ssl, int purpose);
__owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust);
__owur int SSL_set_trust(SSL *ssl, int trust);

__owur int SSL_set1_host(SSL *s, const char *hostname);
__owur int SSL_add1_host(SSL *s, const char *hostname);
__owur const char *SSL_get0_peername(SSL *s);
void SSL_set_hostflags(SSL *s, unsigned int flags);

__owur int SSL_CTX_dane_enable(SSL_CTX *ctx);
__owur int SSL_CTX_dane_mtype_set(SSL_CTX *ctx, const EVP_MD *md,
                                  uint8_t mtype, uint8_t ord);
__owur int SSL_dane_enable(SSL *s, const char *basedomain);
__owur int SSL_dane_tlsa_add(SSL *s, uint8_t usage, uint8_t selector,
                             uint8_t mtype, const unsigned char *data, size_t dlen);
__owur int SSL_get0_dane_authority(SSL *s, X509 **mcert, EVP_PKEY **mspki);
__owur int SSL_get0_dane_tlsa(SSL *s, uint8_t *usage, uint8_t *selector,
                              uint8_t *mtype, const unsigned char **data,
                              size_t *dlen);
/*
 * Bridge opacity barrier between libcrypt and libssl, also needed to support
 * offline testing in test/danetest.c
 */
SSL_DANE *SSL_get0_dane(SSL *ssl);
/*
 * DANE flags
 */
unsigned long SSL_CTX_dane_set_flags(SSL_CTX *ctx, unsigned long flags);
unsigned long SSL_CTX_dane_clear_flags(SSL_CTX *ctx, unsigned long flags);
unsigned long SSL_dane_set_flags(SSL *ssl, unsigned long flags);
unsigned long SSL_dane_clear_flags(SSL *ssl, unsigned long flags);

__owur int SSL_CTX_set1_param(SSL_CTX *ctx, X509_VERIFY_PARAM *vpm);
__owur int SSL_set1_param(SSL *ssl, X509_VERIFY_PARAM *vpm);

__owur X509_VERIFY_PARAM *SSL_CTX_get0_param(SSL_CTX *ctx);
__owur X509_VERIFY_PARAM *SSL_get0_param(SSL *ssl);

# ifndef OPENSSL_NO_SRP
#  ifndef OPENSSL_NO_DEPRECATED_3_0
OSSL_DEPRECATEDIN_3_0 int SSL_CTX_set_srp_username(SSL_CTX *ctx, char *name);
OSSL_DEPRECATEDIN_3_0 int SSL_CTX_set_srp_password(SSL_CTX *ctx, char *password);
OSSL_DEPRECATEDIN_3_0 int SSL_CTX_set_srp_strength(SSL_CTX *ctx, int strength);
OSSL_DEPRECATEDIN_3_0
int SSL_CTX_set_srp_client_pwd_callback(SSL_CTX *ctx,
                                        char *(*cb) (SSL *, void *));
OSSL_DEPRECATEDIN_3_0
int SSL_CTX_set_srp_verify_param_callback(SSL_CTX *ctx,
                                          int (*cb) (SSL *, void *));
OSSL_DEPRECATEDIN_3_0
int SSL_CTX_set_srp_username_callback(SSL_CTX *ctx,
                                      int (*cb) (SSL *, int *, void *));
OSSL_DEPRECATEDIN_3_0 int SSL_CTX_set_srp_cb_arg(SSL_CTX *ctx, void *arg);

OSSL_DEPRECATEDIN_3_0
int SSL_set_srp_server_param(SSL *s, const BIGNUM *N, const BIGNUM *g,
                             BIGNUM *sa, BIGNUM *v, char *info);
OSSL_DEPRECATEDIN_3_0
int SSL_set_srp_server_param_pw(SSL *s, const char *user, const char *pass,
                                const char *grp);

OSSL_DEPRECATEDIN_3_0 __owur BIGNUM *SSL_get_srp_g(SSL *s);
OSSL_DEPRECATEDIN_3_0 __owur BIGNUM *SSL_get_srp_N(SSL *s);

OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_username(SSL *s);
OSSL_DEPRECATEDIN_3_0 __owur char *SSL_get_srp_userinfo(SSL *s);
#  endif
# endif

/*
 * ClientHello callback and helpers.
 */

# define SSL_CLIENT_HELLO_SUCCESS 1
# define SSL_CLIENT_HELLO_ERROR   0
# define SSL_CLIENT_HELLO_RETRY   (-1)

typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg);
void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb,
                                 void *arg);
int SSL_client_hello_isv2(SSL *s);
unsigned int SSL_client_hello_get0_legacy_version(SSL *s);
size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out);
size_t SSL_client_hello_get0_session_id(SSL *s, const unsigned char **out);
size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out);
size_t SSL_client_hello_get0_compression_methods(SSL *s,
                                                 const unsigned char **out);
int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen);
int SSL_client_hello_get0_ext(SSL *s, unsigned int type,
                              const unsigned char **out, size_t *outlen);

void SSL_certs_clear(SSL *s);
void SSL_free(SSL *ssl);
# ifdef OSSL_ASYNC_FD
/*
 * Windows application developer has to include windows.h to use these.
 */
__owur int SSL_waiting_for_async(SSL *s);
__owur int SSL_get_all_async_fds(SSL *s, OSSL_ASYNC_FD *fds, size_t *numfds);
__owur int SSL_get_changed_async_fds(SSL *s, OSSL_ASYNC_FD *addfd,
                                     size_t *numaddfds, OSSL_ASYNC_FD *delfd,
                                     size_t *numdelfds);
__owur int SSL_CTX_set_async_callback(SSL_CTX *ctx, SSL_async_callback_fn callback);
__owur int SSL_CTX_set_async_callback_arg(SSL_CTX *ctx, void *arg);
__owur int SSL_set_async_callback(SSL *s, SSL_async_callback_fn callback);
__owur int SSL_set_async_callback_arg(SSL *s, void *arg);
__owur int SSL_get_async_status(SSL *s, int *status);

# endif
__owur int SSL_accept(SSL *ssl);
__owur int SSL_stateless(SSL *s);
__owur int SSL_connect(SSL *ssl);
__owur int SSL_read(SSL *ssl, void *buf, int num);
__owur int SSL_read_ex(SSL *ssl, void *buf, size_t num, size_t *readbytes);

# define SSL_READ_EARLY_DATA_ERROR   0
# define SSL_READ_EARLY_DATA_SUCCESS 1
# define SSL_READ_EARLY_DATA_FINISH  2

__owur int SSL_read_early_data(SSL *s, void *buf, size_t num,
                               size_t *readbytes);
__owur int SSL_peek(SSL *ssl, void *buf, int num);
__owur int SSL_peek_ex(SSL *ssl, void *buf, size_t num, size_t *readbytes);
__owur ossl_ssize_t SSL_sendfile(SSL *s, int fd, off_t offset, size_t size,
                                 int flags);
__owur int SSL_write(SSL *ssl, const void *buf, int num);
__owur int SSL_write_ex(SSL *s, const void *buf, size_t num, size_t *written);
__owur int SSL_write_early_data(SSL *s, const void *buf, size_t num,
                                size_t *written);
long SSL_ctrl(SSL *ssl, int cmd, long larg, void *parg);
long SSL_callback_ctrl(SSL *, int, void (*)(void));
long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg);
long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void));

# define SSL_EARLY_DATA_NOT_SENT    0
# define SSL_EARLY_DATA_REJECTED    1
# define SSL_EARLY_DATA_ACCEPTED    2

__owur int SSL_get_early_data_status(const SSL *s);

__owur int SSL_get_error(const SSL *s, int ret_code);
__owur const char *SSL_get_version(const SSL *s);

/* This sets the 'default' SSL version that SSL_new() will create */
# ifndef OPENSSL_NO_DEPRECATED_3_0
OSSL_DEPRECATEDIN_3_0
__owur int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *meth);
# endif

# ifndef OPENSSL_NO_SSL3_METHOD
#  ifndef OPENSSL_NO_DEPRECATED_1_1_0
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *SSLv3_method(void); /* SSLv3 */
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *SSLv3_server_method(void);
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *SSLv3_client_method(void);
#  endif
# endif

#define SSLv23_method           TLS_method
#define SSLv23_server_method    TLS_server_method
#define SSLv23_client_method    TLS_client_method

/* Negotiate highest available SSL/TLS version */
__owur const SSL_METHOD *TLS_method(void);
__owur const SSL_METHOD *TLS_server_method(void);
__owur const SSL_METHOD *TLS_client_method(void);

# ifndef OPENSSL_NO_TLS1_METHOD
#  ifndef OPENSSL_NO_DEPRECATED_1_1_0
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_method(void); /* TLSv1.0 */
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_server_method(void);
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_client_method(void);
#  endif
# endif

# ifndef OPENSSL_NO_TLS1_1_METHOD
#  ifndef OPENSSL_NO_DEPRECATED_1_1_0
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_1_method(void); /* TLSv1.1 */
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_1_server_method(void);
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_1_client_method(void);
#  endif
# endif

# ifndef OPENSSL_NO_TLS1_2_METHOD
#  ifndef OPENSSL_NO_DEPRECATED_1_1_0
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_2_method(void); /* TLSv1.2 */
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_2_server_method(void);
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *TLSv1_2_client_method(void);
#  endif
# endif

# ifndef OPENSSL_NO_DTLS1_METHOD
#  ifndef OPENSSL_NO_DEPRECATED_1_1_0
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_method(void); /* DTLSv1.0 */
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_server_method(void);
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_client_method(void);
#  endif
# endif

# ifndef OPENSSL_NO_DTLS1_2_METHOD
/* DTLSv1.2 */
#  ifndef OPENSSL_NO_DEPRECATED_1_1_0
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_2_method(void);
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_2_server_method(void);
OSSL_DEPRECATEDIN_1_1_0 __owur const SSL_METHOD *DTLSv1_2_client_method(void);
#  endif
# endif

__owur const SSL_METHOD *DTLS_method(void); /* DTLS 1.0 and 1.2 */
__owur const SSL_METHOD *DTLS_server_method(void); /* DTLS 1.0 and 1.2 */
__owur const SSL_METHOD *DTLS_client_method(void); /* DTLS 1.0 and 1.2 */

__owur size_t DTLS_get_data_mtu(const SSL *s);

__owur STACK_OF(SSL_CIPHER) *SSL_get_ciphers(const SSL *s);
__owur STACK_OF(SSL_CIPHER) *SSL_CTX_get_ciphers(const SSL_CTX *ctx);
__owur STACK_OF(SSL_CIPHER) *SSL_get_client_ciphers(const SSL *s);
__owur STACK_OF(SSL_CIPHER) *SSL_get1_supported_ciphers(SSL *s);

__owur int SSL_do_handshake(SSL *s);
int SSL_key_update(SSL *s, int updatetype);
int SSL_get_key_update_type(const SSL *s);
int SSL_renegotiate(SSL *s);
int SSL_renegotiate_abbreviated(SSL *s);
__owur int SSL_renegotiate_pending(const SSL *s);
int SSL_new_session_ticket(SSL *s);
int SSL_shutdown(SSL *s);
__owur int SSL_verify_client_post_handshake(SSL *s);
void SSL_CTX_set_post_handshake_auth(SSL_CTX *ctx, int val);
void SSL_set_post_handshake_auth(SSL *s, int val);

__owur const SSL_METHOD *SSL_CTX_get_ssl_method(const SSL_CTX *ctx);
__owur const SSL_METHOD *SSL_get_ssl_method(const SSL *s);
__owur int SSL_set_ssl_method(SSL *s, const SSL_METHOD *method);
__owur const char *SSL_alert_type_string_long(int value);
__owur const char *SSL_alert_type_string(int value);
__owur const char *SSL_alert_desc_string_long(int value);
__owur const char *SSL_alert_desc_string(int value);

void SSL_set0_CA_list(SSL *s, STACK_OF(X509_NAME) *name_list);
void SSL_CTX_set0_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *name_list);
__owur const STACK_OF(X509_NAME) *SSL_get0_CA_list(const SSL *s);
__owur const STACK_OF(X509_NAME) *SSL_CTX_get0_CA_list(const SSL_CTX *ctx);
__owur int SSL_add1_to_CA_list(SSL *ssl, const X509 *x);
__owur int SSL_CTX_add1_to_CA_list(SSL_CTX *ctx, const X509 *x);
__owur const STACK_OF(X509_NAME) *SSL_get0_peer_CA_list(const SSL *s);

void SSL_set_client_CA_list(SSL *s, STACK_OF(X509_NAME) *name_list);
void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *name_list);
__owur STACK_OF(X509_NAME) *SSL_get_client_CA_list(const SSL *s);
__owur STACK_OF(X509_NAME) *SSL_CTX_get_client_CA_list(const SSL_CTX *s);
__owur int SSL_add_client_CA(SSL *ssl, X509 *x);
__owur int SSL_CTX_add_client_CA(SSL_CTX *ctx, X509 *x);

void SSL_set_connect_state(SSL *s);
void SSL_set_accept_state(SSL *s);

__owur long SSL_get_default_timeout(const SSL *s);

# ifndef OPENSSL_NO_DEPRECATED_1_1_0
#  define SSL_library_init() OPENSSL_init_ssl(0, NULL)
# endif

__owur char *SSL_CIPHER_description(const SSL_CIPHER *, char *buf, int size);
__owur STACK_OF(X509_NAME) *SSL_dup_CA_list(const STACK_OF(X509_NAME) *sk);

__owur SSL *SSL_dup(SSL *ssl);

__owur X509 *SSL_get_certificate(const SSL *ssl);
/*
 * EVP_PKEY
 */
struct evp_pkey_st *SSL_get_privatekey(const SSL *ssl);

__owur X509 *SSL_CTX_get0_certificate(const SSL_CTX *ctx);
__owur EVP_PKEY *SSL_CTX_get0_privatekey(const SSL_CTX *ctx);

void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx, int mode);
__owur int SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx);
void SSL_set_quiet_shutdown(SSL *ssl, int mode);
__owur int SSL_get_quiet_shutdown(const SSL *ssl);
void SSL_set_shutdown(SSL *ssl, int mode);
__owur int SSL_get_shutdown(const SSL *ssl);
__owur int SSL_version(const SSL *ssl);
__owur int SSL_client_version(const SSL *s);
__owur int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx);
__owur int SSL_CTX_set_default_verify_dir(SSL_CTX *ctx);
__owur int SSL_CTX_set_default_verify_file(SSL_CTX *ctx);
__owur int SSL_CTX_set_default_verify_store(SSL_CTX *ctx);
__owur int SSL_CTX_load_verify_file(SSL_CTX *ctx, const char *CAfile);
__owur int SSL_CTX_load_verify_dir(SSL_CTX *ctx, const char *CApath);
__owur int SSL_CTX_load_verify_store(SSL_CTX *ctx, const char *CAstore);
__owur int SSL_CTX_load_verify_locations(SSL_CTX *ctx,
                                                        const char *CAfile,
                                                        const char *CApath);
# define SSL_get0_session SSL_get_session/* just peek at pointer */
__owur SSL_SESSION *SSL_get_session(const SSL *ssl);
__owur SSL_SESSION *SSL_get1_session(SSL *ssl); /* obtain a reference count */
__owur SSL_CTX *SSL_get_SSL_CTX(const SSL *ssl);
SSL_CTX *SSL_set_SSL_CTX(SSL *ssl, SSL_CTX *ctx);
void SSL_set_info_callback(SSL *ssl,
                           void (*cb) (const SSL *ssl, int type, int val));
void (*SSL_get_info_callback(const SSL *ssl)) (const SSL *ssl, int type,
                                               int val);
__owur OSSL_HANDSHAKE_STATE SSL_get_state(const SSL *ssl);

void SSL_set_verify_result(SSL *ssl, long v);
__owur long SSL_get_verify_result(const SSL *ssl);
__owur STACK_OF(X509) *SSL_get0_verified_chain(const SSL *s);

__owur size_t SSL_get_client_random(const SSL *ssl, unsigned char *out,
                                    size_t outlen);
__owur size_t SSL_get_server_random(const SSL *ssl, unsigned char *out,
                                    size_t outlen);
__owur size_t SSL_SESSION_get_master_key(const SSL_SESSION *sess,
                                         unsigned char *out, size_t outlen);
__owur int SSL_SESSION_set1_master_key(SSL_SESSION *sess,
                                       const unsigned char *in, size_t len);
uint8_t SSL_SESSION_get_max_fragment_length(const SSL_SESSION *sess);

#define SSL_get_ex_new_index(l, p, newf, dupf, freef) \
    CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL, l, p, newf, dupf, freef)
__owur int SSL_set_ex_data(SSL *ssl, int idx, void *data);
void *SSL_get_ex_data(const SSL *ssl, int idx);
#define SSL_SESSION_get_ex_new_index(l, p, newf, dupf, freef) \
    CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL_SESSION, l, p, newf, dupf, freef)
__owur int SSL_SESSION_set_ex_data(SSL_SESSION *ss, int idx, void *data);
void *SSL_SESSION_get_ex_data(const SSL_SESSION *ss, int idx);
#define SSL_CTX_get_ex_new_index(l, p, newf, dupf, freef) \
    CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL_CTX, l, p, newf, dupf, freef)
__owur int SSL_CTX_set_ex_data(SSL_CTX *ssl, int idx, void *data);
void *SSL_CTX_get_ex_data(const SSL_CTX *ssl, int idx);

__owur int SSL_get_ex_data_X509_STORE_CTX_idx(void);

# define SSL_CTX_sess_set_cache_size(ctx,t) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_SIZE,t,NULL)
# define SSL_CTX_sess_get_cache_size(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_SIZE,0,NULL)
# define SSL_CTX_set_session_cache_mode(ctx,m) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_MODE,m,NULL)
# define SSL_CTX_get_session_cache_mode(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_MODE,0,NULL)

# define SSL_CTX_get_default_read_ahead(ctx) SSL_CTX_get_read_ahead(ctx)
# define SSL_CTX_set_default_read_ahead(ctx,m) SSL_CTX_set_read_ahead(ctx,m)
# define SSL_CTX_get_read_ahead(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_GET_READ_AHEAD,0,NULL)
# define SSL_CTX_set_read_ahead(ctx,m) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_READ_AHEAD,m,NULL)
# define SSL_CTX_get_max_cert_list(ctx) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL)
# define SSL_CTX_set_max_cert_list(ctx,m) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL)
# define SSL_get_max_cert_list(ssl) \
        SSL_ctrl(ssl,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL)
# define SSL_set_max_cert_list(ssl,m) \
        SSL_ctrl(ssl,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL)

# define SSL_CTX_set_max_send_fragment(ctx,m) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL)
# define SSL_set_max_send_fragment(ssl,m) \
        SSL_ctrl(ssl,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL)
# define SSL_CTX_set_split_send_fragment(ctx,m) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SPLIT_SEND_FRAGMENT,m,NULL)
# define SSL_set_split_send_fragment(ssl,m) \
        SSL_ctrl(ssl,SSL_CTRL_SET_SPLIT_SEND_FRAGMENT,m,NULL)
# define SSL_CTX_set_max_pipelines(ctx,m) \
        SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_PIPELINES,m,NULL)
# define SSL_set_max_pipelines(ssl,m) \
        SSL_ctrl(ssl,SSL_CTRL_SET_MAX_PIPELINES,m,NULL)
# define SSL_set_retry_verify(ssl) \
        (SSL_ctrl(ssl,SSL_CTRL_SET_RETRY_VERIFY,0,NULL) > 0)

void SSL_CTX_set_default_read_buffer_len(SSL_CTX *ctx, size_t len);
void SSL_set_default_read_buffer_len(SSL *s, size_t len);

# ifndef OPENSSL_NO_DH
#  ifndef OPENSSL_NO_DEPRECATED_3_0
/* NB: the |keylength| is only applicable when is_export is true */
OSSL_DEPRECATEDIN_3_0
void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx,
                                 DH *(*dh) (SSL *ssl, int is_export,
                                            int keylength));
OSSL_DEPRECATEDIN_3_0
void SSL_set_tmp_dh_callback(SSL *ssl,
                             DH *(*dh) (SSL *ssl, int is_export,
                                        int keylength));
#  endif
# endif

__owur const COMP_METHOD *SSL_get_current_compression(const SSL *s);
__owur const COMP_METHOD *SSL_get_current_expansion(const SSL *s);
__owur const char *SSL_COMP_get_name(const COMP_METHOD *comp);
__owur const char *SSL_COMP_get0_name(const SSL_COMP *comp);
__owur int SSL_COMP_get_id(const SSL_COMP *comp);
STACK_OF(SSL_COMP) *SSL_COMP_get_compression_methods(void);
__owur STACK_OF(SSL_COMP) *SSL_COMP_set0_compression_methods(STACK_OF(SSL_COMP)
                                                             *meths);
# ifndef OPENSSL_NO_DEPRECATED_1_1_0
#  define SSL_COMP_free_compression_methods() while(0) continue
# endif
__owur int SSL_COMP_add_compression_method(int id, COMP_METHOD *cm);

const SSL_CIPHER *SSL_CIPHER_find(SSL *ssl, const unsigned char *ptr);
int SSL_CIPHER_get_cipher_nid(const SSL_CIPHER *c);
int SSL_CIPHER_get_digest_nid(const SSL_CIPHER *c);
int SSL_bytes_to_cipher_list(SSL *s, const unsigned char *bytes, size_t len,
                             int isv2format, STACK_OF(SSL_CIPHER) **sk,
                             STACK_OF(SSL_CIPHER) **scsvs);

/* TLS extensions functions */
__owur int SSL_set_session_ticket_ext(SSL *s, void *ext_data, int ext_len);

__owur int SSL_set_session_ticket_ext_cb(SSL *s,
                                         tls_session_ticket_ext_cb_fn cb,
                                         void *arg);

/* Pre-shared secret session resumption functions */
__owur int SSL_set_session_secret_cb(SSL *s,
                                     tls_session_secret_cb_fn session_secret_cb,
                                     void *arg);

void SSL_CTX_set_not_resumable_session_callback(SSL_CTX *ctx,
                                                int (*cb) (SSL *ssl,
                                                           int
                                                           is_forward_secure));

void SSL_set_not_resumable_session_callback(SSL *ssl,
                                            int (*cb) (SSL *ssl,
                                                       int is_forward_secure));

void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx,
                                         size_t (*cb) (SSL *ssl, int type,
                                                       size_t len, void *arg));
void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg);
void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx);
int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size);

int SSL_set_record_padding_callback(SSL *ssl,
                                    size_t (*cb) (SSL *ssl, int type,
                                                  size_t len, void *arg));
void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg);
void *SSL_get_record_padding_callback_arg(const SSL *ssl);
int SSL_set_block_padding(SSL *ssl, size_t block_size);

int SSL_set_num_tickets(SSL *s, size_t num_tickets);
size_t SSL_get_num_tickets(const SSL *s);
int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets);
size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx);

# ifndef OPENSSL_NO_DEPRECATED_1_1_0
#  define SSL_cache_hit(s) SSL_session_reused(s)
# endif

__owur int SSL_session_reused(const SSL *s);
__owur int SSL_is_server(const SSL *s);

__owur __owur SSL_CONF_CTX *SSL_CONF_CTX_new(void);
int SSL_CONF_CTX_finish(SSL_CONF_CTX *cctx);
void SSL_CONF_CTX_free(SSL_CONF_CTX *cctx);
unsigned int SSL_CONF_CTX_set_flags(SSL_CONF_CTX *cctx, unsigned int flags);
__owur unsigned int SSL_CONF_CTX_clear_flags(SSL_CONF_CTX *cctx,
                                             unsigned int flags);
__owur int SSL_CONF_CTX_set1_prefix(SSL_CONF_CTX *cctx, const char *pre);

void SSL_CONF_CTX_set_ssl(SSL_CONF_CTX *cctx, SSL *ssl);
void SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *cctx, SSL_CTX *ctx);

__owur int SSL_CONF_cmd(SSL_CONF_CTX *cctx, const char *cmd, const char *value);
__owur int SSL_CONF_cmd_argv(SSL_CONF_CTX *cctx, int *pargc, char ***pargv);
__owur int SSL_CONF_cmd_value_type(SSL_CONF_CTX *cctx, const char *cmd);

void SSL_add_ssl_module(void);
int SSL_config(SSL *s, const char *name);
int SSL_CTX_config(SSL_CTX *ctx, const char *name);

# ifndef OPENSSL_NO_SSL_TRACE
void SSL_trace(int write_p, int version, int content_type,
               const void *buf, size_t len, SSL *ssl, void *arg);
# endif

# ifndef OPENSSL_NO_SOCK
int DTLSv1_listen(SSL *s, BIO_ADDR *client);
# endif

# ifndef OPENSSL_NO_CT

/*
 * A callback for verifying that the received SCTs are sufficient.
 * Expected to return 1 if they are sufficient, otherwise 0.
 * May return a negative integer if an error occurs.
 * A connection should be aborted if the SCTs are deemed insufficient.
 */
typedef int (*ssl_ct_validation_cb)(const CT_POLICY_EVAL_CTX *ctx,
                                    const STACK_OF(SCT) *scts, void *arg);

/*
 * Sets a |callback| that is invoked upon receipt of ServerHelloDone to validate
 * the received SCTs.
 * If the callback returns a non-positive result, the connection is terminated.
 * Call this function before beginning a handshake.
 * If a NULL |callback| is provided, SCT validation is disabled.
 * |arg| is arbitrary userdata that will be passed to the callback whenever it
 * is invoked. Ownership of |arg| remains with the caller.
 *
 * NOTE: A side-effect of setting a CT callback is that an OCSP stapled response
 *       will be requested.
 */
int SSL_set_ct_validation_callback(SSL *s, ssl_ct_validation_cb callback,
                                   void *arg);
int SSL_CTX_set_ct_validation_callback(SSL_CTX *ctx,
                                       ssl_ct_validation_cb callback,
                                       void *arg);
#define SSL_disable_ct(s) \
        ((void) SSL_set_validation_callback((s), NULL, NULL))
#define SSL_CTX_disable_ct(ctx) \
        ((void) SSL_CTX_set_validation_callback((ctx), NULL, NULL))

/*
 * The validation type enumerates the available behaviours of the built-in SSL
 * CT validation callback selected via SSL_enable_ct() and SSL_CTX_enable_ct().
 * The underlying callback is a static function in libssl.
 */
enum {
    SSL_CT_VALIDATION_PERMISSIVE = 0,
    SSL_CT_VALIDATION_STRICT
};

/*
 * Enable CT by setting up a callback that implements one of the built-in
 * validation variants.  The SSL_CT_VALIDATION_PERMISSIVE variant always
 * continues the handshake, the application can make appropriate decisions at
 * handshake completion.  The SSL_CT_VALIDATION_STRICT variant requires at
 * least one valid SCT, or else handshake termination will be requested.  The
 * handshake may continue anyway if SSL_VERIFY_NONE is in effect.
 */
int SSL_enable_ct(SSL *s, int validation_mode);
int SSL_CTX_enable_ct(SSL_CTX *ctx, int validation_mode);

/*
 * Report whether a non-NULL callback is enabled.
 */
int SSL_ct_is_enabled(const SSL *s);
int SSL_CTX_ct_is_enabled(const SSL_CTX *ctx);

/* Gets the SCTs received from a connection */
const STACK_OF(SCT) *SSL_get0_peer_scts(SSL *s);

/*
 * Loads the CT log list from the default location.
 * If a CTLOG_STORE has previously been set using SSL_CTX_set_ctlog_store,
 * the log information loaded from this file will be appended to the
 * CTLOG_STORE.
 * Returns 1 on success, 0 otherwise.
 */
int SSL_CTX_set_default_ctlog_list_file(SSL_CTX *ctx);

/*
 * Loads the CT log list from the specified file path.
 * If a CTLOG_STORE has previously been set using SSL_CTX_set_ctlog_store,
 * the log information loaded from this file will be appended to the
 * CTLOG_STORE.
 * Returns 1 on success, 0 otherwise.
 */
int SSL_CTX_set_ctlog_list_file(SSL_CTX *ctx, const char *path);

/*
 * Sets the CT log list used by all SSL connections created from this SSL_CTX.
 * Ownership of the CTLOG_STORE is transferred to the SSL_CTX.
 */
void SSL_CTX_set0_ctlog_store(SSL_CTX *ctx, CTLOG_STORE *logs);

/*
 * Gets the CT log list used by all SSL connections created from this SSL_CTX.
 * This will be NULL unless one of the following functions has been called:
 * - SSL_CTX_set_default_ctlog_list_file
 * - SSL_CTX_set_ctlog_list_file
 * - SSL_CTX_set_ctlog_store
 */
const CTLOG_STORE *SSL_CTX_get0_ctlog_store(const SSL_CTX *ctx);

# endif /* OPENSSL_NO_CT */

/* What the "other" parameter contains in security callback */
/* Mask for type */
# define SSL_SECOP_OTHER_TYPE    0xffff0000
# define SSL_SECOP_OTHER_NONE    0
# define SSL_SECOP_OTHER_CIPHER  (1 << 16)
# define SSL_SECOP_OTHER_CURVE   (2 << 16)
# define SSL_SECOP_OTHER_DH      (3 << 16)
# define SSL_SECOP_OTHER_PKEY    (4 << 16)
# define SSL_SECOP_OTHER_SIGALG  (5 << 16)
# define SSL_SECOP_OTHER_CERT    (6 << 16)

/* Indicated operation refers to peer key or certificate */
# define SSL_SECOP_PEER          0x1000

/* Values for "op" parameter in security callback */

/* Called to filter ciphers */
/* Ciphers client supports */
# define SSL_SECOP_CIPHER_SUPPORTED      (1 | SSL_SECOP_OTHER_CIPHER)
/* Cipher shared by client/server */
# define SSL_SECOP_CIPHER_SHARED         (2 | SSL_SECOP_OTHER_CIPHER)
/* Sanity check of cipher server selects */
# define SSL_SECOP_CIPHER_CHECK          (3 | SSL_SECOP_OTHER_CIPHER)
/* Curves supported by client */
# define SSL_SECOP_CURVE_SUPPORTED       (4 | SSL_SECOP_OTHER_CURVE)
/* Curves shared by client/server */
# define SSL_SECOP_CURVE_SHARED          (5 | SSL_SECOP_OTHER_CURVE)
/* Sanity check of curve server selects */
# define SSL_SECOP_CURVE_CHECK           (6 | SSL_SECOP_OTHER_CURVE)
/* Temporary DH key */
# define SSL_SECOP_TMP_DH                (7 | SSL_SECOP_OTHER_PKEY)
/* SSL/TLS version */
# define SSL_SECOP_VERSION               (9 | SSL_SECOP_OTHER_NONE)
/* Session tickets */
# define SSL_SECOP_TICKET                (10 | SSL_SECOP_OTHER_NONE)
/* Supported signature algorithms sent to peer */
# define SSL_SECOP_SIGALG_SUPPORTED      (11 | SSL_SECOP_OTHER_SIGALG)
/* Shared signature algorithm */
# define SSL_SECOP_SIGALG_SHARED         (12 | SSL_SECOP_OTHER_SIGALG)
/* Sanity check signature algorithm allowed */
# define SSL_SECOP_SIGALG_CHECK          (13 | SSL_SECOP_OTHER_SIGALG)
/* Used to get mask of supported public key signature algorithms */
# define SSL_SECOP_SIGALG_MASK           (14 | SSL_SECOP_OTHER_SIGALG)
/* Use to see if compression is allowed */
# define SSL_SECOP_COMPRESSION           (15 | SSL_SECOP_OTHER_NONE)
/* EE key in certificate */
# define SSL_SECOP_EE_KEY                (16 | SSL_SECOP_OTHER_CERT)
/* CA key in certificate */
# define SSL_SECOP_CA_KEY                (17 | SSL_SECOP_OTHER_CERT)
/* CA digest algorithm in certificate */
# define SSL_SECOP_CA_MD                 (18 | SSL_SECOP_OTHER_CERT)
/* Peer EE key in certificate */
# define SSL_SECOP_PEER_EE_KEY           (SSL_SECOP_EE_KEY | SSL_SECOP_PEER)
/* Peer CA key in certificate */
# define SSL_SECOP_PEER_CA_KEY           (SSL_SECOP_CA_KEY | SSL_SECOP_PEER)
/* Peer CA digest algorithm in certificate */
# define SSL_SECOP_PEER_CA_MD            (SSL_SECOP_CA_MD | SSL_SECOP_PEER)

void SSL_set_security_level(SSL *s, int level);
__owur int SSL_get_security_level(const SSL *s);
void SSL_set_security_callback(SSL *s,
                               int (*cb) (const SSL *s, const SSL_CTX *ctx,
                                          int op, int bits, int nid,
                                          void *other, void *ex));
int (*SSL_get_security_callback(const SSL *s)) (const SSL *s,
                                                const SSL_CTX *ctx, int op,
                                                int bits, int nid, void *other,
                                                void *ex);
void SSL_set0_security_ex_data(SSL *s, void *ex);
__owur void *SSL_get0_security_ex_data(const SSL *s);

void SSL_CTX_set_security_level(SSL_CTX *ctx, int level);
__owur int SSL_CTX_get_security_level(const SSL_CTX *ctx);
void SSL_CTX_set_security_callback(SSL_CTX *ctx,
                                   int (*cb) (const SSL *s, const SSL_CTX *ctx,
                                              int op, int bits, int nid,
                                              void *other, void *ex));
int (*SSL_CTX_get_security_callback(const SSL_CTX *ctx)) (const SSL *s,
                                                          const SSL_CTX *ctx,
                                                          int op, int bits,
                                                          int nid,
                                                          void *other,
                                                          void *ex);
void SSL_CTX_set0_security_ex_data(SSL_CTX *ctx, void *ex);
__owur void *SSL_CTX_get0_security_ex_data(const SSL_CTX *ctx);

/* OPENSSL_INIT flag 0x010000 reserved for internal use */
# define OPENSSL_INIT_NO_LOAD_SSL_STRINGS    0x00100000L
# define OPENSSL_INIT_LOAD_SSL_STRINGS       0x00200000L

# define OPENSSL_INIT_SSL_DEFAULT \
        (OPENSSL_INIT_LOAD_SSL_STRINGS | OPENSSL_INIT_LOAD_CRYPTO_STRINGS)

int OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);

# ifndef OPENSSL_NO_UNIT_TEST
__owur const struct openssl_ssl_test_functions *SSL_test_functions(void);
# endif

__owur int SSL_free_buffers(SSL *ssl);
__owur int SSL_alloc_buffers(SSL *ssl);

/* Status codes passed to the decrypt session ticket callback. Some of these
 * are for internal use only and are never passed to the callback. */
typedef int SSL_TICKET_STATUS;

/* Support for ticket appdata */
/* fatal error, malloc failure */
# define SSL_TICKET_FATAL_ERR_MALLOC 0
/* fatal error, either from parsing or decrypting the ticket */
# define SSL_TICKET_FATAL_ERR_OTHER  1
/* No ticket present */
# define SSL_TICKET_NONE             2
/* Empty ticket present */
# define SSL_TICKET_EMPTY            3
/* the ticket couldn't be decrypted */
# define SSL_TICKET_NO_DECRYPT       4
/* a ticket was successfully decrypted */
# define SSL_TICKET_SUCCESS          5
/* same as above but the ticket needs to be renewed */
# define SSL_TICKET_SUCCESS_RENEW    6

/* Return codes for the decrypt session ticket callback */
typedef int SSL_TICKET_RETURN;

/* An error occurred */
#define SSL_TICKET_RETURN_ABORT             0
/* Do not use the ticket, do not send a renewed ticket to the client */
#define SSL_TICKET_RETURN_IGNORE            1
/* Do not use the ticket, send a renewed ticket to the client */
#define SSL_TICKET_RETURN_IGNORE_RENEW      2
/* Use the ticket, do not send a renewed ticket to the client */
#define SSL_TICKET_RETURN_USE               3
/* Use the ticket, send a renewed ticket to the client */
#define SSL_TICKET_RETURN_USE_RENEW         4

typedef int (*SSL_CTX_generate_session_ticket_fn)(SSL *s, void *arg);
typedef SSL_TICKET_RETURN (*SSL_CTX_decrypt_session_ticket_fn)(SSL *s, SSL_SESSION *ss,
                                                               const unsigned char *keyname,
                                                               size_t keyname_length,
                                                               SSL_TICKET_STATUS status,
                                                               void *arg);
int SSL_CTX_set_session_ticket_cb(SSL_CTX *ctx,
                                  SSL_CTX_generate_session_ticket_fn gen_cb,
                                  SSL_CTX_decrypt_session_ticket_fn dec_cb,
                                  void *arg);
int SSL_SESSION_set1_ticket_appdata(SSL_SESSION *ss, const void *data, size_t len);
int SSL_SESSION_get0_ticket_appdata(SSL_SESSION *ss, void **data, size_t *len);

typedef unsigned int (*DTLS_timer_cb)(SSL *s, unsigned int timer_us);

void DTLS_set_timer_cb(SSL *s, DTLS_timer_cb cb);


typedef int (*SSL_allow_early_data_cb_fn)(SSL *s, void *arg);
void SSL_CTX_set_allow_early_data_cb(SSL_CTX *ctx,
                                     SSL_allow_early_data_cb_fn cb,
                                     void *arg);
void SSL_set_allow_early_data_cb(SSL *s,
                                 SSL_allow_early_data_cb_fn cb,
                                 void *arg);

/* store the default cipher strings inside the library */
const char *OSSL_default_cipher_list(void);
const char *OSSL_default_ciphersuites(void);

#  ifndef OPENSSL_NO_QUIC
/*
 * QUIC integration - The QUIC interface matches BoringSSL
 *
 * ssl_encryption_level_t represents a specific QUIC encryption level used to
 * transmit handshake messages. BoringSSL has this as an 'enum'.
 */
#include <openssl/quic.h>

/* Used by Chromium/QUIC - moved from evp.h to avoid breaking FIPS checksums */
# define X25519_PRIVATE_KEY_LEN          32
# define X25519_PUBLIC_VALUE_LEN         32

/* moved from types.h to avoid breaking FIPS checksums */
typedef struct ssl_quic_method_st SSL_QUIC_METHOD;

typedef enum ssl_encryption_level_t {
    ssl_encryption_initial = 0,
    ssl_encryption_early_data,
    ssl_encryption_handshake,
    ssl_encryption_application
} OSSL_ENCRYPTION_LEVEL;

struct ssl_quic_method_st {
    int (*set_encryption_secrets)(SSL *ssl, OSSL_ENCRYPTION_LEVEL level,
                                  const uint8_t *read_secret,
                                  const uint8_t *write_secret, size_t secret_len);
    int (*add_handshake_data)(SSL *ssl, OSSL_ENCRYPTION_LEVEL level,
                              const uint8_t *data, size_t len);
    int (*flush_flight)(SSL *ssl);
    int (*send_alert)(SSL *ssl, enum ssl_encryption_level_t level, uint8_t alert);
};

__owur int SSL_CTX_set_quic_method(SSL_CTX *ctx, const SSL_QUIC_METHOD *quic_method);
__owur int SSL_set_quic_method(SSL *ssl, const SSL_QUIC_METHOD *quic_method);
__owur int SSL_set_quic_transport_params(SSL *ssl,
                                         const uint8_t *params,
                                         size_t params_len);
void SSL_get_peer_quic_transport_params(const SSL *ssl,
                                        const uint8_t **out_params,
                                        size_t *out_params_len);
__owur size_t SSL_quic_max_handshake_flight_len(const SSL *ssl, OSSL_ENCRYPTION_LEVEL level);
__owur OSSL_ENCRYPTION_LEVEL SSL_quic_read_level(const SSL *ssl);
__owur OSSL_ENCRYPTION_LEVEL SSL_quic_write_level(const SSL *ssl);
__owur int SSL_provide_quic_data(SSL *ssl, OSSL_ENCRYPTION_LEVEL level,
                                 const uint8_t *data, size_t len);
__owur int SSL_process_quic_post_handshake(SSL *ssl);

__owur int SSL_is_quic(SSL *ssl);

/* BoringSSL API */
void SSL_set_quic_use_legacy_codepoint(SSL *ssl, int use_legacy);

/*
 * Set an explicit value that you want to use
 * If 0 (default) the server will use the highest extenstion the client sent
 * If 0 (default) the client will send both extensions
 */
void SSL_set_quic_transport_version(SSL *ssl, int version);
__owur int SSL_get_quic_transport_version(const SSL *ssl);
/* Returns the negotiated version, or -1 on error */
__owur int SSL_get_peer_quic_transport_version(const SSL *ssl);

int SSL_CIPHER_get_prf_nid(const SSL_CIPHER *c);

void SSL_set_quic_early_data_enabled(SSL *ssl, int enabled);

#  endif

# ifdef  __cplusplus
}
# endif
#endif
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ELF          >                    `         @     @ 0 /          GNU 6qB5ql|̽A        Linux                Linux   6.1.0-37-amd64      HW0ffG0P0ffFG0PffFG0PffFHW0(ffF    f         HHHHH
1H   HM    ff.         AWAVAUATAUSHH D$    S0DfAfAffA9AAf9AE    E    H D[]A\A]A^A_        AUATIUHSL	  Ix  H HtL       AD$L   HU0ffy(  tu      HU0ffx    I@L    HM0HAD$BQfAD$DQfAD$@fAD$L   L    1[]A\A]      HH                     AWAVAUATUSHL	  A  t1H[]A\A]A^A_    I@HAL    HK0H$Ήffy3          HK0Ήffx܅   VfV~ŃE   f#fEff?    f?f
 QfS  EE'      AAAtft+Ƨ         C0Pff% f= uEtH4$L    1ffff% f=     f?@jfH4$L    HH        H4$L    DH        D      HGp1H Hx)f         SHGpH   H HxH[HBH       HM    D      H  1HtH8Ht
    1H        G|t        D      AWAVLAUA<   ATLg(USH{p;v:L   A    DH)Ɖ    IwHcH    HL    H    L    HHu[]A\A]A^A_            AWAVAUIATUSHeH%(   HD$1HG(H$H<$    HH  SpLsHD$    ;   A`      H   AE tA    	      E}D$EA*  D$EA*  D$
EfD$    DHD9AO)A    IcHuH    HLHT$    H   AtHL    E t"At
A`t
H    SpA<   0HD$eH+%(   uH[]A\A]A^A_        fD      ATLHUHo(SLH    H    H    HHu[]A\    ff.          H    ff.     @     U  HSHH    H    uH   Hp  HJp[]    f    USHopHHEHP0fH        HEHP0fH    H    HEHP0fH    H    HEHP0fH    H    HEHP0fH    H    HEHP0
fH    H    HEHP0fH    H    HEHP0fH    H    HEHP0fH    H    HEHP0fH    H    HEHP0fH    H    HEHP0fH    H    HEHP0fH    H    HEHP0fH    H    HEHP0 fH    H    HEHP0"fH    H    HEHP0$fH    H    HEHP0(fH    H    HEHP0*fH    H    HEHP0,fH    H    HEHP00fH    H    HEHP02fH    H    HEHP04fH    H    HEHP0:fH    H    HEHP0<fH    H    1[]         H5    H        ff.         AWI     AVI"    AULo ATLg0UHSgH] H    tHHCHBHL;LLs    HtXCCtf H Ҿ@          H    L    HE I9u[L]A\A]A^A_    []A\A]A^A_            H5    H               AUAATAUHSHO0΃ffy1P        HM0΃ffy
f    VDf1fffy/P        E0Hffy
f    f@u
1[]A\A]    fE1AD1HH        f.         AWAVAUAպ   ATUSL	     H=        H   XM$H  II$8  DhL    I$8  H9u
KH H9tC9XuDhL    L    H5        I$      1[]A\A]A^A_    I$@  HLH    tM$@  I/I_L;렸D      AVAUATIUSH	  f    H    AH        I$  H      LutL    HcÍSfDE   1M1   
D9tHcfM   u[L]A\A]A^    L    I$  H    H      []A\A]A^        i     AVAUIATIUSHc؍Bw#tIT$0AD] 6[1]A\A]A^    G0   Dp6    tHLDfHHuLHDfofD      @uvATIUHSHO0ӍQ:fQ<fS      Md$0   HcA>    uHHDfm[1]A\    DffE HHu    D      U   SHGpHHhH HHxGHHߺ       1[]    ff.      USHt:HFX   H9t+HH    tHHCHBHHH[  H{TCTt~[]    CXtH[]    [   ]    f    AWL@AVAUATUSHLL      H  IL9u#      [L]LA\A]A^A_    Lu H}T   ETtQP	y
       U(M@H    DEBHs    H   HLIM9{           fD      AVAUIATIUSHc؍Bw tIU06A\[1]A\A]A^    G0   Dp6    tHLDffHHuLHDfmf         AWAVAUATIUM|$DHSHLwt$$   LH$L    LAŅ    AF0   X6    tvHu<HffHH9uMt:],fw/ 
      HH$H0H    Lu-L    DH[]A\A]A^A_    H   fm    f         AVAAUAATAUHSHO0ff              HM0Ήffx܅   VDfDfD N  V0?f"@B Dft$tuƧ      HM0΍Q0fttUVf    Q4   f[]A\A]A^    xf   HH        fH    H         AUIATU
   SH    IU0H    H0fu)E1    IU0у0fuL$$H    H9xf    Q"fƍQ4   fH[]A\A]             ATUSHH  eH%(   HD$1D$ H   HH} HtxA    HtkEuH} 1HT$            H[C0P@F     C0
   PBDu     HS0E   @HD$eH+%(   u
H[]A\                 ATUSHH  eH%(   HD$1D$ Ht3HH} Ht'    HtH} 1HT$            HD$eH+%(   u
H[]A\        ff.     f    AVAUATUHSHL	  A$   A   HU0ffy1           HU0ffxޅ   1QffQ0AtfuNL5    H    H}fu'E1    E0P0fuL,$H    H9xf        Q4   fH    HA       6f   HH        H    H        M0JfD      AWAVAUATUHSHL	  4$A      H=    AIMĺ`          HH  @T   @(   $fDsBM  Lk0Lc8Mg@fC@L    II  I9   I  LHH    tI  L3HkH] A  LLE1    L    HH{TSTt)   HL    HD[]A\A]A^A_    CXtH    CP   LHI  HH$    H$tI  L3HKHA  LL    HHLAŅu
    HE    CX   HHH9t)H    tHHCHBHHH[A  A       Af    AWAVAUIATUHSH`eH%(   HD$X1Ld$H|$ HD$    HD$P    LH)<HL	  Ix  H HtL    W  A  H  A  9  A  *  H|$$L1HD$    HD$P    HH)<HI   HHD$*HBL$*HD$2HBHD$:ȃfAEpW  D$   D$   AU2AX  f  t$AU0I~tfL$(H<$)T$'fD$HffD$V    A   H<$1HƉM9   LcO<FfA   uݸL$fA       L$xdA    I^DL$H    Aw|HL$   H    H    H    I  fAǇ   VHT$XeH+%(     H`[]A\A]A^A_    T$"    IFHh  f D$   D$   f JD$   D$   L$BRfT$FkE0   LD$P6$    $LD$   L   foAUpD$HL$Hct$I   )9HA    EH	  H        H  H
    L$H      BT@|H      H    H  H
    H   H9H   ~LHL$    L$
HL$XA$fII9u    <                 SHHH    HG(H    H   H$    H    H	  H9xgHC8Ht9HD$    H    H)H	  xH    HH  HCH[    8wH5    HSP        뽋puhtdwiE11ɺ      HH    H    ;f         G(   ATUS0HH(tNi   H    G0   DHHHCE11D8  H    H[]A\    H    K,   у        Q~޹           AWAVAUATUSHPH	  H|$t$eH%(   HD$H1HD$     eH%      HD$(HD$8    HD$@    HD$0        AH   8  H D  `      HMH=        IH+  @T   @(    D$fEfBfAF@Ht	E fAFDM~H    H    L    LHt$        eH%    BLc@H  L    HD$H  H9  H  HLHHL$    tHL$L  I.INL1  Ht$L    1AF(D$'  eH%    H   *  H 1  1eH%    BLHt$     L    IIL9    LL        AF(  Mt
AFFfAE AnHf    L    AFX   IIL9t(L    tIIFHBHM6Mv  I~TAFTto  LL    HD$HeH+%(   *  HP[]A\A]A^A_      L$    L$D$t
4     AFXtL    AFP   HLH  HHL$    HL$tL  I.INL1  Ht$L    eH%    H   uUH D$=H|$L#          D$    Ht$HN0Q0fōQ2fEF(LH    PPAFBPEN@T$     H@    ff.     f    ATAUSG0HH	  P2   fHx  E    ǅ      H HtH        At/HK01q2fQ4fAt/   f[]A\    E111Ҿ   Ht    [H]A\nff.          UHSHH H  eH%(   HD$1H    HT$eH+%(   u
H]        f.         AWAVAUATUSHHH  Ht1HH	  ǀ     H    H  H  H	  H  Lc(H$HC(H(L9~  H{    H      H      H      H      Hx      H       H  HtH      H0  HtH(      HH      H(      Hh      H   Ht    HX  HtH        H    H  HtHHm    Hu11H  H    11H    L`  H} Ht    H(I9uL  Mt.AT$t1HcŃHJ|     A;l$rL    L  Mt.AD$t1HcŃHJ|     A;l$rL    L8  L8  I     I"    I/M9u8HL    tIIGHBHM7LMoI    HE I9uH  L  H/L9t    HHm I9uH      H      H      H{    H<$H[]A\A]A^A_    HՋP  tHx   1    HU HI9uWH[]A\A]A^A_    f         ATUSL	  A\$u[]A\    E111Ҿ   HÅ    E111Ҿ   HÅ    A$d  *	  tҾ  H        L    []A\    D      AVE111AUATA   USL	  HE  ~    Aǆ      ŸIǆ     HK0Q4f︟Q2fEu&EtH  H   u []A\A]A^    Ht        []A\A]A^    fD      AWAVAUIATAUSHH	  H$  eH%(   HD$1D$        Hx  H HtH    B    4  L{PfDd$LT
 )ʍDfD$    Aƅt*HD$eH+%(      HD[]A\A]A^A_    HDEH    DLAƅt)H    EDLH        L    AE0   Dp6    t]D$DfD$fH4$LHA    EuE11LD!  nLA    E    Ht$   DfoA         AWE1AVAUATAUSHH(H	  eH%(   HD$ 1H          L  HK01q2fQ4f2Q(fff=2  Euw  umEx<	  Lm|<	  L   AIfE}M9  uxHTfAE fuҁ}x@  ~S@  H3fAE ft;       fH      H
  tOHK01Q2fQ4f         HT$ eH+%(     H([]A\A]A^A_    H      H	  uH       H	      ǅ      HK01Q2fQ4fC0P2   fE<  D  E  1    Hfl$H	      D  E}  `  u	    tH     H         	    H        A      HT$H߾        p  D$Jf   
    A      H        t  3  H    AŅ    x    H    AŅ2      H      D  Ez  f     f   uA   fD       H        H    H          = !  =         B  H        Dp  H    d    H        `    H        \        6  1H     ?      H=    HD$H  9   HD$    IH       HLt$Ll$A6L   HuLA?   u,n   2fu
f@  B  HcHcAOA4WfuIM9u1HHH        L        A uAuA uA   f   fD  A   fD  A      HT$H߾F    uD$    =   <  H  Hn  H  Hp    1gH   Ҿ2  H        1Hm5E1HD$    fDt$o  A      HHT$           HT$1H    Le(H(I9qI|$\     1\  H0      M$$I9u>H     H        f     u   f  f   u   f  V    H            H            H             H           H     H    H       HDD    _    l  C  H               H           1,    f2  H                ff.         ATUSL	  E$  Et   []A\    HtA$  1[]A\    HUuA$  utuAT$~AD$   H[]A\ff.         USH  H    []    ff.     f    USH	        []    ff.     f    AWAVAUATAUSHH L	  H$A  eH%(   HD$1D$        Ix  EH HtL    `  A  Q  M}PL    At*HD$eH+%(   5  H D[]A\A]A^A_    E11ɾ!   H    IDL    HD$t*L    L    DD$A    AoC0   P6T$    T$uhH|$   fmL$ftdDL	Et	E9    H4$DHDL$L$    L    D$DL$EfffL$ffD$L    L    HA        ATUSHeH%(   HD$1H	  H$          IA   H   H        ff.     f    SHA         HHeH%(   HD$1HH$    oxkǃ      $urt$D$	D$	1   `    tL     T  H       HD$eH+%(   u4H[    =K  uǃ     Ӌ  u w                AWAVAUATUHSH8L	  I]LH    H}0 d  H    Ix  H HtL    7  I]HK0q(ff=2tA  G  HM0E1΍Q0ff:  Q2ff!V     E  E   E  EuyEUEtpf[  L  Ç  @         HM0Q0AAof   H        H8   []A\A]A^A_    HM0΍Q0fèuftEMEtft      u0V4fL	  IF@HH$    I  HD$HI  H9&  M  IGTHD$   AGT:  P	  L    tIIGHBHM?MA  AGL    H<$    M  E0P
ffAGFE0PfffAOHE0P4   fAG(  AG(    IG0HtIw8H    H<$    AGX   HD$II9t)L    tIIGHBHM?MA  AGT     L<$Ht$L    L    I  H9D$   I  BP   Ht|HBTIǸ   BT2  HHT$	  H<$    HT$HHHT$kH<$D$    D$HT$umBT     H<$    AGX(L    H<$    E0P4   fH    H    HBX   H9tHHT$    HT$tH
HBHAHHHRA  LI1ɺ      AG(       $DzXE8H    H<$            H    {H|$       6Q4fHD$     H    H    H	  H9        HS0(ffiH5    I          LL	  "   H9IFtHǉt$H$    A   t$E1AAMA9  IcAWIFf;q|u   f    f    1f   MI   A   uH  H   T  H<$    E0P4   fÇE0P2fI  I       HD$(    L	  H
    IP  HH)H  y	H   HM01    Q4 fZ        L       H<$    H|$       A  KV4fH    H    01EH8[]A\A]A^A_    H|$          L    )    HM0Q0fAǍQ2f=    A    AX  A   uHM0   HT$   A       HM0C0P(f2  HH        6f2  HH        H    H    H    A} H    I    HEA   H    LDA   HEE0IЍP2fVHH        u0AXE0P"fH    H    H    E1                AWAVAUATUSHHHwCH$H0  T$Sf3A3	    LHIkL    M$  AMu   MmM   fE9u uL    {    D{, 
  1A4/fD|$    IH   H    HsHcH    H$HtDL    T$HH    ID$t$LIFI   I+   fA   IUIEH[]A\A]A^A_    L    It$H    H[]A\A]A^A_        ff.         LT$HArUHAWAVAUATARSHH   LeH%(   HE1HpHHHGH HtHH    t  ǅT   Lm
T)  AF0P0fAf  
    AĀ  A  AtH}L1LH)L   Hǅh    <IE     HE    HHhDIX  HHAG0P4   f8ǅ`   EfX-        }  Hh    `    TIV02fHEeH+%(     He[AZA\A]A^A_]Ib     
  <   1    IH_<   H    HUH   LHHUHPHUHPHUHPHUHP HUHP(HUHP0UĉP8    H   H        }HhHH1LH}L1LH)1LHǅh    <IE     HE    HHhHH8u&    DMEC  Hh    IW0   4fzHǅh    Hp0H`HXXVfHAHH@    H`APAǅ  H`   H@0HXXDx6      DffhffjD| A    f  Aw 
  1    HXH  HX       hE~)HXD    H`DH?v  H@    HXH{P    H{(Hk0 _  H`HP0   4fH}L1LH)IE         <HE    HLgfT  H`HHX    `L<<  AG0   P6`    `9  LHuffHH9uDMEfA	X      fA  AA<E1f`1 
  D@    D@H'  Lx`HDPH@    `IU LHxHIT
HHTH)H)HDPL@fE   HXL`    L`H   L    H{pHkx    IW0   4f
L   fmHh   Dfmh(A<   <   E1fD`A<p<<   f`        rLAL@    <LHsHX`    `L@    HhHH   LEAA   1Hp   LD`rEHǅx    fvfDp    H@    jhH    H`    HX    LH        I`  UHXD`    D`LH    A    LL    I`  HX    <LH        <   I`  H@    PH        AH@6H@    hDjH    PH`    HX    rH@    H`H        NAG0P fH    `    `f~H@莿I`  H@uI`          H        AEDADT$HH    DL$D\$D$DD$L$PT$    fXDT$tD\$Et    fE9tBD$D$
    L$T$HDT$DL$DD$H        DT$    fEtE      HH    )        HU0fH    H        LHH            H        HK0    H        HK0     	  LH                U1SH;ksHcHH|    H[]        AUATAA	USAuqHHO0IQ:fQ<fS      ع   Mm0   A>Hc    t1H9t!fDM DfHHHDfoA[D]A\A]        SHH?   HG8    tH        Ƨ      H;   HG8H    ƅt
H    [    [    KSH    H         HH            HH        HH            []HA\H    A]A^    [H]A\H    A]A^        ATE1ɉUSHHLgH    eH%(   HD$1DL$L$     Hx  HH@       8 ~ LH Hx  HH@       8 ~ LHL$       8 ~ LH   8 ~ LHL$    D$9$uH        1HL$HH           HT$eH+%(   t    H[]A\    HsH        1      I    LH        H$H;    1HA    T$LH        AuI$      ͉AHH        HM0    LH            LH        T$H    H        T$H} 1ʀ    t2H    H            H    H            
   XA     HuH} AԾ       tH    H            
   XA     HuT$H} 1    tH    H            
   XA     Hu    t$H        D$H} 1ȀЈD$    ƅt$H            H            }MIIXA     IsD$} D$tD$T$H} 1    ƅtH            }MIIXA     Is}     H  4    H    11H    A$     L)Hi  HH    HU0   4f1Z[]A\A]A^    H    H        A$  AǄ$     u7   Lu-I$x     H@   L    A$     눾   L^I$x  H@uǻ      HH    A        HH        Hh  H          HH            HH            DHH            HH        H    HHHC[]A\    K,u[HH    ]A\    K,HH        1Dc,C0H    H    T$EFFH    Ht$    AnH    Ht$H            Ht$H            AN(DD$LH    Ht$    L    u)M6Mv      Ht$H            IIFHBHH    H            HH    []A\    H    H        H	  Ht7Ht2~ ~,H  H    H      H    H	  H1   HH~  f$     1H    1    HH            HH            A$d  HH            HH               HH        ADDLH        A    L        HH    A        HH            HH        E1    HH            HH            HH        ǅ          	  HH            HH            HH            p  HH            t  HH        A        x  HH        A        H    H              HH            `  HH            d  HH            l  HH              DHH            HH            HH        Ex@  fA}         E1    HH              HH              HH              HH            HH            HH            \  HH            HH            H    H        Hu)   Hǀ       Hǀ    1    H	  Ht=h   H    1H߅@    ~H    H     H߾          H        AWAVAUATUSAP   H_tHH             IIǇ     tHK01Q2fQ4f'1H    H    tHH            H    tHH        q  EnHK0DQA1fQDf"  AH    A   E;FsIIcHDD$HLHMUuDD$tMUHH        rAHK0DQf1Qfｈ  HS0ffyt      u-f   HH        HH        Df"   f￸G    C0P4   f1H    tHH        G    1HA$         tHH        1A$  Z[]A\A]A^A_        AWH    AVAUATIH    US       
  H=        IH   AD$t  =     AT$tt

  AD$t1H    L    Åt=     J  H        9     H    M$       HvH        uH        H    H        HuH    H                >      HHtH
  1E1E1HE1H    H    H  H   HC(H	  Hk
  H{PH	  HC(HC0    H    |  D    H        H        H        H        H        H        H        H        H        H        DKtLS8LS@LSHHǃx      H        H        H        H            E1۾!   H    D[    HH!BJH   H    H5    ƃ    FvtH                   `  H  fǃX   H    L(  ǃL     H ǃ\  H	H  Hp      H  x  H+	  *	  H  H   H   H`  H  HH   H   H(  H8  H8  H  H@  1H  H  Hx  H  H  H  ǃ  d   ǃh     ǃ  fǃ  ǃ     Hǃ      Hǃ      Hǃ0      H  Hǃ          H    H      H    H   H        1H(  H@  H8  H    H(  H0      Hh  1H  Hh  H    Hp  H  H  Hx  H    H      HSHH   H    H  11E1H        E111H    L    H    LH  H8      1HHH  H  H      fǅ(  !Hǅ0          H    H    Lp  y    H    A    Ey H    H        H    @HH    H        H    I$  L	  LH    M  Me     Å  L    Å  I^LH    HHAD$0l  ID$8H HE0    1A  H	  L  I$HJ8HAHH+HA         Hfx   HH        I<$   1AD$       u G    I<$K   1    tHH        <G    H  rE0P@Ƨ      E0P@KƧ         H    Å   H	  I    1Ҿ   H    H    HE H   `  ȃwH}    H}     H    HX  I1H    H        H    IL    I$  Ht1H    H	  ǀ     L    H        []A\A]A^A_        AWAVAUATUS   HotHH          Hx  HHx tHx uHH          Ǉ     IH       AŅtHH        ?  u>   HAǅtx   Ht\HH        =        HDYt  HH        E1  AA   AE;nsCMcHIMIL$AT$At$jtAL$AT$HH        _AHx  HH@    1H    tHH        G    11  HM0Q2fQ4fH    tHH           H    tHH        1҉  []A\A]A^A_       HtH[]H    H            
~H[H    ]    HH    H        HK01Q2fQ4fHx  ǅ     Hx t)l      Hx  HH@    l         H    1H    1H     t1HH        H  HyHH        H       HH        H  H    HH    []    DEHH    DL$    DL$    DHH    D$    D$AuH    D$E    HH        A    EHH    $    L    D$    LH        HD$eH+%(   u:H[]A\    D$$HLH    PDL$DD$    ^    HsH          ǃ         HsH                  SHHHH        HH    HHH  H   t71fu H        HH[H      HHu[        AWAVAUIH    ATUHSHNV6    Ed  x
  H    IH  HE E1E1I$EAD$D;}   IcHSHHHHD H$HIH A{   /  A   "        H$HIDH  C   H[H9r   1HH<$HD$    HT$H<$H    H   A@U t<wIt&t0tu5IuH        LL&LL2IuH        JuFE uI  HtM  <uI  HtkM  LUH[]A\A]A^A_    HH        HM0Q2f    HH            ADHD$I   H        D$    DH    HL$T$    T$HL$    HH            DH    HL$T$    HL$T$       AW(HH            HH        H    Hu]E11ɺ      H    H    H    HM0    Q4fQ0    HH        E0P4 @  f    1H   HT$0H    H9yHH        L   L    H<$        C>   Ct>|H    I    IuH        H<$        HH    []A\A]A^A_    It$HH    []A\A]A^A_    LH    L`    I`  H`        XI    uH    I    I    H    VLIDMDPMD@H    ID    uI    ZI    YMDMDf   I    H    M}EARASQRH        LEHMH    H HUHu        EMLH    UPDMDE    AZ    fuH    I    IrfI    LMMEYH                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             7%s: detected fid change (try=%d, reg=%04x): %04x %04x %04x
   4%s: Uhhuh.. could not read good fid from reg %04x (%04x %04x %04x)
   7%s: driver bug - re-issuing command @%p
      7%s: hfa384x_cmd_issue: cmd reg was busy for %d usec
  7%s: hfa384x_cmd_issue - timeout - reg=0x%04x
 %s: prism2_enable_aux_port - timeout - reg=0x%04x
      prism2_enable_aux_port: was not disabled!?
     prism2_enable_aux_port: was not enabled!?
      prism2_enable_aux_port(%d) timed out
   7Prism3 SanDisk - failed to set I/O base 0 - res=%d
   7Prism3 SanDisk - failed to set I/O base 1 - res=%d
   7%s: set_tim failed (aid=%d set=%d)
   7%s: hfa384x_setup_bap - timeout before
       7%s: hfa384x_setup_bap - timeout after
        7%s: hfa384x_setup_bap - offset error (%d,0x04%x,%d); reg=0x%04x
      7%s: prism2_transmit_cb - res=0x%02x
  7%s: prism2_transmit_cb called with invalid idx=%d
    7%s: driver bug: prism2_transmit_cb called with no pending transmit
   7%s: test Genesis mode with HCR 0x%02x
        7Readback test succeeded, HCR 0x%02x
  7Readback test failed, HCR 0x%02x write %4ph read %4ph
        7%s: removed pending cmd_queue entry (type=%d, cmd=0x%04x, param0=0x%04x)
     7%s: cmd_queue_len (%d) not zero after flush
  7%s: TX (err=%d) - fid=0x%04x - could not read txdesc
 7%s: could not read TX frame payload
  7%s: __hfa384x_cmd_no_wait(%d) - timeout - reg=0x%04x
 7%s: hfa384x_cmd_wait - timeout2 - reg=0x%04x
 7%s: CMD=0x%04x => res=0x%02x
 7%s: cannot allocate fid, len=%d
      %s: fid allocate, len=%d - timeout
     7prism2_pccard_cor_sreset failed 1 (%d)
       7prism2_pccard_cor_sreset: original COR %02x
  7prism2_pccard_cor_sreset failed 2 (%d)
       7prism2_pccard_cor_sreset failed 3 (%d)
       6%s: first command failed - assuming card does not have primary firmware
      7%s: init command completed too quickly - retrying
    7%s: assuming no Primary image in flash - card initialization not completed
   7prism2_hw_init: initialized in %lu ms
        7%s: hfa384x_cmd: cmd_queue full
      7%s: prism2_tx_80211: hw not ready - skipping
 7%s: driver bug - prism2_transmit() called when previous TX was pending
       7%s: prism2_transmit: CMDCODE_TRANSMIT failed (res=%d)
        7%s: prism2_tx_80211 - to BAP0 failed
 7%s: passive scan detected pending TX - delaying
      6%s: no allowed passive scan channels found
   7%s: passive scan channel %d
  3%s: passive scan channel set %d failed
       7%s: hfa384x_cmd: entry still in list? (entry=%p, type=%d, res=%d)
    7%s: hfa384x_cmd: interrupted; err=%d
 7%s: hfa384x_cmd: command was not completed (res=%d, entry=%p, type=%d, cmd=0x%04x, param0=0x%04x, EVSTAT=%04x INTEN=%04x)
    4%s: interrupt delivery does not seem to work
 7%s: CMD=0x%04x => res=0x%02x, resp0=0x%04x
   7%s: card already removed or not configured during shutdown
   7%s: reset port failed to disable port
        7%s: reset port failed to enable port
 7%s: failed to restore fragmentation threshold (%d) after Port0 enable
        %s: MAC port 0 enabling failed
 %s: MAC port 0 resetting failed
        7%s: cannot set RID %04x (len=%d) - no PRI f/w
        7%s: hfa384x_set_rid (rid=%04x, len=%d) - failed - res=%d
     7%s: hfa384x_set_rid: CMDCODE_ACCESS_WRITE failed (res=%d, rid=%04x, len=%d)
  SWSUPPORT0 write/read failed: %04X != %04X
     7%s: Failed to read STA f/w version - only Primary f/w present
        7%s: Using shorter TX FID (1600 bytes)
        %s: could not get own MAC address
      %s: Port type setting to %d failed
     %s: AP own SSID setting failed
 %s: MAC data length setting to %d failed
       4%s: Channel setting out of range (%d)!
       %s: Channel setting to %d failed
       %s: Beacon interval setting to %d failed
       %s: DTIM period setting to %d failed
   6%s: Setting promiscuous mode (%d) failed
     %s: Desired SSID setting failed
        %s: TXRateControl setting to %d failed
 %s: cnfSupportedRates setting to %d failed
     %s: cnfBasicRates setting to %d failed
 %s: Create IBSS setting to 1 failed
    6%s: could not configure encryption
   6%s: could not set host roaming
       6%s: cnfEnhSecurity setting to 0x%x failed
    6%s: cnfThirty2Tally setting failed
   6%s: setting FragmentationThreshold to %d failed
      6%s: setting RTSThreshold to %d failed
        6%s: setting cnfAltRetryCount to %d failed
    6%s: setting ssnHandlingMode to 1 failed
      6%s: setting genericElement failed
    4%s: Already downloading - aborting new request
       4%s: Could not initialize card for download
   4%s: Could not enable AUX port
        4%s: Download command execution failed
        4%s: RAM download at 0x%08x (len=%d) failed
   7%s: Disabling AUX port failed
        4%s: Card configuration after RAM download failed
     7%s: setting Vcc=33 (constant)
        3GetNextTuple(): No matching CIS configuration.  Maybe you need the ignore_cis_vcc=1 parameter.
       4hostap: Invalid dev_template='%s'
    4prism2: Unknown iw_mode %d; using IW_MODE_MASTER
     4%s: register netdevice failed!
       6%s: Registered netdevice %s
  7%s: Multi-function SanDisk ConnectPlus detected - using vendor-specific initialization
       7%s: SanDisk - COR sreset failed (%d)
 6%s: Genesis mode downloading not supported with this hwmodel
 7%s: failed to enable AUX port
        7%s: Could not initiate genesis mode
  7%s: Failed to set Genesis mode (sram_type=%d)
        7%s: Failed to disable AUX port
       7%s: Initialization after genesis mode download failed
        7%s: Initialization(2) after genesis mode download failed
     4%s: %s: already resetting card - ignoring reset request
      4%s: too many reset tries, skipping
   7%s: persistent download of primary firmware
  7%s: persistent download of secondary firmware
        7%s: cannot get RID %04x (len=%d) - no PRI f/w
        7%s: hfa384x_get_rid: CMDCODE_ACCESS failed (res=%d, rid=%04x, len=%d)
        7%s: hfa384x_get_rid - RID len mismatch: rid=0x%04x, len=%d (expected %d)
     7%s: hfa384x_get_rid (rid=%04x, len=%d) - failed - res=%d
     7Could not get RID for component %s
   6%s: %s: id=0x%02x v%d.%d.%d
  7%s: defaulting to host-based encryption as a workaround for firmware bug in Host AP mode WEP
 7%s: defaulting to bogus WDS frame as a workaround for firmware bug in Host AP mode WDS
       7prism2_tx_timeout: wake up queue
     7prism2_download: dl_cmd=%d start_addr=0x%08x num_areas=%d
    6%s: non-volatile downloading not enabled
     7%s: unsupported download command %d
  7%s: Interrupt, but dev not configured
        7%s: Interrupt, but dev not OK
        %s: Interrupt, but SWSUPPORT0 does not match: %04X != %04X - card removed?
     7%s: interrupt - SWSUPPORT0=%04x MAGIC=%04x
   7%s: prism2_interrupt: ev=0xffff
      7%s: Command completion event, but cmd not issued
     7%s: Command completion event, but no pending commands
        7%s: Invalid command completion type %d
       7%s: prism2_interrupt: hw not ready; skipping events 0x%04x (IntEn=0x%04x)%s%s%s
      6%s: SW TICK stuck? bits=0x%lx EvStat=%04x IntEn=%04x
 6%s: trying to recover from IRQ hang
  Already released txfid found at idx %d
 Already reserved txfid found at idx %d
 4%s: could not find matching txfid (0x%04x, new read 0x%04x) for alloc event
  7prism2_interrupt: >%d events (EvStat=0x%04x)
 7%s: TX callback - foreign frame
      7%s: could not find TX callback (idx %d)
      7%s: hostap_tx_callback failed to allocate skb
        7prism2_rx: rxfid=0 (next 0x%04x)
     7%s: copy from BAP0 failed %d
 7%s: Received frame with invalid length 0x%04x
        7%s: RX failed to allocate skb
        7%s: RX failed to read frame data
     7Could not get info frame (fid=0x%04x)
        7%s: Received info frame with invalid length 0x%04x (type 0x%04x)
     7%s: Could not allocate skb for info frame
    4%s: Info frame read failed (fid=0x%04x, len=0x%04x, type=0x%04x
      7%s: TX - status=0x%04x retry_count=%d tx_rate=%d seq_ctrl=%d duration_id=%d
  7%s: TXEXC - status=0x%04x (%s%s%s%s) tx_control=%04x
 7   retry_count=%d tx_rate=%d fc=0x%04x (%s%s%s::%d%s%s)
      7   A1=%pM A2=%pM A3=%pM A4=%pM
       WL200_11Mbps_Wireless_PCI_Card  AT-WCL452 Wireless PCMCIA Radio 7%s: RX: len(%d) > MAX(%d)
 CMD=%04x
 PARAM0=%04x
 PARAM1=%04x
 PARAM2=%04x
 STATUS=%04x
 RESP0=%04x
 RESP1=%04x
 RESP2=%04x
 INFOFID=%04x
 CONTROL=%04x
 SELECT0=%04x
 SELECT1=%04x
 OFFSET0=%04x
 OFFSET1=%04x
 RXFID=%04x
 ALLOCFID=%04x
 TXCOMPLFID=%04x
 SWSUPPORT0=%04x
 SWSUPPORT1=%04x
 SWSUPPORT2=%04x
 EVSTAT=%04x
 INTEN=%04x
 EVACK=%04x
 AUXPAGE=%04x
 AUXOFFSET=%04x
 7%s failed 1 (%d)
 7%s: original COR %02x
 7%s failed 2 (%d)
 7%s failed 3 (%d)
 7%s failed 4 (%d)
 hostap_cs &entry->compl 4%s: Shutdown failed
 7%s: CS_EVENT_PM_SUSPEND
 registers NIC PRI STA %s: Channel list read failed
 4%s: Initialization failed
 7%s: valid PDA not found
 7%s: CS_EVENT_PM_RESUME
 %d &local->rid_bap_mtx &local->hostscan_wq wifi%d  7prism2_config() failed
 4%s: %s: resetting card
 4%s: download (PRI) failed
 4%s: download (SEC) failed
 7%s: scheduled card reset
 include/linux/thread_info.h  (!dev_enabled)  (hw_resetting)  (!hw_ready) 7TXFIDs:  %04x[%04x] 
 7%s: WTERR event
 7%s: INFDROP event
 [FormErr] [Discon] [AgedErr] [RetryErr]  FromDS  ToDS Mgmt Data Ctrl ADLINK 345 CF INTERSIL Intersil Version 01.02 SanDisk ConnectPlus Addtron AWP-100 Wireless PCMCIA Canon Wireless LAN CF Card K30225 Version 01.00 D Link DWL-650 11Mbps WLAN Card Instant Wireless   Network PC CARD SMC SMC2632W BUFFALO WLI-CF-S11G Compaq HFA384x/IEEE Linksys Wireless CompactFlash Card ZoomAir 11Mbps High Rate wireless Networking NETGEAR MA401 Wireless PC Card Pretec CompactWLAN Card 802.11b 2.5 U.S. Robotics IEEE 802.11b PC-CARD Allied Telesyn Ver. 1.00 Wireless LAN 11Mbps PC Card HFA3863 ISL37100P ISL37101P-10 ISL37300P                                                                                                          strnlen         __fortify_strlen                prism2_pccard_genesis_reset                        q                                                                             s                                                                           w                                                                           &                                                                            8                                                                            3                                                                           P                                                                            o                                                                           t                                                                           t                                                                                                                                                                                                                                                                                                               P                                                                            P s                                                                           P                                                                                                                                                                                                                                                                                                                &                                                                                   -                                                                 V       
t                                                                 V       K                                                                C V               tK                                                        8           Kz t                                                            p           RdtK                                                        p           o?&z                                                        p           q񶠺tK                                                        p           &ٛntK                                                        p           *JGtK                                                        0           -|                                                            0           T[^                                                            0           
t*G                                                            0           3R                                                            0           ?'2                                                            0           4tb                                                            p           ӭlc[z                                                        p           ߸Ǉ tK                                                        p           \fqB                                                        p           pKFptK                                                        @                   \5                                                        @                   R
c                                                        @                   k                                                        @                   9                                                                                                                                                                                                                                                                                        dev_template                   dtim_period                                                   beacon_int                                                    iw_mode                                                       essid           !               channel                                                       mtu     ignore_cis_vcc parm=dev_template:Prefix for network device name (default: wlan%d) parmtype=dev_template:string parm=dtim_period:DTIM period parmtype=dtim_period:array of int parm=beacon_int:Beacon interval (1 = 1024 usec) parmtype=beacon_int:array of int parm=iw_mode:Initial operation mode parmtype=iw_mode:array of int parm=essid:Host AP's ESSID parmtype=essid:string parm=channel:Initial channel parmtype=channel:array of int parm=mtu:Maximum transfer unit parmtype=mtu:int parm=ignore_cis_vcc:Ignore broken CIS VCC entry parmtype=ignore_cis_vcc:int license=GPL description=Support for Intersil Prism2-based 802.11 wireless LAN cards (PC Card). author=Jouni Malinen alias=pcmcia:m*c*f*fn*pfn*pa*pb*pcC9049A39pd* alias=pcmcia:m*c*f*fn*pfn*pa*pb*pcDD97A26Bpd* alias=pcmcia:m*c*f*fn*pfn*pa*pb*pc630D52B2pd* alias=pcmcia:m*c*f*fn*pfn*pa*pb*pc355CB092pd* alias=pcmcia:m*c*f*fn*pfn*pa4B8870FFpb70E946D1pc4B74BAA0pd* alias=pcmcia:m*c*f*fn*pfn*pa5CD01705pb4271660Fpc9D08EE12pd* alias=pcmcia:m*c*f*fn*pfn*paC7B8DF9Dpb1700D087pc4B74BAA0pd* alias=pcmcia:m*c*f*fn*pfn*pa1CADD3E5pbE697636Cpc7A5BFCF1pd* alias=pcmcia:m*c*f*fn*pfn*paA37434E9pb9762E8F1pc*pd* alias=pcmcia:m*c*f*fn*pfn*pa273FE3DBpb32A1EAEEpc*pd* alias=pcmcia:m*c*f*fn*pfn*pa0733CC81pb0C52F395pc*pd* alias=pcmcia:m*c*f*fn*pfn*pa74C5E40DpbDB472A18pc*pd* alias=pcmcia:m*c*f*fn*pfn*pa54F7C49Cpb15A75E5Bpc*pd* alias=pcmcia:m*c*f*fn*pfn*pa2DECECE3pb82067C18pc*pd* alias=pcmcia:m*c*f*fn*pfn*paC4F8B18Bpb474A1F2Apc4B74BAA0pd* alias=pcmcia:m*c*f*fn*pfn*pa11D901AFpb6E9BD926pc4B74BAA0pd* alias=pcmcia:m*c*f*fn*pfn*pa71B18589pbB6F1B0ABpc4B74BAA0pd* alias=pcmcia:m*c*f*fn*pfn*pa96EF6FE2pb263FCBABpcA57ADB8Cpd* alias=pcmcia:m*c*f*fn*pfn*paE6EC52CEpb08649AF2pc4B74BAA0pd* alias=pcmcia:m*c*f*fn00pfn*pa7A954BD9pb74BE00C6pc*pd* alias=pcmcia:m0156c0002f*fn*pfn*pa*pb*pc4B74BAA0pd* alias=pcmcia:m0156c0002f*fn*pfn*pa4B801A17pb*pc*pd* alias=pcmcia:m0156c0002f*fn*pfn*pa74C5E40Dpb*pc*pd* alias=pcmcia:mD601c0005f*fn*pfn*pa2D858104pb*pc*pd* alias=pcmcia:m0126c0002f*fn*pfn*pa*pb*pc*pd* alias=pcmcia:mD601c0010f*fn*pfn*pa*pb*pc*pd* alias=pcmcia:mD601c0005f*fn*pfn*pa*pb*pc*pd* alias=pcmcia:mD601c0002f*fn*pfn*pa*pb*pc*pd* alias=pcmcia:mC250c0002f*fn*pfn*pa*pb*pc*pd* alias=pcmcia:m50C2c7300f*fn*pfn*pa*pb*pc*pd* alias=pcmcia:m50C2c0001f*fn*pfn*pa*pb*pc*pd* alias=pcmcia:m02D2c0001f*fn*pfn*pa*pb*pc*pd* alias=pcmcia:m02AAc0002f*fn*pfn*pa*pb*pc*pd* alias=pcmcia:m028Ac0002f*fn*pfn*pa*pb*pc*pd* alias=pcmcia:m0274c1613f*fn*pfn*pa*pb*pc*pd* alias=pcmcia:m0274c1612f*fn*pfn*pa*pb*pc*pd* alias=pcmcia:m026Fc030Bf*fn*pfn*pa*pb*pc*pd* alias=pcmcia:m0250c0002f*fn*pfn*pa*pb*pc*pd* alias=pcmcia:m01BFc3301f*fn*pfn*pa*pb*pc*pd* alias=pcmcia:m0138c0002f*fn*pfn*pa*pb*pc*pd* alias=pcmcia:m0126c8000f*fn*pfn*pa*pb*pc*pd* alias=pcmcia:m0101c0777f*fn*pfn*pa*pb*pc*pd* alias=pcmcia:m000Bc7300f*fn*pfn*pa*pb*pc*pd* alias=pcmcia:m000Bc7100f*fn*pfn*pa*pb*pc*pd* depends=pcmcia,hostap,lib80211 retpoline=Y intree=Y name=hostap_cs vermagic=6.1.0-37-amd64 SMP preempt mod_unload modversions                          $                                     $                                     $                                     $                                     $                                     $                                     $                                     $                                                                                                                                                                                                                                                                                                                                                          (    0  8  X  8  0  (                                (                 (                         (    0  8  @  8  0  (                     @                                                                         (    0  8  0  (                                            (    0  8  P  8  0  (                     P                                                                                                                  (    0  8  0  (                     8  0  (                                                    (                 (                         (    0  8  0  (                     8                         (  0  (                   0  (                   0                         (  0  (                   0                                                                                                                     (    0  8  0  (                     8                         (  0  (                   0                         (    0  8  H  8  0  (                     H                         (  0  (                   0                       (  0  (                                    0               0                     0               0                         (  0  8                         (    0  8  @  8  0  (                     @                         (    0  8    8  0  (                                                                                                        (    0  8    8  0  (                                                                                                                    (    0  8  @  8  0  (                     @  8  0  (                                                                                      (  0  (                   0  (                                          (    0  8  P  8  0  (                     P                         (    0  8  `  8  0  (                     `                                                                                                                        (    0  8  X  8  0  (                     X                     0                                                         (    0  8  p  8  0  (                     p  8  0  (                     p  x  p                         (    0  8  H  8  0  (                           H  8  0  (                     H                     F   H     F            H                 X  `  X  (  @  P                           (                                 8  (  0  (                   0  (                            0               8  H  0  0  0  8  0  (                   8  @                                                     0  P  `                     (    0  8  @  8  0  (                                  (    0  8  0  (                                  (    0  8  0  (                                             X  0               0  8  0                                        (    0  8  H  8  0  (                     p  H  8  0  (                     H  8  0  (                       H                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 m    __fentry__                                              9[    __x86_return_thunk                                      .n    pcmcia_register_driver                                  ~    _printk                                                 pHe    __x86_indirect_thunk_rax                                    __const_udelay                                          4    _raw_spin_lock_irqsave                                  p\    _raw_spin_unlock_irqrestore                             %[W    pcmcia_dev_present                                      {4    pcmcia_request_io                                       |    hostap_80211_get_hdrlen                                 !`    skb_pull                                                    memmove                                                 Z2V    hostap_handle_sta_tx_exc                                #WK    consume_skb                                             T    skb_dequeue                                             /{    hostap_80211_rx                                         X    hostap_dump_rx_header                                   V
    __stack_chk_fail                                        RJ    hostap_info_process                                     X֭    prism2_update_comms_qual                                ,e9    seq_open_private                                        ʑ    seq_printf                                              Cv    pcmcia_unregister_driver                                z    kfree                                                   9Ľ
    cc_platform_has                                         `J    pcmcia_write_config_byte                                Ӆ3-    system_wq                                               6    queue_work_on                                           UrS    __list_del_entry_valid                                  !`    _raw_spin_unlock_bh                                     9Q'    hostap_set_word                                         6    _raw_spin_lock_bh                                       -    kmalloc_caches                                          wX    kmalloc_trace                                           h    __list_add_valid                                        d    _raw_spin_lock                                          4K    _raw_spin_unlock                                        P    jiffies                                                 a    netif_tx_wake_queue                                     Rh    seq_write                                               _i    refcount_warn_saturate                                  E:#    __kmalloc                                               O
v    yield                                                   {N)7    pcmcia_read_config_byte                                     hostap_dump_tx_header                                   ;    net_ratelimit                                           s$    add_timer                                               \Yх    current_task                                            ت    default_wake_function                                   T    __init_waitqueue_head                                   8"J    add_wait_queue                                           7    remove_wait_queue                                       ݍ    schedule_timeout                                        BW\    netif_device_detach                                     'ZH    wireless_send_event                                     Å]    pcmcia_disable_device                                   @    unregister_netdev                                       ĕ,/    flush_work                                              Bw3    lib80211_crypt_info_free                                UH    timer_delete                                            a    skb_queue_purge                                              hostap_free_data                                        G    remove_proc_entry                                       9    hostap_remove_proc                                          hostap_set_hostapd                                      (    hostap_set_hostapd_sta                                  m    free_netdev                                             s,    hostap_remove_interface                                 X    hostap_set_antsel                                       u    mutex_lock_interruptible                                82    mutex_unlock                                            ӽ    hostap_set_string                                       x    hostap_set_encryption                                   |2    hostap_set_roaming                                          hostap_set_auth_algs                                    (
    dev_addr_mod                                            55    hostap_get_porttype                                     "*    netif_device_attach                                     :}7    pcmcia_loop_config                                          strnlen                                                     fortify_panic                                           &m    strstr                                                  .    alloc_etherdev_mqs                                          __mutex_init                                            XLu    hostap_set_multicast_list_queue                         <}    tasklet_setup                                               hostap_info_init                                        ;m~    lib80211_crypt_info_init                                9c    init_timer_key                                          F,    hostap_setup_dev                                        2{
    hostap_80211_ops                                            rtnl_lock                                               SZ_    dev_alloc_name                                          rn    rtnl_unlock                                                 register_netdevice                                      \    hostap_init_data                                        {C    pcmcia_request_irq                                      p'    pcmcia_enable_device                                    M    hostap_add_interface                                        netif_carrier_off                                       z    hostap_init_proc                                            proc_create_single_data                                 R    hostap_init_ap_proc                                     o<    disable_irq                                             	    enable_irq                                                  hostap_check_sta_fw_version                             Hۈ    __check_object_size                                         _copy_from_user                                         DC    __wake_up                                               *    __tasklet_schedule                                      #    __netdev_alloc_skb                                      S>    skb_put                                                 8߬i    memcpy                                                  _    skb_queue_tail                                          Q]]g    seq_read                                                ~C    seq_lseek                                                   seq_release_private                                     @    param_ops_string                                        j    param_array_ops                                              param_ops_int                                           zR    module_layout                                                    	                                                                                                                                                                                                                                                                                                                                                                                                                                    wlan%d             d      test                                                                                                                     hostap_cs                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                GCC: (Debian 12.2.0-14+deb12u1) 12.2.0  GCC: (Debian 12.2.0-14+deb12u1) 12.2.0         $-  $-           
9             X    z          
Y A=       H= 
  P   Y=        e=       m=        %    0   %     8   u=    @   =    `   =      z      = ?   @         
\ =      ]  e      = e      = yQ  @   = yQ  H   = yQ  P   =    ^ =      ذ  yQ      ]  yQ     \y {Q       [   @     [      =       ذ  yQ      ]  yQ     \y {Q     = [   @   = e     jT      =    a =      > e      
> e      jT   @   =    c >   0     i     !  i @   am l    #> o    .> r    9> u @        
       g        h E> -  (           \	 _ @     e     S> e      {Q     Bj  {Q     c> b    k> k      ŗ v @  
 w @  t> `   @  ~> Q     >       > `   @  > F    \     	    e  	   e   
  
 e   
  W e  @
  > e  `
  >   
  > $   
  )  x    > z @  > k     > |   > ~    ?  @         WR F    ?    
  ?    
  +? G     5? G     ?? *     Qg   @  K? `     j $      X? $     V ]      c?    @  :"      v  k   (  n?     )         f       
       g     k        e         j       
       g     n        _        m       
       g     q        `        p       
       g     t        a        s            d                  b              e |?               y       
        g               {       
       g               }       
        g               ?                ?   0   4  G        `      ? 	     V            @         !      )           @      E     -  @        
                ? !    \	 g     C ?   @   u= $      @  $      ?     ? `      i       !_    ?   @  ?      ?      S      @      @       !@        &   @ *@ &   A /@ &   B 3@ &   C 8@ &   G @@ &   H T@ &   I `@ &   J l@ &   K   &   L % $   P  e= &   `  m= &   p  = '      -     :"      Z  k      	     @                
                        ] x@                                   @      V           `   @         @ %     @  @  @    @    @     @  @  @    v     4 <M     4  @  @      @      
A      #A                    
k                        
                    k                 
                           k                 
       k                     k                 
              k           :A   (     `       )      Z  k      	  ]              NA   x   V  ?       4  -  @   bA     hA      rA `     A I  @  A                                A      x   +      Y +     *  +      _ +  0            A    A    A    B    4B    `B        *       4&  *       f  k   @   uB      B *        *       B *   @                            B   <     +      @#  +     B $   0   [  $   8   I $   @   Z4 $   H     +  P   B +  p   B +      	     ? 	     n 	     B +     ]	 	  0  ng  +  `   	  p  V 	    4&  A            
          B +      B +      	      ? 	  P   n 	     B +                              B 
  <     +       +      +      B +  0    $   P   B $   X   B +  `        p   ]	 	  0  ng  +  `   	  p  V 	    4&  A            
 C      4&  +      S +     C      4&  +      c  +     *C   @   BC +      GC +     ^ +       	  0   A +  `    +  p    +            KC 9    I +    UC +    ZC   T   lC        ~C        C    @   C    `   C       C       C       C       D       'D       3D    @  ED    `  YD      fD      xD      D      D       D       D    @  D    `  D      E   
   : &       ,E &      3E &       ;E &   0   CE &   @   NE       S &       @   @     k                  
                     k                   fE   (   xE        B:     @   E    `         V 	      	              E     E    E           	 E   `     `       E D     c   @  Qg     E5  2     : &      E &     E &      E &   0  jT &   @  E 
 `  E 
   9 /    E            
        %      2       &       &           E     F     F        F    @   $F    `   0F       EF       :"  %     RF %     WF `   @  iF ,    tF *     |F *     4  *  @  F *  `  F G    F &     F *    F      F cQ    F cQ  `  F      F            @   ۈ   X	 F    V  F    F      F &      F &     G      X  
  G       !G        f   @  $      .G      9G             EG       PG       cG &   @  Q &   P  sG    `  G      G      G      Ŗ       G     
  G     
  G    @
  G ֈ `
  X	    
  G `   
  G    @  G Q    G      G Q    H Q    $H `     1H *  @  >H    `  RH      bH *     B &     kH      Y	 :p     ~H       H ׈ @  H    `  H      H      H %    H 	     H f     H %     H 	  @  H   !   I    $  	I    $  I     %  #I     %  3I    @%  AI    `%  NI ܈ %  YI    *  gI    *  sI    *  }I    *       +  I     +  I    @+  I    `+  I    +  @  ݈ +  I     ,  I    @,  I *   `,  I NW  ,  I NW  -  N    /  I  /  I NW   0  gu   @1  I NW   2  J   @3  J     4  (J    @4  7J ވ 4  IJ    4  aJ ؈ 4  pJ Q   5  {J     6  J    @6  J    `6  J 	  6  J D  6  J I  7  J    8  J    8  
K و  9  K I  @9  (K    :  8K    :  FK     ;  ]K    @;  hK    `;  sK    ;  }K Q  ;  K    <  K `    =  K    =  K    =  K    =  K    =  K     >  K Q   @>  K ߈ >   L ߈ >  ;	 k    ?           L     L    &L    4L      LL      YL  @   dL È    : ň    rL Ȉ    |L ʈ @  L ̈   L  
    V  
     L 	  @  L 	    L 	    L     L ψ @  4e ш   L  
    L ^"     L    @  L  `        
                              
                       
                              
       %      &       &       '      '         Ĉ       
        %      ǈ                ƈ       
       %      &       k                        Ɉ       
       %      &       k                 ˈ       
            Έ                ͈       
             %         Ј M        *       4&  *            @   M      B *        *       B *   @     Ԉ               ҈        0M 
       `                       	     @M &             Q   @  KM      RM Q     ]M      dM Q     
       oM                xM     M    M    M             M     M    M    N             #N     /N             ?N     QN    eN     >         y  @   mN       |N       N       N       N       N *     N    @  N `     N      X   B  N  @B  N    `B  N    B  O  B  O    C  )O Q   D  <O   E  QO Q  @E  `O  @F  qO &   F  O  F  O &   f  O &   f  O &   f  bA   g  O k   @g         ڈ                                          ӈ          O     O    O    
P    P    4P      IP 	               UP      YP   `    `       :"  %     y     0  	     VY	 Lp      ?p   
  c   
     
          jP   (   }P        v  *       I $   @   ]  $   H   P &   P   v     !       
                        P     P    P      \v       P    @   P      P *       [  $       `X	 $   (   I &   0            P ?             8                 $    @  P                       !         8   k                     Q     Q    !Q    ,Q %  `    `       '     P  ]       X       	  @  5Q &   p  ]  *      &     9Q &     IQ      YQ      cQ       nQ    @  vQ      O      Z       e    @  n      S     ~Q #     Q #     Q $     Q $     Q $     B $     Q $     Q $     _ D    _ D  @  Q *     Q *     bA         @  y         %  I  	  	R  
                   R     +R    AR    QR    gR              vR     R    R    O       S       h         R `   @   4  *     R        	         @                    R     R    R     R      c         	                                                                   73               
 R        `       5Q       G	        R     y      '  ݥ  @              ]    -          
                                                	       
            k                           Ո                                         S       'S    p         
   \v   :S     KS           
   ]S   k   cS           
    \v   wS           
   ]S  S           
    y  S    S           
    y  S           
   y  S    !       
   y  n Έ S    #       
   y  n ߈ S    %       
   y  S    T    ' 'T    % @T      cT    t&        
k   cK   R  k      T    ,       
k   cK      T    . T    $        
   :"  %       4&     [  k   T    1 T    1       
   :"  %  5    U    4 'U            
   :"  %  5Q    G	     <U    7 KU    $  fU    }Y  xU      U    }Y  U     U    P  U    \W  U    \W  U    \W        
    y  V  V    gt  ?   V    B 0V    \W        
&   :"  %  S &   BV    E VV    k        
    :"  %  E5  2   E &   jT &   fV    H yV      V     V    j        
    :"  %  V    V    M       
   :"  %  z    V    O V    O V    O       
   :"  %  S &   
    W    S W    j        
&   :"  %  4&     ,W    V       
   :"  %  S &   [  k   4&     AW    X       
   :"  %  S &   [  k   4&     QW    [W    Z       
   :"  %  : &   E &   kW    \       
   :"  %  : &   E &   Qg   E5  2   |W    ^       
   :"  %  : &   E &   E '  E '  W    `       
   :"  %  <%   W    b W           
    y  <%   E    W    e       
    :"  %    ǈ W    g u_long pcmcia_device_id match_flags manf_id card_id device_no prod_id_hash prod_id cisfile socket_state_t csc_mask Vcc Vpp io_irq pccard_io_map pccard_mem_map static_start card_start io_window_t InUse Config pccard_operations set_socket set_io_map set_mem_map pcmcia_socket suspended_state cis_mem cis_virt cis_cache fake_cis_len fake_cis socket_list socket_released pci_irq cb_dev resource_setup_done resource_ops resource_data zoom_video power_hook tune_bridge thread_events sysfs_events skt_mutex ops_mutex thread_lock devices_list pcmcia_pfc pcmcia_irq resume_status pccard_resource_ops pcmcia_callback pcmcia_dynids pcmcia_driver pcmcia_device function_config socket_device_list card_addr vpp config_flags config_index config_regs io_lines _irq _io _win _locked allow_func_id_match has_manf_id has_card_id has_func_id config_t lib80211_crypto_ops deinit encrypt_mpdu decrypt_mpdu encrypt_msdu decrypt_msdu set_key get_key extra_mpdu_prefix_len extra_mpdu_postfix_len extra_msdu_prefix_len extra_msdu_postfix_len lib80211_crypt_data lib80211_crypt_info crypt tx_keyidx crypt_deinit_list crypt_deinit_timer crypt_quiesced hfa384x_comp_ident PRISM2_DOWNLOAD_VOLATILE PRISM2_DOWNLOAD_NON_VOLATILE PRISM2_DOWNLOAD_VOLATILE_GENESIS PRISM2_DOWNLOAD_VOLATILE_PERSISTENT PRISM2_DOWNLOAD_VOLATILE_GENESIS_PERSISTENT prism2_download_area prism2_download_param dl_cmd num_areas hfa384x_rx_frame silence frame_control duration_id seq_ctrl hfa384x_tx_frame sw_support tx_rate tx_control hfa384x_rid_hdr hfa384x_info_frame hfa384x_hostscan_result chid anl sup_rates atim comm_tallies_sums tx_unicast_frames tx_multicast_frames tx_fragments tx_unicast_octets tx_multicast_octets tx_deferred_transmissions tx_single_retry_frames tx_multiple_retry_frames tx_retry_limit_exceeded tx_discards rx_unicast_frames rx_multicast_frames rx_fragments rx_unicast_octets rx_multicast_octets rx_fcs_errors rx_discards_no_buffer tx_discards_wrong_sa rx_discards_wep_undecryptable rx_message_in_msg_fragments rx_message_in_bad_msg_fragments hfa384x_regs evstat offset0 offset1 swsupport0 hostap_tx_callback_info prism2_frag_entry first_frag_time last_frag CMD_SLEEP CMD_CALLBACK CMD_COMPLETED hostap_cmd_queue compl param0 param1 resp0 issued issuing del_req local_info_t local_info hw_module card_idx dev_enabled master_dev_auto_open num_dev_open ddev hostap_interfaces iface_lock cmdlock baplock irq_init_lock rid_bap_mtx infofid txfidlock txfid_len txfid intransmitfid next_txfid next_alloc name_set channel_mask scan_channel_mask comm_tallies iw_mode pseudo_adhoc beacon_int dtim_period frame_dump fw_tx_rate_control tx_rate_control hw_resetting hw_ready hw_reset_tries hw_downloading pri_only no_pri sram_type txpower_type cmd_queue cmd_queue_len reset_queue is_promisc set_multicast_list_queue set_tim_queue set_tim_list set_tim_lock wds_max_connections wds_connections wds_type manual_retry_count scan_timestamp monitor_type monitor_allow_fcserr hostapd hostapd_sta apdev apdevstats assoc_ap_addr stadev stadevstats crypt_info open_wep host_encrypt host_decrypt privacy_invoked fw_encrypt_ok bcrx_sta_key frag_cache frag_next_idx ieee_802_1x antsel_tx antsel_rx fragm_threshold auth_algs enh_sec tallies32 pda fw_ap sta_fw_ver bap_tasklet info_tasklet tx_callback rx_tasklet sta_tx_exc_tasklet sta_tx_exc_list host_roaming last_join_time last_scan_results last_scan_results_count last_scan_type info_queue pending_info prev_link_status prev_linkstatus_connected preferred_ap hostscan_wq passive_scan_timer passive_scan_interval passive_scan_channel passive_scan_state tick_timer last_tick_timer sw_tick_stuck last_comms_qual_update comms_qual avg_signal avg_noise comms_qual_update rssi_to_dBm bss_list num_bss_info wpa tkip_countermeasures drop_unencrypted generic_elem generic_elem_len dl_pri dl_sec HOSTAP_HW_PCCARD HOSTAP_HW_PLX HOSTAP_HW_PCI prism2_helper_functions card_present cor_sreset genesis_reset read_regs get_rid set_rid hw_enable hw_reset hw_shutdown reset_port schedule_reset download set_tim read_aux_proc_ops need_tx_headroom hw_type prism2_download_data_area prism2_download_data hostap_bss_info capab_info wpa_ie wpa_ie_len rsn_ie rsn_ie_len included PRISM2_TXPOWER_AUTO PRISM2_TXPOWER_OFF PRISM2_TXPOWER_FIXED PRISM2_TXPOWER_UNKNOWN PRISM2_MONITOR_80211 PRISM2_MONITOR_PRISM PRISM2_MONITOR_CAPHDR PRISM2_MONITOR_RADIOTAP PRISM2_SCAN PRISM2_HOSTSCAN PASSIVE_SCAN_WAIT PASSIVE_SCAN_LISTEN ap_data bridge_packets bridged_unicast bridged_multicast tx_drop_nonassoc nullfunc_ack sta_table_lock num_sta sta_list sta_hash ap_policy max_inactivity autom_ap_wds mac_restrictions last_tx_rate add_sta_proc_queue add_sta_proc_entries wds_oper_queue wds_oper_entries tx_callback_idx sta_aid tx_callback_auth tx_callback_assoc tx_callback_poll crypt_priv HOSTAP_INTERFACE_MASTER HOSTAP_INTERFACE_MAIN HOSTAP_INTERFACE_AP HOSTAP_INTERFACE_STA HOSTAP_INTERFACE_WDS hostap_interface_wds remote_addr wds hostap_interface hostap_skb_tx_data __padding_for_default_qdiscs tx_cb_idx BAP0 BAP1 hostap_cs_priv sandisk_connectplus hostap_80211_rx_status mac_time challenge last_beacon STA_NULLFUNC STA_DISASSOC STA_DEAUTH sta_info aid listen_interval supported_rates last_auth last_assoc last_rx last_tx last_rx_silence last_rx_signal last_rx_rate last_rx_updated tx_supp_rates tx_rate_idx tx_max_rate tx_since_last_failure tx_consecutive_exc timeout_next AP_OTHER_AP_SKIP_ALL AP_OTHER_AP_SAME_SSID AP_OTHER_AP_ALL AP_OTHER_AP_EVEN_IBSS ap_policy_enum MAC_POLICY_OPEN MAC_POLICY_ALLOW MAC_POLICY_DENY mac_list add_sta_proc_data WDS_ADD WDS_DEL wds_oper_type wds_oper_data set_tim_data prism2_download_aux_dump hostap_driver_exit hostap_driver_init hostap_cs_resume hostap_cs_suspend p_dev prism2_config_check prism2_detach hostap_cs_probe hcr prism2_pccard_genesis_reset prism2_pccard_cor_sreset prism2_pccard_card_present prism2_download prism2_download_genesis prism2_enable_genesis prism2_download_volatile prism2_download_aux_dump_proc_open prism2_download_aux_dump_proc_stop prism2_download_aux_dump_proc_next prism2_download_aux_dump_proc_start prism2_download_aux_dump_proc_show hfa384x_to_aux hfa384x_from_aux prism2_enable_aux_port handle_set_tim_queue prism2_set_tim prism2_registers_proc_show hostap_tick_timer handle_comms_qual_update hostap_passive_scan prism2_check_sta_fw_version prism2_interrupt hostap_bap_tasklet hostap_info_tasklet hostap_sta_tx_exc_tasklet txdesc ok hostap_tx_callback hostap_rx_tasklet prism2_read_fid_reg prism2_tx_80211 prism2_transmit_cb handle_reset_queue prism2_schedule_reset prism2_hw_reset no_disable prism2_hw_shutdown prism2_hw_config prism2_hw_enable prism2_hw_init2 prism2_get_version_info prism2_reset_port hfa384x_allocate_fid hfa384x_set_rid exact_len hfa384x_get_rid hfa384x_cmd_wait hfa384x_cmd_callback hfa384x_cmd hfa384x_cmd_issue prism2_clear_cmd_queue __hostap_cmd_queue_free hfa384x_read_regs  hostap_cs.ko    p                                                                                               	                      
                                                                                         (                            .                  .       +           .       @           .       U     F      <       j           <                  <                  <            6      5            k      5                  5                  5            
      5           ?      5       '    t      <       <          <       Q          <       f    (      <       {    d      <                 6                 4           
      4           >      4           r      4                 -                 -       #           -       8    -      -       M    Z      -       b          -       w          -                 -           	      -           ;	      -           h	      -           	      -           	      -       
    	      -           
      -       4    I
      -       I    v
      -       ^    
      -       s    
      -           
      -           *                                   I                 U      	           ^                 m      <                          %           $       -            G       ?    P       %       b                   u                               p                                                       W                                 *                        /          ;       S           /       n    0                 P                                 2                 p      B                                  >                         :                 U   	                h    K      0           {                       i           @
                 `
                 ~                 0                 P             *          *       M    0             \     
             o          G                                             
                0      B                 ~                             +      %       7                 T    `             u    P      S           `                                                        ,                         
	                .	    0              :	                  S	                 q	          *      	                 	                	                 	                	          R        
                
   (                "
                 6
    5             O
          C      [
   (                 d
                 u
    "             
    {	      +       
    #      V       
    	             
     $      7      
    @'             
    4
      D            '                 x
      *       '    (            7    
      L       L    3      #       \    `*      D      l    5      c           3                 6                 
                2                 P3      #           
                 G      =                7      {   (                                  &                   2                  >   (                     `             G                   [          `       }                }            !                          }                        @                  A      	                                   ~          (                     7                      5                R          B             
          a       ,
    F      @       M
   (               _
   (               m
                 
   (               
    ?      e      
    !      9       
    3"      ~      
   "                   $                +    `             9            C       U    C              u            (                  
                            `                  }       "           (       (       
                  %    @              =           0       W           !       u    P       (           `                                          $                            x       (                                               2             5    M             N           (       \                 n                     c                                         (                                                                                          (       #    @             3          0       Q                 s          (           H                                  &      S           y                  k                                                                              &                     :                     F                     Y                     i                                                                                                            &                                                                                                   
                     -                     ?                     K                     `                     y                        	                                                                                                                                                                                                                                                                            5                     D                     R                     f                     q                   }                                                                                                                                                                        
                     !                     5                     M                     U                     i                     }                         `                                                                                                                                                                $                     +                     <                     P                     c                     o                                                                                                                                                                                             &                     9                     P                     f                     |                                                                                                                                                                                                                                       ;                     J                     T                     f                     z                                                                                                                                                                                                                   .                     <                     J                     Z                     m                                                                                                                                                                                                                  
                                           +                     >                      __UNIQUE_ID_alias237 __UNIQUE_ID_alias236 __UNIQUE_ID_alias235 __UNIQUE_ID_alias234 __UNIQUE_ID_alias233 __UNIQUE_ID_alias232 __UNIQUE_ID_alias231 __UNIQUE_ID_alias230 __UNIQUE_ID_alias229 __UNIQUE_ID_alias228 __UNIQUE_ID_alias227 __UNIQUE_ID_alias226 __UNIQUE_ID_alias225 __UNIQUE_ID_alias224 __UNIQUE_ID_alias223 __UNIQUE_ID_alias222 __UNIQUE_ID_alias221 __UNIQUE_ID_alias220 __UNIQUE_ID_alias219 __UNIQUE_ID_alias218 __UNIQUE_ID_alias217 __UNIQUE_ID_alias216 __UNIQUE_ID_alias215 __UNIQUE_ID_alias214 __UNIQUE_ID_alias213 __UNIQUE_ID_alias212 __UNIQUE_ID_alias211 __UNIQUE_ID_alias210 __UNIQUE_ID_alias209 __UNIQUE_ID_alias208 __UNIQUE_ID_alias207 __UNIQUE_ID_alias206 __UNIQUE_ID_alias205 __UNIQUE_ID_alias204 __UNIQUE_ID_alias203 __UNIQUE_ID_alias202 __UNIQUE_ID_alias201 __UNIQUE_ID_alias200 __UNIQUE_ID_alias199 __UNIQUE_ID_alias198 __UNIQUE_ID_alias197 __UNIQUE_ID_alias196 __UNIQUE_ID_alias195 __UNIQUE_ID_alias194 __UNIQUE_ID_depends193 ____versions __UNIQUE_ID_retpoline192 __UNIQUE_ID_intree191 __UNIQUE_ID_name190 __UNIQUE_ID_vermagic189 _note_10 _note_9 hfa384x_read_regs prism2_download_aux_dump_proc_next hostap_driver_init hostap_driver prism2_read_fid_reg prism2_read_fid_reg.cold hfa384x_cmd_issue hfa384x_cmd_issue.cold prism2_enable_aux_port prism2_enable_aux_port.cold prism2_download_aux_dump_proc_stop prism2_download_aux_dump_proc_start prism2_pccard_card_present prism2_config_check hostap_sta_tx_exc_tasklet hostap_rx_tasklet hostap_rx_tasklet.cold hostap_info_tasklet handle_comms_qual_update prism2_download_aux_dump_proc_open prism2_download_aux_dump_proc_seqops prism2_registers_proc_show hostap_driver_exit prism2_download_free_data.part.0 hfa384x_to_aux sandisk_set_iobase.isra.0 schedule_work.isra.0 handle_set_tim_queue handle_set_tim_queue.cold prism2_schedule_reset hfa384x_setup_bap.constprop.0 hfa384x_setup_bap.constprop.0.cold prism2_set_tim prism2_transmit_cb prism2_transmit_cb.cold hfa384x_to_bap.constprop.0 hfa384x_from_aux prism2_enable_genesis prism2_download_aux_dump_proc_show __hostap_cmd_queue_free prism2_clear_cmd_queue prism2_clear_cmd_queue.cold hfa384x_from_bap.constprop.0 hostap_tx_compl_read.constprop.0 hostap_tx_compl_read.constprop.0.cold hfa384x_cmd_wait hfa384x_cmd_wait.cold hfa384x_allocate_fid hfa384x_allocate_fid.cold prism2_pccard_genesis_reset prism2_pccard_genesis_reset.cold __func__.41 prism2_pccard_cor_sreset prism2_pccard_cor_sreset.cold prism2_hw_init.constprop.0 prism2_hw_init.constprop.0.cold hfa384x_cmd_callback hfa384x_cmd_callback.cold prism2_tx_80211 prism2_tx_80211.cold hostap_tick_timer last_inquire.48 hostap_passive_scan hostap_passive_scan.cold hfa384x_cmd __key.36 hfa384x_cmd.cold prism2_hw_shutdown prism2_hw_shutdown.cold hostap_cs_suspend hostap_cs_suspend.cold prism2_detach prism2_reset_port prism2_reset_port.cold prism2_hw_enable prism2_hw_enable.cold hfa384x_set_rid hfa384x_set_rid.cold prism2_hw_reset prism2_hw_init2 prism2_get_version_info hfa384x_get_rid prism2_check_sta_fw_version prism2_hw_init2.cold prism2_hw_config hostap_cs_resume hostap_cs_resume.cold prism2_download_volatile hostap_cs_probe __func__.50 __func__.49 __key.42 prism2_pccard_funcs prism2_download_aux_dump_proc_ops prism2_download hostap_bap_tasklet handle_reset_queue __key.43 prism2_interrupt prism2_download_genesis prism2_hw_reset.cold hfa384x_get_rid.cold prism2_get_version_info.cold prism2_check_sta_fw_version.cold last_magic_err.38 prev_stuck.39 prism2_interrupt.cold last_inquire.40 hostap_tx_callback hostap_tx_callback.cold hostap_bap_tasklet.cold __UNIQUE_ID___addressable_cleanup_module400 __UNIQUE_ID___addressable_init_module399 hostap_cs_ids __UNIQUE_ID_dev_template397 __UNIQUE_ID_dev_templatetype396 __param_dev_template __param_str_dev_template __param_string_dev_template __UNIQUE_ID_dtim_period395 __UNIQUE_ID_dtim_periodtype394 __param_dtim_period __param_str_dtim_period __param_arr_dtim_period __UNIQUE_ID_beacon_int393 __UNIQUE_ID_beacon_inttype392 __param_beacon_int __param_str_beacon_int __param_arr_beacon_int __UNIQUE_ID_iw_mode391 __UNIQUE_ID_iw_modetype390 __param_iw_mode __param_str_iw_mode __param_arr_iw_mode __UNIQUE_ID_essid389 __UNIQUE_ID_essidtype388 __param_essid __param_str_essid __param_string_essid __UNIQUE_ID_channel387 __UNIQUE_ID_channeltype386 __param_channel __param_str_channel __param_arr_channel __UNIQUE_ID_mtu385 __UNIQUE_ID_mtutype384 __param_mtu __param_str_mtu __UNIQUE_ID_ignore_cis_vcc381 __UNIQUE_ID_ignore_cis_vcctype380 __param_ignore_cis_vcc __param_str_ignore_cis_vcc __UNIQUE_ID_license379 __UNIQUE_ID_description378 __UNIQUE_ID_author377 .LC205 alloc_etherdev_mqs prism2_update_comms_qual yield __check_object_size rtnl_unlock hostap_set_hostapd _copy_from_user hostap_set_encryption skb_put pcmcia_disable_device hostap_remove_proc consume_skb __this_module memmove hostap_set_auth_algs queue_work_on hostap_80211_get_hdrlen hostap_set_multicast_list_queue unregister_netdev skb_dequeue hostap_add_interface pcmcia_unregister_driver hostap_free_data cleanup_module param_array_ops dev_alloc_name memcpy kfree enable_irq seq_lseek add_wait_queue timer_delete net_ratelimit __wake_up hostap_set_word _raw_spin_lock_irqsave _raw_spin_lock fortify_panic hostap_info_process __fentry__ init_module dev_addr_mod __x86_indirect_thunk_rax lib80211_crypt_info_init _printk hostap_set_string schedule_timeout hostap_set_antsel __stack_chk_fail refcount_warn_saturate _raw_spin_unlock_bh hostap_remove_interface strnlen netif_device_detach netif_device_attach skb_queue_tail __mod_pcmcia__hostap_cs_ids_device_table hostap_setup_dev __list_add_valid hostap_dump_rx_header hostap_80211_ops pcmcia_loop_config skb_pull add_timer strstr hostap_init_data wireless_send_event __tasklet_schedule free_netdev __list_del_entry_valid pcmcia_write_config_byte __mutex_init mutex_lock_interruptible current_task _raw_spin_unlock_irqrestore netif_tx_wake_queue hostap_init_ap_proc skb_queue_purge __x86_return_thunk hostap_set_hostapd_sta default_wake_function __init_waitqueue_head hostap_init_proc __netdev_alloc_skb param_ops_string jiffies hostap_dump_tx_header seq_read pcmcia_request_io lib80211_crypt_info_free mutex_unlock init_timer_key hostap_check_sta_fw_version __const_udelay seq_write remove_proc_entry hostap_get_porttype netif_carrier_off seq_printf _raw_spin_lock_bh rtnl_lock remove_wait_queue pcmcia_read_config_byte seq_release_private pcmcia_register_driver proc_create_single_data kmalloc_trace tasklet_setup param_ops_int hostap_80211_rx hostap_set_roaming hostap_handle_sta_tx_exc _raw_spin_unlock cc_platform_has seq_open_private pcmcia_enable_device hostap_info_init __kmalloc kmalloc_caches system_wq disable_irq pcmcia_request_irq flush_work pcmcia_dev_present register_netdevice                  	  C          0  Q          	  q          0            	                                      0            	             S         ?  c                   o                    ,           0                                                                               	           0  (           W         ?                             ?           ?           ,  =                  ^         ,  k                   p                    ,                                        	           	           0           	           ]  +         0  1         	  =         :  G         0  Q         	                                               Q                                   0           	              z            .                                                   O             +            a         0  f           q         	                                              0           	                       	                             T           0  !         	  ;                   C         D  W            '       b         D  v            4                D              A                D              N                D              [                D              g                D              s                D  0                   ;         D  O                   Z         D  n                   y         D                              D                              D                              D                              D  		                   	         D  (	                   3	         D  G	                   R	         D  f	                  q	         D  	            !      	         D  	            2      	         D  	            ?      	         D  	            K      	         D  
            W      
         D   
            e      +
         D  4
         0  C
         Y  P
            a
         	  
         '  
           
           
            z      
            
         E             %         0  1         	  8         Y  I            Q         	           ?                             ?                             0                               1         	  X         X  $       ]         L           E                                  Y                       0             !
         	  <
                  H
                  [
                  ~
           
         R  
         R  
         7  
         0           -           	  X         0  j         S           	           ?           S           0  '         0  1         	  e         @  n         0           '           0                                  	  !           >            '      S         ,  z                       `                             D                          	           0  '         S  a         	                         u               S           W              L      )         R  ?         0  S            L      a         	           ?           ?  !                  :         0  W            @      \           l            x      w                    	                             7                       7                             0  !         	  b         ]  ~         H                                5               ?           ?           0                      	  ;         ]  P         H  X                  ]            6      z         0                      	           ?           7           7  1            I         7  X                  ]            4      n            (      |                       @                                                                         	                             X         	         L  K           s                    ,                      ,           0                         C         ,  ]           j                    '                      	  >           -           z         ,                      R                                        0  !         ,           S           R              	               7  ,             
      A                  O         7  z         8                                                   	           7           	            7           7  )         7  @         !  U         Y  c                     7           	            	           7  2            1      >         !  M            H      n            r      v                           0           	           +                   2                            2         X         7         L  y         	                                      3                       +                                          ,  6          +          ]          +          m          G  u                         	                ,                                                              '  +!         ,  T!         0  b!           }!         ?  !            !           !         ,  !         +          C"           n"           "            
      "           "            Q	      "         	  (#           0#            	      e#         0  #            w	      #         	  #            	      #         0  #           $         	  A$            $            $         \  $         \  $         \  $         \  $         \  $         ;  $           $           %         /  %         /  $%         /  5%            H%            (      M%         A  U%            m%            %            %         1  %            %            %            &            #&            Z&         '  ~&            &            &            &            &            &         &  &            '           3'         0  A'         	  `'         0  ~'            0
      '            D
      '           '            X
      '           '         0  '         	  (            t
      q(         0  (            
      (         -  (         0  (         	  (            
      (           G)         *  x)         0  )         E  )           )            `      )           )         <  )         S  *           )*         <  7*            
      Y*           a*         	  *            Y+                  i+            2      +                  +         0  +            6      +            :      +            =      h,           ,           ,                  ,           ,            [      ,            t      -                  -                  -           &-                  :-           E-                  Y-           x-           -            -            )      -           -         P  -                  .            
      .           ".            
      1.            E.           M.            J      a.           i.            0      .         X  L       .         L  .                  e/            y      j/           r/            w/                  40            
      X0           e0            k
      0            W
      0           0           1           &1            C
      t1           |1            (
      1           1            

      1           1                  1           1                  1           1         B  2           2                  22           :2            d      W2           _2            
      {2           2                  2           2                  2                  2         	  2         0  2         0  Q3         	  c3            
      o3         0  3         	  3                  3         0  3         	  3                  4           64         *  g4         0  4                  4         E  4           4         <  4            d      4         S  5            >      45           <5         <  n5           v5         <  5           5         	  5                  5                  5                  6         	  6            g      6         >  6         0  6            B      6           7         	  %7           87         R  O7           7            M!      7                   $8                  )8           A8         0  l8           8           8         '  9            !      #9         R  z9                   9           9           9         '  	:         ,  :           l:         R  :           :         R  :            :         R  :                  ;           $;         '  l;           ;            ;         R  ;           ;            9       ;         R  ;           ;         	          ;         7  ;           <         Y  *<            Y<           <                   <            x       <         R  0=         %  L=         7  v=         	          =           =                   =           =         R  =           =                  =           >         0  #>           5>           ?>         -  [>         	          f>            M       >                   >            X      >           >                  >           >         7  >         	          >                  
?                  ?                  $?                  S?            X      X?           s?            `      ?           ?                  ?           ?            !      ?         	  ?            !      ?            @         R  )@            G@         5  ]@            l@            @            @            @           @         R  @                  @           A            "      A         	  sA           B            B            ^"      C         0  ,C         5  EC            C           C         %  5D            K#      ND            D           D         S  >E         5  _E            {E            E         R  E           <F           sF         S  F         5  $G            G         R  G           &H         %  0H         %  HH            kH         R  H            /"      H         $  I         R  I            p      %I           6I         R  @I                  EI           eI         R  vI                  I           I           I         R  I                  I           I         R  I            @      I           J         R  -J                  ?J           KJ            \J         R  jJ                  oJ           J            p      J           J                     	                       
          J                       <            W                    o                                 @                                                                                                        c                                                                                                     0                  X                                                      %           .            =      =                    B           G            #      L         	  k            w            |         	           ?           S           0           	  .         (  ;                  @           J         ?  a         (  n                  t           z         0              P                             
                                                                 x                                                          [
                  H                                     	                    	  +                  O           b                                                                                                                                 '         0  2                  7           D            >      L            W      V                  [           g            u            !                                               <
                                               !                                                                                              0                                             (  $            0       +                  0           5                  >            0       E            u      J           O                  ^         ?  v         (              0                                                               ?           (              0                                                               ?                                 H                          (  ,            x      1           6            ]      ?                  D           I            ]      b         ?           (                                           ]               ?              ]                  ]               7                               4         0  ;                  B            `      G                                                                                                           -  	                              8                                   '                  ,           1                  >            x	      C           H            2      R                  W           ^         7  r         !              (	                             X	                          7                                
                                                                             +!      	            	      	           	                   (	            	      2	           :	         '  Q	                   ]	            
      b	           g	            "      ~	                  	                  	           	            6#      	            
      	           	                  	            
      	           	         7  	           
         $  )
            "      0
            #      :
            8      ?
           D
            '      N
            h      S
           X
            '      j
                  o
           t
            '      ~
                  
           
            b(      
                   
           
                  
           
            N)      
            |3      
            N)      
            (      
           
            N)      
            (      
           
            _2                  h      
                       ".                        $           )            -      3                  8           =            -      G             
      L           [            .      j                  o           t            .      ~            >                             .                  8                             .                  h                             .                                               E-                  .                                               .                  d-                                    \                             +      &                  +           0            -      @                  E           J            i.      Z                  _           d            M.      t            8      y                       -                  
                             .                  
                             .                  h
                             +                  +                  *                                               -      
                  
           

            1      
            h      #
           (
            1      9
            @      >
           C
            .      M
                  R
           W
            .      a
            
      f
           k
            0      {
                  
           
            w.      
            X      
           
            .      
                  
                  
           
            "      
            2      
            h3      
            "      
            2                 4            "      A            2      H         	  k                  p                       "                                                                                                    &            \      q            @      v                    ?              @                                                       ?                    (            p      -           7         ?  N            2      \                  a                    0           	                                                          X                  L           	                      0                           	                                       0                  =           J                    O           X                   ]           d                  k                  p         "  |                              `                                      	                                        \                          "                  )            x      -                  4            h      8                  ?            p      C            0      J            @      N            3      U            H      Y            "      `            P      d            @'      k            X      o            0      v            `      z                              8                  2                  0                  '                                                                                                                                  3                  (                  (               )                                                                      ;                  @           K                  Q            <      n            A                                                                          `
                                 M              p               M           V                             M              P               M  )         	          L                  X         3  k         
                             =                             =           7           !                                         F                                                     ^  #            /                  6                  ;           C         &  R                  Y                  ^           f         #               7               [           U                      ,  4                  9           R         (  b         ?  r         (              h                          ?           ?           ?              2                                                       #         C  ,         C  4         4  G                   N            (      S         K  [         .  e            |            "                                                        0           	                                                            7                  H                  M                                                                      %            @      *           N           X                  f            X      k           u         ?                                                             \*                                            0                                                  /            @      5           ?                  F                  K                    Z                                     "                  2                  h                                                          3                                   -            3      7            2      >           P            X      Z           d            5      s                  |                       |3                  =4                                               =4                                            <              =4                                            0  (                  :           B           M            0      R           g            6      r                  w                       6               	              O                             |3                                            -            0           	                    2           T         W           W              %            _            X      i                                                  0  !                   &            9             {>      C                   H            M             ;      j                   o            x             f>                   8                               <                                                  )8                                                  <                   (                               9      !                  !           
!         	          )!                  0!         7  7!         	          M!            8      W!                  \!           o!            7      !         7  !                  !           !            |      !         R  !            :      !                  !           !                  !           !         R  !            <      "                  "            "            8      /"           9"                  E"           Y"            ^"            G      l"                  w"                  ~"                  "                  "                  "                  "           "                  "            $      "                  #            /      !#                  &#           5#                  F#           K#            A      ]#            0      q#           x#            5D      #                  #            4      #            *                                                                           P                                                                     (                   0                   8                   @                    H             0      P             P      X                   `             p      h                   p                   x                                 K                   {                                      `
                   0                   P                   0                    
                                                         
                   0                                                          `                   `                                                                                                    (                  0                  8                  @                  H            "      P            #      X             $      `            @'      h            '      p            (      x            `*                  2                  P3                  G                                                      3                  3                  5                   6                                                       7                  ?                  A                    O
                   
                                      d                                                                                                !      $             	      (             !      ,             8      0             9      4             J:      8             :      <             =      @             A      D             B      H             B      L             B      P             C      T             E      X             G                  9                  G      `            P                  Y                   g                  o      P            {      X                  `            Y                                                                                                 	            Y      @	                  H	                  P	            Y      	                  	                  	            Y      	                  	            #      0
            /      8
                    
            G      
            6      
            C      
            K                   f      (            z      p                  x                                                                                                                         Y      `                  h            @       p                                                                  Y      
            .      `
            6      
            @                   M                                                      P                   0                                 9                                       I                            P         N          X                           N                                     N                                               0         N          8            @                                                          6                              (                    0                     8                     H             @      P             `      X                     `                     p                   x                                                                                                                                  6                                                                                                                            @                                     N                      `                  H                           (         N          8         	                         @                                      =                   '#                   (                   4                   N7                   9                    rA      $             a      (                   ,                   0             M      4                                 B                    p                                                                                                 *                   F                          $             `      (                   ,                   0             3
      4             $      8                   <                   @             
      D             W      H                   L             &      P             m      T                   X                   \             >      `             9      d                   h                   l             y      p                   t                   x                   |             S!                   d#                   #                   2'                   _'                   '                   p(                   (                   w)                   +                   2                   2                   n3                   3                   f4                   6                   @8                   >                   C                                      y                   &                   3                                                                                                                                                            G                    P                    u                                                                                                            $                    (                    ,                    0                    4                    8                    <                    @                    D                    H                    L                    P                    T                    X                   \                   `                   d                   h                   l                   p                   t                   x                   |                                                                                                                                                                     
                                                                                                                                                                                                                                                                           /                   0                   K                   P                   W                   Y                   b                   j                   o                   p                                                                                                                                                                                             $                  (                  ,                  0                  4                  8            V      <            W      @            X      D            Z      H            \      L            ^      P            `      T            e      X            j      \            p      `            w      d                  h                  l                  p                  t                  x                  |                                                                                                                                                                               &                  '                  2
                  3
                  8
                  @
                  T
                  `
                  g
                  s
                  
                  
                  
                  
                  	                  
                                                                                                                                                                                      "                  $                  )                  0                  M                  P                  W                   \      $            `      (            d      ,                  0                  4                  8                  <                  @            &      D            0      H            7      L            9      P            ;      T            E      X            F      \            G      `                  d                  h                  l                  p                  t                  x                  |            
                   
                  '
                  )
                  +
                  /
                  0
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                                    
                                                                        %                  +                  .                  N                  Q                  S                  U                  W                  \                                                                                                                                                                                      !      $            +      (            0      ,            6      0            ?      4            l      8            m      <            r      @                  D                  H                  L                  P                  T                  X                  \                  `                  d                  h                  l                  p                   t                  x            
      |                                                                                    C                  G                  L                  N                  P                  R                  W                                                                                                                                                                                                                                                            W                  `                  g                  i                  k                  m                  q                  z                  ~                   4                  5                  6                  8                  :                  <                  >                  C                   W      $            `      (            g      ,            l      0            q      4            u      8            y      <            2      @            3      D            5      H            7      L            9      P            >      T            }      X                  \                  `                  d                  h                  l                  p                  t                  x                  |                                                                                     '                  (                  )                  -                                                                                                                                                                                     	                  
                  u                  v                  w                  y                  ~                                                                                                                                                                                                                                                                                                                                            $                  (                  ,                  0                  4                  8                  <                  @                  D                  H                  L                  P                  T                  X                  \                  `                  d                  h                  l                  p            	      t                  x            
      |                                                                                                                        >                  ?                  D                                                                                                            :                  ;                  =                  B                                                                                                                                                                  G!                  J!                  K!                  M!                  O!                  Q!                  S!                   X!                  "                  "                  "                  "                  "                  "                  "                   "      $            "      (            a#      ,            b#      0            d#      4            i#      8            #      <            #      @            #      D            #      H            #      L            #      P            #      T            #      X            #      \            #      `             $      d            $      h            	$      l            $      p            
$      t            $      x            $      |            $                  &                  &                  &                  &                  &                  &                  &                  &                  ('                  )'                  *'                  ,'                  .'                  0'                  2'                  7'                  @'                  G'                  H'                  I'                  \'                  ]'                  _'                  d'                  '                  '                  '                  '                  '                  '                  '                  '                   '                  '                  g(                  j(                  l(                  n(                  p(                  u(                   (      $            (      (            (      ,            (      0            (      4            (      8            (      <            (      @            (      D            (      H            (      L            (      P            (      T            (      X            j)      \            n)      `            o)      d            q)      h            s)      l            u)      p            w)      t            |)      x            ]*      |            `*                  g*                  l*                  n*                  p*                  t*                  u*                  |*                  +                  +                  +                  +                  +                  +                  +                  +                  2                  2                  2                  2                  2                  2                  2                  2                  2                  2                  2                  2                  3                  <3                  =3                  ?3                  D3                   P3                  V3                  W3                  m3                  n3                  s3                  3                  3                   3      $            3      (            3      ,            3      0            3      4            3      8            3      <            3      @            3      D            3      H            3      L            3      P            Y4      T            ]4      X            ^4      \            `4      `            b4      d            d4      h            f4      l            k4      p            5      t            5      x            5      |            5                  5                  5                  5                   6                  6                  6                  6                  6                  6                  6                   7                  7                  	7                  7                  
7                  7                  7                  7                  18                  78                  88                  :8                  <8                  >8                  @8                  E8                  	>                  
>                  >                  
>                  >                  >       	            >      	            >      	            E?      	            b?      	            ?      	            ?      	            ?      	            ?       	            ?      $	            ?      (	            ?      ,	            ?      0	            ?      4	            @      8	            @      <	            @      @	            @      D	            @      H	            @      L	            @      P	            @      T	            @      X	            @      \	            @      `	            @      d	            @      h	            @      l	            @      p	            @      t	             A      x	            A      |	            A      	            A      	            &A      	            0A      	            
C      	            C      	            C      	            C      	            J      	                    	                   	                    	            7       	            D       	                   	                  	            2      	            K      	            Q      	            T      	            u      	            v      	                  	                  	                  	                  	                  	                  	                  	                  	                  	            s      	            x       
            y      
            ~      
                  
                  
                  
                  
                  
                   
                  $
                  (
                  ,
                  0
                  4
                  8
                  <
                  @
                  D
                  H
            $      L
            "      P
            #      T
            $      X
            &      \
            +      `
            P      d
                  h
                  l
                  p
                  t
            +      x
            ,      |
            -      
            /      
            1      
            3      
            8      
                  
                  
            5      
            n      
            o      
            q      
            v      
            ~      
                  
                  
                  
                  
            {	      
            	      
            	      
            	      
            	      
            4
      
            x
      
            
      
            
      
            
      
            G      
            N      
            P      
            R      
            T      
            U                   V                  X                  u                  v                  w                  y                  {                  }                         $                  (                  ,                  0                  4                  8                  <                  @                  D                  H                  L                  P                  T                  X                  \                  `                  d                  h                  l                  p                  t                  x                  |                                                                                                                         ,                  4                  9                  <                  =                  B                                                                                                                              -                  ?                  F                                                                                                                              
                                                                                           )                   
                   
                                                                                                                                      !      $            !      (            "      ,            "      0            	"      4            "      8            
"      <            "      @            "      D            "      H            %"      L            &"      P            ("      T            *"      X            ,"      \            ."      `            3"      d            #      h                    l                                                                                                                 $                   #                    P3      (                     0             `                                                                                                  
          8         
          P                     .symtab .strtab .shstrtab .note.gnu.build-id .note.Linux .rela.text .rela.init.text .rela.text.unlikely .rela.exit.text .rela__mcount_loc .rodata.str1.8 .rodata.str1.1 .rela.smp_locks .rela.rodata .modinfo .rela__param .rela.retpoline_sites .rela.return_sites .orc_unwind .rela.orc_unwind_ip __versions .rela__bug_table .rela.data .rela.exit.data .rela.init.data .rela.gnu.linkonce.this_module .bss .comment .note.GNU-stack .BTF .gnu_debuglink                                                                                         @       $                              .                     d       <                              ?                            J                             :      @               ~     H?      -                    J                     }K                                    E      @               X     H       -                    Z                     K      #                             U      @                    <      -                    n                     ?o                                    i      @                    0       -   	                 ~                     Ko                                   y      @                          -                          2               @q      `                                   2                     W                                                       \                                    @                     (      -                                         `      W                                    @                    H      -                                                                                                 `      @                                   @                	            -                                               8                                    @                     P      -                                         ص                                          @               P
           -                                        ȶ                                                       p      p                                  @                    J      -                    %                                                        5                    `                                    0     @               ]     0       -                    F                          d                              A     @               ]            -                     Q                                                        L     @               ^            -   "                 a                                                        \     @               ^            -   $                 q                                         @               l     @               ^     0       -   &                                           $                                   0                     P                                                                                                                  G                                                  B                                                         B            .                    	                      c     Q                                                   _                                  0	*H
01
0	`He0	*H
1a0]080 10UDebian Secure Boot CA2(oe:B&C0	`He0
	*H
  {bTI0b:0=SAw[<^b8+\Dj91%4N0.ILA,RZd2PH>[c~gT֧]8?sYLʇD*S
nPK`D9׳{dv#/suK8V
f#j|[H
-o@YPki_Tho*JTxlb 
o         ~Module signature appended~
                                                                                                                                                                                                                                                                                                                                                                                            N                     h                                             D                    @                    8                                                                                4               2                    D                    _                    |     L                                        X                    T                                        H               	     p                                   ,                    D     h               ]     l               t     x                                        |                                        t                                        \                    `                    d               $                    A                    _                    |                                                                 P                                        `               	     \                    p               >     h               Y     d               s     l                    x                                        t                                        ,               	     0               -	     (               L	     $               m	                     	    &       	       	   *         (      	    /              	    ;       	       	    D              	    R       <       
                   
           $       
                     :
                    W
    
                r
                    
     #               
    
               
     $               
     6               
    
 @                   7               ;     M               ]    
 |              }     N                    `                   
                     a                    v                   
                2     w               M                    j    
                                                            
                                                        
    
               (
                    C
                    `
    
 p              {
                    
                    
    
 d              
                    
                        
 4              -                    H                    e    
                                          	                  
                    
                                     
                                  1     %              J    
               a     &              }     8                  
                     9                   C                  
                     D              
     R              '    
 <               ?     S              V     `              o    
 l                    a                   q                  
 0                    r                                      
 `               D                   f                       
                                                          
 $                                  +                   M    
                m                                          
 (                                                        
 t                                                     7    
 L              N                   p                       
                                        :                  
 x               6                L                  o                                                     5 (      8          5       8          5       8          5 H      8       $   5       8       =    `             J            "       \    "       "       n                 |   	         9                             5       8          5       8          5       8          5 `      8           `      z                      +    @             H    P             `   5       8       y   5       8          5 @      8          5        8          5 h      8          5       8          5 0      8       
    0      i      !   C                 *   5       8       C                 P          ]       b    %                @(               5       8                 )          5       8          5 P      8          5       8       )    1            =          A       U   5        8       m    [                 5 8       8          5         8                           5 p       8                                                 @                  `                                                                    (                  4                  @                 L    0             X    P             d                   {   1                   3                                              (           h                7                 ?   7                 d   9                f   /              }   /                  9                  /                 /                /                / 
               /               ?   /               h   ;         H                           ; `       H                                                                        
                    ;              "     O              B    
               `     P                   f                  
 X                  B                 B                 B                 B                  C      3           {      "       )    @C      S       9    C      V       J                 `     D      %      o                  y    0E      y          / @                 E      ,                 u                (           0      W          /                                           (          /                 /                     g              8     x              U    
               p     y                                     
                                                         
               +                   H                   g    
                                                         
                                                            
               0                    O                    p     
                                                            
                                                        !    
                #!                   =!     "              Y!    
               s!     #              !     1              !    
                !    G      +       !    G             !    H             !    0H             "    PH      1       2"   /              ?"   5       8       W"          q       i"          3       {"   / @      x       "   C                 "   5 x      8       "    +      B       "   C                 "                  "          
       "    @             "                   #    pW             #    W      &       #    W      '       0#    W      J       B#    0X      s       S#    m      "       i#    X            z#                 #                 #    pZ      &       #    Z             '    Z             #    Z      %       #    [      S       #    p[      $       #    [      $       #    [      %       #     \      %       $    0\      %       :$    `\      $       V$    \      %       t$    \      $       $    \      ,       $     ]      %       $    P]      %       $    ]      %       $    ]      %       $    ]      %       $    ^      $       $    @^      %       %    p^      %       %    ^      '       6%    ^      '       J%     _      ,       X%    0_      8       e%    p_      8       r%    _             %    P`      3      %                 %                  %    '             %    c      q      %    =      /       %    f      M           `f      4       &    l      "       %    f      V       &     g      x       &&    g      Q      4&   5       8       M&   /       0       V&                   _&          @       i&                  s&    @              |&    `             &   5       8       &   5 X      8       &   5        8       &   5       8       &                "                  '    @                              '    p      i                 #       '          "       5'          ]       B'    3      -       Z'                 e'           h       m'    `             '    `             '                 '                 '   /              '          (       '   /               '   /                '   /               '   /               '   /               	(   /               '(   /                6(   / `              K(   / @              Z(   /                j(   /                x(   /               (   /               (   /               (   /               (   / `              (   / @              (   /                (   /                )   /               0)   /               Q)   /               f)   /               s)   / `              )   /                )   / @              )     %              )     2              )     D              )                    )     E              *     U              0*                    J*     V              d*     f              *     <               *     g              *     {              *                     *     |              +                   0+     H               L+                   k+                   +     T               +                   +                   +                    +                   ,                   ",                    <,                   \,                   ~,                    ,                   ,                   ,    
               ,                   -                   -     0               8-                   S-     
              p-     $               -                   -                   -                    -    P      y       -    P             -          =       .    w      "       1.                  =.                 O.   /               _.   / (             o.          5       .          1       '    p             .           @       .                 .    p            .   5 p      8       .          r       /                 !/    q
      ,       3/   5 8      8       K/   5        8       c/    
             u/          u       /    @      
       "    P             /                  /    @      r       /   /               /   /                /   /               /   /               /   /               0   / `              0   / @               0                 10                V&    	              _&    	      @       i&     
             s&     
              @0          -       #    p      S       #    Ч      $       #           $       t$    0      $       $    `      %       $          %       $          $       $          %       %           %       %    P      '       6%          '       J%          ,       T0                 a0    p      *       X%          8       e%          8       n0           J       y0    p      J       0          J       0          J       0    `      ,       0          %       0          %       0          &       0                  0    @             0    `      x      1                 21          x       @1    `             [1    L      '       {1                1                1    s      D       1          s      1          /       1    0      /       1          "       1    `      Q       2          #       )2    +      M       =2    `	      @       H2    x      8      _2          	      p2   5       8       2    @
             2   5       8       2                2          1       2          ~       2    >      "       3          h       3    `             /    `             "                 $3   / p             23     	      (       ?3   /              '   /                '   /               L3   /               Y3   /               '   /               '   / `              	(   / @              '(   /                K(   /                Z(   /               j(   /               x(   /               (   /               f)   / `              s)   / @              )   /                f3                   l3                   3     %              3                    3                3    w             "                   #                 3                 3                 4                 4          G       #          $       #           $       n0    0      J       y0          J       0          J       0           J       0    p      ,       0          %       0          %       #4           O      44   5 P      8       L4    P      y       \4          *       u4                  4          
      4                4          -       4          <      4   /        0       4                  5     
      @      5   5       8       -5          x       E5           \       Z5          =       l5          {       ~5    @      C       5          (      5          9      5           
      5    }             5    `      h       5                 /                  "    @             6   / P             6          (       &6   / `      P       /   /               /   /               /   /               /   /                /   /                0   /               0   /               f)   / `              s)   / @              56                   :6     v
              "     Z
              ?6     &              ^6     ;              6                   6     <              6     S              6                   7                 7    `      4       n0          J       y0          J       0    @      J       0          J       0          ,       0          %       0    @      %       !7    p      %       ,7   /              :7          T       L7    @      n       e7          %      t7                  7                  7          .       7   /              7    @             7           (       7   /       P       7   /                /   /                /   /               /   /               /   /               /   / `              0   / @              0   /                7   /               8          7       8           J       )8                  38                   >8    P             L8                 _8          9       l8          0       8    @            8          /       8         g      8    `      P       8   5       8       '    @             8   /       (       8   / @      (       8    '      <       8    @     -      56                     8     T              9     d              39                    M9     e              i9     w              9                   9     x              9                   9                   9                   :                   0:                    L:                   j:                   :                   :                   :                   :                    :                   
;                   $;     P              9;                   O;                   g;                   };                   ;                   ;                   ;                   ;                   <     8              ,<                   G<                   d<     D              <                   <     !              <     h              <     "              <     /              <     (              
=     0              =     ;              6=     t              K=     <              a=     H              y=     4              =     I              =     T              =     \              =     U              =     a              =                   >     b              ,>     p              F>                   ^>     q              w>                   >                    >                   >                   >     ,              
?                   .?                   Q?                   r?                   ?                   ?                   ?                   ?                   @                   ?@                   ^@                   @                   @                   @                   @                   @   5 0	      8       A   5       8       *A   5       8       BA   5 	      8       ZA   5 h	      8       rA   5 	      8       A    p           /    0             "    P             "                   A                   A                   A                   A                   	B     ,              $B                    =B     -              XB     >              uB                   B          k       B               B   5 (      8       B    c      C       B    0           C   5 
      8       C   5 
      8       5C   5 
      8       MC   5 
      8       eC   5 H
      8       /    p             "                 "                 '                 "     7              }C     ?              C     O              C    
                C     P              C     `              D    
               D     a              @D     z              eD    
 P              D     {              D                   D    
 8              D                   E                   %E    
 ,              CE                   bE                   E    
 D              E                   E                   E    
 h              
F                   $F                   @F    
 H               ZF                   yF                   F    
 \              F                   F                   F    
 T               	G         5       "                   G     
              :G     #              \G                    |G     $              G     <              G                    G     =              H     V              ,H     x               OH     W              tH     r              H     l               H     s              H                   I     `               4I                 OI                 oI          t       I   5       8       "                 I   5 `      8       I   5       8       I                  /                 I    #            J    $            !J    P$            4J    0$            AJ    P%           NJ                 XJ                 bJ    `             lJ    @             vJ                   J     (     t       J   5       8       "    p             J    (            J    @)     M       J    (            J    (     V       J                 K                K                !K                @                4K                     ,                CK                     \K   /               }K                         E             9    P            K                     K    .      	      K    @V      ^       K                     ::    p     E      K                     K                     K    V             L                  L                     (L    ,             :    	            ;L                         H             OL                     `L                   
    0      0      L                     L                     L                     E                ?                L    @             L    P-             L                     L    )            M                     =9    0             M                     <                6                 @=         L       'M   A               5M    @      u      !                     BM    p      '       OM                     ]M                     t                   sM                                       M    p0      O       M                M                     M                     M    @             
           *       M          M      N                     N                     1           "       6N                               h       CN         G       VN          )      lN                     ~N                   -                 N    @9             N                     N                     N                     N           c      N    *     T       N                     N                     N                     
O                     %O                 ;O                     =    `     <           P      2       c!    pN      ,       PO                     cO                     rO                     n<    @            O                     O                     O                     O                     D         `       O          |       O    `0             O   /              P                     %P    6      x       5P    p6      F       6H    p"     r      CP   / @      0            S            KP    p            `P                     wP                     P                     P    F      l       P    @A      M       P    0      9       P                     `              P                     P                     P                     	Q   	         9       Q                          O            !     O             %Q                     G    @!     .      ?Q            B       ]Q                     P>    p     ~       wQ                     Q                     Q                     Q    p*            Q                     Q          p       Q                     R                     E                R                     :                 5R                 DR                     LR                  lR                     yR                     R                     fG                o          *                       R                     R                     B         g      R                     R         Y       R                     R                     A         $       R    +             
S                     )S    2            BS    к            F    @            TS    P      ,       iS                     sS                     S                     S    p      
       
D         ?       S                     [?         3       >         X       S                     S                     S                     6                 (-          U       S          S      <                ,    Њ      r       
T                     T     V      7       +    p      :       .T                     C    p     =       CT                     ]T                     lT                     uT                     T                T                  T    @G      P       T                     T                     T                     T                     U                      U    @F             3U                     F    P            =U         G       PU    =            (@                [U    V      $       kU                     zU                     U          s       =         K       g    P                        +      U                     U          q       U                     U                     U    P             U                     U                     V                     _    O      <       JF    0            V                     )V                 9V                         D       P      KV                     RV                     *          $       _V    7      _      *           c       sV                     V                V                     V                     V    P6             V                         @<                       R      V                     V                 /E    P     '       V                     V          W       W                  W                     >         ;       4W                     HW                     j
                  [W                    0             nW                     W                     W                     W                     W                 W                     7M          &       W                     A          <       I          :       >    `     "       L                     *    p             L    E              X                     X          E      )X                     8X    U                 P      3      #     H            PX                     YX     F             jX                 0X                     X    /             X                     X                     X                     X                     X                     X                     y          $       *    0             3                 H    0      P           0             X                     Y                         `9      a       'Y                     :Y    4             IY                     bY                     qY                     Y                Y    0      J       Y                     T          <       Y    0            z      R            Y          -       Y                     Y                     Y                     Z                 Z                  $Z                     q    G      $       <Z                     RZ    `F      m       aZ    5      q       {Z         8       Z    @      ]      z-           R           #            
                     P      0       Z                 @    
            .B    `     5      ;    
     x       )                 9               <                 Z                     Z                     Z    P+             Z    -             Z    9      	      [   =         H       %[    P       B       B[                        /                ,,                T[    05             h[                 !    N             |[                     [                     )    @             [          (       oD                [                     [                     [                     [                     [                     \                         `%      R       \                     3\    p             ?\    @             P\                     c\    *     &       {\    @7      |       P    A             \                     \                     \     9             \    U             
    P                 0;            \                     W                 \                     ]                     
]                     ]                ']                     <]                     I]                         N      8       X]    :      D       i]                     a
          k       v]                     ]                     ]   = `       H       .;    `
            q;    
     J        __crc_mmc_command_done __crc_mmc_request_done __crc_mmc_start_request __crc_mmc_wait_for_req_done __crc_mmc_cqe_start_req __crc_mmc_cqe_request_done __crc_mmc_cqe_post_req __crc_mmc_cqe_recovery __crc_mmc_is_req_done __crc_mmc_wait_for_req __crc_mmc_wait_for_cmd __crc_mmc_set_data_timeout __crc___mmc_claim_host __crc_mmc_release_host __crc_mmc_get_card __crc_mmc_put_card __crc_mmc_detect_change __crc_mmc_erase __crc_mmc_can_erase __crc_mmc_can_trim __crc_mmc_can_discard __crc_mmc_can_secure_erase_trim __crc_mmc_erase_group_aligned __crc_mmc_calc_max_discard __crc_mmc_card_is_blockaddr __crc_mmc_set_blocklen __crc_mmc_hw_reset __crc_mmc_sw_reset __crc_mmc_detect_card_removed __crc_mmc_card_alternative_gpt_sector __crc_mmc_register_driver __crc_mmc_unregister_driver __crc_mmc_retune_pause __crc_mmc_retune_unpause __crc_mmc_retune_timer_stop __crc_mmc_retune_release __crc_mmc_of_parse_clk_phase __crc_mmc_of_parse __crc_mmc_of_parse_voltage __crc_mmc_alloc_host __crc_mmc_add_host __crc_mmc_remove_host __crc_mmc_free_host __crc___mmc_send_status __crc_mmc_send_status __crc_mmc_get_ext_csd __crc___mmc_poll_for_busy __crc_mmc_poll_for_busy __crc_mmc_prepare_busy_cmd __crc_mmc_switch __crc_mmc_send_tuning __crc_mmc_send_abort_tuning __crc_mmc_run_bkops __crc_mmc_cmdq_enable __crc_mmc_cmdq_disable __crc_mmc_sanitize __crc_mmc_app_cmd __crc_sdio_register_driver __crc_sdio_unregister_driver __crc_sdio_claim_host __crc_sdio_release_host __crc_sdio_enable_func __crc_sdio_disable_func __crc_sdio_set_block_size __crc_sdio_align_size __crc_sdio_readb __crc_sdio_writeb __crc_sdio_writeb_readb __crc_sdio_memcpy_fromio __crc_sdio_memcpy_toio __crc_sdio_readsb __crc_sdio_writesb __crc_sdio_readw __crc_sdio_writew __crc_sdio_readl __crc_sdio_writel __crc_sdio_f0_readb __crc_sdio_f0_writeb __crc_sdio_get_host_pm_caps __crc_sdio_set_host_pm_flags __crc_sdio_retune_crc_disable __crc_sdio_retune_crc_enable __crc_sdio_retune_hold_now __crc_sdio_retune_release __crc_sdio_signal_irq __crc_sdio_claim_irq __crc_sdio_release_irq __crc_mmc_gpio_get_ro __crc_mmc_gpio_get_cd __crc_mmc_gpiod_request_cd_irq __crc_mmc_gpio_set_cd_wake __crc_mmc_gpio_set_cd_isr __crc_mmc_gpiod_request_cd __crc_mmc_gpiod_set_cd_config __crc_mmc_can_gpio_cd __crc_mmc_gpiod_request_ro __crc_mmc_can_gpio_ro __crc_mmc_regulator_set_ocr __crc_mmc_regulator_set_vqmmc __crc_mmc_regulator_get_supply __crc_mmc_regulator_enable_vqmmc __crc_mmc_regulator_disable_vqmmc __UNIQUE_ID_depends193 ____versions __UNIQUE_ID_retpoline192 __UNIQUE_ID_intree191 __UNIQUE_ID_name190 __UNIQUE_ID_vermagic189 _note_10 _note_9 __kstrtab_mmc_command_done __kstrtabns_mmc_command_done __ksymtab_mmc_command_done __kstrtab_mmc_request_done __kstrtabns_mmc_request_done __ksymtab_mmc_request_done __kstrtab_mmc_start_request __kstrtabns_mmc_start_request __ksymtab_mmc_start_request __kstrtab_mmc_wait_for_req_done __kstrtabns_mmc_wait_for_req_done __ksymtab_mmc_wait_for_req_done __kstrtab_mmc_cqe_start_req __kstrtabns_mmc_cqe_start_req __ksymtab_mmc_cqe_start_req __kstrtab_mmc_cqe_request_done __kstrtabns_mmc_cqe_request_done __ksymtab_mmc_cqe_request_done __kstrtab_mmc_cqe_post_req __kstrtabns_mmc_cqe_post_req __ksymtab_mmc_cqe_post_req __kstrtab_mmc_cqe_recovery __kstrtabns_mmc_cqe_recovery __ksymtab_mmc_cqe_recovery __kstrtab_mmc_is_req_done __kstrtabns_mmc_is_req_done __ksymtab_mmc_is_req_done __kstrtab_mmc_wait_for_req __kstrtabns_mmc_wait_for_req __ksymtab_mmc_wait_for_req __kstrtab_mmc_wait_for_cmd __kstrtabns_mmc_wait_for_cmd __ksymtab_mmc_wait_for_cmd __kstrtab_mmc_set_data_timeout __kstrtabns_mmc_set_data_timeout __ksymtab_mmc_set_data_timeout __kstrtab___mmc_claim_host __kstrtabns___mmc_claim_host __ksymtab___mmc_claim_host __kstrtab_mmc_release_host __kstrtabns_mmc_release_host __ksymtab_mmc_release_host __kstrtab_mmc_get_card __kstrtabns_mmc_get_card __ksymtab_mmc_get_card __kstrtab_mmc_put_card __kstrtabns_mmc_put_card __ksymtab_mmc_put_card __kstrtab_mmc_detect_change __kstrtabns_mmc_detect_change __ksymtab_mmc_detect_change __kstrtab_mmc_erase __kstrtabns_mmc_erase __ksymtab_mmc_erase __kstrtab_mmc_can_erase __kstrtabns_mmc_can_erase __ksymtab_mmc_can_erase __kstrtab_mmc_can_trim __kstrtabns_mmc_can_trim __ksymtab_mmc_can_trim __kstrtab_mmc_can_discard __kstrtabns_mmc_can_discard __ksymtab_mmc_can_discard __kstrtab_mmc_can_secure_erase_trim __kstrtabns_mmc_can_secure_erase_trim __ksymtab_mmc_can_secure_erase_trim __kstrtab_mmc_erase_group_aligned __kstrtabns_mmc_erase_group_aligned __ksymtab_mmc_erase_group_aligned __kstrtab_mmc_calc_max_discard __kstrtabns_mmc_calc_max_discard __ksymtab_mmc_calc_max_discard __kstrtab_mmc_card_is_blockaddr __kstrtabns_mmc_card_is_blockaddr __ksymtab_mmc_card_is_blockaddr __kstrtab_mmc_set_blocklen __kstrtabns_mmc_set_blocklen __ksymtab_mmc_set_blocklen __kstrtab_mmc_hw_reset __kstrtabns_mmc_hw_reset __ksymtab_mmc_hw_reset __kstrtab_mmc_sw_reset __kstrtabns_mmc_sw_reset __ksymtab_mmc_sw_reset __kstrtab_mmc_detect_card_removed __kstrtabns_mmc_detect_card_removed __ksymtab_mmc_detect_card_removed __kstrtab_mmc_card_alternative_gpt_sector __kstrtabns_mmc_card_alternative_gpt_sector __ksymtab_mmc_card_alternative_gpt_sector mmc_mmc_erase_timeout trace_raw_output_mmc_request_start trace_raw_output_mmc_request_done __bpf_trace_mmc_request_start mmc_mrq_pr_debug __UNIQUE_ID_ddebug364.19 __UNIQUE_ID_ddebug366.18 __UNIQUE_ID_ddebug370.16 __UNIQUE_ID_ddebug372.15 __UNIQUE_ID_ddebug368.17 mmc_mrq_prep mmc_hw_reset.cold mmc_sw_reset.cold mmc_wait_done mmc_init mmc_exit __UNIQUE_ID_ddebug355.23 __UNIQUE_ID_ddebug357.22 __UNIQUE_ID_ddebug359.21 __UNIQUE_ID_ddebug361.20 perf_trace_mmc_request_done perf_trace_mmc_request_start __bpf_trace_mmc_request_done mmc_do_calc_max_discard __UNIQUE_ID_ddebug379.13 __UNIQUE_ID_ddebug381.12 __UNIQUE_ID_ddebug352.24 __UNIQUE_ID_ddebug418.3 __UNIQUE_ID_ddebug384.11 __UNIQUE_ID_ddebug388.9 __UNIQUE_ID_ddebug386.10 __mmc_start_request __key.57 __UNIQUE_ID_ddebug376.14 mmc_do_erase mmc_do_erase.cold trace_event_raw_event_mmc_request_start trace_event_raw_event_mmc_request_done __UNIQUE_ID_ddebug401.8 mmc_execute_tuning.cold __UNIQUE_ID_ddebug403.7 __UNIQUE_ID_ddebug405.6 __UNIQUE_ID_ddebug407.5 mmc_power_up.part.0 mmc_select_voltage.cold __UNIQUE_ID_ddebug409.4 mmc_set_uhs_voltage.cold __UNIQUE_ID_ddebug427.1 __UNIQUE_ID_ddebug429.0 freqs __UNIQUE_ID_ddebug425.2 __func__.67 __func__.66 __func__.65 __func__.64 __func__.63 __func__.62 __func__.61 __func__.60 __func__.59 __func__.58 __func__.56 __func__.55 __UNIQUE_ID_license441 __UNIQUE_ID___addressable_cleanup_module440 __UNIQUE_ID___addressable_init_module439 __UNIQUE_ID_use_spi_crctype351 __param_use_spi_crc __param_str_use_spi_crc __bpf_trace_tp_map_mmc_request_done __bpf_trace_tp_map_mmc_request_start __event_mmc_request_done print_fmt_mmc_request_done __event_mmc_request_start print_fmt_mmc_request_start trace_event_fields_mmc_request_done trace_event_fields_mmc_request_start trace_event_type_funcs_mmc_request_done trace_event_type_funcs_mmc_request_start event_class_mmc_request_done str__mmc__trace_system_name event_class_mmc_request_start __tpstrtab_mmc_request_done __tpstrtab_mmc_request_start .LC35 .LC13 __kstrtab_mmc_register_driver __kstrtabns_mmc_register_driver __ksymtab_mmc_register_driver __kstrtab_mmc_unregister_driver __kstrtabns_mmc_unregister_driver __ksymtab_mmc_unregister_driver mmc_bus_probe mmc_bus_remove mmc_runtime_suspend mmc_runtime_resume mmc_bus_resume mmc_bus_resume.cold mmc_bus_suspend mmc_bus_shutdown mmc_bus_shutdown.cold mmc_bus_uevent CSWTCH.31 type_show mmc_bus_type mmc_release_card mmc_add_card.cold uhs_speeds.0 mmc_remove_card.cold mmc_dev_groups mmc_bus_pm_ops mmc_dev_group mmc_dev_attrs dev_attr_type __kstrtab_mmc_retune_pause __kstrtabns_mmc_retune_pause __ksymtab_mmc_retune_pause __kstrtab_mmc_retune_unpause __kstrtabns_mmc_retune_unpause __ksymtab_mmc_retune_unpause __kstrtab_mmc_retune_timer_stop __kstrtabns_mmc_retune_timer_stop __ksymtab_mmc_retune_timer_stop __kstrtab_mmc_retune_release __kstrtabns_mmc_retune_release __ksymtab_mmc_retune_release __kstrtab_mmc_of_parse_clk_phase __kstrtabns_mmc_of_parse_clk_phase __ksymtab_mmc_of_parse_clk_phase __kstrtab_mmc_of_parse __kstrtabns_mmc_of_parse __ksymtab_mmc_of_parse __kstrtab_mmc_of_parse_voltage __kstrtabns_mmc_of_parse_voltage __ksymtab_mmc_of_parse_voltage __kstrtab_mmc_alloc_host __kstrtabns_mmc_alloc_host __ksymtab_mmc_alloc_host __kstrtab_mmc_add_host __kstrtabns_mmc_add_host __ksymtab_mmc_add_host __kstrtab_mmc_remove_host __kstrtabns_mmc_remove_host __ksymtab_mmc_remove_host __kstrtab_mmc_free_host __kstrtabns_mmc_free_host __ksymtab_mmc_free_host mmc_host_class_prepare mmc_retune_timer mmc_host_class_complete mmc_host_classdev_shutdown mmc_host_classdev_release mmc_host_ida __UNIQUE_ID_ddebug302.5 mmc_of_parse.cold mmc_add_host.cold mmc_host_class __key.0 __UNIQUE_ID_ddebug305.4 mmc_of_parse_voltage.cold __key.3 __func__.1 __func__.2 mmc_host_class_dev_pm_ops .LC0 add_quirk mmc_sleep_busy_cb _mmc_cache_enabled mmc_set_bus_speed _mmc_flush_cache _mmc_flush_cache.cold mmc_select_hs400 mmc_select_hs400.cold __func__.9 mmc_remove mmc_alive mmc_cmdq_en_show mmc_dsr_show mmc_rca_show mmc_ocr_show mmc_rel_sectors_show mmc_enhanced_rpmb_supported_show mmc_raw_rpmb_size_mult_show mmc_enhanced_area_size_show mmc_enhanced_area_offset_show mmc_serial_show mmc_life_time_show mmc_pre_eol_info_show mmc_rev_show mmc_prv_show mmc_oemid_show mmc_name_show mmc_manfid_show mmc_hwrev_show mmc_ffu_capable_show mmc_preferred_erase_size_show mmc_erase_size_show mmc_date_show mmc_csd_show mmc_cid_show mmc_select_driver_type mmc_select_bus_width ext_csd_bits.1 bus_widths.0 mmc_select_bus_width.cold _mmc_suspend _mmc_suspend.cold mmc_fwrev_show mmc_runtime_suspend.cold mmc_detect mmc_init_card __UNIQUE_ID_ddebug304.11 mmc_type taac_exp taac_mant tran_mant tran_exp mmc_ext_csd_fixups __UNIQUE_ID_ddebug298.15 __UNIQUE_ID_ddebug300.14 __UNIQUE_ID_ddebug302.12 __UNIQUE_ID_ddebug296.16 mmc_init_card.cold __func__.3 _mmc_resume mmc_runtime_resume.cold mmc_shutdown mmc_hs400_to_hs200.cold __func__.8 mmc_ops mmc_attach_mmc.cold __func__.4 __func__.5 __func__.7 mmc_std_groups mmc_std_group mmc_std_attrs dev_attr_cid dev_attr_csd dev_attr_date dev_attr_erase_size dev_attr_preferred_erase_size dev_attr_fwrev dev_attr_ffu_capable dev_attr_hwrev dev_attr_manfid dev_attr_name dev_attr_oemid dev_attr_prv dev_attr_rev dev_attr_pre_eol_info dev_attr_life_time dev_attr_serial dev_attr_enhanced_area_offset dev_attr_enhanced_area_size dev_attr_raw_rpmb_size_mult dev_attr_enhanced_rpmb_supported dev_attr_rel_sectors dev_attr_ocr dev_attr_rca dev_attr_dsr dev_attr_cmdq_en .LC27 __kstrtab___mmc_send_status __kstrtabns___mmc_send_status __ksymtab___mmc_send_status __kstrtab_mmc_send_status __kstrtabns_mmc_send_status __ksymtab_mmc_send_status __kstrtab_mmc_get_ext_csd __kstrtabns_mmc_get_ext_csd __ksymtab_mmc_get_ext_csd __kstrtab___mmc_poll_for_busy __kstrtabns___mmc_poll_for_busy __ksymtab___mmc_poll_for_busy __kstrtab_mmc_poll_for_busy __kstrtabns_mmc_poll_for_busy __ksymtab_mmc_poll_for_busy __kstrtab_mmc_prepare_busy_cmd __kstrtabns_mmc_prepare_busy_cmd __ksymtab_mmc_prepare_busy_cmd __kstrtab_mmc_switch __kstrtabns_mmc_switch __ksymtab_mmc_switch __kstrtab_mmc_send_tuning __kstrtabns_mmc_send_tuning __ksymtab_mmc_send_tuning __kstrtab_mmc_send_abort_tuning __kstrtabns_mmc_send_abort_tuning __ksymtab_mmc_send_abort_tuning __kstrtab_mmc_run_bkops __kstrtabns_mmc_run_bkops __ksymtab_mmc_run_bkops __kstrtab_mmc_cmdq_enable __kstrtabns_mmc_cmdq_enable __ksymtab_mmc_cmdq_enable __kstrtab_mmc_cmdq_disable __kstrtabns_mmc_cmdq_disable __ksymtab_mmc_cmdq_disable __kstrtab_mmc_sanitize __kstrtabns_mmc_sanitize __ksymtab_mmc_sanitize __mmc_send_op_cond_cb mmc_send_cxd_native mmc_switch_status_error mmc_switch_status_error.cold mmc_busy_cb mmc_send_bus_test testdata_4bit.2 testdata_8bit.3 mmc_send_bus_test.cold __mmc_poll_for_busy.cold tuning_blk_pattern_4bit tuning_blk_pattern_8bit mmc_interrupt_hpi __UNIQUE_ID_ddebug304.8 mmc_interrupt_hpi.cold mmc_spi_send_cxd __mmc_switch.cold __UNIQUE_ID_ddebug309.7 __UNIQUE_ID_ddebug311.6 mmc_sanitize.cold mmc_run_bkops.cold __func__.0 add_quirk_sd sd_std_is_visible dev_attr_device dev_attr_vendor dev_attr_revision dev_attr_info1 dev_attr_info2 dev_attr_info3 dev_attr_info4 sd_cache_enabled mmc_decode_csd mmc_decode_csd.cold mmc_ssr_show mmc_scr_show info4_show info3_show info2_show info1_show mmc_revision_show mmc_device_show mmc_vendor_show mmc_sd_remove mmc_sd_alive mmc_sd_resume mmc_sd_init_uhs_card.part.0 mmc_sd_init_uhs_card.part.0.cold mmc_sd_detect sd_busy_poweroff_notify_cb sd_busy_poweroff_notify_cb.cold sd_write_ext_reg.constprop.0 sd_flush_cache sd_flush_cache.cold _mmc_sd_suspend _mmc_sd_suspend.cold mmc_sd_runtime_suspend mmc_sd_runtime_suspend.cold mmc_sd_switch_hs.cold mmc_sd_get_cid.cold sd_au_size mmc_sd_setup_card.cold mmc_sd_init_card __UNIQUE_ID_ddebug298.4 mmc_sd_fixups __UNIQUE_ID_ddebug296.10 mmc_sd_init_card.cold mmc_sd_hw_reset mmc_sd_runtime_resume mmc_sd_runtime_resume.cold mmc_sd_ops mmc_attach_sd.cold sd_std_groups sd_std_group sd_std_attrs dev_attr_scr dev_attr_ssr .LC40 __kstrtab_mmc_app_cmd __kstrtabns_mmc_app_cmd __ksymtab_mmc_app_cmd mmc_wait_for_app_cmd mmc_send_app_op_cond.cold add_limit_rate_quirk mmc_sdio_alive mmc_sdio_switch_hs wl1251_quirk mmc_fixup_device __UNIQUE_ID_ddebug296.4 mmc_sdio_remove mmc_sdio_runtime_suspend sdio_disable_wide.isra.0 mmc_sdio_suspend sdio_enable_4bit_bus sdio_enable_4bit_bus.cold mmc_sdio_init_card sdio_type sdio_card_init_methods sdio_fixup_methods __UNIQUE_ID_ddebug304.3 mmc_sdio_init_card.cold mmc_sdio_reinit_card mmc_sdio_sw_reset mmc_sdio_hw_reset mmc_sdio_runtime_resume mmc_sdio_resume mmc_sdio_detect mmc_sdio_pre_suspend mmc_sdio_pre_suspend.cold mmc_sdio_ops mmc_attach_sdio.cold sdio_std_groups sdio_std_group sdio_std_attrs .LC6 .LC1 __kstrtab_sdio_register_driver __kstrtabns_sdio_register_driver __ksymtab_sdio_register_driver __kstrtab_sdio_unregister_driver __kstrtabns_sdio_unregister_driver __ksymtab_sdio_unregister_driver sdio_bus_uevent modalias_show class_show sdio_bus_type sdio_release_func sdio_match_device.isra.0 sdio_bus_probe sdio_bus_match sdio_bus_remove sdio_bus_remove.cold sdio_dev_groups sdio_bus_pm_ops sdio_dev_group sdio_dev_attrs dev_attr_class dev_attr_modalias cistpl_manfid cistpl_funce_common speed_val speed_unit cis_tpl_parse cis_tpl_parse.cold cistpl_funce cis_tpl_funce_list cistpl_funce_func cistpl_funce_func.cold sdio_read_cis cis_tpl_list descriptor.6 _rs.5 _rs.3 sdio_read_cis.cold cistpl_vers_1 __kstrtab_sdio_claim_host __kstrtabns_sdio_claim_host __ksymtab_sdio_claim_host __kstrtab_sdio_release_host __kstrtabns_sdio_release_host __ksymtab_sdio_release_host __kstrtab_sdio_enable_func __kstrtabns_sdio_enable_func __ksymtab_sdio_enable_func __kstrtab_sdio_disable_func __kstrtabns_sdio_disable_func __ksymtab_sdio_disable_func __kstrtab_sdio_set_block_size __kstrtabns_sdio_set_block_size __ksymtab_sdio_set_block_size __kstrtab_sdio_align_size __kstrtabns_sdio_align_size __ksymtab_sdio_align_size __kstrtab_sdio_readb __kstrtabns_sdio_readb __ksymtab_sdio_readb __kstrtab_sdio_writeb __kstrtabns_sdio_writeb __ksymtab_sdio_writeb __kstrtab_sdio_writeb_readb __kstrtabns_sdio_writeb_readb __ksymtab_sdio_writeb_readb __kstrtab_sdio_memcpy_fromio __kstrtabns_sdio_memcpy_fromio __ksymtab_sdio_memcpy_fromio __kstrtab_sdio_memcpy_toio __kstrtabns_sdio_memcpy_toio __ksymtab_sdio_memcpy_toio __kstrtab_sdio_readsb __kstrtabns_sdio_readsb __ksymtab_sdio_readsb __kstrtab_sdio_writesb __kstrtabns_sdio_writesb __ksymtab_sdio_writesb __kstrtab_sdio_readw __kstrtabns_sdio_readw __ksymtab_sdio_readw __kstrtab_sdio_writew __kstrtabns_sdio_writew __ksymtab_sdio_writew __kstrtab_sdio_readl __kstrtabns_sdio_readl __ksymtab_sdio_readl __kstrtab_sdio_writel __kstrtabns_sdio_writel __ksymtab_sdio_writel __kstrtab_sdio_f0_readb __kstrtabns_sdio_f0_readb __ksymtab_sdio_f0_readb __kstrtab_sdio_f0_writeb __kstrtabns_sdio_f0_writeb __ksymtab_sdio_f0_writeb __kstrtab_sdio_get_host_pm_caps __kstrtabns_sdio_get_host_pm_caps __ksymtab_sdio_get_host_pm_caps __kstrtab_sdio_set_host_pm_flags __kstrtabns_sdio_set_host_pm_flags __ksymtab_sdio_set_host_pm_flags __kstrtab_sdio_retune_crc_disable __kstrtabns_sdio_retune_crc_disable __ksymtab_sdio_retune_crc_disable __kstrtab_sdio_retune_crc_enable __kstrtabns_sdio_retune_crc_enable __ksymtab_sdio_retune_crc_enable __kstrtab_sdio_retune_hold_now __kstrtabns_sdio_retune_hold_now __ksymtab_sdio_retune_hold_now __kstrtab_sdio_retune_release __kstrtabns_sdio_retune_release __ksymtab_sdio_retune_release __UNIQUE_ID_ddebug304.4 __UNIQUE_ID_ddebug308.2 __UNIQUE_ID_ddebug306.3 __UNIQUE_ID_ddebug297.7 __UNIQUE_ID_ddebug301.5 __UNIQUE_ID_ddebug299.6 sdio_io_rw_ext_helper __kstrtab_sdio_signal_irq __kstrtabns_sdio_signal_irq __ksymtab_sdio_signal_irq __kstrtab_sdio_claim_irq __kstrtabns_sdio_claim_irq __ksymtab_sdio_claim_irq __kstrtab_sdio_release_irq __kstrtabns_sdio_release_irq __ksymtab_sdio_release_irq sdio_single_irq_set process_sdio_pending_irqs __UNIQUE_ID_ddebug295.9 process_sdio_pending_irqs.cold sdio_irq_thread __UNIQUE_ID_ddebug298.8 __UNIQUE_ID_ddebug300.7 __UNIQUE_ID_ddebug307.4 __UNIQUE_ID_ddebug302.6 __UNIQUE_ID_ddebug304.5 __kstrtab_mmc_gpio_get_ro __kstrtabns_mmc_gpio_get_ro __ksymtab_mmc_gpio_get_ro __kstrtab_mmc_gpio_get_cd __kstrtabns_mmc_gpio_get_cd __ksymtab_mmc_gpio_get_cd __kstrtab_mmc_gpiod_request_cd_irq __kstrtabns_mmc_gpiod_request_cd_irq __ksymtab_mmc_gpiod_request_cd_irq __kstrtab_mmc_gpio_set_cd_wake __kstrtabns_mmc_gpio_set_cd_wake __ksymtab_mmc_gpio_set_cd_wake __kstrtab_mmc_gpio_set_cd_isr __kstrtabns_mmc_gpio_set_cd_isr __ksymtab_mmc_gpio_set_cd_isr __kstrtab_mmc_gpiod_request_cd __kstrtabns_mmc_gpiod_request_cd __ksymtab_mmc_gpiod_request_cd __kstrtab_mmc_gpiod_set_cd_config __kstrtabns_mmc_gpiod_set_cd_config __ksymtab_mmc_gpiod_set_cd_config __kstrtab_mmc_can_gpio_cd __kstrtabns_mmc_can_gpio_cd __ksymtab_mmc_can_gpio_cd __kstrtab_mmc_gpiod_request_ro __kstrtabns_mmc_gpiod_request_ro __ksymtab_mmc_gpiod_request_ro __kstrtab_mmc_can_gpio_ro __kstrtabns_mmc_can_gpio_ro __ksymtab_mmc_can_gpio_ro mmc_gpio_cd_irqt __kstrtab_mmc_regulator_set_ocr __kstrtabns_mmc_regulator_set_ocr __ksymtab_mmc_regulator_set_ocr __kstrtab_mmc_regulator_set_vqmmc __kstrtabns_mmc_regulator_set_vqmmc __ksymtab_mmc_regulator_set_vqmmc __kstrtab_mmc_regulator_get_supply __kstrtabns_mmc_regulator_get_supply __ksymtab_mmc_regulator_get_supply __kstrtab_mmc_regulator_enable_vqmmc __kstrtabns_mmc_regulator_enable_vqmmc __ksymtab_mmc_regulator_enable_vqmmc __kstrtab_mmc_regulator_disable_vqmmc __kstrtabns_mmc_regulator_disable_vqmmc __ksymtab_mmc_regulator_disable_vqmmc mmc_regulator_set_ocr.cold mmc_regulator_enable_vqmmc.cold mmc_regulator_set_voltage_if_supported __UNIQUE_ID_ddebug326.4 __UNIQUE_ID_ddebug335.2 __UNIQUE_ID_ddebug333.3 mmc_regulator_get_supply.cold mmc_clock_opt_get mmc_err_stats_open mmc_err_stats_show mmc_ios_open mmc_ios_show vdd_str.0 CSWTCH.13 CSWTCH.14 CSWTCH.15 CSWTCH.16 mmc_err_stats_write __UNIQUE_ID_ddebug295.2 mmc_err_state_open mmc_err_state_get mmc_clock_fops_open mmc_clock_opt_set mmc_ios_fops mmc_clock_fops mmc_err_state mmc_err_stats_fops add_uevent_var gpiod_get_value_cansleep __SCK__tp_func_mmc_request_start strcpy regulator_enable mmc_set_initial_state mmc_retune_disable ida_alloc_range completion_done device_property_present mmc_retune mmc_can_ext_csd wakeup_source_register mmc_execute_tuning is_acpi_device_node simple_attr_open __SCT__tp_func_mmc_request_start devm_request_threaded_irq debugfs_attr_write devm_kmalloc mmc_start_host mmc_set_bus_mode __msecs_to_jiffies mmc_add_host_debugfs dev_set_name ktime_get_mono_fast_ns __this_module __mmc_switch mmc_send_cid queue_work_on trace_raw_output_prep sg_free_table mmc_set_signal_voltage mmc_app_send_scr __init_swait_queue_head __trace_trigger_soft_disabled mmc_send_app_op_cond mmc_send_adtc_data trace_event_printf led_trigger_register_simple this_cpu_off sdio_free_func_cis mmc_send_if_cond_pcie device_initialize cleanup_module mmc_detach_bus trace_event_raw_init gpiod_to_irq kfree mmc_attach_mmc mmc_add_card_debugfs sg_init_one seq_lseek add_wait_queue gpiod_toggle_active_low mmc_app_set_bus_width dev_pm_domain_attach usleep_range_state bpf_trace_run2 gpiod_get_value kthread_should_stop timer_delete_sync led_trigger_unregister_simple __wake_up mmc_spi_read_ocr mmc_of_find_child_device __SCK__tp_func_mmc_request_done get_device mmc_power_cycle mmc_power_off sd_type sdio_read_common_cis _raw_spin_lock_irqsave __dynamic_dev_dbg sched_set_fifo_low mmc_add_card __mmc_stop_host mmc_send_csd mmc_sd_switch_hs __fentry__ devm_regulator_get_optional sysfs_emit init_module wake_up_process trace_event_buffer_commit __traceiter_mmc_request_start pm_generic_runtime_resume pm_generic_resume regulator_get_voltage __x86_indirect_thunk_rax mmc_remove_host_debugfs __pm_runtime_set_status mmc_deselect_cards pm_wakeup_ws_event gpiod_set_config add_device_randomness mmc_decode_cid _printk __SCT__tp_func_mmc_request_done ___ratelimit schedule schedule_timeout acpi_find_child_device __stack_chk_fail queue_delayed_work_on sdio_irq_work put_device pm_runtime_enable mmc_set_clock device_property_read_u32_array mmc_host_set_uhs_voltage mmc_sd_setup_card mmc_sd_get_max_clock _dev_info gpiod_set_debounce dev_pm_domain_detach mmc_hs200_to_hs400 page_offset_base pm_generic_runtime_suspend sg_alloc_table pm_generic_suspend mmc_attach_sd debugfs_attr_read mmc_retune_enable perf_trace_buf_alloc perf_trace_run_bpf_submit bus_unregister _dev_err __class_register mmc_gpio_alloc mmc_send_io_op_cond mmc_remove_card device_add debugfs_create_file_unsafe system_freezable_wq simple_attr_release wakeup_source_unregister mmc_unregister_bus mod_timer sdio_read_func_cis mmc_rescan mmc_retune_hold debugfs_remove strncmp mmc_set_relative_addr trace_event_reg mmc_set_dsr __x86_indirect_thunk_r13 ida_free mmc_send_op_cond driver_unregister phys_base devm_gpiod_get_index class_unregister mmc_select_card __cpu_online_mask memcmp kthread_stop mmc_set_uhs_voltage jiffies_to_msecs mmc_attach_sdio current_task _raw_spin_unlock_irqrestore mmc_power_up device_del cancel_delayed_work sdio_reset _dev_warn mmc_bus_test sdio_alloc_func regulator_count_voltages wait_for_completion __x86_return_thunk mmc_hs400_to_hs200 default_wake_function __init_waitqueue_head regulator_list_voltage irq_set_irq_wake mmc_switch_status complete_all regulator_is_supported_voltage kthread_create_on_node mmc_app_sd_status devm_kasprintf mmc_register_host_class seq_read mmc_register_bus mmc_send_relative_addr mmc_vddrange_to_ocrmask vmemmap_base gpiod_cansleep cpu_number __preempt_count debugfs_create_file gpiod_is_active_low trace_event_buffer_reserve __pm_runtime_resume debugfs_create_x32 mmc_set_timing cancel_delayed_work_sync init_timer_key param_ops_bool mmc_io_rw_direct mmc_sd_switch sg_next mmc_set_initial_signal_voltage sdio_remove_func __dynamic_pr_debug cancel_work_sync seq_printf sdio_add_func mmc_spi_set_crc __x86_indirect_thunk_r9 delayed_work_timer_fn mmc_alloc_card mmc_select_drive_strength sdio_free_common_cis mmc_sd_get_cid sdio_register_bus remove_wait_queue single_release mmc_set_chip_select mmc_set_bus_width mmc_init_erase __tracepoint_mmc_request_done __traceiter_mmc_request_done regulator_disable mmc_set_driver_type sdio_unregister_bus kmalloc_trace __pm_runtime_suspend mmc_sd_get_csd set_primary_fwnode led_trigger_event strlen __SCT__preempt_schedule_notrace single_open gpiod_set_consumer_name __pm_runtime_disable mmc_go_idle mmc_send_if_cond debugfs_create_dir mmc_remove_card_debugfs mmc_select_voltage regulator_set_voltage trace_handle_return mmc_attach_bus mmc_unregister_host_class driver_register __pm_runtime_idle msleep __kmalloc mmc_io_rw_extended __SCT__might_resched __dev_fwnode kmalloc_caches mmc_can_sanitize bus_register system_wq disable_irq __tracepoint_mmc_request_start                              <       -          '  >            Q            \            <       }          '                                    '                          O           a                                 V                                 1           ?           Q           ~                                            
           0           <           M                                                                            h                                                                                           H      *           F                  W            x      h           v                                                                                                                    (                 	            @                                   Q           Z           a                      D           Q           i         '  s            |                               '                                                                                    4	                   =	                   G	           _	           g	           	           	         4  	           	                   $
           2
           a
           f
           t
           
           
           
           
           
         :                        1           R           h                                                                             
                      (           1           .
         '  6
           @
           I
           P
           <       d
         2  k
           v
           
            p      
                  
                             4            @      :           ^            `      s                  y                                                                                           3                                           Z  E           k         \                         %                :  *           T                    Z  D           g         \                         %                :                                    0           A           Q                      Q           `           }                                                                   '                         (                                   '           1           >           E           <       Y           `           k                                                                   `                  @                                       Y           l                                                                      ,         '  4           >           G           N           <       b         2  i           p                                                                                        h                             ,                   0                 1           @                    '           '                                              <                                        H           [         '                      
                       J                           n             6           Q                                                                                           #           9            J       @         
           E           M                  X         8  r                                                                  "            E            N          :  a                                              :              3!         n  !           !                  !           !                  3"         Y  C"           M"                  v"           "           "           #         :  #           $           W%           a%           y%         e  %         <  %         +  &           /&           '           '            '           '            %       -(           <(         :  (           (           *           *            *           *            %       0+           ?+         :  Q+           ~+         '  +                  +                  +           +           8,         '  P,                  h,                  ,           ,           ,         '  ,                  -           -         '  ?-         X  J-           Q-           ~-         '  -                  -                  -           -           .         '  8.                  ?.                  s.           .           .         '  .           .         ,  /         '  //         '  G/                  N/                  /           /           G0           a0           h0           q0           0         '  0           0           0           0         '  1         '  B1         '  V1           a1           k1                   s1                  {1           1           1            @      1            P      1           1            `      1                  1           1           1           1           2           L2         '  o2           t2           }2           2                  2                  2           2           -3         '  W3         '  r3           3           3         '  3           3                  3                  4           .4                  54                  m4           4           4         '  4                  4                  5           15           ^5         '  v5                  }5                  5           5           56           =6           Q6           d6           q6           6           6           6           6           6           7           7           47           A7           S7                  _7            B      7           7           7            -      7           
8            W      '8           Y8           q8         '  }8         C  8           8         '  8           8           8                  8                    9           9         :  !9           -9           A9           Q9           a9           9         e  9         <  9         +  9           F:           d:           :           :           :           ;            ;           1;           `;         '  ~;         '  ;         e  ;         <  ;           ;           ;                   ;                    ;           <                   <            8       <           )<         +  A<           <           <           <           <         e  <         <  =           =           l=         7  =         '  =           =         '  =           =           =         7  >         '  ->                  J>                  >         '  >           >           ?           ?         e  1?         <  H?                    O?                   V?            p       [?           n?           ?         T  ?           ?           @           #@           S@           g@           @           @           @         e  A         <  A         7  .A           AA           pA           wA           A           A           A           A           A         '  A         7  B         7  DB           XB           hB           sB           B           B         '  B           B         '  B           B         '  B           B         '  C           C         '  %C            w      /C         %  AC           QC         Q  kC         '  |C           C         %  C           C           C         '  C           C         '  C                  C           D           &D                  .D           AD           MD                  VD           ^D                  eD            h      mD           D            t      D           D                  D           D                  D           E           1E           OE                  TE           [E           gE                  lE           sE           E           E                  E           E           E                  E           E           E           E         
   @      E         
  E           E         
   @      E         z  E           F           F           F           !F           (F         
   @      -F           AF           HF         
   @      MF         ]  aF           {F           T       F           F           F         
   @      F            E      F           F           F            O      F           G                  G                  G                  %G                  3G            |      8G                  AG           NG           [G            ,      {G         '  G         >  G           G         '  G           G           G           G           G           H           H           H           1H           :H           AH           QH           aH         g  nH         
         sH         x  }H           H           H           H           H           I                  I         B  CI                  WI         B  ^I                  fI           I            T      I           I            `      I         E  I                  I            p      I           I            {      I           I                  J           J                  J           3J                  ;J           PJ                  XJ           mJ                  uJ           J                  J           J                  J           J                  J           J                  J           J                  K           K                   K           /K            :      7K           IK            P      QK           gK            q      oK           K            ~      K           K                  K           K                  K           K                  K           K                  K           L                  L           ,L                  4L           IL                  QL           fL                  nL           L                  L           L                  L           L                  L         B  L                  L            '      M         B  'M                  :M            +      BM         B  cM           M                  M            ^      M           M                  M           M            %      M         B  M            :      N           %N            D      *N           2N                  SN                  ZN                  _N           iN         :  qN           zN           N         (  N           N           N           N           N         >  N           N           N           O           /O                  JO            
      SO         c  pO           xO           O           O           O           O           O           O           %P         
         *P           EP            B      MP           aP           }P         
   @      P           P         `  P         
           P            H      P           P                   Q         l          Q           6Q            G      OQ         =          TQ           Q           Q         `  Q         >  Q           Q           R           R            R      "R           ;R           BR            R      IR            a      SR            x      XR           eR            R      mR         B  |R            Q      R           R            R      R         B  R           R            '      R           R           S           !S           2S                  \S         B  S                  S         B  S                  S         B  S                  S         B  #T                  3T         B  YT                  iT         B  T                  T         B  T                  T         B  T            .      U         B  1U            B      AU         B  gU            V      wU         B  U           U         :  U           U         
           U         
   @      U         _  U           U         
   @      U           V           V           $V           3V         i  AV           V           V           V           V           V           &W           3W           ;W           BW           GW           WW           gW         J  wW           W           W         '  W           W           W           W           
X         A  &X         A  1X           |X           X            i      X           X           X            Y           Y                  *Y         '  7Y           EY         A  RY           \Y                  uY         '  Y           Y                  Y           Y                  Y           	Z            Z         '  *Z         X  2Z                  NZ         '  [Z           jZ                  qZ           Z         b  Z           Z           Z           Z           Z         ?  Z           Z           Z                  Z           [           [           :[                  ?[           F[           S[                  X[           _[           q[           ~[                  [           [           [           [                  [           [           [           [                  [           [           \           \                  \           !\           1\           >\                  J\           Q\           a\           n\                  y\           \           \           \                  \           \           \           \                  \           \           \           \                  ]           ]           !]           .]                  :]           A]           Q]           ^]                  j]           q]           ]           ]                  ]           ]           ]           ]                  ]           ]           ]           ]                  ]           ^           ^           ^                  )^           0^           A^           N^                  Z^           a^           q^           ~^                  ^           ^           ^           ^                  ^           ^           ^           ^                  ^           ^           _           _                  !_           (_           1_           >_            
      ]_           d_           q_           ~_            
      _           _           _           `           %`           ;`           B`         :  Q`           x`           `                  `           `                   `           a           "a           Aa            (      Fa            #      Ra           a           rc           c         :  c           c         7  c           d           Qd           d         n  d         *  d           d         *  d         Y  d           6e            W      @e           Je           e           e            9      e           e           e           e           e         :  f           .f                  3f           :f           Mf                  Rf           Yf           af           wf           f            h      f           f           f            f         )  f           g           g           g           ,g           7g           Cg         b  Zg         7  bg           jg           tg           g           g           g         y  h           h           -h           h           h           h         '  Ti           yi           i           i           i            
      5j         '  Ij           .k         '  6k                  Lk            
      ik         q  ~k           k           k           k         
         l           gl           l           l         b  l                  l                  l           l                  m                   #m                  em                   mm            @      bn         .  o           o            &
       p           p           ?p            
      Lp           p           p                  p            R      p           p           p         v  p            q           q            	      !q            	      2q                  q                  q                  q                  q            	      q           r            pW      Vr            `      r         p  u            I      u           v            I      jv           ^w            	      *x                  x            P      x           |           |           |           |            d	      ,}           A}                  h}            r
      u}           }           }                  }           }           }            r
      ~            ~            
      [~           j~            Z
      w~           ~         '  ~           ~            r
      ~                                        ?         S  T                  n           %           X           h         A  r                    A                        *                    '  ׂ                  ނ                              d         '  {                                         U                                   (            r      /            X      4           F           u         :              <                                                     Ä            =	      Ȅ            r
      ̈́                             )         A  ?         '  G           W           q                    7             ̅           Յ                                  
                            ^           q                               A             Ά            /               '                                    /      5           C            /      P           ]           g            /                             /                            ȇ            /               '                        K         y  r           y                            	                        ܈                               7             %           2            `      7            \      <         :  H         b  T         7  q                                            E           J         :  Q           r                      Ŋ           ъ                      7           >         :  Q                      ɋ           ΋         :                                    s                 !           l         '                                 :  !           Í                                      
          x         t                        D         t  T           a           k                               
   (      $         :  1           u           |                               w                    ڐ                               :  !           Y                   a           z                    :             C                   Q           ʒ           Ւ                                 <           S                  d         :  q                       ?
                             
      1           P                   k                                                     p                                              -         :  2                  A                      ٕ           ޕ         :             [           t           y         :             Ζ                               :             ?           X           ]         :  q                      ԗ                                 "           1           E           L         :  Q                       P      И                      	         :             a           z                    :             r                      ǚ           Қ         t  ٚ         :                                          &           J           X           q                      D                  ԛ                                                       1           q                                                     :  !           i                               :                                   6         :  A                    n              m
                  e                   ~                      ȟ                                            C           w                                          :             ٠                                            
            
               n  A           O            
      W           d           u            Q
      |            8                             
                                                                                           !           O           d           n                                 Ң           ڢ                                      n  1           ^           n            g      ~            N                  J               :           :                                              *           5           A           H         
         U         
          a         
         m         
         y         
                  
   `               
   @                                       ڤ                                  	                  	      \             
      d             
      `                        
                   
      g                  q                                                                                           ѧ           ާ                                                               !                             1           >            !      I           P           a           n                  z                                             )                                       Ψ            -      ٨                                                   
                      !           .                  :           A           Q           ^            5      l           s                                  5                                                   9      ѩ           ة                      U                  a           l           q           ~            D                                                   N      ͪ           Ԫ                                  N      
                      !           G           N            )      S           Z           f           q                                  )                                                                         )                                                  7           >            )      C           J           V           a           n            `                                                                                          ά                  ڬ                                          b             !           /           A           Q         ?  X           a                      ,                                                              ?           G           g                  n           |         A                               C           \                  v                                        Ա         :                                                         #         b  :         7  B           J           T           a                      Ĳ            H                                       D                             1         t  =           G                               :             Ǵ           Ѵ           D                  -            o      A           u                                                   ޵         7                        =           D           D       d                                                   Զ            `                            
         *           :  1           G           Y                  a           z                                )                        ַ         .  ~                      ͸           Ը           ,                                               &           1           A           s            '      {                                 *           7            '      Q                                                       Ѻ                      ,       !           >           n                                      '  ˻           ӻ                       t      e            N      r                  y           ,                                               ȼ                       `	      [           }                                                                                                       5           ]           e                       +                                                                [                    A  ޿         '                                      ,           K                   S                    '                         @
      C                            p           D  ^         C                      b                        b         '  v                    b             D                              c                            '         v  a           D       p                                                    4                  4      }                    0                                    `                                                                                  &           9           D       Z                                        3           ?           D       `                                         C           f                  k                  p         :                                            7                                    ;           H            :      Q           m           x                                                                       	             $           @           ^           j           |         7                         `                  \               :           b           7             D           |                    :                        .           k                    :             3           8         :  A                                          :  *            w      /            s      A                                          :             h                               '           :             j                               :             '           V           ]                  l                               t                                 :  1           v                      
           9                               t                      :                                                         _           w                               :                                                                                                         1           W           ^                  c           j           v                                                                                                                                       
                      !           G           N                  S           Z           f           q           ~                                                                                                                                                       p             -         '  =                  D            P      I           Q                               b                                 7                                              N           x                                          :                                 7  %           .           :           U           ^           f           n           w                                 "           :                  b                                                     :             U         a  q           y                    
                              '                     e                       L                            8         b  ?             
      }                                            T         A  z                                                 b                                            a              '      $            #      :                                                     b  )           5         0  j                     b  (           0           ;           G         a  p         A                                                             E                                                                           A  @           k           s           ~                    a                      D                     3           h         F  |                                            	           "         :  g           !           8           @           J           V         a  a                               A                                                                    
                      *           A           O         7  d           v                                          7                                   4           P           c           v                                )           ?                        ELF          >                              @     @ 4 3          GNU yXU#/Ad^=        Linux                Linux   6.1.0-37-amd64     1      f.         @,   E    f.         HcNFHp?    2=   +H
HcfHfq?   HfA    f         UHS  ft-1    H    1A
   H            x[]    D          1    ff.     @     H?  t	3y  ugt
  |
  
  
  L?  A   tz  9    ))i  kaHcHiQH%)B    x
  
  
  
  D      HHHOHNONHH~HzH~Hz H~ Hr(Hp(J0H0J4H4J8fH8J<H<J=H=J>fH>R@1fHBfP@1fP:D       f.         H(eH%(   HD$ 1H4$H    H HD$H  HD$    HD$    H     tH  ߉   H    HT$ eH+%(   u	H(        f         H?     USH
      HG /
  H  H       H        {  H  H߉p      HC H   HtH    +
  1f)
  Ѓ߀}v tЃ +
  t}w t:+
  H    HC /
   HH       H[]        +
       USHH  eH%(   HD$1Ht@x   HtH?  tHD$eH+%(   ~  H[]           HC /
  HH       H        /
   H  H    HS H   HtH    HS E+
  f)
  ȃ߀}v tȃ +
  t}w tW+
  H   H    M t-     <t.u	
   u4ƃ
  H    ҃+
  1H      1H      Hǃt      HHǃ|      Hǃ      f  D$    $D$            ƃ  e        D      SH  H.   H
      tHC H[H       [        AUATUSHH?  D/
  @  +
     HH      Aą    H?     t3
  f9N
  t
1H    H    n  
  A     E  HC1HH@(@    L
  .      HL        H
  HH  IEHEIEHEIEHEIE HE IE&HE&    H    H        H    B}     H        HD[]A\A]    HC1HH@( @    E-ƃ
   L
  .   HL           H
  H  IEHEIEHEIEHEIE HE IE&HE&AHC HH@x        H
  HH  H
  HUH
  HUH#
  HUH+
  HU H1
  1HE&B}      DH[]A\A]    H.      
  H        H    H    H        HC1HH@(@    Au    USHD'
  (
  eH%(   HD$15
  D6
  H$    HD$    H+
  E/
  AD%
  DЈ	Ћ  D	9+
  u9
  tI1E1H   fT$   H$D$fDL$    HD$eH+%(   u>H[]    8  u@8
  uD8
  ufD9  u1D8  u         AWAVAUATUSD  Ǉ     Hp  A     L`  HHH  4  DP  Dh  HI    D꾘4  H    D4  H    D4  H    EtHAD$ 8  )LD H0H     D  H  L  HL9uD  4  HLp      E 8  A 8  v& 8  H    A9    ID9r1Ҿ4  H1    1Ҿ4  H    D4  H        4  H    Ƨ      dt; 4  H    xݺ   @ 4  H    1[]A\A]A^A_    H  H    H           f.         AWAVAUATUSHH4$T$   D$    IE11H  H    LI    t(I  D  I  H$ I  B$LH    I  H   H$B99tD$w
D$IdA9rD$H[]A\A]A^A_    D$    D      9u    AD)A))   Ayؿy)߉BD        AWEAVAAUAATDUSDH   t$w<H|$LL$(eH%(   H$   1@}  D$ HD$g    HD$o    HD$w    HD$L    HD$T    HD$\    D$    Hd  x@|$R  Sf  Sf	   Sf  Sf5  SD$    fK    EtSEDH|$|$ HPx  SD;DDAW&   DCE  H ɸ"   H{9G1t9rG9sRH4uH\$H    L$0H  H   H$    HPx  L$0   D$     ;HcL$0HvDt$GHD|$@HH\$8pHD`HD$sHHAH$LkIAV	EF"DDIIAVDDAEEFlAVDDAEEFQAEI9uH$HH$   HH9zL$0D|$@H\$8Dt$GHD$Sp
  $  =  Ǿ   )y	׾)Ǎ|?LcMiۓ$II AAA)D9C4DLAC    DGHD$  LcT$ Ht$gT  B    F$    9OE1VA   )AąyAڅyAڍB,HABDLFBDTFBD\MuA   HD$t$E1$ND$D6DMLd$(H@HHD$H    A   <$Dl$WDB+,    9O9O11DEt	A
  T\TT)*TLEҍr	DI rDփk    HcH        @tHTJHuL1Et똋T$HCII!C1H$   eH+%(   ubHĈ   []A\A]A^A_    $E1+HvE10D$    D$    D$        ff.     f    U   SHH   eH%(   H$   1HHHH?  Ā   C<D  LL$H
  D@fT$@4$@AA    DCDt!H$   eH+%(   uLHĐ   []    H麈      H    Ȁ=     tH                ff.         AWHAVAUATUSHH   eH%(   H$   1Hl$H|$HD$    HǄ$       HH)   Hs<H  A
  AHt  D+
  D|$D$
 D  DEDD$DB0AAA    DCHBHD`
/
  fDd$D$ft	A9   A   DL$DH    H    @EAAALL$DHD$
t-H$   eH+%(      HĨ   []A\A]A^A_    H麔   r   H    wzEH߉L$A
      L$H߉    s<D$:DD)1AA9A)AJ    ff.         AVAUATUS  HHp  nu1[]A\A]A^    P  H@  HFt؋  H  H-         USH    tHX{  H`{      []    H+H0  HH   T  4  HH    H߾4         H߾4        H[4  ]       D      U   SH    l  H߉    H{w f9                SH*       @fC[    ff.         H  x          @     ATL  USHL       HH    ft2Hߺ   1    H߾      HLHPx  []A\    1Hff		    f         SH   w#T  ?  j}   uH?   t[    H?  tX  T  ))H~HX{  HH}      [    f.     f?  1H  PH  PH  P    ff.          HFH+    H    HHD(       f    HFH+    Ƈx  Hx  HH    HHH@Hhx  HAHpx  HAHxx  HAHx  HA Hx  HA(Hx  HA0Hx  A8x      @     ATE1UHSH   eH%(   H$   1HT$$H|$(HD$$    HǄ$       HH)dHH$HD$    HD$    HD$    D$     L   E1H|$(Lx  1HD$&    A   AHǄ$       HHD$3AHDֈPɈHEEE@psq   tA0@0   HIu    fD$$d   fD$Eu[1uUH$   eH+%(   urHĐ   []A\    I0HxIHH0ItI)HtLDL)HzHH    A00AttZAtftJ    @     AVAUATUHS   LoPAA@t1A       DDEt?A@M  L    A#/
  LD	A/
      e r[]A\A]A^    @ff.          ATLUH`SHH    H@u+H@ uH؂LH@X    [H]A\    ff.         ATLȃUHpSHH    HPuHLH@     [H]A\         AUATUSHHLgPeH%(   HD$1>D$ M$  @L    @HHƃ   LD$Lǃ`	          Ņ    T$LHވ       L    HD$eH+%(   uH[]A\A]                 AWAVAUIATUHSHH_PLrL  L    H?  ucH?  uWH?   uKH?     u=
   t4HC HxH t)E~
fD9
  tA6AH    Ht@uHL[]A\A]A^A_    H  HH$    AE<  E   ƃ   ƃ   fD93
  t
ǃ+
      LH    H  H    H  A6H    H<$    H    ?  HC fDN
  HHH@H    7?  1H  1fN
      uHEM9Hrƃ  ƃ  <'ƃ  ƃ  "        AT
   UHSHHLgxHeH%(   HD$1HT$HD$            t$1L        HcHT$eH+%(   u
H[]A\        f.         HHH@xH?  @tT  H        H    H        Ht    HuHyHtHuH}  1Ҿ       f         ATLUH8SHH    HuH u	n u[H]A\    H=  LH    LH    H[]A\             ATA   UHSH^H+    HHH      9z  uD3y  D3cAAHCH;y  H3y  HHsH)H3y  H  H)΁  H{  H?  H5    H}  HƘ:      H?   tEu	[]A\    [H]A\    {uHX{  Hp}          f.         fD      HFH+    HHHH    x	HPtSHxH
  HzH
  HzH
  HRH
  H|  x$    HX{             HxHP
  HzHX
  HzH`
  HzHh
  Hz Hp
  Hz(Hx
  Hz0H
  Hz8H
  Hz@H
  HzHH
  HzPH
  HzXH
  Hz`H
  Rh
  H8|  <ff.     f    ATUSHHeH%(   HD$HGH$    L`@   PH      H    HC@9      H  I    HLH    H    HIپ   H  h    A  H    H       ZHT$eH+%(   u0H[]A\      H    P  H    Y    D      HFH+    H    HHD9  sH?   t        ff.     @     ATIH=    X   U
  S    HH    1A|$<   A${       @  AA|$<DAuɁ      HH     HC		HKTHH9uEu@   @u8C@s@uC  CfC@+H[]A\    D¸!SCt̉D<u@sfD      HHH@xH?  toff
   G     H?  yH?  tH?  u@}  H        H    @     AWH?  IAVL8?  AUATUSH H$H ?  HD$t$L    LHI?  H9$      A>  v    A${  
   E    HHd  A${  E11H޸   A   HHI  H       IH   L    HD$I?  H9$   M?  L    tIU IEHBHH     IE H"I} IE   MeLd$LI]I?  LH    tM?  Me I]L+A>  Ht$LAG@    Ht$L       E1LA${  I  HH          A${  H H[]A\A]A^A_    H []A\A]A^A_    T$$    A>  vH []A\A]A^A_        $    ff.     f    AVH1AUATL 	  UHH~HSLu(HH)H    0	  Hǆ(	      LHLLm(L    tMeL 	  L(	  Le([]A\A]A^    ff.         S1H  @ Ƈ}       1Ad   H߹  @   @     x
ƃ}  [    }   u1   H    1AI H߹       t1  @ H    1Ad   H߹  @   @     y[    ff.     @     AV1AUATU1SHp  HLfH    eH%(   HD$1fl$    H*  HhPL      HHE H@@L  LeAHE     H  ǅP{        H    t1H}     HD$eH+%(      HD[]A\A]A^    I   H    LL    tuALL    Aą    LL    H    H    Aąu+HH  1H    H  Hu8AH    H    9LL    A*    E1ۺ   D  D  P H  H(   H  H,     H  H      PHH     HUH    1ҾA   H    H2}       H    Aą    H    Aą1  L  HL    HE H@@L`0HE H@@f@N HEƅ{  ǅ {    HP(z ƅ.{  ҉${  HP(z t`HEHP(RJwPHHEPHƅ{  H     E1H  {  HcPHǅ{     
H0{  f{      ǅ8{     f,{  ǅ({    Hʉ΃@ʈ{  Hʉ΃@H    ʈ{  P{  @H    ǅ<{    {  HE(HE(HǅH{      HE0fǅ@{   DD  D      HE E1E1LMLMDU<ǅXx     ǅ     ǅ     Hǅ8    H   HtH    H    H    Aą    H    Aą    HUH       a1fDbfDb:fBA  AH
HAuL  L    HIWLL    H      I鹀   1H  I    H          Aą    H       
  H        HX{  H  H  H    H    I       Hh{  E11Hh{  HX|      H    Hp{  H{  H{  H{  Hx}  Hx}  H}  H@|  H@|  L`{  HH|  Hǅx{      L{  Hǅ{      Lp}  Hǅ}      L8|  HǅP|          E11ɺ    H|  L|  H    H|  H|  Hǅ|      H|      H    HP}  11HP}  H}  E1H    HX}  LH}  Hǅ`}          E111H}  H        H    H|      HEP    HHEX    Hǅ      Hǅ      Hǅ      Hǅ       Hǅ      Hǅ(      Hǅ0          H     HǅP      HǅX      HT$HǅH      HǅP      Hǅ`      Hǅp      Hǅ(          D$%  H     PH  H$       ?  HE H?     Hx@H    H    1Hx  H    x  H           H{AąHX{      1HX{  H  H      H      H    H    Hp      H    H      19
AH
HB?  
H     fD$    AU    SHH  H  Ht#H     H   E1    H  H  Hǃ      ǃ      Ht#H     H   E1    H  H(  Hǃ      ǃ       Ht#H0  8  H   E1    H  H@  Hǃ(      ǃ8      Ht#HH  P  H   E1    H  HX  Hǃ@      ǃP      Ht#H`  h  H   E1    H  Hp  HǃX      ǃh      HtHx    H   E1    Hǃp      ǃ      [    f         AW
   AVAUATUHSHHXHveH%(   HD$P1HHH
   HDNDVHH   L  H} M       HUD*D  HM H    DbLd$(DBLD$0zKDH|$8rHHt$@DzHLL|$HH9    HBH$LHD$LHD$HHD$HHD$ DD9          9F    1HLx  u+H    HD$PeH+%(   u8HX[]A\A]A^A_    L    H  H       H        ff.     f    AW   AVAUATUHSHHHeH%(   HD$@1Ll$LHHFH+    HHH    x   x       DpL`Lhx  BD0Ɖ@ҁ      	ʅt8   t0t+   t       uix  tix  wtHHD$@eH+%(     HH[]A\A]A^A_    P	LxDp@LdDHLAD<AwEG4T$IGD$HD$@t$4A    L$,D$T$HiMbf DH&f%	ȁ   fD$,D$4uYE1<EAAIcHH     DH
>  1D9uD)ix  DD$1D$(    AG  EO1AwDAtAGtEOD8ABt
AO8B)ȈD$6AGD$5AGtL$.tD$/D$/D%   D$/Ƀ	A    D$/tL$.AGtx  D$(   D$$@x   	H(x  z  HCH@( uLLH     
     1    IH  A   wBDH    A   A   EthA$At[ECT4fBT0JHU${  E1A   LHH+    IDHHH    )    k@HE    HT$11IU(HT$IU0HT$ IU8HT$(IU@HT$0IUHHT$8IUPH;L    I$HxLHHDILHLH)AH)ƉHtA$ECT4BT0\H(x   vL0x  1ADA~HIHuEH;ΉT$H$    AT$H$        f         AWAVAUATUSHHHFH+    H    HH?  HDdEAAuAI  AtX?  EtXH?  HH@8  H?  H   Hx@HH[]A\A]A^A_    ?  EuH    H  A   DpXL  L    HH$    H4$t(H  D0  H  H$ H  A$L    EH  A   Dp\L    HH$    H4$t(H  D0  H  H$ H  A$L    AAx      H     PXH  HT L  L    HI    tH  H$ H  A$LL    FH1ɺ      H  []A\A]A^A_    H;    i    @u               ff.     @     AWHX0  IAVHAUATUSHH00  Ls L (  HH$    HD$H 0  H 0  H(0  H00  H80  I~ tKA${  I     E1IvHH          A${  I~    Ao@IF    L80  HLL    tL80  I.MnMu I M9vH(  Hǃ(      Hǃ0      H)0  1HHǃ0      Hǃ0      Ht$H<$H[]A\A]A^A_    ff.         AWAVAUIATE1UH  SHGHHH@(@A    HAI    t)H  1҉   H  H$ H  A$LH    H    HI    t)H  1҉  H  H$ H  A$LH    HE}	    HI    t(H  D  H  H$ H  A$LH    IP0  HHA    HI    t(H  D  H  H$ H  A$LHA     H    HI    t(H  D   H  H$ H  A$LH    H  @   P1[]A\A]A^A_    ff.     @     AWH8?  AVAUI     ATI"    UH  SHHHH$    HD$jL ?  LMw    tI7IGHFH0IGM/Mg>  H  H>  HL6  >  %   >  H    ~.>  t$>  H6  HiHx ^Ht$H<$    >  v^>  9>  uH[]A\A]A^A_    L4$L    Lǃ ?     H    HHH[]A\A]A^A_    HX{  H{          f    Ht    AUL`ATLUSHLHp        LH    LH    HH    L[]A\A]    ff.         AT  USHL  L    HH    H[L]A\        S 
  H]H[@     AVIAUA   ATL(  UHSH^H; tD${  HsLE1H  H   H       ${  H;    m@H    H L9uINIE1   H  H       H  E1   IP0  IH0  H       I    IǆH0      []A\A]A^    ff.     @     S1H  H   A        D          1[    ff.          @ǁ   u@1@HcHH    H
t19u)        f.         AWAVAUIATUSHHPHp  D{  eH%(   HD$H1D{  H    HD$(    HD$0    HD$8    HD$@H  H}H1HE     Hǅ      HH)  HE
  
   t-AEz  @ E   ft1Ҹd   
	UH  H  $ E1E     {  EDE,x    E     
        <$҃fUDx  HSB;  MBT:8AɄDEAЃ  A        H   @  DH		ЉE(H?     L  AAAA	{  I  H  A  HDT$A	AfDu
H  HHD@     MDDT$fEAHH@@J8   ?  ADHDT$#D$$    LDHAfD$    AGfA9CH  P  AA;   Aκ(   ADE1Hl$E1L
  ft$DLT$"EIAD;p   IcLИ   A;,$uAT$
HfAW    HtkPtb1<$ tt
AD$|$# tL$$   HJ		AD$IAAGnfAGD$fAGD$"AGH  AD;pUHl$DmE  AUfT$DHl$(@fD$DfE ?  Ht$(H    t?  HT$HeH+%(     HP[]A\A]A^A_    p  E1ME1IE1HHD;A  EtAA  H  AAD9y  IcHHHH|  tHcHHHHIL M\VAT H  H6t @qUH  H1HDf I    AWHI{HIJD&KD#I)CL)HI  
   1-D"p  ADA   <EfA fA AyHV  11E8      &H$LMqE P=     )    LL$H    H    LL$DD$#DT$"HD$        H  HD$LL$DD$#HDT$"L$HH=        D$    D$HHp  H7ABD&CD#H  E !BD&fCD#H  $E1j   HB;   @  1 @  H        ff.         HcHcHvHHDHH"D  )9ʺ    Lf"D          AUATUS  Hp     H?  D  H   {  D	ADAEA   HIH)HIADD@8F@AA!̓t  H        1
	D	E   @f%
  u@t[]A\A]    AA	D$ADCH?  ui{  @փHHHHHн      @8F< G@8ŉ@
		P@K֍HHHHH<    G@8@    USH@?   HtF{   t=1H߃    {  9~!  9uH߃    {  9HX?  HtEH  HP?  E1H`?  H       HǃP?      HǃX?      Hǃ`?      Hp?  Hh?  Ht?H  Hh?  E1Hx?  H       Hǃh?      HE    HE    H[]    f         AWAVIAUATUIh?  SH    E1  HA{  I  HH       Ip?  H    I  E1     Ix?  MP?  H   L    IX?  H    Iǆ`?     L    Å   L    IX?  HtAI  IP?  E1I`?  H       IǆP?      ID$    ID$    Ip?  Ht?I  Ih?  E1Ix?  H       Iǆh?      HE    HE    H[]A\A]A^A_    M  L    1Ҿ, LH$    I  MP?  HHL$    LIHD$    Ht$HL$t(I  D|  I  H$ I  B$HE1    H4$L    A{   BDL        A{  AD9    AWAVL  AUATUHLSL      1Ҿ, HI    HP?  LH    HI    t'H  |  H  H$ H  A$LL    LL    {   t1ۉH    {  9[]A\A]A^A_         AVAUL  ATUH  SHH    HI    H     PLHL      L    HI    tZH  0 H  H  HP   %H  D  H  L  H  H$ H  A$LL    H    H      LH      HH    HI    LH    LH    H    LHǃ ?     I    HL    H@?   Ht1    ?   1[]A\A]A^    H    f        t[]A\A]A^    ff.         H  , D  1H  L  {   tcAUATE1UHS1H  HHH   D    A  H⾰      x{  H9[]A\A]        H    H  H    H       ff.          AV   AUATUSH    H?  
H}  AHD      H    H    Hx  Hǃx      Hǃ+y      H)3y  1Hƃx   H    H    H     4  1HD  I    LHǃD      Hǃx          11H         Eu?  H     P H  H    H?  1H  PH  PH  PH    H        H|      Ax   S  H?   H?    H?  H?  HH  H?  HH	HH
		
		HH!?      H    H  1҉   A        H߾D          H  0 D     H  L  S      H  H$ H  A$H    H    H@?   tF{   t=1H߃    {  9}!  9uH߃    {  9|Hǃ
      Lc(H{  Hǃ
      Hǃ
      Hǃ
          HC(Hǃ{      I9   I     I"    Hk(H    tHU HEHBHLu HLm    C8PHC(S8I9u    []A\A]A^    H?  H?  HH	H
	
		H?  H;    S8D      UH  SHH    HH    HH}      H8|      H|      Hp}      H    H}  []        SH_P@x   u[    ƃ@x   HhHX{      H  P   H  P[             ATUSHH  H  HHx      H   H        ?  H    Ax   .  HHL      L    H?  1H  PH  PH  PL    H        H|      HH   tH  H    H    H    HX{      H  HHǃX{            H      H      H    H    H    H    Hp      H{      H;[]A\    H;    ƃAx   []A\    ff.     f    AWHcƉAVHAUHPIATUSHHH@?  L4EENAFA9    D99@A9       @    E`1A!A9uL   H;L    IF@IcVLHH    HC H@    EAFAP!AFA9tvIV@HL<Mt|I   f% f= A	H4$    H4$H  H    Htd	   t`	  tA    CH[]A\A]A^A_    X	@         H;1H    ff.         B   tJ
   tJ
   tJ
   tJ
    tJ
Bu;E1<@AAIcDHH     H
t9uD)@r    @r    D      AUATIUSHHeH%(   HD$1D$ H   H11LD$        D$E LD  L    LHD$H@HHE      t$HiHH    1ҹ   HH        L    LHD$H@HHHE      1HT$eH+%(   u*H[]A\A]    11LD$    7        fD      HFXu  H    H  HD      1鴻@     HFH@Hx  H     H@    H@    H?  t1       g        FHNAHAA   DFHcHRffHIFHx  DE  x  HNsu\tv@2u\1HvLBIH2HtHtL)H)уrЃ1҉փL1M09r1駺v2LLLfL똸    f    AWAVAAUATIULSH       M   E$   A      LD  L    IcIHRH<1HH4;D*D  L f,D  HH
uHRH;D  HH   HHƀ%D  ƀD      L[L]A\A]A^A_    []A\A]A^A_    D{  A   ND      HPHHDMfD      AWAVAAUIATEUSHLD  HXeH%(   HD$P1Hl$H|$HD$    HD$H    HH)DHLx      AuIKdIHH(D  f9t      6D  Hx      EK@I1HHE  HyH    HHA$    H),HH(D     H     H@    H@    H@    KdIHHf(D  AMƀ%D  6D  ƀD  H?     HD  LLHD$H D  HD$H(D  HD$H0D  HD$$H8D  HD$,H@D  HD$4HHD  HD$<HPD  HD$DXD  D$L    1HH    HT$PeH+%(   u1HX[]A\A]A^A_    LL    1LL    1    f         AWAVAUATUHSHHxeH%(   HD$p1x  NF  A  
     Ll$,H|$01DHD$,    LHD$h    H)DHfFAfA
@:{  t
AfMLD  L$    Mc̋M$IKILUIHH؉E  ME  HREL$IN#E  H       tUA  EN#8D  H      tUA  KII,HH(D    6D    KILLIHHfD(D  ƀ%D  ƀD  J#D  HD$,J# D  HD$4J#(D  HD$<J#0D  HD$DJ#8D  HD$LJ#@D  HD$TJ#HD  HD$\J#PD  HD$dB#XD  D$l    1LH         Ll$,H|$01DHD$,    LHD$h    H)DHfEfeAfA	}
t	A:{  ufA @LD  $L    Mc̋M$IKILUIHH؉E  ME  ME  HREL$IN#E  H 0  U    tUA  EN#;D  H
m    v  tUA  KII,HH(D    6D    KILLIHHfD(D  ƀ%D  ƀD  J#D  HD$,J# D  HD$4J#(D  HD$<J#0D  HD$DJ#8D  HD$LJ#@D  HD$TJ#HD  HD$\J#PD  HD$dB#XD  D$l    1LH            fFDAfA@:{  tAfMLD  L$    K$M$HƋEIIA$(D  A$E  AǄ$E       A$6D  2  KIHfD(D  HRH}HHHE  H8D  H9H}HyHMLHHUHP    1HT$peH+%(     Hx[]A\A]A^A_    HUI{LHIITITI)BL)މHHUI{LHIITITI)BL)މH<HUI{LHIITITI)BL)މHAHUI{LHIITITI)BL)މH,HLL$L$    LL$L$6D  HLL$L$    LL$L$6D  H߉T$H4$    T$H4$A$6D  +=     
   HH$H    H    LL$ L\$LT$LD$        LL$ L\$LT$LD$H$-H    T$H4$    T$H4$=         HH$H    H    LL$ LT$L\$LD$        LL$ LT$L\$LD$H$j=     =    HH$H    H    LL$ LT$L\$LD$        LL$ LT$L\$LD$H$H    LL$L$    LL$L$I=        HH$H    H    LL$ L\$LT$LD$        LL$ L\$LT$LD$H$H    LL$L$    LL$L$UAATATCUAATATUAATAT9UAATAT>ATfAT-ATfATATfATATfAT        ff.     @     AVAUATUSHoPHEH@( ut:MtcHtlD   A      L  L    d   H          L    []A\A]A^    A@uD{  A      L  L    d   H    AD$= uuQx   uLH    |DLH    gDLH    RNAD$2<uLH    !f    AVAUATUHD  SHH    11H    HI    <    DLHH@L4IIAE      DH蟶IH    H    ME  HH    1[]A\A]A^    f.         ATUSHHH?      H(       H           H߉Ņ  m}   U  H  H$       ?  AH  D`ƃ  H    9  H  HP\      H  N\H  Da?  P{  H  NH  A\H  F\H(     A   H      HC HH@0        H  B H[]A\        H[]A\    ?  H      Hx@    H    H     PH  H    H       H    H  H    H       `    f.         AUATUSH0HoPeH%(   HD$(1H  H    HHA    EuH?  t-ƅ@x  HD$(eH+%(      H0D[]A\A]        H?  xp1HH$    L  HD$      HD$    HD$    HD$            HL    H?  Hut)HL    H    Fu
H    HHL    uH?  xȿ  A    H  H    H               H(   ATLUSHH(HHu0LH    H(uLA[H]A\    H    ƃ LH    H      H       H0      H      L    H0      H[]A\        ff.     f    AVAUATUHS{  H    LD  IL    IH[HHHE  Ht    H[LLHHLE      1[]A\A]A^             AVAUAATUHcSHLD  HPeH%(   HD$H1Ld$H|$HD$    HD$@    LH)DHL    LHHDm HD HHPD  ƀ%D  ƀD  DfPD  HD  HD  HD$HBHD$HBHD$HBHD$HB HD$$HB(HD$,HB0HD$4HB8HD$<B@D$D    1LH    HT$HeH+%(   uHP[]A\A]A^        @     AWAVAUAATUSHHXeH%(   HD$P1Hl$H|$HD$    HD$H    HH)DHH	  D   A      HD  AH<$    H<$HIcH@HHHǀLD      ƀ%D  DTD  fDVD  ƀD  AH@HHHHD  HD  HT$HPHT$HPHT$HPHT$$HP HT$,HP(HT$4HP0HT$<HP8@@HT$DD$L    1HH    HT$PeH+%(   u#HX[]A\A]A^A_    Ը    D      AWAVAUAATUSHHPeH%(   HD$H1Hl$H|$HD$    HD$@    HH)DHH   D   A      LD  L    LHIcH@HHHǀLD      ƀ%D  DUD  ƀD  AH@HHHHD  HD  HT$HPHT$HPHT$HPHT$HP HT$$HP(HT$,HP0HT$4HP8@@HT$<D$D    1HH    HT$HeH+%(   u9HP[]A\A]A^A_    H  DH    H           ff.         AVLD  AUAATUHLS    HIHcH@H   HHD
 H
D  HD     fDXD  ǀLD     ƀ%D   ƀD      L[L]A\A]A^         AWAVIAUATUHSHH   L   Ht$eH%(   H$   1HB(L<$HD$8H  HHD$     HD$(H?  HD$_q  A?A    D$DfD$@f  {  D$H  H|$AF(HH   Ht$Hte	   t   	   
  LD  Ef|L    Df% f=   H$0HHHft$0f f HD	  t$L$HvAIH<HfL$0HGHHD D  AD	fAIAF(@tH|D  \	  IcHT$`HHt$PHHH@?  DD$0H,H    ;E$DD$0Ht$PHT$`  HvHHDHHf"D  fA   LA    HcUHE@1fA L4HcEHU0LHHE8IzHfArHD$PHDIrD)IB    IR<H<1AB HF    HAEA	D$fEbHD$0  
  Ht$0S  AFpfABMfHM   AT$ c     /  ABAT$MB	ЃABEl$ID$I

  A~  AQ
  EtAT$ARA[	  ABH<$D'AB,EDAf AF(
  
   fEED$|fP  Af uHD$||$AzfA t@D$|Df  f u1H$
HzHfL$f f HD׀AR7T$|Ht$8HHL$|LT$    T$|1LT$fEuDf% f   f fAB811fAB:Df% fAJ   fP   ARD
    f|$@fAJ5  AF2AF0AV,uv?HЃH@HH@  H6  H|$Ht@     1u1@	HH       D{  AЃLɃ  <        IA   @  DH		ABD|$Eg?AG<AfD9tAJ   L  ILLT$HD$I   HD$    LT$/  LҸ     LF  H   H+
    H4H|$E1E1HILT$HH5        H  IH  AFpLT$fD)fD$  HC ELT$E1A   DLHH@H    HD$PLT$LhD` H$LLT$M} f% fE1ɈUPH  AHT$H       LT$Ez0I AEz4AF(@tHC ARHHH     H  HT$1LH       Eu HߍVH!ЉE    Ht$(H|$     HD$HHtD  u|$_ I  H    ;E$}
Ax     1H$   eH+%(     HĈ   []A\A]A^A_    {  D$<t>HD$H    AF("KIDH@?  H,H    ;E$'L    Ht$(H|$     m $  ABAB   ABIRLLLT$`    LT$`H$HHHIB<L\$0JDJDH)HH)DH/ D$|H|$ HD$   D$<'Ax @  HI`  11Ec      QL$L|$0LT$@H   M   Ht$8LHL$HD$`    HL$Ht$8LT$@  L   L%  H  H   H+5    HH|$`E1HHA   LT$HH5        LT$HIBHC ELT$E1A   DLHHH@    HD$PL$E1E1LHHLhD` HC H@    LT$nH$ AB<H$Ht$0D0fD2Ea  Lt$ L    EPHHI    LL    19  HscAfD D  l@  IT$IxHIRJT(KT(I)L)CL HHqt$   H    AF(D$_D(D  L    AB AR>Gu	
   D$|AkABEl$MBID$I>  A   A  E  AF(@AB
  @ ABGUSH x  Ѹ   0x  H;    =     I       HtnH|$    HH    H       H@  IT$IxHIRJT(KT(I)L)CL HHI   AT$ARABD(fCD(BD(fCD(H4$AB<H|$0D>D:=     H       HuH   H|$`          =     
   LH    H    HD$pLD$hLT$`        HD$pLD$hLT$` @  1AT$ARBD(CD(=        LH    H    HD$pLD$hLT$`        HD$pLD$hLT$`n1   AT$ARBD(CD(g    H
    H5    6            SH6HHP    u[    H߾   [         HG H   Ht4SH    %
  f9  tHC H[H       [        f    ATHG(UHSHW(H9  H_(H    tHHCHBHH     HH"HCH 	      {       H{HLKD1HH    LC<H)IA    <HH{  H"  Bp=    H   V  HLHIHLILLH)H)։HH{  DbpA*	    E  fD#HS`{  At$L)C(CC  9r  ATD9   A<uAL$9  fC8AD C:H    {    ƃ   m        HA   @  H   HBH	SAT$<    HHA讟D[]A\       ATfAT H{  AL$9    A<    ~H   11@=      +H=    0	  
      HH    E8H  H    AH       HHɞATAT H{     H@   @  1 @  H    f         AVAUATUSHcFH  IILf(AL$ʉ̓    Iu=IE@Ht'IcUH<Ht       IcUIE@H    []A\A]A^    HHF8E11H   HHߋP Hp    tEMt$
H       H@MdDAvAE1   HIH fH!H	    M9uC    HIщHcPHHP(EuHB<wwLH$ulHIDLJHH<ILH 	fLzB1    HzHH    HHBx    H)   1HLH$t    ff.         AVL  AUATUSFHLDf,      HI    t%H  De H  H$ H  B$LL    1[]A\A]A^    D      AWAVAUATUSHH H(?  D>  D A  D+>     HE9  D$   IT$DD$      E1A   1A${  HHI  H       HHf  I?  I ?  LHT$HHL$    HL$HT$tM?  HSHKL!A>  HLA    |$   E~D$D$  D9|$  DH  I  H  IǄ         H3E1A${  I  HH          HKHH+    HHH    fx Px&t!tr@@   +   H   I|H tA?  @HLIDH    M8?  LcL    HsHHUI?  I?  LHT$HHL$    HT$HL$M?  HSHKL!I|H t!A?  @HLIDH    HKH    HL    OE>   
  LPL    D$    D9|$ZT$LD>     ~
 
  HH H[]A\A]A^A_LA${  H{    An@I?  LHC    I?  HT$HHL$    HL$HT$M?  HSHKL!|    AWAVLAUATUHSHHH    HHD`HD`HDxD|$HDxHD       A  @AD
   AEAA        A%$A   Z  @@           @              D$!    @$!    Hxu+A   tH   PH[]A\A]A^A_    x@HPH[]A\A]A^A_    H1ɺ   ƃ|   A       JLA      #HВLE1     t&H0LALIX    A9rڃAHH$            D      AWAVAUATUSHH  7  
  HC H@(        H    AĉH    H)HH    uH    uH߉?  A    uH߉$    uH߉D$    uH߉D$    uH߉D$    uHA    u H߉D$    u$HA    u,HA    uXH߉D$    H    H  H       A    1HH    HH    A9u    d
  ff.         AWL  AVDAUA	ATAUSHL    HI    t(H  D`  H  H$ H  A$LL    B4d, H[]A\A]A^A_        UHSHcVHHH?  A؍4- AD			      ]Q[]    ff.         AWAVAUATUSHHf    DIIcH$        D$HU        D  HTm HD HHH|D   HD$(    1Ҁ{   MHH?  u"  A{  H9  HrID  HT$AHHD$    HcHT$HHH|$0HH<$fT$ HD8HL D  ffA$Hcf(D      H<HyH<    I@?  H|$H<r  k  B    H|$	ЈAS    E$$A    IVBLA9    DL    AǅtHHD[]A\A]A^A_    I  G-   HHD$8A    B4-    LHD$@      E?  LD    D$ v  f1	DLI      D   HA    LH    t]I  ,H  I  HP   , D	I  D  I  L  I  H$ I  F$HHA    I@?  Ht$HAED2I@?  AA	ĉD2    LHD$     Ht$ t(I  D`  I  H$ I  A$H    B4d, L    A?  @   LB,      A?    @ Lt    H    LH    t^I  ,H  I  HP   , A	I  D  I  DL  I  H$ I  F$HH    T$   LHt$I@?      Ht$@H|$8    Hl$H    H\$0HHH[HH$HTH\$(HLf"D  E1f"D   |D  A    	I  H    H           I  H    H               AWIAVAUATLUSHpLH0eH%(   HD$(1    It*HD$(eH+%(   ]  H0L[]A\A]A^A_    AHtII        H    ŅuIHHD$     , HHD$    D     AA9s=1DHA    A   A9rD1HA    A   A9rA   A9s/D1HA    A    AA9rI, HMA   H
    L    HH$    H4$t+I@  LI@H$ I@A$LI     I  uL    HH$    I@D  I@H$ I@A$H4$LA    L    HH$    H4$t(I@D  I@H$ I@A$L    1Ҿ, H    A 	  4d, 1HA    LA    HH$    H4$t(I@D`  I@H$ I@A$LD4      A@   HD    A  @ HAt    A9Q   , H       , H    L    HH    t,I@   `  I@H$ I@A$HLIE1    1Ҿt, H    E1AǇ    IǇ    AǇ    IǇ    AǇ    AǇ    A    Lm tI1HL    IIXIuHt$H|$    A@H    IIp         HfAL    Aq    A AqH    H    AIHH       Lt$HD$    LD$$           HI@P\L    A   HHL$   D$$        I01ɺ          H    IH   H3H    &1    f    AWAVIAUATDUSHHGL$@Lf    A׍PD9    B-    ƉD$M      D   LD$    LH    tcI  ,H  I  P  D$I  !HD  , 
I  L  I  H$ I  G$HLA    HI@?  LH,CAEHA	ĉD*I@?  D*    LHD$    Ht$t(I  D`  I  H$ I  A$L    t$DL       L    LI    t`I  ,H  I  P  D$I  , !ЉD  I  L  I  H$ I  G$LL    IH?  HI@?  T$HL[1H]A\A]A^A_f    HcAUHvATDUHHSHL@?  HHHL
D  H|D  t,uIcHT
HH(D  9tJ[1]A\A]    IcHDHf"D   uƃ|D  DLH      1[]A\A]    HcLJ4NETE9Tu D  f<w9        Hƃ|D   DLH      W   ΐ    AWAVIAUATUSHHHnH+-    HHH-    DeDfÃHL,P\$AEJ    L@?  f\$0HD$8IŋEEE EMD$IcEE9    A9E9A9C          H    IUHIU@LI   IA0    IA8    IA@    IAH    IAP    2f% f=    AXx  D$    HD$    	  f   LzRAGfA#G!fQ  1ۃID  LL$ HHL$    A,{  HL$LL$ I9}HHcH@HHLE   t  D  fA3WD  A37	V  H  9uA      _      HBHzf f AXx  HEHD$ D$D$1D<D  ID  LL$(HHD$     A}Q LL$(HD$\  EH|$ HDD$(  LcHcL$uK[DT$0IHL$HHHHHLLHD$@f*D  fD.D  xD  Hǁ0D      f    \$0HELT 1%A$   A)H   H	HL9  p u@@fLJ<GM@?  I<H@H<H  H   DGDf@f9    D)@l\        HHbLzRnEPAA1	AA1A
  1E	A	A(uIQ(L    t$DL    H|$ {  AAx        HcHcD$H<vH4HD0HL"D  9K  )f"D  t:L    A9E },AUSI x    H|$ t   tT$L$L    Uu|$       Ht$H|$ HH[]A\A]A^A_    1A   \$0}  L\$0D$(A9EyAM t$LQ!    L\$0Ht$K[IHD0HL"D  )9    Of"D  AAx   L    A;E HD$@|D  AUSI x  ָA0x  I>@         HHHcH@HHAE  <    E1LHLL$    LL$A}Q t	E    D$D<AXx  I(x     A   A{     A1f"D  L    A;E AG2AI(   %I@?  H|$8T$0MHD8@HED@B1Hz(AD	DB1B(࿀wSfEEB(HLL\$8LL$0    L\$8HL$E1K[IHDHfE,D  LL$0|fA DAAx   L    A9E  DA)H   CHL$K[\$0IHDHLH0D  fD.D  H   f,D  ѸA0x  TI>    D_L    A;E HLL$ L1ҹ   \$M0x  HIHŉA~H}        HIHuH\$LLL$ If.         AWAVAUIATUSH0HVH+    H{  HH    DzZfA9    ADrDbHT$HHHH@?  Dt$$Dd$(H,KvIJt HLfD9(D  H4$  E ۉD$,ID  HHD$    H4$HT$HD$f,D   zDB  .D  fE1D*D  @fD,D  H)   HϿ@   )A9   HRHH#0D    1ɉփHuALH4HrI@?  HHR@HKvILH@@    Hp(H@HHHH(   H@0    H@8    H@H    H@P    B)jD  HAB*xD  H    ;]uHt$H|$H0[]A\A]A^A_    D$,AύSLΉ$!    KvILHCHL"D  )9    HOf"D      ;E $~0AAx   t&HB+|D  tUSI x  r?T$(t$$L    =H0[]A\A]A^A_    Hz     1ָA0x  I} @$    $f.         AWAVAUATUSH Ht$fm  DHIIc        D$H]     Aׁ   I  LD  H4$LT$    H4$IHcD$H@HHDHH D  D(D  AH4@HHHH|D  <   AH4H4pH@?  L9L   ƃ|D   LH  LL$D$T$    H    T$D$HL$fAtHt$H    H|$DL    1H []A\A]A^A_    <{    ƃ|D  LL    H []A\A]A^A_    H  DH    H            AWAVAUATUSHLgPLz*DjH4$ID$@   M$  HL       v)vHug1L    H[]A\A]A^A_    tKALL    I$?  tH4$ALL    I$?  u뛻KALL    zH4$LCALL    \Z     ,     f.     D      O\DJ:HL9s6w]H2HDDD)GXD    H1<CO\G]u    ff.         Ir1NwFA!@8u:@D    D8t)D!AA8u D!@8t    @8u1    @zA@%?	A       ff.     f        HHO H1Ht H$    L    HL)H  H?@tkH    B H)HB    HHB     H
   H
X  H    H     H HPHPH@    H9uH        r9rrr9rrz @H@tjrNJ;JrH    B    H)HH
   H
X  H    H     H HPHPH@    H9udff.          H(      ff.     @     HGP    f        fD          fD          fD      Q   H    v@Vt@H    t* H    HD~ 0  t@HH4H   HDHF    H    tπ* H    HD~ 0  uHHhHEHF    H    HF    ff.         ATAUSHHA   AH        CtYHcH     C%  	ЍQw${ t
{    { ukEEH[]A\    HcH%      	ЀHcH     ȀBFH[]A\%  	    Et    $H []A\    d        @   t+   tGF~BP	C    H    1
9tH

u    u           Atf@   Ou
         /   tʍO   ~|
trt	    @@
u>
   @
t"ArOH    
u 
  	    rH     <
u
   밸 
  	    
   ]	    f         AWMAVA
   AUATA
   UDSHHDot$7$H    H)ItQHHH   7   F<t$D$T$4$@}HՋkdD9~E|$"  w;|$*  tA9|;A
uPD<
tDHD[]A\A]A^A_    A9}
|$*  A
uff
tDrEf.         BAWAVAUATUSDv)                   {  I   A    HLEF*A@   fA@Df8H       HHC
HS3EDHH
t)As#AHLC1[]A\A]A^A_        BAWAVAUATUSDv)             F*HLIA    EA@   fA@Dn6H       CEuPHHBHS3EDH}
t/As)AHLC1[]A\A]A^A_    C 몸    AWIHAVAAAUAATAUDSHŉHzH    HHǂ      H)  1HD^A
   1AC fCDs    C	A   u"u1A[]A\A]A^A_        D
$A   fCDCAw
u   뱃u   AD      AW8   IAVAUAATUHSH  v,T$H|$ HT$ eH%(   H$  1HHL$DD$ EoPH҃L$$ÃΉAGA@΃<  <  D$ Ht{  D$D$   `~\L$ ADpDi |$IcAA|PDD)~8A2AwHtt|$HT$ Ht$j   뵋|$AAG,HT$ HL$ƉD$T$ D$   t$DjAO)M   @A  E1Aw0Ew4A!fA#w4AEEtr(LT$L$|$c|$LT$<
L$EHt$ L   D$AvQIcD$ ADPAD$AAGHH$  eH+%(   T  H  []A\A]A^A_    Ht	   1һ   똀|$ |$EgAAO)M   t@t@A   Aw8@D\$$E1    ADEAUA@AT$ ADD@~&A{  @   @@t$$5    D$)A   ft$%m|$HT$ Ht$   a1ҋD$|$ L@C,Aw6A   DAOC9D$$AOB)    ff.            SHGIH   LcFLHLϋw0t\I        HG HHtG(Ht=~>   Ltڃo(H!HG LHAt0~LHAiD( 2  LHLʋJ(B,)΃
~A   @IH    IMAQ4IA8[    E1Lc        HHH  LAHQA(F:AxHu<AEE<
D,  CF:(  A         B2NHAGB1B1,      Ƀf AfADB2D,  A   t@fB1J2D,  A   t1B0J1
f%AA 	ȈB1DfB2D,  A   u1B1J0B1    ApwBt3b1B2 ыB0J1
f%	ȃB1fB2릍HA@~%1Ht   @u1Ƀ9tHr1f.         AWAVIAUATUHSH˹8   H@  I   eH%(   H$8  1Ld$xLHHtH    tft-H$8  eH+%(     H@  []A\A]A^A_    A@(L$u%@  @tCPDm<IHL$tLDǉD$AL$ul$tAP0A@0
ff  p    @EEpDƉ@@8t$}  f@8t$~  f@:t$~  ApB@8t$|n  |$f@8S  
f8<  9D$t2     C; Ht$xH)HcHi  H   H  H1H  Hi  H   H$HcHi  L   AP(  A@1A   D9DN	Dl$   E1L|$MLt$ MLD$(T$4I3LHu1ɋt$tD9t$   NL$ID9t$   FlPu<HL$tLDH$HT$xHH  H1HuH<$뛅IC;<wC;C; H$8  eH+%(   Z  H@  Hs<H1[   ]A\A]A^A_    L|$Lt$ Dl$LD$(T${ tDl$CSA)BD(CD$,  AGA    HE M   HD$ A$fA@(C,H=    A   C0    A$f f   f% IT$f= uIT$ǃ@|$  1ҹ   IAD)Ik`Ht   X  +  2   1҉Aā    Ik`   Hu  DIkHcH  rDt  p  9~	t  |$	
    D
  C<Hk
J(#  H| { D0  t   D)AAHi  IH   HD$(Hi     (  $A  1A   t
  D$C)  C8fD$DD    Ii  H   H    Dk:At4$A9  HkLc$IkLHJTHHً      )w	  IkBA   J4    Ht$HJTHL,A   @A9       {   Mi  C9     B#   vCD1HC eDd${ C  D,$Lt$(DDHLAFD(      HcHi  H3   H   Hi  H   H4$L   #u<|$HL$tLLD$LD$t$tH<$AH@APA&{ LD$4A@@CA@AAP@)C   HL$zL$    E1F#   Hi     L   L|$(C LHDd$$DHHHs<H1ɺ       1HIi  <$DLD$HL$   HL$LD$DDfDC:D<	  A9	  IkJT HD      fA
	  IcA
   HD0HDA  ~vtr!ǃk	  tRtR9M9|9~A  ~A
ut1HLD$0HL$T${    D,$Dd$ut9}fA
tA*  Ii  AH3   kd9|EfA
tDd$Ht$(DHD HHcHs<H1ɺ       1HfHL$    TMi  DT$LD$0Ii  SB#   A   E)H   McHD$Ii  L   H   HD$8B  C)McD$@{  D${  D$0Ii     D$PIkID HHD$X   Mi  C(IA   <O  <y  |$0LD$`v@HD$X   1  .Ht$   LL|$Ht$8LD$`  Ii  H      <  1   
  1Ii     8D$P  Ii  C(H     y	  	  |$0R	  HD$X   1  <	  Ht$   LL|$Ht$8   Ii  H      <KIi     9<A    A     @Ii  Ht$   LIi  LHH؀    HHD$`   HL$hnHD$`    t%Cd   HL$hH   Ht$H;2d$L$@LHIi     Ii  C1H   <G   Mi  Mi  B   B#   { z  Dd$    A   @|$@ Ht$   Lk  Ii      W       Ii     L$!8  Ii     Ii     Ii     8D$PMi  E1F#    51{  McLD$HD${  D$0Ii  Ƅ   IkID HHD$@HLIMi  C(IA   <5       |$0  IkHt$HHD0H   1  d  Ht$   HH|$Ht$8  Ii  H   V  ƀ    T<wIi  Ht$   HHƂ    A   <  <  D$Ƃ   <uHD$ D$ILHLP `C( LIi  C1H   <G      1)HcHi  H   HHt$(H 1E1H   H   H H   L   
uHi  D   DDHHAHs<1ɺ   H    Dd$   Ii     L$!8Ii     Ii     Mi  E1LF#   xHt$   HIIi  D$L\$PLHLƄ    HD$ P LL\$PC( 1LCA   <GA   CA   1҃<GA      Ht$   LA   <tL<#Ii  Ƅ   D$HD$ D$MLHHP q      IHL Ii  C   <v1Mi  Mi  B   B#   Ii     R|$0vHD$@   1  kAƃ   (A  A
   A
A  IkJT HD      fA
'  IcHD0HDf
  IkIcHt>Ht3D$Hk`H  ]
    H  ǀp     ft  ǀ      D$	1Hi        { Hi     8C(~{ ~>Dl$  Dt(A	t"C<McHk
J8#  H|    H    CHC1HCH    HC  HC C( Ht$ V JvNHi  s(@8   5H      1CHSH    HsHC  HS C( A    H=        Ik`H߀t   ;   1)։+  =  wGMk`B;p  
  DL        A
   D$Hk`H  aIi     Ii  Ht$   LHƂ       <   <tjD$Ƃ   <HD$ D$MLHHP j|$0vHt$X3   1  ƀ   ^   Ii     L$!8tIi     *   Ii  LHIi  H؀    HHD$`   HL$hHD$`    Cd   HL$hH   Ht$H;2cǁ   1HC6W{,K4C) C0tD$ !:D$ !+ff.          AWAVAUATIUH(  SHHeH%(   HD$HHH@H@ L8  H  d  H    H  HH    H HJHJHB    H9uH  H@  I    HH    H LALAHA    H9uHǃH      AI   X  H    H     H HHHHH@    H9uH    H    H HBHBHB    H9u     ƃR   fb  1ftA$  Q  A$
  f\  AD$<T     	f^     	f`  A${  ȃuj  A${  uɃ!Ȉk    ƃk  ƃ@	  LH	  AqAI	  1Ht     P	  Ayu	P	  ƃX	   D$    HN  HE  E1ftE$  AE+   P	  E${  (    H    DH)HHL  D[  HcѾ @  H    u D<      <J    	L)|$H  ,  At$<LHL$DD$J    DD$L)HD  !8tALHt$hT$DLLVJ    LHL)AH  rDH1d  Hd  H@HHIE  HD$eH+%(     HL   1[]A\A]A^A_    H   9u1   J    L)HA   Ƅ  
     |$   ),A${  ȉ@΃<Zk  OHD$eH+%(   uNH[]A\A]A^A_    YƄ  
  pJ    
B  L)HƄ  U    @     H        ff.     @     H        f.     D      H@eH%(   HD$81HD$ HD$    H$H     HD$
  HD$    fD$,
  fD$.
  fD$&
  fD$(
  fD$4
  fD$*X  fD$"d  fD$$h  HT$"D$0l  HL$*fD$6   Ht$0fD$ H  H;  t0H  HHHpH    HD$8eH+%(   uH@    H;HuH;pu         h}   H:  HH{  H
  H#  HǇ
      H
  HǇ       HH)   1HHHǂP      Hǂ      Hǂ      Hǂ       Hǂ(      Hǂ0      Hǂ8      Hǂ@      ǂH      F
  F

  F
  Fǂ
  }   
  F
  FX  Fd  F fh  F"fj  F$fl  Hǂ
      Hǂ           ff.         AWAVAUATUSH8h}   HD$     HD$(    HD$0    uH
   uH8[]A\A]A^A_    L  IL    A   H  AE\E]LA   E   E   EupD$A   E} D\$DL$$A   DD$D$A   D$A   D$    WD$   D\$D  D  Aĉ   DD$A)9Dߋ
  DB
  D
  D
  DL$)A9DAB)D\ A9ABDD)E9ABDk2HH{  i   DA9  
  W9G
  
  W9G
  
  W9G
  
  W9G
  ,$D|$i   ǃ\      Dt$T  LL  AD8HABAD8AB@8  1҃H8  CT  H9BHL9uDt$HcP  E9EHEGE9EGD  1Ƀ
C  P  H  D D9ABHH9uAD9   `  `  A9  
     s  L  X  Hǃ      9BЉX  A9   D9&  `  d    H8L[]A\A]A^A_    D9
  W9B
  
  W
9B
  
  W9B
  
  W9B
  ,ǃ`      A9  D  L  ǃ     X  E  9BX  ǃ     A9s=
        vG9F
  
  W9G
  H8H[]A\A]A^A_L  D  ǃ     )֋X  \  E      ǃ     9G9BЉX  
  W9B
  
  W9B
  ^
     DBD9DC9ABǃ     9CЉX  dwǃ     9CЉX  ǃ     9G9BЉX      AWAVAUATUSH8eH%(   HD$01i}   HD$    D$  HD$(    D$$  uD  HAt'HD$0eH+%(     H8[]A\A]A^A_    L  HL    D   HA  E 2+
    f93
    D      L   D   D      DL$D$T$D$      LCDL$T$HD$|  D$Dt  f  x  D  Dt  D    ǉx  |  D  D    A;HXD11҉D$AD1҉D$AÉ1҉D$ E9sEں   A   D9rAº   A   1A   f9tD+D  Ƅ  HHuD{  {  11A   E!D@t   t:{    HHuDp  AHXD11҉D$$1҉D$(D$,1   ut$9CCHHuAp1@u1HƄ          u1T$)ʍ4HcHi҉H )   @8Gփ  Hu      HC H@`HtH    ƃ  HD$0eH+%(      H8H1[]A\A]A^A_    HD$0eH+%(      H8L[]A\A]A^A_    1jDA	D  ƃ  HL$Hߺ      D$D$    D$    fD$  D$    ƃ  $A@u*   DDADƄ      HA	E1        I      HǇ
      HǇh      H
  DH)p  1H    LIǀ      Iǀp      Iǀx      Iǀ      Iǀ      fA  Aƀ      H  H    H           H  H    H           H  H    H           H  H    H           H  H    H    H           H  H    D$H       Dd$    
   H  H    D$H       Dd$    H  H    D$H       Dd$    H  H    D$H       Dd$    H  H    D$H       Dd$    H  H    D$H       Dd$    H  H    D$H       Dd$    H  H    AH           H  RA E 8  H    H       X    HD$DH    H  H           HD$8HD$H    D\$@H  LT$0LL$(H   LD$ L$HD$    k   L$LD$ LL$(LT$0D\$@HD$8    H  
  DH    H           H  H    L  H       LLp  D      HH    t)H  1҉  H  H$ H  A$HL1E1    1A9tGH    ED- D9t5H  AH    H       Av
        HL  DI   DO"H    H    []    L  DM   f;G"rDH    L    1ȉHwX    I$  HH    H       L        I$  H    D$H       HcD$    I$  HH    D$H       HcD$    H  H    H       H  H    H               SH  HH    H       H?  
rHX{  H{      [    [    SHv1tHSH   E1      H[    I$  H    H            
  I  H    H    A>  HDH H    [H   ]A\A]A^A_    H  H    H           H  H      H           H  DH    H       H        H  DH    H           H  H    AH           H  H    H           A9s{DH    L        H    L        H    L        H  H  H    H           H    L        tDH    L    L    I   H    ̉DAȉ      H    AHz@H    AɉAPH   E    0{  HT$0XH9sH  H    H           HD$04{  H  H9sH   HH            HD$8H9sH   HH            HD$@H9sH   HH            HD$H8{  H9sH   HH              H  HD$0H  H     HD$0H  H(  8  hH   u.H  H    Lx  H       H        H   tH(   tHD$8Ht[H|$@ tSP  H  H@  HD$@H  HX  h  H@   gHX   YHD$HHt'  H  Hp  Hp   (HT$(H4$ƃ  H      HT$0Ht$H      HT$0Ht$H(      HT$8HtH@  Ht$    HT$@HtHX  Ht$    HT$HHp  Ht$         L#
   fx  LID$H       L   L   L   Lz   Lm   L`HC@tID$@H\   H   H  ID$hID$@f@P ID$@HT   ID$@HXID$@`TID$@@tID$@f@x AD$x 
 T   tHH@  H@@H8     tHH  H@@H@  HLx      HH@@Ha H;    tH  H    H           H  ƃAx  H    H       tH  H    H           H    L        H  H    H           H  H    H           H  H    H           H  H    H               AWH    AVAUATE1UHSH  L  H       B    L    HI    H  D0H  H$ H  A$LL    H         H       H         H       H    H     H       H    D  txH    woH    @  t`H    wWH       tHH    w?H      t0H    w'H      t  H    H    HEH  DH    IH       I	[1]A\A]A^A_    $I  DH    H       $    I  H    H           I  H    H           H  H    H           H  H    H       1C8    H  H    H           H  PDH    H       X1    H  H    H           H  LH    H           H  LH    D$H       D$    IiĠ  H    L$6D  H  H       L$    H  H    L$H       H4$L        H  H    H    H           H  H    H       LH        H  H    H           H  H    H           H  H    H       A    ?  H    ?  H     H    H           H  H    H           D$H  H    H       H    l$    H  H    H           H  H    LT$`H       LT$`AB    H  H    H           H  H    H       H  H    AH           H  H    H           H   [H    ]A\A]A^    H     H    H           I  H    H           HH    H       L    LX[]A\A]A^A_    HH    H    H       x   H   A   Hx@        HH    H    H       x   L    1HH    H       HT$H    H           HH    H           H$H    A   H       L        HH    A@H              HHH    H  AWDH    AVDL$ DD$$H       H  H    H       H  H    UATDL$,H   DD$(L$$T$     H8[]A\A]A^A_    DH    iH  H    H       H  DH?  H    H             H  H    H    HDHH    [H   ]A\A]A^A_    H  H    H       A    IVBL   DI  H    H   D@    A    I8H    H           I  HDD@[   ]H    A\H   A]A^A_    I  LD$(H    HL$ H   LL$    LL$HL$ LD$(    I  HHH    []H   A\A]A^A_    I  PDH    T$H       HP[]A\A]A^A_    LR    I  ω\$0H    LL$8H   L\$0    L\$0LL$8    H  H0H    []H   A\A]A^A_    I  H    H           H  H    LL$D$H   T$    T$D$LL$    H  H    D$H       D$    H  H    H              H  H    H       1    H$8  eH+%(      H  H@  H    []H   A\A]A^A_    H  H    H       {     Mi  E1F#   C Hi     L       L$LH    HH    H$8  eH+%(     H@  Hs<H1[   ]A\A]A^A_        H  DH    H       DL        H     DH    H           H  H    H           H  H    LD$0HL$H   DT$    LD$0A   Ii  HL$DT$H   BA   @A           H                SH        H            tH        1H    H    H        ÅtH            [                       il4965_post_associate                                                                                                                                                                                                                                           {?u?n?h?b?n>h>b>n=h=b=n<h<b<n;h;b;n:h:b:n9h9b9n8h8b8n7h7b7n6h6b6n5h5b5n4h4b4n3h3b3n2h2b2n1h1b1n0h0b0n%h%b%n$h$b$n#h#b#n"hbnhbnhbnhbnhbnhbnhbnhbnhbnhbnhbnhbnhbnhbn h b ] X S N n?h?b?n>h>b>n=h=b=n<h<b<n;h;b;n:h:b:n9h9b9n8h8b8n7h7b7n6h6b6n5h5b5n4h4b4n3h3b3n2h2b2n1h1b1n0h0b0nhbnhbnhbnhbnhbnhbn h b a ` _ ^ ] \ [ Z Y X W V U T S R Q P O N M L K J I H G F E D C B A @ ? > = < ;                 	                                                      
   
   
   
   
            
   
   
   
   
            
   
   
   
   
            
   
   
   
   
            
                               il4965_set_dynamic_key                @  D  H          fw_restart      amsdu_size_8K   11n_disable     queues_num      swcrypto                  )B                            0B                                                                          a   d d U  i  x    }   >                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             4               5               7               8               <               =               F               L               T               \               d               f               |                                                                                                                                                                                                                                                                                                                                                                                                                                                                               



   7n
  	
$	0			H



`			l



x



       	
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           drivers/net/wireless/intel/iwlegacy/4965.c      Calibration conflict R1 == R3
  RXON timing failed - Attempting to continue.
   RXON timing - Attempting to continue.
  %s Should not be called in %d mode
     Could not send C_PHY_CALIBRATION
       Invalid RXON configuration.  Not committing.
   Error setting RXON_ASSOC (%d)
  Error clearing ASSOC_MSK (%d)
  Failed to restore WEP keys (%d)
        BSM uCode verification failed at addr 0x%08X+%u (of %u), is 0x%x, s/b 0x%x
     Can't find txatten group for channel %d.
       Tx Power can not find channel %d
       TX Power requested while scanning!
     invalid channel switch from %u to %u
   NO VALID UCODE IMAGE IN INSTRUCTION SRAM!!
     uCode INST section is invalid at offset 0x%x, is 0x%x, s/b 0x%x
        Unsupported (too old) EEPROM VER=0x%x < 0x%x CALIB=0x%x < 0x%x
 device EEPROM VER=0x%x, CALIB=0x%x
     Intel(R) Wireless WiFi Link 4965AGN     Unable to add station %pM (%d)
 failed setting tx power (0x%08x).
      6iwl4965: Intel(R) Wireless WiFi 4965 driver for Linux, in-tree:
      6iwl4965: Copyright(c) 2003-2011 Intel Corporation
    3iwl4965: Unable to register rate control algorithm: %d
       3iwl4965: Unable to initialize PCI module
     Tx flush command to flush out all frames
       Unable to allocate memory for LQ cmd.
  Failed to alloc_pages with %s. Only %u free buffers remaining.
 drivers/net/wireless/intel/iwlegacy/4965-mac.c  initializing regulatory failed: %d
     request for firmware file '%s' failed.
 uCode file size %d does not match expected size
        Driver unable to support your firmware API. Driver supports v%u, firmware is v%u.
      Firmware has old API version. Expected v%u, got v%u. New firmware can be obtained from http://www.intellinuxwireless.org.
      loaded firmware version %u.%u.%u.%u
    uCode instr len %zd too large to fit in
        uCode data len %zd too large to fit in
 uCode init instr len %zd too large to fit in
   uCode init data len %zd too large to fit in
    uCode boot instr len %zd too large to fit in
   Failed to register hw (error %d)
       failed to create sysfs device attributes
       failed to allocate pci memory
  MPDU frame without cached PHY data
     field "scan->direct_scan[p].ssid" at drivers/net/wireless/intel/iwlegacy/4965-mac.c:920 memcpy: detected field-spanning write (size %zu) of single %s (size %zu)
       FH49_RSCSR_CHNL0_STTS_WPTR_REG  FH49_RSCSR_CHNL0_RBDCB_BASE_REG FH49_MEM_RCSR_CHNL0_CONFIG_REG  FH49_MEM_RSSR_RX_ENABLE_ERR_IRQ2DRV     Scheduler BC Table allocation failed
   Unable to initialize Rx queue
  Timeout stopping DMA channel %d [0x%08x]        %d frames still in use.  Did we lose one?
      Read idx for DMA queue txq id (%d), idx %d, is out of range [0-%d] %d %d.
      Unable to initialize rate scaling for station %pM.
     Link quality command failed (%d)
       drivers/net/wireless/intel/iwlegacy/common.h    idx %d not used in uCode key table.
    field "il->stations[sta_id].keyinfo.key" at drivers/net/wireless/intel/iwlegacy/4965-mac.c:3301 field "il->stations[sta_id].sta.key.key" at drivers/net/wireless/intel/iwlegacy/4965-mac.c:3303 field "il->stations[sta_id].keyinfo.key" at drivers/net/wireless/intel/iwlegacy/4965-mac.c:3252 field "&il->stations[sta_id].sta.key.key[3]" at drivers/net/wireless/intel/iwlegacy/4965-mac.c:3254     Unable to prepare broadcast station
    Unable to initialize rate scaling for bcast station.
   Exit pending; will not bring the NIC up
        ucode not available for device bringup
 Radio disabled by HW RF Kill switch
    Unable to set up bootstrap uCode: %d
   Unable to initialize device after %d attempts.
 START_ALIVE timeout after %dms.
        Unable to initialize rate scaling for bcast sta.
       Invalid station for AGG tid %d
 field "tx_cmd->key" at drivers/net/wireless/intel/iwlegacy/4965-mac.c:1607      field "&tx_cmd->key[3]" at drivers/net/wireless/intel/iwlegacy/4965-mac.c:1627  %s %s: rejecting DMA map of vmalloc memory
     Could not obtain free frame buffer for beacon command.
 Trying to build beacon without beaconing enabled
       Unable to find TIM Element in beacon
   Error configuring the beacon command
   Error can not send more than %d chunks
 Hardware error detected.  Restarting.
  Microcode CT kill error detected.
      Microcode SW error detected.  Restarting 0x%X.
 Disabled INTA bits 0x%08x were pending
 Not valid error log pointer 0x%08X for %s uCode
        Desc                                  Time       data1      data2      line
    %-28s (0x%04X) %010u 0x%08X 0x%08X %u
  pc      blink1  blink2  ilink1  ilink2  hcmd
   0x%05X 0x%05X 0x%05X 0x%05X 0x%05X 0x%05X
      No free aggregation queue available
    Start AGG when state is not IL_AGG_OFF !
       queue number out of range: %d, must be %d to %d
        Read idx for DMA queue txq_id (%d) idx %d is out of range [0-%d] %d %d
 Requested station info for sta %d before ready.
        BUG_ON idx doesn't match seq control idx=%d, seq_idx=%d, seq=%d
        BUG_ON scd_flow is bigger than number of queues
        Received BA when not expected
  Stopping AGG while state not ON or starting
    NMI_INTERRUPT_WDG_NO_RBD_RXF_FULL       drivers/net/wireless/intel/iwlegacy/4965-rs.c   expected_tpt should have been calculated by now
        tid exceeds max load count: %d/%d
 Error setting new RXON (%d)
 Error sending TX power (%d)
 BSM write did not complete!
 txpower idx %d > 107
 iwlwifi-4965- include/net/cfg80211.h %s is not in decimal form.
 %d
 uCode did not respond OK.
 %d no suitable firmware found!
 .ucode %s%s%s iwl4965 GFP_ATOMIC GFP_KERNEL No suitable DMA available.
 Detected %s, REV=0x%X
 Failed, HW not ready
 Unable to init EEPROM
 &il->mutex initializing geos failed: %d
 Error allocating IRQ %d
 %s &il->wait_command_queue &x->wait File size way too small!
 File size too small!
 %u.%u.%u.%u iwl-4965-rs dev_alloc_skb failed
 Can't stop Rx DMA.
 Invalid scan band
 invalid SMPS mode %d FH49_RSCSR_CHNL0_WPTR FH49_MEM_RSSR_SHARED_CTRL_REG FH49_MEM_RSSR_RX_STATUS_REG FH49_TSSR_TX_STATUS_REG FH49_TSSR_TX_ERROR_REG UNKNOWN FH register values:
   %34s: 0X%08x
 Keep Warm allocation failed
 Tx %d queue init failed
 Unable to add station %pM
 Removing wrong key %d 0x%x
 no space for a new key Unknown alg: %s cipher = %x
 HW not ready
 Unable to init nic
 Unknown encode cipher %x
 include/net/mac80211.h include/linux/dma-mapping.h Could not allocate frame!
 Too many chunks: %i
 Claim null rxb?
 Unhandled INTA bits 0x%08x
    with FH49_INT = 0x%08x
 disable radio RF_KILL bit toggled to %s.
 enable radio Init RT Start IWL Error Log Dump:
 Status: 0x%08lX, count: %d
 Start AGG on invalid station
 C_CT_KILL_CONFIG failed
 Station not known
 NMI_INTERRUPT_WDG SYSASSERT UCODE_VERSION_MISMATCH BAD_COMMAND NMI_INTERRUPT_DATA_ACTION_PT FATAL_ERROR NMI_TRM_HW_ERR NMI_INTERRUPT_TRM NMI_INTERRUPT_BREAK_POINT NMI_INTERRUPT_WDG_RXF_FULL NMI_INTERRUPT_HOST NMI_INTERRUPT_ACTION_PT NMI_INTERRUPT_UNKNOWN NMI_INTERRUPT_INST_ACTION_PT ADVANCED_SYSASSERT OK FAIL BAD_PARAM BAD_CHECKSUM HW_ERROR_TUNE_LOCK HW_ERROR_TEMPERATURE ILLEGAL_CHAN_FREQ VCC_NOT_STBL FH49_ERROR HW_ERROR_ABS_LOCK HW_ERROR_CAL_LOCK_FAIL NMI_TRM_HW_ER DEBUG_0 DEBUG_1 DEBUG_2 DEBUG_3 tx_power temperature Invalid HT rate idx %d
 Invalid tbl->lq_type %d
 GF was set with SGI:SISO
 include/net/mac80211.h Current Rate is not valid
 tbl->expected_tpt is NULL
 SGI was set in GF+SISO
 Fail start Tx agg on tid: %d
 iwl-4965-rs                                                                                                                                                                                           firmware=iwlwifi-4965-2.ucode parm=fw_restart:restart firmware in case of error parmtype=fw_restart:int parm=amsdu_size_8K:enable 8K amsdu size (default 0 [disabled]) parmtype=amsdu_size_8K:int parm=11n_disable:disable 11n functionality parmtype=11n_disable:int parm=queues_num:number of hw queues. parmtype=queues_num:int parm=swcrypto:using crypto in software (default 0 [hardware]) parmtype=swcrypto:int alias=iwl4965 license=GPL author=Copyright(c) 2003-2011 Intel Corporation <ilw@linux.intel.com> version=in-tree: description=Intel(R) Wireless WiFi 4965 driver for Linux srcversion=6F4A8B8B13E6E30B273B277 alias=pci:v00008086d00004230sv*sd*bc*sc*i* alias=pci:v00008086d00004229sv*sd*bc*sc*i* depends=iwlegacy,mac80211,cfg80211 retpoline=Y intree=Y name=iwl4965 vermagic=6.1.0-37-amd64 SMP preempt mod_unload modversions                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      0        0                                        (          (                                             (  0  (                 0  (                 0                0          0                         (    0  8  0  (                     8                         (    0  8  H  8  0  (                     H                                   (    0  8    8  0  (                                                                        (    0  8    8  0  (                                              (  0  (                   0                                                                                                                                              (  0  8  @  8      0                                                                                                     (  0  (                   0                                                                                 (  8  (                 8                         (    0  8  @  8  0  (                     @                     8               8                                                                                                                                          0  8  0               0                                                                             (    0  8  X  8  0  (                     X  8  0  (                     X  8  0  (                     X                         (  0  (                                                                    (  0  @  0  (                   @                                     (    0  8    8  0  (                                              (    0  8    8  0  (                                              (    0  8  @  8  0  (                     @  8  0  (                     @                             (    0  8  H  8  0  (                                            (    0  8  0  (                                            (    0  8  H  8  0  (                     H  8  0  (                     H                       (                                                                                       (  0  (                                                                      (    0  8    8  0  (                                            (                 (                                             (    0  8  P  8  0  (                     P                   (    0  8  0  (                                            (  0  (                   0  (                                        (                 (                         (  0  (                   0                                                                                                                 (    0  8  @  8  0  (                     @                                 (  @  (                 @                                                                 (    0  8  0  (                     8  0  (                     8                                   (    0  8    8  0  (                                              (    0  8    8  0  (                                              (  0  (                   0                         (  0  (                                      (               (               (                       (  X  (                 X                                                             (  0  (                                          (  0    0  (                                            (    0  8    8  0  (                                              (    0  8    8  0  (                                              (  0  (                                          (    0  8    8  0  (                                                                                                                                  (  0  (                   0                             (  0  (                                          (    0  8  X  8  0  (                     X                         (    0  8  @  8  0  (                     @  8  0  (                     @                         (    0  8  P                         (    0  8  0  (                                                      (    0  8    8  0  (                                              (    0  8  h  8  0  (                     h                         (    0  8  P  8  0  (                                          (                 (                 (                         (    0  8    8  0  (                                              (    0  8  h  8  0  (                     h  8  0  (                     h                         (    0  8  X  8  0  (                     X  8  0  (                     X                         (    0  8  @  8  0  (                     @                      8  8      0                                 X  8  0  (                     @                                     (    0  8  0  (                     P  0  @  H  @  @      0  (  0       0  (                   X  @  8  0  (                     @  P  X  `  h  p  8  0  (                     P  8  0  (                       h  P  8  0  (                       8  0  (                         8  0  (                       h  8  0  (                     h  X                                                                                                                                                       (               (               (               (                                   (    0  8  H  8  0  (                     H                         (    0  8  0  (                     8                         (    0  8  0  (                     8                   (    0  8  0  (                     8                         (    0  8    8  0  (                                                                                  (    0  8  x 8  0  (                     x 8  0  (                     x                        (    0  8  P  8  0  (                     P  8  0  (                     P                            (  x 8  0  (                     x 8  0  (                     x           H        H                                     (    0  8  p  8  0  (                     p  8  0  (                     p  8  0  (                     p                         (    0  8  p  8  0  (                     p  8  0  (                     p  8  0  (                     p                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               $                                     $                                     $                                     $                                     $                                             <    il_send_stats_request                                        il_pm_ops                                                   ieee80211_stop_tx_ba_session                            ;JQ    free_irq                                                ΰ    is_vmalloc_addr                                         "    il_eeprom_free                                              ieee80211_start_tx_ba_cb_irqsafe                            release_firmware                                        5KZ    il_rx_queue_alloc                                       %I    alloc_workqueue                                         jU    il_set_rxon_ht                                          ]vc?    il_send_cmd_pdu_async                                   e    ieee80211_chswitch_done                                 k    il_prep_station                                         R    pci_enable_device                                       S>    skb_put                                                 'R    __rcu_read_lock                                         ծ*    il_chswitch_done                                        #WK    consume_skb                                             fE    il_eeprom_query16                                       S    _il_apm_stop                                            nJne    snprintf                                                /z%    complete                                                6    queue_work_on                                           6    il_mac_bss_info_changed                                 D]1    il_send_cmd_pdu                                         <1    il_alloc_txq_mem                                        |K    il_is_ht40_tx_allowed                                   A`    __init_swait_queue_head                                 T    finish_wait                                             la    il_usecs_to_beacons                                     +
    ieee80211_free_hw                                       
fr    il_hdl_spectrum_measurement                             o4    dma_unmap_page_attrs                                    <F    ieee80211_get_tkip_p2k                                  g %    il_setup_scan_deferred_work                             ׂ    __pci_register_driver                                   Ҭ    il_scan_cancel                                          -    il_free_channel_map                                     
    il_hdl_csa                                              M%R    il_mac_flush                                            !1    dma_sync_single_for_device                              ;i
    il_bcast_addr                                           S9    iounmap                                                 T    skb_add_rx_frag                                         "T͎    pci_disable_msi                                         ;䒲    pci_request_regions                                     wx    il_set_bit                                              q    ieee80211_start_tx_ba_session                           8߬i    memcpy                                                  V    il_read_targ_mem                                        z    kfree                                                   f    il_add_station_common                                   *{    il_hdl_pm_debug_stats                                   eWJ{    il_tx_cmd_protection                                    H    ieee80211_register_hw                                       il_tx_cmd_complete                                      Z    il_check_rxon_cmd                                       ;3    il_irq_handle_error                                     \6    il_rx_queue_space                                           ieee80211_restart_hw                                    &    prepare_to_wait_event                                   ܐ    timer_delete_sync                                       ;    net_ratelimit                                           L
    ieee80211_rate_control_unregister                       DC    __wake_up                                               .XQ7    il_setup_watchdog                                       ^    ieee80211_wake_queue                                    4    _raw_spin_lock_irqsave                                  i    pci_ioremap_bar                                         d    _raw_spin_lock                                          *v    pci_unregister_driver                                   m    __fentry__                                              ם    dev_driver_string                                           il_apm_stop                                             pHe    __x86_indirect_thunk_rax                                M    ieee80211_find_sta                                      ٣    dma_map_page_attrs                                      Z͂    il_add_beacon_time                                      fs%    il_cmd_queue_free                                       '    il_apm_init                                             ~    _printk                                                 {'    _raw_spin_lock_irq                                      u^    il_free_txq_mem                                         ݍ    schedule_timeout                                        dY؂    ieee80211_tx_status_irqsafe                             Ae    il_scan_cancel_timeout                                  K    il_leds_exit                                            3    il_isr                                                  V
    __stack_chk_fail                                        m    queue_delayed_work_on                                   <+=x    il_restore_stations                                         il_mac_add_interface                                    C	    pci_disable_link_state                                  m    __free_pages                                            JtB    il_eeprom_init                                          +    il_queue_space                                          ]    _dev_info                                               d5    ieee80211_stop_tx_ba_cb_irqsafe                         
    il_set_flags_for_band                                   ^|    page_offset_base                                            il_remove_station                                       Nǣ    tasklet_kill                                            dQ    il_tx_queue_reset                                       u#    synchronize_irq                                         uyH    init_wait_entry                                         h    __list_add_valid                                        -~    pci_enable_msi                                          9I    _dev_err                                                R
    request_firmware_nowait                                 4ޔ5    il_cancel_scan_deferred_work                            %    il_mac_hw_scan                                          hC    il_dealloc_bcast_stations                               Ւ    request_threaded_irq                                    eݴ    il_send_add_sta                                         -    il_setup_rx_scan_handlers                               i$    __rcu_read_unlock                                       Ia9    il_set_decrypted_flag                                       il_mac_remove_interface                                     mod_timer                                               5    il_set_tx_power                                         z    il_mac_sta_remove                                       Vo    ieee80211_sta_block_awake                               ]'    il_leds_init                                                destroy_workqueue                                       f    _il_poll_bit                                            KM    mutex_lock                                              11    il_clear_bit                                            H    il_mac_config                                           MxN    dma_alloc_attrs                                         Q|K    pci_read_config_word                                    SuK    _raw_spin_unlock_irq                                    Ou    _il_grab_nic_access                                     }U    il_rx_queue_update_write_ptr                            >    ieee80211_wake_queues                                   (L    phys_base                                               S@    il_full_rxon_required                                   <    ieee80211_rate_control_register                         КD    memcmp                                                  p*qk    sysfs_create_group                                      UrS    __list_del_entry_valid                                  0^    il_init_scan_params                                         __mutex_init                                            lTU    ieee80211_alloc_hw_nm                                   kr    il_tx_queue_free                                        p7    jiffies_to_msecs                                            il_mac_tx_last_beacon                                   p\    _raw_spin_unlock_irqrestore                             x=    cancel_delayed_work                                     k    il_send_bt_config                                       A
    dma_sync_single_for_cpu                                 s    il_set_rxon_channel                                     <    il_cmd_queue_unmap                                      ŏW    memset                                                  fo    _dev_warn                                               jw    il_mac_conf_tx                                          s<\    kstrtoull                                               /    il_mac_reset_tsf                                        l-    il_fill_probe_req                                       U<!)    pci_set_master                                           @%    wait_for_completion                                     f    __flush_workqueue                                       7V1    il_hdl_pm_sleep                                         9[    __x86_return_thunk                                      SVW    il_tx_queue_unmap                                       T    __init_waitqueue_head                                   Fb$    il_get_channel_info                                     egi    ieee80211_stop_queue                                    #    __netdev_alloc_skb                                      4t$    il_get_lowest_plcp                                      I    il_tx_queue_init                                        x    il_eeprom_query_addr                                    &(    ieee80211_stop_queues                                   s    il_force_reset                                          c`    il_send_cmd_sync                                        oj    il_connection_init_rx_config                            P    jiffies                                                     dma_set_coherent_mask                                   ?    il_set_rxon_hwcrypto                                    >    sysfs_remove_group                                      x    il_init_geos                                            ?<    sprintf                                                 xm    wiphy_rfkill_set_hw_state_reason                        le    vmemmap_base                                            ǜ    il_bg_watchdog                                          Tn    dma_free_attrs                                          82    mutex_unlock                                            J    cancel_delayed_work_sync                                ?
    il_get_passive_dwell_time                               9c    init_timer_key                                          b    pci_release_regions                                         __const_udelay                                          @    __dev_kfree_skb_any                                     g=m    pci_write_config_byte                                   |    alloc_pages                                                  ieee80211_unregister_hw                                 D    il_hdl_error                                            -    cancel_work_sync                                        GV    __warn_printk                                           !    il_write_targ_mem                                       	    il_send_rxon_timing                                     DU    ieee80211_channel_to_freq_khz                           j    delayed_work_timer_fn                                   #~    ieee80211_hdrlen                                        C6    pci_disable_device                                      W    il_send_lq_cmd                                          >T"    il_wr_prph                                              G}    dma_set_mask                                            DEL    il_free_geos                                            շ    il_txq_update_write_ptr                                 '    il_power_initialize                                     wX    kmalloc_trace                                           <}    tasklet_setup                                           [m    il_rd_prph                                              /    il_set_rate                                             <    device_release_driver                                        param_ops_int                                           xn    il_mac_change_interface                                 g    pci_write_config_word                                   4K    _raw_spin_unlock                                        Z    il_get_active_dwell_time                                ߷    il_send_cmd                                                 il_get_free_ucode_key_idx                               ]{    __SCT__might_resched                                    -    kmalloc_caches                                          $    il_clear_ucode_stations                                 q    il_power_update_mode                                        ieee80211_rx_napi                                       r/G    il_init_channel_map                                     zR    module_layout                                                   	        		        	        U	        q                    		        Z		        	        		        	        		        
		        		        		        		        		        		        	        t	        t	        	        	        	        L		        	        [		        G		        	                            t	                            
	         	        t	        	        	        	                           /                                             =                 2  @  P                                                                                                                                                                                                                                                                                                                                                                                                        $                                                                     {                      !                                      !  %                         G    !    <  n                           c    H    h                                      J       {                                     Q                                            \             =      B  k                  f            X    =  k                                    M                                           S                                          `            H    )  V                    j            e    Q                                      *       L   f   |                               .       R   n                                  0       ]            ?  _  }                  5       f           \  }                       
   #   :   (   9   H   b   y                                                                                                                    iwl4965                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  GCC: (Debian 12.2.0-14+deb12u1) 12.2.0  GCC: (Debian 12.2.0-14+deb12u1) 12.2.0  GCC: (Debian 12.2.0-14+deb12u1) 12.2.0  GCC: (Debian 12.2.0-14+deb12u1) 12.2.0  GCC: (Debian 12.2.0-14+deb12u1) 12.2.0             ѝ            	      ? 	  0   n 	  `                X      X     A=      O= +      ]= +         Y     i= +     ]	 	     r=   
     $        +     9  +  (     +  H   =   6   ,  $       = $      s  ]               [       =      =     =    =    >    >    =>    X>   	   m> $       {> <n    >      >     >    >    >      >     ?    +?    F?      X?     r?    ?    ?      ?     ?    ?    @      5 K       @ $      %@ $      8@ $      C@ $       N@ *  (   _@ *  h   t@      & $         K       K            <    *       @ 9       cQ  p   @ cQ     @ b   @ `   @ a   @   h   h                f       @      ]  $       C
 $       &      @ $        $   (   @ $   0   @ $   8   @ $   @   @ $   H   @ $   P   @ $   X   @      A -       !A 	  @    K   p   +A      EA *       PA *        	  @   \A K   p   nA K   x   A K      A      
 P         @    *   `    aP    # O-     & Q       &   @  A K   P  ]  *   `  0     A 
  @  z 	    l 	     	    P P @        P  j   A K   @  A K   H  A K   P  A *   `  A m   Ǖ P          k        P        l A   H    P     B P    B $      $B $     6B K     DB    @  MB     c  ZP     ^  @   [B s   dB      &     nB &       	    {B K     B $     B )       @    *     B *     B K     B K     B r     DB    @          q B @     O-          @     	  `   B $      B K      C $      C &      'C K      2C K      @C K      NC K      \C K      jC K      wC K      C K      C K      C $     C &     C &      C -   @  C *     C $     Q *     C P       @  D &      D (      $D *   @  2D (   `  ?D (     9 P   MD x     K     VD K     X	      bD c   oD \   |D K     D &     D K     D K     D |   D K      D 	    D $   8  D $   @  E K   H  E $   P  #E { `  +E d   6E e H	  CE z `	  RE *   	  rE g 	  E ^    E }    E $   `  E $   h  E K   p  E K   x  E K     E u   E K      E $            s        p 
F        	      F &   0   F &   @   <F K   P   @F $   X   MF $   `   0     TF K      YF K       K      hF K      lF $           F K   @       &     F    \v   @
  DB              v F      F *           @   F       F O-      F O-  @   F Q      F Q      F      $h *       1h *                 *       G &              y            _       G      3G    RG    nG    G    G    G     G @   G    H    5H    KH    cH    H    H     H  @  H     I     I    >I    [I    }I    I     I   @ I   I    	J    -J    JJ    cJ     J    @J    J      J    J    K    9K    MK    iK     K @   K    K    K    K    L      S #         &     ]  &   
           0      L #   `   .L $   h  jC $   i  6L $   j  EL $   k                                      !              (              r    PL     ]  *      t R    WL 
     jL _        *   @   _ $   `   pL $   h   wL $   p   L #   x   ]  &       #       $                               m -           
  (   0      L (   `   L $      L $      L $      hS $      L &      ]  $      V $      L p           (   L      hS )  `   L            (         F                      v                  k         L   0   ]  *        *      L *   #  
B *   0  M *   4  
     @   M      .M i     7M $   `   AM $   h   NM   8   k w     P   @         0     bM H     oM $   @  9  a                     wM      M     M    M    M    M    M 
  @   ]  *       N        N    @   +N &   `   ;N $   p   JN $   x   bN $      9 P    6B K     {N    N   8   T  -       N *   @   N K   `   9 P      $     8 *     N   P   ' K       N K      N K      ? K      F &       N   @   N               Q       K   @    K   H  X	 	  P             t       N        r     k w @   sW $      !f $      DB               O      'O     >O    UO    lO    O             S #         $      O $      O $      ]  &       O   (   2  g       I                       O      k  %       c  c     O   $   O &       O &      P dQ      "P 
       	       $   0   {N  @   5P   `   ~ P     P    P `   {P    P (  @P    DP $     0     KP                                                                 QP 7     dP     P    P    P    P    P    Q    :Q    YQ    rQ 	   Q 
   Q    Q    Q 
   R    !R    @R    cR    R    R    R    R    R    S    <S    \S    S    S    S    S    S    $T    BT     eT !   T "   T #   T $   T %   T &   U '   4U (   YU )   }U *   U +   U ,   U -   U .   V /   IV 0   nV 1   V 2   V 3   V 4   	W 5   .W 6            EW        c %       OW !     BT      P P    \W    @  Z  k     ]      sW       W       W    @  W    `  W      W       &     W &     W #     W $      X $     X $     F &       X &     =X $      NX $   (  eX $   0  zX &   @  X  `  X     @F $      X $     X $     X $     X $      ?  *   @  X    Y $                               Y 
  @          :Y P @   [B t          @Y     X	 K     6L K      NY *   @  \Y       K     nY   p           V     @   3.      Y     O	  %     Y  @  Y    Y    Y     Y  @  Y    Y    Y     Y /  @         
       
k                      
             k                       
k       k       w     X                 
        k       P     n     w     k                 
        k       P     n     w     k       *                 
        k       w     k                 
        k       P     k                              
        k       P     w     k                       
        k       w     k                              
        k       k                     *     Y    Z    
Z    Z    !Z    -Z    ;Z    EZ    OZ     XZ    bZ    gZ G   tZ H   {Z N   Z r   Z s   Z t   Z u   Z w   Z z   Z {   	[    [    [    *[    9[    I[    R[    ^[    k[    w[    [    [    [    [    [    [    [    [    [    [    [    \      : $       ]  $      k*  +              \      &\ $       .\ $      8\   l   K\ $       W\ $       +     c\ *      j\ $   `   s\ $   h    +  p   \ +     \ +     T  +     \ +     sk +     \     \  `  \    \    \ 8    \       K\ $       W\ $       +     c\ *      j\ $   `   s\ $   h    +  p   \ +     \ +     T  +     \ +     \      fc +      \ $        $   (   ] +  0   c +  @   T  +  `   ]   .   ] 	       +  0   (] 	  @    +  p   3] 	     K +     ? $      C] $      S] +     \] $      m] $      R +     ]  +     }] +     $ +  @  ] $   P  ] $   X  U $   `   $   h         
Ɉ ]      T  +      A +  @   ] +  P   ] +  `   +N +     C $      ] $      	^       +      $ +       +      ^       +       +      $        $   (   '^ +  0   1^   $   A^ +      !f ψ                ͈       K^       Z^ +      d^ $       $      v^ ш     C  $   p    $   x                      +        ^        	       +  0   ^ $   @   ^ $   H    +  P   ^ 
  D   "  $         ~      k ҈       Ј    ^ +    ^ +    ^ +    ^ +    ^ $     _ $     _ +    0_ +      +           
ӈ ?_        $       O_        $       __      
 $       C  $       F      $        ~   (        @   j_      _ $       x   $      _ $      _ $      _ +      _ +  0   gt     @   _      $ +      _ +      $       I $   (   4&  +  0   gt     @   _        +      T  +      _ +  `   _       0  ؈     zd  و @   m  ڈ    _   <   ` $       ` $      #` $       $      T  +      +` +  `   _ +     $ +     =`       ^ +    ] +     +               Z        M`      \` $       h` $      v` $      I $      ` +        +  @   `      ` $       ` $        +              ` +      ` +               ` +      ` +      `   8   4&  +      ` +     p0 +      A ߈ @   ^ +  `   ^ $      	a $      a $        $              "a +      +  0  3a  @  =a +  `  Ja $     Wa $     ga $     xa $     O     a +    gt       zd  ݈   a 	     a +      a +        +  0   ^ $   @   sW $   H   a +  P   q1  +  `   a +     a +     a      ]  $       a $      b $      b $      .b )      =b      Ub +      db $      ub $        +               ^ +      b   X   ^ $        $       +     b      b  `   b      +                      b      , $       x   $        +     b   @   b       b      b   d   x   $       , $      PA $        $        +       $   @   $ $   H   c  $   P    $   X   c +  `   c +     c +     &c $       ~      1c     3a +      +     ;c   $   ]  +      Mc $      `c $      lc +      |c +  @   c A  `   c +     c      c $       c $        +     c +      c +  @   c +  `   c      ]  +      d      &d ވ     8d +  `   @d +     Id +     Yd   <   ld +      td +      }d +  @   d +  `   d +     d +     d +     d +     d +     d +     d +  @  d +  `  e +    e +    )e +    6e      Me +      We +      ae +  @   re +  `   e +     e      b      b    e    e 	  $   e +      e +      e +  @   e +  `   e +     
f +     f +     "f +     3f +     Bf      Lf +      Xf +      df +  @      `   f      f +      f +      f +  @   f +  `   f   <   e1 +      f      c +     f +     f +     f +  @  K  `  f   P   ld +      td +      }d +  @   d +  `   d +     d +     d +     d +     d +     d +     d +  @  d +  `  e +    e +    )e +    f +    g +     g +     *g +  @  K +  `  ?g 
  (   }d +      d +      d +  @   d +  `   d +     g +     Og +     ^g +     kg +     sg +     g   T   Me +      We +      ae +  @   re +  `   e +     g +     g +     g +     g +     g +     g +  @  h +  `  %h +    <h +    Ih +    Zh +    hh +     vh +     h +  @  h +  `  h +    h     b      b    e     h    h 
  (   h +      h +      h +  @   i +  `   #i +     1i +     Di +     Ti +     ]i +     ji +     xi   d   e +      e +      e +  @   e +  `   e +     
f +     f +     "f +     3f +     i +     i +  @  i +  `  i +    i +    @P     +     j      f +      f +      f +  @   f +  `    +      +     j 	  L   e1 +      f      c +     f +     f +     f +  @  K  `  'j +     9j +  @  Kj   T   L       +  `  K +    Yj       +      r      4e    e    lj      +      r      4e   	  e     {j      j +      j +      j +  @   j +  `              +        j      9  +      x   $       Y $   (   g $   0     $   8           j ۈ     j ވ     k      k ǈ     k      -k ̈     7k Ȉ     @k      Qk Ո     Yk ֈ     ak      mk      0       vk      k        +                k     k +      zd  Ĉ        @   k       k W       '     @     `      k   (   (  
     Qg   @   ]  *      ,  W      4&        k         l       k    @   Qg      ]  *      4&  &      x   $             	       
                          
 k }  p         k P @   k P    ^ P    )  S    k `   @  l       dP   l       N T @   W  B  'l  U  6l $   X  Il *   X  [l    X  sl *    Y  l F @Y  l X @Z   $   Z  e1 (   Z  q1 (   Z       [  A    @[  l k   [  l dP [  l o  \  l r @\  l 	  \  l $   \  4  *  \  l *  \  l *   ]  %  G  @]  5
   @^  l k   ^  l *   ^  l *   ^  m $    _  
m $   _  m $   _   Y _  'm    `_  .m *   _  8m : _  Cm : `  Nm : @a  `m :  b  km : b  {m : c  m @ @d  m $   `d  m k hd    r @e  m 5 e  $C  H f  
E  ʈ f  m Ɉ Xh  m ˈ i  m +  pj  m ƈ j  m ǈ m  m &   n  n $   n  n A  o  n B s  0n  t  @n 4 u  Rn $   u  ]n D   v  pn    v   +  w   Z   n    @  ?  n ? @ n *          @ n E  n E  n C  n G   	  @  n *    n      n [   n     	o     o    @ #o SB   T $     4o $    ]a    @ Ho \  So ZP  T  -         N @ [o =  eo *    (c S   ^ Q    oo Q    ~o Q    o Q    o K     o   @ o Q   o NW   o R   o R   o R  @ o #     o #    p #    !p Q  @ .p K   @ ?p K   H Wp K   P lp Q   p I    I   p K     { a  @ p     p      p K   @         p   D  zd  Ĉ     : )                     p   (   p        p        p    @   -  W      p       x   *      p       p       q 
  X   y       q k   @  :    P     	     {V    @  1 $     q $     
E  $     q $                     &q      ]  $       8q #      Fq      e1 $       ^q $      gq $      rq #      yq      q $       q                       q   4   q $       q $      q     q     q     q $        r $      sk +     r                        r      c  $       y #      5r      Mr ,       ]r      or "            
                           
! {r      r ň     r #      r #      r #       r      r ň     r #      r #      r      r      r  @   ]a     r     $ $      ]  $      8q #      s #      s #      s #      #s $      -s $       dP    6s #      Is $     Ts $     ks &   vs ' @             #    !              $                s     s     s     s    s    s    s          @  ]  *       s $       s &        *       4e      gt  *                $      @  s   `0         s W   @    ,    x  - @ k	  *    p	  *    s *    t *    t `     t `    1      t 0 @ &t W    4  *                  @             .               2t      ?t +      Mt +     [t +      kt +  0   D +  @          / {t      t &       t &      t &       ^ &   0   q1  -   @   ^ *        $      t        &       t &      @P 1 @   t   ,    *               L $   @        H   t      t K       t      t   (   t        	u Έ     u     k ӈ     sW 7 @  A  $   @  'u 3 `  /u 8              2    	           2u      ^ $       Iu      Qu k       Xu W   @   4&  *      _u   &   uu &       u &      u &       u &   0   u &   @   u &   P   u &   `   u &   p   u &      v &      (v &      >v &      Xv &      jv &      v &      v &      v &      v &     v &             
; v   @   v $       v $      v $      w &       w *   @   &w $   `   4w $   h   Bw $   p   Ow $   x   \w &      iw &      uw *      w *      w $      w $      w $      w *      D *      w *   @  w *   `  w &      >          < w      i  W         k   @     Q      m      
x     x     x    )x      =x *       Lx *       _x *   @   qx *   `   x *      x *      x *      x *      x *      x *      x *   @  y *   `  y (    y h	    .y *   `  >y *     My *     u *     ]y (     xy *      u *      v &   @  v &   P  v &   `  y   (   y *       y *       y *   @   y *   `   y *      y *      y *      z &      z ~      z ~     -z $        $   (  n   (    *       { *       9z *   @    *   `   Bz *       *      Hz *        *      r *      N D    4e *    !  Oz *    !             *         Yz        gz       vz        z        z    @   z       z       z   P   z      z     z    @  { K   `  !{ K   h             K       -{ K      6{ K      I{ $      T{ $           
    j{ k       v{ W   @   { R     { R  @  0       { *   
  {    
  { *   
  { -      { K @                            
J     	    { ܈     { K     | *      | F  @  %| $   @  E| $   H  d| $   P  $ M X  0   X             ׈               u| I     {| L     |      V         |    @   |       |       Bw $      Ow $      |       | &      | &     | | @  | ~   | 	    | {    }       
}    @  }    `  /} *     ;} K     C} K     K} &     \}      t}      } K      } d    } d    } d    }            O }      } ^     ~ ` @   ~ b    +~ d    o f    4~   @  K~ h   V~ f   i~ j    q~ l @  ~ h   ~ h   ~ f    ~ h @  ~ f   ~ h   ~ h    ~ f @   n    q   & s    3 f @  = f   L f   V h    l u @   x          
Q        R            U              V       
             .            P              %            P                          6                      
             Z     &          ]       
            Z     W       &       $       $          _       
             Z        a       
            Z        c       
                e       
               g       
                  K          i       
                    k       
&       $       &          m       
&       p               Ԉ        o       
            r        r       
            r     K          t       
            w                v                       
}    @       `          L                     
y                           z                }            +                
 ! 
  
   . $       3 $      = $      H $      M $       W $   (   a $   0   i $   8   q $   @   } $   H          
                               ƀ    Ҁ    ߀         	    
            - 
   8    J    Z 
   h 
            u                         
     с 
   ށ             	       #    1    ?    M 
   Z    g 7   t n                             ͂                    , 	   @ 
   T    h    | 
               ̃        
                 	 $    0   % H   3 `   A l   O x   ]    j    w                       
          
                            Ä    ʄ      ۄ E7      C
 E7  `          
          -        (   @    (   `     (       (      $         
    /      7 $       @ $   (   G $   0    $   8   1Q  $   @   O $   H   Z %     g *      
                    
   t   `   {V            @   2  *      $     d%  $        8   $        $       $      ͅ $      ߅ (        *   @    *   `    *      yR *       *      + *      9 -      E $   @  T $   H   $   P   dP `  5P *     ] &     p &      &      #      $     /u        N       $   8  E   9  ʆ    @9  چ *   `9   $   9                                         H  L 9       @   
 ]    :   K    :   K   (:             (      
              (      4                  
          
                P                                        Z                2                         ?    p         
    \ k   :Y P 9 n k w a k   h           
    \ k   k w a k              
     k              
k                 
        n *              
      k w ^ $   և           
k    k   k w  X              
    \ k   k w a k                
       K   #           
      2C   ;           
    \ k   :Y P k w a k      \           
   p *   ^    2C   z           
*     2C   S     $              
    YN   *   Ĉ           
   ^ *   ވ               F       F             ĉ     3 *       6      3 +      K      ^ ȉ                Ɖ    !            h     |                  ]  +      }] +      \] $   @   m] $   H   ] $   P   ] $   X   Љ +  `     +  p          $         $      $ +      +       +  @   + +  `   {> ǉ    7 
  D   "  $         ~      k ҈       Ј    ^ +    ^ +    ^ +     +    ^ $     _ $     _ +    0_ +      +    I       $         $      $ +     {> ǉ              a               $        $      Ȋ $      ӊ $      ފ      zd  ω      #        #   (   
 #   0    $   8          

              .    B    X    m                
        
%                ܋                 
         ,    =    N    _    r       ؉     hS                 +     @             (      !          (        (                  ډ       Ռ       $        $             
܉            ݉              
މ        ԉ        щ        4        ̉        ׉        Ɉ        ʈ        ǉ        Ӊ            (                                B       
                           
&   : p      "           
&   \ $   4&  &   ;     P           
     i           
       Z  &              
            ΍                     
      $   $ &   G $   
 $     )           
(   
  (   B (   E (   H (   K (   A     Z     l                     
      w            
              	 ؎               4           
        4&  *   H           
     *   b            
9                           
       , $       "  $      c  $                    "  $        $       $        $      ̏      {> $        $             $        $      ơ  $       $                        +      % +     	 +      I    0            6 +               B +      +N +     I                 B +      	 +     F +      I    0            B +      	 +     I              
   B +      +N +     M 	      I    P            T  +      C +  @   B +  P   I    `             X 6      I                      !              i $        $      	 $      I                i $       I                i $             I    (            i $        $       $      ơ  $      u               i $        $      ~ +     O  +       +  0   I    @            i $        $        +     ~ +      O  +  0            i $        +     6 +              1Q  $        F              1Q  $        $               i $        $               i $        $       +     I                 i $        $               i $       F *          H            i $        $       $      ͐ $      r               i $        $      ; $      ݐ 	      	  H    +  x    +     I             
   i $        $      ; $      ݐ *       *   8    $   X    $   `             #       $     , %     < &     H '     R (     ] )     c $     m $     y *      +      ,      -      .      /     ˑ 0      1      $     ֑ 2               $         3        
     lO                                          .      :      X	       C "     M       1Q  4     X   2   O= +       +     g 	      gH  	  P    	     i= +       5    j       $        $       $                     ֒                    1    B 
   S    f    ~ 
                    ٓ !    "    #    $   6 %   N &   g '    (    )    *    +   Ĕ ,   ޔ -    .    0    1   ) 2   A 3   Y 4   r 5    6    7    8   Е 9    :    ;   ) <   E =   [ >   } ?    @    A    B    C    D    E   ; F   ] G   u H    I    J   ϗ K    L    M    N   ) O   ? P   [ Q   v R    S    T    U   ՘ V    W    X    Y   2 Z   O [   d \   z ]    ^    _    `   ٙ a    b    c    d   . e   ? f   W h   s i    j    k    l   ؚ m    n    o   # p   < q   Q r   b s   ~ t    u    v   ͛ w    x    y    z   4 {   K |   d }   r ~                       Ϝ    ݜ                 4    M    c    }                Н            "    D    Z    n                Ǟ                6    I    g                Ɵ                -    G    ^    v                 ڠ            ,    G    g                ơ    ܡ            (    @    `    q                Ң                    /    =    P      j                       G	               ϣ             #    A    a    x                   ɤ    ߤ               '      ?     Y    q                  ҥ            @     T @   v            Ŧ              @  D    i            Ч             5   @ X    y            ٨             @    @k                   ܩ            4      E     ]    q                  ʪ                9    V     t              «    ׫             # @   :    R    k                Ӭ       @          $    8    M    f    |              ʭ                  2 @          
P        
P        
g P     a K       q $        -   @   N#	 =     $       $      v =    | =     =     >     g @        ^ O-       *   @    J               H        ɮ 
  H   $ P     @#  -   @   ծ -      ߮ -       -       -   @   -      -      *      `X	 #       	     '     7    F    V    f    v                      ]  $       C $      A &      ү   0    *        *        *   @   i *   `   J *       *      
 *       *       *      n *      Z *   @  " *   `  ,   X    *       ? -   @   G -      O -      _ -      n N @  x -      -        *   @    *   `    -      e -      n -       &   @   &   P   $   `  [  #   h   #   p  ǰ $   x  ΰ Q   ۰ Q    i    i    O *     Z *      *      *      *       M    ) : @  T       3 O-    A Q      S *   @  e ,     n ;   w ;    ;     *       -   @   -      -      $      ձ $      R @  L #      #      &      *      *     ( *     < $                 #                O L      k  (       c *       t      c  oP      *        V @          
T            S                O-       O-  @    O-     ʲ *      β $      ֲ $      ޲       $        $               O-      4&  $   @      p   c  @     ' 	      2 $   P   ? K   X   K K   `   Y K   h   j $   p   v $   x    P    y0 *       O-      $   @   K   H   O-    ȳ $     ӳ $     ޳ P        @  j \    \    $       $      $     m -   @         
Z        Y ) 
  0    *       F *       R *   @   ^ *   `   i *      r *       -       *       *       *   @  ٴ       A      &        $   0   $   1   $   2  
 $   3   $   4  , $   5   $   6   $   8   * $   @   9 $   H   H $   P   U $   X   _   8     	      9 P @   c $   @  ^ `  z 	  8   m -       u k   @    *       *      O  *      z 	     l 	      `   @    a              _               P        G        K        W        X        ]        `        I           ε                1     E @   ^                 Ķ  @  ض            '    ?    `    v        @     ҷ                   !    1    A      [ &        &       &       ` $   0   e K   8   i K   @   o K   H   w 7 P          
l                       ͸    @       `              /    L         r     dB t @   ˭ u    * u    i      ~                       ̹     ܹ            r                 %    1    A    Q      m     z                t       u     ! &   @         k w     sW &   @   vG &   P            _ s      v      w     ú      c  q       x @          
y Ӻ   p    |     4&  }    O-      Q   @             O-                   Q                   (    :    U    k          @       Ļ    ڻ                4     J  @  h                ļ    ׼         	   @     4    J    f    z                 @Ľ      ߽        	     0   1 @   B    Q      f     t    ~                  -        H         0   þ -            @   N *      ˾ *       *      M &     
d &     ۾ $      Ph  $      $      $     @ $     @ $    .M $     @ $      $      $      L $   (  [  #   0  ǰ $   8  ΰ Q @   $   `   $   h   $   p  $   q )      =    a                ۿ      @       :    [    y              *        &                ] 	               B:          $                                                                                             "    5    H    \    u                     k w           {      l    	  0   k w     9 n @   i $        *      T  *      + &       &             *   @   	     )    6    B    O    g     s @                                      .    L    o           1Q       k w @   sW &      vG &      ` &       K      O  &                                ,    G      _                &       <  &      
 $       r    4e         @         !      )        @               L  @                2  @  ;    C    U     f  @  z               @       Ŋ         Ȋ @       ʊ         ͊ @   Њ   $    7     I Ҋ @  Q Ҋ   \ Ԋ   g Ҋ  	  u ֊ @	   ؊ 	   ڊ 	   ؊  
   ܊ @
   ߊ 
    
         @                 @  {        	    
  *  @
  9  
  E  
  Q     c  @  V(    H(    |       @                 @          
       @  )    C 
   O     ^  @  m               @                 @          6     @  @  Y    K !   W #    k ؊ @   &    (         * @       ,    /     1 @   3    5   ( 7    3 9 @  > ;   M =   ^     q ? @   B    ?    E     G @   I    K    N     P @         
       
                                          
                      
                       
            P               
             K                 
            r               
            r     ZP     K                 
             r               
            *                 
             r     t     -                 
             r     -                 
            r     t               
             r     t               
-            2                
                           -                 
             r                             
            w     K                 
                 r     w                    
             r          w     *       '                
             r     e               
             r                      
            r     Ċ                Ê       
            r     P     Ǌ        {        Ɗ       
             r     O-         Ɋ       
            ̊        n        ˊ       
                  ϊ                Ί       
            r     w        ъ       
             r          w        ӊ       
            r     w                  Պ       
             r     w        ׊       
             r     w     *          ي       
             r     w     b        ۊ       
            r            &       ފ        m        ݊       
-            r               
             r     ,                 
            r                            
                   d               
             %                 
             r     *       K                 
             r                    
            *       *                 
                                    
            r     P                           
                                                   
K                      
            r     c               
             r             z               
             w     &                   K                 
            r                       
             r     I?                      
             r     *                        
             r                            
            u        	       
             u               
             u     *          
       
            r     t     u               
             r     t     u               
                        o        p               
                            
             r     
                
             r     n               
            r                    
*            w               
            r                       
            r     w     $       n           *          "       
             r     %                $       
                     '       
            r     f        )       
            r     f     *          +       
            r     .        [        -       
             r     $          0       
K                           2       
            r     g        4       
            r     h        6       
             r     h        8       
            r     w     i        :       
            r     w     $          <       
             r     w     K          >       
            A        U        @       
             w     D                C       
             w     $          F       
            n        H       
            r     w     
      
         J       
            r     &       &       M        t        L       
            r     w     &       &          O        $       ' $      ]  $        $        R                ׈        7   
   M +      [ +     d 	      hS    P   n      ] +        +                       @    A    C    D       D    _    y                            2    M    i                                  @   %    9    L    _   x k                                          ?    Z    z                   +      k*  +                6       Z                X                   +          Y      
     t $       v` $      \` $      h` $      ^ +      ` +  @     +  P    +  `    +       [            +      ( +      ? +  @   V      c  +      $ +      &\ $   0   .\ $   8   f +  @   s +  P      "   x   $       4&  $                  4&  +      `
 $       $       +       +  0    +  @   S] +  P    +  `    +     ]  +     }] +           a                     _          $   &d \     8d +     @d +     Id +        <   4e       +     $      $     Ax ݈          
       	  Ax Z     X	 c     V f     : g                $      	             $      h      0	    e       `    I         
+ )      5 $                G +      ֨ +       +  @   Q +  `    +             `       +      ] k     p      0 +      z +             ~        $      
 o       +               m        
  P    l         l   @     l       l      Y
 l      G Q   @  ֨ Q      Q     Q Q       Q   @           V  ?       b  $   @              q                                 
s                        ӈ        d        6        i        +        p        l        b        ǈ                n        m        h        c            $      d          Q                1                \        X        ?                                    +      	          
        j        `        ^        E        ܈        T        S        :        F            p         
        *            R              
       Z                    
      t    S *   )     <            
       S    a     -   m           
         r              
        r k w            
        r              
      :    r k w               
         r   k w  *    '             
            
           
                  
      (           
      P  9     P     b                                               
     L  E5  k       Ë       
       K   (    ŋ @     Y    ֗  o                \W             
       .     ͋     ͋     }Y      ͋       
      Z     ҋ       
      Z   W   4&  &   B $   hS $   .    ԋ       
       Z N    ֋ e           
      Ax  |    ً            
      ^             ܋       
     k w sW        ދ       
     k w sW    vG &              
     ^    sW              5           
       ^ $   P     g           
        k w  *    '             
                            
      K              
       O-      !           
8   ^ $   :     N    ͋       
      ^ *   P   g         ͋       
     t    S               
     ^    sW $   t               
       r k w sW &              
       r k w sW &   vG '                      %           
     k w    <     J    ͋ ]    ͋ n    ͋       
     [     K       
            
      ^    sW    H        
       
       r Q K              
       r          ͋     ͋       
   ^ *    dP      3           
       { C     X     p           
      (  X                        
      {                  
      t $     *       #            
             & )       +            <      U     d    r          g *       g *       h *   @   h *   `   h *      h *             A                *            
       k       /       
       k       1      ieee80211_hdr frame_control duration_id seq_ctrl ieee80211_p2p_noa_desc ieee80211_p2p_noa_attr oppps_ctwindow ieee80211_ap_reg_power IEEE80211_REG_UNSET_AP IEEE80211_REG_LPI_AP IEEE80211_REG_SP_AP IEEE80211_REG_VLP_AP IEEE80211_REG_AP_POWER_AFTER_LAST IEEE80211_REG_AP_POWER_MAX ieee80211_tx_pwr_env tx_power_info tx_power nl80211_he_gi NL80211_RATE_INFO_HE_GI_0_8 NL80211_RATE_INFO_HE_GI_1_6 NL80211_RATE_INFO_HE_GI_3_2 nl80211_he_ltf NL80211_RATE_INFO_HE_1XLTF NL80211_RATE_INFO_HE_2XLTF NL80211_RATE_INFO_HE_4XLTF nl80211_txrate_gi NL80211_TXRATE_DEFAULT_GI NL80211_TXRATE_FORCE_SGI NL80211_TXRATE_FORCE_LGI nl80211_tx_power_setting NL80211_TX_POWER_AUTOMATIC NL80211_TX_POWER_LIMITED NL80211_TX_POWER_FIXED ieee80211_he_obss_pd sr_ctrl non_srg_max_offset min_offset max_offset bss_color_bitmap partial_bssid_bitmap cfg80211_he_bss_color ht_mcs he_mcs gi he_gi he_ltf cfg80211_bitrate_mask rate_info nss he_dcm he_ru_alloc n_bonded_ch eht_gi eht_ru_alloc cfg80211_scan_info scan_start_tsf tsf_bssid cfg80211_scan_6ghz_params short_ssid channel_idx unsolicited_probe short_ssid_valid psc_no_listen cfg80211_scan_request duration_mandatory wdev notified no_cck scan_6ghz n_6ghz_params scan_6ghz_params ieee80211_chanctx_conf min_def rx_chains_static rx_chains_dynamic radar_enabled drv_priv ieee80211_vif bss_conf link_conf active_links p2p cab_queue hw_queue offload_flags probe_req_reg rx_mcast_action_reg mbssid_tx_vif ieee80211_bss_conf htc_trig_based_pkt_ext uora_exists uora_ocw_range frame_time_rts_th he_support twt_requester twt_responder twt_protected twt_broadcast use_cts_prot use_short_preamble use_short_slot enable_beacon dtim_period beacon_int assoc_capability sync_tsf sync_device_ts sync_dtim_count beacon_rate ht_operation_mode cqm_rssi_thold cqm_rssi_hyst cqm_rssi_low cqm_rssi_high mu_group hidden_ssid txpower_type p2p_noa_attr allow_p2p_go_ps max_idle_period protected_keep_alive ftm_responder ftmr_params nontransmitted transmitter_bssid bssid_index bssid_indicator ema_ap profile_periodicity he_oper he_obss_pd he_bss_color fils_discovery unsol_bcast_probe_resp_interval beacon_tx_rate power_type tx_pwr_env tx_pwr_env_num pwr_reduction eht_support csa_active mu_mimo_owner chanctx_conf color_change_active color_change_color ieee80211_sta aid max_rx_aggregation_subframes wme uapsd_queues max_sp tdls tdls_initiator mlo max_amsdu_subframes support_p2p_ps deflink ieee80211_mu_group_data membership ieee80211_ftm_responder_params lci civicloc lci_len civicloc_len ieee80211_fils_discovery nss_set mac80211_tx_info_flags IEEE80211_TX_CTL_REQ_TX_STATUS IEEE80211_TX_CTL_ASSIGN_SEQ IEEE80211_TX_CTL_NO_ACK IEEE80211_TX_CTL_CLEAR_PS_FILT IEEE80211_TX_CTL_FIRST_FRAGMENT IEEE80211_TX_CTL_SEND_AFTER_DTIM IEEE80211_TX_CTL_AMPDU IEEE80211_TX_CTL_INJECTED IEEE80211_TX_STAT_TX_FILTERED IEEE80211_TX_STAT_ACK IEEE80211_TX_STAT_AMPDU IEEE80211_TX_STAT_AMPDU_NO_BACK IEEE80211_TX_CTL_RATE_CTRL_PROBE IEEE80211_TX_INTFL_OFFCHAN_TX_OK IEEE80211_TX_CTL_HW_80211_ENCAP IEEE80211_TX_INTFL_RETRIED IEEE80211_TX_INTFL_DONT_ENCRYPT IEEE80211_TX_CTL_NO_PS_BUFFER IEEE80211_TX_CTL_MORE_FRAMES IEEE80211_TX_INTFL_RETRANSMISSION IEEE80211_TX_INTFL_MLME_CONN_TX IEEE80211_TX_INTFL_NL80211_FRAME_TX IEEE80211_TX_CTL_LDPC IEEE80211_TX_CTL_STBC IEEE80211_TX_CTL_TX_OFFCHAN IEEE80211_TX_INTFL_TKIP_MIC_FAILURE IEEE80211_TX_CTL_NO_CCK_RATE IEEE80211_TX_STATUS_EOSP IEEE80211_TX_CTL_USE_MINRATE IEEE80211_TX_CTL_DONTFRAG IEEE80211_TX_STAT_NOACK_TRANSMITTED mac80211_rate_control_flags IEEE80211_TX_RC_USE_RTS_CTS IEEE80211_TX_RC_USE_CTS_PROTECT IEEE80211_TX_RC_USE_SHORT_PREAMBLE IEEE80211_TX_RC_MCS IEEE80211_TX_RC_GREEN_FIELD IEEE80211_TX_RC_40_MHZ_WIDTH IEEE80211_TX_RC_DUP_DATA IEEE80211_TX_RC_SHORT_GI IEEE80211_TX_RC_VHT_MCS IEEE80211_TX_RC_80_MHZ_WIDTH IEEE80211_TX_RC_160_MHZ_WIDTH ieee80211_tx_rate rts_cts_rate_idx use_rts short_preamble skip_table hw_key ieee80211_key_conf tx_pn iv_len hw_key_idx keyidx ack_signal ampdu_ack_len ampdu_len antenna tx_time status_driver_data driver_rates rate_driver_data ieee80211_tx_info ack_frame_id tx_time_est ieee80211_rate_status rate_idx try_count tx_power_idx ieee80211_tx_status ack_hwtstamp n_rates ieee80211_smps_mode IEEE80211_SMPS_AUTOMATIC IEEE80211_SMPS_OFF IEEE80211_SMPS_STATIC IEEE80211_SMPS_DYNAMIC IEEE80211_SMPS_NUM_MODES ieee80211_conf power_level dynamic_ps_timeout listen_interval ps_dtim_period long_frame_max_tx_count short_frame_max_tx_count smps_mode ieee80211_channel_switch device_timestamp block_tx ieee80211_vif_cfg ibss_joined ibss_creator arp_addr_list arp_addr_cnt ieee80211_txq ieee80211_sta_rx_bandwidth IEEE80211_STA_RX_BW_20 IEEE80211_STA_RX_BW_40 IEEE80211_STA_RX_BW_80 IEEE80211_STA_RX_BW_160 IEEE80211_STA_RX_BW_320 count_cts count_rts ieee80211_sta_rates ieee80211_sta_txpwr ieee80211_sta_aggregates max_amsdu_len max_rc_amsdu_len max_tid_amsdu_len ieee80211_link_sta supp_rates agg rx_nss txpwr ieee80211_hw_flags IEEE80211_HW_HAS_RATE_CONTROL IEEE80211_HW_RX_INCLUDES_FCS IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING IEEE80211_HW_SIGNAL_UNSPEC IEEE80211_HW_SIGNAL_DBM IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC IEEE80211_HW_SPECTRUM_MGMT IEEE80211_HW_AMPDU_AGGREGATION IEEE80211_HW_SUPPORTS_PS IEEE80211_HW_PS_NULLFUNC_STACK IEEE80211_HW_SUPPORTS_DYNAMIC_PS IEEE80211_HW_MFP_CAPABLE IEEE80211_HW_WANT_MONITOR_VIF IEEE80211_HW_NO_AUTO_VIF IEEE80211_HW_SW_CRYPTO_CONTROL IEEE80211_HW_SUPPORT_FAST_XMIT IEEE80211_HW_REPORTS_TX_ACK_STATUS IEEE80211_HW_CONNECTION_MONITOR IEEE80211_HW_QUEUE_CONTROL IEEE80211_HW_SUPPORTS_PER_STA_GTK IEEE80211_HW_AP_LINK_PS IEEE80211_HW_TX_AMPDU_SETUP_IN_HW IEEE80211_HW_SUPPORTS_RC_TABLE IEEE80211_HW_P2P_DEV_ADDR_FOR_INTF IEEE80211_HW_TIMING_BEACON_ONLY IEEE80211_HW_SUPPORTS_HT_CCK_RATES IEEE80211_HW_CHANCTX_STA_CSA IEEE80211_HW_SUPPORTS_CLONED_SKBS IEEE80211_HW_SINGLE_SCAN_ON_ALL_BANDS IEEE80211_HW_TDLS_WIDER_BW IEEE80211_HW_SUPPORTS_AMSDU_IN_AMPDU IEEE80211_HW_BEACON_TX_STATUS IEEE80211_HW_NEEDS_UNIQUE_STA_ADDR IEEE80211_HW_SUPPORTS_REORDERING_BUFFER IEEE80211_HW_USES_RSS IEEE80211_HW_TX_AMSDU IEEE80211_HW_TX_FRAG_LIST IEEE80211_HW_REPORTS_LOW_ACK IEEE80211_HW_SUPPORTS_TX_FRAG IEEE80211_HW_SUPPORTS_TDLS_BUFFER_STA IEEE80211_HW_DEAUTH_NEED_MGD_TX_PREP IEEE80211_HW_DOESNT_SUPPORT_QOS_NDP IEEE80211_HW_BUFF_MMPDU_TXQ IEEE80211_HW_SUPPORTS_VHT_EXT_NSS_BW IEEE80211_HW_STA_MMPDU_TXQ IEEE80211_HW_TX_STATUS_NO_AMPDU_LEN IEEE80211_HW_SUPPORTS_MULTI_BSSID IEEE80211_HW_SUPPORTS_ONLY_HE_MULTI_BSSID IEEE80211_HW_AMPDU_KEYBORDER_SUPPORT IEEE80211_HW_SUPPORTS_TX_ENCAP_OFFLOAD IEEE80211_HW_SUPPORTS_RX_DECAP_OFFLOAD IEEE80211_HW_SUPPORTS_CONC_MON_RX_DECAP IEEE80211_HW_DETECTS_COLOR_COLLISION IEEE80211_HW_MLO_MCAST_MULTI_LINK_TX NUM_IEEE80211_HW_FLAGS units_pos ieee80211_hw rate_control_algorithm extra_tx_headroom extra_beacon_tailroom vif_data_size sta_data_size chanctx_data_size txq_data_size max_listen_interval max_signal max_rates max_report_rates max_rate_tries max_tx_aggregation_subframes max_tx_fragments offchannel_tx_hw_queue radiotap_mcs_details radiotap_vht_details radiotap_timestamp netdev_features uapsd_max_sp_len max_nan_de_entries tx_sk_pacing_shift weight_multiplier tx_power_levels max_txpwr_levels_idx ieee80211_tx_rate_control sband reported_rate rate_idx_mask rate_idx_mcs_mask rate_control_ops add_debugfs alloc_sta rate_init rate_update free_sta tx_status_ext tx_status get_rate add_sta_debugfs get_expected_throughput N_ALIVE N_ERROR C_RXON C_RXON_ASSOC C_QOS_PARAM C_RXON_TIMING C_ADD_STA C_REM_STA C_WEPKEY N_3945_RX C_TX C_RATE_SCALE C_LEDS C_TX_LINK_QUALITY_CMD C_CHANNEL_SWITCH N_CHANNEL_SWITCH C_SPECTRUM_MEASUREMENT N_SPECTRUM_MEASUREMENT C_POWER_TBL N_PM_SLEEP N_PM_DEBUG_STATS C_SCAN C_SCAN_ABORT N_SCAN_START N_SCAN_RESULTS N_SCAN_COMPLETE N_BEACON C_TX_BEACON C_TX_PWR_TBL C_BT_CONFIG C_STATS N_STATS N_CARD_STATE N_MISSED_BEACONS C_CT_KILL_CONFIG C_SENSITIVITY C_PHY_CALIBRATION N_RX_PHY N_RX_MPDU N_RX N_COMPRESSED_BA IL_CN_MAX il_cmd_header il3945_tx_power tx_gain dsp_atten il_init_alive_resp ucode_minor ucode_major sw_rev ver_type ver_subtype log_event_table_ptr error_event_table_ptr is_valid therm_r1 therm_r2 therm_r3 therm_r4 tx_atten il_alive_resp il_error_resp cmd_id bad_cmd_seq_num il_rxon_cmd node_addr bssid_addr wlap_bssid_addr air_propagation rx_chain ofdm_basic_rates cck_basic_rates filter_flags ofdm_ht_single_stream_basic_rates ofdm_ht_dual_stream_basic_rates il_rxon_time_cmd atim_win beacon_init_val delta_cp_bss_tbtts il_csa_notification il_ac_qos edca_txop il_qosparam_cmd qos_flags il4965_keyinfo key_flags tkip_rx_tsc_byte2 tkip_rx_ttak sta_id_modify sta_id modify_mask il_addsta_cmd station_flags station_flags_msk tid_disable_tx rate_n_flags add_immediate_ba_tid remove_immediate_ba_tid add_immediate_ba_ssn sleep_tx_count il_add_sta_resp il_rem_sta_resp il_wep_key il3945_rx_frame_stats phy_count rssi agc sig_avg noise_diff il3945_rx_frame_hdr phy_flags il3945_rx_frame_end beacon_timestamp il3945_rx_frame il_rx_phy_res non_cfg_phy_cnt cfg_phy_cnt stat_id beacon_time_stamp non_cfg_phy_buf il3945_tx_resp failure_rts failure_frame bt_kill_count wireless_media_time il_dram_scratch try_cnt bt_kill_cnt life_time attempt pm_frame_timeout attempt_duration il_tx_cmd next_frame_len sec_ctl initial_rate_idx next_frame_flags stop_time dram_lsb_ptr dram_msb_ptr rts_retry_limit data_retry_limit tid_tspec driver_txop il_compressed_ba_resp sta_addr_lo32 sta_addr_hi16 seq_ctl scd_flow scd_ssn il_link_qual_general_params mimo_delimiter single_stream_ant_msk dual_stream_ant_msk start_rate_idx il_link_qual_agg_params agg_time_limit agg_dis_start_th agg_frame_cnt_limit il_link_quality_cmd general_params agg_params rs_table il_spectrum_resp il_measurement_histogram ofdm cck il_spectrum_notification cca_ofdm cca_cck cca_time basic_type histogram il_powertable_cmd keep_alive_seconds debug_flags rx_data_timeout tx_data_timeout sleep_interval keep_alive_beacons il_sleep_notification pm_sleep_mode pm_wakeup_src sleep_time tsf_low bcon_timer il_card_state_notif il3945_beacon_notif beacon_notify_hdr low_tsf high_tsf ibss_mgr_status iwl39_stats_rx_phy ina_cnt fina_cnt plcp_err crc32_err overrun_err early_overrun_err crc32_good false_alarm_cnt fina_sync_err_cnt sfd_timeout fina_timeout unresponded_rts rxe_frame_limit_overrun sent_ack_cnt sent_cts_cnt iwl39_stats_rx_non_phy bogus_cts bogus_ack non_bssid_frames filtered_frames non_channel_beacons iwl39_stats_rx general iwl39_stats_tx preamble_cnt rx_detected_cnt bt_prio_defer_cnt bt_prio_kill_cnt few_bytes_cnt cts_timeout ack_timeout expected_ack_cnt actual_ack_cnt stats_dbg burst_check burst_count wait_for_silence_timeout_cnt iwl39_stats_div tx_on_a tx_on_b exec_time probe_time iwl39_stats_general dbg slots_out slots_idle ttl_timestamp stats_rx_phy sent_ba_rsp_cnt dsp_self_kill mh_format_err re_acq_main_rssi_sum stats_rx_ht_phy agg_crc32_good agg_mpdu_cnt agg_cnt unsupport_mcs stats_rx_non_phy channel_beacons num_missed_bcon adc_rx_saturation_time ina_detection_search_time beacon_silence_rssi_a beacon_silence_rssi_b beacon_silence_rssi_c interference_data_flag channel_load dsp_false_alarms beacon_rssi_a beacon_rssi_b beacon_rssi_c beacon_energy_a beacon_energy_b beacon_energy_c stats_rx ofdm_ht stats_tx_non_phy_agg ba_timeout ba_reschedule_frames scd_query_agg_frame_cnt scd_query_no_agg scd_query_agg scd_query_mismatch frame_not_ready underrun bt_prio_kill rx_ba_rsp_cnt stats_tx dump_msdu_cnt burst_abort_next_frame_mismatch_cnt burst_abort_missing_next_frame_cnt cts_timeout_collision ack_or_ba_timeout_collision stats_div stats_general_common rx_enable_counter num_of_sos_states stats_general il3945_notif_stats il_notif_stats il_missed_beacon_notif consecutive_missed_beacons total_missed_becons num_expected_beacons num_recvd_beacons il_led_cmd rx_frame tx_resp beacon_status alive_frame spectrum_notif csa_notif err_resp card_state_notif add_sta rem_sta sleep_notif spectrum compressed_ba missed_beacon il_rx_pkt len_n_flags il_rx_buf page_dma il_cmd_meta il_host_cmd reply_page il_priv ieee_channels ieee_rates free_frames frames_count alloc_rxb_page measure_report measurement_status ucode_beacon_time missed_beacon_threshold ibss_manager force_reset channel_info scan_cmd scan_band scan_request scan_vif scan_tx_ant mgmt_tx_ant hcmd_lock reg_lock hw_base hw_rev hw_wa_rev rev_id cmd_queue sta_key_max_num fw_idx ucode_ver ucode_code ucode_data ucode_data_backup ucode_init ucode_init_data ucode_boot ucode_type ucode_write_complete firmware_name qos_data staging timing switch_channel card_alive_init card_alive active_rate start_calib sensitivity_data chain_noise_data sensitivity_tbl current_ht_config retry_rate wait_command_queue activity_timer_active txq_ctx_active_msk scd_bc_tbls scd_base_addr tx_stats rx_stats isr_stats power_data sta_lock num_stations stations ucode_key_table queue_stopped stop_reason queue_stop_count mac80211_registered calib_info iw_mode hw_params inta_mask scan_completed rx_replenish abort_scan beacon_enabled beacon_skb tx_flush irq_tasklet init_alive_start alive_start scan_check tx_power_user_lmt tx_power_device_lmt tx_power_next txpower_work disable_sens_cal disable_chain_noise_cal disable_tx_power_cal run_time_calib_work stats_periodic hw_ready blink_on blink_off led_registered il_device_cmd il_queue n_bd write_ptr read_ptr n_win low_mark high_mark il_tx_queue tfds sched_retry swq_id il_eeprom_channel max_power_avg il_eeprom_calib_measure gain_idx actual_pow pa_det il_eeprom_calib_ch_info ch_num measurements il_eeprom_calib_subband_info ch_from ch_to ch1 ch2 il_eeprom_calib_info saturation_power24 saturation_power52 band_info il4965_channel_tgd_info il4965_channel_tgh_info last_radar_time il3945_clip_group clip_powers il3945_channel_power_info tpc power_table_idx base_power_idx requested_power il3945_scan_power_info il_channel_info tgd tgh ht40_eeprom curr_txpow min_power scan_power group_idx band_idx ht40_max_power_avg ht40_flags ht40_extension_channel power_info scan_pwr_info CMD_SYNC CMD_SIZE_NORMAL CMD_NO_SKB CMD_SIZE_HUGE CMD_ASYNC CMD_WANT_SKB CMD_MAPPED val8 val16 il_rx_queue bd_dma free_count write_actual rx_free rx_used rb_stts rb_stts_dma il_rb_status closed_rb_num closed_fr_num finished_rb_num finished_fr_nam il_ht_agg txq_id frame_count wait_for_ba il_tid_data tfds_in_queue il_hw_key il_ht_config single_chain_sufficient smps il_qos_info qos_active def_qos_parm il_station_entry keyinfo lq il_station_priv_common fw_desc v_addr p_addr il_sensitivity_ranges min_nrg_cck max_nrg_cck nrg_th_cck nrg_th_ofdm auto_corr_min_ofdm auto_corr_min_ofdm_mrc auto_corr_min_ofdm_x1 auto_corr_min_ofdm_mrc_x1 auto_corr_max_ofdm auto_corr_max_ofdm_mrc auto_corr_max_ofdm_x1 auto_corr_max_ofdm_mrc_x1 auto_corr_max_cck auto_corr_max_cck_mrc auto_corr_min_cck auto_corr_min_cck_mrc barker_corr_th_min barker_corr_th_min_mrc nrg_th_cca il_hw_params bcast_id max_txq_num dma_chnl_num scd_bc_tbls_size tfd_size tx_chains_num rx_chains_num valid_tx_ant valid_rx_ant max_rxq_size max_rxq_log rx_page_order rx_wrt_ptr_reg max_stations ht40_channel max_beacon_itrvl max_inst_size max_bsm_size ct_kill_threshold beacon_time_tsf_bits il_dma_ptr UCODE_NONE UCODE_INIT UCODE_RT il_sensitivity_data auto_corr_ofdm auto_corr_ofdm_mrc auto_corr_ofdm_x1 auto_corr_ofdm_mrc_x1 auto_corr_cck auto_corr_cck_mrc last_bad_plcp_cnt_ofdm last_fa_cnt_ofdm last_bad_plcp_cnt_cck last_fa_cnt_cck nrg_curr_state nrg_prev_state nrg_value nrg_silence_rssi nrg_silence_ref nrg_energy_idx nrg_silence_idx nrg_auto_corr_silence_diff num_in_cck_no_fa il_chain_noise_data active_chains chain_noise_a chain_noise_b chain_noise_c chain_signal_a chain_signal_b chain_signal_c beacon_count disconn_array delta_gain_code radio_write err_code alive ctkill unhandled traffic_stats il_force_reset reset_request_count reset_success_count reset_reject_count reset_duration last_force_reset_jiffies il_power_mgr sleep_cmd sleep_cmd_next debug_sleep_level_override pci_pm ps_disabled is_40mhz non_gf_sta_present protection extension_chan_offset shared_virt shared_phys thermal_periodic rfkill_poll sta_supp_rates last_rx_rssi last_beacon_time last_tsf clip_groups last_phy_res last_phy_res_valid ampdu_ref firmware_loading_complete phy_calib_chain_noise_reset_cmd phy_calib_chain_noise_gain_cmd key_mapping_keys _3945 _4965 il_cfg fw_name_pre ucode_api_max ucode_api_min sku eeprom_ver eeprom_calib_ver mod_params base_params scan_rx_antennas led_mode eeprom_size num_of_queues num_of_ampdu_queues pll_cfg_val set_l0s use_bsm led_compensation chain_noise_num_beacons wd_timeout temperature_kelvin ucode_tracing sensitivity_calib_by_driver chain_noise_calib_by_driver regulatory_bands il_ops txq_update_byte_cnt_tbl txq_attach_buf_to_tfd txq_free_tfd txq_init is_valid_rtc_data_addr load_ucode dump_nic_error_log dump_fh set_channel_switch apm_init send_tx_power update_chain_flags eeprom_acquire_semaphore eeprom_release_semaphore rxon_assoc commit_rxon set_rxon_chain get_hcmd_size build_addsta_hcmd request_scan post_scan post_associate config_ap update_bcast_stations manage_ibss_station send_led_cmd il_mod_params sw_crypto disable_hw_scan disable_11n amsdu_size_8K restart_fw il_led_mode IL_LED_DEFAULT IL_LED_RF_STATE IL_LED_BLINK il_base_params il_rate_info plcp plcp_siso plcp_mimo2 ieee prev_ieee next_ieee prev_rs next_rs prev_rs_tgg next_rs_tgg RATE_1M_IDX RATE_2M_IDX RATE_5M_IDX RATE_11M_IDX RATE_6M_IDX RATE_9M_IDX RATE_12M_IDX RATE_18M_IDX RATE_24M_IDX RATE_36M_IDX RATE_48M_IDX RATE_54M_IDX RATE_60M_IDX RATE_COUNT RATE_COUNT_LEGACY RATE_COUNT_3945 RATE_INVM_IDX RATE_INVALID IL_FIRST_OFDM_RATE IL39_LAST_OFDM_RATE IL_LAST_OFDM_RATE IL_FIRST_CCK_RATE IL_LAST_CCK_RATE RATE_6M_PLCP RATE_9M_PLCP RATE_12M_PLCP RATE_18M_PLCP RATE_24M_PLCP RATE_36M_PLCP RATE_48M_PLCP RATE_54M_PLCP RATE_60M_PLCP RATE_1M_PLCP RATE_2M_PLCP RATE_5M_PLCP RATE_11M_PLCP RATE_SISO_6M_PLCP RATE_SISO_12M_PLCP RATE_SISO_18M_PLCP RATE_SISO_24M_PLCP RATE_SISO_36M_PLCP RATE_SISO_48M_PLCP RATE_SISO_54M_PLCP RATE_SISO_60M_PLCP RATE_MIMO2_6M_PLCP RATE_MIMO2_12M_PLCP RATE_MIMO2_18M_PLCP RATE_MIMO2_24M_PLCP RATE_MIMO2_36M_PLCP RATE_MIMO2_48M_PLCP RATE_MIMO2_54M_PLCP RATE_MIMO2_60M_PLCP RATE_SISO_INVM_PLCP RATE_MIMO2_INVM_PLCP RATE_6M_IEEE RATE_9M_IEEE RATE_12M_IEEE RATE_18M_IEEE RATE_24M_IEEE RATE_36M_IEEE RATE_48M_IEEE RATE_54M_IEEE RATE_60M_IEEE RATE_1M_IEEE RATE_2M_IEEE RATE_5M_IEEE RATE_11M_IEEE il_table_type LQ_NONE LQ_G LQ_A LQ_SISO LQ_MIMO2 LQ_MAX il_rate_mcs_info mbps il_rate_scale_data success_counter success_ratio average_tpt il_scale_tbl_info lq_type ant_type is_SGI is_ht40 max_search expected_tpt current_rate il_traffic_load packet_count queue_count il_lq_sta active_tbl enable_counter stay_in_tbl search_better_tbl last_tpt table_count_limit max_failure_limit max_success_limit total_failed total_success flush_timer action_counter is_green active_legacy_rate active_siso_rate active_mimo2_rate max_rate_idx missed_rate_counter lq_info tx_agg_tid_en last_txrate_idx last_rate_n_flags is_agg il_station_priv lq_sta pending_frames asleep il4965_rate_control_unregister il4965_rate_control_register il_r il_sta il4965_rs_rate_init_stub il4965_rs_free_sta il_rate il4965_rs_free il4965_rs_alloc il il4965_rs_fill_link_cmd il4965_rs_rate_init il4965_rs_alloc_sta txrc il4965_rs_get_rate force_search il4965_rs_stay_in_table il4965_rs_set_expected_tpt_table il4965_rs_tx_status valid_ant il4965_rs_toggle_antenna use_green il4965_rate_n_flags_from_tbl curr_time il4965_rs_tl_rm_old_stats il4965_hwrate_to_plcp_idx radio_tx_gain dsp_predis_atten il4965_tx_power_dual_stream dw tx_power_dual_stream il4965_tx_power_db power_tbl CHANNEL_MODE_LEGACY CHANNEL_MODE_PURE_40 CHANNEL_MODE_MIXED CHANNEL_MODE_RESERVED il4965_rxon_assoc_cmd rx_chain_select_flags il4965_channel_switch_cmd expect_beacon rxon_flags rxon_filter_flags switch_time il4965_addsta_cmd il4965_txpowertable_cmd IL_PHY_CALIBRATE_DIFF_GAIN_CMD IL_MAX_STANDARD_PHY_CALIBRATE_TBL_SIZE il_calib_hdr op_code first_group groups_num data_valid il_calib_diff_gain_cmd diff_gain_a diff_gain_b diff_gain_c EEPROM_CHANNEL_VALID EEPROM_CHANNEL_IBSS EEPROM_CHANNEL_ACTIVE EEPROM_CHANNEL_RADAR EEPROM_CHANNEL_WIDE EEPROM_CHANNEL_DFS il4965_chain_noise_state IL_CHAIN_NOISE_ALIVE IL_CHAIN_NOISE_ACCUMULATE IL_CHAIN_NOISE_CALIBRATED IL_CHAIN_NOISE_DONE CALIB_CH_GROUP_1 CALIB_CH_GROUP_2 CALIB_CH_GROUP_3 CALIB_CH_GROUP_4 CALIB_CH_GROUP_5 CALIB_CH_GROUP_MAX il4965_scd_bc_tbl tfd_offset il4965_txpower_comp_entry degrees_per_05db_a degrees_per_05db_a_denom gain_entry dsp radio il4965_config_ap il4965_post_associate il4965_post_scan il4965_build_addsta_hcmd il4965_get_hcmd_size il4965_temperature_calib il4965_hw_get_temperature byte_cnt il4965_txq_update_byte_cnt_tbl ch_switch il4965_hw_channel_switch il4965_commit_rxon il4965_send_rxon_assoc il4965_send_tx_power ctrl_chan_high tx_power_tbl il4965_fill_txpower_tbl il4965_interpolate_value il4965_nic_config il4965_init_alive_start il4965_load_bsm il4965_led_enable led_cmd il4965_send_led_cmd il4965_eeprom_get_mac il4965_eeprom_check_version il4965_eeprom_release_semaphore il4965_eeprom_acquire_semaphore il4965_verify_ucode il4965_verify_inst_sparse il4965_hw_valid_rtc_data_addr ieee80211_msrment_ie ieee80211_ext_chansw_ie new_operating_class new_ch_num ieee80211_tpc_report_ie link_margin ieee80211_twt_setup dialog_token element_id auth_alg auth_transaction reason_code capab_info current_ap __empty_variable action_code msr_elem capab start_seq_num trans_id smps_control chanwidth operating_mode tpc_elem_id tpc_elem_length tod toa tod_error toa_error max_tod_error max_toa_error wme_action chan_switch ext_chan_switch measurement addba_req addba_resp delba self_prot mesh_action sa_query ht_smps ht_notify_cw tdls_discover_resp vht_opmode_notif vht_group_notif tpc_report wnm_timing_msr deauth assoc_req assoc_resp reassoc_resp s1g_assoc_resp s1g_reassoc_resp reassoc_req disassoc probe_req probe_resp ieee80211_mgmt da ieee80211_he_mu_edca_param_ac_rec ecw_min_max mu_edca_timer ieee80211_eid WLAN_EID_SSID WLAN_EID_SUPP_RATES WLAN_EID_FH_PARAMS WLAN_EID_DS_PARAMS WLAN_EID_CF_PARAMS WLAN_EID_TIM WLAN_EID_IBSS_PARAMS WLAN_EID_COUNTRY WLAN_EID_REQUEST WLAN_EID_QBSS_LOAD WLAN_EID_EDCA_PARAM_SET WLAN_EID_TSPEC WLAN_EID_TCLAS WLAN_EID_SCHEDULE WLAN_EID_CHALLENGE WLAN_EID_PWR_CONSTRAINT WLAN_EID_PWR_CAPABILITY WLAN_EID_TPC_REQUEST WLAN_EID_TPC_REPORT WLAN_EID_SUPPORTED_CHANNELS WLAN_EID_CHANNEL_SWITCH WLAN_EID_MEASURE_REQUEST WLAN_EID_MEASURE_REPORT WLAN_EID_QUIET WLAN_EID_IBSS_DFS WLAN_EID_ERP_INFO WLAN_EID_TS_DELAY WLAN_EID_TCLAS_PROCESSING WLAN_EID_HT_CAPABILITY WLAN_EID_QOS_CAPA WLAN_EID_RSN WLAN_EID_802_15_COEX WLAN_EID_EXT_SUPP_RATES WLAN_EID_AP_CHAN_REPORT WLAN_EID_NEIGHBOR_REPORT WLAN_EID_RCPI WLAN_EID_MOBILITY_DOMAIN WLAN_EID_FAST_BSS_TRANSITION WLAN_EID_TIMEOUT_INTERVAL WLAN_EID_RIC_DATA WLAN_EID_DSE_REGISTERED_LOCATION WLAN_EID_SUPPORTED_REGULATORY_CLASSES WLAN_EID_EXT_CHANSWITCH_ANN WLAN_EID_HT_OPERATION WLAN_EID_SECONDARY_CHANNEL_OFFSET WLAN_EID_BSS_AVG_ACCESS_DELAY WLAN_EID_ANTENNA_INFO WLAN_EID_RSNI WLAN_EID_MEASUREMENT_PILOT_TX_INFO WLAN_EID_BSS_AVAILABLE_CAPACITY WLAN_EID_BSS_AC_ACCESS_DELAY WLAN_EID_TIME_ADVERTISEMENT WLAN_EID_RRM_ENABLED_CAPABILITIES WLAN_EID_MULTIPLE_BSSID WLAN_EID_BSS_COEX_2040 WLAN_EID_BSS_INTOLERANT_CHL_REPORT WLAN_EID_OVERLAP_BSS_SCAN_PARAM WLAN_EID_RIC_DESCRIPTOR WLAN_EID_MMIE WLAN_EID_ASSOC_COMEBACK_TIME WLAN_EID_EVENT_REQUEST WLAN_EID_EVENT_REPORT WLAN_EID_DIAGNOSTIC_REQUEST WLAN_EID_DIAGNOSTIC_REPORT WLAN_EID_LOCATION_PARAMS WLAN_EID_NON_TX_BSSID_CAP WLAN_EID_SSID_LIST WLAN_EID_MULTI_BSSID_IDX WLAN_EID_FMS_DESCRIPTOR WLAN_EID_FMS_REQUEST WLAN_EID_FMS_RESPONSE WLAN_EID_QOS_TRAFFIC_CAPA WLAN_EID_BSS_MAX_IDLE_PERIOD WLAN_EID_TSF_REQUEST WLAN_EID_TSF_RESPOSNE WLAN_EID_WNM_SLEEP_MODE WLAN_EID_TIM_BCAST_REQ WLAN_EID_TIM_BCAST_RESP WLAN_EID_COLL_IF_REPORT WLAN_EID_CHANNEL_USAGE WLAN_EID_TIME_ZONE WLAN_EID_DMS_REQUEST WLAN_EID_DMS_RESPONSE WLAN_EID_LINK_ID WLAN_EID_WAKEUP_SCHEDUL WLAN_EID_CHAN_SWITCH_TIMING WLAN_EID_PTI_CONTROL WLAN_EID_PU_BUFFER_STATUS WLAN_EID_INTERWORKING WLAN_EID_ADVERTISEMENT_PROTOCOL WLAN_EID_EXPEDITED_BW_REQ WLAN_EID_QOS_MAP_SET WLAN_EID_ROAMING_CONSORTIUM WLAN_EID_EMERGENCY_ALERT WLAN_EID_MESH_CONFIG WLAN_EID_MESH_ID WLAN_EID_LINK_METRIC_REPORT WLAN_EID_CONGESTION_NOTIFICATION WLAN_EID_PEER_MGMT WLAN_EID_CHAN_SWITCH_PARAM WLAN_EID_MESH_AWAKE_WINDOW WLAN_EID_BEACON_TIMING WLAN_EID_MCCAOP_SETUP_REQ WLAN_EID_MCCAOP_SETUP_RESP WLAN_EID_MCCAOP_ADVERT WLAN_EID_MCCAOP_TEARDOWN WLAN_EID_GANN WLAN_EID_RANN WLAN_EID_EXT_CAPABILITY WLAN_EID_PREQ WLAN_EID_PREP WLAN_EID_PERR WLAN_EID_PXU WLAN_EID_PXUC WLAN_EID_AUTH_MESH_PEER_EXCH WLAN_EID_MIC WLAN_EID_DESTINATION_URI WLAN_EID_UAPSD_COEX WLAN_EID_WAKEUP_SCHEDULE WLAN_EID_EXT_SCHEDULE WLAN_EID_STA_AVAILABILITY WLAN_EID_DMG_TSPEC WLAN_EID_DMG_AT WLAN_EID_DMG_CAP WLAN_EID_CISCO_VENDOR_SPECIFIC WLAN_EID_DMG_OPERATION WLAN_EID_DMG_BSS_PARAM_CHANGE WLAN_EID_DMG_BEAM_REFINEMENT WLAN_EID_CHANNEL_MEASURE_FEEDBACK WLAN_EID_AWAKE_WINDOW WLAN_EID_MULTI_BAND WLAN_EID_ADDBA_EXT WLAN_EID_NEXT_PCP_LIST WLAN_EID_PCP_HANDOVER WLAN_EID_DMG_LINK_MARGIN WLAN_EID_SWITCHING_STREAM WLAN_EID_SESSION_TRANSITION WLAN_EID_DYN_TONE_PAIRING_REPORT WLAN_EID_CLUSTER_REPORT WLAN_EID_RELAY_CAP WLAN_EID_RELAY_XFER_PARAM_SET WLAN_EID_BEAM_LINK_MAINT WLAN_EID_MULTIPLE_MAC_ADDR WLAN_EID_U_PID WLAN_EID_DMG_LINK_ADAPT_ACK WLAN_EID_MCCAOP_ADV_OVERVIEW WLAN_EID_QUIET_PERIOD_REQ WLAN_EID_QUIET_PERIOD_RESP WLAN_EID_EPAC_POLICY WLAN_EID_CLISTER_TIME_OFF WLAN_EID_INTER_AC_PRIO WLAN_EID_SCS_DESCRIPTOR WLAN_EID_QLOAD_REPORT WLAN_EID_HCCA_TXOP_UPDATE_COUNT WLAN_EID_HL_STREAM_ID WLAN_EID_GCR_GROUP_ADDR WLAN_EID_ANTENNA_SECTOR_ID_PATTERN WLAN_EID_VHT_CAPABILITY WLAN_EID_VHT_OPERATION WLAN_EID_EXTENDED_BSS_LOAD WLAN_EID_WIDE_BW_CHANNEL_SWITCH WLAN_EID_TX_POWER_ENVELOPE WLAN_EID_CHANNEL_SWITCH_WRAPPER WLAN_EID_AID WLAN_EID_QUIET_CHANNEL WLAN_EID_OPMODE_NOTIF WLAN_EID_REDUCED_NEIGHBOR_REPORT WLAN_EID_AID_REQUEST WLAN_EID_AID_RESPONSE WLAN_EID_S1G_BCN_COMPAT WLAN_EID_S1G_SHORT_BCN_INTERVAL WLAN_EID_S1G_TWT WLAN_EID_S1G_CAPABILITIES WLAN_EID_VENDOR_SPECIFIC WLAN_EID_QOS_PARAMETER WLAN_EID_S1G_OPERATION WLAN_EID_CAG_NUMBER WLAN_EID_AP_CSN WLAN_EID_FILS_INDICATION WLAN_EID_DILS WLAN_EID_FRAGMENT WLAN_EID_RSNX WLAN_EID_EXTENSION rfkill_hard_block_reasons RFKILL_HARD_BLOCK_SIGNAL RFKILL_HARD_BLOCK_NOT_OWNER nl80211_sta_flag_update nl80211_mesh_power_mode NL80211_MESH_POWER_UNKNOWN NL80211_MESH_POWER_ACTIVE NL80211_MESH_POWER_LIGHT_SLEEP NL80211_MESH_POWER_DEEP_SLEEP __NL80211_MESH_POWER_AFTER_LAST NL80211_MESH_POWER_MAX nl80211_channel_type NL80211_CHAN_NO_HT NL80211_CHAN_HT20 NL80211_CHAN_HT40MINUS NL80211_CHAN_HT40PLUS nl80211_tid_config NL80211_TID_CONFIG_ENABLE NL80211_TID_CONFIG_DISABLE nl80211_tx_rate_setting NL80211_TX_RATE_AUTOMATIC NL80211_TX_RATE_LIMITED NL80211_TX_RATE_FIXED nl80211_feature_flags NL80211_FEATURE_SK_TX_STATUS NL80211_FEATURE_HT_IBSS NL80211_FEATURE_INACTIVITY_TIMER NL80211_FEATURE_CELL_BASE_REG_HINTS NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL NL80211_FEATURE_SAE NL80211_FEATURE_LOW_PRIORITY_SCAN NL80211_FEATURE_SCAN_FLUSH NL80211_FEATURE_AP_SCAN NL80211_FEATURE_VIF_TXPOWER NL80211_FEATURE_NEED_OBSS_SCAN NL80211_FEATURE_P2P_GO_CTWIN NL80211_FEATURE_P2P_GO_OPPPS NL80211_FEATURE_ADVERTISE_CHAN_LIMITS NL80211_FEATURE_FULL_AP_CLIENT_STATE NL80211_FEATURE_USERSPACE_MPM NL80211_FEATURE_ACTIVE_MONITOR NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE NL80211_FEATURE_DS_PARAM_SET_IE_IN_PROBES NL80211_FEATURE_WFA_TPC_IE_IN_PROBES NL80211_FEATURE_QUIET NL80211_FEATURE_TX_POWER_INSERTION NL80211_FEATURE_ACKTO_ESTIMATION NL80211_FEATURE_STATIC_SMPS NL80211_FEATURE_DYNAMIC_SMPS NL80211_FEATURE_SUPPORTS_WMM_ADMISSION NL80211_FEATURE_MAC_ON_CREATE NL80211_FEATURE_TDLS_CHANNEL_SWITCH NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR NL80211_FEATURE_ND_RANDOM_MAC_ADDR nl80211_nan_function_type NL80211_NAN_FUNC_PUBLISH NL80211_NAN_FUNC_SUBSCRIBE NL80211_NAN_FUNC_FOLLOW_UP __NL80211_NAN_FUNC_TYPE_AFTER_LAST NL80211_NAN_FUNC_MAX_TYPE nl80211_preamble NL80211_PREAMBLE_LEGACY NL80211_PREAMBLE_HT NL80211_PREAMBLE_VHT NL80211_PREAMBLE_DMG NL80211_PREAMBLE_HE ieee80211_regulatory_flags REGULATORY_CUSTOM_REG REGULATORY_STRICT_REG REGULATORY_DISABLE_BEACON_HINTS REGULATORY_COUNTRY_IE_FOLLOW_POWER REGULATORY_COUNTRY_IE_IGNORE REGULATORY_ENABLE_RELAX_NO_IR REGULATORY_WIPHY_SELF_MANAGED ieee80211_channel_flags IEEE80211_CHAN_DISABLED IEEE80211_CHAN_NO_IR IEEE80211_CHAN_RADAR IEEE80211_CHAN_NO_HT40PLUS IEEE80211_CHAN_NO_HT40MINUS IEEE80211_CHAN_NO_OFDM IEEE80211_CHAN_NO_80MHZ IEEE80211_CHAN_NO_160MHZ IEEE80211_CHAN_INDOOR_ONLY IEEE80211_CHAN_IR_CONCURRENT IEEE80211_CHAN_NO_20MHZ IEEE80211_CHAN_NO_10MHZ IEEE80211_CHAN_NO_HE IEEE80211_CHAN_1MHZ IEEE80211_CHAN_2MHZ IEEE80211_CHAN_4MHZ IEEE80211_CHAN_8MHZ IEEE80211_CHAN_16MHZ IEEE80211_CHAN_NO_320MHZ IEEE80211_CHAN_NO_EHT ieee80211_rate_flags IEEE80211_RATE_SHORT_PREAMBLE IEEE80211_RATE_MANDATORY_A IEEE80211_RATE_MANDATORY_B IEEE80211_RATE_MANDATORY_G IEEE80211_RATE_ERP_G IEEE80211_RATE_SUPPORTS_5MHZ IEEE80211_RATE_SUPPORTS_10MHZ cfg80211_tid_cfg config_override tids ampdu rtscts amsdu txrate_type txrate_mask cfg80211_tid_config n_tid_conf tid_conf survey_info time_busy time_ext_busy time_rx time_tx time_scan time_bss_rx filled rate_info_bw RATE_INFO_BW_20 RATE_INFO_BW_5 RATE_INFO_BW_10 RATE_INFO_BW_40 RATE_INFO_BW_80 RATE_INFO_BW_160 RATE_INFO_BW_HE_RU RATE_INFO_BW_320 RATE_INFO_BW_EHT_RU sta_bss_parameters cfg80211_txq_stats backlog_bytes backlog_packets ecn_marks overlimit overmemory max_flows cfg80211_tid_stats rx_msdu tx_msdu tx_msdu_retries tx_msdu_failed txq_stats station_info connected_time inactive_time assoc_at llid plink_state signal_avg chains chain_signal chain_signal_avg txrate rxrate tx_retries tx_failed rx_dropped_misc bss_param sta_flags assoc_req_ies assoc_req_ies_len beacon_loss_count t_offset local_pm peer_pm nonpeer_pm expected_throughput tx_duration rx_duration rx_beacon rx_beacon_signal_avg connected_to_gate pertid avg_ack_signal airtime_weight rx_mpdu_count fcs_err_count airtime_link_metric connected_to_as cfg80211_sar_sub_specs freq_range_index cfg80211_sar_specs num_sub_specs sub_specs cfg80211_gtk_rekey_data kek kck replay_ctr akm kek_len kck_len cfg80211_nan_conf master_pref cfg80211_nan_func_filter cfg80211_nan_func service_id publish_type close_range publish_bcast subscribe_active followup_id followup_reqid followup_dest serv_spec_info serv_spec_info_len srf_include srf_bf srf_bf_len srf_bf_idx srf_macs srf_num_macs tx_filters num_tx_filters num_rx_filters instance_id cfg80211_ftm_responder_stats success_num partial_num failed_num asap_num non_asap_num total_duration_ms unknown_triggers_num reschedule_requests_num out_of_window_triggers_num cfg80211_pmsr_ftm_request_peer preamble burst_period lmr_feedback num_bursts_exp burst_duration ftms_per_burst ftmr_retries bss_color cfg80211_pmsr_request_peer cfg80211_pmsr_request n_peers nl_portid wiphy_flags WIPHY_FLAG_SUPPORTS_EXT_KEK_KCK WIPHY_FLAG_SUPPORTS_MLO WIPHY_FLAG_SPLIT_SCAN_6GHZ WIPHY_FLAG_NETNS_OK WIPHY_FLAG_PS_ON_BY_DEFAULT WIPHY_FLAG_4ADDR_AP WIPHY_FLAG_4ADDR_STATION WIPHY_FLAG_CONTROL_PORT_PROTOCOL WIPHY_FLAG_IBSS_RSN WIPHY_FLAG_MESH_AUTH WIPHY_FLAG_SUPPORTS_FW_ROAM WIPHY_FLAG_AP_UAPSD WIPHY_FLAG_SUPPORTS_TDLS WIPHY_FLAG_TDLS_EXTERNAL_SETUP WIPHY_FLAG_HAVE_AP_SME WIPHY_FLAG_REPORTS_OBSS WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD WIPHY_FLAG_OFFCHAN_TX WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL WIPHY_FLAG_SUPPORTS_5_10_MHZ WIPHY_FLAG_HAS_CHANNEL_SWITCH WIPHY_FLAG_HAS_STATIC_WEP ieee80211_ac_numbers IEEE80211_AC_VO IEEE80211_AC_VI IEEE80211_AC_BE IEEE80211_AC_BK ieee80211_tx_queue_params txop aifs acm uapsd mu_edca mu_edca_param_rec ieee80211_low_level_stats dot11ACKFailureCount dot11RTSFailureCount dot11FCSErrorCount dot11RTSSuccessCount ieee80211_chanctx_switch_mode CHANCTX_SWMODE_REASSIGN_VIF CHANCTX_SWMODE_SWAP_CONTEXTS ieee80211_vif_chanctx_switch ieee80211_event_type RSSI_EVENT MLME_EVENT BAR_RX_EVENT BA_FRAME_TIMEOUT ieee80211_rssi_event_data RSSI_EVENT_HIGH RSSI_EVENT_LOW ieee80211_rssi_event ieee80211_mlme_event_data AUTH_EVENT ASSOC_EVENT DEAUTH_RX_EVENT DEAUTH_TX_EVENT ieee80211_mlme_event_status MLME_SUCCESS MLME_DENIED MLME_TIMEOUT ieee80211_mlme_event ieee80211_ba_event mlme ba ieee80211_event ieee80211_scan_ies ies common_ies common_ie_len mac80211_rx_flags RX_FLAG_MMIC_ERROR RX_FLAG_DECRYPTED RX_FLAG_MACTIME_PLCP_START RX_FLAG_MMIC_STRIPPED RX_FLAG_IV_STRIPPED RX_FLAG_FAILED_FCS_CRC RX_FLAG_FAILED_PLCP_CRC RX_FLAG_MACTIME_START RX_FLAG_NO_SIGNAL_VAL RX_FLAG_AMPDU_DETAILS RX_FLAG_PN_VALIDATED RX_FLAG_DUP_VALIDATED RX_FLAG_AMPDU_LAST_KNOWN RX_FLAG_AMPDU_IS_LAST RX_FLAG_AMPDU_DELIM_CRC_ERROR RX_FLAG_AMPDU_DELIM_CRC_KNOWN RX_FLAG_MACTIME_END RX_FLAG_ONLY_MONITOR RX_FLAG_SKIP_MONITOR RX_FLAG_AMSDU_MORE RX_FLAG_RADIOTAP_VENDOR_DATA RX_FLAG_MIC_STRIPPED RX_FLAG_ALLOW_SAME_PN RX_FLAG_ICV_STRIPPED RX_FLAG_AMPDU_EOF_BIT RX_FLAG_AMPDU_EOF_BIT_KNOWN RX_FLAG_RADIOTAP_HE RX_FLAG_RADIOTAP_HE_MU RX_FLAG_RADIOTAP_LSIG RX_FLAG_NO_PSDU RX_FLAG_8023 mac80211_rx_encoding_flags RX_ENC_FLAG_SHORTPRE RX_ENC_FLAG_SHORT_GI RX_ENC_FLAG_HT_GF RX_ENC_FLAG_STBC_MASK RX_ENC_FLAG_LDPC RX_ENC_FLAG_BF mac80211_rx_encoding RX_ENC_LEGACY RX_ENC_HT RX_ENC_VHT RX_ENC_HE boottime_ns ack_tx_hwtstamp ieee80211_rx_status mactime ampdu_reference enc_flags he_ru rx_flags ampdu_delimiter_crc zero_length_psdu_type link_valid ieee80211_key_flags IEEE80211_KEY_FLAG_GENERATE_IV_MGMT IEEE80211_KEY_FLAG_GENERATE_IV IEEE80211_KEY_FLAG_GENERATE_MMIC IEEE80211_KEY_FLAG_PAIRWISE IEEE80211_KEY_FLAG_SW_MGMT_TX IEEE80211_KEY_FLAG_PUT_IV_SPACE IEEE80211_KEY_FLAG_RX_MGMT IEEE80211_KEY_FLAG_RESERVE_TAILROOM IEEE80211_KEY_FLAG_PUT_MIC_SPACE IEEE80211_KEY_FLAG_NO_AUTO_TX IEEE80211_KEY_FLAG_GENERATE_MMIE iv32 iv16 tkip ccmp aes_cmac aes_gmac gcmp ieee80211_key_seq set_key_cmd SET_KEY DISABLE_KEY ieee80211_sta_state IEEE80211_STA_NOTEXIST IEEE80211_STA_NONE IEEE80211_STA_AUTH IEEE80211_STA_ASSOC IEEE80211_STA_AUTHORIZED sta_notify_cmd STA_NOTIFY_SLEEP STA_NOTIFY_AWAKE ieee80211_tx_control ieee80211_scan_request ieee80211_tdls_ch_sw_params switch_timeout tmpl_skb ch_sw_tm_ie ieee80211_filter_flags FIF_ALLMULTI FIF_FCSFAIL FIF_PLCPFAIL FIF_BCN_PRBRESP_PROMISC FIF_CONTROL FIF_OTHER_BSS FIF_PSPOLL FIF_PROBE_REQ FIF_MCAST_ACTION ieee80211_ampdu_mlme_action IEEE80211_AMPDU_RX_START IEEE80211_AMPDU_RX_STOP IEEE80211_AMPDU_TX_START IEEE80211_AMPDU_TX_STOP_CONT IEEE80211_AMPDU_TX_STOP_FLUSH IEEE80211_AMPDU_TX_STOP_FLUSH_CONT IEEE80211_AMPDU_TX_OPERATIONAL ieee80211_ampdu_params ieee80211_frame_release_type IEEE80211_FRAME_RELEASE_PSPOLL IEEE80211_FRAME_RELEASE_UAPSD ieee80211_roc_type IEEE80211_ROC_TYPE_NORMAL IEEE80211_ROC_TYPE_MGMT_TX ieee80211_reconfig_type IEEE80211_RECONFIG_TYPE_RESTART IEEE80211_RECONFIG_TYPE_SUSPEND ieee80211_prep_tx_info ieee80211_ops set_wakeup add_interface change_interface remove_interface bss_info_changed vif_cfg_changed link_info_changed start_ap stop_ap prepare_multicast configure_filter config_iface_filter set_tim set_key update_tkip_key set_rekey_data set_default_unicast_key hw_scan cancel_hw_scan sched_scan_start sched_scan_stop sw_scan_start sw_scan_complete get_key_seq set_frag_threshold set_rts_threshold sta_add sta_remove sta_notify sta_set_txpwr sta_state sta_pre_rcu_remove sta_rc_update sta_rate_tbl_update sta_statistics conf_tx get_tsf set_tsf offset_tsf reset_tsf tx_last_beacon ampdu_action get_survey set_coverage_class channel_switch set_antenna get_antenna remain_on_channel cancel_remain_on_channel tx_frames_pending set_bitrate_mask event_callback allow_buffered_frames release_buffered_frames get_et_sset_count get_et_stats get_et_strings mgd_prepare_tx mgd_complete_tx mgd_protect_tdls_discover add_chanctx remove_chanctx change_chanctx assign_vif_chanctx unassign_vif_chanctx switch_vif_chanctx reconfig_complete ipv6_addr_change channel_switch_beacon pre_channel_switch post_channel_switch abort_channel_switch channel_switch_rx_beacon join_ibss leave_ibss get_txpower tdls_channel_switch tdls_cancel_channel_switch tdls_recv_channel_switch wake_tx_queue sync_rx_queues start_nan stop_nan nan_change_conf add_nan_func del_nan_func can_aggregate_in_amsdu get_ftm_responder_stats start_pmsr abort_pmsr set_tid_config reset_tid_config update_vif_offload sta_set_4addr set_sar_specs sta_set_decap_offload add_twt_setup twt_teardown_request set_radar_background net_fill_forward_path change_vif_links change_sta_links il_wep_cmd num_keys global_key_type il4965_rx_non_cfg_phy ant_selection agc_info rssi_info il_rx_mpdu_res_start TX_STATUS_SUCCESS TX_STATUS_DIRECT_DONE TX_STATUS_POSTPONE_DELAY TX_STATUS_POSTPONE_FEW_BYTES TX_STATUS_POSTPONE_QUIET_PERIOD TX_STATUS_POSTPONE_CALC_TTAK TX_STATUS_FAIL_INTERNAL_CROSSED_RETRY TX_STATUS_FAIL_SHORT_LIMIT TX_STATUS_FAIL_LONG_LIMIT TX_STATUS_FAIL_FIFO_UNDERRUN TX_STATUS_FAIL_DRAIN_FLOW TX_STATUS_FAIL_RFKILL_FLUSH TX_STATUS_FAIL_LIFE_EXPIRE TX_STATUS_FAIL_DEST_PS TX_STATUS_FAIL_HOST_ABORTED TX_STATUS_FAIL_BT_RETRY TX_STATUS_FAIL_STA_INVALID TX_STATUS_FAIL_FRAG_DROPPED TX_STATUS_FAIL_TID_DISABLE TX_STATUS_FAIL_FIFO_FLUSHED TX_STATUS_FAIL_INSUFFICIENT_CF_POLL TX_STATUS_FAIL_PASSIVE_NO_RX TX_STATUS_FAIL_NO_BEACON_ON_RADAR TX_STATUS_MSK TX_STATUS_DELAY_MSK TX_STATUS_ABORT_MSK TX_PACKET_MODE_MSK TX_FIFO_NUMBER_MSK TX_RESERVED TX_POWER_PA_DETECT_MSK TX_ABORT_REQUIRED_MSK AGG_TX_STATE_TRANSMITTED AGG_TX_STATE_UNDERRUN_MSK AGG_TX_STATE_FEW_BYTES_MSK AGG_TX_STATE_ABORT_MSK AGG_TX_STATE_LAST_SENT_TTL_MSK AGG_TX_STATE_LAST_SENT_TRY_CNT_MSK AGG_TX_STATE_SCD_QUERY_MSK AGG_TX_STATE_TEST_BAD_CRC32_MSK AGG_TX_STATE_RESPONSE_MSK AGG_TX_STATE_DUMP_TX_MSK AGG_TX_STATE_DELAY_TX_MSK agg_tx_status __empty_agg_status agg_status il4965_tx_resp pa_power1 pa_power2 il_ct_kill_config critical_temperature_M critical_temperature_R il_scan_channel active_dwell passive_dwell il_ssid_ie il_scan_cmd quiet_time quiet_plcp_th good_CRC_th max_out_time suspend_time tx_cmd direct_scan il4965_beacon_notif il_tx_beacon_cmd tim_idx tim_size il_frame il_vif_priv ibss_bssid_sta_id inst_size init_data_size il_ucode_header il_tfd_tb hi_n_len il_tfd num_tbs il4965_firmware_pieces il4965_exit il4965_init il4965_txq_set_sched il4965_pci_remove il4965_pci_probe tx_fifo_id scd_retry il4965_tx_queue_set_status il4965_set_wr_ptrs il4965_bg_txpower_work changed_flags total_flags il4965_configure_filter il4965_mac_channel_switch il4965_mac_sta_add il4965_mac_ampdu_action il4965_mac_set_key keyconf phase1key il4965_mac_update_tkip_key il4965_mac_tx il4965_mac_stop il4965_mac_start il4965_bg_rx_replenish il4965_bg_restart il4965_bg_run_time_calib_work il4965_bg_alive_start il4965_bg_init_alive_start __il4965_up il4965_prepare_card_hw il4965_down __il4965_down il4965_dump_nic_error_log ucode_raw il4965_ucode_callback il4965_request_firmware il4965_dealloc_ucode_pci il4965_store_tx_power il4965_show_tx_power il4965_show_temperature il4965_irq_tasklet il4965_rx_handle rxb il4965_hdl_card_state il4965_hdl_beacon il4965_bg_stats_periodic il4965_hdl_alive il4965_hw_tx_queue_init il4965_hw_txq_attach_buf_to_tfd il4965_hw_txq_free_tfd il4965_send_beacon_cmd il4965_free_frame il4965_update_chain_flags il4965_sta_modify_sleep_tx_count il4965_sta_rx_agg_stop il4965_sta_rx_agg_start il4965_sta_tx_modify_enable_tid il4965_update_bcast_stations il4965_alloc_bcast_station il4965_set_dynamic_key il4965_remove_dynamic_key il4965_update_tkip_key il4965_set_default_wep_key il4965_remove_default_wep_key il4965_restore_default_wep_keys send_if_empty il4965_static_wepkey_cmd sta_id_r il4965_add_bssid_station il4965_sta_alloc_lq il4965_hdl_compressed_ba il4965_hwrate_to_tx_control il4965_hdl_tx il4965_tx_queue_reclaim il4965_txq_check_empty il4965_tx_agg_stop il4965_tx_agg_start il4965_txq_ctx_stop il4965_txq_ctx_reset il4965_txq_ctx_alloc il4965_hw_txq_ctx_free il4965_tx_skb il4965_hdl_c_stats il4965_hdl_stats il4965_hdl_missed_beacon il4965_dump_fh il4965_set_rxon_chain il4965_free_tfds_in_queue il4965_manage_ibss_station il4965_request_scan il4965_hdl_rx_phy il4965_hdl_rx il4965_hwrate_to_mac80211_idx il4965_rxq_stop il4965_rx_queue_free il4965_rx_replenish_now il4965_rx_replenish il4965_rx_allocate il4965_rx_queue_restock il4965_hw_nic_init il4965_rx_init il4965_rx_queue_reset il4965_check_abort_status il_disable_interrupts _ieee80211_hw_set il_sensitivity_cmd il4965_false_alarm_state IL_FA_TOO_MANY IL_FA_TOO_FEW IL_FA_GOOD_RANGE stats_general_data il4965_reset_run_time_calib stat_resp il4965_chain_noise_calibration il4965_sensitivity_calibration il4965_init_sensitivity    iwl4965.ko  k                                                                                               	                                                                                        !                      #                      ,                      A      #            d      +       0           +       E           #       \             9      i                             	                  
                  <                                       $                                                   @       W       '                 A            "       `                 y    @                                  "                                  A       d                                    @                                  R      ,          
      C    	            S          7       h                           O            
                      (                                              .                                 #                "    0            ;          .       Y                 r                           i                                                          2           @      .           /                 p                              -    P      e       D          M       _    ;      -       w                      !        (                           h      W           0      @           p      W                 x           P              "    P!      
       5    `!      #      F                 \    "             t    3                      $          	         r           #      A                 O           L      .           #                z              2     %      l       G    p%      3      Z          G       r    '                 @(                  )                                ,                           &          ,                     p                 @A      u       	    P                      +      2     :      @      H     5            V    `            o    p            }   ,                                      1                      a          
      (                 >           T                 Y             *   #               <    x             U          $       _    ;      p       y          $           @S                      C            W      o           W                      &           8      r                 g       	   #               0	   #               B	   #               T	   #               f	          +       	                 	    <      S       	    m            	                 	    ^      $       	   #               	   #               
   #               #
          -       6
          }       R
    ,             n
    I      )       
    r             
                
                 
    (      /      
    	                 
                                  W      ]       2                 K                 f          >                4                                  G           3      9                  2       
    P              (            (       ;                 R    h       ?       o                      (       (                                   +                             P       (       
                 &
          %       @
    +             ^
    x       (       q
                 
    C      >       
                 
           (       
    (      	       
   $                   &                7    @      x       J   !              [   !                p   !                                                           F                                  9                                                                                        	     {                    `                   (                                 !                   (    `      U       B                 [                 m    P      B                                            в      
                 
                 
                            !       4          !               2   ! @             K   !              b   !               y                    l      u                 p           P                 P                `             :    @             Z                    0                      
                                               о                      "                          
      p            
                    8                                  %    0                                E    ]             `                     v                                                                                                                                                                        	    P]      I       '                     7    0w      @      E    W      X       U    =            d                     s                                                                                                                                                                                              ,      ,    P            ?                     K                     ]   *               k    ^                                                                                                                                                                                                                                                +                     ?                     Q                     m    @                                      [      *                                                                                          
                                          )                     6                     Q    C            e                     s                     {                                                                                                            B                                                                                             &                 >                     D                     Z    p      o      k                               T           0[                                                                                                                                           .                     C                     Y                     k                     y                                                                                                                                                       l                                  3    _             N    a      	      e                     p   	         r       |     B                                      P                                                                                                                                          !                     &                     -                     @                     P    u            g                     x                                                                                                                                                                            L            &    ]      +       A    po      p      R   !                ]                     t                                                                                        M      @                                                                                              J      @       1    A      ?       E                 a    J            w                                                                                      @<      !                                                     `r      ,                                                $                     <                     Y    0      _      x                                                                                                                                                                                              *                     :                     L                     f                     s                                                                                               K           s      {                                                     @             	    `                                 1                     F    P      9       b                 u    C      B           O                                                                                      e                                                            N       5     pk      ^      H                      h                      o                                                 0      
                                                                                          !                     !    p            ,!                     =!                     S!                     o!                     !                !                     !                     !                     !    `C      V       !                     "                     "                     ""                     1"                     ;"                     L"                     ^"                     m"                     "                     "                     "                     "                     "                     "                     "                     #                     #                     -#                     >#   !               P#                     e#                     {#          %       #                     #                     #    @      x       #                     #                     $          {       $                     /$                     D$                     W$                     d$                     l$    _      7      $                     $                     $                     $                     $          G      $                     $    P      T      %                     '%                     A%                     P%                     d%                     s%                     %                     %                     %                     %    p<      U      %    @      m       %                     %                     	&                     &                     )&                     =&                     [&                     q&                     &    @]             &    p      -       &                     &    v             &                     &                 '                     '    @             1'                     >'                     K'                     c'    p             |'                     '                     '                     '                     '    @             '                     '                     '    ?      ~      (    pR             (                     ((                     @(                  `(                     v(                     (                (                     (    Y            (    q             (                     (                     )                     *)                     9)                     Q)                     f)                     x)                      __UNIQUE_ID_srcversion196 __UNIQUE_ID_alias195 __UNIQUE_ID_alias194 __UNIQUE_ID_depends193 ____versions __UNIQUE_ID_retpoline192 __UNIQUE_ID_intree191 __UNIQUE_ID_name190 __UNIQUE_ID_vermagic189 _note_10 _note_9 il4965_hw_valid_rtc_data_addr il4965_get_hcmd_size il4965_txq_update_byte_cnt_tbl il4965_hw_get_temperature il4965_hw_get_temperature.cold il4965_build_addsta_hcmd il4965_send_led_cmd il4965_config_ap il4965_config_ap.cold il4965_post_associate il4965_post_associate.cold __func__.1 il4965_post_scan il4965_commit_rxon il4965_commit_rxon.cold il4965_send_rxon_assoc il4965_load_bsm il4965_load_bsm.cold il4965_verify_inst_sparse il4965_interpolate_value il4965_fill_txpower_tbl tx_power_cmp_tble back_off_table gain_table il4965_fill_txpower_tbl.cold il4965_send_tx_power __already_done.7 il4965_hw_channel_switch il4965_hw_channel_switch.cold il4965_verify_ucode.cold il4965_init_alive_start il4965_eeprom_check_version.cold __UNIQUE_ID_firmware390 .LC0 il_disable_interrupts il4965_hdl_beacon _ieee80211_hw_set il4965_hdl_rx_phy il4965_static_wepkey_cmd il4965_bg_txpower_work il4965_bg_init_alive_start il4965_mac_sta_add.cold il4965_exit il4965_driver il4965_store_tx_power il4965_store_tx_power.cold il4965_show_temperature il4965_bg_stats_periodic il4965_bg_run_time_calib_work il4965_hdl_stats il4965_hdl_c_stats il4965_hdl_alive il4965_hdl_alive.cold il4965_request_firmware il4965_ucode_callback il4965_request_firmware.cold il4965_init il4965_hdl_missed_beacon il4965_check_abort_status.part.0 il_alloc_fw_desc.isra.0 il4965_sta_alloc_lq il4965_sta_alloc_lq.cold il4965_show_tx_power il4965_rx_allocate il4965_rx_allocate.cold il4965_free_frame il4965_prepare_card_hw il4965_pci_probe il4965_mac_ops __key.68 il4965_sensitivity __key.69 il4965_bg_restart il4965_bg_rx_replenish il4965_bg_alive_start il4965_irq_tasklet il4965_hdl_card_state il4965_hdl_rx il4965_hdl_compressed_ba il4965_hdl_tx __key.76 il4965_pci_probe.cold il4965_dealloc_ucode_pci il4965_ucode_callback.cold il_attribute_group il4965_hdl_rx.cold il4965_check_abort_status.cold il4965_rxq_stop.cold __already_done.28 il4965_request_scan.cold fh_tbl.64 il4965_txq_ctx_alloc.cold il4965_hw_nic_init.cold __il4965_down __il4965_down.cold il4965_pci_remove il4965_tx_queue_reclaim.cold il4965_add_bssid_station.cold il4965_remove_dynamic_key.cold __already_done.20 __already_done.21 __already_done.18 __already_done.17 il4965_set_dynamic_key.cold __func__.67 il4965_alloc_bcast_station.cold __il4965_up __il4965_up.cold il4965_update_bcast_stations.cold __already_done.49 __already_done.25 __already_done.26 il4965_tx_skb.cold il4965_send_beacon_cmd.cold il4965_hw_txq_free_tfd.cold il4965_hw_txq_attach_buf_to_tfd.cold il4965_rx_handle.cold il4965_irq_tasklet.cold advanced_lookup il4965_dump_nic_error_log.cold desc_lookup_text tid_to_ac ac_to_fifo.66 il4965_tx_agg_start.cold default_queue_to_tx_fifo il4965_bg_alive_start.cold il4965_txq_agg_disable.isra.0 il4965_txq_agg_disable.isra.0.cold il4965_hdl_tx.cold il4965_hdl_compressed_ba.cold il4965_tx_agg_stop.cold __UNIQUE_ID_fw_restart407 __UNIQUE_ID_fw_restarttype406 __param_fw_restart __param_str_fw_restart __UNIQUE_ID_amsdu_size_8K405 __UNIQUE_ID_amsdu_size_8Ktype404 __param_amsdu_size_8K __param_str_amsdu_size_8K __UNIQUE_ID_11n_disable403 __UNIQUE_ID_11n_disabletype402 __param_11n_disable __param_str_11n_disable __UNIQUE_ID_queues_num401 __UNIQUE_ID_queues_numtype400 __param_queues_num __param_str_queues_num __UNIQUE_ID_swcrypto399 __UNIQUE_ID_swcryptotype398 __param_swcrypto __param_str_swcrypto __UNIQUE_ID___addressable_init_module397 __UNIQUE_ID___addressable_cleanup_module396 il4965_hw_card_ids il_sysfs_entries dev_attr_temperature dev_attr_tx_power __UNIQUE_ID_alias390 __UNIQUE_ID_license389 __UNIQUE_ID_author388 __UNIQUE_ID_version387 __UNIQUE_ID_description386 .LC32 .LC127 .LC54 .LC3 .LC26 .LC98 .LC130 .LC128 il4965_rs_tl_rm_old_stats il4965_rs_toggle_antenna ant_toggle_lookup il4965_rs_stay_in_table il4965_rs_alloc_sta il4965_rs_alloc il4965_rs_free il4965_rs_free_sta il4965_rs_rate_init_stub il4965_rs_set_expected_tpt_table expected_tpt_legacy expected_tpt_mimo2_20MHz expected_tpt_mimo2_40MHz expected_tpt_siso20MHz expected_tpt_siso40MHz il4965_rate_n_flags_from_tbl il4965_rate_n_flags_from_tbl.cold il4965_hwrate_to_plcp_idx il4965_rs_get_adjacent_rate.constprop.0 il4965_rs_get_best_rate.isra.0 il4965_rs_switch_to_mimo2.isra.0 il4965_rs_switch_to_siso.isra.0 il4965_rs_get_tbl_info_from_mcs.isra.0 il4965_rs_fill_link_cmd rs_ht_to_legacy .LC5 il4965_rs_collect_tx_data.isra.0 il4965_rs_get_rate il4965_rs_tx_status il4965_rs_tx_status.cold rs_4965_ops .LC7 .LC6 il4965_sensitivity_write.isra.0 il4965_set_default_wep_key il_send_stats_request il_pm_ops ieee80211_stop_tx_ba_session free_irq is_vmalloc_addr il_eeprom_free ieee80211_start_tx_ba_cb_irqsafe release_firmware il_rx_queue_alloc il4965_remove_default_wep_key alloc_workqueue il4965_tx_skb il4965_mac_stop il4965_rx_init il_set_rxon_ht il_send_cmd_pdu_async ieee80211_chswitch_done il_prep_station pci_enable_device skb_put il4965_dump_fh il4965_rate_control_register __rcu_read_lock il_chswitch_done il4965_rs_rate_init il4965_hw_nic_init consume_skb il_eeprom_query16 __this_module il4965_update_tkip_key _il_apm_stop snprintf queue_work_on il_mac_bss_info_changed il_send_cmd_pdu il4965_led_enable il_alloc_txq_mem il_is_ht40_tx_allowed __init_swait_queue_head finish_wait il_usecs_to_beacons ieee80211_free_hw il_hdl_spectrum_measurement il4965_hw_txq_free_tfd dma_unmap_page_attrs il4965_add_bssid_station il_setup_scan_deferred_work ieee80211_get_tkip_p2k __pci_register_driver il_scan_cancel il_free_channel_map il_hdl_csa il_mac_flush dma_sync_single_for_device il4965_request_scan il_bcast_addr iounmap cleanup_module skb_add_rx_frag pci_disable_msi pci_request_regions il_set_bit il4965_rx_queue_free ieee80211_start_tx_ba_session memcpy il4965_nic_config il_read_targ_mem il4965_configure_filter kfree il_add_station_common il4965_rx_handle il_hdl_pm_debug_stats il4965_tx_queue_set_status il4965_hwrate_to_tx_control il_tx_cmd_protection ieee80211_register_hw il_tx_cmd_complete il_check_rxon_cmd il_irq_handle_error il_rx_queue_space ieee80211_restart_hw prepare_to_wait_event timer_delete_sync net_ratelimit ieee80211_rate_control_unregister __wake_up il_setup_watchdog ieee80211_wake_queue _raw_spin_lock_irqsave pci_ioremap_bar _raw_spin_lock il4965_alloc_bcast_station pci_unregister_driver il4965_mac_update_tkip_key il4965_set_dynamic_key __fentry__ init_module il4965_rx_replenish_now dev_driver_string il4965_txq_check_empty __x86_indirect_thunk_rax ieee80211_find_sta dma_map_page_attrs il_add_beacon_time il_cmd_queue_free il_apm_init _raw_spin_lock_irq il_free_txq_mem il4965_sta_rx_agg_stop schedule_timeout ieee80211_tx_status_irqsafe il_scan_cancel_timeout il_leds_exit il_isr __stack_chk_fail queue_delayed_work_on il_restore_stations il_mac_add_interface il4965_hw_txq_ctx_free il4965_manage_ibss_station il4965_mac_start il4965_cfg pci_disable_link_state __free_pages il_eeprom_init il_queue_space _dev_info il4965_txq_ctx_alloc ieee80211_stop_tx_ba_cb_irqsafe page_offset_base il_set_flags_for_band il_remove_station il4965_free_tfds_in_queue il4965_rx_replenish il4965_reset_run_time_calib il4965_set_rxon_chain il4965_ops tasklet_kill il_tx_queue_reset synchronize_irq il4965_check_abort_status init_wait_entry __list_add_valid il4965_sta_tx_modify_enable_tid pci_enable_msi _dev_err request_firmware_nowait il_cancel_scan_deferred_work il4965_chain_noise_calibration il_dealloc_bcast_stations il_mac_hw_scan request_threaded_irq il_send_add_sta il_setup_rx_scan_handlers __rcu_read_unlock il_set_decrypted_flag il_mac_remove_interface mod_timer il_set_tx_power il_mac_sta_remove ieee80211_sta_block_awake il_leds_init destroy_workqueue _il_poll_bit mutex_lock il_clear_bit il4965_eeprom_acquire_semaphore il4965_sta_rx_agg_start il_mac_config dma_alloc_attrs il_rates il4965_tx_agg_stop pci_read_config_word _raw_spin_unlock_irq il4965_eeprom_check_version il4965_set_wr_ptrs il4965_rxq_stop il4965_txq_ctx_reset _il_grab_nic_access il_rx_queue_update_write_ptr ieee80211_wake_queues il4965_dump_nic_error_log phys_base il_full_rxon_required il4965_update_chain_flags il4965_mac_set_key ieee80211_rate_control_register memcmp sysfs_create_group __list_del_entry_valid il4965_mac_ampdu_action il_init_scan_params __mutex_init il4965_rate_control_unregister ieee80211_alloc_hw_nm il_tx_queue_free il4965_tx_agg_start jiffies_to_msecs il_mac_tx_last_beacon _raw_spin_unlock_irqrestore cancel_delayed_work il4965_sensitivity_calibration il_send_bt_config dma_sync_single_for_cpu il_set_rxon_channel il4965_hwrate_to_mac80211_idx il_cmd_queue_unmap memset _dev_warn il_mac_conf_tx kstrtoull il_mac_reset_tsf il_fill_probe_req pci_set_master wait_for_completion __flush_workqueue il_hdl_pm_sleep __x86_return_thunk il_tx_queue_unmap __init_waitqueue_head il_get_channel_info ieee80211_stop_queue __netdev_alloc_skb il_get_lowest_plcp il_tx_queue_init il4965_mod_params il_eeprom_query_addr ieee80211_stop_queues il4965_eeprom_get_mac il_force_reset il_send_cmd_sync __mod_pci__il4965_hw_card_ids_device_table jiffies il_connection_init_rx_config il4965_hw_tx_queue_init dma_set_coherent_mask il_set_rxon_hwcrypto sysfs_remove_group il_init_geos sprintf il4965_remove_dynamic_key wiphy_rfkill_set_hw_state_reason vmemmap_base il_bg_watchdog dma_free_attrs il4965_send_beacon_cmd mutex_unlock il4965_init_sensitivity cancel_delayed_work_sync il_get_passive_dwell_time init_timer_key pci_release_regions __const_udelay __dev_kfree_skb_any pci_write_config_byte alloc_pages ieee80211_unregister_hw il4965_rx_queue_reset il4965_verify_ucode il_hdl_error cancel_work_sync __warn_printk il_write_targ_mem il_send_rxon_timing ieee80211_channel_to_freq_khz delayed_work_timer_fn ieee80211_hdrlen il4965_restore_default_wep_keys il4965_mac_tx pci_disable_device il4965_sta_modify_sleep_tx_count il_send_lq_cmd il4965_mac_sta_add il_wr_prph il4965_hw_txq_attach_buf_to_tfd dma_set_mask il_free_geos il_txq_update_write_ptr il4965_temperature_calib il_power_initialize kmalloc_trace tasklet_setup il_rd_prph il4965_txq_set_sched il_set_rate device_release_driver il4965_rx_queue_restock il4965_txq_ctx_stop param_ops_int il_mac_change_interface il4965_eeprom_release_semaphore pci_write_config_word _raw_spin_unlock il4965_mac_channel_switch il_get_active_dwell_time il4965_tx_queue_reclaim il4965_update_bcast_stations il_send_cmd il_get_free_ucode_key_idx __SCT__might_resched kmalloc_caches il_clear_ucode_stations il_power_update_mode ieee80211_rx_napi il_init_channel_map                 !          G  2            A          G                        G            %                                    G                       G  b                                G  2           A         G                                 \           G           M             !                   =            U         M                      M                                 G  *           4         Y  N         M  V           ^            =       t                     M           M             -                    
              \                \              {                G                      M                      G  *         5  5                  ]            e                               
                                         ^                         &      $           8           @            P      R           l                    
              z               M                    I           [           y         
                                         ^                                                    G  	            	           	         \  	         G  A
           Q
           a
           q
           
           
                                         /           B           T           c           u                                             :                {                              G           @             P                               G                        
         G  
           
            *                                 {  .                  6                                     M            Q      [                  c                                       \  !         G                      
           	               8               	                        \  1         G  <           E                                      
                      P  1         \  A         G  q                                      G                        
                      ,           G           Q         G  `           o                                                        G                                 G                      G           @             !         %  .           D           a         %  q         G                        .           A         G  L           S         k  j           q         G  |                    k                      G  ~                       Q                               \           G             (           9           Q         G  n                    M                      G                      M  	                    G  N           v         -              7                                                 \           G             _                               T                                  l                         +         M  R                     G                                                      d                 "         \  1         G  T                   Y           `           l           q         G                                  G                         -          ~  8            D            Q          G  i            x          k                          !           "!            @!           Q!         G  a!         G  l!           ~!         k  !                  !         ]  "         G  "                   "           "                  "                   	#                   #           (#            3      5#                   A#         |  _#           l#                   }#           #         \  #         G  #           #         k  #           #           #         G  #                   $           $            v      h$                   $           %         G  +%           \%                   a%           h%           q%         G  %         @  %           %           3&         O  H&         @  m&           &         x  &           '           2'           O'         e  d'           p'         ;  '           '         ;  '                  '         G  
(         x  1(           A(         G  X(         %  r(           (           (         %  (           (         %  (           (           )         G  $)                   >)           {)         r          )         d  )            )           )           )           )            *           *                  *           *                   %*         $  =*         A  W*           _*           o*           *         \  *            5      *         h  +           +            m      +         f  *+                  2+           O+           ,            g,            y      ,         
           ,                  ,           -         M  "-           *-           5-            K      =-           H-            !      S-                   -         @  -           -         z  -                   -         [          -           -                  -                   	.                  .            ,.         
           3.                  B.           h.                   .            p      .            @A      .                  .                  .           /                   3/            P      ?/           G/           j/            p      /            P      /           /                   /           /                  /           /            `!      /                   /                   /                   /                   /         /          /            @      
0            P!      0            P       0           10             :      <0            #      L0            p      W0             5      b0             5      m0            `      x0            p      }0           0           0           0                  0         
           1           (1           F1            R1         #  Z1           b1           n1         ,  v1            1            1         
  1         G  2           X2           2           2           $3           h3           3           3         G  3                  4                  Z4                  4                  4                  4                  4            4           4            5           5            5         \  !5         G  `5           o5         k  5                  -6           6           6                   (8           A8           a8            8           8         k  8         "  '9           9         ?  9         \  9            1      :         G  :           $:         k  :           :           :         @  :           (;           J;         @  V;           ;           ;         @  ;           <           /<         =  7<           A<         G  S<            P      X<           ]<           q<         G  <         @  =           =         e  9=         x  =           =         G  >         @  >           K>           S>         @  ^>           >           >         @  >           >           >         @  ?           C?           K?         @  V?           ?           ?           ?         G   @         @  @           y@         7  @           @           @         @  A            A           8A           AA         G  RA           xA           A         @  A           A           A           A         G  A         @  A           A           B         G  !B         G  qB           B         e  B           B           B           C         G  >C           FC            U      NC           aC         G  C                   C           C           C         G  E           F           4F           F           G           G           WI         	          qI                  xI                  I         	          I           I           T       I           |J         \  J            t      J         G  J           J         G  K            d      K           K           L         G  L           L         Q  &M           ~M           M         U  M         G  M         `  M           N                  8N           HN            _      [N           mN         `  N           N           O           )O         @  <O           WO         @  hO           O           O           O           O            7      O         G  P         @  &P           ;P         @  FP           |P           P           P         t  P           P         G  P         @  P         R  Q           Q         @  !Q           Q           Q         )  Q           Q         @  Q           Q           Q            Q         @  R           R           R           5R           =R            JR                  OR         i  `R           qR         G  R           R           S            S            
      ,S         {  AS         G  VS         Y  wS         :  S           S         T  S           S           S         @  S           T           $T         =  OT         @  T           T         u  T         s  #U         T  +U         	  WU           _U                  U           U           U           U           U           CV           {V           V         ,  V                  V           
W           !W         G  5W           EW           QW           ]W           iW           uW           }W         }  W         :  W         G  W           W           W           W         G  X           "X            
      'X           7X         Z  [X         L  cX         @  X           X         u  X         s  X         &  X         `  X            X           Y            "Y         #  .Y            6Y           >Y           FY           NY           ZY         ,  fY           rY           zY           Y           Y         G  Y                  Y                  Z                  (Z         X  KZ         M  Z            Z         N  Z           Z           [                  [            -      [           1[         G  [                   [           [           [         G  #\         -  +\            |      B\         @  f\           \            U      \           \            4      \         @  \           \           \         -  ]            |      ]         \  ]         G  (]         m  A]         G  Q]         G  ]           ]         G  z^           ^         G  ^           ^         @  :_           O_           `_           _         G  _         G  
`         @  E`                  [`                  a           a           a           a           a           a         \  a         G  b         @  d           *d           d         @  =f           Jf           `f            
      f         @  Dg           mg           Rh           yh           h           h         	   h                  h                  h         	   h           #i                  0i           Ei         	   _i            @      fi                  i         	   i           i         	   i                  i                  i         	   i           j                   j           6j         	   Pj                  Wj                  qj         	   wj           j                  j           Xk         \  ]k            
      qk         G  k           k         Y  k           k           *l           7l         Y  ^l            sl         F  l           l            l         G  l         @  l                   m            	m            8      2m           Im            g      Qm         @  cm           rm           m         G  m                  m                  m                  m         C  n            n         (  n         M  n                  n           n           n           n           o           #o            
      /o           9o           Go                  So         {  bo            +      qo         G  o           o           o           o           @p         w  Pp         9  np           vp           p         W  p           p           p            @      p         {  p         \  p         G  'q           Gq           Oq           fq           rq           ~q           q           q           q         }  q         :  q         8  q           q         G  q            Z      r         @  &r         ,  Er           Tr           ar         G  r         @  Us           bs           s           s         \  s         G  t         @  t           t           t           u         \  u         G  u         @  5v           Bv           ev           xv                  v         {  v         \  v         G  v         @  w           )w           1w         G  w         @  w           +x         B  x         g  Dy           V{         2  {            C|                   |            }         k  9}           >}         O  }         M  }           ~         M  :~           V~           e~           ~         g  ~                    g             (           t           Z                     k             ŀ         O           M  0         M  |         @                                   C                      "         	          6         	          F         J  P            `      X                    	                   	          K           [         	           q                  x                           	                      ӄ         	                                                       	                     J         \  Q           ]           g            ~      l            ~      q         G                                             G           M  ޅ         M                                 G             I                  V                                      
  
           L            	      _            	                 \                                    ƈ            (      ؈         {  3            	      A         G  x            (                                       2           A         G                         E               G           @  $           X           g           q         G           O  /         x  f                                          k  W         M  j         @           x           M              n               4  $                    e           x           G           @  G           v                                                      ؏                              _      !           L           y         =           .             ΐ                                                        G  D         M  L                  V         *  t                           *           *           *           *           *  Α         *  ܑ         *           *           *           *           *              X      2         {  <                  N            $      \                  f            )               G           @                                            G  V           `           q         G                                
                                    S      A         @              
      ֔                       x                  |               y  "           G         @  g           y         *                      @             -           ^         @  k                                 Ԗ                               @             l                    0                      @                         #      #         {  (            m      :            0      F         {  K            m      Q         G                                                       @             @           e                                          @             7           H         @  T                               @             ؚ                      	                    @  !           d           {                                 ͛           ՛         @             %           4                                      0             Μ         >                        ,           4         p  S         M  q         @                      
                    ͝         =  ڝ                    M  
         \           G  ;                  J                  k                    @                        :         @  G                                          @                        Q         G  Ƞ                                  2            
      9                  _         j  q         G                      k              j                  j      !            j      (                    @  i            j      ˣ         @                    |         1                      g  4         K  K                  h                      
         g  p         ?                    ç           ا            B      >         g  ը         1  *         g  ȩ         ?  ݩ         g  (           a         G  }                    k                             @  -         1  O           l                    g           K                               M         ?  a         G              
                        ح         @  p           x         B                      j  ʮ           ׮            /                                              "         {  1         G  t                                          V  ߯           
           (           A         G  M           a         G                      G                                                 ?           Q         G                                             G                      G  ʲ           Ѳ         G  ֲ                    G                      G                      G                    +                   :            @      d           k                  z                                                                    G                                      
                  W           n                                                            h      ʹ                    G                                >           L           Q         G                                                            /           C           Q         G  #           a         G           
  4           A         G           
                      G  ѹ           ع            1         G  n           м                  -                     \           G                        ˾           Ѿ         G                      G                        -           =                                                           I      &         \           \  K                                  *      C                                  =           `                  g           l                    '                             G                                                    \           G              
                          G              
               <  1         G             6           I         \  Q         G                      G                      @                        1         G                      @  D                    M                        B         
           \           G              (            
             0                 {              ,             P       8            =             !      K                    W            \             ^      j                    v          {  {                                                                      {                                  h                {               @                   H                {               @                                   {  &            @      6            h      F         {  P            @      `                   p         {  z            @                                   {              @                  (               {              @                                  {              @                                 {  *                  9                  L         {  Q                  b            W                              M                  `               {              v                        	         {           @  *           g                                      {              d                  d                                  {                         @      '         h  7           K                  W         {  _           d                  u                           {                                                 h                                                                               {              B#               G                             {  B           H           m           v                                      {              $                                                                      {              b               {              v1      
                           {  !            F1      2                  >         {  F           K            n1      \                  h         {  m            n1      {            L                             v1                                               W*                                 {              4                                 {              4                                 {              4                                 {              4      $                  ,         {  1            4      =            p      E         {  `                  |         h                                                          {              4                  H               {              4      8            p      =         {  B            4      ]                  b         {  g            4                                 {              4                  X      	         {  	            1      	            4      	         (  	         (  

         (  %
         (  @
         (  V
         (  ]
            x
                                      3                              {              4                  
                             (               {              4                  
                       4                   x      ,         {  1            6      ?            '      K         {  P            6      c            =      o         {  t            FC                  Q                             GI               G                              {                             @             
           
                  /
                  <
                  O
                  \
            	      o
                  |
                  
                  
                  
                  
            	      
                  
            y      
                  
            H	      
            h	      
                  
                           {  7           K            B      W         {  _            eN      m            %      ~         {              N                  	               {              O                  	               {              (R                  H
                             V                  =      	         {              _U                   x
      ,         {  4            Z      D                   P         {  U            \      f            
      r         {  |            \                  [               {              \                  X               {              [`                  v                            
            a                        "                  .         {  8            Fg      F            
      R         {  ]           g            em      u            0
               {              em                  h
                             So                  
               {              n                  <S                                 {              So                  
      &         {  +            So      =                  I         {  Q           Z            n      h            h      t         {  ~            Gr                                 {              z                                 {                                5               {                             {  	                                     #           (            y      9            P      E         {  X            P      d         {  n           |            e                             W                  x               {                             6                                                                              ,                  3                  ?           [           m                  y                                                                      v               {              ؏                                 {           6                                               {  $                  6                  I                  a         {  o                  {         {                              {                         	                                 {                             {              t      %                  ,                  =                   S         {  a            X      m         {  x                                                                             A               {                                                                   .         {  B            D      T            Z      j         {  |                           {                         K                  @               {                                               {                    *         {  /            -      =                  V           h            ,      y                           {              J                  y               {                                               {                    	                           {  -                  9         {  C                  w            ܴ                                    ,                          \              )               {                                                  %         {  *                  8                  D         {  I                  W            h      r         {                             \                                D  
                      G  	                             S                                S               ,             X      3          S  <                    C                    J                    O            \                   a          S  f            n                          @       (                    0                    8                    @                   H                     P             	      X                    `                     h             0      p          R          x                                                                                                                                q                                                                                                                                                             a                       @      X         c                   c                                       b                              0         _          8                   @                   H                   P         	                   +                                      E                                                                   P                   p                   x                                                                                        m                                                                                                 	                  	                   	                  0	                  @	                  P	            +      `	            >      p	            V      	            l      	                  	                  	                  	                  	                  	            m      	                  	                  	                  	                  	                  	                  	                   
                  
            +      
            >      
            V       
                  (
            
      0
                  8
            l      @
                  H
            6      P
                  X
                  `
            D      h
            L      p
            T      x
            \      
                  
            G      
                  
            в      
                  
                                                                   о                                         @                                                                   (                   0             @      8                   @                   H                   P                   X                   `             	      h                   p                   x              
                                       0                   @                                      P                                                                            p                   @                   p                                                          P                                                                                             0                  p                         (            P       0            P!      8            `!      @            "      H                    P            #      X                  `            #      h             %      p            p%      x            '                  @(                   )                  1                  3                   5                   :                  @<                  p<                  =                  ?                  @A                  A                   B                   B                  C                  `C                   C                  J                  J                                     L      (            M      0            O      8            P      @            pR      H            @S      P             W      X            W      `            W      h            Y      p            0[      x            [                  ]                  @]                  P]                  ]                  ^                  _                  _                  a                  pk                  l                  m                  po                  p                  q                  `r                  s                   u                  v                  0w                  p                         (                  0            @      8            @      @                  H            p      P                  X                  `                  h                  p            p      x            P                                    P                  p                  `                  `                  0                  @                  `                                    P                                                      в                                                                                                              P                  P                   `      (            @      0                  8            0      @                  H            о      P                  X                  `                  h                  p            0      x            P                                    0                                                                                                7                                       0                   1                   9                    9      $             Y:      (             :      ,             G      0             G      4             "R      8             ZS      <             -T      @             VT      D             +X      H             jX      L             Z      P             P`      T             m      X             Tn      \             n      `                   d                   h             q      l             Ё      p                   t                   x             %      |                                J                   "                                                         8                   "                                      7                   S                                                                            ٬                   0                                                          T                                      M                                                                             ݅      $                   (                   ,             *      0             -      4             JZ      8             n      <             }      @             ~      D                   H             /      L                   P             V      T                   X             C      \             R      `                   d                                                     1                                                                               1                                                          )      $                   (             Q      ,             Z      0             	      4                   8                   <                   @                   D                   H                   L                   P             p      T                   X                   \                   `                    d                   h             -      l             i      p                   t             P      x             8      |                                                   _                   k                                      !                   ^#                   #                   $                   *%                   g%                   '                   0(                   (                   (                   )                   3                   4                   ,6                   W<                   \<                   ?                   @                   QA                   B                   MC                   C                   C                   G                   J                   K                   O                   P                   4R                  _R                  R                  S                  V                  W                  W                  Y                   Z      $            [      (            [      ,            \      0            ]      4            y^      8            __      <            a      @            lg      D            k      H            qm      L            n      P            n      T            o      X            q      \            Sr      `            s      d            t      h            dv      l            ~      p                  t                  x                  |            	                                                      f                                     K                  _                  !                  Ǡ                                                      ɮ                                                      6                  G                  u                  6                  m                                                      m                                                       >                                                                        ɲ                  ղ                                                      c                                                       V                                    ̴                                    =                  K                         $                  (            .      ,            B      0            "      4            3      8                  <            й      @            m      D                  H            ʾ      L                  P                  T                  X            5      \                  `                  d                                                                                              6                    @                                                                                        $                    (                    ,                    0                    4                   8                   <                   @                   D             6      H             @      L             I      P                   T                   X                   \                   `                   d                   h                   l                   p                   t                   x                   |                                                                      '                   (                   )                   .                                                                                                                                                                                                                                                       H                   L                   M                   O                   Q                   V                   T                   U                   V                   X                   Z                   _                                                                                                               	                  	                  	                  	                  	                   	      $            	      (            	      ,            	      0            	      4            	      8            	      <                  @                  D                  H                  L                  P                  T                  X                  \                  `                  d                  h                  l                  p                  t                  x                  |                                                                                                                                                                                                                   
                  
                  
                  
                  
                  
                  
                  +
                                                                                                                                                                                                       &                  ,                  6                                                                                           $                  0                  7                  <                  >                   @      $            A      (            B      ,            L      0                  4                  8                  <                  @                  D                  H                  L                  P            5      T            @      X            G      \            I      `            K      d            L      h            M      l            i      p            j      t            l      x            n      |            p                  u                                                                                                                                                :                  @                  K                  P                  V                  \                                                                                                                                                                                                                        @                  A                  C                  H                  g                  p                  v                                                                                                               "                   A                                             $                  (            $      ,            .      0                  4                  8                  <                  @                  D                  H            /      L                   P            2      T            @      X            n      \            p      `                  d                   h                  l                  p                  t                  x            L      |            M                  N                  P                  U                                                                                                                                                1                  2                  4                  6                  8                  =                  B                  P                  W                  _                  g                                                                                                                                                                                                                         
                                                                                                            "                                           $                  (                  ,                  0                  4                  8                  <                  @                  D                  H                  L                  P                  T                  X            r      \            v      `            w      d            y      h            {      l            }      p                  t                  x                  |                                                                                                                                                                              !                  &                  0                                                                                                                                                                                        @                   A                   C                   H                   P                   W                   ^                   b                   !                  !                  !                  !                   !                  !                  !!                  &!                  F!                  P!                  Z!                  `!                   "      $            "      (            "      ,            "      0            "      4            "      8            ,#      <            F#      @            Z#      D            [#      H            \#      L            ^#      P            c#      T            #      X            #      \            #      `            #      d            #      h            #      l            #      p            $      t            $      x            $      |            $                  $                   %                  l%                  p%                  w%                  %                  %                  %                  %                  %                  %                  A'                  E'                  F'                  H'                  J'                  L'                  N'                  S'                  Y'                  Z'                  ['                  ]'                  _'                  a'                  c'                  h'                  '                  '                  '                  '                  '                   '                  '                  '                  '                  '                  '                  '                  '                   '      $            '      (            )(      ,            *(      0            ,(      4            .(      8            0(      <            5(      @            @(      D            F(      H            (      L            (      P            (      T            (      X             )      \            )      `            )      d            
)      h            )      l            )      p            )      t            )      x            )      |            )                  )                  )                  )                  )                  1                  1                  3                  3                  3                  3                  3                  3                  3                  3                  3                  3                  4                  4                  4                  4                  4                  4                  4                  4                  5                   5                  '5                  .5                  05                  25                  35                  75                   >5                  "6                  #6                  $6                  &6                  (6                  *6                  ,6                   16      $            9      (             :      ,            :      0            	:      4            :      8            
:      <            :      @            :      D            :      H            :      L            :      P            :      T            :      X            :      \            :      `            :      d            :      h            <      l            %<      p            &<      t            (<      x            *<      |            ,<                  .<                  3<                  @<                  a<                  p<                  w<                  <                  <                  <                  <                  <                  <                  =                  =                  =                  =                  =                  =                  =                  =                  =                  =                  =                  =                  =                  =                  =                  ?                  ?                  ?                  ?                  ?                   ?                  ?                  ?                  ?                  ?                  ?                  ?                  ?                   ?      $            ?      (            @      ,            @      0            @      4            @      8            @      <            @      @            @      D            @      H            A      L            A      P            A      T            A      X            A      \            A      `            A      d            $A      h            >A      l            @A      p            XA      t            aA      x            iA      |            jA                  A                  A                  A                  A                  A                  A                  A                  A                  A                  A                  A                  A                  A                   B                  B                  B                  B                   B                  'B                  ,B                  4B                  <B                  @B                  B                  B                  B                  B                  B                  C                  C                  C                  MC       	            RC      	            `C      	            C      	            C      	            C      	            C      	            C      	            C       	            C      $	            C      (	            C      ,	            G      0	            G      4	            G      8	            G      <	            G      @	            G      D	            G      H	            G      L	            J      P	            J      T	            J      X	            J      \	            J      `	            J      d	            K      h	            K      l	            K      p	            K      t	            K      x	            L      |	            L      	            L      	            L      	            M      	            M      	            M      	            M      	            M      	            M      	            M      	            M      	            M      	            M      	            M      	            
O      	            O      	            O      	            O      	            O      	            O      	            O      	            O      	            O      	            O      	            O      	            P      	            P      	            P      	            P      	            P      	            P      	            P      	            P       
            P      
            P      
            P      
            P      
            P      
            P      
            P      
            P       
            P      $
            -R      (
            .R      ,
            0R      0
            2R      4
            4R      8
            9R      <
            XR      @
            YR      D
            [R      H
            ]R      L
            _R      P
            dR      T
            pR      X
            R      \
            R      `
            R      d
            R      h
            R      l
            R      p
            R      t
            R      x
            S      |
            2S      
            @S      
            GS      
            NS      
            PS      
            QS      
            RS      
            V      
            V      
            V      
            V      
            V      
            V      
            W      
             W      
            &W      
            .W      
            W      
            W      
            W      
            W      
            W      
            W      
            W      
            W      
            W      
            W      
            W      
            W      
            W      
            nY      
            oY      
            qY                   vY                  Y                  Y                  Y                  Y                  Y                  Y                  Y                   Y      $            Y      (            Y      ,            Y      0            Y      4            Z      8            Z      <            Z      @            Z      D            Z      H            Z      L            Z      P            Z      T            $[      X            0[      \            [      `            [      d            [      h            [      l            [      p            [      t            [      x            \      |            \                  \                  \                  \                  \                  
]                  ]                  ;]                  @]                  L]                  P]                  ]                  ]                  ~^                  ^                  ^                  ^                  ^                  ^                  ^                  ^                  B_                  F_                  H_                  J_                  L_                  N_                  S_                  V_                  W_                  Y_                  [_                  ]_                   __                  d_                  {_                  _                  _                  _                  _                  _                   _      $            _      (            _      ,            _      0            _      4            a      8            a      <            a      @            a      D            a      H            a      L            a      P            a      T            a      X            a      \            a      `            a      d            a      h            a      l            a      p            a      t            a      x            bg      |            cg                  dg                  fg                  hg                  jg                  lg                  qg                  ak                  pk                  wk                  yk                  {k                  |k                  }k                  k                  k                  k                  k                  k                  k                  l                  l                  l                  l                  l                  l                  l                  jm                  km                  mm                  om                  qm                  vm       
            m      
            m      
            m      
            m      
            m      
            n      
            n      
            n       
            n      $
            n      (
            n      ,
            n      0
            n      4
            n      8
            n      <
            fo      @
            po      D
            wo      H
            yo      L
            zo      P
            {o      T
            o      X
            o      \
            o      `
            o      d
            o      h
            o      l
            o      p
            p      t
            p      x
            p      |
             q      
            @q      
            Dq      
            Fq      
            Kq      
            q      
            q      
            q      
            q      
            q      
            q      
            q      
            q      
            q      
            q      
            Lr      
            Mr      
            Or      
            Qr      
            Sr      
            Xr      
            `r      
            gr      
            ir      
            nr      
            or      
            sr      
            r      
            zs      
            {s      
            |s      
            ~s      
            s                   s                  s                  s                  s                  s                  s                  s                  s                   s      $            s      (            s      ,            t      0            t      4            t      8            t      <            t      @            t      D            t      H            t      L            u      P            u      T            u      X            u      \            u      `             u      d            !u      h            "u      l            )u      p            Zv      t            [v      x            \v      |            ^v                  `v                  bv                  dv                  iv                  v                  v                  v                  v                  v                  v                  v                  w                  "w                  $w                  &w                  (w                  -w                  0w                  7w                  9w                  >w                  @w                  Aw                  Ew                  Ow                  ~                  ~                  ~                  ~                  ~                  ~                  ~                   ~                  p                  v                                                                                                                   $            օ      (                  ,                  0                  4                  8                  <                  @                  D                   H                  L                  P            	      T                  X            7      \            @      `            G      d            I      h            K      l            L      p            M      t                  x                  |                                                                                    @                                                                                                                                                 _                  `                  b                  d                  f                  k                  p                  w                  y                  {                  }                  ~                                                      b                  f                  g                  i                  k                  m                  o                   t                  ߎ                                                                                                                                     $                  (                  ,                  0                  4                  8                  <                  @                   D            %      H            A      L            B      P            C      T            E      X            G      \            I      `            K      d            P      h                  l                  p                  t                  x                  |                                                                  &                  u                                                                                                                                                                                                                        	                                                                        ^                  _                  d                  p                  w                  y                  {                  }                  ~                                                                                                                                                                   !                  &                  O                  P                   W      $            \      (            ^      ,            `      0            h      4            i      8            w      <                  @                  D                  H                  L                  P                  T                  X                  \                  `                  d                  h                  l                  p                   t            %      x            &      |            *                  7                  ;                  A                  C                  E                  G                  I                  N                  P                  \                  b                  g                  q                                    à                  Š                  Ǡ                  ̠                                                                                           	                  o                  p                  w                  y                  ~                                                                                           ]                  ^                  _                  a                  c                  e                  g                  l                   V      $            `      (            g      ,            i      0            k      4            p      8            q      <            r      @            v      D            D      H            E      L            F      P            H      T            J      X            L      \            N      `            S      d                  h                  l                  p                  t                  x                  |                                                V                  `                  g                  i                  k                  m                  n                  o                  s                                                                        î                  Ů                  Ǯ                  ɮ                  ή                                                                                                                                                                   -                  0                  7                  9                  ;                  =                   >                  ?                  C                                                                                                                   $                  (                  ,            =      0            @      4            Q      8            /      <            ;      @            h      D                  H                  L                  P                  T            A      X            F      \            G      `            M      d            u      h            z      l                  p                  t                  x                  |                                                                                                                                                                              T                  Y                  x                                                                                                                                                +                  .                  0                  2                  4                  6                  ;                                                                        1                  8                                                       <                                    ^                                                      ,                  6                  >                   @      $            B      (            D      ,            r      0                  4                  8                  <                  @                  D                  H                  L                  P                  T            (      X            C      \            O      `                  d                  h                  l                  p                  t                  x                  |                                                                  8                  B                  J                  L                  N                  P                  R                  W                                                                                                                                                                                                       Q                  Y                  Z                  c                  e                  g                  i                  n                  v                                                                                                                                                                                                                                 $            	      (                  ,            
      0                  4                  8            3      <            l      @                    D                   H                    L                   P            m       T            r       X            `      \                  `                  d            C      h            P      l            c      p                  t                  x                  |                                                                  β                  в                  ڲ                                                                                                                                                 ǳ                  ˳                  ̳                  ӳ                  R                  S                  T                  V                  [                                                                                                            Ŵ                  ɴ                  ʴ                  ̴                  Ѵ                  ٴ                                     G                  P                  W                  `                  h                  j                  q                   u      $            |      (                  ,                  0                  4                  8                  <                   @            "      D            '      H            V      L            `      P            j      T            l      X            n      \            p      `            q      d            r      h            *      l            +      p            -      t            /      x            1      |            3                  8                  ?                  @                  J                  L                  N                  P                  Q                  R                                                                                                                                                                                    !                  -                  5                  9                  @                  ǹ                  ȹ                  ʹ                  ̹                  ι                  й                  չ                  +                  0                   7                  A                  C                  H                  I                  M                  T                  c                   d      $            e      (            g      ,            i      0            k      4            m      8            r      <                  @                  D            Ͻ      H                  L                  P            ʾ      T            Ͼ      X            о      \                  `                  d                  h                  l                  p                  t                  x                  |                                                                                                                                                            !                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          $                  (                  ,                  0                  4            !      8            l      <                  @                  D                  H                  L                  P                  T                  X                  \            #      `                  d                  h                  l                  p                  t                  x                  |                                                0                  9                  5                  :                  M                  P                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              	                                    
                                     /      $            0      (            7      ,            9      0            ;      4            =      8            >      <            ?      @            C      D                  H                  L                  P                  T                  X                  \                  `                  d                  h                  l                  p                  t                  x                  |                                                                                                                                                                                                                                    ,                                                        
                              (                   0                    8          
          H                   P                   X                    `          
          p                   x                                                 
                                          (                                    
                                                             7                                        7                        $                7           $                   (                     0             S'      4                     <             @      @                     H             I      L                     T             K      X                     `             K      d                     l             Z      p                     x             S_      |                                  i                                        4i                                        i                                        i                                        $j                                        {j                                        j                                        l                                        t                                        iv                                                                               =                                      ͂                                       \      $                    ,            :      0                    8                  <                    D                  H                    P                  T                    \            ފ      `                    h            t      l                    t                  x                                ,                                      .                                                                                                                                                                                                                                                                            h                   m       (                                                     @                    )                   W      p                                                                     d                   %                                     m                  0                 H                     !                        }                                       o                          8         H          P         !           .symtab .strtab .shstrtab .note.gnu.build-id .note.Linux .rela.text .rela.text.unlikely .rela.exit.text .rela.init.text .rela.rodata .rela__mcount_loc .rodata.str1.8 .rodata.str1.1 .rela.smp_locks .modinfo .rela.retpoline_sites .rela.return_sites .orc_unwind .rela.orc_unwind_ip .rela__param .rodata.cst2 __versions .rela__bug_table .rela.data .data.once .rela.init.data .rela.exit.data .rela.static_call_sites .rela.gnu.linkonce.this_module .bss .comment .note.GNU-stack .BTF .gnu_debuglink                                                                                         @       $                              .                     d       <                              ?                            ,                             :      @               Pp      ~      1                    J                                                        E      @               P     &      1                    ^                                                        Y      @               8     H       1                    n                          r                              i      @                          1   	                 ~                                                         y      @                     	      1                                                                                 @                     
      1   
                       2                                                      2               [)     S                                                 1                                         @               X.     P      1                                         h2     ;                                                  5     h                                    @               2     p      1                                         6     h                                   @               5     p      1                                         s8     &                             	                    ^                                       @               C            1                                        x                                        @                          1                    %                    xy                                  2                    y     9                              B                                                       =     @                          1                    S                                                        N     @                    h      1   !                 Y                         	                              i                                                        d     @               p            1   $                 y                                                       t     @                           1   &                                                                             @                    `       1   (                                     @                   @                    @                     0       1   *                                                                              0                                                                                                                                    T                                                 (                                                         8     2      2                    	                      F     )                                                   0                                  0	*H
01
0	`He0	*H
1a0]080 10UDebian Secure Boot CA2(oe:B&C0	`He0
	*H
  +GZ!+X\)}Vv@4
_EZPO!7|HV}4_W_im7=Qį`M:Y؃|yP"nlKxp	DoUo}jlai~UyC0Lu(tvIm}1}Ժ ?Hה+XU#h5"ܗ8~?
g
LE18k@f4Ӏ-\u%<?ҔYGP$N         ~Module signature appended~
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Hr-   h  HGLH)Sf{A$Z    =  tL=  tE=?  v7-  "wH P   Hr$   1LHc=<  v=<  v1LHTX{/       vB@HHH)HÈ   Ht@HHHH)H|8    @:  rID$ H`  1AM   LH    A$l      A   A   l      A   1ɅLH1fl      A   e-   or-   2l      A   'H   H{8H    	=  t^=  tW=?  vI-  "wH P   Hr6LHy1LHcl  F    =<  v1LHqZ8l      A   HOHHOH<Al      
HBEff.     f    USH  HF    f    HE H`     Z         te?  vAr!  H     H     wHOHtE<  wK31HZ    t/  t'?  ;    "w+H P   HsH  ;1t 1H誰    N  '      1H    Z  =     =  td=?  v?r!   H     H   -   wHOHs?=<  wF3   HZ  =  t(=  t!=?  vf-  "w1H P   Hs!H  ;      H迯HE H`  1[]    <  =<  v[   ]O  -  z-   6g   8n     AWAVAUATI   UHSHH   Hl      Z  =     =     =?     -  "wH P   H   A$HS Hp  D A   E1EH  HS A$A   H  D A   A 	  ,  w{A   3  A      DHLH_#  A        =<  [HC H   HK   =H  D oA      vgA   tA       A   uZLH1HDD    Ƨ         DH    l  G    A 
  t0A 
  tl  #    l      E1    DHLHADHLHd            AWIAVAUATUSHHH  eH%(   HD$1G?          /    Z  =  tV=  tO=?  vA-  "wH P   Hr.HD$eH+%(   -  H[]A\A]A^A_    =<  vMg8LL$H     I#G`H       H9  fAb NLl$|  AM  D$    AWHHHHDxIF 0@LLuT$Y      { uzAAWHDHHHHE  %   =   L
  C%#߉CAI  AwHH2d  HQ 1{ M  fD$CjI  A?AWAAHDHHHIF  %   =   )с     LMLDL$D$t$NN	
  C C11M  ft$f|$
t$Ll$CW{ A?1LfL$1   LLLl$Ё  D$MT$D$roA  LLEmAl      1HLHH)It8   HL	l      I  A?AW=LLD  &   LLLD$      LLLD$
   LLDD$fEtRA  fEE  Al      HLL3TLL   A  LLlAl      AM  D$    AWHHHHDtID$ (@LL}tA$l      T$A   HLA       Kʁ t
      ʉSAG>~A$l      I  AwA?gQDL$
Df f Al      LLj   LL1LLA   1L   LCD@DCAl          ff.         AWAVAι   AUEAATEAUHSHĀeH%(   HD$x1ILMHH   $   uVMEDD   H\$$   ػu-D$	؃HT$xeH+%(   u$H[]A\A]A^A_    l      1        AUATUHSWH  HHd  1HA HQ H0 H}HA D-    H_8L  HC`H   HH       fCAAAfDkA   fSfK
fsf{fDCfDKfDSfD[HC    HC    C(    C,    C0    HC8    HC@    HCH    HCP    HCX    HC`    HCh    HCp    HxL9[]A\A]    D      AWAVEAUIATEUSHH   eH%(   H$   1Z  D$D$=  t7=  t0E=?  7  -  "4  H P   H   LD$HL$DH2   t$@   L$   H    HC  HC  Ei  !T$2D$D$   B5   AEHS l      AHS H$`H  HAUHC HC H   L$T$HS   H$   eH+%(      HĈ   []A\A]A^A_    =<  LL$1   ELω   HDHD$   ZuW|$   t9LL$ED   HD$   *u'|$   t$D$   Dd$l  1                 AWAVIAUATDUIHSHL&A\$M,$HL$LD$AA   fAm      AHuHHH|
ASAfAff|$ADӍYDJzffAAT$
AEAtY@  EOfAE1Ƀt'A׃HL
A   EOfAEP
H0E1I0  ʹ   HcH       ~WAE1   HHEP
H0I0  H       t$AtEOfAEEOEfAMtlHD$H\$   L AEp    1I$    fAD$D$H[]A\A]A^A_    EOfAEEOfAEf         UHcIIHi  HSHH  HeH%(   H$  1L  IHZ2   LHHHMt/I{HLI    Iǃ	      HH) 
  HHH1H    H)HLHǂ        HHz2   AHL     LD  A;
  sAl  @  A
  A+
  9uAl  HHIHH  A;
  sd@@t[DHHIHH  t@DA
  HHIHH  tA
  AIHHIHH  I(  H   ŀtPǂ     A 
  u/A
  A+
  9tH$  eH+%(   u)H]    ǂ      H7sǂ         ff.         AWAVAUATUSHL/eH%(   HD$1      IE1A$    I  D$    De ]"fA9t$LD$HH  L_fA9u܋E8I(  H<HH     H   A    E:  tHD$eH+%(   uH[]A\A]A^A_             AUATUHS
  l  AAt	q  tIH(      Å    H(  D    Å    l       []A\A]    DfAD        AVAUATAUSHr  @tv1퀻t   tD9tY
  tLA9tGE1A9t=Lcl      HH  IcAHi  H3B<    D;
  r[]A\A]A^    HH  H(  8    l         `fH8eH%(   HD$01Ht$HL$0HD$    HD$    HHD$     HD$(    HD$    HPH9uHD$HHH9u|$/D$#1@2|$.2D$"2D$ 2D$2D$2D$2D$2D$2D$2D$2D$2D$1DD$,D2D$'D2D$%L$.D02L$-t$,D$"@2t$-2D$ 2D$2D$2D$2D$2D$2D$2D$(2D$&2D$$2D$!2D$2D$2D$2D$2D$2D$
1D1I D$2D$2D$2D$H 2D$2D$(2D$&2D$!2D$2D$2D$2D$2D$
2D$)2D$2D$2D$	1HH	D$'2D$"2D$ 2D$2D$2D$2D$2D$L!2D$2D$
2D$)2D$2D$	2D$*2D$2D$2D$
1HH	D$#2D$2D$2D$2D$2D$2D$(2D$!2D$2D$2D$2D$2D$*2D$2D$
2D$+2D$2D$1H H H!H H	D$/2D$,2D$"2D$ H!2D$2D$2D$$2D$2D$2D$2D$)2D$	2D$2D$2D$+2D$2D$2D$H(H	D$%2D$#2D$ 2D$2D$2D$2D$2D$!2D$
2D$2D$*2D$
2D$2D$1H H!H0H	D$"2D$2D$2D$2D$&2D$$2D$!2D$2D$2D$
2D$2D$+2D$2D$1H H!H81H	H$1H	HuHD$0eH+%(   uH8                   tu      z@    1            AVAUATUSH  Ht~L/I1    HH   tbI$  HL3MtI0  HsE1   A$  H       H    LA$  u    HH   u[]A\A]A^    ff.         AVAUATIUSHcL/IHi  
  +
  ID9g  I  HtaH0  I  E1@   H       Iǅ      I$HǄ      A$q  tA$
  A+$
  A9  LI$HH  Ht    I$HǄ      I$HH  HtJH   E1I$0     H       I$HǄ      I$HǄ       I$HH  HtJH  E1I$0     H       I$HǄ      I$HǄ      I$HH  Ht    I$HǄ      I$HH  HtCH   E1I$0      H       I$HǄ      I$HǄ       A$q     1A   tx@DI  A$l      H;Ht    H    HSHt0I$0  HKE1   H       HC    HC    A:  r[]A\A]A^    Iǅ      Iǅ      A$
  A+$
  A9;ff.            AWIAVAUIATLcUS1    HE     HI9tJI  HH,Lu Mt}t;A  Lu    Al      HI9u[]A\A]A^A_    I0  HuE1   A  H               
  thAUA@   ATIU1SHcHi  I$Hz  t    HLfA$Z  NAEA;$
  r[]A\A]        @     USH.Hm      x       Z  1N  wqE1A   1H      t1H  HHR0
8rH    Hi  H] HH    u=   []    ǃE3     HHE 0sH       []    fD      AWAVAUIATIUHISHHH  L  L4H    I0    HX@IHH   HL$HT$H$    HT$HL$uqHڸ     H   H   H+    H4H<$E1A   HHH5        Ht*ID$M<$I1H[]A\A]A^A_    =     tD  Lui    I(  H    M  H    H    HHE        H       Ht&H<$    HH    H        H   H    ff.     f    AWLcAVAUIATUSHL'	  D|$Mi  $M  	  <7  <  <u	  ;  Ic
    1HAZ  Á        ?      "wH P   H  A
     toAZ          ?    s"   H P   HHH% H     H/  9MÉ$A	  An      \$A
  A+
  Mu 9   ME1  @   I0  I  H   AZ  -N        HH  Am       I  A
  A+
  9D$t%IU LH  H  IE HqJ8  Aq  tA
  A+
  9D$   E1A$   u)@  Am       HkAE:$     AEI  Al       
         HHt8I0  HSE1     H       HHwHC    1E1I(  H    EDD$  H    H    HHE    A$              L$fA9AFAÅ    fA$  fA$  1H[]A\A]A^A_    Aq  tA
  A+
  9D$tMu 
         MI  IE LH   H   I0  E1     H       IHtAm       IE N8  IE LH   H  I0  E1     H       IHt       H    Am       IE N8  Mu MI   Q
   `      I  IE LH   &H   I0  E1      H       IHtAm       IE N8  IE J8        I$  HH   HcI$   H WA$   	u¾     I$  ʃ??HI$  HH   H GA$  AuI$<$1fA$  HD$  D$    1E11E1PEDUt$ffDAE?DDE1f>ADE|)A9~W9$H|$  DLyD$    HH;  Am       I  eG3A   	  HA
   $   toAZ  =  <  =  1  =?  2  s"Y  H P   HHH% H     H/  $$A	  #	  \<  nAU3A`  HTHHHIU    =HH#H(Iǆ      35  9MÉ$A	  <  w%  h11fA$  fA$  i   5  C$5  =<  w
     5  $  N  $  =N  fD  AWIAVAUATUSHH  H     I      Hc1H    H$HE     I    H$HH9thH,[I  Le MtI0  HuE1      M  H       ID$   D  fAL$4uL    {I  HG   D  D  O4   Iǅ      H[]A\A]A^A_    I$H3u   L    |A  mI$   ^ID$HHPLEJL`AHH3b   H<$    H<$RC  2H   $HGHHPHEHx    
@     AUATUHSHH4RH  L,H  H  L$H     H0  E1A      H       H    H  IU   IEAU   I$     H)  H  wHǃ      1[]A\A]    H  HPuXf@41    H  HH    ǃ      19  uH   tHPHHJHEHBff.         AUATIUHSHH eH%(   HD$1r  @   Ll$H(     HD$    LD$    HD$        |$ HLH    H    HEЋt  AUARPAAH    H  E    HHD$eH+%(   uiH []A\A]        HxH9HHF    Hv	H9    HPH9HEHD$eH+%(   uH HHL[]A\A]                 AWAVAUATIUHSHV8H(  eH%(   HD$1^"D$    L4HV0D$    IF&L  D:fA9t8AA  m      LD$HL$DLHfA9uȋt$t8I   D$    D$ A   A   D$9xI   rFfE|$"fAD$&D$ I   u;HD$eH+%(      H1[]A\A]A^A_    LD$    D$I   HeD-        E   I   tf
   0tAǆ   H    yAD$&fAD$HfA+D$$fvL        D      UHAWAVIAUATARS1H   uLg   t2H:ITHJ0r"f91t
ItL    A:  rA  E1fE%  HI   Iǋ@<t|EA9}\IVA  
  +
  9)  I   fA  A  %  HI   @<  D]HeD[AZA\A]A^A_]    E~A  IFE  fuA  H0fum      IFE1fDmHxfDnD]L}L0L(MEf%fEEf%fEHEDDEփAm      

  EI$  HEHLHEM+V  Al  %   H]	  SHII$  Lʅ    HEEk@
fED)A$  [    @f`ACEsACL]I<  Hx 
  JL]E1   I0  A$  HPIsH       HP 6  A$  H    HH
  AAHߍP@   HcH       L]   HA{AKE1	Љ      I(      L]HufDXf          ASN
)1A$  MuA{ AS"fXDUEg  `E1E1퉵Hp  L}L8MMHEA   BD`fEEfD9DFA  uHD}D9DFH}L]H@I  Hȹ 
  HpDHL0HuHxDMvDML]	  EHEE1   Hu   L]H0  DMH   HE    L]DMEA    DE   MXA  )   D   9IcՉNHALFH   Lr0DR<z8IV  D  LBtK~@   L   EltIV  D  LB4)tDStDCpH ID)}      H	HCppA90ML}L8ACt!ACA      fD   f   H      f| t,D   fA[
  fA
  =       A$  HLL]fC|    HPL]f` I  HEI\$   D`HPJ<r
IHHIHLHI!   H9uD@AMcm      E$  HEA$   BDhD)f~
fA$  DA$  DffJf9D1HI    LJD4
  ft%H?I!$X  I!$  fA$  m        LMMA   MVHIRAIDLMMA   MVHIRAIDHTIcI D   HH   I	HL4LLIF  D  AFtK~@   H   AL$L7HEȹ   DUL]p
@HHP\I0  fuIs@H       HAL]IL HpDU	Z  I(       vf}\  U 
  LL]Hx	L]L
  IsE1   L]I0  A$  H       A$  L    L]HI  HpI   A   ]LL]    I(  L    L]fA   I(     7  HE11@Y  A   A   	A   I(     t,H]Ȁ{ x"A$  IW0  H	,  A$  fAF|HE @p  HE@t!@   A   fA   fA   LLL]    L]MEI    nfPfMEEffUPfEЉFfffUVEEfnE1?f>@1DH}fEEG<?f>@ƍDufE9u  %  HI$   P<HEȅSML(AE]A  ufA  nIH fA  fA  HffA  H	H0A  HS HHщNH Hʉm      A  LI   >IFHHPLE+HoDCLÅ    L`}Mt$HHHHH@HHHXI$  HHPI$  L,A}    IE I0  L]A$  HX@H   HuHHMHp    HuHML]  Hغ   %  Hn  H   H+5    HHpE1HHA   L]HH5        L]H  IU HXHPH}HFHHH`HPH IUIE GfAEGAEfAEGfAEGAEI(     t$Gt<    AEG
AE    1AEA$  HE1p
   	AM oE$  HPE      Am      A$  H	IG(  f` +EfEEfEuML}L8A$  H	IG(  Am       HL]    HPL]IAK"Df`@11HuHx    TDLD]    D]HEPECH}A6      H   DDW      EJ   AEfA ~H   qE΋   )fD7fDS<)1A   t(I  HJ0r"f91HA:  rDLD]    D]Ȅ%A$m      A  A  A$x    A$Z  1N  v
ǃA   E1LD]    D]] 
  LHML]    DmL]HMIMN    IH  H   E     
  1@2   LfL   MD]L(`Lp7A    A   Al  @      A$  DmH	IG$  I$  HELHI$  HHHpHrH HHEHJK@f9H1HzHH2HtHtH)H΍H)HI$  HMI$  HLHqHpH	HHEHJcI(        <  L4    ? I    t,%   LEL]H}    H}I    L]HLDDLLL]fH        L]12LL.LLL]    L]x=     uBH       HuH   HpL]    HH    H    L]I$  HMH@I$  HHqHHHHpH	HHEHHAEAl  @      A$  DmH	IG(  H   L]HH)f   f   HSpDBHH)D)1T0T0 f1H  fA    L]@H   E1L]HH)f   ʃ(f   HL,SpHyLH)Hq   )    HfAE    L]A$  tWL    L]A$  H	IG(  Al  @      A$  H	IG(  {LL]    L]    6AD$3	  HID$ =     I    HH    L]        I(  L]H5        ff.     @     SHH      H1[        S1H    H  [         US	    t?G3H	  t0t	  fu1HiQH%[]    l         d   빍f9G؉[]        UHSHHeH%(   HD$1(   H$    HD$    W  p    @ ufZ  Nm  H$    HD$      @    H  H  H$HT$H$H  H;    H   tHL$   H  HD$  HBr  @   HD$H(         Ht$ H    H    HBH|$         H       f$   Hl$
  uHl$f       tHl$  Hl$Ƈ   HD$eH+%(   upH]    HrH9t$    p  q  cW    H(  H        H    Hl$ J    ff.          UH  SHH    1H    H    H1    H[]        AWAVAUATUSD
  
  A9   I  HI    I  q  t+
  D9   Ic1L!Hi  HE L!f      D  	H	AH L!H	  HM IHωAyHHH 9m      
  AD9T[]A\A]A^A_    ff.     @     AWAVAUATUSHG3D
  $    D$E$  I$A$
  $9  Hc,$Hi  I,$A$l         tE1E17H    HLI(HH    HC    ACfA$Z  N    @   EA9|H   H  E1E1H   H           H  $    H     H?Hǅ(  Hǅ0  Hǅ8  Hǅ@  HǅH  HǅP  HǅX  Hǅh  Hǅp  Hǅx  Hǅ  Hǅ  Hǅ  Hǅ  H`  H  A߹  HLA    DAGEOffAEAAA  ufD  
!  H  1I    I  Hc1I!Hi  I$M!f      D  	I	AH M!I	  It$ IHD/AyHLH >A$m      uifA$Z  Nu\I$8  t$    ֍
  @   IT$ 
I$8      ֍
 @   IT$ 
A;$
  H[]A\A]A^A_            UHS
  t 1HcHi  H} ;
  rH[]f    ATUHSG3D	  Dt-9u	[]A\    A [H]   D	A\    l         d   D      p      u%  @ t  
  tH(  l               ATUSHHr  @   HH  1fPl         t   t#HH  HcHfll      
  t/E1HH  Hcfll      AD;
  rn      +
  HH  H0      tuxZ9~8)l      
  )艃
  
  
  p  
1-p   p  1H[]A\    l      u    HH        H0      x6l      p  
   ǃ
     
  Q
  zl  t            SHH0      u
p  @[    l      [    @     H(  H@8u    US
  Ht%1HcHi  H;H    
  9r݀v   uH    f
   0tM[]    ŋ
  9~q  t+
  9tHcHi  H;H    
  9H(    t1ۉ؃H<HH      ;  rz    UHS    
  t&1HcHi  H} H    
  9r܀v   u[]    Ë
  9~q  t+
  9tHcHi  H} H    
  9[]    D      S
   Ht.
  u%H   Bf= uBff=t-f=t'1H    #  1  [      +  Hi  H	  [H  @8    ff.              SH   H=          *
  Et  )օO9ƉO	  
  t[t4u	  t2
  
  l      [    	  uǃ
        K3A   	  Hsǃ
            )f    SAH   H   eH%(   H$   1H|$H4$HD$   HE2     HHH       HD$tHl$Z  -N  	  HFQD$HD$HFYHD$!HFaHD$)HFiHD$1HFqHD$9HFyHD$AH   HD$IH   HD$QH   HD$YH   HD$aH   HD$iH   HD$qH   HD$yH   H$   H   H$   H   H$   ucHHr  @t3    H$   eH+%(   uWH   [    HD$       Hl$	Hl$
Hl$(   H$       Hl$    fD      USHH@HoeH%(   HD$81HHT$HD$    HD$    H(  HHD$     HD$(    HD$0    H$   HD$           H(  HHHHD$   HT$        H8  HD$Hl$e       H(  Hh         HHt$           Ht$H    t yO       Ht$H    uH(  Hh      HD$8eH+%(   uH@[]            ff.     f      tl  tdAWAVAUATUSHHG D  , EEEAAAn      Au)A
u#EuAv1[]A\A]A^A_    1    @    l           f	     USd  H   HG  =     r  @   S3Z  HO d  ЁN  ҃v~y   tu~HHHD l       S3Z  HK d  ЁN  ҃v	y   u҃~HHHȉ([]        ff.     f    AVAUATUSHo3l       H  H    H        p    @ uH    Aą    p  Ā     HyAą    D
  
  A9  q  t
+
  D9t/IcH(  @   H    Hi  H3H    
  AD9l       D
  D9~;q  t
+
  D9tIcHi  H;H    
  AD9H    Aą  H    r  @urHS    H,@ HD
  
  D9~Gq  t
+
  D9t(Ic1HHi  H3    Aƅ    
  AD9H    H    H    H    ƃv  f
   0t>l       [D]A\A]A^    
  H+
  M/       H    l       ƃv   
  
  9~8q  t+
  9tHcHi  H;H    
  91H6        f         
     AWIAVE1AUATUSAq  tAA+
  9txEMi  M/A   t`E1AI    E f9E"u,               DM E"fA9uAE:  rA
  AA9][1]A\A]A^A_    1    f    AWAVAUATUHSH(t$T$eH%(   HD$ 1D$ l       	    E3A   	  H  r  @  d     HE  =      U3Z  HM d  ЁN  ҃  y     8HHHȋU3Z  Hu Dd  ЁN  ҃v	y   u҃8HIHȃr  @  D@  
  E  fr  f= h  A @  fD
  D$ H    v     L(  e       I  E1HHD$eD%        A  t]DHHI  L   L    D   H    H      ǃ   LA    E;  rH|$       H=        H(      H(      H  ǅ$
          p   @   |$   r  @     H    Z  -N       H1    
  t"HcHi  H} H    ;
  r    v   U  H    1H    r  @upH    f   H    r  @,
  ft
f= 	1    H    r  @  T$t$H    r  @tHǅ      ǅ      Hǅ      D$ 
  1ۅtHcHi  H} l;
  rH輾v     
  D$    j  q  tL$+
  9<  LcL$Mi  LM I   M  A    1!I$    I    HH       L$[M  M,$MtH0  It$E1      M  H       IE"  ffAM4uL    {IE H3uܾ   L    VA  uIE    tIEHHPLEI  HG<  D  D  O4  IǇ      
  D$L$9
  1ۅtHv
  9r逽v     H    1ƅv   f
  p   @ !    @    l   t    LhHH3B   H|$    H|$0!  H   HGHHPHE    H    H    OHx1Ht$H      r  @1H    !Z  1-N  vu2H    H    H    p  f   H    H       H    Q   H    MË
  p  9e  ƀt+
  9tH蔷p  
  9ҁ  @ v   	H    
  
  9>q  t+
  9tHcHi  H} _
  9ˋ
  9q  t+
  9tHcHi  H} ,
  9H    |$ NH    A
  
  9}9q  t+
  9tHcHi  H} H    
  9    XH      @ E1HL@      D$ l          ff.     @     SH_xH        HC8tH    H	  1Ҿ           1[             USHHH0  eH%(   HD$11fD$   u.l      1HT$eH+%(      H[]    HT$p    u7H0  T$     ΀    D$t       땃unH0  H  zX  %   = P  dT$Ѓ	   fT$tf
fD$   ҃    '        f         AWAVAUIATIUSHpeH%(   HD$h1   D$    `<`  AD$|A#  HIHHI  HD$0A  A+  A
  A9 
  HI	  A$   H֋zHH$I$   F&Hf+F$DIAqHcH9  A
      M$   D$A
  D$%  D$@  AC  A   t$@DyGD	  A$   HAl$pET$t1PL)D)ҍHQ8)A\$ @ǉD$HcHHHH9uT$~A9r_A)ADA
  A   AE)IcHD89r01Hc׃HD\
8A9  A:HcHD8D)9sA
  t-    A	~FA   D$  A
  -  A  At$t	  At$pM$   
At$pMA+t$tI  LH   HD$      L     IV  H   H+    I4H|$E1HHA   HH5        HD$(Hw  H$A Dy$fD$%  DHHfIL%  HHA@IHA$   I$   P}  H$AC@$M"AB
 fABA
      A$     A$   AKfACCDL$ff%AEAAc  H$AHHXA  H\$ -N  V  H    1HC    D$8 E  T$D$   E1HD$@    	fHD$(\$IIAD$p  A+D$tI fD$fAC
A
      tS\$8AK@AD$pA+D$t9d
  I$   A$   DA  N  N  %  ?A	Et	HD$@DpA$   I$   E1E1H؀x s  HLL\$MLIoAfAH<$EHILOHIS8IDH D$fAQ
s8ft$A$
      A   I   ACD9  IcE1A   HHI$  K8S<Hs0H       HtAPAfAKD$`    L\$MD$d    A$
    D$H4$LD$dI	  HL$`fACV   艣1HT$heH+%(     Hp[]A\A]A^A_    H    HC    D$`R  D$8 D$   E  L$  t*I$   L  A$   HЀx)uA   A
    @      t.AFCACAFCAFCAFAFCD$H\$@HD$     D	AA
  @  I$   Bf=   f=  AFffACI   Wxf= 3  f=)  I$   A$   f=uD$   L
I$   A$   D$   L	A  -N  v6A$    t+A$   H0@`
  x	  L$ |$EǉD$A$   Hfz `B    E׉T$LL\$IMLIA
      A_AGL$f%fADHcfAKH9 L$Mt
D$fABA
  %   H|$  2      AD$p=	  H|$0            9	  L    A$   I$   D^  H<$fG L$fOA	  WGI	  D_$G&fGHAD)fD_$f	  H$H@(AC|$Ȃ@BDACH$AK HHXA  H\$ -N  gH    HC    A$   1I$   I+$   HfA$    	fA$   A$   H)HSD$  A$   I$   LJʍ<fKI$   A$   @|$8TffStAFC
AFCAF	CAFC	AFCAF
CD$fACA$   HA$   HH|$@       A$   I$   HI+$   HȍyH@|$8%  AD$"R҉	ƍD$8AL    H  At$pM$   A+t$t]  Z  kAD$pA+D$tD$d    )I$     HcH9Bf= tf=pHL$ fAI$   A$   DȉAI$   A$   DaD$g  I$   A$   DffA
1A$   I$   BB    f1  fHt$ f@fFA$   I$   HI+$   HȍyH@|$8%  AD$tR҉	ƍD$8AA  AGf%AH<$AǋT$@HHGH     H@    HD$A$   I$   I+$   HC
1  H|$D$   fACȠACAJ
H$H@@  H	I	  V  `  L    PBAKffAC|$@όEщT$H   AfA#FfA#FfD$=     u5H       HD  H|$    HH    H    A
       L    1L    M     HT$dL    HT$dMA
      I0%     A  =     R    A
  d       fCD$8A$   )AA
      DA$   I$   DE2  fAfDCA
      H   E1DDD$HL)LT$@L\$    DD$HL\$LT$@EAA DfE1AA  AAAuL$$AGf%AA$   H|$A$   HH)I$   HDBGD$  A$   I$   B
Jr	)ȉf1  ffGf% fD$ I$   HL$A$   DȉAI$   A$   DaD$ x  I$   A$   DffA
1A$   I$   BB    f1  ffCI$   1A$   I$   HfA$    HH)H	fD$ y	A$   $HH)H|$WE1   1L\$A$   I$   HpHx    L\$fAC
fD$(D$8fD$HfAC
A
      A
  AGf%AH$AHHAHD$8IHE D$(f+D$HfE
AJ
A
      D$x   L$@vA    H    H|$0H      D$ H4$HF@  H	I	     F&fFHf+F$fH|$0    ~H    H|$0H      D$       9HD$0   HL$E1fDD$ AKFE1   1DL$PA$   I$   LT$HHwHL\$@    DL$PLT$HL\$@fI$   P   A$     P	   H    M0%  I$      H5    LT$8I8%  L\$     LT$8L\$ )AGf%AH%   ZD1DD$HLT$@L\$    DD$HLT$@L\$EAA DfE1AA  AAAL$DVI$      LT$8L\$     LT$8L\$ 	   LT$8L\$     L\$ LT$8    H       H|$0H    H      I  H      H    H    HHE                   ff.     @     H3IZ  N  ҃v-y   t$f	  t&1HHu1A     f	  uڃd  QiHcHHHx DDDNf>@~d  H|:Hx DDDNf~@~d  HT2 HP A     D      AVAUL	  ATUSHHeH%(   HD$1D$ HD$          @   D#  DA8    DH    Aą    HT$Ht$L1    D,`  D#  IDA9}
+  
         HHu#   tI  +  DHAD  A    
         #  AD91HT$eH+%(   uNH[]A\A]A^    H    Ӏ=       H    H                D      uB2Z        ATUSFH    VH	    r  L	  <   <   <uh      HC8t1L    ubHU1   H    HS81   
  @u7  t-H	    v  H	  H     []A\    h  j    	  A   X  H@       L    aff.     @     
  t#UHS1ۉH
;
  r[]        f         UHSx  ~'1HcÃHi  HE H      9x  H}     H}    H}    H}    HH      H
  []            AVAUATUHSp  *
  %  @ AA l      x  Hi  
      IHL  x  ~EE1Ic޺ 
  
  H=    Hi      LH  H  x  AD9Hc  Le HHH   
      HEH   Hcx  HH	H7   
      HEH   *
  t  )ʍPl      HcP   HHHpv
      HEHtTIc
  H    Ht>HH  @   
  H=        HtH
  1[]A\A]A^    1HMH    1HE1HUf         S1ۀ  v   t  u9   [    H(      twuۻ   كt[    m  t   @       v}S   Ht'    tAm  t8t)1[    H(      tw$t$  t׸   [    tȸ   u  t11    ff.          u    H HH1    u    H HH1             UHSH  H    tbH   H       HH1H!H(        H       H(H!H	HtH       H*H!H	H(r@t
   =   ~H[]H7    H1Ҹ   wH       H؀HHD[]    HuHufD      S
  Ht0#  
      H5    H  1[        H	  1    ff.     f    ATIUSH    G3HՉ   		@0Ȁ'  AD$3   		 ȀG  []A\    ff.     f    AVDADAUfEATUSHHH8  Dg3  A    Aэ  A HG l       EfE	H8        A2  A HC H@0ȃHS 	l       H[]A\A]A^    ff.     f    SHH     #l      H5    H@  1[        ff.     @     AWAVAUATUSHH   Do3t$eH%(   H$   1l       Hǃ         f
  Hǃ       H   r  @L  l       
  1~,q  t+
  9tH莊
  9t  *
  1H{)Ѝ@
  HH    
  ƃ     p  1U9tJHcHi  HH(         @   vJǀ      p  
  9~F+
  ĀuHcHi  H9uǀ        
  p  9  @ uH    Aƅ    1HAƅ    
  b     
  9sHݘt㋓
  9k  Dp  AAAA, H   ED(Di
  HtD&  AEE1C0AAn      @AE1  i   AW
  Lx
  
  H0  HcLH       HH    l  Lx
       Hp
  Hc
  H
  L
  HL   H
  H
      r  @  1HŅ    l  H(      D
  E  E1Ic@   AH(  Hi  H3H    H    
  A9rl       t&E1IcAHi  H;H    D;
  rr  @  D$    H    p      
  1ɨ`H   H0    L(  1H    M    Aƅ    Dp  A@    A     A  @   t$HL      H(  H    HDC3HH8      j EAVj	H@
  H  PH8
  H  P    X     H(N  t#    P  U  	  ɃS3H  H    X     N  t#    P  h
  	  ɃS3Hx  H    HDC3HH8      j EAVjH@
  H 
  PH8
  H 
  P    X     H(N  t!%   = P    	  $#H   Ht
"  Pf  H    D$ǃ`  =  	  =  	      H|$H   ǃ`  f
  1HD$D    HD$x    HH  HD$H   HD$8	  	  D$@   		  D$Pfb  Z    =o    =?    -  %  H :   H   )ȈD$T  ftfD$V  ftfD$XD$]f  Ht$8H    Aƅ    q  u1Ҿ   H        H    H    Aƅ    
  A   w%          
  AA9  Ic1HHi  H3r  @t    H    AƅA fD
  Hp
  HtBH0  
  E1
  Hx
  HcH       Hǃp
      Hǃx
      
  1tH߃蚋;
  rH    H$   eH+%(     HĈ   D[]A\A]A^A_    H    H    q     Z  E1-N  v	DC2Al       AMcAKvMc    L    Kv<      LD$  A  <      ǃ      l      H    1   H|$@Ht$8HH  HDl$PHD$H   HD$8    Aƅ"    HH  8NC3Z  HK `  ǁN  U  y   H  HHHPH  Hȋ f  l      C3Z  Hs `  N     y      HHHPH  H f%f  l      	  #
  
     H    AŅ    =          H    Aƅ
  Dl$A  t$A  tA  FD$  A  ǃ     D$ -l        H;@1ɉ1    HH   uD     EuZ  1-N  H8     H    Aƅ    A 0  fD
  r  @u     H    AE    r  @uh  
  D  ƃ(   Ett$H    Aƅ7  X  H    Aƅ  H    s  
  D$    u:L(  1E$  Et$H<HI$      A;$  rD  E	  d  
  H    Hc  H  H    u   ~
  r  @    tf
   	  	  uC3A   	  Hr
   H    l        f
  r  @  
  E1tIcAHi  H;D;
  rHE1
  ~?q  t
+
  D9t Ic   HHi  H38
  AD9H    p   @   ǃ      
  E1tJIcAHi  H;H    
  A9rۅt!HcHi  H;H    ;
  r    r  @}H    pH(  1ҩ  @   
  t      $E1Hl$
  AA9    H(  Mc$EH    Mi  L+   M  F48LIc    HH  11MMH    <    t    H   H  H(  H0      AnDd$AA(A fD
  p  ==  M   Cd  fHC  vd  HS HT   d  7HC  t(d  HS HTt  
1H߾       1Ҿ   !H    11҉H{ Dh  1N  vC2HH@ID$H Ѓt"X  H߾       H    ʄD1;H    1Ҿ
   H    r  @d     HC  =      S3Z  HK d  ЁN  ҃  y     8HHHȋH(  Hs Z  Dd     N  	S3҃  y     8HIHȃr  @-  "                 D$ e       H(  Hh      H(  H   Hh  u    r  @H    1Hs h  1N  vC2DHH@HD$H AAtYX  11҉H{ Dh  1N  vC2HH@ID$H Ѓt#X     1ʄ01'      A1l        AD/   $HcAE1ۉL$D/HF:LIcAH4MHI  I<HHsHHHOHNHOHNHOHNHO HN HO(HN(HO0HN0HO8HN8HO@HN@HHH~HHsHI4E9w$L$l  D97Dt   D
      
  LH{4$D)֍AHcH|$ )Ht$H{Hi  H|$(HL$MHcLi  HL$Iy2   MI  Ht$0IpHIxLHI	H)II  I)I  HL΁  HA  LL$0H|$M  LL$ I49K9H>H9H  H  HyHH)H)΁  HHL$H|$(Ht$H	H	HHH>H9H  H  HyHH)H)΁   H
  +
  
  l  A9  11HcH{LkPHcHkPNH4L׹   LKM  D
      C3	  AAD$^fD|$`D$f&l       fD$dHC H   Hs l Hs (` HT$oHt$gH    D$pl       	  1HH  II11H             H(     H    ǃh      21H    >HC  =   
   H    d  HS H   D d  HS AH   D l       
   H    `H    H    H    H    uH(  D  E1҉HHH     ;  rH    
0  D$  A  $   H1Ҿ        f
  D$ e       H(  Hh      L  M    H(  Hh      AA)D$DD)@     HG8t"SH	  1   H    H1[!1    f.         USHH                     ~RH   7
  @u6  t,H	   =  v  H	  H     H[]2H   1v
                  ATUHSHL   H  I1    u2H*  s <t   ƃ  t"[1]A\    u5It苃  uH   H       []A\D      ƃ   uff.     f    SH_xH              HC8t(H    H	             [        1ۉ[    f.         FPw
#  1        f         
                    F  x  u    u6Fr    uh      DF  F     Hcʸ  1HfD      
  	r  tEt!uh  	    h  	    	  X  A   H	        UE1IIS  ~x  tn1HcH    DH	I	  HØ   rHcI<1tHLA tApH HH0HH    uAA;  rIh  H    H    E10HH4t
NH HCAHcIH0H9tA
  @tx uHu1[]                      
  )ЉF  F     f.         FuY uE1t    t,H	   =  v  H	  H     1    
  u   
          
  t         AT0UHSHG     d HE d HE  d HE  d X  %   =P  E1ApA- D9t%S      HE H d  t[1]A\    l        []A\    ff.          AU   ATUHS_3       ىX  %   = P  HE wK d A A   1IS      D9},HE H d  Dt1[]A\A]     d Al           H         AUIպ   ATUHSHG  d HG  d HG  d X  AE     %   =P  E1ApA- D9t7S      HE H d  tHE d AE 1[]A\A]    l            UHSHH0HeH%(   HD$1H$    D$        Hs@H|$    f   0tEC    CC fS	
      HD$eH+%(   u$H1[]    HP%  CcH%      f.         USp  H uB@u)
  
  
  l      H[]    H0      p  H0      p      AUATUHSH
      H      Aą   M   U   E   u tz  
  )9rf;  t9HC8L	  tEL   1    u LL[1]A\A]    
      [D]A\A]    L
      A
      A    Hu_wZHt1H	  1  	"  HH=   uf   0t1    H	  H!     1H        ff.     f    UHSHH   eH%(   H$   1H$    HD$    HD$    HD$    HD$     HD$(    HD$0    HD$8    HD$@    HD$H    HD$P    HD$X    HD$`    HD$h    HD$p    HD$x    HtHt4H!  H    1H	    )ʉHH=   uH$   eH+%(   uHĈ   1[]            HH~H1HH    H)HFT    \H  F  F1    D      
  tF    1F1F    fF    F    t   tٸ    ff.     f    AWAVAUATUHSHHeH%(   HD$1D$    D$ t8    HD$eH+%(     H[]A\A]A^A_    E1䃿  ~{  tqE1D   H|$EH    D$    AI    D$     IcLHL$    HI0A     I    uAAD;  rI    E14   tAAM    AI0H    L9
  @tA~ uC<    LHL,    H         HrILMIM ItIt
IuHH)I)Ѓp1҉уI<H<9rUAAM ALAL=ALfAL*r      `   H    Ѓ     TfTH    HH    HBH    HBH    HBH    HB H    HB(H    HB0H    HB8H    HB@H    HBHH    HBPH    HBX{
  H    %  @ Hҁ   Ѓ"HH{HHHLHLHH)H)H TT    ff.          UHSH
      H      q    x  E=     <     tm    tY  tQ?     s"   H P   HHH H      H   5  9r\r  tt:uh  t8u V  w*x  E H߉  []    h  u
          <  w6  /  q	  A   X  Hrs   5  ;  N  *
          
          D      USH       t
  @t

  []       tH	  H             AU   L	  ATUHH~SHH    LcDH(eH%(   HD$ 1H$    HD$    HD$    HD$          tH	   =          HLH$    HD$    HD$    HD$            LH    H  H   HuH       HHd    HH    H tHH     HH    HD$ eH+%(      H([]A\A]      H	  H    H	  HHDHAH    AA    HEH$    HD$    HD$    HD$            H    HH     HLH        ff.         UHSHHǀ	      E1HfC   ADMt7H  S	  	EU
      []    `  ff.     @     SH    HHH)Ӏ  t[v<      t   v[       t   [$          t΃[%       1[            AWAVAUL	  ATUHH0SHHDfeH%(   HD$1H|$D$    D$        Hu@H|$    r  <ts
      A   D}DD<uzt  '  Dȁ     Akd1҉D9  9  f   0U  #  1HT$eH+%(     H[]A\A]A^A_    L    T  Du	LD$IA9
  E	<             T  AA   ADT  L    AD$T  
      }  A        A
*  Ad  
  D  %   A`          <t<+  
  tDT  AAFADT  A  
           u
         A	    A'    A  LDD$    T$  c  HHH)Ƹ      D  fDS  fDS  D$  
      HC8DT     L    L    L    
      X   
  DH  u
     @  D$օ  fDS  1fS  ƃ@  Aƃt     t
     t
     t
        t
       t
    @   @      L    DT  .     x
      
  %   A  D
      6
      
  %   A   D   u`         
  D  %   At9         
                
      
                              }    p    c       S    F    9    @     AUATL	  UHSHL    r      
  AŁ       D1H4Cf  }   A      fD  D]E   f  DMEtY  @   1f   D1f  1f`  }	f`  DEEuifu   f`      HC8u)1[]A\A]    Dm   Eh1ɀ^   L    L    L    븀f`  뜅               tHG8u1    SH	     H    H    H    1[    D      AWIAVAUL	  ATLUSHLsPHeH%(   HD$1    LHcH|$D$        LHE  A  A  $E      HHHH)A   u$$AfA   0  CCLt$C	A  C
fAo   CA|  @   L$t$ρ@   @   Dϩ   L$tL$ @  ĀtL$@tL$ tL$tL$tL$A    A      DL$DɁ      L$D  A   DL$DE      tL$  @ H{0D    4$H{@    t$L    A
      HD$eH+%(      H1[]A\A]A^A_    tL$   EtL$      L$iAs   cA
  UAv  CAr   tWA
  uMLt$    t$'   L$tBA  DL$DE   L$At  EVEu         H   H   eH%(   H$   1HHHH(  HH8tFHBHD$
   HD$   HH  H$    H$   eH+%(   u#HĐ       l            ff.          F  f9Gf  Ff9Gf  HG8u1    Hǀ	      1    @     t   t	tM    1҃  ~
  
  @tCH    8 H0H=    u    r   u
  %  @ ҃    6    ff.          )t-u?  HF1    FtKw;tX       HDHF1    
          H0뢀"  H$@H   뎀"  H$@H   w    
  %   uf   0u  @ us      1    HP%  H    ff.          UHS
  %   >*L  H    C   w#   vau@H{   ua1[]    w=vH{0t
      ԃwH{ t
  t    tՃuH{   t
  t    HCH=      H0uH	  1"  9c"  
  tF    HCH=   tnH0`H	  1"  9!"  
      f   0H!  H߹   [1]          -N  w4
        -N  vH	     H	     Off.          
  tEHF_   H$  Ht
H4$    H4$F1FI  F   H                 ATDUHSx  rN       DH    ut1   w  tr9          t[]A\    DH    to  t    o      []A\         r   K  S  HX  HH	  1	  HHH4  H9&       6  DBDA DωσA   Eρ   9   J    DJEt      L  DB΁Et΁   L  zt   @  L  R 	ʁ   0L  HP8u1[    H	     H    H    H    11    
      [    
  u5[    
  t    
  t    
  t            AWAVAUATUSHH(L7H(  I  L  E8D$    )  b  A   
  D       IHL    LA9DGAD    H(  E1Aww  H0  
RD@    fP   fDH
fDPAtHH9uI   H0  AOpA+OtH   HHL$ Ht$HT$HD$    HT$Ht$HL$   Hо   %  HW  H   H+5    HH|$E1HHA   HH5        HH  HE0 fD$I   fD$AGp=  T$HHIA   A   A   A   9g  } U$A   GfE H%  HHE fPL8@
 u$H%  fHHEHfD@AOpA+OtfxfH
H@ᘃHBff%@DZ  N  HHEI     H@    fH@    fEC0UEHC(fE$     HE0D|$ AD9u'x    I  D$9   ƃ)   H([]A\A]A^A_    )  o      Z  =    =    =?    -  "wH P   H     )  H(  H      H(  o      <H     @    @   @A  IA  IM  AE   A  ƍHffDfA  A  ƍHffEȉЃ?f>DA  fE  HύDfA  A  ?f>H ҍTAHfA  fH	A  HK IHΉApH Hm      =     tEL    o      =<  lH    H   ` QH       HtLH|$    HH    H    e       HH       H=        KH   o      AE
D9JA  H0     A    H   HI  Hu    AUD   HU AubHH9tY8D@tA  H    I   A   D$ A   A   9fA   XA  1H5    fD      SH   HH  eH%(   HD$11fD$@u!HC8HT$eH+%(   u%H[    HT$    uD$    ff.         ATL	  USHH  _      w   tC[]A\    u*L    H  1Hp         L    1[]A\    L    t     Hp  H      L    1L         Hp  H      L    1
        ?f    AWAVAUIATIUH	  SHH  eH%(   HD$1D$ D$ :   HM$      H    Hcù^   LHLL$A   HH)L`     L    H       H    L\   LLL$A          H       |$ tND$1ҹ   D<@<@   DAUAEHD$eH+%(   u`H[]A\A]A^A_          A$
        A$
      A$
  t        f    AWL	  AVIAUIATUHSHH  ^0  L    Lc      EUAE=   vA   A)ELDT$D$    IcD$MHH  HH)к   I`      L$    $DT$   DDIE1Ҹ    $whEE   L)E)BE   DG    L$MHH  Aغ   L)I`      L$    $u*H[]A\A]A^A_    
        
      
  t    ff.     f    AUATUHSHG O3H d     X  %   = P  wKA A   1IS      D9}.HE H d  Du[H   ]A\A]    Al        []A\A]    D      AWAVAUIATIUH	  SHH D	  H  eH%(   HD$1EAA>R  
        AE- YHP=      Aǋ  HHHH  H	  D8AE=PYHPs  =RYHP  =CYSugA   A     E1HD$eH+%(     H D[]A\A]A^A_       h
        AEuEEA  DD	y  Ep    C9s  HD$AÅ^H	  H$d  H	  $d E   McD$Ml$   IGA   HD$9EtJE   AUDDHIIAD94$sHuDE1Ht$AGD<$E`H9uAUDHDD$D94$DD$A   H	  D$H$d  H	  $d HD$hf   0VLp  HHè         LH    LHA    EHA	D$    H    D$
        H\           H`AÅII   HA       H    Hp  H  1    AA   toHD$    H    D$\D11H    H    HX  H          DH          H    D   1H$    D$s  APD$    9   HD$XAÅH	  H$d  H	  $d D,$  HT$HADD$AA   T$DB    H!A$⹀  	A
        A
    O    
    :    
    %        D      N  t|v|o  @@un  @ǁ  ADtcρ    P         H :   H   1    F    F    F    ?     s"   I P   IrEH :     Hr    ρ    P        uߋF    ρ    P  v3 p  t5H :     H-   t      F    <  fρ    P  wg p       p  ufD      vDo  t<?  v$  %w3H :   H    1<             1             AWAVAUI    ATIUSDX  HD=N  t,=c    =a    I         I    IH    L9tYLD4tAF!9uEFEt1AHIL$ 	KA;FrIH    E$X  L9uI    IH    L9tXLDtAF!9uA~t1AHIL$ 	KA;FrIH    E$X  L9uDN  ^  6    o  t           ?  _  s"
  H P   H  H :   vH  H :   Ht-DI    I    D4 vI    E   []A\A]A^A_    I    =o  =  t=    D    P    I    -  H :   H  E1AEtAE!9  o  	Ȅ  DI    I    I    E1M4HI<   MACT ID$ L	HH9t@B!9uDBEtJ4    1
IL$ 	HH9uHJH9uIM9uIAv[]A\A]A^A_    IBA   IBA   toAEdAE!9Au1ɅAE HSID$  AEHӅt"1IUHIT$ SA;ErA;MrE$X  D~E1=?  =<  D    P  n  I       H        HEID    P     Dv p     H :   H     %/AE<  D%   = P  wt  =      DI    I    BI    I    D    P     vDAETD% p  uAE?  <  <  n[]A\A]A^A_    D    P  D p     AEDv p  UDI     p  -  %*9s"*H P   H-  E1H :   HD    P  D p  v%ODI     p  dvAEff.         =N  t      =o  t|=     =  t{=?  0  s"w)H P   H   H :   -  Hr1ɉ    F        F        B            P  wl-     H :   Hs1Ɂ   uB    딉    P  v p     t1Z    P  v( p  t)H :   -  Hr1"-  lB    1=<  
    P  w
H p  ff    UHSHFa#  u  D   DM
      1[]    fD      
  @u6ATU1SD     DŃu   []A\    1    D  ATUSHG HH@+    Hw @ Hw @3 H @# I    HS H    
HS I$L9tfZ  =N        vo=o  thAD$tAL$HD
A!tm       I$HS L9uDX  Av
m       HC   \  []A\    AD$AD$AD$         AWAVAUATUHSHHHVeH%(   HD$1F   1H$    HD$        H  H@8u'HD$eH+%(     H[]A\A]A^A_    H	  I    I    I    Mv\vK=o  tDENEtAFHD
       H	  I$M9t   =N  uENENENH    H    H	  Hʋ
P!ʋH	  HH9u׋  D$  H   aH$=N  y  ]  -  =o  "  =     =     =?  <  s"w1H P   H@u}H :   -  H@  H$HH      H    H    L	  A   HEHD$A$	  HEH  HHE            ց    P        H :   -  Hh   \	  <%   D$;	  <%   D$D$   
D$    =<  ց    P     q	  <%   D$҉ptH :   -  H@% p  =   vց    P  ҉pv       H   H	  	  Ƀ<HHH4  H9     σ @Eωρ   EJσ @Eωρ   EJσ @Eωρ   EωJ JJB1J    
  u
        ff.     f    AWI    AVL	  AUIATI    UHSH    HH	  eH%(   HD$1D$    Mv\vK=o  tDEOEtAGHD
       H	  I$M9t   =N  uEOEOEOI    H    LH	  Hʋ
P!ʋH	  HH9uD#  H   aH$D|$
        =N         =o  z  =    =    =?  (  s"wTH P   H[  H :   -  Hs+с    P  _   p    D$   H$LIuDIE HD$IELK      =o     Ct#CH	  H$H    t  =N  uCA$H	   A$AD$H	  II    uHD$eH+%(   )  H1[]A\A]A^A_    CqCiD$   	  <%   D$с    P  w+t3H :   -  H   R p  u!	  <%   D$}H :   -  Hd   X	  <%   D$7=<  ,с    P  wvW     p  \     AWIAVAAUATAUSHeH%(   HD$1D$    	Ȩ     \  IՍ19   oÅ   IG H$d  Iw $d A      Hl$EDHLIA1ɉËD$AEDD)vJtIG H$d  Iw $d LHD$eH+%(   umH[]A\A]A^A_       uHDLgËD$AE 뗹  Hl$Al        l    t            AWAVAUIATAUSHH<$t$l        E~kE1HcLA    E9~CD   H<$LD)9O؋D$A4    AƅtHD[]A\A]A^A_    = tA        AVAUATIUSVtTHHHE1AIcHËPt40LHAƅtl        [D]A\A]A^    E1[D]A\A]A^    f    ATUSFŁ % t;  t3vHщHAątl        D[]A\    E1D[]A\    ff.         AUL	  ATIUHSHH  t'
        MuLL[]A\A]
        []A\A]    ff.          AWIAVAUIATIUSHXH  eH%(   HD$P1    7  A  D$    A
      Ar      uA
  %  @ H҃8I	  1  IL$I$    ID    HLH)Ѓr1҉փH<19rD$0    A
  uuH=             H$H1  1   HT$0H      A
    !  H<$    Ar   
  ID$    AMIG8B  As  A|  $AED$tAr   9  HtAr     ID$(   AM<$ @t*Ad   
       H      AuAr     ID$   AMk  q  A$ E1fELT$0A
  A%  ADD$0fU\      H$H    HA  vP-=  vFA  I	  HD   u,A
        H$H    HFA
        A   Ld$Hl$DLt$PEE    HDHHE              HHʉPL9uH$HH  AA   u   HT$8   HD$4    Ld$HD$8    D$@        HD$8HʉPH9uD$<    O   D  t$@   HT$4H    AÅ&D$4L$@ʉT$4  L|$ALd$EE    HDHHE            g  L|$Ld$A
      HD$PeH+%(     HX[]A\A]A^A_    A
  t    ID$0   Gh    A	  H  I	  HL$Hȋ D$ I	  111H       H    tOAMA
  L    H<$Ld$    Ar   I$   ID$   K@H߉D$$I  E	  AD\$$F  A  t$=N  t1=c     =a    =?     -O  H\$(1EDۉ|$$Ah  H    Aډ#tTHI	  AʋHIH׋?M	  EA!IEM	  IE	I	  :DD1ʅ   PHu|$$     nA$    AD    -=<  w=   9   =o  )-     %H :   HsÉ%   = P    1% p  =   @ƍ4   AH\$(A
      I$   AMI  D\$$
D\$$  A  =N  t/=c    =a    -O  A   DFt$Dt$H    Dt$1
 HH   I	  DBDDtA
      ID$   AMA
  @  I  H@8#     H    H    1Hs   A
         HA   Ji  A
      H    H    Mt$AEAE  11H    HD$L$ I	  1H    p  <$ ~  HAr     ID$(   AM=o  D${   H}  H    H    ID$    AE?H    q1~14I	  6;A|H9uظ
 H AWI	  DBDDtA
  %    HHʉPL9uH$HHuAAD;d$4s
A@0H<$L|$D$Ld$    D$-H<$    AMA
  .    H߉HYAr     ID$   AM8E|  A
    I  H@8   11H       H    >  DH_   H       HLcEt[A
      H    Mt$AEAEcA   @AH\$(D$   ;A   H    ID$    AE밾   eID$   AMWID$(   AM1=   @ƍ4   (A   HA       H    A
    5    A
        A
      I    A
        1            r  @H    H    HDH      fD           HH(  H Hʋ    H H  Hʋ  H HHH0        H Hʋ  H H$  Hʋ   H HHH8      H HH@      H HHH  D
    E~?Dp  Mc1A   Et
D+
  9tHH	HHIHHI9uԋ`  Hǆh     ELF          >                    x         @     @ . -          GNU ͞^Kǔj        Linux                Linux   6.1.0-37-amd64      H   11Hǀ       ǀ       f   Hǀ       ǀ       f            SIH   H_@fw\DCDG`Ct:OHAA)E~+   A   D؃A!D9~DG`CGeH    LϾ   [        SH   Ht!HC    H;    H;    H;[    [            AWAVAUATUSH   DnpL   A9   I   Al$ADE9   ED$A@fDD$A9     DDD$    HHtgt$HE)    T$It$H   I    A   H    HL    A   A9rA  A9MH[]A\A]A^A_    AUELH    H           XH[]A\A]A^A_    HEL   [H    ]H    A\A]A^A_        ATUHSL   HI<$    HH    I<$    []A\    H       1    ff.         AVAUA   ATUHSL   x	A   HGx Ąu5I>    DI>HD    I>    []A\A]A^    H       H        ff.     @     USHH   eH%(   HD$1H] H    HE@1HHL$D$P    H    HD$eH+%(   uHH[]                 AUATIUSHL   eH%(   HD$1Im H    H    H    upIE@HL$HD$pP    \$u)H    HD$eH+%(   uIH[]A\A]    LH           H    빉H       L        f         AVIAUAATAd   USHH   eH%(   HD$1HL$D$    HE@H} P-p,    L$tx   <   Et	D8   HE@8X,t:H        L    HE@H} HL$P-p,    D$         d       At:HE@H} HT$p-    T$ÅiH       L    @HU@18Z,tYHT$eH+%(   u_H[]A\A]A^    H       L       ĸ   H       L    H       L            SH   H       H{h    H       H       H{x    H   [        AVAUATIUHSD  Lm
     L    HHw  @    HxLpH    H        HE H+   ID$H   H    H    HA    E    H       M1H    LH    Aą    [D]A\A]A^         H    D  D  H        HHS0HPHS8HPHS@PSHPSIP$SpP%SqPfSJPSLP SPP&SrP'SsP(StP)Su@*CvH   H   H   H   H   Hǃ       A@     ATLgUHLSH    D      H]xH    H{    H[H          P  xƃT       P         H    tpH    H߾   @       L    KxcxH[]A\    HUPHt"H    H    D$    D$3HU ظH       H    cxP  y1    P      T   tދP           ATUHSH   H0
t[HA       H    A]  A   EtpDH       H    [H   ]A\    H       @    EC
(      H   H      ƃ  []A\    H       H    (      H   H    ƃ    []A\    H        H    H      EpP  w?H   H0  Hq   n  tI0  t
LfLƃ  H  []A\    HHH       H    H  Ht]ƃ  Hh([]A\    HH[]A\    HIH0  H|H|
H8  HH)H)։H\
  L     Ep   H   9HGs1     TfATHI|$HH  HLILI)B L)HUpH   H    fI0  LL  TATrf.         H   H    s    H5    H           ff.     H       1    ff.         HWxH    s    H5    H           ff.          H   H   s    H5    H           ff.         SHGxH    HXH    HCx   cxK(   1HHTHtB	tHP919~HH|       P  y1[    1    P      T   t݋P      HH            1[    1    ATUSH   H    HZH    f
   u

     H   1HE@HuhH} H    ufHE@HUh@,@uH[]A\    @L  @   HH        L    @  LH    H[]A\    HH           H[]A\    ǃ
      Iff.         AWAVIAUATUSHH4$H   L   ADHE0EAI} DH     I} DH    I}     u)DE E9rDEH$H[]A\A]A^A_    AH       LH        EH       LH        H    H           f         ATUH
  SI    HExHt:   D   
  9B؉    H   Ht   1[]A\    H}x    H       11҉      HUxH   ff.         AWAVIAUAATAU1SHHeH%(   HD$1DDLH~u'HT$eH+%(      H[]A\A]A^A_    AH    H߉       L   I?    I?1Ҿ   HL$D$    I?D$D$    D$u\gH       H        fD      AWAVAUIATAUSHH   H4$    <  {q Et+  {p t     H    E)     @H    L            Ke      D#CX9    A   H    H       L    H4$   DH{x       D        D   B9sSHs\)Aщ   D   ;   2  DCeSHDSIs\DspDfA9  A)E[  A9  D$    E1QH       @L            D9   D$   D   E1D   H    H       L    {p @  sH@     11HH9uJA        u	A     HsxLL$̋L$A4  AǍBHHH#4)A4  HID   SX       Se  T$1Hǃ       ǃ       f      E   H    H       L    H4$   DH{x       D            q9   ȉ      `H    H        L    E1AH       LH        H4$DLA  =AE1HD[]A\A]A^A_    f      q9^SHK\)M   D9   aKe   #CXME1v   EtfA)9E[D$    AE1Yf   sD   D   EAD$ DE19Af9 JfD      AWAVIAUATUSHHDJpL   @L   A   fE$fAW@      Ƈ  D9s	A	  vMH       HH        El$p$A0MA  EDLH`t=@8  @u   Dƃ   A	T$XEl$eH[]A\A]A^A_    @uAL$e   A#T$X  H[]A\A]A^A_    L   H       ECXIC@L\$DDD$HD$    DD$L\$DA#S`   ASe   A{X   փA!AKeAsXAfA;K\u
HD$HAKeA{q ttTѾ   H    H    $0ME1DLHƃ   H[]A\A]A^A_    ACeAQ1EH       HA    XH    H    H߉$       $ƃ       UH        SHHeH%(   HD$1    H   H;    H;1Ҿ   HL$D$    H;l$    HD$eH+%(   u
H[]                 UH        SHHeH%(   HD$1    H   H;    H;11HL$D$    H;l$    HD$eH+%(   u
H[]        ff.         ATUHSHH   eH%(   HD$1D$HC@H;D`    H;DHT$    H;A    D$u(1EUXHT$eH+%(   uH[]A\        f         AVAUIATIUSHH   eH%(   HD$1Ls@AnD$H;    H;HT$    H;    D$uoM   A^
D$I}     I} HT$    I}     T$u/	fA$HD$eH+%(   uH[]A\A]A^        ff.         USHH   eH%(   HD$11fD$HtHH}    HmHt}( uHD$eH+%(      H[]         @HH        HHt$tHD$eH+%(   uoHH[]    f|$uـ   uH    U(t;1H| t$19}HH\H       H    HH9~H1    @     AUATUSHL   eH%(   HD$11fD$   HA1Ht$Huf|$tFd       A9uA}v t	f|$t&HT$eH+%(   u.H[]A\A]    A}v tڿd   D$    D$1    ff.     @     AW    AVAUATUSHH0  L   H|$H|$(Ht$eH%(   H$(  1D$     HH  HIH    E1       H        H    H   H;    H;1Ҿ   HL$$D$$    H;    I?    Lt$D$     1H|$(HA,  A  E  A0  IG@D$   H2Dq
EH    H|$(    HcHD$(HA8rUD|$ I?HT$ D       A   D$ 2  HH    H    A8sH|$HL$(H       A    H\$H    HT$(H    HHH\$AI?    H|$   H        D$L$)H$(  eH+%(   -  H0  []A\A]A^A_        A$DHH    L$    T$ HHŅu?T$HH    H    D8D$IW@H\4@t$E ERR D$ 111A	   A	   NIW@H    H|$(B3Z4HDt4       D$Hl$4D$)IG@D$   H0D@1Ed   XA     Hu    ff.     f    AWAVAUATUSHH8eH%(   HD$01Hw  r4Hs   HD$0eH+%(     H8[]A\A]A^A_    L8    I$       I$`  H  L    }s   M$   D$(A~s   H=    Ht    H        H        L            I$   H}     H} 1Ҿ   HL$,D$,    H}     I>       LH        1LthIF@Ll$(H.@/L$AωD$9  d       I>LD    DL$(EtH       L    t$(  I>    L    L    HL8I$   LH+          H    H}     H    t=    D  HD$0eH+%(     I$  H8[]A\A]A^A_    L        I$   D$(    }r 6HD$    I    I} Ht
    IE     AE    II    uH        L    M$   I}     I} 1Ҿ   HL$,D$,    I}     H}        LH        1L  HE@Ll$(H} Lp.    L$(  8  D$    H@H    HD$ t$Lm  HE@E1E1p.H} Lt$    T$(t$+  DAA	A uE  HL$E   LH        A~    IHD$LxDpM  HL$K7   LH    HD$Dq    AƉD$t$LD$   HE@Dp.@/D$D9s  IAD9t$  H} LD    AD$(u<HD$I9rH       L    HuH    H        5H       L    H}           d   A    D9|$,      H    IHe  D-    H       LH    H              AŉD$t$LD$D$9D$b  AAD9l$N  I>HT$(D    ADD$(EII9rǋ    @      HHL=        HL    L    D    H-    LN|  @      Ha|$Lt$M   LH    M+FL    LHHD$H9D$ H       L    MD$(LH           H=    Ht    H                H       L    |$lLMH    L+    H       D        1   H    |$(L    8H       L    M$   HE@I} Dp-    I} D   HL$,D$,    I} Dt$,    Dt$(EH       L        H       L    
    HH       L    f.         AWAVAUATUHSHH   eH%(   HD$1CJL3H{Lk0f  L    H;       LA    E   H{8 tML   HC@D$I?Dp	    I?DHT$    I?A    HC@D"p
D:p   LLu8    HPH     LL    {s H    H    HEЀ{sH    HD$eH+%(   u5HD[]A\A]A^A_    H       H    Lk8g    f    AWAVAUATUSHHH   eH%(   HD$1Ǉ      }p   Ǉ     HE@Dh#D$H}     H} DLd$L    H} A    DT$E  L   HE@I} Dp#    DI} DLD$@    I} Dt$    E`  HE@L   Dh(D$I>    I>DL    I>A    DL$E  L   HE@AI?Dp(    I?ALDD$    I?Dl$    E  HE@L   Dh)D$I>    I>DL    I>A    DD$E  L   HE@AI?Dp)    I?ALDD$    I?Dl$    E:    H       @H    HE@L   DhD$I>    I>LD    I>A    T$  L   HE@I>DxD
h    EI>LDDD$    I>    HE@L   Dh"D$I>    I>DL    I>A    D$U  H   HE@AH;h"    H;ALD$    HD$eH+%(   0  H;H[]A\A]A^A_    HE@DhD$H}     H} DLd$L    H} A    |$   L   A	  HE@DhD$I>    I>DL    I>A    t$ufAL   	  HE@DhD$I>    I>DL    I>A    L$uA    HD$eH+%(   uH[]A\A]A^A_        @     AUATUHSHH   eH%(   HD$1D$HLc@H   HC@H;Dh    H;HT$D    H;    H HCT    A$1Ҿ
  CdAD$CeAD$Hǃ       C`1f   CIƃ      Hǃ       f   ƃ      A|$    HChH   {I
  H    H   H   {I
  H    H   H   SPsLH   u5Ct0  Cu  1HT$eH+%(   uRH[]A\A]    {L   t	{P   uƅ        H   .tƃ    ƃ        H{h    H       zH{h    ff.         ATUHSHH   eH%(   HD$1H;    H;    H;       H;    CJD$f  HC@H   D`H;    H;DHT$    H;    HD$eH+%(   uHH[]A\    ff.         AWAVAUIATUSH  HHeH%(   HD$@H   HHD$H@@HD$    E  HAƅ   H    E  [  A@   H\$HD$D$<    H@hS%K$	A   ؁   f9P  G  H       @Lۉ          HH  H    E  MpLH\$<H   A   H
  \$<؃  HLA   H|$H\$HGhKS	рp tSs0		H\$H    @   LKX    A   t$CX#C`tH    @   L    Aƅ   HD$A  xq t7{  H\$HD$HSh@CXCXL  A  E  H    @   L    Au)1HT$@eH+%(     HH[]A\A]A^A_    H|$H\$HGhKS	рp 
  HD$H    @   LHT    D|$7I   H       LkTLc@    {p   A#D$  {q DCTt
A	  Dsd   DDt$#Dp  AAFE!CdDKT:CHuA$Cd   ADLH        C46H|$L|$G!IOhHG L   @HD	H    DEA$       A   f9	  A    tA9   	  H       @L    M   D$<    A|$q   |$#   A$      A|$T  H    H       @L    A$     A$   A9$     D$$   D$(    H       L    A|$p   At$H@&	  A$   11HH9uPA$   A  A$   u	A  A$   M   T$I$   I?0IȉL$    T$I?HދL$     I?    '	  A$   M$   E1  l$0DDt$,Ll$bAE |$9   H|$  PDL$EH    H|$          H    A[AE IA;$     EwA  I$   Dt$<L,f\$ A} \$    HH   Au H    EJHD$  AE A
LD|$9,H   T$ L    t$H    H|$DH1A   Aƅ   A@mL$H|$EH           AE IA;$   Dt$,Ll$l$0D|$(1IǄ$       AǄ$       fA$   E   ADH    L   @          D\$#HD\$H  H    KpD\$LE  L|$<H   ELJ  A   T$<u	
  HLpDT$$EH       @L    A$   A$     D|$#A|$p fE$        DA$   A$   I$   H    A$   I$   ,A$   4AD$_H       @L    A$    F  ID$@@A#D$TqH    H       @L    A$   #  A$      A9$   sD$$    D$(   k1H       @L    A$   A$     T$#A|$p fA$        DA$   A$   I$   H    A$   I$   ,A$   HA$   A9$   tRE\$dAt$HA$   ET$IA|$\ED$pDfA9  D)Ef  fDA9  H    H       @L    A$   D$$    D$(    ?A$   ADH    L       D\$LE  L|$<I$   EL]	E$   LMD|$7Et Iǆ       1Aǆ       fA   AH       L    M   D$<I<$    I<$1H    I<$    t$<  H       L    M   I<$    I<$@1HD$<    I<$l$<      H       L    I   D$<H}     H} H1    H}     L$<+  H       L    AH    H        L    D$$     A|$p A$   D|$#fE;$      HA|$p A$   L$#fA;$      HA   1LDCTH    E1    1D$# H    H       L    D$$    dEtf)9!D$$    D$(    {   A$      A$   >Ss0		4Aƅ   1A9DH       L    L
      H           H    H    H       L    I @H       @L    BH       @L    H       @L    cMILD|$7E   Et Iǆ       1Aǆ       fA      L    WA$   D|$7MH\$<4LH       H           H        ff.          AWAVAUATIUSH8eH%(   HD$0H   HD$Lh@HFHD$ FD$  L$H       @    	  
  H=        HD$H  HD$H8    D$    D$    $    M$   1M0		         
       dtAM$   IG@XD$,I>    I>HT$,    I>    D$,tH       L    $   LH        $HD$H8    H|$    $HT$0eH+%(     H8[]A\A]A^A_    L$9$  Ad   lM$   A]D$,I>    I>HT$,    I>    D$,5  f	         
       A0  I$   AmD$,H;    H;HT$,    H;    D$,Q@;   L$AH        $f	O  ˃ub4$D$H|$)9Fȉʍ   HD$HD$ H    D$    T$A$  LHt$膾ux$D$D$  AH    L1۾       H    L$AȾ       $$H       L    1D$L$   LH        I$   H;    H;1Ҿ   HL$,D$,    H;l$,    H       L    s$Dþ   LH        SH           Z$H       L        /    H        H    L    H    H    H        H    LA    H    L        HUPHt@H    H        H    H    1    H    H    HU H            [H]1H    A\    HT$0eH+%(   uPH8H}H    []A\A]A^A_    HD$0eH+%(   u%H8H}H    []A\A]A^A_            H        H        mwifiex_sdio_card_reset_work strcpy                             mwifiex_sdio_card_to_host_mp_aggr               mwifiex_sdio_card_to_host       mwifiex_process_int_status      mwifiex_write_data_sync         mwifiex_host_to_card_mp_aggr    mwifiex_sdio_host_to_card       mwifiex_deaggr_sdio_pkt         mwifiex_sdio_probe              mwifiex_sdio_suspend                                                                                                                                                                                                                                                   )           -           5           9           E           Y           I           A                                                                    @   @                                                                                                                                                                                                                                                                                                                                                                                                      @   @                                                      @   @                                                      @   @                               \  
X\]`abdefhij                                 lm\        
X\]`abdefhij                                 \  
X\]`abdefhij                                 \    
X\]`abdefhij                                 `aP    ڸ	

ʹ LPTUXY\]                                    @A0   `a?   xyz@    	l              	`(048<                                                                                                                                                                                                                                                                                                                               cmd: mp_end_port %d, data port mask 0x%x
       %s: error in blk_size,	blk_num=%d, blk_size=%d, total_pkt_len=%d
       %s: error in pkt_len,	pkt_len=%d, blk_size=%d
  %s: not allowed while suspended
        The ctrl reg was changed, re-try again
 mwifiex_sdio: info: vendor=0x%4.04X device=0x%4.04X class=%d function=%d
       required compatible string missing
     mwifiex_sdio: cmd: %s: suspend: PM flag = 0x%x
 %s: cannot remain alive while host is suspended
        cmd: suspend with MMC_PM_KEEP_POWER
    info: --- Rx: Aggr Data packet ---
     info: --- Rx: Data packet ---
  info: --- Rx: Cmd Response ---
 resume: invalid card or adapter
        3mwifiex_sdio: int: func=%p card=%p adapter=%p
        %s: invalid packet, nb=%d npayload=%d
  host_to_card, write iomem	(%d) failed: %d
      info: %s: tx aggregation disabled
      info: %s: more packets in queue.
       info: %s: Last packet in Tx Queue.
     data: %s: precopy current buffer
       data: %s: send aggr buffer: %d %d
      data: %s: send current buffer %d
       data: %s: postcopy current buffer
      invalid data port=%d cur port=%d mp_wr_bitmap=0x%08x -> 0x%08x
 data: port=%d mp_wr_bitmap=0x%08x -> 0x%08x
    vzalloc devdump data failure!
  == mwifiex firmware dump start ==
      Start %s output, please wait...
        == mwifiex firmware dump end ==
        info: SDIO FUNC1 IO port: %#x
  %s:Received wrong packet on cmd port    info:  <--- Tx DONE Interrupt --->
     info: cmd_sent=%d data_sent=%d
 data: port=%d mp_rd_bitmap=0x%08x
      data: port=%d mp_rd_bitmap=0x%08x -> 0x%08x
    info: no more rd_port available
        info: %s: no aggregation for cmd	response
      info: %s: rx aggregation disabled
      info: current packet aggregation
       info: %s: aggregated packet	limit reached
      info: do_rx_aggr: num of packets: %d
   skb allocation failure	drop pkt len=%d type=%d
 drop wrong aggr pkt:	sdio_single_port_rx_aggr=%d	type=%d len=%d max_len=%d
     info: RX: port: %d, rx_len: %d
 single skb allocated fail,	drop pkt port=%d len=%d
     drop wrong pkt type %d	current SDIO RX Aggr not enabled
        card_to_host_mpa failed: int status=%#x
        firmware image not found! Terminating download
 info: downloading FW image (%d bytes)
  poll card status failed, tries = %d
    FW download with helper:	poll status timeout @ %d
      dev BASE0 register read failed:	base0=%#04X(%d). Terminating dnld
      dev BASE1 register read failed:	base1=%#04X(%d). Terminating dnld
      FW dnld failed @ %d, invalid length %d
 FW dnld failed @ %d, over max retry
    CRC indicated by the helper:	len = 0x%04X, txlen = %d
  FW download, write iomem (%d) failed @ %d
      info: FW download over, size %d bytes
  drivers/net/wireless/marvell/mwifiex/sdio.c     cmd: %s: suspend: PM flag = 0x%x
       info: vendor=0x%4.04X device=0x%4.04X class=%d function=%d
     mrvl/sdiouart8997_combo_v4.bin  mrvl/sdiouartiw416_combo_v0.bin claim irq failed: ret=%d
 enable host interrupt failed
 SDIO Write ERR
 SDIO read err
 SDIO write err
 Fail to pull ctrl_data
 &x->wait failed to enable function
 add card failed
 suspend: invalid card
 adapter is not valid
 cmd: failed to suspend
 info: --- Rx: Event ---
 unknown upload type %#x
 device already resumed
 read mp_regs failed
 int: sdio_ireg = %#x
 %s: buffer is NULL
 %s: read iomem failed: %d
 write CFG reg failed
 data: mp_wr_bitmap=0x%08x
 %s: no wr_port available
 %s: payload=%p, nb=%d
 event: wakeup device...
 cmd: wakeup device completed
 info: SDIO func num=%d
 SDIO register dump start
 SDIO Func%d:  SDIO Func%d (%#x-%#x):  (%#x)  %02x  %s
 SDIO register dump end
 dump %s done size=0x%x
 firmware dump failed
 SDIO read memory length err
 Firmware dump Finished!
 %s_SIZE=0x%x
 Vmalloc %s failed
 Allocated buf not enough
 %s done: size=0x%tx
 SDIO HW reset asynchronous
 reinit failed: %d
 SDIO HW reset failed: %d
 cannot set SDIO block size
 info: rx_len = %d
 %s: failed to card_to_host int: DNLD: wr_bitmap=0x%x
 int: UPLD: rd_bitmap=0x%x
 data: mp_rd_bitmap=0x%08x
 info: RX: port=%d rx_len=%u
 invalid rx_len=%d
 info: %s: not last packet
 info: %s: last packet
 read CFG reg failed
 info: CFG reg val = %d
 info: write success
 info: CFG reg val =%x
 mwifiex_sdio mrvl/sd8801_uapsta.bin mrvl/sd8987_uapsta.bin mrvl/sd8887_uapsta.bin mrvl/sdsd8997_combo_v4.bin mrvl/sdsd8977_combo_v2.bin mrvl/sd8897_uapsta.bin mrvl/sd8797_uapsta.bin mrvl/sd8787_uapsta.bin mrvl/sd8786_uapsta.bin                                                       firmware=mrvl/sdiouart8997_combo_v4.bin firmware=mrvl/sdsd8997_combo_v4.bin firmware=mrvl/sd8987_uapsta.bin firmware=mrvl/sdiouartiw416_combo_v0.bin firmware=mrvl/sdsd8977_combo_v2.bin firmware=mrvl/sd8887_uapsta.bin firmware=mrvl/sd8897_uapsta.bin firmware=mrvl/sd8797_uapsta.bin firmware=mrvl/sd8787_uapsta.bin firmware=mrvl/sd8786_uapsta.bin license=GPL v2 version=1.0 description=Marvell WiFi-Ex SDIO Driver version 1.0 author=Marvell International Ltd. srcversion=CE0BD69A924250344F160D6 alias=sdio:c*v02DFd9141* alias=sdio:c*v02DFd9149* alias=sdio:c*v02DFd9159* alias=sdio:c*v02DFd9145* alias=sdio:c*v02DFd9139* alias=sdio:c*v02DFd9135* alias=sdio:c*v02DFd912D* alias=sdio:c*v02DFd9129* alias=sdio:c*v02DFd9119* alias=sdio:c*v02DFd9116* depends=mmc_core,mwifiex retpoline=Y intree=Y name=mwifiex_sdio vermagic=6.1.0-37-amd64 SMP preempt mod_unload modversions                                                                                                                                                                                                                                             (    0  8  @  8  0  (                     @  H  @  8  0  (                     @  8  0  (                                                                         (  0  (                   0                (          (                       (  8  (                 8                         (  0  @  0  (                   @                                 (  0  (                   0                     (               (                                                                                                                                                                                                                                                    (    0  8  @  8  0  (                     @                                                         (    0  8  P  8  0  (                     P                         (    0  8  H  8  0  (                     H                         (    0  8  P  8  0  (                     P  8  0  (                     P  8  0  (                     P  X  P                (          (                (          (                     0               0                         (  0  @  0  (                   @                (          (          (                       (  @  (                 @                         (    0  8  h 8  0  (                     h                        (    0  8  p  8  0  (                     p  8  0  (                     p                         (    0  8  H  8  0  (                     H                         (    0  8  H  8  0  (                     H  8  0  (                     H                       (  8  (                 8                     0               0                         (    0  8    8  0  (                                                  (    0  8  p  8  0  (                     p                  0  (                   p  8  0  (                     p  8  0  (                     p  H                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Qȸ    sdio_release_host                                       {    sdio_disable_func                                       R`    sdio_set_block_size                                     MqT    mwifiex_init_shutdown_fw                                .4    devm_kmalloc                                            S>    skb_put                                                 }    mwifiex_drv_info_dump                                   }    sdio_claim_host                                         ѩs    sdio_register_driver                                        memmove                                                 6    queue_work_on                                           e1    mwifiex_upload_device_dump                                  mwifiex_enable_hs                                       _     mwifiex_remove_card                                     d"z    mwifiex_deauthenticate_all                              A`    __init_swait_queue_head                                 BU    mwifiex_handle_rx_packet                                r    mwifiex_reinit_sw                                       8߬i    memcpy                                                  z    kfree                                                   	    enable_irq                                               ]    usleep_range_state                                      4    _raw_spin_lock_irqsave                                  n    __dynamic_dev_dbg                                           fortify_panic                                           m    __fentry__                                              "{    sdio_f0_readb                                           ~    _printk                                                 V
    __stack_chk_fail                                        "oU    sdio_release_irq                                        I@    vzalloc                                                 _    skb_queue_tail                                          D1    mwifiex_dnld_fw                                         :    sdio_set_host_pm_flags                                  z    sdio_unregister_driver                                      sdio_readsb                                                 mwifiex_alloc_dma_align_buf                             9I    _dev_err                                                !`    skb_pull                                                    mwifiex_shutdown_sw                                     p\    _raw_spin_unlock_irqrestore                             =,     mwifiex_add_card                                         @%    wait_for_completion                                     q9T,    _mwifiex_dbg                                            9[    __x86_return_thunk                                      @(    irq_set_irq_wake                                        ֓    complete_all                                            e,    skb_trim                                                h    sdio_get_host_pm_caps                                   o8E    mwifiex_prepare_fw_dump_info                            ?<    sprintf                                                 zC    mwifiex_main_process                                        vfree                                                   jz    mwifiex_process_sleep_confirm_resp                          __const_udelay                                          @    __dev_kfree_skb_any                                     KM    mwifiex_disable_auto_ds                                 eb,    __dynamic_pr_debug                                      -    cancel_work_sync                                        ~    mmc_hw_reset                                            $G    sdio_claim_irq                                              sdio_enable_func                                        {nD    sdio_writesb                                            $,W    mwifiex_cancel_hs                                       wX    kmalloc_trace                                           SMu    strlen                                                  h    vmalloc                                                     msleep                                                  E:#    __kmalloc                                               -    kmalloc_caches                                          Ӆ3-    system_wq                                               o<    disable_irq                                             yv    sdio_readb                                              
    sdio_writeb                                             zR    module_layout                                                                                                                                                                                                                                                                                                           ITCM                   DTCM                   SQRAM                  APU                    CIU                    ICU                    MAC                    EXT7                   EXT8                   EXT9                   EXT10                  EXT11                  EXT12                  EXT13                  EXTLAST                        DUMP                                                                                                                                                                                                                                                                                                                                           
                                                     u                                                     "                                                                                                     mwifiex_sdio                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             GCC: (Debian 12.2.0-14+deb12u1) 12.2.0  GCC: (Debian 12.2.0-14+deb12u1) 12.2.0         T  T  E         
9             X    K          
Y A=      X= $       e= $      n= +     }= +      =    0   =      = $       = $      = $      = +            
vP =      9X	 zP     <    X          
^ >      >    )> 
   =>    O>     e>     w>    >     >    >     >     >    >              ? $        $      y #               #? $       4? $       $               ; a     bT b     >?          c            
{P [?      s?     ?    ?    ?    ?    @    @      5@     P@    i@    @      & $         K       K                 O-      4&  Q   @   @        $       b  k @              i        @              d%  O-  @     O-     @ O-     @ O-     @ O-  @  @ O-    @ O-    @ O-      A m @  A #     F;
 Q     A Q      "A Q   @  1A Q     CA Q     UA Q      dA Q   @  lA Q     yA h   A K            j        ]        _ A      k  %       c  g     A   p   A O-          @   A O-     A O-     A $       P @  ( P   A $     A K     B n    B $   @  #B p `  )B K      r   3B o    <B $   @         e IB       %      \B *   @   kB *   `   yB *      B       B &       &      B &      B $      B $      B $      B $     B f     &   @  B O-    B $     B O-     C $   @  C O-    5C $     PC      _C &      nC q @  ~C      C -       C 	  @    K   p   C      C *       C *        	  @   C K   p   C K   x   C K      D      
 P         @    *   `    aP    # O-     & Q       &   @  "D K   P  ]  *   `  0     5D 
  @  z 	    l 	     	    P P @        P  t   :D K   @  CD K   H  JD K   P  TD *   `  bD w   Ǖ P          u sD   (    P            Ǖ W	  @  D      D        M z @              {               x        y        s        v D      D     D    D    D       E        E *   @   %E       ,E *      3E   $    *               GE       %  D              ZE              iE $   @   qE $   H    $   P   zE $   X   E      	 *       ]  $       iE $   (   qE $   0   E $   8   D{ *   @   E $   `   m -      E      E     E    E    E    E      E $       F $      F +     &F       )      <  $         $   (   =F $   0     $   8   FF  @                     PF   
   cF $       lF $      ]  $      `X	 #      tF &       ~F &   0   F &   @   F   ,
  F      F  @	  F  @)  F  @I  F ]   @i             ]      J              ]         F      F $       F $      F $      G      G K       -G K      ;G      OG *      XG    @   ( *      [ $      `G      lG     G    G    G   H   G $       G $      G $      ơ  *       G    @   G      G $       H $      ơ  &        L      
H   (  $ $       #H $       &       &       3 $   0     @   ,H $   `  ;H $   h  EH $   p  QH &     _H &       &     iH &     rH &     H    H     ~ qP `   tP 0  0 M    H *      H *      =F $   @  H $   H  H  P  z 	  	                               &         H        *       ^  *       H      H $       H $      H      1Q  &       "  &      I      (I  0            7I    II    _I        W       4&  Q   @            sI      {I      I   (   I              I      I $       I $      I $      I +     I +  (   I   <   c  +      ơ  +     J +      )J +  0   6C  +  @      P              $      2   2J      6C  +        L     DJ   *   ] *      6C  +  @        P   WJ   *   ] *      6C  +  @        P   iJ   2   ]        6C  +             |J      J *      6C  +  @        P         2   J      J      J      J      J      J   @   c  +      4&  +     z 	      
 $   P   s  $   X   )J +  `   \  p   J   B   1Q  +      J     K   >   1Q  +      J     $K      <K $       4&  $      GK $      OK $      ZK +      kK +  0   K      <K $       4&  $      K +     K      K      K      K      <K $       4&  $      K +     K $       L $   (   L $   0   L      <K $       4&  $      5L $      BL      [L      hL      uL      <K $       4&  $      L $      L      L +      ϑ $       x $   (   L      I $       I $      L $        $      L *                      2             ~       L $      L      <K $       4&  $           M      !M      *M $   0     $   8   6M $   @     $   H   FF  P   FM      L $       \M $      jM $      wM     M +      M +     M +      M 1  0                     M      d         b                v    @          
         M     M $       M        M  @   M  X   Z  g    N $   @  { L    JK      N      :"       P P @    	    	      N *      $N $      1N &   0  CN D  @  *c k      ON P @  VN ]     _ ]     _ ]    
  hN ]    
  tN ]   @
  (c S  
  N Q  
  N S    N Q     N S     N Q  @  N K   @  N K   H  N K   P  N K   X  N K   `  N h   	O *    O *     +O $     :O &     FO &     WO K     qO K     O &       *      O  @  O &   `  O *     O *    O $     O *     O      O i @  O $   ^  O $   ^  P $   ^  P $   ^  'P $   ^  ( &   ^  5P j ^  >P j  _  GP *  @_  XP &   `_  fP I  _  pP `   `  {P *  @a  P `   a  P *   b  P `   @b  P *  b  P *  b  P    c  P ]   c  P *   c   Q &    d  Q ; d  Q &    l   *    l  #Q &   @l  6Q &   Pl  GQ &   `l  YQ &   pl  lQ $   l  uQ $   l  Q $   l  Q k l  Q $    m  Q 7 m  Q 8 `m  Q &   m  Q *   m  Q $   m  Q &   m  Q &   m  R &   m  R    n  (R &   @n  :R &   Pn  MR $   `n  [R $   hn  jR &   pn  vR &   n  R $   n  R &   n  R &   n  R *   n  R I   o  R  @p  R $   pp  R $   xp  R &   p  S D  p  *S V q  5S *     HS $     [S $     pS $     S $     S    S l   S *     S     S $      VV  *     S ~   @  S &   `  S L    S     S *      T *      %T *   @  =T *   `  UT *     lT *     T ]     T      T K   @  T K   H  T $   P  T $   X  T $   `  T $   h  T $   p  T    U $     U K   ȿ  3U      =U K     FU m    QU *   @  cU    `  nU K     xU $     U $     U $     U $     U $     U $     U K     U $     U K     	V K     V |     n @  V      )V K     6V O   ?V k      LV    @  XV R    eV K   @         
         zV       V           
                È V   8  *c ǈ     :"    @   V Ȉ   b       d       b              V       V    @  V    `         V      l $      v $     V       P     @  V ň   V        ň     {     @        H       P          Ĉ V .  p  ,  و     :"    @   W *     W      c              E       W       W K   @  ,W K   H  :W    `  EW      QW      \W      hW      rW $      ~W D     W D    W      W   `  m Έ `  
 ψ @  W Ј   W ш  $  W ҈ @$  W ӈ $  W Ԉ @%  W Ԉ %  W    %  W ]   %  W Ո  &  W ֈ `&  V ڈ &  W  (  l $   (  v $   (  V    (  P      )  V ň @)  W    )  X    )  ܙ    )  b    *   ۈ @*  X     3  $X S  @3         ƈ         0X      V  ?        ʈ @     ̈      ͈    E                    
            ʈ        ˈ         <X 	     DX        KX        b    `   BP        UX       4       [X       aX       9       gX   ,   oX        yX       X       X        X    @       `   X       X       :W       X       X       B       X    @ X    A X    B X    C Y    D Y M     Z  $       Y $      'Y $      ;Y $      GY $       QY K   (   iY $   0   uY $   8   Y $   @   Y $   H   Y $   P   Y $   X   Y    `   Y       Y       Y       Y $      Z       Z       [    @  ,Z    `  :Z      KZ      YZ      hZ      uZ K      Z "   @  Z            Z K     Z K     Z      Z K      Z K     Z K     Z       Z    @  [    `  [ K     /[ K     ;[ K     C[ K     P[      aX *    [[ $      p[ $     [ $     [ $     [ $      [ $   (  [ $   0  [ $   8  [ $   @  \ $   H  \ $   P  )\ $   X  ;\ $   `  M\ $   h  ]\ $   p  s\ $   x  \ $     \ $     \ $     \ $     \ $     \ $     \ $     ] $     ] $     5] $     K] $     b] $     s] )    ] $      ] $     ] $     ]       ]      ]        ]       ]       ]       ]            (   
^      ^        ^        "^    @   /^      Z        >^        J^    @   W^    `   d^       s^      ~^ $       '  $      "  &      Z  $       ^ $   (   ] $   0   ^ 	     ^        ^        ^    @  ^    A  ^    B  ^    C  ^    D  ^    E  ^    F  ^      b                "         X    @   _   (     -       _    @   V    `   _ K      !_       +_ N            |8   @   ,       )  
   4_     ;_    @  A_    `  G_      N_ *     X_ *     g_ *     t_ *         @  _ *     _ *     _ *     a *     _ *      _       _  @  _    `               _      _      _      `       4  *       @  `     !`     )`     9`     D`     Q`     \`     j`     }`     `     `       `       `    @  `    `  `      ` I    ` K      *c ǈ @  %  D    a 
 @  	a      a 	   
 R      a    "     #  -a  #  5a    #  ?a     $  Oa Q  @$  ]a K   @%  na ]   `%  a  %  { a  %  a K    &  *k  @&  b   &  a   '  a    @'  a    `'  a    '  f *   '  a  '  a k    (  a    @(  a K   `(  a K   h(  a K   p(  b  (  4%     ,         ؈                              ׈       b 	  8   ~ *       b  *        D  @   ]        ]               b         ވ @  (b    ,b   H   5b        @b        Mb    @   c"     `   Sb               ]        \b             (b  @  &      ib      ,j     rb (             ݈ ~b      b      :  @     ވ          %  F     b F     %      b  @  ,  و   b K                  ߈        ܈       
                 b                b        b    @   b    `   G    h   b    p   A    x   b       b       c       c K       c      -c     Ac    Qc    ec    uc    c    c    c    c    c 	   c 
   c    d    d 
   (d    ?d    Kd      Xd      ad  @         id     xd     d  @  d    d    d     d  @  d    d    d     d  @  d    e    &e     6e  @  Ee    [e     qe     e  @  e    e           
       
        و                           
        و                    
       و                    
        و                            
       و               
        و                      
        و               
        و     ǈ               
       و                    
       و     *                 
       و     ǈ               
       ǈ                                           
       ǈ                       e 	  H   e      e  @   e     e     e     e  @  e    f    f            
       
K       و                    2f      ;f        Bf K       Rf k   @   _f      jf zX      of zX  @   uf      T                 }f                       	 f               
                            *         f       [         { *   @   f *   `   g  *      f &        $      ` *      f *      f 
  8   [         { *   @   f *   `   g  *      f &      f 	     f         $   @  ` *   `  f *     f 1  D   g $       g $       g $      +g $      6g $       ?g $   (   Og $   0   `g $   8   tg $   @   g $   H   g $   P   g $   X   g $   `   g $   h   g $   p   g *      g $      g $      	h $      h $      #h $      /h $      ;h $      Hh $      Uh $      ah $      mh $      zh $      h $      h $     h $     h $     h $      h $   (  h $   0  h $   8  h $   @   i $   H  
i $   P  i $   X  i $   `  1i $   h  >i $   p  Li $   x  Xi $     mi $     i $     i $     i L           
 i      @       W  @   T F     {      i      S     i $   @  i $   H  :O &   P  i *   `  j *     j *     (j *     5j &     Aj *      Sj $      `j $   (  mj    @  uj K     j K     j K     j K     j K     j K     j K     j    j    !  Q    	              j   0   {        i    @   S     i $      i $      :O &      i *      j *      uj K      j K   (  j K   0  j K   8  j K   @  j K   H  j K   P         
          k     k    *k      >k    Nk    `k    rk    k    k     k @   k    k    k    k    k    l    !l    2l    Dl     Ul    @fl    wl l      l *       l *       l *   @   l *   `   m *      m *      +m *      :m *      Pm *      fm *      um &   @  m &   P  m  `  m    m &      m    m &   `  m  p  m &     m (    n (      n (  `  /n (    Dn $     Wn      on     n    n    n    n    n      o *       o      %o     4o    Go    Zo    io      |o     o    o    o      o *       o *       O  *   @   o $   `   o $   h   o      o $       o $      p $      p      p `       #p     4p &     h      @p      Lp *     ]p '    gp (   {p *     p )    p     p ]     p ]                 $                                           p      p $       p $      q $      q $      q $       *q *   @   >q $   `   Oq *      _q      <K $       4&  $      qq      !M        , 0              $         q      q *       NU    q -  P  T 	       P 0   k *   @  q (   `  $ *     M *     QH &     q $     q *     A M     q M  p  q &     q -      T  -   @  q    q    r &      r    #r $     /r /    :r &   @  Hr 0   Tr &     cr       sr &   @  r      r &     r 1    r &   @  r 2   r &     L 3    r &   @  r $   P  r 4   s &     
s 5  	  s &   @	  #s 5 	  /s &   	  ;s     
  Fs *   @
  Vs $   `
  as $   h
  rs $   p
         qP        [        tP        \                +        - s   h  s .     s $   
  s $   
   $   
  s *   
  q M  
  s   
   s &       K  &      s &       t $   0   t $   8   't &   @   3t        &         &      Ht      ơ  *       G *       , *   @   Xt    `   et      $ &       M *       }t &   @   t $   P   t      S ~       t $      t <                d    S   t       &        &      # 1      t      t $       t   H   m -       
 P @   u      u     =u    [u      vu     u    u    u    u    u    v   1  W      qE $   @   v $   H   %v $   P   iE $   X   2v $   `   >v $   h   Iv 	  p   Sv $      cv $      mv $      fm *      vv $       %     0  	  @  v *      q *      v *   @  v &   `  v $   p  v $   x  v *     v *     v $     v $     v $     w $     w &     w C   %w *    	  /w $   @	  Aw &   P	  Pw &   `	  `w %   p	  ow %   	  |w %   	  w %   	  w %   	  w %   	  w %   	  w %   	  w D  
  w P @
  O 	  H  w 6   QH &     EH $     B &     K &     w $      x $     x $     $x )    G E   -x &   @  @x 1  P  Gx &   P#  Rx $   `#  ax  h#  ix  X%  tx 1  h'  |x &   p/  x    /  x &   /  x $   /  s $   /  x $   /  x %  0  x SB  @8  x `   8  x *  @9  x `   9  x *   :  x `   @:  y *  :  *y F :  8y " ;  ޹ cQ   <  Ey *  <  Ty `    =  gy *  =  {y G =  y *   @M  y 1  `M  y $   `U  y H pU  y 1  p  y $   p  y      y *     y *    5D RP    z :   	z *      z   @  #z   @  /z &     Az G    Mz ~   Zz 	     t > 0  dz $   8  oz (   @  ~z *   `  z $     z    z    z &   a z &   a z &   a z &    b z $   b z $   b { *    b { ? @b '{ K   d 5{ $   d D{ $   d M{    d ]{ $    e j{ K   e v{   e ~{ P n { } o {   o { $   p { I  p { K    r {   @r { *   s c
 I @s { P s | S  t | R  t  | I  w 6| S  x L| R   y ]| l { j|      t|   @ |    | $    | K               &                .            9                  #                  $                   =                      B |        `       Z  J    |       | `       | *     | M           K }   X     `       Z  J    } *      } *      "}      *}   @  V k     3} *           xz    @  B} $     S}   
   5 &       "  &      c} &       t} &   0   } &   @   }      } R     } T @   } V    } R    } Y    } R @  } T   } R    T    ~ R @  ~ \     R   '~ R    7~ ^ @  J~ T   Z~ `   j~ `    y~ R @  ~ Y   ~ T   ~ b    ~ T @  ~ R   ~ N    ~ T    ~ d @  ~ T   ~ f    T     T @        
               Q       
                S       
            *          U       
            X                W       
            $             [                Z       
             &          ]       
                     _       
            ?          a       
                      c       
K       J        e            J                  L                  $      	         N                    $      D                  P                                                               
q                          
s        Ɉ        P                                                )    p         
    W  ;    ~       
   W  O ?   W     m    ~     ~             
 W   $              
    W   i  &            ~     ~       
   W       .     C    ~       
   W  c  $      h [ Z           
   W  gt     D{ *    i  *   o *   t                
    W                
   W  o~ X Ā           
   W  c          ݀ *    *                    
    @        4    ~       
   W  gt     D{ *    i  *   R     m                   ,G  ρ                      
   W   *              
   W  5 '  9           
   W       D{ *    i  *   U     m            
   @   x   ʈ            
   W               ieee80211_ht_operation primary_chan ht_param operation_mode stbc_param basic_set ieee80211_vht_operation chan_width center_freq_seg0_idx center_freq_seg1_idx basic_mcs_set ieee80211_eht_cap_elem ieee80211_key_len WLAN_KEY_LEN_WEP40 WLAN_KEY_LEN_WEP104 WLAN_KEY_LEN_CCMP WLAN_KEY_LEN_CCMP_256 WLAN_KEY_LEN_TKIP WLAN_KEY_LEN_AES_CMAC WLAN_KEY_LEN_SMS4 WLAN_KEY_LEN_GCMP WLAN_KEY_LEN_GCMP_256 WLAN_KEY_LEN_BIP_CMAC_256 WLAN_KEY_LEN_BIP_GMAC_128 WLAN_KEY_LEN_BIP_GMAC_256 first_channel reg_extension_id reg_class ieee80211_country_ie_triplet nl80211_mesh_power_mode NL80211_MESH_POWER_UNKNOWN NL80211_MESH_POWER_ACTIVE NL80211_MESH_POWER_LIGHT_SLEEP NL80211_MESH_POWER_DEEP_SLEEP __NL80211_MESH_POWER_AFTER_LAST NL80211_MESH_POWER_MAX nl80211_tx_power_setting NL80211_TX_POWER_AUTOMATIC NL80211_TX_POWER_LIMITED NL80211_TX_POWER_FIXED cfg80211_he_bss_color cfg80211_mbssid_elems cfg80211_beacon_data beacon_ies proberesp_ies assocresp_ies probe_resp lci civicloc mbssid_ies ftm_responder tail_len beacon_ies_len proberesp_ies_len assocresp_ies_len probe_resp_len lci_len civicloc_len he_bss_color he_bss_color_valid sta_txpwr link_station_parameters mld_mac link_mac supported_rates supported_rates_len opmode_notif opmode_notif_used he_capa he_capa_len txpwr txpwr_set eht_capa eht_capa_len station_parameters sta_flags_mask sta_flags_set sta_modify_mask listen_interval aid peer_aid plink_action plink_state uapsd_queues max_sp local_pm ext_capab ext_capab_len supported_channels supported_channels_len supported_oper_classes supported_oper_classes_len support_p2p_ps airtime_weight link_sta_params cfg80211_scan_info scan_start_tsf tsf_bssid cfg80211_scan_6ghz_params short_ssid channel_idx unsolicited_probe short_ssid_valid psc_no_listen cfg80211_scan_request duration_mandatory wdev notified no_cck scan_6ghz n_6ghz_params scan_6ghz_params cfg80211_wowlan_nd_match cfg80211_wowlan_nd_info n_matches mwifiex_bss_role MWIFIEX_BSS_ROLE_STA MWIFIEX_BSS_ROLE_UAP MWIFIEX_BSS_ROLE_ANY mwifiex_fw_image helper_buf helper_len fw_buf fw_len mwifiex_802_11_ssid mwifiex_wait_queue mwifiex_rxinfo bss_num bss_type buf_type mwifiex_txinfo aggr_num ack_frame_id mwifiex_wmm_ac_e WMM_AC_BK WMM_AC_BE WMM_AC_VI WMM_AC_VO ieee_types_wmm_ac_parameters aci_aifsn_bitmap ecw_bitmap tx_op_limit mwifiex_types_wmm_info qos_info ac_params mwifiex_chan_stats chan_num bandcfg total_bss cca_scan_dur cca_busy_dur mwifiex_histogram_data rx_rate snr noise_flr sig_str num_samples mwifiex_iface_comb sta_intf uap_intf p2p_intf mwifiex_11h_intf_state is_11h_enabled is_11h_active memory_type_mapping mem_name mem_ptr rdwr_status RDWR_STATUS_SUCCESS RDWR_STATUS_FAILURE RDWR_STATUS_DONE wpa_param pairwise_cipher_wpa pairwise_cipher_wpa2 group_cipher passphrase wep_key key_index is_default mwifiex_uap_bss_param band_cfg bcast_ssid_ctl radio_ctl dtim_period beacon_period auth_mode key_mgmt key_mgmt_operation wpa_cfg wep_cfg sta_ao_timer ps_sta_ao_timer power_constraint wmm_info mwifiex_ds_mem_rw subsc_evt_cfg abs_value evt_freq mwifiex_ds_misc_subsc_evt bcn_l_rssi_cfg bcn_h_rssi_cfg MWIFIEX_FUNC_INIT MWIFIEX_FUNC_SHUTDOWN mwifiex_dma_mapping rx_info tx_info mwifiex_cb dma_mapping mwifiex_chan_scan_param_set radio_type chan_number chan_scan_mode_bitmap min_scan_time max_scan_time mwifiex_ie_type_key_param_set key_type_id key_info mwifiex_wep_param mwifiex_tkip_param mwifiex_aes_param mwifiex_wapi_param mwifiex_cmac_aes_param ipn wep tkip aes wapi cmac_aes mwifiex_ie_type_key_param_set_v2 host_cmd_ds_802_11_key_material_v2 key_param_set host_cmd_ds_802_11_key_material ieee_types_cf_param_set element_id cfp_cnt cfp_period cfp_max_duration cfp_duration_remaining ieee_types_ibss_param_set atim_window ieee_types_ss_param_set cf_param_set ibss_param_set ieee_types_fh_param_set dwell_time hop_set hop_pattern hop_index ieee_types_ds_param_set current_chan ieee_types_phy_param_set fh_param_set ds_param_set ieee_types_oper_mode_ntf oper_mode mwifiex_hs_config_param conditions mwifiex_user_scan_chan scan_type scan_time oui_type ieee_types_vendor_header ieee_types_wmm_parameter vend_hdr oui_subtype qos_info_bitmap mwifiex_wmm_ac_status flow_required flow_created mwifiex_ie ie_index mgmt_subtype_mask ie_length ie_buffer sdio_device_id mwifiex_adapter iface_type debug_mask iface_limit curr_iface_comb priv_num winner fw_release_number intf_hdr_len init_wait_q_woken init_wait_q if_ops bypass_tx_pending cmd_pending tx_hw_pending main_work rx_workqueue rx_work dfs_workqueue dfs_work rx_work_enabled rx_processing delay_main_work rx_locked main_locked bss_prio_tbl main_proc_lock mwifiex_processing more_task_flag tx_buf_size curr_tx_buf_size host_disable_sdio_rx_aggr sdio_rx_aggr_enable sdio_rx_block_size hw_status number_of_antenna fw_cap_info int_lock int_status event_cause event_skb upld_buf data_sent cmd_sent cmd_resp_received event_received data_received cmd_pool curr_cmd mwifiex_cmd_lock last_init_cmd cmd_timer cmd_free_q cmd_free_q_lock cmd_pending_q cmd_pending_q_lock scan_pending_q scan_pending_q_lock rx_proc_lock tx_data_q tx_queued scan_processing region_code domain_reg scan_probes specific_scan_time active_scan_time passive_scan_time scan_chan_gap_time fw_bands adhoc_start_band config_bands scan_channels tx_lock_flag sleep_params sleep_period ps_mode ps_state need_to_wakeup multiple_dtim local_listen_interval null_pkt_interval sleep_cfm bcn_miss_time_out adhoc_awake_period is_deep_sleep delay_null_pkt delay_to_ps enhanced_ps_mode pm_wakeup_card_req gen_null_pkt pps_uapsd_mode pm_wakeup_fw_try wakeup_timer hs_cfg hs_activated hs_activated_manually hs_activate_wait_q_woken hs_activate_wait_q event_body hw_dot_11n_dev_cap hw_dev_mcs_support user_dev_mcs_support adhoc_11n_enabled sec_chan_offset dbg arp_filter arp_filter_size cmd_wait_q scan_wait_q_woken country_code max_mgmt_ie_index cal_data dt_node is_hw_11ac_capable hw_dot_11ac_dev_cap hw_dot_11ac_mcs_support usr_dot_11ac_dev_cap_bg usr_dot_11ac_dev_cap_a usr_dot_11ac_mcs_support pending_bridged_pkts fw_done is_up ext_scan fw_api_ver key_api_major_ver key_api_minor_ver max_p2p_conn max_sta_conn mem_type_mapping_tbl num_mem_types scan_chan_gap_enabled rx_data_q mfg_mode chan_stats num_in_chan_stats survey_idx auto_tdls coex_scan coex_min_scan_time coex_max_scan_time coex_win_size coex_tx_win_size coex_rx_win_size drcs_enabled active_scan_triggered usb_mc_status usb_mc_setup nd_info irq_wakeup wake_by_wifi bus_aggr devdump_data devdump_len devdump_work ignore_btcoex_events mmc_pm_flag_t sdio_irq_handler_t sdio_func irq_handler max_blksize cur_blksize enable_timeout tmpbuf num_info tuples sdio_func_tuple mmc_card ocr rca quirk_max_rate written_flag reenable_cmdq erase_size erase_shift pref_erase eg_boundary erase_arg erased_byte raw_cid raw_csd raw_scr raw_ssr ext_csd scr ssr sw_caps ext_power ext_perf sdio_funcs sdio_funcs_probed cccr cis sdio_single_irq sd_bus_speed mmc_avail_type nr_parts complete_wq sdio_driver mmc_cid manfid prod_name oemid hwrev fwrev mmc_csd structure mmca_vsn cmdclass taac_clks taac_ns r2w_factor max_dtr read_blkbits write_blkbits read_partial read_misalign write_partial write_misalign dsr_imp mmc_ext_csd erase_group_def sec_feature_support rel_sectors rel_param enhanced_rpmb_supported part_config cache_ctrl rst_n_function max_packed_writes max_packed_reads packed_event_en part_time sa_timeout generic_cmd6_time power_off_longtime power_off_notification hs_max_dtr hs200_max_dtr hc_erase_size hc_erase_timeout sec_trim_mult sec_erase_mult trim_timeout partition_setting_completed enhanced_area_offset enhanced_area_size hpi_en hpi hpi_cmd bkops man_bkops_en auto_bkops_en data_sector_size data_tag_unit_size boot_ro_lock boot_ro_lockable ffu_capable cmdq_en cmdq_support cmdq_depth raw_exception_status raw_partition_support raw_rpmb_size_mult raw_erased_mem_count strobe_support raw_ext_csd_structure raw_card_type raw_driver_strength out_of_int_time raw_pwr_cl_52_195 raw_pwr_cl_26_195 raw_pwr_cl_52_360 raw_pwr_cl_26_360 raw_s_a_timeout raw_hc_erase_gap_size raw_erase_timeout_mult raw_hc_erase_grp_size raw_boot_mult raw_sec_trim_mult raw_sec_erase_mult raw_sec_feature_support raw_trim_mult raw_pwr_cl_200_195 raw_pwr_cl_200_360 raw_pwr_cl_ddr_52_195 raw_pwr_cl_ddr_52_360 raw_pwr_cl_ddr_200_360 raw_bkops_status raw_sectors pre_eol_info device_life_time_est_typ_a device_life_time_est_typ_b feature_support sd_scr sda_vsn sda_spec3 sda_spec4 sda_specx bus_widths sd_ssr au erase_timeout erase_offset sd_switch_caps uhs_max_dtr sd3_bus_mode sd3_drv_type sd3_curr_limit sd_ext_reg fno feature_enabled sdio_cccr sdio_vsn sd_vsn multi_block low_speed wide_bus high_power high_speed disable_cd enable_async_irq sdio_cis mmc_part part_cfg force_ro area_type mmc_host pwrseq f_min f_max f_init ocr_avail ocr_avail_sdio ocr_avail_sd ocr_avail_mmc max_current_330 max_current_300 max_current_180 caps2 fixed_drv_type pm_caps max_seg_size max_req_size max_blk_size max_blk_count max_busy_timeout use_spi_crc claimed doing_init_tune can_retune doing_retune retune_now retune_paused retune_crc_disable can_dma_map_merge vqmmc_enabled rescan_disable rescan_entered need_retune hold_retune retune_period retune_timer trigger_card_event claimer claim_cnt default_ctx detect_change bus_ops sdio_irqs sdio_irq_thread sdio_irq_work sdio_irq_pending sdio_irq_thread_abort pm_flags regulator_enabled ongoing_mrq actual_clock slotno dsr_req cqe_ops cqe_private cqe_qdepth cqe_enabled cqe_on hsq_enabled err_stats mmc_command busy_timeout mrq mmc_data timeout_ns timeout_clks blksz blk_addr bytes_xfered sg_count host_cookie mmc_request sbc cmd_completion recovery_notifier cap_cmd_during_tfr mmc_ios vdd power_delay_ms bus_mode power_mode timing signal_voltage drv_type enhanced_strobe mmc_err_stat MMC_ERR_CMD_TIMEOUT MMC_ERR_CMD_CRC MMC_ERR_DAT_TIMEOUT MMC_ERR_DAT_CRC MMC_ERR_AUTO_CMD MMC_ERR_ADMA MMC_ERR_TUNING MMC_ERR_CMDQ_RED MMC_ERR_CMDQ_GCE MMC_ERR_CMDQ_ICCE MMC_ERR_REQ_TIMEOUT MMC_ERR_CMDQ_REQ_TIMEOUT MMC_ERR_ICE_CFG MMC_ERR_CTRL_TIMEOUT MMC_ERR_UNEXPECTED_IRQ MMC_ERR_MAX mmc_host_ops post_req pre_req request_atomic set_ios get_ro get_cd enable_sdio_irq ack_sdio_irq init_card start_signal_voltage_switch card_busy execute_tuning prepare_hs400_tuning execute_hs400_tuning hs400_prepare_ddr hs400_downgrade hs400_complete hs400_enhanced_strobe select_drive_strength card_hw_reset card_event multi_io_quirk init_sd_express mmc_cqe_ops cqe_enable cqe_disable cqe_request cqe_post_req cqe_off cqe_wait_for_idle cqe_timeout cqe_recovery_start cqe_recovery_finish mmc_slot cd_irq cd_wake_enabled handler_priv mmc_supply vmmc vqmmc mmc_ctx mmc_pwrseq mmc_bus_ops mwifiex_sdio_mpa_tx pkt_cnt start_port pkt_aggr_limit mwifiex_sdio_mpa_rx skb_arr len_arr mwifiex_sdio_card_reg start_rd_port start_wr_port base_0_reg base_1_reg poll_reg host_int_enable host_int_rsr_reg host_int_status_reg host_int_mask_reg host_strap_reg host_strap_mask host_strap_value status_reg_0 status_reg_1 sdio_int_mask data_port_mask io_port_0_reg io_port_1_reg io_port_2_reg max_mp_regs rd_bitmap_l rd_bitmap_u rd_bitmap_1l rd_bitmap_1u wr_bitmap_l wr_bitmap_u wr_bitmap_1l wr_bitmap_1u rd_len_p0_l rd_len_p0_u card_misc_cfg_reg card_cfg_2_1_reg cmd_rd_len_0 cmd_rd_len_1 cmd_rd_len_2 cmd_rd_len_3 cmd_cfg_0 cmd_cfg_1 cmd_cfg_2 cmd_cfg_3 fw_dump_host_ready fw_dump_ctrl fw_dump_start fw_dump_end func1_dump_reg_start func1_dump_reg_end func1_scratch_reg func1_spec_reg_num func1_spec_reg_table sdio_mmc_card firmware_sdiouart max_ports mp_agg_pkt_limit mp_tx_agg_buf_size mp_rx_agg_buf_size mp_rd_bitmap mp_wr_bitmap mp_end_port mp_data_port_mask curr_rd_port curr_wr_port mp_regs supports_sdio_new_mode has_control_mask can_dump_fw fw_dump_enh can_auto_tdls can_ext_scan fw_ready_extra_delay mpa_tx mpa_rx mwifiex_sdio_device MWIFIEX_ASYNC_CMD MWIFIEX_SYNC_CMD MWIFIEX_DEBUG_LEVEL MWIFIEX_DBG_MSG MWIFIEX_DBG_FATAL MWIFIEX_DBG_ERROR MWIFIEX_DBG_DATA MWIFIEX_DBG_CMD MWIFIEX_DBG_EVENT MWIFIEX_DBG_INTR MWIFIEX_DBG_IOCTL MWIFIEX_DBG_MPA_D MWIFIEX_DBG_DAT_D MWIFIEX_DBG_CMD_D MWIFIEX_DBG_EVT_D MWIFIEX_DBG_FW_D MWIFIEX_DBG_IF_D MWIFIEX_DBG_ENTRY MWIFIEX_DBG_WARN MWIFIEX_DBG_INFO MWIFIEX_DBG_DUMP MWIFIEX_DBG_ANY mwifiex_dbg num_cmd_host_to_card_failure num_cmd_sleep_cfm_host_to_card_failure num_tx_host_to_card_failure num_event_deauth num_event_disassoc num_event_link_lost num_cmd_deauth num_cmd_assoc_success num_cmd_assoc_failure num_tx_timeout timeout_cmd_id timeout_cmd_act last_cmd_id last_cmd_act last_cmd_index last_cmd_resp_id last_cmd_resp_index last_event last_event_index last_mp_wr_bitmap last_mp_wr_ports last_mp_wr_len last_mp_curr_wr_port last_sdio_mp_index MWIFIEX_HARDWARE_STATUS MWIFIEX_HW_STATUS_READY MWIFIEX_HW_STATUS_INITIALIZING MWIFIEX_HW_STATUS_INIT_DONE MWIFIEX_HW_STATUS_RESET MWIFIEX_HW_STATUS_NOT_READY mwifiex_tx_param next_pkt_len MWIFIEX_PS_STATE PS_STATE_AWAKE PS_STATE_PRE_SLEEP PS_STATE_SLEEP_CFM PS_STATE_SLEEP mwifiex_iface_type MWIFIEX_SDIO MWIFIEX_PCIE MWIFIEX_USB mwifiex_add_ba_param tx_win_size rx_win_size tx_amsdu rx_amsdu mwifiex_tx_aggr ampdu_user ampdu_ap amsdu mwifiex_tid_tbl ra_list mwifiex_wmm_desc tid_tbl_ptr pkts_paused ra_list_spinlock ac_status ac_down_graded_vals drv_pkt_delay_max queue_priority user_pri_pkt_tx_ctrl tx_pkts_queued highest_queued_prio mwifiex_802_11_security wpa_enabled wpa2_enabled wapi_enabled wapi_key_on wep_enabled authentication_mode is_authtype_auto encryption_mode ieee_types_header ieee_types_vendor_specific ieee_types_generic ieee_hdr mwifiex_bssdescriptor rssi erp_flags bss_mode data_rates bss_band fw_tsf phy_param_set ss_param_set cap_info_bitmap wmm_ie disable_11n bcn_ht_cap ht_cap_offset bcn_ht_oper ht_info_offset bcn_bss_co_2040 bss_co_2040_offset bcn_ext_cap ext_cap_offset bcn_vht_cap vht_cap_offset bcn_vht_oper vht_info_offset oper_mode_offset disable_11ac bcn_wpa_ie wpa_offset bcn_rsn_ie rsn_offset bcn_wapi_ie wapi_offset beacon_buf beacon_buf_size sensed_11h local_constraint chan_sw_ie_present mwifiex_current_bss_params bss_descriptor wmm_enabled wmm_uapsd_enabled num_of_rates mwifiex_sleep_params sp_error sp_stable_time sp_cal_control sp_ext_sleep_clk sp_reserved mwifiex_sleep_period mwifiex_wep_key key_material mwifiex_chan_freq_power max_tx_power unsupported mwifiex_802_11d_domain_reg no_of_triplet triplet mwifiex_vendor_spec_cfg_ie wps session_enable mwifiex_roc_cfg mwifiex_iface_work_flags MWIFIEX_IFACE_WORK_DEVICE_DUMP MWIFIEX_IFACE_WORK_CARD_RESET mwifiex_adapter_work_flags MWIFIEX_SURPRISE_REMOVED MWIFIEX_IS_CMD_TIMEDOUT MWIFIEX_IS_SUSPENDED MWIFIEX_IS_HS_CONFIGURED MWIFIEX_IS_HS_ENABLING MWIFIEX_IS_REQUESTING_FW_VEREXT mwifiex_private bss_role bss_priority bss_started frame_type curr_addr media_connected port_open usb_port tx_timeout_cnt curr_pkt_filter pkt_tx_ctrl tx_power_level max_tx_power_level min_tx_power_level tx_ant rx_ant tx_rate tx_htinfo rxpd_htinfo rxpd_rate rate_bitmap bitmap_rates data_rate is_data_rate_auto bcn_avg_factor data_avg_factor data_rssi_last data_nf_last data_rssi_avg data_nf_avg bcn_rssi_last bcn_nf_last bcn_rssi_avg bcn_nf_avg attempted_bss_desc prev_ssid curr_bss_params adhoc_channel adhoc_is_link_sensed adhoc_state sec_info wep_key_curr_index wpa_ie wpa_ie_len wpa_is_gtk_set aes_key aes_key_v2 wapi_ie wapi_ie_len wps_ie wps_ie_len wmm_required wmm_qosinfo wmm wmm_tx_pending sta_list sta_list_spinlock auto_tdls_list auto_tdls_lock tx_ba_stream_tbl_ptr tx_ba_stream_tbl_lock aggr_prio_tbl add_ba_param tos_to_tid_inv rx_reorder_tbl_ptr rx_reorder_tbl_lock assoc_rsp_buf assoc_rsp_size gen_ie_buf gen_ie_buf_len vs_ie assoc_tlv_buf assoc_tlv_buf_len curr_bcn_buf curr_bcn_size curr_bcn_buf_lock cfp versionstrsel version_str dfs_dev_dir current_key_index async_mutex scan_request cfg_bssid scan_block cqm_rssi_thold cqm_rssi_hyst subsc_evt_rssi_state async_subsc_evt_storage mgmt_ie beacon_idx proberesp_idx assocresp_idx gen_idx ap_11n_enabled ap_11ac_enabled mgmt_frame_mask roc_cfg scan_aborting sched_scanning csa_chan csa_expire_time del_list_idx hs2_enabled bss_cfg bss_chandef sta_params tdls_txq check_tdls_tx auto_tdls_timer auto_tdls_timer_active ack_status_frames ack_status_lock dfs_chandef dfs_cac_workqueue dfs_cac_work dfs_chan_switch_timer dfs_chan_sw_workqueue dfs_chan_sw_work beacon_after state_11h bypass_txq hidden_chan assoc_resp_ht_param ht_param_present mwifiex_bss_prio_node mwifiex_bss_prio_tbl bss_prio_head bss_prio_lock bss_prio_cur cmd_ctrl_node cmd_no cmd_flag cmd_skb resp_skb wait_q_enabled cmd_wait_q_woken bus_aggr_params tx_aggr_max_size tx_aggr_max_num tx_aggr_align mwifiex_if_ops init_if cleanup_if check_fw_status check_winner_status prog_fw register_dev unregister_dev enable_int process_int_status host_to_card wakeup_complete update_mp_end_port cleanup_mpa_buf cmdrsp_complete event_complete init_fw_port dnld_fw card_reset reg_dump device_dump clean_pcie_ring iface_work submit_rem_rx_urbs deaggr_pkt multi_port_resync is_port_ready down_dev up_dev mwifiex_sdio_exit mwifiex_sdio_init mwifiex_sdio_up_dev drv_buf mwifiex_sdio_reg_dump mwifiex_sdio_device_dump mwifiex_sdio_card_reset mwifiex_sdio_work doneflag mwifiex_sdio_rdwr_firmware mwifiex_update_mp_end_port mwifiex_cleanup_sdio mwifiex_cleanup_mpa_buf mwifiex_init_sdio mwifiex_register_dev mwifiex_unregister_dev mwifiex_sdio_host_to_card mwifiex_host_to_card_mp_aggr mwifiex_process_int_status mwifiex_deaggr_sdio_pkt mwifiex_prog_fw_w_helper npayload mwifiex_sdio_card_to_host mwifiex_sdio_enable_host_int mwifiex_sdio_interrupt mwifiex_sdio_disable_host_int mwifiex_write_data_to_card mwifiex_sdio_dnld_fw mwifiex_pm_wakeup_card_complete mwifiex_pm_wakeup_card mwifiex_sdio_coredump mwifiex_sdio_suspend mwifiex_sdio_remove mwifiex_check_winner_status poll_num mwifiex_check_fw_status dat mwifiex_sdio_read_fw_status mwifiex_write_data_sync mwifiex_sdio_resume mwifiex_sdio_probe mwifiex_sdio_event_complete mwifiex_sdio_cmdrsp_complete mwifiex_sdio.ko 3                                                                                                   	                                                                                                              "                      &                            #                         0                  E                  Z     8             o     Q                  j                                                                                                                                           *          	       @                 T    '      <       l                   u           $       }            M                                                 P                         9                 _                       
    p      @                        <                 T                  `    p      x       ~                     p                                 `      P                          " p       8          &                     `                  p!      F      2            W       J   	                \    p      M      q   " 8       8           W       O           	                      5            
                  
      2           `
      5       &    
             :                  S                  o    p                 p                  p                                                                           m                        %    p             <                  \                 x    0                                  @                       S          0                "         8                  h                 j       /    )      ^      D    6             ^                  j     +      l          /                1                 P2                @       "                             `A      A                             0                 P                          (       8    (       $       P    L               h    l       )                  $                                                                                      9                  Y             '    h             >    t      4       Y          "       o                                           @                                  @      0                  0       	          0        	          0       4	          0       H	           0       \	    @      0       p	           0       	    @      0       	          0       	    `      D       	          D       	          D       	    @      D       	          D       
           D       
                     0
                     B
                     V
                     o
                     |
                     
                     
                     
                     
                     
   $               
                     
                     
                         @             5                     I                     d                     |                                             	                                                                                                                                              
                                          #                   /                     =                     E                     V                     g                     o                     ~                                                                                                                                                                        

                     &
                     7
                     K
                     X
                     k
                     |
                     
                     
                     
                     
                     
                     
                     
                                                               .                     F                     Y                     j                     w                                                                                                                                                                                                                                                            	                                           __UNIQUE_ID_srcversion204 __UNIQUE_ID_alias203 __UNIQUE_ID_alias202 __UNIQUE_ID_alias201 __UNIQUE_ID_alias200 __UNIQUE_ID_alias199 __UNIQUE_ID_alias198 __UNIQUE_ID_alias197 __UNIQUE_ID_alias196 __UNIQUE_ID_alias195 __UNIQUE_ID_alias194 __UNIQUE_ID_depends193 ____versions __UNIQUE_ID_retpoline192 __UNIQUE_ID_intree191 __UNIQUE_ID_name190 __UNIQUE_ID_vermagic189 _note_10 _note_9 mwifiex_cleanup_mpa_buf mwifiex_sdio_init mwifiex_sdio mwifiex_update_mp_end_port mwifiex_unregister_dev mwifiex_deaggr_sdio_pkt __func__.54 mwifiex_sdio_dnld_fw mwifiex_sdio_cmdrsp_complete mwifiex_write_data_sync __func__.57 mwifiex_sdio_disable_host_int mwifiex_sdio_enable_host_int mwifiex_sdio_interrupt mwifiex_sdio_rdwr_firmware mwifiex_cleanup_sdio mwifiex_sdio_probe __UNIQUE_ID_ddebug552.10 __key.65 sdio_ops mwifiex_sdio_work mwifiex_sdio_probe.cold mwifiex_sdio_exit mwifiex_sdio_suspend __UNIQUE_ID_ddebug554.9 mwifiex_sdio_suspend.cold mwifiex_decode_rx_packet.isra.0 mwifiex_sdio_device_dump mwifiex_sdio_event_complete mwifiex_sdio_coredump mwifiex_sdio_card_reset mwifiex_sdio_resume mwifiex_sdio_resume.cold mwifiex_sdio_interrupt.cold mwifiex_sdio_card_to_host __func__.59 mwifiex_alloc_sdio_mpa_buffers.isra.0 mwifiex_write_data_to_card mwifiex_host_to_card_mp_aggr __func__.56 mwifiex_sdio_host_to_card __func__.55 mwifiex_pm_wakeup_card mwifiex_pm_wakeup_card_complete mwifiex_check_winner_status mwifiex_sdio_read_fw_status mwifiex_sdio_remove mwifiex_check_fw_status mwifiex_sdio_reg_dump generic_mem_type_map __UNIQUE_ID_ddebug560.1 mem_type_mapping_tbl mwifiex_sdio_work.cold mwifiex_register_dev mwifiex_register_dev.cold __func__.61 mwifiex_init_sdio_ioport.isra.0 mwifiex_init_sdio mwifiex_sdio_up_dev mwifiex_process_int_status __func__.60 __func__.58 mwifiex_prog_fw_w_helper __func__.64 __func__.53 __func__.51 __UNIQUE_ID_firmware577 __UNIQUE_ID_firmware576 __UNIQUE_ID_firmware575 __UNIQUE_ID_firmware574 __UNIQUE_ID_firmware573 __UNIQUE_ID_firmware572 __UNIQUE_ID_firmware571 __UNIQUE_ID_firmware570 __UNIQUE_ID_firmware569 __UNIQUE_ID_firmware568 __UNIQUE_ID_license567 __UNIQUE_ID_version566 __UNIQUE_ID_description565 __UNIQUE_ID_author564 __UNIQUE_ID___addressable_cleanup_module563 __UNIQUE_ID___addressable_init_module562 mwifiex_ids mwifiex_sdio_pm_ops mwifiex_sdio_sd8786 mwifiex_sdio_sd8787 mwifiex_sdio_sd8797 mwifiex_sdio_sd8897 mwifiex_sdio_sd8887 mwifiex_sdio_sd8801 mwifiex_sdio_sd8977 mwifiex_sdio_sd8978 mwifiex_sdio_sd8987 mwifiex_sdio_sd8997 mwifiex_reg_sd87xx mwifiex_reg_sd89xx mwifiex_reg_sd8887 mwifiex_reg_sd8997 mwifiex_reg_sd8977 mwifiex_reg_sd8897 sdio_release_host sdio_disable_func sdio_set_block_size mwifiex_init_shutdown_fw devm_kmalloc skb_put mwifiex_drv_info_dump sdio_claim_host sdio_register_driver memmove __this_module queue_work_on mwifiex_upload_device_dump mwifiex_enable_hs __mod_sdio__mwifiex_ids_device_table mwifiex_remove_card mwifiex_deauthenticate_all __init_swait_queue_head mwifiex_handle_rx_packet mwifiex_reinit_sw cleanup_module memcpy kfree enable_irq usleep_range_state _raw_spin_lock_irqsave __dynamic_dev_dbg fortify_panic __fentry__ init_module sdio_f0_readb _printk __stack_chk_fail sdio_release_irq vzalloc skb_queue_tail mwifiex_dnld_fw sdio_set_host_pm_flags sdio_unregister_driver sdio_readsb mwifiex_alloc_dma_align_buf _dev_err skb_pull mwifiex_shutdown_sw _raw_spin_unlock_irqrestore mwifiex_add_card wait_for_completion _mwifiex_dbg __x86_return_thunk irq_set_irq_wake complete_all skb_trim sdio_get_host_pm_caps mwifiex_prepare_fw_dump_info sprintf mwifiex_main_process vfree mwifiex_process_sleep_confirm_resp __const_udelay __dev_kfree_skb_any mwifiex_disable_auto_ds __dynamic_pr_debug cancel_work_sync mmc_hw_reset sdio_claim_irq sdio_enable_func sdio_writesb mwifiex_cancel_hs kmalloc_trace strlen vmalloc msleep __kmalloc kmalloc_caches system_wq disable_irq sdio_readb sdio_writeb              I             Q                                                                                                                                                                                                                     !            0       +            ?            V                  ^            x       k            q                                                                                                            %            /            >            E                   V                   [            q                                                                                    !            (            p      0            U            e                                                                                                                           "            U                   b            |                                                H                                           8                   1            W       >            G            g       T            [            a            u            ~                                                                                             
                                          ,            4            ?            H            ?       V            (       b            `      m            x                                                    	   p                   X            p!      q                                    S                                                  u                                                             	            	            /	            A	            p      H	         	   8       Q	            n	                   {	            	            	            	            	            	            	            
                  $
            5
            <
                   F
            f
            }
            
            (      
            
            
            
                   
            K            b            H      o                                                                                                	
            
            !
            6
            =
            N
            a
            y
            
            
            
            
                   
                               $            +            6            J            V            +      `            h            q                                                                                      X                              %            1            ;            C      E            Q            q                                                                        p                         "            3            p       B                  G            P            p       W            n      a            q                                                                                    y                                                                                                                                    i                   ~            H                                                                                           p                                                                                                        '            =                                                                                                                                       o                   ~                                                      ,                  P                        x                                          8      /            <                   C                  S            q            y                                                                                                      	                  +            :            S            _            |                                                                                    #            1            s                                                                                                !            V                                    6                                                                  3            A                                                                        t            N                                                                                                3            v      =            l                                                                                                                                                  C             H             a                   j                                                          h      !            O!            _!            q!            !            !            "            -"            4      7"            >"            0      I"                  W"            8      `"            q"            "            "            "            "                  "            #            #            H       *#            >#            F#            N#            m#            #            #            #            #                   #            #            #                   $                   $                   &$            A$            0      J$                  W$            h$            $            $            $            $                  $            $            %                   :%            %                  %            %            %                  %            .&            J&            <      W&            d&            k      k&         	           p&            |&            H       &            &            &            &            &            4      &            @      &            0      &                  '            8      '            ^'            ~'            <      '            '            4      '            <      '            '            '            <      '            4      '            <       (            V      (            *(                  7(            N(                  X(            _(            4      i(            p(            0      z(            8      (                  (            (            0      (            4      (                  (            <      (            (                  (            (                  )             )            >)            L)            a)            W       n)            x)            )                  )            )            )            )      )            )            *            *            *            O*            _*            j*            *            *            2      *            *            0      *                   *            *                  
+            +            !+            +            +            +            +            +            +             ,            .,            9,            c,            },            ,            ,            ,            ,            ,            -            -            3-            @      @-            `-            n-            y-            -            -            -            -            -            -            &.            ?.            i.            .            .            .            .            .            .            '/            5/            @/            /            /            /            /            /            /            s0            0            0            1            W1            `1            l1            1            1            1            1            1            1            2            2            2            @2            Q2            2            2            #3                  53            A3            W3            3                  4            (4                  54            4                  4            4            5                  5            .5            4      D5            5                  5            6            O      6            U6                  g6            6            @       6                  6            7                   7            7            7            7            ,8            X      ;8            H8            8            8            8            9            T9            (      ^9            9                  9            9            9            a:                  n:            ;            (      ;            >;            @       E;                  R;            ;                  ;            <            @       <                  <            <                  <            [=            @      h=            =            =            =            =                  =            =            =            =            >                  >            '>            5>            @>            S>                  `>            q>            @       x>                  >            ?                  ?            -?            @       4?            P      A?            ?            l      ?            @                   @            +@            7@                   >@            `      K@            e@                  r@            @                  @            @                  @            @            &A                   2A                  7A            DA            NA            aA            A                  A            A            \       A            A            7B            \B            kB            uB            B                  B            B                  B            B            B            B            %C            4C            >C            jC            C            C            C            C            (	      C            "D            nD            
      }D            D            p	      D            D            p
      D            D            @
      D            D            
E            E            %E                  2E            ME            	      RE            ^E            p      hE            |E            	      E            E                                              
                                                                        #             (             x      /             H      =             F                    N             S             x      c                   k             u             "	      |                                              "	                                                    h                                                                                                                        (            -            2            9                   >                                                          p                  
      H            @      X                   h                  x                                                                   @                                     @                                                       `      @            .      P                              E                                    \                  0                  @                  P                        @            w      P                                                                                     `                                     `      @                  P            `                                                              P                                               (             p      0                   8             p      @                   H                   P             `      X                   `             p      h             	      p                   x              
                   `
                   
                   p                   p                   p                                                                             p                                                          0                                       @                                      p!                   )                   +                  /                  1                   P2      (            `A                    	                   !	                   	                   j
                   
                                      )
                   l
                    
      $             !      (             !      ,             q#      0             y#                    H                                       
                   >                                                         =                                             $                   (             .	      ,             |
      0             
      4             J      8                   <                   @             
      D             5
      H             x
      L             #      P             g      T                   X                   \             x      `                   d                   h                   l                   p                   t             {      x                   |                                                                      B                    !                   *                   /                   1                   4                   B                                         M                    P                    V                                                                                                            $                   (                   ,             	      0                   4                   8                   <                   @                   D                   H                   L             #      P                    T                   X                   \                   `                   d                   h             
      l                   p                   t             0      x             4      |             5                   6                   8                   :                   <                   >                   C                   G                   S                   [                   d                   f                   h                   j                   o                   p                   w                   x                   |                                                                                                                                                                                                                 6                   7                   9                   ;                   =                  B                  a                  p                  v                  w                  {                                           $                  (                  ,                  0                  4                  8                  <                  @                  D                  H            }      L                  P                  T                  X                  \                  `                  d                  h                  l                  p                  t                  x                  |                                                                                                                                                             _                  `                  f                                                                                                                              }                                                                                                            l                  p                  w                  |                                                      *	                  +	                  ,	                  .	                   3	                  	                  	                  	                  	                  	                  )
                  2
                   4
      $            9
      (            y
      ,            z
      0            |
      4            
      8            
      <            
      @            
      D            
      H            G      L            H      P            J      T            O      X                  \                  `                  d                  h                  l                  p                  t                  x                  |                                                 
                  
                   
                  R
                  `
                  
                  
                  
                  #                  (                  g                  l                  p                  w                  x                  y                                                                                          -                  .                  0                  5                  M                  N                  P                  U                  d                  p                  w                   y                  ~                                                                                                                                     $                  (                  ,                  0                  4                  8            g      <            p      @            w      D            x      H                  L                  P                  T                  X                  \                  `                  d                  h                  l                  p            #      t            '      x            *      |            1                  n                  o                  p                  r                  t                  v                  x                  }                  
                                                                                                             $                  '                  +                                                                                                                                                                                                                         	                                                                                                                                                                                                                                $                  (                  ,                  0                  4                  8                  <                  @                  D            "      H                  L                  P                  T                  X                  \            	      `                  d                  h                  l            4      p            m      t            p      x            v      |                                                                                                                                                                                                                   w                  z                  {                                                                                                                                                                                                                                          '                  0                  7                  9                  >                  B                  C                   G                                                                                                                                                       $                   (            &      ,            '      0            +      4                  8                  <                  @                  D                  H                  L                  P                  T            <      X            @      \            G      `            I      d            J      h            K      l            O      p                  t                  x                  |                                                                                                                                                             "                  #                  $                  .                  8                   9                   :                   <                   >                   @                   B                   G                   c!                  p!                  w!                  y!                  {!                  }!                  ~!                  !                  !                  !                  !                  !                  !                   !                  !                  !                  !                  #                  #                  #                  #                   #      $            #      (            #      ,            #      0            )      4            )      8            )      <            )      @            )      D            )      H            )      L            )      P            )      T            *      X            *      \            *      `            *      d            *      h            *      l            *      p            *      t            +      x             +      |            '+                  )+                  ++                  -+                  .+                  /+                  6+                  ^.                  _.                  `.                  b.                  d.                  f.                  h.                  m.                  x/                  y/                  z/                  |/                  ~/                  /                  /                  /                  /                  /                  /                  /                  /                  /                  /                  1                  	1                  
1                   1                  1                  1                  1                  1                  1                  1                  1                   1      $            32      (            72      ,            82      0            :2      4            ?2      8            D2      <            P2      @            W2      D            Y2      H            [2      L            `2      P            a2      T            b2      X            m2      \            4      `            4      d            4      h            4      l            4      p            4      t            4      x            4      |            !8                  N8                  RA                  `A                  gA                  iA                  kA                  mA                  qA                  rA                  vA                  B                  B                  B                  B                  B                  B                  B                  B                  E                                                                             W                                                                                                                                                                                                                                                                                                                                                     !      $            #      (            %      ,            '      0            ,      4            6      8            B      <                    @                                                                    	                                          3	                	   b                     #      $             ]&      (          	   *                     
                   @                                             0                                                      
      `            /      h            `      p            @      x                              `A                  )                                                       p                  P2                                     p                                     P                                                          
                  p                  `
                                           (                  H            1                                                                
                                        
                   k      8             
      @             P      H             
      P             
      p             
      x             0                   
                   
      8                    P                     .symtab .strtab .shstrtab .note.gnu.build-id .note.Linux .rela.text .rela.init.text .rela.text.unlikely .rela.exit.text .rela.rodata .rela__mcount_loc .rodata.str1.8 .rodata.str1.1 .rela.smp_locks .modinfo .rela.return_sites .orc_unwind .rela.orc_unwind_ip __versions .rela__jump_table .rela.data .rela.exit.data .rela.init.data .rela__dyndbg .rela.gnu.linkonce.this_module .bss .comment .note.GNU-stack .BTF .gnu_debuglink                                                                                             @       $                              .                     d       <                              ?                            E                             :      @                S     >      +                    J                     AF                                    E      @               ؑ     H       +                    Z                     RF      B                             U      @                            +                    n                     G                                    i      @                     0       +   	                 ~                     G                                    y      @               P           +                                         DO      0                                   @               h           +   
                       2               xP      p                                  2               [                                                       a      4                                    @                    8      +                                         b      c                                                  oe                                          @               0           +                                         f      f                                                  yr      D                                   @                    1      +                                        z                                                              0                              
     @                           +                    $                          P                                   @               x           +                    /                                                        *     @               H            +                    ?                                                        :     @               `            +                     O                                                         J     @               x            +   "                 ]                                         @               X     @                    0       +   $                 w                                                         |     0                     P                                                  Е                                                          Е                                                        h0                                                         0           ,                    	                       D                                                                                           0	*H
01
0	`He0	*H
1a0]080 10UDebian Secure Boot CA2(oe:B&C0	`He0
	*H
  4pሀbUG*	gW
<E&ri
<&:1M05?ɝF|+ntx\DKbs7m)Τ1R>NXqqQEJ.<
ϽD`#8/Bbn\Kv\jv{޳.A[h?Q_}ʞY͠=sȼCXpӄ_Fb̗Ŝ^#;
ϰfxSϣI_zA2P"         ~Module signature appended~
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        HHE        H(  H      H    H    HHE    jH(  H    I   L  H    H    HHE    H      H(  H    I麄   L  H    H    HHE    H      H(  H    I麌   L
  H    H    HHE    H
      I(  H    Iٺ   M0
  H    H    HHE        I(  H    I   MH  H    H    HHE        I(  H    I   M  H    H    HHE        I(  H    LM   H    H    HHE        I(  H    Iٺ   M@
  H    H    HHE        I(  Iٺ   H    M
  H    H    HHE    I
  I0      @H    I    H    LEI$(  !  H    H    HHE        I$(  H    AH    H    HHEHѺ!          @H    I    H    LEI$(  4!  H    H    HHE        I$(  H    AH    H    HHEHѺ1!          H(  H    Af!  H    H    HHE        H  H    9  H    H    HHE        H  I    M  H    H    HIDH    H  Hh      H  L麀9  H    H    HHE        H  H    M  H    H    HHDH    H  Hh      H  H麓9  H    H    HHE        H  H    9  H    H    HHE        H(  H    p!  H    H    HHE        
  
  H    HH0  H           H0  H    H           H(  H    H    H    HHEHѺ!          H0  H    H           H(  H    !  H    H    HHE        H(  j EEj H    "  H    Hh   H    HE    H    H(  j EDj H    !  H    Hh   H    HE    H    H(  j EDj H    !  H    Hh   H    HE    H    H(  jEɺ!  jH    H    H    Hh   HEE1    H    D$H(  H    ED  H    H    HHEHѺ"      DL$    H(  H    EEH    H    HHEHѺ          H(  H    D  H    H    HHEHѺI"      DL$h    D$H(  H    H    D  H    HHEHѺ"      DL$    HD$|$1EpH    DH(  ATWH    VHH    RHEȺl"      H     D$H(  H    H    D  H    HHEHѺ"      DL$    H(  H    D  H    H    HHEHѺ"          H(  H    H    H    HHEHѺ"          IkH(  H    H        HED    #  WH    VH        ^_    IkH(  H    H        HED    #  WH    VH    DD$    AXAYDD$    I$(  H    u$  H    H    HHE        I$(  EG8RH      H    H    HHE    Y    I$(  H    $  H    H    HHE    A$Z      I$(  H      H    H    HHDIH    I$(  Hh      I$(  H$  H    H    HHE        I$(  H    %  H    H    HHE        I$(  H    $  H    H    HHE        I$(  H    $  H    H    HHE        I$(  H    $  H    H    HHE        I$(  H    $  H    H    HHE        I$(  H    $  H    H    HHE        H(  H    #%  H    H    HHE            AVAUATUSHH8eH%(   HD$01l  tH0  H    H       Z  -N  vHC K2Hp     C3<w	,  ,Ř  HC Hҋl  tlt8tH0  H    H       HC K3H d     l  tH0  H    H       Hk E tH0  H    H       HC H   y/l  tH0  H    H       HC 1҉  
   1Ҿ   H    Aąu2H(  H    *  H    H    HHD    L
  H        At/H(  H    *  H    H    HHD    &H    H    Ht
x t        l  A     Hl$   1Hl  tH0  H    H       E1   HDHAĄ  HC H   q  @s3DH   HC   Z  =  O  =  D  =?  w=<  vW1  r!wH     H@t  -   w%   s wHOH   HC HH   tptll  tH0  H    H       C3HS <% 