{"_id":"@artursudnik/turborepo-purge-cache","_rev":"5-3d8a1f98ddafb4a8f2fc2f9bf540f374","name":"@artursudnik/turborepo-purge-cache","dist-tags":{"latest":"1.1.1"},"versions":{"0.0.0":{"name":"@artursudnik/turborepo-purge-cache","version":"0.0.0","author":{"name":"Artur Sudnik-Hrynkiewicz"},"license":"ISC","_id":"@artursudnik/turborepo-purge-cache@0.0.0","maintainers":[{"name":"artursudnik","email":"artur.sudnik@gmail.com"}],"bin":{"turbo-purge-cache":"dist/index.js"},"dist":{"shasum":"8bcc53da09686403418b6898b594d936da2fc38b","tarball":"https://registry.npmjs.org/@artursudnik/turborepo-purge-cache/-/turborepo-purge-cache-0.0.0.tgz","fileCount":1,"integrity":"sha512-KrMc8/3Vldp1+FtkkP7raUzPVkOZCzOHYyapN8/7DTI1MNRyOMMd00vvZkKHmJwok7JZkiuYwLMPlcaQsbz/wQ==","signatures":[{"sig":"MEUCIBLDbXtLYXrjHLAdxOuQFSzSSuXH2qlgS3Qgk2GR/v8KAiEAz+4wdlrE7GH1KrLNZchNSheabmEGr1XqND56A9wgQRM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":267},"gitHead":"386b1afa76cf773773dc7e7a4bbaba5cebfe8bbb","_npmUser":{"name":"artursudnik","email":"artur.sudnik@gmail.com"},"_npmVersion":"11.6.2","description":"Initial placeholder release","directories":{},"_nodeVersion":"24.12.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/turborepo-purge-cache_0.0.0_1767311843733_0.3557113396646785","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@artursudnik/turborepo-purge-cache","version":"1.0.0","keywords":["turborepo","turbo","cache","purge","cleanup","cli"],"author":{"name":"Artur Sudnik-Hrynkiewicz"},"license":"ISC","_id":"@artursudnik/turborepo-purge-cache@1.0.0","maintainers":[{"name":"artursudnik","email":"artur.sudnik@gmail.com"}],"homepage":"https://github.com/artursudnik/turborepo-purge-cache#readme","bugs":{"url":"https://github.com/artursudnik/turborepo-purge-cache/issues"},"bin":{"turbo-purge-cache":"dist/index.js"},"dist":{"shasum":"b1a22807c5da6546c1c2e6d939e984970dd7973e","tarball":"https://registry.npmjs.org/@artursudnik/turborepo-purge-cache/-/turborepo-purge-cache-1.0.0.tgz","fileCount":18,"integrity":"sha512-OyripMNA5Mkj7x80FeoWJ+0f/FpbQaqZwg99PpiUJ91Ghas9VWSfwNDpQ4oHMPvJ2G9ksRjG09npX08f9+Co5g==","signatures":[{"sig":"MEYCIQC/XDbCZ/lMqBjgYJ5z+C5atglvsArI8XHLdBoDhjTELgIhAMENh/Jln2jzoYS2weV07RQtbVfcmSewncO7w2BXDTzR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@artursudnik%2fturborepo-purge-cache@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":35997},"_from":"file:artursudnik-turborepo-purge-cache-1.0.0.tgz","engines":{"node":">= 22"},"scripts":{"test":"pnpm check-deps && jest","build":"pnpm check-deps && rimraf dist && tsc --project tsconfig.build.json","lint:fix":"pnpm check-deps && eslint_d --fix \"**/*.ts\"","check-deps":"check-dependencies","lint:check":"pnpm check-deps && eslint_d \"**/*.ts\"","check-types":"pnpm check-deps && tsc --noEmit","prettier:fix":"pnpm check-deps && prettier -w .","test:coverage":"pnpm check-deps && jest --coverage","prettier:check":"pnpm check-deps && prettier -c .","generate-barrels":"barrelsby --config barrelsby.config.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a933dc4-38f4-4f93-b72f-c27dc933757d"}},"_resolved":"/tmp/3bc0bd132c966fa9e26ebc9b819f9cb8/artursudnik-turborepo-purge-cache-1.0.0.tgz","_integrity":"sha512-OyripMNA5Mkj7x80FeoWJ+0f/FpbQaqZwg99PpiUJ91Ghas9VWSfwNDpQ4oHMPvJ2G9ksRjG09npX08f9+Co5g==","commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/artursudnik/turborepo-purge-cache.git","type":"git"},"_npmVersion":"11.6.2","description":"A CLI tool to purge .turbo folder content based on Time-To-Live (TTL) and task cached output references","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"4.3.4","commander":"14.0.2"},"engineStrict":true,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","jest":"30.2.0","husky":"9.1.7","eslint":"9.39.2","rimraf":"6.1.2","globals":"16.5.0","ts-jest":"29.4.6","ts-node":"10.9.2","eslint_d":"14.3.0","prettier":"3.7.4","barrelsby":"2.8.1","@eslint/js":"9.39.2","typescript":"5.9.3","@types/jest":"30.0.0","@types/node":"24.10.1","lint-staged":"16.2.7","@commitlint/cli":"20.3.0","typescript-eslint":"8.51.0","check-dependencies":"2.0.0","eslint-plugin-import":"2.32.0","organize-imports-cli":"0.10.0","eslint-config-prettier":"10.1.8","eslint-plugin-prettier":"5.5.4","prettier-plugin-packagejson":"2.5.20","@commitlint/config-conventional":"20.3.0","prettier-plugin-organize-imports":"4.3.0","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/turborepo-purge-cache_1.0.0_1767361416697_0.3415117085329973","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@artursudnik/turborepo-purge-cache","version":"1.0.1","keywords":["turborepo","turbo","cache","purge","cleanup","cli"],"author":{"name":"Artur Sudnik-Hrynkiewicz"},"license":"ISC","_id":"@artursudnik/turborepo-purge-cache@1.0.1","maintainers":[{"name":"artursudnik","email":"artur.sudnik@gmail.com"}],"homepage":"https://github.com/artursudnik/turborepo-purge-cache#readme","bugs":{"url":"https://github.com/artursudnik/turborepo-purge-cache/issues"},"bin":{"turbo-purge-cache":"dist/index.js"},"dist":{"shasum":"4041112b5bb60d9c229c42b3001cd8882479a728","tarball":"https://registry.npmjs.org/@artursudnik/turborepo-purge-cache/-/turborepo-purge-cache-1.0.1.tgz","fileCount":19,"integrity":"sha512-7qrMC/wQZHHFF1r7DLz+DVegT/W2M5o7TIdxqDHgifh7WMmhYsZ64dJsU3QgVE7VeOWeV3phJYmtf9V+Ff6xAA==","signatures":[{"sig":"MEUCIGaXsxqtrMXgBq2cbua4rL75ENWENm6GEMFYo3JOEn7KAiEA/3q5Xs56JnDUFs6EZOQFKBj+f3ZfpOSHq4Js4TZR1hs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@artursudnik%2fturborepo-purge-cache@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37508},"_from":"file:artursudnik-turborepo-purge-cache-1.0.1.tgz","engines":{"node":">= 22"},"scripts":{"test":"pnpm check-deps && jest","build":"pnpm check-deps && rimraf dist && tsc --project tsconfig.build.json","lint:fix":"pnpm check-deps && eslint_d --fix \"**/*.ts\"","check-deps":"check-dependencies","lint:check":"pnpm check-deps && eslint_d \"**/*.ts\"","check-types":"pnpm check-deps && tsc --noEmit","prettier:fix":"pnpm check-deps && prettier -w .","test:coverage":"pnpm check-deps && jest --coverage","prettier:check":"pnpm check-deps && prettier -c .","generate-barrels":"barrelsby --config barrelsby.config.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a933dc4-38f4-4f93-b72f-c27dc933757d"}},"_resolved":"/tmp/38e4cbab524d5854a742389329d99844/artursudnik-turborepo-purge-cache-1.0.1.tgz","_integrity":"sha512-7qrMC/wQZHHFF1r7DLz+DVegT/W2M5o7TIdxqDHgifh7WMmhYsZ64dJsU3QgVE7VeOWeV3phJYmtf9V+Ff6xAA==","commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/artursudnik/turborepo-purge-cache.git","type":"git"},"_npmVersion":"11.6.2","description":"A CLI tool to purge .turbo folder content based on Time-To-Live (TTL) and task cached output references","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"4.3.4","commander":"14.0.2"},"engineStrict":true,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","jest":"30.2.0","husky":"9.1.7","eslint":"9.39.2","rimraf":"6.1.2","globals":"17.0.0","ts-jest":"29.4.6","ts-node":"10.9.2","eslint_d":"14.3.0","prettier":"3.7.4","barrelsby":"2.8.1","@eslint/js":"9.39.2","typescript":"5.9.3","@types/jest":"30.0.0","@types/node":"24.10.4","lint-staged":"16.2.7","@commitlint/cli":"20.3.0","typescript-eslint":"8.51.0","check-dependencies":"2.0.0","eslint-plugin-import":"2.32.0","organize-imports-cli":"0.10.0","eslint-config-prettier":"10.1.8","eslint-plugin-prettier":"5.5.4","prettier-plugin-packagejson":"2.5.20","@commitlint/config-conventional":"20.3.0","prettier-plugin-organize-imports":"4.3.0","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/turborepo-purge-cache_1.0.1_1767434048864_0.9830629235626829","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@artursudnik/turborepo-purge-cache","version":"1.1.0","keywords":["turborepo","turbo","cache","purge","cleanup","cli"],"author":{"name":"Artur Sudnik-Hrynkiewicz"},"license":"ISC","_id":"@artursudnik/turborepo-purge-cache@1.1.0","maintainers":[{"name":"artursudnik","email":"artur.sudnik@gmail.com"}],"homepage":"https://github.com/artursudnik/turborepo-purge-cache#readme","bugs":{"url":"https://github.com/artursudnik/turborepo-purge-cache/issues"},"bin":{"turbo-purge-cache":"dist/index.js"},"dist":{"shasum":"a86bd4856bf5d058e1ccdfd26a0cb2ff3fb51b79","tarball":"https://registry.npmjs.org/@artursudnik/turborepo-purge-cache/-/turborepo-purge-cache-1.1.0.tgz","fileCount":19,"integrity":"sha512-+BC4rIdjOnjlHKM9lwpLewRuoEFOBijE4Tbcc+8dftZj77NLa6Xt94xv2UiIE1fBvg0Y5HGQsdHFjdMLUVDxtQ==","signatures":[{"sig":"MEUCIQDsH1+iKeC1xbA8+abTTaC/l7/GiYxQTxLNvN5tnTJ+kQIga3NAbfGx3aRN5wCLqKL82dTfGzKOdPDmW15arNkBnE0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@artursudnik%2fturborepo-purge-cache@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38238},"_from":"file:artursudnik-turborepo-purge-cache-1.1.0.tgz","engines":{"node":">= 22"},"scripts":{"test":"pnpm check-deps && jest","build":"pnpm check-deps && rimraf dist && tsc --project tsconfig.build.json","lint:fix":"pnpm check-deps && eslint_d --fix \"**/*.ts\"","check-deps":"check-dependencies","lint:check":"pnpm check-deps && eslint_d \"**/*.ts\"","check-types":"pnpm check-deps && tsc --noEmit","prettier:fix":"pnpm check-deps && prettier -w .","test:coverage":"pnpm check-deps && jest --coverage","prettier:check":"pnpm check-deps && prettier -c .","generate-barrels":"barrelsby --config barrelsby.config.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a933dc4-38f4-4f93-b72f-c27dc933757d"}},"_resolved":"/tmp/a556a7587466b4db23ec6915c4943aba/artursudnik-turborepo-purge-cache-1.1.0.tgz","_integrity":"sha512-+BC4rIdjOnjlHKM9lwpLewRuoEFOBijE4Tbcc+8dftZj77NLa6Xt94xv2UiIE1fBvg0Y5HGQsdHFjdMLUVDxtQ==","commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/artursudnik/turborepo-purge-cache.git","type":"git"},"_npmVersion":"11.6.2","description":"A CLI tool to purge .turbo folder content based on Time-To-Live (TTL) and task cached output references","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"4.3.5","commander":"14.0.2"},"engineStrict":true,"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"4.21.0","jest":"30.2.0","husky":"9.1.7","eslint":"9.39.2","rimraf":"6.1.2","globals":"17.0.0","ts-jest":"29.4.6","ts-node":"10.9.2","eslint_d":"14.3.0","prettier":"3.7.4","barrelsby":"2.8.1","@eslint/js":"9.39.2","typescript":"5.9.3","@types/jest":"30.0.0","@types/node":"24.10.4","lint-staged":"16.2.7","@commitlint/cli":"20.3.0","typescript-eslint":"8.51.0","check-dependencies":"2.0.0","eslint-plugin-import":"2.32.0","organize-imports-cli":"0.10.0","eslint-config-prettier":"10.1.8","eslint-plugin-prettier":"5.5.4","prettier-plugin-packagejson":"2.5.20","@commitlint/config-conventional":"20.3.0","prettier-plugin-organize-imports":"4.3.0","eslint-import-resolver-typescript":"4.4.4"},"_npmOperationalInternal":{"tmp":"tmp/turborepo-purge-cache_1.1.0_1767658704651_0.2947602067792203","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@artursudnik/turborepo-purge-cache","version":"1.1.1","description":"A CLI tool to purge .turbo folder content based on Time-To-Live (TTL) and task cached output references","keywords":["turborepo","turbo","cache","purge","cleanup","cli"],"repository":{"type":"git","url":"git+https://github.com/artursudnik/turborepo-purge-cache.git"},"license":"ISC","author":{"name":"Artur Sudnik-Hrynkiewicz"},"bin":{"turbo-purge-cache":"dist/index.js"},"commitlint":{"extends":["@commitlint/config-conventional"]},"dependencies":{"commander":"14.0.3","zod":"4.3.6"},"devDependencies":{"@commitlint/cli":"20.4.1","@commitlint/config-conventional":"20.4.1","@eslint/js":"9.39.2","@types/jest":"30.0.0","@types/node":"24.10.10","barrelsby":"2.8.1","check-dependencies":"2.0.0","eslint":"9.39.2","eslint-config-prettier":"10.1.8","eslint-import-resolver-typescript":"4.4.4","eslint-plugin-import":"2.32.0","eslint-plugin-prettier":"5.5.5","eslint_d":"14.3.0","globals":"17.3.0","husky":"9.1.7","jest":"30.2.0","lint-staged":"16.2.7","organize-imports-cli":"0.10.0","prettier":"3.8.1","prettier-plugin-organize-imports":"4.3.0","prettier-plugin-packagejson":"3.0.0","rimraf":"6.1.2","ts-jest":"29.4.6","ts-node":"10.9.2","tsx":"4.21.0","typescript":"5.9.3","typescript-eslint":"8.54.0"},"engines":{"node":">= 22"},"engineStrict":true,"publishConfig":{"access":"public"},"scripts":{"build":"pnpm check-deps && rimraf dist && tsc --project tsconfig.build.json","check-deps":"check-dependencies","check-types":"pnpm check-deps && tsc --noEmit","generate-barrels":"barrelsby --config barrelsby.config.json","lint:check":"pnpm check-deps && eslint_d \"**/*.ts\"","lint:fix":"pnpm check-deps && eslint_d --fix \"**/*.ts\"","prettier:check":"pnpm check-deps && prettier -c .","prettier:fix":"pnpm check-deps && prettier -w .","test":"pnpm check-deps && jest","test:coverage":"pnpm check-deps && jest --coverage"},"_id":"@artursudnik/turborepo-purge-cache@1.1.1","bugs":{"url":"https://github.com/artursudnik/turborepo-purge-cache/issues"},"homepage":"https://github.com/artursudnik/turborepo-purge-cache#readme","_integrity":"sha512-cN9fRomYcwnsPwS50r4W/YW5v2UVGOOIeLBEZfA83zd/kA9q2ujzPyf9hrdTskgo4fuu2ah0vnn8kspKFU3sRg==","_resolved":"/tmp/685706bd32ab04fc914bd1ca16bbf9eb/artursudnik-turborepo-purge-cache-1.1.1.tgz","_from":"file:artursudnik-turborepo-purge-cache-1.1.1.tgz","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-cN9fRomYcwnsPwS50r4W/YW5v2UVGOOIeLBEZfA83zd/kA9q2ujzPyf9hrdTskgo4fuu2ah0vnn8kspKFU3sRg==","shasum":"d3aa59f9b0bb7b3847b19c4100143b5862a1432f","tarball":"https://registry.npmjs.org/@artursudnik/turborepo-purge-cache/-/turborepo-purge-cache-1.1.1.tgz","fileCount":19,"unpackedSize":38238,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@artursudnik%2fturborepo-purge-cache@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGdYMe1m3lJJXwqc2SsY+jeSEIYcw+8IPbO/WxJnaRYeAiAPjlHd7i/UUrzD/07RiRjhUIYLRosyZTnYn9cyLknF/g=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a933dc4-38f4-4f93-b72f-c27dc933757d"}},"directories":{},"maintainers":[{"name":"artursudnik","email":"artur.sudnik@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/turborepo-purge-cache_1.1.1_1770132739441_0.37606738478944934"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-01T23:57:23.653Z","modified":"2026-02-03T15:32:19.967Z","0.0.0":"2026-01-01T23:57:23.861Z","1.0.0":"2026-01-02T13:43:36.841Z","1.0.1":"2026-01-03T09:54:09.000Z","1.1.0":"2026-01-06T00:18:24.826Z","1.1.1":"2026-02-03T15:32:19.635Z"},"bugs":{"url":"https://github.com/artursudnik/turborepo-purge-cache/issues"},"author":{"name":"Artur Sudnik-Hrynkiewicz"},"license":"ISC","homepage":"https://github.com/artursudnik/turborepo-purge-cache#readme","keywords":["turborepo","turbo","cache","purge","cleanup","cli"],"repository":{"type":"git","url":"git+https://github.com/artursudnik/turborepo-purge-cache.git"},"description":"A CLI tool to purge .turbo folder content based on Time-To-Live (TTL) and task cached output references","maintainers":[{"name":"artursudnik","email":"artur.sudnik@gmail.com"}],"readme":"# @artursudnik/turborepo-purge-cache\n\n[![npm version](https://img.shields.io/npm/v/@artursudnik/turborepo-purge-cache.svg)](https://www.npmjs.com/package/@artursudnik/turborepo-purge-cache)\n[![license](https://img.shields.io/npm/l/@artursudnik/turborepo-purge-cache.svg)](https://github.com/artursudnik/turborepo-purge-cache/blob/main/LICENSE)\n\nA CLI tool to purge `.turbo` folder content based on Time-To-Live (TTL) and task cached output references.\n\nTurborepo's local cache can grow significantly over time. While Turborepo manages the cache, it doesn't always aggressively clean up old runs or unreferenced cache entries. This tool helps keep your `.turbo` folder lean.\n\n## Features\n\n- **Remove old runs**: Deletes JSON files in `.turbo/runs` older than a specified number of days.\n- **Cleanup unreferenced cache**: Identifies and removes cache entries in `.turbo/cache` that are no longer referenced by any existing run files and are older than a specified TTL.\n\n## Installation\n\nYou can run it directly using `npx`:\n\n```bash\nnpx @artursudnik/turborepo-purge-cache [path] [options]\n```\n\nOr install it globally:\n\n```bash\npnpm add -g @artursudnik/turborepo-purge-cache\n```\n\n## Usage\n\nIt is recommended to use [the Run Summaries](https://vercel.com/changelog/turborepo-run-summary-is-now-available)\noption to keep track of cache usage. Use `--summarize` flag to enable it or set TURBO_RUN_SUMMARY=true environment variable.\n\n```bash\nturbo-purge-cache [path] [options]\n```\n\n### Arguments\n\n- `path`: Path to the `.turbo` folder. Defaults to `.turbo` in the current directory.\n\n### Options\n\n- `--runs-ttl <days>`: Number of days to keep run history files. (Default: `7`)\n- `--cache-ttl <days>`: Number of days to keep unreferenced cached tasks. (Default: `7`)\n- `-h, --help`: Display help for command.\n\n### Example\n\nTo keep only the last 3 days of runs and immediately remove any unreferenced cache entries:\n\n```bash\nnpx @artursudnik/turborepo-purge-cache --runs-ttl 3 --cache-ttl 0\n```\n\n## How it works\n\n1. **Runs Cleanup**: It first scans the `.turbo/runs` directory and deletes any `.json` files older than `--runs-ttl`.\n2. **Reference Collection**: It then reads all remaining run files to collect all referenced cache hashes.\n3. **Cache Cleanup**: Finally, it scans the `.turbo` directory (where cache entries are stored as `<hash>.tar.zst` or similar, depending on turbo version, but usually it looks for directories/files that match the hash pattern) and removes those that:\n   - Are NOT in the list of referenced hashes.\n   - ARE older than `--cache-ttl`.\n\n## License\n\nISC\n","readmeFilename":"README.md"}