mirror of
https://github.com/logos-messaging/logos-messaging-interop-tests.git
synced 2026-02-20 13:53:07 +00:00
1 line
21 KiB
JSON
1 line
21 KiB
JSON
{"uid":"dc5d2402e185f3ff","name":"test_passing_cursor_of_non_existing_message_from_the_store","fullName":"tests.store.test_cursor.TestCursor#test_passing_cursor_of_non_existing_message_from_the_store","historyId":"a501c7db96135a40fee44102585949a8","time":{"start":1770957557660,"stop":1770957558492,"duration":832},"status":"passed","flaky":false,"newFailed":false,"newBroken":false,"newPassed":false,"retriesCount":0,"retriesStatusChange":false,"beforeStages":[{"name":"set_allure_env_variables","time":{"start":1770957443539,"stop":1770957443539,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"stepsCount":0,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"attachmentStep":false},{"name":"attach_logs_on_fail","time":{"start":1770957555220,"stop":1770957555220,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"stepsCount":0,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"attachmentStep":false},{"name":"check_waku_log_errors","time":{"start":1770957555220,"stop":1770957555220,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"stepsCount":0,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"attachmentStep":false},{"name":"test_id","time":{"start":1770957555220,"stop":1770957555221,"duration":1},"status":"passed","steps":[],"attachments":[],"parameters":[],"stepsCount":0,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"attachmentStep":false},{"name":"close_open_nodes","time":{"start":1770957555220,"stop":1770957555220,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"stepsCount":0,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"attachmentStep":false},{"name":"test_setup","time":{"start":1770957555221,"stop":1770957555222,"duration":1},"status":"passed","steps":[],"attachments":[],"parameters":[],"stepsCount":0,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"attachmentStep":false},{"name":"common_setup","time":{"start":1770957555222,"stop":1770957555222,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"stepsCount":0,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"attachmentStep":false},{"name":"node_setup","time":{"start":1770957555222,"stop":1770957557659,"duration":2437},"status":"passed","steps":[{"name":"setup_first_publishing_node","time":{"start":1770957555222,"stop":1770957556436,"duration":1214},"status":"passed","steps":[{"name":"start_publishing_node","time":{"start":1770957555222,"stop":1770957556436,"duration":1214},"status":"passed","steps":[{"name":"add_node_peer","time":{"start":1770957556436,"stop":1770957556436,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[{"name":"args","value":"(<tests.store.test_cursor.TestCursor object at 0x7f3f2f3de570>, <src.node.waku_node.WakuNode object at 0x7f3f2f3515e0>, [])"}],"stepsCount":0,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":true,"attachmentStep":false}],"attachments":[],"parameters":[{"name":"image","value":"'wakuorg/nwaku:latest'"},{"name":"node_index","value":"1"},{"name":"store","value":"'true'"},{"name":"relay","value":"'true'"}],"stepsCount":1,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":true,"attachmentStep":false}],"attachments":[],"parameters":[{"name":"store","value":"'true'"},{"name":"relay","value":"'true'"}],"stepsCount":2,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":true,"attachmentStep":false},{"name":"setup_first_store_node","time":{"start":1770957556436,"stop":1770957557654,"duration":1218},"status":"passed","steps":[{"name":"setup_store_node","time":{"start":1770957556436,"stop":1770957557654,"duration":1218},"status":"passed","steps":[{"name":"add_node_peer","time":{"start":1770957557652,"stop":1770957557654,"duration":2},"status":"passed","steps":[],"attachments":[],"parameters":[{"name":"args","value":"(<tests.store.test_cursor.TestCursor object at 0x7f3f2f3de570>, <src.node.waku_node.WakuNode object at 0x7f3f2f40a990>, ['/ip4/172.18.102.94/tcp/42692/p2p/16Uiu2HAmGpEJ5MBSMjExqxnKTw8RpRYAFJq7hDVrVDidAitSxs4r'])"}],"stepsCount":0,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":true,"attachmentStep":false}],"attachments":[],"parameters":[{"name":"image","value":"'wakuorg/nwaku:latest'"},{"name":"node_index","value":"1"},{"name":"store","value":"'true'"},{"name":"relay","value":"'true'"}],"stepsCount":1,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":true,"attachmentStep":false}],"attachments":[],"parameters":[{"name":"store","value":"'true'"},{"name":"relay","value":"'true'"}],"stepsCount":2,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":true,"attachmentStep":false},{"name":"subscribe_to_pubsub_topics_via_relay","time":{"start":1770957557654,"stop":1770957557659,"duration":5},"status":"passed","steps":[],"attachments":[],"parameters":[{"name":"node","value":"[<src.node.waku_node.WakuNode object at 0x7f3f2f3515e0>, <src.node.waku_node.WakuNode object at 0x7f3f2f40a990>]"},{"name":"pubsub_topics","value":"None"}],"stepsCount":0,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":true,"attachmentStep":false}],"attachments":[],"parameters":[],"stepsCount":7,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":true,"attachmentStep":false},{"name":"store_setup","time":{"start":1770957555222,"stop":1770957555222,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"stepsCount":0,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"attachmentStep":false}],"testStage":{"status":"passed","steps":[{"name":"create_message","time":{"start":1770957557660,"stop":1770957557660,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[{"name":"payload","value":"'TWVzc2FnZV8w'"}],"stepsCount":0,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":true,"attachmentStep":false},{"name":"publish_message","time":{"start":1770957557660,"stop":1770957557866,"duration":206},"status":"passed","steps":[],"attachments":[],"parameters":[{"name":"via","value":"'relay'"},{"name":"pubsub_topic","value":"None"},{"name":"message","value":"{'payload': 'TWVzc2FnZV8w', 'contentTopic': '/myapp/1/latest/proto', 'timestamp': 1770957557659682822}"},{"name":"message_propagation_delay","value":"0.2"},{"name":"sender","value":"None"}],"stepsCount":0,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":true,"attachmentStep":false},{"name":"create_message","time":{"start":1770957557866,"stop":1770957557866,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[{"name":"payload","value":"'TWVzc2FnZV8x'"}],"stepsCount":0,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":true,"attachmentStep":false},{"name":"publish_message","time":{"start":1770957557866,"stop":1770957558072,"duration":206},"status":"passed","steps":[],"attachments":[],"parameters":[{"name":"via","value":"'relay'"},{"name":"pubsub_topic","value":"None"},{"name":"message","value":"{'payload': 'TWVzc2FnZV8x', 'contentTopic': '/myapp/1/latest/proto', 'timestamp': 1770957557865858207}"},{"name":"message_propagation_delay","value":"0.2"},{"name":"sender","value":"None"}],"stepsCount":0,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":true,"attachmentStep":false},{"name":"create_message","time":{"start":1770957558073,"stop":1770957558073,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[{"name":"payload","value":"'TWVzc2FnZV8y'"}],"stepsCount":0,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":true,"attachmentStep":false},{"name":"publish_message","time":{"start":1770957558073,"stop":1770957558278,"duration":205},"status":"passed","steps":[],"attachments":[],"parameters":[{"name":"via","value":"'relay'"},{"name":"pubsub_topic","value":"None"},{"name":"message","value":"{'payload': 'TWVzc2FnZV8y', 'contentTopic': '/myapp/1/latest/proto', 'timestamp': 1770957558072649657}"},{"name":"message_propagation_delay","value":"0.2"},{"name":"sender","value":"None"}],"stepsCount":0,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":true,"attachmentStep":false},{"name":"create_message","time":{"start":1770957558278,"stop":1770957558279,"duration":1},"status":"passed","steps":[],"attachments":[],"parameters":[{"name":"payload","value":"'TWVzc2FnZV8z'"}],"stepsCount":0,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":true,"attachmentStep":false},{"name":"publish_message","time":{"start":1770957558279,"stop":1770957558484,"duration":205},"status":"passed","steps":[],"attachments":[],"parameters":[{"name":"via","value":"'relay'"},{"name":"pubsub_topic","value":"None"},{"name":"message","value":"{'payload': 'TWVzc2FnZV8z', 'contentTopic': '/myapp/1/latest/proto', 'timestamp': 1770957558278512914}"},{"name":"message_propagation_delay","value":"0.2"},{"name":"sender","value":"None"}],"stepsCount":0,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":true,"attachmentStep":false},{"name":"create_message","time":{"start":1770957558484,"stop":1770957558484,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[{"name":"payload","value":"'dGVzdA=='"}],"stepsCount":0,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":true,"attachmentStep":false},{"name":"compute_message_hash","time":{"start":1770957558485,"stop":1770957558485,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[{"name":"pubsub_topic","value":"'/waku/2/rs/3/0'"},{"name":"msg","value":"{'payload': 'dGVzdA==', 'contentTopic': '/myapp/1/latest/proto', 'timestamp': 1770957558484427713}"},{"name":"hash_type","value":"'hex'"}],"stepsCount":0,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":true,"attachmentStep":false},{"name":"get_messages_from_store","time":{"start":1770957558485,"stop":1770957558488,"duration":3},"status":"broken","statusMessage":"Exception: Error: 500 Server Error: Internal Server Error for url: http://127.0.0.1:42691/store/v3/messages?pubsubTopic=%2Fwaku%2F2%2Frs%2F3%2F0&cursor=0xe3342a9522065d9424de596323b3571b28a87d716b289135f570602f59bf773b&pageSize=100&ascending=true with response: b'error in handleSelfStoreRequest: BAD_RESPONSE: archive error: DRIVER_ERROR: cursor not found'\n","statusTrace":" File \"/opt/hostedtoolcache/Python/3.12.12/x64/lib/python3.12/site-packages/allure_commons/_allure.py\", line 192, in impl\n return func(*a, **kw)\n ^^^^^^^^^^^^^^\n File \"/home/runner/work/logos-messaging-interop-tests/logos-messaging-interop-tests/src/steps/store.py\", line 164, in get_messages_from_store\n store_response = node.get_store_messages(\n ^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/runner/work/logos-messaging-interop-tests/logos-messaging-interop-tests/src/node/waku_node.py\", line 395, in get_store_messages\n return self._api.get_store_messages(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/runner/work/logos-messaging-interop-tests/logos-messaging-interop-tests/src/node/api_clients/rest.py\", line 146, in get_store_messages\n get_messages_response = self.rest_call(\"get\", base_url)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/runner/work/logos-messaging-interop-tests/logos-messaging-interop-tests/src/node/api_clients/rest.py\", line 16, in rest_call\n return self.make_request(method, url, headers=headers, data=payload)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/runner/work/logos-messaging-interop-tests/logos-messaging-interop-tests/src/node/api_clients/base_client.py\", line 17, in make_request\n raise Exception(f\"Error: {http_err} with response: {response.content}\")\n","steps":[],"attachments":[],"parameters":[{"name":"node","value":"<src.node.waku_node.WakuNode object at 0x7f3f2f3515e0>"},{"name":"peer_addr","value":"None"},{"name":"include_data","value":"None"},{"name":"pubsub_topic","value":"None"},{"name":"content_topics","value":"None"},{"name":"start_time","value":"None"},{"name":"end_time","value":"None"},{"name":"hashes","value":"None"},{"name":"cursor","value":"'0xe3342a9522065d9424de596323b3571b28a87d716b289135f570602f59bf773b'"},{"name":"page_size","value":"100"},{"name":"ascending","value":"'true'"},{"name":"store_v","value":"'v3'"}],"stepsCount":0,"shouldDisplayMessage":true,"attachmentsCount":0,"hasContent":true,"attachmentStep":false},{"name":"get_messages_from_store","time":{"start":1770957558489,"stop":1770957558492,"duration":3},"status":"broken","statusMessage":"Exception: Error: 500 Server Error: Internal Server Error for url: http://127.0.0.1:50071/store/v3/messages?pubsubTopic=%2Fwaku%2F2%2Frs%2F3%2F0&cursor=0xe3342a9522065d9424de596323b3571b28a87d716b289135f570602f59bf773b&pageSize=100&ascending=true with response: b'error in handleSelfStoreRequest: BAD_RESPONSE: archive error: DRIVER_ERROR: cursor not found'\n","statusTrace":" File \"/opt/hostedtoolcache/Python/3.12.12/x64/lib/python3.12/site-packages/allure_commons/_allure.py\", line 192, in impl\n return func(*a, **kw)\n ^^^^^^^^^^^^^^\n File \"/home/runner/work/logos-messaging-interop-tests/logos-messaging-interop-tests/src/steps/store.py\", line 164, in get_messages_from_store\n store_response = node.get_store_messages(\n ^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/runner/work/logos-messaging-interop-tests/logos-messaging-interop-tests/src/node/waku_node.py\", line 395, in get_store_messages\n return self._api.get_store_messages(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/runner/work/logos-messaging-interop-tests/logos-messaging-interop-tests/src/node/api_clients/rest.py\", line 146, in get_store_messages\n get_messages_response = self.rest_call(\"get\", base_url)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/runner/work/logos-messaging-interop-tests/logos-messaging-interop-tests/src/node/api_clients/rest.py\", line 16, in rest_call\n return self.make_request(method, url, headers=headers, data=payload)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/runner/work/logos-messaging-interop-tests/logos-messaging-interop-tests/src/node/api_clients/base_client.py\", line 17, in make_request\n raise Exception(f\"Error: {http_err} with response: {response.content}\")\n","steps":[],"attachments":[],"parameters":[{"name":"node","value":"<src.node.waku_node.WakuNode object at 0x7f3f2f40a990>"},{"name":"peer_addr","value":"None"},{"name":"include_data","value":"None"},{"name":"pubsub_topic","value":"None"},{"name":"content_topics","value":"None"},{"name":"start_time","value":"None"},{"name":"end_time","value":"None"},{"name":"hashes","value":"None"},{"name":"cursor","value":"'0xe3342a9522065d9424de596323b3571b28a87d716b289135f570602f59bf773b'"},{"name":"page_size","value":"100"},{"name":"ascending","value":"'true'"},{"name":"store_v","value":"'v3'"}],"stepsCount":0,"shouldDisplayMessage":true,"attachmentsCount":0,"hasContent":true,"attachmentStep":false}],"attachments":[{"uid":"4e5e93eae60a808d","name":"log","source":"4e5e93eae60a808d.txt","type":"text/plain","size":15422},{"uid":"f34c4abd9d913345","name":"stderr","source":"f34c4abd9d913345.txt","type":"text/plain","size":15061}],"parameters":[],"stepsCount":12,"shouldDisplayMessage":false,"attachmentsCount":2,"hasContent":true,"attachmentStep":false},"afterStages":[{"name":"test_setup::0","time":{"start":1770957558493,"stop":1770957558494,"duration":1},"status":"passed","steps":[],"attachments":[],"parameters":[],"stepsCount":0,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"attachmentStep":false},{"name":"close_open_nodes::0","time":{"start":1770957558494,"stop":1770957559005,"duration":511},"status":"passed","steps":[],"attachments":[],"parameters":[],"stepsCount":0,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"attachmentStep":false},{"name":"check_waku_log_errors::0","time":{"start":1770957559005,"stop":1770957559022,"duration":17},"status":"passed","steps":[],"attachments":[],"parameters":[],"stepsCount":0,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"attachmentStep":false},{"name":"attach_logs_on_fail::0","time":{"start":1770957559022,"stop":1770957559022,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"stepsCount":0,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"attachmentStep":false},{"name":"set_allure_env_variables::0","time":{"start":1770957731988,"stop":1770957731988,"duration":0},"status":"passed","steps":[],"attachments":[],"parameters":[],"stepsCount":0,"shouldDisplayMessage":false,"attachmentsCount":0,"hasContent":false,"attachmentStep":false}],"labels":[{"name":"tag","value":"@pytest.mark.usefixtures('node_setup')"},{"name":"parentSuite","value":"tests.store"},{"name":"suite","value":"test_cursor"},{"name":"subSuite","value":"TestCursor"},{"name":"host","value":"runnervmjduv7"},{"name":"thread","value":"2632-MainThread"},{"name":"framework","value":"pytest"},{"name":"language","value":"cpython3"},{"name":"package","value":"tests.store.test_cursor"},{"name":"resultFormat","value":"allure2"}],"parameters":[],"links":[],"hidden":false,"retry":false,"extra":{"severity":"normal","retries":[],"categories":[],"history":{"statistic":{"failed":0,"broken":0,"skipped":0,"passed":18,"unknown":0,"total":18},"items":[{"uid":"918d63f22ce90bd5","reportUrl":"https://logos-messaging.github.io/logos-messaging-interop-tests/nim/1077/#testresult/918d63f22ce90bd5","status":"passed","time":{"start":1770871299834,"stop":1770871300673,"duration":839}},{"uid":"a21234c20d9e7bbd","reportUrl":"https://logos-messaging.github.io/logos-messaging-interop-tests/nim/1076/#testresult/a21234c20d9e7bbd","status":"passed","time":{"start":1770785087502,"stop":1770785088333,"duration":831}},{"uid":"b1cef648562312ed","reportUrl":"https://logos-messaging.github.io/logos-messaging-interop-tests/nim/1075/#testresult/b1cef648562312ed","status":"passed","time":{"start":1770698758660,"stop":1770698759496,"duration":836}},{"uid":"e88a70aba492901b","reportUrl":"https://logos-messaging.github.io/logos-messaging-interop-tests/nim/1074/#testresult/e88a70aba492901b","status":"passed","time":{"start":1770612218514,"stop":1770612219350,"duration":836}},{"uid":"43eabe43dec6035e","reportUrl":"https://logos-messaging.github.io/logos-messaging-interop-tests/nim/1073/#testresult/43eabe43dec6035e","status":"passed","time":{"start":1770525951356,"stop":1770525952189,"duration":833}},{"uid":"bc0e13025221f1ae","reportUrl":"https://logos-messaging.github.io/logos-messaging-interop-tests/nim/1072/#testresult/bc0e13025221f1ae","status":"passed","time":{"start":1770438735269,"stop":1770438736102,"duration":833}},{"uid":"98a3fd35c566e3b3","reportUrl":"https://logos-messaging.github.io/logos-messaging-interop-tests/nim/1071/#testresult/98a3fd35c566e3b3","status":"passed","time":{"start":1770352502206,"stop":1770352503044,"duration":838}},{"uid":"82d7ecdb8ab9b9fd","reportUrl":"https://logos-messaging.github.io/logos-messaging-interop-tests/nim/1070/#testresult/82d7ecdb8ab9b9fd","status":"passed","time":{"start":1770266149504,"stop":1770266150343,"duration":839}},{"uid":"bb39d57e245022fa","reportUrl":"https://logos-messaging.github.io/logos-messaging-interop-tests/nim/1069/#testresult/bb39d57e245022fa","status":"passed","time":{"start":1770225177163,"stop":1770225178002,"duration":839}},{"uid":"a564f8d57fc615b1","reportUrl":"https://logos-messaging.github.io/logos-messaging-interop-tests/nim/1068/#testresult/a564f8d57fc615b1","status":"passed","time":{"start":1770206126595,"stop":1770206127433,"duration":838}},{"uid":"2fe38bbececb792b","reportUrl":"https://logos-messaging.github.io/logos-messaging-interop-tests/nim/1067/#testresult/2fe38bbececb792b","status":"passed","time":{"start":1770179630859,"stop":1770179631693,"duration":834}},{"uid":"96199ed024c63af8","reportUrl":"https://logos-messaging.github.io/logos-messaging-interop-tests/nim/1066/#testresult/96199ed024c63af8","status":"passed","time":{"start":1770093326414,"stop":1770093327247,"duration":833}},{"uid":"ce6f3192d691387a","reportUrl":"https://logos-messaging.github.io/logos-messaging-interop-tests/nim/1065/#testresult/ce6f3192d691387a","status":"passed","time":{"start":1770007300140,"stop":1770007300971,"duration":831}},{"uid":"8b0a96bed107b4fc","reportUrl":"https://logos-messaging.github.io/logos-messaging-interop-tests/nim/1064/#testresult/8b0a96bed107b4fc","status":"passed","time":{"start":1769921093584,"stop":1769921094419,"duration":835}},{"uid":"f28fb29fa858aa8b","reportUrl":"https://logos-messaging.github.io/logos-messaging-interop-tests/nim/1063/#testresult/f28fb29fa858aa8b","status":"passed","time":{"start":1769833929417,"stop":1769833930256,"duration":839}},{"uid":"d2bfe7d668b6e31b","reportUrl":"https://logos-messaging.github.io/logos-messaging-interop-tests/nim/1062/#testresult/d2bfe7d668b6e31b","status":"passed","time":{"start":1769747618575,"stop":1769747619408,"duration":833}},{"uid":"4dd6670c59c1ad22","reportUrl":"https://logos-messaging.github.io/logos-messaging-interop-tests/nim/1061/#testresult/4dd6670c59c1ad22","status":"passed","time":{"start":1769661934402,"stop":1769661935236,"duration":834}}]},"tags":["@pytest.mark.usefixtures('node_setup')"]},"source":"dc5d2402e185f3ff.json","parameterValues":[]} |