11cb0ef41Sopenharmony_ci/* 21cb0ef41Sopenharmony_ci * Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved. 31cb0ef41Sopenharmony_ci * Copyright Siemens AG 2015-2022 41cb0ef41Sopenharmony_ci * 51cb0ef41Sopenharmony_ci * Licensed under the Apache License 2.0 (the "License"). You may not use 61cb0ef41Sopenharmony_ci * this file except in compliance with the License. You can obtain a copy 71cb0ef41Sopenharmony_ci * in the file LICENSE in the source distribution or at 81cb0ef41Sopenharmony_ci * https://www.openssl.org/source/license.html 91cb0ef41Sopenharmony_ci */ 101cb0ef41Sopenharmony_ci 111cb0ef41Sopenharmony_ci/* 121cb0ef41Sopenharmony_ci * A collection of test cases where check-format.pl should not report issues. 131cb0ef41Sopenharmony_ci * There are some known false positives, though, which are marked below. 141cb0ef41Sopenharmony_ci */ 151cb0ef41Sopenharmony_ci 161cb0ef41Sopenharmony_ci#include <errno.h> /* should not report whitespace nits within <...> */ 171cb0ef41Sopenharmony_ci#define F \ 181cb0ef41Sopenharmony_ci void f() \ 191cb0ef41Sopenharmony_ci { \ 201cb0ef41Sopenharmony_ci int i; \ 211cb0ef41Sopenharmony_ci int j; \ 221cb0ef41Sopenharmony_ci \ 231cb0ef41Sopenharmony_ci return; \ 241cb0ef41Sopenharmony_ci } 251cb0ef41Sopenharmony_ci 261cb0ef41Sopenharmony_ci/* allow extra SPC in single-line comment */ 271cb0ef41Sopenharmony_ci/* 281cb0ef41Sopenharmony_ci * allow extra SPC in regular multi-line comment 291cb0ef41Sopenharmony_ci */ 301cb0ef41Sopenharmony_ci/*- 311cb0ef41Sopenharmony_ci * allow extra SPC in format-tagged multi-line comment 321cb0ef41Sopenharmony_ci */ 331cb0ef41Sopenharmony_ci/** allow extra '*' in comment opening */ 341cb0ef41Sopenharmony_ci/*! allow extra '!' in comment opening */ 351cb0ef41Sopenharmony_ci/* 361cb0ef41Sopenharmony_ci ** allow "**" as first non-space chars of a line within multi-line comment 371cb0ef41Sopenharmony_ci */ 381cb0ef41Sopenharmony_ci 391cb0ef41Sopenharmony_ciint f(void) /* 401cb0ef41Sopenharmony_ci * trailing multi-line comment 411cb0ef41Sopenharmony_ci */ 421cb0ef41Sopenharmony_ci{ 431cb0ef41Sopenharmony_ci typedef int INT; 441cb0ef41Sopenharmony_ci void v; 451cb0ef41Sopenharmony_ci short b; 461cb0ef41Sopenharmony_ci char c; 471cb0ef41Sopenharmony_ci signed s; 481cb0ef41Sopenharmony_ci unsigned u; 491cb0ef41Sopenharmony_ci int i; 501cb0ef41Sopenharmony_ci long l; 511cb0ef41Sopenharmony_ci float f; 521cb0ef41Sopenharmony_ci double d; 531cb0ef41Sopenharmony_ci enum {} enu; 541cb0ef41Sopenharmony_ci struct {} stru; 551cb0ef41Sopenharmony_ci union {} un; 561cb0ef41Sopenharmony_ci auto a; 571cb0ef41Sopenharmony_ci extern e; 581cb0ef41Sopenharmony_ci static int stat; 591cb0ef41Sopenharmony_ci const int con; 601cb0ef41Sopenharmony_ci volatile int vola; 611cb0ef41Sopenharmony_ci register int reg; 621cb0ef41Sopenharmony_ci OSSL_x y, *p = params; 631cb0ef41Sopenharmony_ci int params[]; 641cb0ef41Sopenharmony_ci OSSL_PARAM * (* params []) [MAX + 1]; 651cb0ef41Sopenharmony_ci XY *(* fn)(int a, char b); 661cb0ef41Sopenharmony_ci /* 671cb0ef41Sopenharmony_ci * multi-line comment should not disturb detection of local decls 681cb0ef41Sopenharmony_ci */ 691cb0ef41Sopenharmony_ci BIO1 ***b; 701cb0ef41Sopenharmony_ci /* intra-line comment should not disturb detection of local decls */ 711cb0ef41Sopenharmony_ci unsigned k; 721cb0ef41Sopenharmony_ci 731cb0ef41Sopenharmony_ci /* intra-line comment should not disturb detection of end of local decls */ 741cb0ef41Sopenharmony_ci 751cb0ef41Sopenharmony_ci { 761cb0ef41Sopenharmony_ci int x; /* just decls in block */ 771cb0ef41Sopenharmony_ci } 781cb0ef41Sopenharmony_ci if (p != (unsigned char *) 791cb0ef41Sopenharmony_ci &(ctx->tmp[0])) { 801cb0ef41Sopenharmony_ci i -= (p - (unsigned char *) /* do not confuse with var decl */ 811cb0ef41Sopenharmony_ci &(ctx->tmp[0])); 821cb0ef41Sopenharmony_ci } 831cb0ef41Sopenharmony_ci { 841cb0ef41Sopenharmony_ci ctx->buf_off = 0; /* do not confuse with var decl */ 851cb0ef41Sopenharmony_ci return 0; 861cb0ef41Sopenharmony_ci } 871cb0ef41Sopenharmony_ci { 881cb0ef41Sopenharmony_ci ctx->buf_len = EVP_EncodeBlock((unsigned char *)ctx->buf, 891cb0ef41Sopenharmony_ci (unsigned char *)ctx->tmp, /* no decl */ 901cb0ef41Sopenharmony_ci ctx->tmp_len); 911cb0ef41Sopenharmony_ci } 921cb0ef41Sopenharmony_ci { 931cb0ef41Sopenharmony_ci EVP_EncodeFinal(ctx->base64, 941cb0ef41Sopenharmony_ci (unsigned char *)ctx->buf, &(ctx->len)); /* no decl */ 951cb0ef41Sopenharmony_ci /* push out the bytes */ 961cb0ef41Sopenharmony_ci goto again; 971cb0ef41Sopenharmony_ci } 981cb0ef41Sopenharmony_ci { 991cb0ef41Sopenharmony_ci f(1, (unsigned long)2); /* no decl */ 1001cb0ef41Sopenharmony_ci x; 1011cb0ef41Sopenharmony_ci } 1021cb0ef41Sopenharmony_ci { 1031cb0ef41Sopenharmony_ci char *pass_str = get_passwd(opt_srv_secret, "x"); 1041cb0ef41Sopenharmony_ci 1051cb0ef41Sopenharmony_ci if (pass_str != NULL) { 1061cb0ef41Sopenharmony_ci cleanse(opt_srv_secret); 1071cb0ef41Sopenharmony_ci res = OSSL_CMP_CTX_set1_secretValue(ctx, (unsigned char *)pass_str, 1081cb0ef41Sopenharmony_ci strlen(pass_str)); 1091cb0ef41Sopenharmony_ci clear_free(pass_str); 1101cb0ef41Sopenharmony_ci } 1111cb0ef41Sopenharmony_ci } 1121cb0ef41Sopenharmony_ci} 1131cb0ef41Sopenharmony_ci 1141cb0ef41Sopenharmony_ciint g(void) 1151cb0ef41Sopenharmony_ci{ 1161cb0ef41Sopenharmony_ci if (ctx == NULL) { /* non-leading end-of-line comment */ 1171cb0ef41Sopenharmony_ci if (/* comment after '(' */ pem_name != NULL /* comment before ')' */) 1181cb0ef41Sopenharmony_ci /* entire-line comment indent usually like for the following line */ 1191cb0ef41Sopenharmony_ci return NULL; /* hanging indent also for this line after comment */ 1201cb0ef41Sopenharmony_ci /* leading comment has same indentation as normal code */ stmt; 1211cb0ef41Sopenharmony_ci /* entire-line comment may have same indent as normal code */ 1221cb0ef41Sopenharmony_ci } 1231cb0ef41Sopenharmony_ci for (i = 0; i < n; i++) 1241cb0ef41Sopenharmony_ci for (; i < n; i++) 1251cb0ef41Sopenharmony_ci for (i = 0; ; i++) 1261cb0ef41Sopenharmony_ci for (i = 0;; i++) 1271cb0ef41Sopenharmony_ci for (i = 0; i < n; ) 1281cb0ef41Sopenharmony_ci for (i = 0; i < n;) 1291cb0ef41Sopenharmony_ci ; 1301cb0ef41Sopenharmony_ci for (i = 0; ; ) 1311cb0ef41Sopenharmony_ci for (i = 0; ;) 1321cb0ef41Sopenharmony_ci for (i = 0;; ) 1331cb0ef41Sopenharmony_ci for (i = 0;;) 1341cb0ef41Sopenharmony_ci for (; i < n; ) 1351cb0ef41Sopenharmony_ci for (; j < n;) 1361cb0ef41Sopenharmony_ci for (; ; i++) 1371cb0ef41Sopenharmony_ci for (;; i++) 1381cb0ef41Sopenharmony_ci ; 1391cb0ef41Sopenharmony_ci for (;;) /* the only variant allowed in case of "empty" for (...) */ 1401cb0ef41Sopenharmony_ci ; 1411cb0ef41Sopenharmony_ci for (;;) ; /* should not trigger: space before ';' */ 1421cb0ef41Sopenharmony_ci lab: ; /* should not trigger: space before ';' */ 1431cb0ef41Sopenharmony_ci 1441cb0ef41Sopenharmony_ci#if X 1451cb0ef41Sopenharmony_ci if (1) /* bad style: just part of control structure depends on #if */ 1461cb0ef41Sopenharmony_ci#else 1471cb0ef41Sopenharmony_ci if (2) /*@ resulting false positive */ 1481cb0ef41Sopenharmony_ci#endif 1491cb0ef41Sopenharmony_ci c; /*@ resulting false positive */ 1501cb0ef41Sopenharmony_ci 1511cb0ef41Sopenharmony_ci if (1) 1521cb0ef41Sopenharmony_ci if (2) 1531cb0ef41Sopenharmony_ci c; 1541cb0ef41Sopenharmony_ci else 1551cb0ef41Sopenharmony_ci e; 1561cb0ef41Sopenharmony_ci else 1571cb0ef41Sopenharmony_ci f; 1581cb0ef41Sopenharmony_ci do 1591cb0ef41Sopenharmony_ci do 1601cb0ef41Sopenharmony_ci 2; 1611cb0ef41Sopenharmony_ci while (1); 1621cb0ef41Sopenharmony_ci while (2); 1631cb0ef41Sopenharmony_ci 1641cb0ef41Sopenharmony_ci if (1) 1651cb0ef41Sopenharmony_ci f(a, b); 1661cb0ef41Sopenharmony_ci do 1671cb0ef41Sopenharmony_ci 1; while (2); /*@ more than one stmt just to construct case */ 1681cb0ef41Sopenharmony_ci if (1) 1691cb0ef41Sopenharmony_ci f(a, b); 1701cb0ef41Sopenharmony_ci else 1711cb0ef41Sopenharmony_ci do 1721cb0ef41Sopenharmony_ci 1; 1731cb0ef41Sopenharmony_ci while (2); 1741cb0ef41Sopenharmony_ci if (1) 1751cb0ef41Sopenharmony_ci f(a, b); 1761cb0ef41Sopenharmony_ci else do /*@ (non-brace) code before 'do' just to construct case */ 1771cb0ef41Sopenharmony_ci 1; 1781cb0ef41Sopenharmony_ci while (2); 1791cb0ef41Sopenharmony_ci f1234(a, 1801cb0ef41Sopenharmony_ci b); do /*@ (non-brace) code before 'do' just to construct case */ 1811cb0ef41Sopenharmony_ci 1; 1821cb0ef41Sopenharmony_ci while (2); 1831cb0ef41Sopenharmony_ci if (1) 1841cb0ef41Sopenharmony_ci f(a, 1851cb0ef41Sopenharmony_ci b); do /*@ (non-brace) code before 'do' just to construct case */ 1861cb0ef41Sopenharmony_ci 1; 1871cb0ef41Sopenharmony_ci while (2); 1881cb0ef41Sopenharmony_ci if (1) 1891cb0ef41Sopenharmony_ci f(a, b); 1901cb0ef41Sopenharmony_ci else 1911cb0ef41Sopenharmony_ci do f(c, c); /*@ (non-brace) code after 'do' just to construct case */ 1921cb0ef41Sopenharmony_ci while (2); 1931cb0ef41Sopenharmony_ci 1941cb0ef41Sopenharmony_ci if (1) 1951cb0ef41Sopenharmony_ci f(a, b); 1961cb0ef41Sopenharmony_ci else 1971cb0ef41Sopenharmony_ci return; 1981cb0ef41Sopenharmony_ci if (1) 1991cb0ef41Sopenharmony_ci f(a, 2001cb0ef41Sopenharmony_ci b); else /*@ (non-brace) code before 'else' just to construct case */ 2011cb0ef41Sopenharmony_ci do 2021cb0ef41Sopenharmony_ci 1; 2031cb0ef41Sopenharmony_ci while (2); 2041cb0ef41Sopenharmony_ci 2051cb0ef41Sopenharmony_ci if (1) 2061cb0ef41Sopenharmony_ci { /*@ brace after 'if' not on same line just to construct case */ 2071cb0ef41Sopenharmony_ci c; 2081cb0ef41Sopenharmony_ci d; 2091cb0ef41Sopenharmony_ci } 2101cb0ef41Sopenharmony_ci /* this comment is correctly indented if it refers to the following line */ 2111cb0ef41Sopenharmony_ci d; 2121cb0ef41Sopenharmony_ci 2131cb0ef41Sopenharmony_ci if (1) { 2141cb0ef41Sopenharmony_ci 2; 2151cb0ef41Sopenharmony_ci } else /*@ no brace after 'else' just to construct case */ 2161cb0ef41Sopenharmony_ci 3; 2171cb0ef41Sopenharmony_ci do { 2181cb0ef41Sopenharmony_ci } while (x); 2191cb0ef41Sopenharmony_ci if (1) { 2201cb0ef41Sopenharmony_ci 2; 2211cb0ef41Sopenharmony_ci } else { 2221cb0ef41Sopenharmony_ci 3; 2231cb0ef41Sopenharmony_ci } 2241cb0ef41Sopenharmony_ci if (4) 2251cb0ef41Sopenharmony_ci 5; 2261cb0ef41Sopenharmony_ci else 2271cb0ef41Sopenharmony_ci 6; 2281cb0ef41Sopenharmony_ci 2291cb0ef41Sopenharmony_ci if (1) { 2301cb0ef41Sopenharmony_ci if (2) { 2311cb0ef41Sopenharmony_ci case MAC_TYPE_MAC: 2321cb0ef41Sopenharmony_ci { 2331cb0ef41Sopenharmony_ci EVP_MAC_CTX *new_mac_ctx; 2341cb0ef41Sopenharmony_ci 2351cb0ef41Sopenharmony_ci if (ctx->pkey == NULL) 2361cb0ef41Sopenharmony_ci return 0; 2371cb0ef41Sopenharmony_ci } 2381cb0ef41Sopenharmony_ci break; 2391cb0ef41Sopenharmony_ci default: 2401cb0ef41Sopenharmony_ci /* This should be dead code */ 2411cb0ef41Sopenharmony_ci return 0; 2421cb0ef41Sopenharmony_ci } 2431cb0ef41Sopenharmony_ci } 2441cb0ef41Sopenharmony_ci if (expr_line1 2451cb0ef41Sopenharmony_ci == expr_line2 2461cb0ef41Sopenharmony_ci && expr_line3) { 2471cb0ef41Sopenharmony_ci c1; 2481cb0ef41Sopenharmony_ci } else { 2491cb0ef41Sopenharmony_ci c; 2501cb0ef41Sopenharmony_ci d; 2511cb0ef41Sopenharmony_ci } 2521cb0ef41Sopenharmony_ci if (expr_line1 2531cb0ef41Sopenharmony_ci == expr_line2 2541cb0ef41Sopenharmony_ci && expr_line3) 2551cb0ef41Sopenharmony_ci hanging_stmt; 2561cb0ef41Sopenharmony_ci} 2571cb0ef41Sopenharmony_ci#define m \ 2581cb0ef41Sopenharmony_ci do { /* should not be confused with function header followed by '{' */ \ 2591cb0ef41Sopenharmony_ci } while (0) 2601cb0ef41Sopenharmony_ci 2611cb0ef41Sopenharmony_ci/* should not trigger: constant on LHS of comparison or assignment operator */ 2621cb0ef41Sopenharmony_ciX509 *x509 = NULL; 2631cb0ef41Sopenharmony_ciint y = a + 1 < b; 2641cb0ef41Sopenharmony_ciint ret, was_NULL = *certs == NULL; 2651cb0ef41Sopenharmony_ci 2661cb0ef41Sopenharmony_ci/* should not trigger: missing space before ... */ 2671cb0ef41Sopenharmony_cifloat z = 1e-6 * (-1) * b[+6] * 1e+1 * (a)->f * (long)+1 2681cb0ef41Sopenharmony_ci - (tmstart.tv_sec + tmstart.tv_nsec * 1e-9); 2691cb0ef41Sopenharmony_cistruct st = {-1, 0}; 2701cb0ef41Sopenharmony_ciint x = (y <<= 1) + (z <= 5.0); 2711cb0ef41Sopenharmony_ci 2721cb0ef41Sopenharmony_ciconst OPTIONS passwd_options[] = { 2731cb0ef41Sopenharmony_ci {"aixmd5", OPT_AIXMD5, '-', "AIX MD5-based password algorithm"}, 2741cb0ef41Sopenharmony_ci#if !defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_DEPRECATED_3_0) 2751cb0ef41Sopenharmony_ci {"crypt", OPT_CRYPT, '-', "Standard Unix password algorithm (default)"}, 2761cb0ef41Sopenharmony_ci#endif 2771cb0ef41Sopenharmony_ci OPT_R_OPTIONS, 2781cb0ef41Sopenharmony_ci 2791cb0ef41Sopenharmony_ci {NULL} 2801cb0ef41Sopenharmony_ci}; 2811cb0ef41Sopenharmony_ci 2821cb0ef41Sopenharmony_citypedef * d(int) 2831cb0ef41Sopenharmony_ci x; 2841cb0ef41Sopenharmony_citypedef (int) 2851cb0ef41Sopenharmony_cix; 2861cb0ef41Sopenharmony_citypedef (int)*() 2871cb0ef41Sopenharmony_ci x; 2881cb0ef41Sopenharmony_citypedef *int * 2891cb0ef41Sopenharmony_cix; 2901cb0ef41Sopenharmony_citypedef OSSL_CMP_MSG *(*cmp_srv_process_cb_t) 2911cb0ef41Sopenharmony_ci (OSSL_CMP_SRV_CTX *ctx, OSSL_CMP_MSG *msg) 2921cb0ef41Sopenharmony_ci xx; 2931cb0ef41Sopenharmony_ci 2941cb0ef41Sopenharmony_ci#define IF(cond) if (cond) 2951cb0ef41Sopenharmony_ci 2961cb0ef41Sopenharmony_ci_Pragma("GCC diagnostic push") 2971cb0ef41Sopenharmony_ci_Pragma("GCC diagnostic pop") 2981cb0ef41Sopenharmony_ci 2991cb0ef41Sopenharmony_ci#define CB_ERR_IF(cond, ctx, cert, depth, err) \ 3001cb0ef41Sopenharmony_ci if ((cond) && ((depth) < 0 || verify_cb_cert(ctx, cert, depth, err) == 0)) \ 3011cb0ef41Sopenharmony_ci return err 3021cb0ef41Sopenharmony_cistatic int verify_cb_crl(X509_STORE_CTX *ctx, int err) 3031cb0ef41Sopenharmony_ci{ 3041cb0ef41Sopenharmony_ci ctx->error = err; 3051cb0ef41Sopenharmony_ci return ctx->verify_cb(0, ctx); 3061cb0ef41Sopenharmony_ci} 3071cb0ef41Sopenharmony_ci 3081cb0ef41Sopenharmony_ci#ifdef CMP_FALLBACK_EST 3091cb0ef41Sopenharmony_ci# define CMP_FALLBACK_CERT_FILE "cert.pem" 3101cb0ef41Sopenharmony_ci#endif 3111cb0ef41Sopenharmony_ci 3121cb0ef41Sopenharmony_ci#define X509_OBJECT_get0_X509(obj) \ 3131cb0ef41Sopenharmony_ci ((obj) == NULL || (obj)->type != X509_LU_X509 ? NULL : (obj)->data.x509) 3141cb0ef41Sopenharmony_ci#define X509_STORE_CTX_set_current_cert(ctx, x) { (ctx)->current_cert = (x); } 3151cb0ef41Sopenharmony_ci#define X509_STORE_set_ex_data(ctx, idx, data) \ 3161cb0ef41Sopenharmony_ci CRYPTO_set_ex_data(&(ctx)->ex_data, (idx), (data)) 3171cb0ef41Sopenharmony_ci 3181cb0ef41Sopenharmony_citypedef int (*X509_STORE_CTX_check_revocation_fn)(X509_STORE_CTX *ctx); 3191cb0ef41Sopenharmony_ci#define X509_STORE_CTX_set_error_depth(ctx, depth) \ 3201cb0ef41Sopenharmony_ci { (ctx)->error_depth = (depth); } 3211cb0ef41Sopenharmony_ci#define EVP_PKEY_up_ref(x) ((x)->references++) 3221cb0ef41Sopenharmony_ci/* should not report missing blank line: */ 3231cb0ef41Sopenharmony_ciDECLARE_STACK_OF(OPENSSL_CSTRING) 3241cb0ef41Sopenharmony_cibool UTIL_iterate_dir(int (*fn)(const char *file, void *arg), void *arg, 3251cb0ef41Sopenharmony_ci const char *path, bool recursive); 3261cb0ef41Sopenharmony_cisize_t UTIL_url_encode( 3271cb0ef41Sopenharmony_ci size_t *size_needed 3281cb0ef41Sopenharmony_ci ); 3291cb0ef41Sopenharmony_cisize_t UTIL_url_encode(const char *source, 3301cb0ef41Sopenharmony_ci char *destination, 3311cb0ef41Sopenharmony_ci size_t destination_len, 3321cb0ef41Sopenharmony_ci size_t *size_needed); 3331cb0ef41Sopenharmony_ci#error well. oops. 3341cb0ef41Sopenharmony_ci 3351cb0ef41Sopenharmony_ciint f() 3361cb0ef41Sopenharmony_ci{ 3371cb0ef41Sopenharmony_ci c; 3381cb0ef41Sopenharmony_ci if (1) { 3391cb0ef41Sopenharmony_ci c; 3401cb0ef41Sopenharmony_ci } 3411cb0ef41Sopenharmony_ci c; 3421cb0ef41Sopenharmony_ci if (1) 3431cb0ef41Sopenharmony_ci if (2) 3441cb0ef41Sopenharmony_ci { /*@ brace after 'if' not on same line just to construct case */ 3451cb0ef41Sopenharmony_ci c; 3461cb0ef41Sopenharmony_ci } 3471cb0ef41Sopenharmony_ci e; 3481cb0ef41Sopenharmony_ci const usign = { 3491cb0ef41Sopenharmony_ci 0xDF, 3501cb0ef41Sopenharmony_ci { 3511cb0ef41Sopenharmony_ci dd 3521cb0ef41Sopenharmony_ci }, 3531cb0ef41Sopenharmony_ci dd 3541cb0ef41Sopenharmony_ci }; 3551cb0ef41Sopenharmony_ci const unsign = { 3561cb0ef41Sopenharmony_ci 0xDF, { 3571cb0ef41Sopenharmony_ci dd 3581cb0ef41Sopenharmony_ci }, 3591cb0ef41Sopenharmony_ci dd 3601cb0ef41Sopenharmony_ci }; 3611cb0ef41Sopenharmony_ci} 3621cb0ef41Sopenharmony_ciconst unsigned char trans_id[OSSL_CMP_TRANSACTIONID_LENGTH] = { 3631cb0ef41Sopenharmony_ci 0xDF, 3641cb0ef41Sopenharmony_ci}; 3651cb0ef41Sopenharmony_ciconst unsigned char trans_id[OSSL_CMP_TRANSACTIONID_LENGTH] = 3661cb0ef41Sopenharmony_ci { 3671cb0ef41Sopenharmony_ci 0xDF, 3681cb0ef41Sopenharmony_ci }; 3691cb0ef41Sopenharmony_citypedef 3701cb0ef41Sopenharmony_ciint 3711cb0ef41Sopenharmony_cia; 3721cb0ef41Sopenharmony_ci 3731cb0ef41Sopenharmony_citypedef 3741cb0ef41Sopenharmony_cistruct 3751cb0ef41Sopenharmony_ci{ 3761cb0ef41Sopenharmony_ci int a; 3771cb0ef41Sopenharmony_ci} b; 3781cb0ef41Sopenharmony_citypedef enum { 3791cb0ef41Sopenharmony_ci w = 0 3801cb0ef41Sopenharmony_ci} e_type; 3811cb0ef41Sopenharmony_citypedef struct { 3821cb0ef41Sopenharmony_ci enum { 3831cb0ef41Sopenharmony_ci w = 0 3841cb0ef41Sopenharmony_ci } e_type; 3851cb0ef41Sopenharmony_ci enum { 3861cb0ef41Sopenharmony_ci w = 0 3871cb0ef41Sopenharmony_ci } e_type; 3881cb0ef41Sopenharmony_ci} e; 3891cb0ef41Sopenharmony_cistruct s_type { 3901cb0ef41Sopenharmony_ci enum e_type { 3911cb0ef41Sopenharmony_ci w = 0 3921cb0ef41Sopenharmony_ci }; 3931cb0ef41Sopenharmony_ci}; 3941cb0ef41Sopenharmony_cistruct s_type 3951cb0ef41Sopenharmony_ci{ 3961cb0ef41Sopenharmony_ci enum e_type { 3971cb0ef41Sopenharmony_ci w = 0 3981cb0ef41Sopenharmony_ci }; 3991cb0ef41Sopenharmony_ci enum e2_type { 4001cb0ef41Sopenharmony_ci w = 0 4011cb0ef41Sopenharmony_ci }; 4021cb0ef41Sopenharmony_ci}; 4031cb0ef41Sopenharmony_ci 4041cb0ef41Sopenharmony_ci#define X 1 + 1 4051cb0ef41Sopenharmony_ci#define Y /* .. */ 2 + 2 4061cb0ef41Sopenharmony_ci#define Z 3 + 3 * (*a++) 4071cb0ef41Sopenharmony_ci 4081cb0ef41Sopenharmony_cistatic varref cmp_vars[] = { /* comment. comment? comment! */ 4091cb0ef41Sopenharmony_ci {&opt_config}, {&opt_section}, 4101cb0ef41Sopenharmony_ci 4111cb0ef41Sopenharmony_ci {&opt_server}, {&opt_proxy}, {&opt_path}, 4121cb0ef41Sopenharmony_ci}; 4131cb0ef41Sopenharmony_ci 4141cb0ef41Sopenharmony_ci#define SWITCH(x) \ 4151cb0ef41Sopenharmony_ci switch (x) { \ 4161cb0ef41Sopenharmony_ci case 0: \ 4171cb0ef41Sopenharmony_ci break; \ 4181cb0ef41Sopenharmony_ci default: \ 4191cb0ef41Sopenharmony_ci break; \ 4201cb0ef41Sopenharmony_ci } 4211cb0ef41Sopenharmony_ci 4221cb0ef41Sopenharmony_ci#define DEFINE_SET_GET_BASE_TEST(PREFIX, SETN, GETN, DUP, FIELD, TYPE, ERR, \ 4231cb0ef41Sopenharmony_ci DEFAULT, NEW, FREE) \ 4241cb0ef41Sopenharmony_ci static int execute_CTX_##SETN##_##GETN##_##FIELD( \ 4251cb0ef41Sopenharmony_ci TEST_FIXTURE *fixture) \ 4261cb0ef41Sopenharmony_ci { \ 4271cb0ef41Sopenharmony_ci CTX *ctx = fixture->ctx; \ 4281cb0ef41Sopenharmony_ci int (*set_fn)(CTX *ctx, TYPE) = \ 4291cb0ef41Sopenharmony_ci (int (*)(CTX *ctx, TYPE))PREFIX##_##SETN##_##FIELD; \ 4301cb0ef41Sopenharmony_ci /* comment */ \ 4311cb0ef41Sopenharmony_ci } 4321cb0ef41Sopenharmony_ci 4331cb0ef41Sopenharmony_ciunion un var; /* struct/union/enum in variable type */ 4341cb0ef41Sopenharmony_cistruct provider_store_st *f() /* struct/union/enum in function return type */ 4351cb0ef41Sopenharmony_ci{ 4361cb0ef41Sopenharmony_ci} 4371cb0ef41Sopenharmony_cistatic void f(struct pem_pass_data *data) /* struct/union/enum in arg list */ 4381cb0ef41Sopenharmony_ci{ 4391cb0ef41Sopenharmony_ci} 4401cb0ef41Sopenharmony_ci 4411cb0ef41Sopenharmony_cistatic void *fun(void) 4421cb0ef41Sopenharmony_ci{ 4431cb0ef41Sopenharmony_ci if (pem_name != NULL) 4441cb0ef41Sopenharmony_ci /* comment */ 4451cb0ef41Sopenharmony_ci return NULL; 4461cb0ef41Sopenharmony_ci 4471cb0ef41Sopenharmony_cilabel0: 4481cb0ef41Sopenharmony_ci label1: /* allow special indent 1 for label at outermost level in body */ 4491cb0ef41Sopenharmony_ci do { 4501cb0ef41Sopenharmony_ci label2: 4511cb0ef41Sopenharmony_ci size_t available_len, data_len; 4521cb0ef41Sopenharmony_ci const char *curr = txt, *next = txt; 4531cb0ef41Sopenharmony_ci char *tmp; 4541cb0ef41Sopenharmony_ci 4551cb0ef41Sopenharmony_ci { 4561cb0ef41Sopenharmony_ci label3: 4571cb0ef41Sopenharmony_ci } 4581cb0ef41Sopenharmony_ci } while (1); 4591cb0ef41Sopenharmony_ci 4601cb0ef41Sopenharmony_ci char *intraline_string_with_comment_delimiters_and_dbl_space = "1 /*1"; 4611cb0ef41Sopenharmony_ci char *multiline_string_with_comment_delimiters_and_dbl_space = "1 /*1\ 4621cb0ef41Sopenharmony_ci2222222\'22222222222222222\"222222222" "33333 /*3333333333" "44 /*44444444444\ 4631cb0ef41Sopenharmony_ci55555555555555\ 4641cb0ef41Sopenharmony_ci6666"; 4651cb0ef41Sopenharmony_ci} 4661cb0ef41Sopenharmony_ci 4671cb0ef41Sopenharmony_ciASN1_CHOICE(OSSL_CRMF_POPO) = { 4681cb0ef41Sopenharmony_ci ASN1_IMP(OSSL_CRMF_POPO, value.raVerified, ASN1_NULL, 0), 4691cb0ef41Sopenharmony_ci ASN1_EXP(OSSL_CRMF_POPO, value.keyAgreement, OSSL_CRMF_POPOPRIVKEY, 3) 4701cb0ef41Sopenharmony_ci} ASN1_CHOICE_END(OSSL_CRMF_POPO) 4711cb0ef41Sopenharmony_ciIMPLEMENT_ASN1_FUNCTIONS(OSSL_CRMF_POPO) 4721cb0ef41Sopenharmony_ci 4731cb0ef41Sopenharmony_ciASN1_ADB(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) = { 4741cb0ef41Sopenharmony_ci ADB_ENTRY(NID_id_regCtrl_regToken, 4751cb0ef41Sopenharmony_ci ASN1_SIMPLE(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, 4761cb0ef41Sopenharmony_ci value.regToken, ASN1_UTF8STRING)), 4771cb0ef41Sopenharmony_ci} ASN1_ADB_END(OSSL_CRMF_ATTRIBUTETYPEANDVALUE, 0, type, 0, 4781cb0ef41Sopenharmony_ci &attributetypeandvalue_default_tt, NULL); 4791cb0ef41Sopenharmony_ci 4801cb0ef41Sopenharmony_ciASN1_ITEM_TEMPLATE(OSSL_CRMF_MSGS) = 4811cb0ef41Sopenharmony_ci ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, 4821cb0ef41Sopenharmony_ci OSSL_CRMF_MSGS, OSSL_CRMF_MSG) 4831cb0ef41Sopenharmony_ciASN1_ITEM_TEMPLATE_END(OSSL_CRMF_MSGS) 4841cb0ef41Sopenharmony_ci 4851cb0ef41Sopenharmony_civoid f_looong_body_200() 4861cb0ef41Sopenharmony_ci{ /* function body length up to 200 lines accepted */ 4871cb0ef41Sopenharmony_ci ; 4881cb0ef41Sopenharmony_ci ; 4891cb0ef41Sopenharmony_ci ; 4901cb0ef41Sopenharmony_ci ; 4911cb0ef41Sopenharmony_ci ; 4921cb0ef41Sopenharmony_ci ; 4931cb0ef41Sopenharmony_ci ; 4941cb0ef41Sopenharmony_ci ; 4951cb0ef41Sopenharmony_ci ; 4961cb0ef41Sopenharmony_ci ; 4971cb0ef41Sopenharmony_ci ; 4981cb0ef41Sopenharmony_ci ; 4991cb0ef41Sopenharmony_ci ; 5001cb0ef41Sopenharmony_ci ; 5011cb0ef41Sopenharmony_ci ; 5021cb0ef41Sopenharmony_ci ; 5031cb0ef41Sopenharmony_ci ; 5041cb0ef41Sopenharmony_ci ; 5051cb0ef41Sopenharmony_ci ; 5061cb0ef41Sopenharmony_ci ; 5071cb0ef41Sopenharmony_ci ; 5081cb0ef41Sopenharmony_ci ; 5091cb0ef41Sopenharmony_ci ; 5101cb0ef41Sopenharmony_ci ; 5111cb0ef41Sopenharmony_ci ; 5121cb0ef41Sopenharmony_ci ; 5131cb0ef41Sopenharmony_ci ; 5141cb0ef41Sopenharmony_ci ; 5151cb0ef41Sopenharmony_ci ; 5161cb0ef41Sopenharmony_ci ; 5171cb0ef41Sopenharmony_ci ; 5181cb0ef41Sopenharmony_ci ; 5191cb0ef41Sopenharmony_ci ; 5201cb0ef41Sopenharmony_ci ; 5211cb0ef41Sopenharmony_ci ; 5221cb0ef41Sopenharmony_ci ; 5231cb0ef41Sopenharmony_ci ; 5241cb0ef41Sopenharmony_ci ; 5251cb0ef41Sopenharmony_ci ; 5261cb0ef41Sopenharmony_ci ; 5271cb0ef41Sopenharmony_ci ; 5281cb0ef41Sopenharmony_ci ; 5291cb0ef41Sopenharmony_ci ; 5301cb0ef41Sopenharmony_ci ; 5311cb0ef41Sopenharmony_ci ; 5321cb0ef41Sopenharmony_ci ; 5331cb0ef41Sopenharmony_ci ; 5341cb0ef41Sopenharmony_ci ; 5351cb0ef41Sopenharmony_ci ; 5361cb0ef41Sopenharmony_ci ; 5371cb0ef41Sopenharmony_ci ; 5381cb0ef41Sopenharmony_ci ; 5391cb0ef41Sopenharmony_ci ; 5401cb0ef41Sopenharmony_ci ; 5411cb0ef41Sopenharmony_ci ; 5421cb0ef41Sopenharmony_ci ; 5431cb0ef41Sopenharmony_ci ; 5441cb0ef41Sopenharmony_ci ; 5451cb0ef41Sopenharmony_ci ; 5461cb0ef41Sopenharmony_ci ; 5471cb0ef41Sopenharmony_ci ; 5481cb0ef41Sopenharmony_ci ; 5491cb0ef41Sopenharmony_ci ; 5501cb0ef41Sopenharmony_ci ; 5511cb0ef41Sopenharmony_ci ; 5521cb0ef41Sopenharmony_ci ; 5531cb0ef41Sopenharmony_ci ; 5541cb0ef41Sopenharmony_ci ; 5551cb0ef41Sopenharmony_ci ; 5561cb0ef41Sopenharmony_ci ; 5571cb0ef41Sopenharmony_ci ; 5581cb0ef41Sopenharmony_ci ; 5591cb0ef41Sopenharmony_ci ; 5601cb0ef41Sopenharmony_ci ; 5611cb0ef41Sopenharmony_ci ; 5621cb0ef41Sopenharmony_ci ; 5631cb0ef41Sopenharmony_ci ; 5641cb0ef41Sopenharmony_ci ; 5651cb0ef41Sopenharmony_ci ; 5661cb0ef41Sopenharmony_ci ; 5671cb0ef41Sopenharmony_ci ; 5681cb0ef41Sopenharmony_ci ; 5691cb0ef41Sopenharmony_ci ; 5701cb0ef41Sopenharmony_ci ; 5711cb0ef41Sopenharmony_ci ; 5721cb0ef41Sopenharmony_ci ; 5731cb0ef41Sopenharmony_ci ; 5741cb0ef41Sopenharmony_ci ; 5751cb0ef41Sopenharmony_ci ; 5761cb0ef41Sopenharmony_ci ; 5771cb0ef41Sopenharmony_ci ; 5781cb0ef41Sopenharmony_ci ; 5791cb0ef41Sopenharmony_ci ; 5801cb0ef41Sopenharmony_ci ; 5811cb0ef41Sopenharmony_ci ; 5821cb0ef41Sopenharmony_ci ; 5831cb0ef41Sopenharmony_ci ; 5841cb0ef41Sopenharmony_ci ; 5851cb0ef41Sopenharmony_ci ; 5861cb0ef41Sopenharmony_ci ; 5871cb0ef41Sopenharmony_ci ; 5881cb0ef41Sopenharmony_ci ; 5891cb0ef41Sopenharmony_ci ; 5901cb0ef41Sopenharmony_ci ; 5911cb0ef41Sopenharmony_ci ; 5921cb0ef41Sopenharmony_ci ; 5931cb0ef41Sopenharmony_ci ; 5941cb0ef41Sopenharmony_ci ; 5951cb0ef41Sopenharmony_ci ; 5961cb0ef41Sopenharmony_ci ; 5971cb0ef41Sopenharmony_ci ; 5981cb0ef41Sopenharmony_ci ; 5991cb0ef41Sopenharmony_ci ; 6001cb0ef41Sopenharmony_ci ; 6011cb0ef41Sopenharmony_ci ; 6021cb0ef41Sopenharmony_ci ; 6031cb0ef41Sopenharmony_ci ; 6041cb0ef41Sopenharmony_ci ; 6051cb0ef41Sopenharmony_ci ; 6061cb0ef41Sopenharmony_ci ; 6071cb0ef41Sopenharmony_ci ; 6081cb0ef41Sopenharmony_ci ; 6091cb0ef41Sopenharmony_ci ; 6101cb0ef41Sopenharmony_ci ; 6111cb0ef41Sopenharmony_ci ; 6121cb0ef41Sopenharmony_ci ; 6131cb0ef41Sopenharmony_ci ; 6141cb0ef41Sopenharmony_ci ; 6151cb0ef41Sopenharmony_ci ; 6161cb0ef41Sopenharmony_ci ; 6171cb0ef41Sopenharmony_ci ; 6181cb0ef41Sopenharmony_ci ; 6191cb0ef41Sopenharmony_ci ; 6201cb0ef41Sopenharmony_ci ; 6211cb0ef41Sopenharmony_ci ; 6221cb0ef41Sopenharmony_ci ; 6231cb0ef41Sopenharmony_ci ; 6241cb0ef41Sopenharmony_ci ; 6251cb0ef41Sopenharmony_ci ; 6261cb0ef41Sopenharmony_ci ; 6271cb0ef41Sopenharmony_ci ; 6281cb0ef41Sopenharmony_ci ; 6291cb0ef41Sopenharmony_ci ; 6301cb0ef41Sopenharmony_ci ; 6311cb0ef41Sopenharmony_ci ; 6321cb0ef41Sopenharmony_ci ; 6331cb0ef41Sopenharmony_ci ; 6341cb0ef41Sopenharmony_ci ; 6351cb0ef41Sopenharmony_ci ; 6361cb0ef41Sopenharmony_ci ; 6371cb0ef41Sopenharmony_ci ; 6381cb0ef41Sopenharmony_ci ; 6391cb0ef41Sopenharmony_ci ; 6401cb0ef41Sopenharmony_ci ; 6411cb0ef41Sopenharmony_ci ; 6421cb0ef41Sopenharmony_ci ; 6431cb0ef41Sopenharmony_ci ; 6441cb0ef41Sopenharmony_ci ; 6451cb0ef41Sopenharmony_ci ; 6461cb0ef41Sopenharmony_ci ; 6471cb0ef41Sopenharmony_ci ; 6481cb0ef41Sopenharmony_ci ; 6491cb0ef41Sopenharmony_ci ; 6501cb0ef41Sopenharmony_ci ; 6511cb0ef41Sopenharmony_ci ; 6521cb0ef41Sopenharmony_ci ; 6531cb0ef41Sopenharmony_ci ; 6541cb0ef41Sopenharmony_ci ; 6551cb0ef41Sopenharmony_ci ; 6561cb0ef41Sopenharmony_ci ; 6571cb0ef41Sopenharmony_ci ; 6581cb0ef41Sopenharmony_ci ; 6591cb0ef41Sopenharmony_ci ; 6601cb0ef41Sopenharmony_ci ; 6611cb0ef41Sopenharmony_ci ; 6621cb0ef41Sopenharmony_ci ; 6631cb0ef41Sopenharmony_ci ; 6641cb0ef41Sopenharmony_ci ; 6651cb0ef41Sopenharmony_ci ; 6661cb0ef41Sopenharmony_ci ; 6671cb0ef41Sopenharmony_ci ; 6681cb0ef41Sopenharmony_ci ; 6691cb0ef41Sopenharmony_ci ; 6701cb0ef41Sopenharmony_ci ; 6711cb0ef41Sopenharmony_ci ; 6721cb0ef41Sopenharmony_ci ; 6731cb0ef41Sopenharmony_ci ; 6741cb0ef41Sopenharmony_ci ; 6751cb0ef41Sopenharmony_ci ; 6761cb0ef41Sopenharmony_ci ; 6771cb0ef41Sopenharmony_ci ; 6781cb0ef41Sopenharmony_ci ; 6791cb0ef41Sopenharmony_ci ; 6801cb0ef41Sopenharmony_ci ; 6811cb0ef41Sopenharmony_ci ; 6821cb0ef41Sopenharmony_ci ; 6831cb0ef41Sopenharmony_ci ; 6841cb0ef41Sopenharmony_ci ; 6851cb0ef41Sopenharmony_ci ; 6861cb0ef41Sopenharmony_ci ; 6871cb0ef41Sopenharmony_ci} 6881cb0ef41Sopenharmony_ci 6891cb0ef41Sopenharmony_civoid f_looong_body_201() 6901cb0ef41Sopenharmony_ci{ /* function body length > 200 lines, but LONG BODY marker present */ 6911cb0ef41Sopenharmony_ci ; 6921cb0ef41Sopenharmony_ci ; 6931cb0ef41Sopenharmony_ci ; 6941cb0ef41Sopenharmony_ci ; 6951cb0ef41Sopenharmony_ci ; 6961cb0ef41Sopenharmony_ci ; 6971cb0ef41Sopenharmony_ci ; 6981cb0ef41Sopenharmony_ci ; 6991cb0ef41Sopenharmony_ci ; 7001cb0ef41Sopenharmony_ci ; 7011cb0ef41Sopenharmony_ci ; 7021cb0ef41Sopenharmony_ci ; 7031cb0ef41Sopenharmony_ci ; 7041cb0ef41Sopenharmony_ci ; 7051cb0ef41Sopenharmony_ci ; 7061cb0ef41Sopenharmony_ci ; 7071cb0ef41Sopenharmony_ci ; 7081cb0ef41Sopenharmony_ci ; 7091cb0ef41Sopenharmony_ci ; 7101cb0ef41Sopenharmony_ci ; 7111cb0ef41Sopenharmony_ci ; 7121cb0ef41Sopenharmony_ci ; 7131cb0ef41Sopenharmony_ci ; 7141cb0ef41Sopenharmony_ci ; 7151cb0ef41Sopenharmony_ci ; 7161cb0ef41Sopenharmony_ci ; 7171cb0ef41Sopenharmony_ci ; 7181cb0ef41Sopenharmony_ci ; 7191cb0ef41Sopenharmony_ci ; 7201cb0ef41Sopenharmony_ci ; 7211cb0ef41Sopenharmony_ci ; 7221cb0ef41Sopenharmony_ci ; 7231cb0ef41Sopenharmony_ci ; 7241cb0ef41Sopenharmony_ci ; 7251cb0ef41Sopenharmony_ci ; 7261cb0ef41Sopenharmony_ci ; 7271cb0ef41Sopenharmony_ci ; 7281cb0ef41Sopenharmony_ci ; 7291cb0ef41Sopenharmony_ci ; 7301cb0ef41Sopenharmony_ci ; 7311cb0ef41Sopenharmony_ci ; 7321cb0ef41Sopenharmony_ci ; 7331cb0ef41Sopenharmony_ci ; 7341cb0ef41Sopenharmony_ci ; 7351cb0ef41Sopenharmony_ci ; 7361cb0ef41Sopenharmony_ci ; 7371cb0ef41Sopenharmony_ci ; 7381cb0ef41Sopenharmony_ci ; 7391cb0ef41Sopenharmony_ci ; 7401cb0ef41Sopenharmony_ci ; 7411cb0ef41Sopenharmony_ci ; 7421cb0ef41Sopenharmony_ci ; 7431cb0ef41Sopenharmony_ci ; 7441cb0ef41Sopenharmony_ci ; 7451cb0ef41Sopenharmony_ci ; 7461cb0ef41Sopenharmony_ci ; 7471cb0ef41Sopenharmony_ci ; 7481cb0ef41Sopenharmony_ci ; 7491cb0ef41Sopenharmony_ci ; 7501cb0ef41Sopenharmony_ci ; 7511cb0ef41Sopenharmony_ci ; 7521cb0ef41Sopenharmony_ci ; 7531cb0ef41Sopenharmony_ci ; 7541cb0ef41Sopenharmony_ci ; 7551cb0ef41Sopenharmony_ci ; 7561cb0ef41Sopenharmony_ci ; 7571cb0ef41Sopenharmony_ci ; 7581cb0ef41Sopenharmony_ci ; 7591cb0ef41Sopenharmony_ci ; 7601cb0ef41Sopenharmony_ci ; 7611cb0ef41Sopenharmony_ci ; 7621cb0ef41Sopenharmony_ci ; 7631cb0ef41Sopenharmony_ci ; 7641cb0ef41Sopenharmony_ci ; 7651cb0ef41Sopenharmony_ci ; 7661cb0ef41Sopenharmony_ci ; 7671cb0ef41Sopenharmony_ci ; 7681cb0ef41Sopenharmony_ci ; 7691cb0ef41Sopenharmony_ci ; 7701cb0ef41Sopenharmony_ci ; 7711cb0ef41Sopenharmony_ci ; 7721cb0ef41Sopenharmony_ci ; 7731cb0ef41Sopenharmony_ci ; 7741cb0ef41Sopenharmony_ci ; 7751cb0ef41Sopenharmony_ci ; 7761cb0ef41Sopenharmony_ci ; 7771cb0ef41Sopenharmony_ci ; 7781cb0ef41Sopenharmony_ci ; 7791cb0ef41Sopenharmony_ci ; 7801cb0ef41Sopenharmony_ci ; 7811cb0ef41Sopenharmony_ci ; 7821cb0ef41Sopenharmony_ci ; 7831cb0ef41Sopenharmony_ci ; 7841cb0ef41Sopenharmony_ci ; 7851cb0ef41Sopenharmony_ci ; 7861cb0ef41Sopenharmony_ci ; 7871cb0ef41Sopenharmony_ci ; 7881cb0ef41Sopenharmony_ci ; 7891cb0ef41Sopenharmony_ci ; 7901cb0ef41Sopenharmony_ci ; 7911cb0ef41Sopenharmony_ci ; 7921cb0ef41Sopenharmony_ci ; 7931cb0ef41Sopenharmony_ci ; 7941cb0ef41Sopenharmony_ci ; 7951cb0ef41Sopenharmony_ci ; 7961cb0ef41Sopenharmony_ci ; 7971cb0ef41Sopenharmony_ci ; 7981cb0ef41Sopenharmony_ci ; 7991cb0ef41Sopenharmony_ci ; 8001cb0ef41Sopenharmony_ci ; 8011cb0ef41Sopenharmony_ci ; 8021cb0ef41Sopenharmony_ci ; 8031cb0ef41Sopenharmony_ci ; 8041cb0ef41Sopenharmony_ci ; 8051cb0ef41Sopenharmony_ci ; 8061cb0ef41Sopenharmony_ci ; 8071cb0ef41Sopenharmony_ci ; 8081cb0ef41Sopenharmony_ci ; 8091cb0ef41Sopenharmony_ci ; 8101cb0ef41Sopenharmony_ci ; 8111cb0ef41Sopenharmony_ci ; 8121cb0ef41Sopenharmony_ci ; 8131cb0ef41Sopenharmony_ci ; 8141cb0ef41Sopenharmony_ci ; 8151cb0ef41Sopenharmony_ci ; 8161cb0ef41Sopenharmony_ci ; 8171cb0ef41Sopenharmony_ci ; 8181cb0ef41Sopenharmony_ci ; 8191cb0ef41Sopenharmony_ci ; 8201cb0ef41Sopenharmony_ci ; 8211cb0ef41Sopenharmony_ci ; 8221cb0ef41Sopenharmony_ci ; 8231cb0ef41Sopenharmony_ci ; 8241cb0ef41Sopenharmony_ci ; 8251cb0ef41Sopenharmony_ci ; 8261cb0ef41Sopenharmony_ci ; 8271cb0ef41Sopenharmony_ci ; 8281cb0ef41Sopenharmony_ci ; 8291cb0ef41Sopenharmony_ci ; 8301cb0ef41Sopenharmony_ci ; 8311cb0ef41Sopenharmony_ci ; 8321cb0ef41Sopenharmony_ci ; 8331cb0ef41Sopenharmony_ci ; 8341cb0ef41Sopenharmony_ci ; 8351cb0ef41Sopenharmony_ci ; 8361cb0ef41Sopenharmony_ci ; 8371cb0ef41Sopenharmony_ci ; 8381cb0ef41Sopenharmony_ci ; 8391cb0ef41Sopenharmony_ci ; 8401cb0ef41Sopenharmony_ci ; 8411cb0ef41Sopenharmony_ci ; 8421cb0ef41Sopenharmony_ci ; 8431cb0ef41Sopenharmony_ci ; 8441cb0ef41Sopenharmony_ci ; 8451cb0ef41Sopenharmony_ci ; 8461cb0ef41Sopenharmony_ci ; 8471cb0ef41Sopenharmony_ci ; 8481cb0ef41Sopenharmony_ci ; 8491cb0ef41Sopenharmony_ci ; 8501cb0ef41Sopenharmony_ci ; 8511cb0ef41Sopenharmony_ci ; 8521cb0ef41Sopenharmony_ci ; 8531cb0ef41Sopenharmony_ci ; 8541cb0ef41Sopenharmony_ci ; 8551cb0ef41Sopenharmony_ci ; 8561cb0ef41Sopenharmony_ci ; 8571cb0ef41Sopenharmony_ci ; 8581cb0ef41Sopenharmony_ci ; 8591cb0ef41Sopenharmony_ci ; 8601cb0ef41Sopenharmony_ci ; 8611cb0ef41Sopenharmony_ci ; 8621cb0ef41Sopenharmony_ci ; 8631cb0ef41Sopenharmony_ci ; 8641cb0ef41Sopenharmony_ci ; 8651cb0ef41Sopenharmony_ci ; 8661cb0ef41Sopenharmony_ci ; 8671cb0ef41Sopenharmony_ci ; 8681cb0ef41Sopenharmony_ci ; 8691cb0ef41Sopenharmony_ci ; 8701cb0ef41Sopenharmony_ci ; 8711cb0ef41Sopenharmony_ci ; 8721cb0ef41Sopenharmony_ci ; 8731cb0ef41Sopenharmony_ci ; 8741cb0ef41Sopenharmony_ci ; 8751cb0ef41Sopenharmony_ci ; 8761cb0ef41Sopenharmony_ci ; 8771cb0ef41Sopenharmony_ci ; 8781cb0ef41Sopenharmony_ci ; 8791cb0ef41Sopenharmony_ci ; 8801cb0ef41Sopenharmony_ci ; 8811cb0ef41Sopenharmony_ci ; 8821cb0ef41Sopenharmony_ci ; 8831cb0ef41Sopenharmony_ci ; 8841cb0ef41Sopenharmony_ci ; 8851cb0ef41Sopenharmony_ci ; 8861cb0ef41Sopenharmony_ci ; 8871cb0ef41Sopenharmony_ci ; 8881cb0ef41Sopenharmony_ci ; 8891cb0ef41Sopenharmony_ci ; 8901cb0ef41Sopenharmony_ci ; 8911cb0ef41Sopenharmony_ci ; 8921cb0ef41Sopenharmony_ci ; 8931cb0ef41Sopenharmony_ci} 894