[
  {
    "path": ".github/FUNDING.yml",
    "content": "# These are supported funding model platforms\ngithub: ccfddl\n"
  },
  {
    "path": ".github/mergify.yml",
    "content": "pull_request_rules:\n  - name: say hi on new contribution\n    conditions:\n      - base=main\n      - label!=updateconf\n    actions:\n      comment:\n        message: |\n          Welcome to ccf-deadlines!\n          We're delighted to have you onboard (p≧w≦q)\n      label:\n        add: ['updateconf']\n  - name: ask the maintainer team to review PR\n    conditions:\n      - label!=invalid\n      - \"#approved-reviews-by<1\"\n    actions:\n      request_reviews:\n        teams:\n          - \"maintainers\"\n  - name: automatic merge for master when CI passes and 1 reviews\n    conditions:\n      - \"#approved-reviews-by>=1\"\n      - check-success=build\n      - check-success=pre-commit\n      - base=main\n    actions:\n      merge:\n        method: squash\n      label:\n        add: ['ready-to-merge']\n      comment:\n        message: |\n          Great job!\n          Thank you @{{author}} for your contribution!\n"
  },
  {
    "path": ".github/pull_request_template.md",
    "content": "<!-- Thank you for contributing to ccf-deadlines!\n\nPR Title Format: Update conf_name conf_year\n-->\n\n### Which conference does this PR update?\n<!-- List conf_name conf_year below-->\n-\n\n### Related URL\n<!-- List useful URLs for reviewers to check -->\n-\n"
  },
  {
    "path": ".github/workflows/deploy.yml",
    "content": "name: Deploy\non:\n  push:\n    branches: [main]\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v2.3.4\n      - name: Setup Node.js environment\n        uses: actions/setup-node@main\n        with:\n          node-version: '15.x'\n      - name: Set up Python\n        uses: actions/setup-python@v5\n        with:\n          python-version: 3.12.12\n      - name: Install dependencies\n        run: |\n          python -m pip install --upgrade pip\n          python -m pip install PyYAML jsonschema icalendar xlin\n      - name: Assemble yml files\n        run: |\n          mkdir -p public/conference && cd public/conference\n          python ../../scripts/merge.py ../../conference --exclude \"types.yml\" > allconf.yml\n          python ../../scripts/merge.py ../../accept_rates > allacc.yml\n          cp ../../conference/types.yml .\n          cd ../..\n      - name: Generate iCal files\n        run: |\n          python extensions/cli/ccfddl/convert_to_ical.py\n          mv *.ics public/conference/\n      - name: Generate RSS feeds\n        run: |\n          python extensions/cli/ccfddl/convert_to_rss.py\n          mv *.xml public/conference/\n      # Install Rust Nightly Toolchain, with Clippy & Rustfmt\n      - name: Install nightly Rust\n        uses: dtolnay/rust-toolchain@nightly\n        with:\n          components: clippy, rustfmt\n      - name: Add WASM target\n        run: rustup target add wasm32-unknown-unknown\n      - name: Download and install Trunk binary\n        run: wget -qO- https://github.com/trunk-rs/trunk/releases/download/v0.18.4/trunk-x86_64-unknown-linux-gnu.tar.gz | tar -xzf-\n      - name: Build with Trunk\n        # \"${GITHUB_REPOSITORY#*/}\" evaluates into the name of the repository\n        # using --public-url something will allow trunk to modify all the href paths like from favicon.ico to repo_name/favicon.ico .\n        # this is necessary for github pages where the site is deployed to username.github.io/repo_name and all files must be requested\n        # relatively as favicon.ico. if we skip public-url option, the href paths will instead request username.github.io/favicon.ico which\n        # will obviously return error 404 not found.\n        run: ./trunk build --release\n      - name: Config Git\n        run: |\n          git config --global user.email \"jacklightchen@gmail.com\"\n          git config --global user.name \"jacklightChen\"\n      - name: Deploy\n        run: |\n          cd dist\n          echo 'ccfddl.com' > CNAME\n          git init\n          git add --all\n          git commit -m \"Site Update:`TZ=':Asia/Shanghai' date +' %Y-%m-%d %H:%m:%S'`\"\n          git push --force https://${{ secrets.ACCESS_TOKEN }}@github.com/ccfddl/ccfddl.github.io.git master:page\n"
  },
  {
    "path": ".github/workflows/merge_check.yml",
    "content": "name: MergeCheck\non:\n  pull_request:\n    branches: [main]\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v2.3.4\n      - name: Setup Node.js environment\n        uses: actions/setup-node@main\n        with:\n          node-version: '15.x'\n      - name: Set up Python\n        uses: actions/setup-python@v5\n        with:\n          python-version: 3.12.12\n      - name: Install dependencies\n        run: |\n          python -m pip install --upgrade pip\n          python -m pip install PyYAML jsonschema\n      - name: Assemble yml files\n        run: |\n          mkdir -p public/conference && cd public/conference\n          python ../../scripts/merge.py ../../conference --exclude \"types.yml\" > allconf.yml\n          python ../../scripts/merge.py ../../accept_rates > allacc.yml\n          cp ../../conference/types.yml .\n          cd ../..\n      # Install Rust Nightly Toolchain, with Clippy & Rustfmt\n      - name: Install nightly Rust\n        uses: dtolnay/rust-toolchain@nightly\n        with:\n          components: clippy, rustfmt\n      - name: Add WASM target\n        run: rustup target add wasm32-unknown-unknown\n      - name: Download and install Trunk binary\n        run: wget -qO- https://github.com/trunk-rs/trunk/releases/download/v0.18.4/trunk-x86_64-unknown-linux-gnu.tar.gz | tar -xzf-\n      - name: Build with Trunk\n        # \"${GITHUB_REPOSITORY#*/}\" evaluates into the name of the repository\n        # using --public-url something will allow trunk to modify all the href paths like from favicon.ico to repo_name/favicon.ico .\n        # this is necessary for github pages where the site is deployed to username.github.io/repo_name and all files must be requested\n        # relatively as favicon.ico. if we skip public-url option, the href paths will instead request username.github.io/favicon.ico which\n        # will obviously return error 404 not found.\n        run: ./trunk build --release\n"
  },
  {
    "path": ".github/workflows/pre-commit.yml",
    "content": "name: pre-commit\non:\n  workflow_dispatch:\n  pull_request:\n  push:\njobs:\n  pre-commit:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - uses: actions/setup-python@v5\n      - uses: pre-commit/action@v3.0.1\n"
  },
  {
    "path": ".gitignore",
    "content": "# Created by https://www.toptal.com/developers/gitignore/api/python,rust\n# Edit at https://www.toptal.com/developers/gitignore?templates=python,rust\n\n### Python ###\n# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# C extensions\n*.so\n\n# Distribution / packaging\n.Python\nbuild/\ndevelop-eggs/\ndist/\ndownloads/\neggs/\n.eggs/\nlib/\nlib64/\nparts/\nsdist/\nvar/\nwheels/\nshare/python-wheels/\n*.egg-info/\n.installed.cfg\n*.egg\nMANIFEST\n\n# PyInstaller\n#  Usually these files are written by a python script from a template\n#  before PyInstaller builds the exe, so as to inject date/other infos into it.\n*.manifest\n*.spec\n\n# Installer logs\npip-log.txt\npip-delete-this-directory.txt\n\n# Unit test / coverage reports\nhtmlcov/\n.tox/\n.nox/\n.coverage\n.coverage.*\n.cache\nnosetests.xml\ncoverage.xml\n*.cover\n*.py,cover\n.hypothesis/\n.pytest_cache/\ncover/\n\n# Translations\n*.mo\n*.pot\n\n# Django stuff:\n*.log\nlocal_settings.py\ndb.sqlite3\ndb.sqlite3-journal\n\n# Flask stuff:\ninstance/\n.webassets-cache\n\n# Scrapy stuff:\n.scrapy\n\n# Sphinx documentation\ndocs/_build/\n\n# PyBuilder\n.pybuilder/\ntarget/\n\n# Jupyter Notebook\n.ipynb_checkpoints\n\n# IPython\nprofile_default/\nipython_config.py\n\n# pyenv\n#   For a library or package, you might want to ignore these files since the code is\n#   intended to run in multiple environments; otherwise, check them in:\n# .python-version\n\n# pipenv\n#   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.\n#   However, in case of collaboration, if having platform-specific dependencies or dependencies\n#   having no cross-platform support, pipenv may install dependencies that don't work, or not\n#   install all needed dependencies.\n#Pipfile.lock\n\n# poetry\n#   Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.\n#   This is especially recommended for binary packages to ensure reproducibility, and is more\n#   commonly ignored for libraries.\n#   https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control\n#poetry.lock\n\n# pdm\n#   Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.\n#pdm.lock\n#   pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it\n#   in version control.\n#   https://pdm.fming.dev/#use-with-ide\n.pdm.toml\n\n# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm\n__pypackages__/\n\n# Celery stuff\ncelerybeat-schedule\ncelerybeat.pid\n\n# SageMath parsed files\n*.sage.py\n\n# Environments\n.env\n.venv\nenv/\nvenv/\nENV/\nenv.bak/\nvenv.bak/\n\n# Spyder project settings\n.spyderproject\n.spyproject\n\n# Rope project settings\n.ropeproject\n\n# mkdocs documentation\n/site\n\n# mypy\n.mypy_cache/\n.dmypy.json\ndmypy.json\n\n# Pyre type checker\n.pyre/\n\n# pytype static type analyzer\n.pytype/\n\n# Cython debug symbols\ncython_debug/\n\n# PyCharm\n#  JetBrains specific template is maintained in a separate JetBrains.gitignore that can\n#  be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore\n#  and can be added to the global gitignore or merged into this file.  For a more nuclear\n#  option (not recommended) you can uncomment the following to ignore the entire idea folder.\n#.idea/\n\n### Python Patch ###\n# Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration\npoetry.toml\n\n# ruff\n.ruff_cache/\n\n# LSP config files\npyrightconfig.json\n\n### Rust ###\n# Generated by Cargo\n# will have compiled files and executables\ndebug/\n\n# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries\n# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html\nCargo.lock\n\n# These are backup files generated by rustfmt\n**/*.rs.bk\n\n# MSVC Windows builds of rustc generate these, which store debugging information\n*.pdb\n\n# End of https://www.toptal.com/developers/gitignore/api/python,rust\n\nAGENTS.md\n.DS_Store\nnode_modules\ndist\npublic/conference\n\n\n# local env files\n.env.local\n.env.*.local\n\n# Log files\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\n\n# Editor directories and files\n.idea\n.vscode\n*.suo\n*.ntvs*\n*.njsproj\n*.sln\n*.sw?\n\n# Generated by Cargo\n# will have compiled files and executables\n/target/\n\n# These are backup files generated by rustfmt\n**/*.rs.bk\n"
  },
  {
    "path": ".pre-commit-config.yaml",
    "content": "repos:\n  - repo: https://github.com/pre-commit/pre-commit-hooks\n    rev: v5.0.0\n    hooks:\n      - id: check-case-conflict\n      - id: check-merge-conflict\n      - id: check-yaml\n      - id: end-of-file-fixer\n      - id: fix-byte-order-marker\n      - id: mixed-line-ending\n        args: [--fix=lf]\n      - id: trailing-whitespace\n  - repo: local\n    hooks:\n      - id: validate\n        name: Validate Conference yaml files\n        entry: python scripts/validate.py\n        language: python\n        additional_dependencies: [PyYAML, jsonschema]\n        types: [python]\n  - repo: https://github.com/google/yamlfmt\n    rev: v0.17.2\n    hooks:\n      - id: yamlfmt\n        name: Format YAML files\n  - repo: https://github.com/python-jsonschema/check-jsonschema\n    rev: 0.33.1\n    hooks:\n      - id: check-github-workflows\n        name: Check GitHub Workflow configuration\n"
  },
  {
    "path": ".readme_assets/best-practice.drawio",
    "content": "<mxfile host=\"65bd71144e\">\n    <diagram id=\"scfeG7vpldKUv0kFTR0y\" name=\"Page-1\">\n        <mxGraphModel dx=\"1398\" dy=\"859\" grid=\"0\" gridSize=\"10\" guides=\"1\" tooltips=\"1\" connect=\"1\" arrows=\"1\" fold=\"1\" page=\"1\" pageScale=\"1\" pageWidth=\"850\" pageHeight=\"1100\" math=\"0\" shadow=\"0\">\n            <root>\n                <mxCell id=\"0\"/>\n                <mxCell id=\"1\" parent=\"0\"/>\n                <mxCell id=\"2\" value=\"Upstream Repo\" style=\"rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;\" parent=\"1\" vertex=\"1\">\n                    <mxGeometry x=\"80\" y=\"320\" width=\"120\" height=\"40\" as=\"geometry\"/>\n                </mxCell>\n                <mxCell id=\"6\" value=\"\" style=\"edgeStyle=none;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fillColor=#f8cecc;strokeColor=#b85450;exitX=0.5;exitY=1;exitDx=0;exitDy=0;\" parent=\"1\" source=\"20\" target=\"21\" edge=\"1\">\n                    <mxGeometry relative=\"1\" as=\"geometry\">\n                        <mxPoint x=\"280\" y=\"370\" as=\"sourcePoint\"/>\n                        <mxPoint x=\"318.71546484833766\" y=\"410.02751312787586\" as=\"targetPoint\"/>\n                    </mxGeometry>\n                </mxCell>\n                <mxCell id=\"7\" value=\"checkout&amp;nbsp; -b feature-name\" style=\"edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];\" parent=\"6\" vertex=\"1\" connectable=\"0\">\n                    <mxGeometry x=\"-0.1582\" y=\"1\" relative=\"1\" as=\"geometry\">\n                        <mxPoint as=\"offset\"/>\n                    </mxGeometry>\n                </mxCell>\n                <mxCell id=\"10\" value=\"\" style=\"edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#d5e8d4;strokeColor=#82b366;\" parent=\"1\" source=\"21\" target=\"22\" edge=\"1\">\n                    <mxGeometry relative=\"1\" as=\"geometry\">\n                        <mxPoint x=\"350\" y=\"440\" as=\"sourcePoint\"/>\n                        <mxPoint x=\"440.1036272526535\" y=\"432.4913643956122\" as=\"targetPoint\"/>\n                    </mxGeometry>\n                </mxCell>\n                <mxCell id=\"11\" value=\"changes\" style=\"edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];\" parent=\"10\" vertex=\"1\" connectable=\"0\">\n                    <mxGeometry x=\"-0.2041\" relative=\"1\" as=\"geometry\">\n                        <mxPoint as=\"offset\"/>\n                    </mxGeometry>\n                </mxCell>\n                <mxCell id=\"13\" value=\"\" style=\"edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fillColor=#d5e8d4;strokeColor=#82b366;\" parent=\"1\" source=\"22\" target=\"23\" edge=\"1\">\n                    <mxGeometry relative=\"1\" as=\"geometry\">\n                        <mxPoint x=\"467.38499149160816\" y=\"459.8858115244766\" as=\"sourcePoint\"/>\n                        <mxPoint x=\"454.11651594585464\" y=\"510.58257972927277\" as=\"targetPoint\"/>\n                    </mxGeometry>\n                </mxCell>\n                <mxCell id=\"14\" value=\"push forked&amp;nbsp; feature-name\" style=\"edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];\" parent=\"13\" vertex=\"1\" connectable=\"0\">\n                    <mxGeometry x=\"-0.3582\" relative=\"1\" as=\"geometry\">\n                        <mxPoint y=\"3\" as=\"offset\"/>\n                    </mxGeometry>\n                </mxCell>\n                <mxCell id=\"16\" style=\"edgeStyle=orthogonalEdgeStyle;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#ffe6cc;strokeColor=#d79b00;\" parent=\"1\" source=\"23\" edge=\"1\">\n                    <mxGeometry relative=\"1\" as=\"geometry\">\n                        <mxPoint x=\"600\" y=\"350\" as=\"targetPoint\"/>\n                        <mxPoint x=\"490\" y=\"540\" as=\"sourcePoint\"/>\n                    </mxGeometry>\n                </mxCell>\n                <mxCell id=\"17\" value=\"New Pull Request\" style=\"edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];\" parent=\"16\" vertex=\"1\" connectable=\"0\">\n                    <mxGeometry x=\"-0.5816\" y=\"-2\" relative=\"1\" as=\"geometry\">\n                        <mxPoint y=\"-3\" as=\"offset\"/>\n                    </mxGeometry>\n                </mxCell>\n                <mxCell id=\"15\" value=\"\" style=\"endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#f8cecc;strokeColor=#b85450;\" parent=\"1\" source=\"2\" edge=\"1\">\n                    <mxGeometry width=\"50\" height=\"50\" relative=\"1\" as=\"geometry\">\n                        <mxPoint x=\"340\" y=\"345\" as=\"sourcePoint\"/>\n                        <mxPoint x=\"680\" y=\"340\" as=\"targetPoint\"/>\n                    </mxGeometry>\n                </mxCell>\n                <mxCell id=\"24\" value=\"Review\" style=\"edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];\" parent=\"15\" vertex=\"1\" connectable=\"0\">\n                    <mxGeometry x=\"0.7691\" y=\"-1\" relative=\"1\" as=\"geometry\">\n                        <mxPoint x=\"-25\" y=\"-1\" as=\"offset\"/>\n                    </mxGeometry>\n                </mxCell>\n                <mxCell id=\"18\" value=\"Local Cloned\" style=\"rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;\" parent=\"1\" vertex=\"1\">\n                    <mxGeometry x=\"80\" y=\"400\" width=\"120\" height=\"40\" as=\"geometry\"/>\n                </mxCell>\n                <mxCell id=\"19\" value=\"Personal Fork\" style=\"rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;\" parent=\"1\" vertex=\"1\">\n                    <mxGeometry x=\"80\" y=\"480\" width=\"120\" height=\"40\" as=\"geometry\"/>\n                </mxCell>\n                <mxCell id=\"20\" value=\"Main HEAD\" style=\"ellipse;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;\" parent=\"1\" vertex=\"1\">\n                    <mxGeometry x=\"240\" y=\"320\" width=\"80\" height=\"40\" as=\"geometry\"/>\n                </mxCell>\n                <mxCell id=\"21\" value=\"Feature Branch\" style=\"ellipse;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;\" parent=\"1\" vertex=\"1\">\n                    <mxGeometry x=\"240\" y=\"400\" width=\"80\" height=\"40\" as=\"geometry\"/>\n                </mxCell>\n                <mxCell id=\"22\" value=\"New Commit\" style=\"ellipse;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;\" parent=\"1\" vertex=\"1\">\n                    <mxGeometry x=\"400\" y=\"400\" width=\"80\" height=\"40\" as=\"geometry\"/>\n                </mxCell>\n                <mxCell id=\"23\" value=\"New Commit\" style=\"ellipse;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;\" parent=\"1\" vertex=\"1\">\n                    <mxGeometry x=\"400\" y=\"480\" width=\"80\" height=\"40\" as=\"geometry\"/>\n                </mxCell>\n            </root>\n        </mxGraphModel>\n    </diagram>\n</mxfile>\n"
  },
  {
    "path": "Cargo.toml",
    "content": "[package]\nname = \"ccfddl\"\nversion = \"0.1.0\"\nedition = \"2024\"\n\n[dependencies]\nleptos = { version = \"0.8.8\", features = [\"csr\"] }\nleptos_meta = { version = \"0.8\" }\nleptos_router = { version = \"0.8\" }\nconsole_log = {version = \"1\", features = [\"color\"] }\nlog = { version = \"0.4\" }\nconsole_error_panic_hook = { version =  \"0.1\" }\nserde = { version = \"1.0.219\" }\nreqwest = {version = \"0.12.23\", features = [\"json\"] }\nchrono = { version = \"0.4\", features = [\"serde\"] }\nchrono-tz = { version = \"0.8\" }\nweb-sys = { version=\"0.3\", features = [\"Window\", \"Navigator\", \"Storage\"] }\nwasm-bindgen = { version = \"0.2\" }\nwasm-bindgen-futures = { version = \"0.4.50\" }\nthaw = { version = \"0.5.0-beta\", features = [\"csr\"] }\nicondata = { version = \"0.6.0\" }\nserde_yaml = { version = \"0.9.34\" }\nserde_json = { version =  \"1.0\" }\nurlencoding = { version = \"2.1.0\" }\n\n\n[profile.release]\nopt-level = 'z'\nlto = true\ncodegen-units = 1\npanic = \"abort\"\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2021 CCFDDL\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "# CCF-Deadlines\n\n> Helping researchers track worldwide conference ddls through collaboration.\n\n[![LICENSE](https://img.shields.io/github/license/ccfddl/ccf-deadlines)](https://github.com/ccfddl/ccf-deadlines/blob/main/LICENSE)\n[![Build Status](https://img.shields.io/github/actions/workflow/status/ccfddl/ccf-deadlines/.github/workflows/deploy.yml?branch=main)](https://github.com/ccfddl/ccf-deadlines/commits/main)\n[![Open PRs](https://img.shields.io/github/issues-pr/ccfddl/ccf-deadlines)](https://github.com/ccfddl/ccf-deadlines/pulls)\n\nEnglish | [简体中文](https://translate.google.com/translate?sl=auto&tl=zh&u=https://github.com/ccfddl/ccf-deadlines)\n\n<table>\n  <tr>\n    <td align=\"center\"><b><a href=\"https://ccfddl.github.io/\">🌐 Website Portal<br></a>Main Site</b></td>\n    <td align=\"center\"><b><a href=\"https://github.com/ccfddl/ccf-deadlines/tree/main/.readme_assets/applet_qrcode.jpg\">📱 Wechat Applet</a><br>Available Now</b></td>\n    <td align=\"center\"><b><a href=\"https://ccfddl.top/\">🌐 Tabular Portal</a><br>No Ladder Required</b></td>\n  </tr>\n  <tr>\n    <td align=\"center\"><img src=\".readme_assets/screenshot_website.png\" width=\"280px\"/></td>\n    <td align=\"center\"><img src=\".readme_assets/applet_qrcode.jpg\" width=\"240px\"/></td>\n    <td align=\"center\"><img src=\".readme_assets/screenshot_tabular.png\" width=\"280px\"/></td>\n  </tr>\n</table>\n\n**No More Finding and Time Conversion on Your Own!**\n\n### Extensions\n<table>\n  <tr>\n    <td align=\"center\"><b><a href=\"https://github.com/ccfddl/ccf-deadlines/tree/main/extensions/cli\">PyCli Tool</a><br></b></td>\n    <td align=\"center\"><b><a href=\"https://www.raycast.com/ViGeng/ccfddl?via=ViGeng\">Raycast Extension</a><br></b></td>\n    <td align=\"center\"><b><a href=\"https://github.com/superpung/swiftbar-ccfddl/\">SwiftBar Plugin</a><br></b></td>\n  </tr>\n  <tr>\n   <td align=\"center\"><img src=\".readme_assets/screenshot_pycli.png\" width=\"280px\"/></td>\n    <td align=\"center\"><img src=\".readme_assets/screenshot_raycast.png\" width=\"280px\"/></td>\n    <td align=\"center\"><img src=\"https://raw.githubusercontent.com/superpung/swiftbar-ccfddl/refs/heads/main/docs/preview.png\" width=\"280px\"/></td>\n  </tr>\n    <tr>\n    <td align=\"center\"><b><a href=\"https://github.com/ccfddl/ccf-deadlines/tree/main/extensions/ical\">iCal Subscription</a><br></b></td>\n    <td align=\"center\"><b><a href=\"https://github.com/ccfddl/ccf-deadlines/tree/main/extensions/chrome\">Chrome Extension</a><br></b></td>\n  </tr>\n  <tr>\n     <td align=\"center\"><img src=\".readme_assets/screenshot_iCal.jpg\" width=\"280px\"/></td>\n     <td align=\"center\"><img src=\".readme_assets/screenshot_ccf-ddl-tracker.png\" width=\"280px\"/></td>\n  </tr>\n</table>\n\n## Community Activity\n![Alt](https://repobeats.axiom.co/api/embed/98d0169b30fc63bfddcfbf2ac6d73656ef0f9d00.svg \"Repobeats analytics image\")\n\n## Add/Update a conference\n\nContributions are welcomed and greatly appreciated!\n\nTo add or update information:\n\n- Fork the repo\n- Add/Update the yml file of conference/conf_type/conf_name.yml\n- Send a [pull request](https://github.com/ccfddl/ccf-deadlines/pulls)\n\nTips: check [conferences recommended](https://www.ccf.org.cn/Academic_Evaluation/By_category/) or review [pdf](.readme_assets/ccf_recommended_2022.pdf)\n## Conference Entry File\nExample file: conference/DB/sigmod.yml\n\n```yaml\n- title: SIGMOD\n  description: ACM Conference on Management of Data\n  sub: DB\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: sigmod\n  confs:\n    - year: 2022\n      id: sigmod22\n      link: http://2022.sigmod.org/\n      timeline:\n        - deadline: '2021-07-02 17:00:00'\n          comment: 'first round'\n        - deadline: '2021-09-15 17:00:00'\n          comment: 'second round'\n      timezone: UTC-8\n      date: June 12-17, 2022\n      place: Philadelphia, PA, USA\n```\n\nDescription of the fields:\n<table>\n   <tr>\n      <th colspan=\"3\">Field name</th>\n      <th>Description</th>\n   </tr>\n   <tr>\n      <td colspan=\"3\"><code>title</code>*</td>\n      <td>Short conference name, without year, uppercase</td>\n   </tr>\n   <tr>\n      <td colspan=\"3\"><code>description</code>*</td>\n      <td>Description, or long name, with no session</td>\n   </tr>\n   <tr>\n      <td colspan=\"3\"><code>sub</code>*</td>\n      <td>The category that the conference is labeled by CCF. See the matching table below</td>\n   </tr>\n   <tr>\n      <td rowspan=\"3\"><code>rank</code>*</td>\n      <td colspan=\"2\"><code>ccf</code>*</td>\n      <td>The level that the conference is ranked by CCF, e.g., <code>A</code>, <code>B</code>, <code>C</code>, <code>N</code></td>\n   </tr>\n   <tr>\n   <td colspan=\"2\"><code>core</code></td>\n   <td>The level that the conference is ranked by CORE, e.g., <code>A*</code>, <code>A</code>, <code>B</code>, <code>C</code>, <code>N</code></td>\n   </tr>\n   <tr>\n   <td colspan=\"2\"><code>thcpl</code></td>\n   <td>The level that the conference is ranked by TH-CPL, e.g., <code>A</code>, <code>B</code>, <code>N</code></td>\n   </tr>\n   <tr>\n      <td colspan=\"3\"><code>dblp</code>*</td>\n      <td>The suffix in dblp url, e.g., <code>iccv</code> in https://dblp.org/db/conf/iccv</td>\n   </tr>\n   <tr>\n      <td rowspan=\"9\"><code>confs</code></td>\n      <td colspan=\"2\"><code>year</code>*</td>\n      <td>Year the conference is happening</td>\n   </tr>\n   <tr>\n      <td colspan=\"2\"><code>id</code>*</td>\n      <td>conference name & year, lowercase</td>\n   </tr>\n   <tr>\n      <td colspan=\"2\"><code>link</code>*</td>\n      <td>URL to the conference home page</td>\n   </tr>\n   <tr>\n      <td rowspan=\"3\"><code>timeline</code>*</td>\n      <td><code>abstract_deadline</code></td>\n      <td>Abstract deadline if applicable, optional</td>\n   </tr>\n   <tr>\n      <td><code>deadline</code>*</td>\n      <td>Deadline, in the format of <code>yyyy-mm-dd hh:mm:ss</code> or <code>TBD</code></td>\n   </tr>\n   <tr>\n      <td><code>comment</code></td>\n      <td>Some comments on the conference, optional</td>\n   </tr>\n   <tr>\n      <td colspan=\"2\"><code>timezone</code>*</td>\n      <td>Timezone of deadline, currently support <code>UTC-12</code> ~ <code>UTC+12</code> & <code>AoE</code></td>\n   </tr>\n   <tr>\n      <td colspan=\"2\"><code>date</code>*</td>\n      <td>When the main conference is happening, e.g., Mar 12-16, 2021</td>\n   </tr>\n   <tr>\n      <td colspan=\"2\"><code>place</code>*</td>\n      <td>Where the main conference is happening, e.g., <code>city, country</code></td>\n   </tr>\n</table>\n\nFields marked with asterisk (*) are required.\n\nThe matching table:\n\n| `sub` | Category name                                                     |\n| ----- | ----------------------------------------------------------------- |\n| `DS`  | Computer Architecture/Parallel Programming/Storage Technology     |\n| `NW`  | Network System                                                    |\n| `SC`  | Network and System Security                                       |\n| `SE`  | Software Engineering/Operating System/Programming Language Design |\n| `DB`  | Database/Data Mining/Information Retrieval                        |\n| `CT`  | Computing Theory                                                  |\n| `CG`  | Graphics                                                          |\n| `AI`  | Artificial Intelligence                                           |\n| `HI`  | Computer-Human Interaction                                        |\n| `MX`  | Interdiscipline/Mixture/Emerging                                  |\n\n## Contribution\n\nMaintained by [@ccfddl](https://github.com/ccfddl) collaboration.\n\n## License\n\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fccfddl%2Fccf-deadlines.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fccfddl%2Fccf-deadlines?ref=badge_large)\n"
  },
  {
    "path": "accept_rates/AI/aaai.yml",
    "content": "- title: AAAI\n  accept_rates:\n    - year: 2024\n      submitted: 9862\n      accepted: 2342\n      str: 23.7%(2342/9862 24')\n      rate: 0.237477185155141\n      source: https://github.com/lixin4ever/Conference-Acceptance-Rate\n"
  },
  {
    "path": "accept_rates/AI/acl.yml",
    "content": "- title: ACL\n  accept_rates:\n    - year: 2023\n      submitted: 3872\n      accepted: 910\n      str: 23.5%(910/3872 23')\n      rate: 0.235020661157025\n      source: https://github.com/lixin4ever/Conference-Acceptance-Rate\n    - year: 2024\n      submitted: 4407\n      accepted: 943\n      str: 21.4%(943/4407 24')\n      rate: 0.2139778\n      source: https://csconfstats.xoveexu.com/\n"
  },
  {
    "path": "accept_rates/AI/acml.yml",
    "content": "- title: ACML\n  accept_rates:\n    - year: 2024\n      submitted: 353\n      accepted: 92\n      str: 26.1%(92/353 24')\n      rate: 0.260623229\n      source: https://www.acml-conf.org/\n"
  },
  {
    "path": "accept_rates/AI/aistats.yml",
    "content": "- title: AISTATS\n  accept_rates:\n    - year: 2024\n      submitted: 1980\n      accepted: 546\n      str: 27.6%(546/1980 24')\n      rate: 0.275757575757576\n      source: https://github.com/lixin4ever/Conference-Acceptance-Rate\n"
  },
  {
    "path": "accept_rates/AI/coling.yml",
    "content": "- title: COLING\n  accept_rates:\n    - year: 2022\n      submitted: 1563\n      accepted: 522\n      str: 33.4%(522/1563 22')\n      rate: 0.333973128598848\n      source: https://github.com/lixin4ever/Conference-Acceptance-Rate\n"
  },
  {
    "path": "accept_rates/AI/colt.yml",
    "content": "- title: COLT\n  accept_rates:\n    - year: 2020\n      submitted: 388\n      accepted: 120\n      str: 30.9%(120/388 20')\n      rate: 0.309278350515464\n      source: https://github.com/lixin4ever/Conference-Acceptance-Rate\n    - year: 2024\n      submitted: 448\n      accepted: 160\n      str: 35.7%(160/448 24')\n      rate: 0.3571429\n      source: https://csconfstats.xoveexu.com/\n"
  },
  {
    "path": "accept_rates/AI/cvpr.yml",
    "content": "- title: CVPR\n  accept_rates:\n    - year: 2023\n      submitted: 9155\n      accepted: 2360\n      str: 25.8%(2360/9155 23')\n      rate: 0.257782632441289\n      source: https://github.com/emeryberger/csconferences\n    - year: 2024\n      submitted: 11532\n      accepted: 2719\n      str: 23.6%(2719/11532 24')\n      rate: 0.2357787\n      source: https://csconfstats.xoveexu.com/\n    - year: 2025\n      submitted: 13008\n      accepted: 2878\n      str: 22.1%(2878/13008 25')\n      rate: 0,2212484625\n      source: https://mp.weixin.qq.com/s?__biz=Mzg4OTEwNjMzMA==&mid=2247663029&idx=1&sn=f36b388a84d4319f4b47930b3750cc3c&chksm=cec06fc2f86f6c080876f53860d9992f7fe5a3571ad1ef06474397fb01e4a5151ec7a0559f91&mpshare=1&scene=1&srcid=0318MpQJ3yoMi2832NjrF0oX&sharer_shareinfo=5f66e1303d9fb0f8fed93ef4736ebcdd&sharer_shareinfo_first=5f66e1303d9fb0f8fed93ef4736ebcdd#rd\n    - year: 2026\n      submitted: 16092\n      accepted: 4090\n      str: 25.4%(4090/16092 26')\n      rate: 0.2541636\n      source: https://www.ithome.com/0/922/931.htm\n"
  },
  {
    "path": "accept_rates/AI/ecai.yml",
    "content": "- title: ECAI\n  accept_rates:\n    - year: 2023\n      submitted: 1631\n      accepted: 391\n      str: 24.0%(391/1631 23')\n      rate: 0.23973022685469\n      source: https://github.com/tranhungnghiep/AI-Conference-Info\n    - year: 2024\n      submitted: 2344\n      accepted: 547\n      str: 23.3%(547/2344 24')\n      rate: 0.233361774744027303\n      source: https://github.com/tranhungnghiep/AI-Conference-Info\n"
  },
  {
    "path": "accept_rates/AI/eccv.yml",
    "content": "- title: ECCV\n  accept_rates:\n    - year: 2022\n      submitted: 5804\n      accepted: 1645\n      str: 28.3%(1645/5804 22')\n      rate: 0.28342522398346\n      source: https://github.com/emeryberger/csconferences\n    - year: 2024\n      submitted: 8585\n      accepted: 2395\n      str: 27.9%(2395/8585 24')\n      rate: 0.278975\n      source: https://csconfstats.xoveexu.com/\n"
  },
  {
    "path": "accept_rates/AI/emnlp.yml",
    "content": "- title: EMNLP\n  accept_rates:\n    - year: 2022\n      submitted: 3242\n      accepted: 715\n      str: 22.1%(715/3242 22')\n      rate: 0.220542874768661\n      source: https://github.com/lixin4ever/Conference-Acceptance-Rate\n    - year: 2023\n      submitted: 4909\n      accepted: 1047\n      str: 21.3%(1047/4909 23')\n      rate: 0.2132817\n      source: https://csconfstats.xoveexu.com/\n"
  },
  {
    "path": "accept_rates/AI/iccv.yml",
    "content": "- title: ICCV\n  accept_rates:\n    - year: 2023\n      submitted: 8260\n      accepted: 2160\n      str: 26.2%(2160/8260 23')\n      rate: 0.261501210653753\n      source: https://github.com/emeryberger/csconferences\n"
  },
  {
    "path": "accept_rates/AI/iclr.yml",
    "content": "- title: ICLR\n  accept_rates:\n    - year: 2024\n      submitted: 7304\n      accepted: 2250\n      str: 30.8%(2250/7304 24')\n      rate: 0.308050383351588\n      source: https://github.com/lixin4ever/Conference-Acceptance-Rate\n    - year: 2025\n      submitted: 11672\n      accepted: 3704\n      str: 31.73%(3704/11672 25')\n      rate: 0.31734064427\n      source: https://papercopilot.com/statistics/iclr-statistics/\n    - year: 2026\n      submitted: 19814\n      accepted: 5343\n      str: 26.97%(5343/19814 26')\n      rate: 0.2696578177\n      source: https://papercopilot.com/statistics/iclr-statistics/\n"
  },
  {
    "path": "accept_rates/AI/icml.yml",
    "content": "- title: ICML\n  accept_rates:\n    - year: 2023\n      submitted: 6538\n      accepted: 1827\n      str: 27.9%(1827/6538 23')\n      rate: 0.279443254817987\n      source: https://github.com/lixin4ever/Conference-Acceptance-Rate\n    - year: 2024\n      submitted: 9473\n      accepted: 2609\n      str: 27.5%(2609/9473 24')\n      rate: 0.2754143\n      source: https://csconfstats.xoveexu.com/\n"
  },
  {
    "path": "accept_rates/AI/iconip.yml",
    "content": "- title: ICONIP\n  accept_rates:\n    - year: 2024\n      submitted: 1301\n      accepted: 790\n      str: 60.72%(790/1301 24')\n      rate: 0.6072252113758647\n      source: https://link.springer.com/book/9789819670079+https://link.springer.com/book/9789819666058\n"
  },
  {
    "path": "accept_rates/AI/icra.yml",
    "content": "- title: ICRA\n  accept_rates:\n    - year: 2022\n      submitted: 3313\n      accepted: 1428\n      str: 43.1%(1428/3313 22')\n      rate: 0.431029278599457\n      source: https://github.com/emeryberger/csconferences\n"
  },
  {
    "path": "accept_rates/AI/ijcai.yml",
    "content": "- title: IJCAI\n  accept_rates:\n    - year: 2022\n      submitted: 4537\n      accepted: 679\n      str: 15.0%(679/4537 22')\n      rate: 0.149658364558078\n      source: https://github.com/emeryberger/csconferences\n    - year: 2024\n      submitted: 5651\n      accepted: 791\n      str: 14.0%(791/5651 24')\n      rate: 0.1399752\n      source: https://csconfstats.xoveexu.com/\n"
  },
  {
    "path": "accept_rates/AI/ijcnn.yml",
    "content": "- title: IJCNN\n  accept_rates:\n    - year: 2023\n      submitted: 1888\n      accepted: 1034\n      str: 54.8%(1034/1888 23')\n      rate: 0.547669491525424\n      source: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=10191349\n    - year: 2024\n      submitted: 1701\n      accepted: 3272\n      str: 52.0%(1701/3272 24')\n      rate: 0.519865525672371638\n      source: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=10650734\n    - year: 2025\n      submitted: 5526\n      accepted: 2152\n      str: 38.9%(2152/5526 25')\n      rate: 0.389431777053927\n      source: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=11229321\n"
  },
  {
    "path": "accept_rates/AI/iros.yml",
    "content": "- title: IROS\n  accept_rates:\n    - year: 2022\n      submitted: 3579\n      accepted: 1716\n      str: 47.9%(1716/3579 22')\n      rate: 0.479463537300922\n      source: https://github.com/lixin4ever/Conference-Acceptance-Rate\n"
  },
  {
    "path": "accept_rates/AI/naacl.yml",
    "content": "- title: NAACL\n  accept_rates:\n    - year: 2024\n      submitted: 2434\n      accepted: 565\n      str: 23.2%(565/2434 24')\n      rate: 0.2321282\n      source: https://csconfstats.xoveexu.com/\n"
  },
  {
    "path": "accept_rates/AI/nips.yml",
    "content": "- title: NeurIPS\n  accept_rates:\n    - year: 2023\n      submitted: 12343\n      accepted: 3218\n      str: 26.1%(3218/12343 23')\n      rate: 0.260714575062789\n      source: https://github.com/lixin4ever/Conference-Acceptance-Rate\n    - year: 2024\n      submitted: 15671\n      accepted: 4043\n      str: 25.8%(4037/15671 24')\n      rate: 0.2576095\n      source: https://media.neurips.cc/Conferences/NeurIPS2024/NeurIPS2024-Fact_Sheet.pdf\n"
  },
  {
    "path": "accept_rates/AI/uai.yml",
    "content": "- title: UAI\n  accept_rates:\n    - year: 2023\n      submitted: 778\n      accepted: 243\n      str: 31.2%(243/778 23')\n      rate: 0.312339331619537\n      source: https://github.com/lixin4ever/Conference-Acceptance-Rate\n    - year: 2024\n      submitted: 715\n      accepted: 200\n      str: 28.0%(200/715 24')\n      rate: 0.2797203\n      source: https://csconfstats.xoveexu.com/\n"
  },
  {
    "path": "accept_rates/CG/icassp.yml",
    "content": "- title: ICASSP\n  accept_rates:\n    - year: 2024\n      submitted: 5796\n      accepted: 2812\n      str: 48.5%(2812/5796 24')\n      rate: 0.485162180814355\n      source: https://github.com/lixin4ever/Conference-Acceptance-Rate\n"
  },
  {
    "path": "accept_rates/CG/icip.yml",
    "content": "- title: ICIP\n  accept_rates:\n    - year: 2023\n      submitted: 1647\n      accepted: 732\n      str: 44.4%(732/1647 23')\n      rate: 0.444444444444444\n      source: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=10222530\n"
  },
  {
    "path": "accept_rates/CG/icme.yml",
    "content": "- title: ICME\n  accept_rates:\n    - year: 2023\n      submitted: 1415\n      accepted: 488\n      str: 34.5%(488/1415 23')\n      rate: 0.344876325088339\n      source: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=10219647\n    - year: 2024\n      submitted: 2049\n      accepted: 666\n      str: 32.5%(666/2049 24')\n      rate: 0.3250366\n      source: https://csconfstats.xoveexu.com/\n"
  },
  {
    "path": "accept_rates/CG/icmr.yml",
    "content": "- title: ICMR\n  accept_rates:\n    - year: 2024\n      submitted: 281\n      accepted: 117\n      str: 41.6%(117/281 24')\n      rate: 0.4163701\n      source: https://csconfstats.xoveexu.com/\n"
  },
  {
    "path": "accept_rates/CG/interspeech.yml",
    "content": "- title: InterSpeech\n  accept_rates:\n    - year: 2021\n      submitted: 1990\n      accepted: 963\n      str: 48.4%(963/1990 21')\n      rate: 0.48391959798995\n      source: https://github.com/emeryberger/csconferences\n    - year: 2024\n      submitted: 2138\n      accepted: 1029\n      str: 48.1%(1029/2138 24')\n      rate: 0.4812909\n      source: https://csconfstats.xoveexu.com/\n"
  },
  {
    "path": "accept_rates/CG/mm.yml",
    "content": "- title: ACM MM\n  accept_rates:\n    - year: 2023\n      submitted: 3669\n      accepted: 902\n      str: 24.6%(902/3669 23')\n      rate: 0.245843554101935\n      source: https://dl.acm.org/action/showFmPdf?doi=10.1145%2F3581783\n"
  },
  {
    "path": "accept_rates/CG/sig.yml",
    "content": "- title: ACM SIGGRAPH\n  accept_rates:\n    - year: 2022\n      submitted: 610\n      accepted: 133\n      str: 21.8%(133/610 22')\n      rate: 0.218032786885246\n      source: https://github.com/emeryberger/csconferences\n    - year: 2023\n      submitted: 611\n      accepted: 212\n      str: 34.7%(212/611 23', 126 journal papers, 86 conference papers)\n      rate: 0.3469721767594108\n      source: https://dl.acm.org/action/showFmPdf?doi=10.1145%2F3588432\n    - year: 2024\n      submitted: 844\n      accepted: 252\n      str: 29.9%(252/844 24')\n      rate: 0.2985781990521327\n      source: https://dl.acm.org/action/showFmPdf?doi=10.1145%2F3641519\n"
  },
  {
    "path": "accept_rates/CG/siga.yml",
    "content": "- title: ACM SIGGRAPH ASIA\n  accept_rates:\n    - year: 2024\n      submitted: 899\n      accepted: 265\n      str: 29.5%(265/899 24')\n      rate: 0.2947719688542825\n      source: https://dl.acm.org/action/showFmPdf?doi=10.1145%2F3680528\n"
  },
  {
    "path": "accept_rates/CT/cav.yml",
    "content": "- title: CAV\n  accept_rates:\n    - year: 2022\n      submitted: 209\n      accepted: 40\n      str: 19.1%(40/209 22')\n      rate: 0.191387559808612\n      source: https://github.com/emeryberger/csconferences\n"
  },
  {
    "path": "accept_rates/CT/lics.yml",
    "content": "- title: LICS\n  accept_rates:\n    - year: 2022\n      submitted: 181\n      accepted: 63\n      str: 34.8%(63/181 22')\n      rate: 0.348066298342541\n      source: https://github.com/emeryberger/csconferences\n"
  },
  {
    "path": "accept_rates/CT/stoc.yml",
    "content": "- title: STOC\n  accept_rates:\n    - year: 2023\n      submitted: 480\n      accepted: 155\n      str: 32.3%(155/480 23')\n      rate: 0.322916666666667\n      source: https://github.com/emeryberger/csconferences\n"
  },
  {
    "path": "accept_rates/DB/cikm.yml",
    "content": "- title: CIKM\n  accept_rates:\n    - year: 2023\n      submitted: 1472\n      accepted: 354\n      str: 24.0%(354/1472 23')\n      rate: 0.240489130434783\n      source: https://dl.acm.org/action/showFmPdf?doi=10.1145%2F3583780\n"
  },
  {
    "path": "accept_rates/DB/ecir.yml",
    "content": "- title: ECIR\n  accept_rates:\n    - year: 2024\n      submitted: 230\n      accepted: 57\n      str: 24.8%(57/230 24')\n      rate: 0.2478261\n      source: https://csconfstats.xoveexu.com/\n"
  },
  {
    "path": "accept_rates/DB/eusipco.yml",
    "content": "- title: EUSIPCO\n  accept_rates:\n    - year: 2017\n      submitted: 730\n      accepted: 461\n      str: 63.2%(461/730 17')\n      rate: 0.6315068493150685\n      source: https://www.eurasip.org/Proceedings/Eusipco/Eusipco2017/welcome1.html\n    - year: 2018\n      submitted: 709\n      accepted: 409\n      str: 57.7%(409/709 18')\n      rate: 0.5768688293370945\n      source: https://www.eurasip.org/Proceedings/Eusipco/Eusipco2018/welcome_TPC.html\n    - year: 2020\n      submitted: 829\n      accepted: 499\n      str: 60.2%(499/829 20')\n      rate: 0.6019300361881785\n      source: https://new.eurasip.org/Proceedings/Eusipco/Eusipco2020/HTML/welcometpc.html\n"
  },
  {
    "path": "accept_rates/DB/icde.yml",
    "content": "- title: ICDE\n  accept_rates:\n    - year: 2022\n      submitted: 780\n      accepted: 211\n      str: 27.1%(211/780 22')\n      rate: 0.27051282051282\n      source: https://github.com/emeryberger/csconferences\n    - year: 2023\n      submitted: 748\n      accepted: 229\n      str: 30.1%(229/748 23')\n      rate: 0.3061497326203209\n      source: https://ieeexplore.ieee.org/document/10184584\n    - year: 2024\n      submitted: 1481\n      accepted: 376\n      str: 25.4%(376/1481 24')\n      rate: 0.2538825\n      source: https://csconfstats.xoveexu.com/\n"
  },
  {
    "path": "accept_rates/DB/icdm.yml",
    "content": "- title: ICDM\n  accept_rates:\n    - year: 2021\n      submitted: 990\n      accepted: 98\n      str: 9.9%(98/990 21')\n      rate: 0.098989898989899\n      source: https://github.com/lixin4ever/Conference-Acceptance-Rate\n    - year: 2023\n      submitted: 926\n      accepted: 200\n      str: 21.6%(200/926 23')\n      rate: 0.2159827\n      source: https://csconfstats.xoveexu.com/\n"
  },
  {
    "path": "accept_rates/DB/recsys.yml",
    "content": "- title: RecSys\n  accept_rates:\n    - year: 2020\n      submitted: 218\n      accepted: 39\n      str: 17.9%(39/218 20')\n      rate: 0.178899082568807\n      source: https://github.com/lixin4ever/Conference-Acceptance-Rate\n"
  },
  {
    "path": "accept_rates/DB/sdm.yml",
    "content": "- title: SDM\n  accept_rates:\n    - year: 2024\n      submitted: 335\n      accepted: 98\n      str: 29.3%(98/335 24')\n      rate: 0.2925373\n      source: https://csconfstats.xoveexu.com/\n"
  },
  {
    "path": "accept_rates/DB/sigir.yml",
    "content": "- title: SIGIR\n  accept_rates:\n    - year: 2023\n      submitted: 822\n      accepted: 165\n      str: 20.1%(165/822 23')\n      rate: 0.200729927007299\n      source: https://github.com/emeryberger/csconferences\n    - year: 2024\n      submitted: 791\n      accepted: 160\n      str: 20.2%(160/791 24')\n      rate: 0.202275600505689\n      source: https://dl.acm.org/action/showFmPdf?doi=10.1145%2F3626772\n"
  },
  {
    "path": "accept_rates/DB/sigkdd.yml",
    "content": "- title: SIGKDD\n  accept_rates:\n    - year: 2023\n      submitted: 1416\n      accepted: 313\n      str: 22.1%(313/1416 23')\n      rate: 0.221045197740113\n      source: https://github.com/lixin4ever/Conference-Acceptance-Rate\n    - year: 2024\n      submitted: 2046\n      accepted: 411\n      str: 20.1%(411/2046 24')\n      rate: 0.2008797653958944\n      source: https://dl.acm.org/action/showFmPdf?doi=10.1145%2F3637528\n"
  },
  {
    "path": "accept_rates/DB/sigmod.yml",
    "content": "- title: SIGMOD\n  accept_rates:\n    - year: 2023\n      submitted: 660\n      accepted: 186\n      str: 28.2%(186/660 23')\n      rate: 0.281818181818182\n      source: https://github.com/emeryberger/csconferences\n    - year: 2024\n      submitted: 768\n      accepted: 213\n      str: 27.7%(213/768 24')\n      rate: 0.27734375\n      source: https://dl.acm.org/doi/10.1145/3654917\n"
  },
  {
    "path": "accept_rates/DB/vldb.yml",
    "content": "- title: VLDB\n  accept_rates:\n    - year: 2023\n      submitted: 1074\n      accepted: 266\n      str: 24.8%(266/1074 23')\n      rate: 0.247672253258845\n      source: https://github.com/emeryberger/csconferences\n    - year: 2024\n      submitted: 1437\n      accepted: 280\n      str: 19.4%(280/1437 24')\n      rate: 0.1949\n      source: https://vldb.org/pvldb/volumes/17/\n"
  },
  {
    "path": "accept_rates/DB/wsdm.yml",
    "content": "- title: WSDM\n  accept_rates:\n    - year: 2023\n      submitted: 690\n      accepted: 123\n      str: 17.8%(123/690 23')\n      rate: 0.178260869565217\n      source: https://github.com/emeryberger/csconferences\n    - year: 2024\n      submitted: 615\n      accepted: 109\n      str: 17.7%(109/615 24')\n      rate: 0.1772358\n      source: https://csconfstats.xoveexu.com/\n"
  },
  {
    "path": "accept_rates/DS/asplos.yml",
    "content": "- title: ASPLOS\n  accept_rates:\n    - year: 2023\n      submitted: 598\n      accepted: 151\n      str: 25.3%(151/598 23')\n      rate: 0.252508361204013\n      source: https://github.com/emeryberger/csconferences\n"
  },
  {
    "path": "accept_rates/DS/atc.yml",
    "content": "- title: USENIX ATC\n  accept_rates:\n    - year: 2021\n      submitted: 341\n      accepted: 64\n      str: 18.8%(64/341 21')\n      rate: 0.187683284457478\n      source: https://github.com/emeryberger/csconferences\n"
  },
  {
    "path": "accept_rates/DS/eurosys.yml",
    "content": "- title: EuroSys\n  accept_rates:\n    - year: 2022\n      submitted: 161\n      accepted: 45\n      str: 28.0%(45/161 22')\n      rate: 0.279503105590062\n      source: https://github.com/emeryberger/csconferences\n"
  },
  {
    "path": "accept_rates/DS/fast.yml",
    "content": "- title: FAST\n  accept_rates:\n    - year: 2022\n      submitted: 130\n      accepted: 28\n      str: 21.5%(28/130 22')\n      rate: 0.215384615384615\n      source: https://github.com/emeryberger/csconferences\n"
  },
  {
    "path": "accept_rates/DS/hpca.yml",
    "content": "- title: HPCA\n  accept_rates:\n    - year: 2023\n      submitted: 360\n      accepted: 91\n      str: 25.3%(91/360 23')\n      rate: 0.252777777777778\n      source: https://github.com/emeryberger/csconferences\n"
  },
  {
    "path": "accept_rates/DS/isca.yml",
    "content": "- title: ISCA\n  accept_rates:\n    - year: 2023\n      submitted: 372\n      accepted: 79\n      str: 21.2%(79/372 23')\n      rate: 0.212365591397849\n      source: https://github.com/emeryberger/csconferences\n"
  },
  {
    "path": "accept_rates/DS/micro.yml",
    "content": "- title: MICRO\n  accept_rates:\n    - year: 2022\n      submitted: 348\n      accepted: 83\n      str: 23.9%(83/348 22')\n      rate: 0.238505747126437\n      source: https://github.com/emeryberger/csconferences\n    - year: 2023\n      submitted: 434\n      accepted: 101\n      str: 23.3%(101/434 23')\n      rate: 0.232718894009217\n      source: https://github.com/emeryberger/csconferences\n    - year: 2024\n      submitted: 485\n      accepted: 113\n      str: 23.3%(113/485 24')\n      rate: 0.232989690721649\n      source: https://github.com/emeryberger/csconferences\n"
  },
  {
    "path": "accept_rates/DS/ppopp.yml",
    "content": "- title: PPoPP\n  accept_rates:\n    - year: 2023\n      submitted: 131\n      accepted: 31\n      str: 23.7%(31/131 23')\n      rate: 0.236641221374046\n      source: https://github.com/emeryberger/csconferences\n"
  },
  {
    "path": "accept_rates/DS/rtas.yml",
    "content": "- title: RTAS\n  accept_rates:\n    - year: 2022\n      submitted: 91\n      accepted: 22\n      str: 24.2%(22/91 22')\n      rate: 0.241758241758242\n      source: https://github.com/emeryberger/csconferences\n"
  },
  {
    "path": "accept_rates/DS/sigmetrics.yml",
    "content": "- title: SIGMETRICS\n  accept_rates:\n    - year: 2024\n      submitted: 336\n      accepted: 52\n      str: 15.5%(52/336 24')\n      rate: 0.154762\n      source: https://dl.acm.org/action/showFmPdf?doi=10.1145%2F3652963#:~:text=ACM%20SIGMETRICS%2FIFIP%20Performance%202024%20received%20336%20submissions%20across,52%20papers%20for%20an%20acceptance%20rate%20of%2015%25.\n    - year: 2025\n      submitted: 382\n      accepted: 66\n      str: 17.3%(66/382 25')\n      rate: 0.172775\n      source: https://dl.acm.org/action/showFmPdf?doi=10.1145%2F3726854#:~:text=This%20year%2C%20ACM%20SIGMETRICS%20received%20382%20submissions%20across,66%20papers%20for%20an%20acceptance%20rate%20of%2017.3%25.\n"
  },
  {
    "path": "accept_rates/HI/chi.yml",
    "content": "- title: CHI\n  accept_rates:\n    - year: 2022\n      submitted: 2579\n      accepted: 637\n      str: 24.7%(637/2579 22')\n      rate: 0.246994959286545\n      source: https://github.com/emeryberger/csconferences\n    - year: 2023\n      submitted: 3180\n      accepted: 879\n      str: 27.6%(879/3180 23')\n      rate: 0.2764151\n      source: https://csconfstats.xoveexu.com/\n"
  },
  {
    "path": "accept_rates/HI/cscw.yml",
    "content": "- title: CSCW\n  accept_rates:\n    - year: 2018\n      submitted: 1107\n      accepted: 289\n      str: 26.1%(289/1107 18')\n      rate: 0.2610659\n      source: https://csconfstats.xoveexu.com/\n"
  },
  {
    "path": "accept_rates/HI/cscwd",
    "content": "- title: CSCWD\n  accept_rates:\n  - year: 2023\n    submitted: 380\n    accepted: 321\n    str: 84.5%(321/380 23')\n    rate: 0.844736842\n    source: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=10152776\n"
  },
  {
    "path": "accept_rates/HI/ubicomp.yml",
    "content": "- title: UbiComp\n  accept_rates:\n    - year: 2016\n      submitted: 389\n      accepted: 101\n      str: 26.0%(101/389 16')\n      rate: 0.2596401\n      source: https://csconfstats.xoveexu.com/\n"
  },
  {
    "path": "accept_rates/HI/uist.yml",
    "content": "- title: UIST\n  accept_rates:\n    - year: 2022\n      submitted: 372\n      accepted: 98\n      str: 26.3%(98/372 22')\n      rate: 0.263440860215054\n      source: https://github.com/emeryberger/csconferences\n    - year: 2023\n      submitted: 483\n      accepted: 121\n      str: 25.1%(121/483 23')\n      rate: 0.2505176\n      source: https://csconfstats.xoveexu.com/\n    - year: 2024\n      submitted: 608\n      accepted: 146\n      str: 24.01%(146/608 24')\n      rate: 0.2401315789473684\n      source: https://dl.acm.org/action/showFmPdf?doi=10.1145%2F3654777\n"
  },
  {
    "path": "accept_rates/MX/recomb.yml",
    "content": "- title: RECOMB\n  accept_rates:\n    - year: 2022\n      submitted: 188\n      accepted: 40\n      str: 21.3%(40/188 22')\n      rate: 0.2127659574468085\n      source: https://www.lamsade.dauphine.fr/~sikora/ratio/confs.php\n"
  },
  {
    "path": "accept_rates/MX/rtss.yml",
    "content": "- title: RTSS\n  accept_rates:\n    - year: 2022\n      submitted: 128\n      accepted: 37\n      str: 28.9%(37/128 22')\n      rate: 0.2890625\n      source: https://github.com/emeryberger/csconferences\n"
  },
  {
    "path": "accept_rates/MX/www.yml",
    "content": "- title: WWW\n  accept_rates:\n    - year: 2023\n      submitted: 1900\n      accepted: 365\n      str: 19.2%(365/1900 23')\n      rate: 0.192105263157895\n      source: https://github.com/emeryberger/csconferences\n    - year: 2024\n      submitted: 2008\n      accepted: 405\n      str: 20.2%(405/2008 24')\n      rate: 0.2016932\n      source: https://csconfstats.xoveexu.com/\n"
  },
  {
    "path": "accept_rates/NW/globecom.yml",
    "content": "- title: GLOBECOM\n  accept_rates:\n    - year: 2024\n      submitted: 2295\n      accepted: 911\n      str: 39.7%(911/2295 24')\n      rate: 0.3969498910675381\n      source: https://ieeexplore.ieee.org/abstract/document/10901143\n"
  },
  {
    "path": "accept_rates/NW/imc.yml",
    "content": "- title: IMC\n  accept_rates:\n    - year: 2022\n      submitted: 143\n      accepted: 38\n      str: 26.6%(38/143 22')\n      rate: 0.265734265734266\n      source: https://github.com/emeryberger/csconferences\n    - year: 2024\n      submitted: 253\n      accepted: 55\n      str: 21.7%(55/253 24')\n      rate: 0.2173913043478261\n      source: https://dl.acm.org/action/showFmPdf?doi=10.1145%2F3646547\n"
  },
  {
    "path": "accept_rates/NW/infocom.yml",
    "content": "- title: INFOCOM\n  accept_rates:\n    - year: 2024\n      submitted: 1307\n      accepted: 256\n      str: 19.6%(256/1307 24')\n      rate: 0.1958684\n      source: https://csconfstats.xoveexu.com/\n"
  },
  {
    "path": "accept_rates/NW/mmsys.yml",
    "content": "- title: MMSys\n  accept_rates:\n    - year: 2025\n      submitted: 79\n      accepted: 19\n      str: 24.1%(19/79 25')\n      rate: 0.240506\n      source: https://dl.acm.org/doi/proceedings/10.1145/3712676#acceptance-rates\n"
  },
  {
    "path": "accept_rates/NW/mobicom.yml",
    "content": "- title: MobiCom\n  accept_rates:\n    - year: 2019\n      submitted: 290\n      accepted: 55\n      str: 19.0%(55/290 19')\n      rate: 0.189655172413793\n      source: https://github.com/emeryberger/csconferences\n    - year: 2024\n      submitted: 288\n      accepted: 55\n      str: 19.1%(55/288 24')\n      rate: 0.1909722\n      source: https://csconfstats.xoveexu.com/\n"
  },
  {
    "path": "accept_rates/NW/mobihoc.yml",
    "content": "- title: MobiHoc\n  accept_rates:\n    - year: 2024\n      submitted: 155\n      accepted: 38\n      str: 24.5%(38/155 24')\n      rate: 0.245161\n      source: https://dlnext.acm.org/doi/proceedings/10.1145/3641512\n    - year: 2025\n      submitted: 169\n      accepted: 39\n      str: 23.1%(39/169 25')\n      rate: 0.230769\n      source: https://dlnext.acm.org/doi/proceedings/10.1145/3704413\n"
  },
  {
    "path": "accept_rates/NW/mobisys.yml",
    "content": "- title: MobiSys\n  accept_rates:\n    - year: 2024\n      submitted: 263\n      accepted: 43\n      str: 16.3%(43/263 24')\n      rate: 0.1634981\n      source: https://csconfstats.xoveexu.com/\n    - year: 2025\n      submitted: 233\n      accepted: 42\n      str: 18.0%(42/233 25')\n      rate: 0.1802575\n      source: https://dl.acm.org/doi/proceedings/10.1145/3711875\n"
  },
  {
    "path": "accept_rates/NW/nsdi.yml",
    "content": "- title: NSDI\n  accept_rates:\n    - year: 2022\n      submitted: 402\n      accepted: 78\n      str: 19.4%(78/402 22')\n      rate: 0.194029850746269\n      source: https://github.com/emeryberger/csconferences\n    - year: 2024\n      submitted: 601\n      accepted: 112\n      str: 18.6%(112/601 24')\n      rate: 0.1863561\n      source: https://csconfstats.xoveexu.com/\n"
  },
  {
    "path": "accept_rates/NW/sensys.yml",
    "content": "- title: SenSys\n  accept_rates:\n    - year: 2025\n      submitted: 235\n      accepted: 45\n      str: 19.1%(45/235 25')\n      rate: 0.19148936\n      source: https://dl.acm.org/doi/proceedings/10.1145/3715014\n"
  },
  {
    "path": "accept_rates/NW/sigcomm.yml",
    "content": "- title: SIGCOMM\n  accept_rates:\n    - year: 2022\n      submitted: 279\n      accepted: 55\n      str: 19.7%(55/279 22')\n      rate: 0.197132616487455\n      source: https://github.com/emeryberger/csconferences\n    - year: 2024\n      submitted: 366\n      accepted: 62\n      str: 16.9%(62/366 24')\n      rate: 0.1693989\n      source: https://csconfstats.xoveexu.com/\n"
  },
  {
    "path": "accept_rates/SC/acsac.yml",
    "content": "- title: ACSAC\n  accept_rates:\n    - year: 2025\n      submitted: 446\n      accepted: 84\n      str: 18.8%(84/446 25')\n      rate: 0.18834081\n      source: https://papers.submit.acsac.org/\n"
  },
  {
    "path": "accept_rates/SC/ccs.yml",
    "content": "- title: CCS\n  accept_rates:\n    - year: 2021\n      submitted: 880\n      accepted: 196\n      str: 22.3%(196/880 21')\n      rate: 0.222727272727273\n      source: https://github.com/emeryberger/csconferences\n"
  },
  {
    "path": "accept_rates/SC/crypto.yml",
    "content": "- title: CRYPTO\n  accept_rates:\n    - year: 2022\n      submitted: 455\n      accepted: 99\n      str: 21.8%(99/455 22')\n      rate: 0.217582417582418\n      source: https://github.com/emeryberger/csconferences\n"
  },
  {
    "path": "accept_rates/SC/esorics.yml",
    "content": "- title: ESORICS\n  accept_rates:\n    - year: 2024\n      submitted: 535\n      accepted: 86\n      str: 16.1%(86/535 24')\n      rate: 0.1607476635514019\n      source: https://esorics2024.org/accepted_papers-en\n"
  },
  {
    "path": "accept_rates/SC/eurocrypt.yml",
    "content": "- title: EUROCRYPT\n  accept_rates:\n    - year: 2022\n      submitted: 372\n      accepted: 85\n      str: 22.8%(85/372 22')\n      rate: 0.228494623655914\n      source: https://github.com/emeryberger/csconferences\n"
  },
  {
    "path": "accept_rates/SC/fse.yml",
    "content": "- title: FSE\n  accept_rates:\n    - year: 2021\n      submitted: 407\n      accepted: 97\n      str: 23.8%(97/407 21')\n      rate: 0.238329238329238\n      source: https://github.com/emeryberger/csconferences\n"
  },
  {
    "path": "accept_rates/SC/ih&mmsec.yml",
    "content": "- title: IH&MMSec\n  accept_rates:\n    - year: 2025\n      submitted: 40\n      accepted: 20\n      str: 50%(20/40 25')\n      rate: 0.5\n      source: https://dl.acm.org/action/showFmPdf?doi=10.1145%2F3733102\n"
  },
  {
    "path": "accept_rates/SC/ndss.yml",
    "content": "- title: NDSS\n  accept_rates:\n    - year: 2022\n      submitted: 513\n      accepted: 83\n      str: 16.2%(83/513 22')\n      rate: 0.161793372319688\n      source: https://github.com/emeryberger/csconferences\n"
  },
  {
    "path": "accept_rates/SC/uss.yml",
    "content": "- title: USENIX Security\n  accept_rates:\n    - year: 2022\n      submitted: 1414\n      accepted: 256\n      str: 18.1%(256/1414 22')\n      rate: 0.181046676096181\n      source: https://github.com/emeryberger/csconferences\n"
  },
  {
    "path": "accept_rates/SC/wisec.yml",
    "content": "- title: WiSec\n  accept_rates:\n    - year: 2024\n      submitted: 144\n      accepted: 29\n      srt: 20.1(29/144 24')\n      rate: 0.20138889\n      source: https://dl.acm.org/action/showFmPdf?doi=10.1145%2F3643833\n    - year: 2025\n      submitted: 123\n      accepted: 28\n      str: 22.8(28/123 25')\n      rate: 0.22764228\n      source: https://dl.acm.org/action/showFmPdf?doi=10.1145%2F3734477\n"
  },
  {
    "path": "accept_rates/SE/ase.yml",
    "content": "- title: ASE\n  accept_rates:\n    - year: 2022\n      submitted: 531\n      accepted: 116\n      str: 21.8%(116/531 22')\n      rate: 0.218455743879473\n      source: https://github.com/emeryberger/csconferences\n"
  },
  {
    "path": "accept_rates/SE/ecoop.yml",
    "content": "- title: ECOOP\n  accept_rates:\n    - year: 2023\n      submitted: 97\n      accepted: 44\n      str: 45.4%(44/97 23')\n      rate: 0.45360824742268\n      source: https://github.com/emeryberger/csconferences\n"
  },
  {
    "path": "accept_rates/SE/icfp.yml",
    "content": "- title: ICFP\n  accept_rates:\n    - year: 2023\n      submitted: 90\n      accepted: 33\n      str: 36.7%(33/90 23')\n      rate: 0.366666666666667\n      source: https://github.com/emeryberger/csconferences\n"
  },
  {
    "path": "accept_rates/SE/icse.yml",
    "content": "- title: ICSE\n  accept_rates:\n    - year: 2024\n      submitted: 1051\n      accepted: 234\n      str: 22.3%(234/1051 24')\n      rate: 0.2226451\n      source: https://twitter.com/ICSEconf/status/1738152138608406742\n"
  },
  {
    "path": "accept_rates/SE/issta.yml",
    "content": "- title: ISSTA\n  accept_rates:\n    - year: 2022\n      submitted: 250\n      accepted: 61\n      str: 24.4%(61/250 22')\n      rate: 0.244\n      source: https://github.com/emeryberger/csconferences\n"
  },
  {
    "path": "accept_rates/SE/oopsla.yml",
    "content": "- title: OOPSLA\n  accept_rates:\n    - year: 2023\n      submitted: 304\n      accepted: 110\n      str: 36.2%(110/304 23')\n      rate: 0.361842105263158\n      source: https://github.com/emeryberger/csconferences\n"
  },
  {
    "path": "accept_rates/SE/osdi.yml",
    "content": "- title: OSDI\n  accept_rates:\n    - year: 2023\n      submitted: 255\n      accepted: 50\n      str: 19.6%(50/255 23')\n      rate: 0.196078431372549\n      source: https://github.com/emeryberger/csconferences\n"
  },
  {
    "path": "accept_rates/SE/pldi.yml",
    "content": "- title: PLDI\n  accept_rates:\n    - year: 2023\n      submitted: 281\n      accepted: 83\n      str: 29.5%(83/281 23')\n      rate: 0.295373665480427\n      source: https://github.com/emeryberger/csconferences\n"
  },
  {
    "path": "accept_rates/SE/popl.yml",
    "content": "- title: POPL\n  accept_rates:\n    - year: 2023\n      submitted: 275\n      accepted: 74\n      str: 26.9%(74/275 23')\n      rate: 0.269090909090909\n      source: https://github.com/emeryberger/csconferences\n"
  },
  {
    "path": "accept_rates/SE/sosp.yml",
    "content": "- title: SOSP\n  accept_rates:\n    - year: 2021\n      submitted: 348\n      accepted: 54\n      str: 15.5%(54/348 21')\n      rate: 0.155172413793103\n      source: https://github.com/emeryberger/csconferences\n    - year: 2025\n      submitted: 368\n      accepted: 65\n      str: 17.7%(65/368 25')\n      rate: 0.1766304348\n"
  },
  {
    "path": "conference/AI/aaai.yml",
    "content": "- title: AAAI\n  description: AAAI Conference on Artificial Intelligence\n  sub: AI\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: aaai\n  confs:\n    - year: 2022\n      id: aaai22\n      link: https://aaai.org/Conferences/AAAI-22/\n      timeline:\n        - abstract_deadline: '2021-08-30 23:59:59'\n          deadline: '2021-09-08 23:59:59'\n      timezone: UTC-12\n      date: February 22 - March 1, 2022\n      place: Vancouver, British Columbia, Canada\n    - year: 2023\n      id: aaai23\n      link: https://www.aaai.org/Conferences/AAAI-23/\n      timeline:\n        - abstract_deadline: '2022-08-08 23:59:59'\n          deadline: '2022-08-15 23:59:59'\n      timezone: UTC-12\n      date: February 7 - February 14, 2023\n      place: Washington, DC, USA\n    - year: 2024\n      id: aaai24\n      link: https://www.aaai.org/aaai-conference/\n      timeline:\n        - abstract_deadline: '2023-08-08 23:59:59'\n          deadline: '2023-08-15 23:59:59'\n      timezone: UTC-12\n      date: February 20 - February 27, 2024\n      place: Vancouver, British Columbia, Canada\n    - year: 2025\n      id: aaai25\n      link: https://aaai.org/conference/aaai/aaai-25/\n      timeline:\n        - abstract_deadline: '2024-08-07 23:59:59'\n          deadline: '2024-08-15 23:59:59'\n      timezone: UTC-12\n      date: February 25 - March 4, 2025\n      place: PHILADELPHIA, PENNSYLVANIA, USA\n    - year: 2026\n      id: aaai26\n      link: https://aaai.org/conference/aaai/aaai-26/\n      timeline:\n        - abstract_deadline: '2025-07-25 23:59:59'\n          deadline: '2025-08-01 23:59:59'\n      timezone: UTC-12\n      date: January 20 - 27, 2026\n      place: Singapore EXPO\n    - year: 2027\n      id: aaai27\n      link: https://aaai.org/conference/aaai/aaai-27/\n      timeline:\n        - abstract_deadline: 'TBD'\n          deadline: 'TBD'\n      timezone: UTC-12\n      date: February 16-23, 2027\n      place: Montréal, Québec, Canada\n"
  },
  {
    "path": "conference/AI/aamas.yml",
    "content": "- title: AAMAS\n  description: International Conference on Autonomous Agents and Multiagent Systems\n  sub: AI\n  rank:\n    ccf: B\n    core: A*\n    thcpl: B\n  dblp: ifaamas\n  confs:\n    - year: 2023\n      id: aamas23\n      link: https://aamas2023.soton.ac.uk/\n      timeline:\n        - abstract_deadline: '2022-10-21 00:00:00'\n          deadline: '2022-10-28 00:00:00'\n      timezone: UTC-8\n      date: May 29 - June 2, 2023\n      place: London, UK\n    - year: 2024\n      id: aamas24\n      link: https://www.aamas2024-conference.auckland.ac.nz/\n      timeline:\n        - abstract_deadline: '2023-10-02 23:59:59'\n          deadline: '2023-10-09 23:59:59'\n      timezone: UTC-12\n      date: May 6-10, 2024\n      place: Auckland, New Zealand\n    - year: 2025\n      id: aamas25\n      link: https://aamas2025.org/\n      timeline:\n        - abstract_deadline: '2024-10-09 23:59:59'\n          deadline: '2024-10-16 23:59:59'\n      timezone: UTC-12\n      date: May 19-23, 2025\n      place: Detroit, Michigan, USA\n    - year: 2026\n      id: aamas26\n      link: https://cyprusconferences.org/aamas2026\n      timeline:\n        - abstract_deadline: '2025-10-01 23:59:59'\n          deadline: '2025-10-08 23:59:59'\n      timezone: UTC-12\n      date: May 27-29, 2026\n      place: Paphos, Cyprus\n"
  },
  {
    "path": "conference/AI/accv.yml",
    "content": "- title: ACCV\n  description: Asian Conference on Computer Vision\n  sub: AI\n  rank:\n    ccf: C\n    core: B\n    thcpl: N\n  dblp: accv\n  confs:\n    - year: 2024\n      id: accv24\n      link: https://accv2024.org/\n      timeline:\n        - deadline: '2024-07-02 23:59:59'\n      timezone: UTC-12\n      date: December 8-12, 2024\n      place: Hanoi, Vietnam\n    - year: 2026\n      id: accv26\n      link: https://accv2026.org/\n      timeline:\n        - deadline: '2026-07-05 23:59:59'\n      timezone: UTC-12\n      date: December 14-18, 2026\n      place: Osaka, Japan\n"
  },
  {
    "path": "conference/AI/acl.yml",
    "content": "- title: ACL\n  description: Annual Meeting of the Association for Computational Linguistics\n  sub: AI\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: acl\n  confs:\n    - year: 2022\n      id: acl22\n      link: https://www.2022.aclweb.org/\n      timeline:\n        - deadline: '2021-09-15 23:59:59'\n        - deadline: '2021-10-15 23:59:59'\n        - deadline: '2021-11-15 23:59:59'\n          comment: final submission deadline\n      timezone: UTC-12\n      date: May 22-27, 2022\n      place: Dublin, Ireland\n    - year: 2023\n      id: acl23\n      link: https://2023.aclweb.org/\n      timeline:\n        - abstract_deadline: '2023-01-13 23:59:59'\n          deadline: '2023-01-20 23:59:59'\n      timezone: UTC-12\n      date: July 9-14, 2023\n      place: Toronto, Canada\n    - year: 2024\n      id: acl24\n      link: https://2024.aclweb.org/\n      timeline:\n        - deadline: '2024-02-15 23:59:59'\n      timezone: UTC-12\n      date: August 11-16, 2024\n      place: Bangkok, Thailand\n    - year: 2025\n      id: acl25\n      link: https://2025.aclweb.org/\n      timeline:\n        - deadline: '2025-02-15 23:59:59'\n      timezone: UTC-12\n      date: July 27 - August 1, 2025\n      place: Vienna, Austria\n    - year: 2026\n      id: acl26\n      link: https://2026.aclweb.org/\n      timeline:\n        - deadline: '2026-01-05 23:59:59'\n      timezone: UTC-12\n      date: July 2 - 7, 2026\n      place: San Diego, California, United States\n"
  },
  {
    "path": "conference/AI/acml.yml",
    "content": "- title: ACML\n  description: Asian Conference on Machine Learning\n  sub: AI\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: acml\n  confs:\n    - year: 2021\n      id: acml21\n      link: http://www.acml-conf.org/2021/\n      timeline:\n        - deadline: '2021-06-25 23:59:59'\n      timezone: UTC-7\n      date: November 17-19, 2021\n      place: Virtual\n    - year: 2023\n      id: acml23\n      link: https://www.acml-conf.org/2023/index.html\n      timeline:\n        - deadline: '2023-06-23 23:59:59'\n      timezone: UTC-12\n      date: November 11-14, 2023\n      place: İstanbul, Turkey\n    - year: 2024\n      id: acml24\n      link: https://www.acml-conf.org/2024/index.html\n      timeline:\n        - deadline: '2024-07-03 23:59:59'\n      timezone: UTC-12\n      date: December 5-7, 2024\n      place: Hanoi, Vietnam\n    - year: 2025\n      id: acml25\n      link: https://www.acml-conf.org/2025/\n      timeline:\n        - deadline: '2025-05-30 23:59:59'\n          comment: 'Journal Track'\n        - deadline: '2025-06-26 23:59:59'\n          comment: 'Conference Track'\n      timezone: AoE\n      date: December 9-12, 2025\n      place: Taipei, Taiwan\n"
  },
  {
    "path": "conference/AI/aistats.yml",
    "content": "- title: AISTATS\n  description: International Conference on Artificial Intelligence and Statistics\n  sub: AI\n  rank:\n    ccf: C\n    core: A\n    thcpl: B\n  dblp: aistats\n  confs:\n    - year: 2022\n      id: aistats22\n      link: https://aistats.org/aistats2022/\n      timeline:\n        - deadline: '2021-10-15 11:59:00'\n      timezone: UTC+0\n      date: March 30 - April 1, 2022\n      place: Valencia, Spain\n    - year: 2024\n      id: aistats24\n      link: https://aistats.org/aistats2024/\n      timeline:\n        - deadline: '2023-10-16 23:59:59'\n      timezone: UTC-12\n      date: May 2-4, 2024\n      place: Valencia, Spain\n    - year: 2025\n      id: aistats25\n      link: https://aistats.org/aistats2025\n      timeline:\n        - abstract_deadline: '2024-10-03 23:59:59'\n          deadline: '2024-10-10 23:59:59'\n      timezone: UTC-12\n      date: May 3-5, 2025\n      place: Mai Khao, Thailand\n    - year: 2026\n      id: aistats26\n      link: https://virtual.aistats.org/Conferences/2026\n      timeline:\n        - abstract_deadline: '2025-09-25 23:59:59'\n          deadline: '2025-10-02 23:59:59'\n      timezone: UTC-12\n      date: May 2-5, 2026\n      place: Morocco\n"
  },
  {
    "path": "conference/AI/alt.yml",
    "content": "- title: ALT\n  description: International Conference on Algorithmic Learning Theory\n  sub: AI\n  rank:\n    ccf: C\n    core: B\n    thcpl: B\n  dblp: alt\n  confs:\n    - year: 2024\n      id: alt2024\n      link: http://algorithmiclearningtheory.org/alt2024/\n      timeline:\n        - abstract_deadline: '2023-09-26 23:59:59'\n          deadline: '2023-09-26 23:59:59'\n      timezone: UTC+8\n      date: February 25-28, 2024\n      place: San Diego, California\n    - year: 2025\n      id: alt2025\n      link: https://algorithmiclearningtheory.org/alt2025/\n      timeline:\n        - deadline: '2024-10-01 09:59:59'\n      timezone: UTC+0\n      date: February 24-27, 2025\n      place: Milan, Italy\n    - year: 2026\n      id: alt2026\n      link: https://algorithmiclearningtheory.org/alt2026/\n      timeline:\n        - deadline: '2025-10-02 09:59:59'\n      timezone: UTC+0\n      date: February 23-26, 2026\n      place: Fields Institute, Toronto, Canada\n"
  },
  {
    "path": "conference/AI/bmvc.yml",
    "content": "- title: BMVC\n  description: British Machine Vision Conference\n  sub: AI\n  rank:\n    ccf: C\n    core: A\n    thcpl: B\n  dblp: bmvc\n  confs:\n    - year: 2021\n      id: bmvc21\n      link: https://britishmachinevisionassociation.github.io/bmvc\n      timeline:\n        - deadline: '2021-06-25 23:59:59'\n      timezone: UTC-8\n      date: November 22-25, 2021\n      place: Virtual\n    - year: 2023\n      id: bmvc23\n      link: https://www.bmvc2023.org/\n      timeline:\n        - deadline: '2023-05-12 23:59:59'\n      timezone: UTC\n      date: November 20-24, 2023\n      place: Aberdeen, UK\n    - year: 2024\n      id: bmvc24\n      link: https://bmvc2024.org/\n      timeline:\n        - abstract_deadline: '2024-04-27 07:59:59'\n          deadline: '2024-05-11 07:59:59'\n      timezone: UTC+8\n      date: November 25-28, 2024\n      place: Glasgow, UK\n    - year: 2025\n      id: bmvc25\n      link: https://bmvc2025.bmva.org/\n      timeline:\n        - abstract_deadline: '2025-05-13 23:59:59'\n          deadline: '2025-05-16 23:59:59'\n      timezone: UTC+0\n      date: November 24-27, 2025\n      place: Sheffield, UK\n    - year: 2026\n      id: bmvc26\n      link: https://bmvc2026.bmva.org/\n      timeline:\n        - abstract_deadline: '2026-05-22 23:59:59'\n          deadline: '2026-05-29 23:59:59'\n      timezone: UTC+0\n      date: November 23-26, 2026\n      place: Lancaster, UK\n"
  },
  {
    "path": "conference/AI/cec.yml",
    "content": "- title: IEEE CEC\n  description: IEEE Congress on Evolutionary Computation\n  sub: AI\n  rank:\n    ccf: C\n    core: B\n    thcpl: N\n  dblp: cec\n  confs:\n    - year: 2025\n      id: cec2025\n      link: https://www.cec2025.org/\n      timeline:\n        - deadline: '2025-01-15 23:59:59'\n      timezone: UTC-12\n      date: June 8-12, 2025\n      place: Hangzhou, China\n    - year: 2026\n      id: cec2026\n      link: https://attend.ieee.org/wcci-2026/ieee-cec-2025/\n      timeline:\n        - deadline: '2026-01-31 23:59:59'\n      timezone: UTC-12\n      date: June 22-26, 2026\n      place: Maastricht Exhibition & Congress Centre (MECC), The Netherlands\n"
  },
  {
    "path": "conference/AI/cicai.yml",
    "content": "- title: CICAI\n  description: CAAI International Conference on Artificial Intelligence\n  sub: AI\n  rank:\n    ccf: N\n    core: N\n    thcpl: N\n  dblp: cicai\n  confs:\n    - year: 2023\n      id: cicai23\n      link: https://cicai.caai.cn/\n      timeline:\n        - deadline: '2023-06-30 23:59:59'\n      timezone: UTC+8\n      date: July 22-23, 2023\n      place: Fuzhou, China\n"
  },
  {
    "path": "conference/AI/coling.yml",
    "content": "- title: COLING\n  description: INTERNATIONNAL CONFERENCE ON COMPUTATIONAL LINGUISTICS\n  sub: AI\n  rank:\n    ccf: B\n    core: B\n    thcpl: B\n  dblp: coling\n  confs:\n    - year: 2022\n      id: coling22\n      link: https://coling2022.org/\n      timeline:\n        - deadline: '2022-05-17 23:59:00'\n          comment: Papers Due\n      timezone: AoE\n      date: June 12-17, 2022\n      place: Gyeongju, Republic of Korea\n    - year: 2024\n      id: coling24\n      link: https://lrec-coling-2024.lrec-conf.org/\n      timeline:\n        - deadline: '2023-10-21 23:59:59'\n          comment: Long, short and position papers due\n      timezone: UTC-12\n      date: May 20 - May 25, 2024\n      place: Torino, Italy\n    - year: 2025\n      id: coling25\n      link: https://coling2025.org/\n      timeline:\n        - deadline: '2024-09-16 23:59:59'\n          comment: First Call for Main Conference Papers\n      timezone: UTC-12\n      date: Jan 19 - Jan 24, 2025\n      place: Abu Dhabi, UAE\n"
  },
  {
    "path": "conference/AI/colm.yml",
    "content": "- title: COLM\n  description: Conference on Language Modeling\n  sub: AI\n  rank:\n    ccf: N\n    core: N\n    thcpl: N\n  dblp: colm\n  confs:\n    - year: 2024\n      id: colm24\n      link: https://colmweb.org/cfp.html\n      timeline:\n        - abstract_deadline: '2024-03-22 23:59:59'\n          deadline: '2024-03-29 23:59:59'\n      timezone: AoE\n      date: October 7-9, 2024\n      place: Philadelphia, Pennsylvania, United States\n    - year: 2025\n      id: colm25\n      link: https://colmweb.org/cfp.html\n      timeline:\n        - abstract_deadline: '2025-03-22 23:59:59'\n          deadline: '2025-03-28 23:59:59'\n      timezone: AoE\n      date: October 7-9, 2025\n      place: Palais des Congrès Montreal, Canada\n    - year: 2026\n      id: colm26\n      link: https://colmweb.org\n      timeline:\n        - abstract_deadline: '2026-03-26 23:59:59'\n          deadline: '2026-03-31 23:59:59'\n      timezone: AoE\n      date: October 6-9, 2026\n      place: Hilton Union Square, San Francisco, USA\n"
  },
  {
    "path": "conference/AI/colt.yml",
    "content": "- title: COLT\n  description: Annual Conference on Learning Theory\n  sub: AI\n  rank:\n    ccf: B\n    core: A*\n    thcpl: A\n  dblp: colt\n  confs:\n    - year: 2022\n      id: colt22\n      link: https://learningtheory.org/colt2022/index.html\n      timeline:\n        - deadline: '2022-02-09 15:59:59'\n      timezone: UTC-8\n      date: July 2-5, 2022\n      place: London, UK\n    - year: 2024\n      id: colt24\n      link: https://www.learningtheory.org/colt2024/\n      timeline:\n        - deadline: '2024-02-09 15:59:59'\n      timezone: UTC-5\n      date: June 30 - July 3, 2024\n      place: Edmonton, Canada\n    - year: 2025\n      id: colt25\n      link: https://learningtheory.org/colt2025/\n      timeline:\n        - deadline: '2025-02-06 16:59:59'\n      timezone: UTC-5\n      date: June 30 - July 4, 2025\n      place: Lyon, France\n    - year: 2026\n      id: colt26\n      link: https://learningtheory.org/colt2026/\n      timeline:\n        - deadline: '2026-02-04 16:59:59'\n      timezone: AoE\n      date: June 29 - July 3, 2026\n      place: San Diego, California\n"
  },
  {
    "path": "conference/AI/conll.yml",
    "content": "- title: CoNLL\n  description: Conference on Computational Natural Language Learning\n  sub: AI\n  rank:\n    ccf: C\n    core: B\n    thcpl: N\n  dblp: conll\n  confs:\n    - year: 2025\n      id: conll25\n      link: https://www.conll.org/\n      timeline:\n        - deadline: '2025-03-14 23:59:59'\n      timezone: UTC-12\n      date: July 31 - August 1, 2025\n      place: Vienna, Austria\n    - year: 2026\n      id: conll26\n      link: https://www.conll.org/\n      timeline:\n        - deadline: '2026-02-19 23:59:59'\n      timezone: UTC-12\n      date: July 3 - 4, 2026\n      place: San Diego, California, United States\n"
  },
  {
    "path": "conference/AI/corl.yml",
    "content": "- title: CoRL\n  description: The Conference on Robot Learning\n  sub: AI\n  rank:\n    ccf: N\n    core: N\n    thcpl: N\n  dblp: corl\n  confs:\n    - year: 2024\n      id: corl24\n      link: https://2024.corl.org/\n      timeline:\n        - deadline: '2024-06-06 23:59:59'\n      timezone: AoE\n      date: November 6-9, 2024\n      place: Munich, Germany\n    - year: 2025\n      id: corl25\n      link: https://www.corl.org/\n      timeline:\n        - deadline: '2025-04-30 23:59:59'\n      timezone: AoE\n      date: September 27-30, 2025\n      place: Seoul, Korea\n    - year: 2026\n      id: corl26\n      link: https://www.corl.org/\n      timeline:\n        - abstract_deadline: '2026-05-25 23:59:59'\n          deadline: '2026-05-28 23:59:59'\n      timezone: AoE\n      date: November 10-12, 2026\n      place: Austin, Texas, USA\n"
  },
  {
    "path": "conference/AI/cpal.yml",
    "content": "- title: CPAL\n  description: The Conference on Parsimony and Learning\n  sub: AI\n  rank:\n    ccf: N\n    core: N\n    thcpl: N\n  dblp: cpal\n  confs:\n    - year: 2025\n      id: cpal25\n      link: https://cpal.cc/\n      timeline:\n        - deadline: '2024-11-25 23:59:59'\n      timezone: AoE\n      date: March 24-27, 2025\n      place: California, USA\n    - year: 2026\n      id: cpal26\n      link: https://cpal.cc/\n      timeline:\n        - deadline: '2025-12-05 23:59:59'\n      timezone: AoE\n      date: March 23-27, 2026\n      place: Tübingen, Germany\n"
  },
  {
    "path": "conference/AI/cvpr.yml",
    "content": "- title: CVPR\n  description: IEEE/CVF Conference on Computer Vision and Pattern Recognition\n  sub: AI\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: cvpr\n  confs:\n    - year: 2022\n      id: cvpr22\n      link: http://cvpr2022.thecvf.com/\n      timeline:\n        - abstract_deadline: '2021-11-09 23:59:00'\n          deadline: '2021-11-16 23:59:00'\n      timezone: UTC-8\n      date: June 19 - June 24, 2022\n      place: New Orleans, Louisiana\n    - year: 2023\n      id: cvpr23\n      link: http://cvpr2023.thecvf.com/\n      timeline:\n        - deadline: '2022-11-11 23:59:59'\n      timezone: UTC-8\n      date: June 17-23, 2023\n      place: Vancouver, Canada\n    - year: 2024\n      id: cvpr24\n      link: https://cvpr.thecvf.com/Conferences/2024\n      timeline:\n        - deadline: '2023-11-17 23:59:59'\n      timezone: UTC-8\n      date: June 17-21, 2024\n      place: Seattle, USA\n    - year: 2025\n      id: cvpr25\n      link: https://cvpr.thecvf.com/Conferences/2025/CallForPapers\n      timeline:\n        - abstract_deadline: '2024-11-07 23:59:00'\n          deadline: '2024-11-14 23:59:00'\n      timezone: UTC-8\n      date: June 10-17, 2025\n      place: Nashville, Tennessee, USA\n    - year: 2026\n      id: cvpr26\n      link: https://cvpr.thecvf.com/Conferences/2026\n      timeline:\n        - abstract_deadline: '2025-11-06 23:59:00'\n          deadline: '2025-11-13 23:59:00'\n      timezone: UTC-12\n      date: June 3-7, 2026\n      place: Denver, Colorado, United States\n"
  },
  {
    "path": "conference/AI/dai.yml",
    "content": "- title: DAI\n  description: International Conference on Distributed Artificial Intelligence\n  sub: AI\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: dai2\n  confs:\n    - year: 2025\n      id: dai2025\n      link: https://www.adai.ai/dai/2025/index.html\n      timeline:\n        - deadline: '2025-08-21 23:59:59'\n      timezone: UTC-12\n      date: November 21-24, 2025\n      place: London, United Kingdom\n"
  },
  {
    "path": "conference/AI/eacl.yml",
    "content": "- title: EACL\n  description: The Annual Conference of the European Chapter of the Association for Computational Linguistics\n  sub: AI\n  rank:\n    ccf: N\n    core: A\n    thcpl: N\n  dblp: eacl\n  confs:\n    - year: 2026\n      id: eacl26\n      link: https://2026.eacl.org/\n      timeline:\n        - deadline: '2025-10-06 23:59:59'\n      timezone: AoE\n      date: March 24-29, 2026\n      place: Rabat, Morocco\n"
  },
  {
    "path": "conference/AI/ecai.yml",
    "content": "- title: ECAI\n  description: European Conference on Artificial Intelligence\n  sub: AI\n  rank:\n    ccf: B\n    core: A\n    thcpl: N\n  dblp: ecai\n  confs:\n    - year: 2023\n      id: ecai23\n      link: https://ecai2023.eu/\n      timeline:\n        - abstract_deadline: '2023-05-02 23:59:59'\n          deadline: '2023-05-08 23:59:59'\n      timezone: UTC-12\n      date: October 2-5, 2023\n      place: Kraków, Poland\n    - year: 2024\n      id: ecai24\n      link: https://www.ecai2024.eu/\n      timeline:\n        - abstract_deadline: '2024-04-19 23:59:59'\n          deadline: '2024-04-25 23:59:59'\n      timezone: UTC-12\n      date: October 19-24, 2024\n      place: Santiago de Compostela\n    - year: 2025\n      id: ecai25\n      link: https://ecai2025.org/deadlines/\n      timeline:\n        - abstract_deadline: '2025-04-29 23:59:59'\n          deadline: '2025-05-06 23:59:59'\n      timezone: UTC-12\n      date: October 25-30, 2025\n      place: Bologna, ITALY\n"
  },
  {
    "path": "conference/AI/eccv.yml",
    "content": "- title: ECCV\n  description: European Conference on Computer Vision\n  sub: AI\n  rank:\n    ccf: B\n    core: A*\n    thcpl: A\n  dblp: eccv\n  confs:\n    - year: 2022\n      id: eccv22\n      link: https://eccv2022.ecva.net/\n      timeline:\n        # - abstract_deadline: '2021-11-09 23:59:00'\n        - deadline: '2022-03-07 11:59:00'\n      timezone: UTC-8\n      date: October 24 - October 28, 2022\n      place: Tel-Aviv, Israel\n    - year: 2024\n      id: eccv24\n      link: https://eccv2024.ecva.net/\n      timeline:\n        - abstract_deadline: '2024-02-29 13:00:00'\n          deadline: '2024-03-07 13:00:00'\n      timezone: UTC-8\n      date: September 29 - October 4, 2024\n      place: MiCo Milano, Italy\n    - year: 2026\n      id: eccv26\n      link: https://eccv.ecva.net/\n      timeline:\n        - abstract_deadline: '2026-02-26 14:00:00'\n          deadline: '2026-03-05 14:00:00'\n      timezone: UTC-8\n      date: September 8 - 13, 2026\n      place: Malmö, Sweden\n"
  },
  {
    "path": "conference/AI/emnlp.yml",
    "content": "- title: EMNLP\n  description: The annual Conference on Empirical Methods in Natural Language Processing\n  sub: AI\n  rank:\n    ccf: B\n    core: A*\n    thcpl: A\n  dblp: emnlp\n  confs:\n    - year: 2022\n      id: emnlp22\n      link: https://2022.emnlp.org\n      timeline:\n        - abstract_deadline: '2022-06-17 23:59:59'\n          deadline: '2022-06-24 23:59:59'\n      timezone: UTC-12\n      date: December 7 - 11, 2022\n      place: Abu Dhabi\n    - year: 2023\n      id: emnlp23\n      link: https://2023.emnlp.org\n      timeline:\n        - abstract_deadline: '2023-06-16 23:59:59'\n          deadline: '2023-06-23 23:59:59'\n      timezone: UTC-12\n      date: December 6 - 10, 2023\n      place: Singapore\n    - year: 2024\n      id: emnlp24\n      link: https://2024.emnlp.org\n      timeline:\n        - deadline: '2024-06-15 23:59:59'\n      timezone: UTC-12\n      date: November 12 - 16, 2024\n      place: Miami, Florida, USA\n    - year: 2025\n      id: emnlp25\n      link: https://2025.emnlp.org/\n      timeline:\n        - deadline: '2025-05-19 23:59:59'\n      timezone: UTC-12\n      date: November 5 - 9, 2025\n      place: Suzhou, China\n    - year: 2026\n      id: emnlp26\n      link: https://2026.emnlp.org/\n      timeline:\n        - deadline: '2026-05-25 23:59:59'\n      timezone: UTC-12\n      date: October 24 - 29, 2026\n      place: Budapest, Hungary\n"
  },
  {
    "path": "conference/AI/esann.yml",
    "content": "- title: ESANN\n  description: European Symposium on Artificial Neural Networks, Computational Intelligence and Machine Learning\n  sub: AI\n  rank:\n    ccf: N\n    core: B\n    thcpl: N\n  dblp: esann\n  confs:\n    - year: 2025\n      id: esann25\n      link: https://www.esann.org/\n      timeline:\n        - abstract_deadline: '2024-11-20 00:00:00'\n          deadline: '2024-11-20 00:00:00'\n      timezone: UTC-8\n      date: April 23 - April 25, 2025\n      place: Bruges, Belgium\n    - year: 2026\n      id: esann26\n      link: https://www.esann.org/\n      timeline:\n        - deadline: '2025-11-19 23:59:59'\n      timezone: UTC-8\n      date: April 22 - 24, 2026\n      place: Bruges, Belgium and Online\n"
  },
  {
    "path": "conference/AI/fg.yml",
    "content": "- title: FG\n  description: International Conference on Automatic Face and Gesture Recognition\n  sub: AI\n  rank:\n    ccf: C\n    core: B\n    thcpl: B\n  dblp: fg\n  confs:\n    - year: 2025\n      id: fg25\n      link: https://fg2025.ieee-biometrics.org/\n      timeline:\n        - deadline: '2024-09-30 23:59:59'\n          comment: 'Round 1'\n        - deadline: '2025-01-31 23:59:59'\n          comment: 'Round 2'\n      timezone: UTC-8\n      date: May 26-30, 2025\n      place: Clearwater, USA\n    - year: 2026\n      id: fg26\n      link: https://fg2026.ieee-biometrics.org/\n      timeline:\n        - abstract_deadline: '2025-09-25 23:59:59'\n          deadline: '2025-10-02 23:59:59'\n          comment: 'Round 1'\n        - abstract_deadline: '2026-01-09 23:59:59'\n          deadline: '2026-01-15 23:59:59'\n          comment: 'Round 2'\n      timezone: UTC-8\n      date: May 25-29, 2026\n      place: Kyoto, Japan\n"
  },
  {
    "path": "conference/AI/gecco.yml",
    "content": "- title: GECCO\n  description: Genetic and Evolutionary Computation Conference\n  sub: AI\n  rank:\n    ccf: C\n    core: A\n    thcpl: B\n  dblp: gecco\n  confs:\n    - year: 2025\n      id: gecco25\n      link: https://gecco-2025.sigevo.org/HomePage\n      timeline:\n        - abstract_deadline: '2025-01-22 23:59:00'\n          deadline: '2025-01-29 23:59:00'\n          comment: 'Full papers (traditional category) '\n        - deadline: '2025-01-29 23:59:00'\n          comment: 'Poster-only papers '\n      timezone: AoE\n      date: July 14-18, 2025\n      place: Málaga, Spain (hybrid)\n    - year: 2026\n      id: gecco26\n      link: https://gecco-2026.sigevo.org/HomePage\n      timeline:\n        - abstract_deadline: '2026-01-19 23:59:00'\n          deadline: '2026-01-26 23:59:00'\n          comment: 'Full papers (traditional category) '\n        - deadline: '2026-01-26 23:59:00'\n          comment: 'Poster-only papers '\n      timezone: AoE\n      date: July 13-17, 2026\n      place: San José, Costa Rica (hybrid)\n"
  },
  {
    "path": "conference/AI/icann.yml",
    "content": "- title: ICANN\n  description: International Conference on Artificial Neural Networks\n  sub: AI\n  rank:\n    ccf: C\n    core: C\n    thcpl: N\n  dblp: icann\n  confs:\n    - year: 2023\n      id: icann2023\n      link: https://e-nns.org/icann2023/\n      timeline:\n        - abstract_deadline: '2023-04-09 23:59:59'\n          deadline: '2023-04-09 23:59:59'\n      timezone: UTC-12\n      date: Sept 26-29, 2023\n      place: Crete, Greece\n    - year: 2024\n      id: icann2024\n      link: https://e-nns.org/icann2024/\n      timeline:\n        - deadline: '2024-03-25 23:59:59'\n      timezone: AoE\n      date: Sept 17-20, 2024\n      place: Lugano-Viganello, Switzerland\n    - year: 2025\n      id: icann2025\n      link: https://e-nns.org/icann2025/\n      timeline:\n        - deadline: '2025-03-29 23:59:59'\n      timezone: AoE\n      date: Sept 9-12, 2025\n      place: Kaunas, Lithuania\n    - year: 2026\n      id: icann2026\n      link: https://e-nns.org/icann2026/\n      timeline:\n        - deadline: '2026-03-30 23:59:59'\n      timezone: AoE\n      date: Sept 14-17, 2026\n      place: Conference center of the School of Psychology, University of Padua, Italy\n"
  },
  {
    "path": "conference/AI/icaps.yml",
    "content": "- title: ICAPS\n  description: International Conference on Automated Planning and Scheduling\n  sub: AI\n  rank:\n    ccf: B\n    core: A*\n    thcpl: B\n  dblp: icaps\n  confs:\n    - year: 2025\n      id: icaps25\n      link: https://icaps25.icaps-conference.org/\n      timeline:\n        - abstract_deadline: '2024-10-25 23:59:59'\n          deadline: '2024-11-01 23:59:59'\n      timezone: UTC-12\n      date: November 9-14, 2025\n      place: Melbourne, Victoria, Australia\n    - year: 2026\n      id: icaps26\n      link: https://icaps26.icaps-conference.org/\n      timeline:\n        - abstract_deadline: '2025-12-02 23:59:59'\n          deadline: '2025-12-08 23:59:59'\n      timezone: UTC-12\n      date: June 27 - July 2, 2026\n      place: Dublin, Ireland\n"
  },
  {
    "path": "conference/AI/iccbr.yml",
    "content": "- title: ICCBR\n  description: International Conference on Case-Based Reasoning\n  sub: AI\n  rank:\n    ccf: B\n    core: C\n    thcpl: N\n  dblp: iccbr\n  confs:\n    - year: 2024\n      id: iccbr2024\n      link: https://www.iccbr2024.org/\n      timeline:\n        - deadline: '2024-02-26 00:00:00'\n          comment: Early Submission\n        - deadline: '2024-04-02 00:00:00'\n          comment: Late Submission\n      timezone: UTC-6\n      date: June 1-4, 2024\n      place: Merida, Yucatan, Mexico\n    - year: 2026\n      id: iccbr2026\n      link: https://2026.iccbr.org/\n      timeline:\n        - deadline: '2026-03-20 23:59:59'\n      timezone: AoE\n      date: August 13-16, 2026\n      place: Bremen, Germany\n"
  },
  {
    "path": "conference/AI/iccv.yml",
    "content": "- title: ICCV\n  description: IEEE International Conference on Computer Vision\n  sub: AI\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: iccv\n  confs:\n    - year: 2021\n      id: iccv21\n      link: http://iccv2021.thecvf.com/home/\n      timeline:\n        - deadline: '2021-03-17 23:59:59'\n      timezone: UTC-7\n      date: October 10-17, 2021\n      place: Montreal\n    - year: 2023\n      id: iccv23\n      link: http://iccv2023.thecvf.com/home/\n      timeline:\n        - deadline: '2023-03-08 23:59:59'\n      timezone: UTC+0\n      date: October 2-6, 2023\n      place: Paris\n    - year: 2025\n      id: iccv25\n      link: https://iccv.thecvf.com/Conferences/2025\n      timeline:\n        - abstract_deadline: '2025-03-04 09:59:59'\n          deadline: '2025-03-08 09:59:59'\n      timezone: UTC+0\n      date: October 19-25, 2025\n      place: Honolulu, Hawaii\n"
  },
  {
    "path": "conference/AI/icdar.yml",
    "content": "- title: ICDAR\n  description: International Conference on Document Analysis and Recognition\n  sub: AI\n  rank:\n    ccf: C\n    core: A\n    thcpl: B\n  dblp: icdar\n  confs:\n    - year: 2025\n      id: icdar2025\n      link: https://www.icdar2025.com/home\n      timeline:\n        - abstract_deadline: '2025-02-28 23:59:59'\n          deadline: '2025-03-07 23:59:59'\n      timezone: UTC+0\n      date: September 17-21, 2025\n      place: Wuhan, China\n    - year: 2026\n      id: icdar2026\n      link: https://icdar2026.org/\n      timeline:\n        - abstract_deadline: '2026-02-13 23:59:59'\n          deadline: '2026-02-27 23:59:59'\n      timezone: UTC+0\n      date: August 30 - September 4, 2026\n      place: Vienna, Austria\n"
  },
  {
    "path": "conference/AI/iclr.yml",
    "content": "- title: ICLR\n  description: International Conference on Learning Representations\n  sub: AI\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: iclr\n  confs:\n    - year: 2022\n      id: iclr22\n      link: https://iclr.cc/Conferences/2022\n      timeline:\n        - abstract_deadline: '2021-09-29 12:00:00'\n          deadline: '2021-10-21 12:00:00'\n          comment: Mandatory abstract deadline on Sep 29, 2021.\n      timezone: UTC-12\n      date: April 25-29, 2022\n      place: Virtual conference\n    - year: 2023\n      id: iclr23\n      link: https://iclr.cc/Conferences/2023\n      timeline:\n        - abstract_deadline: '2022-09-21 23:59:59'\n          deadline: '2022-09-28 23:59:59'\n          comment: Mandatory abstract deadline on Sep. 11, 2022.\n      timezone: UTC-12\n      date: May 01-05, 2023\n      place: Kigali, Rwanda\n    - year: 2024\n      id: iclr24\n      link: https://iclr.cc/Conferences/2024\n      timeline:\n        - abstract_deadline: '2023-09-21 23:59:59'\n          deadline: '2023-09-28 23:59:59'\n          comment: Mandatory abstract deadline on Sep. 21, 2023.\n      timezone: UTC-12\n      date: May 07-11, 2024\n      place: Vienna, Austria\n    - year: 2025\n      id: iclr25\n      link: https://iclr.cc/Conferences/2025\n      timeline:\n        - abstract_deadline: '2024-09-27 23:59:59'\n          deadline: '2024-10-01 23:59:59'\n      timezone: UTC-12\n      date: April 24-28, 2025\n      place: Singapore\n    - year: 2026\n      id: iclr26\n      link: https://iclr.cc/Conferences/2026\n      timeline:\n        - abstract_deadline: '2025-09-19 23:59:59'\n          deadline: '2025-09-24 23:59:59'\n      timezone: AoE\n      date: May 01-05, 2026\n      place: Brazil\n"
  },
  {
    "path": "conference/AI/icml.yml",
    "content": "- title: ICML\n  description: International Conference on Machine Learning\n  sub: AI\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: icml\n  confs:\n    - year: 2022\n      id: icml22\n      link: https://icml.cc/Conferences/2022\n      timeline:\n        - abstract_deadline: '2022-01-20 23:59:00'\n          deadline: '2022-01-27 23:59:00'\n          comment: Mandatory abstract deadline on Jan 20, 2022.\n      timezone: UTC-12\n      date: July 17-23, 2022\n      place: Baltimore, Maryland USA\n    - year: 2023\n      id: icml23\n      link: https://icml.cc/Conferences/2023\n      timeline:\n        - abstract_deadline: '2023-01-09 07:59:59'\n          deadline: '2023-01-26 07:59:59'\n          comment: Paper Submissions Open on OpenReview Jan 09 2023 02:00 PM UTC\n      timezone: UTC-12\n      date: July 23-29, 2023\n      place: Hawaii Convention Center,Hawaii, USA\n    - year: 2024\n      id: icml24\n      link: https://icml.cc/Conferences/2024\n      timeline:\n        - deadline: '2024-02-01 23:59:59'\n          comment: Paper Submissions Open on OpenReview Jan 09 2024 02:00 PM UTC\n      timezone: UTC-12\n      date: July 21-27, 2024\n      place: Messe Wien Exhibition Congress Center, Vienna, Austria\n    - year: 2025\n      id: icml25\n      link: https://icml.cc/Conferences/2025\n      timeline:\n        - abstract_deadline: '2025-01-23 23:59:59'\n          deadline: '2025-01-30 23:59:59'\n          comment: Paper Submissions Open on OpenReview Jan 08 2025 11:59 PM UTC\n      timezone: UTC-12\n      date: July 11-19, 2025\n      place: Vancouver Convention Center, Vancouver, Canada\n    - year: 2026\n      id: icml26\n      link: https://icml.cc/Conferences/2026\n      timeline:\n        - abstract_deadline: '2026-01-24 11:59:59'\n          deadline: '2026-01-29 11:59:59'\n          comment: Paper Submissions Open on OpenReview Jan 08 2026 12:00AM UTC-0\n      timezone: UTC+0\n      date: July 6-12, 2026\n      place: Seoul, Korea\n"
  },
  {
    "path": "conference/AI/iconip.yml",
    "content": "- title: ICONIP\n  description: International Conference on Neural Information Processing\n  sub: AI\n  rank:\n    ccf: C\n    core: B\n    thcpl: N\n  dblp: iconip\n  confs:\n    - year: 2023\n      id: iconip2023\n      link: http://iconip2023.org/\n      timeline:\n        - deadline: '2023-06-30 11:59:00'\n      timezone: UTC-8\n      date: Nov 20-23, 2023\n      place: Changsha, China\n    - year: 2024\n      id: iconip2024\n      link: http://iconip2024.org/\n      timeline:\n        - deadline: '2024-07-22 23:59:59'\n      timezone: UTC-12\n      date: December 2-6, 2024\n      place: Auckland, New Zealand\n    - year: 2025\n      id: iconip2025\n      link: https://iconip2025.apnns.org/\n      timeline:\n        - deadline: '2025-05-22 23:59:59'\n      timezone: UTC-12\n      date: November 20-24, 2025\n      place: Okinawa, Japan\n    - year: 2026\n      id: iconip2026\n      link: https://www.iconip2026.org/\n      timeline:\n        - deadline: '2026-05-10 23:59:59'\n      timezone: UTC-12\n      date: November 23-27, 2026\n      place: Melbourne, Australia\n"
  },
  {
    "path": "conference/AI/icpr.yml",
    "content": "- title: ICPR\n  description: International Conference on Pattern Recognition\n  sub: AI\n  rank:\n    ccf: C\n    core: B\n    thcpl: B\n  dblp: icpr\n  confs:\n    - year: 2024\n      id: icpr24\n      link: https://icpr2024.org/\n      timeline:\n        - deadline: '2024-04-10 23:59:59'\n      timezone: UTC-7\n      date: Dec 01-05, 2024\n      place: Kolkata, India\n    - year: 2026\n      id: icpr26\n      link: https://icpr2026.org/\n      timeline:\n        - deadline: '2025-12-20 23:59:59'\n      timezone: AoE\n      date: August 17-21, 2026\n      place: Lyon, France\n"
  },
  {
    "path": "conference/AI/icra.yml",
    "content": "- title: ICRA\n  description: IEEE International Conference on Robotics and Automation\n  sub: AI\n  rank:\n    ccf: B\n    core: A*\n    thcpl: A\n  dblp: icra\n  confs:\n    - year: 2022\n      id: icra22\n      link: https://www.icra2022.org/\n      timeline:\n        - deadline: '2021-09-15 02:59:00'\n      timezone: UTC-8\n      date: May 23-27, 2022\n      place: Philadelphia (PA), USA\n    - year: 2023\n      id: icra23\n      link: https://www.icra2023.org/\n      timeline:\n        - deadline: '2022-09-15 23:59:59'\n      timezone: UTC-8\n      date: May 29- June 2, 2023\n      place: ExCeL London, UK\n    - year: 2024\n      id: icra24\n      link: https://2024.ieee-icra.org\n      timeline:\n        - deadline: '2023-09-15 23:59:00'\n      timezone: UTC-8\n      date: May 13-17, 2024\n      place: Yokohama, Japan\n    - year: 2025\n      id: icra25\n      link: https://2025.ieee-icra.org\n      timeline:\n        - deadline: '2024-07-15 12:00:00'\n          comment: submission open\n        - deadline: '2024-09-15 00:00:00'\n          comment: submission close\n      timezone: UTC-4\n      date: May 19-23, 2025\n      place: Atlanta (GA), USA\n    - year: 2026\n      id: icra26\n      link: https://2026.ieee-icra.org/\n      timeline:\n        - deadline: '2025-09-15 23:59:00'\n      timezone: UTC-8\n      date: Jun 1-5, 2026\n      place: Vienna, Austria\n"
  },
  {
    "path": "conference/AI/ictai.yml",
    "content": "- title: ICTAI\n  description: International Conference on Tools with Artificial Intellignce\n  sub: AI\n  rank:\n    ccf: C\n    core: B\n    thcpl: N\n  dblp: ictai\n  confs:\n    - year: 2021\n      id: ictai21\n      link: https://ictai.computer.org/\n      timeline:\n        - deadline: '2021-06-20 23:59:00'\n      timezone: UTC-7\n      date: November 01-03, 2021\n      place: Washington DC, USA\n    - year: 2026\n      id: ictai26\n      link: https://ictai.computer.org/2026/\n      timeline:\n        - deadline: '2026-06-30 23:59:00'\n      timezone: AoE\n      date: November 02-04, 2026\n      place: Boca Raton FL, USA\n"
  },
  {
    "path": "conference/AI/ijcai.yml",
    "content": "- title: IJCAI\n  description: International Joint Conference on Artificial Intelligence\n  sub: AI\n  rank:\n    ccf: B\n    core: A*\n    thcpl: B\n  dblp: ijcai\n  confs:\n    - year: 2022\n      id: ijcai22\n      link: https://ijcai-22.org\n      timeline:\n        - deadline: '2022-01-14 23:59:59'\n      timezone: UTC+1\n      date: July 23-29, 2022\n      place: Vienna, Austria.\n    - year: 2023\n      id: ijcai23\n      link: https://ijcai-23.org\n      timeline:\n        - abstract_deadline: '2023-01-11 23:59:59'\n          deadline: '2023-01-18 23:59:59'\n      timezone: UTC-12\n      date: August 19-25, 2023\n      place: Cape Town, South Africa.\n    - year: 2024\n      id: ijcai24\n      link: https://ijcai24.org/\n      timeline:\n        - abstract_deadline: '2024-01-10 23:59:59'\n          deadline: '2024-01-17 23:59:59'\n      timezone: UTC-12\n      date: August 3-9, 2024\n      place: Jeju Island, South Korea.\n    - year: 2025\n      id: ijcai25\n      link: https://2025.ijcai.org/\n      timeline:\n        - abstract_deadline: '2025-01-16 23:59:59'\n          deadline: '2025-01-23 23:59:59'\n      timezone: UTC-12\n      date: August 16-22, 2025\n      place: Montreal, Canada.\n    - year: 2026\n      id: ijcai26\n      link: https://2026.ijcai.org/\n      timeline:\n        - abstract_deadline: '2026-01-12 23:59:59'\n          deadline: '2026-01-19 23:59:59'\n      timezone: UTC-12\n      date: August 15-21, 2026\n      place: Bremen, Germany\n"
  },
  {
    "path": "conference/AI/ijcb.yml",
    "content": "- title: IJCB\n  description: International Joint Conference on Biometrics\n  sub: AI\n  rank:\n    ccf: C\n    core: B\n    thcpl: N\n  dblp: icb\n  confs:\n    - year: 2025\n      id: ijcb2025\n      link: https://ijcb2025.ieee-biometrics.org/\n      timeline:\n        - deadline: '2025-04-11 23:59:59'\n      timezone: UTC-7\n      date: September 8-11, 2025\n      place: Osaka, Japan\n    - year: 2026\n      id: ijcb2026\n      link: https://ijcb2026.ieee-biometrics.org/\n      timeline:\n        - deadline: '2026-04-10 23:59:59'\n      timezone: AoE\n      date: September 1-4, 2026\n      place: Rome, Italy\n"
  },
  {
    "path": "conference/AI/ijcnlp.yml",
    "content": "- title: IJCNLP\n  description: International Joint Conference on Natural Language Processing\n  sub: AI\n  rank:\n    ccf: N\n    core: B\n    thcpl: N\n  dblp: ijcnlp\n  confs:\n    - year: 2025\n      id: ijcnlp2025\n      link: https://www.afnlp.org/conferences/ijcnlp2025/\n      timeline:\n        - deadline: '2025-07-28 23:59:59'\n          comment: 'ACL Rolling Review'\n      timezone: UTC-12\n      date: Dec 20-24, 2025\n      place: Mumbai, India\n"
  },
  {
    "path": "conference/AI/ijcnn.yml",
    "content": "- title: IJCNN\n  description: International Joint Conference on Neural Networks\n  sub: AI\n  rank:\n    ccf: C\n    core: B\n    thcpl: B\n  dblp: ijcnn\n  confs:\n    - year: 2024\n      id: ijcnn2024\n      link: https://2024.ieeewcci.org/\n      timeline:\n        - deadline: '2024-01-29 23:59:59'\n      timezone: UTC-12\n      date: June 30 - July 5, 2024\n      place: Yokohama, Japan\n    - year: 2025\n      id: ijcnn2025\n      link: https://2025.ijcnn.org/\n      timeline:\n        - deadline: '2025-02-05 23:59:59'\n      timezone: UTC-12\n      date: June 30 - July 5, 2025\n      place: Rome, Italy\n    - year: 2026\n      id: ijcnn2026\n      link: https://attend.ieee.org/wcci-2026/\n      timeline:\n        - deadline: '2026-01-31 23:59:59'\n      timezone: UTC-12\n      date: June 21 - 26, 2026\n      place: Maastricht Exhibition & Congress Center, Maastricht, The Netherlands\n"
  },
  {
    "path": "conference/AI/iros.yml",
    "content": "- title: IROS\n  description: IEEE/RSJ International Conference on Intelligent Robots and Systems\n  sub: AI\n  rank:\n    ccf: C\n    core: A\n    thcpl: B\n  dblp: iros\n  confs:\n    - year: 2023\n      id: iros23\n      link: https://ieee-iros.org/\n      timeline:\n        - deadline: '2023-03-01 23:59:59'\n      timezone: UTC-8\n      date: October 1-5, 2023\n      place: Detroit, Michigan, USA\n    - year: 2024\n      id: iros24\n      link: http://iros2024-abudhabi.org/\n      timeline:\n        - deadline: '2024-03-15 23:59:59'\n      timezone: UTC-8\n      date: October 13-17, 2024\n      place: Abu Dhabi, UAE\n    - year: 2025\n      id: iros25\n      link: http://www.iros25.org/\n      timeline:\n        - deadline: '2025-03-01 23:59:59'\n      timezone: UTC-8\n      date: October 19-25, 2025\n      place: Hangzhou, China\n    - year: 2026\n      id: iros26\n      link: https://2026.ieee-iros.org/\n      timeline:\n        - deadline: '2026-03-02 23:59:59'\n      timezone: UTC-8\n      date: September 27 - October 1, 2026\n      place: Pittsburgh, PA, USA\n"
  },
  {
    "path": "conference/AI/kr.yml",
    "content": "- title: KR\n  description: International Conference on Principles of Knowledge Representation and Reasoning\n  sub: AI\n  rank:\n    ccf: B\n    core: A*\n    thcpl: N\n  dblp: kr\n  confs:\n    - year: 2023\n      id: krd23\n      link: https://kr.org/KR2023/\n      timeline:\n        - abstract_deadline: '2023-03-03 00:00:00'\n          deadline: '2023-03-14 00:00:00'\n      timezone: UTC-8\n      date: Sep 2-8, 2023\n      place: Rhodes, Greece\n    - year: 2024\n      id: krd24\n      link: https://kr.org/KR2024/\n      timeline:\n        - abstract_deadline: '2024-04-24 23:59:59'\n          deadline: '2024-05-01 23:59:59'\n      timezone: UTC-12\n      date: November 2-8, 2024\n      place: Hanoi, Vietnam\n    - year: 2025\n      id: krd25\n      link: https://kr.org/KR2025/\n      timeline:\n        - abstract_deadline: '2025-05-07 23:59:59'\n          deadline: '2025-05-12 23:59:59'\n      timezone: UTC-12\n      date: November 11-17, 2025\n      place: Melbourne, Australia\n    - year: 2026\n      id: krd26\n      link: https://kr.org/KR2026/\n      timeline:\n        - abstract_deadline: '2026-02-08 23:59:59'\n          deadline: '2026-02-13 23:59:59'\n      timezone: UTC-12\n      date: July 20-23, 2026\n      place: Lisbon, Portugal\n"
  },
  {
    "path": "conference/AI/ksem.yml",
    "content": "- title: KSEM\n  description: International Conference on Knowledge Science, Engineering and Management\n  sub: AI\n  rank:\n    ccf: C\n    core: C\n    thcpl: N\n  dblp: ksem\n  confs:\n    - year: 2023\n      id: ksem23\n      link: https://www.ksem2023.conferences.academy/\n      timeline:\n        - deadline: '2023-04-28 23:59:00'\n      timezone: UTC-8\n      date: Aug 16-18, 2023\n      place: Guangzhou, China\n    - year: 2024\n      id: ksem24\n      link: https://ai-edge.net/\n      timeline:\n        - deadline: '2024-02-15 23:59:00'\n      timezone: UTC+0\n      date: Aug 16-18, 2024\n      place: Birmingham\n    - year: 2025\n      id: ksem25\n      link: https://ksem2025.scimeeting.cn/\n      timeline:\n        - deadline: '2025-03-20 23:59:59'\n      timezone: UTC+0\n      date: August 4-6, 2025\n      place: Macao SAR, China\n    - year: 2026\n      id: ksem26\n      link: https://ksem2026.rosc.org.cn/\n      timeline:\n        - deadline: '2026-01-15 23:59:59'\n      timezone: UTC+0\n      date: July 17-19, 2026\n      place: Beijing, China\n"
  },
  {
    "path": "conference/AI/log.yml",
    "content": "- title: LOG\n  description: Learning on Graphs Conference\n  sub: AI\n  rank:\n    ccf: N\n    core: N\n    thcpl: N\n  dblp: log\n  confs:\n    - year: 2025\n      id: log2025\n      link: https://logconference.org/\n      timeline:\n        - abstract_deadline: '2025-08-22 23:59:59'\n          deadline: '2025-08-29 23:59:59'\n      timezone: AoE\n      date: December 10-12, 2025\n      place: Arizona State University, Phoenix, USA\n"
  },
  {
    "path": "conference/AI/naacl.yml",
    "content": "- title: NAACL\n  description: The Annual Conference of the North American Chapter of the Association for Computational Linguistics\n  sub: AI\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: naacl\n  confs:\n    - year: 2022\n      id: naacl22\n      link: https://2022.naacl.org/\n      timeline:\n        - deadline: '2022-01-15 23:59:59'\n      timezone: UTC-12\n      date: July 10-15, 2022\n      place: Washington DC, USA\n    - year: 2024\n      id: naacl24\n      link: https://2024.naacl.org/\n      timeline:\n        - deadline: '2023-12-15 23:59:59'\n      timezone: UTC-12\n      date: June 16-21, 2024\n      place: Mexico City, Mexico\n    - year: 2025\n      id: naacl25\n      link: https://2025.naacl.org/\n      timeline:\n        - deadline: '2024-10-15 23:59:59'\n      timezone: UTC-12\n      date: April 29-May 4, 2025\n      place: Albuquerque, New Mexico, USA\n"
  },
  {
    "path": "conference/AI/nips.yml",
    "content": "- title: NeurIPS\n  description: Conference on Neural Information Processing Systems\n  sub: AI\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: nips\n  confs:\n    - year: 2021\n      id: nips21\n      link: https://neurips.cc/Conferences/2021/\n      timeline:\n        - abstract_deadline: '2021-05-21 20:00:00'\n          deadline: '2021-05-28 20:00:00'\n      timezone: UTC+0\n      date: December 5-14, 2021\n      place: Virtual\n    - year: 2022\n      id: nips22\n      link: https://neurips.cc/Conferences/2022\n      timeline:\n        - abstract_deadline: '2022-05-16 20:00:00'\n          deadline: '2022-05-19 20:00:00'\n      timezone: UTC+0\n      date: November 28-December 9, 2022\n      place: New Orleans, Louisiana, USA\n    - year: 2023\n      id: nips23\n      link: https://neurips.cc/Conferences/2023\n      timeline:\n        - abstract_deadline: '2023-05-11 20:00:00'\n          deadline: '2023-05-17 20:00:00'\n      timezone: UTC+0\n      date: November 28-December 9, 2023\n      place: New Orleans, Louisiana, USA\n    - year: 2024\n      id: nips24\n      link: https://neurips.cc/Conferences/2024\n      timeline:\n        - deadline: '2024-05-22 20:00:00'\n      timezone: UTC+0\n      date: December 9-December 15, 2024\n      place: Vancouver, Canada\n    - year: 2025\n      id: nips25\n      link: https://neurips.cc/Conferences/2025\n      timeline:\n        - abstract_deadline: '2025-05-11 23:59:59'\n          deadline: '2025-05-15 23:59:59'\n      timezone: AoE\n      date: December 2-7, 2025\n      place: San Diego Convention Center, USA\n    - year: 2026\n      id: nips26\n      link: https://neurips.cc/Conferences/2026\n      timeline:\n        - deadline: '2026-05-07 11:59:00'\n      timezone: UTC+0\n      date: December 6, 2026\n      place: Sydney, Australia\n"
  },
  {
    "path": "conference/AI/nlpcc.yml",
    "content": "- title: NLPCC\n  description: CCF International Conference on Natural Language Processing and Chinese Computing\n  sub: AI\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: nlpcc\n  confs:\n    - year: 2025\n      id: nlpcc2025\n      link: http://tcci.ccf.org.cn/conference/2025/index.php\n      timeline:\n        - deadline: '2025-04-20 23:59:59'\n      timezone: UTC+8\n      date: August 8-10, 2025\n      place: Urumqi, China\n    - year: 2026\n      id: nlpcc2026\n      link: http://tcci.ccf.org.cn/conference/2026/\n      timeline:\n        - deadline: '2026-05-26 23:59:59'\n      timezone: UTC+8\n      date: November 3-5, 2026\n      place: Macau, China\n"
  },
  {
    "path": "conference/AI/ppsn.yml",
    "content": "- title: PPSN\n  description: International Conference on Parallel Problem Solving From Nature\n  sub: AI\n  rank:\n    ccf: B\n    core: A\n    thcpl: N\n  dblp: ppsn\n  confs:\n    - year: 2024\n      id: ppsn24\n      link: https://ppsn2024.fh-ooe.at/\n      timeline:\n        - deadline: '2024-04-18 23:59:59'\n      timezone: UTC-12\n      date: September 14-18, 2024\n      place: University of Applied Sciences Upper Austria, Softwarepark Hagenberg, Austria\n    - year: 2026\n      id: ppsn26\n      link: https://ppsn2026.disi.unitn.it/\n      timeline:\n        - deadline: '2026-03-28 23:59:59'\n      timezone: AoE\n      date: August 29-September 2, 2026\n      place: University of Trento, Trento, Italy\n"
  },
  {
    "path": "conference/AI/pricai.yml",
    "content": "- title: PRICAI\n  description: Pacific Rim International Conference on Artificial Intelligence\n  sub: AI\n  rank:\n    ccf: C\n    core: B\n    thcpl: N\n  dblp: pricai\n  confs:\n    - year: 2024\n      id: pricai2024\n      link: https://www.pricai.org/2024/\n      timeline:\n        - deadline: '2024-06-26 23:59:59'\n      timezone: UTC-12\n      date: Nov 18-24, 2024\n      place: Kyoto, Japan\n    - year: 2025\n      id: pricai2025\n      link: https://www.pricai.org/2025/\n      timeline:\n        - deadline: '2025-06-27 23:59:59'\n      timezone: UTC-12\n      date: Nov 17-21, 2025\n      place: Wellington, New Zealand\n    - year: 2026\n      id: pricai2026\n      link: https://2026.pricai.org/\n      timeline:\n        - deadline: '2026-06-13 23:59:59'\n      timezone: UTC-12\n      date: Nov 17-20, 2026\n      place: Guangzhou, China\n"
  },
  {
    "path": "conference/AI/probml.yml",
    "content": "- title: ProbML\n  description: Symposium on Probabilistic Machine Learning\n  sub: AI\n  rank:\n    ccf: N\n    core: N\n    thcpl: N\n  dblp: probml\n  confs:\n    - year: 2026\n      id: probml2026\n      link: https://probml.cc\n      timeline:\n        - deadline: '2026-03-20 11:59:00'\n      timezone: AoE\n      date: July 5, 2026\n      place: Seoul, South Korea\n"
  },
  {
    "path": "conference/AI/rss.yml",
    "content": "- title: RSS\n  description: Robotics Science and Systems\n  sub: AI\n  rank:\n    ccf: N\n    core: A*\n    thcpl: A\n  dblp: rss\n  confs:\n    - year: 2023\n      id: rss23\n      link: https://roboticsconference.org/\n      timeline:\n        - deadline: '2023-02-03 23:59:59'\n      timezone: AoE\n      date: July 10-14, 2023\n      place: Daegu, Republic of Korea\n    - year: 2024\n      id: rss24\n      link: https://roboticsconference.org/\n      timeline:\n        - deadline: '2024-02-02 23:59:00'\n      timezone: AoE\n      date: July 15-19, 2024\n      place: Delft, Netherlands\n    - year: 2025\n      id: rss25\n      link: https://roboticsconference.org\n      timeline:\n        - abstract_deadline: '2025-01-17 23:59:00'\n          deadline: '2025-01-24 23:59:00'\n      timezone: AoE\n      date: June 21-25, 2025\n      place: Los Angeles, California, USA\n    - year: 2026\n      id: rss26\n      link: https://roboticsconference.org\n      timeline:\n        - abstract_deadline: '2026-01-23 23:59:00'\n          deadline: '2026-01-30 23:59:00'\n      timezone: AoE\n      date: July 13-17, 2026\n      place: Sydney, Australia\n"
  },
  {
    "path": "conference/AI/rulemlrr.yml",
    "content": "- title: RuleML+RR\n  description: International Joint Conference on Rules and Reasoning\n  sub: AI\n  rank:\n    ccf: N\n    core: B\n    thcpl: N\n  dblp: rulemlrr\n  confs:\n    - year: 2026\n      id: rulemlrr2026\n      link: https://2026.declarativeai.net/events/ruleml-rr\n      timeline:\n        - abstract_deadline: '2026-05-08 23:59:59'\n          deadline: '2026-05-15 23:59:59'\n      timezone: AoE\n      date: August 24-26, 2026\n      place: Vilnius, Lithuania\n"
  },
  {
    "path": "conference/AI/uai.yml",
    "content": "- title: UAI\n  description: Conference on Uncertainty in Artificial Intelligence\n  sub: AI\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: uai\n  confs:\n    - year: 2021\n      id: uai21\n      link: http://auai.org/uai2021/\n      timeline:\n        - deadline: '2021-02-19 23:59:59'\n      timezone: UTC+0\n      date: July 27-29, 2021\n      place: Virtual\n    - year: 2023\n      id: uai23\n      link: http://auai.org/uai2023/\n      timeline:\n        - deadline: '2023-02-17 23:59:59'\n      timezone: AoE\n      date: August 1-3, 2023\n      place: Pittsburgh, PA, USA\n    - year: 2024\n      id: uai24\n      link: http://auai.org/uai2024/\n      timeline:\n        - deadline: '2024-02-09 23:59:59'\n      timezone: AoE\n      date: July 15-19, 2024\n      place: Barcelona, Spain\n    - year: 2025\n      id: uai25\n      link: https://www.auai.org/uai2025/\n      timeline:\n        - deadline: '2025-02-10 23:59:59'\n      timezone: AoE\n      date: July 21-25, 2025\n      place: Rio de Janeiro, Brazil\n    - year: 2026\n      id: uai26\n      link: https://www.auai.org/uai2026/\n      timeline:\n        - deadline: '2026-02-25 23:59:59'\n      timezone: AoE\n      date: August 17-21, 2026\n      place: Amsterdam, Netherlands\n"
  },
  {
    "path": "conference/AI/wacv.yml",
    "content": "- title: WACV\n  description: IEEE/CVF Winter Conference on Applications of Computer Vision\n  sub: AI\n  rank:\n    ccf: N\n    core: A\n    thcpl: N\n  dblp: wacv\n  confs:\n    - year: 2025\n      id: wacv25\n      link: https://wacv2025.thecvf.com/\n      timeline:\n        - deadline: '2024-07-15 23:59:59'\n          comment: first round\n        - deadline: '2024-09-09 23:59:59'\n          comment: second round\n      timezone: UTC-7\n      date: February 28 - March 4, 2025\n      place: Tucson, Arizona, USA\n    - year: 2026\n      id: wacv26\n      link: https://wacv.thecvf.com/\n      timeline:\n        - abstract_deadline: '2025-07-11 23:59:00'\n          deadline: '2025-07-18 23:59:59'\n          comment: First round\n        - abstract_deadline: '2025-09-12 23:59:00'\n          deadline: '2025-09-19 23:59:59'\n          comment: Second round\n      timezone: AoE\n      date: Mar 6 - 10, 2026\n      place: Tucson, Arizona, USA\n"
  },
  {
    "path": "conference/CG/3dv.yml",
    "content": "- title: 3DV\n  description: International Conference on 3D Vision\n  sub: CG\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: 3dim\n  confs:\n    - year: 2024\n      id: 3dv2024\n      link: https://3dvconf.github.io/2024/\n      timeline:\n        - deadline: '2023-08-07 23:59:59'\n      timezone: UTC-7\n      date: March 18-21, 2024\n      place: Davos, Switzerland\n    - year: 2025\n      id: 3dv2025\n      link: https://3dvconf.github.io/2025/\n      timeline:\n        - deadline: '2024-08-12 23:59:59'\n      timezone: UTC-7\n      date: March 25-28, 2025\n      place: Singapore\n    - year: 2026\n      id: 3dv2026\n      link: https://3dvconf.github.io/2026/\n      timeline:\n        - deadline: '2025-08-18 23:59:59'\n      timezone: UTC-7\n      date: March 24-27, 2026\n      place: Metro Vancouver, BC, Canada\n"
  },
  {
    "path": "conference/CG/PacificVis.yml",
    "content": "- title: PacificVis\n  description: IEEE Pacific Visualization Symposium\n  sub: CG\n  rank:\n    ccf: C\n    core: B\n    thcpl: B\n  dblp: pacificvis\n  confs:\n    - year: 2025\n      id: pacificvis25\n      link: https://pacificvis2025.github.io/pages/index.html\n      timeline:\n        - abstract_deadline: '2024-09-15 23:59:00'\n          deadline: '2024-09-22 23:59:00'\n          comment: 'Journal track'\n        - abstract_deadline: '2024-11-13 23:59:00'\n          deadline: '2024-11-20 23:59:00'\n          comment: 'Conference track'\n      timezone: AoE\n      date: April 22 - 25, 2025\n      place: Chang Yung-fa Foundation International Convention Center, Taipei, Taiwan\n    - year: 2026\n      id: pacificvis26\n      link: https://pacificvis2026.github.io/\n      timeline:\n        - abstract_deadline: '2025-09-01 23:59:00'\n          deadline: '2025-09-07 23:59:00'\n          comment: 'Journal track'\n        - abstract_deadline: '2025-11-01 23:59:00'\n          deadline: '2025-11-08 23:59:00'\n          comment: 'Conference track'\n      timezone: AoE\n      date: April 20 - 23, 2026\n      place: Sydney, Australia\n"
  },
  {
    "path": "conference/CG/SGP.yml",
    "content": "- title: SGP\n  description: Eurographics Symposium on Geometry Processing\n  sub: CG\n  rank:\n    ccf: B\n    core: B\n    thcpl: B\n  dblp: sgp\n  confs:\n    - year: 2025\n      id: sgp25\n      link: https://sgp2025.my.canva.site/\n      timeline:\n        - abstract_deadline: '2025-02-04 23:59:59'\n          deadline: '2025-02-07 23:59:59'\n          comment: 'First (visa-friendly) round'\n        - abstract_deadline: '2025-04-08 23:59:59'\n          deadline: '2025-04-11 23:59:59'\n          comment: 'Second (traditional) round'\n      timezone: AoE\n      date: June 30 - July 4, 2025\n      place: BILBAO, SPAIN\n    - year: 2026\n      id: sgp26\n      link: https://sgp26.org/\n      timeline:\n        - abstract_deadline: '2026-02-02 23:59:59'\n          deadline: '2026-02-04 23:59:59'\n          comment: 'First round'\n        - abstract_deadline: '2026-04-13 23:59:59'\n          deadline: '2026-04-15 23:59:59'\n          comment: 'Second round'\n      timezone: AoE\n      date: July 1 - 3, 2026\n      place: Bern, Switzerland\n"
  },
  {
    "path": "conference/CG/casa.yml",
    "content": "- title: CASA\n  description: International Conference on Computer Animation and Social Agents\n  sub: CG\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: ca\n  confs:\n    - year: 2024\n      id: casa2024\n      link: https://casa2024.wtu.edu.cn/index.htm\n      timeline:\n        - deadline: '2024-03-05 23:59:59'\n      timezone: AoE\n      date: June 5-7, 2024\n      place: Wuhan, China\n    - year: 2025\n      id: casa2025\n      link: https://casa2025.sciencesconf.org/\n      timeline:\n        - deadline: '2025-03-08 23:59:59'\n      timezone: AoE\n      date: June 2-5, 2025\n      place: Strasbourg, France\n"
  },
  {
    "path": "conference/CG/cccg.yml",
    "content": "- title: CCCG\n  description: Canadian Conference on Computational Geometry\n  sub: CG\n  rank:\n    ccf: N\n    core: N\n    thcpl: N\n  dblp: cccg\n  confs:\n    - year: 2026\n      id: cccg2026\n      link: https://sites.google.com/view/cccg-2026/home\n      timeline:\n        - deadline: '2026-04-30 23:59:59'\n          comment: 'Submission Deadline'\n      timezone: AoE\n      date: August 12-14, 2026\n      place: Orillia, Ontario, Canada\n"
  },
  {
    "path": "conference/CG/cgi.yml",
    "content": "- title: CGI\n  description: Computer Graphics International\n  sub: CG\n  rank:\n    ccf: C\n    core: C\n    thcpl: N\n  dblp: cgi\n  confs:\n    - year: 2024\n      id: cgi24\n      link: https://www.cgs-network.org/cgi24/\n      timeline:\n        - deadline: '2024-02-10 23:59:00'\n      timezone: UTC\n      date: July 1-5, 2024\n      place: Geneva, Switzerland\n    - year: 2025\n      id: cgi25\n      link: https://www.cgs-network.org/cgi25/\n      timeline:\n        - deadline: '2025-02-18 23:59:00'\n      timezone: UTC\n      date: July 14-18, 2025\n      place: Hong Kong, China\n    - year: 2026\n      id: cgi26\n      link: https://www.cgs-network.org/cgi26/\n      timeline:\n        - deadline: '2026-03-12 23:59:00'\n          comment: 'First Track: Call for papers with final publication in The Visual Computer Journal'\n        - deadline: '2026-04-20 23:59:00'\n          comment: 'Second Track: Call for papers with final publication in LNCS Book published by Springer or in The Visual Computer journal or Computer Animation and Virtual Worlds Journal'\n      timezone: UTC\n      date: July 06-10, 2026\n      place: London, UK\n"
  },
  {
    "path": "conference/CG/cvm.yml",
    "content": "- title: CVM\n  description: The international conference on Computational Visual Media\n  sub: CG\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: cvm\n  confs:\n    - year: 2025\n      id: cvm25\n      link: http://iccvm.org/2025/\n      timeline:\n        - abstract_deadline: '2024-10-09 23:59:59'\n          deadline: '2024-10-12 23:59:59'\n      timezone: UTC+0\n      date: April 19-21, 2025\n      place: Hong Kong, China\n    - year: 2026\n      id: cvm26\n      link: http://iccvm.org/2026/\n      timeline:\n        - abstract_deadline: '2025-10-10 23:59:59'\n          deadline: '2025-10-13 23:59:59'\n      timezone: UTC+0\n      date: April 10-12, 2026\n      place: Seoul, Korea\n"
  },
  {
    "path": "conference/CG/eg.yml",
    "content": "- title: Eurographics\n  description: Eurographics\n  sub: CG\n  rank:\n    ccf: B\n    core: B\n    thcpl: B\n  dblp: eurographics\n  confs:\n    - year: 2024\n      id: eg24\n      link: https://eg2024.cyens.org.cy/\n      timeline:\n        - abstract_deadline: '2023-09-28 23:59:59'\n          deadline: '2023-10-05 23:59:59'\n      timezone: UTC\n      date: April 22-26, 2024\n      place: Limassol, Cyprus\n    - year: 2025\n      id: eg25\n      link: https://eg25.cs.ucl.ac.uk/main/home.html\n      timeline:\n        - abstract_deadline: '2024-10-01 23:59:59'\n          deadline: '2024-10-03 23:59:59'\n      timezone: UTC\n      date: May 12-16, 2025\n      place: London, UK\n    - year: 2026\n      id: eg26\n      link: https://eg2026.github.io/\n      timeline:\n        - abstract_deadline: '2025-09-22 23:59:59'\n          deadline: '2025-09-26 23:59:59'\n      timezone: UTC\n      date: May 4-8, 2026\n      place: Aachen, Germany\n"
  },
  {
    "path": "conference/CG/egsr.yml",
    "content": "- title: EGSR\n  description: Eurographics Symposium on Rendering\n  sub: CG\n  rank:\n    ccf: B\n    core: N\n    thcpl: N\n  dblp: rt\n  confs:\n    - year: 2025\n      id: egsr2025\n      link: https://conferences.eg.org/egsr2025/\n      timeline:\n        - abstract_deadline: '2025-04-01 23:59:59'\n          deadline: '2025-04-07 23:59:59'\n      timezone: UTC\n      date: June 25-27, 2025\n      place: Copenhagen, Denmark\n    - year: 2026\n      id: egsr2026\n      link: https://egsr2026.inria.fr/\n      timeline:\n        - abstract_deadline: '2026-04-08 23:59:59'\n          deadline: '2026-04-15 23:59:59'\n      timezone: UTC\n      date: July 1-3, 2026\n      place: Bordeaux, France\n"
  },
  {
    "path": "conference/CG/eurovis.yml",
    "content": "- title: EuroVis\n  description: Eurographics Conference on Visualization\n  sub: CG\n  rank:\n    ccf: B\n    core: B\n    thcpl: B\n  dblp: vissym\n  confs:\n    - year: 2025\n      id: eurovis2025\n      link: https://www.eurovis2025.lu/\n      timeline:\n        - abstract_deadline: '2024-11-27 23:59:59'\n          deadline: '2024-12-04 23:59:59'\n      timezone: AoE\n      date: June 2-6, 2025\n      place: Luxembourg City, Luxembourg\n    - year: 2026\n      id: eurovis2026\n      link: https://www.eurovis.org.uk/\n      timeline:\n        - abstract_deadline: '2025-11-26 23:59:59'\n          deadline: '2024-12-03 23:59:59'\n      timezone: AoE\n      date: June 8-12, 2026\n      place: Nottingham, United Kingdom\n"
  },
  {
    "path": "conference/CG/gmp.yml",
    "content": "- title: GMP\n  description: International Conference on Geometric Modeling and Processing\n  sub: CG\n  rank:\n    ccf: C\n    core: C\n    thcpl: N\n  dblp: gmp\n  confs:\n    - year: 2024\n      id: gmp2024\n      link: https://irc.cs.sdu.edu.cn/gmp2024/index.html\n      timeline:\n        - deadline: '2023-12-11 23:59:59'\n          comment: Abstract submission\n        - deadline: '2023-12-18 23:59:59'\n          comment: Full paper submission\n      timezone: UTC\n      date: June 5-7, 2024\n      place: Qingdao, China\n    - year: 2025\n      id: gmp2025\n      link: https://sites.wustl.edu/gmp2025/\n      timeline:\n        - abstract_deadline: '2024-12-09 23:59:59'\n          deadline: '2024-12-16 23:59:59'\n      timezone: UTC\n      date: May 28-30, 2025\n      place: Washington University in St. Louis, USA\n    - year: 2026\n      id: gmp26\n      link: https://gmp2026.kma.zcu.cz/\n      timeline:\n        - abstract_deadline: '2025-12-16 23:59:59'\n          deadline: '2025-12-18 23:59:59'\n      timezone: UTC\n      date: May 27-29, 2026\n      place: Pilsen, Czech Republic\n"
  },
  {
    "path": "conference/CG/icassp.yml",
    "content": "- title: ICASSP\n  description: IEEE International Conference on Acoustics, Speech, and Signal Processing\n  sub: CG\n  rank:\n    ccf: B\n    core: B\n    thcpl: B\n  dblp: icassp\n  confs:\n    - year: 2022\n      id: icassp22\n      link: https://2022.ieeeicassp.org\n      timeline:\n        - deadline: '2021-10-06 23:59:59'\n      timezone: UTC+0\n      date: May 22-27, 2022\n      place: Singapore\n    - year: 2023\n      id: icassp23\n      link: https://2023.ieeeicassp.org\n      timeline:\n        - deadline: '2022-10-26 23:59:59'\n      timezone: UTC-12\n      date: June 4-9, 2023\n      place: Rhodes Island, Greece\n    - year: 2024\n      id: icassp24\n      link: https://2024.ieeeicassp.org/\n      timeline:\n        - deadline: '2023-09-06 23:59:59'\n      timezone: UTC-12\n      date: April 14-19, 2024\n      place: COEX, Seoul, Korea\n    - year: 2025\n      id: icassp25\n      link: https://2025.ieeeicassp.org/\n      timeline:\n        - deadline: '2024-09-12 23:59:59'\n      timezone: UTC-7\n      date: April 6-11, 2025\n      place: Hyderabad, India\n    - year: 2026\n      id: icassp26\n      link: https://2026.ieeeicassp.org/\n      timeline:\n        - deadline: '2025-09-17 23:59:59'\n      timezone: UTC-12\n      date: May 4-8, 2026\n      place: Barcelona, Spain\n    - year: 2027\n      id: icassp27\n      link: https://2027.ieeeicassp.org/\n      timeline:\n        - deadline: 'TBD'\n      timezone: UTC-12\n      date: May 16-21, 2027\n      place: Toronto, Canada\n"
  },
  {
    "path": "conference/CG/icip.yml",
    "content": "- title: ICIP\n  description: The IEEE International Conference on Image Processing\n  sub: CG\n  rank:\n    ccf: C\n    core: B\n    thcpl: B\n  dblp: icip\n  confs:\n    - year: 2023\n      id: icip23\n      link: https://2023.ieeeicip.org/\n      timeline:\n        - deadline: '2023-02-15 23:59:59'\n      timezone: UTC+0\n      date: Oct 8-11, 2023\n      place: Kuala Lumpur, Malaysia\n    - year: 2024\n      id: icip24\n      link: https://2024.ieeeicip.org/\n      timeline:\n        - deadline: '2024-01-31 23:59:59'\n      timezone: UTC+0\n      date: Oct 27-30, 2024\n      place: Abu Dhabi, United Arab Emirates\n    - year: 2025\n      id: icip25\n      link: https://2025.ieeeicip.org/\n      timeline:\n        - deadline: '2025-01-22 23:59:59'\n      timezone: UTC+0\n      date: Sep 14-17, 2025\n      place: Anchorage Alaska, USA\n    - year: 2026\n      id: icip26\n      link: https://2026.ieeeicip.org/\n      timeline:\n        - deadline: '2026-02-04 23:59:59'\n      timezone: UTC+0\n      date: Sep 13-17, 2026\n      place: Tampere, Finland\n"
  },
  {
    "path": "conference/CG/icme.yml",
    "content": "- title: ICME\n  description: The IEEE International Conference on Multimedia & Expo\n  sub: CG\n  rank:\n    ccf: B\n    core: A\n    thcpl: N\n  dblp: icme\n  confs:\n    - year: 2022\n      id: icme22\n      link: http://2022.ieeeicme.org/paper.html\n      timeline:\n        - deadline: '2021-12-12 23:59:59'\n      timezone: UTC-8\n      date: July 18-22, 2022\n      place: Taipei, Taiwan, China\n    - year: 2023\n      id: icme23\n      link: https://www.2023.ieeeicme.org/\n      timeline:\n        - deadline: '2022-12-22 23:59:59'\n      timezone: UTC+0\n      date: July 10-14, 2023\n      place: Brisbane, Australia\n    - year: 2024\n      id: icme24\n      link: https://2024.ieeeicme.org/\n      timeline:\n        - deadline: '2023-12-30 23:59:59'\n      timezone: UTC+0\n      date: July 15-19, 2024\n      place: Niagra Falls, Canada\n    - year: 2025\n      id: icme25\n      link: https://2025.ieeeicme.org/\n      timeline:\n        - deadline: '2024-12-23 23:59:59'\n      timezone: UTC+0\n      date: June 30 - July 4, 2025\n      place: Nantes, France\n    - year: 2026\n      id: icme26\n      link: https://2026.ieeeicme.org/\n      timeline:\n        - deadline: '2025-12-31 23:59:59'\n      timezone: UTC-12\n      date: July 6 - July 10, 2026\n      place: Bangkok, Thailand\n"
  },
  {
    "path": "conference/CG/icmr.yml",
    "content": "- title: ICMR\n  description: ACM SIGMM International Conference on Multimedia Retrieval\n  sub: CG\n  rank:\n    ccf: B\n    core: B\n    thcpl: B\n  dblp: mir\n  confs:\n    - year: 2024\n      id: icmr24\n      link: https://icmr2024.org/index.html\n      timeline:\n        - deadline: '2024-02-01 23:59:59'\n      timezone: UTC-12\n      date: June 11-13, 2024\n      place: Phuket, Thailand\n    - year: 2025\n      id: icmr25\n      link: https://www.icmr-2025.org/\n      timeline:\n        - deadline: '2025-02-23 23:59:59'\n      timezone: UTC-12\n      date: June 30 - July 3, 2025\n      place: Chicago, USA\n    - year: 2026\n      id: icmr26\n      link: https://icmr2026.org/calls.html\n      timeline:\n        - deadline: '2026-02-13 23:59:59'\n      timezone: UTC-12\n      date: June 16-19, 2026\n      place: Amsterdam, Netherlands\n"
  },
  {
    "path": "conference/CG/icvrv.yml",
    "content": "- title: ICVRV\n  description: International Conference on Virtual Reality and Visualization\n  sub: CG\n  rank:\n    ccf: N\n    core: N\n    thcpl: N\n  dblp: icvrv\n  confs:\n    - year: 2025\n      id: icvrv25\n      link: https://icvrv2025.aconf.org/\n      timeline:\n        - abstract_deadline: '2025-08-15 23:59:59'\n          deadline: '2025-08-22 23:59:59'\n      timezone: AoE\n      date: December 19-21, 2025\n      place: Bogota, Colombia\n"
  },
  {
    "path": "conference/CG/interspeech.yml",
    "content": "- title: InterSpeech\n  description: Conference of the International Speech Communication Association\n  sub: CG\n  rank:\n    ccf: B\n    core: A\n    thcpl: N\n  dblp: interspeech\n  confs:\n    - year: 2022\n      id: interspeech22\n      link: https://www.interspeech2022.org/\n      timeline:\n        - deadline: '2022-03-21 23:59:59'\n      timezone: UTC+9\n      date: September 18-22, 2022\n      place: Incheon, South Korea\n    - year: 2023\n      id: interspeech23\n      link: https://www.interspeech2023.org/\n      timeline:\n        - deadline: '2023-03-08 23:59:59'\n      timezone: UTC+0\n      date: August 20-24, 2023\n      place: Dublin, Ireland\n    - year: 2024\n      id: interspeech24\n      link: https://www.interspeech2024.org/\n      timeline:\n        - abstract_deadline: '2024-03-01 23:59:59'\n          deadline: '2024-03-09 23:59:59'\n      timezone: UTC+0\n      date: September 1-5, 2024\n      place: Greece\n    - year: 2025\n      id: interspeech25\n      link: https://www.interspeech2025.org/home\n      timeline:\n        - deadline: '2025-02-19 23:59:59'\n      timezone: UTC+0\n      date: August 17-22, 2025\n      place: Rotterdam, Netherlands\n    - year: 2026\n      id: interspeech26\n      link: https://interspeech2026.org/\n      timeline:\n        - deadline: '2026-02-25 23:59:59'\n      timezone: UTC+0\n      date: September 27 - October 1, 2026\n      place: Sydney, Australia\n"
  },
  {
    "path": "conference/CG/ismar.yml",
    "content": "- title: ISMAR\n  description: International Symposium on Mixed and Augmented Reality\n  sub: CG\n  rank:\n    ccf: B\n    core: A*\n    thcpl: B\n  dblp: ismar\n  confs:\n    - year: 2023\n      id: ismar2023\n      link: https://ismar23.org/\n      timeline:\n        - abstract_deadline: '2023-06-05 23:59:59'\n          deadline: '2023-06-12 23:59:59'\n      timezone: AoE\n      date: Oct 16-20, 2023\n      place: Sydney, Australia\n    - year: 2024\n      id: ismar2024\n      link: https://ieeeismar.org/\n      timeline:\n        - abstract_deadline: '2024-05-03 23:59:59'\n          deadline: '2024-05-08 23:59:59'\n      timezone: AoE\n      date: Oct 21-25, 2024\n      place: Greater Seattle Area, USA\n    - year: 2025\n      id: ismar2025\n      link: https://www.ieeeismar.net/2025/\n      timeline:\n        - abstract_deadline: '2025-04-04 23:59:59'\n          deadline: '2025-04-11 23:59:59'\n      timezone: AoE\n      date: Oct 8-12, 2025\n      place: Daejeon, South Korea\n    - year: 2026\n      id: ismar2026\n      link: https://www.ieeeismar.net/2026/\n      timeline:\n        - abstract_deadline: '2026-03-09 23:59:59'\n          deadline: '2026-03-16 23:59:59'\n      timezone: AoE\n      date: Oct 5-9, 2026\n      place: Bari, Italy\n"
  },
  {
    "path": "conference/CG/mm.yml",
    "content": "- title: ACM MM\n  description: ACM International Conference on Multimedia\n  sub: CG\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: mm\n  confs:\n    - year: 2021\n      id: mm21\n      link: https://2021.acmmm.org/\n      timeline:\n        - abstract_deadline: '2021-04-10 23:59:59'\n          deadline: '2021-04-17 23:59:59'\n      timezone: AoE\n      date: October 21-24, 2021\n      place: Chengdu, China\n    - year: 2022\n      id: mm22\n      link: https://2022.acmmm.org/\n      timeline:\n        - abstract_deadline: '2022-03-31 23:59:59'\n          deadline: '2022-04-07 23:59:59'\n      timezone: UTC-12\n      date: October 10-14, 2022\n      place: Lisbon, Portugal\n    - year: 2023\n      id: mm23\n      link: https://www.acmmm2023.org/\n      timeline:\n        - abstract_deadline: '2023-04-23 23:59:59'\n          deadline: '2023-05-04 23:59:59'\n      timezone: UTC-12\n      date: October 29-November 02, 2023\n      place: Ottawa, Ontario, Canada\n    - year: 2024\n      id: mm24\n      link: https://2024.acmmm.org/\n      timeline:\n        - abstract_deadline: '2024-04-08 23:59:59'\n          deadline: '2024-04-12 23:59:59'\n      timezone: UTC-12\n      date: October 28-November 01, 2024\n      place: Melbourne, Australia\n    - year: 2025\n      id: mm25\n      link: https://acmmm2025.org/\n      timeline:\n        - abstract_deadline: '2025-04-04 23:59:59'\n          deadline: '2025-04-11 23:59:59'\n      timezone: UTC-12\n      date: October 27-31, 2025\n      place: Dublin, Ireland\n    - year: 2026\n      id: mm26\n      link: https://2026.acmmm.org/\n      timeline:\n        - abstract_deadline: '2026-03-25 23:59:59'\n          deadline: '2026-04-01 23:59:59'\n      timezone: AoE\n      date: November 10-14, 2026\n      place: Rio de Janeiro, Brazil\n"
  },
  {
    "path": "conference/CG/mmasia.yml",
    "content": "- title: MMAsia\n  description: ACM Multimedia Asia\n  sub: CG\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: mmasia\n  confs:\n    - year: 2023\n      id: mmasia23\n      link: http://www.mmasia2023.org/\n      timeline:\n        - deadline: '2023-07-22 23:59:59'\n      timezone: AoE\n      date: December 06-08, 2023\n      place: Tainan, Taiwan\n    - year: 2025\n      id: mmasia25\n      link: https://mmasia2025.org/\n      timeline:\n        - deadline: '2025-07-25 23:59:59'\n      timezone: AoE\n      date: December 9-12, 2025\n      place: Grand Millenium Hotel, Kuala Lumpur, Malaysia\n"
  },
  {
    "path": "conference/CG/mmm.yml",
    "content": "- title: MMM\n  description: International Conference on Multimedia Modeling\n  sub: CG\n  rank:\n    ccf: C\n    core: B\n    thcpl: N\n  dblp: mmm\n  confs:\n    - year: 2025\n      id: mmm25\n      link: https://mmm2025.net/\n      timeline:\n        - deadline: '2024-08-19 23:59:59'\n      timezone: AoE\n      date: January 7-10, 2025\n      place: Nara, Japan\n    - year: 2026\n      id: mmm26\n      link: https://mmm2026.cz/\n      timeline:\n        - deadline: '2025-08-19 23:59:59'\n      timezone: AoE\n      date: January 29-31, 2026\n      place: Prague, Czech Republic\n    - year: 2027\n      id: mmm27\n      link: https://www.mmm2027.net/\n      timeline:\n        - deadline: '2026-08-16 23:59:59'\n      timezone: AoE\n      date: January 5-8, 2027\n      place: Siem Reap, Cambodia\n"
  },
  {
    "path": "conference/CG/pg.yml",
    "content": "- title: PG\n  description: Pacific Graphics, The Pacific Conference on Computer Graphics and Applications\n  sub: CG\n  rank:\n    ccf: B\n    core: N\n    thcpl: B\n  dblp: pg\n  confs:\n    - year: 2024\n      id: pg24\n      link: http://pg2024.hsu.edu.cn/\n      timeline:\n        - abstract_deadline: '2024-05-31 21:59:00'\n          deadline: '2024-06-07 21:59:00'\n      timezone: UTC\n      date: October 13-16, 2024\n      place: Huangshan, China\n    - year: 2023\n      id: pg23\n      link: https://pg2023.org/\n      timeline:\n        - abstract_deadline: '2023-06-01 23:59:59'\n          deadline: '2023-06-06 23:59:59'\n      timezone: AoE\n      date: October 10-13, 2023\n      place: Daejeon, South Korea\n    - year: 2025\n      id: pg25\n      link: https://pg2025.nccu.edu.tw/\n      timeline:\n        - abstract_deadline: '2025-05-30 23:59:59'\n          deadline: '2025-06-06 23:59:59'\n      timezone: AoE\n      date: October 14-17, 2025\n      place: National Chengchi University, Taipei, Taiwan\n"
  },
  {
    "path": "conference/CG/prcv.yml",
    "content": "- title: PRCV\n  description: Chinese Conference on Pattern Recognition and Computer Vision\n  sub: CG\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: prcv\n  confs:\n    - year: 2023\n      id: prcv23\n      link: https://prcv2023.xmu.edu.cn/\n      timeline:\n        - deadline: '2023-06-20 23:59:59'\n      timezone: UTC+8\n      date: Oct 13-15, 2023\n      place: Xiamen, China\n    - year: 2024\n      id: prcv24\n      link: http://www.prcv.cn/\n      timeline:\n        - abstract deadline: '2024-04-18 23:59:59'\n          deadline: '2024-04-28 23:59:59'\n      timezone: UTC+8\n      date: Oct 18-20, 2024\n      place: Urumchi, China\n    - year: 2025\n      id: prcv25\n      link: http://2025.prcv.cn/\n      timeline:\n        - deadline: '2025-06-30 23:59:59'\n      timezone: UTC+8\n      date: Oct 16-19, 2025\n      place: Shanghai, China\n    - year: 2026\n      id: prcv26\n      link: https://www.prcv.cn/web/#/home\n      timeline:\n        - deadline: '2026-04-15 23:59:59'\n      timezone: UTC+8\n      date: Aug 22-25, 2026\n      place: Harbin, China\n"
  },
  {
    "path": "conference/CG/sca.yml",
    "content": "- title: SCA\n  description: ACM SIGGRAPH/Eurographics Symposium on Computer Animation\n  sub: CG\n  rank:\n    ccf: B\n    core: B\n    thcpl: B\n  dblp: sca\n  confs:\n    - year: 2024\n      id: sca24\n      link: https://computeranimation.org/\n      timeline:\n        - deadline: '2024-04-29 23:59:59'\n          comment: Submission deadline (papers and posters)\n      timezone: UTC\n      date: August 21-23, 2024\n      place: McGill University, Montreal, Canada\n    - year: 2025\n      id: sca25\n      link: https://computeranimation.org/\n      timeline:\n        - deadline: '2025-04-07 23:59:59'\n          comment: Submission deadline (papers)\n        - deadline: '2025-06-15 23:59:59'\n          comment: Submission deadline (posters)\n      timezone: AoE\n      date: August 8-10, 2025\n      place: Vancouver, Canada\n    - year: 2026\n      id: sca26\n      link: https://computeranimation.org/\n      timeline:\n        - abstract_deadline: '2026-04-10 23:59:59'\n          deadline: '2026-04-17 23:59:59'\n          comment: Submission deadline (papers)\n        - deadline: '2026-06-01 23:59:59'\n          comment: Submission deadline (posters)\n      timezone: AoE\n      date: July 8-10, 2026\n      place: Barcelona, Spain\n"
  },
  {
    "path": "conference/CG/sig.yml",
    "content": "- title: ACM SIGGRAPH\n  description: ACM SIGGRAPH Annual Conference\n  sub: CG\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: siggraph\n  confs:\n    - year: 2026\n      id: siggraph26\n      link: https://s2026.siggraph.org/\n      timeline:\n        - abstract_deadline: '2026-01-15 22:00:00'\n          deadline: '2026-01-22 22:00:00'\n      timezone: UTC+0\n      date: July 19 - 23, 2026\n      place: Los Angeles, California\n    - year: 2025\n      id: siggraph25\n      link: https://s2025.siggraph.org/\n      timeline:\n        - abstract_deadline: '2025-01-16 22:00:00'\n          deadline: '2025-01-23 22:00:00'\n      timezone: UTC+0\n      date: August 10 - 14, 2025\n      place: Vancouver, BC, Canada\n    - year: 2024\n      id: siggraph24\n      link: https://s2024.siggraph.org/\n      timeline:\n        - abstract_deadline: '2024-01-23 22:00:00'\n          deadline: '2024-01-24 22:00:00'\n      timezone: UTC+0\n      date: July 28 - August 1, 2024\n      place: Denver\n    - year: 2023\n      id: siggraph23\n      link: https://s2023.siggraph.org/\n      timeline:\n        - abstract_deadline: '2023-01-24 22:00:00'\n          deadline: '2023-01-25 22:00:00'\n      timezone: UTC+0\n      date: August 6-10, 2023\n      place: Los Angeles\n    - year: 2022\n      id: siggraph22\n      link: https://s2022.siggraph.org/\n      timeline:\n        - abstract_deadline: '2022-01-26 22:00:00'\n          deadline: '2022-01-27 22:00:00'\n      timezone: UTC+0\n      date: August 7-11, 2022\n      place: Vancouver\n    - year: 2021\n      id: siggraph21\n      link: https://s2021.siggraph.org/\n      timeline:\n        - abstract_deadline: '2021-01-27 22:00:00'\n          deadline: '2021-01-28 22:00:00'\n      timezone: UTC+0\n      date: August 9-13, 2021\n      place: Virtual\n"
  },
  {
    "path": "conference/CG/siga.yml",
    "content": "- title: ACM SIGGRAPH ASIA\n  description: ACM SIGGRAPH Annual Conference in Asia\n  sub: CG\n  rank:\n    ccf: A\n    core: N\n    thcpl: N\n  dblp: siggrapha\n  confs:\n    - year: 2026\n      id: siggrapha26\n      link: https://asia.siggraph.org/2026/\n      timeline:\n        - abstract_deadline: '2026-05-05 23:59:00'\n          deadline: '2026-05-12 23:59:00'\n      timezone: UTC-12\n      date: December 1-4, 2026\n      place: KLCC, Kuala Lumpur, Malaysia\n    - year: 2025\n      id: siggrapha25\n      link: https://asia.siggraph.org/2025/\n      timeline:\n        - abstract_deadline: '2025-05-16 23:59:00'\n          deadline: '2025-05-23 23:59:00'\n      timezone: UTC-12\n      date: December 15-18, 2025\n      place: Hong Kong, China\n    - year: 2024\n      id: siggrapha24\n      link: https://asia.siggraph.org/2024/\n      timeline:\n        - abstract_deadline: '2024-05-12 23:59:00'\n          deadline: '2024-05-19 23:59:00'\n      timezone: UTC-12\n      date: December 3-6, 2024\n      place: Tokyo, Japan\n    - year: 2023\n      id: siggrapha23\n      link: https://asia.siggraph.org/2023/\n      timeline:\n        - abstract_deadline: '2023-05-16 23:59:00'\n          deadline: '2023-05-23 23:59:00'\n      timezone: UTC-12\n      date: December 12-15, 2023\n      place: Sydney, Australia\n    - year: 2021\n      id: siggrapha21\n      link: https://sa2021.siggraph.org/\n      timeline:\n        - abstract_deadline: '2021-05-20 22:00:00'\n          deadline: '2021-05-21 22:00:00'\n      timezone: UTC+0\n      date: December 14-17, 2021\n      place: Tokyo, Japan\n"
  },
  {
    "path": "conference/CG/slt.yml",
    "content": "- title: SLT\n  description: IEEE Spoken Language Technology (SLT) Workshop\n  sub: CG\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: slt\n  confs:\n    - year: 2026\n      id: slt26\n      link: https://attend.ieee.org/slt-2026/\n      timeline:\n        - deadline: '2026-06-17 23:59:59'\n      timezone: AoE\n      date: December 13-16, 2026\n      place: Palermo, Sicily, Italy\n"
  },
  {
    "path": "conference/CG/smi.yml",
    "content": "- title: SMI\n  description: Shape Modeling International\n  sub: CG\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: smi\n  confs:\n    - year: 2025\n      id: smi25\n      link: https://smiconf.github.io/2025/\n      timeline:\n        - abstract_deadline: '2025-04-14 23:59:59'\n          deadline: '2025-04-22 23:59:59'\n      timezone: AoE\n      date: October 29 - November 2, 2025\n      place: Hangzhou, Zhejiang, P.R. China\n"
  },
  {
    "path": "conference/CG/spm.yml",
    "content": "- title: SPM\n  description: Symposium on Solid and Physical Modeling\n  sub: CG\n  rank:\n    ccf: B\n    core: C\n    thcpl: B\n  dblp: sma\n  confs:\n    - year: 2025\n      id: spm25\n      link: https://spmconf2025.github.io/SPM2025/\n      timeline:\n        - abstract_deadline: '2025-03-08 23:59:59'\n          deadline: '2025-03-15 23:59:59'\n      timezone: AoE\n      date: October 29 - November 2, 2025\n      place: Hangzhou, Zhejiang, P.R. China\n"
  },
  {
    "path": "conference/CG/vinci.yml",
    "content": "- title: VINCI\n  description: International Symposium on Visual Information Communication and Interaction\n  sub: CG\n  rank:\n    ccf: N\n    core: C\n    thcpl: N\n  dblp: vinci\n  confs:\n    - year: 2025\n      id: vinci2025\n      link: https://vinci2025.games.cg.jku.at\n      timeline:\n        - deadline: '2025-06-27 23:59:59'\n      timezone: AoE\n      date: December 1-3, 2025\n      place: Linz, Austria\n"
  },
  {
    "path": "conference/CG/vis.yml",
    "content": "- title: IEEE VIS\n  description: IEEE Visualization Conference\n  sub: CG\n  rank:\n    ccf: A\n    core: A\n    thcpl: A\n  dblp: visualization\n  confs:\n    - year: 2023\n      id: vis23\n      link: https://ieeevis.org/year/2023/welcome\n      timeline:\n        - abstract_deadline: '2023-03-21 23:59:59'\n          deadline: '2023-03-31 23:59:59'\n      timezone: AoE\n      date: October 22-27, 2023\n      place: Melbourne, Australia\n    - year: 2025\n      id: vis25\n      link: https://ieeevis.org/year/2025/welcome\n      timeline:\n        - abstract_deadline: '2025-03-21 23:59:59'\n          deadline: '2025-03-31 23:59:59'\n      timezone: AoE\n      date: November 2-7, 2025\n      place: Vienna, Austria\n    - year: 2026\n      id: vis26\n      link: https://ieeevis.org/year/2026/welcome\n      timeline:\n        - abstract_deadline: '2026-03-21 23:59:59'\n          deadline: '2026-03-31 23:59:59'\n      timezone: AoE\n      date: November 9-13, 2026\n      place: Boston, Massachusetts, USA\n"
  },
  {
    "path": "conference/CG/vr.yml",
    "content": "- title: IEEE VR\n  description: IEEE Virtual Reality\n  sub: CG\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: vr\n  confs:\n    - year: 2024\n      id: vr24\n      link: http://ieeevr.org/2024/\n      timeline:\n        - abstract_deadline: '2023-09-27 23:59:59'\n          deadline: '2023-10-04 23:59:59'\n      timezone: AoE\n      date: March 16-20, 2024\n      place: Orlando, Florida USA\n    - year: 2025\n      id: vr25\n      link: https://ieeevr.org/2025/\n      timeline:\n        - abstract_deadline: '2024-09-11 23:59:59'\n          deadline: '2024-09-18 23:59:59'\n      timezone: AoE\n      date: March 8-12, 2025\n      place: Saint-Malo, France\n    - year: 2026\n      id: vr26\n      link: https://ieeevr.org/2026/\n      timeline:\n        - abstract_deadline: '2025-09-05 23:59:59'\n          deadline: '2025-09-12 23:59:59'\n      timezone: AoE\n      date: March 21 - 25, 2026\n      place: Daegu, Korea\n"
  },
  {
    "path": "conference/CT/cade.yml",
    "content": "- title: CADE\n  description: The Conference on Automated Deduction\n  sub: CT\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: cade\n  confs:\n    - year: 2025\n      id: cade25\n      link: https://www.dhbw-stuttgart.de/cade-30/\n      timeline:\n        - abstract_deadline: '2025-02-17 23:59:59'\n          deadline: '2025-02-24 23:59:59'\n      timezone: AoE\n      date: July 28-31, 2025\n      place: DHBW Stuttgart, Stuttgart, Germany\n"
  },
  {
    "path": "conference/CT/cav.yml",
    "content": "- title: CAV\n  description: International Conference on Computer-Aided Verification\n  sub: CT\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: cav\n  confs:\n    - year: 2022\n      id: cav22\n      link: http://i-cav.org/2022/\n      timeline:\n        - deadline: '2022-01-21 23:59:59'\n      timezone: AoE\n      date: Aug 7-10, 2022\n      place: Technion, Haifa, Israel\n    - year: 2025\n      id: cav25\n      link: https://conferences.i-cav.org/2025/\n      timeline:\n        - deadline: '2025-01-31 23:59:59'\n      timezone: AoE\n      date: July 21-25, 2025\n      place: Zagreb, Croatia\n    - year: 2026\n      id: cav26\n      link: https://conferences.i-cav.org/2026/\n      timeline:\n        - deadline: '2026-01-28 23:59:59'\n      timezone: AoE\n      date: July 26-29, 2026\n      place: Lisbon, Portugal\n"
  },
  {
    "path": "conference/CT/cocoon.yml",
    "content": "- title: COCOON\n  description: International Computing and Combinatorics Conference\n  sub: CT\n  rank:\n    ccf: B\n    core: N\n    thcpl: N\n  dblp: cocoon\n  confs:\n    - year: 2025\n      id: cocoon25\n      link: https://tcsuestc.com/cocoon2025\n      timeline:\n        - deadline: '2025-03-05 23:59:59'\n      timezone: AoE\n      date: August 15-17, 2025\n      place: Chengdu, China\n    - year: 2026\n      id: cocoon26\n      link: https://event.ntu.edu.sg/cocoon2026\n      timeline:\n        - deadline: '2025-03-04 23:59:59'\n      timezone: AoE\n      date: July 23-25, 2026\n      place: Singapore\n"
  },
  {
    "path": "conference/CT/concur.yml",
    "content": "- title: CONCUR\n  description: 'International Conference on Concurrency Theory'\n  sub: CT\n  rank:\n    ccf: B\n    core: B\n    thcpl: B\n  dblp: concur\n  confs:\n    - year: 2025\n      id: concur25\n      link: https://conferences.au.dk/confest2025/concur\n      timeline:\n        - deadline: '2025-04-09 23:59:59'\n          abstract_deadline: \"2025-04-03 23:59:59\"\n      timezone: AoE\n      date: Aug 26-29, 2025\n      place: Aarhus, Denmark\n    - year: 2026\n      id: concur26\n      link: https://confest-2026.github.io/concur/\n      timeline:\n        - deadline: '2026-04-27 23:59:59'\n          abstract_deadline: \"2026-04-20 23:59:59\"\n      timezone: AoE\n      date: Sep 1-4, 2026\n      place: Liverpool, UK\n"
  },
  {
    "path": "conference/CT/fmcad.yml",
    "content": "- title: FMCAD\n  description: 'Formal Methods in Computer-Aided Design'\n  sub: CT\n  rank:\n    ccf: B\n    core: B\n    thcpl: B\n  dblp: fmcad\n  confs:\n    - year: 2025\n      id: fmcad25\n      link: https://fmcad.forsyte.at/FMCAD25/\n      timeline:\n        - deadline: '2025-04-27 23:59:00'\n          abstract_deadline: \"2025-04-20 23:59:00\"\n      timezone: AoE\n      date: Oct. 6-10, 2025\n      place: Menlo Park, USA\n    - year: 2026\n      id: fmcad26\n      link: https://fmcad.forsyte.at/FMCAD26/\n      timeline:\n        - deadline: '2026-04-26 23:59:59'\n          abstract_deadline: \"2026-05-03 23:59:59\"\n      timezone: AoE\n      date: Sep. 14-18, 2026\n      place: Graz, Austria\n"
  },
  {
    "path": "conference/CT/focs.yml",
    "content": "- title: FOCS\n  description: IEEE Symposium on Foundations of Computer Science\n  sub: CT\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: focs\n  confs:\n    - year: 2024\n      id: focs24\n      link: https://focs.computer.org/2024/\n      timeline:\n        - deadline: '2024-04-04 20:00:00'\n      timezone: UTC-5\n      date: October 27-30, 2024\n      place: Chicago, IL, USA\n    - year: 2025\n      id: focs25\n      link: https://focs.computer.org/2025/\n      timeline:\n        - deadline: '2025-04-03 20:00:00'\n      timezone: UTC-5\n      date: December 14-17, 2025\n      place: Sydney, Australia\n    - year: 2026\n      id: focs26\n      link: https://sanjeevkhanna.org/FOCS2026_CFP.html\n      timeline:\n        - deadline: '2026-04-01 21:00:00'\n      timezone: UTC\n      date: November 8-11, 2026\n      place: New York City, NY, USA\n"
  },
  {
    "path": "conference/CT/hscc.yml",
    "content": "- title: HSCC\n  description: \"International Conference on Hybrid Systems: Computation and Control\"\n  sub: CT\n  rank:\n    ccf: B\n    core: N\n    thcpl: B\n  dblp: hybrid\n  confs:\n    - year: 2026\n      id: hscc26\n      link: https://www.isis.vanderbilt.edu/events/hscciccps-2026\n      timeline:\n        - abstract_deadline: '2025-11-06 23:59:59'\n          deadline: '2025-11-13 23:59:59'\n      timezone: AoE\n      date: May 11-14, 2026\n      place: Saint Malo, France\n"
  },
  {
    "path": "conference/CT/icalp.yml",
    "content": "- title: ICALP\n  description: EATCS International Colloquium on Automata, Languages, and Programming\n  sub: CT\n  rank:\n    ccf: B\n    core: A*\n    thcpl: A\n  dblp: icalp\n  confs:\n    - year: 2025\n      id: icalp25\n      link: https://conferences.au.dk/icalp2025\n      timeline:\n        - deadline: '2025-02-08 23:59:59'\n          comment: 'Submissions'\n      timezone: AoE\n      date: July 8-11, 2025\n      place: Aarhus, Denmark\n    - year: 2026\n      id: icalp26\n      link: https://icalppodcspaa2026.cs.rhul.ac.uk/\n      timeline:\n        - deadline: '2026-02-06 23:59:59'\n      timezone: AoE\n      date: July 6-10, 2026\n      place: London, UK\n"
  },
  {
    "path": "conference/CT/ijcar.yml",
    "content": "- title: IJCAR\n  description: International Joint Conference on Automated Reasoning\n  sub: CT\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: ijcar\n  confs:\n    - year: 2026\n      id: ijcar26\n      link: https://www.floc26.org/ijcar\n      timeline:\n        - abstract_deadline: '2026-02-06 23:59:59'\n          deadline: '2025-02-15 23:59:59'\n      timezone: AoE\n      date: July 26-29, 2026\n      place: Lisbon, Portugal\n"
  },
  {
    "path": "conference/CT/isit.yml",
    "content": "- title: ISIT\n  description: IEEE International Symposium on Information Theory\n  sub: CT\n  rank:\n    ccf: N\n    core: B\n    thcpl: B\n  dblp: isit\n  confs:\n    - year: 2026\n      id: isit26\n      link: https://2026.ieee-isit.org/\n      timeline:\n        - deadline: '2026-01-16 23:59:59'\n      timezone: AoE\n      date: June 28 - July 3, 2026\n      place: Guangzhou, China\n"
  },
  {
    "path": "conference/CT/lics.yml",
    "content": "- title: LICS\n  description: IEEE Symposium on Logic in Computer Science\n  sub: CT\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: lics\n  confs:\n    - year: 2023\n      id: lics\n      link: https://lics.siglog.org/lics23/\n      timeline:\n        - deadline: '2023-01-23 23:59:59'\n      timezone: AoE\n      date: June 26-29, 2023\n      place: Boston University, USA\n    - year: 2026\n      id: lics26\n      link: https://lics.siglog.org/lics26/\n      timeline:\n        - abstract_deadline: '2026-01-15 23:59:59'\n          deadline: '2026-01-22 23:59:59'\n      timezone: AoE\n      date: July 20-23, 2026\n      place: Lisbon, Portugal\n"
  },
  {
    "path": "conference/CT/sat.yml",
    "content": "- title: SAT\n  description: International Conference on Theory and Applications of Satisfiability Testing\n  sub: CT\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: sat\n  confs:\n    - year: 2026\n      id: sat26\n      link: https://satisfiability.org/SAT26/\n      timeline:\n        - abstract_deadline: '2026-03-02 23:59:59'\n          deadline: '2026-03-10 23:59:59'\n      timezone: AoE\n      date: July 20 - July 23, 2026\n      place: Lisbon, Portugal\n"
  },
  {
    "path": "conference/CT/setta.yml",
    "content": "- title: SETTA\n  description: 'Symposium on Dependable Software Engineering: Theories, Tools and Applications'\n  sub: CT\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: setta\n  confs:\n    - year: 2024\n      id: setta24\n      link: https://setta2024.cs.cityu.edu.hk\n      timeline:\n        - abstract_deadline: '2024-08-16 23:59:59'\n          deadline: '2024-08-28 23:59:59'\n          comment: 'deadline is extended from Aug. 23'\n      timezone: AoE\n      date: Nov 26-28, 2024\n      place: Hong Kong, China\n    - year: 2025\n      id: setta25\n      link: https://www.setta2025.uk\n      timeline:\n        - deadline: '2025-04-30 23:59:59'\n          comment: 'Round 1 Paper Submission'\n        - deadline: '2025-08-20 23:59:59'\n          comment: 'Round 2 Paper Submission'\n      timezone: AoE\n      date: Dec, 2025\n      place: Oxford, UK\n"
  },
  {
    "path": "conference/CT/socg.yml",
    "content": "- title: SOCG\n  description: International Symposium on Computational Geometry\n  sub: CT\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: compgeom\n  confs:\n    - year: 2025\n      id: socg25\n      link: https://socg25.github.io/\n      timeline:\n        - abstract_deadline: '2024-11-06 23:59:00'\n          deadline: '2024-12-03 23:59:00'\n      timezone: AoE\n      date: June 23-27, 2025\n      place: Kanazawa, Japan\n    - year: 2026\n      id: socg26\n      link: https://cgweek26.computational-geometry.org/contribute/\n      timeline:\n        - abstract_deadline: '2025-11-25 23:59:00'\n          deadline: '2025-12-02 23:59:00'\n      timezone: AoE\n      date: June 2-5, 2026\n      place: New Brunswick, New Jersey, USA\n"
  },
  {
    "path": "conference/CT/soda.yml",
    "content": "- title: SODA\n  description: ACM-SIAM Symposium on Discrete Algorithms\n  sub: CT\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: soda\n  confs:\n    - year: 2025\n      id: soda25\n      link: https://www.siam.org/conferences/cm/conference/soda25\n      timeline:\n        - deadline: '2024-07-05 23:59:59'\n      timezone: UTC-12\n      date: January 12-15, 2025\n      place: New Orleans, Louisiana, USA\n    - year: 2026\n      id: soda26\n      link: https://www.siam.org/conferences-events/siam-conferences/soda26/\n      timeline:\n        - deadline: '2025-07-14 23:59:59'\n      timezone: UTC-12\n      date: January 11-14, 2026\n      place: Hyatt Regency Vancouver, Vancouver, Canada\n    - year: 2027\n      id: soda27\n      link: https://www.siam.org/conferences-events/siam-conferences/soda27/\n      timeline:\n        - deadline: '2026-07-09 23:59:59'\n      timezone: UTC-12\n      date: January 24-27, 2027\n      place: Philadelphia, Pennsylvania, USA\n"
  },
  {
    "path": "conference/CT/stoc.yml",
    "content": "- title: STOC\n  description: ACM Symposium on the Theory of Computing\n  sub: CT\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: stoc\n  confs:\n    - year: 2021\n      id: stoc21\n      link: http://acm-stoc.org/stoc2021/\n      timeline:\n        - deadline: '2020-11-06 11:59:59'\n      timezone: UTC-5\n      date: June 21-25, 2021\n      place: Virtual\n    - year: 2025\n      id: stoc25\n      link: http://acm-stoc.org/stoc2025/\n      timeline:\n        - deadline: '2024-11-04 19:59:59'\n      timezone: UTC-5\n      date: June 23-27, 2025\n      place: Prague, Czech Republic\n    - year: 2026\n      id: stoc26\n      link: https://acm-stoc.org/stoc2026/\n      timeline:\n        - deadline: '2025-11-04 16:59:59'\n      timezone: UTC-5\n      date: June 22-26, 2026\n      place: Salt Lake City, Utah, USA\n"
  },
  {
    "path": "conference/DB/adma.yml",
    "content": "- title: ADMA\n  description: The International Conference on Advanced Data Mining and Applications\n  sub: DB\n  rank:\n    ccf: C\n    core: C\n    thcpl: N\n  dblp: adma\n  confs:\n    - year: 2023\n      id: adma23\n      link: https://adma2023.uqcloud.net/index.html\n      timeline:\n        - abstract_deadline: '2023-04-08 23:59:59'\n          deadline: '2023-04-15 23:59:59'\n      timezone: UTC-7\n      date: August 21 - 23, 2023\n      place: Shenyang, China\n    - year: 2024\n      id: adma24\n      link: https://adma2024.github.io\n      timeline:\n        - deadline: '2024-06-01 23:59:59'\n      timezone: AoE\n      date: December 3 - 5, 2024\n      place: Sydney, Australia\n    - year: 2025\n      id: adma25\n      link: https://adma2025.github.io\n      timeline:\n        - deadline: '2025-05-08 23:59:59'\n      timezone: AoE\n      date: October 22 - 24, 2025\n      place: Kyoto, Japan\n    - year: 2026\n      id: adma26\n      link: https://adma2026.github.io/\n      timeline:\n        - deadline: 'TBD'\n      timezone: AoE\n      date: November 1 - 3, 2026\n      place: Hong Kong, China\n"
  },
  {
    "path": "conference/DB/apweb.yml",
    "content": "- title: APWeb-WAIM\n  description: APWeb-WAIM joint international conference on Web and Big Data\n  sub: DB\n  rank:\n    ccf: C\n    core: C\n    thcpl: N\n  dblp: APWeb\n  confs:\n    - year: 2024\n      id: apweb24\n      link: https://apweb2024.zjnu.edu.cn/\n      timeline:\n        - deadline: '2024-03-20 23:59:59'\n          comment: first round\n        - deadline: '2024-05-23 23:59:59'\n          comment: second round\n      timezone: UTC-12\n      date: August 30 - Septemper 1, 2024\n      place: Jinhua, China\n    - year: 2025\n      id: apweb25\n      link: https://apweb2025.sau.edu.cn/\n      timeline:\n        - deadline: '2025-03-02 23:59:59'\n          comment: first round\n        - deadline: '2025-05-04 23:59:59'\n          comment: second round\n      timezone: UTC-8\n      date: August 28-30, 2025\n      place: Shenyang, China\n    - year: 2026\n      id: apweb26\n      link: https://conferences.sigappfr.org/apweb2026/\n      timeline:\n        - deadline: '2026-03-31 23:59:59'\n          comment: first round\n        - deadline: '2026-05-04 23:59:59'\n          comment: second round\n      timezone: AoE\n      date: September 7-9, 2026\n      place: Danang, Vietnam\n"
  },
  {
    "path": "conference/DB/cidr.yml",
    "content": "- title: CIDR\n  description: International Conference on Innovative Data Systems Research\n  sub: DB\n  rank:\n    ccf: B\n    core: A\n    thcpl: N\n  dblp: cidr\n  confs:\n    - year: 2024\n      id: cidr24\n      link: https://www.cidrdb.org/cidr2024/\n      timeline:\n        - deadline: '2023-07-27 23:59:59'\n      timezone: UTC-8\n      date: Jan 14-17, 2024\n      place: Chaminade, USA\n    - year: 2025\n      id: cidr25\n      link: https://www.cidrdb.org/cidr2025/\n      timeline:\n        - deadline: '2024-08-02 23:59:59'\n      timezone: UTC-7\n      date: Jan 19-22, 2025\n      place: Amsterdam, The Netherlands\n    - year: 2026\n      id: cidr26\n      link: https://www.cidrdb.org/cidr2026/\n      timeline:\n        - deadline: '2025-08-05 23:59:59'\n      timezone: UTC-7\n      date: Jan 18-21, 2026\n      place: Chaminade Resort & Spa, Santa Cruz, California, USA\n"
  },
  {
    "path": "conference/DB/cikm.yml",
    "content": "- title: CIKM\n  description: ACM International Conference on Information and Knowledge Management\n  sub: DB\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: cikm\n  confs:\n    - year: 2020\n      id: cikm20\n      link: https://www.cikm2020.org/\n      timeline:\n        - deadline: '2020-05-01 23:59:59'\n      timezone: UTC-12\n      date: October 19-23, 2021\n      place: Galway, Ireland\n    - year: 2021\n      id: cikm21\n      link: https://www.cikm2021.org/\n      timeline:\n        - deadline: '2021-05-26 23:59:59'\n      timezone: AoE\n      date: November 01-05, 2021\n      place: Queensland, Australia\n    - year: 2022\n      id: cikm22\n      link: https://www.cikm2022.org/\n      timeline:\n        - abstract_deadline: '2022-05-12 23:59:59'\n          deadline: '2022-05-19 23:59:59'\n      timezone: AoE\n      date: October 17-22, 2022\n      place: Atlanta, Georgia, USA\n    - year: 2023\n      id: cikm23\n      link: https://uobevents.eventsair.com/cikm2023/\n      timeline:\n        - abstract_deadline: '2023-05-26 23:59:59'\n          deadline: '2023-06-02 23:59:59'\n      timezone: AoE\n      date: October 21-25, 2023\n      place: Birmingham, UK\n    - year: 2024\n      id: cikm24\n      link: https://cikm2024.org/\n      timeline:\n        - abstract_deadline: '2024-05-13 23:59:59'\n          deadline: '2024-05-20 23:59:59'\n      timezone: AoE\n      date: October 21-25, 2024\n      place: Boise, Idaho, USA\n    - year: 2025\n      id: cikm25\n      link: https://cikm2025.org\n      timeline:\n        - abstract_deadline: '2025-05-16 23:59:59'\n          deadline: '2025-05-23 23:59:59'\n      timezone: AoE\n      date: November 10-14, 2025\n      place: Coex, Seoul, Korea\n    - year: 2026\n      id: cikm26\n      link: https://cikm2026.diag.uniroma1.it/\n      timeline:\n        - abstract_deadline: '2026-05-18 23:59:59'\n          deadline: '2026-05-25 23:59:59'\n      timezone: AoE\n      date: November 7-11, 2026\n      place: Rome, Italy\n"
  },
  {
    "path": "conference/DB/dasfaa.yml",
    "content": "- title: DASFAA\n  description: Database Systems for Advanced Applications\n  sub: DB\n  rank:\n    ccf: B\n    core: B\n    thcpl: B\n  dblp: dasfaa\n  confs:\n    - year: 2021\n      id: dasfaa21\n      link: http://dm.iis.sinica.edu.tw/DASFAA2021/\n      timeline:\n        - deadline: '2020-10-28 23:59:59'\n      timezone: UTC-7\n      date: April 11-14, 2021\n      place: Taipei, China\n    - year: 2022\n      id: dasfaa22\n      link: https://www.dasfaa2022.org/\n      timeline:\n        - abstract_deadline: '2021-10-28 23:59:59'\n          deadline: '2021-11-04 23:59:59'\n      timezone: AoE\n      date: April 11-14, 2022\n      place: Hyderabad, India\n    - year: 2023\n      id: dasfaa23\n      link: http://www.tjudb.cn/dasfaa2023/\n      timeline:\n        - abstract_deadline: '2022-10-28 23:59:59'\n          deadline: '2022-11-04 23:59:59'\n      timezone: AoE\n      date: April 17-20, 2023\n      place: Tianjin, China\n    - year: 2024\n      id: dasfaa24\n      link: https://www.dasfaa2024.org/\n      timeline:\n        - abstract_deadline: '2023-12-15 23:59:59'\n          deadline: '2023-12-22 23:59:59'\n      timezone: AoE\n      date: July 3-5, 2024\n      place: Gifu, Japan\n    - year: 2025\n      id: dasfaa25\n      link: https://dasfaa2025.github.io\n      timeline:\n        - deadline: '2024-11-25 23:59:59'\n      timezone: AoE\n      date: May 25-28, 2025\n      place: Singapore\n    - year: 2026\n      id: dasfaa26\n      link: https://dasfaa2026.github.io/\n      timeline:\n        - abstract_deadline: '2025-10-20 23:59:59'\n          deadline: '2025-10-27 23:59:59'\n      timezone: AoE\n      date: April 21-24, 2026\n      place: Jeju Island, South Korea\n"
  },
  {
    "path": "conference/DB/ecir.yml",
    "content": "- title: ECIR\n  description: European Conference on Information Retrieval\n  sub: DB\n  rank:\n    ccf: C\n    core: A\n    thcpl: B\n  dblp: ecir\n  confs:\n    - year: 2025\n      id: ecir25\n      link: https://ecir2025.eu/key-dates/\n      timeline:\n        - abstract_deadline: '2024-10-02 23:59:59'\n          deadline: '2024-10-09 23:59:59'\n      timezone: UTC-12\n      date: April 06 - April 10, 2025\n      place: Lucca, Italy\n    - year: 2026\n      id: ecir26\n      link: https://ecir2026.eu/\n      timeline:\n        - abstract_deadline: '2025-09-25 23:59:59'\n          deadline: '2025-10-02 23:59:59'\n      timezone: AoE\n      date: March 30 - April 01, 2026\n      place: Delft, The Netherlands\n"
  },
  {
    "path": "conference/DB/edbt.yml",
    "content": "- title: EDBT\n  description: International Conference on Extending Database Technology\n  sub: DB\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: edbt\n  confs:\n    - year: 2022\n      id: edbt22\n      link: https://conferences.inf.ed.ac.uk/edbticdt2022/\n      timeline:\n        - deadline: '2021-10-01 23:59:59'\n      timezone: AoE\n      date: Mar 29-April 01, 2022\n      place: Edinburgh, UK\n    - year: 2023\n      id: edbt23\n      link: http://edbticdt2023.cs.uoi.gr/\n      timeline:\n        - deadline: '2022-02-15 23:59:59'\n        - deadline: '2022-06-01 23:59:59'\n        - deadline: '2022-09-30 23:59:59'\n      timezone: AoE\n      date: March 28-31, 2023\n      place: Ioannina, Greece\n    - year: 2024\n      id: edbt24\n      link: https://dastlab.github.io/edbticdt2024/\n      timeline:\n        - deadline: '2023-02-15 23:59:59'\n        - deadline: '2023-06-01 23:59:59'\n        - deadline: '2023-10-03 23:59:59'\n      timezone: AoE\n      date: March 25-28, 2024\n      place: Paestum, Italy\n    - year: 2025\n      id: edbt25\n      link: https://edbticdt2025.upc.edu/\n      timeline:\n        - deadline: '2024-02-07 23:59:59'\n        - deadline: '2024-06-05 23:59:59'\n        - deadline: '2024-10-09 23:59:59'\n      timezone: AoE\n      date: March 25-28, 2025\n      place: Barcelona, Spain\n    - year: 2026\n      id: edbt26\n      link: https://edbticdt2026.github.io/\n      timeline:\n        - deadline: '2025-02-05 23:59:59'\n        - deadline: '2025-06-04 23:59:59'\n        - deadline: '2025-10-08 23:59:59'\n      timezone: AoE\n      date: March 24-27, 2026\n      place: Tampere, Finland\n"
  },
  {
    "path": "conference/DB/eusipco.yml",
    "content": "- title: EUSIPCO\n  description: European Signal Processing Conference\n  sub: SE\n  rank:\n    ccf: N\n    core: N\n    thcpl: N\n  dblp: eusipcolyon\n  confs:\n    - year: 2024\n      id: eusipco2024\n      link: https://eusipcolyon.sciencesconf.org/\n      timeline:\n        - deadline: '2024-03-14 18:00:00'\n          comment: first round\n      timezone: UTC-8\n      date: August 26-30, 2024\n      place: LYON, FRANCE\n    - year: 2025\n      id: eusipco2025\n      link: https://eusipco2025.org/\n      timeline:\n        - deadline: '2025-03-13 23:59:59'\n      timezone: AoE\n      date: September 8-12, 2025\n      place: Isola delle Femmine, Palermo, Italy\n    - year: 2026\n      id: eusipco26\n      link: https://eusipco2026.org/\n      timeline:\n        - deadline: '2026-02-13 23:59:59'\n      timezone: AoE\n      date: August 31 - September 4, 2026\n      place: Bruges, Belgium\n"
  },
  {
    "path": "conference/DB/icde.yml",
    "content": "- title: ICDE\n  description: IEEE International Conference on Data Engineering\n  sub: DB\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: icde\n  confs:\n    - year: 2021\n      id: icde21\n      link: https://icde2021.gr/\n      timeline:\n        - deadline: '2020-10-01 23:59:59'\n      timezone: AoE\n      date: April 19-22, 2021\n      place: Virtual\n    - year: 2022\n      id: icde22\n      link: https://icde2022.ieeecomputer.my/important-dates/\n      timeline:\n        - deadline: '2021-07-21 23:59:59'\n          comment: first round\n        - deadline: '2021-11-17 23:59:59'\n          comment: second round\n      timezone: UTC-8\n      date: May 9-12, 2022\n      place: Kuala Lumpur, Malaysia\n    - year: 2023\n      id: icde23\n      link: https://icde2023.ics.uci.edu/\n      timeline:\n        - deadline: '2022-04-25 23:59:59'\n          comment: first round\n        - deadline: '2022-07-08 23:59:59'\n          comment: second round\n        - deadline: '2022-10-08 23:59:59'\n          comment: third round\n      timezone: UTC-8\n      date: April 3-7, 2023\n      place: Anaheim, California, USA\n    - year: 2024\n      id: icde24\n      link: https://icde2024.github.io/\n      timeline:\n        - deadline: '2023-07-28 23:59:59'\n          comment: first round\n        - deadline: '2023-12-03 23:59:59'\n          comment: second round\n      timezone: AoE\n      date: April 16-19, 2024\n      place: Utrecht, Netherlands\n    - year: 2025\n      id: icde25\n      link: https://ieee-icde.org/2025/\n      timeline:\n        - deadline: '2024-08-02 23:59:59'\n          comment: first round\n        - deadline: '2024-11-25 23:59:59'\n          comment: second round\n      timezone: AoE\n      date: May 19-23, 2025\n      place: Hong Kong, China\n    - year: 2026\n      id: icde26\n      link: https://icde2026.github.io/\n      timeline:\n        - deadline: '2025-06-18 17:00:00'\n          comment: first round\n        - deadline: '2025-10-27 17:00:00'\n          comment: second round\n      timezone: UTC-7\n      date: May 4-8, 2026\n      place: Montréal, Canada\n    - year: 2027\n      id: icde27\n      link: https://icde2027.github.io/\n      timeline:\n        - deadline: '2026-06-11 17:00:00'\n          comment: first round\n        - deadline: '2026-11-11 17:00:00'\n          comment: second round\n      timezone: UTC-7\n      date: May 17-21, 2027\n      place: Copenhagen, Denmark\n"
  },
  {
    "path": "conference/DB/icdm.yml",
    "content": "- title: ICDM\n  description: IEEE International Conference on Data Mining\n  sub: DB\n  rank:\n    ccf: B\n    core: A*\n    thcpl: B\n  dblp: icdm\n  confs:\n    - year: 2021\n      id: icdm21\n      link: https://icdm2021.auckland.ac.nz/\n      timeline:\n        - deadline: '2021-06-12 14:59:00'\n      timezone: UTC+8\n      date: December 7-10, 2021\n      place: Auckland, New Zealand\n    - year: 2022\n      id: icdm22\n      link: https://icdm22.cse.usf.edu/key-dates.html\n      timeline:\n        - deadline: '2022-06-10 23:59:00'\n      timezone: UTC-7\n      date: November 30 - December 3\n      place: Orlando, FL, USA\n    - year: 2023\n      id: icdm23\n      link: http://cloud-conf.net/icdm2023/index.html\n      timeline:\n        - deadline: '2023-07-01 23:59:59'\n      timezone: UTC+8\n      date: December 1-4, 2023\n      place: Shanghai, China\n    - year: 2024\n      id: icdm2024\n      link: https://icdm2024.org/dates/\n      timeline:\n        - deadline: '2024-06-14 23:59:59'\n      timezone: AoE\n      date: December 9-12, 2024\n      place: Abu Dhabi, UAE\n    - year: 2025\n      id: icdm2025\n      link: https://www3.cs.stonybrook.edu/~icdm2025/cfp.html\n      timeline:\n        - deadline: '2025-06-06 23:59:59'\n      timezone: AoE\n      date: November 12-15, 2025\n      place: Washington DC, USA\n    - year: 2026\n      id: icdm2026\n      link: http://icdm2026.neu.edu.cn/\n      timeline:\n        - abstract_deadline: '2026-05-30 23:59:59'\n          deadline: '2026-06-06 23:59:59'\n      timezone: AoE\n      date: November 12-15, 2026\n      place: Shenyang, China\n"
  },
  {
    "path": "conference/DB/icdt.yml",
    "content": "- title: ICDT\n  description: International Conference on Database Theory\n  sub: DB\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: icdt\n  confs:\n    - year: 2022\n      id: icdt22\n      link: https://conferences.inf.ed.ac.uk/edbticdt2022/\n      timeline:\n        - abstract_deadline: '2021-09-06 23:59:59'\n          deadline: '2021-09-13 23:59:59'\n      timezone: AoE\n      date: Mar 29-April 01, 2022\n      place: Edinburgh, UK\n    - year: 2025\n      id: icdt25\n      link: https://edbticdt2025.upc.edu/\n      timeline:\n        - abstract_deadline: '2024-03-11 23:59:59'\n          deadline: '2024-03-18 23:59:59'\n        - abstract_deadline: '2024-09-12 23:59:59'\n          deadline: '2024-09-19 23:59:59'\n      timezone: AoE\n      date: March 25-28, 2025\n      place: Barcelona, Spain\n    - year: 2026\n      id: icdt26\n      link: https://edbticdt2026.github.io/\n      timeline:\n        - abstract_deadline: '2025-03-13 23:59:59'\n          deadline: '2025-03-20 23:59:59'\n        - abstract_deadline: '2025-09-03 23:59:59'\n          deadline: '2025-09-10 23:59:59'\n      timezone: AoE\n      date: March 24-27, 2026\n      place: Tampere, Finland\n"
  },
  {
    "path": "conference/DB/iswc.yml",
    "content": "- title: ISWC\n  description: International Semantic Web Conference\n  sub: DB\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: semweb\n  confs:\n    - year: 2022\n      id: iswc22\n      link: https://iswc2022.semanticweb.org/\n      timeline:\n        - deadline: '2022-04-28 23:59:59'\n          comment: Abstracts Due\n        - deadline: '2022-05-05 23:59:59'\n          comment: Full Papers Due\n      timezone: AoE\n      date: October 23-27, 2022\n      place: Hangzhou, China\n    - year: 2023\n      id: iswc23\n      link: https://iswc2023.semanticweb.org\n      timeline:\n        - abstract_deadline: '2023-05-02 23:59:59'\n          deadline: '2023-05-09 23:59:59'\n      timezone: AoE\n      date: November 6-10, 2023\n      place: Athens, Greece\n    - year: 2024\n      id: iswc24\n      link: https://iswc2024.semanticweb.org/\n      timeline:\n        - abstract_deadline: '2024-04-10 23:59:59'\n          deadline: '2024-04-17 23:59:59'\n      timezone: AoE\n      date: November 11-15, 2024\n      place: Baltimore, USA\n    - year: 2025\n      id: iswc25\n      link: https://iswc2025.semanticweb.org\n      timeline:\n        - abstract_deadline: '2025-05-06 23:59:59'\n          deadline: '2025-05-13 23:59:59'\n      timezone: AoE\n      date: November 2-6, 2025\n      place: Nara, Japan\n    - year: 2026\n      id: iswc26\n      link: https://iswc2026.semanticweb.org/\n      timeline:\n        - abstract_deadline: '2026-05-02 23:59:59'\n          deadline: '2026-05-07 23:59:59'\n      timezone: AoE\n      date: October 25-29, 2026\n      place: Bari, Italy\n"
  },
  {
    "path": "conference/DB/pakdd.yml",
    "content": "- title: PAKDD\n  description: Pacific-Asia Conference on Knowledge Discovery and Data Mining\n  sub: DB\n  rank:\n    ccf: C\n    core: B\n    thcpl: N\n  dblp: pakdd\n  confs:\n    - year: 2025\n      id: pakdd25\n      link: https://pakdd2025.org\n      timeline:\n        - deadline: '2024-11-30 23:59:59'\n      timezone: UTC-8\n      date: June 10-13, 2025\n      place: Sydney, Australia\n    - year: 2026\n      id: pakdd26\n      link: https://www.pakdd2026.org/\n      timeline:\n        - deadline: '2025-11-15 23:59:59'\n      timezone: UTC-8\n      date: June 9-12, 2026\n      place: Hong Kong, China\n"
  },
  {
    "path": "conference/DB/pkdd.yml",
    "content": "- title: ECML-PKDD\n  description: European Conference on Machine Learning and 25th Principles and Practice of Knowledge Discovery in Databases\n  sub: DB\n  rank:\n    ccf: B\n    core: A\n    thcpl: N\n  dblp: pkdd\n  confs:\n    - year: 2021\n      id: ecmlpkdd21\n      link: https://2021.ecmlpkdd.org/\n      timeline:\n        - abstract_deadline: '2021-03-26 23:59:59'\n          deadline: '2021-04-02 23:59:59'\n      timezone: AoE\n      date: September 13-17, 2021\n      place: Virtual\n    - year: 2022\n      id: ecmlpkdd22\n      link: https://2022.ecmlpkdd.org/index.php/key-dates-deadlines/\n      timeline:\n        - abstract_deadline: '2022-03-30 23:59:59'\n          deadline: '2022-04-06 23:59:59'\n      timezone: AoE\n      date: September 19-23, 2022\n      place: Grenoble, France\n    - year: 2023\n      id: ecmlpkdd23\n      link: https://2023.ecmlpkdd.org/submissions/key-dates-deadlines/\n      timeline:\n        - abstract_deadline: '2023-03-26 23:59:59'\n          deadline: '2023-04-02 23:59:59'\n      timezone: AoE\n      date: September 18-22, 2023\n      place: Turin, Italy\n    - year: 2024\n      id: ecmlpkdd2024\n      link: https://2024.ecmlpkdd.org/submissions/key-dates-and-deadlines/\n      timeline:\n        - abstract_deadline: '2024-03-15 23:59:59'\n          deadline: '2024-03-22 23:59:59'\n      timezone: AoE\n      date: September 9-13, 2024\n      place: Vilnius, Lithuania\n    - year: 2025\n      id: ecmlpkdd2025\n      link: https://ecmlpkdd.org/2025/\n      timeline:\n        - abstract_deadline: '2025-03-07 23:59:59'\n          deadline: '2025-03-14 23:59:59'\n      timezone: AoE\n      date: September 15-19, 2025\n      place: Porto, Portugal\n    - year: 2026\n      id: ecmlpkdd2026\n      link: https://ecmlpkdd.org/2026/\n      timeline:\n        - abstract_deadline: '2026-03-05 23:59:59'\n          deadline: '2026-03-12 23:59:59'\n      timezone: AoE\n      date: September 7-11, 2026\n      place: Naples, Italy\n"
  },
  {
    "path": "conference/DB/pods/pods.yml",
    "content": "- title: PODS\n  description: ACM Symposium on Principles of Database Systems\n  sub: DB\n  rank:\n    ccf: B\n    core: A*\n    thcpl: A\n  dblp: pods\n  confs:\n    - year: 2025\n      id: pods25\n      link: https://2025.sigmod.org/\n      timeline:\n        - abstract_deadline: '2024-05-31 17:00:00'\n          deadline: '2024-06-07 17:00:00'\n          comment: 'FIRST SUBMISSION CYCLE'\n        - abstract_deadline: '2024-12-02 17:00:00'\n          deadline: '2024-12-09 17:00:00'\n          comment: 'SECOND SUBMISSION CYCLE'\n      timezone: UTC-7\n      date: June 22-27, 2025\n      place: Berlin, Germany\n"
  },
  {
    "path": "conference/DB/recsys.yml",
    "content": "- title: RecSys\n  description: ACM Conference on Recommender Systems\n  sub: DB\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: recsys\n  confs:\n    - year: 2023\n      id: recsys23\n      link: https://recsys.acm.org/recsys23\n      timeline:\n        - abstract_deadline: '2023-04-14 23:59:59'\n          deadline: '2023-04-21 23:59:59'\n      timezone: AoE\n      date: September 18-22, 2023\n      place: Singapore\n    - year: 2024\n      id: recsys24\n      link: https://recsys.acm.org/recsys24\n      timeline:\n        - abstract_deadline: '2024-04-22 23:59:59'\n          deadline: '2024-04-29 23:59:59'\n      timezone: AoE\n      date: October 14-18, 2024\n      place: Bari, Italy\n    - year: 2025\n      id: recsys25\n      link: https://recsys.acm.org/recsys25\n      timeline:\n        - abstract_deadline: '2025-04-01 23:59:59'\n          deadline: '2025-04-08 23:59:59'\n      timezone: AoE\n      date: September 22-26, 2025\n      place: Prague, Czech Republic\n    - year: 2026\n      id: recsys26\n      link: https://recsys.acm.org/recsys26\n      timeline:\n        - abstract_deadline: '2026-04-14 23:59:59'\n          deadline: '2026-04-21 23:59:59'\n      timezone: AoE\n      date: September 28 - October 2, 2026\n      place: Minneapolis, Minnesota, USA\n"
  },
  {
    "path": "conference/DB/sdm.yml",
    "content": "- title: SDM\n  description: SIAM International Conference on Data Mining\n  sub: DB\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: sdm\n  confs:\n    - year: 2024\n      id: sdm2024\n      link: https://www.siam.org/conferences/cm/conference/sdm24\n      timeline:\n        - deadline: '2023-09-16 15:00:00'\n      timezone: UTC-8\n      date: April 18-20, 2024\n      place: Houston, TX, USA\n    - year: 2025\n      id: sdm2025\n      link: https://www.siam.org/conferences-events/siam-conferences/sdm25\n      timeline:\n        - abstract_deadline: '2024-09-27 23:59:59'\n          deadline: '2024-10-04 23:59:59'\n      timezone: UTC-8\n      date: May 1-3, 2025\n      place: Alexandria, Virginia, USA\n"
  },
  {
    "path": "conference/DB/sigir.yml",
    "content": "- title: SIGIR\n  description: International Conference on Research on Development in Information Retrieval\n  sub: DB\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: sigir\n  confs:\n    - year: 2021\n      id: sigir21\n      link: http://sigir.org/sigir2021/\n      timeline:\n        - abstract_deadline: '2021-02-02 23:59:59'\n          deadline: '2021-02-09 23:59:59'\n      timezone: AoE\n      date: July 11-15, 2021\n      place: Virtual\n    - year: 2022\n      id: sigir22\n      link: https://sigir.org/sigir2022/\n      timeline:\n        - abstract_deadline: '2022-01-21 23:59:59'\n          deadline: '2022-01-28 23:59:59'\n      timezone: AoE\n      date: July 11-15, 2022\n      place: Madrid\n    - year: 2023\n      id: sigir23\n      link: https://sigir.org/sigir2023/\n      timeline:\n        - abstract_deadline: '2023-01-24 23:59:59'\n          deadline: '2023-01-31 23:59:59'\n      timezone: AoE\n      date: July 23-27, 2023\n      place: Taipei, Taiwan\n    - year: 2024\n      id: sigir24\n      link: https://sigir-2024.github.io/index.html\n      timeline:\n        - abstract_deadline: '2024-01-19 23:59:59'\n          deadline: '2024-01-25 23:59:59'\n      timezone: AoE\n      date: July 14-18, 2024\n      place: Washington D.C., USA\n    - year: 2025\n      id: sigir25\n      link: https://sigir2025.dei.unipd.it/\n      timeline:\n        - abstract_deadline: '2025-01-16 23:59:59'\n          deadline: '2025-01-23 23:59:59'\n      timezone: AoE\n      date: July 13-18, 2025\n      place: Padova, Italy\n    - year: 2026\n      id: sigir26\n      link: https://sigir2026.org/en-AU\n      timeline:\n        - abstract_deadline: '2026-01-15 23:59:59'\n          deadline: '2026-01-22 23:59:59'\n      timezone: AoE\n      date: July 20-24, 2026\n      place: Melbourne, Australia\n"
  },
  {
    "path": "conference/DB/sigkdd.yml",
    "content": "- title: SIGKDD\n  description: ACM Knowledge Discovery and Data Mining\n  sub: DB\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: kdd\n  confs:\n    - year: 2021\n      id: sigkdd21\n      link: https://www.kdd.org/kdd2021/\n      timeline:\n        - deadline: '2021-02-08 23:59:59'\n      timezone: AoE\n      date: August 14-18, 2021\n      place: Singapore\n    - year: 2022\n      id: sigkdd22\n      link: https://www.kdd.org/kdd2022/\n      timeline:\n        - deadline: '2022-02-10 23:59:59'\n      timezone: AoE\n      date: August 14-18, 2022\n      place: Washington DC Convention Center, USA\n    - year: 2023\n      id: sigkdd23\n      link: https://kdd.org/kdd2023/\n      timeline:\n        - deadline: '2023-02-02 23:59:59'\n      timezone: AoE\n      date: August 6-10, 2023\n      place: Long Beach Convention & Entertainment Center, USA\n    - year: 2024\n      id: sigkdd24\n      link: https://kdd2024.kdd.org/research-track-call-for-papers/\n      timeline:\n        - abstract_deadline: '2024-02-01 23:59:59'\n          deadline: '2024-02-08 23:59:59'\n          # comment: '1st deadline'\n      timezone: AoE\n      date: August 25-29, 2024\n      place: Barcelona, Spain\n    - year: 2025\n      id: sigkdd25\n      link: https://kdd2025.kdd.org/\n      timeline:\n        - abstract_deadline: '2024-08-01 23:59:59'\n          deadline: '2024-08-08 23:59:59'\n          comment: 1st round of 2 total rounds\n        - abstract_deadline: '2025-02-03 23:59:59'\n          deadline: '2025-02-10 23:59:59'\n          comment: 2nd round of 2 total rounds\n      timezone: AoE\n      date: August 3-7, 2025\n      place: Toronto, ON, Canada\n    - year: 2026\n      id: sigkdd26\n      link: https://kdd2026.kdd.org/\n      timeline:\n        - abstract_deadline: '2025-07-24 23:59:59'\n          deadline: '2025-07-31 23:59:59'\n          comment: 1st round of 2 total rounds\n        - abstract_deadline: '2026-02-01 23:59:59'\n          deadline: '2026-02-08 23:59:59'\n          comment: 2nd round of 2 total rounds\n      timezone: AoE\n      date: August 9-13, 2026\n      place: Jeju, Korea\n"
  },
  {
    "path": "conference/DB/sigmod.yml",
    "content": "- title: SIGMOD\n  description: ACM Conference on Management of Data\n  sub: DB\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: sigmod\n  confs:\n    - year: 2021\n      id: sigmod21\n      link: http://2021.sigmod.org/\n      timeline:\n        - deadline: '2020-09-22 17:00:00'\n          comment: second round\n      timezone: UTC-8\n      date: June 20-25, 2021\n      place: Xi'an, China\n    - year: 2022\n      id: sigmod22\n      link: http://2022.sigmod.org/\n      timeline:\n        - deadline: '2021-07-02 17:00:00'\n          comment: first round\n        - deadline: '2021-09-15 17:00:00'\n          comment: second round\n      timezone: UTC-8\n      date: June 12-17, 2022\n      place: Philadelphia, PA, USA\n    - year: 2023\n      id: sigmod23\n      link: http://2023.sigmod.org/\n      timeline:\n        - deadline: '2022-04-15 23:59:00'\n          comment: first round\n        - deadline: '2022-07-15 23:59:00'\n          comment: second round\n        - deadline: '2022-10-15 23:59:00'\n          comment: third round\n      timezone: UTC-8\n      date: June 18-23, 2022\n      place: Seattle, WA, USA\n    - year: 2024\n      id: sigmod24\n      link: http://2024.sigmod.org/\n      timeline:\n        - deadline: '2023-01-15 23:59:00'\n          comment: round 1\n        - deadline: '2023-04-15 23:59:00'\n          comment: round 2\n        - deadline: '2023-07-15 23:59:00'\n          comment: round 3\n        - deadline: '2023-10-15 23:59:00'\n          comment: round 4\n      timezone: UTC-7\n      date: June 11-16, 2024\n      place: Santiago, Chile\n    - year: 2025\n      id: sigmod25\n      link: https://2025.sigmod.org/\n      timeline:\n        - abstract_deadline: '2024-01-10 23:59:00'\n          deadline: '2024-01-17 23:59:00'\n          comment: round 1\n        - abstract_deadline: '2024-04-10 23:59:00'\n          deadline: '2024-04-17 23:59:00'\n          comment: round 2\n        - abstract_deadline: '2024-07-10 23:59:00'\n          deadline: '2024-07-17 23:59:00'\n          comment: round 3\n        - abstract_deadline: '2024-10-10 23:59:00'\n          deadline: '2024-10-17 23:59:00'\n          comment: round 4\n      timezone: AoE\n      date: June 22-27, 2025\n      place: Berlin, Germany\n    - year: 2026\n      id: sigmod26\n      link: https://2026.sigmod.org/\n      timeline:\n        - abstract_deadline: '2025-01-10 23:59:00'\n          deadline: '2025-01-17 23:59:00'\n          comment: round 1\n        - abstract_deadline: '2025-04-10 23:59:00'\n          deadline: '2025-04-17 23:59:00'\n          comment: round 2\n        - abstract_deadline: '2025-07-10 23:59:00'\n          deadline: '2025-07-17 23:59:00'\n          comment: round 3\n        - abstract_deadline: '2025-10-10 23:59:00'\n          deadline: '2025-10-17 23:59:00'\n          comment: round 4\n      timezone: AoE\n      date: May 31-June 5, 2026\n      place: Bangalore, India\n    - year: 2027\n      id: sigmod27\n      link: https://2027.sigmod.org/\n      timeline:\n        - abstract_deadline: '2026-01-10 23:59:00'\n          deadline: '2026-01-17 23:59:00'\n          comment: round 1\n        - abstract_deadline: '2026-04-10 23:59:00'\n          deadline: '2026-04-17 23:59:00'\n          comment: round 2\n        - abstract_deadline: '2026-07-10 23:59:00'\n          deadline: '2026-07-17 23:59:00'\n          comment: round 3\n        - abstract_deadline: '2026-10-10 23:59:00'\n          deadline: '2026-10-17 23:59:00'\n          comment: round 4\n      timezone: AoE\n      date: June 13-19, 2027\n      place: Huntington Beach, CA, USA\n"
  },
  {
    "path": "conference/DB/vldb.yml",
    "content": "- title: VLDB\n  description: International Conference on Very Large Data Bases\n  sub: DB\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: vldb\n  confs:\n    - year: 2021\n      id: vldb21\n      link: http://www.vldb.org/2021/\n      timeline:\n        - deadline: '2020-04-01 17:00:00'\n        - deadline: '2020-05-01 17:00:00'\n        - deadline: '2020-06-01 17:00:00'\n        - deadline: '2020-07-01 17:00:00'\n        - deadline: '2020-08-01 17:00:00'\n        - deadline: '2020-09-01 17:00:00'\n        - deadline: '2020-10-01 17:00:00'\n        - deadline: '2020-11-01 17:00:00'\n        - deadline: '2020-12-01 17:00:00'\n        - deadline: '2021-01-01 17:00:00'\n        - deadline: '2021-02-01 17:00:00'\n        - deadline: '2021-03-01 17:00:00'\n      timezone: UTC-7\n      date: August 16-20, 2021\n      place: Copenhagen, Denmark\n    - year: 2022\n      id: vldb22\n      link: http://www.vldb.org/2022/\n      timeline:\n        - deadline: '2021-04-01 17:00:00'\n        - deadline: '2021-05-01 17:00:00'\n        - deadline: '2021-06-01 17:00:00'\n        - deadline: '2021-07-01 17:00:00'\n        - deadline: '2021-08-01 17:00:00'\n        - deadline: '2021-09-01 17:00:00'\n        - deadline: '2021-10-01 17:00:00'\n        - deadline: '2021-11-01 17:00:00'\n        - deadline: '2021-12-01 17:00:00'\n        - deadline: '2022-01-01 17:00:00'\n        - deadline: '2022-02-01 17:00:00'\n        - deadline: '2022-03-01 17:00:00'\n      timezone: UTC-7\n      date: September 05-09, 2022\n      place: Sydney, Australia\n    - year: 2023\n      id: vldb23\n      link: http://www.vldb.org/2023/\n      timeline:\n        - deadline: '2022-04-01 17:00:00'\n        - deadline: '2022-05-01 17:00:00'\n        - deadline: '2022-06-01 17:00:00'\n        - deadline: '2022-07-01 17:00:00'\n        - deadline: '2022-08-01 17:00:00'\n        - deadline: '2022-09-01 17:00:00'\n        - deadline: '2022-10-01 17:00:00'\n        - deadline: '2022-11-01 17:00:00'\n        - deadline: '2022-12-01 17:00:00'\n        - deadline: '2023-01-01 17:00:00'\n        - deadline: '2023-02-01 17:00:00'\n        - deadline: '2023-03-01 17:00:00'\n      timezone: UTC-7\n      date: August 28 - September 01, 2023\n      place: Vancouver, Canada\n    - year: 2024\n      id: vldb24\n      link: http://www.vldb.org/2024/\n      timeline:\n        - deadline: '2023-04-01 17:00:00'\n        - deadline: '2023-05-01 17:00:00'\n        - deadline: '2023-06-01 17:00:00'\n        - deadline: '2023-07-01 17:00:00'\n        - deadline: '2023-08-01 17:00:00'\n        - deadline: '2023-09-01 17:00:00'\n        - deadline: '2023-10-01 17:00:00'\n        - deadline: '2023-11-01 17:00:00'\n        - deadline: '2023-12-01 17:00:00'\n        - deadline: '2024-01-01 17:00:00'\n        - deadline: '2024-02-01 17:00:00'\n        - deadline: '2024-03-01 17:00:00'\n      timezone: UTC-7\n      date: August 25-29, 2024\n      place: Guangzhou, China (and hybrid)\n    - year: 2025\n      id: vldb25\n      link: http://www.vldb.org/2025/\n      timeline:\n        - deadline: '2024-04-01 17:00:00'\n        - deadline: '2024-05-01 17:00:00'\n        - deadline: '2024-06-01 17:00:00'\n        - deadline: '2024-07-01 17:00:00'\n        - deadline: '2024-08-01 17:00:00'\n        - deadline: '2024-09-01 17:00:00'\n        - deadline: '2024-10-01 17:00:00'\n        - deadline: '2024-11-01 17:00:00'\n        - deadline: '2024-12-01 17:00:00'\n        - deadline: '2025-01-01 17:00:00'\n        - deadline: '2025-02-01 17:00:00'\n        - deadline: '2025-03-01 17:00:00'\n      timezone: UTC-7\n      date: September 1-5, 2025\n      place: London, United Kingdom\n    - year: 2026\n      id: vldb26\n      link: https://www.vldb.org/2026/\n      timeline:\n        - deadline: '2025-04-01 17:00:00'\n        - deadline: '2025-05-01 17:00:00'\n        - deadline: '2025-06-01 17:00:00'\n        - deadline: '2025-07-01 17:00:00'\n        - deadline: '2025-08-01 17:00:00'\n        - deadline: '2025-09-01 17:00:00'\n        - deadline: '2025-10-01 17:00:00'\n        - deadline: '2025-11-01 17:00:00'\n        - deadline: '2025-12-01 17:00:00'\n        - deadline: '2026-01-01 17:00:00'\n        - deadline: '2026-02-01 17:00:00'\n        - deadline: '2026-03-01 17:00:00'\n      timezone: UTC-7\n      date: August 31 - September 4, 2026\n      place: Boston, MA, USA\n"
  },
  {
    "path": "conference/DB/wisa.yml",
    "content": "- title: WISA\n  description: Web Information Systems and Applications\n  sub: DB\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: wisa\n  confs:\n    - year: 2026\n      id: wisa2026\n      link: https://conf.ccf.org.cn/WISA2026\n      timeline:\n        - abstract_deadline: '2026-04-21 23:59:59'\n          deadline: '2026-04-28 23:59:59'\n      timezone: UTC+8\n      date: August 07-09, 2026\n      place: Kunming, China\n"
  },
  {
    "path": "conference/DB/wsdm.yml",
    "content": "- title: WSDM\n  description: International Conference on Web Search and Data Mining\n  sub: DB\n  rank:\n    ccf: B\n    core: A\n    thcpl: A\n  dblp: wsdm\n  confs:\n    - year: 2022\n      id: wsdm22\n      link: https://www.wsdm-conference.org/2022/\n      timeline:\n        - deadline: '2021-08-09 23:59:59'\n      timezone: UTC-12\n      date: February 21-25, 2022\n      place: Phoenix, Arizona, USA\n    - year: 2023\n      id: wsdm23\n      link: https://www.wsdm-conference.org/2023/\n      timeline:\n        - deadline: '2022-08-12 23:59:59'\n      timezone: UTC-12\n      date: February 27 - March 3, 2023\n      place: Singapore\n    - year: 2024\n      id: wsdm24\n      link: https://www.wsdm-conference.org/2024/\n      timeline:\n        - deadline: '2023-08-10 23:59:59'\n      timezone: UTC-12\n      date: March 4 - March 8, 2024\n      place: Mérida, México\n    - year: 2025\n      id: wsdm25\n      link: https://www.wsdm-conference.org/2025/\n      timeline:\n        - deadline: '2024-08-14 23:59:59'\n      timezone: UTC-12\n      date: March 10 - March 14, 2025\n      place: Hannover, Germany\n    - year: 2026\n      id: wsdm26\n      link: https://wsdm-conference.org/2026/\n      timeline:\n        - abstract_deadline: '2025-08-07 23:59:59'\n          deadline: '2025-08-14 23:59:59'\n      timezone: UTC-12\n      date: February 22 - 26, 2026\n      place: Boise, Idaho, USA\n"
  },
  {
    "path": "conference/DS/GLSVLSI.yml",
    "content": "- title: GLSVLSI\n  description: Great Lakes Symposium on VLSI\n  sub: DS\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: glvlsi\n  confs:\n    - year: 2025\n      id: glsvlsi2025\n      link: https://www.glsvlsi.org/\n      timeline:\n        - deadline: '2025-03-17 23:59:00'\n      timezone: UTC-5\n      date: June 30-July 2, 2025\n      place: New Orleans, LA, USA\n    - year: 2026\n      id: glsvlsi2026\n      link: https://www.glsvlsi.org/\n      timeline:\n        - deadline: '2026-03-16 23:59:00'\n      timezone: UTC-5\n      date: June 22-24, 2026\n      place: Finger Lakes, NY, USA\n"
  },
  {
    "path": "conference/DS/appt.yml",
    "content": "- title: APPT\n  description: International Symposium on Advanced Parallel Programming Technologies\n  sub: DS\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: appt\n  confs:\n    - year: 2026\n      id: appt2026\n      link: https://www.appt-conference.com/2026\n      timeline:\n        - abstract_deadline: '2026-03-27 23:59:00'\n          deadline: '2026-04-03 23:59:00'\n      timezone: AoE\n      date: July 27-31, 2026\n      place: Brussels, Belgium\n"
  },
  {
    "path": "conference/DS/apsys.yml",
    "content": "- title: APSys\n  description: ACM SIGOPS Asia-Pacific Workshop on Systems\n  sub: DS\n  rank:\n    ccf: N\n    core: N\n    thcpl: N\n  dblp: apsys\n  confs:\n    - year: 2024\n      id: apsys2024\n      link: https://apsys2024.github.io/\n      timeline:\n        - abstract_deadline: '2024-04-25 23:59:00'\n          deadline: '2024-05-02 23:59:00'\n          comment: call for papers\n      timezone: AoE\n      date: September 4-5, 2024\n      place: Kyoto, Japan\n    - year: 2025\n      id: apsys2025\n      link: https://apsys2025.github.io/\n      timeline:\n        - abstract_deadline: '2025-05-29 23:59:00'\n          deadline: '2025-06-05 23:59:00'\n      timezone: AoE\n      date: October 12-13, 2025\n      place: Seoul, South Korea\n"
  },
  {
    "path": "conference/DS/asap.yml",
    "content": "- title: ASAP\n  description: IEEE International Conference on Application-Specific Systems, Architectures, and Processors\n  sub: DS\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: asap\n  confs:\n    - year: 2026\n      id: asap2026\n      link: https://2026.asap-conf.org/\n      timeline:\n        - abstract_deadline: '2026-03-27 23:59:59'\n          deadline: '2026-04-03 23:59:59'\n      timezone: AoE\n      date: September 3-4, 2026\n      place: London, UK\n"
  },
  {
    "path": "conference/DS/aspdac.yml",
    "content": "- title: ASP-DAC\n  description: Asia and South Pacific Design Automation Conference\n  sub: DS\n  rank:\n    ccf: C\n    core: C\n    thcpl: B\n  dblp: aspdac\n  confs:\n    - year: 2024\n      id: aspdac24\n      link: https://www.aspdac.com/aspdac2024/\n      timeline:\n        - deadline: '2023-07-28 17:00:00'\n          comment: abstract deadline\n        - deadline: '2023-08-04 19:00:00'\n          comment: full paper deadline\n      timezone: AoE\n      date: Jan 22-25, 2024\n      place: Sondo Convensia, Incheon, Korea\n    - year: 2025\n      id: aspdac25\n      link: https://www.aspdac.com/aspdac2025/\n      timeline:\n        - deadline: '2024-07-05 17:00:00'\n          comment: abstract deadline\n        - deadline: '2024-07-12 17:00:00'\n          comment: full paper deadline\n      timezone: AoE\n      date: Jan 20-23, 2025\n      place: Tokyo Odaiba Miraikan, Japan\n    - year: 2026\n      id: aspdac26\n      link: https://www.aspdac.com/aspdac2026/\n      timeline:\n        - abstract_deadline: '2025-07-04 17:00:00'\n          deadline: '2025-07-11 17:00:00'\n      timezone: AoE\n      date: Jan 19-22, 2026\n      place: Hong Kong Disneyland\n"
  },
  {
    "path": "conference/DS/asplos.yml",
    "content": "- title: ASPLOS\n  description: International Conference on Architectural Support for Programming Languages and Operating Systems\n  sub: DS\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: asplos\n  confs:\n    - year: 2021\n      id: asplos21\n      link: https://asplos-conference.org/\n      timeline:\n        - deadline: '2020-08-21 23:59:59'\n      timezone: AoE\n      date: April 19-23, 2021\n      place: Virtual\n    - year: 2022\n      id: asplos22\n      link: https://asplos-conference.org/\n      timeline:\n        - deadline: '2021-08-06 23:59:59'\n      timezone: AoE\n      date: Feb 28-March 4, 2022\n      place: Virtual\n    - year: 2023\n      id: asplos23\n      link: https://asplos-conference.org/asplos-2023-cfp/\n      timeline:\n        - deadline: '2022-03-24 17:59:59'\n          comment: Spring Registration Deadline\n        - deadline: '2022-03-31 17:59:59'\n          comment: Spring Submission Deadline\n        - deadline: '2022-06-30 17:59:59'\n          comment: Summber Registration Deadline\n        - deadline: '2022-07-07 17:59:59'\n          comment: Summer Submission Deadline\n        - deadline: '2022-10-13 17:59:59'\n          comment: Fall Registration Deadline\n        - deadline: '2022-10-20 17:59:59'\n          comment: Fall Submission Deadline\n      timezone: UTC-4\n      date: March 25-March 29, 2023\n      place: Vancouver, Canada\n    - year: 2024\n      id: asplos24\n      link: https://www.asplos-conference.org/asplos2024/cfp/\n      timeline:\n        - deadline: '2023-04-14 02:59:59'\n          comment: Spring Registration Deadline\n        - deadline: '2023-04-21 02:59:59'\n          comment: Spring Submission Deadline\n        - deadline: '2023-08-04 02:59:59'\n          comment: Summber Registration Deadline\n        - deadline: '2023-08-11 02:59:59'\n          comment: Summer Submission Deadline\n        - deadline: '2023-11-24 02:59:59'\n          comment: Fall Registration Deadline\n        - deadline: '2023-12-01 02:59:59'\n          comment: Fall Submission Deadline\n      timezone: UTC+8\n      date: April, 2024\n      place: California, U.S.A.\n    - year: 2025\n      id: asplos25\n      link: https://www.asplos-conference.org/asplos2025/cfp/\n      timeline:\n        - abstract_deadline: '2024-02-23 23:59:59'\n          deadline: '2024-03-01 23:59:59'\n          comment: Spring Submission Deadline\n        - abstract_deadline: '2024-06-17 23:59:59'\n          deadline: '2024-06-24 23:59:59'\n          comment: Summer Submission Deadline\n        - abstract_deadline: '2024-10-11 23:59:59'\n          deadline: '2024-10-18 23:59:59'\n          comment: Fall Submission Deadline\n      timezone: AoE\n      date: March-April, 2025\n      place: Rotterdam, Netherland.\n    - year: 2026\n      id: asplos26\n      link: https://www.asplos-conference.org/asplos2026/cfp/\n      timeline:\n        - abstract_deadline: '2025-03-05 23:59:59'\n          deadline: '2025-03-12 23:59:59'\n          comment: Spring Submission Deadline\n        - abstract_deadline: '2025-08-13 23:59:59'\n          deadline: '2025-08-20 23:59:59'\n          comment: Summer Submission Deadline\n      timezone: UTC-4\n      date: March 22-26, 2026\n      place: Pittsburgh, PA, USA\n    - year: 2027\n      id: asplos27\n      link: https://www.asplos-conference.org/call-for-papers-asplos27/\n      timeline:\n        - deadline: '2026-04-15 23:59:59'\n          comment: April Cycle Submission Deadline\n        - deadline: '2026-09-09 23:59:59'\n          comment: September Cycle Submission Deadline\n      timezone: AoE\n      date: TBD\n      place: Crete, Greece\n"
  },
  {
    "path": "conference/DS/atc.yml",
    "content": "- title: USENIX ATC\n  description: USENIX Annual Technical Conference\n  sub: DS\n  rank:\n    ccf: A\n    core: A\n    thcpl: A\n  dblp: usenix\n  confs:\n    - year: 2021\n      id: atc2021\n      link: https://www.usenix.org/conference/atc21/\n      timeline:\n        - deadline: '2021-01-12 23:59:59'\n      timezone: AoE\n      date: July 14-16, 2021\n      place: SANTA CLARA, USA\n    - year: 2022\n      id: atc2022\n      link: https://www.usenix.org/conference/atc22/\n      timeline:\n        - deadline: '2022-01-13 23:59:59'\n      timezone: UTC+0\n      date: July 11-13, 2022\n      place: Omni La Costa Resort & Spa in Carlsbad, CA, USA\n    - year: 2023\n      id: atc2023\n      link: https://www.usenix.org/conference/atc23/\n      timeline:\n        - abstract_deadline: '2023-01-05 23:59:59'\n          deadline: '2023-01-12 23:59:59'\n      timezone: UTC+0\n      date: July 10-12, 2023\n      place: BOSTON, MA, USA\n    - year: 2024\n      id: atc2024\n      link: https://www.usenix.org/conference/atc24/\n      timeline:\n        - abstract_deadline: '2024-01-09 23:59:59'\n          deadline: '2024-01-16 23:59:59'\n      timezone: UTC+0\n      date: July 10-12, 2024\n      place: Santa Clara, CA, USA\n    - year: 2025\n      id: atc2025\n      link: https://www.usenix.org/conference/atc25\n      timeline:\n        - abstract_deadline: '2025-01-07 23:59:59'\n          deadline: '2025-01-14 23:59:59'\n      timezone: UTC+0\n      date: July 7-9, 2025\n      place: Boston, MA, USA\n    - year: 2026\n      id: atc2026\n      link: https://sigops.org/s/conferences/atc/2026/index.html\n      timeline:\n        - deadline: '2026-06-10 23:59:59'\n      timezone: UTC+0\n      date: November 15-18, 2026\n      place: Hyatt Hotel, Shatin, Hong Kong, China\n"
  },
  {
    "path": "conference/DS/ats.yml",
    "content": "- title: ATS\n  description: IEEE Asian Test Symposium\n  sub: DS\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: ats\n  confs:\n    - year: 2026\n      id: ats2026\n      link: https://www.ats2026.tw/\n      timeline:\n        - deadline: '2026-06-06 23:59:59'\n      timezone: UTC+8\n      date: December 1-3, 2026\n      place: Taiwan\n"
  },
  {
    "path": "conference/DS/cf.yml",
    "content": "- title: CF\n  description: ACM International Conference on Computing Frontiers\n  sub: DS\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: cf\n  confs:\n    - year: 2024\n      id: cf2024\n      link: https://www.computingfrontiers.org/2024/\n      timeline:\n        - deadline: '2024-01-08 23:59:59'\n      timezone: AoE\n      date: May 7-9, 2024\n      place: Ischia, Italy\n    - year: 2026\n      id: cf2026\n      link: https://www.computingfrontiers.org/2026/\n      timeline:\n        - abstract_deadline: '2026-01-12 23:59:59'\n          deadline: '2026-01-19 23:59:59'\n      timezone: AoE\n      date: May 19-21, 2026\n      place: Catania, Sicily, Italy\n"
  },
  {
    "path": "conference/DS/cgo.yml",
    "content": "- title: IEEE/ACM CGO\n  description: The International Symposium on Code Generation and Optimization\n  sub: DS\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: cgo\n  confs:\n    - year: 2025\n      id: cgo2025\n      link: https://conf.researchr.org/home/cgo-2025\n      timeline:\n        - deadline: '2024-05-30 23:59:59'\n      timezone: AoE\n      date: TBD\n      place: TBD\n    - year: 2024\n      id: cgo2024\n      link: https://conf.researchr.org/home/cgo-2024\n      timeline:\n        - deadline: '2023-05-19 23:59:59'\n      timezone: AoE\n      date: March 2-6, 2024\n      place: Edinburgh, United Kingdom\n    - year: 2026\n      id: cgo2026\n      link: https://conf.researchr.org/home/cgo-2026\n      timeline:\n        - deadline: '2025-05-29 23:59:59'\n          comment: 'First Submission'\n        - deadline: '2025-09-11 23:59:59'\n          comment: 'Second Submission'\n      timezone: AoE\n      date: January 31 - 4 February, 2026\n      place: Sydney, Australia\n"
  },
  {
    "path": "conference/DS/cluster.yml",
    "content": "- title: CLUSTER\n  description: IEEE International Conference on Cluster Computing\n  sub: DS\n  rank:\n    ccf: B\n    core: B\n    thcpl: B\n  dblp: cluster\n  confs:\n    - year: 2022\n      id: cluster22\n      link: https://clustercomp.org/2022\n      timeline:\n        - deadline: '2022-05-13 23:59:59'\n          comment: Full Paper Deadline\n      timezone: UTC-12\n      date: September 6-9, 2022\n      place: Heidelberg, Germany\n    - year: 2023\n      id: cluster23\n      link: https://clustercomp.org/2023\n      timeline:\n        - deadline: '2023-05-11 23:59:59'\n          comment: Full Paper Deadline\n      timezone: AoE\n      date: October 31-November 3, 2023\n      place: Santa Fe, New Mexico, USA\n    - year: 2024\n      id: cluster24\n      link: https://clustercomp.org/2024\n      timeline:\n        - deadline: '2024-05-09 23:59:59'\n          comment: Full Paper Deadline\n      timezone: AoE\n      date: September 24-27, 2024\n      place: Kobe, Japan\n    - year: 2025\n      id: cluster25\n      link: https://clustercomp.org/2025\n      timeline:\n        - deadline: '2025-05-02 23:59:59'\n          comment: Full Paper Deadline\n      timezone: AoE\n      date: September 2-5, 2025\n      place: Edinburgh, United Kingdom\n"
  },
  {
    "path": "conference/DS/dac.yml",
    "content": "- title: DAC\n  description: Design Automation Conference\n  sub: DS\n  rank:\n    ccf: A\n    core: A\n    thcpl: A\n  dblp: dac\n  confs:\n    - year: 2022\n      id: dac22\n      link: https://www.dac.com/DAC-2022\n      timeline:\n        - deadline: '2021-11-15 17:00:00'\n          comment: abstract deadline\n        - deadline: '2021-11-22 17:00:00'\n          comment: full paper deadline\n      timezone: UTC-8\n      date: July 10-14, 2022\n      place: San Francisco, CA\n    - year: 2023\n      id: dac23\n      link: https://www.dac.com/Conference/2023-Call-for-Contributions\n      timeline:\n        - deadline: '2022-11-14 17:00:00'\n          comment: abstract deadline\n        - deadline: '2022-11-21 17:00:00'\n          comment: full paper deadline\n      timezone: UTC-8\n      date: July 9-13, 2023\n      place: San Francisco, CA\n    - year: 2024\n      id: dac24\n      link: https://www.dac.com/Conference/2024-Call-for-Contributions\n      timeline:\n        - abstract_deadline: '2023-11-13 17:00:00'\n          deadline: '2023-11-20 17:00:00'\n      timezone: UTC-8\n      date: June 23-27, 2024\n      place: San Francisco, CA\n    - year: 2025\n      id: dac25\n      link: https://www.dac.com/Conference/2025-Call-for-Contributions\n      timeline:\n        - abstract_deadline: '2024-11-12 17:00:00'\n          deadline: '2024-11-19 17:00:00'\n      timezone: UTC-8\n      date: June 22-25, 2025\n      place: San Francisco, CA\n    - year: 2026\n      id: dac26\n      link: https://dac.com/2026/call-for-contributions\n      timeline:\n        - abstract_deadline: '2025-11-11 17:00:00'\n          deadline: '2025-11-18 17:00:00'\n      timezone: UTC-8\n      date: July 26-29, 2026\n      place: Long Beach, CA\n"
  },
  {
    "path": "conference/DS/date.yml",
    "content": "- title: DATE\n  description: Design, Automation & Test in Europe\n  sub: DS\n  rank:\n    ccf: B\n    core: B\n    thcpl: B\n  dblp: date\n  confs:\n    - year: 2023\n      id: date2023\n      link: https://www.date-conference.com/\n      timeline:\n        - deadline: '2022-09-18 23:59:59'\n          comment: abstract deadline\n        - deadline: '2022-09-25 23:59:59'\n          comment: full paper deadline\n      timezone: UTC+1\n      date: April 17-19, 2023\n      place: Antwerp, BE\n    - year: 2024\n      id: date2024\n      link: https://www.date-conference.com/\n      timeline:\n        - abstract_deadline: '2023-09-10 23:59:59'\n          deadline: '2023-09-17 23:59:59'\n      timezone: AoE\n      date: March 25-27, 2024\n      place: Valencia, Spain\n    - year: 2025\n      id: date2025\n      link: https://www.date-conference.com/date-2025-call-papers\n      timeline:\n        - abstract_deadline: '2024-09-15 23:59:59'\n          deadline: '2024-09-22 23:59:59'\n      timezone: AoE\n      date: March 31- April 2, 2025\n      place: Palais des congrès de Lyon, Lyon, France\n    - year: 2026\n      id: date2026\n      link: https://www.date-conference.com/call-for-papers\n      timeline:\n        - abstract_deadline: '2025-09-07 23:59:59'\n          deadline: '2025-09-14 23:59:59'\n      timezone: AoE\n      date: April 20- April 22, 2026\n      place: Verona, Italy\n"
  },
  {
    "path": "conference/DS/dcc.yml",
    "content": "- title: DCC\n  description: Data Compression Conference\n  sub: DS\n  rank:\n    ccf: B\n    core: A*\n    thcpl: B\n  dblp: dcc\n  confs:\n    - year: 2025\n      id: dcc2025\n      link: https://datacompressionconference.org/\n      timeline:\n        - deadline: '2024-10-11 23:59:59'\n      timezone: UTC-8\n      date: March 18-21, 2025\n      place: Snowbird, Utah, U.S.\n"
  },
  {
    "path": "conference/DS/ets.yml",
    "content": "- title: ETS\n  description: IEEE European Test Symposium\n  sub: DS\n  rank:\n    ccf: C\n    core: B\n    thcpl: N\n  dblp: ets\n  confs:\n    - year: 2024\n      id: ets2024\n      link: https://ets24.ewi.tudelft.nl/\n      timeline:\n        - abstract_deadline: '2023-12-08 23:59:59'\n          deadline: '2023-12-16 23:59:59'\n      timezone: AoE\n      date: May 20-24, 2024\n      place: The Hague, Netherlands\n    - year: 2025\n      id: ets2025\n      link: https://ets2025.taltech.ee/\n      timeline:\n        - abstract_deadline: '2024-12-09 23:59:59'\n          deadline: '2024-12-15 23:59:59'\n      timezone: AoE\n      date: May 26-30, 2025\n      place: Tallinn, Estonia\n    - year: 2026\n      id: ets2026\n      link: https://ets2026.uniwa.gr/\n      timeline:\n        - abstract_deadline: '2025-12-15 23:59:59'\n          deadline: '2026-01-12 23:59:59'\n      timezone: AoE\n      date: May 25-29, 2026\n      place: Chania, Greec\n"
  },
  {
    "path": "conference/DS/europar.yml",
    "content": "- title: Euro-Par\n  description: European Conference on Parallel and Distributed Computing\n  sub: DS\n  rank:\n    ccf: B\n    core: B\n    thcpl: N\n  dblp: europar\n  confs:\n    - year: 2023\n      id: euro-par23\n      link: https://2023.euro-par.org\n      timeline:\n        - abstract_deadline: '2023-02-17 23:59:59'\n          deadline: '2023-02-24 23:59:59'\n      timezone: AoE\n      date: August 28-September 1, 2023\n      place: Limassol, Cyprus\n    - year: 2024\n      id: euro-par24\n      link: https://2024.euro-par.org\n      timeline:\n        - abstract_deadline: '2024-03-15 23:59:59'\n          deadline: '2024-03-25 23:59:59'\n      timezone: AoE\n      date: August 28-30, 2023\n      place: Madrid, Spain\n    - year: 2025\n      id: euro-par25\n      link: https://2025.euro-par.org/\n      timeline:\n        - abstract_deadline: '2025-03-03 23:59:59'\n          deadline: '2025-03-17 23:59:59'\n      timezone: AoE\n      date: August 25-29, 2025\n      place: Dresden, Germany\n    - year: 2026\n      id: euro-par26\n      link: https://2026.euro-par.org/\n      timeline:\n        - abstract_deadline: '2026-02-27 23:59:59'\n          deadline: '2026-03-06 23:59:59'\n      timezone: AoE\n      date: August 24-28, 2026\n      place: Pisa, Italy\n"
  },
  {
    "path": "conference/DS/eurosys.yml",
    "content": "- title: EuroSys\n  description: European Conference on Computer Systems\n  sub: DS\n  rank:\n    ccf: A\n    core: A\n    thcpl: A\n  dblp: eurosys\n  confs:\n    - year: 2021\n      id: eurosys2021\n      link: https://2021.eurosys.org/\n      timeline:\n        - abstract_deadline: '2020-10-01 23:59:59'\n          deadline: '2020-10-09 23:59:59'\n      timezone: AoE\n      date: April 26-29, 2021\n      place: Edinburgh, UK\n    - year: 2022\n      id: eurosys2022\n      link: https://2022.eurosys.org/\n      timeline:\n        - abstract_deadline: '2021-10-01 23:59:59'\n          deadline: '2021-10-09 23:59:59'\n      timezone: AoE\n      date: April 5-8, 2022\n      place: Rennes, France\n    - year: 2023\n      id: eurosys2023\n      link: https://2023.eurosys.org/\n      timeline:\n        - abstract_deadline: '2022-05-10 23:59:59'\n          deadline: '2022-05-17 23:59:59'\n          comment: Spring Submission Deadline\n        - abstract_deadline: '2022-10-11 23:59:59'\n          deadline: '2022-10-18 23:59:59'\n          comment: Fall Submission Deadline\n      timezone: AoE\n      date: May 9-12, 2023\n      place: Rome, Italy\n    - year: 2024\n      id: eurosys2024\n      link: https://www.eurosys.org/news/eurosys-2024\n      timeline:\n        - deadline: '2023-05-18 00:00:00'\n          comment: Spring Submission Deadline\n        - deadline: '2023-10-19 23:59:59'\n          comment: Fall Submission Deadline\n      timezone: UTC\n      date: April 23-26, 2024\n      place: Athens, Greece\n    - year: 2025\n      id: eurosys2025\n      link: https://www.eurosys.org/news/eurosys-2025\n      timeline:\n        - abstract_deadline: '2024-05-14 23:59:59'\n          deadline: '2024-05-21 23:59:59'\n          comment: Spring Submission Deadline\n        - abstract_deadline: '2024-10-15 23:59:59'\n          deadline: '2024-10-22 23:59:59'\n          comment: Fall Submission Deadline\n      timezone: AoE\n      date: March-April, 2025\n      place: Rotterdam, The Netherlands.\n    - year: 2026\n      id: eurosys2026\n      link: https://2026.eurosys.org/\n      timeline:\n        - abstract_deadline: '2025-05-08 23:59:59'\n          deadline: '2025-05-15 23:59:59'\n          comment: Spring Submission Deadline\n        - abstract_deadline: '2025-09-18 23:59:59'\n          deadline: '2025-09-25 23:59:59'\n          comment: Fall Submission Deadline\n      timezone: AoE\n      date: April 13-16, 2026\n      place: Edinburgh, UK\n"
  },
  {
    "path": "conference/DS/fast.yml",
    "content": "- title: FAST\n  description: USENIX Conference on File and Storage Technologies\n  sub: DS\n  rank:\n    ccf: A\n    core: A\n    thcpl: A\n  dblp: fast\n  confs:\n    - year: 2021\n      id: fast21\n      link: https://www.usenix.org/conference/fast21/\n      timeline:\n        - deadline: '2020-09-24 23:59:59'\n      timezone: UTC-7\n      date: February 23-25, 2021\n      place: Virtual\n    - year: 2022\n      id: fast22\n      link: https://www.usenix.org/conference/fast22/\n      timeline:\n        - deadline: '2021-09-23 23:59:59'\n      timezone: UTC-7\n      date: February 21-24, 2022\n      place: SANTA CLARA, CA, USA\n    - year: 2023\n      id: fast23\n      link: https://www.usenix.org/conference/fast23\n      timeline:\n        - deadline: '2022-09-22 23:59:59'\n      timezone: UTC-7\n      date: FEBRUARY 20-23, 2023\n      place: SANTA CLARA, CA, USA\n    - year: 2024\n      id: fast24\n      link: https://www.usenix.org/conference/fast24\n      timeline:\n        - deadline: '2023-09-21 23:59:59'\n      timezone: UTC-7\n      date: FEBRUARY 27-29, 2024\n      place: SANTA CLARA, CA, USA\n    - year: 2025\n      id: fast25\n      link: https://www.usenix.org/conference/fast25\n      timeline:\n        - deadline: '2024-09-17 23:59:59'\n      timezone: UTC-7\n      date: FEBRUARY 25-27, 2025\n      place: SANTA CLARA, CA, USA\n    - year: 2026\n      id: fast26\n      link: https://www.usenix.net/conference/fast26\n      timeline:\n        - deadline: '2025-03-18 23:59:00'\n          comment: Spring deadline\n        - deadline: '2025-09-16 23:59:00'\n          comment: Fall deadline\n      timezone: AoE\n      date: FEBRUARY 24-26, 2026\n      place: SANTA CLARA, CA, USA\n    - year: 2027\n      id: fast27\n      link: https://www.usenix.org/conference/fast27\n      timeline:\n        - deadline: '2026-03-17 23:59:00'\n          comment: Spring deadline\n        - deadline: '2026-09-15 23:59:00'\n          comment: Fall deadline\n      timezone: AoE\n      date: FEBRUARY 23-25, 2027\n      place: Renton, WA, USA\n"
  },
  {
    "path": "conference/DS/fccm.yml",
    "content": "- title: FCCM\n  description: IEEE Symposium on Field-Programmable Custom Computing Machines\n  sub: DS\n  rank:\n    ccf: C\n    core: B\n    thcpl: N\n  dblp: fccm\n  confs:\n    - year: 2022\n      id: fccm22\n      link: https://www.fccm.org/\n      timeline:\n        - deadline: '2022-01-03 23:59:59'\n          comment: abstract deadline\n        - deadline: '2022-01-10 23:59:59'\n          comment: full paper deadline\n      timezone: AoE\n      date: May 15-18, 2022\n      place: New York City, USA\n    - year: 2024\n      id: fccm24\n      link: https://www.fccm.org/\n      timeline:\n        - deadline: '2024-01-09 23:59:59'\n          comment: abstract deadline\n        - deadline: '2024-01-15 23:59:59'\n          comment: full paper deadline\n      timezone: AoE\n      date: May 5-8, 2024\n      place: Orlando, USA\n    - year: 2025\n      id: fccm25\n      link: https://www.fccm.org/\n      timeline:\n        - abstract_deadline: '2025-01-10 23:59:59'\n          deadline: '2025-01-17 23:59:59'\n      timezone: AoE\n      date: May 4-7, 2025\n      place: Fayetteville, Arkansas, USA\n"
  },
  {
    "path": "conference/DS/fpga.yml",
    "content": "- title: FPGA\n  description: ACM/SIGDA International Symposium on Field-Programmable Gate Arrays\n  sub: DS\n  rank:\n    ccf: B\n    core: N\n    thcpl: A\n  dblp: fpga\n  confs:\n    - year: 2023\n      id: fpga2023\n      link: https://www.isfpga.org/\n      timeline:\n        - deadline: '2022-09-16 23:59:59'\n          comment: Abstracts Due\n        - deadline: '2022-09-23 23:59:59'\n          comment: Submissions Due\n      timezone: UTC-7\n      date: February 12 - February 14, 2023\n      place: Monterey, California, USA\n    - year: 2024\n      id: fpga2024\n      link: https://www.isfpga.org/\n      timeline:\n        - deadline: '2023-10-06 23:59:59'\n          comment: Abstracts Due\n        - deadline: '2023-10-13 23:59:59'\n          comment: Submissions Due\n      timezone: UTC-7\n      date: March 3 - March 5, 2024\n      place: Monterey, California, USA\n    - year: 2025\n      id: fpga2025\n      link: https://www.isfpga.org/\n      timeline:\n        - deadline: '2024-10-01 23:59:59'\n          comment: Abstracts Due\n        - deadline: '2024-10-08 23:59:59'\n          comment: Submissions Due\n      timezone: UTC-12\n      date: February 27 - March 01, 2025\n      place: Monterey, California, USA\n    - year: 2026\n      id: fpga2026\n      link: https://www.isfpga.org/\n      timeline:\n        - deadline: '2025-09-24 23:59:59'\n          comment: Abstracts Due\n        - deadline: '2025-10-01 23:59:59'\n          comment: Submissions Due\n      timezone: UTC-12\n      date: February 22 - February 24, 2026\n      place: Monterey, California, USA\n"
  },
  {
    "path": "conference/DS/fpt.yml",
    "content": "- title: FPT\n  description: International Conference on Field Programmable Technology\n  sub: DS\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: fpt\n  confs:\n    - year: 2024\n      id: fpt2024\n      link: https://fpt2024.org/\n      timeline:\n        - deadline: '2024-07-14 23:59:59'\n          comment: Title and Abstract Due (Conference Track)\n        - deadline: '2024-07-21 23:59:59'\n          comment: Submission Due (Conference Track)\n      timezone: AoE\n      date: December 10 - December 12, 2024\n      place: Sydney, Australia\n    - year: 2025\n      id: fpt2025\n      link: https://fpt2025.shanghaitech.edu.cn\n      timeline:\n        - deadline: '2025-07-20 23:59:59'\n          comment: Title and Abstract Due (Conference Track)\n        - deadline: '2025-08-01 23:59:59'\n          comment: Submission Due (Conference Track)\n      timezone: AoE\n      date: December 02 - December 05, 2025\n      place: Shanghai, China\n"
  },
  {
    "path": "conference/DS/hotchips.yml",
    "content": "- title: Hot Chips\n  description: \"Hot Chips: A Symposium on High Performance Chips\"\n  sub: DS\n  rank:\n    ccf: B\n    core: C\n    thcpl: B\n  dblp: hotchips\n  confs:\n    - year: 2025\n      id: hcs2025\n      link: https://www.hotchips.org/\n      timeline:\n        - deadline: '2025-04-16 23:59:59'\n      timezone: AoE\n      date: August 24-26, 2025\n      place: Memorial Auditorium, Stanford, Palo Alto, CA\n    - year: 2026\n      id: hcs2026\n      link: https://www.hotchips.org/\n      timeline:\n        - deadline: '2025-03-29 23:59:59'\n      timezone: AoE\n      date: August 23-25, 2026\n      place: Memorial Auditorium, Stanford, Palo Alto, CA\n"
  },
  {
    "path": "conference/DS/hotstorage.yml",
    "content": "- title: HotStorage\n  description: ACM Workshop on Hot Topics in Storage and File Systems\n  sub: DS\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: hotstorage\n  confs:\n    - year: 2026\n      id: hotstorage2026\n      link: https://www.hotstorage.org/2026/\n      timeline:\n        - deadline: '2026-06-05 23:59:59'\n      timezone: AoE\n      date: September 28-29, 2026\n      place: Prague, Czechia\n"
  },
  {
    "path": "conference/DS/hpca.yml",
    "content": "- title: HPCA\n  description: IEEE International Symposium on High-Performance Computer Architecture\n  sub: DS\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: hpca\n  confs:\n    - year: 2022\n      id: hpca22\n      link: https://hpca-conf.org/2022/\n      timeline:\n        - deadline: '2021-07-23 23:59:59'\n          comment: abstract deadline\n        - deadline: '2021-07-30 23:59:59'\n          comment: full paper deadline\n      timezone: UTC+0\n      date: Feb 12-16, 2022\n      place: Seoul, South Korea\n    - year: 2023\n      id: hpca23\n      link: https://hpca-conf.org/2023/\n      timeline:\n        - deadline: '2022-07-25 23:59:59'\n          comment: abstract deadline\n        - deadline: '2022-08-01 23:59:59'\n          comment: full paper deadline\n      timezone: UTC\n      date: Feb 25-Mar 01, 2023\n      place: Montreal, QC, Canada\n    - year: 2024\n      id: hpca24\n      link: https://hpca-conf.org/2024/\n      timeline:\n        - deadline: '2023-07-28 23:59:59'\n          comment: abstract deadline\n        - deadline: '2023-08-04 23:59:59'\n          comment: full paper deadline\n      timezone: UTC-7\n      date: March 2-6, 2024\n      place: Edinburgh, Scotland, UK\n    - year: 2025\n      id: hpca25\n      link: https://hpca-conf.org/2025/\n      timeline:\n        - abstract_deadline: '2024-07-26 23:59:59'\n          deadline: '2024-08-03 06:59:59'\n      timezone: UTC\n      date: March 1-5, 2025\n      place: Las Vegas, USA.\n    - year: 2026\n      id: hpca26\n      link: https://hpca-conf.org/2026/\n      timeline:\n        - abstract_deadline: '2025-07-25 23:59:59'\n          deadline: '2025-08-01 23:59:59'\n      timezone: UTC\n      date: Feb 25-Mar 1, 2026\n      place: Sydney, NSW, Australia\n"
  },
  {
    "path": "conference/DS/hpcc.yml",
    "content": "- title: HPCC\n  description: IEEE International Conference on High Performance Computing and Communications\n  sub: DS\n  rank:\n    ccf: C\n    core: C\n    thcpl: N\n  dblp: hpcc\n  confs:\n    - year: 2025\n      id: hpcc2025\n      link: https://hpcn.exeter.ac.uk/hpcc2025/\n      timeline:\n        - deadline: '2025-05-18 23:59:59'\n      timezone: AoE\n      date: August 13-15, 2025\n      place: Exeter, UK\n"
  },
  {
    "path": "conference/DS/hpdc.yml",
    "content": "- title: HPDC\n  description: ACM Symposium on High-Performance Parallel and Distributed Computing\n  sub: DS\n  rank:\n    ccf: A\n    core: A\n    thcpl: B\n  dblp: hpdc\n  confs:\n    - year: 2025\n      id: hpdc2025\n      link: https://hpdc.sci.utah.edu/2025/\n      timeline:\n        - deadline: '2025-02-07 11:59:59'\n          comment: paper submission deadline\n      timezone: UTC\n      date: July 20-23, 2025\n      place: Notre Dame, IN, USA\n    - year: 2026\n      id: hpdc2026\n      link: https://hpdc.sci.utah.edu/2026/\n      timeline:\n        - deadline: '2026-01-29 23:59:59'\n          comment: abstract registration deadline\n        - deadline: '2026-02-05 23:59:59'\n          comment: paper submission deadline\n      timezone: AoE\n      date: July 13-16, 2026\n      place: Cleveland, OH, USA\n"
  },
  {
    "path": "conference/DS/ica3pp.yml",
    "content": "- title: ICA3PP\n  description: International Conference on Algorithms and Architectures for Parallel Processing\n  sub: DS\n  rank:\n    ccf: C\n    core: C\n    thcpl: N\n  dblp: ica3pp\n  confs:\n    - year: 2022\n      id: ica3pp\n      link: https://ica3pp2022.compute.dtu.dk/\n      timeline:\n        - deadline: '2021-05-30 17:00:00'\n          comment: first round\n        - deadline: '2021-06-30 17:00:00'\n          comment: second round\n      timezone: UTC-8\n      date: October 10-12, 2022\n      place: Copenhagen, Denmark\n    - year: 2023\n      id: ica3pp\n      link: http://tjutanklab.com/ica3pp2023/\n      timeline:\n        - deadline: '2023-05-30 23:59:00'\n          comment: Paper Submission Due\n      timezone: UTC-8\n      date: October 20-22, 2022\n      place: Tianjin, China\n    - year: 2025\n      id: ica3pp\n      link: https://ieee-cybermatics.org/2025/ica3pp/\n      timeline:\n        - deadline: '2025-06-30 23:59:00'\n          comment: Paper Submission Due\n      timezone: UTC-8\n      date: October 30- November 2, 2025\n      place: Zhengzhou, Henan, China\n"
  },
  {
    "path": "conference/DS/iccad.yml",
    "content": "- title: ICCAD\n  description: IEEE/ACM International Conference on Computer-Aided Design\n  sub: DS\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: iccad\n  confs:\n    - year: 2022\n      id: iccad22\n      link: https://iccad.com/\n      timeline:\n        - deadline: '2022-05-16 23:59:59'\n          comment: Abstract Deadline\n        - deadline: '2022-05-23 23:59:59'\n          comment: Full Paper Deadline\n      timezone: UTC-12\n      date: Oct 29 - Nov 3, 2022\n      place: San Diego, CA, USA\n    - year: 2023\n      id: iccad23\n      link: https://iccad.com/\n      timeline:\n        - deadline: '2023-05-15 23:59:59'\n          comment: Abstract Deadline\n        - deadline: '2023-05-22 23:59:59'\n          comment: Full Paper Deadline\n      timezone: UTC-12\n      date: Oct 29 - Nov 2, 2023\n      place: San Diego, CA, USA\n    - year: 2024\n      id: iccad24\n      link: https://2024.iccad.com/\n      timeline:\n        - abstract_deadline: '2024-04-28 23:59:59'\n          deadline: '2024-05-05 23:59:59'\n      timezone: UTC-12\n      date: October 27 - 31, 2024\n      place: New Jersey, USA\n    - year: 2025\n      id: iccad25\n      link: https://2025.iccad.com\n      timeline:\n        - abstract_deadline: '2025-04-14 23:59:59'\n          deadline: '2025-04-21 23:59:59'\n      timezone: UTC-12\n      date: October 26 - 30, 2025\n      place: MUNICH, GERMANY\n    - year: 2026\n      id: iccad26\n      link: https://iccad.com/2026\n      timeline:\n        - abstract_deadline: '2026-04-07 23:59:59'\n          deadline: '2026-04-14 23:59:59'\n      timezone: UTC-12\n      date: November 8 - 12, 2026\n      place: San Jose, California, USA\n"
  },
  {
    "path": "conference/DS/iccd.yml",
    "content": "- title: ICCD\n  description: International Conference on Computer Design\n  sub: DS\n  rank:\n    ccf: B\n    core: N\n    thcpl: B\n  dblp: iccd\n  confs:\n    - year: 2023\n      id: iccd23\n      link: https://www.iccd-conf.com/Call_for_papers.html\n      timeline:\n        - abstract_deadline: '2023-06-09 23:59:00'\n          deadline: '2023-06-16 23:59:00'\n          comment: abstract and full paper deadline\n      timezone: AoE\n      date: November 6-8, 2023\n      place: Washington DC, USA\n    - year: 2024\n      id: iccd24\n      link: https://www.iccd-conf.com/Call_for_papers.html\n      timeline:\n        - abstract_deadline: '2024-05-20 23:59:00'\n          deadline: '2024-05-20 23:59:00'\n          comment: abstract and full paper deadline\n      timezone: AoE\n      date: November, 2024\n      place: Milan, Italy\n    - year: 2025\n      id: iccd25\n      link: https://www.iccd-conf.com/home.html\n      timeline:\n        - deadline: '2025-05-25 23:59:00'\n      timezone: AoE\n      date: November 10-12, 2025\n      place: Dallas, USA\n"
  },
  {
    "path": "conference/DS/icdcs.yml",
    "content": "- title: ICDCS\n  description: IEEE International Conference on Distributed Computing Systems\n  sub: DS\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: icdcs\n  confs:\n    - year: 2020\n      id: icdcs20\n      link: https://icdcs2020.sg/\n      timeline:\n        - abstract_deadline: '2020-01-06 23:59:59'\n          deadline: '2020-01-13 23:59:59'\n      timezone: UTC-7\n      date: July 8-10, 2020\n      place: Singapore\n    - year: 2021\n      id: icdcs21\n      link: https://icdcs2021.us/\n      timeline:\n        - abstract_deadline: '2021-01-06 23:59:59'\n          deadline: '2021-01-13 23:59:59'\n      timezone: UTC-5\n      date: July 7-10, 2021\n      place: Virtual\n    - year: 2022\n      id: icdcs22\n      link: https://icdcs2022.icdcs.org/\n      timeline:\n        - abstract_deadline: '2022-01-24 23:59:59'\n          deadline: '2022-01-31 23:59:59'\n      timezone: UTC-5\n      date: July 10-13, 2022\n      place: Bologna, Italy\n    - year: 2023\n      id: icdcs23\n      link: https://icdcs2023.icdcs.org/\n      timeline:\n        - abstract_deadline: '2023-01-14 23:59:59'\n          deadline: '2023-01-21 23:59:59'\n      timezone: UTC-5\n      date: July 18-21, 2023\n      place: Hong Kong, China\n    - year: 2024\n      id: icdcs24\n      link: https://icdcs2024.icdcs.org/\n      timeline:\n        - abstract_deadline: '2024-01-12 23:59:59'\n          deadline: '2024-01-19 23:59:59'\n      timezone: UTC-12\n      date: July 16-19, 2024\n      place: New Jersey, USA\n    - year: 2025\n      id: icdcs25\n      link: https://www.icdcs2025.com\n      timeline:\n        - abstract_deadline: '2024-12-04 23:59:59'\n          deadline: '2024-12-11 23:59:59'\n      timezone: UTC-12\n      date: July 21-23, 2025\n      place: Glasgow, Scotland, UK\n    - year: 2026\n      id: icdcs26\n      link: http://icdcs2026.icdcs.org/\n      timeline:\n        - abstract_deadline: '2026-01-21 23:59:59'\n          deadline: '2026-01-21 23:59:59'\n      timezone: AoE\n      date: June 22-25, 2026\n      place: Seoul, South Korea\n"
  },
  {
    "path": "conference/DS/icpads.yml",
    "content": "- title: ICPADS\n  description: IEEE International Conference on Parallel and Distributed Systems\n  sub: DS\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: icpads\n  confs:\n    - year: 2025\n      id: icpads25\n      link: http://ieee-icpads.org.cn/\n      timeline:\n        - deadline: '2025-08-31 18:00:00'\n      timezone: UTC+8\n      date: December 14-18, 2025\n      place: Hefei, China\n"
  },
  {
    "path": "conference/DS/icpp.yml",
    "content": "- title: ICPP\n  description: International Conference on Parallel Processing\n  sub: DS\n  rank:\n    ccf: B\n    core: B\n    thcpl: B\n  dblp: icpp\n  confs:\n    - year: 2021\n      id: icpp21\n      link: https://oaciss.uoregon.edu/icpp21/\n      timeline:\n        - deadline: '2021-04-16 23:59:59'\n      timezone: AoE\n      date: August 9-12, 2021\n      place: Chicago, USA\n    - year: 2022\n      id: icpp22\n      link: https://icpp22.gitlabpages.inria.fr/\n      timeline:\n        - abstract_deadline: '2022-04-08 23:59:59'\n          deadline: '2022-04-14 23:59:59'\n      timezone: AoE\n      date: August 29-Sept 12, 2022\n      place: Bordeaux, France\n    - year: 2023\n      id: icpp23\n      link: https://icpp23.sci.utah.edu/\n      timeline:\n        - deadline: '2023-04-14 23:59:59'\n          comment: Abstract Submission\n        - deadline: '2023-04-22 23:59:59'\n          comment: Paper Submission\n      timezone: AoE\n      date: August 7-August 10, 2023\n      place: Salt Lake City, UTAH, USA\n    - year: 2024\n      id: icpp24\n      link: https://icpp2024.org/\n      timeline:\n        - abstract_deadline: '2024-04-22 23:59:59'\n          deadline: '2024-04-29 23:59:59'\n      timezone: AoE\n      date: August 12-15, 2024\n      place: Gotland, Sweden\n    - year: 2025\n      id: icpp25\n      link: https://icpp2025.sdsc.edu\n      timeline:\n        - deadline: '2025-05-01 23:59:59'\n      timezone: AoE\n      date: September 8-11, 2025\n      place: San Diego, CA, USA\n    - year: 2026\n      id: icpp26\n      link: https://icpp2026.github.io/\n      timeline:\n        - abstract_deadline: '2026-04-24 23:59:59'\n          deadline: '2026-05-01 23:59:59'\n      timezone: AoE\n      date: September 28-October 1, 2026\n      place: Singapore\n"
  },
  {
    "path": "conference/DS/ics.yml",
    "content": "- title: ICS\n  description: ACM International Conference on Supercomputing\n  sub: DS\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: ics\n  confs:\n    - year: 2024\n      id: ics24\n      link: https://ics2024.github.io/\n      timeline:\n        - abstract_deadline: '2024-01-11 23:59:59'\n          deadline: '2024-01-18 23:59:59'\n      timezone: AoE\n      date: June 4-7, 2024\n      place: Kyoto University, Kyoto, Japan\n    - year: 2025\n      id: ics25\n      link: https://hpcrl.github.io/ICS2025-webpage/\n      timeline:\n        - abstract_deadline: '2025-01-13 23:59:59'\n          deadline: '2025-01-16 23:59:59'\n      timezone: AoE\n      date: June 9-11, 2025\n      place: Salt Lake City, U.S.A.\n    - year: 2026\n      id: ics26\n      link: https://dipsa-qub.github.io/ICS2026-webpage/\n      timeline:\n        - abstract_deadline: '2025-12-09 23:59:59'\n          deadline: '2025-12-16 23:59:59'\n          comment: 'Cycle 1'\n        - abstract_deadline: '2026-02-02 23:59:59'\n          deadline: '2026-02-09 23:59:59'\n          comment: 'Cycle 2'\n      timezone: AoE\n      date: July 6-9, 2026\n      place: Belfast, Northern Ireland, United Kingdom\n"
  },
  {
    "path": "conference/DS/iiswc.yml",
    "content": "- title: IISWC\n  description: IEEE International Symposium on Workload Characterization\n  sub: DS\n  rank:\n    ccf: N\n    core: N\n    thcpl: N\n  dblp: iiswc\n  confs:\n    - year: 2024\n      id: iiswc2024\n      link: https://iiswc.org/iiswc2024/\n      timeline:\n        - deadline: '2024-06-03 00:00:00'\n          comment: 'Submissions Due: 2024-06-03'\n      timezone: UTC\n      date: September 15-17, 2024\n      place: Vancouver BC Canada\n    - year: 2025\n      id: iiswc2025\n      link: https://iiswc.org/iiswc2025/\n      timeline:\n        - deadline: '2025-06-21 00:00:00'\n          comment: 'Submissions Due: 2025-06-21'\n      timezone: UTC\n      date: October 12-14, 2025\n      place: Irvine, USA\n"
  },
  {
    "path": "conference/DS/ipdps.yml",
    "content": "- title: IPDPS\n  description: IEEE International Parallel and Distributed Processing Symposium\n  sub: DS\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: ipps\n  confs:\n    - year: 2022\n      id: ipdps22\n      link: https://www.ipdps.org/ipdps2022/\n      timeline:\n        - abstract_deadline: '2021-10-01 23:59:59'\n          deadline: '2021-10-08 23:59:59'\n      timezone: AoE\n      date: May 30-June 3, 2022\n      place: Lyon, France\n    - year: 2023\n      id: ipdps23\n      link: https://www.ipdps.org/ipdps2023/\n      timeline:\n        - abstract_deadline: '2022-09-29 23:59:59'\n          deadline: '2022-10-06 23:59:59'\n      timezone: AoE\n      date: May 15-19, 2023\n      place: St. Petersburg, Florida USA\n    - year: 2024\n      id: ipdps24\n      link: https://www.ipdps.org/\n      timeline:\n        - abstract_deadline: '2023-09-28 23:59:59'\n          deadline: '2023-10-05 23:59:59'\n      timezone: AoE\n      date: May 27-31, 2024\n      place: San Francisco, California USA\n    - year: 2025\n      id: ipdps25\n      link: https://www.ipdps.org/\n      timeline:\n        - abstract_deadline: '2024-10-03 23:59:59'\n          deadline: '2024-10-10 23:59:59'\n      timezone: AoE\n      date: June 3-7, 2025\n      place: Politecnico di Milano, Milan, Italy\n    - year: 2026\n      id: ipdps26\n      link: https://www.ipdps.org/\n      timeline:\n        - abstract_deadline: '2025-10-02 23:59:59'\n          deadline: '2025-10-09 23:59:59'\n      timezone: AoE\n      date: May 25-29, 2026\n      place: New Orleans, USA\n"
  },
  {
    "path": "conference/DS/isca.yml",
    "content": "- title: ISCA\n  description: International Symposium on Computer Architecture\n  sub: DS\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: isca\n  confs:\n    - year: 2022\n      id: isca22\n      link: https://www.iscaconf.org/isca2022/\n      timeline:\n        - deadline: '2021-11-16 23:59:59'\n          comment: abstract deadline\n        - deadline: '2021-11-23 23:59:59'\n          comment: full paper deadline\n      timezone: AoE\n      date: June 11-15, 2022\n      place: New York City, USA\n    - year: 2023\n      id: isca23\n      link: https://www.iscaconf.org/isca2023/\n      timeline:\n        - deadline: '2022-11-14 23:59:59'\n          comment: abstract deadline\n        - deadline: '2022-11-21 23:59:59'\n          comment: full paper deadline\n      timezone: AoE\n      date: June 17-23, 2023\n      place: Orlando, FL, USA\n    - year: 2024\n      id: isca24\n      link: https://iscaconf.org/isca2024/\n      timeline:\n        - deadline: '2023-11-14 23:59:59'\n          comment: abstract deadline\n        - deadline: '2023-11-21 23:59:59'\n          comment: full paper deadline\n      timezone: AoE\n      date: June 29-July 3, 2024\n      place: Buenos Aires, Argentina\n    - year: 2025\n      id: isca25\n      link: https://iscaconf.org/isca2025/\n      timeline:\n        - deadline: '2024-11-15 23:59:59'\n          comment: abstract deadline\n        - deadline: '2024-11-22 23:59:59'\n          comment: full paper deadline\n      timezone: AoE\n      date: June 21-25, 2025\n      place: Tokyo, Japan\n    - year: 2026\n      id: isca26\n      link: https://iscaconf.org/isca2026/\n      timeline:\n        - deadline: '2025-11-10 23:59:59'\n          comment: abstract deadline\n        - deadline: '2025-11-17 23:59:59'\n          comment: full paper deadline\n      timezone: AoE\n      date: June 27-July 1, 2026\n      place: Raleigh, USA\n"
  },
  {
    "path": "conference/DS/iscas.yml",
    "content": "- title: ISCAS\n  description: IEEE International Symposium on Circuits and Systems\n  sub: DS\n  rank:\n    ccf: B\n    core: N\n    thcpl: B\n  dblp: iscas\n  confs:\n    - year: 2025\n      id: iscas25\n      link: https://2025.ieee-iscas.org/\n      timeline:\n        - deadline: '2024-10-14 23:59:59'\n      timezone: AoE\n      date: May 25-28, 2025\n      place: London, UK\n    - year: 2026\n      id: iscas26\n      link: https://2026.ieee-iscas.org/\n      timeline:\n        - deadline: '2025-10-12 23:59:59'\n      timezone: AoE\n      date: May 24-27, 2026\n      place: SHANGHAI, CHINA\n"
  },
  {
    "path": "conference/DS/ispa.yml",
    "content": "- title: ISPA\n  description: IEEE International Symposium on Parallel and Distributed Processing with Applications\n  sub: DS\n  rank:\n    ccf: C\n    core: C\n    thcpl: N\n  dblp: ispa\n  confs:\n    - year: 2021\n      id: ispa21\n      link: http://www.cloud-conf.net/ispa2021/\n      timeline:\n        - deadline: '2021-07-09 23:59:59'\n      timezone: AoE\n      date: September 30-October 3, 2021\n      place: New York, USA\n"
  },
  {
    "path": "conference/DS/itc-asia.yml",
    "content": "- title: ITC-Asia\n  description: IEEE International Test Conference in Asia\n  sub: DS\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: itc-asia\n  confs:\n    - year: 2026\n      id: itc-asia2026\n      link: https://www.castest.com.cn/itcasia_2026\n      timeline:\n        - abstract_deadline: '2026-04-18 23:59:59'\n          deadline: '2026-04-25 23:59:59'\n      timezone: UTC+8\n      date: August 19-21, 2026\n      place: Ningbo International Conference Center, Ningbo, China\n"
  },
  {
    "path": "conference/DS/itc.yml",
    "content": "- title: ITC\n  description: International Test Conference\n  sub: DS\n  rank:\n    ccf: B\n    core: A\n    thcpl: N\n  dblp: itc\n  confs:\n    - year: 2026\n      id: itc2026\n      link: https://www.itctestweek.org/\n      timeline:\n        - abstract_deadline: '2026-03-20 23:59:59'\n          deadline: '2026-04-24 23:59:59'\n      timezone: AoE\n      date: October 11-16, 2026\n      place: Grand Hyatt San Antonio Riverwalk, TX, USA\n"
  },
  {
    "path": "conference/DS/jcc.yml",
    "content": "- title: JCC\n  description: International Conference on JointCloud Computing\n  sub: DS\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: N\n  confs:\n    - year: 2025\n      id: jcc2025\n      link: https://jointcloud.cloud\n      timeline:\n        - abstract_deadline: '2026-04-10 23:59:59'\n          deadline: '2026-04-15 23:59:59'\n      timezone: AoE\n      date: Jul 27-30, 2026\n      place: Tokyo, Japan\n"
  },
  {
    "path": "conference/DS/micro.yml",
    "content": "- title: MICRO\n  description: IEEE/ACM International Symposium on Microarchitecture\n  sub: DS\n  rank:\n    ccf: A\n    core: A\n    thcpl: A\n  dblp: micro\n  confs:\n    - year: 2021\n      id: micro21\n      link: https://www.microarch.org/micro54/\n      timeline:\n        - deadline: '2021-04-09 23:59:59'\n          comment: abstract deadline\n        - deadline: '2021-04-16 23:59:59'\n          comment: full paper deadline\n      timezone: UTC-7\n      date: Oct 18-22, 2021\n      place: Athens, Greece\n    - year: 2022\n      id: micro22\n      link: https://www.microarch.org/micro55/\n      timeline:\n        - deadline: '2022-04-14 11:59:59'\n          comment: Abstract Deadline\n        - deadline: '2022-04-21 11:59:59'\n          comment: Full Paper Deadline\n      timezone: UTC-7\n      date: Oct, 2022\n      place: Chicago, Illinois, USA\n    - year: 2023\n      id: micro23\n      link: https://www.microarch.org/micro56/\n      timeline:\n        - deadline: '2023-04-21 11:59:59'\n          comment: Abstract Deadline\n        - deadline: '2023-04-28 11:59:59'\n          comment: Full Paper Deadline\n      timezone: UTC-7\n      date: Oct, 2023\n      place: Toronto, Canada\n    - year: 2024\n      id: micro24\n      link: https://microarch.org/micro57/\n      timeline:\n        - deadline: '2024-04-11 11:59:59'\n          comment: Abstract Deadline\n        - deadline: '2024-04-18 11:59:59'\n          comment: Full Paper Deadline\n      timezone: UTC-5\n      date: November 2-6, 2024\n      place: Austin, Texas, USA\n    - year: 2025\n      id: micro25\n      link: https://microarch.org/micro58/\n      timeline:\n        - abstract_deadline: '2025-04-04 23:59:59'\n          deadline: '2025-04-11 23:59:59'\n      timezone: UTC-4\n      date: October 18-22, 2025\n      place: Seoul, Korea\n    - year: 2026\n      id: micro26\n      link: https://microarch.org/micro59/\n      timeline:\n        - abstract_deadline: '2026-03-31 23:59:59'\n          deadline: '2026-04-07 23:59:59'\n      timezone: UTC-4\n      date: October 31-November 4, 2026\n      place: Athens, Greece\n"
  },
  {
    "path": "conference/DS/msst.yml",
    "content": "- title: MSST\n  description: International Conference on Massive Storage Systems and Technology\n  sub: DS\n  rank:\n    ccf: B\n    core: N\n    thcpl: B\n  dblp: mss\n  confs:\n    - year: 2024\n      id: msst2024\n      link: https://storageconference.us/index.html\n      timeline:\n        - deadline: '2024-01-07 04:59:59'\n      timezone: UTC\n      date: June 3-7, 2024\n      place: Santa Clara, CA\n"
  },
  {
    "path": "conference/DS/netys.yml",
    "content": "- title: NETYS\n  description: The International Conference on Networked Systems\n  sub: DS\n  rank:\n    ccf: N\n    core: N\n    thcpl: N\n  dblp: netys\n  confs:\n    - year: 2024\n      id: netys2024\n      link: https://netys.net/\n      timeline:\n        - abstract_deadline: '2024-02-29 23:59:00'\n          deadline: '2024-03-07 23:59:00'\n      timezone: AoE\n      date: May 29-31, 2024\n      place: Rabat, Morocco\n"
  },
  {
    "path": "conference/DS/pact.yml",
    "content": "- title: PACT\n  description: International Conference on Parallel Architectures and Compilation Techniques\n  sub: DS\n  rank:\n    ccf: B\n    core: B\n    thcpl: B\n  dblp: pact\n  confs:\n    - year: 2023\n      id: pact23\n      link: https://pact2023.github.io/\n      timeline:\n        - deadline: '2023-03-25 23:59:59'\n          comment: Abstract submission deadline\n        - deadline: '2023-04-01 23:59:59'\n          comment: Paper submission deadline\n      timezone: AoE\n      date: October 21-October 25, 2023\n      place: Vienna, Austria\n    - year: 2024\n      id: pact24\n      link: https://pact2024.github.io/\n      timeline:\n        - deadline: '2024-03-25 23:59:59'\n          comment: Abstract submission deadline\n        - deadline: '2024-04-01 23:59:59'\n          comment: Paper submission deadline\n      timezone: AoE\n      date: October 13-16, 2024\n      place: Long Beach, California, USA\n    - year: 2025\n      id: pact25\n      link: https://pact2025.github.io/\n      timeline:\n        - deadline: '2025-04-11 23:59:59'\n          comment: Abstract submission deadline\n        - deadline: '2025-04-18 23:59:59'\n          comment: Paper submission deadline\n      timezone: AoE\n      date: November 3-6, 2025\n      place: Irvine, California, USA\n"
  },
  {
    "path": "conference/DS/pdcat.yml",
    "content": "- title: PDCAT\n  description: International Conference on Parallel and Distributed Computing, Applications and Technologies\n  sub: DS\n  rank:\n    ccf: N\n    core: C\n    thcpl: N\n  dblp: pdcat\n  confs:\n    - year: 2025\n      id: pdcat2025\n      link: https://www.pd-cat.org/\n      timeline:\n        - deadline: '2025-08-15 23:59:00'\n      timezone: UTC+10\n      date: November 22-November 24, 2025\n      place: Gold Coast, Australia\n"
  },
  {
    "path": "conference/DS/podc.yml",
    "content": "- title: PODC\n  description: ACM Symposium on Principles of Distributed Computing\n  sub: DS\n  rank:\n    ccf: B\n    core: A*\n    thcpl: B\n  dblp: podc\n  confs:\n    - year: 2024\n      id: podc24\n      link: https://www.podc.org/podc2024\n      timeline:\n        - abstract_deadline: '2024-02-11 23:59:59'\n          deadline: '2024-02-15 23:59:59'\n      timezone: AoE\n      date: June 17-21, 2024\n      place: Nantes, France\n"
  },
  {
    "path": "conference/DS/ppopp.yml",
    "content": "- title: PPoPP\n  description: ACM SIGPLAN Symposium on Principles & Practice of Parallel Programming\n  sub: DS\n  rank:\n    ccf: A\n    core: B\n    thcpl: A\n  dblp: ppopp\n  confs:\n    - year: 2021\n      id: ppopp21\n      link: https://ppopp21.sigplan.org/\n      timeline:\n        - abstract_deadline: '2020-08-06 23:59:59'\n          deadline: '2020-08-13 23:59:59'\n      timezone: AoE\n      date: February 27-Mar 3, 2021\n      place: Virtual\n    - year: 2022\n      id: ppopp22\n      link: https://ppopp22.sigplan.org/\n      timeline:\n        - abstract_deadline: '2021-08-09 23:59:59'\n          deadline: '2021-08-13 23:59:59'\n      timezone: AoE\n      date: February 12-16, 2022\n      place: Seoul, S. Korea\n    - year: 2023\n      id: ppopp23\n      link: https://ppopp23.sigplan.org/\n      timeline:\n        - deadline: '2022-08-17 23:59:59'\n      timezone: AoE\n      date: February 25-Mar 1, 2023\n      place: Montreal, Canada\n    - year: 2024\n      id: ppopp24\n      link: https://conf.researchr.org/home/ppopp-2024\n      timeline:\n        - deadline: '2023-08-04 23:59:59'\n      timezone: AoE\n      date: Mar 2-Mar 6, 2024\n      place: Edinburgh, United Kingdom\n    - year: 2025\n      id: ppopp25\n      link: https://ppopp25.sigplan.org/\n      timeline:\n        - deadline: '2024-08-16 23:59:59'\n      timezone: AoE\n      date: Mar 1-5, 2025\n      place: Las Vegas, Nevada, USA\n    - year: 2026\n      id: ppopp26\n      link: https://ppopp26.sigplan.org/\n      timeline:\n        - deadline: '2025-09-01 23:59:59'\n      timezone: AoE\n      date: Jan 31-Feb 4, 2026\n      place: Sydney, Australia\n"
  },
  {
    "path": "conference/DS/rtas.yml",
    "content": "- title: RTAS\n  description: IEEE Real-Time and Embedded Technology and Applications Symposium\n  sub: DS\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: rtas\n  confs:\n    - year: 2024\n      id: rtas2024\n      link: https://2024.rtas.org/\n      timeline:\n        - deadline: '2023-10-31 11:59:59'\n          comment: Submission Deadline (firm)\n      timezone: AoE\n      date: May 13-16, 2024\n      place: Hong Kong, China\n    - year: 2026\n      id: rtas2026\n      link: https://2026.rtas.org/\n      timeline:\n        - deadline: '2025-11-13 11:59:59'\n      timezone: AoE\n      date: May 12-14, 2026\n      place: Saint Malo, France\n"
  },
  {
    "path": "conference/DS/sc.yml",
    "content": "- title: SC\n  description: International Conference for High Performance Computing, Networking, Storage, and Analysis\n  sub: DS\n  rank:\n    ccf: A\n    core: A\n    thcpl: A\n  dblp: sc\n  confs:\n    - year: 2022\n      id: sc22\n      link: https://sc22.supercomputing.org/\n      timeline:\n        - deadline: '2022-04-01 23:59:00'\n      timezone: AoE\n      date: November 13-18, 2022\n      place: Dallas, Texas, USA\n    - year: 2023\n      id: sc23\n      link: https://sc23.supercomputing.org/\n      timeline:\n        - deadline: '2023-04-06 23:59:00'\n      timezone: AoE\n      date: November 12-17, 2023\n      place: DENVER, CO, USA\n    - year: 2024\n      id: sc24\n      link: https://sc24.supercomputing.org/\n      timeline:\n        - abstract_deadline: '2024-03-26 23:59:59'\n          deadline: '2024-04-02 23:59:00'\n      timezone: AoE\n      date: November 17-22, 2024\n      place: ATLANTA, GA, USA\n    - year: 2025\n      id: sc25\n      link: https://sc25.supercomputing.org/\n      timeline:\n        - abstract_deadline: '2025-04-07 23:59:59'\n          deadline: '2025-04-14 23:59:00'\n      timezone: AoE\n      date: November 16-21, 2025\n      place: St. louis, Missouri, USA\n    - year: 2026\n      id: sc26\n      link: https://sc26.supercomputing.org/\n      timeline:\n        - abstract_deadline: '2026-04-01 23:59:59'\n          deadline: '2026-04-08 23:59:00'\n      timezone: AoE\n      date: November 15-20, 2026\n      place: McCormick Place, Chicago, Illinois, USA\n"
  },
  {
    "path": "conference/DS/sec.yml",
    "content": "- title: SEC\n  description: ACM/IEEE Symposium on Edge Computing\n  sub: DS\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: ieeesec\n  confs:\n    - year: 2026\n      id: sec2026\n      link: https://acm-ieee-sec.org/2026/\n      timeline:\n        - abstract_deadline: '2026-04-24 23:59:59'\n          deadline: '2026-05-01 23:59:59'\n      timezone: AoE\n      date: Oct 13-16, 2026\n      place: Santa Clara University, CA, USA\n"
  },
  {
    "path": "conference/DS/sigmetrics.yml",
    "content": "- title: SIGMETRICS\n  description: ACM Special Interest Group on Measurement and Evaluation\n  sub: DS\n  rank:\n    ccf: B\n    core: A*\n    thcpl: A\n  dblp: sigmetrics\n  confs:\n    - year: 2025\n      id: sigmetrics25\n      link: https://www.sigmetrics.org/sigmetrics2025/\n      timeline:\n        - abstract_deadline: '2024-07-31 23:59:00'\n          deadline: '2024-08-07 23:59:00'\n          comment: summer round\n        - abstract_deadline: '2024-10-02 23:59:00'\n          deadline: '2024-10-09 23:59:00'\n          comment: fall round\n        - abstract_deadline: '2025-01-15 23:59:00'\n          deadline: '2025-01-22 23:59:00'\n          comment: winter round\n      timezone: AoE\n      date: June 9-13, 2025\n      place: Stony Brook, New York, USA\n    - year: 2026\n      id: sigmetrics26\n      link: https://www.sigmetrics.org/sigmetrics2026/\n      timeline:\n        - abstract_deadline: '2025-07-22 23:59:00'\n          deadline: '2025-07-29 23:59:00'\n          comment: 'summer round'\n        - abstract_deadline: '2025-10-07 23:59:00'\n          deadline: '2025-10-14 23:59:00'\n          comment: 'fall round'\n        - abstract_deadline: '2026-01-06 23:59:00'\n          deadline: '2026-01-13 23:59:00'\n          comment: 'winter round'\n      timezone: AoE\n      date: June 8-12, 2026\n      place: Ann Arbor, Michigan, USA\n    - year: 2027\n      id: sigmetrics27\n      link: https://www.sigmetrics.org/sigmetrics2027/\n      timeline:\n        - abstract_deadline: 'TBD'\n          deadline: 'TBD'\n      timezone: AoE\n      date: TBD\n      place: Atlanta, Georgia, USA\n"
  },
  {
    "path": "conference/DS/socc.yml",
    "content": "- title: SoCC\n  description: ACM Symposium on Cloud Computing\n  sub: DS\n  rank:\n    ccf: B\n    core: N\n    thcpl: B\n  dblp: cloud\n  confs:\n    - year: 2023\n      id: socc23\n      link: https://acmsocc.org/2023/\n      timeline:\n        - deadline: '2023-06-09 13:59:00'\n          comment: abstract and full paper deadline\n      timezone: UTC-7\n      date: October 30 - November 1, 2023\n      place: California, USA\n    - year: 2024\n      id: socc24\n      link: https://acmsocc.org/2024/\n      timeline:\n        - abstract_deadline: '2024-07-08 17:00:00'\n          deadline: '2024-07-15 17:00:00'\n      timezone: UTC-4\n      date: November 20-22, 2024\n      place: Redmond, USA\n    - year: 2026\n      id: socc26\n      link: https://acmsocc.org/2026/\n      timeline:\n        - abstract_deadline: '2026-02-06 23:59:59'\n          deadline: '2026-02-13 23:59:59'\n          comment: First round\n        - abstract_deadline: '2026-07-07 23:59:59'\n          deadline: '2026-07-14 23:59:59'\n          comment: Second round\n      timezone: AoE\n      date: November 18-20, 2026\n      place: Singapore\n"
  },
  {
    "path": "conference/DS/spaa.yml",
    "content": "- title: SPAA\n  description: ACM Symposium on Parallelism in Algorithms and Architectures\n  sub: DS\n  rank:\n    ccf: B\n    core: B\n    thcpl: B\n  dblp: spaa\n  confs:\n    - year: 2024\n      id: spaa24\n      link: https://spaa.acm.org/\n      timeline:\n        - abstract_deadline: '2024-01-19 23:59:00'\n          deadline: '2024-01-24 23:59:00'\n      timezone: AoE\n      date: June 17-21, 2024\n      place: Nantes, France\n    - year: 2025\n      id: spaa25\n      link: https://spaa.acm.org/call-for-papers/\n      timeline:\n        - abstract_deadline: '2025-02-21 23:59:59'\n          deadline: '2025-02-28 23:59:59'\n      timezone: AoE\n      date: July 28 - August 1, 2025\n      place: Portland, Oregon\n    - year: 2026\n      id: spaa26\n      link: https://spaa.acm.org/\n      timeline:\n        - abstract_deadline: '2026-02-20 23:59:59'\n          deadline: '2026-02-27 23:59:59'\n      timezone: AoE\n      date: July 6 - July 10, 2026\n      place: London, UK\n"
  },
  {
    "path": "conference/DS/systor.yml",
    "content": "- title: SYSTOR\n  description: The ACM International Systems and Storage Conference\n  sub: DS\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: systor\n  confs:\n    - year: 2024\n      id: systor24\n      link: https://www.systor.org/2024/\n      timeline:\n        - deadline: '2024-03-13 23:59:59'\n          comment: Full and Short Papers Track\n        - deadline: '2024-04-03 23:59:59'\n          comment: Highlight Papers Track\n        - deadline: '2024-04-11 22:59:59'\n          comment: Posters with Extended Abstract Track\n      timezone: UTC+1\n      date: June 17-19, 2024\n      place: Tel Aviv, Israel\n    - year: 2025\n      id: systor25\n      link: https://www.systor.org/2025/\n      timeline:\n        - deadline: '2025-05-22 23:59:59'\n          comment: Full and Short Papers Track\n        - deadline: '2025-07-03 22:59:59'\n          comment: Posters with Extended Abstract Track\n      timezone: AoE\n      date: September 8-9, 2025\n      place: IBM Haifa, Israel\n"
  },
  {
    "path": "conference/DS/vee.yml",
    "content": "- title: VEE\n  description: Virtual Execution Environments\n  sub: DS\n  rank:\n    ccf: B\n    core: B\n    thcpl: B\n  dblp: vee\n  confs:\n    - year: 2022\n      id: vee2022\n      link: https://conf.researchr.org/home/vee-2022\n      timeline:\n        - deadline: '2021-12-03 23:59:59'\n      timezone: AoE\n      date: Feb 28-March 4, 2022\n      place: Virtual\n"
  },
  {
    "path": "conference/HI/assets.yml",
    "content": "- title: ASSETS\n  description: ACM SIGACCESS Conference on Computers and Accessibility\n  sub: HI\n  rank:\n    ccf: C\n    core: A\n    thcpl: B\n  dblp: assets\n  confs:\n    - year: 2025\n      id: assets25\n      link: https://assets25.sigaccess.org/\n      timeline:\n        - deadline: '2025-04-16 23:59:59'\n      timezone: AoE\n      date: Oct 26 - 29, 2025\n      place: Denver, Colorado\n"
  },
  {
    "path": "conference/HI/chi.yml",
    "content": "- title: CHI\n  description: ACM Conference on Human Factors in Computing Systems\n  sub: HI\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: chi\n  confs:\n    - year: 2024\n      id: chi24\n      link: http://chi2024.acm.org/\n      timeline:\n        - abstract_deadline: '2023-09-07 23:59:59'\n          deadline: '2023-09-14 23:59:59'\n      timezone: AoE\n      date: May 11 - May 16, 2024\n      place: Honolulu, Hawaii, USA\n    - year: 2025\n      id: chi25\n      link: https://chi2025.acm.org/\n      timeline:\n        - abstract_deadline: '2024-09-05 23:59:59'\n          deadline: '2024-09-12 23:59:59'\n      timezone: AoE\n      date: April 26 - May 1, 2025\n      place: Yokohama, Japan\n    - year: 2026\n      id: chi26\n      link: https://chi2026.acm.org/\n      timeline:\n        - abstract_deadline: '2025-09-04 23:59:59'\n          deadline: '2025-09-11 23:59:59'\n      timezone: AoE\n      date: April 13 - 17, 2026\n      place: Centre de Convencions Internacional de Barcelona, Barcelona, Spain\n"
  },
  {
    "path": "conference/HI/collaboratecom.yml",
    "content": "- title: CollaborateCom\n  description: \"International Conference on Collaborative Computing: Networking, Applications and Worksharing\"\n  sub: HI\n  rank:\n    ccf: C\n    core: C\n    thcpl: N\n  dblp: colcom\n  confs:\n    - year: 2025\n      id: collaboratecom25\n      link: https://collaboratecom.eai-conferences.org/2025/\n      timeline:\n        - deadline: '2025-05-01 23:59:59'\n      timezone: UTC-8\n      date: November 15-16, 2025\n      place: Shanghai, China\n    - year: 2026\n      id: collaboratecom26\n      link: https://collaboratecom.eai-conferences.org/2026/\n      timeline:\n        - deadline: '2026-05-01 23:59:59'\n      timezone: UTC-8\n      date: November 14-15, 2026\n      place: Hong Kong SAR, China\n"
  },
  {
    "path": "conference/HI/cscw.yml",
    "content": "- title: CSCW\n  description: ACM Conference on Computer Supported Cooperative Work and Social Computing\n  sub: HI\n  rank:\n    ccf: A\n    core: A\n    thcpl: A\n  dblp: cscw\n  confs:\n    - year: 2021\n      id: cscw21\n      link: https://cscw.acm.org/2021/\n      timeline:\n        - deadline: '2021-04-15 23:59:59'\n      timezone: AoE\n      date: TBD\n      place: Virtual\n    - year: 2022\n      id: cscw22\n      link: https://cscw.acm.org/2022/\n      timeline:\n        - deadline: '2022-01-15 23:59:59'\n      timezone: AoE\n      date: January 1, 2022\n      place: Taiwan\n    - year: 2023\n      id: cscw23\n      link: https://cscw.acm.org/2023/\n      timeline:\n        - deadline: '2023-06-01 23:59:59'\n      timezone: AoE\n      date: October 14-18, 2023\n      place: Minneapolis, MN, USA\n    - year: 2024\n      id: cscw24\n      link: https://cscw.acm.org/2024/\n      timeline:\n        - deadline: '2024-01-16 23:59:59'\n      timezone: AoE\n      date: November 9-13, 2024\n      place: San José, Costa Rica\n    - year: 2025\n      id: cscw25\n      link: https://cscw.acm.org/2025/\n      timeline:\n        - deadline: '2024-07-02 23:59:59'\n          comment: 'JULY 2024 CYCLE'\n        - deadline: '2024-10-29 23:59:59'\n          comment: 'OCTOBER 2024 CYCLE'\n      timezone: AoE\n      date: October 18-22, 2025\n      place: Bergen, Norway\n    - year: 2026\n      id: cscw26\n      link: https://cscw.acm.org/2026/\n      timeline:\n        - deadline: '2025-05-13 23:59:59'\n          comment: 'MAY 2025 SUBMISSION CYCLE'\n      timezone: AoE\n      date: October 10-14, 2026\n      place: Salt Lake City, Utah, USA\n"
  },
  {
    "path": "conference/HI/cscwd.yml",
    "content": "- title: CSCWD\n  description: International Conference on Computer Supported Cooperative Work in Design\n  sub: HI\n  rank:\n    ccf: C\n    core: C\n    thcpl: N\n  dblp: cscwd\n  confs:\n    - year: 2022\n      id: cscwd22\n      link: http://8.131.80.51/cscwd2022/index.html\n      timeline:\n        - deadline: '2021-11-30 23:59:59'\n      timezone: AoE\n      date: May 4-6, 2022\n      place: Hangzhou, China\n    - year: 2023\n      id: cscwd23\n      link: http://2023.cscwd.org\n      timeline:\n        - deadline: '2022-10-31 23:59:59'\n      timezone: AoE\n      date: May 24-26, 2023\n      place: Rio de Janeiro, Brazil\n    - year: 2025\n      id: cscwd25\n      link: http://2025.cscwd.org\n      timeline:\n        - deadline: '2024-11-15 23:59:59'\n      timezone: AoE\n      date: May 5-7, 2025\n      place: Compiègne, France\n"
  },
  {
    "path": "conference/HI/dis.yml",
    "content": "- title: DIS\n  description: ACM Conference on Designing Interactive Systems\n  sub: HI\n  rank:\n    ccf: C\n    core: A\n    thcpl: B\n  dblp: ACMdis\n  confs:\n    - year: 2025\n      id: dis25\n      link: https://dis.acm.org/2025/\n      timeline:\n        - abstract_deadline: '2025-01-13 23:59:59'\n          deadline: '2025-01-20 23:59:59'\n      timezone: AoE\n      date: July 5 - 9, 2025\n      place: Funchal, Madeira, Portugal\n    - year: 2026\n      id: dis26\n      link: https://dis.acm.org/2026/\n      timeline:\n        - abstract_deadline: '2026-01-09 23:59:59'\n          deadline: '2026-01-19 23:59:59'\n      timezone: AoE\n      date: June 13 - 17, 2026\n      place: Singapore\n"
  },
  {
    "path": "conference/HI/ecscw.yml",
    "content": "- title: ECSCW\n  description: European Conference on Computer Supported Cooperative Work\n  sub: HI\n  rank:\n    ccf: B\n    core: B\n    thcpl: N\n  dblp: ecscw\n  confs:\n    - year: 2025\n      id: ecscw25\n      link: https://ecscw.eusset.eu/2025/\n      timeline:\n        - deadline: '2025-02-25 23:59:59'\n          comment: 'Conference Papers'\n      timezone: AoE\n      date: June 30 - July 4, 2025\n      place: Newcastle upon Tyne, UK\n    - year: 2026\n      id: ecscw26\n      link: https://ecscw.eusset.eu/2026\n      timeline:\n        - deadline: '2026-03-06 23:59:59'\n          comment: 'Conference Papers'\n      timezone: AoE\n      date: 29 June - 3 July, 2026\n      place: Munich, Germany\n"
  },
  {
    "path": "conference/HI/group.yml",
    "content": "- title: GROUP\n  description: ACM International Conference on Supporting Group Work\n  sub: HI\n  rank:\n    ccf: B\n    core: B\n    thcpl: N\n  dblp: group\n  confs:\n    - year: 2025\n      id: group25\n      link: https://group.acm.org/conferences/group25\n      timeline:\n        - deadline: '2023-06-07 23:59:59'\n          comment: 'Full Paper First Wave Submissions'\n        - abstract_deadline: '2024-05-01 23:59:59'\n          deadline: '2024-05-08 23:59:59'\n          comment: 'Full Paper Second Wave Submissions'\n      timezone: AoE\n      date: January 12-15, 2025\n      place: Omni Hilton Head Oceanfront Resort, Hilton Head Island, South Carolina, USA\n    - year: 2027\n      id: group27\n      link: https://group.acm.org/conferences/group27/\n      timeline:\n        - abstract_deadline: '2025-07-08 23:59:59'\n          deadline: '2025-07-15 23:59:59'\n          comment: 'Full Paper First Wave Submissions'\n      timezone: AoE\n      date: January 10-13, 2027\n      place: St Simons Island, Georgia, USA\n"
  },
  {
    "path": "conference/HI/icmi.yml",
    "content": "- title: ICMI\n  description: ACM International Conference on Multimodal Interaction\n  sub: HI\n  rank:\n    ccf: C\n    core: B\n    thcpl: B\n  dblp: icmi\n  confs:\n    - year: 2024\n      id: icmi24\n      link: https://icmi.acm.org/2024/\n      timeline:\n        - abstract_deadline: '2024-04-26 23:59:59'\n          deadline: '2024-05-10 23:59:59'\n      timezone: UTC+7\n      date: Nov 4 - 8, 2024\n      place: San José, Costa Rica\n    - year: 2025\n      id: icmi25\n      link: https://icmi.acm.org/2025/\n      timeline:\n        - abstract_deadline: '2025-04-25 23:59:59'\n          deadline: '2025-05-02 23:59:59'\n      timezone: UTC+7\n      date: Oct 13 - 17, 2025\n      place: Canberra, Australia\n    - year: 2026\n      id: icmi26\n      link: https://icmi.acm.org/2026/\n      timeline:\n        - abstract_deadline: '2026-04-13 23:59:59'\n          deadline: '2026-04-20 23:59:59'\n      timezone: UTC+7\n      date: Oct 5 - 9, 2026\n      place: Napoli, Italy\n"
  },
  {
    "path": "conference/HI/icwsm.yml",
    "content": "- title: ICWSM\n  description: The International AAAI Conference on Web and Social Media\n  sub: HI\n  rank:\n    ccf: B\n    core: A\n    thcpl: N\n  dblp: icwsm\n  confs:\n    - year: 2025\n      id: icwsm2025\n      link: https://www.icwsm.org/2025/index.html\n      timeline:\n        - deadline: '2024-05-15 23:59:59'\n          comment: 1st Full-paper Deadline\n        - deadline: '2024-09-15 23:59:59'\n          comment: 2nd Full-paper Deadline\n        - deadline: '2025-01-15 23:59:59'\n          comment: 3rd Full-paper Deadline\n      timezone: AoE\n      date: June 23 - 26, 2025\n      place: Copenhagen, Denmark\n    - year: 2026\n      id: icwsm2026\n      link: https://www.icwsm.org/2026/index.html\n      timeline:\n        - deadline: '2025-05-15 23:59:59'\n          comment: 1st Full-paper Deadline\n        - deadline: '2025-09-15 23:59:59'\n          comment: 2nd Full-paper Deadline\n        - deadline: '2026-01-15 23:59:59'\n          comment: 3rd Full-paper Deadline\n      timezone: AoE\n      date: May 27-29, 2026\n      place: Los Angeles, CA, USA\n"
  },
  {
    "path": "conference/HI/iss.yml",
    "content": "- title: ISS\n  description: ACM International Conference on Interactive Surfaces and Spaces\n  sub: HI\n  rank:\n    ccf: B\n    core: N\n    thcpl: N\n  dblp: tabletop\n  confs:\n    - year: 2025\n      id: iss25\n      link: https://iss.acm.org/2025/\n      timeline:\n        - deadline: '2025-03-14 23:59:59'\n          commet: \"First round 2025 \\t\"\n        - deadline: '2025-07-25 23:59:59'\n          commet: 'Second round 2025'\n      timezone: AoE\n      date: TBD\n      place: TBD\n"
  },
  {
    "path": "conference/HI/iui.yml",
    "content": "- title: IUI\n  description: ACM Conference on Intelligent User Interfaces\n  sub: HI\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: iui\n  confs:\n    - year: 2024\n      id: iui24\n      link: https://iui.acm.org/2024/\n      timeline:\n        - abstract_deadline: '2023-10-02 23:59:59'\n          deadline: '2023-10-09 23:59:59'\n      timezone: AoE\n      date: March 18 - March 21, 2024\n      place: Greenville, South Carolina USA\n    - year: 2025\n      id: iui25\n      link: https://iui.acm.org/2025/\n      timeline:\n        - abstract_deadline: '2024-10-02 23:59:59'\n          deadline: '2024-10-09 23:59:59'\n      timezone: AoE\n      date: March 24 - March 27, 2025\n      place: Cagliari, Italy\n    - year: 2026\n      id: iui26\n      link: https://iui.hosting.acm.org/2026/\n      timeline:\n        - abstract_deadline: '2025-10-03 23:59:59'\n          deadline: '2025-10-10 23:59:59'\n      timezone: AoE\n      date: March 23 - 26, 2026\n      place: Paphos, Cyprus\n"
  },
  {
    "path": "conference/HI/percom.yml",
    "content": "- title: PerCom\n  description: IEEE International Conference on Pervasive Computing and Communications\n  sub: HI\n  rank:\n    ccf: B\n    core: A*\n    thcpl: B\n  dblp: percom\n  confs:\n    - year: 2025\n      id: percom25\n      link: https://percom.org/\n      timeline:\n        - abstract_deadline: '2024-09-29 23:59:00'\n          deadline: '2024-10-04 23:59:00'\n      timezone: AoE\n      date: March 17 - 21, 2025\n      place: Walter E. Washington Convention Center, Washington DC, USA\n    - year: 2026\n      id: percom26\n      link: https://percom.org/\n      timeline:\n        - abstract_deadline: '2025-10-03 23:59:00'\n          deadline: '2025-10-03 23:59:00'\n      timezone: AoE\n      date: March 16 - 20, 2026\n      place: Pisa, Italy\n"
  },
  {
    "path": "conference/HI/ubicomp.yml",
    "content": "- title: UbiComp/ISWC\n  description: ACM International Joint Conference on Pervasive and Ubiquitous Computing\n  sub: HI\n  rank:\n    ccf: A\n    core: N\n    thcpl: A\n  dblp: huc\n  confs:\n    - year: 2026\n      id: ubicomp26\n      link: https://www.ubicomp.org/ubicomp-iswc-2026\n      timeline:\n        - deadline: '2026-02-01 23:59:59'\n          comment: first round\n        - deadline: '2026-05-01 23:59:59'\n          comment: second round\n        - deadline: '2026-08-01 23:59:59'\n          comment: third round (only for resubmissions after major revisions)\n        - deadline: '2026-11-01 23:59:59'\n          comment: fourth round\n      timezone: AoE\n      date: October 11-15, 2026\n      place: Shanghai, China\n    - year: 2025\n      id: ubicomp25\n      link: https://www.ubicomp.org/ubicomp-iswc-2025\n      timeline:\n        - deadline: '2025-02-01 23:59:59'\n          comment: first round\n        - deadline: '2025-05-01 23:59:59'\n          comment: second round\n        - deadline: '2025-08-01 23:59:59'\n          comment: third round (only for resubmissions after major revisions)\n        - deadline: '2025-11-01 23:59:59'\n          comment: fourth round\n      timezone: AoE\n      date: October 12-16, 2025\n      place: Espoo, Finland\n    - year: 2024\n      id: huc24\n      link: https://www.ubicomp.org/ubicomp-iswc-2024\n      timeline:\n        - deadline: '2024-02-01 23:59:59'\n          comment: first round\n        - deadline: '2024-05-01 23:59:59'\n          comment: second round\n        - deadline: '2024-08-01 23:59:59'\n          comment: third round (only for revised paper)\n        - deadline: '2024-11-01 23:59:59'\n          comment: fourth round\n      timezone: AoE\n      date: October 5-9, 2024\n      place: Melbourne, Australia\n    - year: 2023\n      id: huc23\n      link: https://www.ubicomp.org/ubicomp-iswc-2023\n      timeline:\n        - deadline: '2023-02-15 23:59:59'\n          comment: first round\n        - deadline: '2023-05-15 23:59:59'\n          comment: second round\n        - deadline: '2023-08-15 23:59:59'\n          comment: third round\n        - deadline: '2023-11-15 23:59:59'\n          comment: fourth round\n      timezone: UTC-5\n      date: October 8-12, 2023\n      place: Cancún, Mexico\n"
  },
  {
    "path": "conference/HI/uic.yml",
    "content": "- title: UIC\n  description: IEEE International Conference on Ubiquitous Intelligence and Computing\n  sub: HI\n  rank:\n    ccf: C\n    core: B\n    thcpl: N\n  dblp: uic\n  confs:\n    - year: 2025\n      id: uic25\n      link: https://www.ieee-smart-world.org/2025/\n      timeline:\n        - deadline: '2025-05-01 23:59:59'\n          comment: 'Conference Papers'\n      timezone: UTC-4\n      date: Aug 18 - 22, 2025\n      place: Calgary, Alberta, Canada\n"
  },
  {
    "path": "conference/HI/uist.yml",
    "content": "- title: UIST\n  description: ACM Symposium on User Interface Software and Technology\n  sub: HI\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: uist\n  confs:\n    - year: 2024\n      id: uist2024\n      link: https://uist.acm.org/2024\n      timeline:\n        - deadline: '2024-03-27 17:00:00'\n          comment: abstract deadline\n        - deadline: '2024-04-03 17:00:00'\n          comment: paper deadline\n      timezone: UTC-8\n      date: October 13-16, 2024\n      place: Pittsburgh, Pennsylvania, USA\n    - year: 2025\n      id: uist2025\n      link: https://uist.acm.org/2025/\n      timeline:\n        - deadline: '2025-04-02 17:00:00'\n          comment: abstract deadline\n        - deadline: '2025-04-09 17:00:00'\n          comment: paper deadline\n      timezone: UTC-8\n      date: Sep 28 - Oct 1, 2025\n      place: Busan, Korea\n    - year: 2026\n      id: uist2026\n      link: https://uist.acm.org/2026/\n      timeline:\n        - abstract_deadline: '2026-03-24 23:59:59'\n          deadline: '2026-03-31 23:59:59'\n      timezone: AoE\n      date: November 2 - 5, 2026\n      place: GM Renaissance Center, Detroit, MI, USA\n"
  },
  {
    "path": "conference/MX/apbc.yml",
    "content": "- title: APBC\n  description: Asia Pacific Bioinformatics Conference\n  sub: MX\n  rank:\n    ccf: C\n    core: B\n    thcpl: N\n  dblp: apbc\n  confs:\n    - year: 2025\n      id: apbc25\n      link: https://bioinfo.nuaa.edu.cn/apbc2025/main.psp\n      timeline:\n        - deadline: '2025-06-15 23:59:59'\n      timezone: UTC+0\n      date: September 19-22, 2025\n      place: Nanjing， China\n    - year: 2026\n      id: apbc26\n      link: https://www.apbc2026.com/home\n      timeline:\n        - deadline: '2026-06-15 23:59:59'\n      timezone: UTC+0\n      date: October 21-24, 2026\n      place: Hsinchu, Taiwan， China\n"
  },
  {
    "path": "conference/MX/bibm.yml",
    "content": "- title: BIBM\n  description: IEEE International Conference on Bioinformatics and Biomedicine\n  sub: MX\n  rank:\n    ccf: B\n    core: N\n    thcpl: N\n  dblp: bibm\n  confs:\n    - year: 2021\n      id: bibm21\n      link: https://ieeebibm.org/BIBM2021/\n      timeline:\n        - deadline: '2021-08-28 17:00:00'\n          comment: Electronic submission of full papers\n      timezone: UTC-5\n      date: Dec 9-12, 2021\n      place: Online\n    - year: 2022\n      id: bibm22\n      link: http://ieeebibm.org/BIBM2022/\n      timeline:\n        - deadline: '2022-08-21 17:00:00'\n          comment: Electronic submission of full papers\n      timezone: UTC-5\n      date: Dec 6-9, 2022\n      place: Las Vegas, NV, USA\n    - year: 2023\n      id: bibm23\n      link: https://bidma.cpsc.ucalgary.ca/IEEE-BIBM-2023/\n      timeline:\n        - deadline: '2023-08-15 17:00:00'\n          comment: Electronic submission of full papers\n      timezone: UTC-5\n      date: Dec 5-8, 2023\n      place: Istanbul, Turkey\n    - year: 2024\n      id: bibm24\n      link: https://ieeebibm.org/BIBM2024/\n      timeline:\n        - deadline: '2024-06-20 17:00:00'\n          comment: First Round, papers submitted by the June 20 deadline will be reviewed and notified by Aug 15\n        - deadline: '2024-08-16 17:00:00'\n          comment: Second Round, papers submitted by the Aug 16, 2024 deadline, will be reviewed and notified by the Oct 16, 2024\n      timezone: UTC-5\n      date: Dec 3-6, 2024\n      place: Lisbon, Portugal\n    - year: 2025\n      id: bibm25\n      link: https://ieeebibm.org/BIBM2025/\n      timeline:\n        - deadline: '2025-08-03 17:00:00'\n      timezone: UTC-5\n      date: Dec 15-18, 2025\n      place: Wuhan, China\n    - year: 2026\n      id: bibm26\n      link: https://ieeebibm.org/BIBM2026/\n      timeline:\n        - deadline: '2026-07-05 17:00:00'\n      timezone: UTC-5\n      date: Dec 1-4, 2026\n      place: Dallas, USA\n"
  },
  {
    "path": "conference/MX/bigdata.yml",
    "content": "- title: BigData\n  description: IEEE International Conference on Big Data\n  sub: MX\n  rank:\n    ccf: C\n    core: B\n    thcpl: N\n  dblp: bigdataconf\n  confs:\n    - year: 2025\n      id: bigdata25\n      link: https://conferences.cis.um.edu.mo/ieeebigdata2025/\n      timeline:\n        - deadline: '2025-08-29 23:59:59'\n      timezone: AoE\n      date: December 8-11, 2025\n      place: Macau SAR, China\n    - year: 2026\n      id: bigdata26\n      link: https://bigdataieee.org/BigData2026/\n      timeline:\n        - deadline: '2026-08-21 23:59:59'\n      timezone: AoE\n      date: December 14-17, 2026\n      place: Phoenix, Arizona, United State\n"
  },
  {
    "path": "conference/MX/bis.yml",
    "content": "- title: BIS\n  description: International Conference on Business Information Systems\n  sub: MX\n  rank:\n    ccf: N\n    core: N\n    thcpl: N\n  dblp: bis\n  confs:\n    - year: 2025\n      id: bis2025\n      link: https://bisconf.org/2025/\n      timeline:\n        - deadline: '2025-01-31 23:59:59'\n      timezone: AoE\n      date: June 25-27, 2025\n      place: Poznań, Poland\n    - year: 2026\n      id: bis2026\n      link: https://bisconf.org/2026/\n      timeline:\n        - deadline: '2026-01-25 23:59:59'\n      timezone: AoE\n      date: June 10-12, 2026\n      place: Prague, Czech Republic\n"
  },
  {
    "path": "conference/MX/cloud.yml",
    "content": "- title: Cloud\n  description: IEEE International Conference on Cloud Computing\n  sub: MX\n  rank:\n    ccf: C\n    core: B\n    thcpl: B\n  dblp: IEEEcloud\n  confs:\n    - year: 2025\n      id: cloud25\n      link: https://services.conferences.computer.org/2025/cloud/\n      timeline:\n        - deadline: '2025-03-10 23:00:00'\n      timezone: AoE\n      date: July 7-12, 2025\n      place: Helsinki, Finland\n"
  },
  {
    "path": "conference/MX/cogsci.yml",
    "content": "- title: CogSci\n  description: Annual Meeting of the Cognitive Science Society\n  sub: MX\n  rank:\n    ccf: B\n    core: B\n    thcpl: N\n  dblp: cogsci\n  confs:\n    - year: 2023\n      id: cogsci23\n      link: https://cognitivesciencesociety.org/cogsci-2023/\n      timeline:\n        - deadline: '2023-02-01 23:59:59'\n      timezone: UTC+8\n      date: July 26-29, 2023\n      place: Sydney, Australia\n    - year: 2024\n      id: cogsci24\n      link: https://cognitivesciencesociety.org/cogsci-2024/\n      timeline:\n        - deadline: '2024-02-01 23:59:59'\n      timezone: UTC+8\n      date: July 24-27, 2024\n      place: Rotterdam, Netherlands\n    - year: 2025\n      id: cogsci25\n      link: https://cognitivesciencesociety.org/cogsci-2025/\n      timeline:\n        - deadline: '2025-02-01 23:59:59'\n      timezone: UTC+8\n      date: July 30-August 2, 2025\n      place: Marriott Marquis, San Francisco\n    - year: 2026\n      id: cogsci26\n      link: https://cognitivesciencesociety.org/cogsci-2026/\n      timeline:\n        - deadline: '2026-02-02 23:59:59'\n      timezone: AoE\n      date: July 22-25, 2026\n      place: Rio de Janeiro, Brazil\n"
  },
  {
    "path": "conference/MX/emsoft.yml",
    "content": "- title: EMSOFT\n  description: International Conference on Embedded Software\n  sub: MX\n  rank:\n    ccf: B\n    core: N\n    thcpl: B\n  dblp: emsoft\n  confs:\n    - year: 2025\n      id: emsoft25\n      link: https://esweek.org/emsoft/\n      timeline:\n        - abstract_deadline: '2025-03-23 23:59:59'\n          deadline: '2025-03-30 23:59:59'\n      timezone: AoE\n      date: September 28 - October 3, 2025\n      place: TAIPEI, TAIWAN\n    - year: 2026\n      id: emsoft26\n      link: https://esweek.org/emsoft/\n      timeline:\n        - abstract_deadline: '2026-03-23 23:59:59'\n          deadline: '2026-03-30 23:59:59'\n      timezone: AoE\n      date: October 4 - 9, 2026\n      place: Barcelona, Spain\n"
  },
  {
    "path": "conference/MX/icic.yml",
    "content": "- title: ICIC\n  description: International Conference on Intelligent Computing\n  sub: MX\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: icic\n  confs:\n    - year: 2024\n      id: icic24\n      link: http://www.ic-icc.cn/2024/index.htm\n      timeline:\n        - deadline: '2024-04-11 12:00:00'\n      timezone: UTC+8\n      date: August 5-8, 2024\n      place: Tianjin, China\n    - year: 2025\n      id: icic25\n      link: http://www.ic-icc.cn/2025/index.php\n      timeline:\n        - deadline: '2025-04-10 11:59:59'\n      timezone: UTC+8\n      date: July 26-29, 2025\n      place: Ningbo, China\n    - year: 2026\n      id: icic26\n      link: http://www.ic-icc.cn/2026/\n      timeline:\n        - deadline: '2026-04-04 11:59:59'\n      timezone: UTC+8\n      date: July 22-26, 2026\n      place: Toronto, Canada\n"
  },
  {
    "path": "conference/MX/isbra.yml",
    "content": "- title: ISBRA\n  description: International Symposium on Bioinformatics Research and Applications\n  sub: MX\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: isbra\n  confs:\n    - year: 2025\n      id: isbra25\n      link: https://www.helsinki.fi/en/conferences/isbra2025\n      timeline:\n        - deadline: '2025-04-01 23:59:59'\n      timezone: AoE\n      date: August 3-5, 2025\n      place: Helsinki, Finland\n"
  },
  {
    "path": "conference/MX/miccai.yml",
    "content": "- title: MICCAI\n  description: International Conference on Medical Image Computing and Computer Assisted Intervention\n  sub: MX\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: miccai\n  confs:\n    - year: 2023\n      id: miccai23\n      link: https://conferences.miccai.org/2023/en/\n      timeline:\n        - deadline: '2023-03-09 23:59:59'\n          comment: Paper submission deadline\n      timezone: UTC+0\n      date: Oct 8-12, 2023\n      place: Vancouver, Canada\n    - year: 2024\n      id: miccai24\n      link: https://conferences.miccai.org/2024/en/\n      timeline:\n        - deadline: '2024-03-07 23:59:59'\n          comment: Main conference papers\n      timezone: UTC-8\n      date: Oct 6-10, 2024\n      place: Marrakesh, Morocco\n    - year: 2025\n      id: miccai25\n      link: https://conferences.miccai.org/2025/en/default.asp\n      timeline:\n        - abstract_deadline: '2025-02-13 23:59:00'\n          deadline: '2025-02-27 23:59:00'\n      timezone: UTC-8\n      date: Sep 23-27, 2025\n      place: Daejeon, Republic of Korea\n    - year: 2026\n      id: miccai26\n      link: https://conferences.miccai.org/2026/en/IMPORTANT-DATES.html\n      timeline:\n        - abstract_deadline: '2026-02-12 23:59:00'\n          deadline: '2026-02-26 23:59:00'\n      timezone: UTC-8\n      date: Oct 4-8, 2026\n      place: ADNEC Centre, Abu Dhabi, U.A.E.\n"
  },
  {
    "path": "conference/MX/mlsys.yml",
    "content": "- title: MLSys\n  description: Conference on Machine Learning and Systems\n  sub: MX\n  rank:\n    ccf: N\n    core: N\n    thcpl: N\n  dblp: mlsys\n  confs:\n    - year: 2021\n      id: mlsys21\n      link: https://mlsys.org/Conferences/2021\n      timeline:\n        - deadline: '2020-10-11 23:59:59'\n      timezone: AoE\n      date: April 5-9, 2021\n      place: virtual\n    - year: 2022\n      id: mlsys22\n      link: https://mlsys.org/Conferences/2022\n      timeline:\n        - deadline: '2021-10-15 20:00:00'\n      timezone: AoE\n      date: August 29-September 1, 2022\n      place: Santa Clara, USA\n    - year: 2023\n      id: mlsys23\n      link: https://mlsys.org/Conferences/2023\n      timeline:\n        - deadline: '2022-10-28 20:00:00'\n      timezone: AoE\n      date: June 5-8, 2023\n      place: Miami, USA\n    - year: 2024\n      id: mlsys24\n      link: https://mlsys.org/Conferences/2024\n      timeline:\n        - deadline: '2023-10-27 04:00:00'\n      timezone: AoE\n      date: May 12-16, 2024\n      place: Santa Clara, USA\n    - year: 2025\n      id: mlsys25\n      link: https://mlsys.org/\n      timeline:\n        - deadline: '2024-10-24 20:00:00'\n      timezone: AoE\n      date: May 13-16, 2025\n      place: Santa Clara, USA\n    - year: 2026\n      id: mlsys26\n      link: https://mlsys.org/\n      timeline:\n        - deadline: '2025-10-30 20:00:00'\n      timezone: AoE\n      date: May 17-22, 2026\n      place: Bellevue, Washington, USA\n"
  },
  {
    "path": "conference/MX/recomb.yml",
    "content": "- title: RECOMB\n  description: International Conference on Research inComputational Molecular Biology\n  sub: MX\n  rank:\n    ccf: B\n    core: B\n    thcpl: A\n  dblp: recomb\n  confs:\n    - year: 2025\n      id: recomb25\n      link: https://recomb.org/recomb2025/index.html\n      timeline:\n        - abstract_deadline: '2024-10-16 23:59:59'\n          deadline: '2024-10-25 23:59:59'\n      timezone: AoE\n      date: April 26-29, 2025\n      place: Seoul, Korea\n    - year: 2026\n      id: recomb26\n      link: https://recomb.org/recomb2026/\n      timeline:\n        - abstract_deadline: '2025-11-07 23:59:59'\n          deadline: '2025-11-14 23:59:59'\n      timezone: AoE\n      date: May 26 - 29, 2026\n      place: Thessaloniki, Greece\n"
  },
  {
    "path": "conference/MX/rtss.yml",
    "content": "- title: RTSS\n  description: The IEEE Real-Time Systems Symposium\n  sub: MX\n  rank:\n    ccf: A\n    core: A*\n    thcpl: B\n  dblp: rtss\n  confs:\n    - year: 2022\n      id: rtss22\n      link: http://2022.rtss.org/\n      timeline:\n        - deadline: '2022-05-26 23:59:59'\n      timezone: AoE\n      date: December 5-8, 2022\n      place: Houston, USA\n    - year: 2025\n      id: rtss25\n      link: http://2025.rtss.org/\n      timeline:\n        - deadline: '2025-05-22 23:59:59'\n      timezone: AoE\n      date: December 2-5, 2025\n      place: Boston, MA, USA\n    - year: 2026\n      id: rtss26\n      link: http://2026.rtss.org/\n      timeline:\n        - deadline: '2026-05-21 23:59:59'\n      timezone: AoE\n      date: December 9-11, 2026\n      place: Yokohama, Japan\n"
  },
  {
    "path": "conference/MX/sigspatial.yml",
    "content": "- title: SIGSPATIAL\n  description: ACM SIGSPATIAL International Conference on Advances in Geographic Information Systems\n  sub: MX\n  rank:\n    ccf: C\n    core: A\n    thcpl: N\n  dblp: sigspatial\n  confs:\n    - year: 2023\n      id: sigspatial23\n      link: http://sigspatial2023.sigspatial.org/\n      timeline:\n        - abstract_deadline: '2023-06-09 23:59:59'\n          deadline: '2023-06-16 23:59:59'\n      timezone: UTC-7\n      date: November 13-16, 2023\n      place: Hamburg, Germany\n    - year: 2025\n      id: sigspatial25\n      link: https://sigspatial2025.sigspatial.org/\n      timeline:\n        - abstract_deadline: '2025-05-23 23:59:59'\n          deadline: '2025-05-30 23:59:59'\n      timezone: UTC-7\n      date: November 3-6, 2025\n      place: Minneapolis, MN, USA\n    - year: 2026\n      id: sigspatial26\n      link: https://sigspatial2026.sigspatial.org/\n      timeline:\n        - abstract_deadline: '2026-05-22 23:59:59'\n          deadline: '2026-05-29 23:59:59'\n      timezone: UTC-7\n      date: November 3-6, 2026\n      place: Riverside, CA, USA\n"
  },
  {
    "path": "conference/MX/smc.yml",
    "content": "- title: SMC\n  description: IEEE International Conference on Systems, Man, and Cybernetics\n  sub: MX\n  rank:\n    ccf: C\n    core: B\n    thcpl: N\n  dblp: smc\n  confs:\n    - year: 2023\n      id: smc23\n      link: https://ieeesmc2023.org/\n      timeline:\n        - deadline: '2023-03-30 23:59:59'\n      timezone: UTC-8\n      date: October 1-4, 2023\n      place: HYATT MAUI, HAWAII, USA\n    - year: 2024\n      id: smc24\n      link: https://www.ieeesmc2024.org/\n      timeline:\n        - deadline: '2024-04-08 23:59:59'\n      timezone: UTC+8\n      date: October 7-10, 2024\n      place: Borneo Convention Centre Kuching, Sarawak, Malaysia\n    - year: 2025\n      id: smc25\n      link: https://www.ieeesmc2025.org/\n      timeline:\n        - deadline: '2025-05-04 23:59:59'\n      timezone: UTC+8\n      date: October 5-8, 2025\n      place: Vienna, Austria\n    - year: 2026\n      id: smc26\n      link: https://www.ieeesmc2026.org/\n      timeline:\n        - deadline: '2026-03-22 23:59:59'\n      timezone: UTC-7\n      date: October 4-7, 2026\n      place: Bellevue, WA, USA\n"
  },
  {
    "path": "conference/MX/wine.yml",
    "content": "- title: WINE\n  description: Conference on Web and Internet Economics\n  sub: MX\n  rank:\n    ccf: B\n    core: N\n    thcpl: N\n  dblp: wine\n  confs:\n    - year: 2023\n      id: wine2023\n      link: https://wine2023.shanghaitech.edu.cn/\n      timeline:\n        - deadline: '2023-07-07 23:59:59'\n      timezone: AoE\n      date: Dec 04-08, 2023\n      place: Shanghai, China\n"
  },
  {
    "path": "conference/MX/www.yml",
    "content": "- title: WWW\n  description: International World Wide Web Conferences\n  sub: MX\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: www\n  confs:\n    - year: 2021\n      id: www21\n      link: https://www2021.thewebconf.org/\n      timeline:\n        - abstract_deadline: '2020-10-12 23:59:59'\n          deadline: '2020-10-19 23:59:59'\n      timezone: AoE\n      date: April 19-23, 2021\n      place: Ljubljana, Slovenia\n    - year: 2022\n      id: www22\n      link: https://www2022.thewebconf.org/\n      timeline:\n        - abstract_deadline: '2021-10-14 23:59:59'\n          deadline: '2021-10-21 23:59:59'\n      timezone: AoE\n      date: April 25-29, 2022\n      place: Lyon, France\n    - year: 2023\n      id: www23\n      link: https://www2023.thewebconf.org/\n      timeline:\n        - abstract_deadline: '2022-10-06 23:59:59'\n          deadline: '2022-10-13 23:59:59'\n      timezone: AoE\n      date: May 1-5, 2023\n      place: Austin, Texas, USA\n    - year: 2024\n      id: www24\n      link: https://www2024.thewebconf.org/\n      timeline:\n        - abstract_deadline: '2023-10-05 23:59:59'\n          deadline: '2023-10-12 23:59:59'\n      timezone: AoE\n      date: May 13-17, 2024\n      place: Singapore\n    - year: 2025\n      id: www25\n      link: https://www2025.thewebconf.org/\n      timeline:\n        - abstract_deadline: '2024-10-07 23:59:59'\n          deadline: '2024-10-14 23:59:59'\n      timezone: AoE\n      date: April 28 - May 2, 2025\n      place: Sydney, Australia\n    - year: 2026\n      id: www26\n      link: https://www2026.thewebconf.org/\n      timeline:\n        - abstract_deadline: '2025-09-30 23:59:59'\n          deadline: '2025-10-07 23:59:59'\n      timezone: AoE\n      date: April 13 - 17, 2026\n      place: Dubaï, UAE\n    - year: 2027\n      id: www27\n      link: https://www2027.thewebconf.org/\n      timeline:\n        - abstract_deadline: 'TBD'\n          deadline: 'TBD'\n      timezone: AoE\n      date: TBD\n      place: Dublin, Ireland\n"
  },
  {
    "path": "conference/NW/apnet.yml",
    "content": "- title: APNet\n  description: Asia-Pacific Workshop on Networking\n  sub: NW\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: apnet\n  confs:\n    - year: 2024\n      id: apnet24\n      link: https://conferences.sigcomm.org/events/apnet2024/\n      timeline:\n        - abstract_deadline: '2024-03-08 23:59:59'\n          deadline: '2024-03-15 23:59:59'\n      timezone: UTC-12\n      date: August 3-4, 2024\n      place: Sydney, Australia, co-located with SIGCOMM'24\n    - year: 2025\n      id: apnet25\n      link: https://conferences.sigcomm.org/events/apnet2025/\n      timeline:\n        - abstract_deadline: '2025-03-06 23:59:59'\n          deadline: '2025-03-13 23:59:59'\n      timezone: AoE\n      date: August 7-8, 2025\n      place: Shanghai, China\n    - year: 2026\n      id: apnet26\n      link: https://conferences.sigcomm.org/events/apnet2026/\n      timeline:\n        - deadline: '2026-03-11 23:59:59'\n      timezone: AoE\n      date: August 6-7, 2026\n      place: Singapore\n"
  },
  {
    "path": "conference/NW/conext.yml",
    "content": "- title: CoNEXT\n  description: International Conference on Emerging Networking Experiments and Technologies\n  sub: NW\n  rank:\n    ccf: B\n    core: A\n    thcpl: A\n  dblp: conext\n  confs:\n    - year: 2025\n      id: conext25\n      link: https://conferences.sigcomm.org/co-next/2025/#!/home\n      timeline:\n        - abstract_deadline: '2024-11-28 23:59:59'\n          deadline: '2024-12-05 23:59:59'\n          comment: 'Winter submission'\n        - abstract_deadline: '2025-05-29 23:59:59'\n          deadline: '2025-06-05 23:59:59'\n          comment: 'June submission'\n      timezone: AoE\n      date: Dec 1-4, 2025\n      place: HKUST, Hong Kong\n    - year: 2026\n      id: conext26\n      link: https://conferences.sigcomm.org/co-next/2026/#!/home\n      timeline:\n        - abstract_deadline: '2025-12-05 23:59:59'\n          deadline: '2025-12-12 23:59:59'\n          comment: 'December Cycle'\n        - abstract_deadline: '2026-05-29 23:59:59'\n          deadline: '2026-06-05 23:59:59'\n          comment: 'June Cycle'\n      timezone: AoE\n      date: December 7-10, 2026\n      place: Utrecht, The Netherlands\n"
  },
  {
    "path": "conference/NW/forte.yml",
    "content": "- title: FORTE\n  description: International Conference on Formal Techniques for (Networked and) Distributed Systems\n  sub: NW\n  rank:\n    ccf: C\n    core: C\n    thcpl: N\n  dblp: forte\n  confs:\n    - year: 2024\n      id: forte24\n      link: https://www.discotec.org/2024/forte\n      timeline:\n        - abstract_deadline: '2024-02-02 23:59:59'\n          deadline: '2024-02-09 23:59:59'\n      timezone: AoE\n      date: June 17-21, 2024\n      place: Groningen, The Netherlands\n    - year: 2026\n      id: forte26\n      link: https://www.discotec.org/2026/forte\n      timeline:\n        - abstract_deadline: '2026-01-30 23:59:59'\n          deadline: '2026-02-06 23:59:59'\n      timezone: AoE\n      date: June 8-12, 2026\n      place: Urbino, Italy\n"
  },
  {
    "path": "conference/NW/globecom.yml",
    "content": "- title: GLOBECOM\n  description: IEEE Global Communications Conference\n  sub: NW\n  rank:\n    ccf: C\n    core: B\n    thcpl: B\n  dblp: globecom\n  confs:\n    - year: 2023\n      id: globecom23\n      link: https://globecom2023.ieee-globecom.org/\n      timeline:\n        - deadline: '2023-04-15 23:59:59'\n      timezone: UTC-4\n      date: December 4-8, 2023\n      place: Kuala Lumpur, Malaysia\n    - year: 2025\n      id: globecom25\n      link: https://globecom2025.ieee-globecom.org/\n      timeline:\n        - deadline: '2025-04-15 23:59:59'\n      timezone: UTC-4\n      date: December 8-12, 2025\n      place: Taipei, Taiwan\n    - year: 2026\n      id: globecom26\n      link: https://globecom2026.ieee-globecom.org/\n      timeline:\n        - deadline: '2026-04-01 23:59:59'\n      timezone: UTC+8\n      date: December 7-11, 2026\n      place: Macao, China\n"
  },
  {
    "path": "conference/NW/icc.yml",
    "content": "- title: ICC\n  description: IEEE International Conference on Communications\n  sub: NW\n  rank:\n    ccf: C\n    core: N\n    thcpl: B\n  dblp: icc\n  confs:\n    - year: 2025\n      id: icc25\n      link: https://icc2025.ieee-icc.org\n      timeline:\n        - deadline: '2024-10-11 23:59:59'\n      timezone: AoE\n      date: June 8-12, 2025\n      place: Palais des congrès de Montréal in Montreal, Quebec, Canada\n    - year: 2026\n      id: icc26\n      link: https://icc2026.ieee-icc.org\n      timeline:\n        - deadline: '2025-10-31 00:59:59'\n      timezone: UTC-4\n      date: May 24-28, 2026\n      place: Glasgow, Scotland, UK\n"
  },
  {
    "path": "conference/NW/icccn.yml",
    "content": "- title: ICCCN\n  description: IEEE International Conference on Computer Communications and Networks\n  sub: NW\n  rank:\n    ccf: C\n    core: B\n    thcpl: N\n  dblp: icccn\n  confs:\n    - year: 2026\n      id: icccn26\n      link: http://www.icccn.org/ICCCN26/\n      timeline:\n        - deadline: '2026-02-13 23:59:59'\n      timezone: UTC-10\n      date: July 27-30, 2026\n      place: Honolulu, Hawaii, USA\n"
  },
  {
    "path": "conference/NW/icnp.yml",
    "content": "- title: ICNP\n  description: IEEE International Conference on Network Protocols\n  sub: NW\n  rank:\n    ccf: B\n    core: B\n    thcpl: A\n  dblp: icnp\n  confs:\n    - year: 2022\n      id: icnp22\n      link: https://icnp22.cs.ucr.edu/index.html\n      timeline:\n        - abstract_deadline: '2022-05-19 20:00:00'\n          deadline: '2022-05-26 20:00:00'\n      timezone: UTC-4\n      date: October 30-November 2, 2022\n      place: Lexington, Kentucky, USA\n    - year: 2023\n      id: icnp23\n      link: https://icnp23.cs.ucr.edu/index.html\n      timeline:\n        - abstract_deadline: '2023-05-24 20:00:00'\n          deadline: '2023-05-31 20:00:00'\n      timezone: UTC-4\n      date: October 10-13, 2023\n      place: Reykjavik, Iceland\n    - year: 2024\n      id: icnp24\n      link: https://icnp24.cs.ucr.edu/index.html\n      timeline:\n        - abstract_deadline: '2024-05-17 23:59:59'\n          deadline: '2024-05-24 23:59:59'\n      timezone: AoE\n      date: October 28-31, 2024\n      place: Charleroi, Belgium\n    - year: 2025\n      id: icnp25\n      link: https://ieeeicnp2025.pages.dev/\n      timeline:\n        - abstract_deadline: '2025-05-09 23:59:59'\n          deadline: '2025-05-16 23:59:59'\n      timezone: AoE\n      date: September 22-25, 2025\n      place: Seoul, South Korea\n    - year: 2026\n      id: icnp26\n      link: https://icnp26.cs.ucr.edu/\n      timeline:\n        - abstract_deadline: '2026-05-15 23:59:59'\n          deadline: '2026-05-22 23:59:59'\n      timezone: AoE\n      date: October 5-8, 2026\n      place: Tempe, Arizona, USA\n"
  },
  {
    "path": "conference/NW/imc.yml",
    "content": "- title: IMC\n  description: ACM Internet Measurement Conference\n  sub: NW\n  rank:\n    ccf: B\n    core: A\n    thcpl: A\n  dblp: imc\n  confs:\n    - year: 2024\n      id: imc24\n      link: https://conferences.sigcomm.org/imc/2024/\n      timeline:\n        - abstract_deadline: '2024-05-08 23:59:59'\n          deadline: '2024-05-15 23:59:59'\n      timezone: AoE\n      date: Nov 4-6, 2024\n      place: Madrid, Spain\n    - year: 2025\n      id: imc25\n      link: https://conferences.sigcomm.org/imc/2025/\n      timeline:\n        - abstract_deadline: '2024-11-14 23:59:59'\n          deadline: '2024-11-21 23:59:59'\n          comment: 'Fall deadline'\n        - abstract_deadline: '2025-05-08 23:59:59'\n          deadline: '2025-05-15 23:59:59'\n          comment: 'Spring deadline'\n      timezone: AoE\n      date: Oct 28-31, 2025\n      place: Madison, Wisconsin, USA\n    - year: 2026\n      id: imc26\n      link: https://conferences.sigcomm.org/imc/2026/\n      timeline:\n        - abstract_deadline: '2025-11-13 23:59:59'\n          deadline: '2025-11-20 23:59:59'\n          comment: 'Cycle 1 Deadline'\n        - abstract_deadline: '2026-04-22 23:59:59'\n          deadline: '2026-04-29 23:59:59'\n          comment: 'Cycle 2 Deadline'\n      timezone: AoE\n      date: November 03-06, 2026\n      place: Karlsruhe, Germany\n"
  },
  {
    "path": "conference/NW/infocom.yml",
    "content": "- title: INFOCOM\n  description: IEEE International Conference on Computer Communications\n  sub: NW\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: infocom\n  confs:\n    - year: 2021\n      id: infocom21\n      link: https://infocom2021.ieee-infocom.org/\n      timeline:\n        - abstract_deadline: '2020-08-08 23:59:59'\n          deadline: '2020-08-15 23:59:59'\n      timezone: UTC-4\n      date: May 10-13, 2021\n      place: Virtual\n    - year: 2022\n      id: infocom22\n      link: https://infocom2022.ieee-infocom.org/\n      timeline:\n        - abstract_deadline: '2021-07-24 23:59:59'\n          deadline: '2021-07-31 23:59:59'\n      timezone: UTC-4\n      date: May 2-5, 2022\n      place: Virtual\n    - year: 2023\n      id: infocom23\n      link: https://infocom2023.ieee-infocom.org/\n      timeline:\n        - abstract_deadline: '2022-07-25 23:59:59'\n          deadline: '2022-08-01 23:59:59'\n      timezone: UTC-4\n      date: May 17-20, 2023\n      place: New York, USA\n    - year: 2024\n      id: infocom24\n      link: https://infocom2024.ieee-infocom.org/\n      timeline:\n        - abstract_deadline: '2023-07-24 23:59:59'\n          deadline: '2023-07-31 23:59:59'\n      timezone: AoE\n      date: May 20-23, 2024\n      place: Vancouver, Canada\n    - year: 2025\n      id: infocom25\n      link: https://infocom2025.ieee-infocom.org/\n      timeline:\n        - abstract_deadline: '2024-07-24 23:59:59'\n          deadline: '2024-07-31 23:59:59'\n      timezone: UTC-7\n      date: May 19-22, 2025\n      place: London, United Kindom\n    - year: 2026\n      id: infocom26\n      link: https://infocom2026.ieee-infocom.org/\n      timeline:\n        - abstract_deadline: '2025-07-24 23:59:59'\n          deadline: '2025-07-31 23:59:59'\n      timezone: AoE\n      date: May 18 - 21, 2026\n      place: Tokyo, Japan\n"
  },
  {
    "path": "conference/NW/ipsn.yml",
    "content": "- title: IPSN\n  description: ACM/IEEE International Conference on Information Processing in Sensor Networks\n  sub: NW\n  rank:\n    ccf: B\n    core: A*\n    thcpl: A\n  dblp: ipsn\n  confs:\n    - year: 2022\n      id: ipsn22\n      link: https://ipsn.acm.org/2022/\n      timeline:\n        - abstract_deadline: '2021-10-22 23:59:59'\n          deadline: '2021-10-29 23:59:59'\n      timezone: UTC-12\n      date: May 4-6, 2022\n      place: Milan, Italy\n"
  },
  {
    "path": "conference/NW/iscc.yml",
    "content": "- title: ISCC\n  description: IEEE Symposium on Computers and Communications\n  sub: NW\n  rank:\n    ccf: C\n    core: C\n    thcpl: N\n  dblp: iscc\n  confs:\n    - year: 2026\n      id: iscc26\n      link: https://ieee-iscc.computer.org/2026/\n      timeline:\n        - deadline: '2026-02-15 23:59:59'\n      timezone: UTC+0\n      date: June 23-26, 2026\n      place: Vilamoura, Algarve, Portugal\n"
  },
  {
    "path": "conference/NW/iwqos.yml",
    "content": "- title: IWQoS\n  description: IEEE/ACM International Symposium on Quality of Service\n  sub: NW\n  rank:\n    ccf: B\n    core: B\n    thcpl: B\n  dblp: iwqos\n  confs:\n    - year: 2022\n      id: iwqos22\n      link: https://iwqos2022.ieee-iwqos.org/\n      timeline:\n        - abstract_deadline: '2022-02-01 23:59:59'\n          deadline: '2022-02-07 23:59:59'\n      timezone: UTC-12\n      date: June 10-12, 2022\n      place: Virtual\n    - year: 2023\n      id: iwqos23\n      link: https://iwqos2023.ieee-iwqos.org/\n      timeline:\n        - abstract_deadline: '2023-01-29 23:59:59'\n          deadline: '2023-02-07 23:59:59'\n      timezone: UTC-12\n      date: June 19-21, 2023\n      place: Orlando, FL, USA\n    - year: 2025\n      id: iwqos25\n      link: https://iwqos2025.ieee-iwqos.org/\n      timeline:\n        - abstract_deadline: '2025-02-16 23:59:59'\n          deadline: '2025-02-23 23:59:59'\n      timezone: AoE\n      date: July 02-04, 2025\n      place: Gold Coast, Australia\n    - year: 2026\n      id: iwqos26\n      link: https://iwqos2026.ieee-iwqos.org/\n      timeline:\n        - abstract_deadline: '2026-02-02 23:59:59'\n          deadline: '2026-02-09 23:59:59'\n      timezone: AoE\n      date: 29 June - 2 July, 2026\n      place: Dubai, United Arab Emirates\n"
  },
  {
    "path": "conference/NW/lcn.yml",
    "content": "- title: LCN\n  description: IEEE Conference on Local Computer Networks\n  sub: NW\n  rank:\n    ccf: C\n    core: B\n    thcpl: N\n  dblp: lcn\n  confs:\n    - year: 2026\n      id: lcn26\n      link: https://www.ieeelcn.org/\n      timeline:\n        - deadline: '2026-04-20 23:59:59'\n      timezone: AoE\n      date: October 7-9, 2026\n      place: Coimbra, Portugal\n"
  },
  {
    "path": "conference/NW/mmsys.yml",
    "content": "- title: MMSys\n  description: ACM International Conference on Multimedia Systems\n  sub: NW\n  rank:\n    ccf: N\n    core: N\n    thcpl: N\n  dblp: mmsys\n  confs:\n    - year: 2026\n      id: mmsys26\n      link: https://2026.acmmmsys.org\n      timeline:\n        - abstract_deadline: '2025-11-14 23:59:59'\n          deadline: '2025-11-21 23:59:59'\n          comment: 'Round 2 deadline'\n      timezone: AoE\n      date: April 4 - 8, 2026\n      place: Hong Kong SAR\n"
  },
  {
    "path": "conference/NW/mobicom.yml",
    "content": "- title: MobiCom\n  description: ACM Annual International Conference On Mobile Computing And Networking\n  sub: NW\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: mobicom\n  confs:\n    - year: 2022\n      id: mobicom22\n      link: https://www.sigmobile.org/mobicom/2022/\n      timeline:\n        - abstract_deadline: '2021-08-13 23:59:59'\n          deadline: '2021-08-20 23:59:59'\n        - abstract_deadline: '2022-03-18 23:59:59'\n          deadline: '2022-03-25 23:59:59'\n      timezone: UTC-7\n      date: TBD\n      place: TBD\n    - year: 2023\n      id: mobicom23\n      link: https://www.sigmobile.org/mobicom/2023/\n      timeline:\n        - abstract_deadline: '2023-03-10 23:59:59'\n          deadline: '2023-03-17 23:59:59'\n      timezone: UTC-7\n      date: Oct 2-6, 2023\n      place: Madrid, Spain\n    - year: 2024\n      id: mobicom24\n      link: https://www.sigmobile.org/mobicom/2024/\n      timeline:\n        - abstract_deadline: '2023-08-18 23:59:59'\n          deadline: '2023-08-25 23:59:59'\n      timezone: UTC-12\n      date: October, 2024\n      place: Washington, D.C., USA\n    - year: 2025\n      id: mobicom25\n      link: https://sigmobile.org/mobicom/2025/\n      timeline:\n        - abstract_deadline: '2024-08-29 23:59:59'\n          deadline: '2024-09-05 23:59:59'\n          comment: Summer Deadlines\n        - abstract_deadline: '2025-03-11 23:59:59'\n          deadline: '2025-03-18 23:59:59'\n          comment: Winter Deadlines\n      timezone: UTC-12\n      date: November, 2025\n      place: Hong Kong, China\n    - year: 2026\n      id: mobicom26\n      link: https://sigmobile.org/mobicom/2026/\n      timeline:\n        - abstract_deadline: '2025-08-27 23:59:59'\n          deadline: '2025-09-03 23:59:59'\n          comment: Summer Deadlines\n        - abstract_deadline: '2026-03-06 23:59:59'\n          deadline: '2026-03-13 23:59:59'\n          comment: Winter Deadlines\n      timezone: AoE\n      date: November, 2026\n      place: Austin, Texas, USA\n"
  },
  {
    "path": "conference/NW/mobihoc.yml",
    "content": "- title: MobiHoc\n  description: International Symposium on Mobile Ad Hoc Networking and Computing\n  sub: NW\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: mobihoc\n  confs:\n    - year: 2022\n      id: mobihoc22\n      link: https://www.sigmobile.org/mobihoc/2022/\n      timeline:\n        - abstract_deadline: '2022-02-25 23:59:59'\n          deadline: '2022-03-04 23:59:59'\n      timezone: UTC-12\n      date: October 17-22, 2022\n      place: Seoul, South Korea\n    - year: 2026\n      id: mobihoc26\n      link: https://www.sigmobile.org/mobihoc/2026/\n      timeline:\n        - abstract_deadline: '2026-03-30 23:59:59'\n          deadline: '2026-04-06 23:59:59'\n      timezone: AoE\n      date: November 23-26, 2026\n      place: Tokyo, Japan\n"
  },
  {
    "path": "conference/NW/mobisys.yml",
    "content": "- title: MobiSys\n  description: ACM International Conference on Mobile Systems, Applications, and Services\n  sub: NW\n  rank:\n    ccf: B\n    core: A\n    thcpl: A\n  dblp: mobisys\n  confs:\n    - year: 2022\n      id: mobisys22\n      link: https://www.sigmobile.org/mobisys/2022/\n      timeline:\n        - abstract_deadline: '2021-12-13 23:59:59'\n          deadline: '2021-12-20 23:59:59'\n      timezone: UTC-12\n      date: TBD\n      place: TBD\n    - year: 2026\n      id: mobisys26\n      link: https://www.sigmobile.org/mobisys/2026/\n      timeline:\n        - abstract_deadline: '2025-11-28 23:59:59'\n          deadline: '2025-12-05 23:59:59'\n      timezone: AoE\n      date: June 21-25, 2026\n      place: Cambridge, UK\n"
  },
  {
    "path": "conference/NW/msn.yml",
    "content": "- title: MSN\n  description: International Conference on Mobility, Sensing and Networking\n  sub: NW\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: msn\n  confs:\n    - year: 2024\n      id: msn24\n      link: https://ieee-msn.org/2024/\n      timeline:\n        - deadline: '2024-07-20 23:59:59'\n      timezone: UTC-12\n      date: December 20-22, 2024\n      place: Harbin, China\n    - year: 2025\n      id: msn25\n      link: https://ieee-msn.org/2025\n      timeline:\n        - deadline: '2025-09-15 23:59:59'\n      timezone: UTC-12\n      date: December 3-6, 2025\n      place: Bandung, Indonesia\n"
  },
  {
    "path": "conference/NW/mswim.yml",
    "content": "- title: MSWiM\n  description: International Conference on Modeling, Analysis and Simulation of Wireless and Mobile Systems\n  sub: NW\n  rank:\n    ccf: C\n    core: A\n    thcpl: N\n  dblp: mswim\n  confs:\n    - year: 2026\n      id: mswim26\n      link: https://mswimconf.com/2026/\n      timeline:\n        - deadline: '2026-06-01 23:59:59'\n      timezone: UTC+1\n      date: October 26-30, 2026\n      place: Paris, France\n"
  },
  {
    "path": "conference/NW/networking.yml",
    "content": "- title: Networking\n  description: IFIP International Conference on Networking\n  sub: NW\n  rank:\n    ccf: C\n    core: B\n    thcpl: B\n  dblp: networking\n  confs:\n    - year: 2026\n      id: networking26\n      link: https://networking.ifip.org/2026/\n      timeline:\n        - deadline: '2026-02-08 23:59:59'\n      timezone: AoE\n      date: May 24-27, 2026\n      place: Lugano, Switzerland\n"
  },
  {
    "path": "conference/NW/nossdav.yml",
    "content": "- title: NOSSDAV\n  description: International Workshop on Network and Operating System Support for Digital Audio and Video\n  sub: NW\n  rank:\n    ccf: B\n    core: B\n    thcpl: B\n  dblp: nossdav\n  confs:\n    - year: 2025\n      id: nossdav25\n      link: https://nossdav.org/2025/\n      timeline:\n        - deadline: '2025-01-17 23:59:59'\n      timezone: AoE\n      date: March 31- April 3, 2025\n      place: Stellenbosch, South Africa\n    - year: 2026\n      id: nossdav26\n      link: https://nossdav.org/2026/\n      timeline:\n        - deadline: '2026-01-16 23:59:59'\n      timezone: AoE\n      date: April 8, 2026\n      place: Hong Kong, China\n"
  },
  {
    "path": "conference/NW/nsdi.yml",
    "content": "- title: NSDI\n  description: USENIX Symposium on Networked Systems Design and Implementation\n  sub: NW\n  rank:\n    ccf: A\n    core: N\n    thcpl: A\n  dblp: nsdi\n  confs:\n    - year: 2022\n      id: nsdi22\n      link: https://www.usenix.org/conference/nsdi22/\n      timeline:\n        - abstract_deadline: '2021-03-04 20:59:59'\n          deadline: '2021-03-10 20:59:59'\n        - abstract_deadline: '2021-09-09 20:59:59'\n          deadline: '2021-09-15 20:59:59'\n      timezone: UTC-8\n      date: April 4-6, 2022\n      place: RENTON, USA\n    - year: 2023\n      id: nsdi23\n      link: https://www.usenix.org/conference/nsdi23/\n      timeline:\n        - abstract_deadline: '2022-04-13 23:59:59'\n          deadline: '2022-04-20 23:59:59'\n        - abstract_deadline: '2022-09-13 23:59:59'\n          deadline: '2022-09-20 23:59:59'\n      timezone: UTC-5\n      date: April 17-19, 2023\n      place: BOSTON, USA\n    - year: 2024\n      id: nsdi24\n      link: https://www.usenix.org/conference/nsdi24/\n      timeline:\n        - abstract_deadline: '2023-04-27 20:59:59'\n          deadline: '2023-05-04 20:59:59'\n        - abstract_deadline: '2023-09-14 20:59:59'\n          deadline: '2023-09-21 20:59:59'\n      timezone: UTC-7\n      date: April 16-18, 2024\n      place: Santa Clara, CA, USA\n    - year: 2025\n      id: nsdi25\n      link: https://www.usenix.org/conference/nsdi25\n      timeline:\n        - abstract_deadline: '2024-04-30 23:59:59'\n          deadline: '2024-05-07 23:59:59'\n        - abstract_deadline: '2024-09-12 23:59:59'\n          deadline: '2024-09-19 23:59:59'\n      timezone: UTC-4\n      date: April 28-30, 2025\n      place: Philadelphia, PA, USA\n    - year: 2026\n      id: nsdi26\n      link: https://www.usenix.org/conference/nsdi26\n      timeline:\n        - abstract_deadline: '2025-04-18 23:59:59'\n          deadline: '2025-04-25 23:59:59'\n        - abstract_deadline: '2025-09-11 23:59:59'\n          deadline: '2025-09-18 23:59:59'\n      timezone: UTC-7\n      date: May 4-6, 2026\n      place: Renton, WA, USA\n    - year: 2027\n      id: nsdi27\n      link: https://www.usenix.org/conference/nsdi27\n      timeline:\n        - abstract_deadline: '2026-04-16 23:59:59'\n          deadline: '2026-04-23 23:59:59'\n        - abstract_deadline: '2026-09-10 23:59:59'\n          deadline: '2026-09-17 23:59:59'\n      timezone: UTC-4\n      date: May 11-13, 2027\n      place: Providence, RI, USA\n"
  },
  {
    "path": "conference/NW/secon.yml",
    "content": "- title: SECON\n  description: IEEE International Conference on Sensing, Communication, and Networking\n  sub: NW\n  rank:\n    ccf: B\n    core: B\n    thcpl: B\n  dblp: secon\n  confs:\n    - year: 2026\n      id: secon26\n      link: https://secon2026.ieee-secon.org/important-dates\n      timeline:\n        - abstract_deadline: '2025-12-08 23:59:59'\n          deadline: '2025-12-30 23:59:59'\n      timezone: AoE\n      date: April 27-29, 2026\n      place: Abu Dhabi, UAE\n"
  },
  {
    "path": "conference/NW/sensys.yml",
    "content": "- title: SenSys\n  description: ACM Conference on Embedded Networked Sensor Systems\n  sub: NW\n  rank:\n    ccf: B\n    core: A*\n    thcpl: A\n  dblp: sensys\n  confs:\n    - year: 2026\n      id: sensys26\n      link: https://sensys.acm.org/2026/\n      timeline:\n        - abstract_deadline: '2025-06-24 23:59:00'\n          deadline: '2025-07-01 23:59:00'\n          comment: '1st deadline'\n        - abstract_deadline: '2025-11-06 23:59:00'\n          deadline: '2025-11-13 23:59:00'\n          comment: '2nd deadline'\n      timezone: AoE\n      date: May 11-14, 2026\n      place: Saint-Malo, France\n"
  },
  {
    "path": "conference/NW/sigcomm.yml",
    "content": "- title: SIGCOMM\n  description: ACM International Conference on Applications, Technologies, Architectures, and Protocols for Computer Communication\n  sub: NW\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: sigcomm\n  confs:\n    - year: 2021\n      id: sigcomm21\n      link: http://conferences.sigcomm.org/sigcomm/2021/\n      timeline:\n        - abstract_deadline: '2021-01-20 16:59:59'\n          deadline: '2021-01-27 16:59:59'\n      timezone: UTC-5\n      date: August 23-27, 2021\n      place: Virtual\n    - year: 2022\n      id: sigcomm22\n      link: https://conferences.sigcomm.org/sigcomm/2022/\n      timeline:\n        - abstract_deadline: '2022-01-26 23:59:59'\n          deadline: '2022-02-02 23:59:59'\n      timezone: UTC\n      date: August 22-26, 2022\n      place: Amsterdam, Netherlands\n    - year: 2023\n      id: sigcomm23\n      link: https://conferences.sigcomm.org/sigcomm/2023/\n      timeline:\n        - abstract_deadline: '2023-02-08 23:59:59'\n          deadline: '2023-02-15 23:59:59'\n      timezone: UTC\n      date: September 10-14, 2023\n      place: New York City, US\n    - year: 2024\n      id: sigcomm24\n      link: https://conferences.sigcomm.org/sigcomm/2024/\n      timeline:\n        - abstract_deadline: '2024-01-26 23:59:59'\n          deadline: '2024-02-02 23:59:59'\n      timezone: UTC\n      date: August 4 - 8, 2024\n      place: Sydney, Australia\n    - year: 2025\n      id: sigcomm25\n      link: https://conferences.sigcomm.org/sigcomm/2025/\n      timeline:\n        - abstract_deadline: '2025-01-24 23:59:59'\n          deadline: '2025-01-31 23:59:59'\n      timezone: UTC\n      date: September 8-11, 2025\n      place: Coimbra, Portugal\n    - year: 2026\n      id: sigcomm26\n      link: https://conferences.sigcomm.org/sigcomm/2026/\n      timeline:\n        - abstract_deadline: '2026-01-30 23:59:59'\n          deadline: '2026-02-06 23:59:59'\n      timezone: AoE\n      date: August 17 - 21, 2026\n      place: Denver, Colorado, USA\n"
  },
  {
    "path": "conference/NW/wasa.yml",
    "content": "- title: WASA\n  description: International Conference on Wireless Algorithms, Systems, and Applications\n  sub: NW\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: wasa\n  confs:\n    - year: 2025\n      id: wasa25\n      link: http://wasa-conference.org/WASA2025/index.html\n      timeline:\n        - deadline: '2025-01-15 23:59:59'\n      timezone: AoE\n      date: June 24-26, 2025\n      place: Tokyo, Japan\n    - year: 2026\n      id: wasa26\n      link: http://wasa-conference.org/WASA2026/\n      timeline:\n        - deadline: '2026-03-15 23:59:59'\n      timezone: AoE\n      date: July 6-9, 2026\n      place: Xi'an, China\n"
  },
  {
    "path": "conference/NW/wcnc.yml",
    "content": "- title: WCNC\n  description: Wireless Communications and Networking Conference\n  sub: NW\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: wcnc\n  confs:\n    - year: 2025\n      id: wcnc25\n      link: https://wcnc2025.ieee-wcnc.org/\n      timeline:\n        - deadline: '2024-09-02 23:59:59'\n      timezone: UTC-12\n      date: March 24-27, 2025\n      place: Milan, Italy\n    - year: 2026\n      id: wcnc26\n      link: https://wcnc2026.ieee-wcnc.org/group/21\n      timeline:\n        - deadline: '2025-09-14 23:59:59'\n      timezone: UTC-12\n      date: April 13-16, 2026\n      place: Kuala Lumpur, Malaysia\n"
  },
  {
    "path": "conference/NW/wicon.yml",
    "content": "- title: WiCON\n  description: International Wireless Internet Conference\n  sub: NW\n  rank:\n    ccf: N\n    core: N\n    thcpl: N\n  dblp: wicon\n  confs:\n    - year: 2025\n      id: wicon2025\n      link: https://wicon.eai-conferences.org/2025/\n      timeline:\n        - deadline: '2025-10-20 23:59:59'\n      timezone: UTC+3\n      date: December 19, 2025\n      place: Istanbul, Turkey (Online)\n"
  },
  {
    "path": "conference/NW/wowmom.yml",
    "content": "- title: WoWMoM\n  description: IEEE International Symposium on a World of Wireless, Mobile and Multimedia Networks\n  sub: NW\n  rank:\n    ccf: C\n    core: B\n    thcpl: B\n  dblp: wowmom\n  confs:\n    - year: 2025\n      id: wowmom25\n      link: https://wowmomconference.uta.edu/index.html\n      timeline:\n        - deadline: '2024-11-22 23:59:59'\n      timezone: AoE\n      date: May 27-30, 2025\n      place: Fort Worth, Texas, USA\n    - year: 2026\n      id: wowmom26\n      link: https://www.cs.unibo.it/wowmom2026/\n      timeline:\n        - abstract_deadline: '2025-11-18 23:59:59'\n          deadline: '2025-12-05 23:59:59'\n      timezone: AoE\n      date: June 16-19, 2026\n      place: Bologna, Italy\n"
  },
  {
    "path": "conference/SC/acisp.yml",
    "content": "- title: ACISP\n  description: Australasia Conference on Information Security and Privacy\n  sub: SC\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: acisp\n  confs:\n    - year: 2021\n      id: acisp21\n      link: https://data61dsslab.github.io/acisp2021/\n      timeline:\n        - deadline: '2021-02-25 23:59:59'\n          comment: Paper submission Deadline\n      timezone: AoE\n      date: December 1-3, 2021\n      place: Perth, Australia\n    - year: 2024\n      id: acisp24\n      link: https://www.acisp24.com/\n      timeline:\n        - deadline: '2023-11-06 23:59:59'\n          comment: 1st round Deadline\n        - deadline: '2024-02-19 23:59:59'\n          comment: 2nd round Deadline\n      timezone: AoE\n      date: July 15-17, 2024\n      place: Australia\n    - year: 2025\n      id: acisp25\n      link: https://uow-ic2.github.io/acisp2025/\n      timeline:\n        - deadline: '2024-11-06 23:59:59'\n          comment: 1st round Deadline\n        - deadline: '2025-02-19 23:59:59'\n          comment: 2nd round Deadline\n      timezone: AoE\n      date: July 14-16, 2025\n      place: Wollongong, Australia\n    - year: 2026\n      id: acisp26\n      link: https://acisp-conference.github.io/acisp2026/index.html\n      timeline:\n        - deadline: '2025-11-27 23:59:59'\n          comment: 1st round Deadline\n        - deadline: '2026-02-26 23:59:59'\n          comment: 2nd round Deadline\n      timezone: AoE\n      date: July 6-9, 2026\n      place: Perth, Australia\n"
  },
  {
    "path": "conference/SC/acns.yml",
    "content": "- title: ACNS\n  description: Applied Cryptography and Network Security\n  sub: SC\n  rank:\n    ccf: C\n    core: B\n    thcpl: B\n  dblp: acns\n  confs:\n    - year: 2022\n      id: acns22\n      link: https://sites.google.com/di.uniroma1.it/acns2022\n      timeline:\n        - deadline: '2021-09-03 23:59:59'\n          comment: First submission deadline\n        - deadline: '2022-01-14 23:59:59'\n          comment: Second submission deadline\n      timezone: AoE\n      date: June 20-23, 2022\n      place: Rome, Italy\n    - year: 2024\n      id: acns24\n      link: https://wp.nyu.edu/acns2024/\n      timeline:\n        - deadline: '2023-07-20 23:59:59'\n          comment: First submission deadline\n        - deadline: '2023-10-20 23:59:59'\n          comment: Second submission deadline\n      timezone: AoE\n      date: March 5-8, 2024\n      place: Abu Dhabi, UAE\n    - year: 2025\n      id: acns25\n      link: http://acns2025.fordaysec.de/\n      timeline:\n        - deadline: '2024-09-09 23:59:59'\n          comment: First submission deadline\n        - deadline: '2025-01-13 23:59:59'\n          comment: Second submission deadline\n      timezone: AoE\n      date: June 23-26, 2025\n      place: Munich, Germany\n    - year: 2026\n      id: acns26\n      link: https://acns2026.github.io/index.html\n      timeline:\n        - deadline: '2025-09-26 23:59:59'\n          comment: Cycle 1 Submission deadline\n        - deadline: '2026-01-23 23:59:59'\n          comment: Cycle 2 Submission deadline\n      timezone: AoE\n      date: June 22-25, 2026\n      place: New York, United States\n"
  },
  {
    "path": "conference/SC/acsac.yml",
    "content": "- title: ACSAC\n  description: Annual Computer Security Applications Conference\n  sub: SC\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: acsac\n  confs:\n    - year: 2021\n      id: acsac21\n      link: https://www.acsac.org/\n      timeline:\n        - deadline: '2021-09-14 23:59:59'\n      timezone: UTC-12\n      date: December 6-10, 2021\n      place: Online\n    - year: 2023\n      id: acsac23\n      link: https://www.acsac.org/\n      timeline:\n        - deadline: '2023-05-26 23:59:59'\n      timezone: UTC-12\n      date: December 4-8, 2023\n      place: Austin, Texas, USA\n    - year: 2024\n      id: acsac24\n      link: https://www.acsac.org/\n      timeline:\n        - deadline: '2024-05-28 23:59:59'\n      timezone: UTC-12\n      date: December 9-13, 2024\n      place: Waikiki, Hawaii, USA\n    - year: 2025\n      id: acsac25\n      link: https://www.acsac.org/\n      timeline:\n        - deadline: '2025-05-30 23:59:59'\n      timezone: UTC-12\n      date: December 8-12, 2025\n      place: Honolulu, Hawaii, USA\n"
  },
  {
    "path": "conference/SC/asiaccs.yml",
    "content": "- title: AsiaCCS\n  description: Asia Conference on Computer and Communications Security\n  sub: SC\n  rank:\n    ccf: C\n    core: A\n    thcpl: B\n  dblp: ccs\n  confs:\n    - year: 2022\n      id: asiaccs22\n      link: https://asiaccs2022.conferenceservice.jp/\n      timeline:\n        - deadline: '2021-07-30 23:59:59'\n          comment: 1st round Deadline\n        - deadline: '2021-11-19 23:59:59'\n          comment: 2nd round Deadline\n      timezone: AoE\n      date: May 30-June 3, 2022\n      place: Nagasaki, Japan\n    - year: 2024\n      id: asiaccs24\n      link: https://asiaccs2024.sutd.edu.sg/\n      timeline:\n        - deadline: '2023-08-21 23:59:59'\n          comment: 1st round Deadline\n        - deadline: '2023-12-07 23:59:59'\n          comment: 2nd round Deadline\n      timezone: AoE\n      date: July 1-5, 2024\n      place: Singapore\n    - year: 2025\n      id: asiaccs25\n      link: https://asiaccs2025.hust.edu.vn/\n      timeline:\n        - deadline: '2024-09-20 23:59:59'\n          comment: 1st round Deadline\n        - deadline: '2025-01-20 23:59:59'\n          comment: 2nd round Deadline\n      timezone: AoE\n      date: August 25-29, 2025\n      place: Hanoi, Vietnam\n    - year: 2026\n      id: asiaccs26\n      link: https://asiaccs2026.cse.iitkgp.ac.in/\n      timeline:\n        - deadline: '2025-08-25 23:59:59'\n          comment: 1st round Deadline\n        - deadline: '2025-12-12 23:59:59'\n          comment: 2nd round Deadline\n      timezone: AoE\n      date: June 1-5, 2026\n      place: Bangalore, India\n"
  },
  {
    "path": "conference/SC/asiacrypt.yml",
    "content": "- title: ASIACRYPT\n  description: International Conference on the Theory and Application of Cryptology and Information Security\n  sub: SC\n  rank:\n    ccf: B\n    core: A\n    thcpl: A\n  dblp: asiacrypt\n  confs:\n    - year: 2021\n      id: asiacrypt21\n      link: https://asiacrypt.iacr.org/2021/\n      timeline:\n        - deadline: '2021-05-27 11:59:59'\n      timezone: UTC\n      date: December 5-9, 2021\n      place: Singapore\n    - year: 2023\n      id: asiacrypt23\n      link: https://asiacrypt.iacr.org/2023/\n      timeline:\n        - deadline: '2023-05-26 11:59:00'\n      timezone: UTC\n      date: December 4-8, 2023\n      place: Guangzhou, China\n    - year: 2024\n      id: asiacrypt24\n      link: https://asiacrypt.iacr.org/2024/\n      timeline:\n        - deadline: '2024-05-26 11:59:00'\n      timezone: UTC\n      date: December 9-13, 2024\n      place: Kolkata, India\n    - year: 2025\n      id: asiacrypt25\n      link: https://asiacrypt.iacr.org/2025/\n      timeline:\n        - deadline: '2025-05-16 11:59:59'\n      timezone: UTC\n      date: December 8-12, 2025\n      place: Melbourne, Australia\n"
  },
  {
    "path": "conference/SC/blocksys.yml",
    "content": "- title: BlockSys\n  description: International Conference on Blockchain, Artificial Intelligence, and Trustworthy Systems\n  sub: SC\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: blocksys\n  confs:\n    - year: 2026\n      id: blocksys2026\n      link: https://blocksys.info/2026/\n      timeline:\n        - deadline: '2026-03-30 23:59:59'\n      timezone: UTC+8\n      date: July 29-31, 2026\n      place: Chengdu, China\n"
  },
  {
    "path": "conference/SC/ccs.yml",
    "content": "- title: CCS\n  description: ACM Conference on Computer and Communications Security\n  sub: SC\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: ccs\n  confs:\n    - year: 2020\n      id: ccs20\n      link: https://www.sigsac.org/ccs/CCS2020/\n      timeline:\n        - deadline: '2020-01-20 23:59:59'\n          comment: 2 review cycles\n      timezone: UTC-12\n      date: November 9-13, 2020\n      place: Orlando, USA\n    - year: 2021\n      id: ccs21\n      link: https://www.sigsac.org/ccs/CCS2021/\n      timeline:\n        - deadline: '2021-01-20 23:59:59'\n          comment: 2 review cycles\n        - deadline: '2021-05-06 23:59:59'\n          comment: spring\n      timezone: UTC-12\n      date: November 15-19, 2021\n      place: Seoul, South Korea\n    - year: 2022\n      id: ccs22\n      link: https://www.sigsac.org/ccs/CCS2022/\n      timeline:\n        - deadline: '2022-01-14 23:59:59'\n          comment: 2 review cycles\n        - deadline: '2022-05-02 23:59:59'\n          comment: the second review cycle\n      timezone: UTC-12\n      date: November 14-19, 2022\n      place: Los Angeles, U.S.A.\n    - year: 2023\n      id: ccs23\n      link: https://www.sigsac.org/ccs/CCS2023/\n      timeline:\n        - deadline: '2023-01-19 23:59:59'\n          comment: First Round Submission\n        - deadline: '2023-05-04 23:59:59'\n          comment: Second Round Submission\n      timezone: UTC-12\n      date: November 26-30, 2023\n      place: Copenhagen, Denmark\n    - year: 2024\n      id: ccs24\n      link: https://www.sigsac.org/ccs/CCS2024/\n      timeline:\n        - deadline: '2024-01-28 23:59:59'\n          comment: First Round Submission\n        - deadline: '2024-04-29 23:59:59'\n          comment: Second Round Submission (tentative)\n      timezone: UTC-12\n      date: October 14-18, 2024\n      place: Salt Lake City, U.S.A\n    - year: 2025\n      id: ccs25\n      link: https://www.sigsac.org/ccs/CCS2025/\n      timeline:\n        - deadline: '2025-01-09 23:59:59'\n          comment: First Review Cycle\n        - deadline: '2025-04-14 23:59:59'\n          comment: Second Review Cycle\n      timezone: UTC-12\n      date: October 13-17, 2025\n      place: TICC, Taipei, Taiwan\n    - year: 2026\n      id: ccs26\n      link: https://www.sigsac.org/ccs/CCS2026/\n      timeline:\n        - deadline: '2026-01-14 23:59:59'\n          comment: First Review Cycle\n        - deadline: '2026-04-29 23:59:59'\n          comment: Second Review Cycle\n      timezone: UTC-12\n      date: November 15-19, 2026\n      place: World Forum, Hague, Netherlands\n"
  },
  {
    "path": "conference/SC/ches.yml",
    "content": "- title: CHES\n  description: International Conference on Cryptographic Hardware and Embedded Systems\n  sub: SC\n  rank:\n    ccf: B\n    core: A\n    thcpl: A\n  dblp: ches\n  confs:\n    - year: 2022\n      id: ches22\n      link: https://ches.iacr.org/2022/\n      timeline:\n        - deadline: '2021-07-15 23:59:59'\n          comment: Schedule for TCHES Volume 2022/1\n        - deadline: '2021-10-15 23:59:59'\n          comment: Schedule for TCHES Volume 2022/2\n        - deadline: '2022-01-15 23:59:59'\n          comment: Schedule for TCHES Volume 2022/3\n        - deadline: '2022-04-15 23:59:59'\n          comment: Schedule for TCHES Volume 2022/4\n      timezone: AoE\n      date: September , 2022\n      place: Beijing, China\n    - year: 2023\n      id: ches23\n      link: https://ches.iacr.org/2023/\n      timeline:\n        - deadline: '2022-07-15 23:59:59'\n          comment: Schedule for TCHES Volume 2023/1\n        - deadline: '2022-10-15 23:59:59'\n          comment: Schedule for TCHES Volume 2023/2\n        - deadline: '2023-01-15 23:59:59'\n          comment: Schedule for TCHES Volume 2023/3\n        - deadline: '2023-04-15 23:59:59'\n          comment: Schedule for TCHES Volume 2023/4\n      timezone: AoE\n      date: September 10-14, 2023\n      place: Prague, Czech Republic\n    - year: 2024\n      id: ches24\n      link: https://ches.iacr.org/2024/\n      timeline:\n        - deadline: '2023-07-15 23:59:59'\n          comment: Schedule for TCHES Volume 2024/1\n        - deadline: '2023-10-15 23:59:59'\n          comment: Schedule for TCHES Volume 2024/2\n        - deadline: '2024-01-15 23:59:59'\n          comment: Schedule for TCHES Volume 2024/3\n        - deadline: '2024-04-15 23:59:59'\n          comment: Schedule for TCHES Volume 2024/4\n      timezone: AoE\n      date: September, 2024\n      place: Halifax, Canada\n    - year: 2025\n      id: ches25\n      link: https://ches.iacr.org/2025/\n      timeline:\n        - deadline: '2024-07-15 23:59:59'\n          comment: Schedule for TCHES Volume 2025/1\n        - deadline: '2024-10-15 23:59:59'\n          comment: Schedule for TCHES Volume 2025/2\n        - deadline: '2025-01-15 23:59:59'\n          comment: Schedule for TCHES Volume 2025/3\n        - deadline: '2025-04-15 23:59:59'\n          comment: Schedule for TCHES Volume 2025/4\n      timezone: AoE\n      date: September 14-18, 2025\n      place: Kuala Lumpur, Malaysia\n    - year: 2026\n      id: ches26\n      link: https://ches.iacr.org/2026/\n      timeline:\n        - deadline: '2025-07-15 23:59:59'\n          comment: Schedule for TCHES Volume 2026/1\n        - deadline: '2025-10-15 23:59:59'\n          comment: Schedule for TCHES Volume 2026/2\n        - deadline: '2026-01-15 23:59:59'\n          comment: Schedule for TCHES Volume 2026/3\n        - deadline: '2026-04-15 23:59:59'\n          comment: Schedule for TCHES Volume 2026/4\n      timezone: AoE\n      date: October 11-15, 2026\n      place: Türkiye\n"
  },
  {
    "path": "conference/SC/codaspy.yml",
    "content": "- title: CODASPY\n  description: ACM Conference on Data and Application Security and Privacy\n  sub: SC\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: codaspy\n  confs:\n    - year: 2026\n      id: codaspy2026\n      link: https://www.codaspy.org/2026/\n      timeline:\n        - deadline: '2025-12-26 23:59:59'\n      timezone: AoE\n      date: June 23-25, 2026\n      place: Frankfurt am Main, Germany\n"
  },
  {
    "path": "conference/SC/crypto.yml",
    "content": "- title: CRYPTO\n  description: International Cryptology Conference\n  sub: SC\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: crypto\n  confs:\n    - year: 2021\n      id: crypto21\n      link: https://crypto.iacr.org/2021/\n      timeline:\n        - deadline: '2021-02-24 21:00:00'\n      timezone: UTC-12\n      date: August 15-19, 2021\n      place: Virtual\n    - year: 2023\n      id: crypto23\n      link: https://crypto.iacr.org/2023/\n      timeline:\n        - deadline: '2023-02-16 18:00:00'\n      timezone: UTC-5\n      date: August 19-24, 2023\n      place: Santa Barbara, USA\n    - year: 2024\n      id: crypto24\n      link: https://crypto.iacr.org/2024/\n      timeline:\n        - deadline: '2024-02-13 23:59:59'\n      timezone: UTC-12\n      date: August 18-22, 2024\n      place: Santa Barbara, USA\n    - year: 2025\n      id: crypto25\n      link: https://crypto.iacr.org/2025/\n      timeline:\n        - deadline: '2025-02-13 23:59:59'\n      timezone: UTC-12\n      date: August 17-21, 2025\n      place: Santa Barbara, USA\n    - year: 2026\n      id: crypto26\n      link: https://crypto.iacr.org/2026/\n      timeline:\n        - deadline: '2026-02-12 23:59:59'\n      timezone: UTC-12\n      date: August 17-20, 2026\n      place: Santa Barbara, USA\n"
  },
  {
    "path": "conference/SC/cscloud.yml",
    "content": "- title: CSCloud\n  description: IEEE International Conference on Cyber Security and Cloud Computing\n  sub: SC\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: cscloud\n  confs:\n    - year: 2026\n      id: cscloud2026\n      link: https://www.cloud-conf.net/cscloud/2026/cscloud/\n      timeline:\n        - deadline: '2026-08-01 23:59:59'\n      timezone: AoE\n      date: December 19-21, 2026\n      place: Shanghai, China\n"
  },
  {
    "path": "conference/SC/csfw.yml",
    "content": "- title: CSFW\n  description: IEEE Computer Security Foundations Workshop\n  sub: SC\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: csfw\n  confs:\n    - year: 2022\n      id: csfw22\n      link: https://www.ieee-security.org/TC/CSF2022/\n      timeline:\n        - deadline: '2021-05-14 23:59:59'\n          comment: spring\n        - deadline: '2021-10-01 23:59:59'\n          comment: fall\n      timezone: UTC-12\n      date: August, 2022\n      place: Haifa, Israel\n    - year: 2023\n      id: csfw23\n      link: https://www.ieee-security.org/TC/CSF2023/\n      timeline:\n        - deadline: '2022-05-13 23:59:59'\n          comment: spring\n        - deadline: '2022-09-30 23:59:59'\n          comment: fall\n        - deadline: '2023-02-03 23:59:59'\n          comment: winter\n      timezone: UTC-12\n      date: July, 2023\n      place: Dubrovnik, Croatia\n    - year: 2024\n      id: csfw24\n      link: https://www.ieee-security.org/TC/CSF2024/\n      timeline:\n        - deadline: '2023-05-15 23:59:59'\n          comment: spring\n        - deadline: '2023-09-30 23:59:59'\n          comment: fall\n        - deadline: '2024-02-03 23:59:59'\n          comment: winter\n      timezone: UTC-12\n      date: July 8-12, 2024\n      place: Enschede, The Netherlands\n    - year: 2025\n      id: csfw25\n      link: https://csf2025.ieee-security.org/\n      timeline:\n        - deadline: '2024-05-28 23:59:59'\n          comment: spring\n        - deadline: '2024-10-01 23:59:59'\n          comment: fall\n        - deadline: '2025-02-04 23:59:59'\n          comment: winter\n      timezone: UTC-12\n      date: June 16-20, 2025\n      place: Santa Cruz, CA, USA\n    - year: 2026\n      id: csfw26\n      link: https://csf2026.ieee-security.org/\n      timeline:\n        - deadline: '2025-07-24 23:59:59'\n          comment: Summer\n        - deadline: '2025-10-09 23:59:59'\n          comment: Fall\n        - deadline: '2026-01-29 23:59:59'\n          comment: Winter\n      timezone: UTC-12\n      date: July 26-29, 2026\n      place: Lisbon, Portugal\n"
  },
  {
    "path": "conference/SC/ct-rsa.yml",
    "content": "- title: CT-RSA\n  description: Cryptographer's Track at RSA Conference\n  sub: SC\n  rank:\n    ccf: C\n    core: B\n    thcpl: B\n  dblp: ctrsa\n  confs:\n    - year: 2022\n      id: ct-rsa22\n      link: https://ct-rsa-2022.auckland.ac.nz/\n      timeline:\n        - deadline: '2021-09-13 23:59:59'\n          comment: Submission deadline\n      timezone: UTC-12\n      date: February 07-10 , 2022\n      place: San Francisco, CA, USA\n    - year: 2024\n      id: ct-rsa24\n      link: https://ct-rsa-2024.aau.at/\n      timeline:\n        - deadline: '2023-10-02 23:59:59'\n          comment: Submission deadline\n      timezone: UTC-12\n      date: May 06-09 , 2024\n      place: San Francisco, CA, USA\n    - year: 2025\n      id: ct-rsa25\n      link: https://ct-rsa-2025.csa.iisc.ac.in/\n      timeline:\n        - deadline: '2024-10-15 23:59:59'\n          comment: Paper submission deadline\n      timezone: UTC-12\n      date: April 28-May 1, 2025\n      place: San Francisco, California, USA\n    - year: 2026\n      id: ct-rsa26\n      link: https://conference.wsu.edu/ct-rsa-2026/\n      timeline:\n        - deadline: '2025-10-24 23:59:59'\n          comment: Paper submission deadline\n      timezone: UTC-12\n      date: March 23-26, 2026\n      place: San Francisco, California, USA\n"
  },
  {
    "path": "conference/SC/dfrws-apac.yml",
    "content": "- title: DFRWS APAC\n  description: Digital Forensic Research Workshop Asia Pacific\n  sub: SC\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: di\n  confs:\n    - year: 2025\n      id: dfrws-apac25\n      link: https://dfrws.org/conferences/dfrws-apac-2025/\n      timeline:\n        - deadline: \"2025-05-23 23:59:59\"\n      timezone: AoE\n      date: November 10-12, 2025\n      place: Seoul, South Korea\n"
  },
  {
    "path": "conference/SC/dfrws.yml",
    "content": "- title: DFRWS\n  description: Digital Forensic Research Workshop\n  sub: SC\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: dfrws\n  confs:\n    - year: 2022\n      id: dfrws22\n      link: https://dfrws.org/conferences/dfrws-eu-2022/\n      timeline:\n        - deadline: '2021-10-03 23:59:59'\n          comment: Paper submission deadline\n      timezone: AoE\n      date: March 28-31 , 2022\n      place: Online and Physical (Location TBC)\n    - year: 2025\n      id: dfrws25\n      link: https://dfrws.org/conferences/dfrws-eu-2025/\n      timeline:\n        - abstract_deadline: '2024-09-20 23:59:59'\n          deadline: '2024-09-27 23:59:59'\n      timezone: AoE\n      date: April 1-4, 2025\n      place: Brno, Czech Republic\n    - year: 2026\n      id: dfrws26\n      link: https://dfrws.org/conferences/dfrws-eu-2026/\n      timeline:\n        - abstract_deadline: '2025-09-19 23:59:59'\n          deadline: '2025-09-26 23:59:59'\n      timezone: AoE\n      date: March 24-27, 2026\n      place: Linköping, Sweden\n"
  },
  {
    "path": "conference/SC/dimva.yml",
    "content": "- title: DIMVA\n  description: Detection of Intrusions and Malware & Vulnerability Assessment\n  sub: SC\n  rank:\n    ccf: C\n    core: C\n    thcpl: B\n  dblp: dimva\n  confs:\n    - year: 2021\n      id: dimva21\n      link: https://dimva2021.campus.ciencias.ulisboa.pt/\n      timeline:\n        - deadline: '2021-03-01 23:59:59'\n          comment: Paper submission deadline\n        - deadline: '2021-05-14 23:59:59'\n          comment: Final paper submission deadline\n      timezone: AoE\n      date: July 14-16 , 2022\n      place: Virtual\n    - year: 2024\n      id: dimva24\n      link: https://dimva.org/dimva2024/\n      timeline:\n        - deadline: '2023-12-19 23:59:59'\n          comment: Paper submission deadline\n        - deadline: '2024-02-14 23:59:59'\n          comment: Final paper submission deadline\n      timezone: AoE\n      date: July 17-19, 2024\n      place: Lausanne, Switzerland\n    - year: 2025\n      id: dimva25\n      link: https://www.dimva.org/dimva2025/\n      timeline:\n        - deadline: '2024-12-10 23:59:59'\n          comment: Paper submission deadline\n        - deadline: '2025-02-12 23:59:59'\n          comment: Final paper submission deadline\n      timezone: AoE\n      date: July 9-11, 2025\n      place: Graz University of Technology, Graz, Austria\n    - year: 2026\n      id: dimva26\n      link: https://www.dimva.org/dimva2026/\n      timeline:\n        - deadline: '2025-12-03 23:59:59'\n          comment: Cycle 1 submission deadline\n        - deadline: '2026-02-11 23:59:59'\n          comment: Cycle 2 submission deadline\n      timezone: AoE\n      date: July 1-3, 2026\n      place: Chania, Greece\n"
  },
  {
    "path": "conference/SC/dsn.yml",
    "content": "- title: DSN\n  description: International Conference on Dependable Systems and Networks\n  sub: SC\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: dsn\n  confs:\n    - year: 2022\n      id: dsn22\n      link: https://dsn2022.github.io/\n      timeline:\n        - deadline: '2021-12-03 23:59:59'\n          comment: Abstract submission deadline\n        - deadline: '2021-12-10 23:59:59'\n          comment: Paper submission deadline\n        - deadline: '2022-03-14 23:59:59'\n          comment: Notification to authors\n      timezone: AoE\n      date: June 27-30, 2022\n      place: Baltimore, Maryland, USA\n    - year: 2024\n      id: dsn24\n      link: https://dsn2024uq.github.io\n      timeline:\n        - abstract_deadline: '2023-11-29 23:59:59'\n          deadline: '2023-12-06 23:59:59'\n      timezone: AoE\n      date: June 24-27, 2024\n      place: Brisbane, Australia\n    - year: 2025\n      id: dsn25\n      link: https://dsn2025.github.io/\n      timeline:\n        - abstract_deadline: '2024-11-27 23:59:59'\n          deadline: '2024-12-04 23:59:59'\n      timezone: AoE\n      date: June 23-26, 2025\n      place: Naples, Italy\n    - year: 2026\n      id: dsn26\n      link: https://dsn2026.github.io\n      timeline:\n        - abstract_deadline: '2025-11-27 23:59:59'\n          deadline: '2025-12-04 23:59:59'\n      timezone: AoE\n      date: June 22-25, 2026\n      place: Charlotte, USA\n"
  },
  {
    "path": "conference/SC/esorics.yml",
    "content": "- title: ESORICS\n  description: European Symposium on Research in Computer Security\n  sub: SC\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: esorics\n  confs:\n    - year: 2022\n      id: esorics22\n      link: https://esorics2022.compute.dtu.dk/\n      timeline:\n        - deadline: '2022-01-31 23:59:59'\n          comment: Winter Cycle Title and Abstract\n        - deadline: '2022-01-31 23:59:59'\n          comment: Winter Cycle Full Paper Submission\n        - deadline: '2022-05-15 23:59:59'\n          comment: Spring Cycle Title and Abstract\n        - deadline: '2022-05-22 23:59:59'\n          comment: Spring Cycle Full Paper Submission\n      timezone: UTC+1\n      date: September 26-30, 2022\n      place: Copenhagen, Denmark\n    - year: 2024\n      id: esorics24\n      link: https://esorics2024.org/\n      timeline:\n        - deadline: '2024-01-08 23:59:59'\n          comment: First Submission deadline\n        - deadline: '2024-04-19 23:59:59'\n          comment: Second Submission deadline\n      timezone: AoE\n      date: September 16-20, 2024\n      place: Bydgoszcz, Poland\n    - year: 2025\n      id: esorics25\n      link: https://esorics2025.sciencesconf.org/\n      timeline:\n        - deadline: '2025-01-10 23:59:59'\n          comment: First Submission deadline\n        - deadline: '2025-04-29 23:59:59'\n          comment: Second Submission deadline\n      timezone: AoE\n      date: September 22-26, 2025\n      place: Toulouse, France\n    - year: 2026\n      id: esorics26\n      link: https://sites.google.com/di.uniroma1.it/esorics2026/home\n      timeline:\n        - deadline: '2026-01-09 23:59:59'\n          comment: First Submission deadline\n        - deadline: '2026-04-21 23:59:59'\n          comment: Second Submission deadline\n      timezone: AoE\n      date: September, 2026\n      place: Rome, Italy\n"
  },
  {
    "path": "conference/SC/eurocrypt.yml",
    "content": "- title: EUROCRYPT\n  description: European Cryptology Conference\n  sub: SC\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: eurocrypt\n  confs:\n    - year: 2021\n      id: eurocrypt21\n      link: https://eurocrypt.iacr.org/2021\n      timeline:\n        - deadline: '2020-10-08 21:00:00'\n      timezone: UTC-12\n      date: October 17-21, 2021\n      place: Zagreb, Croatia\n    - year: 2024\n      id: eurocrypt24\n      link: https://eurocrypt.iacr.org/2024\n      timeline:\n        - deadline: '2023-10-06 23:59:59'\n      timezone: AoE\n      date: May 26-30, 2024\n      place: Zurich, Switzerland\n    - year: 2025\n      id: eurocrypt25\n      link: https://eurocrypt.iacr.org/2025/\n      timeline:\n        - deadline: '2024-10-02 23:59:59'\n      timezone: AoE\n      date: May 4-8, 2025\n      place: Madrid, Spain\n    - year: 2026\n      id: eurocrypt26\n      link: https://eurocrypt.iacr.org/2026/\n      timeline:\n        - deadline: '2025-10-02 23:59:59'\n      timezone: AoE\n      date: May 10-14, 2026\n      place: Rome, Italy\n"
  },
  {
    "path": "conference/SC/eurosp.yml",
    "content": "- title: EuroS&P\n  description: IEEE European Symposium on Security and Privacy\n  sub: SC\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: eurosp\n  confs:\n    - year: 2024\n      id: eurosp24\n      link: https://eurosp2024.ieee-security.org/\n      timeline:\n        - deadline: '2023-11-02 23:59:59'\n      timezone: UTC-12\n      date: July 8-12, 2024\n      place: Vienna, Austria\n    - year: 2025\n      id: eurosp25\n      link: https://eurosp2025.ieee-security.org/\n      timeline:\n        - deadline: '2024-10-24 23:59:59'\n      timezone: UTC-12\n      date: June 30-July 4, 2025\n      place: Venice, Italy\n    - year: 2026\n      id: eurosp26\n      link: https://eurosp2026.ieee-security.org/\n      timeline:\n        - deadline: '2025-11-20 23:59:59'\n      timezone: UTC-12\n      date: July 6 - 10, 2026\n      place: Lisbon, Portugal\n"
  },
  {
    "path": "conference/SC/fc.yml",
    "content": "- title: FC\n  description: Financial Cryptography and Data Security\n  sub: SC\n  rank:\n    ccf: C\n    core: A\n    thcpl: B\n  dblp: fc\n  confs:\n    - year: 2022\n      id: fc22\n      link: https://fc22.ifca.ai/\n      timeline:\n        - deadline: '2021-09-02 23:59:59'\n          comment: Paper registration\n        - deadline: '2021-09-09 23:59:59'\n          comment: Paper submission\n      timezone: UTC-12\n      date: February 14-18, 2022\n      place: Radisson Grenada Beach Resort Grenada\n    - year: 2024\n      id: fc24\n      link: https://fc24.ifca.ai/\n      timeline:\n        - deadline: '2023-09-18 23:59:59'\n          comment: Submission deadline\n      timezone: UTC-12\n      date: March 4-8, 2024\n      place: Willemstad, Curaçao\n    - year: 2025\n      id: fc25\n      link: https://fc25.ifca.ai/\n      timeline:\n        - deadline: '2024-10-11 23:59:59'\n          comment: Submission deadline\n      timezone: UTC-12\n      date: April 14-18, 2025\n      place: Miyakojima, Japan\n    - year: 2026\n      id: fc26\n      link: https://fc26.ifca.ai/\n      timeline:\n        - deadline: '2025-09-16 23:59:59'\n          comment: Submission deadline\n      timezone: UTC-12\n      date: March 2-6, 2026\n      place: St. Kitts\n"
  },
  {
    "path": "conference/SC/fse.yml",
    "content": "- title: FSE\n  description: Fast Software Encryption\n  sub: SC\n  rank:\n    ccf: B\n    core: N\n    thcpl: B\n  dblp: fse\n  confs:\n    - year: 2023\n      id: fse23\n      link: https://fse.iacr.org/2023/\n      timeline:\n        - deadline: '2022-03-01 11:59:59'\n          comment: Submission deadline\n        - deadline: '2022-06-01 11:59:59'\n          comment: Submission deadline\n        - deadline: '2022-09-01 11:59:59'\n          comment: Submission deadline\n        - deadline: '2022-11-23 11:59:59'\n          comment: Submission deadline\n      timezone: UTC+0\n      date: March 20-24, 2023\n      place: Beijing, China\n    - year: 2024\n      id: fse24\n      link: https://fse.iacr.org/2024/\n      timeline:\n        - deadline: '2023-03-01 11:59:59'\n          comment: Submission deadline\n        - deadline: '2023-06-01 11:59:59'\n          comment: Submission deadline\n        - deadline: '2023-09-01 11:59:59'\n          comment: Submission deadline\n        - deadline: '2023-11-23 11:59:59'\n          comment: Submission deadline\n      timezone: UTC+0\n      date: March 25-29, 2024\n      place: Leuven, Belgium\n    - year: 2025\n      id: fse25\n      link: https://fse.iacr.org/2025/\n      timeline:\n        - deadline: '2024-03-01 23:59:59'\n          comment: ToSC, Volume 2024, Issue 2 Submission deadline\n        - deadline: '2024-06-01 23:59:59'\n          comment: ToSC, Volume 2024, Issue 3 Submission deadline\n        - deadline: '2024-09-01 23:59:59'\n          comment: ToSC, Volume 2024, Issue 4 Submission deadline\n        - deadline: '2024-11-22 23:59:59'\n          comment: ToSC, Volume 2025, Issue 1 Submission deadline\n      timezone: UTC-12\n      date: March 17-21, 2025\n      place: Rome, Italy\n    - year: 2026\n      id: fse26\n      link: https://fse.iacr.org/2026/\n      timeline:\n        - deadline: '2025-03-01 23:59:59'\n          comment: ToSC, Volume 2025, Issue 2 Submission deadline\n        - deadline: '2025-06-01 23:59:59'\n          comment: ToSC, Volume 2025, Issue 3 Submission deadline\n        - deadline: '2025-09-01 23:59:59'\n          comment: ToSC, Volume 2025, Issue 4 Submission deadline\n        - deadline: '2025-11-23 23:59:59'\n          comment: ToSC, Volume 2026, Issue 1 Submission deadline\n      timezone: UTC-12\n      date: March 23-27, 2026\n      place: Singapore, Singapore\n"
  },
  {
    "path": "conference/SC/hotsec.yml",
    "content": "- title: HotSec\n  description: USENIX Workshop on Hot Topics in Security\n  sub: SC\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: events\n  confs:\n    - year: 2021\n      id: hotsec21\n      link: https://www.usenix.org/conferences/byname/158\n      timeline:\n        - deadline: '2021-10-12 23:59:59'\n          comment: Extended\n      timezone: AoE\n      date: Extended\n      place: Vancouver, British Columbia, Canada\n"
  },
  {
    "path": "conference/SC/icdf2c.yml",
    "content": "- title: ICDF2C\n  description: International Conference on Digital Forensics & Cyber Crime\n  sub: SC\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: icdf2c\n  confs:\n    - year: 2021\n      id: icdf2c21\n      link: https://icdf2c.eai-conferences.org/2021/\n      timeline:\n        - deadline: '2021-06-16 23:59:59'\n          comment: Main Track Full Paper Submission deadline\n        - deadline: '2021-07-26 23:59:59'\n          comment: Late Track Full Paper Submission deadline\n      timezone: UTC-12\n      date: December 7-9, 2021\n      place: Singapore, Singapore\n    - year: 2024\n      id: icdf2c24\n      link: https://icdf2c.eai-conferences.org/2024/\n      timeline:\n        - deadline: '2024-04-30 23:59:59'\n          comment: Full Paper Submission deadline\n      timezone: UTC-12\n      date: October 9-10, 2024\n      place: Dubrovnik, Croatia\n    - year: 2025\n      id: icdf2c25\n      link: https://icdf2c.eai-conferences.org/2025/\n      timeline:\n        - deadline: '2025-05-31 23:59:59'\n          comment: Full Paper Submission deadline\n      timezone: UTC-12\n      date: November 17-19, 2025\n      place: Miami, Florida, USA\n    - year: 2026\n      id: icdf2c26\n      link: https://icdf2c.eai-conferences.org/2026/\n      timeline:\n        - deadline: '2026-01-20 23:59:59'\n      timezone: UTC-12\n      date: September 8-10, 2026\n      place: Reykjavik, Iceland\n"
  },
  {
    "path": "conference/SC/icics.yml",
    "content": "- title: ICICS\n  description: International Conference on Information and Communications Security\n  sub: SC\n  rank:\n    ccf: C\n    core: C\n    thcpl: N\n  dblp: icics\n  confs:\n    - year: 2021\n      id: icics21\n      link: https://icics.cn/\n      timeline:\n        - deadline: '2021-05-22 23:59:59'\n          comment: Paper Submission deadline\n      timezone: AoE\n      date: September 17-19, 2021\n      place: Chongqing, China\n    - year: 2023\n      id: icics23\n      link: https://icics23.nankai.edu.cn/\n      timeline:\n        - deadline: '2023-03-30 23:59:59'\n      timezone: AoE\n      date: November 18-20, 2023\n      place: Nankai University, Tianjin, China\n    - year: 2024\n      id: icics24\n      link: http://icics2024.aegean.gr/\n      timeline:\n        - deadline: '2024-02-16 23:59:59'\n          comment: First Cycle\n        - deadline: '2024-04-19 23:59:59'\n          comment: Second Cycle\n      timezone: AoE\n      date: August 26-28, 2024\n      place: Mytilene, Greece\n    - year: 2025\n      id: icics25\n      link: https://www.icics2025.org/\n      timeline:\n        - deadline: '2025-02-28 23:59:59'\n          comment: First round\n        - deadline: '2025-05-23 23:59:59'\n          comment: Second round\n      timezone: UTC+8\n      date: October 29-31, 2025\n      place: Nanjing, China\n    - year: 2026\n      id: icics26\n      link: https://sulab-sever.u-aizu.ac.jp/icics2026/cfp.html\n      timeline:\n        - deadline: '2026-02-28 23:59:59'\n          comment: First round\n        - deadline: '2026-05-23 23:59:59'\n          comment: Second round\n      timezone: AoE\n      date: October 27-30, 2026\n      place: Fukui, Japan\n"
  },
  {
    "path": "conference/SC/ifip119.yml",
    "content": "- title: IFIP WG 11.9\n  description: IFIP WG 11.9 International Conference on Digital Forensics\n  sub: SC\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: NO DBLP\n  confs:\n    - year: 2022\n      id: ifip119'22\n      link: http://www.ifip119.org/Conferences/\n      timeline:\n        - deadline: '2021-10-15 23:59:59'\n          comment: Submission Deadline\n      timezone: AoE\n      date: January 3 - 5, 2022\n      place: New Delhi, India\n    - year: 2026\n      id: ifip119'26\n      link: http://www.ifip119.org/Conferences/\n      timeline:\n        - deadline: '2025-09-30 23:59:59'\n          comment: Submission Deadline\n      timezone: AoE\n      date: January 5 - 6, 2026\n      place: New Delhi, India\n"
  },
  {
    "path": "conference/SC/ih&mmsec.yml",
    "content": "- title: IH&MMSec\n  description: ACM Workshop on Information Hiding and Multimedia Security\n  sub: SC\n  rank:\n    ccf: C\n    core: C\n    thcpl: B\n  dblp: ih\n  confs:\n    - year: 2021\n      id: ih&mmsec21\n      link: https://www.ihmmsec.org/\n      timeline:\n        - deadline: '2021-02-25 23:59:59'\n          comment: Paper Submission Deadline\n      timezone: AoE\n      date: June 22-25, 2021\n      place: Virtual\n    - year: 2024\n      id: ih&mmsec24\n      link: https://www.ihmmsec.org/\n      timeline:\n        - deadline: '2024-02-29 23:59:59'\n          comment: Paper Submission Deadline\n      timezone: AoE\n      date: June 24-26, 2024\n      place: Baiona, Spain\n    - year: 2025\n      id: ih&mmsec25\n      link: https://www.ihmmsec.org/cms/home/index.html\n      timeline:\n        - deadline: '2025-02-28 23:59:59'\n          comment: Submission Deadline\n      timezone: AoE\n      date: June 18-20, 2025\n      place: San Jose, CA, USA\n    - year: 2026\n      id: ih&mmsec26\n      link: https://www.ihmmsec.org/cms/home/home2026.html\n      timeline:\n        - deadline: '2026-02-16 23:59:59'\n          comment: Submission Deadline\n      timezone: AoE\n      date: June 17-19, 2026\n      place: Florence, Italy\n"
  },
  {
    "path": "conference/SC/indocrypt.yml",
    "content": "- title: INDOCRYPT\n  description: International Conference on Cryptology in India\n  sub: SC\n  rank:\n    ccf: N\n    core: N\n    thcpl: N\n  dblp: indocrypt\n  confs:\n    - year: 2023\n      id: indocrypt23\n      link: https://crsind.in/indocrypt2023/\n      timeline:\n        - deadline: '2023-09-01 23:59:59'\n      timezone: UTC-12\n      date: December 10-13, 2023\n      place: BITS Pilani Goa, India\n    - year: 2025\n      id: indocrypt25\n      link: https://www.indocrypt2025.in/\n      timeline:\n        - deadline: '2025-09-01 23:59:59'\n      timezone: UTC-12\n      date: December 14-17, 2025\n      place: IIIT Bhubaneswar, Odisha, India\n"
  },
  {
    "path": "conference/SC/inscrypt.yml",
    "content": "- title: INSCRYPT\n  description: International Conference on Information Security and Cryptology\n  sub: SC\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: cisc\n  confs:\n    - year: 2025\n      id: inscrypt25\n      link: https://inscrypt2025.xidian.edu.cn/\n      timeline:\n        - deadline: '2025-04-15 23:59:59'\n          comment: 1st Round\n        - deadline: '2025-06-30 23:59:59'\n          comment: 2nd Round\n      timezone: UTC-8\n      date: October 19-21, 2025\n      place: Xi'an, China\n"
  },
  {
    "path": "conference/SC/isc.yml",
    "content": "- title: ISC\n  description: Information Security Conference\n  sub: SC\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: isw\n  confs:\n    - year: 2021\n      id: isc21\n      link: https://isc2021.petra.ac.id/\n      timeline:\n        - deadline: '2021-07-23 23:59:59'\n          comment: Submission Deadline\n      timezone: UTC-12\n      date: November 9 - 13, 2021\n      place: Bali, Indonesia\n    - year: 2024\n      id: isc24\n      link: https://isc24.cs.gmu.edu/\n      timeline:\n        - deadline: '2024-06-13 23:59:59'\n          comment: Submission Deadline\n      timezone: AoE\n      date: Oct 23 - 25, 2024\n      place: VA, USA\n    - year: 2025\n      id: isc25\n      link: https://isc25.skku.edu/\n      timeline:\n        - deadline: '2025-06-04 23:59:59'\n          comment: Submission Deadline\n      timezone: AoE\n      date: October 20-22, 2025\n      place: Seoul, South Korea\n"
  },
  {
    "path": "conference/SC/ndss.yml",
    "content": "- title: NDSS\n  description: Network and Distributed System Security (NDSS) Symposium\n  sub: SC\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: ndss\n  confs:\n    - year: 2022\n      id: ndss22\n      link: https://www.ndss-symposium.org/ndss2022/\n      timeline:\n        - deadline: '2021-05-21 23:59:59'\n          comment: spring\n        - deadline: '2021-07-23 23:59:59'\n          comment: fall\n      timezone: UTC-12\n      date: February 27 - March 3, 2022\n      place: San Diego, California\n    - year: 2023\n      id: ndss23\n      link: https://www.ndss-symposium.org/ndss2023/\n      timeline:\n        - deadline: '2022-05-13 23:59:59'\n          comment: Summer\n        - deadline: '2022-07-29 23:59:59'\n          comment: Fall\n      timezone: UTC-12\n      date: TBD\n      place: San Diego, California\n    - year: 2024\n      id: ndss24\n      link: https://www.ndss-symposium.org/ndss2024/\n      timeline:\n        - deadline: '2023-04-19 23:59:59'\n          comment: Summer\n        - deadline: '2023-06-28 23:59:59'\n          comment: Fall\n      timezone: UTC-12\n      date: February 26 - March 1, 2024\n      place: San Diego, California\n    - year: 2025\n      id: ndss25\n      link: https://www.ndss-symposium.org/ndss2025/\n      timeline:\n        - deadline: '2024-04-17 23:59:59'\n          comment: Summer\n        - deadline: '2024-07-10 23:59:59'\n          comment: Fall\n      timezone: UTC-12\n      date: February 23 - February 28, 2025\n      place: San Diego, California\n    - year: 2026\n      id: ndss26\n      link: https://www.ndss-symposium.org/ndss2026/\n      timeline:\n        - abstract_deadline: '2025-04-16 23:59:59'\n          deadline: '2025-04-23 23:59:59'\n          comment: Summer\n        - abstract_deadline: '2025-07-30 23:59:59'\n          deadline: '2025-08-06 23:59:59'\n          comment: Fall\n      timezone: UTC-12\n      date: February 23 - February 27, 2026\n      place: San Diego, California\n"
  },
  {
    "path": "conference/SC/noms.yml",
    "content": "- title: NOMS\n  description: IEEE/IFIP Network Operations and Management Symposium\n  sub: SC\n  rank:\n    ccf: N\n    core: B\n    thcpl: B\n  dblp: noms\n  confs:\n    - year: 2025\n      id: noms25\n      link: https://noms2025.ieee-noms.org/\n      timeline:\n        - abstract_deadline: '2024-09-07 19:59:59'\n          deadline: '2024-09-14 19:59:59'\n      timezone: UTC+10\n      date: May 12-16, 2025\n      place: Honolulu, HI, USA\n    - year: 2026\n      id: noms26\n      link: https://noms2026.ieee-noms.org/\n      timeline:\n        - deadline: '2025-10-13 19:59:59'\n      timezone: UTC+10\n      date: May 18-22, 2026\n      place: Rome, Italy\n"
  },
  {
    "path": "conference/SC/nspw.yml",
    "content": "- title: NSPW\n  description: New Security Paradigms Workshop\n  sub: SC\n  rank:\n    ccf: C\n    core: C\n    thcpl: N\n  dblp: nspw\n  confs:\n    - year: 2021\n      id: nspw21\n      link: https://www.nspw.org/2021\n      timeline:\n        - deadline: '2021-06-04 23:59:59'\n          comment: Submission deadline\n        - deadline: '2021-11-24 23:59:59'\n          comment: Final version\n      timezone: UTC-11\n      date: October 25-28, 2021\n      place: Virtual\n    - year: 2024\n      id: nspw24\n      link: https://www.nspw.org/2024/cfp\n      timeline:\n        - deadline: '2024-04-12 23:59:00'\n      timezone: UTC-11\n      date: September 16-18, 2024\n      place: Bedford, PA USA\n    - year: 2025\n      id: nspw25\n      link: https://www.nspw.org/2025\n      timeline:\n        - deadline: '2025-04-11 23:59:59'\n      timezone: AoE\n      date: August 24-27, 2025\n      place: Aerzen, Germany\n    - year: 2026\n      id: nspw26\n      link: https://www.nspw.org/2026\n      timeline:\n        - deadline: '2026-04-30 23:59:59'\n      timezone: AoE\n      date: September 27-30, 2026\n      place: Victoria, BC, Canada\n"
  },
  {
    "path": "conference/SC/pam.yml",
    "content": "- title: PAM\n  description: Passive and Active Measurement Conference\n  sub: SC\n  rank:\n    ccf: C\n    core: B\n    thcpl: B\n  dblp: pam\n  confs:\n    - year: 2021\n      id: pam21\n      link: https://www.pam2021.b-tu.de/\n      timeline:\n        - deadline: '2020-10-16 23:59:59'\n          comment: Paper registration (with abstract)\n        - deadline: '2020-10-23 23:59:59'\n          comment: Paper submission\n      timezone: UTC-4\n      date: March 29-31, 2021\n      place: Virtual\n    - year: 2022\n      id: pam22\n      link: https://pam2022.nl/\n      timeline:\n        - deadline: '2021-10-20 23:59:59'\n          comment: Paper registration (with abstract)\n        - deadline: '2021-10-27 23:59:59'\n          comment: Paper submission\n      timezone: AoE\n      date: March 28-30, 2022\n      place: Virtual\n    - year: 2023\n      id: pam23\n      link: https://pam2023.networks.imdea.org/\n      timeline:\n        - deadline: '2022-11-01 23:59:59'\n      timezone: AoE\n      date: March 21-23, 2023\n      place: Virtual\n    - year: 2024\n      id: pam24\n      link: https://pam2024.cs.northwestern.edu/\n      timeline:\n        - abstract_deadline: '2023-10-28 23:59:59'\n          deadline: '2023-11-02 23:59:59'\n      timezone: AoE\n      date: March 11-13, 2024\n      place: Virtual\n    - year: 2025\n      id: pam25\n      link: https://udesa.edu.ar/pam25\n      timeline:\n        - abstract_deadline: '2024-10-01 23:59:59'\n          deadline: '2024-10-08 23:59:59'\n      timezone: AoE\n      date: March 10-12, 2025\n      place: Virtual\n    - year: 2026\n      id: pam26\n      link: https://pam2026.at/\n      timeline:\n        - deadline: '2025-10-15 23:59:59'\n      timezone: AoE\n      date: March 23-25, 2026\n      place: Virtual\n"
  },
  {
    "path": "conference/SC/pets.yml",
    "content": "- title: PETS\n  description: Privacy Enhancing Technologies Symposium\n  sub: SC\n  rank:\n    ccf: C\n    core: A\n    thcpl: B\n  dblp: pet\n  confs:\n    - year: 2022\n      id: pets22\n      link: https://petsymposium.org/cfp22.php\n      timeline:\n        - deadline: '2021-05-31 23:59:59'\n          comment: Issue 1 Paper Submission Deadline\n        - deadline: '2021-08-31 23:59:59'\n          comment: Issue 2 Paper Submission Deadline\n        - deadline: '2021-11-30 23:59:59'\n          comment: Issue 3 Paper Submission Deadline\n        - deadline: '2022-02-28 23:59:59'\n          comment: Issue 4 Paper Submission Deadline\n      timezone: AoE\n      date: July 18-23, 2022\n      place: Sydney, Australia\n    - year: 2024\n      id: pets24\n      link: https://www.petsymposium.org/cfp24.php\n      timeline:\n        - deadline: '2023-05-31 23:59:59'\n          comment: Issue 1 Paper Submission Deadline\n        - deadline: '2023-08-31 23:59:59'\n          comment: Issue 2 Paper Submission Deadline\n        - deadline: '2023-11-30 23:59:59'\n          comment: Issue 3 Paper Submission Deadline\n        - deadline: '2024-02-29 23:59:59'\n          comment: Issue 4 Paper Submission Deadline\n      timezone: AoE\n      date: July 15-20, 2024\n      place: Bristol, UK and Online\n    - year: 2025\n      id: pets25\n      link: https://petsymposium.org/cfp25.php\n      timeline:\n        - deadline: '2024-05-31 23:59:59'\n          comment: Issue 1 Paper Submission Deadline\n        - deadline: '2024-08-31 23:59:59'\n          comment: Issue 2 Paper Submission Deadline\n        - deadline: '2024-11-30 23:59:59'\n          comment: Issue 3 Paper Submission Deadline\n        - deadline: '2025-02-28 23:59:59'\n          comment: Issue 4 Paper Submission Deadline\n      timezone: AoE\n      date: July 14-19, 2025\n      place: Washington, DC and Online\n    - year: 2026\n      id: pets26\n      link: https://petsymposium.org/cfp26.php\n      timeline:\n        - deadline: '2025-05-31 23:59:59'\n          comment: Issue 1 Paper Submission Deadline\n        - deadline: '2025-08-31 23:59:59'\n          comment: Issue 2 Paper Submission Deadline\n        - deadline: '2025-11-30 23:59:59'\n          comment: Issue 3 Paper Submission Deadline\n        - deadline: '2026-02-28 23:59:59'\n          comment: Issue 4 Paper Submission Deadline\n      timezone: AoE\n      date: July 20-25, 2026\n      place: Calgary, Canada\n"
  },
  {
    "path": "conference/SC/pkc.yml",
    "content": "- title: PKC\n  description: International Conference on Practice and Theory of Public-Key Cryptography\n  sub: SC\n  rank:\n    ccf: B\n    core: B\n    thcpl: B\n  dblp: pkc\n  confs:\n    - year: 2021\n      id: pkc21\n      link: https://pkc.iacr.org/2021/\n      timeline:\n        - deadline: '2020-11-13 23:59:59'\n      timezone: UTC-12\n      date: May 10, 2021\n      place: Virtual\n    - year: 2024\n      id: pkc24\n      link: https://pkc.iacr.org/2024/\n      timeline:\n        - deadline: '2023-10-01 23:59:59'\n      timezone: UTC-12\n      date: April 15-17, 2024\n      place: Sydney, Australia\n    - year: 2025\n      id: pkc25\n      link: https://pkc.iacr.org/2025/\n      timeline:\n        - deadline: '2024-10-16 23:59:59'\n      timezone: UTC-12\n      date: May 12-15, 2025\n      place: Røros, Norway\n    - year: 2026\n      id: pkc26\n      link: https://pkc.iacr.org/2026/\n      timeline:\n        - deadline: '2025-10-24 23:59:59'\n      timezone: UTC-12\n      date: May 25-28, 2026\n      place: West Palm Beach, USA\n"
  },
  {
    "path": "conference/SC/raid.yml",
    "content": "- title: RAID\n  description: International Symposium on Recent Advances in Intrusion Detection\n  sub: SC\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: raid\n  confs:\n    - year: 2021\n      id: raid21\n      link: https://raid2021.org/\n      timeline:\n        - deadline: '2021-08-01 23:59:59'\n          comment: Paper Submission Deadline\n      timezone: AoE\n      date: October 6-8, 2021\n      place: Donostia / San Sebastian, Spain\n    - year: 2023\n      id: raid23\n      link: https://raid2023.org/\n      timeline:\n        - deadline: '2023-03-29 23:59:59'\n      timezone: AoE\n      date: October 16-18, 2023\n      place: Hong Kong Polytechnic University, Hong Kong, China\n    - year: 2024\n      id: raid24\n      link: https://raid2024.github.io/\n      timeline:\n        - deadline: '2024-04-15 23:59:59'\n      timezone: AoE\n      date: September 30 - October 2, 2024\n      place: Palazzo della Salute, Padua, Italy\n    - year: 2025\n      id: raid25\n      link: https://raid2025.github.io/\n      timeline:\n        - deadline: '2025-04-24 23:59:59'\n      timezone: AoE\n      date: October 19-22, 2025\n      place: Gold Coast, Australia\n    - year: 2026\n      id: raid26\n      link: https://raid2026.org\n      timeline:\n        - deadline: '2026-04-16 23:59:59'\n      timezone: AoE\n      date: October 11-14, 2026\n      place: Lancaster, UK\n"
  },
  {
    "path": "conference/SC/sac.yml",
    "content": "- title: SAC\n  description: Selected Areas in Cryptography\n  sub: SC\n  rank:\n    ccf: C\n    core: B\n    thcpl: B\n  dblp: sacrypt\n  confs:\n    - year: 2021\n      id: sac21\n      link: https://www.sac2021.ca/\n      timeline:\n        - deadline: '2021-07-07 23:59:59'\n          comment: Abstract submission\n        - deadline: '2021-07-12 23:59:59'\n          comment: final paper submission\n      timezone: UTC+1\n      date: September 29 - October 01, 2021\n      place: Virtual\n    - year: 2024\n      id: sac24\n      link: https://sacworkshop.org/SAC24/\n      timeline:\n        - deadline: '2024-02-07 23:59:59'\n          comment: 1st round Deadline\n        - deadline: '2024-05-07 23:59:59'\n          comment: 2nd round Deadline\n      timezone: AoE\n      date: August 28 - 30, 2024\n      place: Montreal, Canada\n    - year: 2025\n      id: sac25\n      link: https://sacworkshop.org/SAC25/\n      timeline:\n        - deadline: '2025-01-27 23:59:59'\n          comment: Paper submission deadline (cycle 1)\n        - deadline: '2025-05-07 23:59:59'\n          comment: Paper submission deadline (cycle 2)\n      timezone: AoE\n      date: August 13-15, 2025\n      place: Toronto, Ontario, Canada\n    - year: 2026\n      id: sac26\n      link: https://sacworkshop.org/SAC26/\n      timeline:\n        - deadline: '2026-02-02 23:59:59'\n          comment: Paper submission deadline (cycle 1)\n        - deadline: '2025-05-11 23:59:59'\n          comment: Paper submission deadline (cycle 2)\n      timezone: AoE\n      date: August 24-28, 2026\n      place: Ottawa, Ontario, Canada\n"
  },
  {
    "path": "conference/SC/sacmat.yml",
    "content": "- title: SACMAT\n  description: ACM Symposium on Access Control Models and Technologies\n  sub: SC\n  rank:\n    ccf: C\n    core: C\n    thcpl: N\n  dblp: sacmat\n  confs:\n    - year: 2021\n      id: sacmat21\n      link: http://sacmat.dista.uninsubria.it/2021/\n      timeline:\n        - deadline: '2021-02-25 23:59:59'\n          comment: Paper Submission Deadline\n      timezone: AoE\n      date: June 16-18, 2021\n      place: Virtual\n    - year: 2025\n      id: sacmat25\n      link: https://www.sacmat.org/2025/index.php\n      timeline:\n        - deadline: '2025-03-24 23:59:59'\n          comment: Paper Submission Deadline\n      timezone: AoE\n      date: July 8-10, 2025\n      place: Stony Brook, NY, USA\n    - year: 2026\n      id: sacmat26\n      link: https://www.sacmat.org/2026/index.php\n      timeline:\n        - deadline: '2025-10-27 23:59:59'\n          comment: 'First Cycle'\n        - deadline: '2026-03-02 23:59:59'\n          comment: 'Second Cycle'\n      timezone: AoE\n      date: July 8-10, 2026\n      place: Waterloo, Canada\n"
  },
  {
    "path": "conference/SC/satml.yml",
    "content": "- title: SATML\n  description: IEEE Conference on Secure and Trustworthy Machine Learning\n  sub: SC\n  rank:\n    ccf: N\n    core: N\n    thcpl: N\n  dblp: satml\n  confs:\n    - year: 2026\n      id: satml26\n      link: https://www.satml.org\n      timeline:\n        - deadline: '2025-09-24 23:59:59'\n      timezone: UTC-12\n      date: March 23-25, 2026\n      place: Munich, Germany\n    - year: 2025\n      id: satml25\n      link: https://satml.org/2025/\n      timeline:\n        - deadline: '2024-09-27 23:59:59'\n      timezone: UTC-12\n      date: April 9-11, 2025\n      place: Copenhagen, Denmark\n    - year: 2024\n      id: satml24\n      link: https://satml.org/2024/\n      timeline:\n        - deadline: '2023-10-11 23:59:59'\n      timezone: UTC-12\n      date: April 9-11, 2024\n      place: Toronto, Canada\n    - year: 2023\n      id: satml23\n      link: https://satml.org/2023/\n      timeline:\n        - deadline: '2022-09-01 23:59:59'\n      timezone: UTC-12\n      date: February 8-10, 2023\n      place: Raleigh, North Carolina, USA\n"
  },
  {
    "path": "conference/SC/sec.yml",
    "content": "- title: SEC\n  description: IFIP International Information Security Conference\n  sub: SC\n  rank:\n    ccf: C\n    core: N\n    thcpl: B\n  dblp: sec\n  confs:\n    - year: 2021\n      id: sec21\n      link: https://ifipsec.org/2021/\n      timeline:\n        - deadline: '2021-02-15 23:59:59'\n          comment: Submission Deadline\n        - deadline: '2021-04-15 23:59:59'\n          comment: Submission of the camera-ready papers\n      timezone: AoE\n      date: June 22-24, 2021\n      place: Oslo, Norway\n    - year: 2025\n      id: sec25\n      link: https://sec2025.um.si/\n      timeline:\n        - deadline: '2025-01-20 23:59:59'\n          comment: Submission deadline\n      timezone: AoE\n      date: May 21-23, 2025\n      place: Hotel City, Maribor, Slovenia\n    - year: 2026\n      id: sec26\n      link: https://ifipsec.org/index.html\n      timeline:\n        - deadline: '2025-12-19 23:59:59'\n          comment: Submission deadline\n      timezone: AoE\n      date: June 09 - 11, 2026\n      place: Perth, Australia\n"
  },
  {
    "path": "conference/SC/securecomm.yml",
    "content": "- title: SecureComm\n  description: International Conference on Security and Privacy in Communication Networks\n  sub: SC\n  rank:\n    ccf: C\n    core: C\n    thcpl: N\n  dblp: securecomm\n  confs:\n    - year: 2021\n      id: securecomm21\n      link: https://securecomm.eai-conferences.org/2021/\n      timeline:\n        - deadline: '2021-03-31 23:59:59'\n          comment: Main Track Full Paper Submission deadline\n        - deadline: '2021-05-04 23:59:59'\n          comment: Late Track Full Paper Submission deadline\n      timezone: AoE\n      date: September 6-9, 2021\n      place: Canterbury, Great Britain(online)\n    - year: 2023\n      id: securecomm23\n      link: https://securecomm.eai-conferences.org/2023/\n      timeline:\n        - deadline: '2023-05-06 23:59:59'\n      timezone: AoE\n      date: October 19-21, 2023\n      place: Hong Kong SAR, Hong Kong\n    - year: 2024\n      id: securecomm24\n      link: https://securecomm.eai-conferences.org/2024/\n      timeline:\n        - deadline: '2024-05-10 23:59:59'\n      timezone: AoE\n      date: October 28-30, 2024\n      place: Dubai, United Arab Emirates\n    - year: 2025\n      id: securecomm25\n      link: https://securecomm.eai-conferences.org/2025/\n      timeline:\n        - deadline: '2025-03-01 23:59:59'\n          comment: Full Paper Submission deadline\n      timezone: AoE\n      date: July 4-6, 2025\n      place: Xiangtan, China\n    - year: 2026\n      id: securecomm26\n      link: https://securecomm.eai-conferences.org/2026/\n      timeline:\n        - deadline: '2025-12-15 23:59:59'\n      timezone: AoE\n      date: July 21-24, 2026\n      place: Lancaster, UK and hybrid\n"
  },
  {
    "path": "conference/SC/soups.yml",
    "content": "- title: SOUPS\n  description: Symposium On Usable Privacy and Security\n  sub: SC\n  rank:\n    ccf: C\n    core: B\n    thcpl: B\n  dblp: soups\n  confs:\n    - year: 2021\n      id: soups21\n      link: https://www.usenix.org/conference/soups2021\n      timeline:\n        - deadline: '2021-02-18 23:59:59'\n          comment: Mandatory Paper Registration Deadline\n        - deadline: '2021-02-25 23:59:59'\n          comment: Paper Submission Deadline\n      timezone: AoE\n      date: AUGUST 8-10, 2021\n      place: Co-located withUSENIX Security '21\n    - year: 2024\n      id: soups24\n      link: https://www.usenix.org/conference/soups2024\n      timeline:\n        - deadline: '2024-02-08 23:59:59'\n          comment: Mandatory Paper Registration Deadline\n        - deadline: '2024-02-15 23:59:59'\n          comment: Paper Submission Deadline\n      timezone: AoE\n      date: AUGUST 11-13, 2024\n      place: Philadelphia, USA\n    - year: 2025\n      id: soups25\n      link: https://www.usenix.org/conference/soups2025\n      timeline:\n        - deadline: '2025-02-06 23:59:59'\n          comment: Mandatory Paper Registration Deadline\n        - deadline: '2025-02-13 23:59:59'\n          comment: Paper Submission Deadline\n      timezone: AoE\n      date: August 10-12, 2025\n      place: Seattle, WA, USA\n    - year: 2026\n      id: soups26\n      link: https://soups.page/\n      timeline:\n        - deadline: '2026-02-12 23:59:59'\n          comment: Mandatory Paper Registration Deadline\n        - deadline: '2026-02-19 23:59:59'\n          comment: Paper Submission Deadline\n      timezone: AoE\n      date: August 23-26, 2026\n      place: Hannover, Germany\n"
  },
  {
    "path": "conference/SC/sp.yml",
    "content": "- title: S&P\n  description: IEEE Symposium on Security and Privacy\n  sub: SC\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: sp\n  confs:\n    - year: 2022\n      id: sp22\n      link: https://www.ieee-security.org/TC/SP2022/\n      timeline:\n        - deadline: '2021-04-15 23:59:59'\n          comment: First Paper submission deadline\n        - deadline: '2021-08-19 23:59:59'\n          comment: Second Paper submission deadline\n        - deadline: '2021-12-02 23:59:59'\n          comment: Third Paper submission deadline\n      timezone: UTC-12\n      date: May 23-26, 2022\n      place: SAN FRANCISCO, CA\n    - year: 2023\n      id: sp23\n      link: https://www.ieee-security.org/TC/SP2023/\n      timeline:\n        - deadline: '2022-04-01 23:59:59'\n          comment: First Paper submission deadline\n        - deadline: '2022-08-19 23:59:59'\n          comment: Second Paper submission deadline\n        - deadline: '2022-12-02 23:59:59'\n          comment: Third Paper submission deadline\n      timezone: UTC-12\n      date: May 22-26, 2023\n      place: SAN FRANCISCO, CA\n    - year: 2024\n      id: sp24\n      link: https://www.ieee-security.org/TC/SP2024/\n      timeline:\n        - deadline: '2023-04-13 23:59:59'\n          comment: First Paper submission deadline\n        - deadline: '2023-08-03 23:59:59'\n          comment: Second Paper submission deadline\n        - deadline: '2023-12-06 23:59:59'\n          comment: Third Paper submission deadline\n      timezone: UTC-12\n      date: MAY 20-23, 2024\n      place: SAN FRANCISCO, CA\n    - year: 2025\n      id: sp25\n      link: https://www.ieee-security.org/TC/SP2025/\n      timeline:\n        - deadline: '2024-06-06 23:59:59'\n          comment: First Paper submission deadline\n        - deadline: '2024-11-14 23:59:59'\n          comment: Second Paper submission deadline\n      timezone: UTC-12\n      date: MAY 12-15, 2025\n      place: SAN FRANCISCO, CA\n    - year: 2026\n      id: sp26\n      link: https://www.ieee-security.org/TC/SP2026/\n      timeline:\n        - deadline: '2025-06-05 23:59:59'\n          comment: First Paper submission deadline\n        - deadline: '2025-11-13 23:59:59'\n          comment: Second Paper submission deadline\n      timezone: UTC-12\n      date: MAY 18-21, 2026\n      place: SAN FRANCISCO, CA\n"
  },
  {
    "path": "conference/SC/srds.yml",
    "content": "- title: SRDS\n  description: IEEE International Symposium on Reliable Distributed Systems\n  sub: SC\n  rank:\n    ccf: B\n    core: B\n    thcpl: N\n  dblp: srds\n  confs:\n    - year: 2021\n      id: srds21\n      link: https://srds-conference.org/\n      timeline:\n        - deadline: '2021-04-16 23:59:59'\n          comment: ABSTRACT\n        - deadline: '2021-04-23 23:59:59'\n          comment: FULL PAPER\n      timezone: AoE\n      date: September 20-23, 2021\n      place: Virtual\n    - year: 2023\n      id: srds23\n      link: https://srds-conference.org/\n      timeline:\n        - deadline: '2023-04-15 23:59:59'\n          comment: ABSTRACT\n        - deadline: '2023-04-22 23:59:59'\n          comment: FULL PAPER\n      timezone: UTC+1\n      date: September 27-29, 2023\n      place: Marrakech, Morocco\n    - year: 2024\n      id: srds24\n      link: https://srds-conference.org/\n      timeline:\n        - deadline: '2024-04-26 23:59:59'\n          comment: ABSTRACT\n        - deadline: '2024-05-03 23:59:59'\n          comment: FULL PAPER\n      timezone: AoE\n      date: September 30-October 4, 2024\n      place: Charlotte, USA\n    - year: 2025\n      id: srds25\n      link: https://srds-conference.org/\n      timeline:\n        - deadline: '2025-04-25 23:59:59'\n          comment: Abstract Submission\n        - deadline: '2025-05-02 23:59:59'\n          comment: Full Paper Submission\n      timezone: AoE\n      date: September 29-October 2, 2025\n      place: Porto, Portugal\n    - year: 2026\n      id: srds26\n      link: https://srds-conference.org/\n      timeline:\n        - deadline: 'TBD'\n          comment: Abstract Submission\n        - deadline: 'TBD'\n          comment: Full Paper Submission\n      timezone: AoE\n      date: September 21-25, 2026\n      place: Rome, Italy\n"
  },
  {
    "path": "conference/SC/tcc.yml",
    "content": "- title: TCC\n  description: Theory of Cryptography Conference\n  sub: SC\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: tcc\n  confs:\n    - year: 2021\n      id: tcc21\n      link: https://tcc.iacr.org/2021/\n      timeline:\n        - deadline: '2021-05-25 21:00:00'\n      timezone: UTC-12\n      date: Nov 8, 2021\n      place: Raleigh, United States\n    - year: 2023\n      id: tcc23\n      link: https://tcc.iacr.org/2023/\n      timeline:\n        - deadline: '2023-06-01 15:00:00'\n      timezone: UTC-4\n      date: Nov 29 - Dec 12, 2023\n      place: Taipei, China\n    - year: 2024\n      id: tcc24\n      link: https://tcc.iacr.org/2024/\n      timeline:\n        - deadline: '2024-05-20 19:59:59'\n      timezone: UTC+2\n      date: Dec 2 - 6, 2024\n      place: Milan, Italy\n    - year: 2025\n      id: tcc25\n      link: https://tcc.iacr.org/2025/\n      timeline:\n        - deadline: '2025-05-27 23:59:59'\n      timezone: AoE\n      date: December 1-5, 2025\n      place: Aarhus, Denmark\n"
  },
  {
    "path": "conference/SC/trustcom.yml",
    "content": "- title: TrustCom\n  description: IEEE International Conference on Trust, Security and Privacy in Computing and Communications\n  sub: SC\n  rank:\n    ccf: C\n    core: B\n    thcpl: N\n  dblp: trustcom\n  confs:\n    - year: 2021\n      id: trustcom21\n      link: https://trustcom2021.sau.edu.cn/\n      timeline:\n        - deadline: '2021-04-30 23:59:59'\n          comment: Paper Submission Deadline\n      timezone: UTC+8\n      date: To be announced\n      place: Shenyang, China\n    - year: 2025\n      id: trustcom25\n      link: https://ieee-aiplus-2025.org/\n      timeline:\n        - deadline: '2025-08-01 23:59:59'\n      timezone: UTC+8\n      date: November 14 - 17, 2025\n      place: Guiyang, China\n"
  },
  {
    "path": "conference/SC/uss.yml",
    "content": "- title: USENIX Security\n  description: USENIX Security Symposium\n  sub: SC\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: uss\n  confs:\n    - year: 2022\n      id: uss22\n      link: https://www.usenix.org/conference/usenixsecurity22\n      timeline:\n        - deadline: '2021-06-08 23:59:59'\n          comment: 3 review cycles\n        - deadline: '2021-10-12 23:59:59'\n          comment: 3 review cycles\n        - deadline: '2022-02-01 23:59:59'\n          comment: 3 review cycles\n      timezone: UTC-12\n      date: August 10-12, 2022\n      place: BOSTON, MA, USA\n    - year: 2023\n      id: uss23\n      link: https://www.usenix.org/conference/usenixsecurity23\n      timeline:\n        - deadline: '2022-06-07 23:59:59'\n          comment: Summer Deadline\n        - deadline: '2022-10-11 23:59:59'\n          comment: Fall Deadline\n        - deadline: '2023-02-07 23:59:59'\n          comment: Winter Deadline\n      timezone: UTC-12\n      date: August 9-11, 2023\n      place: ANAHEIM, CA, USA\n    - year: 2024\n      id: uss24\n      link: https://www.usenix.org/conference/usenixsecurity24\n      timeline:\n        - deadline: '2023-06-06 23:59:59'\n          comment: Summer Deadline\n        - deadline: '2023-10-17 23:59:59'\n          comment: Fall Deadline\n        - deadline: '2024-02-08 23:59:59'\n          comment: Winter Deadline\n      timezone: UTC-12\n      date: August 14-16, 2024\n      place: PHILADELPHIA, PA, USA\n    - year: 2025\n      id: uss25\n      link: https://www.usenix.org/conference/usenixsecurity25\n      timeline:\n        - deadline: '2024-09-04 23:59:59'\n          comment: Cycle 1 Deadline\n        - deadline: '2025-01-22 23:59:59'\n          comment: Cycle 2 Deadline\n      timezone: UTC-12\n      date: August 13-15, 2025\n      place: SEATTLE, WA, USA\n    - year: 2026\n      id: uss26\n      link: https://www.usenix.org/conference/usenixsecurity26\n      timeline:\n        - abstract_deadline: '2025-08-19 23:59:59'\n          deadline: '2025-08-26 23:59:59'\n          comment: Cycle 1 Deadline\n        - abstract_deadline: '2026-01-29 23:59:59'\n          deadline: '2026-02-05 23:59:59'\n          comment: Cycle 2 Deadline\n      timezone: UTC-12\n      date: August 12-14, 2026\n      place: Baltimore, MD, USA\n    - year: 2027\n      id: uss27\n      link: https://www.usenix.org/conference/usenixsecurity27\n      timeline:\n        - abstract_deadline: '2026-08-18 23:59:59'\n          deadline: '2026-08-25 23:59:59'\n          comment: Cycle 1 Deadline\n        - abstract_deadline: '2027-01-19 23:59:59'\n          deadline: '2027-01-26 23:59:59'\n          comment: Cycle 2 Deadline\n      timezone: UTC-12\n      date: August 11-13, 2027\n      place: Denver, CO, USA\n"
  },
  {
    "path": "conference/SC/wisec.yml",
    "content": "- title: WiSec\n  description: ACM Conference on Security and Privacy in Wireless and Mobile Networks\n  sub: SC\n  rank:\n    ccf: C\n    core: B\n    thcpl: B\n  dblp: wisec\n  confs:\n    - year: 2021\n      id: wisec21\n      link: https://sites.nyuad.nyu.edu/wisec21/\n      timeline:\n        - deadline: '2021-03-25 23:59:59'\n          comment: Paper Submission Deadline\n      timezone: AoE\n      date: June 28 - July 2, 2021\n      place: Abu Dhabi, UAE\n    - year: 2024\n      id: wisec24\n      link: https://wisec2024.kaist.ac.kr/\n      timeline:\n        - deadline: '2024-02-08 23:59:59'\n          comment: Paper Submission Deadline\n      timezone: AoE\n      date: May 27 - 30, 2024\n      place: Seoul, Korea\n    - year: 2025\n      id: wisec25\n      link: https://wisec2025.gmu.edu/\n      timeline:\n        - deadline: '2024-11-21 23:59:59'\n          comment: First Cycle deadline\n        - deadline: '2025-03-12 23:59:59'\n          comment: Second Cycle deadline\n      timezone: AoE\n      date: June 30 - July 3, 2025\n      place: Arlington, Virginia, USA\n    - year: 2026\n      id: wisec26\n      link: https://wisec26.events.cispa.de/\n      timeline:\n        - deadline: '2025-11-18 23:59:59'\n          comment: First Cycle deadline\n        - deadline: '2026-03-03 23:59:59'\n          comment: Second Cycle deadline\n      timezone: AoE\n      date: June 30 - July 3, 2026\n      place: Saarbrücken, Germany\n"
  },
  {
    "path": "conference/SE/aplas.yml",
    "content": "- title: APLAS\n  description: Asian Symposium on Programming Languages and Systems\n  sub: SE\n  rank:\n    ccf: C\n    core: B\n    thcpl: N\n  dblp: aplas\n  confs:\n    - year: 2025\n      id: aplas25\n      link: https://conf.researchr.org/home/aplas-2025\n      timeline:\n        - deadline: '2025-05-31 23:59:59'\n      timezone: AoE\n      date: October 27-30, 2025\n      place: Bengaluru, India\n"
  },
  {
    "path": "conference/SE/apsec.yml",
    "content": "- title: APSEC\n  description: Asia-Pacific Software Engineering Conference\n  sub: SE\n  rank:\n    ccf: C\n    core: C\n    thcpl: N\n  dblp: apsec\n  confs:\n    - year: 2025\n      id: apsec25\n      link: https://conf.researchr.org/home/apsec-2025\n      timeline:\n        - abstract_deadline: '2025-07-06 23:59:59'\n          deadline: '2025-07-13 23:59:59'\n      timezone: AoE\n      date: December 2-5, 2025\n      place: Macao SAR, China\n"
  },
  {
    "path": "conference/SE/ase.yml",
    "content": "- title: ASE\n  description: International Conference on Automated Software Engineering\n  sub: SE\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: kbse\n  confs:\n    - year: 2022\n      id: ase22\n      link: https://conf.researchr.org/home/ase-2022\n      timeline:\n        - deadline: '2022-04-29 23:59:59'\n          comment: Abstract Submission\n        - deadline: '2022-05-06 23:59:59'\n          comment: Paper Submission\n      timezone: AoE\n      date: September 26- October 01, 2022\n      place: Ann Arbor, Michigan, United States\n    - year: 2023\n      id: ase23\n      link: https://conf.researchr.org/home/ase-2023\n      timeline:\n        - abstract_deadline: '2023-04-28 23:59:59'\n          deadline: '2023-05-05 23:59:59'\n      timezone: AoE\n      date: September 11-15, 2023\n      place: Kirchberg, Luxembourg\n    - year: 2024\n      id: ase24\n      link: https://conf.researchr.org/home/ase-2024\n      timeline:\n        - abstract_deadline: '2024-05-31 23:59:59'\n          deadline: '2024-06-07 23:59:59'\n      timezone: AoE\n      date: October 27- November 01, 2024\n      place: Sacramento, California, United States\n    - year: 2025\n      id: ase25\n      link: https://conf.researchr.org/home/ase-2025\n      timeline:\n        - deadline: '2025-05-30 23:59:59'\n      timezone: AoE\n      date: November 16 - November 20, 2025\n      place: Seoul, South Korea\n    - year: 2026\n      id: ase26\n      link: https://conf.researchr.org/home/ase-2026\n      timeline:\n        - deadline: '2026-03-26 23:59:59'\n      timezone: AoE\n      date: October 12 - 16, 2026\n      place: Munich, Germany\n"
  },
  {
    "path": "conference/SE/atva.yml",
    "content": "- title: ATVA\n  description: International Symposium on Automated Technology for Verification and Analysis\n  sub: SE\n  rank:\n    ccf: C\n    core: B\n    thcpl: B\n  dblp: atva\n  confs:\n    - year: 2025\n      id: atva25\n      link: https://conf.researchr.org/home/atva-2025\n      timeline:\n        - deadline: '2025-04-25 23:59:59'\n      timezone: AoE\n      date: October 27-31, 2025\n      place: Bengaluru, India\n"
  },
  {
    "path": "conference/SE/caise.yml",
    "content": "- title: CAiSE\n  description: International Conference on Advanced Information Systems Engineering\n  sub: SE\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: caise\n  confs:\n    - year: 2022\n      id: caise22\n      link: https://caise22.ugent.be/\n      timeline:\n        - deadline: '2021-11-22 23:59:59'\n          comment: Abstract Submission\n        - deadline: '2021-11-29 23:59:59'\n          comment: Paper Submission\n      timezone: AoE\n      date: June 06-10, 2022\n      place: Leuven\n    - year: 2025\n      id: caise25\n      link: https://conferences.big.tuwien.ac.at/caise2025/\n      timeline:\n        - abstract_deadline: '2024-11-22 23:59:59'\n          deadline: '2024-12-01 23:59:59'\n      timezone: AoE\n      date: June 16-20, 2025\n      place: Vienna, Austria\n    - year: 2026\n      id: caise26\n      link: https://caise26.polimi.it/\n      timeline:\n        - abstract_deadline: '2025-11-14 23:59:59'\n          deadline: '2025-11-28 23:59:59'\n      timezone: AoE\n      date: June 8-12, 2026\n      place: Verona, Italy\n"
  },
  {
    "path": "conference/SE/compsac.yml",
    "content": "- title: COMPSAC\n  description: International Computer Software and Applications Conference\n  sub: SE\n  rank:\n    ccf: C\n    core: B\n    thcpl: N\n  dblp: compsac\n  confs:\n    - year: 2025\n      id: compsac25\n      link: https://ieeecompsac.computer.org/2025/\n      timeline:\n        - deadline: '2025-03-05 23:59:59'\n      timezone: AoE\n      date: July 8-11, 2025\n      place: Toronto, Canada\n    - year: 2026\n      id: compsac26\n      link: https://ieeecompsac.computer.org/2026/\n      timeline:\n        - deadline: '2026-01-31 23:59:59'\n      timezone: AoE\n      date: July 7-10, 2026\n      place: Madrid, Spain\n"
  },
  {
    "path": "conference/SE/cp.yml",
    "content": "- title: CP\n  description: International Conference on Principles and Practice of Constraint Programming\n  sub: SE\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: cp\n  confs:\n    - year: 2022\n      id: cp22\n      link: https://cp2022.a4cp.org/\n      timeline:\n        - deadline: '2022-02-25 23:59:59'\n          comment: Full Paper Submission\n      timezone: AoE\n      date: July 31-August 8, 2022\n      place: HAIFA, ISRAEL\n    - year: 2025\n      id: cp25\n      link: https://cp2025.a4cp.org/\n      timeline:\n        - abstract_deadline: '2025-03-20 22:59:59'\n          deadline: '2025-03-27 22:59:59'\n      timezone: AoE\n      date: August 10-15, 2025\n      place: Glasgow, Scotland\n    - year: 2026\n      id: cp26\n      link: https://cp2026.a4cp.org/\n      timeline:\n        - abstract_deadline: '2026-03-02 23:59:59'\n          deadline: '2026-03-14 23:59:59'\n      timezone: AoE\n      date: July 20-23, 2026\n      place: Lisbon, Portugal\n"
  },
  {
    "path": "conference/SE/ease.yml",
    "content": "- title: EASE\n  description: International Conference on Evaluation and Assessment in Software Engineering\n  sub: SE\n  rank:\n    ccf: C\n    core: A\n    thcpl: B\n  dblp: ease\n  confs:\n    - year: 2025\n      id: ease25\n      link: https://conf.researchr.org/home/ease-2025\n      timeline:\n        - abstract_deadline: '2025-01-24 23:59:59'\n          deadline: '2025-01-31 23:59:59'\n          comment: 'Research Papers'\n      timezone: AoE\n      date: June 17 - 20, 2025\n      place: Istanbul, Turkey\n    - year: 2026\n      id: ease26\n      link: https://conf.researchr.org/home/ease-2026\n      timeline:\n        - abstract_deadline: '2026-01-16 23:59:59'\n          deadline: '2026-01-23 23:59:59'\n          comment: 'Research Papers'\n      timezone: AoE\n      date: June 9 - 12, 2026\n      place: Glasgow, United Kingdom\n"
  },
  {
    "path": "conference/SE/ecoop.yml",
    "content": "- title: ECOOP\n  description: European Conference on Object-Oriented Programming\n  sub: SE\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: ecoop\n  confs:\n    - year: 2022\n      id: ecoop22\n      link: https://2022.ecoop.org/\n      timeline:\n        - deadline: '2021-12-01 23:59:59'\n          comment: Submission R1\n        - deadline: '2022-03-01 23:59:59'\n          comment: Submission R2\n      timezone: AoE\n      date: June 6-10, 2022\n      place: Berlin, Germany\n    - year: 2025\n      id: ecoop25\n      link: https://2025.ecoop.org/\n      timeline:\n        - deadline: '2025-01-06 23:59:59'\n          comment: Submission R1\n        - deadline: '2025-03-05 23:59:59'\n          comment: Submission R2\n      timezone: AoE\n      date: June 30 - July 4, 2025\n      place: Bergen, Norway\n"
  },
  {
    "path": "conference/SE/esem.yml",
    "content": "- title: ESEM\n  description: International Symposium on Empirical Software Engineering and Measurement\n  sub: SE\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: esem\n  confs:\n    - year: 2022\n      id: esem22\n      link: https://conf.researchr.org/home/esem-2022\n      timeline:\n        - deadline: '2022-04-25 23:59:59'\n          comment: Abstract\n        - deadline: '2022-05-02 23:59:59'\n          comment: Submission\n      timezone: AoE\n      date: September 19-23, 2022\n      place: Helsinki, Finland\n    - year: 2025\n      id: esem25\n      link: https://conf.researchr.org/home/esem-2025\n      timeline:\n        - abstract_deadline: '2025-04-18 23:59:59'\n          deadline: '2025-04-25 23:59:59'\n      timezone: AoE\n      date: September 29 - October 3, 2025\n      place: Honolulu, Hawai, USA\n    - year: 2026\n      id: esem26\n      link: https://conf.researchr.org/home/eseiw-2026\n      timeline:\n        - abstract_deadline: 'TBD'\n          deadline: 'TBD'\n      timezone: AoE\n      date: October 4 - 9, 2026\n      place: München, Germany\n"
  },
  {
    "path": "conference/SE/etaps.yml",
    "content": "- title: ETAPS\n  description: European Joint Conferences on Theory and Practice of Software\n  sub: SE\n  rank:\n    ccf: B\n    core: N\n    thcpl: B\n  dblp: etaps\n  confs:\n    - year: 2022\n      id: etaps22\n      link: https://etaps.org/2022/\n      timeline:\n        - deadline: '2021-10-14 23:59:59'\n          comment: Paper submission deadline\n        - deadline: '2022-01-26 23:59:59'\n          comment: Paper final versions\n      timezone: AoE\n      date: April 2-7, 2022\n      place: Munich, Germany\n    - year: 2026\n      id: etaps26\n      link: https://etaps.org/2026\n      timeline:\n        - deadline: '2025-06-03 23:59:59'\n          comment: Submission deadline ESOP round 1\n        - deadline: '2025-10-16 23:59:59'\n          comment: Submission deadline ESOP round 2\n      timezone: AoE\n      date: April 11-16, 2026\n      place: Torino, Italy\n"
  },
  {
    "path": "conference/SE/fm.yml",
    "content": "- title: FM\n  description: International Symposium on Formal Methods\n  sub: SE\n  rank:\n    ccf: A\n    core: A\n    thcpl: B\n  dblp: fm\n  confs:\n    - year: 2021\n      id: fm21\n      link: http://lcs.ios.ac.cn/fm2021/\n      timeline:\n        - deadline: '2021-04-30 23:59:59'\n          comment: Abstract submission\n        - deadline: '2021-05-06 23:59:59'\n          comment: Full paper submission\n      timezone: AoE\n      date: November 20-26, 2021\n      place: Beijng, China\n    - year: 2024\n      id: fm24\n      link: https://www.fm24.polimi.it/\n      timeline:\n        - deadline: '2024-04-15 23:59:00'\n          comment: Abstract Submission\n        - deadline: '2024-04-19 23:59:00'\n          comment: Full Paper Submission\n        - deadline: '2024-06-10 23:59:00'\n          comment: Paper Notification\n        - deadline: '2024-07-01 23:59:00'\n          comment: Final Version\n      timezone: AoE\n      date: September 09-13, 2024\n      place: Milan, Italy\n    - year: 2026\n      id: fm26\n      link: https://conf.researchr.org/home/fm-2026\n      timeline:\n        - abstract_deadline: '2025-11-25 23:59:00'\n          deadline: '2025-12-02 23:59:00'\n      timezone: AoE\n      date: May 18-22, 2026\n      place: Tokyo, Japan\n"
  },
  {
    "path": "conference/SE/fse.yml",
    "content": "- title: FSE\n  description: ACM International Conference on the Foundations of Software Engineering\n  sub: SE\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: sigsoft\n  confs:\n    - year: 2022\n      id: fse22\n      link: https://2022.esec-fse.org/\n      timeline:\n        - deadline: '2022-03-10 23:59:59'\n          comment: paper registration deadline\n        - deadline: '2022-03-17 23:59:59'\n          comment: full paper submission deadline\n      timezone: AoE\n      date: November 14-18, 2022\n      place: Singapore\n    - year: 2023\n      id: fse23\n      link: https://2023.esec-fse.org/\n      timeline:\n        - deadline: '2023-01-26 23:59:59'\n          comment: paper registration deadline\n        - deadline: '2023-02-02 23:59:59'\n          comment: full paper submission deadline\n      timezone: AoE\n      date: November 11-17, 2023\n      place: United States\n    - year: 2024\n      id: fse24\n      link: https://2024.esec-fse.org/\n      timeline:\n        - abstract_deadline: '2023-09-21 23:59:59'\n          deadline: '2023-09-28 23:59:59'\n      timezone: AoE\n      date: July 15-19, 2024\n      place: Porto de Galinas, Brazil\n    - year: 2025\n      id: fse25\n      link: https://conf.researchr.org/home/fse-2025\n      timeline:\n        - abstract_deadline: '2024-09-05 23:59:59'\n          deadline: '2024-09-12 23:59:59'\n      timezone: AoE\n      date: June 23-27, 2025\n      place: Trondheim, Norway\n    - year: 2026\n      id: fse26\n      link: https://conf.researchr.org/home/fse-2026\n      timeline:\n        - abstract_deadline: '2025-09-04 23:59:59'\n          deadline: '2025-09-11 23:59:59'\n      timezone: AoE\n      date: July 6-10, 2026\n      place: Montréal, Canada\n"
  },
  {
    "path": "conference/SE/hotos.yml",
    "content": "- title: HotOS\n  description: USENIX Workshop on Hot Topics in Operating Systems\n  sub: SE\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: hotos\n  confs:\n    - year: 2021\n      id: hotos21\n      link: https://www.usenix.org/conference/hotos15\n      timeline:\n        - deadline: '2021-02-03 23:59:59'\n          comment: Submission Deadline\n      timezone: AoE\n      date: May 31-Jun 02, 2021\n      place: Virtual\n    - year: 2025\n      id: hotos25\n      link: https://sigops.org/s/conferences/hotos/2025/\n      timeline:\n        - deadline: '2025-01-15 23:59:59'\n          comment: Submission Deadline\n      timezone: AoE\n      date: May 14-16, 2025\n      place: Banff, Alberta, Canada\n"
  },
  {
    "path": "conference/SE/iceccs.yml",
    "content": "- title: ICECCS\n  description: International Conference on Engineering of Complex Computer Systems\n  sub: SE\n  rank:\n    ccf: C\n    core: B\n    thcpl: N\n  dblp: iceccs\n  confs:\n    - year: 2024\n      id: iceccs24\n      link: https://cyprusconferences.org/iceccs2024/\n      timeline:\n        - deadline: '2023-12-29 23:59:59'\n          comment: Abstract submission\n        - deadline: '2024-01-05 23:59:59'\n          comment: Full paper submission\n      timezone: AoE\n      date: June 19-21, 2024\n      place: Limassol, Cyprus\n"
  },
  {
    "path": "conference/SE/icfem.yml",
    "content": "- title: ICFEM\n  description: International Conference on Formal Engineering Methods\n  sub: SE\n  rank:\n    ccf: C\n    core: C\n    thcpl: N\n  dblp: icfem\n  confs:\n    - year: 2024\n      id: icfem24\n      link: https://icfem2024.info/\n      timeline:\n        - deadline: '2024-06-24 23:59:59'\n          comment: Paper Submission\n      timezone: AoE\n      date: December 02 - December 06, 2024\n      place: Hiroshima, Japan\n    - year: 2023\n      id: icfem23\n      link: https://formal-analysis.com/icfem/2023/\n      timeline:\n        - deadline: '2023-05-21 23:59:59'\n          comment: Abstract Submission\n        - deadline: '2023-05-28 23:59:59'\n          comment: Full Paper Submission\n      timezone: AoE\n      date: November 21 - November 24, 2023\n      place: Brisbane, Australia\n    - year: 2025\n      id: icfem25\n      link: https://icfem2025.github.io/\n      timeline:\n        - abstract_deadline: '2025-05-25 23:59:59'\n          deadline: '2025-06-01 23:59:59'\n      timezone: AoE\n      date: November 10 - 13, 2025\n      place: Hangzhou, China\n"
  },
  {
    "path": "conference/SE/icfp.yml",
    "content": "- title: ICFP\n  description: International Conference on Function Programming\n  sub: SE\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: icfp\n  confs:\n    - year: 2022\n      id: icfp22\n      link: https://icfp22.sigplan.org/\n      timeline:\n        - deadline: '2021-03-02 23:59:59'\n          comment: Submission Deadline\n        - deadline: '2021-06-16 23:59:59'\n          comment: Submission of revised papers\n      timezone: AoE\n      date: September 11-16, 2022\n      place: Ljubljana, Slovenia\n    - year: 2025\n      id: icfp25\n      link: https://icfp25.sigplan.org/\n      timeline:\n        - deadline: '2025-02-27 23:59:59'\n          comment: Submission Deadline\n        - deadline: '2025-06-12 23:59:59'\n          comment: Submission of revised papers\n      timezone: AoE\n      date: October 12-18, 2025\n      place: Singapore\n    - year: 2026\n      id: icfp26\n      link: https://icfp26.sigplan.org/\n      timeline:\n        - deadline: '2026-02-19 23:59:59'\n      timezone: AoE\n      date: August 24 - 29, 2026\n      place: Indiana University Indianapolis, United States\n"
  },
  {
    "path": "conference/SE/icpc.yml",
    "content": "- title: ICPC\n  description: IEEE International Conference on Program Comprehension\n  sub: SE\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: icpc\n  confs:\n    - year: 2022\n      id: icpc22\n      link: https://conf.researchr.org/home/icpc-2022\n      timeline:\n        - abstract_deadline: '2022-01-13 23:59:59'\n          deadline: '2022-01-18 23:59:59'\n      timezone: AoE\n      date: May 21-22, 2022\n      place: Pittsburgh, Pennsylvania, United States\n    - year: 2024\n      id: icpc24\n      link: https://conf.researchr.org/home/icpc-2024\n      timeline:\n        - abstract_deadline: '2023-10-30 23:59:59'\n          deadline: '2023-11-03 23:59:59'\n      timezone: AoE\n      date: April 14-20, 2024\n      place: Lisbon, Portugal\n    - year: 2025\n      id: icpc25\n      link: https://conf.researchr.org/home/icpc-2025\n      timeline:\n        - abstract_deadline: '2024-11-06 23:59:59'\n          deadline: '2024-11-09 23:59:59'\n      timezone: AoE\n      date: April 27-28, 2025\n      place: Ottawa, Canada\n    - year: 2026\n      id: icpc26\n      link: https://conf.researchr.org/home/icpc-2026\n      timeline:\n        - abstract_deadline: '2025-10-19 23:59:59'\n          deadline: '2025-10-23 23:59:59'\n      timezone: AoE\n      date: April 12-13, 2026\n      place: Rio de Janeiro, Brazil\n"
  },
  {
    "path": "conference/SE/icse.yml",
    "content": "- title: ICSE\n  description: International Conference on Software Engineering\n  sub: SE\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: icse\n  confs:\n    - year: 2022\n      id: icse22\n      link: https://conf.researchr.org/home/icse-2022\n      timeline:\n        - abstract_deadline: '2021-08-27 23:59:59'\n          deadline: '2021-09-03 23:59:59'\n      timezone: AoE\n      date: May 21-29, 2022\n      place: Pittsburgh, PA, USA\n    - year: 2023\n      id: icse23\n      link: https://conf.researchr.org/home/icse-2023\n      timeline:\n        - deadline: '2022-09-01 23:59:59'\n      timezone: AoE\n      date: May 14-20, 2023\n      place: Melbourne, Australia\n    - year: 2024\n      id: icse24\n      link: https://conf.researchr.org/home/icse-2024\n      timeline:\n        - deadline: '2023-03-29 23:59:59'\n          comment: Technical Papers First round submission deadline\n        - deadline: '2023-08-01 23:59:59'\n          comment: Technical Papers Second round submission deadline\n      timezone: AoE\n      date: April 12-21, 2024\n      place: Lisbon, Portugal\n    - year: 2025\n      id: icse25\n      link: https://conf.researchr.org/home/icse-2025\n      timeline:\n        - abstract_deadline: '2024-03-15 23:59:59'\n          deadline: '2024-03-22 23:59:59'\n          comment: 'First Cycle: Submission'\n        - abstract_deadline: '2024-07-26 23:59:59'\n          deadline: '2024-08-02 23:59:59'\n          comment: 'Second Cycle: Submission'\n      timezone: AoE\n      date: April 26- May 04, 2025\n      place: Ottawa, Ontario, Canada\n    - year: 2026\n      id: icse26\n      link: https://conf.researchr.org/home/icse-2026\n      timeline:\n        - abstract_deadline: '2025-03-07 23:59:59'\n          deadline: '2025-03-14 23:59:59'\n          comment: 'First Cycle: Submission'\n        - abstract_deadline: '2025-07-11 23:59:59'\n          deadline: '2025-07-18 23:59:59'\n          comment: 'Second Cycle: Submission'\n      timezone: AoE\n      date: April 12-18, 2026\n      place: Rio De Janeiro, Brazil\n    - year: 2027\n      id: icse27\n      link: https://conf.researchr.org/home/icse-2027\n      timeline:\n        - abstract_deadline: '2026-06-23 23:59:59'\n          deadline: '2026-06-30 23:59:59'\n          comment: 'Single Submission Cycle Deadline'\n      timezone: AoE\n      date: April 25-May 01, 2027\n      place: Dublin, Ireland\n"
  },
  {
    "path": "conference/SE/icsme.yml",
    "content": "- title: ICSME\n  description: International Conference on Software Maintenance and Evolution\n  sub: SE\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: icsm\n  confs:\n    - year: 2022\n      id: icsme22\n      link: https://cyprusconferences.org/icsme2022/\n      timeline:\n        - abstract_deadline: '2022-03-25 23:59:59'\n          deadline: '2022-04-01 23:59:59'\n      timezone: AoE\n      date: October 03-07, 2022\n      place: Limassol, Cyprus\n    - year: 2023\n      id: icsme23\n      link: https://conf.researchr.org/home/icsme-2023\n      timeline:\n        - abstract_deadline: '2023-04-20 23:59:59'\n          deadline: '2023-04-27 23:59:59'\n      timezone: AoE\n      date: October 01-06, 2023\n      place: Bogota, Colombia\n    - year: 2024\n      id: icsme24\n      link: https://conf.researchr.org/home/icsme-2024\n      timeline:\n        - abstract_deadline: '2024-04-04 23:59:59'\n          deadline: '2024-04-11 23:59:59'\n      timezone: AoE\n      date: October 06-11, 2024\n      place: Flagstaff, Arizona, USA\n    - year: 2025\n      id: icsme25\n      link: https://conf.researchr.org/home/icsme-2025\n      timeline:\n        - abstract_deadline: '2025-03-06 23:59:59'\n          deadline: '2025-03-13 23:59:59'\n      timezone: AoE\n      date: September 07-12, 2025\n      place: Auckland, New Zealand\n    - year: 2026\n      id: icsme26\n      link: https://conf.researchr.org/home/icsme-2026\n      timeline:\n        - abstract_deadline: '2026-02-27 23:59:59'\n          deadline: '2026-03-06 23:59:59'\n          comment: 'Research Papers Track'\n      timezone: AoE\n      date: September 14-18, 2026\n      place: Benevento, Italy\n"
  },
  {
    "path": "conference/SE/icsoc.yml",
    "content": "- title: ICSOC\n  description: International Conference on Service Oriented Computing\n  sub: SE\n  rank:\n    ccf: B\n    core: A\n    thcpl: N\n  dblp: icsoc\n  confs:\n    - year: 2022\n      id: icsoc22\n      link: http://www.icsoc.org/\n      timeline:\n        - deadline: '2022-03-01 23:59:59'\n          comment: Abstracts/Full-Text Paper Submission Deadline\n        - deadline: '2022-04-23 23:59:59'\n          comment: Final Paper (Camera Ready) Submission & Early Bird Registration Deadline\n      timezone: AoE\n      date: May 26-27, 2022\n      place: Barcelona, Spain\n    - year: 2025\n      id: icsoc25\n      link: https://icsoc2025.hit.edu.cn/main.htm\n      timeline:\n        - deadline: '2025-05-09 23:59:59'\n          comment: Early paper submissions\n        - deadline: '2025-07-07 23:59:59'\n          comment: Regular paper abstract submissions\n        - deadline: '2025-07-14 23:59:59'\n          comment: Regular paper submissions\n      timezone: AoE\n      date: December 1-4, 2025\n      place: Shenzhen, China\n"
  },
  {
    "path": "conference/SE/icst.yml",
    "content": "- title: ICST\n  description: IEEE International Conference on Software Testing, Verification and Validation\n  sub: SE\n  rank:\n    ccf: C\n    core: A\n    thcpl: B\n  dblp: icst\n  confs:\n    - year: 2026\n      id: icst2026\n      link: https://conf.researchr.org/home/icst-2026\n      timeline:\n        - deadline: '2025-12-22 23:59:59'\n      timezone: AoE\n      date: May 18-22, 2026\n      place: Daejeon, South Korea\n"
  },
  {
    "path": "conference/SE/icws.yml",
    "content": "- title: ICWS\n  description: IEEE International Conference on Web Services (Research Track)\n  sub: SE\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: icws\n  confs:\n    - year: 2022\n      id: icws22\n      link: https://www.servicessociety.org/icws/2022/\n      timeline:\n        - deadline: '2022-09-15 23:59:59'\n          comment: Submission deadline\n      timezone: AoE\n      date: December 10-14, 2022\n      place: Honolulu, Hawaii, USA\n    - year: 2023\n      id: icws23\n      link: https://conferences.computer.org/icws/2023/\n      timeline:\n        - deadline: '2023-03-25 23:59:59'\n      timezone: AoE\n      date: July 2-8, 2023\n      place: Chicago, Illinois, USA\n    - year: 2025\n      id: icws25\n      link: https://services.conferences.computer.org/2025/icws-2025/\n      timeline:\n        - abstract_deadline: '2025-02-24 23:59:59'\n          deadline: '2025-03-03 23:59:59'\n      timezone: AoE\n      date: July 7-12, 2025\n      place: Helsinki, Finland\n    - year: 2026\n      id: icws26\n      link: https://services.conferences.computer.org/2026/icws-2026/\n      timeline:\n        - deadline: '2025-03-22 23:59:59'\n      timezone: AoE\n      date: July 13-18, 2026\n      place: Sydney, Australia\n"
  },
  {
    "path": "conference/SE/internetware.yml",
    "content": "- title: Internetware\n  description: Asia-Pacific Symposium on Internetware\n  sub: SE\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: internetware\n  confs:\n    - year: 2026\n      id: internetware26\n      link: https://conf.researchr.org/home/internetware-2026\n      timeline:\n        - abstract_deadline: '2026-03-28 23:59:59'\n          deadline: '2026-04-04 23:59:59'\n      timezone: UTC-12\n      date: July 18-20, 2026\n      place: Gold Coast, Australia\n    - year: 2025\n      id: internetware25\n      link: https://conf.researchr.org/home/internetware-2025\n      timeline:\n        - deadline: '2025-02-14 23:59:59'\n      timezone: UTC-12\n      date: June 20-22, 2025\n      place: Trondheim, Norway\n    - year: 2023\n      id: internetware23\n      link: https://conf.researchr.org/home/internetware-2023\n      timeline:\n        - abstract_deadline: '2023-04-17 23:59:59'\n          deadline: '2023-04-22 23:59:59'\n      timezone: UTC-12\n      date: August 4-6, 2023\n      place: Hangzhou, China\n"
  },
  {
    "path": "conference/SE/ispass.yml",
    "content": "- title: ISPASS\n  description: International Symposium on Performance Analysis of Systems and Software\n  sub: SE\n  rank:\n    ccf: C\n    core: B\n    thcpl: B\n  dblp: ispass\n  confs:\n    - year: 2024\n      id: ispass24\n      link: https://ispass.org/ispass2024/\n      timeline:\n        - deadline: '2023-12-08 23:59:59'\n          comment: Abstract submission\n        - deadline: '2023-12-15 23:59:59'\n          comment: Full paper submission\n      timezone: AoE\n      date: May 5-7, 2024\n      place: Indianapolis, Indiana\n    - year: 2026\n      id: ispass26\n      link: https://ispass.org/ispass2026/\n      timeline:\n        - abstract_deadline: '2025-12-05 23:59:59'\n          deadline: '2025-12-12 23:59:59'\n      timezone: AoE\n      date: April 26-28, 2026\n      place: Seoul, South Korea\n"
  },
  {
    "path": "conference/SE/issre.yml",
    "content": "- title: ISSRE\n  description: International Symposium on Software Reliability Engineering\n  sub: SE\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: issre\n  confs:\n    - year: 2023\n      id: issre23\n      link: https://issre.github.io/2023/index.html\n      timeline:\n        - deadline: '2023-05-22 23:59:59'\n          comment: Abstract submission\n        - deadline: '2021-06-01 23:59:59'\n          comment: Full paper submission\n      timezone: AoE\n      date: October 9-12, 2023\n      place: Florence, Italy\n    - year: 2024\n      id: issre24\n      link: https://issre.github.io/2024/index.html\n      timeline:\n        - deadline: '2024-05-15 23:59:59'\n          comment: Research Track Paper submission deadline\n      timezone: AoE\n      date: October 28-31, 2024\n      place: Tsukuba, Japan\n    - year: 2025\n      id: issre25\n      link: https://issre.github.io/2025/index.html\n      timeline:\n        - abstract_deadline: '2025-05-05 23:59:59'\n          deadline: '2025-05-12 23:59:59'\n      timezone: AoE\n      date: October 21-24, 2025\n      place: São Paulo, Brazil\n    - year: 2026\n      id: issre26\n      link: https://cyprusconferences.org/issre2026/\n      timeline:\n        - abstract_deadline: '2026-04-10 23:59:59'\n          deadline: '2025-04-17 23:59:59'\n      timezone: AoE\n      date: October 20-23, 2026\n      place: Limassol, Cyprus\n"
  },
  {
    "path": "conference/SE/issta.yml",
    "content": "- title: ISSTA\n  description: ACM SIGSOFT International Symposium on Software Testing and Analysis\n  sub: SE\n  rank:\n    ccf: A\n    core: A\n    thcpl: A\n  dblp: issta\n  confs:\n    - year: 2022\n      id: issta22\n      link: https://conf.researchr.org/home/issta-2022\n      timeline:\n        - deadline: '2022-01-28 23:59:59'\n          comment: Technical Papers due\n        - deadline: '2022-01-31 23:59:59'\n          comment: Workshops Submission Deadline\n      timezone: AoE\n      date: July 18-22, 2022\n      place: Daejeon, South Korea\n    - year: 2023\n      id: issta23\n      link: https://conf.researchr.org/home/issta-2023\n      timeline:\n        - deadline: '2022-11-10 23:59:59'\n          comment: Technical Papers First round submission deadline\n        - deadline: '2023-02-16 23:59:59'\n          comment: Technical Papers Second round submission deadline\n      timezone: AoE\n      date: July 17-21, 2023\n      place: Seattle, United States\n    - year: 2024\n      id: issta24\n      link: https://conf.researchr.org/home/issta-2024\n      timeline:\n        - deadline: '2023-12-15 23:59:59'\n          comment: Technical Papers Submission deadline (Round 1)\n        - deadline: '2024-04-12 23:59:59'\n          comment: Technical Papers Submission deadline (Round 2)\n      timezone: AoE\n      date: September 16-20, 2024\n      place: Vienna, Austria\n    - year: 2025\n      id: issta25\n      link: https://conf.researchr.org/home/issta-2025\n      timeline:\n        - deadline: '2024-10-31 23:59:59'\n          comment: Research Papers Full Paper Submission\n      timezone: AoE\n      date: June 25-28, 2025\n      place: Trondheim, Norway\n    - year: 2026\n      id: issta26\n      link: https://conf.researchr.org/home/issta-2026\n      timeline:\n        - deadline: '2026-01-29 23:59:59'\n      timezone: AoE\n      date: October 3-9, 2026\n      place: Oakland, California, United States\n"
  },
  {
    "path": "conference/SE/lctes.yml",
    "content": "- title: LCTES\n  description: International Conference on Languages, Compilers and Tools for Embedded Systems\n  sub: SE\n  rank:\n    ccf: B\n    core: B\n    thcpl: N\n  dblp: lctrts\n  confs:\n    - year: 2021\n      id: lctes21\n      link: https://pldi21.sigplan.org/home/LCTES-2021\n      timeline:\n        - deadline: '2021-03-08 23:59:59'\n          comment: Submission Deadline\n        - deadline: '2021-05-05 23:59:59'\n          comment: Final Copy Deadline\n      timezone: AoE\n      date: June 20-26, 2021\n      place: Virtual\n    - year: 2023\n      id: lctes23\n      link: https://pldi23.sigplan.org/home/LCTES-2023\n      timeline:\n        - deadline: '2023-03-16 23:59:59'\n      timezone: AoE\n      date: June 17-21, 2023\n      place: Orlando, Florida, United States\n    - year: 2024\n      id: lctes24\n      link: https://pldi24.sigplan.org/home/LCTES-2024\n      timeline:\n        - deadline: '2024-02-16 23:59:59'\n          comment: Abstract submission\n        - deadline: '2024-02-23 23:59:59'\n          comment: Paper submission\n      timezone: AoE\n      date: June 24, 2024\n      place: Copenhagen, Denmark\n"
  },
  {
    "path": "conference/SE/middleware.yml",
    "content": "- title: Middleware\n  description: International Middleware Conference\n  sub: SE\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: middleware\n  confs:\n    - year: 2022\n      id: middleware22\n      link: https://middleware-conf.github.io/2022/\n      timeline:\n        - deadline: '2021-11-20 23:59:59'\n          comment: Submission R1\n        - deadline: '2022-03-15 23:59:59'\n          comment: Submission R2\n      timezone: AoE\n      date: November 7-11, 2022\n      place: Fairmont Le Château Frontenac, Québec City, Québec, Canada\n"
  },
  {
    "path": "conference/SE/models.yml",
    "content": "- title: MoDELS\n  description: International Conference on Model Driven Engineering Languages and Systems\n  sub: SE\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: models\n  confs:\n    - year: 2022\n      id: models22\n      link: https://conf.researchr.org/home/models-2022\n      timeline:\n        - deadline: '2022-05-18 23:59:59'\n      timezone: AoE\n      date: October 23-28, 2022\n      place: Montréal, Canada\n"
  },
  {
    "path": "conference/SE/msr.yml",
    "content": "- title: MSR\n  description: International Conference on Mining Software Repositories\n  sub: SE\n  rank:\n    ccf: C\n    core: A\n    thcpl: B\n  dblp: msr\n  confs:\n    - year: 2024\n      id: msr24\n      link: https://conf.researchr.org/home/msr-2024\n      timeline:\n        - abstract_deadline: '2023-11-14 23:59:59'\n          deadline: '2023-11-17 23:59:59'\n      timezone: AoE\n      date: April 15-16, 2024\n      place: Lisbon, Portugal\n    - year: 2025\n      id: msr25\n      link: https://2025.msrconf.org/\n      timeline:\n        - abstract_deadline: '2024-11-06 23:59:59'\n          deadline: '2024-11-09 23:59:59'\n      timezone: AoE\n      date: April 28-29, 2025\n      place: Ottawa, Canada\n    - year: 2026\n      id: msr26\n      link: https://2026.msrconf.org/\n      timeline:\n        - abstract_deadline: '2025-10-20 23:59:59'\n          deadline: '2025-10-23 23:59:59'\n      timezone: AoE\n      date: April 13-14, 2026\n      place: Rio de Janeiro, Brazil\n"
  },
  {
    "path": "conference/SE/oopsla.yml",
    "content": "- title: OOPSLA\n  description: Conference on Object-Oriented Programming Systems, Languages, and Applications\n  sub: SE\n  rank:\n    ccf: A\n    core: A\n    thcpl: A\n  dblp: oopsla\n  confs:\n    - year: 2022\n      id: oopsla22\n      link: https://2022.splashcon.org/track/splash-2022-oopsla\n      timeline:\n        - deadline: '2021-10-12 23:59:59'\n          comment: Submission Deadline Round 1\n        - deadline: '2022-02-11 23:59:59'\n          comment: Submission of Revisions Round 1\n        - deadline: '2022-04-15 23:59:59'\n          comment: Submission Deadline Round 2\n        - deadline: '2022-08-15 23:59:59'\n          comment: Submission of Revisions Round 2\n      timezone: AoE\n      date: November 14-19, 2022\n      place: Auckland, New Zealand\n    - year: 2023\n      id: oopsla23\n      link: https://2023.splashcon.org/track/splash-2023-oopsla\n      timeline:\n        - deadline: '2022-10-28 23:59:59'\n          comment: Submission Deadline Round 1\n        - deadline: '2023-02-24 23:59:59'\n          comment: Submission of Revisions Round 1\n        - deadline: '2023-04-14 23:59:59'\n          comment: Submission Deadline Round 2\n        - deadline: '2023-08-18 23:59:59'\n          comment: Submission of Revisions Round 2\n      timezone: AoE\n      date: October 22-27, 2023\n      place: Lisbon, Portugal\n    - year: 2024\n      id: oopsla24\n      link: https://2024.splashcon.org/track/splash-2024-oopsla\n      timeline:\n        - deadline: '2023-10-21 07:59:59'\n          comment: Submission Deadline Round 1\n        - deadline: '2024-04-06 07:59:59'\n          comment: Submission Deadline Round 2\n      timezone: UTC-4\n      date: October 20-25, 2024\n      place: Pasadena, United States\n    - year: 2025\n      id: oopsla25\n      link: https://2025.splashcon.org/track/OOPSLA\n      timeline:\n        - deadline: '2024-10-15 07:59:59'\n          comment: Submission Deadline Round 1\n        - deadline: '2025-02-04 07:59:59'\n          comment: Submission Deadline Revision R1\n        - deadline: '2025-03-25 23:59:59'\n          comment: Submission Deadline Round 2\n      timezone: UTC-12\n      date: October 12-18, 2025\n      place: Singapore\n    - year: 2026\n      id: oopsla26\n      link: https://conf.researchr.org/track/splash-2026/oopsla-2026\n      timeline:\n        - deadline: '2025-10-10 23:59:59'\n          comment: Submission Deadline Round 1\n        - deadline: '2026-03-17 23:59:59'\n          comment: Submission Deadline Round 2\n      timezone: UTC-12\n      date: October 3-9, 2026\n      place: Oakland, California, United States\n"
  },
  {
    "path": "conference/SE/osdi.yml",
    "content": "- title: OSDI\n  description: USENIX Symposium on Operating Systems Design and Implementation\n  sub: SE\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: osdi\n  confs:\n    - year: 2022\n      id: osdi2022\n      link: https://www.usenix.org/conference/osdi22\n      timeline:\n        - deadline: '2021-12-14 23:59:59'\n      timezone: AoE\n      date: July 11-13, 2022\n      place: Omni La Costa Resort & Spa in Carlsbad, CA, USA\n    - year: 2023\n      id: osdi2023\n      link: https://www.usenix.org/conference/osdi23\n      timeline:\n        - deadline: '2022-12-06 22:59:59'\n          comment: Abstract Registerations\n        - deadline: '2022-12-13 22:59:59'\n          comment: Complete Paper Submissions\n      timezone: UTC\n      date: July 10-12, 2023\n      place: Boston, MA, USA\n    - year: 2024\n      id: osdi2024\n      link: https://www.usenix.org/conference/osdi24\n      timeline:\n        - abstract_deadline: '2023-11-30 22:59:59'\n          deadline: '2023-12-07 22:59:59'\n      timezone: UTC\n      date: July 10-12, 2024\n      place: Santa Clara, CA, USA\n    - year: 2025\n      id: osdi2025\n      link: https://www.usenix.org/conference/osdi25\n      timeline:\n        - abstract_deadline: '2024-12-03 22:59:59'\n          deadline: '2024-12-10 22:59:59'\n      timezone: UTC\n      date: July 7-9, 2025\n      place: Boston, MA, USA\n    - year: 2026\n      id: osdi2026\n      link: https://www.usenix.org/conference/osdi26\n      timeline:\n        - abstract_deadline: '2025-12-04 22:59:59'\n          deadline: '2025-12-11 22:59:59'\n      timezone: UTC\n      date: July 13-15, 2026\n      place: Seattle, WA, USA\n"
  },
  {
    "path": "conference/SE/pldi.yml",
    "content": "- title: PLDI\n  description: ACM SIGPLAN Conference on Programming Language Design & Implementation\n  sub: SE\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: pldi\n  confs:\n    - year: 2021\n      id: pldi21\n      link: https://pldi21.sigplan.org/\n      timeline:\n        - deadline: '2020-11-20 23:59:59'\n      timezone: AoE\n      date: June 23-25, 2021\n      place: Virtual\n    - year: 2022\n      id: pldi22\n      link: https://pldi22.sigplan.org/\n      timeline:\n        - deadline: '2021-11-19 23:59:59'\n      timezone: AoE\n      date: June 20-24, 2022\n      place: San Diego, California, United States\n    - year: 2023\n      id: pldi23\n      link: https://pldi23.sigplan.org/\n      timeline:\n        - deadline: '2022-11-10 23:59:59'\n      timezone: AoE\n      date: June 19-21, 2023\n      place: Orlando, Florida, United States\n    - year: 2024\n      id: pldi24\n      link: https://pldi24.sigplan.org/\n      timeline:\n        - deadline: '2023-11-16 23:59:59'\n      timezone: AoE\n      date: June 24-28, 2024\n      place: Copenhagen, Denmark\n    - year: 2025\n      id: pldi25\n      link: https://pldi25.sigplan.org/\n      timeline:\n        - deadline: '2024-11-14 23:59:59'\n      timezone: AoE\n      date: June 16-20, 2025\n      place: Seoul, South Korea\n    - year: 2026\n      id: pldi26\n      link: https://pldi26.sigplan.org/\n      timeline:\n        - deadline: '2025-11-13 23:59:59'\n      timezone: AoE\n      date: June 15-19, 2026\n      place: Boulder, Colorado, United States\n"
  },
  {
    "path": "conference/SE/popl.yml",
    "content": "- title: POPL\n  description: ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages\n  sub: SE\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: popl\n  confs:\n    - year: 2022\n      id: popl22\n      link: https://popl22.sigplan.org/\n      timeline:\n        - deadline: '2021-07-08 23:59:59'\n          comment: Submission Deadline\n      timezone: AoE\n      date: January 16-22, 2022\n      place: Westin Philadelphia\n    - year: 2023\n      id: popl23\n      link: https://popl23.sigplan.org/\n      timeline:\n        - deadline: '2022-07-07 23:59:59'\n          comment: Submission Deadline\n      timezone: AoE\n      date: January 15-21, 2023\n      place: Boston, Massachusetts, United States\n    - year: 2024\n      id: popl24\n      link: https://popl24.sigplan.org/\n      timeline:\n        - deadline: '2023-07-11 23:59:59'\n          comment: Submission Deadline\n      timezone: AoE\n      date: January 17-19, 2024\n      place: London, United Kingdom\n    - year: 2025\n      id: popl25\n      link: https://conf.researchr.org/home/POPL-2025\n      timeline:\n        - deadline: '2024-07-11 23:59:59'\n          comment: Submission Deadline\n      timezone: AoE\n      date: January 19-25, 2025\n      place: Denver, Colorado, United States\n    - year: 2026\n      id: popl26\n      link: https://popl26.sigplan.org/\n      timeline:\n        - deadline: '2025-07-10 23:59:59'\n          comment: Submission Deadline\n      timezone: AoE\n      date: January 11-17, 2026\n      place: Rennes, France\n    - year: 2027\n      id: popl27\n      link: https://popl27.sigplan.org/\n      timeline:\n        - deadline: '2026-07-09 23:59:59'\n          comment: Submission Deadline\n      timezone: AoE\n      date: January 10-16, 2027\n      place: Mexico City\n"
  },
  {
    "path": "conference/SE/qrs.yml",
    "content": "- title: QRS\n  description: IEEE International Conference on Software Quality, Reliability and Security\n  sub: SE\n  rank:\n    ccf: C\n    core: C\n    thcpl: N\n  dblp: qrs\n  confs:\n    - year: 2021\n      id: qrs21\n      link: https://qrs21.techconf.org/\n      timeline:\n        - abstract_deadline: '2021-08-15 23:59:59'\n          deadline: '2021-08-22 23:59:59'\n      timezone: AoE\n      date: December 6-10, 2021\n      place: Hainan Island, China\n    - year: 2025\n      id: qrs25\n      link: https://qrs25.techconf.org/\n      timeline:\n        - abstract_deadline: '2025-04-05 23:59:59'\n          deadline: '2025-04-15 23:59:59'\n      timezone: AoE\n      date: July 16-20, 2025\n      place: Hangzhou, China\n"
  },
  {
    "path": "conference/SE/re.yml",
    "content": "- title: RE\n  description: IEEE International Requirements Engineering Conference\n  sub: SE\n  rank:\n    ccf: B\n    core: A\n    thcpl: N\n  dblp: re\n  confs:\n    - year: 2022\n      id: re22\n      link: https://conf.researchr.org/home/RE-2022\n      timeline:\n        - deadline: '2022-02-17 23:59:59'\n          comment: Abstract Submission Deadline\n        - deadline: '2022-02-24 23:59:59'\n          comment: Paper Submission Deadline\n      timezone: AoE\n      date: August 15-19, 2022\n      place: Melbourne, Australia\n    - year: 2023\n      id: re23\n      link: https://conf.researchr.org/dates/RE-2023\n      timeline:\n        - abstract_deadline: '2023-03-10 23:59:59'\n          deadline: '2023-03-17 23:59:59'\n      timezone: AoE\n      date: September 4-8, 2023\n      place: Hannover, Germany\n    - year: 2026\n      id: re26\n      link: https://conf.researchr.org/home/RE-2026\n      timeline:\n        - abstract_deadline: '2026-02-16 23:59:59'\n          deadline: '2026-02-23 23:59:59'\n          comment: Research Papers\n        - deadline: '2026-04-13 23:59:59'\n          comment: Journal Paper\n      timezone: AoE\n      date: August 17-21, 2026\n      place: Montreal, Canada\n"
  },
  {
    "path": "conference/SE/refsq.yml",
    "content": "- title: REFSQ\n  description: \"Requirements Engineering: Foundation for Software Quality\"\n  sub: SE\n  rank:\n    ccf: C\n    core: B\n    thcpl: N\n  dblp: refsq\n  confs:\n    - year: 2025\n      id: refsq25\n      link: https://2025.refsq.org/\n      timeline:\n        - abstract_deadline: '2024-11-01 23:59:59'\n          deadline: '2024-11-08 23:59:59'\n      timezone: AoE\n      date: April 7-10, 2025\n      place: Barcelona, Spain\n    - year: 2026\n      id: refsq26\n      link: https://2026.refsq.org/\n      timeline:\n        - abstract_deadline: 'TBD'\n          deadline: 'TBD'\n      timezone: AoE\n      date: March 23-26, 2026\n      place: Poznań, Poland\n"
  },
  {
    "path": "conference/SE/rv.yml",
    "content": "- title: RV\n  description: International Conference on Runtime Verification\n  sub: SE\n  rank:\n    ccf: C\n    core: B\n    thcpl: N\n  dblp: rv\n  confs:\n    - year: 2025\n      id: rv25\n      link: https://rv25.isec.tugraz.at/\n      timeline:\n        - deadline: '2025-05-30 23:59:59'\n      timezone: AoE\n      date: September 15-19, 2025\n      place: Graz, Austria\n"
  },
  {
    "path": "conference/SE/saner.yml",
    "content": "- title: SANER\n  description: IEEE International Conference on Software Analysis, Evolution and Reengineering\n  sub: SE\n  rank:\n    ccf: B\n    core: A\n    thcpl: B\n  dblp: wcre\n  confs:\n    - year: 2022\n      id: saner2022\n      link: https://saner2022.uom.gr/\n      timeline:\n        - deadline: '2021-10-14 23:59:59'\n          comment: abstract submission deadline\n        - deadline: '2021-10-21 23:59:59'\n          comment: full paper submission deadline\n      timezone: AoE\n      date: March 15-18, 2022\n      place: University of Hawaii in Honolulu, Hawaii\n    - year: 2024\n      id: saner2024\n      link: https://conf.researchr.org/home/saner-2024\n      timeline:\n        - abstract_deadline: '2023-10-13 23:59:59'\n          deadline: '2023-10-29 23:59:59'\n          comment: Research Papers Paper Submission\n      timezone: AoE\n      date: March 12-15, 2024\n      place: Rovaniemi, Finland\n    - year: 2025\n      id: saner2025\n      link: https://conf.researchr.org/home/saner-2025\n      timeline:\n        - abstract_deadline: '2024-10-04 23:59:59'\n          deadline: '2024-10-11 23:59:59'\n          comment: Research Papers Paper Submission\n      timezone: AoE\n      date: March 4-7, 2025\n      place: Montréal, Québec, Canada\n    - year: 2026\n      id: saner2026\n      link: https://conf.researchr.org/home/saner-2026\n      timeline:\n        - deadline: '2025-10-09 23:59:59'\n          comment: Research Track Abstract submission (mandatory)\n        - deadline: '2025-10-16 23:59:59'\n          comment: Research Track Paper submission deadline\n      timezone: AoE\n      date: March 17-20, 2026\n      place: Limassol, Cyprus\n"
  },
  {
    "path": "conference/SE/sas.yml",
    "content": "- title: SAS\n  description: International Static Analysis Symposium\n  sub: SE\n  rank:\n    ccf: B\n    core: B\n    thcpl: N\n  dblp: sas\n  confs:\n    - year: 2022\n      id: sas22\n      link: https://2022.splashcon.org/home/sas-2022\n      timeline:\n        - deadline: '2022-05-04 23:59:59'\n          comment: Submission deadline\n      timezone: AoE\n      date: December 5-7, 2022\n      place: Auckland, New Zealand\n    - year: 2025\n      id: sas25\n      link: https://2025.splashcon.org/home/sas-2025\n      timeline:\n        - deadline: '2025-05-04 23:59:59'\n          comment: Paper Submission\n      timezone: AoE\n      date: October 12-18, 2025\n      place: Singapore\n"
  },
  {
    "path": "conference/SE/scam.yml",
    "content": "- title: SCAM\n  description: IEEE International Working Conference on Source Code Analysis and Manipulation\n  sub: SE\n  rank:\n    ccf: C\n    core: C\n    thcpl: N\n  dblp: scam\n  confs:\n    - year: 2025\n      id: scam25\n      link: https://conf.researchr.org/home/scam-2025\n      timeline:\n        - abstract_deadline: '2025-06-05 23:59:59'\n          deadline: '2025-06-09 23:59:59'\n          comment: 'co-located with ICSME 2025'\n      timezone: AoE\n      date: September 7-12, 2025\n      place: Auckland, New Zealand\n    - year: 2026\n      id: scam26\n      link: https://conf.researchr.org/home/scam-2026\n      timeline:\n        - deadline: '2026-06-11 23:59:59'\n          comment: 'co-located with ICSME 2026'\n      timezone: AoE\n      date: September 14-15, 2026\n      place: Benevento, Italy\n"
  },
  {
    "path": "conference/SE/seke.yml",
    "content": "- title: SEKE\n  description: International Conference on Software Engineering and Knowledge Engineering\n  sub: SE\n  rank:\n    ccf: C\n    core: C\n    thcpl: N\n  dblp: seke\n  confs:\n    - year: 2023\n      id: seke23\n      link: https://ksiresearch.org/seke/seke23.html\n      timeline:\n        - deadline: '2023-03-01 23:59:59'\n      timezone: UTC-5\n      date: July 1-10, 2023\n      place: San Francisco Bay, USA and KSIR Virtual Conference Center, USA\n    - year: 2024\n      id: seke24\n      link: https://ksiresearch.org/seke/seke24.html\n      timeline:\n        - deadline: '2024-06-10 23:59:59'\n      timezone: UTC-5\n      date: October 28-November 5, 2024\n      place: Amalfi, Italy / Virtual venue\n    - year: 2025\n      id: seke25\n      link: https://ksiresearch.org/seke/seke25.html\n      timeline:\n        - deadline: '2025-05-01 23:59:00'\n      timezone: UTC-5\n      date: Sept 29 - Oct 6, 2025\n      place: Pompeii, Italy & Virtual\n"
  },
  {
    "path": "conference/SE/sosp.yml",
    "content": "- title: SOSP\n  description: ACM Symposium on Operating Systems Principles\n  sub: SE\n  rank:\n    ccf: A\n    core: A*\n    thcpl: A\n  dblp: sosp\n  confs:\n    - year: 2021\n      id: sosp21\n      link: https://sosp2021.mpi-sws.org/\n      timeline:\n        - deadline: '2021-05-07 14:59:59'\n      timezone: UTC-8\n      date: October 25-28, 2021\n      place: Virtual\n    - year: 2023\n      id: sosp23\n      link: https://sosp2023.mpi-sws.org/\n      timeline:\n        - deadline: '2023-04-10 23:59:59'\n          comment: Deadline to Register Abstracts\n        - deadline: '2023-04-17 23:59:59'\n          comment: Submission Deadline (no extensions)\n      timezone: UTC-4\n      date: October 23 - 26, 2023\n      place: Koblenz, Germany\n    - year: 2024\n      id: sosp24\n      link: https://sigops.org/s/conferences/sosp/2024/index.html\n      timeline:\n        - abstract_deadline: '2024-04-12 23:59:59'\n          deadline: '2024-04-19 23:59:59'\n      timezone: UTC-8\n      date: November 4 - 6, 2024\n      place: Hilton Austin, Texas, USA\n    - year: 2025\n      id: sosp25\n      link: https://sigops.org/s/conferences/sosp/2025/index.html\n      timeline:\n        - abstract_deadline: '2025-04-10 23:59:59'\n          deadline: '2025-04-17 23:59:59'\n      timezone: UTC-7\n      date: October 13 - 16, 2025\n      place: Lotte Hotel World, Seoul, Republic of Korea\n    - year: 2026\n      id: sosp26\n      link: https://sigops.org/s/conferences/sosp/2026/index.html\n      timeline:\n        - abstract_deadline: '2026-03-26 23:59:59'\n          deadline: '2026-04-01 23:59:59'\n      timezone: AoE\n      date: September 29 - October 2, 2026\n      place: Clarion Congress Hotel Prague, Prague, Czechia\n"
  },
  {
    "path": "conference/SE/sse.yml",
    "content": "- title: SSE\n  description: IEEE International Conference on Software Services Engineering\n  sub: SE\n  rank:\n    ccf: C\n    core: B\n    thcpl: B\n  dblp: IEEEscc\n  confs:\n    - year: 2025\n      id: sse25\n      link: https://services.conferences.computer.org/2025/sse/\n      timeline:\n        - deadline: '2025-03-10 23:00:00'\n      timezone: AoE\n      date: July 7-12, 2025\n      place: Helsinki, Finland\n"
  },
  {
    "path": "conference/SE/tase.yml",
    "content": "- title: TASE\n  description: Theoretical Aspects of Software Engineering\n  sub: SE\n  rank:\n    ccf: C\n    core: N\n    thcpl: N\n  dblp: tase\n  confs:\n    - year: 2024\n      id: tase24\n      link: https://tase2024.github.io/index.html\n      timeline:\n        - abstract_deadline: '2024-02-17 23:59:59'\n          deadline: '2024-02-24 23:59:59'\n      timezone: AoE\n      date: July 29-August 1, 2024\n      place: Guiyang, China\n    - year: 2025\n      id: tase25\n      link: https://cyprusconferences.org/tase2025/\n      timeline:\n        - abstract_deadline: '2025-02-15 23:59:59'\n          deadline: '2025-02-21 23:59:59'\n      timezone: AoE\n      date: July 14-16, 2025\n      place: Limassol, Cyprus\n"
  },
  {
    "path": "conference/SE/vmcai.yml",
    "content": "- title: VMCAI\n  description: International Conference on Verification, Model Checking, and Abstract Interpretation\n  sub: SE\n  rank:\n    ccf: B\n    core: B\n    thcpl: B\n  dblp: vmcai\n  confs:\n    - year: 2022\n      id: vmcai22\n      link: https://popl22.sigplan.org/home/VMCAI-2022\n      timeline:\n        - deadline: '2021-09-09 23:59:59'\n          comment: Submission deadline\n      timezone: AoE\n      date: January 16-28, 2022\n      place: Philadelphia, Pennsylvania, United States\n    - year: 2026\n      id: vmcai26\n      link: https://conf.researchr.org/home/VMCAI-2026\n      timeline:\n        - deadline: '2025-09-15 23:59:59'\n      timezone: AoE\n      date: January 12-13, 2026\n      place: Rennes, France\n"
  },
  {
    "path": "conference/types.yml",
    "content": "- name: 计算机体系结构/并行与分布计算/存储系统\n  name_en: Computer Architecture/Parallel Programming/Storage Technology\n  sub: DS\n- name: 计算机网络\n  name_en: Network System\n  sub: NW\n- name: 网络与信息安全\n  name_en: Network and System Security\n  sub: SC\n- name: 软件工程/系统软件/程序设计语言\n  name_en: Software Engineering/Operating System/Programming Language Design\n  sub: SE\n- name: 数据库/数据挖掘/内容检索\n  name_en: Database/Data Mining/Information Retrieval\n  sub: DB\n- name: 计算机科学理论\n  name_en: Computing Theory\n  sub: CT\n- name: 计算机图形学与多媒体\n  name_en: Graphics\n  sub: CG\n- name: 人工智能\n  name_en: Artificial Intelligence\n  sub: AI\n- name: 人机交互与普适计算\n  name_en: Computer-Human Interaction\n  sub: HI\n- name: 交叉/综合/新兴\n  name_en: Interdiscipline/Mixture/Emerging\n  sub: MX\n"
  },
  {
    "path": "conference-yaml-schema.yml",
    "content": "$schema: http://json-schema.org/draft-07/schema#\ndescription: Validation schema for CCFDDL Conference Specification 3.0.X.\ntype: array\nitems:\n  type: object\n  required:\n    - title\n    - description\n    - sub\n    - rank\n    - dblp\n    - confs\n  properties:\n    title:\n      description: Short conference name, without year, uppercase\n      type: string\n    description:\n      description: Description, or long name, with no session\n      type: string\n    sub:\n      description: The category that the conference is labeled by CCF.\n      type: string\n      enum:\n        - DS\n        - NW\n        - SC\n        - SE\n        - DB\n        - CT\n        - CG\n        - AI\n        - HI\n        - MX\n    rank:\n      type: object\n      required:\n        - ccf\n      properties:\n        ccf:\n          description: The level that the conference is ranked by CCF, e.g., A, B, C\n          type: string\n          enum:\n            - A\n            - B\n            - C\n            - N\n        core:\n          description: The level that the conference is ranked by CORE, e.g., A, B, C\n          type: string\n          enum:\n            - A*\n            - A\n            - B\n            - C\n            - N\n        thcpl:\n          description: The level that the conference is ranked by Tsinghua, e.g., A, B, C\n          type: string\n          enum:\n            - A\n            - B\n            - N\n    dblp:\n      description: The suffix in dblp url, e.g., iccv in dblp.org/db/conf/iccv\n      type: string\n    confs:\n      type: array\n      items:\n        type: object\n        required:\n          - year\n          - id\n          - link\n          - timeline\n          - timezone\n          - date\n          - place\n        properties:\n          year:\n            description: Year the conference is happening\n            type: number\n          id:\n            description: conference name & year, lowercase\n            type: string\n            pattern: ^[a-z0-9-'&]+$\n          link:\n            description: URL to the conference home page\n            type: string\n            format: uri\n          timeline:\n            type: array\n            items:\n              type: object\n              required:\n                - deadline\n              properties:\n                abstract_deadline:\n                  description: Abstract deadline if applicable, optional\n                  type: string\n                  format: date-time\n                  pattern: ^([1-9]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\\s+(20|21|22|23|[0-1]\\d):[0-5]\\d:[0-5]\\d|TBD)$\n                deadline:\n                  description: Deadline, in the format of yyyy-mm-dd hh:mm:ss or TBD\n                  type: string\n                  format: date-time\n                  pattern: ^([1-9]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\\s+(20|21|22|23|[0-1]\\d):[0-5]\\d:[0-5]\\d|TBD)$\n                comment:\n                  description: Some comments on the conference, optional\n                  type: string\n          timezone:\n            type: string\n            enum:\n              - UTC-12\n              - UTC-11\n              - UTC-10\n              - UTC-9\n              - UTC-8\n              - UTC-7\n              - UTC-6\n              - UTC-5\n              - UTC-4\n              - UTC-3\n              - UTC-2\n              - UTC-1\n              - UTC\n              - UTC+0\n              - UTC+1\n              - UTC+2\n              - UTC+3\n              - UTC+4\n              - UTC+5\n              - UTC+6\n              - UTC+7\n              - UTC+8\n              - UTC+9\n              - UTC+10\n              - UTC+11\n              - UTC+12\n              - AoE\n          date:\n            description: When the main conference is happening, e.g., Mar 12-16, 2021\n            type: string\n            pattern: ^[ -~]+$\n          place:\n            description: Where the main conference is happening, e.g., city, country\n            type: string\n"
  },
  {
    "path": "extensions/chrome/README.md",
    "content": "# CCF DDL Tracker (Chrome Extension)\n\n## 使用方法 / Usage\n\n1. 打开 Chrome，进入 `chrome://extensions/`。/ Open Chrome and go to `chrome://extensions/`.\n2. 打开右上角的“开发者模式”。/ Enable “Developer mode”.\n3. 点击“加载已解压的扩展程序”，选择本仓库的 `extensions/chrome` 目录。/ Click “Load unpacked” and select `extensions/chrome`.\n4. 安装完成后，点击浏览器工具栏的“CCF DDL Tracker”图标。/ Click the toolbar icon.\n\n## 功能说明 / Features\n\n- **添加 DDL**：填写标题、日期、时间，点击“添加”。/ Add title/date/time and click “Add”.\n- **查看详情**：弹窗中会按时间排序展示多个 DDL，并显示剩余天数。/ Sorted list with remaining days.\n- **徽标提示**：工具栏图标会显示最近一个 DDL 的剩余天数。/ Badge shows the nearest days left.\n- **删除 DDL**：在条目右侧点击“删除”。/ Delete from the list.\n- **从 CCFDDL 导入**：点击“加载”后优先使用 GitHub 仓库的最新会议信息，失败时再回退到 ICS。/ Prefer GitHub repository data, with an ICS fallback.\n- **中英切换**：点击右上角 EN/中文 按钮切换语言。/ Use the EN/中文 toggle to switch language.\n\n\n## 数据存储 / Data\n\n所有数据保存在 `chrome.storage.local` 中，仅在本机可见。/ Stored locally in `chrome.storage.local`.\n"
  },
  {
    "path": "extensions/chrome/background.js",
    "content": "const STORAGE_KEY = \"deadlines\";\nconst MS_PER_DAY = 24 * 60 * 60 * 1000;\nconst BRAND_COLOR = \"#334155\";\nconst ICON_STROKE = \"#1f2937\";\n\nfunction createIconImageData(size) {\n  const canvas = new OffscreenCanvas(size, size);\n  const ctx = canvas.getContext(\"2d\");\n  if (!ctx) return null;\n\n  const strokeWidth = Math.max(1, size * 0.08);\n  const radius = size / 2 - strokeWidth;\n\n  ctx.strokeStyle = ICON_STROKE;\n  ctx.lineWidth = strokeWidth;\n  ctx.lineCap = \"round\";\n  ctx.lineJoin = \"round\";\n\n  ctx.beginPath();\n  ctx.arc(size / 2, size / 2, radius, 0, Math.PI * 2);\n  ctx.stroke();\n\n  ctx.beginPath();\n  ctx.moveTo(size / 2, size / 2);\n  ctx.lineTo(size / 2, size * 0.3);\n  ctx.moveTo(size / 2, size / 2);\n  ctx.lineTo(size * 0.68, size / 2);\n  ctx.stroke();\n\n  return ctx.getImageData(0, 0, size, size);\n}\n\nfunction ensureActionIcon() {\n  const sizes = [16, 32, 48, 128];\n  const imageData = {};\n  sizes.forEach((size) => {\n    const data = createIconImageData(size);\n    if (data) {\n      imageData[size] = data;\n    }\n  });\n\n  if (Object.keys(imageData).length > 0) {\n    chrome.action.setIcon({ imageData });\n  }\n}\n\nfunction toTimestamp(value) {\n  const parsed = new Date(value);\n  return Number.isNaN(parsed.getTime()) ? null : parsed.getTime();\n}\n\nfunction getSoonestDays(deadlines) {\n  const now = Date.now();\n  const upcoming = deadlines\n    .map((item) => ({ ...item, ts: toTimestamp(item.datetime) }))\n    .filter((item) => item.ts !== null && item.ts >= now)\n    .sort((a, b) => a.ts - b.ts);\n\n  if (upcoming.length === 0) {\n    return null;\n  }\n\n  const diff = upcoming[0].ts - now;\n  return Math.max(0, Math.floor(diff / MS_PER_DAY));\n}\n\nfunction updateBadge() {\n  chrome.storage.local.get({ [STORAGE_KEY]: [] }, (result) => {\n    const daysLeft = getSoonestDays(result[STORAGE_KEY]);\n    const text = daysLeft === null ? \"\" : `${daysLeft}`;\n    chrome.action.setBadgeText({ text });\n    chrome.action.setBadgeBackgroundColor({ color: BRAND_COLOR });\n  });\n}\n\nchrome.runtime.onInstalled.addListener(() => {\n  ensureActionIcon();\n  chrome.alarms.create(\"badge-refresh\", { periodInMinutes: 1 });\n  updateBadge();\n});\n\nchrome.runtime.onStartup.addListener(() => {\n  ensureActionIcon();\n  chrome.alarms.create(\"badge-refresh\", { periodInMinutes: 1 });\n  updateBadge();\n});\n\nchrome.alarms.onAlarm.addListener(() => {\n  updateBadge();\n});\n\nchrome.storage.onChanged.addListener((changes, areaName) => {\n  if (areaName !== \"local\") return;\n  if (changes[STORAGE_KEY]) {\n    updateBadge();\n  }\n});\n\nensureActionIcon();\nupdateBadge();\n"
  },
  {
    "path": "extensions/chrome/manifest.json",
    "content": "{\n  \"manifest_version\": 3,\n  \"name\": \"CCF DDL Tracker\",\n  \"description\": \"Track your upcoming CCF deadlines and see days remaining on the badge.\",\n  \"version\": \"0.1.0\",\n  \"permissions\": [\"storage\", \"alarms\"],\n  \"host_permissions\": [\"https://ccfddl.com/*\", \"https://ccfddl.github.io/*\"],\n  \"action\": {\n    \"default_title\": \"CCF DDL Tracker\",\n    \"default_popup\": \"popup.html\",\n    \"default_icon\": {\n      \"16\": \"icons/icon16.svg\",\n      \"32\": \"icons/icon32.svg\",\n      \"48\": \"icons/icon48.svg\",\n      \"128\": \"icons/icon128.svg\"\n    }\n  },\n  \"background\": {\n    \"service_worker\": \"background.js\",\n    \"type\": \"module\"\n  },\n  \"icons\": {\n    \"16\": \"icons/icon16.svg\",\n    \"32\": \"icons/icon32.svg\",\n    \"48\": \"icons/icon48.svg\",\n    \"128\": \"icons/icon128.svg\"\n  }\n}\n"
  },
  {
    "path": "extensions/chrome/popup.css",
    "content": ":root {\n  color-scheme: light;\n  font-family: \"Inter\", \"PingFang SC\", \"Microsoft YaHei\", sans-serif;\n  font-size: 14px;\n  line-height: 1.4;\n  --bg: #f8fafc;\n  --card: #ffffff;\n  --text: #0f172a;\n  --muted: #64748b;\n  --primary: #2563eb;\n  --border: #e2e8f0;\n  --danger: #dc2626;\n}\n\nbody {\n  margin: 0;\n  padding: 16px;\n  background: var(--bg);\n  color: var(--text);\n  width: 320px;\n}\n\nh1,\nh2 {\n  margin: 0 0 8px;\n  font-size: 16px;\n}\n\n.brand {\n  display: flex;\n  gap: 10px;\n  align-items: center;\n}\n\n.logo {\n  width: 40px;\n  height: 40px;\n  color: #1f2937;\n}\n\np {\n  margin: 0;\n  color: var(--muted);\n}\n\n.subtitle {\n  font-size: 12px;\n}\n\n.header {\n  display: flex;\n  justify-content: space-between;\n  align-items: flex-start;\n  gap: 12px;\n  margin-bottom: 16px;\n}\n\n.header-actions {\n  display: flex;\n  align-items: center;\n  gap: 8px;\n}\n\n.link {\n  color: var(--primary);\n  text-decoration: none;\n  font-weight: 600;\n  white-space: nowrap;\n}\n\n.form-card,\n.import-card,\n.list-card {\n  background: var(--card);\n  border: 1px solid var(--border);\n  border-radius: 12px;\n  padding: 12px;\n  margin-bottom: 12px;\n  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);\n}\n\nform {\n  display: flex;\n  flex-direction: column;\n  gap: 10px;\n}\n\nlabel {\n  display: flex;\n  flex-direction: column;\n  gap: 4px;\n  font-size: 12px;\n  color: var(--muted);\n}\n\ninput {\n  border: 1px solid var(--border);\n  border-radius: 8px;\n  padding: 8px;\n  font-size: 14px;\n}\n\nbutton {\n  border: none;\n  border-radius: 8px;\n  background: var(--primary);\n  color: #fff;\n  padding: 8px 10px;\n  font-weight: 600;\n  cursor: pointer;\n}\n\n.ghost-btn {\n  background: transparent;\n  color: var(--primary);\n  border: 1px solid var(--border);\n}\n\n.row {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  gap: 10px;\n}\n\n.list-header {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  margin-bottom: 8px;\n}\n\n.list-actions {\n  display: flex;\n  align-items: center;\n  gap: 8px;\n}\n\n.search-label {\n  margin-top: 8px;\n}\n\n.import-hint {\n  margin-top: 6px;\n  font-size: 12px;\n  color: var(--muted);\n}\n\n#deadline-list {\n  list-style: none;\n  padding: 0;\n  margin: 0;\n  display: flex;\n  flex-direction: column;\n  gap: 8px;\n}\n\n.import-list {\n  list-style: none;\n  padding: 0;\n  margin: 8px 0 0;\n  display: flex;\n  flex-direction: column;\n  gap: 8px;\n  max-height: 180px;\n  overflow-y: auto;\n  scrollbar-width: none;\n  -ms-overflow-style: none;\n}\n\n.import-list::-webkit-scrollbar {\n  width: 0;\n  height: 0;\n  background: transparent;\n}\n\n.import-item {\n  display: flex;\n  flex-direction: column;\n  gap: 4px;\n  padding: 8px;\n  border: 1px solid var(--border);\n  border-radius: 10px;\n  background: #f8fafc;\n}\n\n.import-item-header {\n  display: flex;\n  justify-content: space-between;\n  gap: 8px;\n  align-items: center;\n}\n\n.import-title {\n  font-weight: 600;\n}\n\n.import-meta {\n  font-size: 12px;\n  color: var(--muted);\n}\n\n.import-add {\n  border: none;\n  background: var(--primary);\n  color: #fff;\n  padding: 4px 8px;\n  border-radius: 6px;\n  font-size: 12px;\n  cursor: pointer;\n}\n\n.item {\n  display: flex;\n  flex-direction: column;\n  gap: 4px;\n  padding: 8px;\n  border: 1px solid var(--border);\n  border-radius: 10px;\n  background: #f8fafc;\n}\n\n.item-header {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  gap: 8px;\n}\n\n.item-title {\n  font-weight: 600;\n}\n\n.item-meta {\n  display: flex;\n  justify-content: space-between;\n  color: var(--muted);\n  font-size: 12px;\n}\n\n.delete-btn {\n  border: none;\n  background: transparent;\n  color: var(--danger);\n  font-size: 12px;\n  cursor: pointer;\n}\n\n.empty {\n  color: var(--muted);\n  text-align: center;\n  margin: 12px 0 4px;\n}\n"
  },
  {
    "path": "extensions/chrome/popup.html",
    "content": "<!doctype html>\n<html lang=\"zh-CN\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n    <title>CCF DDL Tracker</title>\n    <link rel=\"stylesheet\" href=\"popup.css\" />\n  </head>\n  <body>\n    <header class=\"header\">\n      <div class=\"brand\">\n        <svg class=\"logo\" viewBox=\"0 0 48 48\" role=\"img\" aria-label=\"CCF DDL\">\n          <circle cx=\"24\" cy=\"24\" r=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" />\n          <path\n            d=\"M24 14v10h9\"\n            fill=\"none\"\n            stroke=\"currentColor\"\n            stroke-width=\"3\"\n            stroke-linecap=\"round\"\n            stroke-linejoin=\"round\"\n          />\n        </svg>\n        <div>\n        <h1 data-i18n=\"title\">CCF DDL Tracker</h1>\n        <p data-i18n=\"subtitle_zh\">添加你正在赶的截止日期，徽标显示最近的剩余天数。</p>\n        <p class=\"subtitle\" data-i18n=\"subtitle_en\">Track deadlines and show the nearest days left.</p>\n        </div>\n      </div>\n      <div class=\"header-actions\">\n        <button id=\"lang-toggle\" type=\"button\" class=\"ghost-btn\">EN</button>\n        <a class=\"link\" href=\"https://ccfddl.com/\" target=\"_blank\" rel=\"noreferrer\" data-i18n=\"open\">\n          打开 CCFDDL\n        </a>\n      </div>\n    </header>\n\n    <section class=\"form-card\">\n      <h2 data-i18n=\"add_section\">新增截止日期</h2>\n      <form id=\"deadline-form\">\n        <label>\n          <span data-i18n=\"title_label\">标题</span>\n          <input id=\"title\" type=\"text\" placeholder=\"例如：ACL 2025\" data-i18n-placeholder=\"title_placeholder\" required />\n        </label>\n        <div class=\"row\">\n          <label>\n            <span data-i18n=\"date_label\">日期</span>\n            <input id=\"date\" type=\"date\" required />\n          </label>\n          <label>\n            <span data-i18n=\"time_label\">时间</span>\n            <input id=\"time\" type=\"time\" value=\"23:59\" />\n          </label>\n        </div>\n        <button type=\"submit\" data-i18n=\"add_button\">添加</button>\n      </form>\n    </section>\n\n    <section class=\"import-card\">\n      <div class=\"list-header\">\n        <h2 data-i18n=\"import_section\">从 CCFDDL 导入</h2>\n        <button id=\"load-ccfddl\" type=\"button\" class=\"ghost-btn\" data-i18n=\"load_button\">加载</button>\n      </div>\n      <label class=\"search-label\">\n        <span data-i18n=\"search_label\">搜索会议</span>\n        <input id=\"ccfddl-search\" type=\"text\" placeholder=\"例如：ICML / SIGMOD\" data-i18n-placeholder=\"search_placeholder\" />\n      </label>\n      <ul id=\"ccfddl-list\" class=\"import-list\"></ul>\n      <p id=\"ccfddl-empty\" class=\"empty\" data-i18n=\"import_empty\">\n        点击“加载”获取最新会议列表。\n      </p>\n      <p class=\"import-hint\" data-i18n=\"import_hint\">\n        优先使用 GitHub 仓库的最新会议信息，失败时再回退到 CCFDDL ICS。\n      </p>\n    </section>\n\n    <section class=\"list-card\">\n      <div class=\"list-header\">\n        <h2 data-i18n=\"my_section\">我的 DDL</h2>\n        <div class=\"list-actions\">\n          <button id=\"refresh-deadlines\" type=\"button\" class=\"ghost-btn\" data-i18n=\"refresh_button\">\n            刷新\n          </button>\n          <span id=\"count\"></span>\n        </div>\n      </div>\n      <ul id=\"deadline-list\"></ul>\n      <p id=\"empty-state\" class=\"empty\" data-i18n=\"empty_state\">还没有添加任何截止日期。</p>\n    </section>\n\n    <script src=\"popup.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "extensions/chrome/popup.js",
    "content": "const STORAGE_KEY = \"deadlines\";\nconst MS_PER_DAY = 24 * 60 * 60 * 1000;\nconst REFRESH_INTERVAL_MS = 60 * 1000;\n\nconst form = document.getElementById(\"deadline-form\");\nconst titleInput = document.getElementById(\"title\");\nconst dateInput = document.getElementById(\"date\");\nconst timeInput = document.getElementById(\"time\");\nconst listEl = document.getElementById(\"deadline-list\");\nconst emptyEl = document.getElementById(\"empty-state\");\nconst countEl = document.getElementById(\"count\");\nconst loadCcfddlBtn = document.getElementById(\"load-ccfddl\");\nconst ccfddlSearchInput = document.getElementById(\"ccfddl-search\");\nconst ccfddlList = document.getElementById(\"ccfddl-list\");\nconst ccfddlEmpty = document.getElementById(\"ccfddl-empty\");\nconst langToggle = document.getElementById(\"lang-toggle\");\nconst refreshDeadlinesBtn = document.getElementById(\"refresh-deadlines\");\n\nlet ccfddlItems = [];\nlet currentLang = \"zh\";\nconst LANG_STORAGE_KEY = \"language\";\nlet refreshTimer = null;\n\nconst translations = {\n  zh: {\n    title: \"CCF DDL Tracker\",\n    subtitle_zh: \"添加你正在赶的截止日期，徽标显示最近的剩余天数。\",\n    subtitle_en: \"\",\n    open: \"打开 CCFDDL\",\n    add_section: \"新增截止日期\",\n    title_label: \"标题\",\n    title_placeholder: \"例如：ACL 2025\",\n    date_label: \"日期\",\n    time_label: \"时间\",\n    add_button: \"添加\",\n    import_section: \"从 CCFDDL 导入\",\n    load_button: \"加载\",\n    loading: \"加载中...\",\n    search_label: \"搜索会议\",\n    search_placeholder: \"例如：ICML / SIGMOD\",\n    import_empty: \"点击“加载”获取最新会议列表。\",\n    import_hint:\n      \"优先使用 GitHub 仓库的最新会议信息，失败时再回退到 CCFDDL ICS。\",\n    my_section: \"我的 DDL\",\n    empty_state: \"还没有添加任何截止日期。\",\n    refresh_button: \"刷新\",\n    add_item: \"添加\",\n    delete_item: \"删除\",\n    remaining: (days) => `剩余 ${days} 天`,\n    load_failed: \"加载失败，请稍后重试。\",\n  },\n  en: {\n    title: \"CCF DDL Tracker\",\n    subtitle_zh: \"\",\n    subtitle_en: \"Track deadlines and show the nearest days left.\",\n    open: \"Open CCFDDL\",\n    add_section: \"Add DDL\",\n    title_label: \"Title\",\n    title_placeholder: \"e.g., ACL 2025\",\n    date_label: \"Date\",\n    time_label: \"Time\",\n    add_button: \"Add\",\n    import_section: \"Import from CCFDDL\",\n    load_button: \"Load\",\n    loading: \"Loading...\",\n    search_label: \"Search\",\n    search_placeholder: \"e.g., ICML / SIGMOD\",\n    import_empty: \"Click “Load” to fetch the latest conference list.\",\n    import_hint:\n      \"Prefer GitHub repository data, with an ICS fallback if needed.\",\n    my_section: \"My DDLs\",\n    empty_state: \"No deadlines yet.\",\n    refresh_button: \"Refresh\",\n    add_item: \"Add\",\n    delete_item: \"Delete\",\n    remaining: (days) => `${days} days left`,\n    load_failed: \"Failed to load. Please try again.\",\n  },\n};\n\nfunction t(key, fallback = \"\") {\n  const entry = translations[currentLang]?.[key];\n  if (typeof entry === \"function\") return entry;\n  return entry ?? fallback;\n}\n\nfunction applyTranslations() {\n  document.querySelectorAll(\"[data-i18n]\").forEach((el) => {\n    const key = el.getAttribute(\"data-i18n\");\n    const value = t(key, el.textContent);\n    el.textContent = value;\n  });\n\n  document.querySelectorAll(\"[data-i18n-placeholder]\").forEach((el) => {\n    const key = el.getAttribute(\"data-i18n-placeholder\");\n    el.setAttribute(\"placeholder\", t(key, el.getAttribute(\"placeholder\") || \"\"));\n  });\n\n  if (langToggle) {\n    langToggle.textContent = currentLang === \"zh\" ? \"EN\" : \"ZH\";\n  }\n\n  const locale = currentLang === \"en\" ? \"en-US\" : \"zh-CN\";\n  document.documentElement.setAttribute(\"lang\", locale);\n  dateInput?.setAttribute(\"lang\", locale);\n  timeInput?.setAttribute(\"lang\", locale);\n}\n\nfunction setLanguage(lang) {\n  currentLang = lang;\n  applyTranslations();\n  chrome.storage.local.set({ [LANG_STORAGE_KEY]: currentLang });\n  renderCcfddlList(ccfddlItems);\n  loadDeadlines();\n}\n\nfunction normalizeText(value) {\n  return value\n    .toLowerCase()\n    .replace(/\\s+/g, \"\")\n    .replace(/[^\\p{L}\\p{N}]+/gu, \"\");\n}\n\nfunction toTimestamp(value) {\n  const parsed = new Date(value);\n  return Number.isNaN(parsed.getTime()) ? null : parsed.getTime();\n}\n\nfunction daysLeft(datetime) {\n  const ts = toTimestamp(datetime);\n  if (ts === null) return null;\n  const diff = ts - Date.now();\n  return Math.max(0, Math.floor(diff / MS_PER_DAY));\n}\n\nfunction formatDate(datetime) {\n  const date = new Date(datetime);\n  if (Number.isNaN(date.getTime())) return \"无效日期\";\n  const locale = currentLang === \"en\" ? \"en-US\" : \"zh-CN\";\n  return date.toLocaleString(locale, {\n    year: \"numeric\",\n    month: \"2-digit\",\n    day: \"2-digit\",\n    hour: \"2-digit\",\n    minute: \"2-digit\",\n  });\n}\n\nfunction parseIcsDate(value) {\n  if (!value) return null;\n  const sanitized = value.trim();\n  const dateTimeMatch =\n    sanitized.match(\n      /^(\\d{4})(\\d{2})(\\d{2})T(\\d{2})(\\d{2})(\\d{2})(Z|[+-]\\d{4})?$/\n    );\n  if (dateTimeMatch) {\n    const [, year, month, day, hour, minute, second, tz] = dateTimeMatch;\n    const offset = tz && tz !== \"Z\" ? `${tz.slice(0, 3)}:${tz.slice(3)}` : \"\";\n    const suffix = tz === \"Z\" ? \"Z\" : offset;\n    const iso = `${year}-${month}-${day}T${hour}:${minute}:${second}${suffix}`;\n    const date = new Date(iso);\n    return Number.isNaN(date.getTime()) ? null : date;\n  }\n\n  const dateOnlyMatch = sanitized.match(/^(\\d{4})(\\d{2})(\\d{2})$/);\n  if (dateOnlyMatch) {\n    const [, year, month, day] = dateOnlyMatch;\n    const date = new Date(`${year}-${month}-${day}T23:59:59`);\n    return Number.isNaN(date.getTime()) ? null : date;\n  }\n\n  const parsed = new Date(sanitized);\n  return Number.isNaN(parsed.getTime()) ? null : parsed;\n}\n\nfunction parseIcs(text) {\n  const lines = text.replace(/\\r\\n/g, \"\\n\").split(\"\\n\");\n  const unfolded = [];\n  lines.forEach((line) => {\n    if (line.startsWith(\" \") || line.startsWith(\"\\t\")) {\n      const previous = unfolded.pop() ?? \"\";\n      unfolded.push(previous + line.trim());\n    } else {\n      unfolded.push(line);\n    }\n  });\n\n  const events = [];\n  let current = null;\n  unfolded.forEach((line) => {\n    if (line === \"BEGIN:VEVENT\") {\n      current = {};\n      return;\n    }\n    if (line === \"END:VEVENT\") {\n      if (current) events.push(current);\n      current = null;\n      return;\n    }\n    if (!current) return;\n\n    const [rawKey, ...rest] = line.split(\":\");\n    const key = rawKey.split(\";\")[0];\n    const value = rest.join(\":\");\n    if (key === \"SUMMARY\") current.summary = value;\n    if (key === \"DTSTART\") current.start = value;\n  });\n\n  return events\n    .map((event) => {\n      const date = parseIcsDate(event.start);\n      if (!event.summary || !date) return null;\n      return {\n        title: event.summary,\n        datetime: date.toISOString(),\n      };\n    })\n    .filter(Boolean);\n}\n\nfunction parseTimezoneOffset(timezone) {\n  if (!timezone) return 0;\n  const normalized = timezone.trim();\n  if (normalized.toUpperCase() === \"AOE\") return -12;\n  const match = normalized.match(/UTC([+-]\\d{1,2})/i);\n  if (!match) return 0;\n  return Number.parseInt(match[1], 10);\n}\n\nfunction parseDeadlineWithTimezone(deadline, timezone) {\n  if (!deadline || deadline.toUpperCase() === \"TBD\") return null;\n  const [datePart, timePart] = deadline.split(\" \");\n  if (!datePart || !timePart) return null;\n  const [year, month, day] = datePart.split(\"-\").map((value) => Number(value));\n  const [hour, minute, second] = timePart.split(\":\").map((value) => Number(value));\n  if ([year, month, day, hour, minute, second].some((value) => Number.isNaN(value))) {\n    return null;\n  }\n  const offsetHours = parseTimezoneOffset(timezone);\n  const utcMs = Date.UTC(year, month - 1, day, hour, minute, second) - offsetHours * 3600 * 1000;\n  return new Date(utcMs).toISOString();\n}\n\nfunction parseAllConfYaml(text) {\n  const items = [];\n  let current = null;\n  let currentTimezone = null;\n  let currentYear = null;\n  let pendingDeadline = null;\n  let pendingComment = null;\n\n  const flushPending = () => {\n    if (!pendingDeadline || !current) return;\n    const iso = parseDeadlineWithTimezone(pendingDeadline, currentTimezone);\n    if (!iso) return;\n    const suffix = pendingComment ? ` (${pendingComment})` : \"\";\n    const title = currentYear ? `${current.title} ${currentYear}${suffix}` : `${current.title}${suffix}`;\n    items.push({ title, datetime: iso });\n    pendingDeadline = null;\n    pendingComment = null;\n  };\n\n  text.split(/\\r?\\n/).forEach((line) => {\n    const trimmed = line.trim();\n    if (!trimmed || trimmed.startsWith(\"#\")) return;\n\n    if (trimmed.startsWith(\"- title:\")) {\n      flushPending();\n      const title = trimmed.replace(\"- title:\", \"\").trim().replace(/^['\"]|['\"]$/g, \"\");\n      current = { title };\n      currentTimezone = null;\n      currentYear = null;\n      return;\n    }\n\n    if (!current) return;\n\n    if (trimmed.startsWith(\"year:\")) {\n      currentYear = trimmed.replace(\"year:\", \"\").trim();\n      return;\n    }\n\n    if (trimmed.startsWith(\"timezone:\")) {\n      currentTimezone = trimmed.replace(\"timezone:\", \"\").trim();\n      return;\n    }\n\n    if (trimmed.startsWith(\"- deadline:\") || trimmed.startsWith(\"deadline:\")) {\n      flushPending();\n      pendingDeadline = trimmed.replace(\"- deadline:\", \"\").replace(\"deadline:\", \"\").trim();\n      pendingDeadline = pendingDeadline.replace(/^['\"]|['\"]$/g, \"\");\n      return;\n    }\n\n    if (trimmed.startsWith(\"- abstract_deadline:\") || trimmed.startsWith(\"abstract_deadline:\")) {\n      flushPending();\n      pendingDeadline = trimmed\n        .replace(\"- abstract_deadline:\", \"\")\n        .replace(\"abstract_deadline:\", \"\")\n        .trim();\n      pendingDeadline = pendingDeadline.replace(/^['\"]|['\"]$/g, \"\");\n      pendingComment = pendingComment ? pendingComment : \"abstract\";\n      return;\n    }\n\n    if (trimmed.startsWith(\"comment:\")) {\n      pendingComment = trimmed.replace(\"comment:\", \"\").trim().replace(/^['\"]|['\"]$/g, \"\");\n      return;\n    }\n  });\n\n  flushPending();\n  return items;\n}\n\nfunction renderCcfddlList(items) {\n  ccfddlList.innerHTML = \"\";\n\n  if (items.length === 0) {\n    ccfddlEmpty.style.display = \"block\";\n    return;\n  }\n\n  ccfddlEmpty.style.display = \"none\";\n  items.forEach((item) => {\n    const li = document.createElement(\"li\");\n    li.className = \"import-item\";\n\n    const header = document.createElement(\"div\");\n    header.className = \"import-item-header\";\n\n    const title = document.createElement(\"span\");\n    title.className = \"import-title\";\n    title.textContent = item.title;\n\n    const addBtn = document.createElement(\"button\");\n    addBtn.className = \"import-add\";\n    addBtn.textContent = t(\"add_item\", \"添加\");\n    addBtn.addEventListener(\"click\", () => addImportedDeadline(item));\n\n    header.append(title, addBtn);\n\n    const meta = document.createElement(\"div\");\n    meta.className = \"import-meta\";\n    meta.textContent = formatDate(item.datetime);\n\n    li.append(header, meta);\n    ccfddlList.appendChild(li);\n  });\n}\n\nfunction filterCcfddlList() {\n  const keyword = ccfddlSearchInput.value.trim().toLowerCase();\n  if (!keyword) {\n    renderCcfddlList(ccfddlItems);\n    return;\n  }\n  const normalizedKeyword = normalizeText(keyword);\n  const filtered = ccfddlItems.filter((item) => {\n    const title = item.title.toLowerCase();\n    return (\n      title.includes(keyword) ||\n      normalizeText(title).includes(normalizedKeyword)\n    );\n  });\n  renderCcfddlList(filtered);\n}\n\nfunction addImportedDeadline(item) {\n  chrome.storage.local.get({ [STORAGE_KEY]: [] }, (result) => {\n    const existing = result[STORAGE_KEY];\n    const exists = existing.some(\n      (entry) => entry.title === item.title && entry.datetime === item.datetime\n    );\n    if (exists) return;\n    const updated = [...existing, item];\n    saveDeadlines(updated);\n  });\n}\n\nfunction mergeCcfddlItems(items) {\n  const seen = new Set();\n  return items.filter((item) => {\n    const key = `${item.title}__${item.datetime}`;\n    if (seen.has(key)) return false;\n    seen.add(key);\n    return true;\n  });\n}\n\nasync function loadCcfddlData() {\n  loadCcfddlBtn.disabled = true;\n  loadCcfddlBtn.textContent = t(\"loading\", \"加载中...\");\n  try {\n    const repoResponse = await fetch(\n      \"https://ccfddl.github.io/conference/allconf.yml\"\n    );\n    if (repoResponse.ok) {\n      const repoText = await repoResponse.text();\n      const now = Date.now();\n      const parsed = parseAllConfYaml(repoText);\n      ccfddlItems = mergeCcfddlItems(parsed)\n        .filter((item) => toTimestamp(item.datetime) >= now)\n        .sort((a, b) => toTimestamp(a.datetime) - toTimestamp(b.datetime));\n      filterCcfddlList();\n      return;\n    }\n\n    const [zhResponse, enResponse] = await Promise.all([\n      fetch(\"https://ccfddl.com/conference/deadlines_zh.ics\"),\n      fetch(\"https://ccfddl.com/conference/deadlines_en.ics\"),\n    ]);\n    const responses = [zhResponse, enResponse].filter((res) => res.ok);\n    if (responses.length === 0) throw new Error(\"加载失败\");\n    const texts = await Promise.all(responses.map((res) => res.text()));\n    const now = Date.now();\n    const parsed = texts.flatMap((text) => parseIcs(text));\n    ccfddlItems = mergeCcfddlItems(parsed)\n      .filter((item) => toTimestamp(item.datetime) >= now)\n      .sort((a, b) => toTimestamp(a.datetime) - toTimestamp(b.datetime));\n    filterCcfddlList();\n  } catch (error) {\n    ccfddlEmpty.textContent = t(\"load_failed\", \"加载失败，请稍后重试。\");\n    ccfddlEmpty.style.display = \"block\";\n  } finally {\n    loadCcfddlBtn.disabled = false;\n    loadCcfddlBtn.textContent = t(\"load_button\", \"加载\");\n  }\n}\n\nfunction render(deadlines) {\n  listEl.innerHTML = \"\";\n  const sorted = [...deadlines].sort((a, b) => {\n    return toTimestamp(a.datetime) - toTimestamp(b.datetime);\n  });\n\n  if (sorted.length === 0) {\n    emptyEl.style.display = \"block\";\n    countEl.textContent = \"\";\n    return;\n  }\n\n  emptyEl.style.display = \"none\";\n  countEl.textContent = currentLang === \"zh\" ? `${sorted.length} 项` : `${sorted.length}`;\n\n  sorted.forEach((item, index) => {\n    const li = document.createElement(\"li\");\n    li.className = \"item\";\n\n    const header = document.createElement(\"div\");\n    header.className = \"item-header\";\n\n    const title = document.createElement(\"span\");\n    title.className = \"item-title\";\n    title.textContent = item.title;\n\n    const del = document.createElement(\"button\");\n    del.className = \"delete-btn\";\n    del.textContent = t(\"delete_item\", \"删除\");\n    del.addEventListener(\"click\", () => removeDeadline(index));\n\n    header.append(title, del);\n\n    const meta = document.createElement(\"div\");\n    meta.className = \"item-meta\";\n\n    const date = document.createElement(\"span\");\n    date.textContent = formatDate(item.datetime);\n\n    const remaining = document.createElement(\"span\");\n    const remainingDays = daysLeft(item.datetime);\n    if (remainingDays === null) {\n      remaining.textContent = \"\";\n    } else {\n      const remainingText = t(\"remaining\", (days) => `剩余 ${days} 天`);\n      remaining.textContent = remainingText(remainingDays);\n    }\n\n    meta.append(date, remaining);\n\n    li.append(header, meta);\n    listEl.appendChild(li);\n  });\n}\n\nfunction loadDeadlines() {\n  chrome.storage.local.get({ [STORAGE_KEY]: [] }, (result) => {\n    render(result[STORAGE_KEY]);\n  });\n}\n\nfunction startAutoRefresh() {\n  if (refreshTimer) return;\n  refreshTimer = setInterval(loadDeadlines, REFRESH_INTERVAL_MS);\n\n  document.addEventListener(\"visibilitychange\", () => {\n    if (!document.hidden) {\n      loadDeadlines();\n    }\n  });\n\n  window.addEventListener(\"focus\", loadDeadlines);\n}\n\nfunction saveDeadlines(deadlines) {\n  chrome.storage.local.set({ [STORAGE_KEY]: deadlines }, () => {\n    render(deadlines);\n  });\n}\n\nfunction removeDeadline(index) {\n  chrome.storage.local.get({ [STORAGE_KEY]: [] }, (result) => {\n    const updated = result[STORAGE_KEY].filter((_, idx) => idx !== index);\n    saveDeadlines(updated);\n  });\n}\n\nform.addEventListener(\"submit\", (event) => {\n  event.preventDefault();\n  const title = titleInput.value.trim();\n  const date = dateInput.value;\n  const time = timeInput.value || \"23:59\";\n\n  if (!title || !date) return;\n\n  const datetime = new Date(`${date}T${time}`);\n  if (Number.isNaN(datetime.getTime())) return;\n\n  chrome.storage.local.get({ [STORAGE_KEY]: [] }, (result) => {\n    const updated = [\n      ...result[STORAGE_KEY],\n      {\n        title,\n        datetime: datetime.toISOString(),\n      },\n    ];\n    saveDeadlines(updated);\n    form.reset();\n    timeInput.value = \"23:59\";\n  });\n});\n\nlangToggle.addEventListener(\"click\", () => {\n  const next = currentLang === \"zh\" ? \"en\" : \"zh\";\n  setLanguage(next);\n});\n\nchrome.storage.local.get({ [LANG_STORAGE_KEY]: \"zh\" }, (result) => {\n  currentLang = result[LANG_STORAGE_KEY] || \"zh\";\n  applyTranslations();\n  renderCcfddlList(ccfddlItems);\n  loadDeadlines();\n  startAutoRefresh();\n});\n\nloadCcfddlBtn.addEventListener(\"click\", loadCcfddlData);\nccfddlSearchInput.addEventListener(\"input\", filterCcfddlList);\nrefreshDeadlinesBtn.addEventListener(\"click\", loadDeadlines);\n"
  },
  {
    "path": "extensions/cli/ccfddl/__init__.py",
    "content": ""
  },
  {
    "path": "extensions/cli/ccfddl/__main__.py",
    "content": "import string\nimport requests\nimport yaml\nfrom termcolor import colored\nfrom argparse import ArgumentParser\nfrom copy import deepcopy\nfrom datetime import datetime\nfrom tabulate import tabulate\nfrom datetime import timezone\n\n\ndef parse_tz(tz):\n    if tz == \"AoE\":\n        return \"-1200\"\n    elif tz.startswith(\"UTC-\"):\n        return \"-{:04d}\".format(int(tz[4:]))\n    elif tz.startswith(\"UTC+\"):\n        return \"+{:04d}\".format(int(tz[4:]))\n    else:\n        return \"+0000\"\n\n\ndef parse_args():\n    parser = ArgumentParser(description=\"cli for ccfddl\")\n    parser.add_argument(\"--conf\", type=str, nargs='+',\n                        help=\"A list of conference ids you want to filter, e.g.: '--conf CVPR ICML'\")\n    parser.add_argument(\"--sub\", type=str, nargs='+',\n                        help=\"A list of subcategories ids you want to filter, e.g.: '--sub AI CG'\")\n    parser.add_argument(\"--rank\", type=str, nargs='+',\n                        help=\"A list of ranks you want to filter, e.g.: '--rank C N'\")\n    args = parser.parse_args()\n    # Convert all arguments to lowercase\n    for arg_name in vars(args):\n        arg_value = getattr(args, arg_name)\n        if arg_value:\n            setattr(args, arg_name, [arg.lower() for arg in arg_value])\n    return args\n\n\ndef format_duraton(ddl_time: datetime, now: datetime) -> str:\n        duration = ddl_time - now\n        months, days= duration.days // 30, duration.days\n        hours, remainder= divmod(duration.seconds, 3600)\n        minutes, seconds = divmod(remainder, 60)\n\n        day_word_str = \"days\" if days > 1 else \"day \"\n        # for alignment\n        months_str, days_str, = str(months).zfill(2), str(days).zfill(2)\n        hours_str, minutes_str = str(hours).zfill(2), str(minutes).zfill(2)\n\n        if days < 1:\n            return colored(f'{hours_str}:{minutes_str}:{seconds}', \"red\")\n        if days < 30:\n            return colored(f'{days_str} {day_word_str}, {hours_str}:{minutes_str}', \"yellow\")\n        if days < 100:\n            return colored(f\"{days_str} {day_word_str}\", \"blue\")\n        return colored(f\"{months_str} months\", \"green\")\n\n\ndef main():\n    args = parse_args()\n    yml_str = requests.get(\n        \"https://ccfddl.github.io/conference/allconf.yml\").content.decode(\"utf-8\")\n    all_conf = yaml.safe_load(yml_str)\n\n    all_conf_ext = []\n    now = datetime.now(tz=timezone.utc)\n    for conf in all_conf:\n        for c in conf[\"confs\"]:\n            cur_conf = deepcopy(conf)\n            cur_conf[\"title\"] = cur_conf[\"title\"] + str(c[\"year\"])\n            cur_conf.update(c)\n            time_obj = None\n            tz = parse_tz(c[\"timezone\"])\n            for d in c[\"timeline\"]:\n                try:\n                    cur_d = datetime.strptime(\n                        d[\"deadline\"] + \" {}\".format(tz), '%Y-%m-%d %H:%M:%S %z')\n                    if cur_d < now:\n                        continue\n                    if time_obj is None or cur_d < time_obj:\n                        time_obj = cur_d\n                except Exception as e:\n                    pass\n            if time_obj is not None:\n                cur_conf[\"time_obj\"] = time_obj\n                if time_obj > now:\n                    all_conf_ext.append(cur_conf)\n\n    all_conf_ext = sorted(all_conf_ext, key=lambda x: x['time_obj'])\n\n    # This is not an elegant solution.\n    # The purpose is to keep the above logic untouched,\n    # return alpha id(conf name) without digits(year)\n    def alpha_id(with_digits: string) -> string:\n        return ''.join(char for char in with_digits.lower() if char.isalpha())\n\n    table = [[\"Title\", \"Sub\", \"Rank\", \"DDL\", \"Link\"]]\n    # Filter intersection by args\n    for x in all_conf_ext:\n        skip = False\n        if args.conf and alpha_id(x[\"id\"]) not in args.conf:\n            skip = True\n        if args.sub and alpha_id(x[\"sub\"]) not in args.sub:\n            skip = True\n        if args.rank and alpha_id(x[\"rank\"]) not in args.rank:\n            skip = True\n        if skip:\n            continue\n        table.append(\n            [x[\"title\"],\n                x[\"sub\"],\n                x[\"rank\"],\n                format_duraton(x[\"time_obj\"], now),\n                x[\"link\"]]\n            )\n\n    print(tabulate(table, headers='firstrow', tablefmt='fancy_grid'))\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "extensions/cli/ccfddl/convert_to_ical.py",
    "content": "import yaml\nimport re\nimport uuid\nfrom collections import defaultdict\nfrom itertools import combinations\nfrom datetime import datetime, timedelta, timezone\nfrom icalendar import Calendar, Event, Timezone, TimezoneStandard\n\n\n# 中英类别映射表\ndef load_mapping(path: str = \"conference/types.yml\"):\n    with open(path, encoding=\"utf-8\") as f:\n        types = yaml.safe_load(f)\n    SUB_MAPPING = {}\n    for types_data in types:\n        SUB_MAPPING[types_data[\"sub\"]] = types_data[\"name\"]\n    return SUB_MAPPING\n\n\ndef get_timezone(tz_str: str) -> timezone:\n    \"\"\"将时区字符串转换为datetime.timezone对象\"\"\"\n    if tz_str == \"AoE\":\n        return timezone(timedelta(hours=-12))\n    if tz_str == \"UTC\":\n        return timezone.utc\n    match = re.match(r\"UTC([+-])(\\d{1,2})$\", tz_str)\n    if not match:\n        raise ValueError(f\"无效的时区格式: {tz_str}\")\n    sign, hours = match.groups()\n    offset = int(hours) if sign == \"+\" else -int(hours)\n    return timezone(timedelta(hours=offset))\n\n\ndef create_vtimezone(tz: timezone) -> Timezone:\n    \"\"\"创建VTIMEZONE组件\"\"\"\n    tz_offset = tz.utcoffset(datetime.now())\n    offset_hours = tz_offset.total_seconds() // 3600\n    tzid = f\"UTC{offset_hours:+03.0f}:00\"\n\n    vtz = Timezone()\n    vtz.add(\"TZID\", tzid)\n\n    std = TimezoneStandard()\n    std.add(\"DTSTART\", datetime(1970, 1, 1))\n    std.add(\"TZOFFSETFROM\", timedelta(hours=offset_hours))\n    std.add(\"TZOFFSETTO\", timedelta(hours=offset_hours))\n    std.add(\"TZNAME\", tzid)\n\n    vtz.add_component(std)\n    return vtz\n\n\ndef convert_to_ical(\n    file_paths: list[str], output_path: str, lang: str = \"en\", SUB_MAPPING={}\n):\n    cal = Calendar()\n    cal.add(\"prodid\", \"-//会议截止日历//ccfddl.com//\")\n    cal.add(\"version\", \"2.0\")\n\n    added_tzids = set()\n    for file_path in file_paths:\n        with open(file_path, \"r\", encoding=\"utf-8\") as f:\n            conferences = yaml.safe_load(f)\n\n        for conf_data in conferences:\n            title = conf_data[\"title\"]\n            sub = conf_data[\"sub\"]\n            sub_chinese = SUB_MAPPING.get(sub, sub)\n            rank = conf_data[\"rank\"]\n            dblp = conf_data[\"dblp\"]\n\n            for conf in conf_data[\"confs\"]:\n                year = conf[\"year\"]\n                link = conf[\"link\"]\n                timeline = conf[\"timeline\"]\n                timezone_str = conf[\"timezone\"]\n                place = conf[\"place\"]\n                date = conf[\"date\"]\n\n                for entry in timeline:\n                    try:\n                        tz = get_timezone(timezone_str)\n                    except ValueError:\n                        continue\n\n                    # 添加VTIMEZONE组件\n                    tz_offset = tz.utcoffset(datetime.now())\n                    offset_hours = tz_offset.total_seconds() // 3600\n                    tzid = f\"UTC{offset_hours:+03.0f}:00\"\n\n                    if tzid not in added_tzids:\n                        vtz = create_vtimezone(tz)\n                        cal.add_component(vtz)\n                        added_tzids.add(tzid)\n\n                    # 收集所有需要处理的截止日期\n                    deadlines_to_process = []\n\n                    if \"abstract_deadline\" in entry:\n                        deadlines_to_process.append(\n                            (\n                                (\"摘要截稿\", \"Abstract Deadline\"),\n                                entry[\"abstract_deadline\"],\n                            )\n                        )\n\n                    if \"deadline\" in entry:\n                        deadlines_to_process.append(\n                            ((\"截稿日期\", \"Deadline\"), entry[\"deadline\"])\n                        )\n\n                    # 如果没有任何截止日期，跳过\n                    if not deadlines_to_process:\n                        continue\n\n                    # 处理每个截止日期\n                    for deadline_type, deadline_str in deadlines_to_process:\n                        if deadline_str == \"TBD\":\n                            continue  # 忽略待定日期\n\n                        # 解析日期和时间\n                        is_all_day = False\n                        try:\n                            deadline_dt = datetime.strptime(\n                                deadline_str, \"%Y-%m-%d %H:%M:%S\"\n                            )\n                        except ValueError:\n                            try:\n                                deadline_dt = datetime.strptime(\n                                    deadline_str, \"%Y-%m-%d\"\n                                )\n                                is_all_day = True\n                            except ValueError:\n                                continue  # 无效日期格式\n\n                        # 创建事件对象\n                        event = Event()\n                        event.add(\"uid\", uuid.uuid4())\n                        event.add(\"dtstamp\", datetime.now(tz))\n\n                        # 处理时间字段\n                        if is_all_day:\n                            event.add(\"dtstart\", deadline_dt.date())\n                            event.add(\"dtend\", (deadline_dt + timedelta(days=1)).date())\n                        else:\n                            aware_dt = deadline_dt.replace(tzinfo=tz)\n                            event.add(\"dtstart\", aware_dt)\n                            event.add(\"dtend\", aware_dt + timedelta(minutes=1))\n\n                        # 构建中英双语摘要\n                        if lang == \"en\":\n                            summary = f\"{title} {year} {deadline_type[1]}\"\n                        else:\n                            summary = f\"{title} {year} {deadline_type[0]}\"\n\n                        # 添加注释信息\n                        if \"comment\" in entry:\n                            summary += f\" [{entry['comment']}]\"\n                        event.add(\"summary\", summary)\n\n                        # 构建详细描述\n                        level_desc = [\n                            f\"CCF {rank['ccf']}\" if rank[\"ccf\"] != \"N\" else None,\n                            f\"CORE {rank['core']}\"\n                            if rank.get(\"core\", \"N\") != \"N\"\n                            else None,\n                            f\"THCPL {rank['thcpl']}\"\n                            if rank.get(\"thcpl\", \"N\") != \"N\"\n                            else None,\n                        ]\n                        level_desc = [line for line in level_desc if line]\n                        if len(level_desc) > 0:\n                            level_desc = \", \".join(level_desc)\n                        else:\n                            level_desc = None\n                        if lang == \"en\":\n                            description = [\n                                f\"{conf_data['description']}\",\n                                f\"🗓️ Date: {date}\",\n                                f\"📍 Location: {place}\",\n                                f\"⏰ Original Deadline ({timezone_str}): {deadline_str}\",\n                                f\"Category: {sub_chinese} ({sub})\",\n                                level_desc,\n                                f\"Conference Website: {link}\",\n                                f\"DBLP Index: https://dblp.org/db/conf/{dblp}\",\n                            ]\n                        else:\n                            description = [\n                                f\"{conf_data['description']}\",\n                                f\"🗓️ 会议时间: {date}\",\n                                f\"📍 会议地点: {place}\",\n                                f\"⏰ 原始截止时间 ({timezone_str}): {deadline_str}\",\n                                f\"分类: {sub_chinese} ({sub})\",\n                                level_desc,\n                                f\"会议官网: {link}\",\n                                f\"DBLP索引: https://dblp.org/db/conf/{dblp}\",\n                            ]\n                        description = [line for line in description if line]\n                        event.add(\"description\", \"\\n\".join(description))\n\n                        # 添加其他元信息\n                        event.add(\"location\", place)\n                        event.add(\"url\", link)\n\n                        cal.add_component(event)\n\n    # 写入输出文件\n    with open(output_path, \"wb\") as f:\n        f.write(cal.to_ical())\n\n\ndef add_index_entry(index, key: str, file_path: str):\n    index[key].add(file_path)\n\n\ndef reverse_index(file_paths: list[str], subs: list[str]):\n    index = defaultdict(set)\n\n    for file_path in file_paths:\n        with open(file_path, \"r\", encoding=\"utf-8\") as f:\n            conferences = yaml.safe_load(f)\n\n        for conf_data in conferences:\n            sub = conf_data[\"sub\"]\n            rank = conf_data[\"rank\"]\n            ccf_rank = rank.get(\"ccf\", \"N\")\n            core_rank = rank.get(\"core\", \"N\")\n            thcpl_rank = rank.get(\"thcpl\", \"N\")\n            rank_keys = [\n                f\"ccf_{ccf_rank}\",\n                f\"core_{core_rank}\",\n                f\"thcpl_{thcpl_rank}\",\n            ]\n\n            add_index_entry(index, sub, file_path)\n\n            for size in range(1, len(rank_keys) + 1):\n                for combo in combinations(rank_keys, size):\n                    key = \"_\".join(combo)\n                    add_index_entry(index, key, file_path)\n                    add_index_entry(index, f\"{key}_{sub}\", file_path)\n\n    return {key: sorted(paths) for key, paths in index.items()}\n\n\nif __name__ == \"__main__\":\n    from xlin import ls, element_mapping\n\n    SUB_MAPPING = load_mapping(\"conference/types.yml\")\n    paths = ls(\"conference\", filter=lambda f: f.name != \"types.yml\")\n    index = reverse_index(paths, list(SUB_MAPPING.keys()))\n    for lang in [\"zh\", \"en\"]:\n        convert_to_ical(paths, f\"deadlines_{lang}.ics\", lang, SUB_MAPPING)\n        f = lambda key: (\n            len(index[key]) > 0,\n            convert_to_ical(\n                index[key],\n                f\"deadlines_{lang}_{key.replace('*', 'star')}.ics\",\n                lang,\n                SUB_MAPPING,\n            ),\n        )\n        element_mapping(index.keys(), f, thread_pool_size=8)\n    print(\"转换完成\")\n"
  },
  {
    "path": "extensions/cli/ccfddl/convert_to_rss.py",
    "content": "import xml.etree.ElementTree as ET\nfrom datetime import datetime, timedelta, timezone\nfrom email.utils import format_datetime\n\nfrom convert_to_ical import load_mapping, get_timezone, reverse_index\n\nimport yaml\n\n\ndef convert_to_rss(\n    file_paths: list[str], output_path: str, lang: str = \"en\", SUB_MAPPING={}\n):\n    rss = ET.Element(\"rss\", version=\"2.0\")\n    channel = ET.SubElement(rss, \"channel\")\n\n    ET.SubElement(channel, \"title\").text = (\n        \"CCF Conference Deadlines\" if lang == \"en\" else \"CCF 会议截止日期\"\n    )\n    ET.SubElement(channel, \"link\").text = \"https://ccfddl.com\"\n    ET.SubElement(channel, \"description\").text = (\n        \"Conference submission deadline tracking\"\n        if lang == \"en\"\n        else \"会议投稿截止日期追踪\"\n    )\n    ET.SubElement(channel, \"language\").text = \"en\" if lang == \"en\" else \"zh-CN\"\n    ET.SubElement(channel, \"lastBuildDate\").text = format_datetime(\n        datetime.now(timezone.utc)\n    )\n\n    for file_path in file_paths:\n        with open(file_path, \"r\", encoding=\"utf-8\") as f:\n            conferences = yaml.safe_load(f)\n\n        for conf_data in conferences:\n            title = conf_data[\"title\"]\n            sub = conf_data[\"sub\"]\n            sub_chinese = SUB_MAPPING.get(sub, sub)\n            rank = conf_data[\"rank\"]\n            dblp = conf_data[\"dblp\"]\n\n            for conf in conf_data[\"confs\"]:\n                year = conf[\"year\"]\n                link = conf[\"link\"]\n                timeline = conf[\"timeline\"]\n                timezone_str = conf[\"timezone\"]\n                place = conf[\"place\"]\n                date = conf[\"date\"]\n\n                for entry in timeline:\n                    try:\n                        tz = get_timezone(timezone_str)\n                    except ValueError:\n                        continue\n\n                    deadlines_to_process = []\n\n                    if \"abstract_deadline\" in entry:\n                        deadlines_to_process.append(\n                            (\n                                (\"摘要截稿\", \"Abstract Deadline\"),\n                                entry[\"abstract_deadline\"],\n                                \"abstract\",\n                            )\n                        )\n\n                    if \"deadline\" in entry:\n                        deadlines_to_process.append(\n                            ((\"截稿日期\", \"Deadline\"), entry[\"deadline\"], \"deadline\")\n                        )\n\n                    if not deadlines_to_process:\n                        continue\n\n                    for deadline_type, deadline_str, type_key in deadlines_to_process:\n                        if deadline_str == \"TBD\":\n                            continue\n\n                        try:\n                            deadline_dt = datetime.strptime(\n                                deadline_str, \"%Y-%m-%d %H:%M:%S\"\n                            )\n                        except ValueError:\n                            try:\n                                deadline_dt = datetime.strptime(\n                                    deadline_str, \"%Y-%m-%d\"\n                                )\n                            except ValueError:\n                                continue\n\n                        aware_dt = deadline_dt.replace(tzinfo=tz)\n\n                        item = ET.SubElement(channel, \"item\")\n\n                        if lang == \"en\":\n                            summary = f\"{title} {year} {deadline_type[1]}\"\n                        else:\n                            summary = f\"{title} {year} {deadline_type[0]}\"\n\n                        if \"comment\" in entry:\n                            summary += f\" [{entry['comment']}]\"\n\n                        ET.SubElement(item, \"title\").text = summary\n                        ET.SubElement(item, \"link\").text = link\n\n                        # Build description\n                        level_desc = [\n                            f\"CCF {rank['ccf']}\" if rank[\"ccf\"] != \"N\" else None,\n                            f\"CORE {rank['core']}\"\n                            if rank.get(\"core\", \"N\") != \"N\"\n                            else None,\n                            f\"THCPL {rank['thcpl']}\"\n                            if rank.get(\"thcpl\", \"N\") != \"N\"\n                            else None,\n                        ]\n                        level_desc = [x for x in level_desc if x]\n                        level_str = \", \".join(level_desc) if level_desc else None\n\n                        if lang == \"en\":\n                            desc_lines = [\n                                conf_data[\"description\"],\n                                f\"Date: {date}\",\n                                f\"Location: {place}\",\n                                f\"Deadline ({timezone_str}): {deadline_str}\",\n                                f\"Category: {sub_chinese} ({sub})\",\n                                level_str,\n                                f\"Conference Website: {link}\",\n                                f\"DBLP: https://dblp.org/db/conf/{dblp}\",\n                            ]\n                        else:\n                            desc_lines = [\n                                conf_data[\"description\"],\n                                f\"会议时间: {date}\",\n                                f\"会议地点: {place}\",\n                                f\"截止时间 ({timezone_str}): {deadline_str}\",\n                                f\"分类: {sub_chinese} ({sub})\",\n                                level_str,\n                                f\"会议官网: {link}\",\n                                f\"DBLP索引: https://dblp.org/db/conf/{dblp}\",\n                            ]\n                        desc_lines = [x for x in desc_lines if x]\n                        ET.SubElement(item, \"description\").text = \"\\n\".join(desc_lines)\n\n                        ET.SubElement(item, \"pubDate\").text = format_datetime(aware_dt)\n\n                        guid = ET.SubElement(\n                            item, \"guid\", isPermaLink=\"false\"\n                        )\n                        guid.text = f\"{title}-{year}-{type_key}-{deadline_str}@ccfddl.com\"\n\n                        ET.SubElement(item, \"category\").text = sub\n\n    tree = ET.ElementTree(rss)\n    ET.indent(tree, space=\"  \")\n    with open(output_path, \"wb\") as f:\n        tree.write(f, encoding=\"utf-8\", xml_declaration=True)\n\n\nif __name__ == \"__main__\":\n    from xlin import ls, element_mapping\n\n    SUB_MAPPING = load_mapping(\"conference/types.yml\")\n    paths = ls(\"conference\", filter=lambda f: f.name != \"types.yml\")\n    index = reverse_index(paths, list(SUB_MAPPING.keys()))\n    for lang in [\"zh\", \"en\"]:\n        convert_to_rss(paths, f\"deadlines_{lang}.xml\", lang, SUB_MAPPING)\n        f = lambda key: (\n            len(index[key]) > 0,\n            convert_to_rss(\n                index[key],\n                f\"deadlines_{lang}_{key.replace('*', 'star')}.xml\",\n                lang,\n                SUB_MAPPING,\n            ),\n        )\n        element_mapping(index.keys(), f, thread_pool_size=8)\n    print(\"RSS feed generation complete\")\n"
  },
  {
    "path": "extensions/cli/readme.md",
    "content": "# ccfddl cli\n\nWIP\n\n## install\n\n```bash\npip install -r req.txt\npython setup.py install\n```\n\n## usage\n\n```bash\npython -m ccfddl\n```\n\n| Argument | Type  | Description                          | Example            |\n| -------- | ----- | ------------------------------------ | ------------------ |\n| `--conf` | str[] | A list of conference IDs to filter.  | `--conf CVPR ICCV` |\n| `--sub`  | str[] | A list of subcategory IDs to filter. | `--sub AI ML`      |\n| `--rank` | str[] | A list of ranks to filter.           | `--rank A B`       |\n"
  },
  {
    "path": "extensions/cli/req.txt",
    "content": "tabulate\nyaml\npyyaml\nrequests\ntermcolor\n"
  },
  {
    "path": "extensions/cli/setup.py",
    "content": "\nfrom setuptools import setup, find_packages\n\nsetup(\n    name='ccfddl',\n    version='0.1',\n    packages=find_packages(),\n    license='MIT',\n    description='ccfddl cli',\n    author='0x4f5da2',\n    author_email='me@4f5da2.com'\n)\n"
  },
  {
    "path": "extensions/ical/readme.md",
    "content": "## iCal Subscription:\n\n- English: `https://ccfddl.com/conference/deadlines_en.ics`\n- 简体中文: `https://ccfddl.com/conference/deadlines_zh.ics`\n\n<img src=\"../../.readme_assets/screenshot_iCal.jpg\" width=\"500px\"/>\n\nThe filter is mapped to the name of iCal file in the following rules:\n\n- no filter: `deadlines_en.ics` and `deadlines_zh.ics`\n- one filter: `deadlines_{lang}_{ccf_rank}.ics`, `deadlines_{lang}_{core_rank}.ics`, `deadlines_{lang}_{thcpl_rank}.ics`, or `deadlines_{lang}_{sub}.ics`\n- two filters: any ordered pair among `ccf_rank`, `core_rank`, `thcpl_rank`, and `sub`\n- three filters: any ordered triple among `ccf_rank`, `core_rank`, `thcpl_rank`, and `sub`\n- four filters: `deadlines_{lang}_{ccf_rank}_{core_rank}_{thcpl_rank}_{sub}.ics`\n\nFor example, given filter: lang=en, core=A, thcpl=B, sub=SE, it will refer to `deadlines_en_core_A_thcpl_B_SE.ics`.\n\nFor `A*`, the generated filename uses `Astar`, for example `deadlines_en_core_Astar_SE.ics`.\n"
  },
  {
    "path": "index.html",
    "content": "<!DOCTYPE html>\n<html>\n\n<head>\n  <!-- Google tag (gtag.js) -->\n  <script async src=\"https://www.googletagmanager.com/gtag/js?id=G-RY374M6FJ8\"></script>\n  <script>\n    window.dataLayer = window.dataLayer || [];\n    function gtag(){dataLayer.push(arguments);}\n    gtag('js', new Date());\n\n    gtag('config', 'G-RY374M6FJ8');\n  </script>\n\n  <!-- Add a plain CSS file: see https://trunkrs.dev/assets/#css -->\n  <!-- If using Tailwind with Leptos CSR, see https://trunkrs.dev/assets/#tailwind instead-->\n  <link data-trunk rel=\"css\" href=\"public/styles.css\" />\n\n  <!-- Include favicon in dist output: see https://trunkrs.dev/assets/#icon -->\n  <link data-trunk rel=\"icon\" href=\"public/favicon.ico\" />\n\n  <!-- include support for `wasm-bindgen --weak-refs` - see: https://rustwasm.github.io/docs/wasm-bindgen/reference/weak-references.html -->\n  <link data-trunk rel=\"rust\" data-wasm-opt=\"z\" data-weak-refs />\n\n  <link rel=\"alternate\" type=\"application/rss+xml\" title=\"CCF Conference Deadlines (RSS)\" href=\"https://ccfddl.com/conference/deadlines_en.xml\" />\n\n  <link data-trunk rel=\"copy-dir\" href=\"public/conference\">\n</head>\n\n\n<body></body>\n\n</html>\n"
  },
  {
    "path": "public/styles.css",
    "content": "/* --------------------- Open Props --------------------------- */\n\n/* the props */\n@import \"https://unpkg.com/open-props\";\n\n/* ------------------------------------------------------------ */\n\nbody {\n  background-color: white;\n}\n\na {\n  text-decoration: underline;\n  text-decoration-color: currentColor;\n}\n\n.home {\n  font-family: \"Roboto\",\"Helvetica Neue\",Helvetica,Arial,sans-serif;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  max-width: 980px;\n  margin-left: auto;\n  margin-right: auto;\n}\n\n.github-iframe {\n    border: none;\n    overflow: hidden;\n    background: transparent;\n    display: block;\n}\n\n\n.title {\n    font-size: 29px;\n    color: #2c3e50;\n    text-decoration: underline;\n    text-decoration-color: currentColor;\n}\n\n.subtitle {\n    color: #666666;\n    display: inline-block;\n}\n\n/* --------------------- Footer --------------------------- */\n/* .footer {\n    color: #666666;\n    display: block;\n    padding-top: 8px;\n    height: 20px;\n} */\n\n@media (min-width: 769px) {\n    .footer {\n        height: 20px;\n        padding-top: 8px;\n        color: #666666;\n        display: flex;\n        justify-content: space-between;\n        align-items: center;\n    }\n\n    .footer-text {\n        flex: 1;\n    }\n\n    .footer-pagination {\n        margin-right: 10px;\n    }\n}\n\n/* 移动端样式 */\n@media (max-width: 768px) {\n    .footer {\n        height: 20px;\n        padding-top: 8px;\n        color: #666666;\n        display: flex;\n        flex-direction: column;\n    }\n\n    .footer-pagination {\n        order: 1;\n        margin-bottom: 15px;\n        display: flex;\n        justify-content: flex-end;\n    }\n\n    .footer-text {\n        order: 2;\n        text-align: center;\n        font-size: 14px;\n    }\n}\n\n.el-row {\n    /* display: flex; */\n    align-items: center;\n    padding-top: 15px;\n    font-size: 16px;\n}\n\n.el-switch {\n    display: flex;\n    align-items: center;\n    /* margin-bottom: 10px; */\n    margin-left: 10px;\n    font-size: 14px;\n    font-weight: 500;\n}\n\n.el-switch .is_active {\n  color: #409eff;\n}\n\n.thaw-switch__input:enabled:not(:checked) ~ .thaw-switch__indicator {\n  color: white;\n  background-color: #dcdfe6;\n  border-color: white;\n}\n.thaw-switch__input:enabled:checked ~ .thaw-switch__indicator {\n  background-color: #409eff;\n}\n\n.thaw-switch__input:enabled:checked:hover ~ .thaw-switch__indicator {\n  background-color: #409eff;\n}\n\n.thaw-switch__input:enabled:checked ~ .thaw-switch__indicator {\n  background-color: #409eff;\n}\n\n.checkbox-item {\n  flex-basis: 33%;\n  font-size: 14px;\n  font-weight: 500;\n}\n\n.custom-search-input {\n  border: 1px solid lightgray !important;\n}\n\n* input::placeholder {\n  color: lightgray !important;\n}\n\n.thaw-checkbox--checked {\n  --thaw-checkbox__indicator--background-color: #409eff;\n}\n\n.thaw-pagination-item, .thaw-button.thaw-pagination-item {\n    max-height: 20px;\n    max-width: 20px;\n}\n\n.thaw-button--primary {\n  background-color: #409eff;\n}\n\n.thaw-button--primary:hover {\n  background-color: #409eff;\n}\n\n.zonedivider{\n  margin-top: 8px;\n  border-bottom: 1px solid #ebeef5;\n}\n\n.thaw-table-cell-layout {\n  display: block;\n  padding: 12px 0px;\n}\n\n.thaw-table-cell-layout .conf-fin {\n  opacity: 0.4;\n}\n\n.conf-title {\n  font-size: 20px;\n  font-weight: 400;\n  color: black;\n}\n\n.countdown-display {\n  font-size: 20px;\n  font-weight: 400;\n  color: black;\n}\n\n.countdown-value {\n  display: inline-flex;\n  align-items: center;\n}\n\n.tag-container {\n  margin-top: 3px;\n}\n\n.tag-container .plain-tag.thaw-tag {\n  background-color: #fff;\n  border-color: #b3d8ff;\n  border-radius: 4px;\n  border-width: 1px;\n  border-style: solid;\n  height: 20px;\n  line-height: 18px;\n  padding: 0 5px;\n  font-size: 12px;\n}\n\n.thaw-tag__primary-text {\n  font-size: 12px;\n  color: #409eff;\n  padding: 0;\n}\n\n.thaw-input__input {\n  width: 125px;\n}\n"
  },
  {
    "path": "scripts/merge.py",
    "content": "#!/usr/bin/env python3\n\n\"\"\"\nYAML Structured Merger Script\nParse and merge multiple YAML files into a single structured file\n\"\"\"\n\nimport os\nimport yaml\nimport argparse\nfrom pathlib import Path\n\ndef find_yml_files(base_path, exclude_pattern=\"types.yml\"):\n    \"\"\"\n    Find all .yml files in the directory, excluding specified patterns\n\n    Args:\n        base_path: Base directory to search\n        exclude_pattern: Filename pattern to exclude\n\n    Returns:\n        List of yml file paths\n    \"\"\"\n    base_path = Path(base_path)\n\n    yml_files = []\n    for yml_file in base_path.rglob(\"*.yml\"):\n        # Skip if matches exclude pattern\n        if yml_file.name == exclude_pattern:\n            continue\n        yml_files.append(yml_file)\n\n    # Sort for consistent output\n    return sorted(yml_files)\n\n# Remove the separate merge function since we're doing everything in main now\n\ndef main():\n    \"\"\"Main function - output YAML to stdout for redirection\"\"\"\n\n    # Command line argument parsing\n    parser = argparse.ArgumentParser(description='Merge YAML files from specified directory')\n    parser.add_argument('path',\n                       help='Directory path to search for YAML files (e.g., ../../conference)')\n    parser.add_argument('--exclude', default='types.yml',\n                       help='Filename pattern to exclude (default: types.yml)')\n\n    args = parser.parse_args()\n\n    # Configuration\n    search_path = Path(args.path)\n\n    import sys\n\n    # Send progress messages to stderr so they don't interfere with stdout\n    print(f\"🔍 Finding YAML files in {search_path}...\", file=sys.stderr)\n    yml_files = find_yml_files(search_path, args.exclude)\n\n    if not yml_files:\n        print(\"❌ No YAML files found!\", file=sys.stderr)\n        return\n\n    print(f\"📁 Found {len(yml_files)} YAML files\", file=sys.stderr)\n\n    # Collect all data\n    all_data = []\n\n    for yml_file in yml_files:\n        print(f\"Processing: {yml_file}\", file=sys.stderr)\n        try:\n            with open(yml_file, 'r', encoding='utf-8') as file:\n                # Load YAML content\n                data = yaml.safe_load(file)\n\n                # Handle different YAML structures\n                if isinstance(data, list):\n                    # If it's a list, extend our main list\n                    all_data.extend(data)\n                elif isinstance(data, dict):\n                    # If it's a dict, add source info and append\n                    data['_source_file'] = str(yml_file.relative_to(Path.cwd()))\n                    all_data.append(data)\n                elif data is not None:\n                    # Handle other data types\n                    data_entry = {\n                        'data': data,\n                        '_source_file': str(yml_file.relative_to(Path.cwd()))\n                    }\n                    all_data.append(data_entry)\n\n        except yaml.YAMLError as e:\n            print(f\"❌ YAML parsing error in {yml_file}: {e}\", file=sys.stderr)\n        except Exception as e:\n            print(f\"❌ Error reading {yml_file}: {e}\", file=sys.stderr)\n\n    # Output merged YAML to stdout\n    yaml.dump(all_data, sys.stdout,\n             default_flow_style=False,\n             allow_unicode=True,\n             sort_keys=False,\n             indent=2)\n\n    print(f\"✅ Successfully merged {len(yml_files)} files with {len(all_data)} total entries\", file=sys.stderr)\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "scripts/validate.py",
    "content": "#!/usr/bin/env python\n\n\"\"\"\npre-commit hook to check conference yml files\n\nTo use it normally as git pre-commit hook,\nmake a symlink and install dependencies:\n$ ln -s ../../scripts/validate .git/hooks/pre-commit\n$ pip install PyYAML jsonschema\n\"\"\"\n\nimport os\nimport sys\n\nfrom io import StringIO\nfrom pprint import pprint\nfrom unittest import TestCase, TestLoader, TextTestRunner\n\nimport jsonschema\nimport jsonschema.exceptions\n\nimport yaml\n\nROOT = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))\nDATA_ROOT = os.path.join(ROOT, 'conference')\nYAML_SCHEMA = None\n\ndef load_conference_yaml_schema():\n    global YAML_SCHEMA\n    with open(os.path.join(ROOT, 'conference-yaml-schema.yml'), 'r') as schema:\n        YAML_SCHEMA = yaml.load(schema, Loader=yaml.SafeLoader)\n\n\nclass ConferenceTest(TestCase):\n    def test_conference_yaml_schema(self):\n        self.assertTrue(os.path.isdir(DATA_ROOT))\n        for sub in os.listdir(DATA_ROOT):\n            subdir = os.path.join(DATA_ROOT, sub)\n            if os.path.isdir(subdir):\n                for conf in os.listdir(subdir):\n                    with self.subTest(conf=conf):\n                        if conf.endswith('.yaml'): # Some new contributors will commit a wrong the file extension.\n                            self.fail(msg=f'\\033[1;31m{conf}\\033[m should be renamed as \\033[1;31m{conf[:-4]}yml\\033[m')\n                        if not conf.endswith('.yml'):\n                            continue\n                        conference_yml_path = os.path.join(DATA_ROOT, sub, conf)\n                        with open(conference_yml_path, 'r') as conference_yml_file:\n                            try:\n                                conference_yml = yaml.load(conference_yml_file.read(), Loader=yaml.SafeLoader)\n                            except Exception:\n                                self.fail(msg=f'Conference \\033[1;31m{conf}\\033[m contains invalid YAML')\n                            try:\n                                jsonschema.validate(conference_yml, YAML_SCHEMA)\n                            except jsonschema.exceptions.ValidationError:\n                                self.fail(msg=f'Conference \\033[1;31m{conf}\\033[m contains invalid properties')\n\n\ndef run_test(testcase, msg):\n    output = StringIO()\n    suite = TestLoader().loadTestsFromTestCase(testcase)\n    runner = TextTestRunner(output, verbosity=0)\n    results = runner.run(suite)\n    if not results.wasSuccessful():\n        print(output.getvalue())\n        print(msg.format(len(results.failures)))\n        sys.exit(1)\n\n\ndef usage():\n    print(__doc__)\n\n\nif __name__ == '__main__':\n\n    if '-h' in sys.argv or '--help' in sys.argv:\n        usage()\n        sys.exit(0)\n\n    load_conference_yaml_schema()\n    run_test(ConferenceTest,\n             msg=('\\033[1;31mThere are {0} error(s) inside repo. Please fix the errors and commit again.\\033[m'))\n"
  },
  {
    "path": "src/components/calendar_popover.rs",
    "content": "use leptos::prelude::*;\nuse thaw::*;\n\n#[component]\npub fn CalendarPopover(\n    google_calendar_url: Option<String>,\n    icloud_calendar_url: Option<String>,\n    is_mobile: RwSignal<bool>,\n) -> impl IntoView {\n    let show_popover = RwSignal::new(false);\n\n    view! {\n        <div\n            class=\"calendar-popover-container\"\n            on:click=move |_| {\n                if is_mobile.get() {\n                    show_popover.update(|v| *v = !*v);\n                } else {\n                    show_popover.set(false);\n                }\n            }\n            on:mouseenter=move |_| {\n                if !is_mobile.get() {\n                    show_popover.set(true);\n                }\n            }\n            on:mouseleave=move |_| {\n                if !is_mobile.get() {\n                    show_popover.set(false);\n                }\n            }\n        >\n            <Icon icon=icondata::VsCalendar style=\"margin-left: 5px; cursor: pointer\" />\n\n            {move || {\n                let google_calendar_url_clone = google_calendar_url.clone();\n                let icloud_calendar_url_clone = icloud_calendar_url.clone();\n\n                if show_popover.get() {\n                    view! {\n                        <div class=\"calendar-popover\">\n                            <div>\n                                <div style=\"margin-bottom: 8px; font-weight: 500; color: #666; font-size: 12px;\">\n                                    \"Add to Calendar:\"\n                                </div>\n\n                                // Google Calendar\n                                <div style=\"margin-bottom: 8px; display: flex; align-items: center;\">\n                                    <img\n                                        src=\"//ssl.gstatic.com/calendar/images/dynamiclogo_2020q4/calendar_31_2x.png#\"\n                                        alt=\"Google Calendar\"\n                                        style=\"width: 16px; height: 16px; vertical-align: middle; margin-right: 8px;\"\n                                    />\n                                    <a\n                                        href=google_calendar_url_clone\n                                        target=\"_blank\"\n                                        style=\"text-decoration: none; border-bottom: 1px solid #ccc; color: inherit;\"\n                                    >\n                                        \"Google Calendar\"\n                                    </a>\n                                </div>\n\n                                // iCloud Calendar\n                                <div style=\"display: flex; align-items: center;\">\n                                    <img\n                                        src=\"https://help.apple.com/assets/61526E8E1494760B754BD308/61526E8F1494760B754BD30F/zh_CN/2162f7d3de310d2b3503c0bbebdc3d56.png\"\n                                        alt=\"iCloud Calendar\"\n                                        style=\"width: 16px; height: 16px; vertical-align: middle; margin-right: 8px;\"\n                                    />\n                                    <a\n                                        href=icloud_calendar_url_clone\n                                        style=\"text-decoration: none; border-bottom: 1px solid #ccc; color: inherit;\"\n                                    >\n                                        \"iCloud Calendar\"\n                                    </a>\n                                </div>\n                            </div>\n\n                            <div class=\"calendar-popover-arrow\"></div>\n                        </div>\n\n                        <style>\n                            \".calendar-popover-container {\n                                position: relative;\n                                display: inline-block;\n                            }\n\n                            .calendar-popover {\n                                position: absolute;\n                                top: 50%;\n                                left: calc(100% + 8px);\n                                transform: translateY(-50%);\n                                background: rgba(255, 255, 255, 0.95);\n                                backdrop-filter: blur(20px);\n                                border: 1px solid rgba(0, 0, 0, 0.1);\n                                color: #333;\n                                padding: 16px;\n                                border-radius: 12px;\n                                font-size: 13px;\n                                font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n                                z-index: 1000;\n                                min-width: 140px;\n                                max-width: 140px;\n                                box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15), 0 2px 8px rgba(0, 0, 0, 0.1);\n                                line-height: 1.4;\n                                animation: popover-appear 0.15s ease-out;\n                            }\n\n                            .calendar-popover-arrow {\n                                position: absolute;\n                                right: 100%;\n                                top: 50%;\n                                transform: translateY(-50%);\n                                width: 0;\n                                height: 0;\n                                border-top: 8px solid transparent;\n                                border-bottom: 8px solid transparent;\n                                border-right: 8px solid rgba(255, 255, 255, 0.95);\n                                filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.05));\n                            }\n\n                            /* 移动端样式 */\n                            @media (max-width: 768px) {\n                                .calendar-popover {\n                                    left: auto;\n                                    right: calc(100% + 8px);\n                                }\n\n                                .calendar-popover-arrow {\n                                    right: auto;\n                                    left: 100%;\n                                    border-right: none;\n                                    border-left: 8px solid rgba(255, 255, 255, 0.95);\n                                }\n                            }\n\n                            @keyframes popover-appear {\n                                from {\n                                    opacity: 0;\n                                    transform: translateY(-50%) translateX(-4px) scale(0.95);\n                                }\n                                to {\n                                    opacity: 1;\n                                    transform: translateY(-50%) translateX(0) scale(1);\n                                }\n                            }\n                            \"\n                        </style>\n                    }.into_any()\n                } else {\n                    view! { <div></div> }.into_any()\n                }\n            }}\n        </div>\n    }\n}\n"
  },
  {
    "path": "src/components/checkbox_button.rs",
    "content": "use leptos::prelude::*;\nuse std::collections::HashSet;\n\nconst NON_RANK_VALUE: &str = \"N\";\n\n#[derive(Clone, PartialEq, Eq)]\npub struct FilterDropdownOption {\n    pub value: &'static str,\n    pub label: &'static str,\n    pub summary_label: &'static str,\n}\n\npub fn normalize_rank_filter_selection(selected_values: &mut HashSet<String>) {\n    if selected_values.contains(NON_RANK_VALUE) && selected_values.len() > 1 {\n        selected_values.remove(NON_RANK_VALUE);\n    }\n}\n\npub fn ccf_filter_options() -> Vec<FilterDropdownOption> {\n    vec![\n        FilterDropdownOption {\n            value: \"A\",\n            label: \"CCF A\",\n            summary_label: \"A\",\n        },\n        FilterDropdownOption {\n            value: \"B\",\n            label: \"CCF B\",\n            summary_label: \"B\",\n        },\n        FilterDropdownOption {\n            value: \"C\",\n            label: \"CCF C\",\n            summary_label: \"C\",\n        },\n        FilterDropdownOption {\n            value: \"N\",\n            label: \"Non-CCF\",\n            summary_label: \"Non\",\n        },\n    ]\n}\n\npub fn core_filter_options() -> Vec<FilterDropdownOption> {\n    vec![\n        FilterDropdownOption {\n            value: \"A*\",\n            label: \"CORE A*\",\n            summary_label: \"A*\",\n        },\n        FilterDropdownOption {\n            value: \"A\",\n            label: \"CORE A\",\n            summary_label: \"A\",\n        },\n        FilterDropdownOption {\n            value: \"B\",\n            label: \"CORE B\",\n            summary_label: \"B\",\n        },\n        FilterDropdownOption {\n            value: \"C\",\n            label: \"CORE C\",\n            summary_label: \"C\",\n        },\n        FilterDropdownOption {\n            value: \"N\",\n            label: \"Non-CORE\",\n            summary_label: \"Non\",\n        },\n    ]\n}\n\npub fn thcpl_filter_options() -> Vec<FilterDropdownOption> {\n    vec![\n        FilterDropdownOption {\n            value: \"A\",\n            label: \"THCPL A\",\n            summary_label: \"A\",\n        },\n        FilterDropdownOption {\n            value: \"B\",\n            label: \"THCPL B\",\n            summary_label: \"B\",\n        },\n        FilterDropdownOption {\n            value: \"N\",\n            label: \"Non-THCPL\",\n            summary_label: \"Non\",\n        },\n    ]\n}\n\n#[component]\npub fn MultiSelectDropdown(\n    dropdown_id: String,\n    title: String,\n    options: Vec<FilterDropdownOption>,\n    selected_values: RwSignal<HashSet<String>>,\n    use_english: RwSignal<bool>,\n    panel_width: String,\n    open_dropdown: RwSignal<Option<String>>,\n) -> impl IntoView {\n    let dropdown_id_for_open = dropdown_id.clone();\n    let is_open =\n        Memo::new(move |_| open_dropdown.get().as_deref() == Some(dropdown_id_for_open.as_str()));\n    let options_for_summary = options.clone();\n    let title_for_summary = title.clone();\n    let title_for_panel = title.clone();\n    let options_for_render = StoredValue::new(options.clone());\n    let summary = Memo::new(move |_| {\n        let selected = selected_values.get();\n        let selected_labels: Vec<&str> = options_for_summary\n            .iter()\n            .filter(|option| selected.contains(option.value))\n            .map(|option| option.summary_label)\n            .collect();\n\n        match selected_labels.len() {\n            0 => title_for_summary.clone(),\n            1 => format!(\"{title_for_summary} {}\", selected_labels[0]),\n            2 => format!(\n                \"{title_for_summary} {},{}\",\n                selected_labels[0], selected_labels[1]\n            ),\n            _ => format!(\n                \"{title_for_summary} {},{}+{}\",\n                selected_labels[0],\n                selected_labels[1],\n                selected_labels.len() - 2\n            ),\n        }\n    });\n\n    let has_selection = Memo::new(move |_| !selected_values.get().is_empty());\n    let clear_label = Memo::new(move |_| {\n        if use_english.get() {\n            \"Clear\".to_string()\n        } else {\n            \"清空\".to_string()\n        }\n    });\n    let dropdown_id_for_toggle = dropdown_id.clone();\n\n    view! {\n        <div class=\"filter-dropdown\" style=format!(\"--filter-panel-width: {panel_width};\")>\n            <button\n                type=\"button\"\n                class=move || {\n                if has_selection.get() {\n                        if is_open.get() {\n                            \"filter-dropdown-trigger active open\"\n                        } else {\n                            \"filter-dropdown-trigger active\"\n                        }\n                } else {\n                        if is_open.get() {\n                            \"filter-dropdown-trigger open\"\n                        } else {\n                            \"filter-dropdown-trigger\"\n                        }\n                    }\n                }\n                on:click=move |_| {\n                    if is_open.get_untracked() {\n                        open_dropdown.set(None);\n                    } else {\n                        open_dropdown.set(Some(dropdown_id_for_toggle.clone()));\n                    }\n                }\n            >\n                <span class=\"filter-dropdown-trigger-text\">{move || summary.get()}</span>\n                <span class=\"filter-dropdown-trigger-icon\">\"▾\"</span>\n            </button>\n\n            <Show when=move || is_open.get()>\n                <div class=\"filter-dropdown-panel\">\n                    <div class=\"filter-dropdown-panel-header\">\n                        <span>{title_for_panel.clone()}</span>\n                        <button\n                            type=\"button\"\n                            class=\"filter-dropdown-clear\"\n                            on:click=move |_| {\n                                selected_values.set(HashSet::new());\n                            }\n                            disabled=move || !has_selection.get()\n                        >\n                            {move || clear_label.get()}\n                        </button>\n                    </div>\n\n                    <div class=\"filter-dropdown-options\">\n                        {move || {\n                            options_for_render\n                                .get_value()\n                                .into_iter()\n                                .map(|option| {\n                                    let value = option.value.to_string();\n                                    let label = option.label.to_string();\n                                    let value_for_checked = value.clone();\n                                    let value_for_update = value.clone();\n\n                                    view! {\n                                        <label class=\"filter-dropdown-option\">\n                                            <input\n                                                type=\"checkbox\"\n                                                prop:checked=move || {\n                                                    selected_values.get().contains(&value_for_checked)\n                                                }\n                                                on:change=move |_| {\n                                                    selected_values.update(|set| {\n                                                        if set.contains(&value_for_update) {\n                                                            set.remove(&value_for_update);\n                                                        } else {\n                                                            if value_for_update == NON_RANK_VALUE {\n                                                                set.clear();\n                                                            } else {\n                                                                set.remove(NON_RANK_VALUE);\n                                                            }\n                                                            set.insert(value_for_update.clone());\n                                                        }\n                                                    });\n                                                }\n                                            />\n                                            <span>{label}</span>\n                                        </label>\n                                    }\n                                })\n                                .collect_view()\n                        }}\n                    </div>\n                </div>\n            </Show>\n        </div>\n\n        <style>\n            {r#\"\n            .filter-dropdown {\n              position: relative;\n            }\n\n            .filter-dropdown-trigger {\n              display: inline-flex;\n              align-items: center;\n              justify-content: space-between;\n              gap: 6px;\n              min-width: 88px;\n              max-width: 132px;\n              padding: 5px 8px;\n              border: 1px solid #d9d9d9;\n              border-radius: 6px;\n              background: #fff;\n              color: #666;\n              cursor: pointer;\n              user-select: none;\n              text-align: left;\n              font-size: 11px;\n              font-weight: 500;\n              transition: border-color 0.2s, color 0.2s, box-shadow 0.2s;\n            }\n\n            .filter-dropdown-trigger:hover,\n            .filter-dropdown-trigger.open {\n              border-color: #1890ff;\n              color: #1890ff;\n            }\n\n            .filter-dropdown-trigger.active {\n              border-color: #1890ff;\n              color: #1890ff;\n              background: #f2f8ff;\n            }\n\n            .filter-dropdown-trigger-text {\n              overflow: hidden;\n              text-overflow: ellipsis;\n              white-space: nowrap;\n            }\n\n            .filter-dropdown-trigger-icon {\n              color: inherit;\n              font-size: 10px;\n              transition: transform 0.2s;\n            }\n\n            .filter-dropdown-trigger.open .filter-dropdown-trigger-icon {\n              transform: rotate(180deg);\n            }\n\n            .filter-dropdown-panel {\n              position: absolute;\n              right: 0;\n              top: calc(100% + 6px);\n              width: var(--filter-panel-width, 220px);\n              padding: 8px;\n              border: 1px solid #e5e7eb;\n              border-radius: 8px;\n              background: #fff;\n              box-shadow: 0 10px 24px rgba(15, 23, 42, 0.1);\n              z-index: 20;\n            }\n\n            .filter-dropdown-panel-header {\n              display: flex;\n              align-items: center;\n              justify-content: space-between;\n              gap: 6px;\n              margin-bottom: 6px;\n              font-size: 11px;\n              font-weight: 600;\n              color: #475569;\n            }\n\n            .filter-dropdown-clear {\n              border: none;\n              background: transparent;\n              color: #1890ff;\n              cursor: pointer;\n              font-size: 11px;\n              padding: 0;\n            }\n\n            .filter-dropdown-clear:disabled {\n              color: #94a3b8;\n              cursor: default;\n            }\n\n            .filter-dropdown-options {\n              display: flex;\n              flex-direction: column;\n              gap: 4px;\n            }\n\n            .filter-dropdown-option {\n              display: flex;\n              align-items: center;\n              gap: 6px;\n              padding: 5px 6px;\n              border-radius: 6px;\n              color: #334155;\n              font-size: 12px;\n              cursor: pointer;\n            }\n\n            .filter-dropdown-option:hover {\n              background: #f8fafc;\n            }\n\n            .filter-dropdown-option input {\n              margin: 0;\n            }\n            \"#}\n        </style>\n    }\n}\n"
  },
  {
    "path": "src/components/conf.rs",
    "content": "use chrono::prelude::*;\nuse serde::{Deserialize, Serialize};\n\n#[derive(Debug, Serialize, Deserialize)]\npub struct Conference {\n    pub title: String,\n    pub description: String,\n    pub sub: String,\n    pub rank: Rank,\n    pub dblp: String,\n    pub confs: Vec<ConferenceYear>,\n}\n\n#[derive(Debug, Serialize, Deserialize)]\npub struct Rank {\n    pub ccf: String,\n    pub core: Option<String>,\n    pub thcpl: Option<String>,\n}\n\n#[derive(Debug, Serialize, Deserialize)]\npub struct ConferenceYear {\n    pub year: i32,\n    pub id: String,\n    pub link: String,\n    pub timeline: Vec<Timeline>,\n    pub timezone: String,\n    pub date: String,\n    pub place: String,\n}\n\n#[derive(Debug, Serialize, Deserialize)]\npub struct ConfAccRate {\n    pub title: String,\n    pub accept_rates: Vec<AccYear>,\n}\n\n#[derive(Debug, Serialize, Deserialize)]\npub struct AccYear {\n    pub year: i32,\n    pub submitted: i32,\n    pub accepted: i32,\n    pub str: String,\n    pub rate: String,\n    pub source: Option<String>,\n}\n\n#[derive(Debug, Serialize, Deserialize, Clone)]\npub struct Timeline {\n    pub abstract_deadline: Option<String>,\n    pub deadline: String,\n    pub comment: Option<String>,\n}\n\n#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]\npub struct Category {\n    pub name: String,\n    pub name_en: String,\n    pub sub: String,\n}\n\n#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]\npub struct TimePoint {\n    pub timepoint: DateTime<FixedOffset>,\n    pub r#type: i32,\n}\n\n#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]\npub struct ConfItem {\n    pub title: String,\n    pub description: String,\n    pub sub: String,\n    pub rank: String,\n    pub corerank: Option<String>,\n    pub thcplrank: Option<String>,\n    pub displayrank: String,\n    pub dblp: String,\n    pub year: i32,\n    pub id: String,\n    pub link: String,\n    pub abstract_deadline: Option<String>,\n    pub deadline: String,\n    pub comment: Option<String>,\n    pub timezone: String,\n    pub date: String,\n    pub place: String,\n    pub status: String, // \"RUN\", \"FIN\", \"TBD\"\n    pub is_like: bool,\n    pub remain: u64,\n    pub local_ddl: Option<String>,\n    pub origin_ddl: Option<String>,\n    pub subname: String,\n    pub subname_en: String,\n    pub google_calendar_url: Option<String>,\n    pub icloud_calendar_url: Option<String>,\n    pub acc_str: Option<String>,\n    pub ddls: Vec<TimePoint>,\n}\n\npub async fn fetch_all_conf(\n    base_url: &String,\n) -> Result<Vec<Conference>, Box<dyn std::error::Error>> {\n    let url = format!(\"{}/conference/allconf.yml\", base_url);\n    let response = reqwest::get(url).await?;\n    let contents = response.text().await?;\n\n    let conferences: Vec<Conference> = serde_yaml::from_str(&contents)?;\n    Ok(conferences)\n}\n\npub async fn fetch_all_acc(\n    base_url: &String,\n) -> Result<Vec<ConfAccRate>, Box<dyn std::error::Error>> {\n    let url = format!(\"{}/conference/allacc.yml\", base_url);\n    let response = reqwest::get(url).await?;\n    let contents = response.text().await?;\n\n    let accs: Vec<ConfAccRate> = serde_yaml::from_str(&contents)?;\n    Ok(accs)\n}\n\npub fn get_categories() -> Vec<Category> {\n    vec![\n        Category {\n            name: \"计算机体系结构/并行与分布计算/存储系统\".to_string(),\n            name_en: \"Computer Architecture\".to_string(),\n            sub: \"DS\".to_string(),\n        },\n        Category {\n            name: \"计算机网络\".to_string(),\n            name_en: \"Network System\".to_string(),\n            sub: \"NW\".to_string(),\n        },\n        Category {\n            name: \"网络与信息安全\".to_string(),\n            name_en: \"Network and System Security\".to_string(),\n            sub: \"SC\".to_string(),\n        },\n        Category {\n            name: \"软件工程/系统软件/程序设计语言\".to_string(),\n            name_en: \"Software Engineering\".to_string(),\n            sub: \"SE\".to_string(),\n        },\n        Category {\n            name: \"数据库/数据挖掘/内容检索\".to_string(),\n            name_en: \"Database\".to_string(),\n            sub: \"DB\".to_string(),\n        },\n        Category {\n            name: \"计算机科学理论\".to_string(),\n            name_en: \"Computing Theory\".to_string(),\n            sub: \"CT\".to_string(),\n        },\n        Category {\n            name: \"计算机图形学与多媒体\".to_string(),\n            name_en: \"Graphics\".to_string(),\n            sub: \"CG\".to_string(),\n        },\n        Category {\n            name: \"人工智能\".to_string(),\n            name_en: \"Artificial Intelligence\".to_string(),\n            sub: \"AI\".to_string(),\n        },\n        Category {\n            name: \"人机交互与普适计算\".to_string(),\n            name_en: \"Computer-Human Interaction\".to_string(),\n            sub: \"HI\".to_string(),\n        },\n        Category {\n            name: \"交叉/综合/新兴\".to_string(),\n            name_en: \"Interdiscipline\".to_string(),\n            sub: \"MX\".to_string(),\n        },\n    ]\n}\n\n#[allow(dead_code)]\npub async fn fetch_all_category() -> Result<Vec<Category>, Box<dyn std::error::Error>> {\n    // Fetch the YAML from the URL\n    let url = \"https://raw.githubusercontent.com/ccfddl/ccfddl.github.io/page/conference/types.yml\";\n    let response = reqwest::get(url).await?;\n    let contents = response.text().await?;\n\n    // Deserialize YAML into Vec<Conference>\n    let conferences: Vec<Category> = serde_yaml::from_str(&contents)?;\n    Ok(conferences)\n}\n"
  },
  {
    "path": "src/components/countdown.rs",
    "content": "use leptos::prelude::*;\nuse std::time::Duration;\n\n/// Countdown timer component.\n#[component]\npub fn CountDown(\n    /// The remaining time in seconds.\n    remain: u64,\n) -> impl IntoView {\n    let remaining_time = RwSignal::new(remain / 1000);\n\n    use_interval(1000, move || {\n        remaining_time.update(|r| {\n            if *r > 0 {\n                *r -= 1;\n            }\n        });\n    });\n\n    let display_time = move || {\n        let mut secs = remaining_time.get();\n        let days = secs / (24 * 3600);\n        secs %= 24 * 3600;\n        let hours = secs / 3600;\n        secs %= 3600;\n        let minutes = secs / 60;\n        let seconds = secs % 60;\n\n        let day_string = if days > 1 { \"days\" } else { \"day\" };\n\n        format!(\n            \"{:02} {} {:02} h {:02} m {:02} s\",\n            days, day_string, hours, minutes, seconds\n        )\n    };\n\n    view! { <span> {display_time} </span> }\n}\n\n/// A hook to create a reactive interval.\npub fn use_interval<T, F>(interval_millis: T, f: F)\nwhere\n    F: Fn() + Clone + 'static,\n    T: Into<Signal<u64>> + 'static,\n{\n    let interval_millis = interval_millis.into();\n    Effect::new(move |prev_handle: Option<IntervalHandle>| {\n        if let Some(prev_handle) = prev_handle {\n            prev_handle.clear();\n        }\n\n        set_interval_with_handle(f.clone(), Duration::from_millis(interval_millis.get()))\n            .expect(\"could not create interval\")\n    });\n}\n"
  },
  {
    "path": "src/components/gitbutton.rs",
    "content": "use leptos::prelude::*;\n\n#[component]\npub fn GitButton() -> impl IntoView {\n    view! {\n        <iframe\n            src=\"https://ghbtns.com/github-btn.html?user=ccfddl&repo=ccf-deadlines&type=star&count=true&size=large\"\n            width=\"170\"\n            height=\"30\"\n            title=\"GitHub\"\n            class=\"github-iframe\"\n        />\n    }\n}\n"
  },
  {
    "path": "src/components/header.rs",
    "content": "use leptos::prelude::*;\nuse serde::{Deserialize, Serialize};\nuse wasm_bindgen_futures::spawn_local;\n\nuse crate::components::gitbutton::GitButton;\n\n#[derive(Debug, Deserialize, Serialize, Clone)]\nstruct CommitData {\n    commit: CommitInfo,\n}\n\n#[derive(Debug, Deserialize, Serialize, Clone)]\nstruct CommitInfo {\n    message: String,\n}\n\n#[component]\npub fn Header() -> impl IntoView {\n    let (show_latest_conf, set_show_latest_conf) = signal(false);\n    let (show_str, set_show_str) = signal(String::new());\n\n    // Effect to fetch GitHub commits data on mount\n    Effect::new(move |_| {\n        spawn_local(async move {\n            match fetch_latest_commit().await {\n                Ok((show_conf, conf_str)) => {\n                    set_show_latest_conf.set(show_conf);\n                    set_show_str.set(conf_str);\n                }\n                Err(_) => {}\n            }\n        });\n    });\n\n    view! {\n        <section>\n            <div style=\"display: inline-block; align-items: center; font-size: 16px;\">\n                <a href=\"/\" class=\"title\">\n                    \"CCFDDL\"\n                    <sup>\"®\"</sup>\n                    \"\\u{00a0}Open Deadlines\"\n                </a>\n                <div style=\"padding-left: 5px; display: inline-block;\">\n                    <GitButton />\n                </div>\n                {move || {\n                    show_latest_conf\n                        .get()\n                        .then(|| {\n                            view! {\n                                <span style=\"display: inline-block; color:#fd3c95;font-weight: bold; font-size: 16px;\">\n                                    \"Latest: \" {show_str.get()} \" !!!\"\n                                </span>\n                            }\n                        })\n                }}\n            </div>\n            <div class=\"el-row subtitle\">\n                \"Worldwide Conference Deadline Countdowns. To add/edit a conference,\\u{00a0}\"\n                <a\n                    style=\"color: #666666\"\n                    href=\"https://github.com/ccfddl/ccf-deadlines/pulls\"\n                    target=\"_blank\"\n                >\n                    \"send a pull request\"\n                </a> \".\"\n            </div>\n            <div class=\"el-row subtitle\">\n                \"Preview tabular portal:\\u{00a0}\"\n                <a style=\"color: #666666\" href=\"https://ccfddl.cn/\" target=\"_blank\">\n                    \"https://ccfddl.cn/\"\n                </a> \", or scan to try\\u{00a0}\"\n                <a\n                    style=\"color: #666666\"\n                    href=\"https://github.com/ccfddl/ccf-deadlines/blob/main/.readme_assets/applet_qrcode.jpg\"\n                    target=\"_blank\"\n                >\n                    \"wechat applet\"\n                </a> \".\"\n            </div>\n            <div class=\"el-row subtitle\">\n                \"*Disclaimer: The data provided by ccfddl is manually collected and for reference purposes only.\"\n            </div>\n        </section>\n    }\n}\n\nasync fn fetch_latest_commit() -> Result<(bool, String), Box<dyn std::error::Error>> {\n    let url = \"https://api.github.com/repos/ccfddl/ccf-deadlines/commits?page=1&per_page=10\";\n\n    let response = reqwest::get(url).await?;\n    let commits: Vec<CommitData> = response.json().await?;\n\n    for commit in commits {\n        let message = commit.commit.message;\n        let words: Vec<&str> = message.split_whitespace().collect();\n\n        if !words.is_empty() {\n            let first_word: String = words[0].to_lowercase();\n            if first_word == \"update\" || first_word == \"add\" {\n                let mut result_str: String = message[..].to_string();\n                if let Some(idx) = message.find('(') {\n                    result_str = message[..idx].to_string();\n                }\n                return Ok((true, result_str));\n            }\n        }\n    }\n\n    Ok((false, String::new()))\n}\n"
  },
  {
    "path": "src/components/mod.rs",
    "content": "pub mod calendar_popover;\npub mod checkbox_button;\npub mod conf;\npub mod countdown;\npub mod gitbutton;\npub mod header;\npub mod showtable;\npub mod subscription_modal;\npub mod timeline;\npub mod timezone;\n"
  },
  {
    "path": "src/components/showtable.rs",
    "content": "use crate::components::calendar_popover::*;\nuse crate::components::checkbox_button::*;\nuse crate::components::conf::ConfItem;\nuse crate::components::conf::*;\nuse crate::components::countdown::CountDown;\nuse crate::components::subscription_modal::*;\nuse crate::components::timeline::*;\nuse crate::components::timezone::*;\nuse chrono::{DateTime, FixedOffset};\nuse leptos::prelude::*;\nuse serde_json;\nuse std::collections::HashMap;\nuse std::collections::HashSet;\nuse thaw::*;\nuse urlencoding::encode;\nuse wasm_bindgen::prelude::*;\nuse wasm_bindgen_futures::spawn_local;\nuse web_sys::{console, window};\n\n#[component]\npub fn ShowTable() -> impl IntoView {\n    // mobile\n    let is_mobile = RwSignal::new(false);\n\n    // switch\n    let cached_use_english = get_from_local_storage(\"use_english\");\n    let use_english = RwSignal::new(\n        cached_use_english\n            .as_deref()\n            .and_then(|s| s.parse::<bool>().ok())\n            .unwrap_or(false),\n    );\n\n    // checkbox\n    let sub_list = RwSignal::new(get_categories());\n    let cached_check_list: HashSet<String> = get_from_local_storage(\"types\")\n        .and_then(|data| serde_json::from_str(&data).ok())\n        .unwrap_or_else(|| HashSet::new());\n    let check_list = RwSignal::new(cached_check_list);\n    let is_all_checked_memo = Memo::new(move |_| {\n        let total_count = sub_list.get().len();\n        let checked_count = check_list.get().len();\n        total_count > 0 && checked_count == total_count\n    });\n\n    let is_all_checked = RwSignal::new(false);\n\n    Effect::new(move |_| {\n        is_all_checked.set(is_all_checked_memo.get());\n    });\n\n    let handle_check_all = move |_| {\n        if is_all_checked_memo.get_untracked() {\n            check_list.set(HashSet::new());\n        } else {\n            let all_subs: HashSet<String> = sub_list\n                .get_untracked()\n                .iter()\n                .map(|s| s.sub.clone())\n                .collect();\n            check_list.set(all_subs);\n        }\n    };\n\n    // input\n    let input_value = RwSignal::new(String::new());\n\n    // checkboxbutton\n    let mut cached_rank_list: HashSet<String> = get_from_local_storage(\"ranks\")\n        .and_then(|data| serde_json::from_str(&data).ok())\n        .unwrap_or_else(|| HashSet::new());\n    normalize_rank_filter_selection(&mut cached_rank_list);\n    let rank_list = RwSignal::new(cached_rank_list);\n    let mut cached_core_rank_list: HashSet<String> = get_from_local_storage(\"core_ranks\")\n        .and_then(|data| serde_json::from_str(&data).ok())\n        .unwrap_or_else(|| HashSet::new());\n    normalize_rank_filter_selection(&mut cached_core_rank_list);\n    let core_rank_list = RwSignal::new(cached_core_rank_list);\n    let mut cached_thcpl_rank_list: HashSet<String> = get_from_local_storage(\"thcpl_ranks\")\n        .and_then(|data| serde_json::from_str(&data).ok())\n        .unwrap_or_else(|| HashSet::new());\n    normalize_rank_filter_selection(&mut cached_thcpl_rank_list);\n    let thcpl_rank_list = RwSignal::new(cached_thcpl_rank_list);\n    let open_dropdown = RwSignal::new(None::<String>);\n\n    // liked\n    let cached_like_list: HashSet<String> = get_from_local_storage(\"likes\")\n        .and_then(|data| serde_json::from_str(&data).ok())\n        .unwrap_or_else(|| HashSet::new());\n    let like_list = RwSignal::new(cached_like_list);\n\n    let show_subscription_modal = RwSignal::new(false);\n\n    // pagination\n    let page = RwSignal::new(1);\n    let page_size = RwSignal::new(10);\n    let page_count = RwSignal::new(1);\n    let is_filter_change = RwSignal::new(false);\n\n    // table\n    let all_conf_list = RwSignal::new(Vec::<ConfItem>::new());\n\n    // timezone\n    let time_zone = RwSignal::new(String::new());\n\n    Effect::new(move |_| {\n        let _ = check_list.get();\n        let _ = input_value.get();\n        let _ = rank_list.get();\n        let _ = core_rank_list.get();\n        let _ = thcpl_rank_list.get();\n\n        if is_filter_change.get_untracked() {\n            page.set(1);\n        } else {\n            is_filter_change.set(true);\n        }\n    });\n\n    Effect::new(move |_| {\n        set_in_local_storage(\"use_english\", &use_english.get().to_string());\n        set_in_local_storage(\"types\", &serde_json::to_string(&check_list.get()).unwrap());\n        set_in_local_storage(\"ranks\", &serde_json::to_string(&rank_list.get()).unwrap());\n        set_in_local_storage(\n            \"core_ranks\",\n            &serde_json::to_string(&core_rank_list.get()).unwrap(),\n        );\n        set_in_local_storage(\n            \"thcpl_ranks\",\n            &serde_json::to_string(&thcpl_rank_list.get()).unwrap(),\n        );\n    });\n\n    Effect::new(move |_| {\n        set_in_local_storage(\"likes\", &serde_json::to_string(&like_list.get()).unwrap());\n    });\n\n    Effect::new(move |_| {\n        let _ = check_list.get();\n        let _ = input_value.get();\n        let _ = rank_list.get();\n        let _ = core_rank_list.get();\n        let _ = thcpl_rank_list.get();\n        let _ = page.get();\n\n        let (current_time, _) = get_browser_time_and_timezone();\n        let utc_map = load_utc_map();\n\n        all_conf_list.update(|conferences| {\n            for item in conferences.iter_mut() {\n                if item.deadline != \"TBD\" {\n                    let mut tz_str = item.timezone.clone();\n                    if tz_str == \"AoE\" {\n                        tz_str = \"UTC-12\".to_string();\n                    } else if tz_str == \"UTC\" {\n                        tz_str = \"UTC+0\".to_string();\n                    }\n\n                    if let Some(tz_offset) = utc_map.get(&tz_str) {\n                        let ddl_str = if item.deadline.contains(' ') {\n                            format!(\n                                \"{}T{}{}\",\n                                item.deadline.split(' ').nth(0).unwrap_or(\"\"),\n                                item.deadline.split(' ').nth(1).unwrap_or(\"00:00:00\"),\n                                tz_offset\n                            )\n                        } else {\n                            format!(\"{}T23:59:59{}\", item.deadline, tz_offset)\n                        };\n\n                        if let Ok(ddl_datetime) = DateTime::parse_from_rfc3339(&ddl_str) {\n                            let diff = ddl_datetime.signed_duration_since(current_time);\n                            if diff.num_milliseconds() <= 0 {\n                                item.remain = 0;\n                                item.status = \"FIN\".to_string();\n                            } else {\n                                item.remain = diff.num_milliseconds() as u64;\n                                item.status = \"RUN\".to_string();\n                            }\n                        }\n                    }\n                }\n            }\n        });\n    });\n\n    Effect::new(move || {\n        // mobile check\n        is_mobile.set(is_mobile_device());\n\n        // timezone\n        time_zone.set(get_timezone_name().unwrap());\n\n        spawn_local(async move {\n            let utc_map = load_utc_map();\n            let rank_options: HashMap<&str, &str> = [\n                (\"A\", \"CCF A\"),\n                (\"B\", \"CCF B\"),\n                (\"C\", \"CCF C\"),\n                (\"N\", \"Non-CCF\"),\n            ]\n            .iter()\n            .cloned()\n            .collect();\n\n            let (current_time, current_timezone) = get_browser_time_and_timezone();\n\n            // base_url\n            let window = web_sys::window().unwrap();\n            let location = window.location();\n            let base_url = location.origin().unwrap();\n\n            match fetch_all_conf(&base_url).await {\n                Ok(conferences) => {\n                    let mut conf_vec = Vec::new();\n\n                    for conf in conferences {\n                        let conf_items = conf.confs.iter().map(|year_conf| {\n                            let mut flag = false;\n                            let len = year_conf.timeline.len();\n                            let mut cur_deadline = year_conf.timeline[len - 1].deadline.clone();\n                            let mut cur_abstract_deadline =\n                                year_conf.timeline[len - 1].abstract_deadline.clone();\n                            let mut cur_comment = year_conf.timeline[len - 1].comment.clone();\n                            let mut ddl_vec = Vec::<TimePoint>::new();\n\n                            for timeline_item in year_conf.timeline.iter() {\n                                let tz_offset = utc_map.get(&year_conf.timezone).unwrap();\n\n                                let ddl_str = if timeline_item.deadline.contains(' ') {\n                                    format!(\n                                        \"{}T{}{}\",\n                                        timeline_item.deadline.split(' ').nth(0).unwrap(),\n                                        timeline_item.deadline.split(' ').nth(1).unwrap(),\n                                        tz_offset\n                                    )\n                                } else {\n                                    format!(\"{}T23:59:59{}\", timeline_item.deadline, tz_offset)\n                                };\n\n                                // abstract type:0 submission type:1\n                                if let Some(abs_ddl) = timeline_item.abstract_deadline.clone() {\n                                    let abs_ddl_str = if abs_ddl.contains(' ') {\n                                        format!(\n                                            \"{}T{}{}\",\n                                            abs_ddl.split(' ').nth(0).unwrap(),\n                                            abs_ddl.split(' ').nth(1).unwrap(),\n                                            tz_offset\n                                        )\n                                    } else {\n                                        format!(\"{}T23:59:59{}\", abs_ddl, tz_offset)\n                                    };\n\n                                    if let Ok(abs_ddl_datetime) =\n                                        DateTime::parse_from_rfc3339(&abs_ddl_str)\n                                    {\n                                        ddl_vec.push(TimePoint {\n                                            timepoint: abs_ddl_datetime\n                                                .with_timezone(&current_timezone)\n                                                .clone(),\n                                            r#type: 0,\n                                        });\n                                    }\n                                }\n\n                                if let Ok(ddl_datetime) = DateTime::parse_from_rfc3339(&ddl_str) {\n                                    ddl_vec.push(TimePoint {\n                                        timepoint: ddl_datetime\n                                            .with_timezone(&current_timezone)\n                                            .clone(),\n                                        r#type: 1,\n                                    });\n\n                                    let diff = ddl_datetime.signed_duration_since(current_time);\n                                    if !flag && diff.num_milliseconds() > 0 {\n                                        cur_deadline = timeline_item.deadline.clone();\n                                        cur_abstract_deadline =\n                                            timeline_item.abstract_deadline.clone();\n                                        cur_comment = timeline_item.comment.clone();\n                                        flag = true;\n                                    }\n                                }\n                            }\n\n                            ConfItem {\n                                title: conf.title.clone(),\n                                description: conf.description.clone(),\n                                sub: conf.sub.clone(),\n                                rank: conf.rank.ccf.clone(),\n                                corerank: conf.rank.core.clone(),\n                                thcplrank: conf.rank.thcpl.clone(),\n                                displayrank: rank_options\n                                    .get(conf.rank.ccf.as_str())\n                                    .unwrap()\n                                    .to_string(),\n                                dblp: conf.dblp.clone(),\n                                year: year_conf.year,\n                                id: year_conf.id.clone(),\n                                link: year_conf.link.clone(),\n                                abstract_deadline: cur_abstract_deadline,\n                                deadline: cur_deadline,\n                                comment: cur_comment,\n                                timezone: year_conf.timezone.clone(),\n                                date: year_conf.date.clone(),\n                                place: year_conf.place.clone(),\n                                status: \"\".to_string(), // Placeholder, should be determined based on current date\n                                is_like: like_list.get_untracked().contains(&year_conf.id),\n                                remain: 0,\n                                local_ddl: None,\n                                origin_ddl: None,\n                                subname: \"\".to_string(),\n                                subname_en: \"\".to_string(),\n                                google_calendar_url: None,\n                                icloud_calendar_url: None,\n                                acc_str: None,\n                                ddls: ddl_vec,\n                            }\n                        });\n                        conf_vec.extend(conf_items);\n                    }\n\n                    for item in conf_vec.iter_mut() {\n                        // subname\n                        if let Some(matched_category) = sub_list\n                            .get_untracked()\n                            .iter()\n                            .find(|sub_item| sub_item.sub == item.sub)\n                        {\n                            item.subname = matched_category.name.clone();\n                            item.subname_en = matched_category.name_en.clone();\n                        }\n\n                        if item.deadline == \"TBD\" {\n                            item.remain = 0;\n                            item.status = \"TBD\".to_string();\n                            continue;\n                        }\n\n                        let mut tz_str = item.timezone.clone();\n                        if tz_str == \"AoE\" {\n                            tz_str = \"UTC-12\".to_string();\n                        } else if tz_str == \"UTC\" {\n                            tz_str = \"UTC+0\".to_string();\n                        }\n\n                        // 4. Calculate deadlines and remaining time\n                        if let Some(tz_offset) = utc_map.get(&tz_str) {\n                            let ddl_str = if item.deadline.contains(' ') {\n                                format!(\n                                    \"{}T{}{}\",\n                                    item.deadline.split(' ').nth(0).unwrap_or(\"\"),\n                                    item.deadline.split(' ').nth(1).unwrap_or(\"00:00:00\"),\n                                    tz_offset\n                                )\n                            } else {\n                                format!(\"{}T23:59:59{}\", item.deadline, tz_offset)\n                            };\n\n                            if let Ok(ddl_datetime) = DateTime::parse_from_rfc3339(&ddl_str) {\n                                // Convert to browser local time and format\n                                let local_ddl_datetime =\n                                    ddl_datetime.with_timezone(&current_timezone);\n                                let formatted_date_time =\n                                    local_ddl_datetime.format(\"%Y-%m-%d %H:%M:%S\").to_string();\n                                let offset_seconds = local_ddl_datetime.offset().local_minus_utc();\n                                let offset_hours = offset_seconds / 3600;\n                                let formatted_timezone = format!(\"UTC{:+}\", offset_hours);\n\n                                item.local_ddl =\n                                    Some(format!(\"{} {}\", formatted_date_time, formatted_timezone));\n                                item.origin_ddl =\n                                    Some(format!(\"{} {}\", item.deadline, item.timezone));\n\n                                // Handle abstract deadline\n                                if let Some(abs_ddl) = &item.abstract_deadline {\n                                    let abs_ddl_str = if abs_ddl.contains(' ') {\n                                        format!(\n                                            \"{}T{}{}\",\n                                            abs_ddl.split(' ').nth(0).unwrap_or(\"\"),\n                                            abs_ddl.split(' ').nth(1).unwrap_or(\"00:00:00\"),\n                                            tz_offset\n                                        )\n                                    } else {\n                                        format!(\"{}T23:59:59{}\", abs_ddl, tz_offset)\n                                    };\n                                    if let Ok(abs_datetime) =\n                                        DateTime::parse_from_rfc3339(&abs_ddl_str)\n                                    {\n                                        let formatted_abs_ddl = abs_datetime\n                                            .with_timezone(&current_timezone)\n                                            .format(\"%b %e, %Y\")\n                                            .to_string();\n                                        if item.comment.is_none() {\n                                            item.comment = Some(format!(\n                                                \"abstract deadline on {}.\",\n                                                formatted_abs_ddl\n                                            ));\n                                        }\n                                    }\n                                }\n\n                                let diff = ddl_datetime.signed_duration_since(current_time);\n                                if diff.num_milliseconds() <= 0 {\n                                    item.remain = 0;\n                                    item.status = \"FIN\".to_string();\n                                } else {\n                                    item.remain = diff.num_milliseconds() as u64;\n                                    item.status = \"RUN\".to_string();\n                                }\n\n                                let iso_string =\n                                    local_ddl_datetime.format(\"%Y%m%dT%H%M%S\").to_string();\n\n                                item.google_calendar_url = Some(format!(\n                                    \"https://www.google.com/calendar/render?action=TEMPLATE&text={}&dates={}/{}&details={:?}&location=Online&ctz={}&sf=true&output=xml\",\n                                    encode(&format!(\"{} {}\", item.title, item.year)),\n                                    iso_string,\n                                    iso_string,\n                                    encode(&format!(\n                                        \"{} {}\",\n                                        item.comment.as_ref().map_or(\"\".to_string(), |c| c.clone()),\n                                        \"provided by @ccfddl\".to_string()\n                                    )),\n                                    time_zone.get_untracked(),\n                                ));\n\n                                item.icloud_calendar_url = Some(format!(\n                                    \"data:text/calendar;charset=utf8,BEGIN:VCALENDAR\\n\\\n                                    VERSION:2.0\\n\\\n                                    BEGIN:VEVENT\\n\\\n                                    URL:{}\\n\\\n                                    DTSTART:{}\\n\\\n                                    DTEND:{}\\n\\\n                                    SUMMARY:{}\\n\\\n                                    DESCRIPTION:{}\\n\\\n                                    LOCATION:{}\\n\\\n                                    END:VEVENT\\n\\\n                                    END:VCALENDAR\",\n                                    encode(\"https://ccfddl.github.io/\"),\n                                    iso_string,\n                                    iso_string,\n                                    encode(&format!(\"{} {} Deadline\", item.title, item.year)),\n                                    encode(item.comment.as_ref().map_or(\"\", |c| c.as_str())),\n                                    encode(\"\"),\n                                ));\n                            }\n                        }\n                    }\n                    all_conf_list.set(conf_vec);\n                }\n                Err(e) => {\n                    console::error_1(&format!(\"Error: {:?}\", e).into());\n                }\n            }\n\n            match fetch_all_acc(&base_url).await {\n                Ok(all_acc) => {\n                    for acc_item in all_acc {\n                        for cur_acc in &acc_item.accept_rates {\n                            all_conf_list.update(|conferences| {\n                                for item in conferences.iter_mut() {\n                                    for y in 1..=3 {\n                                        if item.title == acc_item.title\n                                            && item.year == cur_acc.year + y\n                                        {\n                                            item.acc_str = Some(cur_acc.str.clone());\n                                        }\n                                    }\n                                }\n                            });\n                        }\n                    }\n                }\n                Err(e) => {\n                    console::error_1(&format!(\"Error: {:?}\", e).into());\n                }\n            }\n        });\n    });\n\n    let paginated_list = Memo::new(move |_| {\n        let mut filtered_list = all_conf_list.get();\n\n        // Filtering\n        let checkbox_val = check_list.get();\n        if !checkbox_val.is_empty() {\n            filtered_list.retain(|item| checkbox_val.contains(&item.sub.to_uppercase()));\n        }\n\n        let rank_val = rank_list.get();\n        if !rank_val.is_empty() {\n            filtered_list.retain(|item| rank_val.contains(&item.rank));\n        }\n        let core_rank_val = core_rank_list.get();\n        if !core_rank_val.is_empty() {\n            filtered_list.retain(|item| {\n                let core_rank = item.corerank.as_deref().unwrap_or(\"N\");\n                core_rank_val.contains(core_rank)\n            });\n        }\n        let thcpl_rank_val = thcpl_rank_list.get();\n        if !thcpl_rank_val.is_empty() {\n            filtered_list.retain(|item| {\n                let thcpl_rank = item.thcplrank.as_deref().unwrap_or(\"N\");\n                thcpl_rank_val.contains(thcpl_rank)\n            });\n        }\n\n        let input_val = input_value.get();\n        if !input_val.is_empty() {\n            let input_lower = input_val.to_lowercase();\n            filtered_list.retain(|item| {\n                item.id.to_lowercase().contains(&input_lower)\n                    || item.title.to_lowercase().contains(&input_lower)\n            });\n        }\n\n        // Sorting and Grouping\n        let mut run_list: Vec<_> = filtered_list\n            .iter()\n            .filter(|item| item.status == \"RUN\".to_string())\n            .cloned()\n            .collect();\n        let tbd_list: Vec<_> = filtered_list\n            .iter()\n            .filter(|item| item.status == \"TBD\".to_string())\n            .cloned()\n            .collect();\n        let mut fin_list: Vec<_> = filtered_list\n            .iter()\n            .filter(|item| item.status == \"FIN\".to_string())\n            .cloned()\n            .collect();\n\n        run_list.sort_by(|a, b| a.remain.cmp(&b.remain));\n        fin_list.sort_by(|a, b| b.year.cmp(&a.year));\n\n        let mut all_list = Vec::new();\n        all_list.extend(run_list);\n        all_list.extend(tbd_list);\n        all_list.extend(fin_list);\n\n        let (liked_list, unliked_list): (Vec<_>, Vec<_>) =\n            all_list.into_iter().partition(|conf| conf.is_like);\n\n        let mut final_list = liked_list;\n        final_list.extend(unliked_list);\n\n        // Pagination\n        let total_count = final_list.len();\n        let page_val = page.get();\n        let page_size_val = page_size.get();\n        let start = (page_val - 1) as usize * page_size_val as usize;\n        let end = (start + page_size_val as usize).min(total_count);\n        page_count.set((total_count + page_size_val - 1) / page_size_val);\n\n        let paginated_list: Vec<ConfItem> = if start < total_count {\n            final_list[start..end].to_vec()\n        } else {\n            Vec::new()\n        };\n\n        paginated_list\n    });\n\n    let select_all_name = Memo::new(move |_| {\n        if use_english.get() {\n            \"Select All\".to_string()\n        } else {\n            \"全选\".to_string()\n        }\n    });\n\n    view! {\n        <section>\n            <div class=\"el-switch\">\n                <span class=(\"is_active\", move || !use_english.get())>\"中文\"</span>\n                <Switch checked=use_english />\n                <span class=(\"is_active\", move || use_english.get())>\"English\"</span>\n            </div>\n\n            <div class=\"checkbox-item\">\n                <label>\n                    <Checkbox\n                        size=CheckboxSize::Large\n                        checked=is_all_checked\n                        on:change=handle_check_all\n                        label=select_all_name\n                    />\n                </label>\n            </div>\n\n            <CheckboxGroup value=check_list>\n                <div style=\"display: flex; flex-wrap: wrap; justify-content: space-between;\">\n                    <For\n                        each=move || {\n                            sub_list\n                                .get()\n                                .into_iter()\n                                .enumerate()\n                                .collect::<Vec<(usize, Category)>>()\n                        }\n                        key=|(_, item)| item.sub.clone()\n                        children=move |(_, item)| {\n                            let sub = item.sub.clone();\n                            let label = Memo::new(move |_| {\n                                if is_mobile.get() {\n                                    sub.clone()\n                                } else if use_english.get() {\n                                    item.name_en.clone()\n                                } else {\n                                    item.name.clone()\n                                }\n                            });\n\n                            view! {\n                                <div class=\"checkbox-item\">\n                                    <label>\n                                        <Checkbox\n                                            size=CheckboxSize::Large\n                                            label=label\n                                            value=item.sub.clone()\n                                        />\n                                    </label>\n                                </div>\n                            }\n                        }\n                    />\n                </div>\n            </CheckboxGroup>\n\n            <div\n                class=\"timezone\"\n                style=\"padding-top: 15px; color: #666666; display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap;\"\n            >\n                <div\n                    style=\"display: flex; align-items: center; gap: 8px; flex-wrap: wrap; flex: 1 1 420px; min-width: 260px;\"\n                >\n                    <div style=\"font-size: 16px; line-height: 1.4;\">\n                        \"Deadlines are shown in \"{move || time_zone.get()}\" time.\"\n                    </div>\n                    <div style=\"flex: 1 1 240px; min-width: 220px; max-width: 320px;\">\n                        <Input\n                            value=input_value\n                            placeholder=\"search conference\"\n                            size=InputSize::Small\n                            class=\"custom-search-input\"\n                        >\n                            <InputPrefix slot>\n                                <Icon icon=icondata::FiSearch style=\"color: lightgray;\" />\n                            </InputPrefix>\n                        </Input>\n                    </div>\n                </div>\n\n                <div\n                    style=\"display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; margin-left: auto;\"\n                >\n                    <Button\n                        size=ButtonSize::Small\n                        appearance=ButtonAppearance::Subtle\n                        on_click=move |_| show_subscription_modal.set(true)\n                    >\n                        <Icon icon=icondata::AiCalendarOutlined style=\"margin-right: 4px;\" />\n                        {move || if use_english.get() { \"Subscribe\" } else { \"订阅\" }}\n                    </Button>\n                    <div\n                        style=\"display: flex; align-items: center; gap: 6px; flex-wrap: wrap; justify-content: flex-end;\"\n                    >\n                        <MultiSelectDropdown\n                            dropdown_id=\"ccf\".to_string()\n                            title=\"CCF\".to_string()\n                            options=ccf_filter_options()\n                            selected_values=rank_list\n                            use_english=use_english\n                            panel_width=\"180px\".to_string()\n                            open_dropdown=open_dropdown\n                        />\n                        <MultiSelectDropdown\n                            dropdown_id=\"core\".to_string()\n                            title=\"CORE\".to_string()\n                            options=core_filter_options()\n                            selected_values=core_rank_list\n                            use_english=use_english\n                            panel_width=\"188px\".to_string()\n                            open_dropdown=open_dropdown\n                        />\n                        <MultiSelectDropdown\n                            dropdown_id=\"thcpl\".to_string()\n                            title=\"THCPL\".to_string()\n                            options=thcpl_filter_options()\n                            selected_values=thcpl_rank_list\n                            use_english=use_english\n                            panel_width=\"196px\".to_string()\n                            open_dropdown=open_dropdown\n                        />\n                    </div>\n                </div>\n            </div>\n\n            <SubscriptionModal\n                show=show_subscription_modal\n                use_english=use_english\n                check_list=check_list\n                rank_list=rank_list\n                core_rank_list=core_rank_list\n                thcpl_rank_list=thcpl_rank_list\n            />\n\n            <div class=\"zonedivider\" />\n            <div style=\"width: 100%\">\n                <Table>\n                    <TableBody>\n                        {move || {\n                            if paginated_list.get().is_empty() {\n                                view! {\n                                    <TableRow>\n                                        <TableCell>\n                                            <div style=\"color: #909399; text-align: center;\">\n                                                \"No data available.\"\n                                            </div>\n                                        </TableCell>\n                                    </TableRow>\n                                }\n                                    .into_any()\n                            } else {\n                                view! {\n                                    <For\n                                        each=move || paginated_list.get()\n                                        key=|conf| {\n                                            format!(\"{}{}\", conf.title.clone(), conf.year.clone())\n                                        }\n                                        children=move |conf| {\n                                            let is_finished = conf.status == \"FIN\";\n                                            let is_tbd = conf.status == \"TBD\";\n                                            let ccf_rank_value = conf.rank.clone();\n                                            let ccf_rank_label = conf.displayrank.clone();\n                                            let core_rank_value = conf\n                                                .corerank\n                                                .clone()\n                                                .unwrap_or_else(|| \"N\".to_string());\n                                            let core_tag_label = if core_rank_value == \"N\" {\n                                                \"Non-CORE\".to_string()\n                                            } else {\n                                                format!(\"CORE {}\", core_rank_value.clone())\n                                            };\n                                            let thcpl_rank_value = conf\n                                                .thcplrank\n                                                .clone()\n                                                .unwrap_or_else(|| \"N\".to_string());\n                                            let thcpl_tag_label = if thcpl_rank_value == \"N\" {\n                                                \"Non-THCPL\".to_string()\n                                            } else {\n                                                format!(\"THCPL {}\", thcpl_rank_value.clone())\n                                            };\n                                            let show_ddl_str = if is_tbd {\n                                                \"TBD\".to_string()\n                                            } else {\n                                                format!(\n                                                    \"{} ({})\",\n                                                    conf.local_ddl.clone().unwrap(),\n                                                    conf.origin_ddl.clone().unwrap(),\n                                                )\n                                            };\n                                            view! {\n                                                <TableRow>\n                                                    <TableCell>\n                                                        <TableCellLayout>\n                                                            <div class=(\"conf-fin\", is_finished)>\n                                                                <div class=\"conf-title\">\n                                                                    <a\n                                                                        href=format!(\n                                                                            \"https://dblp.org/db/conf/{}\",\n                                                                            conf.dblp,\n                                                                        )\n                                                                        style=\"text-decoration: none; border-bottom: 1px solid #ccc; color: inherit;\"\n                                                                        target=\"_blank\"\n                                                                    >\n                                                                        {conf.title.clone()}\n                                                                    </a>\n                                                                    \" \"\n                                                                    {conf.year.clone()}\n                                                                    {move || {\n                                                                        let conf_title = conf.title.clone();\n                                                                        let conf_year = conf.year.clone();\n                                                                        let current_like = conf.is_like;\n                                                                        if !current_like {\n                                                                            view! {\n                                                                                <div\n                                                                                    style=\"display: inline;\"\n                                                                                    on:click=move |_| {\n                                                                                        all_conf_list\n                                                                                            .update(|conferences| {\n                                                                                                for item in conferences.iter_mut() {\n                                                                                                    if item.title == conf_title && item.year == conf_year {\n                                                                                                        item.is_like = true;\n                                                                                                        like_list\n                                                                                                            .update(|mut list| {\n                                                                                                                list.insert(item.id.clone());\n                                                                                                            });\n                                                                                                        break;\n                                                                                                    }\n                                                                                                }\n                                                                                            });\n                                                                                    }\n                                                                                >\n                                                                                    <Icon icon=icondata::BsStar style=\"margin-left: 5px;\" />\n                                                                                </div>\n                                                                            }\n                                                                                .into_any()\n                                                                        } else {\n                                                                            view! {\n                                                                                <div\n                                                                                    style=\"display: inline;\"\n                                                                                    on:click=move |_| {\n                                                                                        all_conf_list\n                                                                                            .update(|conferences| {\n                                                                                                for item in conferences.iter_mut() {\n                                                                                                    if item.title == conf_title && item.year == conf_year {\n                                                                                                        item.is_like = false;\n                                                                                                        like_list\n                                                                                                            .update(|mut list| {\n                                                                                                                list.remove(&item.id.clone());\n                                                                                                            });\n                                                                                                        break;\n                                                                                                    }\n                                                                                                }\n                                                                                            });\n                                                                                    }\n                                                                                >\n                                                                                    <Icon\n                                                                                        icon=icondata::BsStarFill\n                                                                                        style=\"color: rgb(251, 202, 4); margin-left: 5px;\"\n                                                                                    />\n                                                                                </div>\n                                                                            }\n                                                                                .into_any()\n                                                                        }\n                                                                    }}\n                                                                </div>\n\n                                                                <div style=\"font-size: 14px; color: #606266; margin-top: 3px;\">\n                                                                    {conf.date.clone()} \" \" {conf.place.clone()}\n                                                                </div>\n\n                                                                <div style=\"font-size: 14px; color: #606266; margin-top: 3px;\">\n                                                                    {conf.description.clone()}\n                                                                </div>\n\n                                                                <div class=\"tag-container\">\n                                                                    <span class=move || {\n                                                                        if rank_list.get().contains(&ccf_rank_value) {\n                                                                            \"tag-highlight\"\n                                                                        } else {\n                                                                            \"\"\n                                                                        }\n                                                                    }>\n                                                                        <Tag class=\"plain-tag\">\n                                                                            {ccf_rank_label.clone()}\n                                                                        </Tag>\n                                                                    </span>\n                                                                    \" \"\n                                                                    <span class=move || {\n                                                                        if core_rank_list.get().contains(&core_rank_value) {\n                                                                            \"tag-highlight\"\n                                                                        } else {\n                                                                            \"\"\n                                                                        }\n                                                                    }>\n                                                                        <Tag class=\"plain-tag\">\n                                                                            {core_tag_label.clone()}\n                                                                        </Tag>\n                                                                    </span>\n                                                                    \" \"\n                                                                    <span class=move || {\n                                                                        if thcpl_rank_list.get().contains(&thcpl_rank_value) {\n                                                                            \"tag-highlight\"\n                                                                        } else {\n                                                                            \"\"\n                                                                        }\n                                                                    }>\n                                                                        <Tag class=\"plain-tag\">\n                                                                            {thcpl_tag_label.clone()}\n                                                                        </Tag>\n                                                                    </span>\n                                                                    \" \"\n                                                                    {move || {\n                                                                        conf.comment\n                                                                            .as_ref()\n                                                                            .map(|comment| {\n                                                                                view! {\n                                                                                    <span style=\"color: #409eff\">\n                                                                                        <b>\"NOTE: \"</b>\n                                                                                        {comment.clone()}\n                                                                                    </span>\n                                                                                }\n                                                                            })\n                                                                    }}\n                                                                </div>\n\n                                                                <div style=\"padding-top: 5px; font-size: 14px; color: #606266;\">\n                                                                    {move || {\n                                                                        if let Some(ref acc) = conf.acc_str {\n                                                                            format!(\"Acc. Rate: {} \", acc)\n                                                                        } else {\n                                                                            \"\".to_string()\n                                                                        }\n                                                                    }}\n                                                                    <span style=\"color: rgb(36, 101, 191); background: rgba(236, 240, 241, 0.7); font-size: 13px; padding: 3px 5px;\">\n                                                                        {move || {\n                                                                            if use_english.get() {\n                                                                                conf.subname_en.clone()\n                                                                            } else {\n                                                                                conf.subname.clone()\n                                                                            }\n                                                                        }}\n                                                                    </span>\n                                                                </div>\n                                                            </div>\n                                                        </TableCellLayout>\n                                                    </TableCell>\n\n                                                    <TableCell>\n                                                        <TableCellLayout>\n\n                                                            <div class=(\n                                                                \"conf-fin\",\n                                                                is_finished,\n                                                            )>\n\n                                                                {move || {\n                                                                    if is_tbd {\n                                                                        view! {\n                                                                            <div class=\"countdown-container\">\n                                                                                <div class=\"countdown-display\">\n                                                                                    <span class=\"countdown-value\">\"TBD\"</span>\n                                                                                </div>\n                                                                            </div>\n                                                                        }\n                                                                            .into_any()\n                                                                    } else {\n                                                                        view! {\n                                                                            <div class=\"countdown-container\">\n                                                                                <div class=\"countdown-display\">\n                                                                                    <span class=\"countdown-value\">\n                                                                                        <CountDown remain=conf.remain.clone() />\n                                                                                        // <Icon icon=icondata::VsCalendar style=\"margin-left: 5px\"/>\n                                                                                        <CalendarPopover\n                                                                                            google_calendar_url=conf.google_calendar_url.clone()\n                                                                                            icloud_calendar_url=conf.icloud_calendar_url.clone()\n                                                                                            is_mobile\n                                                                                        />\n                                                                                    </span>\n                                                                                </div>\n                                                                            </div>\n                                                                        }\n                                                                            .into_any()\n                                                                    }\n                                                                }}\n                                                                <div style=\"font-size: 14px; color: #606266; margin-top: 3px;\">\n                                                                    {move || {\n                                                                        if is_tbd {\n                                                                            view! {\n                                                                                <span>\n                                                                                    \"Deadline: \"\n                                                                                    <a\n                                                                                        href=\"https://github.com/ccfddl/ccf-deadlines/pulls\"\n                                                                                        style=\"text-decoration: none; border-bottom: 1px solid #ccc; color: inherit;\"\n                                                                                        target=\"_blank\"\n                                                                                    >\n                                                                                        \"pull request to update\"\n                                                                                    </a>\n                                                                                </span>\n                                                                            }\n                                                                                .into_any()\n                                                                        } else {\n                                                                            view! {\n                                                                                <span>{format!(\"Deadline: {}\", show_ddl_str)}</span>\n                                                                            }\n                                                                                .into_any()\n                                                                        }\n                                                                    }}\n                                                                </div>\n                                                                <div style=\"font-size: 14px; color: #606266; margin-top: 3px;\">\n                                                                    \"website: \"\n                                                                    <a\n                                                                        href=conf.link.clone()\n                                                                        style=\"text-decoration: none; border-bottom: 1px solid #ccc; color: inherit; word-wrap: break-word;\"\n                                                                        target=\"_blank\"\n                                                                    >\n                                                                        {conf.link.clone()}\n                                                                    </a>\n                                                                </div>\n                                                                {move || {\n                                                                    if is_finished || is_tbd {\n                                                                        view! {}.into_any()\n                                                                    } else {\n                                                                        view! { <TimeLine time_points=conf.ddls.clone() /> }\n                                                                            .into_any()\n                                                                    }\n                                                                }}\n                                                            </div>\n                                                        </TableCellLayout>\n                                                    </TableCell>\n                                                </TableRow>\n                                            }\n                                        }\n                                    />\n                                }\n                                    .into_any()\n                            }\n                        }}\n                    </TableBody>\n                </Table>\n            </div>\n\n            <div class=\"footer\">\n                <div class=\"footer-text\">\n                    <span>\n                        \"Maintained by @ccfddl. If you find it useful, star or follow \"\n                        <a style=\"color: #666666\" href=\"https://github.com/ccfddl\" target=\"_blank\">\n                            \"@ccfddl\"\n                        </a> \" on Github.\"\n                    </span>\n                </div>\n                <div class=\"footer-pagination\">\n                    <Pagination page page_count />\n                </div>\n            </div>\n\n            <style>\n                {r#\"\n                .tag-container .tag-highlight .plain-tag {\n                  background: #ecf5ff !important;\n                  color: #1d4ed8 !important;\n                  border: 1px solid #93c5fd !important;\n                  font-weight: 600;\n                }\n                \"#}\n            </style>\n        </section>\n    }\n}\n\nfn load_utc_map() -> HashMap<String, String> {\n    let mut utc_map: HashMap<String, String> = HashMap::new();\n\n    for i in -12..=12 {\n        if i >= 0 {\n            let offset_str = format!(\"+{:02}:00\", i);\n            let key = format!(\"UTC+{}\", i);\n            utc_map.insert(key, offset_str);\n        } else {\n            let offset_str = format!(\"-{:02}:00\", -i);\n            let key = format!(\"UTC{}\", i);\n            utc_map.insert(key, offset_str);\n        }\n    }\n    utc_map.insert(\"AoE\".to_string(), \"-12:00\".to_string());\n    utc_map.insert(\"UTC\".to_string(), \"+00:00\".to_string());\n\n    utc_map\n}\n\n#[cfg(target_arch = \"wasm32\")]\nfn get_browser_time_and_timezone() -> (DateTime<FixedOffset>, FixedOffset) {\n    let utc_now = chrono::Utc::now();\n    let js_date = web_sys::js_sys::Date::new_0();\n    let offset_minutes = -(js_date.get_timezone_offset() as i32);\n\n    let timezone = FixedOffset::east_opt(offset_minutes * 60)\n        .unwrap_or_else(|| FixedOffset::east_opt(0).unwrap());\n\n    let current_time = utc_now.with_timezone(&timezone);\n\n    (current_time, timezone)\n}\n\n#[cfg(not(target_arch = \"wasm32\"))]\nfn get_browser_time_and_timezone() -> (DateTime<FixedOffset>, FixedOffset) {\n    use chrono::Local;\n    let local_time = Local::now();\n    let timezone = *local_time.offset();\n    (local_time.with_timezone(&timezone), timezone)\n}\n\n#[wasm_bindgen]\nextern \"C\" {\n    #[wasm_bindgen(js_namespace = navigator, getter, js_name = userAgent)]\n    fn user_agent() -> String;\n}\n\nfn is_client_device() -> bool {\n    web_sys::window().is_some()\n}\n\nfn is_mobile_device() -> bool {\n    if !is_client_device() {\n        return false;\n    }\n\n    let window = web_sys::window().expect(\"no global window exists\");\n    let navigator = window.navigator();\n    let user_agent = navigator\n        .user_agent()\n        .expect(\"user agent not available\")\n        .to_lowercase();\n\n    let mobile_keywords = [\n        \"phone\",\n        \"pad\",\n        \"pod\",\n        \"iphone\",\n        \"ipod\",\n        \"ios\",\n        \"ipad\",\n        \"android\",\n        \"mobile\",\n        \"blackberry\",\n        \"iemobile\",\n        \"mqqbrowser\",\n        \"juc\",\n        \"fennec\",\n        \"wosbrowser\",\n        \"browserng\",\n        \"webos\",\n        \"symbian\",\n        \"windows phone\",\n    ];\n\n    mobile_keywords\n        .iter()\n        .any(|&keyword| user_agent.contains(keyword))\n}\n\nfn get_from_local_storage(key: &str) -> Option<String> {\n    let window = window().unwrap();\n    let local_storage = window.local_storage().ok().flatten().unwrap();\n    local_storage.get_item(key).unwrap()\n}\n\nfn set_in_local_storage(key: &str, value: &str) {\n    let window = window().unwrap();\n    let local_storage = window.local_storage().ok().flatten().unwrap();\n    local_storage.set_item(key, value).unwrap();\n}\n"
  },
  {
    "path": "src/components/subscription_modal.rs",
    "content": "use leptos::prelude::*;\nuse std::collections::HashSet;\nuse thaw::*;\nuse wasm_bindgen::prelude::*;\nuse web_sys::js_sys;\nuse web_sys::window;\n\n#[derive(Clone, Debug, PartialEq)]\npub struct SubscriptionLink {\n    pub url: String,\n    pub description: String,\n}\n\npub type IcsSubscription = SubscriptionLink;\n\nfn sanitize_filter_value(value: &str) -> String {\n    value.replace('*', \"star\")\n}\n\nfn format_rank_label(system: &str, rank: &str) -> String {\n    match (system, rank) {\n        (\"CCF\", \"N\") => \"Non-CCF\".to_string(),\n        (\"CORE\", \"N\") => \"Non-CORE\".to_string(),\n        (\"THCPL\", \"N\") => \"Non-THCPL\".to_string(),\n        _ => format!(\"{} {}\", system, rank),\n    }\n}\n\nfn format_rank_summary_value(system: &str, rank: &str) -> String {\n    match (system, rank) {\n        (\"CCF\", \"N\") => \"Non-CCF\".to_string(),\n        (\"CORE\", \"N\") => \"Non-CORE\".to_string(),\n        (\"THCPL\", \"N\") => \"Non-THCPL\".to_string(),\n        _ => rank.to_string(),\n    }\n}\n\nfn sorted_values(values: &HashSet<String>) -> Vec<String> {\n    let mut sorted: Vec<_> = values.iter().cloned().collect();\n    sorted.sort();\n    sorted\n}\n\nfn build_subscription_urls(\n    base_url: &str,\n    extension: &str,\n    lang: &str,\n    subs: &HashSet<String>,\n    ccf_ranks: &HashSet<String>,\n    core_ranks: &HashSet<String>,\n    thcpl_ranks: &HashSet<String>,\n) -> Vec<SubscriptionLink> {\n    if subs.is_empty() && ccf_ranks.is_empty() && core_ranks.is_empty() && thcpl_ranks.is_empty() {\n        return vec![SubscriptionLink {\n            url: format!(\"{}/deadlines_{}.{}\", base_url, lang, extension),\n            description: if lang == \"zh\" {\n                \"所有会议\".to_string()\n            } else {\n                \"All Conferences\".to_string()\n            },\n        }];\n    }\n\n    let sub_tokens: Vec<Option<(String, String)>> = if subs.is_empty() {\n        vec![None]\n    } else {\n        sorted_values(subs)\n            .into_iter()\n            .map(|sub| Some((sub.clone(), sub)))\n            .collect()\n    };\n    let ccf_tokens: Vec<Option<(String, String)>> = if ccf_ranks.is_empty() {\n        vec![None]\n    } else {\n        sorted_values(ccf_ranks)\n            .into_iter()\n            .map(|rank| {\n                Some((\n                    format!(\"ccf_{}\", sanitize_filter_value(&rank)),\n                    format_rank_label(\"CCF\", &rank),\n                ))\n            })\n            .collect()\n    };\n    let core_tokens: Vec<Option<(String, String)>> = if core_ranks.is_empty() {\n        vec![None]\n    } else {\n        sorted_values(core_ranks)\n            .into_iter()\n            .map(|rank| {\n                Some((\n                    format!(\"core_{}\", sanitize_filter_value(&rank)),\n                    format_rank_label(\"CORE\", &rank),\n                ))\n            })\n            .collect()\n    };\n    let thcpl_tokens: Vec<Option<(String, String)>> = if thcpl_ranks.is_empty() {\n        vec![None]\n    } else {\n        sorted_values(thcpl_ranks)\n            .into_iter()\n            .map(|rank| {\n                Some((\n                    format!(\"thcpl_{}\", sanitize_filter_value(&rank)),\n                    format_rank_label(\"THCPL\", &rank),\n                ))\n            })\n            .collect()\n    };\n\n    let mut urls = Vec::new();\n\n    for ccf in &ccf_tokens {\n        for core in &core_tokens {\n            for thcpl in &thcpl_tokens {\n                for sub in &sub_tokens {\n                    let mut filename_parts = vec![format!(\"deadlines_{}\", lang)];\n                    let mut description_parts = Vec::new();\n\n                    if let Some((token, label)) = ccf {\n                        filename_parts.push(token.clone());\n                        description_parts.push(label.clone());\n                    }\n                    if let Some((token, label)) = core {\n                        filename_parts.push(token.clone());\n                        description_parts.push(label.clone());\n                    }\n                    if let Some((token, label)) = thcpl {\n                        filename_parts.push(token.clone());\n                        description_parts.push(label.clone());\n                    }\n                    if let Some((token, label)) = sub {\n                        filename_parts.push(token.clone());\n                        description_parts.push(label.clone());\n                    }\n\n                    if description_parts.is_empty() {\n                        continue;\n                    }\n\n                    urls.push(SubscriptionLink {\n                        url: format!(\"{}/{}.{}\", base_url, filename_parts.join(\"_\"), extension),\n                        description: description_parts.join(\" | \"),\n                    });\n                }\n            }\n        }\n    }\n\n    urls\n}\n\npub fn generate_ics_urls(\n    lang: &str,\n    subs: &HashSet<String>,\n    ccf_ranks: &HashSet<String>,\n    core_ranks: &HashSet<String>,\n    thcpl_ranks: &HashSet<String>,\n) -> Vec<IcsSubscription> {\n    build_subscription_urls(\n        \"webcal://ccfddl.com/conference\",\n        \"ics\",\n        lang,\n        subs,\n        ccf_ranks,\n        core_ranks,\n        thcpl_ranks,\n    )\n}\n\npub fn generate_rss_urls(\n    lang: &str,\n    subs: &HashSet<String>,\n    ccf_ranks: &HashSet<String>,\n    core_ranks: &HashSet<String>,\n    thcpl_ranks: &HashSet<String>,\n) -> Vec<SubscriptionLink> {\n    build_subscription_urls(\n        \"https://ccfddl.com/conference\",\n        \"xml\",\n        lang,\n        subs,\n        ccf_ranks,\n        core_ranks,\n        thcpl_ranks,\n    )\n}\n\nfn copy_text_to_clipboard(text: &str) {\n    if let Some(w) = window() {\n        let nav: JsValue = w.navigator().into();\n        if let Ok(clipboard) = js_sys::Reflect::get(&nav, &JsValue::from_str(\"clipboard\")) {\n            if !clipboard.is_undefined() && !clipboard.is_null() {\n                if let Ok(write_fn) =\n                    js_sys::Reflect::get(&clipboard, &JsValue::from_str(\"writeText\"))\n                {\n                    let func: js_sys::Function = write_fn.unchecked_into();\n                    let _ = func.call1(&clipboard, &JsValue::from_str(text));\n                }\n            }\n        }\n    }\n}\n\nfn get_platform_instruction(use_english: bool) -> String {\n    if let Some(w) = window() {\n        let ua = w.navigator().user_agent().unwrap_or_default();\n        if ua.contains(\"iPhone\") || ua.contains(\"iPad\") {\n            return if use_english {\n                \"iOS: Settings > Calendar > Accounts > Add Account > Other > Add Subscribed Calendar\"\n            } else {\n                \"iOS: 设置 > 日历 > 账户 > 添加账户 > 其他 > 添加已订阅的日历\"\n            }\n            .to_string();\n        } else if ua.contains(\"Android\") {\n            return if use_english {\n                \"Android: Google Calendar > Settings > Add calendar > From URL\"\n            } else {\n                \"Android: Google 日历 > 设置 > 添加日历 > 通过 URL\"\n            }\n            .to_string();\n        } else if ua.contains(\"Mac\") {\n            return if use_english {\n                \"macOS: Calendar app > File > New Calendar Subscription\"\n            } else {\n                \"macOS: 日历应用 > 文件 > 新建日历订阅\"\n            }\n            .to_string();\n        } else if ua.contains(\"Windows\") {\n            return if use_english {\n                \"Windows: Outlook > Calendar > Add Calendar > Subscribe from web\"\n            } else {\n                \"Windows: Outlook > 日历 > 添加日历 > 从 Web 订阅\"\n            }\n            .to_string();\n        }\n    }\n    if use_english {\n        \"Copy the link and paste it into your calendar app\".to_string()\n    } else {\n        \"复制链接并粘贴到日历应用的订阅功能中\".to_string()\n    }\n}\n\nfn render_filter_summary(\n    subs: &HashSet<String>,\n    ccf_ranks: &HashSet<String>,\n    core_ranks: &HashSet<String>,\n    thcpl_ranks: &HashSet<String>,\n    use_english: bool,\n) -> String {\n    let mut parts = Vec::new();\n    if !subs.is_empty() {\n        let sorted = sorted_values(subs);\n        let label = if use_english { \"Categories\" } else { \"分类\" };\n        parts.push(format!(\"{}: {}\", label, sorted.join(\", \")));\n    }\n    if !ccf_ranks.is_empty() {\n        let sorted = sorted_values(ccf_ranks)\n            .into_iter()\n            .map(|rank| format_rank_summary_value(\"CCF\", &rank))\n            .collect::<Vec<_>>();\n        let label = if use_english {\n            \"CCF Ranks\"\n        } else {\n            \"CCF 等级\"\n        };\n        parts.push(format!(\"{}: {}\", label, sorted.join(\", \")));\n    }\n    if !core_ranks.is_empty() {\n        let sorted = sorted_values(core_ranks)\n            .into_iter()\n            .map(|rank| format_rank_summary_value(\"CORE\", &rank))\n            .collect::<Vec<_>>();\n        let label = if use_english {\n            \"CORE Ranks\"\n        } else {\n            \"CORE 等级\"\n        };\n        parts.push(format!(\"{}: {}\", label, sorted.join(\", \")));\n    }\n    if !thcpl_ranks.is_empty() {\n        let sorted = sorted_values(thcpl_ranks)\n            .into_iter()\n            .map(|rank| format_rank_summary_value(\"THCPL\", &rank))\n            .collect::<Vec<_>>();\n        let label = if use_english {\n            \"THCPL Ranks\"\n        } else {\n            \"THCPL 等级\"\n        };\n        parts.push(format!(\"{}: {}\", label, sorted.join(\", \")));\n    }\n    if parts.is_empty() {\n        if use_english {\n            \"All conferences\".to_string()\n        } else {\n            \"全部会议\".to_string()\n        }\n    } else {\n        parts.join(\" · \")\n    }\n}\n\nfn render_link_limit_message(link_count: usize, use_english: bool) -> String {\n    if use_english {\n        format!(\n            \"{} links generated. Narrow the filters or subscribe to all instead.\",\n            link_count\n        )\n    } else {\n        format!(\n            \"已生成 {} 个链接。建议缩小筛选范围，或直接订阅全部。\",\n            link_count\n        )\n    }\n}\n\n#[component]\npub fn SubscriptionModal(\n    show: RwSignal<bool>,\n    use_english: RwSignal<bool>,\n    check_list: RwSignal<HashSet<String>>,\n    rank_list: RwSignal<HashSet<String>>,\n    core_rank_list: RwSignal<HashSet<String>>,\n    thcpl_rank_list: RwSignal<HashSet<String>>,\n) -> impl IntoView {\n    let subscriptions = Memo::new(move |_| {\n        let lang = if use_english.get() { \"en\" } else { \"zh\" };\n        let subs = check_list.get();\n        let ranks = rank_list.get();\n        let core_ranks = core_rank_list.get();\n        let thcpl_ranks = thcpl_rank_list.get();\n        generate_ics_urls(lang, &subs, &ranks, &core_ranks, &thcpl_ranks)\n    });\n\n    let rss_subscriptions = Memo::new(move |_| {\n        let lang = if use_english.get() { \"en\" } else { \"zh\" };\n        let subs = check_list.get();\n        let ranks = rank_list.get();\n        let core_ranks = core_rank_list.get();\n        let thcpl_ranks = thcpl_rank_list.get();\n        generate_rss_urls(lang, &subs, &ranks, &core_ranks, &thcpl_ranks)\n    });\n\n    let has_multiple_subscriptions = Memo::new(move |_| subscriptions.get().len() > 1);\n    let platform_hint = Memo::new(move |_| get_platform_instruction(use_english.get()));\n\n    view! {\n        <Dialog open=show>\n            <DialogSurface>\n                <DialogBody>\n                    <DialogTitle>\n                        {move || {\n                            if use_english.get() {\n                                \"Subscribe to Conference Deadlines\"\n                            } else {\n                                \"订阅会议截止日期\"\n                            }\n                        }}\n                    </DialogTitle>\n                    <DialogContent>\n                        <div style=\"margin-bottom: 16px; color: #666; font-size: 14px;\">\n                            {move || {\n                                if use_english.get() {\n                                    \"These links are generated from the filters currently active on this page.\"\n                                } else {\n                                    \"下面的链接会直接继承你当前页面的筛选条件。\"\n                                }\n                            }}\n                        </div>\n\n                        <div style=\"margin-bottom: 16px; padding: 12px; background: #f5f7fa; border-radius: 8px; font-size: 13px;\">\n                            <div style=\"font-size: 12px; font-weight: 600; color: #606266; margin-bottom: 6px;\">\n                                {move || {\n                                    if use_english.get() {\n                                        \"This subscription will include\"\n                                    } else {\n                                        \"本次订阅将包含\"\n                                    }\n                                }}\n                            </div>\n                            <div style=\"color: #303133;\">\n                                {move || {\n                                    let subs = check_list.get();\n                                    let ranks = rank_list.get();\n                                    let core_ranks = core_rank_list.get();\n                                    let thcpl_ranks = thcpl_rank_list.get();\n                                    let en = use_english.get();\n                                    render_filter_summary(\n                                        &subs,\n                                        &ranks,\n                                        &core_ranks,\n                                        &thcpl_ranks,\n                                        en,\n                                    )\n                                }}\n                            </div>\n                            <Show when=move || has_multiple_subscriptions.get()>\n                                <div style=\"margin-top: 8px; font-size: 12px; color: #909399; line-height: 1.6;\">\n                                    {move || {\n                                        if use_english.get() {\n                                            \"Multiple links are shown because the current filters expand into separate subscription combinations.\"\n                                        } else {\n                                            \"当前筛选会拆分出多个订阅组合，因此这里会显示多个链接。\"\n                                        }\n                                    }}\n                                </div>\n                            </Show>\n                        </div>\n\n                        <div style=\"margin-bottom: 16px;\">\n                            <div style=\"font-weight: 500; margin-bottom: 8px; font-size: 14px;\">\n                                {move || {\n                                    if use_english.get() {\n                                        \"Calendar Subscription\"\n                                    } else {\n                                        \"日历订阅\"\n                                    }\n                                }}\n                            </div>\n                            <div style=\"font-size: 12px; color: #909399; margin-bottom: 10px; line-height: 1.6;\">\n                                {move || {\n                                    if use_english.get() {\n                                        \"Use these webcal links in Apple Calendar, Outlook, Google Calendar, or any app that supports calendar subscriptions.\"\n                                    } else {\n                                        \"将这些 webcal 链接粘贴到支持订阅日历的应用中，例如 Apple 日历、Outlook、Google 日历等。\"\n                                    }\n                                }}\n                            </div>\n\n                            {move || {\n                                let subs = subscriptions.get();\n                                if subs.len() > 10 {\n                                    let msg = render_link_limit_message(subs.len(), use_english.get());\n                                    view! {\n                                        <div style=\"color: #e6a23c; padding: 8px; background: #fdf6ec; border-radius: 4px; font-size: 13px;\">\n                                            {msg}\n                                        </div>\n                                    }\n                                        .into_any()\n                                } else {\n                                    view! {\n                                        <div>\n                                            {subs\n                                                .iter()\n                                                .enumerate()\n                                                .map(|(idx, sub)| {\n                                                    let url = sub.url.clone();\n                                                    let url_for_copy = url.clone();\n                                                    let desc = sub.description.clone();\n                                                    let label = format!(\"{}. {}\", idx + 1, desc);\n                                                    view! {\n                                                        <div style=\"margin-bottom: 12px; padding: 10px; border: 1px solid #dcdfe6; border-radius: 6px; background: white;\">\n                                                            <div style=\"font-size: 13px; color: #333; margin-bottom: 6px; font-weight: 500;\">\n                                                                {label}\n                                                            </div>\n                                                            <div style=\"display: flex; align-items: center; gap: 8px;\">\n                                                                <input\n                                                                    type=\"text\"\n                                                                    readonly\n                                                                    value=url\n                                                                    style=\"flex: 1; padding: 6px 8px; border: 1px solid #dcdfe6; border-radius: 4px; font-size: 12px; font-family: monospace; background: #f5f7fa; outline: none;\"\n                                                                />\n                                                                <Button\n                                                                    size=ButtonSize::Small\n                                                                    on_click=move |_| {\n                                                                        copy_text_to_clipboard(&url_for_copy);\n                                                                    }\n                                                                >\n                                                                    {move || {\n                                                                        if use_english.get() { \"Copy\" } else { \"复制\" }\n                                                                    }}\n                                                                </Button>\n                                                            </div>\n                                                        </div>\n                                                    }\n                                                })\n                                                .collect::<Vec<_>>()}\n                                        </div>\n                                    }\n                                        .into_any()\n                                }\n                            }}\n\n                            <div style=\"font-size: 12px; color: #909399; margin-top: 6px; line-height: 1.6;\">\n                                {move || {\n                                    if use_english.get() {\n                                        \"Copy one link, then paste it into your calendar app's \\\"Subscribe by URL\\\" entry.\"\n                                    } else {\n                                        \"复制一个链接，然后粘贴到日历应用的“通过 URL 订阅”入口。\"\n                                    }\n                                }}\n                            </div>\n                        </div>\n\n                        <div style=\"margin-bottom: 16px;\">\n                            <div style=\"font-weight: 500; margin-bottom: 8px; font-size: 14px;\">\n                                {move || {\n                                    if use_english.get() {\n                                        \"RSS Feed\"\n                                    } else {\n                                        \"RSS 订阅：\"\n                                    }\n                                }}\n                            </div>\n                            <div style=\"font-size: 12px; color: #909399; margin-bottom: 10px; line-height: 1.6;\">\n                                {move || {\n                                    if use_english.get() {\n                                        \"Use RSS if you prefer deadline updates in an RSS reader instead of a calendar app.\"\n                                    } else {\n                                        \"如果你更习惯用 RSS 阅读器跟踪截止日期更新，可以使用下面的 RSS 链接。\"\n                                    }\n                                }}\n                            </div>\n\n                            {move || {\n                                let subs = rss_subscriptions.get();\n                                if subs.len() > 10 {\n                                    let msg = render_link_limit_message(subs.len(), use_english.get());\n                                    view! {\n                                        <div style=\"color: #e6a23c; padding: 8px; background: #fdf6ec; border-radius: 4px; font-size: 13px;\">\n                                            {msg}\n                                        </div>\n                                    }\n                                        .into_any()\n                                } else {\n                                    view! {\n                                        <div>\n                                            {subs\n                                                .iter()\n                                                .enumerate()\n                                                .map(|(idx, sub)| {\n                                                    let url = sub.url.clone();\n                                                    let url_for_copy = url.clone();\n                                                    let desc = sub.description.clone();\n                                                    let label = format!(\"{}. {}\", idx + 1, desc);\n                                                    view! {\n                                                        <div style=\"margin-bottom: 12px; padding: 10px; border: 1px solid #dcdfe6; border-radius: 6px; background: white;\">\n                                                            <div style=\"font-size: 13px; color: #333; margin-bottom: 6px; font-weight: 500;\">\n                                                                {label}\n                                                            </div>\n                                                            <div style=\"display: flex; align-items: center; gap: 8px;\">\n                                                                <input\n                                                                    type=\"text\"\n                                                                    readonly\n                                                                    value=url\n                                                                    style=\"flex: 1; padding: 6px 8px; border: 1px solid #dcdfe6; border-radius: 4px; font-size: 12px; font-family: monospace; background: #f5f7fa; outline: none;\"\n                                                                />\n                                                                <Button\n                                                                    size=ButtonSize::Small\n                                                                    on_click=move |_| {\n                                                                        copy_text_to_clipboard(&url_for_copy);\n                                                                    }\n                                                                >\n                                                                    {move || {\n                                                                        if use_english.get() { \"Copy\" } else { \"复制\" }\n                                                                    }}\n                                                                </Button>\n                                                            </div>\n                                                        </div>\n                                                    }\n                                                })\n                                                .collect::<Vec<_>>()}\n                                        </div>\n                                    }\n                                        .into_any()\n                                }\n                            }}\n\n                            <div style=\"font-size: 12px; color: #909399; margin-top: 4px;\">\n                                {move || {\n                                    if use_english.get() {\n                                        \"Paste the copied link into your RSS reader.\"\n                                    } else {\n                                        \"将复制的链接粘贴到 RSS 阅读器中。\"\n                                    }\n                                }}\n                            </div>\n                        </div>\n\n                        <div style=\"padding: 12px; background: #ecf5ff; border-radius: 8px; border-left: 4px solid #409eff;\">\n                            <div style=\"font-weight: 500; margin-bottom: 8px; font-size: 14px; color: #409eff;\">\n                                {move || {\n                                    if use_english.get() {\n                                        \"Quick tip\"\n                                    } else {\n                                        \"使用提示\"\n                                    }\n                                }}\n                            </div>\n                            <div style=\"font-size: 13px; line-height: 1.8; color: #606266;\">\n                                {move || {\n                                    if use_english.get() {\n                                        view! {\n                                            <div>\n                                                <div>\"Copy one link and paste it into your calendar app's Subscribe by URL entry.\"</div>\n                                                <div>\"If multiple links appear, each link matches a different filter combination.\"</div>\n                                            </div>\n                                        }\n                                            .into_any()\n                                    } else {\n                                        view! {\n                                            <div>\n                                                <div>\"复制一个链接，并粘贴到日历应用的“通过 URL 订阅”入口。\"</div>\n                                                <div>\"如果这里出现多个链接，表示每个链接对应一个不同的筛选组合。\"</div>\n                                            </div>\n                                        }\n                                            .into_any()\n                                    }\n                                }}\n                            </div>\n                            <div style=\"margin-top: 8px; font-size: 12px; color: #909399; font-style: italic;\">\n                                {move || platform_hint.get()}\n                            </div>\n                        </div>\n\n                        <div style=\"margin-top: 12px; font-size: 12px; color: #909399; text-align: center;\">\n                            {move || {\n                                if use_english.get() {\n                                    \"Subscribed calendars usually refresh every 12-24 hours.\"\n                                } else {\n                                    \"订阅的日历通常每 12-24 小时刷新一次。\"\n                                }\n                            }}\n                        </div>\n                    </DialogContent>\n                    <DialogActions>\n                        <Button\n                            appearance=ButtonAppearance::Secondary\n                            on_click=move |_| show.set(false)\n                        >\n                            {move || if use_english.get() { \"Close\" } else { \"关闭\" }}\n                        </Button>\n                    </DialogActions>\n                </DialogBody>\n            </DialogSurface>\n        </Dialog>\n    }\n}\n"
  },
  {
    "path": "src/components/timeline.rs",
    "content": "use crate::components::conf::TimePoint;\nuse chrono::{Duration, prelude::*};\nuse leptos::prelude::*;\n\n#[component]\npub fn TimeLine(time_points: Vec<TimePoint>) -> impl IntoView {\n    let (sel_time, set_sel_time) = signal(String::new());\n    let (start_date, set_start_date) = signal(0.0);\n    let (end_date, set_end_date) = signal(0.0);\n    let (incre_dates, set_incre_dates) = signal(Vec::<TimePoint>::new());\n    let (all_incre, set_all_incre) = signal(Vec::<TimePoint>::new());\n    let (date_tips, set_date_tips) = signal(Vec::<TimePoint>::new());\n    let (is_single, set_is_single) = signal(false);\n    let (expire_index, set_expire_index) = signal(-1);\n    let (sel_dot_style, set_sel_dot_style) = signal(String::new());\n    let (sel_dot_class, set_sel_dot_class) = signal(String::new());\n    let (can_line_style, set_can_line_style) = signal(String::new());\n\n    Effect::new(move |_| {\n        initialize_timeline(\n            &time_points,\n            set_sel_time,\n            set_start_date,\n            set_end_date,\n            set_incre_dates,\n            set_all_incre,\n            set_date_tips,\n            set_is_single,\n            set_expire_index,\n            set_can_line_style,\n            set_sel_dot_style,\n            set_sel_dot_class,\n            all_incre,\n        );\n    });\n\n    let format_time_label =\n        move |value: &DateTime<FixedOffset>, is_day: bool, index: usize| -> String {\n            if !is_day {\n                return format!(\"{}\", value.format(\"%Y/%m/%d %H:%M:%S\"));\n            }\n\n            let tips = date_tips.get();\n            if tips.len() > 1 && index < tips.len() - 1 {\n                let cur_percent = calculate_position_percent(\n                    &tips[index].timepoint,\n                    start_date.get(),\n                    end_date.get(),\n                );\n                let next_percent = calculate_position_percent(\n                    &tips[index + 1].timepoint,\n                    start_date.get(),\n                    end_date.get(),\n                );\n                if next_percent - cur_percent < 8.0 {\n                    return String::new();\n                }\n            }\n            format!(\"{}\", value.format(\"%m/%d\"))\n        };\n\n    let format_backup_type = |backup_type: i32| -> &'static str {\n        match backup_type {\n            0 => \"Registration:\",\n            1 => \"Submission:\",\n            _ => \"\",\n        }\n    };\n\n    let format_backup_class = |backup_type: i32| -> &'static str {\n        match backup_type {\n            0 => \"square square_all\",\n            1 => \"dot dot_all\",\n            _ => \"\",\n        }\n    };\n\n    let calculate_backup_position = move |time: &DateTime<FixedOffset>, index: usize| -> String {\n        let left_percent = calculate_position_percent(time, start_date.get(), end_date.get());\n\n        let clamped_percent = left_percent.max(0.5).min(99.5);\n        let base_style = format!(\"left:{}%;\", clamped_percent);\n\n        if index as i32 <= expire_index.get() {\n            format!(\"{}border: 2px solid #ccc;\", base_style)\n        } else {\n            base_style\n        }\n    };\n\n    let calculate_reference_position = move |time: &DateTime<FixedOffset>| -> String {\n        let left_percent = calculate_position_percent(time, start_date.get(), end_date.get());\n\n        let clamped_percent = left_percent.max(0.0).min(100.0);\n        format!(\"left:{}%;\", clamped_percent)\n    };\n\n    let get_backup_text_style = move |index: usize| -> &'static str {\n        if index as i32 <= expire_index.get() {\n            \"color: #ccc;\"\n        } else {\n            \"\"\n        }\n    };\n\n    view! {\n        <div class=\"time_con\">\n            <style>\n                r#\"\n                /* 时间轴容器 */\n                .time_con {\n\n                }\n\n                /* 时间轴主容器 */\n                .line_time {\n                    position: relative;\n                    -webkit-user-select: none;\n                    -moz-user-select: none;\n                    -ms-user-select: none;\n                    user-select: none;\n                }\n\n                /* 时间轴外层容器 */\n                .line_time .all_line {\n                    width: 90%;\n                    margin: 0 5%;\n                    padding-top: 25px;\n                    padding-bottom: 15px;\n                }\n\n                /* 时间轴主线 */\n                .line_time .line {\n                    width: 100%;\n                    height: 3px;\n                    background: #ccc;\n                    position: relative;\n                }\n\n                /* 可进度线 */\n                .line_time .can_line {\n                    background: #1890ff77;\n                    height: 3px;\n                    width: 0%;\n                    position: absolute;\n                    left: 0;\n                }\n\n                .line_time .can_line span {\n                    position: absolute;\n                    right: 0;\n                    margin-top: 20px;\n                }\n\n                /* 参考时间点 */\n                .line_time .reference {\n                    width: 1px;\n                    height: 8px;\n                    border: 0;\n                    background: #bbb;\n                    position: absolute;\n                    top: -3px;\n                    white-space: nowrap;\n                }\n\n                .line_time .reference em {\n                    color: #bbb;\n                    position: absolute;\n                    transform: translateX(-50%);\n                    margin-top: 5px;\n                    font-size: 12px;\n                }\n\n                /* 圆形备份点 */\n                .line_time .dot {\n                    width: 8px;\n                    height: 8px;\n                    border-radius: 50%;\n                    border: 2px solid #4a9eff;\n                    background: white;\n                    position: absolute;\n                    top: -3px;\n                    white-space: nowrap;\n                    margin-left: -4px;\n                    box-sizing: border-box;\n                }\n\n                .line_time .dot_all em {\n                    display: none;\n                    color: #409eff;\n                    transform: translateX(-50%);\n                    position: absolute;\n                    top: -25px;\n                }\n\n                .line_time .dot_all:hover {\n                    width: 10px;\n                    height: 10px;\n                    border: 2px solid #409eff;\n                    top: -4px;\n                }\n\n                .line_time .dot_all:hover em {\n                    display: inline-block;\n                }\n\n                /* 方形备份点 */\n                .line_time .square {\n                    width: 8px;\n                    height: 8px;\n                    border-radius: 0;\n                    border: 2px solid #4a9eff;\n                    background: white;\n                    position: absolute;\n                    top: -3px;\n                    white-space: nowrap;\n                    margin-left: -4px;\n                    box-sizing: border-box;\n                }\n\n                .line_time .square_all em {\n                    display: none;\n                    color: #409eff;\n                    transform: translateX(-50%);\n                    position: absolute;\n                    top: -25px;\n                }\n\n                .line_time .square_all:hover {\n                    width: 10px;\n                    height: 10px;\n                    border: 2px solid #409eff;\n                    top: -4px;\n                }\n\n                .line_time .square_all:hover em {\n                    display: inline-block;\n                }\n\n                /* 当前选中点 */\n                .line_time .sel_dot {\n                    width: 10px;\n                    height: 10px;\n                    top: -4px;\n                    border: 2px solid #FFA500;\n                    box-shadow: 0 0 10px 4px rgba(255, 163, 2, 0.3);\n                    z-index: 5;\n                    position: absolute;\n                }\n\n                .line_time .sel_dot em {\n                    display: none;\n                    color: #FFA500;\n                    transform: translateX(-50%);\n                    position: absolute;\n                    top: -25px;\n                }\n\n                .line_time .sel_dot:hover em {\n                    display: inline-block;\n                }\n\n                /* 边界情况的特殊定位 */\n                .line_time .sel_dot_left em {\n                    transform: translateX(-20%);\n                }\n\n                .line_time .sel_dot_left i {\n                    left: 20%;\n                }\n\n                .line_time .sel_dot_right em {\n                    transform: translateX(-90%);\n                }\n\n                .line_time .sel_dot_left i {\n                    left: 20%;\n                }\n                .line_time .sel_dot_right em {\n                    transform: translateX(-80%);\n                }\n                .line_time .sel_dot_right i {\n                    left: 80%;\n                }\n\n                \"#\n            </style>\n\n            <div class=\"line_time\">\n                <div class=\"all_line\">\n                    <div class=\"line\">\n                        <div class=\"can_line\" style=move || can_line_style.get()></div>\n\n                        {move || {\n                            let is_single_val = is_single.get();\n                            let date_tips_val = date_tips.get();\n                            date_tips_val\n                                .into_iter()\n                                .enumerate()\n                                .map(|(index, date_tip)| {\n                                    let style = calculate_reference_position(&date_tip.timepoint);\n                                    let should_show = !(index == 0 && is_single_val);\n\n                                    view! {\n                                        <div class=\"reference\" style=style>\n                                            {move || {\n                                                if should_show {\n                                                    let label = format_time_label(\n                                                        &date_tip.timepoint,\n                                                        true,\n                                                        index,\n                                                    );\n                                                    if !label.is_empty() {\n                                                        view! { <em>{label}</em> }.into_any()\n                                                    } else {\n                                                        view! {}.into_any()\n                                                    }\n                                                } else {\n                                                    view! {}.into_any()\n                                                }\n                                            }}\n                                        </div>\n                                    }\n                                })\n                                .collect_view()\n                        }}\n\n                        {move || {\n                            incre_dates\n                                .get()\n                                .into_iter()\n                                .enumerate()\n                                .map(|(index, backup_point)| {\n                                    let class_name = format_backup_class(backup_point.r#type);\n                                    let style = calculate_backup_position(\n                                        &backup_point.timepoint,\n                                        index,\n                                    );\n                                    let text_style = get_backup_text_style(index);\n                                    let type_label = format_backup_type(backup_point.r#type);\n                                    let time_label = format_time_label(\n                                        &backup_point.timepoint,\n                                        false,\n                                        0,\n                                    );\n\n                                    view! {\n                                        <div class=class_name style=style>\n                                            <em style=text_style>{type_label}\" \"{time_label}</em>\n                                        </div>\n                                    }\n                                })\n                                .collect_view()\n                        }}\n\n                        <div\n                            class=move || format!(\"dot sel_dot {}\", sel_dot_class.get())\n                            style=move || sel_dot_style.get()\n                        >\n                            <em>\"Now: \"{move || sel_time.get()}</em>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    }\n}\n\nfn calculate_position_percent(time: &DateTime<FixedOffset>, start: f64, end: f64) -> f64 {\n    let timestamp = time.timestamp() as f64;\n    (timestamp - start) / (end - start) * 100.0\n}\n\n#[cfg(target_arch = \"wasm32\")]\nfn get_browser_time_and_timezone() -> (DateTime<FixedOffset>, FixedOffset) {\n    let utc_now = chrono::Utc::now();\n    let js_date = web_sys::js_sys::Date::new_0();\n    let offset_minutes = -(js_date.get_timezone_offset() as i32);\n\n    let timezone = FixedOffset::east_opt(offset_minutes * 60)\n        .unwrap_or_else(|| FixedOffset::east_opt(0).unwrap());\n\n    let current_time = utc_now.with_timezone(&timezone);\n\n    (current_time, timezone)\n}\n\n#[cfg(not(target_arch = \"wasm32\"))]\nfn get_browser_time_and_timezone() -> (DateTime<FixedOffset>, FixedOffset) {\n    use chrono::Local;\n    let local_time = Local::now();\n    let timezone = *local_time.offset();\n    (local_time.with_timezone(&timezone), timezone)\n}\n\nfn timestamp_to_datetime(timestamp: f64, timezone: FixedOffset) -> DateTime<FixedOffset> {\n    DateTime::from_timestamp(timestamp as i64, 0)\n        .expect(\"Invalid timestamp\")\n        .with_timezone(&timezone)\n}\n\nfn initialize_timeline(\n    time_points: &[TimePoint],\n    set_sel_time: WriteSignal<String>,\n    set_start_date: WriteSignal<f64>,\n    set_end_date: WriteSignal<f64>,\n    set_incre_dates: WriteSignal<Vec<TimePoint>>,\n    set_all_incre: WriteSignal<Vec<TimePoint>>,\n    set_date_tips: WriteSignal<Vec<TimePoint>>,\n    set_is_single: WriteSignal<bool>,\n    set_expire_index: WriteSignal<i32>,\n    set_can_line_style: WriteSignal<String>,\n    set_sel_dot_style: WriteSignal<String>,\n    set_sel_dot_class: WriteSignal<String>,\n    all_incre: ReadSignal<Vec<TimePoint>>,\n) {\n    let (now, now_timezone) = get_browser_time_and_timezone();\n    let now_timestamp = now.timestamp() as f64;\n\n    let mut deadlines = Vec::new();\n    let is_single_point = time_points.len() == 1;\n\n    if is_single_point {\n        deadlines.push(TimePoint {\n            timepoint: now,\n            r#type: 1,\n        });\n        set_is_single.set(true);\n    } else {\n        set_is_single.set(false);\n    }\n\n    deadlines.extend(time_points.iter().cloned());\n\n    let expire_idx = deadlines\n        .iter()\n        .enumerate()\n        .rev()\n        .find(|(_, point)| now_timestamp >= point.timepoint.timestamp() as f64)\n        .map(|(i, _)| i as i32)\n        .unwrap_or(-1);\n    set_expire_index.set(expire_idx);\n\n    let first_time = deadlines[0].timepoint.timestamp() as f64;\n    let start_time = if now_timestamp < first_time {\n        (now - Duration::days(7)).timestamp() as f64\n    } else {\n        (deadlines[0].timepoint - Duration::days(7)).timestamp() as f64\n    };\n    let end_time = (deadlines.last().unwrap().timepoint + Duration::days(7)).timestamp() as f64;\n\n    set_start_date.set(start_time);\n    set_end_date.set(end_time);\n\n    let last_deadline_time = deadlines.last().unwrap().timepoint.timestamp() as f64;\n    let progress_ratio = (last_deadline_time - now_timestamp) / (end_time - start_time);\n\n    if progress_ratio > 0.0 {\n        let width = progress_ratio * 100.0;\n        let left = (now_timestamp - start_time) / (end_time - start_time) * 100.0;\n        let max_width = 100.0 - left;\n        set_can_line_style.set(format!(\n            \"width:{}%;left:{}%;max-width:{}%;\",\n            width, left, max_width\n        ));\n    } else {\n        set_can_line_style.set(\"width:0%;\".to_string());\n    }\n\n    set_incre_dates.set(deadlines.clone());\n    set_date_tips.set(deadlines.clone());\n\n    let mut all_incremental = deadlines.clone();\n    all_incremental.push(TimePoint {\n        timepoint: deadlines.last().unwrap().timepoint,\n        r#type: 1,\n    });\n    all_incremental.push(TimePoint {\n        timepoint: now,\n        r#type: 1,\n    });\n    set_all_incre.set(all_incremental);\n\n    update_selected_dot(\n        now_timestamp,\n        now_timezone,\n        set_sel_dot_style,\n        set_sel_dot_class,\n        set_sel_time,\n        start_time,\n        end_time,\n        last_deadline_time,\n        now_timestamp,\n        all_incre.get(),\n    );\n}\n\nfn update_selected_dot(\n    target_time: f64,\n    time_zone: FixedOffset,\n    set_sel_dot_style: WriteSignal<String>,\n    set_sel_dot_class: WriteSignal<String>,\n    set_sel_time: WriteSignal<String>,\n    start_date: f64,\n    end_date: f64,\n    binlog_date: f64,\n    full_date: f64,\n    all_incre: Vec<TimePoint>,\n) {\n    let mut actual_time = target_time;\n    let mut position_ratio = (target_time - start_date) / (end_date - start_date);\n\n    if actual_time > binlog_date || actual_time < full_date {\n        let nearest_point = all_incre\n            .iter()\n            .min_by(|a, b| {\n                let a_diff = (a.timepoint.timestamp() as f64 - actual_time).abs();\n                let b_diff = (b.timepoint.timestamp() as f64 - actual_time).abs();\n                a_diff.partial_cmp(&b_diff).unwrap()\n            })\n            .unwrap();\n\n        actual_time = nearest_point.timepoint.timestamp() as f64;\n        position_ratio = (actual_time - start_date) / (end_date - start_date);\n    }\n\n    let datetime = timestamp_to_datetime(actual_time, time_zone);\n    set_sel_time.set(format!(\"{}\", datetime.format(\"%Y-%m-%d %H:%M:%S\")));\n\n    let left_percent = position_ratio * 100.0;\n    let clamped_percent = left_percent.max(0.5).min(99.5);\n    set_sel_dot_style.set(format!(\"left:{}%;\", clamped_percent));\n\n    let class_suffix = if clamped_percent < 10.0 {\n        \"sel_dot_left\"\n    } else if clamped_percent > 90.0 {\n        \"sel_dot_right\"\n    } else {\n        \"\"\n    };\n    set_sel_dot_class.set(class_suffix.to_string());\n}\n"
  },
  {
    "path": "src/components/timezone.rs",
    "content": "use chrono_tz::Tz;\nuse std::str::FromStr;\n\n// Get browser timezone name (e.g., \"Asia/Shanghai\", \"America/New_York\")\n#[cfg(target_arch = \"wasm32\")]\npub fn get_timezone_name() -> Option<String> {\n    web_sys::js_sys::eval(\"Intl.DateTimeFormat().resolvedOptions().timeZone\")\n        .ok()\n        .and_then(|v| v.as_string())\n}\n\n#[cfg(not(target_arch = \"wasm32\"))]\npub fn get_timezone_name() -> Option<String> {\n    std::env::var(\"TZ\").ok()\n}\n\n// Get timezone name with fallback to \"UTC\"\n#[allow(dead_code)]\npub fn get_timezone_name_or_utc() -> String {\n    get_timezone_name().unwrap_or_else(|| \"UTC\".to_string())\n}\n\n// Get timezone name and validate it's supported by chrono-tz\n#[allow(dead_code)]\npub fn get_supported_timezone() -> Option<Tz> {\n    get_timezone_name().and_then(|tz_name| Tz::from_str(&tz_name).ok())\n}\n\n// Get timezone name or return UTC timezone if not supported\n#[allow(dead_code)]\npub fn get_timezone_or_utc() -> Tz {\n    get_supported_timezone().unwrap_or(chrono_tz::UTC)\n}\n"
  },
  {
    "path": "src/lib.rs",
    "content": "use leptos::prelude::*;\nuse leptos_meta::*;\nuse leptos_router::{components::*, path};\n\n// Modules\nmod components;\nmod pages;\n\n// Top-Level pages\nuse crate::pages::home::Home;\n\n/// An app router which renders the homepage and handles 404's\n#[component]\npub fn App() -> impl IntoView {\n    // Provides context that manages stylesheets, titles, meta tags, etc.\n    provide_meta_context();\n\n    view! {\n        <Html attr:lang=\"en\" attr:dir=\"ltr\" attr:data-theme=\"light\" />\n\n        // sets the document title\n        <Title text=\"ccf-deadlines\" />\n\n        // injects metadata in the <head> of the page\n        <Meta charset=\"UTF-8\" />\n        <Meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n        <Meta name=\"description\" content=\"CCFDDL Open Deadlines helps researchers track worldwide conference deadlines through collaboration.\" />\n        <Meta name=\"keywords\" content=\"conference deadlines\" />\n        <Meta http_equiv=\"X-UA-Compatible\" content=\"IE=edge\" />\n\n        <Router>\n            <Routes fallback=|| view! { NotFound }>\n                <Route path=path!(\"/\") view=Home />\n            </Routes>\n        </Router>\n    }\n}\n"
  },
  {
    "path": "src/main.rs",
    "content": "use ccfddl::App;\nuse leptos::prelude::*;\n\nfn main() {\n    // set up logging\n    _ = console_log::init_with_level(log::Level::Debug);\n    console_error_panic_hook::set_once();\n\n    mount_to_body(|| {\n        view! { <App /> }\n    })\n}\n"
  },
  {
    "path": "src/pages/home.rs",
    "content": "use crate::components::header::Header;\nuse crate::components::showtable::ShowTable;\nuse leptos::prelude::*;\n\nuse thaw::*;\n\n/// Default Home Page\n#[component]\npub fn Home() -> impl IntoView {\n    // theme\n    let theme = RwSignal::new(Theme::light());\n    theme.update(|theme| {\n        theme\n            .color\n            .set_color_compound_brand_background(\"#409eff\".to_string());\n        theme\n            .color\n            .set_color_compound_brand_background_hover(\"#409eff\".to_string());\n        theme\n            .color\n            .set_color_neutral_stroke_accessible(\"#dcdfe6\".to_string());\n        theme\n            .color\n            .set_color_neutral_stroke_accessible_pressed(\"#409eff\".to_string());\n        theme\n            .color\n            .set_color_neutral_stroke_accessible_hover(\"#409eff\".to_string());\n        theme\n            .color\n            .set_color_neutral_stroke_2(\"#ebeef5\".to_string());\n    });\n\n    view! {\n        <ConfigProvider theme>\n            <div class=\"home\">\n                <Header />\n                <ShowTable />\n            </div>\n        </ConfigProvider>\n    }\n}\n"
  },
  {
    "path": "src/pages/mod.rs",
    "content": "pub mod home;\n"
  }
]