2026-02-25 19:46:01 +00:00

110 lines
18 KiB
Plaintext

2026-02-25 19:28:18.777 DEBUG [tests.conftest] Running fixture setup: test_id
2026-02-25 19:28:18.778 DEBUG [tests.conftest] Running test: test_sync_flags_no_relay_2nodes with id: 2026-02-25_19-28-18__88ec578a-953f-45d5-b925-7827533da0ad
2026-02-25 19:28:18.778 DEBUG [src.steps.common] Running fixture setup: common_setup
2026-02-25 19:28:18.785 DEBUG [src.node.docker_mananger] Docker client initialized with image wakuorg/nwaku:latest
2026-02-25 19:28:18.785 DEBUG [src.node.waku_node] WakuNode instance initialized with log path ./log/docker/node1_2026-02-25_19-28-18__88ec578a-953f-45d5-b925-7827533da0ad__wakuorg_nwaku:latest.log
2026-02-25 19:28:18.791 DEBUG [src.node.docker_mananger] Docker client initialized with image wakuorg/nwaku:latest
2026-02-25 19:28:18.791 DEBUG [src.node.waku_node] WakuNode instance initialized with log path ./log/docker/node2_2026-02-25_19-28-18__88ec578a-953f-45d5-b925-7827533da0ad__wakuorg_nwaku:latest.log
2026-02-25 19:28:18.798 DEBUG [src.node.docker_mananger] Docker client initialized with image wakuorg/nwaku:latest
2026-02-25 19:28:18.798 DEBUG [src.node.waku_node] WakuNode instance initialized with log path ./log/docker/node3_2026-02-25_19-28-18__88ec578a-953f-45d5-b925-7827533da0ad__wakuorg_nwaku:latest.log
2026-02-25 19:28:18.798 DEBUG [src.steps.store] Running fixture setup: store_setup
2026-02-25 19:28:18.799 DEBUG [src.node.waku_node] Starting Node...
2026-02-25 19:28:18.799 DEBUG [src.node.docker_mananger] Attempting to create or retrieve network waku
2026-02-25 19:28:18.800 DEBUG [src.node.docker_mananger] Network waku already exists
2026-02-25 19:28:18.800 DEBUG [src.node.docker_mananger] Generated random external IP 172.18.244.89
2026-02-25 19:28:18.800 DEBUG [src.node.docker_mananger] Generated ports ['6774', '6775', '6776', '6777', '6778']
2026-02-25 19:28:18.801 DEBUG [src.node.waku_node] RLN credentials were not set
2026-02-25 19:28:18.801 INFO [src.node.waku_node] RLN credentials not set or credential store not available, starting without RLN
2026-02-25 19:28:18.801 DEBUG [src.node.waku_node] Using volumes []
2026-02-25 19:28:18.801 DEBUG [src.node.docker_mananger] docker run -i -t -p 6774:6774 -p 6775:6775 -p 6776:6776 -p 6777:6777 -p 6778:6778 wakuorg/nwaku:latest --listen-address=0.0.0.0 --rest=true --rest-admin=true --websocket-support=true --log-level=TRACE --rest-relay-cache-capacity=100 --websocket-port=6776 --rest-port=6774 --tcp-port=6775 --discv5-udp-port=6777 --rest-address=0.0.0.0 --nat=extip:172.18.244.89 --peer-exchange=true --discv5-discovery=true --cluster-id=3 --nodekey=a44b95ca267b4659c7a3d0fffcafb43ffc3c53a079d69cfc11ebfddfebcb0431 --store-sync=true --store=true --store-sync-range=45 --store-sync-interval=10 --shard=0 --metrics-server=true --metrics-server-address=0.0.0.0 --metrics-server-port=6778 --metrics-logging=true --store-sync-relay-jitter=0 --relay=true
2026-02-25 19:28:18.998 DEBUG [src.node.docker_mananger] docker network connect --ip 172.18.244.89 waku 5dd34f96dbe417019c696291ad887dc9506770f3f5d4160c426df24e18b4130f
2026-02-25 19:28:19.032 DEBUG [src.node.docker_mananger] Container started with ID 5dd34f96dbe4. Setting up logs at ./log/docker/node1_2026-02-25_19-28-18__88ec578a-953f-45d5-b925-7827533da0ad__wakuorg_nwaku:latest.log
2026-02-25 19:28:19.033 DEBUG [src.node.waku_node] Started container from image wakuorg/nwaku:latest. REST: 6774
2026-02-25 19:28:19.033 DEBUG [src.libs.common] Sleeping for 1 seconds
2026-02-25 19:28:19.041 ERROR [src.node.docker_mananger] Max retries reached for container 50085022205d. Exiting log stream.
2026-02-25 19:28:19.577 ERROR [src.node.docker_mananger] Max retries reached for container 9c50e9fd9ba2. Exiting log stream.
2026-02-25 19:28:20.033 INFO [src.node.api_clients.base_client] curl -v -X GET "http://127.0.0.1:6774/health" -H "Content-Type: application/json" -d 'None'
2026-02-25 19:28:20.036 INFO [src.node.api_clients.base_client] Response status code: 200. Response content: b'{"nodeHealth":"READY","connectionStatus":"Disconnected","protocolsHealth":[{"Relay":"NOT_READY","desc":"No connected peers"},{"Lightpush":"NOT_MOUNTED"},{"Legacy Lightpush":"NOT_MOUNTED"},{"Filter":"NOT_MOUNTED"},{"Store":"READY"},{"Legacy Store":"NOT_MOUNTED"},{"Peer Exchange":"READY"},{"Rendezvous":"NOT_READY","desc":"No Rendezvous peers are available yet"},{"Mix":"NOT_MOUNTED"},{"Lightpush Client":"NOT_READY","desc":"No Lightpush service peer available yet"},{"Legacy Lightpush Client":"NOT_READY","desc":"No Lightpush service peer available yet"},{"Store Client":"READY"},{"Legacy Store Client":"NOT_READY","desc":"No Legacy Store service peers are available yet, neither Store service set up for the node"},{"Filter Client":"NOT_READY","desc":"No Filter service peer available yet"},{"Rln Relay":"NOT_MOUNTED"}]}'
2026-02-25 19:28:20.036 INFO [src.node.waku_node] Node protocols are initialized !!
2026-02-25 19:28:20.036 INFO [src.node.api_clients.base_client] curl -v -X GET "http://127.0.0.1:6774/debug/v1/info" -H "Content-Type: application/json" -d 'None'
2026-02-25 19:28:20.038 INFO [src.node.api_clients.base_client] Response status code: 200. Response content: b'{"listenAddresses":["/ip4/172.18.244.89/tcp/6775/p2p/16Uiu2HAkvsFmzzf254e9FRtchXWgGW45zU57u37iUqAeCaNJRJHD","/ip4/172.18.244.89/tcp/6776/ws/p2p/16Uiu2HAkvsFmzzf254e9FRtchXWgGW45zU57u37iUqAeCaNJRJHD"],"enrUri":"enr:-L24QGPYgVbmKNzcHKpMmim3CNkf5Hbqub-Ri-p4ob4g2srTGAvIZE6fBTJiZFis6GSTKd4o8u8T0_iB2ErdBjntgl4CgmlkgnY0gmlwhKwS9FmKbXVsdGlhZGRyc5YACASsEvRZBhp3AAoErBL0WQYaeN0DgnJzhQADAQAAiXNlY3AyNTZrMaECFWlr0jdZH0FFACLSKkX0T73ksTPohDI0tLn6qAAS08CDdGNwghp3g3VkcIIaeYV3YWt1MhM"}'
2026-02-25 19:28:20.038 INFO [src.node.waku_node] REST service is ready !!
2026-02-25 19:28:20.039 INFO [src.node.api_clients.base_client] curl -v -X POST "http://127.0.0.1:6774/relay/v1/subscriptions" -H "Content-Type: application/json" -d '["/waku/2/rs/3/0"]'
2026-02-25 19:28:20.056 INFO [src.node.api_clients.base_client] Response status code: 200. Response content: b'OK'
2026-02-25 19:28:20.056 DEBUG [src.node.waku_node] Starting Node...
2026-02-25 19:28:20.057 DEBUG [src.node.docker_mananger] Attempting to create or retrieve network waku
2026-02-25 19:28:20.058 DEBUG [src.node.docker_mananger] Network waku already exists
2026-02-25 19:28:20.058 DEBUG [src.node.docker_mananger] Generated random external IP 172.18.229.22
2026-02-25 19:28:20.058 DEBUG [src.node.docker_mananger] Generated ports ['40802', '40803', '40804', '40805', '40806']
2026-02-25 19:28:20.058 DEBUG [src.node.waku_node] RLN credentials were not set
2026-02-25 19:28:20.058 INFO [src.node.waku_node] RLN credentials not set or credential store not available, starting without RLN
2026-02-25 19:28:20.059 DEBUG [src.node.waku_node] Using volumes []
2026-02-25 19:28:20.059 DEBUG [src.node.docker_mananger] docker run -i -t -p 40802:40802 -p 40803:40803 -p 40804:40804 -p 40805:40805 -p 40806:40806 wakuorg/nwaku:latest --listen-address=0.0.0.0 --rest=true --rest-admin=true --websocket-support=true --log-level=TRACE --rest-relay-cache-capacity=100 --websocket-port=40804 --rest-port=40802 --tcp-port=40803 --discv5-udp-port=40805 --rest-address=0.0.0.0 --nat=extip:172.18.229.22 --peer-exchange=true --discv5-discovery=true --cluster-id=3 --nodekey=9c9a81ca0eed5c3dbf55108fec7f206bacaa6ffeffb9c99c0658e1d40f32afcb --store-sync=true --store=true --store-sync-range=45 --store-sync-interval=10 --shard=0 --metrics-server=true --metrics-server-address=0.0.0.0 --metrics-server-port=40806 --metrics-logging=true --store-sync-relay-jitter=0 --relay=false --discv5-bootstrap-node=enr:-L24QGPYgVbmKNzcHKpMmim3CNkf5Hbqub-Ri-p4ob4g2srTGAvIZE6fBTJiZFis6GSTKd4o8u8T0_iB2ErdBjntgl4CgmlkgnY0gmlwhKwS9FmKbXVsdGlhZGRyc5YACASsEvRZBhp3AAoErBL0WQYaeN0DgnJzhQADAQAAiXNlY3AyNTZrMaECFWlr0jdZH0FFACLSKkX0T73ksTPohDI0tLn6qAAS08CDdGNwghp3g3VkcIIaeYV3YWt1MhM
2026-02-25 19:28:20.262 DEBUG [src.node.docker_mananger] docker network connect --ip 172.18.229.22 waku 1a48b0e4a59c6049466f698ad85d43e724403460e0c1769c1461c94b8ce48201
2026-02-25 19:28:20.295 DEBUG [src.node.docker_mananger] Container started with ID 1a48b0e4a59c. Setting up logs at ./log/docker/node2_2026-02-25_19-28-18__88ec578a-953f-45d5-b925-7827533da0ad__wakuorg_nwaku:latest.log
2026-02-25 19:28:20.296 DEBUG [src.node.waku_node] Started container from image wakuorg/nwaku:latest. REST: 40802
2026-02-25 19:28:20.296 DEBUG [src.libs.common] Sleeping for 1 seconds
2026-02-25 19:28:21.296 INFO [src.node.api_clients.base_client] curl -v -X GET "http://127.0.0.1:40802/health" -H "Content-Type: application/json" -d 'None'
2026-02-25 19:28:21.299 INFO [src.node.api_clients.base_client] Response status code: 200. Response content: b'{"nodeHealth":"READY","connectionStatus":"Disconnected","protocolsHealth":[{"Relay":"NOT_MOUNTED"},{"Lightpush":"NOT_MOUNTED"},{"Legacy Lightpush":"NOT_MOUNTED"},{"Filter":"NOT_MOUNTED"},{"Store":"READY"},{"Legacy Store":"NOT_MOUNTED"},{"Peer Exchange":"READY"},{"Rendezvous":"NOT_READY","desc":"No Rendezvous peers are available yet"},{"Mix":"NOT_MOUNTED"},{"Lightpush Client":"NOT_READY","desc":"No Lightpush service peer available yet"},{"Legacy Lightpush Client":"NOT_READY","desc":"No Lightpush service peer available yet"},{"Store Client":"READY"},{"Legacy Store Client":"NOT_READY","desc":"No Legacy Store service peers are available yet, neither Store service set up for the node"},{"Filter Client":"NOT_READY","desc":"No Filter service peer available yet"},{"Rln Relay":"NOT_MOUNTED"}]}'
2026-02-25 19:28:21.300 INFO [src.node.waku_node] Node protocols are initialized !!
2026-02-25 19:28:21.300 INFO [src.node.api_clients.base_client] curl -v -X GET "http://127.0.0.1:40802/debug/v1/info" -H "Content-Type: application/json" -d 'None'
2026-02-25 19:28:21.302 INFO [src.node.api_clients.base_client] Response status code: 200. Response content: b'{"listenAddresses":["/ip4/172.18.229.22/tcp/40803/p2p/16Uiu2HAm6umowXYxNhyKPeCHP17LGFsMgtCg6sNwuoJ8ht2vbBsL","/ip4/172.18.229.22/tcp/40804/ws/p2p/16Uiu2HAm6umowXYxNhyKPeCHP17LGFsMgtCg6sNwuoJ8ht2vbBsL"],"enrUri":"enr:-L24QK0TQgUf5ieQ0Vc6rjhJdsLoGEf5QPkpy5cRSiEGGikdet6cklFJRjwSuVgZLJlFi84dKhcVyv0YW1BmUpH_QY8CgmlkgnY0gmlwhKwS5RaKbXVsdGlhZGRyc5YACASsEuUWBp9jAAoErBLlFgafZN0DgnJzhQADAQAAiXNlY3AyNTZrMaECqqNpNq1ht7BRe-jo8rJ2tHuQVQhcXEh55BrmU-SUrc-DdGNwgp9jg3VkcIKfZYV3YWt1MhI"}'
2026-02-25 19:28:21.302 INFO [src.node.waku_node] REST service is ready !!
2026-02-25 19:28:21.303 INFO [src.node.api_clients.base_client] curl -v -X POST "http://127.0.0.1:40802/admin/v1/peers" -H "Content-Type: application/json" -d '["/ip4/172.18.244.89/tcp/6775/p2p/16Uiu2HAkvsFmzzf254e9FRtchXWgGW45zU57u37iUqAeCaNJRJHD"]'
2026-02-25 19:28:21.338 INFO [src.node.api_clients.base_client] Response status code: 200. Response content: b'OK'
2026-02-25 19:28:21.339 DEBUG [src.libs.common] Sleeping for 1 seconds
2026-02-25 19:28:22.340 DEBUG [src.steps.store] Relaying message
2026-02-25 19:28:22.340 INFO [src.node.api_clients.base_client] curl -v -X POST "http://127.0.0.1:6774/relay/v1/messages/%2Fwaku%2F2%2Frs%2F3%2F0" -H "Content-Type: application/json" -d '{"payload": "U3RvcmUgd29ya3MhIQ==", "contentTopic": "/myapp/1/latest/proto", "timestamp": '$(date +%s%N)'}'
2026-02-25 19:28:22.344 INFO [src.node.api_clients.base_client] Response status code: 200. Response content: b'OK'
2026-02-25 19:28:22.345 DEBUG [src.libs.common] Sleeping for 0.2 seconds
2026-02-25 19:28:22.545 DEBUG [src.steps.store] Relaying message
2026-02-25 19:28:22.545 INFO [src.node.api_clients.base_client] curl -v -X POST "http://127.0.0.1:6774/relay/v1/messages/%2Fwaku%2F2%2Frs%2F3%2F0" -H "Content-Type: application/json" -d '{"payload": "U3RvcmUgd29ya3MhIQ==", "contentTopic": "/myapp/1/latest/proto", "timestamp": '$(date +%s%N)'}'
2026-02-25 19:28:22.549 INFO [src.node.api_clients.base_client] Response status code: 200. Response content: b'OK'
2026-02-25 19:28:22.549 DEBUG [src.libs.common] Sleeping for 0.2 seconds
2026-02-25 19:28:22.750 DEBUG [src.steps.store] Relaying message
2026-02-25 19:28:22.750 INFO [src.node.api_clients.base_client] curl -v -X POST "http://127.0.0.1:6774/relay/v1/messages/%2Fwaku%2F2%2Frs%2F3%2F0" -H "Content-Type: application/json" -d '{"payload": "U3RvcmUgd29ya3MhIQ==", "contentTopic": "/myapp/1/latest/proto", "timestamp": '$(date +%s%N)'}'
2026-02-25 19:28:22.753 INFO [src.node.api_clients.base_client] Response status code: 200. Response content: b'OK'
2026-02-25 19:28:22.754 DEBUG [src.libs.common] Sleeping for 0.2 seconds
2026-02-25 19:28:22.954 DEBUG [src.steps.store] Relaying message
2026-02-25 19:28:22.954 INFO [src.node.api_clients.base_client] curl -v -X POST "http://127.0.0.1:6774/relay/v1/messages/%2Fwaku%2F2%2Frs%2F3%2F0" -H "Content-Type: application/json" -d '{"payload": "U3RvcmUgd29ya3MhIQ==", "contentTopic": "/myapp/1/latest/proto", "timestamp": '$(date +%s%N)'}'
2026-02-25 19:28:22.958 INFO [src.node.api_clients.base_client] Response status code: 200. Response content: b'OK'
2026-02-25 19:28:22.958 DEBUG [src.libs.common] Sleeping for 0.2 seconds
2026-02-25 19:28:23.159 DEBUG [src.steps.store] Relaying message
2026-02-25 19:28:23.159 INFO [src.node.api_clients.base_client] curl -v -X POST "http://127.0.0.1:6774/relay/v1/messages/%2Fwaku%2F2%2Frs%2F3%2F0" -H "Content-Type: application/json" -d '{"payload": "U3RvcmUgd29ya3MhIQ==", "contentTopic": "/myapp/1/latest/proto", "timestamp": '$(date +%s%N)'}'
2026-02-25 19:28:23.163 INFO [src.node.api_clients.base_client] Response status code: 200. Response content: b'OK'
2026-02-25 19:28:23.163 DEBUG [src.libs.common] Sleeping for 0.2 seconds
2026-02-25 19:28:23.364 DEBUG [src.steps.store] Relaying message
2026-02-25 19:28:23.364 INFO [src.node.api_clients.base_client] curl -v -X POST "http://127.0.0.1:6774/relay/v1/messages/%2Fwaku%2F2%2Frs%2F3%2F0" -H "Content-Type: application/json" -d '{"payload": "U3RvcmUgd29ya3MhIQ==", "contentTopic": "/myapp/1/latest/proto", "timestamp": '$(date +%s%N)'}'
2026-02-25 19:28:23.368 INFO [src.node.api_clients.base_client] Response status code: 200. Response content: b'OK'
2026-02-25 19:28:23.368 DEBUG [src.libs.common] Sleeping for 0.2 seconds
2026-02-25 19:28:23.568 DEBUG [src.steps.store] Relaying message
2026-02-25 19:28:23.569 INFO [src.node.api_clients.base_client] curl -v -X POST "http://127.0.0.1:6774/relay/v1/messages/%2Fwaku%2F2%2Frs%2F3%2F0" -H "Content-Type: application/json" -d '{"payload": "U3RvcmUgd29ya3MhIQ==", "contentTopic": "/myapp/1/latest/proto", "timestamp": '$(date +%s%N)'}'
2026-02-25 19:28:23.572 INFO [src.node.api_clients.base_client] Response status code: 200. Response content: b'OK'
2026-02-25 19:28:23.572 DEBUG [src.libs.common] Sleeping for 0.2 seconds
2026-02-25 19:28:23.773 DEBUG [src.steps.store] Relaying message
2026-02-25 19:28:23.773 INFO [src.node.api_clients.base_client] curl -v -X POST "http://127.0.0.1:6774/relay/v1/messages/%2Fwaku%2F2%2Frs%2F3%2F0" -H "Content-Type: application/json" -d '{"payload": "U3RvcmUgd29ya3MhIQ==", "contentTopic": "/myapp/1/latest/proto", "timestamp": '$(date +%s%N)'}'
2026-02-25 19:28:23.776 INFO [src.node.api_clients.base_client] Response status code: 200. Response content: b'OK'
2026-02-25 19:28:23.776 DEBUG [src.libs.common] Sleeping for 0.2 seconds
2026-02-25 19:28:23.977 DEBUG [src.steps.store] Relaying message
2026-02-25 19:28:23.977 INFO [src.node.api_clients.base_client] curl -v -X POST "http://127.0.0.1:6774/relay/v1/messages/%2Fwaku%2F2%2Frs%2F3%2F0" -H "Content-Type: application/json" -d '{"payload": "U3RvcmUgd29ya3MhIQ==", "contentTopic": "/myapp/1/latest/proto", "timestamp": '$(date +%s%N)'}'
2026-02-25 19:28:23.981 INFO [src.node.api_clients.base_client] Response status code: 200. Response content: b'OK'
2026-02-25 19:28:23.981 DEBUG [src.libs.common] Sleeping for 0.2 seconds
2026-02-25 19:28:24.182 DEBUG [src.steps.store] Relaying message
2026-02-25 19:28:24.182 INFO [src.node.api_clients.base_client] curl -v -X POST "http://127.0.0.1:6774/relay/v1/messages/%2Fwaku%2F2%2Frs%2F3%2F0" -H "Content-Type: application/json" -d '{"payload": "U3RvcmUgd29ya3MhIQ==", "contentTopic": "/myapp/1/latest/proto", "timestamp": '$(date +%s%N)'}'
2026-02-25 19:28:24.186 INFO [src.node.api_clients.base_client] Response status code: 200. Response content: b'OK'
2026-02-25 19:28:24.186 DEBUG [src.libs.common] Sleeping for 0.2 seconds
2026-02-25 19:28:24.387 DEBUG [src.libs.common] Sleeping for 20 seconds
2026-02-25 19:28:44.387 DEBUG [src.steps.store] Checking that peer wakuorg/nwaku:latest can find the stored messages
2026-02-25 19:28:44.388 INFO [src.node.api_clients.base_client] curl -v -X GET "http://127.0.0.1:40802/store/v3/messages?pubsubTopic=%2Fwaku%2F2%2Frs%2F3%2F0&pageSize=100&ascending=true" -H "Content-Type: application/json" -d 'None'
2026-02-25 19:28:44.391 INFO [src.node.api_clients.base_client] Response status code: 200. Response content: b'{"requestId":"","statusCode":200,"statusDesc":"OK","messages":[{"messageHash":"0x1303921433eb94f0fc5b25cffc1b3966f340f14b8eb01ba0d96dd8618c9b5079"},{"messageHash":"0x9b3e5c27652c8090ecfb0be7c978e47ce1db2fda7c3b6e2fa5ec0d9270e4f2bd"},{"messageHash":"0xc459e439f714c4431e5931be81e7e803574f60214b1ca02621f784c736babbcd"},{"messageHash":"0x7adb625912e1102ce918e2be7b5823c13124b70d2d228dd812108f534a523d7d"},{"messageHash":"0xf2971124dda558f8bb408ba4479230939f729043b0bee2e98699fa805e77abea"},{"messageHash":"0x37eba9f714013b444f2fe9f474bdb632a98d0fe4438eb35e8a3cc9daa82ee484"},{"messageHash":"0xa95bf31eb09b727c29d0bbcd0744ddf7c7002e8175551ba54195275192debac8"},{"messageHash":"0x220da773970f1d3c79400bfaa2ae44a66a64beed267503447f57725fabe6ecf7"},{"messageHash":"0xf8716c5a00c60c56cd848b6c5c190412a8b919cf50f90e273b3d7a794ce1a569"},{"messageHash":"0x978ce28f9978b005b3e14db5623538a7545b2f9cb67430b6c6444a82b11d0d4a"}]}'
2026-02-25 19:28:44.391 DEBUG [src.steps.store] messages length is 10
2026-02-25 19:28:44.393 DEBUG [tests.conftest] Running fixture teardown: test_setup
2026-02-25 19:28:44.394 DEBUG [tests.conftest] Running fixture teardown: close_open_nodes
2026-02-25 19:28:44.394 DEBUG [src.node.waku_node] Stopping container with id 5dd34f96dbe4
2026-02-25 19:28:44.983 DEBUG [src.node.waku_node] Container stopped.
2026-02-25 19:28:44.985 DEBUG [src.node.waku_node] Stopping container with id 1a48b0e4a59c
2026-02-25 19:28:45.561 DEBUG [src.node.waku_node] Container stopped.
2026-02-25 19:28:45.563 DEBUG [tests.conftest] Running fixture teardown: check_waku_log_errors
2026-02-25 19:28:45.582 DEBUG [src.node.docker_mananger] No errors found in the waku logs.
2026-02-25 19:28:45.594 DEBUG [src.node.docker_mananger] No errors found in the waku logs.