019b477e-b230-72b4-9b71-4ba05dcd4429
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 22289 | artifact.fetch | complete | 1 / 3 | 4 months ago |
| 22290 | tool.cast_disasm | complete | 1 / 3 | 4 months ago |
| 65954 | analysis.bundle | complete | 1 / 3 | 2 weeks ago |
| 65955 | capability.graph | complete | 1 / 3 | 2 weeks ago |
| 65956 | detector.run | complete | 1 / 3 | 2 weeks ago |
| 65957 | validation.fork | complete | 1 / 3 | 2 weeks ago |
No slither job recorded yet.
No codex job recorded yet.
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x0057 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 0000002e: SWAP1 0000002f: DIV 00000030: PUSH4 0xffffffff 00000035: AND 00000036: DUP1 00000037: PUSH4 0x46055acd 0000003c: EQ 0000003d: PUSH2 0x00a7 00000040: JUMPI 00000041: DUP1 00000042: PUSH4 0x90ec57f1 00000047: EQ 00000048: PUSH2 0x00ea 0000004b: JUMPI 0000004c: DUP1 0000004d: PUSH4 0xe31c60e3 00000052: EQ 00000053: PUSH2 0x0137 00000056: JUMPI 00000057: JUMPDEST 00000058: CALLER 00000059: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000006e: AND 0000006f: PUSH32 0x88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874 00000090: CALLVALUE 00000091: PUSH1 0x40 00000093: MLOAD 00000094: DUP1 00000095: DUP3 00000096: DUP2 00000097: MSTORE 00000098: PUSH1 0x20 0000009a: ADD 0000009b: SWAP2 0000009c: POP 0000009d: POP 0000009e: PUSH1 0x40 000000a0: MLOAD 000000a1: DUP1 000000a2: SWAP2 000000a3: SUB 000000a4: SWAP1 000000a5: LOG2 000000a6: STOP 000000a7: JUMPDEST 000000a8: CALLVALUE 000000a9: DUP1 000000aa: ISZERO 000000ab: PUSH2 0x00b3 000000ae: JUMPI 000000af: PUSH1 0x00 000000b1: DUP1 000000b2: REVERT 000000b3: JUMPDEST 000000b4: POP 000000b5: PUSH2 0x00e8 000000b8: PUSH1 0x04 000000ba: DUP1 000000bb: CALLDATASIZE 000000bc: SUB 000000bd: DUP2 000000be: ADD 000000bf: SWAP1 000000c0: DUP1 000000c1: DUP1 000000c2: CALLDATALOAD 000000c3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000000d8: AND 000000d9: SWAP1 000000da: PUSH1 0x20 000000dc: ADD 000000dd: SWAP1 000000de: SWAP3 000000df: SWAP2 000000e0: SWAP1 000000e1: POP 000000e2: POP 000000e3: POP 000000e4: PUSH2 0x0184 000000e7: JUMP 000000e8: JUMPDEST 000000e9: STOP 000000ea: JUMPDEST 000000eb: CALLVALUE 000000ec: DUP1 000000ed: ISZERO 000000ee: PUSH2 0x00f6 000000f1: JUMPI 000000f2: PUSH1 0x00 000000f4: DUP1 000000f5: REVERT 000000f6: JUMPDEST 000000f7: POP 000000f8: PUSH2 0x0135 000000fb: PUSH1 0x04 000000fd: DUP1 000000fe: CALLDATASIZE 000000ff: SUB 00000100: DUP2 00000101: ADD 00000102: SWAP1 00000103: DUP1 00000104: DUP1 00000105: CALLDATALOAD 00000106: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000011b: AND 0000011c: SWAP1 0000011d: PUSH1 0x20 0000011f: ADD 00000120: SWAP1 00000121: SWAP3 00000122: SWAP2 00000123: SWAP1 00000124: DUP1 00000125: CALLDATALOAD 00000126: SWAP1 00000127: PUSH1 0x20 00000129: ADD 0000012a: SWAP1 0000012b: SWAP3 0000012c: SWAP2 0000012d: SWAP1 0000012e: POP 0000012f: POP 00000130: POP 00000131: PUSH2 0x02d9 00000134: JUMP 00000135: JUMPDEST 00000136: STOP 00000137: JUMPDEST 00000138: CALLVALUE 00000139: DUP1 0000013a: ISZERO 0000013b: PUSH2 0x0143 0000013e: JUMPI 0000013f: PUSH1 0x00 00000141: DUP1 00000142: REVERT 00000143: JUMPDEST 00000144: POP 00000145: PUSH2 0x0182 00000148: PUSH1 0x04 0000014a: DUP1 0000014b: CALLDATASIZE 0000014c: SUB 0000014d: DUP2 0000014e: ADD 0000014f: SWAP1 00000150: DUP1 00000151: DUP1 00000152: CALLDATALOAD 00000153: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000168: AND 00000169: SWAP1 0000016a: PUSH1 0x20 0000016c: ADD 0000016d: SWAP1 0000016e: SWAP3 0000016f: SWAP2 00000170: SWAP1 00000171: DUP1 00000172: CALLDATALOAD 00000173: SWAP1 00000174: PUSH1 0x20 00000176: ADD 00000177: SWAP1 00000178: SWAP3 00000179: SWAP2 0000017a: SWAP1 0000017b: POP 0000017c: POP 0000017d: POP 0000017e: PUSH2 0x048c 00000181: JUMP 00000182: JUMPDEST 00000183: STOP 00000184: JUMPDEST 00000185: PUSH1 0x01 00000187: PUSH1 0x00 00000189: SWAP1 0000018a: SLOAD 0000018b: SWAP1 0000018c: PUSH2 0x0100 0000018f: EXP 00000190: SWAP1 00000191: DIV 00000192: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001a7: AND 000001a8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001bd: AND 000001be: CALLER 000001bf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001d4: AND 000001d5: EQ 000001d6: DUP1 000001d7: PUSH2 0x022d 000001da: JUMPI 000001db: POP 000001dc: PUSH1 0x02 000001de: PUSH1 0x00 000001e0: SWAP1 000001e1: SLOAD 000001e2: SWAP1 000001e3: PUSH2 0x0100 000001e6: EXP 000001e7: SWAP1 000001e8: DIV 000001e9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001fe: AND 000001ff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000214: AND 00000215: CALLER 00000216: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000022b: AND 0000022c: EQ 0000022d: JUMPDEST 0000022e: ISZERO 0000022f: ISZERO 00000230: PUSH2 0x0238 00000233: JUMPI 00000234: PUSH1 0x00 00000236: DUP1 00000237: REVERT 00000238: JUMPDEST 00000239: PUSH1 0x00 0000023b: DUP1 0000023c: PUSH1 0x00 0000023e: DUP4 0000023f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000254: AND 00000255: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000026a: AND 0000026b: DUP2 0000026c: MSTORE 0000026d: PUSH1 0x20 0000026f: ADD 00000270: SWAP1 00000271: DUP2 00000272: MSTORE 00000273: PUSH1 0x20 00000275: ADD 00000276: PUSH1 0x00 00000278: KECCAK256 00000279: DUP2 0000027a: SWAP1 0000027b: SSTORE 0000027c: POP 0000027d: DUP1 0000027e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000293: AND 00000294: CALLER 00000295: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002aa: AND 000002ab: PUSH32 0x72d170933aafc1794b1b79068f0ebb5d79395192af2eee24ee90841c22c93569 000002cc: PUSH1 0x40 000002ce: MLOAD 000002cf: PUSH1 0x40 000002d1: MLOAD 000002d2: DUP1 000002d3: SWAP2 000002d4: SUB 000002d5: SWAP1 000002d6: LOG3 000002d7: POP 000002d8: JUMP 000002d9: JUMPDEST 000002da: PUSH1 0x01 000002dc: PUSH1 0x00 000002de: SWAP1 000002df: SLOAD 000002e0: SWAP1 000002e1: PUSH2 0x0100 000002e4: EXP 000002e5: SWAP1 000002e6: DIV 000002e7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002fc: AND 000002fd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000312: AND 00000313: CALLER 00000314: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000329: AND 0000032a: EQ 0000032b: ISZERO 0000032c: ISZERO 0000032d: PUSH2 0x0335 00000330: JUMPI 00000331: PUSH1 0x00 00000333: DUP1 00000334: REVERT 00000335: JUMPDEST 00000336: PUSH1 0x00 00000338: DUP2 00000339: GT 0000033a: ISZERO 0000033b: ISZERO 0000033c: PUSH2 0x0344 0000033f: JUMPI 00000340: PUSH1 0x00 00000342: DUP1 00000343: REVERT 00000344: JUMPDEST 00000345: DUP1 00000346: PUSH1 0x00 00000348: DUP1 00000349: DUP5 0000034a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000035f: AND 00000360: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000375: AND 00000376: DUP2 00000377: MSTORE 00000378: PUSH1 0x20 0000037a: ADD 0000037b: SWAP1 0000037c: DUP2 0000037d: MSTORE 0000037e: PUSH1 0x20 00000380: ADD 00000381: PUSH1 0x00 00000383: KECCAK256 00000384: SLOAD 00000385: EQ 00000386: ISZERO 00000387: ISZERO 00000388: PUSH2 0x0390 0000038b: JUMPI 0000038c: PUSH1 0x00 0000038e: DUP1 0000038f: REVERT 00000390: JUMPDEST 00000391: PUSH1 0x00 00000393: DUP1 00000394: PUSH1 0x00 00000396: DUP5 00000397: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003ac: AND 000003ad: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003c2: AND 000003c3: DUP2 000003c4: MSTORE 000003c5: PUSH1 0x20 000003c7: ADD 000003c8: SWAP1 000003c9: DUP2 000003ca: MSTORE 000003cb: PUSH1 0x20 000003cd: ADD 000003ce: PUSH1 0x00 000003d0: KECCAK256 000003d1: DUP2 000003d2: SWAP1 000003d3: SSTORE 000003d4: POP 000003d5: DUP2 000003d6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003eb: AND 000003ec: PUSH2 0x08fc 000003ef: DUP3 000003f0: SWAP1 000003f1: DUP2 000003f2: ISZERO 000003f3: MUL 000003f4: SWAP1 000003f5: PUSH1 0x40 000003f7: MLOAD 000003f8: PUSH1 0x00 000003fa: PUSH1 0x40 000003fc: MLOAD 000003fd: DUP1 000003fe: DUP4 000003ff: SUB 00000400: DUP2 00000401: DUP6 00000402: DUP9 00000403: DUP9 00000404: CALL 00000405: SWAP4 00000406: POP 00000407: POP 00000408: POP 00000409: POP 0000040a: ISZERO 0000040b: DUP1 0000040c: ISZERO 0000040d: PUSH2 0x041a 00000410: JUMPI 00000411: RETURNDATASIZE 00000412: PUSH1 0x00 00000414: DUP1 00000415: RETURNDATACOPY 00000416: RETURNDATASIZE 00000417: PUSH1 0x00 00000419: REVERT 0000041a: JUMPDEST 0000041b: POP 0000041c: DUP2 0000041d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000432: AND 00000433: PUSH32 0x6df4c963050304104a3060e9c1fd90c9364d38b6aa09da5b2b0e3215272b6fa5 00000454: DUP3 00000455: ADDRESS 00000456: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000046b: AND 0000046c: BALANCE 0000046d: PUSH1 0x40 0000046f: MLOAD 00000470: DUP1 00000471: DUP4 00000472: DUP2 00000473: MSTORE 00000474: PUSH1 0x20 00000476: ADD 00000477: DUP3 00000478: DUP2 00000479: MSTORE 0000047a: PUSH1 0x20 0000047c: ADD 0000047d: SWAP3 0000047e: POP 0000047f: POP 00000480: POP 00000481: PUSH1 0x40 00000483: MLOAD 00000484: DUP1 00000485: SWAP2 00000486: SUB 00000487: SWAP1 00000488: LOG2 00000489: POP 0000048a: POP 0000048b: JUMP 0000048c: JUMPDEST 0000048d: PUSH1 0x02 0000048f: PUSH1 0x00 00000491: SWAP1 00000492: SLOAD 00000493: SWAP1 00000494: PUSH2 0x0100 00000497: EXP 00000498: SWAP1 00000499: DIV 0000049a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004af: AND 000004b0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004c5: AND 000004c6: CALLER 000004c7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004dc: AND 000004dd: EQ 000004de: ISZERO 000004df: ISZERO 000004e0: PUSH2 0x04e8 000004e3: JUMPI 000004e4: PUSH1 0x00 000004e6: DUP1 000004e7: REVERT 000004e8: JUMPDEST 000004e9: PUSH1 0x00 000004eb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000500: AND 00000501: DUP3 00000502: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000517: AND 00000518: EQ 00000519: ISZERO 0000051a: DUP1 0000051b: ISZERO 0000051c: PUSH2 0x0551 0000051f: JUMPI 00000520: POP 00000521: ADDRESS 00000522: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000537: AND 00000538: DUP3 00000539: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000054e: AND 0000054f: EQ 00000550: ISZERO 00000551: JUMPDEST 00000552: ISZERO 00000553: ISZERO 00000554: PUSH2 0x055c 00000557: JUMPI 00000558: PUSH1 0x00 0000055a: DUP1 0000055b: REVERT 0000055c: JUMPDEST 0000055d: PUSH1 0x00 0000055f: DUP2 00000560: GT 00000561: ISZERO 00000562: ISZERO 00000563: PUSH2 0x056b 00000566: JUMPI 00000567: PUSH1 0x00 00000569: DUP1 0000056a: REVERT 0000056b: JUMPDEST 0000056c: PUSH1 0x00 0000056e: DUP1 0000056f: PUSH1 0x00 00000571: DUP5 00000572: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000587: AND 00000588: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000059d: AND 0000059e: DUP2 0000059f: MSTORE 000005a0: PUSH1 0x20 000005a2: ADD 000005a3: SWAP1 000005a4: DUP2 000005a5: MSTORE 000005a6: PUSH1 0x20 000005a8: ADD 000005a9: PUSH1 0x00 000005ab: KECCAK256 000005ac: SLOAD 000005ad: EQ 000005ae: ISZERO 000005af: ISZERO 000005b0: PUSH2 0x05b8 000005b3: JUMPI 000005b4: PUSH1 0x00 000005b6: DUP1 000005b7: REVERT 000005b8: JUMPDEST 000005b9: DUP1 000005ba: PUSH1 0x00 000005bc: DUP1 000005bd: DUP5 000005be: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005d3: AND 000005d4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005e9: AND 000005ea: DUP2 000005eb: MSTORE 000005ec: PUSH1 0x20 000005ee: ADD 000005ef: SWAP1 000005f0: DUP2 000005f1: MSTORE 000005f2: PUSH1 0x20 000005f4: ADD 000005f5: PUSH1 0x00 000005f7: KECCAK256 000005f8: DUP2 000005f9: SWAP1 000005fa: SSTORE 000005fb: POP 000005fc: DUP2 000005fd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000612: AND 00000613: PUSH32 0x2ea88857aaf5a09da335056adf5216caea1b3f94664a7f7344eb0468fa6b3262 00000634: DUP3 00000635: ADDRESS 00000636: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000064b: AND 0000064c: BALANCE 0000064d: PUSH1 0x40 0000064f: MLOAD 00000650: DUP1 00000651: DUP4 00000652: DUP2 00000653: MSTORE 00000654: PUSH1 0x20 00000656: ADD 00000657: DUP3 00000658: DUP2 00000659: MSTORE 0000065a: PUSH1 0x20 0000065c: ADD 0000065d: SWAP3 0000065e: POP 0000065f: POP 00000660: POP 00000661: PUSH1 0x40 00000663: MLOAD 00000664: DUP1 00000665: SWAP2 00000666: SUB 00000667: SWAP1 00000668: LOG2 00000669: POP 0000066a: POP 0000066b: JUMP 0000066c: STOP 0000066d: LOG1 0000066e: PUSH6 0x627a7a723058 00000675: KECCAK256 00000676: UNKNOWN(0xA6) 00000677: SLOAD 00000678: SGT 00000679: PUSH8 0xdc74845e63c7bc79 00000682: UNKNOWN(0xFC) 00000683: UNKNOWN(0xAF) 00000684: UNKNOWN(0xC7) 00000685: UNKNOWN(0xFB) 00000686: UNKNOWN(0xC4) 00000687: UNKNOWN(0x2C) 00000688: PUSH29
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0xfd8481ad03499ac6e0b7fe161a1c3cfd769572d61ccdacb75302498e9a113114
call_targets:
0x1beb353fa1e215457ff16fceec07f7eab9f06565
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xfd8481ad03499ac6e0b7fe161a1c3cfd769572d61ccdacb75302498e9a113114",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x1beb353fa1e215457ff16fceec07f7eab9f06565"
],
"matched_probe": null,
"target_varies": false,
"classification": "constant_target"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xffffffff",
"selector": "0xffffffff",
"calldata_variants": [
"0xffffffff",
"0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x46055acd",
"selector": "0x46055acd",
"calldata_variants": [
"0x46055acd",
"0x46055acd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x90ec57f1",
"selector": "0x90ec57f1",
"calldata_variants": [
"0x90ec57f1",
"0x90ec57f10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe31c60e3",
"selector": "0xe31c60e3",
"calldata_variants": [
"0xe31c60e3",
"0xe31c60e30000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1028,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 1,
"guards_detected": [
{
"pc": 446,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 533,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 787,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1222,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"untrusted_call_count": 1
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0xfd8481ad03499ac6e0b7fe161a1c3cfd769572d61ccdacb75302498e9a113114
call_targets:
0x1beb353fa1e215457ff16fceec07f7eab9f06565
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xfd8481ad03499ac6e0b7fe161a1c3cfd769572d61ccdacb75302498e9a113114",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x1beb353fa1e215457ff16fceec07f7eab9f06565"
],
"matched_probe": null,
"target_varies": false,
"classification": "constant_target"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xffffffff",
"selector": "0xffffffff",
"calldata_variants": [
"0xffffffff",
"0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x46055acd",
"selector": "0x46055acd",
"calldata_variants": [
"0x46055acd",
"0x46055acd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x90ec57f1",
"selector": "0x90ec57f1",
"calldata_variants": [
"0x90ec57f1",
"0x90ec57f10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe31c60e3",
"selector": "0xe31c60e3",
"calldata_variants": [
"0xe31c60e3",
"0xe31c60e30000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1028,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 1,
"guards_detected": [
{
"pc": 446,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 533,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 787,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1222,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
}
|