blob: be6c3f8c45d2a6e5ab78023fac6c7c4ee590072a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
|
# This file was generated by the build system used internally in the Yandex monorepo.
# Only simple modifications are allowed (adding source-files to targets, adding simple properties
# like target_include_directories). These modifications will be ported to original
# ya.make files by maintainers. Any complex modifications which can't be ported back to the
# original buildsystem will not be accepted.
add_library(restricted-aws-s2n)
target_compile_options(restricted-aws-s2n PRIVATE
-DS2N_ATOMIC_SUPPORTED
-DS2N_CLOEXEC_SUPPORTED
-DS2N_CLOEXEC_XOPEN_SUPPORTED
-DS2N_CLONE_SUPPORTED
-DS2N_DIAGNOSTICS_POP_SUPPORTED
-DS2N_DIAGNOSTICS_PUSH_SUPPORTED
-DS2N_EXECINFO_AVAILABLE
-DS2N_FALL_THROUGH_SUPPORTED
-DS2N_KYBER512R3_AVX2_BMI2_SUPPORTED
-DS2N_KYBER512R3_M256_INTRINSICS_SUPPORTED
-DS2N_LIBCRYPTO_SUPPORTS_EVP_MD5_SHA1_HASH
-DS2N_LIBCRYPTO_SUPPORTS_EVP_MD_CTX_SET_PKEY_CTX
-DS2N_LIBCRYPTO_SUPPORTS_EVP_RC4
-DS2N_LIBCRYPTO_SUPPORTS_FLAG_NO_CHECK_TIME
-DS2N_MADVISE_SUPPORTED
-DS2N___RESTRICT__SUPPORTED
-DS2N_STACKTRACE
$<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
)
target_include_directories(restricted-aws-s2n PUBLIC
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/api
)
target_link_libraries(restricted-aws-s2n PUBLIC
contrib-libs-openssl
)
target_sources(restricted-aws-s2n PRIVATE
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_aead_cipher_aes_gcm.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_aead_cipher_chacha20_poly1305.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_cbc_cipher_3des.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_cbc_cipher_aes.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_certificate.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_cipher.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_composite_cipher_aes_sha.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_crypto.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_dhe.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_drbg.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_ecc_evp.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_ecdsa.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_evp.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_evp_signing.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_fips.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_hash.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_hkdf.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_hmac.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_libcrypto.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_locking.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_openssl_x509.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_pkey.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_rsa.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_rsa_pss.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_rsa_signing.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_sequence.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_stream_cipher_null.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_stream_cipher_rc4.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_tls13_keys.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/error/s2n_errno.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_cbd.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_fips202.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_indcpa.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_kem.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_ntt.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_poly.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_polyvec.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_reduce.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_symmetric-shake.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/s2n_kyber_evp.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/s2n_pq.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/s2n_pq_random.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/stuffer/s2n_stuffer.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/stuffer/s2n_stuffer_base64.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/stuffer/s2n_stuffer_file.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/stuffer/s2n_stuffer_network_order.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/stuffer/s2n_stuffer_pem.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/stuffer/s2n_stuffer_text.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_cert_status.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_cert_status_response.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_alpn.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_cert_status_request.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_cookie.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_early_data_indication.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_ems.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_key_share.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_max_frag_len.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_pq_kem.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_psk.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_renegotiation_info.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_sct_list.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_server_name.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_session_ticket.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_signature_algorithms.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_supported_groups.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_supported_versions.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_ec_point_format.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_extension_list.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_extension_type.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_extension_type_lists.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_key_share.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_npn.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_nst_early_data_indication.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_psk_key_exchange_modes.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_quic_transport_params.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_alpn.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_cert_status_request.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_cookie.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_early_data_indication.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_ems.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_key_share.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_max_fragment_length.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_psk.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_renegotiation_info.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_sct_list.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_server_name.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_session_ticket.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_signature_algorithms.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_supported_versions.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_supported_versions.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_aead.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_alerts.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_async_pkey.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_auth_selection.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_cbc.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_change_cipher_spec.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_cipher_preferences.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_cipher_suites.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_client_cert.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_client_cert_verify.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_client_finished.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_client_hello.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_client_hello_request.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_client_key_exchange.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_config.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_connection.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_crl.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_crypto.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_early_data.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_early_data_io.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_ecc_preferences.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_encrypted_extensions.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_establish_session.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_fingerprint.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_handshake.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_handshake_hashes.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_handshake_io.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_handshake_transcript.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_handshake_type.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_kem.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_kem_preferences.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_kex.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_key_log.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_key_update.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_ktls.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_ktls_io.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_next_protocol.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_ocsp_stapling.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_post_handshake.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_prf.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_protocol_preferences.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_psk.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_quic_support.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_record_read.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_record_read_aead.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_record_read_cbc.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_record_read_composite.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_record_read_stream.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_record_write.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_recv.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_renegotiate.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_resume.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_security_policies.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_send.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_server_cert.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_server_cert_request.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_server_done.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_server_extensions.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_server_finished.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_server_hello.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_server_hello_retry.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_server_key_exchange.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_server_new_session_ticket.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_shutdown.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_signature_algorithms.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_signature_scheme.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_tls.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_tls13.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_tls13_certificate_verify.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_tls13_handshake.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_tls13_key_schedule.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_tls13_secrets.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_x509_validator.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_array.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_atomic.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_blob.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_ensure.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_fork_detection.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_init.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_io.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_map.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_mem.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_random.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_result.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_rfc5952.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_safety.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_set.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_socket.c
${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_timer.c
)
|