1e1051a39Sopenharmony_ci/*
2e1051a39Sopenharmony_ci * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved.
3e1051a39Sopenharmony_ci * Copyright Siemens AG 2015-2022
4e1051a39Sopenharmony_ci *
5e1051a39Sopenharmony_ci * Licensed under the Apache License 2.0 (the "License").  You may not use
6e1051a39Sopenharmony_ci * this file except in compliance with the License.  You can obtain a copy
7e1051a39Sopenharmony_ci * in the file LICENSE in the source distribution or at
8e1051a39Sopenharmony_ci * https://www.openssl.org/source/license.html
9e1051a39Sopenharmony_ci */
10e1051a39Sopenharmony_ci
11e1051a39Sopenharmony_ci/*
12e1051a39Sopenharmony_ci * A collection of test cases where check-format.pl should not report issues.
13e1051a39Sopenharmony_ci * There are some known false positives, though, which are marked below.
14e1051a39Sopenharmony_ci */
15e1051a39Sopenharmony_ci
16e1051a39Sopenharmony_ci#include <errno.h> /* should not report whitespace nits within <...> */
17e1051a39Sopenharmony_ci#define F                                       \
18e1051a39Sopenharmony_ci    void f()                                    \
19e1051a39Sopenharmony_ci    {                                           \
20e1051a39Sopenharmony_ci        int i;                                  \
21e1051a39Sopenharmony_ci        int j;                                  \
22e1051a39Sopenharmony_ci                                                \
23e1051a39Sopenharmony_ci        return;                                 \
24e1051a39Sopenharmony_ci    }
25e1051a39Sopenharmony_ci
26e1051a39Sopenharmony_ci/* allow extra  SPC in single-line comment */
27e1051a39Sopenharmony_ci/*
28e1051a39Sopenharmony_ci * allow extra  SPC in regular multi-line comment
29e1051a39Sopenharmony_ci */
30e1051a39Sopenharmony_ci/*-
31e1051a39Sopenharmony_ci * allow extra  SPC in format-tagged multi-line comment
32e1051a39Sopenharmony_ci */
33e1051a39Sopenharmony_ci/** allow extra '*' in comment opening */
34e1051a39Sopenharmony_ci/*! allow extra '!' in comment opening */
35e1051a39Sopenharmony_ci/*
36e1051a39Sopenharmony_ci ** allow "**" as first non-space chars of a line within multi-line comment
37e1051a39Sopenharmony_ci */
38e1051a39Sopenharmony_ci
39e1051a39Sopenharmony_ciint f(void) /*
40e1051a39Sopenharmony_ci             * trailing multi-line comment
41e1051a39Sopenharmony_ci             */
42e1051a39Sopenharmony_ci{
43e1051a39Sopenharmony_ci    typedef int INT;
44e1051a39Sopenharmony_ci    void v;
45e1051a39Sopenharmony_ci    short b;
46e1051a39Sopenharmony_ci    char c;
47e1051a39Sopenharmony_ci    signed s;
48e1051a39Sopenharmony_ci    unsigned u;
49e1051a39Sopenharmony_ci    int i;
50e1051a39Sopenharmony_ci    long l;
51e1051a39Sopenharmony_ci    float f;
52e1051a39Sopenharmony_ci    double d;
53e1051a39Sopenharmony_ci    enum {} enu;
54e1051a39Sopenharmony_ci    struct {} stru;
55e1051a39Sopenharmony_ci    union {} un;
56e1051a39Sopenharmony_ci    auto a;
57e1051a39Sopenharmony_ci    extern e;
58e1051a39Sopenharmony_ci    static int stat;
59e1051a39Sopenharmony_ci    const int con;
60e1051a39Sopenharmony_ci    volatile int vola;
61e1051a39Sopenharmony_ci    register int reg;
62e1051a39Sopenharmony_ci    OSSL_x y, *p = params;
63e1051a39Sopenharmony_ci    int params[];
64e1051a39Sopenharmony_ci    OSSL_PARAM * (* params []) [MAX + 1];
65e1051a39Sopenharmony_ci    XY *(* fn)(int a, char b);
66e1051a39Sopenharmony_ci    /*
67e1051a39Sopenharmony_ci     * multi-line comment should not disturb detection of local decls
68e1051a39Sopenharmony_ci     */
69e1051a39Sopenharmony_ci    BIO1 ***b;
70e1051a39Sopenharmony_ci    /* intra-line comment should not disturb detection of local decls */
71e1051a39Sopenharmony_ci    unsigned k;
72e1051a39Sopenharmony_ci
73e1051a39Sopenharmony_ci    /* intra-line comment should not disturb detection of end of local decls */
74e1051a39Sopenharmony_ci
75e1051a39Sopenharmony_ci    {
76e1051a39Sopenharmony_ci        int x; /* just decls in block */
77e1051a39Sopenharmony_ci    }
78e1051a39Sopenharmony_ci    if (p != (unsigned char *)
79e1051a39Sopenharmony_ci        &(ctx->tmp[0])) {
80e1051a39Sopenharmony_ci        i -= (p - (unsigned char *) /* do not confuse with var decl */
81e1051a39Sopenharmony_ci              &(ctx->tmp[0]));
82e1051a39Sopenharmony_ci    }
83e1051a39Sopenharmony_ci    {
84e1051a39Sopenharmony_ci        ctx->buf_off = 0; /* do not confuse with var decl */
85e1051a39Sopenharmony_ci        return 0;
86e1051a39Sopenharmony_ci    }
87e1051a39Sopenharmony_ci    {
88e1051a39Sopenharmony_ci        ctx->buf_len = EVP_EncodeBlock((unsigned char *)ctx->buf,
89e1051a39Sopenharmony_ci                                       (unsigned char *)ctx->tmp, /* no decl */
90e1051a39Sopenharmony_ci                                       ctx->tmp_len);
91e1051a39Sopenharmony_ci    }
92e1051a39Sopenharmony_ci    {
93e1051a39Sopenharmony_ci        EVP_EncodeFinal(ctx->base64,
94e1051a39Sopenharmony_ci                        (unsigned char *)ctx->buf, &(ctx->len)); /* no decl */
95e1051a39Sopenharmony_ci        /* push out the bytes */
96e1051a39Sopenharmony_ci        goto again;
97e1051a39Sopenharmony_ci    }
98e1051a39Sopenharmony_ci    {
99e1051a39Sopenharmony_ci        f(1, (unsigned long)2); /* no decl */
100e1051a39Sopenharmony_ci        x;
101e1051a39Sopenharmony_ci    }
102e1051a39Sopenharmony_ci    {
103e1051a39Sopenharmony_ci        char *pass_str = get_passwd(opt_srv_secret, "x");
104e1051a39Sopenharmony_ci
105e1051a39Sopenharmony_ci        if (pass_str != NULL) {
106e1051a39Sopenharmony_ci            cleanse(opt_srv_secret);
107e1051a39Sopenharmony_ci            res = OSSL_CMP_CTX_set1_secretValue(ctx, (unsigned char *)pass_str,
108e1051a39Sopenharmony_ci                                                strlen(pass_str));
109e1051a39Sopenharmony_ci            clear_free(pass_str);
110e1051a39Sopenharmony_ci        }
111e1051a39Sopenharmony_ci    }
112e1051a39Sopenharmony_ci}
113e1051a39Sopenharmony_ci
114e1051a39Sopenharmony_ciint g(void)
115e1051a39Sopenharmony_ci{
116e1051a39Sopenharmony_ci    if (ctx == NULL) {    /* non-leading end-of-line comment */
117e1051a39Sopenharmony_ci        if (/* comment after '(' */ pem_name != NULL /* comment before ')' */)
118e1051a39Sopenharmony_ci            /* entire-line comment indent usually like for the following line */
119e1051a39Sopenharmony_ci            return NULL; /* hanging indent also for this line after comment */
120e1051a39Sopenharmony_ci        /* leading comment has same indentation as normal code */ stmt;
121e1051a39Sopenharmony_ci        /* entire-line comment may have same indent as normal code */
122e1051a39Sopenharmony_ci    }
123e1051a39Sopenharmony_ci    for (i = 0; i < n; i++)
124e1051a39Sopenharmony_ci        for (; i < n; i++)
125e1051a39Sopenharmony_ci            for (i = 0; ; i++)
126e1051a39Sopenharmony_ci                for (i = 0;; i++)
127e1051a39Sopenharmony_ci                    for (i = 0; i < n; )
128e1051a39Sopenharmony_ci                        for (i = 0; i < n;)
129e1051a39Sopenharmony_ci                            ;
130e1051a39Sopenharmony_ci    for (i = 0; ; )
131e1051a39Sopenharmony_ci        for (i = 0; ;)
132e1051a39Sopenharmony_ci            for (i = 0;; )
133e1051a39Sopenharmony_ci                for (i = 0;;)
134e1051a39Sopenharmony_ci                    for (; i < n; )
135e1051a39Sopenharmony_ci                        for (; j < n;)
136e1051a39Sopenharmony_ci                            for (; ; i++)
137e1051a39Sopenharmony_ci                                for (;; i++)
138e1051a39Sopenharmony_ci                                    ;
139e1051a39Sopenharmony_ci    for (;;) /* the only variant allowed in case of "empty" for (...) */
140e1051a39Sopenharmony_ci        ;
141e1051a39Sopenharmony_ci    for (;;) ; /* should not trigger: space before ';' */
142e1051a39Sopenharmony_ci lab: ;  /* should not trigger: space before ';' */
143e1051a39Sopenharmony_ci
144e1051a39Sopenharmony_ci#if X
145e1051a39Sopenharmony_ci    if (1) /* bad style: just part of control structure depends on #if */
146e1051a39Sopenharmony_ci#else
147e1051a39Sopenharmony_ci    if (2) /*@ resulting false positive */
148e1051a39Sopenharmony_ci#endif
149e1051a39Sopenharmony_ci        c; /*@ resulting false positive */
150e1051a39Sopenharmony_ci
151e1051a39Sopenharmony_ci    if (1)
152e1051a39Sopenharmony_ci        if (2)
153e1051a39Sopenharmony_ci            c;
154e1051a39Sopenharmony_ci        else
155e1051a39Sopenharmony_ci            e;
156e1051a39Sopenharmony_ci    else
157e1051a39Sopenharmony_ci        f;
158e1051a39Sopenharmony_ci    do
159e1051a39Sopenharmony_ci        do
160e1051a39Sopenharmony_ci            2;
161e1051a39Sopenharmony_ci        while (1);
162e1051a39Sopenharmony_ci    while (2);
163e1051a39Sopenharmony_ci
164e1051a39Sopenharmony_ci    if (1)
165e1051a39Sopenharmony_ci        f(a, b);
166e1051a39Sopenharmony_ci    do
167e1051a39Sopenharmony_ci        1; while (2); /*@ more than one stmt just to construct case */
168e1051a39Sopenharmony_ci    if (1)
169e1051a39Sopenharmony_ci        f(a, b);
170e1051a39Sopenharmony_ci    else
171e1051a39Sopenharmony_ci        do
172e1051a39Sopenharmony_ci            1;
173e1051a39Sopenharmony_ci        while (2);
174e1051a39Sopenharmony_ci    if (1)
175e1051a39Sopenharmony_ci        f(a, b);
176e1051a39Sopenharmony_ci    else do /*@ (non-brace) code before 'do' just to construct case */
177e1051a39Sopenharmony_ci             1;
178e1051a39Sopenharmony_ci        while (2);
179e1051a39Sopenharmony_ci    f1234(a,
180e1051a39Sopenharmony_ci          b); do /*@ (non-brace) code before 'do' just to construct case */
181e1051a39Sopenharmony_ci                  1;
182e1051a39Sopenharmony_ci    while (2);
183e1051a39Sopenharmony_ci    if (1)
184e1051a39Sopenharmony_ci        f(a,
185e1051a39Sopenharmony_ci          b); do /*@ (non-brace) code before 'do' just to construct case */
186e1051a39Sopenharmony_ci                  1;
187e1051a39Sopenharmony_ci    while (2);
188e1051a39Sopenharmony_ci    if (1)
189e1051a39Sopenharmony_ci        f(a, b);
190e1051a39Sopenharmony_ci    else
191e1051a39Sopenharmony_ci        do f(c, c); /*@ (non-brace) code after 'do' just to construct case */
192e1051a39Sopenharmony_ci        while (2);
193e1051a39Sopenharmony_ci
194e1051a39Sopenharmony_ci    if (1)
195e1051a39Sopenharmony_ci        f(a, b);
196e1051a39Sopenharmony_ci    else
197e1051a39Sopenharmony_ci        return;
198e1051a39Sopenharmony_ci    if (1)
199e1051a39Sopenharmony_ci        f(a,
200e1051a39Sopenharmony_ci          b); else /*@ (non-brace) code before 'else' just to construct case */
201e1051a39Sopenharmony_ci        do
202e1051a39Sopenharmony_ci            1;
203e1051a39Sopenharmony_ci        while (2);
204e1051a39Sopenharmony_ci
205e1051a39Sopenharmony_ci    if (1)
206e1051a39Sopenharmony_ci    { /*@ brace after 'if' not on same line just to construct case */
207e1051a39Sopenharmony_ci        c;
208e1051a39Sopenharmony_ci        d;
209e1051a39Sopenharmony_ci    }
210e1051a39Sopenharmony_ci    /* this comment is correctly indented if it refers to the following line */
211e1051a39Sopenharmony_ci    d;
212e1051a39Sopenharmony_ci
213e1051a39Sopenharmony_ci    if (1) {
214e1051a39Sopenharmony_ci        2;
215e1051a39Sopenharmony_ci    } else /*@ no brace after 'else' just to construct case */
216e1051a39Sopenharmony_ci        3;
217e1051a39Sopenharmony_ci    do {
218e1051a39Sopenharmony_ci    } while (x);
219e1051a39Sopenharmony_ci    if (1) {
220e1051a39Sopenharmony_ci        2;
221e1051a39Sopenharmony_ci    } else {
222e1051a39Sopenharmony_ci        3;
223e1051a39Sopenharmony_ci    }
224e1051a39Sopenharmony_ci    if (4)
225e1051a39Sopenharmony_ci        5;
226e1051a39Sopenharmony_ci    else
227e1051a39Sopenharmony_ci        6;
228e1051a39Sopenharmony_ci
229e1051a39Sopenharmony_ci    if (1) {
230e1051a39Sopenharmony_ci        if (2) {
231e1051a39Sopenharmony_ci        case MAC_TYPE_MAC:
232e1051a39Sopenharmony_ci            {
233e1051a39Sopenharmony_ci                EVP_MAC_CTX *new_mac_ctx;
234e1051a39Sopenharmony_ci
235e1051a39Sopenharmony_ci                if (ctx->pkey == NULL)
236e1051a39Sopenharmony_ci                    return 0;
237e1051a39Sopenharmony_ci            }
238e1051a39Sopenharmony_ci            break;
239e1051a39Sopenharmony_ci        default:
240e1051a39Sopenharmony_ci            /* This should be dead code */
241e1051a39Sopenharmony_ci            return 0;
242e1051a39Sopenharmony_ci        }
243e1051a39Sopenharmony_ci    }
244e1051a39Sopenharmony_ci    if (expr_line1
245e1051a39Sopenharmony_ci        == expr_line2
246e1051a39Sopenharmony_ci            && expr_line3) {
247e1051a39Sopenharmony_ci        c1;
248e1051a39Sopenharmony_ci    } else {
249e1051a39Sopenharmony_ci        c;
250e1051a39Sopenharmony_ci        d;
251e1051a39Sopenharmony_ci    }
252e1051a39Sopenharmony_ci    if (expr_line1
253e1051a39Sopenharmony_ci        == expr_line2
254e1051a39Sopenharmony_ci            && expr_line3)
255e1051a39Sopenharmony_ci        hanging_stmt;
256e1051a39Sopenharmony_ci}
257e1051a39Sopenharmony_ci#define m \
258e1051a39Sopenharmony_ci    do { /* should not be confused with function header followed by '{' */ \
259e1051a39Sopenharmony_ci    } while (0)
260e1051a39Sopenharmony_ci
261e1051a39Sopenharmony_ci/* should not trigger: constant on LHS of comparison or assignment operator */
262e1051a39Sopenharmony_ciX509 *x509 = NULL;
263e1051a39Sopenharmony_ciint y = a + 1 < b;
264e1051a39Sopenharmony_ciint ret, was_NULL = *certs == NULL;
265e1051a39Sopenharmony_ci
266e1051a39Sopenharmony_ci/* should not trigger: missing space before ... */
267e1051a39Sopenharmony_cifloat z = 1e-6 * (-1) * b[+6] * 1e+1 * (a)->f * (long)+1
268e1051a39Sopenharmony_ci    - (tmstart.tv_sec + tmstart.tv_nsec * 1e-9);
269e1051a39Sopenharmony_cistruct st = {-1, 0};
270e1051a39Sopenharmony_ciint x = (y <<= 1) + (z <= 5.0);
271e1051a39Sopenharmony_ci
272e1051a39Sopenharmony_ciconst OPTIONS passwd_options[] = {
273e1051a39Sopenharmony_ci    {"aixmd5", OPT_AIXMD5, '-', "AIX MD5-based password algorithm"},
274e1051a39Sopenharmony_ci#if !defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_DEPRECATED_3_0)
275e1051a39Sopenharmony_ci    {"crypt", OPT_CRYPT, '-', "Standard Unix password algorithm (default)"},
276e1051a39Sopenharmony_ci#endif
277e1051a39Sopenharmony_ci    OPT_R_OPTIONS,
278e1051a39Sopenharmony_ci
279e1051a39Sopenharmony_ci    {NULL}
280e1051a39Sopenharmony_ci};
281e1051a39Sopenharmony_ci
282e1051a39Sopenharmony_citypedef * d(int)
283e1051a39Sopenharmony_ci    x;
284e1051a39Sopenharmony_citypedef (int)
285e1051a39Sopenharmony_cix;
286e1051a39Sopenharmony_citypedef (int)*()
287e1051a39Sopenharmony_ci    x;
288e1051a39Sopenharmony_citypedef *int *
289e1051a39Sopenharmony_cix;
290e1051a39Sopenharmony_citypedef OSSL_CMP_MSG *(*cmp_srv_process_cb_t)
291e1051a39Sopenharmony_ci    (OSSL_CMP_SRV_CTX *ctx, OSSL_CMP_MSG *msg)
292e1051a39Sopenharmony_ci    xx;
293e1051a39Sopenharmony_ci
294e1051a39Sopenharmony_ci#define IF(cond) if (cond)
295e1051a39Sopenharmony_ci
296e1051a39Sopenharmony_ci_Pragma("GCC diagnostic push")
297e1051a39Sopenharmony_ci_Pragma("GCC diagnostic pop")
298e1051a39Sopenharmony_ci
299e1051a39Sopenharmony_ci#define CB_ERR_IF(cond, ctx, cert, depth, err) \
300e1051a39Sopenharmony_ci    if ((cond) && ((depth) < 0 || verify_cb_cert(ctx, cert, depth, err) == 0)) \
301e1051a39Sopenharmony_ci        return err
302e1051a39Sopenharmony_cistatic int verify_cb_crl(X509_STORE_CTX *ctx, int err)
303e1051a39Sopenharmony_ci{
304e1051a39Sopenharmony_ci    ctx->error = err;
305e1051a39Sopenharmony_ci    return ctx->verify_cb(0, ctx);
306e1051a39Sopenharmony_ci}
307e1051a39Sopenharmony_ci
308e1051a39Sopenharmony_ci#ifdef CMP_FALLBACK_EST
309e1051a39Sopenharmony_ci# define CMP_FALLBACK_CERT_FILE "cert.pem"
310e1051a39Sopenharmony_ci#endif
311e1051a39Sopenharmony_ci
312e1051a39Sopenharmony_ci#define X509_OBJECT_get0_X509(obj)                                      \
313e1051a39Sopenharmony_ci    ((obj) == NULL || (obj)->type != X509_LU_X509 ? NULL : (obj)->data.x509)
314e1051a39Sopenharmony_ci#define X509_STORE_CTX_set_current_cert(ctx, x) { (ctx)->current_cert = (x); }
315e1051a39Sopenharmony_ci#define X509_STORE_set_ex_data(ctx, idx, data) \
316e1051a39Sopenharmony_ci    CRYPTO_set_ex_data(&(ctx)->ex_data, (idx), (data))
317e1051a39Sopenharmony_ci
318e1051a39Sopenharmony_citypedef int (*X509_STORE_CTX_check_revocation_fn)(X509_STORE_CTX *ctx);
319e1051a39Sopenharmony_ci#define X509_STORE_CTX_set_error_depth(ctx, depth) \
320e1051a39Sopenharmony_ci    { (ctx)->error_depth = (depth); }
321e1051a39Sopenharmony_ci#define EVP_PKEY_up_ref(x) ((x)->references++)
322e1051a39Sopenharmony_ci/* should not report missing blank line: */
323e1051a39Sopenharmony_ciDECLARE_STACK_OF(OPENSSL_CSTRING)
324e1051a39Sopenharmony_cibool UTIL_iterate_dir(int (*fn)(const char *file, void *arg), void *arg,
325e1051a39Sopenharmony_ci                      const char *path, bool recursive);
326e1051a39Sopenharmony_cisize_t UTIL_url_encode(
327e1051a39Sopenharmony_ci                       size_t *size_needed
328e1051a39Sopenharmony_ci                       );
329e1051a39Sopenharmony_cisize_t UTIL_url_encode(const char  *source,
330e1051a39Sopenharmony_ci                       char        *destination,
331e1051a39Sopenharmony_ci                       size_t      destination_len,
332e1051a39Sopenharmony_ci                       size_t      *size_needed);
333e1051a39Sopenharmony_ci#error well. oops.
334e1051a39Sopenharmony_ci
335e1051a39Sopenharmony_ciint f()
336e1051a39Sopenharmony_ci{
337e1051a39Sopenharmony_ci    c;
338e1051a39Sopenharmony_ci    if (1) {
339e1051a39Sopenharmony_ci        c;
340e1051a39Sopenharmony_ci    }
341e1051a39Sopenharmony_ci    c;
342e1051a39Sopenharmony_ci    if (1)
343e1051a39Sopenharmony_ci        if (2)
344e1051a39Sopenharmony_ci        { /*@ brace after 'if' not on same line just to construct case */
345e1051a39Sopenharmony_ci            c;
346e1051a39Sopenharmony_ci        }
347e1051a39Sopenharmony_ci    e;
348e1051a39Sopenharmony_ci    const usign = {
349e1051a39Sopenharmony_ci                   0xDF,
350e1051a39Sopenharmony_ci                   {
351e1051a39Sopenharmony_ci                    dd
352e1051a39Sopenharmony_ci                   },
353e1051a39Sopenharmony_ci                   dd
354e1051a39Sopenharmony_ci    };
355e1051a39Sopenharmony_ci    const unsign = {
356e1051a39Sopenharmony_ci                    0xDF, {
357e1051a39Sopenharmony_ci                           dd
358e1051a39Sopenharmony_ci                    },
359e1051a39Sopenharmony_ci                    dd
360e1051a39Sopenharmony_ci    };
361e1051a39Sopenharmony_ci}
362e1051a39Sopenharmony_ciconst unsigned char trans_id[OSSL_CMP_TRANSACTIONID_LENGTH] = {
363e1051a39Sopenharmony_ci                                                               0xDF,
364e1051a39Sopenharmony_ci};
365e1051a39Sopenharmony_ciconst unsigned char trans_id[OSSL_CMP_TRANSACTIONID_LENGTH] =
366e1051a39Sopenharmony_ci    {
367e1051a39Sopenharmony_ci     0xDF,
368e1051a39Sopenharmony_ci    };
369e1051a39Sopenharmony_citypedef
370e1051a39Sopenharmony_ciint
371e1051a39Sopenharmony_cia;
372e1051a39Sopenharmony_ci
373e1051a39Sopenharmony_citypedef
374e1051a39Sopenharmony_cistruct
375e1051a39Sopenharmony_ci{
376e1051a39Sopenharmony_ci    int a;
377e1051a39Sopenharmony_ci} b;
378e1051a39Sopenharmony_citypedef enum {
379e1051a39Sopenharmony_ci              w = 0
380e1051a39Sopenharmony_ci} e_type;
381e1051a39Sopenharmony_citypedef struct {
382e1051a39Sopenharmony_ci    enum {
383e1051a39Sopenharmony_ci          w = 0
384e1051a39Sopenharmony_ci    } e_type;
385e1051a39Sopenharmony_ci    enum {
386e1051a39Sopenharmony_ci          w = 0
387e1051a39Sopenharmony_ci    } e_type;
388e1051a39Sopenharmony_ci} e;
389e1051a39Sopenharmony_cistruct s_type {
390e1051a39Sopenharmony_ci    enum e_type {
391e1051a39Sopenharmony_ci                 w = 0
392e1051a39Sopenharmony_ci    };
393e1051a39Sopenharmony_ci};
394e1051a39Sopenharmony_cistruct s_type
395e1051a39Sopenharmony_ci{
396e1051a39Sopenharmony_ci    enum e_type {
397e1051a39Sopenharmony_ci                 w = 0
398e1051a39Sopenharmony_ci    };
399e1051a39Sopenharmony_ci    enum e2_type {
400e1051a39Sopenharmony_ci                  w = 0
401e1051a39Sopenharmony_ci    };
402e1051a39Sopenharmony_ci};
403e1051a39Sopenharmony_ci
404e1051a39Sopenharmony_ci#define X  1          + 1
405e1051a39Sopenharmony_ci#define Y  /* .. */ 2 + 2
406e1051a39Sopenharmony_ci#define Z  3          + 3 * (*a++)
407e1051a39Sopenharmony_ci
408e1051a39Sopenharmony_cistatic varref cmp_vars[] = { /* comment.  comment?  comment!  */
409e1051a39Sopenharmony_ci    {&opt_config}, {&opt_section},
410e1051a39Sopenharmony_ci
411e1051a39Sopenharmony_ci    {&opt_server}, {&opt_proxy}, {&opt_path},
412e1051a39Sopenharmony_ci};
413e1051a39Sopenharmony_ci
414e1051a39Sopenharmony_ci#define SWITCH(x)                               \
415e1051a39Sopenharmony_ci    switch (x) {                                \
416e1051a39Sopenharmony_ci    case 0:                                     \
417e1051a39Sopenharmony_ci        break;                                  \
418e1051a39Sopenharmony_ci    default:                                    \
419e1051a39Sopenharmony_ci        break;                                  \
420e1051a39Sopenharmony_ci    }
421e1051a39Sopenharmony_ci
422e1051a39Sopenharmony_ci#define DEFINE_SET_GET_BASE_TEST(PREFIX, SETN, GETN, DUP, FIELD, TYPE, ERR, \
423e1051a39Sopenharmony_ci                                 DEFAULT, NEW, FREE) \
424e1051a39Sopenharmony_ci    static int execute_CTX_##SETN##_##GETN##_##FIELD( \
425e1051a39Sopenharmony_ci                                                     TEST_FIXTURE *fixture) \
426e1051a39Sopenharmony_ci    { \
427e1051a39Sopenharmony_ci        CTX *ctx = fixture->ctx; \
428e1051a39Sopenharmony_ci        int (*set_fn)(CTX *ctx, TYPE) = \
429e1051a39Sopenharmony_ci            (int (*)(CTX *ctx, TYPE))PREFIX##_##SETN##_##FIELD; \
430e1051a39Sopenharmony_ci        /* comment */ \
431e1051a39Sopenharmony_ci    }
432e1051a39Sopenharmony_ci
433e1051a39Sopenharmony_ciunion un var; /* struct/union/enum in variable type */
434e1051a39Sopenharmony_cistruct provider_store_st *f() /* struct/union/enum in function return type */
435e1051a39Sopenharmony_ci{
436e1051a39Sopenharmony_ci}
437e1051a39Sopenharmony_cistatic void f(struct pem_pass_data *data) /* struct/union/enum in arg list */
438e1051a39Sopenharmony_ci{
439e1051a39Sopenharmony_ci}
440e1051a39Sopenharmony_ci
441e1051a39Sopenharmony_cistatic void *fun(void)
442e1051a39Sopenharmony_ci{
443e1051a39Sopenharmony_ci    if (pem_name != NULL)
444e1051a39Sopenharmony_ci        /* comment */
445e1051a39Sopenharmony_ci        return NULL;
446e1051a39Sopenharmony_ci
447e1051a39Sopenharmony_cilabel0:
448e1051a39Sopenharmony_ci label1: /* allow special indent 1 for label at outermost level in body */
449e1051a39Sopenharmony_ci    do {
450e1051a39Sopenharmony_ci    label2:
451e1051a39Sopenharmony_ci        size_t available_len, data_len;
452e1051a39Sopenharmony_ci        const char *curr = txt, *next = txt;
453e1051a39Sopenharmony_ci        char *tmp;
454e1051a39Sopenharmony_ci
455e1051a39Sopenharmony_ci        {
456e1051a39Sopenharmony_ci        label3:
457e1051a39Sopenharmony_ci        }
458e1051a39Sopenharmony_ci    } while (1);
459e1051a39Sopenharmony_ci
460e1051a39Sopenharmony_ci    char *intraline_string_with_comment_delimiters_and_dbl_space = "1  /*1";
461e1051a39Sopenharmony_ci    char *multiline_string_with_comment_delimiters_and_dbl_space = "1  /*1\
462e1051a39Sopenharmony_ci2222222\'22222222222222222\"222222222" "33333  /*3333333333" "44  /*44444444444\
463e1051a39Sopenharmony_ci55555555555555\
464e1051a39Sopenharmony_ci6666";
465e1051a39Sopenharmony_ci}
466e1051a39Sopenharmony_ci
467e1051a39Sopenharmony_ciASN1_CHOICE(OSSL_CRMF_POPO) = {
468e1051a39Sopenharmony_ci    ASN1_IMP(OSSL_CRMF_POPO, value.raVerified, ASN1_NULL, 0),
469e1051a39Sopenharmony_ci    ASN1_EXP(OSSL_CRMF_POPO, value.keyAgreement, OSSL_CRMF_POPOPRIVKEY, 3)
470e1051a39Sopenharmony_ci} ASN1_CHOICE_END(OSSL_CRMF_POPO)
471e1051a39Sopenharmony_ciIMPLEMENT_ASN1_FUNCTIONS(OSSL_CRMF_POPO)
472e1051a39Sopenharmony_ci
473e1051a39Sopenharmony_ciASN1_ADB(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) = {
474e1051a39Sopenharmony_ci    ADB_ENTRY(NID_id_regCtrl_regToken,
475e1051a39Sopenharmony_ci              ASN1_SIMPLE(OSSL_CRMF_ATTRIBUTETYPEANDVALUE,
476e1051a39Sopenharmony_ci                          value.regToken, ASN1_UTF8STRING)),
477e1051a39Sopenharmony_ci} ASN1_ADB_END(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, 0, type, 0,
478e1051a39Sopenharmony_ci               &attributetypeandvalue_default_tt, NULL);
479e1051a39Sopenharmony_ci
480e1051a39Sopenharmony_ciASN1_ITEM_TEMPLATE(OSSL_CRMF_MSGS) =
481e1051a39Sopenharmony_ci    ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0,
482e1051a39Sopenharmony_ci                          OSSL_CRMF_MSGS, OSSL_CRMF_MSG)
483e1051a39Sopenharmony_ciASN1_ITEM_TEMPLATE_END(OSSL_CRMF_MSGS)
484e1051a39Sopenharmony_ci
485e1051a39Sopenharmony_civoid f_looong_body_200()
486e1051a39Sopenharmony_ci{ /* function body length up to 200 lines accepted */
487e1051a39Sopenharmony_ci    ;
488e1051a39Sopenharmony_ci    ;
489e1051a39Sopenharmony_ci    ;
490e1051a39Sopenharmony_ci    ;
491e1051a39Sopenharmony_ci    ;
492e1051a39Sopenharmony_ci    ;
493e1051a39Sopenharmony_ci    ;
494e1051a39Sopenharmony_ci    ;
495e1051a39Sopenharmony_ci    ;
496e1051a39Sopenharmony_ci    ;
497e1051a39Sopenharmony_ci    ;
498e1051a39Sopenharmony_ci    ;
499e1051a39Sopenharmony_ci    ;
500e1051a39Sopenharmony_ci    ;
501e1051a39Sopenharmony_ci    ;
502e1051a39Sopenharmony_ci    ;
503e1051a39Sopenharmony_ci    ;
504e1051a39Sopenharmony_ci    ;
505e1051a39Sopenharmony_ci    ;
506e1051a39Sopenharmony_ci    ;
507e1051a39Sopenharmony_ci    ;
508e1051a39Sopenharmony_ci    ;
509e1051a39Sopenharmony_ci    ;
510e1051a39Sopenharmony_ci    ;
511e1051a39Sopenharmony_ci    ;
512e1051a39Sopenharmony_ci    ;
513e1051a39Sopenharmony_ci    ;
514e1051a39Sopenharmony_ci    ;
515e1051a39Sopenharmony_ci    ;
516e1051a39Sopenharmony_ci    ;
517e1051a39Sopenharmony_ci    ;
518e1051a39Sopenharmony_ci    ;
519e1051a39Sopenharmony_ci    ;
520e1051a39Sopenharmony_ci    ;
521e1051a39Sopenharmony_ci    ;
522e1051a39Sopenharmony_ci    ;
523e1051a39Sopenharmony_ci    ;
524e1051a39Sopenharmony_ci    ;
525e1051a39Sopenharmony_ci    ;
526e1051a39Sopenharmony_ci    ;
527e1051a39Sopenharmony_ci    ;
528e1051a39Sopenharmony_ci    ;
529e1051a39Sopenharmony_ci    ;
530e1051a39Sopenharmony_ci    ;
531e1051a39Sopenharmony_ci    ;
532e1051a39Sopenharmony_ci    ;
533e1051a39Sopenharmony_ci    ;
534e1051a39Sopenharmony_ci    ;
535e1051a39Sopenharmony_ci    ;
536e1051a39Sopenharmony_ci    ;
537e1051a39Sopenharmony_ci    ;
538e1051a39Sopenharmony_ci    ;
539e1051a39Sopenharmony_ci    ;
540e1051a39Sopenharmony_ci    ;
541e1051a39Sopenharmony_ci    ;
542e1051a39Sopenharmony_ci    ;
543e1051a39Sopenharmony_ci    ;
544e1051a39Sopenharmony_ci    ;
545e1051a39Sopenharmony_ci    ;
546e1051a39Sopenharmony_ci    ;
547e1051a39Sopenharmony_ci    ;
548e1051a39Sopenharmony_ci    ;
549e1051a39Sopenharmony_ci    ;
550e1051a39Sopenharmony_ci    ;
551e1051a39Sopenharmony_ci    ;
552e1051a39Sopenharmony_ci    ;
553e1051a39Sopenharmony_ci    ;
554e1051a39Sopenharmony_ci    ;
555e1051a39Sopenharmony_ci    ;
556e1051a39Sopenharmony_ci    ;
557e1051a39Sopenharmony_ci    ;
558e1051a39Sopenharmony_ci    ;
559e1051a39Sopenharmony_ci    ;
560e1051a39Sopenharmony_ci    ;
561e1051a39Sopenharmony_ci    ;
562e1051a39Sopenharmony_ci    ;
563e1051a39Sopenharmony_ci    ;
564e1051a39Sopenharmony_ci    ;
565e1051a39Sopenharmony_ci    ;
566e1051a39Sopenharmony_ci    ;
567e1051a39Sopenharmony_ci    ;
568e1051a39Sopenharmony_ci    ;
569e1051a39Sopenharmony_ci    ;
570e1051a39Sopenharmony_ci    ;
571e1051a39Sopenharmony_ci    ;
572e1051a39Sopenharmony_ci    ;
573e1051a39Sopenharmony_ci    ;
574e1051a39Sopenharmony_ci    ;
575e1051a39Sopenharmony_ci    ;
576e1051a39Sopenharmony_ci    ;
577e1051a39Sopenharmony_ci    ;
578e1051a39Sopenharmony_ci    ;
579e1051a39Sopenharmony_ci    ;
580e1051a39Sopenharmony_ci    ;
581e1051a39Sopenharmony_ci    ;
582e1051a39Sopenharmony_ci    ;
583e1051a39Sopenharmony_ci    ;
584e1051a39Sopenharmony_ci    ;
585e1051a39Sopenharmony_ci    ;
586e1051a39Sopenharmony_ci    ;
587e1051a39Sopenharmony_ci    ;
588e1051a39Sopenharmony_ci    ;
589e1051a39Sopenharmony_ci    ;
590e1051a39Sopenharmony_ci    ;
591e1051a39Sopenharmony_ci    ;
592e1051a39Sopenharmony_ci    ;
593e1051a39Sopenharmony_ci    ;
594e1051a39Sopenharmony_ci    ;
595e1051a39Sopenharmony_ci    ;
596e1051a39Sopenharmony_ci    ;
597e1051a39Sopenharmony_ci    ;
598e1051a39Sopenharmony_ci    ;
599e1051a39Sopenharmony_ci    ;
600e1051a39Sopenharmony_ci    ;
601e1051a39Sopenharmony_ci    ;
602e1051a39Sopenharmony_ci    ;
603e1051a39Sopenharmony_ci    ;
604e1051a39Sopenharmony_ci    ;
605e1051a39Sopenharmony_ci    ;
606e1051a39Sopenharmony_ci    ;
607e1051a39Sopenharmony_ci    ;
608e1051a39Sopenharmony_ci    ;
609e1051a39Sopenharmony_ci    ;
610e1051a39Sopenharmony_ci    ;
611e1051a39Sopenharmony_ci    ;
612e1051a39Sopenharmony_ci    ;
613e1051a39Sopenharmony_ci    ;
614e1051a39Sopenharmony_ci    ;
615e1051a39Sopenharmony_ci    ;
616e1051a39Sopenharmony_ci    ;
617e1051a39Sopenharmony_ci    ;
618e1051a39Sopenharmony_ci    ;
619e1051a39Sopenharmony_ci    ;
620e1051a39Sopenharmony_ci    ;
621e1051a39Sopenharmony_ci    ;
622e1051a39Sopenharmony_ci    ;
623e1051a39Sopenharmony_ci    ;
624e1051a39Sopenharmony_ci    ;
625e1051a39Sopenharmony_ci    ;
626e1051a39Sopenharmony_ci    ;
627e1051a39Sopenharmony_ci    ;
628e1051a39Sopenharmony_ci    ;
629e1051a39Sopenharmony_ci    ;
630e1051a39Sopenharmony_ci    ;
631e1051a39Sopenharmony_ci    ;
632e1051a39Sopenharmony_ci    ;
633e1051a39Sopenharmony_ci    ;
634e1051a39Sopenharmony_ci    ;
635e1051a39Sopenharmony_ci    ;
636e1051a39Sopenharmony_ci    ;
637e1051a39Sopenharmony_ci    ;
638e1051a39Sopenharmony_ci    ;
639e1051a39Sopenharmony_ci    ;
640e1051a39Sopenharmony_ci    ;
641e1051a39Sopenharmony_ci    ;
642e1051a39Sopenharmony_ci    ;
643e1051a39Sopenharmony_ci    ;
644e1051a39Sopenharmony_ci    ;
645e1051a39Sopenharmony_ci    ;
646e1051a39Sopenharmony_ci    ;
647e1051a39Sopenharmony_ci    ;
648e1051a39Sopenharmony_ci    ;
649e1051a39Sopenharmony_ci    ;
650e1051a39Sopenharmony_ci    ;
651e1051a39Sopenharmony_ci    ;
652e1051a39Sopenharmony_ci    ;
653e1051a39Sopenharmony_ci    ;
654e1051a39Sopenharmony_ci    ;
655e1051a39Sopenharmony_ci    ;
656e1051a39Sopenharmony_ci    ;
657e1051a39Sopenharmony_ci    ;
658e1051a39Sopenharmony_ci    ;
659e1051a39Sopenharmony_ci    ;
660e1051a39Sopenharmony_ci    ;
661e1051a39Sopenharmony_ci    ;
662e1051a39Sopenharmony_ci    ;
663e1051a39Sopenharmony_ci    ;
664e1051a39Sopenharmony_ci    ;
665e1051a39Sopenharmony_ci    ;
666e1051a39Sopenharmony_ci    ;
667e1051a39Sopenharmony_ci    ;
668e1051a39Sopenharmony_ci    ;
669e1051a39Sopenharmony_ci    ;
670e1051a39Sopenharmony_ci    ;
671e1051a39Sopenharmony_ci    ;
672e1051a39Sopenharmony_ci    ;
673e1051a39Sopenharmony_ci    ;
674e1051a39Sopenharmony_ci    ;
675e1051a39Sopenharmony_ci    ;
676e1051a39Sopenharmony_ci    ;
677e1051a39Sopenharmony_ci    ;
678e1051a39Sopenharmony_ci    ;
679e1051a39Sopenharmony_ci    ;
680e1051a39Sopenharmony_ci    ;
681e1051a39Sopenharmony_ci    ;
682e1051a39Sopenharmony_ci    ;
683e1051a39Sopenharmony_ci    ;
684e1051a39Sopenharmony_ci    ;
685e1051a39Sopenharmony_ci    ;
686e1051a39Sopenharmony_ci    ;
687e1051a39Sopenharmony_ci}
688e1051a39Sopenharmony_ci
689e1051a39Sopenharmony_civoid f_looong_body_201()
690e1051a39Sopenharmony_ci{ /* function body length > 200 lines, but LONG BODY marker present */
691e1051a39Sopenharmony_ci    ;
692e1051a39Sopenharmony_ci    ;
693e1051a39Sopenharmony_ci    ;
694e1051a39Sopenharmony_ci    ;
695e1051a39Sopenharmony_ci    ;
696e1051a39Sopenharmony_ci    ;
697e1051a39Sopenharmony_ci    ;
698e1051a39Sopenharmony_ci    ;
699e1051a39Sopenharmony_ci    ;
700e1051a39Sopenharmony_ci    ;
701e1051a39Sopenharmony_ci    ;
702e1051a39Sopenharmony_ci    ;
703e1051a39Sopenharmony_ci    ;
704e1051a39Sopenharmony_ci    ;
705e1051a39Sopenharmony_ci    ;
706e1051a39Sopenharmony_ci    ;
707e1051a39Sopenharmony_ci    ;
708e1051a39Sopenharmony_ci    ;
709e1051a39Sopenharmony_ci    ;
710e1051a39Sopenharmony_ci    ;
711e1051a39Sopenharmony_ci    ;
712e1051a39Sopenharmony_ci    ;
713e1051a39Sopenharmony_ci    ;
714e1051a39Sopenharmony_ci    ;
715e1051a39Sopenharmony_ci    ;
716e1051a39Sopenharmony_ci    ;
717e1051a39Sopenharmony_ci    ;
718e1051a39Sopenharmony_ci    ;
719e1051a39Sopenharmony_ci    ;
720e1051a39Sopenharmony_ci    ;
721e1051a39Sopenharmony_ci    ;
722e1051a39Sopenharmony_ci    ;
723e1051a39Sopenharmony_ci    ;
724e1051a39Sopenharmony_ci    ;
725e1051a39Sopenharmony_ci    ;
726e1051a39Sopenharmony_ci    ;
727e1051a39Sopenharmony_ci    ;
728e1051a39Sopenharmony_ci    ;
729e1051a39Sopenharmony_ci    ;
730e1051a39Sopenharmony_ci    ;
731e1051a39Sopenharmony_ci    ;
732e1051a39Sopenharmony_ci    ;
733e1051a39Sopenharmony_ci    ;
734e1051a39Sopenharmony_ci    ;
735e1051a39Sopenharmony_ci    ;
736e1051a39Sopenharmony_ci    ;
737e1051a39Sopenharmony_ci    ;
738e1051a39Sopenharmony_ci    ;
739e1051a39Sopenharmony_ci    ;
740e1051a39Sopenharmony_ci    ;
741e1051a39Sopenharmony_ci    ;
742e1051a39Sopenharmony_ci    ;
743e1051a39Sopenharmony_ci    ;
744e1051a39Sopenharmony_ci    ;
745e1051a39Sopenharmony_ci    ;
746e1051a39Sopenharmony_ci    ;
747e1051a39Sopenharmony_ci    ;
748e1051a39Sopenharmony_ci    ;
749e1051a39Sopenharmony_ci    ;
750e1051a39Sopenharmony_ci    ;
751e1051a39Sopenharmony_ci    ;
752e1051a39Sopenharmony_ci    ;
753e1051a39Sopenharmony_ci    ;
754e1051a39Sopenharmony_ci    ;
755e1051a39Sopenharmony_ci    ;
756e1051a39Sopenharmony_ci    ;
757e1051a39Sopenharmony_ci    ;
758e1051a39Sopenharmony_ci    ;
759e1051a39Sopenharmony_ci    ;
760e1051a39Sopenharmony_ci    ;
761e1051a39Sopenharmony_ci    ;
762e1051a39Sopenharmony_ci    ;
763e1051a39Sopenharmony_ci    ;
764e1051a39Sopenharmony_ci    ;
765e1051a39Sopenharmony_ci    ;
766e1051a39Sopenharmony_ci    ;
767e1051a39Sopenharmony_ci    ;
768e1051a39Sopenharmony_ci    ;
769e1051a39Sopenharmony_ci    ;
770e1051a39Sopenharmony_ci    ;
771e1051a39Sopenharmony_ci    ;
772e1051a39Sopenharmony_ci    ;
773e1051a39Sopenharmony_ci    ;
774e1051a39Sopenharmony_ci    ;
775e1051a39Sopenharmony_ci    ;
776e1051a39Sopenharmony_ci    ;
777e1051a39Sopenharmony_ci    ;
778e1051a39Sopenharmony_ci    ;
779e1051a39Sopenharmony_ci    ;
780e1051a39Sopenharmony_ci    ;
781e1051a39Sopenharmony_ci    ;
782e1051a39Sopenharmony_ci    ;
783e1051a39Sopenharmony_ci    ;
784e1051a39Sopenharmony_ci    ;
785e1051a39Sopenharmony_ci    ;
786e1051a39Sopenharmony_ci    ;
787e1051a39Sopenharmony_ci    ;
788e1051a39Sopenharmony_ci    ;
789e1051a39Sopenharmony_ci    ;
790e1051a39Sopenharmony_ci    ;
791e1051a39Sopenharmony_ci    ;
792e1051a39Sopenharmony_ci    ;
793e1051a39Sopenharmony_ci    ;
794e1051a39Sopenharmony_ci    ;
795e1051a39Sopenharmony_ci    ;
796e1051a39Sopenharmony_ci    ;
797e1051a39Sopenharmony_ci    ;
798e1051a39Sopenharmony_ci    ;
799e1051a39Sopenharmony_ci    ;
800e1051a39Sopenharmony_ci    ;
801e1051a39Sopenharmony_ci    ;
802e1051a39Sopenharmony_ci    ;
803e1051a39Sopenharmony_ci    ;
804e1051a39Sopenharmony_ci    ;
805e1051a39Sopenharmony_ci    ;
806e1051a39Sopenharmony_ci    ;
807e1051a39Sopenharmony_ci    ;
808e1051a39Sopenharmony_ci    ;
809e1051a39Sopenharmony_ci    ;
810e1051a39Sopenharmony_ci    ;
811e1051a39Sopenharmony_ci    ;
812e1051a39Sopenharmony_ci    ;
813e1051a39Sopenharmony_ci    ;
814e1051a39Sopenharmony_ci    ;
815e1051a39Sopenharmony_ci    ;
816e1051a39Sopenharmony_ci    ;
817e1051a39Sopenharmony_ci    ;
818e1051a39Sopenharmony_ci    ;
819e1051a39Sopenharmony_ci    ;
820e1051a39Sopenharmony_ci    ;
821e1051a39Sopenharmony_ci    ;
822e1051a39Sopenharmony_ci    ;
823e1051a39Sopenharmony_ci    ;
824e1051a39Sopenharmony_ci    ;
825e1051a39Sopenharmony_ci    ;
826e1051a39Sopenharmony_ci    ;
827e1051a39Sopenharmony_ci    ;
828e1051a39Sopenharmony_ci    ;
829e1051a39Sopenharmony_ci    ;
830e1051a39Sopenharmony_ci    ;
831e1051a39Sopenharmony_ci    ;
832e1051a39Sopenharmony_ci    ;
833e1051a39Sopenharmony_ci    ;
834e1051a39Sopenharmony_ci    ;
835e1051a39Sopenharmony_ci    ;
836e1051a39Sopenharmony_ci    ;
837e1051a39Sopenharmony_ci    ;
838e1051a39Sopenharmony_ci    ;
839e1051a39Sopenharmony_ci    ;
840e1051a39Sopenharmony_ci    ;
841e1051a39Sopenharmony_ci    ;
842e1051a39Sopenharmony_ci    ;
843e1051a39Sopenharmony_ci    ;
844e1051a39Sopenharmony_ci    ;
845e1051a39Sopenharmony_ci    ;
846e1051a39Sopenharmony_ci    ;
847e1051a39Sopenharmony_ci    ;
848e1051a39Sopenharmony_ci    ;
849e1051a39Sopenharmony_ci    ;
850e1051a39Sopenharmony_ci    ;
851e1051a39Sopenharmony_ci    ;
852e1051a39Sopenharmony_ci    ;
853e1051a39Sopenharmony_ci    ;
854e1051a39Sopenharmony_ci    ;
855e1051a39Sopenharmony_ci    ;
856e1051a39Sopenharmony_ci    ;
857e1051a39Sopenharmony_ci    ;
858e1051a39Sopenharmony_ci    ;
859e1051a39Sopenharmony_ci    ;
860e1051a39Sopenharmony_ci    ;
861e1051a39Sopenharmony_ci    ;
862e1051a39Sopenharmony_ci    ;
863e1051a39Sopenharmony_ci    ;
864e1051a39Sopenharmony_ci    ;
865e1051a39Sopenharmony_ci    ;
866e1051a39Sopenharmony_ci    ;
867e1051a39Sopenharmony_ci    ;
868e1051a39Sopenharmony_ci    ;
869e1051a39Sopenharmony_ci    ;
870e1051a39Sopenharmony_ci    ;
871e1051a39Sopenharmony_ci    ;
872e1051a39Sopenharmony_ci    ;
873e1051a39Sopenharmony_ci    ;
874e1051a39Sopenharmony_ci    ;
875e1051a39Sopenharmony_ci    ;
876e1051a39Sopenharmony_ci    ;
877e1051a39Sopenharmony_ci    ;
878e1051a39Sopenharmony_ci    ;
879e1051a39Sopenharmony_ci    ;
880e1051a39Sopenharmony_ci    ;
881e1051a39Sopenharmony_ci    ;
882e1051a39Sopenharmony_ci    ;
883e1051a39Sopenharmony_ci    ;
884e1051a39Sopenharmony_ci    ;
885e1051a39Sopenharmony_ci    ;
886e1051a39Sopenharmony_ci    ;
887e1051a39Sopenharmony_ci    ;
888e1051a39Sopenharmony_ci    ;
889e1051a39Sopenharmony_ci    ;
890e1051a39Sopenharmony_ci    ;
891e1051a39Sopenharmony_ci    ;
892e1051a39Sopenharmony_ci    ;
893e1051a39Sopenharmony_ci}
894