cd6d730 | Gyuho Lee | 12 May 2021, 17:41:39 UTC | raft: rename "master" branch references to "main" Signed-off-by: Gyuho Lee <leegyuho@amazon.com> | 12 May 2021, 17:41:39 UTC |
b6562a2 | Gyuho Lee | 12 May 2021, 17:41:24 UTC | .github: rename "master" branch references to "main" Signed-off-by: Gyuho Lee <leegyuho@amazon.com> | 12 May 2021, 17:41:24 UTC |
5a0a1a4 | Gyuho Lee | 12 May 2021, 17:41:02 UTC | markdowns: rename "master" branch references to "main" Signed-off-by: Gyuho Lee <leegyuho@amazon.com> | 12 May 2021, 17:41:02 UTC |
3d4629c | Gyuho Lee | 12 May 2021, 17:40:28 UTC | hack,scripts: rename "master" branch references to "main" Signed-off-by: Gyuho Lee <leegyuho@amazon.com> | 12 May 2021, 17:40:28 UTC |
6bab63e | Gyuho Lee | 12 May 2021, 17:39:53 UTC | tools: rename "master" branch references to "main" Signed-off-by: Gyuho Lee <leegyuho@amazon.com> | 12 May 2021, 17:39:53 UTC |
a8e1cf0 | Gyuho Lee | 12 May 2021, 17:38:50 UTC | client: rename "master" branch references to "main" Signed-off-by: Gyuho Lee <leegyuho@amazon.com> | 12 May 2021, 17:38:50 UTC |
19fcefa | Gyuho Lee | 12 May 2021, 17:38:12 UTC | tests: rename "master" branch references to "main" Signed-off-by: Gyuho Lee <leegyuho@amazon.com> | 12 May 2021, 17:38:12 UTC |
77c8033 | Gyuho Lee | 12 May 2021, 17:37:35 UTC | server: rename "master" branch references Signed-off-by: Gyuho Lee <leegyuho@amazon.com> | 12 May 2021, 17:37:35 UTC |
57d9666 | Gyuho Lee | 12 May 2021, 16:18:28 UTC | Merge pull request #12950 from gyuho/badge README: add badges for all github action workflows | 12 May 2021, 16:18:28 UTC |
6fdd82f | Gyuho Lee | 12 May 2021, 16:16:31 UTC | README: add badges for all github action workflows Signed-off-by: Gyuho Lee <leegyuho@amazon.com> | 12 May 2021, 16:16:31 UTC |
d982fe7 | Piotr Tabor | 12 May 2021, 14:11:50 UTC | Merge pull request #12952 from serathius/go1.16.4 Swtich CI to use newest available 1.16 Go version | 12 May 2021, 14:11:50 UTC |
c868bb9 | Marek Siarkowicz | 12 May 2021, 09:46:22 UTC | github actions: Switch CI to use newest available 1.16 version | 12 May 2021, 13:25:16 UTC |
7ba53c7 | Piotr Tabor | 12 May 2021, 12:55:28 UTC | Merge pull request #12953 from serathius/e2e-split github actions: Move e2e to separate workflow and remove semaphoreci | 12 May 2021, 12:55:28 UTC |
f908e42 | Marek Siarkowicz | 12 May 2021, 09:50:16 UTC | github actions: Move e2e to separate workflow and remove semaphoreci | 12 May 2021, 12:17:17 UTC |
1929aa0 | Piotr Tabor | 12 May 2021, 11:49:48 UTC | Merge pull request #12948 from serathius/logger client: Allow setting zap logger in config | 12 May 2021, 11:49:48 UTC |
06afe87 | Marek Siarkowicz | 11 May 2021, 14:02:37 UTC | client: Allow setting zap logger in config | 12 May 2021, 10:15:20 UTC |
e0a8484 | Piotr Tabor | 12 May 2021, 07:26:56 UTC | Merge pull request #12941 from serathius/defrag etcdserver: Implement running defrag if freeable space will exceed provided threshold (on boot) | 12 May 2021, 07:26:56 UTC |
980d70d | Piotr Tabor | 12 May 2021, 07:23:06 UTC | Merge pull request #12947 from serathius/e2e github actions: Run e2e tests | 12 May 2021, 07:23:06 UTC |
3b24496 | Piotr Tabor | 12 May 2021, 07:18:40 UTC | Merge pull request #12925 from yangxuanjia/yxjetcd_check_resuming check resuming len to avoid panic | 12 May 2021, 07:18:40 UTC |
270b60e | Gyuho Lee | 12 May 2021, 02:32:31 UTC | CHANGELOG: update Signed-off-by: Gyuho Lee <leegyuho@amazon.com> | 12 May 2021, 02:32:31 UTC |
68b1e9f | yangxuanjia | 08 May 2021, 01:47:13 UTC | check resuming len to avoid panic | 12 May 2021, 01:51:59 UTC |
70f7e0d | Gyuho Lee | 11 May 2021, 17:29:53 UTC | Merge pull request #12929 from gyuho/github-worker-arm64-support | 11 May 2021, 17:29:53 UTC |
450fd9a | Piotr Tabor | 11 May 2021, 12:24:47 UTC | Merge pull request #12946 from serathius/badge readme: Switch Travis CI test results badge to GitHub actions | 11 May 2021, 12:24:47 UTC |
f48609a | Marek Siarkowicz | 11 May 2021, 11:45:22 UTC | github actions: Run e2e tests | 11 May 2021, 12:20:46 UTC |
efc8505 | Marek Siarkowicz | 10 May 2021, 11:50:09 UTC | etcdserver: Implement running defrag if freeable space will exceed privided threshold | 11 May 2021, 12:00:29 UTC |
4bc1aa9 | Marek Siarkowicz | 11 May 2021, 11:22:49 UTC | readme: Switch Travis CI test results badge to GitHub actions | 11 May 2021, 11:22:49 UTC |
7ae55cf | Piotr Tabor | 10 May 2021, 17:47:57 UTC | Merge pull request #12942 from ptabor/20210510-expect_debug_true-for-e2e Run e2e tests with: EXPECT_DEBUG='true' | 10 May 2021, 17:47:57 UTC |
04c9e8b | Piotr Tabor | 10 May 2021, 14:09:49 UTC | Run e2e tests with: EXPECT_DEBUG='true' The motivation is need to diagnose flakes like: https://semaphoreci.com/etcd-io/etcd/branches/pull-request-12940/builds/2. Now - when the logs are streamed through testing.T logger, the verbosity is not that significant concern. | 10 May 2021, 15:46:31 UTC |
74d7d33 | Piotr Tabor | 10 May 2021, 15:44:15 UTC | Merge pull request #12938 from serathius/test-go1.16.3 github actions: Make github actions go1.16.3 tests blocking and remove them from travis | 10 May 2021, 15:44:15 UTC |
e892d6d | Piotr Tabor | 10 May 2021, 14:43:46 UTC | Merge pull request #12940 from ptabor/20210510-v2-warnings Deprecate V2 API: --enable-v2 and --experimental-enable-v2v3 issue a warning | 10 May 2021, 14:43:46 UTC |
269f22c | Piotr Tabor | 10 May 2021, 11:30:31 UTC | Deprecate V2 API: --enable-v2 and v2v3 Flags `--experimental-enable-v2v3` and '-enable-v2' will raise a warning in 3.5, in 3.6 they are schedule for decomissioning, such that v2store can stop be written in 3.7. Deprecation plan in: https://github.com/etcd-io/etcd/issues/12913 | 10 May 2021, 14:19:52 UTC |
5bad818 | Gyuho Lee | 10 May 2021, 14:09:33 UTC | Merge pull request #12919 from lilic/add-opentel-tracing | 10 May 2021, 14:09:33 UTC |
da33b40 | Marek Siarkowicz | 10 May 2021, 10:15:08 UTC | github actions: Make github actions go1.16.3 tests blocking and remove them from travis * Leave Go tip tests and coverage in travis as one is not yet supported | 10 May 2021, 13:19:09 UTC |
6bc125c | Piotr Tabor | 10 May 2021, 10:05:24 UTC | Merge pull request #12936 from serathius/pull_request Trigger unit test workflow on pull_requests | 10 May 2021, 10:05:24 UTC |
3cdd242 | Lili Cosic | 10 May 2021, 08:27:57 UTC | CHANGELOG-3.5.md: Add Tracing entry | 10 May 2021, 08:44:40 UTC |
1a718a9 | Lili Cosic | 30 April 2021, 14:44:10 UTC | Add initial Tracing with OpenTelemetry | 10 May 2021, 08:44:40 UTC |
f1082ee | Marek Siarkowicz | 10 May 2021, 07:46:42 UTC | Trigger unit test workflow on pull_requests | 10 May 2021, 07:46:42 UTC |
b9c000f | Gyuho Lee | 08 May 2021, 09:26:50 UTC | server/etcdmain: officially supports "arm64" Signed-off-by: Gyuho Lee <leegyuho@amazon.com> | 10 May 2021, 07:34:10 UTC |
a8f38eb | Gyuho Lee | 10 May 2021, 07:32:59 UTC | Merge pull request #12928 from gyuho/github-worker-arm64 github action: add ARM64 test | 10 May 2021, 07:32:59 UTC |
3a04b2b | Gyuho Lee | 08 May 2021, 08:48:05 UTC | github action: add ARM64 test with README README for self-hosted-linux-arm64-graviton2-tests.yml Signed-off-by: Gyuho Lee <leegyuho@amazon.com> | 10 May 2021, 07:28:41 UTC |
5f6f69c | Piotr Tabor | 10 May 2021, 06:35:14 UTC | Merge pull request #12932 from vvdvortsova/12821-fix-req-maybe-nil embed: Added a check for a nil value of the request in ServeHTTP method | 10 May 2021, 06:35:14 UTC |
f571701 | Piotr Tabor | 10 May 2021, 06:29:17 UTC | Merge pull request #12797 from lzhfromustc/3_23 server/etcdmain and tests: Fix goroutine leaks | 10 May 2021, 06:29:17 UTC |
c3303d9 | varvara dvortsova | 09 May 2021, 17:40:08 UTC | embed: Added a check for an nil value of the request in ServeHTTP method. Fixed #12821 | 09 May 2021, 17:45:43 UTC |
aeb9b5f | Piotr Tabor | 08 May 2021, 07:34:31 UTC | Merge pull request #12855 from ptabor/20210409-backend-hooks (no)StoreV2 (Part 4): Backend hooks: precommit updates consistency_index | 08 May 2021, 07:34:31 UTC |
6decbe1 | Sam Batschelet | 07 May 2021, 16:18:10 UTC | Merge pull request #12774 from hexfusion/add-log-rotate server: add support for log rotation | 07 May 2021, 16:18:10 UTC |
f178677 | Sam Batschelet | 05 May 2021, 17:30:21 UTC | CHANGELOG: server: add support for log rotation #12774 Signed-off-by: Sam Batschelet <sbatsche@redhat.com> | 07 May 2021, 12:39:51 UTC |
82b2d5c | Sam Batschelet | 05 May 2021, 17:29:22 UTC | server: add support for log rotation Signed-off-by: Sam Batschelet <sbatsche@redhat.com> | 07 May 2021, 12:39:51 UTC |
4f87333 | Piotr Tabor | 07 May 2021, 07:31:23 UTC | Merge pull request #12922 from serathius/actions Migrate PR testing from travis to GitHub actions | 07 May 2021, 07:31:23 UTC |
e818f21 | Marek Siarkowicz | 06 May 2021, 12:37:30 UTC | Migrate PR testing from travis to GitHub actions | 06 May 2021, 15:06:57 UTC |
344c9f3 | Gyuho Lee | 06 May 2021, 08:59:14 UTC | Merge pull request #12896 from wilsonwang371/profiling-txn2 server: make applier use ReadTx() in Txn() instead of ConcurrentReadTx() | 06 May 2021, 08:59:14 UTC |
8af8f6a | Sam Batschelet | 05 May 2021, 21:01:43 UTC | Merge pull request #12918 from iflamed/fix-doc-demo-bug fix doc demo bug | 05 May 2021, 21:01:43 UTC |
a8a3eea | 刘兵 | 05 May 2021, 05:57:10 UTC | fix doc demo bug the service parameter not used. | 05 May 2021, 05:57:10 UTC |
7296a07 | odidev | 04 May 2021, 20:29:47 UTC | Set ETCD_UNSUPPORTED_ARCH to ARM64 (#12557) Signed-off-by: odidev <odidev@puresoftware.com> | 04 May 2021, 20:29:47 UTC |
b32bc91 | tangcong | 04 May 2021, 20:26:33 UTC | learner support snapshot RPC (#12890) * learner support snapshot RPC * CHANGELOG: update for 12890 | 04 May 2021, 20:26:33 UTC |
98083ea | Wilson Wang | 04 May 2021, 17:11:40 UTC | server: add experimental flag for using shared buffer in transacton write | 04 May 2021, 18:59:08 UTC |
f1123d6 | Piotr Tabor | 04 May 2021, 14:51:59 UTC | fixup! Unify shared code (and constants) with cindex package. | 04 May 2021, 16:21:24 UTC |
a78d072 | Piotr Tabor | 04 May 2021, 13:38:11 UTC | Simplify KVstore dependency on cindex. | 04 May 2021, 16:21:24 UTC |
2fb6f0a | Piotr Tabor | 28 April 2021, 06:49:40 UTC | Simplify lease management after cindex update is moved to 'hooks'. | 04 May 2021, 16:21:23 UTC |
2dbecea | Piotr Tabor | 12 April 2021, 17:49:58 UTC | Simplify KVStore interaction with cindex thanks to hooks. | 04 May 2021, 16:21:23 UTC |
fe3254a | Piotr Tabor | 12 April 2021, 17:10:13 UTC | Remove explicit authStore->ConsistencyIndex updates, as they are taken care by hook. | 04 May 2021, 13:38:23 UTC |
5005167 | Piotr Tabor | 12 April 2021, 15:28:39 UTC | Integrate backend::hooks with consistent_index. Every transaction committed to backend is writing most recent consistent_index. Makes sure that even automatically trigger commits of batch-transactions stays "really" consistent a.d. the most recent WAL log index applied. | 04 May 2021, 13:38:23 UTC |
d53d2db | Piotr Tabor | 09 April 2021, 16:43:13 UTC | Tests: Backend hooks support. | 04 May 2021, 13:38:22 UTC |
9f11b16 | Piotr Tabor | 09 April 2021, 12:18:18 UTC | backend: Hooks interface & implementation. | 04 May 2021, 13:38:22 UTC |
a3fc535 | Piotr Tabor | 04 May 2021, 08:15:01 UTC | Merge pull request #12914 from ptabor/20210430-read-membership No-storeV2: Read membership information from the backend (Part5) | 04 May 2021, 08:15:01 UTC |
5615421 | Wilson Wang | 03 May 2021, 17:19:33 UTC | update variable declaration location | 03 May 2021, 17:30:15 UTC |
eb128d2 | Gyuho Lee | 03 May 2021, 16:01:50 UTC | Merge pull request #12916 from wpedrak/pass-mlock-during-defrag server: reapply `Mlock` flag after defrag | 03 May 2021, 16:01:50 UTC |
6623c00 | wpedrak | 03 May 2021, 09:01:02 UTC | server: reapply `Mlock` flag after defrag | 03 May 2021, 09:01:02 UTC |
c46e96d | Piotr Tabor | 29 April 2021, 21:12:56 UTC | Merge pull request #12910 from ptabor/20210430-zap-polish Finish migration zap.NewExample -> zaptest.NewLogger(t) in integration tests | 29 April 2021, 21:12:56 UTC |
3acf6e3 | Piotr Tabor | 29 April 2021, 20:32:26 UTC | Finish migration zap.NewExample -> zaptest.NewLogger(t) in integration tests | 29 April 2021, 20:32:26 UTC |
451f65d | Piotr Tabor | 29 April 2021, 17:25:04 UTC | Merge pull request #12908 from ptabor/20210429-client-retry-logging Clientv3 (retry interceptor) logs should use the configured logger | 29 April 2021, 17:25:04 UTC |
cedbea6 | Piotr Tabor | 29 April 2021, 16:21:24 UTC | Merge pull request #12904 from wpedrak/limit_mlocked_memory server: replace mlockall with `Mlock` in `--experimental-memory-mlock` | 29 April 2021, 16:21:24 UTC |
ffea153 | Piotr Tabor | 29 April 2021, 15:12:12 UTC | ClientV3 tests use integration.NewClient that configures proper logger. | 29 April 2021, 16:18:34 UTC |
835643e | Piotr Tabor | 29 April 2021, 16:01:45 UTC | Merge pull request #12906 from ptabor/20210429-etcdctl-v2-backup-cindex-fix 20210429 etcdctl v2 backup cindex fix | 29 April 2021, 16:01:45 UTC |
e908ef3 | Piotr Tabor | 29 April 2021, 14:22:41 UTC | Merge pull request #12903 from lilic/exit-on-signal-int etcdctl/ctlv3: Cleanup keys on signal interrupt. | 29 April 2021, 14:22:41 UTC |
205a1a4 | Piotr Tabor | 29 April 2021, 11:44:39 UTC | Read membership information from the backend. | 29 April 2021, 11:45:45 UTC |
bc8d3f6 | Piotr Tabor | 29 April 2021, 10:57:09 UTC | Clientv3 (retry) logs should use the configured logger. clientv3 logs (especially tests) were poluted with unattributed to testing.T log lines: ``` {"level":"warn","ts":"2021-04-29T12:42:11.055+0200","logger":"etcd-client","caller":"v3/retry_interceptor.go:64","msg":"retrying of unary invoker failed","target":"etcd-endpoints://0xc0000fafc0/#initially=[unix://localhost:m10]","attempt":0,"error":"rpc error: code = ResourceExhausted desc = etcdserver: mvcc: database space exceeded"} ``` The reasons were 2 fold: - Interceptors were copying logger before "WithLogger" could modify it. - We were not propagating the loggers in a few testing contexts. | 29 April 2021, 10:57:09 UTC |
586b238 | Lili Cosic | 23 April 2021, 07:40:20 UTC | etcdctl/ctlv3: Cleanup keys on signal interrupt of check perf If ctc+c is pressed during the run of etcdctl check perf, this deletes all the previously created keys that perf check created. | 29 April 2021, 10:55:36 UTC |
1145c57 | wpedrak | 29 April 2021, 10:08:52 UTC | server: replace mlockall with `Mlock` in `--experimental-memory-mlock` Implementation of `--experimental-memory-mlock` backed by `mlockall` syscall is replaced by `Mlock` flag (backed by mlock syscall) of bboltDB. | 29 April 2021, 10:08:52 UTC |
927b3a3 | wpedrak | 28 April 2021, 14:00:04 UTC | server: replace mlockall with `Mlock` in `--experimental-memory-mlock` Implementation of `--experimental-memory-mlock` backed by `mlockall` syscall is replaced by `Mlock` flag (backed by mlock syscall) of bboltDB. | 29 April 2021, 10:08:20 UTC |
e90504f | Piotr Tabor | 29 April 2021, 07:34:54 UTC | Unify shared code (and constants) with cindex package. | 29 April 2021, 09:51:25 UTC |
f53b70f | Piotr Tabor | 28 April 2021, 23:03:36 UTC | Embed: In case KVStoreHash verification fails, close the backend. In case of failed verification, the server used to keep opened backend (so the file was locked on OS level). | 29 April 2021, 09:51:25 UTC |
2ad893b | Piotr Tabor | 28 April 2021, 21:23:45 UTC | Integrate verification into e2e tests. | 29 April 2021, 09:51:24 UTC |
911204c | Piotr Tabor | 28 April 2021, 20:46:42 UTC | Fix `ETCDCTL_API=2 etcdctl backup --with-v3` consistent index consistency Prior to this CL, `ETCDCTL_API=2 etcdctl backup --with-v3` was readacting WAL log (by removal of some entries), but was NOT updating consistent_index in the backend. Also the WAL editing logic was buggy, as it didn't took in consideration the fact that when TERM changes, there can be entries with duplicated indexes in the log. So its NOT sufficient to subtract number of removed entries to get accurate log indexes. The PR replaces removing and shifting of WAL entries with replacing them with an no-op entries. Thanks to this consistent-index references are staying up to date. The PR also: - updates 'verification' logic to check whether consistent_index does not lag befor last snapshot - env-gated execution of verification framework in `etcdctl backup`. Tested with: ``` (./build.sh && cd tests && EXPECT_DEBUG=TRUE 'env' 'go' 'test' '-timeout=300m' 'go.etcd.io/etcd/tests/v3/e2e' -run=TestCtlV2Backup --count=1000 2>&1 | tee TestCtlV2BackupV3.log) ``` | 29 April 2021, 09:51:24 UTC |
adc365e | Piotr Tabor | 28 April 2021, 11:52:59 UTC | etcdctl2: backup command logging cleanup (zap) | 28 April 2021, 21:26:17 UTC |
8d8d037 | Wilson Wang | 26 April 2021, 01:06:40 UTC | server: applier uses ReadTx instead of ConcurrentTx | 28 April 2021, 18:06:24 UTC |
ed4a87d | Piotr Tabor | 28 April 2021, 06:45:15 UTC | Merge pull request #12901 from ptabor/20210427-verification Verification of persisted data | 28 April 2021, 06:45:15 UTC |
7107cb9 | Piotr Tabor | 28 April 2021, 06:44:06 UTC | fixup! Create 'datadir' package responsible for paths. | 28 April 2021, 06:44:06 UTC |
c4b13a5 | Piotr Tabor | 27 April 2021, 15:10:41 UTC | Integrate verification framework Verification framework is integrated with: - integration tests (by default) - `ETCD_VERIFY=all etcdctl snapshot restore` command - etcd shutdown when running with `ETCD_VERIFY=all` env. | 28 April 2021, 05:56:16 UTC |
47b28b6 | Piotr Tabor | 27 April 2021, 15:06:47 UTC | Verification package: Verified given data-dir. For now verifies whete Backend.cindex is consistent with WAL log, but should get expanded to cover memberships & revisions. | 28 April 2021, 05:56:15 UTC |
6f8f506 | Piotr Tabor | 25 April 2021, 12:25:24 UTC | Create 'datadir' package responsible for paths. | 28 April 2021, 05:56:13 UTC |
d2722ff | Piotr Tabor | 28 April 2021, 05:53:42 UTC | Merge pull request #12820 from ptabor/20210326-membership-from-be (no)StoreV2 (Part 2): Prepare to read membership information from backend | 28 April 2021, 05:53:42 UTC |
0675219 | Piotr Tabor | 02 April 2021, 19:08:03 UTC | v2 etcdctl backup: producing consistent state of membership | 27 April 2021, 17:34:34 UTC |
a70386a | Piotr Tabor | 02 April 2021, 15:22:19 UTC | Simplify membership interface: Does not pass the 'unused' token. | 27 April 2021, 15:17:31 UTC |
4725567 | Piotr Tabor | 02 April 2021, 16:06:50 UTC | e2e tests: More logging and expect adopted to 3.4. | 27 April 2021, 15:17:31 UTC |
7ae3d25 | Piotr Tabor | 02 April 2021, 16:01:26 UTC | Membership: Add additional methods to trim/manage membership data in backend. | 27 April 2021, 15:17:31 UTC |
aa65973 | Piotr Tabor | 02 April 2021, 15:58:13 UTC | etcd-dump-logs: Print full confState as json for debugging purposes. | 27 April 2021, 15:17:31 UTC |
768da49 | Piotr Tabor | 26 March 2021, 12:01:49 UTC | sever: v2store deprecation: Fix `etcdctl snapshot restore` to restore correct 'backend' (bbolt) context in aspect of membership. Prior to this change the 'restored' backend used to still contain: - old memberid (mvcc deletion used, why the membership is in bolt bucket, but not mvcc part): ``` mvs := mvcc.NewStore(s.lg, be, lessor, ci, mvcc.StoreConfig{CompactionBatchLimit: math.MaxInt32}) defer mvs.Close() txn := mvs.Write(traceutil.TODO()) btx := be.BatchTx() del := func(k, v []byte) error { txn.DeleteRange(k, nil) return nil } // delete stored members from old cluster since using new members btx.UnsafeForEach([]byte("members"), del) ``` - didn't get new members added. | 27 April 2021, 15:17:30 UTC |
06d6f09 | Gyuho Lee | 27 April 2021, 07:19:10 UTC | Merge pull request #12894 from MakDon/patch-1 etcdserver/mvcc: update tw.trace.Step condition | 27 April 2021, 07:19:10 UTC |
c4f7d57 | Gyuho Lee | 26 April 2021, 21:37:53 UTC | Merge pull request #12898 from tangcong/add-disk-io-failure-case functional: add disk io failure case | 26 April 2021, 21:37:53 UTC |
4fb2209 | tangcong | 26 April 2021, 06:02:37 UTC | functional: add SHORT_TTL_LEASE_EXPIRE checker | 26 April 2021, 12:00:45 UTC |